<?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>183934</bug_id>
          
          <creation_ts>2018-03-23 08:09:18 -0700</creation_ts>
          <short_desc>Update WPT tools to a1ec330</short_desc>
          <delta_ts>2018-03-23 17:04:37 -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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>brendan</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408694</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-23 08:09:18 -0700</bug_when>
    <thetext>Update WPT tools to a1ec330</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408697</commentid>
    <comment_count>1</comment_count>
      <attachid>336372</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-23 08:15:18 -0700</bug_when>
    <thetext>Created attachment 336372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408699</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-23 08:19:11 -0700</bug_when>
    <thetext>This patch updates tools only as this requires changes to the py infrastructure.
I am wondering whether we will be able to rely on &quot;LayoutTests/imported/w3c/web-platform-tests/wpt serve&quot; in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408862</commentid>
    <comment_count>3</comment_count>
      <attachid>336372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-23 13:43:17 -0700</bug_when>
    <thetext>Comment on attachment 336372
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408917</commentid>
    <comment_count>4</comment_count>
      <attachid>336372</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-23 15:20:50 -0700</bug_when>
    <thetext>Comment on attachment 336372
Patch

Rejecting attachment 336372 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 336372, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
cb51a54d2c85b7a1b51d142c574c7e5db7c
r229918 = dad5eec9e1c99e2255766217a7dcf0fcddec281a
r229919 = bd3ac1a96cca736f24b32b53884cc6315577fb53
r229920 = 35b970070b158bf9497d9bf389c9e8711e026949
r229921 = f4778069b3cf2d62175288e0b0ba15c8e5b5a1b2
r229922 = 6046003e93a4179abdb0a7728bef8b0c227a1f48
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/7079978</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408976</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-23 17:03:25 -0700</bug_when>
    <thetext>Seems to have landed as https://trac.webkit.org/changeset/229937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408977</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-23 17:04:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/38813413&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336372</attachid>
            <date>2018-03-23 08:15:18 -0700</date>
            <delta_ts>2018-03-23 17:03:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183934-20180323081517.patch</filename>
            <type>text/plain</type>
            <size>7625696</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODc5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDA3OTgxZWU5YTIxNGYzMzUwYTg4ZWM5MGYzYWVhNGFh
ZTNiZjhmNS4uYTllODlkZGFmNmM2NjEwYzM0MjEwODNlZmM5NzAzYjA1YmNhZWI2MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE4LTAzLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBVcGRhdGUgV1BUIHRvb2xzIHRvIGExZWMzMzAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBzY3JpcHQgdG8gcnVuIFdQVCBzZXJ2ZXIg
IGFjY29yZGluZyB1cGRhdGVkIFdQVCB0b29scy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHk6Cisg
ICAgICAgIChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAgICAgKGJhc2VfaHR0cF91
cmwpOgorICAgICAgICAoYmFzZV9odHRwc191cmwpOgorCiAyMDE4LTAzLTIyICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgU2NoZW1lUmVnaXN0cnk6
OnJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdCgpIGFzIFdlYktpdCBTUEkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vi
X3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5CmluZGV4IDc0ZDg2
NTEzODFmMWQ4M2YzMDM4OTAwMmMyZTcwZDYxNzAxN2IzOTcuLmViNWZhMDkxODgxNzUwODM0MDU1
M2VjMzExZGM5MmZiNTQ3M2EwM2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1f
dGVzdF9sYXVuY2hlci5weQpAQCAtNDYsOSArNDYsMTEgQEAgZGVmIG1haW4oYXJndiwgc3Rkb3V0
LCBzdGRlcnIpOgogICAgIFdlYlBsYXRmb3JtVGVzdFNlcnZlci5zZXR1cF9sb2dnZXIoY29uZmln
WyJsb2dfbGV2ZWwiXSkKICAgICBsb2dnZWRfc2VydmVycyA9IFtdCiAKLSAgICB3aXRoIHN0YXNo
LlN0YXNoU2VydmVyKChjb25maWdbImhvc3QiXSwgV2ViUGxhdGZvcm1UZXN0U2VydmVyLmdldF9w
b3J0KCkpLCBhdXRoa2V5PXN0cih1dWlkLnV1aWQ0KCkpKToKKyAgICB3aXRoIHN0YXNoLlN0YXNo
U2VydmVyKChjb25maWdbImJyb3dzZXJfaG9zdCJdLCBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuZ2V0
X3BvcnQoKSksIGF1dGhrZXk9c3RyKHV1aWQudXVpZDQoKSkpOgogICAgICAgICB3aXRoIFdlYlBs
YXRmb3JtVGVzdFNlcnZlci5nZXRfc3NsX2Vudmlyb25tZW50KGNvbmZpZykgYXMgc3NsX2VudjoK
LSAgICAgICAgICAgIGNvbmZpZ18sIHN0YXJ0ZWRfc2VydmVycyA9IFdlYlBsYXRmb3JtVGVzdFNl
cnZlci5zdGFydChjb25maWcsIHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMi
XSkpCisgICAgICAgICAgICBwb3J0cyA9IFdlYlBsYXRmb3JtVGVzdFNlcnZlci5nZXRfcG9ydHMo
Y29uZmlnLCBzc2xfZW52KQorICAgICAgICAgICAgY29uZmlnXyA9IFdlYlBsYXRmb3JtVGVzdFNl
cnZlci5ub3JtYWxpc2VfY29uZmlnKGNvbmZpZywgcG9ydHMpCisgICAgICAgICAgICBzdGFydGVk
X3NlcnZlcnMgPSBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuc3RhcnQoY29uZmlnXywgc3NsX2Vudiwg
YnVpbGRfcm91dGVzKGNvbmZpZ1siYWxpYXNlcyJdKSkKIAogICAgICAgICAgICAgZm9yIHByb3Rv
Y29sLCBzZXJ2ZXJzIGluIHN0YXJ0ZWRfc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgICAg
IGZvciBwb3J0LCBwcm9jZXNzIGluIHNlcnZlcnM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLnB5CmluZGV4IGMwMjJlOWQzMGM2NjQ1ODY5NTk2NjA0NmE0MGEzM2Mz
YTYyMTc3YTcuLjY0NDRmNWU1OWM4OWZhZGY5MjBmMGVkNWIwNDZmMmI0MjFiNzYyNWEgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC01Miw3ICs1Miw3
IEBAIGRlZiBiYXNlX2h0dHBfdXJsKHBvcnRfb2JqKToKICAgICAgICAgX2xvZy5kZWJ1ZygiTm8g
V1BUIGNvbmZpZyBmaWxlIGZvdW5kIikKICAgICAgICAgcmV0dXJuICJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvIgogICAgIHBvcnRzID0gY29uZmlnWyJwb3J0cyJdCi0gICAgcmV0dXJuICJodHRwOi8v
IiArIGNvbmZpZ1siaG9zdCJdICsgIjoiICsgc3RyKHBvcnRzWyJodHRwIl1bMF0pICsgIi8iCisg
ICAgcmV0dXJuICJodHRwOi8vIiArIGNvbmZpZ1siYnJvd3Nlcl9ob3N0Il0gKyAiOiIgKyBzdHIo
cG9ydHNbImh0dHAiXVswXSkgKyAiLyIKIAogCiBkZWYgYmFzZV9odHRwc191cmwocG9ydF9vYmop
OgpAQCAtNjIsNyArNjIsNyBAQCBkZWYgYmFzZV9odHRwc191cmwocG9ydF9vYmopOgogICAgICAg
ICBfbG9nLmRlYnVnKCJObyBXUFQgY29uZmlnIGZpbGUgZm91bmQiKQogICAgICAgICByZXR1cm4g
Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvIgogICAgIHBvcnRzID0gY29uZmlnWyJwb3J0cyJdCi0g
ICAgcmV0dXJuICJodHRwczovLyIgKyBjb25maWdbImhvc3QiXSArICI6IiArIHN0cihwb3J0c1si
aHR0cHMiXVswXSkgKyAiLyIKKyAgICByZXR1cm4gImh0dHBzOi8vIiArIGNvbmZpZ1siYnJvd3Nl
cl9ob3N0Il0gKyAiOiIgKyBzdHIocG9ydHNbImh0dHBzIl1bMF0pICsgIi8iCiAKIAogZGVmIGlz
X3dwdF9zZXJ2ZXJfcnVubmluZyhwb3J0X29iaik6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCAzNDYwOTNlZjI4YThlYTc1NGUxMDBiZmY3ZTI2ZjVlNmM3NTIzZGFiLi4wZWMzNDJh
NzQzOTkzYzgwNjViNWJhZDViY2ZhOWQ0MDBlNDNhNjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCB0b29scyB0byBhMWVjMzMwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNl
cy9jb25maWcuanNvbjoKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jb25maWcuZGVmYXVsdC5qc29uOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy90b29scy86IFJlZnJlc2hlZC4KKwogMjAxOC0w
My0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyIHNob3VsZCBzZW5kIGNyZWRlbnRpYWxzIGFmdGVyIHJlZGlyZWN0
aW9ucyBhbmQgcHJlZmxpZ2h0IGlmIGZldGNoIG9wdGlvbiBjcmVkZW50aWFscyBpcyBpbmNsdWRl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2NvbmZpZy5q
c29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9jb25maWcuanNvbgppbmRl
eCBhOGQ4NTYzYjI5YWJjMjk5NjFhZGFmOWM2Y2M5ZWM0ODU1MjA4NjdlLi5jMDc0ZmZiMTZkMGFi
MWJhODRjNjY4ZmE2MzE0ZjhmNWRiMDNhYjViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvcmVzb3VyY2VzL2NvbmZpZy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvY29uZmlnLmpzb24KQEAgLTEsNCArMSw0IEBACi17Imhvc3QiOiAibG9j
YWxob3N0IiwKK3siYnJvd3Nlcl9ob3N0IjogImxvY2FsaG9zdCIsCiAgInBvcnRzIjp7Imh0dHAi
Ols4ODAwLCA4ODAxXSwKICAgICAgICAgICAiaHR0cHMiOls5NDQzXSwKICAgICAgICAgICAid3Mi
Ols0OTAwMV19LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCAzOTNmNWU5MmNmYzhiOWU4NjZm
OWU2NzAxZDA4NzNjZmZmMTM5ZjY5Li5hYzM0NTU3N2YxYzA5MDI5NGZmYmUwYWFmOThjZDgxOTFk
NTE5YmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2lt
cG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMSw1ICsxLDYgQEAKIHsKICAgICAi
Y3NzL2dlb21ldHJ5IjogImltcG9ydCIsIAorICAgICJ0b29scyI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dCI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy8yZGNvbnRleHQvdHJhbnNmb3JtYXRpb25zL2NhbnZhc190cmFuc2Zvcm1hdGlv
bnNfcmVzZXRfMDAxLXJlZi5odG1sIjogImltcG9ydCIsIApAQCAtMzAyLDcgKzMwMyw3IEBACiAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdmciOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvc3ZnLWFhbSI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90ZXN0aGFy
bmVzc19ydW5uZXIuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cyI6ICJza2lwIiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29scyI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL19faW5pdF9fLnB5IjogImltcG9ydCIsIAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIiOiAiaW1wb3J0IiwgCiAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhzLnB5IjogImltcG9ydCIsIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25m
aWcuZGVmYXVsdC5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jb25maWcuZGVmYXVsdC5qc29uCmluZGV4IGE1NWIxN2MzZGUzZDhiYzMzZmM0MzAyNGM0
NWE0MTFlYjEzMTgzZjYuLjIxYzRhOWE5MDZiNWE1ZmY4ZGFiMDk2OGVlYzY0YzFjZmQ0MDA0MmYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y29uZmlnLmRlZmF1bHQuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NvbmZpZy5kZWZhdWx0Lmpzb24KQEAgLTEsNCArMSw0IEBACi17Imhvc3Qi
OiAid2ViLXBsYXRmb3JtLnRlc3QiLAoreyJicm93c2VyX2hvc3QiOiAid2ViLXBsYXRmb3JtLnRl
c3QiLAogICJkb2Nfcm9vdCI6IG51bGwsCiAgIndzX2RvY19yb290IjogbnVsbCwKICAiZXh0ZXJu
YWxfaG9zdCI6IG51bGwsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL09XTkVSUyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvT1dORVJTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MTQ5YmU3ZmNhNWI4
ZGUxYWUxYzI1ZDFhNGU0ZGE2OTkyMGE4M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL09XTkVSUwpAQCAtMCwwICsx
LDIgQEAKK0BqZ3JhaGFtCitAZ3NuZWRkZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9yLnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvYXBwdmV5b3IueW1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIwY2VkZDVjNzhmYmJlYmU4ZGMwNjljMmZlNTFkZjRkOWQ1OTlmOTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2FwcHZleW9yLnltbApAQCAtMCwwICsxLDMyIEBACitlbnZpcm9ubWVudDoKKyAgZ2xv
YmFsOgorICAgIEhZUE9USEVTSVNfUFJPRklMRTogY2kKKyAgbWF0cml4OgorICAgIC0gUFlUSE9O
OiAnQzpcXFB5dGhvbjI3JworICAgIC0gUFlUSE9OOiAnQzpcXFB5dGhvbjM1JworICAgIC0gUFlU
SE9OOiAnQzpcXFB5dGhvbjM2JworCisjIE5lZWRlZCB0byBtYWtlIHB5LnRlc3QgYmVsaWV2ZSBv
dXIgdG9wIGxldmVsIGNhbiBiZSBpbXBvcnRlZCAod2UKKyMgb3RoZXJ3aXNlIGVuZCB1cCBpbiBh
IHdwdC10b29scyBkaXJlY3RvcnksIGFuZCBvZiBjb3Vyc2UgeW91IGNhbm5vdAorIyBpbXBvcnQg
YSBuYW1lIGluY2x1ZGluZyBhIGh5cGhlbiBpbiBQeXRob24sIHNvIGl0IGlnbm9yZXMgdGhlIGZh
Y3QKKyMgd2UgaGF2ZSBhIF9faW5pdF9fLnB5IGF0IHRoZSB0b3AgbGV2ZWwpLgorY2xvbmVfZm9s
ZGVyOiAnQzpccHJvamVjdHNcd3B0dG9vbHMnCisKK2luaXQ6CisgIC0gJ2dpdCBjb25maWcgLS1n
bG9iYWwgY29yZS5hdXRvY3JsZiB0cnVlJworCitpbnN0YWxsOgorICAtICdybSAuZ2l0XGluZGV4
JworICAtICdnaXQgcmVzZXQgLS1oYXJkJworICAtICdTRVQgUEFUSD0lUFlUSE9OJTslUFlUSE9O
JVxcU2NyaXB0czslUEFUSCUnCisgIC0gJ2dpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJl
Y3Vyc2l2ZScKKyAgLSAncHl0aG9uLmV4ZSAtbSBwaXAgaW5zdGFsbCB0b3ggY29kZWNvdicKKwor
YnVpbGQ6IG9mZgorCit0ZXN0X3NjcmlwdDoKKyAgLSAndG94IC1lIHB5JworCitvbl9zdWNjZXNz
OgorICAtICdjb3ZlcmFnZSBjb21iaW5lJworICAtICdjb2RlY292JwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNl
cnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jZXJ0cy9jYWNlcnQucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YTYxYzQ3YjM3Y2Q3NzZlZjU5NTIwZGQz
YjViYWQwNDExMjE0N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0KQEAgLTAsMCArMSw4
MyBAQAorQ2VydGlmaWNhdGU6CisgICAgRGF0YToKKyAgICAgICAgVmVyc2lvbjogMyAoMHgyKQor
ICAgICAgICBTZXJpYWwgTnVtYmVyOiAxICgweDEpCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTog
c2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgSXNzdWVyOiBDTj13ZWItcGxhdGZvcm0t
dGVzdHMKKyAgICAgICAgVmFsaWRpdHkKKyAgICAgICAgICAgIE5vdCBCZWZvcmU6IERlYyAyMiAx
MjowOToxNSAyMDE0IEdNVAorICAgICAgICAgICAgTm90IEFmdGVyIDogRGVjIDIxIDEyOjA5OjE1
IDIwMjQgR01UCisgICAgICAgIFN1YmplY3Q6IENOPXdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAg
ICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKKyAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3Jp
dGhtOiByc2FFbmNyeXB0aW9uCisgICAgICAgICAgICAgICAgUHVibGljLUtleTogKDIwNDggYml0
KQorICAgICAgICAgICAgICAgIE1vZHVsdXM6CisgICAgICAgICAgICAgICAgICAgIDAwOmMwOjNl
OmMzOmJkOmI3OjllOjJlOjNlOmVjOjFmOmE1OmFlOjlmOjg1OgorICAgICAgICAgICAgICAgICAg
ICA4ZDpjMDo1OTphNDo0MDphODpmZTo2NjpjZjplZjo3ZDoxZjo0YTo5MTo1MjoKKyAgICAgICAg
ICAgICAgICAgICAgZTY6NTU6MGY6ZTU6Njk6Yjg6NDQ6ZGE6NjI6MTc6Yzc6ODg6Mjg6YWQ6ZWM6
CisgICAgICAgICAgICAgICAgICAgIDZkOmIwOjAwOmNkOmExOjY5OjBlOmU4OjE5Ojg0OjU4OmFk
OmU5OmNlOjMxOgorICAgICAgICAgICAgICAgICAgICA1MDo2YzphNDo4MjoxNDo5MTowODo1YTph
MzphZTpjODo0OToxMzoxOToxODoKKyAgICAgICAgICAgICAgICAgICAgN2I6NWI6MmI6NDQ6MzA6
ZWI6YmY6Yzc6N2M6YmI6ZDQ6MzI6MTc6NmE6NGQ6CisgICAgICAgICAgICAgICAgICAgIGViOjg0
OmYxOjY1OjliOjlkOjIxOjNlOjkxOmFlOjc0Ojc1OmIzOjdjOmI0OgorICAgICAgICAgICAgICAg
ICAgICBjZDpmYTo5ODo3MzpkNDo3YzpkMTo1ZDoxYjo4OTo3MjpmNzpkNDo1MjpiZDoKKyAgICAg
ICAgICAgICAgICAgICAgMDU6YTM6YzE6Y2Y6YjY6NTg6ZTc6NTE6ZWM6YzI6NzE6Yzc6ZjY6MGI6
MDA6CisgICAgICAgICAgICAgICAgICAgIDk3OjU4OmY5OmNiOmMzOjE4OjQ2OjdiOjU1OjBmOjkw
OmJmOmRhOmEzOjdkOgorICAgICAgICAgICAgICAgICAgICBkNjpjNTo0ODplYTpiMzpiNTphODox
Mjo5NjphYzozODo2NToxMDpiOTpiMToKKyAgICAgICAgICAgICAgICAgICAgNjk6Y2I6NGU6M2I6
NGM6YzM6ODM6NzQ6MzM6NjM6YjQ6Y2M6ZmU6NjU6YzE6CisgICAgICAgICAgICAgICAgICAgIGFk
OjEyOjUxOmYxOjAyOjcyOjUwOjQ5OjAzOmFiOmE2OjI4OjIwOjQxOjE1OgorICAgICAgICAgICAg
ICAgICAgICBjYTo3NzoxNTpkOTo4NTo1NTo2OTo5ZDozMTpjMTpkYjoxMjpiZTo0NjpkYjoKKyAg
ICAgICAgICAgICAgICAgICAgZTY6ZDM6OGY6MmY6NjY6MmQ6OWI6NjE6MDg6MzA6NTc6NmM6ZDk6
NGY6YjE6CisgICAgICAgICAgICAgICAgICAgIDZhOmE4OmU1OjkwOmUzOmUyOjY4Ojk2OjQ1OjZl
OjNmOmRlOjVlOjEzOmZlOgorICAgICAgICAgICAgICAgICAgICA4YTpiZDpmMTozZjo3ZjoyNjpl
YzozYzoxYTo4MDpiMDphODplYzo1MjpjNToKKyAgICAgICAgICAgICAgICAgICAgMTE6MDMKKyAg
ICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCisgICAgICAgIFg1MDl2MyBl
eHRlbnNpb25zOgorICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKKyAgICAg
ICAgICAgICAgICBDQTpUUlVFCisgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRp
ZmllcjogCisgICAgICAgICAgICAgICAgNkE6QUI6NTM6NjQ6OTI6MzY6ODc6MjM6MzQ6QjM6MUQ6
NkY6ODU6NEI6RjU6REY6NUE6NUM6NzQ6OEYKKyAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkg
S2V5IElkZW50aWZpZXI6IAorICAgICAgICAgICAgICAgIGtleWlkOjZBOkFCOjUzOjY0OjkyOjM2
Ojg3OjIzOjM0OkIzOjFEOjZGOjg1OjRCOkY1OkRGOjVBOjVDOjc0OjhGCisgICAgICAgICAgICAg
ICAgRGlyTmFtZTovQ049d2ViLXBsYXRmb3JtLXRlc3RzCisgICAgICAgICAgICAgICAgc2VyaWFs
OjAxCisKKyAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAorICAgICAgICAgICAgICAgIENl
cnRpZmljYXRlIFNpZ24KKyAgICAgICAgICAgIFg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2U6IAor
ICAgICAgICAgICAgICAgIFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uCisgICAgU2lnbmF0
dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgIDQ2OmFmOjAy
OjA0Ojk3OjJmOjViOjAwOjExOmM1OjhmOmM0OmUxOjJiOjIzOjYyOmQxOjYxOgorICAgICAgICAg
NGE6Mjg6ZWQ6ODI6ODI6NTc6ZDc6Mjg6NjU6ODg6YTU6NjE6MTY6MjA6Mzc6MDI6OTA6MTY6Cisg
ICAgICAgICAwYjowNTo0Mzo0NjpkYjpiZDozZDpiNDo0ZDoxYzo2ZTo4NTpmZjo1ZDpkYzowZjph
NDphNDoKKyAgICAgICAgIDI5Ojk4OjI0OmFlOjM5OmFiOmU0Ojk3OmE5OjEwOmJjOmE1OmI5OjRi
OmMxOjJlOjVhOmNlOgorICAgICAgICAgODk6MzI6MDA6ZjE6ZmM6OTQ6MzU6YTY6NzE6Yzg6OWM6
ZDk6MDU6NDM6NDQ6NmM6Njg6NjI6CisgICAgICAgICBhZTpiMTo3MToyMDoxNzo1ZjpjNDpmYjph
ZTowNTplNjoyNjplNTo0MTo4ODpjYzpkYjo1MToKKyAgICAgICAgIDU1OmVkOjg1OmEwOmM5OmU1
OjY4OjY1OmE3OmZhOjdhOmRiOjhmOjgxOjYxOjYwOjUwOjBiOgorICAgICAgICAgMTY6YjA6MTA6
NDk6MTk6YmI6NzA6MGU6Mzc6MDk6MDM6MjA6ZTg6YTI6Yjk6ZTU6ZWI6YzI6CisgICAgICAgICA2
YTo3Yjo0Zjo2MDpjZDpmYjoyMjowYjoyNzpjNjowZDoyZDplMjozMjpjYzoyODpkZTpjNjoKKyAg
ICAgICAgIGUyOjE0OjZhOmFkOjNmOmM0OjZlOjc4OjlkOjcxOjI0OjliOjU2OmM0OjU0OjI4OmU5
OmVjOgorICAgICAgICAgMDk6NmU6MzQ6Y2M6NmQ6NWM6YmM6ZTY6Njg6OTY6NDQ6ZmY6NjI6ZDA6
NTQ6YTA6YTQ6Mzc6CisgICAgICAgICBkODpmNzo5ZjpiYzpiYjpkYzphZDoyYzo0OTplMjo2NDpi
OTo0ZDphYTplNDoyMjplNjpkZjoKKyAgICAgICAgIDNhOjE3OjIzOjEzOmMxOmFhOjBlOjk0OjI3
OjQ2OjVkOjExOmI5OjBiOmRjOjNkOmNmOjkzOgorICAgICAgICAgMjA6ZWI6MTg6NTY6YzU6YWM6
ZTM6OTI6ZWI6NTU6ZDM6Y2I6Y2U6ZTQ6OWM6MjE6ODU6ZDY6CisgICAgICAgICAyMTo5Mzo5Mjo0
ZgorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEVHpDQ0FqZWdBd0lCQWdJQkFUQU5C
Z2txaGtpRzl3MEJBUXNGQURBZE1Sc3dHUVlEVlFRRERCSjNaV0l0CitjR3hoZEdadmNtMHRkR1Z6
ZEhNd0hoY05NVFF4TWpJeU1USXdPVEUxV2hjTk1qUXhNakl4TVRJd09URTFXakFkCitNUnN3R1FZ
RFZRUUREQkozWldJdGNHeGhkR1p2Y20wdGRHVnpkSE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVB
CitBNElCRHdBd2dnRUtBb0lCQVFEQVBzTzl0NTR1UHV3ZnBhNmZoWTNBV2FSQXFQNW16Kzk5SDBx
UlV1WlZEK1ZwCit1RVRhWWhmSGlDaXQ3RzJ3QU0yaGFRN29HWVJZcmVuT01WQnNwSUlVa1FoYW82
N0lTUk1aR0h0YkswUXc2Ny9ICitmTHZVTWhkcVRldUU4V1diblNFK2thNTBkYk44dE0zNm1IUFVm
TkZkRzRseTk5UlN2UVdqd2MrMldPZFI3TUp4Cit4L1lMQUpkWStjdkRHRVo3VlErUXY5cWpmZGJG
U09xenRhZ1NscXc0WlJDNXNXbkxUanRNdzROME0yTzB6UDVsCit3YTBTVWZFQ2NsQkpBNnVtS0NC
QkZjcDNGZG1GVldtZE1jSGJFcjVHMitiVGp5OW1MWnRoQ0RCWGJObFBzV3FvCis1WkRqNG1pV1JX
NC8zbDRUL29xOThUOS9KdXc4R29Dd3FPeFN4UkVEQWdNQkFBR2pnWmt3Z1pZd0RBWURWUjBUCitC
QVV3QXdFQi96QWRCZ05WSFE0RUZnUVVhcXRUWkpJMmh5TTBzeDF2aFV2MTMxcGNkSTh3UlFZRFZS
MGpCRDR3CitQSUFVYXF0VFpKSTJoeU0wc3gxdmhVdjEzMXBjZEkraElhUWZNQjB4R3pBWkJnTlZC
QU1NRW5kbFlpMXdiR0YwCitabTl5YlMxMFpYTjBjNElCQVRBTEJnTlZIUThFQkFNQ0FnUXdFd1lE
VlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0V3CitEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRWF2QWdT
WEwxc0FFY1dQeE9FckkyTFJZVW9vN1lLQ1Y5Y29aWWlsCitZUllnTndLUUZnc0ZRMGJidlQyMFRS
eHVoZjlkM0Era3BDbVlKSzQ1cStTWHFSQzhwYmxMd1M1YXpva3lBUEg4CitsRFdtY2NpYzJRVkRS
R3hvWXE2eGNTQVhYOFQ3cmdYbUp1VkJpTXpiVVZYdGhhREo1V2hscC9wNjI0K0JZV0JRCitDeGF3
RUVrWnUzQU9Od2tESU9paXVlWHJ3bXA3VDJETit5SUxKOFlOTGVJeXpDamV4dUlVYXEwL3hHNTRu
WEVrCittMWJFVkNqcDdBbHVOTXh0WEx6bWFKWkUvMkxRVktDa045ajNuN3k3M0swc1NlSmt1VTJx
NUNMbTN6b1hJeFBCCitxZzZVSjBaZEVia0wzRDNQa3lEckdGYkZyT09TNjFYVHk4N2tuQ0dGMWlH
VGtrOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FrZXkucGVtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9j
YWtleS5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNThiNWZmNzU2ODRhMzA3NmFiZDM3ZjEzNWNmMjRhNjU0YTE3
NTkyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FrZXkucGVtCkBAIC0wLDAgKzEsMzAgQEAKKy0tLS0t
QkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KK01JSUZEakJBQmdrcWhraUc5dzBCQlEw
d016QWJCZ2txaGtpRzl3MEJCUXd3RGdRSWI5RVM3aDZZR0JjQ0FnZ0EKK01CUUdDQ3FHU0liM0RR
TUhCQWkyWlZMZ3ExWHZhZ1NDQk1qQW1HRVZ2andYdkYwMHZldVFtSnNtY2pWSEIvcVAKK1ZxU1hq
Q1E5NG9yWmI4OVVmRm5QTzl6WGR2TFd4cndiNVdQNmJiUXYrU2g0aHRFeFhDRDVYWmkxQXpXTkN5
YmUKK2RhMHZ2UUdnamR6VWgyZkNyRzRLN0owdzIwbHJZZ3czSFZTai9XdG1kYmRaRmRvWCtCZ1hy
eGNxa0UzTTVvcFoKKzNVRDN5SVFlWFN4VWtoM2l2Nnp6WmFXdWp4akRJMkpwd3hSbU1WYnJyOE9l
QnJLSnNxQjJEbkttcStlbW12RUYKK2lYVE4zV3cvQWo2R0lxZlBaOGpwVmR3Y1ZONVFwZUhBaDdi
MmxzenQ3R0VPR2NCaHV0UHE0QXF5OFBJaURSODAKK3NVWUk3VjhPWG0rWTQ1RG5ma3Zzb2daRWlm
T2lVclEyVSthR0R1K1p0ODg2NjF3VnpqcSt2b0psejhFYUlQQ0UKK0IvTlMyU2dOcUkyL0RyakVF
ZWNuNmhqZ0hXSVVCd09mZU5vU2kxVHJpNktaRnl4RzI2TEUvVjhDZDUweW9keDkKK3BCZ0Z4ZENi
bVlMZVJjVmVYVzJidTBaTWpQZGRSbFI1TUhmcmtNNVpBemU3blJ4b2l5V25CL1U4cFBmK2JRdngK
K0s0UDlLY3dDT2VIaWdrYUNZWktxN25tWnlFeTRrbTg5ekl1Z1QvWVdoTVd5Vnd5bFRwYWdhaWlK
d1lManVnOG4KK0NiRlpXQWtPUkJJbDJnL1lDdVRCVUp0QzJJV1g4a3crbllWd3FCc3pwWnlDNm5i
aGEyVW1oUURmTUFvd1FBNXYKK24xTG5WOEk2Zjd1NkhpZGJCOFdYMlVab2gwM0E0YmVDQnorZHEy
VmFVcXVMVEw0S1FUSXorNnJ3N25FeXNybkgKK1RJYjhTbHdzWUFsenp3eXlNOWRTV3Q3aVFlTmpt
SDd6TDBNb3pNczNMS0hJcnNXaTdaWmg4QlVZblQydktkTlYKKzJaTE9NY1IwdFlWbVZaOHVZa1I5
a255L2ZiWmNLTjU0eFNjb2hBMlVYMjYxVytzV2lFZ04rUmFCc1E3OXBGZ2kKK3ZZbGRmamFHTlN2
ZnRYYTU5MHhuMnRsUzYvc3VCNU14aVc1ZzNQdUJnNVh0Vlo5NWwwZjFuMzc2WGg0MXNKdjgKK1lI
ckN0RkhPbFNwREpVTEdpWFZoL3dYQm1TN3FKOERoblVVRzY5OUVkbHNGZjZRZzIyV0IzQVpSdkVK
ZFlDNHoKK1A4VytqWjE1TlREYkhnM0h2Ny9DRllWemJYdjJ3MGpraXFRZ0RGL3djNnQvRWRMRCsy
aHpjTituSkdqdHhaYm4KK3hqYlhjZzk4Q1VNVStkYy9hRDRONDVLOWU5clBnMytpWkx3dnNSdnd4
K01zem1neHhQdjA1cE55Uk83UlZrOHIKK2dreXlwOS9DSkZtZSs0bkZLVWMwZFV5MnlOWFp0a2xU
WDBYS20vWU5LaW42dVVNbElBcklhNTRDZnZ0OVFzbFYKK2lEK1N4VTFaSG16d0tUODIrNVplSVJM
Tld2RlYvOUU0bkQrQlRhZ0syRmR3bnN1MVMyazdJdEQ5bEsvY0JQR1MKKzB0ejFIV3Y0QXVqM3dN
UFprbHAzU1FsdU9sNmVBSVZxcUk5R2FYL2Q0MkRjdEJRV0xUYTI3WWliV3lOSWN3N28KKzNOOEdE
UkVNYXdUQmREUndsWjNvVCt5aUdMWDFjOGRzMm8wLzRJY0psT2tEb3hYRXJtZGxabzlvVmU2ejRS
N2cKKzYyeVI1M2F0VlRMb1VuQWp4SFh4MGJKaXlheXY5WTN3ak9FdnVodXFkZDlGK0hPaFR0QUhy
L0JKUU5oRWsrejgKKzUzMUNaVEpqYjFwMTFQYk90SEdWMkllQjBTODJteGtrWFJ5a0VYT2I4OVpw
REhOUmlNaW5UaFJrb0NtdVJJOXIKK2RUaUVTOUIwMnlNUHhKM3NMUXlEeENvUzVtd2ZjQXFLVGVL
K3lDdlR2QnkrdDV0dzYzRGJXbE1wLzdBaHk2NUsKK3JXTUhkd3F3Zm9CK1pZdzVzWVpkUHZ1QlZB
VDAxSTJKYk9xWDM2UmFjUXVsdEZuczJPaW54T0pIYTFIanRYeVMKK2NQVkVrTWE3Y2kzWW05ajVS
UU5MVnNnSmU3WUs5SGl4WDVIalFGQW93QUgycFhaNXBLSklKWXhQSVVLdFpsc3oKK3FiTT0KKy0t
LS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
ZXJ0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTZiYTZlZDcxZDc4ZTJiMTgzNjYzZjVh
ZjhlMDAxZjM1OGQyMTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2Nha2V5LnBlbQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRl
c3Qua2V5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRl
c3Qua2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5ZjQyMjE4NDI3OTUw
YjE5MWVjNTdjYTRiMWI1MTA4M2RhODQyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3Jt
LnRlc3Qua2V5CkBAIC0wLDAgKzEsMjggQEAKKy0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQor
TUlJRXZnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2d3Z2dTa0FnRUFBb0lCQVFDemhOYUxB
VmtZaGRIYworTXQ4NDk1Q0ZHejZsWG9FK0wvdzZYMzkzN3lPN09vZ25ENzRsUnMxamZjdVYyS1ZR
RU5LaTByZVgwUTFzKy9rRgorNkcrb1M3MlZaNTU3bEZpcGJaUDk0QkxGemJTS1pGSXhYdzdqaVlS
eDJwamRTK3dDSmFWOU5mNWoyck9zN0tWRworRHcxa0kxeHQ4K3pNS0dNandFdWE3SS9CN3JHaVBu
Sk5jTFVKd2V1MEVGVThpK29ibEg1TGRPYjBuMCttUlRDMQorOExpMDBWbFFaUXFHVStwTW41NzBX
R3d4OVJjNmIxZUx5MS93S0F0RmtvMHdJRW4vVXVZc3l4aWExK2J1UGs4MAorTlJVVHhRTGF4Visr
KzF2T2piKzFOWFk4Zk9hY095YUhUWTJBNWhiR0ovSlFTYlp5ZEVOSlNVUTR1M2hESSs0VworUHRs
aTVxWFhBZ01CQUFFQ2dnRUJBSWN3RFFTbklqbzJaRUNIeXRReWtwRzZYNlhYRWtzTGhjMUxwMGxo
UEM0OQordU5SNXBYNmE0QWNCYjNQTHIwb3BNUVpPMnRVb0tBMGZmM3QwZThsb0tEKy94WGhZMFov
ZGxpb0VPUDdlbHd2MAorMm5TMW1oZTlzcEN1eHBrNEdHWFJoZHRSOHQydGo4czBkbzNZdmdQZ0lU
WG9FRFg2WUJaSE5HaFpwelNyRlBnUQorL2MzZUdDVm16V1l1TEZmZGo1T1BROWJ3VGFZNEpTdkRM
WlQwL1dUZ2lpY2E3VnlTd2Z6M0hQMWZGcU55a1RpSworQUNRUkV2dHhmazVZbTJuVDZvbmk3Q00y
ek9FSkw5U1hpY1hJNUhPNGJFUkgwWlloLy9GM2c2bXdHaUZYVUpQZAorTktnYVRNMW9UOWtSR2tV
YUVZc1JXcmRkd1I4ZDVtWEx2QnVUSmJnSXNTRUNnWUVBMSsydUpTWVJXMU9xYmhZUAorbXM1OVlR
SFNzM1ZqcEpwbkNWMnpOYTJXaXhzNTdLUzJjT0g3QjZLclFDb2dKRkx0Z0NEVkx0eW9FcmZWa0Q3
RQorRml2VGdZcjFwVkNScHBKZGRRelhpazMxdU9JTk9CVmZmcjcvMDlnM0djUk4rdWJIUFpQcTNL
K2RENmdIYTNBagorMG5IMUVqRUVWMFFwU1RRRm44N09GMm1jOXdjQ2dZRUExTlZxTWJiemQrOVhm
dDVGWHVTYlg2RStTMDJkT0dhdAorU2dwbmtUTTgwcmpxYTZlSGRRenFrM0pxeXRlSFBnZGkxdmRZ
UmxTUE9qL1grNnR5U1kwRWo5c1JuWU9mZGRBMgora3BpRGlWa21pcVZvbHlKUFk2OVV0aitFM1R6
SjF2aENRdVlrbkptQjd6UDl0RGNUeE1lcTBsL05hV3ZHc2hFSworeUM0VVRRb2cxckVDZ1lBU09G
SUxmR3pXZ2ZiTmx6cjEyeHFsUnR3YW5Ic3Q5b0ZmUHZMU1FyV0RRMmJkMndBeQorQWorR1kybUQz
b29ieG91WDFpMW02T09kd0xsYWxKRkROYXVCTU5LTmdvRG54MDN2aElmamViU1VSeTdLWHJOUwor
SkplOXJtN24wN0tveXpSZ3M4eUxscDN3SmtPS0EwcGloWThpVzlSNzhKcHpQTnFFbzVTc1VSTVhu
UUtCZ0JsVgorZ2Z1QzlINHRQalA2enpVWmJ5azE3MDFWWXNhSTZrMnE2V01PUDBveCtxMXYxcDdu
TjdEdmFLaldlT0c0VFZxYgorUEtXNmdRWUUvWGVXazljUGN5Q1FpZ3MrMUtkWWJuYUtzdldSYUJZ
TzFHRlJFelFoZGFydjZxZlBDWk9PSDQwSgorQ2dpZCtTcDQvTlVMelUyYUdzcEozeENTWktkamdl
NE1GaHlKZlJreEFvR0JBSmx3cVk0bnVlME1CTEdOcHFjcworV3dEdFNhc0h2ZWdLQWN4R0JLTDVv
V1BiTEJrN2hrK2hkcWM4ZjZZcUNrQ05xdi9vb0JzcEwxNUVTSXRMKzZ5VAorenQwWWtLNG9IOXRt
TERiK3J2cVo3WmRYYldTd0tJVE1vQ3l5SFV0VDZPS3QvUnRBMFZkeTlMUG5QMjdvU08vQworZGs4
UWY3S2dLWkxXbzBaTmt2dzM4dEVDCistLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Nl
cnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk2NWU4ODdlNGVkMjAzOWQyMGU1YzQ3ZTNmOWNmOWVmMjkxNWQyZTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbQpAQCAtMCwwICsxLDg2IEBACitDZXJ0aWZpY2F0
ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAzICgweDIpCisgICAgICAgIFNlcmlhbCBO
dW1iZXI6IDIgKDB4MikKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5j
cnlwdGlvbgorICAgICAgICBJc3N1ZXI6IENOPXdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAgICBW
YWxpZGl0eQorICAgICAgICAgICAgTm90IEJlZm9yZTogRGVjIDIyIDEyOjA5OjE2IDIwMTQgR01U
CisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBEZWMgMjEgMTI6MDk6MTYgMjAyNCBHTVQKKyAgICAg
ICAgU3ViamVjdDogQ049d2ViLXBsYXRmb3JtLnRlc3QKKyAgICAgICAgU3ViamVjdCBQdWJsaWMg
S2V5IEluZm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlv
bgorICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4IGJpdCkKKyAgICAgICAgICAgICAg
ICBNb2R1bHVzOgorICAgICAgICAgICAgICAgICAgICAwMDpiMzo4NDpkNjo4YjowMTo1OToxODo4
NTpkMTpkYzozMjpkZjozODpmNzoKKyAgICAgICAgICAgICAgICAgICAgOTA6ODU6MWI6M2U6YTU6
NWU6ODE6M2U6MmY6ZmM6M2E6NWY6N2Y6Nzc6ZWY6CisgICAgICAgICAgICAgICAgICAgIDIzOmJi
OjNhOjg4OjI3OjBmOmJlOjI1OjQ2OmNkOjYzOjdkOmNiOjk1OmQ4OgorICAgICAgICAgICAgICAg
ICAgICBhNTo1MDoxMDpkMjphMjpkMjpiNzo5NzpkMTowZDo2YzpmYjpmOTowNTplODoKKyAgICAg
ICAgICAgICAgICAgICAgNmY6YTg6NGI6YmQ6OTU6Njc6OWU6N2I6OTQ6NTg6YTk6NmQ6OTM6ZmQ6
ZTA6CisgICAgICAgICAgICAgICAgICAgIDEyOmM1OmNkOmI0OjhhOjY0OjUyOjMxOjVmOjBlOmUz
Ojg5Ojg0OjcxOmRhOgorICAgICAgICAgICAgICAgICAgICA5ODpkZDo0YjplYzowMjoyNTphNTo3
ZDozNTpmZTo2MzpkYTpiMzphYzplYzoKKyAgICAgICAgICAgICAgICAgICAgYTU6NDY6MGY6MGQ6
NjQ6MjM6NWM6NmQ6ZjM6ZWM6Y2M6Mjg6NjM6MjM6YzA6CisgICAgICAgICAgICAgICAgICAgIDRi
OjlhOmVjOjhmOmMxOmVlOmIxOmEyOjNlOjcyOjRkOjcwOmI1OjA5OmMxOgorICAgICAgICAgICAg
ICAgICAgICBlYjpiNDoxMDo1NTozYzo4YjplYToxYjo5NDo3ZTo0Yjo3NDplNjpmNDo5ZjoKKyAg
ICAgICAgICAgICAgICAgICAgNGY6YTY6NDU6MzA6YjU6ZjA6Yjg6YjQ6ZDE6NTk6NTA6NjU6MGE6
ODY6NTM6CisgICAgICAgICAgICAgICAgICAgIGVhOjRjOjlmOjllOmY0OjU4OjZjOjMxOmY1OjE3
OjNhOjZmOjU3OjhiOmNiOgorICAgICAgICAgICAgICAgICAgICA1ZjpmMDoyODowYjo0NTo5Mjo4
ZDozMDoyMDo0OTpmZjo1MjplNjoyYzpjYjoKKyAgICAgICAgICAgICAgICAgICAgMTg6OWE6ZDc6
ZTY6ZWU6M2U6NGY6MzQ6MzU6MTU6MTM6YzU6MDI6ZGE6YzU6CisgICAgICAgICAgICAgICAgICAg
IDVmOmJlOmZiOjViOmNlOjhkOmJmOmI1OjM1Ojc2OjNjOjdjOmU2OjljOjNiOgorICAgICAgICAg
ICAgICAgICAgICAyNjo4Nzo0ZDo4ZDo4MDplNjoxNjpjNjoyNzpmMjo1MDo0OTpiNjo3Mjo3NDoK
KyAgICAgICAgICAgICAgICAgICAgNDM6NDk6NDk6NDQ6Mzg6YmI6Nzg6NDM6MjM6ZWU6MTY6M2U6
ZDk6NjI6ZTY6CisgICAgICAgICAgICAgICAgICAgIGE1OmQ3CisgICAgICAgICAgICAgICAgRXhw
b25lbnQ6IDY1NTM3ICgweDEwMDAxKQorICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKKyAgICAg
ICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCisgICAgICAgICAgICAgICAgQ0E6RkFM
U0UKKyAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOiAKKyAgICAgICAg
ICAgICAgICAyRDo5ODpBMzo5OTozOToxQzpGRTpFOTo5QTo2RDoxNzo5NDpEMjozQTo5NjpFRTpD
ODo5RTowNDoyMgorICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjog
CisgICAgICAgICAgICAgICAga2V5aWQ6NkE6QUI6NTM6NjQ6OTI6MzY6ODc6MjM6MzQ6QjM6MUQ6
NkY6ODU6NEI6RjU6REY6NUE6NUM6NzQ6OEYKKworICAgICAgICAgICAgWDUwOXYzIEtleSBVc2Fn
ZTogCisgICAgICAgICAgICAgICAgRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwg
S2V5IEVuY2lwaGVybWVudAorICAgICAgICAgICAgWDUwOXYzIEV4dGVuZGVkIEtleSBVc2FnZTog
CisgICAgICAgICAgICAgICAgVExTIFdlYiBTZXJ2ZXIgQXV0aGVudGljYXRpb24KKyAgICAgICAg
ICAgIFg1MDl2MyBTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWU6IAorICAgICAgICAgICAgICAgIERO
Uzp3ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1u
OGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud2Vi
LXBsYXRmb3JtLnRlc3QKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5j
cnlwdGlvbgorICAgICAgICAgMzM6ZGI6Zjc6ZjA6ZjY6OTI6MTY6NGY6MmQ6NDI6YmM6Yjg6YWE6
ZTY6YWI6NWU6Zjk6Yjk6CisgICAgICAgICBiMDo0ODphZTpiNTo4ZDpjYzowMjo3YjplOTo2Zjo0
ZTo3NTpmNzoxNzphMDo1ZTo3Yjo4NzoKKyAgICAgICAgIDA2OjQ5OjQ4OjgzOmM1OmJiOmNhOjk1
OjA3OjM3OjBlOjVkOmUzOjk3OmRlOjllOjBjOmE0OgorICAgICAgICAgODI6MzA6MTE6ODE6NDk6
NWQ6NTA6Mjk6NzI6OTI6YTU6Y2E6MTc6YjE6N2M6ZjE6MzI6MTE6CisgICAgICAgICAxNzo1Nzpl
Njo1OTpjMTphYzplMzozYjoyNjpkMjo5NDo5Nzo1MDo2YTpiOTo1NDo4ODo4NDoKKyAgICAgICAg
IDliOjZmOmIxOjA2OmY1OjgwOjA0OjIyOjEwOjE0OmIxOmY1Ojk3OjI1OmZjOjY2OmQ2OjY5Ogor
ICAgICAgICAgYTM6MzY6MDg6ODU6MjM6ZmY6OGU6M2M6MmI6ZTA6NmQ6ZTc6NjE6ZjE6MDA6OGY6
NjE6M2Q6CisgICAgICAgICBiMDo4NzphZDo3MjoyMTpmNjpmMDpjYzo0ZjpjOToyMDpiZjo4Mzox
MTowZjoyMTpmNDpiODoKKyAgICAgICAgIGMwOmRkOjljOjUxOmQ3OmJiOjI3OjMyOmVjOmFiOmE0
OjYyOjE0OjI4OjMyOmRhOmYyOjg3OgorICAgICAgICAgODA6Njg6OWM6ZWE6YWM6ZWI6ZjU6N2Y6
ZjU6ZGU6ZjQ6YzA6Mzk6OTE6Yzg6NzY6YTQ6ZWU6CisgICAgICAgICBkMDphODo1MDpkYjpjMTo0
YjpmOTpjNDozZDpkOTplODo4ZTpiNjozZjpjMDo5Njo3OToxMjoKKyAgICAgICAgIGQ4OmZhOjRk
OjBhOmIzOjM2Ojc2OmFhOjRlOmIyOjgyOjJmOmEyOmQ0OjBkOmRiOmZkOjY0OgorICAgICAgICAg
Nzc6NmY6NmU6ZTk6OTQ6N2Y6MGY6Yzg6M2E6M2M6OTY6M2Q6Y2Q6NGQ6NmM6YmE6NjY6OTU6Cisg
ICAgICAgICBmNzpiNDo5ZDphNDo5NDo5Zjo5NzpiMzo5YTowZDpkYzoxODo4YzoxMTowYjo1Njo2
NTo4ZToKKyAgICAgICAgIDQ2OjRjOmU2OjVlCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0K
K01JSUQyakNDQXNLZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRc0ZBREFkTVJzd0dRWURWUVFE
REJKM1pXSXQKK2NHeGhkR1p2Y20wdGRHVnpkSE13SGhjTk1UUXhNakl5TVRJd09URTJXaGNOTWpR
eE1qSXhNVEl3T1RFMldqQWMKK01Sb3dHQVlEVlFRREV4RjNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRE
Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQUQKK2dnRVBBRENDQVFvQ2dnRUJBTE9FMW9zQldSaUYw
ZHd5M3pqM2tJVWJQcVZlZ1Q0di9EcGZmM2Z2STdzNmlDY1AKK3ZpVkd6V045eTVYWXBWQVEwcUxT
dDVmUkRXejcrUVhvYjZoTHZaVm5ubnVVV0tsdGsvM2dFc1hOdElwa1VqRmYKK0R1T0poSEhhbU4x
TDdBSWxwWDAxL21QYXM2enNwVVlQRFdRalhHM3o3TXdvWXlQQVM1cnNqOEh1c2FJK2NrMXcKK3RR
bkI2N1FRVlR5TDZodVVma3QwNXZTZlQ2WkZNTFh3dUxUUldWQmxDb1pUNmt5Zm52UlliREgxRnpw
dlY0dkwKK1gvQW9DMFdTalRBZ1NmOVM1aXpMR0pyWDV1NCtUelExRlJQRkF0ckZYNzc3Vzg2TnY3
VTFkang4NXB3N0pvZE4KK2pZRG1Gc1luOGxCSnRuSjBRMGxKUkRpN2VFTWo3aFkrMldMbXBkY0NB
d0VBQWFPQ0FTUXdnZ0VnTUFrR0ExVWQKK0V3UUNNQUF3SFFZRFZSME9CQllFRkMyWW81azVIUDdw
bW0wWGxOSTZsdTdJbmdRaU1COEdBMVVkSXdRWU1CYUEKK0ZHcXJVMlNTTm9jak5MTWRiNFZMOWQ5
YVhIU1BNQXNHQTFVZER3UUVBd0lGNERBVEJnTlZIU1VFRERBS0JnZ3IKK0JnRUZCUWNEQVRDQnNB
WURWUjBSQklHb01JR2xnaEYzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlWZDNkM0xuZGwKK1lpMXdi
R0YwWm05eWJTNTBaWE4wZ2lsNGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzUzWldJdGNH
eGgKK2RHWnZjbTB1ZEdWemRJSWVlRzR0TFd4MlpTMDJiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBa
WE4wZ2haM2QzY3kKK0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoWjNkM2N4TG5kbFlpMXdiR0Yw
Wm05eWJTNTBaWE4wTUEwR0NTcUcKK1NJYjNEUUVCQ3dVQUE0SUJBUUF6Mi9mdzlwSVdUeTFDdkxp
cTVxdGUrYm13U0s2MWpjd0NlK2x2VG5YM0Y2QmUKK2U0Y0dTVWlEeGJ2S2xRYzNEbDNqbDk2ZURL
U0NNQkdCU1YxUUtYS1NwY29Yc1h6eE1oRVhWK1pad2F6ak95YlMKK2xKZFFhcmxVaUlTYmI3RUc5
WUFFSWhBVXNmV1hKZnhtMW1tak5naUZJLytPUEN2Z2JlZGg4UUNQWVQyd2g2MXkKK0lmYnd6RS9K
SUwrREVROGg5TGpBM1p4UjE3c25NdXlycEdJVUtETGE4b2VBYUp6cXJPdjFmL1hlOU1BNWtjaDIK
K3BPN1FxRkRid1V2NXhEM1o2STYyUDhDV2VSTFkrazBLc3paMnFrNnlnaStpMUEzYi9XUjNiMjdw
bEg4UHlEbzgKK2xqM05UV3k2WnBYM3RKMmtsSitYczVvTjNCaU1FUXRXWlk1R1RPWmUKKy0tLS0t
RU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL19faW5pdF9fLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYmVmb3JlX2luc3RhbGwuc2ggYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0
YWxsLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliODBmZDk1Nzg1NDRlMDM5ZDk1YjRhNTNiNjNmZmUxN2RlNjMy
NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0YWxsLnNoCkBAIC0wLDAgKzEsMTMgQEAKKyMh
L2Jpbi9iYXNoCitzZXQgLWUKKworaWYgW1sgLXogJHtSVU5fSk9CK3h9ICYmICQoLi93cHQgdGVz
dC1qb2JzIC0taW5jbHVkZXMgJEpPQjsgZWNobyAkPykgLWVxIDAgXV0gfHwgW1sgJFJVTl9KT0Ig
LWVxIDEgXV07IHRoZW4KKyAgICBleHBvcnQgUlVOX0pPQj0xCisgICAgZ2l0IHN1Ym1vZHVsZSB1
cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlIDE+JjIKKyAgICBleHBvcnQgRElTUExBWT06OTkuMAor
ICAgIHNoIC1lIC9ldGMvaW5pdC5kL3h2ZmIgc3RhcnQgMT4mMgorICAgICMgRm9yIHVwbG9hZGlu
ZyB0aGUgbWFuaWZlc3QKKyAgICBleHBvcnQgV1BUX01BTklGRVNUX0ZJTEU9JEhPTUUvbWV0YS9N
QU5JRkVTVC0kKGdpdCByZXYtcGFyc2UgSEVBRCkuanNvbgorZWxpZiBbWyAteiAke1JVTl9KT0Ir
eH0gXV07IHRoZW4KKyAgICBleHBvcnQgUlVOX0pPQj0wCitmaQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFi
aWxpdHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NoZWNrX3N0YWJpbGl0eS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjE1ZTNjOWUxZGY1Y2JiZGZh
N2M1M2I1Nzc2Njc0YjAzNDc5OWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHkucHkK
QEAgLTAsMCArMSwzNjcgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K
KworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3Vi
cHJvY2VzcworaW1wb3J0IHN5cworZnJvbSBDb25maWdQYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQ
YXJzZXIKKworaW1wb3J0IHJlcXVlc3RzCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFy
ZGlyLCBvcy5wYXJkaXIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHdwdF9yb290KQorCitmcm9tIHRv
b2xzLndwdCBpbXBvcnQgdGVzdGZpbGVzCitmcm9tIHRvb2xzLndwdC50ZXN0ZmlsZXMgaW1wb3J0
IGdldF9naXRfY21kCitmcm9tIHRvb2xzLndwdC52aXJ0dWFsZW52IGltcG9ydCBWaXJ0dWFsZW52
Citmcm9tIHRvb2xzLndwdC51dGlscyBpbXBvcnQgS3dhcmdzCitmcm9tIHRvb2xzLndwdC5ydW4g
aW1wb3J0IGNyZWF0ZV9wYXJzZXIsIHNldHVwX3dwdHJ1bm5lcgorZnJvbSB0b29scy53cHQgaW1w
b3J0IG1hcmtkb3duCitmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzCisKK2xvZ2dlciA9IE5v
bmUKK3N0YWJpbGl0eV9ydW4sIHdyaXRlX2luY29uc2lzdGVudCwgd3JpdGVfcmVzdWx0cyA9IE5v
bmUsIE5vbmUsIE5vbmUKK3dwdHJ1bm5lciA9IE5vbmUKKworZGVmIHNldHVwX2xvZ2dpbmcoKToK
KyAgICAiIiJTZXQgdXAgYmFzaWMgZGVidWcgbG9nZ2VyLiIiIgorICAgIGdsb2JhbCBsb2dnZXIK
KyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihoZXJlKQorICAgIGhhbmRsZXIgPSBsb2dn
aW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZG91dCkKKyAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZv
cm1hdHRlcihsb2dnaW5nLkJBU0lDX0ZPUk1BVCwgTm9uZSkKKyAgICBoYW5kbGVyLnNldEZvcm1h
dHRlcihmb3JtYXR0ZXIpCisgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKKyAgICBsb2dn
ZXIuc2V0TGV2ZWwobG9nZ2luZy5ERUJVRykKKworCitkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6
CisgICAgZ2xvYmFsIHN0YWJpbGl0eV9ydW4sIHdyaXRlX2luY29uc2lzdGVudCwgd3JpdGVfcmVz
dWx0cywgd3B0cnVubmVyCisgICAgZnJvbSB0b29scy53cHQuc3RhYmlsaXR5IGltcG9ydCBydW4g
YXMgc3RhYmlsaXR5X3J1bgorICAgIGZyb20gdG9vbHMud3B0LnN0YWJpbGl0eSBpbXBvcnQgd3Jp
dGVfaW5jb25zaXN0ZW50LCB3cml0ZV9yZXN1bHRzCisgICAgZnJvbSB3cHRydW5uZXIgaW1wb3J0
IHdwdHJ1bm5lcgorCisKK2NsYXNzIFRyYXZpc0ZvbGQob2JqZWN0KToKKyAgICAiIiJDb250ZXh0
IGZvciBUcmF2aXNDSSBmb2xkaW5nIG1lY2hhbmlzbS4gU3ViY2xhc3NlcyBvYmplY3QuCisKKyAg
ICBTZWU6IGh0dHBzOi8vYmxvZy50cmF2aXMtY2kuY29tLzIwMTMtMDUtMjItaW1wcm92aW5nLWJ1
aWxkLXZpc2liaWxpdHktbG9nLWZvbGRzLworICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5hbWUpOgorICAgICAgICAiIiJSZWdpc3RlciBUcmF2aXNDSSBmb2xkaW5nIHNlY3Rpb24g
bmFtZS4iIiIKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorCisgICAgZGVmIF9fZW50ZXJfXyhz
ZWxmKToKKyAgICAgICAgIiIiRW1pdCBmb2xkIHN0YXJ0IHN5bnRheC4iIiIKKyAgICAgICAgcHJp
bnQoInRyYXZpc19mb2xkOnN0YXJ0OiVzIiAlIHNlbGYubmFtZSwgZmlsZT1zeXMuc3RkZXJyKQor
CisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIHR5cGUsIHZhbHVlLCB0cmFjZWJhY2spOgorICAgICAg
ICAiIiJFbWl0IGZvbGQgZW5kIHN5bnRheC4iIiIKKyAgICAgICAgcHJpbnQoInRyYXZpc19mb2xk
OmVuZDolcyIgJSBzZWxmLm5hbWUsIGZpbGU9c3lzLnN0ZGVycikKKworCitjbGFzcyBGaWx0ZXJl
ZElPKG9iamVjdCk6CisgICAgIiIiV3JhcCBhIGZpbGUgb2JqZWN0LCBpbnZva2luZyB0aGUgcHJv
dmlkZWQgY2FsbGJhY2sgZm9yIGV2ZXJ5IGNhbGwgdG8KKyAgICBgd3JpdGVgIGFuZCBvbmx5IHBy
b2NlZWRpbmcgd2l0aCB0aGUgb3BlcmF0aW9uIHdoZW4gdGhhdCBjYWxsYmFjayByZXR1cm5zCisg
ICAgVHJ1ZS4iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3JpZ2luYWwsIG9uX3dyaXRlKToK
KyAgICAgICAgc2VsZi5vcmlnaW5hbCA9IG9yaWdpbmFsCisgICAgICAgIHNlbGYub25fd3JpdGUg
PSBvbl93cml0ZQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICBy
ZXR1cm4gZ2V0YXR0cihzZWxmLm9yaWdpbmFsLCBuYW1lKQorCisgICAgZGVmIGRpc2FibGUoc2Vs
Zik6CisgICAgICAgIHNlbGYud3JpdGUgPSBsYW1iZGEgbXNnOiBOb25lCisKKyAgICBkZWYgd3Jp
dGUoc2VsZiwgbXNnKToKKyAgICAgICAgZW5jb2RlZCA9IG1zZy5lbmNvZGUoInV0ZjgiLCAiYmFj
a3NsYXNocmVwbGFjZSIpLmRlY29kZSgidXRmOCIpCisgICAgICAgIGlmIHNlbGYub25fd3JpdGUo
c2VsZi5vcmlnaW5hbCwgZW5jb2RlZCkgaXMgVHJ1ZToKKyAgICAgICAgICAgIHNlbGYub3JpZ2lu
YWwud3JpdGUoZW5jb2RlZCkKKworCitkZWYgcmVwbGFjZV9zdHJlYW1zKGNhcGFjaXR5LCB3YXJu
aW5nX21zZyk6CisgICAgIyBWYWx1ZSBtdXN0IGJlIGJveGVkIHRvIHN1cHBvcnQgbW9kaWZpY2F0
aW9uIGZyb20gaW5uZXIgZnVuY3Rpb24gc2NvcGUKKyAgICBjb3VudCA9IFswXQorICAgIGNhcGFj
aXR5IC09IDIgKyBsZW4od2FybmluZ19tc2cpCisgICAgc3RkZXJyID0gc3lzLnN0ZGVycgorCisg
ICAgZGVmIG9uX3dyaXRlKGhhbmRsZSwgbXNnKToKKyAgICAgICAgbGVuZ3RoID0gbGVuKG1zZykK
KyAgICAgICAgY291bnRbMF0gKz0gbGVuZ3RoCisKKyAgICAgICAgaWYgY291bnRbMF0gPiBjYXBh
Y2l0eToKKyAgICAgICAgICAgIHdyYXBwZWRfc3Rkb3V0LmRpc2FibGUoKQorICAgICAgICAgICAg
d3JhcHBlZF9zdGRlcnIuZGlzYWJsZSgpCisgICAgICAgICAgICBoYW5kbGUud3JpdGUobXNnWzA6
Y2FwYWNpdHkgLSBjb3VudFswXV0pCisgICAgICAgICAgICBoYW5kbGUuZmx1c2goKQorICAgICAg
ICAgICAgc3RkZXJyLndyaXRlKCJcbiVzXG4iICUgd2FybmluZ19tc2cpCisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgIyBTdG9yZSBsb2NhbCBy
ZWZlcmVuY2VzIHRvIHRoZSByZXBsYWNlZCBzdHJlYW1zIHRvIGd1YXJkIGFnYWluc3QgdGhlIGNh
c2UKKyAgICAjIHdoZXJlIG90aGVyIGNvZGUgcmVwbGFjZSB0aGUgZ2xvYmFsIHJlZmVyZW5jZXMu
CisgICAgc3lzLnN0ZG91dCA9IHdyYXBwZWRfc3Rkb3V0ID0gRmlsdGVyZWRJTyhzeXMuc3Rkb3V0
LCBvbl93cml0ZSkKKyAgICBzeXMuc3RkZXJyID0gd3JhcHBlZF9zdGRlcnIgPSBGaWx0ZXJlZElP
KHN5cy5zdGRlcnIsIG9uX3dyaXRlKQorCisKK2RlZiBjYWxsKCphcmdzKToKKyAgICAiIiJMb2cg
dGVybWluYWwgY29tbWFuZCwgaW52b2tlIGl0IGFzIGEgc3VicHJvY2Vzcy4KKworICAgIFJldHVy
bnMgYSBieXRlc3RyaW5nIG9mIHRoZSBzdWJwcm9jZXNzIG91dHB1dCBpZiBubyBlcnJvci4KKyAg
ICAiIiIKKyAgICBsb2dnZXIuZGVidWcoIiVzIiAlICIgIi5qb2luKGFyZ3MpKQorICAgIHRyeToK
KyAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGFyZ3MpCisgICAgZXhjZXB0
IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6CisgICAgICAgIGxvZ2dlci5jcml0
aWNhbCgiJXMgZXhpdGVkIHdpdGggcmV0dXJuIGNvZGUgJWkiICUKKyAgICAgICAgICAgICAgICAg
ICAgICAgIChlLmNtZCwgZS5yZXR1cm5jb2RlKSkKKyAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKGUu
b3V0cHV0KQorICAgICAgICByYWlzZQorCitkZWYgZmV0Y2hfd3B0KHVzZXIsICphcmdzKToKKyAg
ICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBnaXQoImZldGNoIiwgImh0dHBzOi8v
Z2l0aHViLmNvbS8lcy93ZWItcGxhdGZvcm0tdGVzdHMuZ2l0IiAlIHVzZXIsICphcmdzKQorCisK
K2RlZiBnZXRfc2hhMSgpOgorICAgICIiIiBHZXQgYW5kIHJldHVybiBzaGExIG9mIGN1cnJlbnQg
Z2l0IGJyYW5jaCBIRUFEIGNvbW1pdC4iIiIKKyAgICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9v
dCkKKyAgICByZXR1cm4gZ2l0KCJyZXYtcGFyc2UiLCAiSEVBRCIpLnN0cmlwKCkKKworCitkZWYg
ZGVlcGVuX2NoZWNrb3V0KHVzZXIpOgorICAgICIiIkNvbnZlcnQgZnJvbSBhIHNoYWxsb3cgY2hl
Y2tvdXQgdG8gYSBmdWxsIG9uZSIiIgorICAgIGZldGNoX2FyZ3MgPSBbdXNlciwgIityZWZzL2hl
YWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIl0KKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhvcy5w
YXRoLmpvaW4od3B0X3Jvb3QsICIuZ2l0IiwgInNoYWxsb3ciKSk6CisgICAgICAgIGZldGNoX2Fy
Z3MuaW5zZXJ0KDEsICItLXVuc2hhbGxvdyIpCisgICAgZmV0Y2hfd3B0KCpmZXRjaF9hcmdzKQor
CisKK2RlZiBnZXRfcGFyc2VyKCk6CisgICAgIiIiQ3JlYXRlIGFuZCByZXR1cm4gc2NyaXB0LXNw
ZWNpZmljIGFyZ3VtZW50IHBhcnNlci4iIiIKKyAgICBkZXNjcmlwdGlvbiA9ICIiIkRldGVjdCBp
bnN0YWJpbGl0aWVzIGluIG5ldyB0ZXN0cyBieSBleGVjdXRpbmcgdGVzdHMKKyAgICByZXBlYXRl
ZGx5IGFuZCBjb21wYXJpbmcgcmVzdWx0cyBiZXR3ZWVuIGV4ZWN1dGlvbnMuIiIiCisgICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249ZGVzY3JpcHRpb24pCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS11c2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIyBUcmF2aXMgZG9jcyBz
YXkgZG8gbm90IGRlcGVuZCBvbiBVU0VSIGVudiB2YXJpYWJsZS4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICMgVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gZ2V0IHdoYXQgc2hvdWxkIGJlIHRoZSBz
YW1lIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PW9zLmVudmlyb24uZ2V0
KCJUUkFWSVNfUkVQT19TTFVHIiwgInczYyIpLnNwbGl0KCcvJylbMF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJUcmF2aXMgdXNlciBuYW1lIikKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCItLW91dHB1dC1ieXRlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0
b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9aW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iTWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgdG8gc3RhbmRh
cmQgb3V0cHV0L2Vycm9yIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW1ldGFkYXRhIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Im1ldGFkYXRhX3Jvb3QiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PXdwdF9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGlyZWN0b3J5
IHRoYXQgd2lsbCBjb250YWluIE1BTklGRVNULmpzb24iKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tY29uZmlnLWZpbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9y
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXN0ciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkxvY2F0aW9uIG9mIGluaS1mb3JtYXR0ZWQgY29uZmlndXJhdGlvbiBmaWxl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ImNoZWNrX3N0YWJpbGl0eS5pbmki
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmV2IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQ29tbWl0IHJhbmdlIHRvIHVzZSIpCisg
ICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBwcigpOgorICAgIHByID0gb3MuZW52aXJvbi5nZXQo
IlRSQVZJU19QVUxMX1JFUVVFU1QiLCAiZmFsc2UiKQorICAgIHJldHVybiBwciBpZiBwciAhPSAi
ZmFsc2UiIGVsc2UgTm9uZQorCisKK2RlZiBwb3N0X3Jlc3VsdHMocmVzdWx0cywgcHJfbnVtYmVy
LCBpdGVyYXRpb25zLCBwcm9kdWN0LCB1cmwsIHN0YXR1cyk6CisgICAgIiIiUG9zdCBzdGFiaWxp
dHkgcmVzdWx0cyB0byBhIGdpdmVuIFVSTC4iIiIKKyAgICBwYXlsb2FkX3Jlc3VsdHMgPSBbXQor
CisgICAgZm9yIHRlc3RfbmFtZSwgdGVzdCBpbiByZXN1bHRzLml0ZXJpdGVtcygpOgorICAgICAg
ICBzdWJ0ZXN0cyA9IFtdCisgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVz
dFsnc3VidGVzdHMnXS5pdGVtcygpOgorICAgICAgICAgICAgc3VidGVzdHMuYXBwZW5kKHsKKyAg
ICAgICAgICAgICAgICAndGVzdCc6IHN1YnRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAncmVz
dWx0JzogeworICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZXMnOiBsaXN0KHN1YnRlc3RbJ21l
c3NhZ2VzJ10pLAorICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogc3VidGVzdFsnc3RhdHVz
J10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSkKKyAgICAgICAgcGF5bG9hZF9y
ZXN1bHRzLmFwcGVuZCh7CisgICAgICAgICAgICAndGVzdCc6IHRlc3RfbmFtZSwKKyAgICAgICAg
ICAgICdyZXN1bHQnOiB7CisgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IHRlc3RbJ3N0YXR1cydd
LAorICAgICAgICAgICAgICAgICdzdWJ0ZXN0cyc6IHN1YnRlc3RzCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pCisKKyAgICBwYXlsb2FkID0geworICAgICAgICAicHVsbCI6IHsKKyAgICAgICAg
ICAgICJudW1iZXIiOiBpbnQocHJfbnVtYmVyKSwKKyAgICAgICAgICAgICJzaGEiOiBvcy5lbnZp
cm9uLmdldCgiVFJBVklTX1BVTExfUkVRVUVTVF9TSEEiKSwKKyAgICAgICAgfSwKKyAgICAgICAg
ImpvYiI6IHsKKyAgICAgICAgICAgICJpZCI6IGludChvcy5lbnZpcm9uLmdldCgiVFJBVklTX0pP
Ql9JRCIpKSwKKyAgICAgICAgICAgICJudW1iZXIiOiBvcy5lbnZpcm9uLmdldCgiVFJBVklTX0pP
Ql9OVU1CRVIiKSwKKyAgICAgICAgICAgICJhbGxvd19mYWlsdXJlIjogb3MuZW52aXJvbi5nZXQo
IlRSQVZJU19BTExPV19GQUlMVVJFIikgPT0gJ3RydWUnLAorICAgICAgICAgICAgInN0YXR1cyI6
IHN0YXR1cywKKyAgICAgICAgfSwKKyAgICAgICAgImJ1aWxkIjogeworICAgICAgICAgICAgImlk
IjogaW50KG9zLmVudmlyb24uZ2V0KCJUUkFWSVNfQlVJTERfSUQiKSksCisgICAgICAgICAgICAi
bnVtYmVyIjogb3MuZW52aXJvbi5nZXQoIlRSQVZJU19CVUlMRF9OVU1CRVIiKSwKKyAgICAgICAg
fSwKKyAgICAgICAgInByb2R1Y3QiOiBwcm9kdWN0LAorICAgICAgICAiaXRlcmF0aW9ucyI6IGl0
ZXJhdGlvbnMsCisgICAgICAgICJtZXNzYWdlIjogIkFsbCByZXN1bHRzIHdlcmUgc3RhYmxlLiIg
aWYgc3RhdHVzID09ICJwYXNzZWQiIGVsc2UgIlVuc3RhYmxlIHJlc3VsdHMuIiwKKyAgICAgICAg
InJlc3VsdHMiOiBwYXlsb2FkX3Jlc3VsdHMsCisgICAgfQorCisgICAgcmVxdWVzdHMucG9zdCh1
cmwsIGpzb249cGF5bG9hZCkKKworCitkZWYgZ2V0X2NoYW5nZWRfZmlsZXMobWFuaWZlc3RfcGF0
aCwgcmV2LCBpZ25vcmVfY2hhbmdlcywgc2tpcF90ZXN0cyk6CisgICAgaWYgbm90IHJldjoKKyAg
ICAgICAgYnJhbmNoX3BvaW50ID0gdGVzdGZpbGVzLmJyYW5jaF9wb2ludCgpCisgICAgICAgIHJl
dmlzaCA9ICIlcy4uSEVBRCIgJSBicmFuY2hfcG9pbnQKKyAgICBlbHNlOgorICAgICAgICByZXZp
c2ggPSByZXYKKworICAgIGZpbGVzX2NoYW5nZWQsIGZpbGVzX2lnbm9yZWQgPSB0ZXN0ZmlsZXMu
ZmlsZXNfY2hhbmdlZChyZXZpc2gsIGlnbm9yZV9jaGFuZ2VzKQorCisgICAgaWYgZmlsZXNfaWdu
b3JlZDoKKyAgICAgICAgbG9nZ2VyLmluZm8oIklnbm9yaW5nICVzIGNoYW5nZWQgZmlsZXM6XG4l
cyIgJQorICAgICAgICAgICAgICAgICAgICAobGVuKGZpbGVzX2lnbm9yZWQpLCAiIi5qb2luKCIg
KiAlc1xuIiAlIGl0ZW0gZm9yIGl0ZW0gaW4gZmlsZXNfaWdub3JlZCkpKQorCisgICAgdGVzdHNf
Y2hhbmdlZCwgZmlsZXNfYWZmZWN0ZWQgPSB0ZXN0ZmlsZXMuYWZmZWN0ZWRfdGVzdGZpbGVzKGZp
bGVzX2NoYW5nZWQsIHNraXBfdGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3BhdGg9bWFuaWZlc3Rf
cGF0aCkKKworICAgIHJldHVybiB0ZXN0c19jaGFuZ2VkLCBmaWxlc19hZmZlY3RlZAorCisKK2Rl
ZiBtYWluKCk6CisgICAgIiIiUGVyZm9ybSBjaGVja19zdGFiaWxpdHkgZnVuY3Rpb25hbGl0eSBh
bmQgcmV0dXJuIGV4aXQgY29kZS4iIiIKKworICAgIHZlbnYgPSBWaXJ0dWFsZW52KG9zLmVudmly
b24uZ2V0KCJWSVJUVUFMX0VOViIsIG9zLnBhdGguam9pbih3cHRfcm9vdCwgIl92ZW52IikpKQor
ICAgIHZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMob3MucGF0aC5qb2luKHdwdF9yb290LCAidG9v
bHMiLCAid3B0cnVubmVyIiwgInJlcXVpcmVtZW50cy50eHQiKSkKKyAgICB2ZW52Lmluc3RhbGwo
InJlcXVlc3RzIikKKworICAgIGFyZ3MsIHdwdF9hcmdzID0gZ2V0X3BhcnNlcigpLnBhcnNlX2tu
b3duX2FyZ3MoKQorICAgIHJldHVybiBydW4odmVudiwgd3B0X2FyZ3MsICoqdmFycyhhcmdzKSkK
KworCitkZWYgcnVuKHZlbnYsIHdwdF9hcmdzLCAqKmt3YXJncyk6CisgICAgZG9fZGVsYXllZF9p
bXBvcnRzKCkKKworICAgIHJldGNvZGUgPSAwCisKKyAgICB3cHRfYXJncyA9IGNyZWF0ZV9wYXJz
ZXIoKS5wYXJzZV9hcmdzKHdwdF9hcmdzKQorCisgICAgd2l0aCBvcGVuKGt3YXJnc1siY29uZmln
X2ZpbGUiXSwgJ3InKSBhcyBjb25maWdfZnA6CisgICAgICAgIGNvbmZpZyA9IFNhZmVDb25maWdQ
YXJzZXIoKQorICAgICAgICBjb25maWcucmVhZGZwKGNvbmZpZ19mcCkKKyAgICAgICAgc2tpcF90
ZXN0cyA9IGNvbmZpZy5nZXQoImZpbGUgZGV0ZWN0aW9uIiwgInNraXBfdGVzdHMiKS5zcGxpdCgp
CisgICAgICAgIGlnbm9yZV9jaGFuZ2VzID0gc2V0KGNvbmZpZy5nZXQoImZpbGUgZGV0ZWN0aW9u
IiwgImlnbm9yZV9jaGFuZ2VzIikuc3BsaXQoKSkKKyAgICAgICAgcmVzdWx0c191cmwgPSBjb25m
aWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJyZXN1bHRzX3VybCIpCisKKyAgICBpZiBrd2FyZ3Nb
Im91dHB1dF9ieXRlcyJdIGlzIG5vdCBOb25lOgorICAgICAgICByZXBsYWNlX3N0cmVhbXMoa3dh
cmdzWyJvdXRwdXRfYnl0ZXMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJMb2cgcmVhY2hl
ZCBjYXBhY2l0eSAoJXMgYnl0ZXMpOyBvdXRwdXQgZGlzYWJsZWQuIiAlIGt3YXJnc1sib3V0cHV0
X2J5dGVzIl0pCisKKworICAgIHdwdF9hcmdzLm1ldGFkYXRhX3Jvb3QgPSBrd2FyZ3NbIm1ldGFk
YXRhX3Jvb3QiXQorICAgIHRyeToKKyAgICAgICAgb3MubWFrZWRpcnMod3B0X2FyZ3MubWV0YWRh
dGFfcm9vdCkKKyAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgcGFzcworCisgICAgc2V0dXBf
bG9nZ2luZygpCisKKyAgICBicm93c2VyX25hbWUgPSB3cHRfYXJncy5wcm9kdWN0LnNwbGl0KCI6
IilbMF0KKworICAgIHByX251bWJlciA9IHByKCkKKworICAgIHdpdGggVHJhdmlzRm9sZCgiYnJv
d3Nlcl9zZXR1cCIpOgorICAgICAgICBsb2dnZXIuaW5mbyhtYXJrZG93bi5mb3JtYXRfY29tbWVu
dF90aXRsZSh3cHRfYXJncy5wcm9kdWN0KSkKKworICAgICAgICBpZiBwciBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIGRlZXBlbl9jaGVja291dChrd2FyZ3NbInVzZXIiXSkKKworICAgICAgICAj
IEVuc3VyZSB3ZSBoYXZlIGEgYnJhbmNoIGNhbGxlZCAibWFzdGVyIgorICAgICAgICBmZXRjaF93
cHQoa3dhcmdzWyJ1c2VyIl0sICJtYXN0ZXI6bWFzdGVyIikKKworICAgICAgICBoZWFkX3NoYTEg
PSBnZXRfc2hhMSgpCisgICAgICAgIGxvZ2dlci5pbmZvKCJUZXN0aW5nIHdlYi1wbGF0Zm9ybS10
ZXN0cyBhdCByZXZpc2lvbiAlcyIgJSBoZWFkX3NoYTEpCisKKyAgICAgICAgd3B0X2t3YXJncyA9
IEt3YXJncyh2YXJzKHdwdF9hcmdzKSkKKworICAgICAgICBpZiBub3Qgd3B0X2t3YXJnc1sidGVz
dF9saXN0Il06CisgICAgICAgICAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKHdwdF9r
d2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXSwgIk1BTklGRVNULmpzb24iKQorICAgICAgICAgICAgdGVz
dHNfY2hhbmdlZCwgZmlsZXNfYWZmZWN0ZWQgPSBnZXRfY2hhbmdlZF9maWxlcyhtYW5pZmVzdF9w
YXRoLCBrd2FyZ3NbInJldiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfY2hhbmdlcywgc2tpcF90ZXN0cykKKwor
ICAgICAgICAgICAgaWYgbm90ICh0ZXN0c19jaGFuZ2VkIG9yIGZpbGVzX2FmZmVjdGVkKToKKyAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiTm8gdGVzdHMgY2hhbmdlZCIpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIDAKKworICAgICAgICAgICAgaWYgdGVzdHNfY2hhbmdlZDoKKyAgICAgICAg
ICAgICAgICBsb2dnZXIuZGVidWcoIlRlc3RzIGNoYW5nZWQ6XG4lcyIgJSAiIi5qb2luKCIgKiAl
c1xuIiAlIGl0ZW0gZm9yIGl0ZW0gaW4gdGVzdHNfY2hhbmdlZCkpCisKKyAgICAgICAgICAgIGlm
IGZpbGVzX2FmZmVjdGVkOgorICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiQWZmZWN0ZWQg
dGVzdHM6XG4lcyIgJSAiIi5qb2luKCIgKiAlc1xuIiAlIGl0ZW0gZm9yIGl0ZW0gaW4gZmlsZXNf
YWZmZWN0ZWQpKQorCisgICAgICAgICAgICB3cHRfa3dhcmdzWyJ0ZXN0X2xpc3QiXSA9IGxpc3Qo
dGVzdHNfY2hhbmdlZCB8IGZpbGVzX2FmZmVjdGVkKQorCisgICAgICAgIGRvX2RlbGF5ZWRfaW1w
b3J0cygpCisKKyAgICAgICAgd3B0X2t3YXJnc1sic3RhYmlsaXR5Il0gPSBUcnVlCisgICAgICAg
IHdwdF9rd2FyZ3NbInByb21wdCJdID0gRmFsc2UKKyAgICAgICAgd3B0X2t3YXJnc1siaW5zdGFs
bF9icm93c2VyIl0gPSBUcnVlCisgICAgICAgIHdwdF9rd2FyZ3NbImluc3RhbGwiXSA9IHdwdF9r
d2FyZ3NbInByb2R1Y3QiXS5zcGxpdCgiOiIpWzBdID09ICJmaXJlZm94IgorCisgICAgICAgIHdw
dF9rd2FyZ3MgPSBzZXR1cF93cHRydW5uZXIodmVudiwgKip3cHRfa3dhcmdzKQorCisgICAgICAg
IGxvZ2dlci5pbmZvKCJVc2luZyBiaW5hcnkgJXMiICUgd3B0X2t3YXJnc1siYmluYXJ5Il0pCisK
KworICAgIHdpdGggVHJhdmlzRm9sZCgicnVubmluZ190ZXN0cyIpOgorICAgICAgICBsb2dnZXIu
aW5mbygiU3RhcnRpbmcgdGVzdHMiKQorCisKKyAgICAgICAgd3B0X2xvZ2dlciA9IHdwdHJ1bm5l
ci5sb2dnZXIKKyAgICAgICAgaXRlcmF0aW9ucywgcmVzdWx0cywgaW5jb25zaXN0ZW50ID0gc3Rh
YmlsaXR5X3J1bih2ZW52LCB3cHRfbG9nZ2VyLCAqKndwdF9rd2FyZ3MpCisKKyAgICBpZiByZXN1
bHRzOgorICAgICAgICBpZiBpbmNvbnNpc3RlbnQ6CisgICAgICAgICAgICB3cml0ZV9pbmNvbnNp
c3RlbnQobG9nZ2VyLmVycm9yLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMpCisgICAgICAgICAg
ICByZXRjb2RlID0gMgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkFs
bCByZXN1bHRzIHdlcmUgc3RhYmxlXG4iKQorICAgICAgICB3aXRoIFRyYXZpc0ZvbGQoImZ1bGxf
cmVzdWx0cyIpOgorICAgICAgICAgICAgd3JpdGVfcmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0
cywgaXRlcmF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJfbnVtYmVyPXByX251
bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2RldGFpbHM9VHJ1ZSkKKyAgICAg
ICAgICAgIGlmIHByX251bWJlcjoKKyAgICAgICAgICAgICAgICBwb3N0X3Jlc3VsdHMocmVzdWx0
cywgaXRlcmF0aW9ucz1pdGVyYXRpb25zLCB1cmw9cmVzdWx0c191cmwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2R1Y3Q9d3B0X2FyZ3MucHJvZHVjdCwgcHJfbnVtYmVyPXByX251
bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSJmYWlsZWQiIGlmIGlu
Y29uc2lzdGVudCBlbHNlICJwYXNzZWQiKQorICAgIGVsc2U6CisgICAgICAgIGxvZ2dlci5pbmZv
KCJObyB0ZXN0cyBydW4uIikKKyAgICAgICAgIyBCZSBjb25zZXJ2YXRpdmUgYW5kIG9ubHkgcmV0
dXJuIGVycm9ycyB3aGVuIHdlIGtub3cgZm9yIHN1cmUgdGVzdHMgYXJlIGNoYW5nZWQuCisgICAg
ICAgIGlmIHRlc3RzX2NoYW5nZWQ6CisgICAgICAgICAgICByZXRjb2RlID0gMworCisgICAgcmV0
dXJuIHJldGNvZGUKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHRyeToKKyAg
ICAgICAgc3lzLmV4aXQobWFpbigpKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGlt
cG9ydCB0cmFjZWJhY2sKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgIHN5
cy5leGl0KDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2U5ZmU2MDk5ZDUxZWRiY2QyODEwMDAxZTAwNDQwMWNmNGIzNzNlZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvY2lfYnVpbHRfZGlmZi5zaApAQCAtMCwwICsxLDI1IEBACitzZXQgLWV4CisKK1NDUklQ
VF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCitXUFRfUk9PVD0kKHJlYWRsaW5r
IC1mICRTQ1JJUFRfRElSLy4uLy4uKQorY2QgJFdQVF9ST09UCisKK21haW4oKSB7CisgICAgIyBE
aWZmIFBOR3MgYmFzZWQgb24gcGl4ZWwtZm9yLXBpeGVsIGlkZW50aXR5CisgICAgZWNobyAtZSAn
W2RpZmYgImltZyJdXG4gIHRleHRjb252ID0gaWRlbnRpZnkgLXF1aWV0IC1mb3JtYXQgIiUjIicg
Pj4gLmdpdC9jb25maWcKKyAgICBlY2hvIC1lICcqLnBuZyBkaWZmPWltZycgPj4gLmdpdC9pbmZv
L2F0dHJpYnV0ZXMKKworICAgICPCoEV4Y2x1ZGUgdGVzdHMgdGhhdCByZWx5IG9uIGZvbnQgcmVu
ZGVyaW5nCisgICAgZXhjbHVkZWQ9KAorICAgICAgICAnMmRjb250ZXh0L2RyYXdpbmctdGV4dC10
by10aGUtY2FudmFzLzJkLnRleHQuZHJhdy5maWxsLmJhc2ljLnBuZycKKyAgICAgICAgJzJkY29u
dGV4dC9kcmF3aW5nLXRleHQtdG8tdGhlLWNhbnZhcy8yZC50ZXh0LmRyYXcuZmlsbC5tYXhXaWR0
aC5sYXJnZS5wbmcnCisgICAgICAgICcyZGNvbnRleHQvZHJhd2luZy10ZXh0LXRvLXRoZS1jYW52
YXMvMmQudGV4dC5kcmF3LmZpbGwucnRsLnBuZycKKyAgICAgICAgJzJkY29udGV4dC9kcmF3aW5n
LXRleHQtdG8tdGhlLWNhbnZhcy8yZC50ZXh0LmRyYXcuc3Ryb2tlLmJhc2ljLnBuZycKKyAgICAp
CisKKyAgICAuL3VwZGF0ZS1idWlsdC10ZXN0cy5zaAorICAgIGdpdCB1cGRhdGUtaW5kZXggLS1h
c3N1bWUtdW5jaGFuZ2VkICR7ZXhjbHVkZWRbKl19CisgICAgZ2l0IGRpZmYgLS1leGl0LWNvZGUK
K30KKworbWFpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2YjMx
N2UxYTE5M2I1NzE2MWM1MjRiMmMxMGIzZDQyZmQzYmVhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2xp
bnQuc2gKQEAgLTAsMCArMSw5IEBACitzZXQgLWV4CisKK1NDUklQVF9ESVI9JChkaXJuYW1lICQo
cmVhZGxpbmsgLWYgIiQwIikpCitXUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4u
Ly4uKQorY2QgJFdQVF9ST09UCisKK21rZGlyIC1wIH4vbWV0YQorLi93cHQgbWFuaWZlc3QgLXAg
fi9tZXRhL01BTklGRVNULmpzb24KKy4vd3B0IGxpbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X21hbmlmZXN0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxM2E3MGY5MzU0MzZhNTAyNTgxMTVjZjAwNmQ2OTEz
ZDBhZjdlYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0LnNoCkBAIC0wLDAgKzEsMTMgQEAK
K3NldCAtZXgKKworU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKK1dQ
VF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4vLi4pCitjZCAkV1BUX1JPT1QKKwor
bWtkaXIgLXAgfi9tZXRhCisKK3B5dGhvbiB0b29scy9jaS90YWdfbWFzdGVyLnB5CisuL3dwdCBt
YW5pZmVzdCAtcCB+L21ldGEvTUFOSUZFU1QuanNvbgorY3Agfi9tZXRhL01BTklGRVNULmpzb24g
JFdQVF9NQU5JRkVTVF9GSUxFCisjIEZvcmNlIG92ZXJ3cml0ZSBvZiBhbnkgZXhpc3RpbmcgZmls
ZQorZ3ppcCAtZiAkV1BUX01BTklGRVNUX0ZJTEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0
ZXN0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9jaV9yZXNvdXJjZXNfdW5pdHRlc3Quc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYxZTIyNDg0M2QyM2Y1
NzBjM2ZmYzMxZGU5NTU2N2FmYWY3YWMzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3Vu
aXR0ZXN0LnNoCkBAIC0wLDAgKzEsMTkgQEAKKyMhL2Jpbi9iYXNoCitzZXQgLWV4CisKK1NDUklQ
VF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCitXUFRfUk9PVD0kKHJlYWRsaW5r
IC1mICRTQ1JJUFRfRElSLy4uLy4uKQorY2QgJFdQVF9ST09UCisKK21haW4oKSB7CisgICAgY2Qg
JFdQVF9ST09UCisgICAgcGlwIGluc3RhbGwgLVUgdG94CisgICAgLi93cHQgaW5zdGFsbCBmaXJl
Zm94IGJyb3dzZXIgLS1kZXN0aW5hdGlvbiAkSE9NRQorICAgIC4vd3B0IGluc3RhbGwgZmlyZWZv
eCB3ZWJkcml2ZXIgLS1kZXN0aW5hdGlvbiAkSE9NRS9maXJlZm94CisgICAgZXhwb3J0IFBBVEg9
JEhPTUUvZmlyZWZveDokUEFUSAorCisgICAgY2QgJFdQVF9ST09UL3Jlc291cmNlcy90ZXN0Cisg
ICAgdG94IC0tIC0tYmluYXJ5PSRIT01FL2Jyb3dzZXJzL2ZpcmVmb3gvZmlyZWZveAorfQorCitt
YWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX3N0YWJpbGl0eS5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfc3RhYmlsaXR5LnNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEy
M2IwNTczODUzYTUzZmU1NTIwZDhmYTZhYWIwMmY4MGI1M2ExOGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X3N0YWJpbGl0eS5zaApAQCAtMCwwICsxLDMwIEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitT
Q1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFk
bGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKK2NkICRXUFRfUk9PVAorCitzb3VyY2UgdG9vbHMv
Y2kvbGliLnNoCisKK3Rlc3Rfc3RhYmlsaXR5KCkgeworICAgIGxvY2FsIGV4dHJhX2FyZz0kMQor
ICAgIC4vd3B0IGNoZWNrLXN0YWJpbGl0eSAkUFJPRFVDVCAkZXh0cmFfYXJnIC0tb3V0cHV0LWJ5
dGVzICQoKDEwMjQgKiAxMDI0ICogMykpIC0tbWV0YWRhdGEgfi9tZXRhLyAtLWluc3RhbGwtZm9u
dHMKK30KKworbWFpbigpIHsKKyAgICBob3N0c19maXh1cAorICAgIGxvY2FsIGV4dHJhX2FyZz0i
IgorICAgIGlmIFsgJChlY2hvICRQUk9EVUNUIHwgZ3JlcCAnXmNocm9tZTonKSBdOyB0aGVuCisg
ICAgICAgIGxvY2FsIGNoYW5uZWw9JChlY2hvICRQUk9EVUNUIHwgZ3JlcCAtLW9ubHktbWF0Y2hp
bmcgJ1x3XCskJykKKyAgICAgICAgaWYgW1sgJGNoYW5uZWwgPT0gImRldiIgXV07IHRoZW4KKyAg
ICAgICAgICAgICMgVGhlIHBhY2thZ2UgbmFtZSBmb3IgR29vZ2xlIENocm9tZSBEZXYgdXNlcyAi
dW5zdGFibGUiLCBub3QgImRldiIuCisgICAgICAgICAgICBjaGFubmVsPSJ1bnN0YWJsZSIKKyAg
ICAgICAgZmkKKyAgICAgICAgaW5zdGFsbF9jaHJvbWUgJGNoYW5uZWwKKyAgICAgICAgZXh0cmFf
YXJnPSItLWJpbmFyeT0kKHdoaWNoIGdvb2dsZS1jaHJvbWUtJGNoYW5uZWwpIgorICAgIGZpCisg
ICAgdGVzdF9zdGFiaWxpdHkgJGV4dHJhX2FyZworfQorCittYWluCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xz
X3VuaXR0ZXN0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV90b29sc191bml0dGVzdC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGU0YzQxMDcwZmY1
NjQzMjY1YTlmODYxN2ZiY2ZlNDhjZWJlZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc191bml0
dGVzdC5zaApAQCAtMCwwICsxLDM4IEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRf
RElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAt
ZiAkU0NSSVBUX0RJUi8uLi8uLikKK2NkICRXUFRfUk9PVAorCitydW5fYXBwbGljYWJsZV90b3gg
KCkgeworICAgICMgaW5zdGVhZCBvZiBqdXN0IHJ1bm5pbmcgVE9YRU5WIChlLmcuLCBweTI3KQor
ICAgICMgcnVuIGFsbCBlbnZpcm9ubWVudHMgdGhhdCBzdGFydCB3aXRoIFRPWEVOVgorICAgICMg
KGUuZy4sIHB5MjctZmlyZWZveCBhcyB3ZWxsIGFzIHB5MjcpCisgICAgbG9jYWwgT0xEX1RPWEVO
Vj0iJFRPWEVOViIKKyAgICB1bnNldCBUT1hFTlYKKyAgICBsb2NhbCBSVU5fRU5WUz0kKHRveCAt
bCB8IGdyZXAgIl4ke09MRF9UT1hFTlZ9XChcLVx8XCRcKSIgfCB0ciAiXG4iICIsIikKKyAgICBp
ZiBbWyAtbiAiJFJVTl9FTlZTIiBdXTsgdGhlbgorICAgICAgICB0b3ggLWUgIiRSVU5fRU5WUyIK
KyAgICBmaQorICAgIGV4cG9ydCBUT1hFTlY9IiRPTERfVE9YRU5WIgorfQorCisKK2lmIFtbICQo
Li93cHQgdGVzdC1qb2JzIC0taW5jbHVkZXMgdG9vbHNfdW5pdHRlc3Q7IGVjaG8gJD8pIC1lcSAw
IF1dOyB0aGVuCisgICAgcGlwIGluc3RhbGwgLVUgdG94IGNvZGVjb3YKKyAgICBjZCB0b29scwor
ICAgIHJ1bl9hcHBsaWNhYmxlX3RveAorICAgIGNkICRXUFRfUk9PVAorZWxzZQorICAgIGVjaG8g
IlNraXBwaW5nIHRvb2xzIHVuaXR0ZXN0IgorZmkKKworaWYgW1sgJCguL3dwdCB0ZXN0LWpvYnMg
LS1pbmNsdWRlcyB3cHRydW5uZXJfdW5pdHRlc3Q7IGVjaG8gJD8pIC1lcSAwIF1dOyB0aGVuCisg
ICAgY2QgdG9vbHMvd3B0cnVubmVyCisgICAgcnVuX2FwcGxpY2FibGVfdG94CisgICAgY2QgJFdQ
VF9ST09UCitlbHNlCisgICAgZWNobyAiU2tpcHBpbmcgd3B0cnVubmVyIHVuaXR0ZXN0IgorZmkK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV93cHQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjYzNDEzNzYwNTkxY2U5
ZjFmNDY3ZGQxYjA2MDNlZThkMzhjZjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHQuc2gKQEAgLTAs
MCArMSwxOSBAQAorIyEvYmluL2Jhc2gKK3NldCAtZQorCitTQ1JJUFRfRElSPSQoZGlybmFtZSAk
KHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJUi8u
Li8uLikKK2NkICRXUFRfUk9PVAorCitzb3VyY2UgdG9vbHMvY2kvbGliLnNoCisKK21haW4oKSB7
CisgICAgZ2l0IGZldGNoIC0tdW5zaGFsbG93IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzLmdpdCArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKgorICAg
IGhvc3RzX2ZpeHVwCisgICAgaW5zdGFsbF9jaHJvbWUgdW5zdGFibGUKKyAgICBwaXAgaW5zdGFs
bCAtVSB0b3ggY29kZWNvdgorICAgIGNkIHRvb2xzL3dwdAorICAgIHRveAorfQorCittYWluCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3Ry
dWN0dXJlLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZDY4MDM5NzRmYjA1OGUxMWFlYmI2NWYxMjc1MmU0ODI0
YTU3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApAQCAt
MCwwICsxLDM3IEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQoZGlybmFt
ZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJ
Ui8uLi8uLikKK2NkICRXUFRfUk9PVAorCitzb3VyY2UgdG9vbHMvY2kvbGliLnNoCisKK3Rlc3Rf
aW5mcmFzdHJ1Y3R1cmUoKSB7CisgICAgbG9jYWwgQVJHUz0iIjsKKyAgICBpZiBbICRQUk9EVUNU
ID09ICJmaXJlZm94IiBdOyB0aGVuCisgICAgICAgIEFSR1M9Ii0taW5zdGFsbC1icm93c2VyIgor
ICAgIGVsc2UKKyAgICAgICAgQVJHUz0kMQorICAgIGZpCisgICAgLi93cHQgcnVuIC0teWVzIC0t
bWFuaWZlc3Qgfi9tZXRhL01BTklGRVNULmpzb24gLS1tZXRhZGF0YSBpbmZyYXN0cnVjdHVyZS9t
ZXRhZGF0YS8gLS1pbnN0YWxsLWZvbnRzICRBUkdTICRQUk9EVUNUIGluZnJhc3RydWN0dXJlLwor
fQorCittYWluKCkgeworICAgIFBST0RVQ1RTPSggImZpcmVmb3giICJjaHJvbWUiICkKKyAgICBm
b3IgUFJPRFVDVCBpbiAiJHtQUk9EVUNUU1tAXX0iOyBkbworICAgICAgICBpZiBbICIkUFJPRFVD
VCIgIT0gImZpcmVmb3giIF07IHRoZW4KKyAgICAgICAgICAgICMgRmlyZWZveCBpcyBleHBlY3Rl
ZCB0byB3b3JrIHVzaW5nIHByZWYgc2V0dGluZ3MgZm9yIEROUworICAgICAgICAgICAgIyBEb24n
dCBhZGp1c3QgdGhlIGhvc3RuYW1lcyBpbiB0aGF0IGNhc2UgdG8gZW5zdXJlIHRoaXMga2VlcHMg
d29ya2luZworICAgICAgICAgICAgaG9zdHNfZml4dXAKKyAgICAgICAgZmkKKyAgICAgICAgaWYg
WyAiJFBST0RVQ1QiID09ICJjaHJvbWUiIF07IHRoZW4KKyAgICAgICAgICAgIGluc3RhbGxfY2hy
b21lIHVuc3RhYmxlCisgICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJlICItLWJpbmFyeT0k
KHdoaWNoIGdvb2dsZS1jaHJvbWUtdW5zdGFibGUpIgorICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0X2luZnJhc3RydWN0dXJlCisgICAgICAgIGZpCisgICAgZG9uZQorfQorCittYWluCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NvbW1hbmRzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThkYjQyOGUyOGY4
NzQwZmZjOWQzYmIyNDliMmZiMzM1MzU4YWQyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNv
bgpAQCAtMCwwICsxLDcgQEAKK3sKKyAgICAidGVzdC1qb2JzIjogeyJwYXRoIjogImpvYnMucHki
LCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsICJoZWxwIjogIkxp
c3QgdGVzdCBqb2JzIHRoYXQgc2hvdWxkIHJ1biBmb3IgYSBzZXQgb2YgY29tbWl0cyIsCisgICAg
ICAgICAgICAgICAgICAidmlydHVhbGVudiI6IGZhbHNlfSwKKyAgICAiY2hlY2stc3RhYmlsaXR5
IjogeyJwYXRoIjogImNoZWNrX3N0YWJpbGl0eS5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNl
ciI6ICJnZXRfcGFyc2VyIiwgInBhcnNlX2tub3duIjogdHJ1ZSwgImhlbHAiOiAiQ2hlY2sgdGVz
dCBzdGFiaWxpdHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgInZpcnR1YWxlbnYiOiB0cnVl
LCAiaW5zdGFsbCI6IFsicmVxdWVzdHMiXSwgInJlcXVpcmVtZW50cyI6IFsiLi4vd3B0cnVubmVy
L3JlcXVpcmVtZW50cy50eHQiXX0sCisgICJtYWtlLWhvc3RzLWZpbGUiOiB7InBhdGgiOiAibWFr
ZV9ob3N0c19maWxlLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJz
ZXIiLCAiaGVscCI6ICJPdXRwdXQgYSBob3N0cyBmaWxlIHRvIHN0ZG91dCIsICJ2aXJ0dWFsZW52
IjogZmFsc2V9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2luc3RhbGwuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2luc3RhbGwuc2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFk
NDM2OGQ0ZmY5NjBhZmEwZDk2NjhhNTYyNjM3YjNjODZhMzBhMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5z
dGFsbC5zaApAQCAtMCwwICsxLDExIEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRf
RElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAt
ZiAkU0NSSVBUX0RJUi8uLi8uLikKK2NkICRXUFRfUk9PVAorCitpZiBbWyAkUlVOX0pPQiAtZXEg
MSBdXTsgdGhlbgorICAgIHBpcCBpbnN0YWxsIC1VIHNldHVwdG9vbHMKKyAgICBwaXAgaW5zdGFs
bCAtVSByZXF1ZXN0cworZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvam9icy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvam9icy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTQ1
ZjQ5NmU1MGE4ZGZkMTBlYzNhNTI5Y2ZkNDdlYzM2MzBkYWY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9qb2Jz
LnB5CkBAIC0wLDAgKzEsMTI3IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBvcworaW1wb3J0
IHJlCitmcm9tIC4ud3B0LnRlc3RmaWxlcyBpbXBvcnQgYnJhbmNoX3BvaW50LCBmaWxlc19jaGFu
Z2VkLCBhZmZlY3RlZF90ZXN0ZmlsZXMKKworZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocwor
ZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcworCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgb3MucGFyZGlyLCBvcy5wYXJk
aXIpKQorCisjIFJ1bGVzIGFyZSBqdXN0IHJlZ2V4IG9uIHRoZSBwYXRoLCB3aXRoIGEgbGVhZGlu
ZyAhIGluZGljYXRpbmcgYSByZWdleCB0aGF0IG11c3Qgbm90CisjIG1hdGNoIGZvciB0aGUgam9i
Citqb2JfcGF0aF9tYXAgPSB7CisgICAgInN0YWJpbGl0eSI6IFsiLiovLioiLAorICAgICAgICAg
ICAgICAgICAgIiF0b29scy8iLAorICAgICAgICAgICAgICAgICAgIiFkb2NzLyIsCisgICAgICAg
ICAgICAgICAgICAiIXJlc291cmNlcy8qIiwKKyAgICAgICAgICAgICAgICAgICIhY29uZm9ybWFu
Y2UtY2hlY2tlcnMvIiwKKyAgICAgICAgICAgICAgICAgICIhLiovT1dORVJTIiwKKyAgICAgICAg
ICAgICAgICAgICIhLiovdG9vbHMvIiwKKyAgICAgICAgICAgICAgICAgICIhLiovUkVBRE1FIiwK
KyAgICAgICAgICAgICAgICAgICIhY3NzL1teL10qJCJdLAorICAgICJsaW50IjogWyIuKiJdLAor
ICAgICJtYW5pZmVzdF91cGxvYWQiOiBbIi4qIl0sCisgICAgInJlc291cmNlc191bml0dGVzdCI6
IFsicmVzb3VyY2VzLyJdLAorICAgICJ0b29sc191bml0dGVzdCI6IFsidG9vbHMvIl0sCisgICAg
IndwdHJ1bm5lcl91bml0dGVzdCI6IFsidG9vbHMvd3B0cnVubmVyLyoiXSwKKyAgICAiYnVpbGRf
Y3NzIjogWyJjc3MvIl0sCisgICAgInVwZGF0ZV9idWlsdCI6IFsiMmRjb250ZXh0LyIsCisgICAg
ICAgICAgICAgICAgICAgICAiYXNzdW1wdGlvbnMvIiwKKyAgICAgICAgICAgICAgICAgICAgICJo
dG1sLyIsCisgICAgICAgICAgICAgICAgICAgICAib2Zmc2NyZWVuLWNhbnZhcy8iXSwKKyAgICAi
d3B0X2ludGVncmF0aW9uIjogWyJ0b29scy8iXSwKKyAgICAid3B0cnVubmVyX2luZnJhc3RydWN0
dXJlIjogWyJ0b29scy8iXSwKK30KKworCitjbGFzcyBSdWxlc2V0KG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHJ1bGVzKToKKyAgICAgICAgc2VsZi5pbmNsdWRlID0gW10KKyAgICAg
ICAgc2VsZi5leGNsdWRlID0gW10KKyAgICAgICAgZm9yIHJ1bGUgaW4gcnVsZXM6CisgICAgICAg
ICAgICBzZWxmLmFkZF9ydWxlKHJ1bGUpCisKKyAgICBkZWYgYWRkX3J1bGUoc2VsZiwgcnVsZSk6
CisgICAgICAgIGlmIHJ1bGUuc3RhcnRzd2l0aCgiISIpOgorICAgICAgICAgICAgdGFyZ2V0ID0g
c2VsZi5leGNsdWRlCisgICAgICAgICAgICBydWxlID0gcnVsZVsxOl0KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHRhcmdldCA9IHNlbGYuaW5jbHVkZQorCisgICAgICAgIHRhcmdldC5hcHBl
bmQocmUuY29tcGlsZSgiXiVzIiAlIHJ1bGUpKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBh
dGgpOgorICAgICAgICBpZiBvcy5wYXRoLnNlcCAhPSAiLyI6CisgICAgICAgICAgICBwYXRoID0g
cGF0aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAgICAgIHBhdGggPSBvcy5wYXRoLm5v
cm1jYXNlKHBhdGgpCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuZXhjbHVkZToKKyAgICAgICAg
ICAgIGlmIGl0ZW0ubWF0Y2gocGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgICAgIGZvciBpdGVtIGluIHNlbGYuaW5jbHVkZToKKyAgICAgICAgICAgIGlmIGl0ZW0ubWF0
Y2gocGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHN1YnMgPSB0dXBsZSgiLCIu
am9pbihpdGVtLnBhdHRlcm4gZm9yIGl0ZW0gaW4gdGFyZ2V0KQorICAgICAgICAgICAgICAgICAg
ICAgZm9yIHRhcmdldCBpbiAoc2VsZi5pbmNsdWRlLCBzZWxmLmV4Y2x1ZGUpKQorICAgICAgICBy
ZXR1cm4gIlJ1bGVzPGluY2x1ZGU6WyVzXSBleGNsdWRlOlslc10+IiAlIHN1YnMKKworCitkZWYg
Z2V0X3BhdGhzKCoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3NbInJldmlzaCJdIGlzIE5vbmU6Cisg
ICAgICAgIHJldmlzaCA9ICIlcy4uSEVBRCIgJSBicmFuY2hfcG9pbnQoKQorICAgIGVsc2U6Cisg
ICAgICAgIHJldmlzaCA9IGt3YXJnc1sicmV2aXNoIl0KKworICAgIGNoYW5nZWQsIF8gPSBmaWxl
c19jaGFuZ2VkKHJldmlzaCkKKyAgICBhbGxfY2hhbmdlZCA9IHNldChvcy5wYXRoLnJlbHBhdGgo
aXRlbSwgd3B0X3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2V0KGNo
YW5nZWQpKQorICAgIHJldHVybiBhbGxfY2hhbmdlZAorCisKK2RlZiBnZXRfam9icyhwYXRocywg
Kiprd2FyZ3MpOgorICAgIGpvYnMgPSBzZXQoKQorCisgICAgcnVsZXMgPSB7fQorICAgIGluY2x1
ZGVzID0ga3dhcmdzLmdldCgiaW5jbHVkZXMiKQorICAgIGlmIGluY2x1ZGVzIGlzIG5vdCBOb25l
OgorICAgICAgICBpbmNsdWRlcyA9IHNldChpbmNsdWRlcykKKyAgICBmb3Iga2V5LCB2YWx1ZSBp
biBpdGVyaXRlbXMoam9iX3BhdGhfbWFwKToKKyAgICAgICAgaWYgaW5jbHVkZXMgaXMgTm9uZSBv
ciBrZXkgaW4gaW5jbHVkZXM6CisgICAgICAgICAgICBydWxlc1trZXldID0gUnVsZXNldCh2YWx1
ZSkKKworICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICBmb3Igam9iIGluIGxpc3QocnVs
ZXMua2V5cygpKToKKyAgICAgICAgICAgIHJ1bGVzZXQgPSBydWxlc1tqb2JdCisgICAgICAgICAg
ICBpZiBydWxlc2V0KHBhdGgpOgorICAgICAgICAgICAgICAgIHJ1bGVzLnBvcChqb2IpCisgICAg
ICAgICAgICAgICAgam9icy5hZGQoam9iKQorICAgICAgICBpZiBub3QgcnVsZXM6CisgICAgICAg
ICAgICBicmVhaworCisgICAgIyBEZWZhdWx0IGpvYnMgc2h1bGQgcnVuIGV2ZW4gaWYgdGhlcmUg
d2VyZSBubyBjaGFuZ2VzCisgICAgaWYgbm90IHBhdGhzOgorICAgICAgICBmb3Igam9iLCBwYXRo
X3JlIGluIGl0ZXJpdGVtcyhqb2JfcGF0aF9tYXApOgorICAgICAgICAgICAgaWYgIi4qIiBpbiBw
YXRoX3JlOgorICAgICAgICAgICAgICAgIGpvYnMuYWRkKGpvYikKKworICAgIHJldHVybiBqb2Jz
CisKKworZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicmV2aXNoIiwgZGVmYXVsdD1Ob25l
LCBoZWxwPSJDb21taXRzIHRvIGNvbnNpZGVyLiBEZWZhdWx0cyB0byB0aGUgY29tbWl0cyBvbiB0
aGUgY3VycmVudCBicmFuY2giLCBuYXJncz0iPyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1pbmNsdWRlcyIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iSm9icyB0byBjaGVjayBmb3IuIFJldHVy
biBjb2RlIGlzIDAgaWYgYWxsIGpvYnMgYXJlIGZvdW5kLCBvdGhlcndpc2UgMSIsIG5hcmdzPSIq
IikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIHJ1bigqKmt3YXJncyk6CisgICAgcGF0aHMg
PSBnZXRfcGF0aHMoKiprd2FyZ3MpCisgICAgam9icyA9IGdldF9qb2JzKHBhdGhzLCAqKmt3YXJn
cykKKyAgICBpZiBub3Qga3dhcmdzWyJpbmNsdWRlcyJdOgorICAgICAgICBmb3IgaXRlbSBpbiBz
b3J0ZWQoam9icyk6CisgICAgICAgICAgICBwcmludChpdGVtKQorICAgIGVsc2U6CisgICAgICAg
IHJldHVybiAwIGlmIHNldChrd2FyZ3NbImluY2x1ZGVzIl0pLmlzc3Vic2V0KGpvYnMpIGVsc2Ug
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9saWIuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2xpYi5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzBiODI1M2E5MDZlMDVmN2Q3OTNk
MWM2Mjc0ZjlhZWQwMWI3ZjgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKQEAgLTAsMCArMSwzNyBA
QAorIyEvYmluL2Jhc2gKKworaG9zdHNfZml4dXAoKSB7CisgICAgZWNobyAidHJhdmlzX2ZvbGQ6
c3RhcnQ6aG9zdHNfZml4dXAiCisgICAgZWNobyAiUmV3cml0aW5nIGhvc3RzIGZpbGUiCisgICAg
ZWNobyAiIyMgL2V0Yy9ob3N0cyAjIyIKKyAgICBjYXQgL2V0Yy9ob3N0cworICAgIHN1ZG8gc2Vk
IC1pICdzL146OjFccypsb2NhbGhvc3QvOjoxLycgL2V0Yy9ob3N0cworICAgIC4vd3B0IG1ha2Ut
aG9zdHMtZmlsZSB8IHN1ZG8gdGVlIC1hIC9ldGMvaG9zdHMKKyAgICBlY2hvICI9PSAvZXRjL2hv
c3RzID09IgorICAgIGNhdCAvZXRjL2hvc3RzCisgICAgZWNobyAiLS0tLS0tLS0tLS0tLS0tLSIK
KyAgICBlY2hvICJ0cmF2aXNfZm9sZDplbmQ6aG9zdHNfZml4dXAiCit9CisKK2luc3RhbGxfY2hy
b21lKCkgeworICAgIGNoYW5uZWw9JDEKKyAgICBkZWJfYXJjaGl2ZT1nb29nbGUtY2hyb21lLSR7
Y2hhbm5lbH1fY3VycmVudF9hbWQ2NC5kZWIKKyAgICB3Z2V0IC1xIGh0dHBzOi8vZGwuZ29vZ2xl
LmNvbS9saW51eC9kaXJlY3QvJGRlYl9hcmNoaXZlCisKKyAgICAjIElmIHRoZSBlbnZpcm9ubWVu
dCBwcm92aWRlcyBhbiBpbnN0YWxsYXRpb24gb2YgR29vZ2xlIENocm9tZSwgdGhlCisgICAgIyBl
eGlzdGluZyBiaW5hcnkgbWF5IHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBvbmUgaW50cm9kdWNl
ZCBpbiB0aGlzCisgICAgIyBzY3JpcHQuIFJlbW92ZSBhbnkgcHJldmlvdXNseS1leGlzdGluZyAi
YWx0ZXJuYXRpdmVzIiBwcmlvciB0bworICAgICMgaW5zdGFsbGF0aW9uIGluIG9yZGVyIHRvIGVu
c3VyZSB0aGF0IHRoZSBuZXcgYmluYXJ5IGlzIGluc3RhbGxlZCBhcworICAgICMgaW50ZW5kZWQu
CisgICAgaWYgc3VkbyB1cGRhdGUtYWx0ZXJuYXRpdmVzIC0tbGlzdCBnb29nbGUtY2hyb21lOyB0
aGVuCisgICAgICAgIHN1ZG8gdXBkYXRlLWFsdGVybmF0aXZlcyAtLXJlbW92ZS1hbGwgZ29vZ2xl
LWNocm9tZQorICAgIGZpCisKKyAgICAjIEluc3RhbGxhdGlvbiB3aWxsIGZhaWwgaW4gY2FzZXMg
d2hlcmUgdGhlIHBhY2thZ2UgaGFzIHVubWV0IGRlcGVuZGVuY2llcy4KKyAgICAjIFdoZW4gdGhp
cyBvY2N1cnMsIGF0dGVtcHQgdG8gdXNlIHRoZSBzeXN0ZW0gcGFja2FnZSBtYW5hZ2VyIHRvIGZl
dGNoIHRoZQorICAgICMgcmVxdWlyZWQgcGFja2FnZXMgYW5kIHJldHJ5LgorICAgIGlmICEgc3Vk
byBkcGtnIC0taW5zdGFsbCAkZGViX2FyY2hpdmU7IHRoZW4KKyAgICAgIHN1ZG8gYXB0LWdldCBp
bnN0YWxsIC0tZml4LWJyb2tlbgorICAgICAgc3VkbyBkcGtnIC0taW5zdGFsbCAkZGViX2FyY2hp
dmUKKyAgICBmaQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9tYWtlX2hvc3RzX2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21ha2VfaG9zdHNfZmlsZS5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iM2M3NzU4YjJhYzQ1Nzc0MDY4Mjg3YjQ1NTZmMWVjYjNjYjg5ZjE1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9tYWtlX2hvc3RzX2ZpbGUucHkKQEAgLTAsMCArMSwxOSBAQAoraW1wb3J0
IGFyZ3BhcnNlCitpbXBvcnQgb3MKKworZnJvbSAuLmxvY2FscGF0aHMgaW1wb3J0IHJlcG9fcm9v
dAorCitmcm9tIC4uc2VydmUuc2VydmUgaW1wb3J0IGxvYWRfY29uZmlnLCBub3JtYWxpc2VfY29u
ZmlnLCBtYWtlX2hvc3RzX2ZpbGUKKworZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICBwYXJzZXIg
PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiYWRk
cmVzcyIsIGRlZmF1bHQ9IjEyNy4wLjAuMSIsIG5hcmdzPSI/IiwgaGVscD0iQWRkcmVzcyB0aGF0
IGhvc3RzIHNob3VsZCBwb2ludCBhdCIpCisgICAgcmV0dXJuIHBhcnNlcgorCitkZWYgcnVuKCoq
a3dhcmdzKToKKyAgICBjb25maWcgPSBsb2FkX2NvbmZpZyhvcy5wYXRoLmpvaW4ocmVwb19yb290
LCAiY29uZmlnLmRlZmF1bHQuanNvbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBh
dGguam9pbihyZXBvX3Jvb3QsICJjb25maWcuanNvbiIpKQorCisgICAgY29uZmlnID0gbm9ybWFs
aXNlX2NvbmZpZyhjb25maWcsIHt9KQorCisgICAgcHJpbnQobWFrZV9ob3N0c19maWxlKGNvbmZp
Zywga3dhcmdzWyJhZGRyZXNzIl0pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW4uc2ggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZTU4ZjU4YzMzNjVkYTA3NmViMDUxOGY1MzJlYjU3MTdkMWJmM2ZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9y
dW4uc2gKQEAgLTAsMCArMSwxMCBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NSSVBUX0RJ
Uj0kKGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYg
JFNDUklQVF9ESVIvLi4vLi4pCitjZCAkV1BUX1JPT1QKKworaWYgW1sgJFJVTl9KT0IgLWVxIDEg
XV07IHRoZW4KKyAgICAkU0NSSVBUCitmaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0MDRhMTk1ZWY2OWIzZmQ5NTM3MTlhN2RhZjEwMjZkMTY3Nzc1NjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3RhZ19tYXN0ZXIucHkKQEAgLTAsMCArMSw5MiBAQAoraW1wb3J0IGJh
c2U2NAoraW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMK
K2ltcG9ydCB1cmxsaWIyCisKK2hlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKSkKK3dwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJl
LCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCisKK2lmIG5vdCh3cHRfcm9vdCBpbiBzeXMucGF0aCk6
CisgICAgc3lzLnBhdGguYXBwZW5kKHdwdF9yb290KQorCitmcm9tIHRvb2xzLndwdC50ZXN0Zmls
ZXMgaW1wb3J0IGdldF9naXRfY21kCisKK2xvZ2dpbmcuYmFzaWNDb25maWcoKQorbG9nZ2VyID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIGdldF9wcihyZXBvLCBvd25lciwg
cmV2KToKKyAgICB1cmwgPSAoImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vc2VhcmNoL2lzc3Vlcz9x
PXR5cGU6cHIraXM6bWVyZ2VkK3JlcG86JXMvJXMrJXMiICUKKyAgICAgICAgICAgKHJlcG8sIG93
bmVyLCByZXYpKQorICAgIHRyeToKKyAgICAgICAgcmVzcCA9IHVybGxpYjIudXJsb3Blbih1cmwp
CisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBsb2dnZXIuZXJyb3IoZSkKKyAg
ICAgICAgcmV0dXJuIE5vbmUKKworICAgIGlmIHJlc3AuY29kZSAhPSAyMDA6CisgICAgICAgIGxv
Z2dlci5lcnJvcigiR290IEhUVFAgc3RhdHVzICVzIiAlIHJlc3AuY29kZSkKKyAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgIHRyeToKKyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVzcC5yZWFk
KCkpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGxvZ2dlci5lcnJvcigiRmFpbGVk
IHRvIHJlYWQgcmVzcG9uc2UgYXMgSlNPTiIpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBp
dGVtcyA9IGRhdGFbIml0ZW1zIl0KKyAgICBpZiBsZW4oaXRlbXMpID09IDA6CisgICAgICAgIGxv
Z2dlci5lcnJvcigiTm8gUFIgZm91bmQgZm9yIG1hc3RlciIpCisgICAgICAgIHJldHVybiBOb25l
CisgICAgaWYgbGVuKGl0ZW1zKSA+IDE6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJGb3VuZCBt
dWx0aXBsZSBQUnMgZm9yIG1hc3RlciIpCisKKyAgICBwciA9IGl0ZW1zWzBdCisKKyAgICByZXR1
cm4gcHJbIm51bWJlciJdCisKKworZGVmIHRhZyhyZXBvLCBvd25lciwgc2hhLCB0YWcpOgorICAg
IGRhdGEgPSBqc29uLmR1bXBzKHsicmVmIjogInJlZnMvdGFncy8lcyIgJSB0YWcsCisgICAgICAg
ICAgICAgICAgICAgICAgICJzaGEiOiBzaGF9KQorICAgIHRyeToKKyAgICAgICAgdXJsID0gImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJXMvJXMvZ2l0L3JlZnMiICUgKHJlcG8sIG93bmVy
KQorICAgICAgICByZXEgPSB1cmxsaWIyLlJlcXVlc3QodXJsLCBkYXRhPWRhdGEpCisKKyAgICAg
ICAgYmFzZTY0c3RyaW5nID0gYmFzZTY0LmI2NGVuY29kZSgnJXMnICUgKG9zLmVudmlyb25bIkdI
X1RPS0VOIl0pKQorICAgICAgICByZXEuYWRkX2hlYWRlcigiQXV0aG9yaXphdGlvbiIsICJCYXNp
YyAlcyIgJSBiYXNlNjRzdHJpbmcpCisKKyAgICAgICAgb3BlbmVyID0gdXJsbGliMi5idWlsZF9v
cGVuZXIodXJsbGliMi5IVFRQU0hhbmRsZXIoKSkKKworICAgICAgICByZXNwID0gb3BlbmVyLm9w
ZW4ocmVxKQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgbG9nZ2VyLmVycm9y
KCJUYWcgY3JlYXRpb24gZmFpbGVkOlxuJXMiICUgZSkKKyAgICAgICAgcmV0dXJuCisKKyAgICBp
ZiByZXNwLmNvZGUgIT0gMjAxOgorICAgICAgICBsb2dnZXIuZXJyb3IoIkdvdCBIVFRQIHN0YXR1
cyAlcyIgJSByZXNwLmNvZGUpCisgICAgZWxzZToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRhZ2dl
ZCBtYXN0ZXIgYXMgJXMiICUgdGFnKQorCisKK2RlZiBtYWluKCk6CisgICAgb3duZXIsIHJlcG8g
PSBvcy5lbnZpcm9uWyJUUkFWSVNfUkVQT19TTFVHIl0uc3BsaXQoIi8iLCAxKQorICAgIGlmIG9z
LmVudmlyb25bIlRSQVZJU19QVUxMX1JFUVVFU1QiXSAhPSAiZmFsc2UiOgorICAgICAgICBsb2dn
ZXIuaW5mbygiTm90IHRhZ2dpbmcgZm9yIFBSIikKKyAgICAgICAgcmV0dXJuCisgICAgaWYgb3Mu
ZW52aXJvblsiVFJBVklTX0JSQU5DSCJdICE9ICJtYXN0ZXIiOgorICAgICAgICBsb2dnZXIuaW5m
bygiTm90IHRhZ2dpbmcgZm9yIG5vbi1tYXN0ZXIgYnJhbmNoIikKKyAgICAgICAgcmV0dXJuCisK
KyAgICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBoZWFkX3JldiA9IGdpdCgicmV2
LXBhcnNlIiwgIkhFQUQiKQorCisgICAgcHIgPSBnZXRfcHIob3duZXIsIHJlcG8sIGhlYWRfcmV2
KQorICAgIGlmIHByIGlzIG5vdCBOb25lOgorICAgICAgICB0YWcob3duZXIsIHJlcG8sIGhlYWRf
cmV2LCAibWVyZ2VfcHJfJXMiICUgcHIpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoK
KyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy90ZXN0X2pvYnMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWIxZWQzNjIwNjQ5MjkxMGFhYmM1NDI1ODE0ZTA5OGNhMjRjMDA0YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5CkBAIC0wLDAgKzEsODQgQEAKK2Zyb20gdG9v
bHMuY2kgaW1wb3J0IGpvYnMKKworZGVmYXVsdF9qb2JzID0gc2V0KFsibGludCIsICJtYW5pZmVz
dF91cGxvYWQiXSkKKworCitkZWYgdGVzdF90ZXN0aGFybmVzcygpOgorICAgIGFzc2VydCBqb2Jz
LmdldF9qb2JzKFsicmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0pID09IGRlZmF1bHRfam9icyB8
IHNldChbInJlc291cmNlc191bml0dGVzdCJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkgPT0gc2V0KFsicmVzb3VyY2VzX3VuaXR0ZXN0
Il0pCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJmb28vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNfdW5p
dHRlc3QiXSkgPT0gc2V0KCkKKworCitkZWYgdGVzdF9zdGFiaWxpdHkoKToKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbImRvbS9oaXN0b3JpY2FsLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoWyJzdGFiaWxpdHkiXSkKKyAg
ICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3B5dGVzdC5pbmkiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoKQorICAgIGFzc2Vy
dCBqb2JzLmdldF9qb2JzKFsic2VydmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNs
dWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhb
ImRvY3MvLmdpdGlnbm9yZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsi
c3RhYmlsaXR5Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20vdG9v
bHMvZXhhbXBsZS5weSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3Rh
YmlsaXR5Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjb25mb3JtYW5j
ZS1jaGVja2Vycy90ZXN0Lmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9t
L1JFQURNRS5tZCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3RhYmls
aXR5Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvYnVpbGQtY3Nz
LXRlc3RzdWl0ZS5zaCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3Rh
YmlsaXR5Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvQ1NTMjEv
dGVzdC0wMDEuaHRtbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3Rh
YmlsaXR5Il0pID09IHNldChbInN0YWJpbGl0eSJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2Jz
KFsiY3NzL2J1aWxkLWNzcy10ZXN0c3VpdGUuc2giLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY3NzL0NTUzIxL3Rlc3QtMDAxLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp
bmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoWyJzdGFiaWxpdHkiXSkKKworCitkZWYgdGVz
dF9kZWZhdWx0KCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJSRUFETUUubWQiXSkgPT0g
ZGVmYXVsdF9qb2JzCisKKworZGVmIHRlc3RfdG9vbHNfdW5pdHRlc3QoKToKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbInRvb2xzL2NpL3Rlc3QvdGVzdF9qb2JzLnB5Il0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0dGVzdCJdKSA9PSBzZXQoWyJ0b29s
c191bml0dGVzdCJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL3Rvb2xzL2V4YW1w
bGUucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInRvb2xzX3VuaXR0
ZXN0Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20vaGlzdG9yaWNh
bC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0
dGVzdCJdKSA9PSBzZXQoKQorCisKK2RlZiB0ZXN0X3dwdHJ1bm5lcl91bml0dGVzdCgpOgorICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5u
ZXIucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91
bml0dGVzdCJdKSA9PSBzZXQoWyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkKKyAgICBhc3NlcnQgam9i
cy5nZXRfam9icyhbInRvb2xzL2V4YW1wbGUucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91bml0dGVzdCJdKSA9PSBzZXQoKQorCisKK2RlZiB0ZXN0
X2J1aWxkX2NzcygpOgorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL2Nzcy1idWlsZC10
ZXN0c3VpdGVzLnNoIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJidWls
ZF9jc3MiXSkgPT0gc2V0KFsiYnVpbGRfY3NzIl0pCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMo
WyJjc3MvQ1NTMjEvdGVzdC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KFsiYnVpbGRfY3NzIl0pCisgICAgYXNzZXJ0IGpvYnMu
Z2V0X2pvYnMoWyJodG1sL2Nzcy9DU1MyMS90ZXN0Lmh0bWwiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNsdWRlcz1bImJ1aWxkX2NzcyJdKSA9PSBzZXQoKQorCisKK2RlZiB0ZXN0X3Vw
ZGF0ZV9idWlsdCgpOgorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiMmRjb250ZXh0L2Zvby5o
dG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ1cGRhdGVfYnVpbHQi
XSkgPT0gc2V0KFsidXBkYXRlX2J1aWx0Il0pCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJh
c3N1bXB0aW9ucy9mb28uaHRtbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVz
PVsidXBkYXRlX2J1aWx0Il0pID09IHNldChbInVwZGF0ZV9idWlsdCJdKQorICAgIGFzc2VydCBq
b2JzLmdldF9qb2JzKFsiaHRtbC9mb28uaHRtbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHNldChbInVwZGF0ZV9idWlsdCJdKQorICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsib2Zmc2NyZWVuLWNhbnZhcy9mb28uaHRtbCJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHNldChb
InVwZGF0ZV9idWlsdCJdKQorCisKK2RlZiB0ZXN0X3dwdF9pbnRlZ3JhdGlvbigpOgorICAgIGFz
c2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMvd3B0L3dwdC5weSJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2ludGVncmF0aW9uIl0pID09IHNldChbIndwdF9pbnRl
Z3JhdGlvbiJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRydW5uZXIucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bIndwdF9pbnRlZ3JhdGlvbiJdKSA9PSBzZXQoWyJ3cHRfaW50ZWdyYXRpb24iXSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkz
ZmI0NmIxNmNjYTJmOTRjNDZkNDgwMmI0OGI2ZTJmMTJiYTU4MjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rl
c3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2Jz
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjE1
NzBjMWU0YWM1MGFjYmJkZWU5OGYwM2U4ZmY2ODI0MmJhODc2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDM0IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFs
bC5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY2hlY2tfc3RhYmlsaXR5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9tYW5pZmVzdC5z
aAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
Y2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9zdGFiaWxpdHkuc2gKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNo
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aV93cHQuc2gKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFsbC5z
aAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
am9icy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvbGliLnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9tYWtlX2hvc3RzX2ZpbGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jb25m
dGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNlNWU3NGIwNmVjMjBmY2U0ODczZWIxZWFjZWE5
Y2Y0NTRhNjQ4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRlc3QucHkKQEAgLTAsMCArMSwyMiBAQAoraW1w
b3J0IHBsYXRmb3JtCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSBoeXBvdGhlc2lzIGlt
cG9ydCBzZXR0aW5ncywgSGVhbHRoQ2hlY2sKKworaW1wbCA9IHBsYXRmb3JtLnB5dGhvbl9pbXBs
ZW1lbnRhdGlvbigpCisKK3NldHRpbmdzLnJlZ2lzdGVyX3Byb2ZpbGUoImNpIiwgc2V0dGluZ3Mo
bWF4X2V4YW1wbGVzPTEwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1cHByZXNzX2hlYWx0aF9jaGVjaz1bSGVhbHRoQ2hlY2sudG9vX3Nsb3ddKSkKK3NldHRp
bmdzLnJlZ2lzdGVyX3Byb2ZpbGUoInB5cHkiLCBzZXR0aW5ncyhzdXBwcmVzc19oZWFsdGhfY2hl
Y2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkpCisKK3NldHRpbmdzLmxvYWRfcHJvZmlsZShvcy5n
ZXRlbnYoIkhZUE9USEVTSVNfUFJPRklMRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZWZhdWx0IiBpZiBpbXBsICE9ICJQeVB5IiBlbHNlICJweXB5IikpCisKKyMgc2VydmUg
Y2FuJ3QgZXZlbiBiZSBpbXBvcnRlZCBvbiBQeTMsIHNvIHRvdGFsbHkgaWdub3JlIGl0IGV2ZW4g
ZnJvbSBjb2xsZWN0aW9uCitjb2xsZWN0X2lnbm9yZSA9IFtdCitpZiBzeXMudmVyc2lvbl9pbmZv
WzBdID49IDM6CisgICAgc2VydmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKSwgInNlcnZlIikKKyAgICBjb2xsZWN0X2lnbm9yZS5leHRlbmQoW29zLnBhdGguam9pbihy
b290LCBmKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJvb3QsIF8sIGZpbGVzIGlu
IG9zLndhbGsoc2VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZiBpbiBmaWxl
c10pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2dpdGlnbm9yZS9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9y
ZS9naXRpZ25vcmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJlNmY4ZjRjOWNkZDc0MTExNGMwMzNiMjM1Y2Rl
YmEyNDU4MGU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weQpAQCAtMCwwICsx
LDE1NCBAQAoraW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IHJlCitpbXBvcnQgb3MKKworZW5kX3Nw
YWNlID0gcmUuY29tcGlsZShyIihbXlxcXVxzKSokIikKKworCitkZWYgZm5tYXRjaF90cmFuc2xh
dGUocGF0LCBwYXRoX25hbWU9RmFsc2UpOgorICAgIHBhcnRzID0gW10KKyAgICBzZXEgPSBGYWxz
ZQorICAgIGkgPSAwCisgICAgaWYgcGF0WzBdID09ICIvIiBvciBwYXRoX25hbWU6CisgICAgICAg
IHBhcnRzLmFwcGVuZCgiXiIpCisgICAgICAgIGFueV9jaGFyID0gIlteL10iCisgICAgICAgIGlm
IHBhdFswXSA9PSAiLyI6CisgICAgICAgICAgICBwYXQgPSBwYXRbMTpdCisgICAgZWxzZToKKyAg
ICAgICAgYW55X2NoYXIgPSAiLiIKKyAgICAgICAgcGFydHMuYXBwZW5kKCJeKD86LiovKT8iKQor
ICAgIGlmIHBhdFstMV0gPT0gIi8iOgorICAgICAgICAjIElmIHRoZSBsYXN0IGNoYXJhY3RlciBp
cyAvIG1hdGNoIHRoaXMgZGlyZWN0b3J5IG9yIGFueSBzdWJkaXJlY3RvcnkKKyAgICAgICAgcGF0
ID0gcGF0WzotMV0KKyAgICAgICAgc3VmZml4ID0gIig/Oi98JCkiCisgICAgZWxzZToKKyAgICAg
ICAgc3VmZml4ID0gIiQiCisgICAgd2hpbGUgaSA8IGxlbihwYXQpOgorICAgICAgICBjID0gcGF0
W2ldCisgICAgICAgIGlmIGMgPT0gIlxcIjoKKyAgICAgICAgICAgIGlmIGkgPCBsZW4ocGF0KSAt
IDE6CisgICAgICAgICAgICAgICAgaSArPSAxCisgICAgICAgICAgICAgICAgYyA9IHBhdFtpXQor
ICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChyZS5lc2NhcGUoYykpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgZWxpZiBzZXE6
CisgICAgICAgICAgICBpZiBjID09ICJdIjoKKyAgICAgICAgICAgICAgICBzZXEgPSBGYWxzZQor
ICAgICAgICAgICAgICAgICMgRmlyc3QgdHdvIGNhc2VzIGFyZSB0byBkZWFsIHdpdGggdGhlIGNh
c2Ugd2hlcmUgLyBpcyB0aGUgb25seSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAjIGluIHRo
ZSBzZXF1ZW5jZSBidXQgcGF0aF9uYW1lIGlzIFRydWUgc28gaXQgc2hvdWxkbid0IG1hdGNoIGFu
eXRoaW5nCisgICAgICAgICAgICAgICAgaWYgcGFydHNbLTFdID09ICJbIjoKKyAgICAgICAgICAg
ICAgICAgICAgcGFydHMgPSBwYXJ0c1s6LTFdCisgICAgICAgICAgICAgICAgZWxpZiBwYXJ0c1st
MV0gPT0gIl4iIGFuZCBwYXJ0c1stMl0gPT0gIlsiOgorICAgICAgICAgICAgICAgICAgICBwYXJ0
cyA9IHBhcnRzWzotMl0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBwYXJ0cy5hcHBlbmQoYykKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiLSI6CisgICAgICAgICAg
ICAgICAgcGFydHMuYXBwZW5kKGMpCisgICAgICAgICAgICBlbGlmIG5vdCAocGF0aF9uYW1lIGFu
ZCBjID09ICIvIik6CisgICAgICAgICAgICAgICAgcGFydHMgKz0gcmUuZXNjYXBlKGMpCisgICAg
ICAgIGVsaWYgYyA9PSAiWyI6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIlsiKQorICAgICAg
ICAgICAgaWYgaSA8IGxlbihwYXQpIC0gMSBhbmQgcGF0W2krMV0gaW4gKCIhIiwgIl4iKToKKyAg
ICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIl4iKQorICAgICAgICAgICAgICAgIGkgKz0gMQor
ICAgICAgICAgICAgc2VxID0gVHJ1ZQorICAgICAgICBlbGlmIGMgPT0gIioiOgorICAgICAgICAg
ICAgaWYgaSA8IGxlbihwYXQpIC0gMSBhbmQgcGF0W2krMV0gPT0gIioiOgorICAgICAgICAgICAg
ICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhciArICIqIikKKyAgICAgICAgICAgICAgICBpICs9IDEK
KyAgICAgICAgICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRbaSsxXSA9PSAiKiI6
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKGFueV9jaGFyICsgIioiKQorICAgICAgICBl
bGlmIGMgPT0gIj8iOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKGFueV9jaGFyKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKHJlLmVzY2FwZShjKSkKKyAgICAgICAg
aSArPSAxCisKKyAgICBpZiBzZXE6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICBwYXJ0
cy5hcHBlbmQoc3VmZml4KQorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHJlLmNvbXBpbGUoIiIu
am9pbihwYXJ0cykpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmFpc2UKKworCitk
ZWYgcGFyc2VfbGluZShsaW5lKToKKyAgICBsaW5lID0gbGluZS5yc3RyaXAoKQorICAgIGlmIG5v
dCBsaW5lIG9yIGxpbmVbMF0gPT0gIiMiOgorICAgICAgICByZXR1cm4KKworICAgIGludmVydCA9
IGxpbmVbMF0gPT0gIiEiCisgICAgaWYgaW52ZXJ0OgorICAgICAgICBsaW5lID0gbGluZVsxOl0K
KworICAgIGRpcl9vbmx5ID0gbGluZVstMV0gPT0gIi8iCisKKyAgICBpZiBkaXJfb25seToKKyAg
ICAgICAgbGluZSA9IGxpbmVbOi0xXQorCisgICAgcmV0dXJuIGludmVydCwgZGlyX29ubHksIGZu
bWF0Y2hfdHJhbnNsYXRlKGxpbmUsIGRpcl9vbmx5KQorCisKK2NsYXNzIFBhdGhGaWx0ZXIob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCwgZXh0cmFzPU5vbmUpOgorICAgICAg
ICBpZiByb290OgorICAgICAgICAgICAgaWdub3JlX3BhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwg
Ii5naXRpZ25vcmUiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWdub3JlX3BhdGggPSBO
b25lCisgICAgICAgIGlmIG5vdCBpZ25vcmVfcGF0aCBhbmQgbm90IGV4dHJhczoKKyAgICAgICAg
ICAgIHNlbGYudHJpdmlhbCA9IFRydWUKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxm
LnRyaXZpYWwgPSBGYWxzZQorCisgICAgICAgIHNlbGYucnVsZXNfZmlsZSA9IFtdCisgICAgICAg
IHNlbGYucnVsZXNfZGlyID0gW10KKworICAgICAgICBpZiBleHRyYXMgaXMgTm9uZToKKyAgICAg
ICAgICAgIGV4dHJhcyA9IFtdCisKKyAgICAgICAgaWYgaWdub3JlX3BhdGggYW5kIG9zLnBhdGgu
ZXhpc3RzKGlnbm9yZV9wYXRoKToKKyAgICAgICAgICAgIHNlbGYuX3JlYWRfaWdub3JlKGlnbm9y
ZV9wYXRoKQorCisgICAgICAgIGZvciBpdGVtIGluIGV4dHJhczoKKyAgICAgICAgICAgIHNlbGYu
X3JlYWRfbGluZShpdGVtKQorCisgICAgZGVmIF9yZWFkX2lnbm9yZShzZWxmLCBpZ25vcmVfcGF0
aCk6CisgICAgICAgIHdpdGggb3BlbihpZ25vcmVfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgIGZv
ciBsaW5lIGluIGY6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9saW5lKGxpbmUpCisKKyAg
ICBkZWYgX3JlYWRfbGluZShzZWxmLCBsaW5lKToKKyAgICAgICAgcGFyc2VkID0gcGFyc2VfbGlu
ZShsaW5lKQorICAgICAgICBpZiBub3QgcGFyc2VkOgorICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgIGludmVydCwgZGlyX29ubHksIHJlZ2V4cCA9IHBhcnNlZAorICAgICAgICBpZiBkaXJfb25s
eToKKyAgICAgICAgICAgIHNlbGYucnVsZXNfZGlyLmFwcGVuZCgocmVnZXhwLCBpbnZlcnQpKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5ydWxlc19maWxlLmFwcGVuZCgocmVnZXhw
LCBpbnZlcnQpKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBpZiBv
cy5wYXRoLnNlcCAhPSAiLyI6CisgICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKG9zLnBh
dGguc2VwLCAiLyIpCisKKyAgICAgICAgaWYgc2VsZi50cml2aWFsOgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKworICAgICAgICBwYXRoX2lzX2RpciA9IHBhdGhbLTFdID09ICIvIgorICAgICAg
ICBpZiBwYXRoX2lzX2RpcjoKKyAgICAgICAgICAgIHBhdGggPSBwYXRoWzotMV0KKyAgICAgICAg
ICAgIHJ1bGVzID0gc2VsZi5ydWxlc19kaXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ1
bGVzID0gc2VsZi5ydWxlc19maWxlCisKKyAgICAgICAgaW5jbHVkZSA9IFRydWUKKyAgICAgICAg
Zm9yIHJlZ2V4cCwgaW52ZXJ0IGluIHJ1bGVzOgorICAgICAgICAgICAgaWYgbm90IGluY2x1ZGUg
YW5kIGludmVydCBhbmQgcmVnZXhwLm1hdGNoKHBhdGgpOgorICAgICAgICAgICAgICAgIGluY2x1
ZGUgPSBUcnVlCisgICAgICAgICAgICBlbGlmIGluY2x1ZGUgYW5kIG5vdCBpbnZlcnQgYW5kIHJl
Z2V4cC5tYXRjaChwYXRoKToKKyAgICAgICAgICAgICAgICBpbmNsdWRlID0gRmFsc2UKKyAgICAg
ICAgcmV0dXJuIGluY2x1ZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUv
dGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAx
YzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5CkBA
IC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNo
IHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0aWdub3JlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMvdGVzdF9n
aXRpZ25vcmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVhMGQ1OGIyYzYwMWM0YjEwMjNmYmIxMTdkMzlhNDI5
ZDhiYjA5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0aWdub3JlLnB5CkBA
IC0wLDAgKzEsODIgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSAuLmdpdGlnbm9yZSBpbXBvcnQg
Zm5tYXRjaF90cmFuc2xhdGUsIFBhdGhGaWx0ZXIKKworbWF0Y2hfZGF0YSA9IFsKKyAgICAoImZv
byIsIEZhbHNlLCBbImEvZm9vIiwgImZvbyJdKSwKKyAgICAoIiouYSIsIEZhbHNlLCBbImZvby5h
IiwgImEvZm9vLmEiLCAiYS9iL2Zvby5hIiwgImEuYS9mb28uYSJdKSwKKyAgICAoIioucHlbY29d
IiwgRmFsc2UsIFsiYS5weWMiLCAiYS5weW8iLCAiYS9iL2MucHljIl0pLAorICAgICgiXFwjKiIs
IEZhbHNlLCBbIiNhIiwgImEvI2IiXSksCisgICAgKCIqIyIsIEZhbHNlLCBbImEjIiwgImEvYiMi
LCAiI2EjIl0pLAorICAgICgiLyouYyIsIEZhbHNlLCBbImEuYyIsICIuYyJdKSwKKyAgICAoIioq
L2IiLCBGYWxzZSwgWyJhL2IiLCAiYS9jL2IiXSksCisgICAgKCIqYiIsIFRydWUsIFsiYWIiXSks
CisgICAgKCIqKi9iIiwgVHJ1ZSwgWyJhL2IiXSksCisgICAgKCJhLyIsIFRydWUsIFsiYSIsICJh
L2IiLCAiYS9iL2MiXSkKK10KKworbWlzbWF0Y2hfZGF0YSA9IFsKKyAgICAoImZvbyIsIEZhbHNl
LCBbImZvb2IiLCAiYWZvbyJdKSwKKyAgICAoIiouYSIsIEZhbHNlLCBbImEiLCAiZm9vOmEiLCAi
YS5hL2ZvbyJdKSwKKyAgICAoIioucHlbY29dIiwgRmFsc2UsIFsiYS5weWQiLCAicHlvIl0pLAor
ICAgICgiLyouYyIsIEZhbHNlLCBbImEvYi5jIl0pLAorICAgICgiKmIiLCBUcnVlLCBbImEvYiJd
KSwKKyAgICAoIioqYiIsIFRydWUsIFsiYS9iIl0pLAorICAgICgiYVsvXWIiLCBUcnVlLCBbImEv
YiJdKSwKKyAgICAoIioqL2IiLCBUcnVlLCBbImEvYy9iIl0pLAorICAgICgiYSIsIFRydWUsIFsi
YWIiXSkKK10KKworaW52YWxpZF9kYXRhID0gWworICAgICJbYSIsCisgICAgIioqKi9mb28iLAor
ICAgICJhXFwiLAorXQorCitmaWx0ZXJfZGF0YSA9IFsKKyAgICAoImZvbyIsIFRydWUpLAorICAg
ICgiYSIsIEZhbHNlKSwKKyAgICAoImEvYiIsIEZhbHNlKSwKKyAgICAoImEvYyIsIFRydWUpLAor
ICAgICgiYS9jLyIsIEZhbHNlKSwKKyAgICAoImMvYiIsIFRydWUpCitdCisKKworZGVmIGV4cGFu
ZF9kYXRhKGNvbXBhY3RfZGF0YSk6CisgICAgZm9yIHBhdHRlcm4sIHBhdGhfbmFtZSwgaW5wdXRz
IGluIGNvbXBhY3RfZGF0YToKKyAgICAgICAgZm9yIGlucHV0IGluIGlucHV0czoKKyAgICAgICAg
ICAgIHlpZWxkIHBhdHRlcm4sIGlucHV0LCBwYXRoX25hbWUKKworCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoInBhdHRlcm4sIGlucHV0LCBwYXRoX25hbWUiLCBleHBhbmRfZGF0YShtYXRjaF9k
YXRhKSkKK2RlZiB0ZXN0c19tYXRjaChwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lKToKKyAgICBy
ZWdleHAgPSBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuLCBwYXRoX25hbWUpCisgICAgYXNzZXJ0
IHJlZ2V4cC5tYXRjaChpbnB1dCkgaXMgbm90IE5vbmUKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInBhdHRlcm4sIGlucHV0LCBwYXRoX25hbWUiLCBleHBhbmRfZGF0YShtaXNtYXRjaF9k
YXRhKSkKK2RlZiB0ZXN0c19ub19tYXRjaChwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lKToKKyAg
ICByZWdleHAgPSBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuLCBwYXRoX25hbWUpCisgICAgYXNz
ZXJ0IHJlZ2V4cC5tYXRjaChpbnB1dCkgaXMgTm9uZQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgicGF0dGVybiIsIGludmFsaWRfZGF0YSkKK2RlZiB0ZXN0c19pbnZhbGlkKHBhdHRlcm4p
OgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgZm5tYXRjaF90
cmFuc2xhdGUocGF0dGVybiwgRmFsc2UpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJy
b3IpOgorICAgICAgICBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuLCBUcnVlKQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgicGF0aCwgZXhwZWN0ZWQiLCBmaWx0ZXJfZGF0YSkKK2RlZiB0
ZXN0X3BhdGhfZmlsdGVyKHBhdGgsIGV4cGVjdGVkKToKKyAgICBleHRyYXMgPSBbCisgICAgICAg
ICIjZm9vIiwKKyAgICAgICAgImEgICIsCisgICAgICAgICIqKi9iIiwKKyAgICAgICAgImEvYy8i
LAorICAgICAgICAiIWMvYiIsCisgICAgXQorICAgIGYgPSBQYXRoRmlsdGVyKE5vbmUsIGV4dHJh
cykKKyAgICBhc3NlcnQgZihwYXRoKSA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWU5
MDhhYWNlZGY3ODQ0MDY1ZTY2NDZmZmZjYzMwZmNjNGI4Mjg1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25v
cmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVz
dHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25v
cmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDI1NTdm
ZjE2ZjU2YjJkYTAxYzI2ZWRmMzRkOWE4MDg0YjJhMmI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvX19pbml0X18ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGln
bm9yZS9naXRpZ25vcmUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9fX2luaXRfXy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNWViNWUxMmQ1Zjg5ZmM5ZmNkMGVlMTBiNjZiMTYxNGQ0MmRmNjg0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKK2Zyb20gLiBpbXBvcnQgbGludApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L2NvbW1hbmRzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvY29tbWFuZHMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGU5ODQ0
ZmFmZWU5OTk4MDg4NGJiNGY1MWIyMDBkOTkxZmE1M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2NvbW1h
bmRzLmpzb24KQEAgLTAsMCArMSwzIEBACit7ImxpbnQiOgorIHsicGF0aCI6ICJsaW50LnB5Iiwg
InNjcmlwdCI6ICJtYWluIiwgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwgImhlbHAiOiAiUnVu
IHRoZSBsaW50IiwKKyAgInZpcnR1YWxlbnYiOiBmYWxzZX19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC9mbm1hdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZTNlYjBhYTllNWFmMDdlMTFhZDViMDhkOTBmODI5
YjhhNTFhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5weQpAQCAtMCwwICsxLDMyIEBACitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgZm5tYXRjaCBh
cyBfc3RkbGliX2ZubWF0Y2gKK2ltcG9ydCBvcworCisKK19fYWxsX18gPSBbImZubWF0Y2giLCAi
Zm5tYXRjaGNhc2UiLCAiZmlsdGVyIiwgInRyYW5zbGF0ZSJdCisKKworZGVmIGZubWF0Y2gobmFt
ZSwgcGF0KToKKyAgICBuYW1lID0gb3MucGF0aC5ub3JtY2FzZShuYW1lKQorICAgIHBhdCA9IG9z
LnBhdGgubm9ybWNhc2UocGF0KQorICAgIHJldHVybiBmbm1hdGNoY2FzZShuYW1lLCBwYXQpCisK
KworZGVmIGZubWF0Y2hjYXNlKG5hbWUsIHBhdCk6CisgICAgaWYgJz8nIG5vdCBpbiBwYXQgYW5k
ICdbJyBub3QgaW4gcGF0OgorICAgICAgICB3aWxkY2FyZHMgPSBwYXQuY291bnQoIioiKQorICAg
ICAgICBpZiB3aWxkY2FyZHMgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBuYW1lID09IHBhdAor
ICAgICAgICBlbGlmIHdpbGRjYXJkcyA9PSAxIGFuZCBwYXRbMF0gPT0gIioiOgorICAgICAgICAg
ICAgcmV0dXJuIG5hbWUuZW5kc3dpdGgocGF0WzE6XSkKKyAgICAgICAgZWxpZiB3aWxkY2FyZHMg
PT0gMSBhbmQgcGF0Wy0xXSA9PSAiKiI6CisgICAgICAgICAgICByZXR1cm4gbmFtZS5zdGFydHN3
aXRoKHBhdFs6LTFdKQorICAgIHJldHVybiBfc3RkbGliX2ZubWF0Y2guZm5tYXRjaGNhc2UobmFt
ZSwgcGF0KQorCisKK2RlZiBmaWx0ZXIobmFtZXMsIHBhdCk6CisgICAgcmV0dXJuIFtuIGZvciBu
IGluIG5hbWVzIGlmIGZubWF0Y2gobiwgcGF0KV0KKworCit0cmFuc2xhdGUgPSBfc3RkbGliX2Zu
bWF0Y2gudHJhbnNsYXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhj
NTNkMjEzMmY1MzkzYTc0ZWViYjgwMjY3NGFhNzhhMWJiNGExM2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
bGludC5weQpAQCAtMCwwICsxLDg4OCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbiwgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgYWJjCitpbXBvcnQgYXJncGFyc2UK
K2ltcG9ydCBhc3QKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2lt
cG9ydCByZQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQor
Citmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCitmcm9tIC4gaW1wb3J0IGZu
bWF0Y2gKK2Zyb20gLi4gaW1wb3J0IGxvY2FscGF0aHMKK2Zyb20gLi5naXRpZ25vcmUuZ2l0aWdu
b3JlIGltcG9ydCBQYXRoRmlsdGVyCitmcm9tIC4ud3B0IGltcG9ydCB0ZXN0ZmlsZXMKKworZnJv
bSBtYW5pZmVzdC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlLCBqc19tZXRhX3JlLCBweXRo
b25fbWV0YV9yZSwgc3BhY2VfY2hhcnMKK2Zyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgaXRl
cml0ZW1zLCBpdGVydmFsdWVzCitmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKK2Zyb20gc2l4
Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQsIHVybGpvaW4KKworaW1wb3J0IGxv
Z2dpbmcKKworbG9nZ2VyID0gTm9uZQorCitkZWYgc2V0dXBfbG9nZ2luZyhwcmVmaXg9RmFsc2Up
OgorICAgIGdsb2JhbCBsb2dnZXIKKyAgICBpZiBsb2dnZXIgaXMgTm9uZToKKyAgICAgICAgbG9n
Z2VyID0gbG9nZ2luZy5nZXRMb2dnZXIob3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLnNwbGl0ZXh0
KF9fZmlsZV9fKVswXSkpCisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIo
c3lzLnN0ZG91dCkKKyAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKKyAgICBpZiBw
cmVmaXg6CisgICAgICAgIGZvcm1hdCA9IGxvZ2dpbmcuQkFTSUNfRk9STUFUCisgICAgZWxzZToK
KyAgICAgICAgZm9ybWF0ID0gIiUobWVzc2FnZSlzIgorICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcu
Rm9ybWF0dGVyKGZvcm1hdCkKKyAgICBmb3IgaGFuZGxlciBpbiBsb2dnZXIuaGFuZGxlcnM6Cisg
ICAgICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKKyAgICBsb2dnZXIuc2V0TGV2
ZWwobG9nZ2luZy5ERUJVRykKKworCitzZXR1cF9sb2dnaW5nKCkKKworCitFUlJPUl9NU0cgPSAi
IiJZb3UgbXVzdCBmaXggYWxsIGVycm9yczsgZm9yIGRldGFpbHMgb24gaG93IHRvIGZpeCB0aGVt
LCBzZWUKK2h0dHA6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3dyaXRpbmctdGVzdHMvbGludC10
b29sLmh0bWwKKworSG93ZXZlciwgaW5zdGVhZCBvZiBmaXhpbmcgYSBwYXJ0aWN1bGFyIGVycm9y
LCBpdCdzIHNvbWV0aW1lcworT0sgdG8gYWRkIGEgbGluZSB0byB0aGUgbGludC53aGl0ZWxpc3Qg
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUKK3dlYi1wbGF0Zm9ybS10ZXN0cyBkaXJlY3RvcnkgdG8g
bWFrZSB0aGUgbGludCB0b29sIGlnbm9yZSBpdC4KKworRm9yIGV4YW1wbGUsIHRvIG1ha2UgdGhl
IGxpbnQgdG9vbCBpZ25vcmUgYWxsICclcycKK2Vycm9ycyBpbiB0aGUgJXMgZmlsZSwKK3lvdSBj
b3VsZCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHRoZSBsaW50LndoaXRlbGlzdCBmaWxlLgor
CislczogJXMiIiIKKworZGVmIGFsbF9maWxlc3lzdGVtX3BhdGhzKHJlcG9fcm9vdCwgc3ViZGly
PU5vbmUpOgorICAgIHBhdGhfZmlsdGVyID0gUGF0aEZpbHRlcihyZXBvX3Jvb3QsIGV4dHJhcz1b
Ii5naXQvIl0pCisgICAgaWYgc3ViZGlyOgorICAgICAgICBleHBhbmRlZF9wYXRoID0gc3ViZGly
CisgICAgZWxzZToKKyAgICAgICAgZXhwYW5kZWRfcGF0aCA9IHJlcG9fcm9vdAorICAgIGZvciBk
aXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndhbGsoZXhwYW5kZWRfcGF0aCk6Cisg
ICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICBwYXRoID0gb3Mu
cGF0aC5yZWxwYXRoKG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSksIHJlcG9fcm9vdCkK
KyAgICAgICAgICAgIGlmIHBhdGhfZmlsdGVyKHBhdGgpOgorICAgICAgICAgICAgICAgIHlpZWxk
IHBhdGgKKyAgICAgICAgZGlybmFtZXNbOl0gPSBbaXRlbSBmb3IgaXRlbSBpbiBkaXJuYW1lcyBp
ZgorICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2ZpbHRlcihvcy5wYXRoLnJlbHBhdGgob3Mu
cGF0aC5qb2luKGRpcnBhdGgsIGl0ZW0pICsgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb19yb290KSsiLyIpXQorCitkZWYgX2FsbF9m
aWxlc19lcXVhbChwYXRocyk6CisgICAgIiIiCisgICAgQ2hlY2tzIGFsbCB0aGUgcGF0aHMgYXJl
IGZpbGVzIHRoYXQgYXJlIGJ5dGUtZm9yLWJ5dGUgaWRlbnRpY2FsCisKKyAgICA6cGFyYW0gcGF0
aHM6IHRoZSBsaXN0IG9mIHBhdGhzIHRvIGNvbXBhcmUKKyAgICA6cmV0dXJuczogVHJ1ZSBpZiB0
aGV5IGFyZSBhbGwgaWRlbnRpY2FsCisgICAgIiIiCisgICAgcGF0aHMgPSBsaXN0KHBhdGhzKQor
ICAgIGlmIGxlbihwYXRocykgPCAyOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZmlyc3Qg
PSBwYXRocy5wb3AoKQorICAgIHNpemUgPSBvcy5wYXRoLmdldHNpemUoZmlyc3QpCisgICAgaWYg
YW55KG9zLnBhdGguZ2V0c2l6ZShwYXRoKSAhPSBzaXplIGZvciBwYXRoIGluIHBhdGhzKToKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIENodW5rIHRoaXMgdG8gYXZvaWQgZWF0aW5nIHVw
IG1lbW9yeSBhbmQgZmlsZSBkZXNjcmlwdG9ycworICAgIGJ1ZnNpemUgPSA0MDk2KjQgICMgMTZL
QiwgYSAicmVhc29uYWJsZSIgbnVtYmVyIG9mIGRpc2sgc2VjdG9ycworICAgIGdyb3Vwc2l6ZSA9
IDggICMgSHlwb3RoZXNpc2VkIHRvIGJlIGxhcmdlIGVub3VnaCBpbiB0aGUgY29tbW9uIGNhc2Ug
dGhhdCBldmVyeXRoaW5nIGZpdHMgaW4gb25lIGdyb3VwCisgICAgd2l0aCBvcGVuKGZpcnN0LCAi
cmIiKSBhcyBmaXJzdF9mOgorICAgICAgICBmb3Igc3RhcnQgaW4gcmFuZ2UoMCwgbGVuKHBhdGhz
KSwgZ3JvdXBzaXplKToKKyAgICAgICAgICAgIHBhdGhfZ3JvdXAgPSBwYXRoc1tzdGFydDpzdGFy
dCtncm91cHNpemVdCisgICAgICAgICAgICBmaXJzdF9mLnNlZWsoMCkKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICBmaWxlcyA9IFtvcGVuKHgsICJyYiIpIGZvciB4IGluIHBhdGhf
Z3JvdXBdCisgICAgICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMCwgc2l6ZSwgYnVmc2l6ZSk6
CisgICAgICAgICAgICAgICAgICAgIGEgPSBmaXJzdF9mLnJlYWQoYnVmc2l6ZSkKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBiID0g
Zi5yZWFkKGJ1ZnNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBhICE9IGI6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgICAgIGZvciBmIGluIGZpbGVzOgorICAgICAgICAgICAgICAgICAgICBm
LmNsb3NlKCkKKworICAgIHJldHVybiBUcnVlCisKKworZGVmIGNoZWNrX3BhdGhfbGVuZ3RoKHJl
cG9fcm9vdCwgcGF0aCk6CisgICAgaWYgbGVuKHBhdGgpICsgMSA+IDE1MDoKKyAgICAgICAgcmV0
dXJuIFsoIlBBVEggTEVOR1RIIiwgIi8lcyBsb25nZXIgdGhhbiBtYXhpbXVtIHBhdGggbGVuZ3Ro
ICglZCA+IDE1MCkiICUgKHBhdGgsIGxlbihwYXRoKSArIDEpLCBwYXRoLCBOb25lKV0KKyAgICBy
ZXR1cm4gW10KKworCitkZWYgY2hlY2tfd29ya2VyX2NvbGxpc2lvbihyZXBvX3Jvb3QsIHBhdGgp
OgorICAgIGVuZGluZ3MgPSBbKCIuYW55Lmh0bWwiLCAiLmFueS5qcyIpLAorICAgICAgICAgICAg
ICAgKCIuYW55Lndvcmtlci5odG1sIiwgIi5hbnkuanMiKSwKKyAgICAgICAgICAgICAgICgiLndv
cmtlci5odG1sIiwgIi53b3JrZXIuanMiKV0KKyAgICBmb3IgcGF0aF9lbmRpbmcsIGdlbmVyYXRl
ZCBpbiBlbmRpbmdzOgorICAgICAgICBpZiBwYXRoLmVuZHN3aXRoKHBhdGhfZW5kaW5nKToKKyAg
ICAgICAgICAgIHJldHVybiBbKCJXT1JLRVIgQ09MTElTSU9OIiwKKyAgICAgICAgICAgICAgICAg
ICAgICJwYXRoIGVuZHMgd2l0aCAlcyB3aGljaCBjb2xsaWRlcyB3aXRoIGdlbmVyYXRlZCB0ZXN0
cyBmcm9tICVzIGZpbGVzIiAlIChwYXRoX2VuZGluZywgZ2VuZXJhdGVkKSwKKyAgICAgICAgICAg
ICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICBOb25lKV0KKyAgICByZXR1cm4g
W10KKworCitkZWYgY2hlY2tfYWhlbV9jb3B5KHJlcG9fcm9vdCwgcGF0aCk6CisgICAgbHBhdGgg
PSBwYXRoLmxvd2VyKCkKKyAgICBpZiAiYWhlbSIgaW4gbHBhdGggYW5kIGxwYXRoLmVuZHN3aXRo
KCIudHRmIik6CisgICAgICAgIHJldHVybiBbKCJBSEVNIENPUFkiLCAiRG9uJ3QgYWRkIGV4dHJh
IGNvcGllcyBvZiBBaGVtLCB1c2UgL2ZvbnRzL0FoZW0udHRmIiwgcGF0aCwgTm9uZSldCisgICAg
cmV0dXJuIFtdCisKKworZGVmIGNoZWNrX2dpdF9pZ25vcmUocmVwb19yb290LCBwYXRocyk6Cisg
ICAgZXJyb3JzID0gW10KKyAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoJ3crJykgYXMg
ZjoKKyAgICAgICAgZi53cml0ZSgnXG4nLmpvaW4ocGF0aHMpKQorICAgICAgICBmLnNlZWsoMCkK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbWF0Y2hlcyA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0
cHV0KAorICAgICAgICAgICAgICAgIFsiZ2l0IiwgImNoZWNrLWlnbm9yZSIsICItLXZlcmJvc2Ui
LCAiLS1uby1pbmRleCIsICItLXN0ZGluIl0sIHN0ZGluPWYpCisgICAgICAgICAgICBmb3IgbWF0
Y2ggaW4gbWF0Y2hlcy5zdHJpcCgpLnNwbGl0KCdcbicpOgorICAgICAgICAgICAgICAgIG1hdGNo
X2ZpbHRlciwgcGF0aCA9IG1hdGNoLnNwbGl0KCkKKyAgICAgICAgICAgICAgICBfLCBfLCBmaWx0
ZXJfc3RyaW5nID0gbWF0Y2hfZmlsdGVyLnNwbGl0KCc6JykKKyAgICAgICAgICAgICAgICAjIElm
IHRoZSBtYXRjaGluZyBmaWx0ZXIgcmVwb3J0ZWQgYnkgY2hlY2staWdub3JlIGlzIGEgc3BlY2lh
bC1jYXNlIGV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAjIHRoYXQncyBmaW5lLiBPdGhlcndp
c2UsIGl0IHJlcXVpcmVzIGEgbmV3IHNwZWNpYWwtY2FzZSBleGNlcHRpb24uCisgICAgICAgICAg
ICAgICAgaWYgZmlsdGVyX3N0cmluZ1swXSAhPSAnISc6CisgICAgICAgICAgICAgICAgICAgIGVy
cm9ycyArPSBbKCJJR05PUkVEIFBBVEgiLCAiJXMgbWF0Y2hlcyBhbiBpZ25vcmUgZmlsdGVyIGlu
IC5naXRpZ25vcmUgLSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGVhc2Ug
YWRkIGEgLmdpdGlnbm9yZSBleGNlcHRpb24iICUgcGF0aCwgcGF0aCwgTm9uZSldCisgICAgICAg
IGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgorICAgICAgICAgICAg
IyBOb256ZXJvIHJldHVybiBjb2RlIG1lYW5zIHRoYXQgbm8gbWF0Y2ggZXhpc3RzLgorICAgICAg
ICAgICAgcGFzcworICAgIHJldHVybiBlcnJvcnMKKworCitkcmFmdHNfY3Nzd2dfcmUgPSByZS5j
b21waWxlKHIiaHR0cHM/XDpcL1wvZHJhZnRzXC5jc3N3Z1wub3JnXC8oW14vPyNdKykiKQordzNj
X3RyX3JlID0gcmUuY29tcGlsZShyImh0dHBzP1w6XC9cL3d3d1wudzNjP1wub3JnXC9UUlwvKFte
Lz8jXSspIikKK3czY19kZXZfcmUgPSByZS5jb21waWxlKHIiaHR0cHM/XDpcL1wvZGV2XC53M2M/
XC5vcmdcL1teLz8jXStcLyhbXi8/I10rKSIpCisKKworZGVmIGNoZWNrX2Nzc19nbG9iYWxseV91
bmlxdWUocmVwb19yb290LCBwYXRocyk6CisgICAgIiIiCisgICAgQ2hlY2tzIHRoYXQgQ1NTIGZp
bGVuYW1lcyBhcmUgc3VmZmljaWVudGx5IHVuaXF1ZQorCisgICAgVGhpcyBncm91cHMgZmlsZXMg
YnkgcGF0aCBjbGFzc2lmeWluZyB0aGVtIGFzICJ0ZXN0IiwgInJlZmVyZW5jZSIsIG9yCisgICAg
InN1cHBvcnQiLgorCisgICAgInRlc3QiIGZpbGVzIG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lIGFj
cm9zcyBmaWxlcyB0aGF0IHNoYXJlIGxpbmtzIHRvIHRoZQorICAgIHNhbWUgc3BlYy4KKworICAg
ICJyZWZlcmVuY2UiIGFuZCAic3VwcG9ydCIgZmlsZXMsIG9uIHRoZSBvdGhlciBoYW5kLCBtdXN0
IGhhdmUgZ2xvYmFsbHkKKyAgICB1bmlxdWUgbmFtZXMuCisKKyAgICA6cGFyYW0gcmVwb19yb290
OiB0aGUgcmVwb3NpdG9yeSByb290CisgICAgOnBhcmFtIHBhdGhzOiBsaXN0IG9mIGFsbCBwYXRo
cworICAgIDpyZXR1cm5zOiBhIGxpc3Qgb2YgZXJyb3JzIGZvdW5kIGluIGBgcGF0aHNgYAorCisg
ICAgIiIiCisgICAgdGVzdF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkKKyAgICByZWZfZmlsZXMg
PSBkZWZhdWx0ZGljdChzZXQpCisgICAgc3VwcG9ydF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkK
KworICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICBpZiBvcy5uYW1lID09ICJudCI6Cisg
ICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCJcXCIsICIvIikKKworICAgICAgICBpZiBu
b3QgcGF0aC5zdGFydHN3aXRoKCJjc3MvIik6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAg
ICAgIHNvdXJjZV9maWxlID0gU291cmNlRmlsZShyZXBvX3Jvb3QsIHBhdGgsICIvIikKKyAgICAg
ICAgaWYgc291cmNlX2ZpbGUubmFtZV9pc19ub25fdGVzdDoKKyAgICAgICAgICAgICMgSWYgd2Un
cmUgbmFtZV9pc19ub25fdGVzdCBmb3IgYSByZWFzb24gYXBhcnQgZnJvbSBzdXBwb3J0LCBpZ25v
cmUgaXQuCisgICAgICAgICAgICAjIFdlIGNhcmUgYWJvdXQgc3VwcG9ydCBiZWNhdXNlIG9mIHRo
ZSByZXF1aXJlbWVudCBhbGwgc3VwcG9ydCBmaWxlcyBpbiBjc3MvIHRvIGJlIGluCisgICAgICAg
ICAgICAjIGEgc3VwcG9ydCBkaXJlY3Rvcnk7IHNlZSB0aGUgc3RhcnQgb2YgY2hlY2tfcGFyc2Vk
LgorICAgICAgICAgICAgb2Zmc2V0ID0gcGF0aC5maW5kKCIvc3VwcG9ydC8iKQorICAgICAgICAg
ICAgaWYgb2Zmc2V0ID09IC0xOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAg
ICAgIHBhcnRzID0gc291cmNlX2ZpbGUuZGlyX3BhdGguc3BsaXQob3MucGF0aC5zZXApCisgICAg
ICAgICAgICBpZiAocGFydHNbMF0gaW4gc291cmNlX2ZpbGUucm9vdF9kaXJfbm9uX3Rlc3Qgb3IK
KyAgICAgICAgICAgICAgICBhbnkoaXRlbSBpbiBzb3VyY2VfZmlsZS5kaXJfbm9uX3Rlc3QgLSB7
InN1cHBvcnQifSBmb3IgaXRlbSBpbiBwYXJ0cykgb3IKKyAgICAgICAgICAgICAgICBhbnkocGFy
dHNbOmxlbihub25fdGVzdF9wYXRoKV0gPT0gbGlzdChub25fdGVzdF9wYXRoKSBmb3Igbm9uX3Rl
c3RfcGF0aCBpbiBzb3VyY2VfZmlsZS5kaXJfcGF0aF9ub25fdGVzdCkpOgorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIG5hbWUgPSBwYXRoW29mZnNldCsxOl0KKyAgICAg
ICAgICAgIHN1cHBvcnRfZmlsZXNbbmFtZV0uYWRkKHBhdGgpCisgICAgICAgIGVsaWYgc291cmNl
X2ZpbGUubmFtZV9pc19yZWZlcmVuY2U6CisgICAgICAgICAgICByZWZfZmlsZXNbc291cmNlX2Zp
bGUubmFtZV0uYWRkKHBhdGgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0ZXN0X2ZpbGVz
W3NvdXJjZV9maWxlLm5hbWVdLmFkZChwYXRoKQorCisgICAgZXJyb3JzID0gW10KKworICAgIGZv
ciBuYW1lLCBjb2xsaWRpbmcgaW4gaXRlcml0ZW1zKHRlc3RfZmlsZXMpOgorICAgICAgICBpZiBs
ZW4oY29sbGlkaW5nKSA+IDE6CisgICAgICAgICAgICBpZiBub3QgX2FsbF9maWxlc19lcXVhbChb
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgeCkgZm9yIHggaW4gY29sbGlkaW5nXSk6CisgICAgICAg
ICAgICAgICAgIyBPbmx5IGNvbXB1dGUgYnlfc3BlYyBpZiB0aGVyZSBhcmUgcHJpbWEtZmFjaWUg
Y29sbGlzaW9ucyBiZWNhdXNlIG9mIGNvc3QKKyAgICAgICAgICAgICAgICBieV9zcGVjID0gZGVm
YXVsdGRpY3Qoc2V0KQorICAgICAgICAgICAgICAgIGZvciBwYXRoIGluIGNvbGxpZGluZzoKKyAg
ICAgICAgICAgICAgICAgICAgc291cmNlX2ZpbGUgPSBTb3VyY2VGaWxlKHJlcG9fcm9vdCwgcGF0
aCwgIi8iKQorICAgICAgICAgICAgICAgICAgICBmb3IgbGluayBpbiBzb3VyY2VfZmlsZS5zcGVj
X2xpbmtzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gKGRyYWZ0c19jc3N3Z19y
ZSwgdzNjX3RyX3JlLCB3M2NfZGV2X3JlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ID0gci5tYXRjaChsaW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG06CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMgPSBtLmdyb3VwKDEpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAg
ICAgICAgICBieV9zcGVjW3NwZWNdLmFkZChwYXRoKQorCisgICAgICAgICAgICAgICAgZm9yIHNw
ZWMsIHBhdGhzIGluIGl0ZXJpdGVtcyhieV9zcGVjKToKKyAgICAgICAgICAgICAgICAgICAgaWYg
bm90IF9hbGxfZmlsZXNfZXF1YWwoW29zLnBhdGguam9pbihyZXBvX3Jvb3QsIHgpIGZvciB4IGlu
IHBhdGhzXSk6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBwYXRoczoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQ1NTLUNPTExJRElORy1URVNU
LU5BTUUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUg
ZmlsZW5hbWUgJXMgaW4gdGhlICVzIHRlc3RzdWl0ZSBpcyBzaGFyZWQgYnk6ICVzIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlYywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29ydGVkKHBhdGhzKSkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCisKKyAgICBmb3IgZXJy
b3JfbmFtZSwgZCBpbiBbKCJDU1MtQ09MTElESU5HLVJFRi1OQU1FIiwgcmVmX2ZpbGVzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCJDU1MtQ09MTElESU5HLVNVUFBPUlQtTkFNRSIsIHN1
cHBvcnRfZmlsZXMpXToKKyAgICAgICAgZm9yIG5hbWUsIGNvbGxpZGluZyBpbiBpdGVyaXRlbXMo
ZCk6CisgICAgICAgICAgICBpZiBsZW4oY29sbGlkaW5nKSA+IDE6CisgICAgICAgICAgICAgICAg
aWYgbm90IF9hbGxfZmlsZXNfZXF1YWwoW29zLnBhdGguam9pbihyZXBvX3Jvb3QsIHgpIGZvciB4
IGluIGNvbGxpZGluZ10pOgorICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBjb2xsaWRpbmc6
CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChlcnJvcl9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWxlbmFtZSAlcyBpcyBz
aGFyZWQgYnk6ICVzIiAlIChuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29y
dGVkKGNvbGxpZGluZykpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKSkKKworICAg
IHJldHVybiBlcnJvcnMKKworCitkZWYgcGFyc2Vfd2hpdGVsaXN0KGYpOgorICAgICIiIgorICAg
IFBhcnNlIHRoZSB3aGl0ZWxpc3QgZmlsZSBnaXZlbiBieSBgZmAsIGFuZCByZXR1cm4gdGhlIHBh
cnNlZCBzdHJ1Y3R1cmUuCisgICAgIiIiCisKKyAgICBkYXRhID0gZGVmYXVsdGRpY3QobGFtYmRh
OmRlZmF1bHRkaWN0KHNldCkpCisgICAgaWdub3JlZF9maWxlcyA9IHNldCgpCisKKyAgICBmb3Ig
bGluZSBpbiBmOgorICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgIGlmIG5vdCBs
aW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgcGFydHMgPSBbaXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIGxpbmUuc3BsaXQoIjoiKV0KKyAg
ICAgICAgaWYgbGVuKHBhcnRzKSA9PSAyOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKE5vbmUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXJ0c1stMV0gPSBpbnQocGFydHNbLTFdKQor
CisgICAgICAgIGVycm9yX3R5cGVzLCBmaWxlX21hdGNoLCBsaW5lX251bWJlciA9IHBhcnRzCisg
ICAgICAgIGVycm9yX3R5cGVzID0ge2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBlcnJvcl90eXBl
cy5zcGxpdCgiLCIpfQorICAgICAgICBmaWxlX21hdGNoID0gb3MucGF0aC5ub3JtY2FzZShmaWxl
X21hdGNoKQorCisgICAgICAgIGlmICIqIiBpbiBlcnJvcl90eXBlczoKKyAgICAgICAgICAgIGln
bm9yZWRfZmlsZXMuYWRkKGZpbGVfbWF0Y2gpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBm
b3IgZXJyb3JfdHlwZSBpbiBlcnJvcl90eXBlczoKKyAgICAgICAgICAgICAgICBkYXRhW2Vycm9y
X3R5cGVdW2ZpbGVfbWF0Y2hdLmFkZChsaW5lX251bWJlcikKKworICAgIHJldHVybiBkYXRhLCBp
Z25vcmVkX2ZpbGVzCisKKworZGVmIGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKGRhdGEsIGVycm9y
cyk6CisgICAgIiIiCisgICAgRmlsdGVyIG91dCB0aG9zZSBlcnJvcnMgdGhhdCBhcmUgd2hpdGVs
aXN0ZWQgaW4gYGRhdGFgLgorICAgICIiIgorCisgICAgaWYgbm90IGVycm9yczoKKyAgICAgICAg
cmV0dXJuIFtdCisKKyAgICB3aGl0ZWxpc3RlZCA9IFtGYWxzZSBmb3IgaXRlbSBpbiByYW5nZShs
ZW4oZXJyb3JzKSldCisKKyAgICBmb3IgaSwgKGVycm9yX3R5cGUsIG1zZywgcGF0aCwgbGluZSkg
aW4gZW51bWVyYXRlKGVycm9ycyk6CisgICAgICAgIG5vcm1wYXRoID0gb3MucGF0aC5ub3JtY2Fz
ZShwYXRoKQorICAgICAgICAjIEFsbG93IHdoaXRlbGlzdGluZyBhbGwgbGludCBlcnJvcnMgZXhj
ZXB0IHRoZSBJR05PUkVEIFBBVEggbGludCwKKyAgICAgICAgIyB3aGljaCBleHBsYWlucyBob3cg
dG8gZml4IGl0IGNvcnJlY3RseSBhbmQgc2hvdWxkbid0IGJlIGlnbm9yZWQuCisgICAgICAgIGlm
IGVycm9yX3R5cGUgaW4gZGF0YSBhbmQgZXJyb3JfdHlwZSAhPSAiSUdOT1JFRCBQQVRIIjoKKyAg
ICAgICAgICAgIHdsX2ZpbGVzID0gZGF0YVtlcnJvcl90eXBlXQorICAgICAgICAgICAgZm9yIGZp
bGVfbWF0Y2gsIGFsbG93ZWRfbGluZXMgaW4gaXRlcml0ZW1zKHdsX2ZpbGVzKToKKyAgICAgICAg
ICAgICAgICBpZiBOb25lIGluIGFsbG93ZWRfbGluZXMgb3IgbGluZSBpbiBhbGxvd2VkX2xpbmVz
OgorICAgICAgICAgICAgICAgICAgICBpZiBmbm1hdGNoLmZubWF0Y2hjYXNlKG5vcm1wYXRoLCBm
aWxlX21hdGNoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlbGlzdGVkW2ldID0gVHJ1
ZQorCisgICAgcmV0dXJuIFtpdGVtIGZvciBpLCBpdGVtIGluIGVudW1lcmF0ZShlcnJvcnMpIGlm
IG5vdCB3aGl0ZWxpc3RlZFtpXV0KKworY2xhc3MgUmVnZXhwKG9iamVjdCk6CisgICAgcGF0dGVy
biA9IE5vbmUKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBOb25lCisgICAgZXJyb3IgPSBOb25lCisg
ICAgX3JlID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9y
ZSA9IHJlLmNvbXBpbGUoc2VsZi5wYXR0ZXJuKQorCisgICAgZGVmIGFwcGxpZXMoc2VsZiwgcGF0
aCk6CisgICAgICAgIHJldHVybiAoc2VsZi5maWxlX2V4dGVuc2lvbnMgaXMgTm9uZSBvcgorICAg
ICAgICAgICAgICAgIG9zLnBhdGguc3BsaXRleHQocGF0aClbMV0gaW4gc2VsZi5maWxlX2V4dGVu
c2lvbnMpCisKKyAgICBkZWYgc2VhcmNoKHNlbGYsIGxpbmUpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fcmUuc2VhcmNoKGxpbmUpCisKK2NsYXNzIFRyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4cChSZWdl
eHApOgorICAgIHBhdHRlcm4gPSBiIlsgXHRcZlx2XSQiCisgICAgZXJyb3IgPSAiVFJBSUxJTkcg
V0hJVEVTUEFDRSIKKyAgICBkZXNjcmlwdGlvbiA9ICJXaGl0ZXNwYWNlIGF0IEVPTCIKKworY2xh
c3MgVGFic1JlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiIl5cdCIKKyAgICBlcnJvciA9
ICJJTkRFTlQgVEFCUyIKKyAgICBkZXNjcmlwdGlvbiA9ICJUYWJzIHVzZWQgZm9yIGluZGVudGF0
aW9uIgorCitjbGFzcyBDUlJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiIlxyJCIKKyAg
ICBlcnJvciA9ICJDUiBBVCBFT0wiCisgICAgZGVzY3JpcHRpb24gPSAiQ1IgY2hhcmFjdGVyIGlu
IGxpbmUgc2VwYXJhdG9yIgorCitjbGFzcyBTZXRUaW1lb3V0UmVnZXhwKFJlZ2V4cCk6CisgICAg
cGF0dGVybiA9IGIic2V0VGltZW91dFxzKlwoIgorICAgIGVycm9yID0gIlNFVCBUSU1FT1VUIgor
ICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIu
eGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAic2V0VGltZW91dCB1c2VkOyBzdGVw
X3RpbWVvdXQgc2hvdWxkIHR5cGljYWxseSBiZSB1c2VkIGluc3RlYWQiCisKK2NsYXNzIFczQ1Rl
c3RPcmdSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJ3M2NcLXRlc3RcLm9yZyIKKyAg
ICBlcnJvciA9ICJXM0MtVEVTVC5PUkciCisgICAgZGVzY3JpcHRpb24gPSAiRXh0ZXJuYWwgdzNj
LXRlc3Qub3JnIGRvbWFpbiB1c2VkIgorCitjbGFzcyBXZWJQbGF0Zm9ybVRlc3RSZWdleHAoUmVn
ZXhwKToKKyAgICBwYXR0ZXJuID0gYiJ3ZWJcLXBsYXRmb3JtXC50ZXN0IgorICAgIGVycm9yID0g
IldFQi1QTEFURk9STS5URVNUIgorICAgIGRlc2NyaXB0aW9uID0gIkludGVybmFsIHdlYi1wbGF0
Zm9ybS50ZXN0IGRvbWFpbiB1c2VkIgorCitjbGFzcyBXZWJpZGwyUmVnZXhwKFJlZ2V4cCk6Cisg
ICAgcGF0dGVybiA9IGIid2ViaWRsMlwuanMiCisgICAgZXJyb3IgPSAiV0VCSURMMi5KUyIKKyAg
ICBkZXNjcmlwdGlvbiA9ICJMZWdhY3kgd2ViaWRsMi5qcyBzY3JpcHQgdXNlZCIKKworY2xhc3Mg
Q29uc29sZVJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiImNvbnNvbGVcLlthLXpBLVpd
K1xzKlwoIgorICAgIGVycm9yID0gIkNPTlNPTEUiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIu
aHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIuc3ZnIl0KKyAgICBkZXNj
cmlwdGlvbiA9ICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVzZWQiCisKK2NsYXNzIEdlbmVyYXRlVGVz
dHNSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJnZW5lcmF0ZV90ZXN0c1xzKlwoIgor
ICAgIGVycm9yID0gIkdFTkVSQVRFX1RFU1RTIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0
bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3Jp
cHRpb24gPSAiZ2VuZXJhdGVfdGVzdHMgdXNlZCIKKworY2xhc3MgUHJpbnRSZWdleHAoUmVnZXhw
KToKKyAgICBwYXR0ZXJuID0gYiJwcmludCg/OlxzfFxzKlwoKSIKKyAgICBlcnJvciA9ICJQUklO
VCBTVEFURU1FTlQiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIucHkiXQorICAgIGRlc2NyaXB0
aW9uID0gIlByaW50IGZ1bmN0aW9uIHVzZWQiCisKK2NsYXNzIExheW91dFRlc3RzUmVnZXhwKFJl
Z2V4cCk6CisgICAgcGF0dGVybiA9IGIiZXZlbnRTZW5kZXJ8dGVzdFJ1bm5lcnx3aW5kb3dcLmlu
dGVybmFscyIKKyAgICBlcnJvciA9ICJMQVlPVVRURVNUUyBBUElTIgorICAgIGZpbGVfZXh0ZW5z
aW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJd
CisgICAgZGVzY3JpcHRpb24gPSAiZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJu
YWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxp
bmspIgorCitjbGFzcyBTcGVjaWFsUG93ZXJzUmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9
IGIiU3BlY2lhbFBvd2VycyIKKyAgICBlcnJvciA9ICJTUEVDSUFMUE9XRVJTIEFQSSIKKyAgICBm
aWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1s
IiwgIi5zdmciXQorICAgIGRlc2NyaXB0aW9uID0gIlNwZWNpYWxQb3dlcnMgdXNlZDsgdGhpcyBp
cyBnZWNrby1zcGVjaWZpYyBhbmQgbm90IHN1cHBvcnRlZCBpbiB3cHQiCisKKworcmVnZXhwcyA9
IFtpdGVtKCkgZm9yIGl0ZW0gaW4KKyAgICAgICAgICAgW1RyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4
cCwKKyAgICAgICAgICAgIFRhYnNSZWdleHAsCisgICAgICAgICAgICBDUlJlZ2V4cCwKKyAgICAg
ICAgICAgIFNldFRpbWVvdXRSZWdleHAsCisgICAgICAgICAgICBXM0NUZXN0T3JnUmVnZXhwLAor
ICAgICAgICAgICAgV2ViUGxhdGZvcm1UZXN0UmVnZXhwLAorICAgICAgICAgICAgV2ViaWRsMlJl
Z2V4cCwKKyAgICAgICAgICAgIENvbnNvbGVSZWdleHAsCisgICAgICAgICAgICBHZW5lcmF0ZVRl
c3RzUmVnZXhwLAorICAgICAgICAgICAgUHJpbnRSZWdleHAsCisgICAgICAgICAgICBMYXlvdXRU
ZXN0c1JlZ2V4cCwKKyAgICAgICAgICAgIFNwZWNpYWxQb3dlcnNSZWdleHBdXQorCitkZWYgY2hl
Y2tfcmVnZXhwX2xpbmUocmVwb19yb290LCBwYXRoLCBmKToKKyAgICBlcnJvcnMgPSBbXQorCisg
ICAgYXBwbGljYWJsZV9yZWdleHBzID0gW3JlZ2V4cCBmb3IgcmVnZXhwIGluIHJlZ2V4cHMgaWYg
cmVnZXhwLmFwcGxpZXMocGF0aCldCisKKyAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoZik6
CisgICAgICAgIGZvciByZWdleHAgaW4gYXBwbGljYWJsZV9yZWdleHBzOgorICAgICAgICAgICAg
aWYgcmVnZXhwLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChy
ZWdleHAuZXJyb3IsIHJlZ2V4cC5kZXNjcmlwdGlvbiwgcGF0aCwgaSsxKSkKKworICAgIHJldHVy
biBlcnJvcnMKKworZGVmIGNoZWNrX3BhcnNlZChyZXBvX3Jvb3QsIHBhdGgsIGYpOgorICAgIHNv
dXJjZV9maWxlID0gU291cmNlRmlsZShyZXBvX3Jvb3QsIHBhdGgsICIvIiwgY29udGVudHM9Zi5y
ZWFkKCkpCisKKyAgICBlcnJvcnMgPSBbXQorCisgICAgaWYgcGF0aC5zdGFydHN3aXRoKCJjc3Mv
Iik6CisgICAgICAgIGlmIChzb3VyY2VfZmlsZS50eXBlID09ICJzdXBwb3J0IiBhbmQKKyAgICAg
ICAgICAgIG5vdCBzb3VyY2VfZmlsZS5uYW1lX2lzX25vbl90ZXN0IGFuZAorICAgICAgICAgICAg
bm90IHNvdXJjZV9maWxlLm5hbWVfaXNfcmVmZXJlbmNlKToKKyAgICAgICAgICAgIHJldHVybiBb
KCJTVVBQT1JULVdST05HLURJUiIsICJTdXBwb3J0IGZpbGUgbm90IGluIHN1cHBvcnQgZGlyZWN0
b3J5IiwgcGF0aCwgTm9uZSldCisKKyAgICAgICAgaWYgKHNvdXJjZV9maWxlLnR5cGUgIT0gInN1
cHBvcnQiIGFuZAorICAgICAgICAgICAgbm90IHNvdXJjZV9maWxlLm5hbWVfaXNfcmVmZXJlbmNl
IGFuZAorICAgICAgICAgICAgbm90IHNvdXJjZV9maWxlLnNwZWNfbGlua3MpOgorICAgICAgICAg
ICAgcmV0dXJuIFsoIk1JU1NJTkctTElOSyIsICJUZXN0Y2FzZSBmaWxlIG11c3QgaGF2ZSBhIGxp
bmsgdG8gYSBzcGVjIiwgcGF0aCwgTm9uZSldCisKKyAgICBpZiBzb3VyY2VfZmlsZS5uYW1lX2lz
X25vbl90ZXN0IG9yIHNvdXJjZV9maWxlLm5hbWVfaXNfbWFudWFsOgorICAgICAgICByZXR1cm4g
W10KKworICAgIGlmIHNvdXJjZV9maWxlLm1hcmt1cF90eXBlIGlzIE5vbmU6CisgICAgICAgIHJl
dHVybiBbXQorCisgICAgaWYgc291cmNlX2ZpbGUucm9vdCBpcyBOb25lOgorICAgICAgICByZXR1
cm4gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgcGF0aCwgTm9uZSld
CisKKyAgICBpZiBzb3VyY2VfZmlsZS50eXBlID09ICJtYW51YWwiIGFuZCBub3Qgc291cmNlX2Zp
bGUubmFtZV9pc19tYW51YWw6CisgICAgICAgIHJldHVybiBbKCJDT05URU5ULU1BTlVBTCIsICJN
YW51YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBkb2Vzbid0IGVuZCBpbiAnLW1hbnVhbCciLCBwYXRo
LCBOb25lKV0KKworICAgIGlmIHNvdXJjZV9maWxlLnR5cGUgPT0gInZpc3VhbCIgYW5kIG5vdCBz
b3VyY2VfZmlsZS5uYW1lX2lzX3Zpc3VhbDoKKyAgICAgICAgcmV0dXJuIFsoIkNPTlRFTlQtVklT
VUFMIiwgIlZpc3VhbCB0ZXN0IHdob3NlIGZpbGVuYW1lIGRvZXNuJ3QgZW5kIGluICctdmlzdWFs
JyIsIHBhdGgsIE5vbmUpXQorCisgICAgZm9yIHJlZnRlc3Rfbm9kZSBpbiBzb3VyY2VfZmlsZS5y
ZWZ0ZXN0X25vZGVzOgorICAgICAgICBocmVmID0gcmVmdGVzdF9ub2RlLmF0dHJpYi5nZXQoImhy
ZWYiLCAiIikuc3RyaXAoc3BhY2VfY2hhcnMpCisgICAgICAgIHBhcnRzID0gdXJsc3BsaXQoaHJl
ZikKKyAgICAgICAgaWYgKHBhcnRzLnNjaGVtZSBvciBwYXJ0cy5uZXRsb2MpIGFuZCBwYXJ0cyAh
PSB1cmxzcGxpdCgiYWJvdXQ6YmxhbmsiKToKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJB
QlNPTFVURS1VUkwtUkVGIiwKKyAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVuY2UgdGVzdCB3
aXRoIGEgcmVmZXJlbmNlIGZpbGUgc3BlY2lmaWVkIHZpYSBhbiBhYnNvbHV0ZSBVUkw6ICclcyci
ICUgaHJlZiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIHJl
Zl91cmwgPSB1cmxqb2luKHNvdXJjZV9maWxlLnVybCwgaHJlZikKKyAgICAgICAgcmVmX3BhcnRz
ID0gdXJsc3BsaXQocmVmX3VybCkKKworICAgICAgICBpZiBzb3VyY2VfZmlsZS51cmwgPT0gcmVm
X3VybDoKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJTQU1FLUZJTEUtUkVGIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVuY2UgdGVzdCB3aGljaCBwb2ludHMgYXQgaXRz
ZWxmIGFzIGEgcmVmZXJlbmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKSkKKyAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgYXNzZXJ0IHJlZl9wYXJ0cy5wYXRoICE9ICIiCisKKyAgICAgICAgcmVmZXJlbmNl
X2ZpbGUgPSBvcy5wYXRoLmpvaW4ocmVwb19yb290LCByZWZfcGFydHMucGF0aFsxOl0pCisgICAg
ICAgIHJlZmVyZW5jZV9yZWwgPSByZWZ0ZXN0X25vZGUuYXR0cmliLmdldCgicmVsIiwgIiIpCisK
KyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHJlZmVyZW5jZV9maWxlKToKKyAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQoKCJOT04tRVhJU1RFTlQtUkVGIiwKKyAgICAgICAgICAgICAgICAg
ICAgICJSZWZlcmVuY2UgdGVzdCB3aXRoIGEgbm9uLWV4aXN0ZW50ICclcycgcmVsYXRpb25zaGlw
IHJlZmVyZW5jZTogJyVzJyIgJSAocmVmZXJlbmNlX3JlbCwgaHJlZiksIHBhdGgsIE5vbmUpKQor
CisgICAgaWYgbGVuKHNvdXJjZV9maWxlLnRpbWVvdXRfbm9kZXMpID4gMToKKyAgICAgICAgZXJy
b3JzLmFwcGVuZCgoIk1VTFRJUExFLVRJTUVPVVQiLCAiTW9yZSB0aGFuIG9uZSBtZXRhIG5hbWU9
J3RpbWVvdXQnIiwgcGF0aCwgTm9uZSkpCisKKyAgICBmb3IgdGltZW91dF9ub2RlIGluIHNvdXJj
ZV9maWxlLnRpbWVvdXRfbm9kZXM6CisgICAgICAgIHRpbWVvdXRfdmFsdWUgPSB0aW1lb3V0X25v
ZGUuYXR0cmliLmdldCgiY29udGVudCIsICIiKS5sb3dlcigpCisgICAgICAgIGlmIHRpbWVvdXRf
dmFsdWUgIT0gImxvbmciOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIklOVkFMSUQtVElN
RU9VVCIsICJJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJXMiICUgdGltZW91dF92YWx1ZSwgcGF0aCwg
Tm9uZSkpCisKKyAgICBpZiBzb3VyY2VfZmlsZS50ZXN0aGFybmVzc19ub2RlczoKKyAgICAgICAg
aWYgbGVuKHNvdXJjZV9maWxlLnRlc3RoYXJuZXNzX25vZGVzKSA+IDE6CisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKCgiTVVMVElQTEUtVEVTVEhBUk5FU1MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIk1vcmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMnPiIsIHBhdGgsIE5vbmUpKQorCisgICAgICAgIHRlc3RoYXJuZXNzcmVwb3J0X25vZGVz
ID0gc291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyddIikKKyAg
ICAgICAgaWYgbm90IHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzOgorICAgICAgICAgICAgZXJyb3Jz
LmFwcGVuZCgoIk1JU1NJTkctVEVTVEhBUk5FU1NSRVBPUlQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIk1pc3NpbmcgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMnPiIsIHBhdGgsIE5vbmUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbGVu
KHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzKSA+IDE6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgoIk1VTFRJUExFLVRFU1RIQVJORVNTUkVQT1JUIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyc+IiwgcGF0aCwgTm9uZSkpCisKKyAgICAgICAgdGVzdGhhcm5lc3Njc3Nf
bm9kZXMgPSBzb3VyY2VfZmlsZS5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sfWxpbmtbQGhyZWY9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJ10iKQorICAg
ICAgICBpZiB0ZXN0aGFybmVzc2Nzc19ub2RlczoKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
KCJQUkVTRU5ULVRFU1RIQVJORVNTQ1NTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJF
eHBsaWNpdCBsaW5rIHRvIHRlc3RoYXJuZXNzLmNzcyBwcmVzZW50IiwgcGF0aCwgTm9uZSkpCisK
KyAgICAgICAgZm9yIGVsZW1lbnQgaW4gc291cmNlX2ZpbGUudmFyaWFudF9ub2RlczoKKyAgICAg
ICAgICAgIGlmICJjb250ZW50IiBub3QgaW4gZWxlbWVudC5hdHRyaWI6CisgICAgICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZCgoIlZBUklBTlQtTUlTU0lORyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjxtZXRhIG5hbWU9dmFyaWFudD4gbWlzc2luZyAnY29udGVudCcgYXR0cmli
dXRlIiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZh
cmlhbnQgPSBlbGVtZW50LmF0dHJpYlsiY29udGVudCJdCisgICAgICAgICAgICAgICAgaWYgdmFy
aWFudCAhPSAiIiBhbmQgdmFyaWFudFswXSBub3QgaW4gKCI/IiwgIiMiKToKKyAgICAgICAgICAg
ICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1BTEZPUk1FRC1WQVJJQU5UIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiJXMgPG1ldGEgbmFtZT12YXJpYW50PiAnY29udGVudCcgYXR0
cmlidXRlIG11c3QgYmUgdGhlIGVtcHR5IHN0cmluZyBvciBzdGFydCB3aXRoICc/JyBvciAnIyci
ICUgcGF0aCwgTm9uZSkpCisKKyAgICAgICAgc2Vlbl9lbGVtZW50cyA9IHsidGltZW91dCI6IEZh
bHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aGFybmVzcyI6IEZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aGFybmVzc3JlcG9ydCI6IEZhbHNlfQorICAgICAg
ICByZXF1aXJlZF9lbGVtZW50cyA9IFtrZXkgZm9yIGtleSwgdmFsdWUgaW4geyJ0ZXN0aGFybmVz
cyI6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRlc3RoYXJuZXNzcmVwb3J0IjogbGVuKHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzKSA+
IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InRpbWVvdXQiOiBsZW4oc291cmNlX2ZpbGUudGltZW91dF9ub2RlcykgPiAwfS5pdGVtcygpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlXQorCisgICAgICAgIGZvciBlbGVt
IGluIHNvdXJjZV9maWxlLnJvb3QuaXRlcigpOgorICAgICAgICAgICAgaWYgc291cmNlX2ZpbGUu
dGltZW91dF9ub2RlcyBhbmQgZWxlbSA9PSBzb3VyY2VfZmlsZS50aW1lb3V0X25vZGVzWzBdOgor
ICAgICAgICAgICAgICAgIHNlZW5fZWxlbWVudHNbInRpbWVvdXQiXSA9IFRydWUKKyAgICAgICAg
ICAgICAgICBpZiBzZWVuX2VsZW1lbnRzWyJ0ZXN0aGFybmVzcyJdOgorICAgICAgICAgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKCgiTEFURS1USU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIjxtZXRhIG5hbWU9dGltZW91dD4gc2VlbiBhZnRlciB0ZXN0aGFybmVz
cy5qcyBzY3JpcHQiLCBwYXRoLCBOb25lKSkKKworICAgICAgICAgICAgZWxpZiBlbGVtID09IHNv
dXJjZV9maWxlLnRlc3RoYXJuZXNzX25vZGVzWzBdOgorICAgICAgICAgICAgICAgIHNlZW5fZWxl
bWVudHNbInRlc3RoYXJuZXNzIl0gPSBUcnVlCisKKyAgICAgICAgICAgIGVsaWYgdGVzdGhhcm5l
c3NyZXBvcnRfbm9kZXMgYW5kIGVsZW0gPT0gdGVzdGhhcm5lc3NyZXBvcnRfbm9kZXNbMF06Cisg
ICAgICAgICAgICAgICAgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3NyZXBvcnQiXSA9IFRydWUK
KyAgICAgICAgICAgICAgICBpZiBub3Qgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3MiXToKKyAg
ICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkVBUkxZLVRFU1RIQVJORVNTUkVQT1JU
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNzcmVwb3J0
LmpzIHNjcmlwdCBzZWVuIGJlZm9yZSB0ZXN0aGFybmVzcy5qcyBzY3JpcHQiLCBwYXRoLCBOb25l
KSkKKworICAgICAgICAgICAgaWYgYWxsKHNlZW5fZWxlbWVudHNbbmFtZV0gZm9yIG5hbWUgaW4g
cmVxdWlyZWRfZWxlbWVudHMpOgorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICBpZiBzb3Vy
Y2VfZmlsZS50ZXN0ZHJpdmVyX25vZGVzOgorICAgICAgICBpZiBsZW4oc291cmNlX2ZpbGUudGVz
dGRyaXZlcl9ub2RlcykgPiAxOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExF
LVRFU1REUklWRVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vcmUgdGhhbiBvbmUg
PHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyc+IiwgcGF0aCwgTm9uZSkpCisK
KyAgICAgICAgdGVzdGRyaXZlcl92ZW5kb3Jfbm9kZXMgPSBzb3VyY2VfZmlsZS5yb290LmZpbmRh
bGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfXNjcmlwdFtAc3JjPScvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJ10iKQorICAgICAgICBpZiBub3QgdGVzdGRyaXZlcl92
ZW5kb3Jfbm9kZXM6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTUlTU0lORy1URVNURFJJ
VkVSLVZFTkRPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlzc2luZyA8c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+IiwgcGF0aCwgTm9uZSkpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBsZW4odGVzdGRyaXZlcl92ZW5kb3Jfbm9kZXMp
ID4gMToKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTVVMVElQTEUtVEVTVERSSVZF
Ui1WRU5ET1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3JlIHRoYW4gb25l
IDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz4iLCBwYXRoLCBO
b25lKSkKKworICAgIGZvciBlbGVtZW50IGluIHNvdXJjZV9maWxlLnJvb3QuZmluZGFsbCgiLi8v
e2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmNdIik6CisgICAgICAgIHNy
YyA9IGVsZW1lbnQuYXR0cmliWyJzcmMiXQorICAgICAgICBmb3IgbmFtZSBpbiBbInRlc3RoYXJu
ZXNzIiwgInRlc3RoYXJuZXNzcmVwb3J0IiwgInRlc3Rkcml2ZXIiLCAidGVzdGRyaXZlci12ZW5k
b3IiXToKKyAgICAgICAgICAgIGlmICIlcy5qcyIgJSBuYW1lID09IHNyYyBvciAoIi8lcy5qcyIg
JSBuYW1lIGluIHNyYyBhbmQgc3JjICE9ICIvcmVzb3VyY2VzLyVzLmpzIiAlIG5hbWUpOgorICAg
ICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCIlcy1QQVRIIiAlIG5hbWUudXBwZXIoKSwgIiVz
LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgiICUgbmFtZSwgcGF0aCwgTm9uZSkp
CisKKyAgICByZXR1cm4gZXJyb3JzCisKK2NsYXNzIEFTVENoZWNrKG9iamVjdCk6CisgICAgX19t
ZXRhY2xhc3NfXyA9IGFiYy5BQkNNZXRhCisgICAgZXJyb3IgPSBOb25lCisgICAgZGVzY3JpcHRp
b24gPSBOb25lCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGNoZWNrKHNlbGYs
IHJvb3QpOgorICAgICAgICBwYXNzCisKK2NsYXNzIE9wZW5Nb2RlQ2hlY2soQVNUQ2hlY2spOgor
ICAgIGVycm9yID0gIk9QRU4tTk8tTU9ERSIKKyAgICBkZXNjcmlwdGlvbiA9ICJGaWxlIG9wZW5l
ZCB3aXRob3V0IHByb3ZpZGluZyBhbiBleHBsaWNpdCBtb2RlIChub3RlOiBiaW5hcnkgZmlsZXMg
bXVzdCBiZSByZWFkIHdpdGggJ2InIGluIHRoZSBtb2RlIGZsYWdzKSIKKworICAgIGRlZiBjaGVj
ayhzZWxmLCByb290KToKKyAgICAgICAgZXJyb3JzID0gW10KKyAgICAgICAgZm9yIG5vZGUgaW4g
YXN0LndhbGsocm9vdCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIGFzdC5DYWxs
KToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKG5vZGUuZnVuYywgImlkIikgYW5kIG5vZGUu
ZnVuYy5pZCBpbiAoIm9wZW4iLCAiZmlsZSIpOgorICAgICAgICAgICAgICAgICAgICBpZiAobGVu
KG5vZGUuYXJncykgPCAyIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsKGl0ZW0uYXJn
ICE9ICJtb2RlIiBmb3IgaXRlbSBpbiBub2RlLmtleXdvcmRzKSk6CisgICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcnMuYXBwZW5kKG5vZGUubGluZW5vKQorICAgICAgICByZXR1cm4gZXJyb3Jz
CisKK2FzdF9jaGVja2VycyA9IFtpdGVtKCkgZm9yIGl0ZW0gaW4gW09wZW5Nb2RlQ2hlY2tdXQor
CitkZWYgY2hlY2tfcHl0aG9uX2FzdChyZXBvX3Jvb3QsIHBhdGgsIGYpOgorICAgIGlmIG5vdCBw
YXRoLmVuZHN3aXRoKCIucHkiKToKKyAgICAgICAgcmV0dXJuIFtdCisKKyAgICB0cnk6CisgICAg
ICAgIHJvb3QgPSBhc3QucGFyc2UoZi5yZWFkKCkpCisgICAgZXhjZXB0IFN5bnRheEVycm9yIGFz
IGU6CisgICAgICAgIHJldHVybiBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZp
bGUiLCBwYXRoLCBlLmxpbmVubyldCisKKyAgICBlcnJvcnMgPSBbXQorICAgIGZvciBjaGVja2Vy
IGluIGFzdF9jaGVja2VyczoKKyAgICAgICAgZm9yIGxpbmVubyBpbiBjaGVja2VyLmNoZWNrKHJv
b3QpOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoY2hlY2tlci5lcnJvciwgY2hlY2tlci5k
ZXNjcmlwdGlvbiwgcGF0aCwgbGluZW5vKSkKKyAgICByZXR1cm4gZXJyb3JzCisKKworYnJva2Vu
X2pzX21ldGFkYXRhID0gcmUuY29tcGlsZShiIi8vXHMqTUVUQToiKQorYnJva2VuX3B5dGhvbl9t
ZXRhZGF0YSA9IHJlLmNvbXBpbGUoYiIjXHMqTUVUQToiKQorCisKK2RlZiBjaGVja19zY3JpcHRf
bWV0YWRhdGEocmVwb19yb290LCBwYXRoLCBmKToKKyAgICBpZiBwYXRoLmVuZHN3aXRoKCgiLndv
cmtlci5qcyIsICIuYW55LmpzIikpOgorICAgICAgICBtZXRhX3JlID0ganNfbWV0YV9yZQorICAg
ICAgICBicm9rZW5fbWV0YWRhdGEgPSBicm9rZW5fanNfbWV0YWRhdGEKKyAgICBlbGlmIHBhdGgu
ZW5kc3dpdGgoIi5weSIpOgorICAgICAgICBtZXRhX3JlID0gcHl0aG9uX21ldGFfcmUKKyAgICAg
ICAgYnJva2VuX21ldGFkYXRhID0gYnJva2VuX3B5dGhvbl9tZXRhZGF0YQorICAgIGVsc2U6Cisg
ICAgICAgIHJldHVybiBbXQorCisgICAgZG9uZSA9IEZhbHNlCisgICAgZXJyb3JzID0gW10KKyAg
ICBmb3IgaWR4LCBsaW5lIGluIGVudW1lcmF0ZShmKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UobGluZSwgYmluYXJ5X3R5cGUpLCBsaW5lCisKKyAgICAgICAgbSA9IG1ldGFfcmUubWF0Y2go
bGluZSkKKyAgICAgICAgaWYgbToKKyAgICAgICAgICAgIGtleSwgdmFsdWUgPSBtLmdyb3Vwcygp
CisgICAgICAgICAgICBpZiBrZXkgPT0gYiJ0aW1lb3V0IjoKKyAgICAgICAgICAgICAgICBpZiB2
YWx1ZSAhPSBiImxvbmciOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiVU5L
Tk9XTi1USU1FT1VULU1FVEFEQVRBIiwgIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIHRpbWVvdXQgbWV0
YWRhdGEiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAgIGVsaWYga2V5ID09IGIic2NyaXB0
IjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQoKCJVTktOT1dOLU1FVEFEQVRBIiwgIlVuZXhwZWN0ZWQga2luZCBv
ZiBtZXRhZGF0YSIsIHBhdGgsIGlkeCArIDEpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ZG9uZSA9IFRydWUKKworICAgICAgICBpZiBkb25lOgorICAgICAgICAgICAgaWYgbWV0YV9yZS5t
YXRjaChsaW5lKToKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiU1RSQVktTUVUQURB
VEEiLCAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBmaWxlIiwgcGF0aCwgaWR4
ICsgMSkpCisgICAgICAgICAgICBlbGlmIG1ldGFfcmUuc2VhcmNoKGxpbmUpOgorICAgICAgICAg
ICAgICAgIGVycm9ycy5hcHBlbmQoKCJJTkRFTlRFRC1NRVRBREFUQSIsICJNZXRhZGF0YSBjb21t
ZW50cyBzaG91bGQgc3RhcnQgdGhlIGxpbmUiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAg
IGVsaWYgYnJva2VuX21ldGFkYXRhLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiQlJPS0VOLU1FVEFEQVRBIiwgIk1ldGFkYXRhIGNvbW1lbnQgaXMgbm90IGZv
cm1hdHRlZCBjb3JyZWN0bHkiLCBwYXRoLCBpZHggKyAxKSkKKworICAgIHJldHVybiBlcnJvcnMK
KworCitkZWYgY2hlY2tfcGF0aChyZXBvX3Jvb3QsIHBhdGgpOgorICAgICIiIgorICAgIFJ1bnMg
bGludHMgdGhhdCBjaGVjayB0aGUgZmlsZSBwYXRoLgorCisgICAgOnBhcmFtIHJlcG9fcm9vdDog
dGhlIHJlcG9zaXRvcnkgcm9vdAorICAgIDpwYXJhbSBwYXRoOiB0aGUgcGF0aCBvZiB0aGUgZmls
ZSB3aXRoaW4gdGhlIHJlcG9zaXRvcnkKKyAgICA6cmV0dXJuczogYSBsaXN0IG9mIGVycm9ycyBm
b3VuZCBpbiBgYHBhdGhgYAorICAgICIiIgorCisgICAgZXJyb3JzID0gW10KKyAgICBmb3IgcGF0
aF9mbiBpbiBwYXRoX2xpbnRzOgorICAgICAgICBlcnJvcnMuZXh0ZW5kKHBhdGhfZm4ocmVwb19y
b290LCBwYXRoKSkKKyAgICByZXR1cm4gZXJyb3JzCisKKworZGVmIGNoZWNrX2FsbF9wYXRocyhy
ZXBvX3Jvb3QsIHBhdGhzKToKKyAgICAiIiIKKyAgICBSdW5zIGxpbnRzIHRoYXQgY2hlY2sgYWxs
IHBhdGhzIGdsb2JhbGx5LgorCisgICAgOnBhcmFtIHJlcG9fcm9vdDogdGhlIHJlcG9zaXRvcnkg
cm9vdAorICAgIDpwYXJhbSBwYXRoczogYSBsaXN0IG9mIGFsbCB0aGUgcGF0aHMgd2l0aGluIHRo
ZSByZXBvc2l0b3J5CisgICAgOnJldHVybnM6IGEgbGlzdCBvZiBlcnJvcnMgZm91bmQgaW4gYGBm
YGAKKyAgICAiIiIKKworICAgIGVycm9ycyA9IFtdCisgICAgZm9yIHBhdGhzX2ZuIGluIGFsbF9w
YXRoc19saW50czoKKyAgICAgICAgZXJyb3JzLmV4dGVuZChwYXRoc19mbihyZXBvX3Jvb3QsIHBh
dGhzKSkKKyAgICByZXR1cm4gZXJyb3JzCisKKworZGVmIGNoZWNrX2ZpbGVfY29udGVudHMocmVw
b19yb290LCBwYXRoLCBmKToKKyAgICAiIiIKKyAgICBSdW5zIGxpbnRzIHRoYXQgY2hlY2sgdGhl
IGZpbGUgY29udGVudHMuCisKKyAgICA6cGFyYW0gcmVwb19yb290OiB0aGUgcmVwb3NpdG9yeSBy
b290CisgICAgOnBhcmFtIHBhdGg6IHRoZSBwYXRoIG9mIHRoZSBmaWxlIHdpdGhpbiB0aGUgcmVw
b3NpdG9yeQorICAgIDpwYXJhbSBmOiBhIGZpbGUtbGlrZSBvYmplY3Qgd2l0aCB0aGUgZmlsZSBj
b250ZW50cworICAgIDpyZXR1cm5zOiBhIGxpc3Qgb2YgZXJyb3JzIGZvdW5kIGluIGBgZmBgCisg
ICAgIiIiCisKKyAgICBlcnJvcnMgPSBbXQorICAgIGZvciBmaWxlX2ZuIGluIGZpbGVfbGludHM6
CisgICAgICAgIGVycm9ycy5leHRlbmQoZmlsZV9mbihyZXBvX3Jvb3QsIHBhdGgsIGYpKQorICAg
ICAgICBmLnNlZWsoMCkKKyAgICByZXR1cm4gZXJyb3JzCisKKworZGVmIG91dHB1dF9lcnJvcnNf
dGV4dChlcnJvcnMpOgorICAgIGZvciBlcnJvcl90eXBlLCBkZXNjcmlwdGlvbiwgcGF0aCwgbGlu
ZV9udW1iZXIgaW4gZXJyb3JzOgorICAgICAgICBwb3Nfc3RyaW5nID0gcGF0aAorICAgICAgICBp
ZiBsaW5lX251bWJlcjoKKyAgICAgICAgICAgIHBvc19zdHJpbmcgKz0gIjolcyIgJSBsaW5lX251
bWJlcgorICAgICAgICBsb2dnZXIuZXJyb3IoIiVzOiAlcyAoJXMpIiAlIChwb3Nfc3RyaW5nLCBk
ZXNjcmlwdGlvbiwgZXJyb3JfdHlwZSkpCisKKworZGVmIG91dHB1dF9lcnJvcnNfbWFya2Rvd24o
ZXJyb3JzKToKKyAgICBpZiBub3QgZXJyb3JzOgorICAgICAgICByZXR1cm4KKyAgICBoZWFkaW5n
ID0gIiIiR290IGxpbnQgZXJyb3JzOgorCit8IEVycm9yIFR5cGUgfCBQb3NpdGlvbiB8IE1lc3Nh
Z2UgfAorfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwiIiIKKyAgICBmb3IgbGlu
ZSBpbiBoZWFkaW5nLnNwbGl0KCJcbiIpOgorICAgICAgICBsb2dnZXIuZXJyb3IobGluZSkKKyAg
ICBmb3IgZXJyb3JfdHlwZSwgZGVzY3JpcHRpb24sIHBhdGgsIGxpbmVfbnVtYmVyIGluIGVycm9y
czoKKyAgICAgICAgcG9zX3N0cmluZyA9IHBhdGgKKyAgICAgICAgaWYgbGluZV9udW1iZXI6Cisg
ICAgICAgICAgICBwb3Nfc3RyaW5nICs9ICI6JXMiICUgbGluZV9udW1iZXIKKyAgICAgICAgbG9n
Z2VyLmVycm9yKCIlcyB8ICVzIHwgJXMgfCIgJSAoZXJyb3JfdHlwZSwgcG9zX3N0cmluZywgZGVz
Y3JpcHRpb24pKQorCisKK2RlZiBvdXRwdXRfZXJyb3JzX2pzb24oZXJyb3JzKToKKyAgICBmb3Ig
ZXJyb3JfdHlwZSwgZXJyb3IsIHBhdGgsIGxpbmVfbnVtYmVyIGluIGVycm9yczoKKyAgICAgICAg
cHJpbnQoanNvbi5kdW1wcyh7InBhdGgiOiBwYXRoLCAibGluZW5vIjogbGluZV9udW1iZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJydWxlIjogZXJyb3JfdHlwZSwgIm1lc3NhZ2UiOiBl
cnJvcn0pKQorCisKK2RlZiBvdXRwdXRfZXJyb3JfY291bnQoZXJyb3JfY291bnQpOgorICAgIGlm
IG5vdCBlcnJvcl9jb3VudDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBieV90eXBlID0gIiAiLmpv
aW4oIiVzOiAlZCIgJSBpdGVtIGZvciBpdGVtIGluIGVycm9yX2NvdW50Lml0ZW1zKCkpCisgICAg
Y291bnQgPSBzdW0oZXJyb3JfY291bnQudmFsdWVzKCkpCisgICAgbG9nZ2VyLmluZm8oIiIpCisg
ICAgaWYgY291bnQgPT0gMToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRoZXJlIHdhcyAxIGVycm9y
ICglcykiICUgKGJ5X3R5cGUsKSkKKyAgICBlbHNlOgorICAgICAgICBsb2dnZXIuaW5mbygiVGhl
cmUgd2VyZSAlZCBlcnJvcnMgKCVzKSIgJSAoY291bnQsIGJ5X3R5cGUpKQorCisKK2RlZiBjaGFu
Z2VkX2ZpbGVzKHdwdF9yb290KToKKyAgICByZXZpc2ggPSB0ZXN0ZmlsZXMuZ2V0X3JldmlzaChy
ZXZpc2g9Tm9uZSkKKyAgICBjaGFuZ2VkLCBfID0gdGVzdGZpbGVzLmZpbGVzX2NoYW5nZWQocmV2
aXNoLCBzZXQoKSwgaW5jbHVkZV91bmNvbW1pdHRlZD1UcnVlLCBpbmNsdWRlX25ldz1UcnVlKQor
ICAgIHJldHVybiBbb3MucGF0aC5yZWxwYXRoKGl0ZW0sIHdwdF9yb290KSBmb3IgaXRlbSBpbiBj
aGFuZ2VkXQorCisKK2RlZiBsaW50X3BhdGhzKGt3YXJncywgd3B0X3Jvb3QpOgorICAgIGlmIGt3
YXJncy5nZXQoInBhdGhzIik6CisgICAgICAgIHBhdGhzID0gW10KKyAgICAgICAgZm9yIHBhdGgg
aW4ga3dhcmdzLmdldCgicGF0aHMiKToKKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIocGF0
aCk6CisgICAgICAgICAgICAgICAgcGF0aF9kaXIgPSBsaXN0KGFsbF9maWxlc3lzdGVtX3BhdGhz
KHdwdF9yb290LCBwYXRoKSkKKyAgICAgICAgICAgICAgICBwYXRocy5leHRlbmQocGF0aF9kaXIp
CisgICAgICAgICAgICBlbGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpOgorICAgICAgICAgICAgICAg
IHBhdGhzLmFwcGVuZChvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5hYnNwYXRoKHBhdGgpLCB3cHRf
cm9vdCkpCisKKworICAgIGVsaWYga3dhcmdzWyJhbGwiXToKKyAgICAgICAgcGF0aHMgPSBsaXN0
KGFsbF9maWxlc3lzdGVtX3BhdGhzKHdwdF9yb290KSkKKyAgICBlbHNlOgorICAgICAgICBjaGFu
Z2VkX3BhdGhzID0gY2hhbmdlZF9maWxlcyh3cHRfcm9vdCkKKyAgICAgICAgZm9yY2VfYWxsID0g
RmFsc2UKKyAgICAgICAgZm9yIHBhdGggaW4gY2hhbmdlZF9wYXRoczoKKyAgICAgICAgICAgIHBh
dGggPSBwYXRoLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikKKyAgICAgICAgICAgIGlmIHBhdGgg
PT0gImxpbnQud2hpdGVsaXN0IiBvciBwYXRoLnN0YXJ0c3dpdGgoInRvb2xzL2xpbnQvIik6Cisg
ICAgICAgICAgICAgICAgZm9yY2VfYWxsID0gVHJ1ZQorICAgICAgICAgICAgICAgIGJyZWFrCisg
ICAgICAgIHBhdGhzID0gKGxpc3QoY2hhbmdlZF9wYXRocykgaWYgbm90IGZvcmNlX2FsbAorICAg
ICAgICAgICAgICAgICBlbHNlIGxpc3QoYWxsX2ZpbGVzeXN0ZW1fcGF0aHMod3B0X3Jvb3QpKSkK
KworICAgIHJldHVybiBwYXRocworCisKK2RlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcGFyc2Vy
ID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInBh
dGhzIiwgbmFyZ3M9IioiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTGlzdCBvZiBw
YXRocyB0byBsaW50IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWpzb24iLCBhY3Rpb249
InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iT3V0cHV0IG1hY2hp
bmUtcmVhZGFibGUgSlNPTiBmb3JtYXQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbWFy
a2Rvd24iLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iT3V0cHV0IG1hcmtkb3duIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNzcy1tb2Rl
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1
biBDU1MgdGVzdHN1aXRlIHNwZWNpZmljIGxpbnRzIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLXJlcG8tcm9vdCIsIGhlbHA9IlRoZSBXUFQgZGlyZWN0b3J5LiBVc2UgdGhpcyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJvcHRpb24gaWYgdGhlIGxpbnQgc2NyaXB0IGV4aXN0cyBvdXRz
aWRlIHRoZSByZXBvc2l0b3J5IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWFsbCIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IklmIG5vIHBhdGhzIGFyZSBwYXNzZWQsIHRyeSB0byBs
aW50IHRoZSB3aG9sZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAid29ya2luZyBkaXJlY3Rv
cnksIG5vdCBqdXN0IGZpbGVzIHRoYXQgY2hhbmdlZCIpCisgICAgcmV0dXJuIHBhcnNlcgorCisK
K2RlZiBtYWluKCoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3MuZ2V0KCJqc29uIikgYW5kIGt3YXJn
cy5nZXQoIm1hcmtkb3duIik6CisgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiQ2Fubm90IHNwZWNp
ZnkgLS1qc29uIGFuZCAtLW1hcmtkb3duIikKKyAgICAgICAgc3lzLmV4aXQoMikKKworICAgIHJl
cG9fcm9vdCA9IGt3YXJncy5nZXQoJ3JlcG9fcm9vdCcpIG9yIGxvY2FscGF0aHMucmVwb19yb290
CisgICAgb3V0cHV0X2Zvcm1hdCA9IHsoVHJ1ZSwgRmFsc2UpOiAianNvbiIsCisgICAgICAgICAg
ICAgICAgICAgICAoRmFsc2UsIFRydWUpOiAibWFya2Rvd24iLAorICAgICAgICAgICAgICAgICAg
ICAgKEZhbHNlLCBGYWxzZSk6ICJub3JtYWwifVsoa3dhcmdzLmdldCgianNvbiIsIEZhbHNlKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJncy5n
ZXQoIm1hcmtkb3duIiwgRmFsc2UpKV0KKworICAgIGlmIG91dHB1dF9mb3JtYXQgPT0gIm1hcmtk
b3duIjoKKyAgICAgICAgc2V0dXBfbG9nZ2luZyhUcnVlKQorCisgICAgcGF0aHMgPSBsaW50X3Bh
dGhzKGt3YXJncywgcmVwb19yb290KQorCisgICAgcmV0dXJuIGxpbnQocmVwb19yb290LCBwYXRo
cywgb3V0cHV0X2Zvcm1hdCkKKworCitkZWYgbGludChyZXBvX3Jvb3QsIHBhdGhzLCBvdXRwdXRf
Zm9ybWF0KToKKyAgICBlcnJvcl9jb3VudCA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBsYXN0ID0g
Tm9uZQorCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihyZXBvX3Jvb3QsICJsaW50LndoaXRl
bGlzdCIpKSBhcyBmOgorICAgICAgICB3aGl0ZWxpc3QsIGlnbm9yZWRfZmlsZXMgPSBwYXJzZV93
aGl0ZWxpc3QoZikKKworICAgIG91dHB1dF9lcnJvcnMgPSB7Impzb24iOiBvdXRwdXRfZXJyb3Jz
X2pzb24sCisgICAgICAgICAgICAgICAgICAgICAibWFya2Rvd24iOiBvdXRwdXRfZXJyb3JzX21h
cmtkb3duLAorICAgICAgICAgICAgICAgICAgICAgIm5vcm1hbCI6IG91dHB1dF9lcnJvcnNfdGV4
dH1bb3V0cHV0X2Zvcm1hdF0KKworICAgIGRlZiBwcm9jZXNzX2Vycm9ycyhlcnJvcnMpOgorICAg
ICAgICAiIiIKKyAgICAgICAgRmlsdGVycyBhbmQgcHJpbnRzIHRoZSBlcnJvcnMsIGFuZCB1cGRh
dGVzIHRoZSBgYGVycm9yX2NvdW50YGAgb2JqZWN0LgorCisgICAgICAgIDpwYXJhbSBlcnJvcnM6
IGEgbGlzdCBvZiBlcnJvciB0dXBsZXMgKGVycm9yIHR5cGUsIG1lc3NhZ2UsIHBhdGgsIGxpbmUg
bnVtYmVyKQorICAgICAgICA6cmV0dXJuczogYGBOb25lYGAgaWYgdGhlcmUgd2VyZSBubyBlcnJv
cnMsIG9yCisgICAgICAgICAgICAgICAgICBhIHR1cGxlIG9mIHRoZSBlcnJvciB0eXBlIGFuZCB0
aGUgcGF0aCBvdGhlcndpc2UKKyAgICAgICAgIiIiCisKKyAgICAgICAgZXJyb3JzID0gZmlsdGVy
X3doaXRlbGlzdF9lcnJvcnMod2hpdGVsaXN0LCBlcnJvcnMpCisKKyAgICAgICAgaWYgbm90IGVy
cm9yczoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgb3V0cHV0X2Vycm9ycyhl
cnJvcnMpCisgICAgICAgIGZvciBlcnJvcl90eXBlLCBlcnJvciwgcGF0aCwgbGluZSBpbiBlcnJv
cnM6CisgICAgICAgICAgICBlcnJvcl9jb3VudFtlcnJvcl90eXBlXSArPSAxCisKKyAgICAgICAg
cmV0dXJuIChlcnJvcnNbLTFdWzBdLCBwYXRoKQorCisgICAgZm9yIHBhdGggaW4gcGF0aHNbOl06
CisgICAgICAgIGFic19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgcGF0aCkKKyAgICAg
ICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGFic19wYXRoKToKKyAgICAgICAgICAgIHBhdGhzLnJl
bW92ZShwYXRoKQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiBhbnkoZm5tYXRj
aC5mbm1hdGNoKHBhdGgsIGZpbGVfbWF0Y2gpIGZvciBmaWxlX21hdGNoIGluIGlnbm9yZWRfZmls
ZXMpOgorICAgICAgICAgICAgcGF0aHMucmVtb3ZlKHBhdGgpCisgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgIGVycm9ycyA9IGNoZWNrX3BhdGgocmVwb19yb290LCBwYXRoKQorICAgICAg
ICBsYXN0ID0gcHJvY2Vzc19lcnJvcnMoZXJyb3JzKSBvciBsYXN0CisKKyAgICAgICAgaWYgbm90
IG9zLnBhdGguaXNkaXIoYWJzX3BhdGgpOgorICAgICAgICAgICAgd2l0aCBvcGVuKGFic19wYXRo
LCAncmInKSBhcyBmOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IGNoZWNrX2ZpbGVfY29udGVu
dHMocmVwb19yb290LCBwYXRoLCBmKQorICAgICAgICAgICAgICAgIGxhc3QgPSBwcm9jZXNzX2Vy
cm9ycyhlcnJvcnMpIG9yIGxhc3QKKworICAgIGVycm9ycyA9IGNoZWNrX2FsbF9wYXRocyhyZXBv
X3Jvb3QsIHBhdGhzKQorICAgIGxhc3QgPSBwcm9jZXNzX2Vycm9ycyhlcnJvcnMpIG9yIGxhc3QK
KworICAgIGlmIG91dHB1dF9mb3JtYXQgaW4gKCJub3JtYWwiLCAibWFya2Rvd24iKToKKyAgICAg
ICAgb3V0cHV0X2Vycm9yX2NvdW50KGVycm9yX2NvdW50KQorICAgICAgICBpZiBlcnJvcl9jb3Vu
dDoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIChFUlJPUl9NU0cgJSAobGFzdFswXSwgbGFzdFsx
XSwgbGFzdFswXSwgbGFzdFsxXSkpLnNwbGl0KCJcbiIpOgorICAgICAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKGxpbmUpCisgICAgcmV0dXJuIHN1bShpdGVydmFsdWVzKGVycm9yX2NvdW50KSkKKwor
cGF0aF9saW50cyA9IFtjaGVja19wYXRoX2xlbmd0aCwgY2hlY2tfd29ya2VyX2NvbGxpc2lvbiwg
Y2hlY2tfYWhlbV9jb3B5XQorYWxsX3BhdGhzX2xpbnRzID0gW2NoZWNrX2Nzc19nbG9iYWxseV91
bmlxdWVdCitmaWxlX2xpbnRzID0gW2NoZWNrX3JlZ2V4cF9saW5lLCBjaGVja19wYXJzZWQsIGNo
ZWNrX3B5dGhvbl9hc3QsIGNoZWNrX3NjcmlwdF9tZXRhZGF0YV0KKworIyBEb24ndCBicmVhayB1
c2VycyBvZiB0aGUgbGludCB0aGF0IGRvbid0IGhhdmUgZ2l0IGluc3RhbGxlZC4KK3RyeToKKyAg
ICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbImdpdCIsICItLXZlcnNpb24iXSkKKyAgICBhbGxf
cGF0aHNfbGludHMgKz0gW2NoZWNrX2dpdF9pZ25vcmVdCitleGNlcHQgc3VicHJvY2Vzcy5DYWxs
ZWRQcm9jZXNzRXJyb3I6CisgICAgcHJpbnQoJ05vIGdpdCBwcmVzZW50OyBza2lwcGluZyAuZ2l0
aWdub3JlIGxpbnQuJykKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBhcmdzID0g
Y3JlYXRlX3BhcnNlcigpLnBhcnNlX2FyZ3MoKQorICAgIGVycm9yX2NvdW50ID0gbWFpbigqKnZh
cnMoYXJncykpCisgICAgaWYgZXJyb3JfY291bnQgPiAwOgorICAgICAgICBzeXMuZXhpdCgxKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2Jhc2UucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvYmFz
ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNjBmMTNjZTI5MzVhM2U1OTFkYjhiNDcyMDA3YTI3MDEwYzhhODE3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2Jhc2UucHkKQEAgLTAsMCArMSwxMSBAQAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2Zyb20gc2l4IGltcG9ydCBpbnRl
Z2VyX3R5cGVzLCB0ZXh0X3R5cGUKKworZGVmIGNoZWNrX2Vycm9ycyhlcnJvcnMpOgorICAgIGZv
ciBlIGluIGVycm9yczoKKyAgICAgICAgZXJyb3JfdHlwZSwgZGVzY3JpcHRpb24sIHBhdGgsIGxp
bmVfbnVtYmVyID0gZQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShlcnJvcl90eXBlLCB0ZXh0
X3R5cGUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRlc2NyaXB0aW9uLCB0ZXh0X3R5cGUp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHBhdGgsIHRleHRfdHlwZSkKKyAgICAgICAgYXNz
ZXJ0IGxpbmVfbnVtYmVyIGlzIE5vbmUgb3IgaXNpbnN0YW5jZShsaW5lX251bWJlciwgaW50ZWdl
cl90eXBlcykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW4uaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9i
cm9rZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDc5M2M0M2NhZjAxNjUxZTUxNTVkNzk5M2Q5OWY5YjVm
ZDkyODhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbi5odG1sCkBAIC0wLDAg
KzEgQEAKK1RISVMgTElORSBIQVMgVFJBSUxJTkcgV0hJVEVTUEFDRSAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9icm9rZW5faWdub3JlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbl9pZ25vcmVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzQ3OTNjNDNjYWYwMTY1MWU1MTU1ZDc5OTNkOTlmOWI1ZmQ5Mjg4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW5faWdub3JlZC5odG1sCkBAIC0w
LDAgKzEgQEAKK1RISVMgTElORSBIQVMgVFJBSUxJTkcgV0hJVEVTUEFDRSAgICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvYS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1YmI2
ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvYS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKKzEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11
bmlxdWUvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczYzVkMGJjMzczZjViMWZjMmVlNDViMjk4NWMzM2E4
OGM4NDQyMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS5o
dG1sCkBAIC0wLDAgKzEsNCBAQAorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3d3dy53
My5vcmcvVFIvQ1NTMjEvYXVyYWwuaHRtbCNwcm9wZGVmLXN0cmVzcyI+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDA0OTFmZDdl
NWJiNmZhMjhjNTE3YTBiYjMyYjhiNTA2NTM5ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACisx
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2M1ZDBiYzM3
M2Y1YjFmYzJlZTQ1YjI5ODVjMzNhODhjODQ0MjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EuaHRtbApAQCAtMCwwICsxLDQgQEAKKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIxL2F1cmFsLmh0bWwjcHJv
cGRlZi1zdHJlc3MiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1
cHBvcnQvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvYS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1YmI2ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9y
dC9hLmh0bWwKQEAgLTAsMCArMSBAQAorMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZmJmMDg4ODZmY2E5
YTkxY2I3NTNlYzg3MzRjODRmY2JlNTJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC90b29scy9hLmh0bWwKQEAgLTAsMCArMSBAQAor
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdG9v
bHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9y
dC90b29scy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTI1MGExY2JjZGMwZmNlYzYxNDE3
NDg5N2EwNDdlOGZmMzA4MzI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMv
YS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9y
dC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZGE0MTc1MTUzNjg1YzU5ODAxZTc0NDUxYWIz
NjgxMjQ5NWJlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
bWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
K0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC9hLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy9hLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1
YmI2ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvYS5odG1sCkBAIC0wLDAgKzEgQEAKKzEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NmM2MGZlNGI5OTQ1MzVlN2ZlNzczMzM0ZTMyYzliZTUxZTVhNjVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3Rvb2xzL3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9tYXRjaC90b29scy9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9tYXRjaC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDliNDU4MDUzYWI5YjdmNTliZmY0YzQw
NGMzZWEzODMxMWM5ZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL21hdGNoL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9hLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvbWF0Y2gvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11
bmlxdWUvbm90LW1hdGNoL2EtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1
ZS9ub3QtbWF0Y2gvYS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZmJmMDg4ODZmY2E5YTkx
Y2I3NTNlYzg3MzRjODRmY2JlNTJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACisyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMGNl
MzgzYTI1Y2M0M2Y2MzU1NTQ4MTg2ZjkyMjVkNzljN2I0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EuaHRtbApAQCAtMCwwICsxLDQgQEAK
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIxL2F1cmFs
Lmh0bWwjcHJvcGRlZi1zdHJlc3MiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVl
L25vdC1tYXRjaC9zdXBwb3J0L2EuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3Qt
bWF0Y2gvc3VwcG9ydC9hLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNmYmYwODg4NmZjYTlhOTFjYjc1M2Vj
ODczNGM4NGZjYmU1MmM5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC9hLmh0bWwKQEAgLTAsMCArMSBAQAorMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9zdXBwb3J0L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9zdXBwb3J0L3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg5NDc5MTA3M2ZhYjA1N2VmNDQ3MmJiNWU4MmY1YTVjZGE0YmYy
MzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNo
L3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9zdXBwb3J0L2EuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90b29scy9hLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rvb2xzL2EuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Zi
ZjA4ODg2ZmNhOWE5MWNiNzUzZWM4NzM0Yzg0ZmNiZTUyYzlmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90b29scy9hLmh0bWwKQEAgLTAsMCAr
MSBAQAorMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90
b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gv
dG9vbHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFjNmY4MjdiZGMwMDg5ODlmMDkxNDMz
YjUzMTdhNTdmMDQ5NzUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9ub3QtbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90b29scy9hLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRhYTllNmUxN2NhODJhOWFlMGQ2MWFlMTQ2Mzc3NzAzYTRjMjE2NjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1
ZS9ub3QtbWF0Y2gvYS1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25v
dC1tYXRjaC9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zZWxl
Y3RvcnMvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3NlbGVjdG9ycy9hLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGQ2M2M2YmZlZGQxMzg2ODgzZmE4ZmFlMzI0MjM5NTMwNWExYzJjZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvYS5odG1s
CkBAIC0wLDAgKzEsNCBAQAorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvc2VsZWN0b3JzLTMvI3R5cGUtc2VsZWN0b3JzIj4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvc2VsZWN0b3JzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZGYwNGQx
YjNlMmI2Y2QzOWVlZGFiODdkZDQyNTE4MzVhY2Y3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvYS5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAwNDkx
ZmQ3ZTViYjZmYTI4YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L2EuaHRtbApAQCAtMCwwICsxIEBACisxCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGNmYmYwODg4NmZjYTlhOTFjYjc1M2VjODczNGM4NGZjYmU1MmM5ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3Rvb2xzL2EuaHRtbApAQCAt
MCwwICsxIEBACisyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9y
dC90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0
L3Rvb2xzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjc4YjkwZmZhNzJhMjE3NjNjMGZk
NTQyODg3YjVlMzg1MGFiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11
bmlxdWUvc3VwcG9ydC90b29scy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTgxODRiNWJmNWU5MjFjZWZmYmY4ZGY3MGNkMGEzNTEyM2VhNzdmMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3czYy1pbXBvcnQubG9nCkBA
IC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKwor
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1By
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0
L2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL2EuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy9hLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAw
NDkxZmQ3ZTViYjZmYTI4YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy9hLmh0bWwKQEAgLTAsMCArMSBAQAorMQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ1OTIwMmIwOGRjZjNmYWY5MTc0NzU5YmI2OTkxM2Y1MDZmZjY2OWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdG9vbHMvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL2Eu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
ZDBmYzlhOThhN2FiZjc4YmMxNmUzMTA1ZWJmN2M1ZTY1NGUwYjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EtZXhwZWN0ZWQuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9kZXBl
bmRlbmN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvZGVwZW5kZW5jeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5Mjk2
ZjRjNTg3NmZjOGM0Y2QwNTI1NDg2MTYwMDVjMWU0NmYwZTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvZGVwZW5kZW5jeS5odG1sCkBAIC0wLDAgKzEgQEAKK1RoaXMgZmlsZSBpcyB1c2Vk
IHRvIGRlbW9uc3RyYXRlIGFjY2VwdGFuY2Ugb2Ygcm9vdC1yZWxhdGl2ZSByZWZ0ZXN0IHJlZmVy
ZW5jZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvbGludC53aGl0ZWxpc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
bGludC53aGl0ZWxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc2M2U0NDMyZTVhZmEyMTIzMDM1MzQ1ZTEzMGQw
MTg3MTBmZmRkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9saW50LndoaXRlbGlzdApA
QCAtMCwwICsxIEBACisqOmJyb2tlbl9pZ25vcmVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9va2F5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvb2theS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMTc4YTNjODNh
MzgzNWM3MWJjMDc2OGMwYzFlYTdiZDNmZjcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvb2theS5odG1sCkBAIC0wLDAgKzEgQEAKK1RISVMgTElORSBIQVMgTk8gVFJBSUxJTkcgV0hJ
VEVTUEFDRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYm91dF9ibGFuay1yZWYuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9yZWYvYWJvdXRfYmxhbmstcmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY5NDBiNTQw
ZjliZDM4MjkyZWZlN2RmOGJkOTdiZGFmMzg2M2FmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9yZWYvYWJvdXRfYmxhbmstcmVmLmh0bWwKQEAgLTAsMCArMSBAQAorPGxpbmsgcmVsPSJt
YXRjaCIgaHJlZj1hYm91dDpibGFuaz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJzb2x1
dGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJzb2x1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjQ3YmM4
ODM2NzFiZDMwODEzNTk3YzNhZWJhOTIyOTkzYjM2NTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L3JlZi9hYnNvbHV0ZS5odG1sCkBAIC0wLDAgKzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2gi
IGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbS9yZWZlcmVuY2UuaHRtbCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
cmVmL2V4aXN0ZW50X3JlbGF0aXZlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJi
MmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Jl
Zi9leGlzdGVudF9yZWxhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI5MzY0ZWU1ZmIxMWM2OWVhN2QwN2Q0NGYxNzc2MDkwZDhjNmU4
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLmh0
bWwKQEAgLTAsMCArMSBAQAorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZXhpc3RlbnRfcmVsYXRp
dmUtcmVmLmh0bWwiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290X3Jl
bGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYmVkYzJkMzA5YmFhNzVmNGI2ODI3MTcyMWUxMmQ4MTQ1NWE0YTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290X3JlbGF0aXZlLmh0bWwK
QEAgLTAsMCArMSBAQAorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iL2RlcGVuZGVuY3kuaHRtbCI+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yZWxhdGl2ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcmVsYXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDlh
MWQ1ZWIwMTE5OWQ0NzA2MzY4OGYzZWUyM2ZhZDM0NjYzNmIwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcmVsYXRpdmUuaHRtbApAQCAtMCwwICsxIEBACis8
bGluayByZWw9Im1hdGNoIiBocmVmPSJub25fZXhpc3RlbnRfZmlsZS5odG1sIj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9yZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9yZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTgx
MjAxM2FhMDlhNjZmYjAxOTVjZWZhNmM0ZjhjZTBhNGM5MDYxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5odG1sCkBAIC0wLDAgKzEg
QEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9Ii9ub25fZXhpc3RlbnRfZmlsZS5odG1sIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxlX2VtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
cmVmL3NhbWVfZmlsZV9lbXB0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhYTE4ZTljMDEwODZmODhmYmFh
NmM5YjA1ZGQ2ZTI2YzRkNmFiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3Nh
bWVfZmlsZV9lbXB0eS5odG1sCkBAIC0wLDAgKzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9
IiI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L3JlZi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjgzZDliN2UwOGZmMzdjYjRkNWE3MmFi
OWUyYjkyZjQzNTI5NmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDI0IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fib3V0X2Js
YW5rLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYnNvbHV0ZS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Jl
Zi9leGlzdGVudF9yZWxhdGl2ZS1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVu
dF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290X3JlbGF0aXZlLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L3JlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9zYW1l
X2ZpbGVfZW1wdHkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZGUyYWNhY2M3NjdiNDk4ODE1
Mjk5MDdhMWNmODBjN2Q2ZWJjODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbi5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Jyb2tlbl9pZ25vcmVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvZGVwZW5kZW5jeS5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2xpbnQud2hpdGVsaXN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L29rYXkuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjRmYjIyMWI3YTU4NzBmMDA3NWJkNTUwZWY3NGI0MmJkN2ZlZWE3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkKQEAgLTAsMCArMSw1OTggQEAK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitmcm9tIC4ubGludCBp
bXBvcnQgY2hlY2tfZmlsZV9jb250ZW50cworZnJvbSAuYmFzZSBpbXBvcnQgY2hlY2tfZXJyb3Jz
CitpbXBvcnQgb3MKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzaXgKKworSU5URVJFU1RJTkdfRklM
RV9OQU1FUyA9IHsKKyAgICAicHl0aG9uIjogWworICAgICAgICAidGVzdC5weSIsCisgICAgXSwK
KyAgICAianMiOiBbCisgICAgICAgICJ0ZXN0LmpzIiwKKyAgICBdLAorICAgICJ3ZWItbGF4Ijog
WworICAgICAgICAidGVzdC5odG0iLAorICAgICAgICAidGVzdC5odG1sIiwKKyAgICBdLAorICAg
ICJ3ZWItc3RyaWN0IjogWworICAgICAgICAidGVzdC5zdmciLAorICAgICAgICAidGVzdC54aHQi
LAorICAgICAgICAidGVzdC54aHRtbCIsCisgICAgXSwKK30KKworZGVmIGNoZWNrX3dpdGhfZmls
ZXMoaW5wdXRfYnl0ZXMpOgorICAgIHJldHVybiB7CisgICAgICAgIGZpbGVuYW1lOiAoY2hlY2tf
ZmlsZV9jb250ZW50cygiIiwgZmlsZW5hbWUsIHNpeC5CeXRlc0lPKGlucHV0X2J5dGVzKSksIGtp
bmQpCisgICAgICAgIGZvciAoZmlsZW5hbWUsIGtpbmQpIGluCisgICAgICAgICgKKyAgICAgICAg
ICAgIChvcy5wYXRoLmpvaW4oImh0bWwiLCBmaWxlbmFtZSksIGtpbmQpCisgICAgICAgICAgICBm
b3IgKGtpbmQsIGZpbGVuYW1lcykgaW4gSU5URVJFU1RJTkdfRklMRV9OQU1FUy5pdGVtcygpCisg
ICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzCisgICAgICAgICkKKyAgICB9CisK
KworZGVmIHRlc3RfdHJhaWxpbmdfd2hpdGVzcGFjZSgpOgorICAgIGVycm9yX21hcCA9IGNoZWNr
X3dpdGhfZmlsZXMoYiJ0ZXN0OyAiKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2lu
ZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQor
CisgICAgICAgIGV4cGVjdGVkID0gWygiVFJBSUxJTkcgV0hJVEVTUEFDRSIsICJXaGl0ZXNwYWNl
IGF0IEVPTCIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmljdCI6
CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRv
IHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
ZXhwZWN0ZWQKKworCitkZWYgdGVzdF9pbmRlbnRfdGFicygpOgorICAgIGVycm9yX21hcCA9IGNo
ZWNrX3dpdGhfZmlsZXMoYiJkZWYgZm9vKCk6XG5ceDA5cGFzcyIpCisKKyAgICBmb3IgKGZpbGVu
YW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNr
X2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJJTkRFTlQgVEFCUyIsICJU
YWJzIHVzZWQgZm9yIGluZGVudGF0aW9uIiwgZmlsZW5hbWUsIDIpXQorICAgICAgICBpZiBraW5k
ID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZB
SUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCBOb25lKSkKKyAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0X2NyX25vdF9hdF9lb2woKToK
KyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIibGluZTFccmxpbmUyXHIiKQorCisg
ICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgor
ICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGV4cGVjdGVkID0gWygiQ1Ig
QVQgRU9MIiwgIkNSIGNoYXJhY3RlciBpbiBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAxKV0K
KyAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3RlZC5h
cHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwg
Tm9uZSkpCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9j
cl9hdF9lb2woKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIibGluZTFcclxu
bGluZTJcclxuIikKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJv
cl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBl
eHBlY3RlZCA9IFsKKyAgICAgICAgICAgICgiQ1IgQVQgRU9MIiwgIkNSIGNoYXJhY3RlciBpbiBs
aW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgICgiQ1IgQVQgRU9MIiwg
IkNSIGNoYXJhY3RlciBpbiBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAyKSwKKyAgICAgICAg
XQorICAgICAgICBpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAgIGV4cGVjdGVk
LmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1l
LCBOb25lKSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0
X3czY190ZXN0X29yZygpOgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoYiJpbXBv
cnQoJ2h0dHA6Ly93d3cudzNjLXRlc3Qub3JnLycpIikKKworICAgIGZvciAoZmlsZW5hbWUsIChl
cnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3Jz
KGVycm9ycykKKworICAgICAgICBleHBlY3RlZCA9IFsoIlczQy1URVNULk9SRyIsICJFeHRlcm5h
bCB3M2MtdGVzdC5vcmcgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGlmIGtp
bmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlM
RUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCisgICAgICAgIGVsaWYg
a2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJT
RS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworZGVmIHRlc3Rfd2ViX3BsYXRmb3JtX3Rl
c3QoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIiaW1wb3J0KCdodHRwOi8v
d2ViLXBsYXRmb3JtLnRlc3QvJykiKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2lu
ZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQor
CisgICAgICAgIGV4cGVjdGVkID0gWygiV0VCLVBMQVRGT1JNLlRFU1QiLCAiSW50ZXJuYWwgd2Vi
LXBsYXRmb3JtLnRlc3QgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGlmIGtp
bmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlM
RUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCisgICAgICAgIGVsaWYg
a2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJT
RS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF93ZWJpZGwyX2pzKCk6
CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIjxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvd2ViaWRsMi5qcz4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGlu
IGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAg
ICAgIGV4cGVjdGVkID0gWygiV0VCSURMMi5KUyIsICJMZWdhY3kgd2ViaWRsMi5qcyBzY3JpcHQg
dXNlZCIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAg
ICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2Ug
ZmlsZSIsIGZpbGVuYW1lLCAxKSkKKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoK
KyAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8g
cGFyc2UgZmlsZSIsIGZpbGVuYW1lLCBOb25lKSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBl
eHBlY3RlZAorCisKK2RlZiB0ZXN0X2NvbnNvbGUoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193
aXRoX2ZpbGVzKGIiPHNjcmlwdD5cbmNvbnNvbGUubG9nKCdlcnJvcicpO1xuY29uc29sZS5lcnJv
ciAoJ2xvZycpXG48L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2lu
ZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQor
CisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiLCAianMiXToKKyAg
ICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiQ09OU09MRSIs
ICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAg
ICAgKCJDT05TT0xFIiwgIkNvbnNvbGUgbG9nZ2luZyBBUEkgdXNlZCIsIGZpbGVuYW1lLCAzKSwK
KyAgICAgICAgICAgIF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEp
XQorCisKK2RlZiB0ZXN0X3NldFRpbWVvdXQoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRo
X2ZpbGVzKGIiPHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IDEsIDEwKTwvc2NyaXB0PiIpCisKKyAg
ICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6Cisg
ICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9u
IjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJs
ZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpXQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgYXNzZXJ0IGVycm9ycyA9PSBbKCdTRVQgVElNRU9VVCcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NldFRpbWVvdXQgdXNlZDsgc3RlcF90aW1lb3V0IHNob3VsZCB0eXBpY2Fs
bHkgYmUgdXNlZCBpbnN0ZWFkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KKworCitkZWYgdGVzdF9l
dmVudFNlbmRlcigpOgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoYiI8c2NyaXB0
PmV2ZW50U2VuZGVyLm1vdXNlRG93bigpPC9zY3JpcHQ+IikKKworICAgIGZvciAoZmlsZW5hbWUs
IChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJy
b3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUi
LCBmaWxlbmFtZSwgMSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3Jz
ID09IFsoJ0xBWU9VVFRFU1RTIEFQSVMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdldmVudFNlbmRlci90ZXN0UnVubmVyL3dpbmRvdy5pbnRlcm5hbHMgdXNlZDsgdGhlc2UgYXJl
IExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9CbGluayknLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEpXQorCisKK2RlZiB0ZXN0X3Rlc3RSdW5uZXIoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVj
a193aXRoX2ZpbGVzKGIiPHNjcmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHsgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7IH08L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVy
cm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMo
ZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZp
bGVuYW1lLCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
WygnTEFZT1VUVEVTVFMgQVBJUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2
ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5
b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MSldCisKKworZGVmIHRlc3Rfd2luZG93RG90SW50ZXJuYWxzKCk6CisgICAgZXJyb3JfbWFwID0g
Y2hlY2tfd2l0aF9maWxlcyhiIjxzY3JpcHQ+aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsgaW50ZXJu
YWxzLmRvQVRoaW5nKCk7IH08L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9y
cywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJy
b3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQg
ZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVu
YW1lLCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygn
TEFZT1VUVEVTVFMgQVBJUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50
U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5b3V0
VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSld
CisKKworZGVmIHRlc3RfbWV0YV90aW1lb3V0KCk6CisgICAgY29kZSA9IGIiIiIKKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxtZXRhIG5hbWU9InRpbWVvdXQi
IC8+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJzaG9ydCIgLz4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciIC8+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAg
PSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBr
aW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMp
CisKKyAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAgICAg
ICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1USU1F
T1VUIiwgIk1vcmUgdGhhbiBvbmUgbWV0YSBuYW1lPSd0aW1lb3V0JyIsIGZpbGVuYW1lLCBOb25l
KSwKKyAgICAgICAgICAgICAgICAoIklOVkFMSUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVvdXQg
dmFsdWUgIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiSU5WQUxJRC1USU1F
T1VUIiwgIkludmFsaWQgdGltZW91dCB2YWx1ZSBzaG9ydCIsIGZpbGVuYW1lLCBOb25lKSwKKyAg
ICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisKKworZGVm
IHRlc3RfZWFybHlfdGVzdGhhcm5lc3NyZXBvcnQoKToKKyAgICBjb2RlID0gYiIiIgorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3Jf
bWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9y
cywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJy
b3JzKQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAg
ICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiRUFSTFktVEVT
VEhBUk5FU1NSRVBPUlQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMgc2NyaXB0IHNlZW4gYmVmb3Jl
IHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0K
KyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9y
cyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNl
IGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisKKworZGVmIHRlc3RfbXVsdGlw
bGVfdGVzdGhhcm5lc3MoKToKKyAgICBjb2RlID0gYiIiIgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxl
cyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21h
cC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtp
bmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGFzc2VydCBlcnJv
cnMgPT0gWworICAgICAgICAgICAgICAgICgiTVVMVElQTEUtVEVTVEhBUk5FU1MiLCAiTW9yZSB0
aGFuIG9uZSA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+IiwgZmlsZW5h
bWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiTUlTU0lORy1URVNUSEFSTkVTU1JFUE9SVCIs
ICJNaXNzaW5nIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz4i
LCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAi
cHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAg
ICgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDIpLAor
ICAgICAgICAgICAgXQorCisKK2RlZiB0ZXN0X211bHRpcGxlX3Rlc3RoYXJuZXNzcmVwb3J0KCk6
CisgICAgY29kZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKwor
ICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToK
KyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kIGluIFsid2Vi
LWxheCIsICJ3ZWItc3RyaWN0Il06CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAg
ICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1RIQVJORVNTUkVQT1JUIiwgIk1vcmUgdGhhbiBv
bmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPiIsIGZpbGVu
YW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24i
OgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJT
RS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAg
ICAgICBdCisKKworZGVmIHRlc3RfcHJlc2VudF90ZXN0aGFybmVzc2NzcygpOgorICAgIGNvZGUg
PSBiIiIiCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIi8+Cis8L2h0bWw+
CisiIiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3Ig
KGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAg
IGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAi
d2ViLXN0cmljdCJdOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAg
ICAgICAgKCJQUkVTRU5ULVRFU1RIQVJORVNTQ1NTIiwgIkV4cGxpY2l0IGxpbmsgdG8gdGVzdGhh
cm5lc3MuY3NzIHByZXNlbnQiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdCisgICAg
ICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
WworICAgICAgICAgICAgICAgICgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxl
IiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAgICAgXQorCisKK2RlZiB0ZXN0X3Rlc3RoYXJuZXNz
X3BhdGgoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSJ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Imh0dHA6Ly93M2MtdGVzdC5vcmcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKwor
ICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToK
KyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBleHBlY3RlZCA9IFsoIlcz
Qy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2MtdGVzdC5vcmcgZG9tYWluIHVzZWQiLCBmaWxlbmFt
ZSwgNSldCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3Rl
ZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFt
ZSwgMSkpCisgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgor
ICAgICAgICAgICAgZXhwZWN0ZWQuZXh0ZW5kKFsKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJO
RVNTLVBBVEgiLCAidGVzdGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0
aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBBVEgi
LCAidGVzdGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVu
YW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBBVEgiLCAidGVzdGhh
cm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25l
KSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBBVEgiLCAidGVzdGhhcm5lc3MuanMg
c2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAg
ICAgICAgIF0pCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVz
dF90ZXN0aGFybmVzc3JlcG9ydF9wYXRoKCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0idGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vdzNjLXRlc3Qub3Jn
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIK
KyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVu
YW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNr
X2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkciLCAi
RXh0ZXJuYWwgdzNjLXRlc3Qub3JnIGRvbWFpbiB1c2VkIiwgZmlsZW5hbWUsIDUpXQorICAgICAg
ICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFS
U0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQorICAgICAg
ICBlbGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGV4
cGVjdGVkLmV4dGVuZChbCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JFUE9SVC1QQVRI
IiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgi
LCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JFUE9SVC1Q
QVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBh
dGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JFUE9S
VC1QQVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0
IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JF
UE9SVC1QQVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3Jy
ZWN0IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdKQorICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IGV4cGVjdGVkCisKKworZGVmIHRlc3Rfbm90X3Rlc3RoYXJuZXNzX3BhdGgo
KToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkK
KworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMo
KToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJw
eXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAg
KCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSksCisg
ICAgICAgICAgICBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09
IFtdCisKKworQHB5dGVzdC5tYXJrLnNraXBpZihzaXguUFkzLCByZWFzb249IkNhbm5vdCBwYXJz
ZSBwcmludCBzdGF0ZW1lbnRzIGZyb20gcHl0aG9uIDMiKQorZGVmIHRlc3RfcHJpbnRfc3RhdGVt
ZW50KCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiImRlZiBmb28oKTpcbiAg
cHJpbnQgJ3N0YXRlbWVudCdcbiAgcHJpbnRcbiIpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJy
b3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhl
cnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlByaW50
IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAgICAgKCJQUklOVCBT
VEFURU1FTlQiLCAiUHJpbnQgZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAzKSwKKyAgICAgICAg
ICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAgIGFz
c2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUEFSU0UtRkFJTEVEIiwgIlVuYWJs
ZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgXQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQorCisKK2RlZiB0ZXN0X3By
aW50X2Z1bmN0aW9uKCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiImRlZiBm
b28oKTpcbiAgcHJpbnQoJ2Z1bmN0aW9uJylcbiIpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJy
b3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhl
cnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlByaW50
IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisgICAgICAgIGVs
aWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIs
IGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gW10KKworCitvcGVuX21vZGVfY29kZSA9ICIiIgorZGVmIGZp
cnN0KCk6CisgICAgcmV0dXJuIHswfSgidGVzdC5wbmciKQorCitkZWYgc2Vjb25kKCk6CisgICAg
cmV0dXJuIHswfSgidGVzdC5wbmciLCAiciIpCisKK2RlZiB0aGlyZCgpOgorICAgIHJldHVybiB7
MH0oInRlc3QucG5nIiwgInJiIikKKworZGVmIGZvdXJ0aCgpOgorICAgIHJldHVybiB7MH0oInRl
c3QucG5nIiwgZW5jb2Rpbmc9InV0Zi04IikKKworZGVmIGZpZnRoKCk6CisgICAgcmV0dXJuIHsw
fSgidGVzdC5wbmciLCBtb2RlPSJyYiIpCisiIiIKKworCitkZWYgdGVzdF9vcGVuX21vZGUoKToK
KyAgICBmb3IgbWV0aG9kIGluIFsib3BlbiIsICJmaWxlIl06CisgICAgICAgIGNvZGUgPSBvcGVu
X21vZGVfY29kZS5mb3JtYXQobWV0aG9kKS5lbmNvZGUoInV0Zi04IikKKyAgICAgICAgZXJyb3Jz
ID0gY2hlY2tfZmlsZV9jb250ZW50cygiIiwgInRlc3QucHkiLCBzaXguQnl0ZXNJTyhjb2RlKSkK
KyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBtZXNzYWdlID0gKCJGaWxl
IG9wZW5lZCB3aXRob3V0IHByb3ZpZGluZyBhbiBleHBsaWNpdCBtb2RlIChub3RlOiAiICsKKyAg
ICAgICAgICAgICAgICAgICAiYmluYXJ5IGZpbGVzIG11c3QgYmUgcmVhZCB3aXRoICdiJyBpbiB0
aGUgbW9kZSBmbGFncykiKQorCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAg
ICAgKCJPUEVOLU5PLU1PREUiLCBtZXNzYWdlLCAidGVzdC5weSIsIDMpLAorICAgICAgICAgICAg
KCJPUEVOLU5PLU1PREUiLCBtZXNzYWdlLCAidGVzdC5weSIsIDEyKSwKKyAgICAgICAgXQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAiZmlsZW5hbWUsZXhwZWN0X2Vycm9yIiwK
KyAgICBbCisgICAgICAgICgiZm9vL2Jhci5odG1sIiwgRmFsc2UpLAorICAgICAgICAoImNzcy9i
YXIuaHRtbCIsIFRydWUpLAorICAgIF0pCitkZWYgdGVzdF9jc3Nfc3VwcG9ydF9maWxlKGZpbGVu
YW1lLCBleHBlY3RfZXJyb3IpOgorICAgIGVycm9ycyA9IGNoZWNrX2ZpbGVfY29udGVudHMoIiIs
IGZpbGVuYW1lLCBzaXguQnl0ZXNJTyhiIiIpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisK
KyAgICBpZiBleHBlY3RfZXJyb3I6CisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAg
ICAgICAgKCdTVVBQT1JULVdST05HLURJUicsCisgICAgICAgICAgICAgJ1N1cHBvcnQgZmlsZSBu
b3QgaW4gc3VwcG9ydCBkaXJlY3RvcnknLAorICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAg
ICAgICAgIE5vbmUpLAorICAgICAgICBdCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IGVycm9y
cyA9PSBbXQorCisKK2RlZiB0ZXN0X2Nzc19taXNzaW5nX2ZpbGVfaW5fY3NzKCk6CisgICAgY29k
ZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+
CisiIiIKKyAgICBlcnJvcnMgPSBjaGVja19maWxlX2NvbnRlbnRzKCIiLCAiY3NzL2Zvby9iYXIu
aHRtbCIsIHNpeC5CeXRlc0lPKGNvZGUpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAg
ICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgKCdNSVNTSU5HLUxJTksnLAorICAgICAgICAg
J1Rlc3RjYXNlIGZpbGUgbXVzdCBoYXZlIGEgbGluayB0byBhIHNwZWMnLAorICAgICAgICAgImNz
cy9mb28vYmFyLmh0bWwiLAorICAgICAgICAgTm9uZSksCisgICAgXQorCisKK2RlZiB0ZXN0X2Nz
c19taXNzaW5nX2ZpbGVfbWFudWFsKCk6CisgICAgZXJyb3JzID0gY2hlY2tfZmlsZV9jb250ZW50
cygiIiwgImNzcy9mb28vYmFyLW1hbnVhbC5odG1sIiwgc2l4LkJ5dGVzSU8oYiIiKSkKKyAgICBj
aGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICgn
TUlTU0lORy1MSU5LJywKKyAgICAgICAgICdUZXN0Y2FzZSBmaWxlIG11c3QgaGF2ZSBhIGxpbmsg
dG8gYSBzcGVjJywKKyAgICAgICAgICJjc3MvZm9vL2Jhci1tYW51YWwuaHRtbCIsCisgICAgICAg
ICBOb25lKSwKKyAgICBdCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmaWxlbmFtZSIs
IFsKKyAgICAiZm9vLndvcmtlci5qcyIsCisgICAgImZvby5hbnkuanMiLAorXSkKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiaW5wdXQsZXJyb3IiLCBbCisgICAgKGIiIiIvL01FVEE6IHRpbWVv
dXQ9bG9uZ1xuIiIiLCBOb25lKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIi
LCBOb25lKSwKKyAgICAoYiIiIi8vICBNRVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgTm9uZSksCisg
ICAgKGIiIiIvLyBNRVRBOiBzY3JpcHQ9Zm9vLmpzXG4iIiIsIE5vbmUpLAorICAgIChiIiIiIyBN
RVRBOlxuIiIiLCBOb25lKSwKKyAgICAoYiIiIlxuLy8gTUVUQTogdGltZW91dD1sb25nXG4iIiIs
ICgyLCAiU1RSQVktTUVUQURBVEEiKSksCisgICAgKGIiIiIgLy8gTUVUQTogdGltZW91dD1sb25n
XG4iIiIsICgxLCAiSU5ERU5URUQtTUVUQURBVEEiKSksCisgICAgKGIiIiIvLyBNRVRBOiB0aW1l
b3V0PWxvbmdcbi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCBOb25lKSwKKyAgICAoYiIiIi8v
IE1FVEE6IHRpbWVvdXQ9bG9uZ1xuXG4vLyBNRVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgKDMsICJT
VFJBWS1NRVRBREFUQSIpKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuLy8gU3Rh
cnQgb2YgdGhlIHRlc3Rcbi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMywgIlNUUkFZLU1F
VEFEQVRBIikpLAorICAgIChiIiIiLy8gTUVUQTpcbiIiIiwgKDEsICJCUk9LRU4tTUVUQURBVEEi
KSksCisgICAgKGIiIiIvLyBNRVRBOiBmb29iYXJcbiIiIiwgKDEsICJCUk9LRU4tTUVUQURBVEEi
KSksCisgICAgKGIiIiIvLyBNRVRBOiBmb289YmFyXG4iIiIsICgxLCAiVU5LTk9XTi1NRVRBREFU
QSIpKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9YmFyXG4iIiIsICgxLCAiVU5LTk9XTi1U
SU1FT1VULU1FVEFEQVRBIikpLAorXSkKK2RlZiB0ZXN0X3NjcmlwdF9tZXRhZGF0YShmaWxlbmFt
ZSwgaW5wdXQsIGVycm9yKToKKyAgICBlcnJvcnMgPSBjaGVja19maWxlX2NvbnRlbnRzKCIiLCBm
aWxlbmFtZSwgc2l4LkJ5dGVzSU8oaW5wdXQpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisK
KyAgICBpZiBlcnJvciBpcyBub3QgTm9uZToKKyAgICAgICAgbGluZSwga2luZCA9IGVycm9yCisg
ICAgICAgIG1lc3NhZ2VzID0geworICAgICAgICAgICAgIlNUUkFZLU1FVEFEQVRBIjogIk1ldGFk
YXRhIGNvbW1lbnRzIHNob3VsZCBzdGFydCB0aGUgZmlsZSIsCisgICAgICAgICAgICAiSU5ERU5U
RUQtTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBsaW5lIiwK
KyAgICAgICAgICAgICJCUk9LRU4tTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudCBpcyBub3Qg
Zm9ybWF0dGVkIGNvcnJlY3RseSIsCisgICAgICAgICAgICAiVU5LTk9XTi1USU1FT1VULU1FVEFE
QVRBIjogIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIHRpbWVvdXQgbWV0YWRhdGEiLAorICAgICAgICAg
ICAgIlVOS05PV04tTUVUQURBVEEiOiAiVW5leHBlY3RlZCBraW5kIG9mIG1ldGFkYXRhIiwKKyAg
ICAgICAgfQorICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgIChraW5kLAor
ICAgICAgICAgICAgIG1lc3NhZ2VzW2tpbmRdLAorICAgICAgICAgICAgIGZpbGVuYW1lLAorICAg
ICAgICAgICAgIGxpbmUpLAorICAgICAgICBdCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IGVy
cm9ycyA9PSBbXQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5wdXQsZXJyb3IiLCBb
CisgICAgKGIiIiIjTUVUQTogdGltZW91dD1sb25nXG4iIiIsIE5vbmUpLAorICAgIChiIiIiIyBN
RVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIjICBNRVRBOiB0aW1lb3V0
PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIiLy8gTUVUQToiXG4iIiIsIE5vbmUpLAorICAg
IChiIiIiXG4jIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMiwgIlNUUkFZLU1FVEFEQVRBIikp
LAorICAgIChiIiIiICMgTUVUQTogdGltZW91dD1sb25nXG4iIiIsICgxLCAiSU5ERU5URUQtTUVU
QURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIyBNRVRBOiB0aW1lb3V0
PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIjIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuXG4jIE1F
VEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMywgIlNUUkFZLU1FVEFEQVRBIikpLAorICAgIChiIiIi
IyBNRVRBOiB0aW1lb3V0PWxvbmdcbiMgU3RhcnQgb2YgdGhlIHRlc3RcbiMgTUVUQTogdGltZW91
dD1sb25nXG4iIiIsICgzLCAiU1RSQVktTUVUQURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6XG4i
IiIsICgxLCAiQlJPS0VOLU1FVEFEQVRBIikpLAorICAgIChiIiIiIyBNRVRBOiBmb29iYXJcbiIi
IiwgKDEsICJCUk9LRU4tTUVUQURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6IGZvbz1iYXJcbiIi
IiwgKDEsICJVTktOT1dOLU1FVEFEQVRBIikpLAorICAgIChiIiIiIyBNRVRBOiB0aW1lb3V0PWJh
clxuIiIiLCAoMSwgIlVOS05PV04tVElNRU9VVC1NRVRBREFUQSIpKSwKK10pCitkZWYgdGVzdF9w
eXRob25fbWV0YWRhdGEoaW5wdXQsIGVycm9yKToKKyAgICBmaWxlbmFtZSA9ICJ0ZXN0LnB5Igor
ICAgIGVycm9ycyA9IGNoZWNrX2ZpbGVfY29udGVudHMoIiIsIGZpbGVuYW1lLCBzaXguQnl0ZXNJ
TyhpbnB1dCkpCisgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgIGlmIGVycm9yIGlzIG5v
dCBOb25lOgorICAgICAgICBsaW5lLCBraW5kID0gZXJyb3IKKyAgICAgICAgbWVzc2FnZXMgPSB7
CisgICAgICAgICAgICAiU1RSQVktTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxk
IHN0YXJ0IHRoZSBmaWxlIiwKKyAgICAgICAgICAgICJJTkRFTlRFRC1NRVRBREFUQSI6ICJNZXRh
ZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhlIGxpbmUiLAorICAgICAgICAgICAgIkJST0tF
Ti1NRVRBREFUQSI6ICJNZXRhZGF0YSBjb21tZW50IGlzIG5vdCBmb3JtYXR0ZWQgY29ycmVjdGx5
IiwKKyAgICAgICAgICAgICJVTktOT1dOLVRJTUVPVVQtTUVUQURBVEEiOiAiVW5leHBlY3RlZCB2
YWx1ZSBmb3IgdGltZW91dCBtZXRhZGF0YSIsCisgICAgICAgICAgICAiVU5LTk9XTi1NRVRBREFU
QSI6ICJVbmV4cGVjdGVkIGtpbmQgb2YgbWV0YWRhdGEiLAorICAgICAgICB9CisgICAgICAgIGFz
c2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgKGtpbmQsCisgICAgICAgICAgICAgbWVzc2Fn
ZXNba2luZF0sCisgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgbGluZSksCisg
ICAgICAgIF0KKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvdGVzdF9saW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTk2
YjI5NjhiYjFmMmYwNzU2MmRiYjY3NTViZTZkNDZjZWM3YTI1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL3Rlc3RfbGludC5weQpAQCAtMCwwICsxLDQzNCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitpbXBvcnQgbW9j
aworaW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAorCitmcm9tIC4uLmxvY2FscGF0aHMgaW1wb3J0
IHJlcG9fcm9vdAorZnJvbSAuLiBpbXBvcnQgbGludCBhcyBsaW50X21vZAorZnJvbSAuLmxpbnQg
aW1wb3J0IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzLCBwYXJzZV93aGl0ZWxpc3QsIGxpbnQsIGNy
ZWF0ZV9wYXJzZXIKKworX2R1bW15X3JlcG8gPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKSwgImR1bW15IikKKworZGVmIF9tb2NrX2xpbnQobmFtZSwgKiprd2FyZ3MpOgor
ICAgIHdyYXBwZWQgPSBnZXRhdHRyKGxpbnRfbW9kLCBuYW1lKQorICAgIHJldHVybiBtb2NrLnBh
dGNoKGxpbnRfbW9kLl9fbmFtZV9fICsgIi4iICsgbmFtZSwgd3JhcHM9d3JhcHBlZCwgKiprd2Fy
Z3MpCisKKworZGVmIHRlc3RfZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMoKToKKyAgICB3aGl0ZWxp
c3QgPSB7CisgICAgICAgICdDT05TT0xFJzogeworICAgICAgICAgICAgJ3N2Zy8qJzogezEyfQor
ICAgICAgICB9LAorICAgICAgICAnSU5ERU5UIFRBQlMnOiB7CisgICAgICAgICAgICAnc3ZnLyon
OiB7Tm9uZX0KKyAgICAgICAgfQorICAgIH0KKyAgICAjIHBhcnNlX3doaXRlbGlzdCBub3JtYWxp
c2VzIHRoZSBjYXNlL3BhdGggb2YgdGhlIG1hdGNoIHN0cmluZyBzbyBuZWVkIHRvIGRvIHRoZSBz
YW1lCisgICAgd2hpdGVsaXN0ID0ge2U6IHtvcy5wYXRoLm5vcm1jYXNlKGspOiB2IGZvciBrLCB2
IGluIHAuaXRlbXMoKX0KKyAgICAgICAgICAgICAgICAgZm9yIGUsIHAgaW4gd2hpdGVsaXN0Lml0
ZW1zKCl9CisgICAgIyBwYXRocyBwYXNzZWQgaW50byBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyBh
cmUgYWx3YXlzIFVuaXggc3R5bGUKKyAgICBmaWx0ZXJlZGZpbGUgPSAnc3ZnL3Rlc3QuaHRtbCcK
KyAgICB1bmZpbHRlcmVkZmlsZSA9ICdodG1sL3Rlc3QuaHRtbCcKKyAgICAjIFRlc3RzIGZvciBw
YXNzaW5nIG5vIGVycm9ycworICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMo
d2hpdGVsaXN0LCBbXSkKKyAgICBhc3NlcnQgZmlsdGVyZWQgPT0gW10KKyAgICBmaWx0ZXJlZCA9
IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKHdoaXRlbGlzdCwgW10pCisgICAgYXNzZXJ0IGZpbHRl
cmVkID09IFtdCisgICAgIyBUZXN0cyBmb3IgZmlsdGVyaW5nIG9uIGZpbGUgYW5kIGxpbmUgbnVt
YmVyCisgICAgZmlsdGVyZWQgPSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3aGl0ZWxpc3QsIFtb
J0NPTlNPTEUnLCAnJywgZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0ZXJlZCA9
PSBbXQorICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMod2hpdGVsaXN0LCBb
WydDT05TT0xFJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0ZXJl
ZCA9PSBbWydDT05TT0xFJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMl1dCisgICAgZmlsdGVyZWQg
PSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3aGl0ZWxpc3QsIFtbJ0NPTlNPTEUnLCAnJywgZmls
dGVyZWRmaWxlLCAxMV1dKQorICAgIGFzc2VydCBmaWx0ZXJlZCA9PSBbWydDT05TT0xFJywgJycs
IGZpbHRlcmVkZmlsZSwgMTFdXQorICAgICMgVGVzdHMgZm9yIGZpbHRlcmluZyBvbiBqdXN0IGZp
bGUKKyAgICBmaWx0ZXJlZCA9IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKHdoaXRlbGlzdCwgW1sn
SU5ERU5UIFRBQlMnLCAnJywgZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0ZXJl
ZCA9PSBbXQorICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMod2hpdGVsaXN0
LCBbWydJTkRFTlQgVEFCUycsICcnLCBmaWx0ZXJlZGZpbGUsIDExXV0pCisgICAgYXNzZXJ0IGZp
bHRlcmVkID09IFtdCisgICAgZmlsdGVyZWQgPSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3aGl0
ZWxpc3QsIFtbJ0lOREVOVCBUQUJTJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMV1dKQorICAgIGFz
c2VydCBmaWx0ZXJlZCA9PSBbWydJTkRFTlQgVEFCUycsICcnLCB1bmZpbHRlcmVkZmlsZSwgMTFd
XQorCisKK2RlZiB0ZXN0X3BhcnNlX3doaXRlbGlzdCgpOgorICAgIGlucHV0X2J1ZmZlciA9IHNp
eC5TdHJpbmdJTygiIiIKKyMgQ29tbWVudAorQ1IgQVQgRU9MOiBzdmcvaW1wb3J0LyoKK0NSIEFU
IEVPTDogc3RyZWFtcy9yZXNvdXJjZXMvdGVzdC11dGlscy5qcworCitJTkRFTlQgVEFCUzogLmdp
dG1vZHVsZXMKK0lOREVOVCBUQUJTOiBhcHAtdXJpLyoKK0lOREVOVCBUQUJTOiBzdmcvKgorCitU
UkFJTElORyBXSElURVNQQUNFOiBhcHAtdXJpLyoKKworQ09OU09MRTpzdHJlYW1zL3Jlc291cmNl
cy90ZXN0LXV0aWxzLmpzOiAxMgorCitDUiBBVCBFT0wsIElOREVOVCBUQUJTOiBodG1sL3Rlc3Qu
anMKKworQ1IgQVQgRU9MLCBJTkRFTlQgVEFCUzogaHRtbC90ZXN0Mi5qczogNDIKKworKjoqLnBk
ZgorKjpyZXNvdXJjZXMvKgorCisqLCBDUiBBVCBFT0w6ICoucG5nCisiIiIpCisKKyAgICBleHBl
Y3RlZF9kYXRhID0geworICAgICAgICAnSU5ERU5UIFRBQlMnOiB7CisgICAgICAgICAgICAnLmdp
dG1vZHVsZXMnOiB7Tm9uZX0sCisgICAgICAgICAgICAnYXBwLXVyaS8qJzoge05vbmV9LAorICAg
ICAgICAgICAgJ3N2Zy8qJzoge05vbmV9LAorICAgICAgICAgICAgJ2h0bWwvdGVzdC5qcyc6IHtO
b25lfSwKKyAgICAgICAgICAgICdodG1sL3Rlc3QyLmpzJzogezQyfSwKKyAgICAgICAgfSwKKyAg
ICAgICAgJ1RSQUlMSU5HIFdISVRFU1BBQ0UnOiB7CisgICAgICAgICAgICAnYXBwLXVyaS8qJzog
e05vbmV9LAorICAgICAgICB9LAorICAgICAgICAnQ09OU09MRSc6IHsKKyAgICAgICAgICAgICdz
dHJlYW1zL3Jlc291cmNlcy90ZXN0LXV0aWxzLmpzJzogezEyfSwKKyAgICAgICAgfSwKKyAgICAg
ICAgJ0NSIEFUIEVPTCc6IHsKKyAgICAgICAgICAgICdzdHJlYW1zL3Jlc291cmNlcy90ZXN0LXV0
aWxzLmpzJzoge05vbmV9LAorICAgICAgICAgICAgJ3N2Zy9pbXBvcnQvKic6IHtOb25lfSwKKyAg
ICAgICAgICAgICdodG1sL3Rlc3QuanMnOiB7Tm9uZX0sCisgICAgICAgICAgICAnaHRtbC90ZXN0
Mi5qcyc6IHs0Mn0sCisgICAgICAgIH0KKyAgICB9CisgICAgZXhwZWN0ZWRfZGF0YSA9IHtlOiB7
b3MucGF0aC5ub3JtY2FzZShrKTogdiBmb3IgaywgdiBpbiBwLml0ZW1zKCl9CisgICAgICAgICAg
ICAgICAgICAgICBmb3IgZSwgcCBpbiBleHBlY3RlZF9kYXRhLml0ZW1zKCl9CisgICAgZXhwZWN0
ZWRfaWdub3JlZCA9IHtvcy5wYXRoLm5vcm1jYXNlKHgpIGZvciB4IGluIHsiKi5wZGYiLCAicmVz
b3VyY2VzLyoiLCAiKi5wbmcifX0KKyAgICBkYXRhLCBpZ25vcmVkID0gcGFyc2Vfd2hpdGVsaXN0
KGlucHV0X2J1ZmZlcikKKyAgICBhc3NlcnQgZGF0YSA9PSBleHBlY3RlZF9kYXRhCisgICAgYXNz
ZXJ0IGlnbm9yZWQgPT0gZXhwZWN0ZWRfaWdub3JlZAorCisKK2RlZiB0ZXN0X2xpbnRfbm9fZmls
ZXMoY2FwbG9nKToKKyAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFtdLCAibm9ybWFsIikKKyAg
ICBhc3NlcnQgcnYgPT0gMAorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0
ZXN0X2xpbnRfaWdub3JlZF9maWxlKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVj
a19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgi
Y2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAg
ICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbl9pZ25vcmVkLmh0bWwiXSwg
Im5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0
IG5vdCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsZWQKKyAgICAgICAgICAgIGFzc2VydCBub3QgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbGVkCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09
ICIiCisKKworZGVmIHRlc3RfbGludF9ub3RfZXhpc3RpbmdfZmlsZShjYXBsb2cpOgorICAgIHdp
dGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAg
ICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tf
ZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgICMgcmVhbGx5IGxvbmcgcGF0aC1saW50ZWQgZmls
ZW5hbWUKKyAgICAgICAgICAgIG5hbWUgPSAiYSIgKiAyNTYgKyAiLmh0bWwiCisgICAgICAgICAg
ICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFtuYW1lXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBh
c3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG5vdCBtb2NrZWRfY2hlY2tfcGF0aC5j
YWxsZWQKKyAgICAgICAgICAgIGFzc2VydCBub3QgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMu
Y2FsbGVkCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfbGludF9w
YXNzaW5nKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9j
a2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250
ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBs
aW50KF9kdW1teV9yZXBvLCBbIm9rYXkuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFz
c2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9j
b3VudCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMu
Y2FsbF9jb3VudCA9PSAxCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRl
c3RfbGludF9mYWlsaW5nKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRo
IikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
ZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAg
ICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbi5odG1sIl0sICJub3JtYWwiKQorICAg
ICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tf
cGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmls
ZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICBhc3NlcnQgIlRSQUlMSU5HIFdISVRFU1BB
Q0UiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJicm9rZW4uaHRtbDoxIiBpbiBjYXBsb2cu
dGV4dAorCisKK2RlZiB0ZXN0X3JlZl9leGlzdGVudF9yZWxhdGl2ZShjYXBsb2cpOgorICAgIHdp
dGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAg
ICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tf
ZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYv
ZXhpc3RlbnRfcmVsYXRpdmUuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBy
diA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9
PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9j
b3VudCA9PSAxCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfcmVm
X2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNo
ZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50
KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6Cisg
ICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsicmVmL2V4aXN0ZW50X3Jvb3RfcmVs
YXRpdmUuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisgICAg
ICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAxCisgICAgICAg
ICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAxCisg
ICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfcmVmX25vbl9leGlzdGVu
dF9yZWxhdGl2ZShjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFz
IG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVf
Y29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2
ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvbm9uX2V4aXN0ZW50X3JlbGF0aXZlLmh0bWwiXSwg
Im5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMQorICAgICAgICAgICAgYXNzZXJ0
IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IG1v
Y2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMQorICAgIGFzc2VydCAiTk9O
LUVYSVNURU5ULVJFRiIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgInJlZi9ub25fZXhpc3Rl
bnRfcmVsYXRpdmUuaHRtbCIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgIm5vbl9leGlzdGVu
dF9maWxlLmh0bWwiIGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfcmVmX25vbl9leGlzdGVu
dF9yb290X3JlbGF0aXZlKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRo
IikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
ZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAg
ICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbInJlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2
ZS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAg
ICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAg
IGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICBh
c3NlcnQgIk5PTi1FWElTVEVOVC1SRUYiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJyZWYv
bm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbCIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3Nl
cnQgIi9ub25fZXhpc3RlbnRfZmlsZS5odG1sIiBpbiBjYXBsb2cudGV4dAorCisKKworZGVmIHRl
c3RfcmVmX2Fic29sdXRlX3VybChjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
cGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNo
ZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAg
ICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvYWJzb2x1dGUuaHRtbCJdLCAibm9y
bWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9j
a2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2Vk
X2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAxCisgICAgYXNzZXJ0ICJBQlNPTFVU
RS1VUkwtUkVGIiBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAiaHR0cDovL2V4YW1wbGUuY29t
L3JlZmVyZW5jZS5odG1sIiBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAicmVmL2Fic29sdXRl
Lmh0bWwiIGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfYWJvdXRfYmxhbmtfYXNfcmVmKGNh
cGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNr
X3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFz
IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1t
eV9yZXBvLCBbImFib3V0X2JsYW5rLXJlZi5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAg
YXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBub3QgbW9ja2VkX2NoZWNrX3BhdGgu
Y2FsbGVkCisgICAgICAgICAgICBhc3NlcnQgbm90IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRz
LmNhbGxlZAorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X3JlZl9z
YW1lX2ZpbGVfZW1wdHkoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgi
KSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19m
aWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAg
ICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsicmVmL3NhbWVfZmlsZV9lbXB0eS5odG1sIl0sICJu
b3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBt
b2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2Nr
ZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICBhc3NlcnQgIlNBTUUt
RklMRS1SRUYiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJzYW1lX2ZpbGVfZW1wdHkuaHRt
bCIgaW4gY2FwbG9nLnRleHQKKworCitkZWYgdGVzdF9yZWZfc2FtZV9maWxlX3BhdGgoY2FwbG9n
KToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0
aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3Jl
cG8sIFsicmVmL3NhbWVfZmlsZV9wYXRoLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBh
c3NlcnQgcnYgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxf
Y291bnQgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRz
LmNhbGxfY291bnQgPT0gMQorICAgIGFzc2VydCAiU0FNRS1GSUxFLVJFRiIgaW4gY2FwbG9nLnRl
eHQKKyAgICBhc3NlcnQgInNhbWVfZmlsZV9wYXRoLmh0bWwiIGluIGNhcGxvZy50ZXh0CisKKwor
ZGVmIHRlc3RfbGludF9wYXNzaW5nX2FuZF9mYWlsaW5nKGNhcGxvZyk6CisgICAgd2l0aCBfbW9j
a19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGgg
X21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2Nv
bnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbi5odG1s
IiwgIm9rYXkuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAxCisg
ICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAg
ICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAy
CisgICAgYXNzZXJ0ICJUUkFJTElORyBXSElURVNQQUNFIiBpbiBjYXBsb2cudGV4dAorICAgIGFz
c2VydCAiYnJva2VuLmh0bWw6MSIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgIm9rYXkuaHRt
bCIgbm90IGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3Vu
aXF1ZV9pZGVudGljYWxfdGVzdChjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
cGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNo
ZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAg
ICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJjc3MvY3NzLXVuaXF1ZS9tYXRjaC9hLmh0
bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNz
ZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2Nv
dW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5j
YWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQgY2FwbG9nLnRleHQgPT0gIiIKKworCitkZWYgdGVz
dF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX2RpZmZlcmVudF90ZXN0KGNhcGxvZyk6CisgICAg
d2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAg
ICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVj
a19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImNz
cy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1sIl0s
ICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDIKKyAgICAgICAgICAgIGFzc2Vy
dCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBt
b2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQgIkNT
Uy1DT0xMSURJTkctVEVTVC1OQU1FIiBpbiBjYXBsb2cudGV4dAorCisKK2RlZiB0ZXN0X2NoZWNr
X2Nzc19nbG9iYWxseV91bmlxdWVfZGlmZmVyZW50X3NwZWNfdGVzdChjYXBsb2cpOgorICAgIHdp
dGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAg
ICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tf
ZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJjc3Mv
Y3NzLXVuaXF1ZS9zZWxlY3RvcnMvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL2EuaHRtbCJdLCAi
bm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQg
bW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNzZXJ0IGNhcGxv
Zy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZV9zdXBw
b3J0X2lnbm9yZWQoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBh
cyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxl
X2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBy
diA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwiLCAi
Y3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAg
ICAgICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRo
LmNhbGxfY291bnQgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2Nv
bnRlbnRzLmNhbGxfY291bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisK
K2RlZiB0ZXN0X2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfc3VwcG9ydF9pZGVudGljYWwoY2Fw
bG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tf
cGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMg
bW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15
X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUv
bWF0Y2gvc3VwcG9ydC9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYg
PT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0g
MgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291
bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2NoZWNr
X2Nzc19nbG9iYWxseV91bmlxdWVfc3VwcG9ydF9kaWZmZXJlbnQoY2FwbG9nKToKKyAgICB3aXRo
IF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAg
d2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2Zp
bGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3NzL2Nz
cy11bmlxdWUvbm90LW1hdGNoL3N1cHBvcnQvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL3N1cHBv
cnQvYS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDIKKyAgICAg
ICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAg
ICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAg
ICBhc3NlcnQgIkNTUy1DT0xMSURJTkctU1VQUE9SVC1OQU1FIiBpbiBjYXBsb2cudGV4dAorCisK
K2RlZiB0ZXN0X2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfdGVzdF9zdXBwb3J0KGNhcGxvZyk6
CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6
CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tl
ZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBv
LCBbImNzcy9jc3MtdW5pcXVlL3N1cHBvcnQvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL2EuaHRt
bCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBh
c3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3Nl
cnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNzZXJ0
IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1
ZV9yZWZfaWRlbnRpY2FsKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRo
IikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
ZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAg
ICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImNzcy9jc3MtdW5pcXVlL2EtcmVmLmh0bWwiLCAi
Y3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1yZWYuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAg
IGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2Fs
bF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVu
dHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVm
IHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZV9yZWZfZGlmZmVyZW50KGNhcGxvZyk6Cisg
ICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6Cisg
ICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9j
aGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBb
ImNzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLXJlZi5odG1sIiwgImNzcy9jc3MtdW5pcXVlL2Et
cmVmLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMgorICAgICAg
ICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0gMgorICAgICAgICAg
ICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMgorICAg
IGFzc2VydCAiQ1NTLUNPTExJRElORy1SRUYtTkFNRSIgaW4gY2FwbG9nLnRleHQKKworCitkZWYg
dGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX3Rlc3RfcmVmKGNhcGxvZyk6CisgICAgd2l0
aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAg
IHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19m
aWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImNzcy9j
c3MtdW5pcXVlL2EtcmVmLmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1sIl0sICJub3JtYWwi
KQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRf
Y2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hl
Y2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQgY2FwbG9nLnRleHQg
PT0gIiIKKworCitkZWYgdGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX2lnbm9yZWQoY2Fw
bG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tf
cGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMg
bW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15
X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvdG9vbHMvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL25v
dC1tYXRjaC90b29scy9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYg
PT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0g
MgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291
bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2NoZWNr
X2Nzc19nbG9iYWxseV91bmlxdWVfaWdub3JlZF9kaXIoY2FwbG9nKToKKyAgICB3aXRoIF9tb2Nr
X2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBf
bW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29u
dGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3NzL2Nzcy11bmlx
dWUvc3VwcG9ydC9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0g
MAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0gMQor
ICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQg
PT0gMQorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2FsbF9maWxl
c3lzdGVtX3BhdGhzKCk6CisgICAgd2l0aCBtb2NrLnBhdGNoKAorICAgICAgICAgICAgJ29zLndh
bGsnLAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPVsoJy4nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWydkaXJfYScsICdkaXJfYiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
WydmaWxlX2EnLCAnZmlsZV9iJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAob3MucGF0
aC5qb2luKCcuJywgJ2Rpcl9hJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnZmlsZV9jJywgJ2ZpbGVfZCddKV0KKyAgICApIGFz
IG06CisgICAgICAgIGdvdCA9IGxpc3QobGludF9tb2QuYWxsX2ZpbGVzeXN0ZW1fcGF0aHMoJy4n
KSkKKyAgICAgICAgYXNzZXJ0IGdvdCA9PSBbJ2ZpbGVfYScsCisgICAgICAgICAgICAgICAgICAg
ICAgICdmaWxlX2InLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2Rpcl9h
JywgJ2ZpbGVfYycpLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2Rpcl9h
JywgJ2ZpbGVfZCcpXQorCisKK2RlZiB0ZXN0X21haW5fd2l0aF9hcmdzKCk6CisgICAgb3JpZ19h
cmd2ID0gc3lzLmFyZ3YKKyAgICB0cnk6CisgICAgICAgIHN5cy5hcmd2ID0gWycuL2xpbnQnLCAn
YScsICdiJywgJ2MnXQorICAgICAgICB3aXRoIG1vY2sucGF0Y2gobGludF9tb2QuX19uYW1lX18g
KyAiLm9zLnBhdGguaXNmaWxlIikgYXMgbW9ja19pc2ZpbGU6CisgICAgICAgICAgICBtb2NrX2lz
ZmlsZS5yZXR1cm5fdmFsdWUgPSBUcnVlCisgICAgICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2xp
bnQnLCByZXR1cm5fdmFsdWU9VHJ1ZSkgYXMgbToKKyAgICAgICAgICAgICAgICBsaW50X21vZC5t
YWluKCoqdmFycyhjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncygpKSkKKyAgICAgICAgICAgICAg
ICBtLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9vdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKG9z
LmdldGN3ZCgpLCB4KSwgcmVwb19yb290KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciB4IGluIFsnYScsICdiJywgJ2MnXV0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAibm9ybWFsIikKKyAgICBmaW5hbGx5OgorICAgICAg
ICBzeXMuYXJndiA9IG9yaWdfYXJndgorCisKK2RlZiB0ZXN0X21haW5fbm9fYXJncygpOgorICAg
IG9yaWdfYXJndiA9IHN5cy5hcmd2CisgICAgdHJ5OgorICAgICAgICBzeXMuYXJndiA9IFsnLi9s
aW50J10KKyAgICAgICAgd2l0aCBfbW9ja19saW50KCdsaW50JywgcmV0dXJuX3ZhbHVlPVRydWUp
IGFzIG06CisgICAgICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2NoYW5nZWRfZmlsZXMnLCByZXR1
cm5fdmFsdWU9Wydmb28nLCAnYmFyJ10pIGFzIG0yOgorICAgICAgICAgICAgICAgIGxpbnRfbW9k
Lm1haW4oKip2YXJzKGNyZWF0ZV9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpKQorICAgICAgICAgICAg
ICAgIG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXInXSwg
Im5vcm1hbCIpCisgICAgZmluYWxseToKKyAgICAgICAgc3lzLmFyZ3YgPSBvcmlnX2FyZ3YKKwor
CitkZWYgdGVzdF9tYWluX2FsbCgpOgorICAgIG9yaWdfYXJndiA9IHN5cy5hcmd2CisgICAgdHJ5
OgorICAgICAgICBzeXMuYXJndiA9IFsnLi9saW50JywgJy0tYWxsJ10KKyAgICAgICAgd2l0aCBf
bW9ja19saW50KCdsaW50JywgcmV0dXJuX3ZhbHVlPVRydWUpIGFzIG06CisgICAgICAgICAgICB3
aXRoIF9tb2NrX2xpbnQoJ2FsbF9maWxlc3lzdGVtX3BhdGhzJywgcmV0dXJuX3ZhbHVlPVsnZm9v
JywgJ2JhciddKSBhcyBtMjoKKyAgICAgICAgICAgICAgICBsaW50X21vZC5tYWluKCoqdmFycyhj
cmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncygpKSkKKyAgICAgICAgICAgICAgICBtLmFzc2VydF9j
YWxsZWRfb25jZV93aXRoKHJlcG9fcm9vdCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwiKQorICAg
IGZpbmFsbHk6CisgICAgICAgIHN5cy5hcmd2ID0gb3JpZ19hcmd2CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
dGVzdF9wYXRoX2xpbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NTgxODI4OWVhY2M1ZWU4YTg3OWFjOThiYTIzZWE5MjMzZThmYTdjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpAQCAtMCwwICsxLDQxIEBACitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworZnJvbSAuLmxpbnQgaW1wb3J0IGNoZWNrX3Bh
dGgKK2Zyb20gLmJhc2UgaW1wb3J0IGNoZWNrX2Vycm9ycworaW1wb3J0IHB5dGVzdAoraW1wb3J0
IHNpeAorCitkZWYgdGVzdF9hbGxvd2VkX3BhdGhfbGVuZ3RoKCk6CisgICAgYmFzZW5hbWUgPSAy
OSAqICJ0ZXN0LyIKKworICAgIGZvciBpZHggaW4gcmFuZ2UoNSk6CisgICAgICAgIGZpbGVuYW1l
ID0gYmFzZW5hbWUgKyBpZHggKiAiYSIKKworICAgICAgICBlcnJvcnMgPSBjaGVja19wYXRoKCIv
Zm9vLyIsIGZpbGVuYW1lKQorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFtdCisKKworZGVmIHRlc3RfZm9yYmlkZGVuX3BhdGhfbGVuZ3RoKCk6
CisgICAgYmFzZW5hbWUgPSAyOSAqICJ0ZXN0LyIKKworICAgIGZvciBpZHggaW4gcmFuZ2UoNSwg
MTApOgorICAgICAgICBmaWxlbmFtZSA9IGJhc2VuYW1lICsgaWR4ICogImEiCisgICAgICAgIG1l
c3NhZ2UgPSAiLyVzIGxvbmdlciB0aGFuIG1heGltdW0gcGF0aCBsZW5ndGggKCVzID4gMTUwKSIg
JSAoZmlsZW5hbWUsIDE0NiArIGlkeCkKKworICAgICAgICBlcnJvcnMgPSBjaGVja19wYXRoKCIv
Zm9vLyIsIGZpbGVuYW1lKQorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsoIlBBVEggTEVOR1RIIiwgbWVzc2FnZSwgZmlsZW5hbWUsIE5vbmUp
XQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGhfZW5kaW5nLGdlbmVyYXRlZCIsIFso
Ii53b3JrZXIuaHRtbCIsICIud29ya2VyLmpzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoIi5hbnkud29ya2VyLmh0bWwiLCAiLmFueS5qcyIp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIu
YW55Lmh0bWwiLCAiLmFueS5qcyIpXSkKK2RlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGluZ3Mo
cGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6CisgICAgcGF0aCA9ICIvdGVzdC90ZXN0IiArIHBhdGhf
ZW5kaW5nCisKKyAgICBtZXNzYWdlID0gKCJwYXRoIGVuZHMgd2l0aCAlcyB3aGljaCBjb2xsaWRl
cyB3aXRoIGdlbmVyYXRlZCB0ZXN0cyBmcm9tICVzIGZpbGVzIiAlCisgICAgICAgICAgICAgICAo
cGF0aF9lbmRpbmcsIGdlbmVyYXRlZCkpCisKKyAgICBlcnJvcnMgPSBjaGVja19wYXRoKCIvZm9v
LyIsIHBhdGgpCisgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKyAgICBhc3NlcnQgZXJyb3JzID09
IFsoIldPUktFUiBDT0xMSVNJT04iLCBtZXNzYWdlLCBwYXRoLCBOb25lKV0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTAy
NjdmMzY0YTk5ZjIwZTcxNmY3OTQ0ZmE1MmZmMjg3OGFjMGY1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRf
Xy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xp
bnQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcxNTI1YWY2YmY3ZmIzODUyYWNlYTliMGQ2MmI2
MWU0MWVlZmViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIw
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvY29tbWFuZHMuanNvbgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbG9jYWxwYXRocy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQppbmRleCA5ZDU5Y2Y4MTVjNjc2YjkwNmFmOTMw
NmI5NjVhMzBlYTAzMDY1MjExLi44NTA5MTE0YjkzOWM1MDk0ZjQzYjJkYjhhZDQ0ZTVmM2E2YTU1
YjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xvY2FscGF0aHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhzLnB5CkBAIC04LDggKzgsMTEgQEAgc3lz
LnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlKSkKIHN5cy5wYXRoLmluc2VydCgwLCBv
cy5wYXRoLmpvaW4oaGVyZSwgInNpeCIpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9p
bihoZXJlLCAiaHRtbDVsaWIiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVy
ZSwgIndwdHNlcnZlIikpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJw
eXdlYnNvY2tldCIsICJzcmMiKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVy
ZSwgInB5IikpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJweXRlc3Qi
KSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInB5d2Vic29ja2V0Iikp
CitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJh
dHRycyIsICJzcmMiKSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInRo
aXJkX3BhcnR5IiwgImZ1bmNzaWdzIikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2lu
KGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJwbHVnZ3kiKSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5w
YXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgInB5IikpCitzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJweXRlc3QiKSkKIHN5cy5wYXRoLmlu
c2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgIndlYmRyaXZlciIpKQogc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguam9pbihoZXJlLCAid3B0cnVubmVyIikpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hNTFBh
cnNlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CmluZGV4IDVjZWViMGI1ZjcyNzE5MGYzZDkyOWUxZDQx
YjkyMGMyNjU0YjFkZDcuLjUyM2Y1NDRiN2M0ZTgzNGI4NWQ5NzBhMzUyYWFiMjhkM2M4NDYxNDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CkBAIC03MCw4
ICs3MCw4IEBAIGNsYXNzIFhNTFBhcnNlcihvYmplY3QpOgogICAgIGRlZiBfZW5kKHNlbGYsIHRh
Zyk6CiAgICAgICAgIHJldHVybiBzZWxmLl90YXJnZXQuZW5kKF9maXhuYW1lKHRhZykpCiAKLSAg
ICBkZWYgX2V4dGVybmFsKHNlbGYsIGNvbnRleHQsIGJhc2UsIHN5c3RlbUlkLCBwdWJsaWNJZCk6
Ci0gICAgICAgIGlmIHB1YmxpY0lkIGluIHsKKyAgICBkZWYgX2V4dGVybmFsKHNlbGYsIGNvbnRl
eHQsIGJhc2UsIHN5c3RlbV9pZCwgcHVibGljX2lkKToKKyAgICAgICAgaWYgcHVibGljX2lkIGlu
IHsKICAgICAgICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8v
RU4iLAogICAgICAgICAgICAgICAgICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiwKICAgICAg
ICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCmluZGV4IDMyMmNjNTk4MTFiYWRh
ZjQ4NDI3YzY3MGY5MWY1N2U4NmJiZGVjMjguLmQ2Y2NkOTg4MDllZjg5NTE2NjJiZGI5YzBiZjA1
ZjIzM2VhZTRkYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbgorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRz
Lmpzb24KQEAgLTEsMyArMSw2IEBACiB7Im1hbmlmZXN0IjoKICB7InBhdGgiOiAidXBkYXRlLnB5
IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJV
cGRhdGUgdGhlIE1BTklGRVNULmpzb24gZmlsZSIsCisgICJ2aXJ0dWFsZW52IjogZmFsc2V9LAor
ICJtYW5pZmVzdC1kb3dubG9hZCI6CisgeyJwYXRoIjogImRvd25sb2FkLnB5IiwgInNjcmlwdCI6
ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJEb3dubG9hZCByZWNl
bnQgcHJlZ2VuZXJhdGVkIE1BTklGRVNULmpzb24gZmlsZSIsCiAgICJ2aXJ0dWFsZW52IjogZmFs
c2V9fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvZG93bmxvYWQucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjExYWRhMGVjZDNmODdkMjUyZTQxMDFmZDAzM2RkZWRjNjUzOTdjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvZG93bmxvYWQucHkKQEAgLTAsMCArMSwxMzMgQEAKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGd6aXAKK2lt
cG9ydCBqc29uCitpbXBvcnQgaW8KK2ltcG9ydCBvcworZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0
ZXRpbWUsIHRpbWVkZWx0YQorCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBvcnQg
dXJsb3BlbgorCitmcm9tIC52Y3MgaW1wb3J0IEdpdAorCitmcm9tIC4gaW1wb3J0IGxvZworCito
ZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorCit3cHRfcm9vdCA9IG9zLnBhdGguYWJz
cGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorbG9nZ2VyID0g
bG9nLmdldF9sb2dnZXIoKQorCisKK2RlZiBhYnNfcGF0aChwYXRoKToKKyAgICByZXR1cm4gb3Mu
cGF0aC5hYnNwYXRoKG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKSkKKworCitkZWYgc2hvdWxkX2Rv
d25sb2FkKG1hbmlmZXN0X3BhdGgsIHJlYnVpbGRfdGltZT10aW1lZGVsdGEoZGF5cz01KSk6Cisg
ICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X3BhdGgpOgorICAgICAgICByZXR1cm4g
VHJ1ZQorICAgIG10aW1lID0gZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChvcy5wYXRoLmdldG10aW1l
KG1hbmlmZXN0X3BhdGgpKQorICAgIGlmIG10aW1lIDwgZGF0ZXRpbWUubm93KCkgLSByZWJ1aWxk
X3RpbWU6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgbG9nZ2VyLmluZm8oIlNraXBwaW5nIG1h
bmlmZXN0IGRvd25sb2FkIGJlY2F1c2UgZXhpc3RpbmcgZmlsZSBpcyByZWNlbnQiKQorICAgIHJl
dHVybiBGYWxzZQorCisKK2RlZiBnaXRfY29tbWl0cyhyZXBvX3Jvb3QpOgorICAgIGdpdCA9IEdp
dC5nZXRfZnVuYyhyZXBvX3Jvb3QpCisgICAgcmV0dXJuIFtpdGVtIGZvciBpdGVtIGluIGdpdCgi
bG9nIiwgIi0tZm9ybWF0PSVIIiwgIi1uNTAiKS5zcGxpdCgiXG4iKSBpZiBpdGVtXQorCisKK2Rl
ZiBnaXRodWJfdXJsKGNvbW1pdHMpOgorICAgIHRyeToKKyAgICAgICAgcmVzcCA9IHVybG9wZW4o
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWxl
YXNlcyIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IGlmIHJlc3AuY29kZSAhPSAyMDA6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB0cnk6Cisg
ICAgICAgIHJlbGVhc2VzID0ganNvbi5sb2FkKHJlc3AuZnApCisgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJSZXNwb25zZSB3YXMgbm90IHZhbGlkIEpTT04i
KQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZmFsbGJhY2sgPSBOb25lCisgICAgZm9yIHJl
bGVhc2UgaW4gcmVsZWFzZXM6CisgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAg
ICAgICAgIGZvciBpdGVtIGluIHJlbGVhc2VbImFzc2V0cyJdOgorICAgICAgICAgICAgICAgIGlm
IGl0ZW1bIm5hbWUiXSA9PSAiTUFOSUZFU1QtJXMuanNvbi5neiIgJSBjb21taXQ6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBpdGVtWyJicm93c2VyX2Rvd25sb2FkX3VybCJdCisgICAgICAg
ICAgICAgICAgZWxpZiBpdGVtWyJuYW1lIl0gPT0gIk1BTklGRVNULmpzb24uZ3oiIGFuZCBub3Qg
ZmFsbGJhY2s6CisgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrID0gaXRlbVsiYnJvd3Nlcl9k
b3dubG9hZF91cmwiXQorICAgIGlmIGZhbGxiYWNrOgorICAgICAgICBsb2dnZXIuaW5mbygiQ2Fu
J3QgZmluZCBhIGNvbW1pdC1zcGVjaWZpYyBtYW5pZmVzdCBzbyBqdXN0IHVzaW5nIHRoZSBtb3N0
IHJlY2VudCBvbmUiKQorICAgICAgICByZXR1cm4gZmFsbGJhY2sKKworCitkZWYgZG93bmxvYWRf
bWFuaWZlc3QobWFuaWZlc3RfcGF0aCwgY29tbWl0c19mdW5jLCB1cmxfZnVuYywgZm9yY2U9RmFs
c2UpOgorICAgIGlmIG5vdCBmb3JjZSBhbmQgbm90IHNob3VsZF9kb3dubG9hZChtYW5pZmVzdF9w
YXRoKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBjb21taXRzID0gY29tbWl0c19mdW5j
KCkKKworICAgIHVybCA9IHVybF9mdW5jKGNvbW1pdHMpCisgICAgaWYgbm90IHVybDoKKyAgICAg
ICAgbG9nZ2VyLndhcm5pbmcoIk5vIGdlbmVyYXRlZCBtYW5pZmVzdCBmb3VuZCIpCisgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIG1hbmlmZXN0IGZy
b20gJXMiICUgdXJsKQorICAgIHRyeToKKyAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQorICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBw
cmVnZW5lcmF0ZWQgbWFuaWZlc3QgZmFpbGVkIikKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICBpZiByZXNwLmNvZGUgIT0gMjAwOgorICAgICAgICBsb2dnZXIud2FybmluZygiRG93bmxvYWRp
bmcgcHJlZ2VuZXJhdGVkIG1hbmlmZXN0IGZhaWxlZDsgZ290IEhUVFAgc3RhdHVzICVkIiAlCisg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3AuY29kZSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBnemYgPSBnemlwLkd6aXBGaWxlKGZpbGVvYmo9aW8uQnl0ZXNJTyhyZXNwLnJlYWQoKSkp
CisKKyAgICB0cnk6CisgICAgICAgIGRlY29tcHJlc3NlZCA9IGd6Zi5yZWFkKCkKKyAgICBleGNl
cHQgSU9FcnJvcjoKKyAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBkZWNvbXByZXNz
IGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgdHJ5OgorICAg
ICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53
cml0ZShkZWNvbXByZXNzZWQpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgbG9nZ2Vy
Lndhcm5pbmcoIkZhaWxlZCB0byB3cml0ZSBtYW5pZmVzdCIpCisgICAgICAgIHJldHVybiBGYWxz
ZQorICAgIGxvZ2dlci5pbmZvKCJNYW5pZmVzdCBkb3dubG9hZGVkIikKKyAgICByZXR1cm4gVHJ1
ZQorCisKK2RlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1l
bnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICItcCIsICItLXBh
dGgiLCB0eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS10ZXN0cy1yb290IiwgdHlwZT1hYnNfcGF0
aCwgZGVmYXVsdD13cHRfcm9vdCwgaGVscD0iUGF0aCB0byByb290IG9mIHRlc3RzLiIpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tZm9yY2UiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLAorICAgICAgICBoZWxwPSJBbHdheXMgZG93bmxvYWQsIGV2ZW4gaWYgdGhlIGV4aXN0aW5n
IG1hbmlmZXN0IGlzIHJlY2VudCIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBkb3dubG9h
ZF9mcm9tX2dpdGh1YihwYXRoLCB0ZXN0c19yb290LCBmb3JjZT1GYWxzZSk6CisgICAgcmV0dXJu
IGRvd25sb2FkX21hbmlmZXN0KHBhdGgsIGxhbWJkYTogZ2l0X2NvbW1pdHModGVzdHNfcm9vdCks
IGdpdGh1Yl91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPWZvcmNlKQor
CisKK2RlZiBydW4oKiprd2FyZ3MpOgorICAgIGlmIGt3YXJnc1sicGF0aCJdIGlzIE5vbmU6Cisg
ICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVT
VC5qc29uIikKKyAgICBlbHNlOgorICAgICAgICBwYXRoID0ga3dhcmdzWyJwYXRoIl0KKyAgICBz
dWNjZXNzID0gZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwga3dhcmdzWyJ0ZXN0c19yb290Il0s
IGt3YXJnc1siZm9yY2UiXSkKKyAgICByZXR1cm4gMCBpZiBzdWNjZXNzIGVsc2UgMQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC9pdGVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CmluZGV4IDYxYmU0NDQzYjQwMjFhN2RmZjAzZjcz
NWMxNTg3ODY3MTYzNjRhMWYuLjA2YWUzYzIzNmU2MTcwNDdmMzA4YTVhODY0NGU5NGY5YWZkMTc5
MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKQEAgLTEwMiwxNyArMTAy
LDIwIEBAIGNsYXNzIFVSTE1hbmlmZXN0SXRlbShNYW5pZmVzdEl0ZW0pOgogY2xhc3MgVGVzdGhh
cm5lc3NUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CiAgICAgaXRlbV90eXBlID0gInRlc3RoYXJuZXNz
IgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxlLCB1cmwsIHVybF9iYXNlPSIv
IiwgdGltZW91dD1Ob25lLCBtYW5pZmVzdD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
c291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9Ii8iLCB0aW1lb3V0PU5vbmUsIHRlc3Rkcml2ZXI9
RmFsc2UsIG1hbmlmZXN0PU5vbmUpOgogICAgICAgICBVUkxNYW5pZmVzdEl0ZW0uX19pbml0X18o
c2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9dXJsX2Jhc2UsIG1hbmlmZXN0PW1hbmlm
ZXN0KQogICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYudGVzdGRy
aXZlciA9IHRlc3Rkcml2ZXIKIAogICAgIGRlZiBtZXRhX2tleShzZWxmKToKLSAgICAgICAgcmV0
dXJuIChzZWxmLnRpbWVvdXQsKQorICAgICAgICByZXR1cm4gKHNlbGYudGltZW91dCwgc2VsZi50
ZXN0ZHJpdmVyKQogCiAgICAgZGVmIHRvX2pzb24oc2VsZik6CiAgICAgICAgIHJ2ID0gVVJMTWFu
aWZlc3RJdGVtLnRvX2pzb24oc2VsZikKICAgICAgICAgaWYgc2VsZi50aW1lb3V0IGlzIG5vdCBO
b25lOgogICAgICAgICAgICAgcnZbLTFdWyJ0aW1lb3V0Il0gPSBzZWxmLnRpbWVvdXQKKyAgICAg
ICAgaWYgc2VsZi50ZXN0ZHJpdmVyOgorICAgICAgICAgICAgcnZbLTFdWyJ0ZXN0ZHJpdmVyIl0g
PSBzZWxmLnRlc3Rkcml2ZXIKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBAY2xhc3NtZXRob2QK
QEAgLTEyNCw2ICsxMjcsNyBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVVJMTWFuaWZlc3RJdGVt
KToKICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9
bWFuaWZlc3QudXJsX2Jhc2UsCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD1leHRyYXMuZ2V0
KCJ0aW1lb3V0IiksCisgICAgICAgICAgICAgICAgICAgdGVzdGRyaXZlcj1ib29sKGV4dHJhcy5n
ZXQoInRlc3Rkcml2ZXIiKSksCiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3Qp
CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkKaW5kZXggYjE1
Mzc5OGQ2Zjk2YjBiODBlY2NkN2Q1NDM5YjVmOTk1ZWFlZGM4ZS4uOGNlZWIzODYwNTJjOTQxZjAw
MTI5MzVjOGRiYjM2MzY5ZGRjYTI0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0
L21hbmlmZXN0LnB5CkBAIC0yLDcgKzIsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBv
cnQgcmUKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Ci1mcm9tIHNpeCBpbXBv
cnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzLCB2aWV3a2V5cworZnJvbSBzaXggaW1wb3J0IGl0ZXJp
dGVtcywgaXRlcnZhbHVlcywgdmlld2tleXMsIHN0cmluZ190eXBlcwogCiBmcm9tIC5pdGVtIGlt
cG9ydCBNYW51YWxUZXN0LCBXZWJkcml2ZXJTcGVjVGVzdCwgU3R1YiwgUmVmVGVzdE5vZGUsIFJl
ZlRlc3QsIFRlc3RoYXJuZXNzVGVzdCwgU3VwcG9ydEZpbGUsIENvbmZvcm1hbmNlQ2hlY2tlclRl
c3QsIFZpc3VhbFRlc3QKIGZyb20gLmxvZyBpbXBvcnQgZ2V0X2xvZ2dlcgpAQCAtMjAsMTQgKzIw
LDYgQEAgY2xhc3MgTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2goTWFuaWZlc3RFcnJvcik6CiAgICAg
cGFzcwogCiAKLWRlZiBzb3VyY2VmaWxlX2l0ZW1zKGFyZ3MpOgotICAgIHRlc3RzX3Jvb3QsIHVy
bF9iYXNlLCByZWxfcGF0aCwgc3RhdHVzID0gYXJncwotICAgIHNvdXJjZV9maWxlID0gU291cmNl
RmlsZSh0ZXN0c19yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfcGF0aCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UpCi0gICAgcmV0dXJuIHJlbF9w
YXRoLCBzb3VyY2VfZmlsZS5tYW5pZmVzdF9pdGVtcygpCi0KLQogY2xhc3MgTWFuaWZlc3Qob2Jq
ZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2U9Ii8iKToKICAgICAgICAgYXNz
ZXJ0IHVybF9iYXNlIGlzIG5vdCBOb25lCkBAIC05OCw2ICs5MCw4IEBAIGNsYXNzIE1hbmlmZXN0
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9IFRydWUKICAgICAg
ICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFuaWZlc3Rf
aXRlbXMgPSBvbGRfdHlwZSwgc2VsZi5fZGF0YVtvbGRfdHlwZV1bcmVsX3BhdGhdCisgICAgICAg
ICAgICAgICAgaWYgb2xkX3R5cGUgaW4gKCJyZWZ0ZXN0IiwgInJlZnRlc3Rfbm9kZSIpIGFuZCBu
ZXdfdHlwZSAhPSBvbGRfdHlwZToKKyAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9jaGFuZ2Vz
ID0gVHJ1ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFu
aWZlc3RfaXRlbXMgPSBzb3VyY2VfZmlsZS5tYW5pZmVzdF9pdGVtcygpCiAKQEAgLTIyMSw3ICsy
MTUsNyBAQCBkZWYgbG9hZCh0ZXN0c19yb290LCBtYW5pZmVzdCk6CiAgICAgbG9nZ2VyID0gZ2V0
X2xvZ2dlcigpCiAKICAgICAjICJtYW5pZmVzdCIgaXMgYSBwYXRoIG9yIGZpbGUtbGlrZSBvYmpl
Y3QuCi0gICAgaWYgaXNpbnN0YW5jZShtYW5pZmVzdCwgYmFzZXN0cmluZyk6CisgICAgaWYgaXNp
bnN0YW5jZShtYW5pZmVzdCwgc3RyaW5nX3R5cGVzKToKICAgICAgICAgaWYgb3MucGF0aC5leGlz
dHMobWFuaWZlc3QpOgogICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJPcGVuaW5nIG1hbmlmZXN0
IGF0ICVzIiAlIG1hbmlmZXN0KQogICAgICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3VyY2Vm
aWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5CmluZGV4IGJmNzJmNDViMzUxN2IxZjFmNTMzNjcyNGEz
MWVjMjc4NTE2MWYwZWUuLjA5M2ZjMmJkNDcwMmY3OGY5YTBhYmM3NzlhNWU3M2E1OTU5NzMwZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKQEAgLTU0
LDggKzU0LDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICAgICAgICAgInho
dG1sIjpsYW1iZGEgeDpFbGVtZW50VHJlZS5wYXJzZSh4LCBYTUxQYXJzZXIuWE1MUGFyc2VyKCkp
LAogICAgICAgICAgICAgICAgInN2ZyI6bGFtYmRhIHg6RWxlbWVudFRyZWUucGFyc2UoeCwgWE1M
UGFyc2VyLlhNTFBhcnNlcigpKX0KIAotICAgIHJvb3RfZGlyX25vbl90ZXN0ID0gc2V0KFsiY29t
bW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndvcmstaW4tcHJvZ3Jlc3MiXSkK
KyAgICByb290X2Rpcl9ub25fdGVzdCA9IHNldChbImNvbW1vbiJdKQogCiAgICAgZGlyX25vbl90
ZXN0ID0gc2V0KFsicmVzb3VyY2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwb3J0
IiwKQEAgLTYzLDggKzYyLDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgZGly
X3BhdGhfbm9uX3Rlc3QgPSB7KCJjc3MyMSIsICJhcmNoaXZlIiksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJjc3MiLCAiQ1NTMiIsICJhcmNoaXZlIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgKCJjc3MiLCAiY29tbW9uIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3Mi
LCAid29yay1pbi1wcm9ncmVzcyIpfQorICAgICAgICAgICAgICAgICAgICAgICAgICgiY3NzIiwg
ImNvbW1vbiIpfQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHJlbF9wYXRo
LCB1cmxfYmFzZSwgY29udGVudHM9Tm9uZSk6CiAgICAgICAgICIiIk9iamVjdCByZXByZXNlbnRp
bmcgYSBmaWxlIGluIGEgc291cmNlIHRyZWUuCkBAIC0zODIsNiArMzgwLDIwIEBAIGNsYXNzIFNv
dXJjZUZpbGUob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gcnYKIAorICAgIEBjYWNoZWRfcHJv
cGVydHkKKyAgICBkZWYgdGVzdGRyaXZlcl9ub2RlcyhzZWxmKToKKyAgICAgICAgIiIiTGlzdCBv
ZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGlu
ZyBhCisgICAgICAgIHRlc3Rkcml2ZXIuanMgc2NyaXB0IiIiCisgICAgICAgIHJldHVybiBzZWxm
LnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0Bz
cmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyddIikKKworICAgIEBjYWNoZWRfcHJvcGVydHkK
KyAgICBkZWYgaGFzX3Rlc3Rkcml2ZXIoc2VsZik6CisgICAgICAgICIiIkJvb2xlYW4gaW5kaWNh
dGluZyB3aGV0aGVyIHRoZSBmaWxlIGNvbnRlbnQgcmVwcmVzZW50cyBhCisgICAgICAgIHRlc3Ro
YXJuZXNzLmpzIHRlc3QiIiIKKyAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnRlc3Rkcml2ZXJfbm9k
ZXMpCisKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHJlZnRlc3Rfbm9kZXMoc2VsZik6
CiAgICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0
byBub2RlcyByZXByZXNlbnRpbmcgYQpAQCAtNTIzLDkgKzUzNSwxMCBAQCBjbGFzcyBTb3VyY2VG
aWxlKG9iamVjdCk6CiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNfdGVzdGhhcm5lc3M6
CiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNzVGVzdC5pdGVtX3R5cGUsIFtdCisgICAgICAg
ICAgICB0ZXN0ZHJpdmVyID0gc2VsZi5oYXNfdGVzdGRyaXZlcgogICAgICAgICAgICAgZm9yIHZh
cmlhbnQgaW4gc2VsZi50ZXN0X3ZhcmlhbnRzOgogICAgICAgICAgICAgICAgIHVybCA9IHNlbGYu
dXJsICsgdmFyaWFudAotICAgICAgICAgICAgICAgIHJ2WzFdLmFwcGVuZChUZXN0aGFybmVzc1Rl
c3Qoc2VsZiwgdXJsLCB0aW1lb3V0PXNlbGYudGltZW91dCkpCisgICAgICAgICAgICAgICAgcnZb
MV0uYXBwZW5kKFRlc3RoYXJuZXNzVGVzdChzZWxmLCB1cmwsIHRpbWVvdXQ9c2VsZi50aW1lb3V0
LCB0ZXN0ZHJpdmVyPXRlc3Rkcml2ZXIpKQogCiAgICAgICAgIGVsaWYgc2VsZi5jb250ZW50X2lz
X3JlZl9ub2RlOgogICAgICAgICAgICAgcnYgPSAoUmVmVGVzdE5vZGUuaXRlbV90eXBlLApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0
LnB5CmluZGV4IGU5YTY3YjgyNTZiOGMzYzM1NmE0Nzc0NGMwZTg4MDgwMWVjNGZjNDIuLjA3NWQ2
ODkyZGI3NmY4M2FjMGJlZDQ2Zjg0YjU4M2Y4Y2M4ZDFlOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMv
dGVzdF9tYW5pZmVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkKQEAgLTIzMiw2
ICsyMzIsNTIgQEAgZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVfcmVt
b3ZlKCk6CiAgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QyLnBhdGgsIHt0
ZXN0Mn0pXQogCiAKK2RlZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW5fdXBkYXRlX3Rl
c3RfdHlwZSgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCisKKyAgICBzMSA9IFNvdXJj
ZUZpbGVXaXRoVGVzdCgidGVzdCIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdC1yZWYi
LCAiPT0iKV0pCisKKyAgICBhc3NlcnQgbS51cGRhdGUoW3MxXSkgaXMgVHJ1ZQorCisgICAgdGVz
dDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBb
KCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSldCisKKyAgICAjIHRlc3QgYmVjb21lcyBh
IHRlc3RoYXJuZXNzIHRlc3QgKGhhc2ggY2hhbmdlIGJlY2F1c2UgdGhhdCBpcyBkZXRlcm1pbmVk
CisgICAgIyBiYXNlZCBvbiB0aGUgZmlsZSBjb250ZW50cykuIFRoZSB1cGRhdGVkIG1hbmlmZXN0
IHNob3VsZCBub3QgaW5jbHVkZXMgdGhlCisgICAgIyBvbGQgcmVmdGVzdC4KKyAgICBzMiA9IFNv
dXJjZUZpbGVXaXRoVGVzdCgidGVzdCIsICIxIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCisg
ICAgYXNzZXJ0IG0udXBkYXRlKFtzMl0pIGlzIFRydWUKKworICAgIHRlc3QyID0gczIubWFuaWZl
c3RfaXRlbXMoKVsxXVswXQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygidGVzdGhhcm5lc3Mi
LCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKworCitkZWYgdGVzdF9yZWZ0ZXN0X2NvbXB1dGF0aW9u
X2NoYWluX3VwZGF0ZV9ub2RlX2NoYW5nZSgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgp
CisKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdCwgWygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0
ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgWygiL3Rlc3QzIiwgIj09IildKQorCisg
ICAgYXNzZXJ0IG0udXBkYXRlKFtzMSwgczJdKSBpcyBUcnVlCisKKyAgICB0ZXN0MSA9IHMxLm1h
bmlmZXN0X2l0ZW1zKClbMV1bMF0KKyAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1b
MF0KKworICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVz
dDF9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRo
LCB7dGVzdDJ9KV0KKworICAgICN0ZXN0MiBjaGFuZ2VzIHRvIHN1cHBvcnQgdHlwZQorICAgIHMy
ID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIxIio0MCwgaXRlbS5TdXBwb3J0RmlsZSkK
KworICAgIGFzc2VydCBtLnVwZGF0ZShbczEsczJdKSBpcyBUcnVlCisgICAgdGVzdDMgPSBzMi5t
YW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0
IiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCisgICAgICAgICAgICAgICAgICAgICAgICgic3VwcG9y
dCIsIHRlc3QzLnBhdGgsIHt0ZXN0M30pXQorCisKIGRlZiB0ZXN0X2l0ZXJwYXRoKCk6CiAgICAg
bSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJj
ZWZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQppbmRleCA3M2VmNDEwYTMwZDg3
NzI4NzJiZjQzZWE1NWI2NDNlZjZhMjMzZGQ4Li41Nzg2M2JmNzNjNGFlZjU4YmUxMTM2YjU2NWYy
MDVlN2M1NjM5NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQpAQCAtMjcsNyArMjcsNiBAQCBkZWYgaXRlbXMo
cyk6CiAgICAgImNvbW1vbi90ZXN0Lmh0bWwiLAogICAgICJzdXBwb3J0L3Rlc3QuaHRtbCIsCiAg
ICAgImNzczIxL2FyY2hpdmUvdGVzdC5odG1sIiwKLSAgICAid29yay1pbi1wcm9ncmVzcy90ZXN0
Lmh0bWwiLAogICAgICJjb25mb3JtYW5jZS1jaGVja2Vycy90ZXN0Lmh0bWwiLAogICAgICJjb25m
b3JtYW5jZS1jaGVja2Vycy9SRUFETUUubWQiLAogICAgICJjb25mb3JtYW5jZS1jaGVja2Vycy9o
dG1sL01ha2VmaWxlIiwKQEAgLTM4LDcgKzM3LDYgQEAgZGVmIGl0ZW1zKHMpOgogICAgICJmb28v
dGVzdC1zdXBwb3J0Lmh0bWwiLAogICAgICJjc3MvY29tbW9uL3Rlc3QuaHRtbCIsCiAgICAgImNz
cy9DU1MyL2FyY2hpdmUvdGVzdC5odG1sIiwKLSAgICAiY3NzL3dvcmstaW4tcHJvZ3Jlc3MvdGVz
dC5odG1sIiwKIF0pCiBkZWYgdGVzdF9uYW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKICAgICBz
ID0gY3JlYXRlKHJlbF9wYXRoKQpAQCAtNTQsNyArNTIsNiBAQCBkZWYgdGVzdF9uYW1lX2lzX25v
bl90ZXN0KHJlbF9wYXRoKToKICAgICAiZm9vL2NvbmZvcm1hbmNlLWNoZWNrZXJzL3Rlc3QuaHRt
bCIsCiAgICAgImZvby9fY2VydHMvdGVzdC5odG1sIiwKICAgICAiZm9vL2NzczIxL2FyY2hpdmUv
dGVzdC5odG1sIiwKLSAgICAiZm9vL3dvcmstaW4tcHJvZ3Jlc3MvdGVzdC5odG1sIiwKICAgICAi
Zm9vL0NTUzIvYXJjaGl2ZS90ZXN0Lmh0bWwiLAogICAgICJjc3MvY3NzMjEvYXJjaGl2ZS90ZXN0
Lmh0bWwiLAogXSkKQEAgLTQ1Miw2ICs0NDksMjYgQEAgZGVmIHRlc3RfdGVzdGhhcm5lc3NfZXh0
KGZpbGVuYW1lKToKICAgICBhc3NlcnQgaXRlbXMocykgPT0gW10KIAogCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwiXSkKK2RlZiB0ZXN0X3Rlc3Rkcml2ZXIo
ZXh0KToKKyAgICBjb250ZW50ID0gYiI8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anM+PC9zY3JpcHQ+IgorCisgICAgZmlsZW5hbWUgPSAiaHRtbC90ZXN0LiIgKyBleHQKKyAgICBz
ID0gY3JlYXRlKGZpbGVuYW1lLCBjb250ZW50KQorCisgICAgYXNzZXJ0IHMuaGFzX3Rlc3Rkcml2
ZXIKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwiXSkK
K2RlZiB0ZXN0X3JlbGF0aXZlX3Rlc3Rkcml2ZXIoZXh0KToKKyAgICBjb250ZW50ID0gYiI8c2Ny
aXB0IHNyYz0uLi9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4iCisKKyAgICBmaWxl
bmFtZSA9ICJodG1sL3Rlc3QuIiArIGV4dAorICAgIHMgPSBjcmVhdGUoZmlsZW5hbWUsIGNvbnRl
bnQpCisKKyAgICBhc3NlcnQgbm90IHMuaGFzX3Rlc3Rkcml2ZXIKKworCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwiXSkKIGRlZiB0ZXN0X3JlZnRlc3Rfbm9k
ZShleHQpOgogICAgIGNvbnRlbnQgPSBiIjxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZi5odG1sPiIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKaW5kZXggMGJiYmVmYjkxMTFj
MDc3NTg5ZDJmYWIyM2M3ZjI4OWY1MzAwNjdiOS4uMjljODAxMDU3MzVkNGVhMGVkYzNmYTU2NmVl
NWU2ODk5NmQ4MjRkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkK
QEAgLTcsMTMgKzcsMTYgQEAgaW1wb3J0IHN5cwogaW1wb3J0IG1hbmlmZXN0CiBmcm9tIC4gaW1w
b3J0IHZjcwogZnJvbSAubG9nIGltcG9ydCBnZXRfbG9nZ2VyCitmcm9tIC5kb3dubG9hZCBpbXBv
cnQgZG93bmxvYWRfZnJvbV9naXRodWIKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XykKIAogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBh
cmRpciwgb3MucGFyZGlyKSkKIAorbG9nZ2VyID0gZ2V0X2xvZ2dlcigpCiAKIGRlZiB1cGRhdGUo
dGVzdHNfcm9vdCwgbWFuaWZlc3QsIHdvcmtpbmdfY29weT1GYWxzZSk6CisgICAgbG9nZ2VyLmlu
Zm8oIlVwZGF0aW5nIG1hbmlmZXN0IikKICAgICB0cmVlID0gTm9uZQogICAgIGlmIG5vdCB3b3Jr
aW5nX2NvcHk6CiAgICAgICAgIHRyZWUgPSB2Y3MuR2l0LmZvcl9wYXRoKHRlc3RzX3Jvb3QsIG1h
bmlmZXN0LnVybF9iYXNlKQpAQCAtMjksNyArMzIsOSBAQCBkZWYgdXBkYXRlX2Zyb21fY2xpKCoq
a3dhcmdzKToKICAgICBhc3NlcnQgdGVzdHNfcm9vdCBpcyBub3QgTm9uZQogCiAgICAgbSA9IE5v
bmUKLSAgICBsb2dnZXIgPSBnZXRfbG9nZ2VyKCkKKworICAgIGlmIGt3YXJnc1siZG93bmxvYWQi
XToKKyAgICAgICAgZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwgdGVzdHNfcm9vdCkKIAogICAg
IGlmIG5vdCBrd2FyZ3MuZ2V0KCJyZWJ1aWxkIiwgRmFsc2UpOgogICAgICAgICB0cnk6CkBAIC0z
Nyw4ICs0Miw2IEBAIGRlZiB1cGRhdGVfZnJvbV9jbGkoKiprd2FyZ3MpOgogICAgICAgICBleGNl
cHQgbWFuaWZlc3QuTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2g6CiAgICAgICAgICAgICBsb2dnZXIu
aW5mbygiTWFuaWZlc3QgdmVyc2lvbiBjaGFuZ2VkLCByZWJ1aWxkaW5nIikKICAgICAgICAgICAg
IG0gPSBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygiVXBkYXRp
bmcgbWFuaWZlc3QiKQogCiAgICAgaWYgbSBpcyBOb25lOgogICAgICAgICBtID0gbWFuaWZlc3Qu
TWFuaWZlc3Qoa3dhcmdzWyJ1cmxfYmFzZSJdKQpAQCAtNjksNiArNzIsOSBAQCBkZWYgY3JlYXRl
X3BhcnNlcigpOgogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItLXVybC1iYXNl
IiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9Ii8iLAogICAgICAgICBoZWxwPSJCYXNlIHVybCB0
byB1c2UgYXMgdGhlIG1vdW50IHBvaW50IGZvciB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0LiIpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tbm8tZG93bmxvYWQiLCBkZXN0PSJk
b3dubG9hZCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PVRydWUsCisgICAgICAgIGhl
bHA9Ik5ldmVyIGF0dGVtcHQgdG8gZG93bmxvYWQgdGhlIG1hbmlmZXN0LiIpCiAgICAgcmV0dXJu
IHBhcnNlcgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkKaW5kZXggMDEwYmNl
ODFhOWNjNTc4MjdlOWJiN2E1MWNkMWQxOTQ1NGNlNzk3MS4uOGQ1ZTc4NTRlYjZjOGQ1ZmRiOTIw
OGZjZjY2ZjY0OTI5NWQ1YjkyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkK
QEAgLTE0LDcgKzE0LDExIEBAIGNsYXNzIEdpdChvYmplY3QpOgogICAgIGRlZiBnZXRfZnVuYyhy
ZXBvX3BhdGgpOgogICAgICAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgogICAgICAgICAgICAgZnVs
bF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGFyZ3MpCi0gICAgICAgICAgICByZXR1cm4gc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1zdWJw
cm9jZXNzLlNURE9VVCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1z
dWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAg
ICAgICAgICAgICAgZnVsbF9jbWRbMF0gPSAiZ2l0LmJhdCIKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVy
cj1zdWJwcm9jZXNzLlNURE9VVCkKICAgICAgICAgcmV0dXJuIGdpdAogCiAgICAgQGNsYXNzbWV0
aG9kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZwppbmRl
eCA3NzgxYmY4YzE1MzZkNGJmOTNiOWE2NTBhYjZiYzNmYmIyYTZlOGE0Li5lY2NkY2E1MjUzM2U4
YTAwZTNjMTczODdjMzhkYThiZGU1NGE4NTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTE3LDYgKzE3LDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L1hNTFBhcnNlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvX19pbml0X18ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRzLmpzb24KKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2Rv
d25sb2FkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC9pdGVtLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21hbmlmZXN0LnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
dGVzdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5dGVzdC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUyZTQ2NTU5OGFiOTdmYWE2YjcxODg1OTYxN2Yy
MTk0MTQxZmJiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQpAQCAtMCwwICsxLDMgQEAKK1tweXRl
c3RdCitub3JlY3Vyc2VkaXJzID0gLioge2FyY2h9ICouZWdnIGh0bWw1bGliIHRoaXJkX3BhcnR5
IHB5d2Vic29ja2V0IHNpeCB3cHQgd3B0cnVubmVyCit4ZmFpbF9zdHJpY3Q9dHJ1ZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9DT05UUklCVVRJTkcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0NPTlRSSUJVVElORwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NDE1ZjVkMDExZjNlMjJiZTU1NGZmNzU1YzA3ODA1MjIxM2FmYTkwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9DT05UUklCVVRJTkcKQEAgLTAsMCArMSwxMSBAQAorRm9yIGluc3RydWN0aW9ucyBm
b3IgY29udHJpYnV0aW5nIGNvZGUsIHBsZWFzZSByZWFkOgoraHR0cHM6Ly9naXRodWIuY29tL2dv
b2dsZS9weXdlYnNvY2tldC93aWtpL0NvZGVSZXZpZXdJbnN0cnVjdGlvbgorCitZb3UgbXVzdCBj
b21wbGV0ZSB0aGUgSW5kaXZpZHVhbCBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudC4KK2h0
dHBzOi8vY2xhLmRldmVsb3BlcnMuZ29vZ2xlLmNvbS9hYm91dC9nb29nbGUtaW5kaXZpZHVhbAor
WW91IGNhbiBkbyB0aGlzIG9ubGluZSwgYW5kIGl0IG9ubHkgdGFrZXMgYSBtaW51dGUuCisKK0lm
IHlvdSBhcmUgY29udHJpYnV0aW5nIG9uIGJlaGFsZiBvZiBhIGNvcnBvcmF0aW9uLCB5b3UgbXVz
dCBmaWxsIG91dCB0aGUKK0NvcnBvcmF0ZSBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudAor
aHR0cHM6Ly9jbGEuZGV2ZWxvcGVycy5nb29nbGUuY29tL2Fib3V0L2dvb2dsZS1jb3Jwb3JhdGUK
K2FuZCBzZW5kIGl0IHRvIHVzIGFzIGRlc2NyaWJlZCBvbiB0aGF0IHBhZ2UuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg5ZDAyZTRjZDA5MjM3
ODA2ZjdkZjhiZWFlY2M2OTE1MjczNDI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5T
RQpAQCAtMCwwICsxLDI4IEBACitDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KK0FsbCByaWdo
dHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0OgorCisgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgoraW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorZGlzdHJpYnV0aW9uLgorICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KK3RoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKK0EgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCitPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L01BTklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTI1Njg4MmM1NmZl
YjcyODEyYzk5YzhhODM3OTk3OWU2M2U0YTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5J
RkVTVC5pbgpAQCAtMCwwICsxLDYgQEAKK2luY2x1ZGUgQ09QWUlORworaW5jbHVkZSBNQU5JRkVT
VC5pbgoraW5jbHVkZSBSRUFETUUKK3JlY3Vyc2l2ZS1pbmNsdWRlIGV4YW1wbGUgKi5weQorcmVj
dXJzaXZlLWluY2x1ZGUgbW9kX3B5d2Vic29ja2V0ICoucHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRl
c3QgKi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOGM3NThmNWVlZjRjNzMxODkyNjQxZGUzMzNlNWQ3NWQxMGEzZTU2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9SRUFETUUKQEAgLTAsMCArMSwxNyBAQAorSU5TVEFMTAorCitUbyBpbnN0YWxs
IHRoaXMgcGFja2FnZSB0byB0aGUgc3lzdGVtLCBydW4gdGhpczoKKyQgcHl0aG9uIHNldHVwLnB5
IGJ1aWxkCiskIHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKKworVG8gaW5zdGFsbCB0aGlz
IHBhY2thZ2UgYXMgYSBub3JtYWwgdXNlciwgcnVuIHRoaXMgaW5zdGVhZDoKKyQgcHl0aG9uIHNl
dHVwLnB5IGJ1aWxkCiskIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0tdXNlcgorCitMQVVOQ0gK
KworVG8gdXNlIHB5d2Vic29ja2V0IGFzIEFwYWNoZSBtb2R1bGUsIHJ1biB0aGlzIHRvIHJlYWQg
dGhlIGRvY3VtZW50OgorJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQKKworVG8gdXNlIHB5d2Vic29j
a2V0IGFzIHN0YW5kYWxvbmUgc2VydmVyLCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVudDoK
KyQgcHlkb2MgbW9kX3B5d2Vic29ja2V0LnN0YW5kYWxvbmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVB
RE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU4ZTkxMGE4NGVmOTk1NjY5ZWEw
NzIzZjFiYzdmMjk5MzQ2NjU4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1kCkBA
IC0wLDAgKzEsOCBAQAorCisjIHB5d2Vic29ja2V0ICMKKworVGhlIHB5d2Vic29ja2V0IHByb2pl
Y3QgYWltcyB0byBwcm92aWRlIGEgW1dlYlNvY2tldF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL3JmYzY0NTUpIHN0YW5kYWxvbmUgc2VydmVyIGFuZCBhIFdlYlNvY2tldCBleHRlbnNpb24g
Zm9yIFtBcGFjaGUgSFRUUCBTZXJ2ZXJdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pLCBtb2Rc
X3B5d2Vic29ja2V0LgorCitweXdlYnNvY2tldCBpcyBpbnRlbmRlZCBmb3IgKip0ZXN0aW5nKiog
b3IgKipleHBlcmltZW50YWwqKiBwdXJwb3Nlcy4KKworUGxlYXNlIHNlZSBbV2lraV0oLi4vLi4v
d2lraSkgZm9yIG1vcmUgZGV0YWlscy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9o
YW5kc2hha2Vfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDA4MDIzYTFmZTkxZTJmMjk3N2IxNjNmOTc3ZGFlNjg1MDAwOWFhNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CkBAIC0wLDAg
KzEsNDMgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oCisgICAgICAg
ICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIikKKworCitkZWYgd2Vi
X3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MKKworCisjIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF93c2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYWJvcnRfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYmYwMDVmNmEzN2M2MDllMTZhYmRlNGRm
OTQwMjQyNjhkMGRhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3No
LnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1l
dDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24o
CisgICAgICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSIpCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVu
Y2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODY5Y2Q3ZTFlZTY1M2Q1OWYwNGI4MDJmZjM0YzhkMDgxMzE3Y2E4OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbApAQCAt
MCwwICsxLDEzNCBAQAorPCEtLQorQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCitBbGwgcmln
aHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKK21ldDoKKworICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKK25vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKK2NvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKK2luIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKK2Rpc3RyaWJ1dGlvbi4KKyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
K2NvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCit0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCitBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLS0+CisKKzxodG1sPgor
PGhlYWQ+Cis8dGl0bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJrPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgUFJJTlRfU0laRSA9IHRydWU7CisK
Ky8vIEluaXRpYWwgc2l6ZSBvZiBhcnJheXMuCit2YXIgU1RBUlRfU0laRSA9IDEwICogMTAyNDsK
Ky8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIGFuIGFycmF5IGV4Y2VlZHMgdGhp
cyB0aHJlc2hvbGQuCit2YXIgU1RPUF9USFJFU0hPTEQgPSAxMDAwMDAgKiAxMDI0OworLy8gSWYg
dGhlIHNpemUgb2YgZWFjaCBhcnJheSBpcyBzbWFsbCwgd3JpdGUvcmVhZCB0aGUgYXJyYXkgbXVs
dGlwbGUgdGltZXMKKy8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVz
aG9sZC4KK3ZhciBNSU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0OwordmFyIE1VTFRJUExJRVJTID0g
WzUsIDJdOworCisvLyBSZXBlYXQgYmVuY2htYXJrIGZvciBzZXZlcmFsIHRpbWVzIHRvIG1lYXN1
cmUgcGVyZm9ybWFuY2Ugb2Ygb3B0aW1pemVkCisvLyAoc3VjaCBhcyBKSVQpIHJ1bi4KK3ZhciBS
RVBFQVRfRk9SX1dBUk1VUCA9IDM7CisKK2Z1bmN0aW9uIHdyaXRlQmVuY2htYXJrKHNpemUsIG1p
blRvdGFsKSB7CisgIHZhciB0b3RhbFNpemUgPSAwOworICB3aGlsZSAodG90YWxTaXplIDwgbWlu
VG90YWwpIHsKKyAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisK
KyAgICAvLyBXcml0ZSAnYSdzLgorICAgIGZpbGxBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHg2
MSk7CisKKyAgICB0b3RhbFNpemUgKz0gc2l6ZTsKKyAgfQorICByZXR1cm4gdG90YWxTaXplOwor
fQorCitmdW5jdGlvbiByZWFkQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7CisgIHZhciB0b3Rh
bFNpemUgPSAwOworICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKKyAgICB2YXIgYXJy
YXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICBpZiAoIXZlcmlmeUFycmF5
QnVmZmVyKGFycmF5QnVmZmVyLCAweDAwKSkgeworICAgICAgcXVldWVMb2coJ1ZlcmlmaWNhdGlv
biBmYWlsZWQnKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICB0b3RhbFNpemUgKz0g
c2l6ZTsKKyAgfQorICByZXR1cm4gdG90YWxTaXplOworfQorCitmdW5jdGlvbiBydW5CZW5jaG1h
cmsoYmVuY2htYXJrRnVuY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICBzdG9wVGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAgIG1p
blRvdGFsLAorICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJzLAorICAgICAgICAgICAg
ICAgICAgICAgIG11bHRpcGxpZXJJbmRleCkgeworICB3aGlsZSAoc2l6ZSA8PSBzdG9wVGhyZXNo
b2xkKSB7CisgICAgdmFyIG1heFNwZWVkID0gMDsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
UkVQRUFUX0ZPUl9XQVJNVVA7ICsraSkgeworICAgICAgdmFyIHN0YXJ0VGltZUluTXMgPSBnZXRU
aW1lU3RhbXAoKTsKKworICAgICAgdmFyIHRvdGFsU2l6ZSA9IGJlbmNobWFya0Z1bmN0aW9uKHNp
emUsIG1pblRvdGFsKTsKKworICAgICAgbWF4U3BlZWQgPSBNYXRoLm1heChtYXhTcGVlZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwgc3Rh
cnRUaW1lSW5NcykpOworICAgIH0KKyAgICBxdWV1ZUxvZyhmb3JtYXRSZXN1bHRJbktpQihzaXpl
LCBtYXhTcGVlZCwgUFJJTlRfU0laRSkpOworCisgICAgc2l6ZSAqPSBtdWx0aXBsaWVyc1ttdWx0
aXBsaWVySW5kZXhdOworICAgIG11bHRpcGxpZXJJbmRleCA9IChtdWx0aXBsaWVySW5kZXggKyAx
KSAlIG11bHRpcGxpZXJzLmxlbmd0aDsKKyAgfQorfQorCitmdW5jdGlvbiBydW5CZW5jaG1hcmtz
KCkgeworICBxdWV1ZUxvZygnTWVzc2FnZSBzaXplIGluIEtpQiwgU3BlZWQgaW4ga0IvcycpOwor
CisgIHF1ZXVlTG9nKCdXcml0ZSBiZW5jaG1hcmsnKTsKKyAgcnVuQmVuY2htYXJrKAorICAgICAg
d3JpdGVCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1V
TFRJUExJRVJTLCAwKTsKKyAgcXVldWVMb2coJ0ZpbmlzaGVkJyk7CisKKyAgcXVldWVMb2coJ1Jl
YWQgYmVuY2htYXJrJyk7CisgIHJ1bkJlbmNobWFyaygKKyAgICAgIHJlYWRCZW5jaG1hcmssIFNU
QVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsKKyAg
YWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Cit9CisKK2Z1bmN0aW9uIGluaXQoKSB7CisgIGxvZ0JveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKKworICBxdWV1ZUxvZyh3aW5kb3cubmF2
aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKKworICBhZGRUb0xvZygnU3RhcnRlZC4u
LicpOworCisgIHNldFRpbWVvdXQocnVuQmVuY2htYXJrcywgMCk7Cit9CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorPHRleHRhcmVhCisgICAgaWQ9ImxvZyIg
cm93cz0iNTAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvYmVuY2hfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNjdjYTdkODk1NWZjMTYzZDUwMDFj
ZDg4MTJlNmFlMjBjMTYyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2hf
d3NoLnB5CkBAIC0wLDAgKzEsNjAgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisj
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIkEgc2ltcGxl
IGxvYWQgdGVzdGVyIGZvciBXZWJTb2NrZXQgY2xpZW50cy4KKworQSBjbGllbnQgcHJvZ3JhbSBz
ZW5kcyBhIG1lc3NhZ2UgZm9ybWF0dGVkIGFzICI8dGltZT4gPGNvdW50PiA8bWVzc2FnZT4iIHRv
Cit0aGlzIGhhbmRsZXIuIFRoaXMgaGFuZGxlciBzdGFydHMgc2VuZGluZyB0b3RhbCA8Y291bnQ+
IFdlYlNvY2tldCBtZXNzYWdlcworY29udGFpbmluZyA8bWVzc2FnZT4gZXZlcnkgPHRpbWU+IHNl
Y29uZHMuIDx0aW1lPiBjYW4gYmUgYSBmbG9hdGluZyBwb2ludAordmFsdWUuIDxjb3VudD4gbXVz
dCBiZSBhbiBpbnRlZ2VyIHZhbHVlLgorIiIiCisKKworaW1wb3J0IHRpbWUKKworCitkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcyAgIyBBbHdheXMg
YWNjZXB0LgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAg
bGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgcGFydHMgPSBs
aW5lLnNwbGl0KCcgJykKKyAgICBpZiBsZW4ocGFydHMpICE9IDM6CisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0JhZCBwYXJhbWV0ZXIgZm9ybWF0JykKKyAgICB3YWl0ID0gZmxvYXQocGFydHNb
MF0pCisgICAgY291bnQgPSBpbnQocGFydHNbMV0pCisgICAgbWVzc2FnZSA9IHBhcnRzWzJdCisg
ICAgZm9yIGkgaW4geHJhbmdlKGNvdW50KToKKyAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2Vu
ZF9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgIHRpbWUuc2xlZXAod2FpdCkKKworCisjIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTIzODYzYTk5NTY5NzYzYWI3
OTc2YTdkZTc4MjA1Y2E2MTkyYTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Jl
bmNobWFyay5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8IS0tCitDb3B5cmlnaHQgMjAxMywgR29v
Z2xlIEluYy4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorbWV0OgorCisgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgoraW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ZGlzdHJpYnV0aW9uLgorICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KK3RoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCitPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CistLT4KKworPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWJTb2NrZXQgYmVuY2htYXJrPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InV0
aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgordmFyIGFkZHJlc3NCb3ggPSBudWxsOworCitmdW5jdGlvbiBnZXRDb25maWcoKSB7
CisgIHJldHVybiB7CisgICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAorICAgIHByaW50
U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCisgICAgbnVtU29ja2V0czog
Z2V0SW50RnJvbUlucHV0KCdudW1zb2NrZXRzJyksCisgICAgLy8gSW5pdGlhbCBzaXplIG9mIG1l
c3NhZ2VzLgorICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9u
cycpLAorICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVw
aXRlcmF0aW9ucycpLAorICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUn
KSwKKyAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2Vl
ZHMgdGhpcyB0aHJlc2hvbGQuCisgICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdz
dG9wdGhyZXNob2xkJyksCisgICAgLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBtZXNzYWdlIGlzIHNt
YWxsLCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUgbWVzc2FnZXMKKyAgICAvLyB1bnRpbCB0aGUgc3Vt
IG9mIHNpemVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCisgICAgbWluVG90YWw6IGdldEludEZy
b21JbnB1dCgnbWludG90YWwnKSwKKyAgICBtdWx0aXBsaWVyczogZ2V0RmxvYXRBcnJheUZyb21J
bnB1dCgnbXVsdGlwbGllcnMnKSwKKyAgICB2ZXJpZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNrQm94
KCd2ZXJpZnlkYXRhJyksCisgICAgYWRkVG9Mb2c6IGFkZFRvTG9nLAorICAgIGFkZFRvU3VtbWFy
eTogYWRkVG9TdW1tYXJ5LAorICAgIG1lYXN1cmVWYWx1ZTogbWVhc3VyZVZhbHVlLAorICAgIG5v
dGlmeUFib3J0OiBub3RpZnlBYm9ydAorICB9OworfQorCitmdW5jdGlvbiBvblNlbmRCZW5jaG1h
cmsoKSB7CisgIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBn
ZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3NlbmRCZW5jaG1hcmsnKTsKK30KKworZnVu
Y3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7
CisgIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdyZWNl
aXZlQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7CisgIHZh
ciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNo
ZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9uU3Rv
cCgpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOworICBkb0FjdGlvbihjb25maWcsIGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOworfQorCitmdW5jdGlvbiBpbml0
KCkgeworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsK
KyAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisgIHN1bW1hcnlC
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOworCisgIHZhciBzY2hlbWUg
PSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6ICd3czov
Lyc7CisgIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlvbi5ob3N0
ICsgJy9iZW5jaG1hcmtfaGVscGVyJzsKKworICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVsdEFk
ZHJlc3M7CisKKyAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNh
c2UoKSk7CisgIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2Vy
Q2FzZSgpKTsKKworICBpZiAoISgnV2ViU29ja2V0JyBpbiB3aW5kb3cpKSB7CisgICAgYWRkVG9M
b2coJ1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7CisgIH0KKworICBpbml0V29ya2VyKCdX
ZWJTb2NrZXQnLCAnJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5p
dCgpIj4KKworPGRpdiBpZD0iYmVuY2htYXJrX2RpdiI+CisgIHVybCA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KKyAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9
InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KKyAgPGlucHV0IHR5cGU9ImJ1dHRv
biIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNobWFyaygpIj4KKyAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJvbkJhdGNoQmVuY2htYXJr
KCkiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIgb25jbGljaz0ib25TdG9w
KCkiPgorCisgIDxici8+CisKKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icHJpbnRzaXpl
IiBjaGVja2VkPgorICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50IHNpemUgYW5kIHRpbWUg
cGVyIG1lc3NhZ2U8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlk
YXRhIiBjaGVja2VkPgorICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFi
ZWw+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+CisgIDxsYWJlbCBmb3I9
IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+CisKKyAgPGJyLz4KKworICBQYXJhbWV0ZXJz
OgorCisgIDxici8+CisKKyAgPHRhYmxlPgorICAgIDx0cj4KKyAgICAgIDx0ZD5OdW0gc29ja2V0
czwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1zb2NrZXRzIiB2YWx1
ZT0iMSI+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5OdW1iZXIgb2YgaXRl
cmF0aW9uczwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVyYXRp
b25zIiB2YWx1ZT0iMSI+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5OdW1i
ZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4
dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3RkPgorICAgIDwvdHI+Cisg
ICAgPHRyPgorICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+CisgICAgPC90cj4KKyAg
ICA8dHI+CisgICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KKyAg
ICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5NaW5pbXVtIHRvdGFsPC90ZD4KKyAgICAgIDx0
ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1ZT0iMTAyNDAwMDAwIj48L3Rk
PgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4KKyAgICAg
IDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwgMiI+PC90
ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorPC9kaXY+CisKKzxkaXYgaWQ9ImxvZ19kaXYiPgor
ICA8dGV4dGFyZWEKKyAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUi
IHJlYWRvbmx5PjwvdGV4dGFyZWE+Cis8L2Rpdj4KKzxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4KKyAg
U3VtbWFyeQorICA8dGV4dGFyZWEKKyAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5bGU9
IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgorPC9kaXY+CisKK05vdGU6IEVmZmVj
dCBvZiBSVFQgaXMgbm90IGVsaW1pbmF0ZWQuCisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg1NjQzNWQxZDBkZDc4ZDk3OTRhYTg0YzAyOWM4YWI0ZjczMzllYzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmpzCkBAIC0wLDAgKzEsMjE0
IEBACisvLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl
CisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQK
Ky8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2Jz
ZAorCitpZiAodHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiKSB7CisgIC8vIFJ1
bm5pbmcgb24gYSB3b3JrZXIKKyAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtl
ci5qcycpOworfQorCisvLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KK3ZhciBiZW5j
aG1hcmsgPSB7c3RhcnRUaW1lSW5NczogMH07CisKK3ZhciBzb2NrZXRzID0gW107Cit2YXIgbnVt
RXN0YWJsaXNoZWRTb2NrZXRzID0gMDsKKwordmFyIHRpbWVySUQgPSBudWxsOworCitmdW5jdGlv
biBkZXN0cm95U29ja2V0KHNvY2tldCkgeworICBzb2NrZXQub25vcGVuID0gbnVsbDsKKyAgc29j
a2V0Lm9ubWVzc2FnZSA9IG51bGw7CisgIHNvY2tldC5vbmVycm9yID0gbnVsbDsKKyAgc29ja2V0
Lm9uY2xvc2UgPSBudWxsOworICBzb2NrZXQuY2xvc2UoKTsKK30KKworZnVuY3Rpb24gZGVzdHJv
eUFsbFNvY2tldHMoKSB7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsr
aSkgeworICAgIGRlc3Ryb3lTb2NrZXQoc29ja2V0c1tpXSk7CisgIH0KKyAgc29ja2V0cyA9IFtd
OworfQorCitmdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVw
KSB7CisgIHRpbWVySUQgPSBudWxsOworCisgIHZhciB0b3RhbFNpemUgPSAwOworICB2YXIgdG90
YWxSZXBsaWVkID0gMDsKKworICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBldmVudC5kYXRhLCBz
aXplKSkgeworICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsKKyAgICAgIGNvbmZpZy5ub3RpZnlB
Ym9ydCgpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRvdGFsUmVwbGllZCArPSBzaXpl
OworCisgICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgeworICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFy
ay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCisgICAgICAgIGlzV2FybVVwKTsKKworICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7CisgIH07CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRz
Lmxlbmd0aDsgKytpKSB7CisgICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07CisgICAgc29ja2V0
Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7CisgIH0KKworICB2YXIgZGF0YUFycmF5ID0g
W107CisKKyAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgeworICAgIHZhciBi
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICBmaWxsQXJyYXlCdWZmZXIoYnVm
ZmVyLCAweDYxKTsKKworICAgIGRhdGFBcnJheS5wdXNoKGJ1ZmZlcik7CisgICAgdG90YWxTaXpl
ICs9IHNpemU7CisgIH0KKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFt
cCgpOworCisgIHRvdGFsU2l6ZSA9IDA7CisKKyAgdmFyIHNvY2tldEluZGV4ID0gMDsKKyAgdmFy
IGRhdGFJbmRleCA9IDA7CisgIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsK
KyAgICB2YXIgY29tbWFuZCA9IFsnc2VuZCddOworICAgIGNvbW1hbmQucHVzaChjb25maWcudmVy
aWZ5RGF0YSA/ICcxJyA6ICcwJyk7CisgICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChjb21t
YW5kLmpvaW4oJyAnKSk7CisgICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJyYXlb
ZGF0YUluZGV4XSk7CisgICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tl
dHMubGVuZ3RoOworCisgICAgdG90YWxTaXplICs9IHNpemU7CisgICAgKytkYXRhSW5kZXg7Cisg
IH0KK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dh
cm1VcCkgeworICB0aW1lcklEID0gbnVsbDsKKworICB2YXIgdG90YWxTaXplID0gMDsKKyAgdmFy
IHRvdGFsUmVwbGllZCA9IDA7CisKKyAgdmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBmdW5jdGlvbihl
dmVudCkgeworICAgIHZhciBieXRlc1JlY2VpdmVkID0gZXZlbnQuZGF0YS5ieXRlTGVuZ3RoOwor
ICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsKKyAgICAgIGNvbmZpZy5hZGRUb0xvZygn
RXhwZWN0ZWQgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2ZWQgJyArCisgICAgICAgICAgYnl0ZXNS
ZWNlaXZlZCArICdCJyk7CisgICAgICBkZXN0cm95QWxsU29ja2V0cygpOworICAgICAgY29uZmln
Lm5vdGlmeUFib3J0KCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNvbmZpZy52
ZXJpZnlEYXRhICYmICF2ZXJpZnlBcnJheUJ1ZmZlcihldmVudC5kYXRhLCAweDYxKSkgeworICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7CisgICAg
ICBkZXN0cm95QWxsU29ja2V0cygpOworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7CisK
KyAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7CisgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0
YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKKyAgICAgICAgaXNXYXJtVXApOworCisgICAgcnVuTmV4
dFRhc2soY29uZmlnKTsKKyAgfTsKKworICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVu
Z3RoOyArK2kpIHsKKyAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKKyAgICBzb2NrZXQuYmlu
YXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7CisgICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2Fn
ZUhhbmRsZXI7CisgIH0KKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFt
cCgpOworCisgIHZhciBzb2NrZXRJbmRleCA9IDA7CisgIHdoaWxlICh0b3RhbFNpemUgPCBjb25m
aWcubWluVG90YWwpIHsKKyAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKCdyZWNlaXZlICcg
KyBzaXplKTsKKyAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5s
ZW5ndGg7CisKKyAgICB0b3RhbFNpemUgKz0gc2l6ZTsKKyAgfQorfQorCitmdW5jdGlvbiBjcmVh
dGVTb2NrZXQoY29uZmlnKSB7CisgIC8vIFRPRE8odHlvc2hpbm8pOiBBZGQgVENQIHdhcm0gdXAu
CisgIHZhciB1cmwgPSBjb25maWcucHJlZml4VXJsOworCisgIGNvbmZpZy5hZGRUb0xvZygnQ29u
bmVjdCAnICsgdXJsKTsKKworICB2YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOworICBz
b2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBjb25maWcuYWRkVG9Mb2co
J1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNlaXZlZC4gQWJvcnRpbmcuJyk7CisgIH07CisgIHNvY2tl
dC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgY29uZmlnLmFkZFRvTG9nKCdFcnJvcicpOwor
ICB9OworICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgY29uZmlnLmFk
ZFRvTG9nKCdDbG9zZWQnKTsKKyAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgfTsKKyAgcmV0
dXJuIHNvY2tldDsKK30KKworZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7CisgIGNs
ZWFyVGltZW91dCh0aW1lcklEKTsKKyAgZGVzdHJveUFsbFNvY2tldHMoKTsKKworICBudW1Fc3Rh
Ymxpc2hlZFNvY2tldHMgPSAwOworCisgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVNv
Y2tldHM7ICsraSkgeworICAgIHZhciBzb2NrZXQgPSBjcmVhdGVTb2NrZXQoY29uZmlnKTsKKyAg
ICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgICBjb25maWcuYWRkVG9Mb2coJ09w
ZW5lZCcpOworCisgICAgICArK251bUVzdGFibGlzaGVkU29ja2V0czsKKworICAgICAgaWYgKG51
bUVzdGFibGlzaGVkU29ja2V0cyA9PSBzb2NrZXRzLmxlbmd0aCkgeworICAgICAgICBydW5OZXh0
VGFzayhjb25maWcpOworICAgICAgfQorICAgIH07CisgICAgc29ja2V0cy5wdXNoKHNvY2tldCk7
CisgIH0KK30KKworZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgeworICByZXR1cm4g
JyhXZWJTb2NrZXQnICsKKyAgICAnLCAnICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5k
ZWZpbmVkIiA/ICdXb3JrZXInIDogJ01haW4nKSArCisgICAgJywgbnVtU29ja2V0cz0nICsgY29u
ZmlnLm51bVNvY2tldHMgKworICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVy
YXRpb25zICsKKyAgICAnLCB2ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCisgICAg
JywgbWluVG90YWw9JyArIGNvbmZpZy5taW5Ub3RhbCArCisgICAgJywgbnVtV2FybVVwSXRlcmF0
aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKworICAgICcpJzsKK30KKworZnVu
Y3Rpb24gYmF0Y2hCZW5jaG1hcmsoY29uZmlnKSB7CisgIGNvbmZpZy5hZGRUb0xvZygnQmF0Y2gg
YmVuY2htYXJrJyk7CisgIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcp
KTsKKworICB0YXNrcyA9IFtdOworICBjbGVhckF2ZXJhZ2VEYXRhKCk7CisgIGFkZFRhc2tzKGNv
bmZpZywgc2VuZEJlbmNobWFya1N0ZXApOworICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZp
ZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7CisgIGFkZFRh
c2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOworICBhZGRSZXN1bHRSZXBvcnRpbmdU
YXNrKGNvbmZpZywgJ1JlY2VpdmUgQmVuY2htYXJrICcgKworICAgICAgZ2V0Q29uZmlnU3RyaW5n
KGNvbmZpZykpOworICBzdGFydEJlbmNobWFyayhjb25maWcpOworfQorCitmdW5jdGlvbiBjbGVh
bnVwKCkgeworICBkZXN0cm95QWxsU29ja2V0cygpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxw
ZXJfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YWQwYmZlZWZjNmY0NDMwNTcxYjdiNTMyMzNmYjc5NTA2
MTRjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93
c2gucHkKQEAgLTAsMCArMSw4NSBAQAorIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KKyMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiSGFuZGxlciBm
b3IgYmVuY2htYXJrLmh0bWwuIiIiCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlKHJlcXVlc3QpOgorICAgICMgVHVybiBvZmYgY29tcHJlc3Npb24uCisgICAgcmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKKyAgICBkYXRhID0gJycKKworICAgIHdoaWxlIFRydWU6CisgICAgICAg
IGNvbW1hbmQgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQorICAgICAgICBp
ZiBjb21tYW5kIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShjb21tYW5kLCB1bmljb2RlKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgY29tbWFuZCBkYXRhOicgKyBjb21tYW5kKQorICAgICAgICBjb21tYW5kcyA9
IGNvbW1hbmQuc3BsaXQoJyAnKQorICAgICAgICBpZiBsZW4oY29tbWFuZHMpID09IDA6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTogJyArIGNvbW1h
bmQpCisKKyAgICAgICAgaWYgY29tbWFuZHNbMF0gPT0gJ3JlY2VpdmUnOgorICAgICAgICAgICAg
aWYgbGVuKGNvbW1hbmRzKSAhPSAyOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
CisgICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRzIGZv
ciBzZW5kIGNvbW1hbmQnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCisgICAg
ICAgICAgICBzaXplID0gaW50KGNvbW1hbmRzWzFdKQorCisgICAgICAgICAgICAjIFJldXNlIGRh
dGEgaWYgcG9zc2libGUuCisgICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gc2l6ZToKKyAgICAg
ICAgICAgICAgICBkYXRhID0gJ2EnICogc2l6ZQorICAgICAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uc2VuZF9tZXNzYWdlKGRhdGEsIGJpbmFyeT1UcnVlKQorICAgICAgICBlbGlmIGNvbW1hbmRz
WzBdID09ICdzZW5kJzoKKyAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0ls
bGVnYWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVjZWl2ZSBjb21tYW5kJyArCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kKQorICAgICAgICAgICAgdmVyaWZ5X2RhdGEgPSBjb21t
YW5kc1sxXSA9PSAnMScKKworICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJl
Y2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAgICBpZiBkYXRhIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBub3QgcmVjZWl2ZWQnKQorICAgICAgICAg
ICAgc2l6ZSA9IGxlbihkYXRhKQorCisgICAgICAgICAgICBpZiB2ZXJpZnlfZGF0YToKKyAgICAg
ICAgICAgICAgICBpZiBkYXRhICE9ICdhJyAqIHNpemU6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgdmVyaWZpY2F0aW9uIGZhaWxlZCcpCisKKyAgICAgICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShzdHIoc2l6ZSkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQ6ICcgKyBj
b21tYW5kc1swXSkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9jbG9zZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI2YjA4Mzg0MDgxMjQ1Mzk3OTc2NTdkNDBkNjQyNzhmMWE2NDgxYzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5CkBAIC0wLDAgKzEsNjkgQEAKKyMgQ29weXJp
Z2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgc3RydWN0CisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBj
b21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KKworCitkZWYgd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJf
c29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAg
bGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgIGlmIGxp
bmUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBjb2RlLCByZWFzb24gPSBs
aW5lLnNwbGl0KCcgJywgMSkKKyAgICAgICAgaWYgY29kZSBpcyBOb25lIG9yIHJlYXNvbiBpcyBO
b25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3Nl
X2Nvbm5lY3Rpb24oaW50KGNvZGUpLCByZWFzb24pCisgICAgICAgICMgY2xvc2VfY29ubmVjdGlv
bigpIGluaXRpYXRlcyBjbG9zaW5nIGhhbmRzaGFrZS4gSXQgdmFsaWRhdGVzIGNvZGUKKyAgICAg
ICAgIyBhbmQgcmVhc29uLiBJZiB5b3Ugd2FudCB0byBzZW5kIGEgYnJva2VuIGNsb3NlIGZyYW1l
IGZvciBhIHRlc3QsCisgICAgICAgICMgZm9sbG93aW5nIGNvZGUgd2lsbCBiZSB1c2VmdWwuCisg
ICAgICAgICMgPiBkYXRhID0gc3RydWN0LnBhY2soJyFIJywgaW50KGNvZGUpKSArIHJlYXNvbi5l
bmNvZGUoJ1VURi04JykKKyAgICAgICAgIyA+IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShzdHJl
YW0uY3JlYXRlX2Nsb3NlX2ZyYW1lKGRhdGEpKQorICAgICAgICAjID4gIyBTdXBwcmVzcyB0byBy
ZS1yZXNwb25kIGNsaWVudCByZXNwb25kaW5nIGNsb3NlIGZyYW1lLgorICAgICAgICAjID4gcmFp
c2UgRXhjZXB0aW9uKCJjdXN0b21pemVkIHNlcnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hh
a2UiKQorCisKK2RlZiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVz
dCk6CisgICAgIyBTaW1wbHkgZWNobyBhIGNsb3NlIHN0YXR1cyBjb2RlCisgICAgY29kZSwgcmVh
c29uID0gcmVxdWVzdC53c19jbG9zZV9jb2RlLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbgorCisg
ICAgIyBweXdlYnNvY2tldCBzZXRzIHBzZXVkbyBjb2RlIGZvciByZWNlaXZpbmcgYW4gZW1wdHkg
Ym9keSBjbG9zZSBmcmFtZS4KKyAgICBpZiBjb2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVT
X1JFQ0VJVkVEOgorICAgICAgICBjb2RlID0gTm9uZQorICAgICAgICByZWFzb24gPSAnJworICAg
IHJldHVybiBjb2RlLCByZWFzb24KKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNjZDZkOGY4MDY3NmI5OTkxZTIyZGZjN2VjODUwODM0MTFkZGQwYjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCkBAIC0wLDAgKzEsMzE3IEBA
Cis8IS0tCitDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KK0FsbCByaWdodHMgcmVzZXJ2ZWQu
CisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0OgorCisgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgoraW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorZGlzdHJpYnV0aW9uLgorICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
K3RoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCitPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLT4KKworPCEtLQorQSBzaW1wbGUgY29uc29s
ZSBmb3IgdGVzdGluZyBXZWJTb2NrZXQgc2VydmVyLgorCitUeXBlIGFuIGFkZHJlc3MgaW50byB0
aGUgdG9wIHRleHQgaW5wdXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0YWJsaXNoCitXZWJTb2Nr
ZXQuIFRoZW4sIHR5cGUgc29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRvbSB0ZXh0IGlucHV0IGFu
ZCBjbGljayBzZW5kCit0byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZlZC9zZW50IG1lc3NhZ2Vz
IGFuZCBjb25uZWN0aW9uIHN0YXRlIHdpbGwgYmUgc2hvd24KK29uIHRoZSBtaWRkbGUgdGV4dGFy
ZWEuCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWJTb2NrZXQgY29uc29sZTwvdGl0
bGU+Cis8c2NyaXB0PgordmFyIHNvY2tldCA9IG51bGw7CisKK3ZhciBzaG93VGltZVN0YW1wID0g
ZmFsc2U7CisKK3ZhciBhZGRyZXNzQm94ID0gbnVsbDsKK3ZhciBwcm90b2NvbHNCb3ggPSBudWxs
OwordmFyIGxvZ0JveCA9IG51bGw7Cit2YXIgbWVzc2FnZUJveCA9IG51bGw7Cit2YXIgZmlsZUJv
eCA9IG51bGw7Cit2YXIgY29kZUJveCA9IG51bGw7Cit2YXIgcmVhc29uQm94ID0gbnVsbDsKKwor
ZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCkgeworICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7
Cit9CisKK2Z1bmN0aW9uIGFkZFRvTG9nKGxvZykgeworICBpZiAoc2hvd1RpbWVTdGFtcCkgewor
ICAgIGxvZ0JveC52YWx1ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSArICddICc7CisgIH0KKyAg
bG9nQm94LnZhbHVlICs9IGxvZyArICdcbicKKyAgLy8gTGFyZ2UgZW5vdWdoIHRvIGtlZXAgc2hv
d2luZyB0aGUgbGF0ZXN0IG1lc3NhZ2UuCisgIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwor
fQorCitmdW5jdGlvbiBzZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsKKyAgaWYgKCFzb2NrZXQp
IHsKKyAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsKKyAgfQorCisg
IHNvY2tldC5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgYWRkVG9Mb2coJ1NldCBiaW5hcnlU
eXBlIHRvICcgKyBiaW5hcnlUeXBlKTsKK30KKworZnVuY3Rpb24gc2VuZCgpIHsKKyAgaWYgKCFz
b2NrZXQpIHsKKyAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsKKyAg
fQorCisgIHNvY2tldC5zZW5kKG1lc3NhZ2VCb3gudmFsdWUpOworICBhZGRUb0xvZygnPiAnICsg
bWVzc2FnZUJveC52YWx1ZSk7CisgIG1lc3NhZ2VCb3gudmFsdWUgPSAnJzsKK30KKworZnVuY3Rp
b24gc2VuZGZpbGUoKSB7CisgIGlmICghc29ja2V0KSB7CisgICAgYWRkVG9Mb2coJ05vdCBjb25u
ZWN0ZWQnKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgZmlsZXMgPSBmaWxlQm94LmZpbGVz
OworCisgIGlmIChmaWxlcy5sZW5ndGggPT0gMCkgeworICAgIGFkZFRvTG9nKCdGaWxlIG5vdCBz
ZWxlY3RlZCcpOworICAgIHJldHVybjsKKyAgfQorCisgIHNvY2tldC5zZW5kKGZpbGVzWzBdKTsK
KyAgYWRkVG9Mb2coJz4gU2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Cit9CisKK2Z1bmN0aW9uIHBh
cnNlUHJvdG9jb2xzKHByb3RvY29sc1RleHQpIHsKKyAgdmFyIHByb3RvY29scyA9IHByb3RvY29s
c1RleHQuc3BsaXQoJywnKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b2NvbHMubGVuZ3Ro
OyArK2kpIHsKKyAgICBwcm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0udHJpbSgpOworICB9CisK
KyAgaWYgKHByb3RvY29scy5sZW5ndGggPT0gMCkgeworICAgIC8vIERvbid0IHBhc3MuCisgICAg
cHJvdG9jb2xzID0gbnVsbDsKKyAgfSBlbHNlIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDEpIHsK
KyAgICBpZiAocHJvdG9jb2xzWzBdLmxlbmd0aCA9PSAwKSB7CisgICAgICAvLyBEb24ndCBwYXNz
LgorICAgICAgcHJvdG9jb2xzID0gbnVsbDsKKyAgICB9IGVsc2UgeworICAgICAgLy8gUGFzcyBh
cyBhIHN0cmluZy4KKyAgICAgIHByb3RvY29scyA9IHByb3RvY29sc1swXTsKKyAgICB9CisgIH0K
KworICByZXR1cm4gcHJvdG9jb2xzOworfQorCitmdW5jdGlvbiBjb25uZWN0KCkgeworICB2YXIg
dXJsID0gYWRkcmVzc0JveC52YWx1ZTsKKyAgdmFyIHByb3RvY29scyA9IHBhcnNlUHJvdG9jb2xz
KHByb3RvY29sc0JveC52YWx1ZSk7CisKKyAgaWYgKCdXZWJTb2NrZXQnIGluIHdpbmRvdykgewor
ICAgIGlmIChwcm90b2NvbHMpIHsKKyAgICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsLCBw
cm90b2NvbHMpOworICAgIH0gZWxzZSB7CisgICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVy
bCk7CisgICAgfQorICB9IGVsc2UgeworICAgIHJldHVybjsKKyAgfQorCisgIHNvY2tldC5vbm9w
ZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGV4dHJhSW5mbyA9IFtdOworICAgIGlmICgoJ3By
b3RvY29sJyBpbiBzb2NrZXQpICYmIHNvY2tldC5wcm90b2NvbCkgeworICAgICAgZXh0cmFJbmZv
LnB1c2goJ3Byb3RvY29sID0gJyArIHNvY2tldC5wcm90b2NvbCk7CisgICAgfQorICAgIGlmICgo
J2V4dGVuc2lvbnMnIGluIHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lvbnMpIHsKKyAgICAgIGV4
dHJhSW5mby5wdXNoKCdleHRlbnNpb25zID0gJyArIHNvY2tldC5leHRlbnNpb25zKTsKKyAgICB9
CisKKyAgICB2YXIgbG9nTWVzc2FnZSA9ICdPcGVuZWQnOworICAgIGlmIChleHRyYUluZm8ubGVu
Z3RoID4gMCkgeworICAgICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0cmFJbmZvLmpvaW4oJywg
JykgKyAnKSc7CisgICAgfQorICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UpOworICB9OworICBzb2Nr
ZXQub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgaWYgKCgnQXJyYXlCdWZmZXIn
IGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsKKyAg
ICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9mICcgKyBldmVudC5kYXRh
LmJ5dGVMZW5ndGggKworICAgICAgICAgICAgICAgJyBieXRlcycpCisgICAgfSBlbHNlIGlmICgo
J0Jsb2InIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBCbG9iKSkgeworICAg
ICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVudC5kYXRhLnNpemUgKyAn
IGJ5dGVzJykKKyAgICB9IGVsc2UgeworICAgICAgYWRkVG9Mb2coJzwgJyArIGV2ZW50LmRhdGEp
OworICAgIH0KKyAgfTsKKyAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgYWRk
VG9Mb2coJ0Vycm9yJyk7CisgIH07CisgIHNvY2tldC5vbmNsb3NlID0gZnVuY3Rpb24gKGV2ZW50
KSB7CisgICAgdmFyIGxvZ01lc3NhZ2UgPSAnQ2xvc2VkICgnOworICAgIGlmICgoYXJndW1lbnRz
Lmxlbmd0aCA9PSAxKSAmJiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykgJiYKKyAgICAgICAgKGV2
ZW50IGluc3RhbmNlb2YgQ2xvc2VFdmVudCkpIHsKKyAgICAgIGxvZ01lc3NhZ2UgKz0gJ3dhc0Ns
ZWFuID0gJyArIGV2ZW50Lndhc0NsZWFuOworICAgICAgLy8gY29kZSBhbmQgcmVhc29uIGFyZSBw
cmVzZW50IG9ubHkgZm9yCisgICAgICAvLyBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJv
dG9jb2wtMDYgYW5kIGxhdGVyCisgICAgICBpZiAoJ2NvZGUnIGluIGV2ZW50KSB7CisgICAgICAg
IGxvZ01lc3NhZ2UgKz0gJywgY29kZSA9ICcgKyBldmVudC5jb2RlOworICAgICAgfQorICAgICAg
aWYgKCdyZWFzb24nIGluIGV2ZW50KSB7CisgICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgcmVhc29u
ID0gJyArIGV2ZW50LnJlYXNvbjsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgbG9nTWVz
c2FnZSArPSAnQ2xvc2VFdmVudCBpcyBub3QgYXZhaWxhYmxlJzsKKyAgICB9CisgICAgYWRkVG9M
b2cobG9nTWVzc2FnZSArICcpJyk7CisgIH07CisKKyAgaWYgKHByb3RvY29scykgeworICAgIGFk
ZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAnICsgcHJvdG9jb2xzICsg
JyknKTsKKyAgfSBlbHNlIHsKKyAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKKyAgfQor
fQorCitmdW5jdGlvbiBjbG9zZVNvY2tldCgpIHsKKyAgaWYgKCFzb2NrZXQpIHsKKyAgICBhZGRU
b0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsKKyAgfQorCisgIGlmIChjb2RlQm94
LnZhbHVlIHx8IHJlYXNvbkJveC52YWx1ZSkgeworICAgIHNvY2tldC5jbG9zZShjb2RlQm94LnZh
bHVlLCByZWFzb25Cb3gudmFsdWUpOworICB9IGVsc2UgeworICAgIHNvY2tldC5jbG9zZSgpOwor
ICB9Cit9CisKK2Z1bmN0aW9uIHByaW50U3RhdGUoKSB7CisgIGlmICghc29ja2V0KSB7CisgICAg
YWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKKyAgICByZXR1cm47CisgIH0KKworICBhZGRUb0xv
ZygKKyAgICAgICd1cmwgPSAnICsgc29ja2V0LnVybCArCisgICAgICAnLCByZWFkeVN0YXRlID0g
JyArIHNvY2tldC5yZWFkeVN0YXRlICsKKyAgICAgICcsIGJ1ZmZlcmVkQW1vdW50ID0gJyArIHNv
Y2tldC5idWZmZXJlZEFtb3VudCk7Cit9CisKK2Z1bmN0aW9uIGluaXQoKSB7CisgIHZhciBzY2hl
bWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6ICd3
czovLyc7CisgIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlvbi5o
b3N0ICsgJy9lY2hvJzsKKworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FkZHJlc3MnKTsKKyAgcHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3By
b3RvY29scycpOworICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Cisg
IG1lc3NhZ2VCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZScpOworICBmaWxl
Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKKyAgY29kZUJveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlJyk7CisgIHJlYXNvbkJveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZWFzb24nKTsKKworICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVsdEFkZHJl
c3M7CisKKyAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgeworICAgIGFkZFRvTG9nKCdX
ZWJTb2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOworICB9Cit9Cis8L3NjcmlwdD4KKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+Citmb3JtIHsKKyAgbWFyZ2luOiAwcHg7Cit9CisKKyNjb25uZWN0X2Rp
diwgI2xvZ19kaXYsICNzZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Nsb3NlX2RpdiwgI3ByaW50
c3RhdGVfZGl2IHsKKyAgcGFkZGluZzogNXB4OworICBtYXJnaW46IDVweDsKKyAgYm9yZGVyLXdp
ZHRoOiAwcHggMHB4IDBweCAxMHB4OworICBib3JkZXItc3R5bGU6IHNvbGlkOworICBib3JkZXIt
Y29sb3I6IHNpbHZlcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImluaXQo
KSI+CisKKzxkaXY+CisKKzxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KKyAgPGZvcm0gYWN0aW9uPSIj
IiBvbnN1Ym1pdD0iY29ubmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KKyAgICB1cmwgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+CisgICAgPGlucHV0IHR5cGU9InN1Ym1p
dCIgdmFsdWU9ImNvbm5lY3QiPgorICAgIDxici8+CisgICAgcHJvdG9jb2xzIDxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0icHJvdG9jb2xzIiBzaXplPSIyMCI+CisgIDwvZm9ybT4KKzwvZGl2PgorCis8
ZGl2IGlkPSJsb2dfZGl2Ij4KKyAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0
MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKyAgPGJyLz4KKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IgorICAgICAgICAgbmFtZT0ic2hvd3RpbWVzdGFtcCIKKyAgICAgICAgIHZhbHVlPSJzaG93dGlt
ZXN0YW1wIgorICAgICAgICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9IHRoaXMuY2hlY2tlZCI+
U2hvdyB0aW1lIHN0YW1wCis8L2Rpdj4KKworPGRpdiBpZD0ic2VuZF9kaXYiPgorICA8Zm9ybSBh
Y3Rpb249IiMiIG9uc3VibWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsiPgorICAgIGRhdGEgPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+CisgICAgPGlucHV0IHR5cGU9
InN1Ym1pdCIgdmFsdWU9InNlbmQiPgorICA8L2Zvcm0+Cis8L2Rpdj4KKworPGRpdiBpZD0ic2Vu
ZGZpbGVfZGl2Ij4KKyAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZGZpbGUoKTsgcmV0
dXJuIGZhbHNlOyI+CisgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlIiBzaXplPSI0MCI+
CisgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmlsZSI+CisgIDwvZm9ybT4K
KworICBTZXQgYmluYXJ5VHlwZQorICA8aW5wdXQgdHlwZT0icmFkaW8iCisgICAgICAgICBuYW1l
PSJiaW5hcnl0eXBlIgorICAgICAgICAgdmFsdWU9ImJsb2IiCisgICAgICAgICBvbmNsaWNrPSJz
ZXRiaW5hcnl0eXBlKCdibG9iJykiIGNoZWNrZWQ+YmxvYgorICA8aW5wdXQgdHlwZT0icmFkaW8i
CisgICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgorICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVy
IgorICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXlidWZmZXInKSI+YXJyYXli
dWZmZXIKKzwvZGl2PgorCis8ZGl2IGlkPSJjbG9zZV9kaXYiPgorICA8Zm9ybSBhY3Rpb249IiMi
IG9uc3VibWl0PSJjbG9zZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4KKyAgICBjb2RlIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iY29kZSIgc2l6ZT0iMTAiPgorICAgIHJlYXNvbiA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InJlYXNvbiIgc2l6ZT0iMjAiPgorICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQi
IHZhbHVlPSJjbG9zZSI+CisgIDwvZm9ybT4KKzwvZGl2PgorCis8ZGl2IGlkPSJwcmludHN0YXRl
X2RpdiI+CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmludCBzdGF0ZSIgb25jbGlj
az0icHJpbnRTdGF0ZSgpOyI+Cis8L2Rpdj4KKworPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nv
b2tpZV93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzMjcxNTJlNzAxZjdkMjAzMWQ3YzljZTA0NjI0Y2Zh
ODRhYzE2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5CkBA
IC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUKKyMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxl
IG9yIGF0CisjIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vu
c2VzL2JzZAorCisKK2ltcG9ydCB1cmxwYXJzZQorCisKK2RlZiBfYWRkX3NldF9jb29raWUocmVx
dWVzdCwgdmFsdWUpOgorICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoKCdTZXQtQ29v
a2llJywgdmFsdWUpKQorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1
ZXN0KToKKyAgICBjb21wb25lbnRzID0gdXJscGFyc2UudXJscGFyc2UocmVxdWVzdC51cmkpCisg
ICAgY29tbWFuZCA9IGNvbXBvbmVudHNbNF0KKworICAgIE9ORV9EQVlfTElGRSA9ICdNYXgtQWdl
PTg2NDAwJworCisgICAgaWYgY29tbWFuZCA9PSAnc2V0JzoKKyAgICAgICAgX2FkZF9zZXRfY29v
a2llKHJlcXVlc3QsICc7ICcuam9pbihbJ2Zvbz1iYXInLCBPTkVfREFZX0xJRkVdKSkKKyAgICBl
bGlmIGNvbW1hbmQgPT0gJ3NldF9odHRwb25seSc6CisgICAgICAgIF9hZGRfc2V0X2Nvb2tpZShy
ZXF1ZXN0LAorICAgICAgICAgICAgJzsgJy5qb2luKFsnaHR0cE9ubHlGb289YmFyJywgT05FX0RB
WV9MSUZFLCAnaHR0cE9ubHknXSkpCisgICAgZWxpZiBjb21tYW5kID09ICdjbGVhcic6CisgICAg
ICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnZm9vPTA7IE1heC1BZ2U9MCcpCisgICAgICAg
IF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnaHR0cE9ubHlGb289MDsgTWF4LUFnZT0wJykKKwor
CitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2Ns
aWVudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NDNjZTY0ZThiODg2NTYyZmM2OTIwOTgzNGJmOTJiMTM5OTE0
MmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CkBAIC0w
LDAgKzEsMTEyOCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEx
LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisiIiJTaW1wbGUgV2ViU29ja2V0IGNsaWVudCBuYW1lZCBlY2hvX2NsaWVudCBqdXN0IGJl
Y2F1c2Ugb2YgaGlzdG9yaWNhbCByZWFzb24uCisKK21vZF9weXdlYnNvY2tldCBkaXJlY3Rvcnkg
bXVzdCBiZSBpbiBQWVRIT05QQVRILgorCitFeGFtcGxlIFVzYWdlOgorCisjIHNlcnZlciBzZXR1
cAorICUgY2QgJHB5d2Vic29ja2V0CisgJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL21v
ZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC1wIDg4ODAgXAorICAgIC1kICRjd2Qvc3JjL2V4
YW1wbGUKKworIyBydW4gY2xpZW50CisgJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL3Ny
Yy9leGFtcGxlL2VjaG9fY2xpZW50LnB5IC1wIDg4ODAgXAorICAgICAtcyBsb2NhbGhvc3QgXAor
ICAgICAtbyBodHRwOi8vbG9jYWxob3N0IC1yIC9lY2hvIC1tIHRlc3QKKworb3IKKworIyBydW4g
ZWNobyBjbGllbnQgdG8gdGVzdCBJRVRGIEh5QmkgMDAgcHJvdG9jb2wKKyBydW4gd2l0aCAtLXBy
b3RvY29sLXZlcnNpb249aHliaTAwCisiIiIKKworCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgY29k
ZWNzCitpbXBvcnQgbG9nZ2luZworZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCitp
bXBvcnQgb3MKK2ltcG9ydCByYW5kb20KK2ltcG9ydCByZQoraW1wb3J0IHNvY2tldAoraW1wb3J0
IHN0cnVjdAoraW1wb3J0IHN5cworCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Citmcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVFeHRl
bnNpb25Qcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yCitmcm9tIG1vZF9weXdlYnNvY2tldC5l
eHRlbnNpb25zIGltcG9ydCBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIKK2Zyb20gbW9kX3B5d2Vi
c29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9wYXJzZV93aW5kb3dfYml0cworZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVh
bSBpbXBvcnQgU3RyZWFtSGl4aWU3NQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9y
dCBTdHJlYW1PcHRpb25zCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorCisKK19U
SU1FT1VUX1NFQyA9IDEwCitfVU5ERUZJTkVEX1BPUlQgPSAtMQorCitfVVBHUkFERV9IRUFERVIg
PSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKK19VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0gJ1Vw
Z3JhZGU6IFdlYlNvY2tldFxyXG4nCitfQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbjog
VXBncmFkZVxyXG4nCisKKyMgU3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVjaG8gc2Vy
dmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCitfR09PREJZRV9NRVNTQUdFID0gJ0dvb2Ri
eWUnCisKK19QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyA9ICdoeWJpMTMnCitfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDggPSAnaHliaTA4JworX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwID0gJ2h5Ymkw
MCcKK19QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzUgPSAnaGl4aWU3NScKKworIyBDb25zdGFudHMg
Zm9yIHRoZSAtLXRsc19tb2R1bGUgZmxhZy4KK19UTFNfQllfU1RBTkRBUkRfTU9EVUxFID0gJ3Nz
bCcKK19UTFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNzbCcKKworIyBWYWx1ZXMgdXNlZCBieSB0
aGUgLS10bHMtdmVyc2lvbiBmbGFnLgorX1RMU19WRVJTSU9OX1NTTDIzID0gJ3NzbDIzJworX1RM
U19WRVJTSU9OX1NTTDMgPSAnc3NsMycKK19UTFNfVkVSU0lPTl9UTFMxID0gJ3RsczEnCisKKwor
Y2xhc3MgQ2xpZW50SGFuZHNoYWtlRXJyb3IoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworZGVm
IF9idWlsZF9tZXRob2RfbGluZShyZXNvdXJjZSk6CisgICAgcmV0dXJuICdHRVQgJXMgSFRUUC8x
LjFcclxuJyAlIHJlc291cmNlCisKKworZGVmIF9vcmlnaW5faGVhZGVyKGhlYWRlciwgb3JpZ2lu
KToKKyAgICAjIDQuMSAxMy4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46Iiwg
YSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLAorICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwg
Y29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8uCisgICAgcmV0dXJuICcl
czogJXNcclxuJyAlIChoZWFkZXIsIG9yaWdpbi5sb3dlcigpKQorCisKK2RlZiBfZm9ybWF0X2hv
c3RfaGVhZGVyKGhvc3QsIHBvcnQsIHNlY3VyZSk6CisgICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9y
dC8gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2
YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8KKyAgICAjIC9ob3N0cG9ydC8K
KyAgICBob3N0cG9ydCA9IGhvc3QubG93ZXIoKQorICAgICMgNC4xIDExLiBJZiAvc2VjdXJlLyBp
cyBmYWxzZSwgYW5kIC9wb3J0LyBpcyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCisgICAgIyBpcyB0
cnVlLCBhbmQgL3BvcnQvIGlzIG5vdCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9OIGNo
YXJhY3RlcgorICAgICMgKDopIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJl
c3NlZCBhcyBhIGJhc2UtdGVuIGludGVnZXIsCisgICAgIyB0byAvaG9zdHBvcnQvCisgICAgaWYg
KChub3Qgc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCkg
b3IKKyAgICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VU
X1NFQ1VSRV9QT1JUKSk6CisgICAgICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQorICAg
ICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAg
U1BBQ0UKKyAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgorICAg
IHJldHVybiAnJXM6ICVzXHJcbicgJSAoY29tbW9uLkhPU1RfSEVBREVSLCBob3N0cG9ydCkKKwor
CitkZWYgX3JlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5ndGgpOgorICAgIGJ5dGVzID0gW10KKyAg
ICByZW1haW5pbmcgPSBsZW5ndGgKKyAgICB3aGlsZSByZW1haW5pbmcgPiAwOgorICAgICAgICBy
ZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFpbmluZykKKyAgICAgICAgaWYgbm90IHJl
Y2VpdmVkX2J5dGVzOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKKyAgICAgICAgICAgICAg
ICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcK
KyAgICAgICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2ZWQgb25seSAl
ZCBieXRlcyknICUKKyAgICAgICAgICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSByZW1haW5pbmcp
KQorICAgICAgICBieXRlcy5hcHBlbmQocmVjZWl2ZWRfYnl0ZXMpCisgICAgICAgIHJlbWFpbmlu
ZyAtPSBsZW4ocmVjZWl2ZWRfYnl0ZXMpCisgICAgcmV0dXJuICcnLmpvaW4oYnl0ZXMpCisKKwor
ZGVmIF9nZXRfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUpOgorICAgICIiIkdldHMgdGhl
IHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbSBmaWVsZHMuCisKKyAg
ICBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3aXRo
IHRoZSBzcGVjaWZpZWQgbmFtZQorICAgIGluIGZpZWxkcy4gT3RoZXJ3aXNlLCByYWlzZXMgYW4g
Q2xpZW50SGFuZHNoYWtlRXJyb3IuCisgICAgIiIiCisKKyAgICB2YWx1ZXMgPSBmaWVsZHMuZ2V0
KG5hbWUubG93ZXIoKSkKKyAgICBpZiB2YWx1ZXMgaXMgTm9uZSBvciBsZW4odmFsdWVzKSA9PSAw
OgorICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKKyAgICAgICAgICAgICclcyBo
ZWFkZXIgbm90IGZvdW5kOiAlcicgJSAobmFtZSwgdmFsdWVzKSkKKyAgICBpZiBsZW4odmFsdWVz
KSA+IDE6CisgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAg
J011bHRpcGxlICVzIGhlYWRlcnMgZm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQorICAgIHJl
dHVybiB2YWx1ZXNbMF0KKworCitkZWYgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoZmllbGRz
LCBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3ZhbHVlLCBj
YXNlX3NlbnNpdGl2ZT1GYWxzZSk6CisgICAgIiIiR2V0cyBhbmQgdmFsaWRhdGVzIHRoZSB2YWx1
ZSBvZiB0aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1lIGZyb20KKyAgICBmaWVsZHMuCisKKyAg
ICBJZiBleHBlY3RlZF92YWx1ZSBpcyBzcGVjaWZpZWQsIGNvbXBhcmVzIGV4cGVjdGVkIHZhbHVl
IGFuZCBhY3R1YWwgdmFsdWUKKyAgICBhbmQgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9y
IG9uIGZhaWx1cmUuIFlvdSBjYW4gc3BlY2lmeSBjYXNlCisgICAgc2Vuc2l0aXZlbmVzcyBpbiB0
aGlzIGNvbXBhcmlzb24gYnkgY2FzZV9zZW5zaXRpdmUgcGFyYW1ldGVyLiBUaGlzIGZ1bmN0aW9u
CisgICAgZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNp
ZmllZCBuYW1lIGluIGZpZWxkcy4KKyAgICBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5k
c2hha2VFcnJvci4KKyAgICAiIiIKKworICAgIHZhbHVlID0gX2dldF9tYW5kYXRvcnlfaGVhZGVy
KGZpZWxkcywgbmFtZSkKKworICAgIGlmICgoY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlICE9IGV4
cGVjdGVkX3ZhbHVlKSBvcgorICAgICAgICAobm90IGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZS5s
b3dlcigpICE9IGV4cGVjdGVkX3ZhbHVlLmxvd2VyKCkpKToKKyAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVz
OiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCisgICAgICAgICAgICAobmFtZSwgZXhw
ZWN0ZWRfdmFsdWUsIHZhbHVlKSkKKworCitjbGFzcyBfVExTU29ja2V0KG9iamVjdCk6CisgICAg
IiIiV3JhcHBlciBmb3IgYSBUTFMgY29ubmVjdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLAorICAgICAgICAgICAgICAgICByYXdfc29ja2V0LCB0bHNfbW9kdWxlLCB0bHNfdmVyc2lv
biwgZGlzYWJsZV90bHNfY29tcHJlc3Npb24pOgorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGls
LmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBpZiB0bHNfbW9kdWxlID09IF9UTFNf
QllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19W
RVJTSU9OX1NTTDIzOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NM
djIzCisgICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wzOgor
ICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjMKKyAgICAgICAgICAg
IGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1RMUzE6CisgICAgICAgICAgICAgICAg
dmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9UTFN2MQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAt
LXRscy12ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9uKQorCisgICAgICAgICAgICBpZiBk
aXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KAorICAgICAgICAgICAgICAgICAgICAnLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbiBpcyBub3Qg
YXZhaWxhYmxlIGZvciBzc2wgJworICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJykKKworICAg
ICAgICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IHNzbC53cmFwX3NvY2tldChyYXdfc29ja2V0LCBz
c2xfdmVyc2lvbj12ZXJzaW9uKQorCisgICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2Uu
IEhhbmRzaGFrZSBpcyBkb25lIG9uIHdyYXBfc29ja2V0IGNhbGwuCisgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygiQ2lwaGVyOiAlcyIsIHNlbGYuX3Rsc19zb2NrZXQuY2lwaGVyKCkpCisg
ICAgICAgIGVsaWYgdGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKKyAgICAgICAgICAg
IGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wyMzoKKyAgICAgICAgICAgICAgICB2
ZXJzaW9uID0gT3BlblNTTC5TU0wuU1NMdjIzX01FVEhPRAorICAgICAgICAgICAgZWxpZiB0bHNf
dmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMzoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uID0g
T3BlblNTTC5TU0wuU1NMdjNfTUVUSE9ECisgICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09
IF9UTFNfVkVSU0lPTl9UTFMxOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNT
TC5UTFN2MV9NRVRIT0QKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS10bHMtdmVyc2lvbiBm
bGFnOiAlcicgJSB0bHNfdmVyc2lvbikKKworICAgICAgICAgICAgY29udGV4dCA9IE9wZW5TU0wu
U1NMLkNvbnRleHQodmVyc2lvbikKKworICAgICAgICAgICAgaWYgZGlzYWJsZV90bHNfY29tcHJl
c3Npb246CisgICAgICAgICAgICAgICAgIyBPUF9OT19DT01QUkVTU0lPTiBpcyBub3QgZGVmaW5l
ZCBpbiBPcGVuU1NMIG1vZHVsZS4KKyAgICAgICAgICAgICAgICBjb250ZXh0LnNldF9vcHRpb25z
KDB4MDAwMjAwMDApCisKKyAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQgPSBPcGVuU1NMLlNT
TC5Db25uZWN0aW9uKGNvbnRleHQsIHJhd19zb2NrZXQpCisgICAgICAgICAgICAjIENsaWVudCBt
b2RlLgorICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldC5zZXRfY29ubmVjdF9zdGF0ZSgpCisg
ICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldGJsb2NraW5nKFRydWUpCisKKyAgICAgICAg
ICAgICMgRG8gaGFuZHNoYWtlIG5vdyAobm90IG5lY2Vzc2FyeSkuCisgICAgICAgICAgICBzZWxm
Ll90bHNfc29ja2V0LmRvX2hhbmRzaGFrZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykKKwor
ICAgIGRlZiBzZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tl
dC53cml0ZShkYXRhKQorCisgICAgZGVmIHNlbmRhbGwoc2VsZiwgZGF0YSk6CisgICAgICAgIHJl
dHVybiBzZWxmLl90bHNfc29ja2V0LnNlbmRhbGwoZGF0YSkKKworICAgIGRlZiByZWN2KHNlbGYs
IHNpemU9LTEpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5yZWFkKHNpemUpCisK
KyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LmNs
b3NlKCkKKworICAgIGRlZiBnZXRwZWVybmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3Rsc19zb2NrZXQuZ2V0cGVlcm5hbWUoKQorCisKK2NsYXNzIENsaWVudEhhbmRzaGFrZUJhc2Uo
b2JqZWN0KToKKyAgICAiIiJBIGJhc2UgY2xhc3MgZm9yIFdlYlNvY2tldCBvcGVuaW5nIGhhbmRz
aGFrZSBwcm9jZXNzb3JzIGZvciBlYWNoCisgICAgcHJvdG9jb2wgdmVyc2lvbi4KKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICBkZWYgX3JlYWRfZmllbGRzKHNlbGYpOgorICAg
ICAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJz
LCBpbml0aWFsbHkgZW1wdHkuCisgICAgICAgIGZpZWxkcyA9IHt9CisgICAgICAgIHdoaWxlIFRy
dWU6ICAjICJGaWVsZCIKKyAgICAgICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGFuZCAvdmFs
dWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCisgICAgICAgICAgICBuYW1lID0gJycKKyAgICAgICAg
ICAgIHZhbHVlID0gJycKKyAgICAgICAgICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLworICAgICAg
ICAgICAgbmFtZSA9IHNlbGYuX3JlYWRfbmFtZSgpCisgICAgICAgICAgICBpZiBuYW1lIGlzIE5v
bmU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICMgNC4xIDM1LiByZWFkIHNw
YWNlcworICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBh
cyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjaCA9IHNlbGYuX3NraXBfc3Bh
Y2VzKCkKKyAgICAgICAgICAgICMgNC4xIDM2LiByZWFkIC92YWx1ZS8KKyAgICAgICAgICAgIHZh
bHVlID0gc2VsZi5fcmVhZF92YWx1ZShjaCkKKyAgICAgICAgICAgICMgNC4xIDM3LiByZWFkIGEg
Ynl0ZSBmcm9tIHRoZSBzZXJ2ZXIKKyAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQorICAgICAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQorICAgICAg
ICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICAg
ICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9yICcK
KyAgICAgICAgICAgICAgICAgICAgJ2hlYWRlciAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKKyAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgJXIgaGVhZGVyJywgbmFtZSkK
KyAgICAgICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxp
c3QgdGhhdCBoYXMgdGhlIG5hbWUKKyAgICAgICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBv
YnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1lLyBieXRlCisgICAgICAgICAgICAjIGFy
cmF5IGFzIGEgVVRGLTggc3RyZWFtIGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwor
ICAgICAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8gYnl0ZSBh
cnJheSBhcyBhIFVURi04IGJ5dGUKKyAgICAgICAgICAgICMgc3RyZWFtLgorICAgICAgICAgICAg
ZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAgICMg
NC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQorICAgICAgICByZXR1cm4g
ZmllbGRzCisKKyAgICBkZWYgX3JlYWRfbmFtZShzZWxmKToKKyAgICAgICAgIyA0LjEgMzMuIGxl
dCAvbmFtZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKKyAgICAgICAgbmFtZSA9ICcnCisgICAgICAg
IHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUg
c2VydmVyCisgICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkK
KyAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKKyAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQorICAgICAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCisgICAgICAgICAg
ICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICdV
bmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgbmFtZSAlcicgJSBuYW1lKQorICAgICAg
ICAgICAgZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKKyAgICAgICAgICAgICAgICByZXR1cm4gbmFt
ZQorICAgICAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMgUmFuZ2UgMHgz
MSB0byAweDVBCisgICAgICAgICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCisgICAg
ICAgICAgICAgICAgbmFtZSArPSBjaAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBuYW1lICs9IGNoCisKKyAgICBkZWYgX3NraXBfc3BhY2VzKHNlbGYpOgorICAgICAgICAjIDQu
MSAzNS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCisgICAgICAgIHdoaWxlIFRydWU6Cisg
ICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAg
ICAgIGlmIGNoID09ICcgJzogICMgMHgyMAorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICByZXR1cm4gY2gKKworICAgIGRlZiBfcmVhZF92YWx1ZShzZWxmLCBjaCk6CisgICAg
ICAgICMgNC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cworICAgICAgICB2
YWx1ZSA9ICcnCisgICAgICAgICMgNC4xIDM2LiByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlci4KKyAg
ICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xuJzog
ICMgMHgwQQorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAg
ICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVl
ICVyJyAlIHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1ZSAr
PSBjaAorICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisK
KworZGVmIF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb25fcmVzcG9uc2Up
OgorICAgICIiIlZhbGlkYXRlIHRoZSByZXNwb25zZSBhbmQgcmV0dXJuIGEgZnJhbWVyIG9iamVj
dCB1c2luZyB0aGUgcGFyYW1ldGVycyBpbgorICAgIHRoZSByZXNwb25zZS4gVGhpcyBtZXRob2Qg
ZG9lc24ndCBhY2NlcHQgdGhlIHNlcnZlcl8uKiBwYXJhbWV0ZXJzLgorICAgICIiIgorCisgICAg
Y2xpZW50X21heF93aW5kb3dfYml0cyA9IE5vbmUKKyAgICBjbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlciA9IE5vbmUKKworICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSA9ICgKKyAgICAg
ICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgorICAgICAgICAgICAg
ICAgICAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKKyAgICBjbGllbnRfbm9fY29u
dGV4dF90YWtlb3Zlcl9uYW1lID0gKAorICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3IuCisgICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTk9fQ09OVEVYVF9U
QUtFT1ZFUl9QQVJBTSkKKworICAgICMgV2UgZGlkbid0IHNlbmQgYW55IHNlcnZlcl8uKiBwYXJh
bWV0ZXIuCisgICAgIyBIYW5kbGUgdGhvc2UgcGFyYW1ldGVycyBhcyBpbnZhbGlkIGlmIGZvdW5k
IGluIHRoZSByZXNwb25zZS4KKworICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBl
eHRlbnNpb25fcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKToKKyAgICAgICAgaWYgcGFyYW1fbmFt
ZSA9PSBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWU6CisgICAgICAgICAgICBpZiBjbGllbnRf
bWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVu
dEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZv
dW5kJyAlIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSkKKworICAgICAgICAgICAgcGFyc2Vk
X3ZhbHVlID0gX3BhcnNlX3dpbmRvd19iaXRzKHBhcmFtX3ZhbHVlKQorICAgICAgICAgICAgaWYg
cGFyc2VkX3ZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNo
YWtlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnQmFkICVzOiAlcicgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSwgcGFyYW1fdmFs
dWUpKQorICAgICAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyA9IHBhcnNlZF92YWx1ZQor
ICAgICAgICBlbGlmIHBhcmFtX25hbWUgPT0gY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFt
ZToKKyAgICAgICAgICAgIGlmIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAlIGNsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyX25hbWUpCisKKyAgICAgICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ0JhZCAlczogSGFzIHZhbHVlICVyJyAlCisgICAgICAgICAgICAgICAgICAg
ICAgICAoY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZSwgcGFyYW1fdmFsdWUpKQorICAg
ICAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSBUcnVlCisKKyAgICBpZiBjbGll
bnRfbm9fY29udGV4dF90YWtlb3ZlciBpcyBOb25lOgorICAgICAgICBjbGllbnRfbm9fY29udGV4
dF90YWtlb3ZlciA9IEZhbHNlCisKKyAgICByZXR1cm4gX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVy
KGNsaWVudF9tYXhfd2luZG93X2JpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcikKKworCitjbGFzcyBDbGllbnRIYW5kc2hh
a2VQcm9jZXNzb3IoQ2xpZW50SGFuZHNoYWtlQmFzZSk6CisgICAgIiIiV2ViU29ja2V0IG9wZW5p
bmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IKKyAgICBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29j
a2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHNvY2tldCwgb3B0aW9ucyk6CisgICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVByb2Nl
c3Nvciwgc2VsZikuX19pbml0X18oKQorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAor
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworCisgICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgZGVmIGhhbmRzaGFrZShzZWxmKToK
KyAgICAgICAgIiIiUGVyZm9ybXMgb3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmllZCBz
b2NrZXQuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtlRXJy
b3I6IGhhbmRzaGFrZSBmYWlsZWQuCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3RfbGlu
ZSA9IF9idWlsZF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQorICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxp
bmU6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfbGluZSkKKyAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQorCisgICAgICAgIGZpZWxkcyA9
IFtdCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKyAgICAg
ICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIpCisgICAgICAgIGZpZWxkcy5hcHBlbmQo
X0NPTk5FQ1RJT05fSEVBREVSKQorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm9yaWdpbiBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9
PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6CisgICAgICAgICAgICAgICAgZmllbGRzLmFwcGVu
ZChfb3JpZ2luX2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NL
RVRfT1JJR0lOX0hFQURFUiwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmln
aW4pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9v
cmlnaW5faGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQorCisgICAgICAg
IG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCisgICAgICAgIHNlbGYuX2tleSA9IGJhc2U2
NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisg
ICAgICAgICAgICAnJXM6ICVyICglcyknLAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NL
RVRfS0VZX0hFQURFUiwKKyAgICAgICAgICAgIHNlbGYuX2tleSwKKyAgICAgICAgICAgIHV0aWwu
aGV4aWZ5KG9yaWdpbmFsX2tleSkpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoCisgICAgICAgICAg
ICAnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwgc2VsZi5f
a2V5KSkKKworICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyID4gMDoKKyAg
ICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRlcikpCisgICAgICAgIGVsaWYgc2VsZi5f
b3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoKKyAg
ICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29tbW9uLlZFUlNJT05fSFlCSTA4KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJ
T05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQorCisgICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVz
dCA9IFtdCisKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lOgorICAgICAg
ICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0LmFwcGVuZCgKKyAgICAgICAgICAgICAgICBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikpCisK
KyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlOgorICAgICAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKKyAgICAgICAgICAg
ICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgICAg
ICAjIEFjY2VwdCB0aGUgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVy
IGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcigKKyAgICAg
ICAgICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisg
ICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVl
c3QuYXBwZW5kKGV4dGVuc2lvbikKKworICAgICAgICBpZiBsZW4oZXh0ZW5zaW9uc190b19yZXF1
ZXN0KSAhPSAwOgorICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAn
JXM6ICVzXHJcbicgJQorICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRF
TlNJT05TX0hFQURFUiwKKyAgICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25z
KGV4dGVuc2lvbnNfdG9fcmVxdWVzdCkpKQorCisgICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6
CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKKworICAgICAgICBzZWxm
Ll9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdT
ZW50IGNsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmaWVsZHMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3Rh
cnQgcmVhZGluZyBTdGF0dXMtTGluZScpCisKKyAgICAgICAgc3RhdHVzX2xpbmUgPSAnJworICAg
ICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9z
b2NrZXQsIDEpCisgICAgICAgICAgICBzdGF0dXNfbGluZSArPSBjaAorICAgICAgICAgICAgaWYg
Y2ggPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIG0gPSByZS5tYXRj
aCgnSFRUUC9cXGQrXC5cXGQrIChcXGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQorICAg
ICAgICBpZiBtIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJv
cigKKyAgICAgICAgICAgICAgICAnV3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0
dXNfbGluZSkKKyAgICAgICAgc3RhdHVzX2NvZGUgPSBtLmdyb3VwKDEpCisgICAgICAgIGlmIHN0
YXR1c19jb2RlICE9ICcxMDEnOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmV4
cGVjdGVkIHN0YXR1cyBjb2RlICVzIHdpdGggZm9sbG93aW5nICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnaGVhZGVyczogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVhZF9maWVs
ZHMoKSkKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAg
ICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXInICUgc3Rh
dHVzX2NvZGUpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2YWxpZCBT
dGF0dXMtTGluZScpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBo
ZWFkZXJzIHVudGlsIHdlIHNlZSBhbiBlbXB0eSBsaW5lJykKKworICAgICAgICBmaWVsZHMgPSBz
ZWxmLl9yZWFkX2ZpZWxkcygpCisKKyAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9z
b2NrZXQsIDEpCisgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKKyAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBi
dXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKKyAgICAgICAg
ICAgICAgICAnbmFtZSAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKKworICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1JlY2VpdmVkIGFuIGVtcHR5IGxpbmUnKQorICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1NlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGZpZWxk
cykKKworICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKKyAgICAgICAgICAgIGZp
ZWxkcywKKyAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKKyAgICAgICAgICAgIGNv
bW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFLAorICAgICAgICAgICAgRmFsc2UpCisKKyAgICAg
ICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCisgICAgICAgICAgICBmaWVsZHMsCisgICAg
ICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsCisgICAgICAgICAgICBjb21tb24uVVBH
UkFERV9DT05ORUNUSU9OX1RZUEUsCisgICAgICAgICAgICBGYWxzZSkKKworICAgICAgICBhY2Nl
cHQgPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoCisgICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCisKKyAgICAgICAgIyBWYWxpZGF0ZQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBiaW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2Nl
cHQpCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBIYW5k
c2hha2VFcnJvcigKKyAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVz
OiAlcicgJQorICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVB
REVSLCBhY2NlcHQpKQorCisgICAgICAgIGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoKKyAg
ICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICdE
ZWNvZGVkIHZhbHVlIG9mICVzIGlzIG5vdCAyMC1ieXRlIGxvbmcnICUKKyAgICAgICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQorCisgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIgKCVz
KScsCisgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQorCisg
ICAgICAgIGJpbmFyeV9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKKyAgICAgICAg
ICAgIHNlbGYuX2tleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCisg
ICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVjdGVk
X2FjY2VwdCkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnRXhw
ZWN0ZWQgcmVzcG9uc2UgZm9yIGNoYWxsZW5nZTogJXIgKCVzKScsCisgICAgICAgICAgICBleHBl
Y3RlZF9hY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQorCisgICAg
ICAgIGlmIGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6CisgICAgICAgICAgICByYWlzZSBDbGll
bnRIYW5kc2hha2VFcnJvcigKKyAgICAgICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6ICVy
IChleHBlY3RlZDogJXMpJyAlCisgICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VU
X0FDQ0VQVF9IRUFERVIsIGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKKworICAgICAgICBkZWZs
YXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKKyAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX2Fj
Y2VwdGVkID0gRmFsc2UKKworICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQo
CisgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5sb3dl
cigpKQorICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KKyAgICAgICAgaWYgZXh0ZW5z
aW9uc19oZWFkZXIgaXMgbm90IE5vbmUgYW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0gMDoK
KyAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9u
cyhleHRlbnNpb25zX2hlYWRlclswXSkKKworICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0
IHRoZSBuZXcgc3R5bGUgcGVyZnJhbWUgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgorICAgICAgICBm
b3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6CisgICAgICAgICAgICBleHRlbnNp
b25fbmFtZSA9IGV4dGVuc2lvbi5uYW1lKCkKKyAgICAgICAgICAgIGlmIChleHRlbnNpb25fbmFt
ZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gYW5kCisgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lKToKKyAgICAgICAgICAgICAgICBkZWZsYXRlX2Zy
YW1lX2FjY2VwdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCisgICAgICAgICAgICAgICAgdW51c2Vk
X2V4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
KyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNzb3IK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9uX25h
bWUgPT0gY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gYW5kCisgICAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgorICAgICAgICAg
ICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCA9IFRydWUKKworICAgICAgICAgICAg
ICAgIGZyYW1lciA9IF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24pCisg
ICAgICAgICAgICAgICAgZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUp
CisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlID0g
ZnJhbWVyCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5zaW9u
ICVyJyAlIGV4dGVuc2lvbl9uYW1lKQorCisgICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxh
dGVfZnJhbWUgYW5kIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKKyAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgJXMs
IGJ1dCB0aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCisgICAgICAgICAgICAgICAgY29tbW9uLkRF
RkxBVEVfRlJBTUVfRVhURU5TSU9OKQorCisgICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9w
ZXJtZXNzYWdlX2RlZmxhdGUgYW5kCisgICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZsYXRl
X2FjY2VwdGVkKToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAg
ICAgICAgICAgICAgICAgICAnUmVxdWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBp
dCcgJQorICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tldC1Q
cm90b2NvbAorICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMuCisK
KworY2xhc3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFrZUJh
c2UpOgorICAgICIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yCisg
ICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50IHRv
CisgICAgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYpLgorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6CisgICAgICAgIHN1cGVyKENs
aWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCwgc2VsZikuX19pbml0X18oKQorCisgICAgICAg
IHNlbGYuX3NvY2tldCA9IHNvY2tldAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwor
CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisg
ICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgb3IKKyAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6CisgICAgICAgICAgICBsb2dnaW5n
LmNyaXRpY2FsKCdIeUJpIDAwIGRvZXNuXCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQorICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKKworICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6CisgICAgICAgICIi
IlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0LgorCisg
ICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5kc2hh
a2UgZmFpbGVkLgorICAgICAgICAiIiIKKworICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3Qg
bGluZS4KKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5lKHNl
bGYuX29wdGlvbnMucmVzb3VyY2UpKQorICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUg
YW4gZW1wdHkgbGlzdCBvZiBzdHJpbmdzLgorICAgICAgICBmaWVsZHMgPSBbXQorICAgICAgICAj
IDQuMSA3LiBBZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4K
KyAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKKyAgICAgICAg
IyA0LjEgOC4gQWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMv
LgorICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKKyAgICAgICAgIyA0
LjEgOS0xMi4gQWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVsZHMuYXBw
ZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9ob3N0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCisgICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2lu
OiBmaWVsZCB0byAvZmllbGRzLy4KKyAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3JpZ2lu
OgorICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAg
ICAgJ1NwZWNpZnkgdGhlIG9yaWdpbiBvZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBmbGFn
JykKKyAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lOX0hF
QURFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
Lm9yaWdpbikpCisgICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVByb3Rv
Y29sOiBmaWVsZCB0byAvZmllbGRzLy4KKyAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNvb2tp
ZSBoZWFkZXJzIHRvIC9maWVsZHMvLgorCisgICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2VjLVdl
YlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxkcy8uCisgICAgICAgIHNlbGYuX251bWJlcjEsIGtleTEg
PSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQorICAgICAgICBmaWVsZHMuYXBw
ZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwga2V5
MSkpCisgICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vi
c29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBz
ZWxmLl9udW1iZXIyKQorICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChjb21t
b24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUiwga2V5MikpCisKKyAgICAgICAgZmllbGRzLmFw
cGVuZCgnJXM6IDBcclxuJyAlIGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikKKwor
ICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRv
bSBvcmRlcjogc2VuZCB0aGUKKyAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZv
bGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKKyAgICAgICAgIyBSRVRV
Uk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCisgICAgICAgIHJhbmRv
bS5zaHVmZmxlKGZpZWxkcykKKyAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKKyAgICAgICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQorICAgICAgICAjIDQuMSAyNS4gc2VuZCBh
IFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECisg
ICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgorICAgICAgICBzZWxmLl9zb2NrZXQuc2Vu
ZGFsbCgnXHJcbicpCisgICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNv
bnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgorICAgICAgICAjIGVxdWl2YWxlbnRs
eSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIp
LgorICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCisgICAgICAgICMg
NC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgorICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbChzZWxmLl9rZXkzKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAg
ICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMp
KQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCisKKyAgICAg
ICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUg
Y29ubmVjdGlvbgorICAgICAgICAjIGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0
IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1ZGluZworICAgICAgICAjIHRoZSAweDBBIGJ5
dGVzLgorICAgICAgICBmaWVsZCA9ICcnCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgICAgIGZpZWxk
ICs9IGNoCisgICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgorICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywg
b3IgaWYgdGhlIGxhc3QKKyAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEg
cmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAorICAgICAgICAjIGNvbnRhaW4gYXQgbGVh
c3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KKyAg
ICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGxlbihmaWVsZCkgPCA3
IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgorICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKKyAgICAgICAg
bSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCisgICAgICAgIGlmIG0gaXMg
Tm9uZToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAg
ICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBm
aWVsZCkKKyAgICAgICAgIyA0LjEgMjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAv
ZmllbGQvIHRoYXQgc3RhcnRzIGZyb20gdGhlCisgICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmly
c3QgMHgyMCBieXRlLCBhbmQgZW5kcyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKKyAgICAgICAg
IyBzZWNvbmQgMHgyMCBieXRlLgorICAgICAgICBjb2RlID0gbS5ncm91cCgxKQorICAgICAgICAj
IDQuMSAzMC4gaWYgL2NvZGUvIGlzIG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2Yg
dGhlIGJ5dGVzIGluCisgICAgICAgICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAg
dG8gMHg5MCwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQKKyAgICAgICAgIyBjb25uZWN0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTld
WzAtOV0nLCBjb2RlKToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAor
ICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBp
biBzdGF0dXMgbGluZTogJXInICUKKyAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQorICAg
ICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIs
IHRoZW4gbW92ZSB0byB0aGUKKyAgICAgICAgIyBuZXh0IHN0ZXAuCisgICAgICAgIGlmIGNvZGUg
IT0gJzEwMSc6CisgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKKyAgICAg
ICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGlu
IHN0YXR1cyBsaW5lOiAnCisgICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkpCisg
ICAgICAgICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCisgICAgICAgIGZp
ZWxkcyA9IHNlbGYuX3JlYWRfZmllbGRzKCkKKyAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJv
Y2Vzc2luZ18KKyAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgorICAgICAgICBjaCA9
IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgaWYgY2ggIT0gJ1xuJzog
ICMgMHgwQQorICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVjdGVk
IExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKKyAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMv
CisgICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKKyAgICAgICAgIyBpZiB0aGUgZW50cnkn
cyBuYW1lIGlzICJ1cGdyYWRlIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0
bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKKyAgICAgICAgIyAgdGhlbiBmYWls
IHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAg
IF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLAorICAgICAg
ICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAorICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tF
VF9VUEdSQURFX1RZUEVfSElYSUU3NSwKKyAgICAgICAgICAgIFRydWUpCisgICAgICAgICMgaWYg
dGhlIGVudHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKKyAgICAgICAgIyAgaWYgdGhlIHZhbHVl
LCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAorICAg
ICAgICAjICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQg
Y29ubmVjdGlvbiBhbmQKKyAgICAgICAgIyAgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIF92
YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLAorICAgICAgICAg
ICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLAorICAgICAgICAgICAgY29tbW9uLlVQR1JBREVf
Q09OTkVDVElPTl9UWVBFLAorICAgICAgICAgICAgRmFsc2UpCisKKyAgICAgICAgb3JpZ2luID0g
X2dldF9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dF
QlNPQ0tFVF9PUklHSU5fSEVBREVSKQorCisgICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5kYXRv
cnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9MT0NB
VElPTl9IRUFERVIpCisKKyAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0
aW9uLCBjb29raWUsIC4uCisKKyAgICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0
aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEvLAorICAgICAgICAjIGV4cHJlc3NlZCBhcyBh
IGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAorICAgICAg
ICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2Yg
L2tleV8zLyBpbiB0aGUKKyAgICAgICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2ly
ZS4KKyAgICAgICAgY2hhbGxlbmdlID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkK
KyAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCisg
ICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9rZXkzCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAorICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5o
ZXhpZnkoY2hhbGxlbmdlKSkKKworICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUg
dGhlIE1ENSBmaW5nZXJwcmludCBvZiAvY2hhbGxlbmdlLyBhcyBhCisgICAgICAgICMgYmlnLWVu
ZGlhbiAxMjggYml0IHN0cmluZy4KKyAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNo
YWxsZW5nZSkuZGlnZXN0KCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAg
ICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCisgICAgICAgICAgICBl
eHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQpKQorCisgICAgICAgICMgNC4xIDQ0LiByZWFk
IHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVyLgorICAgICAgICAjIGxldCAvcmVwbHkvIGJl
IHRob3NlIGJ5dGVzLgorICAgICAgICByZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tl
dCwgMTYpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdBY3R1YWwg
Y2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkK
KworICAgICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9l
eHBlY3RlZC8sIHRoZW4gZmFpbAorICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgorICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgJ0Jh
ZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUKKyAg
ICAgICAgICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKKyAgICAgICAgIyA0LjEgNDYuIFRoZSAq
V2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgorCisgICAgZGVmIF9nZW5lcmF0
ZV9zZWNfd2Vic29ja2V0X2tleShzZWxmKToKKyAgICAgICAgIyA0LjEgMTYuIGxldCAvc3BhY2Vz
X24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KKyAgICAgICAg
c3BhY2VzID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCisgICAgICAgICMgNC4xIDE3LiBsZXQgL21h
eF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KKyAgICAgICAgIyAg
NCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCisgICAgICAgIG1heG51bSA9IDQy
OTQ5NjcyOTUgLyBzcGFjZXMKKyAgICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJlIGEg
cmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KKyAgICAgICAgIyBpbmNsdXNpdmUuCisg
ICAgICAgIG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkKKyAgICAgICAgIyA0LjEg
MTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1iZXJf
bi8gYW5kCisgICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KKyAgICAgICAgcHJvZHVjdCA9
IG51bWJlciAqIHNwYWNlcworICAgICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBzdHJp
bmcgY29uc2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCisgICAgICAgICMgaW4gYmFz
ZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVSTyAo
MCkgdG8KKyAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCisgICAgICAgIGtleSA9IHN0
cihwcm9kdWN0KQorICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0d2Vs
dmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKKyAgICAgICAgIyByYW5nZSBVKzAwMjEgdG8g
VSswMDJGIGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KKyAgICAg
ICAgIyBwb3NpdGlvbnMuCisgICAgICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEsIDB4
MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQorICAgICAgICBuID0gcmFuZG9tLnJhbmRp
bnQoMSwgMTIpCisgICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKKyAgICAgICAgICAgIGNoID0g
cmFuZG9tLmNob2ljZShhdmFpbGFibGVfY2hhcnMpCisgICAgICAgICAgICBwb3MgPSByYW5kb20u
cmFuZGludCgwLCBsZW4oa2V5KSkKKyAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBjaHIo
Y2gpICsga2V5W3BvczpdCisgICAgICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBVKzAw
MjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKKyAgICAgICAgIyByYW5kb20gcG9z
aXRpb25zIG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCisgICAgICAgIGZv
ciBfIGluIHhyYW5nZShzcGFjZXMpOgorICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQo
MSwgbGVuKGtleSkgLSAxKQorICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyArIGtl
eVtwb3M6XQorICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkKKworICAgIGRlZiBfZ2VuZXJhdGVf
a2V5MyhzZWxmKToKKyAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29u
c2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCisgICAgICAgICMgZXF1aXZhbGVudGx5
LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlciku
CisgICAgICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9y
IF8gaW4geHJhbmdlKDgpXSkKKworCitjbGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6Cisg
ICAgIiIiQSB3cmFwcGVyIGZvciBzb2NrZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nvbm4g
aW50ZXJmYWNlLgorICAgIG1vZF9weXdlYnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGJl
IHdvcmtpbmcgb24gQXBhY2hlIG1vZF9weXRob24ncworICAgIG1wX2Nvbm4gb2JqZWN0LgorICAg
ICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6CisgICAgICAgIHNlbGYuX3Nv
Y2tldCA9IHNvY2tldAorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxm
Ll9zb2NrZXQuc2VuZGFsbChkYXRhKQorCisgICAgZGVmIHJlYWQoc2VsZiwgbik6CisgICAgICAg
IHJldHVybiBzZWxmLl9zb2NrZXQucmVjdihuKQorCisgICAgZGVmIGdldF9yZW1vdGVfYWRkcihz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCisgICAgcmVt
b3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCisKKworY2xhc3MgQ2xpZW50UmVx
dWVzdChvYmplY3QpOgorICAgICIiIkEgd3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQgYWJs
ZSB0byBwYXNzIGEgc29ja2V0IG9iamVjdCB0bworICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdCBh
IG1wX3JlcXVlc3Qgb2JqZWN0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNv
Y2tldCk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAorICAgICAgICBzZWxmLmNvbm5lY3Rp
b24gPSBDbGllbnRDb25uZWN0aW9uKHNvY2tldCkKKworCitkZWYgX2ltcG9ydF9zc2woKToKKyAg
ICBnbG9iYWwgc3NsCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgc3NsCisgICAgICAgIHJldHVy
biBUcnVlCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICByZXR1cm4gRmFsc2UKKwor
CitkZWYgX2ltcG9ydF9weW9wZW5zc2woKToKKyAgICBnbG9iYWwgT3BlblNTTAorICAgIHRyeToK
KyAgICAgICAgaW1wb3J0IE9wZW5TU0wuU1NMCisgICAgICAgIHJldHVybiBUcnVlCisgICAgZXhj
ZXB0IEltcG9ydEVycm9yOgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBFY2hvQ2xp
ZW50KG9iamVjdCk6CisgICAgIiIiV2ViU29ja2V0IGVjaG8gY2xpZW50LiIiIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9u
cworICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0g
dXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAg
ICAiIiJSdW4gdGhlIGNsaWVudC4KKworICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiByZXBl
YXQgc2VuZGluZyBtZXNzYWdlIGFuZCByZWNlaXZpbmcgaXRzIGVjaG8uCisgICAgICAgICIiIgor
CisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzZWxmLl9z
b2NrZXQuc2V0dGltZW91dChzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0KQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5zZXJ2
ZXJfaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9wb3J0KSkKKyAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoKKyAg
ICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQgPSBfVExTU29ja2V0KAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudGxz
X21vZHVsZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lvbiwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lv
bikKKworICAgICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lv
bgorCisgICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDgg
b3IKKyAgICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyk6
CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vz
c29yKAorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCisg
ICAgICAgICAgICBlbGlmIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgorICAg
ICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5
YmkwMCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25zKQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAg
ICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXInICUg
dmVyc2lvbikKKworICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCisKKyAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKKwor
ICAgICAgICAgICAgcmVxdWVzdCA9IENsaWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQorCisgICAg
ICAgICAgICB2ZXJzaW9uX21hcCA9IHsKKyAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lP
Tl9IWUJJMDg6IGNvbW1vbi5WRVJTSU9OX0hZQkkwOCwKKyAgICAgICAgICAgICAgICBfUFJPVE9D
T0xfVkVSU0lPTl9IWUJJMTM6IGNvbW1vbi5WRVJTSU9OX0hZQkkxMywKKyAgICAgICAgICAgICAg
ICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KKyAgICAg
ICAgICAgIHJlcXVlc3Qud3NfdmVyc2lvbiA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCisKKyAgICAg
ICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgorICAgICAg
ICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKKyAgICAgICAg
ICAgICAgICBzdHJlYW1fb3B0aW9uID0gU3RyZWFtT3B0aW9ucygpCisgICAgICAgICAgICAgICAg
c3RyZWFtX29wdGlvbi5tYXNrX3NlbmQgPSBUcnVlCisgICAgICAgICAgICAgICAgc3RyZWFtX29w
dGlvbi51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCisKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLmRlZmxhdGVfZnJhbWUgaXMgbm90IEZhbHNlOgorICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzb3IgPSBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUKKyAgICAgICAgICAgICAgICAg
ICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCisKKyAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMgbm90
IEZhbHNlOgorICAgICAgICAgICAgICAgICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVzZV9w
ZXJtZXNzYWdlX2RlZmxhdGUKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0cmVh
bV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCisKKyAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0g
PSBTdHJlYW0ocmVxdWVzdCwgc3RyZWFtX29wdGlvbikKKyAgICAgICAgICAgIGVsaWYgdmVyc2lv
biA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6CisgICAgICAgICAgICAgICAgc2VsZi5fc3Ry
ZWFtID0gU3RyZWFtSGl4aWU3NShyZXF1ZXN0LCBUcnVlKQorCisgICAgICAgICAgICBmb3IgbGlu
ZSBpbiBzZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUpCisgICAgICAgICAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy52ZXJib3NlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnU2VuZDogJXMnICUg
bGluZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQg
PSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKKworICAgICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAn
UmVjdjogJXMnICUgcmVjZWl2ZWQKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBl
OgorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6CisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludCAnRXJyb3I6ICVzJyAlIGUKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UKKworICAgICAgICAgICAgc2VsZi5fZG9fY2xvc2luZ19oYW5kc2hha2UoKQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKKworICAgIGRl
ZiBfZG9fY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6CisgICAgICAgICIiIlBlcmZvcm0gY2xvc2lu
ZyBoYW5kc2hha2UgdXNpbmcgdGhlIHNwZWNpZmllZCBjbG9zaW5nIGZyYW1lLiIiIgorCisgICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpWy0xXSA9PSBfR09PREJZRV9N
RVNTQUdFOgorICAgICAgICAgICAgIyByZXF1ZXN0ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5n
IGhhbmRzaGFrZSwgc28KKyAgICAgICAgICAgICMgZXhwZWN0aW5nIGNsb3NpbmcgaGFuZHNoYWtl
IG1lc3NhZ2UgZnJvbSBzZXJ2ZXIuCisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnV2Fp
dCBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICAgICBt
ZXNzYWdlID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAgICBpZiBt
ZXNzYWdlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcHJpbnQgJ1JlY3YgY2xvc2UnCisgICAg
ICAgICAgICAgICAgcHJpbnQgJ1NlbmQgYWNrJworICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKAorICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2Ug
YW5kIHNlbnQgYWNrJykKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcHJpbnQgJ1Nl
bmQgY2xvc2UnCisgICAgICAgIHNlbGYuX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKKyAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgY2xvc2luZyBoYW5kc2hha2UnKQorICAgICAgICBw
cmludCAnUmVjdiBhY2snCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBhY2sn
KQorCisKK2RlZiBtYWluKCk6CisgICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0
Zi04Jykoc3lzLnN0ZG91dCkKKworICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCisgICAgIyBX
ZSBhY2NlcHQgLS1jb21tYW5kX2xpbmVfZmxhZyBzdHlsZSBmbGFncyB3aGljaCBpcyB0aGUgc2Ft
ZSBhcyBHb29nbGUKKyAgICAjIGdmbGFncyBpbiBhZGRpdGlvbiB0byBjb21tb24gLS1jb21tYW5k
LWxpbmUtZmxhZyBzdHlsZSBmbGFncy4KKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1z
ZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD0nbG9jYWxob3N0JywgaGVscD0nc2VydmVyIGhvc3QnKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctcCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAorICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKKyAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQnKQorICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbicsIHR5cGU9
J3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdvcmln
aW4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcicsICctLXJlc291cmNlJywgZGVzdD0ncmVz
b3VyY2UnLCB0eXBlPSdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy9l
Y2hvJywgaGVscD0ncmVzb3VyY2UgcGF0aCcpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywg
Jy0tbWVzc2FnZScsIGRlc3Q9J21lc3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAorICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9KCdjb21tYS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8gc2VuZC4gJworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyVzIHdpbGwgZm9yY2UgY2xvc2UgdGhlIGNvbm5lY3Rp
b24gZnJvbSBzZXJ2ZXIuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dPT0RCWUVf
TUVTU0FHRSkpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0PSd2
ZXJib3NlJywgYWN0aW9uPSdzdG9yZV9mYWxzZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1UcnVlLCBoZWxwPSdzdXBwcmVzcyBtZXNzYWdlcycpCisgICAgcGFyc2VyLmFkZF9vcHRp
b24oJy10JywgJy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8v
KS4gQnkgZGVmYXVsdCwgJworICAgICAgICAgICAgICAgICAgICAgICdpdCBsb29rcyBmb3Igc3Ns
IGFuZCBweU9wZW5TU0wgbW9kdWxlIGFuZCB1c2VzIGZvdW5kICcKKyAgICAgICAgICAgICAgICAg
ICAgICAnb25lLiBVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5IHdoaWNoIG1vZHVs
ZSAnCisgICAgICAgICAgICAgICAgICAgICAgJ3RvIHVzZScpCisgICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tdGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywKKyAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAg
IGNob2ljZXM9W19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCisg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVj
aWZpZWQuICcKKyAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYg
IiVzIiBpcyBzcGVjaWZpZWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFO
REFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbign
LS10bHMtdmVyc2lvbicsICctLXRsc192ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSd0bHNfdmVyc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5nJywg
ZGVmYXVsdD1fVExTX1ZFUlNJT05fU1NMMjMsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0n
VExTL1NTTCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCisgICAgICAgICAgICAgICAgICAg
ICAgX1RMU19WRVJTSU9OX1NTTDIzICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9yIDMpLCBcJycgKwor
ICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wnIChTU0wgdmVyc2lv
biAzKSwgXCcnICsKKyAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fVExTMSArICdc
JyAoVExTIHZlcnNpb24gMSknKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRpc2FibGUtdGxz
LWNvbXByZXNzaW9uJywgJy0tZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAorICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J2Rpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKKyAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J0Rpc2FibGUgVExTIGNvbXByZXNzaW9uLiBBdmFpbGFibGUgb25seSB3
aGVuICcKKyAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2VkLicp
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2Nr
ZXRfdGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQn
LCB0eXBlPSdpbnQnLCBkZWZhdWx0PV9USU1FT1VUX1NFQywKKyAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSdUaW1lb3V0KHNlYykgZm9yIHNvY2tldHMnKQorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLWRyYWZ0NzUnLCBkZXN0PSdkcmFmdDc1JywKKyAgICAgICAgICAgICAgICAgICAgICBhY3Rp
b249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J09ic29sZXRlIG9wdGlvbi4gRG9uXCd0IHVzZSB0aGlzLicpCisgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tcHJvdG9jb2wtdmVyc2lvbicsICctLXByb3RvY29sX3ZlcnNpb24nLAorICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9J3Byb3RvY29sX3ZlcnNpb24nLAorICAgICAgICAgICAgICAg
ICAgICAgIHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzLAor
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1dlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIHRv
IHVzZS4gT25lIG9mIFwnJyArCisgICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJ
T05fSFlCSTEzICsgJ1wnLCBcJycgKworICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9W
RVJTSU9OX0hZQkkwOCArICdcJywgXCcnICsKKyAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9D
T0xfVkVSU0lPTl9IWUJJMDAgKyAnXCcnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZlcnNp
b24taGVhZGVyJywgJy0tdmVyc2lvbl9oZWFkZXInLAorICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9J3ZlcnNpb25faGVhZGVyJywKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBk
ZWZhdWx0PS0xLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZnkgU2VjLVdlYlNv
Y2tldC1WZXJzaW9uIGhlYWRlciB2YWx1ZScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGVm
bGF0ZS1mcmFtZScsICctLWRlZmxhdGVfZnJhbWUnLAorICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9J2RlZmxhdGVfZnJhbWUnLAorICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVf
dHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHRo
ZSBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXVz
ZS1wZXJtZXNzYWdlLWRlZmxhdGUnLCAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKKyAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKKyAgICAgICAg
ICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lv
bi4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcs
IHR5cGU9J2Nob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywg
ZGVmYXVsdD0nd2FybicsCisgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywg
J2luZm8nLCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J0xvZyBsZXZlbC4nKQorCisgICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9IHBh
cnNlci5wYXJzZV9hcmdzKCkKKworICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2lu
Zy5nZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCisKKyAgICBpZiBvcHRp
b25zLmRyYWZ0NzU6CisgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJhZnQ3NSBvcHRpb24g
aXMgb2Jzb2xldGUuJykKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIG9wdGlvbnMucHJv
dG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1OgorICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKAorICAgICAgICAgICAgJ1ZhbHVlICVzIGlzIG9ic29sZXRlIGZvciAtLXBy
b3RvY29sX3ZlcnNpb24gb3B0aW9ucycgJQorICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05f
SElYSUU3NSkKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIG9wdGlvbnMudXNlX3RsczoK
KyAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBf
aW1wb3J0X3NzbCgpOgorICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNf
QllfU1RBTkRBUkRfTU9EVUxFCisgICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcg
c3NsIG1vZHVsZScpCisgICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6CisgICAg
ICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKKyAgICAg
ICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1v
ZHVsZS4nKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIGVsaWYgb3B0aW9u
cy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgaWYg
bm90IF9pbXBvcnRfc3NsKCk6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3Ns
IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKKyAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQor
ICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKKyAg
ICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgorICAgICAgICAgICAgICAgIGxv
Z2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCisgICAg
ICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dp
bmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCisgICAgICAgICAgICBzeXMu
ZXhpdCgxKQorCisgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uIGFu
ZAorICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlICE9IF9UTFNfQllfUFlPUEVOU1NMKToK
KyAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJsZSBUTFMgY29tcHJl
c3Npb24gb25seSB3aGVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5T3BlblNT
TCBtb2R1bGUgaXMgdXNlZC4nKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBlbHNlOgor
ICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBs
b2dnaW5nLmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdp
dGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQor
ICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgICAgICBpZiBvcHRpb25zLmRpc2FibGVfdGxz
X2NvbXByZXNzaW9uOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tZGlzYWJs
ZS10bHMtY29tcHJlc3Npb24gb25seSB0b2dldGhlciAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICd3aXRoIC0tdXNlLXRscyBvcHRpb24uJykKKyAgICAgICAgICAgIHN5cy5leGl0KDEp
CisKKyAgICAjIERlZmF1bHQgcG9ydCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0aGVyIFRMUyBpcyB1
c2VkLgorICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQgPT0gX1VOREVGSU5FRF9QT1JUOgorICAg
ICAgICBpZiBvcHRpb25zLnVzZV90bHM6CisgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0
ID0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NL
RVRfUE9SVAorCisgICAgIyBvcHRwYXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIG5vbi1hc2Np
aSBkZWZhdWx0IHZhbHVlcy4KKyAgICAjIFNldCBkZWZhdWx0IG1lc3NhZ2UgaGVyZS4KKyAgICBp
ZiBub3Qgb3B0aW9ucy5tZXNzYWdlOgorICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSB1J0hlbGxv
LFx1NjVlNVx1NjcyYycgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKworICAgIEVjaG9DbGllbnQo
b3B0aW9ucykucnVuKCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1haW4o
KQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9f
bm9leHRfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFkZjUxNTEyMjcxMTFlMTE0NDI0YzU1ODZhMTQyYTlhZGI3ZDYwNGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKQEAgLTAsMCArMSw2MSBAQAorIyBD
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKworX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKKworCitkZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgIiIiUmVjZWl2ZWQg
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZSBpcyBwYXJzZWQgaW50bworICAg
IHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMuIHB5d2Vic29ja2V0IGNyZWF0ZXMgZXh0
ZW5zaW9uCisgICAgcHJvY2Vzc29ycyB1c2luZyBpdCBiZWZvcmUgZG9fZXh0cmFfaGFuZHNoYWtl
IGNhbGwgYW5kIG5ldmVyIGxvb2tzIGF0IGl0CisgICAgYWZ0ZXIgdGhlIGNhbGwuCisKKyAgICBU
byByZWplY3QgcmVxdWVzdGVkIGV4dGVuc2lvbnMsIGNsZWFyIHRoZSBwcm9jZXNzb3IgbGlzdC4K
KyAgICAiIiIKKworICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQorCisK
K2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgIiIiRWNoby4gU2Ft
ZSBhcyBlY2hvX3dzaC5weS4iIiIKKworICAgIHdoaWxlIFRydWU6CisgICAgICAgIGxpbmUgPSBy
ZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQorICAgICAgICBpZiBsaW5lIGlzIE5v
bmU6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmlj
b2RlKToKKyAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBi
aW5hcnk9RmFsc2UpCisgICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCisKKworIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob193c2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvZWNob193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2NDZjMzJjZWI1MTVmMTVkZDU3MjYyMjY4
OWM3OWVlNjFlNTQzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5w
eQpAQCAtMCwwICsxLDU0IEBACisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitfR09PREJZRV9NRVNTQUdF
ID0gdSdHb29kYnllJworCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1
ZXN0KToKKyAgICAjIFRoaXMgZXhhbXBsZSBoYW5kbGVyIGFjY2VwdHMgYW55IHJlcXVlc3QuIFNl
ZSBvcmlnaW5fY2hlY2tfd3NoLnB5IGZvciBob3cKKyAgICAjIHRvIHJlamVjdCBhY2Nlc3MgZnJv
bSB1bnRydXN0ZWQgc2NyaXB0cyBiYXNlZCBvbiBvcmlnaW4gdmFsdWUuCisKKyAgICBwYXNzICAj
IEFsd2F5cyBhY2NlcHQuCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVj
ZWl2ZV9tZXNzYWdlKCkKKyAgICAgICAgaWYgbGluZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIGlmIGlzaW5zdGFuY2UobGluZSwgdW5pY29kZSk6CisgICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNlKQorICAgICAg
ICAgICAgaWYgbGluZSA9PSBfR09PREJZRV9NRVNTQUdFOgorICAgICAgICAgICAgICAgIHJldHVy
bgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNz
YWdlKGxpbmUsIGJpbmFyeT1UcnVlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJj
ZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWRkZGYyMzdjZjdkNDc2NDk3MzQ3ZDA5NWExMjI5OTQxNzdlMTQw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKQEAgLTAs
MCArMSw1NCBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIi
VGhpcyBDR0kgc2NyaXB0IGdlbmVyYXRlcyB0ZXh0L2V2ZW50LXN0cmVhbSB0eXBlIGRhdGEgc3Ry
ZWFtIGZvciB0ZXN0aW5nCit0aGUgU2VydmVyLVNlbnQgRXZlbnRzLgorCitJdCB3aWxsIG9ubHkg
d29yayBjb3JyZWN0bHkgd2l0aCBIVFRQIHNlcnZlcnMgdGhhdCBkbyBub3QgYnVmZmVyIHRoZSBv
dXRwdXQgb2YKK0NHSSBzY3JpcHRzLgorIiIiCisKKworaW1wb3J0IHN5cworaW1wb3J0IHRpbWUK
Kworc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC10eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbVxyXG5c
clxuJykKKworaWQgPSAwCisKK3doaWxlIFRydWU6CisgIHN5cy5zdGRvdXQud3JpdGUoJ2RhdGE6
IEhlbGxvXHJcbmlkOiAlZFxyXG5cclxuJyAlIGlkKQorICBzeXMuc3Rkb3V0LmZsdXNoKCkKKwor
ICBpZCA9IGlkICsgMQorCisgIHRpbWUuc2xlZXAoMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9ldmVudHNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTU5OGE4ODA3ZDFmZmNjZWNmNTg1ZjFiYjY1NmZkMmQ5MDJmY2QzOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCkBAIC0wLDAgKzEsNzQgQEAK
KzwhLS0KK0NvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Citub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCitjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCitpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCitkaXN0cmlidXRpb24uCisgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCitjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKK09XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKK1RIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0tPgorCis8IS0tCitTaW1wbGUgZXhhbXBsZSBv
ZiB0aGUgU2VydmVyLVNlbnQgRXZlbnRzCitodHRwOi8vZGV2LnczLm9yZy9odG1sNS9ldmVudHNv
dXJjZS8KKworRm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgV2ViU29ja2V0IFByb3RvY29sICYgQVBJ
LgorCitSdW4gdGhlIHB5d2Vic29ja2V0IHdpdGggdGhlIC0tY2dpX3BhdGggcGFyYW1ldGVyLgor
LS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2VydmVyLVNlbnQgRXZlbnRzIEV4YW1wbGU8
L3RpdGxlPgorPHNjcmlwdD4KK3ZhciBldmVudFNvdXJjZSA9IG51bGw7CisKK2Z1bmN0aW9uIGFk
ZFRvTG9nKGRhdGEpIHsKKyAgbG9nQm94LnZhbHVlICs9IGRhdGEgKyAnXG4nOworICBsb2dCb3gu
c2Nyb2xsVG9wID0gMTAwMDAwMDsKK30KKworZnVuY3Rpb24gaW5pdCgpIHsKKyAgbG9nQm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisgIGV2ZW50U291cmNlICA9IG5ldyBF
dmVudFNvdXJjZSgnL2V2ZW50c291cmNlLmNnaScpOworICBldmVudFNvdXJjZS5vbm9wZW4gPSBm
dW5jdGlvbigpIHsKKyAgICBhZGRUb0xvZygnb25vcGVuIChyZWFkeVN0YXRlID0gJyArIGV2ZW50
U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOworICB9CisgIGV2ZW50U291cmNlLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWRkVG9Mb2coZXZlbnQuZGF0YSk7CisgIH0KKyAgZXZl
bnRTb3VyY2Uub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWRkVG9Mb2coJ29uZXJy
b3IgKHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSArICcpJyk7CisgIH0K
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorPHRleHRhcmVh
IGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzxwIHN0
eWxlPSJmb250LXNpemU6IHNtYWxsIj4KKyAgTWFrZSBzdXJlIHRoYXQgcHl3ZWJzb2NrZXQgaXMg
cnVuIHdpdGggLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEwNWViNjdhNTUzMmI3NmJjOTdi
ZjgzMTA4YTE5ZTA0M2U1NGYzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRj
aF9iZW5jaG1hcmsuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCEtLQorQ29weXJpZ2h0IDIwMTUg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKK2xpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQg
aW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAoraHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20v
b3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCistLT4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+RmV0
Y2ggQVBJIGJlbmNobWFyazwvdGl0bGU+Cis8c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJmZXRj
aF9iZW5jaG1hcmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBhZGRyZXNzQm94ID0gbnVs
bDsKKworZnVuY3Rpb24gZ2V0Q29uZmlnKCkgeworICByZXR1cm4geworICAgIHByZWZpeFVybDog
YWRkcmVzc0JveC52YWx1ZSwKKyAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3By
aW50c2l6ZScpLAorICAgIG51bUZldGNoZXM6IGdldEludEZyb21JbnB1dCgnbnVtRmV0Y2hlcycp
LAorICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdlcy4KKyAgICBudW1JdGVyYXRpb25zOiBn
ZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwKKyAgICBudW1XYXJtVXBJdGVyYXRpb25z
OiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJhdGlvbnMnKSwKKyAgICBzdGFydFNpemU6
IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyksCisgICAgLy8gU3RvcHMgYmVuY2htYXJrIHdo
ZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRoaXMgdGhyZXNob2xkLgorICAgIHN0b3BU
aHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRocmVzaG9sZCcpLAorICAgIG11bHRpcGxp
ZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0KCdtdWx0aXBsaWVycycpLAorICAgIHZlcmlmeURh
dGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRhdGEnKSwKKyAgICBhZGRUb0xvZzogYWRk
VG9Mb2csCisgICAgYWRkVG9TdW1tYXJ5OiBhZGRUb1N1bW1hcnksCisgICAgbWVhc3VyZVZhbHVl
OiBtZWFzdXJlVmFsdWUsCisgICAgbm90aWZ5QWJvcnQ6IG5vdGlmeUFib3J0CisgIH07Cit9CisK
K2Z1bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygp
OworICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFk
aW8nKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwg
J3NlbmRCZW5jaG1hcmsnKTsKK30KKworZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgewor
ICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7CisgIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0cmlu
Z0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOworICBkb0FjdGlvbihjb25maWcsIGdldEJv
b2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAncmVjZWl2ZUJlbmNobWFyaycpOworfQorCitmdW5j
dGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Cisg
IGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdiYXRjaEJl
bmNobWFyaycpOworfQorCitmdW5jdGlvbiBvblN0b3AoKSB7CisgIHZhciBjb25maWcgPSBnZXRD
b25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXIn
KSwgJ3N0b3AnKTsKK30KKworZnVuY3Rpb24gaW5pdCgpIHsKKyAgYWRkcmVzc0JveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7CisgIGxvZ0JveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2cnKTsKKworICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N1bW1hcnknKTsKKworICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2YgcHl3ZWJzb2NrZXQgZm9y
IFhIUi9GZXRjaCBBUEkgYmVuY2htYXJrLgorICBhZGRyZXNzQm94LnZhbHVlID0gJy8wNzNiZTAw
MWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NSc7CisKKyAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRv
ci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7CisgIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdh
dG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKKworICBpbml0V29ya2VyKCdmZXRjaCcsICcn
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorCis8Zm9y
bSBpZD0iYmVuY2htYXJrX2Zvcm0iPgorICB1cmwgcHJlZml4IDxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2Vu
ZCIgb25jbGljaz0ib25TZW5kQmVuY2htYXJrKCkiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2
YWx1ZT0icmVjZWl2ZSIgb25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgorICA8aW5wdXQg
dHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+
CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+
CisKKyAgPGJyLz4KKworICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNo
ZWNrZWQ+CisgIDxsYWJlbCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIg
bWVzc2FnZTwvbGFiZWw+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEi
IGNoZWNrZWQ+CisgIDxsYWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4K
KyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0id29ya2VyIj4KKyAgPGxhYmVsIGZvcj0id29y
a2VyIj5SdW4gb24gd29ya2VyPC9sYWJlbD4KKworICA8YnIvPgorCisgIFBhcmFtZXRlcnM6CisK
KyAgPGJyLz4KKworICA8dGFibGU+CisgICAgPHRyPgorICAgICAgPHRkPk51bWJlciBvZiBmZXRj
aCgpIHJlcXVlc3RzPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bUZl
dGNoZXMiIHZhbHVlPSIxIj48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPk51
bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9
Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAg
ICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgorICAgICAgPHRkPjxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9IjAiPjwvdGQ+Cisg
ICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+CisgICAgICA8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0MCI+PC90ZD4KKyAg
ICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwvdGQ+CisgICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1ZT0iMTAyNDAwMDAw
Ij48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4K
KyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwg
MiI+PC90ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorCisgIFNldCBkYXRhIHR5cGUKKyAgPGlu
cHV0IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAgICAg
IGlkPSJkYXRhdHlwZXJhZGlvdGV4dCIKKyAgICAgICAgIHZhbHVlPSJ0ZXh0IgorICAgICAgICAg
Y2hlY2tlZD48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvdGV4dCI+dGV4dDwvbGFiZWw+CisgIDxp
bnB1dCB0eXBlPSJyYWRpbyIKKyAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCisgICAgICAg
ICBpZD0iZGF0YXR5cGVyYWRpb2Jsb2IiCisgICAgICAgICB2YWx1ZT0iYmxvYiIKKyAgICAgICAg
ID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYmxvYiI+YmxvYjwvbGFiZWw+CisgIDxpbnB1dCB0
eXBlPSJyYWRpbyIKKyAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCisgICAgICAgICBpZD0i
ZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIgorICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVyIgor
ICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciI+YXJyYXlidWZm
ZXI8L2xhYmVsPgorPC9mb3JtPgorCis8ZGl2IGlkPSJsb2dfZGl2Ij4KKyAgPHRleHRhcmVhCisg
ICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3Rl
eHRhcmVhPgorPC9kaXY+Cis8ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+CisgIFN1bW1hcnkKKyAgPHRl
eHRhcmVhCisgICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIg
cmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwvZGl2PgorCis8ZGl2IGlkPSJub3RlX2RpdiI+CisgIE5v
dGU6CisgIDx1bD4KKyAgICA8bGk+RWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVudCBmb3IgQXJy
YXlCdWZmZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3QgZWxpbWluYXRl
ZC48L2xpPgorICAgIDxsaT5UaGUgU3RkZGV2IGNvbHVtbiBzaG93cyBOYU4gd2hlbiB0aGUgbnVt
YmVyIG9mIGl0ZXJhdGlvbnMgaXMgc2V0IHRvIDEuPC9saT4KKyAgPC91bD4KKzwvZGl2PgorCis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJr
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzk1MjE5
MGE4ZTA3MzllM2EwZjJhNDhjYjgzZGJlOWIzMDE1Mzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcwpAQCAtMCwwICsxLDIyNSBAQAorLy8gQ29weXJp
Z2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorLy8gbGljZW5zZSB0
aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0CisvLyBodHRwczovL2Rl
dmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKKwordmFyIGlzV29y
a2VyID0gdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiOworCitpZiAoaXNXb3Jr
ZXIpIHsKKyAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgorICBpbXBvcnRTY3JpcHRzKCd1dGlsLmpz
JywgJ3V0aWxfd29ya2VyLmpzJyk7Cit9CisKKy8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBnbG9i
YWxzLgordmFyIGJlbmNobWFyayA9IHt9OworYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSAwOwor
Cit2YXIgdGltZXJJRCA9IG51bGw7CisKK2Z1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNpemUs
IGNvbmZpZywgaXNXYXJtVXApIHsKKyAgdGltZXJJRCA9IG51bGw7CisgIGJlbmNobWFyay5zdGFy
dFRpbWVJbk1zID0gbnVsbDsKKworICAvLyBQcmVwYXJlIGRhdGEuCisgIHZhciBkYXRhQXJyYXkg
PSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7Cisg
ICAgdmFyIGRhdGEgPSBudWxsOworICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2FycmF5YnVm
ZmVyJyB8fAorICAgICAgICBjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7CisgICAgICBkYXRh
ID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOworCisgICAgICBmaWxsQXJyYXlCdWZmZXIoZGF0YSwg
MHg2MSk7CisKKyAgICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7CisgICAgICAg
IGRhdGEgPSBuZXcgQmxvYihbZGF0YV0pOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBk
YXRhID0gcmVwZWF0U3RyaW5nKCdhJywgc2l6ZSk7CisgICAgfQorCisgICAgZGF0YUFycmF5LnB1
c2goZGF0YSk7CisgIH0KKworICAvLyBTdGFydCB0aW1lIG1lYXN1cmluZy4KKyAgYmVuY2htYXJr
LnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKKworICAvLyBTdGFydCBmZXRjaC4KKyAg
dmFyIHByb21pc2VzID0gW107CisgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bUZldGNo
ZXM7ICsraSkgeworICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOworICAgIHZhciBwcm9taXNl
ID0gZmV0Y2goY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsCisgICAgICAgICAgICAgICAgICAg
ICAgICB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6IGRhdGF9KQorICAgICAgICAudGhlbihmdW5jdGlv
biAocmVzcG9uc2UpIHsKKyAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkgewor
ICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgcmVzcG9uc2Uu
c3RhdHVzICsgJyknKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOworICAg
ICAgICAgIH0KKyAgICAgICAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVk
LgorICAgICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldCgnVmlhJykgIT09IG51bGwpIHsK
KyAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnV0FSTklORzogcHJveHkgc2VlbXMgZW5hYmxl
ZC4nKTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKSB7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpCisgICAgICAgICAgICAgICAgLnRoZW4o
ZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgICAgICAgICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRn
ZW1lbnQoY29uZmlnLCB0ZXh0LCBzaXplKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7
CisgIH0KKworICAvLyBGaW5pc2ggYW5kIHJlcG9ydCB0aW1lIG1lYXN1cmluZy4KKyAgUHJvbWlz
ZS5hbGwocHJvbWlzZXMpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKGJl
bmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKKyAgICAgICAgICBjb25maWcuYWRkVG9M
b2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOworICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
amVjdCgpOworICAgICAgICB9CisgICAgICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcs
IHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLAorICAgICAgICAgIHNpemUgKiBjb25maWcu
bnVtRmV0Y2hlcywgaXNXYXJtVXApOworICAgICAgICBydW5OZXh0VGFzayhjb25maWcpOworICAg
ICAgfSkKKyAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7CisgICAgICAgIGNvbmZpZy5hZGRUb0xv
ZygiRVJST1I6ICIgKyBlKTsKKyAgICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICB9
KTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dh
cm1VcCkgeworICB0aW1lcklEID0gbnVsbDsKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBu
dWxsOworCisgIC8vIFN0YXJ0IHRpbWUgbWVhc3VyaW5nLgorICBiZW5jaG1hcmsuc3RhcnRUaW1l
SW5NcyA9IGdldFRpbWVTdGFtcCgpOworCisgIC8vIFN0YXJ0IGZldGNoLgorICB2YXIgcHJvbWlz
ZXMgPSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7
CisgICAgdmFyIHJlcXVlc3Q7CisgICAgaWYgKGNvbmZpZy5tZXRob2RBbmRDYWNoZSA9PT0gJ0dF
VC1OT0NBQ0hFJykgeworICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhV
cmwgKyAnX3JlY2VpdmVfZ2V0bm9jYWNoZT8nICsgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7bWV0aG9kOiAnR0VUJ30pOworICAgIH0gZWxzZSBpZiAoY29uZmlnLm1ldGhvZEFu
ZENhY2hlID09PSAnR0VULUNBQ0hFJykgeworICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNv
bmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAge21ldGhvZDogJ0dFVCd9KTsKKyAgICB9IGVsc2UgeworICAgICAg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTogc2l6ZSArICcg
bm9uZSd9KTsKKyAgICB9CisgICAgdmFyIHByb21pc2UgPSBmZXRjaChyZXF1ZXN0KQorICAgICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0
dXMgIT0gMjAwKSB7CisgICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAoc3RhdHVz
PScgKyB0aGlzLnN0YXR1cyArICcpJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QoKTsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gQ2hlY2sgYW5kIHdhcm4gaWYgcHJveHkg
aXMgZW5hYmxlZC4KKyAgICAgICAgICBpZiAocmVzcG9uc2UuaGVhZGVycy5nZXQoJ1ZpYScpICE9
PSBudWxsKSB7CisgICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5IHNl
ZW1zIGVuYWJsZWQuJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChjb25maWcuZGF0YVR5
cGUgPT09ICdhcnJheWJ1ZmZlcicpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5hcnJh
eUJ1ZmZlcigpCisgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgICAgIHJldHVybiBbYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCFjb25maWcudmVyaWZ5RGF0YSB8fAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyaWZ5QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4NjEpKV07Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuZGF0YVR5cGUg
PT0gJ2Jsb2InKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpCisgICAgICAg
ICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAg
ICAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
dmVyaWZ5QmxvYihjb25maWcsIGJsb2IsIDB4NjEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnVuY3Rpb24ocmVjZWl2ZWRTaXplLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW3JlY2VpdmVkU2l6ZSwgdmVyaWZpY2F0aW9u
UmVzdWx0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW2Jsb2Iu
c2l6ZSwgdHJ1ZV0pOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkKKyAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlv
bih0ZXh0KSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gW3RleHQubGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoIWNvbmZpZy52ZXJpZnlEYXRhIHx8CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXh0ID09IHJlcGVhdFN0cmluZygnYScsIHRleHQubGVuZ3RoKSldOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAgICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVjZWl2ZWRTaXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0KSB7CisgICAgICAg
ICAgdmFyIHJlY2VpdmVkU2l6ZSA9IHJlY2VpdmVkU2l6ZUFuZFZlcmlmaWNhdGlvblJlc3VsdFsw
XTsKKyAgICAgICAgICB2YXIgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVjZWl2ZWRTaXplQW5kVmVy
aWZpY2F0aW9uUmVzdWx0WzFdOworICAgICAgICAgIGlmIChyZWNlaXZlZFNpemUgIT09IHNpemUp
IHsKKyAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdCIGJ1dCByZWNlaXZlZCAnICsgcmVjZWl2ZWRTaXpl
ICsgJ0InKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOworICAgICAgICAg
IH0KKyAgICAgICAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgeworICAgICAgICAgICAgY29u
ZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7CisgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAg
IHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgIH0KKworICAvLyBGaW5pc2ggYW5kIHJlcG9ydCB0
aW1lIG1lYXN1cmluZy4KKyAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsK
KyAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOworICAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOworICAgICAgICB9CisgICAgICAgIGNhbGN1
bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSAqIGNvbmZpZy5udW1GZXRjaGVzLCBp
c1dhcm1VcCk7CisgICAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7CisgICAgICB9KQorICAgICAg
LmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgY29uZmlnLmFkZFRvTG9nKCJFUlJPUjogIiAr
IGUpOworICAgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIH0pOworfQorCisKK2Z1
bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKKyAgcmV0dXJuICcoJyArIGNvbmZpZy5k
YXRhVHlwZSArCisgICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEgKworICAg
ICcsICcgKyAoaXNXb3JrZXIgPyAnV29ya2VyJyA6ICdNYWluJykgKworICAgICcsIG51bUZldGNo
ZXM9JyArIGNvbmZpZy5udW1GZXRjaGVzICsKKyAgICAnLCBudW1JdGVyYXRpb25zPScgKyBjb25m
aWcubnVtSXRlcmF0aW9ucyArCisgICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmln
Lm51bVdhcm1VcEl0ZXJhdGlvbnMgKworICAgICcpJzsKK30KKworZnVuY3Rpb24gc3RhcnRCZW5j
aG1hcmsoY29uZmlnKSB7CisgIGNsZWFyVGltZW91dCh0aW1lcklEKTsKKworICBydW5OZXh0VGFz
ayhjb25maWcpOworfQorCitmdW5jdGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5hbENvbmZpZykg
eworICBvcmlnaW5hbENvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7CisKKyAgdGFz
a3MgPSBbXTsKKyAgY2xlYXJBdmVyYWdlRGF0YSgpOworCisgIHZhciBkYXRhVHlwZXMgPSBbJ3Rl
eHQnLCAnYmxvYicsICdhcnJheWJ1ZmZlciddOworICB2YXIgc3RlcEZ1bmNzID0gW3NlbmRCZW5j
aG1hcmtTdGVwLCByZWNlaXZlQmVuY2htYXJrU3RlcF07CisgIHZhciBuYW1lcyA9IFsnU2VuZCcs
ICdSZWNlaXZlJ107CisgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxlbmd0aDsgKytp
KSB7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyArK2opIHsKKyAg
ICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7CisgICAgICBjb25m
aWcuZGF0YVR5cGUgPSBkYXRhVHlwZXNbal07CisgICAgICBhZGRUYXNrcyhjb25maWcsIHN0ZXBG
dW5jc1tpXSk7CisgICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKKyAgICAgICAg
ICBuYW1lc1tpXSArICcgYmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Cisg
ICAgfQorICB9CisKKyAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKK30KKworZnVuY3Rpb24gY2xl
YW51cCgpIHsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90
ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3RfaWZy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEyZGYyZTdkZjRkM2VhNjJkYzJhMGJkNWU4MWJlOGJmNWI1
ZGJjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90
ZXN0X2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJwZXJmb3JtYW5j
ZV90ZXN0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZmV0Y2hfYmVuY2htYXJr
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVy
X21hcC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxYzRj
MDlhYTAwOTFkOGJhZjI5MDg5NTk5MDU4Njc4NDJhZWI4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CkBAIC0wLDAgKzEsMTEgQEAKKyMgd2Vic29ja2V0
IGhhbmRsZXIgbWFwIGZpbGUsIHVzZWQgYnkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24uCisjIEEg
bGluZSBzdGFydGluZyB3aXRoICcjJyBpcyBhIGNvbW1lbnQgbGluZS4KKyMgRWFjaCBsaW5lIGNv
bnNpc3RzIG9mICdhbGlhc19yZXNvdXJjZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291cmNlX3Bh
dGgnCisjIHNlcGFyYXRlZCBieSBzcGFjZXMuCisjIEFsaWFzaW5nIGlzIHByb2Nlc3NlZCBmcm9t
IHRoZSB0b3AgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGluZSwgYW5kCisjICdleGlzdGluZ19yZXNv
dXJjZV9wYXRoJyBtdXN0IGV4aXN0IGJlZm9yZSBpdCBpcyBhbGlhc2VkLgorIyBGb3IgZXhhbXBs
ZSwKKyMgIC8gL2VjaG8KKyMgbWVhbnMgdGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwgYmUgaGFu
ZGxlZCBieSBoYW5kbGVycyBmb3IgJy9lY2hvJy4KKy8gL2VjaG8KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2hzdHNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4NjE5NDY5MjFhZjA0NTk0ZDYyMDI2YjQ2ZjA3NzU4ZGRmZTQwMmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkKQEAgLTAsMCArMSw0MCBAQAorIyBDb3B5
cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3Qp
OgorICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoCisgICAgICAgICgnU3RyaWN0LVRy
YW5zcG9ydC1TZWN1cml0eScsICdtYXgtYWdlPTg2NDAwJykpCisKKworZGVmIHdlYl9zb2NrZXRf
dHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3Nh
Z2UoJ0hlbGxvJywgYmluYXJ5PUZhbHNlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9p
bnRlcm5hbF9lcnJvcl93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ODFiNTRhNjQ4YzA5YTIyZjI1NDUx
MjdkNzBkZjA1MTM0OTIzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5h
bF9lcnJvcl93c2gucHkKQEAgLTAsMCArMSw0MiBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKKworCitkZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcmFpc2UgbXNndXRpbC5CYWRPcGVyYXRpb25FeGNl
cHRpb24oJ0ludGVudGlvbmFsJykKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL29yaWdpbl9j
aGVja193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1NzY3YWI5MzJmYjU4MjgyNGFhZjFhNTdkOTI0OWMz
MDRiZDUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3No
LnB5CkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1l
dDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgZXhhbXBsZSBp
cyBkZXJpdmVkIGZyb20gdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5
LgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBp
ZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoKKyAgICAgICAgcmV0
dXJuCisgICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUgcmVx
dWVzdC53c19vcmlnaW4pCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkgaXMg
Y2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVl
c3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQorCisKKyMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43OGFlZGU5N2ExNDMwNDI4NTRlNTU1NzI4OTM3MjI4ZmVhYzdiZWIwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKQEAgLTAsMCAr
MSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InV0aWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InBlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJiZW5jaG1hcmsuanMiPjwvc2NyaXB0PgorPC9oZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NWIyNWJkMWZmZDYz
NzU5M2VmM2Y3ZjA2ZjBhNGZlNjYwYWQwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMKQEAgLTAsMCArMSw2NiBAQAorZnVuY3Rpb24g
cGVyZlRlc3RBZGRUb0xvZyh0ZXh0KSB7CisgIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQn
OiAnbG9nJywgJ3ZhbHVlJzogdGV4dH0sICcqJyk7Cit9CisKK2Z1bmN0aW9uIHBlcmZUZXN0QWRk
VG9TdW1tYXJ5KHRleHQpIHsKK30KKworZnVuY3Rpb24gcGVyZlRlc3RNZWFzdXJlVmFsdWUodmFs
dWUpIHsKKyAgcGFyZW50LnBvc3RNZXNzYWdlKHsnY29tbWFuZCc6ICdtZWFzdXJlVmFsdWUnLCAn
dmFsdWUnOiB2YWx1ZX0sICcqJyk7Cit9CisKK2Z1bmN0aW9uIHBlcmZUZXN0Tm90aWZ5QWJvcnQo
KSB7CisgIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQnOiAnbm90aWZ5QWJvcnQnfSwgJyon
KTsKK30KKworZnVuY3Rpb24gZ2V0Q29uZmlnRm9yUGVyZm9ybWFuY2VUZXN0KGNvbm5lY3Rpb25U
eXBlLCBkYXRhVHlwZSwgYXN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyaWZ5RGF0YSwgbnVtSXRlcmF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBudW1XYXJtVXBJdGVyYXRpb25zKSB7CisgIHZhciBwcmVmaXhVcmw7CisgIGlm
IChjb25uZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcpIHsKKyAgICBwcmVmaXhVcmwgPSAnd3M6
Ly8nICsgbG9jYXRpb24uaG9zdCArICcvYmVuY2htYXJrX2hlbHBlcic7CisgIH0gZWxzZSB7Cisg
ICAgLy8gWEhSIG9yIGZldGNoCisgICAgcHJlZml4VXJsID0gJ2h0dHA6Ly8nICsgbG9jYXRpb24u
aG9zdCArICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOworICB9CisKKyAgcmV0
dXJuIHsKKyAgICBwcmVmaXhVcmw6IHByZWZpeFVybCwKKyAgICBwcmludFNpemU6IHRydWUsCisg
ICAgbnVtWEhSczogMSwKKyAgICBudW1GZXRjaGVzOiAxLAorICAgIG51bVNvY2tldHM6IDEsCisg
ICAgLy8gKyAxIGlzIGZvciBhIHdhcm11cCBpdGVyYXRpb24gYnkgdGhlIFRlbGVtZXRyeSBmcmFt
ZXdvcmsuCisgICAgbnVtSXRlcmF0aW9uczogbnVtSXRlcmF0aW9ucyArIG51bVdhcm1VcEl0ZXJh
dGlvbnMgKyAxLAorICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IG51bVdhcm1VcEl0ZXJhdGlvbnMs
CisgICAgbWluVG90YWw6IDEwMjQwMDAwLAorICAgIHN0YXJ0U2l6ZTogMTAyNDAwMDAsCisgICAg
c3RvcFRocmVzaG9sZDogMTAyNDAwMDAsCisgICAgbXVsdGlwbGllcnM6IFsyXSwKKyAgICB2ZXJp
ZnlEYXRhOiB2ZXJpZnlEYXRhLAorICAgIGRhdGFUeXBlOiBkYXRhVHlwZSwKKyAgICBhc3luYzog
YXN5bmMsCisgICAgYWRkVG9Mb2c6IHBlcmZUZXN0QWRkVG9Mb2csCisgICAgYWRkVG9TdW1tYXJ5
OiBwZXJmVGVzdEFkZFRvU3VtbWFyeSwKKyAgICBtZWFzdXJlVmFsdWU6IHBlcmZUZXN0TWVhc3Vy
ZVZhbHVlLAorICAgIG5vdGlmeUFib3J0OiBwZXJmVGVzdE5vdGlmeUFib3J0CisgIH07Cit9CisK
K3ZhciBkYXRhOworb25tZXNzYWdlID0gZnVuY3Rpb24obWVzc2FnZSkgeworICB2YXIgYWN0aW9u
OworICBpZiAobWVzc2FnZS5kYXRhLmNvbW1hbmQgPT09ICdzdGFydCcpIHsKKyAgICBkYXRhID0g
bWVzc2FnZS5kYXRhOworICAgIGluaXRXb3JrZXIoZGF0YS5jb25uZWN0aW9uVHlwZSwgJ2h0dHA6
Ly8nICsgbG9jYXRpb24uaG9zdCk7CisgICAgYWN0aW9uID0gZGF0YS5iZW5jaG1hcmtOYW1lOwor
ICB9IGVsc2UgeworICAgIGFjdGlvbiA9ICdzdG9wJzsKKyAgfQorCisgIHZhciBjb25maWcgPSBn
ZXRDb25maWdGb3JQZXJmb3JtYW5jZVRlc3QoZGF0YS5jb25uZWN0aW9uVHlwZSwgZGF0YS5kYXRh
VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmFz
eW5jLCBkYXRhLnZlcmlmeURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YS5udW1JdGVyYXRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEubnVtV2FybVVwSXRlcmF0aW9ucyk7CisgIGRvQWN0aW9uKGNv
bmZpZywgZGF0YS5pc1dvcmtlciwgYWN0aW9uKTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvcHl3ZWJzb2NrZXQuY29uZiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMzNWQxMzBhNWM4NGY2OWRlNGY4MWQzNThmYjJjZGI1YmRlNGFmNmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgpAQCAtMCwwICsxLDQyIEBA
CisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9u
LgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisj
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworIworIyBTYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciBh
cGFjaGUyCisjCitMb2dMZXZlbCBkZWJ1ZworPElmTW9kdWxlIHB5dGhvbl9tb2R1bGU+CisgIFB5
dGhvblBhdGggInN5cy5wYXRoK1snL21vZF9weXdlYnNvY2tldCddIgorICBQeXRob25PcHRpb24g
bW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCAvdmFyL3d3dworICBQeXRob25PcHRpb24gbW9k
X3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbiAvdmFyL3d3dy93cworICAjUHl0aG9uT3B0aW9uIG1v
ZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1IE9uCisgIDxMb2NhdGlvbiAvd3M+CisgICAgUHl0
aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxl
cgorICA8L0xvY2F0aW9uPgorPC9JZk1vZHVsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9z
cGVjaWFsX2hlYWRlcnMuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWE1MDgwZjFmMWFlYTNhMzdhN2U3MjljNjc4ZDZhMTIzMzdiZWRiNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCkBAIC0wLDAgKzEs
MjggQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKKyMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
Q09QWUlORyBmaWxlIG9yIGF0CisjIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4t
c291cmNlL2xpY2Vuc2VzL2JzZAorCisiIiJDR0kgc2NyaXB0IHNhbXBsZSBmb3IgdGVzdGluZyBl
ZmZlY3Qgb2YgSFRUUCBoZWFkZXJzIG9uIHRoZSBvcmlnaW4gcGFnZS4KKworTm90ZSB0aGF0IENH
SSBzY3JpcHRzIGRvbid0IHdvcmsgb24gdGhlIHN0YW5kYWxvbmUgcHl3ZWJzb2NrZXQgcnVubmlu
ZyBpbiBUTFMKK21vZGUuCisiIiIKKworCitwcmludCAiIiJDb250ZW50LXR5cGU6IHRleHQvaHRt
bAorQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IGNvbm5lY3Qtc3JjIHNlbGYKKworPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT48L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIHNv
Y2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vZXhhbXBsZS5jb20iKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWMwMDA3YjFlZGQ1YTBjNTcxN2EyOGRhMDU1
MjE4N2E2N2RhOWE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMKQEAg
LTAsMCArMSwzMjcgQEAKKy8vIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgorLy8gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1l
dDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisv
LworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisvLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgYm90aCBt
YWluIGFuZCB3b3JrZXIgdGhyZWFkKS4KKwordmFyIHJlc3VsdHMgPSB7fTsKKworZnVuY3Rpb24g
Z2V0VGltZVN0YW1wKCkgeworICByZXR1cm4gRGF0ZS5ub3coKTsKK30KKworZnVuY3Rpb24gZm9y
bWF0UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3NhZ2VJbk1zLCBzdGRkZXZUaW1lUGVyTWVz
c2FnZUluTXMsCisgICAgc3BlZWQsIHByaW50U2l6ZSkgeworICBpZiAocHJpbnRTaXplKSB7Cisg
ICAgcmV0dXJuIChzaXplIC8gMTAyNCkgKworICAgICAgICAnXHQnICsgdGltZVBlck1lc3NhZ2VJ
bk1zLnRvRml4ZWQoMykgKworICAgICAgICAoc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zID09IC0x
ID8KKyAgICAgICAgICAgICcnIDoKKyAgICAgICAgICAgICdcdCcgKyBzdGRkZXZUaW1lUGVyTWVz
c2FnZUluTXMudG9GaXhlZCgzKSkgKworICAgICAgICAnXHQnICsgc3BlZWQudG9GaXhlZCgzKTsK
KyAgfSBlbHNlIHsKKyAgICByZXR1cm4gc3BlZWQudG9TdHJpbmcoKTsKKyAgfQorfQorCitmdW5j
dGlvbiBjbGVhckF2ZXJhZ2VEYXRhKCkgeworICByZXN1bHRzID0ge307Cit9CisKK2Z1bmN0aW9u
IHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZykgeworICBjb25maWcuYWRkVG9TdW1tYXJ5KAorICAg
ICAgJ1NpemVbS2lCXVx0QXZlcmFnZSB0aW1lW21zXVx0U3RkZGV2IHRpbWVbbXNdXHRTcGVlZFtL
Qi9zXScpOworICBmb3IgKHZhciBzaXplIGluIHJlc3VsdHMpIHsKKyAgICB2YXIgYXZlcmFnZVRp
bWVQZXJNZXNzYWdlSW5NcyA9IHJlc3VsdHNbc2l6ZV0uc3VtX3QgLyByZXN1bHRzW3NpemVdLm47
CisgICAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJbktCKHNpemUsIGF2ZXJhZ2VUaW1lUGVy
TWVzc2FnZUluTXMpOworICAgIC8vIENhbGN1bGF0ZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9u
CisgICAgdmFyIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9IE1hdGguc3FydCgKKyAgICAgICAg
KHJlc3VsdHNbc2l6ZV0uc3VtX3QyIC8gcmVzdWx0c1tzaXplXS5uIC0KKyAgICAgICAgICAgIGF2
ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMgKiBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zKSAqCisg
ICAgICAgIHJlc3VsdHNbc2l6ZV0ubiAvCisgICAgICAgIChyZXN1bHRzW3NpemVdLm4gLSAxKSk7
CisgICAgY29uZmlnLmFkZFRvU3VtbWFyeShmb3JtYXRSZXN1bHRJbktpQigKKyAgICAgICAgc2l6
ZSwgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLCBz
cGVlZCwKKyAgICAgICAgdHJ1ZSkpOworICB9Cit9CisKK2Z1bmN0aW9uIGNhbGN1bGF0ZVNwZWVk
SW5LQihzaXplLCB0aW1lU3BlbnRJbk1zKSB7CisgIHJldHVybiBNYXRoLnJvdW5kKHNpemUgLyB0
aW1lU3BlbnRJbk1zICogMTAwMCkgLyAxMDAwOworfQorCitmdW5jdGlvbiBjYWxjdWxhdGVBbmRM
b2dSZXN1bHQoY29uZmlnLCBzaXplLCBzdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCisgICAgaXNX
YXJtVXApIHsKKyAgdmFyIHRpbWVTcGVudEluTXMgPSBnZXRUaW1lU3RhbXAoKSAtIHN0YXJ0VGlt
ZUluTXM7CisgIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNpemUsIHRpbWVT
cGVudEluTXMpOworICB2YXIgdGltZVBlck1lc3NhZ2VJbk1zID0gdGltZVNwZW50SW5NcyAvICh0
b3RhbFNpemUgLyBzaXplKTsKKyAgaWYgKCFpc1dhcm1VcCkgeworICAgIGNvbmZpZy5tZWFzdXJl
VmFsdWUodGltZVBlck1lc3NhZ2VJbk1zKTsKKyAgICBpZiAoIXJlc3VsdHNbc2l6ZV0pIHsKKyAg
ICAgIHJlc3VsdHNbc2l6ZV0gPSB7bjogMCwgc3VtX3Q6IDAsIHN1bV90MjogMH07CisgICAgfQor
ICAgIHJlc3VsdHNbc2l6ZV0ubiArKzsKKyAgICByZXN1bHRzW3NpemVdLnN1bV90ICs9IHRpbWVQ
ZXJNZXNzYWdlSW5NczsKKyAgICByZXN1bHRzW3NpemVdLnN1bV90MiArPSB0aW1lUGVyTWVzc2Fn
ZUluTXMgKiB0aW1lUGVyTWVzc2FnZUluTXM7CisgIH0KKyAgY29uZmlnLmFkZFRvTG9nKGZvcm1h
dFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5NcywgLTEsIHNwZWVkLAorICAgICAg
Y29uZmlnLnByaW50U2l6ZSkpOworfQorCitmdW5jdGlvbiByZXBlYXRTdHJpbmcoc3RyLCBjb3Vu
dCkgeworICB2YXIgZGF0YSA9ICcnOworICB2YXIgZXhwQ2h1bmsgPSBzdHI7CisgIHZhciByZW1h
aW4gPSBjb3VudDsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICBpZiAocmVtYWluICUgMikgeworICAg
ICAgZGF0YSArPSBleHBDaHVuazsKKyAgICAgIHJlbWFpbiA9IChyZW1haW4gLSAxKSAvIDI7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIHJlbWFpbiAvPSAyOworICAgIH0KKworICAgIGlmIChyZW1haW4g
PT0gMCkKKyAgICAgIGJyZWFrOworCisgICAgZXhwQ2h1bmsgPSBleHBDaHVuayArIGV4cENodW5r
OworICB9CisgIHJldHVybiBkYXRhOworfQorCitmdW5jdGlvbiBmaWxsQXJyYXlCdWZmZXIoYnVm
ZmVyLCBjKSB7CisgIHZhciBpOworCisgIHZhciB1MzJDb250ZW50ID0gYyAqIDB4MDEwMTAxMDE7
CisKKyAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVyLmJ5dGVMZW5ndGggLyA0KTsK
KyAgdmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyLCAwLCB1MzJCbG9ja3MpOwor
ICAvLyBsZW5ndGggYXR0cmlidXRlIGlzIHNsb3cgb24gQ2hyb21lLiBEb24ndCB1c2UgaXQgZm9y
IGxvb3AgY29uZGl0aW9uLgorICBmb3IgKGkgPSAwOyBpIDwgdTMyQmxvY2tzOyArK2kpIHsKKyAg
ICB1MzJWaWV3W2ldID0gdTMyQ29udGVudDsKKyAgfQorCisgIC8vIEZyYWN0aW9uCisgIHZhciB1
OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsKKyAgdmFyIHU4Vmll
dyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThCbG9ja3MpOworICBm
b3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgeworICAgIHU4Vmlld1tpXSA9IGM7CisgIH0K
K30KKworZnVuY3Rpb24gdmVyaWZ5QXJyYXlCdWZmZXIoYnVmZmVyLCBleHBlY3RlZENoYXIpIHsK
KyAgdmFyIGk7CisKKyAgdmFyIGV4cGVjdGVkVTMyVmFsdWUgPSBleHBlY3RlZENoYXIgKiAweDAx
MDEwMTAxOworCisgIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3Ro
IC8gNCk7CisgIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxv
Y2tzKTsKKyAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7CisgICAgaWYgKHUzMlZp
ZXdbaV0gIT0gZXhwZWN0ZWRVMzJWYWx1ZSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgfQorCisgIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICog
NDsKKyAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwg
dThCbG9ja3MpOworICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgeworICAgIGlmICh1
OFZpZXdbaV0gIT0gZXhwZWN0ZWRDaGFyKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeUJsb2IoY29uZmlnLCBi
bG9iLCBleHBlY3RlZENoYXIsIGRvbmVDYWxsYmFjaykgeworICB2YXIgcmVhZGVyID0gbmV3IEZp
bGVSZWFkZXIoYmxvYik7CisgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgY29u
ZmlnLmFkZFRvTG9nKCdGaWxlUmVhZGVyIEVycm9yOiAnICsgcmVhZGVyLmVycm9yLm1lc3NhZ2Up
OworICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIGZhbHNlKTsKKyAgfQorICByZWFkZXIub25s
b2FkZW5kID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IHZlcmlmeUFycmF5QnVmZmVy
KHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkQ2hhcik7CisgICAgZG9uZUNhbGxiYWNrKGJsb2Iuc2l6
ZSwgcmVzdWx0KTsKKyAgfQorICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7Cit9CisK
K2Z1bmN0aW9uIHZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIG1lc3NhZ2UsIHNpemUpIHsK
KyAgaWYgKHR5cGVvZiBtZXNzYWdlICE9ICdzdHJpbmcnKSB7CisgICAgY29uZmlnLmFkZFRvTG9n
KCdJbnZhbGlkIGFjayB0eXBlOiAnICsgdHlwZW9mIG1lc3NhZ2UpOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfQorICB2YXIgcGFyc2VkQWNrID0gcGFyc2VJbnQobWVzc2FnZSk7CisgIGlmIChpc05h
TihwYXJzZWRBY2spKSB7CisgICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIGFjayB2YWx1ZTog
JyArIG1lc3NhZ2UpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAocGFyc2VkQWNrICE9
IHNpemUpIHsKKyAgICBjb25maWcuYWRkVG9Mb2coCisgICAgICAgICdFeHBlY3RlZCBhY2sgZm9y
ICcgKyBzaXplICsgJ0IgYnV0IHJlY2VpdmVkIG9uZSBmb3IgJyArIHBhcnNlZEFjayArCisgICAg
ICAgICdCJyk7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Z1bmN0aW9uIGNsb25lQ29uZmlnKG9iaikgeworICB2YXIgbmV3T2JqID0ge307CisgIGZvciAo
a2V5IGluIG9iaikgeworICAgIG5ld09ialtrZXldID0gb2JqW2tleV07CisgIH0KKyAgcmV0dXJu
IG5ld09iajsKK30KKwordmFyIHRhc2tzID0gW107CisKK2Z1bmN0aW9uIHJ1bk5leHRUYXNrKGNv
bmZpZykgeworICB2YXIgdGFzayA9IHRhc2tzLnNoaWZ0KCk7CisgIGlmICh0YXNrID09IHVuZGVm
aW5lZCkgeworICAgIGNvbmZpZy5hZGRUb0xvZygnRmluaXNoZWQnKTsKKyAgICBjbGVhbnVwKCk7
CisgICAgcmV0dXJuOworICB9CisgIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRhc2ssIDApOworfQor
CitmdW5jdGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKKyAgdmFyIGxlZ2VuZCA9ICcn
CisgIGlmIChjb25maWcucHJpbnRTaXplKQorICAgIGxlZ2VuZCA9ICdNZXNzYWdlIHNpemUgaW4g
S2lCLCBUaW1lL21lc3NhZ2UgaW4gbXMsICc7CisgIGxlZ2VuZCArPSAnU3BlZWQgaW4ga0Ivcyc7
CisgIHJldHVybiBsZWdlbmQ7Cit9CisKK2Z1bmN0aW9uIGFkZFRhc2tzKGNvbmZpZywgc3RlcEZ1
bmMpIHsKKyAgZm9yICh2YXIgaSA9IDA7CisgICAgICBpIDwgY29uZmlnLm51bVdhcm1VcEl0ZXJh
dGlvbnMgKyBjb25maWcubnVtSXRlcmF0aW9uczsgKytpKSB7CisgICAgdmFyIG11bHRpcGxpZXJJ
bmRleCA9IDA7CisgICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7CisgICAgICAg
ICBzaXplIDw9IGNvbmZpZy5zdG9wVGhyZXNob2xkOworICAgICAgICAgKyttdWx0aXBsaWVySW5k
ZXgpIHsKKyAgICAgIHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKKyAgICAgICAgICBudWxsLAor
ICAgICAgICAgIHNpemUsCisgICAgICAgICAgY29uZmlnLAorICAgICAgICAgIGkgPCBjb25maWcu
bnVtV2FybVVwSXRlcmF0aW9ucyk7CisgICAgICB0YXNrcy5wdXNoKHRhc2spOworICAgICAgdmFy
IG11bHRpcGxpZXIgPSBjb25maWcubXVsdGlwbGllcnNbCisgICAgICAgIG11bHRpcGxpZXJJbmRl
eCAlIGNvbmZpZy5tdWx0aXBsaWVycy5sZW5ndGhdOworICAgICAgaWYgKG11bHRpcGxpZXIgPD0g
MSkgeworICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQgbXVsdGlwbGllciAnICsgbXVs
dGlwbGllcik7CisgICAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOworICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ0ludmFsaWQgbXVsdGlwbGVyJyk7CisgICAgICB9CisgICAgICBzaXplID0gTWF0
aC5jZWlsKHNpemUgKiBtdWx0aXBsaWVyKTsKKyAgICB9CisgIH0KK30KKworZnVuY3Rpb24gYWRk
UmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7CisgIHRhc2tzLnB1c2goZnVuY3Rp
b24oKXsKKyAgICAgIHRpbWVySUQgPSBudWxsOworICAgICAgY29uZmlnLmFkZFRvU3VtbWFyeSh0
aXRsZSk7CisgICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOworICAgICAgY2xlYXJBdmVy
YWdlRGF0YSgpOworICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKKyAgfSk7Cit9CisKK2Z1bmN0
aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7CisgIGNvbmZpZy5hZGRUb0xvZygnU2VuZCBiZW5j
aG1hcmsnKTsKKyAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwor
CisgIHRhc2tzID0gW107CisgIGNsZWFyQXZlcmFnZURhdGEoKTsKKyAgYWRkVGFza3MoY29uZmln
LCBzZW5kQmVuY2htYXJrU3RlcCk7CisgIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCAn
U2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKKyAgc3RhcnRCZW5j
aG1hcmsoY29uZmlnKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFyayhjb25maWcpIHsK
KyAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJlbmNobWFyaycpOworICBjb25maWcuYWRkVG9M
b2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7CisKKyAgdGFza3MgPSBbXTsKKyAgY2xlYXJB
dmVyYWdlRGF0YSgpOworICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5jaG1hcmtTdGVwKTsK
KyAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCisgICAgICAnUmVjZWl2ZSBCZW5jaG1h
cmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKKyAgc3RhcnRCZW5jaG1hcmsoY29uZmln
KTsKK30KKworZnVuY3Rpb24gc3RvcChjb25maWcpIHsKKyAgY2xlYXJUaW1lb3V0KHRpbWVySUQp
OworICB0aW1lcklEID0gbnVsbDsKKyAgdGFza3MgPSBbXTsKKyAgY29uZmlnLmFkZFRvTG9nKCdT
dG9wcGVkJyk7CisgIGNsZWFudXAoKTsKK30KKwordmFyIHdvcmtlcjsKKworZnVuY3Rpb24gaW5p
dFdvcmtlcihjb25uZWN0aW9uVHlwZSwgb3JpZ2luKSB7CisgIHZhciBzY3JpcHRQYXRoID0KKyAg
ICBjb25uZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcgPyAnL2JlbmNobWFyay5qcycgOgorICAg
IGNvbm5lY3Rpb25UeXBlID09PSAnWEhSJyA/ICcveGhyX2JlbmNobWFyay5qcycgOgorICAgICcv
ZmV0Y2hfYmVuY2htYXJrLmpzJzsgLy8gY29ubmVjdGlvblR5cGUgPT09ICdmZXRjaCcKKyAgd29y
a2VyID0gbmV3IFdvcmtlcihvcmlnaW4gKyBzY3JpcHRQYXRoKTsKK30KKworZnVuY3Rpb24gZG9B
Y3Rpb24oY29uZmlnLCBpc1dpbmRvd1RvV29ya2VyLCBhY3Rpb24pIHsKKyAgaWYgKGlzV2luZG93
VG9Xb3JrZXIpIHsKKyAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oYWRkVG9Mb2csIGFk
ZFRvU3VtbWFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZVZhbHVl
LCBub3RpZnlBYm9ydCwgbWVzc2FnZSkgeworICAgICAgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09
PSAnYWRkVG9Mb2cnKQorICAgICAgICBhZGRUb0xvZyhtZXNzYWdlLmRhdGEuZGF0YSk7CisgICAg
ICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRvU3VtbWFyeScpCisgICAgICAg
IGFkZFRvU3VtbWFyeShtZXNzYWdlLmRhdGEuZGF0YSk7CisgICAgICBlbHNlIGlmIChtZXNzYWdl
LmRhdGEudHlwZSA9PT0gJ21lYXN1cmVWYWx1ZScpCisgICAgICAgIG1lYXN1cmVWYWx1ZShtZXNz
YWdlLmRhdGEuZGF0YSk7CisgICAgICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ25v
dGlmeUFib3J0JykKKyAgICAgICAgbm90aWZ5QWJvcnQoKTsKKyAgICB9LmJpbmQodW5kZWZpbmVk
LCBjb25maWcuYWRkVG9Mb2csIGNvbmZpZy5hZGRUb1N1bW1hcnksCisgICAgICAgICAgIGNvbmZp
Zy5tZWFzdXJlVmFsdWUsIGNvbmZpZy5ub3RpZnlBYm9ydCk7CisgICAgY29uZmlnLmFkZFRvTG9n
ID0gdW5kZWZpbmVkOworICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSB1bmRlZmluZWQ7CisgICAg
Y29uZmlnLm1lYXN1cmVWYWx1ZSA9IHVuZGVmaW5lZDsKKyAgICBjb25maWcubm90aWZ5QWJvcnQg
PSB1bmRlZmluZWQ7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiBhY3Rpb24sIGNvbmZp
ZzogY29uZmlnfSk7CisgIH0gZWxzZSB7CisgICAgaWYgKGFjdGlvbiA9PT0gJ3NlbmRCZW5jaG1h
cmsnKQorICAgICAgc2VuZEJlbmNobWFyayhjb25maWcpOworICAgIGVsc2UgaWYgKGFjdGlvbiA9
PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQorICAgICAgcmVjZWl2ZUJlbmNobWFyayhjb25maWcpOwor
ICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ2JhdGNoQmVuY2htYXJrJykKKyAgICAgIGJhdGNoQmVu
Y2htYXJrKGNvbmZpZyk7CisgICAgZWxzZSBpZiAoYWN0aW9uID09PSAnc3RvcCcpCisgICAgICBz
dG9wKGNvbmZpZyk7CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX21haW4u
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWVkNjNmYjVkNzQ5
ZDBlZDIxODFiNWFhYmNjZTJlOTM2NWI4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvdXRpbF9tYWluLmpzCkBAIC0wLDAgKzEsNjUgQEAKKy8vIENvcHlyaWdodCAyMDE0IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKKy8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAorLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2ds
ZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCisKKy8vIFV0aWxpdGllcyBmb3IgZXhhbXBs
ZSBhcHBsaWNhdGlvbnMgKGZvciB0aGUgbWFpbiB0aHJlYWQgb25seSkuCisKK3ZhciBsb2dCb3gg
PSBudWxsOwordmFyIHF1ZXVlZExvZyA9ICcnOworCit2YXIgc3VtbWFyeUJveCA9IG51bGw7CisK
K2Z1bmN0aW9uIHF1ZXVlTG9nKGxvZykgeworICBxdWV1ZWRMb2cgKz0gbG9nICsgJ1xuJzsKK30K
KworZnVuY3Rpb24gYWRkVG9Mb2cobG9nKSB7CisgIGxvZ0JveC52YWx1ZSArPSBxdWV1ZWRMb2c7
CisgIHF1ZXVlZExvZyA9ICcnOworICBsb2dCb3gudmFsdWUgKz0gbG9nICsgJ1xuJzsKKyAgbG9n
Qm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Cit9CisKK2Z1bmN0aW9uIGFkZFRvU3VtbWFyeShsb2cp
IHsKKyAgc3VtbWFyeUJveC52YWx1ZSArPSBsb2cgKyAnXG4nOworICBzdW1tYXJ5Qm94LnNjcm9s
bFRvcCA9IDEwMDAwMDA7Cit9CisKKy8vIHZhbHVlOiBleGVjdXRpb24gdGltZSBpbiBtaWxsaXNl
Y29uZHMuCisvLyBjb25maWcubWVhc3VyZVZhbHVlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgaW4g
UGVyZm9ybWFuY2UgVGVzdHMuCisvLyBEbyBub3RoaW5nIGhlcmUgaW4gbm9uLVBlcmZvcm1hbmNl
VGVzdC4KK2Z1bmN0aW9uIG1lYXN1cmVWYWx1ZSh2YWx1ZSkgeworfQorCisvLyBjb25maWcubm90
aWZ5QWJvcnQgaXMgY2FsbGVkIHdoZW4gdGhlIGJlbmNobWFyayBmYWlsZWQgYW5kIGFib3J0ZWQs
IGFuZAorLy8gaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBQZXJmb3JtYW5jZSBUZXN0cy4KKy8vIERv
IG5vdGhpbmcgaGVyZSBpbiBub24tUGVyZm9ybWFuY2VUZXN0LgorZnVuY3Rpb24gbm90aWZ5QWJv
cnQoKSB7Cit9CisKK2Z1bmN0aW9uIGdldEludEZyb21JbnB1dChpZCkgeworICByZXR1cm4gcGFy
c2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlKTsKK30KKworZnVuY3Rpb24g
Z2V0U3RyaW5nRnJvbVJhZGlvQm94KG5hbWUpIHsKKyAgdmFyIGxpc3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYmVuY2htYXJrX2Zvcm0nKVtuYW1lXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkg
PCBsaXN0Lmxlbmd0aDsgKytpKQorICAgIGlmIChsaXN0Lml0ZW0oaSkuY2hlY2tlZCkKKyAgICAg
IHJldHVybiBsaXN0Lml0ZW0oaSkudmFsdWU7CisgIHJldHVybiB1bmRlZmluZWQ7Cit9CitmdW5j
dGlvbiBnZXRCb29sRnJvbUNoZWNrQm94KGlkKSB7CisgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkuY2hlY2tlZDsKK30KKworZnVuY3Rpb24gZ2V0SW50QXJyYXlGcm9tSW5wdXQo
aWQpIHsKKyAgdmFyIHN0ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVl
LnNwbGl0KCcsJyk7CisgIHJldHVybiBzdHJBcnJheS5tYXAoZnVuY3Rpb24oc3RyKSB7IHJldHVy
biBwYXJzZUludChzdHIsIDEwKTsgfSk7Cit9CisKK2Z1bmN0aW9uIGdldEZsb2F0QXJyYXlGcm9t
SW5wdXQoaWQpIHsKKyAgdmFyIHN0ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LnZhbHVlLnNwbGl0KCcsJyk7CisgIHJldHVybiBzdHJBcnJheS5tYXAocGFyc2VGbG9hdCk7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
dXRpbF93b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThkY2Y0NDE3Mjk5ZjljOWQ2MWRlZWZjYjFhNTk1
YWVhYjA1ZDU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dvcmtlci5q
cwpAQCAtMCwwICsxLDIwIEBACisvLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlCisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZ
SU5HIGZpbGUgb3IgYXQKKy8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291
cmNlL2xpY2Vuc2VzL2JzZAorCisvLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25z
IChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkpLgorCitvbm1lc3NhZ2UgPSBmdW5jdGlvbiAo
bWVzc2FnZSkgeworICB2YXIgY29uZmlnID0gbWVzc2FnZS5kYXRhLmNvbmZpZzsKKyAgY29uZmln
LmFkZFRvTG9nID0gZnVuY3Rpb24odGV4dCkgeworICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdh
ZGRUb0xvZycsIGRhdGE6IHRleHR9KTsgfTsKKyAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGZ1bmN0
aW9uKHRleHQpIHsKKyAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9TdW1tYXJ5JywgZGF0
YTogdGV4dH0pOyB9OworICBjb25maWcubWVhc3VyZVZhbHVlID0gZnVuY3Rpb24odmFsdWUpIHsK
KyAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnbWVhc3VyZVZhbHVlJywgZGF0YTogdmFsdWV9KTsg
fTsKKyAgY29uZmlnLm5vdGlmeUFib3J0ID0gZnVuY3Rpb24oKSB7IHBvc3RNZXNzYWdlKHt0eXBl
OiAnbm90aWZ5QWJvcnQnfSk7IH07CisKKyAgZG9BY3Rpb24oY29uZmlnLCBmYWxzZSwgbWVzc2Fn
ZS5kYXRhLnR5cGUpOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU5NDRhZmEzM2Jm
YjZhMjQyNGM3Mjk0ZmY5YTRmODM5MTJjYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsNDkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5j
aF93c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVu
Y2htYXJrLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2Nsb3NlX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvY29va2llX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRj
aF9iZW5jaG1hcmsuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfcGVyZm9ybWFuY2VfdGVzdF9pZnJh
bWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0
c193c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL29yaWdpbl9jaGVja193c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9p
ZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVhZGVy
cy5jZ2kKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX21haW4uanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFy
ay5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhy
X2V2ZW50X2xvZ2dlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0X2lm
cmFtZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDBkMjBjOWNjYjRh
YmVjZjIzOWM3NWIxODU3N2IwZDFmZjExYzkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3hocl9iZW5jaG1hcmsuaHRtbApAQCAtMCwwICsxLDIxMiBAQAorPCEtLQorQ29weXJpZ2h0
IDIwMTMsIEdvb2dsZSBJbmMuCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKK21ldDoKKworICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKK25vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKK2NvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKK2luIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKK2Rpc3RyaWJ1dGlvbi4KKyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKK2NvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCit0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CitMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+WE1MSHR0cFJlcXVlc3Qg
YmVuY2htYXJrPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Inhocl9iZW5jaG1h
cmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBhZGRyZXNzQm94ID0gbnVsbDsKKworZnVu
Y3Rpb24gZ2V0Q29uZmlnKCkgeworICByZXR1cm4geworICAgIHByZWZpeFVybDogYWRkcmVzc0Jv
eC52YWx1ZSwKKyAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6ZScp
LAorICAgIG51bVhIUnM6IGdldEludEZyb21JbnB1dCgnbnVtWEhScycpLAorICAgIGFzeW5jOiBn
ZXRCb29sRnJvbUNoZWNrQm94KCdhc3luYycpLAorICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNz
YWdlcy4KKyAgICBudW1JdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMn
KSwKKyAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0
ZXJhdGlvbnMnKSwKKyAgICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyks
CisgICAgLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRz
IHRoaXMgdGhyZXNob2xkLgorICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3Rv
cHRocmVzaG9sZCcpLAorICAgIG11bHRpcGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0KCdt
dWx0aXBsaWVycycpLAorICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3Zlcmlm
eWRhdGEnKSwKKyAgICBtZXRob2RBbmRDYWNoZTogZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdtZXRo
b2RhbmRjYWNoZScpLAorICAgIGFkZFRvTG9nOiBhZGRUb0xvZywKKyAgICBhZGRUb1N1bW1hcnk6
IGFkZFRvU3VtbWFyeSwKKyAgICBtZWFzdXJlVmFsdWU6IG1lYXN1cmVWYWx1ZSwKKyAgICBub3Rp
ZnlBYm9ydDogbm90aWZ5QWJvcnQKKyAgfTsKK30KKworZnVuY3Rpb24gb25TZW5kQmVuY2htYXJr
KCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7CisgIGNvbmZpZy5kYXRhVHlwZSA9IGdl
dFN0cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOworICBkb0FjdGlvbihjb25maWcs
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc2VuZEJlbmNobWFyaycpOworfQorCitm
dW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7CisgIHZhciBjb25maWcgPSBnZXRDb25maWco
KTsKKyAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlwZXJh
ZGlvJyk7CisgIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyks
ICdyZWNlaXZlQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7
CisgIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29s
RnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9u
IG9uU3RvcCgpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOworICBkb0FjdGlvbihjb25m
aWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOworfQorCitmdW5jdGlv
biBpbml0KCkgeworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJl
c3MnKTsKKyAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisgIHN1
bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOworCisgIC8vIFNw
ZWNpYWwgYWRkcmVzcyBvZiBweXdlYnNvY2tldCBmb3IgWEhSIGJlbmNobWFyay4KKyAgYWRkcmVz
c0JveC52YWx1ZSA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOworCisgIGFk
ZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOworICBhZGRU
b1N1bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7CisKKyAg
aW5pdFdvcmtlcignWEhSJywgJycpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9ImluaXQoKSI+CisKKzxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+CisgIHVybCBwcmVmaXgg
PGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+CisgIDxpbnB1dCB0eXBl
PSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+CisgIDxp
bnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5j
aG1hcmsoKSI+CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0i
b25CYXRjaEJlbmNobWFyaygpIj4KKyAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3Ai
IG9uY2xpY2s9Im9uU3RvcCgpIj4KKworICA8YnIvPgorCisgIDxpbnB1dCB0eXBlPSJjaGVja2Jv
eCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5Qcmlu
dCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+
VmVyaWZ5IGRhdGE8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIi
PgorICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgorICA8aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0iYXN5bmMi
PkFzeW5jPC9sYWJlbD48YnI+CisgIChSZWNlaXZlICZhbXA7JmFtcDsgTm9uLVdvcmtlciAmYW1w
OyZhbXA7IFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSBzcGVjKQorCisgIDxici8+CisKKyAgUGFy
YW1ldGVyczoKKworICA8YnIvPgorCisgIDx0YWJsZT4KKyAgICA8dHI+CisgICAgICA8dGQ+TnVt
IFhIUnM8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtWEhScyIgdmFs
dWU9IjEiPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+TnVtYmVyIG9mIGl0
ZXJhdGlvbnM8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRlcmF0
aW9ucyIgdmFsdWU9IjEiPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+TnVt
YmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9InRl
eHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KKyAgICA8L3RyPgor
ICAgIDx0cj4KKyAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgorICAgIDwvdHI+Cisg
ICAgPHRyPgorICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Cisg
ICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+TXVsdGlwbGllcnM8L3RkPgorICAgICAgPHRk
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgor
ICAgIDwvdHI+CisgIDwvdGFibGU+CisKKyAgU2V0IGRhdGEgdHlwZQorICA8aW5wdXQgdHlwZT0i
cmFkaW8iCisgICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgorICAgICAgICAgaWQ9ImRhdGF0
eXBlcmFkaW90ZXh0IgorICAgICAgICAgdmFsdWU9InRleHQiCisgICAgICAgICBjaGVja2VkPjxs
YWJlbCBmb3I9ImRhdGF0eXBlcmFkaW90ZXh0Ij50ZXh0PC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9
InJhZGlvIgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAgICAgIGlkPSJkYXRh
dHlwZXJhZGlvYmxvYiIKKyAgICAgICAgIHZhbHVlPSJibG9iIgorICAgICAgICAgPjxsYWJlbCBm
b3I9ImRhdGF0eXBlcmFkaW9ibG9iIj5ibG9iPC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9InJhZGlv
IgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAgICAgIGlkPSJkYXRhdHlwZXJh
ZGlvYXJyYXlidWZmZXIiCisgICAgICAgICB2YWx1ZT0iYXJyYXlidWZmZXIiCisgICAgICAgICA+
PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIj5hcnJheWJ1ZmZlcjwvbGFiZWw+
CisKKyAgPGJyPgorICBTZXQgSFRUUCBtZXRob2QgYW5kIGNhY2hlIGNvbnRyb2wKKyAgPGlucHV0
IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2FjaGUiCisgICAgICAgICBp
ZD0ibWV0aG9kYW5kY2FjaGVQT1NUIgorICAgICAgICAgdmFsdWU9IlBPU1QiCisgICAgICAgICBj
aGVja2VkPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlUE9TVCI+UE9TVCAoTm8gQ2FjaGUpPC9s
YWJlbD4KKyAgPGlucHV0IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2Fj
aGUiCisgICAgICAgICBpZD0ibWV0aG9kYW5kY2FjaGVHRVROT0NBQ0hFIgorICAgICAgICAgdmFs
dWU9IkdFVC1OT0NBQ0hFIgorICAgICAgICAgPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlR0VU
Tk9DQUNIRSI+R0VUIChObyBDYWNoZSk8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0icmFkaW8iCisg
ICAgICAgICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKKyAgICAgICAgIGlkPSJtZXRob2RhbmRjYWNo
ZUdFVENBQ0hFIgorICAgICAgICAgdmFsdWU9IkdFVC1DQUNIRSIKKyAgICAgICAgID48bGFiZWwg
Zm9yPSJtZXRob2RhbmRjYWNoZUdFVENBQ0hFIj5HRVQgKENhY2hlKTwvbGFiZWw+CisgIDxicj4K
KyAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogODAlIj4oQ2FjaGUgY29udHJvbDogcmVjZWl2ZSBv
bmx5LiBDYWNoZSBpcyB2YWxpZCBmb3IgMTAgc2Vjb25kcy4gVGhpcyBjb25maWcgY29udHJvbHMg
Q2FjaGUtY29udHJvbCBIVFRQIHJlc3BvbnNlIGhlYWRlci4gQnJvd3NlcnMgbWlnaHQgbm90IGNh
Y2hlIGRhdGEgZS5nLiB3aGVuIGl0IGlzIGxhcmdlKTwvc3Bhbj4KKzwvZm9ybT4KKworPGRpdiBp
ZD0ibG9nX2RpdiI+CisgIDx0ZXh0YXJlYQorICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0eWxl
PSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwvZGl2PgorPGRpdiBpZD0ic3Vt
bWFyeV9kaXYiPgorICBTdW1tYXJ5CisgIDx0ZXh0YXJlYQorICAgICAgaWQ9InN1bW1hcnkiIHJv
d3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Cis8L2Rpdj4K
KworPGRpdiBpZD0ibm90ZV9kaXYiPgorICBOb3RlOgorICA8dWw+CisgICAgPGxpPkVmZmVjdCBv
ZiBSVFQgYW5kIHRpbWUgc3BlbnQgZm9yIEFycmF5QnVmZmVyIGNyZWF0aW9uIGluIHJlY2VpdmUg
YmVuY2htYXJrcyBhcmUgbm90IGVsaW1pbmF0ZWQuPC9saT4KKyAgICA8bGk+VGhlIFN0ZGRldiBj
b2x1bW4gc2hvd3MgTmFOIHdoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGlzIHNldCB0byAx
LjwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFy
ay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNGE5N2U4ZmI4M2U5NDhjODVmOWYwMjEwMjFkYzc0NzkzMDVlNmMw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKQEAgLTAs
MCArMSwyOTIgQEAKKy8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUKKy8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmls
ZSBvciBhdAorLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGlj
ZW5zZXMvYnNkCisKK3ZhciBpc1dvcmtlciA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5k
ZWZpbmVkIjsKKworaWYgKGlzV29ya2VyKSB7CisgIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIKKyAg
aW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOworfQorCisvLyBOYW1l
c3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KK3ZhciBiZW5jaG1hcmsgPSB7fTsKK2JlbmNobWFy
ay5zdGFydFRpbWVJbk1zID0gMDsKKwordmFyIHhocnMgPSBbXTsKKwordmFyIHRpbWVySUQgPSBu
dWxsOworCitmdW5jdGlvbiBkZXN0cm95QWxsWEhScygpIHsKKyAgZm9yICh2YXIgaSA9IDA7IGkg
PCB4aHJzLmxlbmd0aDsgKytpKSB7CisgICAgeGhyc1tpXS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBu
dWxsOworICAgIC8vIEFib3J0IFhIUnMgaWYgdGhleSBhcmUgbm90IHlldCBET05FIHN0YXRlLgor
ICAgIC8vIENhbGxpbmcgYWJvcnQoKSBoZXJlIChpLmUuIGluIG9ucmVhZHlzdGF0ZWNoYW5nZSBo
YW5kbGVyKSAKKyAgICAvLyBjYXVzZXMgIk5ldHdvcmtFcnJvciIgbWVzc2FnZXMgaW4gRGV2VG9v
bHMgaW4gc3luYyBtb2RlLAorICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0ZXIgdHJhbnNpdGlvbiB0
byBET05FIHN0YXRlLgorICAgIGlmICh4aHJzW2ldLnJlYWR5U3RhdGUgIT0gWE1MSHR0cFJlcXVl
c3QuRE9ORSkKKyAgICAgIHhocnNbaV0uYWJvcnQoKTsKKyAgfQorICB4aHJzID0gW107CisgIC8v
IGdjKCkgbWlnaHQgYmUgbmVlZGVkIGZvciBDaHJvbWUvQmxvYgorfQorCitmdW5jdGlvbiBzZW5k
QmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7CisgIHRpbWVySUQgPSBudWxs
OworCisgIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKKyAgdmFyIHRvdGFsU2l6ZSA9
IDA7CisgIHZhciB0b3RhbFJlcGxpZWQgPSAwOworCisgIHZhciBvblJlYWR5U3RhdGVDaGFuZ2VI
YW5kbGVyID0gZnVuY3Rpb24gKCkgeworICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhpcy5E
T05FKSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHRoaXMuc3RhdHVzICE9IDIw
MCkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5zdGF0
dXMgKyAnKScpOworICAgICAgZGVzdHJveUFsbFhIUnMoKTsKKyAgICAgIGNvbmZpZy5ub3RpZnlB
Ym9ydCgpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjb25maWcudmVyaWZ5RGF0
YSAmJgorICAgICAgICAhdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgdGhpcy5yZXNwb25z
ZSwgc2l6ZSkpIHsKKyAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90aWZ5
QWJvcnQoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3RhbFJlcGxpZWQgKz0gc2l6
ZTsKKworICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKKyAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgeworICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKKyAgICAgIGRlc3Ry
b3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgorICAg
IGlmICh0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkgeworICAgICAgY29u
ZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicpOworICAgIH0KKwor
ICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRp
bWVJbk1zLCB0b3RhbFNpemUsCisgICAgICAgIGlzV2FybVVwKTsKKworICAgIGRlc3Ryb3lBbGxY
SFJzKCk7CisKKyAgICBydW5OZXh0VGFzayhjb25maWcpOworICB9OworCisgIGZvciAodmFyIGkg
PSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsraSkgeworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKKyAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRlQ2hh
bmdlSGFuZGxlcjsKKyAgICB4aHJzLnB1c2goeGhyKTsKKyAgfQorCisgIHZhciBkYXRhQXJyYXkg
PSBbXTsKKworICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKKyAgICB2
YXIgZGF0YSA9IG51bGw7CisgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYXJyYXlidWZmZXIn
IHx8CisgICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgIGRhdGEgPSBu
ZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICAgIGZpbGxBcnJheUJ1ZmZlcihkYXRhLCAweDYx
KTsKKworICAgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgICAgZGF0
YSA9IG5ldyBCbG9iKFtkYXRhXSk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRhdGEg
PSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsKKyAgICB9CisKKyAgICBkYXRhQXJyYXkucHVzaChk
YXRhKTsKKyAgfQorCisKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAo
KTsKKyAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOworCisgIGZvciAodmFyIGkgPSAw
OyBpIDwgeGhycy5sZW5ndGg7ICsraSkgeworICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOwor
ICAgIHZhciB4aHIgPSB4aHJzW2ldOworICAgIHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnByZWZp
eFVybCArICdfc2VuZCcsIGNvbmZpZy5hc3luYyk7CisgICAgeGhyLnNlbmQoZGF0YSk7CisgIH0K
K30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1V
cCkgeworICB0aW1lcklEID0gbnVsbDsKKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51
bGw7CisgIHZhciB0b3RhbFNpemUgPSAwOworICB2YXIgdG90YWxSZXBsaWVkID0gMDsKKworICB2
YXIgY2hlY2tSZXN1bHRBbmRDb250aW51ZSA9IGZ1bmN0aW9uIChieXRlc1JlY2VpdmVkLCB2ZXJp
ZmljYXRpb25SZXN1bHQpIHsKKyAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgeworICAgICAg
Y29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7CisgICAgICBk
ZXN0cm95QWxsWEhScygpOworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICByZXR1
cm47CisgICAgfQorCisgICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7CisKKyAgICBp
ZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7CisgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKKyAgICAgIGNvbmZpZy5h
ZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7CisgICAgICBkZXN0cm95QWxsWEhScygp
OworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGlt
ZUluTXMsIHRvdGFsU2l6ZSwKKyAgICAgICAgaXNXYXJtVXApOworCisgICAgZGVzdHJveUFsbFhI
UnMoKTsKKworICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7CisgIH0KKworICB2YXIgb25SZWFkeVN0
YXRlQ2hhbmdlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAodGhpcy5yZWFkeVN0YXRl
ICE9IHRoaXMuRE9ORSkgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh0aGlzLnN0
YXR1cyAhPSAyMDApIHsKKyAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyAr
IHRoaXMuc3RhdHVzICsgJyknKTsKKyAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7CisgICAgICBjb25m
aWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDaGVjayBh
bmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgorICAgIGlmICh0aGlzLmdldFJlc3BvbnNlSGVh
ZGVyKCdWaWEnKSAhPT0gbnVsbCkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBw
cm94eSBzZWVtcyBlbmFibGVkLicpOworICAgIH0KKworICAgIHZhciBieXRlc1JlY2VpdmVkID0g
LTE7CisgICAgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZlcicpIHsKKyAgICAg
IGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmJ5dGVMZW5ndGg7CisgICAgfSBlbHNlIGlm
ICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0
aGlzLnJlc3BvbnNlLnNpemU7CisgICAgfSBlbHNlIHsKKyAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0
aGlzLnJlc3BvbnNlLmxlbmd0aDsKKyAgICB9CisgICAgaWYgKGJ5dGVzUmVjZWl2ZWQgIT0gc2l6
ZSkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6ZSArCisgICAgICAg
ICAgJ0IgYnV0IHJlY2VpdmVkICcgKyBieXRlc1JlY2VpdmVkICsgJ0InKTsKKyAgICAgIGRlc3Ry
b3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVmZmVyJykgewor
ICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLAorICAgICAgICAgICFj
b25maWcudmVyaWZ5RGF0YSB8fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJlc3BvbnNlLCAweDYx
KSk7CisgICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKKyAgICAg
IGlmIChjb25maWcudmVyaWZ5RGF0YSkKKyAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIHRoaXMu
cmVzcG9uc2UsIDB4NjEsIGNoZWNrUmVzdWx0QW5kQ29udGludWUpOworICAgICAgZWxzZQorICAg
ICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRydWUpOworICAgIH0g
ZWxzZSB7CisgICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKAorICAgICAgICAgIGJ5dGVzUmVj
ZWl2ZWQsCisgICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8CisgICAgICAgICAgICAgIHRo
aXMucmVzcG9uc2UgPT0gcmVwZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25zZS5sZW5ndGgpKTsK
KyAgICB9CisgIH07CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsgKytp
KSB7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vbnJlYWR5
c3RhdGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOworICAgIHhocnMucHVzaCh4
aHIpOworICB9CisKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsK
KyAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOworCisgIGZvciAodmFyIGkgPSAwOyBp
IDwgeGhycy5sZW5ndGg7ICsraSkgeworICAgIHZhciB4aHIgPSB4aHJzW2ldOworICAgIGlmIChj
b25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQtTk9DQUNIRScpIHsKKyAgICAgIHhoci5vcGVu
KCdHRVQnLCBjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlX2dldG5vY2FjaGU/JyArIHNpemUs
CisgICAgICAgICAgY29uZmlnLmFzeW5jKTsKKyAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25m
aWcuZGF0YVR5cGU7CisgICAgICB4aHIuc2VuZCgpOworICAgIH0gZWxzZSBpZiAoY29uZmlnLm1l
dGhvZEFuZENhY2hlID09PSAnR0VULUNBQ0hFJykgeworICAgICAgeGhyLm9wZW4oJ0dFVCcsIGNv
bmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCisgICAgICAgICAg
Y29uZmlnLmFzeW5jKTsKKyAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5cGU7
CisgICAgICB4aHIuc2VuZCgpOworICAgIH0gZWxzZSB7CisgICAgICB4aHIub3BlbignUE9TVCcs
IGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLCBjb25maWcuYXN5bmMpOworICAgICAgeGhy
LnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKKyAgICAgIHhoci5zZW5kKHNpemUgKyAn
IG5vbmUnKTsKKyAgICB9CisgIH0KK30KKworCitmdW5jdGlvbiBnZXRDb25maWdTdHJpbmcoY29u
ZmlnKSB7CisgIHJldHVybiAnKCcgKyBjb25maWcuZGF0YVR5cGUgKworICAgICcsIHZlcmlmeURh
dGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKKyAgICAnLCAnICsgKGlzV29ya2VyID8gJ1dvcmtl
cicgOiAnTWFpbicpICsKKyAgICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdBc3luYycgOiAnU3lu
YycpICsKKyAgICAnLCBudW1YSFJzPScgKyBjb25maWcubnVtWEhScyArCisgICAgJywgbnVtSXRl
cmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKworICAgICcsIG51bVdhcm1VcEl0ZXJh
dGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKKyAgICAnKSc7Cit9CisKK2Z1
bmN0aW9uIHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgeworICBjbGVhclRpbWVvdXQodGltZXJJRCk7
CisgIGRlc3Ryb3lBbGxYSFJzKCk7CisKKyAgcnVuTmV4dFRhc2soY29uZmlnKTsKK30KKworZnVu
Y3Rpb24gYmF0Y2hCZW5jaG1hcmsob3JpZ2luYWxDb25maWcpIHsKKyAgb3JpZ2luYWxDb25maWcu
YWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOworCisgIHRhc2tzID0gW107CisgIGNsZWFyQXZl
cmFnZURhdGEoKTsKKworICB2YXIgZGF0YVR5cGVzID0gWyd0ZXh0JywgJ2Jsb2InLCAnYXJyYXli
dWZmZXInXTsKKyAgdmFyIHN0ZXBGdW5jcyA9IFtzZW5kQmVuY2htYXJrU3RlcCwgcmVjZWl2ZUJl
bmNobWFya1N0ZXBdOworICB2YXIgbmFtZXMgPSBbJ1NlbmQnLCAnUmVjZWl2ZSddOworICB2YXIg
YXN5bmMgPSBbdHJ1ZSwgZmFsc2VdOworICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ZXBGdW5jcy5s
ZW5ndGg7ICsraSkgeworICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5cGVzLmxlbmd0aDsg
KytqKSB7CisgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGFzeW5jLmxlbmd0aDsgKytrKSB7Cisg
ICAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7CisgICAgICAg
IGNvbmZpZy5kYXRhVHlwZSA9IGRhdGFUeXBlc1tqXTsKKyAgICAgICAgY29uZmlnLmFzeW5jID0g
YXN5bmNba107CisKKyAgICAgICAgLy8gUmVjZWl2ZSAmJiBOb24tV29ya2VyICYmIFN5bmMgaXMg
bm90IHN1cHBvcnRlZCBieSB0aGUgc3BlYworICAgICAgICBpZiAoc3RlcEZ1bmNzW2ldID09PSBy
ZWNlaXZlQmVuY2htYXJrU3RlcCAmJiAhaXNXb3JrZXIgJiYKKyAgICAgICAgICAgICFjb25maWcu
YXN5bmMpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYWRkVGFza3MoY29uZmlnLCBz
dGVwRnVuY3NbaV0pOworICAgICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKKyAg
ICAgICAgICAgIG5hbWVzW2ldICsgJyBiZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25m
aWcpKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBzdGFydEJlbmNobWFyayhjb25maWcpOwor
fQorCitmdW5jdGlvbiBjbGVhbnVwKCkgeworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3ho
cl9ldmVudF9sb2dnZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTBkYjBmYmVjNDk0NjUwOTEzMjliZGFmNDcxN2Q3MjE5ODg2YWQ2ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKQEAgLTAs
MCArMSwxMjMgQEAKKzwhLS0KK0NvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisKK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlCitsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3Ig
YXQKK2h0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2Jz
ZAorLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+WEhSIGV2ZW50IGxvZ2dlcjwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgZXZl
bnRzID0gW107Cit2YXIgc3RhcnRUaW1lID0gMDsKKworZnVuY3Rpb24gcnVuKCkgeworICBldmVu
dHMgPSBbXTsKKyAgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKKworICBmdW5jdGlvbiBwdXNoVG9M
b2codHlwZSkgeworICAgIHZhciB0aW1lID0gRGF0ZS5ub3coKTsKKyAgICBpZiAoZXZlbnRzLmxl
bmd0aCAhPSAwICYmIHR5cGUgPT09IGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0udHlwZSkgewor
ICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5jb3VudCArPSAxOworICAgICAgZXZlbnRz
W2V2ZW50cy5sZW5ndGggLSAxXS5sYXN0ID0gdGltZTsKKyAgICB9IGVsc2UgeworICAgICAgZXZl
bnRzLnB1c2goe3R5cGU6IHR5cGUsIGNvdW50OiAxLCBmaXJzdDogdGltZSwgbGFzdDogdGltZX0p
OworICAgIH0KKyAgfQorCisgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKworICBm
dW5jdGlvbiBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKSB7CisgICAgcmV0dXJuICcoJyArIGUubGVu
Z3RoQ29tcHV0YWJsZSArICcsICcgKyBlLmxvYWRlZCArICcsICcgKyBlLnRvdGFsICsgJyknOwor
ICB9CisKKyAgdmFyIGR1bXBQcm9ncmVzc0V2ZW50ID0gZ2V0Qm9vbEZyb21DaGVja0JveCgnZHVt
cHByb2dyZXNzZXZlbnQnKTsKKworICBmdW5jdGlvbiBsb2coZSkgeworICAgIHZhciB0eXBlID0g
ZS50eXBlOworICAgIGlmICh0eXBlID09PSAncmVhZHlzdGF0ZWNoYW5nZScpIHsKKyAgICAgIHR5
cGUgKz0gZS50YXJnZXQucmVhZHlTdGF0ZTsKKyAgICB9CisgICAgaWYgKGR1bXBQcm9ncmVzc0V2
ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsKKyAgICAgIHR5cGUgKz0gZ2V0
UHJvZ3Jlc3NFdmVudER1bXAoZSk7CisgICAgfQorICAgIHB1c2hUb0xvZyh0eXBlKTsKKyAgfTsK
KworICBmdW5jdGlvbiBsb2dVcGxvYWQoZSkgeworICAgIHZhciB0eXBlID0gZS50eXBlOworICAg
IGlmIChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7
CisgICAgICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOworICAgIH0KKyAgICBwdXNo
VG9Mb2coJ3VwbG9hZCcgKyB0eXBlKTsKKyAgfQorCisgIGlmIChnZXRCb29sRnJvbUNoZWNrQm94
KCd1cGxvYWQnKSkgeworICAgIHZhciB1cGxvYWQgPSB4aHIudXBsb2FkOworICAgIHVwbG9hZC5v
bmxvYWRzdGFydCA9IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25wcm9ncmVzcyA9IGxvZ1VwbG9h
ZDsKKyAgICB1cGxvYWQub25hYm9ydCA9IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25lcnJvciA9
IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25sb2FkID0gbG9nVXBsb2FkOworICAgIHVwbG9hZC5v
bnRpbWVvdXQgPSBsb2dVcGxvYWQ7CisgICAgdXBsb2FkLm9ubG9hZGVuZCA9IGxvZ1VwbG9hZDsK
KyAgfQorCisgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBsb2c7CisgIHhoci5vbmxvYWRzdGFy
dCA9IGxvZzsKKyAgeGhyLm9ucHJvZ3Jlc3MgPSBsb2c7CisgIHhoci5vbmFib3J0ID0gbG9nOwor
ICB4aHIub25lcnJvciA9IGxvZzsKKyAgeGhyLm9ubG9hZCA9IGxvZzsKKyAgeGhyLm9udGltZW91
dCA9IGxvZzsKKyAgeGhyLm9ubG9hZGVuZCA9IGxvZzsKKworICB4aHIub3BlbignUE9TVCcsICcv
MDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDVfcmVjZWl2ZScsCisgICAgICAgICAgIGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJykpOworICB2YXIgc2l6ZSA9IGdldEludEZyb21JbnB1
dCgnc2l6ZScpOworICB2YXIgY2h1bmtlZE1vZGUgPSAnbm9uZSc7CisgIGlmIChnZXRCb29sRnJv
bUNoZWNrQm94KCdjaHVua2VkcmVzcG9uc2UnKSkgeworICAgIGNodW5rZWRNb2RlID0gJ2NodW5r
ZWQnOworICB9CisgIHhoci5zZW5kKHNpemUgKyAnICcgKyBjaHVua2VkTW9kZSk7Cit9CisKK2Z1
bmN0aW9uIHByaW50KCkgeworICB2YXIgcmVzdWx0ID0gJyc7CisgIGZvciAodmFyIGkgPSAwOyBp
IDwgZXZlbnRzLmxlbmd0aDsgKytpKSB7CisgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOworICAg
IHZhciBsaW5lID0gJyc7CisgICAgbGluZSArPSAoZXZlbnQuZmlyc3QgLSBzdGFydFRpbWUpICsg
Im1zIjsKKyAgICBpZiAoZXZlbnQuY291bnQgPiAxKQorICAgICAgbGluZSArPSAiLSIgKyAoZXZl
bnQubGFzdCAtIHN0YXJ0VGltZSkgKyAibXMiOworICAgIGVsc2UKKyAgICAgIGxpbmUgKz0gIiAg
ICAgICAgIjsKKyAgICB3aGlsZShsaW5lLmxlbmd0aCA8IDE1KQorICAgICAgbGluZSArPSAiICI7
CisgICAgbGluZSArPSAiOiAiICsgZXZlbnQudHlwZSArICcgKiAnICsgZXZlbnQuY291bnQgKyAn
XG4nOworICAgIHJlc3VsdCArPSBsaW5lOworICB9CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsb2cnKS52YWx1ZSA9IHJlc3VsdDsKK30KKzwvc2NyaXB0PgorCis8Ym9keT4KKyAgPHRleHRh
cmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI3MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKyAg
PGJyLz4KKyAgU2l6ZTogPGlucHV0IHR5cGU9InRleHQiIGlkPSJzaXplIiB2YWx1ZT0iNjU1MzYi
Pjxici8+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNodW5rZWRyZXNwb25zZSI+Cisg
IDxsYWJlbCBmb3I9ImNodW5rZWRyZXNwb25zZSI+VXNlIENodW5rZWQgVC1FIGZvciByZXNwb25z
ZTwvbGFiZWw+PGJyLz4KKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idXBsb2FkIj4KKyAg
PGxhYmVsIGZvcj0idXBsb2FkIj5VcGxvYWQgcHJvZ3Jlc3M8L2xhYmVsPjxici8+CisgIDxpbnB1
dCB0eXBlPSJjaGVja2JveCIgaWQ9ImR1bXBwcm9ncmVzc2V2ZW50Ij4KKyAgPGxhYmVsIGZvcj0i
ZHVtcHByb2dyZXNzZXZlbnQiPgorICAgIER1bXAgbGVuZ3RoQ29tcHV0YWJsZS9sb2FkZWQvdG90
YWw8L2xhYmVsPjxici8+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBjaGVj
a2VkPgorICA8bGFiZWwgZm9yPSJhc3luYyI+QXN5bmM8L2xhYmVsPjxici8+CisgIDxpbnB1dCB0
eXBlPSJidXR0b24iIG9uY2xpY2s9InJ1bigpIiB2YWx1ZT0iUnVuIFhIUiI+CisgIDxpbnB1dCB0
eXBlPSJidXR0b24iIG9uY2xpY2s9InByaW50KCkiIHZhbHVlPSJQcmludCBsb2ciPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0
X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFiMDJjOWVhNTZmNmMxMGQwM2JlYzEwMzhkNjcyMmRlNmU4ZDMxZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rlc3RfaWZy
YW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InBlcmZvcm1hbmNlX3Rlc3Rf
aWZyYW1lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJrLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5MzNh
MjIwNDUxZmFkYjZhMDFhNWMxZDQ1YzI1NTE0NjhkN2Q4NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMjI0IEBACisjIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisj
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworCisiIiJXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2
ZXIuCisKK21vZF9weXdlYnNvY2tldCBpcyBhIFdlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNo
ZSBIVFRQIFNlcnZlcgoraW50ZW5kZWQgZm9yIHRlc3Rpbmcgb3IgZXhwZXJpbWVudGFsIHB1cnBv
c2VzLiBtb2RfcHl0aG9uIGlzIHJlcXVpcmVkLgorCisKK0luc3RhbGxhdGlvbgorPT09PT09PT09
PT09CisKKzAuIFByZXBhcmUgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGZvciB3aGljaCBtb2RfcHl0
aG9uIGlzIGVuYWJsZWQuCisKKzEuIFNwZWNpZnkgdGhlIGZvbGxvd2luZyBBcGFjaGUgSFRUUCBT
ZXJ2ZXIgZGlyZWN0aXZlcyB0byBzdWl0IHlvdXIKKyAgIGNvbmZpZ3VyYXRpb24uCisKKyAgIElm
IG1vZF9weXdlYnNvY2tldCBpcyBub3QgaW4gdGhlIFB5dGhvbiBwYXRoLCBzcGVjaWZ5IHRoZSBm
b2xsb3dpbmcuCisgICA8d2Vic29ja19saWI+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgbW9kX3B5
d2Vic29ja2V0IGlzIGluc3RhbGxlZC4KKworICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRoK1sn
PHdlYnNvY2tfbGliPiddIgorCisgICBBbHdheXMgc3BlY2lmeSB0aGUgZm9sbG93aW5nLiA8d2Vi
c29ja19oYW5kbGVycz4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZQorICAgdXNlci13cml0dGVuIFdl
YlNvY2tldCBoYW5kbGVycyBhcmUgcGxhY2VkLgorCisgICAgICAgUHl0aG9uT3B0aW9uIG1vZF9w
eXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgPHdlYnNvY2tfaGFuZGxlcnM+CisgICAgICAgUHl0aG9u
SGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxlcgor
CisgICBUbyBsaW1pdCB0aGUgc2VhcmNoIGZvciBXZWJTb2NrZXQgaGFuZGxlcnMgdG8gYSBkaXJl
Y3RvcnkgPHNjYW5fZGlyPgorICAgdW5kZXIgPHdlYnNvY2tfaGFuZGxlcnM+LCBjb25maWd1cmUg
YXMgZm9sbG93czoKKworICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxl
cl9zY2FuIDxzY2FuX2Rpcj4KKworICAgPHNjYW5fZGlyPiBpcyB1c2VmdWwgaW4gc2F2aW5nIHNj
YW4gdGltZSB3aGVuIDx3ZWJzb2NrX2hhbmRsZXJzPgorICAgY29udGFpbnMgbWFueSBub24tV2Vi
U29ja2V0IGhhbmRsZXIgZmlsZXMuCisKKyAgIElmIHlvdSB3YW50IHRvIGFsbG93IGhhbmRsZXJz
IHdob3NlIGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRlciB0aGUgcm9vdAorICAgZGlyZWN0b3J5
IChpLmUuIHN5bWJvbGljIGxpbmsgaXMgaW4gcm9vdCBkaXJlY3RvcnkgYnV0IGl0cyB0YXJnZXQg
aXMgbm90KSwKKyAgIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgorCisgICAgICAgUHl0aG9uT3B0aW9u
IG1vZF9weXdlYnNvY2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIE9uCisKKyAg
IEV4YW1wbGUgc25pcHBldCBvZiBodHRwZC5jb25mOgorICAgKG1vZF9weXdlYnNvY2tldCBpcyBp
biAvd2Vic29ja19saWIsIFdlYlNvY2tldCBoYW5kbGVycyBhcmUgaW4KKyAgIC93ZWJzb2NrX2hh
bmRsZXJzLCBwb3J0IGlzIDgwIGZvciB3cywgNDQzIGZvciB3c3MuKQorCisgICAgICAgPElmTW9k
dWxlIHB5dGhvbl9tb2R1bGU+CisgICAgICAgICBQeXRob25QYXRoICJzeXMucGF0aCtbJy93ZWJz
b2NrX2xpYiddIgorICAgICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVy
X3Jvb3QgL3dlYnNvY2tfaGFuZGxlcnMKKyAgICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRs
ZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKKyAgICAgICA8L0lmTW9kdWxl
PgorCisyLiBUdW5lIEFwYWNoZSBwYXJhbWV0ZXJzIGZvciBzZXJ2aW5nIFdlYlNvY2tldC4gV2Un
ZCBsaWtlIHRvIG5vdGUgdGhhdCBhdAorICAgbGVhc3QgVGltZU91dCBkaXJlY3RpdmUgZnJvbSBj
b3JlIGZlYXR1cmVzIGFuZCBSZXF1ZXN0UmVhZFRpbWVvdXQKKyAgIGRpcmVjdGl2ZSBmcm9tIG1v
ZF9yZXF0aW1lb3V0IHNob3VsZCBiZSBtb2RpZmllZCBub3QgdG8ga2lsbCBjb25uZWN0aW9ucwor
ICAgaW4gb25seSBhIGZldyBzZWNvbmRzIG9mIGlkbGUgdGltZS4KKworMy4gVmVyaWZ5IGluc3Rh
bGxhdGlvbi4gWW91IGNhbiB1c2UgZXhhbXBsZS9jb25zb2xlLmh0bWwgdG8gcG9rZSB0aGUgc2Vy
dmVyLgorCisKK1dyaXRpbmcgV2ViU29ja2V0IGhhbmRsZXJzCis9PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitXaGVuIGEgV2ViU29ja2V0IHJlcXVlc3QgY29tZXMgaW4sIHRoZSByZXNvdXJj
ZSBuYW1lCitzcGVjaWZpZWQgaW4gdGhlIGhhbmRzaGFrZSBpcyBjb25zaWRlcmVkIGFzIGlmIGl0
IGlzIGEgZmlsZSBwYXRoIHVuZGVyCis8d2Vic29ja19oYW5kbGVycz4gYW5kIHRoZSBoYW5kbGVy
IGRlZmluZWQgaW4KKzx3ZWJzb2NrX2hhbmRsZXJzPi88cmVzb3VyY2VfbmFtZT5fd3NoLnB5IGlz
IGludm9rZWQuCisKK0ZvciBleGFtcGxlLCBpZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyAvZXhhbXBs
ZS9jaGF0LCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCis8d2Vic29ja19oYW5kbGVycz4vZXhhbXBs
ZS9jaGF0X3dzaC5weSBpcyBpbnZva2VkLgorCitBIFdlYlNvY2tldCBoYW5kbGVyIGlzIGNvbXBv
c2VkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgZnVuY3Rpb25zOgorCisgICAgd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkKKyAgICB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCkKKyAgICB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVz
dCkKKword2hlcmU6CisgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorCit3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQgZHVyaW5nIHRoZSBoYW5kc2hha2UgYWZ0
ZXIgdGhlCitoZWFkZXJzIGFyZSBzdWNjZXNzZnVsbHkgcGFyc2VkIGFuZCBXZWJTb2NrZXQgcHJv
cGVydGllcyAod3NfbG9jYXRpb24sCit3c19vcmlnaW4sIGFuZCB3c19yZXNvdXJjZSkgYXJlIGFk
ZGVkIHRvIHJlcXVlc3QuIEEgaGFuZGxlcgorY2FuIHJlamVjdCB0aGUgcmVxdWVzdCBieSByYWlz
aW5nIGFuIGV4Y2VwdGlvbi4KKworQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBw
cm9wZXJ0aWVzIHRoYXQgeW91IGNhbiB1c2UgZHVyaW5nIHRoZQorZXh0cmEgaGFuZHNoYWtlICh3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6CistIHdzX3Jlc291cmNlCistIHdzX29yaWdp
bgorLSB3c192ZXJzaW9uCistIHdzX2xvY2F0aW9uIChIeUJpIDAwIG9ubHkpCistIHdzX2V4dGVu
c2lvbnMgKEh5QmkgMDYgYW5kIGxhdGVyKQorLSB3c19kZWZsYXRlIChIeUJpIDA2IGFuZCBsYXRl
cikKKy0gd3NfcHJvdG9jb2wKKy0gd3NfcmVxdWVzdGVkX3Byb3RvY29scyAoSHlCaSAwNiBhbmQg
bGF0ZXIpCisKK1RoZSBsYXN0IHR3byBhcmUgYSBiaXQgdHJpY2t5LiBTZWUgdGhlIG5leHQgc3Vi
c2VjdGlvbi4KKworCitTdWJwcm90b2NvbCBOZWdvdGlhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworRm9yIEh5QmkgMDYgYW5kIGxhdGVyLCB3c19wcm90b2NvbCBpcyBhbHdheXMgc2V0
IHRvIE5vbmUgd2hlbgord2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLiBJ
ZiB3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdAorTm9uZSwgeW91IG11c3QgY2hvb3NlIG9u
ZSBzdWJwcm90b2NvbCBmcm9tIHRoaXMgbGlzdCBhbmQgc2V0IGl0IHRvCit3c19wcm90b2NvbC4K
KworRm9yIEh5QmkgMDAsIHdoZW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2Fs
bGVkLAord3NfcHJvdG9jb2wgaXMgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgY2xpZW50
IGluCitTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciBvciBOb25lIGlmCitzdWNoIGhlYWRl
ciB3YXMgbm90IGZvdW5kIGluIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0LiBGaW5pc2gg
ZXh0cmEKK2hhbmRzaGFrZSB3aXRoIHdzX3Byb3RvY29sIHVudG91Y2hlZCB0byBhY2NlcHQgdGhl
IHJlcXVlc3Qgc3VicHJvdG9jb2wuCitUaGVuLCBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRl
ciB3aWxsIGJlIHNlbnQgdG8KK3RoZSBjbGllbnQgaW4gcmVzcG9uc2Ugd2l0aCB0aGUgc2FtZSB2
YWx1ZSBhcyByZXF1ZXN0ZWQuIFJhaXNlIGFuIGV4Y2VwdGlvbgoraW4gd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0ZWQgc3VicHJvdG9jb2wuCisKKwor
RGF0YSBUcmFuc2ZlcgorLS0tLS0tLS0tLS0tLQorCit3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEg
aXMgY2FsbGVkIGFmdGVyIHRoZSBoYW5kc2hha2UgY29tcGxldGVkCitzdWNjZXNzZnVsbHkuIEEg
aGFuZGxlciBjYW4gcmVjZWl2ZS9zZW5kIG1lc3NhZ2VzIGZyb20vdG8gdGhlIGNsaWVudAordXNp
bmcgcmVxdWVzdC4gbW9kX3B5d2Vic29ja2V0Lm1zZ3V0aWwgbW9kdWxlIHByb3ZpZGVzIHV0aWxp
dGllcworZm9yIGRhdGEgdHJhbnNmZXIuCisKK1lvdSBjYW4gcmVjZWl2ZSBhIG1lc3NhZ2UgYnkg
dGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQuCisKKyAgICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJl
YW0ucmVjZWl2ZV9tZXNzYWdlKCkKKworVGhpcyBjYWxsIGJsb2NrcyB1bnRpbCBhbnkgY29tcGxl
dGUgdGV4dCBmcmFtZSBhcnJpdmVzLCBhbmQgdGhlIHBheWxvYWQgZGF0YQorb2YgdGhlIGluY29t
aW5nIGZyYW1lIHdpbGwgYmUgc3RvcmVkIGludG8gbWVzc2FnZS4gV2hlbiB5b3UncmUgdXNpbmcg
SUVURgorSHlCaSAwMCBvciBsYXRlciBwcm90b2NvbCwgcmVjZWl2ZV9tZXNzYWdlKCkgd2lsbCBy
ZXR1cm4gTm9uZSBvbiByZWNlaXZpbmcKK2NsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hh
a2UuIFdoZW4gYW55IGVycm9yIG9jY3VycywgcmVjZWl2ZV9tZXNzYWdlKCkKK3dpbGwgcmFpc2Ug
c29tZSBleGNlcHRpb24uCisKK1lvdSBjYW4gc2VuZCBhIG1lc3NhZ2UgYnkgdGhlIGZvbGxvd2lu
ZyBzdGF0ZW1lbnQuCisKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2Fn
ZSkKKworCitDbG9zaW5nIENvbm5lY3Rpb24KKy0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGVjdXRp
bmcgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgb3IganVzdCByZXR1cm4taW5nIGZyb20KK3dlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YSBjYXVzZSBjb25uZWN0aW9uIGNsb3NlLgorCisgICAgcmVxdWVz
dC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCisKK2Nsb3NlX2Nvbm5lY3Rpb24gd2lsbCB3
YWl0Citmb3IgY2xvc2luZyBoYW5kc2hha2UgYWNrbm93bGVkZ2VtZW50IGNvbWluZyBmcm9tIHRo
ZSBjbGllbnQuIFdoZW4gaXQKK2NvdWxkbid0IHJlY2VpdmUgYSB2YWxpZCBhY2tub3dsZWRnZW1l
bnQsIHJhaXNlcyBhbiBleGNlcHRpb24uCisKK3dlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hh
bmRzaGFrZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHNlcnZlciByZWNlaXZlcworaW5jb21pbmcgY2xv
c2luZyBmcmFtZSBmcm9tIHRoZSBjbGllbnQgcGVlciBpbW1lZGlhdGVseS4gWW91IGNhbiBzcGVj
aWZ5Citjb2RlIGFuZCByZWFzb24gYnkgcmV0dXJuIHZhbHVlcy4gVGhleSBhcmUgc2VudCBhcyBh
IG91dGdvaW5nIGNsb3NpbmcgZnJhbWUKK2Zyb20gdGhlIHNlcnZlci4gQSByZXF1ZXN0IG9iamVj
dCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbgordXNlIGluIHdlYl9z
b2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZS4KKy0gd3NfY2xvc2VfY29kZQorLSB3c19j
bG9zZV9yZWFzb24KKworCitUaHJlYWRpbmcKKy0tLS0tLS0tLQorCitBIFdlYlNvY2tldCBoYW5k
bGVyIG11c3QgYmUgdGhyZWFkLXNhZmUgaWYgdGhlIHNlcnZlciAoQXBhY2hlIG9yCitzdGFuZGFs
b25lLnB5KSBpcyBjb25maWd1cmVkIHRvIHVzZSB0aHJlYWRzLgorCisKK0NvbmZpZ3VyaW5nIFdl
YlNvY2tldCBFeHRlbnNpb24gUHJvY2Vzc29ycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1NlZSBleHRlbnNpb25zLnB5IGZvciBzdXBwb3J0ZWQgV2ViU29j
a2V0IGV4dGVuc2lvbnMuIE5vdGUgdGhhdCB0aGV5IGFyZQordW5zdGFibGUgYW5kIHRoZWlyIEFQ
SXMgYXJlIHN1YmplY3QgdG8gY2hhbmdlIHN1YnN0YW50aWFsbHkuCisKK0EgcmVxdWVzdCBvYmpl
Y3QgaGFzIHRoZXNlIGV4dGVuc2lvbiBwcm9jZXNzaW5nIHJlbGF0ZWQgYXR0cmlidXRlcy4KKwor
LSB3c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKKworICBBIGxpc3Qgb2YgY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lvbgorICBwYXJhbWV0ZXJz
IHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudCBpbiB0aGUgY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hh
a2UuCisgIFlvdSBzaG91bGRuJ3QgbW9kaWZ5IGl0IG1hbnVhbGx5LgorCistIHdzX2V4dGVuc2lv
bnM6CisKKyAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJl
cHJlc2VudGluZyBleHRlbnNpb24KKyAgcGFyYW1ldGVycyB0byBzZW5kIGJhY2sgdG8gdGhlIGNs
aWVudCBpbiB0aGUgc2VydmVyJ3Mgb3BlbmluZyBoYW5kc2hha2UuCisgIFlvdSBzaG91bGRuJ3Qg
dG91Y2ggaXQgZGlyZWN0bHkuIEluc3RlYWQsIGNhbGwgbWV0aG9kcyBvbiBleHRlbnNpb24KKyAg
cHJvY2Vzc29ycy4KKworLSB3c19leHRlbnNpb25fcHJvY2Vzc29yczoKKworICBBIGxpc3Qgb2Yg
bG9hZGVkIGV4dGVuc2lvbiBwcm9jZXNzb3JzLiBGaW5kIHRoZSBwcm9jZXNzb3IgZm9yIHRoZQor
ICBleHRlbnNpb24geW91IHdhbnQgdG8gY29uZmlndXJlIGZyb20gaXQsIGFuZCBjYWxsIGl0cyBt
ZXRob2RzLgorIiIiCisKKworIyB2aTpzdHM9NCBzdz00IGV0IHR3PTcyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9fc3RyZWFtX2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzNTY2NmJiYjFkNTFjMTBkYjNmOTFiZGE0
YWJjZDdhZmViMjY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19z
dHJlYW1fYmFzZS5weQpAQCAtMCwwICsxLDE4MSBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIi
QmFzZSBzdHJlYW0gY2xhc3MuCisiIiIKKworCisjIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53
cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAorIyBtb2RfcHl0
aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVj
dGlvbgorIyBoYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25z
LiBGb3IgZXhhbXBsZSwKKyMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVj
YXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKKyMgd3JpdGluZy9yZWFkaW5n
LgorCisKK2ltcG9ydCBzb2NrZXQKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwK
KworCisjIEV4Y2VwdGlvbnMKKworCitjbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bihFeGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
YSBjb25uZWN0aW9uIGlzIHRlcm1pbmF0ZWQKKyAgICB1bmV4cGVjdGVkbHkuCisgICAgIiIiCisK
KyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEZyYW1lRXhjZXB0aW9uKENvbm5lY3Rpb25UZXJt
aW5hdGVkRXhjZXB0aW9uKToKKyAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3
aGVuIHdlIHJlY2VpdmVkIGFuIGludmFsaWQgZnJhbWUgd2UKKyAgICBjYW5ub3QgcGFyc2UuCisg
ICAgIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6CisgICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBzZW5kX21l
c3NhZ2UoKSBpcyBjYWxsZWQgb24KKyAgICBzZXJ2ZXItdGVybWluYXRlZCBjb25uZWN0aW9uIG9y
IHJlY2VpdmVfbWVzc2FnZSgpIGlzIGNhbGxlZCBvbgorICAgIGNsaWVudC10ZXJtaW5hdGVkIGNv
bm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFp
c2VkIHdoZW4gd2UgcmVjZWl2ZSBhIGZyYW1lIHdpdGggZmxhZywgb3Bjb2RlCisgICAgd2UgY2Fu
bm90IGhhbmRsZS4gSGFuZGxlcnMgY2FuIGp1c3QgY2F0Y2ggYW5kIGlnbm9yZSB0aGlzIGV4Y2Vw
dGlvbiBhbmQKKyAgICBjYWxsIHJlY2VpdmVfbWVzc2FnZSgpIGFnYWluIHRvIGNvbnRpbnVlIHBy
b2Nlc3NpbmcgdGhlIG5leHQgZnJhbWUuCisgICAgIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg
SW52YWxpZFVURjhFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3
aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmUgYSB0ZXh0IGZyYW1lIHdoaWNoCisgICAgY29u
dGFpbnMgaW52YWxpZCBVVEYtOCBzdHJpbmdzLgorICAgICIiIgorCisgICAgcGFzcworCisKK2Ns
YXNzIFN0cmVhbUJhc2Uob2JqZWN0KToKKyAgICAiIiJCYXNlIHN0cmVhbSBjbGFzcy4iIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0
aG9uIHJlcXVlc3QuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0
CisKKyAgICBkZWYgX3JlYWQoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVhZHMgbGVuZ3Ro
IGJ5dGVzIGZyb20gY29ubmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAor
ICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2Ug
YW5kIHJhaXNlIGFnYWluLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCisg
ICAgICAgICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlYWRfYnl0ZXMgPSBzZWxm
Ll9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZChsZW5ndGgpCisgICAgICAgICAgICBpZiBub3QgcmVh
ZF9ieXRlczoKKyAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbigKKyAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gUGVl
ciAoJXIpIGNsb3NlZCBjb25uZWN0aW9uJyAlCisgICAgICAgICAgICAgICAgICAgIChsZW5ndGgs
IChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSkpCisgICAgICAgICAgICBy
ZXR1cm4gcmVhZF9ieXRlcworICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yLCBlOgorICAgICAg
ICAgICAgIyBDYXRjaCBhIHNvY2tldC5lcnJvci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxkIGNs
YXNzIG9mIHRoZQorICAgICAgICAgICAgIyBJT0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYsIHdl
IGNhbm5vdCBvbWl0IHRoaXMgZXhjZXB0IGNsYXVzZS4KKyAgICAgICAgICAgICMgVXNlICVzIHJh
dGhlciB0aGFuICVyIGZvciB0aGUgZXhjZXB0aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQorICAg
ICAgICAgICAgIyBmb3JtYXQuCisgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBz
b2NrZXQuZXJyb3IgKCVzKSBvY2N1cnJlZCcgJQorICAgICAgICAgICAgICAgIChsZW5ndGgsIGUp
KQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgICAgICMgQWxzbyBjYXRjaCBh
biBJT0Vycm9yIGJlY2F1c2UgbW9kX3B5dGhvbiB0aHJvd3MgaXQuCisgICAgICAgICAgICByYWlz
ZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVjZWl2
aW5nICVkIGJ5dGUgZmFpbGVkLiBJT0Vycm9yICglcykgb2NjdXJyZWQnICUKKyAgICAgICAgICAg
ICAgICAobGVuZ3RoLCBlKSkKKworICAgIGRlZiBfd3JpdGUoc2VsZiwgYnl0ZXNfdG9fd3JpdGUp
OgorICAgICAgICAiIiJXcml0ZXMgZ2l2ZW4gYnl0ZXMgdG8gY29ubmVjdGlvbi4gSW4gY2FzZSB3
ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAorICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0
byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWluLgorICAgICAgICAiIiIKKwor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUo
Ynl0ZXNfdG9fd3JpdGUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAg
ICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAg
ICdGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksCisgICAgICAg
ICAgICAgICAgICAgIGUpCisgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHJlY2VpdmVfYnl0
ZXMoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVjZWl2ZXMgbXVsdGlwbGUgYnl0ZXMuIFJl
dHJpZXMgcmVhZCB3aGVuIHdlIGNvdWxkbid0IHJlY2VpdmUgdGhlCisgICAgICAgIHNwZWNpZmll
ZCBhbW91bnQuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgcmVhZF9ieXRlcyA9IFtdCisgICAgICAgIHdoaWxlIGxlbmd0aCA+IDA6
CisgICAgICAgICAgICBuZXdfcmVhZF9ieXRlcyA9IHNlbGYuX3JlYWQobGVuZ3RoKQorICAgICAg
ICAgICAgcmVhZF9ieXRlcy5hcHBlbmQobmV3X3JlYWRfYnl0ZXMpCisgICAgICAgICAgICBsZW5n
dGggLT0gbGVuKG5ld19yZWFkX2J5dGVzKQorICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5
dGVzKQorCisgICAgZGVmIF9yZWFkX3VudGlsKHNlbGYsIGRlbGltX2NoYXIpOgorICAgICAgICAi
IiJSZWFkcyBieXRlcyB1bnRpbCB3ZSBlbmNvdW50ZXIgZGVsaW1fY2hhci4gVGhlIHJlc3VsdCB3
aWxsIG5vdAorICAgICAgICBjb250YWluIGRlbGltX2NoYXIuCisKKyAgICAgICAgUmFpc2VzOgor
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1
cm5zIGVtcHR5IHN0cmluZy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVhZF9ieXRlcyA9IFtd
CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBjaCA9IHNlbGYuX3JlYWQoMSkKKyAg
ICAgICAgICAgIGlmIGNoID09IGRlbGltX2NoYXI6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5kKGNoKQorICAgICAgICByZXR1cm4gJycuam9pbihy
ZWFkX2J5dGVzKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0
cmVhbV9oaXhpZTc1LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0Y2Y1YjMxYmEwZmMzYzNhMzQ3N2RlODIyOTdh
MGMyNmRhMWM0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3Ry
ZWFtX2hpeGllNzUucHkKQEAgLTAsMCArMSwyMjkgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIi
IlRoaXMgZmlsZSBwcm92aWRlcyBhIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBv
ZiB0aGUgV2ViU29ja2V0Citwcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAgYW5kIEhpeGllIDc1Lgor
CitTcGVjaWZpY2F0aW9uOgorLSBIeUJpIDAwIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2Ry
YWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMAorLSBIaXhpZSA3NSBodHRwOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03NQor
IiIiCisKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KK2Zyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRF
eGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxp
ZEZyYW1lRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0
IFN0cmVhbUJhc2UKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5z
dXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwK
KworCitjbGFzcyBTdHJlYW1IaXhpZTc1KFN0cmVhbUJhc2UpOgorICAgICIiIkEgY2xhc3MgZm9y
IHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lv
bgorICAgIEh5QmkgMDAgYW5kIEhpeGllIDc1LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QsIGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZT1GYWxzZSk6CisgICAgICAg
ICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg
cmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICAgICAgZW5hYmxlX2Nsb3Npbmdf
aGFuZHNoYWtlOiB0byBsZXQgU3RyZWFtSGl4aWU3NSBwZXJmb3JtIGNsb3NpbmcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIGFzIHNwZWNpZmllZCBpbiBI
eUJpIDAwLCBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBv
cHRpb24gdG8gVHJ1ZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgU3RyZWFtQmFzZS5fX2luaXRf
XyhzZWxmLCByZXF1ZXN0KQorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZSA9
IGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZQorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50
X3Rlcm1pbmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5h
dGVkID0gRmFsc2UKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRy
dWUsIGJpbmFyeT1GYWxzZSk6CisgICAgICAgICIiIlNlbmQgbWVzc2FnZS4KKworICAgICAgICBB
cmdzOgorICAgICAgICAgICAgbWVzc2FnZTogdW5pY29kZSBzdHJpbmcgdG8gc2VuZC4KKyAgICAg
ICAgICAgIGJpbmFyeTogbm90IHVzZWQgaW4gaGl4aWU3NS4KKworICAgICAgICBSYWlzZXM6Cisg
ICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgc2VydmVy
LXRlcm1pbmF0ZWQKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAiIiIKKwor
ICAgICAgICBpZiBub3QgZW5kOgorICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKAorICAgICAgICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2Vu
ZF9tZXNzYWdlIHdpdGggZW5kPUZhbHNlJykKKworICAgICAgICBpZiBiaW5hcnk6CisgICAgICAg
ICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1N0cmVh
bUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBiaW5hcnk9VHJ1ZScp
CisKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAg
ICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVxdWVz
dGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykK
KworICAgICAgICBzZWxmLl93cml0ZSgnJy5qb2luKFsnXHgwMCcsIG1lc3NhZ2UuZW5jb2RlKCd1
dGYtOCcpLCAnXHhmZiddKSkKKworICAgIGRlZiBfcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1
KHNlbGYpOgorICAgICAgICAiIiJSZWFkcyBhIGxlbmd0aCBoZWFkZXIgaW4gYSBIaXhpZTc1IHZl
cnNpb24gZnJhbWUgd2l0aCBsZW5ndGguCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0
cmluZy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgbGVuZ3RoID0gMAorICAgICAgICB3aGlsZSBU
cnVlOgorICAgICAgICAgICAgYl9zdHIgPSBzZWxmLl9yZWFkKDEpCisgICAgICAgICAgICBiID0g
b3JkKGJfc3RyKQorICAgICAgICAgICAgbGVuZ3RoID0gbGVuZ3RoICogMTI4ICsgKGIgJiAweDdm
KQorICAgICAgICAgICAgaWYgKGIgJiAweDgwKSA9PSAwOgorICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgIHJldHVybiBsZW5ndGgKKworICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6
CisgICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5
bG9hZCBhbiB1bmljb2RlIHN0cmluZy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAg
cGF5bG9hZCB1bmljb2RlIHN0cmluZyBpbiBhIFdlYlNvY2tldCBmcmFtZS4KKworICAgICAgICBS
YWlzZXM6CisgICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiBy
ZWFkIHJldHVybnMgZW1wdHkKKyAgICAgICAgICAgICAgICBzdHJpbmcuCisgICAgICAgICAgICBC
YWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQK
KyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAiIiIKKworICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkOgorICAgICAgICAgICAgcmFpc2UgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNz
YWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3NpbmcgJworICAgICAgICAgICAgICAgICdoYW5kc2hh
a2UnKQorCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIFJlYWQgMSBieXRlLgor
ICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBieXRlcyBhcmUgYXZh
aWxhYmxlLgorICAgICAgICAgICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQgYnkgVGltZU91dCBk
aXJlY3RpdmUgb2YgQXBhY2hlLgorICAgICAgICAgICAgZnJhbWVfdHlwZV9zdHIgPSBzZWxmLnJl
Y2VpdmVfYnl0ZXMoMSkKKyAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBvcmQoZnJhbWVfdHlwZV9z
dHIpCisgICAgICAgICAgICBpZiAoZnJhbWVfdHlwZSAmIDB4ODApID09IDB4ODA6CisgICAgICAg
ICAgICAgICAgIyBUaGUgcGF5bG9hZCBsZW5ndGggaXMgc3BlY2lmaWVkIGluIHRoZSBmcmFtZS4K
KyAgICAgICAgICAgICAgICAjIFJlYWQgYW5kIGRpc2NhcmQuCisgICAgICAgICAgICAgICAgbGVu
Z3RoID0gc2VsZi5fcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkKKyAgICAgICAgICAgICAg
ICBpZiBsZW5ndGggPiAwOgorICAgICAgICAgICAgICAgICAgICBfID0gc2VsZi5yZWNlaXZlX2J5
dGVzKGxlbmd0aCkKKyAgICAgICAgICAgICAgICAjIDUuMyAzLiAxMi4gaWYgL3R5cGUvIGlzIDB4
RkYgYW5kIC9sZW5ndGgvIGlzIDAsIHRoZW4gc2V0IHRoZQorICAgICAgICAgICAgICAgICMgL2Ns
aWVudCB0ZXJtaW5hdGVkLyBmbGFnIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgICAg
ICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSAweEZG
IGFuZCBsZW5ndGggPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGll
bnRfdGVybWluYXRlZCA9IFRydWUKKworICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1
ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhY2sgZm9y
IHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2hhbmRzaGFrZScpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKKworICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAg
J1NlbnQgYWNrIGZvciBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgIyBUaGUgcGF5bG9hZCBpcyBkZWxpbWl0ZWQgd2l0aCBceGZmLgorICAgICAgICAgICAg
ICAgIGJ5dGVzID0gc2VsZi5fcmVhZF91bnRpbCgnXHhmZicpCisgICAgICAgICAgICAgICAgIyBU
aGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQK
KyAgICAgICAgICAgICAgICAjIGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZm
ZCBSRVBMQUNFTUVOVAorICAgICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgorICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSBieXRlcy5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2UnKQorICAgICAgICAg
ICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHgwMDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAjIERpc2NhcmQgZGF0YSBvZiBvdGhlciB0eXBlcy4K
KworICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgaWYgbm90
IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKKyAgICAgICAgICAgIHJhaXNlIEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnQ2xvc2luZyBoYW5kc2hha2UgaXMg
bm90IHN1cHBvcnRlZCBpbiBIaXhpZSA3NSBwcm90b2NvbCcpCisKKyAgICAgICAgc2VsZi5fcmVx
dWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKKworICAgICAgICAjIDUuMyB0aGUgc2VydmVy
IG1heSBkZWNpZGUgdG8gdGVybWluYXRlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBieQorICAg
ICAgICAjIHJ1bm5pbmcgdGhyb3VnaCB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgICAgICAjIDEu
IHNlbmQgYSAweEZGIGJ5dGUgYW5kIGEgMHgwMCBieXRlIHRvIHRoZSBjbGllbnQgdG8gaW5kaWNh
dGUgdGhlCisgICAgICAgICMgc3RhcnQgb2YgdGhlIGNsb3NpbmcgaGFuZHNoYWtlLgorICAgICAg
ICBzZWxmLl93cml0ZSgnXHhmZlx4MDAnKQorCisgICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2Vs
ZiwgdW51c2VkX2NvZGU9JycsIHVudXNlZF9yZWFzb249JycpOgorICAgICAgICAiIiJDbG9zZXMg
YSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBD
b25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSB3YXMK
KyAgICAgICAgICAgICAgICBub3Qgc3VjY2Vzc2Z1bGwuCisgICAgICAgICIiIgorCisgICAgICAg
IGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9zZV9jb25uZWN0aW9u
IGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5hdGVkJykKKyAgICAgICAgICAgIHJldHVybgor
CisgICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6CisgICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQorICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25uZWN0aW9uIGNsb3NlZCcpCisgICAgICAgICAgICByZXR1
cm4KKworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKKyAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2Un
KQorCisgICAgICAgICMgVE9ETyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJt
aW5hdGVkLyBmbGFnIGhhcyBiZWVuIHNldCwKKyAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1k
ZWZpbmVkIHRpbWVvdXQgZXhwaXJlcy4KKyAgICAgICAgIworICAgICAgICAjIEZvciBub3csIHdl
IGV4cGVjdCByZWNlaXZpbmcgY2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZwor
ICAgICAgICAjIG91dCBjbG9zaW5nIGhhbmRzaGFrZSwgYW5kIGlmIHdlIGNvdWxkbid0IHJlY2Vp
dmUgbm9uLWhhbmRzaGFrZQorICAgICAgICAjIGZyYW1lLCB3ZSB0YWtlIGl0IGFzIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uLgorICAgICAgICBtZXNzYWdlID0gc2VsZi5yZWNlaXZlX21l
c3NhZ2UoKQorICAgICAgICBpZiBtZXNzYWdlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFp
c2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0RpZG5c
J3QgcmVjZWl2ZSB2YWxpZCBhY2sgZm9yIGNsb3NpbmcgaGFuZHNoYWtlJykKKyAgICAgICAgIyBU
T0RPOiAzLiBjbG9zZSB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uCisgICAgICAgICMgbm90ZTog
bW9kX3B5dGhvbiBDb25uZWN0aW9uIChtcF9jb25uKSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0aG9k
LgorCisgICAgZGVmIHNlbmRfcGluZyhzZWxmLCBib2R5KToKKyAgICAgICAgcmFpc2UgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3Vw
cG9ydCBzZW5kX3BpbmcnKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
X3N0cmVhbV9oeWJpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwNDIyMWI0YzMwNDAyNmYwYWI5NGVjZWU3OWVi
NjZhMmNlNDE0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3Ry
ZWFtX2h5YmkucHkKQEAgLTAsMCArMSw4OTQgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJ
bmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRo
aXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBwYXJzaW5n
L2J1aWxkaW5nIGZyYW1lcworb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLgor
CitTcGVjaWZpY2F0aW9uOgoraHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQorIiIi
CisKKworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKK2ltcG9ydCBsb2dnaW5nCitpbXBv
cnQgb3MKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0aW1lCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCitmcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJ
bnZhbGlkRnJhbWVFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
YmFzZSBpbXBvcnQgU3RyZWFtQmFzZQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNl
IGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCisKKworX05PT1BfTUFTS0VSID0gdXRp
bC5Ob29wTWFza2VyKCkKKworCitjbGFzcyBGcmFtZShvYmplY3QpOgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZpbj0xLCByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wLAorICAgICAgICAgICAgICAg
ICBvcGNvZGU9Tm9uZSwgcGF5bG9hZD0nJyk6CisgICAgICAgIHNlbGYuZmluID0gZmluCisgICAg
ICAgIHNlbGYucnN2MSA9IHJzdjEKKyAgICAgICAgc2VsZi5yc3YyID0gcnN2MgorICAgICAgICBz
ZWxmLnJzdjMgPSByc3YzCisgICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCisgICAgICAgIHNl
bGYucGF5bG9hZCA9IHBheWxvYWQKKworCisjIEhlbHBlciBmdW5jdGlvbnMgbWFkZSBwdWJsaWMg
dG8gYmUgdXNlZCBmb3Igd3JpdGluZyB1bml0dGVzdHMgZm9yIFdlYlNvY2tldAorIyBjbGllbnRz
LgorCisKK2RlZiBjcmVhdGVfbGVuZ3RoX2hlYWRlcihsZW5ndGgsIG1hc2spOgorICAgICIiIkNy
ZWF0ZXMgYSBsZW5ndGggaGVhZGVyLgorCisgICAgQXJnczoKKyAgICAgICAgbGVuZ3RoOiBGcmFt
ZSBsZW5ndGguIE11c3QgYmUgbGVzcyB0aGFuIDJeNjMuCisgICAgICAgIG1hc2s6IE1hc2sgYml0
LiBNdXN0IGJlIGJvb2xlYW4uCisKKyAgICBSYWlzZXM6CisgICAgICAgIFZhbHVlRXJyb3I6IHdo
ZW4gYmFkIGRhdGEgaXMgZ2l2ZW4uCisgICAgIiIiCisKKyAgICBpZiBtYXNrOgorICAgICAgICBt
YXNrX2JpdCA9IDEgPDwgNworICAgIGVsc2U6CisgICAgICAgIG1hc2tfYml0ID0gMAorCisgICAg
aWYgbGVuZ3RoIDwgMDoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGVuZ3RoIG11c3QgYmUg
bm9uIG5lZ2F0aXZlIGludGVnZXInKQorICAgIGVsaWYgbGVuZ3RoIDw9IDEyNToKKyAgICAgICAg
cmV0dXJuIGNocihtYXNrX2JpdCB8IGxlbmd0aCkKKyAgICBlbGlmIGxlbmd0aCA8ICgxIDw8IDE2
KToKKyAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygnIUgn
LCBsZW5ndGgpCisgICAgZWxpZiBsZW5ndGggPCAoMSA8PCA2Myk6CisgICAgICAgIHJldHVybiBj
aHIobWFza19iaXQgfCAxMjcpICsgc3RydWN0LnBhY2soJyFRJywgbGVuZ3RoKQorICAgIGVsc2U6
CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgaXMgdG9vIGJpZyBmb3Igb25lIGZy
YW1lJykKKworCitkZWYgY3JlYXRlX2hlYWRlcihvcGNvZGUsIHBheWxvYWRfbGVuZ3RoLCBmaW4s
IHJzdjEsIHJzdjIsIHJzdjMsIG1hc2spOgorICAgICIiIkNyZWF0ZXMgYSBmcmFtZSBoZWFkZXIu
CisKKyAgICBSYWlzZXM6CisgICAgICAgIEV4Y2VwdGlvbjogd2hlbiBiYWQgZGF0YSBpcyBnaXZl
bi4KKyAgICAiIiIKKworICAgIGlmIG9wY29kZSA8IDAgb3IgMHhmIDwgb3Bjb2RlOgorICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdPcGNvZGUgb3V0IG9mIHJhbmdlJykKKworICAgIGlmIHBheWxv
YWRfbGVuZ3RoIDwgMCBvciAoMSA8PCA2MykgPD0gcGF5bG9hZF9sZW5ndGg6CisgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ3BheWxvYWRfbGVuZ3RoIG91dCBvZiByYW5nZScpCisKKyAgICBpZiAo
ZmluIHwgcnN2MSB8IHJzdjIgfCByc3YzKSAmIH4xOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdGSU4gYml0IGFuZCBSZXNlcnZlZCBiaXQgcGFyYW1ldGVyIG11c3QgYmUgMCBvciAxJykKKwor
ICAgIGhlYWRlciA9ICcnCisKKyAgICBmaXJzdF9ieXRlID0gKChmaW4gPDwgNykKKyAgICAgICAg
ICAgICAgICAgIHwgKHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpCisgICAg
ICAgICAgICAgICAgICB8IG9wY29kZSkKKyAgICBoZWFkZXIgKz0gY2hyKGZpcnN0X2J5dGUpCisg
ICAgaGVhZGVyICs9IGNyZWF0ZV9sZW5ndGhfaGVhZGVyKHBheWxvYWRfbGVuZ3RoLCBtYXNrKQor
CisgICAgcmV0dXJuIGhlYWRlcgorCisKK2RlZiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBib2R5LCBt
YXNrKToKKyAgICBpZiBub3QgbWFzazoKKyAgICAgICAgcmV0dXJuIGhlYWRlciArIGJvZHkKKwor
ICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCisgICAgbWFza2VyID0gdXRpbC5SZXBl
YXRlZFhvck1hc2tlcihtYXNraW5nX25vbmNlKQorCisgICAgcmV0dXJuIGhlYWRlciArIG1hc2tp
bmdfbm9uY2UgKyBtYXNrZXIubWFzayhib2R5KQorCisKK2RlZiBfZmlsdGVyX2FuZF9mb3JtYXRf
ZnJhbWVfb2JqZWN0KGZyYW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKKyAgICBmb3IgZnJhbWVf
ZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6CisgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJh
bWUpCisKKyAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKAorICAgICAgICBmcmFtZS5vcGNvZGUs
IGxlbihmcmFtZS5wYXlsb2FkKSwgZnJhbWUuZmluLAorICAgICAgICBmcmFtZS5yc3YxLCBmcmFt
ZS5yc3YyLCBmcmFtZS5yc3YzLCBtYXNrKQorICAgIHJldHVybiBfYnVpbGRfZnJhbWUoaGVhZGVy
LCBmcmFtZS5wYXlsb2FkLCBtYXNrKQorCisKK2RlZiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAorICAg
IG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwgZmluPTEsIG1hc2s9RmFsc2Us
IGZyYW1lX2ZpbHRlcnM9W10pOgorICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUgYmluYXJ5IGZyYW1l
IHdpdGggbm8gZXh0ZW5zaW9uLCByZXNlcnZlZCBiaXQuIiIiCisKKyAgICBmcmFtZSA9IEZyYW1l
KGZpbj1maW4sIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9bWVzc2FnZSkKKyAgICByZXR1cm4gX2Zp
bHRlcl9hbmRfZm9ybWF0X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJhbWVfZmlsdGVycykK
KworCitkZWYgY3JlYXRlX3RleHRfZnJhbWUoCisgICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5P
UENPREVfVEVYVCwgZmluPTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgorICAgICIi
IkNyZWF0ZXMgYSBzaW1wbGUgdGV4dCBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2ZWQg
Yml0LiIiIgorCisgICAgZW5jb2RlZF9tZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykK
KyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShlbmNvZGVkX21lc3NhZ2UsIG9wY29kZSwg
ZmluLCBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnMp
CisKKworZGVmIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXMsIGxvZ2dlcj1Ob25lLAorICAgICAg
ICAgICAgICAgIHdzX3ZlcnNpb249Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsCisgICAgICAg
ICAgICAgICAgdW5tYXNrX3JlY2VpdmU9VHJ1ZSk6CisgICAgIiIiUGFyc2VzIGEgZnJhbWUuIFJl
dHVybnMgYSB0dXBsZSBjb250YWluaW5nIGVhY2ggaGVhZGVyIGZpZWxkIGFuZAorICAgIHBheWxv
YWQuCisKKyAgICBBcmdzOgorICAgICAgICByZWNlaXZlX2J5dGVzOiBhIGZ1bmN0aW9uIHRoYXQg
cmVhZHMgZnJhbWUgZGF0YSBmcm9tIGEgc3RyZWFtIG9yCisgICAgICAgICAgICBzb21ldGhpbmcg
c2ltaWxhci4gVGhlIGZ1bmN0aW9uIHRha2VzIGxlbmd0aCBvZiB0aGUgYnl0ZXMgdG8gYmUKKyAg
ICAgICAgICAgIHJlYWQuIFRoZSBmdW5jdGlvbiBtdXN0IHJhaXNlIENvbm5lY3Rpb25UZXJtaW5h
dGVkRXhjZXB0aW9uIGlmCisgICAgICAgICAgICB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8g
YmUgcmVhZC4KKyAgICAgICAgbG9nZ2VyOiBhIGxvZ2dpbmcgb2JqZWN0LgorICAgICAgICB3c192
ZXJzaW9uOiB0aGUgdmVyc2lvbiBvZiBXZWJTb2NrZXQgcHJvdG9jb2wuCisgICAgICAgIHVubWFz
a19yZWNlaXZlOiB1bm1hc2sgcmVjZWl2ZWQgZnJhbWVzLiBXaGVuIHJlY2VpdmVkIHVubWFza2Vk
CisgICAgICAgICAgICBmcmFtZSwgcmFpc2VzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KKworICAg
IFJhaXNlczoKKyAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVj
ZWl2ZV9ieXRlcyByYWlzZXMgaXQuCisgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hl
biB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgorICAgICIiIgorCisgICAgaWYgbm90
IGxvZ2dlcjoKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisgICAgbG9n
Z2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgdGhlIGZpcnN0IDIgb2N0ZXRz
IG9mIGEgZnJhbWUnKQorCisgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKDIpCisKKyAgICBm
aXJzdF9ieXRlID0gb3JkKHJlY2VpdmVkWzBdKQorICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcp
ICYgMQorICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKKyAgICByc3YyID0gKGZpcnN0
X2J5dGUgPj4gNSkgJiAxCisgICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQorICAgIG9w
Y29kZSA9IGZpcnN0X2J5dGUgJiAweGYKKworICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVk
WzFdKQorICAgIG1hc2sgPSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCisgICAgcGF5bG9hZF9sZW5n
dGggPSBzZWNvbmRfYnl0ZSAmIDB4N2YKKworICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVM
X0ZJTkUsCisgICAgICAgICAgICAgICAnRklOPSVzLCBSU1YxPSVzLCBSU1YyPSVzLCBSU1YzPSVz
LCBvcGNvZGU9JXMsICcKKyAgICAgICAgICAgICAgICdNYXNrPSVzLCBQYXlsb2FkX2xlbmd0aD0l
cycsCisgICAgICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgbWFzaywg
cGF5bG9hZF9sZW5ndGgpCisKKyAgICBpZiAobWFzayA9PSAxKSAhPSB1bm1hc2tfcmVjZWl2ZToK
KyAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgJ01hc2sg
Yml0IG9uIHRoZSByZWNlaXZlZCBmcmFtZSBkaWRcJ250IG1hdGNoIG1hc2tpbmcgJworICAgICAg
ICAgICAgJ2NvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmVkIGZyYW1lcycpCisKKyAgICAjIFRoZSBI
eUJpIGFuZCBsYXRlciBzcGVjcyBkaXNhbGxvdyBwdXR0aW5nIGEgdmFsdWUgaW4gMHgwLTB4RkZG
RgorICAgICMgaW50byB0aGUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVsZCAo
b3IgMHgwLTB4RkQgaW4KKyAgICAjIDItb2N0ZXQgZmllbGQpLgorICAgIHZhbGlkX2xlbmd0aF9l
bmNvZGluZyA9IFRydWUKKyAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAxCisgICAgaWYgcGF5
bG9hZF9sZW5ndGggPT0gMTI3OgorICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9G
SU5FLAorICAgICAgICAgICAgICAgICAgICdSZWNlaXZlIDgtb2N0ZXQgZXh0ZW5kZWQgcGF5bG9h
ZCBsZW5ndGgnKQorCisgICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9i
eXRlcyg4KQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCisgICAgICAg
ICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKyAgICAgICAgaWYgcGF5bG9h
ZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6CisgICAgICAgICAgICByYWlzZSBJbnZhbGlk
RnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3Ro
ID49IDJeNjMnKQorICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xlbmd0
aCA8IDB4MTAwMDA6CisgICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxzZQor
ICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gOAorCisgICAgICAgIGxvZ2dlci5s
b2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCisgICAgICAgICAgICAgICAgICAgJ0RlY29kZWRfcGF5
bG9hZF9sZW5ndGg9JXMnLCBwYXlsb2FkX2xlbmd0aCkKKyAgICBlbGlmIHBheWxvYWRfbGVuZ3Ro
ID09IDEyNjoKKyAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKKyAgICAg
ICAgICAgICAgICAgICAnUmVjZWl2ZSAyLW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoJykK
KworICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoMikKKyAg
ICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAorICAgICAgICAgICAgJyFIJywg
ZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCisgICAgICAgIGlmIHdzX3ZlcnNpb24gPj0gMTMg
YW5kIHBheWxvYWRfbGVuZ3RoIDwgMTI2OgorICAgICAgICAgICAgdmFsaWRfbGVuZ3RoX2VuY29k
aW5nID0gRmFsc2UKKyAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDIKKworICAg
ICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAorICAgICAgICAgICAgICAgICAg
ICdEZWNvZGVkX3BheWxvYWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgpCisKKyAgICBpZiBu
b3QgdmFsaWRfbGVuZ3RoX2VuY29kaW5nOgorICAgICAgICBsb2dnZXIud2FybmluZygKKyAgICAg
ICAgICAgICdQYXlsb2FkIGxlbmd0aCBpcyBub3QgZW5jb2RlZCB1c2luZyB0aGUgbWluaW1hbCBu
dW1iZXIgb2YgJworICAgICAgICAgICAgJ2J5dGVzICglZCBpcyBlbmNvZGVkIHVzaW5nICVkIGJ5
dGVzKScsCisgICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCwKKyAgICAgICAgICAgIGxlbmd0aF9l
bmNvZGluZ19ieXRlcykKKworICAgIGlmIG1hc2sgPT0gMToKKyAgICAgICAgbG9nZ2VyLmxvZyhj
b21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgbWFzaycpCisKKyAgICAgICAgbWFza2luZ19u
b25jZSA9IHJlY2VpdmVfYnl0ZXMoNCkKKyAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhv
ck1hc2tlcihtYXNraW5nX25vbmNlKQorCisgICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xF
VkVMX0ZJTkUsICdNYXNrPSVyJywgbWFza2luZ19ub25jZSkKKyAgICBlbHNlOgorICAgICAgICBt
YXNrZXIgPSBfTk9PUF9NQVNLRVIKKworICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJ
TkUsICdSZWNlaXZlIHBheWxvYWQgZGF0YScpCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihj
b21tb24uTE9HTEVWRUxfRklORSk6CisgICAgICAgIHJlY2VpdmVfc3RhcnQgPSB0aW1lLnRpbWUo
KQorCisgICAgcmF3X3BheWxvYWRfYnl0ZXMgPSByZWNlaXZlX2J5dGVzKHBheWxvYWRfbGVuZ3Ro
KQorCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Cisg
ICAgICAgIGxvZ2dlci5sb2coCisgICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKKyAg
ICAgICAgICAgICdEb25lIHJlY2VpdmluZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCisgICAg
ICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHJlY2VpdmVfc3RhcnQpIC8g
MTAwMCAvIDEwMDApCisgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1VubWFz
ayBwYXlsb2FkIGRhdGEnKQorCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9H
TEVWRUxfRklORSk6CisgICAgICAgIHVubWFza19zdGFydCA9IHRpbWUudGltZSgpCisKKyAgICB1
bm1hc2tlZF9ieXRlcyA9IG1hc2tlci5tYXNrKHJhd19wYXlsb2FkX2J5dGVzKQorCisgICAgaWYg
bG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6CisgICAgICAgIGxvZ2dl
ci5sb2coCisgICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKKyAgICAgICAgICAgICdE
b25lIHVubWFza2luZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCisgICAgICAgICAgICBwYXls
b2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHVubWFza19zdGFydCkgLyAxMDAwIC8gMTAwMCkK
KworICAgIHJldHVybiBvcGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIsIHJz
djMKKworCitjbGFzcyBGcmFnbWVudGVkRnJhbWVCdWlsZGVyKG9iamVjdCk6CisgICAgIiIiQSBz
dGF0ZWZ1bCBjbGFzcyB0byBzZW5kIGEgbWVzc2FnZSBhcyBmcmFnbWVudHMuIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbWFzaywgZnJhbWVfZmlsdGVycz1bXSwgZW5jb2RlX3V0Zjg9VHJ1
ZSk6CisgICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuIiIiCisKKyAgICAgICAgc2Vs
Zi5fbWFzayA9IG1hc2sKKyAgICAgICAgc2VsZi5fZnJhbWVfZmlsdGVycyA9IGZyYW1lX2ZpbHRl
cnMKKyAgICAgICAgIyBUaGlzIGlzIGZvciBza2lwcGluZyBVVEYtOCBlbmNvZGluZyB3aGVuIGJ1
aWxkaW5nIHRleHQgdHlwZSBmcmFtZXMKKyAgICAgICAgIyBmcm9tIGNvbXByZXNzZWQgZGF0YS4K
KyAgICAgICAgc2VsZi5fZW5jb2RlX3V0ZjggPSBlbmNvZGVfdXRmOAorCisgICAgICAgIHNlbGYu
X3N0YXJ0ZWQgPSBGYWxzZQorCisgICAgICAgICMgSG9sZCBvcGNvZGUgb2YgdGhlIGZpcnN0IGZy
YW1lIGluIG1lc3NhZ2VzIHRvIHZlcmlmeSB0eXBlcyBvZiBvdGhlcgorICAgICAgICAjIGZyYW1l
cyBpbiB0aGUgbWVzc2FnZSBhcmUgYWxsIHRoZSBzYW1lLgorICAgICAgICBzZWxmLl9vcGNvZGUg
PSBjb21tb24uT1BDT0RFX1RFWFQKKworICAgIGRlZiBidWlsZChzZWxmLCBwYXlsb2FkX2RhdGEs
IGVuZCwgYmluYXJ5KToKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgZnJhbWVfdHlw
ZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmcmFt
ZV90eXBlID0gY29tbW9uLk9QQ09ERV9URVhUCisgICAgICAgIGlmIHNlbGYuX3N0YXJ0ZWQ6Cisg
ICAgICAgICAgICBpZiBzZWxmLl9vcGNvZGUgIT0gZnJhbWVfdHlwZToKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gZnJhbWVz
IGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHNhbWUgbWVzc2Fn
ZScpCisgICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQorICAgICAgICAgICAg
c2VsZi5fb3Bjb2RlID0gZnJhbWVfdHlwZQorCisgICAgICAgIGlmIGVuZDoKKyAgICAgICAgICAg
IHNlbGYuX3N0YXJ0ZWQgPSBGYWxzZQorICAgICAgICAgICAgZmluID0gMQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IFRydWUKKyAgICAgICAgICAgIGZpbiA9IDAK
KworICAgICAgICBpZiBiaW5hcnkgb3Igbm90IHNlbGYuX2VuY29kZV91dGY4OgorICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCisgICAgICAgICAgICAgICAgcGF5bG9hZF9k
YXRhLCBvcGNvZGUsIGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVfdGV4dF9mcmFtZSgKKyAgICAgICAg
ICAgICAgICBwYXlsb2FkX2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9mcmFt
ZV9maWx0ZXJzKQorCisKK2RlZiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUob3Bjb2RlLCBib2R5LCBt
YXNrLCBmcmFtZV9maWx0ZXJzKToKKyAgICBmcmFtZSA9IEZyYW1lKG9wY29kZT1vcGNvZGUsIHBh
eWxvYWQ9Ym9keSkKKworICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoKKyAg
ICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKKworICAgIGlmIGxlbihmcmFtZS5wYXls
b2FkKSA+IDEyNToKKyAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAg
ICAgICAgJ1BheWxvYWQgZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1IGJ5
dGVzIG9yIGxlc3MnKQorCisgICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigKKyAgICAgICAgZnJh
bWUub3Bjb2RlLCBsZW4oZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKKyAgICAgICAgZnJhbWUu
cnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MywgbWFzaykKKyAgICByZXR1cm4gX2J1aWxkX2Zy
YW1lKGhlYWRlciwgZnJhbWUucGF5bG9hZCwgbWFzaykKKworCitkZWYgY3JlYXRlX3BpbmdfZnJh
bWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6CisgICAgcmV0dXJuIF9jcmVh
dGVfY29udHJvbF9mcmFtZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIG1hc2ssIGZyYW1lX2Zp
bHRlcnMpCisKKworZGVmIGNyZWF0ZV9wb25nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1l
X2ZpbHRlcnM9W10pOgorICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9uLk9Q
Q09ERV9QT05HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQorCisKK2RlZiBjcmVhdGVfY2xv
c2VfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6CisgICAgcmV0dXJu
IF9jcmVhdGVfY29udHJvbF9mcmFtZSgKKyAgICAgICAgY29tbW9uLk9QQ09ERV9DTE9TRSwgYm9k
eSwgbWFzaywgZnJhbWVfZmlsdGVycykKKworCitkZWYgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtl
X2JvZHkoY29kZSwgcmVhc29uKToKKyAgICBib2R5ID0gJycKKyAgICBpZiBjb2RlIGlzIG5vdCBO
b25lOgorICAgICAgICBpZiAoY29kZSA+IGNvbW1vbi5TVEFUVVNfVVNFUl9QUklWQVRFX01BWCBv
cgorICAgICAgICAgICAgY29kZSA8IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgorICAg
ICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBpcyBvdXQg
b2YgcmFuZ2UnKQorICAgICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX05PX1NUQVRVU19S
RUNFSVZFRCBvcgorICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX0FCTk9STUFMX0NM
T1NVUkUgb3IKKyAgICAgICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19UTFNfSEFORFNIQUtF
KToKKyAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignU3RhdHVzIGNvZGUg
aXMgcmVzZXJ2ZWQgcHNldWRvICcKKyAgICAgICAgICAgICAgICAnY29kZScpCisgICAgICAgIGVu
Y29kZWRfcmVhc29uID0gcmVhc29uLmVuY29kZSgndXRmLTgnKQorICAgICAgICBib2R5ID0gc3Ry
dWN0LnBhY2soJyFIJywgY29kZSkgKyBlbmNvZGVkX3JlYXNvbgorICAgIHJldHVybiBib2R5CisK
KworY2xhc3MgU3RyZWFtT3B0aW9ucyhvYmplY3QpOgorICAgICIiIkhvbGRzIG9wdGlvbiB2YWx1
ZXMgdG8gY29uZmlndXJlIFN0cmVhbSBvYmplY3RzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgorICAgICAgICAiIiJDb25zdHJ1Y3RzIFN0cmVhbU9wdGlvbnMuIiIiCisKKyAgICAgICAg
IyBGaWx0ZXJzIGFwcGxpZWQgdG8gZnJhbWVzLgorICAgICAgICBzZWxmLm91dGdvaW5nX2ZyYW1l
X2ZpbHRlcnMgPSBbXQorICAgICAgICBzZWxmLmluY29taW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQor
CisgICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIG1lc3NhZ2VzLiBDb250cm9sIGZyYW1lcyBh
cmUgbm90IGFmZmVjdGVkIGJ5IHRoZW0uCisgICAgICAgIHNlbGYub3V0Z29pbmdfbWVzc2FnZV9m
aWx0ZXJzID0gW10KKyAgICAgICAgc2VsZi5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMgPSBbXQor
CisgICAgICAgIHNlbGYuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gVHJ1ZQorICAgICAg
ICBzZWxmLm1hc2tfc2VuZCA9IEZhbHNlCisgICAgICAgIHNlbGYudW5tYXNrX3JlY2VpdmUgPSBU
cnVlCisKKworY2xhc3MgU3RyZWFtKFN0cmVhbUJhc2UpOgorICAgICIiIkEgY2xhc3MgZm9yIHBh
cnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wKKyAgICAoUkZD
IDY0NTUpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIG9wdGlv
bnMpOgorICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6
CisgICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisgICAgICAgICIiIgor
CisgICAgICAgIFN0cmVhbUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKKworICAgICAgICBz
ZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxm
Ll9vcHRpb25zID0gb3B0aW9ucworCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1p
bmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0g
RmFsc2UKKworICAgICAgICAjIEhvbGRzIGJvZHkgb2YgcmVjZWl2ZWQgZnJhZ21lbnRzLgorICAg
ICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMgPSBbXQorICAgICAgICAjIEhvbGRzIHRoZSBv
cGNvZGUgb2YgdGhlIGZpcnN0IGZyYWdtZW50LgorICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNv
ZGUgPSBOb25lCisKKyAgICAgICAgc2VsZi5fd3JpdGVyID0gRnJhZ21lbnRlZEZyYW1lQnVpbGRl
cigKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLCBzZWxmLl9vcHRpb25zLm91
dGdvaW5nX2ZyYW1lX2ZpbHRlcnMsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVuY29kZV90
ZXh0X21lc3NhZ2VfdG9fdXRmOCkKKworICAgICAgICBzZWxmLl9waW5nX3F1ZXVlID0gZGVxdWUo
KQorCisgICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiJSZWNlaXZlcyBh
IGZyYW1lIGFuZCByZXR1cm4gZGF0YSBpbiB0aGUgZnJhbWUgYXMgYSB0dXBsZSBjb250YWluaW5n
CisgICAgICAgIGVhY2ggaGVhZGVyIGZpZWxkIGFuZCBwYXlsb2FkIHNlcGFyYXRlbHkuCisKKyAg
ICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246
IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5CisgICAgICAgICAgICAgICAgc3RyaW5nLgorICAgICAg
ICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZh
bGlkIGRhdGEuCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhsZW5n
dGgpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVjZWl2ZV9ieXRlcyhsZW5ndGgpCisKKyAg
ICAgICAgcmV0dXJuIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXM9X3JlY2VpdmVfYnl0ZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd3NfdmVyc2lvbj1zZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1zZWxmLl9vcHRpb25zLnVu
bWFza19yZWNlaXZlKQorCisgICAgZGVmIF9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdChz
ZWxmKToKKyAgICAgICAgb3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCBy
c3YzID0gc2VsZi5fcmVjZWl2ZV9mcmFtZSgpCisKKyAgICAgICAgcmV0dXJuIEZyYW1lKGZpbj1m
aW4sIHJzdjE9cnN2MSwgcnN2Mj1yc3YyLCByc3YzPXJzdjMsCisgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXVubWFza2VkX2J5dGVzKQorCisgICAgZGVmIHJlY2Vp
dmVfZmlsdGVyZWRfZnJhbWUoc2VsZik6CisgICAgICAgICIiIlJlY2VpdmVzIGEgZnJhbWUgYW5k
IGFwcGxpZXMgZnJhbWUgZmlsdGVycyBhbmQgbWVzc2FnZSBmaWx0ZXJzLgorICAgICAgICBUaGUg
ZnJhbWUgdG8gYmUgcmVjZWl2ZWQgbXVzdCBzYXRpc2Z5IGZvbGxvd2luZyBjb25kaXRpb25zOgor
ICAgICAgICAtIFRoZSBmcmFtZSBpcyBub3QgZnJhZ21lbnRlZC4KKyAgICAgICAgLSBUaGUgb3Bj
b2RlIG9mIHRoZSBmcmFtZSBpcyBURVhUIG9yIEJJTkFSWS4KKworICAgICAgICBETyBOT1QgVVNF
IHRoaXMgbWV0aG9kIGV4Y2VwdCBmb3IgdGVzdGluZyBwdXJwb3NlLgorICAgICAgICAiIiIKKwor
ICAgICAgICBmcmFtZSA9IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkKKyAg
ICAgICAgaWYgbm90IGZyYW1lLmZpbjoKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnU2VnbWVudGVkIGZyYW1lcyBtdXN0IG5vdCBiZSBy
ZWNlaXZlZCB2aWEgJworICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKCkn
KQorICAgICAgICBpZiAoZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfVEVYVCBhbmQKKyAg
ICAgICAgICAgIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFSWSk6CisgICAgICAg
ICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0NvbnRy
b2wgZnJhbWVzIG11c3Qgbm90IGJlIHJlY2VpdmVkIHZpYSAnCisgICAgICAgICAgICAgICAgJ3Jl
Y2VpdmVfZmlsdGVyZWRfZnJhbWUoKScpCisKKyAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBz
ZWxmLl9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnM6CisgICAgICAgICAgICBmcmFtZV9m
aWx0ZXIuZmlsdGVyKGZyYW1lKQorICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5f
b3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnM6CisgICAgICAgICAgICBmcmFtZS5wYXls
b2FkID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCisgICAgICAgIHJldHVy
biBmcmFtZQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwg
YmluYXJ5PUZhbHNlKToKKyAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgorCisgICAgICAgIEFyZ3M6
CisgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0IGluIHVuaWNvZGUgb3IgYmluYXJ5IGluIHN0ciB0
byBzZW5kLgorICAgICAgICAgICAgYmluYXJ5OiBzZW5kIG1lc3NhZ2UgYXMgYmluYXJ5IGZyYW1l
LgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjog
d2hlbiBjYWxsZWQgb24gYSBzZXJ2ZXItdGVybWluYXRlZAorICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24gb3IgY2FsbGVkIHdpdGggaW5jb25zaXN0ZW50IG1lc3NhZ2UgdHlwZSBvcgorICAgICAg
ICAgICAgICAgIGJpbmFyeSBwYXJhbWV0ZXIuCisgICAgICAgICIiIgorCisgICAgICAgIGlmIHNl
bGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2Ug
YWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCisKKyAgICAgICAgaWYgYmlu
YXJ5IGFuZCBpc2luc3RhbmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgorICAgICAgICAgICAgcmFpc2Ug
QmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBiaW5h
cnkgZnJhbWUgbXVzdCBiZSBpbnN0YW5jZSBvZiBzdHInKQorCisgICAgICAgIGZvciBtZXNzYWdl
X2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKKyAgICAg
ICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBiaW5h
cnkpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBTZXQgdGhpcyB0byBhbnkgcG9zaXRp
dmUgaW50ZWdlciB0byBsaW1pdCBtYXhpbXVtIHNpemUgb2YgZGF0YSBpbgorICAgICAgICAgICAg
IyBwYXlsb2FkIGRhdGEgb2YgZWFjaCBmcmFtZS4KKyAgICAgICAgICAgIE1BWF9QQVlMT0FEX0RB
VEFfU0laRSA9IC0xCisKKyAgICAgICAgICAgIGlmIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA8PSAw
OgorICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlKHNlbGYuX3dyaXRlci5idWlsZChtZXNzYWdl
LCBlbmQsIGJpbmFyeSkpCisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIGJ5
dGVzX3dyaXR0ZW4gPSAwCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAg
IGVuZF9mb3JfdGhpc19mcmFtZSA9IGVuZAorICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRl
ID0gbGVuKG1lc3NhZ2UpIC0gYnl0ZXNfd3JpdHRlbgorICAgICAgICAgICAgICAgIGlmIChNQVhf
UEFZTE9BRF9EQVRBX1NJWkUgPiAwIGFuZAorICAgICAgICAgICAgICAgICAgICBieXRlc190b193
cml0ZSA+IE1BWF9QQVlMT0FEX0RBVEFfU0laRSk6CisgICAgICAgICAgICAgICAgICAgIGVuZF9m
b3JfdGhpc19mcmFtZSA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRl
ID0gTUFYX1BBWUxPQURfREFUQV9TSVpFCisKKyAgICAgICAgICAgICAgICBmcmFtZSA9IHNlbGYu
X3dyaXRlci5idWlsZCgKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVtieXRlc193cml0dGVu
OmJ5dGVzX3dyaXR0ZW4gKyBieXRlc190b193cml0ZV0sCisgICAgICAgICAgICAgICAgICAgIGVu
ZF9mb3JfdGhpc19mcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgYmluYXJ5KQorICAgICAgICAg
ICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQorCisgICAgICAgICAgICAgICAgYnl0ZXNfd3JpdHRl
biArPSBieXRlc190b193cml0ZQorCisgICAgICAgICAgICAgICAgIyBUaGlzIGlmIG11c3QgYmUg
cGxhY2VkIGhlcmUgKHRoZSBlbmQgb2Ygd2hpbGUgYmxvY2spIHNvIHRoYXQKKyAgICAgICAgICAg
ICAgICAjIGF0IGxlYXN0IG9uZSBmcmFtZSBpcyBzZW50LgorICAgICAgICAgICAgICAgIGlmIGxl
bihtZXNzYWdlKSA8PSBieXRlc193cml0dGVuOgorICAgICAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbihlKQorCisgICAgZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYs
IGZyYW1lKToKKyAgICAgICAgIiIiR2V0cyBhIG1lc3NhZ2UgZnJvbSBmcmFtZS4gSWYgdGhlIG1l
c3NhZ2UgaXMgY29tcG9zZWQgb2YgZnJhZ21lbnRlZAorICAgICAgICBmcmFtZXMgYW5kIHRoZSBm
cmFtZSBpcyBub3QgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSwgdGhpcyBtZXRob2QKKyAgICAg
ICAgcmV0dXJucyBOb25lLiBUaGUgd2hvbGUgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIHdoZW4g
dGhlIGxhc3QKKyAgICAgICAgZnJhZ21lbnRlZCBmcmFtZSBpcyBwYXNzZWQgdG8gdGhpcyBtZXRo
b2QuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9u
OiB3aGVuIHRoZSBmcmFtZSBkb2Vzbid0IG1hdGNoIGRlZnJhZ21lbnRhdGlvbgorICAgICAgICAg
ICAgICAgIGNvbnRleHQsIG9yIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCisgICAg
ICAgICIiIgorCisgICAgICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTjoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHM6Cisg
ICAgICAgICAgICAgICAgaWYgZnJhbWUuZmluOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBJ
bnZhbGlkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQg
YSB0ZXJtaW5hdGlvbiBmcmFtZSBidXQgZnJhZ21lbnRhdGlvbiAnCisgICAgICAgICAgICAgICAg
ICAgICAgICAnbm90IHN0YXJ0ZWQnKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdSZWNlaXZlZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUgYnV0ICcKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdmcmFnbWVudGF0aW9uIG5vdCBzdGFydGVkJykKKworICAgICAgICAgICAg
aWYgZnJhbWUuZmluOgorICAgICAgICAgICAgICAgICMgRW5kIG9mIGZyYWdtZW50YXRpb24gZnJh
bWUKKyAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1l
LnBheWxvYWQpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnLmpvaW4oc2VsZi5fcmVjZWl2
ZWRfZnJhZ21lbnRzKQorICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cyA9
IFtdCisgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgIyBJbnRlcm1lZGlhdGUgZnJhbWUKKyAgICAgICAgICAgICAgICBzZWxm
Ll9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlbGYuX3JlY2Vp
dmVkX2ZyYWdtZW50czoKKyAgICAgICAgICAgICAgICBpZiBmcmFtZS5maW46CisgICAgICAgICAg
ICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdSZWNlaXZlZCBhbiB1bmZyYWdtZW50ZWQgZnJhbWUgd2l0aG91dCAnCisgICAgICAg
ICAgICAgICAgICAgICAgICAndGVybWluYXRpbmcgZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicpCisg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZy
YW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgJ05ldyBmcmFnbWVudGF0aW9u
IHN0YXJ0ZWQgd2l0aG91dCB0ZXJtaW5hdGluZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAn
ZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicpCisKKyAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKKyAg
ICAgICAgICAgICAgICAjIFVuZnJhZ21lbnRlZCBmcmFtZQorCisgICAgICAgICAgICAgICAgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZyYW1lLnBheWxvYWQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBTdGFy
dCBvZiBmcmFnbWVudGF0aW9uIGZyYW1lCisKKyAgICAgICAgICAgICAgICBpZiBjb21tb24uaXNf
Y29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
SW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRyb2wg
ZnJhbWVzIG11c3Qgbm90IGJlIGZyYWdtZW50ZWQnKQorCisgICAgICAgICAgICAgICAgc2VsZi5f
b3JpZ2luYWxfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgICAgICAgICAgc2VsZi5fcmVj
ZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICBkZWYgX3Byb2Nlc3NfY2xvc2VfbWVzc2FnZShzZWxmLCBtZXNzYWdl
KToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIGNsb3NlIG1lc3NhZ2UuCisKKyAgICAgICAgQXJnczoK
KyAgICAgICAgICAgIG1lc3NhZ2U6IGNsb3NlIG1lc3NhZ2UuCisKKyAgICAgICAgUmFpc2VzOgor
ICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBtZXNzYWdlIGlzIGlu
dmFsaWQuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1p
bmF0ZWQgPSBUcnVlCisKKyAgICAgICAgIyBTdGF0dXMgY29kZSBpcyBvcHRpb25hbC4gV2UgY2Fu
IGhhdmUgc3RhdHVzIHJlYXNvbiBvbmx5IGlmIHdlCisgICAgICAgICMgaGF2ZSBzdGF0dXMgY29k
ZS4gU3RhdHVzIHJlYXNvbiBjYW4gYmUgZW1wdHkgc3RyaW5nLiBTbywKKyAgICAgICAgIyBhbGxv
d2VkIGNhc2VzIGFyZQorICAgICAgICAjIC0gbm8gYXBwbGljYXRpb24gZGF0YTogbm8gY29kZSBu
byByZWFzb24KKyAgICAgICAgIyAtIDIgb2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogaGFzIGNv
ZGUgYnV0IG5vIHJlYXNvbgorICAgICAgICAjIC0gMyBvciBtb3JlIG9jdGV0IG9mIGFwcGxpY2F0
aW9uIGRhdGE6IGJvdGggY29kZSBhbmQgcmVhc29uCisgICAgICAgIGlmIGxlbihtZXNzYWdlKSA9
PSAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBjbG9zZSBmcmFt
ZSAoZW1wdHkgYm9keSknKQorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2Rl
ID0gKAorICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEKQor
ICAgICAgICBlbGlmIGxlbihtZXNzYWdlKSA9PSAxOgorICAgICAgICAgICAgcmFpc2UgSW52YWxp
ZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdJZiBhIGNsb3NlIGZyYW1lIGhhcyBz
dGF0dXMgY29kZSwgdGhlIGxlbmd0aCBvZiAnCisgICAgICAgICAgICAgICAgJ3N0YXR1cyBjb2Rl
IG11c3QgYmUgMiBvY3RldCcpCisgICAgICAgIGVsaWYgbGVuKG1lc3NhZ2UpID49IDI6CisgICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKAorICAg
ICAgICAgICAgICAgICchSCcsIG1lc3NhZ2VbMDoyXSlbMF0KKyAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfY2xvc2VfcmVhc29uID0gbWVzc2FnZVsyOl0uZGVjb2RlKAorICAgICAgICAgICAg
ICAgICd1dGYtOCcsICdyZXBsYWNlJykKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
KyAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2UgZnJhbWUgKGNvZGU9JWQsIHJlYXNvbj0l
ciknLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSwKKyAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbikKKworICAgICAgICAjIEFz
IHdlJ3ZlIHJlY2VpdmVkIGEgY2xvc2UgZnJhbWUsIG5vIG1vcmUgZGF0YSBpcyBjb21pbmcgb3Zl
ciB0aGUKKyAgICAgICAgIyBzb2NrZXQuIFdlIGNhbiBub3cgc2FmZWx5IGNsb3NlIHRoZSBzb2Nr
ZXQgd2l0aG91dCB3b3JyeWluZyBhYm91dAorICAgICAgICAjIFJTVCBzZW5kaW5nLgorCisgICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2VydmVy
LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnUmVjZWl2ZWQgY2xpZW50LWlu
aXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisKKyAgICAgICAgY29kZSA9IGNvbW1vbi5TVEFU
VVNfTk9STUFMX0NMT1NVUkUKKyAgICAgICAgcmVhc29uID0gJycKKyAgICAgICAgaWYgaGFzYXR0
cihzZWxmLl9yZXF1ZXN0LCAnX2Rpc3BhdGNoZXInKToKKyAgICAgICAgICAgIGRpc3BhdGNoZXIg
PSBzZWxmLl9yZXF1ZXN0Ll9kaXNwYXRjaGVyCisgICAgICAgICAgICBjb2RlLCByZWFzb24gPSBk
aXNwYXRjaGVyLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UoCisgICAgICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdCkKKyAgICAgICAgICAgIGlmIGNvZGUgaXMgTm9uZSBhbmQgcmVhc29uIGlzIG5v
dCBOb25lIGFuZCBsZW4ocmVhc29uKSA+IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
Lndhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICdIYW5kbGVyIHNwZWNpZmllZCByZWFzb24g
ZGVzcGl0ZSBjb2RlIGJlaW5nIE5vbmUnKQorICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnCisg
ICAgICAgICAgICBpZiByZWFzb24gaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZWFzb24gPSAn
JworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNvZGUsIHJlYXNvbikKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0Fja25vd2xlZGdlZCBjbG9z
aW5nIGhhbmRzaGFrZSBpbml0aWF0ZWQgYnkgdGhlIHBlZXIgJworICAgICAgICAgICAgJyhjb2Rl
PSVyLCByZWFzb249JXIpJywgY29kZSwgcmVhc29uKQorCisgICAgZGVmIF9wcm9jZXNzX3Bpbmdf
bWVzc2FnZShzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIHBpbmcgbWVzc2Fn
ZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbWVzc2FnZTogcGluZyBtZXNzYWdlLgor
ICAgICAgICAiIiIKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kbGVyID0gc2VsZi5f
cmVxdWVzdC5vbl9waW5nX2hhbmRsZXIKKyAgICAgICAgICAgIGlmIGhhbmRsZXI6CisgICAgICAg
ICAgICAgICAgaGFuZGxlcihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQorICAgICAgICAgICAgICAg
IHJldHVybgorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3IsIGU6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIHNlbGYuX3NlbmRfcG9uZyhtZXNzYWdlKQorCisgICAgZGVmIF9wcm9jZXNz
X3BvbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIHBvbmcg
bWVzc2FnZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbWVzc2FnZTogcG9uZyBtZXNz
YWdlLgorICAgICAgICAiIiIKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgcGluZyB0
aW1lb3V0IGhhbmRsaW5nLgorCisgICAgICAgIGluZmxpZ2h0X3BpbmdzID0gZGVxdWUoKQorCisg
ICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXhw
ZWN0ZWRfYm9keSA9IHNlbGYuX3BpbmdfcXVldWUucG9wbGVmdCgpCisgICAgICAgICAgICAgICAg
aWYgZXhwZWN0ZWRfYm9keSA9PSBtZXNzYWdlOgorICAgICAgICAgICAgICAgICAgICAjIGluZmxp
Z2h0X3BpbmdzIGNvbnRhaW5zIHBpbmdzIGlnbm9yZWQgYnkgdGhlCisgICAgICAgICAgICAgICAg
ICAgICMgb3RoZXIgcGVlci4gSnVzdCBmb3JnZXQgdGhlbS4KKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAgJ1BpbmcgJXIgaXMg
YWNrZWQgKCVkIHBpbmdzIHdlcmUgaWdub3JlZCknLAorICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfYm9keSwgbGVuKGluZmxpZ2h0X3BpbmdzKSkKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpbmZsaWdo
dF9waW5ncy5hcHBlbmQoZXhwZWN0ZWRfYm9keSkKKyAgICAgICAgICAgIGV4Y2VwdCBJbmRleEVy
cm9yLCBlOgorICAgICAgICAgICAgICAgICMgVGhlIHJlY2VpdmVkIHBvbmcgd2FzIHVuc29saWNp
dGVkIHBvbmcuIEtlZXAgdGhlCisgICAgICAgICAgICAgICAgIyBwaW5nIHF1ZXVlIGFzIGlzLgor
ICAgICAgICAgICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBpbmZsaWdodF9waW5ncworICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYSB1bnNvbGljaXRlZCBwb25n
JykKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGhh
bmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlcgorICAgICAgICAgICAgaWYgaGFu
ZGxlcjoKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCisg
ICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciwgZToKKyAgICAgICAgICAgIHBhc3MKKworICAg
IGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6CisgICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2Nr
ZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KKyAgICAgICAgdW5p
Y29kZSBvciBhIGJpbmFyeSBpbiBzdHIuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg
IHBheWxvYWQgZGF0YSBvZiB0aGUgZnJhbWUKKyAgICAgICAgICAgIC0gYXMgdW5pY29kZSBpbnN0
YW5jZSBpZiByZWNlaXZlZCB0ZXh0IGZyYW1lCisgICAgICAgICAgICAtIGFzIHN0ciBpbnN0YW5j
ZSBpZiByZWNlaXZlZCBiaW5hcnkgZnJhbWUKKyAgICAgICAgICAgIG9yIE5vbmUgaWZmIHJlY2Vp
dmVkIGNsb3NpbmcgaGFuZHNoYWtlLgorICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBCYWRP
cGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQKKyAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5CisgICAgICAgICAgICAgICAgc3Ry
aW5nLgorICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBj
b250YWlucyBpbnZhbGlkCisgICAgICAgICAgICAgICAgZGF0YS4KKyAgICAgICAgICAgIFVuc3Vw
cG9ydGVkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIHJlY2VpdmVkIGZyYW1lIGhhcworICAgICAg
ICAgICAgICAgIGZsYWdzLCBvcGNvZGUgd2UgY2Fubm90IGhhbmRsZS4gWW91IGNhbiBpZ25vcmUg
dGhpcworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiBhbmQgY29udGludWUgcmVjZWl2aW5nIHRo
ZSBuZXh0IGZyYW1lLgorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNs
aWVudF90ZXJtaW5hdGVkOgorICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2Vp
dmluZyBhIGNsb3NpbmcgJworICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQorCisgICAgICAg
IHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxsIGJsb2NrIGlmIG5v
IGJ5dGVzIGFyZSBhdmFpbGFibGUuCisgICAgICAgICAgICAjIFRpbWVvdXQgaXMgY29udHJvbGxl
ZCBieSBUaW1lT3V0IGRpcmVjdGl2ZSBvZiBBcGFjaGUuCisKKyAgICAgICAgICAgIGZyYW1lID0g
c2VsZi5fcmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3QoKQorCisgICAgICAgICAgICAjIENo
ZWNrIHRoZSBjb25zdHJhaW50IG9uIHRoZSBwYXlsb2FkIHNpemUgZm9yIGNvbnRyb2wgZnJhbWVz
CisgICAgICAgICAgICAjIGJlZm9yZSBleHRlbnNpb24gcHJvY2Vzc2VzIHRoZSBmcmFtZS4KKyAg
ICAgICAgICAgICMgU2VlIGFsc28gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NSNz
ZWN0aW9uLTUuNQorICAgICAgICAgICAgaWYgKGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFt
ZS5vcGNvZGUpIGFuZAorICAgICAgICAgICAgICAgIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEyNSk6
CisgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICAgICAnUGF5bG9hZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFtZXMgbXVzdCBiZSAx
MjUgYnl0ZXMgb3IgJworICAgICAgICAgICAgICAgICAgICAnbGVzcycpCisKKyAgICAgICAgICAg
IGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJz
OgorICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCisKKyAgICAgICAg
ICAgIGlmIGZyYW1lLnJzdjEgb3IgZnJhbWUucnN2MiBvciBmcmFtZS5yc3YzOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
ICAgICdVbnN1cHBvcnRlZCBmbGFnIGlzIHNldCAocnN2ID0gJWQlZCVkKScgJQorICAgICAgICAg
ICAgICAgICAgICAoZnJhbWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MykpCisKKyAgICAg
ICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKGZyYW1lKQorICAg
ICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5n
X21lc3NhZ2VfZmlsdGVyczoKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0
ZXIuZmlsdGVyKG1lc3NhZ2UpCisKKyAgICAgICAgICAgIGlmIHNlbGYuX29yaWdpbmFsX29wY29k
ZSA9PSBjb21tb24uT1BDT0RFX1RFWFQ6CisgICAgICAgICAgICAgICAgIyBUaGUgV2ViU29ja2V0
IHByb3RvY29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKKyAgICAgICAgICAg
ICAgICAjIGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVO
VAorICAgICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgorICAgICAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UuZGVjb2RlKCd1dGYtOCcpCisgICAgICAg
ICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvciwgZToKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24oZSkKKyAgICAgICAgICAgIGVsaWYgc2VsZi5f
b3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZOgorICAgICAgICAgICAgICAg
IHJldHVybiBtZXNzYWdlCisgICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9
PSBjb21tb24uT1BDT0RFX0NMT1NFOgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY2xv
c2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAg
ICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX1BJTkc6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19waW5nX21lc3NhZ2UobWVzc2FnZSkKKyAgICAg
ICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfUE9ORzoK
KyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3BvbmdfbWVzc2FnZShtZXNzYWdlKQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1lRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnT3Bjb2RlICVkIGlzIG5vdCBzdXBwb3J0ZWQn
ICUgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlKQorCisgICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNo
YWtlKHNlbGYsIGNvZGUsIHJlYXNvbik6CisgICAgICAgIGJvZHkgPSBjcmVhdGVfY2xvc2luZ19o
YW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pCisgICAgICAgIGZyYW1lID0gY3JlYXRlX2Nsb3Nl
X2ZyYW1lKAorICAgICAgICAgICAgYm9keSwgbWFzaz1zZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwK
KyAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnM9c2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9m
aWx0ZXJzKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVl
CisKKyAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCisKKyAgICBkZWYgY2xvc2VfY29ubmVjdGlv
bihzZWxmLCBjb2RlPWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3Jlc3BvbnNlPVRydWUpOgorICAgICAgICAiIiJD
bG9zZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4gTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGJsb2Nr
cyB1bnRpbAorICAgICAgICBpdCByZWNlaXZlcyBhY2tub3dsZWRnZW1lbnQgdG8gdGhlIGNsb3Np
bmcgaGFuZHNoYWtlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBjb2RlOiBTdGF0dXMg
Y29kZSBmb3IgY2xvc2UgZnJhbWUuIElmIGNvZGUgaXMgTm9uZSwgYSBjbG9zZQorICAgICAgICAg
ICAgICAgIGZyYW1lIHdpdGggZW1wdHkgYm9keSB3aWxsIGJlIHNlbnQuCisgICAgICAgICAgICBy
ZWFzb246IHN0cmluZyByZXByZXNlbnRpbmcgY2xvc2UgcmVhc29uLgorICAgICAgICAgICAgd2Fp
dF9yZXNwb25zZTogVHJ1ZSB3aGVuIGNhbGxlciB3YW50IHRvIHdhaXQgdGhlIHJlc3BvbnNlLgor
ICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4g
cmVhc29uIGlzIHNwZWNpZmllZCB3aXRoIGNvZGUgTm9uZQorICAgICAgICAgICAgb3IgcmVhc29u
IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBib3RoIHN0ciBhbmQgdW5pY29kZS4KKyAgICAgICAgIiIi
CisKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGNsb3Nl
X2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgIyBXaGVuIHdlIHJlY2VpdmUgYSBjbG9zZSBmcmFtZSwgd2Ug
Y2FsbCBfcHJvY2Vzc19jbG9zZV9tZXNzYWdlKCkuCisgICAgICAgICMgX3Byb2Nlc3NfY2xvc2Vf
bWVzc2FnZSgpIGltbWVkaWF0ZWx5IGFja25vd2xlZGdlcyB0byB0aGUKKyAgICAgICAgIyBzZXJ2
ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlIGFuZCBzZXRzIHNlcnZlcl90ZXJtaW5hdGVk
IHRvCisgICAgICAgICMgVHJ1ZS4gU28sIGhlcmUgd2UgY2FuIGFzc3VtZSB0aGF0IHdlIGhhdmVu
J3QgcmVjZWl2ZWQgYW55IGNsb3NlCisgICAgICAgICMgZnJhbWUuIFdlJ3JlIGluaXRpYXRpbmcg
YSBjbG9zaW5nIGhhbmRzaGFrZS4KKworICAgICAgICBpZiBjb2RlIGlzIE5vbmU6CisgICAgICAg
ICAgICBpZiByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoKKyAgICAgICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAg
ICdjbG9zZSByZWFzb24gbXVzdCBub3QgYmUgc3BlY2lmaWVkIGlmIGNvZGUgaXMgTm9uZScpCisg
ICAgICAgICAgICByZWFzb24gPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UocmVhc29uLCBzdHIpIGFuZCBub3QgaXNpbnN0YW5jZShyZWFzb24sIHVuaWNv
ZGUpOgorICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAg
ICAgICAgICAgICAgICAgJ2Nsb3NlIHJlYXNvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHN0ciBv
ciB1bmljb2RlJykKKworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNvZGUs
IHJlYXNvbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0luaXRp
YXRlZCBjbG9zaW5nIGhhbmRzaGFrZSAoY29kZT0lciwgcmVhc29uPSVyKScsCisgICAgICAgICAg
ICBjb2RlLCByZWFzb24pCisKKyAgICAgICAgaWYgKGNvZGUgPT0gY29tbW9uLlNUQVRVU19HT0lO
R19BV0FZIG9yCisgICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xfRVJS
T1IpIG9yIG5vdCB3YWl0X3Jlc3BvbnNlOgorICAgICAgICAgICAgIyBJdCBkb2Vzbid0IG1ha2Ug
c2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSBpZiB0aGUgcmVhc29uIGlzCisgICAgICAg
ICAgICAjIHByb3RvY29sIGVycm9yIG9yIHRoYXQgdGhlIHNlcnZlciBpcyBnb2luZyBhd2F5LiBG
b3Igc29tZSBvZgorICAgICAgICAgICAgIyBvdGhlciByZWFzb25zLCBpdCBtaWdodCBub3QgbWFr
ZSBzZW5zZSB0byB3YWl0IGZvciBhIGNsb3NlIGZyYW1lLAorICAgICAgICAgICAgIyBidXQgaXQn
cyBub3QgY2xlYXIsIHlldC4KKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgVE9ETyh1
a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBiZWVu
IHNldCwKKyAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhwaXJl
cy4KKyAgICAgICAgIworICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcgY2xv
c2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZworICAgICAgICAjIG91dCBjbG9zaW5n
IGhhbmRzaGFrZS4KKyAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNzYWdlKCkKKyAg
ICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdEaWRuXCd0IHJlY2VpdmUg
dmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICMgVE9ETzogMy4gY2xv
c2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgorICAgICAgICAjIG5vdGU6IG1vZF9weXRob24g
Q29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhvZC4KKworICAgIGRl
ZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0nJyk6CisgICAgICAgIGZyYW1lID0gY3JlYXRlX3Bpbmdf
ZnJhbWUoCisgICAgICAgICAgICBib2R5LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNr
X3NlbmQsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMp
CisgICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQorCisgICAgICAgIHNlbGYuX3BpbmdfcXVldWUu
YXBwZW5kKGJvZHkpCisKKyAgICBkZWYgX3NlbmRfcG9uZyhzZWxmLCBib2R5KToKKyAgICAgICAg
ZnJhbWUgPSBjcmVhdGVfcG9uZ19mcmFtZSgKKyAgICAgICAgICAgIGJvZHksCisgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3V0
Z29pbmdfZnJhbWVfZmlsdGVycykKKyAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCisKKyAgICBk
ZWYgZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIHRo
ZSBvcGNvZGUgb2YgdGhlIFdlYlNvY2tldCBtZXNzYWdlIHdoaWNoIHRoZSBsYXN0IHJlY2VpdmVk
CisgICAgICAgIGZyYW1lIGJlbG9uZ3MgdG8uIFRoZSByZXR1cm4gdmFsdWUgaXMgdmFsaWQgaWZm
IGltbWVkaWF0ZWx5IGFmdGVyCisgICAgICAgIHJlY2VpdmVfbWVzc2FnZSBjYWxsLgorICAgICAg
ICAiIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fb3JpZ2luYWxfb3Bjb2RlCisKKworIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQxNzNkYjkzM2Y0
ZmU2ZmQ2M2JjMjhkZWJlNjZmZjFmMTc1MTY4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L2NvbW1vbi5weQpAQCAtMCwwICsxLDMwNiBAQAorIyBDb3B5cmlnaHQgMjAx
MiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKworIiIiVGhpcyBmaWxlIG11c3Qgbm90IGRlcGVuZCBvbiBhbnkgbW9kdWxlIHNwZWNpZmlj
IHRvIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wuCisiIiIKKworCitmcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAorCisKKyMgQWRkaXRpb25hbCBsb2cgbGV2ZWwgZGVm
aW5pdGlvbnMuCitMT0dMRVZFTF9GSU5FID0gOQorCisjIENvbnN0YW50cyBpbmRpY2F0aW5nIFdl
YlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uLgorVkVSU0lPTl9ISVhJRTc1ID0gLTEKK1ZFUlNJT05f
SFlCSTAwID0gMAorVkVSU0lPTl9IWUJJMDEgPSAxCitWRVJTSU9OX0hZQkkwMiA9IDIKK1ZFUlNJ
T05fSFlCSTAzID0gMgorVkVSU0lPTl9IWUJJMDQgPSA0CitWRVJTSU9OX0hZQkkwNSA9IDUKK1ZF
UlNJT05fSFlCSTA2ID0gNgorVkVSU0lPTl9IWUJJMDcgPSA3CitWRVJTSU9OX0hZQkkwOCA9IDgK
K1ZFUlNJT05fSFlCSTA5ID0gOAorVkVSU0lPTl9IWUJJMTAgPSA4CitWRVJTSU9OX0hZQkkxMSA9
IDgKK1ZFUlNJT05fSFlCSTEyID0gOAorVkVSU0lPTl9IWUJJMTMgPSAxMworVkVSU0lPTl9IWUJJ
MTQgPSAxMworVkVSU0lPTl9IWUJJMTUgPSAxMworVkVSU0lPTl9IWUJJMTYgPSAxMworVkVSU0lP
Tl9IWUJJMTcgPSAxMworCisjIENvbnN0YW50cyBpbmRpY2F0aW5nIFdlYlNvY2tldCBwcm90b2Nv
bCBsYXRlc3QgdmVyc2lvbi4KK1ZFUlNJT05fSFlCSV9MQVRFU1QgPSBWRVJTSU9OX0hZQkkxMwor
CisjIFBvcnQgbnVtYmVycworREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAorREVGQVVMVF9X
RUJfU09DS0VUX1NFQ1VSRV9QT1JUID0gNDQzCisKKyMgU2NoZW1lcworV0VCX1NPQ0tFVF9TQ0hF
TUUgPSAnd3MnCitXRUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUgPSAnd3NzJworCisjIEZyYW1lIG9w
Y29kZXMgZGVmaW5lZCBpbiB0aGUgc3BlYy4KK09QQ09ERV9DT05USU5VQVRJT04gPSAweDAKK09Q
Q09ERV9URVhUID0gMHgxCitPUENPREVfQklOQVJZID0gMHgyCitPUENPREVfQ0xPU0UgPSAweDgK
K09QQ09ERV9QSU5HID0gMHg5CitPUENPREVfUE9ORyA9IDB4YQorCisjIFVVSURzIHVzZWQgYnkg
SHlCaSAwNCBhbmQgbGF0ZXIgb3BlbmluZyBoYW5kc2hha2UgYW5kIGZyYW1lIG1hc2tpbmcuCitX
RUJTT0NLRVRfQUNDRVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVBQjBEQzg1
QjExJworCisjIE9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlciBuYW1lcyBhbmQgZXhwZWN0ZWQgdmFs
dWVzLgorVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZScKK1dFQlNPQ0tFVF9VUEdSQURFX1RZUEUg
PSAnd2Vic29ja2V0JworV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1ID0gJ1dlYlNvY2tl
dCcKK0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb24nCitVUEdSQURFX0NPTk5FQ1RJT05f
VFlQRSA9ICdVcGdyYWRlJworSE9TVF9IRUFERVIgPSAnSG9zdCcKK09SSUdJTl9IRUFERVIgPSAn
T3JpZ2luJworU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtT3Jp
Z2luJworU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5JworU0VD
X1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0JworU0VDX1dF
QlNPQ0tFVF9WRVJTSU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVZlcnNpb24nCitTRUNfV0VC
U09DS0VUX1BST1RPQ09MX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJworU0VDX1dF
QlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnCitT
RUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LURyYWZ0JworU0VDX1dF
QlNPQ0tFVF9LRVkxX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTEnCitTRUNfV0VCU09DS0VU
X0tFWTJfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5MicKK1NFQ19XRUJTT0NLRVRfTE9DQVRJ
T05fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb24nCisKKyMgRXh0ZW5zaW9ucworREVG
TEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKK1BFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04gPSAncGVybWVzc2FnZS1kZWZsYXRlJworWF9XRUJLSVRfREVGTEFURV9GUkFN
RV9FWFRFTlNJT04gPSAneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScKK01VWF9FWFRFTlNJT04gPSAn
bXV4X0RPX05PVF9VU0UnCisKKyMgU3RhdHVzIGNvZGVzCisjIENvZGUgU1RBVFVTX05PX1NUQVRV
U19SRUNFSVZFRCwgU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUsIGFuZAorIyBTVEFUVVNfVExTX0hB
TkRTSEFLRSBhcmUgcHNldWRvIGNvZGVzIHRvIGluZGljYXRlIHNwZWNpZmljIGVycm9yIGNhc2Vz
LgorIyBDb3VsZCBub3QgYmUgdXNlZCBmb3IgY29kZXMgaW4gYWN0dWFsIGNsb3NpbmcgZnJhbWVz
LgorIyBBcHBsaWNhdGlvbiBsZXZlbCBlcnJvcnMgbXVzdCB1c2UgY29kZXMgaW4gdGhlIHJhbmdl
CisjIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9QUklWQVRFX01B
WC4gVGhlIGNvZGVzIGluIHRoZQorIyByYW5nZSBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0Ug
dG8gU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9NQVggYXJlIG1hbmFnZWQKKyMgYnkgSUFOQS4gVXN1
YWxseSBhcHBsaWNhdGlvbiBtdXN0IGRlZmluZSB1c2VyIHByb3RvY29sIGxldmVsIGVycm9ycyBp
biB0aGUKKyMgcmFuZ2UgU1RBVFVTX1VTRVJfUFJJVkFURV9CQVNFIHRvIFNUQVRVU19VU0VSX1BS
SVZBVEVfTUFYLgorU1RBVFVTX05PUk1BTF9DTE9TVVJFID0gMTAwMAorU1RBVFVTX0dPSU5HX0FX
QVkgPSAxMDAxCitTVEFUVVNfUFJPVE9DT0xfRVJST1IgPSAxMDAyCitTVEFUVVNfVU5TVVBQT1JU
RURfREFUQSA9IDEwMDMKK1NUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAxMDA1CitTVEFUVVNf
QUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKK1NUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFU
QSA9IDEwMDcKK1NUQVRVU19QT0xJQ1lfVklPTEFUSU9OID0gMTAwOAorU1RBVFVTX01FU1NBR0Vf
VE9PX0JJRyA9IDEwMDkKK1NUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OID0gMTAxMAorU1RBVFVT
X0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQorU1RBVFVTX1RMU19IQU5EU0hBS0UgPSAx
MDE1CitTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgPSAzMDAwCitTVEFUVVNfVVNFUl9SRUdJ
U1RFUkVEX01BWCA9IDM5OTkKK1NUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSA9IDQwMDAKK1NUQVRV
U19VU0VSX1BSSVZBVEVfTUFYID0gNDk5OQorIyBGb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXJlIGFs
aWFzZXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LiBBcHBsaWNhdGlvbnMgbXVzdAorIyBub3QgdXNl
IHRoZXNlIG9ic29sZXRlZCBkZWZpbml0aW9ucyBhbnltb3JlLgorU1RBVFVTX05PUk1BTCA9IFNU
QVRVU19OT1JNQUxfQ0xPU1VSRQorU1RBVFVTX1VOU1VQUE9SVEVEID0gU1RBVFVTX1VOU1VQUE9S
VEVEX0RBVEEKK1NUQVRVU19DT0RFX05PVF9BVkFJTEFCTEUgPSBTVEFUVVNfTk9fU1RBVFVTX1JF
Q0VJVkVECitTVEFUVVNfQUJOT1JNQUxfQ0xPU0UgPSBTVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRQor
U1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRCA9IFNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxP
QURfREFUQQorU1RBVFVTX01BTkRBVE9SWV9FWFQgPSBTVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lP
TgorCisjIEhUVFAgc3RhdHVzIGNvZGVzCitIVFRQX1NUQVRVU19CQURfUkVRVUVTVCA9IDQwMAor
SFRUUF9TVEFUVVNfRk9SQklEREVOID0gNDAzCitIVFRQX1NUQVRVU19OT1RfRk9VTkQgPSA0MDQK
KworCitkZWYgaXNfY29udHJvbF9vcGNvZGUob3Bjb2RlKToKKyAgICByZXR1cm4gKG9wY29kZSA+
PiAzKSA9PSAxCisKKworY2xhc3MgRXh0ZW5zaW9uUGFyYW1ldGVyKG9iamVjdCk6CisKKyAgICAi
IiJUaGlzIGlzIGV4Y2hhbmdlZCBvbiBleHRlbnNpb24gbmVnb3RpYXRpb24gaW4gb3BlbmluZyBo
YW5kc2hha2UuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNl
bGYuX25hbWUgPSBuYW1lCisgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENoYW5nZSB0aGUgZGF0
YSBzdHJ1Y3R1cmUgdG8gbW9yZSBlZmZpY2llbnQgb25lIHN1Y2gKKyAgICAgICAgIyBhcyBkaWN0
IHdoZW4gdGhlIHNwZWMgY2hhbmdlcyB0byBzYXkgbGlrZQorICAgICAgICAjIC0gUGFyYW1ldGVy
IG5hbWVzIG11c3QgYmUgdW5pcXVlCisgICAgICAgICMgLSBUaGUgb3JkZXIgb2YgcGFyYW1ldGVy
cyBpcyBub3Qgc2lnbmlmaWNhbnQKKyAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IFtdCisKKyAg
ICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBleHRlbnNpb24gbmFtZS4i
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKworICAgIGRlZiBhZGRfcGFyYW1ldGVyKHNl
bGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiQWRkIGEgcGFyYW1ldGVyLiIiIgorICAgICAg
ICBzZWxmLl9wYXJhbWV0ZXJzLmFwcGVuZCgobmFtZSwgdmFsdWUpKQorCisgICAgZGVmIGdldF9w
YXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHBhcmFtZXRlcnMuIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLl9wYXJhbWV0ZXJzCisKKyAgICBkZWYgZ2V0X3BhcmFtZXRlcl9u
YW1lcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVy
cy4iIiIKKyAgICAgICAgcmV0dXJuIFtuYW1lIGZvciBuYW1lLCB1bnVzZWRfdmFsdWUgaW4gc2Vs
Zi5fcGFyYW1ldGVyc10KKworICAgIGRlZiBoYXNfcGFyYW1ldGVyKHNlbGYsIG5hbWUpOgorICAg
ICAgICAiIiJUZXN0IGlmIGEgcGFyYW1ldGVyIGV4aXN0cy4iIiIKKyAgICAgICAgZm9yIHBhcmFt
X25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6CisgICAgICAgICAgICBpZiBw
YXJhbV9uYW1lID09IG5hbWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLCBuYW1lKToK
KyAgICAgICAgIiIiR2V0IHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIHBhcmFtZXRlci4iIiIKKyAg
ICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Cisg
ICAgICAgICAgICBpZiBwYXJhbV9uYW1lID09IG5hbWU6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHBhcmFtX3ZhbHVlCisKKworY2xhc3MgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbihFeGNlcHRp
b24pOgorCisgICAgIiIiRXhjZXB0aW9uIHRvIGhhbmRsZSBlcnJvcnMgaW4gZXh0ZW5zaW9uIHBh
cnNpbmcuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHN1cGVy
KEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCisKKworZGVm
IF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGRlZmluaXRpb24pOgorICAgIHBhcmFtX25h
bWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCisKKyAgICBpZiBwYXJh
bV9uYW1lIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24o
J05vIHZhbGlkIHBhcmFtZXRlciBuYW1lIGZvdW5kJykKKworICAgIGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV9sd3NlcyhzdGF0ZSkKKworICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1
bWVfc3RyaW5nKHN0YXRlLCAnPScpOgorICAgICAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIo
cGFyYW1fbmFtZSwgTm9uZSkKKyAgICAgICAgcmV0dXJuCisKKyAgICBodHRwX2hlYWRlcl91dGls
LmNvbnN1bWVfbHdzZXMoc3RhdGUpCisKKyAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgY29kZSB0
byB2YWxpZGF0ZSB0aGF0IHBhcnNlZCBwYXJhbV92YWx1ZSBpcyB0b2tlbgorICAgIHBhcmFtX3Zh
bHVlID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3Rh
dGUpCisgICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgRXh0ZW5zaW9u
UGFyc2luZ0V4Y2VwdGlvbigKKyAgICAgICAgICAgICdObyB2YWxpZCBwYXJhbWV0ZXIgdmFsdWUg
Zm91bmQgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiAnCisgICAgICAgICAgICAncGFyYW1ldGVy
ICVyJyAlIHBhcmFtX25hbWUpCisKKyAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIocGFyYW1f
bmFtZSwgcGFyYW1fdmFsdWUpCisKKworZGVmIF9wYXJzZV9leHRlbnNpb24oc3RhdGUpOgorICAg
IGV4dGVuc2lvbl90b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0ZSkK
KyAgICBpZiBleHRlbnNpb25fdG9rZW4gaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihleHRlbnNpb25fdG9rZW4pCisKKyAg
ICB3aGlsZSBUcnVlOgorICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3Rh
dGUpCisKKyAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3Rh
dGUsICc7Jyk6CisgICAgICAgICAgICBicmVhaworCisgICAgICAgIGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV9sd3NlcyhzdGF0ZSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBfcGFyc2Vf
ZXh0ZW5zaW9uX3BhcmFtKHN0YXRlLCBleHRlbnNpb24pCisgICAgICAgIGV4Y2VwdCBFeHRlbnNp
b25QYXJzaW5nRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2lu
Z0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIHBhcmFtZXRlciBm
b3IgJXIgKCVyKScgJQorICAgICAgICAgICAgICAgIChleHRlbnNpb25fdG9rZW4sIGUpKQorCisg
ICAgcmV0dXJuIGV4dGVuc2lvbgorCisKK2RlZiBwYXJzZV9leHRlbnNpb25zKGRhdGEpOgorICAg
ICIiIlBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUuCisKKyAgICBS
ZXR1cm5zIGEgbGlzdCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cy4KKyAgICBMZWFkaW5n
IExXU2VzIG11c3QgYmUgdHJpbW1lZC4KKyAgICAiIiIKKyAgICBzdGF0ZSA9IGh0dHBfaGVhZGVy
X3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCisKKyAgICBleHRlbnNpb25fbGlzdCA9IFtdCisgICAg
d2hpbGUgVHJ1ZToKKyAgICAgICAgZXh0ZW5zaW9uID0gX3BhcnNlX2V4dGVuc2lvbihzdGF0ZSkK
KyAgICAgICAgaWYgZXh0ZW5zaW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZXh0ZW5zaW9u
X2xpc3QuYXBwZW5kKGV4dGVuc2lvbikKKworICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1
bWVfbHdzZXMoc3RhdGUpCisKKyAgICAgICAgaWYgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRl
KSBpcyBOb25lOgorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBub3QgaHR0cF9oZWFk
ZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJywnKToKKyAgICAgICAgICAgIHJhaXNlIEV4
dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJz
ZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAnCisgICAgICAgICAgICAgICAgJ0V4
cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlCisgICAgICAgICAgICAgICAgaHR0cF9oZWFk
ZXJfdXRpbC5wZWVrKHN0YXRlKSkKKworICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVf
bHdzZXMoc3RhdGUpCisKKyAgICBpZiBsZW4oZXh0ZW5zaW9uX2xpc3QpID09IDA6CisgICAgICAg
IHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCisgICAgICAgICAgICAnTm8gdmFsaWQg
ZXh0ZW5zaW9uIGVudHJ5IGZvdW5kJykKKworICAgIHJldHVybiBleHRlbnNpb25fbGlzdAorCisK
K2RlZiBmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbik6CisgICAgIiIiRm9ybWF0IGFuIEV4dGVu
c2lvblBhcmFtZXRlciBvYmplY3QuIiIiCisgICAgZm9ybWF0dGVkX3BhcmFtcyA9IFtleHRlbnNp
b24ubmFtZSgpXQorICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNpb24u
Z2V0X3BhcmFtZXRlcnMoKToKKyAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKKyAgICAg
ICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBwZW5kKHBhcmFtX25hbWUpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBxdW90ZWRfdmFsdWUgPSBodHRwX2hlYWRlcl91dGlsLnF1b3RlX2lmX25l
Y2Vzc2FyeShwYXJhbV92YWx1ZSkKKyAgICAgICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBwZW5k
KCclcz0lcycgJSAocGFyYW1fbmFtZSwgcXVvdGVkX3ZhbHVlKSkKKyAgICByZXR1cm4gJzsgJy5q
b2luKGZvcm1hdHRlZF9wYXJhbXMpCisKKworZGVmIGZvcm1hdF9leHRlbnNpb25zKGV4dGVuc2lv
bl9saXN0KToKKyAgICAiIiJGb3JtYXQgYSBsaXN0IG9mIEV4dGVuc2lvblBhcmFtZXRlciBvYmpl
Y3RzLiIiIgorICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdCA9IFtdCisgICAgZm9yIGV4dGVu
c2lvbiBpbiBleHRlbnNpb25fbGlzdDoKKyAgICAgICAgZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0
LmFwcGVuZChmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbikpCisgICAgcmV0dXJuICcsICcuam9p
bihmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2Rpc3BhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YzkxZTBjOTBlNzQyOWQwZjc2MGMwZTlj
N2I5ODEyMDQwOTJhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9k
aXNwYXRjaC5weQpAQCAtMCwwICsxLDM5MyBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiRGlz
cGF0Y2ggV2ViU29ja2V0IHJlcXVlc3QuCisiIiIKKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0
IG9zCitpbXBvcnQgcmUKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IG1zZ3V0aWwKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKK2Zyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1
dGlsCisKKworX1NPVVJDRV9QQVRIX1BBVFRFUk4gPSByZS5jb21waWxlKHInKD9pKV93c2hcLnB5
JCcpCitfU09VUkNFX1NVRkZJWCA9ICdfd3NoLnB5JworX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5E
TEVSX05BTUUgPSAnd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UnCitfVFJBTlNGRVJfREFU
QV9IQU5ETEVSX05BTUUgPSAnd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhJworX1BBU1NJVkVfQ0xP
U0lOR19IQU5EU0hBS0VfSEFORExFUl9OQU1FID0gKAorICAgICd3ZWJfc29ja2V0X3Bhc3NpdmVf
Y2xvc2luZ19oYW5kc2hha2UnKQorCisKK2NsYXNzIERpc3BhdGNoRXhjZXB0aW9uKEV4Y2VwdGlv
bik6CisgICAgIiIiRXhjZXB0aW9uIGluIGRpc3BhdGNoaW5nIFdlYlNvY2tldCByZXF1ZXN0LiIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFU
VVNfTk9UX0ZPVU5EKToKKyAgICAgICAgc3VwZXIoRGlzcGF0Y2hFeGNlcHRpb24sIHNlbGYpLl9f
aW5pdF9fKG5hbWUpCisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisKKworZGVmIF9kZWZh
dWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KToKKyAgICAiIiJE
ZWZhdWx0IHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSBoYW5kbGVyLiIiIgor
CisgICAgcmV0dXJuIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnCisKKworZGVmIF9u
b3JtYWxpemVfcGF0aChwYXRoKToKKyAgICAiIiJOb3JtYWxpemUgcGF0aC4KKworICAgIEFyZ3M6
CisgICAgICAgIHBhdGg6IHRoZSBwYXRoIHRvIG5vcm1hbGl6ZS4KKworICAgIFBhdGggaXMgY29u
dmVydGVkIHRvIHRoZSBhYnNvbHV0ZSBwYXRoLgorICAgIFRoZSBpbnB1dCBwYXRoIGNhbiB1c2Ug
ZWl0aGVyICdcXCcgb3IgJy8nIGFzIHRoZSBzZXBhcmF0b3IuCisgICAgVGhlIG5vcm1hbGl6ZWQg
cGF0aCBhbHdheXMgdXNlcyAnLycgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0uCisgICAgIiIi
CisKKyAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsIG9zLnBhdGguc2VwKQorICAgIHBhdGgg
PSBvcy5wYXRoLnJlYWxwYXRoKHBhdGgpCisgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAn
LycpCisgICAgcmV0dXJuIHBhdGgKKworCitkZWYgX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2Nv
bnZlcnRlcihiYXNlX2Rpcik6CisgICAgIiIiUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29udmVy
dHMgdGhlIHBhdGggb2YgYSBXZWJTb2NrZXQgaGFuZGxlciBzb3VyY2UKKyAgICBmaWxlIHRvIGEg
cmVzb3VyY2Ugc3RyaW5nIGJ5IHJlbW92aW5nIHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVjdG9y
eSBmcm9tCisgICAgaXRzIGhlYWQsIHJlbW92aW5nIF9TT1VSQ0VfU1VGRklYIGZyb20gaXRzIHRh
aWwsIGFuZCByZXBsYWNpbmcgcGF0aAorICAgIHNlcGFyYXRvcnMgaW4gaXQgd2l0aCAnLycuCisK
KyAgICBBcmdzOgorICAgICAgICBiYXNlX2RpcjogdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0
b3J5LgorICAgICIiIgorCisgICAgYmFzZV9kaXIgPSBfbm9ybWFsaXplX3BhdGgoYmFzZV9kaXIp
CisKKyAgICBiYXNlX2xlbiA9IGxlbihiYXNlX2RpcikKKyAgICBzdWZmaXhfbGVuID0gbGVuKF9T
T1VSQ0VfU1VGRklYKQorCisgICAgZGVmIGNvbnZlcnRlcihwYXRoKToKKyAgICAgICAgaWYgbm90
IHBhdGguZW5kc3dpdGgoX1NPVVJDRV9TVUZGSVgpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICAgICAgIyBfbm9ybWFsaXplX3BhdGggbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIHJlc29s
dmluZyBzeW1saW5rIGJyZWFrcworICAgICAgICAjIGZvbGxvd2luZyBwYXRoIGNoZWNrLgorICAg
ICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKKyAgICAgICAgaWYgbm90IHBhdGgu
c3RhcnRzd2l0aChiYXNlX2Rpcik6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBy
ZXR1cm4gcGF0aFtiYXNlX2xlbjotc3VmZml4X2xlbl0KKworICAgIHJldHVybiBjb252ZXJ0ZXIK
KworCitkZWYgX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoZGlyZWN0b3J5KToKKyAgICAi
IiJSZXR1cm5zIGEgZ2VuZXJhdG9yIHRoYXQgZW51bWVyYXRlcyBXZWJTb2NrZXQgSGFuZGxlciBz
b3VyY2UgZmlsZSBuYW1lcworICAgIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuCisgICAgIiIiCisK
KyAgICBmb3Igcm9vdCwgdW51c2VkX2RpcnMsIGZpbGVzIGluIG9zLndhbGsoZGlyZWN0b3J5KToK
KyAgICAgICAgZm9yIGJhc2UgaW4gZmlsZXM6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5q
b2luKHJvb3QsIGJhc2UpCisgICAgICAgICAgICBpZiBfU09VUkNFX1BBVEhfUEFUVEVSTi5zZWFy
Y2gocGF0aCk6CisgICAgICAgICAgICAgICAgeWllbGQgcGF0aAorCisKK2NsYXNzIF9IYW5kbGVy
U3VpdGUob2JqZWN0KToKKyAgICAiIiJBIGhhbmRsZXIgc3VpdGUgaG9sZGVyIGNsYXNzLiIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRvX2V4dHJhX2hhbmRzaGFrZSwgdHJhbnNmZXJfZGF0
YSwKKyAgICAgICAgICAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSk6CisgICAgICAg
IHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlID0gZG9fZXh0cmFfaGFuZHNoYWtlCisgICAgICAgIHNl
bGYudHJhbnNmZXJfZGF0YSA9IHRyYW5zZmVyX2RhdGEKKyAgICAgICAgc2VsZi5wYXNzaXZlX2Ns
b3NpbmdfaGFuZHNoYWtlID0gcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZQorCisKK2RlZiBfc291
cmNlX2hhbmRsZXJfZmlsZShoYW5kbGVyX2RlZmluaXRpb24pOgorICAgICIiIlNvdXJjZSBhIGhh
bmRsZXIgZGVmaW5pdGlvbiBzdHJpbmcuCisKKyAgICBBcmdzOgorICAgICAgICBoYW5kbGVyX2Rl
ZmluaXRpb246IGEgc3RyaW5nIGNvbnRhaW5pbmcgUHl0aG9uIHN0YXRlbWVudHMgdGhhdCBkZWZp
bmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyIGZ1bmN0aW9ucy4KKyAgICAi
IiIKKworICAgIGdsb2JhbF9kaWMgPSB7fQorICAgIHRyeToKKyAgICAgICAgZXhlYyBoYW5kbGVy
X2RlZmluaXRpb24gaW4gZ2xvYmFsX2RpYworICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
IHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdFcnJvciBpbiBzb3VyY2luZyBoYW5kbGVyOicgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQor
ICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IE5vbmUKKyAgICB0cnk6Cisg
ICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IF9leHRyYWN0X2hhbmRs
ZXIoCisgICAgICAgICAgICBnbG9iYWxfZGljLCBfUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFLRV9I
QU5ETEVSX05BTUUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzc2l2ZV9jbG9z
aW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gKAorICAgICAgICAgICAgX2RlZmF1bHRfcGFzc2l2ZV9j
bG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKQorICAgIHJldHVybiBfSGFuZGxlclN1aXRlKAorICAg
ICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFO
RExFUl9OQU1FKSwKKyAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfVFJBTlNG
RVJfREFUQV9IQU5ETEVSX05BTUUpLAorICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
X2hhbmRsZXIpCisKKworZGVmIF9leHRyYWN0X2hhbmRsZXIoZGljLCBuYW1lKToKKyAgICAiIiJF
eHRyYWN0cyBhIGNhbGxhYmxlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGZyb20gdGhlIGdpdmVu
IGRpY3Rpb25hcnkKKyAgICBkaWMuCisgICAgIiIiCisKKyAgICBpZiBuYW1lIG5vdCBpbiBkaWM6
CisgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBpcyBub3QgZGVmaW5lZC4nICUg
bmFtZSkKKyAgICBoYW5kbGVyID0gZGljW25hbWVdCisgICAgaWYgbm90IGNhbGxhYmxlKGhhbmRs
ZXIpOgorICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGNhbGxhYmxl
LicgJSBuYW1lKQorICAgIHJldHVybiBoYW5kbGVyCisKKworY2xhc3MgRGlzcGF0Y2hlcihvYmpl
Y3QpOgorICAgICIiIkRpc3BhdGNoZXMgV2ViU29ja2V0IHJlcXVlc3RzLgorCisgICAgVGhpcyBj
bGFzcyBtYWludGFpbnMgYSBtYXAgZnJvbSByZXNvdXJjZSBuYW1lIHRvIGhhbmRsZXJzLgorICAg
ICIiIgorCisgICAgZGVmIF9faW5pdF9fKAorICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nhbl9k
aXI9Tm9uZSwKKyAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcj1UcnVlKToK
KyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAg
ICAgICAgICByb290X2RpcjogVGhlIGRpcmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRpb24g
ZmlsZXMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgcGxhY2VkLgorICAgICAgICAgICAgc2Nh
bl9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0aW9uIGZpbGVzIGFyZQor
ICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaGVkLiBzY2FuX2RpciBtdXN0IGJlIGEgZGlyZWN0
b3J5IHVuZGVyIHJvb3RfZGlyLAorICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyByb290
X2RpciBpdHNlbGYuICBJZiBzY2FuX2RpciBpcyBOb25lLAorICAgICAgICAgICAgICAgICAgICAg
IHJvb3RfZGlyIGlzIHVzZWQgYXMgc2Nhbl9kaXIuIHNjYW5fZGlyIGNhbiBiZSB1c2VmdWwKKyAg
ICAgICAgICAgICAgICAgICAgICBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gcm9vdF9kaXIgY29u
dGFpbnMgbWFueQorICAgICAgICAgICAgICAgICAgICAgIHN1YmRpcmVjdG9yaWVzLgorICAgICAg
ICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcjogU2NhbnMgaGFuZGxlciBmaWxl
cyBldmVuIGlmIHRoZWlyCisgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsIHBhdGggaXMg
bm90IHVuZGVyIHJvb3RfZGlyLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9sb2dnZXIg
PSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9oYW5kbGVyX3N1
aXRlX21hcCA9IHt9CisgICAgICAgIHNlbGYuX3NvdXJjZV93YXJuaW5ncyA9IFtdCisgICAgICAg
IGlmIHNjYW5fZGlyIGlzIE5vbmU6CisgICAgICAgICAgICBzY2FuX2RpciA9IHJvb3RfZGlyCisg
ICAgICAgIGlmIG5vdCBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGlyKS5zdGFydHN3aXRoKAorICAg
ICAgICAgICAgICAgIG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIpKToKKyAgICAgICAgICAgIHJh
aXNlIERpc3BhdGNoRXhjZXB0aW9uKCdzY2FuX2RpcjolcyBtdXN0IGJlIGEgZGlyZWN0b3J5IHVu
ZGVyICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290X2Rpcjolcy4n
ICUgKHNjYW5fZGlyLCByb290X2RpcikpCisgICAgICAgIHNlbGYuX3NvdXJjZV9oYW5kbGVyX2Zp
bGVzX2luX2RpcigKKyAgICAgICAgICAgIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxl
cnNfb3V0c2lkZV9yb290X2RpcikKKworICAgIGRlZiBhZGRfcmVzb3VyY2VfcGF0aF9hbGlhcyhz
ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9wYXRo
LCBleGlzdGluZ19yZXNvdXJjZV9wYXRoKToKKyAgICAgICAgIiIiQWRkIHJlc291cmNlIHBhdGgg
YWxpYXMuCisKKyAgICAgICAgT25jZSBhZGRlZCwgcmVxdWVzdCB0byBhbGlhc19yZXNvdXJjZV9w
YXRoIHdvdWxkIGJlIGhhbmRsZWQgYnkKKyAgICAgICAgaGFuZGxlciByZWdpc3RlcmVkIGZvciBl
eGlzdGluZ19yZXNvdXJjZV9wYXRoLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBhbGlh
c19yZXNvdXJjZV9wYXRoOiBhbGlhcyByZXNvdXJjZSBwYXRoCisgICAgICAgICAgICBleGlzdGlu
Z19yZXNvdXJjZV9wYXRoOiBleGlzdGluZyByZXNvdXJjZSBwYXRoCisgICAgICAgICIiIgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9zdWl0
ZV9tYXBbZXhpc3RpbmdfcmVzb3VyY2VfcGF0aF0KKyAgICAgICAgICAgIHNlbGYuX2hhbmRsZXJf
c3VpdGVfbWFwW2FsaWFzX3Jlc291cmNlX3BhdGhdID0gaGFuZGxlcl9zdWl0ZQorICAgICAgICBl
eGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8g
aGFuZGxlciBmb3I6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGlzdGluZ19yZXNvdXJjZV9wYXRoKQorCisgICAgZGVmIHNvdXJjZV93YXJuaW5ncyhzZWxmKToK
KyAgICAgICAgIiIiUmV0dXJuIHdhcm5pbmdzIGluIHNvdXJjaW5nIGhhbmRsZXJzLiIiIgorCisg
ICAgICAgIHJldHVybiBzZWxmLl9zb3VyY2Vfd2FybmluZ3MKKworICAgIGRlZiBkb19leHRyYV9o
YW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICIiIkRvIGV4dHJhIGNoZWNraW5nIGlu
IFdlYlNvY2tldCBoYW5kc2hha2UuCisKKyAgICAgICAgU2VsZWN0IGEgaGFuZGxlciBiYXNlZCBv
biByZXF1ZXN0LnVyaSBhbmQgY2FsbCBpdHMKKyAgICAgICAgd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UgZnVuY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6
IG1vZF9weXRob24gcmVxdWVzdC4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBEaXNw
YXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5kbGVyIHdhcyBub3QgZm91bmQKKyAgICAgICAgICAgIEFi
b3J0ZWRCeVVzZXJFeGNlcHRpb246IHdoZW4gdXNlciBoYW5kbGVyIGFib3J0IGNvbm5lY3Rpb24K
KyAgICAgICAgICAgIEhhbmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBvcGVuaW5nIGhhbmRzaGFrZSBm
YWlsZWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hh
bmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxlcl9zdWl0
ZSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhhbmRs
ZXIgZm9yOiAlcicgJSByZXF1ZXN0LndzX3Jlc291cmNlKQorICAgICAgICBkb19leHRyYV9oYW5k
c2hha2VfID0gaGFuZGxlcl9zdWl0ZS5kb19leHRyYV9oYW5kc2hha2UKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgZG9fZXh0cmFfaGFuZHNoYWtlXyhyZXF1ZXN0KQorICAgICAgICBleGNlcHQg
aGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAjIFJlLXJh
aXNlIHRvIHRlbGwgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0aGlzCisg
ICAgICAgICAgICAjIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4KKyAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQor
ICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAg
ICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAg
ICAgJyVzIHJhaXNlZCBleGNlcHRpb24gZm9yICVzOiAnICUgKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAorICAgICAgICAgICAgICAgICAg
ICBlKQorICAgICAgICAgICAgcmFpc2UgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbihlLCBj
b21tb24uSFRUUF9TVEFUVVNfRk9SQklEREVOKQorCisgICAgZGVmIHRyYW5zZmVyX2RhdGEoc2Vs
ZiwgcmVxdWVzdCk6CisgICAgICAgICIiIkxldCBhIGhhbmRsZXIgdHJhbnNmZXJfZGF0YSB3aXRo
IGEgV2ViU29ja2V0IGNsaWVudC4KKworICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9u
IHJlcXVlc3Qud3NfcmVzb3VyY2UgYW5kIGNhbGwgaXRzCisgICAgICAgIHdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YSBmdW5jdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgcmVxdWVz
dDogbW9kX3B5dGhvbiByZXF1ZXN0LgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIERp
c3BhdGNoRXhjZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAorICAgICAgICAgICAg
QWJvcnRlZEJ5VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlv
bgorICAgICAgICAiIiIKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBUZXJtaW5hdGUgdW5k
ZXJseWluZyBUQ1AgY29ubmVjdGlvbiBpZiBwb3NzaWJsZS4KKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgaWYgbXV4LnVzZV9tdXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgbXV4LnN0YXJ0
KHJlcXVlc3QsIHNlbGYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGhhbmRs
ZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCisg
ICAgICAgICAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgorICAgICAgICAgICAgICAg
ICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3Vy
Y2UpCisgICAgICAgICAgICAgICAgdHJhbnNmZXJfZGF0YV8gPSBoYW5kbGVyX3N1aXRlLnRyYW5z
ZmVyX2RhdGEKKyAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyhyZXF1ZXN0KQorCisgICAg
ICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKKyAgICAgICAgIyBDYXRjaCBu
b24tY3JpdGljYWwgZXhjZXB0aW9ucyB0aGUgaGFuZGxlciBkaWRuJ3QgaGFuZGxlLgorICAgICAg
ICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKKyAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlv
biwgZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAgICAgICAgICBj
b21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQorICAgICAgICBleGNlcHQgbXNn
dXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAjIEludmFsaWRGcmFt
ZUV4Y2VwdGlvbiBtdXN0IGJlIGNhdWdodCBiZWZvcmUKKyAgICAgICAgICAgICMgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24gdGhhdCBjYXRjaGVzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4K
KyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1BST1RPQ09MX0VS
Uk9SKQorICAgICAgICBleGNlcHQgbXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLCBl
OgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfVU5TVVBQT1JU
RURfREFUQSkKKyAgICAgICAgZXhjZXB0IHN0cmVhbS5JbnZhbGlkVVRGOEV4Y2VwdGlvbiwgZToK
KyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAgICAgICAgICBjb21tb24u
U1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQorICAgICAgICBleGNlcHQgbXNndXRp
bC5Db25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAg
ICAgICAgIyBBbnkgb3RoZXIgZXhjZXB0aW9ucyBhcmUgZm9yd2FyZGVkIHRvIHRoZSBjYWxsZXIg
b2YgdGhpcworICAgICAgICAgICAgIyBmdW5jdGlvbi4KKyAgICAgICAgICAgIHV0aWwucHJlcGVu
ZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2Vw
dGlvbiBmb3IgJXM6ICcgJSAoCisgICAgICAgICAgICAgICAgICAgIF9UUkFOU0ZFUl9EQVRBX0hB
TkRMRVJfTkFNRSwgcmVxdWVzdC53c19yZXNvdXJjZSksCisgICAgICAgICAgICAgICAgZSkKKyAg
ICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShzZWxm
LCByZXF1ZXN0KToKKyAgICAgICAgIiIiUHJlcGFyZSBjb2RlIGFuZCByZWFzb24gZm9yIHJlc3Bv
bmRpbmcgY2xpZW50IGluaXRpYXRlZCBjbG9zaW5nCisgICAgICAgIGhhbmRzaGFrZS4KKyAgICAg
ICAgIiIiCisKKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUo
cmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgor
ICAgICAgICAgICAgcmV0dXJuIF9kZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFu
ZGxlcihyZXF1ZXN0KQorICAgICAgICByZXR1cm4gaGFuZGxlcl9zdWl0ZS5wYXNzaXZlX2Nsb3Np
bmdfaGFuZHNoYWtlKHJlcXVlc3QpCisKKyAgICBkZWYgZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZiwg
cmVzb3VyY2UpOgorICAgICAgICAiIiJSZXRyaWV2ZXMgdHdvIGhhbmRsZXJzIChvbmUgZm9yIGV4
dHJhIGhhbmRzaGFrZSBwcm9jZXNzaW5nLCBhbmQgb25lCisgICAgICAgIGZvciBkYXRhIHRyYW5z
ZmVyKSBmb3IgdGhlIGdpdmVuIHJlcXVlc3QgYXMgYSBIYW5kbGVyU3VpdGUgb2JqZWN0LgorICAg
ICAgICAiIiIKKworICAgICAgICBmcmFnbWVudCA9IE5vbmUKKyAgICAgICAgaWYgJyMnIGluIHJl
c291cmNlOgorICAgICAgICAgICAgcmVzb3VyY2UsIGZyYWdtZW50ID0gcmVzb3VyY2Uuc3BsaXQo
JyMnLCAxKQorICAgICAgICBpZiAnPycgaW4gcmVzb3VyY2U6CisgICAgICAgICAgICByZXNvdXJj
ZSA9IHJlc291cmNlLnNwbGl0KCc/JywgMSlbMF0KKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNl
bGYuX2hhbmRsZXJfc3VpdGVfbWFwLmdldChyZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxlcl9z
dWl0ZSBhbmQgZnJhZ21lbnQ6CisgICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbign
RnJhZ21lbnQgaWRlbnRpZmllcnMgTVVTVCBOT1QgYmUgdXNlZCBvbiAnCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnV2ViU29ja2V0IFVSSXMnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQorICAg
ICAgICByZXR1cm4gaGFuZGxlcl9zdWl0ZQorCisgICAgZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxl
c19pbl9kaXIoCisgICAgICAgIHNlbGYsIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxl
cnNfb3V0c2lkZV9yb290X2Rpcik6CisgICAgICAgICIiIlNvdXJjZSBhbGwgdGhlIGhhbmRsZXIg
c291cmNlIGZpbGVzIGluIHRoZSBzY2FuX2RpciBkaXJlY3RvcnkuCisKKyAgICAgICAgVGhlIHJl
c291cmNlIHBhdGggaXMgZGV0ZXJtaW5lZCByZWxhdGl2ZSB0byByb290X2Rpci4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgIyBXZSBidWlsZCBhIG1hcCBmcm9tIHJlc291cmNlIHRvIGhhbmRsZXIg
Y29kZSBhc3N1bWluZyB0aGF0IHRoZXJlJ3MKKyAgICAgICAgIyBvbmx5IG9uZSBwYXRoIGZyb20g
cm9vdF9kaXIgdG8gc2Nhbl9kaXIgYW5kIGl0IGNhbiBiZSBvYnRhaW5lZCBieQorICAgICAgICAj
IGNvbXBhcmluZyByZWFscGF0aCBvZiB0aGVtLgorCisgICAgICAgICMgSGVyZSB3ZSBjYW5ub3Qg
dXNlIGFic3BhdGguIFNlZQorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTYwMworCisgICAgICAgIGNvbnZlcnQgPSBfY3JlYXRlX3BhdGhfdG9fcmVz
b3VyY2VfY29udmVydGVyKHJvb3RfZGlyKQorICAgICAgICBzY2FuX3JlYWxwYXRoID0gb3MucGF0
aC5yZWFscGF0aChzY2FuX2RpcikKKyAgICAgICAgcm9vdF9yZWFscGF0aCA9IG9zLnBhdGgucmVh
bHBhdGgocm9vdF9kaXIpCisgICAgICAgIGZvciBwYXRoIGluIF9lbnVtZXJhdGVfaGFuZGxlcl9m
aWxlX3BhdGhzKHNjYW5fcmVhbHBhdGgpOgorICAgICAgICAgICAgaWYgKG5vdCBhbGxvd19oYW5k
bGVyc19vdXRzaWRlX3Jvb3RfZGlyIGFuZAorICAgICAgICAgICAgICAgIChub3Qgb3MucGF0aC5y
ZWFscGF0aChwYXRoKS5zdGFydHN3aXRoKHJvb3RfcmVhbHBhdGgpKSk6CisgICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAnQ2Fub25pY2FsIHBh
dGggb2YgJXMgaXMgbm90IHVuZGVyIHJvb3QgZGlyZWN0b3J5JyAlCisgICAgICAgICAgICAgICAg
ICAgIHBhdGgpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gX3NvdXJjZV9oYW5kbGVyX2ZpbGUob3Blbihw
YXRoKS5yZWFkKCkpCisgICAgICAgICAgICBleGNlcHQgRGlzcGF0Y2hFeGNlcHRpb24sIGU6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzLmFwcGVuZCgnJXM6ICVzJyAlIChw
YXRoLCBlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcmVzb3VyY2Ug
PSBjb252ZXJ0KHBhdGgpCisgICAgICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAgICAgJ1BhdGgg
dG8gcmVzb3VyY2UgY29udmVyc2lvbiBvbiAlcyBmYWlsZWQnICUgcGF0aCkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbY29udmVydChw
YXRoKV0gPSBoYW5kbGVyX3N1aXRlCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvZXh0ZW5zaW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGI1ZWFmNzNmNGQyZDZiNjI0MzgwZjUxZGFh
Nzc0MTk0ZjE4ZGRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZXh0
ZW5zaW9ucy5weQpAQCAtMCwwICsxLDc1MCBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IHV0aWwKK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmh0dHBfaGVhZGVyX3V0aWwgaW1wb3J0IHF1b3Rl
X2lmX25lY2Vzc2FyeQorCisKKyMgVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHNlcnZlciBzaWRlIGV4
dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3Nlcy4KK19hdmFpbGFibGVfcHJvY2Vzc29ycyA9IHt9Citf
Y29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzID0gW10KKworCitjbGFzcyBFeHRlbnNpb25Qcm9j
ZXNzb3JJbnRlcmZhY2Uob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0
KToKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisK
KyAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5fYWN0aXZlID0g
VHJ1ZQorCisgICAgZGVmIHJlcXVlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXF1
ZXN0CisKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRl
ZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJvY2Vzc29y
cyk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZXRfYWN0aXZlKHNlbGYsIGFjdGl2ZSk6Cisg
ICAgICAgIHNlbGYuX2FjdGl2ZSA9IGFjdGl2ZQorCisgICAgZGVmIGlzX2FjdGl2ZShzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGl2ZQorCisgICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGdl
dF9leHRlbnNpb25fcmVzcG9uc2Uoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9hY3RpdmU6
CisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0V4dGVuc2lvbiAlcyBpcyBkZWFjdGl2
YXRlZCcsIHNlbGYubmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBy
ZXNwb25zZSA9IHNlbGYuX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoKQorICAgICAg
ICBpZiByZXNwb25zZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UK
KyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25z
X2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAgcGFzcworCisgICAgZGVm
IHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAgaWYg
c2VsZi5fYWN0aXZlOgorICAgICAgICAgICAgc2VsZi5fc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50
ZXJuYWwoc3RyZWFtX29wdGlvbnMpCisKKworZGVmIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Npb25f
cmF0aW8oCisgICAgICAgIGxvZ2dlciwgb3JpZ2luYWxfYnl0ZXMsIGZpbHRlcmVkX2J5dGVzLCBh
dmVyYWdlX3JhdGlvKToKKyAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFpbGFi
bGUuCisgICAgcmF0aW8gPSBmbG9hdCgnaW5mJykKKyAgICBpZiBvcmlnaW5hbF9ieXRlcyAhPSAw
OgorICAgICAgICByYXRpbyA9IGZsb2F0KGZpbHRlcmVkX2J5dGVzKSAvIG9yaWdpbmFsX2J5dGVz
CisKKyAgICBsb2dnZXIuZGVidWcoJ091dGdvaW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAoYXZl
cmFnZTogJWYpJyAlCisgICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQorCisKK2Rl
ZiBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAorICAgICAgICBsb2dnZXIsIHJlY2Vp
dmVkX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZlcmFnZV9yYXRpbyk6CisgICAgIyBQcmludCBp
bmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxlLgorICAgIHJhdGlvID0gZmxvYXQoJ2luZicp
CisgICAgaWYgZmlsdGVyZWRfYnl0ZXMgIT0gMDoKKyAgICAgICAgcmF0aW8gPSBmbG9hdChyZWNl
aXZlZF9ieXRlcykgLyBmaWx0ZXJlZF9ieXRlcworCisgICAgbG9nZ2VyLmRlYnVnKCdJbmNvbWlu
ZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJhZ2U6ICVmKScgJQorICAgICAgICAgICAgKHJh
dGlvLCBhdmVyYWdlX3JhdGlvKSkKKworCitkZWYgX3BhcnNlX3dpbmRvd19iaXRzKGJpdHMpOgor
ICAgICIiIlJldHVybiBwYXJzZWQgaW50ZWdlciB2YWx1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBj
b25mb3JtcyB0byB0aGUKKyAgICBncmFtbWFyIG9mIHRoZSB3aW5kb3cgYml0cyBleHRlbnNpb24g
cGFyYW1ldGVycy4KKyAgICAiIiIKKworICAgIGlmIGJpdHMgaXMgTm9uZToKKyAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignVmFsdWUgaXMgcmVxdWlyZWQnKQorCisgICAgIyBGb3Igbm9uIGludGVn
ZXIgdmFsdWVzIHN1Y2ggYXMgIjEwLjAiLCBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkLgorICAg
IGludF9iaXRzID0gaW50KGJpdHMpCisKKyAgICAjIEZpcnN0IGNvbmRpdGlvbiBpcyB0byBkcm9w
IGxlYWRpbmcgemVybyBjYXNlIGUuZy4gIjA4Ii4KKyAgICBpZiBiaXRzICE9IHN0cihpbnRfYml0
cykgb3IgaW50X2JpdHMgPCA4IG9yIGludF9iaXRzID4gMTU6CisgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0ludmFsaWQgdmFsdWU6ICVyJyAlIGJpdHMpCisKKyAgICByZXR1cm4gaW50X2JpdHMK
KworCitjbGFzcyBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcihvYmplY3QpOgorICAgICIiIlN0b3Jl
cyB0b3RhbCBieXRlcyBvZiBvcmlnaW5hbCBhbmQgcmVzdWx0IGRhdGEsIGFuZCBjYWxjdWxhdGVz
IGF2ZXJhZ2UKKyAgICByZXN1bHQgLyBvcmlnaW5hbCByYXRpby4KKyAgICAiIiIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgPSAw
CisgICAgICAgIHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcyA9IDAKKworICAgIGRlZiBhZGRfb3Jp
Z2luYWxfYnl0ZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9i
eXRlcyArPSB2YWx1ZQorCisgICAgZGVmIGFkZF9yZXN1bHRfYnl0ZXMoc2VsZiwgdmFsdWUpOgor
ICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgKz0gdmFsdWUKKworICAgIGRlZiBnZXRf
YXZlcmFnZV9yYXRpbyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0
ZXMgIT0gMDoKKyAgICAgICAgICAgIHJldHVybiAoZmxvYXQoc2VsZi5fdG90YWxfcmVzdWx0X2J5
dGVzKSAvCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGZsb2F0KCdpbmYnKQorCisKK2NsYXNz
IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZh
Y2UpOgorICAgICIiImRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KKworICAgIFNw
ZWNpZmljYXRpb246CisgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdHlvc2hp
bm8taHliaS13ZWJzb2NrZXQtcGVyZnJhbWUtZGVmbGF0ZQorICAgICIiIgorCisgICAgX1dJTkRP
V19CSVRTX1BBUkFNID0gJ21heF93aW5kb3dfYml0cycKKyAgICBfTk9fQ09OVEVYVF9UQUtFT1ZF
Ul9QQVJBTSA9ICdub19jb250ZXh0X3Rha2VvdmVyJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlcXVlc3QpOgorICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18o
c2VsZiwgcmVxdWVzdCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9n
Z2VyKHNlbGYpCisKKyAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgPSBOb25lCisg
ICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIgPSBGYWxzZQorICAgICAg
ICBzZWxmLl9iZmluYWwgPSBGYWxzZQorCisgICAgICAgICMgQ2FsY3VsYXRlcworICAgICAgICAj
ICAgICAoVG90YWwgb3V0Z29pbmcgYnl0ZXMgc3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8KKyAg
ICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHNlbnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBwbHlp
bmcgdGhpcyBmaWx0ZXIpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2Fs
Y3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKKworICAgICAgICAjIENhbGN1bGF0
ZXMKKyAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmsp
IC8KKyAgICAgICAgIyAgICAgKFRvdGFsIGluY29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVyIGFw
cGx5aW5nIHRoaXMgZmlsdGVyKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlv
X2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCisKKyAgICBkZWYgbmFtZShz
ZWxmKToKKyAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTgorCisg
ICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAgICAgICAj
IEFueSB1bmtub3duIHBhcmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4KKworICAgICAgICB3
aW5kb3dfYml0cyA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVy
KHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNKToKKyAgICAgICAgICAgIHdpbmRvd19iaXRzID0gc2Vs
Zi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAorICAgICAgICAgICAgICAgIHNlbGYuX1dJ
TkRPV19CSVRTX1BBUkFNKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdpbmRv
d19iaXRzID0gX3BhcnNlX3dpbmRvd19iaXRzKHdpbmRvd19iaXRzKQorICAgICAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICBub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAorICAg
ICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKKyAgICAgICAgaWYgKG5v
X2NvbnRleHRfdGFrZW92ZXIgYW5kCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJh
bWV0ZXJfdmFsdWUoCisgICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9Q
QVJBTSkgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBz
ZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAorICAgICAgICAg
ICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICAgICAgc2VsZi5fcmZj
MTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCisKKyAgICAgICAgc2VsZi5f
Y29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCisKKyAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQorCisgICAgICAgIGlmIHNlbGYu
X3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVzcG9uc2Uu
YWRkX3BhcmFtZXRlcigKKyAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJBTSwg
c3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzKSkKKyAgICAgICAgaWYgc2VsZi5fcmVzcG9u
c2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0
ZXIoCisgICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9u
ZSkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnRW5hYmxlICVz
IGV4dGVuc2lvbiAoJworICAgICAgICAgICAgJ3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBub19j
b250ZXh0X3Rha2VvdmVyPSVyLCAnCisgICAgICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193Yml0
cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKKyAgICAgICAgICAgIChzZWxmLl9yZXF1
ZXN0Lm5hbWUoKSwKKyAgICAgICAgICAgICB3aW5kb3dfYml0cywKKyAgICAgICAgICAgICBub19j
b250ZXh0X3Rha2VvdmVyLAorICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRz
LAorICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQorCisg
ICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19p
bnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6CisKKyAgICAgICAgY2xhc3MgX091dGdvaW5n
RmlsdGVyKG9iamVjdCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQp
OgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorCisgICAgICAgICAgICBk
ZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX291
dGdvaW5nX2ZpbHRlcihmcmFtZSkKKworICAgICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIob2Jq
ZWN0KToKKworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAgICAg
ICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisKKyAgICAgICAgICAgIGRlZiBmaWx0ZXIo
c2VsZiwgZnJhbWUpOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdfZmls
dGVyKGZyYW1lKQorCisgICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRl
cnMuYXBwZW5kKAorICAgICAgICAgICAgX091dGdvaW5nRmlsdGVyKHNlbGYpKQorICAgICAgICBz
dHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmluc2VydCgKKyAgICAgICAgICAg
IDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkKKworICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2luZG93
X2JpdHMoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyA9
IHZhbHVlCisKKyAgICBkZWYgc2V0X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZiwg
dmFsdWUpOgorICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFs
dWUKKworICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fYmZp
bmFsID0gdmFsdWUKKworICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6
CisgICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQorCisgICAgZGVmIGRpc2Fi
bGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6CisgICAgICAgIHNlbGYuX2NvbXByZXNzX291
dGdvaW5nID0gRmFsc2UKKworICAgIGRlZiBfb3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1lKToK
KyAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdvaW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9ubHkgYnkKKyAgICAgICAgYW4gX091dGdvaW5nRmlsdGVyIGluc3RhbmNlLgorICAgICAg
ICAiIiIKKworICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9h
ZCkKKyAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9v
cmlnaW5hbF9ieXRlcygKKyAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCisK
KyAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZyBvcgorICAgICAgICAgICAg
Y29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgorICAgICAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCisg
ICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKKyAgICAgICAgICAgIHJl
dHVybgorCisgICAgICAgIGZyYW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZp
bHRlcigKKyAgICAgICAgICAgIGZyYW1lLnBheWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCisg
ICAgICAgIGZyYW1lLnJzdjEgPSAxCisKKyAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0g
bGVuKGZyYW1lLnBheWxvYWQpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAorICAgICAgICAgICAgICAgIGZpbHRlcmVkX3Bh
eWxvYWRfc2l6ZSkKKworICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAor
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKKyAgICAgICAgICAgICAgICBvcmlnaW5hbF9w
YXlsb2FkX3NpemUsCisgICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAorICAg
ICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRf
YXZlcmFnZV9yYXRpbygpKQorCisgICAgZGVmIF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJhbWUp
OgorICAgICAgICAiIiJUcmFuc2Zvcm0gaW5jb21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb25seSBieQorICAgICAgICBhbiBfSW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCisgICAg
ICAgICIiIgorCisgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXls
b2FkKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRk
X3Jlc3VsdF9ieXRlcygKKyAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCisK
KyAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAxIG9yIGNvbW1vbi5pc19jb250cm9sX29wY29kZShm
cmFtZS5vcGNvZGUpOgorICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKKyAgICAgICAgICAgICAgICAgICAgcmVjZWl2
ZWRfcGF5bG9hZF9zaXplKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZnJhbWUucGF5
bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCisgICAg
ICAgIGZyYW1lLnJzdjEgPSAwCisKKyAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVu
KGZyYW1lLnBheWxvYWQpCisgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2Fs
Y3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCisgICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5
bG9hZF9zaXplKQorCisgICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCisg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAorICAgICAgICAgICAgICAgIHJlY2VpdmVkX3Bh
eWxvYWRfc2l6ZSwKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCisgICAg
ICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9h
dmVyYWdlX3JhdGlvKCkpCisKKworX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTl0gPSAoCisgICAgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KQorX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKQorCitfYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lUX0RF
RkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgKKyAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IpCitfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9XRUJL
SVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisKKworY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKKyAgICAiIiJw
ZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KKworICAgIFNwZWNpZmljYXRp
b246CisgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBlcm1l
c3NhZ2UtY29tcHJlc3Npb24tMDgKKyAgICAiIiIKKworICAgIF9TRVJWRVJfTUFYX1dJTkRPV19C
SVRTX1BBUkFNID0gJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnCisgICAgX1NFUlZFUl9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNID0gJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJworICAgIF9D
TElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0gJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnCisg
ICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ2NsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAi
IiJDb25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuIiIiCisKKyAg
ICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3Qp
CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisg
ICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQorICAg
ICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCisKKyAgICBkZWYg
bmFtZShzZWxmKToKKyAgICAgICAgIyBUaGlzIG1ldGhvZCByZXR1cm5zICJkZWZsYXRlIiAobm90
ICJwZXJtZXNzYWdlLWRlZmxhdGUiKSBmb3IKKyAgICAgICAgIyBjb21wYXRpYmlsaXR5LgorICAg
ICAgICByZXR1cm4gJ2RlZmxhdGUnCisKKyAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2Vf
aW50ZXJuYWwoc2VsZik6CisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX3JlcXVlc3QuZ2V0X3Bh
cmFtZXRlcl9uYW1lcygpOgorICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gW3NlbGYuX1NFUlZF
Ul9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTV06CisgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmtub3duIHBhcmFtZXRlcjogJXInLCBuYW1lKQor
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgc2VydmVyX21heF93aW5kb3df
Yml0cyA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYu
X1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0pOgorICAgICAgICAgICAgc2VydmVyX21heF93
aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSkKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gX3BhcnNl
X3dpbmRvd19iaXRzKAorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
KQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdCYWQgJXMgcGFyYW1ldGVyOiAlcicsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgICAgICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciA9IHNlbGYuX3Jl
cXVlc3QuaGFzX3BhcmFtZXRlcigKKyAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhU
X1RBS0VPVkVSX1BBUkFNKQorICAgICAgICBpZiAoc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIg
YW5kCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCisgICAg
ICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pIGlzIG5v
dCBOb25lKToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1ldGVyIG11
c3Qgbm90IGhhdmUgYSB2YWx1ZTogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgICAgICAjIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJvbSBhIGNs
aWVudCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY2xpZW50IGNhbgorICAgICAgICAjIGFjY2VwdCBj
bGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBzZXJ2ZXIgb3Igbm90LgorICAgICAgICBjbGll
bnRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcigK
KyAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCisgICAgICAg
IGlmIChjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyBhbmQKKyAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKKyAgICAgICAgICAgICAgICBzZWxmLl9DTElF
TlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKSBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5vdCBoYXZlIGEgdmFsdWUgaW4gYSAn
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudFwncyBvcGVuaW5nIGhhbmRz
aGFrZTogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9N
QVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisg
ICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIoCisg
ICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBzZXJ2ZXJfbm9fY29udGV4dF90YWtl
b3ZlcikKKworICAgICAgICAjIE5vdGUgdGhhdCB3ZSBwcmVwYXJlIGZvciBpbmNvbWluZyBtZXNz
YWdlcyBjb21wcmVzc2VkIHdpdGggd2luZG93CisgICAgICAgICMgYml0cyB1cHRvIDE1IHJlZ2Fy
ZGxlc3Mgb2YgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMgdmFsdWUgdG8gYmUKKyAgICAgICAg
IyBzZW50IHRvIHRoZSBjbGllbnQuCisgICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIgPSB1
dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQorCisgICAgICAgIHNlbGYuX2ZyYW1lciA9IF9QZXJNZXNz
YWdlRGVmbGF0ZUZyYW1lcigKKyAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMsIHNl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQorICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2JmaW5h
bChGYWxzZSkKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFi
bGVkKFRydWUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KHNlbGYuX3JlcXVlc3QubmFtZSgpKQorCisgICAgICAgIGlmIHNlcnZlcl9tYXhfd2luZG93X2Jp
dHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAorICAg
ICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAgICAg
ICAgICAgICAgc3RyKHNlcnZlcl9tYXhfd2luZG93X2JpdHMpKQorCisgICAgICAgIGlmIHNlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyOgorICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRl
cigKKyAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJB
TSwgTm9uZSkKKworICAgICAgICBpZiBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5kb3df
Yml0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIG5vdCBjbGllbnRfY2xpZW50X21heF93
aW5kb3dfYml0czoKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb2Nlc3Nv
ciBpcyBjb25maWd1cmVkIHRvIHVzZSAlcyBidXQgJworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAndGhlIGNsaWVudCBjYW5ub3QgYWNjZXB0IGl0JywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3Bh
cmFtZXRlcigKKyAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BB
UkFNLAorICAgICAgICAgICAgICAgIHN0cihzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5k
b3dfYml0cykpCisKKyAgICAgICAgaWYgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXI6
CisgICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAorICAgICAgICAgICAgICAgIHNl
bGYuX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQorCisgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uICgnCisg
ICAgICAgICAgICAncmVxdWVzdDogc2VydmVyX21heF93aW5kb3dfYml0cz0lczsgJworICAgICAg
ICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCisgICAgICAgICAgICAncmVz
cG9uc2U6IGNsaWVudF9tYXhfd2luZG93X2JpdHM9JXM7ICcKKyAgICAgICAgICAgICdjbGllbnRf
bm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKKyAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5h
bWUoKSwKKyAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLAorICAgICAgICAgICAg
IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyLAorICAgICAgICAgICAgIHNlbGYuX3ByZWZlcnJl
ZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzLAorICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9ub19j
b250ZXh0X3Rha2VvdmVyKSkKKworICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBf
c2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgorICAg
ICAgICBzZWxmLl9mcmFtZXIuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCisK
KyAgICBkZWYgc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoc2VsZiwgdmFsdWUpOgorICAgICAg
ICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoaXMgY2xhc3MgYWRkcyB0aGUKKyAg
ICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBo
YW5kc2hha2UgcmVzcG9uc2UsCisgICAgICAgIGJ1dCBkb2Vzbid0IHJlZHVjZSB0aGUgTFo3NyBz
bGlkaW5nIHdpbmRvdyBzaXplIG9mIGl0cyBpbmZsYXRlci4KKyAgICAgICAgSS5lLiwgeW91IGNh
biB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24gYnV0IGNhbm5vdAor
ICAgICAgICByZWR1Y2UgbWVtb3J5IHVzYWdlIG9mIHRoaXMgY2xhc3MuCisKKyAgICAgICAgSWYg
dGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkIHdpdGggVHJ1ZSBhbmQgYW4gb2ZmZXIgd2l0aG91
dCB0aGUKKyAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVy
IGlzIHJlY2VpdmVkLAorICAgICAgICAtIChXaGVuIHByb2Nlc3NpbmcgdGhlIHBlcm1lc3NhZ2Ut
ZGVmbGF0ZSBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCisgICAgICAgICAgZGVjbGluZXMgdGhl
IHJlcXVlc3QuCisgICAgICAgIC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2FnZS1jb21w
cmVzcyBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCisgICAgICAgICAgYWNjZXB0cyB0aGUgcmVx
dWVzdC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhf
d2luZG93X2JpdHMgPSB2YWx1ZQorCisgICAgZGVmIHNldF9jbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlcihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmll
ZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQorICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
ciBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hha2UKKyAgICAgICAgcmVzcG9uc2Us
IGJ1dCBkb2Vzbid0IHJlc2V0IGluZmxhdGVyIGZvciBlYWNoIG1lc3NhZ2UuIEkuZS4sIHlvdSBj
YW4KKyAgICAgICAgdXNlIHRoaXMgZm9yIHRlc3RpbmcgY2xpZW50IGltcGxlbWVudGF0aW9uIGJ1
dCBjYW5ub3QgcmVkdWNlIG1lbW9yeQorICAgICAgICB1c2FnZSBvZiB0aGlzIGNsYXNzLgorICAg
ICAgICAiIiIKKworICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IHZh
bHVlCisKKyAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX2Zy
YW1lci5zZXRfYmZpbmFsKHZhbHVlKQorCisgICAgZGVmIGVuYWJsZV9vdXRnb2luZ19jb21wcmVz
c2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19l
bmFibGVkKFRydWUpCisKKyAgICBkZWYgZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxm
KToKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKEZh
bHNlKQorCisKK2NsYXNzIF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcihvYmplY3QpOgorICAgICIi
IkEgZnJhbWVyIGZvciBleHRlbnNpb25zIHdpdGggcGVyLW1lc3NhZ2UgREVGTEFURSBmZWF0dXJl
LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmxhdGVfbWF4X3dpbmRvd19iaXRzLCBk
ZWZsYXRlX25vX2NvbnRleHRfdGFrZW92ZXIpOgorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGls
LmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVy
ID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAorICAgICAgICAgICAgZGVmbGF0ZV9tYXhfd2luZG93
X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3ZlcikKKworICAgICAgICBzZWxmLl9yZmMx
OTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKKworICAgICAgICBzZWxmLl9i
ZmluYWwgPSBGYWxzZQorCisgICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQg
PSBGYWxzZQorCisgICAgICAgICMgVHJ1ZSBpZiBhIG1lc3NhZ2UgaXMgZnJhZ21lbnRlZCBhbmQg
Y29tcHJlc3Npb24gaXMgb25nb2luZy4KKyAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25nb2luZyA9
IEZhbHNlCisKKyAgICAgICAgIyBDYWxjdWxhdGVzCisgICAgICAgICMgICAgIChUb3RhbCBvdXRn
b2luZyBieXRlcyBzdXBwbGllZCB0byB0aGlzIGZpbHRlcikgLworICAgICAgICAjICAgICAoVG90
YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0d29yayBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikK
KyAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJh
Z2VSYXRpb0NhbGN1bGF0b3IoKQorCisgICAgICAgICMgQ2FsY3VsYXRlcworICAgICAgICAjICAg
ICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgbmV0d29yaykgLworICAgICAgICAjICAg
ICAoVG90YWwgaW5jb21pbmcgYnl0ZXMgb2J0YWluZWQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0
ZXIpCisgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9B
dmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKKworICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVl
KToKKyAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUKKworICAgIGRlZiBzZXRfY29tcHJlc3Nf
b3V0Z29pbmdfZW5hYmxlZChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX2NvbXByZXNzX291
dGdvaW5nX2VuYWJsZWQgPSB2YWx1ZQorCisgICAgZGVmIF9wcm9jZXNzX2luY29taW5nX21lc3Nh
Z2Uoc2VsZiwgbWVzc2FnZSwgZGVjb21wcmVzcyk6CisgICAgICAgIGlmIG5vdCBkZWNvbXByZXNz
OgorICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKworICAgICAgICByZWNlaXZlZF9wYXlsb2Fk
X3NpemUgPSBsZW4obWVzc2FnZSkKKyAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRp
b19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCisgICAgICAgICAgICAgICAgcmVjZWl2ZWRf
cGF5bG9hZF9zaXplKQorCisgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9yZmMxOTc5X2luZmxhdGVy
LmZpbHRlcihtZXNzYWdlKQorCisgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbiht
ZXNzYWdlKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3Iu
YWRkX29yaWdpbmFsX2J5dGVzKAorICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6
ZSkKKworICAgICAgICBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAorICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlciwKKyAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3Np
emUsCisgICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAorICAgICAgICAgICAg
ICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9y
YXRpbygpKQorCisgICAgICAgIHJldHVybiBtZXNzYWdlCisKKyAgICBkZWYgX3Byb2Nlc3Nfb3V0
Z29pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQsIGJpbmFyeSk6CisgICAgICAgIGlmIG5v
dCBiaW5hcnk6CisgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykK
KworICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZDoKKyAgICAg
ICAgICAgIHJldHVybiBtZXNzYWdlCisKKyAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplID0g
bGVuKG1lc3NhZ2UpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3Vs
YXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCisgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3Np
emUpCisKKyAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIuZmlsdGVyKAor
ICAgICAgICAgICAgbWVzc2FnZSwgZW5kPWVuZCwgYmZpbmFsPXNlbGYuX2JmaW5hbCkKKworICAg
ICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKKyAgICAgICAgc2VsZi5f
b3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCisgICAg
ICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCisKKyAgICAgICAgX2xvZ19vdXRnb2luZ19j
b21wcmVzc2lvbl9yYXRpbygKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCisgICAgICAg
ICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplLAorICAgICAgICAgICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSwKKyAgICAgICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKKworICAgICAgICBpZiBub3Qgc2Vs
Zi5fY29tcHJlc3Nfb25nb2luZzoKKyAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2Zp
bHRlci5zZXRfY29tcHJlc3Npb25fYml0KCkKKyAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25nb2lu
ZyA9IG5vdCBlbmQKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKworICAgIGRlZiBfcHJvY2Vzc19p
bmNvbWluZ19mcmFtZShzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIGZyYW1lLnJzdjEgPT0gMSBh
bmQgbm90IGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgorICAgICAgICAg
ICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIuZGVjb21wcmVzc19uZXh0X21lc3NhZ2Uo
KQorICAgICAgICAgICAgZnJhbWUucnN2MSA9IDAKKworICAgIGRlZiBfcHJvY2Vzc19vdXRnb2lu
Z19mcmFtZShzZWxmLCBmcmFtZSwgY29tcHJlc3Npb25fYml0KToKKyAgICAgICAgaWYgKG5vdCBj
b21wcmVzc2lvbl9iaXQgb3IKKyAgICAgICAgICAgIGNvbW1vbi5pc19jb250cm9sX29wY29kZShm
cmFtZS5vcGNvZGUpKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGZyYW1lLnJzdjEg
PSAxCisKKyAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlvbnMoc2VsZiwgc3RyZWFtX29wdGlvbnMp
OgorICAgICAgICAiIiJDcmVhdGVzIGZpbHRlcnMgYW5kIHNldHMgdGhlbSB0byB0aGUgU3RyZWFt
T3B0aW9ucy4iIiIKKworICAgICAgICBjbGFzcyBfT3V0Z29pbmdNZXNzYWdlRmlsdGVyKG9iamVj
dCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgorICAgICAgICAg
ICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorCisgICAgICAgICAgICBkZWYgZmlsdGVyKHNl
bGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9wYXJlbnQuX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZSgKKyAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSwgZW5kLCBiaW5hcnkpCisKKyAgICAgICAgY2xhc3MgX0luY29taW5n
TWVzc2FnZUZpbHRlcihvYmplY3QpOgorCisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
cGFyZW50KToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAg
ICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IEZhbHNlCisKKyAgICAgICAg
ICAgIGRlZiBkZWNvbXByZXNzX25leHRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IFRydWUKKworICAgICAgICAgICAgZGVmIGZp
bHRlcihzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fcGFy
ZW50Ll9wcm9jZXNzX2luY29taW5nX21lc3NhZ2UoCisgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2UsIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNlbGYu
X2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
bWVzc2FnZQorCisgICAgICAgIHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmlsdGVyID0gX091dGdv
aW5nTWVzc2FnZUZpbHRlcihzZWxmKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2Zp
bHRlciA9IF9JbmNvbWluZ01lc3NhZ2VGaWx0ZXIoc2VsZikKKyAgICAgICAgc3RyZWFtX29wdGlv
bnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzLmFwcGVuZCgKKyAgICAgICAgICAgIHNlbGYuX291
dGdvaW5nX21lc3NhZ2VfZmlsdGVyKQorICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19t
ZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAorICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2Fn
ZV9maWx0ZXIpCisKKyAgICAgICAgY2xhc3MgX091dGdvaW5nRnJhbWVGaWx0ZXIob2JqZWN0KToK
KworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAgICAgICAgICAg
ICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisgICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXBy
ZXNzaW9uX2JpdCA9IEZhbHNlCisKKyAgICAgICAgICAgIGRlZiBzZXRfY29tcHJlc3Npb25fYml0
KHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQgPSBUcnVl
CisKKyAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgorICAgICAgICAgICAgICAg
IHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19mcmFtZSgKKyAgICAgICAgICAgICAgICAg
ICAgZnJhbWUsIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCisKKyAgICAgICAgY2xhc3MgX0luY29taW5n
RnJhbWVGaWx0ZXIob2JqZWN0KToKKworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh
cmVudCk6CisgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisKKyAgICAgICAg
ICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVu
dC5fcHJvY2Vzc19pbmNvbWluZ19mcmFtZShmcmFtZSkKKworICAgICAgICBzZWxmLl9vdXRnb2lu
Z19mcmFtZV9maWx0ZXIgPSBfT3V0Z29pbmdGcmFtZUZpbHRlcihzZWxmKQorICAgICAgICBzZWxm
Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBfSW5jb21pbmdGcmFtZUZpbHRlcihzZWxmKQorICAg
ICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKKyAgICAg
ICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlcikKKyAgICAgICAgc3RyZWFtX29wdGlv
bnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCisgICAgICAgICAgICBzZWxmLl9pbmNv
bWluZ19mcmFtZV9maWx0ZXIpCisKKyAgICAgICAgc3RyZWFtX29wdGlvbnMuZW5jb2RlX3RleHRf
bWVzc2FnZV90b191dGY4ID0gRmFsc2UKKworCitfYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9u
LlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT05dID0gKAorICAgICAgICBQZXJNZXNzYWdlRGVm
bGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKKyMgVE9ETyh0eW9zaGlubyk6IFJlb3JnYW5pemUgY2xh
c3MgbmFtZXMuCitfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZCgnZGVmbGF0ZScp
CisKKworY2xhc3MgTXV4RXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lvblByb2Nlc3NvckludGVy
ZmFjZSk6CisgICAgIiIiV2ViU29ja2V0IG11bHRpcGxleGluZyBleHRlbnNpb24gcHJvY2Vzc29y
LiIiIgorCisgICAgX1FVT1RBX1BBUkFNID0gJ3F1b3RhJworCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0
X18oc2VsZiwgcmVxdWVzdCkKKyAgICAgICAgc2VsZi5fcXVvdGEgPSAwCisgICAgICAgIHNlbGYu
X2V4dGVuc2lvbnMgPSBbXQorCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBj
b21tb24uTVVYX0VYVEVOU0lPTgorCisgICAgZGVmIGNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3Ro
ZXJfcHJvY2Vzc29ycyhzZWxmLCBwcm9jZXNzb3JzKToKKyAgICAgICAgYmVmb3JlX211eCA9IFRy
dWUKKyAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzOgorICAgICAgICAgICAgbmFt
ZSA9IHByb2Nlc3Nvci5uYW1lKCkKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gc2VsZi5uYW1lKCk6
CisgICAgICAgICAgICAgICAgYmVmb3JlX211eCA9IEZhbHNlCisgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6CisgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGJlZm9yZV9tdXg6CisgICAgICAgICAg
ICAgICAgIyBNdXggZXh0ZW5zaW9uIGNhbm5vdCBiZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMKKyAg
ICAgICAgICAgICAgICAjIHRoYXQgZGVwZW5kIG9uIGZyYW1lIGJvdW5kYXJ5LCBleHRlbnNpb24g
ZGF0YSBmaWVsZCwgb3IgYW55CisgICAgICAgICAgICAgICAgIyByZXNlcnZlZCBiaXRzIHdoaWNo
IGFyZSBhdHRyaWJ1dGVkIHRvIGVhY2ggZnJhbWUuCisgICAgICAgICAgICAgICAgaWYgKG5hbWUg
PT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCisgICAgICAgICAgICAgICAgICAg
IG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKToKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNlKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBNdXggZXh0ZW5z
aW9uIHNob3VsZCBub3QgYmUgYXBwbGllZCBiZWZvcmUgYW55IGhpc3RvcnktYmFzZWQKKyAgICAg
ICAgICAgICAgICAjIGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KKyAgICAgICAgICAgICAgICBpZiAo
bmFtZSA9PSAnZGVmbGF0ZScgb3IKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBj
b21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pOgorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgor
CisgICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAgICAg
ICBzZWxmLl9hY3RpdmUgPSBGYWxzZQorICAgICAgICBxdW90YSA9IHNlbGYuX3JlcXVlc3QuZ2V0
X3BhcmFtZXRlcl92YWx1ZShzZWxmLl9RVU9UQV9QQVJBTSkKKyAgICAgICAgaWYgcXVvdGEgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcXVvdGEgPSBpbnQo
cXVvdGEpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gTm9uZQorICAgICAgICAgICAgaWYgcXVvdGEgPCAwIG9yIHF1b3RhID49IDIgKiog
MzI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHNlbGYuX3F1b3Rh
ID0gcXVvdGEKKworICAgICAgICBzZWxmLl9hY3RpdmUgPSBUcnVlCisgICAgICAgIHJldHVybiBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9OKQorCisgICAgZGVm
IF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Cisg
ICAgICAgIHBhc3MKKworICAgIGRlZiBzZXRfcXVvdGEoc2VsZiwgcXVvdGEpOgorICAgICAgICBz
ZWxmLl9xdW90YSA9IHF1b3RhCisKKyAgICBkZWYgcXVvdGEoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9xdW90YQorCisgICAgZGVmIHNldF9leHRlbnNpb25zKHNlbGYsIGV4dGVuc2lvbnMp
OgorICAgICAgICBzZWxmLl9leHRlbnNpb25zID0gZXh0ZW5zaW9ucworCisgICAgZGVmIGV4dGVu
c2lvbnMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9leHRlbnNpb25zCisKKworX2F2YWls
YWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5NVVhfRVhURU5TSU9OXSA9IE11eEV4dGVuc2lvblByb2Nl
c3NvcgorCisKK2RlZiBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCk6
CisgICAgIiIiR2l2ZW4gYW4gRXh0ZW5zaW9uUGFyYW1ldGVyIHJlcHJlc2VudGluZyBhbiBleHRl
bnNpb24gb2ZmZXIgcmVjZWl2ZWQKKyAgICBmcm9tIGEgY2xpZW50LCBjb25maWd1cmVzIGFuZCBy
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgZXh0ZW5zaW9uIHBy
b2Nlc3NvciBjbGFzcy4KKyAgICAiIiIKKworICAgIHByb2Nlc3Nvcl9jbGFzcyA9IF9hdmFpbGFi
bGVfcHJvY2Vzc29ycy5nZXQoZXh0ZW5zaW9uX3JlcXVlc3QubmFtZSgpKQorICAgIGlmIHByb2Nl
c3Nvcl9jbGFzcyBpcyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBwcm9j
ZXNzb3JfY2xhc3MoZXh0ZW5zaW9uX3JlcXVlc3QpCisKKworZGVmIGlzX2NvbXByZXNzaW9uX2V4
dGVuc2lvbihleHRlbnNpb25fbmFtZSk6CisgICAgcmV0dXJuIGV4dGVuc2lvbl9uYW1lIGluIF9j
b21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhYWQyN2Y1M2M0NmJlMmE3MWM3
MDRjNzA4ZmJiM2Y0MmYxYTNkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2Zhc3RfbWFza2luZy5pCkBAIC0wLDAgKzEsOTggQEAKKy8vIENvcHlyaWdodCAyMDEzLCBH
b29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCislbW9kdWxlIGZhc3RfbWFza2luZworCislaW5j
bHVkZSAiY3N0cmluZy5pIgorCisleworI2luY2x1ZGUgPGNzdHJpbmc+CisKKyNpZmRlZiBfX1NT
RTJfXworI2luY2x1ZGUgPGVtbWludHJpbi5oPgorI2VuZGlmCislfQorCislYXBwbHkgKGNoYXIg
KlNUUklORywgaW50IExFTkdUSCkgeworICAgIChjb25zdCBjaGFyKiBwYXlsb2FkLCBpbnQgcGF5
bG9hZF9sZW5ndGgpLAorICAgIChjb25zdCBjaGFyKiBtYXNraW5nX2tleSwgaW50IG1hc2tpbmdf
a2V5X2xlbmd0aCkgfTsKKyVjc3RyaW5nX291dHB1dF9hbGxvY2F0ZV9zaXplKAorICAgIGNoYXIq
KiByZXN1bHQsIGludCogcmVzdWx0X2xlbmd0aCwgZGVsZXRlIFtdICokMSk7CisKKyVpbmxpbmUg
JXsKKwordm9pZCBtYXNrKAorICAgIGNvbnN0IGNoYXIqIHBheWxvYWQsIGludCBwYXlsb2FkX2xl
bmd0aCwKKyAgICBjb25zdCBjaGFyKiBtYXNraW5nX2tleSwgaW50IG1hc2tpbmdfa2V5X2xlbmd0
aCwKKyAgICBpbnQgbWFza2luZ19rZXlfaW5kZXgsCisgICAgY2hhcioqIHJlc3VsdCwgaW50KiBy
ZXN1bHRfbGVuZ3RoKSB7CisgICpyZXN1bHQgPSBuZXcgY2hhcltwYXlsb2FkX2xlbmd0aF07Cisg
ICpyZXN1bHRfbGVuZ3RoID0gcGF5bG9hZF9sZW5ndGg7CisgIG1lbWNweSgqcmVzdWx0LCBwYXls
b2FkLCBwYXlsb2FkX2xlbmd0aCk7CisKKyAgY2hhciogY3Vyc29yID0gKnJlc3VsdDsKKyAgY2hh
ciogY3Vyc29yX2VuZCA9ICpyZXN1bHQgKyAqcmVzdWx0X2xlbmd0aDsKKworI2lmZGVmIF9fU1NF
Ml9fCisgIHdoaWxlICgoY3Vyc29yIDwgY3Vyc29yX2VuZCkgJiYKKyAgICAgICAgIChyZWludGVy
cHJldF9jYXN0PHNpemVfdD4oY3Vyc29yKSAmIDB4ZikpIHsKKyAgICAqY3Vyc29yIF49IG1hc2tp
bmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKKyAgICArK2N1cnNvcjsKKyAgICBtYXNraW5nX2tl
eV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwor
ICB9CisgIGlmIChjdXJzb3IgPT0gY3Vyc29yX2VuZCkgeworICAgIHJldHVybjsKKyAgfQorCisg
IGNvbnN0IGludCBrQmxvY2tTaXplID0gMTY7CisgIF9fbTEyOGkgbWFza2luZ19rZXlfYmxvY2s7
CisgIGZvciAoaW50IGkgPSAwOyBpIDwga0Jsb2NrU2l6ZTsgKytpKSB7CisgICAgKihyZWludGVy
cHJldF9jYXN0PGNoYXIqPigmbWFza2luZ19rZXlfYmxvY2spICsgaSkgPQorICAgICAgICBtYXNr
aW5nX2tleVttYXNraW5nX2tleV9pbmRleF07CisgICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFz
a2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKKyAgfQorCisgIHdoaWxl
IChjdXJzb3IgKyBrQmxvY2tTaXplIDw9IGN1cnNvcl9lbmQpIHsKKyAgICBfX20xMjhpIHBheWxv
YWRfYmxvY2sgPQorICAgICAgICBfbW1fbG9hZF9zaTEyOChyZWludGVycHJldF9jYXN0PF9fbTEy
OGkqPihjdXJzb3IpKTsKKyAgICBfbW1fc3RyZWFtX3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8X19t
MTI4aSo+KGN1cnNvciksCisgICAgICAgICAgICAgICAgICAgICBfbW1feG9yX3NpMTI4KHBheWxv
YWRfYmxvY2ssIG1hc2tpbmdfa2V5X2Jsb2NrKSk7CisgICAgY3Vyc29yICs9IGtCbG9ja1NpemU7
CisgIH0KKyNlbmRpZgorCisgIHdoaWxlIChjdXJzb3IgPCBjdXJzb3JfZW5kKSB7CisgICAgKmN1
cnNvciBePSBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07CisgICAgKytjdXJzb3I7Cisg
ICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdf
a2V5X2xlbmd0aDsKKyAgfQorfQorCislfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NGY2YjM5NWFlMjNiM2ExMzY0MWNkNGI5MDRmNTkz
NWQxZmExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvX19pbml0X18ucHkKQEAgLTAsMCArMSwxMTAgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIi
IldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuIFRoaXMgY2xhc3MgdHJ5IHRv
IGFwcGx5IGF2YWlsYWJsZQorb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29ycyBmb3IgZWFjaCBw
cm90b2NvbCB2ZXJzaW9uIHVudGlsIGEgY29ubmVjdGlvbiBpcworc3VjY2Vzc2Z1bGx5IGVzdGFi
bGlzaGVkLgorIiIiCisKKworaW1wb3J0IGxvZ2dpbmcKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJp
MDAKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQorIyBFeHBvcnQg
QWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgSGFuZHNoYWtlRXhjZXB0aW9uLCBhbmQgVmVyc2lvbkV4
Y2VwdGlvbgorIyBzeW1ib2wgZnJvbSB0aGlzIG1vZHVsZS4KK2Zyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KK2Zy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlv
bgorCisKK19MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitkZWYgZG9f
aGFuZHNoYWtlKHJlcXVlc3QsIGRpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1GYWxzZSwgc3RyaWN0
PUZhbHNlKToKKyAgICAiIiJQZXJmb3JtcyBXZWJTb2NrZXQgaGFuZHNoYWtlLgorCisgICAgQXJn
czoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICBkaXNwYXRj
aGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KKyAgICAgICAgYWxsb3dEcmFm
dDc1OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KKyAgICAgICAgc3RyaWN0OiBvYnNvbGV0
ZSBhcmd1bWVudC4gaWdub3JlZC4KKworICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRl
cyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKKyAgICBoYW5kc2hha2UuCisgICAg
IiIiCisKKyAgICBfTE9HR0VSLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgcmVz
b3VyY2U6ICVyJywgcmVxdWVzdC51cmkpCisgICAgIyBUbyBwcmludCBtaW1ldG9vbHMuTWVzc2Fn
ZSBhcyBlc2NhcGVkIG9uZS1saW5lIHN0cmluZywgd2UgY29udmVydHMKKyAgICAjIGhlYWRlcnNf
aW4gdG8gZGljdCBvYmplY3QuIFdpdGhvdXQgY29udmVyc2lvbiwgaWYgd2UgdXNlICVyLCBpdCBq
dXN0CisgICAgIyBwcmludHMgdGhlIHR5cGUgYW5kIGFkZHJlc3MsIGFuZCBpZiB3ZSB1c2UgJXMs
IGl0IHByaW50cyB0aGUgb3JpZ2luYWwKKyAgICAjIGhlYWRlciBzdHJpbmcgYXMgbXVsdGlwbGUg
bGluZXMuCisgICAgIworICAgICMgQm90aCBtaW1ldG9vbHMuTWVzc2FnZSBhbmQgTXBUYWJsZV9U
eXBlIG9mIG1vZF9weXRob24gY2FuIGJlCisgICAgIyBjb252ZXJ0ZWQgdG8gZGljdC4KKyAgICAj
CisgICAgIyBtaW1ldG9vbHMuTWVzc2FnZS5fX3N0cl9fIHJldHVybnMgdGhlIG9yaWdpbmFsIGhl
YWRlciBzdHJpbmcuCisgICAgIyBkaWN0KG1pbWV0b29scy5NZXNzYWdlIG9iamVjdCkgcmV0dXJu
cyB0aGUgbWFwIGZyb20gaGVhZGVyIG5hbWVzIHRvCisgICAgIyBoZWFkZXIgdmFsdWVzLiBXaGls
ZSBNcFRhYmxlX1R5cGUgZG9lc24ndCBoYXZlIHN1Y2ggX19zdHJfXyBidXQganVzdAorICAgICMg
X19yZXByX18gd2hpY2ggZm9ybWF0cyBpdHNlbGYgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5IG9iamVj
dC4KKyAgICBfTE9HR0VSLmRlYnVnKAorICAgICAgICAnQ2xpZW50XCdzIG9wZW5pbmcgaGFuZHNo
YWtlIGhlYWRlcnM6ICVyJywgZGljdChyZXF1ZXN0LmhlYWRlcnNfaW4pKQorCisgICAgaGFuZHNo
YWtlcnMgPSBbXQorICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKKyAgICAgICAgKCdSRkMgNjQ1NScs
IGh5YmkuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCisgICAgaGFuZHNoYWtlcnMu
YXBwZW5kKAorICAgICAgICAoJ0h5QmkgMDAnLCBoeWJpMDAuSGFuZHNoYWtlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKSkpCisKKyAgICBmb3IgbmFtZSwgaGFuZHNoYWtlciBpbiBoYW5kc2hha2VyczoK
KyAgICAgICAgX0xPR0dFUi5kZWJ1ZygnVHJ5aW5nIHByb3RvY29sIHZlcnNpb24gJXMnLCBuYW1l
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisg
ICAgICAgICAgICBfTE9HR0VSLmluZm8oJ0VzdGFibGlzaGVkICglcyBwcm90b2NvbCknLCBuYW1l
KQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24s
IGU6CisgICAgICAgICAgICBfTE9HR0VSLmRlYnVnKAorICAgICAgICAgICAgICAgICdGYWlsZWQg
dG8gY29tcGxldGUgb3BlbmluZyBoYW5kc2hha2UgYXMgJXMgcHJvdG9jb2w6ICVyJywKKyAgICAg
ICAgICAgICAgICBuYW1lLCBlKQorICAgICAgICAgICAgaWYgZS5zdGF0dXM6CisgICAgICAgICAg
ICAgICAgcmFpc2UgZQorICAgICAgICBleGNlcHQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToK
KyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9uLCBlOgor
ICAgICAgICAgICAgcmFpc2UKKworICAgICMgVE9ETyh0b3lvc2hpbSk6IEFkZCBhIHRlc3QgdG8g
Y292ZXIgdGhlIGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwuCisgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAorICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFuZHNoYWtl
IGZvciBhbGwgYXZhaWxhYmxlIHByb3RvY29scycsCisgICAgICAgIHN0YXR1cz1jb21tb24uSFRU
UF9TVEFUVVNfQkFEX1JFUVVFU1QpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk5M2E1ODRiN2IzZTUyYjYw
N2I2NWJmMzhhZmRjYWRkY2EyZmU3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQpAQCAtMCwwICsxLDE4MiBAQAorIyBDb3B5cmlnaHQg
MjAxMiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKworIiIiQ29tbW9uIGZ1bmN0aW9ucyBhbmQgZXhjZXB0aW9ucyB1c2VkIGJ5IFdlYlNv
Y2tldCBvcGVuaW5nIGhhbmRzaGFrZQorcHJvY2Vzc29ycy4KKyIiIgorCisKK2Zyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRw
X2hlYWRlcl91dGlsCisKKworY2xhc3MgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbihFeGNlcHRpb24p
OgorICAgICIiIkV4Y2VwdGlvbiBmb3IgYWJvcnRpbmcgYSBjb25uZWN0aW9uIGludGVudGlvbmFs
bHkuCisKKyAgICBJZiB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gZG9fZXh0cmFfaGFuZHNo
YWtlIGhhbmRsZXIsIHRoZSBjb25uZWN0aW9uCisgICAgd2lsbCBiZSBhYmFuZG9uZWQuIE5vIG90
aGVyIFdlYlNvY2tldCBvciBIVFRQKFMpIGhhbmRsZXIgd2lsbCBiZSBpbnZva2VkLgorCisgICAg
SWYgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGluIHRyYW5zZmVyX2RhdGFfaGFuZGxlciwgdGhl
IGNvbm5lY3Rpb24gd2lsbAorICAgIGJlIGNsb3NlZCB3aXRob3V0IGNsb3NpbmcgaGFuZHNoYWtl
LiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyCisgICAgd2lsbCBiZSBpbnZv
a2VkLgorICAgICIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEhhbmRzaGFrZUV4Y2VwdGlvbihF
eGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYW4g
ZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZworICAgIFdlYlNvY2tldCBpbml0aWFsIGhh
bmRzaGFrZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXM9
Tm9uZSk6CisgICAgICAgIHN1cGVyKEhhbmRzaGFrZUV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18o
bmFtZSkKKyAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKKworCitjbGFzcyBWZXJzaW9uRXhj
ZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQg
d2hlbiBhIHZlcnNpb24gb2YgY2xpZW50IHJlcXVlc3QgZG9lcyBub3QKKyAgICBtYXRjaCB3aXRo
IHZlcnNpb24gdGhlIHNlcnZlciBzdXBwb3J0cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBuYW1lLCBzdXBwb3J0ZWRfdmVyc2lvbnM9JycpOgorICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHN1cHBvcnRlZF92
ZXJzaW9uOiBhIHN0ciBvYmplY3QgdG8gc2hvdyBzdXBwb3J0ZWQgaHliaSB2ZXJzaW9ucy4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiAnOCwgMTMnKQorICAgICAgICAiIiIK
KyAgICAgICAgc3VwZXIoVmVyc2lvbkV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKKyAg
ICAgICAgc2VsZi5zdXBwb3J0ZWRfdmVyc2lvbnMgPSBzdXBwb3J0ZWRfdmVyc2lvbnMKKworCitk
ZWYgZ2V0X2RlZmF1bHRfcG9ydChpc19zZWN1cmUpOgorICAgIGlmIGlzX3NlY3VyZToKKyAgICAg
ICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQKKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCisKKworZGVm
IHZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKKyAgICAiIiJWYWxpZGF0ZSBhIHZh
bHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGZpZWxkLgorCisgICAgU2VlIHRoZSBT
ZWN0aW9uIDQuMS4sIDQuMi4yLiwgYW5kIDQuMy4gb2YgUkZDIDY0NTUuCisgICAgIiIiCisKKyAg
ICBpZiBub3Qgc3VicHJvdG9jb2w6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbign
SW52YWxpZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScpCisKKyAgICAjIFBhcmFtZXRlciBzaG91
bGQgYmUgZW5jb2RlZCBIVFRQIHRva2VuLgorICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5Q
YXJzaW5nU3RhdGUoc3VicHJvdG9jb2wpCisgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNv
bnN1bWVfdG9rZW4oc3RhdGUpCisgICAgcmVzdCA9IGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0
ZSkKKyAgICAjIElmIHxyZXN0fCBpcyBub3QgTm9uZSwgfHN1YnByb3RvY29sfCBpcyBub3Qgb25l
IHRva2VuIG9yIGludmFsaWQuIElmCisgICAgIyB8cmVzdHwgaXMgTm9uZSwgfHRva2VufCBtdXN0
IG5vdCBiZSBOb25lIGJlY2F1c2UgfHN1YnByb3RvY29sfCBpcworICAgICMgY29uY2F0ZW5hdGlv
biBvZiB8dG9rZW58IGFuZCB8cmVzdHwgYW5kIGlzIG5vdCBOb25lLgorICAgIGlmIHJlc3QgaXMg
bm90IE5vbmU6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBub24t
dG9rZW4gc3RyaW5nIGluIHN1YnByb3RvY29sICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICduYW1lOiAlcicgJSByZXN0KQorCisKK2RlZiBwYXJzZV9ob3N0X2hlYWRlcihyZXF1
ZXN0KToKKyAgICBmaWVsZHMgPSByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLkhPU1RfSEVBREVS
XS5zcGxpdCgnOicsIDEpCisgICAgaWYgbGVuKGZpZWxkcykgPT0gMToKKyAgICAgICAgcmV0dXJu
IGZpZWxkc1swXSwgZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpCisgICAgdHJ5
OgorICAgICAgICByZXR1cm4gZmllbGRzWzBdLCBpbnQoZmllbGRzWzFdKQorICAgIGV4Y2VwdCBW
YWx1ZUVycm9yLCBlOgorICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQg
cG9ydCBudW1iZXIgZm9ybWF0OiAlcicgJSBlKQorCisKK2RlZiBmb3JtYXRfaGVhZGVyKG5hbWUs
IHZhbHVlKToKKyAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKG5hbWUsIHZhbHVlKQorCisKK2Rl
ZiBnZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpOgorICAgIHZhbHVlID0gcmVxdWVz
dC5oZWFkZXJzX2luLmdldChrZXkpCisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIgJXMgaXMgbm90IGRlZmluZWQnICUga2V5KQor
ICAgIHJldHVybiB2YWx1ZQorCisKK2RlZiB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVl
c3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUsIGZhaWxfc3RhdHVzPU5vbmUpOgorICAgIHZhbHVlID0g
Z2V0X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5KQorCisgICAgaWYgdmFsdWUubG93ZXIo
KSAhPSBleHBlY3RlZF92YWx1ZS5sb3dlcigpOgorICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNl
cHRpb24oCisgICAgICAgICAgICAnRXhwZWN0ZWQgJXIgZm9yIGhlYWRlciAlcyBidXQgZm91bmQg
JXIgKGNhc2UtaW5zZW5zaXRpdmUpJyAlCisgICAgICAgICAgICAoZXhwZWN0ZWRfdmFsdWUsIGtl
eSwgdmFsdWUpLCBzdGF0dXM9ZmFpbF9zdGF0dXMpCisKKworZGVmIGNoZWNrX3JlcXVlc3RfbGlu
ZShyZXF1ZXN0KToKKyAgICAjIDUuMSAxLiBUaGUgdGhyZWUgY2hhcmFjdGVyIFVURi04IHN0cmlu
ZyAiR0VUIi4KKyAgICAjIDUuMSAyLiBBIFVURi04LWVuY29kZWQgVSswMDIwIFNQQUNFIGNoYXJh
Y3RlciAoMHgyMCBieXRlKS4KKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCAhPSAnR0VUJzoKKyAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdNZXRob2QgaXMgbm90IEdFVDogJXInICUgcmVx
dWVzdC5tZXRob2QpCisKKyAgICBpZiByZXF1ZXN0LnByb3RvY29sICE9ICdIVFRQLzEuMSc6Cisg
ICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignVmVyc2lvbiBpcyBub3QgSFRUUC8xLjE6
ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnByb3RvY29s
KQorCisKK2RlZiBwYXJzZV90b2tlbl9saXN0KGRhdGEpOgorICAgICIiIlBhcnNlcyBhIGhlYWRl
ciB2YWx1ZSB3aGljaCBmb2xsb3dzIDEjdG9rZW4gYW5kIHJldHVybnMgcGFyc2VkIGVsZW1lbnRz
CisgICAgYXMgYSBsaXN0IG9mIHN0cmluZ3MuCisKKyAgICBMZWFkaW5nIExXU2VzIG11c3QgYmUg
dHJpbW1lZC4KKyAgICAiIiIKKworICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5n
U3RhdGUoZGF0YSkKKworICAgIHRva2VuX2xpc3QgPSBbXQorCisgICAgd2hpbGUgVHJ1ZToKKyAg
ICAgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCisgICAg
ICAgIGlmIHRva2VuIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdG9rZW5fbGlzdC5hcHBlbmQo
dG9rZW4pCisKKyAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQor
CisgICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKKyAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9z
dHJpbmcoc3RhdGUsICcsJyk6CisgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24o
CisgICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlIGh0dHBf
aGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCisKKyAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25z
dW1lX2x3c2VzKHN0YXRlKQorCisgICAgaWYgbGVuKHRva2VuX2xpc3QpID09IDA6CisgICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTm8gdmFsaWQgdG9rZW4gZm91bmQnKQorCisgICAg
cmV0dXJuIHRva2VuX2xpc3QKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL2h5YmkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkMTBlYTM3MjgyOWQwOTNkNjZlNmFj
NjBhY2NjZDljMWNhZWZiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9oeWJpLnB5CkBAIC0wLDAgKzEsNDIwIEBACisjIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
CisiIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBm
b3IgdGhlIFdlYlNvY2tldAorcHJvdG9jb2wgKFJGQyA2NDU1KS4KKworU3BlY2lmaWNhdGlvbjoK
K2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKKyIiIgorCisKKyMgTm90ZTogcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlIGlzIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdo
IG1vZF9weXRob24KKyMgZG9jdW1lbnQgc2F5cyB0aGF0IGl0IHNob3VsZCBiZSB1c2VkIG9ubHkg
aW4gY29ubmVjdGlvbiBoYW5kbGVycy4KKyMgVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhl
ciBvcHRpb25zLiBGb3IgZXhhbXBsZSwgcmVxdWVzdC53cml0ZSBpcyBub3QKKyMgc3VpdGFibGUg
YmVjYXVzZSBpdCBkb2Vzbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMgd3JpdGluZy4KKworCitp
bXBvcnQgYmFzZTY0CitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0
ZW5zaW9ucyBpbXBvcnQgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29j
a2V0LmV4dGVuc2lvbnMgaW1wb3J0IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbgorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0X2xpbmUKK2Zy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0X2hlYWRlcgor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFuZGF0b3J5
X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5k
c2hha2VFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBv
cnQgcGFyc2VfdG9rZW5fbGlzdAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNl
IGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCitmcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KK2Zyb20gbW9k
X3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9weXdlYnNvY2tldC5z
dHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1
dGlsCisKKworIyBVc2VkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNvY2tl
dC1LZXkgaGVhZGVyIHN0cmljdGx5LiBSRkMgNDY0OAorIyBkaXNhbGxvd3Mgbm9uLXplcm8gcGFk
ZGluZywgc28gdGhlIGNoYXJhY3RlciByaWdodCBiZWZvcmUgPT0gbXVzdCBiZSBhbnkgb2YKKyMg
QSwgUSwgZyBhbmQgdy4KK19TRUNfV0VCU09DS0VUX0tFWV9SRUdFWCA9IHJlLmNvbXBpbGUoJ15b
Ky8wLTlBLVphLXpdezIxfVtBUWd3XT09JCcpCisKKyMgRGVmaW5pbmcgYWxpYXNlcyBmb3IgdmFs
dWVzIHVzZWQgZnJlcXVlbnRseS4KK19WRVJTSU9OX0xBVEVTVCA9IGNvbW1vbi5WRVJTSU9OX0hZ
QklfTEFURVNUCitfVkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3RyKF9WRVJTSU9OX0xBVEVTVCkK
K19TVVBQT1JURURfVkVSU0lPTlMgPSBbCisgICAgX1ZFUlNJT05fTEFURVNULAorXQorCisKK2Rl
ZiBjb21wdXRlX2FjY2VwdChrZXkpOgorICAgICIiIkNvbXB1dGVzIHZhbHVlIGZvciB0aGUgU2Vj
LVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyIGZyb20gdmFsdWUgb2YgdGhlCisgICAgU2VjLVdlYlNv
Y2tldC1LZXkgaGVhZGVyLgorICAgICIiIgorCisgICAgYWNjZXB0X2JpbmFyeSA9IHV0aWwuc2hh
MV9oYXNoKAorICAgICAgICBrZXkgKyBjb21tb24uV0VCU09DS0VUX0FDQ0VQVF9VVUlEKS5kaWdl
c3QoKQorICAgIGFjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYWNjZXB0X2JpbmFyeSkKKworICAg
IHJldHVybiAoYWNjZXB0LCBhY2NlcHRfYmluYXJ5KQorCisKK2NsYXNzIEhhbmRzaGFrZXIob2Jq
ZWN0KToKKyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2Nr
ZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0LCBkaXNwYXRjaGVyKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisg
ICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisg
ICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4K
KworICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNv
dXJjZSBkdXJpbmcgaGFuZHNoYWtlLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9yZXF1ZXN0
ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgorCisgICAg
ZGVmIF92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcihzZWxmKToKKyAgICAgICAgY29ubmVjdGlv
biA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwgY29t
bW9uLkNPTk5FQ1RJT05fSEVBREVSKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb25fdG9rZW5zID0gcGFyc2VfdG9rZW5fbGlzdChjb25uZWN0aW9uKQorICAgICAgICBleGNl
cHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgJXM6ICVzJyAlIChjb21t
b24uQ09OTkVDVElPTl9IRUFERVIsIGUpKQorCisgICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQg
PSBGYWxzZQorICAgICAgICBmb3IgdG9rZW4gaW4gY29ubmVjdGlvbl90b2tlbnM6CisgICAgICAg
ICAgICBpZiB0b2tlbi5sb3dlcigpID09IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRS5s
b3dlcigpOgorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQgPSBUcnVlCisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgbm90IGNvbm5lY3Rpb25faXNfdmFsaWQ6Cisg
ICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJyVz
IGhlYWRlciBkb2VzblwndCBjb250YWluICIlcyInICUKKyAgICAgICAgICAgICAgICAoY29tbW9u
LkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQorCisg
ICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9z
ZV9jb2RlID0gTm9uZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9IE5v
bmUKKworICAgICAgICAjIFBhcnNpbmcuCisKKyAgICAgICAgY2hlY2tfcmVxdWVzdF9saW5lKHNl
bGYuX3JlcXVlc3QpCisKKyAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKKyAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3QsCisgICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIs
CisgICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKKworICAgICAgICBz
ZWxmLl92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcigpCisKKyAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCisKKyAgICAgICAgdW51c2VkX2hvc3Qg
PSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBjb21tb24uSE9TVF9IRUFERVIp
CisKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5fY2hlY2tfdmVyc2lv
bigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fZ2V0X29yaWdpbigpCisgICAg
ICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2woKQorICAgICAgICAgICAgc2VsZi5fcGFyc2VfZXh0
ZW5zaW9ucygpCisKKyAgICAgICAgICAgICMgS2V5IHZhbGlkYXRpb24sIHJlc3BvbnNlIGdlbmVy
YXRpb24uCisKKyAgICAgICAgICAgIGtleSA9IHNlbGYuX2dldF9rZXkoKQorICAgICAgICAgICAg
KGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkgPSBjb21wdXRlX2FjY2VwdChrZXkpCisgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJyVzOiAlciAoJXMpJywKKyAg
ICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLAorICAgICAg
ICAgICAgICAgIGFjY2VwdCwKKyAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShhY2NlcHRfYmlu
YXJ5KSkKKworICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJzaW9u
IGlzIFJGQyA2NDU1JykKKworICAgICAgICAgICAgIyBTZXR1cCBleHRlbnNpb24gcHJvY2Vzc29y
cy4KKworICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFtdCisgICAgICAgICAgICBpZiBzZWxmLl9y
ZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9l
eHRlbnNpb25zOgorICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBnZXRfZXh0ZW5zaW9u
X3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICAgIyBVbmtu
b3duIGV4dGVuc2lvbiByZXF1ZXN0cyBhcmUganVzdCBpZ25vcmVkLgorICAgICAgICAgICAgICAg
ICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gcHJvY2Vzc29ycworCisgICAgICAgICAgICAjIExpc3Qg
b2YgZXh0cmEgaGVhZGVycy4gVGhlIGV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBhZGQgaGVh
ZGVyCisgICAgICAgICAgICAjIGRhdGEgYXMgbmFtZS92YWx1ZSBwYWlycyB0byB0aGlzIGxpc3Qg
YW5kIHB5d2Vic29ja2V0IGFwcGVuZHMKKyAgICAgICAgICAgICMgdGhlbSB0byB0aGUgV2ViU29j
a2V0IGhhbmRzaGFrZS4KKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVycyA9
IFtdCisKKyAgICAgICAgICAgICMgRXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IG1vZGlmeS9y
ZW1vdmUgcHJvY2Vzc29ycy4KKyAgICAgICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0cmFf
aGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCisgICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVy
KGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3NvciBpcyBub3QgTm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykK
KworICAgICAgICAgICAgIyBBc2sgZWFjaCBwcm9jZXNzb3IgaWYgdGhlcmUgYXJlIGV4dGVuc2lv
bnMgb24gdGhlIHJlcXVlc3Qgd2hpY2gKKyAgICAgICAgICAgICMgY2Fubm90IGNvLWV4aXN0LiBX
aGVuIHByb2Nlc3NvciBkZWNpZGVkIG90aGVyIHByb2Nlc3NvcnMgY2Fubm90CisgICAgICAgICAg
ICAjIGNvLWV4aXN0IHdpdGggaXQsIHRoZSBwcm9jZXNzb3IgbWFya3MgdGhlbSAob3IgaXRzZWxm
KSBhcworICAgICAgICAgICAgIyAiaW5hY3RpdmUiLiBUaGUgZmlyc3QgZXh0ZW5zaW9uIHByb2Nl
c3NvciBoYXMgdGhlIHJpZ2h0IHRvCisgICAgICAgICAgICAjIG1ha2UgdGhlIGZpbmFsIGNhbGwu
CisgICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHJldmVyc2VkKHByb2Nlc3NvcnMpOgorICAg
ICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5pc19hY3RpdmUoKToKKyAgICAgICAgICAgICAgICAg
ICAgcHJvY2Vzc29yLmNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycygKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCisgICAgICAgICAgICBwcm9jZXNzb3Jz
ID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKKworICAgICAgICAgICAgYWNj
ZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCisKKyAgICAgICAgICAgICMgV2UgbmVlZCB0byB0YWtlIGlu
dG8gYWNjb3VudCBvZiBtdXggZXh0ZW5zaW9uIGhlcmUuCisgICAgICAgICAgICAjIElmIG11eCBl
eHRlbnNpb24gZXhpc3RzOgorICAgICAgICAgICAgIyAtIFJlbW92ZSBwcm9jZXNzb3JzIG9mIGV4
dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbCwKKyAgICAgICAgICAgICMgICB3aGljaCBhcmUg
cHJvY2Vzc29ycyBsb2NhdGVkIGJlZm9yZSB0aGUgbXV4IHByb2Nlc3NvcgorICAgICAgICAgICAg
IyAtIFBhc3MgZXh0ZW5zaW9uIHJlcXVlc3RzIGZvciBsb2dpY2FsIGNoYW5uZWwgdG8gbXV4IHBy
b2Nlc3NvcgorICAgICAgICAgICAgIyAtIEF0dGFjaCB0aGUgbXV4IHByb2Nlc3NvciB0byB0aGUg
cmVxdWVzdC4gSXQgd2lsbCBiZSByZWZlcnJlZAorICAgICAgICAgICAgIyAgIGJ5IGRpc3BhdGNo
ZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGRpc3BhdGNoZXIgc2hvdWxkIHVzZSBtdXgKKyAgICAgICAg
ICAgICMgICBoYW5kbGVyIG9yIG5vdC4KKyAgICAgICAgICAgIG11eF9pbmRleCA9IC0xCisgICAg
ICAgICAgICBmb3IgaSwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToKKyAgICAg
ICAgICAgICAgICBpZiBwcm9jZXNzb3IubmFtZSgpID09IGNvbW1vbi5NVVhfRVhURU5TSU9OOgor
ICAgICAgICAgICAgICAgICAgICBtdXhfaW5kZXggPSBpCisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICBpZiBtdXhfaW5kZXggPj0gMDoKKyAgICAgICAgICAgICAgICBsb2dp
Y2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIHByb2Nlc3Nv
ciBpbiBwcm9jZXNzb3JzWzptdXhfaW5kZXhdOgorICAgICAgICAgICAgICAgICAgICBsb2dpY2Fs
X2NoYW5uZWxfZXh0ZW5zaW9ucy5hcHBlbmQocHJvY2Vzc29yLnJlcXVlc3QoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcHJvY2Vzc29yLnNldF9hY3RpdmUoRmFsc2UpCisgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gcHJvY2Vzc29yc1ttdXhfaW5kZXhdCisgICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25zKAor
ICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKKyAgICAgICAg
ICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5p
c19hY3RpdmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nv
cnMpCisKKyAgICAgICAgICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCisKKyAg
ICAgICAgICAgIGZvciBpbmRleCwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToK
KyAgICAgICAgICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uX3Jlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICAgICAgICAgIGlm
IGV4dGVuc2lvbl9yZXNwb25zZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAjIFJlamVj
dGVkLgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgYWNj
ZXB0ZWRfZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uX3Jlc3BvbnNlKQorCisgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQorCisg
ICAgICAgICAgICAgICAgaWYgbm90IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihwcm9jZXNzb3Iu
bmFtZSgpKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAg
ICMgSW5hY3RpdmF0ZSBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb21wcmVzc2lvbiBleHRlbnNpb25z
LgorICAgICAgICAgICAgICAgIGZvciBqIGluIHhyYW5nZShpbmRleCArIDEsIGxlbihwcm9jZXNz
b3JzKSk6CisgICAgICAgICAgICAgICAgICAgIGlmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihw
cm9jZXNzb3JzW2pdLm5hbWUoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3Jz
W2pdLnNldF9hY3RpdmUoRmFsc2UpCisKKyAgICAgICAgICAgIGlmIGxlbihhY2NlcHRlZF9leHRl
bnNpb25zKSA+IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25z
ID0gYWNjZXB0ZWRfZXh0ZW5zaW9ucworICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKKyAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbnMgYWNjZXB0ZWQ6ICVyJywKKyAgICAg
ICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwgYWNjZXB0
ZWRfZXh0ZW5zaW9ucykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5vbmUKKworICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9vcHRpb25zKQorCisgICAg
ICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBOb25l
OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAg
ICAgICAgICAgICAgICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3QgY2hvb3NlIG9uZSBzdWJw
cm90b2NvbCBmcm9tICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd3c19yZXF1ZXN0ZWRfcHJv
dG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQorICAgICAgICAgICAgICAgIHZhbGlk
YXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICdTdWJwcm90b2Nv
bCBhY2NlcHRlZDogJXInLAorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3By
b3RvY29sKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1
ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBI
YW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAnd3NfcHJvdG9jb2wg
bXVzdCBiZSBOb25lIHdoZW4gdGhlIGNsaWVudCBkaWRuXCd0ICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdyZXF1ZXN0IGFueSBzdWJwcm90b2NvbCcpCisKKyAgICAgICAgICAgIHNlbGYuX3Nl
bmRfaGFuZHNoYWtlKGFjY2VwdCkKKyAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwg
ZToKKyAgICAgICAgICAgIGlmIG5vdCBlLnN0YXR1czoKKyAgICAgICAgICAgICAgICAjIEZhbGxi
YWNrIHRvIDQwMCBiYWQgcmVxdWVzdCBieSBkZWZhdWx0LgorICAgICAgICAgICAgICAgIGUuc3Rh
dHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCisgICAgICAgICAgICByYWlzZSBl
CisKKyAgICBkZWYgX2dldF9vcmlnaW4oc2VsZik6CisgICAgICAgIG9yaWdpbl9oZWFkZXIgPSBj
b21tb24uT1JJR0lOX0hFQURFUgorICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRl
cnNfaW4uZ2V0KG9yaWdpbl9oZWFkZXIpCisgICAgICAgIGlmIG9yaWdpbiBpcyBOb25lOgorICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgcmVxdWVzdCBkb2VzIG5vdCBoYXZl
IG9yaWdpbiBoZWFkZXInKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9yaWdp
bgorCisgICAgZGVmIF9jaGVja192ZXJzaW9uKHNlbGYpOgorICAgICAgICB2ZXJzaW9uID0gZ2V0
X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKQorICAg
ICAgICBpZiB2ZXJzaW9uID09IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6CisgICAgICAgICAgICBy
ZXR1cm4gX1ZFUlNJT05fTEFURVNUCisKKyAgICAgICAgaWYgdmVyc2lvbi5maW5kKCcsJykgPj0g
MDoKKyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAnTXVsdGlwbGUgdmVyc2lvbnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9yIGhlYWRlciAlcycg
JQorICAgICAgICAgICAgICAgICh2ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9O
X0hFQURFUiksCisgICAgICAgICAgICAgICAgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURf
UkVRVUVTVCkKKyAgICAgICAgcmFpc2UgVmVyc2lvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICdV
bnN1cHBvcnRlZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUKKyAgICAgICAgICAgICh2ZXJz
aW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiksCisgICAgICAgICAgICBz
dXBwb3J0ZWRfdmVyc2lvbnM9JywgJy5qb2luKG1hcChzdHIsIF9TVVBQT1JURURfVkVSU0lPTlMp
KSkKKworICAgIGRlZiBfc2V0X3Byb3RvY29sKHNlbGYpOgorICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3Byb3RvY29sID0gTm9uZQorCisgICAgICAgIHByb3RvY29sX2hlYWRlciA9IHNlbGYuX3Jl
cXVlc3QuaGVhZGVyc19pbi5nZXQoCisgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9Q
Uk9UT0NPTF9IRUFERVIpCisKKyAgICAgICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5vbmU6Cisg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBOb25lCisg
ICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9w
cm90b2NvbHMgPSBwYXJzZV90b2tlbl9saXN0KAorICAgICAgICAgICAgcHJvdG9jb2xfaGVhZGVy
KQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0ZWQ6ICVy
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVk
X3Byb3RvY29scykKKworICAgIGRlZiBfcGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAgICAg
ZXh0ZW5zaW9uc19oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAorICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIpCisgICAgICAgIGlm
IG5vdCBleHRlbnNpb25zX2hlYWRlcjoKKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVx
dWVzdGVkX2V4dGVuc2lvbnMgPSBOb25lCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB0
cnk6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0g
Y29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uc19oZWFk
ZXIpCisgICAgICAgIGV4Y2VwdCBjb21tb24uRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgZToK
KyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAn
RmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXI6ICVyJyAlIGUp
CisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0V4dGVuc2lvbnMg
cmVxdWVzdGVkOiAlcicsCisgICAgICAgICAgICBtYXAoY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
ci5uYW1lLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVu
c2lvbnMpKQorCisgICAgZGVmIF92YWxpZGF0ZV9rZXkoc2VsZiwga2V5KToKKyAgICAgICAgaWYg
a2V5LmZpbmQoJywnKSA+PSAwOgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9u
KCdSZXF1ZXN0IGhhcyBtdWx0aXBsZSAlcyBoZWFkZXIgbGluZXMgb3IgJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlciBcJyxc
JzogJXInICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbW9uLlNF
Q19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKKworICAgICAgICAjIFZhbGlkYXRlCisgICAg
ICAgIGtleV9pc192YWxpZCA9IEZhbHNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgVmFs
aWRhdGUga2V5IGJ5IHF1aWNrIHJlZ2V4IG1hdGNoIGJlZm9yZSBwYXJzaW5nIGJ5IGJhc2U2NAor
ICAgICAgICAgICAgIyBtb2R1bGUuIEJlY2F1c2UgYmFzZTY0IG1vZHVsZSBza2lwcyBpbnZhbGlk
IGNoYXJhY3RlcnMsIHdlIGhhdmUKKyAgICAgICAgICAgICMgdG8gZG8gdGhpcyBpbiBhZHZhbmNl
IHRvIG1ha2UgdGhpcyBzZXJ2ZXIgc3RyaWN0bHkgcmVqZWN0IGlsbGVnYWwKKyAgICAgICAgICAg
ICMga2V5cy4KKyAgICAgICAgICAgIGlmIF9TRUNfV0VCU09DS0VUX0tFWV9SRUdFWC5tYXRjaChr
ZXkpOgorICAgICAgICAgICAgICAgIGRlY29kZWRfa2V5ID0gYmFzZTY0LmI2NGRlY29kZShrZXkp
CisgICAgICAgICAgICAgICAgaWYgbGVuKGRlY29kZWRfa2V5KSA9PSAxNjoKKyAgICAgICAgICAg
ICAgICAgICAga2V5X2lzX3ZhbGlkID0gVHJ1ZQorICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBl
OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIG5vdCBrZXlfaXNfdmFsaWQ6CisgICAg
ICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0lsbGVn
YWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXInICUKKyAgICAgICAgICAgICAgICAoY29tbW9uLlNF
Q19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKKworICAgICAgICByZXR1cm4gZGVjb2RlZF9r
ZXkKKworICAgIGRlZiBfZ2V0X2tleShzZWxmKToKKyAgICAgICAga2V5ID0gZ2V0X21hbmRhdG9y
eV9oZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uU0VDX1dFQlNPQ0tF
VF9LRVlfSEVBREVSKQorCisgICAgICAgIGRlY29kZWRfa2V5ID0gc2VsZi5fdmFsaWRhdGVfa2V5
KGtleSkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnJXM6ICVy
ICglcyknLAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwKKyAg
ICAgICAgICAgIGtleSwKKyAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGRlY29kZWRfa2V5KSkKKwor
ICAgICAgICByZXR1cm4ga2V5CisKKyAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFt
X29wdGlvbnMpOgorICAgICAgICByZXR1cm4gU3RyZWFtKHNlbGYuX3JlcXVlc3QsIHN0cmVhbV9v
cHRpb25zKQorCisgICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYsIGFjY2Vw
dCk6CisgICAgICAgIHJlc3BvbnNlID0gW10KKworICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hU
VFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCisKKyAgICAgICAgIyBXZWJTb2Nr
ZXQgaGVhZGVycworICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAgICAg
ICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZ
UEUpKQorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAgICAgICAgICAg
IGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBF
KSkKKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisgICAgICAgICAgICBj
b21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQorICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJT
T0NLRVRfUFJPVE9DT0xfSEVBREVSLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
cHJvdG9jb2wpKQorICAgICAgICBpZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5v
dCBOb25lIGFuZAorICAgICAgICAgICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykg
IT0gMCk6CisgICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAgICAg
ICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKKyAgICAg
ICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53c19leHRl
bnNpb25zKSkpCisKKyAgICAgICAgIyBIZWFkZXJzIG5vdCBzcGVjaWZpYyBmb3IgV2ViU29ja2V0
CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hlYWRlcnM6
CisgICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1ZSkp
CisKKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKKworICAgICAgICByZXR1cm4gJycu
am9pbihyZXNwb25zZSkKKworICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToK
KyAgICAgICAgcmF3X3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShh
Y2NlcHQpCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVzcG9u
c2UpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3BlbmluZyBo
YW5kc2hha2U6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNwb25zZSkK
KworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aTAwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3NTc3MTdhNjM5YmFjM2RiMDVkNGNiMzAyN2UwNTVmZGJmN2Yz
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aTAwLnB5CkBAIC0wLDAgKzEsMjkzIEBACisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgor
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUaGlzIGZp
bGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNv
Y2tldAorcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgorCitTcGVjaWZpY2F0aW9uOgoraHR0cDov
L3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29s
LTAwCisiIiIKKworCisjIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1
c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAorIyBtb2RfcHl0aG9uIGRvY3VtZW50IHNh
eXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgorIyBoYW5kbGVy
cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwK
KyMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0
IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKKyMgd3JpdGluZy9yZWFkaW5nLgorCisKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdHJ1Y3QKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1I
aXhpZTc1Citmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KK2Zyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCitm
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIK
K2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X2RlZmF1bHRf
cG9ydAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFu
ZGF0b3J5X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBwYXJzZV9ob3N0X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNl
IGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCisKKworX01BTkRBVE9SWV9IRUFERVJT
ID0gWworICAgICMga2V5LCBleHBlY3RlZCB2YWx1ZSBvciBOb25lCisgICAgW2NvbW1vbi5VUEdS
QURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NV0sCisgICAg
W2NvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBF
XSwKK10KKworCitkZWYgX3ZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKKyAgICAi
IiJDaGVja3MgaWYgY2hhcmFjdGVycyBpbiBzdWJwcm90b2NvbCBhcmUgaW4gcmFuZ2UgYmV0d2Vl
biBVKzAwMjAgYW5kCisgICAgVSswMDdFLiBBIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVBy
b3RvY29sIGZpZWxkIG5lZWQgdG8gc2F0aXNmeSB0aGlzCisgICAgcmVxdWlyZW1lbnQuCisKKyAg
ICBTZWUgdGhlIFNlY3Rpb24gNC4xLiBPcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgc3BlYy4KKyAg
ICAiIiIKKworICAgIGlmIG5vdCBzdWJwcm90b2NvbDoKKyAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKCdJbnZhbGlkIHN1YnByb3RvY29sIG5hbWU6IGVtcHR5JykKKworICAgICMgUGFy
YW1ldGVyIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgVSswMDIwIHRvIFUrMDA3RS4KKyAgICBmb3Ig
YyBpbiBzdWJwcm90b2NvbDoKKyAgICAgICAgaWYgbm90IDB4MjAgPD0gb3JkKGMpIDw9IDB4N2U6
CisgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
J0lsbGVnYWwgY2hhcmFjdGVyIGluIHN1YnByb3RvY29sIG5hbWU6ICVyJyAlIGMpCisKKworZGVm
IF9jaGVja19oZWFkZXJfbGluZXMocmVxdWVzdCwgbWFuZGF0b3J5X2hlYWRlcnMpOgorICAgIGNo
ZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KQorCisgICAgIyBUaGUgZXhwZWN0ZWQgZmllbGQgbmFt
ZXMsIGFuZCB0aGUgbWVhbmluZyBvZiB0aGVpciBjb3JyZXNwb25kaW5nCisgICAgIyB2YWx1ZXMs
IGFyZSBhcyBmb2xsb3dzLgorICAgICMgIHxVcGdyYWRlfCBhbmQgfENvbm5lY3Rpb258CisgICAg
Zm9yIGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gbWFuZGF0b3J5X2hlYWRlcnM6CisgICAgICAgIHZh
bGlkYXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5LCBleHBlY3RlZF92YWx1ZSkKKwor
CitkZWYgX2J1aWxkX2xvY2F0aW9uKHJlcXVlc3QpOgorICAgICIiIkJ1aWxkIFdlYlNvY2tldCBs
b2NhdGlvbiBmb3IgcmVxdWVzdC4iIiIKKworICAgIGxvY2F0aW9uX3BhcnRzID0gW10KKyAgICBp
ZiByZXF1ZXN0LmlzX2h0dHBzKCk6CisgICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChjb21t
b24uV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FKQorICAgIGVsc2U6CisgICAgICAgIGxvY2F0aW9u
X3BhcnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TQ0hFTUUpCisgICAgbG9jYXRpb25fcGFy
dHMuYXBwZW5kKCc6Ly8nKQorICAgIGhvc3QsIHBvcnQgPSBwYXJzZV9ob3N0X2hlYWRlcihyZXF1
ZXN0KQorICAgIGNvbm5lY3Rpb25fcG9ydCA9IHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRy
WzFdCisgICAgaWYgcG9ydCAhPSBjb25uZWN0aW9uX3BvcnQ6CisgICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbignSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaDogJWQvJWQnICUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3J0LCBjb25uZWN0aW9uX3BvcnQp
KQorICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChob3N0KQorICAgIGlmIChwb3J0ICE9IGdldF9k
ZWZhdWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKSk6CisgICAgICAgIGxvY2F0aW9uX3BhcnRz
LmFwcGVuZCgnOicpCisgICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChzdHIocG9ydCkpCisg
ICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHJlcXVlc3QudW5wYXJzZWRfdXJpKQorICAgIHJldHVy
biAnJy5qb2luKGxvY2F0aW9uX3BhcnRzKQorCisKK2NsYXNzIEhhbmRzaGFrZXIob2JqZWN0KToK
KyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJv
dG9jb2wgdmVyc2lvbiBIeUJpIDAwLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlcXVlc3QsIGRpc3BhdGNoZXIpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2Uu
CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVz
dC4KKyAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNo
ZXIpLgorCisgICAgICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdz
X3Jlc291cmNlIGluIHBlcmZvcm1pbmcKKyAgICAgICAgaGFuZHNoYWtlLgorICAgICAgICAiIiIK
KworICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKwor
ICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9kaXNwYXRjaGVy
ID0gZGlzcGF0Y2hlcgorCisgICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgIiIi
UGVyZm9ybSBXZWJTb2NrZXQgSGFuZHNoYWtlLgorCisgICAgICAgIE9uIF9yZXF1ZXN0LCB3ZSBz
ZXQKKyAgICAgICAgICAgIHdzX3Jlc291cmNlLCB3c19wcm90b2NvbCwgd3NfbG9jYXRpb24sIHdz
X29yaWdpbiwgd3NfY2hhbGxlbmdlLAorICAgICAgICAgICAgd3NfY2hhbGxlbmdlX21kNTogV2Vi
U29ja2V0IGhhbmRzaGFrZSBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgIHdzX3N0cmVhbTogRnJh
bWUgZ2VuZXJhdGlvbi9wYXJzaW5nIGNsYXNzLgorICAgICAgICAgICAgd3NfdmVyc2lvbjogUHJv
dG9jb2wgdmVyc2lvbi4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBIYW5kc2hha2VF
eGNlcHRpb246IHdoZW4gYW55IGVycm9yIGhhcHBlbmVkIGluIHBhcnNpbmcgdGhlIG9wZW5pbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIHJlcXVlc3QuCisgICAg
ICAgICIiIgorCisgICAgICAgICMgNS4xIFJlYWRpbmcgdGhlIGNsaWVudCdzIG9wZW5pbmcgaGFu
ZHNoYWtlLgorICAgICAgICAjIGRpc3BhdGNoZXIgc2V0cyBpdCBpbiBzZWxmLl9yZXF1ZXN0Lgor
ICAgICAgICBfY2hlY2tfaGVhZGVyX2xpbmVzKHNlbGYuX3JlcXVlc3QsIF9NQU5EQVRPUllfSEVB
REVSUykKKyAgICAgICAgc2VsZi5fc2V0X3Jlc291cmNlKCkKKyAgICAgICAgc2VsZi5fc2V0X3N1
YnByb3RvY29sKCkKKyAgICAgICAgc2VsZi5fc2V0X2xvY2F0aW9uKCkKKyAgICAgICAgc2VsZi5f
c2V0X29yaWdpbigpCisgICAgICAgIHNlbGYuX3NldF9jaGFsbGVuZ2VfcmVzcG9uc2UoKQorICAg
ICAgICBzZWxmLl9zZXRfcHJvdG9jb2xfdmVyc2lvbigpCisKKyAgICAgICAgc2VsZi5fZGlzcGF0
Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKKworICAgICAgICBzZWxmLl9z
ZW5kX2hhbmRzaGFrZSgpCisKKyAgICBkZWYgX3NldF9yZXNvdXJjZShzZWxmKToKKyAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCisKKyAgICBkZWYg
X3NldF9zdWJwcm90b2NvbChzZWxmKToKKyAgICAgICAgIyB8U2VjLVdlYlNvY2tldC1Qcm90b2Nv
bHwKKyAgICAgICAgc3VicHJvdG9jb2wgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAor
ICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSKQorICAgICAg
ICBpZiBzdWJwcm90b2NvbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJw
cm90b2NvbChzdWJwcm90b2NvbCkKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCA9
IHN1YnByb3RvY29sCisKKyAgICBkZWYgX3NldF9sb2NhdGlvbihzZWxmKToKKyAgICAgICAgIyB8
SG9zdHwKKyAgICAgICAgaG9zdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9u
LkhPU1RfSEVBREVSKQorICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbiA9IF9idWlsZF9sb2NhdGlvbihzZWxmLl9yZXF1ZXN0
KQorICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIGhvc3QgaXMgdGhpcyBob3N0LgorCisgICAg
ZGVmIF9zZXRfb3JpZ2luKHNlbGYpOgorICAgICAgICAjIHxPcmlnaW58CisgICAgICAgIG9yaWdp
biA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLk9SSUdJTl9IRUFERVIpCisg
ICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3Nfb3JpZ2luID0gb3JpZ2luCisKKyAgICBkZWYgX3NldF9wcm90b2NvbF92ZXJzaW9uKHNlbGYp
OgorICAgICAgICAjIHxTZWMtV2ViU29ja2V0LURyYWZ0fAorICAgICAgICBkcmFmdCA9IHNlbGYu
X3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVS
KQorICAgICAgICBpZiBkcmFmdCBpcyBub3QgTm9uZSBhbmQgZHJhZnQgIT0gJzAnOgorICAgICAg
ICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbGxlZ2FsIHZhbHVlIGZvciAlczogJXMn
ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJT
T0NLRVRfRFJBRlRfSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkcmFmdCkpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJzaW9u
IGlzIEh5QmkgMDAnKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24gPSBjb21tb24u
VkVSU0lPTl9IWUJJMDAKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW1I
aXhpZTc1KHNlbGYuX3JlcXVlc3QsIFRydWUpCisKKyAgICBkZWYgX3NldF9jaGFsbGVuZ2VfcmVz
cG9uc2Uoc2VsZik6CisgICAgICAgICMgNS4yIDQtOC4KKyAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19jaGFsbGVuZ2UgPSBzZWxmLl9nZXRfY2hhbGxlbmdlKCkKKyAgICAgICAgIyA1LjIgOS4gbGV0
IC9yZXNwb25zZS8gYmUgdGhlIE1ENSBmaW50ZXJwcmludCBvZiAvY2hhbGxlbmdlLworICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUgPSB1dGlsLm1kNV9oYXNoKAorICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpLmRpZ2VzdCgpCisgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLAorICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UsCisgICAgICAgICAgICB1dGlsLmhleGlm
eShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKKyAgICAgICAgICAgICdDaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAorICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1LAorICAgICAgICAgICAgdXRpbC5oZXhp
Znkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1KSkKKworICAgIGRlZiBfZ2V0X2tleV92
YWx1ZShzZWxmLCBrZXlfZmllbGQpOgorICAgICAgICBrZXlfdmFsdWUgPSBnZXRfbWFuZGF0b3J5
X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBrZXlfZmllbGQpCisKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCclczogJXInLCBrZXlfZmllbGQsIGtleV92YWx1ZSkKKworICAgICAgICAjIDUuMiA0
LiBsZXQgL2tleS1udW1iZXJfbi8gYmUgdGhlIGRpZ2l0cyAoY2hhcmFjdGVycyBpbiB0aGUgcmFu
Z2UKKyAgICAgICAgIyBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8gVSswMDM5IERJR0lUIE5JTkUg
KDkpKSBpbiAva2V5X24vLAorICAgICAgICAjIGludGVycHJldGVkIGFzIGEgYmFzZSB0ZW4gaW50
ZWdlciwgaWdub3JpbmcgYWxsIG90aGVyIGNoYXJhY3RlcnMKKyAgICAgICAgIyBpbiAva2V5X24v
LgorICAgICAgICB0cnk6CisgICAgICAgICAgICBrZXlfbnVtYmVyID0gaW50KHJlLnN1YigiXFxE
IiwgIiIsIGtleV92YWx1ZSkpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gZGlnaXQnICUga2V5X2ZpZWxk
KQorICAgICAgICAjIDUuMiA1LiBsZXQgL3NwYWNlc19uLyBiZSB0aGUgbnVtYmVyIG9mIFUrMDAy
MCBTUEFDRSBjaGFyYWN0ZXJzCisgICAgICAgICMgaW4gL2tleV9uLy4KKyAgICAgICAgc3BhY2Vz
ID0gcmUuc3VibigiICIsICIiLCBrZXlfdmFsdWUpWzFdCisgICAgICAgIGlmIHNwYWNlcyA9PSAw
OgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBmaWVsZCBjb250YWlu
cyBubyBzcGFjZScgJSBrZXlfZmllbGQpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAor
ICAgICAgICAgICAgJyVzOiBLZXktbnVtYmVyIGlzICVkIGFuZCBudW1iZXIgb2Ygc3BhY2VzIGlz
ICVkJywKKyAgICAgICAgICAgIGtleV9maWVsZCwga2V5X251bWJlciwgc3BhY2VzKQorCisgICAg
ICAgICMgNS4yIDYuIGlmIC9rZXktbnVtYmVyX24vIGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0aXBs
ZSBvZiAvc3BhY2VzX24vCisgICAgICAgICMgdGhlbiBhYm9ydCB0aGUgV2ViU29ja2V0IGNvbm5l
Y3Rpb24uCisgICAgICAgIGlmIGtleV9udW1iZXIgJSBzcGFjZXMgIT0gMDoKKyAgICAgICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnJXM6IEtleS1udW1i
ZXIgKCVkKSBpcyBub3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2Ygc3BhY2VzICcKKyAgICAgICAg
ICAgICAgICAnKCVkKScgJSAoa2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMpKQorICAgICAg
ICAjIDUuMiA3LiBsZXQgL3BhcnRfbi8gYmUgL2tleS1udW1iZXJfbi8gZGl2aWRlZCBieSAvc3Bh
Y2VzX24vLgorICAgICAgICBwYXJ0ID0ga2V5X251bWJlciAvIHNwYWNlcworICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJyVzOiBQYXJ0IGlzICVkJywga2V5X2ZpZWxkLCBwYXJ0KQorICAgICAg
ICByZXR1cm4gcGFydAorCisgICAgZGVmIF9nZXRfY2hhbGxlbmdlKHNlbGYpOgorICAgICAgICAj
IDUuMiA0LTcuCisgICAgICAgIGtleTEgPSBzZWxmLl9nZXRfa2V5X3ZhbHVlKGNvbW1vbi5TRUNf
V0VCU09DS0VUX0tFWTFfSEVBREVSKQorICAgICAgICBrZXkyID0gc2VsZi5fZ2V0X2tleV92YWx1
ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUikKKyAgICAgICAgIyA1LjIgOC4gbGV0
IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9wYXJ0XzEvLAorICAgICAgICBj
aGFsbGVuZ2UgPSAnJworICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5
MSkgICMgbmV0d29yayBieXRlb3JkZXIgaW50CisgICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3Qu
cGFjaygnIUknLCBrZXkyKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKKyAgICAgICAgY2hhbGxl
bmdlICs9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKDgpCisgICAgICAgIHJldHVybiBj
aGFsbGVuZ2UKKworICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZik6CisgICAgICAgIHJlc3Bv
bnNlID0gW10KKworICAgICAgICAjIDUuMiAxMC4gc2VuZCB0aGUgZm9sbG93aW5nIGxpbmUuCisg
ICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBI
YW5kc2hha2VcclxuJykKKworICAgICAgICAjIDUuMiAxMS4gc2VuZCB0aGUgZm9sbG93aW5nIGZp
ZWxkcyB0byB0aGUgY2xpZW50LgorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRl
cigKKyAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9V
UEdSQURFX1RZUEVfSElYSUU3NSkpCisgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVh
ZGVyKAorICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFE
RV9DT05ORUNUSU9OX1RZUEUpKQorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRl
cigKKyAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURFUiwgc2Vs
Zi5fcmVxdWVzdC53c19sb2NhdGlvbikpCisgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRf
aGVhZGVyKAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiwg
c2VsZi5fcmVxdWVzdC53c19vcmlnaW4pKQorICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3By
b3RvY29sOgorICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisgICAg
ICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAorICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQorICAgICAgICAjIDUuMiAxMi4g
c2VuZCB0d28gYnl0ZXMgMHgwRCAweDBBLgorICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4n
KQorICAgICAgICAjIDUuMiAxMy4gc2VuZCAvcmVzcG9uc2UvCisgICAgICAgIHJlc3BvbnNlLmFw
cGVuZChzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpCisKKyAgICAgICAgcmF3X3Jlc3Bv
bnNlID0gJycuam9pbihyZXNwb25zZSkKKyAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlKHJhd19yZXNwb25zZSkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNl
cnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmF3X3Jlc3BvbnNlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOWQ1YjJjYzZh
ZjFhNmI3NmVjNTE1ZGRlZGI4MDI2OGZmNzZmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL2h5YmkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aTAwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5k
bGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZGE0M2M5ZDgxOTdmMjE3ODA0MzMxZmIxYmU5NzA2NTI4MmUzNjQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQpA
QCAtMCwwICsxLDI1NyBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0Ogor
IworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiUHl0aG9uSGVhZGVyUGFy
c2VySGFuZGxlciBmb3IgbW9kX3B5d2Vic29ja2V0LgorCitBcGFjaGUgSFRUUCBTZXJ2ZXIgYW5k
IG1vZF9weXRob24gbXVzdCBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCB0aGlzCitmdW5jdGlvbiBp
cyBjYWxsZWQgdG8gaGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0LgorIiIiCisKKworaW1wb3J0IGxv
Z2dpbmcKKworZnJvbSBtb2RfcHl0aG9uIGltcG9ydCBhcGFjaGUKKworZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNo
Citmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCitmcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgdXRpbAorCisKKyMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRs
ZXIgcm9vdCBkaXJlY3RvcnkuCitfUFlPUFRfSEFORExFUl9ST09UID0gJ21vZF9weXdlYnNvY2tl
dC5oYW5kbGVyX3Jvb3QnCisKKyMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIg
c2NhbiBkaXJlY3RvcnkuCisjIFRoaXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciB0aGUgcm9v
dCBkaXJlY3RvcnkuCisjIFRoZSBkZWZhdWx0IGlzIHRoZSByb290IGRpcmVjdG9yeS4KK19QWU9Q
VF9IQU5ETEVSX1NDQU4gPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbicKKworIyBQeXRo
b25PcHRpb24gdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMKKyMgbm90
IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4gSXQncyBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQuCisj
IFNldCB0aGlzIG9wdGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMnIHRvIGFsbG93LgorX1BZT1BUX0FM
TE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCA9ICgKKyAgICAnbW9kX3B5d2Vic29ja2V0LmFsbG93
X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInKQorIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIg
bWVhbmluZ3MuICdZZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2VkIGp1c3QgZm9yCisjIGNvbXBhdGli
aWxpdHkuCitfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04gPSB7
CisgICAgJ29mZic6IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29uJzogVHJ1ZSwgJ3llcyc6IFRydWV9
CisKKyMgKE9ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4pCisjIFB5dGhvbk9wdGlvbiB0byBzcGVj
aWZ5IHRvIGFsbG93IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhpeGllIDc1IHZlcnNpb24KKyMgcHJv
dG9jb2wuIFRoZSBkZWZhdWx0IGlzIE5vbmUgKE9mZikKK19QWU9QVF9BTExPV19EUkFGVDc1ID0g
J21vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1JworIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhl
aXIgbWVhbmluZ3MuCitfUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OID0geydvZmYnOiBG
YWxzZSwgJ29uJzogVHJ1ZX0KKworCitjbGFzcyBBcGFjaGVMb2dIYW5kbGVyKGxvZ2dpbmcuSGFu
ZGxlcik6CisKKyAgICAiIiJXcmFwcGVyIGxvZ2dpbmcuSGFuZGxlciB0byBlbWl0IGxvZyBtZXNz
YWdlIHRvIGFwYWNoZSdzIGVycm9yLmxvZy4iIiIKKworICAgIF9MRVZFTFMgPSB7CisgICAgICAg
IGxvZ2dpbmcuREVCVUc6IGFwYWNoZS5BUExPR19ERUJVRywKKyAgICAgICAgbG9nZ2luZy5JTkZP
OiBhcGFjaGUuQVBMT0dfSU5GTywKKyAgICAgICAgbG9nZ2luZy5XQVJOSU5HOiBhcGFjaGUuQVBM
T0dfV0FSTklORywKKyAgICAgICAgbG9nZ2luZy5FUlJPUjogYXBhY2hlLkFQTE9HX0VSUiwKKyAg
ICAgICAgbG9nZ2luZy5DUklUSUNBTDogYXBhY2hlLkFQTE9HX0NSSVQsCisgICAgICAgIH0KKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUpOgorICAgICAgICBsb2dnaW5nLkhh
bmRsZXIuX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gYXBhY2hlLmxv
Z19lcnJvcgorICAgICAgICBpZiByZXF1ZXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2Vs
Zi5fbG9nX2Vycm9yID0gcmVxdWVzdC5sb2dfZXJyb3IKKworICAgICAgICAjIFRpbWUgYW5kIGxl
dmVsIHdpbGwgYmUgcHJpbnRlZCBieSBBcGFjaGUuCisgICAgICAgIHNlbGYuX2Zvcm1hdHRlciA9
IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpczogJShtZXNzYWdlKXMnKQorCisgICAgZGVmIGVt
aXQoc2VsZiwgcmVjb3JkKToKKyAgICAgICAgYXBhY2hlX2xldmVsID0gYXBhY2hlLkFQTE9HX0RF
QlVHCisgICAgICAgIGlmIHJlY29yZC5sZXZlbG5vIGluIEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVM
UzoKKyAgICAgICAgICAgIGFwYWNoZV9sZXZlbCA9IEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMU1ty
ZWNvcmQubGV2ZWxub10KKworICAgICAgICBtc2cgPSBzZWxmLl9mb3JtYXR0ZXIuZm9ybWF0KHJl
Y29yZCkKKworICAgICAgICAjICJzZXJ2ZXIiIHBhcmFtZXRlciBtdXN0IGJlIHBhc3NlZCB0byBo
YXZlICJsZXZlbCIgcGFyYW1ldGVyIHdvcmsuCisgICAgICAgICMgSWYgb25seSAibGV2ZWwiIHBh
cmFtZXRlciBpcyBwYXNzZWQsIG5vdGhpbmcgc2hvd3MgdXAgb24gQXBhY2hlJ3MKKyAgICAgICAg
IyBsb2cuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdlIGNhbm5vdCBnZXQgdGhlIHNlcnZlciBv
YmplY3Qgb2YgdGhlCisgICAgICAgICMgdmlydHVhbCBob3N0IHdoaWNoIHdpbGwgcHJvY2VzcyBX
ZWJTb2NrZXQgcmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZlcgorICAgICAgICAjIG9iamVjdCB3ZSBj
YW4gZ2V0IGhlcmUgaXMgYXBhY2hlLm1haW5fc2VydmVyLiBCdXQgV2hlcmV2ZXIgKHNlcnZlcgor
ICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dCBvciB2aXJ0dWFsIGhvc3QgY29udGV4dCkg
d2UgcHV0CisgICAgICAgICMgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBkaXJlY3RpdmUsIGFw
YWNoZS5tYWluX3NlcnZlciBqdXN0IHBvaW50cworICAgICAgICAjIHRoZSBtYWluIHNlcnZlciBp
bnN0YW5jZSAobm90IGFueSBvZiB2aXJ0dWFsIHNlcnZlciBpbnN0YW5jZSkuIFRoZW4sCisgICAg
ICAgICMgQXBhY2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGlyZWN0aXZlIGluIHRoZSBzZXJ2ZXIgY29u
ZmlndXJhdGlvbiBjb250ZXh0CisgICAgICAgICMgdG8gZmlsdGVyIGxvZ3MuIFNvLCB3ZSBuZWVk
IHRvIHNwZWNpZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZlcgorICAgICAgICAjIGNvbmZpZ3VyYXRp
b24gY29udGV4dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJMb2dMZXZlbCBkZWJ1ZyIgaW4gdGhlCisg
ICAgICAgICMgdmlydHVhbCBob3N0IGNvbnRleHQgd2hpY2ggYWN0dWFsbHkgaGFuZGxlcyBXZWJT
b2NrZXQgY29ubmVjdGlvbnMsCisgICAgICAgICMgREVCVUcgbGV2ZWwgbG9ncyBuZXZlciBzaG93
IHVwIHVubGVzcyAiTG9nTGV2ZWwgZGVidWciIGlzIHNwZWNpZmllZAorICAgICAgICAjIGluIHRo
ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0LgorICAgICAgICAjCisgICAgICAgICMgVE9E
Tyh0eW9zaGlubyk6IFByb3ZpZGUgbG9nZ2luZyBtZXRob2RzIG9uIHJlcXVlc3Qgb2JqZWN0LiBX
aGVuCisgICAgICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1ZXN0IG9iamVjdCAod2hlbiB1c2VkIHRv
Z2V0aGVyIHdpdGggQXBhY2hlKSwgdGhlCisgICAgICAgICMgbWV0aG9kcyBjYWxsIHJlcXVlc3Qu
bG9nX2Vycm9yIGluZGlyZWN0bHkuIFdoZW4gcmVxdWVzdCBpcworICAgICAgICAjIF9TdGFuZGFs
b25lUmVxdWVzdCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRob24ncyBsb2dnaW5nIGZhY2lsaXR5IHdo
aWNoCisgICAgICAgICMgd2UgY3JlYXRlIGluIHN0YW5kYWxvbmUucHkuCisgICAgICAgIHNlbGYu
X2xvZ19lcnJvcihtc2csIGFwYWNoZV9sZXZlbCwgYXBhY2hlLm1haW5fc2VydmVyKQorCisKK2Rl
ZiBfY29uZmlndXJlX2xvZ2dpbmcoKToKKyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigp
CisgICAgIyBMb2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFjaGUgYmFzZWQgb24gTG9nTGV2ZWwgZGly
ZWN0aXZlIGluIEFwYWNoZQorICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiBXZSBtdXN0IGp1c3Qg
cGFzcyBsb2dzIGZvciBhbGwgbGV2ZWxzIHRvCisgICAgIyBBcGFjaGVMb2dIYW5kbGVyLgorICAg
IGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQorICAgIGxvZ2dlci5hZGRIYW5kbGVyKEFw
YWNoZUxvZ0hhbmRsZXIoKSkKKworCitfY29uZmlndXJlX2xvZ2dpbmcoKQorCitfTE9HR0VSID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIF9wYXJzZV9vcHRpb24obmFtZSwg
dmFsdWUsIGRlZmluaXRpb24pOgorICAgICIiIlJldHVybiB0aGUgbWVhbmluZyBvZiBhIG9wdGlv
biB2YWx1ZS4iIiIKKyAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIG1lYW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1ZS5sb3dlcigpKQorICAgIGlmIG1l
YW5pbmcgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlIGZv
ciBQeXRob25PcHRpb24gJXM6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSwg
dmFsdWUpKQorICAgIHJldHVybiBtZWFuaW5nCisKKworZGVmIF9jcmVhdGVfZGlzcGF0Y2hlcigp
OgorICAgICIiIkluaXRpYWxpemUgYSBkaXNwYXRjaC5EaXNwYXRjaGVyLiIiIgorICAgIF9MT0dH
RVIuaW5mbygnSW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQorCisgICAgb3B0aW9ucyA9IGFwYWNo
ZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpCisKKyAgICBoYW5kbGVyX3Jvb3QgPSBvcHRpb25z
LmdldChfUFlPUFRfSEFORExFUl9ST09ULCBOb25lKQorICAgIGlmIG5vdCBoYW5kbGVyX3Jvb3Q6
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0aW9uICVzIGlzIG5vdCBkZWZpbmVk
JyAlIF9QWU9QVF9IQU5ETEVSX1JPT1QsCisgICAgICAgICAgICAgICAgICAgICAgICBhcGFjaGUu
QVBMT0dfRVJSKQorCisgICAgaGFuZGxlcl9zY2FuID0gb3B0aW9ucy5nZXQoX1BZT1BUX0hBTkRM
RVJfU0NBTiwgaGFuZGxlcl9yb290KQorCisgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290
ID0gX3BhcnNlX29wdGlvbigKKyAgICAgICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVf
Uk9PVCwKKyAgICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVf
Uk9PVCksCisgICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1RfREVGSU5J
VElPTikKKworICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAorICAgICAgICBo
YW5kbGVyX3Jvb3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290KQor
CisgICAgZm9yIHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKToKKyAgICAg
ICAgYXBhY2hlLmxvZ19lcnJvcigKKyAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IFdhcm5p
bmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcsCisgICAgICAgICAgICBhcGFjaGUu
QVBMT0dfV0FSTklORykKKworICAgIHJldHVybiBkaXNwYXRjaGVyCisKKworIyBJbml0aWFsaXpl
CitfZGlzcGF0Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigpCisKKworZGVmIGhlYWRlcnBhcnNl
cmhhbmRsZXIocmVxdWVzdCk6CisgICAgIiIiSGFuZGxlIHJlcXVlc3QuCisKKyAgICBBcmdzOgor
ICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisKKyAgICBUaGlzIGZ1bmN0aW9u
IGlzIG5hbWVkIGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdAor
ICAgIG5hbWUgZm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlci4KKyAgICAiIiIKKyAgICBo
YW5kc2hha2VfaXNfZG9uZSA9IEZhbHNlCisgICAgdHJ5OgorICAgICAgICAjIEZhbGxiYWNrIHRv
IGRlZmF1bHQgaHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAorICAgICAg
ICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KKyAgICAgICAgaWYgbm90IF9kaXNw
YXRjaGVyLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3QudXJpKToKKyAgICAgICAgICAgIHJlcXVl
c3QubG9nX2Vycm9yKAorICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IE5vIGhhbmRs
ZXIgZm9yIHJlc291cmNlOiAlcicgJSByZXF1ZXN0LnVyaSwKKyAgICAgICAgICAgICAgICBhcGFj
aGUuQVBMT0dfSU5GTykKKyAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAorICAgICAgICAg
ICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEZhbGxiYWNrIHRvIEFwYWNoZScsIGFwYWNoZS5BUExP
R19JTkZPKQorICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5ERUNMSU5FRAorICAgIGV4Y2VwdCBk
aXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZToKKyAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3Io
CisgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBEaXNwYXRjaCBmYWlsZWQgZm9yIGVycm9y
OiAlcycgJSBlLAorICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCisgICAgICAgIGlmIG5v
dCBoYW5kc2hha2VfaXNfZG9uZToKKyAgICAgICAgICAgIHJldHVybiBlLnN0YXR1cworCisgICAg
dHJ5OgorICAgICAgICBhbGxvd19kcmFmdDc1ID0gX3BhcnNlX29wdGlvbigKKyAgICAgICAgICAg
IF9QWU9QVF9BTExPV19EUkFGVDc1LAorICAgICAgICAgICAgYXBhY2hlLm1haW5fc2VydmVyLmdl
dF9vcHRpb25zKCkuZ2V0KF9QWU9QVF9BTExPV19EUkFGVDc1KSwKKyAgICAgICAgICAgIF9QWU9Q
VF9BTExPV19EUkFGVDc1X0RFRklOSVRJT04pCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
aGFuZHNoYWtlLmRvX2hhbmRzaGFrZSgKKyAgICAgICAgICAgICAgICByZXF1ZXN0LCBfZGlzcGF0
Y2hlciwgYWxsb3dEcmFmdDc1PWFsbG93X2RyYWZ0NzUpCisgICAgICAgIGV4Y2VwdCBoYW5kc2hh
a2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAor
ICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIHZl
cnNpb24gZXJyb3I6ICVzJyAlIGUsCisgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8p
CisgICAgICAgICAgICByZXF1ZXN0LmVycl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19XRUJT
T0NLRVRfVkVSU0lPTl9IRUFERVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCisgICAgICAgICAgICByZXR1cm4gYXBhY2hlLkhU
VFBfQkFEX1JFUVVFU1QKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRp
b24sIGU6CisgICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KKyAgICAg
ICAgICAgICMgU2VuZCBodHRwIHJlc3BvbnNlIHdpdGggZXJyb3Igc3RhdHVzLgorICAgICAgICAg
ICAgcmVxdWVzdC5sb2dfZXJyb3IoCisgICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDog
SGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCisgICAgICAgICAgICAgICAgYXBh
Y2hlLkFQTE9HX0lORk8pCisgICAgICAgICAgICByZXR1cm4gZS5zdGF0dXMKKworICAgICAgICBo
YW5kc2hha2VfaXNfZG9uZSA9IFRydWUKKyAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IF9k
aXNwYXRjaGVyCisgICAgICAgIF9kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAg
ICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAgIHJl
cXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEFib3J0ZWQ6ICVzJyAlIGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQorICAgIGV4Y2VwdCBFeGNl
cHRpb24sIGU6CisgICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24gY2FuIGFsc28gYmUgdGhyb3du
IGlmIHNvbWV0aGluZyBpcyB3cm9uZyBpbgorICAgICAgICAjIHB5d2Vic29ja2V0IGNvZGUuIEl0
J3MgY2F1Z2h0IGhlcmUsIHRoZW4uCisKKyAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21vZF9w
eXdlYnNvY2tldDogRXhjZXB0aW9uIG9jY3VycmVkOiAlc1xuJXMnICUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGUsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJSKQorICAgICAgICAjIFVua25vd24gZXhjZXB0aW9u
cyBiZWZvcmUgaGFuZHNoYWtlIG1lYW4gQXBhY2hlIG11c3QgaGFuZGxlIGl0cworICAgICAgICAj
IHJlcXVlc3Qgd2l0aCBhbm90aGVyIGhhbmRsZXIuCisgICAgICAgIGlmIG5vdCBoYW5kc2hha2Vf
aXNfZG9uZToKKyAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKKyAgICAjIFNldCBh
c3NiYWNrd2FyZHMgdG8gc3VwcHJlc3MgcmVzcG9uc2UgaGVhZGVyIGdlbmVyYXRpb24gYnkgQXBh
Y2hlLgorICAgIHJlcXVlc3QuYXNzYmFja3dhcmRzID0gMQorICAgIHJldHVybiBhcGFjaGUuRE9O
RSAgIyBSZXR1cm4gRE9ORSBzdWNoIHRoYXQgbm8gb3RoZXIgaGFuZGxlcnMgYXJlIGludm9rZWQu
CisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJf
dXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNzc0NjUzOTMyODVmZjFiZDZiZjhkOTk0MDFjYzY3NDQyMTI1
ZTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJf
dXRpbC5weQpAQCAtMCwwICsxLDI2MyBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
KyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisj
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVXRpbGl0
aWVzIGZvciBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIGhlYWRlcnMgdGhhdCBmb2xsb3cgdGhlIGdy
YW1tYXIgZGVmaW5lZAoraW4gSFRUUCBSRkMgaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjYx
Ni50eHQuCisiIiIKKworCitpbXBvcnQgdXJscGFyc2UKKworCitfU0VQQVJBVE9SUyA9ICcoKTw+
QCw7OlxcIi9bXT89e30gXHQnCisKKworZGVmIF9pc19jaGFyKGMpOgorICAgICIiIlJldHVybnMg
dHJ1ZSBpZmYgYyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIKKworICAg
IHJldHVybiBvcmQoYykgPD0gMTI3CisKKworZGVmIF9pc19jdGwoYyk6CisgICAgIiIiUmV0dXJu
cyB0cnVlIGlmZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4gSFRUUCBSRkMuIiIiCisKKyAg
ICByZXR1cm4gb3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcKKworCitjbGFzcyBQYXJzaW5n
U3RhdGUob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhKToKKyAgICAgICAg
c2VsZi5kYXRhID0gZGF0YQorICAgICAgICBzZWxmLmhlYWQgPSAwCisKKworZGVmIHBlZWsoc3Rh
dGUsIHBvcz0wKToKKyAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVyIGF0IHBvcyBmcm9tIHRoZSBo
ZWFkIG9mIGRhdGEuIiIiCisKKyAgICBpZiBzdGF0ZS5oZWFkICsgcG9zID49IGxlbihzdGF0ZS5k
YXRhKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJldHVybiBzdGF0ZS5kYXRhW3N0YXRl
LmhlYWQgKyBwb3NdCisKKworZGVmIGNvbnN1bWUoc3RhdGUsIGFtb3VudD0xKToKKyAgICAiIiJD
b25zdW1lcyBzcGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20gdGhlIGhlYWQgYW5kIHJldHVy
bnMgdGhlCisgICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mgbm90IGVub3VnaCBieXRlcyB0
byBjb25zdW1lLCByZXR1cm5zIE5vbmUuCisgICAgIiIiCisKKyAgICBpZiBzdGF0ZS5oZWFkICsg
YW1vdW50ID4gbGVuKHN0YXRlLmRhdGEpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcmVz
dWx0ID0gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQgKyBhbW91bnRdCisgICAgc3Rh
dGUuaGVhZCA9IHN0YXRlLmhlYWQgKyBhbW91bnQKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVm
IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6CisgICAgIiIiR2l2ZW4gYSBwYXJzaW5n
IHN0YXRlIGFuZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMgdGhlIHN0cmluZyBmcm9tCisg
ICAgdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBzdWNjZXNzZnVsbHkuIE90aGVy
d2lzZSwgcmV0dXJucworICAgIEZhbHNlLgorICAgICIiIgorCisgICAgcG9zID0gMAorCisgICAg
Zm9yIGMgaW4gZXhwZWN0ZWQ6CisgICAgICAgIGlmIGMgIT0gcGVlayhzdGF0ZSwgcG9zKToKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBwb3MgKz0gMQorCisgICAgY29uc3VtZShz
dGF0ZSwgcG9zKQorICAgIHJldHVybiBUcnVlCisKKworZGVmIGNvbnN1bWVfbHdzKHN0YXRlKToK
KyAgICAiIiJDb25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBSZXR1cm5zIFRydWUgaWYgYW55
IExXUyBpcyBjb25zdW1lZC4KKyAgICBPdGhlcndpc2UsIHJldHVybnMgRmFsc2UuCisKKyAgICBM
V1MgPSBbQ1JMRl0gMSooIFNQIHwgSFQgKQorICAgICIiIgorCisgICAgb3JpZ2luYWxfaGVhZCA9
IHN0YXRlLmhlYWQKKworICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnXHJcbicpCisKKyAgICBw
b3MgPSAwCisKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9zKQor
ICAgICAgICBpZiBjID09ICcgJyBvciBjID09ICdcdCc6CisgICAgICAgICAgICBwb3MgKz0gMQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcG9zID09IDA6CisgICAgICAgICAgICAgICAg
c3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29uc3VtZShzdGF0ZSwgcG9zKQor
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKworZGVmIGNvbnN1bWVfbHdzZXMoc3RhdGUp
OgorICAgICIiIkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4iIiIKKworICAgIHdoaWxlIGNv
bnN1bWVfbHdzKHN0YXRlKToKKyAgICAgICAgcGFzcworCisKK2RlZiBjb25zdW1lX3Rva2VuKHN0
YXRlKToKKyAgICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhlIGhlYWQuIFJldHVybnMgdGhl
IHRva2VuIG9yIE5vbmUgaWYgbm8gdG9rZW4KKyAgICB3YXMgZm91bmQuCisgICAgIiIiCisKKyAg
ICBwb3MgPSAwCisKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9z
KQorICAgICAgICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMp
IG9yIG5vdCBfaXNfY2hhcihjKToKKyAgICAgICAgICAgIGlmIHBvcyA9PSAwOgorICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lKHN0YXRlLCBw
b3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwb3MgKz0gMQorCisKK2RlZiBjb25zdW1l
X3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpOgorICAgICIiIkNvbnN1bWVzIGEgdG9rZW4g
b3IgYSBxdW90ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9rZW4gb3IgdW5xdW90ZWQKKyAg
ICBzdHJpbmcuIElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcgd2FzIGZvdW5kLCByZXR1cm5z
IE5vbmUuCisgICAgIiIiCisKKyAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUuaGVhZAorCisgICAg
aWYgbm90IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgorICAgICAgICByZXR1cm4gY29uc3Vt
ZV90b2tlbihzdGF0ZSkKKworICAgIHJlc3VsdCA9IFtdCisKKyAgICBleHBlY3RfcXVvdGVkX3Bh
aXIgPSBGYWxzZQorCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgaWYgbm90IGV4cGVjdF9xdW90
ZWRfcGFpciBhbmQgY29uc3VtZV9sd3Moc3RhdGUpOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICcpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGMgPSBjb25zdW1lKHN0YXRl
KQorICAgICAgICBpZiBjIGlzIE5vbmU6CisgICAgICAgICAgICAjIHF1b3RlZC1zdHJpbmcgaXMg
bm90IGVuY2xvc2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgorICAgICAgICAgICAgc3RhdGUuaGVh
ZCA9IG9yaWdpbmFsX2hlYWQKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsaWYg
ZXhwZWN0X3F1b3RlZF9wYWlyOgorICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gRmFs
c2UKKyAgICAgICAgICAgIGlmIF9pc19jaGFyKGMpOgorICAgICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoYykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBOb24gQ0hBUiBj
aGFyYWN0ZXIgZm91bmQgaW4gcXVvdGVkLXBhaXIKKyAgICAgICAgICAgICAgICBzdGF0ZS5oZWFk
ID0gb3JpZ2luYWxfaGVhZAorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVs
aWYgYyA9PSAnXFwnOgorICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gVHJ1ZQorICAg
ICAgICBlbGlmIGMgPT0gJyInOgorICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQor
ICAgICAgICBlbGlmIF9pc19jdGwoYyk6CisgICAgICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVy
ICVyIGZvdW5kIGluIHFkdGV4dAorICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hl
YWQKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKGMpCisKKworZGVmIHF1b3RlX2lmX25lY2Vzc2FyeShzKToKKyAgICAiIiJR
dW90ZXMgYXJiaXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJpbmcuIiIiCisKKyAgICBxdW90
ZSA9IEZhbHNlCisgICAgaWYgcyA9PSAnJzoKKyAgICAgICAgcmV0dXJuICciIicKKworICAgIHJl
c3VsdCA9IFtdCisgICAgZm9yIGMgaW4gczoKKyAgICAgICAgaWYgYyA9PSAnIicgb3IgYyBpbiBf
U0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKKyAgICAgICAgICAg
IHF1b3RlID0gVHJ1ZQorCisgICAgICAgIGlmIGMgPT0gJyInIG9yIF9pc19jdGwoYyk6CisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChjKQorCisgICAgaWYgcXVvdGU6CisgICAgICAgIHJldHVybiAnIicg
KyAnJy5qb2luKHJlc3VsdCkgKyAnIicKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJycuam9p
bihyZXN1bHQpCisKKworZGVmIHBhcnNlX3VyaSh1cmkpOgorICAgICIiIlBhcnNlIGFic29sdXRl
IFVSSSB0aGVuIHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJjZS4iIiIKKworICAgIHBhcnNl
ZCA9IHVybHBhcnNlLnVybHNwbGl0KHVyaSkKKyAgICBpZiBwYXJzZWQuc2NoZW1lICE9ICd3c3Mn
IGFuZCBwYXJzZWQuc2NoZW1lICE9ICd3cyc6CisgICAgICAgICMgfHVyaXwgbXVzdCBiZSBhIHJl
bGF0aXZlIFVSSS4KKyAgICAgICAgIyBUT0RPKHRveW9zaGltKTogU2hvdWxkIHZhbGlkYXRlIHx1
cml8LgorICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgdXJpCisKKyAgICBpZiBwYXJzZWQuaG9z
dG5hbWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKKworICAgIHBv
cnQgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBwb3J0ID0gcGFyc2VkLnBvcnQKKyAgICBleGNl
cHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgIyBwb3J0IHByb3BlcnR5IGNhdXNlIFZhbHVlRXJy
b3Igb24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRpb24gbGlrZQorICAgICAgICAjICd3czov
L2hvc3Q6L3BhdGgnLgorICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQorCisgICAgaWYg
cG9ydCBpcyBOb25lOgorICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICd3cyc6CisgICAgICAg
ICAgICBwb3J0ID0gODAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBvcnQgPSA0NDMKKwor
ICAgIHBhdGggPSBwYXJzZWQucGF0aAorICAgIGlmIG5vdCBwYXRoOgorICAgICAgICBwYXRoICs9
ICcvJworICAgIGlmIHBhcnNlZC5xdWVyeToKKyAgICAgICAgcGF0aCArPSAnPycgKyBwYXJzZWQu
cXVlcnkKKyAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6CisgICAgICAgIHBhdGggKz0gJyMnICsgcGFy
c2VkLmZyYWdtZW50CisKKyAgICByZXR1cm4gcGFyc2VkLmhvc3RuYW1lLCBwb3J0LCBwYXRoCisK
KwordHJ5OgorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmluZGV4KCd3cycpCitleGNlcHQgVmFs
dWVFcnJvciwgZToKKyAgICAjIHVybHBhcnNlIGluIFB5dGhvbjIuNS4xIGRvZXNuJ3QgaGF2ZSAn
d3MnIGFuZCAnd3NzJyBlbnRyaWVzLgorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgn
d3MnKQorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3NzJykKKworCisjIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdm
aWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTI0ZTdlZTM4MjFlYTFhNzMxNDViYmE4MjQ2YzdiNWIwNDNlMTRjOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5CkBAIC0wLDAgKzEs
MTAzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIi
Ik1lbW9yaXppbmcgZmlsZS4KKworQSBtZW1vcml6aW5nIGZpbGUgd3JhcHMgYSBmaWxlIGFuZCBt
ZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KKyIiIgorCisKK2ltcG9ydCBzeXMKKwor
CitjbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgorCisgICAgIiIiTWVtb3JpemluZ0ZpbGUg
d3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KKworICAg
IE5vdGUgdGhhdCBkYXRhIHJlYWQgYnkgb3RoZXIgbWV0aG9kcyBhcmUgbm90IG1lbW9yaXplZC4g
VGhpcyBiZWhhdmlvcgorICAgIGlzIGdvb2QgZW5vdWdoIGZvciBtZW1vcml6aW5nIGxpbmVzIFNp
bXBsZUhUVFBTZXJ2ZXIgcmVhZHMgYmVmb3JlCisgICAgdGhlIGNvbnRyb2wgcmVhY2hlcyBXZWJT
b2NrZXRSZXF1ZXN0SGFuZGxlci4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
aWxlXywgbWF4X21lbW9yaXplZF9saW5lcz1zeXMubWF4aW50KToKKyAgICAgICAgIiIiQ29uc3Ry
dWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBmaWxlXzogdGhl
IGZpbGUgb2JqZWN0IHRvIHdyYXAuCisgICAgICAgICAgICBtYXhfbWVtb3JpemVkX2xpbmVzOiB0
aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gbWVtb3JpemUuCisgICAgICAgICAgICAgICAg
T25seSB0aGUgZmlyc3QgbWF4X21lbW9yaXplZF9saW5lcyBhcmUgbWVtb3JpemVkLgorICAgICAg
ICAgICAgICAgIERlZmF1bHQ6IHN5cy5tYXhpbnQuCisgICAgICAgICIiIgorICAgICAgICBzZWxm
Ll9maWxlID0gZmlsZV8KKyAgICAgICAgc2VsZi5fbWVtb3JpemVkX2xpbmVzID0gW10KKyAgICAg
ICAgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lcyA9IG1heF9tZW1vcml6ZWRfbGluZXMKKyAgICAg
ICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0g
Tm9uZQorCisgICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSk6CisgICAgICAgICIi
IlJldHVybiBhIGZpbGUgYXR0cmlidXRlLgorICAgICAgICAKKyAgICAgICAgUmV0dXJucyB0aGUg
dmFsdWUgb3ZlcnJpZGRlbiBieSB0aGlzIGNsYXNzIGZvciBzb21lIGF0dHJpYnV0ZXMsCisgICAg
ICAgIGFuZCBmb3J3YXJkcyB0aGUgY2FsbCB0byBfZmlsZSBmb3IgdGhlIG90aGVyIGF0dHJpYnV0
ZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBuYW1lIGluICgnX2ZpbGUnLCAnX21lbW9yaXpl
ZF9saW5lcycsICdfbWF4X21lbW9yaXplZF9saW5lcycsCisgICAgICAgICAgICAgICAgICAgICdf
YnVmZmVyZWQnLCAnX2J1ZmZlcmVkX2xpbmUnLCAncmVhZGxpbmUnLAorICAgICAgICAgICAgICAg
ICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5f
X2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpCisgICAgICAgIHJldHVybiBzZWxmLl9maWxlLl9f
Z2V0YXR0cmlidXRlX18obmFtZSkKKworICAgIGRlZiByZWFkbGluZShzZWxmLCBzaXplPS0xKToK
KyAgICAgICAgIiIiT3ZlcnJpZGUgZmlsZS5yZWFkbGluZSBhbmQgbWVtb3JpemUgdGhlIGxpbmUg
cmVhZC4KKworICAgICAgICBOb3RlIHRoYXQgZXZlbiBpZiBzaXplIGlzIHNwZWNpZmllZCBhbmQg
c21hbGxlciB0aGFuIGFjdHVhbCBzaXplLAorICAgICAgICB0aGUgd2hvbGUgbGluZSB3aWxsIGJl
IHJlYWQgb3V0IGZyb20gdW5kZXJseWluZyBmaWxlIG9iamVjdCBieQorICAgICAgICBzdWJzZXF1
ZW50IHJlYWRsaW5lIGNhbGxzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fYnVmZmVy
ZWQ6CisgICAgICAgICAgICBsaW5lID0gc2VsZi5fYnVmZmVyZWRfbGluZQorICAgICAgICAgICAg
c2VsZi5fYnVmZmVyZWQgPSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZSA9
IHNlbGYuX2ZpbGUucmVhZGxpbmUoKQorICAgICAgICAgICAgaWYgbGluZSBhbmQgbGVuKHNlbGYu
X21lbW9yaXplZF9saW5lcykgPCBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzOgorICAgICAgICAg
ICAgICAgIHNlbGYuX21lbW9yaXplZF9saW5lcy5hcHBlbmQobGluZSkKKyAgICAgICAgaWYgc2l6
ZSA+PSAwIGFuZCBzaXplIDwgbGVuKGxpbmUpOgorICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWQg
PSBUcnVlCisgICAgICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0gbGluZVtzaXplOl0KKyAg
ICAgICAgICAgIHJldHVybiBsaW5lWzpzaXplXQorICAgICAgICByZXR1cm4gbGluZQorCisgICAg
ZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6CisgICAgICAgICIiIkdldCBsaW5lcyBtZW1v
cml6ZWQgc28gZmFyLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbWVtb3JpemVkX2xpbmVzCisK
KworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9t
c2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YzFhMDExNGI0YmM0MThiMjBlNmExNTU2NTllOTI1N2FhYjczNmVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpAQCAtMCwwICsxLDIxOSBAQAorIyBD
b3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKworIiIiTWVzc2FnZSByZWxhdGVkIHV0aWxpdGllcy4KKworTm90ZTog
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2
ZW4gdGhvdWdoCittb2RfcHl0aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1
c2VkIG9ubHkgaW4gY29ubmVjdGlvbgoraGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUg
bm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsCityZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5v
dCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdworYnl0ZXMgd3Jp
dGluZy9yZWFkaW5nLgorIiIiCisKKworaW1wb3J0IFF1ZXVlCitpbXBvcnQgdGhyZWFkaW5nCisK
KworIyBFeHBvcnQgRXhjZXB0aW9uIHN5bWJvbHMgZnJvbSBtc2d1dGlsIGZvciBiYWNrd2FyZCBj
b21wYXRpYmlsaXR5Citmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgorCisK
KyMgQW4gQVBJIGZvciBoYW5kbGVyIHRvIHNlbmQvcmVjZWl2ZSBXZWJTb2NrZXQgbWVzc2FnZXMu
CitkZWYgY2xvc2VfY29ubmVjdGlvbihyZXF1ZXN0KToKKyAgICAiIiJDbG9zZSBjb25uZWN0aW9u
LgorCisgICAgQXJnczoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAg
ICIiIgorICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQorCisKK2RlZiBz
ZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZF9kYXRhLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNl
KToKKyAgICAiIiJTZW5kIGEgbWVzc2FnZSAob3IgcGFydCBvZiBhIG1lc3NhZ2UpLgorCisgICAg
QXJnczoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICBwYXls
b2FkX2RhdGE6IHVuaWNvZGUgdGV4dCBvciBzdHIgYmluYXJ5IHRvIHNlbmQuCisgICAgICAgIGVu
ZDogVHJ1ZSB0byB0ZXJtaW5hdGUgYSBtZXNzYWdlLgorICAgICAgICAgICAgIEZhbHNlIHRvIHNl
bmQgcGF5bG9hZF9kYXRhIGFzIHBhcnQgb2YgYSBtZXNzYWdlIHRoYXQgaXMgdG8gYmUKKyAgICAg
ICAgICAgICB0ZXJtaW5hdGVkIGJ5IG5leHQgb3IgbGF0ZXIgc2VuZF9tZXNzYWdlIGNhbGwgd2l0
aCBlbmQ9VHJ1ZS4KKyAgICAgICAgYmluYXJ5OiBzZW5kIHBheWxvYWRfZGF0YSBhcyBiaW5hcnkg
ZnJhbWUocykuCisgICAgUmFpc2VzOgorICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdo
ZW4gc2VydmVyIGFscmVhZHkgdGVybWluYXRlZC4KKyAgICAiIiIKKyAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX21lc3NhZ2UocGF5bG9hZF9kYXRhLCBlbmQsIGJpbmFyeSkKKworCitkZWYgcmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpOgorICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUg
YW5kIHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KKyAgICB1bmljb2RlIG9yIGEgYmlu
YXJ5IGluIHN0ci4KKworICAgIEFyZ3M6CisgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVx
dWVzdC4KKyAgICBSYWlzZXM6CisgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogICAgIHdo
ZW4gY2xpZW50IHNlbmQgaW52YWxpZCBmcmFtZS4KKyAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4
Y2VwdGlvbjogd2hlbiBjbGllbnQgc2VuZCB1bnN1cHBvcnRlZCBmcmFtZSBlLmcuIHNvbWUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgcmVzZXJ2ZWQgYml0IGlzIHNldCBi
dXQgbm8gZXh0ZW5zaW9uIGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWNvZ25pemUgaXQuCisgICAgICAgIEludmFsaWRVVEY4RXhjZXB0aW9uOiAgICAgIHdoZW4gY2xp
ZW50IHNlbmQgYSB0ZXh0IGZyYW1lIGNvbnRhaW5pbmcgYW55CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludmFsaWQgVVRGLTggc3RyaW5nLgorICAgICAgICBDb25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZGx5LgorICAgICAgICBCYWRP
cGVyYXRpb25FeGNlcHRpb246ICAgICB3aGVuIGNsaWVudCBhbHJlYWR5IHRlcm1pbmF0ZWQuCisg
ICAgIiIiCisgICAgcmV0dXJuIHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisK
KworZGVmIHNlbmRfcGluZyhyZXF1ZXN0LCBib2R5PScnKToKKyAgICByZXF1ZXN0LndzX3N0cmVh
bS5zZW5kX3BpbmcoYm9keSkKKworCitjbGFzcyBNZXNzYWdlUmVjZWl2ZXIodGhyZWFkaW5nLlRo
cmVhZCk6CisgICAgIiIiVGhpcyBjbGFzcyByZWNlaXZlcyBtZXNzYWdlcyBmcm9tIHRoZSBjbGll
bnQuCisKKyAgICBUaGlzIGNsYXNzIHByb3ZpZGVzIHRocmVlIHdheXMgdG8gcmVjZWl2ZSBtZXNz
YWdlczogYmxvY2tpbmcsCisgICAgbm9uLWJsb2NraW5nLCBhbmQgdmlhIGNhbGxiYWNrLiBDYWxs
YmFjayBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZS4KKworICAgIE5vdGU6IFRoaXMgY2xhc3Mg
c2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZvciB3c3MKKyAg
ICBiZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwgZXJy
b3IgaWYgdGhlIHNvY2tldAorICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4K
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvbm1lc3NhZ2U9Tm9u
ZSk6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgor
ICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICAgICAgb25t
ZXNzYWdlOiBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGEgbWVzc2FnZSBpcyByZWNlaXZl
ZC4KKyAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIE5vbmUuIElmIG5vdCBOb25lLCB0aGUg
ZnVuY3Rpb24gaXMgY2FsbGVkIG9uCisgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXIgdGhy
ZWFkLiBJbiB0aGF0IGNhc2UsIE1lc3NhZ2VSZWNlaXZlci5yZWNlaXZlCisgICAgICAgICAgICAg
ICAgICAgICAgIGFuZCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQgYXJlIHVzZWxlc3MK
KyAgICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGV5IHdpbGwgbmV2ZXIgcmV0dXJuIGFu
eSBtZXNzYWdlcy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2lu
aXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxm
Ll9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKKyAgICAgICAgc2VsZi5fb25tZXNzYWdlID0gb25tZXNz
YWdlCisgICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKKyAgICAgICAgc2VsZi5z
ZXREYWVtb24oVHJ1ZSkKKyAgICAgICAgc2VsZi5zdGFydCgpCisKKyAgICBkZWYgcnVuKHNlbGYp
OgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0
ZWQ6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlY2VpdmVfbWVzc2FnZShzZWxmLl9yZXF1
ZXN0KQorICAgICAgICAgICAgICAgIGlmIHNlbGYuX29ubWVzc2FnZToKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb25tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KG1lc3NhZ2UpCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBjbG9zZV9jb25uZWN0aW9uKHNlbGYuX3JlcXVlc3QpCisKKyAgICBk
ZWYgcmVjZWl2ZShzZWxmKToKKyAgICAgICAgIiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhl
IGNoYW5uZWwsIGJsb2NraW5nLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBtZXNz
YWdlIGFzIGEgdW5pY29kZSBzdHJpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fcXVldWUuZ2V0KCkKKworICAgIGRlZiByZWNlaXZlX25vd2FpdChzZWxmKToKKyAgICAgICAg
IiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIGNoYW5uZWwsIG5vbi1ibG9ja2luZy4KKwor
ICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUgc3RyaW5n
IGlmIGF2YWlsYWJsZS4gTm9uZSBvdGhlcndpc2UuCisgICAgICAgICIiIgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fcXVldWUuZ2V0X25vd2FpdCgpCisgICAgICAg
IGV4Y2VwdCBRdWV1ZS5FbXB0eToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBOb25lCisgICAgICAg
IHJldHVybiBtZXNzYWdlCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgIiIiUmVxdWVz
dCB0byBzdG9wIHRoaXMgaW5zdGFuY2UuCisKKyAgICAgICAgVGhlIGluc3RhbmNlIHdpbGwgYmUg
c3RvcHBlZCBhZnRlciByZWNlaXZpbmcgdGhlIG5leHQgbWVzc2FnZS4KKyAgICAgICAgVGhpcyBt
ZXRob2QgbWF5IG5vdCBiZSB2ZXJ5IHVzZWZ1bCwgYnV0IHRoZXJlIGlzIG5vIGNsZWFuIHdheQor
ICAgICAgICBpbiBQeXRob24gdG8gZm9yY2VmdWxseSBzdG9wIGEgcnVubmluZyB0aHJlYWQuCisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKKworCitjbGFz
cyBNZXNzYWdlU2VuZGVyKHRocmVhZGluZy5UaHJlYWQpOgorICAgICIiIlRoaXMgY2xhc3Mgc2Vu
ZHMgbWVzc2FnZXMgdG8gdGhlIGNsaWVudC4KKworICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMgYm90
aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHdheXMgdG8gc2VuZAorICAgIG1lc3NhZ2Vz
LgorCisgICAgTm90ZTogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgc3Rh
bmRhbG9uZSBzZXJ2ZXIgZm9yIHdzcworICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkgdGhl
IHNlcnZlciByYWlzZXMgYSBmYXRhbCBlcnJvciBpZiB0aGUgc29ja2V0CisgICAgaXMgYWNjZXNz
ZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCisKKyAgICAg
ICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KKyAgICAg
ICAgIiIiCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKKyAgICAgICAg
c2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5RdWV1
ZSgpCisgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCisgICAgICAgIHNlbGYuc3RhcnQoKQor
CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIG1l
c3NhZ2UsIGNvbmRpdGlvbiA9IHNlbGYuX3F1ZXVlLmdldCgpCisgICAgICAgICAgICBjb25kaXRp
b24uYWNxdWlyZSgpCisgICAgICAgICAgICBzZW5kX21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCwgbWVz
c2FnZSkKKyAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICAgICAgY29uZGl0
aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIHNlbmQoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgICIi
IlNlbmQgYSBtZXNzYWdlLCBibG9ja2luZy4iIiIKKworICAgICAgICBjb25kaXRpb24gPSB0aHJl
YWRpbmcuQ29uZGl0aW9uKCkKKyAgICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICBz
ZWxmLl9xdWV1ZS5wdXQoKG1lc3NhZ2UsIGNvbmRpdGlvbikpCisgICAgICAgIGNvbmRpdGlvbi53
YWl0KCkKKworICAgIGRlZiBzZW5kX25vd2FpdChzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIi
U2VuZCBhIG1lc3NhZ2UsIG5vbi1ibG9ja2luZy4iIiIKKworICAgICAgICBzZWxmLl9xdWV1ZS5w
dXQoKG1lc3NhZ2UsIHRocmVhZGluZy5Db25kaXRpb24oKSkpCisKKworIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tdXgucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9tdXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2NWY2ZWQwZDM0YzVjNjkxNmZjNmYxNmYy
M2MyNzc3OGUwYzAxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211
eC5weQpAQCAtMCwwICsxLDE4ODUgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisj
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRoaXMgZmls
ZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBtdWx0aXBsZXhpbmcg
ZXh0ZW5zaW9uLgorCitTcGVjaWZpY2F0aW9uOgoraHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwv
ZHJhZnQtaWV0Zi1oeWJpLXdlYnNvY2tldC1tdWx0aXBsZXhpbmctMDYKKyIiIgorCisKK2ltcG9y
dCBjb2xsZWN0aW9ucworaW1wb3J0IGNvcHkKK2ltcG9ydCBlbWFpbAoraW1wb3J0IGVtYWlsLnBh
cnNlcgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCitpbXBvcnQgc3RydWN0CitpbXBvcnQg
dGhyZWFkaW5nCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKK2Zyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KK2Zy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgRnJhbWUKK2Zyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keQor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVyCitm
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhfaGVh
ZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2ZyYW1l
Citmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0IGh5YmkKKworCitfQ09OVFJP
TF9DSEFOTkVMX0lEID0gMAorX0RFRkFVTFRfQ0hBTk5FTF9JRCA9IDEKKworX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKK19NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNF
ID0gMQorX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgorX01VWF9PUENPREVfRFJPUF9DSEFO
TkVMID0gMworX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9IDQKKworX01BWF9DSEFOTkVM
X0lEID0gMiAqKiAyOSAtIDEKKworX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMgPSA2
NAorX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCA9IDggKiAxMDI0CisKK19IQU5EU0hBS0VfRU5D
T0RJTkdfSURFTlRJVFkgPSAwCitfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRBID0gMQorCisjIFdl
IG5lZWQgb25seSB0aGVzZSBzdGF0dXMgY29kZSBmb3Igbm93LgorX0hUVFBfQkFEX1JFU1BPTlNF
X01FU1NBR0VTID0geworICAgIGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVDogJ0JhZCBS
ZXF1ZXN0JywKK30KKworIyBEcm9wQ2hhbm5lbCByZWFzb24gY29kZQorIyBUT0RPKGJhc2hpKTog
RGVmaW5lIGFsbCByZWFzb24gY29kZSBkZWZpbmVkIGluIC0wNSBkcmFmdC4KK19EUk9QX0NPREVf
Tk9STUFMX0NMT1NVUkUgPSAxMDAwCisKK19EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5H
X01FU1NBR0UgPSAyMDAxCitfRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEID0gMjAwMgor
X0RST1BfQ09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVEID0gMjAwMworX0RST1Bf
Q09ERV9VTktOT1dOX01VWF9PUENPREUgPSAyMDA0CitfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NP
TlRST0xfQkxPQ0sgPSAyMDA1CitfRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMgPSAy
MDA2CitfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OID0gMjAwNworX0RST1Bf
Q09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcgPSAyMDEwCisKK19EUk9QX0NPREVfU0VORF9R
VU9UQV9WSU9MQVRJT04gPSAzMDA1CitfRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cgPSAz
MDA2CitfRFJPUF9DT0RFX0FDS05PV0xFREdFRCA9IDMwMDgKK19EUk9QX0NPREVfQkFEX0ZSQUdN
RU5UQVRJT04gPSAzMDA5CisKKworY2xhc3MgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbihFeGNlcHRp
b24pOgorCisgICAgIiIiRXhjZXB0aW9uIGluIGhhbmRsaW5nIG11bHRpcGxleGluZyBleHRlbnNp
b24uIiIiCisKKyAgICBwYXNzCisKKworIyBUZW1wb3JhcnkKK2NsYXNzIE11eE5vdEltcGxlbWVu
dGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisKKyAgICAiIiJSYWlzZWQgd2hlbiBhIGZsb3cgZW50
ZXJzIHVuaW1wbGVtZW50ZWQgY29kZSBwYXRoLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIExv
Z2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisKKyAgICAiIiJSYWlz
ZWQgd2hlbiBsb2dpY2FsIGNvbm5lY3Rpb24gaXMgZ3JhY2VmdWxseSBjbG9zZWQuIiIiCisKKyAg
ICBwYXNzCisKKworY2xhc3MgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoRXhjZXB0aW9uKToKKwor
ICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgcGh5c2ljYWwgY29ubmVjdGlvbiBlcnJvci4i
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcm9wX2NvZGUsIG1lc3NhZ2U9JycpOgorICAg
ICAgICBzdXBlcihQaHlzaWNhbENvbm5lY3Rpb25FcnJvciwgc2VsZikuX19pbml0X18oCisgICAg
ICAgICAgICAnY29kZT0lZCwgbWVzc2FnZT0lcicgJSAoZHJvcF9jb2RlLCBtZXNzYWdlKSkKKyAg
ICAgICAgc2VsZi5kcm9wX2NvZGUgPSBkcm9wX2NvZGUKKyAgICAgICAgc2VsZi5tZXNzYWdlID0g
bWVzc2FnZQorCisKK2NsYXNzIExvZ2ljYWxDaGFubmVsRXJyb3IoRXhjZXB0aW9uKToKKworICAg
ICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgbG9naWNhbCBjaGFubmVsIGVycm9yLiIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZT0nJyk6
CisgICAgICAgICIiIkluaXRpYWxpemUgdGhlIGVycm9yIHdpdGggYSBzdGF0dXMgbWVzc2FnZS4i
IiIKKyAgICAgICAgc3VwZXIoTG9naWNhbENoYW5uZWxFcnJvciwgc2VsZikuX19pbml0X18oCisg
ICAgICAgICAgICAnY2hhbm5lbF9pZD0lZCwgY29kZT0lZCwgbWVzc2FnZT0lcicgJSAoCisgICAg
ICAgICAgICAgICAgY2hhbm5lbF9pZCwgZHJvcF9jb2RlLCBtZXNzYWdlKSkKKyAgICAgICAgc2Vs
Zi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAorICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRyb3Bf
Y29kZQorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKworZGVmIF9lbmNvZGVfY2hh
bm5lbF9pZChjaGFubmVsX2lkKToKKyAgICBpZiBjaGFubmVsX2lkIDwgMDoKKyAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScgJSBjaGFu
bmVsX2lkKQorCisgICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogNzoKKyAgICAgICAgcmV0dXJuIGNo
cihjaGFubmVsX2lkKQorICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDE0OgorICAgICAgICByZXR1
cm4gc3RydWN0LnBhY2soJyFIJywgMHg4MDAwICsgY2hhbm5lbF9pZCkKKyAgICBpZiBjaGFubmVs
X2lkIDwgMiAqKiAyMToKKyAgICAgICAgZmlyc3QgPSBjaHIoMHhjMCArIChjaGFubmVsX2lkID4+
IDE2KSkKKyAgICAgICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0LnBhY2soJyFIJywgY2hhbm5lbF9p
ZCAmIDB4ZmZmZikKKyAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyOToKKyAgICAgICAgcmV0dXJu
IHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFubmVsX2lkKQorCisgICAgcmFpc2Ug
VmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBpcyB0b28gbGFyZ2UnICUgY2hhbm5lbF9pZCkKKwor
CitkZWYgX2VuY29kZV9udW1iZXIobnVtYmVyKToKKyAgICByZXR1cm4gY3JlYXRlX2xlbmd0aF9o
ZWFkZXIobnVtYmVyLCBGYWxzZSkKKworCitkZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25z
ZShjaGFubmVsX2lkLCBlbmNvZGVkX2hhbmRzaGFrZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuY29kaW5nPTAsIHJlamVjdGVkPUZhbHNlKToKKyAgICBpZiBlbmNvZGluZyAh
PSAwIGFuZCBlbmNvZGluZyAhPSAxOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlk
IGVuY29kaW5nICVkJyAlIGVuY29kaW5nKQorCisgICAgZmlyc3RfYnl0ZSA9ICgoX01VWF9PUENP
REVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPDwgNSkgfAorICAgICAgICAgICAgICAgICAgKHJlamVj
dGVkIDw8IDQpIHwgZW5jb2RpbmcpCisgICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKKyAg
ICAgICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKworICAgICAgICAgICAg
IF9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVkX2hhbmRzaGFrZSkpICsKKyAgICAgICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSkKKyAgICByZXR1cm4gYmxvY2sKKworCitkZWYgX2NyZWF0ZV9kcm9w
X2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKKyAgICBpZiBsZW4o
bWVzc2FnZSkgPiAwIGFuZCBjb2RlIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0NvZGUgbXVzdCBiZSBzcGVjaWZpZWQgaWYgbWVzc2FnZSBpcyBzcGVjaWZpZWQnKQorCisgICAg
Zmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCA8PCA1CisgICAgYmxvY2sgPSBj
aHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkKKyAgICBpZiBj
b2RlIGlzIE5vbmU6CisgICAgICAgIGJsb2NrICs9IF9lbmNvZGVfbnVtYmVyKDApICAjIFJlYXNv
biBzaXplCisgICAgZWxzZToKKyAgICAgICAgcmVhc29uID0gc3RydWN0LnBhY2soJyFIJywgY29k
ZSkgKyBtZXNzYWdlCisgICAgICAgIHJlYXNvbl9zaXplID0gX2VuY29kZV9udW1iZXIobGVuKHJl
YXNvbikpCisgICAgICAgIGJsb2NrICs9IHJlYXNvbl9zaXplICsgcmVhc29uCisKKyAgICByZXR1
cm4gYmxvY2sKKworCitkZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVu
aXNoZWRfcXVvdGEpOgorICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0wg
PDwgNQorICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCisgICAgICAgICAgICAgX2VuY29k
ZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKKyAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihy
ZXBsZW5pc2hlZF9xdW90YSkpCisgICAgcmV0dXJuIGJsb2NrCisKKworZGVmIF9jcmVhdGVfbmV3
X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSk6CisgICAgaWYgc2xvdHMgPCAwIG9yIHNl
bmRfcXVvdGEgPCAwOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbG90cyBhbmQgc2VuZF9x
dW90YSBtdXN0IGJlIG5vbi1uZWdhdGl2ZS4nKQorICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09E
RV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUKKyAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwor
ICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHNsb3RzKSArCisgICAgICAgICAgICAgX2VuY29k
ZV9udW1iZXIoc2VuZF9xdW90YSkpCisgICAgcmV0dXJuIGJsb2NrCisKKworZGVmIF9jcmVhdGVf
ZmFsbGJhY2tfbmV3X2NoYW5uZWxfc2xvdCgpOgorICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENP
REVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1KSB8IDEgICMgU2V0IHRoZSBGIGZsYWcKKyAgICBibG9j
ayA9IChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX251bWJlcigwKSArIF9lbmNvZGVfbnVtYmVy
KDApKQorICAgIHJldHVybiBibG9jaworCisKK2RlZiBfcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVl
c3RfdGV4dCk6CisgICAgcmVxdWVzdF9saW5lLCBoZWFkZXJfbGluZXMgPSByZXF1ZXN0X3RleHQu
c3BsaXQoJ1xyXG4nLCAxKQorCisgICAgd29yZHMgPSByZXF1ZXN0X2xpbmUuc3BsaXQoJyAnKQor
ICAgIGlmIGxlbih3b3JkcykgIT0gMzoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIFJl
cXVlc3QtTGluZSBzeW50YXggJXInICUgcmVxdWVzdF9saW5lKQorICAgIFtjb21tYW5kLCBwYXRo
LCB2ZXJzaW9uXSA9IHdvcmRzCisgICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgorICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVxdWVzdCB2ZXJzaW9uICVyJyAlIHZlcnNpb24pCisK
KyAgICAjIGVtYWlsLnBhcnNlci5QYXJzZXIoKSBwYXJzZXMgUkZDIDI4MjIgKFJGQyA4MjIpIHN0
eWxlIGhlYWRlcnMuCisgICAgIyBSRkMgNjQ1NSByZWZlcnMgUkZDIDI2MTYgZm9yIGhhbmRzaGFr
ZSBwYXJzaW5nLCBhbmQgUkZDIDI2MTYgcmVmZXJzCisgICAgIyBSRkMgODIyLgorICAgIGhlYWRl
cnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFyc2VzdHIoaGVhZGVyX2xpbmVzKQorICAgIHJl
dHVybiBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzCisKKworY2xhc3MgX0NvbnRyb2xC
bG9jayhvYmplY3QpOgorCisgICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBwYXJzaW5nIHJl
c3VsdCBvZiBtdWx0aXBsZXhpbmcgY29udHJvbCBibG9jay4KKworICAgIENvbnRyb2wgYmxvY2sg
c3BlY2lmaWMgYXR0cmlidXRlcyB3aWxsIGJlIGFkZGVkIGJ5IF9NdXhGcmFtZVBheWxvYWRQYXJz
ZXIuCisgICAgKGUuZy4gZW5jb2RlZF9oYW5kc2hha2Ugd2lsbCBiZSBhZGRlZCBmb3IgQWRkQ2hh
bm5lbFJlcXVlc3QgYW5kCisgICAgQWRkQ2hhbm5lbFJlc3BvbnNlKQorICAgICIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSk6CisgICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2Rl
CisKKworY2xhc3MgX011eEZyYW1lUGF5bG9hZFBhcnNlcihvYmplY3QpOgorCisgICAgIiIiQSBj
bGFzcyB0aGF0IHBhcnNlcyBtdWx0aXBsZXhlZCBmcmFtZSBwYXlsb2FkLiIiIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBzZWxmLl9kYXRhID0gcGF5bG9hZAor
ICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uID0gMAorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgIGRlZiByZWFkX2NoYW5uZWxfaWQoc2Vs
Zik6CisgICAgICAgICIiIlJlYWQgY2hhbm5lbCBpZC4KKworICAgICAgICBSYWlzZXM6CisgICAg
ICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGRvZXNuJ3QgY29udGFpbgorICAg
ICAgICAgICAgICAgIHZhbGlkIGNoYW5uZWwgaWQuCisgICAgICAgICIiIgorICAgICAgICByZW1h
aW5pbmdfbGVuZ3RoID0gbGVuKHNlbGYuX2RhdGEpIC0gc2VsZi5fcmVhZF9wb3NpdGlvbgorICAg
ICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCisgICAgICAgIGlmIHJlbWFpbmluZ19sZW5n
dGggPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBp
ZCBmb3JtYXQnKQorCisgICAgICAgIGNoYW5uZWxfaWQgPSBvcmQoc2VsZi5fZGF0YVtwb3NdKQor
ICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKKyAgICAgICAgaWYgY2hhbm5lbF9pZCAmIDB4
ZTAgPT0gMHhlMDoKKyAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCA0OgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQor
ICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcys0XSlbMF0gJiAw
eDFmZmZmZmZmCisgICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKKyAgICAgICAgZWxp
ZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgorICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xl
bmd0aCA8IDM6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFu
bmVsIGlkIGZvcm1hdCcpCisgICAgICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9pZCAm
IDB4MWYpIDw8IDE2KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2so
JyFIJywgc2VsZi5fZGF0YVtwb3MrMTpwb3MrM10pWzBdKQorICAgICAgICAgICAgY2hhbm5lbF9p
ZF9sZW5ndGggPSAzCisgICAgICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoKKyAg
ICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCAyOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQorICAgICAgICAgICAgY2hh
bm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFIJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcysyXSlbMF0gJiAweDNmZmYKKyAgICAgICAg
ICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMgorICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9
IGNoYW5uZWxfaWRfbGVuZ3RoCisKKyAgICAgICAgcmV0dXJuIGNoYW5uZWxfaWQKKworICAgIGRl
ZiByZWFkX2lubmVyX2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiJSZWFkIGFuIGlubmVyIGZyYW1l
LgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
OiB3aGVuIHRoZSBpbm5lciBmcmFtZSBpcyBpbnZhbGlkLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgbGVuKHNlbGYuX2RhdGEpID09IHNlbGYuX3JlYWRfcG9zaXRpb246CisgICAgICAgICAgICBy
YWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAgICAgICAgICAgICBfRFJPUF9DT0RF
X0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQpCisKKyAgICAgICAgYml0cyA9IG9yZChz
ZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQorICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0
aW9uICs9IDEKKyAgICAgICAgZmluID0gKGJpdHMgJiAweDgwKSA9PSAweDgwCisgICAgICAgIHJz
djEgPSAoYml0cyAmIDB4NDApID09IDB4NDAKKyAgICAgICAgcnN2MiA9IChiaXRzICYgMHgyMCkg
PT0gMHgyMAorICAgICAgICByc3YzID0gKGJpdHMgJiAweDEwKSA9PSAweDEwCisgICAgICAgIG9w
Y29kZSA9IGJpdHMgJiAweGYKKyAgICAgICAgcGF5bG9hZCA9IHNlbGYucmVtYWluaW5nX2RhdGEo
KQorICAgICAgICAjIENvbnN1bWUgcmVzdCBvZiB0aGUgbWVzc2FnZSB3aGljaCBpcyBwYXlsb2Fk
IGRhdGEgb2YgdGhlIG9yaWdpbmFsCisgICAgICAgICMgZnJhbWUuCisgICAgICAgIHNlbGYuX3Jl
YWRfcG9zaXRpb24gPSBsZW4oc2VsZi5fZGF0YSkKKyAgICAgICAgcmV0dXJuIGZpbiwgcnN2MSwg
cnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkCisKKyAgICBkZWYgX3JlYWRfbnVtYmVyKHNlbGYp
OgorICAgICAgICBpZiBzZWxmLl9yZWFkX3Bvc2l0aW9uICsgMSA+IGxlbihzZWxmLl9kYXRhKToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgJ0Nhbm5vdCBy
ZWFkIHRoZSBmaXJzdCBieXRlIG9mIG51bWJlciBmaWVsZCcpCisKKyAgICAgICAgbnVtYmVyID0g
b3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCisgICAgICAgIGlmIG51bWJlciAm
IDB4ODAgPT0gMHg4MDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAg
ICAgICAgJ1RoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBudW1i
ZXIgc2hvdWxkICcKKyAgICAgICAgICAgICAgICAnYmUgdW5zZXQnKQorICAgICAgICBzZWxmLl9y
ZWFkX3Bvc2l0aW9uICs9IDEKKyAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgorICAg
ICAgICBpZiBudW1iZXIgPT0gMTI3OgorICAgICAgICAgICAgaWYgcG9zICsgOCA+IGxlbihzZWxm
Ll9kYXRhKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJl
ciBmaWVsZCcpCisgICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDgKKyAgICAgICAg
ICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFRJywgc2VsZi5fZGF0YVtwb3M6cG9zKzhdKVsw
XQorICAgICAgICAgICAgaWYgbnVtYmVyID4gMHg3RkZGRkZGRkZGRkZGRkZGOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VuY29kZWQgbnVtYmVyKCVkKSA+PSAyXjYzJyAlIG51
bWJlcikKKyAgICAgICAgICAgIGlmIG51bWJlciA8PSAweEZGRkY6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3QgYmUg
ZW5jb2RlZCBieSA5IGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKKyAgICAgICAgICAgIHJldHVy
biBudW1iZXIKKyAgICAgICAgaWYgbnVtYmVyID09IDEyNjoKKyAgICAgICAgICAgIGlmIHBvcyAr
IDIgPiBsZW4oc2VsZi5fZGF0YSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
SW52YWxpZCBudW1iZXIgZmllbGQnKQorICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiAr
PSAyCisgICAgICAgICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHNlbGYuX2RhdGFb
cG9zOnBvcysyXSlbMF0KKyAgICAgICAgICAgIGlmIG51bWJlciA8PSAxMjU6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBu
b3QgYmUgZW5jb2RlZCBieSAzIGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKKyAgICAgICAgcmV0
dXJuIG51bWJlcgorCisgICAgZGVmIF9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgorICAg
ICAgICAiIiJSZWFkIGRhdGEgdGhhdCBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nOgorICAgICAg
ICAgICAgLSB0aGUgc2l6ZSBvZiB0aGUgY29udGVudHMgZW5jb2RlZCB0aGUgc2FtZSB3YXkgYXMg
cGF5bG9hZCBsZW5ndGgKKyAgICAgICAgICAgICAgb2YgdGhlIFdlYlNvY2tldCBQcm90b2NvbCB3
aXRoIDEgYml0IHBhZGRpbmcgYXQgdGhlIGhlYWQuCisgICAgICAgICAgICAtIHRoZSBjb250ZW50
cy4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpemUgPSBzZWxmLl9y
ZWFkX251bWJlcigpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAgICAgICAgICAg
cmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05U
Uk9MX0JMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
KGUpKQorICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCisgICAgICAgIGlmIHBvcyAr
IHNpemUgPiBsZW4oc2VsZi5fZGF0YSk6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5l
Y3Rpb25FcnJvcigKKyAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRS
T0xfQkxPQ0ssCisgICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkICVkIGJ5dGVzIGRhdGEnICUg
c2l6ZSkKKworICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IHNpemUKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2RhdGFbcG9zOnBvcytzaXplXQorCisgICAgZGVmIF9yZWFkX2FkZF9jaGFubmVs
X3JlcXVlc3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6CisgICAgICAgIHJlc2Vy
dmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDcKKyAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoK
KyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAorICAgICAgICAgICAg
ICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKKyAgICAgICAgICAgICAg
ICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKKworICAgICAgICAjIEludmFsaWQgZW5j
b2Rpbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IE11eEhhbmRsZXIuCisgICAgICAgIGVuY29kaW5nID0g
Zmlyc3RfYnl0ZSAmIDB4MworICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250cm9sX2Jsb2Nr
LmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yLCBlOgorICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RS
T1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQorICAgICAgICBjb250cm9sX2Jsb2Nr
LmVuY29kaW5nID0gZW5jb2RpbmcKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBzZWxmLl9y
ZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKKyAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hh
bmRzaGFrZSA9IGVuY29kZWRfaGFuZHNoYWtlCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2Nr
CisKKyAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgZmlyc3RfYnl0ZSwg
Y29udHJvbF9ibG9jayk6CisgICAgICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAw
eDMKKyAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKAorICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhf
Q09OVFJPTF9CTE9DSywKKyAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVu
c2V0JykKKworICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVkID0gKGZpcnN0X2J5dGUgPj4g
NCkgJiAxCisgICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYgMHgz
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNl
bGYucmVhZF9jaGFubmVsX2lkKCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAg
ICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURf
TVVYX0NPTlRST0xfQkxPQ0spCisgICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RlZF9oYW5kc2hh
a2UgPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKKyAgICAgICAgcmV0dXJuIGNvbnRy
b2xfYmxvY2sKKworICAgIGRlZiBfcmVhZF9mbG93X2NvbnRyb2woc2VsZiwgZmlyc3RfYnl0ZSwg
Y29udHJvbF9ibG9jayk6CisgICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWYKKyAg
ICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVj
dGlvbkVycm9yKAorICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJP
TF9CTE9DSywKKyAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykK
KworICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBz
ZWxmLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRfcXVv
dGEgPSBzZWxmLl9yZWFkX251bWJlcigpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgor
ICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZB
TElEX01VWF9DT05UUk9MX0JMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RyKGUpKQorCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCisKKyAgICBk
ZWYgX3JlYWRfZHJvcF9jaGFubmVsKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgor
ICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFmCisgICAgICAgIGlmIHJlc2VydmVk
ICE9IDA6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAg
ICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisgICAgICAg
ICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCisKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxf
aWQoKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgIHJhaXNlIFBo
eXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9D
SykKKyAgICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCisgICAg
ICAgIGlmIGxlbihyZWFzb24pID09IDA6CisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3Bf
Y29kZSA9IE5vbmUKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0gJycK
KyAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgorICAgICAgICAgICAgY29udHJvbF9ibG9j
ay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCisgICAgICAg
ICAgICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAorICAgICAgICAg
ICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKKyAgICAgICAgICAg
ICAgICAnUmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBjb25haW5zIG9ubHkgMS1ieXRlIHJlYXNv
bicpCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCisKKyAgICBkZWYgX3JlYWRfbmV3X2No
YW5uZWxfc2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKKyAgICAgICAgcmVz
ZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZQorICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgorICAg
ICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCisgICAgICAgICAgICAgICAg
X0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAorICAgICAgICAgICAgICAgICdS
ZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQorICAgICAgICBjb250cm9sX2Jsb2NrLmZhbGxi
YWNrID0gZmlyc3RfYnl0ZSAmIDEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29udHJvbF9i
bG9jay5zbG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKKyAgICAgICAgICAgIGNvbnRyb2xfYmxv
Y2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKKyAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJP
UF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2Nr
CisKKyAgICBkZWYgcmVhZF9jb250cm9sX2Jsb2NrcyhzZWxmKToKKyAgICAgICAgIiIiUmVhZCBj
b250cm9sIGJsb2NrKHMpLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgY29udGFpbnMgaW52YWxpZCBjb250cm9s
CisgICAgICAgICAgICAgICBibG9jayhzKS4KKyAgICAgICAgICAgU3RvcEl0ZXJhdGlvbjogd2hl
biBubyBjb250cm9sIGJsb2NrcyBsZWZ0LgorICAgICAgICAiIiIKKyAgICAgICAgd2hpbGUgc2Vs
Zi5fcmVhZF9wb3NpdGlvbiA8IGxlbihzZWxmLl9kYXRhKToKKyAgICAgICAgICAgIGZpcnN0X2J5
dGUgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKKyAgICAgICAgICAgIHNl
bGYuX3JlYWRfcG9zaXRpb24gKz0gMQorICAgICAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUg
Pj4gNSkgJiAweDcKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9w
Y29kZT1vcGNvZGUpCisgICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NI
QU5ORUxfUkVRVUVTVDoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9jaGFu
bmVsX3JlcXVlc3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAgICAgICAgIGVsaWYg
b3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgorICAgICAgICAgICAg
ICAgIHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCisgICAgICAgICAgICAg
ICAgICAgIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCisgICAgICAgICAgICBlbGlmIG9wY29k
ZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6CisgICAgICAgICAgICAgICAgeWllbGQgc2Vs
Zi5fcmVhZF9mbG93X2NvbnRyb2woZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAgICAg
ICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKKyAgICAgICAgICAg
ICAgICB5aWVsZCBzZWxmLl9yZWFkX2Ryb3BfY2hhbm5lbChmaXJzdF9ieXRlLCBjb250cm9sX2Js
b2NrKQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxf
U0xPVDoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX25ld19jaGFubmVsX3Nsb3Qo
Zmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCisgICAgICAgICAgICAgICAgICAg
IF9EUk9QX0NPREVfVU5LTk9XTl9NVVhfT1BDT0RFLAorICAgICAgICAgICAgICAgICAgICAnSW52
YWxpZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQorCisgICAgICAgIGFzc2VydCBzZWxmLl9yZWFkX3Bv
c2l0aW9uID09IGxlbihzZWxmLl9kYXRhKQorICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisK
KyAgICBkZWYgcmVtYWluaW5nX2RhdGEoc2VsZik6CisgICAgICAgICIiIlJldHVybiByZW1haW5p
bmcgZGF0YS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlv
bjpdCisKKworY2xhc3MgX0xvZ2ljYWxSZXF1ZXN0KG9iamVjdCk6CisKKyAgICAiIiJNaW1pY3Mg
bW9kX3B5dGhvbiByZXF1ZXN0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxf
aWQsIGNvbW1hbmQsIHBhdGgsIHByb3RvY29sLCBoZWFkZXJzLAorICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAg
IEFyZ3M6CisgICAgICAgICAgICBjaGFubmVsX2lkOiB0aGUgY2hhbm5lbCBpZCBvZiB0aGUgbG9n
aWNhbCBjaGFubmVsLgorICAgICAgICAgICAgY29tbWFuZDogSFRUUCByZXF1ZXN0IGNvbW1hbmQu
CisgICAgICAgICAgICBwYXRoOiBIVFRQIHJlcXVlc3QgcGF0aC4KKyAgICAgICAgICAgIGhlYWRl
cnM6IEhUVFAgaGVhZGVycy4KKyAgICAgICAgICAgIGNvbm5lY3Rpb246IF9Mb2dpY2FsQ29ubmVj
dGlvbiBpbnN0YW5jZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNo
YW5uZWxfaWQKKyAgICAgICAgc2VsZi5tZXRob2QgPSBjb21tYW5kCisgICAgICAgIHNlbGYudXJp
ID0gcGF0aAorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2VsZi5o
ZWFkZXJzX2luID0gaGVhZGVycworICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9u
CisgICAgICAgIHNlbGYuc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLmNs
aWVudF90ZXJtaW5hdGVkID0gRmFsc2UKKworICAgIGRlZiBpc19odHRwcyhzZWxmKToKKyAgICAg
ICAgIiIiTWltaWMgcmVxdWVzdC5pc19odHRwcygpLgorCisgICAgICAgIFJldHVybnMgRmFsc2Ug
YmVjYXVzZSB0aGlzIG1ldGhvZCBpcyB1c2VkIG9ubHkgYnkgb2xkIHByb3RvY29scworICAgICAg
ICAoaGl4aWUgYW5kIGh5YmkwMCkuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UK
KworCitjbGFzcyBfTG9naWNhbENvbm5lY3Rpb24ob2JqZWN0KToKKworICAgICIiIk1pbWljcyBt
b2RfcHl0aG9uIG1wX2Nvbm4uIiIiCisKKyAgICAjIEZvciBkZXRhaWxzLCBzZWUgdGhlIGNvbW1l
bnQgb2Ygc2V0X3JlYWRfc3RhdGUoKS4KKyAgICBTVEFURV9BQ1RJVkUgPSAxCisgICAgU1RBVEVf
R1JBQ0VGVUxMWV9DTE9TRUQgPSAyCisgICAgU1RBVEVfVEVSTUlOQVRFRCA9IDMKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlciwgY2hhbm5lbF9pZCk6CisgICAgICAgICIiIkNv
bnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbXV4X2hh
bmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgorICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hh
bm5lbCBpZCBvZiB0aGlzIGNvbm5lY3Rpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCisgICAgICAgIHNlbGYuX2NoYW5uZWxfaWQgPSBjaGFu
bmVsX2lkCisgICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSAnJworCisgICAgICAgICMgLSBQ
cm90ZWN0cyBfd2FpdGluZ193cml0ZV9jb21wbGV0aW9uCisgICAgICAgICMgLSBTaWduYWxzIHRo
ZSB0aHJlYWQgd2FpdGluZyBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSBieSBtdXggaGFuZGxlcgor
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKKyAg
ICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKKworICAgICAgICBz
ZWxmLl9yZWFkX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQorICAgICAgICBzZWxm
Ll9yZWFkX3N0YXRlID0gc2VsZi5TVEFURV9BQ1RJVkUKKworICAgIGRlZiBnZXRfbG9jYWxfYWRk
cihzZWxmKToKKyAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9jYWxfYWRkci4i
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24u
Z2V0X2xvY2FsX2FkZHIoKQorICAgIGxvY2FsX2FkZHIgPSBwcm9wZXJ0eShnZXRfbG9jYWxfYWRk
cikKKworICAgIGRlZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6CisgICAgICAgICIiIkdldHRlciB0
byBtaW1pYyBtcF9jb25uLnJlbW90ZV9hZGRyLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbXV4
X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5nZXRfcmVtb3RlX2FkZHIoKQorICAgIHJlbW90
ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRyKQorCisgICAgZGVmIGdldF9tZW1vcml6
ZWRfbGluZXMoc2VsZik6CisgICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIE5vdCBzdXBw
b3J0ZWQuIiIiCisgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ19Mb2dpY2Fs
Q29ubmVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpCisKKyAgICBkZWYgd3JpdGUoc2VsZiwg
ZGF0YSk6CisgICAgICAgICIiIldyaXRlIGRhdGEuIG11eF9oYW5kbGVyIHNlbmRzIGRhdGEgYXN5
bmNocm9ub3VzbHkuCisKKyAgICAgICAgVGhlIGNhbGxlciB3aWxsIGJlIHN1c3BlbmRlZCB1bnRp
bCB3cml0ZSBkb25lLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBkYXRhIHRv
IGJlIHdyaXR0ZW4uCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgTXV4VW5leHBlY3Rl
ZEV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgYmVmb3JlIGZpbmlzaGluZyB0aGUgcHJldmlvdXMKKyAg
ICAgICAgICAgICAgICB3cml0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIGlmIHNlbGYu
X3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4
cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0aW9u
ICVkIGlzIGFscmVhZHkgd2FpdGluZyB0aGUgY29tcGxldGlvbiAnCisgICAgICAgICAgICAgICAg
ICAgICdvZiB3cml0ZScgJSBzZWxmLl9jaGFubmVsX2lkKQorCisgICAgICAgICAgICBzZWxmLl93
YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9tdXhfaGFu
ZGxlci5zZW5kX2RhdGEoc2VsZi5fY2hhbm5lbF9pZCwgZGF0YSkKKyAgICAgICAgICAgIHNlbGYu
X3dyaXRlX2NvbmRpdGlvbi53YWl0KCkKKyAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFJh
aXNlIGFuIGV4Y2VwdGlvbiBpZiB3b2tlIHVwIGJ5IG9uX3dyaXRlcl9kb25lLgorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisg
ICAgZGVmIHdyaXRlX2NvbnRyb2xfZGF0YShzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiV3JpdGUg
ZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4KKworICAgICAgICBEb24ndCB3YWl0IGZpbmlz
aGluZyB3cml0ZSBiZWNhdXNlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgYnkKKyAgICAgICAg
bXV4IGRpc3BhdGNoZXIuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6IGRhdGEg
dG8gYmUgd3JpdHRlbi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnNl
bmRfY29udHJvbF9kYXRhKGRhdGEpCisKKyAgICBkZWYgb25fd3JpdGVfZGF0YV9kb25lKHNlbGYp
OgorICAgICAgICAiIiJDYWxsZWQgd2hlbiBzZW5kaW5nIGRhdGEgaXMgY29tcGxldGVkLiIiIgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWlyZSgp
CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgorICAg
ICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgICAgICdJbnZhbGlkIGNhbGwgb2Ygb25fd3JpdGVfZGF0YV9kb25lIGZvciBsb2dpY2FsICcK
KyAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24gJWQnICUgc2VsZi5fY2hhbm5lbF9pZCkK
KyAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCisgICAg
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKKworICAgIGRlZiBv
bl93cml0ZXJfZG9uZShzZWxmKToKKyAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSBtdXggaGFuZGxl
ciB3aGVuIHRoZSB3cml0ZXIgdGhyZWFkIGhhcyBmaW5pc2hlZC4iIiIKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAg
c2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYu
X3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
c2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGFwcGVuZF9mcmFtZV9k
YXRhKHNlbGYsIGZyYW1lX2RhdGEpOgorICAgICAgICAiIiJBcHBlbmQgaW5jb21pbmcgZnJhbWUg
ZGF0YS4KKworICAgICAgICBDYWxsZWQgd2hlbiBtdXhfaGFuZGxlciBkaXNwYXRjaGVzIGZyYW1l
IGRhdGEgdG8gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgYXBwbGljYXRpb24uCisKKyAgICAg
ICAgQXJnczoKKyAgICAgICAgICAgIGZyYW1lX2RhdGE6IGluY29taW5nIGZyYW1lIGRhdGEuCisg
ICAgICAgICIiIgorICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAg
ICAgc2VsZi5faW5jb21pbmdfZGF0YSArPSBmcmFtZV9kYXRhCisgICAgICAgIHNlbGYuX3JlYWRf
Y29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2Uo
KQorCisgICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVhZCBkYXRhLgor
CisgICAgICAgIEJsb2NrcyB1bnRpbCBlbm91Z2ggZGF0YSBoYXMgYXJyaXZlZCB2aWEgcGh5c2lj
YWwgY29ubmVjdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbGVuZ3RoOiBsZW5n
dGggb2YgZGF0YSB0byBiZSByZWFkLgorICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBMb2dp
Y2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBmb3Ig
dGhpcworICAgICAgICAgICAgICAgIGxvZ2ljYWwgY2hhbm5lbCBoYXMgYmVlbiByZWNlaXZlZC4K
KyAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBwaHlz
aWNhbCBjb25uZWN0aW9uIGhhcworICAgICAgICAgICAgICAgIGNsb3NlZCwgb3IgYW4gZXJyb3Ig
aXMgY2F1c2VkIG9uIHRoZSByZWFkZXIgdGhyZWFkLgorICAgICAgICAiIiIKKyAgICAgICAgc2Vs
Zi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgIHdoaWxlIChzZWxmLl9yZWFkX3N0
YXRlID09IHNlbGYuU1RBVEVfQUNUSVZFIGFuZAorICAgICAgICAgICAgICAgbGVuKHNlbGYuX2lu
Y29taW5nX2RhdGEpIDwgbGVuZ3RoKToKKyAgICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9u
LndhaXQoKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNlbGYuX3JlYWRfc3RhdGUg
PT0gc2VsZi5TVEFURV9HUkFDRUZVTExZX0NMT1NFRDoKKyAgICAgICAgICAgICAgICByYWlzZSBM
b2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgJ0xv
Z2ljYWwgY2hhbm5lbCAlZCBoYXMgY2xvc2VkLicgJSBzZWxmLl9jaGFubmVsX2lkKQorICAgICAg
ICAgICAgZWxpZiBzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfVEVSTUlOQVRFRDoKKyAg
ICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKKyAgICAg
ICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gTG9naWNhbCBjaGFubmVs
ICglZCkgY2xvc2VkJyAlCisgICAgICAgICAgICAgICAgICAgIChsZW5ndGgsIHNlbGYuX2NoYW5u
ZWxfaWQpKQorCisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2luY29taW5nX2RhdGFbOmxlbmd0
aF0KKyAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSBzZWxmLl9pbmNvbWluZ19kYXRh
W2xlbmd0aDpdCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2NvbmRp
dGlvbi5yZWxlYXNlKCkKKworICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiBzZXRfcmVh
ZF9zdGF0ZShzZWxmLCBuZXdfc3RhdGUpOgorICAgICAgICAiIiJTZXQgdGhlIHN0YXRlIG9mIHRo
aXMgY29ubmVjdGlvbi4KKworICAgICAgICBDYWxsZWQgd2hlbiBhbiBldmVudCBmb3IgdGhpcyBj
b25uZWN0aW9uIGhhcyBvY2N1cnJlZC4KKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG5ld19z
dGF0ZTogc3RhdGUgdG8gYmUgc2V0LiBuZXdfc3RhdGUgbXVzdCBiZSBvbmUgb2YgZm9sbG93aW5n
czoKKyAgICAgICAgICAgIC0gU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6IHdoZW4gY2xvc2luZyBo
YW5kc2hha2UgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGhhcyBiZWVuIHJl
Y2VpdmVkLgorICAgICAgICAgICAgLSBTVEFURV9URVJNSU5BVEVEOiB3aGVuIHRoZSBwaHlzaWNh
bCBjb25uZWN0aW9uIGhhcyBjbG9zZWQgb3IKKyAgICAgICAgICAgICAgICBEcm9wQ2hhbm5lbCBv
ZiB0aGlzIGNvbm5lY3Rpb24gaGFzIHJlY2VpdmVkLgorICAgICAgICAiIiIKKyAgICAgICAgc2Vs
Zi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgIHNlbGYuX3JlYWRfc3RhdGUgPSBu
ZXdfc3RhdGUKKyAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAgICAg
c2VsZi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCisKKworY2xhc3MgX0lubmVyTWVzc2FnZShv
YmplY3QpOgorCisgICAgIiIiSG9sZCB0aGUgcmVzdWx0IG9mIF9Jbm5lck1lc3NhZ2VCdWlsZGVy
LmJ1aWxkKCkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlLCBwYXlsb2FkKToK
KyAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKKyAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5
bG9hZAorCisKK2NsYXNzIF9Jbm5lck1lc3NhZ2VCdWlsZGVyKG9iamVjdCk6CisKKyAgICAiIiJD
bGFzcyB0byBidWlsZCBhbiBfSW5uZXJNZXNzYWdlLgorCisgICAgQSBjbGFzcyB0aGF0IGhvbGRz
IHRoZSBjb250ZXh0IG9mIGlubmVyIG1lc3NhZ2UgZnJhZ21lbnRhdGlvbiBhbmQKKyAgICBidWls
ZHMgYSBtZXNzYWdlIGZyb20gZnJhZ21lbnRlZCBpbm5lciBmcmFtZShzKS4KKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBO
b25lCisgICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQorICAgICAg
ICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNz
YWdlX2ZyYWdtZW50cyA9IFtdCisgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9o
YW5kbGVfZmlyc3QKKworICAgIGRlZiBfaGFuZGxlX2ZpcnN0KHNlbGYsIGZyYW1lKToKKyAgICAg
ICAgaWYgZnJhbWUub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAg
ICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGlu
dWF0aW9uIG9wY29kZScpCisKKyAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZy
YW1lLm9wY29kZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFn
bWVudGVkX2NvbnRyb2woZnJhbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2UoZnJhbWUpCisKKyAgICBkZWYg
X3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZyYW1lKToKKyAgICAgICAg
c2VsZi5fY29udHJvbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKKyAgICAgICAgc2VsZi5fcGVuZGlu
Z19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKKyAgICAgICAgaWYgbm90
IGZyYW1lLmZpbjoKKyAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5k
bGVfZnJhZ21lbnRlZF9jb250cm9sCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBy
ZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQorCisgICAgZGVmIF9w
cm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6CisgICAgICAgIHNl
bGYuX21lc3NhZ2Vfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgIHNlbGYuX3BlbmRpbmdf
bWVzc2FnZV9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCisgICAgICAgIGlmIG5vdCBm
cmFtZS5maW46CisgICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxl
X2ZyYWdtZW50ZWRfbWVzc2FnZQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKKworICAgIGRlZiBfaGFu
ZGxlX2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIGZyYW1lLm9w
Y29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKKyAgICAgICAgICAgIHJhaXNlIElu
dmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9w
Y29kZSAlZCB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQgY29udHJvbCAnCisgICAgICAgICAgICAg
ICAgJ21lc3NhZ2UnICUgZnJhbWUub3Bjb2RlKQorICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRy
b2xfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAgICBpZiBub3QgZnJhbWUu
ZmluOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNz
ZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKCkKKworICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVu
dGVkX2NvbnRyb2woc2VsZik6CisgICAgICAgIG9wY29kZSA9IHNlbGYuX2NvbnRyb2xfb3Bjb2Rl
CisgICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVu
dHMpCisgICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gTm9uZQorICAgICAgICBzZWxmLl9w
ZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzID0gW10KKyAgICAgICAgaWYgc2VsZi5fbWVzc2FnZV9v
cGNvZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2Vs
Zi5faGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAorICAgICAgICByZXR1cm4g
X0lubmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCisKKyAgICBkZWYgX2hhbmRsZV9mcmFnbWVu
dGVkX21lc3NhZ2Uoc2VsZiwgZnJhbWUpOgorICAgICAgICAjIFNlbmRlciBjYW4gaW50ZXJsZWF2
ZSBhIGNvbnRyb2wgbWVzc2FnZSB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQKKyAgICAgICAgIyBt
ZXNzYWdlcy4KKyAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29k
ZSk6CisgICAgICAgICAgICBpZiBzZWxmLl9jb250cm9sX29wY29kZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICAgICAnU2hvdWxkIG5vdCByZWFjaCBoZXJlKEJ1ZyBpbiBidWlsZGVyKScpCisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woZnJhbWUp
CisKKyAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9O
OgorICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZCBt
ZXNzYWdlJyAlCisgICAgICAgICAgICAgICAgZnJhbWUub3Bjb2RlKQorICAgICAgICBzZWxmLl9w
ZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAgICBp
ZiBub3QgZnJhbWUuZmluOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKKworICAgIGRlZiBfcmVhc3Nl
bWJsZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIG9wY29kZSA9IHNlbGYuX21l
c3NhZ2Vfb3Bjb2RlCisgICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfbWVz
c2FnZV9mcmFnbWVudHMpCisgICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQorICAg
ICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0gW10KKyAgICAgICAgc2VsZi5f
ZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAorICAgICAgICByZXR1cm4gX0lubmVy
TWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCisKKyAgICBkZWYgYnVpbGQoc2VsZiwgZnJhbWUpOgor
ICAgICAgICAiIiJCdWlsZCBhbiBpbm5lciBtZXNzYWdlLgorCisgICAgICAgIFJldHVybnMgYW4g
X0lubmVyTWVzc2FnZSBpbnN0YW5jZSB3aGVuIHRoZSBnaXZlbiBmcmFtZSBpcyB0aGUgbGFzdAor
ICAgICAgICBmcmFnbWVudGVkIGZyYW1lLiBSZXR1cm5zIE5vbmUgb3RoZXJ3aXNlLgorCisgICAg
ICAgIEFyZ3M6CisgICAgICAgICAgICBmcmFtZTogYW4gaW5uZXIgZnJhbWUuCisgICAgICAgIFJh
aXNlczoKKyAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiByZWNlaXZlZCBp
bnZhbGlkIG9wY29kZS4gKGUuZy4KKyAgICAgICAgICAgICAgICByZWNlaXZpbmcgbm9uIGNvbnRp
bnVhdGlvbiBkYXRhIG9wY29kZSBidXQgdGhlIGZpbiBmbGFnIG9mCisgICAgICAgICAgICAgICAg
dGhlIHByZXZpb3VzIGlubmVyIGZyYW1lIHdhcyBub3Qgc2V0LikKKyAgICAgICAgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLl9mcmFtZV9oYW5kbGVyKGZyYW1lKQorCisKK2NsYXNzIF9Mb2dpY2Fs
U3RyZWFtKFN0cmVhbSk6CisKKyAgICAiIiJNaW1pY3MgdGhlIFN0cmVhbSBjbGFzcy4KKworICAg
IFRoaXMgY2xhc3MgaW50ZXJwcmV0cyBtdWx0aXBsZXhlZCBXZWJTb2NrZXQgZnJhbWVzLgorICAg
ICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zLCBz
ZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3Rh
bmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVl
c3QgaW5zdGFuY2UuCisgICAgICAgICAgICBzdHJlYW1fb3B0aW9uczogU3RyZWFtT3B0aW9ucyBp
bnN0YW5jZS4KKyAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4KKyAg
ICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KKyAgICAgICAg
IiIiCisgICAgICAgICMgUGh5c2ljYWwgc3RyZWFtIGlzIHJlc3BvbnNpYmxlIGZvciBtYXNraW5n
LgorICAgICAgICBzdHJlYW1fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCisgICAgICAg
IFN0cmVhbS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykKKworICAgICAg
ICBzZWxmLl9zZW5kX2Nsb3NlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSBz
ZW5kX3F1b3RhCisgICAgICAgICMgLSBQcm90ZWN0cyBfc2VuZF9jbG9zZWQgYW5kIF9zZW5kX3F1
b3RhCisgICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJlYWQgd2FpdGluZyBmb3Igc2VuZCBxdW90
YSByZXBsZW5pc2hlZAorICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbiA9IHRocmVhZGluZy5D
b25kaXRpb24oKQorCisgICAgICAgICMgVGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhbWUgaW4g
bWVzc2FnZXMuCisgICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9U
RVhUCisgICAgICAgICMgVHJ1ZSB3aGVuIHRoZSBsYXN0IG1lc3NhZ2Ugd2FzIGZyYWdtZW50ZWQu
CisgICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZCA9IEZhbHNlCisKKyAg
ICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSA9IHJlY2VpdmVfcXVvdGEKKyAgICAgICAgc2VsZi5f
d3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlID0gdGhyZWFkaW5nLlNlbWFwaG9yZSgpCisKKyAg
ICAgICAgc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyID0gX0lubmVyTWVzc2FnZUJ1aWxkZXIo
KQorCisgICAgZGVmIF9jcmVhdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXlsb2FkLCBl
bmQ9VHJ1ZSk6CisgICAgICAgIGZyYW1lID0gRnJhbWUoZmluPWVuZCwgb3Bjb2RlPW9wY29kZSwg
cGF5bG9hZD1wYXlsb2FkKQorICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlv
bnMub3V0Z29pbmdfZnJhbWVfZmlsdGVyczoKKyAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0
ZXIoZnJhbWUpCisKKyAgICAgICAgaWYgbGVuKHBheWxvYWQpICE9IGxlbihmcmFtZS5wYXlsb2Fk
KToKKyAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCisgICAgICAgICAg
ICAgICAgJ011eCBleHRlbnNpb24gbXVzdCBub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25zIHdo
aWNoIGNoYW5nZSAnCisgICAgICAgICAgICAgICAgJyBmcmFtZSBib3VuZGFyeScpCisKKyAgICAg
ICAgZmlyc3RfYnl0ZSA9ICgoZnJhbWUuZmluIDw8IDcpIHwgKGZyYW1lLnJzdjEgPDwgNikgfAor
ICAgICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YyIDw8IDUpIHwgKGZyYW1lLnJzdjMgPDwg
NCkgfCBmcmFtZS5vcGNvZGUpCisgICAgICAgIHJldHVybiBjaHIoZmlyc3RfYnl0ZSkgKyBmcmFt
ZS5wYXlsb2FkCisKKyAgICBkZWYgX3dyaXRlX2lubmVyX2ZyYW1lKHNlbGYsIG9wY29kZSwgcGF5
bG9hZCwgZW5kPVRydWUpOgorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXlsb2FkKQor
ICAgICAgICB3cml0ZV9wb3NpdGlvbiA9IDAKKworICAgICAgICB0cnk6CisgICAgICAgICAgICAj
IEFuIGlubmVyIGZyYW1lIHdpbGwgYmUgZnJhZ21lbnRlZCBpZiB0aGVyZSBpcyBubyBlbm91Z2gg
c2VuZAorICAgICAgICAgICAgIyBxdW90YS4gVGhpcyBzZW1hcGhvcmUgZW5zdXJlcyB0aGF0IGZy
YWdtZW50ZWQgaW5uZXIgZnJhbWVzIGFyZQorICAgICAgICAgICAgIyBzZW50IGluIG9yZGVyIG9u
IHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAgICAgICAgICAjIE5vdGUgdGhhdCBmcmFtZXMgdGhh
dCBjb21lIGZyb20gb3RoZXIgbG9naWNhbCBjaGFubmVscyBvcgorICAgICAgICAgICAgIyBtdWx0
aXBsZXhpbmcgY29udHJvbCBibG9ja3MgY2FuIGJlIGluc2VydGVkIGJldHdlZW4gZnJhZ21lbnRl
ZAorICAgICAgICAgICAgIyBpbm5lciBmcmFtZXMgb24gdGhlIHBoeXNpY2FsIGNoYW5uZWwuCisg
ICAgICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUuYWNxdWlyZSgpCisK
KyAgICAgICAgICAgICMgQ29uc3VtZSBhbiBvY3RldCBxdW90YSB3aGVuIHRoaXMgaXMgdGhlIGZp
cnN0IGZyYWdtZW50ZWQgZnJhbWUuCisgICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9Q
Q09ERV9DT05USU5VQVRJT046CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICAgICAg
d2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0gMDoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQorCisg
ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgorICAgICAgICAgICAgICAg
ICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQorCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgLT0gMQorICAgICAgICAgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQorCisg
ICAgICAgICAgICB3aGlsZSB3cml0ZV9wb3NpdGlvbiA8IHBheWxvYWRfbGVuZ3RoOgorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24u
YWNxdWlyZSgpCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2VuZF9jbG9z
ZWQpIGFuZCBzZWxmLl9zZW5kX3F1b3RhID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIHF1b3Rh
LiBXYWl0aW5nIEZsb3dDb250cm9sIG1lc3NhZ2UgZm9yICVkLicgJQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQorCisgICAgICAgICAgICAgICAgICAg
IGlmIHNlbGYuX3NlbmRfY2xvc2VkOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgQmFk
T3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMb2dpY2Fs
IGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5yZXF1ZXN0Ll9jaGFubmVsX2lkKQorCisgICAgICAgICAgICAgICAgICAgIHJlbWFpbmlu
ZyA9IHBheWxvYWRfbGVuZ3RoIC0gd3JpdGVfcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAg
d3JpdGVfbGVuZ3RoID0gbWluKHNlbGYuX3NlbmRfcXVvdGEsIHJlbWFpbmluZykKKyAgICAgICAg
ICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kID0gKAorICAgICAgICAgICAgICAgICAgICAgICAg
ZW5kIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX3Bvc2l0aW9uICsgd3JpdGVf
bGVuZ3RoID09IHBheWxvYWRfbGVuZ3RoKSkKKworICAgICAgICAgICAgICAgICAgICBpbm5lcl9m
cmFtZSA9IHNlbGYuX2NyZWF0ZV9pbm5lcl9mcmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWRbd3JpdGVfcG9zaXRpb246
d3JpdGVfcG9zaXRpb24rd3JpdGVfbGVuZ3RoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlu
bmVyX2ZyYW1lX2VuZCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAtPSB3
cml0ZV9sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25z
dW1lZCBxdW90YT0lZCwgcmVtYWluaW5nPSVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAod3JpdGVfbGVuZ3RoLCBzZWxmLl9zZW5kX3F1b3RhKSkKKyAgICAgICAg
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlv
bi5yZWxlYXNlKCkKKworICAgICAgICAgICAgICAgICMgV3JpdGluZyBkYXRhIHdpbGwgYmxvY2sg
dGhlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKKyAgICAgICAgICAgICAgICAjIF9zZW5k
X2NvbmRpdGlvbiBiZWZvcmUgd3JpdGluZy4KKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1NlbmRpbmcgaW5uZXIgZnJhbWU6ICVyJyAlIGlubmVyX2ZyYW1lKQorICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShpbm5lcl9mcmFtZSkKKyAgICAg
ICAgICAgICAgICB3cml0ZV9wb3NpdGlvbiArPSB3cml0ZV9sZW5ndGgKKworICAgICAgICAgICAg
ICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCisKKyAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24o
ZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1l
X3NlbWFwaG9yZS5yZWxlYXNlKCkKKworICAgIGRlZiByZXBsZW5pc2hfc2VuZF9xdW90YShzZWxm
LCBzZW5kX3F1b3RhKToKKyAgICAgICAgIiIiUmVwbGVuaXNoIHNlbmQgcXVvdGEuIiIiCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQorICAg
ICAgICAgICAgaWYgc2VsZi5fc2VuZF9xdW90YSArIHNlbmRfcXVvdGEgPiAweDdGRkZGRkZGRkZG
RkZGRkY6CisgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IDAKKyAgICAgICAgICAg
ICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAorICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVykKKyAg
ICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgKz0gc2VuZF9xdW90YQorICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdSZXBsZW5pc2hlZCBzZW5kIHF1b3RhIGZvciBjaGFubmVsIGlkICVk
OiAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNo
YW5uZWxfaWQsIHNlbGYuX3NlbmRfcXVvdGEpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAgICAgICAgIHNlbGYuX3NlbmRf
Y29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGNvbnN1bWVfcmVjZWl2ZV9xdW90YShzZWxm
LCBhbW91bnQpOgorICAgICAgICAiIiJDb25zdW1lIHJlY2VpdmUgcXVvdGEuIFJldHVybnMgRmFs
c2Ugb24gZmFpbHVyZS4iIiIKKyAgICAgICAgaWYgc2VsZi5fcmVjZWl2ZV9xdW90YSA8IGFtb3Vu
dDoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnVmlvbGF0ZSBxdW90YSBvbiBjaGFu
bmVsIGlkICVkOiAlZCA8ICVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl
bGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVjZWl2ZV9xdW90YSwgYW1vdW50KSkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhIC09IGFtb3VudAorICAgICAgICByZXR1cm4gVHJ1
ZQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5
PUZhbHNlKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnNlbmRfbWVzc2FnZS4iIiIKKyAg
ICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAgICAgIHJh
aXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHNl
bmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKKworICAg
ICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5pY29kZSk6CisgICAgICAg
ICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ01lc3Nh
Z2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0cicpCisKKyAgICAgICAg
aWYgYmluYXJ5OgorICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAorICAg
ICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCisKKyAgICAgICAgZm9y
IG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJz
OgorICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihtZXNzYWdlLCBl
bmQsIGJpbmFyeSkKKworICAgICAgICBpZiBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50
ZWQ6CisgICAgICAgICAgICBpZiBvcGNvZGUgIT0gc2VsZi5fbWVzc2FnZV9vcGNvZGU6CisgICAg
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdNZXNzYWdlIHR5cGVzIGFy
ZSBkaWZmZXJlbnQgaW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnZnJhbWVzIGZvciB0aGUgc2FtZSBtZXNzYWdlJykKKyAgICAgICAgICAgIG9wY29kZSA9
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz
ZWxmLl9tZXNzYWdlX29wY29kZSA9IG9wY29kZQorCisgICAgICAgIHNlbGYuX3dyaXRlX2lubmVy
X2ZyYW1lKG9wY29kZSwgbWVzc2FnZSwgZW5kKQorICAgICAgICBzZWxmLl9sYXN0X21lc3NhZ2Vf
d2FzX2ZyYWdtZW50ZWQgPSBub3QgZW5kCisKKyAgICBkZWYgX3JlY2VpdmVfZnJhbWUoc2VsZik6
CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZS4KKworICAgICAgICBJ
biBhZGRpdGlvbiB0byBjYWxsIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZSwgdGhpcyBtZXRob2QgYWRk
cyB0aGUgYW1vdW50CisgICAgICAgIG9mIHBheWxvYWQgdG8gcmVjZWl2aW5nIHF1b3RhIGFuZCBz
ZW5kcyBGbG93Q29udHJvbCB0byB0aGUgY2xpZW50LgorICAgICAgICBXZSBuZWVkIHRvIGRvIGl0
IGhlcmUgYmVjYXVzZSBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkgaGFuZGxlcworICAgICAgICBj
b250cm9sIGZyYW1lcyBpbnRlcm5hbGx5LgorICAgICAgICAiIiIKKyAgICAgICAgb3Bjb2RlLCBw
YXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBTdHJlYW0uX3JlY2VpdmVfZnJhbWUoc2Vs
ZikKKyAgICAgICAgYW1vdW50ID0gbGVuKHBheWxvYWQpCisgICAgICAgICMgUmVwbGVuaXNoIGV4
dHJhIG9uZSBvY3RldCB3aGVuIHJlY2VpdmluZyB0aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFtZS4K
KyAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAg
ICAgICAgYW1vdW50ICs9IDEKKyAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSArPSBhbW91bnQK
KyAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9sKHNlbGYuX3JlcXVlc3Qu
Y2hhbm5lbF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFt
b3VudCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGZsb3cgY29udHJvbCBm
b3IgJWQsIHJlcGxlbmlzaGVkPSVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vs
Zi5fcmVxdWVzdC5jaGFubmVsX2lkLCBhbW91bnQpKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisgICAgICAgIHJldHVybiBv
cGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MworCisgICAgZGVmIF9nZXRfbWVz
c2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFt
Ll9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lLiIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBp
bm5lcl9tZXNzYWdlID0gc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyLmJ1aWxkKGZyYW1lKQor
ICAgICAgICBleGNlcHQgSW52YWxpZEZyYW1lRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFpc2Ug
TG9naWNhbENoYW5uZWxFcnJvcigKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5u
ZWxfaWQsIF9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04pCisKKyAgICAgICAgaWYgaW5uZXJf
bWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgc2VsZi5f
b3JpZ2luYWxfb3Bjb2RlID0gaW5uZXJfbWVzc2FnZS5vcGNvZGUKKyAgICAgICAgcmV0dXJuIGlu
bmVyX21lc3NhZ2UucGF5bG9hZAorCisgICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKKyAg
ICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZS4iIiIKKyAgICAgICAgIyBK
dXN0IGNhbGwgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpLCBidXQgY2F0Y2gKKyAgICAgICAgIyBM
b2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiwgd2hpY2ggaXMgcmFpc2VkIHdoZW4gdGhl
IGxvZ2ljYWwKKyAgICAgICAgIyBjb25uZWN0aW9uIGhhcyBjbG9zZWQgZ3JhY2VmdWxseS4KKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2Uoc2Vs
ZikKKyAgICAgICAgZXhjZXB0IExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uLCBlOgor
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUsIHJl
YXNvbik6CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRzaGFr
ZS4iIiIKKyAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUs
IHJlYXNvbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGNsb3NpbmcgaGFu
ZHNoYWtlIGZvciAlZDogKCVyLCAlciknICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGNvZGUsIHJlYXNvbikpCisgICAgICAgIHNlbGYuX3dy
aXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIGVuZD1UcnVlKQorCisg
ICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCisKKyAgICBkZWYg
c2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgorICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uc2Vu
ZF9waW5nLiIiIgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcGluZyBvbiBs
b2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Vs
Zi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKKyAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJf
ZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBib2R5LCBlbmQ9VHJ1ZSkKKworICAgICAgICBzZWxm
Ll9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQorCisgICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwgYm9k
eSk6CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9wb25nLiIiIgorICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVy
JyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lk
LCBib2R5KSkKKyAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9Q
T05HLCBib2R5LCBlbmQ9VHJ1ZSkKKworICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNv
ZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKKyAgICAgICAgIiIi
T3ZlcnJpZGUgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24uIiIiCisgICAgICAgICMgVE9ETyhiYXNo
aSk6IEltcGxlbWVudAorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9naWNh
bCBjb25uZWN0aW9uICVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQg
PSBUcnVlCisKKyAgICBkZWYgc3RvcF9zZW5kaW5nKHNlbGYpOgorICAgICAgICAiIiJTdG9wIGFj
Y2VwdGluZyBuZXcgc2VuZCBvcGVyYXRpb24gKF93cml0ZV9pbm5lcl9mcmFtZSkuIiIiCisgICAg
ICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICBzZWxmLl9zZW5kX2Ns
b3NlZCA9IFRydWUKKyAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAg
ICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCisKKworY2xhc3MgX091dGdvaW5nRGF0
YShvYmplY3QpOgorCisgICAgIiIiU2ltcGxlIGRhdGEvY2hhbm5lbCBjb250YWluZXIuCisKKyAg
ICBBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGRhdGEgdG8gYmUgc2VudCB2aWEgcGh5c2ljYWwgY29u
bmVjdGlvbiBhbmQKKyAgICBvcmlnaW4gb2YgdGhlIGRhdGEuCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6CisgICAgICAgIHNlbGYuY2hhbm5lbF9p
ZCA9IGNoYW5uZWxfaWQKKyAgICAgICAgc2VsZi5kYXRhID0gZGF0YQorCisKK2NsYXNzIF9QaHlz
aWNhbENvbm5lY3Rpb25Xcml0ZXIodGhyZWFkaW5nLlRocmVhZCk6CisKKyAgICAiIiJBIHRocmVh
ZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIGRhdGEgdG8gcGh5c2ljYWwgY29ubmVj
dGlvbi4KKworICAgIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gdGhyZWFkLXNh
ZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRlcgorICAgIHRocmVhZCByZWFkcyBkYXRhIGZyb20g
dGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtdXhfaGFuZGxlcik6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKwor
ICAgICAgICBBcmdzOgorICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3Rh
bmNlLgorICAgICAgICAiIiIKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxm
KQorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKyAg
ICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgorICAgICAgICBzZWxmLnNldERh
ZW1vbihUcnVlKQorCisgICAgICAgICMgV2hlbiBzZXQsIG1ha2UgdGhpcyB0aHJlYWQgc3RvcCBh
Y2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBlbmRpbmcKKyAgICAgICAgIyBkYXRhIGFuZCBleGl0
LgorICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCisgICAgICAgICMgVGhlIGNs
b3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCisgICAgICAgIHNlbGYuX2Nsb3Nl
X2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFCisgICAgICAgICMgRGVxdWUgZm9y
IHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBwcm90ZWN0ZWQgYnkgX2RlcXVlX2NvbmRpdGlvbgor
ICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVlc3RlZCBpcyBzZXQuCisgICAgICAgIHNlbGYuX2Rl
cXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQorICAgICAgICAjIC0gUHJvdGVjdHMgX2RlcXVlLCBf
c3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9jb2RlCisgICAgICAgICMgLSBTaWduYWxzIHRocmVh
ZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBhdmFpbGFibGUKKyAgICAgICAgc2VsZi5fZGVxdWVf
Y29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCisKKyAgICBkZWYgcHV0X291dGdvaW5n
X2RhdGEoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIlB1dCBvdXRnb2luZyBkYXRhLgorCisgICAg
ICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBfT3V0Z29pbmdEYXRhIGluc3RhbmNlLgorICAg
ICAgICBSYWlzZXM6CisgICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gdGhl
IHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8KKyAgICAgICAgICAgICAgICB0ZXJtaW5hdGUu
CisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25k
aXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKKyAg
ICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ0Nhbm5vdCB3cml0ZSBk
YXRhIGFueW1vcmUnKQorCisgICAgICAgICAgICBzZWxmLl9kZXF1ZS5hcHBlbmQoZGF0YSkKKyAg
ICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVm
IF93cml0ZV9kYXRhKHNlbGYsIG91dGdvaW5nX2RhdGEpOgorICAgICAgICBtZXNzYWdlID0gKF9l
bmNvZGVfY2hhbm5lbF9pZChvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpICsKKyAgICAgICAgICAg
ICAgICAgICBvdXRnb2luZ19kYXRhLmRhdGEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5zZW5kX21lc3NhZ2UoCisgICAgICAgICAg
ICAgICAgbWVzc2FnZT1tZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PVRydWUpCisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19l
eGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6
ICcgJQorICAgICAgICAgICAgICAgIChzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0
aW9uLnJlbW90ZV9hZGRyLCksIGUpCisgICAgICAgICAgICByYWlzZQorCisgICAgICAgICMgVE9E
TyhiYXNoaSk6IEl0IHdvdWxkIGJlIGJldHRlciB0byBibG9jayB0aGUgdGhyZWFkIHRoYXQgc2Vu
ZHMKKyAgICAgICAgIyBjb250cm9sIGRhdGEgYXMgd2VsbC4KKyAgICAgICAgaWYgb3V0Z29pbmdf
ZGF0YS5jaGFubmVsX2lkICE9IF9DT05UUk9MX0NIQU5ORUxfSUQ6CisgICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5ub3RpZnlfd3JpdGVfZGF0YV9kb25lKG91dGdvaW5nX2RhdGEuY2hhbm5l
bF9pZCkKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxm
Ll9zdG9wX3JlcXVlc3RlZDoKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZGVxdWUpID09
IDA6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi53YWl0KCkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAgIG91dGdvaW5nX2Rh
dGEgPSBzZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKKworICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVl
X2NvbmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG91
dGdvaW5nX2RhdGEpCisgICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVp
cmUoKQorCisgICAgICAgICAgICAjIEZsdXNoIGRlcXVlLgorICAgICAgICAgICAgIworICAgICAg
ICAgICAgIyBBdCB0aGlzIHBvaW50LCBzZWxmLl9kZXF1ZV9jb25kaXRpb24gaXMgYWx3YXlzIGFj
cXVpcmVkLgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdoaWxlIGxlbihzZWxm
Ll9kZXF1ZSkgPiAwOgorICAgICAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2VsZi5f
ZGVxdWUucG9wbGVmdCgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3V0
Z29pbmdfZGF0YSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgICAgICAjIENsb3NlIHBoeXNpY2Fs
IGNvbm5lY3Rpb24uCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBEb24ndCB3
YWl0IHRoZSByZXNwb25zZSBoZXJlLiBUaGUgcmVzcG9uc2Ugd2lsbCBiZSByZWFkCisgICAgICAg
ICAgICAgICAgIyBieSB0aGUgcmVhZGVyIHRocmVhZC4KKyAgICAgICAgICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fY2xvc2VfY29kZSwgd2FpdF9yZXNwb25zZT1GYWxzZSkKKyAgICAgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21l
c3NhZ2VfdG9fZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIGNsb3Nl
IHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uOiAlcicgJSBlKQorICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlf
d3JpdGVyX2RvbmUoKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgY2xvc2VfY29kZT1jb21tb24uU1RB
VFVTX05PUk1BTF9DTE9TVVJFKToKKyAgICAgICAgIiIiU3RvcCB0aGUgd3JpdGVyIHRocmVhZC4i
IiIKKyAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICBzZWxm
Ll9zdG9wX3JlcXVlc3RlZCA9IFRydWUKKyAgICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNsb3Nl
X2NvZGUKKyAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAgIHNl
bGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKKworCitjbGFzcyBfUGh5c2ljYWxDb25uZWN0
aW9uUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgorCisgICAgIiIiQSB0aHJlYWQgdGhhdCBpcyBy
ZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gcGh5c2ljYWwgY29ubmVjdGlvbi4KKyAg
ICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlcik6CisgICAgICAgICIi
IkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbXV4
X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAgdGhy
ZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGls
LmdldF9jbGFzc19sb2dnZXIoc2VsZikKKyAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhf
aGFuZGxlcgorICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQorCisgICAgZGVmIHJ1bihzZWxm
KToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBwaHlzaWNhbF9zdHJlYW0gPSBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0KKyAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gcGh5c2ljYWxfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgp
CisgICAgICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgICMgQmVsb3cgaGFwcGVucyBvbmx5IHdoZW4gYSBkYXRh
IG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCisgICAgICAgICAgICAgICAgb3Bjb2RlID0gcGh5c2ljYWxf
c3RyZWFtLmdldF9sYXN0X3JlY2VpdmVkX29wY29kZSgpCisgICAgICAgICAgICAgICAgaWYgb3Bj
b2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24oCisgICAgICAgICAgICAgICAgICAg
ICAgICBfRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19NRVNTQUdFLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEgdGV4dCBtZXNzYWdlIG9uIHBoeXNpY2FsIGNvbm5l
Y3Rpb24nKQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICBleGNlcHQg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmRpc3BhdGNoX21lc3Nh
Z2UobWVzc2FnZSkKKyAgICAgICAgICAgIGV4Y2VwdCBQaHlzaWNhbENvbm5lY3Rpb25FcnJvciwg
ZToKKyAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5l
Y3Rpb24oCisgICAgICAgICAgICAgICAgICAgIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVycm9y
LCBlOgorICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfbG9naWNhbF9jaGFu
bmVsKAorICAgICAgICAgICAgICAgICAgICBlLmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1l
c3NhZ2UpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICAgICAg
ICAgIGJyZWFrCisKKyAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3JlYWRlcl9kb25l
KCkKKworCitjbGFzcyBfV29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgorCisgICAgIiIiQSB0aHJl
YWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcnVubmluZyB0aGUgY29ycmVzcG9uZGluZyBhcHBs
aWNhdGlvbgorICAgIGhhbmRsZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bXV4X2hhbmRsZXIsIHJlcXVlc3QpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2Uu
CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBp
bnN0YW5jZS4KKyAgICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4K
KyAgICAgICAgIiIiCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKKyAgICAgICAgc2VsZi5fcmVxdWVzdCA9
IHJlcXVlc3QKKyAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKKworICAgIGRlZiBydW4oc2Vs
Zik6CisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsIHdvcmtlciBz
dGFydGVkLiAoaWQ9JWQpJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgTm9uLWNyaXRpY2Fs
IGV4Y2VwdGlvbnMgd2lsbCBiZSBoYW5kbGVkIGJ5IGRpc3BhdGNoZXIuCisgICAgICAgICAgICBz
ZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEoc2VsZi5fcmVxdWVzdCkK
KyAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IsIGU6CisgICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKKyAgICAgICAgICAgICAgICBlLmNo
YW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCisgICAgICAgIGZpbmFsbHk6CisgICAg
ICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd29ya2VyX2RvbmUoc2VsZi5fcmVxdWVz
dC5jaGFubmVsX2lkKQorCisKK2NsYXNzIF9NdXhIYW5kc2hha2VyKGh5YmkuSGFuZHNoYWtlcik6
CisKKyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIG11bHRpcGxleGluZy4i
IiIKKworICAgIF9EVU1NWV9XRUJTT0NLRVRfS0VZID0gJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9
PScKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyLCBzZW5kX3F1
b3RhLCByZWNlaXZlX3F1b3RhKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgor
CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5z
dGFuY2UuCisgICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNlIChkaXNw
YXRjaC5EaXNwYXRjaGVyKS4KKyAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBx
dW90YS4KKyAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4K
KyAgICAgICAgIiIiCisgICAgICAgIGh5YmkuSGFuZHNoYWtlci5fX2luaXRfXyhzZWxmLCByZXF1
ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gc2VuZF9xdW90YQor
ICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90YQorCisgICAgICAgICMg
QXBwZW5kIGhlYWRlcnMgd2hpY2ggc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiBoYW5kc2hha2Ug
ZmllbGQgb2YKKyAgICAgICAgIyBBZGRDaGFubmVsUmVxdWVzdC4KKyAgICAgICAgIyBUT0RPKGJh
c2hpKTogTWFrZSBzdXJlIHdoZXRoZXIgd2Ugc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3aGVuCisg
ICAgICAgICMgICAgIHRoZXNlIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGFscmVhZHkuCisgICAgICAg
IHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uVVBHUkFERV9IRUFERVJdID0gKAorICAgICAgICAg
ICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCisgICAgICAgIHJlcXVlc3QuaGVhZGVy
c19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUl0gPSAoCisgICAgICAgICAg
ICBzdHIoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQorICAgICAgICByZXF1ZXN0LmhlYWRl
cnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUl0gPSAoCisgICAgICAgICAgICBz
ZWxmLl9EVU1NWV9XRUJTT0NLRVRfS0VZKQorCisgICAgZGVmIF9jcmVhdGVfc3RyZWFtKHNlbGYs
IHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5IYW5kc2hha2VyLl9j
cmVhdGVfc3RyZWFtLiIiIgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NyZWF0aW5nIGxv
Z2ljYWwgc3RyZWFtIGZvciAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC5jaGFubmVsX2lkKQorICAgICAgICByZXR1cm4gX0xvZ2ljYWxTdHJlYW0oCisgICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucywgc2VsZi5fc2VuZF9xdW90YSwK
KyAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEpCisKKyAgICBkZWYgX2NyZWF0ZV9oYW5k
c2hha2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToKKyAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5f
Y3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZS4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBbXQorCisg
ICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNc
clxuJykKKworICAgICAgICAjIFVwZ3JhZGUgYW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0IHNob3Vs
ZCBiZSBleGNsdWRlZC4KKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgK
KyAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09O
TkVDVElPTl9UWVBFKSkKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCisg
ICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAorICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQorICAgICAgICBpZiAoc2Vs
Zi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAgbGVu
KHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykgIT0gMCk6CisgICAgICAgICAgICByZXNwb25z
ZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAorICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAorICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRf
ZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKKyAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKCdcclxuJykKKworICAgICAgICByZXR1cm4gJycuam9pbihyZXNwb25zZSkKKwor
ICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToKKyAgICAgICAgIiIiT3ZlcnJp
ZGUgaHliaS5IYW5kc2hha2VyLl9zZW5kX2hhbmRzaGFrZS4iIiIKKyAgICAgICAgIyBEb24ndCBz
ZW5kIGhhbmRzaGFrZSByZXNwb25zZSBmb3IgdGhlIGRlZmF1bHQgY2hhbm5lbAorICAgICAgICBp
ZiBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQgPT0gX0RFRkFVTFRfQ0hBTk5FTF9JRDoKKyAgICAg
ICAgICAgIHJldHVybgorCisgICAgICAgIGhhbmRzaGFrZV9yZXNwb25zZSA9IHNlbGYuX2NyZWF0
ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQorICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlX3Jl
c3BvbnNlKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgaGFuZHNoYWtlIHJl
c3BvbnNlIGZvciAlZDogJXInICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQsIGZyYW1lX2RhdGEpKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisKKworY2xhc3MgX0xvZ2lj
YWxDaGFubmVsRGF0YShvYmplY3QpOgorCisgICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBp
bmZvcm1hdGlvbiBhYm91dCBsb2dpY2FsIGNoYW5uZWwuIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCwgd29ya2VyKToKKyAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAor
ICAgICAgICBzZWxmLndvcmtlciA9IHdvcmtlcgorICAgICAgICBzZWxmLmRyb3BfY29kZSA9IF9E
Uk9QX0NPREVfTk9STUFMX0NMT1NVUkUKKyAgICAgICAgc2VsZi5kcm9wX21lc3NhZ2UgPSAnJwor
CisKK2NsYXNzIF9IYW5kc2hha2VEZWx0YUJhc2Uob2JqZWN0KToKKyAgICAiIiJBIGNsYXNzIHRo
YXQgaG9sZHMgaW5mb3JtYXRpb24gZm9yIGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLiIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMpOgorICAgICAgICBzZWxmLl9oZWFkZXJzID0g
aGVhZGVycworCisgICAgZGVmIGNyZWF0ZV9oZWFkZXJzKHNlbGYsIGRlbHRhPU5vbmUpOgorICAg
ICAgICAiIiJDcmVhdGVzIHJlcXVlc3QgaGVhZGVycyBmb3IgYW4gQWRkQ2hhbm5lbFJlcXVlc3Qg
dGhhdCBoYXMKKyAgICAgICAgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuCisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgICAgIGRlbHRhOiBoZWFkZXJzIHNob3VsZCBiZSBvdmVycmlkZGVuLgorICAg
ICAgICAiIiIKKworICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYuX2hlYWRlcnMpCisg
ICAgICAgIGlmIGRlbHRhOgorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGVsdGEuaXRl
bXMoKToKKyAgICAgICAgICAgICAgICAjIFRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgYSBoZWFkZXIg
d2l0aCBhbiBlbXB0eSB2YWx1ZSBpcworICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBmcm9tIHRo
ZSBkZWx0YSBiYXNlLgorICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMCBhbmQgaGVh
ZGVycy5oYXNfa2V5KGtleSk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJzW2tleV0K
KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0g
PSB2YWx1ZQorICAgICAgICByZXR1cm4gaGVhZGVycworCisKK2NsYXNzIF9NdXhIYW5kbGVyKG9i
amVjdCk6CisgICAgIiIiTXVsdGlwbGV4aW5nIGhhbmRsZXIuIFdoZW4gYSBoYW5kbGVyIHN0YXJ0
cywgaXQgbGF1bmNoZXMgdGhyZWUKKyAgICB0aHJlYWRzOyB0aGUgcmVhZGVyIHRocmVhZCwgdGhl
IHdyaXRlciB0aHJlYWQsIGFuZCBhIHdvcmtlciB0aHJlYWQuCisKKyAgICBUaGUgcmVhZGVyIHRo
cmVhZCByZWFkcyBkYXRhIGZyb20gdGhlIHBoeXNpY2FsIHN0cmVhbSwgaS5lLiwgdGhlCisgICAg
d3Nfc3RyZWFtIG9iamVjdCBvZiB0aGUgdW5kZXJseWluZyB3ZWJzb2NrZXQgY29ubmVjdGlvbi4g
VGhlIHJlYWRlcgorICAgIHRocmVhZCBpbnRlcnByZXRzIG11bHRpcGxleGVkIGZyYW1lcyBhbmQg
ZGlzcGF0Y2hlcyB0aGVtIHRvIGxvZ2ljYWwKKyAgICBjaGFubmVscy4gTWV0aG9kcyBvZiB0aGlz
IGNsYXNzIGFyZSBtb3N0bHkgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgorCisgICAgVGhl
IHdyaXRlciB0aHJlYWQgc2VuZHMgbXVsdGlwbGV4ZWQgZnJhbWVzIHdoaWNoIGFyZSBjcmVhdGVk
IGJ5CisgICAgbG9naWNhbCBjaGFubmVscyB2aWEgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCisK
KyAgICBUaGUgd29ya2VyIHRocmVhZCBsYXVuY2hlZCBhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaGFu
ZGxlcyB0aGUKKyAgICAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuIElmIG11bHRpcGxl
eGluZyBoYW5kbGVyIHJlY2VpdmVzCisgICAgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgYW5kIGFjY2Vw
dHMgaXQsIHRoZSBoYW5kbGVyIHdpbGwgbGF1bmNoIGEgbmV3IHdvcmtlcgorICAgIHRocmVhZCBh
bmQgZGlzcGF0Y2ggdGhlIHJlcXVlc3QgdG8gaXQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6CisgICAgICAgICIiIkNvbnN0cnVjdHMgYW4g
aW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRo
b24gcmVxdWVzdCBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KKyAgICAgICAgICAgIGRpc3Bh
dGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgorICAgICAg
ICAiIiIKKworICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QgPSByZXF1ZXN0CisgICAgICAg
IHNlbGYuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKKyAgICAgICAgc2VsZi5waHlzaWNhbF9jb25u
ZWN0aW9uID0gcmVxdWVzdC5jb25uZWN0aW9uCisgICAgICAgIHNlbGYucGh5c2ljYWxfc3RyZWFt
ID0gcmVxdWVzdC53c19zdHJlYW0KKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQorICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRp
b24oKQorICAgICAgICAjIEhvbGRzIGNsaWVudCdzIGluaXRpYWwgcXVvdGEKKyAgICAgICAgc2Vs
Zi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKKyAgICAgICAgc2VsZi5faGFu
ZHNoYWtlX2Jhc2UgPSBOb25lCisgICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNl
aXZlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuX3JlYWRlciA9IE5vbmUKKyAgICAgICAgc2VsZi5f
d3JpdGVyID0gTm9uZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiJTdGFydHMg
dGhlIGhhbmRsZXIuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgTXV4VW5leHBlY3Rl
ZEV4Y2VwdGlvbjogd2hlbiB0aGUgaGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQsIG9yIHdoZW4KKyAg
ICAgICAgICAgICAgICBvcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgZGVmYXVsdCBjaGFubmVsIGZh
aWxzLgorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLl9yZWFkZXIgb3Igc2VsZi5fd3Jp
dGVyOgorICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignTXV4SGFuZGxl
ciBhbHJlYWR5IHN0YXJ0ZWQnKQorCisgICAgICAgIHNlbGYuX3JlYWRlciA9IF9QaHlzaWNhbENv
bm5lY3Rpb25SZWFkZXIoc2VsZikKKyAgICAgICAgc2VsZi5fd3JpdGVyID0gX1BoeXNpY2FsQ29u
bmVjdGlvbldyaXRlcihzZWxmKQorICAgICAgICBzZWxmLl9yZWFkZXIuc3RhcnQoKQorICAgICAg
ICBzZWxmLl93cml0ZXIuc3RhcnQoKQorCisgICAgICAgICMgQ3JlYXRlICJJbXBsaWNpdGx5IE9w
ZW5lZCBDb25uZWN0aW9uIi4KKyAgICAgICAgbG9naWNhbF9jb25uZWN0aW9uID0gX0xvZ2ljYWxD
b25uZWN0aW9uKHNlbGYsIF9ERUZBVUxUX0NIQU5ORUxfSUQpCisgICAgICAgIGhlYWRlcnMgPSBj
b3B5LmNvcHkoc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCisgICAgICAgICMgQWRk
IGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbC4KKyAgICAgICAgaGVhZGVyc1tjb21tb24u
U0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUl0gPSAoCisgICAgICAgICAgICBjb21tb24u
Zm9ybWF0X2V4dGVuc2lvbnMoCisgICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0
Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpKSkKKyAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jh
c2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKGhlYWRlcnMpCisgICAgICAgIGxvZ2ljYWxfcmVxdWVz
dCA9IF9Mb2dpY2FsUmVxdWVzdCgKKyAgICAgICAgICAgIF9ERUZBVUxUX0NIQU5ORUxfSUQsCisg
ICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubWV0aG9kLAorICAgICAgICAgICAgc2Vs
Zi5vcmlnaW5hbF9yZXF1ZXN0LnVyaSwKKyAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVz
dC5wcm90b2NvbCwKKyAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0ZV9oZWFk
ZXJzKCksCisgICAgICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24pCisgICAgICAgICMgQ2xpZW50
J3Mgc2VuZCBxdW90YSBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24gaXMgemVy
bywKKyAgICAgICAgIyBidXQgd2Ugd2lsbCBzZW5kIEZsb3dDb250cm9sIGxhdGVyIHNvIHNldCB0
aGUgaW5pdGlhbCBxdW90YSB0bworICAgICAgICAjIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQu
CisgICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuYXBwZW5kKF9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCisgICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubXV4X3By
b2Nlc3Nvci5xdW90YSgpCisgICAgICAgIGlmIG5vdCBzZWxmLl9kb19oYW5kc2hha2VfZm9yX2xv
Z2ljYWxfcmVxdWVzdCgKKyAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCwgc2VuZF9xdW90YT1z
ZW5kX3F1b3RhKToKKyAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCisg
ICAgICAgICAgICAgICAgJ0ZhaWxlZCBoYW5kc2hha2Ugb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBp
ZCcpCisgICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1ZXN0KQor
CisgICAgICAgICMgU2VuZCBGbG93Q29udHJvbCBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNv
bm5lY3Rpb24uCisgICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChfREVG
QVVMVF9DSEFOTkVMX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKyAgICAgICAgbG9naWNhbF9yZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisKKyAgICBkZWYgYWRkX2No
YW5uZWxfc2xvdHMoc2VsZiwgc2xvdHMsIHNlbmRfcXVvdGEpOgorICAgICAgICAiIiJBZGRzIGNo
YW5uZWwgc2xvdHMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNsb3RzOiBudW1iZXIg
b2Ygc2xvdHMgdG8gYmUgYWRkZWQuCisgICAgICAgICAgICBzZW5kX3F1b3RhOiBpbml0aWFsIHNl
bmQgcXVvdGEgZm9yIHNsb3RzLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9jaGFubmVs
X3Nsb3RzLmV4dGVuZChbc2VuZF9xdW90YV0gKiBzbG90cykKKyAgICAgICAgIyBTZW5kIE5ld0No
YW5uZWxTbG90IHRvIGNsaWVudC4KKyAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfbmV3X2No
YW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSkKKyAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xf
ZGF0YShmcmFtZV9kYXRhKQorCisgICAgZGVmIHdhaXRfdW50aWxfZG9uZShzZWxmLCB0aW1lb3V0
PU5vbmUpOgorICAgICAgICAiIiJXYWl0cyB1bnRpbCBhbGwgd29ya2VycyBhcmUgZG9uZS4gUmV0
dXJucyBGYWxzZSB3aGVuIHRpbWVvdXQgaGFzCisgICAgICAgIG9jY3VycmVkLiBSZXR1cm5zIFRy
dWUgb24gc3VjY2Vzcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgdGltZW91dDogdGlt
ZW91dCBpbiBzZWMuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSBs
ZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykgPiAwOgorICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXJzKCVkKS4uLicgJQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykpCisgICAgICAgICAg
ICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKKyAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQpCisg
ICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNlaXZlZDoK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdvcmtlcihz
KSB0aW1lZCBvdXQnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJl
bGVhc2UoKQorCisgICAgICAgICMgRmx1c2ggcGVuZGluZyBvdXRnb2luZyBkYXRhCisgICAgICAg
IHNlbGYuX3dyaXRlci5zdG9wKCkKKyAgICAgICAgc2VsZi5fd3JpdGVyLmpvaW4oKQorCisgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgbm90aWZ5X3dyaXRlX2RhdGFfZG9uZShzZWxmLCBj
aGFubmVsX2lkKToKKyAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFkIHdoZW4g
YSB3cml0ZSBvcGVyYXRpb24gaGFzIGRvbmUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg
IGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgorICAgICAgICAiIiIKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1
aXJlKCkKKyAgICAgICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVs
czoKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
W2NoYW5uZWxfaWRdCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVj
dGlvbi5vbl93cml0ZV9kYXRhX2RvbmUoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlZW1zIHRoYXQgbG9naWNhbCBjaGFubmVsIGZvciAl
ZCBoYXMgZ29uZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBjaGFubmVs
X2lkKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24ucmVsZWFzZSgpCisKKyAgICBkZWYgc2VuZF9jb250cm9sX2RhdGEoc2VsZiwg
ZGF0YSk6CisgICAgICAgICIiIlNlbmRzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5uZWwuCisK
KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4KKyAgICAg
ICAgIiIiCisKKyAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9PdXRnb2lu
Z0RhdGEoCisgICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1fQ09OVFJPTF9DSEFOTkVMX0lELCBk
YXRhPWRhdGEpKQorCisgICAgZGVmIHNlbmRfZGF0YShzZWxmLCBjaGFubmVsX2lkLCBkYXRhKToK
KyAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgZ2l2ZW4gbG9naWNhbCBjaGFubmVsLiBUaGlzIG1l
dGhvZCBpcyBjYWxsZWQgYnkKKyAgICAgICAgd29ya2VyIHRocmVhZHMuCisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgorICAgICAg
ICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgorICAgICAgICAiIiIKKworICAgICAgICBzZWxm
Ll93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgKKyAgICAgICAgICAgICAg
ICBjaGFubmVsX2lkPWNoYW5uZWxfaWQsIGRhdGE9ZGF0YSkpCisKKyAgICBkZWYgX3NlbmRfZHJv
cF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6CisgICAg
ICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBt
ZXNzYWdlKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnU2VuZGlu
ZyBkcm9wIGNoYW5uZWwgZm9yIGNoYW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKKyAgICAgICAg
c2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQorCisgICAgZGVmIF9zZW5kX2Vycm9y
X2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYsIGNoYW5uZWxfaWQsIHN0YXR1cz1Ob25lKToKKyAg
ICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CisgICAgICAgICAgICBzdGF0dXMgPSBjb21tb24uSFRU
UF9TVEFUVVNfQkFEX1JFUVVFU1QKKworICAgICAgICBpZiBzdGF0dXMgaW4gX0hUVFBfQkFEX1JF
U1BPTlNFX01FU1NBR0VTOgorICAgICAgICAgICAgbWVzc2FnZSA9IF9IVFRQX0JBRF9SRVNQT05T
RV9NRVNTQUdFU1tzdGF0dXNdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1Jlc3BvbnNlIG1lc3NhZ2UgZm9yICVkIGlzIG5vdCBmb3VuZCcgJSBzdGF0dXMp
CisgICAgICAgICAgICBtZXNzYWdlID0gJz8/PycKKworICAgICAgICByZXNwb25zZSA9ICdIVFRQ
LzEuMSAlZCAlc1xyXG5cclxuJyAlIChzdGF0dXMsIG1lc3NhZ2UpCisgICAgICAgIGZyYW1lX2Rh
dGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PXJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1UcnVlKQorICAgICAgICBzZWxmLnNlbmRfY29udHJv
bF9kYXRhKGZyYW1lX2RhdGEpCisKKyAgICBkZWYgX2NyZWF0ZV9sb2dpY2FsX3JlcXVlc3Qoc2Vs
ZiwgYmxvY2spOgorICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5O
RUxfSUQ6CisgICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBSYWlzZSBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvciB3aXRoIGNvZGUgMjAwNgorICAgICAgICAgICAgIyBpbnN0ZWFkIG9mIE11eFVuZXhw
ZWN0ZWRFeGNlcHRpb24uCisgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9u
KAorICAgICAgICAgICAgICAgICdSZWNlaXZlZCB0aGUgY29udHJvbCBjaGFubmVsIGlkICgwKSBh
cyBvYmplY3RpdmUgY2hhbm5lbCAnCisgICAgICAgICAgICAgICAgJ2lkIGZvciBBZGRDaGFubmVs
JykKKworICAgICAgICBpZiBibG9jay5lbmNvZGluZyA+IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVM
VEE6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAgICAg
ICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORykKKworICAgICAgICBt
ZXRob2QsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBfcGFyc2VfcmVxdWVzdF90ZXh0KAorICAg
ICAgICAgICAgYmxvY2suZW5jb2RlZF9oYW5kc2hha2UpCisgICAgICAgIGlmIGJsb2NrLmVuY29k
aW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEE6CisgICAgICAgICAgICBoZWFkZXJzID0g
c2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoaGVhZGVycykKKworICAgICAgICBj
b25uZWN0aW9uID0gX0xvZ2ljYWxDb25uZWN0aW9uKHNlbGYsIGJsb2NrLmNoYW5uZWxfaWQpCisg
ICAgICAgIHJlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoYmxvY2suY2hhbm5lbF9pZCwgbWV0aG9k
LCBwYXRoLCB2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRl
cnMsIGNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiByZXF1ZXN0CisKKyAgICBkZWYgX2RvX2hh
bmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIHNlbmRfcXVvdGE9MCk6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlY2VpdmVfcXVvdGEgPSBzZWxmLl9jaGFubmVs
X3Nsb3RzLnBvcGxlZnQoKQorICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAg
IHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5jaGFu
bmVsX2lkLCBfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OKQorCisgICAgICAg
IGhhbmRzaGFrZXIgPSBfTXV4SGFuZHNoYWtlcihyZXF1ZXN0LCBzZWxmLmRpc3BhdGNoZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhLCByZWNlaXZlX3F1
b3RhKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
CisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCisgICAgICAgICAgICBzZWxmLl9zZW5kX2Vy
cm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5l
bF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlv
biwgZToKKyAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFNob3VsZCB3ZSBfRmFpbCB0aGUgTG9n
aWNhbCBDaGFubmVsXyB3aXRoIDMwMDEKKyAgICAgICAgICAgICMgaW5zdGVhZD8KKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCisgICAgICAgICAgICBzZWxmLl9zZW5kX2Vy
cm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPWUuc3RhdHVzKQor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRl
ZEJ5VXNlckV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycs
IGUpCisgICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJl
cXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJl
dHVybiBUcnVlCisKKyAgICBkZWYgX2FkZF9sb2dpY2FsX2NoYW5uZWwoc2VsZiwgbG9naWNhbF9y
ZXF1ZXN0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBsb2dpY2FsX3JlcXVlc3QuY2hh
bm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKKyAg
ICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTLAorICAgICAgICAgICAg
ICAgICAgICAnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQorICAgICAgICAgICAgICAg
ICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIHdvcmtlciA9IF9X
b3JrZXIoc2VsZiwgbG9naWNhbF9yZXF1ZXN0KQorICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0g
X0xvZ2ljYWxDaGFubmVsRGF0YShsb2dpY2FsX3JlcXVlc3QsIHdvcmtlcikKKyAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWRdID0gY2hh
bm5lbF9kYXRhCisgICAgICAgICAgICB3b3JrZXIuc3RhcnQoKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisK
KyAgICBkZWYgX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBibG9jayk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCA9IHNlbGYuX2NyZWF0ZV9sb2dp
Y2FsX3JlcXVlc3QoYmxvY2spCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsZWQgdG8gY3JlYXRlIGxvZ2ljYWwgcmVxdWVz
dDogJXInICUgZSkKKyAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVz
cG9uc2UoCisgICAgICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5I
VFRQX1NUQVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBz
ZWxmLl9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVzdChsb2dpY2FsX3JlcXVlc3QpOgor
ICAgICAgICAgICAgaWYgYmxvY2suZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElOR19JREVO
VElUWToKKyAgICAgICAgICAgICAgICAjIFVwZGF0ZSBoYW5kc2hha2UgYmFzZS4KKyAgICAgICAg
ICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgcGxhY2Ug
dG8gdXBkYXRlCisgICAgICAgICAgICAgICAgIyBoYW5kc2hha2UgYmFzZS4KKyAgICAgICAgICAg
ICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoCisgICAgICAg
ICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5oZWFkZXJzX2luKQorICAgICAgICAgICAgc2Vs
Zi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChsb2dpY2FsX3JlcXVlc3QpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAorICAgICAg
ICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFE
X1JFUVVFU1QpCisKKyAgICBkZWYgX3Byb2Nlc3NfZmxvd19jb250cm9sKHNlbGYsIGJsb2NrKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRp
b24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAg
Y2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXQor
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnJlcGxlbmlzaF9zZW5k
X3F1b3RhKAorICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNl
KCkKKworICAgIGRlZiBfcHJvY2Vzc19kcm9wX2NoYW5uZWwoc2VsZiwgYmxvY2spOgorICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnRHJvcENoYW5uZWwgcmVjZWl2ZWQg
Zm9yICVkOiBjb2RlPSVyLCByZWFzb249JXInICUKKyAgICAgICAgICAgIChibG9jay5jaGFubmVs
X2lkLCBibG9jay5kcm9wX2NvZGUsIGJsb2NrLmRyb3BfbWVzc2FnZSkpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQor
ICAgICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFu
bmVsczoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KKyAgICAgICAgICAgIGNo
YW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX0FDS05PV0xFREdFRAorCisgICAgICAg
ICAgICAjIENsb3NlIHRoZSBsb2dpY2FsIGNoYW5uZWwKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0
YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCisgICAgICAgICAgICAgICAgX0xv
Z2ljYWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCisgICAgICAgICAgICBjaGFubmVsX2Rh
dGEucmVxdWVzdC53c19zdHJlYW0uc3RvcF9zZW5kaW5nKCkKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisg
ICAgZGVmIF9wcm9jZXNzX2NvbnRyb2xfYmxvY2tzKHNlbGYsIHBhcnNlcik6CisgICAgICAgIGZv
ciBjb250cm9sX2Jsb2NrIGluIHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCk6CisgICAgICAg
ICAgICBvcGNvZGUgPSBjb250cm9sX2Jsb2NrLm9wY29kZQorICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdjb250cm9sIGJsb2NrIHJlY2VpdmVkLCBvcGNvZGU6ICVkJyAlIG9wY29kZSkK
KyAgICAgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNU
OgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChjb250
cm9sX2Jsb2NrKQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NI
QU5ORUxfUkVTUE9OU0U6CisgICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9u
RXJyb3IoCisgICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJP
TF9CTE9DSywKKyAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIEFkZENoYW5uZWxSZXNwb25z
ZScpCisgICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6
CisgICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19mbG93X2NvbnRyb2woY29udHJvbF9ibG9j
aykKKyAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoK
KyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Ryb3BfY2hhbm5lbChjb250cm9sX2Jsb2Nr
KQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xP
VDoKKyAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAg
ICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAorICAg
ICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgTmV3Q2hhbm5lbFNsb3QnKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAorICAg
ICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvcGNvZGUgJXInICUgb3Bjb2RlKQorCisgICAg
ZGVmIF9wcm9jZXNzX2xvZ2ljYWxfZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGFyc2VyKToKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhIGZyYW1lLiBjaGFubmVsIGlkPSVk
JyAlIGNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxf
aWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgICAgICAjIFdlIG11c3Qg
aWdub3JlIHRoZSBtZXNzYWdlIGZvciBhbiBpbmFjdGl2ZSBjaGFubmVsLgorICAgICAgICAgICAg
ICAgIHJldHVybgorICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tjaGFubmVsX2lkXQorICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNv
ZGUsIHBheWxvYWQgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCisgICAgICAgICAgICBjb25z
dW1pbmdfYnl0ZSA9IGxlbihwYXlsb2FkKQorICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1v
bi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlICs9
IDEKKyAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0uY29u
c3VtZV9yZWNlaXZlX3F1b3RhKAorICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlKToKKyAg
ICAgICAgICAgICAgICAjIFRoZSBjbGllbnQgdmlvbGF0ZXMgcXVvdGEuIENsb3NlIGxvZ2ljYWwg
Y2hhbm5lbC4KKyAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAorICAg
ICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFU
SU9OKQorICAgICAgICAgICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcihvcGNvZGUsIGxlbihwYXls
b2FkKSwgZmluLCByc3YxLCByc3YyLCByc3YzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXNrPUZhbHNlKQorICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGhlYWRlciArIHBh
eWxvYWQKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uYXBwZW5k
X2ZyYW1lX2RhdGEoZnJhbWVfZGF0YSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGRpc3Bh
dGNoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgICIiIkRpc3BhdGNoZXMgbWVzc2Fn
ZS4gVGhlIHJlYWRlciB0aHJlYWQgY2FsbHMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgQXJnczoK
KyAgICAgICAgICAgIG1lc3NhZ2U6IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIGVuY2Fwc3VsYXRl
ZCBmcmFtZS4KKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9u
RXJyb3I6IGlmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIHBoeXNpY2FsCisgICAgICAgICAgICAgICAg
Y29ubmVjdGlvbiBsZXZlbCBlcnJvcnMuCisgICAgICAgICAgICBMb2dpY2FsQ2hhbm5lbEVycm9y
OiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBsb2dpY2FsIGNoYW5uZWwKKyAgICAgICAgICAgICAg
ICBsZXZlbCBlcnJvcnMuCisgICAgICAgICIiIgorCisgICAgICAgIHBhcnNlciA9IF9NdXhGcmFt
ZVBheWxvYWRQYXJzZXIobWVzc2FnZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2hhbm5l
bF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJv
ciwgZToKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NP
REVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQpCisgICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRS
T0xfQ0hBTk5FTF9JRDoKKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY29udHJvbF9ibG9ja3Mo
cGFyc2VyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQsIHBhcnNlcikKKworICAgIGRlZiBub3RpZnlfd29ya2VyX2RvbmUo
c2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAgICIiIkNhbGxlZCB3aGVuIGEgd29ya2VyIGhhcyBm
aW5pc2hlZC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5l
bCBpZCBjb3JyZXNwb25kZWQgd2l0aCB0aGUgd29ya2VyLgorICAgICAgICAiIiIKKworICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dvcmtlciBmb3IgY2hhbm5lbCBpZCAlZCB0ZXJtaW5hdGVk
JyAlIGNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxf
aWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgICAgICByYWlzZSBNdXhV
bmV4cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBu
b3QgZm91bmQnICUgY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHMucG9wKGNoYW5uZWxfaWQpCisgICAgICAgIGZpbmFsbHk6CisgICAg
ICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBUcnVlCisgICAgICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisKKyAgICAgICAg
aWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAgICAg
ICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoCisgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwg
Y29kZT1jaGFubmVsX2RhdGEuZHJvcF9jb2RlLAorICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y2hh
bm5lbF9kYXRhLmRyb3BfbWVzc2FnZSkKKworICAgIGRlZiBub3RpZnlfcmVhZGVyX2RvbmUoc2Vs
Zik6CisgICAgICAgICIiIlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgcmVhZGVyIHRocmVh
ZCB3aGVuIHRoZSByZWFkZXIgaGFzCisgICAgICAgIGZpbmlzaGVkLgorICAgICAgICAiIiIKKwor
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnVGVybWlhdGluZyBhbGwg
bG9naWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZvciBpbmNvbWluZyBkYXRhICcKKyAgICAgICAg
ICAgICcuLi4nKQorICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1
aXJlKCkKKyAgICAgICAgZm9yIGNoYW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
LnZhbHVlcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0
YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCisgICAgICAgICAgICAgICAgICAg
IF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQorICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNr
LmZvcm1hdF9leGMoKSkKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24u
cmVsZWFzZSgpCisKKyAgICBkZWYgbm90aWZ5X3dyaXRlcl9kb25lKHNlbGYpOgorICAgICAgICAi
IiJUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiB0aGUgd3Jp
dGVyIGhhcworICAgICAgICBmaW5pc2hlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVj
dGlvbnMgd2FpdGluZyBmb3Igd3JpdGUgJworICAgICAgICAgICAgJ2NvbXBsZXRpb24gLi4uJykK
KyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisgICAg
ICAgIGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5j
b25uZWN0aW9uLm9uX3dyaXRlcl9kb25lKCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhj
KCkpCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQor
CisgICAgZGVmIGZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbihzZWxmLCBjb2RlLCBtZXNzYWdlKToK
KyAgICAgICAgIiIiRmFpbCB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KKworICAgICAgICBBcmdz
OgorICAgICAgICAgICAgY29kZTogZHJvcCByZWFzb24gY29kZS4KKyAgICAgICAgICAgIG1lc3Nh
Z2U6IGRyb3AgbWVzc2FnZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdGYWlsaW5nIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLi4uJykKKyAgICAgICAgc2VsZi5f
c2VuZF9kcm9wX2NoYW5uZWwoX0NPTlRST0xfQ0hBTk5FTF9JRCwgY29kZSwgbWVzc2FnZSkKKyAg
ICAgICAgc2VsZi5fd3JpdGVyLnN0b3AoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9F
UlJPUikKKworICAgIGRlZiBmYWlsX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBj
b2RlLCBtZXNzYWdlKToKKyAgICAgICAgIiIiRmFpbCBhIGxvZ2ljYWwgY2hhbm5lbC4KKworICAg
ICAgICBBcmdzOgorICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZC4KKyAgICAgICAg
ICAgIGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCisgICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1l
c3NhZ2UuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGlu
ZyBsb2dpY2FsIGNoYW5uZWwgJWQuLi4nICUgY2hhbm5lbF9pZCkKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisgICAg
ICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6CisgICAgICAg
ICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lk
XQorICAgICAgICAgICAgICAgICMgQ2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbC4gbm90aWZ5X3dv
cmtlcl9kb25lKCkgd2lsbCBiZQorICAgICAgICAgICAgICAgICMgY2FsbGVkIGxhdGVyIGFuZCBp
dCB3aWxsIHNlbmQgRHJvcENoYW5uZWwuCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRy
b3BfY29kZSA9IGNvZGUKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9tZXNzYWdl
ID0gbWVzc2FnZQorCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVj
dGlvbi5zZXRfcmVhZF9zdGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0
aW9uLlNUQVRFX1RFUk1JTkFURUQpCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVl
c3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2Up
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKKworCitkZWYgdXNlX211eChyZXF1ZXN0KToKKyAgICByZXR1cm4g
aGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpIGFuZCAoCisgICAgICAgIHJlcXVlc3Qu
bXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKKworCitkZWYgc3RhcnQocmVxdWVzdCwgZGlzcGF0
Y2hlcik6CisgICAgbXV4X2hhbmRsZXIgPSBfTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKworICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKF9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICBtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUoKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L3N0YW5kYWxvbmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMyMDBlMjM1YzcyOGJlNTQ5OTY4ZmQ4
NjJkMjliNDkzZGJhMjdkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L3N0YW5kYWxvbmUucHkKQEAgLTAsMCArMSwxMjA4IEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlN0YW5kYWxvbmUgV2ViU29ja2V0IHNlcnZlci4K
KworVXNlIHRoaXMgZmlsZSB0byBsYXVuY2ggcHl3ZWJzb2NrZXQgd2l0aG91dCBBcGFjaGUgSFRU
UCBTZXJ2ZXIuCisKKworQkFTSUMgVVNBR0UKKz09PT09PT09PT09CisKK0dvIHRvIHRoZSBzcmMg
ZGlyZWN0b3J5IGFuZCBydW4KKworICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weSBbLXAgPHdzX3BvcnQ+XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbLXcgPHdlYnNvY2tfaGFuZGxlcnM+XQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbLWQgPGRvY3VtZW50X3Jvb3Q+XQorCis8d3NfcG9ydD4gaXMgdGhlIHBv
cnQgbnVtYmVyIHRvIHVzZSBmb3Igd3M6Ly8gY29ubmVjdGlvbi4KKworPGRvY3VtZW50X3Jvb3Q+
IGlzIHRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBIVE1MIGZpbGVzLgorCis8d2Vi
c29ja19oYW5kbGVycz4gaXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdlYlNv
Y2tldCBoYW5kbGVycy4KK0lmIG5vdCBzcGVjaWZpZWQsIDxkb2N1bWVudF9yb290PiB3aWxsIGJl
IHVzZWQuIFNlZSBfX2luaXRfXy5weSAob3IKK3J1biAkIHB5ZG9jIG1vZF9weXdlYnNvY2tldCkg
Zm9yIGhvdyB0byB3cml0ZSBXZWJTb2NrZXQgaGFuZGxlcnMuCisKK0ZvciBtb3JlIGRldGFpbCBh
bmQgb3RoZXIgb3B0aW9ucywgcnVuCisKKyAgJCBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5k
YWxvbmUucHkgLS1oZWxwCisKK29yIHNlZSBfYnVpbGRfb3B0aW9uX3BhcnNlciBtZXRob2QgYmVs
b3cuCisKK0ZvciB0cm91YmxlIHNob290aW5nLCBhZGRpbmcgIi0tbG9nX2xldmVsIGRlYnVnIiBt
aWdodCBoZWxwIHlvdS4KKworCitUUlkgREVNTworPT09PT09PT0KKworR28gdG8gdGhlIHNyYyBk
aXJlY3RvcnkgYW5kIHJ1biBzdGFuZGFsb25lLnB5IHdpdGggLWQgb3B0aW9uIHRvIHNldCB0aGUK
K2RvY3VtZW50IHJvb3QgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGV4YW1wbGUgSFRNTHMg
YW5kIGhhbmRsZXJzIGxpa2UgdGhpczoKKworICAkIGNkIHNyYworICAkIFBZVEhPTlBBVEg9LiBw
eXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZQorCit0byBsYXVu
Y2ggcHl3ZWJzb2NrZXQgd2l0aCB0aGUgc2FtcGxlIGhhbmRsZXIgYW5kIGh0bWwgb24gcG9ydCA4
MC4gT3BlbgoraHR0cDovL2xvY2FsaG9zdC9jb25zb2xlLmh0bWwsIGNsaWNrIHRoZSBjb25uZWN0
IGJ1dHRvbiwgdHlwZSBzb21ldGhpbmcgaW50bwordGhlIHRleHQgYm94IG5leHQgdG8gdGhlIHNl
bmQgYnV0dG9uIGFuZCBjbGljayB0aGUgc2VuZCBidXR0b24uIElmIGV2ZXJ5dGhpbmcKK2lzIHdv
cmtpbmcsIHlvdSdsbCBzZWUgdGhlIG1lc3NhZ2UgeW91IHR5cGVkIGVjaG9lZCBieSB0aGUgc2Vy
dmVyLgorCisKK1VTSU5HIFRMUworPT09PT09PT09CisKK1RvIHJ1biB0aGUgc3RhbmRhbG9uZSBz
ZXJ2ZXIgd2l0aCBUTFMgc3VwcG9ydCwgcnVuIGl0IHdpdGggLXQsIC1rLCBhbmQgLWMKK29wdGlv
bnMuIFdoZW4gVExTIGlzIGVuYWJsZWQsIHRoZSBzdGFuZGFsb25lIHNlcnZlciBhY2NlcHRzIG9u
bHkgVExTIGNvbm5lY3Rpb24uCisKK05vdGUgdGhhdCB3aGVuIHNzbCBtb2R1bGUgaXMgdXNlZCBh
bmQgdGhlIGtleS9jZXJ0IGxvY2F0aW9uIGlzIGluY29ycmVjdCwKK1RMUyBjb25uZWN0aW9uIHNp
bGVudGx5IGZhaWxzIHdoaWxlIHB5T3BlblNTTCBmYWlscyBvbiBzdGFydHVwLgorCitFeGFtcGxl
OgorCisgICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5w
eSBcCisgICAgICAgIC1kIGV4YW1wbGUgXAorICAgICAgICAtcCAxMDQ0MyBcCisgICAgICAgIC10
IFwKKyAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIFwKKyAgICAgICAgLWsgLi4vdGVz
dC9jZXJ0L2tleS5wZW0gXAorCitOb3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0
aCB0byAtYyBhbmQgLWsgb3B0aW9uLCBpdCB3aWxsIGJlIHJlc29sdmVkCit1c2luZyB0aGUgZG9j
dW1lbnQgcm9vdCBkaXJlY3RvcnkgYXMgdGhlIGJhc2UuCisKKworVVNJTkcgQ0xJRU5UIEFVVEhF
TlRJQ0FUSU9OCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVG8gcnVuIHRoZSBzdGFu
ZGFsb25lIHNlcnZlciB3aXRoIFRMUyBjbGllbnQgYXV0aGVudGljYXRpb24gc3VwcG9ydCwgcnVu
IGl0IHdpdGgKKy0tdGxzLWNsaWVudC1hdXRoIGFuZCAtLXRscy1jbGllbnQtY2Egb3B0aW9ucyBp
biBhZGRpdGlvbiB0byBvbmVzIHJlcXVpcmVkIGZvcgorVExTIHN1cHBvcnQuCisKK0V4YW1wbGU6
CisKKyAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
IC1kIGV4YW1wbGUgLXAgMTA0NDMgLXQgXAorICAgICAgICAtYyAuLi90ZXN0L2NlcnQvY2VydC5w
ZW0gLWsgLi4vdGVzdC9jZXJ0L2tleS5wZW0gXAorICAgICAgICAtLXRscy1jbGllbnQtYXV0aCBc
CisgICAgICAgIC0tdGxzLWNsaWVudC1jYT0uLi90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorCitOb3Rl
IHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0aCB0byAtLXRscy1jbGllbnQtY2Egb3B0
aW9uLCBpdCB3aWxsIGJlCityZXNvbHZlZCB1c2luZyB0aGUgZG9jdW1lbnQgcm9vdCBkaXJlY3Rv
cnkgYXMgdGhlIGJhc2UuCisKKworQ09ORklHVVJBVElPTiBGSUxFCis9PT09PT09PT09PT09PT09
PT0KKworWW91IGNhbiBhbHNvIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB1c2UgaXQg
Ynkgc3BlY2lmeWluZyB0aGUgcGF0aCB0bwordGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBieSAtLWNv
bmZpZyBvcHRpb24uIFBsZWFzZSB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQorZm9sbG93aW5n
IHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBQeXRob24gQ29uZmlnUGFyc2VyIGxpYnJhcnkuIE5h
bWUgb2YgZWFjaAorZW50cnkgbXVzdCBiZSB0aGUgbG9uZyB2ZXJzaW9uIGFyZ3VtZW50IG5hbWUu
IEUuZy4gdG8gc2V0IGxvZyBsZXZlbCB0byBkZWJ1ZywKK2FkZCB0aGUgZm9sbG93aW5nIGxpbmU6
CisKK2xvZ19sZXZlbD1kZWJ1ZworCitGb3Igb3B0aW9ucyB3aGljaCBkb2Vzbid0IHRha2UgdmFs
dWUsIHBsZWFzZSBhZGQgc29tZSBmYWtlIHZhbHVlLiBFLmcuIGZvcgorLS10bHMgb3B0aW9uLCBh
ZGQgdGhlIGZvbGxvd2luZyBsaW5lOgorCit0bHM9VHJ1ZQorCitOb3RlIHRoYXQgdGxzIHdpbGwg
YmUgZW5hYmxlZCBldmVuIGlmIHlvdSB3cml0ZSB0bHM9RmFsc2UgYXMgdGhlIHZhbHVlIHBhcnQg
aXMKK2Zha2UuCisKK1doZW4gYm90aCBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBhbmQgYSBjb25m
aWd1cmF0aW9uIGZpbGUgZW50cnkgYXJlIHNldCBmb3IKK3RoZSBzYW1lIGNvbmZpZ3VyYXRpb24g
aXRlbSwgdGhlIGNvbW1hbmQgbGluZSB2YWx1ZSB3aWxsIG92ZXJyaWRlIG9uZSBpbiB0aGUKK2Nv
bmZpZ3VyYXRpb24gZmlsZS4KKworCitUSFJFQURJTkcKKz09PT09PT09PQorCitUaGlzIHNlcnZl
ciBpcyBkZXJpdmVkIGZyb20gU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLiBIZW5jZSBhIHRo
cmVhZCBpcwordXNlZCBmb3IgZWFjaCByZXF1ZXN0LgorCisKK1NFQ1VSSVRZIFdBUk5JTkcKKz09
PT09PT09PT09PT09PT0KKworVGhpcyB1c2VzIENHSUhUVFBTZXJ2ZXIgYW5kIENHSUhUVFBTZXJ2
ZXIgaXMgbm90IHNlY3VyZS4KK0l0IG1heSBleGVjdXRlIGFyYml0cmFyeSBQeXRob24gY29kZSBv
ciBleHRlcm5hbCBwcm9ncmFtcy4gSXQgc2hvdWxkIG5vdCBiZQordXNlZCBvdXRzaWRlIGEgZmly
ZXdhbGwuCisiIiIKKworaW1wb3J0IEJhc2VIVFRQU2VydmVyCitpbXBvcnQgQ0dJSFRUUFNlcnZl
cgoraW1wb3J0IFNpbXBsZUhUVFBTZXJ2ZXIKK2ltcG9ydCBTb2NrZXRTZXJ2ZXIKK2ltcG9ydCBD
b25maWdQYXJzZXIKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBodHRwbGliCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IGxvZ2dpbmcuaGFuZGxlcnMKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IG9zCitp
bXBvcnQgcmUKK2ltcG9ydCBzZWxlY3QKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzeXMKK2ltcG9y
dCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdXJscGFyc2UKKworZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3Bh
dGNoCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCitmcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IG1lbW9yaXppbmdmaWxlCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQueGhyX2JlbmNobWFya19oYW5kbGVyIGltcG9ydCBYSFJCZW5jaG1h
cmtIYW5kbGVyCisKKworX0RFRkFVTFRfTE9HX01BWF9CWVRFUyA9IDEwMjQgKiAyNTYKK19ERUZB
VUxUX0xPR19CQUNLVVBfQ09VTlQgPSA1CisKK19ERUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSA9
IDEyOAorCisjIDEwMjQgaXMgcHJhY3RpY2FsbHkgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gV2Vi
U29ja2V0IGhhbmRzaGFrZSBsaW5lcy4KK19NQVhfTUVNT1JJWkVEX0xJTkVTID0gMTAyNAorCisj
IENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBmbGFnLgorX1RMU19CWV9TVEFOREFSRF9N
T0RVTEUgPSAnc3NsJworX1RMU19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJworCisKK2NsYXNz
IF9TdGFuZGFsb25lQ29ubmVjdGlvbihvYmplY3QpOgorICAgICIiIk1pbWljIG1vZF9weXRob24g
bXBfY29ubi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgor
ICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAg
ICAgICAgIHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5j
ZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVxdWVz
dF9oYW5kbGVyCisKKyAgICBkZWYgZ2V0X2xvY2FsX2FkZHIoc2VsZik6CisgICAgICAgICIiIkdl
dHRlciB0byBtaW1pYyBtcF9jb25uLmxvY2FsX2FkZHIuIiIiCisKKyAgICAgICAgcmV0dXJuIChz
ZWxmLl9yZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZlcl9uYW1lLAorICAgICAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2VydmVyX3BvcnQpCisgICAgbG9jYWxfYWRk
ciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQorCisgICAgZGVmIGdldF9yZW1vdGVfYWRkcihz
ZWxmKToKKyAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuCisK
KyAgICAgICAgU2V0dGluZyB0aGUgcHJvcGVydHkgaW4gX19pbml0X18gd29uJ3Qgd29yayBiZWNh
dXNlIHRoZSByZXF1ZXN0CisgICAgICAgIGhhbmRsZXIgaXMgbm90IGluaXRpYWxpemVkIHlldCB0
aGVyZS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLmNsaWVudF9h
ZGRyZXNzCisgICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCisKKyAg
ICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIk1pbWljIG1wX2Nvbm4ud3JpdGUo
KS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLndmaWxlLndyaXRl
KGRhdGEpCisKKyAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgorICAgICAgICAiIiJNaW1pYyBt
cF9jb25uLnJlYWQoKS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVy
LnJmaWxlLnJlYWQobGVuZ3RoKQorCisgICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6
CisgICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIiIiCisKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3JlcXVlc3RfaGFuZGxlci5yZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKKworCitjbGFz
cyBfU3RhbmRhbG9uZVJlcXVlc3Qob2JqZWN0KToKKyAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJl
cXVlc3QuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdF9oYW5kbGVyLCB1c2Vf
dGxzKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6
CisgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIg
aW5zdGFuY2UuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlciA9IHJl
cXVlc3RfaGFuZGxlcgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBfU3RhbmRhbG9uZUNvbm5l
Y3Rpb24ocmVxdWVzdF9oYW5kbGVyKQorICAgICAgICBzZWxmLl91c2VfdGxzID0gdXNlX3Rscwor
ICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSByZXF1ZXN0X2hhbmRsZXIuaGVhZGVycworCisgICAg
ZGVmIGdldF91cmkoc2VsZik6CisgICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnVy
aS4KKworICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSByYXcgZGF0YSBhdCB0aGUgUmVx
dWVzdC1VUkkgcGFydCBvZiB0aGUKKyAgICAgICAgUmVxdWVzdC1MaW5lLCB3aGlsZSB0aGUgdXJp
IG1ldGhvZCBvbiB0aGUgcmVxdWVzdCBvYmplY3Qgb2YgbW9kX3B5dGhvbgorICAgICAgICByZXR1
cm5zIHRoZSBwYXRoIHBvcnRpb24gYWZ0ZXIgcGFyc2luZyB0aGUgcmF3IGRhdGEuIFRoaXMgYmVo
YXZpb3IgaXMKKyAgICAgICAga2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgIiIiCisK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCisgICAgdXJpID0gcHJv
cGVydHkoZ2V0X3VyaSkKKworICAgIGRlZiBnZXRfdW5wYXJzZWRfdXJpKHNlbGYpOgorICAgICAg
ICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51bnBhcnNlZF91cmkuIiIiCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCisgICAgdW5wYXJzZWRfdXJpID0gcHJv
cGVydHkoZ2V0X3VucGFyc2VkX3VyaSkKKworICAgIGRlZiBnZXRfbWV0aG9kKHNlbGYpOgorICAg
ICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5tZXRob2QuIiIiCisKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5jb21tYW5kCisgICAgbWV0aG9kID0gcHJvcGVydHko
Z2V0X21ldGhvZCkKKworICAgIGRlZiBnZXRfcHJvdG9jb2woc2VsZik6CisgICAgICAgICIiIkdl
dHRlciB0byBtaW1pYyByZXF1ZXN0LnByb3RvY29sLiIiIgorCisgICAgICAgIHJldHVybiBzZWxm
Ll9yZXF1ZXN0X2hhbmRsZXIucmVxdWVzdF92ZXJzaW9uCisgICAgcHJvdG9jb2wgPSBwcm9wZXJ0
eShnZXRfcHJvdG9jb2wpCisKKyAgICBkZWYgaXNfaHR0cHMoc2VsZik6CisgICAgICAgICIiIk1p
bWljIHJlcXVlc3QuaXNfaHR0cHMoKS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fdXNlX3Rs
cworCisKK2RlZiBfaW1wb3J0X3NzbCgpOgorICAgIGdsb2JhbCBzc2wKKyAgICB0cnk6CisgICAg
ICAgIGltcG9ydCBzc2wKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgor
ICAgIGdsb2JhbCBPcGVuU1NMCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgT3BlblNTTC5TU0wK
KyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHJl
dHVybiBGYWxzZQorCisKK2NsYXNzIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbihvYmplY3QpOgor
ICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3IgT3BlblNTTC5TU0wuQ29ubmVjdGlvbiB0bworICAg
IC0gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2Qgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0aGUg
Y2xhc3MKKyAgICAtIHR3ZWFrIHNodXRkb3duIG1ldGhvZCBzaW5jZSBPcGVuU1NMLlNTTC5Db25u
ZWN0aW9uLnNodXRkb3duIGRvZXNuJ3QKKyAgICAgIGFjY2VwdCB0aGUgImhvdyIgYXJndW1lbnQu
CisgICAgLSBjb252ZXJ0IFN5c0NhbGxFcnJvciBleGNlcHRpb25zIHRoYXQgaXRzIHJlY3YgbWV0
aG9kIG1heSByYWlzZSBpbnRvIGEKKyAgICAgIHJldHVybiB2YWx1ZSBvZiAnJywgbWVhbmluZyBF
T0YuIFdlIGNhbm5vdCBvdmVyd3JpdGUgdGhlIHJlY3YgbWV0aG9kIG9uCisgICAgICBzZWxmLl9j
b25uZWN0aW9uIHNpbmNlIGl0J3MgaW1tdXRhYmxlLgorICAgICIiIgorCisgICAgX09WRVJSSURE
RU5fQVRUUklCVVRFUyA9IFsnX2Nvbm5lY3Rpb24nLCAnbWFrZWZpbGUnLCAnc2h1dGRvd24nLCAn
cmVjdiddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubmVjdGlvbik6CisgICAgICAgIHNl
bGYuX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uCisKKyAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhz
ZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24u
X09WRVJSSURERU5fQVRUUklCVVRFUzoKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19nZXRh
dHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5f
X2dldGF0dHJpYnV0ZV9fKG5hbWUpCisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwg
dmFsdWUpOgorICAgICAgICBpZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZF
UlJJRERFTl9BVFRSSUJVVEVTOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0dHJf
XyhzZWxmLCBuYW1lLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19z
ZXRhdHRyX18obmFtZSwgdmFsdWUpCisKKyAgICBkZWYgbWFrZWZpbGUoc2VsZiwgbW9kZT0ncics
IGJ1ZnNpemU9LTEpOgorICAgICAgICByZXR1cm4gc29ja2V0Ll9maWxlb2JqZWN0KHNlbGYsIG1v
ZGUsIGJ1ZnNpemUpCisKKyAgICBkZWYgc2h1dGRvd24oc2VsZiwgdW51c2VkX2hvdyk6CisgICAg
ICAgIHNlbGYuX2Nvbm5lY3Rpb24uc2h1dGRvd24oKQorCisgICAgZGVmIHJlY3Yoc2VsZiwgYnVm
c2l6ZSwgZmxhZ3M9MCk6CisgICAgICAgIGlmIGZsYWdzICE9IDA6CisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdOb24temVybyBmbGFncyBub3QgYWxsb3dlZCcpCisKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24ucmVjdihidWZzaXplKQorICAg
ICAgICBleGNlcHQgT3BlblNTTC5TU0wuU3lzQ2FsbEVycm9yLCAoZXJyLCBtZXNzYWdlKToKKyAg
ICAgICAgICAgIGlmIGVyciA9PSAtMToKKyAgICAgICAgICAgICAgICAjIFN1cHByZXNzICJ1bmV4
cGVjdGVkIEVPRiIgZXhjZXB0aW9uLiBTZWUgdGhlIE9wZW5TU0wgZG9jdW1lbnQKKyAgICAgICAg
ICAgICAgICAjIGZvciBTU0xfZ2V0X2Vycm9yLgorICAgICAgICAgICAgICAgIHJldHVybiAnJwor
ICAgICAgICAgICAgcmFpc2UKKworCitkZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdl
YnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpOgorICAgICIiIlNldCBhbGlhc2VzIHNwZWNpZmllZCBp
biB3ZWJzb2NrX2hhbmRsZXJfbWFwX2ZpbGUgaW4gZGlzcGF0Y2hlci4KKworICAgIEFyZ3M6Cisg
ICAgICAgIGRpc3BhdGNoZXI6IGRpc3BhdGNoLkRpc3BhdGNoZXIgaW5zdGFuY2UKKyAgICAgICAg
d2Vic29ja19oYW5kbGVyX21hcF9maWxlOiBhbGlhcyBtYXAgZmlsZQorICAgICIiIgorCisgICAg
ZnAgPSBvcGVuKHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpCisgICAgdHJ5OgorICAgICAgICBm
b3IgbGluZSBpbiBmcDoKKyAgICAgICAgICAgIGlmIGxpbmVbMF0gPT0gJyMnIG9yIGxpbmUuaXNz
cGFjZSgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBtID0gcmUubWF0
Y2goJyhcUyspXHMrKFxTKyknLCBsaW5lKQorICAgICAgICAgICAgaWYgbm90IG06CisgICAgICAg
ICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4gbWFwIGZpbGU6JyArIGxp
bmUpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBkaXNwYXRjaGVyLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKAorICAgICAgICAgICAg
ICAgICAgICBtLmdyb3VwKDEpLCBtLmdyb3VwKDIpKQorICAgICAgICAgICAgZXhjZXB0IGRpc3Bh
dGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3Io
c3RyKGUpKQorICAgIGZpbmFsbHk6CisgICAgICAgIGZwLmNsb3NlKCkKKworCitjbGFzcyBXZWJT
b2NrZXRTZXJ2ZXIoU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5I
VFRQU2VydmVyKToKKyAgICAiIiJIVFRQU2VydmVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2NrZXQu
IiIiCisKKyAgICAjIE92ZXJyaWRlcyBTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uZGFlbW9u
X3RocmVhZHMKKyAgICBkYWVtb25fdGhyZWFkcyA9IFRydWUKKyAgICAjIE92ZXJyaWRlcyBCYXNl
SFRUUFNlcnZlci5IVFRQU2VydmVyLmFsbG93X3JldXNlX2FkZHJlc3MKKyAgICBhbGxvd19yZXVz
ZV9hZGRyZXNzID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAg
ICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLl9faW5pdF9fIHRvIHNldCBT
U0wgZW5hYmxlZAorICAgICAgICBzb2NrZXQgb2JqZWN0IHRvIHNlbGYuc29ja2V0IGJlZm9yZSBz
ZXJ2ZXJfYmluZCBhbmQgc2VydmVyX2FjdGl2YXRlLAorICAgICAgICBpZiBuZWNlc3NhcnkuCisg
ICAgICAgICIiIgorCisgICAgICAgICMgU2hhcmUgYSBEaXNwYXRjaGVyIGFtb25nIHJlcXVlc3Qg
aGFuZGxlcnMgdG8gc2F2ZSB0aW1lIGZvcgorICAgICAgICAjIGluc3RhbnRpYXRpb24uICBEaXNw
YXRjaGVyIGNhbiBiZSBzaGFyZWQgYmVjYXVzZSBpdCBpcyB0aHJlYWQtc2FmZS4KKyAgICAgICAg
b3B0aW9ucy5kaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcigKKyAgICAgICAgICAgIG9w
dGlvbnMud2Vic29ja19oYW5kbGVycywKKyAgICAgICAgICAgIG9wdGlvbnMuc2Nhbl9kaXIsCisg
ICAgICAgICAgICBvcHRpb25zLmFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCisgICAg
ICAgIGlmIG9wdGlvbnMud2Vic29ja19oYW5kbGVyc19tYXBfZmlsZToKKyAgICAgICAgICAgIF9h
bGlhc19oYW5kbGVycyhvcHRpb25zLmRpc3BhdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKQorICAgICAgICB3YXJuaW5n
cyA9IG9wdGlvbnMuZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQorICAgICAgICBpZiB3YXJu
aW5nczoKKyAgICAgICAgICAgIGZvciB3YXJuaW5nIGluIHdhcm5pbmdzOgorICAgICAgICAgICAg
ICAgIGxvZ2dpbmcud2FybmluZygnV2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzogJXMnICUgd2Fy
bmluZykKKworICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKKworICAgICAgICBzZWxmLnJlcXVlc3RfcXVldWVfc2l6ZSA9IG9wdGlvbnMucmVxdWVzdF9x
dWV1ZV9zaXplCisgICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24gPSB0aHJlYWRpbmcuRXZl
bnQoKQorICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IEZhbHNlCisKKyAgICAgICAgU29ja2V0
U2VydmVyLkJhc2VTZXJ2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCAob3B0aW9ucy5z
ZXJ2ZXJfaG9zdCwgb3B0aW9ucy5wb3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCisKKyAg
ICAgICAgIyBFeHBvc2UgdGhlIG9wdGlvbnMgb2JqZWN0IHRvIGFsbG93IGhhbmRsZXIgb2JqZWN0
cyBhY2Nlc3MgaXQuIFdlIG5hbWUKKyAgICAgICAgIyBpdCB3aXRoIHdlYnNvY2tldF8gcHJlZml4
IHRvIGF2b2lkIGNvbmZsaWN0LgorICAgICAgICBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9u
cyA9IG9wdGlvbnMKKworICAgICAgICBzZWxmLl9jcmVhdGVfc29ja2V0cygpCisgICAgICAgIHNl
bGYuc2VydmVyX2JpbmQoKQorICAgICAgICBzZWxmLnNlcnZlcl9hY3RpdmF0ZSgpCisKKyAgICBk
ZWYgX2NyZWF0ZV9zb2NrZXRzKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnZlcl9uYW1lLCBzZWxm
LnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVzcworICAgICAgICBzZWxmLl9zb2NrZXRz
ID0gW10KKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX25hbWU6CisgICAgICAgICAgICAjIE9u
IHBsYXRmb3JtcyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBJUHY2LCB0aGUgZmlyc3QgYmluZCBmYWls
cy4KKyAgICAgICAgICAgICMgT24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSVB2NgorICAgICAg
ICAgICAgIyAtIElmIGl0IGJpbmRzIGJvdGggSVB2NCBhbmQgSVB2NiBvbiBjYWxsIHdpdGggQUZf
SU5FVDYsIHRoZQorICAgICAgICAgICAgIyAgIGZpcnN0IGJpbmQgc3VjY2VlZHMgYW5kIHRoZSBz
ZWNvbmQgZmFpbHMgKHdlJ2xsIHNlZSAnQWRkcmVzcworICAgICAgICAgICAgIyAgIGFscmVhZHkg
aW4gdXNlJyBlcnJvcikuCisgICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMgb25seSBJUHY2IG9u
IGNhbGwgd2l0aCBBRl9JTkVUNiwgYm90aCBjYWxsIGFyZQorICAgICAgICAgICAgIyAgIGV4cGVj
dGVkIHRvIHN1Y2NlZWQgdG8gbGlzdGVuIGJvdGggcHJvdG9jb2wuCisgICAgICAgICAgICBhZGRy
aW5mb19hcnJheSA9IFsKKyAgICAgICAgICAgICAgICAoc29ja2V0LkFGX0lORVQ2LCBzb2NrZXQu
U09DS19TVFJFQU0sICcnLCAnJywgJycpLAorICAgICAgICAgICAgICAgIChzb2NrZXQuQUZfSU5F
VCwgc29ja2V0LlNPQ0tfU1RSRUFNLCAnJywgJycsICcnKV0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGFkZHJpbmZvX2FycmF5ID0gc29ja2V0LmdldGFkZHJpbmZvKHNlbGYuc2VydmVyX25h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc29ja2V0LkFGX1VOU1BFQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNvY2tldC5TT0NLX1NUUkVBTSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFBST1RPX1RDUCkKKyAgICAgICAg
Zm9yIGFkZHJpbmZvIGluIGFkZHJpbmZvX2FycmF5OgorICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0NyZWF0ZSBzb2NrZXQgb246ICVyJywgYWRkcmluZm8pCisgICAgICAgICAgICBmYW1p
bHksIHNvY2t0eXBlLCBwcm90bywgY2Fub25uYW1lLCBzb2NrYWRkciA9IGFkZHJpbmZvCisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc29ja2V0XyA9IHNvY2tldC5zb2NrZXQoZmFt
aWx5LCBzb2NrdHlwZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYu
d2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCisgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51
c2VfdGxzOgorICAgICAgICAgICAgICAgICMgRm9yIHRoZSBjYXNlIG9mIF9IQVNfT1BFTl9TU0ws
IHdlIGRvIHdyYXBwZXIgc2V0dXAgYWZ0ZXIKKyAgICAgICAgICAgICAgICAjIGFjY2VwdC4KKyAg
ICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RB
TkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNf
Y2xpZW50X2F1dGg6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50
bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50X2NlcnRfID0gc3NsLkNFUlRfT1BUSU9OQUwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRf
UkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX05PTkUKKyAgICAgICAgICAgICAgICAgICAgc29j
a2V0XyA9IHNzbC53cmFwX3NvY2tldChzb2NrZXRfLAorICAgICAgICAgICAgICAgICAgICAgICAg
a2V5ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tleSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNlcnRmaWxlPXNlcnZlcl9vcHRpb25zLmNlcnRpZmljYXRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09MX1NTTHYyMywKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNhX2NlcnRzPXNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2EsCisgICAgICAg
ICAgICAgICAgICAgICAgICBjZXJ0X3JlcXM9Y2xpZW50X2NlcnRfLAorICAgICAgICAgICAgICAg
ICAgICAgICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9RmFsc2UpCisgICAgICAgICAgICBzZWxm
Ll9zb2NrZXRzLmFwcGVuZCgoc29ja2V0XywgYWRkcmluZm8pKQorCisgICAgZGVmIHNlcnZlcl9i
aW5kKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNl
cnZlcl9iaW5kIHRvIGVuYWJsZSBtdWx0aXBsZQorICAgICAgICBzb2NrZXRzIGJpbmQuCisgICAg
ICAgICIiIgorCisgICAgICAgIGZhaWxlZF9zb2NrZXRzID0gW10KKworICAgICAgICBmb3Igc29j
a2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgorICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8g
PSBzb2NrZXRpbmZvCisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQmluZCBvbjogJXIn
LCBhZGRyaW5mbykKKyAgICAgICAgICAgIGlmIHNlbGYuYWxsb3dfcmV1c2VfYWRkcmVzczoKKyAg
ICAgICAgICAgICAgICBzb2NrZXRfLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tl
dC5TT19SRVVTRUFERFIsIDEpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc29j
a2V0Xy5iaW5kKHNlbGYuc2VydmVyX2FkZHJlc3MpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1
cmU6ICVyJywgZSkKKyAgICAgICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkKKyAgICAgICAgICAg
ICAgICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0aW5mbykKKyAgICAgICAgICAgIGlmIHNl
bGYuc2VydmVyX2FkZHJlc3NbMV0gPT0gMDoKKyAgICAgICAgICAgICAgICAjIFRoZSBvcGVyYXRp
bmcgc3lzdGVtIGFzc2lnbnMgdGhlIGFjdHVhbCBwb3J0IG51bWJlciBmb3IgcG9ydAorICAgICAg
ICAgICAgICAgICMgbnVtYmVyIDAuIFRoaXMgY2FzZSwgdGhlIHNlY29uZCBhbmQgbGF0ZXIgc29j
a2V0cyBzaG91bGQgdXNlCisgICAgICAgICAgICAgICAgIyB0aGUgc2FtZSBwb3J0IG51bWJlci4g
QWxzbyBzZWxmLnNlcnZlcl9wb3J0IGlzIHJld3JpdHRlbgorICAgICAgICAgICAgICAgICMgYmVj
YXVzZSBpdCBpcyBleHBvcnRlZCwgYW5kIHdpbGwgYmUgdXNlZCBieSBleHRlcm5hbCBjb2RlLgor
ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2FkZHJlc3MgPSAoCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuc2VydmVyX25hbWUsIHNvY2tldF8uZ2V0c29ja25hbWUoKVsxXSkKKyAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXQorICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdQb3J0ICVyIGlzIGFzc2lnbmVkJywgc2VsZi5z
ZXJ2ZXJfcG9ydCkKKworICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBmYWlsZWRfc29ja2V0czoK
KyAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3ZlKHNvY2tldGluZm8pCisKKyAgICBkZWYg
c2VydmVyX2FjdGl2YXRlKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIu
VENQU2VydmVyLnNlcnZlcl9hY3RpdmF0ZSB0byBlbmFibGUgbXVsdGlwbGUKKyAgICAgICAgc29j
a2V0cyBsaXN0ZW4uCisgICAgICAgICIiIgorCisgICAgICAgIGZhaWxlZF9zb2NrZXRzID0gW10K
KworICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgorICAgICAgICAgICAg
c29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCisgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnTGlzdGVuIG9uOiAlcicsIGFkZHJpbmZvKQorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHNvY2tldF8ubGlzdGVuKHNlbGYucmVxdWVzdF9xdWV1ZV9zaXplKQorICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCisgICAgICAgICAgICAgICAgc29ja2V0Xy5j
bG9zZSgpCisgICAgICAgICAgICAgICAgZmFpbGVkX3NvY2tldHMuYXBwZW5kKHNvY2tldGluZm8p
CisKKyAgICAgICAgZm9yIHNvY2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6CisgICAgICAgICAg
ICBzZWxmLl9zb2NrZXRzLnJlbW92ZShzb2NrZXRpbmZvKQorCisgICAgICAgIGlmIGxlbihzZWxm
Ll9zb2NrZXRzKSA9PSAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKAorICAg
ICAgICAgICAgICAgICdObyBzb2NrZXRzIGFjdGl2YXRlZC4gVXNlIGluZm8gbG9nIGxldmVsIHRv
IHNlZSB0aGUgcmVhc29uLicpCisKKyAgICBkZWYgc2VydmVyX2Nsb3NlKHNlbGYpOgorICAgICAg
ICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9jbG9zZSB0byBlbmFi
bGUgbXVsdGlwbGUKKyAgICAgICAgc29ja2V0cyBjbG9zZS4KKyAgICAgICAgIiIiCisKKyAgICAg
ICAgZm9yIHNvY2tldGluZm8gaW4gc2VsZi5fc29ja2V0czoKKyAgICAgICAgICAgIHNvY2tldF8s
IGFkZHJpbmZvID0gc29ja2V0aW5mbworICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Ns
b3NlIG9uOiAlcicsIGFkZHJpbmZvKQorICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCisKKyAg
ICBkZWYgZmlsZW5vKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQ
U2VydmVyLmZpbGVuby4iIiIKKworICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwoJ05vdCBz
dXBwb3J0ZWQ6IGZpbGVubycpCisgICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXRzWzBdWzBdLmZp
bGVubygpCisKKyAgICBkZWYgaGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRy
ZXNzKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLmhhbmRsZV9lcnJvci4iIiIK
KworICAgICAgICBzZWxmLl9sb2dnZXIuZXJyb3IoCisgICAgICAgICAgICAnRXhjZXB0aW9uIGlu
IHByb2Nlc3NpbmcgcmVxdWVzdCBmcm9tOiAlclxuJXMnLAorICAgICAgICAgICAgY2xpZW50X2Fk
ZHJlc3MsCisgICAgICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICAjIE5v
dGU6IGNsaWVudF9hZGRyZXNzIGlzIGEgdHVwbGUuCisKKyAgICBkZWYgZ2V0X3JlcXVlc3Qoc2Vs
Zik6CisgICAgICAgICIiIk92ZXJyaWRlIFRDUFNlcnZlci5nZXRfcmVxdWVzdCB0byB3cmFwIE9w
ZW5TU0wuU1NMLkNvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0IHdpdGggX1N0YW5kYWxvbmVTU0xD
b25uZWN0aW9uIHRvIHByb3ZpZGUgbWFrZWZpbGUgbWV0aG9kLiBXZQorICAgICAgICBjYW5ub3Qg
c3Vic3RpdHV0ZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uLm1ha2VmaWxlIHNpbmNlIGl0J3MgcmVh
ZG9ubHkKKyAgICAgICAgYXR0cmlidXRlLgorICAgICAgICAiIiIKKworICAgICAgICBhY2NlcHRl
ZF9zb2NrZXQsIGNsaWVudF9hZGRyZXNzID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKKworICAgICAg
ICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCisgICAgICAg
IGlmIHNlcnZlcl9vcHRpb25zLnVzZV90bHM6CisgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9u
cy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgp
CisgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFcnJvciwgZToKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUpCisgICAgICAgICAgICAgICAgICAgIHJh
aXNlCisKKyAgICAgICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBp
cyBkb25lIG9uIGFjY2VwdC4KKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Np
cGhlcjogJXMnLCBhY2NlcHRlZF9zb2NrZXQuY2lwaGVyKCkpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydDogJXInLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZ2V0cGVlcmNlcnQoKSkKKyAgICAgICAgICAg
IGVsaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKKyAg
ICAgICAgICAgICAgICAjIFdlIGNhbm5vdCBwcmludCB0aGUgY2lwaGVyIGluIHVzZS4gcHlPcGVu
U1NMIGRvZXNuJ3QgcHJvdmlkZQorICAgICAgICAgICAgICAgICMgYW55IG1ldGhvZCB0byBmZXRj
aCB0aGF0LgorCisgICAgICAgICAgICAgICAgY3R4ID0gT3BlblNTTC5TU0wuQ29udGV4dChPcGVu
U1NMLlNTTC5TU0x2MjNfTUVUSE9EKQorICAgICAgICAgICAgICAgIGN0eC51c2VfcHJpdmF0ZWtl
eV9maWxlKHNlcnZlcl9vcHRpb25zLnByaXZhdGVfa2V5KQorICAgICAgICAgICAgICAgIGN0eC51
c2VfY2VydGlmaWNhdGVfZmlsZShzZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSkKKworICAgICAg
ICAgICAgICAgIGRlZiBkZWZhdWx0X2NhbGxiYWNrKGNvbm4sIGNlcnQsIGVycm51bSwgZXJyZGVw
dGgsIG9rKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9rID09IDEKKworICAgICAgICAg
ICAgICAgICMgU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50IGZvciBTU0xfQ1RYX3NldF92ZXJpZnku
CisgICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgorICAg
ICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSA9IE9wZW5TU0wuU1NMLlZFUklGWV9QRUVSCisg
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRf
b3B0aW9uYWw6CisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSB8PSBPcGVuU1NM
LlNTTC5WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQKKyAgICAgICAgICAgICAgICAgICAgY3R4
LnNldF92ZXJpZnkodmVyaWZ5X21vZGUsIGRlZmF1bHRfY2FsbGJhY2spCisgICAgICAgICAgICAg
ICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoc2VydmVyX29wdGlvbnMudGxzX2NsaWVu
dF9jYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25l
KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVy
aWZ5KE9wZW5TU0wuU1NMLlZFUklGWV9OT05FLCBkZWZhdWx0X2NhbGxiYWNrKQorCisgICAgICAg
ICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gT3BlblNTTC5TU0wuQ29ubmVjdGlvbihjdHgsIGFj
Y2VwdGVkX3NvY2tldCkKKyAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuc2V0X2FjY2Vw
dF9zdGF0ZSgpCisKKyAgICAgICAgICAgICAgICAjIENvbnZlcnQgU1NMIHJlbGF0ZWQgZXJyb3Ig
aW50byBzb2NrZXQuZXJyb3Igc28gdGhhdAorICAgICAgICAgICAgICAgICMgU29ja2V0U2VydmVy
IGlnbm9yZXMgdGhlbSBhbmQga2VlcHMgcnVubmluZy4KKyAgICAgICAgICAgICAgICAjCisgICAg
ICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ29udmVydCBhbGwga2luZHMgb2YgZXJyb3Jz
LgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29j
a2V0LmRvX2hhbmRzaGFrZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NMLkVy
cm9yLCBlOgorICAgICAgICAgICAgICAgICAgICAjIFNldCBlcnJubyBwYXJ0IHRvIDEgKFNTTF9F
UlJPUl9TU0wpIGxpa2UgdGhlIHNzbCBtb2R1bGUKKyAgICAgICAgICAgICAgICAgICAgIyBkb2Vz
LgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVyJywgZSkKKyAgICAg
ICAgICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yKDEsICclcicgJSBlKQorICAgICAgICAg
ICAgICAgIGNlcnQgPSBhY2NlcHRlZF9zb2NrZXQuZ2V0X3BlZXJfY2VydGlmaWNhdGUoKQorICAg
ICAgICAgICAgICAgIGlmIGNlcnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IGNlcnQgc3ViamVjdDogJXInLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC5nZXRfc3ViamVjdCgpLmdldF9jb21wb25l
bnRzKCkpCisgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gX1N0YW5kYWxvbmVTU0xD
b25uZWN0aW9uKGFjY2VwdGVkX3NvY2tldCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gVExTIHN1cHBvcnQgbW9kdWxlIGlzIGF2YWlsYWJs
ZScpCisKKyAgICAgICAgcmV0dXJuIGFjY2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJlc3MKKwor
ICAgIGRlZiBzZXJ2ZV9mb3JldmVyKHNlbGYsIHBvbGxfaW50ZXJ2YWw9MC41KToKKyAgICAgICAg
IiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVfZm9yZXZlci4iIiIKKwor
ICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IFRydWUKKyAgICAgICAgc2VsZi5fX3dzX2lzX3No
dXRfZG93bi5jbGVhcigpCisgICAgICAgIGhhbmRsZV9yZXF1ZXN0ID0gc2VsZi5oYW5kbGVfcmVx
dWVzdAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfaGFuZGxlX3JlcXVlc3Rfbm9ibG9jaycp
OgorICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxmLl9oYW5kbGVfcmVxdWVzdF9ub2Js
b2NrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygnRmFs
bGJhY2sgdG8gYmxvY2tpbmcgcmVxdWVzdCBoYW5kbGVyJykKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgd2hpbGUgc2VsZi5fX3dzX3NlcnZpbmc6CisgICAgICAgICAgICAgICAgciwgdywgZSA9
IHNlbGVjdC5zZWxlY3QoCisgICAgICAgICAgICAgICAgICAgIFtzb2NrZXRfWzBdIGZvciBzb2Nr
ZXRfIGluIHNlbGYuX3NvY2tldHNdLAorICAgICAgICAgICAgICAgICAgICBbXSwgW10sIHBvbGxf
aW50ZXJ2YWwpCisgICAgICAgICAgICAgICAgZm9yIHNvY2tldF8gaW4gcjoKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5zb2NrZXQgPSBzb2NrZXRfCisgICAgICAgICAgICAgICAgICAgIGhhbmRs
ZV9yZXF1ZXN0KCkKKyAgICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9IE5vbmUKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24uc2V0KCkKKworICAg
IGRlZiBzaHV0ZG93bihzZWxmKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLkJh
c2VTZXJ2ZXIuc2h1dGRvd24uIiIiCisKKyAgICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBGYWxz
ZQorICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLndhaXQoKQorCisKK2NsYXNzIFdlYlNv
Y2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyKToK
KyAgICAiIiJDR0lIVFRQUmVxdWVzdEhhbmRsZXIgc3BlY2lhbGl6ZWQgZm9yIFdlYlNvY2tldC4i
IiIKKworICAgICMgVXNlIGh0dHBsaWIuSFRUUE1lc3NhZ2UgaW5zdGVhZCBvZiBtaW1ldG9vbHMu
TWVzc2FnZS4KKyAgICBNZXNzYWdlQ2xhc3MgPSBodHRwbGliLkhUVFBNZXNzYWdlCisKKyAgICBw
cm90b2NvbF92ZXJzaW9uID0gIkhUVFAvMS4xIgorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAg
ICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIuc2V0dXAg
dG8gd3JhcCByZmlsZQorICAgICAgICB3aXRoIE1lbW9yaXppbmdGaWxlLgorCisgICAgICAgIFRo
aXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGJ5IEJhc2VSZXF1ZXN0SGFuZGxlcidzIGNvbnN0cnVj
dG9yCisgICAgICAgIGJlZm9yZSBjYWxsaW5nIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxl
LgorICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZSB3aWxsIGNhbGwKKyAgICAg
ICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgYW5kIGl0IHdpbGwg
Y2FsbAorICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgorICAg
ICAgICAiIiIKKworICAgICAgICAjIENhbGwgc3VwZXJjbGFzcydzIHNldHVwIHRvIHByZXBhcmUg
cmZpbGUsIHdmaWxlLCBldGMuIFNlZSBzZXR1cAorICAgICAgICAjIGRlZmluaXRpb24gb24gdGhl
IHJvb3QgY2xhc3MgU29ja2V0U2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyIHRvCisgICAgICAg
ICMgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZG9lcy4KKyAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lI
VFRQUmVxdWVzdEhhbmRsZXIuc2V0dXAoc2VsZikKKworICAgICAgICBzZWxmLnJmaWxlID0gbWVt
b3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoCisgICAgICAgICAgICBzZWxmLnJmaWxlLAorICAg
ICAgICAgICAgbWF4X21lbW9yaXplZF9saW5lcz1fTUFYX01FTU9SSVpFRF9MSU5FUykKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKToKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IHNlcnZlci53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKKworICAg
ICAgICAjIE92ZXJyaWRlcyBDR0lIVFRQU2VydmVyUmVxdWVzdEhhbmRsZXIuY2dpX2RpcmVjdG9y
aWVzLgorICAgICAgICBzZWxmLmNnaV9kaXJlY3RvcmllcyA9IHNlbGYuX29wdGlvbnMuY2dpX2Rp
cmVjdG9yaWVzCisgICAgICAgICMgUmVwbGFjZSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaXNfZXhl
Y3V0YWJsZSBtZXRob2QuCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJsZV9t
ZXRob2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmlzX2V4ZWN1dGFibGUgPSBzZWxm
Ll9vcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kCisKKyAgICAgICAgIyBUaGlzIGFjdHVhbGx5
IGNhbGxzIEJhc2VSZXF1ZXN0SGFuZGxlci5fX2luaXRfXy4KKyAgICAgICAgQ0dJSFRUUFNlcnZl
ci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCByZXF1
ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKQorCisgICAgZGVmIHBhcnNlX3JlcXVlc3Qoc2Vs
Zik6CisgICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLkJhc2VIVFRQUmVxdWVzdEhh
bmRsZXIucGFyc2VfcmVxdWVzdC4KKworICAgICAgICBSZXR1cm4gVHJ1ZSB0byBjb250aW51ZSBw
cm9jZXNzaW5nIGZvciBIVFRQKFMpLCBGYWxzZSBvdGhlcndpc2UuCisKKyAgICAgICAgU2VlIEJh
c2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IG1ldGhvZCB3aGljaCBjYWxs
cworICAgICAgICB0aGlzIG1ldGhvZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgcmV0dXJuIHZhbHVl
IHdpbGwgYmUgaGFuZGxlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBXZSBob29rIHBhcnNl
X3JlcXVlc3QgbWV0aG9kLCBidXQgYWxzbyBjYWxsIHRoZSBvcmlnaW5hbAorICAgICAgICAjIENH
SUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0IHNpbmNlIHdoZW4gd2UgcmV0dXJuIEZh
bHNlLAorICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3Qg
Y29udGludWVzIHByb2Nlc3NpbmcgYW5kCisgICAgICAgICMgaXQgbmVlZHMgdmFyaWFibGVzIHNl
dCBieSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KKyAgICAgICAgIworICAg
ICAgICAjIFZhcmlhYmxlcyBzZXQgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSBhbHNvIHVzZWQgYnkg
V2ViU29ja2V0IHJlcXVlc3QKKyAgICAgICAgIyBoYW5kbGluZyAoc2VsZi5wYXRoLCBzZWxmLmNv
bW1hbmQsIHNlbGYucmVxdWVzdGxpbmUsIGV0Yy4gU2VlIGFsc28KKyAgICAgICAgIyBob3cgX1N0
YW5kYWxvbmVSZXF1ZXN0J3MgbWVtYmVycyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlc2UKKyAg
ICAgICAgIyBhdHRyaWJ1dGVzKS4KKyAgICAgICAgaWYgbm90IENHSUhUVFBTZXJ2ZXIuQ0dJSFRU
UFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qoc2VsZik6CisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgICAgICBpZiBzZWxmLmNvbW1hbmQgPT0gIkNPTk5FQ1QiOgorICAgICAgICAg
ICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDIwMCwgIkNvbm5lY3RlZCIpCisgICAgICAgICAgICBzZWxm
LnNlbmRfaGVhZGVyKCJDb25uZWN0aW9uIiwgImtlZXAtYWxpdmUiKQorICAgICAgICAgICAgc2Vs
Zi5lbmRfaGVhZGVycygpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLnVzZV9iYXNpY19hdXRoOgorICAgICAgICAgICAgYXV0aCA9IHNlbGYuaGVh
ZGVycy5nZXRoZWFkZXIoJ0F1dGhvcml6YXRpb24nKQorICAgICAgICAgICAgaWYgYXV0aCAhPSBz
ZWxmLl9vcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbDoKKyAgICAgICAgICAgICAgICBzZWxm
LnNlbmRfcmVzcG9uc2UoNDAxKQorICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ1dX
Vy1BdXRoZW50aWNhdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jhc2lj
IHJlYWxtPSJQeXdlYnNvY2tldCInKQorICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMo
KQorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZXF1ZXN0IGJhc2ljIGF1dGhl
bnRpY2F0aW9uJykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIFNw
ZWNpYWwgcGF0aHMgZm9yIFhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyaworICAgICAgICB4aHJfYmVu
Y2htYXJrX2hlbHBlcl9wcmVmaXggPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1
JworICAgICAgICBwYXJzZWRfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKKyAg
ICAgICAgaWYgcGFyc2VkX3BhdGgucGF0aCA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4
ICsgJ19zZW5kJyk6CisgICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5j
aG1hcmtIYW5kbGVyKAorICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwg
c2VsZi53ZmlsZSkKKyAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19zZW5kKCkK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09
ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKyAnX3JlY2VpdmUnKToKKyAgICAgICAgICAg
IHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCisgICAgICAgICAg
ICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQorICAgICAgICAgICAg
eGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3JlY2VpdmVfYW5kX3BhcnNlKCkKKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2ht
YXJrX2hlbHBlcl9wcmVmaXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3Jl
Y2VpdmVfZ2V0bm9jYWNoZScpOgorICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyID0g
WEhSQmVuY2htYXJrSGFuZGxlcigKKyAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNlbGYu
cmZpbGUsIHNlbGYud2ZpbGUpCisgICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIuZG9f
cmVjZWl2ZSgKKyAgICAgICAgICAgICAgICBpbnQocGFyc2VkX3BhdGgucXVlcnkpLCBGYWxzZSwg
RmFsc2UpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgcGFyc2VkX3BhdGgu
cGF0aCA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ19yZWNlaXZlX2dldGNhY2hlJyk6CisgICAgICAgICAgICB4aHJfYmVu
Y2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAorICAgICAgICAgICAgICAgIHNl
bGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKKyAgICAgICAgICAgIHhocl9iZW5j
aG1hcmtfaGFuZGxlci5kb19yZWNlaXZlKAorICAgICAgICAgICAgICAgIGludChwYXJzZWRfcGF0
aC5xdWVyeSksIEZhbHNlLCBUcnVlKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg
ICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaShzZWxm
LnBhdGgpCisgICAgICAgIGlmIHJlc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnSW52YWxpZCBVUkk6ICVyJywgc2VsZi5wYXRoKQorICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYuc2VydmVy
LndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucworICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgdmFsaWRhdGlvbl9ob3N0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9o
b3N0CisgICAgICAgICAgICBpZiB2YWxpZGF0aW9uX2hvc3QgaXMgbm90IE5vbmUgYW5kIGhvc3Qg
IT0gdmFsaWRhdGlvbl9ob3N0OgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJ
bnZhbGlkIGhvc3Q6ICVyIChleHBlY3RlZDogJXIpJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk
YXRpb25faG9zdCkKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sg
dG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgICAgICBpZiBwb3J0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0
ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9wb3J0CisgICAgICAgICAgICBpZiB2YWxpZGF0
aW9uX3BvcnQgaXMgbm90IE5vbmUgYW5kIHBvcnQgIT0gdmFsaWRhdGlvbl9wb3J0OgorICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIHBvcnQ6ICVyIChleHBlY3RlZDog
JXIpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fcG9ydCkKKyAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykK
KyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWxmLnBhdGggPSByZXNvdXJj
ZQorCisgICAgICAgIHJlcXVlc3QgPSBfU3RhbmRhbG9uZVJlcXVlc3Qoc2VsZiwgc2VsZi5fb3B0
aW9ucy51c2VfdGxzKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmFsbGJhY2sgdG8g
ZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9yIHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNoCisgICAgICAg
ICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KKyAgICAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZi5wYXRoKToK
KyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnTm8gaGFuZGxlciBmb3IgcmVzb3Vy
Y2U6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdGgpCisg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1
ZXN0SGFuZGxlcicpCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhjZXB0
IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0Rpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKKyAgICAgICAgICAgIHNl
bGYuc2VuZF9lcnJvcihlLnN0YXR1cykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICMgSWYgYW55IEV4Y2VwdGlvbnMgd2l0aG91dCBleGNlcHQgY2xhdXNlIHNldHVwIChpbmNs
dWRpbmcKKyAgICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlvbikgaXMgcmFpc2VkIGJlbG93IHRoaXMg
cG9pbnQsIGl0IHdpbGwgYmUgY2F1Z2h0CisgICAgICAgICMgYW5kIGxvZ2dlZCBieSBXZWJTb2Nr
ZXRTZXJ2ZXIuCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIGhhbmRzaGFrZS5kb19oYW5kc2hha2UoCisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qs
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlciwKKyAgICAgICAg
ICAgICAgICAgICAgYWxsb3dEcmFmdDc1PXNlbGYuX29wdGlvbnMuYWxsb3dfZHJhZnQ3NSwKKyAg
ICAgICAgICAgICAgICAgICAgc3RyaWN0PXNlbGYuX29wdGlvbnMuc3RyaWN0KQorICAgICAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAl
cycsIGUpCisgICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKGNvbW1vbi5IVFRQX1NU
QVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKGNvbW1v
bi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCisgICAgICAgICAgICAgICAgc2VsZi5lbmRf
aGVhZGVycygpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNl
cHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAjIEhh
bmRzaGFrZSBmb3Igd3MocykgZmFpbGVkLgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJvcjogJXMnLCBlKQorICAgICAgICAgICAgICAg
IHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgICAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IHNlbGYuX29wdGlvbnMuZGlzcGF0
Y2hlcgorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEo
cmVxdWVzdCkKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9u
LCBlOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Fib3J0ZWQ6ICVzJywgZSkKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwgY29kZT0nLScs
IHNpemU9Jy0nKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIubG9nX3JlcXVl
c3QuIiIiCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyIlcyIgJXMgJXMnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RsaW5lLCBzdHIoY29kZSksIHN0cihzaXpl
KSkKKworICAgIGRlZiBsb2dfZXJyb3Ioc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJPdmVycmlk
ZSBCYXNlSFRUUFNlcnZlci5sb2dfZXJyb3IuIiIiCisKKyAgICAgICAgIyBEZXNwaXRlIHRoZSBu
YW1lLCB0aGlzIG1ldGhvZCBpcyBmb3Igd2FybmluZ3MgdGhhbiBmb3IgZXJyb3JzLgorICAgICAg
ICAjIEZvciBleGFtcGxlLCBIVFRQIHN0YXR1cyBjb2RlIGlzIGxvZ2dlZCBieSB0aGlzIG1ldGhv
ZC4KKyAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoJyVzIC0gJXMnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3Nfc3RyaW5nKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3NbMF0gJSBhcmdzWzE6XSkKKworICAgIGRlZiBpc19jZ2koc2VsZik6
CisgICAgICAgICIiIlRlc3Qgd2hldGhlciBzZWxmLnBhdGggY29ycmVzcG9uZHMgdG8gYSBDR0kg
c2NyaXB0LgorCisgICAgICAgIEFkZCBleHRyYSBjaGVjayB0aGF0IHNlbGYucGF0aCBkb2Vzbid0
IGNvbnRhaW5zIC4uCisgICAgICAgIEFsc28gY2hlY2sgaWYgdGhlIGZpbGUgaXMgYSBleGVjdXRh
YmxlIGZpbGUgb3Igbm90LgorICAgICAgICBJZiB0aGUgZmlsZSBpcyBub3QgZXhlY3V0YWJsZSwg
aXQgaXMgaGFuZGxlZCBhcyBzdGF0aWMgZmlsZSBvciBkaXIKKyAgICAgICAgcmF0aGVyIHRoYW4g
YSBDR0kgc2NyaXB0LgorICAgICAgICAiIiIKKworICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNH
SUhUVFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2VsZik6CisgICAgICAgICAgICBpZiAnLi4nIGlu
IHNlbGYucGF0aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICMg
c3RyaXAgcXVlcnkgcGFyYW1ldGVyIGZyb20gcmVxdWVzdCBwYXRoCisgICAgICAgICAgICByZXNv
dXJjZV9uYW1lID0gc2VsZi5wYXRoLnNwbGl0KCc/JywgMilbMF0KKyAgICAgICAgICAgICMgY29u
dmVydCByZXNvdXJjZV9uYW1lIGludG8gcmVhbCBwYXRoIG5hbWUgaW4gZmlsZXN5c3RlbS4KKyAg
ICAgICAgICAgIHNjcmlwdGZpbGUgPSBzZWxmLnRyYW5zbGF0ZV9wYXRoKHJlc291cmNlX25hbWUp
CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19leGVjdXRh
YmxlKHNjcmlwdGZpbGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIF9nZXRfbG9nZ2Vy
X2Zyb21fY2xhc3MoYyk6CisgICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKCclcy4lcycgJSAo
Yy5fX21vZHVsZV9fLCBjLl9fbmFtZV9fKSkKKworCitkZWYgX2NvbmZpZ3VyZV9sb2dnaW5nKG9w
dGlvbnMpOgorICAgIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAn
RklORScpCisKKyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgbG9nZ2VyLnNl
dExldmVsKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpKQor
ICAgIGlmIG9wdGlvbnMubG9nX2ZpbGU6CisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLmhhbmRs
ZXJzLlJvdGF0aW5nRmlsZUhhbmRsZXIoCisgICAgICAgICAgICAgICAgb3B0aW9ucy5sb2dfZmls
ZSwgJ2EnLCBvcHRpb25zLmxvZ19tYXgsIG9wdGlvbnMubG9nX2NvdW50KQorICAgIGVsc2U6Cisg
ICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQorICAgIGZvcm1hdHRlciA9
IGxvZ2dpbmcuRm9ybWF0dGVyKAorICAgICAgICAgICAgJ1slKGFzY3RpbWUpc10gWyUobGV2ZWxu
YW1lKXNdICUobmFtZSlzOiAlKG1lc3NhZ2UpcycpCisgICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIo
Zm9ybWF0dGVyKQorICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisKKyAgICBkZWZsYXRl
X2xvZ19sZXZlbF9uYW1lID0gbG9nZ2luZy5nZXRMZXZlbE5hbWUoCisgICAgICAgIG9wdGlvbnMu
ZGVmbGF0ZV9sb2dfbGV2ZWwudXBwZXIoKSkKKyAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0
aWwuX0RlZmxhdGVyKS5zZXRMZXZlbCgKKyAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkK
KyAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0aWwuX0luZmxhdGVyKS5zZXRMZXZlbCgKKyAg
ICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkKKworCitkZWYgX2J1aWxkX29wdGlvbl9wYXJz
ZXIoKToKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorCisgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tY29uZmlnJywgZGVzdD0nY29uZmlnX2ZpbGUnLCB0eXBlPSdzdHJpbmcn
LAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSgnUGF0aCB0byBjb25maWd1cmF0aW9uIGZpbGUuIFNlZSB0aGUgZmlsZSBjb21t
ZW50ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXQgdGhlIHRvcCBvZiB0aGlzIGZp
bGUgZm9yIHRoZSBjb25maWd1cmF0aW9uICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
ZmlsZSBmb3JtYXQnKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLUgnLCAnLS1zZXJ2ZXItaG9z
dCcsICctLXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJf
aG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywKKyAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdzZXJ2ZXIgaG9zdG5hbWUgdG8gbGlzdGVuIHRvJykKKyAgICBwYXJzZXIu
YWRkX29wdGlvbignLVYnLCAnLS12YWxpZGF0aW9uLWhvc3QnLCAnLS12YWxpZGF0aW9uX2hvc3Qn
LAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25faG9zdCcsCisgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J3NlcnZlciBob3N0bmFtZSB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRoLicpCisgICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAor
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Y29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9Q
T1JULAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3BvcnQgdG8gbGlzdGVuIHRvJykKKyAg
ICBwYXJzZXIuYWRkX29wdGlvbignLVAnLCAnLS12YWxpZGF0aW9uLXBvcnQnLCAnLS12YWxpZGF0
aW9uX3BvcnQnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25fcG9ydCcs
IHR5cGU9J2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBwb3J0IHRvIHZhbGlkYXRlIGluIGFic29sdXRl
IHBhdGguJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXcnLCAnLS13ZWJzb2NrLWhhbmRsZXJz
JywgJy0td2Vic29ja19oYW5kbGVycycsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vi
c29ja19oYW5kbGVycycsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nLicsCisgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0oJ1RoZSByb290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQg
aGFuZGxlciBmaWxlcy4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZiB0aGUgcGF0
aCBpcyByZWxhdGl2ZSwgLS1kb2N1bWVudC1yb290IGlzIHVzZWQgJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdhcyB0aGUgYmFzZS4nKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLW0n
LCAnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAn
LS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSd3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYlNvY2tldCBoYW5kbGVy
cyBtYXAgZmlsZS4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFYWNoIGxpbmUgY29u
c2lzdHMgb2YgYWxpYXNfcmVzb3VyY2VfcGF0aCBhbmQgJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdleGlzdGluZ19yZXNvdXJjZV9wYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLicpKQor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNjYW4tZGlyJywgJy0tc2Nhbl9kaXInLCBk
ZXN0PSdzY2FuX2RpcicsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIC0td2Vi
c29jay1oYW5kbGVycy4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPbmx5IGhhbmRs
ZXJzIHVuZGVyIHRoaXMgZGlyZWN0b3J5IGFyZSBzY2FubmVkICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnYW5kIHJlZ2lzdGVyZWQgdG8gdGhlIHNlcnZlci4gJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdVc2VmdWwgZm9yIHNhdmluZyBzY2FuIHRpbWUgd2hlbiB0aGUgaGFu
ZGxlciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3QgZGlyZWN0b3J5IGNvbnRh
aW5zIGxvdHMgb2YgZmlsZXMgdGhhdCBhcmUgJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdub3QgaGFuZGxlciBmaWxlIG9yIGFyZSBoYW5kbGVyIGZpbGVzIGJ1dCB5b3UgJworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdkb25cJ3Qgd2FudCB0aGVtIHRvIGJlIHJlZ2lzdGVyZWQu
ICcpKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93LWhhbmRsZXJzLW91dHNpZGUtcm9v
dC1kaXInLAorICAgICAgICAgICAgICAgICAgICAgICctLWFsbG93X2hhbmRsZXJzX291dHNpZGVf
cm9vdF9kaXInLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2FsbG93X2hhbmRsZXJzX291
dHNpZGVfcm9vdF9kaXInLAorICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnU2NhbnMgV2ViU29ja2V0IGhhbmRsZXJzIGV2ZW4gaWYgdGhlaXIgY2Fu
b25pY2FsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCBpcyBub3QgdW5kZXIg
LS13ZWJzb2NrLWhhbmRsZXJzLicpKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICctLWRv
Y3VtZW50LXJvb3QnLCAnLS1kb2N1bWVudF9yb290JywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdkb2N1bWVudF9yb290JywgZGVmYXVsdD0nLicsCisgICAgICAgICAgICAgICAgICAgICAg
aGVscD0nRG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkuJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbign
LXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0aHMnLAorICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jvb3QuJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0ZWQuIChlLmcgLXggL2NnaSwvaHRiaW4pICcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZXMgdW5kZXIgZG9jdW1lbnRfcm9vdC9j
Z2lfcGF0aCBhcmUgaGFuZGxlZCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzIENH
SSBwcm9ncmFtcy4gTXVzdCBiZSBleGVjdXRhYmxlLicpKQorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLykn
KQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNfbW9kdWxlJywg
ZGVzdD0ndGxzX21vZHVsZScsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywK
KyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzID0gW19UTFNfQllfU1RBTkRBUkRfTU9EVUxF
LCBfVExTX0JZX1BZT1BFTlNTTF0sCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHNz
bCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQuICcKKyAgICAgICAgICAgICAgICAgICAgICAn
VXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKKyAgICAgICAgICAg
ICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkK
KyAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1wcml2YXRlLWtleScsICctLXByaXZhdGVf
a2V5JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdwcml2YXRlX2tleScsCisgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykK
KyAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRp
ZmljYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgY2Vy
dGlmaWNhdGUgZmlsZS4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtYXV0
aCcsIGRlc3Q9J3Rsc19jbGllbnRfYXV0aCcsCisgICAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdSZXF1ZXN0cyBUTFMgY2xpZW50IGF1dGggb24gZXZlcnkgY29ubmVjdGlvbi4nKQorICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtY2VydC1vcHRpb25hbCcsCisgICAgICAgICAg
ICAgICAgICAgICAgZGVzdD0ndGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJywKKyAgICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCdNYWtlcyBjbGllbnQgY2VydGlmaWNhdGUgb3B0aW9uYWwgZXZl
biB0aG91Z2ggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgY2xpZW50IGF1dGgg
aXMgZW5hYmxlZC4nKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWNhJywg
ZGVzdD0ndGxzX2NsaWVudF9jYScsIGRlZmF1bHQ9JycsCisgICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ1NwZWNpZmllcyBhIHBlbSBmaWxlIHdoaWNoIGNvbnRhaW5zIGEgc2V0IG9mICcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkIENBIGNlcnRpZmljYXRlcyB3
aGljaCBhcmUgdXNlZCB0byAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbGlkYXRl
IGNlcnRpZmljYXRlcyBwYXNzZWQgZnJvbSBjbGllbnRzJykpCisgICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tYmFzaWMtYXV0aCcsIGRlc3Q9J3VzZV9iYXNpY19hdXRoJywKKyAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J1JlcXVpcmVzIEJhc2ljIGF1dGhlbnRpY2F0aW9uLicpCisgICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aC1jcmVkZW50aWFsJywKKyAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdiYXNpY19hdXRoX2NyZWRlbnRpYWwnLCBkZWZhdWx0PSd0ZXN0OnRlc3Qn
LAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZmllcyB0aGUgY3JlZGVudGlhbCBv
ZiBiYXNpYyBhdXRoZW50aWNhdGlvbiAnCisgICAgICAgICAgICAgICAgICAgICAgJ2J5IHVzZXJu
YW1lOnBhc3N3b3JkIHBhaXIgKGUuZy4gdGVzdDp0ZXN0KS4nKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9nX2ZpbGUnLCBkZXN0PSdsb2dfZmlsZScsCisg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nTG9nIGZpbGUuJykKKyAgICAj
IEN1c3RvbSBsb2cgbGV2ZWw6CisgICAgIyAtIEZJTkU6IFByaW50cyBzdGF0dXMgb2YgZWFjaCBm
cmFtZSBwcm9jZXNzaW5nIHN0ZXAKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbGV2ZWwn
LCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAorICAgICAgICAgICAgICAgICAgICAgIGNo
b2ljZXM9WydmaW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVidWcnLCAn
aW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBs
ZXZlbC4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRlZmxhdGUtbG9nLWxldmVsJywgJy0t
ZGVmbGF0ZV9sb2dfbGV2ZWwnLAorICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScs
CisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGVmbGF0ZV9sb2dfbGV2ZWwnLCBkZWZhdWx0
PSd3YXJuJywKKyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycs
ICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbCBm
b3IgX0RlZmxhdGVyIGFuZCBfSW5mbGF0ZXIuJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS10
aHJlYWQtbW9uaXRvci1pbnRlcnZhbC1pbi1zZWMnLAorICAgICAgICAgICAgICAgICAgICAgICct
LXRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYycsCisgICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0ndGhyZWFkX21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjJywKKyAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
KCdJZiBwb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwgcnVuIGEgdGhyZWFkICcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2Vy
dmVyIHRocmVhZHMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJpb2RpY2FsbHkg
aW4gdGhlIHNwZWNpZmllZCBpbnRldmFsIGluICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnc2Vjb25kLiBJZiBub24tcG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQsICcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZSB0aGUgdGhyZWFkIG1vbml0b3IuJykpCisg
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLW1heCcsICctLWxvZ19tYXgnLCBkZXN0PSdsb2df
bWF4JywgdHlwZT0naW50JywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxU
X0xPR19NQVhfQllURVMsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIG1heGltdW0g
Ynl0ZXMnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1jb3VudCcsICctLWxvZ19jb3Vu
dCcsIGRlc3Q9J2xvZ19jb3VudCcsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50Jywg
ZGVmYXVsdD1fREVGQVVMVF9MT0dfQkFDS1VQX0NPVU5ULAorICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J0xvZyBiYWNrdXAgY291bnQnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93
LWRyYWZ0NzUnLCBkZXN0PSdhbGxvd19kcmFmdDc1JywKKyAgICAgICAgICAgICAgICAgICAgICBh
Y3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLXN0cmljdCcsIGRlc3Q9J3N0cmljdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0nT2Jzb2xldGUgb3B0aW9uLiBJZ25v
cmVkLicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVldWUnLCBkZXN0PSdyZXF1
ZXN0X3F1ZXVlX3NpemUnLCB0eXBlPSdpbnQnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9X0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpFLAorICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J3JlcXVlc3QgcXVldWUgc2l6ZScpCisKKyAgICByZXR1cm4gcGFyc2VyCisKKworY2xhc3Mg
VGhyZWFkTW9uaXRvcih0aHJlYWRpbmcuVGhyZWFkKToKKyAgICBkYWVtb24gPSBUcnVlCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgaW50ZXJ2YWxfaW5fc2VjKToKKyAgICAgICAgdGhyZWFkaW5n
LlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSdUaHJlYWRNb25pdG9yJykKKworICAgICAgICBz
ZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxm
Ll9pbnRlcnZhbF9pbl9zZWMgPSBpbnRlcnZhbF9pbl9zZWMKKworICAgIGRlZiBydW4oc2VsZik6
CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0aHJlYWRfbmFtZV9saXN0ID0gW10K
KyAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkaW5nLmVudW1lcmF0ZSgpOgorICAgICAg
ICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QuYXBwZW5kKHRocmVhZC5uYW1lKQorICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oCisgICAgICAgICAgICAgICAgIiVkIGFjdGl2ZSB0aHJlYWRz
OiAlcyIsCisgICAgICAgICAgICAgICAgdGhyZWFkaW5nLmFjdGl2ZV9jb3VudCgpLAorICAgICAg
ICAgICAgICAgICcsICcuam9pbih0aHJlYWRfbmFtZV9saXN0KSkKKyAgICAgICAgICAgIHRpbWUu
c2xlZXAoc2VsZi5faW50ZXJ2YWxfaW5fc2VjKQorCisKK2RlZiBfcGFyc2VfYXJnc19hbmRfY29u
ZmlnKGFyZ3MpOgorICAgIHBhcnNlciA9IF9idWlsZF9vcHRpb25fcGFyc2VyKCkKKworICAgICMg
Rmlyc3QsIHBhcnNlIG9wdGlvbnMgd2l0aG91dCBjb25maWd1cmF0aW9uIGZpbGUuCisgICAgdGVt
cG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1h
cmdzKQorICAgIGlmIHRlbXBvcmFyeV9hcmdzOgorICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAor
ICAgICAgICAgICAgJ1VucmVjb2duaXplZCBwb3NpdGlvbmFsIGFyZ3VtZW50czogJXInLCB0ZW1w
b3JhcnlfYXJncykKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIHRlbXBvcmFyeV9vcHRp
b25zLmNvbmZpZ19maWxlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb25maWdfZnAgPSBv
cGVuKHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxlLCAncicpCisgICAgICAgIGV4Y2VwdCBJ
T0Vycm9yLCBlOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKKyAgICAgICAgICAgICAg
ICAnRmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlvbiBmaWxlICVyOiAlcicsCisgICAgICAgICAg
ICAgICAgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGUsCisgICAgICAgICAgICAgICAgZSkK
KyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgY29uZmlnX3BhcnNlciA9IENvbmZp
Z1BhcnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKKyAgICAgICAgY29uZmlnX3BhcnNlci5yZWFkZnAo
Y29uZmlnX2ZwKQorICAgICAgICBjb25maWdfZnAuY2xvc2UoKQorCisgICAgICAgIGFyZ3NfZnJv
bV9jb25maWcgPSBbXQorICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29uZmlnX3BhcnNlci5p
dGVtcygncHl3ZWJzb2NrZXQnKToKKyAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5k
KCctLScgKyBuYW1lKQorICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZpZy5hcHBlbmQodmFsdWUp
CisgICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21f
Y29uZmlnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZp
ZyArIGFyZ3MKKyAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKKyAg
ICBlbHNlOgorICAgICAgICByZXR1cm4gdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdz
CisKKworZGVmIF9tYWluKGFyZ3M9Tm9uZSk6CisgICAgIiIiWW91IGNhbiBjYWxsIHRoaXMgZnVu
Y3Rpb24gZnJvbSB5b3VyIG93biBwcm9ncmFtLCBidXQgcGxlYXNlIG5vdGUgdGhhdAorICAgIHRo
aXMgZnVuY3Rpb24gaGFzIHNvbWUgc2lkZS1lZmZlY3RzIHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIg
cHJvZ3JhbS4gRm9yCisgICAgZXhhbXBsZSwgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luIHVzZSBp
biB0aGlzIG1ldGhvZCByZXBsYWNlcyBpbXBsZW1lbnRhdGlvbgorICAgIG9mIG9zLnBvcGVuMy4K
KyAgICAiIiIKKworICAgIG9wdGlvbnMsIGFyZ3MgPSBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFy
Z3M9YXJncykKKworICAgIG9zLmNoZGlyKG9wdGlvbnMuZG9jdW1lbnRfcm9vdCkKKworICAgIF9j
b25maWd1cmVfbG9nZ2luZyhvcHRpb25zKQorCisgICAgaWYgb3B0aW9ucy5hbGxvd19kcmFmdDc1
OgorICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tYWxsb3dfZHJhZnQ3NSBvcHRpb24gaXMgb2Jz
b2xldGUuJykKKworICAgIGlmIG9wdGlvbnMuc3RyaWN0OgorICAgICAgICBsb2dnaW5nLndhcm5p
bmcoJy0tc3RyaWN0IG9wdGlvbiBpcyBvYnNvbGV0ZS4nKQorCisgICAgIyBUT0RPKHR5b3NoaW5v
KTogQ2xlYW4gdXAgaW5pdGlhbGl6YXRpb24gb2YgQ0dJIHJlbGF0ZWQgdmFsdWVzLiBNb3ZlIHNv
bWUKKyAgICAjIG9mIGNvZGUgaGVyZSB0byBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBjbGFzcyBp
ZiBpdCdzIGJldHRlci4KKyAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IFtdCisgICAgb3B0
aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCA9IE5vbmUKKyAgICBpZiBvcHRpb25zLmNnaV9wYXRo
czoKKyAgICAgICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBvcHRpb25zLmNnaV9wYXRocy5z
cGxpdCgnLCcpCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicp
OgorICAgICAgICAgICAgY3lnd2luX3BhdGggPSBOb25lCisgICAgICAgICAgICAjIEZvciBXaW4z
MiBQeXRob24sIGl0IGlzIGV4cGVjdGVkIHRoYXQgQ1lHV0lOX1BBVEgKKyAgICAgICAgICAgICMg
aXMgc2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KKyAgICAgICAgICAgICMg
Rm9yIGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2ZXIucHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5f
UEFUSCB0bworICAgICAgICAgICAgIyBmdWxsIHBhdGggb2YgdGhpcmRfcGFydHkvY3lnd2luL2Jp
bi4KKyAgICAgICAgICAgIGlmICdDWUdXSU5fUEFUSCcgaW4gb3MuZW52aXJvbjoKKyAgICAgICAg
ICAgICAgICBjeWd3aW5fcGF0aCA9IG9zLmVudmlyb25bJ0NZR1dJTl9QQVRIJ10KKyAgICAgICAg
ICAgIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbihjeWd3aW5fcGF0aCkKKworICAgICAgICAgICAg
ZGVmIF9fY2hlY2tfc2NyaXB0KHNjcmlwdHBhdGgpOgorICAgICAgICAgICAgICAgIHJldHVybiB1
dGlsLmdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdHBhdGgsIGN5Z3dpbl9wYXRoKQorCisgICAgICAg
ICAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kID0gX19jaGVja19zY3JpcHQKKworICAg
IGlmIG9wdGlvbnMudXNlX3RsczoKKyAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5v
bmU6CisgICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgorICAgICAgICAgICAgICAgIG9wdGlv
bnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCisgICAgICAgICAgICAgICAg
bG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCisgICAgICAgICAgICBlbGlmIF9pbXBv
cnRfcHlvcGVuc3NsKCk6CisgICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RM
U19CWV9QWU9QRU5TU0wKKyAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9w
ZW5TU0wgbW9kdWxlJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2lu
Zy5jcml0aWNhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJl
cyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEp
CisgICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9E
VUxFOgorICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6CisgICAgICAgICAgICAgICAg
bG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKKyAgICAgICAg
ICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBf
VExTX0JZX1BZT1BFTlNTTDoKKyAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgp
OgorICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMg
bm90IGF2YWlsYWJsZScpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9w
dGlvbjogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1
bGUpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgICAgIGlmIG5vdCBvcHRpb25zLnBy
aXZhdGVfa2V5IG9yIG5vdCBvcHRpb25zLmNlcnRpZmljYXRlOgorICAgICAgICAgICAgbG9nZ2lu
Zy5jcml0aWNhbCgKKyAgICAgICAgICAgICAgICAgICAgJ1RvIHVzZSBUTFMsIHNwZWNpZnkgcHJp
dmF0ZV9rZXkgYW5kIGNlcnRpZmljYXRlLicpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisg
ICAgICAgIGlmIChvcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbCBhbmQKKyAgICAgICAg
ICAgIG5vdCBvcHRpb25zLnRsc19jbGllbnRfYXV0aCk6CisgICAgICAgICAgICBsb2dnaW5nLmNy
aXRpY2FsKCdDbGllbnQgYXV0aGVudGljYXRpb24gbXVzdCBiZSBlbmFibGVkIHRvICcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWNpZnkgdGxzX2NsaWVudF9jZXJ0X29wdGlvbmFs
JykKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgZWxzZToKKyAgICAgICAgaWYgb3B0aW9u
cy50bHNfbW9kdWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
VXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0b2dldGhlciB3aXRoICcKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJy0tdXNlLXRscyBvcHRpb24uJykKKyAgICAgICAgICAgIHN5cy5l
eGl0KDEpCisKKyAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6CisgICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVu
dGljYXRpb24uJykKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgaWYgb3B0aW9u
cy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6CisgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2Fs
KCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKKyAgICAg
ICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBpZiBub3Qgb3B0aW9ucy5zY2FuX2RpcjoKKyAgICAg
ICAgb3B0aW9ucy5zY2FuX2RpciA9IG9wdGlvbnMud2Vic29ja19oYW5kbGVycworCisgICAgaWYg
b3B0aW9ucy51c2VfYmFzaWNfYXV0aDoKKyAgICAgICAgb3B0aW9ucy5iYXNpY19hdXRoX2NyZWRl
bnRpYWwgPSAnQmFzaWMgJyArIGJhc2U2NC5iNjRlbmNvZGUoCisgICAgICAgICAgICBvcHRpb25z
LmJhc2ljX2F1dGhfY3JlZGVudGlhbCkKKworICAgIHRyeToKKyAgICAgICAgaWYgb3B0aW9ucy50
aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMgPiAwOgorICAgICAgICAgICAgIyBSdW4gYSB0
aHJlYWQgbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgZm9yCisg
ICAgICAgICAgICAjIGRlYnVnZ2luZy4KKyAgICAgICAgICAgIFRocmVhZE1vbml0b3Iob3B0aW9u
cy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMpLnN0YXJ0KCkKKworICAgICAgICBzZXJ2
ZXIgPSBXZWJTb2NrZXRTZXJ2ZXIob3B0aW9ucykKKyAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2
ZXIoKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J21vZF9weXdlYnNvY2tldDogJXMnICUgZSkKKyAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9k
X3B5d2Vic29ja2V0OiAlcycgJSB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICBzeXMu
ZXhpdCgxKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgX21haW4oc3lzLmFy
Z3ZbMTpdKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE3ZDMxMzZhYzliNDJmNWRmNTY1MmQ5MWYzYzg4NmY4NWVjYmYxZjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKQEAgLTAsMCArMSw1NiBA
QAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlv
bi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisj
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGhpcyBmaWxlIGV4cG9ydHMgcHVibGljIHN5bWJv
bHMuIiIiCisKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRP
cGVyYXRpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBv
cnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24K
K2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4aWU3
NQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KK2Zyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucworCisjIFRoZXNlIG1ldGhv
ZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9wZXJz
IHRvIGhhdmUKKyMgdGhlaXIgaW1wbGVtZW50YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEgaW4g
dGVzdHMuCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9j
bG9zZV9mcmFtZQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVh
dGVfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9sZW5ndGhfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0
IGNyZWF0ZV9waW5nX2ZyYW1lCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IGNyZWF0ZV9wb25nX2ZyYW1lCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgY3JlYXRlX3RleHRfZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKKworCisjIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OGQ5OWU2NzFkYWM0YmY4
OWI5ZTA5NzE1MTg0YjI1NTZiY2YwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC91dGlsLnB5CkBAIC0wLDAgKzEsNDI0IEBACisjIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisj
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisi
IiJXZWJTb2NrZXQgdXRpbGl0aWVzLiIiIgorCisKK2ltcG9ydCBhcnJheQoraW1wb3J0IGVycm5v
CisKKyMgSW1wb3J0IGhhc2ggY2xhc3NlcyBmcm9tIGEgbW9kdWxlIGF2YWlsYWJsZSBhbmQgcmVj
b21tZW5kZWQgZm9yIGVhY2ggUHl0aG9uCisjIHZlcnNpb24gYW5kIHJlLWV4cG9ydCB0aG9zZSBz
eW1ib2wuIFVzZSBzaGEgYW5kIG1kNSBtb2R1bGUgaW4gUHl0aG9uIDIuNCwgYW5kCisjIGhhc2hs
aWIgbW9kdWxlIGluIFB5dGhvbiAyLjYuCit0cnk6CisgICAgaW1wb3J0IGhhc2hsaWIKKyAgICBt
ZDVfaGFzaCA9IGhhc2hsaWIubWQ1CisgICAgc2hhMV9oYXNoID0gaGFzaGxpYi5zaGExCitleGNl
cHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IG1kNQorICAgIGltcG9ydCBzaGEKKyAgICBtZDVf
aGFzaCA9IG1kNS5tZDUKKyAgICBzaGExX2hhc2ggPSBzaGEuc2hhCisKK2ltcG9ydCBTdHJpbmdJ
TworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc29ja2V0Citp
bXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgemxpYgorCit0cnk6CisgICAgZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGZhc3RfbWFza2luZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MK
KworCitkZWYgZ2V0X3N0YWNrX3RyYWNlKCk6CisgICAgIiIiR2V0IHRoZSBjdXJyZW50IHN0YWNr
IHRyYWNlIGFzIHN0cmluZy4KKworICAgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgUHl0aG9u
IDIuMy4KKyAgICBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHdlIG9ubHkgc3VwcG9ydCBQeXRob24g
Mi40IGFuZCBhYm92ZS4KKyAgICAgICAgICBVc2UgdHJhY2ViYWNrLmZvcm1hdF9leGMgaW5zdGVh
ZC4KKyAgICAiIiIKKyAgICBvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgdHJhY2ViYWNr
LnByaW50X2V4YyhmaWxlPW91dCkKKyAgICByZXR1cm4gb3V0LmdldHZhbHVlKCkKKworCitkZWYg
cHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihtZXNzYWdlLCBleGMpOgorICAgICIiIlByZXBl
bmQgbWVzc2FnZSB0byB0aGUgZXhjZXB0aW9uLiIiIgorICAgIGV4Yy5hcmdzID0gKG1lc3NhZ2Ug
KyBzdHIoZXhjKSwpCisgICAgcmV0dXJuCisKKworZGVmIF9fdHJhbnNsYXRlX2ludGVycChpbnRl
cnAsIGN5Z3dpbl9wYXRoKToKKyAgICAiIiJUcmFuc2xhdGUgaW50ZXJwIHByb2dyYW0gcGF0aCBm
b3IgV2luMzIgcHl0aG9uIHRvIHJ1biBjeWd3aW4gcHJvZ3JhbQorICAgIChlLmcuIHBlcmwpLiAg
Tm90ZSB0aGF0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBwYXRoIHRoYXQgY29udGFpbnMgc3BhY2UsCisg
ICAgd2hpY2ggaXMgdHlwaWNhbGx5IHRydWUgZm9yIFVuaXgsIHdoZXJlICMhLXNjcmlwdCBpcyB3
cml0dGVuLgorICAgIEZvciBXaW4zMiBweXRob24sIGN5Z3dpbl9wYXRoIGlzIGEgZGlyZWN0b3J5
IG9mIGN5Z3dpbiBiaW5hcmllcy4KKworICAgIEFyZ3M6CisgICAgICBpbnRlcnA6IGludGVycCBj
b21tYW5kIGxpbmUKKyAgICAgIGN5Z3dpbl9wYXRoOiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4g
YmluYXJ5LCBvciBOb25lCisgICAgUmV0dXJuczoKKyAgICAgIHRyYW5zbGF0ZWQgaW50ZXJwIGNv
bW1hbmQgbGluZS4KKyAgICAiIiIKKyAgICBpZiBub3QgY3lnd2luX3BhdGg6CisgICAgICAgIHJl
dHVybiBpbnRlcnAKKyAgICBtID0gcmUubWF0Y2goJ15bXiBdKi8oW14gXSspKCAuKik/JywgaW50
ZXJwKQorICAgIGlmIG06CisgICAgICAgIGNtZCA9IG9zLnBhdGguam9pbihjeWd3aW5fcGF0aCwg
bS5ncm91cCgxKSkKKyAgICAgICAgcmV0dXJuIGNtZCArIG0uZ3JvdXAoMikKKyAgICByZXR1cm4g
aW50ZXJwCisKKworZGVmIGdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdF9wYXRoLCBjeWd3aW5fcGF0
aD1Ob25lKToKKyAgICByIiIiR2V0ICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSBmcm9tIHRo
ZSBzY3JpcHQuCisKKyAgICBJdCBhbHNvIGZpeGVzIGNvbW1hbmQgcGF0aC4gIFdoZW4gQ3lnd2lu
IFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIFdlYktpdCwKKyAgICBpdCBjb3VsZCBydW4gIi91c3Iv
YmluL3BlcmwgLXdUIGhlbGxvLnBsIi4KKyAgICBXaGVuIFdpbjMyIFB5dGhvbiBpcyB1c2VkLCBl
LmcuIGluIENocm9taXVtLCBpdCBjb3VsZG4ndC4gIFNvLCBmaXgKKyAgICAiL3Vzci9iaW4vcGVy
bCIgdG8gIjxjeWd3aW5fcGF0aD5ccGVybC5leGUiLgorCisgICAgQXJnczoKKyAgICAgIHNjcmlw
dF9wYXRoOiBwYXRobmFtZSBvZiB0aGUgc2NyaXB0CisgICAgICBjeWd3aW5fcGF0aDogZGlyZWN0
b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQorICAgIFJldHVybnM6CisgICAgICAj
IS1pbnRlcnByZXRlciBjb21tYW5kIGxpbmUsIG9yIE5vbmUgaWYgaXQgaXMgbm90ICMhLXNjcmlw
dC4KKyAgICAiIiIKKyAgICBmcCA9IG9wZW4oc2NyaXB0X3BhdGgpCisgICAgbGluZSA9IGZwLnJl
YWRsaW5lKCkKKyAgICBmcC5jbG9zZSgpCisgICAgbSA9IHJlLm1hdGNoKCdeIyEoLiopJywgbGlu
ZSkKKyAgICBpZiBtOgorICAgICAgICByZXR1cm4gX190cmFuc2xhdGVfaW50ZXJwKG0uZ3JvdXAo
MSksIGN5Z3dpbl9wYXRoKQorICAgIHJldHVybiBOb25lCisKKworZGVmIHdyYXBfcG9wZW4zX2Zv
cl93aW4oY3lnd2luX3BhdGgpOgorICAgICIiIldyYXAgcG9wZW4zIHRvIHN1cHBvcnQgIyEtc2Ny
aXB0IG9uIFdpbmRvd3MuCisKKyAgICBBcmdzOgorICAgICAgY3lnd2luX3BhdGg6ICBwYXRoIGZv
ciBjeWd3aW4gYmluYXJ5IGlmIGNvbW1hbmQgcGF0aCBpcyBuZWVkZWQgdG8gYmUKKyAgICAgICAg
ICAgICAgICAgICAgdHJhbnNsYXRlZC4gIE5vbmUgaWYgbm8gdHJhbnNsYXRpb24gcmVxdWlyZWQu
CisgICAgIiIiCisgICAgX19vcmlnX3BvcGVuMyA9IG9zLnBvcGVuMworCisgICAgZGVmIF9fd3Jh
cF9wb3BlbjMoY21kLCBtb2RlPSd0JywgYnVmc2l6ZT0tMSk6CisgICAgICAgIGNtZGxpbmUgPSBj
bWQuc3BsaXQoJyAnKQorICAgICAgICBpbnRlcnAgPSBnZXRfc2NyaXB0X2ludGVycChjbWRsaW5l
WzBdLCBjeWd3aW5fcGF0aCkKKyAgICAgICAgaWYgaW50ZXJwOgorICAgICAgICAgICAgY21kID0g
aW50ZXJwICsgJyAnICsgY21kCisgICAgICAgIHJldHVybiBfX29yaWdfcG9wZW4zKGNtZCwgbW9k
ZSwgYnVmc2l6ZSkKKworICAgIG9zLnBvcGVuMyA9IF9fd3JhcF9wb3BlbjMKKworCitkZWYgaGV4
aWZ5KHMpOgorICAgIHJldHVybiAnICcuam9pbihtYXAobGFtYmRhIHg6ICclMDJ4JyAlIG9yZCh4
KSwgcykpCisKKworZGVmIGdldF9jbGFzc19sb2dnZXIobyk6CisgICAgIiIiUmV0dXJuIHRoZSBs
b2dnaW5nIGNsYXNzIGluZm9ybWF0aW9uLiIiIgorICAgIHJldHVybiBsb2dnaW5nLmdldExvZ2dl
cigKKyAgICAgICAgJyVzLiVzJyAlIChvLl9fY2xhc3NfXy5fX21vZHVsZV9fLCBvLl9fY2xhc3Nf
Xy5fX25hbWVfXykpCisKKworY2xhc3MgTm9vcE1hc2tlcihvYmplY3QpOgorICAgICIiIkEgTm9P
cCBtYXNraW5nIG9iamVjdC4KKworICAgIFRoaXMgaGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyBS
ZXBlYXRlZFhvck1hc2tlciBidXQganVzdCByZXR1cm5zCisgICAgdGhlIHN0cmluZyBwYXNzZWQg
aW4gd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKKyAgICAgICAgIiIiTm9PcC4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIG1h
c2soc2VsZiwgcyk6CisgICAgICAgICIiIk5vT3AuIiIiCisgICAgICAgIHJldHVybiBzCisKKwor
Y2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXIob2JqZWN0KToKKworICAgICIiIkEgbWFza2luZyBvYmpl
Y3QgdGhhdCBhcHBsaWVzIFhPUiBvbiB0aGUgc3RyaW5nLgorCisgICAgQXBwbGllcyBYT1Igb24g
dGhlIHN0cmluZyBnaXZlbiB0byBtYXNrIG1ldGhvZCB3aXRoIHRoZSBtYXNraW5nIGJ5dGVzCisg
ICAgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yIHJlcGVhdGVkbHkuIFRoaXMgb2JqZWN0IHJlbWVt
YmVycyB0aGUgcG9zaXRpb24KKyAgICBpbiB0aGUgbWFza2luZyBieXRlcyB0aGUgbGFzdCBtYXNr
IG1ldGhvZCBjYWxsIGVuZGVkIGFuZCByZXN1bWVzIGZyb20KKyAgICB0aGF0IHBvaW50IG9uIHRo
ZSBuZXh0IG1hc2sgbWV0aG9kIGNhbGwuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbWFza2luZ19rZXkpOgorICAgICAgICBzZWxmLl9tYXNraW5nX2tleSA9IG1hc2tpbmdfa2V5
CisgICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gMAorCisgICAgZGVmIF9tYXNrX3Vz
aW5nX3N3aWcoc2VsZiwgcyk6CisgICAgICAgICIiIlBlcmZvcm0gdGhlIG1hc2sgdmlhIFNXSUcu
IiIiCisgICAgICAgIG1hc2tlZF9kYXRhID0gZmFzdF9tYXNraW5nLm1hc2soCisgICAgICAgICAg
ICAgICAgcywgc2VsZi5fbWFza2luZ19rZXksIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4KQorICAg
ICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9ICgKKyAgICAgICAgICAgICAgICAoc2VsZi5f
bWFza2luZ19rZXlfaW5kZXggKyBsZW4ocykpICUgbGVuKHNlbGYuX21hc2tpbmdfa2V5KSkKKyAg
ICAgICAgcmV0dXJuIG1hc2tlZF9kYXRhCisKKyAgICBkZWYgX21hc2tfdXNpbmdfYXJyYXkoc2Vs
Ziwgcyk6CisgICAgICAgICIiIlBlcmZvcm0gdGhlIG1hc2sgdmlhIHB5dGhvbi4iIiIKKyAgICAg
ICAgcmVzdWx0ID0gYXJyYXkuYXJyYXkoJ0InKQorICAgICAgICByZXN1bHQuZnJvbXN0cmluZyhz
KQorCisgICAgICAgICMgVXNlIHRlbXBvcmFyeSBsb2NhbCB2YXJpYWJsZXMgdG8gZWxpbWluYXRl
IHRoZSBjb3N0IHRvIGFjY2VzcworICAgICAgICAjIGF0dHJpYnV0ZXMKKyAgICAgICAgbWFza2lu
Z19rZXkgPSBtYXAob3JkLCBzZWxmLl9tYXNraW5nX2tleSkKKyAgICAgICAgbWFza2luZ19rZXlf
c2l6ZSA9IGxlbihtYXNraW5nX2tleSkKKyAgICAgICAgbWFza2luZ19rZXlfaW5kZXggPSBzZWxm
Ll9tYXNraW5nX2tleV9pbmRleAorCisgICAgICAgIGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0
KSk6CisgICAgICAgICAgICByZXN1bHRbaV0gXj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5k
ZXhdCisgICAgICAgICAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCAr
IDEpICUgbWFza2luZ19rZXlfc2l6ZQorCisgICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4
ID0gbWFza2luZ19rZXlfaW5kZXgKKworICAgICAgICByZXR1cm4gcmVzdWx0LnRvc3RyaW5nKCkK
KworICAgIGlmICdmYXN0X21hc2tpbmcnIGluIGdsb2JhbHMoKToKKyAgICAgICAgbWFzayA9IF9t
YXNrX3VzaW5nX3N3aWcKKyAgICBlbHNlOgorICAgICAgICBtYXNrID0gX21hc2tfdXNpbmdfYXJy
YXkKKworCisjIEJ5IG1ha2luZyB3Yml0cyBvcHRpb24gbmVnYXRpdmUsIHdlIGNhbiBzdXBwcmVz
cyBDTUYvRkxHICgyIG9jdGV0KSBhbmQKKyMgQURMRVIzMiAoNCBvY3RldCkgZmllbGRzIG9mIHps
aWIgc28gdGhhdCB3ZSBjYW4gdXNlIHpsaWIgbW9kdWxlIGp1c3QgYXMKKyMgZGVmbGF0ZSBsaWJy
YXJ5LiBESUNUSUQgd29uJ3QgYmUgYWRkZWQgYXMgZmFyIGFzIHdlIGRvbid0IHNldCBkaWN0aW9u
YXJ5LgorIyBMWjc3IHdpbmRvdyBvZiAzMksgd2lsbCBiZSB1c2VkIGZvciBib3RoIGNvbXByZXNz
aW9uIGFuZCBkZWNvbXByZXNzaW9uLgorIyBGb3IgZGVjb21wcmVzc2lvbiwgd2UgY2FuIGp1c3Qg
dXNlIDMySyB0byBjb3ZlciBhbnkgd2luZG93cyBzaXplLiBGb3IKKyMgY29tcHJlc3Npb24sIHdl
IHVzZSAzMksgc28gcmVjZWl2ZXJzIG11c3QgdXNlIDMySy4KKyMKKyMgQ29tcHJlc3Npb24gbGV2
ZWwgaXMgWl9ERUZBVUxUX0NPTVBSRVNTSU9OLiBXZSBkb24ndCBoYXZlIHRvIG1hdGNoIGxldmVs
CisjIHRvIGRlY29kZS4KKyMKKyMgU2VlIHpjb25mLmgsIGRlZmxhdGUuY2MsIGluZmxhdGUuY2Mg
b2YgemxpYiBsaWJyYXJ5LCBhbmQgemxpYm1vZHVsZS5jIG9mCisjIFB5dGhvbi4gU2VlIGFsc28g
UkZDMTk1MCAoWkxJQiAzLjMpLgorCisKK2NsYXNzIF9EZWZsYXRlcihvYmplY3QpOgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzKToKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0g
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX2NvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtd2luZG93X2JpdHMpCisKKyAgICBkZWYgY29tcHJlc3Moc2VsZiwgYnl0ZXMp
OgorICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0
ZXMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRl
cykKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21w
cmVzc2VkX2J5dGVzKQorICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcworCisgICAgZGVm
IGNvbXByZXNzX2FuZF9mbHVzaChzZWxmLCBieXRlcyk6CisgICAgICAgIGNvbXByZXNzZWRfYnl0
ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhieXRlcykKKyAgICAgICAgY29tcHJlc3NlZF9i
eXRlcyArPSBzZWxmLl9jb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQorICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMp
CisgICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVzCisKKyAgICBkZWYgY29tcHJlc3NfYW5k
X2ZpbmlzaChzZWxmLCBieXRlcyk6CisgICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9j
b21wcmVzcy5jb21wcmVzcyhieXRlcykKKyAgICAgICAgY29tcHJlc3NlZF9ieXRlcyArPSBzZWxm
Ll9jb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKKyAgICAgICAgcmV0dXJu
IGNvbXByZXNzZWRfYnl0ZXMKKworCitjbGFzcyBfSW5mbGF0ZXIob2JqZWN0KToKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IGdl
dF9jbGFzc19sb2dnZXIoc2VsZikKKyAgICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5kb3df
Yml0cworCisgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSAnJworCisgICAgICAgIHNlbGYucmVz
ZXQoKQorCisgICAgZGVmIGRlY29tcHJlc3Moc2VsZiwgc2l6ZSk6CisgICAgICAgIGlmIG5vdCAo
c2l6ZSA9PSAtMSBvciBzaXplID4gMCk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3Np
emUgbXVzdCBiZSAtMSBvciBwb3NpdGl2ZScpCisKKyAgICAgICAgZGF0YSA9ICcnCisKKyAgICAg
ICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIHNpemUgPT0gLTE6CisgICAgICAgICAgICAg
ICAgZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRlY29tcHJlc3Moc2VsZi5fdW5jb25zdW1lZCkK
KyAgICAgICAgICAgICAgICAjIFNlZSBQeXRob24gYnVnIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcv
aXNzdWUxMjA1MCB0bworICAgICAgICAgICAgICAgICMgdW5kZXJzdGFuZCB3aHkgdGhlIHNhbWUg
Y29kZSBjYW5ub3QgYmUgdXNlZCBmb3IgdXBkYXRpbmcKKyAgICAgICAgICAgICAgICAjIHNlbGYu
X3VuY29uc3VtZWQgZm9yIGhlcmUgYW5kIGVsc2UgYmxvY2suCisgICAgICAgICAgICAgICAgc2Vs
Zi5fdW5jb25zdW1lZCA9ICcnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRh
dGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNvbXByZXNzKAorICAgICAgICAgICAgICAgICAgICBz
ZWxmLl91bmNvbnN1bWVkLCBzaXplIC0gbGVuKGRhdGEpKQorICAgICAgICAgICAgICAgIHNlbGYu
X3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNzLnVuY29uc3VtZWRfdGFpbAorICAgICAgICAg
ICAgaWYgc2VsZi5fZGVjb21wcmVzcy51bnVzZWRfZGF0YToKKyAgICAgICAgICAgICAgICAjIEVu
Y291bnRlcmVkIGEgbGFzdCBibG9jayAoaS5lLiBhIGJsb2NrIHdpdGggQkZJTkFMID0gMSkgYW5k
CisgICAgICAgICAgICAgICAgIyBmb3VuZCBhIG5ldyBzdHJlYW0gKHVudXNlZF9kYXRhKS4gV2Ug
Y2Fubm90IHVzZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICMgemxpYi5EZWNvbXByZXNzIG9i
amVjdCBmb3IgdGhlIG5ldyBzdHJlYW0uIENyZWF0ZSBhIG5ldworICAgICAgICAgICAgICAgICMg
RGVjb21wcmVzcyBvYmplY3QgdG8gZGVjb21wcmVzcyB0aGUgbmV3IG9uZS4KKyAgICAgICAgICAg
ICAgICAjCisgICAgICAgICAgICAgICAgIyBJdCdzIGZpbmUgdG8gaWdub3JlIHVuY29uc3VtZWRf
dGFpbCBpZiB1bnVzZWRfZGF0YSBpcyBub3QKKyAgICAgICAgICAgICAgICAjIGVtcHR5LgorICAg
ICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNzLnVudXNlZF9k
YXRhCisgICAgICAgICAgICAgICAgc2VsZi5yZXNldCgpCisgICAgICAgICAgICAgICAgaWYgc2l6
ZSA+PSAwIGFuZCBsZW4oZGF0YSkgPT0gc2l6ZToKKyAgICAgICAgICAgICAgICAgICAgIyBkYXRh
IGlzIGZpbGxlZC4gRG9uJ3QgY2FsbCBkZWNvbXByZXNzIGFnYWluLgorICAgICAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMg
UmUtaW52b2tlIERlY29tcHJlc3MuZGVjb21wcmVzcyB0byB0cnkgdG8gZGVjb21wcmVzcyBhbGwK
KyAgICAgICAgICAgICAgICAgICAgIyBhdmFpbGFibGUgYnl0ZXMgYmVmb3JlIGludm9raW5nIHJl
YWQgd2hpY2ggYmxvY2tzIHVudGlsCisgICAgICAgICAgICAgICAgICAgICMgYW55IG5ldyBieXRl
IGlzIGF2YWlsYWJsZS4KKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgIyBIZXJlLCBzaW5jZSB1bnVzZWRfZGF0YSBpcyBlbXB0
eSwgZXZlbiBpZiB1bmNvbnN1bWVkX3RhaWwgaXMKKyAgICAgICAgICAgICAgICAjIG5vdCBlbXB0
eSwgYnl0ZXMgb2YgcmVxdWVzdGVkIGxlbmd0aCBhcmUgYWxyZWFkeSBpbiBkYXRhLiBXZQorICAg
ICAgICAgICAgICAgICMgZG9uJ3QgaGF2ZSB0byAiY29udGludWUiIGhlcmUuCisgICAgICAgICAg
ICAgICAgYnJlYWsKKworICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdEZWNvbXByZXNzZWQgJXInLCBkYXRhKQorICAgICAgICByZXR1cm4gZGF0YQorCisg
ICAgZGVmIGFwcGVuZChzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdB
cHBlbmRlZCAlcicsIGRhdGEpCisgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgKz0gZGF0YQorCisg
ICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jlc2V0JykK
KyAgICAgICAgc2VsZi5fZGVjb21wcmVzcyA9IHpsaWIuZGVjb21wcmVzc29iaigtc2VsZi5fd2lu
ZG93X2JpdHMpCisKKworIyBDb21wcmVzc2VzL2RlY29tcHJlc3NlcyBnaXZlbiBvY3RldHMgdXNp
bmcgdGhlIG1ldGhvZCBpbnRyb2R1Y2VkIGluIFJGQzE5NzkuCisKKworY2xhc3MgX1JGQzE5NzlE
ZWZsYXRlcihvYmplY3QpOgorICAgICIiIkEgY29tcHJlc3NvciBjbGFzcyB0aGF0IGFwcGxpZXMg
REVGTEFURSB0byBnaXZlbiBieXRlIHNlcXVlbmNlIGFuZAorICAgIGZsdXNoZXMgdXNpbmcgdGhl
IGFsZ29yaXRobSBkZXNjcmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCisgICAgIiIi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92
ZXIpOgorICAgICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKKyAgICAgICAgaWYgd2luZG93X2Jp
dHMgaXMgTm9uZToKKyAgICAgICAgICAgIHdpbmRvd19iaXRzID0gemxpYi5NQVhfV0JJVFMKKyAg
ICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5kb3dfYml0cworICAgICAgICBzZWxmLl9ub19j
b250ZXh0X3Rha2VvdmVyID0gbm9fY29udGV4dF90YWtlb3ZlcgorCisgICAgZGVmIGZpbHRlcihz
ZWxmLCBieXRlcywgZW5kPVRydWUsIGJmaW5hbD1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYuX2Rl
ZmxhdGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRlcihz
ZWxmLl93aW5kb3dfYml0cykKKworICAgICAgICBpZiBiZmluYWw6CisgICAgICAgICAgICByZXN1
bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmluaXNoKGJ5dGVzKQorICAgICAgICAg
ICAgIyBBZGQgYSBwYWRkaW5nIGJsb2NrIHdpdGggQkZJTkFMID0gMCBhbmQgQlRZUEUgPSAwLgor
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgY2hyKDApCisgICAgICAgICAgICBzZWxmLl9k
ZWZsYXRlciA9IE5vbmUKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICByZXN1
bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmx1c2goYnl0ZXMpCisgICAgICAgIGlm
IGVuZDoKKyAgICAgICAgICAgICMgU3RyaXAgbGFzdCA0IG9jdGV0cyB3aGljaCBpcyBMRU4gYW5k
IE5MRU4gZmllbGQgb2YgYQorICAgICAgICAgICAgIyBub24tY29tcHJlc3NlZCBibG9jayBhZGRl
ZCBmb3IgWl9TWU5DX0ZMVVNILgorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0WzotNF0KKwor
ICAgICAgICBpZiBzZWxmLl9ub19jb250ZXh0X3Rha2VvdmVyIGFuZCBlbmQ6CisgICAgICAgICAg
ICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKKworICAgICAgICByZXR1cm4gcmVzdWx0CisKKworY2xh
c3MgX1JGQzE5NzlJbmZsYXRlcihvYmplY3QpOgorICAgICIiIkEgZGVjb21wcmVzc29yIGNsYXNz
IGEgbGEgUkZDMTk3OS4KKworICAgIEEgZGVjb21wcmVzc29yIGNsYXNzIGZvciBieXRlIHNlcXVl
bmNlIGNvbXByZXNzZWQgYW5kIGZsdXNoZWQgZm9sbG93aW5nCisgICAgdGhlIGFsZ29yaXRobSBk
ZXNjcmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgd2luZG93X2JpdHM9emxpYi5NQVhfV0JJVFMpOgorICAgICAgICBzZWxm
Ll9pbmZsYXRlciA9IF9JbmZsYXRlcih3aW5kb3dfYml0cykKKworICAgIGRlZiBmaWx0ZXIoc2Vs
ZiwgYnl0ZXMpOgorICAgICAgICAjIFJlc3RvcmUgc3RyaXBwZWQgTEVOIGFuZCBOTEVOIGZpZWxk
IG9mIGEgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQKKyAgICAgICAgIyBmb3IgWl9TWU5DX0ZM
VVNILgorICAgICAgICBzZWxmLl9pbmZsYXRlci5hcHBlbmQoYnl0ZXMgKyAnXHgwMFx4MDBceGZm
XHhmZicpCisgICAgICAgIHJldHVybiBzZWxmLl9pbmZsYXRlci5kZWNvbXByZXNzKC0xKQorCisK
K2NsYXNzIERlZmxhdGVTb2NrZXQob2JqZWN0KToKKyAgICAiIiJBIHdyYXBwZXIgY2xhc3MgZm9y
IHNvY2tldCBvYmplY3QgdG8gaW50ZXJjZXB0IHNlbmQgYW5kIHJlY3YgdG8gcGVyZm9ybQorICAg
IGRlZmxhdGUgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gdHJhbnNwYXJlbnRseS4KKyAg
ICAiIiIKKworICAgICMgU2l6ZSBvZiB0aGUgYnVmZmVyIHBhc3NlZCB0byByZWN2IHRvIHJlY2Vp
dmUgY29tcHJlc3NlZCBkYXRhLgorICAgIF9SRUNWX1NJWkUgPSA0MDk2CisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgc29ja2V0KToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0CisKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNl
bGYuX2RlZmxhdGVyID0gX0RlZmxhdGVyKHpsaWIuTUFYX1dCSVRTKQorICAgICAgICBzZWxmLl9p
bmZsYXRlciA9IF9JbmZsYXRlcih6bGliLk1BWF9XQklUUykKKworICAgIGRlZiByZWN2KHNlbGYs
IHNpemUpOgorICAgICAgICAiIiJSZWNlaXZlcyBkYXRhIGZyb20gdGhlIHNvY2tldCBzcGVjaWZp
ZWQgb24gdGhlIGNvbnN0cnVjdGlvbiB1cAorICAgICAgICB0byB0aGUgc3BlY2lmaWVkIHNpemUu
IE9uY2UgYW55IGRhdGEgaXMgYXZhaWxhYmxlLCByZXR1cm5zIGl0IGV2ZW4KKyAgICAgICAgaWYg
aXQncyBzbWFsbGVyIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplLgorICAgICAgICAiIiIKKworICAg
ICAgICAjIFRPRE8odHlvc2hpbm8pOiBBbGxvdyBjYWxsIHdpdGggc2l6ZT0wLiBJdCBzaG91bGQg
YmxvY2sgdW50aWwgYW55CisgICAgICAgICMgZGVjb21wcmVzc2VkIGRhdGEgaXMgYXZhaWxhYmxl
LgorICAgICAgICBpZiBzaXplIDw9IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05v
bi1wb3NpdGl2ZSBzaXplIHBhc3NlZCcpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICBkYXRhID0gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVzcyhzaXplKQorICAgICAgICAgICAgaWYg
bGVuKGRhdGEpICE9IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEKKworICAgICAgICAg
ICAgcmVhZF9kYXRhID0gc2VsZi5fc29ja2V0LnJlY3YoRGVmbGF0ZVNvY2tldC5fUkVDVl9TSVpF
KQorICAgICAgICAgICAgaWYgbm90IHJlYWRfZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4g
JycKKyAgICAgICAgICAgIHNlbGYuX2luZmxhdGVyLmFwcGVuZChyZWFkX2RhdGEpCisKKyAgICBk
ZWYgc2VuZGFsbChzZWxmLCBieXRlcyk6CisgICAgICAgIHNlbGYuc2VuZChieXRlcykKKworICAg
IGRlZiBzZW5kKHNlbGYsIGJ5dGVzKToKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoc2Vs
Zi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVzKSkKKyAgICAgICAgcmV0dXJuIGxl
bihieXRlcykKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTEzMGI0NzdkZjExNTFlMGU2NDY3Y2FjMDI3YjI2MTVlZTU4Yzgw
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMzMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5pdF9f
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVh
bV9oeWJpLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9o
ZWFkZXJfdXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211
eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9zdHJlYW0ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYyZjE1NDBiOGM5
NjhkMDFjNDQ5NmNjNDFkOTUwODZiM2M5NjM5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQpAQCAtMCwwICsxLDEyMSBAQAor
IyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorIyBsaWNl
bnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKKyMgaHR0cHM6
Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCisKKworZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKKworCitjbGFzcyBYSFJCZW5jaG1hcmtIYW5k
bGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMsIHJmaWxlLCB3Zmls
ZSk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQor
CisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKKyAgICAgICAgc2VsZi5yZmlsZSA9IHJm
aWxlCisgICAgICAgIHNlbGYud2ZpbGUgPSB3ZmlsZQorCisgICAgZGVmIGRvX3NlbmQoc2VsZik6
CisgICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0Nv
bnRlbnQtTGVuZ3RoJykpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0ZWQg
dG8gcmVjZWl2ZSAlcyBieXRlcycsIGNvbnRlbnRfbGVuZ3RoKQorCisgICAgICAgIFJFQ0VJVkVf
QkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0CisKKyAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSA9IGNv
bnRlbnRfbGVuZ3RoCisgICAgICAgIHdoaWxlIGJ5dGVzX3RvX3JlY2VpdmUgPiAwOgorICAgICAg
ICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPSBieXRlc190b19yZWNlaXZlCisg
ICAgICAgICAgICBpZiBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA+IFJFQ0VJVkVfQkxP
Q0tfU0laRToKKyAgICAgICAgICAgICAgICBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA9
IFJFQ0VJVkVfQkxPQ0tfU0laRQorICAgICAgICAgICAgcmVjZWl2ZWRfZGF0YSA9IHNlbGYucmZp
bGUucmVhZChieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCkKKyAgICAgICAgICAgIGlmIHJl
Y2VpdmVkX2RhdGEgIT0gKCdhJyAqIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wKToKKyAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3QgYm9keSB2ZXJpZmljYXRp
b24gZmFpbGVkJykKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGJ5dGVzX3Rv
X3JlY2VpdmUgLT0gbGVuKHJlY2VpdmVkX2RhdGEpCisgICAgICAgIGlmIGJ5dGVzX3RvX3JlY2Vp
dmUgPCAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlZCBtb3Jl
IGJ5dGVzIHRoYW4gZXhwZWN0ZWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
LWJ5dGVzX3RvX3JlY2VpdmUpKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBSZXR1
cm4gdGhlIG51bWJlciBvZiByZWNlaXZlZCBieXRlcyBiYWNrIHRvIHRoZSBjbGllbnQuCisgICAg
ICAgIHJlc3BvbnNlX2JvZHkgPSAnJWQnICUgY29udGVudF9sZW5ndGgKKyAgICAgICAgc2VsZi53
ZmlsZS53cml0ZSgKKyAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJworICAgICAgICAg
ICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKlxyXG4nCisgICAgICAgICAgICAnQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuJworICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoOiAl
ZFxyXG4nCisgICAgICAgICAgICAnXHJcbiVzJyAlIChsZW4ocmVzcG9uc2VfYm9keSksIHJlc3Bv
bnNlX2JvZHkpKQorICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKKworICAgIGRlZiBkb19yZWNl
aXZlX2FuZF9wYXJzZShzZWxmKToKKyAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5o
ZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKKyAgICAgICAgcmVxdWVzdF9ib2R5
ID0gc2VsZi5yZmlsZS5yZWFkKGNvbnRlbnRfbGVuZ3RoKQorCisgICAgICAgIHJlcXVlc3RfYXJy
YXkgPSByZXF1ZXN0X2JvZHkuc3BsaXQoJyAnKQorICAgICAgICBpZiBsZW4ocmVxdWVzdF9hcnJh
eSkgPCAyOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgcmVxdWVz
dCBib2R5OiAlcicsIHJlcXVlc3RfYm9keSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
ICMgUGFyc2UgdGhlIHNpemUgcGFyYW1ldGVyLgorICAgICAgICBieXRlc190b19zZW5kID0gcmVx
dWVzdF9hcnJheVswXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBieXRlc190b19zZW5kID0g
aW50KGJ5dGVzX3RvX3NlbmQpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgc2l6ZSBwYXJhbWV0ZXI6ICVyJywg
Ynl0ZXNfdG9fc2VuZCkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgUGFyc2UgdGhl
IHRyYW5zZmVyIGVuY29kaW5nIHBhcmFtZXRlci4KKyAgICAgICAgY2h1bmtlZF9tb2RlID0gRmFs
c2UKKyAgICAgICAgbW9kZV9wYXJhbWV0ZXIgPSByZXF1ZXN0X2FycmF5WzFdCisgICAgICAgIGlm
IG1vZGVfcGFyYW1ldGVyID09ICdjaHVua2VkJzoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnUmVxdWVzdGVkIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcnKQorICAgICAgICAgICAg
Y2h1bmtlZF9tb2RlID0gVHJ1ZQorICAgICAgICBlbGlmIG1vZGVfcGFyYW1ldGVyICE9ICdub25l
JzoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnSW52YWxpZCBtb2RlIHBhcmFtZXRl
cjogJXInLCBtb2RlX3BhcmFtZXRlcikKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNl
bGYuZG9fcmVjZWl2ZShieXRlc190b19zZW5kLCBjaHVua2VkX21vZGUsIEZhbHNlKQorCisgICAg
ZGVmIGRvX3JlY2VpdmUoc2VsZiwgYnl0ZXNfdG9fc2VuZCwgY2h1bmtlZF9tb2RlLCBlbmFibGVf
Y2FjaGUpOgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnUmVxdWVz
dGVkIHRvIHNlbmQgJXMgYnl0ZXMgKGNodW5rZWQ6ICVzLCBjYWNoZTogJXMpJywKKyAgICAgICAg
ICAgIGJ5dGVzX3RvX3NlbmQsIGNodW5rZWRfbW9kZSwgZW5hYmxlX2NhY2hlKQorICAgICAgICAj
IFdyaXRlIGEgaGVhZGVyCisgICAgICAgIHJlc3BvbnNlX2hlYWRlciA9ICgKKyAgICAgICAgICAg
ICdIVFRQLzEuMSAyMDAgT0tcclxuJworICAgICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbjogKlxyXG4nCisgICAgICAgICAgICAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW1cclxuJykKKyAgICAgICAgaWYgZW5hYmxlX2NhY2hlOgorICAgICAgICAgICAg
cmVzcG9uc2VfaGVhZGVyICs9ICdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBtYXgtYWdlPTEwXHJc
bicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSBcCisgICAg
ICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZh
bGlkYXRlXHJcbicKKyAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgorICAgICAgICAgICAgcmVzcG9u
c2VfaGVhZGVyICs9ICdUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxyXG5cclxuJworICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICgKKyAgICAgICAgICAgICAg
ICAnQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4nICUgYnl0ZXNfdG9fc2VuZCkKKyAgICAgICAg
c2VsZi53ZmlsZS53cml0ZShyZXNwb25zZV9oZWFkZXIpCisgICAgICAgIHNlbGYud2ZpbGUuZmx1
c2goKQorCisgICAgICAgICMgV3JpdGUgYSBib2R5CisgICAgICAgIFNFTkRfQkxPQ0tfU0laRSA9
IDEwMjQgKiAxMDI0CisKKyAgICAgICAgd2hpbGUgYnl0ZXNfdG9fc2VuZCA+IDA6CisgICAgICAg
ICAgICBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3NlbmQKKyAgICAgICAg
ICAgIGlmIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID4gU0VORF9CTE9DS19TSVpFOgorICAg
ICAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gU0VORF9CTE9DS19TSVpF
CisKKyAgICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKKyAgICAgICAgICAgICAgICBzZWxmLndm
aWxlLndyaXRlKCcleFxyXG4nICUgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3ApCisgICAgICAg
ICAgICBzZWxmLndmaWxlLndyaXRlKCdhJyAqIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wKQor
ICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgorICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUu
d3JpdGUoJ1xyXG4nKQorICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCisKKyAgICAgICAg
ICAgIGJ5dGVzX3RvX3NlbmQgLT0gYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AKKworICAgICAg
ICBpZiBjaHVua2VkX21vZGU6CisgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCcwXHJcblxy
XG4nKQorICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Nl
dHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzVkNmIxMDU4OTljYTEzNDhkN2Q2
ZDY4YmJlMmJkNDllODVkMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpAQCAt
MCwwICsxLDc0IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTIs
IEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisj
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisKKyIiIlNldCB1cCBzY3JpcHQgZm9yIG1vZF9weXdlYnNvY2tldC4KKyIiIgorCisKK2Zyb20g
ZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBFeHRlbnNpb24KK2ltcG9ydCBzeXMKKworCitf
UEFDS0FHRV9OQU1FID0gJ21vZF9weXdlYnNvY2tldCcKKworIyBCdWlsZCBhbmQgdXNlIGEgQysr
IGV4dGVuc2lvbiBmb3IgZmFzdGVyIG1hc2tpbmcuIFNXSUcgaXMgcmVxdWlyZWQuCitfVVNFX0ZB
U1RfTUFTS0lORyA9IEZhbHNlCisKK2lmIHN5cy52ZXJzaW9uIDwgJzIuMyc6CisgICAgcHJpbnQg
Pj4gc3lzLnN0ZGVyciwgJyVzIHJlcXVpcmVzIFB5dGhvbiAyLjMgb3IgbGF0ZXIuJyAlIF9QQUNL
QUdFX05BTUUKKyAgICBzeXMuZXhpdCgxKQorCitpZiBfVVNFX0ZBU1RfTUFTS0lORzoKKyAgICBz
ZXR1cChleHRfbW9kdWxlcz1bCisgICAgICAgICAgICAgICAgICBFeHRlbnNpb24oCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQvX2Zhc3RfbWFza2luZycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsnbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pJ10s
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aWdfb3B0cz1bJy1jKysnXSldKQorCitzZXR1
cChhdXRob3I9J1l1em8gRnVqaXNoaW1hJywKKyAgICAgIGF1dGhvcl9lbWFpbD0neXV6b0BjaHJv
bWl1bS5vcmcnLAorICAgICAgZGVzY3JpcHRpb249J1dlYlNvY2tldCBleHRlbnNpb24gZm9yIEFw
YWNoZSBIVFRQIFNlcnZlci4nLAorICAgICAgbG9uZ19kZXNjcmlwdGlvbj0oCisgICAgICAgICAg
ICAgICdtb2RfcHl3ZWJzb2NrZXQgaXMgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGV4dGVuc2lvbiBm
b3IgJworICAgICAgICAgICAgICAndGhlIFdlYlNvY2tldCBQcm90b2NvbCAoUkZDIDY0NTUpLiAn
CisgICAgICAgICAgICAgICdTZWUgbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5IGZvciBtb3Jl
IGRldGFpbC4nKSwKKyAgICAgIGxpY2Vuc2U9J1NlZSBMSUNFTlNFJywKKyAgICAgIG5hbWU9X1BB
Q0tBR0VfTkFNRSwKKyAgICAgIHBhY2thZ2VzPVtfUEFDS0FHRV9OQU1FLCBfUEFDS0FHRV9OQU1F
ICsgJy5oYW5kc2hha2UnXSwKKyAgICAgIHVybD0naHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5
d2Vic29ja2V0LycsCisgICAgICAjIFNlZSB0aGUgc291cmNlIG9mIGRpc3R1dGlscy52ZXJzaW9u
LCBkaXN0dXRpbHMudmVyc2lvbnByZWRpY2F0ZSBhbmQKKyAgICAgICMgZGlzdHV0aWxzLmRpc3Qg
dG8gdW5kZXJzdGFuZCBob3cgdG8gbmFtZSB2ZXJzaW9uIG51bWJlcnMuCisgICAgICB2ZXJzaW9u
PScwLjcuOScsCisgICAgICApCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9j
YWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGFkYWUx
MjFiZGQzYWRiNzQ0MzgzY2QzYmYwOGMyMjZmODU1NGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQpAQCAtMCwwICsxLDE3IEBACistLS0tLUJFR0lOIENFUlRJ
RklDQVRFLS0tLS0KK01JSUN2RENDQWlXZ0F3SUJBZ0lKQUtxVmdoa0dGMXJTTUEwR0NTcUdTSWIz
RFFFQkJRVUFNRWt4Q3pBSkJnTlYKK0JBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVVTUJJ
R0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReEZEQVMKK0JnTlZCQU1UQzNCNWQyVmljMjlqYTJWME1C
NFhEVEV5TURZd05qQTNNalF6TTFvWERUTTVNVEF5TXpBM01qUXoKK00xb3dTVEVMTUFrR0ExVUVC
aE1DU2xBeERqQU1CZ05WQkFnVEJWUnZhM2x2TVJRd0VnWURWUVFLRXd0d2VYZGwKK1luTnZZMnRs
ZERFVU1CSUdBMVVFQXhNTGNIbDNaV0p6YjJOclpYUXdnWjh3RFFZSktvWklodmNOQVFFQkJRQUQK
K2dZMEFNSUdKQW9HQkFLb1NFVzJiaVF4VnJNTUtkbi84UEp6RFlpU1hEUFI5V1FiTFJSUTFHbTVq
a0NZaWFoWFcKK3UyQ2JUVGhmUFBmaTJOSEEzSStIbFQ3Z085eVI3UlZVdk42SVNVekd3WERFcTRm
NFVOcXRRT2hRYXFxSytDWjkKK0xPL0JoTy9ZWWZOcmJTUGxZekhVS2FUOWVzZTd4TzlWelZLTFcr
cVVmMk1qaDQvK1N6eEJETlA3QWdNQkFBR2oKK2dhc3dnYWd3SFFZRFZSME9CQllFRk9zV2R4Q1N1
eWh3YVplYWI2Qm9UaG8zKytiek1Ia0dBMVVkSXdSeU1IQ0EKK0ZPc1dkeENTdXlod2FaZWFiNkJv
VGhvMysrYnpvVTJrU3pCSk1Rc3dDUVlEVlFRR0V3SktVREVPTUF3R0ExVUUKK0NCTUZWRzlyZVc4
eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3ZVhkbFluTnYKK1ky
dGxkSUlKQUtxVmdoa0dGMXJTTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFB
RGdZRUEKK2dzTUkxV0VZcU53L2poVUlkclRCY0N4SjBYNmhKdkE5emlLQU5WbTFScys0UDNZREFy
a1E4YkNyNnhZK0t3N3MKK1pwMHlFN2RNOEdNZGkrRFU2aEwzdDNFNWVNa1RTMXlacjlXQ0s0ZjJS
TG8rZXQ5OHNlbFp5ZHBIZW1GM0RKSjMKK2dBajhTeDRMQmFHOENiL1duRU1QdjNNeEczZkJFNWZh
dkY2VjRqVTA3aFE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvY2VydC9jZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI1Mzc5YTcyYjBkYWM1ZjQxOTc5YzgwMmM2NjNkZjhiODhkZWE4MjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvY2VydC9jZXJ0LnBlbQpAQCAtMCwwICsxLDYxIEBACitDZXJ0aWZpY2F0
ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAzICgweDIpCisgICAgICAgIFNlcmlhbCBO
dW1iZXI6IDEgKDB4MSkKKyAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FF
bmNyeXB0aW9uCisgICAgICAgIElzc3VlcjogQz1KUCwgU1Q9VG9reW8sIE89cHl3ZWJzb2NrZXQs
IENOPXB5d2Vic29ja2V0CisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3Jl
OiBKdW4gIDYgMDc6MjU6MDggMjAxMiBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IE9jdCAy
MyAwNzoyNTowOCAyMDM5IEdNVAorICAgICAgICBTdWJqZWN0OiBDPUpQLCBTVD1Ub2t5bywgTz1w
eXdlYnNvY2tldCwgQ049cHl3ZWJzb2NrZXQKKyAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IElu
Zm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgorICAg
ICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgxMDI0IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1
bHVzICgxMDI0IGJpdCk6CisgICAgICAgICAgICAgICAgICAgIDAwOmRlOjEwOmNlOjNhOjVhOjA0
OmE0OjFjOjI5OjkzOjVjOjIzOjgyOjFhOgorICAgICAgICAgICAgICAgICAgICBmMjowNjowMTpl
NjoyYjphNDowZjpkZDo3Nzo0OTo3Njo4OTowMzphMjoyMToKKyAgICAgICAgICAgICAgICAgICAg
ZGU6MDQ6NzU6YzY6ZTI6ZGQ6ZmI6MzU6Mjc6M2E6YTI6OTI6OGU6MTI6NjI6CisgICAgICAgICAg
ICAgICAgICAgIDJiOjNlOjFmOmY0Ojc4OmRmOmI2Ojk0OmNiOjI3OmQ2OmNiOmQ2OjM3OmQ3Ogor
ICAgICAgICAgICAgICAgICAgICA1YzowODpmMDowOTozZTpjOTpjZToyNDoyZDowMDpjOTpkZjo0
YTplMDo5OToKKyAgICAgICAgICAgICAgICAgICAgZTU6ZmI6MjM6YTk6ZTI6ZDY6Yzk6M2Q6OTY6
ZmE6MDE6ODg6ZGU6NWE6ODk6CisgICAgICAgICAgICAgICAgICAgIGIwOmNmOjAzOjY3OjZmOjA0
Ojg2OjFkOmVmOjYyOjFjOjU1OmE5OjA3OjlhOgorICAgICAgICAgICAgICAgICAgICAyZTo2Njoy
YTo3Mzo1Yjo0Yzo2MjowMzpmOTo4Mjo4MzpkYjo2ODpiZjpiODoKKyAgICAgICAgICAgICAgICAg
ICAgNGI6MGI6OGI6OTM6MTE6Yjg6NTQ6NzM6N2IKKyAgICAgICAgICAgICAgICBFeHBvbmVudDog
NjU1MzcgKDB4MTAwMDEpCisgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgorICAgICAgICAgICAg
WDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKKyAgICAgICAgICAgICAgICBDQTpGQUxTRQorICAg
ICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKKyAgICAgICAgICAgICAgICBTU0wgU2VydmVy
CisgICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKKyAgICAgICAgICAgICAgICBPcGVuU1NM
IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZQorICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElk
ZW50aWZpZXI6IAorICAgICAgICAgICAgICAgIDgyOkExOjczOjhCOjE2OjBDOjdDOkU0OkQzOjQ2
Ojk1OjEzOjk1OjFBOjMyOkMxOjg0OkU5OjA2OjAwCisgICAgICAgICAgICBYNTA5djMgQXV0aG9y
aXR5IEtleSBJZGVudGlmaWVyOiAKKyAgICAgICAgICAgICAgICBrZXlpZDpFQjoxNjo3NzoxMDo5
MjpCQjoyODo3MDo2OTo5Nzo5QTo2RjpBMDo2ODo0RToxQTozNzpGQjpFNjpGMworCisgICAgU2ln
bmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIDZiOmIzOjQ2
OjI5OjAyOmRmOmIwOmM4OjhlOmM0OmQ3OjdmOmEwOjFlOjBkOjFhOmViOjJmOgorICAgICAgICBk
ZjpkMTo0ODo1NzozNjo1Zjo5NTo4YzoxYjpmMDo1MTpkNjo1MjplNzo4ZDo4NDozYjo5ZjoKKyAg
ICAgICAgZDg6ZWQ6MjI6OWM6YWE6YmQ6ZWU6OWI6OTA6MWQ6ODQ6YTM6NGM6MGI6Y2I6ZWI6NjQ6
NzM6CisgICAgICAgIGJhOmY3OjE1OmNlOmRhOjVmOmRiOjhiOjE1OjA3OmE2OjI4OjdmOmI5Ojhj
OjExOjliOjY0OgorICAgICAgICBkMzpmMTpiZTo1Mjo0ZjpjMzpkODo1ODpmZTpkZTo1Njo2Mzo2
MzozYjo1MTplZDphNzo4MToKKyAgICAgICAgZjk6MDU6NTE6NzA6NjM6MzI6MDk6MGU6OTQ6N2U6
MDU6ZmU6YTE6NTY6MTg6MzQ6OTg6ZDU6CisgICAgICAgIDk5OjFlOjRlOjI3OjM4Ojg5OjkwOjZh
OmU1OmNlOjYwOjM1OjAxOmY1OmRlOjM0OjYwOmIxOgorICAgICAgICBjYjphZQorLS0tLS1CRUdJ
TiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDbURDQ0FnR2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJB
UVVGQURCSk1Rc3dDUVlEVlFRR0V3SktVREVPCitNQXdHQTFVRUNCTUZWRzlyZVc4eEZEQVNCZ05W
QkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3CitlWGRsWW5OdlkydGxkREFlRncw
eE1qQTJNRFl3TnpJMU1EaGFGdzB6T1RFd01qTXdOekkxTURoYU1Fa3hDekFKCitCZ05WQkFZVEFr
cFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwzWldKemIyTnJaWFF4CitG
REFTQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFE
Q0JpUUtCCitnUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJpUU9pSWQ0RWRjYmkz
ZnMxSnpxaWtvNFNZaXMrCitIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRrTFFESjMwcmdtZVg3
STZuaTFzazlsdm9CaU41YWliRFBBMmR2CitCSVlkNzJJY1Zha0htaTVtS25OYlRHSUQrWUtEMjJp
L3VFc0xpNU1SdUZSemV3SURBUUFCbzRHUE1JR01NQWtHCitBMVVkRXdRQ01BQXdFUVlKWUlaSUFZ
YjRRZ0VCQkFRREFnWkFNQ3dHQ1dDR1NBR0crRUlCRFFRZkZoMVBjR1Z1CitVMU5NSUVkbGJtVnlZ
WFJsWkNCRFpYSjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVncUZ6aXhZTWZPVFRScFVUCitsUm95
d1lUcEJnQXdId1lEVlIwakJCZ3dGb0FVNnhaM0VKSzdLSEJwbDVwdm9HaE9HamY3NXZNd0RRWUpL
b1pJCitodmNOQVFFRkJRQURnWUVBYTdOR0tRTGZzTWlPeE5kL29CNE5HdXN2MzlGSVZ6WmZsWXdi
OEZIV1V1ZU5oRHVmCisyTzBpbktxOTdwdVFIWVNqVEF2TDYyUnp1dmNWenRwZjI0c1ZCNllvZjdt
TUVadGswL0crVWsvRDJGaiszbFpqCitZenRSN2FlQitRVlJjR015Q1E2VWZnWCtvVllZTkpqVm1S
NU9KemlKa0dybHptQTFBZlhlTkdDeHk2ND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMiBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0
L2NsaWVudF9jZXJ0LnAxMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGUxMzk5Mjc5ODJmYTk4MjNhNTcyMzFhZjEx
MzQ5OWQ2YTVhOGIwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNTgyCnpjbVkrRlhIKmppN0tN
YCMwdEJnMnF6Rml0UCFmPFBIQS0qTkxvQFZfZ2NmMHQ4V0IoI0k/eyVZUkZ4KnVgJSl5Sgp6MW5H
IUszNWJxaFhyWDdBYjlRJWpmODZ1bHglWnYtPiVIXkFhWnB3ZWtQNDJZbn1nNnYjT3VZQThHdG12
VmpTSWoKekZwaDVVKChaJWZBU3dTdWtZWEdwPUYqQSkwUmZpPGAlZU9kXkZwQmktZiNzN2Zpcj8+
MmNXJFQjOzIqR0FQX0FlCnoxXyNscm4yRShlS09NSjZOMjZZSm5lX0BocH1TS1BYVUI3Rk1lcl9+
NXwxcWdDe1Rxbm5CdXYxJGtwcDVPQnolQAp6PG15U3crP1k+XmpBWjQjWEEtfSohUXNidU9oVyhz
TzgzNjYoJDsoMUE+bW8oTy0leChobig9eVo7eX5ORyNRWDEKemdIa1NpXl44Y3Y0VFRTTDl2bjVx
Uig+X0QzZiZvYypqd1BnSSNLQFEjQXNMKUQ7QkQmV2IyZCtJMV5KN24+fVlaCnpiQ1hvOWZPQGch
QGRXWWEyViV9Oykhezx6RGN8KHB2SklheFc3TmRPJU82Zj5yJmFPcnBIa3tvX1I5bVE0N3VvYgp6
P2w+OXxufFgzYGFncF5HO0x3WFI1PChscitSPGNMNWpUUSg/XkQ8a1JvIUhfVCNwP3kzZH1edENZ
ViE4Ul5OP30KekMqJVhtOUxlZj5qN2hsci0/akhscHx3ZkEmXm4tczs8IXokcUQxeFBxIThLUTF9
fmR1cHd+Qk0xZ3N+QEFvO0NxCnp3UmdVfDJeZH1OLWdWO0BhWWt1OEklfXw8bDZRTT89ZH5GWXBi
R0ZIOSZ2TmdLWipTeWNJU3xtY3VPUj9sJkNPdwp6c3t6ZDV6bWVseHFOMURReXt9UGdCPXUjZnpJ
TlBrQjBvTipjazN2YCsxeyFZWFB+e0VWSTdWcWgqfnVhV19+VUMKemxSMzNSWjA1SGhrQy0xZUlw
KS1AWV55dmMtfFIlISo5ZHc3bmZXKXlqY0hJWWY2cj1hQ3QoVWhpLUZKbTJue18pCnole3VsQlVY
UmAyPD5seH1lR21TbVJKPjVvdGtAKCtwanNQcTs0aFo2RklLbCN7bnhQIUFMITI4X19BWWZsYFZn
ewp6bFJSYUFSfFZteTFfYF5iYmpacnpBe1EkbFllaklZZF5BJFo+VyZqeW5NPUtgVGw0d1YpM3dA
ZDFKY2AtNS1DR0oKenhxXkA4XyghPFpGMnFsaF9afX1ucj9TJjUqeitGQCl2KFoxRUlzO0htfSEx
fk1UTCFqMUBjJFpITFJ9Vig9O15vCnpkVXBmeT9vPnl6b2xfc2k8PFVFQj10KGVlQnpnSl5XWXdz
SENHOTM0cyRkKUBxcUh3Z155Wk17YF5qSiE5O3RyNgp6ZW9VYXkmJCtCeUd8Tl5fem9BSF50WUln
PmhhWXd8QHxjMzFedyhuVWQ3ayhZbUVKNzZWWTc5KyhDKF8kOzFNc1UKemhpTmkrQjVnU3JEanw5
PjxAPzZSJjh6Ym04YnI/Qy1ObjFjaygrPE5LJTcpNnYtd1dxND1NX1RidDE5NHpVKnlGCnpoPG90
PEhCV25veEIlMWs5KE0wbzxOZylSZ0hTKCM/ZWRFUUIhXnxGay1fKGFgYlVCTEFLKmh+YXp+IV94
dT1UNAp6Nkc1Sy1hWEpvdEhRbEVDOENVNXxSeU1SdVFrWEUpP152NihpPU11KT0kXm8lMCF5czVH
VlJhWFoyUzJINEk4M0wKenEpYmB8UHh7KDg5VzMyenE0c3F6SCtCQUtQOXVhREVwRDhJSUE5RC1I
NDVDJVZUP0pKI01hK0JAaTlNUGRGLSMjCnpOeEY1VHV9aXpfaHokU0taMF9fJiFZcDF5YWRWem9j
QEV5K0JlZkpDdENTVmQ1KEp5KDxDNkljQ1d9RG1Id0M4VAp6UntrcXZSQD8zcnpMRzIkWmRjeC01
dkZSQGQkUSNERCt+e2RoQG1kX2VgQkI2KlVZNlIrNF4jVSV6NGx0eDlCJTsKek5WOHoqe0djR007
Z3EyUnR5ZGp7SDBTMHAjejw2JTdtMyElez9NUXVhPGBAZTViT3RiZCFFYz9HXnV4ZjRneGNJCnot
RjdTVFlpfnZEYm12Q1ozTkRjZkhqOD5DOUZWNmpkMX0ocFN3cmdHaypRWjlScjQpNiFzU2tUVXFi
eGJhZWEydQp6d1NgJHlvc1EpZWIlb192Sk8qIUFgZFI7WTRrPiZxWXp1YS1aTkU8M0ZFPUkrZVNV
O3ghcHReQTM1Pm9Jb1BgSnEKelpsfilyQzYwTCtrU3hBZ29QRXxyR2pWQD8yQXkqWGI9JGNgY19M
Mz1FemhqQlVEPWgxXzQlZUJDZmxqJkVIWm1PCnpzezFifE51eDYrO0sjS0I9VGtffGlrfHsqMDFk
ayQ5S2E2YGNSVT1NY1lpTiFrLWEpMlBEMzFoPGNUcyVrUGhvWgp6Tykyd19UOS04dzJOTSYmcTJw
bDReS3F9Q1BlPWw5aHEkVzQhdDtKRCV8VUooMjh2RGJNKkw+VkY3YldfWHtiMTQKekdOdyh3PkVf
UzlgPDt4UWxQYEBzZD42bTNuMilMKTBwIVhSckQjMjVpSWtSRHMpMXVqTiVTc3l3IzYydmR2JkFs
CnpjZGotWWwjNitAYTBXc2NVPDNgZ3ZXJDJ3LSheSGZFUnl4c05zcTZtSzBkODs/MExTZU5oJU5F
ZTBCWUo0SUwoYQp6JFdYbmQpUEJXPEFUa3t5JTJTOUdQYTJxeUpXJF5KSl9jb19YUDFtOUV9ailR
P15sJCMqTUR4UDV8bVkxemNxM3kKemI9QHp5Q1h1Z3dke05qeD9pMjdqK3pYTzQqVj59WmUtekJR
eClIeW53TGBOaighOXQpNTRkTzt6VFZ+LU8jO1U7CnpNd3AwUFUtdVVMPyMjOEwtKSZ2bWJuQW1u
I0AmYT52PWNQfUVVUUpWd2FEdzlWPC1Jd1l0aVQ5dyhUTWVhMiVEeQp6fEE0MCRONXVvaVFFXl97
UzEtaWBxNWx0dHBnPlNENHBhZmhmbEJ8NlBFPiE+c2hXa29FbVpoZyt+MEhwPDNLVEAKejlqayRx
TUM9MCZCYmteZlJvNGYzOEp+aVdDfHhHUDBgd1ozRiNrOGcqSWROWSRHRi1BeDhePERyQl5qMjhY
YjZzCnpSfDtWdmFyJTx8VFpLfj4zMGtEMylXJEFEIyh0dGAjQHg3UThPWWFwVF9KeU0xdlQ/bGJ4
LStfRihKRiV5UzBPJAp6cFMjbH13KjBqPmJ9TTNlOzRJPntwTU0+cyVgP2ZTQUVfUWJgQW4+X1Yh
a2l9JDl3TU45KGZVMXVKR20wTWk3aEsKekE1bDBlMXdWY14kcWw/NWdtPjhFdkJwU2FXZjVUSWcz
WlNidUpocDthJShaK2tje2NkdjFQdVgkZTJHQU4/SmY4CnpXS05nUzwoTTJGTlVgUnhkQkd9Zj1T
MXJuUSplUjEycUZfQyYmcG5AYHklQ35MOV5RX1o5bGgmRz1YdkdDITQxMAp6eW4pNW89KXgyaUpZ
K14/XkVMam50SEhgfUspemE/ST18diEkaEwwbiZHenlwemFMd05kZU09T2pXfC0tPW1SX2oKenl0
P35WeF9fOUJFdmNoTD85aHVVb2ItNW4rcjE/PHhAY2d9NWF8VnxGY0ZRTyplSXB3WkVuflZHTGVx
dlNAV2syCnopIStEMy07ezRAT08pYitiUU8jPS1FK0JlT0BmITM8aVQwbWIycGIzODh7R0lSYXJq
ZG5UaSVAPzRxd3kjcTYwWQp6cWlBfHt0Nm80OUVNMThKJnc4REEjd1FERHNGd04kSEcqTVRMMjFC
UWopWVJgVzVMO1pmTU08KnJMPUZJZ3wwYkoKelQ5cjdGbEJMTF5yViUxVU8hM3xHREVhTSFqSFBM
cj81UUJ1Q0MhVyk+ZHJmXlJDYGA3WVJZWihLPmllMD5wSmReCnpKV19IeyUpXmMhNj5sfDlQOD9j
PWooQjU3WUp6OD9YeVF6RTl1R2F9ZFYwUFRwMyE7cCFTRil9dC1pPkM8RWRIKwp6TUtBU25WIyEm
U1dmZH0wZGxqWHN5UWZ6c0A2aTArZHFTSEpMfkY3fm90fCRId2YrRiowakNLKnc1V29GQFE5aE4K
emhsayVTe2g2QzU3Q0kyXzVSOTtmMztwLTE+RFVuKlVeZW9HamhxbzsqUioka1ZFMDFKPlRKUVJz
djlveiZrITN6CnprV1Q7KjBRZTBNM1VDTHcwRD1KK2ZHZmNGdkpVfGBVZHNLXzM0dFR2SHtmJi1Z
OFdGR2g/XlAhWDU7eT1GWnVEcwpmZnJXazAlTShPR25UTU48aCZxQHlMZERVXyZNY0FmP3wxa01l
alVObwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQv
a2V5LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFlODU4MzE4ZjI5
YmE2YjQ2MjNiZDVmYmM0YTA4Y2U3M2Q5MDMxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jZXJ0L2tleS5wZW0KQEAgLTAsMCArMSwxNSBAQAorLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBL
RVktLS0tLQorTUlJQ1hnSUJBQUtCZ1FEZUVNNDZXZ1NrSENtVFhDT0NHdklHQWVZcnBBL2RkMGwy
aVFPaUlkNEVkY2JpM2ZzMQorSnpxaWtvNFNZaXMrSC9SNDM3YVV5eWZXeTlZMzExd0k4QWsreWM0
a0xRREozMHJnbWVYN0k2bmkxc2s5bHZvQgoraU41YWliRFBBMmR2QklZZDcySWNWYWtIbWk1bUtu
TmJUR0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQgorQW9HQkFJdUN1VjFWY25iN3JtOEN3
dGdaUDVYZ21ZOHZTanhUbGRhZmE2WHZhd0VZVVRQMFM3N3YvMWxsZzFZdgorVUlWK0krUFFnRzlv
Vm9ZT2wyMkxvaW1IUy9aM2UxZnNvdDV0RFlzekdlOC9Ha3N0NG9hUmVTb3h2QlVhNldYcAorUVNv
N1lGQ2FqdUh0RStXL2d6RitVSGJkenpYSURqUVozMTRMTkY1dCs0VW5zRVBCQWtFQStnaXJJbXFX
b00ydAorM1VSOGY4b2VrRVJ3c21FTWY5REg1WXBINGN2VW52SStrd2VzQy9yMlU4U2hvKytmeUVN
VU5tN2FJWEdxTkxnYQorb2dBTSs0Tlg0UUpCQU9OZFN4U2F5MjJlZ1RHTm9JaExuZGxqV2t1T3Qv
OUZXajJrbGYvNFF4RDRibE1KUTVPcQorUWRPR0FoN25WUWpwUExRNUQ3Q0JWQUtwR00yQ0QrUUpC
dHNDUUVQMmt6MzVweFB5bEczdXJjQzJtZlF4QmtrVworWkNWaUJOUDU4R3dKMGJPYXVUT1NCRXdG
WFd1THFUdzhhRHd4TDQ5VU5tcWMwTjBmcGUyZkFlaGozVUVDUVFDbQorRkgvRGpVOEx3N3liZGRq
TnRtNlhYUHVZTmFneHozY2JrQjRCM0ZjaERsZUlVRHdNb1ZGME1XOWJJNS81NG1WMQorUURrMXRV
S29ydHh2UVpKYUFENEJBa0VBaEdPSFFxUGQ2YkJCb0ZCdnBhTHpQSk14d0xLckIrV3RrcS9RbEM3
MgorQ2xSaU1uMmc4U0FMaUlMM0JEZ0dYS2NLRS9XeTdqby9hZi9KQ3pRL2NQcXQvQT09CistLS0t
LUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ODBiOTRkZTM4NjZkZWI2OTY2Y2UwNjcxZmYyMmY2MGU3M2NjMDQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBlbQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdmODA1ZWU5NGU1NDk0NjllZDg3MGRh
ZTdlMGNjZjIwMjZiZWFiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9y
X3Rlc3RpbmcucHkKQEAgLTAsMCArMSwxMTAwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3IgdGVz
dGluZy4KKworVGhpcyBtb2R1bGUgY29udGFpbnMgaGVscGVyIG1ldGhvZHMgZm9yIHBlcmZvcm1p
bmcgaGFuZHNoYWtlLCBmcmFtZQorc2VuZGluZy9yZWNlaXZpbmcgYXMgYSBXZWJTb2NrZXQgY2xp
ZW50LgorCitUaGlzIGlzIGNvZGUgZm9yIHRlc3RpbmcgbW9kX3B5d2Vic29ja2V0LiBLZWVwIHRo
aXMgY29kZSBpbmRlcGVuZGVudCBmcm9tCittb2RfcHl3ZWJzb2NrZXQuIERvbid0IGltcG9ydCBl
LmcuIFN0cmVhbSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBmcmFtZSBmb3IKK3Rlc3RpbmcuIFVzaW5n
IHV0aWwuaGV4aWZ5LCBldGMuIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHByb3RvY29sIHByb2Nl
c3NpbmcKK2lzIGFsbG93ZWQuCisKK05vdGU6CitUaGlzIGNvZGUgaXMgZmFyIGZyb20gcm9idXN0
LCBlLmcuLCB3ZSBjdXQgY29ybmVycyBpbiBoYW5kc2hha2UuCisiIiIKKworCitpbXBvcnQgYmFz
ZTY0CitpbXBvcnQgZXJybm8KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCByYW5k
b20KK2ltcG9ydCByZQoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN0cnVjdAoraW1wb3J0IHRpbWUK
KworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IHV0aWwKKworCitERUZBVUxUX1BPUlQgPSA4MAorREVGQVVMVF9TRUNVUkVfUE9S
VCA9IDQ0MworCisjIE9wY29kZXMgaW50cm9kdWNlZCBpbiBJRVRGIEh5QmkgMDEgZm9yIHRoZSBu
ZXcgZnJhbWluZyBmb3JtYXQKK09QQ09ERV9DT05USU5VQVRJT04gPSAweDAKK09QQ09ERV9DTE9T
RSA9IDB4OAorT1BDT0RFX1BJTkcgPSAweDkKK09QQ09ERV9QT05HID0gMHhhCitPUENPREVfVEVY
VCA9IDB4MQorT1BDT0RFX0JJTkFSWSA9IDB4MgorCisjIFN0cmluZ3MgdXNlZCBmb3IgaGFuZHNo
YWtlCitfVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKK19VUEdSQURF
X0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCitfQ09OTkVDVElPTl9I
RUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisKK1dFQlNPQ0tFVF9BQ0NFUFRfVVVJ
RCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCisKKyMgU3RhdHVzIGNv
ZGVzCitTVEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAwCitTVEFUVVNfR09JTkdfQVdBWSA9IDEw
MDEKK1NUQVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIKK1NUQVRVU19VTlNVUFBPUlRFRF9EQVRB
ID0gMTAwMworU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCA9IDEwMDUKK1NUQVRVU19BQk5PUk1B
TF9DTE9TVVJFID0gMTAwNgorU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBID0gMTAw
NworU1RBVFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4CitTVEFUVVNfTUVTU0FHRV9UT09fQklH
ID0gMTAwOQorU1RBVFVTX01BTkRBVE9SWV9FWFQgPSAxMDEwCitTVEFUVVNfSU5URVJOQUxfRU5E
UE9JTlRfRVJST1IgPSAxMDExCitTVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUKKworIyBFeHRl
bnNpb24gdG9rZW5zCitfREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScK
KyMgVE9ETyhiYXNoaSk6IFVwZGF0ZSBhZnRlciBtdXggaW1wbGVtZW50YXRpb24gZmluaXNoZWQu
CitfTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKK19QRVJNRVNTQUdFX0RFRkxBVEVf
RVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKKworZGVmIF9tZXRob2RfbGluZShyZXNv
dXJjZSk6CisgICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291cmNlCisKKwor
ZGVmIF9zZWNfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgorICAgIHJldHVybiAnU2VjLVdlYlNvY2tl
dC1PcmlnaW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIoKQorCisKK2RlZiBfb3JpZ2luX2hlYWRl
cihvcmlnaW4pOgorICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9y
aWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCisgICAgIyBhbmQgdGhlIC9vcmlnaW4v
IHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRzLy4KKyAgICBy
ZXR1cm4gJ09yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCisKKworZGVmIF9mb3JtYXRf
aG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKKyAgICAjIDQuMSA5LiBMZXQgL2hvc3Rw
b3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hvc3Qv
IHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bworICAgICMgL2hvc3Rwb3J0
LworICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCisgICAgIyA0LjEgMTEuIElmIC9zZWN1cmUv
IGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KKyAgICAjIGlz
IHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09MT04g
Y2hhcmFjdGVyCisgICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0LywgZXhw
cmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKKyAgICAjIHRvIC9ob3N0cG9ydC8KKyAgICBp
ZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9QT1JUKSBvcgorICAgICAgICAoc2Vj
dXJlIGFuZCBwb3J0ICE9IERFRkFVTFRfU0VDVVJFX1BPUlQpKToKKyAgICAgICAgaG9zdHBvcnQg
Kz0gJzonICsgc3RyKHBvcnQpCisgICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0
cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQorICAgICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rw
b3J0LywgdG8gL2ZpZWxkcy8uCisgICAgcmV0dXJuICdIb3N0OiAlc1xyXG4nICUgaG9zdHBvcnQK
KworCisjIFRPRE8odHlvc2hpbm8pOiBEZWZpbmUgYSBiYXNlIGNsYXNzIGFuZCBtb3ZlIHRoZXNl
IHNoYXJlZCBtZXRob2RzIHRvIHRoYXQuCisKKworZGVmIHJlY2VpdmVfYnl0ZXMoc29ja2V0LCBs
ZW5ndGgpOgorICAgIHJlY2VpdmVkX2J5dGVzID0gW10KKyAgICByZW1haW5pbmcgPSBsZW5ndGgK
KyAgICB3aGlsZSByZW1haW5pbmcgPiAwOgorICAgICAgICBuZXdfcmVjZWl2ZWRfYnl0ZXMgPSBz
b2NrZXQucmVjdihyZW1haW5pbmcpCisgICAgICAgIGlmIG5vdCBuZXdfcmVjZWl2ZWRfYnl0ZXM6
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rp
b24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnCisgICAgICAgICAg
ICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9ubHkgJWQgYnl0ZXMpJyAl
CisgICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWluaW5nKSkKKyAgICAgICAg
cmVjZWl2ZWRfYnl0ZXMuYXBwZW5kKG5ld19yZWNlaXZlZF9ieXRlcykKKyAgICAgICAgcmVtYWlu
aW5nIC09IGxlbihuZXdfcmVjZWl2ZWRfYnl0ZXMpCisgICAgcmV0dXJuICcnLmpvaW4ocmVjZWl2
ZWRfYnl0ZXMpCisKKworIyBUT0RPKHR5b3NoaW5vKTogTm93IHRoZSBXZWJTb2NrZXRIYW5kc2hh
a2UgY2xhc3MgZGl2ZXJ0cyB0aGVzZSBtZXRob2RzLiBXZQorIyBzaG91bGQgbW92ZSB0byBIVFRQ
IHBhcnNlciBhcyBzcGVjaWZpZWQgaW4gUkZDIDY0NTUuIEZvciBIeUJpIDAwIGFuZAorIyBIaXhp
ZSA3NSwgcGFjayB0aGVzZSBtZXRob2RzIGFzIHNvbWUgcGFyc2VyIGNsYXNzLgorCisKK2RlZiBf
cmVhZF9maWVsZHMoc29ja2V0KToKKyAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEgbGlz
dCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCisgICAgZmllbGRzID0ge30K
KyAgICB3aGlsZSBUcnVlOgorICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBhbmQgL3ZhbHVl
LyBiZSBlbXB0eSBieXRlIGFycmF5cworICAgICAgICBuYW1lID0gJycKKyAgICAgICAgdmFsdWUg
PSAnJworICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KKyAgICAgICAgbmFtZSA9IF9yZWFk
X25hbWUoc29ja2V0KQorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBicmVh
aworICAgICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMKKyAgICAgICAgIyBUT0RPKHR5b3NoaW5v
KTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCisgICAgICAg
IGNoID0gX3NraXBfc3BhY2VzKHNvY2tldCkKKyAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVl
LworICAgICAgICB2YWx1ZSA9IF9yZWFkX3ZhbHVlKHNvY2tldCwgY2gpCisgICAgICAgICMgNC4x
IDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKKyAgICAgICAgY2ggPSByZWNlaXZlX2J5
dGVzKHNvY2tldCwgMSkKKyAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQorICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91
bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKKyAgICAgICAgICAgICAg
ICAnJXInICUgKGNoLCBuYW1lLCB2YWx1ZSkpCisgICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4g
ZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKKyAgICAgICAgIyBn
aXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL25hbWUvIGJ5
dGUKKyAgICAgICAgIyBhcnJheSBhcyBhIFVURi04IHN0cmVhbSBhbmQgdGhlIHZhbHVlIGdpdmVu
IGJ5IHRoZSBzdHJpbmcKKyAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC92
YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKKyAgICAgICAgIyBzdHJlYW0uCisgICAg
ICAgIGZpZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCisgICAgICAgICMg
NC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQorICAgIHJldHVybiBmaWVs
ZHMKKworCitkZWYgX3JlYWRfbmFtZShzb2NrZXQpOgorICAgICMgNC4xIDMzLiBsZXQgL25hbWUv
IGJlIGVtcHR5IGJ5dGUgYXJyYXlzCisgICAgbmFtZSA9ICcnCisgICAgd2hpbGUgVHJ1ZToKKyAg
ICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgorICAgICAgICBjaCA9
IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQorICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBE
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4
MEEKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnVW5leHBl
Y3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKKyAgICAgICAgZWxp
ZiBjaCA9PSAnOic6ICAjIDB4M0EKKyAgICAgICAgICAgIHJldHVybiBuYW1lCisgICAgICAgIGVs
aWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIHJhbmdlIDB4MzEgdG8gMHg1QQorICAgICAg
ICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCisgICAgICAgICAgICBuYW1lICs9IGNoCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lICs9IGNoCisKKworZGVmIF9za2lwX3NwYWNl
cyhzb2NrZXQpOgorICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKKyAg
ICB3aGlsZSBUcnVlOgorICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQorICAg
ICAgICBpZiBjaCA9PSAnICc6ICAjIDB4MjAKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
IHJldHVybiBjaAorCisKK2RlZiBfcmVhZF92YWx1ZShzb2NrZXQsIGNoKToKKyAgICAjIDQuMSAz
My4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKKyAgICB2YWx1ZSA9ICcnCisgICAg
IyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgorICAgIHdoaWxlIFRydWU6CisgICAg
ICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorICAg
ICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKKyAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZh
bHVlICVyJyAlIHZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmFsdWUgKz0gY2gK
KyAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKKworCitkZWYgcmVhZF9mcmFt
ZV9oZWFkZXIoc29ja2V0KToKKyAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAy
KQorCisgICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkKKyAgICBmaW4gPSAoZmlyc3Rf
Ynl0ZSA+PiA3KSAmIDEKKyAgICByc3YxID0gKGZpcnN0X2J5dGUgPj4gNikgJiAxCisgICAgcnN2
MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQorICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA+PiA0KSAm
IDEKKyAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCisKKyAgICBzZWNvbmRfYnl0ZSA9IG9y
ZChyZWNlaXZlZFsxXSkKKyAgICBtYXNrID0gKHNlY29uZF9ieXRlID4+IDcpICYgMQorICAgIHBh
eWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCisKKyAgICBpZiBtYXNrICE9IDA6Cisg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICdNYXNrIGJpdCBtdXN0IGJlIDAg
Zm9yIGZyYW1lcyBjb21pbmcgZnJvbSBzZXJ2ZXInKQorCisgICAgaWYgcGF5bG9hZF9sZW5ndGgg
PT0gMTI3OgorICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMo
c29ja2V0LCA4KQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCisgICAg
ICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKyAgICAgICAgaWYgcGF5
bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6CisgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQorICAgIGVsaWYgcGF5bG9h
ZF9sZW5ndGggPT0gMTI2OgorICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2Vp
dmVfYnl0ZXMoc29ja2V0LCAyKQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBh
Y2soCisgICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKworICAg
IHJldHVybiBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGgKKwor
CitjbGFzcyBfVExTU29ja2V0KG9iamVjdCk6CisgICAgIiIiV3JhcHBlciBmb3IgYSBUTFMgY29u
bmVjdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdfc29ja2V0KToKKyAgICAg
ICAgc2VsZi5fc3NsID0gc29ja2V0LnNzbChyYXdfc29ja2V0KQorCisgICAgZGVmIHNlbmQoc2Vs
ZiwgYnl0ZXMpOgorICAgICAgICByZXR1cm4gc2VsZi5fc3NsLndyaXRlKGJ5dGVzKQorCisgICAg
ZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgIHJldHVybiBzZWxmLl9zc2wucmVhZChz
aXplKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAjIE5vdGhpbmcgdG8gZG8uCisg
ICAgICAgIHBhc3MKKworCitjbGFzcyBIdHRwU3RhdHVzRXhjZXB0aW9uKEV4Y2VwdGlvbik6Cisg
ICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB1bmV4cGVjdGVkIGh0dHAg
c3RhdHVzIGNvZGUgd2FzCisgICAgcmVjZWl2ZWQgYXMgYSByZXN1bHQgb2YgaGFuZHNoYWtlLgor
ICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cyk6CisgICAgICAg
IHN1cGVyKEh0dHBTdGF0dXNFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCisgICAgICAg
IHNlbGYuc3RhdHVzID0gc3RhdHVzCisKKworY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlKG9iamVj
dCk6CisgICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0
IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9u
cyk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQor
CisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCisKKyAgICBkZWYgaGFuZHNoYWtlKHNl
bGYsIHNvY2tldCk6CisgICAgICAgICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCisKKyAgICAgICAg
UmFpc2VzOgorICAgICAgICAgICAgRXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVkLgorICAgICAg
ICAiIiIKKworICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKKworICAgICAgICByZXF1ZXN0
X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKKyAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVx
dWVzdF9saW5lKQorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCisK
KyAgICAgICAgZmllbGRzID0gW10KKyAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFE
RVIpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQorCisgICAgICAg
IGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0
LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKworICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnZlcnNpb24gaXMgODoKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX3NlY19v
cmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4p
KQorCisgICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCisgICAgICAgIGtleSA9
IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXk6ICVzICglcyknLCBrZXksIHV0aWwu
aGV4aWZ5KG9yaWdpbmFsX2tleSkpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2Nr
ZXQtS2V5OiAlc1xyXG4nICUga2V5KQorCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJT
b2NrZXQtVmVyc2lvbjogJWRcclxuJyAlIHNlbGYuX29wdGlvbnMudmVyc2lvbikKKworICAgICAg
ICAjIFNldHRpbmcgdXAgZXh0ZW5zaW9ucy4KKyAgICAgICAgaWYgbGVuKHNlbGYuX29wdGlvbnMu
ZXh0ZW5zaW9ucykgPiAwOgorICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zOiAlc1xyXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5q
b2luKHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucykpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgZmllbGRzKQorCisg
ICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2Vu
ZGFsbChmaWVsZCkKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQorCisgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQor
CisgICAgICAgIGZpZWxkID0gJycKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGNo
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgICAgICBmaWVsZCArPSBj
aAorICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICBicmVhaworCisg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVzcG9uc2UtTGlu
ZTogJXInLCBmaWVsZCkKKworICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmllbGQu
ZW5kc3dpdGgoJ1xyXG4nKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV3Jvbmcgc3Rh
dHVzIGxpbmU6ICVyJyAlIGZpZWxkKQorICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChbXiBd
KikgLionLCBmaWVsZCkKKyAgICAgICAgaWYgbSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGlu
IHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKKyAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkKKyAg
ICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKKyAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29kZSAl
ciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCisgICAgICAgICAgICAg
ICAgKGNvZGUsIGZpZWxkKSkKKyAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKKyAgICAgICAgICAg
IHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhU
VFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJworICAgICAg
ICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCisgICAgICAgIGZpZWxk
cyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCisgICAgICAgIGNoID0gcmVjZWl2ZV9ieXRl
cyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kOiAlcicgJSBjaCkK
KworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlc3BvbnNl
IGhlYWRlcnM6ICVyJywgZmllbGRzKQorCisgICAgICAgICMgQ2hlY2sgL2ZpZWxkcy8KKyAgICAg
ICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBVcGdyYWRlIGhlYWRlcnMgZm91bmQ6
ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQorICAgICAgICBpZiBsZW4oZmllbGRzWydjb25uZWN0
aW9uJ10pICE9IDE6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWydjb25u
ZWN0aW9uJ10pCisgICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICd3ZWJzb2NrZXQn
OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVj
dGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKKyAg
ICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6Cisg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
Q29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCisgICAgICAgICAgICAgICAgZmllbGRzWydj
b25uZWN0aW9uJ11bMF0pCisKKyAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1h
Y2NlcHQnXSkgIT0gMToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVycyBmb3VuZDogJXMnICUK
KyAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10pCisKKyAgICAg
ICAgYWNjZXB0ID0gZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddWzBdCisKKyAgICAgICAg
IyBWYWxpZGF0ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWNvZGVkX2FjY2VwdCA9IGJh
c2U2NC5iNjRkZWNvZGUoYWNjZXB0KQorICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBlOgorICAg
ICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdJbGxl
Z2FsIHZhbHVlIGZvciBoZWFkZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBhY2NlcHQpCisK
KyAgICAgICAgaWYgbGVuKGRlY29kZWRfYWNjZXB0KSAhPSAyMDoKKyAgICAgICAgICAgIHJhaXNl
IEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnRGVjb2RlZCB2YWx1ZSBvZiBT
ZWMtV2ViU29ja2V0LUFjY2VwdCBpcyBub3QgMjAtYnl0ZSBsb25nJykKKworICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ0FjdHVhbCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGRlY29kZWRfYWNj
ZXB0KSkKKworICAgICAgICBvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFz
aCgKKyAgICAgICAgICAgIGtleSArIFdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKKyAg
ICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9leHBlY3Rl
ZF9hY2NlcHQpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHBlY3RlZCBTZWMtV2Vi
U29ja2V0LUFjY2VwdDogJXIgKCVzKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBl
Y3RlZF9hY2NlcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShvcmln
aW5hbF9leHBlY3RlZF9hY2NlcHQpKQorCisgICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3RlZF9h
Y2NlcHQ6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0lu
dmFsaWQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyOiAlciAoZXhwZWN0ZWQpICE9ICVyICcK
KyAgICAgICAgICAgICAgICAnKGFjdHVhbCknICUgKGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkK
KworICAgICAgICBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMuZ2V0KCdzZWMtd2Vi
c29ja2V0LWV4dGVuc2lvbnMnKQorICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KKyAg
ICAgICAgaWYgc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAorICAgICAg
ICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyKSkKKworICAg
ICAgICAjIFNjYW4gYWNjZXB0ZWQgZXh0ZW5zaW9uIGxpc3QgdG8gY2hlY2sgaWYgdGhlcmUgaXMg
YW55IHVucmVjb2duaXplZAorICAgICAgICAjIGV4dGVuc2lvbnMgb3IgZXh0ZW5zaW9ucyB3ZSBk
aWRuJ3QgcmVxdWVzdCBpbiBpdC4gVGhlbiwgZm9yCisgICAgICAgICMgZXh0ZW5zaW9ucyB3ZSBy
ZXF1ZXN0LCBwYXJzZSB0aGVtIGFuZCBzdG9yZSBwYXJhbWV0ZXJzLiBUaGV5IHdpbGwgYmUKKyAg
ICAgICAgIyB1c2VkIGxhdGVyIGJ5IGVhY2ggZXh0ZW5zaW9uLgorICAgICAgICBkZWZsYXRlX2Zy
YW1lX2FjY2VwdGVkID0gRmFsc2UKKyAgICAgICAgbXV4X2FjY2VwdGVkID0gRmFsc2UKKyAgICAg
ICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25zOgorICAgICAgICAgICAgaWYg
ZXh0ZW5zaW9uLm5hbWUoKSA9PSBfREVGTEFURV9GUkFNRV9FWFRFTlNJT046CisgICAgICAgICAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKKyAgICAgICAgICAgICAg
ICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX01VWF9FWFRFTlNJ
T046CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfbXV4OgorICAgICAgICAg
ICAgICAgICAgICBtdXhfYWNjZXB0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICBpZiBleHRlbnNpb24ubmFtZSgpID09IF9QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OOgorICAgICAgICAgICAgICAgIGNoZWNrZXIgPSBzZWxmLl9vcHRpb25zLmNo
ZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZQorICAgICAgICAgICAgICAgIGlmIGNoZWNrZXI6CisgICAg
ICAgICAgICAgICAgICAgIGNoZWNrZXIoZXh0ZW5zaW9uKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQorCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
J1JlY2VpdmVkIHVucmVjb2duaXplZCBleHRlbnNpb246ICVzJyAlIGV4dGVuc2lvbi5uYW1lKCkp
CisKKyAgICAgICAgIyBMZXQgYWxsIGV4dGVuc2lvbnMgY2hlY2sgdGhlIHJlc3BvbnNlIGZvciBl
eHRlbnNpb24gcmVxdWVzdC4KKworICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0
ZV9mcmFtZSBhbmQKKyAgICAgICAgICAgIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2NlcHRlZCcgJQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKwor
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXggYW5kIG5vdCBtdXhfYWNjZXB0ZWQ6Cisg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGV4dGVuc2lvbiBub3QgYWNjZXB0ZWQnICUg
X01VWF9FWFRFTlNJT04pCisKKworY2xhc3MgV2ViU29ja2V0SHliaTAwSGFuZHNoYWtlKG9iamVj
dCk6CisgICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0
IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcHRpb25zLCBkcmFmdF9maWVsZCk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25z
CisgICAgICAgIHNlbGYuX2RyYWZ0X2ZpZWxkID0gZHJhZnRfZmllbGQKKworICAgIGRlZiBoYW5k
c2hha2Uoc2VsZiwgc29ja2V0KToKKyAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNvY2tldC4KKwor
ICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFrZSBmYWlsZWQu
CisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAorCisgICAgICAg
ICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgorICAgICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0
aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9saW5lKQor
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCisgICAgICAgICMgNC4x
IDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCisgICAgICAgIGZp
ZWxkcyA9IFtdCisgICAgICAgICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJT
b2NrZXQiIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURF
Ul9ISVhJRTc1KQorICAgICAgICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlvbjog
VXBncmFkZSIgdG8gL2ZpZWxkcy8uCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05f
SEVBREVSKQorICAgICAgICAjIDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxkcy8u
CisgICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKyAgICAgICAg
IyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVsZHMu
YXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKKyAgICAgICAgIyBU
T0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRvIC9maWVsZHMv
LgorICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8gL2ZpZWxkcy8u
CisKKyAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxuPiB0byAvZmll
bGRzLy4KKyAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVyYXRlX3NlY193
ZWJzb2NrZXRfa2V5KCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIxOiAlZCcs
IHNlbGYuX251bWJlcjEpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5
MTogJXNcclxuJyAlIGtleTEpCisgICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9n
ZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
TnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIxKQorICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMt
V2ViU29ja2V0LUtleTI6ICVzXHJcbicgJSBrZXkyKQorCisgICAgICAgIGZpZWxkcy5hcHBlbmQo
J1NlYy1XZWJTb2NrZXQtRHJhZnQ6ICVzXHJcbicgJSBzZWxmLl9kcmFmdF9maWVsZCkKKworICAg
ICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRvbSBv
cmRlcjogc2VuZCB0aGUKKyAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZvbGxv
d2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKKyAgICAgICAgIyBSRVRVUk4g
VSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCisgICAgICAgIHJhbmRvbS5z
aHVmZmxlKGZpZWxkcykKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFu
ZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVsZHMpCisgICAgICAgIGZvciBmaWVsZCBp
biBmaWVsZHM6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKKworICAg
ICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVS
TiBVKzAwMEEgTElORSBGRUVECisgICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgorICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisgICAgICAgICMgNC4xIDI2LiBsZXQg
L2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgor
ICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBp
biBhIGJpZy1lbmRpYW4gb3JkZXIpLgorICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJh
dGVfa2V5MygpCisgICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgor
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQorICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCisgICAgICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0
aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50
IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQorCisgICAgICAgICMgNC4xIDI4LiBSZWFkIGJ5
dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAg
IyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJlIHRoZXNlIGJ5
dGVzLCBpbmNsdWRpbmcKKyAgICAgICAgIyB0aGUgMHgwQSBieXRlcy4KKyAgICAgICAgZmllbGQg
PSAnJworICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVz
KHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgICAgIGZpZWxkICs9IGNoCisgICAgICAgICAgICBp
ZiBjaCA9PSAnXG4nOgorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZpZWxkKQor
CisgICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywg
b3IgaWYgdGhlIGxhc3QKKyAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEg
cmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAorICAgICAgICAjIGNvbnRhaW4gYXQgbGVh
c3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KKyAg
ICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGxlbihmaWVsZCkgPCA3
IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCisgICAgICAgIG0gPSByZS5tYXRj
aCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQorICAgICAgICBpZiBtIGlzIE5vbmU6CisgICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVy
JyAlIGZpZWxkKQorICAgICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUgc3Vic3RyaW5n
IG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUKKyAgICAgICAgIyBieXRlIGFmdGVyIHRo
ZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3JlIHRoZQorICAg
ICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCisgICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCisgICAg
ICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcsIG9yIGlmIGFu
eSBvZiB0aGUgYnl0ZXMgaW4KKyAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0aGUgcmFuZ2Ug
MHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldAorICAgICAgICAjIGNvbm5lY3Rp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTld
WzAtOV1bMC05XScsIGNvZGUpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAg
ICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0
dXMgbGluZTogJXInICUKKyAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQorICAgICAgICAj
IDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4g
bW92ZSB0byB0aGUKKyAgICAgICAgIyBuZXh0IHN0ZXAuCisgICAgICAgIGlmIGNvZGUgIT0gJzEw
MSc6CisgICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3RhdHVz
IGxpbmU6ICcKKyAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwgaW50KGNvZGUp
KQorICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRzLworICAgICAg
ICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29ja2V0KQorCisgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczogJXInLCBmaWVs
ZHMpCisKKyAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KKyAgICAgICAgIyBy
ZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgorICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5f
c29ja2V0LCAxKQorICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCisgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKKyAgICAgICAg
IyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCisgICAgICAgIGlmIGxlbihmaWVsZHNbJ3VwZ3JhZGUn
XSkgIT0gMToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAn
TXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXSkK
KyAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgorICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0aW9uIGhl
YWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQorICAgICAgICBpZiBsZW4o
ZmllbGRzWydzZWMtd2Vic29ja2V0LW9yaWdpbiddKSAhPSAxOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LU9yaWdp
biBoZWFkZXJzIGZvdW5kOiAlcycgJQorICAgICAgICAgICAgICAgIGZpZWxkc1snc2VjLXNlYnNv
Y2tldC1vcmlnaW4nXSkKKyAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1sb2Nh
dGlvbiddKSAhPSAxOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUxvY2F0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAl
CisgICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0LWxvY2F0aW9uJ10pCisgICAg
ICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKKyAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1l
IGlzICJ1cGdyYWRlIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1
YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKKyAgICAgICAgIyAgdGhlbiBmYWlsIHRoZSBX
ZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGZp
ZWxkc1sndXBncmFkZSddWzBdICE9ICdXZWJTb2NrZXQnOgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVl
OiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKKyAgICAgICAgIyBpZiB0aGUgZW50cnkncyBu
YW1lIGlzICJjb25uZWN0aW9uIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRlZCB0
byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCisgICAgICAgICMgIHRvIHRo
ZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFu
ZAorICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgaWYgZmllbGRzWydjb25u
ZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6CisgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFs
dWU6ICVzJyAlCisgICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11bMF0pCisgICAg
ICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2llLCAuLgorCisg
ICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24gb2Yg
L251bWJlcl8xLywKKyAgICAgICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFuIDMyIGJpdCBp
bnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKKyAgICAgICAgIyBhcyBiaWcgZW5kaWFuIDMy
IGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4gdGhlCisgICAg
ICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhlIHdpcmUuCisgICAgICAgIGNoYWxsZW5n
ZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjEpCisgICAgICAgIGNoYWxsZW5nZSAr
PSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIyKQorICAgICAgICBjaGFsbGVuZ2UgKz0g
c2VsZi5fa2V5MworCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdD
aGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxsZW5nZSkpCisK
KyAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmluZ2VycHJpbnQg
b2YgL2NoYWxsZW5nZS8gYXMgYQorICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJpdCBzdHJpbmcu
CisgICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRpZ2VzdCgpCisg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdFeHBlY3RlZCBjaGFsbGVu
Z2UgcmVzcG9uc2U6ICVyICglcyknLAorICAgICAgICAgICAgZXhwZWN0ZWQsIHV0aWwuaGV4aWZ5
KGV4cGVjdGVkKSkKKworICAgICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5dGVzIGZyb20g
dGhlIHNlcnZlci4KKyAgICAgICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRlcy4KKyAgICAg
ICAgcmVwbHkgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCisgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAl
ciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKKworICAgICAgICAjIDQuMSA0NS4g
aWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRoZW4gZmFpbAor
ICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKAorICAgICAgICAgICAgICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoZXhwZWN0
ZWQpICE9ICVyIChhY3R1YWwpJyAlCisgICAgICAgICAgICAgICAgKGV4cGVjdGVkLCByZXBseSkp
CisgICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlzIGVzdGFibGlz
aGVkKi4KKworICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2VsZik6CisgICAg
ICAgICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMSB0
byAxMiBpbmNsdXNpdmUuCisgICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQor
ICAgICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50ZWdlciBub3Qg
Z3JlYXRlciB0aGFuCisgICAgICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBieSAvc3BhY2Vz
X24vLgorICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCisgICAgICAgICMgNC4x
IDE4LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byAvbWF4X24v
CisgICAgICAgICMgaW5jbHVzaXZlLgorICAgICAgICBudW1iZXIgPSByYW5kb20ucmFuZGludCgw
LCBtYXhudW0pCisgICAgICAgICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUgdGhlIHJlc3Vs
dCBvZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAorICAgICAgICAjIC9zcGFjZXNfbi8gdG9n
ZXRoZXIuCisgICAgICAgIHByb2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKKyAgICAgICAgIyA0LjEg
MjAuIGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1Y3Rfbi8sIGV4
cHJlc3NlZAorICAgICAgICAjIGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFscyBpbiB0aGUg
cmFuZ2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCisgICAgICAgICMgVSswMDM5IERJR0lUIE5J
TkUgKDkpLgorICAgICAgICBrZXkgPSBzdHIocHJvZHVjdCkKKyAgICAgICAgIyA0LjEgMjEuIGlu
c2VydCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZyb20gdGhlCisg
ICAgICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUrMDA3RSBpbnRv
IC9rZXlfbi8gYXQgcmFuZG9tCisgICAgICAgICMgcG9zaXRpb25zLgorICAgICAgICBhdmFpbGFi
bGVfY2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAweDdlICsgMSkK
KyAgICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQorICAgICAgICBmb3IgXyBpbiB4cmFu
Z2Uobik6CisgICAgICAgICAgICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxlX2NoYXJzKQor
ICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCisgICAgICAgICAg
ICBrZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtleVtwb3M6XQorICAgICAgICAjIDQuMSAy
Mi4gaW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50byAva2V5X24v
IGF0CisgICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0IG9yIGVuZCBv
ZiB0aGUgc3RyaW5nLgorICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToKKyAgICAgICAg
ICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihrZXkpIC0gMSkKKyAgICAgICAgICAgIGtl
eSA9IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0KKyAgICAgICAgcmV0dXJuIG51bWJlciwg
a2V5CisKKyAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2VsZik6CisgICAgICAgICMgNC4xIDI2LiBs
ZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChv
cgorICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2Rl
ZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgorICAgICAgICByZXR1cm4gJycuam9pbihbY2hyKHJh
bmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCisKKworY2xhc3MgV2Vi
U29ja2V0SGl4aWU3NUhhbmRzaGFrZShvYmplY3QpOgorICAgICIiIldlYlNvY2tldCBoYW5kc2hh
a2UgcHJvY2Vzc29yIGZvciBJRVRGIEhpeGllIDc1LiIiIgorCisgICAgX0VYUEVDVEVEX1JFU1BP
TlNFID0gKAorICAgICAgICAnSFRUUC8xLjEgMTAxIFdlYiBTb2NrZXQgUHJvdG9jb2wgSGFuZHNo
YWtlXHJcbicgKworICAgICAgICBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArCisgICAgICAgIF9D
T05ORUNUSU9OX0hFQURFUikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKKworICAgIGRlZiBfc2tpcF9oZWFkZXJzKHNlbGYp
OgorICAgICAgICB0ZXJtaW5hdG9yID0gJ1xyXG5cclxuJworICAgICAgICBwb3MgPSAwCisgICAg
ICAgIHdoaWxlIHBvcyA8IGxlbih0ZXJtaW5hdG9yKToKKyAgICAgICAgICAgIHJlY2VpdmVkID0g
cmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgICAgICBpZiByZWNlaXZlZCA9
PSB0ZXJtaW5hdG9yW3Bvc106CisgICAgICAgICAgICAgICAgcG9zICs9IDEKKyAgICAgICAgICAg
IGVsaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvclswXToKKyAgICAgICAgICAgICAgICBwb3MgPSAx
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBvcyA9IDAKKworICAgIGRlZiBo
YW5kc2hha2Uoc2VsZiwgc29ja2V0KToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0CisK
KyAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3Vy
Y2UpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVxdWVz
dC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwo
cmVxdWVzdF9saW5lKQorCisgICAgICAgIGhlYWRlcnMgPSBfVVBHUkFERV9IRUFERVJfSElYSUU3
NSArIF9DT05ORUNUSU9OX0hFQURFUgorICAgICAgICBoZWFkZXJzICs9IF9mb3JtYXRfaG9zdF9o
ZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAorICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
dXNlX3RscykKKyAgICAgICAgaGVhZGVycyArPSBfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRpb25z
Lm9yaWdpbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBy
ZXF1ZXN0IGhlYWRlcnM6ICVyJywgaGVhZGVycykKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRh
bGwoaGVhZGVycykKKworICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCcp
CisKKyAgICAgICAgZm9yIGV4cGVjdGVkX2NoYXIgaW4gV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFr
ZS5fRVhQRUNURURfUkVTUE9OU0U6CisgICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0
ZXMoc2VsZi5fc29ja2V0LCAxKQorICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY2hhciAhPSByZWNl
aXZlZDoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0hhbmRzaGFrZSBmYWlsdXJl
JykKKyAgICAgICAgIyBXZSBjdXQgY29ybmVycyBhbmQgc2tpcCBvdGhlciBoZWFkZXJzLgorICAg
ICAgICBzZWxmLl9za2lwX2hlYWRlcnMoKQorCisKK2NsYXNzIFdlYlNvY2tldFN0cmVhbShvYmpl
Y3QpOgorICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAo
UkZDIDY0NTUpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgaGFuZHNoYWtl
KToKKyAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCisgICAgICAgIHNlbGYuX3Nv
Y2tldCA9IHNvY2tldAorCisgICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGFwcGxpY2F0aW9u
IGRhdGEgcGFydCBvZiBkYXRhIGZyYW1lcy4KKyAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVf
ZmlsdGVyID0gTm9uZQorICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBOb25l
CisKKyAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1l
OgorICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gKAorICAgICAgICAg
ICAgICAgIHV0aWwuX1JGQzE5NzlEZWZsYXRlcihOb25lLCBGYWxzZSkpCisgICAgICAgICAgICBz
ZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQorCisg
ICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQorCisgICAgZGVmIF9tYXNrX2h5Ymkoc2Vs
Ziwgcyk6CisgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IG9zLnVyYW5kb20gZG9lcyBvcGVuL3Jl
YWQvY2xvc2UgZm9yIGV2ZXJ5IGNhbGwuIElmCisgICAgICAgICMgcGVyZm9ybWFuY2UgbWF0dGVy
cywgY2hhbmdlIHRoaXMgdG8gc29tZSBsaWJyYXJ5IGNhbGwgdGhhdCBnZW5lcmF0ZXMKKyAgICAg
ICAgIyBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNldWRvIHJhbmRvbSBudW1iZXIgc2VxdWVu
Y2UuCisgICAgICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCisgICAgICAgIHJlc3Vs
dCA9IFttYXNraW5nX25vbmNlXQorICAgICAgICBjb3VudCA9IDAKKyAgICAgICAgZm9yIGMgaW4g
czoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hyKG9yZChjKSBeIG9yZChtYXNraW5nX25v
bmNlW2NvdW50XSkpKQorICAgICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGxlbihtYXNr
aW5nX25vbmNlKQorICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCisKKyAgICBkZWYgc2Vu
ZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKKyAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgc2VsZi5fbWFza19oeWJpKGJvZHkpKQorCisg
ICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCBmcmFtZV90eXBlLCBlbmQ9VHJ1ZSwgbWFz
az1UcnVlLAorICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCk6CisgICAg
ICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQp
CisKKyAgICAgICAgaWYgc2VsZi5fZnJhZ21lbnRlZDoKKyAgICAgICAgICAgIG9wY29kZSA9IE9Q
Q09ERV9DT05USU5VQVRJT04KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9IGZy
YW1lX3R5cGUKKworICAgICAgICBpZiBlbmQ6CisgICAgICAgICAgICBzZWxmLl9mcmFnbWVudGVk
ID0gRmFsc2UKKyAgICAgICAgICAgIGZpbiA9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHNlbGYuX2ZyYWdtZW50ZWQgPSBUcnVlCisgICAgICAgICAgICBmaW4gPSAwCisKKyAgICAgICAg
aWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgorICAgICAgICAg
ICAgcnN2MSA9IDEKKworICAgICAgICBpZiBtYXNrOgorICAgICAgICAgICAgbWFza19iaXQgPSAx
IDw8IDcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hc2tfYml0ID0gMAorCisgICAgICAg
IGhlYWRlciA9IGNocihmaW4gPDwgNyB8IHJzdjEgPDwgNiB8IHJzdjIgPDwgNSB8IHJzdjMgPDwg
NCB8IG9wY29kZSkKKyAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9hZCkKKyAgICAg
ICAgaWYgcGF5bG9hZF9sZW5ndGggPD0gMTI1OgorICAgICAgICAgICAgaGVhZGVyICs9IGNociht
YXNrX2JpdCB8IHBheWxvYWRfbGVuZ3RoKQorICAgICAgICBlbGlmIHBheWxvYWRfbGVuZ3RoIDwg
MSA8PCAxNjoKKyAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAxMjYpICsgc3Ry
dWN0LnBhY2soJyFIJywgcGF5bG9hZF9sZW5ndGgpCisgICAgICAgIGVsaWYgcGF5bG9hZF9sZW5n
dGggPCAxIDw8IDYzOgorICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IDEyNykg
KyBzdHJ1Y3QucGFjaygnIVEnLCBwYXlsb2FkX2xlbmd0aCkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVG9vIGxvbmcgcGF5bG9hZCAoJWQgYnl0ZSknICUgcGF5
bG9hZF9sZW5ndGgpCisgICAgICAgIGlmIG1hc2s6CisgICAgICAgICAgICBwYXlsb2FkID0gc2Vs
Zi5fbWFza19oeWJpKHBheWxvYWQpCisgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRl
ciArIHBheWxvYWQpCisKKyAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgZW5kPVRy
dWUsIG1hc2s9VHJ1ZSk6CisgICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQsIE9QQ09ERV9C
SU5BUlksIGVuZCwgbWFzaykKKworICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwgZW5k
PVRydWUsIG1hc2s9VHJ1ZSk6CisgICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQuZW5jb2Rl
KCd1dGYtOCcpLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQorCisgICAgZGVmIF9hc3NlcnRfcmVj
ZWl2ZV9kYXRhKHNlbGYsIHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3YyLCByc3YzKToK
KyAgICAgICAgKGFjdHVhbF9maW4sIGFjdHVhbF9yc3YxLCBhY3R1YWxfcnN2MiwgYWN0dWFsX3Jz
djMsIGFjdHVhbF9vcGNvZGUsCisgICAgICAgICBwYXlsb2FkX2xlbmd0aCkgPSByZWFkX2ZyYW1l
X2hlYWRlcihzZWxmLl9zb2NrZXQpCisKKyAgICAgICAgaWYgYWN0dWFsX29wY29kZSAhPSBvcGNv
ZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhw
ZWN0ZWQgb3Bjb2RlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCisgICAgICAgICAg
ICAgICAgKG9wY29kZSwgYWN0dWFsX29wY29kZSkpCisKKyAgICAgICAgaWYgYWN0dWFsX2ZpbiAh
PSBmaW46CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgZmluOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCisgICAgICAgICAg
ICAgICAgKGZpbiwgYWN0dWFsX2ZpbikpCisKKyAgICAgICAgaWYgcnN2MSBpcyBOb25lOgorICAg
ICAgICAgICAgcnN2MSA9IDAKKyAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZS5fb3B0aW9u
cy51c2VfZGVmbGF0ZV9mcmFtZToKKyAgICAgICAgICAgICAgICByc3YxID0gMQorCisgICAgICAg
IGlmIHJzdjIgaXMgTm9uZToKKyAgICAgICAgICAgIHJzdjIgPSAwCisKKyAgICAgICAgaWYgcnN2
MyBpcyBOb25lOgorICAgICAgICAgICAgcnN2MyA9IDAKKworICAgICAgICBpZiBhY3R1YWxfcnN2
MSAhPSByc3YxOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIHJzdjE6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAgICAg
ICAgICAgICAgICAocnN2MSwgYWN0dWFsX3JzdjEpKQorCisgICAgICAgIGlmIGFjdHVhbF9yc3Yy
ICE9IHJzdjI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
J1VuZXhwZWN0ZWQgcnN2MjogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAg
ICAgICAgICAgIChyc3YyLCBhY3R1YWxfcnN2MikpCisKKyAgICAgICAgaWYgYWN0dWFsX3JzdjMg
IT0gcnN2MzoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAn
VW5leHBlY3RlZCByc3YzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCisgICAgICAg
ICAgICAgICAgKHJzdjMsIGFjdHVhbF9yc3YzKSkKKworICAgICAgICByZWNlaXZlZCA9IHJlY2Vp
dmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKKworICAgICAgICBpZiBzZWxm
Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZWNlaXZl
ZCA9IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocmVjZWl2ZWQpCisKKyAgICAg
ICAgaWYgbGVuKHJlY2VpdmVkKSAhPSBsZW4ocGF5bG9hZCk6CisgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZCBsZW5ndGg6ICVk
IChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAgICAobGVuKHBheWxv
YWQpLCBsZW4ocmVjZWl2ZWQpKSkKKworICAgICAgICBpZiBwYXlsb2FkICE9IHJlY2VpdmVkOgor
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVjdGVk
IHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAg
ICAocGF5bG9hZCwgcmVjZWl2ZWQpKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2JpbmFyeShz
ZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXlsb2FkLCBvcGNvZGUsIGZpbiwgcnN2MSwg
cnN2MiwgcnN2MykKKworICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYsIHBheWxvYWQs
IG9wY29kZT1PUENPREVfVEVYVCwgZmluPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnN2MT1Ob25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6CisgICAgICAgIHNlbGYuX2Fzc2VydF9y
ZWNlaXZlX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04JyksIG9wY29kZSwgZmluLCByc3YxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjIsIHJzdjMpCisKKyAgICBkZWYg
X2J1aWxkX2Nsb3NlX2ZyYW1lKHNlbGYsIGNvZGUsIHJlYXNvbiwgbWFzayk6CisgICAgICAgIGZy
YW1lID0gY2hyKDEgPDwgNyB8IE9QQ09ERV9DTE9TRSkKKworICAgICAgICBpZiBjb2RlIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsgcmVh
c29uLmVuY29kZSgndXRmLTgnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYm9keSA9ICcn
CisgICAgICAgIGlmIG1hc2s6CisgICAgICAgICAgICBmcmFtZSArPSBjaHIoMSA8PCA3IHwgbGVu
KGJvZHkpKSArIHNlbGYuX21hc2tfaHliaShib2R5KQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgZnJhbWUgKz0gY2hyKGxlbihib2R5KSkgKyBib2R5CisgICAgICAgIHJldHVybiBmcmFtZQor
CisgICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKKyAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoCisgICAgICAgICAgICBzZWxmLl9idWlsZF9jbG9zZV9mcmFtZShjb2Rl
LCByZWFzb24sIFRydWUpKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNv
ZGUsIHJlYXNvbik6CisgICAgICAgIGV4cGVjdGVkX2ZyYW1lID0gc2VsZi5fYnVpbGRfY2xvc2Vf
ZnJhbWUoY29kZSwgcmVhc29uLCBGYWxzZSkKKyAgICAgICAgYWN0dWFsX2ZyYW1lID0gcmVjZWl2
ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihleHBlY3RlZF9mcmFtZSkpCisgICAgICAgIGlmIGFj
dHVhbF9mcmFtZSAhPSBleHBlY3RlZF9mcmFtZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKKyAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBjbG9zZSBmcmFtZTogJXIgKGV4cGVjdGVk
KSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIChleHBlY3RlZF9mcmFtZSwgYWN0
dWFsX2ZyYW1lKSkKKworCitjbGFzcyBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KG9iamVjdCk6Cisg
ICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24g
SGl4aWUgNzUgYW5kIEh5QmkgMDAuCisgICAgIiIiCisKKyAgICBfQ0xPU0VfRlJBTUUgPSAnXHhm
Zlx4MDAnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCB1bnVzZWRfaGFuZHNoYWtl
KToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0CisKKyAgICBkZWYgc2VuZF9mcmFtZV9v
Zl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKKyAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoaGVhZGVyICsgYm9keSkKKworICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwgcGF5
bG9hZCwgdW51c2VkX2ZyYW1lX3R5cGVtLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6CisgICAg
ICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAnLCBwYXlsb2FkLCAnXHhmZiddKQorICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKKworICAgIGRlZiBzZW5kX2JpbmFyeShzZWxmLCB1
bnVzZWRfcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgorICAgICAgICBwYXNzCisK
KyAgICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIHVudXNlZF9lbmQsIHVudXNlZF9tYXNr
KToKKyAgICAgICAgZW5jb2RlZF9wYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoJ3V0Zi04JykKKyAg
ICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIGVuY29kZWRfcGF5bG9hZCwgJ1x4ZmYnXSkK
KyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJhbWUpCisKKyAgICBkZWYgYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBmaW49MSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTApOgor
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0JpbmFyeSBmcmFtZSBpcyBub3Qgc3VwcG9ydGVkIGlu
IGhpeGllNzUnKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwgcGF5bG9hZCk6
CisgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisKKyAg
ICAgICAgaWYgcmVjZWl2ZWQgIT0gJ1x4MDAnOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAorICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZyYW1lIHR5cGU6ICVkIChleHBlY3RlZCkg
dnMgJWQgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAgICAoMCwgb3JkKHJlY2VpdmVkKSkpCisK
KyAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKHBheWxv
YWQpICsgMSkKKyAgICAgICAgaWYgcmVjZWl2ZWRbLTFdICE9ICdceGZmJzoKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnVGVybWluYXRpb24gZXhwZWN0ZWQ6
IDB4ZmYgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIHJlY2Vp
dmVkKQorCisgICAgICAgIGlmIHJlY2VpdmVkWzA6LTFdICE9IHBheWxvYWQ6CisgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZDog
JXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIChwYXlsb2Fk
LCByZWNlaXZlZFswOi0xXSkpCisKKyAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlLCByZWFz
b24pOgorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9DTE9TRV9GUkFNRSkKKwor
ICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCB1bnVzZWRfY29kZSwgdW51c2VkX3Jl
YXNvbik6CisgICAgICAgIGNsb3NpbmcgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVu
KHNlbGYuX0NMT1NFX0ZSQU1FKSkKKyAgICAgICAgaWYgY2xvc2luZyAhPSBzZWxmLl9DTE9TRV9G
UkFNRToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3Np
bmcgaGFuZHNoYWtlJykKKworCitjbGFzcyBDbGllbnRPcHRpb25zKG9iamVjdCk6CisgICAgIiIi
SG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgdGhlIENsaWVudCBvYmplY3QuIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYudmVyc2lvbiA9IDEzCisgICAg
ICAgIHNlbGYuc2VydmVyX2hvc3QgPSAnJworICAgICAgICBzZWxmLm9yaWdpbiA9ICcnCisgICAg
ICAgIHNlbGYucmVzb3VyY2UgPSAnJworICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gLTEKKyAg
ICAgICAgc2VsZi5zb2NrZXRfdGltZW91dCA9IDEwMDAKKyAgICAgICAgc2VsZi51c2VfdGxzID0g
RmFsc2UKKyAgICAgICAgc2VsZi5leHRlbnNpb25zID0gW10KKyAgICAgICAgIyBFbmFibGUgZGVm
bGF0ZS1hcHBsaWNhdGlvbi1kYXRhLgorICAgICAgICBzZWxmLnVzZV9kZWZsYXRlX2ZyYW1lID0g
RmFsc2UKKyAgICAgICAgIyBFbmFibGUgbXV4CisgICAgICAgIHNlbGYudXNlX211eCA9IEZhbHNl
CisKKyAgICBkZWYgZW5hYmxlX2RlZmxhdGVfZnJhbWUoc2VsZik6CisgICAgICAgIHNlbGYudXNl
X2RlZmxhdGVfZnJhbWUgPSBUcnVlCisgICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5hcHBlbmQoX0RF
RkxBVEVfRlJBTUVfRVhURU5TSU9OKQorCisgICAgZGVmIGVuYWJsZV9tdXgoc2VsZik6CisgICAg
ICAgIHNlbGYudXNlX211eCA9IFRydWUKKyAgICAgICAgc2VsZi5leHRlbnNpb25zLmFwcGVuZChf
TVVYX0VYVEVOU0lPTikKKworCitkZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeShob3N0LCBw
b3J0LCB0aW1lb3V0LCB1c2VfdGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
cnk9MTAsIHNsZWVwX3NlYz0wLjEpOgorICAgIHJldHJ5X2NvdW50ID0gMAorICAgIHdoaWxlIHJl
dHJ5X2NvdW50IDwgcmV0cnk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMgPSBzb2NrZXQu
c29ja2V0KCkKKyAgICAgICAgICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQorICAgICAgICAgICAg
cy5jb25uZWN0KChob3N0LCBwb3J0KSkKKyAgICAgICAgICAgIGlmIHVzZV90bHM6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIF9UTFNTb2NrZXQocykKKyAgICAgICAgICAgIHJldHVybiBzCisgICAg
ICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVy
cm5vLkVDT05OUkVGVVNFRDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICByZXRyeV9jb3VudCA9IHJldHJ5X2NvdW50ICsgMQorICAgICAg
ICAgICAgICAgIHRpbWUuc2xlZXAoc2xlZXBfc2VjKQorCisgICAgcmV0dXJuIE5vbmUKKworCitj
bGFzcyBDbGllbnQob2JqZWN0KToKKyAgICAiIiJXZWJTb2NrZXQgY2xpZW50LiIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIGhhbmRzaGFrZSwgc3RyZWFtX2NsYXNzKToKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQor
CisgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGhhbmRzaGFrZQorICAgICAgICBzZWxmLl9zdHJl
YW1fY2xhc3MgPSBzdHJlYW1fY2xhc3MKKworICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAg
ICBzZWxmLl9zb2NrZXQgPSBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KAorICAgICAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNvY2tldF90
aW1lb3V0LAorICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykKKworICAgICAg
ICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3NvY2tldCkKKworICAgICAgICBzZWxm
Ll9zdHJlYW0gPSBzZWxmLl9zdHJlYW1fY2xhc3Moc2VsZi5fc29ja2V0LCBzZWxmLl9oYW5kc2hh
a2UpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQn
KQorCisgICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNlbGYsIGhlYWRlciwg
Ym9keSk6CisgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRl
cyhoZWFkZXIsIGJvZHkpCisKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVu
ZD1UcnVlLCBiaW5hcnk9RmFsc2UsIHJhdz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIG1h
c2s9VHJ1ZSk6CisgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5z
ZW5kX2JpbmFyeShtZXNzYWdlLCBlbmQsIG1hc2spCisgICAgICAgIGVsaWYgcmF3OgorICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZGF0YShtZXNzYWdlLCBPUENPREVfVEVYVCwgZW5kLCBt
YXNrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfdGV4dCht
ZXNzYWdlLCBlbmQsIG1hc2spCisKKyAgICBkZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgcGF5bG9h
ZCwgYmluYXJ5PUZhbHNlKToKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgc2VsZi5f
c3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeShwYXlsb2FkKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX3RleHQocGF5bG9hZCkKKworICAg
IGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGU9U1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249
JycpOgorICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZShjb2RlLCByZWFzb24pCisKKyAg
ICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NMT1NV
UkUsIHJlYXNvbj0nJyk6CisgICAgICAgIHNlbGYuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9jbG9z
ZShjb2RlLCByZWFzb24pCisKKyAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYpOgorICAgICAgICBz
ZWxmLl9zb2NrZXQuY2xvc2UoKQorCisgICAgZGVmIGFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZChz
ZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVhZF9kYXRhID0gcmVjZWl2ZV9ieXRl
cyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAg
ICAgICBpZiBzdHIoZSkuZmluZCgKKyAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQg
YmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcpID09IDA6CisgICAgICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXJyb3JfbnVtYmVy
LCBtZXNzYWdlID0gZQorICAgICAgICAgICAgICAgIGZvciBlcnJvcl9uYW1lIGluIFsnRUNPTk5S
RVNFVCcsICdXU0FFQ09OTlJFU0VUJ106CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcl9u
YW1lIGluIGRpcihlcnJubykgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9udW1i
ZXIgPT0gZ2V0YXR0cihlcnJubywgZXJyb3JfbmFtZSkpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcmFpc2UgZQor
ICAgICAgICAgICAgcmFpc2UgZQorCisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ29ubmVjdGlv
biBpcyBub3QgY2xvc2VkIChSZWFkOiAlciknICUgcmVhZF9kYXRhKQorCisKK2RlZiBjcmVhdGVf
Y2xpZW50KG9wdGlvbnMpOgorICAgIHJldHVybiBDbGllbnQoCisgICAgICAgIG9wdGlvbnMsIFdl
YlNvY2tldEhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29ja2V0U3RyZWFtKQorCisKK2RlZiBjcmVh
dGVfY2xpZW50X2h5YmkwMChvcHRpb25zKToKKyAgICByZXR1cm4gQ2xpZW50KAorICAgICAgICBv
cHRpb25zLAorICAgICAgICBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob3B0aW9ucywgJzAnKSwK
KyAgICAgICAgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKKworCitkZWYgY3JlYXRlX2NsaWVudF9o
aXhpZTc1KG9wdGlvbnMpOgorICAgIHJldHVybiBDbGllbnQoCisgICAgICAgIG9wdGlvbnMsIFdl
YlNvY2tldEhpeGllNzVIYW5kc2hha2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVhbUhpeGllNzUp
CisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRf
d2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5h
bF9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmODZmZGI0MTYzZDRlNzM4OTUyYjNjY2I3N2YxOTIx
NmJjNTkxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVy
bmFsX3NlcnZlci5weQpAQCAtMCwwICsxLDY3IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRlc3QgZm9yIGVuZC10by1lbmQgd2l0aCBleHRlcm5h
bCBzZXJ2ZXIuCisKK1RoaXMgdGVzdCBpcyBub3QgcnVuIGJ5IHJ1bl9hbGwucHkgYmVjYXVzZSBp
dCByZXF1aXJlcyBzb21lIHByZXBhcmF0aW9ucy4KK0lmIHlvdSB3b3VsZCBsaWtlIHRvIHJ1biB0
aGlzIHRlc3QgY29ycmVjdGx5LCBsYXVuY2ggQXBhY2hlIHdpdGggbW9kX3B5dGhvbgorYW5kIG1v
ZF9weXdlYnNvY2tldCBtYW51YWxseS4gSW4gYWRkaXRpb24sIHlvdSBzaG91bGQgcGFzcyBhbGxv
d19kcmFmdDc1IG9wdGlvbgorYW5kIGV4YW1wbGUgcGF0aCBhcyBoYW5kbGVyX3NjYW4gb3B0aW9u
IGFuZCBBcGFjaGUncyBEb2N1bWVudFJvb3QuCisiIiIKKworCitpbXBvcnQgb3B0cGFyc2UKK2lt
cG9ydCBzeXMKK2ltcG9ydCB0ZXN0LnRlc3RfZW5kdG9lbmQKK2ltcG9ydCB1bml0dGVzdAorCisK
K19ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCisKKworY2xhc3MgRW5kVG9FbmRUZXN0V2l0
aEV4dGVybmFsU2VydmVyKHRlc3QudGVzdF9lbmR0b2VuZC5FbmRUb0VuZFRlc3QpOgorICAgIHBh
c3MKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5P
cHRpb25QYXJzZXIoKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0
PSdwb3J0JywgdHlwZT0naW50JywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZB
VUxUX1dFQl9TT0NLRVRfUE9SVCwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdleHRlcm5h
bCB0ZXN0IHNlcnZlciBwb3J0LicpCisgICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNl
X2FyZ3MoKQorCisgICAgdGVzdC50ZXN0X2VuZHRvZW5kLl91c2VfZXh0ZXJuYWxfc2VydmVyID0g
VHJ1ZQorICAgIHRlc3QudGVzdF9lbmR0b2VuZC5fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSBvcHRp
b25zLnBvcnQKKworICAgIHVuaXR0ZXN0Lm1haW4oYXJndj1bc3lzLmFyZ3ZbMF1dKQorCisKKyMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvbW9jay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNkMDEyOTc1NDI0
MDQ4ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkKQEAgLTAsMCArMSwy
MjEgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmli
dXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIk1vY2tzIGZvciB0ZXN0aW5nLgorIiIiCisK
KworaW1wb3J0IFF1ZXVlCitpbXBvcnQgdGhyZWFkaW5nCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFt
SGl4aWU3NQorCisKK2NsYXNzIF9Nb2NrQ29ubkJhc2Uob2JqZWN0KToKKyAgICAiIiJCYXNlIGNs
YXNzIG9mIG1vY2tzIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgorCisgICAgVGhpcyBl
bmFibGVzIHRlc3RzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBhIChtb2NrKSBtcF9jb25u
LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl93cml0
ZV9kYXRhID0gW10KKyAgICAgICAgc2VsZi5yZW1vdGVfYWRkciA9ICdmYWtlX2FkZHJlc3MnCisK
KyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRo
b24uYXBhY2hlLm1wX2Nvbm4ud3JpdGUuIiIiCisKKyAgICAgICAgc2VsZi5fd3JpdGVfZGF0YS5h
cHBlbmQoZGF0YSkKKworICAgIGRlZiB3cml0dGVuX2RhdGEoc2VsZik6CisgICAgICAgICIiIkdl
dCBieXRlcyB3cml0dGVuIHRvIHRoaXMgbW9jay4iIiIKKworICAgICAgICByZXR1cm4gJycuam9p
bihzZWxmLl93cml0ZV9kYXRhKQorCisKK2NsYXNzIE1vY2tDb25uKF9Nb2NrQ29ubkJhc2UpOgor
ICAgICIiIk1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCisKKyAgICBUaGlzIGVu
YWJsZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20gYSAobW9jaykg
bXBfY29ubiBhcworICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGl0Lgor
ICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYWRfZGF0YSk6CisgICAgICAgICIi
IkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJl
YWRfZGF0YTogYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgd2hlbiByZWFkKiBtZXRob2Rz
IGFyZQorICAgICAgICAgICAgY2FsbGVkLgorICAgICAgICAiIiIKKworICAgICAgICBfTW9ja0Nv
bm5CYXNlLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX3JlYWRfZGF0YSA9IHJlYWRfZGF0
YQorICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IDAKKworICAgIGRlZiByZWFkbGluZShzZWxmKToK
KyAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkbGluZS4i
IiIKKworICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVhZF9kYXRhKToK
KyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBlbmRfaW5kZXggPSBzZWxmLl9yZWFkX2Rh
dGEuZmluZCgnXG4nLCBzZWxmLl9yZWFkX3BvcykgKyAxCisgICAgICAgIGlmIG5vdCBlbmRfaW5k
ZXg6CisgICAgICAgICAgICBlbmRfaW5kZXggPSBsZW4oc2VsZi5fcmVhZF9kYXRhKQorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCisKKyAgICBkZWYgcmVhZChzZWxm
LCBsZW5ndGgpOgorICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25u
LnJlYWQuIiIiCisKKyAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNlbGYuX3JlYWRf
ZGF0YSk6CisgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgZW5kX2luZGV4ID0gbWluKGxl
bihzZWxmLl9yZWFkX2RhdGEpLCBzZWxmLl9yZWFkX3BvcyArIGxlbmd0aCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQorCisgICAgZGVmIF9yZWFkX3VwX3RvKHNl
bGYsIGVuZF9pbmRleCk6CisgICAgICAgIGxpbmUgPSBzZWxmLl9yZWFkX2RhdGFbc2VsZi5fcmVh
ZF9wb3M6ZW5kX2luZGV4XQorICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IGVuZF9pbmRleAorICAg
ICAgICByZXR1cm4gbGluZQorCisKK2NsYXNzIE1vY2tCbG9ja2luZ0Nvbm4oX01vY2tDb25uQmFz
ZSk6CisgICAgIiIiQmxvY2tpbmcgbW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4K
KworICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJlYWQg
ZnJvbSBhIChtb2NrKSBtcF9jb25uIGFzCisgICAgd2VsbCBhcyB0byBjaGVjayB3aGF0IGlzIHdy
aXR0ZW4gdG8gaXQuCisgICAgQ2FsbGVycyBvZiByZWFkKiBtZXRob2RzIHdpbGwgYmxvY2sgaWYg
dGhlcmUgaXMgbm8gYnl0ZXMgYXZhaWxhYmxlLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgorICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNl
bGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgZGVmIHJlYWRsaW5lKHNlbGYpOgorICAg
ICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRsaW5lLiIiIgor
ICAgICAgICBsaW5lID0gJycKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGMgPSBz
ZWxmLl9xdWV1ZS5nZXQoKQorICAgICAgICAgICAgbGluZSArPSBjCisgICAgICAgICAgICBpZiBj
ID09ICdcbic6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKKworICAgIGRlZiByZWFkKHNl
bGYsIGxlbmd0aCk6CisgICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nv
bm4ucmVhZC4iIiIKKworICAgICAgICBkYXRhID0gJycKKyAgICAgICAgZm9yIHVudXNlZCBpbiBy
YW5nZShsZW5ndGgpOgorICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9xdWV1ZS5nZXQoKQorICAg
ICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIHB1dF9ieXRlcyhzZWxmLCBieXRlcyk6CisgICAg
ICAgICIiIlB1dCBieXRlcyB0byBiZSByZWFkIGZyb20gdGhpcyBtb2NrLgorCisgICAgICAgIEFy
Z3M6CisgICAgICAgICAgICBieXRlczogYnl0ZXMgdG8gYmUgcmVhZC4KKyAgICAgICAgIiIiCisK
KyAgICAgICAgZm9yIGJ5dGUgaW4gYnl0ZXM6CisgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQo
Ynl0ZSkKKworCitjbGFzcyBNb2NrVGFibGUoZGljdCk6CisgICAgIiIiTW9jayB0YWJsZS4KKwor
ICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gbXBfdGFibGUuIE5vdGUgdGhhdCBvbmx5IHRoZSBt
ZXRob2RzIHVzZWQgYnkKKyAgICB0ZXN0cyBhcmUgb3ZlcnJpZGRlbi4KKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjb3B5X2Zyb209e30pOgorICAgICAgICBpZiBpc2luc3RhbmNl
KGNvcHlfZnJvbSwgZGljdCk6CisgICAgICAgICAgICBjb3B5X2Zyb20gPSBjb3B5X2Zyb20uaXRl
bXMoKQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjb3B5X2Zyb206CisgICAgICAgICAgICBz
ZWxmLl9fc2V0aXRlbV9fKGtleSwgdmFsdWUpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwg
a2V5KToKKyAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19nZXRpdGVtX18o
a2V5Lmxvd2VyKCkpCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6Cisg
ICAgICAgIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19zZXRpdGVtX18oa2V5Lmxvd2VyKCksIHZh
bHVlKQorCisgICAgZGVmIGdldChzZWxmLCBrZXksIGRlZl92YWx1ZT1Ob25lKToKKyAgICAgICAg
cmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuZ2V0KGtleS5sb3dlcigpLCBkZWZfdmFsdWUp
CisKKworY2xhc3MgTW9ja1JlcXVlc3Qob2JqZWN0KToKKyAgICAiIiJNb2NrIHJlcXVlc3QuCisK
KyAgICBUaGlzIG1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgdXJpPU5vbmUsIGhlYWRlcnNfaW49e30sIGNvbm5lY3Rpb249Tm9uZSwg
bWV0aG9kPSdHRVQnLAorICAgICAgICAgICAgICAgICBwcm90b2NvbD0nSFRUUC8xLjEnLCBpc19o
dHRwcz1GYWxzZSk6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAg
ICBBcmd1bWVudHM6CisgICAgICAgICAgICB1cmk6IFVSSSBvZiB0aGUgcmVxdWVzdC4KKyAgICAg
ICAgICAgIGhlYWRlcnNfaW46IFJlcXVlc3QgaGVhZGVycy4KKyAgICAgICAgICAgIGNvbm5lY3Rp
b246IENvbm5lY3Rpb24gdXNlZCBmb3IgdGhlIHJlcXVlc3QuCisgICAgICAgICAgICBtZXRob2Q6
IHJlcXVlc3QgbWV0aG9kLgorICAgICAgICAgICAgaXNfaHR0cHM6IFdoZXRoZXIgdGhpcyByZXF1
ZXN0IGlzIG92ZXIgU1NMLgorCisgICAgICAgIFNlZSB0aGUgZG9jdW1lbnQgb2YgbW9kX3B5dGhv
biBSZXF1ZXN0IGZvciBkZXRhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi51cmkgPSB1
cmkKKyAgICAgICAgc2VsZi51bnBhcnNlZF91cmkgPSB1cmkKKyAgICAgICAgc2VsZi5jb25uZWN0
aW9uID0gY29ubmVjdGlvbgorICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAorICAgICAgICBz
ZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gTW9ja1Rh
YmxlKGhlYWRlcnNfaW4pCisgICAgICAgICMgc2VsZi5pc19odHRwc18gbmVlZHMgdG8gYmUgYWNj
ZXNzaWJsZSBmcm9tIHRlc3RzLiAgVG8gYXZvaWQgbmFtZQorICAgICAgICAjIGNvbmZsaWN0IHdp
dGggc2VsZi5pc19odHRwcygpLCBpdCBpcyBuYW1lZCBhcyBzdWNoLgorICAgICAgICBzZWxmLmlz
X2h0dHBzXyA9IGlzX2h0dHBzCisgICAgICAgIHNlbGYud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3
NShzZWxmLCBUcnVlKQorICAgICAgICBzZWxmLndzX2Nsb3NlX2NvZGUgPSBOb25lCisgICAgICAg
IHNlbGYud3NfY2xvc2VfcmVhc29uID0gTm9uZQorICAgICAgICBzZWxmLndzX3ZlcnNpb24gPSBj
b21tb24uVkVSU0lPTl9IWUJJMDAKKyAgICAgICAgc2VsZi53c19kZWZsYXRlID0gRmFsc2UKKwor
ICAgIGRlZiBpc19odHRwcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhpcyBy
ZXF1ZXN0IGlzIG92ZXIgU1NMLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5pc19odHRwc18KKwor
CitjbGFzcyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgorICAgICIiIk1vY2sgZm9yIGRpc3BhdGNo
LkRpc3BhdGNoZXIuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYu
ZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCA9IEZhbHNlCisKKyAgICBkZWYgZG9fZXh0cmFfaGFu
ZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6CisgICAgICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNo
YWtlX2NhbGxlZCA9IFRydWUKKworICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29u
dGV4dCk6CisgICAgICAgIHBhc3MKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9jbGll
bnRfZm9yX3Rlc3RpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1NDM1YThjYzBlMjc1NWM1ODNjMzZkMGNl
YWYzZjNmZjYwMjFiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zv
cl90ZXN0aW5nLnB5CkBAIC0wLDAgKzEsNjkwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3IgdGVz
dGluZyBtdXggZXh0ZW5zaW9uLgorCitUaGlzIGNvZGUgc2hvdWxkIGJlIGluZGVwZW5kZW50IGZy
b20gbW9kX3B5d2Vic29ja2V0LiBTZWUgdGhlIGNvbW1lbnQgb2YKK2NsaWVudF9mb3JfdGVzdGlu
Zy5weS4KKworTk9URTogVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCBsaWtlIGNsaWVudF9m
b3JfdGVzdGluZy5weS4KKyIiIgorCisKKworaW1wb3J0IFF1ZXVlCitpbXBvcnQgYmFzZTY0Citp
bXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBlbWFpbAoraW1wb3J0IGVtYWlsLnBhcnNlcgoraW1w
b3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCitpbXBvcnQgb3MKK2ltcG9ydCByYW5kb20KK2ltcG9y
dCBzb2NrZXQKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0aHJlYWRpbmcKKworZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IHV0aWwKKworZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3Rp
bmcKKworCitfQ09OVFJPTF9DSEFOTkVMX0lEID0gMAorX0RFRkFVTFRfQ0hBTk5FTF9JRCA9IDEK
KworX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKK19NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFU1BPTlNFID0gMQorX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgorX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMID0gMworX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9IDQK
KworCitjbGFzcyBfQ29udHJvbEJsb2NrOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUp
OgorICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQorCisKK2RlZiBfcGFyc2VfaGFuZHNoYWtl
X3Jlc3BvbnNlKHJlc3BvbnNlKToKKyAgICBzdGF0dXNfbGluZSwgaGVhZGVyX2xpbmVzID0gcmVz
cG9uc2Uuc3BsaXQoJ1xyXG4nLCAxKQorCisgICAgd29yZHMgPSBzdGF0dXNfbGluZS5zcGxpdCgn
ICcpCisgICAgaWYgbGVuKHdvcmRzKSA8IDM6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Jh
ZCBTdGF0dXMtTGluZSBzeW50YXggJXInICUgc3RhdHVzX2xpbmUpCisgICAgW3ZlcnNpb24sIHJl
c3BvbnNlX2NvZGVdID0gd29yZHNbOjJdCisgICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgor
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgdmVyc2lvbiAlcicgJSB2ZXJz
aW9uKQorCisgICAgaWYgcmVzcG9uc2VfY29kZSAhPSAnMTAxJzoKKyAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignQmFkIHJlc3BvbnNlIGNvZGUgJXIgJyAlIHJlc3BvbnNlX2NvZGUpCisgICAgaGVh
ZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCisgICAg
cmV0dXJuIGhlYWRlcnMKKworCitkZWYgX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgb2Zmc2V0PTAp
OgorICAgIGxlbmd0aCA9IGxlbihkYXRhKQorICAgIHJlbWFpbmluZyA9IGxlbmd0aCAtIG9mZnNl
dAorCisgICAgaWYgcmVtYWluaW5nIDw9IDA6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8g
Y2hhbm5lbCBpZCBmb3VuZCcpCisKKyAgICBjaGFubmVsX2lkID0gb3JkKGRhdGFbb2Zmc2V0XSkK
KyAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKKyAgICBpZiBjaGFubmVsX2lkICYgMHhlMCA9PSAw
eGUwOgorICAgICAgICBpZiByZW1haW5pbmcgPCA0OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKKyAgICAgICAgY2hhbm5lbF9pZCA9IHN0
cnVjdC51bnBhY2soJyFMJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YVtvZmZzZXQ6b2Zmc2V0KzRdKVswXSAmIDB4MWZmZmZmZmYKKyAgICAgICAgY2hhbm5lbF9pZF9s
ZW5ndGggPSA0CisgICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgorICAgICAgICBp
ZiByZW1haW5pbmcgPCAzOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGNo
YW5uZWwgaWQgZm9ybWF0JykKKyAgICAgICAgY2hhbm5lbF9pZCA9ICgoKGNoYW5uZWxfaWQgJiAw
eDFmKSA8PCAxNikgKworICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soJyFIJywg
ZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdKQorICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9
IDMKKyAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6CisgICAgICAgIGlmIHJlbWFp
bmluZyA8IDI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5lbCBp
ZCBmb3JtYXQnKQorICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgnLCBkYXRh
W29mZnNldDpvZmZzZXQrMl0pWzBdICYgMHgzZmZmCisgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3Ro
ID0gMgorCisgICAgcmV0dXJuIGNoYW5uZWxfaWQsIGNoYW5uZWxfaWRfbGVuZ3RoCisKKworZGVm
IF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0PTApOgorICAgIGZpcnN0X2J5dGUgPSBvcmQoZGF0
YVtvZmZzZXRdKQorICAgIGlmIChmaXJzdF9ieXRlICYgMHg4MCkgIT0gMDoKKyAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUaGUgTVNCIG9mIG51bWJlciBmaWVsZCBtdXN0IGJlIHVuc2V0JykKKyAg
ICBmaXJzdF9ieXRlID0gZmlyc3RfYnl0ZSAmIDB4N2YKKyAgICBpZiBmaXJzdF9ieXRlID09IDEy
NzoKKyAgICAgICAgaWYgb2Zmc2V0ICsgOSA+IGxlbihkYXRhKToKKyAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQorICAgICAgICByZXR1cm4gc3RydWN0LnVucGFj
aygnIVEnLCBkYXRhW29mZnNldCsxOm9mZnNldCs5XSlbMF0sIDkKKyAgICBpZiBmaXJzdF9ieXRl
ID09IDEyNjoKKyAgICAgICAgaWYgb2Zmc2V0ICsgMyA+IGxlbihkYXRhKToKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQorICAgICAgICByZXR1cm4gc3RydWN0
LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0sIDMKKyAgICByZXR1cm4g
Zmlyc3RfYnl0ZSwgMQorCisKK2RlZiBfcGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgb2Zm
c2V0PTApOgorICAgIHNpemUsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNldCkK
KyAgICBzdGFydF9wb3NpdGlvbiA9IG9mZnNldCArIGFkdmFuY2UKKyAgICBlbmRfcG9zaXRpb24g
PSBzdGFydF9wb3NpdGlvbiArIHNpemUKKyAgICBpZiBsZW4oZGF0YSkgPCBlbmRfcG9zaXRpb246
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBzaXplIG9mIGNvbnRyb2wgYmxvY2sg
KCVkIDwgJWQpJyAlICgKKyAgICAgICAgICAgICAgICBsZW4oZGF0YSksIGVuZF9wb3NpdGlvbikp
CisgICAgcmV0dXJuIGRhdGFbc3RhcnRfcG9zaXRpb246ZW5kX3Bvc2l0aW9uXSwgc2l6ZSArIGFk
dmFuY2UKKworCitkZWYgX3BhcnNlX2NvbnRyb2xfYmxvY2tzKGRhdGEpOgorICAgIGJsb2NrcyA9
IFtdCisgICAgbGVuZ3RoID0gbGVuKGRhdGEpCisgICAgcG9zID0gMAorCisgICAgd2hpbGUgcG9z
IDwgbGVuZ3RoOgorICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbcG9zXSkKKyAgICAgICAg
cG9zICs9IDEKKyAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAweDcKKyAgICAg
ICAgYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZSkKKworICAgICAgICAjIFRPRE8oYmFzaGkp
OiBTdXBwb3J0IG1vcmUgb3Bjb2RlCisgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVNQT05TRToKKyAgICAgICAgICAgIGJsb2NrLmVuY29kZSA9IGZpcnN0X2J5
dGUgJiAzCisgICAgICAgICAgICBibG9jay5yZWplY3RlZCA9IChmaXJzdF9ieXRlID4+IDQpICYg
MQorCisgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQo
ZGF0YSwgcG9zKQorICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKKyAg
ICAgICAgICAgIHBvcyArPSBhZHZhbmNlCisKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
LCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBvcykKKyAgICAgICAg
ICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hha2UKKyAgICAgICAg
ICAgIHBvcyArPSBhZHZhbmNlCisgICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQorICAg
ICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6CisgICAgICAgICAg
ICBibG9jay5tdXhfZXJyb3IgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKKworICAgICAgICAgICAg
Y2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKKyAgICAg
ICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCisgICAgICAgICAgICBwb3MgKz0g
YWR2YW5jZQorCisgICAgICAgICAgICByZWFzb24sIGFkdmFuY2UgPSBfcGFyc2Vfc2l6ZV9hbmRf
Y29udGVudHMoZGF0YSwgcG9zKQorICAgICAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoKKyAg
ICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBOb25lCisgICAgICAgICAgICAgICAgYmxv
Y2suZHJvcF9tZXNzYWdlID0gJycKKyAgICAgICAgICAgIGVsaWYgbGVuKHJlYXNvbikgPj0gMjoK
KyAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJl
YXNvbls6Ml0pWzBdCisgICAgICAgICAgICAgICAgYmxvY2suZHJvcF9tZXNzYWdlID0gcmVhc29u
WzI6XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0ludmFsaWQgRHJvcENoYW5uZWwnKQorICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKKyAgICAg
ICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCisgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhf
T1BDT0RFX0ZMT1dfQ09OVFJPTDoKKyAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBf
cGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCisgICAgICAgICAgICBibG9jay5jaGFubmVsX2lk
ID0gY2hhbm5lbF9pZAorICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKKyAgICAgICAgICAgIHNl
bmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKKyAgICAgICAgICAg
IGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgICAgICBwb3MgKz0gYWR2YW5j
ZQorICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKKyAgICAgICAgZWxpZiBvcGNvZGUg
PT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKKyAgICAgICAgICAgIGZhbGxiYWNrID0g
Zmlyc3RfYnl0ZSAmIDEKKyAgICAgICAgICAgIHNsb3RzLCBhZHZhbmNlID0gX3BhcnNlX251bWJl
cihkYXRhLCBwb3MpCisgICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQorICAgICAgICAgICAgc2Vu
ZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQorICAgICAgICAgICAg
cG9zICs9IGFkdmFuY2UKKyAgICAgICAgICAgIGlmIGZhbGxiYWNrID09IDEgYW5kIChzbG90cyAh
PSAwIG9yIHNlbmRfcXVvdGEgIT0gMCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIHplcm8gaWYgRiBiaXQgJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaXMgc2V0JykKKyAgICAgICAgICAgIGJsb2NrLmZhbGxi
YWNrID0gZmFsbGJhY2sKKyAgICAgICAgICAgIGJsb2NrLnNsb3RzID0gc2xvdHMKKyAgICAgICAg
ICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgICAgICBibG9ja3MuYXBw
ZW5kKGJsb2NrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAor
ICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBtdXggb3Bjb2RlICVkIHJlY2VpdmVkJyAlIG9w
Y29kZSkKKworICAgIHJldHVybiBibG9ja3MKKworCitkZWYgX2VuY29kZV9jaGFubmVsX2lkKGNo
YW5uZWxfaWQpOgorICAgIGlmIGNoYW5uZWxfaWQgPCAwOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNoYW5uZWxfaWQpCisK
KyAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgorICAgICAgICByZXR1cm4gY2hyKGNoYW5uZWxf
aWQpCisgICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6CisgICAgICAgIHJldHVybiBzdHJ1Y3Qu
cGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQorICAgIGlmIGNoYW5uZWxfaWQgPCAyICoq
IDIxOgorICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQgPj4gMTYpKQorICAg
ICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVsX2lkICYgMHhmZmZm
KQorICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgorICAgICAgICByZXR1cm4gc3RydWN0LnBh
Y2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCisKKyAgICByYWlzZSBWYWx1ZUVycm9y
KCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQorCisKK2RlZiBfZW5j
b2RlX251bWJlcihudW1iZXIpOgorICAgIGlmIG51bWJlciA8PSAxMjU6CisgICAgICAgIHJldHVy
biBjaHIobnVtYmVyKQorICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgMTYpOgorICAgICAgICByZXR1
cm4gY2hyKDB4N2UpICsgc3RydWN0LnBhY2soJyFIJywgbnVtYmVyKQorICAgIGVsaWYgbnVtYmVy
IDwgKDEgPDwgNjMpOgorICAgICAgICByZXR1cm4gY2hyKDB4N2YpICsgc3RydWN0LnBhY2soJyFR
JywgbnVtYmVyKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBu
dW1iZXInKQorCisKK2RlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3QoY2hhbm5lbF9pZCwg
ZW5jb2RlZF9oYW5kc2hha2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29k
aW5nPTApOgorICAgIGxlbmd0aCA9IGxlbihlbmNvZGVkX2hhbmRzaGFrZSkKKyAgICBoYW5kc2hh
a2VfbGVuZ3RoID0gX2VuY29kZV9udW1iZXIobGVuZ3RoKQorCisgICAgZmlyc3RfYnl0ZSA9IChf
TVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2RpbmcKKyAgICByZXR1
cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCisg
ICAgICAgICAgICBoYW5kc2hha2VfbGVuZ3RoICsgZW5jb2RlZF9oYW5kc2hha2UpCisKKworZGVm
IF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKKyAg
ICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1KQorICAgIHJldHVy
biAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKKyAg
ICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkKKworCitjbGFzcyBf
TXV4UmVhZGVyVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgorICAgICIiIk11eCByZWFkZXIgdGhy
ZWFkLgorCisgICAgUmVhZHMgZnJhbWVzIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgbXV4IGNsaWVu
dC4gVGhpcyB0aHJlYWQgYWNjZXNzZXMKKyAgICBwcml2YXRlIGZ1bmN0aW9ucy92YXJpYWJsZXMg
b2YgdGhlIG11eCBjbGllbnQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4
KToKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQorICAgICAgICBzZWxmLl9tdXggPSBtdXgKKyAgICAgICAgc2VsZi5f
c3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQorCisgICAgZGVmIF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6
CisgICAgICAgIGZpcnN0X29wY29kZSA9IE5vbmUKKyAgICAgICAgcGVuZGluZ19wYXlsb2FkID0g
W10KKyAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgorICAgICAgICAgICAg
ZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3RoID0gKAorICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5yZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9tdXgu
X3NvY2tldCkpCisKKyAgICAgICAgICAgIGlmIG5vdCBmaXJzdF9vcGNvZGU6CisgICAgICAgICAg
ICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVDoKKyAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIHRleHQgbWVzc2FnZSBv
biBwaHlzaWNhbCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVj
dGlvbicpCisgICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5P
UENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gd2FzIG5vdCBzdGFydGVkJykKKyAgICAg
ICAgICAgICAgICBpZiAob3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZ
IG9yCisgICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1BPTkcgb3IKKyAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfUE9ORyBvcgorICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xpZW50
X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRSk6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0X29w
Y29kZSA9IG9wY29kZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG9wY29kZSBmcmFtZTogJWQn
ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSkKKworICAgICAg
ICAgICAgZWxpZiBvcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DT05USU5VQVRJ
T046CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIG5ldyBvcGNv
ZGUgYmVmb3JlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlcm1pbmF0aW5n
IGZyYWdtZW50YXRpb24nKQorCisgICAgICAgICAgICBwYXlsb2FkID0gY2xpZW50X2Zvcl90ZXN0
aW5nLnJlY2VpdmVfYnl0ZXMoCisgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9zb2NrZXQsIHBh
eWxvYWRfbGVuZ3RoKQorCisgICAgICAgICAgICBpZiBzZWxmLl9tdXguX2luY29taW5nX2ZyYW1l
X2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fbXV4
Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCisKKyAgICAgICAgICAgIHBl
bmRpbmdfcGF5bG9hZC5hcHBlbmQocGF5bG9hZCkKKworICAgICAgICAgICAgaWYgZmluOgorICAg
ICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorCisgICAgICAgIG1lc3NhZ2UgPSAnJy5qb2lu
KHBlbmRpbmdfcGF5bG9hZCkKKyAgICAgICAgcmV0dXJuIGZpcnN0X29wY29kZSwgbWVzc2FnZQor
CisgICAgZGVmIHJlcXVlc3Rfc3RvcChzZWxmKToKKyAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0
ZWQgPSBUcnVlCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6CisgICAgICAgICAgICAgICAgIyBvcGNv
ZGUgaXMgT1BDT0RFX0JJTkFSWSBvciBjb250cm9sIG9wY29kZXMgd2hlbiBhIG1lc3NhZ2UKKyAg
ICAgICAgICAgICAgICAjIGlzIHN1Y2Nlc2Z1bGx5IHJlY2VpdmVkLgorICAgICAgICAgICAgICAg
IG9wY29kZSwgbWVzc2FnZSA9IHNlbGYuX3JlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAgICAg
ICAgaWYgbm90IG9wY29kZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg
ICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZOgorICAg
ICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQo
bWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9kaXNwYXRjaF9mcmFtZShj
aGFubmVsX2lkLCBtZXNzYWdlW2FkdmFuY2U6XSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3Byb2Nlc3NfY29udHJvbF9tZXNzYWdlKG9wY29k
ZSwgbWVzc2FnZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX211eC5fbm90
aWZ5X3JlYWRlcl9kb25lKCkKKworCitjbGFzcyBfSW5uZXJGcmFtZShvYmplY3QpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCk6
CisgICAgICAgIHNlbGYuZmluID0gZmluCisgICAgICAgIHNlbGYucnN2MSA9IHJzdjEKKyAgICAg
ICAgc2VsZi5yc3YyID0gcnN2MgorICAgICAgICBzZWxmLnJzdjMgPSByc3YzCisgICAgICAgIHNl
bGYub3Bjb2RlID0gb3Bjb2RlCisgICAgICAgIHNlbGYucGF5bG9hZCA9IHBheWxvYWQKKworCitj
bGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgorICAgICAgICBzZWxmLnF1ZXVlID0gUXVldWUuUXVldWUoKQorICAgICAgICBzZWxmLnNlbmRf
cXVvdGEgPSAwCisgICAgICAgIHNlbGYucmVjZWl2ZV9xdW90YSA9IDAKKworCitjbGFzcyBNdXhD
bGllbnQob2JqZWN0KToKKyAgICAiIiJXZWJTb2NrZXQgbXV4IGNsaWVudC4KKworICAgIE5vdGUg
dGhhdCB0aGlzIGNsYXNzIGlzIE5PVCB0aHJlYWQtc2FmZS4gRG8gbm90IGFjY2VzcyBhbiBpbnN0
YW5jZSBvZiB0aGlzCisgICAgY2xhc3MgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGF0IGEgc2FtZSB0
aW1lLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLl9vcHRpb25zLmVuYWJsZV9tdXgo
KQorICAgICAgICBzZWxmLl9zdHJlYW0gPSBOb25lCisgICAgICAgIHNlbGYuX3NvY2tldCA9IE5v
bmUKKyAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNvY2tl
dEhhbmRzaGFrZShzZWxmLl9vcHRpb25zKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9m
aWx0ZXIgPSBOb25lCisgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUK
KworICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZWFkX3Ro
cmVhZCA9IE5vbmUKKyAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uID0gdGhy
ZWFkaW5nLkNvbmRpdGlvbigpCisgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0gW10KKyAg
ICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKKyAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCk7
CisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQorICAgICAgICBzZWxmLl90aW1l
b3V0ID0gMgorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50ID0g
Tm9uZQorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UgPSBO
b25lCisKKyAgICBkZWYgX3BhcnNlX2lubmVyX2ZyYW1lKHNlbGYsIGRhdGEpOgorICAgICAgICBp
ZiBsZW4oZGF0YSkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBl
bmNhcHN1bGF0ZWQgZnJhbWUgcmVjZWl2ZWQnKQorCisgICAgICAgIGZpcnN0X2J5dGUgPSBvcmQo
ZGF0YVswXSkKKyAgICAgICAgZmluID0gKGZpcnN0X2J5dGUgPDwgNykgJiAxCisgICAgICAgIHJz
djEgPSAoZmlyc3RfYnl0ZSA8PCA2KSAmIDEKKyAgICAgICAgcnN2MiA9IChmaXJzdF9ieXRlIDw8
IDUpICYgMQorICAgICAgICByc3YzID0gKGZpcnN0X2J5dGUgPDwgNCkgJiAxCisgICAgICAgIG9w
Y29kZSA9IGZpcnN0X2J5dGUgJiAweGYKKworICAgICAgICBpZiBzZWxmLl9vdXRnb2luZ19mcmFt
ZV9maWx0ZXI6CisgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmls
dGVyLmZpbHRlcigKKyAgICAgICAgICAgICAgICBkYXRhWzE6XSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHBheWxvYWQgPSBkYXRhWzE6XQorCisgICAgICAgIHJldHVybiBfSW5uZXJGcmFt
ZShmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCkKKworICAgIGRlZiBfcHJv
Y2Vzc19tdXhfY29udHJvbF9ibG9ja3Moc2VsZik6CisgICAgICAgIGZvciBibG9jayBpbiBzZWxm
Ll9jb250cm9sX2Jsb2NrczoKKyAgICAgICAgICAgIGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09Q
Q09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKKyAgICAgICAgICAgICAgICAjIEFkZENoYW5uZWxS
ZXNwb25zZSB3aWxsIGJlIGhhbmRsZWQgaW4gYWRkX2NoYW5uZWwoKS4KKyAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVf
RkxPV19DT05UUk9MOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6
CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZmxvdyBj
b250cm9sIHJlY2VpdmVkIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgYmxvY2suY2hhbm5lbF9pZCkKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXS5zZW5kX3F1b3Rh
ICs9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLm5vdGlmeSgpCisg
ICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisgICAgICAgICAgICBlbGlmIGJsb2NrLm9w
Y29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgorICAgICAgICAgICAgICAgIHNl
bGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtibG9jay5zZW5kX3F1b3RhXSAqIGJsb2NrLnNsb3Rz
KQorCisgICAgZGVmIF9kaXNwYXRjaF9mcmFtZShzZWxmLCBjaGFubmVsX2lkLCBwYXlsb2FkKToK
KyAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKKyAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyArPSBfcGFyc2Vf
Y29udHJvbF9ibG9ja3MocGF5bG9hZCkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX211
eF9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAg
IHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBp
biBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1JlY2VpdmVkIGxvZ2ljYWwgZnJhbWUgb24gY2hhbm5lbCBpZCAnCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnJWQsIHdoaWNoIGlzIG5vdCBlc3RhYmxpc2hlZCcg
JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKKworICAg
ICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fcGFyc2VfaW5uZXJfZnJhbWUocGF5bG9h
ZCkKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnJl
Y2VpdmVfcXVvdGEgLT0gKAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGlubmVyX2ZyYW1l
LnBheWxvYWQpKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucmVjZWl2ZV9xdW90YSA8IDA6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignVGhlIHNlcnZlciB2aW9sYXRlcyBxdW90YSBvbiAnCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVsX2lkKQorICAgICAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucXVldWUucHV0KGlubmVyX2ZyYW1lKQorCisgICAgZGVmIF9wcm9jZXNzX2NvbnRy
b2xfbWVzc2FnZShzZWxmLCBvcGNvZGUsIG1lc3NhZ2UpOgorICAgICAgICAjIFBpbmcvUG9uZyBh
cmUgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfQ0xPU0U6CisgICAgICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Ns
b3NlX21lc3NhZ2UgPSBtZXNzYWdlCisgICAgICAgICAgICBpZiBzZWxmLl9pc19hY3RpdmU6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoCisgICAgICAgICAgICAgICAg
ICAgIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29u
PScnKQorICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnJlcXVlc3Rfc3RvcCgpCisK
KyAgICAgICAgICAgIGlmIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQ6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5zZXQo
KQorCisgICAgZGVmIF9ub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6CisgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnUmVhZCB0aHJlYWQgdGVybWluYXRlZC4nKQorICAgICAgICBzZWxmLmNsb3Nl
X3NvY2tldCgpCisKKyAgICBkZWYgX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZhaWxhYmxlKHNlbGYp
OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRp
b24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykgPT0g
MDoKKyAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQorICAgICAgICAgICAgICAgIHNlbGYuX2Nv
bnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKKworICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykgPT0gMDoKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2VpdmUgTmV3Q2hhbm5lbFNs
b3QnKQorCisgICAgZGVmIF9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFibGUoc2VsZiwgY2hhbm5l
bF9pZCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6CisgICAgICAgICAgICAgICAgIyBXYWl0IG9u
Y2UKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0
KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgIGlmIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgorICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBGbG93Q29udHJvbCBmb3Ig
Y2hhbm5lbCBpZCAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQp
CisKKyAgICBkZWYgY29ubmVjdChzZWxmKToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gY2xpZW50
X2Zvcl90ZXN0aW5nLmNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCisgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVv
dXQsCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQorCisgICAgICAgIHNl
bGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQorICAgICAgICBzZWxmLl9zdHJl
YW0gPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0U3RyZWFtKAorICAgICAgICAgICAgc2Vs
Zi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCisKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tfREVGQVVMVF9DSEFOTkVMX0lEXSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEoKQorCisgICAg
ICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gX011eFJlYWRlclRocmVhZChzZWxmKQorICAgICAgICBz
ZWxmLl9yZWFkX3RocmVhZC5zdGFydCgpCisKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2NoYW5uZWxf
c2xvdF9hdmFpbGFibGUoKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFi
bGUoX0RFRkFVTFRfQ0hBTk5FTF9JRCkKKworICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBUcnVl
CisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKKwor
ICAgIGRlZiBhZGRfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBvcHRpb25zKToKKyAgICAgICAg
aWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTXV4
IGNsaWVudCBpcyBub3QgYWN0aXZlJykKKworICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHM6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NoYW5uZWwg
aWQgJWQgYWxyZWFkeSBleGlzdHMnICUgY2hhbm5lbF9pZCkKKworICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzZW5kX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKKyAgICAg
ICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05v
IGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCisKKyAgICAgICAgIyBDcmVhdGUgQWRkQ2hhbm5lbCBy
ZXF1ZXN0CisgICAgICAgIHJlcXVlc3RfbGluZSA9ICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIG9w
dGlvbnMucmVzb3VyY2UKKyAgICAgICAgZmllbGRzID0gW10KKyAgICAgICAgaWYgb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuREVGQVVMVF9QT1JUOgorICAgICAgICAg
ICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxuJyAlIG9wdGlvbnMuc2VydmVyX2hvc3QubG93
ZXIoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6ICVz
OiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0KSkKKyAg
ICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAlc1xyXG4nICUgb3B0aW9ucy5vcmlnaW4ubG93
ZXIoKSkKKyAgICAgICAgZmllbGRzLmFwcGVuZCgnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nKQor
CisgICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKKyAgICAgICAgICAgIGZp
ZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICcsICcuam9pbihvcHRpb25zLmV4dGVuc2lvbnMpKQorCisgICAg
ICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSArICcnLmpvaW4oZmllbGRzKSArICdcclxuJwor
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
KAorICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFuZHNoYWtlKQorICAgICAgICBwYXlsb2FkID0g
X2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsgYWRkX2NoYW5uZWxfcmVx
dWVzdAorICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKKworICAgICAg
ICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
V2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9yIHRoZSByZXF1ZXN0Li4uJykKKyAgICAgICAg
cmVzcG9uc2UgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xf
YmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAg
ICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgorICAgICAgICAg
ICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVT
UE9OU0U6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAg
ICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNoYW5uZWxfaWQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXNwb25zZSA9IGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlOgorICAgICAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0
KHNlbGYuX3RpbWVvdXQpCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdBZGRDaGFubmVsUmVxdWVzdCB0
aW1lZCBvdXQnKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fY29udHJvbF9i
bG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgICMgVmFsaWRhdGUgQWRkQ2hhbm5l
bFJlc3BvbnNlCisgICAgICAgIGlmIHJlc3BvbnNlLnJlamVjdGVkOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVjdGVkIEFkZENoYW5uZWxSZXF1ZXN0JykKKwor
ICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlLmVuY29k
ZWRfaGFuZHNoYWtlKQorCisgICAgICAgICMgU2hvdWxkIHdlIHJlamVjdCB3aGVuIFVwZ3JhZGUs
IENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQtQWNjZXB0CisgICAgICAgICMgaGVhZGVycyBl
eGlzdD8KKworICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJl
KCkKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXSA9IF9Mb2dpY2Fs
Q2hhbm5lbERhdGEoKQorICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNh
bCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNoYW5uZWxfaWQpCisKKyAgICBkZWYgX2NoZWNr
X2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAgIGlm
IG5vdCBzZWxmLl9pc19hY3RpdmU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBj
bGllbnQgaXMgbm90IGFjdGl2ZScpCisKKyAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2Vs
Zi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTG9naWNh
bCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hlZC4nKQorCisgICAgZGVmIGRyb3BfY2hhbm5l
bChzZWxmLCBjaGFubmVsX2lkKToKKyAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Cisg
ICAgICAgIHBhc3MKKworICAgIGRlZiBzZW5kX2Zsb3dfY29udHJvbChzZWxmLCBjaGFubmVsX2lk
LCByZXBsZW5pc2hlZF9xdW90YSk6CisgICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5l
bF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCisgICAgICAgIHBheWxv
YWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBmbG93X2NvbnRy
b2wKKyAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2ZSBxdW90YQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAr
PSAoCisgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGEpCisgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkK
KyAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCisKKyAgICBkZWYgc2Vu
ZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFs
c2UpOgorICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5u
ZWxfaWQpCisKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChl
bmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRm
LTgnKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVuKG1lc3NhZ2UpOgorICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2aW9sYXRpb246ICVkIDwgJWQnICUgKAorICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5z
ZW5kX3F1b3RhLAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKG1lc3NhZ2UpKSkKKworICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIC09
IGxlbihtZXNzYWdlKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisgICAgICAgIHBheWxvYWQgPSBfZW5jb2Rl
X2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBtZXNzYWdlCisgICAg
ICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQorCisgICAgZGVmIGFzc2VydF9y
ZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQsIGJpbmFyeT1GYWxzZSk6CisgICAgICAg
IHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAorICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5f
dGltZW91dCkKKyAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcg
JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCisKKyAgICAgICAgaWYg
YmluYXJ5OgorICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9C
SU5BUlkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVAorCisgICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBvcGNv
ZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgb3Bjb2RlIHJlY2Vp
dmVkICglciAhPSAlciknICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRf
b3Bjb2RlLCBpbm5lcl9mcmFtZS5vcGNvZGUpKQorCisgICAgICAgIGlmIGlubmVyX2ZyYW1lLnBh
eWxvYWQgIT0gcGF5bG9hZDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3Rl
ZCBwYXlsb2FkIHJlY2VpdmVkJykKKworICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNoYW5uZWxf
aWQsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKKyAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9j
aGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQorCisgICAgICAgIGlmIGNvZGUgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFzb24u
ZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBib2R5ID0gJycKKwor
ICAgICAgICBmaXJzdF9ieXRlID0gKDEgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X0NMT1NFCisgICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkg
KyBjaHIoZmlyc3RfYnl0ZSkgKyBib2R5CisgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFy
eShwYXlsb2FkKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNoYW5uZWxf
aWQpOgorICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5u
ZWxfaWQpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKKyAgICAgICAgICAgICAgICB0
aW1lb3V0PXNlbGYuX3RpbWVvdXQpCisgICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSwgZToKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVzc2FnZSBmcm9tIGNo
YW5uZWwgaWQgJWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQor
ICAgICAgICBpZiBpbm5lcl9mcmFtZS5vcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9DTE9TRToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNs
b3NlIGZyYW1lJykKKworICAgIGRlZiBzZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Uoc2Vs
ZiwgY29kZT1Ob25lLCByZWFzb249JycpOgorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0
aW9uX2Nsb3NlX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKKyAgICAgICAgc2VsZi5fc3RyZWFt
LnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQorCisgICAgIyBUaGlzIG1ldGhvZCBjYW4gYmUgdXNl
ZCBvbmx5IGFmdGVyIGNhbGxpbmcKKyAgICAjIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9z
ZSgpLgorICAgIGRlZiBhc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZlX2Nsb3NlKAor
ICAgICAgICBzZWxmLCBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfTk9STUFMX0NMT1NV
UkUsIHJlYXNvbj0nJyk6CisgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Vf
ZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCisgICAgICAgIGlmIChub3Qgc2VsZi5f
cGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5pc1NldCgpIG9yCisgICAgICAgICAgICBu
b3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlKToKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKKwor
ICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6CisgICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9IEZh
bHNlCisgICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
cnVuX2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwYTVkODdkODM4
MjJiMDc4M2JlMTNlMzNkZGEzYWI2MWE1YWZlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvcnVuX2FsbC5weQpAQCAtMCwwICsxLDg5IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlJ1biBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgZGlyZWN0
b3J5LgorCitUaGlzIHN1aXRlIGlzIGV4cGVjdGVkIHRvIGJlIHJ1biB1bmRlciBweXdlYnNvY2tl
dCdzIHNyYyBkaXJlY3RvcnksIGkuZS4gdGhlCitkaXJlY3RvcnkgY29udGFpbmluZyBtb2RfcHl3
ZWJzb2NrZXQsIHRlc3QsIGV0Yy4KKworVG8gY2hhbmdlIGxvZ2dpbiBsZXZlbCwgcGxlYXNlIHNw
ZWNpZnkgLS1sb2ctbGV2ZWwgb3B0aW9uLgorICAgIHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5IC0t
bG9nLWxldmVsIGRlYnVnCisKK1RvIHBhc3MgYW55IG9wdGlvbiB0byB1bml0dGVzdCBtb2R1bGUs
IHBsZWFzZSBzcGVjaWZ5IG9wdGlvbnMgYWZ0ZXIgJy0tJy4gRm9yCitleGFtcGxlLCBydW4gdGhp
cyBmb3IgbWFraW5nIHRoZSB0ZXN0IHJ1bm5lciB2ZXJib3NlLgorICAgIHB5dGhvbiB0ZXN0L3J1
bl90ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnIC0tIC12CisiIiIKKworCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworaW1w
b3J0IHVuaXR0ZXN0CisKKworX1RFU1RfTU9EVUxFX1BBVFRFUk4gPSByZS5jb21waWxlKHInXih0
ZXN0Xy4rKVwucHkkJykKKworCitkZWYgX2xpc3RfdGVzdF9tb2R1bGVzKGRpcmVjdG9yeSk6Cisg
ICAgbW9kdWxlX25hbWVzID0gW10KKyAgICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihkaXJl
Y3RvcnkpOgorICAgICAgICBtYXRjaCA9IF9URVNUX01PRFVMRV9QQVRURVJOLnNlYXJjaChmaWxl
bmFtZSkKKyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICBtb2R1bGVfbmFtZXMuYXBwZW5k
KG1hdGNoLmdyb3VwKDEpKQorICAgIHJldHVybiBtb2R1bGVfbmFtZXMKKworCitkZWYgX3N1aXRl
KCk6CisgICAgbG9hZGVyID0gdW5pdHRlc3QuVGVzdExvYWRlcigpCisgICAgcmV0dXJuIGxvYWRl
ci5sb2FkVGVzdHNGcm9tTmFtZXMoCisgICAgICAgICAgICBfbGlzdF90ZXN0X21vZHVsZXMob3Mu
cGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLicpKSkKKworCitpZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgorICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigp
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlw
ZT0nY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZh
dWx0PSd3YXJuaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAn
aW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjcml0aWNhbCddKQorICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2Vf
YXJncygpCisgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKKyAgICAgICAgICAgIGxldmVsPWxvZ2dp
bmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpLAorICAgICAgICAgICAg
Zm9ybWF0PSclKGxldmVsbmFtZSlzICUoYXNjdGltZSlzICcKKyAgICAgICAgICAgICAgICAgICAn
JShmaWxlbmFtZSlzOiUobGluZW5vKWRdICcKKyAgICAgICAgICAgICAgICAgICAnJShtZXNzYWdl
KXMnLAorICAgICAgICAgICAgZGF0ZWZtdD0nJUg6JU06JVMnKQorICAgIHVuaXR0ZXN0Lm1haW4o
ZGVmYXVsdFRlc3Q9J19zdWl0ZScsIGFyZ3Y9W3N5cy5hcmd2WzBdXSArIGFyZ3MpCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3NldF9zeXNfcGF0aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2M2ZGI5ZWE0ZDM4M2EzN2My
N2EwNjBhMGVmMWM1NjNiYmIxZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3NldF9z
eXNfcGF0aC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJDb25m
aWd1cmF0aW9uIGZvciB0ZXN0aW5nLgorCitUZXN0IGZpbGVzIHNob3VsZCBpbXBvcnQgdGhpcyBt
b2R1bGUgYmVmb3JlIG1vZF9weXdlYnNvY2tldC4KKyIiIgorCisKK2ltcG9ydCBvcworaW1wb3J0
IHN5cworCisKKyMgQWRkIHRoZSBwYXJlbnQgZGlyZWN0b3J5IHRvIHN5cy5wYXRoIHRvIGVuYWJs
ZSBpbXBvcnRpbmcgbW9kX3B5d2Vic29ja2V0Lgorc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
am9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4uJykpCisKKworIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X2Rpc3BhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYTNkNGYzYWUxZGJmNWY5N2IyN2Q4NGVj
NmU2NDIyZmQwZWNhYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRj
aC5weQpAQCAtMCwwICsxLDI4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisj
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgorCisKK2ltcG9y
dCBvcworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5
cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5k
c2hha2UKK2Zyb20gdGVzdCBpbXBvcnQgbW9jaworCisKK19URVNUX0hBTkRMRVJTX0RJUiA9IG9z
LnBhdGguam9pbigKKyAgICAgICAgb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0
YScsICdoYW5kbGVycycpCisKK19URVNUX0hBTkRMRVJTX1NVQl9ESVIgPSBvcy5wYXRoLmpvaW4o
X1RFU1RfSEFORExFUlNfRElSLCAnc3ViJykKKworCitjbGFzcyBEaXNwYXRjaGVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIi
IgorCisgICAgZGVmIHRlc3Rfbm9ybWFsaXplX3BhdGgoc2VsZik6CisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2Uo
J1xcJywgJy8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXpl
X3BhdGgoJ1xcYVxcYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0
aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBk
aXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJy9hL2MvLi4vYicpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnYWJjJykucmVwbGFjZSgnXFwnLCAnLycpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnYWJjJykpCisKKyAg
ICBkZWYgdGVzdF9jb252ZXJ0ZXIoc2VsZik6CisgICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNo
Ll9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2InKQorICAgICAgICAjIFB5
dGhvbiBidWlsdCBieSBNU0MgaW5zZXJ0cyBhIGRyaXZlIG5hbWUgbGlrZSAnQzpcJyB2aWEgcmVh
bHBhdGgoKS4KKyAgICAgICAgIyBDb252ZXJ0ZXIgR2VuZXJhdG9yIGV4cGFuZHMgcHJvdmlkZWQg
cGF0aCB1c2luZyByZWFscGF0aCgpIGFuZCB1c2VzCisgICAgICAgICMgdGhlIHBhdGggaW5jbHVk
aW5nIGEgZHJpdmUgbmFtZSB0byB2ZXJpZnkgdGhlIHByZWZpeC4KKyAgICAgICAgb3Nfcm9vdCA9
IG9zLnBhdGgucmVhbHBhdGgoJy8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNv
bnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcvYy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2MvaF93c2gucHknKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaC5weScp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcignYS9iL2hfd3NoLnB5
JykpCisKKyAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291
cmNlX2NvbnZlcnRlcignYS9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252
ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAorICAgICAgICAgICAgJ2EvYi9oX3dzaC5w
eScpKSkKKworICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVz
b3VyY2VfY29udmVydGVyKCcvYS9iLy8vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gn
LCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAorICAgICAg
ICAgICAgJy9hL2IvLi4vYi9oX3dzaC5weScpKSkKKworICAgICAgICBjb252ZXJ0ZXIgPSBkaXNw
YXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKAorICAgICAgICAgICAgJy9h
Ly4uL2EvYi8uLi9iLycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVy
KG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCisKKyAgICAgICAgY29udmVydGVyID0gZGlzcGF0
Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihyJ1xhXGInKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgcidhXGJcaF93c2gucHkn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArIHIn
YS9iL2hfd3NoLnB5JykpCisKKyAgICBkZWYgdGVzdF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3Bh
dGhzKHNlbGYpOgorICAgICAgICBwYXRocyA9IGxpc3QoCisgICAgICAgICAgICBkaXNwYXRjaC5f
ZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhfVEVTVF9IQU5ETEVSU19ESVIpKQorICAgICAg
ICBwYXRocy5zb3J0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCBsZW4ocGF0aHMpKQor
ICAgICAgICBleHBlY3RlZF9wYXRocyA9IFsKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
X1RFU1RfSEFORExFUlNfRElSLCAnYWJvcnRfYnlfdXNlcl93c2gucHknKSwKKyAgICAgICAgICAg
ICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5JyksCisg
ICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ29yaWdpbl9j
aGVja193c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExF
UlNfRElSLCAnc3ViJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbl9p
bl90cmFuc2Zlcl93c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1Rf
SEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93c2gucHknKSwKKyAgICAgICAgICAg
ICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3BsYWluX3dzaC5w
eScpLAorICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdz
dWInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfaGFuZHNoYWtlX3NpZ193
c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElS
LCAnc3ViJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25nX3RyYW5zZmVyX3Np
Z193c2gucHknKSwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgIGZvciBleHBlY3RlZCwgYWN0
dWFsIGluIHppcChleHBlY3RlZF9wYXRocywgcGF0aHMpOgorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQorCisgICAgZGVmIHRlc3Rfc291cmNlX2hhbmRsZXJf
ZmlsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBkaXNw
YXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICcn
KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgIGRpc3BhdGNoLkRpc3Bh
dGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJ2RlZicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNl
cHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnMS8wJykKKyAgICAgICAgc2Vs
Zi5mYWlsVW5sZXNzKGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlKAorICAgICAgICAgICAg
ICAgICdkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6cGFzc1xuJwor
ICAgICAgICAgICAgICAgICdkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOnBh
c3NcbicpKQorCisgICAgZGVmIHRlc3Rfc291cmNlX3dhcm5pbmdzKHNlbGYpOgorICAgICAgICBk
aXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUp
CisgICAgICAgIHdhcm5pbmdzID0gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQorICAgICAg
ICB3YXJuaW5ncy5zb3J0KCkKKyAgICAgICAgZXhwZWN0ZWRfd2FybmluZ3MgPSBbCisgICAgICAg
ICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAg
ICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHknKSkgKworICAgICAgICAgICAg
ICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4nKSwK
KyAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCisgICAgICAg
ICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVfd3No
LnB5JykpICsKKyAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UgaXMgbm90IGNhbGxhYmxlLicpLAorICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRo
KG9zLnBhdGguam9pbigKKyAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAn
c3ViJywgJ3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5JykpICsKKyAgICAgICAgICAgICAgICAg
Jzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGRlZmluZWQuJyksCisgICAg
ICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAorICAgICAgICAgICAg
ICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnd3JvbmdfdHJhbnNmZXJfc2lnX3dz
aC5weScpKSArCisgICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBp
cyBub3QgZGVmaW5lZC4nKSwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKDQsIGxlbih3YXJuaW5ncykpCisgICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGlu
IHppcChleHBlY3RlZF93YXJuaW5ncywgd2FybmluZ3MpOgorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiB0ZXN0X2RvX2V4dHJhX2hhbmRz
aGFrZShzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RF
U1RfSEFORExFUlNfRElSLCBOb25lKQorICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVz
dCgpCisgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKKyAgICAg
ICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2V4YW1wbGUuY29tJworICAgICAgICBkaXNw
YXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KSAgIyBNdXN0IG5vdCByYWlzZSBleGNl
cHRpb24uCisKKyAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2JhZC5leGFtcGxl
LmNvbScKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCkKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEhh
bmRzaGFrZUV4Y2VwdGlvbiB3aXRoIDQwMyBzdGF0dXMnKQorICAgICAgICBleGNlcHQgaGFuZHNo
YWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDQwMywgZS5zdGF0dXMpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAg
ICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcicgJSBlKQorCisgICAgZGVmIHRl
c3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgorICAgICAgICBkaXNwYXRjaGVyID0gZGlz
cGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCisgICAgICAgIHJlcXVl
c3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKKyAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcv
YWJvcnRfYnlfdXNlcicKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtlLkFib3J0
ZWRCeVVzZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIu
ZG9fZXh0cmFfaGFuZHNoYWtlLCByZXF1ZXN0KQorCisgICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0
YShzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1Rf
SEFORExFUlNfRElSLCBOb25lKQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0
KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVzdC53
c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJworICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29s
ID0gJ3AxJworICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9v
cmlnaW5fY2hlY2ssIHAxJworICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5N
b2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3Vi
L3BsYWluJworICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQorICAgICAgICBkaXNw
YXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
c3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4sIE5vbmUnCisgICAgICAg
ICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICAgICAgcmVxdWVzdCA9IG1v
Y2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQorICAg
ICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/JworICAgICAgICByZXF1ZXN0
LndzX3Byb3RvY29sID0gTm9uZQorICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVx
dWVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxs
ZWQgZm9yIC9zdWIvcGxhaW4/LCBOb25lJworICAgICAgICAgICAgICAgICAgICAgICAgICdceGZm
XHgwMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9ICcvc3ViL3BsYWluP3E9dicKKyAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUK
KyAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWluP3E9
diwgTm9uZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAg
IGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfbm9faGFuZGxlcihzZWxmKToKKyAgICAgICAgZGlzcGF0
Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAg
ICAgICBmb3IgcmVzb3VyY2UgaW4gWycvYmxhbmsnLCAnL3N1Yi9ub25fY2FsbGFibGUnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICcvc3ViL25vX3dzaF9hdF90aGVfZW5kJywgJy9kb2VzL25v
dC9leGlzdCddOgorICAgICAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVj
dGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKKyAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2Ug
PSByZXNvdXJjZQorICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMicKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVx
dWVzdCkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorICAgICAgICAgICAgZXhjZXB0IGRp
c3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuZmFpbFVu
bGVzcyhzdHIoZSkuZmluZCgnTm8gaGFuZGxlcicpICE9IC0xKQorICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorCisgICAgZGVmIHRlc3Rf
dHJhbnNmZXJfZGF0YV9oYW5kbGVyX2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hl
ciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAgICAg
ICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycp
KQorICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5z
ZmVyJworICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AzJworICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAgICAgICAgICAg
IHNlbGYuZmFpbCgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBz
ZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBlKQorCisg
ICAgZGVmIHRlc3RfYWJvcnRfdHJhbnNmZXJfZGF0YShzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hl
ciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAgICAg
ICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCisgICAgICAgIHJlcXVlc3Qud3NfcmVzb3Vy
Y2UgPSAnL2Fib3J0X2J5X3VzZXInCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGhhbmRzaGFr
ZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNw
YXRjaGVyLnRyYW5zZmVyX2RhdGEsIHJlcXVlc3QpCisKKyAgICBkZWYgdGVzdF9zY2FuX2Rpcihz
ZWxmKToKKyAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNf
RElSLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihkaXNwLl9oYW5kbGVy
X3N1aXRlX21hcCkpCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygKKyAgICAg
ICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCisKKyAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXIoc2VsZik6CisgICAg
ICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgX1RFU1Rf
SEFORExFUlNfU1VCX0RJUikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApKQorICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycg
aW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygKKyAg
ICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApCisKKyAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXJfYXNfcm9vdChz
ZWxmKToKKyAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNf
U1VCX0RJUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExF
UlNfU1VCX0RJUikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApKQorICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlz
cC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL2V4Y2VwdGlv
bl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYu
ZmFpbElmKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKKyAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKCcvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVy
X3N1aXRlX21hcCkKKyAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvcGxhaW4nIGluIGRpc3AuX2hh
bmRsZXJfc3VpdGVfbWFwKQorCisgICAgZGVmIHRlc3Rfc2Nhbl9kaXJfbXVzdF91bmRlcl9yb290
KHNlbGYpOgorICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2InLCAnYS9iL2MnKSAgIyBP
SworICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2IvLy8nLCAnYS9iJykgICMgT0sKKyAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIsICdhL2IvYycsICdhL2In
KQorCisgICAgZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmKToKKyAgICAgICAgZGlz
cCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAgICAg
ICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcvJywgJy9vcmlnaW5fY2hlY2snKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDUsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCisg
ICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygKKyAgICAgICAgICAgICcvc3ViL2V4
Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAg
IHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXAp
CisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnLycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXAp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzLCAn
L2FsaWFzJywgJy9ub3QtZXhpc3QnKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Cisg
ICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVlNWNmNjE1NzM5MTdkODdkMTM2NWIxNmE1OGMyYzQxODhhOTEyZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQpAQCAtMCwwICsxLDc1MyBA
QAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5j
LgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJFbmQt
dG8tZW5kIHRlc3RzIGZvciBweXdlYnNvY2tldC4gVGVzdHMgc3RhbmRhbG9uZS5weSBieSBkZWZh
dWx0LiBZb3UKK2NhbiBhbHNvIHRlc3QgbW9kX3B5d2Vic29ja2V0IGhvc3RlZCBvbiBhbiBBcGFj
aGUgc2VydmVyIGJ5IHNldHRpbmcKK191c2VfZXh0ZXJuYWxfc2VydmVyIHRvIFRydWUgYW5kIG1v
ZGlmeWluZyBfZXh0ZXJuYWxfc2VydmVyX3BvcnQgdG8gcG9pbnQgdG8KK3RoZSBwb3J0IG9uIHdo
aWNoIHRoZSBBcGFjaGUgc2VydmVyIGlzIHJ1bm5pbmcuCisiIiIKKworCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3VicHJv
Y2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCB1bml0dGVzdAorCitpbXBvcnQg
c2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0
IG1vZHVsZS4KKworZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3RpbmcKK2Zyb20gdGVz
dCBpbXBvcnQgbXV4X2NsaWVudF9mb3JfdGVzdGluZworCisKKyMgU3BlY2lhbCBtZXNzYWdlIHRo
YXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCitfR09P
REJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCisKK19TRVJWRVJfV0FSTVVQX0lOX1NFQyA9IDAuMgor
CisjIElmIHlvdSB3YW50IHRvIHVzZSBleHRlcm5hbCBzZXJ2ZXIgdG8gcnVuIGVuZCB0byBlbmQg
dGVzdHMsIHNldCBmb2xsb3dpbmcKKyMgcGFyYW1ldGVycyBjb3JyZWN0bHkuCitfdXNlX2V4dGVy
bmFsX3NlcnZlciA9IEZhbHNlCitfZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSAwCisKKworIyBUZXN0
IGJvZHkgZnVuY3Rpb25zCitkZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6CisgICAg
Y2xpZW50LmNvbm5lY3QoKQorCisgICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcpCisgICAg
Y2xpZW50LmFzc2VydF9yZWNlaXZlKCd0ZXN0JykKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdo
ZWxsb3dvcmxkJykKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2hlbGxvd29ybGQnKQorCisg
ICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgp
CisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKKworCitkZWYgX2VjaG9f
Y2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KGNsaWVudCk6CisgICAgY2xpZW50LmNvbm5lY3Qo
KQorCisgICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCisgICAg
Y2xpZW50LmFzc2VydF9yZWNlaXZlKCdiaW5hcnknLCBiaW5hcnk9VHJ1ZSkKKyAgICBjbGllbnQu
c2VuZF9tZXNzYWdlKCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkKKyAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ1x4MDBceDgwXHhmZVx4ZmZceDAwXHg4MCcsIGJpbmFy
eT1UcnVlKQorCisgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgpCisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKKwor
CitkZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZShjbGllbnQpOgorICAgIGNs
aWVudC5jb25uZWN0KCkKKworICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQorICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCisKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdlKF9H
T09EQllFX01FU1NBR0UpCisgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKF9HT09EQllFX01FU1NB
R0UpCisKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQorICAgIGNsaWVudC5zZW5k
X2Nsb3NlKCkKKworICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQorCisKK2Rl
ZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24oY2xpZW50LCBjb2Rl
LCByZWFzb24pOgorICAgIGNsaWVudC5jb25uZWN0KCkKKworICAgIGNsaWVudC5zZW5kX2Nsb3Nl
KGNvZGUsIHJlYXNvbikKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY29kZSwgcmVh
c29uKQorCisgICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCisKKworZGVmIF91
bm1hc2tlZF9mcmFtZV9jaGVja19wcm9jZWR1cmUoY2xpZW50KToKKyAgICBjbGllbnQuY29ubmVj
dCgpCisKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JywgbWFzaz1GYWxzZSkKKyAgICBj
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9U
T0NPTF9FUlJPUiwgJycpCisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkK
KworCitkZWYgX211eF9lY2hvX2NoZWNrX3Byb2NlZHVyZShtdXhfY2xpZW50KToKKyAgICBtdXhf
Y2xpZW50LmNvbm5lY3QoKQorICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMSwgMTAy
NCkKKworICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5nLkNs
aWVudE9wdGlvbnMoKQorICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnNlcnZlcl9ob3N0ID0g
J2xvY2FsaG9zdCcKKyAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IDgw
CisgICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMub3JpZ2luID0gJ2h0dHA6Ly9sb2NhbGhvc3Qn
CisgICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMucmVzb3VyY2UgPSAnL2VjaG8nCisgICAgbXV4
X2NsaWVudC5hZGRfY2hhbm5lbCgyLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKKyAgICBtdXhf
Y2xpZW50LnNlbmRfZmxvd19jb250cm9sKDIsIDEwMjQpCisKKyAgICBtdXhfY2xpZW50LnNlbmRf
bWVzc2FnZSgyLCAndGVzdCcpCisgICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAndGVz
dCcpCisKKyAgICBtdXhfY2xpZW50LmFkZF9jaGFubmVsKDMsIGxvZ2ljYWxfY2hhbm5lbF9vcHRp
b25zKQorICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMywgMTAyNCkKKworICAgIG11
eF9jbGllbnQuc2VuZF9tZXNzYWdlKDIsICdoZWxsbycpCisgICAgbXV4X2NsaWVudC5zZW5kX21l
c3NhZ2UoMywgJ3dvcmxkJykKKyAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDIsICdoZWxs
bycpCisgICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgzLCAnd29ybGQnKQorCisgICAgIyBE
b24ndCBzZW5kIGNsb3NlIG1lc3NhZ2Ugb24gY2hhbm5lbCBpZCAxIHNvIHRoYXQgc2VydmVyLWlu
aXRpYXRlZAorICAgICMgY2xvc2luZyBoYW5kc2hha2Ugd29uJ3Qgb2NjdXIuCisgICAgbXV4X2Ns
aWVudC5zZW5kX2Nsb3NlKDIpCisgICAgbXV4X2NsaWVudC5zZW5kX2Nsb3NlKDMpCisgICAgbXV4
X2NsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgyKQorICAgIG11eF9jbGllbnQuYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2UoMykKKworICAgIG11eF9jbGllbnQuc2VuZF9waHlzaWNhbF9jb25uZWN0aW9u
X2Nsb3NlKCkKKyAgICBtdXhfY2xpZW50LmFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2Vp
dmVfY2xvc2UoKQorCisKK2NsYXNzIEVuZFRvRW5kVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2Up
OgorICAgICIiIkJhc2UgY2xhc3MgZm9yIGVuZC10by1lbmQgdGVzdHMgdGhhdCBsYXVuY2ggcHl3
ZWJzb2NrZXQgc3RhbmRhbG9uZQorICAgIHNlcnZlciBhcyBhIHNlcGFyYXRlIHByb2Nlc3MsIGNv
bm5lY3QgdG8gaXQgdXNpbmcgdGhlIGNsaWVudF9mb3JfdGVzdGluZworICAgIG1vZHVsZSwgYW5k
IGNoZWNrIGlmIHRoZSBzZXJ2ZXIgYmVoYXZlcyBjb3JyZWN0bHkgYnkgZXhjaGFuZ2luZyBvcGVu
aW5nCisgICAgaGFuZHNoYWtlIGFuZCBmcmFtZXMgb3ZlciBhIFRDUCBjb25uZWN0aW9uLgorICAg
ICIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnZlcl9zdGRlcnIg
PSBOb25lCisgICAgICAgIHNlbGYudG9wX2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0
KF9fZmlsZV9fKVswXSwgJy4uJykKKyAgICAgICAgb3MucHV0ZW52KCdQWVRIT05QQVRIJywgb3Mu
cGF0aC5wYXRoc2VwLmpvaW4oc3lzLnBhdGgpKQorICAgICAgICBzZWxmLnN0YW5kYWxvbmVfY29t
bWFuZCA9IG9zLnBhdGguam9pbigKKyAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ21vZF9weXdl
YnNvY2tldCcsICdzdGFuZGFsb25lLnB5JykKKyAgICAgICAgc2VsZi5kb2N1bWVudF9yb290ID0g
b3MucGF0aC5qb2luKHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnKQorICAgICAgICBzID0gc29ja2V0
LnNvY2tldCgpCisgICAgICAgIHMuYmluZCgoJ2xvY2FsaG9zdCcsIDApKQorICAgICAgICAoXywg
c2VsZi50ZXN0X3BvcnQpID0gcy5nZXRzb2NrbmFtZSgpCisgICAgICAgIHMuY2xvc2UoKQorCisg
ICAgICAgIHNlbGYuX29wdGlvbnMgPSBjbGllbnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9ucygp
CisgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JworICAgICAg
ICBzZWxmLl9vcHRpb25zLm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0JworICAgICAgICBzZWxm
Ll9vcHRpb25zLnJlc291cmNlID0gJy9lY2hvJworCisgICAgICAgICMgVE9ETyh0b3lvc2hpbSk6
IEVsaW1pbmF0ZSBsYXVuY2hpbmcgYSBzdGFuZGFsb25lIHNlcnZlciBvbiB1c2luZworICAgICAg
ICAjIGV4dGVybmFsIHNlcnZlci4KKworICAgICAgICBpZiBfdXNlX2V4dGVybmFsX3NlcnZlcjoK
KyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBfZXh0ZXJuYWxfc2VydmVy
X3BvcnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3Bv
cnQgPSBzZWxmLnRlc3RfcG9ydAorCisgICAgIyBUT0RPKHR5b3NoaW5vKTogVXNlIHRlYXJEb3du
IHRvIGtpbGwgdGhlIHNlcnZlci4KKworICAgIGRlZiBfcnVuX3B5dGhvbl9jb21tYW5kKHNlbGYs
IGNvbW1hbmRsaW5lLCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUpOgorICAgICAgICByZXR1cm4g
c3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGVdICsgY29tbWFuZGxpbmUsIGNsb3NlX2Zk
cz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3Rkb3V0LCBz
dGRlcnI9c3RkZXJyKQorCisgICAgZGVmIF9ydW5fc2VydmVyKHNlbGYpOgorICAgICAgICBhcmdz
ID0gW3NlbGYuc3RhbmRhbG9uZV9jb21tYW5kLAorICAgICAgICAgICAgICAgICctSCcsICdsb2Nh
bGhvc3QnLAorICAgICAgICAgICAgICAgICctVicsICdsb2NhbGhvc3QnLAorICAgICAgICAgICAg
ICAgICctcCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCisgICAgICAgICAgICAgICAgJy1QJywgc3Ry
KHNlbGYudGVzdF9wb3J0KSwKKyAgICAgICAgICAgICAgICAnLWQnLCBzZWxmLmRvY3VtZW50X3Jv
b3RdCisKKyAgICAgICAgIyBJbmhlcml0IHRoZSBsZXZlbCBzZXQgdG8gdGhlIHJvb3QgbG9nZ2Vy
IGJ5IHRlc3QgcnVubmVyLgorICAgICAgICByb290X2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KCkKKyAgICAgICAgbG9nX2xldmVsID0gcm9vdF9sb2dnZXIuZ2V0RWZmZWN0aXZlTGV2ZWwoKQor
ICAgICAgICBpZiBsb2dfbGV2ZWwgIT0gbG9nZ2luZy5OT1RTRVQ6CisgICAgICAgICAgICBhcmdz
LmFwcGVuZCgnLS1sb2ctbGV2ZWwnKQorICAgICAgICAgICAgYXJncy5hcHBlbmQobG9nZ2luZy5n
ZXRMZXZlbE5hbWUobG9nX2xldmVsKS5sb3dlcigpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9y
dW5fcHl0aG9uX2NvbW1hbmQoYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9c2VsZi5zZXJ2ZXJfc3RkZXJyKQorCisgICAgZGVmIF9raWxsX3Byb2Nl
c3Moc2VsZiwgcGlkKToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAnY3ln
d2luJyk6CisgICAgICAgICAgICBzdWJwcm9jZXNzLmNhbGwoCisgICAgICAgICAgICAgICAgKCd0
YXNra2lsbC5leGUnLCAnL2YnLCAnL3BpZCcsIHN0cihwaWQpKSwgY2xvc2VfZmRzPVRydWUpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCisK
KworY2xhc3MgRW5kVG9FbmRIeUJpVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKKyAgICBkZWYgc2V0
VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKKworICAgIGRl
ZiBfcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9ucyhzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBvcHRp
b25zKToKKyAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IGFkZCBzb21lIGxvZ2ljIHRvIHBvbGwgdGhl
IHNlcnZlciB1bnRpbCBpdAorICAgICAgICAgICAgIyBiZWNvbWVzIHJlYWR5CisgICAgICAgICAg
ICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xpZW50
ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKKyAgICAgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCisgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKKwor
ICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6CisgICAgICAgIHNlbGYuX3J1
bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnModGVzdF9mdW5jdGlvbiwgc2VsZi5fb3B0aW9ucykK
KworICAgIGRlZiBfcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToK
KyAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQorCisgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLmVuYWJsZV9kZWZsYXRlX2ZyYW1lKCkKKyAgICAgICAgICAgIGNsaWVudCA9
IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCisgICAgICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQp
CisKKyAgICBkZWYgX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAgICAgICAgICAgIHNl
bGYsIG9mZmVyLCByZXNwb25zZV9jaGVja2VyLCB0ZXN0X2Z1bmN0aW9uKToKKyAgICAgICAgc2Vy
dmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRpbWUu
c2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQorCisgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LmV4dGVuc2lvbnMgKz0gb2ZmZXIKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuY2hlY2tfcGVy
bWVzc2FnZV9kZWZsYXRlID0gcmVzcG9uc2VfY2hlY2tlcgorICAgICAgICAgICAgY2xpZW50ID0g
Y2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKKworICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKKworICAgICAgICAg
ICAgICAgIGlmIHRlc3RfZnVuY3Rpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAg
IHRlc3RfZnVuY3Rpb24oY2xpZW50KQorCisgICAgICAgICAgICAgICAgY2xpZW50LmFzc2VydF9j
b25uZWN0aW9uX2Nsb3NlZCgpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAg
IGNsaWVudC5jbG9zZV9zb2NrZXQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2Vs
Zi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCisKKyAgICBkZWYgX3J1bl9jbG9zZV93aXRoX2Nv
ZGVfYW5kX3JlYXNvbl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24sIGNvZGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbik6CisgICAgICAg
IHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0
aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xpZW50ID0g
Y2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCwgY29kZSwgcmVh
c29uKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vf
c29ja2V0KCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2Vz
cyhzZXJ2ZXIucGlkKQorCisgICAgZGVmIF9ydW5faHR0cF9mYWxsYmFja190ZXN0KHNlbGYsIG9w
dGlvbnMsIHN0YXR1cyk6CisgICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykK
KworICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQo
b3B0aW9ucykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjbGllbnQuY29ubmVj
dCgpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2ggSHR0cFN0YXR1
c0V4Y2VwdGlvbicpCisgICAgICAgICAgICBleGNlcHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0dHBT
dGF0dXNFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0
dXMsIGUuc3RhdHVzKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAg
ICAgICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhjZXB0aW9uJykKKyAgICAgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCisgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkK
KworICAgIGRlZiBfcnVuX211eF90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgorICAgICAgICBz
ZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdGlt
ZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCisKKyAgICAgICAgICAgIGNsaWVudCA9IG11
eF9jbGllbnRfZm9yX3Rlc3RpbmcuTXV4Q2xpZW50KHNlbGYuX29wdGlvbnMpCisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCisgICAgICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCisK
KyAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19j
aGVja19wcm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX2JpbmFyeShzZWxmKToKKyAgICAg
ICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KQorCisg
ICAgZGVmIHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6CisgICAgICAgIHNlbGYuX3J1bl90
ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCisKKyAgICBkZWYgdGVzdF91
bm1hc2tlZF9mcmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX3VubWFza2VkX2Zy
YW1lX2NoZWNrX3Byb2NlZHVyZSkKKworICAgIGRlZiB0ZXN0X2VjaG9fZGVmbGF0ZV9mcmFtZShz
ZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChfZWNob19jaGVja19w
cm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVfZnJhbWVfc2VydmVyX2Nsb3Nl
KHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9mcmFtZV90ZXN0KAorICAgICAgICAg
ICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKKworICAgIGRlZiB0ZXN0X2Vj
aG9fcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgorICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgorICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KKyAg
ICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgw
MCcKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKKyAgICAgICAgICAgICAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbywKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisgICAgICAg
ICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCisgICAgICAgICAgICAg
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGll
bnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAgICAgICAgICAgICAgICAgIHJzdjE9MSkK
KworICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgICAgICAgICAgY2xpZW50LmFz
c2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJh
bWV0ZXIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0
ZScsIHBhcmFtZXRlci5uYW1lKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwg
cGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCisKKyAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3Nh
Z2VfZGVmbGF0ZV90ZXN0KAorICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJ10s
CisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKKyAgICAgICAgICAgICAgICB0ZXN0
X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfdHdvX2Zy
YW1lcyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAg
ICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjbGllbnQu
X3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2QnLAor
ICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAg
ICAgICAgICAgICAgICAgIGVuZD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQor
ICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAorICAgICAgICAgICAgICAgICAg
ICAnXHhjOVx4YzlceDA3XHgwMCcsCisgICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCkKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNl
aXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgw
N1x4MDAnLAorICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9Q
Q09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisKKyAgICAgICAgICAgIGNs
aWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9z
ZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFt
ZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFy
YW1ldGVycygpKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgK
KyAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAorICAgICAgICAgICAgICAg
IHJlc3BvbnNlX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKKworICAg
IGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19tZXNzYWdlcyhzZWxmKToKKyAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0aGUg
ZXhhbXBsZXMgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2Rh
dGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywK
KyAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAg
ICAgICAgICAgICAgICAgICByc3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCisgICAg
ICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAg
ICAgICAgICAgICAgcnN2MT0xKQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KAorICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4Yzlc
eDA3XHgwMCcsCisgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCisgICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKKyAgICAgICAgICAgIGNs
aWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAg
J1x4ZjJceDAwXHgxMVx4MDBceDAwJywKKyAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQor
CisgICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCisgICAgICAgICAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmVfY2xvc2UoKQorCisgICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFt
ZXRlcik6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRl
JywgcGFyYW1ldGVyLm5hbWUoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBw
YXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2Fn
ZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwK
KyAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRlc3Rf
ZnVuY3Rpb24pCisKKyAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fbXNn
c19zZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKKyAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNw
ZWMuCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAgICAgICAg
ICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKKyAgICAgICAgICAgICAgICAg
ICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICBy
c3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAgICAg
ICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCisgICAgICAgICAgICAgICAgICAgIGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0x
KQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAorICAg
ICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCisgICAgICAg
ICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAg
ICAgICAgICAgICAgICAgIHJzdjE9MSkKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4Yzlc
eGM5XHgwN1x4MDAnLAorICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0
aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisKKyAgICAgICAg
ICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2
ZV9jbG9zZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0
ZXIubmFtZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWygnc2VydmVyX25vX2Nv
bnRleHRfdGFrZW92ZXInLCBOb25lKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2Fn
ZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hl
Y2tlciwKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNo
b19wZXJtZXNzYWdlX2RlZmxhdGVfcHJlZmVyZW5jZShzZWxmKToKKyAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhl
IHNwZWMuCisgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4Yzlc
eGM5XHgwN1x4MDAnCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAg
ICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAgICAgICAgIGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0x
KQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAorICAg
ICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAg
ICByc3YxPTEpCisKKyAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAgICAg
IGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2No
ZWNrZXIocGFyYW1ldGVyKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNz
YWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQorCisgICAgICAgIHNlbGYuX3J1
bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZScsICdkZWZsYXRlLWZyYW1lJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hl
Y2tlciwKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNo
b19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9wYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBp
biB0aGUgc3BlYy4KKyAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNk
XHhjOVx4YzlceDA3XHgwMCcKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgK
KyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKKyAgICAgICAgICAgICAgICAg
ICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICBy
c3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnko
CisgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAgICAgICAgICAg
ICAgICAgIHJzdjE9MSkKKworICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgICAg
ICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVzcG9u
c2VfY2hlY2tlcihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUp
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVy
cygpKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAgICAg
ICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0x
MDsgJworICAgICAgICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInXSwKKyAg
ICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRlc3RfZnVu
Y3Rpb24pCisKKyAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX2JhZF9z
ZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgorICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgICAgICAgICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tl
cihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFj
Y2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKKworICAgICAgICBzZWxmLl9ydW5fcGVy
bWVzc2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxh
dGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAorICAgICAgICAgICAgICAgIHJl
c3BvbnNlX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKKworICAgIGRl
ZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFkX3NlcnZlcl9tYXhfd2luZG93
X2JpdHMoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6CisgICAgICAg
ICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCisgICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoKQorCisgICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Cisg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBwZXJt
ZXNzYWdlLWRlZmxhdGUnKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVf
dGVzdCgKKyAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93
aW5kb3dfYml0cz0zMDAwMDAwJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwK
KyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNob19wZXJt
ZXNzYWdlX2RlZmxhdGVfd2l0aF91bmRlZmluZWRfcGFyYW1ldGVyKHNlbGYpOgorICAgICAgICBk
ZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2Uo
KQorICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBk
ZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKKworICAg
ICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAg
WydwZXJtZXNzYWdlLWRlZmxhdGU7IGZvbz1iYXInXSwKKyAgICAgICAgICAgICAgICByZXNwb25z
ZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCisKKyAgICBkZWYgdGVz
dF9lY2hvX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uKHNlbGYpOgorICAgICAgICBzZWxmLl9v
cHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKKyAgICAgICAgc2VsZi5fcnVuX2Nsb3NlX3dpdGhf
Y29kZV9hbmRfcmVhc29uX3Rlc3QoCisgICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1cmVf
d2l0aF9jb2RlX2FuZF9yZWFzb24sIDMzMzMsICdzdW5zdW5zdW5zdW4nKQorCisgICAgZGVmIHRl
c3RfZWNob19jbG9zZV93aXRoX2VtcHR5X2JvZHkoc2VsZik6CisgICAgICAgIHNlbGYuX29wdGlv
bnMucmVzb3VyY2UgPSAnL2Nsb3NlJworICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0aF9jb2Rl
X2FuZF9yZWFzb25fdGVzdCgKKyAgICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRo
X2NvZGVfYW5kX3JlYXNvbiwgTm9uZSwgJycpCisKKyAgICBkZWYgdGVzdF9tdXhfZWNobyhzZWxm
KToKKyAgICAgICAgc2VsZi5fcnVuX211eF90ZXN0KF9tdXhfZWNob19jaGVja19wcm9jZWR1cmUp
CisKKyAgICBkZWYgdGVzdF9jbG9zZV9vbl9wcm90b2NvbF9lcnJvcihzZWxmKToKKyAgICAgICAg
IiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBwcm90b2Nv
bCBlcnJvciBzdGF0dXMKKyAgICAgICAgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSB3
aXRoIHNvbWUgcHJvdG9jb2wgZXJyb3IuCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKGNsaWVudCk6CisgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCisKKyAgICAg
ICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lIHdpdGhvdXQgYW55IHByZWNlZGluZyBzdGFydCBv
ZiBmcmFnbWVudGF0aW9uCisgICAgICAgICAgICAjIGZyYW1lLgorICAgICAgICAgICAgY2xpZW50
LnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDgwXHg4MCcsICcnKQorICAgICAgICAg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAorICAgICAgICAgICAgICAgIGNsaWVudF9m
b3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCisKKyAgICAgICAgc2VsZi5fcnVuX3Rl
c3QodGVzdF9mdW5jdGlvbikKKworICAgIGRlZiB0ZXN0X2Nsb3NlX29uX3Vuc3VwcG9ydGVkX2Zy
YW1lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBjbG9z
ZSBmcmFtZSB3aXRoIHVuc3VwcG9ydGVkIG9wZXJhdGlvbgorICAgICAgICBzdGF0dXMgY29kZSB3
aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSBhc2tpbmcgc29tZSBvcGVyYXRpb24gdGhhdCBpcwor
ICAgICAgICBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIuCisgICAgICAgICIiIgorCisgICAg
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6CisgICAgICAgICAgICBjbGllbnQuY29ubmVj
dCgpCisKKyAgICAgICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIFJTVjMgYml0IHJhaXNlZC4KKyAg
ICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcygnXHg5MVx4ODAn
LCAnJykKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAgICAgICAg
ICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEpCisKKyAg
ICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKKworICAgIGRlZiB0ZXN0X2Nsb3Nl
X29uX2ludmFsaWRfZnJhbWUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZl
ciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggaW52YWxpZCBmcmFtZSBwYXlsb2FkCisgICAgICAg
IGRhdGEgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGFuIGludmFsaWQgZnJhbWUg
bGlrZSBjb250YWluaW5nCisgICAgICAgIGludmFsaWQgVVRGLTggY2hhcmFjdGVyLgorICAgICAg
ICAiIiIKKworICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAgICAg
Y2xpZW50LmNvbm5lY3QoKQorCisgICAgICAgICAgICAjIFRleHQgZnJhbWUgd2l0aCBpbnZhbGlk
IFVURi04IHN0cmluZy4KKyAgICAgICAgICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ1x4ODAnLCBy
YXc9VHJ1ZSkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAgICAg
ICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9B
RF9EQVRBKQorCisgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCisKKyAgICBk
ZWYgdGVzdF9jbG9zZV9vbl9pbnRlcm5hbF9lbmRwb2ludF9lcnJvcihzZWxmKToKKyAgICAgICAg
IiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBpbnRlcm5h
bCBlbmRwb2ludAorICAgICAgICBlcnJvciBzdGF0dXMgY29kZSB3aGVuIHRoZSBoYW5kbGVyIGRv
ZXMgYmFkIG9wZXJhdGlvbi4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fb3B0aW9ucy5y
ZXNvdXJjZSA9ICcvaW50ZXJuYWxfZXJyb3InCisKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24o
Y2xpZW50KToKKyAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKKyAgICAgICAgICAgIGNsaWVu
dC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3Rp
bmcuU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQorCisgICAgICAgIHNlbGYuX3J1bl90
ZXN0KHRlc3RfZnVuY3Rpb24pCisKKyAgICAjIFRPRE8odG95b3NoaW0pOiBBZGQgdGVzdHMgdG8g
dmVyaWZ5IGludmFsaWQgYWJzb2x1dGUgdXJpIGhhbmRsaW5nIGxpa2UKKyAgICAjIGhvc3QgdW5t
YXRjaCwgcG9ydCB1bm1hdGNoIGFuZCBpbnZhbGlkIHBvcnQgZGVzY3JpcHRpb24gKCc6JyB3aXRo
b3V0IHBvcnQKKyAgICAjIG51bWJlcikuCisKKyAgICBkZWYgdGVzdF9hYnNvbHV0ZV91cmkoc2Vs
Zik6CisgICAgICAgICIiIlRlc3RzIGFic29sdXRlIHVyaSByZXF1ZXN0LiIiIgorCisgICAgICAg
IG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAnd3M6
Ly9sb2NhbGhvc3Q6JWQvZWNobycgJSBvcHRpb25zLnNlcnZlcl9wb3J0CisgICAgICAgIHNlbGYu
X3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoX2VjaG9fY2hlY2tfcHJvY2VkdXJlLCBvcHRp
b25zKQorCisgICAgZGVmIHRlc3Rfb3JpZ2luX2NoZWNrKHNlbGYpOgorICAgICAgICAiIiJUZXN0
cyBodHRwIGZhbGxiYWNrIG9uIG9yaWdpbiBjaGVjayBmYWlsLiIiIgorCisgICAgICAgIG9wdGlv
bnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAnL29yaWdpbl9j
aGVjaycKKyAgICAgICAgIyBTZXJ2ZXIgc2hvd3Mgd2FybmluZyBtZXNzYWdlIGZvciBodHRwIDQw
MyBmYWxsYmFjay4gVGhpcyB3YXJuaW5nCisgICAgICAgICMgbWVzc2FnZSBpcyBjb25mdXNpbmcu
IEZvbGxvd2luZyBwaXBlIGRpc3Bvc2VzIHdhcm5pbmcgbWVzc2FnZXMuCisgICAgICAgIHNlbGYu
c2VydmVyX3N0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQorICAgICAgICBzZWxmLl9ydW5faHR0cF9m
YWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMykKKworICAgIGRlZiB0ZXN0X3ZlcnNpb25fY2hlY2so
c2VsZik6CisgICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sgb24gdmVyc2lvbiBjaGVjayBm
YWlsLiIiIgorCisgICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9wdGlv
bnMudmVyc2lvbiA9IDk5CisgICAgICAgIHNlbGYuX3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qob3B0
aW9ucywgNDAwKQorCisKK2NsYXNzIEVuZFRvRW5kSHlCaTAwVGVzdChFbmRUb0VuZFRlc3RCYXNl
KToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAo
c2VsZikKKworICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6CisgICAgICAg
IHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0
aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xpZW50ID0g
Y2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnRfaHliaTAwKHNlbGYuX29wdGlvbnMpCisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCisg
ICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQo
KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZl
ci5waWQpCisKKyAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5fdGVz
dChfZWNob19jaGVja19wcm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9jbG9z
ZShzZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dp
dGhfZ29vZGJ5ZSkKKworCitjbGFzcyBFbmRUb0VuZFRlc3RXaXRoRWNob0NsaWVudChFbmRUb0Vu
ZFRlc3RCYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVzdEJh
c2Uuc2V0VXAoc2VsZikKKworICAgIGRlZiBfY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1
bHQoCisgICAgICAgIHNlbGYsIGV4cGVjdGVkLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKToKKyAg
ICAgICAgYWN0dWFsID0gc3Rkb3V0ZGF0YS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgaWYgYWN0
dWFsICE9IGV4cGVjdGVkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVk
IHJlc3VsdCBvbiBleGFtcGxlIGVjaG8gY2xpZW50OiAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJyVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXhwZWN0ZWQsIGFjdHVhbCkpCisgICAgICAgIGlmIHN0ZGVycmRhdGEgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgZXJyb3Ig
bWVzc2FnZSBvbiBleGFtcGxlIGVjaG8gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj
bGllbnQ6ICVyJyAlIHN0ZGVycmRhdGEpCisKKyAgICBkZWYgdGVzdF9leGFtcGxlX2VjaG9fY2xp
ZW50KHNlbGYpOgorICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBlY2hvX2NsaWVudC5weSBleGFt
cGxlIGNhbiB0YWxrIHdpdGggdGhlIHNlcnZlci4iIiIKKworICAgICAgICBzZXJ2ZXIgPSBzZWxm
Ll9ydW5fc2VydmVyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdGltZS5zbGVlcChfU0VS
VkVSX1dBUk1VUF9JTl9TRUMpCisKKyAgICAgICAgICAgIGNsaWVudF9jb21tYW5kID0gb3MucGF0
aC5qb2luKAorICAgICAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnLCAnZWNob19j
bGllbnQucHknKQorCisgICAgICAgICAgICAjIEV4cGVjdGVkIG91dHB1dCBmb3IgdGhlIGRlZmF1
bHQgbWVzc2FnZXMuCisgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uID0gKCdTZW5kOiBI
ZWxsb1xuJyAnUmVjdjogSGVsbG9cbicKKyAgICAgICAgICAgICAgICB1J1NlbmQ6IFx1NjVlNVx1
NjcyY1xuJyB1J1JlY3Y6IFx1NjVlNVx1NjcyY1xuJworICAgICAgICAgICAgICAgICdTZW5kIGNs
b3NlXG4nICdSZWN2IGFja1xuJykKKworICAgICAgICAgICAgYXJncyA9IFtjbGllbnRfY29tbWFu
ZCwKKyAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2VydmVyX3Bv
cnQpXQorICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3Ms
IHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJk
YXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1w
bGVfZWNob19jbGllbnRfcmVzdWx0KAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVj
dGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQorCisgICAgICAgICAgICAjIFByb2Nlc3Mg
YSBiaWcgbWVzc2FnZSBmb3Igd2hpY2ggZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggaXMgdXNlZC4K
KyAgICAgICAgICAgICMgVG8gaGFuZGxlIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoLCB3c192ZXJz
aW9uIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgICAgICAjIGFjY2Vzc2VkLiBUaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgd3NfdmVyc2lvbiBpcyBjb3JyZWN0bHkgc2V0LgorICAgICAgICAgICAgYmln
X21lc3NhZ2UgPSAnYScgKiAxMDI0CisgICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5k
LAorICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9y
dCksCisgICAgICAgICAgICAgICAgICAgICctbScsIGJpZ19tZXNzYWdlXQorICAgICAgICAgICAg
Y2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNz
LlBJUEUpCisgICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNvbW11
bmljYXRlKCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gKCdTZW5kOiAlc1xuUmVjdjogJXNcblNl
bmQgY2xvc2VcblJlY3YgYWNrXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgIChiaWdfbWVz
c2FnZSwgYmlnX21lc3NhZ2UpKQorICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hv
X2NsaWVudF9yZXN1bHQoCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQsIHN0ZG91dGRhdGEsIHN0
ZGVycmRhdGEpCisKKyAgICAgICAgICAgICMgVGVzdCB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4
dGVuc2lvbi4KKyAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCisgICAgICAgICAg
ICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSwKKyAgICAgICAg
ICAgICAgICAgICAgJy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSddCisgICAgICAgICAgICBjbGll
bnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQ
RSkKKyAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNh
dGUoKQorICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQo
CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24sIHN0ZG91dGRhdGEsIHN0
ZGVycmRhdGEpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nl
c3Moc2VydmVyLnBpZCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0
ZXN0Lm1haW4oKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RfZXh0ZW5zaW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTRhNDM4NDc5MmJmZmQwYTIwZDJlNzU0MzNkYzI5MDljZjkzZGU2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKQEAgLTAsMCArMSwyNzkgQEAK
KyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4K
KyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisj
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGVzdHMg
Zm9yIGV4dGVuc2lvbnMgbW9kdWxlLiIiIgorCisKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHps
aWIKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1v
ZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21t
b24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBleHRlbnNpb25zCisKKworY2xhc3MgRXh0
ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIG5v
bi1jbGFzcyBtZXRob2RzIGluIGV4dGVuc2lvbnMucHkiIiIKKworICAgIGRlZiB0ZXN0X3BhcnNl
X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICdmb29i
YXInKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9w
YXJzZV93aW5kb3dfYml0cywgJyA4ICcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnYThhJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMs
ICcwMDAwMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lv
bnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMDAwMDgnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzB4OCcpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2lu
ZG93X2JpdHMsICc5LjUnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBl
eHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzguMCcpCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOCcpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE1JykKKworICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3df
Yml0cywgJy04JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5z
aW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc3JykKKworICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3df
Yml0cywgJzE2JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAg
VmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxMDAwMDAwMCcpCisK
KworY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcyBnaXZlbgorICAgIGV4dGVuc2lvbiBwYXJh
bWV0ZXIgY29ycmVjdGx5LgorICAgICIiIgorCisgICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6
CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3Io
CisgICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZGVmbGF0ZS1mcmFt
ZScpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IpCisKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3By
b2Nlc3NvcigKKyAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCd4LXdl
YmtpdC1kZWZsYXRlLWZyYW1lJykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9j
ZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcikKKworICAgIGRlZiB0ZXN0X21pbmltYWxfb2ZmZXIoc2Vs
Zik6CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9u
UHJvY2Vzc29yKAorICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJh
bWUtZGVmbGF0ZScpKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNp
b25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRl
JywgcmVzcG9uc2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNw
b25zZS5nZXRfcGFyYW1ldGVycygpKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHpsaWIu
TUFYX1dCSVRTLAorICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3OV9k
ZWZsYXRlci5fd2luZG93X2JpdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29y
Ll9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQorCisgICAgZGVmIHRlc3Rf
b2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6CisgICAgICAgIHBhcmFtZXRlciA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQorICAgICAgICBwYXJh
bWV0ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzEwJykKKyAgICAgICAgcHJv
Y2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1l
dGVyKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9u
c2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRf
cGFyYW1ldGVycygpKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3Iu
X3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0
aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBwYXJhbWV0ZXIg
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKKyAgICAgICAg
cGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcwJykKKyAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFy
YW1ldGVyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0
c193aXRob3V0X3ZhbHVlKHNlbGYpOgorICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9w
YXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsIE5vbmUpCisgICAgICAgIHByb2Nlc3NvciA9IGV4
dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKworICAg
ICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgp
KQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgor
ICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1k
ZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFr
ZW92ZXInLCBOb25lKQorICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBwcm9j
ZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92
ZXIpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92
YWx1ZShzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVyZnJhbWUtZGVmbGF0ZScpCisgICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdu
b19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVu
c2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKworICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQor
CisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToKKyAgICAg
ICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0
ZScpCisgICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKKyAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3Io
cGFyYW1ldGVyKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywg
cmVzcG9uc2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25z
ZS5nZXRfcGFyYW1ldGVycygpKSkKKworCitjbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lv
blByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJBIHVuaXR0
ZXN0IGZvciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29y
IHBhcnNlcworICAgIGdpdmVuIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgorICAgICIi
IgorCisgICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6CisgICAgICAgIHByb2Nlc3NvciA9IGV4
dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCisgICAgICAgICAgICAgICAgY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQorCisgICAg
ZGVmIHRlc3RfbWluaW1hbF9vZmZlcihzZWxmKToKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5z
aW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKKyAgICAgICAgICAgIGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQorCisgICAgICAg
IHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkp
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhfV0JJVFMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25v
X2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3df
Yml0cyhzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIo
J3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKQorICAgICAgICBwcm9jZXNzb3IgPSBleHRl
bnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKwor
ICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFt
ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMn
LCAnMTAnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRl
cnMoKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5Nzlf
ZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2Zf
cmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQorICAgICAgICBwYXJhbWV0
ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICcwJykKKyAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cihwYXJhbWV0ZXIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRv
d19iaXRzX3dpdGhvdXRfdmFsdWUoc2VsZik6CisgICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCisgICAgICAgIHBhcmFtZXRl
ci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKKyAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cihwYXJhbWV0ZXIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4
dF90YWtlb3ZlcihzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJh
bWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKKyAgICAgICAgcHJvY2Vz
c29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJh
bWV0ZXIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJl
c3BvbnNlLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25z
ZS5nZXRfcGFyYW1ldGVycygpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3Iu
X3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICBkZWYgdGVzdF9v
ZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKKyAgICAgICAg
cGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRl
JykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rh
a2VvdmVyJywgJ2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVz
c2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKyAgICBk
ZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgorICAgICAgICBwYXJh
bWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQor
ICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCisgICAgICAgIHBy
b2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3Io
cGFyYW1ldGVyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKworY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3JCdWlsZGluZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRl
c3QgZm9yIGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3Ig
YnVpbGRzCisgICAgYSByZXNwb25zZSBiYXNlZCBvbiBzcGVjaWZpZWQgb3B0aW9ucyBjb3JyZWN0
bHkuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3dfYml0
cyhzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2Ns
aWVudF9tYXhfd2luZG93X2JpdHMnLCBOb25lKQorICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNp
b25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKyAgICAg
ICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDEwKQorCisgICAgICAgIHJl
c3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X21heF93aW5kb3dfYml0cycsICcxMCcpXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQorCisg
ICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF9jbGllbnRf
cGVybWlzc2lvbihzZWxmKToKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKKyAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQorICAgICAgICBwcm9jZXNzb3Iuc2V0
X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCisKKyAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJl
c3BvbnNlKQorCisgICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF90cnVlX2Zvcl9ub19jb250ZXh0
X3Rha2VvdmVyKHNlbGYpOgorICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3Nh
Z2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAorICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCisKKyAgICAgICAgcHJvY2Vzc29yLnNl
dF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQorCisgICAgICAgIHJlc3BvbnNlID0g
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWygnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAgIGRl
ZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfZmFsc2VfZm9yX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6
CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3IoCisgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnKSkKKworICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyKEZhbHNlKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdl
LWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
bGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5k
c2hha2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE3OGFjMDVlNTg3MWQxNTlhNjdmN2U0MTZmMzAyNzAwZmEw
ZjkyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQpAQCAt
MCwwICsxLDE4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEy
LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlLl9iYXNlIG1vZHVsZS4iIiIKKworCitpbXBvcnQg
dW5pdHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9j
YXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1v
biBpbXBvcnQgRXh0ZW5zaW9uUGFyYW1ldGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24g
aW1wb3J0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmNv
bW1vbiBpbXBvcnQgZm9ybWF0X2V4dGVuc2lvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1v
biBpbXBvcnQgcGFyc2VfZXh0ZW5zaW9ucworZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Ll9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKKworCitjbGFzcyBWYWxp
ZGF0ZVN1YnByb3RvY29sVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVz
dCBmb3IgdmFsaWRhdGVfc3VicHJvdG9jb2wgbWV0aG9kLiIiIgorCisgICAgZGVmIHRlc3RfdmFs
aWRhdGVfc3VicHJvdG9jb2woc2VsZik6CisgICAgICAgICMgU2hvdWxkIHN1Y2NlZWQuCisgICAg
ICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQorICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbCgnU2FtcGxlJykKKyAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4
N2Vwcm90b2NvbCcpCisKKyAgICAgICAgIyBTaG91bGQgZmFpbC4KKyAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2
YWxpZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICdzYW1wbGVceDA5cHJvdG9jb2wnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5k
c2hha2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnBy
b3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgxOXByb3RvY29sJykK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3NhbXBsZVx4MjBwcm90b2NvbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVf
c3VicHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9j
b2wnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgdSdcdTY1ZTVcdTY3MmMnKQorCisKK19URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRBID0g
WworICAgICgnZm9vJywgWygnZm9vJywgW10pXSksCisgICAgKCdmb287IGJhcicsIFsoJ2Zvbycs
IFsoJ2JhcicsIE5vbmUpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPWJheicsIFsoJ2ZvbycsIFsoJ2Jh
cicsICdiYXonKV0pXSksCisgICAgKCdmb287IGJhcj1iYXo7IGNhcj1jZHInLCBbKCdmb28nLCBb
KCdiYXInLCAnYmF6JyksICgnY2FyJywgJ2NkcicpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPWJheiwg
Y2FyOyBjZHInLAorICAgICBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKSwgKCdjYXInLCBbKCdj
ZHInLCBOb25lKV0pXSksCisgICAgKCdhLCBiLCBjLCBkJywKKyAgICAgWygnYScsIFtdKSwgKCdi
JywgW10pLCAoJ2MnLCBbXSksICgnZCcsIFtdKV0pLAorICAgIF0KKworCitfVEVTVF9RVU9URURf
RVhURU5TSU9OX0RBVEEgPSBbCisgICAgKCdmb287IGJhcj0iIicsIFsoJ2ZvbycsIFsoJ2Jhcics
ICcnKV0pXSksCisgICAgKCdmb287IGJhcj0iIGJheiAiJywgWygnZm9vJywgWygnYmFyJywgJyBi
YXogJyldKV0pLAorICAgICgnZm9vOyBiYXI9IixiYXo7IicsIFsoJ2ZvbycsIFsoJ2JhcicsICcs
YmF6OycpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPSJcXFxyXFxcbmJheiInLCBbKCdmb28nLCBbKCdi
YXInLCAnXHJcbmJheicpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPSJcXCJiYXoiJywgWygnZm9vJywg
WygnYmFyJywgJyJiYXonKV0pXSksCisgICAgKCdmb287IGJhcj0iXHhiYmJheiInLCBbKCdmb28n
LCBbKCdiYXInLCAnXHhiYmJheicpXSldKSwKKyAgICBdCisKKworX1RFU1RfUkVEVU5EQU5UX1RP
S0VOX0VYVEVOU0lPTl9EQVRBID0gWworICAgICgnZm9vIFx0ICcsIFsoJ2ZvbycsIFtdKV0pLAor
ICAgICgnZm9vOyBcclxuIGJhcicsIFsoJ2ZvbycsIFsoJ2JhcicsIE5vbmUpXSldKSwKKyAgICAo
J2ZvbzsgYmFyPVxyXG4gXHJcbiBiYXonLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAor
ICAgICgnZm9vIDtiYXIgPSBiYXogJywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKKyAg
ICAoJ2ZvbyxiYXIsLGJheicsIFsoJ2ZvbycsIFtdKSwgKCdiYXInLCBbXSksICgnYmF6JywgW10p
XSksCisgICAgXQorCisKK19URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEEgPSBb
CisgICAgKCdmb287IGJhcj0iXHJcbiBcclxuIGJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnICBi
YXonKV0pXSksCisgICAgXQorCisKK2NsYXNzIEV4dGVuc2lvbnNQYXJzZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgIGRlZiBfdmVyaWZ5X2V4dGVuc2lvbl9saXN0KHNlbGYsIGV4cGVj
dGVkX2xpc3QsIGFjdHVhbF9saXN0KToKKyAgICAgICAgIiIiVmVyaWZpZXMgdGhhdCBFeHRlbnNp
b25QYXJhbWV0ZXIgb2JqZWN0cyBpbiBhY3R1YWxfbGlzdCBoYXZlIHRoZQorICAgICAgICBzYW1l
IG1lbWJlcnMgYXMgZXh0ZW5zaW9uIGRlZmluaXRpb25zIGluIGV4cGVjdGVkX2xpc3QuIEV4dGVu
c2lvbgorICAgICAgICBkZWZpbml0aW9uIHVzZWQgaW4gdGhpcyB0ZXN0IGlzIGEgcGFpciBvZiBh
biBleHRlbnNpb24gbmFtZSBhbmQgYQorICAgICAgICBwYXJhbWV0ZXIgZGljdGlvbmFyeS4KKyAg
ICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCks
IGxlbihhY3R1YWxfbGlzdCkpCisgICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChl
eHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6CisgICAgICAgICAgICAobmFtZSwgcGFyYW1ldGVy
cykgPSBleHBlY3RlZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lLCBhY3R1YWwu
X25hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtZXRlcnMsIGFjdHVhbC5f
cGFyYW1ldGVycykKKworICAgIGRlZiB0ZXN0X3BhcnNlKHNlbGYpOgorICAgICAgICBmb3IgZm9y
bWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToK
KyAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKKyAgICAgICAgICAgICAg
ICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQorCisgICAg
ZGVmIHRlc3RfcGFyc2VfcXVvdGVkX2RhdGEoc2VsZik6CisgICAgICAgIGZvciBmb3JtYXR0ZWRf
c3RyaW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1FVT1RFRF9FWFRFTlNJT05fREFUQToKKyAgICAg
ICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKKyAgICAgICAgICAgICAgICBkZWZp
bml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQorCisgICAgZGVmIHRl
c3RfcGFyc2VfcmVkdW5kYW50X2RhdGEoc2VsZik6CisgICAgICAgIGZvciAoZm9ybWF0dGVkX3N0
cmluZywKKyAgICAgICAgICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURVTkRBTlRfVE9LRU5f
RVhURU5TSU9OX0RBVEE6CisgICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3Qo
CisgICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRf
c3RyaW5nKSkKKworICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFudF9xdW90ZWRfZGF0YShzZWxm
KToKKyAgICAgICAgZm9yIChmb3JtYXR0ZWRfc3RyaW5nLAorICAgICAgICAgICAgIGRlZmluaXRp
b24pIGluIF9URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEE6CisgICAgICAgICAg
ICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCisgICAgICAgICAgICAgICAgZGVmaW5pdGlv
biwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKKworICAgIGRlZiB0ZXN0X3Bh
cnNlX2JhZF9kYXRhKHNlbGYpOgorICAgICAgICBfVEVTVF9CQURfRVhURU5TSU9OX0RBVEEgPSBb
CisgICAgICAgICAgICAoJ2ZvbzsgOyAnKSwKKyAgICAgICAgICAgICgnZm9vOyBhIGEnKSwKKyAg
ICAgICAgICAgICgnZm9vIGZvbycpLAorICAgICAgICAgICAgKCcsLCwnKSwKKyAgICAgICAgICAg
ICgnZm9vOyBiYXI9JyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPSJob2dlJyksCisgICAgICAg
ICAgICAoJ2ZvbzsgYmFyPSJhXHIiJyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPSJcXFx4ZmYi
JyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPVxyYScpLAorICAgICAgICAgICAgXQorCisgICAg
ICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nIGluIF9URVNUX0JBRF9FWFRFTlNJT05fREFUQToKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgICAgIEV4dGVuc2lvblBh
cnNpbmdFeGNlcHRpb24sIHBhcnNlX2V4dGVuc2lvbnMsIGZvcm1hdHRlZF9zdHJpbmcpCisKKwor
Y2xhc3MgRm9ybWF0RXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVm
IHRlc3RfZm9ybWF0X2V4dGVuc2lvbnMoc2VsZik6CisgICAgICAgIGZvciBmb3JtYXR0ZWRfc3Ry
aW5nLCBkZWZpbml0aW9ucyBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToKKyAgICAgICAg
ICAgIGV4dGVuc2lvbnMgPSBbXQorICAgICAgICAgICAgZm9yIGRlZmluaXRpb24gaW4gZGVmaW5p
dGlvbnM6CisgICAgICAgICAgICAgICAgKG5hbWUsIHBhcmFtZXRlcnMpID0gZGVmaW5pdGlvbgor
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihuYW1lKQorICAg
ICAgICAgICAgICAgIGV4dGVuc2lvbi5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMKKyAgICAgICAg
ICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24pCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9zdHJpbmcsIGZvcm1hdF9leHRl
bnNpb25zKGV4dGVuc2lvbnMpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAg
dW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9o
eWJpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQxMDY2Nzc0OWU2MzViYTFjOTZmOGIyM2ZiOTdmYWI1OTgzMDUy
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQpA
QCAtMCwwICsxLDUyMSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlIG1vZHVsZS4iIiIKKworCitpbXBvcnQgdW5p
dHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRl
IG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFib3J0ZWRC
eVVzZXJFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBv
cnQgSGFuZHNoYWtlRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jh
c2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5oeWJpIGltcG9ydCBIYW5kc2hha2VyCisKK2ltcG9ydCBtb2NrCisKKworY2xhc3MgUmVxdWVz
dERlZmluaXRpb24ob2JqZWN0KToKKyAgICAiIiJBIGNsYXNzIGZvciBob2xkaW5nIGRhdGEgZm9y
IGNvbnN0cnVjdGluZyBvcGVuaW5nIGhhbmRzaGFrZSBzdHJpbmdzIGZvcgorICAgIHRlc3Rpbmcg
dGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4KKyAgICAiIiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBtZXRob2QsIHVyaSwgaGVhZGVycyk6CisgICAgICAgIHNlbGYubWV0aG9kID0g
bWV0aG9kCisgICAgICAgIHNlbGYudXJpID0gdXJpCisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhl
YWRlcnMKKworCitkZWYgX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCk6CisgICAgcmV0dXJuIFJl
cXVlc3REZWZpbml0aW9uKAorICAgICAgICAnR0VUJywgJy9kZW1vJywKKyAgICAgICAgeydIb3N0
JzogJ3NlcnZlci5leGFtcGxlLmNvbScsCisgICAgICAgICAnVXBncmFkZSc6ICd3ZWJzb2NrZXQn
LAorICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXknOiAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JywKKyAgICAgICAgICdTZWMtV2Vi
U29ja2V0LVZlcnNpb24nOiAnMTMnLAorICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBs
ZS5jb20nfSkKKworCitkZWYgX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKKyAgICBjb25u
ID0gbW9jay5Nb2NrQ29ubignJykKKyAgICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKKyAgICAg
ICAgbWV0aG9kPXJlcXVlc3RfZGVmLm1ldGhvZCwKKyAgICAgICAgdXJpPXJlcXVlc3RfZGVmLnVy
aSwKKyAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2RlZi5oZWFkZXJzLAorICAgICAgICBjb25u
ZWN0aW9uPWNvbm4pCisKKworZGVmIF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KToKKyAgICBo
YW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisg
ICAgcmV0dXJuIGhhbmRzaGFrZXIKKworCitjbGFzcyBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0
Y2hlcihvYmplY3QpOgorICAgICIiIkEgZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNw
YXRjaGVyIHNldHMgdGhlIGktdGggc3VicHJvdG9jb2wKKyAgICBvZiByZXF1ZXN0ZWQgb25lcyB0
byB3c19wcm90b2NvbCB3aGVyZSBpIGlzIGdpdmVuIG9uIGNvbnN0cnVjdGlvbiBhcyBpbmRleAor
ICAgIGFyZ3VtZW50LiBJZiBpbmRleCBpcyBuZWdhdGl2ZSwgZGVmYXVsdF92YWx1ZSB3aWxsIGJl
IHNldCB0byB3c19wcm90b2NvbC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBp
bmRleCwgZGVmYXVsdF92YWx1ZT1Ob25lKToKKyAgICAgICAgc2VsZi5pbmRleCA9IGluZGV4Cisg
ICAgICAgIHNlbGYuZGVmYXVsdF92YWx1ZSA9IGRlZmF1bHRfdmFsdWUKKworICAgIGRlZiBkb19l
eHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKKyAgICAgICAgaWYgc2VsZi5pbmRl
eCA+PSAwOgorICAgICAgICAgICAgY29ubl9jb250ZXh0LndzX3Byb3RvY29sID0gY29ubl9jb250
ZXh0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNbCisgICAgICAgICAgICAgICAgc2VsZi5pbmRleF0K
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9IHNl
bGYuZGVmYXVsdF92YWx1ZQorCisgICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250
ZXh0KToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24o
RXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgQWJvcnRpbmdEaXNwYXRjaGVyKG9iamVj
dCk6CisgICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFp
c2VzIGFuIGV4Y2VwdGlvbiBpbgorICAgIGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhl
IHJlcXVlc3QuCisgICAgIiIiCisKKyAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNv
bm5fY29udGV4dCk6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24oJ0Fu
IGV4Y2VwdGlvbiB0byByZWplY3QgdGhlIHJlcXVlc3QnKQorCisgICAgZGVmIHRyYW5zZmVyX2Rh
dGEoc2VsZiwgY29ubl9jb250ZXh0KToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEFib3J0ZWRC
eVVzZXJEaXNwYXRjaGVyKG9iamVjdCk6CisgICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5n
LiBUaGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuCisgICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBp
biBkb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0LgorICAgICIiIgorCisg
ICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgorICAgICAgICBy
YWlzZSBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCdBbiBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIHRv
IHJlamVjdCB0aGUgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXF1
ZXN0JykKKworICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6CisgICAg
ICAgIHBhc3MKKworCitfRVhQRUNURURfUkVTUE9OU0UgPSAoCisgICAgJ0hUVFAvMS4xIDEwMSBT
d2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKKyAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBz
M3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcblxyXG4nKQorCisKK2NsYXNzIEhhbmRzaGFr
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJBIHVuaXR0ZXN0IGZvciBkcmFmdC1p
ZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyCisgICAgaGFuZHNoYWtl
IHByb2Nlc3Nvci4KKyAgICAiIiIKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZShzZWxmKToK
KyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKSkKKyAgICAgICAgZGlzcGF0Y2hlciA9IG1vY2suTW9ja0Rpc3BhdGNoZXIoKQorICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRpc3Bh
dGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCkKKworICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAorICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9kZW1vJywgcmVxdWVz
dC53c19yZXNvdXJjZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUu
Y29tJywgcmVxdWVzdC53c19vcmlnaW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
cmVxdWVzdC53c19wcm90b2NvbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1
ZXN0LndzX2V4dGVuc2lvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlZFUlNJ
T05fSFlCSV9MQVRFU1QsIHJlcXVlc3Qud3NfdmVyc2lvbikKKworICAgIGRlZiB0ZXN0X2RvX2hh
bmRzaGFrZV93aXRoX2V4dHJhX2hlYWRlcnMoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgIyBBZGQgaGVhZGVycyBub3QgcmVs
YXRlZCB0byBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UuCisgICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ0Zvb0tleSddID0gJ0JhclZhbHVlJworICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydFbXB0eUtleSddID0gJycKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJl
cXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhf
Y2FwaXRhbGl6ZWRfdmFsdWUoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sndXBncmFkZSdd
ID0gJ1dFQlNPQ0tFVCcKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3Qp
CisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0g
J1VQR1JBREUnCisKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2Rl
ZikKKyAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQorICAg
ICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
CisgICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211bHRpcGxlX2Nv
bm5lY3Rpb25fdmFsdWVzKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24n
XSA9ICdVcGdyYWRlLCBrZWVwLWFsaXZlLCAsICcKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5k
c2hha2VyKHJlcXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfYWJvcnRpbmdf
aGFuZHNoYWtlKHNlbGYpOgorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKKyAgICAg
ICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCisgICAg
ICAgICAgICBBYm9ydGluZ0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgIyBkb19leHRyYV9oYW5kc2hh
a2UgcmFpc2VzIGFuIGV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBpdCdzIG5vdCBjYXVnaHQgYnkKKyAg
ICAgICAgIyBkb19oYW5kc2hha2UuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUFib3J0ZWRFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisgICAgZGVmIHRl
c3RfZG9faGFuZHNoYWtlX3dpdGhfcHJvdG9jb2woc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKKworICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hh
a2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcigw
KSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorCisgICAgICAgIEVYUEVDVEVE
X1JFU1BPTlNFID0gKAorICAgICAgICAgICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9j
b2xzXHJcbicKKyAgICAgICAgICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJworICAgICAgICAg
ICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
QWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcbicKKyAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LVByb3RvY29sOiBjaGF0XHJcblxyXG4nKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnY2hhdCcsIHJlcXVlc3Qud3NfcHJvdG9j
b2wpCisKKyAgICBkZWYgdGVzdF9kb19oYW5kc2hha2VfcHJvdG9jb2xfbm90X2luX3JlcXVlc3Rf
YnV0X2luX3Jlc3BvbnNlKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKAorICAgICAgICAgICAgcmVx
dWVzdCwgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIoLTEsICdmb29iYXInKSkKKyAgICAg
ICAgIyBObyByZXF1ZXN0IGhhcyBiZWVuIG1hZGUgYnV0IHdzX3Byb3RvY29sIGlzIHNldC4gSGFu
ZHNoYWtlRXhjZXB0aW9uCisgICAgICAgICMgbXVzdCBiZSByYWlzZWQuCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2Up
CisKKyAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wcm90b2NvbF9ub19wcm90b2NvbF9z
ZWxlY3Rpb24oc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVl
c3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90
b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hh
a2VyKHJlcXVlc3QpCisgICAgICAgICMgd3NfcHJvdG9jb2wgaXMgbm90IHNldC4gSGFuZHNoYWtl
RXhjZXB0aW9uIG11c3QgYmUgcmFpc2VkLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5k
c2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisgICAgZGVmIHRlc3Rf
ZG9faGFuZHNoYWtlX3dpdGhfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJz
WydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKKyAgICAgICAgICAgICdwZXJtZXNzYWdl
LWRlZmxhdGU7IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykKKworICAgICAgICBFWFBFQ1RF
RF9SRVNQT05TRSA9ICgKKyAgICAgICAgICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3Rv
Y29sc1xyXG4nCisgICAgICAgICAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKKyAgICAgICAg
ICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUFjY2VwdDogczNwUExNQmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG4nCisgICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiAnCisgICAgICAgICAgICAgICAgJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXJcclxuJworICAgICAgICAgICAgJ1xy
XG4nKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCisg
ICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKKyAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVYUEVD
VEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAgICAg
IGV4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb24uZ2V0X3BhcmFtZXRl
cl92YWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0
X3Rha2VvdmVyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRl
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNz
b3JzWzBdLm5hbWUoKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3F1b3RlZF9l
eHRlbnNpb25zKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1
ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0
ZW5zaW9ucyddID0gKAorICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZSwgLCAnCisgICAg
ICAgICAgICAndW5rbm93bjsgZSAgID0gICAgIm1jXjIiOyBtYT0iXHJcbiAgICAgIFxcXHJmICAi
OyBwdj1ucnQnKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9k
ZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKKyAg
ICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDIsIGxlbihyZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkKKyAgICAgICAgZmlyc3Rf
ZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uc1swXQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBmaXJzdF9leHRlbnNpb24ubmFt
ZSgpKQorICAgICAgICBzZWNvbmRfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0
ZW5zaW9uc1sxXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd1bmtub3duJywgc2Vjb25kX2V4
dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBb
J2UnLCAnbWEnLCAncHYnXSwgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ21jXjInLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9w
YXJhbWV0ZXJfdmFsdWUoJ2UnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIFxyZiAnLCBz
ZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21hJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ25ydCcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgn
cHYnKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX29wdGlvbmFsX2hlYWRlcnMo
c2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkK
KyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRW1wdHlWYWx1ZSddID0gJycKKyAgICAgICAg
cmVxdWVzdF9kZWYuaGVhZGVyc1snQUtleSddID0gJ0FWYWx1ZScKKworICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICdBVmFsdWUnLCByZXF1
ZXN0LmhlYWRlcnNfaW5bJ0FLZXknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAg
ICAgICAgICcnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKKworICAgIGRlZiB0
ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgaGFuZHNoYWtlciA9IEhh
bmRzaGFrZXIoCisgICAgICAgICAgICBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVl
c3RfZGVmKCkpLAorICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIoKSkKKyAgICAg
ICAgIyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24u
IENoZWNrIHRoYXQgaXQncworICAgICAgICAjIG5vdCBjYXVnaHQgYnkgZG9faGFuZHNoYWtlLgor
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBoYW5kc2hh
a2VyLmRvX2hhbmRzaGFrZSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211eF9h
bmRfZGVmbGF0ZV9mcmFtZShzZWxmKToKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29j
a2V0LUV4dGVuc2lvbnMnXSA9ICgnJXMsICVzJyAlICgKKyAgICAgICAgICAgICAgICBjb21tb24u
TVVYX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04pKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQor
ICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCisgICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVj
dGVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lv
bnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0u
bmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VY
VEVOU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzWzBdLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVG
TEFURV9GUkFNRV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQorCisgICAgZGVmIHRlc3RfZG9f
aGFuZHNoYWtlX3dpdGhfZGVmbGF0ZV9mcmFtZV9hbmRfbXV4KHNlbGYpOgorICAgICAgICByZXF1
ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAorICAg
ICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKKyAgICAgICAgICAg
ICAgICBjb21tb24uTVVYX0VYVEVOU0lPTikpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFr
ZXIocmVxdWVzdCkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICAj
IG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVl
c3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRl
bnNpb24ubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4JykpCisKKyAgICBkZWYgdGVzdF9kb19oYW5k
c2hha2Vfd2l0aF9wZXJtZXNzYWdlX2RlZmxhdGVfYW5kX211eChzZWxmKToKKyAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKKyAgICAgICAgICAgICcl
cywgJXMnICUgKAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OLAorICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKKyAgICAgICAgaGFuZHNoYWtl
ciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQorICAgICAgICBoYW5kc2hha2VyLmRvX2hh
bmRzaGFrZSgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19l
eHRlbnNpb25zKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lP
TiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFt
ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5u
YW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sx
XS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHJlcXVlc3QsICdtdXhf
cHJvY2Vzc29yJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0Lm11eF9wcm9jZXNz
b3IuaXNfYWN0aXZlKCkpCisgICAgICAgIG11eF9leHRlbnNpb25zID0gcmVxdWVzdC5tdXhfcHJv
Y2Vzc29yLmV4dGVuc2lvbnMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtdXhf
ZXh0ZW5zaW9ucykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgbXV4X2V4dGVuc2lv
bnNbMF0ubmFtZSgpKQorCisgICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2FuZF9w
ZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNv
Y2tldC1FeHRlbnNpb25zJ10gPSAoCisgICAgICAgICAgICAnJXMsICVzJyAlICgKKyAgICAgICAg
ICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICBjb21tb24uUEVS
TUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFr
ZXIocmVxdWVzdCkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICAj
IG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVl
c3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJN
RVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0
X2V4dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5NVVhfRVhURU5TSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdkZWZsYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRy
KHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCisKKyAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdHMo
c2VsZik6CisgICAgICAgIGJhZF9jYXNlcyA9IFsKKyAgICAgICAgICAgICgnSFRUUCByZXF1ZXN0
JywKKyAgICAgICAgICAgICBSZXF1ZXN0RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgJ0dF
VCcsICcvZGVtbycsCisgICAgICAgICAgICAgICAgIHsnSG9zdCc6ICd3d3cuZ29vZ2xlLmNvbScs
CisgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6CisgICAgICAgICAgICAgICAgICAgICAg
J01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7JworICAgICAg
ICAgICAgICAgICAgICAgICcgZW4tVVM7IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0IEZpcmVm
b3gvMy41LjMnCisgICAgICAgICAgICAgICAgICAgICAgJyBHVEI2IEdUQkEnLAorICAgICAgICAg
ICAgICAgICAgJ0FjY2VwdCc6CisgICAgICAgICAgICAgICAgICAgICAgJ3RleHQvaHRtbCxhcHBs
aWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKKyAgICAgICAgICAgICAg
ICAgICAgICAnKi8qO3E9MC44JywKKyAgICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2Un
OiAnZW4tdXMsZW47cT0wLjUnLAorICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6
ICdnemlwLGRlZmxhdGUnLAorICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lT
Ty04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNycsCisgICAgICAgICAgICAgICAgICAnS2VlcC1B
bGl2ZSc6ICczMDAnLAorICAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2
ZSd9KSwgTm9uZSwgVHJ1ZSldCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5tZXRob2QgPSAnUE9TVCcKKyAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIG1ldGhvZCcsIHJlcXVlc3RfZGVmLCBOb25lLCBU
cnVlKSkKKworICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
CisgICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydIb3N0J10KKyAgICAgICAgYmFkX2Nh
c2VzLmFwcGVuZCgoJ01pc3NpbmcgSG9zdCcsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKKwor
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAg
IGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10KKyAgICAgICAgYmFkX2Nhc2VzLmFw
cGVuZCgoJ01pc3NpbmcgVXBncmFkZScsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKKworICAg
ICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJl
cXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXSA9ICdub253ZWJzb2NrZXQnCisgICAgICAgIGJh
ZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUp
KQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAg
ICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXQorICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKCgnTWlzc2luZyBDb25uZWN0aW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRy
dWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkK
KyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ0Rvd25ncmFkZScK
KyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIENvbm5lY3Rpb24nLCByZXF1ZXN0X2Rl
ZiwgTm9uZSwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQorICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tl
dC1LZXknXQorICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMtV2ViU29ja2V0
LUtleScsIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdkR2hsSUhOaGJYQnNaU0J1YjI1
alpRPT1nYXJiYWdlJykKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJT
b2NrZXQtS2V5ICh3aXRoIGdhcmJhZ2Ugb24gdGhlIHRhaWwpJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJz
WydTZWMtV2ViU29ja2V0LUtleSddID0gJ1lRPT0nICAjIEJBU0U2NCBvZiAnYScKKyAgICAgICAg
YmFkX2Nhc2VzLmFwcGVuZCgKKyAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkg
KGRlY29kZWQgdmFsdWUgaXMgbm90IDE2IG9jdGV0cyBsb25nKScsCisgICAgICAgICAgICAgcmVx
dWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQorICAgICAgICAjIFRoZSBsYXN0IGNoYXJhY3RlciByaWdodCBiZWZv
cmUgPT0gbXVzdCBiZSBhbnkgb2YgQSwgUSwgdyBhbmQgZy4KKyAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdBUUlEQkFVR0J3
Z0pDZ3NNRFE0UEVDPT0nKQorICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKAorICAgICAgICAgICAg
KCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAocGFkZGluZyBiaXRzIGFyZSBub3QgemVybyknLAor
ICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdkR2hsSUhOaGJYQnNa
U0J1YjI1alpRPT0sZEdobElITmhiWEJzWlNCdWIyNWpaUT09JykKKyAgICAgICAgYmFkX2Nhc2Vz
LmFwcGVuZCgKKyAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKG11bHRpcGxl
IHZhbHVlcyknLAorICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgZGVs
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddCisgICAgICAgIGJh
ZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVlc3Rf
ZGVmLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlKSkKKworICAgICAgICBy
ZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddID0gJzMnCisgICAgICAgIGJhZF9j
YXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0X2RlZiwg
Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorCisgICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMTMsIDEzJworICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uIChtdWx0aXBsZSB2YWx1
ZXMpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkp
CisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAg
ICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnaWxs
ZWdhbFx4MDlwcm90b2NvbCcKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ0lsbGVnYWwgU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Rf
ZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCddID0gJycKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ0VtcHR5IFNlYy1XZWJT
b2NrZXQtUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwg
NDAwLCBUcnVlKSkKKworICAgICAgICBmb3IgKGNhc2VfbmFtZSwgcmVxdWVzdF9kZWYsIGV4cGVj
dGVkX3N0YXR1cywKKyAgICAgICAgICAgICBleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikgaW4g
YmFkX2Nhc2VzOgorICAgICAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKKyAgICAgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2su
TW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdObyBleGNl
cHRpb24gdGhyb3duIGZvciBcJyVzXCcgY2FzZScgJSBjYXNlX25hbWUpCisgICAgICAgICAgICBl
eGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkX3N0YXR1cywgZS5zdGF0dXMpCisgICAgICAgICAgICBleGNlcHQg
VmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4
cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFu
ZHNoYWtlX2h5YmkwMC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2Y5ZjI3Y2EyZDk0MjFiMjMwMTVmNThjODkz
YWNmMWRjMDA5ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtl
X2h5YmkwMC5weQpAQCAtMCwwICsxLDUxNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisj
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgor
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlLmh5YmkwMCBtb2R1bGUu
IiIiCisKKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRl
IHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgSGFuZHNoYWtlcgorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgX3ZhbGlkYXRlX3N1YnBy
b3RvY29sCitmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCitfVEVTVF9LRVkxID0gJzQgQDEgIDQ2
NTQ2eFclMGwgMSA1JworX1RFU1RfS0VZMiA9ICcxMjk5OCA1IFkzIDEgIC5QMDAnCitfVEVTVF9L
RVkzID0gJ15uOmRzWzRVJworX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFID0gJzhqS1NcJ3k6RypD
byxXeGEtJworCisKK19HT09EX1JFUVVFU1QgPSAoCisgICAgODAsCisgICAgJ0dFVCcsCisgICAg
Jy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAg
J0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBf
VEVTVF9LRVkyLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAor
ICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20n
LAorICAgIH0sCisgICAgX1RFU1RfS0VZMykKKworX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9I
RUFERVJfVkFMVUVTID0gKAorICAgIDgwLAorICAgICdHRVQnLAorICAgICcvZGVtbycsCisgICAg
eworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAgICAgICdDb25uZWN0aW9uJzog
J1VQR1JBREUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKKyAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKKyAgICAgICAgJ1VwZ3Jh
ZGUnOiAnV0VCU09DS0VUJywKKyAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tF
WTEsCisgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKKyAgICB9LAorICAg
IF9URVNUX0tFWTMpCisKK19HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFNRVMgPSAo
CisgICAgODAsCisgICAgJ0dFVCcsCisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdoT3NU
JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgJ2NPbk5lQ3RJb04nOiAnVXBncmFkZScsCisgICAg
ICAgICdzRWMtd0Vic09jS2VULWtFeTInOiBfVEVTVF9LRVkyLAorICAgICAgICAnc0VjLXdFYnNP
Y0tlVC1wUm9Ub0NvTCc6ICdzYW1wbGUnLAorICAgICAgICAndVBnUmFEZSc6ICdXZWJTb2NrZXQn
LAorICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAgJ29S
aUdpTic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RFU1RfS0VZMykKKwor
X0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JUID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29j
a2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4n
CisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0
aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJworICAgICdTZWMtV2ViU29ja2V0LU9yaWdp
bjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDog
c2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkK
KworX0dPT0RfUkVTUE9OU0VfU0VDVVJFID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0
IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisg
ICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9u
OiB3c3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46
IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNh
bXBsZVxyXG4nCisgICAgJ1xyXG4nICsKKyAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCisK
K19HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUID0gKAorICAgIDgwODEsCisgICAgJ0dFVCcs
CisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjgwODEn
LAorICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzog
J3NhbXBsZScsCisgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCisgICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9l
eGFtcGxlLmNvbScsCisgICAgfSwKKyAgICBfVEVTVF9LRVkzKQorCitfR09PRF9SRVNQT05TRV9O
T05ERUZBVUxUX1BPUlQgPSAoCisgICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wg
SGFuZHNoYWtlXHJcbicKKyAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICAnQ29ubmVj
dGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhh
bXBsZS5jb206ODA4MS9kZW1vXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6
Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxy
XG4nCisgICAgJ1xyXG4nICsKKyAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCisKK19HT09E
X1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYgPSAoCisgICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQg
UHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKKyAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246
IHdzczovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtT3Jp
Z2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJworICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29s
OiBzYW1wbGVcclxuJworICAgICdcclxuJyArCisgICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNF
KQorCitfR09PRF9SRVFVRVNUX05PX1BST1RPQ09MID0gKAorICAgIDgwLAorICAgICdHRVQnLAor
ICAgICcvZGVtbycsCisgICAgeworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAg
ICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXky
JzogX1RFU1RfS0VZMiwKKyAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKKyAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAgICAgICdPcmlnaW4nOiAnaHR0
cDovL2V4YW1wbGUuY29tJywKKyAgICB9LAorICAgIF9URVNUX0tFWTMpCisKK19HT09EX1JFU1BP
TlNFX05PX1BST1RPQ09MID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29s
IEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgJ0Nvbm5l
Y3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4
YW1wbGUuY29tL2RlbW9cclxuJworICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4
YW1wbGUuY29tXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05T
RSkKKworX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMgPSAoCisgICAgODAsCisg
ICAgJ0dFVCcsCisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1wbGUu
Y29tJywKKyAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAorICAgICAgICAnRW1wdHlWYWx1ZSc6ICcnLAorICAg
ICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAnQUtleSc6
ICdBVmFsdWUnLAorICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAnU2Vj
LVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8v
ZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RFU1RfS0VZMykKKworIyBUT0RPKHR5b3NoaW5v
KTogSW5jbHVkZSBcciBcbiBpbiBrZXkzLCBjaGFsbGVuZ2UgcmVzcG9uc2UuCisKK19HT09EX1JF
UVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAorICAgIDgwLAorICAgICdHRVQnLAorICAg
ICcvZGVtbycsCisgICAgeworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAgICAg
ICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzog
J3kgIFIyIDQ4IFExTzQgIGV8QlYzIGk1IDEgIHUtIDY1JywKKyAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKKyAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywK
KyAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6ICczNiA3ICAgNzQgaSAgOTIgMlwnbSA5IDBH
JywKKyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAg
Jycuam9pbihtYXAoY2hyLCBbMHgwMSwgMHhkMSwgMHhkZCwgMHgzYiwgMHhkMSwgMHg1NiwgMHg2
MywgMHhmZl0pKSkKKworX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAor
ICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAg
J1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwor
ICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwor
ICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAgICcn
LmpvaW4obWFwKGNociwgWzB4MGIsIDB4OTksIDB4ZmEsIDB4NTUsIDB4YmQsIDB4MDEsIDB4MjMs
IDB4N2IsCisgICAgICAgICAgICAgICAgICAgICAgMHg0NSwgMHhhMiwgMHhmMSwgMHhkMCwgMHg4
NywgMHg4YSwgMHhlZSwgMHhlYl0pKSkKKworX0dPT0RfUkVRVUVTVF9XSVRIX1FVRVJZX1BBUlQg
PSAoCisgICAgODAsCisgICAgJ0dFVCcsCisgICAgJy9kZW1vP2U9bWMyJywKKyAgICB7CisgICAg
ICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFk
ZScsCisgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAorICAgICAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAnVXBncmFkZSc6ICdX
ZWJTb2NrZXQnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKKyAg
ICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RFU1Rf
S0VZMykKKworX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9QQVJUID0gKAorICAgICdIVFRQLzEu
MSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdl
YlNvY2tldFxyXG4nCisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2Vi
U29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzJcclxuJworICAgICdT
ZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAnU2VjLVdl
YlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNUX0NI
QUxMRU5HRV9SRVNQT05TRSkKKworX0JBRF9SRVFVRVNUUyA9ICgKKyAgICAoICAjIEhUVFAgcmVx
dWVzdAorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAg
ICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKKyAgICAgICAgICAg
ICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBY
IDEwLjU7JworICAgICAgICAgICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjoxLjkuMS4zKSBH
ZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJworICAgICAgICAgICAgICAgICAgICAgICAgICAn
IEdUQjYgR1RCQScsCisgICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCxhcHBsaWNhdGlv
bi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKKyAgICAgICAgICAgICAgICAgICAg
ICAnKi8qO3E9MC44JywKKyAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnZW4tdXMsZW47
cT0wLjUnLAorICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLGRlZmxhdGUnLAor
ICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtx
PTAuNycsCisgICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAorICAgICAgICAgICAgJ0Nv
bm5lY3Rpb24nOiAna2VlcC1hbGl2ZScsCisgICAgICAgIH0pLAorICAgICggICMgV3JvbmcgbWV0
aG9kCisgICAgICAgIDgwLAorICAgICAgICAnUE9TVCcsCisgICAgICAgICcvZGVtbycsCisgICAg
ICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdD
b25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6
IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1w
bGUnLAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKKyAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAgICAgJ09yaWdpbic6ICdo
dHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAorICAgICAgICBfVEVTVF9LRVkzKSwKKyAg
ICAoICAjIE1pc3NpbmcgVXBncmFkZQorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAg
ICAgICcvZGVtbycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29t
JywKKyAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScs
CisgICAgICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAgICggICMgV3JvbmcgVXBncmFk
ZQorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAgICAg
IHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdDb25u
ZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9U
RVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUn
LAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnTm9uV2ViU29ja2V0JywKKyAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAgICAgJ09yaWdpbic6ICdo
dHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAorICAgICAgICBfVEVTVF9LRVkzKSwKKyAg
ICAoICAjIEVtcHR5IFdlYlNvY2tldC1Qcm90b2NvbAorICAgICAgICA4MCwKKyAgICAgICAgJ0dF
VCcsCisgICAgICAgICcvZGVtbycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKKyAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCc6ICcnLAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29j
a2V0JywKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAg
ICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAorICAg
ICAgICBfVEVTVF9LRVkzKSwKKyAgICAoICAjIFdyb25nIHBvcnQgbnVtYmVyIGZvcm1hdAorICAg
ICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAgICAgIHsKKyAg
ICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjB4NTAnLAorICAgICAgICAgICAgJ0Nvbm5l
Y3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RF
U1RfS0VZMiwKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScs
CisgICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6
Ly9leGFtcGxlLmNvbScsCisgICAgICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAgICgg
ICMgSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaAorICAgICAgICA4MDgwLAorICAgICAg
ICAnR0VUJywKKyAgICAgICAgJy9kZW1vJywKKyAgICAgICAgeworICAgICAgICAgICAgJ0hvc3Qn
OiAnZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisg
ICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKKyAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCisgICAgICAgICAgICAnVXBncmFk
ZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNU
X0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCisgICAg
ICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAgICggICMgSWxsZWdhbCBXZWJTb2NrZXQt
UHJvdG9jb2wKKyAgICAgICAgODAsCisgICAgICAgICdHRVQnLAorICAgICAgICAnL2RlbW8nLAor
ICAgICAgICB7CisgICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAgICAgICAg
ICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTInOiBfVEVTVF9LRVkyLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAn
aWxsZWdhbFx4MDlwcm90b2NvbCcsCisgICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQn
LAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAgICAg
ICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCisgICAgICAgIH0sCisgICAgICAg
IF9URVNUX0tFWTMpLAorKQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpOgor
ICAgIGRhdGEgPSAnJworICAgIGlmIGxlbihyZXF1ZXN0X2RlZikgPiA0OgorICAgICAgICBkYXRh
ID0gcmVxdWVzdF9kZWZbNF0KKyAgICBjb25uID0gbW9jay5Nb2NrQ29ubihkYXRhKQorICAgIGNv
bm4ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIHJlcXVlc3RfZGVmWzBdKQorICAgIHJldHVybiBt
b2NrLk1vY2tSZXF1ZXN0KAorICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWZbMV0sCisgICAgICAg
IHVyaT1yZXF1ZXN0X2RlZlsyXSwKKyAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2RlZlszXSwK
KyAgICAgICAgY29ubmVjdGlvbj1jb25uKQorCisKK2RlZiBfY3JlYXRlX2dldF9tZW1vcml6ZWRf
bGluZXMobGluZXMpOgorICAgICIiIkNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhl
IGdpdmVuIHN0cmluZy4iIiIKKworICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKCk6CisgICAg
ICAgIHJldHVybiBsaW5lcworICAgIHJldHVybiBnZXRfbWVtb3JpemVkX2xpbmVzCisKKworZGVm
IF9jcmVhdGVfcmVxdWVzdHNfd2l0aF9saW5lcyhyZXF1ZXN0X2xpbmVzX3NldCk6CisgICAgcmVx
dWVzdHMgPSBbXQorICAgIGZvciBsaW5lcyBpbiByZXF1ZXN0X2xpbmVzX3NldDoKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQorICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X21lbW9yaXplZF9saW5lcyA9IF9jcmVhdGVfZ2V0X21lbW9yaXplZF9s
aW5lcygKKyAgICAgICAgICAgICAgICBsaW5lcykKKyAgICAgICAgcmVxdWVzdHMuYXBwZW5kKHJl
cXVlc3QpCisgICAgcmV0dXJuIHJlcXVlc3RzCisKKworY2xhc3MgSHlCaTAwSGFuZHNoYWtlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2RlZmF1
bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9S
RVFVRVNUKQorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1v
Y2tEaXNwYXRjaGVyKCkpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVlc3Qud3NfcmVzb3VyY2UpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHJlcXVlc3Qud3Nfb3Jp
Z2luKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29tL2RlbW8nLCBy
ZXF1ZXN0LndzX2xvY2F0aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCBy
ZXF1ZXN0LndzX3Byb3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2NhcGl0YWxp
emVkX2hlYWRlcl92YWx1ZXMoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJfVkFMVUVTKQorICAgICAgICBoYW5k
c2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisgICAg
ICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChf
R09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1
ZXN0X2Nhc2VfbWl4ZWRfaGVhZGVyX25hbWVzKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFNRVMpCisgICAg
ICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIo
KSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9n
b29kX3JlcXVlc3Rfc2VjdXJlX2RlZmF1bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIDQ0MykKKyAgICAgICAgcmVxdWVzdC5pc19odHRw
c18gPSBUcnVlCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2su
TW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICBk
ZWYgdGVzdF9nb29kX3JlcXVlc3Rfbm9uZGVmYXVsdF9wb3J0KHNlbGYpOgorICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUKQorICAg
ICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfTk9OREVGQVVMVF9QT1JULAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
c2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKKworICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVz
dF9zZWN1cmVfbm9uX2RlZmF1bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKKyAgICAgICAgcmVxdWVz
dC5pc19odHRwc18gPSBUcnVlCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVl
c3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hh
a2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRV9OT05E
RUYsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0LndzX3By
b3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2RlZmF1bHRfbm9fcHJvdG9jb2wo
c2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9O
T19QUk9UT0NPTCkKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9j
ay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9DT0wsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAg
ICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfT1BUSU9OQUxfSEVB
REVSUykKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2Nr
RGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ0FWYWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5oZWFkZXJzX2luWydBS2V5J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0eVZhbHVlJ10p
CisKKyAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9ub25wcmludGFibGVfa2V5KHNlbGYp
OgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9O
T05QUklOVEFCTEVfS0VZKQorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRIX05PTlBSSU5U
QUJMRV9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0
LndzX3Byb3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhfcXVlcnlfcGFy
dChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNU
X1dJVEhfUVVFUllfUEFSVCkKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVz
dCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9Q
QVJULAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6Ly9leGFtcGxlLmNvbS9kZW1v
P2U9bWMyJywgcmVxdWVzdC53c19sb2NhdGlvbikKKworICAgIGRlZiB0ZXN0X2JhZF9yZXF1ZXN0
cyhzZWxmKToKKyAgICAgICAgZm9yIHJlcXVlc3QgaW4gbWFwKF9jcmVhdGVfcmVxdWVzdCwgX0JB
RF9SRVFVRVNUUyk6CisgICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhI
YW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisKK2NsYXNzIEh5
QmkwMFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
dGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKKyAgICAgICAgIyBzaG91bGQgc3VjY2Vl
ZC4KKyAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQorICAgICAgICBfdmFs
aWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCisgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2Nv
bCgnc2FtcGxlXHg3ZXByb3RvY29sJykKKyAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdz
YW1wbGVceDIwcHJvdG9jb2wnKQorCisgICAgICAgICMgc2hvdWxkIGZhaWwuCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAn
JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIF92YWxp
ZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4N2Zw
cm90b2NvbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
aHR0cF9oZWFkZXJfdXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzZkYzU3YzM3MzEwNzFmZTI5MDE5MTll
MzNmMjRjMWI1NTlmNjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaHR0cF9o
ZWFkZXJfdXRpbC5weQpAQCAtMCwwICsxLDkwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24u
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRlc3RzIGZvciBodHRwX2hlYWRlcl91dGlsIG1vZHVs
ZS4iIiIKKworCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGh0dHBfaGVhZGVyX3V0aWwKKworCitjbGFzcyBVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgIiIiQSB1bml0dGVzdCBmb3IgaHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCisKKyAg
ICBkZWYgdGVzdF9wYXJzZV9yZWxhdGl2ZV91cmkoc2VsZik6CisgICAgICAgIGhvc3QsIHBvcnQs
IHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJy93cy90ZXN0JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBob3N0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE5vbmUsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3Vy
Y2UpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9hYnNvbHV0ZV91cmkoc2VsZik6CisgICAgICAgIGhv
c3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCisgICAgICAg
ICAgICAnd3M6Ly9sb2NhbGhvc3Q6MTAwODAvd3MvdGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ2xvY2FsaG9zdCcsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwODAs
IHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCisK
KyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3Vy
aSgKKyAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tL3dzL3Rlc3QnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoODAsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3Vy
Y2UpCisKKyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBh
cnNlX3VyaSgKKyAgICAgICAgICAgICd3c3M6Ly9leGFtcGxlLmNvbS8nKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoNDQzLCBwb3J0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2UpCisK
KyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3Vy
aSgKKyAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tOjgwODAnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ODA4MCwgcG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQorCisg
ICAgZGVmIHRlc3RfcGFyc2VfaW52YWxpZF91cmkoc2VsZik6CisgICAgICAgIGhvc3QsIHBvcnQs
IHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vLycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCisKKyAgICAgICAgaG9zdCwgcG9ydCwg
cmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6JykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKKworICAgICAgICBob3N0
LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xvY2Fs
aG9zdDovd3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQorCisK
K2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmls
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMWI4
ZWVmNDMzNzhhOWIwMDYyNWYyMjBjOTdmZTIyZjc0MGE4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQpAQCAtMCwwICsxLDEwNCBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgbWVt
b3JpemluZ2ZpbGUgbW9kdWxlLiIiIgorCisKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHVuaXR0
ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBt
b2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbWVt
b3JpemluZ2ZpbGUKKworCitjbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
IiIiQSB1bml0dGVzdCBmb3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgorCisgICAgZGVmIGNo
ZWNrKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwgbnVtX3JlYWQsIGV4cGVjdGVkX2xpc3QpOgorICAg
ICAgICBmb3IgdW51c2VkIGluIHJhbmdlKG51bV9yZWFkKToKKyAgICAgICAgICAgIG1lbW9yaXpp
bmdfZmlsZS5yZWFkbGluZSgpCisgICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxl
LmdldF9tZW1vcml6ZWRfbGluZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBl
Y3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1
YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiBjaGVja193aXRoX3NpemUo
c2VsZiwgbWVtb3JpemluZ19maWxlLCByZWFkX3NpemUsIGV4cGVjdGVkX2xpc3QpOgorICAgICAg
ICByZWFkX2xpc3QgPSBbXQorICAgICAgICByZWFkX2xpbmUgPSAnJworICAgICAgICB3aGlsZSBU
cnVlOgorICAgICAgICAgICAgbGluZSA9IG1lbW9yaXppbmdfZmlsZS5yZWFkbGluZShyZWFkX3Np
emUpCisgICAgICAgICAgICBsaW5lX2xlbmd0aCA9IGxlbihsaW5lKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGxpbmVfbGVuZ3RoIDw9IHJlYWRfc2l6ZSkKKyAgICAgICAgICAgIGlmIGxp
bmVfbGVuZ3RoID09IDA6CisgICAgICAgICAgICAgICAgaWYgcmVhZF9saW5lICE9ICcnOgorICAg
ICAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5kKHJlYWRfbGluZSkKKyAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICAgICAgcmVhZF9saW5lICs9IGxpbmUKKyAgICAgICAgICAgIGlm
IGxpbmVbbGluZV9sZW5ndGggLSAxXSA9PSAnXG4nOgorICAgICAgICAgICAgICAgIHJlYWRfbGlz
dC5hcHBlbmQocmVhZF9saW5lKQorICAgICAgICAgICAgICAgIHJlYWRfbGluZSA9ICcnCisgICAg
ICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9s
aXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihy
ZWFkX2xpc3QpKQorICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCwgcmVhZCBpbiB6aXAoZXhw
ZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWFkX2xpc3QpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZCwgYWN0dWFsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVh
ZCkKKworICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6CisgICAgICAgIG1l
bW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0
cmluZ0lPKAorICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKKyAgICAg
ICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxuJywg
J1dlbGNvbWUnXSkKKworICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfbGltaXRfbWVt
b3JpemVkX2xpbmVzKHNlbGYpOgorICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5n
ZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKKyAgICAgICAgICAgICAgICAn
SGVsbG9cbldvcmxkXG5XZWxjb21lJyksIDIpCisgICAgICAgIHNlbGYuY2hlY2sobWVtb3Jpemlu
Z19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbiddKQorCisgICAgZGVmIHRlc3RfZ2V0X21l
bW9yaXplZF9saW5lc19lbXB0eV9maWxlKHNlbGYpOgorICAgICAgICBtZW1vcml6aW5nX2ZpbGUg
PSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKKyAgICAg
ICAgICAgICAgICAnJykpCisgICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAxMCwg
W10pCisKKyAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX3dpdGhfc2l6ZShzZWxmKToK
KyAgICAgICAgZm9yIHNpemUgaW4gcmFuZ2UoMSwgMTApOgorICAgICAgICAgICAgbWVtb3Jpemlu
Z19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8o
CisgICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQorICAgICAgICAgICAg
c2VsZi5jaGVja193aXRoX3NpemUobWVtb3JpemluZ19maWxlLCBzaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSddKQor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQorCisKKyMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X21vY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RjMjNhNzNkOGZiMWEwN2FlYjNlNWFl
OTQwMmNjODZiOGZjYzM2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2su
cHkKQEAgLTAsMCArMSwxNDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKworIiIiVGVzdHMgZm9yIG1vY2sgbW9kdWxlLiIiIgorCisKK2ltcG9ydCBRdWV1
ZQoraW1wb3J0IHRocmVhZGluZworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3Bh
dGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgor
Citmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCitjbGFzcyBNb2NrQ29ublRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tDb25uIGNsYXNzLiIiIgorCisg
ICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLl9jb25uID0gbW9jay5Nb2NrQ29ubign
QUJDXHJcbkRFRkdcclxuXHJcbkhJSksnKQorCisgICAgZGVmIHRlc3RfcmVhZGxpbmUoc2VsZik6
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5l
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0RFRkdcclxuJywgc2VsZi5fY29ubi5yZWFk
bGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuJywgc2VsZi5fY29ubi5yZWFk
bGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdISUpLJywgc2VsZi5fY29ubi5yZWFk
bGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWRsaW5l
KCkpCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnRUZHXHJcblxyXG5ISScsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSksnLCBzZWxmLl9jb25uLnJlYWQoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcnLCBzZWxmLl9jb25uLnJlYWQoMTApKQorCisgICAgZGVmIHRlc3RfcmVhZF9hbmRfcmVh
ZGxpbmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG5EJywgc2VsZi5f
Y29ubi5yZWFkKDYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFRkdcclxuJywgc2VsZi5f
Y29ubi5yZWFkbGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuSElKSycsIHNl
bGYuX2Nvbm4ucmVhZCg5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5fY29u
bi5yZWFkbGluZSgpKQorCisgICAgZGVmIHRlc3Rfd3JpdGUoc2VsZik6CisgICAgICAgIHNlbGYu
X2Nvbm4ud3JpdGUoJ0hlbGxvXHJcbicpCisgICAgICAgIHNlbGYuX2Nvbm4ud3JpdGUoJ1dvcmxk
XHJcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvXHJcbldvcmxkXHJcbicsIHNl
bGYuX2Nvbm4ud3JpdHRlbl9kYXRhKCkpCisKKworY2xhc3MgTW9ja0Jsb2NraW5nQ29ublRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tCbG9ja2luZ0Nv
bm4gY2xhc3MuIiIiCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICAiIiJUZXN0
cyB0aGF0IGRhdGEgcHV0IHRvIE1vY2tCbG9ja2luZ0Nvbm4gYnkgcHV0X2J5dGVzIG1ldGhvZCBj
YW4gYmUKKyAgICAgICAgcmVhZCBmcm9tIGl0LgorICAgICAgICAiIiIKKworICAgICAgICBjbGFz
cyBMaW5lUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgorICAgICAgICAgICAgIiIiQSB0ZXN0IGNs
YXNzIHRoYXQgbGF1bmNoZXMgYSB0aHJlYWQsIGNhbGxzIHJlYWRsaW5lIG9uIHRoZQorICAgICAg
ICAgICAgc3BlY2lmaWVkIGNvbm4gcmVwZWF0ZWRseSBhbmQgcHV0cyB0aGUgcmVhZCBkYXRhIHRv
IHRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgIHF1ZXVlLgorICAgICAgICAgICAgIiIiCisKKyAg
ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uLCBxdWV1ZSk6CisgICAgICAgICAgICAg
ICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICAgICAgICAgIHNlbGYu
X3F1ZXVlID0gcXVldWUKKyAgICAgICAgICAgICAgICBzZWxmLl9jb25uID0gY29ubgorICAgICAg
ICAgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCisgICAgICAgICAgICAgICAgc2VsZi5zdGFy
dCgpCisKKyAgICAgICAgICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgICAgICAgICAgd2hpbGUg
VHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Nvbm4ucmVhZGxpbmUoKQor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoZGF0YSkKKworICAgICAgICBjb25u
ID0gbW9jay5Nb2NrQmxvY2tpbmdDb25uKCkKKyAgICAgICAgcXVldWUgPSBRdWV1ZS5RdWV1ZSgp
CisgICAgICAgIHJlYWRlciA9IExpbmVSZWFkZXIoY29ubiwgcXVldWUpCisgICAgICAgIHNlbGYu
ZmFpbFVubGVzcyhxdWV1ZS5lbXB0eSgpKQorICAgICAgICBjb25uLnB1dF9ieXRlcygnRm9vIGJh
clxyXG4nKQorICAgICAgICByZWFkID0gcXVldWUuZ2V0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnRm9vIGJhclxyXG4nLCByZWFkKQorCisKK2NsYXNzIE1vY2tUYWJsZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tUYWJsZSBjbGFzcy4iIiIK
KworICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2RpY3Qoc2VsZik6CisgICAgICAgIHRhYmxlID0g
bW9jay5Nb2NrVGFibGUoeydLZXknOiAnVmFsdWUnfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdW
YWx1ZScsIHRhYmxlWydrZXknXSkKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2xpc3Qoc2Vs
Zik6CisgICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoWygnS2V5JywgJ1ZhbHVlJyldKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQorCisgICAgZGVmIHRl
c3RfY3JlYXRlX2Zyb21fdHVwbGUoc2VsZik6CisgICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFi
bGUoKCgnS2V5JywgJ1ZhbHVlJyksKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUn
LCB0YWJsZS5nZXQoJ0tFWScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRh
YmxlWydrZXknXSkKKworICAgIGRlZiB0ZXN0X3NldF9hbmRfZ2V0KHNlbGYpOgorICAgICAgICB0
YWJsZSA9IG1vY2suTW9ja1RhYmxlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0
YWJsZS5nZXQoJ0tleScpKQorICAgICAgICB0YWJsZVsnS2V5J10gPSAnVmFsdWUnCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLZXknKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ2tleScpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tleSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdW
YWx1ZScsIHRhYmxlWydrZXknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0
YWJsZVsnS0VZJ10pCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVz
dC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlk
YmJiNWQ4ZDRiOWFjMjNlOWM4NzdiYmNlZGI5MjljZTA5MDhjZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CkBAIC0wLDAgKzEsMTM0NiBAQAorIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgorIyBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgbXNndXRp
bCBtb2R1bGUuIiIiCisKKworaW1wb3J0IGFycmF5CitpbXBvcnQgUXVldWUKK2ltcG9ydCByYW5k
b20KK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHpsaWIKKworaW1wb3J0
IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tl
dCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9k
X3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURl
ZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1
dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0
aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Citmcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCB1dGlsCitmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCisjIFdlIHVzZSBvbmUgZml4ZWQg
bm9uY2UgZm9yIHRlc3RpbmcgaW5zdGVhZCBvZiBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUFJO
Ry4KK19NQVNLSU5HX05PTkNFID0gJ0FCQ0QnCisKKworZGVmIF9tYXNrX2h5YmkoZnJhbWUpOgor
ICAgIGZyYW1lX2tleSA9IG1hcChvcmQsIF9NQVNLSU5HX05PTkNFKQorICAgIGZyYW1lX2tleV9s
ZW4gPSBsZW4oZnJhbWVfa2V5KQorICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKKyAgICBy
ZXN1bHQuZnJvbXN0cmluZyhmcmFtZSkKKyAgICBjb3VudCA9IDAKKyAgICBmb3IgaSBpbiB4cmFu
Z2UobGVuKHJlc3VsdCkpOgorICAgICAgICByZXN1bHRbaV0gXj0gZnJhbWVfa2V5W2NvdW50XQor
ICAgICAgICBjb3VudCA9IChjb3VudCArIDEpICUgZnJhbWVfa2V5X2xlbgorICAgIHJldHVybiBf
TUFTS0lOR19OT05DRSArIHJlc3VsdC50b3N0cmluZygpCisKKworZGVmIF9pbnN0YWxsX2V4dGVu
c2lvbl9wcm9jZXNzb3IocHJvY2Vzc29yLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucyk6CisgICAg
cmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgaWYgcmVz
cG9uc2UgaXMgbm90IE5vbmU6CisgICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9u
cyhzdHJlYW1fb3B0aW9ucykKKyAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
cy5hcHBlbmQocHJvY2Vzc29yKQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRh
KAorICAgICAgICByZWFkX2RhdGEsCisgICAgICAgIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1Ob25l
LAorICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1Ob25lKToKKyAgICByZXEgPSBt
b2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJy5qb2luKHJlYWRfZGF0
YSkpKQorICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QKKyAg
ICByZXEud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQorCisgICAgcHJvY2Vzc29yID0gTm9u
ZQorICAgIGlmIGRlZmxhdGVfZnJhbWVfcmVxdWVzdCBpcyBub3QgTm9uZToKKyAgICAgICAgcHJv
Y2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGRlZmxhdGVfZnJhbWVfcmVx
dWVzdCkKKyAgICBlbGlmIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgor
ICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigK
KyAgICAgICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCkKKworICAgIHN0cmVh
bV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCisgICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBOb25l
OgorICAgICAgICBfaW5zdGFsbF9leHRlbnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVxLCBz
dHJlYW1fb3B0aW9ucykKKyAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29w
dGlvbnMpCisKKyAgICByZXR1cm4gcmVxCisKKworZGVmIF9jcmVhdGVfcmVxdWVzdCgqZnJhbWVz
KToKKyAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0IHVzaW5nIGRhdGEgZ2l2ZW4gYXMgZnJhbWVz
LgorCisgICAgZnJhbWVzIHdpbGwgYmUgcmV0dXJuZWQgb24gY2FsbGluZyByZXF1ZXN0LmNvbm5l
Y3Rpb24ucmVhZCgpIHdoZXJlIHJlcXVlc3QKKyAgICBpcyBNb2NrUmVxdWVzdCByZXR1cm5lZCBi
eSB0aGlzIGZ1bmN0aW9uLgorICAgICIiIgorCisgICAgcmVhZF9kYXRhID0gW10KKyAgICBmb3Ig
KGhlYWRlciwgYm9keSkgaW4gZnJhbWVzOgorICAgICAgICByZWFkX2RhdGEuYXBwZW5kKGhlYWRl
ciArIF9tYXNrX2h5YmkoYm9keSkpCisKKyAgICByZXR1cm4gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21f
cmF3ZGF0YShyZWFkX2RhdGEpCisKKworZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpOgor
ICAgICIiIkNyZWF0ZXMgTW9ja1JlcXVlc3QuCisKKyAgICBEYXRhIHdyaXR0ZW4gdG8gYSBNb2Nr
UmVxdWVzdCBjYW4gYmUgcmVhZCBvdXQgYnkgY2FsbGluZworICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKS4KKyAgICAiIiIKKworICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3Qo
Y29ubmVjdGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKSkKKyAgICByZXEud3NfdmVyc2lvbiA9
IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCisgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1P
cHRpb25zKCkKKyAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMp
CisgICAgcmV0dXJuIHJlcQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShyZWFkX2Rh
dGE9JycpOgorICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tD
b25uKHJlYWRfZGF0YSkpCisgICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQor
ICAgIHJldHVybiByZXEKKworCitkZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUo
KToKKyAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tp
bmdDb25uKCkpCisgICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQorICAgIHJl
dHVybiByZXEKKworCitjbGFzcyBCYXNpY01lc3NhZ2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICAiIiJCYXNpYyB0ZXN0cyBmb3IgU3RyZWFtLiIiIgorCisgICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKKyAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHg4MVx4MDVIZWxsbycsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKKworICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI1CisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBw
YXlsb2FkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZCcgKyBwYXlsb2FkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVkaXVtX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHBh
eWxvYWQgPSAnYScgKiAxMjYKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisg
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdlXHgwMFx4N2UnICsgcGF5bG9hZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICAg
ICAgcGF5bG9hZCA9ICdhJyAqICgoMSA8PCAxNikgLSAxKQorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5
bG9hZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2VceGZmXHhmZicgKyBwYXls
b2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbGFyZ2VfbWVzc2FnZShzZWxmKToKKyAgICAg
ICAgcGF5bG9hZCA9ICdhJyAqICgxIDw8IDE2KQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4
MDFceDAwXHgwMCcgKyBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91
bmljb2RlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKKyAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQorICAgICAgICAjIFUr
NjVlNSBpcyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVURi04CisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4ODFceDAzXHhlNlx4OTdceGE1JywKKyAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX21l
c3NhZ2VfZnJhZ21lbnRzKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgRmFsc2Up
CisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcgJywgRmFsc2UpCisgICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIEZhbHNlKQorICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnIScsIFRydWUpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4MDFceDA1SGVsbG9ceDAwXHgwMSBceDAwXHgwNVdvcmxkXHg4MFx4MDEh
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJt
aW5hdGlvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisgICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnLCBGYWxzZSkK
KyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIFRydWUpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDBjSGVsbG8gV29ybGQhXHg4MFx4MDAnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKwor
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHg4MVx4ODUnLCAnSGVsbG8nKSwgKCdceDgx
XHg4NicsICdXb3JsZCEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
V29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICAgICAgcGF5
bG9hZCA9ICdhJyAqIDEyNQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4
MVx4ZmQnLCBwYXlsb2FkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVk
aXVtX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZlXHgwMFx4N2UnLCBwYXlsb2FkKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKKworICAgICAgICBwYXlsb2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEpCisg
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4ZmZceGZmJywgcGF5
bG9hZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2xhcmdlX21lc3NhZ2Uo
c2VsZik6CisgICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikKKyAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDFceDAwXHgwMCcsIHBheWxvYWQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRl
c3RfcmVjZWl2ZV9sZW5ndGhfbm90X2VuY29kZWRfdXNpbmdfbWluaW1hbF9udW1iZXJfb2ZfYnl0
ZXMoc2VsZik6CisgICAgICAgICMgTG9nIHdhcm5pbmcgb24gcmVjZWl2aW5nIGJhZCBwYXlsb2Fk
IGxlbmd0aCBmaWVsZCB0aGF0IGRvZXNuJ3QgdXNlCisgICAgICAgICMgbWluaW1hbCBudW1iZXIg
b2YgYnl0ZXMgYnV0IGNvbnRpbnVlIHByb2Nlc3NpbmcuCisKKyAgICAgICAgcGF5bG9hZCA9ICdh
JworICAgICAgICAjIDEgYnl0ZSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aG91dCBleHRlbmRlZCBw
YXlsb2FkIGxlbmd0aCBmaWVsZC4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
KyAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMScs
IHBheWxvYWQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3Vu
aWNvZGUoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHg4
MycsICdceGU2XHg5Y1x4YWMnKSkKKyAgICAgICAgIyBVKzY3MmMgaXMgZW5jb2RlZCBhcyBlNiw5
YyxhYyBpbiBVVEYtOAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2NzJjJywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3Nh
Z2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6CisgICAgICAgICMgXHg4MCBhbmQgXHg4MSBhcmUg
aW52YWxpZCBhcyBVVEYtOC4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4
ODFceDgyJywgJ1x4ODBceDgxJykpCisgICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNob3Vs
ZCByYWlzZSBJbnZhbGlkVVRGOEV4Y2VwdGlvbgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJ
bnZhbGlkVVRGOEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCisKKyAg
ICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50cyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwKKyAgICAg
ICAgICAgICgnXHgwMFx4ODEnLCAnICcpLAorICAgICAgICAgICAgKCdceDAwXHg4NScsICdXb3Js
ZCcpLAorICAgICAgICAgICAgKCdceDgwXHg4MScsICchJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQor
CisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfdW5pY29kZShzZWxmKToKKyAgICAgICAg
IyBVVEYtOCBlbmNvZGVzIFUrNmYyMiBpbnRvIGU2YmNhMiBhbmQgVSs1YjU3IGludG8gZTVhZDk3
LgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDAx
XHg4MicsICdceGU2XHhiYycpLAorICAgICAgICAgICAgKCdceDAwXHg4MicsICdceGEyXHhlNScp
LAorICAgICAgICAgICAgKCdceDgwXHg4MicsICdceGFkXHg5NycpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHUnXHU2ZjIyXHU1YjU3JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJt
aW5hdGlvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKKyAgICAg
ICAgICAgICgnXHgwMVx4OGMnLCAnSGVsbG8gV29ybGQhJyksICgnXHg4MFx4ODAnLCAnJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfZHVwbGlj
YXRlX3N0YXJ0KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAg
ICAgICAgICAgKCdceDAxXHg4NScsICdIZWxsbycpLCAoJ1x4MDFceDg1JywgJ1dvcmxkJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJh
Z21lbnRzX2ludGVybWVkaWF0ZV9idXRfbm90X3N0YXJ0ZWQoc2VsZik6CisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDAwXHg4NScsICdIZWxsbycpKQorICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19lbmRf
YnV0X25vdF9zdGFydGVkKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KCgnXHg4MFx4ODUnLCAnSGVsbG8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRp
bC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQor
CisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6CisgICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCisgICAgICAgICAgICAoJ1x4OGZceDg2JywgJ0lHTk9S
RScpLCAoJ1x4ODFceDg1JywgJ0hlbGxvJyksCisgICAgICAgICAgICAoJ1x4OGZceDg5JywgJ0RJ
U1JFR0FSRCcpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScpKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQor
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCBy
ZXF1ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfY2xvc2Uoc2VsZik6
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCisgICAgICAgICAgICAoJ1x4ODhc
eDhhJywgc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDAwLCByZXF1ZXN0LndzX2Nsb3NlX2NvZGUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0dvb2QgYnllJywgcmVxdWVzdC53c19jbG9zZV9yZWFzb24p
CisKKyAgICBkZWYgdGVzdF9zZW5kX2xvbmdlc3RfY2xvc2Uoc2VsZik6CisgICAgICAgIHJlYXNv
biA9ICdhJyAqIDEyMworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAg
ICAgICAgKCdceDg4XHhmZCcsCisgICAgICAgICAgICAgc3RydWN0LnBhY2soJyFIJywgY29tbW9u
LlNUQVRVU19OT1JNQUxfQ0xPU1VSRSkgKyByZWFzb24pKQorICAgICAgICByZXF1ZXN0LndzX3N0
cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2VfY29kZSwgY29tbW9uLlNUQVRVU19OT1JN
QUxfQ0xPU1VSRSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3NlX3Jl
YXNvbiwgcmVhc29uKQorCisgICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV90b29fbG9uZyhzZWxmKToK
KyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5T
VEFUVVNfTk9STUFMX0NMT1NVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEy
NCkKKworICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfaW5jb25zaXN0ZW50X2NvZGVfYW5kX3JlYXNv
bihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisgICAgICAgICMg
cmVhc29uIHBhcmFtZXRlciBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgd2hlbiBjb2RlIGlzIE5vbmUu
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhJykKKworICAg
IGRlZiB0ZXN0X3NlbmRfcGluZyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEn
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwY0hlbGxvIFdvcmxkIScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQor
CisgICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0X3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAn
YScgKiAxMjUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDdkJyArICdhJyAqIDEy
NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX3BpbmdfdG9vX2xvbmcoc2VsZik6CisgICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyht
c2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
bXNndXRpbC5zZW5kX3BpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEyNikKKworICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfcGluZyhzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgcmVjZWl2aW5nIGEgcGluZyBjb250cm9s
IGZyYW1lLiIiIgorCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIG1lc3NhZ2UpOgorICAg
ICAgICAgICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCisKKyAgICAgICAgIyBTdHJlYW0gYXV0b21h
dGljYWxseSByZXNwb25kIHRvIHBpbmcgd2l0aCBwb25nIHdpdGhvdXQgYW55IGFjdGlvbgorICAg
ICAgICAjIGJ5IGFwcGxpY2F0aW9uIGxheWVyLgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KAorICAgICAgICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1Jywg
J1dvcmxkJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDA1
SGVsbG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAg
ICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCisgICAg
ICAgIHJlcXVlc3Qub25fcGluZ19oYW5kbGVyID0gaGFuZGxlcgorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmVxdWVzdC5jYWxsZWQpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZl
X2xvbmdlc3RfcGluZyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
KyAgICAgICAgICAgICgnXHg4OVx4ZmQnLCAnYScgKiAxMjUpLCAoJ1x4ODFceDg1JywgJ1dvcmxk
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDdkJyArICdh
JyAqIDEyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3BpbmdfdG9vX2xvbmcoc2VsZik6
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDBceDdlJywg
J2EnICogMTI2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJh
bWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQorCisgICAgZGVmIHRl
c3RfcmVjZWl2ZV9wb25nKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBwb25n
IGNvbnRyb2wgZnJhbWUuIiIiCisKKyAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVzc2Fn
ZSk6CisgICAgICAgICAgICByZXF1ZXN0LmNhbGxlZCA9IFRydWUKKworICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAo
J1x4ODFceDg1JywgJ1dvcmxkJykpCisgICAgICAgIHJlcXVlc3Qub25fcG9uZ19oYW5kbGVyID0g
aGFuZGxlcgorICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSGVsbG8nKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhlbGxvJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAgICAgICMgVmFs
aWQgcG9uZyBpcyByZWNlaXZlZCwgYnV0IHJlY2VpdmVfbWVzc2FnZSB3b24ndCByZXR1cm4gZm9y
IGl0LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQorICAgICAgICAjIENoZWNrIHRoYXQgbm90aGluZyB3YXMgd3JpdHRl
biBhZnRlciByZWNlaXZlX21lc3NhZ2UgY2FsbC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4OVx4MDVIZWxsbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0LmNh
bGxlZCkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfdW5zb2xpY2l0ZWRfcG9uZyhzZWxmKToKKyAg
ICAgICAgIyBVbnNvbGljaXRlZCBwb25nIGlzIGFsbG93ZWQgZnJvbSBIeUJpIDA3LgorICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDhhXHg4NScsICdI
ZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCisgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpCisKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKKyAg
ICAgICAgICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQor
ICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSnVtYm8nKQorICAgICAgICAjIEJv
ZHkgbWlzbWF0Y2guCisgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCisK
KyAgICBkZWYgdGVzdF9waW5nX2Nhbm5vdF9iZV9mcmFnbWVudGVkKHNlbGYpOgorICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwOVx4ODUnLCAnSGVsbG8nKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0KQorCisgICAgZGVmIHRlc3RfcGluZ193aXRoX3Rvb19sb25n
X3BheWxvYWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5
XHhmZVx4MDFceDAwJywgJ2EnICogMjU2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNn
dXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
KQorCisKK2NsYXNzIERlZmxhdGVGcmFtZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIi
IlRlc3RzIGZvciBjaGVja2luZyBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4iIiIKKworICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVG
TEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCisgICAgICAgICAgICAnJywg
ZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ1dvcmxkJykKKworICAgICAgICBleHBlY3RlZCA9ICcnCisKKyAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KKyAgICAgICAgZXhwZWN0ZWQg
Kz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKKyAgICAgICAgZXhwZWN0ZWQgKz0g
Y29tcHJlc3NlZF9oZWxsbworCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5j
b21wcmVzcygnV29ybGQnKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJl
c3NlZF93b3JsZFs6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfd29ybGQpCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKKworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfYmZpbmFsKHNlbGYpOgorICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCisgICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lv
bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9u
X3Byb2Nlc3NvcnMpKQorICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KKyAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNz
b3Iuc2V0X2JmaW5hbChUcnVlKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnSGVsbG8nKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQn
KQorCisgICAgICAgIGV4cGVjdGVkID0gJycKKworICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3NlZF9oZWxsbyArIGNocigwKQorICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxl
bihjb21wcmVzc2VkX2hlbGxvKQorICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxv
CisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
KyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCisg
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkK
KyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKKyAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKKyAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZV9jb21wX2JpdChzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBleHRlbnNpb24gPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
KyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCisgICAgICAg
ICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQorICAg
ICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnNbMF0KKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykK
KyAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IuZGlzYWJsZV9vdXRnb2luZ19jb21wcmVz
c2lvbigpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisg
ICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lv
bigpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAg
ICAgICAgZXhwZWN0ZWQgPSAnJworCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVz
cy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNz
LmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNv
bXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KKwor
ICAgICAgICBleHBlY3RlZCArPSAnXHg4MVx4MDVIZWxsbycKKworICAgICAgICBjb21wcmVzc2Vk
XzJuZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGNvbXByZXNz
ZWRfMm5kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAg
ICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KKyAgICAg
ICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pCisgICAg
ICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfMm5kX2hlbGxvCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisg
ICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNl
bGYpOgorICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQorCisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRl
cignbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVx
dWVzdD1leHRlbnNpb24pCisgICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKKyAgICAgICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29tcHJl
c3NlZF9tZXNzYWdlID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJl
c3NlZF9tZXNzYWdlICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAg
ICBjb21wcmVzc2VkX21lc3NhZ2UgPSBjb21wcmVzc2VkX21lc3NhZ2VbOi00XQorICAgICAgICBl
eHBlY3RlZCA9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfbWVzc2FnZSkKKyAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF9tZXNzYWdlCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
KyAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RfcGFyYW1l
dGVycyhzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgdGhhdCBpZiB0aGVyZSdzIGFueXRoaW5nIHdy
b25nIHdpdGggZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24KKyAgICAgICAgcmVxdWVzdCwgZGVmbGF0
ZS1mcmFtZSBpcyByZWplY3RlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
CisgICAgICAgICMgbWF4X3dpbmRvd19iaXRzIGxlc3MgdGhhbiA4IGlzIGlsbGVnYWwuCisgICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnNycpCisgICAg
ICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKSkKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgIyBtYXhfd2luZG93
X2JpdHMgZ3JlYXRlciB0aGFuIDE1IGlzIGlsbGVnYWwuCisgICAgICAgIGV4dGVuc2lvbi5hZGRf
cGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTYnKQorICAgICAgICBwcm9jZXNzb3IgPSBE
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKyAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgICMgTm9uIGludGVnZXIgbWF4X3dpbmRvd19iaXRz
IGlzIGlsbGVnYWwuCisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93
X2JpdHMnLCAnZm9vYmFyJykKKyAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQorCisgICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KQorICAgICAgICAjIG5vX2NvbnRleHRfdGFrZW92ZXIgbXVzdCBub3QgaGF2ZSBhbnkgdmFsdWUu
CisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywg
J2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcihleHRlbnNpb24pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFt
ZXRlcnMoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorICAgICAgICBwcm9jZXNzb3IgPSBE
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICBwcm9jZXNz
b3Iuc2V0X3Jlc3BvbnNlX3dpbmRvd19iaXRzKDgpCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vz
c29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmVz
cG9uc2UuaGFzX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzgnLCByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtYXhfd2luZG93X2Jp
dHMnKSkKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKyAgICAgICAgcHJvY2Vzc29yLnNl
dF9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCisgICAgICAgIHJlc3BvbnNlID0g
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmVzcG9uc2UuaGFzX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicpKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3Zh
bHVlKCdub19jb250ZXh0X3Rha2VvdmVyJykgaXMgTm9uZSkKKworICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfbWVzc2FnZShzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAor
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKKworICAgICAgICBkYXRhID0gJycKKworICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICBkYXRhICs9ICdceGMx
JWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21h
c2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQorCisgICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0
ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcpCisgICAgICAgIGNvbXByZXNzZWRfd2Vi
c29ja2V0ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCisgICAgICAgIGNvbXByZXNz
ZWRfd2Vic29ja2V0ICs9ICdceDAwJworICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihj
b21wcmVzc2VkX3dlYnNvY2tldCkgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5Ymko
Y29tcHJlc3NlZF93ZWJzb2NrZXQpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJl
c3MuY29tcHJlc3MoJ1dvcmxkJykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzZWRfd29ybGRbOi00XQorICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21w
cmVzc2VkX3dvcmxkKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVz
c2VkX3dvcmxkKQorCisgICAgICAgICMgQ2xvc2UgZnJhbWUKKyAgICAgICAgZGF0YSArPSAnXHg4
OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScp
CisKKyAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0
PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV2ViU29j
a2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jbGllbnRfdXNpbmdfc21hbGxl
cl93aW5kb3coc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhhdCBmcmFtZXMgY29taW5nIGZyb20g
YSBjbGllbnQgd2hpY2ggaXMgdXNpbmcgc21hbGxlciB3aW5kb3cKKyAgICAgICAgc2l6ZSB0aGF0
IHRoZSBzZXJ2ZXIgYXJlIGNvcnJlY3RseSByZWNlaXZlZC4KKyAgICAgICAgIiIiCisKKyAgICAg
ICAgIyBVc2luZyB0aGUgc21hbGxlc3Qgd2luZG93IGJpdHMgb2YgOCBmb3IgZ2VuZXJhdGluZyBp
bnB1dCBmcmFtZXMuCisgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtOCkKKwor
ICAgICAgICBkYXRhID0gJycKKworICAgICAgICAjIFVzZSBhIGZyYW1lIHdob3NlIGNvbnRlbnQg
aXMgYmlnZ2VyIHRoYW4gdGhlIGNsaWVudHMnIERFRkxBVEUgd2luZG93CisgICAgICAgICMgc2l6
ZSBiZWZvcmUgY29tcHJlc3Npb24uIFRoZSBjb250ZW50IG1haW5seSBjb25zaXN0cyBvZiAnYScg
YnV0CisgICAgICAgICMgcmVwZXRpdGlvbiBvZiAnYicgaXMgcHV0IGF0IHRoZSBoZWFkIGFuZCB0
YWlsIHNvIHRoYXQgaWYgdGhlIHdpbmRvdworICAgICAgICAjIHNpemUgaXMgYmlnLCB0aGUgaGVh
ZCBpcyBiYWNrLXJlZmVyZW5jZWQgYnV0IGlmIHNtYWxsLCBub3QuCisgICAgICAgIHBheWxvYWQg
PSAnYicgKiA2NCArICdhJyAqIDEwMjQgKyAnYicgKiA2NAorICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkKKyAgICAgICAgY29tcHJlc3NlZF9oZWxs
byArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICBkYXRhICs9ICdceGMxJWMn
ICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tf
aHliaShjb21wcmVzc2VkX2hlbGxvKQorCisgICAgICAgICMgQ2xvc2UgZnJhbWUKKyAgICAgICAg
ZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSAr
ICdHb29kIGJ5ZScpCisKKyAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9m
cmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2Fk
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2NvbXBfYml0KHNlbGYpOgorICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lP
TiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorCisgICAgICAgIGRhdGEgPSAnJwor
CisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQor
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisg
ICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkK
KyAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCisKKyAgICAgICAg
ZGF0YSArPSAnXHg4MVx4ODUnICsgX21hc2tfaHliaSgnSGVsbG8nKQorCisgICAgICAgIGNvbXBy
ZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgY29tcHJl
c3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21w
cmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAg
ICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxsb1s6LTRdCisg
ICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfMm5kX2hlbGxvKSB8IDB4
ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkXzJuZF9oZWxsbykKKwor
ICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9m
cm9tX3Jhd2RhdGEoCisgICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0
ZW5zaW9uKQorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6CisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisg
ICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3ZhcmlvdXNfYnR5cGUoc2VsZik6CisgICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAg
ZGF0YSA9ICcnCisKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNz
KCdIZWxsbycpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hl
bGxvWzotNF0KKyAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxs
bykgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykK
KworICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJT
b2NrZXQnKQorICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfRklOSVNIKQorICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKKyAg
ICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4
MCkKKyAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQorCisg
ICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisKKyAg
ICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCisgICAg
ICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
CisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KKyAgICAg
ICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQorICAg
ICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93b3JsZCkKKworICAgICAgICAjIENs
b3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0
LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQorCisgICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQor
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAg
ICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKworY2xhc3MgUGVyTWVzc2Fn
ZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBmb3IgcGVybWVz
c2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4iIiIKKworICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFt
ZXRlcnMoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoCisgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKKyAg
ICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVy
JywgTm9uZSkKKyAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAgICAg
cmVzcG9uc2UuaGFzX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIE5vbmUsIHJlc3BvbnNlLmdldF9w
YXJhbWV0ZXJfdmFsdWUoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykpCisKKyAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbW1v
bi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICBleHRlbnNpb24uYWRkX3Bh
cmFtZXRlcignY2xpZW50X21heF93aW5kb3dfYml0cycsIE5vbmUpCisgICAgICAgIHByb2Nlc3Nv
ciA9IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKworICAg
ICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoOCkKKyAgICAgICAgcHJv
Y2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQorICAgICAgICByZXNw
b25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKKyAgICAgICAgICAgICc4JywgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1
ZSgnY2xpZW50X21heF93aW5kb3dfYml0cycpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoCisg
ICAgICAgICAgICByZXNwb25zZS5oYXNfcGFyYW1ldGVyKCdjbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgTm9uZSwKKyAg
ICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ2NsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyJykpCisKKyAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6CisgICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAg
Y29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJtZXNz
YWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRF
RkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycgJSBsZW4o
Y29tcHJlc3NlZF9oZWxsbykKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX2VtcHR5X21lc3NhZ2Uoc2VsZik6Cisg
ICAgICAgICIiIlRlc3QgdGhhdCBhbiBlbXB0eSBtZXNzYWdlIGlzIGNvbXByZXNzZWQgY29ycmVj
dGx5LiIiIgorCisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
CisgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisg
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAg
ICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisKKyAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycpCisKKyAgICAgICAgIyBQYXlsb2Fk
IGluIGJpbmFyeTogMGIwMDAwMDAwMAorICAgICAgICAjIEZyb20gTFNCLAorICAgICAgICAjIC0g
MSBiaXQgb2YgQkZJTkFMICgwKQorICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21w
cmVzc2lvbikKKyAgICAgICAgIyAtIDUgYml0cyBvZiBwYWRkaW5nCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4YzFceDAxXHgwMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
X3dpdGhfbnVsbF9jaGFyYWN0ZXIoc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhhdCBhIHNpbXBs
ZSBwYXlsb2FkIChvbmUgbnVsbCkgaXMgZnJhbWVkIGNvcnJlY3RseS4iIiIKKworICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgICAgIGNv
bW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2Fn
ZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQorCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdceDAwJykKKworICAgICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAwYjAx
MTAwMDEwIDBiMDAwMDAwMDAgMGIwMDAwMDAwMAorICAgICAgICAjIEZyb20gTFNCLAorICAgICAg
ICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQorICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFICgw
MSB0aGF0IG1lYW5zIGZpeGVkIEh1ZmZtYW4pCisgICAgICAgICMgLSA4IGJpdHMgb2YgdGhlIGZp
cnN0IGNvZGUgKDAwMTEwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZSBsaXRlcmFsCisgICAg
ICAgICMgICBhbHBoYWJldCAweDAwKQorICAgICAgICAjIC0gNyBiaXRzIG9mIHRoZSBzZWNvbmQg
Y29kZSAoMDAwMDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0aGUKKyAgICAgICAgIyAgIGVuZC1v
Zi1ibG9jaykKKyAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKKyAgICAgICAgIyAtIDIg
Yml0cyBvZiBCVFlQRSAobm8gY29tcHJlc3Npb24pCisgICAgICAgICMgLSAyIGJpdHMgb2YgcGFk
ZGluZworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGMxXHgwM1x4NjJceDAwXHgwMCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQorCisgICAgZGVmIHRlc3Rfc2VuZF90d29fbWVzc2FnZXMoc2VsZik6CisgICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29tbW9u
LlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJl
cXVlc3QsICdIZWxsbycpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdX
b3JsZCcpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5N
QVhfV0JJVFMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSAnJworCisgICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hl
bGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdc
eGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXBy
ZXNzZWRfaGVsbG8KKworICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJl
c3MoJ1dvcmxkJykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRf
d29ybGRbOi00XQorICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2Vk
X3dvcmxkKQorICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCisKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWQoc2VsZik6CisgICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKKyAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ0dvb2RieWUnLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBleHBlY3RlZCA9
ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNv
bXByZXNzZWRfaGVsbG8KKyAgICAgICAgY29tcHJlc3NlZF9nb29kYnllID0gY29tcHJlc3MuY29t
cHJlc3MoJ0dvb2RieWUnKQorICAgICAgICBjb21wcmVzc2VkX2dvb2RieWUgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGV4cGVjdGVkICs9ICdceDAwJWMnICUg
bGVuKGNvbXByZXNzZWRfZ29vZGJ5ZSkKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9n
b29kYnllCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29y
bGQnKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6
LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQp
CisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisg
ICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfZmlyc3RfZnJhbWUoc2Vs
Zik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAg
ICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAg
ICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzcy5jb21wcmVzcygnJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgZXhwZWN0ZWQgPSAnXHg0
MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQorICAgICAgICBleHBlY3RlZCArPSBjb21wcmVz
c2VkX2hlbGxvCisgICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0
eVs6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1w
dHkpCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfZW1wdHkKKyAgICAgICAgcHJpbnQg
JyVyJyAlIGV4cGVjdGVkCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2Fn
ZV9mcmFnbWVudGVkX2VtcHR5X2xhc3RfZnJhbWUoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVf
cmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3Qs
ICdIZWxsbycsIGVuZD1GYWxzZSkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5N
QVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQorICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNz
ZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KKyAgICAgICAg
Y29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQorICAgICAgICBjb21wcmVz
c2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBj
b21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6LTRdCisgICAgICAgIGV4cGVjdGVk
ICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkpCisgICAgICAgIGV4cGVjdGVkICs9
IGNvbXByZXNzZWRfZW1wdHkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNz
YWdlX3VzaW5nX3NtYWxsX3dpbmRvdyhzZWxmKToKKyAgICAgICAgY29tbW9uX3BhcnQgPSAnYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCisgICAgICAgIHRlc3RfbWVzc2FnZSA9IGNvbW1vbl9w
YXJ0ICsgJy0nICogMzAwMDAgKyBjb21tb25fcGFydAorCisgICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdz
ZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzgnKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZs
YXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCB0ZXN0X21lc3NhZ2UpCisKKyAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9z
aXplID0gMgorICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplID0gOTEKKwor
ICAgICAgICBhY3R1YWxfZnJhbWUgPSByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemUg
KworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3Np
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGFjdHVhbF9mcmFtZSkpCisgICAgICAg
IGFjdHVhbF9oZWFkZXIgPSBhY3R1YWxfZnJhbWVbMDpleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVy
X3NpemVdCisgICAgICAgIGFjdHVhbF9wYXlsb2FkID0gYWN0dWFsX2ZyYW1lW2V4cGVjdGVkX3dl
YnNvY2tldF9oZWFkZXJfc2l6ZTpdCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAg
ICAgICAgICAgICAnXHhjMSVjJyAlIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUsIGFj
dHVhbF9oZWFkZXIpCisgICAgICAgIGRlY29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmooLTgp
CisgICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlID0gZGVjb21wcmVzcy5kZWNvbXByZXNzKAor
ICAgICAgICAgICAgICAgIGFjdHVhbF9wYXlsb2FkICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQorICAg
ICAgICBkZWNvbXByZXNzZWRfbWVzc2FnZSArPSBkZWNvbXByZXNzLmZsdXNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0ZXN0X21lc3NhZ2UsIGRlY29tcHJlc3NlZF9tZXNzYWdlKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXByZXNzLnVudXNlZF9kYXRhKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZGVjb21wcmVzcy51bmNvbnN1bWVkX3RhaWwp
KQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1l
dGVyKHNlbGYpOgorICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQor
ICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92
ZXInLCBOb25lKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6CisgICAgICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCisgICAgICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9VHJ1ZSkKKworICAgICAgICBj
b21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAg
ICBmaXJzdF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGZpcnN0
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBleHBl
Y3RlZCA9ICdceDQxJWMnICUgbGVuKGZpcnN0X2hlbGxvKQorICAgICAgICBleHBlY3RlZCArPSBm
aXJzdF9oZWxsbworICAgICAgICBzZWNvbmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQorICAgICAgICBzZWNvbmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCisgICAgICAgIHNlY29uZF9oZWxsbyA9IHNlY29uZF9oZWxsb1s6LTRdCisgICAgICAg
IGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKHNlY29uZF9oZWxsbykKKyAgICAgICAgZXhwZWN0
ZWQgKz0gc2Vjb25kX2hlbGxvCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAg
ICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX2ZyYWdtZW50ZWRfYmZpbmFsKHNlbGYpOgorICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zy
b21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVl
c3Q9ZXh0ZW5zaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29ycykpCisgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnNbMF0uc2V0X2JmaW5hbChUcnVlKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdXb3JsZCcsIGVuZD1UcnVlKQorCisgICAgICAgIGV4cGVjdGVkID0gJycK
KworICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICB6bGli
LlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQor
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQor
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsbyArIGNocigwKQorICAg
ICAgICBleHBlY3RlZCArPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQorICAgICAg
ICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKKyAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycg
JSBsZW4oY29tcHJlc3NlZF93b3JsZCkKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93
b3JsZAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kZWZs
YXRlKHNlbGYpOgorICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFY
X1dCSVRTKQorCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxs
b1s6LTRdCisgICAgICAgIGRhdGEgPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykg
fCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKKwor
ICAgICAgICAjIENsb3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNr
X2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQorCisgICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29t
bW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgIGRhdGEsIHBlcm1lc3Nh
Z2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisg
ICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3JhbmRvbV9zZWN0aW9uKHNlbGYpOgorICAgICAg
ICAiIiJUZXN0IHRoYXQgYSBjb21wcmVzc2VkIG1lc3NhZ2UgZnJhZ21lbnRlZCBpbnRvIGxvdHMg
b2YgY2h1bmtzIGlzCisgICAgICAgIGNvcnJlY3RseSByZWNlaXZlZC4KKyAgICAgICAgIiIiCisK
KyAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQorICAgICAgICBwYXlsb2FkID0gJycuam9pbigKKyAg
ICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEw
MDApXSkKKworICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAg
ICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dC
SVRTKQorICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzcy5jb21wcmVzcyhwYXls
b2FkKQorICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5a
X1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5
bG9hZFs6LTRdCisKKyAgICAgICAgIyBGcmFnbWVudCB0aGUgY29tcHJlc3NlZCBwYXlsb2FkIGlu
dG8gbG90cyBvZiBmcmFtZXMuCisgICAgICAgIGJ5dGVzX2NodW5rZWQgPSAwCisgICAgICAgIGRh
dGEgPSAnJworICAgICAgICBmcmFtZV9jb3VudCA9IDAKKworICAgICAgICBjaHVua19zaXplcyA9
IFtdCisKKyAgICAgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihjb21wcmVzc2VkX3BheWxv
YWQpOgorICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdAorICAgICAgICAgICAgIyAtIHRoZSBs
ZW5ndGggb2YgY2h1bmtzIGFyZSBlcXVhbCBvciBsZXNzIHRoYW4gMTI1IHNvIHRoYXQgd2UgY2Fu
CisgICAgICAgICAgICAjICAgdXNlIDEgb2N0ZXQgbGVuZ3RoIGhlYWRlciBmb3JtYXQgZm9yIGFs
bCBmcmFtZXMuCisgICAgICAgICAgICAjIC0gYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVhdGVk
LgorICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAorICAgICAgICAgICAg
ICAgIDEsIG1pbigxMjUsCisgICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3Bh
eWxvYWQpIC8gMTAsCisgICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3BheWxv
YWQpIC0gYnl0ZXNfY2h1bmtlZCkpCisgICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1
bmtfc2l6ZSkKKyAgICAgICAgICAgIGNodW5rID0gY29tcHJlc3NlZF9wYXlsb2FkWworICAgICAg
ICAgICAgICAgIGJ5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCisgICAg
ICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKKworICAgICAgICAgICAgZmlyc3Rf
b2N0ZXQgPSAweDAwCisgICAgICAgICAgICBpZiBsZW4oZGF0YSkgPT0gMDoKKyAgICAgICAgICAg
ICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg0MgorICAgICAgICAgICAgaWYgYnl0
ZXNfY2h1bmtlZCA9PSBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKToKKyAgICAgICAgICAgICAgICBm
aXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg4MAorCisgICAgICAgICAgICBkYXRhICs9ICcl
YyVjJyAlIChmaXJzdF9vY3RldCwgY2h1bmtfc2l6ZSB8IDB4ODApCisgICAgICAgICAgICBkYXRh
ICs9IF9tYXNrX2h5YmkoY2h1bmspCisKKyAgICAgICAgICAgIGZyYW1lX2NvdW50ICs9IDEKKwor
ICAgICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCisKKyAgICAgICAgIyBDbG9zZSBm
cmFtZQorICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNr
KCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAorICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19t
ZXNzYWdlcyhzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAg
ICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgZGF0YSA9ICcnCisKKyAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb1dlYlNvY2tldCcpCisgICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KKyAgICAgICAgc3Bs
aXRfcG9zaXRpb24gPSBsZW4oY29tcHJlc3NlZF9oZWxsbykgLyAyCisgICAgICAgIGRhdGEgKz0g
J1x4NDElYycgJSAoc3BsaXRfcG9zaXRpb24gfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNr
X2h5YmkoY29tcHJlc3NlZF9oZWxsb1s6c3BsaXRfcG9zaXRpb25dKQorCisgICAgICAgIGRhdGEg
Kz0gJ1x4ODAlYycgJSAoKGxlbihjb21wcmVzc2VkX2hlbGxvKSAtIHNwbGl0X3Bvc2l0aW9uKSB8
IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvW3NwbGl0
X3Bvc2l0aW9uOl0pCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAg
ICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNv
bXByZXNzKCdXb3JsZCcpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1
c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVz
c2VkX3dvcmxkWzotNF0KKyAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3Nl
ZF93b3JsZCkgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93
b3JsZCkKKworICAgICAgICAjIENsb3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhceDhh
JyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQorCisg
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAg
ICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgIGRhdGEs
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSGVsbG9XZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
X21peGVkX2J0eXBlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHRoYXQgYSBtZXNzYWdlIGNvbXBy
ZXNzZWQgdXNpbmcgbG90cyBvZiBERUZMQVRFIGJsb2NrcyB3aXRoCisgICAgICAgIHZhcmlvdXMg
Zmx1c2ggbW9kZSBpcyBjb3JyZWN0bHkgcmVjZWl2ZWQuCisgICAgICAgICIiIgorCisgICAgICAg
IHJhbmRvbS5zZWVkKGE9MCkKKyAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oCisgICAgICAgICAg
ICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCisK
KyAgICAgICAgY29tcHJlc3MgPSBOb25lCisKKyAgICAgICAgIyBGcmFnbWVudCB0aGUgY29tcHJl
c3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBmcmFtZXMuCisgICAgICAgIGJ5dGVzX2NodW5rZWQg
PSAwCisgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9ICcnCisKKyAgICAgICAgY2h1bmtfc2l6
ZXMgPSBbXQorICAgICAgICBtZXRob2RzID0gW10KKyAgICAgICAgc3luY191c2VkID0gRmFsc2UK
KyAgICAgICAgZmluaXNoX3VzZWQgPSBGYWxzZQorCisgICAgICAgIHdoaWxlIGJ5dGVzX2NodW5r
ZWQgPCBsZW4ocGF5bG9hZCk6CisgICAgICAgICAgICAjIE1ha2Ugc3VyZSBhdCBsZWFzdCAxMCBj
aHVua3MgYXJlIGNyZWF0ZWQuCisgICAgICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRp
bnQoCisgICAgICAgICAgICAgICAgMSwgbWluKDEwMCwgbGVuKHBheWxvYWQpIC0gYnl0ZXNfY2h1
bmtlZCkpCisgICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6ZSkKKyAgICAg
ICAgICAgIGNodW5rID0gcGF5bG9hZFtieXRlc19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVu
a19zaXplXQorCisgICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKKworICAg
ICAgICAgICAgaWYgY29tcHJlc3MgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NP
TVBSRVNTSU9OLAorICAgICAgICAgICAgICAgICAgICB6bGliLkRFRkxBVEVELAorICAgICAgICAg
ICAgICAgICAgICAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgICAgIGlmIGJ5dGVzX2NodW5r
ZWQgPT0gbGVuKHBheWxvYWQpOgorICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCAr
PSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKKyAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3Bh
eWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgICAgICAg
ICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3NlZF9wYXlsb2FkWzotNF0KKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWV0aG9kID0gcmFuZG9tLnJhbmRpbnQoMCwgMSkK
KyAgICAgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChtZXRob2QpCisgICAgICAgICAgICAgICAg
aWYgbWV0aG9kID09IDA6CisgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCAr
PSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Nl
ZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICAg
ICAgICAgICAgICBzeW5jX3VzZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNo
dW5rKQorICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX0ZJTklTSCkKKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3MgPSBOb25l
CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaF91c2VkID0gVHJ1ZQorCisgICAgICAgIHByaW50
ICJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGxlbihjaHVua19zaXplcykgPiAxMCkKKyAgICAgICAgcHJpbnQgIk1ldGhvZHM6ICVyIiAlIG1l
dGhvZHMKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN5bmNfdXNlZCkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGZpbmlzaF91c2VkKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxMjUgPCBs
ZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjb21w
cmVzc2VkX3BheWxvYWQpIDwgNjU1MzYpCisgICAgICAgIGRhdGEgPSAnXHhjMlx4ZmUnICsgc3Ry
dWN0LnBhY2soJyFIJywgbGVuKGNvbXByZXNzZWRfcGF5bG9hZCkpCisgICAgICAgIGRhdGEgKz0g
X21hc2tfaHliaShjb21wcmVzc2VkX3BheWxvYWQpCisKKyAgICAgICAgIyBDbG9zZSBmcmFtZQor
ICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcs
IDEwMDApICsgJ0dvb2QgYnllJykKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRF
TlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAor
ICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKworY2xhc3MgTWVzc2FnZVRlc3RIaXhpZTc1KHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBmb3IgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0
cHJvdG9jb2wtNzYgc3RyZWFtIGNsYXNzLiIiIgorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQorICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6CisgICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgpCisgICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKKyAgICAgICAgIyBVKzY1ZTUgaXMgZW5j
b2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAw
XHhlNlx4OTdceGE1XHhmZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNl
bGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBIZWxs
b1x4ZmZceDAwV29ybGQhXHhmZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZceDljXHhhY1x4ZmYnKQorICAgICAgICAj
IFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04CisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKwor
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29kZShzZWxmKToKKyAg
ICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04LgorICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBceDgwXHg4MVx4ZmYnKQorICAgICAg
ICAjIEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aAorICAgICAgICAj
IFUrZmZmZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1
J1x1ZmZmZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAg
ZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6CisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4MDZJR05PUkVceDAwSGVsbG9ceGZmJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x4MDFESVNSRUdBUkRc
eGZmXHgwMFdvcmxkIVx4ZmYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworCitjbGFzcyBN
ZXNzYWdlUmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyB0aGUg
U3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKKworICAgIGRlZiB0ZXN0X3F1
ZXVlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkK
KyAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkK
KworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBfbWFz
a19oeWJpKCdIZWxsbyEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVj
ZWl2ZXIucmVjZWl2ZSgpKQorCisgICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgorICAgICAg
ICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCisKKyAgICAgICAgZGVmIG9ubWVzc2Fn
ZV9oYW5kbGVyKG1lc3NhZ2UpOgorICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNz
YWdlKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQorICAg
ICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2Fn
ZV9oYW5kbGVyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFc
eDg2JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
ZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCisKKworY2xhc3MgTWVzc2FnZVJlY2VpdmVy
SGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3RzIHRoZSBTdHJlYW1I
aXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKKworICAgIGRlZiB0ZXN0X3F1
ZXVlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hp
eGllNzUoKQorICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVl
c3QpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZlX25v
d2FpdCgpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxs
byFceGZmJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIucmVj
ZWl2ZSgpKQorCisgICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgorICAgICAgICBvbm1lc3Nh
Z2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCisKKyAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVy
KG1lc3NhZ2UpOgorICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQorCisg
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCisgICAg
ICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCwgb25tZXNzYWdl
X2hhbmRsZXIpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHgwMEhl
bGxvIVx4ZmYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2Vf
cXVldWUuZ2V0KCkpCisKKworY2xhc3MgTWVzc2FnZVNlbmRlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgorICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRlci4i
IiIKKworICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X2Jsb2NraW5nX3JlcXVlc3QoKQorICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5k
ZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6CisgICAgICAgICMgVXNl
IGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KKyAg
ICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQg
aGVyZSBiZWNhdXNlCisgICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUg
dGhyZWFkLgorICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgICAgIGRl
ZiB3cml0ZShieXRlcyk6CisgICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKKworICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKKyAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXRlID0gd3JpdGUKKworICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1l
c3NhZ2VTZW5kZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxv
JykKKyAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1ZXVlLmdldCgpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2VuZF9xdWV1ZS5nZXQoKSkKKworCitjbGFz
cyBNZXNzYWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRl
c3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCisKKyAg
ICBkZWYgdGVzdF9zZW5kKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2lu
Z19yZXF1ZXN0X2hpeGllNzUoKQorICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5k
ZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6CisgICAgICAgICMgVXNl
IGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KKyAg
ICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQg
aGVyZSBiZWNhdXNlCisgICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUg
dGhyZWFkLgorICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgICAgIGRl
ZiB3cml0ZShieXRlcyk6CisgICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKKworICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQorCisgICAgICAgIHNlbmRlciA9IG1z
Z3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQorCisgICAgICAgIHNlbmRlci5zZW5kX25vd2Fp
dCgnSGVsbG8nKQorICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHNlbmRfcXVldWUuZ2V0KCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQor
CisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKwor
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tdXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlNDVjZjZiM2ZlZTBjMGI5YTkxNGQw
YzI0Nzc3NWI2ZjI0OTlmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5w
eQpAQCAtMCwwICsxLDIwODggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKworIiIiVGVzdHMgZm9yIG11eCBtb2R1bGUuIiIiCisKK2ltcG9ydCBRdWV1ZQor
aW1wb3J0IGNvcHkKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBzdHJ1
Y3QKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHRpbWUKK2ltcG9ydCB6bGli
CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2Rf
cHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Citmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXV4Citmcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCitmcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgRnJhbWUKK2Zyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2VfZnJhbWUKK2Zyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNo
YWtlX2JvZHkKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgcGFyc2Vf
ZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IE11eEV4dGVuc2lv
blByb2Nlc3NvcgorCisKK2ltcG9ydCBtb2NrCisKKworX1RFU1RfSEVBREVSUyA9IHsnSG9zdCc6
ICdzZXJ2ZXIuZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgICAgICAnVXBncmFkZSc6ICd3ZWJz
b2NrZXQnLAorICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAgICAg
ICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5JzogJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9
PScsCisgICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAorICAg
ICAgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbSd9CisKKworY2xhc3Mg
X091dGdvaW5nQ2hhbm5lbERhdGEob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg
ICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQorICAgICAgICBzZWxmLmNvbnRyb2xfbWVzc2FnZXMg
PSBbXQorCisgICAgICAgIHNlbGYuYnVpbGRlciA9IG11eC5fSW5uZXJNZXNzYWdlQnVpbGRlcigp
CisKK2NsYXNzIF9Nb2NrTXV4Q29ubmVjdGlvbihtb2NrLk1vY2tCbG9ja2luZ0Nvbm4pOgorICAg
ICIiIk1vY2sgY2xhc3Mgb2YgbW9kX3B5dGhvbiBjb25uZWN0aW9uIGZvciBtdXguIiIiCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIG1vY2suTW9ja0Jsb2NraW5nQ29ubi5fX2lu
aXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyA9IFtdCisgICAgICAgIHNl
bGYuX2NoYW5uZWxfZGF0YSA9IHt9CisKKyAgICAgICAgc2VsZi5fY3VycmVudF9vcGNvZGUgPSBO
b25lCisgICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KKworICAgICAgICBzZWxm
LnNlcnZlcl9jbG9zZV9jb2RlID0gTm9uZQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgor
ICAgICAgICAiIiJPdmVycmlkZSBNb2NrQmxvY2tpbmdDb25uLndyaXRlLiIiIgorCisgICAgICAg
IHNlbGYuX2N1cnJlbnRfZGF0YSA9IGRhdGEKKyAgICAgICAgc2VsZi5fcG9zaXRpb24gPSAwCisK
KyAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0aCk6CisgICAgICAgICAgICBpZiBzZWxm
Ll9wb3NpdGlvbiArIGxlbmd0aCA+IGxlbihzZWxmLl9jdXJyZW50X2RhdGEpOgorICAgICAgICAg
ICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICAgICAnRmFpbGVkIHRvIHJlY2VpdmUgJWQgYnl0ZXMgZnJvbSBlbmNhcHN1bGF0ZWQgJwor
ICAgICAgICAgICAgICAgICAgICAnZnJhbWUnICUgbGVuZ3RoKQorICAgICAgICAgICAgZGF0YSA9
IHNlbGYuX2N1cnJlbnRfZGF0YVtzZWxmLl9wb3NpdGlvbjpzZWxmLl9wb3NpdGlvbitsZW5ndGhd
CisgICAgICAgICAgICBzZWxmLl9wb3NpdGlvbiArPSBsZW5ndGgKKyAgICAgICAgICAgIHJldHVy
biBkYXRhCisKKyAgICAgICAgIyBQYXJzZSBwaHlzaWNhbCBmcmFtZXMgYW5kIGFzc2VtYmxlIGEg
bWVzc2FnZSBpZiB0aGUgbWVzc2FnZSBpcworICAgICAgICAjIGZyYWdtZW50ZWQuCisgICAgICAg
IG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzID0gKAorICAgICAgICAgICAg
cGFyc2VfZnJhbWUoX3JlY2VpdmVfYnl0ZXMsIHVubWFza19yZWNlaXZlPUZhbHNlKSkKKworICAg
ICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cy5hcHBlbmQocGF5bG9hZCkKKworICAgICAgICBp
ZiBzZWxmLl9jdXJyZW50X29wY29kZSBpcyBOb25lOgorICAgICAgICAgICAgaWYgb3Bjb2RlID09
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignU2VuZGluZyBpbnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUnKQorICAgICAgICAgICAg
c2VsZi5fY3VycmVudF9vcGNvZGUgPSBvcGNvZGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKKyAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQor
ICAgICAgICBpZiBub3QgZmluOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaW5uZXJf
ZnJhbWVfZGF0YSA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19mcmFnbWVudHMpCisgICAgICAgIHNl
bGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KKyAgICAgICAgc2VsZi5fY3VycmVudF9vcGNvZGUg
PSBOb25lCisKKyAgICAgICAgIyBIYW5kbGUgYSBjb250cm9sIG1lc3NhZ2Ugb24gdGhlIHBoeXNp
Y2FsIGNoYW5uZWwuCisgICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgb3RoZXIgb3Bjb2Rl
cyBpZiBuZWVkZWQuCisgICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NMT1NFOgor
ICAgICAgICAgICAgaWYgbGVuKHBheWxvYWQpID49IDI6CisgICAgICAgICAgICAgICAgc2VsZi5z
ZXJ2ZXJfY2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcGF5bG9hZFs6Ml0pWzBdCisg
ICAgICAgICAgICBjbG9zZV9ib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoCisg
ICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgJycpCisgICAgICAg
ICAgICBjbG9zZV9mcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFtZShjbG9zZV9ib2R5LCBtYXNrPVRy
dWUpCisgICAgICAgICAgICBzZWxmLnB1dF9ieXRlcyhjbG9zZV9mcmFtZSkKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgICMgUGFyc2UgdGhlIHBheWxvYWQgb2YgdGhlIG1lc3NhZ2Ugb24g
cGh5c2ljYWwgY2hhbm5lbC4KKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQ
YXJzZXIoaW5uZXJfZnJhbWVfZGF0YSkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFk
X2NoYW5uZWxfaWQoKQorICAgICAgICBpZiBjaGFubmVsX2lkID09IG11eC5fQ09OVFJPTF9DSEFO
TkVMX0lEOgorICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MuZXh0ZW5kKGxpc3QocGFy
c2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAg
ICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9jaGFubmVsX2RhdGE6CisgICAgICAgICAgICBz
ZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0gPSBfT3V0Z29pbmdDaGFubmVsRGF0YSgpCisg
ICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXQorCisg
ICAgICAgICMgUGFyc2UgbG9naWNhbCBmcmFtZXMgYW5kIGFzc2VtYmxlIGFuIGlubmVyIChsb2dp
Y2FsKSBtZXNzYWdlLgorICAgICAgICAoaW5uZXJfZmluLCBpbm5lcl9yc3YxLCBpbm5lcl9yc3Yy
LCBpbm5lcl9yc3YzLCBpbm5lcl9vcGNvZGUsCisgICAgICAgICBpbm5lcl9wYXlsb2FkKSA9IHBh
cnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKKyAgICAgICAgaW5uZXJfZnJhbWUgPSBGcmFtZShpbm5l
cl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIsIGlubmVyX3JzdjMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5uZXJfb3Bjb2RlLCBpbm5lcl9wYXlsb2FkKQorICAgICAgICBtZXNz
YWdlID0gY2hhbm5lbF9kYXRhLmJ1aWxkZXIuYnVpbGQoaW5uZXJfZnJhbWUpCisgICAgICAgIGlm
IG1lc3NhZ2UgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIChtZXNz
YWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX1RFWFQgb3IKKyAgICAgICAgICAgIG1lc3NhZ2Uu
b3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZKToKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0
YS5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZS5wYXlsb2FkKQorCisgICAgICAgICAgICBzZWxmLm9u
X2RhdGFfbWVzc2FnZShtZXNzYWdlLnBheWxvYWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBjaGFubmVsX2RhdGEuY29udHJvbF9tZXNzYWdlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAg
eydvcGNvZGUnOiBtZXNzYWdlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgJ21lc3NhZ2UnOiBt
ZXNzYWdlLnBheWxvYWR9KQorCisgICAgZGVmIG9uX2RhdGFfbWVzc2FnZShzZWxmLCBtZXNzYWdl
KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY29udHJvbF9ibG9ja3MKKworICAgIGRlZiBnZXRf
d3JpdHRlbl9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5tZXNzYWdlcworCisgICAgZGVmIGdldF93cml0dGVu
X2NvbnRyb2xfbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAgIHJldHVybiBzZWxm
Ll9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0uY29udHJvbF9tZXNzYWdlcworCisKK2NsYXNzIF9G
YWlsT25Xcml0ZUNvbm5lY3Rpb24oX01vY2tNdXhDb25uZWN0aW9uKToKKyAgICAiIiJTcGVjaWNp
YWxpemVkIHZlcnNpb24gb2YgX01vY2tNdXhDb25uZWN0aW9uLiBJdHMgd3JpdGUoKSBtZXRob2Qg
cmFpc2VzCisgICAgYW4gZXhjZXB0aW9uIGZvciB0ZXN0aW5nIHdoZW4gYSBkYXRhIG1lc3NhZ2Ug
aXMgd3JpdHRlbi4KKyAgICAiIiIKKworICAgIGRlZiBvbl9kYXRhX21lc3NhZ2Uoc2VsZiwgbWVz
c2FnZSk6CisgICAgICAgICIiIk92ZXJyaWRlIHRvIHJhaXNlIGFuIGV4Y2VwdGlvbi4iIiIKKwor
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIGZhaWx1cmUnKQorCisKK2NsYXNz
IF9DaGFubmVsRXZlbnQob2JqZWN0KToKKyAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IHJlY29yZHMg
Y2hhbm5lbCBldmVudHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNl
bGYucmVxdWVzdCA9IE5vbmUKKyAgICAgICAgc2VsZi5tZXNzYWdlcyA9IFtdCisgICAgICAgIHNl
bGYuZXhjZXB0aW9uID0gTm9uZQorICAgICAgICBzZWxmLmNsaWVudF9pbml0aWF0ZWRfY2xvc2lu
ZyA9IEZhbHNlCisKKworY2xhc3MgX011eE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6CisgICAgIiIi
TW9jayBjbGFzcyBvZiBkaXNwYXRjaC5EaXNwYXRjaGVyIGZvciBtdXguIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHMgPSB7fQorCisgICAg
ZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgaWYgcmVxdWVz
dC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVxdWVz
dC53c19wcm90b2NvbCA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29sc1swXQorCisgICAg
ZGVmIF9kb19lY2hvKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKKyAgICAgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZl
X21lc3NhZ2UoKQorICAgICAgICAgICAgaWYgbWVzc2FnZSA9PSBOb25lOgorICAgICAgICAgICAg
ICAgIGNoYW5uZWxfZXZlbnRzLmNsaWVudF9pbml0aWF0ZWRfY2xvc2luZyA9IFRydWUKKyAgICAg
ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gJ0dvb2RieWUnOgor
ICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgY2hhbm5lbF9ldmVudHMubWVzc2Fn
ZXMuYXBwZW5kKG1lc3NhZ2UpCisgICAgICAgICAgICAjIGVjaG8gYmFjaworICAgICAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1lc3NhZ2UpCisKKyAgICBkZWYgX2RvX3Bp
bmcoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgorICAgICAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKKworICAgIGRlZiBfZG9fcGluZ193aGlsZV9oZWxsb193
b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6CisgICAgICAgIHJlcXVlc3Qud3Nf
c3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5kPUZhbHNlKQorICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKKyAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkKKworICAgIGRlZiBfZG9fdHdvX3Bpbmdf
d2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgorICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcsIGVuZD1GYWxzZSkKKyAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCisgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUG9uZyEnKQorICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bS5zZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVlKQorCisgICAgZGVmIHRyYW5zZmVyX2Rh
dGEoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5j
aGFubmVsX2lkXSA9IF9DaGFubmVsRXZlbnQoKQorICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRz
W3JlcXVlc3QuY2hhbm5lbF9pZF0ucmVxdWVzdCA9IHJlcXVlc3QKKworICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAjIE5vdGU6IG1vcmUgaGFuZGxlciB3aWxsIGJlIGFkZGVkLgorICAgICAgICAg
ICAgaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ2VjaG8nKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9kb19lY2hvKHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNo
YW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCisgICAgICAgICAgICBlbGlmIHJlcXVl
c3QudXJpLmVuZHN3aXRoKCdwaW5nJyk6CisgICAgICAgICAgICAgICAgc2VsZi5fZG9fcGluZyhy
ZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50
c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQorICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRz
d2l0aCgndHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9kb190d29fcGluZ193aGlsZV9oZWxsb193b3JsZCgKKyAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQorICAgICAgICAg
ICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGluZ193aGlsZV9oZWxsb193b3JsZCcpOgor
ICAgICAgICAgICAgICAgIHNlbGYuX2RvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoCisgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVs
X2lkXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVlc3QucGF0aCkKKyAgICAgICAgICAgIGlm
IG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQorICAgICAgICBleGNlcHQgQ29ubmVjdGlvblRl
cm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3Jl
cXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgorICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRd
LmV4Y2VwdGlvbiA9IGUKKyAgICAgICAgICAgIHJhaXNlCisKKworZGVmIF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KGNvbm5lY3Rpb249Tm9uZSwgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9Tm9uZSk6
CisgICAgaWYgY29ubmVjdGlvbiBpcyBOb25lOgorICAgICAgICBjb25uZWN0aW9uID0gX01vY2tN
dXhDb25uZWN0aW9uKCkKKworICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KHVyaT0nL2Vj
aG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNfaW49X1RFU1RfSEVB
REVSUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uPWNvbm5lY3Rp
b24pCisgICAgcmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW0ocmVxdWVzdCwgb3B0aW9ucz1TdHJl
YW1PcHRpb25zKCkpCisgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gTXV4RXh0ZW5zaW9uUHJv
Y2Vzc29yKAorICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhU
RU5TSU9OKSkKKyAgICBpZiBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToK
KyAgICAgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25zKGxvZ2ljYWxfY2hh
bm5lbF9leHRlbnNpb25zKQorICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfcXVvdGEoOCAq
IDEwMjQpCisgICAgcmV0dXJuIHJlcXVlc3QKKworCitkZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKGNoYW5uZWxfaWQsIGVuY29kaW5nLCBlbmNvZGVkX2hhbmRzaGFrZSk6Cisg
ICAgIyBBbGxvdyBpbnZhbGlkIGVuY29kaW5nIGZvciB0ZXN0aW5nLgorICAgIGZpcnN0X2J5dGUg
PSAoKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2Rpbmcp
CisgICAgcGF5bG9hZCA9IChjaHIoZmlyc3RfYnl0ZSkgKworICAgICAgICAgICAgICAgbXV4Ll9l
bmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCisgICAgICAgICAgICAgICBtdXguX2VuY29k
ZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKworICAgICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UpCisgICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCisgICAgICAgICht
dXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQp
LCBtYXNrPVRydWUpCisKKworZGVmIF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxf
aWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6CisgICAgcGF5bG9hZCA9IG11eC5fY3JlYXRlX2Ry
b3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQorICAgIHJldHVybiBjcmVhdGVf
YmluYXJ5X2ZyYW1lKAorICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRS
T0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQorCisKK2RlZiBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6CisgICAgcGF5
bG9hZCA9IG11eC5fY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9x
dW90YSkKKyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKKyAgICAgICAgKG11eC5fZW5j
b2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1hc2s9
VHJ1ZSkKKworCitkZWYgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIG1lc3NhZ2Us
IG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluPVRydWUsIHJzdjE9RmFsc2UsIHJzdjI9RmFsc2UsIHJzdjM9RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSk6CisgICAgYml0cyA9IGNocigoZmluIDw8IDcpIHwg
KHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpIHwgb3Bjb2RlKQorICAgIHBh
eWxvYWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsgYml0cyArIG1lc3Nh
Z2UKKyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShwYXlsb2FkLCBtYXNrPVRydWUpCisK
KworZGVmIF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nLCBleHRlbnNpb25zPU5v
bmUpOgorICAgIGhlYWRlcnMgPSAoCisgICAgICAgICdHRVQgJXMgSFRUUC8xLjFcclxuJworICAg
ICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKKyAgICAgICAgJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJworICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJykg
JSBwYXRoCisgICAgaWYgZXh0ZW5zaW9uczoKKyAgICAgICAgaGVhZGVycyArPSAnJXM6ICVzJyAl
ICgKKyAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLCBl
eHRlbnNpb25zKQorICAgIHJldHVybiBoZWFkZXJzCisKKworY2xhc3MgTXV4VGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3IgbXV4IG1vZHVsZS4iIiIKKworICAg
IGRlZiB0ZXN0X2NoYW5uZWxfaWRfZGVjb2RlKHNlbGYpOgorICAgICAgICBkYXRhID0gJ1x4MDBc
eDAxXHhiZlx4ZmZceGRmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJworICAgICAgICBwYXJzZXIg
PSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBjaGFubmVsX2lkID0g
cGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgY2hh
bm5lbF9pZCkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGNoYW5uZWxfaWQpCisgICAgICAgIGNoYW5uZWxf
aWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgy
ICoqIDE0IC0gMSwgY2hhbm5lbF9pZCkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFk
X2NoYW5uZWxfaWQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMjEgLSAxLCBjaGFu
bmVsX2lkKQorICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyOSAtIDEsIGNoYW5uZWxfaWQpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIuX3JlYWRfcG9zaXRpb24pCisKKyAg
ICBkZWYgdGVzdF9jaGFubmVsX2lkX2VuY29kZShzZWxmKToKKyAgICAgICAgZW5jb2RlZCA9IG11
eC5fZW5jb2RlX2NoYW5uZWxfaWQoMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMCcs
IGVuY29kZWQpCisgICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiog
MTQgLSAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGJmXHhmZicsIGVuY29kZWQpCisg
ICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMTQpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzBAXHgwMCcsIGVuY29kZWQpCisgICAgICAgIGVuY29kZWQg
PSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEgLSAxKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceGRmXHhmZlx4ZmYnLCBlbmNvZGVkKQorICAgICAgICBlbmNvZGVkID0gbXV4Ll9l
bmNvZGVfY2hhbm5lbF9pZCgyICoqIDIxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGUw
IFx4MDBceDAwJywgZW5jb2RlZCkKKyAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5u
ZWxfaWQoMiAqKiAyOSAtIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZmZceGZmXHhm
Zlx4ZmYnLCBlbmNvZGVkKQorICAgICAgICAjIGNoYW5uZWxfaWQgaXMgdG9vIGxhcmdlCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDIg
KiogMjkpCisKKyAgICBkZWYgdGVzdF9yZWFkX211bHRpcGxlX2NvbnRyb2xfYmxvY2tzKHNlbGYp
OgorICAgICAgICAjIFVzZSBBZGRDaGFubmVsUmVxdWVzdCBiZWNhdXNlIGl0IGNhbiBjb250YWlu
IGFyYml0cmFyeSBsZW5ndGggb2YgZGF0YQorICAgICAgICBkYXRhID0gKCdceDAwXHgwMVx4MDFh
JworICAgICAgICAgICAgICAgICdceDAwXHgwMlx4N2QlcycKKyAgICAgICAgICAgICAgICAnXHgw
MFx4MDNceDdlXHhmZlx4ZmYlcycKKyAgICAgICAgICAgICAgICAnXHgwMFx4MDRceDdmXHgwMFx4
MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAlcycpICUgKAorICAgICAgICAgICAgJ2EnICogMHg3
ZCwgJ2InICogMHhmZmZmLCAnYycgKiAweDEwMDAwKQorICAgICAgICBwYXJzZXIgPSBtdXguX011
eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5y
ZWFkX2NvbnRyb2xfYmxvY2tzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgbGVuKGJs
b2NrcykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NI
QU5ORUxfUkVRVUVTVCwgYmxvY2tzWzBdLm9wY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4oYmxvY2tzWzBdLmVuY29kZWRfaGFuZHNoYWtlKSkKKworICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMV0ub3Bjb2Rl
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1sxXS5jaGFubmVsX2lkKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDB4N2QsIGxlbihibG9ja3NbMV0uZW5jb2RlZF9oYW5kc2hh
a2UpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFO
TkVMX1JFUVVFU1QsIGJsb2Nrc1syXS5vcGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MywgYmxvY2tzWzJdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHhmZmZm
LCBsZW4oYmxvY2tzWzJdLmVuY29kZWRfaGFuZHNoYWtlKSkKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbM10ub3Bj
b2RlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGJsb2Nrc1szXS5jaGFubmVsX2lkKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4MTAwMDAsIGxlbihibG9ja3NbM10uZW5jb2RlZF9o
YW5kc2hha2UpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIu
X3JlYWRfcG9zaXRpb24pCisKKyAgICBkZWYgdGVzdF9yZWFkX2FkZF9jaGFubmVsX3JlcXVlc3Qo
c2VsZik6CisgICAgICAgIGRhdGEgPSAnXHgwMFx4MDFceDAxYScKKyAgICAgICAgcGFyc2VyID0g
bXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgYmxvY2tzID0gbGlzdChw
YXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11
eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQorCisg
ICAgZGVmIHRlc3RfcmVhZF9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIGRhdGEgPSAnXHg2
MFx4MDFceDAwJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihk
YXRhKQorICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBibG9ja3NbMF0uZHJvcF9jb2RlKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihibG9ja3NbMF0uZHJvcF9tZXNzYWdlKSkKKworICAg
ICAgICBkYXRhID0gJ1x4NjBceDAyXHgwOVx4MDNceGU4U3VjY2VzcycKKyAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgYmxvY2tzID0gbGlz
dChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihibG9ja3MpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1swXS5j
aGFubmVsX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9EUk9Q
X0NIQU5ORUwsIGJsb2Nrc1swXS5vcGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAw
MCwgYmxvY2tzWzBdLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnU3VjY2Vz
cycsIGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpCisKKyAgICAgICAgIyBSZWFzb24gaXMgdG9vIHNo
b3J0LgorICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgwMVx4MDAnCisgICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQorCisgICAgZGVm
IHRlc3RfcmVhZF9mbG93X2NvbnRyb2woc2VsZik6CisgICAgICAgIGRhdGEgPSAnXHg0MFx4MDFc
eDAyJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQor
ICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCwgYmxvY2tzWzBdLm9wY29kZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3NbMF0uc2VuZF9xdW90YSkKKworICAgIGRlZiB0ZXN0
X3JlYWRfbmV3X2NoYW5uZWxfc2xvdChzZWxmKToKKyAgICAgICAgZGF0YSA9ICdceDgwXHgwMVx4
MDJceDAyXHgwMycKKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIo
ZGF0YSkKKyAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50CisgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQorCisg
ICAgZGVmIHRlc3RfcmVhZF9pbnZhbGlkX251bWJlcl9maWVsZF9pbl9jb250cm9sX2Jsb2NrKHNl
bGYpOgorICAgICAgICAjIE5vIG51bWJlciBmaWVsZC4KKyAgICAgICAgZGF0YSA9ICcnCisgICAg
ICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICAg
ICAgIyBUaGUgbGFzdCB0d28gYnl0ZXMgYXJlIG1pc3NpbmcuCisgICAgICAgIGRhdGEgPSAnXHg3
ZScKKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikK
KworICAgICAgICAjIE1pc3NpbmcgdGhlIGxhc3Qgb25lIGJ5dGUuCisgICAgICAgIGRhdGEgPSAn
XHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDAnCisgICAgICAgIHBhcnNlciA9IG11eC5f
TXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICAgICAgIyBUaGUgbGVuZ3RoIG9m
IG51bWJlciBmaWVsZCBpcyB0b28gbGFyZ2UuCisgICAgICAgIGRhdGEgPSAnXHg3Zlx4ZmZceGZm
XHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1l
UGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBwYXJzZXIuX3JlYWRfbnVtYmVyKQorCisgICAgICAgICMgVGhlIG1zYiBvZiB0aGUgZmlyc3Qg
Ynl0ZSBpcyBzZXQuCisgICAgICAgIGRhdGEgPSAnXHg4MCcKKyAgICAgICAgcGFyc2VyID0gbXV4
Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKKworICAgICAgICAjIFVzaW5nIDMgYnl0
ZXMgZW5jb2RpbmcgZm9yIDEyNS4KKyAgICAgICAgZGF0YSA9ICdceDdlXHgwMFx4N2QnCisgICAg
ICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICAg
ICAgIyBVc2luZyA5IGJ5dGVzIGVuY29kaW5nIGZvciAweGZmZmYKKyAgICAgICAgZGF0YSA9ICdc
eDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZlx4ZmYnCisgICAgICAgIHBhcnNlciA9IG11
eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICBkZWYgdGVzdF9yZWFkX2lu
dmFsaWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6CisgICAgICAgICMgT25seSBjb250YWluIG51
bWJlciBmaWVsZC4KKyAgICAgICAgZGF0YSA9ICdceDAxJworICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyht
dXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cnNlci5fcmVhZF9zaXplX2FuZF9jb250ZW50cykKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXNwb25zZShzZWxmKToKKyAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9j
aGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdGb29CYXInLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVkPUZh
bHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDIwXHgwMVx4MDZGb29CYXInLCBkYXRh
KQorCisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFu
bmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZT0nSGVsbG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVkPVRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4MzFceDAyXHgwNUhlbGxvJywgZGF0YSkKKworICAgIGRlZiB0ZXN0X2NyZWF0
ZV9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9wX2No
YW5uZWwoY2hhbm5lbF9pZD0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDYwXHgwMVx4
MDAnLCBkYXRhKQorCisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hh
bm5lbF9pZD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9
MjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdl
cnJvcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBceDAxXHgwN1x4MDdceGQwZXJy
b3InLCBkYXRhKQorCisgICAgICAgICMgcmVhc29uIG11c3QgYmUgZW1wdHkgaWYgY29kZSBpcyBO
b25lCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwgTm9uZSwgJ0Zvb0JhcicpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9yZXF1ZXN0
X3RleHQoc2VsZik6CisgICAgICAgIHJlcXVlc3RfdGV4dCA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIoKQorICAgICAgICBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzID0gbXV4Ll9wYXJz
ZV9yZXF1ZXN0X3RleHQocmVxdWVzdF90ZXh0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdH
RVQnLCBjb21tYW5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZWNobycsIHBhdGgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hUVFAvMS4xJywgdmVyc2lvbikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgzLCBsZW4oaGVhZGVycykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J3NlcnZlci5leGFtcGxlLmNvbScsIGhlYWRlcnNbJ0hvc3QnXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgaGVhZGVyc1snT3JpZ2luJ10pCisKKworY2xh
c3MgTXV4SGFuZGxlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfYWRk
X2NoYW5uZWwoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
CisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
ZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZs
b3dfY29udHJvbCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0z
LCBlbmNvZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKKworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdIZWxsbycpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVz
c2FnZT0nV29ybGQnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKwor
ICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVv
dXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1sxXS5tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10s
IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2Vz
KQorICAgICAgICAjIENoYW5uZWwgMgorICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEs
IGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2Fn
ZXNbMF0pCisgICAgICAgICMgQ2hhbm5lbCAzCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBt
ZXNzYWdlc1swXSkKKyAgICAgICAgY29udHJvbF9ibG9ja3MgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAgICAjIFRoZXJlIHNob3VsZCBiZSA4
IGNvbnRyb2wgYmxvY2tzOgorICAgICAgICAjICAgLSAxIE5ld0NoYW5uZWxTbG90CisgICAgICAg
ICMgICAtIDIgQWRkQ2hhbm5lbFJlc3BvbnNlcyBmb3IgY2hhbm5lbCBpZCAyIGFuZCAzCisgICAg
ICAgICMgICAtIDYgRmxvd0NvbnRyb2xzIGZvciBjaGFubmVsIGlkIDEgKGluaXRpYWxpemUpLCAn
SGVsbG8nLCAnV29ybGQnLAorICAgICAgICAjICAgICBhbmQgMyAnR29vZGJ5ZSdzCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoOSwgbGVuKGNvbnRyb2xfYmxvY2tzKSkKKworICAgIGRlZiB0ZXN0
X3BoeXNpY2FsX2Nvbm5lY3Rpb25fd3JpdGVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgIyBVc2Ug
X0ZhaWxPbldyaXRlQ29ubmVjdGlvbi4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KGNvbm5lY3Rpb249X0ZhaWxPbldyaXRlQ29ubmVjdGlvbigpKQorCisgICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCisKKyAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBlY2hvIGJhY2sgJ0hlbGxvJy4gSXQg
Y2F1c2VzIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24KKyAgICAgICAgIyByYWlzaW5nIGFuIGV4Y2Vw
dGlvbi4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0hlbGxvJykpCisK
KyAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBleGl0LiBUaGlzIHdpbGwgYmUgdW5uZWNlc3Nhcnkg
d2hlbgorICAgICAgICAjIF9Mb2dpY2FsQ29ubmVjdGlvbi53cml0ZSgpIGlzIGNoYW5nZWQgdG8g
dGhyb3cgYW4gZXhjZXB0aW9uIGlmCisgICAgICAgICMgd29rZSB1cCBieSBvbl93cml0ZXJfZG9u
ZS4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKwor
ICAgICAgICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICBkZWYg
dGVzdF9zZW5kX2Jsb2NrZWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQor
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIocGF0aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNv
ZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2Up
CisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKKworICAgICAgICAjIE9uIHJlY2VpdmluZyB0aGlzICdIZWxsbycsIHRoZSBzZXJ2ZXIgdHJp
ZXMgdG8gZWNobyBiYWNrICdIZWxsbycsCisgICAgICAgICMgYnV0IGl0IHdpbGwgYmUgYmxvY2tl
ZCBzaW5jZSB0aGVyZSdzIG5vIHNlbmQgcXVvdGEgYXZhaWxhYmxlIGZvciB0aGUKKyAgICAgICAg
IyBjaGFubmVsIDIuCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxs
bycpKQorCisgICAgICAgICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2NrZWQgZHVlIHRv
IHNlbmQgcXVvdGEgc2hvcnRhZ2UuCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKworICAgICAgICAj
IENsb3NlIHRoZSBjaGFubmVsIDIuIFRoZSB3b3JrZXIgc2hvdWxkIGJlIG5vdGlmaWVkIG9mIHRo
ZSBlbmQgb2YKKyAgICAgICAgIyB3cml0ZXIgdGhyZWFkIGFuZCBzdG9wIHdhaXRpbmcgZm9yIHNl
bmQgcXVvdGEgdG8gYmUgcmVwbGVuaXNoZWQuCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVh
dGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MikKKworICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKKworICAgICAgICAjIE1ha2Ugc3VyZSB0
aGUgY2hhbm5lbCAxIGlzIGFsc28gY2xvc2VkLgorICAgICAgICBkcm9wX2NoYW5uZWwgPSBfY3Jl
YXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTEpCisgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQorCisgICAgICAgICMgQWxsIHRocmVhZHMg
c2hvdWxkIGJlIGRvbmUuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRh
X2VuY29kaW5nKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
KQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4
X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90
cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisg
ICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJworICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0
YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1
ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0hlbGxvJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
CisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdl
PSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29k
YnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBtZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J0hlbGxvJywgbWVzc2FnZXNbMF0pCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9l
bmNvZGluZ19vdmVycmlkZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisg
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKKworICAgICAgICAjIE92ZXJyaWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wuCisgICAgICAg
IGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJworICAgICAgICAgICAgICAgICAnXHJcbicp
CisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRf
aGFuZHNoYWtlPWRlbHRhKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisgICAg
ICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgneC1mb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKKworICAgIGRlZiB0ZXN0X2FkZF9jaGFu
bmVsX2RlbHRhX2FmdGVyX2lkZW50aXR5KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQorICAgICAgICAjIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaXMgZGlmZmVyZW50
IGZyb20gY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UKKyAgICAgICAgIyBvZiB0aGUgcGh5c2lj
YWwgY29ubmVjdGlvbi4KKyAgICAgICAgIyBUT0RPKGJhc2hpKTogUmVtb3ZlIFVwZ3JhZGUsIENv
bm5lY3Rpb24sIFNlYy1XZWJTb2NrZXQtS2V5IGFuZAorICAgICAgICAjIFNlYy1XZWJTb2NrZXQt
VmVyc2lvbi4KKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSAoCisgICAgICAgICAgICAnR0VU
IC9lY2hvIEhUVFAvMS4xXHJcbicKKyAgICAgICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5j
b21cclxuJworICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicK
KyAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKKyAgICAgICAgICAgICdPcmln
aW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgICAgICAgICAnXHJcbicpCisgICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
CisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJv
bCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9
NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisK
KyAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCisgICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisg
ICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRl
bHRhKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nSGVsbG8nKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3Nh
Z2U9J1dvcmxkJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykp
CisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMV0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykK
KyAgICAgICAgIyBDaGFubmVsIDIKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2Vz
WzBdKQorICAgICAgICAjIENoYW5uZWwgMworICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVz
c2FnZXNbMF0pCisgICAgICAgICMgSGFuZHNoYWtlIGJhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQuCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAneC1mb28nLAorICAgICAgICAg
ICAgbXV4X2hhbmRsZXIuX2hhbmRzaGFrZV9iYXNlLl9oZWFkZXJzWydTZWMtV2ViU29ja2V0LVBy
b3RvY29sJ10pCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9yZW1vdmVfaGVhZGVy
KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorICAgICAgICAjIE92
ZXJyaWRlIGhhbmRzaGFrZSBkZWx0YSBiYXNlLgorICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9
ICgKKyAgICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAgJ0hv
c3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Q
cm90b2NvbDogeC1mb29cclxuJworICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxu
JworICAgICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAgICAg
ICAgICdcclxuJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisK
KyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICAjIFJlbW92ZSBTZWMtV2ViU29ja2V0LVByb3Rv
Y29sIGhlYWRlci4KKyAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCisg
ICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOicKKyAgICAgICAgICAgICAg
ICAgJ1xyXG4nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0x
LCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCisgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQorICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVz
c2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtd
LCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdl
cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbM10ubWVzc2FnZXMpCisgICAgICAgICMgQ2hhbm5lbCAyCisgICAgICAgIG1lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKKyAgICAgICAgIyBDaGFubmVsIDMKKyAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAorICAgICAgICAgICAgJ3gtZm9vJywKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
KyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzNdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0
YV9lbmNvZGluZ19wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6CisgICAgICAgICMgRW5hYmxlIHBl
cm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24gdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNoYW5u
ZWwuCisgICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKKyAgICAg
ICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCisgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxf
ZXh0ZW5zaW9ucz1leHRlbnNpb25zKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxy
XG5cclxuJworICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBl
bmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAg
ICMgU2VuZCBjb21wcmVzc2VkICdIZWxsbycgb24gbG9naWNhbCBjaGFubmVsIDEgYW5kIDIuCisg
ICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQor
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQorICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzJdLm1lc3NhZ2VzKQorICAgICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNvbXBy
ZXNzZWQuCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X21lc3NhZ2VzKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1swXSkK
KyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQorCisgICAg
ZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcmVtb3ZlX2V4dGVuc2lvbnMoc2Vs
Zik6CisgICAgICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24gdGhl
IGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCisgICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24u
cGFyc2VfZXh0ZW5zaW9ucygKKyAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVf
RVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCisgICAg
ICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQorICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJ
QUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgICMgUmVt
b3ZlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24uCisgICAgICAgIGRlbHRhID0gKCdHRVQg
L2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1FeHRl
bnNpb25zOlxyXG4nCisgICAgICAgICAgICAgICAgICdcclxuJykKKyAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCisg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
KworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCBtZXNzYWdl
IG9uIGxvZ2ljYWwgY2hhbm5lbCAyLiBUaGUgbWVzc2FnZSBzaG91bGQKKyAgICAgICAgIyBiZSBy
ZWplY3RlZCAoc2luY2UgcnN2MSBpcyBzZXQpLgorICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT1jb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJzdjE9VHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAgICAg
ICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
YmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9Q
X0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfTk9STUFM
X0NMT1NVUkUsIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgICMgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbiBzaG91bGQgYmUgcmFpc2VkIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJd
LmV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5zdXBwb3J0
ZWRGcmFtZUV4Y2VwdGlvbikpCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9pbnZhbGlkX2Vu
Y29kaW5nKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQor
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNo
bycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTMsCisgICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkK
KworICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAorICAgICAgICAgICAgYiBmb3IgYiBpbiBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAgICAg
ICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9S
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xv
c2VfY29kZSkKKworICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2luY29tcGxldGVfaGFuZHNoYWtl
KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGlu
Y29tcGxldGVfZW5jb2RlZF9oYW5kc2hha2UgPSAnR0VUIC9lY2hvIEhUVFAvMS4xJworICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAorICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9aW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgMiBpbiBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
KQorCisgICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZHVwbGljYXRlX2NoYW5uZWxfaWQoc2VsZik6
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9O
VU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
KyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3Bf
Y2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9
PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfZHJvcF9jaGFubmVsKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVs
X2ZyYW1lKGNoYW5uZWxfaWQ9MikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhkcm9wX2NoYW5uZWwpCisKKyAgICAgICAgIyBUZXJtaW5hdGUgaW1wbGljaXRseSBvcGVuZWQg
Y2hhbm5lbC4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCisKKyAgICAgICAgZXhjZXB0aW9uID0gZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1syXS5leGNlcHRpb24KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4Y2VwdGlvbi5fX2Ns
YXNzX18gPT0gQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pCisKKyAgICBkZWYgdGVzdF9y
ZWNlaXZlX3BpbmdfZnJhbWUoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQor
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQor
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
CisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xMykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcGluZ19mcmFtZSA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gV29ybGQhJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUpCisKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2FnZXNb
MF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBt
ZXNzYWdlc1swXVsnbWVzc2FnZSddKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudGVk
X3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisg
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hv
JykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0xMykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgcGluZyB3aXRoIG1lc3NhZ2UgJ0hlbGxvIHdv
cmxkIScgaW4gdHdvIGZyYWdtZW50ZWQgZnJhbWVzLgorICAgICAgICBwaW5nX2ZyYW1lMSA9IF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMSkKKyAgICAgICAg
cGluZ19mcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KHBpbmdfZnJhbWUyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnll
JykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uT1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKKworICAg
IGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nX3doaWxlX3JlY2VpdmluZ19mcmFnbWVu
dGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisK
KyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
KyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xOSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBmcmFtZSBvZiBt
ZXNzYWdlICdIZWxsbyAnLgorICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1G
YWxzZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxsbykKKworICAg
ICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1l
c3NhZ2UsIHNlbmQgYQorICAgICAgICAjIGZyYWdtZW50ZWQgcGluZy4KKyAgICAgICAgcGluZzEg
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKKyAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlPSduZyEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNv
bW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKHBpbmcyKQorCisgICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1l
IG9mIHRoZSBtZXNzYWdlLgorICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1dvcmxkIScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1U
cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9u
Lk9QQ09ERV9DT05USU5VQVRJT04pCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMod29ybGQpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
KworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxk
ISddLCBtZXNzYWdlcykKKyAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydt
ZXNzYWdlJ10pCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19waW5nX3doaWxlX3JlY2Vpdmlu
Z19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yNSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBm
cmFtZSBvZiBtZXNzYWdlICdIZWxsbyAnLgorICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbj1GYWxzZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxs
bykKKworICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUg
b2YgdGhlIG1lc3NhZ2UsIHNlbmQgYQorICAgICAgICAjIGZyYWdtZW50ZWQgcGluZyBhbmQgYSBu
b24tZnJhZ21lbnRlZCBwaW5nLgorICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J1BpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZh
bHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9u
Lk9QQ09ERV9QSU5HKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcx
KQorICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJ
T04pCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCisgICAgICAg
IHBpbmczID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUG9uZyEnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMykKKworICAgICAgICAjIFNlbmQgdGhlIGxh
c3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgICAgd29ybGQgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCisgICAgICAgIGNvbnRyb2xfbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNz
YWdlc1swXVsnb3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29u
dHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSdd
KQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3doaWxlX3JlY2VpdmluZ19mcmFnbWVu
dGVkX3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
CisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTkpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQorCisgICAgICAgICMgU2VuZCBhIGZyYWdtZW50ZWQgcGluZy4KKyAgICAgICAg
cGluZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKKworICAgICAgICAjIEJlZm9yZSBzZW5kaW5n
IHRoZSBsYXN0IGZyYWdtZW50ZWQgcGluZywgc2VuZCBhIG1lc3NhZ2UuCisgICAgICAgICMgVGhl
IGxvZ2ljYWwgY2hhbm5lbCAoMikgc2hvdWxkIGJlIGRyb3BwZWQuCisgICAgICAgIG1lc3NhZ2Ug
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIHdvcmxkIScsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUpCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMobWVzc2FnZSkKKworICAgICAgICAjIFNlbmQgdGhlIGxhc3Qg
ZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgICAgcGluZzIgPSBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPSduZyEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKHBpbmcyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IG5l
eHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hh
bm5lbC5jaGFubmVsX2lkKQorICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24g
Y2hhbm5lbCAyLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2Vz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhLZXlFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IDIpCisKKyAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRy
b2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsn
b3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1b
J21lc3NhZ2UnXSkKKworICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgor
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCisgICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisg
ICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgUmVwbGVuaXNoIDMg
Ynl0ZXMuIFRoaXMgaXNuJ3QgZW5vdWdoIHRvIHNlbmQgdGhlIHdob2xlIHBpbmcgZnJhbWUKKyAg
ICAgICAgIyBiZWNhdXNlIHRoZSBmcmFtZSB3aWxsIGhhdmUgNSBieXRlcyBtZXNzYWdlKCdQaW5n
IScpLiBUaGUgZnJhbWUKKyAgICAgICAgIyBzaG91bGQgYmUgZnJhZ21lbnRlZC4KKyAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0zKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKKworICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9ja2VkIGR1
ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgorICAgICAgICB0aW1lLnNsZWVwKDEpCisKKyAgICAg
ICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDIgKyAxIGJ5dGVzIChpbmNsdWRpbmcgZXh0cmEgY29z
dCkuCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10p
CisKKyAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdt
ZW50ZWRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
KworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCisg
ICAgICAgICAgICBwYXRoPScvcGluZ193aGlsZV9oZWxsb193b3JsZCcpCisgICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgQXBwbGljYXRpb24gd2ls
bCBzZW5kOgorICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAKKyAg
ICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKKyAgICAgICAgIyAtIHRleHQgbWVz
c2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCisgICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAo
MiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIHBpbmcgd2lsbCBiZQorICAgICAgICAjIGZyYWdtZW50
ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0
ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAg
dGltZS5zbGVlcCgxKQorCisgICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgNiBieXRl
cy4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT05KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQorICAgICAgICBjb250cm9sX21lc3NhZ2Vz
ID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVzc2Fn
ZXNbMF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRy
b2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKKworICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRl
ZF90d29fcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9
IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5k
bGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCisgICAgICAgICAgICBwYXRoPScvdHdvX3Bpbmdf
d2hpbGVfaGVsbG9fd29ybGQnKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKKworICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKKyAgICAgICAgIyAtIHRl
eHQgbWVzc2FnZSAnSGVsbG8gJyB3aXRoIGZpbj0wCisgICAgICAgICMgLSBwaW5nIHdpdGggJ1Bp
bmchJyBtZXNzYWdlCisgICAgICAgICMgLSBwaW5nIHdpdGggJ1BvbmchJyBtZXNzYWdlCisgICAg
ICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQorICAgICAgICAjIFJlcGxl
bmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBmaXJzdCBwaW5nIHdpbGwg
YmUKKyAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTApCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQorCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKworICAgICAgICAjIFJlcGxlbmlz
aCByZW1haW5pbmcgMyArICg1ICsgMSkgKyA2IGJ5dGVzLiBUaGUgc2Vjb25kIHBpbmcgd29uJ3QK
KyAgICAgICAgIyBiZSBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTUpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxs
byBXb3JsZCEnXSwgbWVzc2FnZXMpCisgICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bj
b2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdl
c1swXVsnbWVzc2FnZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVf
UElORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSddKQorCisgICAgZGVm
IHRlc3Rfc2VuZF9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgIyBEcm9wQ2hhbm5l
bCBmb3IgY2hhbm5lbCBpZCAxIHdoaWNoIGRvZXNuJ3QgaGF2ZSByZWFzb24uCisgICAgICAgIGZy
YW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKKworICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisK
KyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAg
IGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQUNLTk9XTEVER0VELAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisKKyAgICBkZWYgdGVzdF90d29fZmxv
d19jb250cm9sKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
KQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4
X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90
cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisg
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAg
ICAgICMgUmVwbGVuaXNoIDUgYnl0ZXMuCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBT
ZW5kIDEwIGJ5dGVzLiBUaGUgc2VydmVyIHdpbGwgdHJ5IGVjaG8gYmFjayAxMCBieXRlcy4KKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKKworICAg
ICAgICAjIFJlcGxlbmlzaCA1ICsgMSAocGVyLW1lc3NhZ2UgZXh0cmEgY29zdCkgYnl0ZXMuCisg
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
KyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
V29ybGQnXSwgbWVzc2FnZXMpCisgICAgICAgIHJlY2VpdmVkX2Zsb3dfY29udHJvbHMgPSBbCisg
ICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVf
RkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KKyAgICAgICAgIyBSZXBsZW5pc2ht
ZW50IGZvciAnSGVsbG9Xb3JsZCcgKyAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTEsIHJl
Y2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKKyAgICAgICAgIyBSZXBsZW5pc2ht
ZW50IGZvciAnR29vZGJ5ZScgKyAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgcmVjZWl2
ZWRfZmxvd19jb250cm9sc1sxXS5zZW5kX3F1b3RhKQorCisgICAgZGVmIHRlc3Rfbm9fc2VuZF9x
dW90YV9vbl9zZXJ2ZXIoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
CisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKKwor
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorCisgICAg
ICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMgdG8g
ZWNobyBiYWNrCisgICAgICAgICMgJ0hlbGxvV29ybGQnLgorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQorCisgICAgICAgICMg
Tm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCisgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEtleUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IDIpCisKKyAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcl9mb3JfcGVybWVzc2Fn
ZV9leHRyYV9jb3N0KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQor
CisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAs
CisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisg
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdI
ZWxsbycpKQorICAgICAgICAjIFJlcGxlbmlzaCBvbmx5IGxlbignV29ybGQnKSBieXRlcy4KKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT01KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKKyAgICAgICAgIyBTZXJ2ZXIgc2hvdWxkIG5vdCBjYWxsYmFjayBmb3Ig
dGhpcyBtZXNzYWdlLgorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nV29y
bGQnKSkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQorCisgICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0
ZW1wdHMgdG8gZWNobyBiYWNrCisgICAgICAgICMgJ1dvcmxkJy4KKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0xKSkKKworICAgICAg
ICAjIE9ubHkgb25lIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5lbCAyLgorICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCisKKyAgICBkZWYg
dGVzdF9xdW90YV92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsIDApCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQn
KSkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQor
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKKworICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwg
bGVuKGNvbnRyb2xfYmxvY2tzKSkKKyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAgICAg
ICAgICAgIGIgZm9yIGIgaW4gY29udHJvbF9ibG9ja3MKKyAgICAgICAgICAgIGlmIGIub3Bjb2Rl
ID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2NvbnN1bWVf
cXVvdGFfZW1wdHlfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisg
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
CisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgIyBDbGllbnQgaGFzIDEgYnl0
ZSBxdW90YS4KKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklU
SUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxKQorCisgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisgICAgICAg
ICMgU2VuZCBhbiBlbXB0eSBtZXNzYWdlLiBQeXdlYnNvY2tldCBhbHdheXMgcmVwbGVuaXNoZXMg
MSBieXRlIHF1b3RhCisgICAgICAgICMgZm9yIGVtcHR5IG1lc3NhZ2UKKyAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9JycpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgICMgVGhpcyBtZXNzYWdlIHZpb2xhdGVz
IHF1b3RhIG9uIGNoYW5uZWwgaWQgMi4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBsZW4oZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXNb
MF0pCisKKyAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKKyAgICAgICAgICAgIGIg
Zm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkK
KyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wg
YW5kIGIuY2hhbm5lbF9pZCA9PSAyXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihy
ZWNlaXZlZF9mbG93X2NvbnRyb2xzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCByZWNl
aXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCisKKyAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJv
cF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9Q
X0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgZHJv
cF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2NvbnN1bWVfcXVvdGFfZnJhZ21l
bnRlZF9tZXNzYWdlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICAjIENsaWVudCBoYXMgbGVuKCdIZWxsbycp
ICsgbGVuKCdHb29kYnllJykgKyAyIGJ5dGVzIHF1b3RhLgorICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDE0
KQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihw
YXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5n
PTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQor
CisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
CisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdIZScsIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1l
c3NhZ2U9J2xsbycsIGZpbj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCisKKyAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMg
PSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIG1lc3NhZ2VzKQorCisgICAgZGVmIHRlc3RfZnJhZ21l
bnRlZF9jb250cm9sX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9waW5nJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCisKKyAgICAgICAgIyBSZXBsZW5pc2ggdG90YWwgNiBieXRlcyBpbiAzIEZsb3dDb250cm9s
cy4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIpCisgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9MykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
KworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCisKKyAgICBkZWYgdGVzdF9j
aGFubmVsX3Nsb3RfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
KworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAor
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
SGVsbG8nKSkKKworICAgICAgICAjIFRoaXMgcmVxdWVzdCBzaG91bGQgYmUgcmVqZWN0ZWQuCisg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCisg
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTYpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdIZWxs
bycpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
CisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMV0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMuaGFzX2tleSgzKSkKKyAgICAgICAgZHJv
cF9jaGFubmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2Rl
ID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMywgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X3F1b3Rh
X292ZXJmbG93X2J5X2NsaWVudChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisg
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
CisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMoc2xvdHM9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQor
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAorICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKKyAgICAgICAgIyBSZXBs
ZW5pc2ggMHg3RkZGRkZGRkZGRkZGRkZGIGJ5dGVzIHR3aWNlLgorICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwKKyAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTB4N0ZGRkZGRkZGRkZGRkZGRikKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAg
ICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBi
Lm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1csCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2ludmFs
aWRfZW5jYXBzdWxhdGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgZmlyc3RfYnl0ZSA9
IChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KQorICAgICAgICBibG9j
ayA9IChjaHIoZmlyc3RfYnl0ZSkgKworICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFu
bmVsX2lkKDEpICsKKyAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKDApKQorICAg
ICAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5F
TF9JRCkgKyBibG9jaworICAgICAgICB0ZXh0X2ZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZShw
YXlsb2FkLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXModGV4dF9mcmFtZSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9E
Uk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAgIGRl
ZiB0ZXN0X2NoYW5uZWxfaWRfdHJ1bmNhdGVkKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorCisgICAgICAgICMgVGhlIGxh
c3QgYnl0ZSBvZiB0aGUgY2hhbm5lbCBpZCBpcyBtaXNzaW5nLgorICAgICAgICBmcmFtZSA9IGNy
ZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4ODAnLCBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hhbm5l
bCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXgu
X01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5f
RFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVELAorICAgICAgICAgICAgICAgICAgICAgICAg
IGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCisKKyAgICBkZWYgdGVzdF9p
bm5lcl9mcmFtZV90cnVuY2F0ZWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgIyBKdXN0IGNvbnRhaW4g
Y2hhbm5lbCBpZCAxLgorICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDEn
LCBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUp
CisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBi
IGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcygp
CisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9G
UkFNRV9JU19UUlVOQ0FURUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVs
LmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVS
TkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAgIGRlZiB0ZXN0X3Vua25vd25fbXV4X29w
Y29kZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKKworICAgICAgICAjIFVuZGVmaW5lZCBvcGNvZGUgNQorICAgICAgICBm
cmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceGEwJywgbWFzaz1UcnVlKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAg
ICBkcm9wX2NoYW5uZWwgPSBuZXh0KAorICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAg
IGRlZiB0ZXN0X2ludmFsaWRfbXV4X2NvbnRyb2xfYmxvY2soc2VsZik6CisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAg
IyBEcm9wQ2hhbm5lbCBjb250YWlucyAxIGJ5dGUgcmVhc29uCisgICAgICAgIGZyYW1lID0gY3Jl
YXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAwXHgwMVx4MDAnLCBtYXNrPVRydWUpCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAg
ICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBi
Lm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisgICAg
ICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29k
ZSkKKworICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKKyAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAg
bXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGRl
ZmxhdGUgZXh0ZW5zaW9uIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgorICAgICAgICBleHRlbnNpb25z
ID0gY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04KKyAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM9ZXh0
ZW5zaW9ucykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
KyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0yMCkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyB0d2lj
ZS4KKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
KyAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQor
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzc2VkX2hlbGxvMVs6LTRd
CisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8x
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCisgICAgICAg
IGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbzIgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisg
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3NlZF9oZWxsbzJbOi00XQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvMiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQorCisgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsbycsICdIZWxsbyddLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisgICAgICAgICMgV3JpdHRl
biAnSGVsbG8ncyBzaG91bGQgYmUgY29tcHJlc3NlZC4KKyAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyLCBsZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXBy
ZXNzZWRfaGVsbG8xLCBtZXNzYWdlc1swXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21w
cmVzc2VkX2hlbGxvMiwgbWVzc2FnZXNbMV0pCisKKworICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2Vf
ZGVmbGF0ZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbnMgPSBj
b21tb24ucGFyc2VfZXh0ZW5zaW9ucygKKyAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
CisgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQorICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAg
ICMgU2VuZCBjb21wcmVzc2VkICdIZWxsb0hlbGxvSGVsbG8nIGFzIGZyYWdtZW50ZWQgbWVzc2Fn
ZS4KKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
KyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb0hlbGxv
SGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxs
b1s6LTRdCisKKyAgICAgICAgbSA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAvIDIKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvWzptXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW49RmFsc2UsIHJzdjE9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21w
cmVzc2VkX2hlbGxvW206XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49
VHJ1ZSwgcnN2MT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsb0hlbGxvSGVsbG8nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQorICAgICAgICBtZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2Jh
ZF9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBmaW49RmFsc2UsIGFuZCB0aGVuIHNl
bmQgYSBmcmFtZSB3aXRoCisgICAgICAgICMgb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04p
LiBMb2dpY2FsIGNoYW5uZWwgMiBzaG91bGQgYmUgZHJvcHBlZC4KKyAgICAgICAgZnJhbWUxID0g
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQorICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMSkKKyAgICAgICAgZnJhbWUyID0gX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZnJhbWUyKQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFu
bmVsX2lkPTMsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggb3Bjb2RlPUNP
TlRJTlVBVElPTiB3aXRob3V0IGEgcHJlY2VkaW5nIGZyYW1lCisgICAgICAgICMgdGhlIGZpbiBv
ZiB3aGljaCBpcyBub3Qgc2V0LiBMb2dpY2FsIGNoYW5uZWwgMyBzaG91bGQgYmUgZHJvcHBlZC4K
KyAgICAgICAgZnJhbWUzID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElO
VUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMykKKwor
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0n
L2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD00LCBlbmNvZGluZz0wLAor
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKKworICAg
ICAgICAjIFNlbmQgYSBmcmFtZSB3aXRoIG9wY29kZT1QSU5HIGFuZCBmaW49RmFsc2UsIGFuZCB0
aGVuIHNlbmQgYSBmcmFtZQorICAgICAgICAjIHdpdGggb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5V
QVRJT04pLiBMb2dpY2FsIGNoYW5uZWwgNCBzaG91bGQgYmUKKyAgICAgICAgIyBkcm9wcGVkLgor
ICAgICAgICBmcmFtZTQgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGluZycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQor
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lNCkKKyAgICAgICAgZnJh
bWU1ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9NCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTUpCisKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJvcF9j
aGFubmVscyA9IFsKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11
eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUxdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywg
bGVuKGRyb3BfY2hhbm5lbHMpKQorICAgICAgICBmb3IgZCBpbiBkcm9wX2NoYW5uZWxzOgorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElP
TiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5kcm9wX2NvZGUpCisKKworaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKKworCisjIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X3N0cmVhbS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWFjZmViMDQ4ZDNiMjAzMmE3OTQ4Y2ZhMmFk
ZWE3Y2U2NGY5NWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtLnB5
CkBAIC0wLDAgKzEsNzcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQg
MjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKworIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCisKKworaW1wb3J0IHVuaXR0
ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBt
b2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCisKKworY2xhc3MgU3RyZWFt
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3Igc3RyZWFtIG1v
ZHVsZS4iIiIKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9oZWFkZXIoc2VsZik6CisgICAgICAgICMg
bW9yZSwgcnN2MSwgLi4uLCByc3Y0IGFyZSBhbGwgdHJ1ZQorICAgICAgICBoZWFkZXIgPSBzdHJl
YW0uY3JlYXRlX2hlYWRlcihjb21tb24uT1BDT0RFX1RFWFQsIDEsIDEsIDEsIDEsIDEsIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZjFceDgxJywgaGVhZGVyKQorCisgICAgICAgICMg
TWF4aW11bSBwYXlsb2FkIHNpemUKKyAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9oZWFk
ZXIoCisgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsICgxIDw8IDYzKSAtIDEsIDAsIDAs
IDAsIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDdmXHg3Zlx4ZmZceGZm
XHhmZlx4ZmZceGZmXHhmZlx4ZmYnLCBoZWFkZXIpCisKKyAgICAgICAgIyBJbnZhbGlkIG9wY29k
ZSAweDEwCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDEwLCAwLCAwLCAwLCAwLCAwLCAwKQorCisgICAgICAgICMgSW52YWxpZCB2YWx1
ZSAweGYgcGFzc2VkIHRvIG1vcmUgcGFyYW1ldGVyCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVh
ZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDAsIDB4
ZiwgMCwgMCwgMCwgMCkKKworICAgICAgICAjIFRvbyBsb25nIHBheWxvYWRfbGVuZ3RoCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb21t
b24uT1BDT0RFX1RFWFQsIDEgPDwgNjMsIDAsIDAsIDAsIDAsIDApCisKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E5YWM3MTMwYjczMDRlYjky
ZGJiYmMxNTMzYWE0MTU0NWUwMjQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X3N0cmVhbV9oaXhpZTc1LnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIworIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIi
CisKKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5
cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdl
YnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKK2Zyb20gdGVzdC50ZXN0X21zZ3V0
aWwgaW1wb3J0IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1CisKKworY2xhc3MgU3RyZWFtSGl4aWU3
NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIFN0cmVhbUhp
eGllNzUgY2xhc3MuIiIiCisKKyAgICBkZWYgdGVzdF9wYXlsb2FkX2xlbmd0aChzZWxmKToKKyAg
ICAgICAgZm9yIGxlbmd0aCwgYnl0ZXMgaW4gKCgwLCAnXHgwMCcpLCAoMHg3ZiwgJ1x4N2YnKSwg
KDB4ODAsICdceDgxXHgwMCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MTIz
NCwgJ1x4ODBceGE0XHgzNCcpKToKKyAgICAgICAgICAgIHRlc3Rfc3RyZWFtID0gU3RyZWFtSGl4
aWU3NShfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShieXRlcykpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGxlbmd0aCwgdGVzdF9zdHJlYW0uX3JlYWRfcGF5
bG9hZF9sZW5ndGhfaGl4aWU3NSgpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Cisg
ICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMGY0YWIwNTk2NTJjNTg2OWVjMjA1YTEyOGRmOTM5MTRjYThjNzFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpAQCAtMCwwICsxLDIwMCBAQAorIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgdXRpbCBt
b2R1bGUuIiIiCisKKworaW1wb3J0IG9zCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgc3lzCitpbXBv
cnQgdW5pdHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8g
bG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCB1dGlsCisKKworX1RFU1RfREFUQV9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxp
dChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0YScpCisKKworY2xhc3MgVXRpbFRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIHV0aWwgbW9kdWxlLiIiIgorCisgICAg
ZGVmIHRlc3RfZ2V0X3N0YWNrX3RyYWNlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdOb25lXG4nLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBhID0gMSAvIDAgICMgSW50ZW50aW9uYWxseSByYWlzZSBleGNlcHRpb24uCisgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICB0cmFjZSA9IHV0aWwuZ2V0X3N0YWNrX3Ry
YWNlKCkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5zdGFydHN3aXRoKCdUcmFj
ZWJhY2snKSkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5maW5kKCdaZXJvRGl2
aXNpb25FcnJvcicpICE9IC0xKQorCisgICAgZGVmIHRlc3RfcHJlcGVuZF9tZXNzYWdlX3RvX2V4
Y2VwdGlvbihzZWxmKToKKyAgICAgICAgZXhjID0gRXhjZXB0aW9uKCdXb3JsZCcpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgc3RyKGV4YykpCisgICAgICAgIHV0aWwucHJlcGVu
ZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdIZWxsbyBXb3JsZCcsIHN0cihleGMpKQorCisgICAgZGVmIHRlc3RfZ2V0X3Njcmlw
dF9pbnRlcnAoc2VsZik6CisgICAgICAgIGN5Z3dpbl9wYXRoID0gJ2M6XFxjeWd3aW5cXGJpbicK
KyAgICAgICAgY3lnd2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsICdwZXJsJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAor
ICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJykpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCisgICAg
ICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSwgY3lnd2luX3Bh
dGgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jpbi9wZXJsIC13VCcsIHV0aWwu
Z2V0X3NjcmlwdF9pbnRlcnAoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9E
SVIsICdoZWxsby5wbCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjeWd3aW5fcGVybCAr
ICcgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKKyAgICAgICAgICAgIG9zLnBhdGguam9p
bihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9wYXRoKSkKKworICAgIGRlZiB0
ZXN0X2hleGlmeShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNjEgN2EgNDEgNWEg
MzAgMzkgMjAgMDkgMGQgMGEgMDAgZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwu
aGV4aWZ5KCdhekFaMDkgXHRcclxuXHgwMFx4ZmYnKSkKKworCitjbGFzcyBSZXBlYXRlZFhvck1h
c2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIFJlcGVh
dGVkWG9yTWFza2VyIGNsYXNzLiIiIgorCisgICAgZGVmIHRlc3RfbWFzayhzZWxmKToKKyAgICAg
ICAgIyBTYW1wbGUgaW5wdXQgZTYsOTcsYTUgaXMgVSs2NWU1IGluIFVURi04CisgICAgICAgIG1h
c2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZmZceGZmXHhmZlx4ZmYnKQorICAgICAg
ICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHgxOVx4NjhceDVhJywgcmVzdWx0KQorCisgICAgICAgIG1hc2tlciA9IHV0aWwu
UmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDAwXHgwMFx4MDAnKQorICAgICAgICByZXN1bHQgPSBt
YXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhl
Nlx4OTdceGE1JywgcmVzdWx0KQorCisgICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JN
YXNrZXIoJ1x4ZTZceDk3XHhhNVx4MjAnKQorICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygn
XHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4MDBceDAwJywg
cmVzdWx0KQorCisgICAgZGVmIHRlc3RfbWFza190d2ljZShzZWxmKToKKyAgICAgICAgbWFza2Vy
ID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHgwMFx4N2ZceGZmXHgyMCcpCisgICAgICAgICMg
bWFza1swXSwgbWFza1sxXSwgLi4uIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgcmVzdWx0ID0gbWFz
a2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHgwMFx4N2ZceGZmXHgyMFx4MDAnLCByZXN1bHQpCisgICAgICAgICMgbWFza1syXSwgbWFz
a1swXSwgLi4uIHdpbGwgYmUgdXNlZCBmb3IgdGhlIG5leHQgY2FsbC4KKyAgICAgICAgcmVzdWx0
ID0gbWFza2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHg3Zlx4ZmZceDIwXHgwMFx4N2YnLCByZXN1bHQpCisKKyAgICBkZWYgdGVzdF9t
YXNrX2xhcmdlX2RhdGEoc2VsZik6CisgICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JN
YXNrZXIoJ21BU2snKQorICAgICAgICBvcmlnaW5hbCA9ICcnLmpvaW4oW2NocihpICUgMjU2KSBm
b3IgaSBpbiB4cmFuZ2UoMTAwMCldKQorICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhvcmln
aW5hbCkKKyAgICAgICAgZXhwZWN0ZWQgPSAnJy5qb2luKAorICAgICAgICAgICAgICAgIFtjaHIo
KGkgJSAyNTYpIF4gb3JkKCdtQVNrJ1tpICUgNF0pKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1bHQpCisKKyAgICAgICAgbWFz
a2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignTWFTaycpCisgICAgICAgIGZpcnN0X3BhcnQg
PSAnVGhlIFdlYlNvY2tldCBQcm90b2NvbCBlbmFibGVzIHR3by13YXkgY29tbXVuaWNhdGlvbi4n
CisgICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKGZpcnN0X3BhcnQpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgJ1x4MTlcdDZLXHgxYVx4MDQxOCJceDAyOFx4
MGU5QVx4MDNceDE5Ilx4MTU8XHgwOCJccnNceDBlIycKKyAgICAgICAgICAgICAgICAnXHgwMDFc
eDA3KFx4MTJzXHgxZjpceDBlflx4MWMsXHgxOHNceDA4Ilx4MGM+XHgxZSNceDA4MFxuOScKKyAg
ICAgICAgICAgICAgICAnXHgwODxceDA1YycsCisgICAgICAgICAgICAgICAgcmVzdWx0KQorICAg
ICAgICBzZWNvbmRfcGFydCA9ICdJdCBoYXMgdHdvIHBhcnRzOiBhIGhhbmRzaGFrZSBhbmQgdGhl
IGRhdGEgdHJhbnNmZXIuJworICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhzZWNvbmRfcGFy
dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAiKCdLJVx4MDAg
SzlceDE2PEs9XHgwMCFceDFmPltzXG5tXHQyXHgwNSlceDEyO1xuJlx4MDRzXG4jIgorICAgICAg
ICAgICAgICAgICJceDA1c1x4MWYlXHgwNHNceDBmLFx4MTUySzlceDEzMlx4MDU+XHgwNzZceDE5
YyIsCisgICAgICAgICAgICAgICAgcmVzdWx0KQorCisKK2RlZiBnZXRfcmFuZG9tX3NlY3Rpb24o
c291cmNlLCBtaW5fbnVtX2NodW5rcyk6CisgICAgY2h1bmtzID0gW10KKyAgICBieXRlc19jaHVu
a2VkID0gMAorCisgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihzb3VyY2UpOgorICAgICAg
ICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCisgICAgICAgICAgICAxLAorICAgICAgICAg
ICAgbWluKGxlbihzb3VyY2UpIC8gbWluX251bV9jaHVua3MsIGxlbihzb3VyY2UpIC0gYnl0ZXNf
Y2h1bmtlZCkpCisgICAgICAgIGNodW5rID0gc291cmNlW2J5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1
bmtlZCArIGNodW5rX3NpemVdCisgICAgICAgIGNodW5rcy5hcHBlbmQoY2h1bmspCisgICAgICAg
IGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQorCisgICAgcmV0dXJuIGNodW5rcworCisKK2Ns
YXNzIEluZmxhdGVyRGVmbGF0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJBIHVu
aXR0ZXN0IGZvciBfSW5mbGF0ZXIgYW5kIF9EZWZsYXRlciBjbGFzcy4iIiIKKworICAgIGRlZiB0
ZXN0X2luZmxhdGVfZGVmbGF0ZV9kZWZhdWx0KHNlbGYpOgorICAgICAgICBpbnB1dCA9IGInaGVs
bG8nICsgJy0nICogMzAwMDAgKyBiJ2hlbGxvJworICAgICAgICBpbmZsYXRlcjE1ID0gdXRpbC5f
SW5mbGF0ZXIoMTUpCisgICAgICAgIGRlZmxhdGVyMTUgPSB1dGlsLl9EZWZsYXRlcigxNSkKKyAg
ICAgICAgaW5mbGF0ZXI4ID0gdXRpbC5fSW5mbGF0ZXIoOCkKKyAgICAgICAgZGVmbGF0ZXI4ID0g
dXRpbC5fRGVmbGF0ZXIoOCkKKworICAgICAgICBjb21wcmVzc2VkMTUgPSBkZWZsYXRlcjE1LmNv
bXByZXNzX2FuZF9maW5pc2goaW5wdXQpCisgICAgICAgIGNvbXByZXNzZWQ4ID0gZGVmbGF0ZXI4
LmNvbXByZXNzX2FuZF9maW5pc2goaW5wdXQpCisKKyAgICAgICAgaW5mbGF0ZXIxNS5hcHBlbmQo
Y29tcHJlc3NlZDE1KQorICAgICAgICBpbmZsYXRlcjguYXBwZW5kKGNvbXByZXNzZWQ4KQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoY29tcHJlc3NlZDE1LCBjb21wcmVzc2VkOCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXIxNS5kZWNvbXByZXNzKC0xKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXI4LmRlY29tcHJlc3MoLTEp
KQorCisgICAgZGVmIHRlc3RfcmFuZG9tX3NlY3Rpb24oc2VsZik6CisgICAgICAgIHJhbmRvbS5z
ZWVkKGE9MCkKKyAgICAgICAgc291cmNlID0gJycuam9pbigKKyAgICAgICAgICAgIFtjaHIocmFu
ZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMCAqIDEwMjQpXSkKKworICAg
ICAgICBjaHVua2VkX2lucHV0ID0gZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCisgICAg
ICAgIHByaW50ICJJbnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBjaHVu
a2VkX2lucHV0XQorCisgICAgICAgIGRlZmxhdGVyID0gdXRpbC5fRGVmbGF0ZXIoMTUpCisgICAg
ICAgIGNvbXByZXNzZWQgPSBbXQorICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtlZF9pbnB1dDoK
KyAgICAgICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzKGNodW5rKSkK
KyAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaCgn
JykpCisKKyAgICAgICAgY2h1bmtlZF9leHBlY3RhdGlvbiA9IGdldF9yYW5kb21fc2VjdGlvbihz
b3VyY2UsIDEwKQorICAgICAgICBwcmludCAoIkV4cGVjdGF0aW9uIGNodW5rIHNpemVzOiAlciIg
JQorICAgICAgICAgICAgICAgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2V4cGVjdGF0aW9uXSkK
KworICAgICAgICBpbmZsYXRlciA9IHV0aWwuX0luZmxhdGVyKDE1KQorICAgICAgICBpbmZsYXRl
ci5hcHBlbmQoJycuam9pbihjb21wcmVzc2VkKSkKKyAgICAgICAgZm9yIGNodW5rIGluIGNodW5r
ZWRfZXhwZWN0YXRpb246CisgICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBpbmZsYXRlci5kZWNv
bXByZXNzKGxlbihjaHVuaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNodW5rLCBk
ZWNvbXByZXNzZWQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgaW5mbGF0ZXIuZGVj
b21wcmVzcygtMSkpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVz
dC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
MDFhYTU1OTVjZGQxMzQwN2Y1NzI4ZWNkNTMyYTVkMTIyNjNlZmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCkBAIC0wLDAgKzEgQEAKK1Rlc3QgZGF0YSBkaXJl
Y3RvcnkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91
c2VyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dz
aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNjdmOTkzMGY3ODI0YzNhNTM1OTE0YTViMzc3OWY2YjZmYmEyNDNm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5
X3VzZXJfd3NoLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKKworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpOgorICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0
aW9uKCJhYm9ydCBmb3IgdGVzdCIpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Zjg3YzZhZjIzZGYwOGVm
ZTM1NzVjYWUyMDhkZTUwMjJjYmFhNjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdo
dCAyMDA5LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworCisjIGludGVudGlvbmFsbHkgbGVmdCBibGFuawpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzEzOWZhMTc2
Y2MzNDE3YmU5NmRlNzk4ZTZhODFlZDE0OWIxOTkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKQEAgLTAsMCArMSw0MiBA
QAorIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlv
bi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisj
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtl
KHJlcXVlc3QpOgorICAgIGlmIHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBsZS5j
b20nOgorICAgICAgICByZXR1cm4KKyAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFibGUg
b3JpZ2luOiAlcicgJSByZXF1ZXN0LndzX29yaWdpbikKKworCitkZWYgd2ViX3NvY2tldF90cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3JpZ2lu
X2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisK
KworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjk4MmQwMjMxZWYwMGYwMmUwZDkwZGY2NzhlYjgwNGJhNDM4NjJkOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVy
X3dzaC5weQpAQCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgor
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJFeGNlcHRp
b24gaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKCkuCisiIiIKKworCitkZWYgd2ViX3NvY2tl
dF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29j
a2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRlbnRp
b25hbCBFeGNlcHRpb24gZm9yICVzLCAlcycgJQorICAgICAgICAgICAgICAgICAgICAocmVxdWVz
dC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9h
dF90aGVfZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRf
dGhlX2VuZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2U3YmUxODAyZTNjNjZjNjM4NDk4NzVlYTM1ZTI0MDZh
MzgxZTYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi9ub193c2hfYXRfdGhlX2VuZC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENvcHlyaWdodCAyMDA5
LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisiIiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdyb25nIGZpbGUgbmFtZS4KKyIiIgorCisKK2Rl
ZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKwor
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUoCisgICAgICAgICAgICAnc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5IGlzIGNh
bGxlZCBmb3IgJXMsICVzJyAlCisgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVx
dWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjYzNTJlYjRjYTIzODk1MjIzOWUzNTQyNzI4Y2UzYjM4ZDgzZGQ2YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5w
eQpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgorIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJOb24tY2FsbGFibGUg
aGFuZGxlcnMuCisiIiIKKworCit3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSA9IFRydWUK
K3dlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSA9IDEKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGIzZmY2OTMwMjU2YmMxYjEzZTJjNGMyZDFjODQzYzRiN2M4MGFhNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CkBAIC0wLDAg
KzEsNDAgQEAKKyMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ3N1Yi9wbGFpbl93
c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQorCisKKyMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWlt
cG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1MzM2ZDZmNTVlN2UwMGRlNjQzNWM2ZWExYjUwODQ1N2Fj
YjBmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmJmNjU5YmM5YWYwMWMxMDdlZjM1MDhiMmI1ZDAxNzNkY2Y1OTAwOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFu
ZHNoYWtlX3NpZ193c2gucHkKQEAgLTAsMCArMSw0NSBAQAorIyBDb3B5cmlnaHQgMjAwOSwgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKwor
IiIiV3Jvbmcgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Ugc2lnbmF0dXJlLgorIiIiCisK
KworZGVmIG5vX3dlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHBh
c3MKKworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZSgKKyAgICAgICAgICAgICdzdWIvd3JvbmdfaGFuZHNoYWtlX3Np
Z193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAocmVxdWVzdC53
c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5z
ZmVyX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3Ry
YW5zZmVyX3NpZ193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBlMmU1NTA3OTRiN2I5OTBlMGI0NGIzM2Nm
YzJkNGQxNTJlNmMwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENv
cHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCisiIiJXcm9uZyB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKSBzaWdu
YXR1cmUuCisiIiIKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCk6CisgICAgcGFzcworCisKK2RlZiBub193ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6CisgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAorICAgICAgICAgICAgJ3N1Yi93cm9u
Z190cmFuc2Zlcl9zaWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCisgICAgICAgICAg
ICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTY0YzdjMjgyNTdmZGUzZmIwYmQ5NDE3NjhmODk4OGRjMWUyNDVhZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
YWJvcnRfYnlfdXNlcl93c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtf
d3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDJhOGU1ZTBmNjBkNDI1MTUy
NTg4ZjM5YjA1MTRlMjU1NjBlMjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWZmYWY4ZmI1ZmM0ZWJlNWFmNTBm
MWIwYTQ3M2EzM2Y4NWIyMDliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMzcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRfd2l0
aF9leHRlcm5hbF9zZXJ2ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbW9jay5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhf
Y2xpZW50X2Zvcl90ZXN0aW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
c2V0X3N5c19wYXRoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF9lbmR0b2VuZC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9oYW5kc2hha2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRw
X2hlYWRlcl91dGlsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9tb2NrLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X211eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVm
ODhhMGNmNjBhZWYzMTU4Mzk1M2EyNzExNWE3ZmU2YmI3NmJmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9DT05U
UklCVVRJTkcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy9ib290c3Ry
YXAtdGhlbWUubWluLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL2Nzcy9ib290c3RyYXAtdGhlbWUubWluLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MTM1OGIxM2QwNDU2OTRhNjk2M2M1MzM0ZWFiMjgzMWU1Mzk3OGFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzCkBAIC0wLDAgKzEsNSBAQAorLyohCisg
KiBCb290c3RyYXAgdjMuMy41IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSkKKyAqIENvcHlyaWdo
dCAyMDExLTIwMTUgVHdpdHRlciwgSW5jLgorICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczov
L2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSkKKyAqLy5idG4t
ZGFuZ2VyLC5idG4tZGVmYXVsdCwuYnRuLWluZm8sLmJ0bi1wcmltYXJ5LC5idG4tc3VjY2Vzcywu
YnRuLXdhcm5pbmd7dGV4dC1zaGFkb3c6MCAtMXB4IDAgcmdiYSgwLDAsMCwuMik7LXdlYmtpdC1i
b3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMTUpLDAgMXB4IDFweCBy
Z2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1
LC4xNSksMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSl9LmJ0bi1kYW5nZXIuYWN0aXZlLC5idG4t
ZGFuZ2VyOmFjdGl2ZSwuYnRuLWRlZmF1bHQuYWN0aXZlLC5idG4tZGVmYXVsdDphY3RpdmUsLmJ0
bi1pbmZvLmFjdGl2ZSwuYnRuLWluZm86YWN0aXZlLC5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1w
cmltYXJ5OmFjdGl2ZSwuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5idG4tc3VjY2VzczphY3RpdmUsLmJ0
bi13YXJuaW5nLmFjdGl2ZSwuYnRuLXdhcm5pbmc6YWN0aXZley13ZWJraXQtYm94LXNoYWRvdzpp
bnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KTtib3gtc2hhZG93Omluc2V0IDAgM3B4IDVw
eCByZ2JhKDAsMCwwLC4xMjUpfS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyW2Rpc2Fi
bGVkXSwuYnRuLWRlZmF1bHQuZGlzYWJsZWQsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXSwuYnRuLWlu
Zm8uZGlzYWJsZWQsLmJ0bi1pbmZvW2Rpc2FibGVkXSwuYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0
bi1wcmltYXJ5W2Rpc2FibGVkXSwuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi1zdWNjZXNzW2Rp
c2FibGVkXSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nW2Rpc2FibGVkXSxmaWVs
ZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVs
dCxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXBy
aW1hcnksZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2VzcyxmaWVsZHNldFtkaXNhYmxlZF0g
LmJ0bi13YXJuaW5ney13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uYnRu
LWRhbmdlciAuYmFkZ2UsLmJ0bi1kZWZhdWx0IC5iYWRnZSwuYnRuLWluZm8gLmJhZGdlLC5idG4t
cHJpbWFyeSAuYmFkZ2UsLmJ0bi1zdWNjZXNzIC5iYWRnZSwuYnRuLXdhcm5pbmcgLmJhZGdle3Rl
eHQtc2hhZG93Om5vbmV9LmJ0bi5hY3RpdmUsLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1pbWFnZTpu
b25lfS5idG4tZGVmYXVsdHt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7YmFja2dyb3VuZC1pbWFn
ZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiAwLCNlMGUwZTAgMTAwJSk7YmFja2dy
b3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZTBlMGUwIDEwMCUpO2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0
b20sZnJvbSgjZmZmKSx0bygjZTBlMGUwKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGll
bnQodG8gYm90dG9tLCNmZmYgMCwjZTBlMGUwIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRy
YW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZmZmJywgZW5k
Q29sb3JzdHI9JyNmZmUwZTBlMCcsIEdyYWRpZW50VHlwZT0wKTtmaWx0ZXI6cHJvZ2lkOkRYSW1h
Z2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO2JhY2tncm91bmQt
cmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1jb2xvcjojY2NjfS5i
dG4tZGVmYXVsdDpmb2N1cywuYnRuLWRlZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTBl
MGUwO2JhY2tncm91bmQtcG9zaXRpb246MCAtMTVweH0uYnRuLWRlZmF1bHQuYWN0aXZlLC5idG4t
ZGVmYXVsdDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlci1jb2xvcjojZGJk
YmRifS5idG4tZGVmYXVsdC5kaXNhYmxlZCwuYnRuLWRlZmF1bHQuZGlzYWJsZWQuYWN0aXZlLC5i
dG4tZGVmYXVsdC5kaXNhYmxlZC5mb2N1cywuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6YWN0aXZlLC5i
dG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cywuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIsLmJ0
bi1kZWZhdWx0W2Rpc2FibGVkXSwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmFjdGl2ZSwuYnRuLWRl
ZmF1bHRbZGlzYWJsZWRdLmZvY3VzLC5idG4tZGVmYXVsdFtkaXNhYmxlZF06YWN0aXZlLC5idG4t
ZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3ZlcixmaWVs
ZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1
bHQuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuZm9jdXMsZmllbGRzZXRb
ZGlzYWJsZWRdIC5idG4tZGVmYXVsdDphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVm
YXVsdDpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmhvdmVye2JhY2tncm91
bmQtY29sb3I6I2UwZTBlMDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1wcmltYXJ5e2JhY2tn
cm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCMzMzdhYjcgMCwjMjY1YTg4
IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3IDAs
IzI2NWE4OCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxl
ZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oIzMzN2FiNyksdG8oIzI2NWE4OCkpO2JhY2tncm91bmQt
aW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjMzM3YWI3IDAsIzI2NWE4OCAxMDAlKTtm
aWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29s
b3JzdHI9JyNmZjMzN2FiNycsIGVuZENvbG9yc3RyPScjZmYyNjVhODgnLCBHcmFkaWVudFR5cGU9
MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFi
bGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6IzI0NTU4
MH0uYnRuLXByaW1hcnk6Zm9jdXMsLmJ0bi1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6
IzI2NWE4ODtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE1cHh9LmJ0bi1wcmltYXJ5LmFjdGl2ZSwu
YnRuLXByaW1hcnk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzI2NWE4ODtib3JkZXItY29sb3I6
IzI0NTU4MH0uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmFjdGl2
ZSwuYnRuLXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFjdGl2
ZSwuYnRuLXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVy
LC5idG4tcHJpbWFyeVtkaXNhYmxlZF0sLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5hY3RpdmUsLmJ0
bi1wcmltYXJ5W2Rpc2FibGVkXS5mb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmFjdGl2ZSwu
YnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLC5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIs
ZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1w
cmltYXJ5LmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzLGZpZWxk
c2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRu
LXByaW1hcnk6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3ZlcntiYWNr
Z3JvdW5kLWNvbG9yOiMyNjVhODg7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tc3VjY2Vzc3ti
YWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNWNiODVjIDAsIzQx
OTY0MSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzVjYjg1
YyAwLCM0MTk2NDEgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVh
cixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCM1Y2I4NWMpLHRvKCM0MTk2NDEpKTtiYWNrZ3Jv
dW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzVjYjg1YyAwLCM0MTk2NDEgMTAw
JSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFy
dENvbG9yc3RyPScjZmY1Y2I4NWMnLCBlbmRDb2xvcnN0cj0nI2ZmNDE5NjQxJywgR3JhZGllbnRU
eXBlPTApO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
ZW5hYmxlZD1mYWxzZSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLWNvbG9yOiMz
ZThmM2V9LmJ0bi1zdWNjZXNzOmZvY3VzLC5idG4tc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5kLWNv
bG9yOiM0MTk2NDE7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNXB4fS5idG4tc3VjY2Vzcy5hY3Rp
dmUsLmJ0bi1zdWNjZXNzOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0MTk2NDE7Ym9yZGVyLWNv
bG9yOiMzZThmM2V9LmJ0bi1zdWNjZXNzLmRpc2FibGVkLC5idG4tc3VjY2Vzcy5kaXNhYmxlZC5h
Y3RpdmUsLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxlZDph
Y3RpdmUsLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpo
b3ZlciwuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF0uYWN0aXZl
LC5idG4tc3VjY2Vzc1tkaXNhYmxlZF0uZm9jdXMsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTphY3Rp
dmUsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmhv
dmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MsZmllbGRzZXRbZGlzYWJsZWRdIC5i
dG4tc3VjY2Vzcy5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5mb2N1cyxm
aWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0g
LmJ0bi1zdWNjZXNzOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6aG92ZXJ7
YmFja2dyb3VuZC1jb2xvcjojNDE5NjQxO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWluZm97
YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzViYzBkZSAwLCMy
YWFiZDIgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM1YmMw
ZGUgMCwjMmFhYmQyIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWJjMGRlKSx0bygjMmFhYmQyKSk7YmFja2dy
b3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1YmMwZGUgMCwjMmFhYmQyIDEw
MCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3Rh
cnRDb2xvcnN0cj0nI2ZmNWJjMGRlJywgZW5kQ29sb3JzdHI9JyNmZjJhYWJkMicsIEdyYWRpZW50
VHlwZT0wKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50
KGVuYWJsZWQ9ZmFsc2UpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjoj
MjhhNGM5fS5idG4taW5mbzpmb2N1cywuYnRuLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj
MmFhYmQyO2JhY2tncm91bmQtcG9zaXRpb246MCAtMTVweH0uYnRuLWluZm8uYWN0aXZlLC5idG4t
aW5mbzphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmFhYmQyO2JvcmRlci1jb2xvcjojMjhhNGM5
fS5idG4taW5mby5kaXNhYmxlZCwuYnRuLWluZm8uZGlzYWJsZWQuYWN0aXZlLC5idG4taW5mby5k
aXNhYmxlZC5mb2N1cywuYnRuLWluZm8uZGlzYWJsZWQ6YWN0aXZlLC5idG4taW5mby5kaXNhYmxl
ZDpmb2N1cywuYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsLmJ0bi1pbmZvW2Rpc2FibGVkXSwuYnRu
LWluZm9bZGlzYWJsZWRdLmFjdGl2ZSwuYnRuLWluZm9bZGlzYWJsZWRdLmZvY3VzLC5idG4taW5m
b1tkaXNhYmxlZF06YWN0aXZlLC5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsLmJ0bi1pbmZvW2Rp
c2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLGZpZWxkc2V0W2Rpc2Fi
bGVkXSAuYnRuLWluZm8uYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm8uZm9jdXMs
ZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5i
dG4taW5mbzpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmhvdmVye2JhY2tncm91
bmQtY29sb3I6IzJhYWJkMjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi13YXJuaW5ne2JhY2tn
cm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmMGFkNGUgMCwjZWI5MzE2
IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjBhZDRlIDAs
I2ViOTMxNiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxl
ZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2YwYWQ0ZSksdG8oI2ViOTMxNikpO2JhY2tncm91bmQt
aW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZjBhZDRlIDAsI2ViOTMxNiAxMDAlKTtm
aWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29s
b3JzdHI9JyNmZmYwYWQ0ZScsIGVuZENvbG9yc3RyPScjZmZlYjkzMTYnLCBHcmFkaWVudFR5cGU9
MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFi
bGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6I2UzOGQx
M30uYnRuLXdhcm5pbmc6Zm9jdXMsLmJ0bi13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6
I2ViOTMxNjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE1cHh9LmJ0bi13YXJuaW5nLmFjdGl2ZSwu
YnRuLXdhcm5pbmc6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ViOTMxNjtib3JkZXItY29sb3I6
I2UzOGQxM30uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nLmRpc2FibGVkLmFjdGl2
ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFjdGl2
ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVy
LC5idG4td2FybmluZ1tkaXNhYmxlZF0sLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5hY3RpdmUsLmJ0
bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmFjdGl2ZSwu
YnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLC5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIs
ZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13
YXJuaW5nLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzLGZpZWxk
c2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRu
LXdhcm5pbmc6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3ZlcntiYWNr
Z3JvdW5kLWNvbG9yOiNlYjkzMTY7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tZGFuZ2Vye2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkOTUzNGYgMCwjYzEy
ZTJhIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZDk1MzRm
IDAsI2MxMmUyYSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFy
LGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2Q5NTM0ZiksdG8oI2MxMmUyYSkpO2JhY2tncm91
bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZDk1MzRmIDAsI2MxMmUyYSAxMDAl
KTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0
Q29sb3JzdHI9JyNmZmQ5NTM0ZicsIGVuZENvbG9yc3RyPScjZmZjMTJlMmEnLCBHcmFkaWVudFR5
cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChl
bmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6I2I5
MmMyOH0uYnRuLWRhbmdlcjpmb2N1cywuYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9y
OiNjMTJlMmE7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNXB4fS5idG4tZGFuZ2VyLmFjdGl2ZSwu
YnRuLWRhbmdlcjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYzEyZTJhO2JvcmRlci1jb2xvcjoj
YjkyYzI4fS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyLmRpc2FibGVkLmFjdGl2ZSwu
YnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cywuYnRuLWRhbmdlci5kaXNhYmxlZDphY3RpdmUsLmJ0
bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1k
YW5nZXJbZGlzYWJsZWRdLC5idG4tZGFuZ2VyW2Rpc2FibGVkXS5hY3RpdmUsLmJ0bi1kYW5nZXJb
ZGlzYWJsZWRdLmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTphY3RpdmUsLmJ0bi1kYW5nZXJb
ZGlzYWJsZWRdOmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNh
YmxlZF0gLmJ0bi1kYW5nZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLmFjdGl2ZSxm
aWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5i
dG4tZGFuZ2VyOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMsZmll
bGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2MxMmUy
YTtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmltZy10aHVtYm5haWwsLnRodW1ibmFpbHstd2Via2l0
LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzowIDFweCAy
cHggcmdiYSgwLDAsMCwuMDc1KX0uZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5kcm9wZG93bi1t
ZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtaW1hZ2U6
LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUgMCwjZThlOGU4IDEwMCUpO2JhY2tn
cm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjVmNWY1IDAsI2U4ZThlOCAxMDAl
KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQg
Ym90dG9tLGZyb20oI2Y1ZjVmNSksdG8oI2U4ZThlOCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFy
LWdyYWRpZW50KHRvIGJvdHRvbSwjZjVmNWY1IDAsI2U4ZThlOCAxMDAlKTtmaWx0ZXI6cHJvZ2lk
OkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmY1
ZjVmNScsIGVuZENvbG9yc3RyPScjZmZlOGU4ZTgnLCBHcmFkaWVudFR5cGU9MCk7YmFja2dyb3Vu
ZC1yZXBlYXQ6cmVwZWF0LXh9LmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hLC5kcm9wZG93bi1tZW51
Pi5hY3RpdmU+YTpmb2N1cywuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7YmFja2dyb3Vu
ZC1jb2xvcjojMmU2ZGE0O2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQo
dG9wLCMzMzdhYjcgMCwjMmU2ZGE0IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdy
YWRpZW50KHRvcCwjMzM3YWI3IDAsIzJlNmRhNCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJr
aXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oIzMzN2FiNyksdG8o
IzJlNmRhNCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjMzM3
YWI3IDAsIzJlNmRhNCAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9z
b2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzN2FiNycsIGVuZENvbG9yc3RyPScjZmYy
ZTZkYTQnLCBHcmFkaWVudFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm5hdmJh
ci1kZWZhdWx0e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNm
ZmYgMCwjZjhmOGY4IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRv
cCwjZmZmIDAsI2Y4ZjhmOCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQo
bGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2ZmZiksdG8oI2Y4ZjhmOCkpO2JhY2tn
cm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmIDAsI2Y4ZjhmOCAxMDAl
KTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0
Q29sb3JzdHI9JyNmZmZmZmZmZicsIGVuZENvbG9yc3RyPScjZmZmOGY4ZjgnLCBHcmFkaWVudFR5
cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChl
bmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItcmFkaXVzOjRw
eDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xNSks
MCAxcHggNXB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEo
MjU1LDI1NSwyNTUsLjE1KSwwIDFweCA1cHggcmdiYSgwLDAsMCwuMDc1KX0ubmF2YmFyLWRlZmF1
bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4ub3Bl
bj5he2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkYmRiZGIg
MCwjZTJlMmUyIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwj
ZGJkYmRiIDAsI2UyZTJlMiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQo
bGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2RiZGJkYiksdG8oI2UyZTJlMikpO2Jh
Y2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZGJkYmRiIDAsI2UyZTJl
MiAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50
KHN0YXJ0Q29sb3JzdHI9JyNmZmRiZGJkYicsIGVuZENvbG9yc3RyPScjZmZlMmUyZTInLCBHcmFk
aWVudFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7LXdlYmtpdC1ib3gtc2hhZG93
Omluc2V0IDAgM3B4IDlweCByZ2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAzcHgg
OXB4IHJnYmEoMCwwLDAsLjA3NSl9Lm5hdmJhci1icmFuZCwubmF2YmFyLW5hdj5saT5he3RleHQt
c2hhZG93OjAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMjUpfS5uYXZiYXItaW52ZXJzZXtiYWNr
Z3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjM2MzYzNjIDAsIzIyMiAx
MDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzNjM2MzYyAwLCMy
MjIgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRv
cCxsZWZ0IGJvdHRvbSxmcm9tKCMzYzNjM2MpLHRvKCMyMjIpKTtiYWNrZ3JvdW5kLWltYWdlOmxp
bmVhci1ncmFkaWVudCh0byBib3R0b20sIzNjM2MzYyAwLCMyMjIgMTAwJSk7ZmlsdGVyOnByb2dp
ZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYz
YzNjM2MnLCBlbmRDb2xvcnN0cj0nI2ZmMjIyMjIyJywgR3JhZGllbnRUeXBlPTApO2ZpbHRlcjpw
cm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSk7
YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLXJhZGl1czo0cHh9Lm5hdmJhci1pbnZl
cnNlIC5uYXZiYXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+Lm9w
ZW4+YXtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMDgwODA4
IDAsIzBmMGYwZiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3As
IzA4MDgwOCAwLCMwZjBmMGYgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50
KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMwODA4MDgpLHRvKCMwZjBmMGYpKTti
YWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzA4MDgwOCAwLCMwZjBm
MGYgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChzdGFydENvbG9yc3RyPScjZmYwODA4MDgnLCBlbmRDb2xvcnN0cj0nI2ZmMGYwZjBmJywgR3Jh
ZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14Oy13ZWJraXQtYm94LXNoYWRv
dzppbnNldCAwIDNweCA5cHggcmdiYSgwLDAsMCwuMjUpO2JveC1zaGFkb3c6aW5zZXQgMCAzcHgg
OXB4IHJnYmEoMCwwLDAsLjI1KX0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZCwubmF2YmFy
LWludmVyc2UgLm5hdmJhci1uYXY+bGk+YXt0ZXh0LXNoYWRvdzowIC0xcHggMCByZ2JhKDAsMCww
LC4yNSl9Lm5hdmJhci1maXhlZC1ib3R0b20sLm5hdmJhci1maXhlZC10b3AsLm5hdmJhci1zdGF0
aWMtdG9we2JvcmRlci1yYWRpdXM6MH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhciAu
bmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmEsLm5hdmJhciAubmF2YmFy
LW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6Zm9jdXMsLm5hdmJhciAubmF2YmFy
LW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNr
Z3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3IDAsIzJlNmRh
NCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAw
LCMyZTZkYTQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixs
ZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMzMzdhYjcpLHRvKCMyZTZkYTQpKTtiYWNrZ3JvdW5k
LWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzMzN2FiNyAwLCMyZTZkYTQgMTAwJSk7
ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENv
bG9yc3RyPScjZmYzMzdhYjcnLCBlbmRDb2xvcnN0cj0nI2ZmMmU2ZGE0JywgR3JhZGllbnRUeXBl
PTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fX0uYWxlcnR7dGV4dC1zaGFkb3c6MCAxcHgg
MCByZ2JhKDI1NSwyNTUsMjU1LC4yKTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCBy
Z2JhKDI1NSwyNTUsMjU1LC4yNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93
Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMjUpLDAgMXB4IDJweCByZ2JhKDAsMCww
LC4wNSl9LmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFk
aWVudCh0b3AsI2RmZjBkOCAwLCNjOGU1YmMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5l
YXItZ3JhZGllbnQodG9wLCNkZmYwZDggMCwjYzhlNWJjIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6
LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZGZmMGQ4
KSx0bygjYzhlNWJjKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9t
LCNkZmYwZDggMCwjYzhlNWJjIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5N
aWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZGZmMGQ4JywgZW5kQ29sb3JzdHI9
JyNmZmM4ZTViYycsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDti
b3JkZXItY29sb3I6I2IyZGJhMX0uYWxlcnQtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQt
bGluZWFyLWdyYWRpZW50KHRvcCwjZDllZGY3IDAsI2I5ZGVmMCAxMDAlKTtiYWNrZ3JvdW5kLWlt
YWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5ZWRmNyAwLCNiOWRlZjAgMTAwJSk7YmFja2dy
b3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxm
cm9tKCNkOWVkZjcpLHRvKCNiOWRlZjApKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVu
dCh0byBib3R0b20sI2Q5ZWRmNyAwLCNiOWRlZjAgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdl
VHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZkOWVkZjcnLCBl
bmRDb2xvcnN0cj0nI2ZmYjlkZWYwJywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0
OnJlcGVhdC14O2JvcmRlci1jb2xvcjojOWFjZmVhfS5hbGVydC13YXJuaW5ne2JhY2tncm91bmQt
aW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmY2Y4ZTMgMCwjZjhlZmMwIDEwMCUp
O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZmNmOGUzIDAsI2Y4ZWZj
MCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9w
LGxlZnQgYm90dG9tLGZyb20oI2ZjZjhlMyksdG8oI2Y4ZWZjMCkpO2JhY2tncm91bmQtaW1hZ2U6
bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmNmOGUzIDAsI2Y4ZWZjMCAxMDAlKTtmaWx0ZXI6
cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9
JyNmZmZjZjhlMycsIGVuZENvbG9yc3RyPScjZmZmOGVmYzAnLCBHcmFkaWVudFR5cGU9MCk7YmFj
a2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLWNvbG9yOiNmNWU3OWV9LmFsZXJ0LWRhbmdl
cntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjJkZWRlIDAs
I2U3YzNjMyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Yy
ZGVkZSAwLCNlN2MzYzMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxp
bmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNmMmRlZGUpLHRvKCNlN2MzYzMpKTtiYWNr
Z3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2YyZGVkZSAwLCNlN2MzYzMg
MTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChz
dGFydENvbG9yc3RyPScjZmZmMmRlZGUnLCBlbmRDb2xvcnN0cj0nI2ZmZTdjM2MzJywgR3JhZGll
bnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojZGNhN2E3
fS5wcm9ncmVzc3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwj
ZWJlYmViIDAsI2Y1ZjVmNSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVu
dCh0b3AsI2ViZWJlYiAwLCNmNWY1ZjUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdy
YWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNlYmViZWIpLHRvKCNmNWY1
ZjUpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ViZWJlYiAw
LCNmNWY1ZjUgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5n
cmFkaWVudChzdGFydENvbG9yc3RyPScjZmZlYmViZWInLCBlbmRDb2xvcnN0cj0nI2ZmZjVmNWY1
JywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wcm9ncmVzcy1i
YXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAw
LCMyODYwOTAgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCMz
MzdhYjcgMCwjMjg2MDkwIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjMzM3YWI3KSx0bygjMjg2MDkwKSk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMzMzdhYjcgMCwjMjg2MDkw
IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
c3RhcnRDb2xvcnN0cj0nI2ZmMzM3YWI3JywgZW5kQ29sb3JzdHI9JyNmZjI4NjA5MCcsIEdyYWRp
ZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLXN1Y2Nl
c3N7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzVjYjg1YyAw
LCM0NDlkNDQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM1
Y2I4NWMgMCwjNDQ5ZDQ0IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWNiODVjKSx0bygjNDQ5ZDQ0KSk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1Y2I4NWMgMCwjNDQ5ZDQ0
IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
c3RhcnRDb2xvcnN0cj0nI2ZmNWNiODVjJywgZW5kQ29sb3JzdHI9JyNmZjQ0OWQ0NCcsIEdyYWRp
ZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLWluZm97
YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzViYzBkZSAwLCMz
MWIwZDUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM1YmMw
ZGUgMCwjMzFiMGQ1IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWJjMGRlKSx0bygjMzFiMGQ1KSk7YmFja2dy
b3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1YmMwZGUgMCwjMzFiMGQ1IDEw
MCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3Rh
cnRDb2xvcnN0cj0nI2ZmNWJjMGRlJywgZW5kQ29sb3JzdHI9JyNmZjMxYjBkNScsIEdyYWRpZW50
VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLXdhcm5pbmd7
YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2YwYWQ0ZSAwLCNl
Yzk3MWYgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmMGFk
NGUgMCwjZWM5NzFmIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjBhZDRlKSx0bygjZWM5NzFmKSk7YmFja2dy
b3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmMGFkNGUgMCwjZWM5NzFmIDEw
MCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3Rh
cnRDb2xvcnN0cj0nI2ZmZjBhZDRlJywgZW5kQ29sb3JzdHI9JyNmZmVjOTcxZicsIEdyYWRpZW50
VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLWRhbmdlcnti
YWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZDk1MzRmIDAsI2M5
MzAyYyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5NTM0
ZiAwLCNjOTMwMmMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVh
cixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNkOTUzNGYpLHRvKCNjOTMwMmMpKTtiYWNrZ3Jv
dW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Q5NTM0ZiAwLCNjOTMwMmMgMTAw
JSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFy
dENvbG9yc3RyPScjZmZkOTUzNGYnLCBlbmRDb2xvcnN0cj0nI2ZmYzkzMDJjJywgR3JhZGllbnRU
eXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wcm9ncmVzcy1iYXItc3RyaXBlZHti
YWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1
NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwy
NTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUl
LHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZyxy
Z2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUs
cmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5z
cGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQo
NDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJl
bnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1
JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5saXN0LWdyb3Vwe2JvcmRlci1yYWRpdXM6
NHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMDc1KTtib3gtc2hh
ZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNzUpfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlLC5s
aXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVy
e3RleHQtc2hhZG93OjAgLTFweCAwICMyODYwOTA7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxp
bmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAwLCMyYjY2OWEgMTAwJSk7YmFja2dyb3VuZC1pbWFn
ZTotby1saW5lYXItZ3JhZGllbnQodG9wLCMzMzdhYjcgMCwjMmI2NjlhIDEwMCUpO2JhY2tncm91
bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJv
bSgjMzM3YWI3KSx0bygjMmI2NjlhKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQo
dG8gYm90dG9tLCMzMzdhYjcgMCwjMmI2NjlhIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRy
YW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzM3YWI3JywgZW5k
Q29sb3JzdHI9JyNmZjJiNjY5YScsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpy
ZXBlYXQteDtib3JkZXItY29sb3I6IzJiNjY5YX0ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAuYmFk
Z2UsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmJhZGdlLC5saXN0LWdyb3VwLWl0ZW0u
YWN0aXZlOmhvdmVyIC5iYWRnZXt0ZXh0LXNoYWRvdzpub25lfS5wYW5lbHstd2Via2l0LWJveC1z
aGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93OjAgMXB4IDJweCByZ2Jh
KDAsMCwwLC4wNSl9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1pbWFn
ZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSAwLCNlOGU4ZTggMTAwJSk7YmFj
a2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUgMCwjZThlOGU4IDEw
MCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVm
dCBib3R0b20sZnJvbSgjZjVmNWY1KSx0bygjZThlOGU4KSk7YmFja2dyb3VuZC1pbWFnZTpsaW5l
YXItZ3JhZGllbnQodG8gYm90dG9tLCNmNWY1ZjUgMCwjZThlOGU4IDEwMCUpO2ZpbHRlcjpwcm9n
aWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2Zm
ZjVmNWY1JywgZW5kQ29sb3JzdHI9JyNmZmU4ZThlOCcsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3Jv
dW5kLXJlcGVhdDpyZXBlYXQteH0ucGFuZWwtcHJpbWFyeT4ucGFuZWwtaGVhZGluZ3tiYWNrZ3Jv
dW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3IDAsIzJlNmRhNCAx
MDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAwLCMy
ZTZkYTQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0
IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMzMzdhYjcpLHRvKCMyZTZkYTQpKTtiYWNrZ3JvdW5kLWlt
YWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzMzN2FiNyAwLCMyZTZkYTQgMTAwJSk7Zmls
dGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9y
c3RyPScjZmYzMzdhYjcnLCBlbmRDb2xvcnN0cj0nI2ZmMmU2ZGE0JywgR3JhZGllbnRUeXBlPTAp
O2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFkaW5n
e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkZmYwZDggMCwj
ZDBlOWM2IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZGZm
MGQ4IDAsI2QwZTljNiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGlu
ZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2RmZjBkOCksdG8oI2QwZTljNikpO2JhY2tn
cm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZGZmMGQ4IDAsI2QwZTljNiAx
MDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0
YXJ0Q29sb3JzdHI9JyNmZmRmZjBkOCcsIGVuZENvbG9yc3RyPScjZmZkMGU5YzYnLCBHcmFkaWVu
dFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LnBhbmVsLWluZm8+LnBhbmVsLWhl
YWRpbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5ZWRm
NyAwLCNjNGUzZjMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCNkOWVkZjcgMCwjYzRlM2YzIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZDllZGY3KSx0bygjYzRlM2YzKSk7
YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNkOWVkZjcgMCwjYzRl
M2YzIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGll
bnQoc3RhcnRDb2xvcnN0cj0nI2ZmZDllZGY3JywgZW5kQ29sb3JzdHI9JyNmZmM0ZTNmMycsIEdy
YWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucGFuZWwtd2FybmluZz4u
cGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRv
cCwjZmNmOGUzIDAsI2ZhZjJjYyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFk
aWVudCh0b3AsI2ZjZjhlMyAwLCNmYWYyY2MgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0
LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNmY2Y4ZTMpLHRvKCNm
YWYyY2MpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ZjZjhl
MyAwLCNmYWYyY2MgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29m
dC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmY2Y4ZTMnLCBlbmRDb2xvcnN0cj0nI2ZmZmFm
MmNjJywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wYW5lbC1k
YW5nZXI+LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFk
aWVudCh0b3AsI2YyZGVkZSAwLCNlYmNjY2MgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5l
YXItZ3JhZGllbnQodG9wLCNmMmRlZGUgMCwjZWJjY2NjIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6
LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjJkZWRl
KSx0bygjZWJjY2NjKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9t
LCNmMmRlZGUgMCwjZWJjY2NjIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5N
aWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZjJkZWRlJywgZW5kQ29sb3JzdHI9
JyNmZmViY2NjYycsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0u
d2VsbHtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZThlOGU4
IDAsI2Y1ZjVmNSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3As
I2U4ZThlOCAwLCNmNWY1ZjUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50
KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNlOGU4ZTgpLHRvKCNmNWY1ZjUpKTti
YWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2U4ZThlOCAwLCNmNWY1
ZjUgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChzdGFydENvbG9yc3RyPScjZmZlOGU4ZTgnLCBlbmRDb2xvcnN0cj0nI2ZmZjVmNWY1JywgR3Jh
ZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojZGNk
Y2RjOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwuMDUpLDAg
MXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdi
YSgwLDAsMCwuMDUpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSl9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL2Jv
b3RzdHJhcC5taW4uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NWM2NmIxYmEyOTdlZWIzYjU5NzZiNzFjNjRj
NzM2YjQxYmI3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLm1pbi5jc3MKQEAg
LTAsMCArMSw1IEBACisvKiEKKyAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3Ry
YXAuY29tKQorICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuCisgKiBMaWNlbnNl
ZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rl
ci9MSUNFTlNFKQorICovLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBn
aXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7Zm9udC1mYW1pbHk6c2Fucy1z
ZXJpZjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbXMtdGV4dC1zaXplLWFkanVzdDox
MDAlfWJvZHl7bWFyZ2luOjB9YXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJl
LGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbWVudSxuYXYsc2VjdGlvbixzdW1tYXJ5e2Rpc3Bs
YXk6YmxvY2t9YXVkaW8sY2FudmFzLHByb2dyZXNzLHZpZGVve2Rpc3BsYXk6aW5saW5lLWJsb2Nr
O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfWF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5Om5v
bmU7aGVpZ2h0OjB9W2hpZGRlbl0sdGVtcGxhdGV7ZGlzcGxheTpub25lfWF7YmFja2dyb3VuZC1j
b2xvcjp0cmFuc3BhcmVudH1hOmFjdGl2ZSxhOmhvdmVye291dGxpbmU6MH1hYmJyW3RpdGxlXXti
b3JkZXItYm90dG9tOjFweCBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfWRmbntmb250
LXN0eWxlOml0YWxpY31oMXttYXJnaW46LjY3ZW0gMDtmb250LXNpemU6MmVtfW1hcmt7Y29sb3I6
IzAwMDtiYWNrZ3JvdW5kOiNmZjB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3Bvc2l0aW9u
OnJlbGF0aXZlO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDt2ZXJ0aWNhbC1hbGlnbjpiYXNl
bGluZX1zdXB7dG9wOi0uNWVtfXN1Yntib3R0b206LS4yNWVtfWltZ3tib3JkZXI6MH1zdmc6bm90
KDpyb290KXtvdmVyZmxvdzpoaWRkZW59ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocntoZWlnaHQ6
MDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQt
Ym94O2JveC1zaXppbmc6Y29udGVudC1ib3h9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQscHJl
LHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWJ1dHRv
bixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjA7Zm9udDppbmhlcml0O2Nv
bG9yOmluaGVyaXR9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRy
YW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBlPXJl
c2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6
cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZh
dWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntwYWRk
aW5nOjA7Ym9yZGVyOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9Y2hlY2ti
b3hdLGlucHV0W3R5cGU9cmFkaW9dey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3ot
Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9aW5w
dXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVt
YmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBlPXNl
YXJjaF17LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250
ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0Zmll
bGR9aW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLGlucHV0
W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFu
Y2U6bm9uZX1maWVsZHNldHtwYWRkaW5nOi4zNWVtIC42MjVlbSAuNzVlbTttYXJnaW46MCAycHg7
Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXJ9bGVnZW5ke3BhZGRpbmc6MDtib3JkZXI6MH10ZXh0YXJl
YXtvdmVyZmxvdzphdXRvfW9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OjcwMH10YWJsZXtib3JkZXItc3Bh
Y2luZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX10ZCx0aHtwYWRkaW5nOjB9LyohIFNvdXJj
ZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIv
c3JjL2Nzcy9tYWluLmNzcyAqL0BtZWRpYSBwcmludHsqLDphZnRlciw6YmVmb3Jle2NvbG9yOiMw
MDAhaW1wb3J0YW50O3RleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWlt
cG9ydGFudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25l
IWltcG9ydGFudH1hLGE6dmlzaXRlZHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWFbaHJlZl06
YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIoaHJlZikgIikifWFiYnJbdGl0bGVdOmFmdGVye2NvbnRl
bnQ6IiAoIiBhdHRyKHRpdGxlKSAiKSJ9YVtocmVmXj0iamF2YXNjcmlwdDoiXTphZnRlcixhW2hy
ZWZePSIjIl06YWZ0ZXJ7Y29udGVudDoiIn1ibG9ja3F1b3RlLHByZXtib3JkZXI6MXB4IHNvbGlk
ICM5OTk7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9dGhlYWR7ZGlzcGxheTp0YWJsZS1oZWFkZXIt
Z3JvdXB9aW1nLHRye3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfWltZ3ttYXgtd2lkdGg6MTAwJSFp
bXBvcnRhbnR9aDIsaDMscHtvcnBoYW5zOjM7d2lkb3dzOjN9aDIsaDN7cGFnZS1icmVhay1hZnRl
cjphdm9pZH0ubmF2YmFye2Rpc3BsYXk6bm9uZX0uYnRuPi5jYXJldCwuZHJvcHVwPi5idG4+LmNh
cmV0e2JvcmRlci10b3AtY29sb3I6IzAwMCFpbXBvcnRhbnR9LmxhYmVse2JvcmRlcjoxcHggc29s
aWQgIzAwMH0udGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIWltcG9ydGFudH0udGFibGUg
dGQsLnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9LnRhYmxlLWJvcmRl
cmVkIHRkLC50YWJsZS1ib3JkZXJlZCB0aHtib3JkZXI6MXB4IHNvbGlkICNkZGQhaW1wb3J0YW50
fX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7c3JjOnVybCgu
Li9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCk7c3JjOnVybCguLi9mb250
cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1iZWRk
ZWQtb3BlbnR5cGUnKSx1cmwoLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53
b2ZmMikgZm9ybWF0KCd3b2ZmMicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1y
ZWd1bGFyLndvZmYpIGZvcm1hdCgnd29mZicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZs
aW5ncy1yZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLHVybCguLi9mb250cy9nbHlwaGlj
b25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZyNnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIpIGZv
cm1hdCgnc3ZnJyl9LmdseXBoaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MXB4O2Rpc3BsYXk6
aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7Zm9udC1zdHls
ZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNtb290
aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmdseXBo
aWNvbi1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXDJhIn0uZ2x5cGhpY29uLXBsdXM6YmVmb3Jl
e2NvbnRlbnQ6IlwyYiJ9LmdseXBoaWNvbi1ldXI6YmVmb3JlLC5nbHlwaGljb24tZXVybzpiZWZv
cmV7Y29udGVudDoiXDIwYWMifS5nbHlwaGljb24tbWludXM6YmVmb3Jle2NvbnRlbnQ6IlwyMjEy
In0uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcMjYwMSJ9LmdseXBoaWNvbi1lbnZl
bG9wZTpiZWZvcmV7Y29udGVudDoiXDI3MDkifS5nbHlwaGljb24tcGVuY2lsOmJlZm9yZXtjb250
ZW50OiJcMjcwZiJ9LmdseXBoaWNvbi1nbGFzczpiZWZvcmV7Y29udGVudDoiXGUwMDEifS5nbHlw
aGljb24tbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDAyIn0uZ2x5cGhpY29uLXNlYXJjaDpiZWZv
cmV7Y29udGVudDoiXGUwMDMifS5nbHlwaGljb24taGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDA1
In0uZ2x5cGhpY29uLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDA2In0uZ2x5cGhpY29uLXN0YXIt
ZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMDA3In0uZ2x5cGhpY29uLXVzZXI6YmVmb3Jle2NvbnRl
bnQ6IlxlMDA4In0uZ2x5cGhpY29uLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZ2x5cGhp
Y29uLXRoLWxhcmdlOmJlZm9yZXtjb250ZW50OiJcZTAxMCJ9LmdseXBoaWNvbi10aDpiZWZvcmV7
Y29udGVudDoiXGUwMTEifS5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGUwMTIi
fS5nbHlwaGljb24tb2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDEzIn0uZ2x5cGhpY29uLXJlbW92ZTpi
ZWZvcmV7Y29udGVudDoiXGUwMTQifS5nbHlwaGljb24tem9vbS1pbjpiZWZvcmV7Y29udGVudDoi
XGUwMTUifS5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDE2In0uZ2x5cGhp
Y29uLW9mZjpiZWZvcmV7Y29udGVudDoiXGUwMTcifS5nbHlwaGljb24tc2lnbmFsOmJlZm9yZXtj
b250ZW50OiJcZTAxOCJ9LmdseXBoaWNvbi1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxlMDE5In0uZ2x5
cGhpY29uLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZTAyMCJ9LmdseXBoaWNvbi1ob21lOmJlZm9y
ZXtjb250ZW50OiJcZTAyMSJ9LmdseXBoaWNvbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTAyMiJ9
LmdseXBoaWNvbi10aW1lOmJlZm9yZXtjb250ZW50OiJcZTAyMyJ9LmdseXBoaWNvbi1yb2FkOmJl
Zm9yZXtjb250ZW50OiJcZTAyNCJ9LmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRl
bnQ6IlxlMDI1In0uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTAyNiJ9Lmds
eXBoaWNvbi11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI3In0uZ2x5cGhpY29uLWluYm94OmJl
Zm9yZXtjb250ZW50OiJcZTAyOCJ9LmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVu
dDoiXGUwMjkifS5nbHlwaGljb24tcmVwZWF0OmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmdseXBo
aWNvbi1yZWZyZXNoOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmdseXBoaWNvbi1saXN0LWFsdDpi
ZWZvcmV7Y29udGVudDoiXGUwMzIifS5nbHlwaGljb24tbG9jazpiZWZvcmV7Y29udGVudDoiXGUw
MzMifS5nbHlwaGljb24tZmxhZzpiZWZvcmV7Y29udGVudDoiXGUwMzQifS5nbHlwaGljb24taGVh
ZHBob25lczpiZWZvcmV7Y29udGVudDoiXGUwMzUifS5nbHlwaGljb24tdm9sdW1lLW9mZjpiZWZv
cmV7Y29udGVudDoiXGUwMzYifS5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6
IlxlMDM3In0uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGUwMzgifS5nbHlw
aGljb24tcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZTAzOSJ9LmdseXBoaWNvbi1iYXJjb2RlOmJl
Zm9yZXtjb250ZW50OiJcZTA0MCJ9LmdseXBoaWNvbi10YWc6YmVmb3Jle2NvbnRlbnQ6IlxlMDQx
In0uZ2x5cGhpY29uLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDQyIn0uZ2x5cGhpY29uLWJvb2s6
YmVmb3Jle2NvbnRlbnQ6IlxlMDQzIn0uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50
OiJcZTA0NCJ9LmdseXBoaWNvbi1wcmludDpiZWZvcmV7Y29udGVudDoiXGUwNDUifS5nbHlwaGlj
b24tY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZTA0NiJ9LmdseXBoaWNvbi1mb250OmJlZm9yZXtj
b250ZW50OiJcZTA0NyJ9LmdseXBoaWNvbi1ib2xkOmJlZm9yZXtjb250ZW50OiJcZTA0OCJ9Lmds
eXBoaWNvbi1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDQ5In0uZ2x5cGhpY29uLXRleHQtaGVp
Z2h0OmJlZm9yZXtjb250ZW50OiJcZTA1MCJ9LmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9yZXtj
b250ZW50OiJcZTA1MSJ9LmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTA1
MiJ9LmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZ2x5cGhp
Y29uLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1NCJ9LmdseXBoaWNvbi1hbGlnbi1q
dXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmdseXBoaWNvbi1saXN0OmJlZm9yZXtjb250
ZW50OiJcZTA1NiJ9LmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGUwNTci
fS5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1OCJ9LmdseXBoaWNv
bi1mYWNldGltZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGUwNTkifS5nbHlwaGljb24tcGljdHVy
ZTpiZWZvcmV7Y29udGVudDoiXGUwNjAifS5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmV7Y29u
dGVudDoiXGUwNjIifS5nbHlwaGljb24tYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZTA2MyJ9Lmds
eXBoaWNvbi10aW50OmJlZm9yZXtjb250ZW50OiJcZTA2NCJ9LmdseXBoaWNvbi1lZGl0OmJlZm9y
ZXtjb250ZW50OiJcZTA2NSJ9LmdseXBoaWNvbi1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGUwNjYi
fS5nbHlwaGljb24tY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDY3In0uZ2x5cGhpY29uLW1vdmU6
YmVmb3Jle2NvbnRlbnQ6IlxlMDY4In0uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2Nv
bnRlbnQ6IlxlMDY5In0uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDcwIn0uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3MSJ9LmdseXBoaWNv
bi1wbGF5OmJlZm9yZXtjb250ZW50OiJcZTA3MiJ9LmdseXBoaWNvbi1wYXVzZTpiZWZvcmV7Y29u
dGVudDoiXGUwNzMifS5nbHlwaGljb24tc3RvcDpiZWZvcmV7Y29udGVudDoiXGUwNzQifS5nbHlw
aGljb24tZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGUwNzUifS5nbHlwaGljb24tZmFzdC1mb3J3
YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3NiJ9LmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDc3In0uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZTA3OCJ9
LmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDc5In0uZ2x5cGhpY29u
LWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDgwIn0uZ2x5cGhpY29uLXBsdXMtc2ln
bjpiZWZvcmV7Y29udGVudDoiXGUwODEifS5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmV7Y29u
dGVudDoiXGUwODIifS5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDgz
In0uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg0In0uZ2x5cGhpY29uLXF1
ZXN0aW9uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg1In0uZ2x5cGhpY29uLWluZm8tc2lnbjpi
ZWZvcmV7Y29udGVudDoiXGUwODYifS5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmV7Y29udGVu
dDoiXGUwODcifS5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwODgi
fS5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA4OSJ9LmdseXBoaWNvbi1i
YW4tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA5MCJ9LmdseXBoaWNvbi1hcnJvdy1sZWZ0OmJl
Zm9yZXtjb250ZW50OiJcZTA5MSJ9LmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVu
dDoiXGUwOTIifS5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDkzIn0uZ2x5
cGhpY29uLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDk0In0uZ2x5cGhpY29uLXNoYXJl
LWFsdDpiZWZvcmV7Y29udGVudDoiXGUwOTUifS5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDk2In0uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmV7Y29udGVudDoi
XGUwOTcifS5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxMDEi
fS5nbHlwaGljb24tZ2lmdDpiZWZvcmV7Y29udGVudDoiXGUxMDIifS5nbHlwaGljb24tbGVhZjpi
ZWZvcmV7Y29udGVudDoiXGUxMDMifS5nbHlwaGljb24tZmlyZTpiZWZvcmV7Y29udGVudDoiXGUx
MDQifS5nbHlwaGljb24tZXllLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTA1In0uZ2x5cGhpY29u
LWV5ZS1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGUxMDYifS5nbHlwaGljb24td2FybmluZy1zaWdu
OmJlZm9yZXtjb250ZW50OiJcZTEwNyJ9LmdseXBoaWNvbi1wbGFuZTpiZWZvcmV7Y29udGVudDoi
XGUxMDgifS5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTA5In0uZ2x5cGhp
Y29uLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGUxMTAifS5nbHlwaGljb24tY29tbWVudDpiZWZv
cmV7Y29udGVudDoiXGUxMTEifS5nbHlwaGljb24tbWFnbmV0OmJlZm9yZXtjb250ZW50OiJcZTEx
MiJ9LmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZTExMyJ9LmdseXBoaWNv
bi1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMTE0In0uZ2x5cGhpY29uLXJldHdlZXQ6
YmVmb3Jle2NvbnRlbnQ6IlxlMTE1In0uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2Nv
bnRlbnQ6IlxlMTE2In0uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGUx
MTcifS5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTE4In0uZ2x5cGhp
Y29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUxMTkifS5nbHlwaGljb24tcmVz
aXplLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIwIn0uZ2x5cGhpY29uLWhkZDpiZWZv
cmV7Y29udGVudDoiXGUxMjEifS5nbHlwaGljb24tYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6Ilxl
MTIyIn0uZ2x5cGhpY29uLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIzIn0uZ2x5cGhpY29uLWNl
cnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZTEyNCJ9LmdseXBoaWNvbi10aHVtYnMtdXA6YmVm
b3Jle2NvbnRlbnQ6IlxlMTI1In0uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50
OiJcZTEyNiJ9LmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTEyNyJ9Lmds
eXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTI4In0uZ2x5cGhpY29uLWhhbmQt
dXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTI5In0uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmV7Y29u
dGVudDoiXGUxMzAifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50
OiJcZTEzMSJ9LmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGUx
MzIifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZTEzMyJ9Lmds
eXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGUxMzQifS5nbHlwaGlj
b24tZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTM1In0uZ2x5cGhpY29uLXdyZW5jaDpiZWZvcmV7
Y29udGVudDoiXGUxMzYifS5nbHlwaGljb24tdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxlMTM3In0u
Z2x5cGhpY29uLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGUxMzgifS5nbHlwaGljb24tYnJpZWZj
YXNlOmJlZm9yZXtjb250ZW50OiJcZTEzOSJ9LmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9yZXtj
b250ZW50OiJcZTE0MCJ9LmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTQx
In0uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGUxNDIifS5nbHlwaGljb24t
aGVhcnQtZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMTQzIn0uZ2x5cGhpY29uLWxpbms6YmVmb3Jl
e2NvbnRlbnQ6IlxlMTQ0In0uZ2x5cGhpY29uLXBob25lOmJlZm9yZXtjb250ZW50OiJcZTE0NSJ9
LmdseXBoaWNvbi1wdXNocGluOmJlZm9yZXtjb250ZW50OiJcZTE0NiJ9LmdseXBoaWNvbi11c2Q6
YmVmb3Jle2NvbnRlbnQ6IlxlMTQ4In0uZ2x5cGhpY29uLWdicDpiZWZvcmV7Y29udGVudDoiXGUx
NDkifS5nbHlwaGljb24tc29ydDpiZWZvcmV7Y29udGVudDoiXGUxNTAifS5nbHlwaGljb24tc29y
dC1ieS1hbHBoYWJldDpiZWZvcmV7Y29udGVudDoiXGUxNTEifS5nbHlwaGljb24tc29ydC1ieS1h
bHBoYWJldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTUyIn0uZ2x5cGhpY29uLXNvcnQtYnktb3Jk
ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTUzIn0uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJl
Zm9yZXtjb250ZW50OiJcZTE1NCJ9LmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVmb3Jl
e2NvbnRlbnQ6IlxlMTU1In0uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMTU2In0uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmV7Y29udGVudDoiXGUx
NTcifS5nbHlwaGljb24tZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZTE1OCJ9LmdseXBoaWNvbi1j
b2xsYXBzZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTE1OSJ9LmdseXBoaWNvbi1jb2xsYXBzZS11
cDpiZWZvcmV7Y29udGVudDoiXGUxNjAifS5nbHlwaGljb24tbG9nLWluOmJlZm9yZXtjb250ZW50
OiJcZTE2MSJ9LmdseXBoaWNvbi1mbGFzaDpiZWZvcmV7Y29udGVudDoiXGUxNjIifS5nbHlwaGlj
b24tbG9nLW91dDpiZWZvcmV7Y29udGVudDoiXGUxNjMifS5nbHlwaGljb24tbmV3LXdpbmRvdzpi
ZWZvcmV7Y29udGVudDoiXGUxNjQifS5nbHlwaGljb24tcmVjb3JkOmJlZm9yZXtjb250ZW50OiJc
ZTE2NSJ9LmdseXBoaWNvbi1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE2NiJ9LmdseXBoaWNvbi1v
cGVuOmJlZm9yZXtjb250ZW50OiJcZTE2NyJ9LmdseXBoaWNvbi1zYXZlZDpiZWZvcmV7Y29udGVu
dDoiXGUxNjgifS5nbHlwaGljb24taW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZTE2OSJ9LmdseXBo
aWNvbi1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTcwIn0uZ2x5cGhpY29uLXNlbmQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMTcxIn0uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZXtjb250ZW50OiJc
ZTE3MiJ9LmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTczIn0uZ2x5
cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTc0In0uZ2x5cGhpY29uLWZs
b3BweS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE3NSJ9LmdseXBoaWNvbi1mbG9wcHktb3Blbjpi
ZWZvcmV7Y29udGVudDoiXGUxNzYifS5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRl
bnQ6IlxlMTc3In0uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZXtjb250ZW50OiJcZTE3OCJ9Lmds
eXBoaWNvbi1jdXRsZXJ5OmJlZm9yZXtjb250ZW50OiJcZTE3OSJ9LmdseXBoaWNvbi1oZWFkZXI6
YmVmb3Jle2NvbnRlbnQ6IlxlMTgwIn0uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3Jle2NvbnRl
bnQ6IlxlMTgxIn0uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZXtjb250ZW50OiJcZTE4MiJ9Lmds
eXBoaWNvbi1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTgzIn0uZ2x5cGhpY29uLXRvd2Vy
OmJlZm9yZXtjb250ZW50OiJcZTE4NCJ9LmdseXBoaWNvbi1zdGF0czpiZWZvcmV7Y29udGVudDoi
XGUxODUifS5nbHlwaGljb24tc2QtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxlMTg2In0uZ2x5cGhp
Y29uLWhkLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZTE4NyJ9LmdseXBoaWNvbi1zdWJ0aXRsZXM6
YmVmb3Jle2NvbnRlbnQ6IlxlMTg4In0uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmV7Y29u
dGVudDoiXGUxODkifS5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3Jle2NvbnRlbnQ6IlxlMTkw
In0uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmV7Y29udGVudDoiXGUxOTEifS5nbHlwaGljb24t
c291bmQtNi0xOmJlZm9yZXtjb250ZW50OiJcZTE5MiJ9LmdseXBoaWNvbi1zb3VuZC03LTE6YmVm
b3Jle2NvbnRlbnQ6IlxlMTkzIn0uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZXtjb250
ZW50OiJcZTE5NCJ9LmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmV7Y29udGVudDoi
XGUxOTUifS5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTk3In0u
Z2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUxOTgifS5nbHlwaGljb24t
dHJlZS1jb25pZmVyOmJlZm9yZXtjb250ZW50OiJcZTE5OSJ9LmdseXBoaWNvbi10cmVlLWRlY2lk
dW91czpiZWZvcmV7Y29udGVudDoiXGUyMDAifS5nbHlwaGljb24tY2Q6YmVmb3Jle2NvbnRlbnQ6
IlxlMjAxIn0uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmV7Y29udGVudDoiXGUyMDIifS5nbHlw
aGljb24tb3Blbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTIwMyJ9LmdseXBoaWNvbi1sZXZlbC11
cDpiZWZvcmV7Y29udGVudDoiXGUyMDQifS5nbHlwaGljb24tY29weTpiZWZvcmV7Y29udGVudDoi
XGUyMDUifS5nbHlwaGljb24tcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjA2In0uZ2x5cGhpY29u
LWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZTIwOSJ9LmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVmb3Jl
e2NvbnRlbnQ6IlxlMjEwIn0uZ2x5cGhpY29uLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxlMjExIn0u
Z2x5cGhpY29uLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZTIxMiJ9LmdseXBoaWNvbi1wYXduOmJl
Zm9yZXtjb250ZW50OiJcZTIxMyJ9LmdseXBoaWNvbi1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6Ilxl
MjE0In0uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGUyMTUifS5nbHlwaGljb24t
YmFieS1mb3JtdWxhOmJlZm9yZXtjb250ZW50OiJcZTIxNiJ9LmdseXBoaWNvbi10ZW50OmJlZm9y
ZXtjb250ZW50OiJcMjZmYSJ9LmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZXtjb250ZW50OiJc
ZTIxOCJ9LmdseXBoaWNvbi1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjE5In0uZ2x5cGhpY29uLWFw
cGxlOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmdseXBoaWNvbi1lcmFzZTpiZWZvcmV7Y29udGVu
dDoiXGUyMjEifS5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcMjMxYiJ9Lmds
eXBoaWNvbi1sYW1wOmJlZm9yZXtjb250ZW50OiJcZTIyMyJ9LmdseXBoaWNvbi1kdXBsaWNhdGU6
YmVmb3Jle2NvbnRlbnQ6IlxlMjI0In0uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3Jle2NvbnRl
bnQ6IlxlMjI1In0uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZTIyNiJ9Lmds
eXBoaWNvbi1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZTIyNyJ9LmdseXBoaWNvbi1idGM6YmVm
b3Jle2NvbnRlbnQ6IlxlMjI3In0uZ2x5cGhpY29uLXhidDpiZWZvcmV7Y29udGVudDoiXGUyMjci
fS5nbHlwaGljb24teWVuOmJlZm9yZXtjb250ZW50OiJcMDBhNSJ9LmdseXBoaWNvbi1qcHk6YmVm
b3Jle2NvbnRlbnQ6IlwwMGE1In0uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZXtjb250ZW50OiJcMjBi
ZCJ9LmdseXBoaWNvbi1ydWI6YmVmb3Jle2NvbnRlbnQ6IlwyMGJkIn0uZ2x5cGhpY29uLXNjYWxl
OmJlZm9yZXtjb250ZW50OiJcZTIzMCJ9LmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3Jle2NvbnRl
bnQ6IlxlMjMxIn0uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3Jle2NvbnRlbnQ6Ilxl
MjMyIn0uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmV7Y29udGVudDoiXGUyMzMifS5nbHlwaGlj
b24tb3B0aW9uLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMjM0In0uZ2x5cGhpY29uLW9w
dGlvbi12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUyMzUifS5nbHlwaGljb24tbWVudS1oYW1i
dXJnZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMjM2In0uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZv
cmV7Y29udGVudDoiXGUyMzcifS5nbHlwaGljb24tb2lsOmJlZm9yZXtjb250ZW50OiJcZTIzOCJ9
LmdseXBoaWNvbi1ncmFpbjpiZWZvcmV7Y29udGVudDoiXGUyMzkifS5nbHlwaGljb24tc3VuZ2xh
c3NlczpiZWZvcmV7Y29udGVudDoiXGUyNDAifS5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9yZXtj
b250ZW50OiJcZTI0MSJ9LmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZTI0
MiJ9LmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQzIn0uZ2x5
cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ0In0uZ2x5cGhpY29u
LW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxlMjQ1In0uZ2x5cGhpY29uLW9i
amVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZTI0NiJ9LmdseXBoaWNvbi1v
YmplY3QtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGUyNDcifS5nbHlwaGljb24tb2JqZWN0
LWFsaWduLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZTI0OCJ9LmdseXBoaWNvbi1vYmplY3Qt
YWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ5In0uZ2x5cGhpY29uLXRyaWFuZ2xlLXJp
Z2h0OmJlZm9yZXtjb250ZW50OiJcZTI1MCJ9LmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJlZm9y
ZXtjb250ZW50OiJcZTI1MSJ9LmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3Jle2NvbnRl
bnQ6IlxlMjUyIn0uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmV7Y29udGVudDoiXGUyNTMi
fS5nbHlwaGljb24tY29uc29sZTpiZWZvcmV7Y29udGVudDoiXGUyNTQifS5nbHlwaGljb24tc3Vw
ZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjU1In0uZ2x5cGhpY29uLXN1YnNjcmlwdDpiZWZv
cmV7Y29udGVudDoiXGUyNTYifS5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZXtjb250ZW50OiJc
ZTI1NyJ9LmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI1OCJ9LmdseXBo
aWNvbi1tZW51LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMjU5In0uZ2x5cGhpY29uLW1lbnUtdXA6
YmVmb3Jle2NvbnRlbnQ6IlxlMjYwIn0qey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1t
b3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH06YWZ0ZXIsOmJl
Zm9yZXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVy
LWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9aHRtbHtmb250LXNpemU6MTBweDstd2Via2l0LXRh
cC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX1ib2R5e2ZvbnQtZmFtaWx5OiJIZWx2ZXRp
Y2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7bGluZS1o
ZWlnaHQ6MS40Mjg1NzE0Mztjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZn1idXR0b24s
aW5wdXQsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVy
aXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1he2NvbG9yOiMzMzdhYjc7dGV4dC1kZWNvcmF0aW9uOm5v
bmV9YTpmb2N1cyxhOmhvdmVye2NvbG9yOiMyMzUyN2M7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu
ZX1hOmZvY3Vze291dGxpbmU6dGhpbiBkb3R0ZWQ7b3V0bGluZTo1cHggYXV0byAtd2Via2l0LWZv
Y3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6LTJweH1maWd1cmV7bWFyZ2luOjB9aW1ne3Zl
cnRpY2FsLWFsaWduOm1pZGRsZX0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+YT5pbWcsLmNhcm91c2Vs
LWlubmVyPi5pdGVtPmltZywuaW1nLXJlc3BvbnNpdmUsLnRodW1ibmFpbCBhPmltZywudGh1bWJu
YWlsPmltZ3tkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5pbWctcm91
bmRlZHtib3JkZXItcmFkaXVzOjZweH0uaW1nLXRodW1ibmFpbHtkaXNwbGF5OmlubGluZS1ibG9j
azttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztwYWRkaW5nOjRweDtsaW5lLWhlaWdodDoxLjQy
ODU3MTQzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVy
LXJhZGl1czo0cHg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7LW8tdHJh
bnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91
dH0uaW1nLWNpcmNsZXtib3JkZXItcmFkaXVzOjUwJX1ocnttYXJnaW4tdG9wOjIwcHg7bWFyZ2lu
LWJvdHRvbToyMHB4O2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNlZWV9LnNyLW9ubHl7
cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO21hcmdpbjot
MXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7Ym9yZGVyOjB9LnNyLW9ubHkt
Zm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7cG9zaXRpb246c3RhdGlj
O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtjbGlwOmF1
dG99W3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixo
MSxoMixoMyxoNCxoNSxoNntmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMDtsaW5l
LWhlaWdodDoxLjE7Y29sb3I6aW5oZXJpdH0uaDEgLnNtYWxsLC5oMSBzbWFsbCwuaDIgLnNtYWxs
LC5oMiBzbWFsbCwuaDMgLnNtYWxsLC5oMyBzbWFsbCwuaDQgLnNtYWxsLC5oNCBzbWFsbCwuaDUg
LnNtYWxsLC5oNSBzbWFsbCwuaDYgLnNtYWxsLC5oNiBzbWFsbCxoMSAuc21hbGwsaDEgc21hbGws
aDIgLnNtYWxsLGgyIHNtYWxsLGgzIC5zbWFsbCxoMyBzbWFsbCxoNCAuc21hbGwsaDQgc21hbGws
aDUgLnNtYWxsLGg1IHNtYWxsLGg2IC5zbWFsbCxoNiBzbWFsbHtmb250LXdlaWdodDo0MDA7bGlu
ZS1oZWlnaHQ6MTtjb2xvcjojNzc3fS5oMSwuaDIsLmgzLGgxLGgyLGgze21hcmdpbi10b3A6MjBw
eDttYXJnaW4tYm90dG9tOjEwcHh9LmgxIC5zbWFsbCwuaDEgc21hbGwsLmgyIC5zbWFsbCwuaDIg
c21hbGwsLmgzIC5zbWFsbCwuaDMgc21hbGwsaDEgLnNtYWxsLGgxIHNtYWxsLGgyIC5zbWFsbCxo
MiBzbWFsbCxoMyAuc21hbGwsaDMgc21hbGx7Zm9udC1zaXplOjY1JX0uaDQsLmg1LC5oNixoNCxo
NSxoNnttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS5oNCAuc21hbGwsLmg0IHNt
YWxsLC5oNSAuc21hbGwsLmg1IHNtYWxsLC5oNiAuc21hbGwsLmg2IHNtYWxsLGg0IC5zbWFsbCxo
NCBzbWFsbCxoNSAuc21hbGwsaDUgc21hbGwsaDYgLnNtYWxsLGg2IHNtYWxse2ZvbnQtc2l6ZTo3
NSV9LmgxLGgxe2ZvbnQtc2l6ZTozNnB4fS5oMixoMntmb250LXNpemU6MzBweH0uaDMsaDN7Zm9u
dC1zaXplOjI0cHh9Lmg0LGg0e2ZvbnQtc2l6ZToxOHB4fS5oNSxoNXtmb250LXNpemU6MTRweH0u
aDYsaDZ7Zm9udC1zaXplOjEycHh9cHttYXJnaW46MCAwIDEwcHh9LmxlYWR7bWFyZ2luLWJvdHRv
bToyMHB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDoxLjR9QG1l
ZGlhIChtaW4td2lkdGg6NzY4cHgpey5sZWFke2ZvbnQtc2l6ZToyMXB4fX0uc21hbGwsc21hbGx7
Zm9udC1zaXplOjg1JX0ubWFyayxtYXJre3BhZGRpbmc6LjJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNm
Y2Y4ZTN9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtcmlnaHR7dGV4dC1hbGlnbjpy
aWdodH0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtanVzdGlmeXt0ZXh0LWFs
aWduOmp1c3RpZnl9LnRleHQtbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0udGV4dC1sb3dlcmNh
c2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS50ZXh0LXVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9y
bTp1cHBlcmNhc2V9LnRleHQtY2FwaXRhbGl6ZXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfS50
ZXh0LW11dGVke2NvbG9yOiM3Nzd9LnRleHQtcHJpbWFyeXtjb2xvcjojMzM3YWI3fWEudGV4dC1w
cmltYXJ5OmZvY3VzLGEudGV4dC1wcmltYXJ5OmhvdmVye2NvbG9yOiMyODYwOTB9LnRleHQtc3Vj
Y2Vzc3tjb2xvcjojM2M3NjNkfWEudGV4dC1zdWNjZXNzOmZvY3VzLGEudGV4dC1zdWNjZXNzOmhv
dmVye2NvbG9yOiMyYjU0MmN9LnRleHQtaW5mb3tjb2xvcjojMzE3MDhmfWEudGV4dC1pbmZvOmZv
Y3VzLGEudGV4dC1pbmZvOmhvdmVye2NvbG9yOiMyNDUyNjl9LnRleHQtd2FybmluZ3tjb2xvcjoj
OGE2ZDNifWEudGV4dC13YXJuaW5nOmZvY3VzLGEudGV4dC13YXJuaW5nOmhvdmVye2NvbG9yOiM2
NjUxMmN9LnRleHQtZGFuZ2Vye2NvbG9yOiNhOTQ0NDJ9YS50ZXh0LWRhbmdlcjpmb2N1cyxhLnRl
eHQtZGFuZ2VyOmhvdmVye2NvbG9yOiM4NDM1MzR9LmJnLXByaW1hcnl7Y29sb3I6I2ZmZjtiYWNr
Z3JvdW5kLWNvbG9yOiMzMzdhYjd9YS5iZy1wcmltYXJ5OmZvY3VzLGEuYmctcHJpbWFyeTpob3Zl
cntiYWNrZ3JvdW5kLWNvbG9yOiMyODYwOTB9LmJnLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjoj
ZGZmMGQ4fWEuYmctc3VjY2Vzczpmb2N1cyxhLmJnLXN1Y2Nlc3M6aG92ZXJ7YmFja2dyb3VuZC1j
b2xvcjojYzFlMmIzfS5iZy1pbmZve2JhY2tncm91bmQtY29sb3I6I2Q5ZWRmN31hLmJnLWluZm86
Zm9jdXMsYS5iZy1pbmZvOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2FmZDllZX0uYmctd2Fybmlu
Z3tiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTN9YS5iZy13YXJuaW5nOmZvY3VzLGEuYmctd2Fybmlu
Zzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmN2VjYjV9LmJnLWRhbmdlcntiYWNrZ3JvdW5kLWNv
bG9yOiNmMmRlZGV9YS5iZy1kYW5nZXI6Zm9jdXMsYS5iZy1kYW5nZXI6aG92ZXJ7YmFja2dyb3Vu
ZC1jb2xvcjojZTRiOWI5fS5wYWdlLWhlYWRlcntwYWRkaW5nLWJvdHRvbTo5cHg7bWFyZ2luOjQw
cHggMCAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWV9b2wsdWx7bWFyZ2luLXRvcDow
O21hcmdpbi1ib3R0b206MTBweH1vbCBvbCxvbCB1bCx1bCBvbCx1bCB1bHttYXJnaW4tYm90dG9t
OjB9Lmxpc3QtdW5zdHlsZWR7cGFkZGluZy1sZWZ0OjA7bGlzdC1zdHlsZTpub25lfS5saXN0LWlu
bGluZXtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tbGVmdDotNXB4O2xpc3Qtc3R5bGU6bm9uZX0ubGlz
dC1pbmxpbmU+bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7cGFkZGlu
Zy1sZWZ0OjVweH1kbHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToyMHB4fWRkLGR0e2xpbmUt
aGVpZ2h0OjEuNDI4NTcxNDN9ZHR7Zm9udC13ZWlnaHQ6NzAwfWRke21hcmdpbi1sZWZ0OjB9QG1l
ZGlhIChtaW4td2lkdGg6NzY4cHgpey5kbC1ob3Jpem9udGFsIGR0e2Zsb2F0OmxlZnQ7d2lkdGg6
MTYwcHg7b3ZlcmZsb3c6aGlkZGVuO2NsZWFyOmxlZnQ7dGV4dC1hbGlnbjpyaWdodDt0ZXh0LW92
ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZGwtaG9yaXpvbnRhbCBkZHttYXJn
aW4tbGVmdDoxODBweH19YWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSxhYmJyW3RpdGxlXXtjdXJz
b3I6aGVscDtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzc3N30uaW5pdGlhbGlzbXtmb250LXNp
emU6OTAlO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1ibG9ja3F1b3Rle3BhZGRpbmc6MTBweCAy
MHB4O21hcmdpbjowIDAgMjBweDtmb250LXNpemU6MTcuNXB4O2JvcmRlci1sZWZ0OjVweCBzb2xp
ZCAjZWVlfWJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCxibG9ja3F1b3RlIHA6bGFzdC1jaGlsZCxi
bG9ja3F1b3RlIHVsOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfWJsb2NrcXVvdGUgLnNtYWxs
LGJsb2NrcXVvdGUgZm9vdGVyLGJsb2NrcXVvdGUgc21hbGx7ZGlzcGxheTpibG9jaztmb250LXNp
emU6ODAlO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6Izc3N31ibG9ja3F1b3RlIC5zbWFs
bDpiZWZvcmUsYmxvY2txdW90ZSBmb290ZXI6YmVmb3JlLGJsb2NrcXVvdGUgc21hbGw6YmVmb3Jl
e2NvbnRlbnQ6J1wyMDE0IFwwMEEwJ30uYmxvY2txdW90ZS1yZXZlcnNlLGJsb2NrcXVvdGUucHVs
bC1yaWdodHtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjA7dGV4dC1hbGlnbjpyaWdo
dDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNlZWU7Ym9yZGVyLWxlZnQ6MH0uYmxvY2txdW90ZS1y
ZXZlcnNlIC5zbWFsbDpiZWZvcmUsLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3JlLC5i
bG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YmVmb3JlLGJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21h
bGw6YmVmb3JlLGJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YmVmb3JlLGJsb2NrcXVvdGUu
cHVsbC1yaWdodCBzbWFsbDpiZWZvcmV7Y29udGVudDonJ30uYmxvY2txdW90ZS1yZXZlcnNlIC5z
bWFsbDphZnRlciwuYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjphZnRlciwuYmxvY2txdW90ZS1y
ZXZlcnNlIHNtYWxsOmFmdGVyLGJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YWZ0ZXIsYmxv
Y2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjphZnRlcixibG9ja3F1b3RlLnB1bGwtcmlnaHQgc21h
bGw6YWZ0ZXJ7Y29udGVudDonXDAwQTAgXDIwMTQnfWFkZHJlc3N7bWFyZ2luLWJvdHRvbToyMHB4
O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDN9Y29kZSxrYmQscHJlLHNh
bXB7Zm9udC1mYW1pbHk6TWVubG8sTW9uYWNvLENvbnNvbGFzLCJDb3VyaWVyIE5ldyIsbW9ub3Nw
YWNlfWNvZGV7cGFkZGluZzoycHggNHB4O2ZvbnQtc2l6ZTo5MCU7Y29sb3I6I2M3MjU0ZTtiYWNr
Z3JvdW5kLWNvbG9yOiNmOWYyZjQ7Ym9yZGVyLXJhZGl1czo0cHh9a2Jke3BhZGRpbmc6MnB4IDRw
eDtmb250LXNpemU6OTAlO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JvcmRlci1y
YWRpdXM6M3B4Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4y
NSk7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSl9a2JkIGtiZHtwYWRk
aW5nOjA7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6NzAwOy13ZWJraXQtYm94LXNoYWRvdzpu
b25lO2JveC1zaGFkb3c6bm9uZX1wcmV7ZGlzcGxheTpibG9jaztwYWRkaW5nOjkuNXB4O21hcmdp
bjowIDAgMTBweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO2NvbG9yOiMz
MzM7d29yZC1icmVhazpicmVhay1hbGw7d29yZC13cmFwOmJyZWFrLXdvcmQ7YmFja2dyb3VuZC1j
b2xvcjojZjVmNWY1O2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjRweH1wcmUg
Y29kZXtwYWRkaW5nOjA7Zm9udC1zaXplOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFj
ZTpwcmUtd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MH0u
cHJlLXNjcm9sbGFibGV7bWF4LWhlaWdodDozNDBweDtvdmVyZmxvdy15OnNjcm9sbH0uY29udGFp
bmVye3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6YXV0
bzttYXJnaW4tbGVmdDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY29udGFpbmVye3dp
ZHRoOjc1MHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbnRhaW5lcnt3aWR0aDo5NzBw
eH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY29udGFpbmVye3dpZHRoOjExNzBweH19LmNv
bnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHg7bWFyZ2lu
LXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucm93e21hcmdpbi1yaWdodDotMTVweDttYXJn
aW4tbGVmdDotMTVweH0uY29sLWxnLTEsLmNvbC1sZy0xMCwuY29sLWxnLTExLC5jb2wtbGctMTIs
LmNvbC1sZy0yLC5jb2wtbGctMywuY29sLWxnLTQsLmNvbC1sZy01LC5jb2wtbGctNiwuY29sLWxn
LTcsLmNvbC1sZy04LC5jb2wtbGctOSwuY29sLW1kLTEsLmNvbC1tZC0xMCwuY29sLW1kLTExLC5j
b2wtbWQtMTIsLmNvbC1tZC0yLC5jb2wtbWQtMywuY29sLW1kLTQsLmNvbC1tZC01LC5jb2wtbWQt
NiwuY29sLW1kLTcsLmNvbC1tZC04LC5jb2wtbWQtOSwuY29sLXNtLTEsLmNvbC1zbS0xMCwuY29s
LXNtLTExLC5jb2wtc20tMTIsLmNvbC1zbS0yLC5jb2wtc20tMywuY29sLXNtLTQsLmNvbC1zbS01
LC5jb2wtc20tNiwuY29sLXNtLTcsLmNvbC1zbS04LC5jb2wtc20tOSwuY29sLXhzLTEsLmNvbC14
cy0xMCwuY29sLXhzLTExLC5jb2wteHMtMTIsLmNvbC14cy0yLC5jb2wteHMtMywuY29sLXhzLTQs
LmNvbC14cy01LC5jb2wteHMtNiwuY29sLXhzLTcsLmNvbC14cy04LC5jb2wteHMtOXtwb3NpdGlv
bjpyZWxhdGl2ZTttaW4taGVpZ2h0OjFweDtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0
OjE1cHh9LmNvbC14cy0xLC5jb2wteHMtMTAsLmNvbC14cy0xMSwuY29sLXhzLTEyLC5jb2wteHMt
MiwuY29sLXhzLTMsLmNvbC14cy00LC5jb2wteHMtNSwuY29sLXhzLTYsLmNvbC14cy03LC5jb2wt
eHMtOCwuY29sLXhzLTl7ZmxvYXQ6bGVmdH0uY29sLXhzLTEye3dpZHRoOjEwMCV9LmNvbC14cy0x
MXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC14cy0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC14
cy05e3dpZHRoOjc1JX0uY29sLXhzLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wteHMtN3t3aWR0
aDo1OC4zMzMzMzMzMyV9LmNvbC14cy02e3dpZHRoOjUwJX0uY29sLXhzLTV7d2lkdGg6NDEuNjY2
NjY2NjclfS5jb2wteHMtNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC14cy0ze3dpZHRoOjI1JX0u
Y29sLXhzLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wteHMtMXt3aWR0aDo4LjMzMzMzMzMzJX0u
Y29sLXhzLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLXhzLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2
NjclfS5jb2wteHMtcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTl7cmln
aHQ6NzUlfS5jb2wteHMtcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLXhzLXB1bGwtN3ty
aWdodDo1OC4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wteHMtcHVsbC01
e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLXhzLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNv
bC14cy1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wteHMtcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0u
Y29sLXhzLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLXhzLXB1bGwtMHtyaWdodDphdXRv
fS5jb2wteHMtcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC14cy1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2
NjclfS5jb2wteHMtcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXhzLXB1c2gtOXtsZWZ0
Ojc1JX0uY29sLXhzLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXhzLXB1c2gtN3tsZWZ0
OjU4LjMzMzMzMzMzJX0uY29sLXhzLXB1c2gtNntsZWZ0OjUwJX0uY29sLXhzLXB1c2gtNXtsZWZ0
OjQxLjY2NjY2NjY3JX0uY29sLXhzLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXhzLXB1
c2gtM3tsZWZ0OjI1JX0uY29sLXhzLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXhzLXB1
c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wteHMtcHVzaC0we2xlZnQ6YXV0b30uY29sLXhzLW9m
ZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wteHMtb2Zmc2V0LTExe21hcmdpbi1sZWZ0Ojkx
LjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNv
bC14cy1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC14cy1vZmZzZXQtOHttYXJnaW4tbGVm
dDo2Ni42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9
LmNvbC14cy1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC14cy1vZmZzZXQtNXttYXJnaW4t
bGVmdDo0MS42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMz
MyV9LmNvbC14cy1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC14cy1vZmZzZXQtMnttYXJn
aW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMz
MzMzJX0uY29sLXhzLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9QG1lZGlhIChtaW4td2lkdGg6NzY4
cHgpey5jb2wtc20tMSwuY29sLXNtLTEwLC5jb2wtc20tMTEsLmNvbC1zbS0xMiwuY29sLXNtLTIs
LmNvbC1zbS0zLC5jb2wtc20tNCwuY29sLXNtLTUsLmNvbC1zbS02LC5jb2wtc20tNywuY29sLXNt
LTgsLmNvbC1zbS05e2Zsb2F0OmxlZnR9LmNvbC1zbS0xMnt3aWR0aDoxMDAlfS5jb2wtc20tMTF7
d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wtc20tMTB7d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtc20t
OXt3aWR0aDo3NSV9LmNvbC1zbS04e3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLXNtLTd7d2lkdGg6
NTguMzMzMzMzMzMlfS5jb2wtc20tNnt3aWR0aDo1MCV9LmNvbC1zbS01e3dpZHRoOjQxLjY2NjY2
NjY3JX0uY29sLXNtLTR7d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wtc20tM3t3aWR0aDoyNSV9LmNv
bC1zbS0ye3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLXNtLTF7d2lkdGg6OC4zMzMzMzMzMyV9LmNv
bC1zbS1wdWxsLTEye3JpZ2h0OjEwMCV9LmNvbC1zbS1wdWxsLTExe3JpZ2h0OjkxLjY2NjY2NjY3
JX0uY29sLXNtLXB1bGwtMTB7cmlnaHQ6ODMuMzMzMzMzMzMlfS5jb2wtc20tcHVsbC05e3JpZ2h0
Ojc1JX0uY29sLXNtLXB1bGwtOHtyaWdodDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1wdWxsLTd7cmln
aHQ6NTguMzMzMzMzMzMlfS5jb2wtc20tcHVsbC02e3JpZ2h0OjUwJX0uY29sLXNtLXB1bGwtNXty
aWdodDo0MS42NjY2NjY2NyV9LmNvbC1zbS1wdWxsLTR7cmlnaHQ6MzMuMzMzMzMzMzMlfS5jb2wt
c20tcHVsbC0ze3JpZ2h0OjI1JX0uY29sLXNtLXB1bGwtMntyaWdodDoxNi42NjY2NjY2NyV9LmNv
bC1zbS1wdWxsLTF7cmlnaHQ6OC4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTB7cmlnaHQ6YXV0b30u
Y29sLXNtLXB1c2gtMTJ7bGVmdDoxMDAlfS5jb2wtc20tcHVzaC0xMXtsZWZ0OjkxLjY2NjY2NjY3
JX0uY29sLXNtLXB1c2gtMTB7bGVmdDo4My4zMzMzMzMzMyV9LmNvbC1zbS1wdXNoLTl7bGVmdDo3
NSV9LmNvbC1zbS1wdXNoLTh7bGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1wdXNoLTd7bGVmdDo1
OC4zMzMzMzMzMyV9LmNvbC1zbS1wdXNoLTZ7bGVmdDo1MCV9LmNvbC1zbS1wdXNoLTV7bGVmdDo0
MS42NjY2NjY2NyV9LmNvbC1zbS1wdXNoLTR7bGVmdDozMy4zMzMzMzMzMyV9LmNvbC1zbS1wdXNo
LTN7bGVmdDoyNSV9LmNvbC1zbS1wdXNoLTJ7bGVmdDoxNi42NjY2NjY2NyV9LmNvbC1zbS1wdXNo
LTF7bGVmdDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtMHtsZWZ0OmF1dG99LmNvbC1zbS1vZmZz
ZXQtMTJ7bWFyZ2luLWxlZnQ6MTAwJX0uY29sLXNtLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42
NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMlfS5jb2wt
c20tb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wtc20tb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6
NjYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5j
b2wtc20tb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wtc20tb2Zmc2V0LTV7bWFyZ2luLWxl
ZnQ6NDEuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMl
fS5jb2wtc20tb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wtc20tb2Zmc2V0LTJ7bWFyZ2lu
LWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMz
MyV9LmNvbC1zbS1vZmZzZXQtMHttYXJnaW4tbGVmdDowfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJw
eCl7LmNvbC1tZC0xLC5jb2wtbWQtMTAsLmNvbC1tZC0xMSwuY29sLW1kLTEyLC5jb2wtbWQtMiwu
Y29sLW1kLTMsLmNvbC1tZC00LC5jb2wtbWQtNSwuY29sLW1kLTYsLmNvbC1tZC03LC5jb2wtbWQt
OCwuY29sLW1kLTl7ZmxvYXQ6bGVmdH0uY29sLW1kLTEye3dpZHRoOjEwMCV9LmNvbC1tZC0xMXt3
aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1tZC0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1tZC05
e3dpZHRoOjc1JX0uY29sLW1kLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbWQtN3t3aWR0aDo1
OC4zMzMzMzMzMyV9LmNvbC1tZC02e3dpZHRoOjUwJX0uY29sLW1kLTV7d2lkdGg6NDEuNjY2NjY2
NjclfS5jb2wtbWQtNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1tZC0ze3dpZHRoOjI1JX0uY29s
LW1kLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbWQtMXt3aWR0aDo4LjMzMzMzMzMzJX0uY29s
LW1kLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLW1kLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2Njcl
fS5jb2wtbWQtcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTl7cmlnaHQ6
NzUlfS5jb2wtbWQtcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtN3tyaWdo
dDo1OC4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtbWQtcHVsbC01e3Jp
Z2h0OjQxLjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNvbC1t
ZC1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtbWQtcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0uY29s
LW1kLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtMHtyaWdodDphdXRvfS5j
b2wtbWQtcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1tZC1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2Njcl
fS5jb2wtbWQtcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtOXtsZWZ0Ojc1
JX0uY29sLW1kLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtN3tsZWZ0OjU4
LjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtNntsZWZ0OjUwJX0uY29sLW1kLXB1c2gtNXtsZWZ0OjQx
LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLW1kLXB1c2gt
M3tsZWZ0OjI1JX0uY29sLW1kLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gt
MXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC0we2xlZnQ6YXV0b30uY29sLW1kLW9mZnNl
dC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtbWQtb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2
NjY2NjY3JX0uY29sLW1kLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1t
ZC1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1tZC1vZmZzZXQtOHttYXJnaW4tbGVmdDo2
Ni42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LmNv
bC1tZC1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1tZC1vZmZzZXQtNXttYXJnaW4tbGVm
dDo0MS42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMyV9
LmNvbC1tZC1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1tZC1vZmZzZXQtMnttYXJnaW4t
bGVmdDoxNi42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMz
JX0uY29sLW1kLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBw
eCl7LmNvbC1sZy0xLC5jb2wtbGctMTAsLmNvbC1sZy0xMSwuY29sLWxnLTEyLC5jb2wtbGctMiwu
Y29sLWxnLTMsLmNvbC1sZy00LC5jb2wtbGctNSwuY29sLWxnLTYsLmNvbC1sZy03LC5jb2wtbGct
OCwuY29sLWxnLTl7ZmxvYXQ6bGVmdH0uY29sLWxnLTEye3dpZHRoOjEwMCV9LmNvbC1sZy0xMXt3
aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1sZy0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1sZy05
e3dpZHRoOjc1JX0uY29sLWxnLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbGctN3t3aWR0aDo1
OC4zMzMzMzMzMyV9LmNvbC1sZy02e3dpZHRoOjUwJX0uY29sLWxnLTV7d2lkdGg6NDEuNjY2NjY2
NjclfS5jb2wtbGctNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1sZy0ze3dpZHRoOjI1JX0uY29s
LWxnLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbGctMXt3aWR0aDo4LjMzMzMzMzMzJX0uY29s
LWxnLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLWxnLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2Njcl
fS5jb2wtbGctcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTl7cmlnaHQ6
NzUlfS5jb2wtbGctcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLWxnLXB1bGwtN3tyaWdo
dDo1OC4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtbGctcHVsbC01e3Jp
Z2h0OjQxLjY2NjY2NjY3JX0uY29sLWxnLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNvbC1s
Zy1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtbGctcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0uY29s
LWxnLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLWxnLXB1bGwtMHtyaWdodDphdXRvfS5j
b2wtbGctcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1sZy1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2Njcl
fS5jb2wtbGctcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLWxnLXB1c2gtOXtsZWZ0Ojc1
JX0uY29sLWxnLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLWxnLXB1c2gtN3tsZWZ0OjU4
LjMzMzMzMzMzJX0uY29sLWxnLXB1c2gtNntsZWZ0OjUwJX0uY29sLWxnLXB1c2gtNXtsZWZ0OjQx
LjY2NjY2NjY3JX0uY29sLWxnLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLWxnLXB1c2gt
M3tsZWZ0OjI1JX0uY29sLWxnLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLWxnLXB1c2gt
MXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtbGctcHVzaC0we2xlZnQ6YXV0b30uY29sLWxnLW9mZnNl
dC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtbGctb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2
NjY2NjY3JX0uY29sLWxnLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1s
Zy1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1sZy1vZmZzZXQtOHttYXJnaW4tbGVmdDo2
Ni42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LmNv
bC1sZy1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1sZy1vZmZzZXQtNXttYXJnaW4tbGVm
dDo0MS42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMyV9
LmNvbC1sZy1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1sZy1vZmZzZXQtMnttYXJnaW4t
bGVmdDoxNi42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMz
JX0uY29sLWxnLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9fXRhYmxle2JhY2tncm91bmQtY29sb3I6
dHJhbnNwYXJlbnR9Y2FwdGlvbntwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4O2Nv
bG9yOiM3Nzc7dGV4dC1hbGlnbjpsZWZ0fXRoe3RleHQtYWxpZ246bGVmdH0udGFibGV7d2lkdGg6
MTAwJTttYXgtd2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjIwcHh9LnRhYmxlPnRib2R5PnRyPnRk
LC50YWJsZT50Ym9keT50cj50aCwudGFibGU+dGZvb3Q+dHI+dGQsLnRhYmxlPnRmb290PnRyPnRo
LC50YWJsZT50aGVhZD50cj50ZCwudGFibGU+dGhlYWQ+dHI+dGh7cGFkZGluZzo4cHg7bGluZS1o
ZWlnaHQ6MS40Mjg1NzE0Mzt2ZXJ0aWNhbC1hbGlnbjp0b3A7Ym9yZGVyLXRvcDoxcHggc29saWQg
I2RkZH0udGFibGU+dGhlYWQ+dHI+dGh7dmVydGljYWwtYWxpZ246Ym90dG9tO2JvcmRlci1ib3R0
b206MnB4IHNvbGlkICNkZGR9LnRhYmxlPmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQs
LnRhYmxlPmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGgsLnRhYmxlPmNvbGdyb3VwK3Ro
ZWFkPnRyOmZpcnN0LWNoaWxkPnRkLC50YWJsZT5jb2xncm91cCt0aGVhZD50cjpmaXJzdC1jaGls
ZD50aCwudGFibGU+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnRhYmxlPnRo
ZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkPnRoe2JvcmRlci10b3A6MH0udGFibGU+dGJv
ZHkrdGJvZHl7Ym9yZGVyLXRvcDoycHggc29saWQgI2RkZH0udGFibGUgLnRhYmxle2JhY2tncm91
bmQtY29sb3I6I2ZmZn0udGFibGUtY29uZGVuc2VkPnRib2R5PnRyPnRkLC50YWJsZS1jb25kZW5z
ZWQ+dGJvZHk+dHI+dGgsLnRhYmxlLWNvbmRlbnNlZD50Zm9vdD50cj50ZCwudGFibGUtY29uZGVu
c2VkPnRmb290PnRyPnRoLC50YWJsZS1jb25kZW5zZWQ+dGhlYWQ+dHI+dGQsLnRhYmxlLWNvbmRl
bnNlZD50aGVhZD50cj50aHtwYWRkaW5nOjVweH0udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjFweCBz
b2xpZCAjZGRkfS50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZCwudGFibGUtYm9yZGVyZWQ+dGJv
ZHk+dHI+dGgsLnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkLC50YWJsZS1ib3JkZXJlZD50Zm9v
dD50cj50aCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQsLnRhYmxlLWJvcmRlcmVkPnRoZWFk
PnRyPnRoe2JvcmRlcjoxcHggc29saWQgI2RkZH0udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQs
LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoe2JvcmRlci1ib3R0b20td2lkdGg6MnB4fS50YWJs
ZS1zdHJpcGVkPnRib2R5PnRyOm50aC1vZi10eXBlKG9kZCl7YmFja2dyb3VuZC1jb2xvcjojZjlm
OWY5fS50YWJsZS1ob3Zlcj50Ym9keT50cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9
dGFibGUgY29sW2NsYXNzKj1jb2wtXXtwb3NpdGlvbjpzdGF0aWM7ZGlzcGxheTp0YWJsZS1jb2x1
bW47ZmxvYXQ6bm9uZX10YWJsZSB0ZFtjbGFzcyo9Y29sLV0sdGFibGUgdGhbY2xhc3MqPWNvbC1d
e3Bvc2l0aW9uOnN0YXRpYztkaXNwbGF5OnRhYmxlLWNlbGw7ZmxvYXQ6bm9uZX0udGFibGU+dGJv
ZHk+dHIuYWN0aXZlPnRkLC50YWJsZT50Ym9keT50ci5hY3RpdmU+dGgsLnRhYmxlPnRib2R5PnRy
PnRkLmFjdGl2ZSwudGFibGU+dGJvZHk+dHI+dGguYWN0aXZlLC50YWJsZT50Zm9vdD50ci5hY3Rp
dmU+dGQsLnRhYmxlPnRmb290PnRyLmFjdGl2ZT50aCwudGFibGU+dGZvb3Q+dHI+dGQuYWN0aXZl
LC50YWJsZT50Zm9vdD50cj50aC5hY3RpdmUsLnRhYmxlPnRoZWFkPnRyLmFjdGl2ZT50ZCwudGFi
bGU+dGhlYWQ+dHIuYWN0aXZlPnRoLC50YWJsZT50aGVhZD50cj50ZC5hY3RpdmUsLnRhYmxlPnRo
ZWFkPnRyPnRoLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LnRhYmxlLWhvdmVyPnRi
b2R5PnRyLmFjdGl2ZTpob3Zlcj50ZCwudGFibGUtaG92ZXI+dGJvZHk+dHIuYWN0aXZlOmhvdmVy
PnRoLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uYWN0aXZlLC50YWJsZS1ob3Zlcj50Ym9k
eT50cj50ZC5hY3RpdmU6aG92ZXIsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRoLmFjdGl2ZTpob3Zl
cntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTh9LnRhYmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGQsLnRh
YmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRib2R5PnRyPnRkLnN1Y2Nlc3MsLnRhYmxl
PnRib2R5PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRmb290PnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRm
b290PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRmb290PnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRmb290
PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRoZWFkPnRy
LnN1Y2Nlc3M+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRyPnRo
LnN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4fS50YWJsZS1ob3Zlcj50Ym9keT50ci5z
dWNjZXNzOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci5zdWNjZXNzOmhvdmVyPnRoLC50
YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uc3VjY2VzcywudGFibGUtaG92ZXI+dGJvZHk+dHI+
dGQuc3VjY2Vzczpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguc3VjY2Vzczpob3Zlcnti
YWNrZ3JvdW5kLWNvbG9yOiNkMGU5YzZ9LnRhYmxlPnRib2R5PnRyLmluZm8+dGQsLnRhYmxlPnRi
b2R5PnRyLmluZm8+dGgsLnRhYmxlPnRib2R5PnRyPnRkLmluZm8sLnRhYmxlPnRib2R5PnRyPnRo
LmluZm8sLnRhYmxlPnRmb290PnRyLmluZm8+dGQsLnRhYmxlPnRmb290PnRyLmluZm8+dGgsLnRh
YmxlPnRmb290PnRyPnRkLmluZm8sLnRhYmxlPnRmb290PnRyPnRoLmluZm8sLnRhYmxlPnRoZWFk
PnRyLmluZm8+dGQsLnRhYmxlPnRoZWFkPnRyLmluZm8+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLmlu
Zm8sLnRhYmxlPnRoZWFkPnRyPnRoLmluZm97YmFja2dyb3VuZC1jb2xvcjojZDllZGY3fS50YWJs
ZS1ob3Zlcj50Ym9keT50ci5pbmZvOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci5pbmZv
OmhvdmVyPnRoLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uaW5mbywudGFibGUtaG92ZXI+
dGJvZHk+dHI+dGQuaW5mbzpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguaW5mbzpob3Zl
cntiYWNrZ3JvdW5kLWNvbG9yOiNjNGUzZjN9LnRhYmxlPnRib2R5PnRyLndhcm5pbmc+dGQsLnRh
YmxlPnRib2R5PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRib2R5PnRyPnRkLndhcm5pbmcsLnRhYmxl
PnRib2R5PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRmb290PnRyLndhcm5pbmc+dGQsLnRhYmxlPnRm
b290PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRmb290PnRyPnRkLndhcm5pbmcsLnRhYmxlPnRmb290
PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRyLndhcm5pbmc+dGQsLnRhYmxlPnRoZWFkPnRy
Lndhcm5pbmc+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRyPnRo
Lndhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzfS50YWJsZS1ob3Zlcj50Ym9keT50ci53
YXJuaW5nOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci53YXJuaW5nOmhvdmVyPnRoLC50
YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4ud2FybmluZywudGFibGUtaG92ZXI+dGJvZHk+dHI+
dGQud2FybmluZzpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGgud2FybmluZzpob3Zlcnti
YWNrZ3JvdW5kLWNvbG9yOiNmYWYyY2N9LnRhYmxlPnRib2R5PnRyLmRhbmdlcj50ZCwudGFibGU+
dGJvZHk+dHIuZGFuZ2VyPnRoLC50YWJsZT50Ym9keT50cj50ZC5kYW5nZXIsLnRhYmxlPnRib2R5
PnRyPnRoLmRhbmdlciwudGFibGU+dGZvb3Q+dHIuZGFuZ2VyPnRkLC50YWJsZT50Zm9vdD50ci5k
YW5nZXI+dGgsLnRhYmxlPnRmb290PnRyPnRkLmRhbmdlciwudGFibGU+dGZvb3Q+dHI+dGguZGFu
Z2VyLC50YWJsZT50aGVhZD50ci5kYW5nZXI+dGQsLnRhYmxlPnRoZWFkPnRyLmRhbmdlcj50aCwu
dGFibGU+dGhlYWQ+dHI+dGQuZGFuZ2VyLC50YWJsZT50aGVhZD50cj50aC5kYW5nZXJ7YmFja2dy
b3VuZC1jb2xvcjojZjJkZWRlfS50YWJsZS1ob3Zlcj50Ym9keT50ci5kYW5nZXI6aG92ZXI+dGQs
LnRhYmxlLWhvdmVyPnRib2R5PnRyLmRhbmdlcjpob3Zlcj50aCwudGFibGUtaG92ZXI+dGJvZHk+
dHI6aG92ZXI+LmRhbmdlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGQuZGFuZ2VyOmhvdmVyLC50
YWJsZS1ob3Zlcj50Ym9keT50cj50aC5kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWJj
Y2NjfS50YWJsZS1yZXNwb25zaXZle21pbi1oZWlnaHQ6LjAxJTtvdmVyZmxvdy14OmF1dG99QG1l
ZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCl7LnRhYmxlLXJlc3BvbnNpdmV7d2lkdGg6
MTAwJTttYXJnaW4tYm90dG9tOjE1cHg7b3ZlcmZsb3cteTpoaWRkZW47LW1zLW92ZXJmbG93LXN0
eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtib3JkZXI6MXB4IHNvbGlkICNkZGR9LnRhYmxl
LXJlc3BvbnNpdmU+LnRhYmxle21hcmdpbi1ib3R0b206MH0udGFibGUtcmVzcG9uc2l2ZT4udGFi
bGU+dGJvZHk+dHI+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRib2R5PnRyPnRoLC50YWJs
ZS1yZXNwb25zaXZlPi50YWJsZT50Zm9vdD50cj50ZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGU+
dGZvb3Q+dHI+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRoZWFkPnRyPnRkLC50YWJsZS1y
ZXNwb25zaXZlPi50YWJsZT50aGVhZD50cj50aHt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhYmxlLXJl
c3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfS50YWJsZS1yZXNwb25zaXZlPi50YWJs
ZS1ib3JkZXJlZD50Ym9keT50cj50ZDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFi
bGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRh
YmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC50YWJsZS1yZXNwb25zaXZlPi50
YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4u
dGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+
LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjB9LnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQsLnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmxhc3QtY2hpbGQsLnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQsLnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmxhc3QtY2hpbGQsLnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGR7Ym9y
ZGVyLXJpZ2h0OjB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxh
c3QtY2hpbGQ+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxh
c3QtY2hpbGQ+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxh
c3QtY2hpbGQ+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxh
c3QtY2hpbGQ+dGh7Ym9yZGVyLWJvdHRvbTowfX1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5n
OjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRk
aW5nOjA7bWFyZ2luLWJvdHRvbToyMHB4O2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OmluaGVy
aXQ7Y29sb3I6IzMzMztib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1fWxh
YmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMDAlO21hcmdpbi1ib3R0b206NXB4
O2ZvbnQtd2VpZ2h0OjcwMH1pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1ib3gtc2l6aW5nOmJv
cmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94
fWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9de21hcmdpbjo0cHggMCAwO21h
cmdpbi10b3A6MXB4XDk7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9ZmlsZV17ZGlzcGxh
eTpibG9ja31pbnB1dFt0eXBlPXJhbmdlXXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9c2VsZWN0
W211bHRpcGxlXSxzZWxlY3Rbc2l6ZV17aGVpZ2h0OmF1dG99aW5wdXRbdHlwZT1maWxlXTpmb2N1
cyxpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyxpbnB1dFt0eXBlPXJhZGlvXTpmb2N1c3tvdXRs
aW5lOnRoaW4gZG90dGVkO291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9y
O291dGxpbmUtb2Zmc2V0Oi0ycHh9b3V0cHV0e2Rpc3BsYXk6YmxvY2s7cGFkZGluZy10b3A6N3B4
O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NX0uZm9ybS1j
b250cm9se2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MzRweDtwYWRkaW5nOjZweCAx
MnB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NTtiYWNr
Z3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQg
I2NjYztib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4
IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwu
MDc1KTstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdl
YmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7LW8tdHJhbnNpdGlvbjpib3JkZXItY29s
b3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7dHJhbnNpdGlv
bjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4x
NXN9LmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzY2YWZlOTtvdXRsaW5lOjA7LXdl
YmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA4cHgg
cmdiYSgxMDIsMTc1LDIzMywuNik7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAs
MCwuMDc1KSwwIDAgOHB4IHJnYmEoMTAyLDE3NSwyMzMsLjYpfS5mb3JtLWNvbnRyb2w6Oi1tb3ot
cGxhY2Vob2xkZXJ7Y29sb3I6Izk5OTtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDotbXMtaW5wdXQt
cGxhY2Vob2xkZXJ7Y29sb3I6Izk5OX0uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNl
aG9sZGVye2NvbG9yOiM5OTl9LmZvcm0tY29udHJvbFtkaXNhYmxlZF0sLmZvcm0tY29udHJvbFty
ZWFkb25seV0sZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2x7YmFja2dyb3VuZC1jb2xv
cjojZWVlO29wYWNpdHk6MX0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxl
ZF0gLmZvcm0tY29udHJvbHtjdXJzb3I6bm90LWFsbG93ZWR9dGV4dGFyZWEuZm9ybS1jb250cm9s
e2hlaWdodDphdXRvfWlucHV0W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1A
bWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe2lucHV0
W3R5cGU9ZGF0ZV0uZm9ybS1jb250cm9sLGlucHV0W3R5cGU9dGltZV0uZm9ybS1jb250cm9sLGlu
cHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLmZvcm0tY29udHJvbCxpbnB1dFt0eXBlPW1vbnRoXS5m
b3JtLWNvbnRyb2x7bGluZS1oZWlnaHQ6MzRweH0uaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1k
YXRlXSwuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT10aW1lXSwuaW5wdXQtZ3JvdXAtc20gaW5w
dXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9bW9udGhd
LGlucHV0W3R5cGU9ZGF0ZV0uaW5wdXQtc20saW5wdXRbdHlwZT10aW1lXS5pbnB1dC1zbSxpbnB1
dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5pbnB1dC1zbSxpbnB1dFt0eXBlPW1vbnRoXS5pbnB1dC1z
bXtsaW5lLWhlaWdodDozMHB4fS5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPWRhdGVdLC5pbnB1
dC1ncm91cC1sZyBpbnB1dFt0eXBlPXRpbWVdLC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPWRh
dGV0aW1lLWxvY2FsXSwuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1tb250aF0saW5wdXRbdHlw
ZT1kYXRlXS5pbnB1dC1sZyxpbnB1dFt0eXBlPXRpbWVdLmlucHV0LWxnLGlucHV0W3R5cGU9ZGF0
ZXRpbWUtbG9jYWxdLmlucHV0LWxnLGlucHV0W3R5cGU9bW9udGhdLmlucHV0LWxne2xpbmUtaGVp
Z2h0OjQ2cHh9fS5mb3JtLWdyb3Vwe21hcmdpbi1ib3R0b206MTVweH0uY2hlY2tib3gsLnJhZGlv
e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1i
b3R0b206MTBweH0uY2hlY2tib3ggbGFiZWwsLnJhZGlvIGxhYmVse21pbi1oZWlnaHQ6MjBweDtw
YWRkaW5nLWxlZnQ6MjBweDttYXJnaW4tYm90dG9tOjA7Zm9udC13ZWlnaHQ6NDAwO2N1cnNvcjpw
b2ludGVyfS5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuY2hlY2tib3gtaW5saW5lIGlu
cHV0W3R5cGU9Y2hlY2tib3hdLC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSwucmFkaW8taW5saW5l
IGlucHV0W3R5cGU9cmFkaW9de3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6NHB4XDk7bWFy
Z2luLWxlZnQ6LTIwcHh9LmNoZWNrYm94Ky5jaGVja2JveCwucmFkaW8rLnJhZGlve21hcmdpbi10
b3A6LTVweH0uY2hlY2tib3gtaW5saW5lLC5yYWRpby1pbmxpbmV7cG9zaXRpb246cmVsYXRpdmU7
ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjIwcHg7bWFyZ2luLWJvdHRvbTowO2Zv
bnQtd2VpZ2h0OjQwMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXJ9LmNoZWNr
Ym94LWlubGluZSsuY2hlY2tib3gtaW5saW5lLC5yYWRpby1pbmxpbmUrLnJhZGlvLWlubGluZXtt
YXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MTBweH1maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlw
ZT1jaGVja2JveF0sZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9cmFkaW9dLGlucHV0W3R5
cGU9Y2hlY2tib3hdLmRpc2FibGVkLGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSxpbnB1
dFt0eXBlPXJhZGlvXS5kaXNhYmxlZCxpbnB1dFt0eXBlPXJhZGlvXVtkaXNhYmxlZF17Y3Vyc29y
Om5vdC1hbGxvd2VkfS5jaGVja2JveC1pbmxpbmUuZGlzYWJsZWQsLnJhZGlvLWlubGluZS5kaXNh
YmxlZCxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LWlubGluZSxmaWVsZHNldFtkaXNhYmxl
ZF0gLnJhZGlvLWlubGluZXtjdXJzb3I6bm90LWFsbG93ZWR9LmNoZWNrYm94LmRpc2FibGVkIGxh
YmVsLC5yYWRpby5kaXNhYmxlZCBsYWJlbCxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94IGxh
YmVsLGZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8gbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2VkfS5m
b3JtLWNvbnRyb2wtc3RhdGlje21pbi1oZWlnaHQ6MzRweDtwYWRkaW5nLXRvcDo3cHg7cGFkZGlu
Zy1ib3R0b206N3B4O21hcmdpbi1ib3R0b206MH0uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1s
ZywuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1s
ZWZ0OjB9LmlucHV0LXNte2hlaWdodDozMHB4O3BhZGRpbmc6NXB4IDEwcHg7Zm9udC1zaXplOjEy
cHg7bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fXNlbGVjdC5pbnB1dC1zbXtoZWln
aHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fXNlbGVjdFttdWx0aXBsZV0uaW5wdXQtc20sdGV4dGFy
ZWEuaW5wdXQtc217aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbHtoZWln
aHQ6MzBweDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTti
b3JkZXItcmFkaXVzOjNweH0uZm9ybS1ncm91cC1zbSBzZWxlY3QuZm9ybS1jb250cm9se2hlaWdo
dDozMHB4O2xpbmUtaGVpZ2h0OjMwcHh9LmZvcm0tZ3JvdXAtc20gc2VsZWN0W211bHRpcGxlXS5m
b3JtLWNvbnRyb2wsLmZvcm0tZ3JvdXAtc20gdGV4dGFyZWEuZm9ybS1jb250cm9se2hlaWdodDph
dXRvfS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wtc3RhdGlje2hlaWdodDozMHB4O21pbi1o
ZWlnaHQ6MzJweDtwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEu
NX0uaW5wdXQtbGd7aGVpZ2h0OjQ2cHg7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjE4cHg7
bGluZS1oZWlnaHQ6MS4zMzMzMzMzO2JvcmRlci1yYWRpdXM6NnB4fXNlbGVjdC5pbnB1dC1sZ3to
ZWlnaHQ6NDZweDtsaW5lLWhlaWdodDo0NnB4fXNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcsdGV4
dGFyZWEuaW5wdXQtbGd7aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbHto
ZWlnaHQ6NDZweDtwYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDox
LjMzMzMzMzM7Ym9yZGVyLXJhZGl1czo2cHh9LmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29u
dHJvbHtoZWlnaHQ6NDZweDtsaW5lLWhlaWdodDo0NnB4fS5mb3JtLWdyb3VwLWxnIHNlbGVjdFtt
dWx0aXBsZV0uZm9ybS1jb250cm9sLC5mb3JtLWdyb3VwLWxnIHRleHRhcmVhLmZvcm0tY29udHJv
bHtoZWlnaHQ6YXV0b30uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sLXN0YXRpY3toZWlnaHQ6
NDZweDttaW4taGVpZ2h0OjM4cHg7cGFkZGluZzoxMXB4IDE2cHg7Zm9udC1zaXplOjE4cHg7bGlu
ZS1oZWlnaHQ6MS4zMzMzMzMzfS5oYXMtZmVlZGJhY2t7cG9zaXRpb246cmVsYXRpdmV9Lmhhcy1m
ZWVkYmFjayAuZm9ybS1jb250cm9se3BhZGRpbmctcmlnaHQ6NDIuNXB4fS5mb3JtLWNvbnRyb2wt
ZmVlZGJhY2t7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt6LWluZGV4OjI7ZGlzcGxh
eTpibG9jazt3aWR0aDozNHB4O2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjM0cHg7dGV4dC1hbGln
bjpjZW50ZXI7cG9pbnRlci1ldmVudHM6bm9uZX0uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9s
Ky5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmlucHV0LWdyb3VwLWxnKy5mb3JtLWNvbnRyb2wtZmVl
ZGJhY2ssLmlucHV0LWxnKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7d2lkdGg6NDZweDtoZWlnaHQ6
NDZweDtsaW5lLWhlaWdodDo0NnB4fS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wrLmZvcm0t
Y29udHJvbC1mZWVkYmFjaywuaW5wdXQtZ3JvdXAtc20rLmZvcm0tY29udHJvbC1mZWVkYmFjaywu
aW5wdXQtc20rLmZvcm0tY29udHJvbC1mZWVkYmFja3t3aWR0aDozMHB4O2hlaWdodDozMHB4O2xp
bmUtaGVpZ2h0OjMwcHh9Lmhhcy1zdWNjZXNzIC5jaGVja2JveCwuaGFzLXN1Y2Nlc3MgLmNoZWNr
Ym94LWlubGluZSwuaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsLmhhcy1zdWNjZXNzIC5oZWxw
LWJsb2NrLC5oYXMtc3VjY2VzcyAucmFkaW8sLmhhcy1zdWNjZXNzIC5yYWRpby1pbmxpbmUsLmhh
cy1zdWNjZXNzLmNoZWNrYm94IGxhYmVsLC5oYXMtc3VjY2Vzcy5jaGVja2JveC1pbmxpbmUgbGFi
ZWwsLmhhcy1zdWNjZXNzLnJhZGlvIGxhYmVsLC5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUgbGFi
ZWx7Y29sb3I6IzNjNzYzZH0uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbHtib3JkZXItY29sb3I6
IzNjNzYzZDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3
NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KX0uaGFzLXN1Y2Nl
c3MgLmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzJiNTQyYzstd2Via2l0LWJveC1z
aGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjNjdiMTY4O2Jv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjNjdiMTY4
fS5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb257Y29sb3I6IzNjNzYzZDtiYWNrZ3JvdW5k
LWNvbG9yOiNkZmYwZDg7Ym9yZGVyLWNvbG9yOiMzYzc2M2R9Lmhhcy1zdWNjZXNzIC5mb3JtLWNv
bnRyb2wtZmVlZGJhY2t7Y29sb3I6IzNjNzYzZH0uaGFzLXdhcm5pbmcgLmNoZWNrYm94LC5oYXMt
d2FybmluZyAuY2hlY2tib3gtaW5saW5lLC5oYXMtd2FybmluZyAuY29udHJvbC1sYWJlbCwuaGFz
LXdhcm5pbmcgLmhlbHAtYmxvY2ssLmhhcy13YXJuaW5nIC5yYWRpbywuaGFzLXdhcm5pbmcgLnJh
ZGlvLWlubGluZSwuaGFzLXdhcm5pbmcuY2hlY2tib3ggbGFiZWwsLmhhcy13YXJuaW5nLmNoZWNr
Ym94LWlubGluZSBsYWJlbCwuaGFzLXdhcm5pbmcucmFkaW8gbGFiZWwsLmhhcy13YXJuaW5nLnJh
ZGlvLWlubGluZSBsYWJlbHtjb2xvcjojOGE2ZDNifS5oYXMtd2FybmluZyAuZm9ybS1jb250cm9s
e2JvcmRlci1jb2xvcjojOGE2ZDNiOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHgg
cmdiYSgwLDAsMCwuMDc1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4w
NzUpfS5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1jb2xvcjojNjY1MTJj
Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwwIDAg
NnB4ICNjMGExNmI7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSww
IDAgNnB4ICNjMGExNmJ9Lmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojOGE2
ZDNiO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlMztib3JkZXItY29sb3I6IzhhNmQzYn0uaGFzLXdh
cm5pbmcgLmZvcm0tY29udHJvbC1mZWVkYmFja3tjb2xvcjojOGE2ZDNifS5oYXMtZXJyb3IgLmNo
ZWNrYm94LC5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSwuaGFzLWVycm9yIC5jb250cm9sLWxh
YmVsLC5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssLmhhcy1lcnJvciAucmFkaW8sLmhhcy1lcnJvciAu
cmFkaW8taW5saW5lLC5oYXMtZXJyb3IuY2hlY2tib3ggbGFiZWwsLmhhcy1lcnJvci5jaGVja2Jv
eC1pbmxpbmUgbGFiZWwsLmhhcy1lcnJvci5yYWRpbyBsYWJlbCwuaGFzLWVycm9yLnJhZGlvLWlu
bGluZSBsYWJlbHtjb2xvcjojYTk0NDQyfS5oYXMtZXJyb3IgLmZvcm0tY29udHJvbHtib3JkZXIt
Y29sb3I6I2E5NDQ0Mjstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCww
LDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KX0uaGFz
LWVycm9yIC5mb3JtLWNvbnRyb2w6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM4NDM1MzQ7LXdlYmtpdC1i
b3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHggI2NlODQ4
Mztib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHggI2Nl
ODQ4M30uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojYTk0NDQyO2JhY2tncm91
bmQtY29sb3I6I2YyZGVkZTtib3JkZXItY29sb3I6I2E5NDQ0Mn0uaGFzLWVycm9yIC5mb3JtLWNv
bnRyb2wtZmVlZGJhY2t7Y29sb3I6I2E5NDQ0Mn0uaGFzLWZlZWRiYWNrIGxhYmVsfi5mb3JtLWNv
bnRyb2wtZmVlZGJhY2t7dG9wOjI1cHh9Lmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5fi5mb3Jt
LWNvbnRyb2wtZmVlZGJhY2t7dG9wOjB9LmhlbHAtYmxvY2t7ZGlzcGxheTpibG9jazttYXJnaW4t
dG9wOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Y29sb3I6IzczNzM3M31AbWVkaWEgKG1pbi13aWR0
aDo3NjhweCl7LmZvcm0taW5saW5lIC5mb3JtLWdyb3Vwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21h
cmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5lIC5mb3JtLWNv
bnRyb2x7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6YXV0bzt2ZXJ0aWNhbC1hbGlnbjptaWRk
bGV9LmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wtc3RhdGlje2Rpc3BsYXk6aW5saW5lLWJsb2Nr
fS5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXB7ZGlzcGxheTppbmxpbmUtdGFibGU7dmVydGljYWwt
YWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCwuZm9y
bS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbiwuZm9ybS1pbmxpbmUgLmlu
cHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG57d2lkdGg6YXV0b30uZm9ybS1pbmxpbmUgLmlucHV0
LWdyb3VwPi5mb3JtLWNvbnRyb2x7d2lkdGg6MTAwJX0uZm9ybS1pbmxpbmUgLmNvbnRyb2wtbGFi
ZWx7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLmNo
ZWNrYm94LC5mb3JtLWlubGluZSAucmFkaW97ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRv
cDowO21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5lIC5j
aGVja2JveCBsYWJlbCwuZm9ybS1pbmxpbmUgLnJhZGlvIGxhYmVse3BhZGRpbmctbGVmdDowfS5m
b3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0sLmZvcm0taW5saW5lIC5y
YWRpbyBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tbGVmdDowfS5m
b3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7dG9wOjB9fS5m
b3JtLWhvcml6b250YWwgLmNoZWNrYm94LC5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LWlubGlu
ZSwuZm9ybS1ob3Jpem9udGFsIC5yYWRpbywuZm9ybS1ob3Jpem9udGFsIC5yYWRpby1pbmxpbmV7
cGFkZGluZy10b3A6N3B4O21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LmZvcm0taG9yaXpv
bnRhbCAuY2hlY2tib3gsLmZvcm0taG9yaXpvbnRhbCAucmFkaW97bWluLWhlaWdodDoyN3B4fS5m
b3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXB7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0
Oi0xNXB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZm9ybS1ob3Jpem9udGFsIC5jb250cm9s
LWxhYmVse3BhZGRpbmctdG9wOjdweDttYXJnaW4tYm90dG9tOjA7dGV4dC1hbGlnbjpyaWdodH19
LmZvcm0taG9yaXpvbnRhbCAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7cmln
aHQ6MTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9ybS1n
cm91cC1sZyAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDoxNC4zM3B4O2ZvbnQtc2l6ZToxOHB4
fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1z
bSAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDo2cHg7Zm9udC1zaXplOjEycHh9fS5idG57ZGlz
cGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo2cHggMTJweDttYXJnaW4tYm90dG9tOjA7Zm9udC1z
aXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1hbGln
bjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstbXMtdG91
Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2N1cnNvcjpw
b2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1z
LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7
Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweH0uYnRuLmFjdGl2
ZS5mb2N1cywuYnRuLmFjdGl2ZTpmb2N1cywuYnRuLmZvY3VzLC5idG46YWN0aXZlLmZvY3VzLC5i
dG46YWN0aXZlOmZvY3VzLC5idG46Zm9jdXN7b3V0bGluZTp0aGluIGRvdHRlZDtvdXRsaW5lOjVw
eCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDotMnB4fS5idG4u
Zm9jdXMsLmJ0bjpmb2N1cywuYnRuOmhvdmVye2NvbG9yOiMzMzM7dGV4dC1kZWNvcmF0aW9uOm5v
bmV9LmJ0bi5hY3RpdmUsLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1pbWFnZTpub25lO291dGxpbmU6
MDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSk7Ym94
LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KX0uYnRuLmRpc2FibGVkLC5i
dG5bZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRue2N1cnNvcjpub3QtYWxsb3dlZDtm
aWx0ZXI6YWxwaGEob3BhY2l0eT02NSk7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRv
dzpub25lO29wYWNpdHk6LjY1fWEuYnRuLmRpc2FibGVkLGZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0
bntwb2ludGVyLWV2ZW50czpub25lfS5idG4tZGVmYXVsdHtjb2xvcjojMzMzO2JhY2tncm91bmQt
Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2NjY30uYnRuLWRlZmF1bHQuZm9jdXMsLmJ0bi1kZWZh
dWx0OmZvY3Vze2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2JvcmRlci1jb2xv
cjojOGM4YzhjfS5idG4tZGVmYXVsdDpob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6
I2U2ZTZlNjtib3JkZXItY29sb3I6I2FkYWRhZH0uYnRuLWRlZmF1bHQuYWN0aXZlLC5idG4tZGVm
YXVsdDphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdHtjb2xvcjojMzMz
O2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtib3JkZXItY29sb3I6I2FkYWRhZH0uYnRuLWRlZmF1
bHQuYWN0aXZlLmZvY3VzLC5idG4tZGVmYXVsdC5hY3RpdmU6Zm9jdXMsLmJ0bi1kZWZhdWx0LmFj
dGl2ZTpob3ZlciwuYnRuLWRlZmF1bHQ6YWN0aXZlLmZvY3VzLC5idG4tZGVmYXVsdDphY3RpdmU6
Zm9jdXMsLmJ0bi1kZWZhdWx0OmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0
bi1kZWZhdWx0LmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQ6Zm9jdXMs
Lm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpob3Zlcntjb2xvcjojMzMzO2JhY2tn
cm91bmQtY29sb3I6I2Q0ZDRkNDtib3JkZXItY29sb3I6IzhjOGM4Y30uYnRuLWRlZmF1bHQuYWN0
aXZlLC5idG4tZGVmYXVsdDphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVs
dHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1kZWZhdWx0LmRpc2FibGVkLC5idG4tZGVmYXVs
dC5kaXNhYmxlZC5hY3RpdmUsLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLC5idG4tZGVmYXVs
dC5kaXNhYmxlZDphY3RpdmUsLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLC5idG4tZGVmYXVs
dC5kaXNhYmxlZDpob3ZlciwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLC5idG4tZGVmYXVsdFtkaXNh
YmxlZF0uYWN0aXZlLC5idG4tZGVmYXVsdFtkaXNhYmxlZF0uZm9jdXMsLmJ0bi1kZWZhdWx0W2Rp
c2FibGVkXTphY3RpdmUsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpmb2N1cywuYnRuLWRlZmF1bHRb
ZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQsZmllbGRzZXRb
ZGlzYWJsZWRdIC5idG4tZGVmYXVsdC5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVm
YXVsdC5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmFjdGl2ZSxmaWVsZHNl
dFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRl
ZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojY2NjfS5idG4t
ZGVmYXVsdCAuYmFkZ2V7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9LmJ0bi1wcmlt
YXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O2JvcmRlci1jb2xvcjojMmU2
ZGE0fS5idG4tcHJpbWFyeS5mb2N1cywuYnRuLXByaW1hcnk6Zm9jdXN7Y29sb3I6I2ZmZjtiYWNr
Z3JvdW5kLWNvbG9yOiMyODYwOTA7Ym9yZGVyLWNvbG9yOiMxMjJiNDB9LmJ0bi1wcmltYXJ5Omhv
dmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjg2MDkwO2JvcmRlci1jb2xvcjojMjA0
ZDc0fS5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1wcmltYXJ5OmFjdGl2ZSwub3Blbj4uZHJvcGRv
d24tdG9nZ2xlLmJ0bi1wcmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjg2MDkw
O2JvcmRlci1jb2xvcjojMjA0ZDc0fS5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsLmJ0bi1wcmlt
YXJ5LmFjdGl2ZTpmb2N1cywuYnRuLXByaW1hcnkuYWN0aXZlOmhvdmVyLC5idG4tcHJpbWFyeTph
Y3RpdmUuZm9jdXMsLmJ0bi1wcmltYXJ5OmFjdGl2ZTpmb2N1cywuYnRuLXByaW1hcnk6YWN0aXZl
OmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkuZm9jdXMsLm9wZW4+LmRy
b3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0
bi1wcmltYXJ5OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjA0ZDc0O2JvcmRl
ci1jb2xvcjojMTIyYjQwfS5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1wcmltYXJ5OmFjdGl2ZSwu
b3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5e2JhY2tncm91bmQtaW1hZ2U6bm9uZX0u
YnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmFjdGl2ZSwuYnRuLXBy
aW1hcnkuZGlzYWJsZWQuZm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFjdGl2ZSwuYnRuLXBy
aW1hcnkuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5idG4tcHJp
bWFyeVtkaXNhYmxlZF0sLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5hY3RpdmUsLmJ0bi1wcmltYXJ5
W2Rpc2FibGVkXS5mb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmFjdGl2ZSwuYnRuLXByaW1h
cnlbZGlzYWJsZWRdOmZvY3VzLC5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRb
ZGlzYWJsZWRdIC5idG4tcHJpbWFyeSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmFj
dGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzLGZpZWxkc2V0W2Rpc2Fi
bGVkXSAuYnRuLXByaW1hcnk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6
Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kLWNv
bG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMyZTZkYTR9LmJ0bi1wcmltYXJ5IC5iYWRnZXtjb2xv
cjojMzM3YWI3O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLXN1Y2Nlc3N7Y29sb3I6I2ZmZjti
YWNrZ3JvdW5kLWNvbG9yOiM1Y2I4NWM7Ym9yZGVyLWNvbG9yOiM0Y2FlNGN9LmJ0bi1zdWNjZXNz
LmZvY3VzLC5idG4tc3VjY2Vzczpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0
OWQ0NDtib3JkZXItY29sb3I6IzI1NTYyNX0uYnRuLXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6I2ZmZjti
YWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDQ7Ym9yZGVyLWNvbG9yOiMzOTg0Mzl9LmJ0bi1zdWNjZXNz
LmFjdGl2ZSwuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1
Y2Nlc3N7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDQ7Ym9yZGVyLWNvbG9yOiMz
OTg0Mzl9LmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cywuYnRuLXN1Y2Nlc3MuYWN0aXZlOmZvY3Vz
LC5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsLmJ0bi1zdWNjZXNzOmFjdGl2ZS5mb2N1cywuYnRu
LXN1Y2Nlc3M6YWN0aXZlOmZvY3VzLC5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsLm9wZW4+LmRy
b3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzcy5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0
bi1zdWNjZXNzOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6aG92ZXJ7
Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzOTg0Mzk7Ym9yZGVyLWNvbG9yOiMyNTU2MjV9
LmJ0bi1zdWNjZXNzLmFjdGl2ZSwuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10
b2dnbGUuYnRuLXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tc3VjY2Vzcy5kaXNh
YmxlZCwuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQuYWN0aXZlLC5idG4tc3VjY2Vzcy5kaXNhYmxlZC5m
b2N1cywuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6YWN0aXZlLC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpm
b2N1cywuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXSwu
YnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmFjdGl2ZSwuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3Vz
LC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06YWN0aXZlLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06Zm9j
dXMsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1z
dWNjZXNzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuYWN0aXZlLGZpZWxkc2V0W2Rp
c2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vz
czphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpmb2N1cyxmaWVsZHNldFtk
aXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVjYjg1Yztib3Jk
ZXItY29sb3I6IzRjYWU0Y30uYnRuLXN1Y2Nlc3MgLmJhZGdle2NvbG9yOiM1Y2I4NWM7YmFja2dy
b3VuZC1jb2xvcjojZmZmfS5idG4taW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzVi
YzBkZTtib3JkZXItY29sb3I6IzQ2YjhkYX0uYnRuLWluZm8uZm9jdXMsLmJ0bi1pbmZvOmZvY3Vz
e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzFiMGQ1O2JvcmRlci1jb2xvcjojMWI2ZDg1
fS5idG4taW5mbzpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMxYjBkNTtib3Jk
ZXItY29sb3I6IzI2OWFiY30uYnRuLWluZm8uYWN0aXZlLC5idG4taW5mbzphY3RpdmUsLm9wZW4+
LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMx
YjBkNTtib3JkZXItY29sb3I6IzI2OWFiY30uYnRuLWluZm8uYWN0aXZlLmZvY3VzLC5idG4taW5m
by5hY3RpdmU6Zm9jdXMsLmJ0bi1pbmZvLmFjdGl2ZTpob3ZlciwuYnRuLWluZm86YWN0aXZlLmZv
Y3VzLC5idG4taW5mbzphY3RpdmU6Zm9jdXMsLmJ0bi1pbmZvOmFjdGl2ZTpob3Zlciwub3Blbj4u
ZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvLmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRu
LWluZm86Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpob3Zlcntjb2xvcjoj
ZmZmO2JhY2tncm91bmQtY29sb3I6IzI2OWFiYztib3JkZXItY29sb3I6IzFiNmQ4NX0uYnRuLWlu
Zm8uYWN0aXZlLC5idG4taW5mbzphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5m
b3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1pbmZvLmRpc2FibGVkLC5idG4taW5mby5kaXNh
YmxlZC5hY3RpdmUsLmJ0bi1pbmZvLmRpc2FibGVkLmZvY3VzLC5idG4taW5mby5kaXNhYmxlZDph
Y3RpdmUsLmJ0bi1pbmZvLmRpc2FibGVkOmZvY3VzLC5idG4taW5mby5kaXNhYmxlZDpob3Zlciwu
YnRuLWluZm9bZGlzYWJsZWRdLC5idG4taW5mb1tkaXNhYmxlZF0uYWN0aXZlLC5idG4taW5mb1tk
aXNhYmxlZF0uZm9jdXMsLmJ0bi1pbmZvW2Rpc2FibGVkXTphY3RpdmUsLmJ0bi1pbmZvW2Rpc2Fi
bGVkXTpmb2N1cywuYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAu
YnRuLWluZm8sZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5hY3RpdmUsZmllbGRzZXRbZGlz
YWJsZWRdIC5idG4taW5mby5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmFjdGl2
ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAu
YnRuLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWJjMGRlO2JvcmRlci1jb2xvcjojNDZi
OGRhfS5idG4taW5mbyAuYmFkZ2V7Y29sb3I6IzViYzBkZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9
LmJ0bi13YXJuaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZjBhZDRlO2JvcmRlci1j
b2xvcjojZWVhMjM2fS5idG4td2FybmluZy5mb2N1cywuYnRuLXdhcm5pbmc6Zm9jdXN7Y29sb3I6
I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlYzk3MWY7Ym9yZGVyLWNvbG9yOiM5ODVmMGR9LmJ0bi13
YXJuaW5nOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZWM5NzFmO2JvcmRlci1j
b2xvcjojZDU4NTEyfS5idG4td2FybmluZy5hY3RpdmUsLmJ0bi13YXJuaW5nOmFjdGl2ZSwub3Bl
bj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xv
cjojZWM5NzFmO2JvcmRlci1jb2xvcjojZDU4NTEyfS5idG4td2FybmluZy5hY3RpdmUuZm9jdXMs
LmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cywuYnRuLXdhcm5pbmcuYWN0aXZlOmhvdmVyLC5idG4t
d2FybmluZzphY3RpdmUuZm9jdXMsLmJ0bi13YXJuaW5nOmFjdGl2ZTpmb2N1cywuYnRuLXdhcm5p
bmc6YWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcuZm9jdXMs
Lm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cywub3Blbj4uZHJvcGRvd24t
dG9nZ2xlLmJ0bi13YXJuaW5nOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZDU4
NTEyO2JvcmRlci1jb2xvcjojOTg1ZjBkfS5idG4td2FybmluZy5hY3RpdmUsLmJ0bi13YXJuaW5n
OmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5ne2JhY2tncm91bmQtaW1h
Z2U6bm9uZX0uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nLmRpc2FibGVkLmFjdGl2
ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFjdGl2
ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVy
LC5idG4td2FybmluZ1tkaXNhYmxlZF0sLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5hY3RpdmUsLmJ0
bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmFjdGl2ZSwu
YnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLC5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIs
ZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13
YXJuaW5nLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzLGZpZWxk
c2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRu
LXdhcm5pbmc6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3ZlcntiYWNr
Z3JvdW5kLWNvbG9yOiNmMGFkNGU7Ym9yZGVyLWNvbG9yOiNlZWEyMzZ9LmJ0bi13YXJuaW5nIC5i
YWRnZXtjb2xvcjojZjBhZDRlO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWRhbmdlcntjb2xv
cjojZmZmO2JhY2tncm91bmQtY29sb3I6I2Q5NTM0Zjtib3JkZXItY29sb3I6I2Q0M2YzYX0uYnRu
LWRhbmdlci5mb2N1cywuYnRuLWRhbmdlcjpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29s
b3I6I2M5MzAyYztib3JkZXItY29sb3I6Izc2MWMxOX0uYnRuLWRhbmdlcjpob3Zlcntjb2xvcjoj
ZmZmO2JhY2tncm91bmQtY29sb3I6I2M5MzAyYztib3JkZXItY29sb3I6I2FjMjkyNX0uYnRuLWRh
bmdlci5hY3RpdmUsLmJ0bi1kYW5nZXI6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRu
LWRhbmdlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2M5MzAyYztib3JkZXItY29sb3I6
I2FjMjkyNX0uYnRuLWRhbmdlci5hY3RpdmUuZm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlOmZvY3Vz
LC5idG4tZGFuZ2VyLmFjdGl2ZTpob3ZlciwuYnRuLWRhbmdlcjphY3RpdmUuZm9jdXMsLmJ0bi1k
YW5nZXI6YWN0aXZlOmZvY3VzLC5idG4tZGFuZ2VyOmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRv
d24tdG9nZ2xlLmJ0bi1kYW5nZXIuZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFu
Z2VyOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpob3Zlcntjb2xvcjoj
ZmZmO2JhY2tncm91bmQtY29sb3I6I2FjMjkyNTtib3JkZXItY29sb3I6Izc2MWMxOX0uYnRuLWRh
bmdlci5hY3RpdmUsLmJ0bi1kYW5nZXI6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRu
LWRhbmdlcntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmJ0bi1k
YW5nZXIuZGlzYWJsZWQuYWN0aXZlLC5idG4tZGFuZ2VyLmRpc2FibGVkLmZvY3VzLC5idG4tZGFu
Z2VyLmRpc2FibGVkOmFjdGl2ZSwuYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cywuYnRuLWRhbmdl
ci5kaXNhYmxlZDpob3ZlciwuYnRuLWRhbmdlcltkaXNhYmxlZF0sLmJ0bi1kYW5nZXJbZGlzYWJs
ZWRdLmFjdGl2ZSwuYnRuLWRhbmdlcltkaXNhYmxlZF0uZm9jdXMsLmJ0bi1kYW5nZXJbZGlzYWJs
ZWRdOmFjdGl2ZSwuYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsLmJ0bi1kYW5nZXJbZGlzYWJs
ZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcixmaWVsZHNldFtkaXNhYmxl
ZF0gLmJ0bi1kYW5nZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5mb2N1
cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVk
XSAuYnRuLWRhbmdlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6aG92ZXJ7
YmFja2dyb3VuZC1jb2xvcjojZDk1MzRmO2JvcmRlci1jb2xvcjojZDQzZjNhfS5idG4tZGFuZ2Vy
IC5iYWRnZXtjb2xvcjojZDk1MzRmO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWxpbmt7Zm9u
dC13ZWlnaHQ6NDAwO2NvbG9yOiMzMzdhYjc7Ym9yZGVyLXJhZGl1czowfS5idG4tbGluaywuYnRu
LWxpbmsuYWN0aXZlLC5idG4tbGluazphY3RpdmUsLmJ0bi1saW5rW2Rpc2FibGVkXSxmaWVsZHNl
dFtkaXNhYmxlZF0gLmJ0bi1saW5re2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtp
dC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5idG4tbGluaywuYnRuLWxpbms6YWN0
aXZlLC5idG4tbGluazpmb2N1cywuYnRuLWxpbms6aG92ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFy
ZW50fS5idG4tbGluazpmb2N1cywuYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzIzNTI3Yzt0ZXh0LWRl
Y29yYXRpb246dW5kZXJsaW5lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1saW5r
W2Rpc2FibGVkXTpmb2N1cywuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2Fi
bGVkXSAuYnRuLWxpbms6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpob3Zlcntj
b2xvcjojNzc3O3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4tZ3JvdXAtbGc+LmJ0biwuYnRuLWxn
e3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzMzti
b3JkZXItcmFkaXVzOjZweH0uYnRuLWdyb3VwLXNtPi5idG4sLmJ0bi1zbXtwYWRkaW5nOjVweCAx
MHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOjNweH0uYnRu
LWdyb3VwLXhzPi5idG4sLmJ0bi14c3twYWRkaW5nOjFweCA1cHg7Zm9udC1zaXplOjEycHg7bGlu
ZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fS5idG4tYmxvY2t7ZGlzcGxheTpibG9jazt3
aWR0aDoxMDAlfS5idG4tYmxvY2srLmJ0bi1ibG9ja3ttYXJnaW4tdG9wOjVweH1pbnB1dFt0eXBl
PWJ1dHRvbl0uYnRuLWJsb2NrLGlucHV0W3R5cGU9cmVzZXRdLmJ0bi1ibG9jayxpbnB1dFt0eXBl
PXN1Ym1pdF0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmZhZGV7b3BhY2l0eTowOy13ZWJraXQtdHJh
bnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyOy1vLXRyYW5zaXRpb246b3BhY2l0eSAuMTVzIGxp
bmVhcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXJ9LmZhZGUuaW57b3BhY2l0eToxfS5j
b2xsYXBzZXtkaXNwbGF5Om5vbmV9LmNvbGxhcHNlLmlue2Rpc3BsYXk6YmxvY2t9dHIuY29sbGFw
c2UuaW57ZGlzcGxheTp0YWJsZS1yb3d9dGJvZHkuY29sbGFwc2UuaW57ZGlzcGxheTp0YWJsZS1y
b3ctZ3JvdXB9LmNvbGxhcHNpbmd7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7b3ZlcmZsb3c6
aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZTstby10cmFuc2l0
aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2U7
LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4zNXM7LW8tdHJhbnNpdGlvbi1kdXJhdGlvbjou
MzVzO3RyYW5zaXRpb24tZHVyYXRpb246LjM1czstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6
aGVpZ2h0LHZpc2liaWxpdHk7LW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTpoZWlnaHQsdmlzaWJpbGl0
eTt0cmFuc2l0aW9uLXByb3BlcnR5OmhlaWdodCx2aXNpYmlsaXR5fS5jYXJldHtkaXNwbGF5Omlu
bGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1sZWZ0OjJweDt2ZXJ0aWNhbC1hbGln
bjptaWRkbGU7Ym9yZGVyLXRvcDo0cHggZGFzaGVkO2JvcmRlci10b3A6NHB4IHNvbGlkXDk7Ym9y
ZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDo0cHggc29saWQgdHJh
bnNwYXJlbnR9LmRyb3Bkb3duLC5kcm9wdXB7cG9zaXRpb246cmVsYXRpdmV9LmRyb3Bkb3duLXRv
Z2dsZTpmb2N1c3tvdXRsaW5lOjB9LmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7dG9w
OjEwMCU7bGVmdDowO3otaW5kZXg6MTAwMDtkaXNwbGF5Om5vbmU7ZmxvYXQ6bGVmdDttaW4td2lk
dGg6MTYwcHg7cGFkZGluZzo1cHggMDttYXJnaW46MnB4IDAgMDtmb250LXNpemU6MTRweDt0ZXh0
LWFsaWduOmxlZnQ7bGlzdC1zdHlsZTpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0
LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7
Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO2Jv
cmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAs
LjE3NSk7Ym94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSl9LmRyb3Bkb3duLW1l
bnUucHVsbC1yaWdodHtyaWdodDowO2xlZnQ6YXV0b30uZHJvcGRvd24tbWVudSAuZGl2aWRlcnto
ZWlnaHQ6MXB4O21hcmdpbjo5cHggMDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjoj
ZTVlNWU1fS5kcm9wZG93bi1tZW51PmxpPmF7ZGlzcGxheTpibG9jaztwYWRkaW5nOjNweCAyMHB4
O2NsZWFyOmJvdGg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6
IzMzMzt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLW1lbnU+bGk+YTpmb2N1cywuZHJvcGRv
d24tbWVudT5saT5hOmhvdmVye2NvbG9yOiMyNjI2MjY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFj
a2dyb3VuZC1jb2xvcjojZjVmNWY1fS5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YSwuZHJvcGRvd24t
bWVudT4uYWN0aXZlPmE6Zm9jdXMsLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmhvdmVye2NvbG9y
OiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O291dGxp
bmU6MH0uZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+
YTpmb2N1cywuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3Zlcntjb2xvcjojNzc3fS5kcm9w
ZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmhv
dmVye3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNv
bG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtmaWx0ZXI6cHJvZ2lkOkRYSW1h
Z2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpfS5vcGVuPi5kcm9w
ZG93bi1tZW51e2Rpc3BsYXk6YmxvY2t9Lm9wZW4+YXtvdXRsaW5lOjB9LmRyb3Bkb3duLW1lbnUt
cmlnaHR7cmlnaHQ6MDtsZWZ0OmF1dG99LmRyb3Bkb3duLW1lbnUtbGVmdHtyaWdodDphdXRvO2xl
ZnQ6MH0uZHJvcGRvd24taGVhZGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozcHggMjBweDtmb250
LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO2NvbG9yOiM3Nzc7d2hpdGUtc3BhY2U6
bm93cmFwfS5kcm9wZG93bi1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2Jv
dHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5MH0ucHVsbC1yaWdodD4uZHJvcGRvd24tbWVudXtyaWdo
dDowO2xlZnQ6YXV0b30uZHJvcHVwIC5jYXJldCwubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRv
d24gLmNhcmV0e2NvbnRlbnQ6IiI7Ym9yZGVyLXRvcDowO2JvcmRlci1ib3R0b206NHB4IGRhc2hl
ZDtib3JkZXItYm90dG9tOjRweCBzb2xpZFw5fS5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsLm5hdmJh
ci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRvbTox
MDAlO21hcmdpbi1ib3R0b206MnB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLXJp
Z2h0IC5kcm9wZG93bi1tZW51e3JpZ2h0OjA7bGVmdDphdXRvfS5uYXZiYXItcmlnaHQgLmRyb3Bk
b3duLW1lbnUtbGVmdHtyaWdodDphdXRvO2xlZnQ6MH19LmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZl
cnRpY2Fse3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFs
aWduOm1pZGRsZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cD4uYnRue3Bvc2l0
aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnR9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLmFjdGl2ZSwu
YnRuLWdyb3VwLXZlcnRpY2FsPi5idG46YWN0aXZlLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpm
b2N1cywuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46aG92ZXIsLmJ0bi1ncm91cD4uYnRuLmFjdGl2
ZSwuYnRuLWdyb3VwPi5idG46YWN0aXZlLC5idG4tZ3JvdXA+LmJ0bjpmb2N1cywuYnRuLWdyb3Vw
Pi5idG46aG92ZXJ7ei1pbmRleDoyfS5idG4tZ3JvdXAgLmJ0bisuYnRuLC5idG4tZ3JvdXAgLmJ0
bisuYnRuLWdyb3VwLC5idG4tZ3JvdXAgLmJ0bi1ncm91cCsuYnRuLC5idG4tZ3JvdXAgLmJ0bi1n
cm91cCsuYnRuLWdyb3Vwe21hcmdpbi1sZWZ0Oi0xcHh9LmJ0bi10b29sYmFye21hcmdpbi1sZWZ0
Oi01cHh9LmJ0bi10b29sYmFyIC5idG4sLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsLmJ0bi10b29s
YmFyIC5pbnB1dC1ncm91cHtmbG9hdDpsZWZ0fS5idG4tdG9vbGJhcj4uYnRuLC5idG4tdG9vbGJh
cj4uYnRuLWdyb3VwLC5idG4tdG9vbGJhcj4uaW5wdXQtZ3JvdXB7bWFyZ2luLWxlZnQ6NXB4fS5i
dG4tZ3JvdXA+LmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJv
cGRvd24tdG9nZ2xlKXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cD4uYnRuOmZpcnN0LWNoaWxk
e21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cD4uYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGls
ZCk6bm90KC5kcm9wZG93bi10b2dnbGUpe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVy
LWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG46bGFzdC1jaGlsZDpub3QoOmZp
cnN0LWNoaWxkKSwuYnRuLWdyb3VwPi5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCl7
Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRu
LWdyb3VwPi5idG4tZ3JvdXB7ZmxvYXQ6bGVmdH0uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bm90KDpm
aXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2JvcmRlci1yYWRpdXM6MH0uYnRuLWdy
b3VwPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3QtY2hp
bGQsLmJ0bi1ncm91cD4uYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+LmRy
b3Bkb3duLXRvZ2dsZXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzOjB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1j
aGlsZCk+LmJ0bjpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJv
dHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsLmJ0
bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGV7b3V0bGluZTowfS5idG4tZ3JvdXA+LmJ0bisu
ZHJvcGRvd24tdG9nZ2xle3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDo4cHh9LmJ0bi1n
cm91cD4uYnRuLWxnKy5kcm9wZG93bi10b2dnbGV7cGFkZGluZy1yaWdodDoxMnB4O3BhZGRpbmct
bGVmdDoxMnB4fS5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xley13ZWJraXQtYm94LXNo
YWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KTtib3gtc2hhZG93Omluc2V0IDAg
M3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpfS5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xl
LmJ0bi1saW5rey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uYnRuIC5j
YXJldHttYXJnaW4tbGVmdDowfS5idG4tbGcgLmNhcmV0e2JvcmRlci13aWR0aDo1cHggNXB4IDA7
Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5kcm9wdXAgLmJ0bi1sZyAuY2FyZXR7Ym9yZGVyLXdpZHRo
OjAgNXB4IDVweH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4u
YnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91cD4uYnRue2Rpc3BsYXk6Ymxv
Y2s7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS5idG4tZ3JvdXAtdmVydGlj
YWw+LmJ0bi1ncm91cD4uYnRue2Zsb2F0Om5vbmV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuKy5i
dG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNh
bD4uYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwKy5idG4tZ3Jv
dXB7bWFyZ2luLXRvcDotMXB4O21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRu
Om5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXJhZGl1czowfS5idG4t
Z3JvdXAtdmVydGljYWw+LmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci10
b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1i
b3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bGFzdC1jaGlsZDpu
b3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdo
dC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH0uYnRuLWdyb3VwLXZlcnRp
Y2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2Jv
cmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6
bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3QtY2hpbGQsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRu
LWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+LmRyb3Bkb3duLXRvZ2dsZXtib3Jk
ZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRu
LWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKT4u
YnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0
LXJhZGl1czowfS5idG4tZ3JvdXAtanVzdGlmaWVke2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTt0
YWJsZS1sYXlvdXQ6Zml4ZWQ7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5idG4tZ3JvdXAtanVz
dGlmaWVkPi5idG4sLmJ0bi1ncm91cC1qdXN0aWZpZWQ+LmJ0bi1ncm91cHtkaXNwbGF5OnRhYmxl
LWNlbGw7ZmxvYXQ6bm9uZTt3aWR0aDoxJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3Vw
IC5idG57d2lkdGg6MTAwJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5kcm9wZG93
bi1tZW51e2xlZnQ6YXV0b31bZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBlPWNo
ZWNrYm94XSxbZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBlPXJhZGlvXSxbZGF0
YS10b2dnbGU9YnV0dG9uc10+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdLFtk
YXRhLXRvZ2dsZT1idXR0b25zXT4uYnRuLWdyb3VwPi5idG4gaW5wdXRbdHlwZT1yYWRpb117cG9z
aXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmV9Lmlu
cHV0LWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6dGFibGU7Ym9yZGVyLWNvbGxhcHNl
OnNlcGFyYXRlfS5pbnB1dC1ncm91cFtjbGFzcyo9Y29sLV17ZmxvYXQ6bm9uZTtwYWRkaW5nLXJp
Z2h0OjA7cGFkZGluZy1sZWZ0OjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2x7cG9zaXRpb246
cmVsYXRpdmU7ei1pbmRleDoyO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjB9
LmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91
cC1hZGRvbiwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDo0NnB4
O3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzMzti
b3JkZXItcmFkaXVzOjZweH1zZWxlY3QuaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbCxzZWxl
Y3QuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdC5pbnB1dC1ncm91cC1s
Zz4uaW5wdXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweH1zZWxl
Y3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsc2VsZWN0W211bHRpcGxl
XS5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24sc2VsZWN0W211bHRpcGxlXS5pbnB1
dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYnRuPi5idG4sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+
LmZvcm0tY29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24s
dGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDphdXRv
fS5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3Jv
dXAtYWRkb24sLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6MzBw
eDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXIt
cmFkaXVzOjNweH1zZWxlY3QuaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCxzZWxlY3QuaW5w
dXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdC5pbnB1dC1ncm91cC1zbT4uaW5w
dXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzBweH1zZWxlY3RbbXVs
dGlwbGVdLmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wsc2VsZWN0W211bHRpcGxlXS5pbnB1
dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYWRkb24sc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91
cC1zbT4uaW5wdXQtZ3JvdXAtYnRuPi5idG4sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmZvcm0t
Y29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYWRkb24sdGV4dGFy
ZWEuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDphdXRvfS5pbnB1
dC1ncm91cCAuZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1hZGRvbiwuaW5wdXQtZ3JvdXAtYnRu
e2Rpc3BsYXk6dGFibGUtY2VsbH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZpcnN0
LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmZpcnN0LWNo
aWxkKTpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6
bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uLC5pbnB1
dC1ncm91cC1idG57d2lkdGg6MSU7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOm1p
ZGRsZX0uaW5wdXQtZ3JvdXAtYWRkb257cGFkZGluZzo2cHggMTJweDtmb250LXNpemU6MTRweDtm
b250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojNTU1O3RleHQtYWxpZ246Y2VudGVy
O2JhY2tncm91bmQtY29sb3I6I2VlZTtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1
czo0cHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNte3BhZGRpbmc6NXB4IDEwcHg7Zm9udC1z
aXplOjEycHg7Ym9yZGVyLXJhZGl1czozcHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxne3Bh
ZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2JvcmRlci1yYWRpdXM6NnB4fS5pbnB1dC1n
cm91cC1hZGRvbiBpbnB1dFt0eXBlPWNoZWNrYm94XSwuaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRb
dHlwZT1yYWRpb117bWFyZ2luLXRvcDowfS5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0
LWNoaWxkLC5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCwuaW5wdXQtZ3JvdXAtYnRuOmZp
cnN0LWNoaWxkPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLWdyb3VwPi5i
dG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uZHJvcGRvd24tdG9nZ2xlLC5pbnB1dC1n
cm91cC1idG46bGFzdC1jaGlsZD4uYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuaW5w
dXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRv
d24tdG9nZ2xlKXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQt
cmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodDowfS5p
bnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsLmlucHV0LWdyb3VwLWFkZG9uOmxh
c3QtY2hpbGQsLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLWdyb3VwOm5vdCg6Zmly
c3QtY2hpbGQpPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuOm5vdCg6Zmly
c3QtY2hpbGQpLC5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLC5pbnB1dC1ncm91cC1i
dG46bGFzdC1jaGlsZD4uYnRuLWdyb3VwPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxk
Pi5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20t
bGVmdC1yYWRpdXM6MH0uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZHtib3JkZXItbGVmdDow
fS5pbnB1dC1ncm91cC1idG57cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjA7d2hpdGUtc3Bh
Y2U6bm93cmFwfS5pbnB1dC1ncm91cC1idG4+LmJ0bntwb3NpdGlvbjpyZWxhdGl2ZX0uaW5wdXQt
Z3JvdXAtYnRuPi5idG4rLmJ0bnttYXJnaW4tbGVmdDotMXB4fS5pbnB1dC1ncm91cC1idG4+LmJ0
bjphY3RpdmUsLmlucHV0LWdyb3VwLWJ0bj4uYnRuOmZvY3VzLC5pbnB1dC1ncm91cC1idG4+LmJ0
bjpob3Zlcnt6LWluZGV4OjJ9LmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLC5pbnB1
dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cHttYXJnaW4tcmlnaHQ6LTFweH0uaW5w
dXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0biwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+
LmJ0bi1ncm91cHt6LWluZGV4OjI7bWFyZ2luLWxlZnQ6LTFweH0ubmF2e3BhZGRpbmctbGVmdDow
O21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9Lm5hdj5saXtwb3NpdGlvbjpyZWxhdGl2
ZTtkaXNwbGF5OmJsb2NrfS5uYXY+bGk+YXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2Nr
O3BhZGRpbmc6MTBweCAxNXB4fS5uYXY+bGk+YTpmb2N1cywubmF2PmxpPmE6aG92ZXJ7dGV4dC1k
ZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5uYXY+bGkuZGlzYWJsZWQ+YXtj
b2xvcjojNzc3fS5uYXY+bGkuZGlzYWJsZWQ+YTpmb2N1cywubmF2PmxpLmRpc2FibGVkPmE6aG92
ZXJ7Y29sb3I6Izc3Nzt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFj
a2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2IC5vcGVuPmEsLm5hdiAub3Blbj5hOmZvY3Vz
LC5uYXYgLm9wZW4+YTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyLWNvbG9yOiMz
MzdhYjd9Lm5hdiAubmF2LWRpdmlkZXJ7aGVpZ2h0OjFweDttYXJnaW46OXB4IDA7b3ZlcmZsb3c6
aGlkZGVuO2JhY2tncm91bmQtY29sb3I6I2U1ZTVlNX0ubmF2PmxpPmE+aW1ne21heC13aWR0aDpu
b25lfS5uYXYtdGFic3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS5uYXYtdGFicz5saXtm
bG9hdDpsZWZ0O21hcmdpbi1ib3R0b206LTFweH0ubmF2LXRhYnM+bGk+YXttYXJnaW4tcmlnaHQ6
MnB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDti
b3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5uYXYtdGFicz5saT5hOmhvdmVye2JvcmRlci1jb2xv
cjojZWVlICNlZWUgI2RkZH0ubmF2LXRhYnM+bGkuYWN0aXZlPmEsLm5hdi10YWJzPmxpLmFjdGl2
ZT5hOmZvY3VzLC5uYXYtdGFicz5saS5hY3RpdmU+YTpob3Zlcntjb2xvcjojNTU1O2N1cnNvcjpk
ZWZhdWx0O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVy
LWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZHt3aWR0aDox
MDAlO2JvcmRlci1ib3R0b206MH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saXtmbG9hdDpub25l
fS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTo1cHg7dGV4dC1hbGln
bjpjZW50ZXJ9Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51
e3RvcDphdXRvO2xlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLm5h
di1qdXN0aWZpZWQ+bGl7ZGlzcGxheTp0YWJsZS1jZWxsO3dpZHRoOjElfS5uYXYtdGFicy5uYXYt
anVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTowfX0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5s
aT5he21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6NHB4fS5uYXYtdGFicy5uYXYtanVzdGlm
aWVkPi5hY3RpdmU+YSwubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXMsLm5h
di10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2Rk
ZH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGk+YXti
b3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9Lm5h
di10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hLC5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5h
Y3RpdmU+YTpmb2N1cywubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXJ7Ym9y
ZGVyLWJvdHRvbS1jb2xvcjojZmZmfX0ubmF2LXBpbGxzPmxpe2Zsb2F0OmxlZnR9Lm5hdi1waWxs
cz5saT5he2JvcmRlci1yYWRpdXM6NHB4fS5uYXYtcGlsbHM+bGkrbGl7bWFyZ2luLWxlZnQ6MnB4
fS5uYXYtcGlsbHM+bGkuYWN0aXZlPmEsLm5hdi1waWxscz5saS5hY3RpdmU+YTpmb2N1cywubmF2
LXBpbGxzPmxpLmFjdGl2ZT5hOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzM3
YWI3fS5uYXYtc3RhY2tlZD5saXtmbG9hdDpub25lfS5uYXYtc3RhY2tlZD5saStsaXttYXJnaW4t
dG9wOjJweDttYXJnaW4tbGVmdDowfS5uYXYtanVzdGlmaWVke3dpZHRoOjEwMCV9Lm5hdi1qdXN0
aWZpZWQ+bGl7ZmxvYXQ6bm9uZX0ubmF2LWp1c3RpZmllZD5saT5he21hcmdpbi1ib3R0b206NXB4
O3RleHQtYWxpZ246Y2VudGVyfS5uYXYtanVzdGlmaWVkPi5kcm9wZG93biAuZHJvcGRvd24tbWVu
dXt0b3A6YXV0bztsZWZ0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtanVzdGlm
aWVkPmxpe2Rpc3BsYXk6dGFibGUtY2VsbDt3aWR0aDoxJX0ubmF2LWp1c3RpZmllZD5saT5he21h
cmdpbi1ib3R0b206MH19Lm5hdi10YWJzLWp1c3RpZmllZHtib3JkZXItYm90dG9tOjB9Lm5hdi10
YWJzLWp1c3RpZmllZD5saT5he21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6NHB4fS5uYXYt
dGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5hLC5uYXYtdGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmZv
Y3VzLC5uYXYtdGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVye2JvcmRlcjoxcHggc29saWQg
I2RkZH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLWp1c3RpZmllZD5saT5he2Jv
cmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo0cHggNHB4IDAgMH0ubmF2
LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YTpm
b2N1cywubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YTpob3Zlcntib3JkZXItYm90dG9tLWNv
bG9yOiNmZmZ9fS50YWItY29udGVudD4udGFiLXBhbmV7ZGlzcGxheTpub25lfS50YWItY29udGVu
dD4uYWN0aXZle2Rpc3BsYXk6YmxvY2t9Lm5hdi10YWJzIC5kcm9wZG93bi1tZW51e21hcmdpbi10
b3A6LTFweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6
MH0ubmF2YmFye3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6NTBweDttYXJnaW4tYm90dG9t
OjIwcHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH1AbWVkaWEgKG1pbi13aWR0aDo3Njhw
eCl7Lm5hdmJhcntib3JkZXItcmFkaXVzOjRweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5u
YXZiYXItaGVhZGVye2Zsb2F0OmxlZnR9fS5uYXZiYXItY29sbGFwc2V7cGFkZGluZy1yaWdodDox
NXB4O3BhZGRpbmctbGVmdDoxNXB4O292ZXJmbG93LXg6dmlzaWJsZTstd2Via2l0LW92ZXJmbG93
LXNjcm9sbGluZzp0b3VjaDtib3JkZXItdG9wOjFweCBzb2xpZCB0cmFuc3BhcmVudDstd2Via2l0
LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtib3gtc2hhZG93
Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm5hdmJhci1jb2xsYXBzZS5pbntv
dmVyZmxvdy15OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItY29sbGFwc2V7
d2lkdGg6YXV0bztib3JkZXItdG9wOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRv
dzpub25lfS5uYXZiYXItY29sbGFwc2UuY29sbGFwc2V7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7
aGVpZ2h0OmF1dG8haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjA7b3ZlcmZsb3c6dmlzaWJsZSFp
bXBvcnRhbnR9Lm5hdmJhci1jb2xsYXBzZS5pbntvdmVyZmxvdy15OnZpc2libGV9Lm5hdmJhci1m
aXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNv
bGxhcHNlLC5uYXZiYXItc3RhdGljLXRvcCAubmF2YmFyLWNvbGxhcHNle3BhZGRpbmctcmlnaHQ6
MDtwYWRkaW5nLWxlZnQ6MH19Lm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSwu
bmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MzQwcHh9QG1lZGlh
IChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm5h
dmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLXRvcCAubmF2
YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MjAwcHh9fS5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1j
b2xsYXBzZSwuY29udGFpbmVyLWZsdWlkPi5uYXZiYXItaGVhZGVyLC5jb250YWluZXI+Lm5hdmJh
ci1jb2xsYXBzZSwuY29udGFpbmVyPi5uYXZiYXItaGVhZGVye21hcmdpbi1yaWdodDotMTVweDtt
YXJnaW4tbGVmdDotMTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbnRhaW5lci1mbHVp
ZD4ubmF2YmFyLWNvbGxhcHNlLC5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1oZWFkZXIsLmNvbnRh
aW5lcj4ubmF2YmFyLWNvbGxhcHNlLC5jb250YWluZXI+Lm5hdmJhci1oZWFkZXJ7bWFyZ2luLXJp
Z2h0OjA7bWFyZ2luLWxlZnQ6MH19Lm5hdmJhci1zdGF0aWMtdG9we3otaW5kZXg6MTAwMDtib3Jk
ZXItd2lkdGg6MCAwIDFweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1zdGF0aWMt
dG9we2JvcmRlci1yYWRpdXM6MH19Lm5hdmJhci1maXhlZC1ib3R0b20sLm5hdmJhci1maXhlZC10
b3B7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoxMDMwfUBtZWRpYSAobWlu
LXdpZHRoOjc2OHB4KXsubmF2YmFyLWZpeGVkLWJvdHRvbSwubmF2YmFyLWZpeGVkLXRvcHtib3Jk
ZXItcmFkaXVzOjB9fS5uYXZiYXItZml4ZWQtdG9we3RvcDowO2JvcmRlci13aWR0aDowIDAgMXB4
fS5uYXZiYXItZml4ZWQtYm90dG9te2JvdHRvbTowO21hcmdpbi1ib3R0b206MDtib3JkZXItd2lk
dGg6MXB4IDAgMH0ubmF2YmFyLWJyYW5ke2Zsb2F0OmxlZnQ7aGVpZ2h0OjUwcHg7cGFkZGluZzox
NXB4IDE1cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjBweH0ubmF2YmFyLWJyYW5kOmZv
Y3VzLC5uYXZiYXItYnJhbmQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdmJhci1icmFu
ZD5pbWd7ZGlzcGxheTpibG9ja31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhcj4uY29u
dGFpbmVyIC5uYXZiYXItYnJhbmQsLm5hdmJhcj4uY29udGFpbmVyLWZsdWlkIC5uYXZiYXItYnJh
bmR7bWFyZ2luLWxlZnQ6LTE1cHh9fS5uYXZiYXItdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Zs
b2F0OnJpZ2h0O3BhZGRpbmc6OXB4IDEwcHg7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLXJpZ2h0OjE1
cHg7bWFyZ2luLWJvdHRvbTo4cHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3Jv
dW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVz
OjRweH0ubmF2YmFyLXRvZ2dsZTpmb2N1c3tvdXRsaW5lOjB9Lm5hdmJhci10b2dnbGUgLmljb24t
YmFye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjJweDtoZWlnaHQ6MnB4O2JvcmRlci1yYWRpdXM6MXB4
fS5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcisuaWNvbi1iYXJ7bWFyZ2luLXRvcDo0cHh9QG1lZGlh
IChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItdG9nZ2xle2Rpc3BsYXk6bm9uZX19Lm5hdmJhci1u
YXZ7bWFyZ2luOjcuNXB4IC0xNXB4fS5uYXZiYXItbmF2PmxpPmF7cGFkZGluZy10b3A6MTBweDtw
YWRkaW5nLWJvdHRvbToxMHB4O2xpbmUtaGVpZ2h0OjIwcHh9QG1lZGlhIChtYXgtd2lkdGg6NzY3
cHgpey5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOnN0YXRpYztmbG9h
dDpub25lO3dpZHRoOmF1dG87bWFyZ2luLXRvcDowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJl
bnQ7Ym9yZGVyOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5uYXZi
YXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIsLm5hdmJhci1uYXYg
Lm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YXtwYWRkaW5nOjVweCAxNXB4IDVweCAyNXB4fS5uYXZi
YXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmF7bGluZS1oZWlnaHQ6MjBweH0ubmF2YmFy
LW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5uYXZiYXItbmF2IC5vcGVuIC5k
cm9wZG93bi1tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTpub25lfX1AbWVkaWEgKG1p
bi13aWR0aDo3NjhweCl7Lm5hdmJhci1uYXZ7ZmxvYXQ6bGVmdDttYXJnaW46MH0ubmF2YmFyLW5h
dj5saXtmbG9hdDpsZWZ0fS5uYXZiYXItbmF2PmxpPmF7cGFkZGluZy10b3A6MTVweDtwYWRkaW5n
LWJvdHRvbToxNXB4fX0ubmF2YmFyLWZvcm17cGFkZGluZzoxMHB4IDE1cHg7bWFyZ2luLXRvcDo4
cHg7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1ib3R0b206OHB4O21hcmdpbi1sZWZ0Oi0xNXB4
O2JvcmRlci10b3A6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlk
IHRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1
NSwyNTUsLjEpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym94LXNoYWRvdzppbnNldCAw
IDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSl9
QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZm9ybSAuZm9ybS1ncm91cHtkaXNwbGF5
OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZi
YXItZm9ybSAuZm9ybS1jb250cm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87dmVy
dGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpY3tkaXNw
bGF5OmlubGluZS1ibG9ja30ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3Vwe2Rpc3BsYXk6aW5saW5l
LXRhYmxlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5m
b3JtLWNvbnRyb2wsLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24s
Lm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRue3dpZHRoOmF1dG99Lm5h
dmJhci1mb3JtIC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9se3dpZHRoOjEwMCV9Lm5hdmJhci1m
b3JtIC5jb250cm9sLWxhYmVse21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9
Lm5hdmJhci1mb3JtIC5jaGVja2JveCwubmF2YmFyLWZvcm0gLnJhZGlve2Rpc3BsYXk6aW5saW5l
LWJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxl
fS5uYXZiYXItZm9ybSAuY2hlY2tib3ggbGFiZWwsLm5hdmJhci1mb3JtIC5yYWRpbyBsYWJlbHtw
YWRkaW5nLWxlZnQ6MH0ubmF2YmFyLWZvcm0gLmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hd
LC5uYXZiYXItZm9ybSAucmFkaW8gaW5wdXRbdHlwZT1yYWRpb117cG9zaXRpb246cmVsYXRpdmU7
bWFyZ2luLWxlZnQ6MH0ubmF2YmFyLWZvcm0gLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZl
ZWRiYWNre3RvcDowfX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhci1mb3JtIC5mb3Jt
LWdyb3Vwe21hcmdpbi1ib3R0b206NXB4fS5uYXZiYXItZm9ybSAuZm9ybS1ncm91cDpsYXN0LWNo
aWxke21hcmdpbi1ib3R0b206MH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZm9y
bXt3aWR0aDphdXRvO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDttYXJnaW4tcmlnaHQ6
MDttYXJnaW4tbGVmdDowO2JvcmRlcjowOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFk
b3c6bm9uZX19Lm5hdmJhci1uYXY+bGk+LmRyb3Bkb3duLW1lbnV7bWFyZ2luLXRvcDowO2JvcmRl
ci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5uYXZiYXItZml4
ZWQtYm90dG9tIC5uYXZiYXItbmF2PmxpPi5kcm9wZG93bi1tZW51e21hcmdpbi1ib3R0b206MDti
b3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7Ym9y
ZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9Lm5h
dmJhci1idG57bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWJvdHRvbTo4cHh9Lm5hdmJhci1idG4uYnRu
LXNte21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHh9Lm5hdmJhci1idG4uYnRuLXhz
e21hcmdpbi10b3A6MTRweDttYXJnaW4tYm90dG9tOjE0cHh9Lm5hdmJhci10ZXh0e21hcmdpbi10
b3A6MTVweDttYXJnaW4tYm90dG9tOjE1cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZi
YXItdGV4dHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1sZWZ0OjE1cHh9fUBt
ZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9
Lm5hdmJhci1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0Oi0xNXB4fS5u
YXZiYXItcmlnaHR+Lm5hdmJhci1yaWdodHttYXJnaW4tcmlnaHQ6MH19Lm5hdmJhci1kZWZhdWx0
e2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtib3JkZXItY29sb3I6I2U3ZTdlN30ubmF2YmFyLWRl
ZmF1bHQgLm5hdmJhci1icmFuZHtjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJy
YW5kOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmhvdmVye2NvbG9yOiM1ZTVl
NWU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10
ZXh0e2NvbG9yOiM3Nzd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2PmxpPmF7Y29sb3I6Izc3
N30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+bGk+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQg
Lm5hdmJhci1uYXY+bGk+YTpob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6dHJhbnNw
YXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWRlZmF1
bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5h
dj4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6IzU1NTtiYWNrZ3JvdW5kLWNvbG9yOiNlN2U3ZTd9Lm5h
dmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hLC5uYXZiYXItZGVmYXVsdCAubmF2
YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+LmRp
c2FibGVkPmE6aG92ZXJ7Y29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5u
YXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZXtib3JkZXItY29sb3I6I2RkZH0ubmF2YmFyLWRl
ZmF1bHQgLm5hdmJhci10b2dnbGU6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xl
OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RkZH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dn
bGUgLmljb24tYmFye2JhY2tncm91bmQtY29sb3I6Izg4OH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJh
ci1jb2xsYXBzZSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3Jte2JvcmRlci1jb2xvcjojZTdl
N2U3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4ub3Blbj5hLC5uYXZiYXItZGVmYXVsdCAu
bmF2YmFyLW5hdj4ub3Blbj5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4ub3Bl
bj5hOmhvdmVye2NvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojZTdlN2U3fUBtZWRpYSAobWF4
LXdpZHRoOjc2N3B4KXsubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3du
LW1lbnU+bGk+YXtjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAu
ZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3Bl
biAuZHJvcGRvd24tbWVudT5saT5hOmhvdmVye2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjp0
cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1l
bnU+LmFjdGl2ZT5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24t
bWVudT4uYWN0aXZlPmE6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5k
cm9wZG93bi1tZW51Pi5hY3RpdmU+YTpob3Zlcntjb2xvcjojNTU1O2JhY2tncm91bmQtY29sb3I6
I2U3ZTdlN30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+
LmRpc2FibGVkPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1t
ZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAu
ZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3Zlcntjb2xvcjojY2NjO2JhY2tncm91bmQtY29s
b3I6dHJhbnNwYXJlbnR9fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbmt7Y29sb3I6Izc3N30u
bmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rOmhvdmVye2NvbG9yOiMzMzN9Lm5hdmJhci1kZWZh
dWx0IC5idG4tbGlua3tjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXMs
Lm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcntjb2xvcjojMzMzfS5uYXZiYXItZGVmYXVs
dCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlz
YWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5r
OmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVy
e2NvbG9yOiNjY2N9Lm5hdmJhci1pbnZlcnNle2JhY2tncm91bmQtY29sb3I6IzIyMjtib3JkZXIt
Y29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZHtjb2xvcjojOWQ5ZDlk
fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAubmF2
YmFyLWJyYW5kOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0u
bmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0e2NvbG9yOiM5ZDlkOWR9Lm5hdmJhci1pbnZlcnNl
IC5uYXZiYXItbmF2PmxpPmF7Y29sb3I6IzlkOWQ5ZH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1u
YXY+bGk+YTpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+bGk+YTpob3Zlcntjb2xv
cjojZmZmO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1pbnZlcnNlIC5uYXZi
YXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmFjdGl2ZT5hOmZv
Y3VzLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I2Zm
ZjtiYWNrZ3JvdW5kLWNvbG9yOiMwODA4MDh9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5k
aXNhYmxlZD5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1cywu
bmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmRpc2FibGVkPmE6aG92ZXJ7Y29sb3I6IzQ0NDti
YWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2ds
ZXtib3JkZXItY29sb3I6IzMzM30ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGU6Zm9jdXMs
Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzMz
M30ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUgLmljb24tYmFye2JhY2tncm91bmQtY29s
b3I6I2ZmZn0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWludmVyc2Ug
Lm5hdmJhci1mb3Jte2JvcmRlci1jb2xvcjojMTAxMDEwfS5uYXZiYXItaW52ZXJzZSAubmF2YmFy
LW5hdj4ub3Blbj5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4ub3Blbj5hOmZvY3VzLC5u
YXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4ub3Blbj5hOmhvdmVye2NvbG9yOiNmZmY7YmFja2dy
b3VuZC1jb2xvcjojMDgwODA4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubmF2YmFyLWludmVy
c2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRyb3Bkb3duLWhlYWRlcntib3Jk
ZXItY29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bk
b3duLW1lbnUgLmRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojMDgwODA4fS5uYXZiYXItaW52ZXJz
ZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5he2NvbG9yOiM5ZDlkOWR9Lm5h
dmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6Zm9jdXMs
Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6aG92
ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJz
ZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmEsLm5hdmJhci1pbnZl
cnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpmb2N1cywubmF2
YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmhv
dmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDgwODA4fS5uYXZiYXItaW52ZXJzZSAu
bmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwubmF2YmFyLWludmVy
c2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6Zm9jdXMsLm5h
dmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5h
OmhvdmVye2NvbG9yOiM0NDQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH19Lm5hdmJhci1p
bnZlcnNlIC5uYXZiYXItbGlua3tjb2xvcjojOWQ5ZDlkfS5uYXZiYXItaW52ZXJzZSAubmF2YmFy
LWxpbms6aG92ZXJ7Y29sb3I6I2ZmZn0ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5re2NvbG9yOiM5
ZDlkOWR9Lm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1cywubmF2YmFyLWludmVyc2UgLmJ0
bi1saW5rOmhvdmVye2NvbG9yOiNmZmZ9Lm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxl
ZF06Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsZmllbGRz
ZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMsZmllbGRzZXRbZGlz
YWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzQ0NH0uYnJlYWRj
cnVtYntwYWRkaW5nOjhweCAxNXB4O21hcmdpbi1ib3R0b206MjBweDtsaXN0LXN0eWxlOm5vbmU7
YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1yYWRpdXM6NHB4fS5icmVhZGNydW1iPmxp
e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5icmVhZGNydW1iPmxpK2xpOmJlZm9yZXtwYWRkaW5nOjAg
NXB4O2NvbG9yOiNjY2M7Y29udGVudDoiL1wwMGEwIn0uYnJlYWRjcnVtYj4uYWN0aXZle2NvbG9y
OiM3Nzd9LnBhZ2luYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjA7bWFy
Z2luOjIwcHggMDtib3JkZXItcmFkaXVzOjRweH0ucGFnaW5hdGlvbj5saXtkaXNwbGF5OmlubGlu
ZX0ucGFnaW5hdGlvbj5saT5hLC5wYWdpbmF0aW9uPmxpPnNwYW57cG9zaXRpb246cmVsYXRpdmU7
ZmxvYXQ6bGVmdDtwYWRkaW5nOjZweCAxMnB4O21hcmdpbi1sZWZ0Oi0xcHg7bGluZS1oZWlnaHQ6
MS40Mjg1NzE0Mztjb2xvcjojMzM3YWI3O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQt
Y29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGR9LnBhZ2luYXRpb24+bGk6Zmlyc3QtY2hp
bGQ+YSwucGFnaW5hdGlvbj5saTpmaXJzdC1jaGlsZD5zcGFue21hcmdpbi1sZWZ0OjA7Ym9yZGVy
LXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHh9LnBhZ2lu
YXRpb24+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0aW9uPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3Jk
ZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5w
YWdpbmF0aW9uPmxpPmE6Zm9jdXMsLnBhZ2luYXRpb24+bGk+YTpob3ZlciwucGFnaW5hdGlvbj5s
aT5zcGFuOmZvY3VzLC5wYWdpbmF0aW9uPmxpPnNwYW46aG92ZXJ7ei1pbmRleDozO2NvbG9yOiMy
MzUyN2M7YmFja2dyb3VuZC1jb2xvcjojZWVlO2JvcmRlci1jb2xvcjojZGRkfS5wYWdpbmF0aW9u
Pi5hY3RpdmU+YSwucGFnaW5hdGlvbj4uYWN0aXZlPmE6Zm9jdXMsLnBhZ2luYXRpb24+LmFjdGl2
ZT5hOmhvdmVyLC5wYWdpbmF0aW9uPi5hY3RpdmU+c3BhbiwucGFnaW5hdGlvbj4uYWN0aXZlPnNw
YW46Zm9jdXMsLnBhZ2luYXRpb24+LmFjdGl2ZT5zcGFuOmhvdmVye3otaW5kZXg6Mjtjb2xvcjoj
ZmZmO2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQtY29sb3I6IzMzN2FiNztib3JkZXItY29sb3I6
IzMzN2FiN30ucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YSwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YTpm
b2N1cywucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YTpob3ZlciwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+
c3BhbiwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+c3Bhbjpmb2N1cywucGFnaW5hdGlvbj4uZGlzYWJs
ZWQ+c3Bhbjpob3Zlcntjb2xvcjojNzc3O2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNv
bG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkZGR9LnBhZ2luYXRpb24tbGc+bGk+YSwucGFnaW5hdGlv
bi1sZz5saT5zcGFue3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0
OjEuMzMzMzMzM30ucGFnaW5hdGlvbi1sZz5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLWxn
PmxpOmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJv
dHRvbS1sZWZ0LXJhZGl1czo2cHh9LnBhZ2luYXRpb24tbGc+bGk6bGFzdC1jaGlsZD5hLC5wYWdp
bmF0aW9uLWxnPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7
Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4fS5wYWdpbmF0aW9uLXNtPmxpPmEsLnBhZ2lu
YXRpb24tc20+bGk+c3BhbntwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVp
Z2h0OjEuNX0ucGFnaW5hdGlvbi1zbT5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLXNtPmxp
OmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRv
bS1sZWZ0LXJhZGl1czozcHh9LnBhZ2luYXRpb24tc20+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0
aW9uLXNtPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9y
ZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYWdlcntwYWRkaW5nLWxlZnQ6MDttYXJnaW46
MjBweCAwO3RleHQtYWxpZ246Y2VudGVyO2xpc3Qtc3R5bGU6bm9uZX0ucGFnZXIgbGl7ZGlzcGxh
eTppbmxpbmV9LnBhZ2VyIGxpPmEsLnBhZ2VyIGxpPnNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7
cGFkZGluZzo1cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAj
ZGRkO2JvcmRlci1yYWRpdXM6MTVweH0ucGFnZXIgbGk+YTpmb2N1cywucGFnZXIgbGk+YTpob3Zl
cnt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LnBhZ2VyIC5uZXh0
PmEsLnBhZ2VyIC5uZXh0PnNwYW57ZmxvYXQ6cmlnaHR9LnBhZ2VyIC5wcmV2aW91cz5hLC5wYWdl
ciAucHJldmlvdXM+c3BhbntmbG9hdDpsZWZ0fS5wYWdlciAuZGlzYWJsZWQ+YSwucGFnZXIgLmRp
c2FibGVkPmE6Zm9jdXMsLnBhZ2VyIC5kaXNhYmxlZD5hOmhvdmVyLC5wYWdlciAuZGlzYWJsZWQ+
c3Bhbntjb2xvcjojNzc3O2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9
LmxhYmVse2Rpc3BsYXk6aW5saW5lO3BhZGRpbmc6LjJlbSAuNmVtIC4zZW07Zm9udC1zaXplOjc1
JTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2Vu
dGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtib3JkZXItcmFk
aXVzOi4yNWVtfWEubGFiZWw6Zm9jdXMsYS5sYWJlbDpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVj
b3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyfS5sYWJlbDplbXB0eXtkaXNwbGF5Om5vbmV9LmJ0
biAubGFiZWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHh9LmxhYmVsLWRlZmF1bHR7YmFja2dy
b3VuZC1jb2xvcjojNzc3fS5sYWJlbC1kZWZhdWx0W2hyZWZdOmZvY3VzLC5sYWJlbC1kZWZhdWx0
W2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVlNWU1ZX0ubGFiZWwtcHJpbWFyeXtiYWNr
Z3JvdW5kLWNvbG9yOiMzMzdhYjd9LmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXMsLmxhYmVsLXBy
aW1hcnlbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjg2MDkwfS5sYWJlbC1zdWNjZXNz
e2JhY2tncm91bmQtY29sb3I6IzVjYjg1Y30ubGFiZWwtc3VjY2Vzc1tocmVmXTpmb2N1cywubGFi
ZWwtc3VjY2Vzc1tocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDR9LmxhYmVsLWlu
Zm97YmFja2dyb3VuZC1jb2xvcjojNWJjMGRlfS5sYWJlbC1pbmZvW2hyZWZdOmZvY3VzLC5sYWJl
bC1pbmZvW2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzMxYjBkNX0ubGFiZWwtd2Fybmlu
Z3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGFkNGV9LmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXMsLmxh
YmVsLXdhcm5pbmdbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWM5NzFmfS5sYWJlbC1k
YW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZDk1MzRmfS5sYWJlbC1kYW5nZXJbaHJlZl06Zm9jdXMs
LmxhYmVsLWRhbmdlcltocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjOTMwMmN9LmJhZGdl
e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDoxMHB4O3BhZGRpbmc6M3B4IDdweDtmb250
LXNpemU6MTJweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO3RleHQt
YWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFj
a2dyb3VuZC1jb2xvcjojNzc3O2JvcmRlci1yYWRpdXM6MTBweH0uYmFkZ2U6ZW1wdHl7ZGlzcGxh
eTpub25lfS5idG4gLmJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4fS5idG4tZ3JvdXAt
eHM+LmJ0biAuYmFkZ2UsLmJ0bi14cyAuYmFkZ2V7dG9wOjA7cGFkZGluZzoxcHggNXB4fWEuYmFk
Z2U6Zm9jdXMsYS5iYWRnZTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2N1
cnNvcjpwb2ludGVyfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlPi5iYWRnZSwubmF2LXBpbGxzPi5h
Y3RpdmU+YT4uYmFkZ2V7Y29sb3I6IzMzN2FiNztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmxpc3Qt
Z3JvdXAtaXRlbT4uYmFkZ2V7ZmxvYXQ6cmlnaHR9Lmxpc3QtZ3JvdXAtaXRlbT4uYmFkZ2UrLmJh
ZGdle21hcmdpbi1yaWdodDo1cHh9Lm5hdi1waWxscz5saT5hPi5iYWRnZXttYXJnaW4tbGVmdDoz
cHh9Lmp1bWJvdHJvbntwYWRkaW5nLXRvcDozMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7bWFyZ2lu
LWJvdHRvbTozMHB4O2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5qdW1ib3Ry
b24gLmgxLC5qdW1ib3Ryb24gaDF7Y29sb3I6aW5oZXJpdH0uanVtYm90cm9uIHB7bWFyZ2luLWJv
dHRvbToxNXB4O2ZvbnQtc2l6ZToyMXB4O2ZvbnQtd2VpZ2h0OjIwMH0uanVtYm90cm9uPmhye2Jv
cmRlci10b3AtY29sb3I6I2Q1ZDVkNX0uY29udGFpbmVyIC5qdW1ib3Ryb24sLmNvbnRhaW5lci1m
bHVpZCAuanVtYm90cm9ue2JvcmRlci1yYWRpdXM6NnB4fS5qdW1ib3Ryb24gLmNvbnRhaW5lcntt
YXgtd2lkdGg6MTAwJX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OHB4KXsuanVtYm90
cm9ue3BhZGRpbmctdG9wOjQ4cHg7cGFkZGluZy1ib3R0b206NDhweH0uY29udGFpbmVyIC5qdW1i
b3Ryb24sLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9ue3BhZGRpbmctcmlnaHQ6NjBweDtwYWRk
aW5nLWxlZnQ6NjBweH0uanVtYm90cm9uIC5oMSwuanVtYm90cm9uIGgxe2ZvbnQtc2l6ZTo2M3B4
fX0udGh1bWJuYWlse2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo0cHg7bWFyZ2luLWJvdHRvbToyMHB4
O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHgg
c29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyIC4y
cyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOmJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNp
dGlvbjpib3JkZXIgLjJzIGVhc2UtaW4tb3V0fS50aHVtYm5haWwgYT5pbWcsLnRodW1ibmFpbD5p
bWd7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b31hLnRodW1ibmFpbC5hY3RpdmUs
YS50aHVtYm5haWw6Zm9jdXMsYS50aHVtYm5haWw6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzMzdhYjd9
LnRodW1ibmFpbCAuY2FwdGlvbntwYWRkaW5nOjlweDtjb2xvcjojMzMzfS5hbGVydHtwYWRkaW5n
OjE1cHg7bWFyZ2luLWJvdHRvbToyMHB4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9y
ZGVyLXJhZGl1czo0cHh9LmFsZXJ0IGg0e21hcmdpbi10b3A6MDtjb2xvcjppbmhlcml0fS5hbGVy
dCAuYWxlcnQtbGlua3tmb250LXdlaWdodDo3MDB9LmFsZXJ0PnAsLmFsZXJ0PnVse21hcmdpbi1i
b3R0b206MH0uYWxlcnQ+cCtwe21hcmdpbi10b3A6NXB4fS5hbGVydC1kaXNtaXNzYWJsZSwuYWxl
cnQtZGlzbWlzc2libGV7cGFkZGluZy1yaWdodDozNXB4fS5hbGVydC1kaXNtaXNzYWJsZSAuY2xv
c2UsLmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZXtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJweDty
aWdodDotMjFweDtjb2xvcjppbmhlcml0fS5hbGVydC1zdWNjZXNze2NvbG9yOiMzYzc2M2Q7YmFj
a2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1jb2xvcjojZDZlOWM2fS5hbGVydC1zdWNjZXNz
IGhye2JvcmRlci10b3AtY29sb3I6I2M5ZTJiM30uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGlua3tj
b2xvcjojMmI1NDJjfS5hbGVydC1pbmZve2NvbG9yOiMzMTcwOGY7YmFja2dyb3VuZC1jb2xvcjoj
ZDllZGY3O2JvcmRlci1jb2xvcjojYmNlOGYxfS5hbGVydC1pbmZvIGhye2JvcmRlci10b3AtY29s
b3I6I2E2ZTFlY30uYWxlcnQtaW5mbyAuYWxlcnQtbGlua3tjb2xvcjojMjQ1MjY5fS5hbGVydC13
YXJuaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzO2JvcmRlci1jb2xv
cjojZmFlYmNjfS5hbGVydC13YXJuaW5nIGhye2JvcmRlci10b3AtY29sb3I6I2Y3ZTFiNX0uYWxl
cnQtd2FybmluZyAuYWxlcnQtbGlua3tjb2xvcjojNjY1MTJjfS5hbGVydC1kYW5nZXJ7Y29sb3I6
I2E5NDQ0MjtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWNvbG9yOiNlYmNjZDF9LmFs
ZXJ0LWRhbmdlciBocntib3JkZXItdG9wLWNvbG9yOiNlNGI5YzB9LmFsZXJ0LWRhbmdlciAuYWxl
cnQtbGlua3tjb2xvcjojODQzNTM0fUAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3Ry
aXBlc3tmcm9te2JhY2tncm91bmQtcG9zaXRpb246NDBweCAwfXRve2JhY2tncm91bmQtcG9zaXRp
b246MCAwfX1ALW8ta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVze2Zyb217YmFja2dyb3Vu
ZC1wb3NpdGlvbjo0MHB4IDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9fUBrZXlmcmFtZXMg
cHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjQwcHggMH10b3ti
YWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19LnByb2dyZXNze2hlaWdodDoyMHB4O21hcmdpbi1ib3R0
b206MjBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1y
YWRpdXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwu
MSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSl9LnByb2dyZXNzLWJh
cntmbG9hdDpsZWZ0O3dpZHRoOjA7aGVpZ2h0OjEwMCU7Zm9udC1zaXplOjEycHg7bGluZS1oZWln
aHQ6MjBweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzMz
N2FiNzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpO2Jv
eC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpOy13ZWJraXQtdHJhbnNpdGlv
bjp3aWR0aCAuNnMgZWFzZTstby10cmFuc2l0aW9uOndpZHRoIC42cyBlYXNlO3RyYW5zaXRpb246
d2lkdGggLjZzIGVhc2V9LnByb2dyZXNzLWJhci1zdHJpcGVkLC5wcm9ncmVzcy1zdHJpcGVkIC5w
cm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRl
ZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1
MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRy
YW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3Jh
ZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJh
bnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwu
MTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQg
MjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1
NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTstd2Via2l0LWJhY2tn
cm91bmQtc2l6ZTo0MHB4IDQwcHg7YmFja2dyb3VuZC1zaXplOjQwcHggNDBweH0ucHJvZ3Jlc3Mt
YmFyLmFjdGl2ZSwucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXJ7LXdlYmtpdC1hbmltYXRp
b246cHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlOy1vLWFuaW1hdGlvbjpw
cm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnByb2dyZXNz
LWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZX0ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3N7YmFj
a2dyb3VuZC1jb2xvcjojNWNiODVjfS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItc3Vj
Y2Vzc3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEo
MjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2Jh
KDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJl
bnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0
NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVu
dCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUl
LHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3Jh
ZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJh
bnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwu
MTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy1iYXItaW5mb3ti
YWNrZ3JvdW5kLWNvbG9yOiM1YmMwZGV9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1p
bmZve2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgy
NTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEo
MjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVu
dCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KDQ1
ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50
IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUs
dHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFk
aWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFu
c3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4x
NSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci13YXJuaW5n
e2JhY2tncm91bmQtY29sb3I6I2YwYWQ0ZX0ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFy
LXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZyxy
Z2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1MCUs
cmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRyYW5z
cGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGll
bnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNw
YXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUp
IDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFy
LWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUl
LHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwy
NTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MtYmFyLWRh
bmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOTUzNGZ9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNz
LWJhci1kYW5nZXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRl
ZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1
MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRy
YW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3Jh
ZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJh
bnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwu
MTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQg
MjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1
NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KX0ubWVkaWF7bWFyZ2lu
LXRvcDoxNXB4fS5tZWRpYTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1lZGlhLC5tZWRpYS1i
b2R5e292ZXJmbG93OmhpZGRlbjt6b29tOjF9Lm1lZGlhLWJvZHl7d2lkdGg6MTAwMDBweH0ubWVk
aWEtb2JqZWN0e2Rpc3BsYXk6YmxvY2t9Lm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlse21heC13
aWR0aDpub25lfS5tZWRpYS1yaWdodCwubWVkaWE+LnB1bGwtcmlnaHR7cGFkZGluZy1sZWZ0OjEw
cHh9Lm1lZGlhLWxlZnQsLm1lZGlhPi5wdWxsLWxlZnR7cGFkZGluZy1yaWdodDoxMHB4fS5tZWRp
YS1ib2R5LC5tZWRpYS1sZWZ0LC5tZWRpYS1yaWdodHtkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGlj
YWwtYWxpZ246dG9wfS5tZWRpYS1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tZWRpYS1i
b3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5tZWRpYS1oZWFkaW5ne21hcmdpbi10b3A6MDtt
YXJnaW4tYm90dG9tOjVweH0ubWVkaWEtbGlzdHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5v
bmV9Lmxpc3QtZ3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbToyMHB4fS5saXN0LWdy
b3VwLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHggMTVw
eDttYXJnaW4tYm90dG9tOi0xcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29s
aWQgI2RkZH0ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRp
dXM6NHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0ubGlzdC1ncm91cC1pdGVtOmxhc3Qt
Y2hpbGR7bWFyZ2luLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDtib3Jk
ZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH1hLmxpc3QtZ3JvdXAtaXRlbSxidXR0b24ubGlzdC1n
cm91cC1pdGVte2NvbG9yOiM1NTV9YS5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1o
ZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2Nv
bG9yOiMzMzN9YS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW06aG92ZXIs
YnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtOmhvdmVy
e2NvbG9yOiM1NTU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1
fWJ1dHRvbi5saXN0LWdyb3VwLWl0ZW17d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnR9Lmxpc3Qt
Z3JvdXAtaXRlbS5kaXNhYmxlZCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzLC5saXN0
LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXJ7Y29sb3I6Izc3NztjdXJzb3I6bm90LWFsbG93ZWQ7
YmFja2dyb3VuZC1jb2xvcjojZWVlfS5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3Jv
dXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMgLmxpc3QtZ3Jv
dXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3Jv
dXAtaXRlbS1oZWFkaW5ne2NvbG9yOmluaGVyaXR9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAu
bGlzdC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlz
dC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1n
cm91cC1pdGVtLXRleHR7Y29sb3I6Izc3N30ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSwubGlzdC1n
cm91cC1pdGVtLmFjdGl2ZTpmb2N1cywubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcnt6LWlu
ZGV4OjI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMz
MzdhYjd9Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLC5s
aXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz4uc21hbGwsLmxp
c3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPnNtYWxsLC5saXN0
LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywubGlzdC1n
cm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+LnNtYWxsLC5s
aXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz5zbWFs
bCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcs
Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPi5z
bWFsbCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRp
bmc+c21hbGx7Y29sb3I6aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91
cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRl
bS10ZXh0LC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4
dHtjb2xvcjojYzdkZGVmfS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojM2M3NjNkO2Jh
Y2tncm91bmQtY29sb3I6I2RmZjBkOH1hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLGJ1dHRvbi5s
aXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojM2M3NjNkfWEubGlzdC1ncm91cC1pdGVtLXN1
Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3Vj
Y2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH1hLmxpc3QtZ3JvdXAt
aXRlbS1zdWNjZXNzOmZvY3VzLGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsYnV0dG9u
Lmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3Vj
Y2Vzczpob3Zlcntjb2xvcjojM2M3NjNkO2JhY2tncm91bmQtY29sb3I6I2QwZTljNn1hLmxpc3Qt
Z3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2
ZTpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixidXR0b24ubGlz
dC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vz
cy5hY3RpdmU6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3Zl
cntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzNjNzYzZDtib3JkZXItY29sb3I6IzNjNzYz
ZH0ubGlzdC1ncm91cC1pdGVtLWluZm97Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9yOiNk
OWVkZjd9YS5saXN0LWdyb3VwLWl0ZW0taW5mbyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm97
Y29sb3I6IzMxNzA4Zn1hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVh
ZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5n
e2NvbG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxhLmxpc3QtZ3JvdXAt
aXRlbS1pbmZvOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxidXR0b24u
bGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXJ7Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9y
OiNjNGUzZjN9YS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsYS5saXN0LWdyb3VwLWl0ZW0t
aW5mby5hY3RpdmU6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsYnV0
dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxidXR0b24ubGlzdC1ncm91cC1pdGVtLWlu
Zm8uYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXJ7
Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMTcwOGY7Ym9yZGVyLWNvbG9yOiMzMTcwOGZ9
Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjoj
ZmNmOGUzfWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13
YXJuaW5ne2NvbG9yOiM4YTZkM2J9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91
cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3Vw
LWl0ZW0taGVhZGluZ3tjb2xvcjppbmhlcml0fWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9j
dXMsYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVt
LXdhcm5pbmc6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVye2NvbG9y
OiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmFmMmNjfWEubGlzdC1ncm91cC1pdGVtLXdhcm5p
bmcuYWN0aXZlLGEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLGEubGlzdC1n
cm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2Fy
bmluZy5hY3RpdmUsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyxi
dXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVye2NvbG9yOiNmZmY7YmFj
a2dyb3VuZC1jb2xvcjojOGE2ZDNiO2JvcmRlci1jb2xvcjojOGE2ZDNifS5saXN0LWdyb3VwLWl0
ZW0tZGFuZ2Vye2NvbG9yOiNhOTQ0NDI7YmFja2dyb3VuZC1jb2xvcjojZjJkZWRlfWEubGlzdC1n
cm91cC1pdGVtLWRhbmdlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcntjb2xvcjojYTk0
NDQyfWEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsYnV0
dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2NvbG9y
OmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLGEubGlzdC1ncm91cC1pdGVt
LWRhbmdlcjpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyxidXR0b24u
bGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3Zlcntjb2xvcjojYTk0NDQyO2JhY2tncm91bmQtY29s
b3I6I2ViY2NjY31hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLGEubGlzdC1ncm91cC1p
dGVtLWRhbmdlci5hY3RpdmU6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpo
b3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsYnV0dG9uLmxpc3QtZ3Jv
dXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2Vy
LmFjdGl2ZTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2E5NDQ0Mjtib3JkZXIt
Y29sb3I6I2E5NDQ0Mn0ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7bWFyZ2luLXRvcDowO21hcmdp
bi1ib3R0b206NXB4fS5saXN0LWdyb3VwLWl0ZW0tdGV4dHttYXJnaW4tYm90dG9tOjA7bGluZS1o
ZWlnaHQ6MS4zfS5wYW5lbHttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZm
O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1i
b3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzowIDFweCAxcHgg
cmdiYSgwLDAsMCwuMDUpfS5wYW5lbC1ib2R5e3BhZGRpbmc6MTVweH0ucGFuZWwtaGVhZGluZ3tw
YWRkaW5nOjEwcHggMTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3Jk
ZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9LnBhbmVs
LWhlYWRpbmc+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6aW5oZXJpdH0ucGFuZWwt
dGl0bGV7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6MTZweDtjb2xvcjpp
bmhlcml0fS5wYW5lbC10aXRsZT4uc21hbGwsLnBhbmVsLXRpdGxlPi5zbWFsbD5hLC5wYW5lbC10
aXRsZT5hLC5wYW5lbC10aXRsZT5zbWFsbCwucGFuZWwtdGl0bGU+c21hbGw+YXtjb2xvcjppbmhl
cml0fS5wYW5lbC1mb290ZXJ7cGFkZGluZzoxMHB4IDE1cHg7YmFja2dyb3VuZC1jb2xvcjojZjVm
NWY1O2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6
M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS5wYW5lbD4ubGlzdC1ncm91cCwucGFu
ZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3Vwe21hcmdpbi1ib3R0b206MH0ucGFuZWw+Lmxp
c3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSwucGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdy
b3VwIC5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXdpZHRoOjFweCAwO2JvcmRlci1yYWRpdXM6MH0u
cGFuZWw+Lmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGls
ZCwucGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdy
b3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6
M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0ucGFuZWw+Lmxpc3QtZ3JvdXA6bGFzdC1j
aGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQsLnBhbmVsPi5wYW5lbC1jb2xsYXBzZT4u
bGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZHtib3JkZXIt
Ym90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVm
dC1yYWRpdXM6M3B4fS5wYW5lbD4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+Lmxpc3Qt
Z3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVz
OjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ucGFuZWwtaGVhZGluZysubGlzdC1ncm91cCAu
bGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ubGlzdC1ncm91
cCsucGFuZWwtZm9vdGVye2JvcmRlci10b3Atd2lkdGg6MH0ucGFuZWw+LnBhbmVsLWNvbGxhcHNl
Pi50YWJsZSwucGFuZWw+LnRhYmxlLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGV7bWFy
Z2luLWJvdHRvbTowfS5wYW5lbD4ucGFuZWwtY29sbGFwc2U+LnRhYmxlIGNhcHRpb24sLnBhbmVs
Pi50YWJsZSBjYXB0aW9uLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUgY2FwdGlvbntw
YWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHh9LnBhbmVsPi50YWJsZS1yZXNwb25z
aXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNo
aWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNw
eH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxk
PnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2
ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmly
c3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpm
aXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRy
OmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQt
cmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZp
cnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxk
LC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+
dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50
YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJz
dC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3Bv
bnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRy
OmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJv
ZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJs
ZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1j
aGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0
LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmly
c3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJh
ZGl1czozcHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJz
dC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLC5w
YW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJv
ZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxl
LXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNo
aWxkPnRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZl
OmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJz
dC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmly
c3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0
LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBh
bmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0
ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+
dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9
LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQsLnBh
bmVsPi50YWJsZTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3Jk
ZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1j
aGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQsLnBh
bmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6
bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTps
YXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRmb290Omxh
c3QtY2hpbGQ+dHI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7Ym9y
ZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3Qt
Y2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRk
OmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkPi50YWJsZTps
YXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwu
cGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9v
dDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1y
ZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50
cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9k
eTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTps
YXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwu
cGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRk
OmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRy
Omxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9
LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJv
ZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1y
ZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50
cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3Qt
Y2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRk
Omxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxh
c3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBh
bmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0ZDps
YXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxh
c3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFz
dC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNo
aWxkPnRmb290Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxke2JvcmRlci1i
b3R0b20tcmlnaHQtcmFkaXVzOjNweH0ucGFuZWw+LnBhbmVsLWJvZHkrLnRhYmxlLC5wYW5lbD4u
cGFuZWwtYm9keSsudGFibGUtcmVzcG9uc2l2ZSwucGFuZWw+LnRhYmxlKy5wYW5lbC1ib2R5LC5w
YW5lbD4udGFibGUtcmVzcG9uc2l2ZSsucGFuZWwtYm9keXtib3JkZXItdG9wOjFweCBzb2xpZCAj
ZGRkfS5wYW5lbD4udGFibGU+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQsLnBh
bmVsPi50YWJsZT50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aHtib3JkZXItdG9w
OjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxl
LWJvcmRlcmVke2JvcmRlcjowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGQ6Zmly
c3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGlsZCwu
cGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFi
bGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJl
ZD50aGVhZD50cj50ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRy
PnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+
dGJvZHk+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1i
b3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+
LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVz
cG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50
YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpmaXJzdC1jaGlsZCwu
cGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmZpcnN0
LWNoaWxke2JvcmRlci1sZWZ0OjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDps
YXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwu
cGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJs
ZS1ib3JkZXJlZD50Zm9vdD50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+
dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRo
Omxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9k
eT50cj50ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVy
ZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxl
LWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZl
Pi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVz
cG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGR7Ym9y
ZGVyLXJpZ2h0OjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpmaXJzdC1jaGlsZD50
ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRoLC5wYW5lbD4u
dGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1ib3Jk
ZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRh
YmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVzcG9u
c2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJs
ZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwucGFu
ZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyOmZpcnN0LWNoaWxk
PnRoe2JvcmRlci1ib3R0b206MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3Qt
Y2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRoLC5w
YW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxl
LWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZl
Pi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVz
cG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50aCwucGFuZWw+LnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGQsLnBh
bmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cjpsYXN0LWNoaWxk
PnRoe2JvcmRlci1ib3R0b206MH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmV7bWFyZ2luLWJvdHRv
bTowO2JvcmRlcjowfS5wYW5lbC1ncm91cHttYXJnaW4tYm90dG9tOjIwcHh9LnBhbmVsLWdyb3Vw
IC5wYW5lbHttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXJhZGl1czo0cHh9LnBhbmVsLWdyb3VwIC5w
YW5lbCsucGFuZWx7bWFyZ2luLXRvcDo1cHh9LnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5ne2Jv
cmRlci1ib3R0b206MH0ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNl
Pi5saXN0LWdyb3VwLC5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+
LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZH0ucGFuZWwtZ3JvdXAgLnBhbmVs
LWZvb3Rlcntib3JkZXItdG9wOjB9LnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIrLnBhbmVsLWNv
bGxhcHNlIC5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGR9LnBhbmVsLWRl
ZmF1bHR7Ym9yZGVyLWNvbG9yOiNkZGR9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmd7Y29s
b3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLWNvbG9yOiNkZGR9LnBhbmVs
LWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRl
ci10b3AtY29sb3I6I2RkZH0ucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7Y29s
b3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWZv
b3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGRk
fS5wYW5lbC1wcmltYXJ5e2JvcmRlci1jb2xvcjojMzM3YWI3fS5wYW5lbC1wcmltYXJ5Pi5wYW5l
bC1oZWFkaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O2JvcmRlci1jb2xv
cjojMzM3YWI3fS5wYW5lbC1wcmltYXJ5Pi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4u
cGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiMzMzdhYjd9LnBhbmVsLXByaW1hcnk+LnBhbmVs
LWhlYWRpbmcgLmJhZGdle2NvbG9yOiMzMzdhYjc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wYW5l
bC1wcmltYXJ5Pi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRl
ci1ib3R0b20tY29sb3I6IzMzN2FiN30ucGFuZWwtc3VjY2Vzc3tib3JkZXItY29sb3I6I2Q2ZTlj
Nn0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwtaGVhZGluZ3tjb2xvcjojM2M3NjNkO2JhY2tncm91bmQt
Y29sb3I6I2RmZjBkODtib3JkZXItY29sb3I6I2Q2ZTljNn0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwt
aGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjojZDZl
OWM2fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZGZmMGQ4O2Jh
Y2tncm91bmQtY29sb3I6IzNjNzYzZH0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwtZm9vdGVyKy5wYW5l
bC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNkNmU5YzZ9LnBhbmVs
LWluZm97Ym9yZGVyLWNvbG9yOiNiY2U4ZjF9LnBhbmVsLWluZm8+LnBhbmVsLWhlYWRpbmd7Y29s
b3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9yOiNkOWVkZjc7Ym9yZGVyLWNvbG9yOiNiY2U4ZjF9
LnBhbmVsLWluZm8+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2Jv
cmRlci10b3AtY29sb3I6I2JjZThmMX0ucGFuZWwtaW5mbz4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7
Y29sb3I6I2Q5ZWRmNztiYWNrZ3JvdW5kLWNvbG9yOiMzMTcwOGZ9LnBhbmVsLWluZm8+LnBhbmVs
LWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjoj
YmNlOGYxfS5wYW5lbC13YXJuaW5ne2JvcmRlci1jb2xvcjojZmFlYmNjfS5wYW5lbC13YXJuaW5n
Pi5wYW5lbC1oZWFkaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzO2Jv
cmRlci1jb2xvcjojZmFlYmNjfS5wYW5lbC13YXJuaW5nPi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1j
b2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNmYWViY2N9LnBhbmVsLXdhcm5p
bmc+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiNmY2Y4ZTM7YmFja2dyb3VuZC1jb2xvcjoj
OGE2ZDNifS5wYW5lbC13YXJuaW5nPi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5l
bC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2ZhZWJjY30ucGFuZWwtZGFuZ2Vye2JvcmRlci1j
b2xvcjojZWJjY2QxfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWhlYWRpbmd7Y29sb3I6I2E5NDQ0Mjti
YWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWNvbG9yOiNlYmNjZDF9LnBhbmVsLWRhbmdl
cj4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1j
b2xvcjojZWJjY2QxfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiNm
MmRlZGU7YmFja2dyb3VuZC1jb2xvcjojYTk0NDQyfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWZvb3Rl
cisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZWJjY2Qx
fS5lbWJlZC1yZXNwb25zaXZle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0
OjA7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbn0uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVz
cG9uc2l2ZS1pdGVtLC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLC5lbWJlZC1yZXNwb25zaXZlIGlm
cmFtZSwuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW97cG9z
aXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEw
MCU7Ym9yZGVyOjB9LmVtYmVkLXJlc3BvbnNpdmUtMTZieTl7cGFkZGluZy1ib3R0b206NTYuMjUl
fS5lbWJlZC1yZXNwb25zaXZlLTRieTN7cGFkZGluZy1ib3R0b206NzUlfS53ZWxse21pbi1oZWln
aHQ6MjBweDtwYWRkaW5nOjE5cHg7bWFyZ2luLWJvdHRvbToyMHB4O2JhY2tncm91bmQtY29sb3I6
I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNlM2UzZTM7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtp
dC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzpp
bnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpfS53ZWxsIGJsb2NrcXVvdGV7Ym9yZGVyLWNv
bG9yOiNkZGQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjE1KX0ud2VsbC1sZ3twYWRkaW5nOjI0
cHg7Ym9yZGVyLXJhZGl1czo2cHh9LndlbGwtc217cGFkZGluZzo5cHg7Ym9yZGVyLXJhZGl1czoz
cHh9LmNsb3Nle2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToyMXB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5l
LWhlaWdodDoxO2NvbG9yOiMwMDA7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO2ZpbHRlcjphbHBo
YShvcGFjaXR5PTIwKTtvcGFjaXR5Oi4yfS5jbG9zZTpmb2N1cywuY2xvc2U6aG92ZXJ7Y29sb3I6
IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtmaWx0ZXI6YWxwaGEob3Bh
Y2l0eT01MCk7b3BhY2l0eTouNX1idXR0b24uY2xvc2V7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7
cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowfS5tb2RhbC1v
cGVue292ZXJmbG93OmhpZGRlbn0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDti
b3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6bm9uZTtvdmVyZmxvdzpoaWRkZW47
LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7b3V0bGluZTowfS5tb2RhbC5mYWRlIC5t
b2RhbC1kaWFsb2d7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBlYXNl
LW91dDstby10cmFuc2l0aW9uOi1vLXRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0
cmFuc2Zvcm0gLjNzIGVhc2Utb3V0Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0yNSUp
Oy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgw
LC0yNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMjUlKX0ubW9kYWwuaW4gLm1vZGFsLWRpYWxv
Z3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0
ZSgwLDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAs
MCl9Lm1vZGFsLW9wZW4gLm1vZGFse292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0b30u
bW9kYWwtZGlhbG9ne3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87bWFyZ2luOjEwcHh9Lm1v
ZGFsLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13ZWJr
aXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJv
eDtib3JkZXI6MXB4IHNvbGlkICM5OTk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTti
b3JkZXItcmFkaXVzOjZweDtvdXRsaW5lOjA7LXdlYmtpdC1ib3gtc2hhZG93OjAgM3B4IDlweCBy
Z2JhKDAsMCwwLC41KTtib3gtc2hhZG93OjAgM3B4IDlweCByZ2JhKDAsMCwwLC41KX0ubW9kYWwt
YmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1p
bmRleDoxMDQwO2JhY2tncm91bmQtY29sb3I6IzAwMH0ubW9kYWwtYmFja2Ryb3AuZmFkZXtmaWx0
ZXI6YWxwaGEob3BhY2l0eT0wKTtvcGFjaXR5OjB9Lm1vZGFsLWJhY2tkcm9wLmlue2ZpbHRlcjph
bHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5Oi41fS5tb2RhbC1oZWFkZXJ7bWluLWhlaWdodDoxNi40
M3B4O3BhZGRpbmc6MTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1fS5tb2RhbC1o
ZWFkZXIgLmNsb3Nle21hcmdpbi10b3A6LTJweH0ubW9kYWwtdGl0bGV7bWFyZ2luOjA7bGluZS1o
ZWlnaHQ6MS40Mjg1NzE0M30ubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjE1
cHh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOjE1cHg7dGV4dC1hbGlnbjpyaWdodDtib3JkZXItdG9w
OjFweCBzb2xpZCAjZTVlNWU1fS5tb2RhbC1mb290ZXIgLmJ0bisuYnRue21hcmdpbi1ib3R0b206
MDttYXJnaW4tbGVmdDo1cHh9Lm1vZGFsLWZvb3RlciAuYnRuLWdyb3VwIC5idG4rLmJ0bnttYXJn
aW4tbGVmdDotMXB4fS5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jaysuYnRuLWJsb2Nre21hcmdpbi1s
ZWZ0OjB9Lm1vZGFsLXNjcm9sbGJhci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5
OXB4O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6c2Nyb2xsfUBtZWRpYSAobWluLXdp
ZHRoOjc2OHB4KXsubW9kYWwtZGlhbG9ne3dpZHRoOjYwMHB4O21hcmdpbjozMHB4IGF1dG99Lm1v
ZGFsLWNvbnRlbnR7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDE1cHggcmdiYSgwLDAsMCwuNSk7
Ym94LXNoYWRvdzowIDVweCAxNXB4IHJnYmEoMCwwLDAsLjUpfS5tb2RhbC1zbXt3aWR0aDozMDBw
eH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5tb2RhbC1sZ3t3aWR0aDo5MDBweH19LnRvb2x0
aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDcwO2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1p
bHk6IkhlbHZldGljYSBOZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6
MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS40Mjg1
NzE0Mzt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9u
ZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9y
bWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d29yZC13cmFwOm5vcm1h
bDt3aGl0ZS1zcGFjZTpub3JtYWw7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7b3BhY2l0eTowO2xp
bmUtYnJlYWs6YXV0b30udG9vbHRpcC5pbntmaWx0ZXI6YWxwaGEob3BhY2l0eT05MCk7b3BhY2l0
eTouOX0udG9vbHRpcC50b3B7cGFkZGluZzo1cHggMDttYXJnaW4tdG9wOi0zcHh9LnRvb2x0aXAu
cmlnaHR7cGFkZGluZzowIDVweDttYXJnaW4tbGVmdDozcHh9LnRvb2x0aXAuYm90dG9te3BhZGRp
bmc6NXB4IDA7bWFyZ2luLXRvcDozcHh9LnRvb2x0aXAubGVmdHtwYWRkaW5nOjAgNXB4O21hcmdp
bi1sZWZ0Oi0zcHh9LnRvb2x0aXAtaW5uZXJ7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6M3B4IDhw
eDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzAwMDtib3Jk
ZXItcmFkaXVzOjRweH0udG9vbHRpcC1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hl
aWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LnRvb2x0
aXAudG9wIC50b29sdGlwLWFycm93e2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01cHg7
Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItdG9wLWNvbG9yOiMwMDB9LnRvb2x0aXAudG9w
LWxlZnQgLnRvb2x0aXAtYXJyb3d7cmlnaHQ6NXB4O2JvdHRvbTowO21hcmdpbi1ib3R0b206LTVw
eDtib3JkZXItd2lkdGg6NXB4IDVweCAwO2JvcmRlci10b3AtY29sb3I6IzAwMH0udG9vbHRpcC50
b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3d7Ym90dG9tOjA7bGVmdDo1cHg7bWFyZ2luLWJvdHRvbTot
NXB4O2JvcmRlci13aWR0aDo1cHggNXB4IDA7Ym9yZGVyLXRvcC1jb2xvcjojMDAwfS50b29sdGlw
LnJpZ2h0IC50b29sdGlwLWFycm93e3RvcDo1MCU7bGVmdDowO21hcmdpbi10b3A6LTVweDtib3Jk
ZXItd2lkdGg6NXB4IDVweCA1cHggMDtib3JkZXItcmlnaHQtY29sb3I6IzAwMH0udG9vbHRpcC5s
ZWZ0IC50b29sdGlwLWFycm93e3RvcDo1MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi01cHg7Ym9yZGVy
LXdpZHRoOjVweCAwIDVweCA1cHg7Ym9yZGVyLWxlZnQtY29sb3I6IzAwMH0udG9vbHRpcC5ib3R0
b20gLnRvb2x0aXAtYXJyb3d7dG9wOjA7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTVweDtib3JkZXIt
d2lkdGg6MCA1cHggNXB4O2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0udG9vbHRpcC5ib3R0b20t
bGVmdCAudG9vbHRpcC1hcnJvd3t0b3A6MDtyaWdodDo1cHg7bWFyZ2luLXRvcDotNXB4O2JvcmRl
ci13aWR0aDowIDVweCA1cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwfS50b29sdGlwLmJvdHRv
bS1yaWdodCAudG9vbHRpcC1hcnJvd3t0b3A6MDtsZWZ0OjVweDttYXJnaW4tdG9wOi01cHg7Ym9y
ZGVyLXdpZHRoOjAgNXB4IDVweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMDB9LnBvcG92ZXJ7cG9z
aXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA2MDtkaXNwbGF5Om5vbmU7bWF4
LXdpZHRoOjI3NnB4O3BhZGRpbmc6MXB4O2ZvbnQtZmFtaWx5OiJIZWx2ZXRpY2EgTmV1ZSIsSGVs
dmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7
Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1hbGlnbjpsZWZ0O3Rl
eHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0
LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1hbDt3
b3JkLXNwYWNpbmc6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFsO2Jh
Y2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDti
YWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlcjox
cHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1ib3gtc2hh
ZG93OjAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7Ym94LXNoYWRvdzowIDVweCAxMHB4IHJnYmEo
MCwwLDAsLjIpO2xpbmUtYnJlYWs6YXV0b30ucG9wb3Zlci50b3B7bWFyZ2luLXRvcDotMTBweH0u
cG9wb3Zlci5yaWdodHttYXJnaW4tbGVmdDoxMHB4fS5wb3BvdmVyLmJvdHRvbXttYXJnaW4tdG9w
OjEwcHh9LnBvcG92ZXIubGVmdHttYXJnaW4tbGVmdDotMTBweH0ucG9wb3Zlci10aXRsZXtwYWRk
aW5nOjhweCAxNHB4O21hcmdpbjowO2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQtY29sb3I6I2Y3
ZjdmNztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NXB4IDVw
eCAwIDB9LnBvcG92ZXItY29udGVudHtwYWRkaW5nOjlweCAxNHB4fS5wb3BvdmVyPi5hcnJvdywu
cG9wb3Zlcj4uYXJyb3c6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0
aDowO2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9
LnBvcG92ZXI+LmFycm93e2JvcmRlci13aWR0aDoxMXB4fS5wb3BvdmVyPi5hcnJvdzphZnRlcntj
b250ZW50OiIiO2JvcmRlci13aWR0aDoxMHB4fS5wb3BvdmVyLnRvcD4uYXJyb3d7Ym90dG9tOi0x
MXB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMXB4O2JvcmRlci10b3AtY29sb3I6Izk5OTtib3Jk
ZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjI1KTtib3JkZXItYm90dG9tLXdpZHRoOjB9LnBvcG92
ZXIudG9wPi5hcnJvdzphZnRlcntib3R0b206MXB4O21hcmdpbi1sZWZ0Oi0xMHB4O2NvbnRlbnQ6
IiAiO2JvcmRlci10b3AtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLXdpZHRoOjB9LnBvcG92ZXIu
cmlnaHQ+LmFycm93e3RvcDo1MCU7bGVmdDotMTFweDttYXJnaW4tdG9wOi0xMXB4O2JvcmRlci1y
aWdodC1jb2xvcjojOTk5O2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSk7Ym9yZGVy
LWxlZnQtd2lkdGg6MH0ucG9wb3Zlci5yaWdodD4uYXJyb3c6YWZ0ZXJ7Ym90dG9tOi0xMHB4O2xl
ZnQ6MXB4O2NvbnRlbnQ6IiAiO2JvcmRlci1yaWdodC1jb2xvcjojZmZmO2JvcmRlci1sZWZ0LXdp
ZHRoOjB9LnBvcG92ZXIuYm90dG9tPi5hcnJvd3t0b3A6LTExcHg7bGVmdDo1MCU7bWFyZ2luLWxl
ZnQ6LTExcHg7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6Izk5OTtib3Jk
ZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsLjI1KX0ucG9wb3Zlci5ib3R0b20+LmFycm93OmFm
dGVye3RvcDoxcHg7bWFyZ2luLWxlZnQ6LTEwcHg7Y29udGVudDoiICI7Ym9yZGVyLXRvcC13aWR0
aDowO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0ucG9wb3Zlci5sZWZ0Pi5hcnJvd3t0b3A6NTAl
O3JpZ2h0Oi0xMXB4O21hcmdpbi10b3A6LTExcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVy
LWxlZnQtY29sb3I6Izk5OTtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LnBvcG92
ZXIubGVmdD4uYXJyb3c6YWZ0ZXJ7cmlnaHQ6MXB4O2JvdHRvbTotMTBweDtjb250ZW50OiIgIjti
b3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5jYXJvdXNlbHtwb3Np
dGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAw
JTtvdmVyZmxvdzpoaWRkZW59LmNhcm91c2VsLWlubmVyPi5pdGVte3Bvc2l0aW9uOnJlbGF0aXZl
O2Rpc3BsYXk6bm9uZTstd2Via2l0LXRyYW5zaXRpb246LjZzIGVhc2UtaW4tb3V0IGxlZnQ7LW8t
dHJhbnNpdGlvbjouNnMgZWFzZS1pbi1vdXQgbGVmdDt0cmFuc2l0aW9uOi42cyBlYXNlLWluLW91
dCBsZWZ0fS5jYXJvdXNlbC1pbm5lcj4uaXRlbT5hPmltZywuY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+
aW1ne2xpbmUtaGVpZ2h0OjF9QG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksKC13ZWJraXQt
dHJhbnNmb3JtLTNkKXsuY2Fyb3VzZWwtaW5uZXI+Lml0ZW17LXdlYmtpdC10cmFuc2l0aW9uOi13
ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOi1vLXRyYW5zZm9y
bSAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2UtaW4tb3V0Oy13
ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRk
ZW47LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwcHg7cGVyc3BlY3RpdmU6MTAwMHB4fS5jYXJvdXNl
bC1pbm5lcj4uaXRlbS5hY3RpdmUucmlnaHQsLmNhcm91c2VsLWlubmVyPi5pdGVtLm5leHR7bGVm
dDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJh
bnNsYXRlM2QoMTAwJSwwLDApfS5jYXJvdXNlbC1pbm5lcj4uaXRlbS5hY3RpdmUubGVmdCwuY2Fy
b3VzZWwtaW5uZXI+Lml0ZW0ucHJldntsZWZ0OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRl
M2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX0uY2Fyb3VzZWwt
aW5uZXI+Lml0ZW0uYWN0aXZlLC5jYXJvdXNlbC1pbm5lcj4uaXRlbS5uZXh0LmxlZnQsLmNhcm91
c2VsLWlubmVyPi5pdGVtLnByZXYucmlnaHR7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5z
bGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0uY2Fyb3VzZWwtaW5u
ZXI+LmFjdGl2ZSwuY2Fyb3VzZWwtaW5uZXI+Lm5leHQsLmNhcm91c2VsLWlubmVyPi5wcmV2e2Rp
c3BsYXk6YmxvY2t9LmNhcm91c2VsLWlubmVyPi5hY3RpdmV7bGVmdDowfS5jYXJvdXNlbC1pbm5l
cj4ubmV4dCwuY2Fyb3VzZWwtaW5uZXI+LnByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lk
dGg6MTAwJX0uY2Fyb3VzZWwtaW5uZXI+Lm5leHR7bGVmdDoxMDAlfS5jYXJvdXNlbC1pbm5lcj4u
cHJldntsZWZ0Oi0xMDAlfS5jYXJvdXNlbC1pbm5lcj4ubmV4dC5sZWZ0LC5jYXJvdXNlbC1pbm5l
cj4ucHJldi5yaWdodHtsZWZ0OjB9LmNhcm91c2VsLWlubmVyPi5hY3RpdmUubGVmdHtsZWZ0Oi0x
MDAlfS5jYXJvdXNlbC1pbm5lcj4uYWN0aXZlLnJpZ2h0e2xlZnQ6MTAwJX0uY2Fyb3VzZWwtY29u
dHJvbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTUlO2Zv
bnQtc2l6ZToyMHB4O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6MCAx
cHggMnB4IHJnYmEoMCwwLDAsLjYpO2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5Oi41
fS5jYXJvdXNlbC1jb250cm9sLmxlZnR7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1n
cmFkaWVudChsZWZ0LHJnYmEoMCwwLDAsLjUpIDAscmdiYSgwLDAsMCwuMDAwMSkgMTAwJSk7YmFj
a2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDAsMCwwLC41KSAwLHJn
YmEoMCwwLDAsLjAwMDEpIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZyb20ocmdiYSgwLDAsMCwuNSkpLHRvKHJnYmEoMCww
LDAsLjAwMDEpKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdi
YSgwLDAsMCwuNSkgMCxyZ2JhKDAsMCwwLC4wMDAxKSAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1h
Z2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM4MDAwMDAwMCcs
IGVuZENvbG9yc3RyPScjMDAwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7YmFja2dyb3VuZC1yZXBl
YXQ6cmVwZWF0LXh9LmNhcm91c2VsLWNvbnRyb2wucmlnaHR7cmlnaHQ6MDtsZWZ0OmF1dG87YmFj
a2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMCwwLDAsLjAw
MDEpIDAscmdiYSgwLDAsMCwuNSkgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3Jh
ZGllbnQobGVmdCxyZ2JhKDAsMCwwLC4wMDAxKSAwLHJnYmEoMCwwLDAsLjUpIDEwMCUpO2JhY2tn
cm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZy
b20ocmdiYSgwLDAsMCwuMDAwMSkpLHRvKHJnYmEoMCwwLDAsLjUpKSk7YmFja2dyb3VuZC1pbWFn
ZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgwLDAsMCwuMDAwMSkgMCxyZ2JhKDAsMCww
LC41KSAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRp
ZW50KHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAwMCcsIGVuZENvbG9yc3RyPScjODAwMDAwMDAnLCBH
cmFkaWVudFR5cGU9MSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LmNhcm91c2VsLWNvbnRy
b2w6Zm9jdXMsLmNhcm91c2VsLWNvbnRyb2w6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRp
b246bm9uZTtmaWx0ZXI6YWxwaGEob3BhY2l0eT05MCk7b3V0bGluZTowO29wYWNpdHk6Ljl9LmNh
cm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wg
LmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsLmNh
cm91c2VsLWNvbnRyb2wgLmljb24tcHJldntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3otaW5k
ZXg6NTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOi0xMHB4fS5jYXJvdXNlbC1jb250
cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXZ7
bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTEwcHh9LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1j
aGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHR7cmlnaHQ6NTAlO21hcmdp
bi1yaWdodDotMTBweH0uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LC5jYXJvdXNlbC1jb250
cm9sIC5pY29uLXByZXZ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LWZhbWlseTpzZXJpZjts
aW5lLWhlaWdodDoxfS5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXY6YmVmb3Jle2NvbnRlbnQ6
J1wyMDM5J30uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZXtjb250ZW50OidcMjAz
YSd9LmNhcm91c2VsLWluZGljYXRvcnN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwcHg7bGVm
dDo1MCU7ei1pbmRleDoxNTt3aWR0aDo2MCU7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6LTMw
JTt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmV9LmNhcm91c2VsLWluZGljYXRvcnMg
bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDttYXJnaW46MXB4
O3RleHQtaW5kZW50Oi05OTlweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDBc
OTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2Jv
cmRlci1yYWRpdXM6MTBweH0uY2Fyb3VzZWwtaW5kaWNhdG9ycyAuYWN0aXZle3dpZHRoOjEycHg7
aGVpZ2h0OjEycHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jYXJvdXNlbC1jYXB0
aW9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1JTtib3R0b206MjBweDtsZWZ0OjE1JTt6LWlu
ZGV4OjEwO3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206MjBweDtjb2xvcjojZmZmO3Rl
eHQtYWxpZ246Y2VudGVyO3RleHQtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC42KX0uY2Fy
b3VzZWwtY2FwdGlvbiAuYnRue3RleHQtc2hhZG93Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1p
bi13aWR0aDo3NjhweCl7LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQs
LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250
cm9sIC5pY29uLW5leHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldnt3aWR0aDozMHB4O2hl
aWdodDozMHB4O21hcmdpbi10b3A6LTE1cHg7Zm9udC1zaXplOjMwcHh9LmNhcm91c2VsLWNvbnRy
b2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldntt
YXJnaW4tbGVmdDotMTVweH0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmln
aHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dHttYXJnaW4tcmlnaHQ6LTE1cHh9LmNhcm91
c2VsLWNhcHRpb257cmlnaHQ6MjAlO2xlZnQ6MjAlO3BhZGRpbmctYm90dG9tOjMwcHh9LmNhcm91
c2VsLWluZGljYXRvcnN7Ym90dG9tOjIwcHh9fS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91
cDphZnRlciwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6YmVmb3JlLC5idG4tdG9vbGJh
cjphZnRlciwuYnRuLXRvb2xiYXI6YmVmb3JlLC5jbGVhcmZpeDphZnRlciwuY2xlYXJmaXg6YmVm
b3JlLC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsLmNvbnRh
aW5lcjphZnRlciwuY29udGFpbmVyOmJlZm9yZSwuZGwtaG9yaXpvbnRhbCBkZDphZnRlciwuZGwt
aG9yaXpvbnRhbCBkZDpiZWZvcmUsLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlciwu
Zm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSwubW9kYWwtZm9vdGVyOmFmdGVyLC5t
b2RhbC1mb290ZXI6YmVmb3JlLC5uYXY6YWZ0ZXIsLm5hdjpiZWZvcmUsLm5hdmJhci1jb2xsYXBz
ZTphZnRlciwubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSwubmF2YmFyLWhlYWRlcjphZnRlciwubmF2
YmFyLWhlYWRlcjpiZWZvcmUsLm5hdmJhcjphZnRlciwubmF2YmFyOmJlZm9yZSwucGFnZXI6YWZ0
ZXIsLnBhZ2VyOmJlZm9yZSwucGFuZWwtYm9keTphZnRlciwucGFuZWwtYm9keTpiZWZvcmUsLnJv
dzphZnRlciwucm93OmJlZm9yZXtkaXNwbGF5OnRhYmxlO2NvbnRlbnQ6IiAifS5idG4tZ3JvdXAt
dmVydGljYWw+LmJ0bi1ncm91cDphZnRlciwuYnRuLXRvb2xiYXI6YWZ0ZXIsLmNsZWFyZml4OmFm
dGVyLC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsLmNvbnRhaW5lcjphZnRlciwuZGwtaG9yaXpvbnRh
bCBkZDphZnRlciwuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLC5tb2RhbC1mb290
ZXI6YWZ0ZXIsLm5hdjphZnRlciwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5uYXZiYXItaGVhZGVy
OmFmdGVyLC5uYXZiYXI6YWZ0ZXIsLnBhZ2VyOmFmdGVyLC5wYW5lbC1ib2R5OmFmdGVyLC5yb3c6
YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2VudGVyLWJsb2Nre2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0
OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucHVsbC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9
LnB1bGwtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uaGlkZXtkaXNwbGF5Om5vbmUhaW1wb3J0
YW50fS5zaG93e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5pbnZpc2libGV7dmlzaWJpbGl0eTpo
aWRkZW59LnRleHQtaGlkZXtmb250OjAvMCBhO2NvbG9yOnRyYW5zcGFyZW50O3RleHQtc2hhZG93
Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0uaGlkZGVue2Rpc3Bs
YXk6bm9uZSFpbXBvcnRhbnR9LmFmZml4e3Bvc2l0aW9uOmZpeGVkfUAtbXMtdmlld3BvcnR7d2lk
dGg6ZGV2aWNlLXdpZHRofS52aXNpYmxlLWxnLC52aXNpYmxlLW1kLC52aXNpYmxlLXNtLC52aXNp
YmxlLXhze2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnZpc2libGUtbGctYmxvY2ssLnZpc2libGUt
bGctaW5saW5lLC52aXNpYmxlLWxnLWlubGluZS1ibG9jaywudmlzaWJsZS1tZC1ibG9jaywudmlz
aWJsZS1tZC1pbmxpbmUsLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLC52aXNpYmxlLXNtLWJsb2Nr
LC52aXNpYmxlLXNtLWlubGluZSwudmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssLnZpc2libGUteHMt
YmxvY2ssLnZpc2libGUteHMtaW5saW5lLC52aXNpYmxlLXhzLWlubGluZS1ibG9ja3tkaXNwbGF5
Om5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14c3tkaXNw
bGF5OmJsb2NrIWltcG9ydGFudH10YWJsZS52aXNpYmxlLXhze2Rpc3BsYXk6dGFibGUhaW1wb3J0
YW50fXRyLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fXRkLnZpc2libGUt
eHMsdGgudmlzaWJsZS14c3tkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fX1AbWVkaWEgKG1h
eC13aWR0aDo3NjdweCl7LnZpc2libGUteHMtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9
fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14cy1pbmxpbmV7ZGlzcGxheTppbmxp
bmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHMtaW5saW5l
LWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6
NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbXtkaXNwbGF5OmJsb2NrIWlt
cG9ydGFudH10YWJsZS52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fXRyLnZpc2li
bGUtc217ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fXRkLnZpc2libGUtc20sdGgudmlzaWJs
ZS1zbXtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3Njhw
eCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey52aXNpYmxlLXNtLWJsb2Nre2Rpc3BsYXk6YmxvY2sh
aW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgp
ey52aXNpYmxlLXNtLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fUBtZWRpYSAobWlu
LXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFweCl7LnZpc2libGUtc20taW5saW5lLWJs
b2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTky
cHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWR7ZGlzcGxheTpibG9jayFpbXBv
cnRhbnR9dGFibGUudmlzaWJsZS1tZHtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxl
LW1ke2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH10ZC52aXNpYmxlLW1kLHRoLnZpc2libGUt
bWR7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgp
IGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWQtYmxvY2t7ZGlzcGxheTpibG9jayFp
bXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgp
ey52aXNpYmxlLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fUBtZWRpYSAobWlu
LXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1kLWlubGluZS1i
bG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEy
MDBweCl7LnZpc2libGUtbGd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9dGFibGUudmlzaWJsZS1s
Z3tkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUtcm93
IWltcG9ydGFudH10ZC52aXNpYmxlLWxnLHRoLnZpc2libGUtbGd7ZGlzcGxheTp0YWJsZS1jZWxs
IWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJsZS1sZy1ibG9ja3tk
aXNwbGF5OmJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJs
ZS1sZy1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDox
MjAwcHgpey52aXNpYmxlLWxnLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBv
cnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuaGlkZGVuLXhze2Rpc3BsYXk6bm9uZSFp
bXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFweCl7
LmhpZGRlbi1zbXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJw
eCkgYW5kIChtYXgtd2lkdGg6MTE5OXB4KXsuaGlkZGVuLW1ke2Rpc3BsYXk6bm9uZSFpbXBvcnRh
bnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmhpZGRlbi1sZ3tkaXNwbGF5Om5vbmUhaW1w
b3J0YW50fX0udmlzaWJsZS1wcmludHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmlu
dHsudmlzaWJsZS1wcmludHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH10YWJsZS52aXNpYmxlLXBy
aW50e2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fXRyLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0YWJs
ZS1yb3chaW1wb3J0YW50fXRkLnZpc2libGUtcHJpbnQsdGgudmlzaWJsZS1wcmludHtkaXNwbGF5
OnRhYmxlLWNlbGwhaW1wb3J0YW50fX0udmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5Om5vbmUh
aW1wb3J0YW50fUBtZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2Nr
IWltcG9ydGFudH19LnZpc2libGUtcHJpbnQtaW5saW5le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9
QG1lZGlhIHByaW50ey52aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRh
bnR9fS52aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBt
ZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxv
Y2shaW1wb3J0YW50fX1AbWVkaWEgcHJpbnR7LmhpZGRlbi1wcmludHtkaXNwbGF5Om5vbmUhaW1w
b3J0YW50fX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3J1bm5lci9jc3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVmM2Q0N2U5Y2I3
YjQxNWRlYWQ3ZmQxYjgzZTNlOWMyZWRmOTYxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLXRoZW1l
Lm1pbi5jc3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLm1pbi5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBo
aWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3Mt
cmVndWxhci5lb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE0Y2E4NjVkNjdlODZmOTYxYmM2ZTJlZjAwYmZmYTRl
MzRiYjllZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjAzMzUKemNtYSVpUmE5THUqWF9hR0lY
THRIMlh9WE9jWHhNfTs+QkdLP2s+Z01pQFVvK2FmZWMlJj0kWV96SShAaUFNVlJkCnpNell0TW5W
SEdoYChiQmdCcllsZDBHMldVMFIxbisweylaV3sjeWU4UHloJU47MiktX2BoUzRgZEhqUl9vOHM/
Mwp6JUtyIWFBQT1TazE1Z0MkMGFPOTkwNkJtSktuMCktJjtXcWBkMWU0ZGZjM3YoMlhGQDEwNmhO
bktuSko7dHAzP3YKenw0PWk0YCM7MTdwIzJZVnxKUH48YVFWanIwb1ZZezBNPnQqNEl1RE9eRks9
ZSt4eCQkP0xWZGB6fmFBckBCaXQrCno0Qit8NDZhWUI9UStEe0xgNSV0O0tkdHxhWndfR3BYTDA/
dkBCJXBnZDNedUk9S2NTa0lxM2hISHZrfjZBQGwjZAp6REh3b3ZDeEZXdnohZDtzR1FeJn1oQENM
cSgzIU1WYUZoU3lMIXJnKiZkOEYlWF8maE1MYFFZQlRpUlp9aT1OOEMKemZYfG0yU0NtJDJCXj9Y
S0o9M1BPUzx4WE5Ce3AyWFhLK193TU9HVlpuQlpWaTVlfTZZfDYmPHlRKVUldF8/SSl8CnokVXhH
UEkzZjxnYnpEY1M9dXZkKkYtaEo0OEAqQn5yUSVhJGNlJDJXKmgybXxDTCpFelF5c0pHKDIxIS00
ODZwaQp6OU9wKDJFfkwtfShlTzc/YG9RUGghdlNtVyhOU0g9LSkpWktMfjsyeFkldkJiVz59cjFz
Vk05TmoqbDVxYDUjUyUKelF9RkReenkxUGoqeFVHT200OypDO2w4MG9rdE8/fiVTZFg4SF44QEBp
ZEJGV3lPSU5Tcl8heG97UkVXUmxYZ3d8CnozLShoNVhjSGFFZFBLenl5Mi1QK1Jsam40bFI/SWVs
RU90V0xpQz9fOUZXJnhAa3B1UnRmc24qLVFMUzRFPEZ6KQp6RzlsZCNCbmg7KlJiaz9FUjkhVGEp
RnFyUzdAQzR7RUFzfkEhViVESz5vTnt7cTB1OHB0X15oRF8hVik7RHtoZW4Kei1YcFZ+NVFlUVRZ
VElsMStCXjVyNzJgITdGUlFRJEpoNzQ9R20qT2thSW9OVUM8dip8KEUoOEFqKkx2RU17MUM/Cnp5
WnsjQz8/NVFVJmlCZSZaTnhxR1lBP1VubUZnPXdndlBaJDMpTHNaPGIrNHA0emJqOV44VT04NURr
JitudFZIcgp6LXIld3NPRk0xSi0peF5qPUlNRHhATSgzRG0tS058WlhWT0JsS213JE9GcXl1KExs
aDhFMyVZflkxWm9uIXwlYGgKek1jU1BrXnR5cnV5S3Mob2tXZWdRcjdGVUdXYkVJaCV6RiFTI24+
NyF3azdyUlpWdVZLNnVybnBAfVFEcEJ+OSpTCnprVldnOEx5WHo4LSU1Mz5HWGIkJSpIMChicWtV
SU5gT3o4Zz1ic2U/YkF1bUM4YDVYcUErKF95e2ZWXmooMSRCWgp6YSpAbUooJj9EbDJrOzh0V31P
Nk9hYXZKRXwxN3UjMXQ+TV4wIUBTREpjMiljTFpMYG03IS0pNzRDUVVYb2tzTSoKejltfFNqaH1A
ZG0tVG5jODw3NyZUZmpUPERCbk1+dU9aYmRwbiYzblRlRzcmdUIySnVFXyFvP3RSa05PelAzJj1B
CnpFRHVUckd0NyVnd1M2ZUhCMlp4dWlPKX5IJDE2bWxiUGdYOGA2NWt5QV8wcTlKZXc2UTE/b0tO
Rm0zNihOZURiVAp6eW9BWnVGcyRnalQ3UytxOWcmPUg8QDR9YTNOWWJjJUh1YzUpR3U4fntQTFhl
MTF5IWY0YER4WStHVTckPE9QZ0kKektBJkgyVGVoT31YVVh5ZjZYTFdFKSEmMnx0Vz9xdTYpRFVq
WEgmbExpaDwyY2prWEd5R15LYkBGfXtGTmBPN19BCnpoYSM8ITZ2MlZ8ODV3bVU9MC0+Nkh7Mylr
WE1NNzc0YEQhZUEwfCg8dXBFZkp3dztvRkdLUjlUS2BCLVhGSERpSgp6Z2Zvdks4WUN9P250Py15
SjMmVjl5RXcyR1Rjc3hTYWckdyl6eHQjbEhibyZhTnIpeXo9dDtnR0AtOTlXVygjMyYKem91YVVl
WSRqYSlgR3p6X2labG4+UnVRekBpUU8oNC03bFh8YUsqTWBZPWYlUntfJjw8WkNwZ2VzYyEzbyU+
KkE/CnpCKEFaVWw2Slhnel45YzlxN1pXfkxwbmNwdjFJXjZPNG1HWEAzUF5RKT9qQmd4KGYjUkRf
NHkwcTVhQ19iZUdHPgp6biVSYkV5X3ZkeGBzTD98SnZsZ3l4YWwtfVhNXkZEUVlwfEV1aXU9JThv
KD13aWMrWFNpbUo0KEFkbjNgUUg2XkQKelF9SEBvQk57fFpnXjJ1fEA4Y35oN0t2JkhDeD8/eHle
SiQze0Iwe1hubHJUaERhb1FxalhqWEhpI2IhS0lqQTcoCnokaFQ7QWhfVlAmaikoWjYmKHhuO0tG
M3JIc0ZeQSNpbD8kKXE0UHAjc2x5P3wlT21vUkd8TWlOVzMrKT8zV2Q5PQp6Z2JVanpUTFgrIUcm
b1lqOVA7am5IbVQ5MXFLUHp4a2pAPnJzcWl8PU01JFBmclJDWSVFNyR7eExEWkZ0WWNDJWsKem9y
cExqJFQ2NWROK0hWQD15UmxLU1M4V35TTXhGa0sxflUtWFcyQERYY0dgNC1WKXp8NjA1dUQ0UXtN
UDEwZkQ1CnpjIVQjKW41NykpelhYZmc9ZHduWnVEX2BEQ0pjM2NIRTZIdUEoPjM2b19uZXFnb0Yw
cFJLMGVFY357ckQ4JVBmaAp6QGR0RTZvdmthektqM2ZkeykqJnRCMFlBXjFkXl4/Mm9lTnlCN3Uo
UCtPNCRAbENOY34lbWI1aVApZExHTXx6O3gKekVrUllNX15VYGclczVqPFBeK25PT1R5OF5pTmgr
MjFId1BtITR0RFpYeUJfbXtFX19BN1RUJCsrYWZGJnokJWQ1CnpkYkpmRCU9SDZ7WWZ+Y1Y/K1J6
eF5STXBkTnM7UmJlZ2Y2NUsjSkNGcz9BanxQcC1fS1NoO2laKWAmZDVLRjhzQQp6U1RLMX1iRTI9
KHNPRX1yQEV1SkQ1YHhPRXJ5RCUxOEc/eE07b218TTUtRiEjJnxZKTEjMT0tSCRFOEw5bGR+KnAK
emA9ez18WmZQQnFkWS17KCRKWUBLTlUzKjJVM2o7TkJ8R0V3ZyZ5VHBfPGBmRysyI15ERUNFJWYo
Jj5pSD04UTJoCnpsUyVCZEM2RGFZRVdpMFVOaG5jKnpGVCRmVmA0X1ZNTlV+bkg7cShMZD8hI2xJ
dm0pSztXXzRDKGwzKzRUWj1RSQp6RCVzaUIlY1krWTd2TUZNX0tBZz9zeG0oXm5Kc01JVj92fHZB
UzhsO3pvdHYkI01sLVkhbjd8WDVZNUMpPVRpR1oKelErPSg5JWxrMCZMJmhEdHdSRD1VYTZ3UWVT
e2cybXZ3Yz5efDQkb3QtMkhpYHopfFYkTnttTkFFWkMzZ3dfOCV6CnpxKEwzQmN3cjJnaW42MjxD
RkU2Km03WD0zOEpZdjBgUistMWFGU2JFJT82KEZIPmRYTThjRy1ELWF1RDdIYXlMegp6SkkyfG09
OCRGP0tvPnZAUDR7KFc1Zz19LWIkJXRKZ2Z5d3BgNiZBOTZ8Wnh7OU47MUBfPmh0bzdUUWYzRUlN
bSsKekpgO0BANHljWG5ITT58aUo/RlhrV0djOFl1R3ZpTyZMKl5hamQrdnlMSXhBQVR7aXNBRFFR
TTVTO1lQK2pBWXA3CnozRTFObTFIRGQlU1hpYGBOUipzbzdYaWR2UlBqI0JNN0FgU3tjVSVWSVNR
T2hyTUxyMDg7TjM2QVlnOX00ME1sIwp6VSlHVXhReShEMSVQYEBgSERhWG4mJW04YGhPdX5fMmFg
JVB7djd3MjtLVU5obGwpTih5NHdEI3AjeysoJHVMT0IKeiFYO0s9c2NpMWVyUm0xPVFjeCNqYShy
PUU4Kjg5Uk5IOGBDN1Q0fCN1VlJjPUthZn0wWHcpPjhnMCg0SCFackteCnpoLUtmKFYjTlFjTVU3
OW9uOWJrP2BVN2VJe051LUNkYm9MWUgtN2xKSXw3VkNvYjI4NzIkcC0+M24pLUo+TnxiJQp6SW4z
dnpLZXR+bnZIQj1iUDZyRFJWfCYmNExMfVM3YGl1Mm9rJnI4ZWN3fnlVUk91bD80NFZTVjM7PFBQ
V1p+NSEKel98OWdaWXNhO3VQRmYxTVpWVWdURDRGazNGRDhSTithK1ZJdlFrWHEyV2lFb2g5LUQ1
cnEyK35rWXdGQnlGSDBWCnptSEJnd3QyPVVtI0hxS0lFOF5xKkhPa3pTYjMjSUpxTUFlK2o4PyVI
K0prTms5eGxtTldUP2ZtRno3P2VSI0wyUgp6cCgkTEhSJCl2MUsyYCRIcFpvVVojV3FQMy10NkMp
TXBBdHNUMWNjMilDVWZIIyFveVhvPG5vRCNiIVNsWCVEJlgKemh1V2pWcXdAZlhxPFJaYTE1JCZM
IXtBS3JISUpGWWAmalh2Nz9zQWhhVV9kc2UmbypSTkIoaXAoJD1+PHYjKih+Cno/bG1HKzB+QGln
QX5lcn0qeTYjUEE2SS0hazteJGZBZyMlbj56N3FTUVdsK3leY1g9JGp+TzxCcT9JWVl0dCpBdgp6
cmAoUlRWZHphZ214P1NybH45OzdQemszP2FiS0cyUn1XSXc8Wj19JFdJWn1fIzBGbFUzMSZjcCEh
aVN9NzlCJCEKekg8T1Y5VTtJeTNjczApdT5RO29+MCtfKTVXRFJGMF5KYnVEX3VtcjRNbiRFUEV5
Qi1fZTxwUTNIMDEwJWdkZ1E5CnpIMDtzWE97dTFiTk1rWGY0fGUma0lZV3tRdmpaPm9nXjEqUCNV
aX1kQ0RINi1HbmRYZ2kkWFYyU05IZSNISFFvVQp6YDJme2tUKn5ZLUd0eWR9SSN2PSpQYlNoSnpw
NGhnYUs+Y3IrKzsyR1NHcjdeMmdBXzNIMUY7PTxsOSRgXmtudGUKenBRXjtDQWZVYzhKZEUySmd1
PXtSc2BiTUN2bSNyX1czLW1SaVpqWD1RSkBUKjBVVnolaGV5fD4wNkJ7TDRAZlRzCnpEP0YhdmJf
NTFIbnpiM0JKbFlpSTRxWjVmRHR8Q2FLWC1OJjJhUF9EVlhgYkgqRk45M2NWKjNmUHZvY2l6fGRG
Rgp6RElAXzs7NGAqajl5VzdwbW5YakU8ZyoqfTRTcCEqPVJ+TkthMkgoVSp0d1dDeTZiZmNZYlkz
SSVWKGMhMnxyezcKelkzMTx9VGNTTWEpTkRMYXp8PXU7Qk9OLU1jSSZsUyRCfTlRaW83O2QrJXt2
a3hJY0JgTyZCeWY9Xk9ES1h9dlhFCnpGeyYkbThSRTM3P1hOTVBWaW9vWTAyT2IzX2JgZkQ+d3Fl
QEJFUXcqNUtjbCQ9ekp4Q28kfSQ1PjBhVTgqVVhpcgp6bG82dnVIU244MU09cnotTXx0WXVrU2E3
STJNJCNRLTdgOCYyLStVdlcyNUA4Z09mMVZTUn0zUmRWRnJ8LSZ9NFQKemt5MHVgWHVRYyUwI2I9
TEpXdTVobSZjYkIkWms8SHdiKD4yRmVZRH52LUNjOTJ1fCVzSTxlfklLc0BQQVBCRldiCnpsUipD
c2luUWQkMXgrRDloRnwwK2F3clcwOE1nPlVoLTY8IXRUYHxARUd9VFFZN2FnKXc9Z2ArZzUkTGVE
RU9sKgp6aFowZihMeVlYeHBfPEhUcjkxJDFRS3NMaDQyUjAhWFNLNEpEVUd+WT13NUp1MlA9cmgz
akF7RChDZkRydHQ2YnEKeiEhNjdmVkM7OF4rZyVhczg7fmhGIXZ5en1nJTZrIy0oYXNoOT82Oy0p
c31IV2pCfVozJj9keG1Rc2dfaD41ZEpSCnpaMylnP29HV2UtSDYoRGw1RSlrMilIYWw/JDlSNzNG
TTlgbGBxQl48XmY0a3VjZSZ8VCl5Q297Xj1fYWBUWSpjJAp6UlJoXzI4NGpKakxvVyRXanZfQG4k
OExiWHVXMHBadztnYC0zJFhVSEQwTWUhcGJkRDh6JDMrTF5LS1lPYWJGZGwKelpXOCZKOHlSV2Zq
TGg/ZTdRSkVrZ2w8JlF3RG5aMl5Xd2dCSDB7QWp4SV5AUSk1MW5sR1JWZ2o4al5qTDAle0w1Cnpn
fk4mUXliWDAobGRhYW90P314NCV2dVZlVGJaOTZmcGcqayhfcD9hK0lGR24hWVV1Uzt+X1owQ0x5
R0ZlUT1vdwp6aFN9XjVSNGRMZnU5UUBNRnc3YzVfVGdgJW1xJFhGODFZWFNGRH5ydD1FNm98bFZC
UW1IcE1HKCo8KU0oRSg0ZioKemlmUyg7WWplbnI/fnkqbD5GMjB6USVtY2lsaVU0NWYtd3puSlpk
dyh0Uzd0Nj4wMDQqMiNYM0VqM3BjbzNmaWBhCno/fGdNX2NrVlF4WipEIW5UZVU8Q3RDKyllV243
Q3AtI0h1VmB6QCt+WCpoPEtBXz4rfGdiZFBFaighcktVWHUpfAp6a0xxVUdhblpxbjI1RWs/UEhh
OSU0V3wlQWRfPEFmNDJefFhaQlBAVi0oLVB7QXpPdGM9a3tSZkUwbEFIbmREM3cKekNvcko1dz4y
QUpeQzRac0soOUFXP2Q/ZmVfeTU0aiNjZUNYNyVaTW1TYHt4PV8wZmNDamIwTD5VX0Q+NWY0a055
CnpIUVFnNUA0YVlWKTZncFRudmB6MDZNNWF9dzc9OVp4cGBiY24maShFT0FQV2ohP1ooMk8/XkRF
U25HZlJER2NzMQp6P0l2Sip7TEtvbmw3I3JvYmNGY0BPSjx+X05ydDEmdkBlUGUjd0VGS014ZlRB
IUF3Sm0yfm45SEc4UTM/WVItWXoKejlRbTNreHxjNDg7KTZLeW9vPzxgIXxAQHh3cH51I29mdVFt
PmlwNGJMdk9fOFcpOXsycGhxSTd7V1I5TkxnSjVTCnpITzhoWHRKKENZKW1VRyZvKGdHbyEzUWsh
PSNYVVMxM08mb3t2d2VCSjRvMXk8fiMmNV4kczY5RUNWOXhNfT0rMgp6MyFOSlc4JVFgZl9KYSlu
ZXhFclg1IVZCQFY9VExWZ2hTRWpSdDV2ZEo4enVSZzBSK1k+KFdiKjdFRCllcyNSNzwKenl5PGhm
LUF+O2Z6RV9WaHp5X2xKSl9oUzVDX0ZuLVlzOCY0YDkwfVYoVTZBZGNYO2FodjBWMHxEJCVHVlRv
fSVkCnolYFhxMTFOQF8rUVRFRkM4a3FeXnE8XiRxSGJ6e2BwWFJ5TVYhXnJ4KD8qRGV0ZyglP2xK
LSVHTnhEKlVQWSk4VAp6e3p3cFZTTzFDWjR8dyp1UlEobzBUWChHbkNyU2E2eEI5V1pUVFZTK1dG
IzA8PWdRJiNBcEJxa2h0bG45KEFJQDMKelBhQm0rQzc+aj5hej1tfTFYUStFN1pAS0c9Q3N8eyEr
RWVqUV9CLTdfWl9ZPFhmLXVWdl8oUFRTMlN3PVE0fDsmCnpndSR2NWk8e1FISHRaPClPfHpfbjBU
b3d+UiMjanFHKUtvPjtrRVR4VlZKT2F5RnpyJnNjRHUjUnpzZFQ3P1pEKAp6anQkR2lQcU1RRE4j
I2pOQShVdUhNZ2pvcHFFO3BrVVRlcCszWWhHMkchQm5LP35YI3Y8cHB6MUdvcFZoVmt+aUoKejkp
Sn1iV1IyTjRNY1BEOGNBalIpKGVzJWlDMTV7TnZEayp1cl8+KEhoe0crdzNwdTVhQkYrNSQpSHEp
OyM5Q2JHCnpzRTdVaEt3dmc7dypWKDBLN2t2Z25tNUNYdDJvTUsjeSEmZHFXNl5DT2BvLTloO3Jw
ZThzWEBNN3ZkTkhyU0kpeQp6OUtsdlMrQCstYEN6bFMzaH1QKVZiSm4pTU4mMXJaSkRnc1I9RjJG
SFpNcGQmUzFWUktpOzdXOz18WGB2YGl3cjsKejY9e3cleChCaiheKGE8JT83UEIqUyV9PnNmdH1V
ISFxZHNjc1FnVEAzWDVXaWhtTEJ4dVM3PzEkQFN2dkozPDx8Cnp0fVkleXFIX1cmNiFfKG5hLWpy
I1p2N1cqQ3UjYzZIcXIkb3tlTVRIbUlXZmN1SStyc1hjMXgkaWJjKXxseHNgfAp6XmxoUXAmXmJe
QlRMKHhFSSE2azhieG9tLUQ4Q30rNl9hJWA/Q1lqU3VGY0VoNUoxJllgWi02RGotSWAlKCluJDkK
emcqYjwmWnNeeGRDe3AyYWJ+fWZ4aXVvYnI3WFQ3cEllZkRxK0IwUy1lKiNOY3Z9eExKaXt7eVBX
dSk/RXN5dTA7CnoxcXNLX0ZBRWctQyskcDBjcCp4Z3MxczRidGtNJjNscXFlUVJwRDJlb21kKE9Q
MFFAKmUmWGFzMzhhbWg1XmJvQwp6T3ckKHBudk4kNE1kb1FfdSphJUVHVSMzNCFMOGg7aENxMnF1
PnZtYWBkckA2T0okdVIqVXkwfHYrOShxI3t2VUUKei02I1dKbjlLPUQxYnw9M3o5dDJ0bHlpczwz
MzJCZUg3cit6WUB+Yj1eV0E1eXU8ZlBtN1JqQmJidXFyY1hIVkt2Cnp3K25QTW09S3pHOCktZEs8
eiQwUHQ2VWk4e1QwenN1eURafUJgT3t4S0UmSXZadHA2KnVwMncpSkBnWD9TOU9xeQp6Q1M1YDZK
Jmt4PTVqJiQqSl52KEY7QChXQz83NFAmIWtzNFlkITw5KCpOJWdEWCZCYygzKXRMZ3ZUO09ZPTFf
N18Kemo3MGQtNkR9Mk9GJDZ0aD8kMHo3d1gwcDd1KztDPWombENnaD9ye0QmcnAjTmNDJDE/TVpf
ZEp1fVNzcWtVP1RLCno9cUV8dDxtNH5nezNQM3QtVkprUmJ9fTtQcEdrTXlrJTx0MEFGXmEmLTZ5
YnUqSHVgbE5wZE00V2NlelpUeGJgNQp6LVhEOVlqbikzNEFqfSFOJE4zO3F5OFpoOzleRnFeYCRf
U1ZeZmBCJlhGLXQqNHc8O1hIP3Q/MGVscTg8QThBbXAKekpCJW08bFdIOTFiRHQqekl1e3cyZWd8
elQtTnROZSRURmUwSC1eJTtNfUA7cVIofG02Xnc3Nk9VVUY8IWJrWU1jCnpeU2owemBDJj52U01p
eVU9SDk3U1E3UEo9eERxOF41aEAhNXMpN053SUMoXjljfVVxRktoPlhuRlB1fCtMQFA7Uwp6M3NT
QSFgRz4rR2NGfUFebmZsfG5fMlA9b2kjMD5BJEJwaEpvXm5pViQzOXE+akJuNz15RzNqb2RGQ3ww
LSlDJFIKekBBdnNQYXd6UmNkSStOQCMrWENVaEUtYlY2UihmYjAjTDg8e2taby1iQkYwZF9lYjI9
T3ElQ1J5fE0lQkdCbVRpCnoqKHZGPW1EcWZCKUZmYnIxV09iTDVydGFYWG43aCR2TUlNeWQhIUUh
KTVGZXt5SGF7WktIcEd3UTlKLUBjUSRPWAp6OEJ1eCY2V0olfHpGK2pKWiYoZy0mdX5RVi1ZX35x
P0RKPiMzfjlXaUJlSVVfdWgpZWJ7YntWVW5fSzlrRmZZWEwKeiNXPzVMOHo7WHJBP0tjJnVhMzVI
aV91aFdnaGw5KWgqKUp9JXdHK1hubnAyWk9sKll0SzNWUXhVTWZCTSt6PkUyCnplSWAhdEJEaWpq
WFl4bExFWnU8T0BPPTUpY2ZpZFNTaHQ2JUlCYHFSXlNSaSU+N3RfVDx+IW1SMHtvPjZXKkVqcgp6
NnY4el5HJFchZERxKl55JFdieWhJKXh9LXM+dGRrMDxDYzNpb08xcEp7ZlA2WShGJHRyUlQyKmow
Xm11QHhpcHMKeik4eWZwc0p8R1pwQSo4bT9XKTVPQUtzNDg2dWJoYCM4JXtIWlE3aCk5JXxAPCkx
Z3xeVjlTe1VkM2kmbTVrO3J5Cno1JGlzdGl2RGB+S3hAfCExaiUySGVkSzk8PGAhZHk0diZmTmpB
TTFDJDRzV2NLTEBaZXk/IWRHPDRXTzZ3eyZ9NQp6Z0tIRTR7TiVkSFFwNXY3M0xiOWZjeCRrfHlR
el9uZiY8RTRDZjhFc0lNMXVWdlBVJmpNdjFqb2Bybm5iPnstO0EKejkxVT9rNlJnKiVUKlUpVXZf
UDxtWUp+SWpaS2g/ST9ucj9TP29RZ3Z4I3RlWC1tQ0olZjRoYj5QX300amhKNnx+CnopJEJ9bTQo
ZGBZdENCY3JWYno/Y1FHb3xOaE1LKEBPbkdzVTc8Sm0+T0FLZ1VCPG50d1AwfHh0SSNJUjNyaFJV
bQp6Qn1sUkclSHFnfDhePkpMaD9FQE9PQHNmVUc4TWBgb1FiY0RnREtFeV50NiFBaEVASHFnU0c8
M1F7TkQ3dEghRzEKelFGQ1pnbD1Za3hyfjBwZHEpYG4yeTN+WTBjdmtPNWkhQ0xUQWM2OC05Y09N
aTJjMjlCVGNnIVc1PVh6SFI2OHRUCnpIJW80dyRCPz5ZRjBBcTB3KlFARElmfFV5amFqY3hPMmAh
QXZ7cDtzMiN6X1hmcCp7JDJmTT42NX5icnxyQ3loWAp6Y3JOQHI0IXd+M2ltbGotZWV3N3FxOGQm
dnRZblNBVDkmfCZZJj1+fXpGNT0tNWF0QEdyMXM2fmBlQmt7bkpoK0AKeiMoPXhFST5jNnhYVSh1
Y1MqYV8hd3dAV1l2bz9+QDNkQmpxQVVIfmg5bVc1cSFSIyk7OGw8a3UhJWpTITlZNi1vCnpgdU9X
b0omPiU4K29KbmIrLXlkcXYpTEhRSlNnWT1wJXtAfkZrKFY2PW97PDVmVj4pZlBXT3lYU298Rz9H
PSp+Pgp6P3o+PCkoU3NAPHJlIWpfNDM/Q2Q5LWR+MFNUeTtJa3FlfiEpPmxFfHZVLTJ2aE9SeENN
PkBMRXg0T3sha216STUKekZVT3VPWF5CSEFTaiUjRkFUcVMoRm5xUFRwXnxTcTtlZzN3S3ZJelVK
JUZOcG9DWWBeT1B2KF4+Jmp7ViNSRnpFCnpAM1kpYkEoNG1faWFTYEomZ0codl4pSnRoO1ckaUVT
Q2VDQkExI0IoTjYzVntkZ2dvSiVSUW59Yz5hQF4lZ2F6Sgp6SSRTaGc1PE4yMnQybElsOytlKUhm
TytoTjwkKCZfdWdAPnlWcGNwbkpPT1dZXmRCVUk9M2lDPiNhMXAyTlFzfGIKemdaSHVrUjlId1Y4
U2dweyMrak43WkIzREk2PG05OT07M2ZrTntzbUFYRkpzcV5NfDB2QUVCcEZ5X28wVT12RD90Cno/
em1FOF99Wm1EaXUwQ1lLZiE/NmpHbWl1WGpmX2hQPDJmczhJUCk0JX5pMVc3OTc0MyNuTlNKJj5+
aElIdkAmJQp6PSQ/SzJnek07eEM/Szw5TjB8LUJNU2s0YkxJKXVCKiF1Z2ZZMHFQM1IleTVPPyZ7
WGZ6b2pmYnc/empeUCtfO2UKelJWbT4mR3NOKT1IPFB5JV9faTFeN3x0T3h1RSYhYWZfb3NfSzhL
YzdeNEdxS3dNbnVYP2h2P3dsK3ZpTVRZSHkxCno/WHpjKFBGPEl8dXZgQzhsLT84d2s4akdLO2RS
IXpiYHk1JTY/dFhsWHJxUGtfNjJrNzJraSg8KFlOdU9Uck5qIQp6Mns5I2xLI3VtMV91cHVaYz0h
I0VmZSlAJkV0QEZxaUVidDYkSXBGaGxDaUgxR3A2Vk1KKDFyK2k2U3Y7aG9iIzwKekJXSEpEXmdU
ayhfXyRNc1RqfUc0XlFBUktnQWReNFc2fmNZRnZoQW1pbztKJiVLfS0zTiUyVWhIUntibWU/PF9W
Cno8M099bEMjdkpeKikrXz1kNGQrR1FLZ2tVekJiSX5oMUQ4IzJ9ZUxOYmI8Vzt2Y2RRM2RCbFhr
NHFkKjVQODVrXgp6XjxkYHpAfW5oJT5CSCswQkh4Sm8mY2t1TDh3MD1fd35xNlJ7Z2h4ZU1tc0Ro
OzlAbiVWRkVgWnglcFFnbEM9QTQKem1KRnhJZ053cVApOF5iI1J3QkdQK2VJO3dpfXtePGpVVDYp
PnBZTVR0UTRoMjFrNURMI0c/VFo0VkNqcnFIbFh4Cno1R1d5eTEpTSs5SW0qSDFOYiEqcDFtaUNk
TUhFcz5eITBLblBYNjA7Rnp0TEp3Tn03dmg7RT58N2leYVNLd1pQcAp6Ym1jQDtae24ofCljYXhy
bDE8Q0ZwaHpwWTtQfUpXOVYmWVklVn1iY3BMZzdCeyY7ITBXa3UmM0ZoKWJAK1dQaDMKeiV1eXJW
MHZNMlIpJisrKU5VPlo5NFlEVFMkbWlmYFRDPkIjbTRTIyRsP3VSZVM+MUB2IVRSanYkdmdeb3NG
aW9wCnozRWMxeUJ4fF9ETTh8JEIrZ2R0MitXbzg+VlNpT1pNa3tLeGJzRVRFcVhyTWU0M2J6M0o7
azJ8YmsxfFZmV319Tgp6aUJSeHNFMFZTU09mfWklXmdZMEZGTWxkd0JIdDc4RWpXP0hzYFRpSClz
MFdYI0UoVk1VPiF4KHBSTkVsMD8oJWQKeigwOSF8YzNKOWcreGkmKU1LTnIlTHp+VmFjQyglZ0tX
b1lASUQ2Xz5hPihFPW1WbXVxckt0SDVkJGR9eFgmTmVECno1Uml1QlhvOWBPe3hMPitWLTQ5bVJj
KDNrVCs+cU5QODE0WGMmRj02az9NJUB0Nk5PYkBAX1hgZDNodEk+fHpHTgp6JnozZCQ3XlRWO2NW
K2V5SEN6QitweU56MWF0YllYM2daZmlTakhCPDBFaHYmTSk3eHh6bEp1MzJASW9zeDU/cWQKei03
S2EjV1M5KzFwcn02YiVkMnotWlQrRnpwZmA2M2Z5KWpUYi18eTM5aFgtV0ZLVGk3a25eKzQoO1FK
SSVsIXBLCnplMkwhN3IrYWQwUGZEMmJzYXI2WGdEPlhXSnh3d29IQ09SZjlyMFZFSU1fPEJXTkQ8
cEVJNT1RYVMpZ0dGfUAxUgp6bkh8diFaJig1IS05cGVqTnkrZyhoOCQ2JDFZX19MYHoqT3ZGMmlx
ZE84Yylqcz1QY2xtSDtELUNubT8qZl4+cU0KekN6dz0wQDhhQjhUVnt0anpFNXp2UiYwTVI+c29g
eHF+ckhTTEJ1SSltUyFEaDF7Q0l+KX5OYl4/XlJAR2IqMEExCno9Jk1uTSVQRypxbXJLQmpwOFpJ
WVNAREZETndlNVd3PTJlNjV2c3s3PHAlS3RIRjJGM0JsaXIpWjw1Yj07JXB1bgp6S3J4dyNzSiU4
M3NvR1ZgdGJLQUxHY2ZoWFA4LVpXVGk0e28pbVZCdXZXIUJ1eUpgS1BMRjQzOV88JSUjYkE3USYK
enA3MlQ5LTw4S19tVCR2OSYpenp4TEVNcUJ0K1R6NUo9YkIxVzFPdHUyVkY4VnBsPmUwP091KnhC
ez9BOVAkaXt5CnpNfDR4SjMpJSFHJThke3UtQUM1Jj4pMD8zRWVNZ2xuNFl1dDFgSX5zLUNsKn5H
KlJpMWs+NX1KWTI5NTsmcHFALQp6I0xtXjRIcCRWeilYPzJ5XnNXQDsqQ2x5Ry0lZ0JVfExCQjIr
YkckelglWWNySSRjU2EkJFNkejJFQkREaVgkIUkKentfLSklSTNlKWhDM0tPQnFOVXBUT3NQdFJl
VlYzR0R8P3NEemxFPGNaQipHe1lkdWU/ZXpMR057NmJGTWJtVy1yCnp3KVEqdm8rZm9RTHBGYzsk
TH5SeGtDR3VJWWBCaFFEWU91JWR6VUxmVG5JR2xJKHM0d0JEcHsmRzFZTjBIdll0fQp6Q3BGc0Rp
b1JsWThNZUJLOVdtaTdkbS1mKVhCTEliJW51NlB2ezZJXzdVVDBBVEhCfFdBY257VENgUHhVZVdW
LSoKemhkSzk8YlB7bVB2YCRnU2RMI3piViFMV3picTRwTm4yfXkmaXlgb2dhWT9BIUM1cmA4SmNw
MDxadykzRUVOLX5SCnpMTFc7KVk2KyZKc1ZpUTQjISh5cDZhPD5ZO2xzVj5VWUVXZl81OGgpdCpS
TjBKa3JHdTBwOXA4THtzX1JQd3ZUUgp6WFI5KWVKTipSTk1PXlJaYlpPWEdOZGllV2dWU3MmeHZx
VEl2fTF4PnZDRHRFazZfV1dBVlh1P051N3NSRXYhO1UKemglS01nZEF9dTcyYFh6Nnsxbng4dWRA
M3dlNSQ5Xz54I2YyQ2l9QGh7MSRGaCZ9Mzx0YmszOH4mclVhPDUpMF5GCnpeUWI7RlMqbzxTZ3VL
ZUBYJmExTFZ4flghVU13YlRSKWF3YDlvaVEqZmBkKX1gTFBSUjhiZEc/Mm1MND5DaUZ7ZAp6K31n
akVIYlUtNSswNnZpJmxicWNWVTRkS3lNXzJsZ2tvKjxSZUFDclJkSj4yTFUkQDU4TTlFUjA+QDgl
OHtRYEgKek1ecG1mS3AqISlZa0xpfFAoR1QlSGAtXj1FbXJFVWhRNEk/dXh7KGdiOENmczNZOz0k
ciE0LU8lMnluMTAoNnNSCnpVNng8d2NTbFIzPVh5Pm1vXiZfJFNuZkNFYlRlbUxQU1QzIyV6M0oh
NVl9cG97aWhaaWNnPzZfQURmVWN6P28xfQp6bUp4Q3pobk5Ufm8hPXZobVJURVhHUTRPVCRadmhy
NXs1TWlkajJ5LXB9b0dWcVJGd1FpTnhwIzItKnNqRjZmc0YKelY2WDxHS0BGIXdlUFVVOzd4VDU+
aGhzU0w+d1IhUW1MYFFjQlBlRXBvZj4pMUxOa1pFYEFMK0c1KUA2cUM+cVIhCno4Kyl7YWt4a2k/
a2FGZlg2aX1wWHBfYFhsY2s5NH5TLT85KnE9UXFMMno9STRCQFp2aUA0P3lKaG8zUUlkTkk4bAp6
IzRRS0dkPCkyOzZWeTtYI2UqeF9nUCpoSFd5RkZncXVrT0pIN25kUVVLcnkhN3MrfVM+fEZQP1ZU
M0RsSzFxUVEKems9b0ElclA8RGkjfTAkYT9oUUtAXmpOQzIre3tuT2F7MS1KdUdOLXV7YDlWTy0r
eXd1NkFmbjUhKyl2SW56fXshCnpCbDAoeD9SKCV6Qj4lQHUzUSlCSDxyfF5QYWEyTVBFPUZGbzN6
Kng0QzwmUCY8PjI7KUxpJm9MMyNNKnIkIXtJaAp6QVNNPSgjVkNvYm8xQmhSIypAZE8qflBYKSNn
Tjk8MGw7ck5SS0c0fHAhXk5vY3dASXk+LX5aSj8wVCNDcVN4RCsKemV2aj9tQEh9ODlUVDJMPDZI
c0MjQkIoP31EeWtWSzlrKjElRn59Tjl5NEthZGVCKVJ2SnE7QDNwbVFudGpSdXlwCnpkK2JIMncj
fn4/Z25ObD5jQk13eDVAdlVDc2x+NGsqXn5yNGFSIUVPUkFqVzAycjFlR1c8fS12SWwzQkN3VlVF
dwp6aCh4YnBqPmg/ITtNNGdEeFZ9OF5pbC1VcjtyMzRTX2BMZUQjdlhhLUpLa0BgQjslIT1tfUlM
Zm82R0M8ZFp2Tz8KelM3KFFaUEwrcEJFOCk7aUg0UEtqVmFfKnk2WnQyZz5SUC12bndHTXZTMVRD
d0woZndQYy1Ub31PMWN5VjNLPzR4Cnp7X3s8Rmd7ZEAjcmpCNX1BRWc8Xj1xRVFScElBOTdITXh1
eGA0cDFWUEMyQ0B6MmZhcXNUT2wkMi18KzhraCZhMwp6YnJkXklGUCkkY282NzJ0VXs4O2VyQDs3
TFpxbSN8WEV1cilhK191fnJuVkVUclQ8RTQkRUgzWF5UdU9yVEMlVEUKemNAYl4jZVRDe2Eraylf
fVhAX3VnRjAkanpXN1RHYnR0fU5HPi08cG0qO3NFdmtJNzZkSDV1aXZQdXkrM1RZQ2lGCnp3WlFe
QkRvcW9xc0c+MipqWn16T2R7aG0oWiUxYWZpOUxQY1hVdERTZj9DOUVoM0k4MGx0LTZ1Yz0mfnFg
RnVXKQp6S0hEdkZYZmVnU2o4TGN4RCN6VXVGPGxaRHdGMmNkOE1xaUg9bit9JEY0PFV2VUtndDBW
TyZ2YUl3aiFNUzd1aEcKekFDUTVRR1ohZkVGQytlVzByamFANXZ8YSF6ZjN6aE5oNU1SazEpSyRK
fkRLeHFtZXspLXgqPlBZdWdnSXtadkk1CnpqfFRKUHBYJiRjVFNwdWZaMjN1WWw+bSM0VXZhLSVO
PDEwd1RJMU1hdn4pLT1wK2ZvKGo2UlJ4ensqIVo5VS0pQwp6OT5GZylnZiYtP0xyVlZ5QChfd3g+
JW5ifiNmV3ZNalo8SzJ5aHRWN1QodHBQP2FudXNCLXRyZiVOTX55VGBqalQKelhaSXU8JERHbXB7
dldRfXtUP35EPDhiaTZEYDUhbzlNTEZYKGF6b2Q2aWFoR3U/fCVyN1lYcF8yNWNlITw3SSt6Cnpk
cntfMGpsaWBPcU8ocVFsRTZjUmo2WkBpSTA5el5pLUZMSmZAM2tsd2ZOPW1jS1EkQmdFY0h5VCZh
NlFrVVJgUgp6VTg3e1ZgWFZlQnsxRVAwOG5FOWdFTF9BT1RhIURYdXo0S2IkKG1RQytQeHQ0Znhh
c1V0b0YmYEFkKTB1RGBfbDUKekspZ1NIMGFtRDkkfFBTWXd0ZmluLTFnckZVWVJLZlBCYGVCcGVQ
NHR5YH5II0pCOFRubnp3Wmh4Nnp4X2RnYkZjCnpeeyRMVGNmSG5nOFpNUEE/bFRqSHVCcz5+M3Nu
SUU0UGpZYyU2KiNeSEQ+KmhgQE09Tm8oOGdFTz90R0c7REdMIQp6SWtuTjZWVklwTGVwZDclXjlr
UFE9QG1+JCNHYGQmMjJ1QmQ3TmB4aVA3bmR+OCV6TDh6WTckNkhKWHVDP2UoWVUKem98WmhmRmxY
V2tofThgYU5PVEV1aWNOU304MF8pYklgRlUpZX1HdylIKD5TR1pjQUIySWpKJWYoeGpTMEQzZyRm
CnpwS1d2RTZDfUk5NWdFNXVjc0dKdyFJKF51QFFxMm0hfWI2MkpDMnxwTyUpeVBITShpXmE0aEw2
cyFedWhTWURRKAp6czYtU1UrMy0zdyRLb1ZOe2xSPUheaFZTUCM8bVRqdCZ3KzUkKGN0QVVGeEla
dXJRSWlGY3A7TTglMktfPUp2P18Kej5FblJmQ05vb1M5JW9QX2JyaStzSHFMd3BOIUo7Z0IjSGJD
VCp3UCRrUE1XZnA+M3MkIUY+Qkcwbkl9KHRPQmNTCnpgO3xhfmdaTEY0MyNoI1MjaDlLPGJ2Uy0/
NDM5LT9yT3Y/ekJacU1vRE8pOG0ofVFXRUN1dHJrZmE/KklzQFQ8Twp6XyZqZkFpRkxfIWoldFR9
S0Y5R01IanZnLT8oc0R9ZT0mdG0/clZ6WTA/ZGojJDxvOThhQkV5I3NHV2xAZUNRJjwKenVYXzJw
TEdpKjhGNnNOIS1NJGQ1SFRYdUhIN348bXJyJnE7RUtwaS05LXI0PWNhZFNzdWdBPG1fJG5qKTx4
VmR1CnpncXMmMW0wYHw7K0pFMGxtUWtTezJaQzteZ2tteCYkKzdgT3RndTBVWmlIZn4pMDtiZyhj
bEp+UjF1QjlNV0BEQwp6U0BpRHNzJnNMRmhPITd7emhjc0J6anMrQFR0Nzt0WSlPZyE5OHRBREkk
WVhNdldnbSNHOCpoZ3htTmE5ZkkqOTYKekFaO2BvcWFgKXNUYSZqYERlX2B0WVlecnZmP2FsekJk
TioxWih8T3E/Xkk7VVV+NUdKczJScFZPOV9FaGYwZnAkCnpjZ0BUMD9AT3YyVjhtdHNUdSpjez9e
akEhNVQhNFFjYllaQSZ1bHxIR19LXnAyKHt9ezxnPVF5SUE2ejV0PGQlWQp6cG84SWNpe2skdEte
PFMqJmkjYlMxdD9PeFhAWFlWQWAhP2ZPbEA0akxLYTJucTh3OUhpMWBaWFQ8ezFfPFFaTUwKelJF
QGI5NXRJd284cT4teE5XNjJ0ZFBzRDZtI0swaU0/ViZHYllhTCtUdjFSN1gpZ2p+I1NtVWI3OHFM
bmxxb1BeCnpTZWBna0lQQHpvak0wJkdPPWhAfFUxQnJqX0E1Kz9DS15WbD9xZ2pFKT1Nb3xNYW58
Z2NrWXZgcGtiU05vS0shbAp6SXsxMCNrYlI5e3AldVJKNHd4PDJNdE1JPm9yME4jY1A8JihXUl8o
TlJ6ck5PYlE2RTRWdFV6Yz9mSD9RYFNtVGUKemU5dk95Sn5YWjFvMys5VVB3MFlsZ0pFSXdMJWdC
eGFRTz10akVxRHh1QDhxPlA8X1JyWCNHeUFoNyp3PWUhJXpNCnp2bW0rWDQ+LXslM2taPkw+YD5B
OWUoT2VeVzgqOGltRUtqdnJYfkI5Wj9tRjRwZGdBVzBHY3FROEs/UFdiT3RsaQp6NnYxd1hSY2pV
TT9Va05TaVJ2fi1sRyZuPGUtLXJhdVE5I05DMT1GUCp4dlhmNjJ5WmUtKGcxPUVsWCFsalA+PTYK
eiQtWHRpPiFBWmBINEI3dnJQNj8+MHs3VXJ5d0Iydj5LY0VfcFc0TElPJkUxWDh6LT08RjBQZnNs
VyYhNklWNSshCnpxV3FxcUU/WClCNVl9YiY8d2EyS0E5SlRYR2U8RzB1Z0JAWTs8ZWpJa2d6dExO
TTE5dXQ2fHNiX0hEOGhEIzlJUgp6dVoxUnBIdnhgR25uJjw4T15JR2NAVmdiSVFmJFIqeEpGMksy
R3drQlEqZmhlTzQ/TD1BfSZWYGxIbnRfYn4xUUkKei05cnxMZSNfZU9wYjlUKDdQVHJhI1VtfCYt
XjlrJTcqZW82djchUDN4RnpkPGxwMkEodHFBdSlFPUF+TjhpTUBICno8dShJUCljTnRJO0MyZCRQ
RX5VP00kPG08djF4WWlab3BMVDxgPFoqNHhNIzItcDRnOEw4NSlhaEBlO1NASE5BfAp6PU9sOE51
cmxHX2pCTygocjxnaWUxVkN3czY7aEtwKldJTSpZeWJHKG1hPko8cUZiXzVwen02TD8lVW5SdHZF
TXQKeiRwalp0Kys8KSh0ZHtrbVU9dG5zbExuXndreT5MI1IzQ3xZTm5Na2MhKjYwYk1Idm5IPGBp
bEVHJXtKJkZlKiUrCnpqVFpHJHk2OzEkTD5gcVJfc3B9d1Y8aFRzZ09mVjtRd3VWdzdlfGs4Y0J8
OU5mO245SGJmP0hISVFQLWZFJHBWMQp6I0prTl4tfCRYdl9IZUlsbGtkTUdfSCk7bVVQVSkzekc3
JkNOUCFpRGg+ITgzbE5yXntzMDhWMWZZJH1SdERCa18Kell7UEtxSVJQKEUrbmpsSj47LU5lOURU
RTlZYy03VyMhN2U3RjNZVnRPZzJ5SyMmTTwpdyM0SypjKGJuXkZuSEdpCnpPTzUzcDFjZXwxOGBp
c1JpUHkyKUNwJmNYV0NNZXdTN1UoPDM/ZnIkNjwyZlAoVkFrb09rP01uO242Y3k2ZW9FTgp6Y1RO
UiotSWxvTlIzdjUjcVRrS34mUTkyIWhmPEhnOzUqZmVHYVFXOSM1aH4ldj5mQG10NT9VPmZRKShz
bjk/a1oKem9FTEg9QCZvLW09IWBRdFZQKjQhWnEzTUkqQyljKjE2OU9AQTZ7U3cxQnJVNzdiWDw3
KW8rQj1PS09UM01fcVV1CnopRyUxdipEdyQzIXtXVFdlfTJvfmQqVzd9e2l0dm9ocUshekk0SE5r
IU5BTEFtcldja21TVW1Oc1dDM316NTg5SQp6PyhQaD9UMHN4KlQ1UDVlT3YlTVliUnpVSik2S24h
QEBTdGRhYXZBXnVwPkJ1I3YoVkglbmxNNWlOZ1khWVVyTWkKemVfRnstdEF+Sz9aKz5EX1pgZWFg
K3goSTx2fWB5alNKQGY+NVM0cjxoP14wI1g9JVdhbHxtZT16UW82JVdze1psCno9fSstdTh8Y1ND
SiFUQF9VWUg8JSRZWDxUUmpnJFpsPCREUnZXJCFqRXJAKDtjbDgldHY1TDBNJGRxdV9jRWAxNwp6
TUk5dT5jISQmMkcjeFppNSFQK29kOFRVMzYkLVUrMmxVeihHKV5NPWApWEhDdWJ9cCs/czxeTiVV
TTR2VkxYIVcKejMhMF47MlhUNWNyb2s2aDE9e3ZVWjZobVE0TjIwemA+NW1mTn1XNGkyYWgkS2dj
blBQcEVzXygjO1F7KTI3ZjwoCnoqeTJpZmxxYHFCLU9KWHUoOHdAUj0pLT4tYTZ8NGJOeE5NbmZ0
PzIwSGt1Q3kkNiRMMDlrZClHKVc0Tz05Qk18ewp6MG5qeW5PbnlOYVRWckZBUmImP1d6KUtPMGM9
YWVJcm1KR2RqMlQyMVUqZHs9ciYlV0dCX2ZCfSFDcmRxJSQhaDYKelRZSFpVOTFQWl91Nn5FKmdU
eTNYQSNKVjdXMVFGNnNqTjtAaExFe25DWDA3UUhUcHZIMTVQYUckLSFiZk5PI2QjCnpMPFV9YFFu
PnoteVEmdFNZIURAS3sxc1BDcXkoWG9wV0tLRF5TdShYMHlBZHRyQVBid3ZiOzBLendmQmlUV0t8
UQp6PUB+ZDBePDNNX2hTUiZDZT9BV30xNk44aVJSWXJuSkQ4QjhHIWt+N0BHUW9JPCMzMm1ULXpS
dFkyQ3BGMmYoWEEKek1VNkNrSEAwRU4xVU5AakJ4aEJhbzBZNzt0e2pjMWU0YSswZkI2TjdiMnlQ
byg4QUBAMmhhQm5hc0FmJW5KQ2pICnpxbGAhcUo5emJva0EkQStMaSREXj1yJSprOTI4JVcwYSNv
PGdzJmB4M0Btcyo0M1J+Nil5bnVMKnFFVHhjNTROdgp6XnBCalJnQVErQGJLd2A1O21RfGtaQ2cw
R3dAS1FlKTglRVZHazFsSjxmNF9vTzJidWQ5NkY8QXV9UCt5OXBaNV8KemFkdUBaO09NVHhAWH1T
bV9Ka3dpWjQyfH1WPEtUVWd3c0xYOXpeNEpmIVdjLVg5RlJzNkRqSk0/NDJAO3pfZUM1CnpVSjIx
KG93aG5pKE15X3JZRE5NSWY+S3tveWktJWkjKHtxIWkwKVdKMShhRkpnWSokZ257OEk9KFd3MDRx
STF7SAp6eWUwaSpNcmB+dXF8aCoxeWooS2I2bHR3XktAMGE8eWU4WChvUnFEZGV+eWFuNllZeXUt
Rm4yUksjWF81Sz1QcHEKei1ycGpPVHJgSTRPSjtXKD5tJihFbUlgI2hSKjBjdDgje0J+M0JTejg4
KzNCemc0azgxKl44JUtFIyowMlFSKlVLCnoyTS1eSkZ1I3ordXgpR2o5LVlwbjdJeyRvUSlvTDFg
bCZ8blRvTms0VGFtYl5oUlMpbnVvWklFakhPdEZxZmhheQp6WlVUYW4xalhWV2hOclRZQSRVbExs
Mio1dzREZGtCYFpmZnNAO35jWT0yNnV5ano/MlQ5YlZpJjJzUnBjSlFFY30KenN3PHhsXktsTjV7
Q2RKR2dkaDNZZkt+fmJmQGk2K2Exa2Axbl9MMF5yZiYhO3R2KlBYU0ZfJitRakZ6TVYreip7Cnoz
ejxBKHZmLUlFVi1FQzwtbGt7WHA/fUZoZFgxVEE2NVgyZkRmeXkqN1BmQHFScGdGflhXNEZ3Wk5m
Jj5xKitQLQp6RE5eQ21lRHclc18xKyV9SW00OSshI09qWjtqKFEqaGZrI0JtfXZjaXh0TFVrLWw+
cUBgQlY3cHBPckcyVyNaJSYKelcoKX4yYyp3YmdXbEcmfXVWazxVMCRZP2JlVHN2VGJTTnFZUENE
OTd0Qk5DIS04fmU1Nz9ZVXJsQngqWkxLbntnCnpjQlB3YCU4c15TdTVDK2IjR01FVHt2XyNwcSgj
aHFLTlhXOHV4SnIhbVdjSV48YDdVUjxJV0V9RVp7NDNhIU95KQp6JHdfV0M5eGl9dj5VTkQ7TEV5
QD8jQ3t9NzdOfldZenopP0F6QEJAU3l4RiZRZndnUlZPT24lMGF5ZTc1JiZ9PlMKenpYYyREMntE
NXNLenA/a1peYURuYCpuRiszfGZ8ZShvJE0jeVIpc180VEh3dSYzdmkqSlB3T0JSKSU5fGNRXiln
Cno0WEhDRkVzS1l7dzFLQHo9QUlBdlBLbDN+dGJfXlVJaEJ3bUJEbGAwMH5mcT1TeiZ4aDw+UEEy
aEpDSCFoR3dVVwp6U2d0cHJmMipMJGptRTtJPHs0RihHZ25jJVlBWGZyPVNxaHVkblNLZ2JnVX51
bjJae1lJUntaVSY8STN4IV5faVQKemQ2SjR1O0ZuQC1XeWV4UTM/VjwoVXNldHQzQysrdkspYHV4
JE1hWlM3VUc8XyRPPTxlJmM3WDhuJFJlVWB3WThxCno/bmBPO15ObS1BVGhSMHhqYmopZzAhd2VZ
T2JITS1CRSlBKzt6e2JrUyZNPjY/M09VY1NMQWFZQGVXYGVFZ3B0Nwp6bFVsSGVtKlI9O1Q/UEA4
NytlaT1LKmkpYyhgTTdyZ1lwfjsxdjNVQXJvVDB6bzJiMUo+JChFNzJlN3dKUkpeaisKemZ3YXts
UH10PEMqcndVZ29WZDVMVm5FbjVFTTFrc193YlpZM3ZGU3M9I3wzY3dAOX1Qa2ZxM0FGN2g3YVIj
c0M4Cnp4c0VzfE1zT3pKNVh1eVJmSzMjQTl9VW4ycVlER1QzeD5lV1YyQ2F0KHRgR1JwfEZ2UGgr
cV9mcURyRGJtX01ndgp6ZTExdGNEaH5aeHcrI254Mih4e0hlPys+Qjh9NyFWYHNhcm1WRGU2eyQk
czVgQUQpTkYhKilMa3hoZTg2WEA4WUoKelVLajVYeW5DNVRraGA5MzNtaUUyWGVJcnE8TWlGcFFG
Mm5WfEs3bHpMfDh2P00lOVRxOU4jJD80fUZMNldnK19RCnomNyE/YWBhM1BSXlZwcGNlOyFuKDI9
SD9XJGVvaTBJP3hxZGFhM2NeKy1gd2pQRX49UWtIWGx8eyN2dFhASlc/aQp6QjVKTlJUMmItX1Qm
WGlUMHFicnE2UUhSfXpHXlA1TnFHWEp0O296NzF8e0smRGhNOUlyYEg+IzJETVheazdRTFoKekx8
MUREU0NzYDxpM1Y1OEVeMEp8UiMxJH1PVTAlazB4Mj0rcjlxbUd5cDtvSFlNYE5GKTFqaClsNzJI
ZHpyb20+CnpQfmI4d2dFY19BPHhieWEpVmQhUz18Z3todChDTTwtUVQybkNqTkMhTjxJS05nJEdE
QE5sJiQrOEI8dyNnciZ2fQp6VHw2eCUpKmMmTjJmVDA4WTN9WDx1NkVaflBGMHVxXitua35WfUN0
fEZZTXpDSlN4MFYrO2debTttXkUhN3BlRVQKelklUXM3a0Y2RmFzP2ZEaEMkRStadHoxS3spdXBk
QnR9Z0pkeTRXaCR1fXtnYj1KJjJGLXpxK3s1OEo3fWNDTyotCnp1OEZMISg2Nj8hdWhQcFlZcXc5
Pkt1T2tTNjg9a0pKY0MhPHlmKUktJXBoTTFBbXtKdzZWJkFWY0s5Z2V1IV87Mwp6Tnp0WkN2PkxF
aHYoamMqUEpjK0pESkVabnRjOVhuRGVvbl5SMUtTOFZ5cEVLVlM9IUY/NF9HKEtUTkUzeXd3MSYK
ejw8NEZzbSMoVyYtRUV8JGVwIzhSMntLWEBeOW4rKW5iUl9DdUt1MmB5LT9qJl9FdCNxTCtfSjQ7
dE49MldBSj9fCno+R0F3YTFMZDJgcnpfSnstTitoVUVgN0Q/JHZBQ0J7VSsjRGY0cks3SFkyI3xI
N2FkM2BncXVDZGhBTTVgNjQmXgp6bWwmTit7O3Q4KkFAc1VSRk5kKDI4PXhfeWBaUGlabVoqSlR3
RUAxNGZYZkR8aDZHTDUpam1HQm4mRDBMPVZmQG0KekNmc3ZoVmE/ITIqUVhia3lYUkhNbDxaQ0h7
aj9GK3pQR3EmaEVnU1omPSh3YkBVY0xzPnZJUFZJPW08emJ3KHwzCnpoIX5JXkVEdURiVTxIJT55
VVlmRmZgS3Z4O0hOTmcrfm5mTG5uaXF7VTMyQX4yYCUxVnp8d21URXMyZSQpV1NSegp6KXVsMVRZ
OztXQVFsKXotS2RnMmNOYDhJbntebElZME8pa1FeSTJTb1FXZn5GPipNSnAhcFZtIVRCOXktdEM4
el4Kem87YkNRP3tqJTZwNmBJO0hrOHQhU1lyKEJBJj48WUpQbiFWZnZfMWJjaT59RHJHeDxSa35W
KE9Yel5zfiVsXjFMCnpOczVGfDFESm9TOVg9clZeRWl7VWhJN1NhPmcyVVlnZ1Z8WmsjYE9nNyVA
RlFBUHZpaWpHb3huM3VCbjAxMFQwOAp6USFuRjxZYkVVPlp0UH58aGpTTWQhKDErcCpFeiFeIXQt
fWA1ITxHV2BOM3c5e29wQjtMITA8MHspez1RZjAhc2QKemRKWjIxUF57bC1EOVZ5UVMpPk97LVIm
KkdCJDZwNDFKa2hPI1UjPGxKNHdLVGRqc1pweVZqbllCam1DM1kxQWJiCnpMfStfPXFeVlRLRnh8
cVdDe3FvOUMhfUNOc2ltQXtSTUktR2A/ST5me3VOaiM2NnhHTCQjZHp+PXRTa3BUJTRpMQp6Z2pr
UUtpRWE8VjhWJk9aZm5UZStITExOOWJ2YiVQNShxWkQ2dGg0UTRwc1pTMGcpJF5KQ1ZubHIyPTE9
Ql5wbnoKekhrRWpvSyE8P2c2LWxnKkM8flFfSk49ViN2RGpBRVAtd0ZhTUhWVmFJd19McEB1Zzx2
XkhQX2pBYEg9R3skRVFgCnoyP01zdGxSMmRzWDVaNVMtRzRgb1dSajh1Pm50OChIKU83LSs4WlNv
QSk3Xkp2amJLUC1ORjUjc2k4MzhGRVRSOQp6ez5GfWFFdHl8QXhDRj9fOUsyYSFQQ0Qme21MSWFM
bn5yWTlQa1ZsVHskJmpXLV45TChEWlBqYiEzISg/NmdQPHAKelNuSERsSnxFaXspK21pLXpBOFFT
e1VsZGkqVHtmdmp+MWY7O35UQkQ1JjB0Y1kjcUArU0tSNDw+IW9ScHRiQG4rCnpqO1NqMUV6UCZy
VEh8ZHNVRjVUI2NHcm82RzRBUjJvWVA0QTZDJCRIWnNNaGItfU1nVkp8OURmOW5yN2xKen12bAp6
MTQ4TXBuaDk7PT5pKTJCdkAtfG0pYiZ2UVUmTU1kMGhrQCgzT09nXiZiZm1QRF81WUtJO2gxR2du
bVV5S012TlMKeipEbEBqRkVle0dnUVlWODJRNWx9VUBZI1ImaTU2ZXMhZk8jS0Z+Nj5tOF5qNV9W
WWkkYUwzTUl1ckREPWlWIVkjCnp3KUMkS3F6c1d3Nm1sIV9ia0I1OCtQbnIpajcyeUoxOWRaO1Fw
ZUNAPVlzcWM2fm0xWGx4Sn10PVk/I0E5b3ZaUAp6NCpzJmlvP0tTQj01WF9NcTBRciFuWi05N1Bj
e3A4Pk5OMmh3NkwxJD98Kndkd0UoKXVAR1YrOGNSbVZ1NGl8bkYKejJZQ2lhYHtIJmR6WCtAK0Z+
ejN9JjJIWn5BJEojKDNyaXpRVThIZUd2ZUhMTz8+WE9pcT1QI3tGYD5pbyZ8fSN9CnorcVFKYiMk
PWI4Ymc9UHMhPGU9KlExTmd0Y1JQRGp2KHNrVntMV0RiMnFNJUAwamtBZFJ8WVhVMCl9Si1WWihW
Twp6dnt4N2I9cmxnQEx6ISsjcExGe1RkSSUyNXI7UDNfdExmfmE8MW1+ZFd1Xik5WHwhLTA2NjBW
d05jfHhVI152Z2UKekBeKDkramdJTCtlUUlKUkkkZjRCdmYmb0UhM1RsaWoyVytkRnJKbFVGfUpM
d2hDTW58JjB0MCZRaUFac2ZYR0d7CnpqVmdZQkhsUlJZREEkcnE2M1BQKzU+e3Y1OERLIVojRVdC
eitMNEFEOXpwJXwpaT54VGYzZXswK35eMSYxbzYjSwp6d3IzWlJEYSFoSlBmVXxlQjdsbTZxZU5E
aSklfG9xPSRydFNqaGlpOW02XldaSHtzdD05ZlEjZGhyNTJzRUtjRFYKeil7VSg0Qy1HIyoxQjRU
SkdqcGBDSz8tUElFQ1MmemxgeSFGWHF0TihYPXFFYSpnQnEzXlRGbX1DcGohPFp7Y3YjCno7cDV0
UUklJFokMjBPbFF2aWFGMEpFbERnI35TVV5YfmBsX3BZJXZBU1oweG45UzBZdyQydTNpZ1AxbFhl
bEMlWgp6MipOb2YqRzVJcEpgTEFRZnJhMmJyXl9TYFUrZCRffDZ8SHdDSTNGVmNGUW09OURmUGF3
QEI0WTh7ZFQweStrNEUKemxnVk9KQWRVM3g+bkx1Ylg3VikkQD9BP0FVMEh5RGl8KV4jZDtvUD9t
Jk9CfE00fipecyFCQ197QFI9RHFWeWApCnpeaXozakZLXndBSGJuZD9AO3I2RmRGWnhtSEE9Q0pZ
PjlOWTdgdlcyYUA4XzN5PCZERnBnQmtXQFRgPWVGSzhvTwp6VCh5I2VTfWxyT2BaQmZjUGFLPiQ5
dTI9K19NdGcxSjsyeUJONF41fUQ4WEV4MFdkR2NpM1BRa3sxVWFCPFVFPHAKejhEYHFJO0BgWmNP
QFJXZz5nQ0xqQThKJmwkUU0pMThDUml+VDtTNTRaSChAWG9+JFpGJkpzP34hfCVEfFpYe0pqCnoq
cGMtTDNQfiNXa1ZmIVA1MUR4UV5LfUNERD1ZP2hOQT87PXZwcUpJQjtFOGc8R3J4flhCMG1qNWpW
Q1lGdnozbQp6b3pEYT5HTXY0Pz58Plpie3puWFJMKj8pUWtffH0yaj9UKDxFJnc4OWhLb2lTWFpQ
SS1saDl1QkV+bkJgJSo4WSMKejAqTWI3ezcwa2VsdWw4cShpP0QzOGtRO14pQkdJVCNLOzJHYzBP
LSktPVI4WGhDRC1mUnZqIUtJJn4hbkItdFJHCno2JWtSaHAtKGEzOHluJWZ4eHwzfTIoOTxXTSMz
cCtQRzdGem5EUCZrU1hZNGxhITE4S3lmNT1aZSlJN3UhYmRKKAp6dT81YndEcTB5Zi1VPSMyQHd9
JXkmJEhMUGw2JCMoOC1lS3VLQEdzTHRqeWxeejNjcyU9fH5OOUZnOEBIaz8wc08KekZjSD9sbyFe
b0omN0woP2xmQzlVMVhzZGEzVjFSQik2KV9jUVU+U2VFaWYzd212WjAhMEJLV1IqJiNNLUBXZStu
CnpkIVktRF8pJUJQPCshekhNLVdnTUEtPHxFMjZPKjUjViZ3Ri1IPzdLe2JpMHQhSmFAPCNUMTFw
YHo3a1I5YkxeSQp6eGlYfGJna0BnRztVfmUzI1Z3ZmQ+YlcrRyNlOzA0eClJMHM0QSZWZ0koRmp1
XzBUfGNZPmZ2S15mfituI00pLUkKektBP0AwQntQQDMzRi0qRFNfXkVUTDBYY2FPSVJkRFc1VjRC
X3pZYE5kP00jNz5vZUchWl42QmEtZENre0o7bHN5CnppaVNVaHlPKz5ze0M3KURuc2AyUmYqallg
Z0hrbVU1Z1JhMk1MQUtqVFp1MG1BTyNvQXV0I3ZFellGX0MhP3xNRwp6UWJ8UlllSVRyRG5nfl5L
OXlSQCQ9VHUpcEI2PzU1Z3RBcns1fkVQVGoqcG5YZVI+WiVtOzZHTUUwX1RFKDQtcncKek1FM0U4
ZkBpcVdsZ3Q9fVU5RE1CY3BBMyViOXFiRnxFfjVNOU5XZDsqZ2hiciVUSCkmXik1IXlDJVhaYHY/
d0pUCnpyMHpVRXtnXitYdFV3KFU8Q0VTJigzPGRiLW1zJCN4UnlvJml8aUxVbndmTyFHQmM2MiUz
P0Q4ajJsPmt3WEkwQwp6e09rcyFqWlMxUF5DMiZtJSlkVHVSQ2w2Nk1KOU9Tdm87aU9ra0AqNDlf
ZlM0VUsyc0lnfSRvTjVgVClXVl9qfiQKeiMqeTsoX2hXMnx0b1ExV0N4UTYtdkNyLT82KjNpJENC
P1QoSXkoVXU0QntKam4zRnM1KUhZS2l3bjw3VU12QWhNCnp0bH5jaWIpaypqM3dsMC0maz5EdSkp
bENJJCFZTDNMcFk/ST5nKWx6Rl9pUyY7WXJFTmNGOTxwR1BhcmVhS1FfdQp6azs5cWFaNVhgV1p9
OTJVe1dMIVEzTUNwXz97biFZZCZscjEpQm9oJWd8WHhpMVNhUzRqP3l7LVhzRE0/UUMmWkcKejFD
IU1PIU4/aU5KJUNNdFArWl5sYmw5ZGBHZkxtZ2lhMVBvKjxnMSkwcWE/NCNOVWszN3BQV3dHS2Fv
UHhhR0tFCnpsQz1YUjAmP1RDNF9Qdm9adUMpLXQ8ckxHUlRRJGlQYDVoYXkkNUhvcVJvX05hfFBu
cmB0VSNISGMwN3w7NzRIagp6IXFtO1ZXVUBHKklUKHhDTGhoYWs4UjI2RT8lUFMwWnZCdUEqVUsy
Tk1nTGEtbG4haDB5KW4zJF5wejJgdDgtdlcKel8kblRLS1hlek9qT3c0ODAwNisqbndtRkpPMWAj
JmZkR1dDaXFrRDdzYXNVZno7X3BWTUJjUndIezF9UURgfndECnozZntwfUR8PWkkbmVGTUZ5UkZw
KGEzPU11N2txRTk1bXFMX3VySEN5aVBRKXU1NVZnSUQlYH1sYGUoOz1lbk80Swp6TyVtaW4jUGQp
NGNeSGE3Zy03M35VflkqUmV9d0BHLXYpPzxOKHBse2cra24kXnotPlJIJWdqPlgrVTxsNXtSI2kK
emVSYl96KUR0SENoaktoelNYZGQyaEp1RlZ4LSE/VVo8e0J2JkY9fn5TbWZ4OGM5MVZGU3dNY1kh
cn5nUWg7XzRKCnpPVVg1KXcxOTBBKUF+SWkobW0kV2RqejcrQCFaYncpeWA7cUZDI29ubWRNTipT
Y2ImSU1ReDA8NGxPYVZzOGM0Ngp6IUlNR0lNLXZpJjJXdStVJlFRI1N0a0IyN2YqO1M5V1IzKX5M
Wks1X1hFI3ZaXlZWYXU2OVpUKk9FPk50cE83Y1cKej15OWJ0PCF0Ul8xTntVVjYoeHgqakowSStQ
eyNoS0wqa3doMSFFel5ZeX5vPiVVSFVtMTRiJUt2Qj5mbWtUPWJfCnppZ2QpeEJnSzIje2gzMz1i
cWw0Szs7ODN6a1V+VUIxMmpkTjI4K050I1deUFdmKFNzVD1sWndOWFlBWHdIOHArRAp6MlQtd0Qx
YDZWfXhgSkpVNSlnP2x7S2ZiWTNVe0sqamtGOV87ISZwT2o3YjdiPDRPNWcyWGJFZm1fZzsjTGRw
O2kKekQ8SEF5ZkpEXnQhY3N+V0NTSk9aSyMzUlZQR3N1cDg4Q2A3UmYzPWNBcV42JlQ3ZnMlTzYz
cj9YRX55aTEhbUE3CnpuYTt7SjlRa3cxLTNVTUEwd0QlfSVuIS1ZIVhqOT0raVdxZmZ6KVFyNz4t
KlFSPzF4PlVYJmxFQXs3d31qaVlDSwp6dTAwTkE9I0BGPHZnO21iRHArdTJDbWBecEI5RCRTdUY/
MSpldn50USpnKFZBaG9tby1uSClUQ2NwKzgqLVlnNiEKekxpe2Y0bnhYe2Qye0xTWWEzZTI2KENv
Y1dpXnlnZW1ya2hTVVJJOTgyKCErMDV6WFFsITRRUCZPITtQQ3QrczFaCnpXUl9QeFVpMyZZaXh3
NU04bkNIa0RnNl89ZitoazxObk45TCtjTUBiPSNkZ0dwSEspQDhvM1R1OGx6YnFvX2NlcAp6Zmty
elJ3PGQwSURxNUhBdHZGQ2xVXz1YPyR2X2E/S089WW9oMzZ1ME94WiRTIStXVVE+bUJgQ0VnT1BH
TD4qbSoKejZMIUBkcUp6RkQoNDBKRS1xb0I5QzBIRkwzfDR0T0o5MXBQVlpGaHc3ZXU7UnowfXck
c2gmWE56I1hPcTJUdklyCnppe345azdMN003TCMhTX5jcmNgSTZXNSlyJGFHM31wVjdwaiU7RWBs
RVAtS1cmdj93IUx9bn1tYTM1YjtTflE3dQp6V242UUQxVzR2P2J2JGw7IUJ4PWdiT3VGKVFKaWVO
X00kbldORzQ5MzlhN2R7MH43Qmo8KCNPNyhwdyZfZjFIaV8KejskJGYzKEskK2xhUS1zc1Y5cmNa
N3NVeEg/aChPRHhNcHU4YH5xMFJAM1Y8NVpVUjdOMEI+WDdpXmsxUDExKz5jCnowI3szY1U3ME0l
Zj9lT3pXZStNTnhANGA8SihEdy13QFlVKWlHaEk9RyVjQWp2ajkraEt0fnNtbnomK09lQHIhPAp6
VjY/Tzt0bHppaHo2LUpOSElOQnVRNWZEdz5PNktmTkV9Pi0lQXkqZ09QYGolbmxUI2oycXBqIzxa
Ri0/QyppZzUKems4c14rPSQ9N0Y2OVM+TzNVclVnNF5pZD5veTNrVCprUXBeWEEmeDlNN1FiY1Er
djt3MDVPR2VfenZ9QFJVM3FpCnokWjRaPFFMcX1VMEtxSzhsQShIdlVnP18+QmNoQmNWYSRmbzFE
Rk59WU9UODBiVFR3RFNRZGNIblYrZ2l5RC1MdAp6S20mcVp5YyU5Q1RNJVBLb04lZ3tYZ3NQc05N
fWtPMH0mND5Kd1dkeWE9OSk1QXNofl4wKHVWPk1eeVNpYkdDd3oKejUkUE4rTWwlcDxkKDx1S1l+
dyY7YWB3bzw8PiQ+SkpeI3g2dExzMEtHeUx1cE8mTSQ0NGt2IUArUDR0UHYtKFEpCnpuVyFzLUIm
JTxYMXJ1dHV6O2ghSU16djBzdT1FYH00Y01VS1FZLURrWGR+ck1Wdz9pR18kfjtqek0/ZEVSUDVw
WAp6QFkjP2N2ekVsJTM1ZmhLbVVzMCkwU3FtdTNBa2VEVk1rQEM2aG9pSDk3RzVgMF47RiZpTHhl
dCNHQDQtZFg+azgKenA5N09YTkAjd3dvZy0jNmw2RH4lTTg2c25kfDMpYSs0T0tyKHUkNnJsZTMy
RzI0IyN9Pk5XJmtqN1RPczNWWEpMCno8Tnl2ckF+SiVwWF8hMlRhWiVNbjRuTykpMFQ1PmM0K0A3
SyVoPHxAREVGQC0pe2ZEb1VeaWFERmYzMn10JF5sQQp6cGwraUx8SjJNK2c5aSNee1FQfFBRaTw7
ZTBTPyl4YkIxZzFfYDw+WSkqdyNQJnl9SSFjMjFVcTNMYzxYaUxyZW8KekNpKE4oRFJOLUNHTj1G
X3Rxc0Eqeyt0K1Z5QGlQRWhzY1M1XmRVSE1UKVZ5b0o4bGY4TUspej5QY0g7NGJxSTBGCnpHJVpR
c3d0dWRyM3Izd310UWBAS1hCXlp4TUdGZG1pZHlJfFc0M0EjLTMkKDZOMiVoaW4qPFUjYFZzd3wz
SyplKgp6K1hxOHBKd21PVUQwRDxJKiptMERaX0V6emF6NWw+NElzU0lHNVIzeEx2MG8tT0c/T0hA
Q14qakhTTWR8KW1ePWsKejhxIVVGMkt7TmQ5UyE1dFghUzVeMChnMTgrblkjdnkzeyh0UkU2QFA0
P3plSzw+VE0pa21HZF9WUG5RQTdrUlhmCnprJH4pVGxIK2dPbjdtPWoydmJLWEItITw/M3czeEZg
TTNBRnkmPz49OUlJX3FhUjdGYnYoTXM9UEMjMiN3YHcjVwp6PXJqNCRTcWc0MzFaZkk7UDgxRj0l
MmFBSyYxTU1DX3lMeHVXOVBNdFNoYkBPJSlSOX5JWTJONEhqSlVYbXdYSGwKej1KN3FoNWUhbnxp
MjNsSjNBb3JpJHFqYnFZK0BQR0dVUGJqNm1OIyQ5dTQyLWtXdjFISylYZio3ZHU0ekkmQXA7Cnor
Vy1aVWZoPVdYV1ZiRD56IXlUOTAmS3R2QGA/UCtebGp6d20qPEVPU1EhWWtPaVZvPEJle2oxaGA9
a31TJTQoTQp6ZUZMJj82fmQjZ2QrRzcweERxTEZAal9HMzN6NmtDcjNReFlOX1E/fnQzPXo+UH5H
biUpTz9nQjxBREg1NThINFMKekU1Y0wrYDBiIW9TcClDeUdfVz41NnJjMms4KnlxWjxoZ1VAbkg7
N3tSQTcldlZqdnQkQ153TTA5dCZ9YXBuM1VBCnohTDlAKk98IVlJIWhRPHJVMXZBKiNzXm9ZKSEr
fUVKY0x6KGNeQDt3T0c2RTl2NyNwIzA0bV9CM0REIWlRNU57ZAp6akFSUklNJW4jPjRAN25YX0wp
al8hNGJZdzI4MEEyczR6XjB7KT1SM3ZKejdReihOPjBqWGBJbCRNNUJiUWtfXj8Kem1iPTJEd08p
Z1F5Zy0+dDNKRCltQng7QilnSTZjTklmRWx3eGw1d0YlKyUrRk5nJFBGWGZ+JXViZVNLNkwyOypr
CnotWlN+bDU7K2wtd2w2e3c3RHlxfXstRlY+Tm42RTsyNG13QTYobilEaFR6b29YR1JpQFdRRkxV
bGMmJmlPPUleVAp6aXZ5d0pOYXdjXj1FPTBYRnFzVlJSMDEqPE1zMCtRdGUoODYyPSFwIUhmd3dO
eTNzbTNuaWcqM3VXUTYpTThuTncKejt6ciZjNFJIQGtPKyEhWldKY2VHS0kpYzU0bWRAbnZUX294
LUVeOUhGMSR5Qz1ONVJPYEl8eURMdVJMazV+bGQ9Cnphdn1NPDFaYUIpYDA4UkskYEJISWE5WSNa
a2F8dkp2TWg+Y088NUhFaWp8ZUVtVks4Zz9JZnNBSk5tcX5FZ1FmZgp6d1J2JVVXXnAmNnZ6cGVt
NkFWYUd0YzNRPkc1d2lSa3RQSzNlcD5KS1BiZCVOaVZuUXNUe05DJW9KTEwtcUohOC0KelAtaClC
d1J5VncmSCgtfiE8RkN7bVh3bDl0aTM5b2hFZjRySz85WEJxfkg+aDlGd0psS35UdClzfkdXOT1O
eyVICnprSGFocEteckhkVm5jQVd2IU15O1B5KiZPa3Y+QD1QajxeKlR5clJMenJ4VXBofSk9Y25H
SjkkM0l9aiRscj99PQp6ej0ydClqYXRuX15LQEI9SV9OUFM9I0sxQnRDcXFRbnNHTlRRZm10NDl6
WV5PcjNYTElrY05RKjlgRG17dG0rdGUKekd6ci1lOEZNSH4/a0k2QFZfcUliVzZgMkNFUXAqR245
ITRMU1pFV3Q4P0YtdT9UOUU4Xkl7aT0qZFArZ1kyfEhgCnpNR2RpS0NaSUojaTNwWjRzbHNgb25S
ZD1lMFUlbiNDYWAke1dyQzRXVX5sd3hTPThOME5aejx1YDljS2lkKE5OPAp6RnNmWTdCU0VKJEI8
N0YqIzVtQXsmWnh9e2pwR0tUd09SdmN2UUIreSpzMUkjUGBpQ1Y/K3hHenI5YipMV1F2SX4KenJo
aHBjaCVRallwbFRqdFp8dU8xJW1sPyhOV3hiTU4wRzNZJDAxSW5HKW4tZm5nSUBoPTwkeSFYNDVf
eHpZWjw7Cno0fEVwblp1RDhXRyN0dysrMmRvVlBRd1k8VmZOT0NlPyV3WDk9UlMxQ1NOZT03RUxB
flVmUCglVmdAYjNJZUA0Pwp6V2dXNGR5PjYhMGs+MGxyNz0tV2dmYF9GPW9oK3xwQSg9JmRPSFdZ
SEFlYG5wPld2KilmQDt+VjZpPDdzM21pamMKelo0QENgZ3pYSj95dCo9NmV3QmM+WGVRbn0+VyFV
ZVB8fnRecD9iU3RuS3sjUzVkbFBieGQ5PnUjS3oxPmd2dHRLCnpkMz8mQzdBTFU4VFhDdSRhKHBB
P25vXkImdlJ8Nn5pan1zaXJwKnAoQEtRWl9JMjQlZVNZNUM8Y2oqPDV4Mk8oMQp6UTd6TmclP0Rt
KT5KbTBBTnxaJkNMek9UZk43T0cjMEY9PiFGcVNrMzw9RGk0YHUxWjBJYjhzZWxPbHpJSW0zaWQK
emp3LV9OUVhffj1rSUIxT2RJaDR1RyY2KWEkdUFlUS0/QDVhTWtGeitVJT5mRVI+YzJDKSk2dk0k
cWBzNzQ9JEtnCno8WVEpTVNKTHpPUmxTQSo+aUJqY3ZiWjc1enp4Z29IcG9JRUNnOD1NMjRAZy1n
YEdMLTM8I1dQcW9CMDVXSlBkbAp6ODc8cF4lN0g3T2V3a2lJPExxKy1RWUIkRD9Kcz5XMFB2KDBv
MXZCcTZeS3pNMUMoSWxNZGsmeSEyeGNgeFpCeTQKemJrKHRkJXZYSW00Yj19e3EldSViRnJDeiUj
eyVTfTViUGxpQn5venhMVipTRzM4YEBqSlFTQkNBYys7aUBlYDtOCnp0ME04eWlmdyFjeFQrVGVM
VTM5WERyQlNlI0doWSYpLVR8YjskUjlOPGgkcXdDOFFCSWQ0VmZVQktxPkdeQU08eAp6V3txWlMt
RU5IcnNTZGY1Uy1vdURBWDlrKjAlNjc8UnBoeW4lX35rJms2T1AjamJHYj1wQSkwMkpFLWRTYGIx
TysKenIxPTtDNndGeWlJIVRxP0A8YndPcCRWUTY8fTI3YXpfJj9FZChld01mJTIwPF5afkYkeSk7
R20kMz5ISTJeTHE5CnpOKVZHfShNNWN1SWV8OEN6djg0PUIxcD9rTmhiJi0ra0NKfkNwQF5XYmNS
bFFOZ2crOFYxPWN0SldCWClrcTBmZAp6QWZGJkgwd1FpbTtEXlJOTHQqKTg+QmxidDM0Pl5abmlN
aV45fHFuQiVFUztFIWtTUSFJSzhZPkExeD1tNzZ6cmUKeloyZyN7YUNfbCk7Qn1aYkdmM1kkNVBm
P0hhISMwdDM8NUZgRUQkcDwjcmwwZTVDRnRxYyEhT2k3TX5VSDdJOH4+CnpLY05VdTglfVp+QmI/
LUhLLTt4b0tDakw4Pl8mMGNMTzt7TVMmMyR2QXwpXyFLU24qcyV1ZzY5MGZkTGNyYUQ3LQpmRCZ4
OHRqRSRXYlhqcyZzblU4KXxeQjtzNnlUcHRjS0F6eCRRcDNLMAoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2Uy
ZGM3MzlkZDg1MWYyZDdkMjkxYmUwMzJlMzBiOTA5ZTNlOTVmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIv
Zm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcKQEAgLTAsMCArMSwyMjkgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVC
TElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNz
L1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPgorPG1ldGFkYXRhPjwvbWV0YWRhdGE+Cis8ZGVmcz4KKzxmb250IGlkPSJnbHlw
aGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA+Cis8Zm9udC1mYWNl
IHVuaXRzLXBlci1lbT0iMTIwMCIgYXNjZW50PSI5NjAiIGRlc2NlbnQ9Ii0yNDAiIC8+Cis8bWlz
c2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTAwIiAvPgorPGdseXBoIC8+Cis8Z2x5cGggLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hkOyIgLz4KKzxnbHlwaCB1bmljb2RlPSIgIiAvPgorPGdseXBoIHVu
aWNvZGU9IioiIGQ9Ik0xMDAgNTAwdjIwMGgyNTlsLTE4MyAxODNsMTQxIDE0MWwxODMgLTE4M3Yy
NTloMjAwdi0yNTlsMTgzIDE4M2wxNDEgLTE0MWwtMTgzIC0xODNoMjU5di0yMDBoLTI1OWwxODMg
LTE4M2wtMTQxIC0xNDFsLTE4MyAxODN2LTI1OWgtMjAwdjI1OWwtMTgzIC0xODNsLTE0MSAxNDFs
MTgzIDE4M2gtMjU5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSIrIiBkPSJNMCA0MDB2MzAwaDQwMHY0
MDBoMzAwdi00MDBoNDAwdi0zMDBoLTQwMHYtNDAwaC0zMDB2NDAwaC00MDB6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGEwOyIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMDAwOyIgaG9yaXotYWR2
LXg9IjY1MiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMDAxOyIgaG9yaXotYWR2LXg9IjEzMDQi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTIiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4MjAwMzsiIGhvcml6LWFkdi14PSIxMzA0IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeDIwMDQ7IiBob3Jpei1hZHYteD0iNDM0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIw
MDU7IiBob3Jpei1hZHYteD0iMzI2IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDY7IiBob3Jp
ei1hZHYteD0iMjE3IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDc7IiBob3Jpei1hZHYteD0i
MjE3IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYzIiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeDIwMDk7IiBob3Jpei1hZHYteD0iMjYwIiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeDIwMGE7IiBob3Jpei1hZHYteD0iNzIiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjA1ZjsiIGhv
cml6LWFkdi14PSIzMjYiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjBhYzsiIGQ9Ik0xMDAgNTAw
bDEwMCAxMDBoMTEzcTAgNDcgNSAxMDBoLTIxOGwxMDAgMTAwaDEzNXEzNyAxNjcgMTEyIDI1N3Ex
MTcgMTQxIDI5NyAxNDFxMjQyIDAgMzU0IC0xODlxNjAgLTEwMyA2NiAtMjA5aC0xODFxMCA1NSAt
MjUuNSA5OXQtNjMuNSA2OHQtNzUgMzYuNXQtNjcgMTIuNXEtMjQgMCAtNTIuNSAtMTB0LTYyLjUg
LTMydC02NS41IC02N3QtNTAuNSAtMTA3aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNDYgLTYgLTEw
MGg0MDZsLTEwMCAtMTAwIGgtMzAwcTkgLTc0IDMzIC0xMzJ0NTIuNSAtOTF0NjIgLTU0LjV0NTkg
LTI5dDQ2LjUgLTcuNXEyOSAwIDY2IDEzdDc1IDM3dDYzLjUgNjcuNXQyNS41IDk2LjVoMTc0cS0z
MSAtMTcyIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDUgMCAtMzI0IDE1OHEtMzYg
NDYgLTY5IDEzMS41dC00NSAyMDUuNWgtMjE3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMjEy
OyIgZD0iTTIwMCA0MDBoOTAwdjMwMGgtOTAwdi0zMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3gyNjAxOyIgZD0iTS0xNCA0OTRxMCAtODAgNTYuNSAtMTM3dDEzNS41IC01N2g3NTBxMTIwIDAg
MjA1IDg2LjV0ODUgMjA3LjV0LTg1IDIwN3QtMjA1IDg2cS00NiAwIC05MCAtMTRxLTQ0IDk3IC0x
MzQuNSAxNTYuNXQtMjAwLjUgNTkuNXEtMTUyIDAgLTI2MCAtMTA3LjV0LTEwOCAtMjYwLjVxMCAt
MjUgMiAtMzdxLTY2IC0xNCAtMTA4LjUgLTY3LjV0LTQyLjUgLTEyMi41eiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3gyNzA5OyIgZD0iTTAgMTAwbDQwMCA0MDBsMjAwIC0yMDBsMjAwIDIwMGw0MDAg
LTQwMGgtMTIwMHpNMCAzMDB2NjAwbDMwMCAtMzAwek0wIDExMDBsNjAwIC02MDNsNjAwIDYwM2gt
MTIwMHpNOTAwIDYwMGwzMDAgMzAwdi02MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDI3MGY7
IiBkPSJNLTEzIC0xM2wzMzMgMTEybC0yMjMgMjIzek0xODcgNDAzbDIxNCAtMjE0bDYxNCA2MTRs
LTIxNCAyMTR6TTg4NyAxMTAzbDIxNCAtMjE0bDk5IDkycTEzIDEzIDEzIDMyLjV0LTEzIDMzLjVs
LTE1MyAxNTNxLTE1IDEzIC0zMyAxM3QtMzMgLTEzeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDAxOyIgZD0iTTAgMTIwMGgxMjAwbC01MDAgLTU1MHYtNTUwaDMwMHYtMTAwaC04MDB2MTAwaDMw
MHY1NTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDI7IiBkPSJNMTQgODRxMTggLTU1IDg2
IC03NS41dDE0NyA1LjVxNjUgMjEgMTA5IDY5dDQ0IDkwdjYwNmw2MDAgMTU1di01MjFxLTY0IDE2
IC0xMzggLTdxLTc5IC0yNiAtMTIyLjUgLTgzdC0yNS41IC0xMTFxMTggLTU1IDg2IC03NS41dDE0
NyA0LjVxNzAgMjMgMTExLjUgNjMuNXQ0MS41IDk1LjV2ODgxcTAgMTAgLTcgMTUuNXQtMTcgMi41
bC03NTIgLTE5M3EtMTAgLTMgLTE3IC0xMi41dC03IC0xOS41di02ODlxLTY0IDE3IC0xMzggLTcg
cS03OSAtMjUgLTEyMi41IC04MnQtMjUuNSAtMTEyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDAzOyIgZD0iTTIzIDY5M3EwIDIwMCAxNDIgMzQydDM0MiAxNDJ0MzQyIC0xNDJ0MTQyIC0zNDJx
MCAtMTQyIC03OCAtMjYxbDMwMCAtMzAwcTcgLTggNyAtMTh0LTcgLTE4bC0xMDkgLTEwOXEtOCAt
NyAtMTggLTd0LTE4IDdsLTMwMCAzMDBxLTExOSAtNzggLTI2MSAtNzhxLTIwMCAwIC0zNDIgMTQy
dC0xNDIgMzQyek0xNzYgNjkzcTAgLTEzNiA5NyAtMjMzdDIzNCAtOTd0MjMzLjUgOTYuNXQ5Ni41
IDIzMy41dC05Ni41IDIzMy41dC0yMzMuNSA5Ni41IHQtMjM0IC05N3QtOTcgLTIzM3oiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAwNTsiIGQ9Ik0xMDAgNzg0cTAgNjQgMjggMTIzdDczIDEwMC41
dDEwNC41IDY0dDExOSAyMC41dDEyMCAtMzguNXQxMDQuNSAtMTA0LjVxNDggNjkgMTA5LjUgMTA1
dDEyMS41IDM4dDExOC41IC0yMC41dDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAt
MzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3
NHEtNjIgODUgLTE0NS41IDE3NHQtMTQ5LjUgMTUyLjV0LTEyNi41IDEyNy41IHQtOTQgMTI0LjV0
LTMzLjUgMTE3LjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNLTcyIDgwMGg0
NzlsMTQ2IDQwMGgybDE0NiAtNDAwaDQ3MmwtMzgyIC0yNzhsMTQ1IC00NDlsLTM4NCAyNzVsLTM4
MiAtMjc1bDE0NiA0NDd6TTE2OCA3MWwyIDF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7
IiBkPSJNLTcyIDgwMGg0NzlsMTQ2IDQwMGgybDE0NiAtNDAwaDQ3MmwtMzgyIC0yNzhsMTQ1IC00
NDlsLTM4NCAyNzVsLTM4MiAtMjc1bDE0NiA0NDd6TTE2OCA3MWwyIDF6TTIzNyA3MDBsMTk2IC0x
NDJsLTczIC0yMjZsMTkyIDE0MGwxOTUgLTE0MWwtNzQgMjI5bDE5MyAxNDBoLTIzNWwtNzcgMjEx
bC03OCAtMjExaC0yMzl6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDg7IiBkPSJNMCAwdjE0
M2w0MDAgMjU3djEwMHEtMzcgMCAtNjguNSA3NC41dC0zMS41IDEyNS41djIwMHEwIDEyNCA4OCAy
MTJ0MjEyIDg4dDIxMiAtODh0ODggLTIxMnYtMjAwcTAgLTUxIC0zMS41IC0xMjUuNXQtNjguNSAt
NzQuNXYtMTAwbDQwMCAtMjU3di0xNDNoLTEyMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MDk7IiBkPSJNMCAwdjExMDBoMTIwMHYtMTEwMGgtMTIwMHpNMTAwIDEwMGgxMDB2MTAwaC0xMDB2
LTEwMHpNMTAwIDMwMGgxMDB2MTAwaC0xMDB2LTEwMHpNMTAwIDUwMGgxMDB2MTAwaC0xMDB2LTEw
MHpNMTAwIDcwMGgxMDB2MTAwaC0xMDB2LTEwMHpNMTAwIDkwMGgxMDB2MTAwaC0xMDB2LTEwMHpN
MzAwIDEwMGg2MDB2NDAwaC02MDB2LTQwMHpNMzAwIDYwMGg2MDB2NDAwaC02MDB2LTQwMHpNMTAw
MCAxMDBoMTAwdjEwMGgtMTAwdi0xMDB6IE0xMDAwIDMwMGgxMDB2MTAwaC0xMDB2LTEwMHpNMTAw
MCA1MDBoMTAwdjEwMGgtMTAwdi0xMDB6TTEwMDAgNzAwaDEwMHYxMDBoLTEwMHYtMTAwek0xMDAw
IDkwMGgxMDB2MTAwaC0xMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMDsiIGQ9
Ik0wIDUwdjQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQx
NC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAt
MzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNjUwdjQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVo
NDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1
LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek02MDAgNTB2NDAwcTAg
MjEgMTQuNSAzNS41dDM1LjUgMTQuNWg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQw
MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0
LjUgMzUuNXpNNjAwIDY1MHY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQwMHEyMSAwIDM1
LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwIHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgt
NDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAxMTsiIGQ9Ik0wIDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjAwcTIxIDAgMzUu
NSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIw
MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQz
NS41IDE0LjVoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUg
LTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0wIDg1
MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAt
MzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUg
MTQuNXQtMTQuNSAzNS41ek00MDAgNTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyMDBx
MjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNSB0LTM1LjUg
LTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTQwMCA0NTB2MjAwcTAgMjEg
MTQuNSAzNS41dDM1LjUgMTQuNWgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEw
IC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUg
MzUuNXpNNDAwIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1LjUg
LTE0LjV0MTQuNSAtMzUuNSB2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAw
cS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNODAwIDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQz
NS41IDE0LjVoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUg
LTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTgwMCA0
NTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyMDAgcTIxIDAgMzUuNSAtMTQuNXQxNC41
IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUu
NSAxNC41dC0xNC41IDM1LjV6TTgwMCA4NTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgy
MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUu
NSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAxMjsiIGQ9Ik0wIDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjAw
cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUg
LTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNDUwcTAgLTIxIDE0LjUg
LTM1LjV0MzUuNSAtMTQuNWgyMDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djIwMHEwIDIxIC0x
NC41IDM1LjV0LTM1LjUgMTQuNWgtMjAwcS0yMSAwIC0zNS41IC0xNC41IHQtMTQuNSAtMzUuNXYt
MjAwek0wIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1LjUgLTE0
LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIx
IDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek00MDAgNTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUg
MTQuNWg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUu
NSB0LTM1LjUgLTE0LjVoLTcwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTQwMCA0NTB2
MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1
LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0
LjV0LTE0LjUgMzUuNXpNNDAwIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDcwMHEy
MSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNSB2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAt
MTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAxMzsiIGQ9Ik0yOSA0NTRsNDE5IC00MjBsODE4IDgyMGwtMjEyIDIxMmwtNjA3IC02
MDdsLTIwNiAyMDd6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNMTA2IDMxOGwy
ODIgMjgybC0yODIgMjgybDIxMiAyMTJsMjgyIC0yODJsMjgyIDI4MmwyMTIgLTIxMmwtMjgyIC0y
ODJsMjgyIC0yODJsLTIxMiAtMjEybC0yODIgMjgybC0yODIgLTI4MnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAxNTsiIGQ9Ik0yMyA2OTNxMCAyMDAgMTQyIDM0MnQzNDIgMTQydDM0MiAtMTQy
dDE0MiAtMzQycTAgLTE0MiAtNzggLTI2MWwzMDAgLTMwMHE3IC04IDcgLTE4dC03IC0xOGwtMTA5
IC0xMDlxLTggLTcgLTE4IC03dC0xOCA3bC0zMDAgMzAwcS0xMTkgLTc4IC0yNjEgLTc4cS0yMDAg
MCAtMzQyIDE0MnQtMTQyIDM0MnpNMTc2IDY5M3EwIC0xMzYgOTcgLTIzM3QyMzQgLTk3dDIzMy41
IDk2LjV0OTYuNSAyMzMuNXQtOTYuNSAyMzMuNXQtMjMzLjUgOTYuNSB0LTIzNCAtOTd0LTk3IC0y
MzN6TTMwMCA2MDB2MjAwaDEwMHYxMDBoMjAwdi0xMDBoMTAwdi0yMDBoLTEwMHYtMTAwaC0yMDB2
MTAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNMjMgNjk0cTAgMjAw
IDE0MiAzNDJ0MzQyIDE0MnQzNDIgLTE0MnQxNDIgLTM0MnEwIC0xNDEgLTc4IC0yNjJsMzAwIC0y
OTlxNyAtNyA3IC0xOHQtNyAtMThsLTEwOSAtMTA5cS04IC04IC0xOCAtOHQtMTggOGwtMzAwIDMw
MHEtMTE5IC03OCAtMjYxIC03OHEtMjAwIDAgLTM0MiAxNDJ0LTE0MiAzNDJ6TTE3NiA2OTRxMCAt
MTM2IDk3IC0yMzN0MjM0IC05N3QyMzMuNSA5N3Q5Ni41IDIzM3QtOTYuNSAyMzN0LTIzMy41IDk3
dC0yMzQgLTk3IHQtOTcgLTIzM3pNMzAwIDYwMWg0MDB2MjAwaC00MDB2LTIwMHoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik0yMyA2MDBxMCAxODMgMTA1IDMzMXQyNzIgMjEwdi0x
NjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTE3NyAxMjUgLTMwMnQzMDIgLTEyNXQz
MDIgMTI1dDEyNSAzMDJxMCAxMjAgLTYyIDIyMHQtMTY1IDE1NXYxNjZxMTY3IC02MiAyNzIgLTIx
MHQxMDUgLTMzMXEwIC0xMTggLTQ1LjUgLTIyNC41dC0xMjMgLTE4NHQtMTg0IC0xMjN0LTIyNC41
IC00NS41dC0yMjQuNSA0NS41dC0xODQgMTIzdC0xMjMgMTg0dC00NS41IDIyNC41IHpNNTAwIDc1
MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUu
NXY0MDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTEwMHEtMjEgMCAtMzUuNSAtMTQuNXQt
MTQuNSAtMzUuNXYtNDAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE4OyIgZD0iTTEwMCAx
aDIwMHYzMDBoLTIwMHYtMzAwek00MDAgMXY1MDBoMjAwdi01MDBoLTIwMHpNNzAwIDF2ODAwaDIw
MHYtODAwaC0yMDB6TTEwMDAgMXYxMjAwaDIwMHYtMTIwMGgtMjAweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDE5OyIgZD0iTTI2IDYwMXEwIC0zMyA2IC03NGwxNTEgLTM4bDIgLTZxMTQgLTQ5
IDM4IC05M2wzIC01bC04MCAtMTM0cTQ1IC01OSAxMDUgLTEwNWwxMzMgODFsNSAtM3E0NSAtMjYg
OTQgLTM5bDUgLTJsMzggLTE1MXE0MCAtNSA3NCAtNXEyNyAwIDc0IDVsMzggMTUxbDYgMnE0NiAx
MyA5MyAzOWw1IDNsMTM0IC04MXE1NiA0NCAxMDQgMTA1bC04MCAxMzRsMyA1cTI0IDQ0IDM5IDkz
bDEgNmwxNTIgMzhxNSA0MCA1IDc0cTAgMjggLTUgNzNsLTE1MiAzOCBsLTEgNnEtMTYgNTEgLTM5
IDkzbC0zIDVsODAgMTM0cS00NCA1OCAtMTA0IDEwNWwtMTM0IC04MWwtNSAzcS00NSAyNSAtOTMg
MzlsLTYgMWwtMzggMTUycS00MCA1IC03NCA1cS0yNyAwIC03NCAtNWwtMzggLTE1MmwtNSAtMXEt
NTAgLTE0IC05NCAtMzlsLTUgLTNsLTEzMyA4MXEtNTkgLTQ3IC0xMDUgLTEwNWw4MCAtMTM0bC0z
IC01cS0yNSAtNDcgLTM4IC05M2wtMiAtNmwtMTUxIC0zOHEtNiAtNDggLTYgLTczek0zODUgNjAx
IHEwIDg4IDYzIDE1MXQxNTIgNjN0MTUyIC02M3Q2MyAtMTUxcTAgLTg5IC02MyAtMTUydC0xNTIg
LTYzdC0xNTIgNjN0LTYzIDE1MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMDsiIGQ9Ik0x
MDAgMTAyNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDI3NXYxMDBxMCA0MSAyOS41IDcwLjV0
NzAuNSAyOS41aDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDI3NXExMCAwIDE3
LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTExIC03IC0xOHQtMTggLTdoLTEwNTBxLTExIDAgLTE4
IDd0LTcgMTh6TTIwMCAxMDB2ODAwaDkwMHYtODAwcTAgLTQxIC0yOS41IC03MXQtNzAuNSAtMzBo
LTcwMHEtNDEgMCAtNzAuNSAzMCB0LTI5LjUgNzF6TTMwMCAxMDBoMTAwdjcwMGgtMTAwdi03MDB6
TTUwMCAxMDBoMTAwdjcwMGgtMTAwdi03MDB6TTUwMCAxMTAwaDMwMHYxMDBoLTMwMHYtMTAwek03
MDAgMTAwaDEwMHY3MDBoLTEwMHYtNzAwek05MDAgMTAwaDEwMHY3MDBoLTEwMHYtNzAweiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDIxOyIgZD0iTTEgNjAxbDY1NiA2NDRsNjQ0IC02NDRoLTIw
MHYtNjAwaC0zMDB2NDAwaC0zMDB2LTQwMGgtMzAwdjYwMGgtMjAweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDIyOyIgZD0iTTEwMCAyNXYxMTUwcTAgMTEgNyAxOHQxOCA3aDQ3NXYtNTAwaDQw
MHYtNjc1cTAgLTExIC03IC0xOHQtMTggLTdoLTg1MHEtMTEgMCAtMTggN3QtNyAxOHpNNzAwIDgw
MHYzMDBsMzAwIC0zMDBoLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMzsiIGQ9Ik00
IDYwMHEwIDE2MiA4MCAyOTl0MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAtMjk5
dC04MCAtMjk5dC0yMTcgLTIxN3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6TTE4
NiA2MDBxMCAtMTcxIDEyMS41IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIxLjUg
MjkyLjV0LTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAtMjky
LjV6TTUwMCA1MDB2NDAwaDEwMCB2LTMwMGgyMDB2LTEwMGgtMzAweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDI0OyIgZD0iTS0xMDAgMGw0MzEgMTIwMGgyMDlsLTIxIC0zMDBoMTYybC0yMCAz
MDBoMjA4bDQzMSAtMTIwMGgtNTM4bC00MSA0MDBoLTI0MmwtNDAgLTQwMGgtNTM5ek00ODggNTAw
aDIyNGwtMjcgMzAwaC0xNzB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjU7IiBkPSJNMCAw
djQwMGg0OTBsLTI5MCAzMDBoMjAwdjUwMGgzMDB2LTUwMGgyMDBsLTI5MCAtMzAwaDQ5MHYtNDAw
aC0xMTAwek04MTMgMjAwaDE3NXYxMDBoLTE3NXYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDI2OyIgZD0iTTEgNjAwcTAgMTIyIDQ3LjUgMjMzdDEyNy41IDE5MXQxOTEgMTI3LjV0MjMz
IDQ3LjV0MjMzIC00Ny41dDE5MSAtMTI3LjV0MTI3LjUgLTE5MXQ0Ny41IC0yMzN0LTQ3LjUgLTIz
M3QtMTI3LjUgLTE5MXQtMTkxIC0xMjcuNXQtMjMzIC00Ny41dC0yMzMgNDcuNXQtMTkxIDEyNy41
dC0xMjcuNSAxOTF0LTQ3LjUgMjMzek0xODggNjAwcTAgLTE3MCAxMjEgLTI5MXQyOTEgLTEyMXQy
OTEgMTIxdDEyMSAyOTF0LTEyMSAyOTF0LTI5MSAxMjEgdC0yOTEgLTEyMXQtMTIxIC0yOTF6TTM1
MCA2MDBoMTUwdjMwMGgyMDB2LTMwMGgxNTBsLTI1MCAtMzAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDI3OyIgZD0iTTQgNjAwcTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgw
dDIxNyAtMjE3dDgwIC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIx
NyAyMTd0LTgwIDI5OXpNMTg2IDYwMHEwIC0xNzEgMTIxLjUgLTI5Mi41dDI5Mi41IC0xMjEuNXQy
OTIuNSAxMjEuNXQxMjEuNSAyOTIuNXQtMTIxLjUgMjkyLjV0LTI5Mi41IDEyMS41dC0yOTIuNSAt
MTIxLjV0LTEyMS41IC0yOTIuNXpNMzUwIDYwMGwyNTAgMzAwIGwyNTAgLTMwMGgtMTUwdi0zMDBo
LTIwMHYzMDBoLTE1MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyODsiIGQ9Ik0wIDI1djQ3
NWwyMDAgNzAwaDgwMGwxOTkgLTcwMGwxIC00NzVxMCAtMTEgLTcgLTE4dC0xOCAtN2gtMTE1MHEt
MTEgMCAtMTggN3QtNyAxOHpNMjAwIDUwMGgyMDBsNTAgLTIwMGgzMDBsNTAgMjAwaDIwMGwtOTcg
NTAwaC02MDZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjk7IiBkPSJNNCA2MDBxMCAxNjIg
ODAgMjk5dDIxNyAyMTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0ODAgLTI5OXQtODAgLTI5OXQt
MjE3IC0yMTd0LTI5OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAgMjk5ek0xODYgNjAwcTAgLTE3
MiAxMjEuNSAtMjkzdDI5Mi41IC0xMjF0MjkyLjUgMTIxdDEyMS41IDI5M3EwIDE3MSAtMTIxLjUg
MjkyLjV0LTI5Mi41IDEyMS41dC0yOTIuNSAtMTIxLjV0LTEyMS41IC0yOTIuNXpNNTAwIDM5N3Y0
MDEgbDI5NyAtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMwOyIgZD0iTTIzIDYwMHEw
IC0xMTggNDUuNSAtMjI0LjV0MTIzIC0xODR0MTg0IC0xMjN0MjI0LjUgLTQ1LjV0MjI0LjUgNDUu
NXQxODQgMTIzdDEyMyAxODR0NDUuNSAyMjQuNWgtMTUwcTAgLTE3NyAtMTI1IC0zMDJ0LTMwMiAt
MTI1dC0zMDIgMTI1dC0xMjUgMzAydDEyNSAzMDJ0MzAyIDEyNXExMzYgMCAyNDYgLTgxbC0xNDYg
LTE0Nmg0MDB2NDAwbC0xNDUgLTE0NXEtMTU3IDEyMiAtMzU1IDEyMnEtMTE4IDAgLTIyNC41IC00
NS41dC0xODQgLTEyMyB0LTEyMyAtMTg0dC00NS41IC0yMjQuNXoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTAzMTsiIGQ9Ik0yMyA2MDBxMCAxMTggNDUuNSAyMjQuNXQxMjMgMTg0dDE4NCAxMjN0
MjI0LjUgNDUuNXExOTggMCAzNTUgLTEyMmwxNDUgMTQ1di00MDBoLTQwMGwxNDcgMTQ3cS0xMTIg
ODAgLTI0NyA4MHEtMTc3IDAgLTMwMiAtMTI1dC0xMjUgLTMwMmgtMTUwek0xMDAgMHY0MDBoNDAw
bC0xNDcgLTE0N3ExMTIgLTgwIDI0NyAtODBxMTc3IDAgMzAyIDEyNXQxMjUgMzAyaDE1MHEwIC0x
MTggLTQ1LjUgLTIyNC41dC0xMjMgLTE4NHQtMTg0IC0xMjMgdC0yMjQuNSAtNDUuNXEtMTk4IDAg
LTM1NSAxMjJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzI7IiBkPSJNMTAwIDBoMTEwMHYx
MjAwaC0xMTAwdi0xMjAwek0yMDAgMTAwdjkwMGg5MDB2LTkwMGgtOTAwek0zMDAgMjAwdjEwMGgx
MDB2LTEwMGgtMTAwek0zMDAgNDAwdjEwMGgxMDB2LTEwMGgtMTAwek0zMDAgNjAwdjEwMGgxMDB2
LTEwMGgtMTAwek0zMDAgODAwdjEwMGgxMDB2LTEwMGgtMTAwek01MDAgMjAwaDUwMHYxMDBoLTUw
MHYtMTAwek01MDAgNDAwdjEwMGg1MDB2LTEwMGgtNTAwek01MDAgNjAwdjEwMGg1MDB2LTEwMGgt
NTAweiBNNTAwIDgwMHYxMDBoNTAwdi0xMDBoLTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzMzsiIGQ9Ik0wIDEwMHY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMHYyMDBxMCA4
MiA1OSAxNDF0MTQxIDU5aDMwMHE4MiAwIDE0MSAtNTl0NTkgLTE0MXYtMjAwaDEwMHE0MSAwIDcw
LjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC05
MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41ek00MDAgODAwaDMwMHYxNTBxMCAyMSAtMTQu
NSAzNS41dC0zNS41IDE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1
MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMDAgMHYxMTAwaDEwMHYtMTEw
MGgtMTAwek0zMDAgNDAwcTYwIDYwIDEyNy41IDg0dDEyNy41IDE3LjV0MTIyIC0yM3QxMTkgLTMw
dDExMCAtMTF0MTAzIDQydDkxIDEyMC41djUwMHEtNDAgLTgxIC0xMDEuNSAtMTE1LjV0LTEyNy41
IC0yOS41dC0xMzggMjV0LTEzOS41IDQwdC0xMjUuNSAyNXQtMTAzIC0yOS41dC02NSAtMTE1LjV2
LTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNTsiIGQ9Ik0wIDI3NXEwIC0xMSA3IC0x
OHQxOCAtN2g1MHExMSAwIDE4IDd0NyAxOHYzMDBxMCAxMjcgNzAuNSAyMzEuNXQxODQuNSAxNjEu
NXQyNDUgNTd0MjQ1IC01N3QxODQuNSAtMTYxLjV0NzAuNSAtMjMxLjV2LTMwMHEwIC0xMSA3IC0x
OHQxOCAtN2g1MHExMSAwIDE4IDd0NyAxOHYzMDBxMCAxMTYgLTQ5LjUgMjI3dC0xMzEgMTkyLjV0
LTE5Mi41IDEzMXQtMjI3IDQ5LjV0LTIyNyAtNDkuNXQtMTkyLjUgLTEzMXQtMTMxIC0xOTIuNSB0
LTQ5LjUgLTIyN3YtMzAwek0yMDAgMjB2NDYwcTAgOCA2IDE0dDE0IDZoMTYwcTggMCAxNCAtNnQ2
IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR6TTgwMCAy
MHY0NjBxMCA4IDYgMTR0MTQgNmgxNjBxOCAwIDE0IC02dDYgLTE0di00NjBxMCAtOCAtNiAtMTR0
LTE0IC02aC0xNjBxLTggMCAtMTQgNnQtNiAxNHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAz
NjsiIGQ9Ik0wIDQwMGgzMDBsMzAwIC0yMDB2ODAwbC0zMDAgLTIwMGgtMzAwdi00MDB6TTY4OCA0
NTlsMTQxIDE0MWwtMTQxIDE0MWw3MSA3MWwxNDEgLTE0MWwxNDEgMTQxbDcxIC03MWwtMTQxIC0x
NDFsMTQxIC0xNDFsLTcxIC03MWwtMTQxIDE0MWwtMTQxIC0xNDF6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwMzc7IiBkPSJNMCA0MDBoMzAwbDMwMCAtMjAwdjgwMGwtMzAwIC0yMDBoLTMwMHYt
NDAwek03MDAgODU3bDY5IDUzcTExMSAtMTM1IDExMSAtMzEwcTAgLTE2OSAtMTA2IC0zMDJsLTY3
IDU0cTg2IDExMCA4NiAyNDhxMCAxNDYgLTkzIDI1N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzODsiIGQ9Ik0wIDQwMXY0MDBoMzAwbDMwMCAyMDB2LTgwMGwtMzAwIDIwMGgtMzAwek03MDIg
ODU4bDY5IDUzcTExMSAtMTM1IDExMSAtMzEwcTAgLTE3MCAtMTA2IC0zMDNsLTY3IDU1cTg2IDEx
MCA4NiAyNDhxMCAxNDUgLTkzIDI1N3pNODg5IDk1MWw3IC04cTEyMyAtMTUxIDEyMyAtMzQ0cTAg
LTE4OSAtMTE5IC0zMzlsLTcgLThsODEgLTY2bDYgOHExNDIgMTc4IDE0MiA0MDVxMCAyMzAgLTE0
NCA0MDhsLTYgOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzOTsiIGQ9Ik0wIDBoNTAwdjUw
MGgtMjAwdjEwMGgtMTAwdi0xMDBoLTIwMHYtNTAwek0wIDYwMGgxMDB2MTAwaDQwMHYxMDBoMTAw
djEwMGgtMTAwdjMwMGgtNTAwdi02MDB6TTEwMCAxMDB2MzAwaDMwMHYtMzAwaC0zMDB6TTEwMCA4
MDB2MzAwaDMwMHYtMzAwaC0zMDB6TTIwMCAyMDB2MTAwaDEwMHYtMTAwaC0xMDB6TTIwMCA5MDBo
MTAwdjEwMGgtMTAwdi0xMDB6TTUwMCA1MDB2MTAwaDMwMHYtMzAwaDIwMHYtMTAwaC0xMDB2LTEw
MGgtMjAwdjEwMCBoLTEwMHYxMDBoMTAwdjIwMGgtMjAwek02MDAgMHYxMDBoMTAwdi0xMDBoLTEw
MHpNNjAwIDEwMDBoMTAwdi0zMDBoMjAwdi0zMDBoMzAwdjIwMGgtMjAwdjEwMGgyMDB2NTAwaC02
MDB2LTIwMHpNODAwIDgwMHYzMDBoMzAwdi0zMDBoLTMwMHpNOTAwIDB2MTAwaDMwMHYtMTAwaC0z
MDB6TTkwMCA5MDB2MTAwaDEwMHYtMTAwaC0xMDB6TTExMDAgMjAwdjEwMGgxMDB2LTEwMGgtMTAw
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTAgMjAwaDEwMHYxMDAwaC0xMDB2
LTEwMDB6TTEwMCAwdjEwMGgzMDB2LTEwMGgtMzAwek0yMDAgMjAwdjEwMDBoMTAwdi0xMDAwaC0x
MDB6TTUwMCAwdjkxaDEwMHYtOTFoLTEwMHpNNTAwIDIwMHYxMDAwaDIwMHYtMTAwMGgtMjAwek03
MDAgMHY5MWgxMDB2LTkxaC0xMDB6TTgwMCAyMDB2MTAwMGgxMDB2LTEwMDBoLTEwMHpNOTAwIDB2
OTFoMjAwdi05MWgtMjAwek0xMDAwIDIwMHYxMDAwaDIwMHYtMTAwMGgtMjAweiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMDQxOyIgZD0iTTAgNzAwbDEgNDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3
LjVoNDc0bDcwMCAtNzAwbC01MDAgLTUwMHpNMTQ4IDk1M3EwIC00MiAyOSAtNzFxMzAgLTMwIDcx
LjUgLTMwdDcxLjUgMzBxMjkgMjkgMjkgNzF0LTI5IDcxcS0zMCAzMCAtNzEuNSAzMHQtNzEuNSAt
MzBxLTI5IC0yOSAtMjkgLTcxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTEg
NzAwbDEgNDc1cTAgMTEgNyAxOHQxOCA3aDQ3NGw3MDAgLTcwMGwtNTAwIC01MDB6TTE0OCA5NTNx
MCAtNDIgMzAgLTcxcTI5IC0zMCA3MSAtMzB0NzEgMzBxMzAgMjkgMzAgNzF0LTMwIDcxcS0yOSAz
MCAtNzEgMzB0LTcxIC0zMHEtMzAgLTI5IC0zMCAtNzF6TTcwMSAxMjAwaDEwMGw3MDAgLTcwMGwt
NTAwIC01MDBsLTUwIDUwbDQ1MCA0NTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNDM7IiBk
PSJNMTAwIDB2MTAyNWwxNzUgMTc1aDkyNXYtMTAwMGwtMTAwIC0xMDB2MTAwMGgtNzUwbC0xMDAg
LTEwMGg3NTB2LTEwMDBoLTkwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NDsiIGQ9Ik0y
MDAgMGw0NTAgNDQ0bDQ1MCAtNDQzdjExNTBxMCAyMCAtMTQuNSAzNXQtMzUuNSAxNWgtODAwcS0y
MSAwIC0zNS41IC0xNXQtMTQuNSAtMzV2LTExNTF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
NDU7IiBkPSJNMCAxMDB2NzAwaDIwMGwxMDAgLTIwMGg2MDBsMTAwIDIwMGgyMDB2LTcwMGgtMjAw
djIwMGgtODAwdi0yMDBoLTIwMHpNMjUzIDgyOWw0MCAtMTI0aDU5Mmw2MiAxMjRsLTk0IDM0NnEt
MiAxMSAtMTAgMTh0LTE4IDdoLTQ1MHEtMTAgMCAtMTggLTd0LTEwIC0xOHpNMjgxIDI0bDM4IDE1
MnEyIDEwIDExLjUgMTd0MTkuNSA3aDUwMHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEy
IC0xMCAtMy41IC0xN3QtMTUuNSAtN2gtNjAwIHEtMTAgMCAtMTUuNSA3dC0zLjUgMTd6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUwNDY7IiBkPSJNMCAyMDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41
IC0yOS41aDEwMDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0
LTcwLjUgMjkuNWgtMTUwcS00IDggLTExLjUgMjEuNXQtMzMgNDh0LTUzIDYxdC02OSA0OHQtODMu
NSAyMS41aC0yMDBxLTQxIDAgLTgyIC0yMC41dC03MCAtNTB0LTUyIC01OXQtMzQgLTUwLjVsLTEy
IC0yMGgtMTUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDB6IE0zNTYgNTAwcTAg
MTAwIDcyIDE3MnQxNzIgNzJ0MTcyIC03MnQ3MiAtMTcydC03MiAtMTcydC0xNzIgLTcydC0xNzIg
NzJ0LTcyIDE3MnpNNDk0IDUwMHEwIC00NCAzMSAtNzV0NzUgLTMxdDc1IDMxdDMxIDc1dC0zMSA3
NXQtNzUgMzF0LTc1IC0zMXQtMzEgLTc1ek05MDAgNzAwdjEwMGgxMDB2LTEwMGgtMTAweiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDQ3OyIgZD0iTTUzIDBoMzY1djY2cS00MSAwIC03MiAxMXQt
NDkgMzh0MSA3MWw5MiAyMzRoMzkxbDgyIC0yMjJxMTYgLTQ1IC01LjUgLTg4LjV0LTc0LjUgLTQz
LjV2LTY2aDQxN3Y2NnEtMzQgMSAtNzQgNDNxLTE4IDE5IC0zMyA0MnQtMjEgMzdsLTYgMTNsLTM4
NSA5OThoLTkzbC0zOTkgLTEwMDZxLTI0IC00OCAtNTIgLTc1cS0xMiAtMTIgLTMzIC0yNXQtMzYg
LTIwbC0xNSAtN3YtNjZ6TTQxNiA1MjFsMTc4IDQ1N2w0NiAtMTQwbDExNiAtMzE3aC0zNDAgeiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTEwMCAwdjg5cTQxIDcgNzAuNSAzMi41
dDI5LjUgNjUuNXY4MjdxMCAyOCAtMSAzOS41dC01LjUgMjZ0LTE1LjUgMjF0LTI5IDE0dC00OSAx
NC41djcxbDQ3MSAtMXExMjAgMCAyMTMgLTg4dDkzIC0yMjhxMCAtNTUgLTExLjUgLTEwMS41dC0y
OCAtNzR0LTMzLjUgLTQ3LjV0LTI4IC0yOGwtMTIgLTdxOCAtMyAyMS41IC05dDQ4IC0zMS41dDYw
LjUgLTU4dDQ3LjUgLTkxLjV0MjEuNSAtMTI5cTAgLTg0IC01OSAtMTU2LjV0LTE0MiAtMTExIHQt
MTYyIC0zOC41aC01MDB6TTQwMCAyMDBoMTYxcTg5IDAgMTUzIDQ4LjV0NjQgMTMyLjVxMCA5MCAt
NjIuNSAxNTQuNXQtMTU2LjUgNjQuNWgtMTU5di00MDB6TTQwMCA3MDBoMTM5cTc2IDAgMTMwIDYx
LjV0NTQgMTM4LjVxMCA4MiAtODQgMTMwLjV0LTIzOSA0OC41di0zNzl6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwNDk7IiBkPSJNMjAwIDB2NTdxNzcgNyAxMzQuNSA0MC41dDY1LjUgODAuNWwx
NzMgODQ5cTEwIDU2IC0xMCA3NHQtOTEgMzdxLTYgMSAtMTAuNSAyLjV0LTkuNSAyLjV2NTdoNDI1
bDIgLTU3cS0zMyAtOCAtNjIgLTI1LjV0LTQ2IC0zN3QtMjkuNSAtMzh0LTE3LjUgLTMwLjVsLTUg
LTEybC0xMjggLTgyNXEtMTAgLTUyIDE0IC04MnQ5NSAtMzZ2LTU3aC01MDB6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwNTA7IiBkPSJNLTc1IDIwMGg3NXY4MDBoLTc1bDEyNSAxNjdsMTI1IC0x
NjdoLTc1di04MDBoNzVsLTEyNSAtMTY3ek0zMDAgOTAwdjMwMGgxNTBoNzAwaDE1MHYtMzAwaC01
MHEwIDI5IC04IDQ4LjV0LTE4LjUgMzB0LTMzLjUgMTV0LTM5LjUgNS41dC01MC41IDFoLTIwMHYt
ODUwbDEwMCAtNTB2LTEwMGgtNDAwdjEwMGwxMDAgNTB2ODUwaC0yMDBxLTM0IDAgLTUwLjUgLTF0
LTQwIC01LjV0LTMzLjUgLTE1dC0xOC41IC0zMHQtOC41IC00OC41aC00OXogIiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwNTE7IiBkPSJNMzMgNTFsMTY3IDEyNXYtNzVoODAwdjc1bDE2NyAtMTI1
bC0xNjcgLTEyNXY3NWgtODAwdi03NXpNMTAwIDkwMXYzMDBoMTUwaDcwMGgxNTB2LTMwMGgtNTBx
MCAyOSAtOCA0OC41dC0xOCAzMHQtMzMuNSAxNXQtNDAgNS41dC01MC41IDFoLTIwMHYtNjUwbDEw
MCAtNTB2LTEwMGgtNDAwdjEwMGwxMDAgNTB2NjUwaC0yMDBxLTM0IDAgLTUwLjUgLTF0LTM5LjUg
LTUuNXQtMzMuNSAtMTV0LTE4LjUgLTMwdC04IC00OC41aC01MHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTA1MjsiIGQ9Ik0wIDUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDExMDBxMjEgMCAz
NS41IDE1dDE0LjUgMzV2MTAwcTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC0xMTAwcS0yMSAw
IC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDB6TTAgMzUwcTAgLTIwIDE0LjUgLTM1dDM1LjUg
LTE1aDgwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0
LjVoLTgwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNSB2LTEwMHpNMCA2NTBxMCAtMjAg
MTQuNSAtMzV0MzUuNSAtMTVoMTAwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBxMCAyMSAtMTQu
NSAzNS41dC0zNS41IDE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTEw
MHpNMCA5NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNjAwcTIxIDAgMzUuNSAxNXQxNC41IDM1
djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNjAwcS0yMSAwIC0zNS41IC0xNC41IHQt
MTQuNSAtMzUuNXYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDUzOyIgZD0iTTAgNTBx
MCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTEwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBxMCAy
MSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTExMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1
LjV2LTEwMHpNMCA2NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTEwMHEyMSAwIDM1LjUgMTV0
MTQuNSAzNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTExMDBxLTIxIDAgLTM1LjUg
LTE0LjV0LTE0LjUgLTM1LjUgdi0xMDB6TTIwMCAzNTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVo
NzAwcTIxIDAgMzUuNSAxNXQxNC41IDM1djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgt
NzAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDB6TTIwMCA5NTBxMCAtMjAgMTQu
NSAtMzV0MzUuNSAtMTVoNzAwcTIxIDAgMzUuNSAxNXQxNC41IDM1djEwMHEwIDIxIC0xNC41IDM1
LjV0LTM1LjUgMTQuNWgtNzAwcS0yMSAwIC0zNS41IC0xNC41IHQtMTQuNSAtMzUuNXYtMTAweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41
dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAgLTE0
LjUgLTM1dC0zNS41IC0xNWgtMTEwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNMTAwIDY1MHYx
MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1
LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0xMDAwcS0yMSAwIC0zNS41IDE1IHQt
MTQuNSAzNXpNMzAwIDM1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1
LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQtMzUuNSAtMTVoLTgwMHEt
MjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNNTAwIDk1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAx
NC41aDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQt
MzUuNSAtMTVoLTYwMCBxLTIxIDAgLTM1LjUgMTV0LTE0LjUgMzV6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwNTU7IiBkPSJNMCA1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDExMDBx
MjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1
aC0xMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0wIDM1MHYxMDBxMCAyMSAxNC41IDM1LjV0
MzUuNSAxNC41aDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQu
NSAtMzV0LTM1LjUgLTE1aC0xMTAwcS0yMSAwIC0zNS41IDE1IHQtMTQuNSAzNXpNMCA2NTB2MTAw
cTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41
di0xMDBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNWgtMTEwMHEtMjEgMCAtMzUuNSAxNXQtMTQu
NSAzNXpNMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAt
MTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNWgtMTEwMCBxLTIx
IDAgLTM1LjUgMTV0LTE0LjUgMzV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNTY7IiBkPSJN
MCA1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQu
NSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQtMzUuNSAtMTVoLTEwMHEtMjEgMCAtMzUuNSAx
NXQtMTQuNSAzNXpNMCAzNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDBxMjEgMCAz
NS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0xMDBx
LTIxIDAgLTM1LjUgMTUgdC0xNC41IDM1ek0wIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAx
NC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQt
MzUuNSAtMTVoLTEwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNMCA5NTB2MTAwcTAgMjEgMTQu
NSAzNS41dDM1LjUgMTQuNWgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0y
MCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0xMDBxLTIxIDAgLTM1LjUgMTUgdC0xNC41IDM1ek0zMDAg
NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUg
LTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC04MDBxLTIxIDAgLTM1LjUgMTV0
LTE0LjUgMzV6TTMwMCAzNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg4MDBxMjEgMCAz
NS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC04MDAg
cS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0zMDAgNjUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41
IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAgLTE0LjUgLTM1
dC0zNS41IC0xNWgtODAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0zMDAgOTUwdjEwMHEwIDIx
IDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBx
MCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNSBoLTgwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NzsiIGQ9Ik0tMTAxIDUwMHYxMDBoMjAxdjc1bDE2
NiAtMTI1bC0xNjYgLTEyNXY3NWgtMjAxek0zMDAgMGgxMDB2MTEwMGgtMTAwdi0xMTAwek01MDAg
NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNjAwcTIwIDAgMzUgMTV0MTUgMzV2MTAwcTAgMjEg
LTE1IDM1LjV0LTM1IDE0LjVoLTYwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAw
ek01MDAgMzUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDMwMHEyMCAwIDM1IDE1dDE1IDM1IHYx
MDBxMCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtMzAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0z
NS41di0xMDB6TTUwMCA2NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNTAwcTIwIDAgMzUgMTV0
MTUgMzV2MTAwcTAgMjEgLTE1IDM1LjV0LTM1IDE0LjVoLTUwMHEtMjEgMCAtMzUuNSAtMTQuNXQt
MTQuNSAtMzUuNXYtMTAwek01MDAgOTUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDEwMHEyMCAw
IDM1IDE1dDE1IDM1djEwMCBxMCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtMTAwcS0yMSAwIC0zNS41
IC0xNC41dC0xNC41IC0zNS41di0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNTg7IiBk
PSJNMSA1MHEwIC0yMCAxNC41IC0zNXQzNS41IC0xNWg2MDBxMjAgMCAzNSAxNXQxNSAzNXYxMDBx
MCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtNjAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41
di0xMDB6TTEgMzUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDMwMHEyMCAwIDM1IDE1dDE1IDM1
djEwMHEwIDIxIC0xNSAzNS41dC0zNSAxNC41aC0zMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUg
LTM1LjV2LTEwMHpNMSA2NTAgcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDUwMHEyMCAwIDM1IDE1
dDE1IDM1djEwMHEwIDIxIC0xNSAzNS41dC0zNSAxNC41aC01MDBxLTIxIDAgLTM1LjUgLTE0LjV0
LTE0LjUgLTM1LjV2LTEwMHpNMSA5NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTAwcTIwIDAg
MzUgMTV0MTUgMzV2MTAwcTAgMjEgLTE1IDM1LjV0LTM1IDE0LjVoLTEwMHEtMjEgMCAtMzUuNSAt
MTQuNXQtMTQuNSAtMzUuNXYtMTAwek04MDEgMHYxMTAwaDEwMHYtMTEwMCBoLTEwMHpNOTM0IDU1
MGwxNjcgLTEyNXY3NWgyMDB2MTAwaC0yMDB2NzV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
NTk7IiBkPSJNMCAyNzV2NjUwcTAgMzEgMjIgNTN0NTMgMjJoNzUwcTMxIDAgNTMgLTIydDIyIC01
M3YtNjUwcTAgLTMxIC0yMiAtNTN0LTUzIC0yMmgtNzUwcS0zMSAwIC01MyAyMnQtMjIgNTN6TTkw
MCA2MDBsMzAwIDMwMHYtNjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDYwOyIgZD0iTTAg
NDR2MTAxMnEwIDE4IDEzIDMxdDMxIDEzaDExMTJxMTkgMCAzMS41IC0xM3QxMi41IC0zMXYtMTAx
MnEwIC0xOCAtMTIuNSAtMzF0LTMxLjUgLTEzaC0xMTEycS0xOCAwIC0zMSAxM3QtMTMgMzF6TTEw
MCAyNjNsMjQ3IDE4MmwyOTggLTEzMWwtNzQgMTU2bDI5MyAzMThsMjM2IC0yODh2NTAwaC0xMDAw
di03Mzd6TTIwOCA3NTBxMCA1NiAzOSA5NXQ5NSAzOXQ5NSAtMzl0MzkgLTk1dC0zOSAtOTV0LTk1
IC0zOXQtOTUgMzl0LTM5IDk1eiAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MjsiIGQ9Ik0x
NDggNzQ1cTAgMTI0IDYwLjUgMjMxLjV0MTY1IDE3MnQyMjYuNSA2NC41cTEyMyAwIDIyNyAtNjN0
MTY0LjUgLTE2OS41dDYwLjUgLTIyOS41dC03MyAtMjcycS03MyAtMTE0IC0xNjYuNSAtMjM3dC0x
NTAuNSAtMTg5bC01NyAtNjZxLTEwIDkgLTI3IDI2dC02Ni41IDcwLjV0LTk2IDEwOXQtMTA0IDEz
NS41dC0xMDAuNSAxNTVxLTYzIDEzOSAtNjMgMjYyek0zNDIgNzcycTAgLTEwNyA3NS41IC0xODIu
NXQxODEuNSAtNzUuNSBxMTA3IDAgMTgyLjUgNzUuNXQ3NS41IDE4Mi41dC03NS41IDE4MnQtMTgy
LjUgNzV0LTE4MiAtNzUuNXQtNzUgLTE4MS41eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDYz
OyIgZD0iTTEgNjAwcTAgMTIyIDQ3LjUgMjMzdDEyNy41IDE5MXQxOTEgMTI3LjV0MjMzIDQ3LjV0
MjMzIC00Ny41dDE5MSAtMTI3LjV0MTI3LjUgLTE5MXQ0Ny41IC0yMzN0LTQ3LjUgLTIzM3QtMTI3
LjUgLTE5MXQtMTkxIC0xMjcuNXQtMjMzIC00Ny41dC0yMzMgNDcuNXQtMTkxIDEyNy41dC0xMjcu
NSAxOTF0LTQ3LjUgMjMzek0xNzMgNjAwcTAgLTE3NyAxMjUuNSAtMzAydDMwMS41IC0xMjV2ODU0
cS0xNzYgMCAtMzAxLjUgLTEyNSB0LTEyNS41IC0zMDJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwNjQ7IiBkPSJNMTE3IDQwNnEwIDk0IDM0IDE4NnQ4OC41IDE3Mi41dDExMiAxNTl0MTE1IDE3
N3Q4Ny41IDE5NC41cTIxIC03MSA1Ny41IC0xNDIuNXQ3NiAtMTMwLjV0ODMgLTExOC41dDgyIC0x
MTd0NzAgLTExNnQ1MCAtMTI1LjV0MTguNSAtMTM2cTAgLTg5IC0zOSAtMTY1LjV0LTEwMiAtMTI2
LjV0LTE0MCAtNzkuNXQtMTU2IC0zMy41cS0xMTQgNiAtMjExLjUgNTN0LTE2MS41IDEzOXQtNjQg
MjEwek0yNDMgNDE0cTE0IC04MiA1OS41IC0xMzYgdDEzNi41IC04MGwxNiA5OHEtNyA2IC0xOCAx
N3QtMzQgNDh0LTMzIDc3cS0xNSA3MyAtMTQgMTQzLjV0MTAgMTIyLjVsOSA1MXEtOTIgLTExMCAt
MTE5LjUgLTE4NXQtMTIuNSAtMTU2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDY1OyIgZD0i
TTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQyODIuNSAxMTcuNXEzNjYgLTYgMzk3IC0xNGwt
MTg2IC0xODZoLTMxMXEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5
LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djEyNWwyMDAg
MjAwdi0yMjVxMCAtMTY1IC0xMTcuNSAtMjgyLjV0LTI4Mi41IC0xMTcuNWgtMzAwcS0xNjUgMCAt
MjgyLjUgMTE3LjUgdC0xMTcuNSAyODIuNXpNNDM2IDM0MWwxNjEgNTBsNDEyIDQxMmwtMTE0IDEx
M2wtNDA1IC00MDV6TTk5NSAxMDE1bDExMyAtMTEzbDExMyAxMTNsLTIxIDg1bC05MiAyOHoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NjsiIGQ9Ik0wIDQwMHYzMDBxMCAxNjUgMTE3LjUgMjgy
LjV0MjgyLjUgMTE3LjVoMjYxbDIgLTgwcS0xMzMgLTMyIC0yMTggLTEyMGgtMTQ1cS00MSAwIC03
MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUw
MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjVsMjAwIDE1M3YtNTNxMCAtMTY1IC0xMTcuNSAtMjgy
LjV0LTI4Mi41IC0xMTcuNWgtMzAwcS0xNjUgMCAtMjgyLjUgMTE3LjV0LTExNy41IDI4Mi41IHpN
NDIzIDUyNHEzMCAzOCA4MS41IDY0dDEwMyAzNS41dDk5IDE0dDc3LjUgMy41bDI5IC0xdi0yMDls
MzYwIDMyNGwtMzU5IDMxOHYtMjE2cS03IDAgLTE5IC0xdC00OCAtOHQtNjkuNSAtMTguNXQtNzYu
NSAtMzd0LTc2LjUgLTU5dC02MiAtODh0LTM5LjUgLTEyMS41eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDY3OyIgZD0iTTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQyODIuNSAxMTcuNWgz
MDBxNjEgMCAxMjcgLTIzbC0xNzggLTE3N2gtMzQ5cS00MSAwIC03MC41IC0yOS41dC0yOS41IC03
MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQy
OS41IDcwLjV2NjlsMjAwIDIwMHYtMTY5cTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAtMTE3
LjVoLTMwMHEtMTY1IDAgLTI4Mi41IDExNy41IHQtMTE3LjUgMjgyLjV6TTM0MiA2MzJsMjgzIC0y
ODRsNTY3IDU2N2wtMTM3IDEzN2wtNDMwIC00MzFsLTE0NiAxNDd6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwNjg7IiBkPSJNMCA2MDNsMzAwIDI5NnYtMTk4aDIwMHYyMDBoLTIwMGwzMDAgMzAw
bDI5NSAtMzAwaC0xOTV2LTIwMGgyMDB2MTk4bDMwMCAtMjk2bC0zMDAgLTMwMHYxOThoLTIwMHYt
MjAwaDE5NWwtMjk1IC0zMDBsLTMwMCAzMDBoMjAwdjIwMGgtMjAwdi0xOTh6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwNjk7IiBkPSJNMjAwIDUwdjEwMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAx
NC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM3bDUwMCA0ODd2LTExMDBsLTUw
MCA0ODh2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41
IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MDsiIGQ9Ik0wIDUw
djEwMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAt
MzUuNXYtNDM3bDUwMCA0ODd2LTQ4N2w1MDAgNDg3di0xMTAwbC01MDAgNDg4di00ODhsLTUwMCA0
ODh2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0
LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MTsiIGQ9Ik0xMzYgNTUw
bDU2NCA1NTB2LTQ4N2w1MDAgNDg3di0xMTAwbC01MDAgNDg4di00ODh6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwNzI7IiBkPSJNMjAwIDBsOTAwIDU1MGwtOTAwIDU1MHYtMTEwMHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTA3MzsiIGQ9Ik0yMDAgMTUwcTAgLTIxIDE0LjUgLTM1LjV0MzUu
NSAtMTQuNWgyMDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djgwMHEwIDIxIC0xNC41IDM1LjV0
LTM1LjUgMTQuNWgtMjAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di04MDB6TTYwMCAx
NTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41aDIwMHEyMSAwIDM1LjUgMTQuNXQxNC41IDM1
LjV2ODAwcTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC0yMDAgcS0yMSAwIC0zNS41IC0xNC41
dC0xNC41IC0zNS41di04MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMjAw
IDE1MHEwIC0yMCAxNC41IC0zNXQzNS41IC0xNWg4MDBxMjEgMCAzNS41IDE1dDE0LjUgMzV2ODAw
cTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC04MDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUg
LTM1LjV2LTgwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NTsiIGQ9Ik0wIDB2MTEwMGw1
MDAgLTQ4N3Y0ODdsNTY0IC01NTBsLTU2NCAtNTUwdjQ4OHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTA3NjsiIGQ9Ik0wIDB2MTEwMGw1MDAgLTQ4N3Y0ODdsNTAwIC00ODd2NDM3cTAgMjEgMTQu
NSAzNS41dDM1LjUgMTQuNWgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAt
MjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1
LjV2NDM4bC01MDAgLTQ4OHY0ODh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNzc7IiBkPSJN
MzAwIDB2MTEwMGw1MDAgLTQ4N3Y0MzdxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEyMSAw
IDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQu
NWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0Mzh6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUwNzg7IiBkPSJNMTAwIDI1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEw
MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUu
NSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTEwMCA1MDBoMTEwMGwt
NTUwIDU2NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3OTsiIGQ9Ik0xODUgNTk5bDU5MiAt
NTkybDI0MCAyNDBsLTM1MyAzNTNsMzUzIDM1M2wtMjQwIDI0MHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTA4MDsiIGQ9Ik0yNzIgMTk0bDM1MyAzNTNsLTM1MyAzNTNsMjQxIDI0MGw1NzIgLTU3
MWwyMSAtMjJsLTEgLTF2LTFsLTU5MiAtNTkxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDgx
OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04
MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUg
LTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0zMDAgNTAwaDIwMHYtMjAwaDIw
MHYyMDBoMjAwdjIwMGgtMjAwdjIwMGgtMjAwdi0yMDBoLTIwMHYtMjAweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDgyOyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5
OS41IDgwdDI5OS41IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41
IC0yMTcuNXQtMjk5LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0zMDAg
NTAwaDYwMHYyMDBoLTYwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0i
TTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04MHQyMTcu
NSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUgLTgwdC0y
OTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0yNDYgNDU5bDIxMyAtMjEzbDE0MSAxNDJs
MTQxIC0xNDJsMjEzIDIxM2wtMTQyIDE0MWwxNDIgMTQxbC0yMTMgMjEybC0xNDEgLTE0MWwtMTQx
IDE0MmwtMjEyIC0yMTNsMTQxIC0xNDEgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDg0OyIg
ZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04MHQy
MTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUgLTgw
dC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0yNzAgNTUxbDI3NiAtMjc3bDQxMSA0
MTFsLTE3NSAxNzRsLTIzNiAtMjM2bC0xMDIgMTAyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDg1OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41
IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5
LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0zNjQgNzAwaDE0M3E0IDAg
MTEuNSAtMXQxMSAtMXQ2LjUgM3QzIDl0MSAxMXQzLjUgOC41dDMuNSA2dDUuNSA0dDYuNSAyLjV0
OSAxLjV0OSAwLjVoMTEuNWgxMi41IHExOSAwIDMwIC0xMHQxMSAtMjZxMCAtMjIgLTQgLTI4dC0y
NyAtMjJxLTUgLTEgLTEyLjUgLTN0LTI3IC0xMy41dC0zNCAtMjd0LTI2LjUgLTQ2dC0xMSAtNjgu
NWgyMDBxNSAzIDE0IDh0MzEuNSAyNS41dDM5LjUgNDUuNXQzMSA2OXQxNCA5NHEwIDUxIC0xNy41
IDg5dC00MiA1OHQtNTguNSAzMnQtNTguNSAxNXQtNTEuNSAzcS01MCAwIC05MC41IC0xMnQtNzUg
LTM4LjV0LTUzLjUgLTc0LjV0LTE5IC0xMTR6TTUwMCAzMDBoMjAwdjEwMGgtMjAwIHYtMTAweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIx
Ny41IDIxNy41dDI5OS41IDgwdDI5OS41IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAt
Mjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgw
IDI5OS41ek00MDAgMzAwaDQwMHYxMDBoLTEwMHYzMDBoLTMwMHYtMTAwaDEwMHYtMjAwaC0xMDB2
LTEwMHpNNTAwIDgwMGgyMDB2MTAwaC0yMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTA4NzsiIGQ9Ik0wIDUwMHYyMDBoMTk1cTMxIDEyNSA5OC41IDE5OS41dDIwNi41IDEwMC41djIw
MGgyMDB2LTIwMHE1NCAtMjAgMTEzIC02MHQxMTIuNSAtMTA1LjV0NzEuNSAtMTM0LjVoMjAzdi0y
MDBoLTIwM3EtMjUgLTEwMiAtMTE2LjUgLTE4NnQtMTgwLjUgLTExN3YtMTk3aC0yMDB2MTk3cS0x
NDAgMjcgLTIwOCAxMDIuNXQtOTggMjAwLjVoLTE5NHpNMjkwIDUwMHEyNCAtNzMgNzkuNSAtMTI3
LjV0MTMwLjUgLTc4LjV2MjA2aDIwMHYtMjA2IHExNDkgNDggMjAxIDIwNmgtMjAxdjIwMGgyMDBx
LTI1IDc0IC03NS41IDEyN3QtMTI0LjUgNzd2LTIwNGgtMjAwdjIwM3EtNzUgLTIzIC0xMzAgLTc3
dC03OSAtMTI2aDIwOXYtMjAwaC0yMTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwODg7IiBk
PSJNNCA2MDBxMCAxNjIgODAgMjk5dDIxNyAyMTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0ODAg
LTI5OXQtODAgLTI5OXQtMjE3IC0yMTd0LTI5OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAgMjk5
ek0xODYgNjAwcTAgLTE3MSAxMjEuNSAtMjkyLjV0MjkyLjUgLTEyMS41dDI5Mi41IDEyMS41dDEy
MS41IDI5Mi41dC0xMjEuNSAyOTIuNXQtMjkyLjUgMTIxLjV0LTI5Mi41IC0xMjEuNXQtMTIxLjUg
LTI5Mi41ek0zNTYgNDY1bDEzNSAxMzUgbC0xMzUgMTM1bDEwOSAxMDlsMTM1IC0xMzVsMTM1IDEz
NWwxMDkgLTEwOWwtMTM1IC0xMzVsMTM1IC0xMzVsLTEwOSAtMTA5bC0xMzUgMTM1bC0xMzUgLTEz
NXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik00IDYwMHEwIDE2MiA4MCAyOTl0
MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAtMjk5dC04MCAtMjk5dC0yMTcgLTIx
N3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6TTE4NiA2MDBxMCAtMTcxIDEyMS41
IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIxLjUgMjkyLjV0LTEyMS41IDI5Mi41
dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAtMjkyLjV6TTMyMiA1MzdsMTQxIDE0
MSBsODcgLTg3bDIwNCAyMDVsMTQyIC0xNDJsLTM0NiAtMzQ1eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDkwOyIgZD0iTTQgNjAwcTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgw
dDIxNyAtMjE3dDgwIC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIx
NyAyMTd0LTgwIDI5OXpNMTg2IDYwMHEwIC0xMTUgNjIgLTIxNWw1NjggNTY3cS0xMDAgNjIgLTIx
NiA2MnEtMTcxIDAgLTI5Mi41IC0xMjEuNXQtMTIxLjUgLTI5Mi41ek0zOTEgMjQ1cTk3IC01OSAy
MDkgLTU5cTE3MSAwIDI5Mi41IDEyMS41dDEyMS41IDI5Mi41IHEwIDExMiAtNTkgMjA5eiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTAgNTQ3bDYwMCA0NTN2LTMwMGg2MDB2LTMw
MGgtNjAwdi0zMDF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNMCA0MDB2MzAw
aDYwMHYzMDBsNjAwIC00NTNsLTYwMCAtNDQ4djMwMWgtNjAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDkzOyIgZD0iTTIwNCA2MDBsNDUwIDYwMGw0NDQgLTYwMGgtMjk4di02MDBoLTMwMHY2
MDBoLTI5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NDsiIGQ9Ik0xMDQgNjAwaDI5NnY2
MDBoMzAwdi02MDBoMjk4bC00NDkgLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsi
IGQ9Ik0wIDIwMHE2IDEzMiA0MSAyMzguNXQxMDMuNSAxOTN0MTg0IDEzOHQyNzEuNSA1OS41djI3
MWw2MDAgLTQ1M2wtNjAwIC00NDh2MzAxcS05NSAtMiAtMTgzIC0yMHQtMTcwIC01MnQtMTQ3IC05
Mi41dC0xMDAgLTEzNS41eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTAgMHY0
MDBsMTI5IC0xMjlsMjk0IDI5NGwxNDIgLTE0MmwtMjk0IC0yOTRsMTI5IC0xMjloLTQwMHpNNjM1
IDc3N2wxNDIgLTE0MmwyOTQgMjk0bDEyOSAtMTI5djQwMGgtNDAwbDEyOSAtMTI5eiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTM0IDE3NmwyOTUgMjk1bC0xMjkgMTI5aDQwMHYt
NDAwbC0xMjkgMTMwbC0yOTUgLTI5NXpNNjAwIDYwMHY0MDBsMTI5IC0xMjlsMjk1IDI5NWwxNDIg
LTE0MWwtMjk1IC0yOTVsMTI5IC0xMzBoLTQwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEw
MTsiIGQ9Ik0yMyA2MDBxMCAxMTggNDUuNSAyMjQuNXQxMjMgMTg0dDE4NCAxMjN0MjI0LjUgNDUu
NXQyMjQuNSAtNDUuNXQxODQgLTEyM3QxMjMgLTE4NHQ0NS41IC0yMjQuNXQtNDUuNSAtMjI0LjV0
LTEyMyAtMTg0dC0xODQgLTEyM3QtMjI0LjUgLTQ1LjV0LTIyNC41IDQ1LjV0LTE4NCAxMjN0LTEy
MyAxODR0LTQ1LjUgMjI0LjV6TTQ1NiA4NTFsNTggLTMwMnE0IC0yMCAyMS41IC0zNC41dDM3LjUg
LTE0LjVoNTRxMjAgMCAzNy41IDE0LjUgdDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0z
MiAxNC41aC0yMDdxLTIxIDAgLTMzIC0xNC41dC04IC0zNC41ek01MDAgMzAwaDIwMHYxMDBoLTIw
MHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTAgODAwaDEwMHYtMjAw
aDQwMHYzMDBoMjAwdi0zMDBoNDAwdjIwMGgxMDB2MTAwaC0xMTFxMSAxIDEgNi41dC0xLjUgMTV0
LTMuNSAxNy41bC0zNCAxNzJxLTExIDM5IC00MS41IDYzdC02OS41IDI0cS0zMiAwIC02MSAtMTds
LTIzOSAtMTQ0cS0yMiAtMTMgLTQwIC0zNXEtMTkgMjQgLTQwIDM2bC0yMzggMTQ0cS0zMyAxOCAt
NjIgMThxLTM5IDAgLTY5LjUgLTIzdC00MC41IC02MWwtMzUgLTE3N3EtMiAtOCAtMyAtMTh0LTEg
LTE1di02IGgtMTExdi0xMDB6TTEwMCAwaDQwMHY0MDBoLTQwMHYtNDAwek0yMDAgOTAwcS0zIDAg
MTQgNDh0MzYgOTZsMTggNDdsMjEzIC0xOTFoLTI4MXpNNzAwIDB2NDAwaDQwMHYtNDAwaC00MDB6
TTczMSA5MDBsMjAyIDE5N3E1IC0xMiAxMiAtMzIuNXQyMyAtNjR0MjUgLTcydDcgLTI4LjVoLTI2
OXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEwMzsiIGQ9Ik0wIC0yMnYxNDNsMjE2IDE5M3Et
OSA1MyAtMTMgODN0LTUuNSA5NHQ5IDExM3QzOC41IDExNHQ3NCAxMjRxNDcgNjAgOTkuNSAxMDIu
NXQxMDMgNjh0MTI3LjUgNDh0MTQ1LjUgMzcuNXQxODQuNSA0My41dDIyMCA1OC41cTAgLTE4OSAt
MjIgLTM0M3QtNTkgLTI1OHQtODkgLTE4MS41dC0xMDguNSAtMTIwdC0xMjIgLTY4dC0xMjUuNSAt
MzB0LTEyMS41IC0xLjV0LTEwNy41IDEyLjV0LTg3LjUgMTd0LTU2LjUgNy41bC05OSAtNTV6IE0y
MzguNSAzMDAuNXExOS41IC02LjUgODYuNSA3Ni41cTU1IDY2IDM2NyAyMzRxNzAgMzggMTE4LjUg
NjkuNXQxMDIgNzl0OTkgMTExLjV0ODYuNSAxNDhxMjIgNTAgMjQgNjB0LTYgMTlxLTcgNSAtMTcg
NXQtMjYuNSAtMTQuNXQtMzMuNSAtMzkuNXEtMzUgLTUxIC0xMTMuNSAtMTA4LjV0LTEzOS41IC04
OS41bC02MSAtMzJxLTM2OSAtMTk3IC00NTggLTQwMXEtNDggLTExMSAtMjguNSAtMTE3LjV6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMDQ7IiBkPSJNMTExIDQwOHEwIC0zMyA1IC02M3E5IC01
NiA0NCAtMTE5LjV0MTA1IC0xMDguNXEzMSAtMjEgNjQgLTE2dDYyIDIzLjV0NTcgNDkuNXQ0OCA2
MS41dDM1IDYwLjVxMzIgNjYgMzkgMTg0LjV0LTEzIDE1Ny41cTc5IC04MCAxMjIgLTE2NHQyNiAt
MTg0cS01IC0zMyAtMjAuNSAtNjkuNXQtMzcuNSAtODAuNXEtMTAgLTE5IC0xNC41IC0yOXQtMTIg
LTI2dC05IC0yMy41dC0zIC0xOXQyLjUgLTE1LjV0MTEgLTkuNXQxOS41IC01dDMwLjUgMi41IHQ0
MiA4cTU3IDIwIDkxIDM0dDg3LjUgNDQuNXQ4NyA2NHQ2NS41IDg4LjV0NDcgMTIycTM4IDE3MiAt
NDQuNSAzNDEuNXQtMjQ2LjUgMjc4LjVxMjIgLTQ0IDQzIC0xMjlxMzkgLTE1OSAtMzIgLTE1NHEt
MTUgMiAtMzMgOXEtNzkgMzMgLTEyMC41IDEwMHQtNDQgMTc1LjV0NDguNSAyNTcuNXEtMTMgLTgg
LTM0IC0yMy41dC03Mi41IC02Ni41dC04OC41IC0xMDUuNXQtNjAgLTEzOHQtOCAtMTY2LjVxMiAt
MTIgOCAtNDEuNXQ4IC00M3Q2IC0zOS41IHQzLjUgLTM5LjV0LTEgLTMzLjV0LTYgLTMxLjV0LTEz
LjUgLTI0dC0yMSAtMjAuNXQtMzEgLTEycS0zOCAtMTAgLTY3IDEzdC00MC41IDYxLjV0LTE1IDgx
LjV0MTAuNSA3NXEtNTIgLTQ2IC04My41IC0xMDF0LTM5IC0xMDd0LTcuNSAtODV6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUxMDU7IiBkPSJNLTYxIDYwMGwyNiA0MHE2IDEwIDIwIDMwdDQ5IDYz
LjV0NzQuNSA4NS41dDk3IDkwdDExNi41IDgzLjV0MTMyLjUgNTl0MTQ1LjUgMjMuNXQxNDUuNSAt
MjMuNXQxMzIuNSAtNTl0MTE2LjUgLTgzLjV0OTcgLTkwdDc0LjUgLTg1LjV0NDkgLTYzLjV0MjAg
LTMwbDI2IC00MGwtMjYgLTQwcS02IC0xMCAtMjAgLTMwdC00OSAtNjMuNXQtNzQuNSAtODUuNXQt
OTcgLTkwdC0xMTYuNSAtODMuNXQtMTMyLjUgLTU5dC0xNDUuNSAtMjMuNSB0LTE0NS41IDIzLjV0
LTEzMi41IDU5dC0xMTYuNSA4My41dC05NyA5MHQtNzQuNSA4NS41dC00OSA2My41dC0yMCAzMHpN
MTIwIDYwMHE3IC0xMCA0MC41IC01OHQ1NiAtNzguNXQ2OCAtNzcuNXQ4Ny41IC03NXQxMDMgLTQ5
LjV0MTI1IC0yMS41dDEyMy41IDIwdDEwMC41IDQ1LjV0ODUuNSA3MS41dDY2LjUgNzUuNXQ1OCA4
MS41dDQ3IDY2cS0xIDEgLTI4LjUgMzcuNXQtNDIgNTV0LTQzLjUgNTN0LTU3LjUgNjMuNXQtNTgu
NSA1NCBxNDkgLTc0IDQ5IC0xNjNxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4
IDIxMnEwIDg1IDQ2IDE1OHEtMTAyIC04NyAtMjI2IC0yNTh6TTM3NyA2NTZxNDkgLTEyNCAxNTQg
LTE5MWwxMDUgMTA1cS0zNyAyNCAtNzUgNzJ0LTU3IDg0bC0yMCAzNnoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTEwNjsiIGQ9Ik0tNjEgNjAwbDI2IDQwcTYgMTAgMjAgMzB0NDkgNjMuNXQ3NC41
IDg1LjV0OTcgOTB0MTE2LjUgODMuNXQxMzIuNSA1OXQxNDUuNSAyMy41cTYxIDAgMTIxIC0xN2wz
NyAxNDJoMTQ4bC0zMTQgLTEyMDBoLTE0OGwzNyAxNDNxLTgyIDIxIC0xNjUgNzEuNXQtMTQwIDEw
MnQtMTA5LjUgMTEydC03MiA4OC41dC0yOS41IDQzek0xMjAgNjAwcTIxMCAtMjgyIDM5MyAtMzM2
bDM3IDE0MXEtMTA3IDE4IC0xNzguNSAxMDEuNXQtNzEuNSAxOTMuNSBxMCA4NSA0NiAxNThxLTEw
MiAtODcgLTIyNiAtMjU4ek0zNzcgNjU2cTQ5IC0xMjQgMTU0IC0xOTFsNDcgNDdsMjMgODdxLTMw
IDI4IC01OSA2OXQtNDQgNjhsLTE0IDI2ek03ODAgMTYxbDM4IDE0NXEyMiAxNSA0NC41IDM0dDQ2
IDQ0dDQwLjUgNDR0NDEgNTAuNXQzMy41IDQzLjV0MzMgNDR0MjQuNSAzNHEtOTcgMTI3IC0xNDAg
MTc1bDM5IDE0NnE2NyAtNTQgMTMxLjUgLTEyNS41dDg3LjUgLTEwMy41dDM2IC01MmwyNiAtNDBs
LTI2IC00MCBxLTcgLTEyIC0yNS41IC0zOHQtNjMuNSAtNzkuNXQtOTUuNSAtMTAyLjV0LTEyNCAt
MTAwdC0xNDYuNSAtNzl6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMDc7IiBkPSJNLTk3LjUg
MzRxMTMuNSAtMzQgNTAuNSAtMzRoMTI5NHEzNyAwIDUwLjUgMzUuNXQtNy41IDY3LjVsLTY0MiAx
MDU2cS0yMCAzNCAtNDggMzYuNXQtNDggLTI5LjVsLTY0MiAtMTA2NnEtMjEgLTMyIC03LjUgLTY2
ek0xNTUgMjAwbDQ0NSA3MjNsNDQ1IC03MjNoLTM0NXYxMDBoLTIwMHYtMTAwaC0zNDV6TTUwMCA2
MDBsMTAwIC0zMDBsMTAwIDMwMHYxMDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMTA4OyIgZD0iTTEwMCAyNjJ2NDFxMCAyMCAxMSA0NC41dDI2IDM4LjVsMzYzIDMyNXYzMzlx
MCA2MiA0NCAxMDZ0MTA2IDQ0dDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAy
NiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2
M3ExMDAgLTkxIDEwMCAtMTEzdi02NHEwIC0yMCAtMTMgLTI4LjV0LTMyIDAuNWwtOTQgNzhoLTIy
MmwtOTQgLTc4cS0xOSAtOSAtMzIgLTAuNXQtMTMgMjguNSB2NjRxMCAyMiAxMDAgMTEzdjI2M2wt
MzU5IC0yNDlxLTE3IC0xMiAtMjkgLTUuNXQtMTIgMjYuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTEwOTsiIGQ9Ik0wIDUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDEwMDBxMjEgMCAzNS41
IDE1dDE0LjUgMzV2NzUwaC0xMTAwdi03NTB6TTAgOTAwaDExMDB2MTUwcTAgMjEgLTE0LjUgMzUu
NXQtMzUuNSAxNC41aC0xNTB2MTAwaC0xMDB2LTEwMGgtNTAwdjEwMGgtMTAwdi0xMDBoLTE1MHEt
MjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTUwek0xMDAgMTAwdjEwMGgxMDB2LTEwMGgt
MTAwek0xMDAgMzAwdjEwMGgxMDB2LTEwMGgtMTAweiBNMTAwIDUwMHYxMDBoMTAwdi0xMDBoLTEw
MHpNMzAwIDEwMHYxMDBoMTAwdi0xMDBoLTEwMHpNMzAwIDMwMHYxMDBoMTAwdi0xMDBoLTEwMHpN
MzAwIDUwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNTAwIDEwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNTAw
IDMwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNTAwIDUwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAwIDEw
MHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAwIDMwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAwIDUwMCB2
MTAwaDEwMHYtMTAwaC0xMDB6TTkwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6TTkwMCAzMDB2MTAw
aDEwMHYtMTAwaC0xMDB6TTkwMCA1MDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUxMTA7IiBkPSJNMCAyMDB2MjAwaDI1OWw2MDAgNjAwaDI0MXYxOThsMzAwIC0y
OTVsLTMwMCAtMzAwdjE5N2gtMTU5bC02MDAgLTYwMGgtMzQxek0wIDgwMGgyNTlsMTIyIC0xMjJs
MTQxIDE0MmwtMTgxIDE4MGgtMzQxdi0yMDB6TTY3OCAzODFsMTQxIDE0MmwxMjIgLTEyM2gxNTl2
MTk4bDMwMCAtMjk1bC0zMDAgLTMwMHYxOTdoLTI0MXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTExMTsiIGQ9Ik0wIDQwMHY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMDBxNDEgMCA3
MC41IC0yOS41dDI5LjUgLTcwLjV2LTYwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgt
NTk2bC0zMDQgLTMwMHYzMDBoLTEwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTAwIDYwMHYyMDBoMzAwdi0yNTBxMCAtMTEz
IDYgLTE0NXExNyAtOTIgMTAyIC0xMTdxMzkgLTExIDkyIC0xMXEzNyAwIDY2LjUgNS41dDUwIDE1
LjV0MzYgMjR0MjQgMzEuNXQxNCAzNy41dDcgNDJ0Mi41IDQ1dDAgNDd2MjV2MjUwaDMwMHYtMjAw
cTAgLTQyIC0zIC04M3QtMTUgLTEwNHQtMzEuNSAtMTE2dC01OCAtMTA5LjV0LTg5IC05Ni41dC0x
MjkgLTY1LjV0LTE3NC41IC0yNS41dC0xNzQuNSAyNS41dC0xMjkgNjUuNXQtODkgOTYuNSB0LTU4
IDEwOS41dC0zMS41IDExNnQtMTUgMTA0dC0zIDgzek0xMDAgOTAwdjMwMGgzMDB2LTMwMGgtMzAw
ek04MDAgOTAwdjMwMGgzMDB2LTMwMGgtMzAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTEz
OyIgZD0iTS0zMCA0MTFsMjI3IC0yMjdsMzUyIDM1M2wzNTMgLTM1M2wyMjYgMjI3bC01NzggNTc5
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTE0OyIgZD0iTTcwIDc5N2w1ODAgLTU3OWw1Nzgg
NTc5bC0yMjYgMjI3bC0zNTMgLTM1M2wtMzUyIDM1M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTExNTsiIGQ9Ik0tMTk4IDcwMGwyOTkgMjgzbDMwMCAtMjgzaC0yMDN2LTQwMGgzODVsMjE1IC0y
MDBoLTgwMHY2MDBoLTE5NnpNNDAyIDEwMDBsMjE1IC0yMDBoMzgxdi00MDBoLTE5OGwyOTkgLTI4
M2wyOTkgMjgzaC0yMDB2NjAwaC03OTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBk
PSJNMTggOTM5cS01IDI0IDEwIDQycTE0IDE5IDM5IDE5aDg5NmwzOCAxNjJxNSAxNyAxOC41IDI3
LjV0MzAuNSAxMC41aDk0cTIwIDAgMzUgLTE0LjV0MTUgLTM1LjV0LTE1IC0zNS41dC0zNSAtMTQu
NWgtNTRsLTIwMSAtOTYxcS0yIC00IC02IC0xMC41dC0xOSAtMTcuNXQtMzMgLTExaC0zMXYtNTBx
MCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNXQtMzUuNSAxNXQtMTQuNSAzNXY1MGgtMzAwdi01MHEw
IC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1IHQtMzUuNSAxNXQtMTQuNSAzNXY1MGgtNTBxLTIxIDAg
LTM1LjUgMTV0LTE0LjUgMzVxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUzNWw0OCAyMDBoLTYz
M3EtMzIgMCAtNTQuNSAyMXQtMjcuNSA0M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTExNzsi
IGQ9Ik0wIDB2ODAwaDEyMDB2LTgwMGgtMTIwMHpNMCA5MDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAu
NXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHYtMTAwaC0xMjAw
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTEgMGwzMDAgNzAwaDEyMDBsLTMw
MCAtNzAwaC0xMjAwek0xIDQwMHY2MDBoMjAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgzMDBx
NDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjVoNTAwdi0yMDBoLTEwMDB6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUxMTk7IiBkPSJNMzAyIDMwMGgxOTh2NjAwaC0xOThsMjk4IDMwMGwyOTggLTMw
MGgtMTk4di02MDBoMTk4bC0yOTggLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMDsi
IGQ9Ik0wIDYwMGwzMDAgMjk4di0xOThoNjAwdjE5OGwzMDAgLTI5OGwtMzAwIC0yOTd2MTk3aC02
MDB2LTE5N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0wIDEwMHYxMDBxMCA0
MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEw
MHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0y
OS41IDcwLjV6TTMxIDQwMGwxNzIgNzM5cTUgMjIgMjMgNDEuNXQzOCAxOS41aDY3MnExOSAwIDM3
LjUgLTIyLjV0MjMuNSAtNDUuNWwxNzIgLTczMmgtMTEzOHpNODAwIDEwMGgxMDB2MTAwaC0xMDB2
LTEwMHogTTEwMDAgMTAwaDEwMHYxMDBoLTEwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMTIyOyIgZD0iTS0xMDEgNjAwdjUwcTAgMjQgMjUgNDl0NTAgMzhsMjUgMTN2LTI1MGwtMTEg
NS41dC0yNCAxNHQtMzAgMjEuNXQtMjQgMjcuNXQtMTEgMzEuNXpNMTAwIDUwMHYyNTB2OHY4djd0
MC41IDd0MS41IDUuNXQyIDV0MyA0dDQuNSAzLjV0NiAxLjV0Ny41IDAuNWgyMDBsNjc1IDI1MHYt
ODUwbC02NzUgMjAwaC0zOGw0NyAtMjc2cTIgLTEyIC0zIC0xNy41dC0xMSAtNnQtMjEgLTAuNWgt
OGgtODNxLTIwIDAgLTM0LjUgMTR0LTE4LjUgMzUgcS01NSAzMzcgLTU1IDM1MXpNMTEwMCAyMDB2
ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXEyMCAwIDM1IC0xNC41dDE1IC0zNS41di04NTBx
MCAtMjAgLTE1IC0zNXQtMzUgLTE1cS0yMSAwIC0zNS41IDE1dC0xNC41IDM1eiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTc0IDM1MHEwIDIxIDEzLjUgMzUuNXQzMy41IDE0LjVo
MThsMTE3IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMyAzMnQy
OSAxM2g5NHEyMCAwIDI5IC0xMC41dDMgLTI5LjVxLTE4IC0zNiAtMTggLTM3cTgzIC0xOSAxNDQg
LTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMjAgMCAzMy41IC0xNC41dDEzLjUg
LTM1LjVxMCAtMjAgLTEzIC00MHQtMzEgLTI3cS04IC0zIC0yMyAtOC41IHQtNjUgLTIwdC0xMDMg
LTI1dC0xMzIuNSAtMTkuNXQtMTU4LjUgLTlxLTEyNSAwIC0yNDUuNSAyMC41dC0xNzguNSA0MC41
bC01OCAyMHEtMTggNyAtMzEgMjcuNXQtMTMgNDAuNXpNNDk3IDExMHExMiAtNDkgNDAgLTc5LjV0
NjMgLTMwLjV0NjMgMzAuNXQzOSA3OS41cS00OCAtNiAtMTAyIC02dC0xMDMgNnoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTEyNDsiIGQ9Ik0yMSA0NDVsMjMzIC00NWwtNzggLTIyNGwyMjQgNzhs
NDUgLTIzM2wxNTUgMTc5bDE1NSAtMTc5bDQ1IDIzM2wyMjQgLTc4bC03OCAyMjRsMjM0IDQ1bC0x
ODAgMTU1bDE4MCAxNTZsLTIzNCA0NGw3OCAyMjVsLTIyNCAtNzhsLTQ1IDIzM2wtMTU1IC0xODBs
LTE1NSAxODBsLTQ1IC0yMzNsLTIyNCA3OGw3OCAtMjI1bC0yMzMgLTQ0bDE3OSAtMTU2eiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMTI1OyIgZD0iTTAgMjAwaDIwMHY2MDBoLTIwMHYtNjAwek0z
MDAgMjc1cTAgLTc1IDEwMCAtNzVoNjFxMTI0IC0xMDAgMTM5IC0xMDBoMjUwcTQ2IDAgODMgNTds
MjM4IDM0NHEyOSAzMSAyOSA3NHYxMDBxMCA0NCAtMzAuNSA4NC41dC02OS41IDQwLjVoLTMyOHEy
OCAxMTggMjggMTI1djE1MHEwIDQ0IC0zMC41IDg0LjV0LTY5LjUgNDAuNWgtNTBxLTI3IDAgLTUx
IC0yMHQtMzggLTQ4bC05NiAtMTk4bC0xNDUgLTE5NnEtMjAgLTI2IC0yMCAtNjN2LTQwMHogTTQw
MCAzMDB2Mzc1bDE1MCAyMTNsMTAwIDIxMmg1MHYtMTc1bC01MCAtMjI1aDQ1MHYtMTI1bC0yNTAg
LTM3NWgtMjE0bC0xMzYgMTAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMjY7IiBk
PSJNMCA0MDB2NjAwaDIwMHYtNjAwaC0yMDB6TTMwMCA1MjV2NDAwcTAgNzUgMTAwIDc1aDYxcTEy
NCAxMDAgMTM5IDEwMGgyNTBxNDYgMCA4MyAtNTdsMjM4IC0zNDRxMjkgLTMxIDI5IC03NHYtMTAw
cTAgLTQ0IC0zMC41IC04NC41dC02OS41IC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBx
MCAtNDQgLTMwLjUgLTg0LjV0LTY5LjUgLTQwLjVoLTUwcS0yNyAwIC01MSAyMHQtMzggNDhsLTk2
IDE5OGwtMTQ1IDE5NiBxLTIwIDI2IC0yMCA2M3pNNDAwIDUyNWwxNTAgLTIxMmwxMDAgLTIxM2g1
MHYxNzVsLTUwIDIyNWg0NTB2MTI1bC0yNTAgMzc1aC0yMTRsLTEzNiAtMTAwaC0xMDB2LTM3NXoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNzsiIGQ9Ik04IDIwMHY2MDBoMjAwdi02MDBoLTIw
MHpNMzA4IDI3NXY1MjVxMCAxNyAxNCAzNS41dDI4IDI4LjVsMTQgOWwzNjIgMjMwcTE0IDYgMjUg
NnExNyAwIDI5IC0xMmwxMDkgLTExMnExNCAtMTQgMTQgLTM0cTAgLTE4IC0xMSAtMzJsLTg1IC0x
MjFoMzAycTg1IDAgMTM4LjUgLTM4dDUzLjUgLTExMHQtNTQuNSAtMTExdC0xMzguNSAtMzloLTEw
N2wtMTMwIC0zMzlxLTcgLTIyIC0yMC41IC00MS41dC0yOC41IC0xOS41aC0zNDEgcS03IDAgLTkw
IDgxdC04MyA5NHpNNDA4IDI4OWwxMDAgLTg5aDI5M2wxMzEgMzM5cTYgMjEgMTkuNSA0MXQyOC41
IDIwaDIwM3ExNiAwIDI1IDE1dDkgMzZxMCAyMCAtOSAzNC41dC0yNSAxNC41aC00NTdoLTYuNWgt
Ny41dC02LjUgMC41dC02IDF0LTUgMS41dC01LjUgMi41dC00IDR0LTQgNS41cS01IDEyIC01IDIw
cTAgMTQgMTAgMjdsMTQ3IDE4M2wtODYgODNsLTMzOSAtMjM2di01MDN6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUxMjg7IiBkPSJNLTEwMSA2NTFxMCA3MiA1NCAxMTB0MTM5IDM4bDMwMiAtMWwt
ODUgMTIxcS0xMSAxNiAtMTEgMzJxMCAyMSAxNCAzNGwxMDkgMTEzcTEzIDEyIDI5IDEycTExIDAg
MjUgLTZsMzY1IC0yMzBxNyAtNCAxNyAtMTAuNXQyNi41IC0yNnQxNi41IC0zNi41di01MjZxMCAt
MTMgLTg2IC05My41dC05NCAtODAuNWgtMzQxcS0xNiAwIC0yOS41IDIwdC0xOS41IDQxbC0xMzAg
MzM5aC0xMDdxLTg0IDAgLTEzOSAzOXQtNTUgMTExek0tMSA2MDFoMjIyIHExNSAwIDI4LjUgLTIw
LjV0MTkuNSAtNDAuNWwxMzEgLTMzOWgyOTNsMTA3IDg5djUwMmwtMzQzIDIzN2wtODcgLTgzbDE0
NSAtMTg0cTEwIC0xMSAxMCAtMjZxMCAtMTEgLTUgLTIwcS0xIC0zIC0zLjUgLTUuNWwtNCAtNHQt
NSAtMi41dC01LjUgLTEuNXQtNi41IC0xdC02LjUgLTAuNWgtNy41aC02LjVoLTQ3NnYtMTAwek0x
MDAwIDIwMXY2MDBoMjAwdi02MDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsi
IGQ9Ik05NyA3MTlsMjMwIC0zNjNxNCAtNiAxMC41IC0xNS41dDI2IC0yNXQzNi41IC0xNS41aDUy
NXExMyAwIDk0IDgzdDgxIDkwdjM0MnEwIDE1IC0yMCAyOC41dC00MSAxOS41bC0zMzkgMTMxdjEw
NnEwIDg0IC0zOSAxMzl0LTExMSA1NXQtMTEwIC01My41dC0zOCAtMTM4LjV2LTMwMmwtMTIxIDg0
cS0xNSAxMiAtMzMuNSAxMS41dC0zMi41IC0xMy41bC0xMTIgLTExMHEtMjIgLTIyIC02IC01M3pN
MTcyIDczOWw4MyA4NmwxODMgLTE0NiBxMjIgLTE4IDQ3IC01cTMgMSA1LjUgMy41bDQgNHQyLjUg
NXQxLjUgNS41dDEgNi41dDAuNSA2LjV2Ny41djYuNXY0NTZxMCAyMiAyNSAzMXQ1MCAtMC41dDI1
IC0zMC41di0yMDJxMCAtMTYgMjAgLTI5LjV0NDEgLTE5LjVsMzM5IC0xMzB2LTI5NGwtODkgLTEw
MGgtNTAzek00MDAgMHYyMDBoNjAwdi0yMDBoLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTEzMDsiIGQ9Ik0yIDU4NXEtMTYgLTMxIDYgLTUzbDExMiAtMTEwcTEzIC0xMyAzMiAtMTMuNXQz
NCAxMC41bDEyMSA4NXEwIC01MSAtMC41IC0xNTMuNXQtMC41IC0xNDguNXEwIC04NCAzOC41IC0x
Mzh0MTEwLjUgLTU0dDExMSA1NXQzOSAxMzl2MTA2bDMzOSAxMzFxMjAgNiA0MC41IDE5LjV0MjAu
NSAyOC41djM0MnEwIDcgLTgxIDkwdC05NCA4M2gtNTI1cS0xNyAwIC0zNS41IC0xNHQtMjguNSAt
MjhsLTEwIC0xNXpNNzcgNTY1bDIzNiAzMzloNTAzIGw4OSAtMTAwdi0yOTRsLTM0MCAtMTMwcS0y
MCAtNiAtNDAgLTIwdC0yMCAtMjl2LTIwMnEwIC0yMiAtMjUgLTMxdC01MCAwdC0yNSAzMXY0NTZ2
MTQuNXQtMS41IDExLjV0LTUgMTJ0LTkuNSA3cS0yNCAxMyAtNDYgLTVsLTE4NCAtMTQ2ek0zMDUg
MTEwNHYyMDBoNjAwdi0yMDBoLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9
Ik01IDU5N3EwIDEyMiA0Ny41IDIzMi41dDEyNy41IDE5MC41dDE5MC41IDEyNy41dDIzMi41IDQ3
LjVxMTYyIDAgMjk5LjUgLTgwdDIxNy41IC0yMTh0ODAgLTMwMHQtODAgLTI5OS41dC0yMTcuNSAt
MjE3LjV0LTI5OS41IC04MHQtMzAwIDgwdC0yMTggMjE3LjV0LTgwIDI5OS41ek0yOTggNzAxbDIg
LTIwMWgzMDBsLTIgLTE5NGw0MDIgMjk0bC00MDIgMjk4di0xOTdoLTMwMHoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTEzMjsiIGQ9Ik0wIDU5N3EwIDEyMiA0Ny41IDIzMi41dDEyNy41IDE5MC41
dDE5MC41IDEyNy41dDIzMS41IDQ3LjVxMTIyIDAgMjMyLjUgLTQ3LjV0MTkwLjUgLTEyNy41dDEy
Ny41IC0xOTAuNXQ0Ny41IC0yMzIuNXEwIC0xNjIgLTgwIC0yOTkuNXQtMjE4IC0yMTcuNXQtMzAw
IC04MHQtMjk5LjUgODB0LTIxNy41IDIxNy41dC04MCAyOTkuNXpNMjAwIDYwMGw0MDIgLTI5NGwt
MiAxOTRoMzAwbDIgMjAxaC0zMDB2MTk3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTMzOyIg
ZD0iTTUgNTk3cTAgMTIyIDQ3LjUgMjMyLjV0MTI3LjUgMTkwLjV0MTkwLjUgMTI3LjV0MjMyLjUg
NDcuNXExNjIgMCAyOTkuNSAtODB0MjE3LjUgLTIxOHQ4MCAtMzAwdC04MCAtMjk5LjV0LTIxNy41
IC0yMTcuNXQtMjk5LjUgLTgwdC0zMDAgODB0LTIxOCAyMTcuNXQtODAgMjk5LjV6TTMwMCA2MDBo
MjAwdi0zMDBoMjAwdjMwMGgyMDBsLTMwMCA0MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUx
MzQ7IiBkPSJNNSA1OTdxMCAxMjIgNDcuNSAyMzIuNXQxMjcuNSAxOTAuNXQxOTAuNSAxMjcuNXQy
MzIuNSA0Ny41cTE2MiAwIDI5OS41IC04MHQyMTcuNSAtMjE4dDgwIC0zMDB0LTgwIC0yOTkuNXQt
MjE3LjUgLTIxNy41dC0yOTkuNSAtODB0LTMwMCA4MHQtMjE4IDIxNy41dC04MCAyOTkuNXpNMzAw
IDYwMGwzMDAgLTQwMGwzMDAgNDAwaC0yMDB2MzAwaC0yMDB2LTMwMGgtMjAweiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMTM1OyIgZD0iTTUgNTk3cTAgMTIyIDQ3LjUgMjMyLjV0MTI3LjUgMTkw
LjV0MTkwLjUgMTI3LjV0MjMyLjUgNDcuNXExMjEgMCAyMzEuNSAtNDcuNXQxOTAuNSAtMTI3LjV0
MTI3LjUgLTE5MC41dDQ3LjUgLTIzMi41cTAgLTE2MiAtODAgLTI5OS41dC0yMTcuNSAtMjE3LjV0
LTI5OS41IC04MHQtMzAwIDgwdC0yMTggMjE3LjV0LTgwIDI5OS41ek0yNTQgNzgwcS04IC0zMyA1
LjUgLTkyLjV0Ny41IC04Ny41cTAgLTkgMTcgLTQ0dDE2IC02MCBxMTIgMCAyMyAtNS41dDIzIC0x
NXQyMCAtMTMuNXEyNCAtMTIgMTA4IC00MnEyMiAtOCA1MyAtMzEuNXQ1OS41IC0zOC41dDU3LjUg
LTExcTggLTE4IC0xNSAtNTV0LTIwIC01N3E0MiAtNzEgODcgLTgwcTAgLTYgLTMgLTE1LjV0LTMu
NSAtMTQuNXQ0LjUgLTE3cTEwNCAtMyAyMjEgMTEycTMwIDI5IDQ3IDQ3dDM0LjUgNDl0MjAuNSA2
MnEtMTQgOSAtMzcgOS41dC0zNiA3LjVxLTE0IDcgLTQ5IDE1dC01MiAxOXEtOSAwIC0zOS41IC0w
LjUgdC00Ni41IC0xLjV0LTM5IC02LjV0LTM5IC0xNi41cS01MCAtMzUgLTY2IC0xMnEtNCAyIC0z
LjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxN3QtMjQuNSA3cTIgMjIgLTIgNDF0LTE2LjUg
Mjh0LTM4LjUgLTIwcS0yMyAtMjUgLTQyIDRxLTE5IDI4IC04IDU4cTYgMTYgMjIgMjJxNiAtMSAy
NiAtMS41dDMzLjUgLTR0MTkuNSAtMTMuNXExMiAtMTkgMzIgLTM3LjV0MzQgLTI3LjVsMTQgLThx
MCAzIDkuNSAzOS41dDUuNSA1Ny41IHEtNCAyMyAxNC41IDQ0LjV0MjIuNSAzMS41cTUgMTQgMTAg
MzV0OC41IDMxdDE1LjUgMjIuNXQzNCAyMS41cS02IDE4IDEwIDM3cTggMCAyMy41IC0xLjV0MjQu
NSAtMS41dDIwLjUgNC41dDIwLjUgMTUuNXEtMTAgMjMgLTMwLjUgNDIuNXQtMzggMzB0LTQ5IDI2
LjV0LTQzLjUgMjNxMTEgMzkgMiA0NHEzMSAtMTMgNTggLTE0LjV0MzkgMy41bDExIDRxNyAzNiAt
MTYuNSA1My41dC02NC41IDI4LjV0LTU2IDIzcS0xOSAtMyAtMzcgMCBxLTE1IC0xMiAtMzYuNSAt
MjF0LTM0LjUgLTEydC00NCAtOHQtMzkgLTZxLTE1IC0zIC00NS41IDAuNXQtNDUuNSAtMi41cS0y
MSAtNyAtNTIgLTI2LjV0LTM0IC0zNC41cS0zIC0xMSA2LjUgLTIyLjV0OC41IC0xOC41cS0zIC0z
NCAtMjcuNSAtOTAuNXQtMjkuNSAtNzkuNXpNNTE4IDkxNnEzIDEyIDE2IDMwdDE2IDI1cTEwIC0x
MCAxOC41IC0xMHQxNCA2dDE0LjUgMTQuNXQxNiAxMi41cTAgLTI0IDE3IC02Ni41dDE3IC00My41
IHEtOSAyIC0zMSA1dC0zNiA1dC0zMiA4dC0zMCAxNHpNNjkyIDEwMDNoMWgtMXoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTEzNjsiIGQ9Ik0wIDE2NC41cTAgMjEuNSAxNSAzNy41bDYwMCA1OTlx
LTMzIDEwMSA2IDIwMS41dDEzNSAxNTQuNXExNjQgOTIgMzA2IC05bC0yNTkgLTEzOGwxNDUgLTIz
MmwyNTEgMTI2cTEzIC0xNzUgLTE1MSAtMjY3cS0xMjMgLTcwIC0yNTMgLTIzbC01OTYgLTU5NnEt
MTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTAgMTk2djEw
MHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAu
NXYtMTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwcS00MSAwIC03MC41IDI5
LjV0LTI5LjUgNzAuNXpNMCA1OTZ2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDAwcTQx
IDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5
LjVoLTEwMDAgcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXpNMCA5OTZ2MTAwcTAgNDEgMjku
NSA3MC41dDcwLjUgMjkuNWgxMDAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBxMCAt
NDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3
MC41ek02MDAgNTk2aDUwMHYxMDBoLTUwMHYtMTAwek04MDAgMTk2aDMwMHYxMDBoLTMwMHYtMTAw
ek05MDAgOTk2aDIwMHYxMDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTM4
OyIgZD0iTTEwMCAxMTAwdjEwMGgxMDAwdi0xMDBoLTEwMDB6TTE1MCAxMDAwaDkwMGwtMzUwIC01
MDB2LTMwMGwtMjAwIC0yMDB2NTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0i
TTAgMjAwdjIwMGgxMjAwdi0yMDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBx
LTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41ek0wIDUwMHY0MDBxMCA0MSAyOS41IDcwLjV0NzAu
NSAyOS41aDMwMHYxMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDIwMHE0MSAwIDcwLjUgLTI5
LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01
MDB2MTAwaC0yMDB2LTEwMGgtNTAweiBNNTAwIDEwMDBoMjAwdjEwMGgtMjAwdi0xMDB6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUxNDA7IiBkPSJNMCAwdjQwMGwxMjkgLTEyOWwyMDAgMjAwbDE0
MiAtMTQybC0yMDAgLTIwMGwxMjkgLTEyOWgtNDAwek0wIDgwMGwxMjkgMTI5bDIwMCAtMjAwbDE0
MiAxNDJsLTIwMCAyMDBsMTI5IDEyOWgtNDAwdi00MDB6TTcyOSAzMjlsMTQyIDE0MmwyMDAgLTIw
MGwxMjkgMTI5di00MDBoLTQwMGwxMjkgMTI5ek03MjkgODcxbDIwMCAyMDBsLTEyOSAxMjloNDAw
di00MDBsLTEyOSAxMjlsLTIwMCAtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTQxOyIg
ZD0iTTAgNTk2cTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgwdDIxNyAtMjE3dDgw
IC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIxNyAyMTd0LTgwIDI5
OXpNMTgyIDU5NnEwIC0xNzIgMTIxLjUgLTI5M3QyOTIuNSAtMTIxdDI5Mi41IDEyMXQxMjEuNSAy
OTNxMCAxNzEgLTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAt
MjkyLjV6TTI5MSA2NTUgcTAgMjMgMTUuNSAzOC41dDM4LjUgMTUuNXQzOSAtMTZ0MTYgLTM4cTAg
LTIzIC0xNiAtMzl0LTM5IC0xNnEtMjIgMCAtMzggMTZ0LTE2IDM5ek00MDAgODUwcTAgMjIgMTYg
MzguNXQzOSAxNi41cTIyIDAgMzggLTE2dDE2IC0zOXQtMTYgLTM5dC0zOCAtMTZxLTIzIDAgLTM5
IDE2LjV0LTE2IDM4LjV6TTUxNCA2MDlxMCAzMiAyMC41IDU2LjV0NTEuNSAyOS41bDEyMiAxMjZs
MSAxcS05IDE0IC05IDI4cTAgMjIgMTYgMzguNXQzOSAxNi41IHEyMiAwIDM4IC0xNnQxNiAtMzl0
LTE2IC0zOXQtMzggLTE2cS0xNCAwIC0yOSAxMGwtNTUgLTE0NXExNyAtMjIgMTcgLTUxcTAgLTM2
IC0yNS41IC02MS41dC02MS41IC0yNS41dC02MS41IDI1LjV0LTI1LjUgNjEuNXpNODAwIDY1NXEw
IDIyIDE2IDM4dDM5IDE2dDM4LjUgLTE1LjV0MTUuNSAtMzguNXQtMTYgLTM5dC0zOCAtMTZxLTIz
IDAgLTM5IDE2dC0xNiAzOXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MjsiIGQ9Ik0tNDAg
Mzc1cS0xMyAtOTUgMzUgLTE3M3EzNSAtNTcgOTQgLTg5dDEyOSAtMzJxNjMgMCAxMTkgMjhxMzMg
MTYgNjUgNDAuNXQ1Mi41IDQ1LjV0NTkuNSA2NHE0MCA0NCA1NyA2MWwzOTQgMzk0cTM1IDM1IDQ3
IDg0dC0zIDk2cS0yNyA4NyAtMTE3IDEwNHEtMjAgMiAtMjkgMnEtNDYgMCAtNzguNSAtMTYuNXQt
NjcuNSAtNTEuNWwtMzg5IC0zOTZsLTcgLTdsNjkgLTY3bDM3NyAzNzNxMjAgMjIgMzkgMzhxMjMg
MjMgNTAgMjMgcTM4IDAgNTMgLTM2cTE2IC0zOSAtMjAgLTc1bC01NDcgLTU0N3EtNTIgLTUyIC0x
MjUgLTUycS01NSAwIC0xMDAgMzN0LTU0IDk2cS01IDM1IDIuNSA2NnQzMS41IDYzdDQyIDUwdDU2
IDU0cTI0IDIxIDQ0IDQxbDM0OCAzNDhxNTIgNTIgODIuNSA3OS41dDg0IDU0dDEwNy41IDI2LjVx
MjUgMCA0OCAtNHE5NSAtMTcgMTU0IC05NC41dDUxIC0xNzUuNXEtNyAtMTAxIC05OCAtMTkybC0y
NTIgLTI0OWwtMjUzIC0yNTZsNyAtN2w2OSAtNjAgbDUxNyA1MTFxNjcgNjcgOTUgMTU3dDExIDE4
M3EtMTYgODcgLTY3IDE1NHQtMTMwIDEwM3EtNjkgMzMgLTE1MiAzM3EtMTA3IDAgLTE5NyAtNTVx
LTQwIC0yNCAtMTExIC05NWwtNTEyIC01MTJxLTY4IC02OCAtODEgLTE2M3oiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTE0MzsiIGQ9Ik04MCA3ODRxMCAxMzEgOTguNSAyMjkuNXQyMzAuNSA5OC41
cTE0MyAwIDI0MSAtMTI5cTEwMyAxMjkgMjQ2IDEyOXExMjkgMCAyMjYgLTk4LjV0OTcgLTIyOS41
cTAgLTQ2IC0xNy41IC05MXQtNjEgLTk5dC03NyAtODkuNXQtMTA0LjUgLTEwNS41cS0xOTcgLTE5
MSAtMjkzIC0zMjJsLTE3IC0yM2wtMTYgMjNxLTQzIDU4IC0xMDAgMTIyLjV0LTkyIDk5LjV0LTEw
MSAxMDBxLTcxIDcwIC0xMDQuNSAxMDUuNXQtNzcgODkuNXQtNjEgOTkgdC0xNy41IDkxek0yNTAg
Nzg0cTAgLTI3IDMwLjUgLTcwdDYxLjUgLTc1LjV0OTUgLTk0LjVsMjIgLTIycTkzIC05MCAxOTAg
LTIwMXE4MiA5MiAxOTUgMjAzbDEyIDEycTY0IDYyIDk3LjUgOTd0NjQuNSA3OXQzMSA3MnEwIDcx
IC00OCAxMTkuNXQtMTA1IDQ4LjVxLTc0IDAgLTEzMiAtODNsLTExOCAtMTcxbC0xMTQgMTc0cS01
MSA4MCAtMTIzIDgwcS02MCAwIC0xMDkuNSAtNDkuNXQtNDkuNSAtMTE4LjV6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUxNDQ7IiBkPSJNNTcgMzUzcTAgLTk1IDY2IC0xNTlsMTQxIC0xNDJxNjgg
LTY2IDE1OSAtNjZxOTMgMCAxNTkgNjZsMjgzIDI4M3E2NiA2NiA2NiAxNTl0LTY2IDE1OWwtMTQx
IDE0MXEtOCA5IC0xOSAxN2wtMTA1IC0xMDVsMjEyIC0yMTJsLTM4OSAtMzg5bC0yNDcgMjQ4bDk1
IDk1bC0xOCAxOHEtNDYgNDUgLTc1IDEwMWwtNTUgLTU1cS02NiAtNjYgLTY2IC0xNTl6TTI2OSA3
MDZxMCAtOTMgNjYgLTE1OWwxNDEgLTE0MXE3IC03IDE5IC0xN2wxMDUgMTA1IGwtMjEyIDIxMmwz
ODkgMzg5bDI0NyAtMjQ3bC05NSAtOTZsMTggLTE3cTQ3IC00OSA3NyAtMTAwbDI5IDI5cTM1IDM1
IDYyLjUgODh0MjcuNSA5NnEwIDkzIC02NiAxNTlsLTE0MSAxNDFxLTY2IDY2IC0xNTkgNjZxLTk1
IDAgLTE1OSAtNjZsLTI4MyAtMjgzcS02NiAtNjQgLTY2IC0xNTl6IiAvPgorPGdseXBoIHVuaWNv
ZGU9IiYjeGUxNDU7IiBkPSJNMjAwIDEwMHY5NTNxMCAyMSAzMCA0NnQ4MSA0OHQxMjkgMzh0MTYz
IDE1dDE2MiAtMTV0MTI3IC0zOHQ3OSAtNDh0MjkgLTQ2di05NTNxMCAtNDEgLTI5LjUgLTcwLjV0
LTcwLjUgLTI5LjVoLTYwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV6TTMwMCAzMDBoNjAw
djcwMGgtNjAwdi03MDB6TTQ5NiAxNTBxMCAtNDMgMzAuNSAtNzMuNXQ3My41IC0zMC41dDczLjUg
MzAuNXQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41IHQtNzMuNSAtMzAuNXQtMzAuNSAt
NzMuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE0NjsiIGQ9Ik0wIDBsMzAzIDM4MGwyMDcg
MjA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE1IDM1cTE0IDE1
IDM1IDE1dDM1IC0xNWwyODMgLTI4MnExNSAtMTUgMTUgLTM2dC0xNSAtMzVxLTE0IC0xNSAtMzUg
LTE1dC0zNSAxNWwtMzYgMzVsLTI3OSAtMjY3di0zMDBsLTIxMiAyMTBsLTIwOCAtMjA3eiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMTQ4OyIgZD0iTTI5NSA0MzNoMTM5cTUgLTc3IDQ4LjUgLTEy
Ni41dDExNy41IC02NC41djMzNXEtNiAxIC0xNS41IDR0LTExLjUgM3EtNDYgMTQgLTc5IDI2LjV0
LTcyIDM2dC02Mi41IDUydC00MCA3Mi41dC0xNi41IDk5cTAgOTIgNDQgMTU5LjV0MTA5IDEwMXQx
NDQgNDAuNXY3OGgxMDB2LTc5cTM4IC00IDcyLjUgLTEzLjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1
MS41IC04NHQyNC41IC0xMTguNWgtMTU5cS04IDcyIC0zNSAxMDkuNXQtMTAxIDUwLjUgdi0zMDds
NjQgLTE0cTM0IC03IDY0IC0xNi41dDcwIC0zMS41dDY3LjUgLTUydDQ3LjUgLTgwLjV0MjAgLTEx
Mi41cTAgLTEzOSAtODkgLTIyNHQtMjQ0IC05NnYtNzdoLTEwMHY3OHEtMTUyIDE3IC0yMzcgMTA0
cS00MCA0MCAtNTIuNSA5My41dC0xNS41IDEzOS41ek00NjYgODg5cTAgLTI5IDggLTUxdDE2LjUg
LTM0dDI5LjUgLTIyLjV0MzEgLTEzLjV0MzggLTEwcTcgLTIgMTEgLTN2Mjc0cS02MSAtOCAtOTcu
NSAtMzcuNXQtMzYuNSAtMTAyLjUgek03MDAgMjM3cTE3MCAxOCAxNzAgMTUxcTAgNjQgLTQ0IDk5
LjV0LTEyNiA2MC41di0zMTF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNDk7IiBkPSJNMTAw
IDYwMHYxMDBoMTY2cS0yNCA0OSAtNDQgMTA0cS0xMCAyNiAtMTQuNSA1NS41dC0zIDcyLjV0MjUg
OTB0NjguNSA4N3E5NyA4OCAyNjMgODhxMTI5IDAgMjMwIC04OXQxMDEgLTIwOGgtMTUzcTAgNTIg
LTM0IDg5LjV0LTc0IDUxLjV0LTc2IDE0cS0zNyAwIC03OSAtMTQuNXQtNjIgLTM1LjVxLTQxIC00
NCAtNDEgLTEwMXEwIC0yOCAxNi41IC02OS41dDI4IC02Mi41dDQxLjUgLTcyaDI0MXYtMTAwaC0x
OTdxOCAtNTAgLTIuNSAtMTE1IHQtMzEuNSAtOTRxLTQxIC01OSAtOTkgLTExM3EzNSAxMSA4NCAx
OHQ3MCA3cTMzIDEgMTAzIC0xNnQxMDMgLTE3cTc2IDAgMTM2IDMwbDUwIC0xNDdxLTQxIC0yNSAt
ODAuNSAtMzYuNXQtNTkgLTEzdC02MS41IC0xLjVxLTIzIDAgLTEyOCAzM3QtMTU1IDI5cS0zOSAt
NCAtODIgLTE3dC02NiAtMjVsLTI0IC0xMWwtNTUgMTQ1bDE2LjUgMTF0MTUuNSAxMHQxMy41IDku
NXQxNC41IDEydDE0LjUgMTR0MTcuNSAxOC41cTQ4IDU1IDU0IDEyNi41IHQtMzAgMTQyLjVoLTIy
MXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MDsiIGQ9Ik0yIDMwMGwyOTggLTMwMGwyOTgg
MzAwaC0xOTh2OTAwaC0yMDB2LTkwMGgtMTk4ek02MDIgOTAwbDI5OCAzMDBsMjk4IC0zMDBoLTE5
OHYtOTAwaC0yMDB2OTAwaC0xOTh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNTE7IiBkPSJN
MiAzMDBoMTk4djkwMGgyMDB2LTkwMGgxOThsLTI5OCAtMzAwek03MDAgMHYyMDBoMTAwdi0xMDBo
MjAwdi0xMDBoLTMwMHpNNzAwIDQwMHYxMDBoMzAwdi0yMDBoLTk5di0xMDBoLTEwMHYxMDBoOTl2
MTAwaC0yMDB6TTcwMCA3MDB2NTAwaDMwMHYtNTAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwek04
MDEgOTAwaDEwMHYyMDBoLTEwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTUyOyIg
ZD0iTTIgMzAwaDE5OHY5MDBoMjAwdi05MDBoMTk4bC0yOTggLTMwMHpNNzAwIDB2NTAwaDMwMHYt
NTAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwek03MDAgNzAwdjIwMGgxMDB2LTEwMGgyMDB2LTEw
MGgtMzAwek03MDAgMTEwMHYxMDBoMzAwdi0yMDBoLTk5di0xMDBoLTEwMHYxMDBoOTl2MTAwaC0y
MDB6TTgwMSAyMDBoMTAwdjIwMGgtMTAwdi0yMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUx
NTM7IiBkPSJNMiAzMDBsMjk4IC0zMDBsMjk4IDMwMGgtMTk4djkwMGgtMjAwdi05MDBoLTE5OHpN
ODAwIDEwMHY0MDBoMzAwdi01MDBoLTEwMHYxMDBoLTIwMHpNODAwIDExMDB2MTAwaDIwMHYtNTAw
aC0xMDB2NDAwaC0xMDB6TTkwMSAyMDBoMTAwdjIwMGgtMTAwdi0yMDB6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUxNTQ7IiBkPSJNMiAzMDBsMjk4IC0zMDBsMjk4IDMwMGgtMTk4djkwMGgtMjAw
di05MDBoLTE5OHpNODAwIDQwMHYxMDBoMjAwdi01MDBoLTEwMHY0MDBoLTEwMHpNODAwIDgwMHY0
MDBoMzAwdi01MDBoLTEwMHYxMDBoLTIwMHpNOTAxIDkwMGgxMDB2MjAwaC0xMDB2LTIwMHoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1NTsiIGQ9Ik0yIDMwMGwyOTggLTMwMGwyOTggMzAwaC0x
OTh2OTAwaC0yMDB2LTkwMGgtMTk4ek03MDAgMTAwdjIwMGg1MDB2LTIwMGgtNTAwek03MDAgNDAw
djIwMGg0MDB2LTIwMGgtNDAwek03MDAgNzAwdjIwMGgzMDB2LTIwMGgtMzAwek03MDAgMTAwMHYy
MDBoMjAwdi0yMDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1NjsiIGQ9Ik0yIDMw
MGwyOTggLTMwMGwyOTggMzAwaC0xOTh2OTAwaC0yMDB2LTkwMGgtMTk4ek03MDAgMTAwdjIwMGgy
MDB2LTIwMGgtMjAwek03MDAgNDAwdjIwMGgzMDB2LTIwMGgtMzAwek03MDAgNzAwdjIwMGg0MDB2
LTIwMGgtNDAwek03MDAgMTAwMHYyMDBoNTAwdi0yMDBoLTUwMHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTE1NzsiIGQ9Ik0wIDQwMHYzMDBxMCAxNjUgMTE3LjUgMjgyLjV0MjgyLjUgMTE3LjVo
MzAwcTE2MiAwIDI4MSAtMTE4LjV0MTE5IC0yODEuNXYtMzAwcTAgLTE2NSAtMTE4LjUgLTI4Mi41
dC0yODEuNSAtMTE3LjVoLTMwMHEtMTY1IDAgLTI4Mi41IDExNy41dC0xMTcuNSAyODIuNXpNMjAw
IDMwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUg
NzAuNXY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjUgaC01MDBxLTQxIDAgLTcwLjUgLTI5
LjV0LTI5LjUgLTcwLjV2LTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1ODsiIGQ9Ik0w
IDQwMHYzMDBxMCAxNjMgMTE5IDI4MS41dDI4MSAxMTguNWgzMDBxMTY1IDAgMjgyLjUgLTExNy41
dDExNy41IC0yODIuNXYtMzAwcTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAtMTE3LjVoLTMw
MHEtMTYzIDAgLTI4MS41IDExNy41dC0xMTguNSAyODIuNXpNMjAwIDMwMHEwIC00MSAyOS41IC03
MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY1MDBxMCA0MSAtMjku
NSA3MC41dC03MC41IDI5LjUgaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUw
MHpNNDAwIDMwMGwzMzMgMjUwbC0zMzMgMjUwdi01MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUxNTk7IiBkPSJNMCA0MDB2MzAwcTAgMTYzIDExNy41IDI4MS41dDI4Mi41IDExOC41aDMwMHEx
NjMgMCAyODEuNSAtMTE5dDExOC41IC0yODF2LTMwMHEwIC0xNjUgLTExNy41IC0yODIuNXQtMjgy
LjUgLTExNy41aC0zMDBxLTE2NSAwIC0yODIuNSAxMTcuNXQtMTE3LjUgMjgyLjV6TTIwMCAzMDBx
MCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2
NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41IGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0y
OS41IC03MC41di01MDB6TTMwMCA3MDBsMjUwIC0zMzNsMjUwIDMzM2gtNTAweiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQyODIu
NSAxMTcuNWgzMDBxMTY1IDAgMjgyLjUgLTExNy41dDExNy41IC0yODIuNXYtMzAwcTAgLTE2MiAt
MTE4LjUgLTI4MXQtMjgxLjUgLTExOWgtMzAwcS0xNjUgMCAtMjgyLjUgMTE4LjV0LTExNy41IDI4
MS41ek0yMDAgMzAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5
LjV0MjkuNSA3MC41djUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNSBoLTUwMHEtNDEgMCAt
NzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwek0zMDAgNDAwaDUwMGwtMjUwIDMzM3oiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik0wIDQwMHYzMDBoMzAwdjIwMGw0MDAgLTM1MGwt
NDAwIC0zNTB2MjAwaC0zMDB6TTUwMCAwdjIwMGg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41
djUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtNTAwdjIwMGg0MDBxMTY1IDAgMjgyLjUg
LTExNy41dDExNy41IC0yODIuNXYtMzAwcTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAtMTE3
LjVoLTQwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MjsiIGQ9Ik0yMTcgNTE5cTggLTE5
IDMxIC0xOWgzMDJxLTE1NSAtNDM4IC0xNjAgLTQ1OHEtNSAtMjEgNCAtMzJsOSAtOGg5cTE0IDAg
MjYgMTVxMTEgMTMgMjc0LjUgMzIxLjV0MjY0LjUgMzA4LjVxMTQgMTkgNSAzNnEtOCAxNyAtMzEg
MTdsLTMwMSAtMXExIDQgNzggMjE5LjV0NzkgMjI3LjVxMiAxNSAtNSAyN2wtOSA5aC05cS0xNSAw
IC0yNSAtMTZxLTQgLTYgLTk4IC0xMTEuNXQtMjI4LjUgLTI1N3QtMjA5LjUgLTIzNy41cS0xNiAt
MTkgLTYgLTQxIHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MzsiIGQ9Ik0wIDQwMHEwIC0x
NjUgMTE3LjUgLTI4Mi41dDI4Mi41IC0xMTcuNWgzMDBxNDcgMCAxMDAgMTV2MTg1aC01MDBxLTQx
IDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoNTAw
djE4NXEtMTQgNCAtMTE0IDcuNXQtMTkzIDUuNWwtOTMgMnEtMTY1IDAgLTI4Mi41IC0xMTcuNXQt
MTE3LjUgLTI4Mi41di0zMDB6TTYwMCA0MDB2MzAwaDMwMHYyMDBsNDAwIC0zNTBsLTQwMCAtMzUw
djIwMGgtMzAweiAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NDsiIGQ9Ik0wIDQwMHEwIC0x
NjUgMTE3LjUgLTI4Mi41dDI4Mi41IC0xMTcuNWgzMDBxMTYzIDAgMjgxLjUgMTE3LjV0MTE4LjUg
MjgyLjV2OThsLTc4IDczbC0xMjIgLTEyM3YtMTQ4cTAgLTQxIC0yOS41IC03MC41dC03MC41IC0y
OS41aC01MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3
MC41IDI5LjVoMTU2bDExOCAxMjJsLTc0IDc4aC0xMDBxLTE2NSAwIC0yODIuNSAtMTE3LjV0LTEx
Ny41IC0yODIuNSB2LTMwMHpNNDk2IDcwOWwzNTMgMzQybC0xNDkgMTQ5aDUwMHYtNTAwbC0xNDkg
MTQ5bC0zNDIgLTM1M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NTsiIGQ9Ik00IDYwMHEw
IDE2MiA4MCAyOTl0MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAtMjk5dC04MCAt
Mjk5dC0yMTcgLTIxN3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6TTE4NiA2MDBx
MCAtMTcxIDEyMS41IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIxLjUgMjkyLjV0
LTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAtMjkyLjV6TTQw
NiA2MDAgcTAgODAgNTcgMTM3dDEzNyA1N3QxMzcgLTU3dDU3IC0xMzd0LTU3IC0xMzd0LTEzNyAt
NTd0LTEzNyA1N3QtNTcgMTM3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTY2OyIgZD0iTTAg
MHYyNzVxMCAxMSA3IDE4dDE4IDdoMTA0OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0xMTAw
ek0xMDAgODAwbDQ0NSAtNTAwbDQ1MCA1MDBoLTI5NXY0MDBoLTMwMHYtNDAwaC0zMDB6TTkwMCAx
NTBoMTAwdjUwaC0xMDB2LTUweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTY3OyIgZD0iTTAg
MHYyNzVxMCAxMSA3IDE4dDE4IDdoMTA0OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0xMTAw
ek0xMDAgNzAwaDMwMHYtMzAwaDMwMHYzMDBoMjk1bC00NDUgNTAwek05MDAgMTUwaDEwMHY1MGgt
MTAwdi01MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2ODsiIGQ9Ik0wIDB2Mjc1cTAgMTEg
NyAxOHQxOCA3aDEwNDhxMTEgMCAxOSAtNy41dDggLTE3LjV2LTI3NWgtMTEwMHpNMTAwIDcwNWwz
MDUgLTMwNWw1OTYgNTk2bC0xNTQgMTU1bC00NDIgLTQ0MmwtMTUwIDE1MXpNOTAwIDE1MGgxMDB2
NTBoLTEwMHYtNTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNjk7IiBkPSJNMCAwdjI3NXEw
IDExIDcgMTh0MTggN2gxMDQ4cTExIDAgMTkgLTcuNXQ4IC0xNy41di0yNzVoLTExMDB6TTEwMCA5
ODhsOTcgLTk4bDIxMiAyMTNsLTk3IDk3ek0yMDAgNDAwbDY5NyAxbDMgNjk5bC0yNTAgLTIzOWwt
MTQ5IDE0OWwtMjEyIC0yMTJsMTQ5IC0xNDl6TTkwMCAxNTBoMTAwdjUwaC0xMDB2LTUweiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMTcwOyIgZD0iTTAgMHYyNzVxMCAxMSA3IDE4dDE4IDdoMTA0
OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0xMTAwek0yMDAgNjEybDIxMiAtMjEybDk4IDk3
bC0yMTMgMjEyek0zMDAgMTIwMGwyMzkgLTI1MGwtMTQ5IC0xNDlsMjEyIC0yMTJsMTQ5IDE0OGwy
NDkgLTIzN2wtMSA2OTd6TTkwMCAxNTBoMTAwdjUwaC0xMDB2LTUweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMTcxOyIgZD0iTTIzIDQxNWwxMTc3IDc4NHYtMTA3OWwtNDc1IDI3MmwtMzEwIC0z
OTN2NDE2aC0zOTJ6TTQ5NCAyMTBsNjcyIDkzOGwtNjcyIC03MTJ2LTIyNnoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTE3MjsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1
MHYtMzAwaDUwMHYzMDBoMTAwbDIwMCAtMjAwdi04NTBxMCAtMjEgLTE1IC0zNS41dC0zNSAtMTQu
NWgtMTUwdjQwMGgtNzAwdi00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTYw
MCAxMDAwaDEwMHYyMDBoLTEwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTczOyIg
ZD0iTTAgMTUwdjEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDBs
MjAwIC0yMDB2LTIxOGwtMjc2IC0yNzVsLTEyMCAxMjBsLTEyNiAtMTI3aC0zNzh2LTQwMGgtMTUw
cS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNNTgxIDMwNmwxMjMgMTIzbDEyMCAtMTIwbDM1
MyAzNTJsMTIzIC0xMjNsLTQ3NSAtNDc2ek02MDAgMTAwMGgxMDB2MjAwaC0xMDB2LTIwMHoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NDsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQz
NS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwbDIwMCAtMjAwdi0yNjlsLTEwMyAtMTAzbC0xNzAg
MTcwbC0yOTggLTI5OGgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6
TTYwMCAxMDAwaDEwMHYyMDBoLTEwMHYtMjAwek03MDAgMTMzbDE3MCAxNzBsLTE3MCAxNzBsMTI3
IDEyN2wxNzAgLTE3MGwxNzAgMTcwbDEyNyAtMTI4bC0xNzAgLTE2OWwxNzAgLTE3MCBsLTEyNyAt
MTI3bC0xNzAgMTcwbC0xNzAgLTE3MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9
Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwbDIw
MCAtMjAwdi0zMDBoLTQwMHYtMjAwaC01MDB2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0
LjUgMzUuNXpNNjAwIDMwMGwzMDAgLTMwMGwzMDAgMzAwaC0yMDB2MzAwaC0yMDB2LTMwMGgtMjAw
ek02MDAgMTAwMHYyMDBoMTAwdi0yMDBoLTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE3
NjsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBo
MTAwbDIwMCAtMjAwdi00MDJsLTIwMCAyMDBsLTI5OCAtMjk4aC00MDJ2LTQwMGgtMTUwcS0yMSAw
IC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNNjAwIDMwMGgyMDB2LTMwMGgyMDB2MzAwaDIwMGwtMzAw
IDMwMHpNNjAwIDEwMDB2MjAwaDEwMHYtMjAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUxNzc7IiBkPSJNMCAyNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41aDExMDBxMjEgMCAz
NS41IDE0LjV0MTQuNSAzNS41djU1MGgtMTIwMHYtNTUwek0wIDkwMGgxMjAwdjE1MHEwIDIxIC0x
NC41IDM1LjV0LTM1LjUgMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYt
MTUwek0xMDAgMzAwdjIwMGg0MDB2LTIwMGgtNDAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MTc4OyIgZD0iTTAgNDAwbDMwMCAyOTh2LTE5OGg0MDB2LTIwMGgtNDAwdi0xOTh6TTEwMCA4MDB2
MjAwaDEwMHYtMjAwaC0xMDB6TTMwMCA4MDB2MjAwaDEwMHYtMjAwaC0xMDB6TTUwMCA4MDB2MjAw
aDQwMHYxOThsMzAwIC0yOThsLTMwMCAtMjk4djE5OGgtNDAwek04MDAgMzAwdjIwMGgxMDB2LTIw
MGgtMTAwek0xMDAwIDMwMGgxMDB2MjAwaC0xMDB2LTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTE3OTsiIGQ9Ik0xMDAgNzAwdjQwMGw1MCAxMDBsNTAgLTEwMHYtMzAwaDEwMHYzMDBsNTAg
MTAwbDUwIC0xMDB2LTMwMGgxMDB2MzAwbDUwIDEwMGw1MCAtMTAwdi00MDBsLTEwMCAtMjAzdi00
NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0x
NC41IDM1LjV2NDQ3ek04MDAgNTk3cTAgLTI5IDEwLjUgLTU1LjV0MjUgLTQzdDI5IC0yOC41dDI1
LjUgLTE4bDEwIC01di0zOTdxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWgyMDBxMjEgMCAz
NS41IDE0LjV0MTQuNSAzNS41djExMDZxMCAzMSAtMTggNDAuNXQtNDQgLTcuNWwtMjc2IC0xMTZx
LTI1IC0xNyAtNDMuNSAtNTEuNXQtMTguNSAtNjUuNXYtMzU5eiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMTgwOyIgZD0iTTEwMCAwaDQwMHY1NnEtNzUgMCAtODcuNSA2dC0xMi41IDQ0djM5NGg1
MDB2LTM5NHEwIC0zOCAtMTIuNSAtNDR0LTg3LjUgLTZ2LTU2aDQwMHY1NnEtNCAwIC0xMSAwLjV0
LTI0IDN0LTMwIDd0LTI0IDE1dC0xMSAyNC41djg4OHEwIDIyIDI1IDM0LjV0NTAgMTMuNWwyNSAy
djU2aC00MDB2LTU2cTc1IDAgODcuNSAtNnQxMi41IC00NHYtMzk0aC01MDB2Mzk0cTAgMzggMTIu
NSA0NHQ4Ny41IDZ2NTZoLTQwMHYtNTZxNCAwIDExIC0wLjUgdDI0IC0zdDMwIC03dDI0IC0xNXQx
MSAtMjQuNXYtODg4cTAgLTIyIC0yNSAtMzQuNXQtNTAgLTEzLjVsLTI1IC0ydi01NnoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTE4MTsiIGQ9Ik0wIDMwMHEwIC00MSAyOS41IC03MC41dDcwLjUg
LTI5LjVoMzAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY1MDBxMCA0MSAtMjkuNSA3MC41dC03
MC41IDI5LjVoLTMwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwek0xMDAgMTAw
aDQwMGwyMDAgMjAwaDEwNWwyOTUgOTh2LTI5OGgtNDI1bC0xMDAgLTEwMGgtMzc1ek0xMDAgMzAw
djIwMGgzMDB2LTIwMGgtMzAwek0xMDAgNjAwdjIwMGgzMDB2LTIwMGgtMzAweiBNMTAwIDEwMDBo
NDAwbDIwMCAtMjAwdi05OGwyOTUgOThoMTA1djIwMGgtNDI1bC0xMDAgMTAwaC0zNzV6TTcwMCA0
MDJ2MTYzbDQwMCAxMzN2LTE2M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MjsiIGQ9Ik0x
Ni41IDk3NC41cTAuNSAtMjEuNSAxNiAtOTB0NDYuNSAtMTQwdDEwNCAtMTc3LjV0MTc1IC0yMDhx
MTAzIC0xMDMgMjA3LjUgLTE3NnQxODAgLTEwMy41dDEzNyAtNDd0OTIuNSAtMTYuNWwzMSAxbDE2
MyAxNjJxMTcgMTggMTMuNSA0MXQtMjIuNSAzN2wtMTkyIDEzNnEtMTkgMTQgLTQ1IDEydC00MiAt
MTlsLTExOCAtMTE4cS0xNDIgMTAxIC0yNjggMjI3dC0yMjcgMjY4bDExOCAxMThxMTcgMTcgMjAg
NDEuNXQtMTEgNDQuNSBsLTEzOSAxOTRxLTE0IDE5IC0zNi41IDIydC00MC41IC0xNGwtMTYyIC0x
NjJxLTEgLTExIC0wLjUgLTMyLjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxODM7IiBkPSJN
MCA1MHYyMTJxMCAyMCAxMC41IDQ1LjV0MjQuNSAzOS41bDM2NSAzMDN2NTBxMCA0IDEgMTAuNXQx
MiAyMi41dDMwIDI4LjV0NjAgMjN0OTcgMTAuNXQ5NyAtMTB0NjAgLTIzLjV0MzAgLTI3LjV0MTIg
LTI0bDEgLTEwdi01MGwzNjUgLTMwM3ExNCAtMTQgMjQuNSAtMzkuNXQxMC41IC00NS41di0yMTJx
MCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTExMDBxLTIwIDAgLTM1IDE0LjV0LTE1IDM1
LjV6TTAgNzEyIHEwIC0yMSAxNC41IC0zMy41dDM0LjUgLTguNWwyMDIgMzNxMjAgNCAzNC41IDIx
dDE0LjUgMzh2MTQ2cTE0MSAyNCAzMDAgMjR0MzAwIC0yNHYtMTQ2cTAgLTIxIDE0LjUgLTM4dDM0
LjUgLTIxbDIwMiAtMzNxMjAgLTQgMzQuNSA4LjV0MTQuNSAzMy41djIwMHEtNiA4IC0xOSAyMC41
dC02MyA0NXQtMTEyIDU3dC0xNzEgNDV0LTIzNSAyMC41cS05MiAwIC0xNzUgLTEwLjV0LTE0MS41
IC0yN3QtMTA4LjUgLTM2LjV0LTgxLjUgLTQwIHQtNTMuNSAtMzYuNXQtMzEgLTI3LjVsLTkgLTEw
di0yMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTAwIDB2MTAwaDExMDB2
LTEwMGgtMTEwMHpNMTc1IDIwMGg5NTBsLTEyNSAxNTB2MjUwbDEwMCAxMDB2NDAwaC0xMDB2LTIw
MGgtMTAwdjIwMGgtMjAwdi0yMDBoLTEwMHYyMDBoLTIwMHYtMjAwaC0xMDB2MjAwaC0xMDB2LTQw
MGwxMDAgLTEwMHYtMjUweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg1OyIgZD0iTTEwMCAw
aDMwMHY0MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTEwMHEtNDEgMCAtNzAuNSAtMjku
NXQtMjkuNSAtNzAuNXYtNDAwek01MDAgMHYxMDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgx
MDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMDBoLTMwMHpNOTAwIDB2NzAwcTAgNDEg
MjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTcwMGgt
MzAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg2OyIgZD0iTS0xMDAgMzAwdjUwMHEwIDEy
NCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4
IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkwMHY3
MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHYzMDBoLTIwMHYxMDBoMjAwdjEwMGgtMzAwdi0zMDBo
MjAwdi0xMDBoLTIwMHYtMTAwek02MDAgMzAwaDIwMHYxMDBoMTAwdjMwMGgtMTAwdjEwMGgtMjAw
di01MDAgek03MDAgNDAwdjMwMGgxMDB2LTMwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMTg3OyIgZD0iTS0xMDAgMzAwdjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAy
MTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAg
LTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkwMHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDEwMHYy
MDBoMTAwdi0yMDBoMTAwdjUwMGgtMTAwdi0yMDBoLTEwMHYyMDBoLTEwMHYtNTAwek02MDAgMzAw
aDIwMHYxMDBoMTAwdjMwMGgtMTAwdjEwMGgtMjAwdi01MDAgek03MDAgNDAwdjMwMGgxMDB2LTMw
MGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTS0xMDAgMzAwdjUwMHEw
IDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQg
LTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkw
MHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHYxMDBoLTIwMHYzMDBoMjAwdjEwMGgtMzAwdi01
MDB6TTYwMCAzMDBoMzAwdjEwMGgtMjAwdjMwMGgyMDB2MTAwaC0zMDB2LTUwMHoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0tMTAwIDMwMHY1MDBxMCAxMjQgODggMjEydDIxMiA4
OGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4
aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnpNMTAwIDIwMGg5MDB2NzAwaC05MDB2LTcwMHpN
MjAwIDU1MGwzMDAgLTE1MHYzMDB6TTYwMCA0MDBsMzAwIDE1MGwtMzAwIDE1MHYtMzAweiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTS0xMDAgMzAwdjUwMHEwIDEyNCA4OCAyMTJ0
MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIx
MiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkwMHY3MDBoLTkwMHYt
NzAwek0yMDAgMzAwdjUwMGg3MDB2LTUwMGgtNzAwek0zMDAgNDAwaDEzMHE0MSAwIDY4IDQydDI3
IDEwN3QtMjguNSAxMDh0LTY2LjUgNDNoLTEzMHYtMzAwek01NzUgNTQ5IHEwIC02NSAyNyAtMTA3
dDY4IC00MmgxMzB2MzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUxOTE7IiBkPSJNLTEwMCAzMDB2NTAwcTAgMTI0IDg4IDIxMnQyMTIg
ODhoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04
OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ6TTEwMCAyMDBoOTAwdjcwMGgtOTAwdi03MDB6
TTIwMCAzMDBoMzAwdjMwMGgtMjAwdjEwMGgyMDB2MTAwaC0zMDB2LTMwMGgyMDB2LTEwMGgtMjAw
di0xMDB6TTYwMSAzMDBoMTAwdjEwMGgtMTAwdi0xMDB6TTcwMCA3MDBoMTAwIHYtNDAwaDEwMHY1
MDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTkyOyIgZD0iTS0xMDAgMzAw
djUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEw
IC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAg
MjAwaDkwMHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHY0MDBoLTIwMHYxMDBoLTEwMHYtNTAw
ek0zMDEgNDAwdjIwMGgxMDB2LTIwMGgtMTAwek02MDEgMzAwaDEwMHYxMDBoLTEwMHYtMTAwek03
MDAgNzAwaDEwMCB2LTQwMGgxMDB2NTAwaC0yMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTE5MzsiIGQ9Ik0tMTAwIDMwMHY1MDBxMCAxMjQgODggMjEydDIxMiA4OGg3MDBxMTI0IDAg
MjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAw
IC0yMTIgODh0LTg4IDIxMnpNMTAwIDIwMGg5MDB2NzAwaC05MDB2LTcwMHpNMjAwIDcwMHYxMDBo
MzAwdi0zMDBoLTk5di0xMDBoLTEwMHYxMDBoOTl2MjAwaC0yMDB6TTIwMSAzMDB2MTAwaDEwMHYt
MTAwaC0xMDB6TTYwMSAzMDB2MTAwaDEwMHYtMTAwaC0xMDB6IE03MDAgNzAwdjEwMGgyMDB2LTUw
MGgtMTAwdjQwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTk0OyIgZD0iTTQgNjAw
cTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgwdDIxNyAtMjE3dDgwIC0yOTl0LTgw
IC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIxNyAyMTd0LTgwIDI5OXpNMTg2IDYw
MHEwIC0xNzEgMTIxLjUgLTI5Mi41dDI5Mi41IC0xMjEuNXQyOTIuNSAxMjEuNXQxMjEuNSAyOTIu
NXQtMTIxLjUgMjkyLjV0LTI5Mi41IDEyMS41dC0yOTIuNSAtMTIxLjV0LTEyMS41IC0yOTIuNXpN
NDAwIDUwMHYyMDAgbDEwMCAxMDBoMzAwdi0xMDBoLTMwMHYtMjAwaDMwMHYtMTAwaC0zMDB6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUxOTU7IiBkPSJNMCA2MDBxMCAxNjIgODAgMjk5dDIxNyAy
MTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0ODAgLTI5OXQtODAgLTI5OXQtMjE3IC0yMTd0LTI5
OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAgMjk5ek0xODIgNjAwcTAgLTE3MSAxMjEuNSAtMjky
LjV0MjkyLjUgLTEyMS41dDI5Mi41IDEyMS41dDEyMS41IDI5Mi41dC0xMjEuNSAyOTIuNXQtMjky
LjUgMTIxLjV0LTI5Mi41IC0xMjEuNXQtMTIxLjUgLTI5Mi41ek00MDAgNDAwdjQwMGgzMDAgbDEw
MCAtMTAwdi0xMDBoLTEwMHYxMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgtMTAwek03
MDAgNDAwdjEwMGgxMDB2LTEwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTk3OyIg
ZD0iTS0xNCA0OTRxMCAtODAgNTYuNSAtMTM3dDEzNS41IC01N2gyMjJ2MzAwaDQwMHYtMzAwaDEy
OHExMjAgMCAyMDUgODYuNXQ4NSAyMDcuNXQtODUgMjA3dC0yMDUgODZxLTQ2IDAgLTkwIC0xNHEt
NDQgOTcgLTEzNC41IDE1Ni41dC0yMDAuNSA1OS41cS0xNTIgMCAtMjYwIC0xMDcuNXQtMTA4IC0y
NjAuNXEwIC0yNSAyIC0zN3EtNjYgLTE0IC0xMDguNSAtNjcuNXQtNDIuNSAtMTIyLjV6TTMwMCAy
MDBoMjAwdjMwMGgyMDB2LTMwMGgyMDAgbC0zMDAgLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTE5ODsiIGQ9Ik0tMTQgNDk0cTAgLTgwIDU2LjUgLTEzN3QxMzUuNSAtNTdoOGw0MTQgNDE0
bDQwMyAtNDAzcTk0IDI2IDE1NC41IDEwNC41dDYwLjUgMTc4LjVxMCAxMjAgLTg1IDIwNi41dC0y
MDUgODYuNXEtNDYgMCAtOTAgLTE0cS00NCA5NyAtMTM0LjUgMTU2LjV0LTIwMC41IDU5LjVxLTE1
MiAwIC0yNjAgLTEwNy41dC0xMDggLTI2MC41cTAgLTI1IDIgLTM3cS02NiAtMTQgLTEwOC41IC02
Ny41dC00Mi41IC0xMjIuNXpNMzAwIDIwMGwzMDAgMzAwIGwzMDAgLTMwMGgtMjAwdi0zMDBoLTIw
MHYzMDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE5OTsiIGQ9Ik0xMDAgMjAwaDQw
MHYtMTU1bC03NSAtNDVoMzUwbC03NSA0NXYxNTVoNDAwbC0yNzAgMzAwaDE3MGwtMjcwIDMwMGgx
NzBsLTMwMCAzMzNsLTMwMCAtMzMzaDE3MGwtMjcwIC0zMDBoMTcweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMjAwOyIgZD0iTTEyMSA3MDBxMCAtNTMgMjguNSAtOTd0NzUuNSAtNjVxLTQgLTE2
IC00IC0zOHEwIC03NCA1Mi41IC0xMjYuNXQxMjYuNSAtNTIuNXE1NiAwIDEwMCAzMHYtMzA2bC03
NSAtNDVoMzUwbC03NSA0NXYzMDZxNDYgLTMwIDEwMCAtMzBxNzQgMCAxMjYuNSA1Mi41dDUyLjUg
MTI2LjVxMCAyNCAtOSA1NXE1MCAzMiA3OS41IDgzdDI5LjUgMTEycTAgOTAgLTYxLjUgMTU1LjV0
LTE1MC41IDcxLjVxLTI2IDg5IC05OS41IDE0NS41IHQtMTY3LjUgNTYuNXEtMTE2IDAgLTE5Ny41
IC04MS41dC04MS41IC0xOTcuNXEwIC00IDEgLTExLjV0MSAtMTEuNXEtMTQgMiAtMjMgMnEtNzQg
MCAtMTI2LjUgLTUyLjV0LTUyLjUgLTEyNi41eiIgLz4KKzwvZm9udD4KKzwvZGVmcz48L3N2Zz4g
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29u
cy1oYWxmbGluZ3MtcmVndWxhci50dGYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1
bGFyLnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42N2ZhMDBiZjgzODAxZDJmYTU2ODU0NmI5ODJjODBkMjdmNmVm
NzRlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MTI4MAp6Y21jJHsyYj4kI3dMZDwwWDRKS2tN
cz1Jb1k5KCNndUMlLUl4fiFMVkA1WGdhd0x6d3RWb0ZSaSY0Qjw7WXp6cXwKejFRSHcpekBkYTAq
QFBzSXlxQSFgNkdAYjZvV09lX2JfJFAjQClHYlhHMlpkLWQrdW5mWkFrdlYtezxwUlRoY1VYCno/
bWhTMWJJPHZuRzZFOT5MQlgzV2M7P1Bzd2Q5aTNGYUFYa1NVcnhgJnpuN0dGMDxse3pAfWg3d3Jw
aTRkKktzewp6WnBaISpfU2NfKCpAbiN2fDY9PEJfUDszejsjS0V3eGg1dHdOcTZHTStIbEBfIVI4
QXVUZSZ+OzFvcGRlZSZkQjMKenVIS0J9OXppZmFPeUA3V14hZmBUa3o1QDZVbG9NQXIoZCpqTHFS
LW1ORWR7QTQmaSs3TUwxeTMlNUZpfVJnTHx8CnppIVF0N3k2PTVZKkBedz5fYE1eU1VVQn0wP3Q5
aU82QDxAclFYNE1ZYU5UQjZXX3R3VGI4cTRMKnlTNTgraiF2Rgp6MmozTmhgPmxjP1pRWHB1KXpe
RyQ/JkI4PSFzcFFrPitQR2IrUEdQTHp0dH1ZVSZlVyU8SnlocVRgPV9RaVpgKU8KentXYXI3KURl
Qz48SSRoZT1URHUlX2wtfG0yUzRNJjk8PmFPITlFalMkNGxtV3hTZjAoK2E7STtTI3BYJCE/ODFy
CnpQeGUoSUR9cWBBUE0hUjNeYGY7KWcjbkBKY1leZlk8RGl3UFRHKXkhY31wdGFpMTlyTWQtU1J8
JmFxM2VNXzFKZwp6R0Z5KCU8QGdtN1FDcH1JVm5WQzFDdVdhalYmfSU1WnR5MExyQzhkUWJ7fj1z
KiQma2xZQ2hDPVh1K1glaHQ/bXUKel98V3gtP21xT3VWY1glRiFfOX5MNCRuUWo7UEFTYDdhelg8
QFpFPitLbTZlRGd5WUJZZCZWIWU7MWA3eGV2dXRBCno5cjdIQzlxSyRaYUEtTXhAd2BLdTU4Wmxi
Kkl7PHBiMnhVbV5ZRm1vYEc9UHVVVm5KPTthZDt5SXtYMHRNUnhxWgp6antwQW4+Jkd1UldjbHN5
ZjRsIzs3cmkwOVVpKjZSSFRQQHdTV1Q9dD04WlhIPTlteVk4YSkjSUFvXzBmS2NhYEQKeipGfj8y
VUsraDF4O31idGJYfDAxYlYrbnhedDkrZWd2UXxpYDV5eD5qUWxKVUAkPlc9fEEmKF82dm0lP3Mt
WWRaCno7USF9T1YoYlpqbTtyejEtI3RRO19gajtxclY3NEE+ZitAPz5jVERTUjNTMDVTfmEmMCV+
OzJlLUx4KXRLeE12Owp6PlVOZDIjYT5zUHQ/akRWd3JJdUJvVyMwI3lER0leVHBkI2ZtSmh8JWZw
elZ3Kyh1dUdDKm41QHtpZCRHdGA2ND8KejRjRVE5dH1ZUSpPfDMpZislNDwpaUZORG5kIzFMa3Yo
OUsmJjIzcih5OTstWi1GNFBrYipnfSR2OXhLOHtMc01ZCnpBIzBtZ2lTPWRMUmE7eF5DYzRRRkBj
U2BVTi1qdm1SNWBVITZfeVdlLT8pODRqNWVtISNwQ1Bodyk0RmUjdmF8IQp6Wm5WeCo9WldKY2o8
KG5AY3oydl92NWFiSUohPmN5bzBwaW87Z1otO3RaPCgzNkxlaF8tNUl4elpJOHt7SzZnVzYKemR1
KTR4LSE3cEZEfjhrb1QjNWVDWlBrSHx3MWUtc18/PjFQdGQ3VSlWaDZXXzRFV0xsdn42e3paRD0x
WmJHSWQ4CnoyUC0jRSNEKjVGdGMkQmAtT3pTKVhoQzlvQkRRX09fUVZFaTMzWjN3c1haUFYxfX15
fHAkXmM3Y1R4dz8oOFMhdAp6aEQrOXU/K0phPypNPzRQem12JGV1I25ocFFEZSk4cnFfS0pYWiZz
WmdhSX0lSUxIPSMoPDdXT0BPUWQrSENpNnEKenpHNWhHOSRLRm10aXVPTzQxKTNsRH41X2ZPcWd+
NFYzRVpiS0dmTHhZUiQlYS1jdE54cGlSWTUmO0BWcCNFXzd3CnprVC03M3drR1VjQippZXZFSkJD
SWd2fDchTUhiKTlZRyV7RlBjS1IkSFUmK2ghek1haHczd3gxKH5GRmI9YWpnVAp6JXFmV2BIbFYt
dG0lbTd7Vn4zZ2BrKHAyczNpNHVrdUBEaigxeSN0WFJYTFRGUlkjVm8pZnZAeVAmSCokWiZ8ZnUK
endIbnFjYmF3ZkE7Xn0teSR0bjRlQl80PX1FTkxhN1NrbjBkbGIreDRkPGljbT5CQSROTTx5TjZo
eHVqSEM7YWpJCnpJKXNIbihKbHpCYmFNOzh4aFkjQGcxdlIkMEYhTDNPbSR7ZGAkMUxBczx5SCFY
Tnh2Rm93OFlNdHdwPHlIdG05fgp6UmpjQnl0Nl8yVSlBK31CdXtPMyMtPmVAUCt0TjMpVUEpZ0dg
N2BwQGd9a3N1UF9yNGVzYSROeihvWiNZKm15aFEKenlkQlozWVJhaGZJbmBXTllxTSR+cWRMbVBm
UCpkIWMmS0dsR0hSWjt0ZjghaHF1SCQ1O0wrTXl0TG4rQjljOSY+CnopJXNZZyl7c31jcy07aERT
QmoyVXd5Jj5gc0Y9QG49TSh1e1pAeEV8NEZ5QXE/aFl+MDsxVnJ5T1dZajVUU1UlZgp6YF5CRHwq
PHd5S3Emcng7UGBKfGNkZzBGR3FFR0M5ZkFlKG5iR2dMfUJoYEpnWFpxTlUxXnN9VD9aJiZVdnV7
PXwKejVNSD1BX3gwJDhPOzQxc1o1KHY2QlpXKik7ZlhWTGVDTlZUQDxXfDl7PGJzdjNtdl9NaDFV
JFd4QCRZdl9CPyZiCnpDJSlBMilPRFFDTl5GPEJTYlBFZTw+a0J9bTY8QU1HP092JUFadG13e24l
Q19Da0B9b1FiNX42N3hzXzgmKVZiewp6PDxvP0s1RVdEQHFxQG8lR299VkpTX25VKCooQWxRSWg0
TT4mTXdJeCUqQ180LUtqKV9yR3E2SiVtSUpNI2F2ZXwKejZXX2I7JHRTUHRYbHJ9IV4zVlRUOTkr
JWJUWWw5dT8/M0lAYVA2LWl0Wn0rRjtafiR1Nmw0YFZEYE90bXY5MWR9CnpFUjwoUyNiIzMydGBk
Nmo7ZDBpZDl9dEpjQSZoPW9mZXp9TU9NTEloQE1HZWN4fDZqSEA1UyMoJDNIbSFmJjNsJAp6SkQ2
USYoaEA5NXVzNmRpLWBreUdzUm0wR1RrX2o4NHZINVhUeXlhSnM7VVJ3anFhKz16ZGhZSmE4Xn4/
XjxXazUKelUqVHN9UnQxfW82Tio/e1QyKUl+bGB4SSQ4UCQ0Rm1DOGxRTn1NQl56Xz9iNEhtem5i
dTdlWC1pOEJTJHNWQTw7CnpEbUN1ZEEmXm9YZXRyMSRMUDFRP0A0RXltPUY3OD85Nn5DPl44S3R3
TmgmRmVpLWp0Qy02QE83I1I1MkhtSypPewp6YnthWkF1eUVPMHVsS0hIYjYyfFQheWRafWA9N3FO
eGkreEFNTGclQjtzNWMzWU9tX2VIYGp6dCZyNFVAOW4kd0MKenBNN3xsUWU4dFVkKzdLKEAoPCgo
MSlvcVN0UF9lKkA+KjRJTWgldEt4KHNeNSljVENkNHl1OCY4dHs7OFApKFF2CnpWRTNBVTtAdX5T
OSZjbClQYzxwdmRfbldORmE+T1ZZRGlIJWVRS1J8OX1fR2xvYlQtTmRlRVZPLUA8fV5IIzBZKwp6
OFE1TCkxWV5DUFI0bH5tIUR7dE9TKTBYam5ibUxBNF92I21edk1eUV9qfSpkLSgmQzZJc0ZmJW8h
OUNJYVBsJlgKemd8I2dlRlYrOUA7YGVYYGhKP0BhQV5CTih3b242KFdOS3xqNiVHPGx5MkBJZSFQ
NEZSVnVYZThDSTxYMiQ8aVNnCnpya3J1QHdiIT9HLWd3PDdoSShnUmZCV0E0e3dIcH5ld080Sipz
YCkrVU5DI2tlN1N3KW1WdihPWkBzMHNkVWYlWgp6VGR4UExqKDx+X0MqT347dytsfE5STlI7SSNo
SzU+ZHtUWnNgfFcrPWVlQm96d3RNd2tePTxja1BMeUk/REUoUVYKeiQkYXt8PnxnTVN3bmBJekJN
NXozdCVDVUZWbl94UGcpJistWn1ObStfa31GXlAmJUpUVFRaO3N0UkYxKz8pTWpkCnpAOWlaXlBq
V31gbndgSjwlI0peUD05ajxaYml5MHY2U051Mzt+dikya2ViMXxkJFlrWF5QM1heN0dTJVFHdThp
OQp6WEN+Uk1kbClPK3BEUyV1KXZjeDZ7UlJFX0ope0wyLShTcXZCP25lMkE2QW4oJGJmezloUV4p
Mmo4S0lsRV4xWmYKenZRYH5+cHROTXZoTWEwR3RCcU9Ka3heNFEpbWNgWHZaXzB5dyZZWSNTIzhV
enpLcShEUX5oUE5HZlZ4Q1dPR0NnCnpyZ3Jtamwqe3w5UExJRGFsdlFPOWlLdTxIRGtWVT4pbiZD
Rj8qPjxmdnVkb291ZCU3RWxUTzd2U3t6cDxvNz1sKwp6UzFNfmdCJCU4STImVVMpekNQOGhYIVQo
ZFArZmV6PmBDPEdDY2I9LWZ8I1hvSHQ5SEJDI3hVc0ZPMj57K3pqdksKenVOT3YtVld9TnwzQ1U2
anIoO2AzRld7dSlaP3E9NkxCb3ROUXkzSkFBYWJrUG1JREVhV1p7ZkRvcypeO3lmTUooCnpmaSh4
flY+UkFBU2A1PD5MfkFhcVE/bEE9b05zIVI/cHtkVFVfaWxgI3Y0Kks3fiUyej58QFN7ITNCWUVJ
R31IKQp6X3B4bnBYI0Mjej9kO2VeVmV6dFlKSHlgQHc9PzA0ME9eVDh0ezA1LWVWSzVzYUR7TS1h
MVlqTVA2Y2lIckM8YXcKelFnO0UyNndZWGl3X0BMNClARU9Xe3F+R0ApQFFLYVNrX2tFbyZ8TXc1
cF5eVkZgVyZ9KkY+S2x0ckw9SlVeJXc/CnolRyYlUGB0KWUpYWN1TGcqdUo9fFUzWFZEdEtHe2ZN
e3s4c0dpRjA4WWUqP1FBSEJ+JD1LU1JFfEQpSDMxMEA9UQp6UUBwV1ZyIyFfXmVCQWwkPTxsK31Q
UFRkTXpmTnteK19mS2owWT8tXy1pK30janEjY2FrQXR0bDxLMkF2RlYzbTsKeldweUA8cyhLY1Vz
ayNheXhfLWlsaEU2ZX0rSj0qbG88RTRlPzhUc19GcXIxUjxrNitrcG4xViVBTGE+LSk8XkFzCnpK
aGpDYVh0OylGKUJETXskSjJhbFhoLVMlQGY0LUNFLVc8MkA1P08mczlAPHl2dmluIU1hbXUre187
PVElbGNWVAp6SD97IVpGeVJ2NjVfenNYUzgodl9ALWBOLUZeaTJ8IWZOJDU1M3BLUmRxOTdhenV9
e1E7eXpDNlooXjtRcGN8eHgKej1PPF9mUHp3P3tIQyRIWCo8eVd8KVNVVmhHQGZ1aFpIQS1KdVBn
ZFAoPlZQaDElVmFHcz4hayUlTkNPPHgtXi08Cnp3XkIqa094NUZDJHgkdCU4U152K0V1JHl+QSty
MF9xQHNISilFYTBWQXk0ZiV0c35AeCo1VD5YIXE3aFUzOHB8Ygp6b3ZUeGR7dStqX2VZRVomTDd3
TFZ4ai1WMj09biVKV054OFVEM21AJThgME8lTVROb2A/WV9ZRXM7RkBHMWxtPDcKejZCfGRGaWVg
bVhpKSZXVGshRHBOOUBvcHN5NDc9fVRoJktDUj1iazBqRDIqXk5LYXchUm4pODwqWHlyWmczIWFQ
CnpCV2wpKiU9MDJUIyZ0eUBCdEhvS3AkQEQ0OUR4aStKSiN0b3pBam5ITUpWWVFNR0s1TSkjQX5k
Nzs5Zy09PTlNKwp6QytzTFBuS1kqYmdBfVQrUG9VdnNBYSM1NTBjZiorc0RlRytzZFBgITNrXitk
PW4kRFBmdzcoJDZGQnNYQ29iSDIKemwlMDJVPnhFREo7Pj9GJGVkcERPJlNidnsyTVJRa0BGb3NE
JnpreGwmekcqI2p2bSNuRTlEPlcqTUklfDdGPm1rCnpuVWsoRW1McGdiMSVXez5YYF5+ZnIlOzVr
KFcrVVV4ZzFrSDhDNTw9VDBKXnBNSkY2RWxhMjFVJWJMUWFPJiU2RAp6Z0s8M2F1Szs3RHQlUlgz
Ril+UWw1IzMzYUh4dmF4bGNHPjcpWEJUJC1OSFFLYm0yVUspYSZKQ2J4fXNgMUAlXk4Kej5kaH4h
XkY3KVUremt1Yk8zLVAoS3NNQTJ1PkJIY3BGNUUyQlVXaGlZQmQ9Y21mQ1cjeWs+eXtxYl5lUk4l
OGE/CnpJQHt+alQyQ1d9X3hZbkBGdj17IVAoQnBJVy1kRVo/NDhMJXo0PiYkN24/b1o4OE1ZJWBC
ZDdIUEdLfEE7MTxucAp6bU5ye0w3QmU8WXEhYjRIPTd2PFFgMm8+WUVpR0BLZXV0Xk8lYW0kcnNM
UTB4OVUwVDdyZ1Njc3NAPzRLQ2UhRGMKekNuUE96b0JrPE5kI0JtQiFqeD9ALTcmM1d4bH5nbks0
NH1TLWR3eUh8SFhDaj05SWFzJkdlfmg5ajhtUklBdDxECnpBWGUyJXI/PGBjbCZQKFl6RmdtKUdV
ci1NcFBISUVVOC0+ektrdXJNUFJ+c0pscXU2O1BJY0F7LUYpLVZ4fD9yPwp6YGR8P1gkQilhWiRx
JjdNT2FzamVjTUhXaFg7Rj1eX0IqPz9TbUBLNFZvU0MrMlgmI1kzPkF9PDNSZkdCWEVOTXcKemc/
VjNsa1hEXldrQ3d5YDAxOWEkJjlzPG87dH5xRGdXQlpMQWRsMmVYc0k1cDN0UjEzd1kjaVZXc0JX
aWJXeWh0Cno3aj02YCZ4QkFVSyFBZk53NVdgKEVhUjNOQUprNG1LX2djMztZSTJ1ZWJUR293bG0r
Zlg0Y2pganJyX3VtKmN9WAp6OWo9ME9gP1RpYSswRTBTTF8pPzhwQmQ2ZFc/OCR0Jl4mRWdHcnBI
fnhMbjZCQysySU9LRH05ZFZSKkxxMHhhVlgKel9aeXB9YmBmXlpPYWJ7ZnV3JllVQjIrUXg+KT9D
bj1lQzJTdDZSQ0FPO299aCk9WEIyU0g+citqaUgoUjl9ezxwCnp4MG16LV5pTnpULWFmb19jclZF
amFmdFl4MW1JaGM2RH5tIThpWFFAQzRlYTRkZjFXWGE/IzkpVX1oXk1nM3AqdQp6VHFobCsydmI8
Vzx6V0JEY0RXcUt6VjJ7fEwjKFl2elMtZkBveF45TmR5PCM+UEJLOyZXY2d8Tlh7PlFSQFcze0sK
elk7YnAzXl5eSHA0RWdDY3AjYTdPN0tWKGUyRSEwN3NLVGd1RyhXfl4/NGxaNjYhT3NJIz1Jd15R
Uyg8cFBUM2B3Cno0Pkw8c0xmRW0lWm5BWCsmRnt2Wk1YMik3REljOU9Hc1RHPVQ1N3pGRzE9PTg8
eWZQKVYmM3tsTihBSVIlKiRwbwp6QDE4eVNkLUBDZGQlK0xibmghcUVwUFVEZ0BzMDUoX1VzWVEp
dH4lO1A3bXVLPT5aVXZZKXwtKk9uJVVtPzU+V0EKemw/NTBMSiUmWEViQmNmbUh9ek96PSFeO2Fs
UDZQPVJ0YzdxQFE9bCVneWhSZmkyezR9PVlkRTRLViMxaHp1RWtMCnpRYGUhb0N4SiEpS21uWFdZ
cnpvJV91OzVOYmFkbU1LPH1WUnZ7dnAwNk5LP3c3XjFRJFRqPHNAJUBqeVlmT0o/SAp6PTxiP0Ro
TktkMGtXXkkpPFNSJFRVfkA2VERiWFRlbHwyZGVYWjtQNXBaWGl2SXtmVWoxVSEpbDEjQGpLNik/
YD0KelNKP05AcVVSd1kwYFMkYWw2LXRGbj1yNlpLQ250elJTZXw7JTRFR3EzIW9KKzF6O3A7SEh6
WmhVblA0KFRzTnAhCnopSlVIaUBhfWgtZF9oYGMxdWYpTHl3NVNLT3tsR2BzNlkmfDVzQCFOWS1B
KVFGNzczRT93JlZ9eXNfdDg8S3dMTgp6KntiKjcqUG1YI3lSYGMjOCtRV2RNTnhuSGVMQW82PT9i
UXUkZ3tQPWg3cTJ2dXFaVHhRNUdlWTA1JmNSK3pNYVQKelElfUhgYC12fU01JTtPcGlXPXhzYWZG
eU4kYX5AZ2NSdDY9N0o9KFFDdWQyaTRpaDx7b1FmeHg5WC0xSClMZn5iCnpON0lra2g0Xyt+bFZi
YHIyYihMPjFSTSE3NjxyY0JJUXxUYzFkTU1SUjVfV3N4SzdyaV9+TGEwSjMjZ0o8d0VnJQp6UDZG
cntgJlJ+OHg2Uj15bTluZllUaVApRVhidC19bDNhUWM2UTh8X1cla0dmOFV9ISUlcElYMjx+PmRH
OGNzdkIKeiE4dUJ+VDJNfUxmLXRocEUoTTdSakFfZ1g2JTFqMkJCNlgwZUkkbU5aOHthMUs0NFE+
XldAM1BfRzg0S2VoTzIyCnpKRy18OCZKOSZgcmd+d2VLcmwxSmtDSVZxJmB1Y2w3O0RIWXdAMCVa
eWMkNn0/S0ZUVSsyOz97Jj1BYGNFZkF6Tgp6VSFqcF9nM1MtYDE4VDZNQDwjaDNBXzIkPXpkNHJq
NVhmd2FEO0JLaXp6WnUlKChhQEJtIUp7ZGJAX2Q0KlMla1MKejg1KXVKNkg9YVZkSjl3flhqR0B1
bkgkYzBoPnZGbzw0SFE2TX5Ea0kydHxlRkpteSFoVG50OE9qdDZUbyRBTVh5CnolRWMtWjlqTDtq
WEtEamlWKnUhUWo0ND1LKSlNSDlodHdGd2l8SnBaSlp+e00/OWZmKCljI3RwWDB1WWFmPkE2bAp6
YVZ7UWdiZSlNbmJXI2xhTWY0YEcjUGpIbElVcCU8M2x5MiZvKmQ+UnBtT1RubVkyVkh1ZkYtU29B
MTwpRT9+UigKej1XZ1MkSTdFdXk0Um0oLVFIXz0rYHNCdzF0YT1jc29NKnx1Rzh4Qk9FfndVd1RB
ZEA1MTxuOUNDRXlzcXBhRWNsCnpWaT9QKjVIcztDdHVjKWBMUGU3aGdEYFFkMmE3PGROWkVrenp+
djJNaXhkVlowWGVMZ3dBPzNRWHIjeHpkfDI+agp6dXlgUVpXNHNLXjIqQ1RINXROOHo7TWp7JEN4
WWRUPD08SFBoeGdMOCMmJV5jbERzQjsyPVc/Myp7Wl9HQVopJTcKekJYJkAmRWYtQy1HLXhLMClV
X1UzPkh3MSNVM0dOTzFzI1NJQVZHYEtzd1RUa1dNKn1DNXZEWTQld1chcXAtVCtQCnpqaUhgSGBQ
ajA4d1hOOH42X0kwR3B9OWJjYkV+LV40bUQzSnQ9T188TUZ8U2JVTU1RIUE5c15KJmlSZVRmLW89
JQp6KmxveUkqVHxEVjVINFVsQCtXfFZTVkRkTUVGJCleeXk5WFZsRyVjOFBydmlKdHlmKUFYbH1h
a19GWj5nYkIzUVYKekhAMGhmWEh+cTt3Q3I/dDxuJWZBclk4SEcoQDh7ZWNRd1pSMGRSR2ZhR0ck
VFB8T2ZAYGczWmt0b0hKODR1ZWRDCno2PGRaQHU/RW5sd1hDKiF2QEV1IW1ET247JjRhQl9TKF5w
YyZiRVJeUERpKk5HIW5FXzJEOClSQCViZzxaWVMwewp6SD51KnZzMT8pQ1ZpQlBCcXgmNXF7NkdP
OEMjXndIMC1jaFJfRldEcmJVWGdRJXp4T3lIXyFqZDgqamJ3bUdldFoKej5tSTk8emxsUiorc3A/
az4wb1dRe1FSbmBldHdJN3p9VU02VSU+YVM4R2U9aG43KldVKUJDdD5KYFJGVmw4MjxYCnpmR2Mz
aUR7KyV6aVpqPj9GZDwrU3F5ZjRjUWVSWWU/M2ckNUFPMDM4Uj8/cHUqfmZ7SS07eUAtLSpVc2wj
NFJlPAp6TDBYSGtrWVBCRFVyKio/Vl80RiNNbi1AOGcqakpUR0haP1R0OT9DcEtLciNoZE4xRjgt
XmxvVlRSdTx2QUdGVTYKejN9aWFAVE08ZWVmJX1QbW82dFV9bFZFV3ppcVl8NXdifHpoaEslSyVL
QDlEKXhxSnBjIStWJWlsNUYoO3UjeTZCCnpPVFpOYiVMb1A+Xl8xUG0rajVUTyMlbkY3bnxKT3F2
d1A5NVZ+MHhZNipUUDBKTXghcnpxZjNDO0N0V01aNV5+MAp6ZkIkQ0RJKk8wMGtTWXFleGQhY3di
NXdrJEZibFRkQjRIVjAyOFV+JXZ0ZipRJWY7cmRJVjNZYEdzU2Y0ViM3Y3cKekNmaz9MdjQpSCRu
c0hTRTNWOWFZKUxpcWk3WTgxP2ZiaD1jV1ZDM2UyKEU7XkEoMi15WX5ZPCRXWkxBKVk3Z0UkCnpU
OEU9bVpRK3AxSyheU3lhaDhxLUtyWVBUcm4+LWMkJTk8OD1WTjxYU3hZVVhQbWlgM2xwTV5lJWdW
KlI4Rk5YTgp6b3NOcS0hJnNVOGYkRXk+blA3NClwVHZVUilJNWI7b214WDNERDNsMztkV3w1RGF1
byk1b1F6ZDQla2U9biU/fk0KejgzVkpwRnpKZGJpNWBNbWF5QFlaKCslT3NBUnZMbzFTQz1pZng4
PXMzfChYI2cjZF5YS3lPP3ZMMVojcT9aYjs1CnpBLWZ5K2RPPiRgRXNHM3N7THdKZDhVOUR3V29k
WFhlYkNfMj1fQUcmRDgyalg1THJxMzBnfFdVMy1uOTtxQ3lFPAp6MT9lcVBjV3twKigyYTJzMzI1
b3xMU2M5fEF3NDVsSHUrVWZUdShMfCk9eUZQKlZFYCRtOTs9UG84PVl9UiF9YU0KejtXUlc1Mjlo
bUtzNys3XiVCbH0wM1B1aVlJTV5sQypuO0krWENWSEdHNmB3VEwoVTl+eHZ4KkZnUzYpRTQ5cVEl
CnpDO3tKbkFQdEl6WHRsdi0wR35hVFB1ZlMlRTQxTSZOMncmZV8yRl9YQmhwKlBzIUx+e2RENzN5
eWYpVE5pPXBkVAp6TlBAendCYyUpTEEoUjxSYWp4cm1mJHxndXZ4RG47aWpTO2Q4eCNEWVU+NUd5
R2B5YDA3VmhpZjMkVztaOWdlSncKemd5e2BLQE5hZkViVW1sXmAmSHBjQnVzQyhGT1R5d3tSWkA8
YF9AMnkxOEtzWUx6cUV5YkpkVU9WQXl1SktZOUUjCnp5OG5MTUtTKE42WElDOX1mPXB+ZEdEcWtz
Z1RoJjkkZ2hrVzs7eTB0T3JTZm4+X3V2bCEhQFolRCgmTVdqWGxMeAp6NyZOaU5lYEVOKjtQV0VB
N3Y/bjlGbmR8R1BjV3pMNUpnNE4wXko5KjI3PHl7V1VgNlYzOSVOPy1Kc3tobUJPPnEKejdZb0RR
Zzd9YHlvO185IzdBemQmcD82Rkc1UXBfcmdCQnk4MlNDVDVMWW82Nl85QTtSOTV7OTs1TjBwdmJM
NS0tCnprcUVeKGpqVmZRIS1lM2JnTkhYc3cxYjVOJU1tdUNvcU1QJHY7d2dvTVR5NTtqOVFTO1l0
Ukw3Q3hTOG5mZXshNgp6WXk9aUVMOTxyeS0jKHsxLTJmNjM8MClLPyRLO0wmZHtGMm14Y2t2RWl2
JC1vMHFhb348bDI0LT5IeSVmVn4yWDAKeiNPM3x4aCN0RyVafSo2VURiWihWTjk7Wl5CfDdaR2Qr
anNebjZ0QT5DR29ZYlRpRkAzbVZKMko9anw/K28hLXpsCno4ODBJfkFTQCg+Y0pSZCZKUUBNJGEm
dHkpaG5mYkBEaDQ5VWRsNC1jcWEyQCVYMypFRE1AeXFPdHp8OFR1MCR+bQp6WUU3VGtubnN1Nmpt
YTJ3Tm8jTSRVYkc9VzdOSHRmdzJtJGFHQHAwQnFveV9rRkMhXk5NcyRPTFFGaDIheitJeDcKek0+
ei10cCNlYj97WHZSO1hkdlpwVEM/O1BwKXxXP2NQX3VPclBSRClZS096UTg9NnZLUzgzTy1sRFU3
VnpraTU8CnpJJj44JlAxZD9PSiswVVlfQF8wKTZ2ajJYU2QxPn1LTD9ebTZuWiVDSnF3JC0wV1g5
NTVaNG5hN2V5eVljY3Z5WAp6Mm95ODQoNEt9NEhqfjllN3pQOSZxITRVXndKcmZtKFokQDFgOWkp
UGMzRT9PcXdnJHM9TCUxMjVCcVhNbFEme0UKej4kalkoVXMreDZZO244VXJlZW82Z1RkYW1LZmxx
dzdMaWFiejdBS0ZeeVY+ZFhQdlZhZSkpZjh1WTUtVEs2bm11CnpMaSNARFlZWX0pbSN8U04jKSMr
UVcjYmNKTTtNPSR2ZjlQMXAoK25KakVAcGYqTGF5MHQybVl8ajFIYGNXYkJ7PAp6WDYyKWw/NyUx
bUYpKzw+WX1FSXVFZWR3a0UmfjZkQmxifEpNMGJhaj9sQlIxTmgxLUZAeVFadHZLdlRHP0oraEkK
eiZ7MEtPdXJiUGhiPXxpXkBkayR6Z3pqJExeN3lqU20pRzVUKD5hZlBkaHctdUE2alMwSEEmT3pM
KlhqN1dnYiZNCnpsUnJEKFdWSn1uKy1ZMHB1RFcrZ1h+VXtCWlkkaWxXV0Alc0E+O3QmckV+Pz95
PD9TO0t0Sks4ZyYxJj0qUEJFWAp6N2Z3Yn5eUylqaGY7N04rbSppJVdJVCM5Km1SeE9wI0A7bH5Z
JXtVMWlTZWxvSDczKW9fUmV7SW1SVDk7XmVLJSMKekNjJmQmT3s5fWY9ZHBrN29eSXt+RjcjWGw3
cVZkdiskPEY5aHw8d2FROFdjPCFFdTc/b3V1MUcwbD0kdmE3Mm09CnpZNklPU3N9cipZSXNoVSVm
SGY0V3hnKTA8Q1NFYUlPPHhQdztjR3gzWGwoLWVqWDkmKUF6SnxvbEs2XlooV2lKMQp6cj1yUmpm
Ozg1aWQ/PXloRVdvX3QqdWlNREc5PzZkJVBUTlJyTkUqXmkqQzlKdWNOIWc3anxib2ZzU31Yc2kx
RXoKemxwNWswelhFMFFpNkBSN2RPfHYlbWYzSlJVPXhwaEp6RlNicjReenJrUGReK3E3WG0rNGYh
NihLazZAI1VNdXhpCnpFT1FmZWUwU3w9eDcrQTBnM0E4a1BLS2V8Pj1VZ3ZoSXlgZXM8OShPbHlS
e2owdVIqJGgtQHtnS3o3JTEqKiVrPwp6bE9ZUmFwTEJ8QCREYzVJUzFgS24meTAxd0JqQ3ZxUnEm
RjJJQDxOJkUhMV4hYCQqVGh5clo+ZCUlM1YkMVEyO1MKemA3LWQyP3VQXk5WelJfTyspd1hQak5X
TXQhUy04eHlQRHBgQSRsTCkzKU97fDc0QzU8ZWROflAoXmk7NVNRb2c1CnptYlY/NCVZXjtPPU8/
eXh0bGd6a3g/NHdeJGN+SXw+WUdQNSN+blJNZHM3dlo1Jjh3WihyXnZ7dTBmMi1qMHw5Wgp6aXA4
a0pUYWFJUXl4LVYyaXVQQil0JmlDcy0+YnJTdlpHc0w8M1c4Szh3QTdVZz9AO2FqJkFDMmpjJCVS
YHFCTHwKemRTdndPPE5FYit7XylBQCRNQF4rKzBLcU9wQUNHPkNkcGUmZCVwSUsmNHJRcGtya0Qz
THJlak40bHhEakMxTUlOCnpiZ091TCFLRk9EcHBkMUorP3BkRiZOVURkd35+JWZedSMqSkNiQl5n
SGNjVWA9UWg0fVBMM1V6OU5GPTRgKHgwRgp6ITRzMmRePk89U1BSQF9zQkRgZ2NYYTFoO2V9TC04
Yzc0cFNqMmt5KGxOPCt7JFlxcm9ucmZ9a0Ixe0QkNzJ7U3IKemcyMXBlYzdXPU81WSQ4SkkrXkV1
MSVhX2dRazQ2X0NXKFc7TCRwbEBffUtXJDxCeVloTG88aF9KYyUjM2ZaSiRXCnpLZnQlU1JNNUY9
eEtOUF9GYmhjej5yUX00WiZyPjAjUU1sQlZuczdGMEU4WmxsZytjeFUqSzUtU2Y4ayk+Y0J5RAp6
UispRlZ2biY2OSoqOWBNYChXTHtCNCs8c3xEOyRVe3NocVZrTD1KYGNSemZTS3M3T1MpMXR5Nmp4
VXlFNn1TJGUKeklfKjRpNW1TdDtLUzJGMzZrdlY5dCl8JiVHKEF1Y1dGWGNZe08jPFQ5RUp3VnI3
YkdIN2owe2M0dHR8KigoTiRVCnplZDJiJHpYazZNN0FnaHFqQFUwVyZxSWlrZ1o7dUk8YlgoenhO
O2Rtb1ZmY0tfS2N0dUtwXz9QNEBGZGpZdFNNRQp6RSswa24wYl8+WmZ8ZUNNejV2IzRNMmVfPigm
ZjFtYXR6dj4keExZbSt9MnlzPFpIZTFrZ3VsM191KmJ8WlEqfWQKeiVSLWlYPVVEWm5PRSlpRnkx
N2p7OztwVXE5Jl9VVC1FVnlJVmItcjcwJFQ3Qkk9MipiYHk2N0E+ayloR2huN0MwCnooZ1RQa3E4
dkpjd2owczQxamJxb2hnQldvVWJISGkrOFU7fFQ3K3RAWDg7eXd4b217X3h6XnF4ciZHakIrezc/
ewp6PylzbkthTzJPZVUkRWV4YHVnayo9YndGYj4mekQpeE1iNDw0OzxWcnslUHk0Wm9CIV98R3hq
S3t+akUpSEVnPEsKeiYhU0s3PTRUIXRvb2RYIzc3IUx4KzZOY3tIYSVlITBBcGQ9OHtSY1MqZjdr
MVdpXzh0WChHOE9PeXQ/cXtQM2RmCnpCUUZ9YWo9WW42WGdRQH1xVSZ0UWhwSVorVmBoVzFMUnkx
MWVGQ3s7emNzbXFBb00lfC1JbnFaMWRrKGh6Qys5LQp6bU4oeGFyYyglTmFJc0khelU9QyZCWV8z
VyktSVd1VHpjfnRtUjxHelRXQHhxZDhXcV8/NkE4PG85KFBUK2tNVkEKenp4PjZRKjNZfFYlZTdh
MzshfF9oSnlANn5vNnFePyVffWFnSjxsOW0qdEIzcmNrYzR0bjh5YWN5KEN8Unl0MjVFCno2NG5h
RVRHQjlxJGlPUT0xRDU2a1dfWHV+OG97I0dNQVUkSFhgZVk5QT02T31EcTZJRzJ4Mjh5YVVnOENK
WTsyRwp6dFJhISl3QmhxWGhPLTg/YD4zTG1ONlpDT3A7UilEYlR4RF8hYF48M1Ree3xte3Q2ans+
PENjd3c7JDZGSm9ZeCoKenw3R15AUnIpNk93PTFzPG9KQnpVVntlPFMtLWVPc3EkX1ZLOWUoV1h3
PWM9RWhwKXNufDlqPD90THNUZDhOUnl2CnpBKjFUeUw3cmRmOEt3PDxIKS1JZjk3flpzYU0zZjBp
fnc1I3VJZVFEK341SFYyRXZWQ0xDc2MreHM+ZUZXSFVaZgp6bV5qQU40dylfRnJtNkkkWFFWNXZV
eThEVGpSaEs5Q1VuTG0tbSZgTCQoP3kzYV5aI05NI0FoT3tYdDloezg/KmUKel4lKkB7OXZkM3oo
U3RxYzVSMGJ9V3g/M2I7ViRxMHdkZX12Vz9lU2N1ZjZEMzc9OTB8fEooKmJ6aiUqMCM+Vj9ICno9
SngwSzhUYXM4QjJtSUdDfUtVMUB2QDwjYCt+NmY+Nm9sJnV7ZVNGNzIkUD8oWHhwTSFiOUtNVygq
ZWZ1VDFYVAp6OGRmTGZANzducSNZVXFQKG5oKjhyfVE9SSgrPlIpYnBHX3VrYDBMJCk9VWtPWmpN
bSY2NW5DJiFGcSYhVzVhVFoKemNxPjE9QjUqX3pCdXY1aG4jWWV4WHkhNjROSElaR0F4SmIpKEZE
diMwUFFTKkgzQ3JeX14+Z2N1MFZgJTBJTUx5CnpFM3gkVklUfjh9eld5NVUmNjBRfllrSnVAXjBO
TUd7bExxSkA0JUhXNk85ZX5fSUErTjJQencwSz9oPCtBUi1MZgp6cUNKSENWUW19clU/N2VJRily
bFF6IzxJZ2ZtflU5QldvQkpgWGNycDBBSnRJN2gqTiRfck0kMThBI0Y+O1R9U3wKemtERFUwJn5l
LWE2M0ZOXk4xS2VgK3lMJWp7ND8lVXhlP3YhI0dDMGdsXmElJS1qb1M8anBgfT5OPEloMCFkTm5k
CnpjSHVAbzxKYSNKeVhpTHBQTmx8dldyUXg9ZX0mbHY+aGk9SHgoZXErVTsrUyZgRmFAQDFQRSRV
UHo8bUxRKVAwMQp6ODtDUiMzT1lWYG13VT1pKWFva3RoU1FNJEtLKGpiUHhSfkRuIT5NKmVRN3I+
X3JAOyY5XlR8OGpITVlYbDdTa1QKeiNgaFV+cWhOdCVONXQ7b0FJcG9XITwzPUktWkZTfSshKjE5
ej1KPjxNd25DMWxGJEhXZl5fc1Y2bUN2SSllc0R2Cno2TUU+XzVxNHh1a3RKMSY/dHNeR3E/SH14
Q01XeGJqelBseEQ5UWtfTD4wY0hgKForR3pWcV5vRVFmKE9jZnpmMwp6bDZ4VkhXYjk3LUpgP1Vp
Vl5vME9PTz4wclBVRWZVR15FZ3dEbnNsJSQkbXJWJF48aF9VT2ZFelFBMENFPnpQfloKeiMkNVQ5
VjNHYk5lfnJpSkdLQWl5emE9akppfmIxUEBFMzlJdT0qRmEwYkE1SiYrJVcjRTk3Zylubn5KTm9g
b3l7Cno5QXEyeE5CJH5LNTNwaE5NU2toPE9GX25sSEZPXkJtNV4pd2pRb3MxYzx2eU5kX2JsUFFy
Mml+IWFUdUJKdDZYZQp6Z2FrIUM/NCFzQk5Ic3dWUD8jKFFpMTNBSWU4aUZ1ays1ODtnbkxIWCEr
ZW1sS0V4fSVpK0g3WD89SkJfOV99IUQKemFMKm9nSXpLJDJVMmY8UVZ7dTg7RTshQ2QrZU5XS0sj
KGFtc0FAdkhvT1p9QmktMDlZIztVMD9jczRwRzFYUGozCnp7RGZ2djs+QWZDYnQwe0B5aUZCLSln
VG1zVjRQVnMzJlMwcTkkSzx4WUROX18hJH4pWEJOWG1YTGArJmpsTisofQp6KWczIXQtTUpJKjJY
PnMkbVpwKDJJNnJheDZrJFN9alFCWENPOzlXPFo5PSVyTlNuQXJkQlMqc3ZuPVYhdD1ZdTwKej80
ZjdoeCF7REIrXilhUDl7VHpfN1o3ZDBNV2NLKTE+ViQ0SWQlSFY+VTZGUDA2Qit4LUVEOWMzfXd1
PE5MaF4tCnp1cTxmU2tNPjFxeUBfe1l6M0VVOGY3Q1F9OGZVTmNiUjRFKFJPNT07TFJueCVyQE1t
YD9RVFVnMUhZVV5TNDB5KQp6ZWVFfCpnPGVaUnJ4dXFTJUpzYFZ6eiEpPih1ZWhHYXR+aipNfE5B
eHFEaSNMRjQtc2ZnNFU0OW9lbyNDbEY4Zk4KelBAbXxVLUJwKThlTk81d3RhMjF2SDshTSQ4cXde
dVRUQnctaSM8Vzdoc21NbmpGZTw9JkpKYUJpPF8jPSlqakw9Cno0dklNJnFZcnM8cjtUdGxXKlFi
YFdYZDlsQ3M/TGZCVnpDaHc1eGVaWlJiMjNCPD1YYj8mamdlTDtAaChuPHdpUwp6YUBgRWE8QjFL
dzh3TD9WMSRPfmpBQih4RmhJamQ1cCRKRDBfcnBiYkxYP214eEB6SkN7eFU+Z0MpJjltcHAjVUcK
enFOJT1fQENgJnxUT3cofkhAWXk2S0J5NDs4V0o1REs3M3k2QSpNX2RDQGQlM3IhdTcmWD0+KVNo
dGlXbmB+QDV0Cno1aXhgZ3hSP2NBVHRMYDRzTio9PW59PmZFeUV1cWJ4eG58TWNZZUNteUplSTJN
P2IyMGVxSEdeY1NZNyRVJExsawp6ZkE9ZTtudkR4ZmkhUUpKSWVmUF8tQ3RXT2BJbW9rUFUoV1pA
dDBuemQqRyU4bXNTN2RDIUpwXkV4ZUBxJDNGXlAKekk9XkpfPi1icEQ9dmQ1R0MycjBMcjhoITVB
ekVsJmxpXjEoUSN8SSZQbzk1NDh4NC0qYVJDIUthV3UrclQtM3Y8CnpMY2JRPWRGTiMjfDJkMHwj
JndQbC1+NnxjT0s+ZnBiTDBDXmIzen0raG9ASGhLI3swcGVLNndJI2A8NzVIXiluYQp6dXw3YXR1
flc1dih+aC0yLWw7ISslNypLUzljIy13XihSaGZiNnVzKVYwXkdZRn17JTtZT0ZYRXVMISNIPGp8
Mj0KekoyITxYQjZjbF5haUJIRlJmcWtGYlZyfllxWXk3MjVBVyh1cFV+PWxhWjJIdXIjPmllKiE8
SzcoPFYyWD9aM0pwCno9S0RWd2V0KzVyUGk/T0ZWZyV1UWojSFJ7Slc8Ull4bm5DRG9oRipWKmFG
JUJlRjJlSzNNQ0lDZT1vc2FBfV8hRwp6T0dDI1Ffazk3MipTUFBHVnBXdWI0bFQqfUs1NiRyP3gq
UGt0ZXlDazJ8dEY4d0dqUndHd0hITykmVTl4JDFxfkIKejVMT008UWpANzJ0UCltRDRmISM5NXc2
PlZNbXFFR1Vka3o/LT88M0ZgcHVFd0ZefktYbWVZfm4hUDJGfDY5aVMyCnpla0lOPlZvaGpFaSQy
cTY4QmMlND8rQyliYUBgdjZOZV8lXllQdzRAJiVPSVU5O1dgRXRBMkdgPkdvSGp4ek5obwp6TWxa
ejEqYEY5TVlzYHBtUTREUjdzamlJWHVJUDluaEpRWjFsejhZaW1mRVNtZSVzcVNTP1ZAQEdiK01W
NG9FZ1MKemY/ZGUyMXxjRXVseWB6SVhiQkE2eEJePk87bEkrcihzWXNqOHJ5cHRPWWhXUXlHX0xy
ZWUqV2BITC1fJkVXSmEyCnpaNXQlQjVtV2dmYlQtTzhVQjxQeFNRKll2Zl9WWH5SM2EtdEJ2P3V3
Qk9ub3wxd35FTnpgfWRaPGdBazhXYTl5ewp6TkkqezhYdEBkX1gzSlFmI15WO3U3aCRCZmxmTXE4
akc0c3ROTXhsRVY5Q31AbEB0RDZlP3AhclNObmUmc1AyVUgKensjXy0pKCliWVA+YzgtWiErekYq
X3UtY3khQCZeVD9vZmQtdjxSSS1IJiZRI3BfbkV+LWp5VGdEMHkkTzc8Y2k/CnozX3ooLW5QQ1Ju
LWAkMUMyOFl3dkduSllURjN0cklFclp8fnY8cl5yNDVLVzJxKno8OU53ZGxnZ3Y1ezQyQXR0Kgp6
cGQ9N0xTXztjWUM8PVRSdHRWRzdObztWO05YTnFlOFQ5JUJANVJJRThUTiFJVVYtIVEldDtNQ0Ay
ZCNLKllFa0UKeiRyYlk9dD1YXjszKFZvT0tBckFWYzJ4emRveDhqcERiNEQpR2hRe3wkb2tJQXp0
RVB4Uy1TbHRYWSpTNERGeHk5CnpwQW99TnhrRml1QUdiUH5udUU0TUErVENFPWNZZ3BVPiZTNntp
ZUtNYmpoZmRWQ2ZDIWR6MFlUZXVsNlMhJmZhXgp6ZXI+WiNmaGlyQ2kjTEFaP3piKiNUWEBseHBT
PHFJdnNTdiNfb2lwJSpfNjIoSGw1aVZsJnV5JlZ2Vzh5Vn1eZHUKenk1SyRFPnpSSipkRTJIPFUh
N31AXmhMZy18TStKUXQ8S3JaSzZuMD5zK0VJI1EhfiVLYnllMUhHbGdxJVNJMSY2CnpWZnIkfTZG
QkFCQF96cztOZyNAQzBvUCpabCtgJk5aOTBaeEF6c3R4ZlBKUitMUD4qQV5DTHcrNmZfemVWTDw0
aAp6JVM0YnxtK3pQSnk8JDJUM1p+KW43NHkoPUI5Y3FDbX0jM2BWWTFEZzh5JWNGck82JDBgSW9J
eE93cGotPTlWT0AKenRFTGc5QTIhVnphSGsmb1lBfSRWPWtfakpZMDZjI1QpNDJxRWpuY0BWLThR
UEgjSWU2YWRwcFIteGBjZXh1cmN8CnpQeGpBPDQ4RUlRelBBdXgoQnx7VSsjIyFqJCEzNTNqOUho
QGRZWX1ndFpucnBDWH1HfilOQSkhcVplSEUjN2dKMQp6eTYoRUJQPm5+bmNQdj5HPiRuXnU9bEop
OW84KSlwOThqPkNoK1Vme1A9cE48amkoeW5yMU8hT2R7RTdvd0ZNd1QKejl4QzV9LUJ3ZDtaRW91
Nj1XJCt1UWw9ezI9TE15KXFvO3B4OXZBdTtMfn1NYExTbUIzK3xYZjQ9T2Q7cEM8NzNhCnpedUM1
dlBqfXZvOFgwKkNPcWZ3P3VBalQ/Pk1mdCRfMVBefkZQbUYkdUFPfH5BPEx9eEdnc1lrPiROTV53
YXNfMQp6ZTBYWUtxKVl1QHdjfjwyeC1QeXJ4IUM2eWhubm43WWdldEdtJndkcXppS1VaQ2h5elYm
cDJtRllnNnY1WCYxVEoKemc1O2QzSDRFMkslS1BkQ1lwPm9xPipESjVqZzIlLUs/PyEyUD1RNUtN
OGojcW14WkY2Vy0ze3RnQmdralJlTml7CnpKPngoQl5FWDFFKXZtZmJUJm5aQ0NlNmtFPTJFTV5p
fT56KzQhNl9TeTNmUGtZeHNMRGV7YmFQTnFSNWhFUn5XOwp6bXw+dEhVSyVtZCRvTjlxVzFzNWk2
UHxaQ3Qye05lam1lSjY5fi1kYWtqcCpjVWBLfktQfEx1Skx+OUQ0JmFuZyQKeklQV0YwUnRQKjNH
NkpDPXhCP2txYEdgbVpCOTlWJHsqMzkjJio/OUpGMWgwSXQxZUY0QU5zfWYkeFppZ3FHbSNvCnpz
Y3NpKk4oSXw5NFZ9SVcrdDhZeGJ6NFZPWkxLQUYjPlVUJWt6M2pNO3FyUnw4IXg8bWlufmRGdnYt
STBpT1VVJgp6WDRjbFBzSCtgKjskQyt1bzA/ZllBbH1rPlUrK0J3ey0hMnBfb25tNkZwLVhiM0J1
OUtiOSVneDZHRG9eOGZpNHkKekxZNmV0PVlVY05EQz4mNHF7KUA2M2s9YHZwVyt8QmBNPW5BKm12
fE4kbClgNF9QbSVKWWNSej1KWGpFYUlveXQ1CnpIKVBSM2RuUz1mQG1jfF9nRFM+eHpDZ2pGNmRj
YD5RSWxOR0xhfWpWaSROWUc4TFVQV0xeNFFHNVJ7ezt3U3Y9dwp6Mm4qMXs1d2dpXzVvYHZOV1kz
ViNIJjVzVDtUJFomRDVwNGBSQ3NRMmg5eFghczxWKCtPeSpQfWgjO0R3dHdVXisKeko2TnNnNDtF
XkQ9ZSUpX3VlUDgrczhsbV52JWt5NT1DR0NoTHFxLWdHeHxUZHk4Ty1sRChCenl6bnZLekBHR3ta
CnpPS3BtT0FiMkxUe0xNK0xHNSZhZGolYHZFaENFaTIoVT89QDlqd0tnS1l8YXpoJkV6akM8K0xN
SzlERjFxYTJBJAp6fDN8azBHYSp2byF+T0UmWn4oUHdvQ1YtamglZnd6S2tqPUgteTY5UWh8Zlpk
OHZsPj09SWAxZmB4UChLYipTeFEKek4yV3B6PHxMSUJMZXhHeWkje0g3Vzk4KX5zNCZaamFZbVhP
RypLK3w0clFPRSVGRlg4SmgwTVdWfFI4VDZkJXxxCnpwYF9xNG5FSHIqNGpLRGNBY3lgK1ZIdUFN
QDcxNFQoaFdQRikxTUxfLSpMa3VibnZlTFBLUkQ1MW9iNlMqPjJkbQp6ZkI2MkxIeVFfcy0pTXt8
WDJUMHopVHBpa0d7aX5IPjJXQzJNRTRqJnV1TihzVDVSfWZ7YnpfKlYhSjNIJSFyPlMKelprfFJv
MDg4YG5QbEI3PGg0bGc9KyNyP1V6UDltSDRJNT5HMStvPEtnSksoaV8qKzRaNHZ3WCFzMy07JTsq
ZE89Cno3dmMqK1J8cXcyJVc0Xkx4a0xeO05GSn1FTVdQXkFoPVN1dCE5O2lxVm1MIWspY2VpcFpj
MU04eUcjKH1CanVRMgp6cW5lZX4+N0x9WT1CVk87amc5XjRecGNIVntPJVZ3RT1nQ0xwX2Y4VzdL
Y2hsdVoqMmw8OGIpdjZIUlIkKXIkM0sKenNiJDVAbXQ0NiNtc0BgMkJ7IzJOWWx5UCtCSiMyMHpa
MVNHVW5JUmpUOWJxe19CQE9Ib34+c2FlbURIaj80alFpCnpUPXNpJDdTVmRIQFZma0NuUUs+WTZo
Tjw+RTZ4QE5mMlRqOT9+JWc4LXd8ajFvPEtQSVA0VzB0cDx2bnE/OV9eUgp6KUZoQkBQOXAqayM9
PSE9TFNTUz5JKzJRUVlgRE5BNjM+N1BMNCg0SmZPWHwlKjI+eWAjQlRjKUQqMWZ3U0xgTyoKeloh
SUJpdmArc2NGR1UwZDlrcj9jMnNaJUtkOSlGKnpLbkRgWGhDeUBWZ3JwPU8tXmtDP0xFanU7TCpZ
NGQ7dn1jCnpIWCsjcjZ7KyF7M2V6NFRpJTA7WT47b3VFVEJzZ3ZZdi1lcUxVRX0kNmVQa34zMXlY
QlZrX2UtRGp5LU50VFVoIQp6VnRKKkA7OWczNU8+WDRXLWtMSmlEZCFMfS0xfn1YamQtS3NtTjI1
T1RFYmFeVlp+N0FAU1UtQ2xrYC16Kll+SXIKeiEwfUA8PCpGY2B5OzxXdTt0enlORWtSQ0NkZ0ZY
OUtgUzJAMFZrNi1qeDxAYG0oaCR3cXlRKzAjeHBgXjAmeiY+Cno1MEBpM2dlU1pucTJ5S1JifGF6
SF8tKUswI1EjIWBoekRiM0FsOGBaJGE7anVrQkMmRmxhZTd1OXY0ZjE+X1FrOAp6V0F9KUk4ITYz
ays/fGU5USpQUEYpRlBtUHVAM09xSGpJeEFuaCgjNzwmflhhTzJEKjU0SlFNWmxhYkpmMzR0c3wK
eiZJQ0RwP2Q2d1EzdX00I1cmSSM9SVBvcnxnfjdsMCokbktfWlRRVzRvP1MldHM2RTM9TFRSSm5X
WllkN0NrY2UkCnpfUippZlB3XmtzZkEhSyFMfURUY1UlJVh0ZFghJVBmMzFfYXMyMkRmNHxZTHs1
LTFNdEAjOExWP2JWSDdjU3dzTQp6KiUwTiQpU2AmXjxyIUt3MCgkdUxvKmM/bDJpMjhBbj9nUXY4
YktIKU1yNntsPmdIK0RyJWpFMWFnUSUpZFJvN1MKeml8djlqV1JPeTl3Zk9zQng7LUA5JGl3Sy1X
Q2AmZ015IyNfdk1MWCZoZ1ZnRFJ8aHJNJXBSPTtaT2loc1h7YG0wCnpNYV93QEkjT2Y2djxSKjFr
VjhHd3JHQz5pKWMjNSlkX2x4P0hqck5fRXordHhsOEBBbytMKjFXa3pFYjchQjxjVgp6UGN+V1Bs
SzdTM3Z5dEwlY2UraXxOYEZ8K09LKmgoI1BkYHpBWH1aU3N5WnJLMD5TdnxxdEtgQXZQQ2s5P0M3
enQKem0tS2c+NHB0dnZyfFo5eVImY2soKllQY35oWmxuVzdsMSFuUVNHUndsMH00TTNxLVU9YjBr
eCV2JkNpfVF7OX1UCnp5dHdYK1FGXkYzaGhEV0lmKjR8eVRxMWVvR3YocElyYiVsdDJWZ2soTFpi
akVXLUEkVHJVKTZIPTd4b0plKHh0ewp6eF5Hek5IR0JRJWAwPjgtMktVU0Bpb2RTYlltRjJ4ZDFU
cDVmMU50alRnI3FzUE1KSCEoUm5GNUNsRyN5JjBCSl8KektqeTBxXyFebi1tTD5ZUG88WXg+RVJy
Sn1ASFlHWG1nYXgmbmxZbWJoeXB7ZE48ZTtDZXdnJHZVVFRXNmV0Pm8zCnpBSy01TUxrZHZmUGZI
S0FLbEQpaHB7ME1genlIcjgra2VgfXpKbyk1K1A5Q05lekApTShtKENyfEVIeWcrbU5uSQp6WWMh
Mkg8d1oyVzw2TWd8aGlHZCROSXJBO205PTBLU2tGKTZPaiElZUthRyl4NDM7KUg1bmltKDt3Pm1p
ZkpDWDgKekVFaG0yTE1mM1o9VmY4V1JgPTE0PGFeOzZZNWtrXkd0JHwqUFNeVC17ZXw1cTdRfGpX
ZGhqbCslRUtRbEQpaDBUCnpYbHRTRV5ldlglWktwVFl6eDsjUnE8JU5NX1NGTj05PT1KeG85bCRz
JkpvIX4/TF5LN3tOKzN7N0hGQEtxaGJKOQp6SEcjfnRFRVQoO25pcXpEOUsoKEVRd0h4TU5oamdh
c0p3fWh1fWlmQTZyLTBaQVBoeG9ReVczeE0hcyZkUzhjX3IKeihtXjc7MXFATEdJUmR4b0cpQ01J
TFB8MUVqTzhFMTwqM2sqazc1ZEA8Ml9Rc2w3T284YWVhcnpPUTZuOFkhP1dpCnpAMTBENTFGeGQ8
Pnt7eClnIVFrMHhUViM2ajd9NC03YnUjaGtyI2kxd1RCMzhBU3hfZD9CZER2VHxDdigkZFF9ZQp6
X2pjYSpWbWw4VFpsNGI2TFA+SiU9PV5AQ1FzPHxQQXdqRWFNMyluTllPfHROX2kyNyQ4TzZ9Xyg+
U2BFMlp9K3kKejxDIWRwOEk1Y0tPMzh4c0Y7K0IyYVN7MVk5SjI7QXFHO3wheWhXdD1tbVhOWVhf
S3s3czdIZUVCYCR+Snl2KmZUCnole28/WnhAXl5eWkkoSz57Kj5pJCpafDItbihOI0BAXzQtLUo8
bEFuT3xyPGNYdElCSGpzNlU9JUhCbXttNkVqRQp6LVpWUW15Wm0wKV5eMTJjKXQ/RWJBRlclKlJ0
QjBQMGVfZT1ROEd6UnRFPWt5bUcyUGtBayNMMnp0PHFEaGtQaVkKejlzRWs1OVN8dDIqSGI5SkxZ
PGx8UFR9SFVOKns+Pl8pQFR4UCVaKjVmKUgoa2hLN1ptN3pjIypkI0dAUEleQSV2CnpxIyY5MVRi
JVdCR3BBamNYcVRkPlc1QWMxR3pHTHtZMnZFUkUpaGJ8V1JMPjEzejw7bnUyTmtoNEpRaTEteXlA
fQp6Y19uRn5MXnE0ZSlCPHUrNEI1c0BpQkp5TFdtTylCaShMbDE8WX13XmwmOCtUWlBQMEk4fTIm
dUNzfWZuezxYRkQKeitEKiZeZzR0dlQoO0tCZm1CZC1RN1BJUjtvPFAtPVBWPHtgUmF6Ti16dnww
UDBrKlF4P0FNPUokTnV9Pm1FVXhACno5WDFkUVN8QStmcGZGN3syXnNJdVN4cWlqRVdMO2NvRl4z
WEd9b3FKUEVFX0cwYm1NTCYjYyVTQWlKeDFEIygrPQp6MFQxYj1STF9yYW11N09aYyE5WlNFK2t6
ZHRfdVJCNCN9WS17X2tgVz5fTT84PUBqNUVHaHxzMWh8K1kqNChPI3gKejYlM2dhT1BxNFpIdD9w
NFJhSzhSMUB2Y0A/cGwxa0pMJWRTSmFnc3EhNVg5RyooYE54b289JU5QNXI1VXp1NmFrCnorYGBy
blgpYWxIYEtIelNGSUc4TykjWDlRbil8I31xY21iQWczXjlTZ3ckVjBlMCE8bCF3PzAjXmUhcX5o
a15BPwp6cCRhLVpNaCUhZ1VpbFJIZGFkUFJEXkl+YG9yMGJ0JV4xbjJsJjFvT1kkfCUqTzE/PWFS
QzNMWU9ja3w/ZGhSbnYKelZSRnVkJE91cmIkcWJne2NAVVQlMXBaMEJjdH1DSE5EP1dqOSVWWEtt
Mn1GQE5Sdm5UI20hWUlfd3tWYXVCQnxICnp6eG1PcztTVnFhPnxjMD97bShsNlgrUD8xTmZ2VztA
U0ZGYz5rRmQ2JWQ0MVViKnxqOD5lOTxzVHwkJEl0KzZ+Xwp6P3tlJGdGeldqMitzeVV1OXxwYk5B
UypkNjk7O080eS0mUTdjVSZhQjlyTlRWKUJfMSUlbmZ9NyRTbX0/Tl8tamcKejBGUk9FdDlqciQo
MEM+fFlWLSp7MnUraDAoNHcoJFFjaWZLeW9MeEI5UUNYTXJnUWlGPTd2V3tlU0dpaVZNITZ7Cno2
VDQ1cFR3SHlfWn15ektNfUxQTCp6aV5SbkVqTyhTJkZzMVJQbXViZypKSng+UEBMd1d8KUVxeFM9
Ki1BfHVvVwp6SDdxRVVMR3VIVnExc2JIMXI9LSs2NkRCSUNxSVY1diglfW9CdnQkbjNDQE94ND11
V1d7R0NoZUs1N3o+ZWNtQTYKelY1MzJnPjk0PXwzaDh3ZFkxQ2gjayVFPk9zbkFDQjlhKENYPXNT
Z3NTdG5lPVdUbHpsdTJ5WlI3WCZnOU9ZbH5XCnomPFdMbUBzRktJQyM8ODBASHY0PGglaDVOWkV+
QklSTjZFYTZvXjRIO3VnbT5EPT92MWFII1dVZm4qPmUxe1VjVwp6SUwzOUxAazVFPTJkWVBMa3x2
VEAxcVN4eWZxYVkje0VwYSVAK2cwSzVZNio+O1J+b0JaJj0hWihVKWJeJnQjYlQKejVWdntfNWp6
QWJWcV9vMmd6fVQ2aS04P2QyMyMoYTQ/Y25FM3MreHZgeUY/RzRrQX56MUokZipOT2V2LTxIOVd1
CnpldGA/JldpM0U4Z1Bwejg9Z3djZm1haDRYR0dNYXt7LUkwbipzK3RvRyghRFJwNzVFMjdKdHgh
bWB6eUQ1aXVWbQp6ajF5VCZCJFB5ZWErQ3hfNkBrckEyRmFWKzMjMUYlYENjRyV6Pn1sTUZUan5S
UH59dmZUOytMV0lRNkQhI15jSmcKeklnTjZyPGBpTWd4UX5rX2U/Rk1Tbj9EJW5rbiVaQigoQ3l3
cGZIWWlfV2FGU1hLckI1VjcwWStSanxKPVowKFIqCnorUmU7IyhJK0FlM0NZel88KGpNNVgyZCE/
UyZzfXJOKjFqKHdJUUYrVmZMN3Q+ZGVrMm0mKyYxTiFldCNSMHF1LQp6WXQkUkUqXyN0SG9lbz5I
KlhnaWlSPTltJGNXWjZHKWpoKTw9JDlucUVPandTcytIYEQhKXN9PHdiZUkxJTEpUkUKelkrZH0/
ZGZWSUBoZmo3IXRlSkBIVUZlPyZhTmgyZXRgMFokTV5VPVk7JkN3MTtZZnRVajk2dXJmKz1zZkNS
YHUhCnptPklMIWVNeHUoNzZkfUFjMnxxUCNeJmAmSGIqRU9oKntGNkQjO2BfQ1cxfiRhKGN+bjI1
TVEtWmIhKHthT0lXRwp6TXZMOTQka25UdlhxS0psKCl0OFRReE1eJnhDNDw8IWdMQEZBYm9HaDZ2
eyhNTjczNGIzP2g3bjshRD9tYipEYWoKej99dEBpeT5aKnspOXpPSDc1Qjd5I0kraz09ezstWF9Q
MV8rX049Kj87aW8rdztPSjFWaDRxa3FQamc9dFJZKWFsCno0bUJvRlNFOVNEPURCcVlDdShQejQx
Ryl8PSRCSmFYI2p2RT0wNXlDSnFOWH1LQXd9bllnIWgyeGJAYVUpKklFagp6QiVjc3d7QUFQWjwx
enw+cXNBJG1oUCt3aGprOzU5IXdOPDg4fjZNbWNrPjVoaFRnWU13aDNHbEtwXnN7TnJ2RSEKelZe
azgpKmZSMzlEbFMhSXBkJEkldSZWYDRwZ0wyT01uO1BoaVZxK2E3SjBBNzdEfjc0a0N4PWNLb3FH
VzVFWCNJCnotPFdNZGM2dzQrJmstRDgwe0cydmp4PmVwMjJkPyZXUGt6eWIwMVYyYy0yOTcxOEVq
ZU87Ny13N3hHNCM2MCkycgp6YHo9QUlzO0xVMG41QWBCJnxGdz8paEhUZUtxO2ghOGR4MCtRIT9H
Y3FAbzVXSCQ5KyRtYTttbm5UJXRDR052Xm4KemtDUEEkNVJVKEchPGcrdDBXWjNzS3E7TmpPT0oz
SE01YSEwVFojT2xlclFKe2skR1BEODBzX1JSbVY3WURiUXZ0CnpBd1pMYCU/UDIpRTZCNzNTZ0U4
ZngwUUM1JG0/bytoXzYtbE81ez83cW1MaCNWKktPU2dUX2htUDIoRXxwOT1DYAp6ZDlVRVc4WGJq
PUp9NHt9ZW8/OHxqXzc5fjxxTEJ0VGNnZkZha1B4dSRMa1Z3WE55Z29XPSpHb1c+Xl5yTFImSH0K
eipiOHl1bUJqVHBRcko7eEJXME5Te2JqWV4hfkdgbiVscT40WEliSSg8a20pPipUSmhxS1AtaVdQ
RWxPfXlOajNBCnooRTFeTHdmNT1JZkFUT0xwMGx9cWE+akB7aWNwfW5NUXwhNGxXVVpIRSQhMyRY
fHVAKSFjaH43bU8oKismYVBAVQp6Ui10UkclMUBBRV9sVWwzPTtlMzxaR35XcWgjV058QkxyJSsj
YykkNGpmNFEkPSUqO0BefSVKKWojdy1kVCFMM0QKejc3VlJ1al40bSojKldKa0o3PDI1TVBlT01v
UWtwSCNNKW5APCU4fXQmaXxuOzlfeHNHSkp3fm9uWW1tKytPZ2tACnpucExebmllUVh4MUdadHVl
PVNVdHpZUk5rOE1HXmtjTDNCMkQtUDE2N28mekRTKVFUIzRUNkBZbjFoKnBZRTBTaAp6YU0jd01I
WnFtTCh5fT5qTTN9TU08ZyZDWCFKOSQ7KS0qWWdFZSFsdHNiNm9RdmZWZ2J4cjdTenp8VG8pV3xZ
eDQKenVwcj9wa2clKy13bGxHMT8jd0NpZiMhNlIhblAtPi1GMFg5WjVeajJeY3lYNiohNnkyczRu
STlHIUZsIWRxTXNUCnpvNXxoVG41eT0odiR8KCY+YTdXI3lUeGliXlZxT3VqJWI9U01lJHMpWXxo
Rn1YRWU+ejEkT1lDbS1ZP1JkJTlYJAp6K3ZyISUlZEF6emN0WEYlR0srbTg9bXxCWj1AJG9RQ2ko
eyY4dzIhdmA1c3ckPSk4Pyp7X1ZKNm5hKztTK0pFLWkKelBjX0UjKSVZPmA2Q3NPeDw/cVd3bX5s
UEclXillPCZUJCtJdXlUK09OeyYlWWoxVmVsNE9BP24xJX5AUiQ+S0tSCnphWm5ZXnRENS0yUHNT
SUFxYk5AU1dQITZjamFBckIlWGx5WigteEpRVjdiQ1MmcT0lZHJRN2QwQDR8YS1kb2koZwp6KjFW
VjJFMXVTPzxfXnhBd0tubk9qUSlZKComOXx8PV5VOFZ6ckp0YilHYiUjPTEpSWdAX2gyOCtpclg1
bE8xUFYKekkmYmQzZEA+WjhkZlZMNz1GWXFIakU9ZkJyfVlRVnhaPG9Vb2MoaSQ+Z1IxKGBQQTIh
cEt0VzlAQSYpandlbWxzCnpQRjQ9K2p2byFkNyZCaDw5LSlrPWZSQXl1bkU0M142QDtLZEpwcV9a
bH44Q2I1ciNScVdBPlM2NTM7KCEhNXZufAp6I1J2Mm98TDB0OU0+cyF0VX5xQFVkR1BedTJsZ3xP
YTNWanJXQU47QTJsUEo8dkpLfUI+PlEtOGUweSsqJX1VPy0Kei0qZGd+UX1UbU1KeyNZJV5LWSRK
eF5tJmZDOU9DeklIPjx8Zlo4a1pKWmg+UE5FS0FWNmJIe2V0cT9yMHN1Nll2CnpNMjdNY0FkV0NI
KiFMUCRVdzghI0VeMEVvezdXNXo2Tl9kT29JUnV2MTZTYlgrKHhXbylMRHBvRTFDSkY9QCZmdwp6
PFFFRTQ0Yzd7YTZBYlZEIUhoTENXfj9ibC13ST9xQjlWQDQ7TWhEIT83eGFIOUQ5dlUlc0BMeVBj
WTxsXjtsRikKek8tNGhaRiVyeyZfVG1gaD90RWBIZ3AmNmJRWENqJEd8VCstN2ZAKigzQWZ3VDsk
bjZEcWYhNlVmdUZJaEtSZHVlCnpqWDNJZD51PFgwQmNjRDdlJjgyQjYocDd4eXMqNndCYlI7I0pu
O18qbCN2Ukw0eDl4Mio8IW0pdDUhUTkyflptVgp6TFpZbVVjTiFoQHFNajJ8WFkmRiVTbklNdGF1
OFNJKGJgeVJRVDkleVAoVD0qeyVBa25AQE5CS2FmcHQzJURKeUEKellqZVFyUyZBK2FgX3dpQ2RF
UmhAdn0zb3FQbzFXRzFFRX4kc29kQUVkTVJSJSZ+V0l1M2dTO1g1V05XJWxwK1A/CnpQeSN8aDJ+
ajQjbmNAWDA+RH1qI05aPk01YWBGKzlnWT0we283T0hnYF4xakhySjRCOXdxPUZYb0U2aHNyQU1z
Mgp6M2tNcGVGVjhtPkExWnUpYnlMaz1rSjkzPXg1elVWe1ExZUQ2LS0tbHpNQ3kkVyozVTA0Jn4z
ZmJDelo0R1RHTlEKel5Xd3F6aT5tYXAlaT9SQnpPbnopUGRiKD9Sbnw2YjUrbVdaPlZWay1LKkRS
Q0hyKHBIVl8rVTBmcT0wcjJwMzQ3CnpMcm5FN1ZUVkFON3dpVjhDPXU+V00yVUdIZTt8bURLTT0m
e3M/WmN9cUNRQE96QTs7QD1HNzBZQlhBZzdJUjBnIQp6ZEt5VFpOMDFjaEIxRmsqSUZ0NT9Rd0M+
fCZ+Kz0lSWlqKGF0e207U3lsTlkwK2t6IWNZYldEVVBfI0JJYS08MzYKemgrZCMybW56N29ye1dU
VGl5PWBjMVQlPGozcWJsX24kc2J3aSQ8MEpxemVMUUFkVS08U05yV1lEYnYyO0AhTmoqCno7T3lt
JSR5TlU1Y3FzRE1tI2wkNl5WR3o3ZiVzP1FpPkdJc20hKEBtenNSUTdnc1N1QWZGMHJEd29ZZHcl
NS0kKQp6WXAxT19yKWo4b1pURikzYUc8VFBlcX5GcGtsaHhaKShnQy1BQGJScGtUZlhFd05BJnF2
ZGRpTVEwKTE4PTBUPCsKeitESEM2PH1tM3BoPCtwZzFqVVQwUEFWb3NNOX5+RDIzMEZKUnQ/K0ZD
WHhqeGF2dXVwPDtvfWIwI2VhNCE9ckwrCnp0OF9iZ193ZjY/ek5pX2BWRiZfIVlZLWw8KVB5bWtB
fEAzZzJCZF5TcldpUVhpeCpAdGRLRzN0MShfPmB4cHk9aQp6IVdmfiM4KGJ2N1koPEVCI0U8Y35J
KHBDbWgzSGo8QEl9YWN7PlQ/cGFZMkhNUiEwVHFmbUp3YXZlfHVKUFhMKz0KekdVYWUxWjwjNz4w
MVFVUSV6ZGc9IUl9VzBteX12TzMhX1FfUEs1ekFZO2k8dTF5SCNOZGFoOWozQn5QclFLVVJuCnpO
YiUob2BIKiZAXzdMcHdeOSR6XypqLUB3azFXWSFUWTFxfUl0elVta18xe2dkQHJSNUc7dSs5QiUx
Nm9APncqQwp6b2hsRDtPY0gkc1MlQUFoYXNxJjxMdmNHVVFXNXRzbkUpMWEjdk1ScyFNX1NzbXZW
V3l8MF8lYzA4eEEoJmMwZl4KejB8Y1BiTTVzbkprcExFaDAxV14hX28yY0tXZ0JTcTIpK2FHaSMk
d3RvV2BoOD17OzM/bm4wQ3QpRjJ3NXFaTnt6CnpLU205TTB3QClPTGszbGpaM1dzVWF+YEJ4YypH
LUthTEp+VGBsVnpONVVLKH5hSGMzJHhreS02REt4UUI5OVNWTgp6WU07LWVwbDg3UjtUVDNxNj9f
RzhnakE4cSFGeHsrPkVJUGBfNndxOT0yYXFHaCY5JHNOWkNaa0R0SEYoN2BnP3sKekNRR1pyLU5l
Zm5HaDxBdE0+TVhgJkBxJiNeTWpJcWN1KWlaaE50Y1crSng0X1NCKiQrRlIhb2RyU2N4PWxuWk1r
CnpgcnNoIVlNK21mNGgyUT9Db1o4NlV9RVpuIWRhTzIhR3xoNzxOQU8mLUhDbGI7VHA4d1Y5QG1W
SmBsbSUzVmI5Kwp6YGFsKk1VPldANVR1RG5McFF7elMjdCFfQ01xJmxHKXpBVHlNblU4LXhEbCsj
cnomcnxgKFYtSEBYP1k0Q1opMkkKenlzOWxpO3hJQC1OTUhWZDZ3UUgmd0dYNT52UkZuNGp2Mis+
cn5FUyk3IWZCKElISHlyPC01MlFUT200bWxFejtECnotYGVYeWQpPlVmNUhKdXZjRF8jN3owX1dO
QE1HR0dpZjd+NkpsYkFyNlIxaXBLRWsmUTl2TiNZSEpqKVFOZUQoKwp6NEJ0NCMhblRhJT9nQ1JG
Vis+e2gkNXg0WiRydUJBaGA0eURDPSgtMjs5RDdxNTMxeWtROXxSUkA0ZnBLTjtmNlgKekpkI2gx
JXRnWjg5KCZ0M0AlQ3dTKUhyOUA8WVI0VjVQKUpMI0Z4dipOXjJsc0MlMS1WVyhaPElxZnw+bHQ0
OVgwCno3RE1qciRHNmJlJmZhXkorQ24rOFV3TDt6QlRIPEZ6Sz5lXm0zTkpkKzNfdmFva3ghbiok
bHRtMjxgc2lfVk5UQAp6cXJHVlEkRzEwQk45bnd5RXQ9NVkwX3cyeCoxcT5CNXF4fVczK1R2X3xK
JTB5IT9jWXspWWclNHA0ZTcpZ2c0ZTgKekphfWEwNyEhYkJtbCE7V1RHZjxhU1BRP3s9eUo/cUFJ
Y28/Zi18dlZLcGo5ZDN4Wmw4Ti01T0YpSGhOSUxSQSExCno7eHkjfTVrUTFTUVg4PmxKbGg2fkFF
cFEzQWNIYTRFQH1ARXY3fG89enpDLWQmYTkrTlc0eEwwOGllJmhgQWF+SQp6NWIqPGpnc092S052
ITd7WTJaTHdrWCo3Zzs2b29GeyUjV0chQ1Z9KzlRPn4rVF9AeSMjVUBPPi1oNDBPYFdtMlgKejJe
UkJmKSk0RD4kWWlxRlklWnEqUml8N3dZZUBla2ArX0sxWSZOJURlbkowV2t3PiluXm85T18hfEpY
UUZHbEotCnpMdCFfaytpQ05kZjJzZGBqZ1I8fCZ0Kj14WVJxTCtsTExjdEhPNUxnKl8zTDg3IVNt
Q0tyQipkaGNVSUdQdGs8ZAp6WVUhRDQ2cSVAY1Alc00oSCFgdkZKd1U5QyhncHlSR1lEVzBGclpa
a0dOSkwhXmNWQF8/MS15JF9TdWlVTylDPUAKekl2fVJ8VEwlNVVDMGooMUNlYTlHRD44QHRgZThn
dmE4OyQ5ej0qS14pU19Way05fkxRTTlkSnQybWh3I2ZKeWRUCnpieGtCMVliMzF+YGF1R080ZyRE
JiZUMGVyJSNZUzg5Qm1zLWlCRFQjSHhUTVplTCZQaW4mSzZjSlpxcGJvMGlAJQp6bDJRSGVtVzJp
NiN2e0cqZXM8KTN7WWlyKiZSY05mPVNDUnhoTlcqbVdAQnNhKlBadzRrNj0hWCYmUjB+JmZxeS0K
ej1tJUk2IUVqaVNOUDxGaUtgQXNjaT5SYW9FWVhfTHkzI3o/MUA2ZV9rek1JPjE5bkV3UClyPHsp
JDw2IU41cm1qCnpWd1VBZGp0LW8qeWhQanlgN1Z7cEBTJl5yVHlAbyskQHdtJCNvPWA/b3hXPEU5
SFc+ZTR8RzNOaHZ6bEA7V09nUwp6OHZjKysqdiZ9ZHZxRTNzUHA5KHxmRT9zMjBpMEx9NDVMfFA2
Slp4QzZ6dD0yJGtoKGR2MSZ4c3pEU3tzUjR0UT0KeiVldzlReUhicCo1KSslQ0xLWDR0aCNWY2Nm
OXNfQ0djd3ZnX1U2Y0AhOVNqI0s2LWFKZV5eP2QjWmN7VDxuQWNVCnoydUBeMks3NGIreT5DSV4+
M0wpJGVLI307XjVsVTgoQ0FRQzZNYXtCLXhjYitrKnEkeD89VjlyYmlHU2xeI3koSQp6WnQ7JEJI
fipnZ1EqcVRwYHJIU0dyKURkJFNmcGR4SUEmWG9tPmA0bEs7R2EkcWBQQyUyMDdWLXtNSkZiYnA8
MEIKekJ8OW9UcUB8PH1maXxKPjRjS3NDISlFYlkoJFZgNSt8UGI4KSZ9WHsmd0YoUGYoXnhnYGNJ
dEV0NGBMQTVoX2U+CnoyTz91WmdeeV9wQjdndWdKSHxDLT53KXVMbUZSQU5XMkVtQF8mX1dpKmw+
V29qck0pK1VHWkJWeyl2d1ZKeD50Tgp6PGRDMCo9NFlpbTQqPVV4dDVKeW9uTlF8MilqNWFxZnV3
ck1gOVh+ZmA5VkZZfDhTWU9YTHZuKE1EbCQyM2lJZ0sKenZPUSgjJD5BeClUTzw+YTt8Pn5BN1Vt
THhSdTRRdkxOU3hkdUZ4fCNULWw7b3AqXiNWSnU4cCp0O2luO09+NkJCCnpnRntNRUR4RGpsV2tw
Kk1INEAxM0coLXh4RSpJazI+Nz1iVXFeUkhGeileNX5EZE9LZkpSOS1NdSFJWXtyTUxWTQp6RShE
SyM5aTxHd3tiQXxDNjZnSlh7Iyp2Q09kMXZqMWt6e0dMTnstcjglOU9aJW9XKHQ8ezhpeDchPjN7
TlM+Z1gKekFwKG56a1d0YGVUJSFXVz8mVkVOQjl8fTNzNUVZK1ZmczdRLUs+OSNTfmxtIz4pM2BI
XzJsOTRFcXE7bl9xdG9xCnpLbio5Py0tdipYQ29BeT4hMSt4cygyfTBwbWpGZGFZR1c5VUwzLTNB
cyN3eVBsQColITtCbnkyMms+ZDc4NWNmQAp6YmhZT3oxUyZsRjxTaXJyJEIzbld6JVN5JmB0VmhM
ez9AUDJnYDt3VikpNm5LLUtCZ0AySkt2JmJ9bGskJXBOaWsKemthX3w8TzE0cj9sdERmPkQ5byNR
OGpjKmtLJSRJM3JXUVN0JTktVUxVQGVzPkBqKU92djZeY3tWMnZOTFZ8ZzQkCnpYTD13Zl58SW9I
Q05wJHwmWU57Nz87YSEkNno8WUVFYFN7bDNPfmgjNW1hQG1SWjlHNyRpbEhjb3EzV3pvdmIldAp6
MjZfeUQoZjt2YE1fTC1pY18ydWduOGFCX196KUohJHo3LW5sO1B7Zz5PUl9xNXtCcTwtVXNnT00/
QmBaIU1VOHkKempgamxpVjU1RFluaDEqXypOOVVsPU1HUzAzMzNNRnBifU4jYCo2OWU4V2pYI2Zn
azB1IXpse3hONXchZHwzVUpCCnpCNFNlaElgbCFaMGdjTW93fj9ucDMpVFhnNUUxJU80fEArT25o
dzxhZlEmKmVlcjJveXYpUUBiTn0yPmMpNit4Qwp6N0ZKPFNCblJBY2AkVXNyZkNvWE1lWDwwdjBA
TXJtZlZ9PHl4cjJtfWx1eEp9OGJnR0hZOSsyUCFmZ1d4Qz93Y3sKenpxbnBSeUNgO19GZjx7OFM8
byVBIUR4IyVUTDkzQS17dX1ZMDUkci1tJGBvcmVLZFRYSDE/RjJqV2AjJGtSa2d6Cnp4akY9XzdO
fUFQI3k3d1BuPG9UdDBhM2N9KXUzYFlZJUBEZjBCR3FsIzNMVE1Pd24rYUhfS0A0ajNsMSs1Smdk
eQp6QWRpN1ZzU299blNWVE5se19fZVZ5aWxPUyZiSiREXj49RUxoKF9OOStaXmxXPT08ZyQ+OEhe
VXY0MUlxZCphbioKemxZVFlyJH02SGk8ci14VUAoMnVFbHJaa2FARWptUTIxaWh6SSl9PlFNYlk2
UmBAQVZydGdjVHxyYTRnS1RGbExuCnpWQW0hSmJ+VlN5RCNHS0JOT3xLPUozXylxTHgpNSZaemZz
ays7S3spQVo8cV4wX1dZUmA/WUlQNExlZV4yIytZSAp6Tk0xenI+WUVxVT0rMnImYHNSQCVRPUJR
YlVFaComUE1OfD93dCEyekU/QzNGRExBWmVWY1NPIUFHP2JWZ1h7MkQKenY1fjcwZmdPWEwrPTJN
fUF9VDhMQkQydDIye1klWkszK2U7SyQobkRfe2RCM2ZNbHRMWVckQz0pTUdWUDVMMV4rCnpRb1pJ
OzgkS1FpO0RJKUFmZDQmNyljWW14RlNPR0dhUVJ8I1Q/fTFqWjI+ezJoRERGQEttdW1eVnQkTWlE
JnVPeQp6cGg0Wl5eWW53YnZTUllARHhHJjtzVzNlRUR8ZFZhYzhve3gkZEFhNnBlS1NDUDxsa2xB
c1UxZEswIWRoP1pBRjEKemVBdnhBRVpUcUgxc0RHT2ZnN1hJdVA3R1pjWVdRU0VqeTJHK0BoRldw
TFZyLUFDPjtsZGlPbUNGMVlaJThGQldnCnp4NUlVcE9JRWdRSmhwUi0oJmN+QVhJMzYxKHM4P2xe
OHV9SW5NIT5uaC1MVkpEUUBxeWo1Yks/bT1rS1I3UV4kJgp6KUZ4JExzeVJFcmlBSkZiZEFPN01C
fEp8RHdWKjJiUUtadkBrPkxfIUdneG1kZ3kxIX1yVnpmP0EqMVlyPn1DTjMKekIjT2IqaXA/dWhz
RDhwT2IzeHBFeFpmV01gK3cqVT9fbThxXz1kVCp1PVZ3dSZ3Qmg1Z18mKE9UbFJvST1WRjx4CnpU
b3RQY2AwTUtKX05ATU1TSSRyNns9fXlPSEY4e1QyOzVnKWVQNXNmbj5CJXd3ZFM8MD0wTG91RGVr
YjMmUkB6aQp6czJUT1lRfHxZOyVEczQyTT82akNZfmpsb2VKUDs7Si15PyZeb15TIUJTeHl1PDlS
P2Q/RURYfHt0RCYqY21KcXQKekNIdSpFQ2J9UDlleW5VTFJaRDB4UCYmU2xhczdiaSg4eHBaIyFC
NGVGbVdnVkEpdFVzNUtUWkNMaV9gOTEkPjhkCno5djtGI3BPb2k3cFRvMGhKV2NkMERjJU9zbjR8
cEp6NEkkcmppRVBfLUdlfXNRTEtqaUBqIzljOztTaT9La1gwMQp6NT18eyF3Z00tYGVyK3QoTHtY
fVUqZEpBRTRaRHE4WkFkOyZBVV8kM1J2PS01czNvbDEyTFZANXd+OC1OelVBPWoKenR0emphIzJL
RHlRR3NxbU5iSXZDYmNPRTNKN3NJXkhHfis2O3g8SDkocDM2PylUZiQldFdTSyZGeFVWcDw0NSgw
CnopKHUpWVBTcXB5XzZRPko9OztOY0ooNEdrUTYwM2sqKFp6OzlfY2M5Z2ViJEVNcmZadXoja3E3
QWNPREspPkQ8VQp6UTtpTnZsMztXd3d+e19qSVZ2UWZDfVF4JEcydCFlP1dlSnIqIUNkaSh1cit7
NG03IyN5dy0pJGNLKD5JTzR8Y0wKent2NCFKd0I0aXQyMFVxdChXVm9kc3oxNyQ0KTNOP2YwTzBg
KWZgSSQxMjhhNCVtV3lYQEN6bGZSSDhBLUFONWx+CnoxUihaQytmTVY7aTE/QDZ0VDx9VWQmbXQk
X3lMflZQPzxOemJBVjFkR3E1bHdkSEtkeENleU1HSkBoMktBLT48JQp6K31vR2gyOUlnO3dyIX5z
aGsqTSpSJjg2ZVg0QCglbktnTmlDd1JXPVh4fVA1TEVoX1ZQYnpJaV9TKXppazBZRmQKel5ydytJ
LWpIaGcycmltMSRMVFNLbT1oPUlpQGAoU2BGamlHSnBqPUM1aV58ZFpgNl88RlJ6VE9yIT1DSUNp
aUNpCnp4UXRQcl92VSRqcHRjXlJ7OzJxKChWeXIyKXdPa34pfG1SfTlecUxVeGQ1ZDtlTj14Njgl
YjIxcUJFJUlnWk9VfQp6U0crVWV5TlVndzlJaG1nZ05NZllnSi09b0coKVJHNSZfdGNuK3dFXnNH
QUZlS0FqeXdycDhOWEpVOSVHIUtnNEcKenYwfHZhdU8/SXZFZmJnX2VnVVd6Xz5yRHlsO3JpXkRW
aGNPOW5GKzxOY298TnVwYmxoJGtVKnRGbGY8ISVGe1VjCnopQyluTFNHPD1YNXFVSkJJbTE8Uyhq
a1clXkl1NndGbkdOdGpXX0RRTCQhdTZXZTc+YExMeGhBSlRAMW0rekxlWQp6MGg+Yjwyem9AWSR8
eXBJYiNvTTxxeG5jWjkhMlFyU3dPWEBZNG5gazwmKmZzeyh2bmJhdHpNYHEqNjJoUFZyRWkKentn
eF5LWFZ8NjNzXk5pcEw2cWB6RCYqQmVSZm0mMihveVFrISlCeV5ydm1UNzc0WldSYm4yJSZAJnk2
JWw0S0BnCno/fkxiSSMtSjFJOFI7JFJhUVNsLXhDbHJSVl8ldUowOVlxPDdeUDNAdmModXIoVE8x
bEw1K0NgNmpwMXBsI0xSPwp6YHpTZEdoPmNPZkNuNSlSNyk4NDk0MjRFSzltKHlMSVlBb1k2QHV7
UlVmPzsocD14OXRQQHZjdFFOfkJuam9fS14KejVyKClAZ2pKcCFSSHExIXREek5+bCVtM15OJUk5
VlNkMmdEcFUyLW57Oz5SX2Q+VTRnbX5hKTNhMDNTSl57Nz04CnpzUkJuTFdxRV5Da1kkRk1NVEs7
WWRTJm9wNlppd2gqSlErYzdYdS14KlJNckxSclNJXihIdzkqWGxgXis7MTQ/OAp6QylrYXJFPnxo
MiokXjxFM0BDQlE0RTJUVD47bUBaUTVlWENifT1NdztVOUJkeCRGKEw+KD1YQGVEYj1Fd3psVWsK
enxOTzdUIVBSVWtgaVN2PVp+NmFlP1BgT2Z5M1gpQCo5OEYpUTR0WG8qQUdERCErck9BMGZ7SjVn
VHp3WE02bEslCnpCN3pEUyE0RGRuclk1bn04Zig/MENLXnFuWCVuaiF0K0IqOUhjZjJEd3ZPb30q
MGxOUGJleFJpa0JzZCZYe1kwNAp6cHdHR1lTO2ZTRHtLKVF9ZWN5QkxJblF+fC1SSXVEX3VPO2R2
KTI2UTlLQ1RRVyRBYEBvKjkjenZhMFZYbFZZeDEKelpudz8hYERkZD8ySHBERW0oN3crIygmaX5J
Mmt4R0preldYZ1JVOWRqem5CQitrP21rbkJmZWJmRTVYe1V2QDMmCnp5My02Q2FwcEZ7KnM7SF9I
U0BXfmpZbUlZaVRUZlAqMFFOfng4blo3MD5LQzRMS2shNSNnOSV8QHRZZW5TJVRaTAp6ejhpPGwy
aiZ9amVzNXZuVVE+ZzQ7dWYzbCs2Nip+LUZ4dyRnQXIleHFzYDB8SlUrcHNvNG55ckZ5PCVFWlVj
dDQKem5DXlRHUm1XYjk/fXw9JHdeVCg2T2Y1eUJzK0w0dyQte00teU93a3diZnFMI3dZYmclWWUl
Sn5TRzhwS1RgVmpWCnpVdl43WCMmfVFEajc1KmQqRkFLdyg+PWBYWUI2bXZxNVFARThgflpuUns5
VFhKbnFLdmROVmxAXkxpY0dVKTtZaAp6P2dQeGlGPCN7RGRtQ3NkN25qbGh4Y3l6K19qY1J8SGoq
aDRkbVdIb1lsPVl8NUhQI1ppTXpJJGxLNDMoMSRXQyoKemlLMmdJSUVjNzgmZ1ZNUFkoclU3LVg3
NUc/IWhRTTh3O01JOVpiX3RIeVF6WGBnQCZsTjhLP3kjdiN2Mjx+OHxRCnojPiNaYzhqckdlSiNK
dl5nS287MUd7a00pJGJzY3pjRSN9VENTI2NCQ0F3dSg1SVNyJS1aY0FQZnQpYTQrVz9JSQp6eSt9
OVpWYDtrP1VwRjh2d2s/TD1qY3JEYzEjVU88eCRRYiViQHhhcl5nO2gybkVhLWx1QEorKmZWNV9X
U2JRUk0KenZvQihDdG1vNEkyRXpmUW9BJC1GOEhzclI3MDYxK1YjcEVQamByYWBfRXVpSSZCaGxQ
PURGVzBwTVd4RVVvMXMlCnpBO2ZXO2srRVI4JilOQUs5VEgta1o7Y2YtQlAxfip1bzJ1SF87I3xH
Wl5Kbmh2JWo0JF54QHN7WUJaenIlfjF+Nwp6KnVVQDJ3PChEOz9oUzBpYWc0cWE9aU91LWBmcVJY
JTNQX0QkS3xrR2xzO0Y7d2EwYkFiJHc5NXB6MSoleVZ1NHcKeiM+M31OZGAwfH4hUFNGJTI0NzNx
byM7KWhQdSFpOWx2SShfb3BnUTMxNERLVXh0ZCYtKyV0NlMoRGckUHJ4ZDV1CnpyKSo3bWY3cVc9
dDVkc0VGQXEte287IVReaF9uJilCaTxkRUs1fjBuYSN9OyQ9fjIwKGNCVkleemRPMm1ecD9Acgp6
RzlucTlHdFExRjdfKD4wQ3oofjVuPSgmalVlNWU1RD1ve0xIOXU9aCl+VCQmV18+KDFXJGREe2hz
SXRYPU50RVcKemM1MyQ0PzJwRCpqKD5qcVl2WnFZO3l1JG1tN1hAdzQkcUFWRDxfPHJJQlZraE5z
bWxBSGFUdGImZEZERShzSF9VCnpfVGArJnh0X1p5dz4kVDI/ek95PnlwPyR1ciRuWVNQVSlRKm50
RXdrK3E5NEpvQVhjUC16PXlvKmkoNDZATT0rMAp6KGF4ZnEofkc/cy1jeT5aa0xYKnoxWWZWZS1v
R1B8OEYoUys0bUpoUGhTRWNlTG5wJlk7cmo1QUBGJFUpJGpOOSUKenZeTSY1Xmlwdn5Ac2k+IyNn
fEo4Tjsqc2FRYVpEPXglQi1SNipGRWNPRCZzUWNCYnQ1Sj5Ha3NvI35vY0tsNWJ5CnojUGFVKXp0
N3F7PnREMEdYYUJSSnc0JU9aemtUKzQ1Nyg1b2p+TVZvNWE2Z207TlNxaXNkKXt2UFYqYyQoKWdz
bgp6Nl8+ZDIqdzkqdW40PTR4bDVlOCFMY2lASD5Wd1IrSCs0NjkySyVWVFNzTnVwSj5DaypHM3A2
Y3hfbjRJNSZCSykKekwjKVpKUk8tcGwxSnAtQ3VjZHo4Tl9XTDxfXnN1Mj9jQV9vTCh6KVdVMkI/
S21iSkhhNmZKOVMjaS00OCUtUWIzCnpsfGMqRV49ITV9YWgzMmdnM3QwfCNIPTQkMUdhaUZiQVBH
VDIwMEo7KkYhaD9TRGAxKzFNZX1iQGl4fk1GQHoyfgp6dyVxRSM+USFyemRwVkFWQkZ0ODsjdEg7
QUlFJndsVEVBJGBoaUBHWlZvT29GMzg0a31EXk8rdUB+P21nYF8qPFcKemlqclIybUo7aUopVj5o
cU83NHBGUyl7XkdWZzBgcmNzXkNgMGxPVT91Jn58VTJMby1ZdjBMRi1jLXp1dTxtfCorCnorYX57
ZHc5K1kyZyF4TmVTbF4xNHRwY1hXKH1lYiF3bGBwcDdoeDI9MkAmamZBST8+R3YtZnx1XjZ0T1gt
QlVNTQp6PTNSdlN5JkF2cjh2T24odzdMVlMje08xMiRMRW59QXpJdmtfTF9aU1NteH1MYHxTOF9l
KStKRUpsSVBTSk9lTmMKekVYS1lGQWpSUWgwN3MoeiFwZEZ0QlUyfGY7UUt1c3IhRnhiWG9wJVU3
JCpgWkBvO3tYQWM+TUJMaj09fTtuTDZhCno/R0JkXyo1NUZ4SDRVQXI+M0JleEEhOCZ7dlNjaH5g
PGZYQzkoWGpHRDNmSGU8WTNaazleNjdzI2pza3F0QzIkVgp6NG99QSFUZHtfX1VqaD04NVQ/M0NC
I0lUU09RYU0ldlNwWkdJOCh9SG1kd1RrbHtyIT1VJT5oT1VhNjlLUVo0dCUKemUybHhVa3VTKnRg
TGNYUD91V3lrZztGYlp2UGl4dml7KSN3TD5ARkFkWmE7P3AtWD9jR3wzNyRyZmlYd3ZQeEQ8Cnp0
RiVlR3RkV09ndCNuQUl0ZHNTIUt7aVU0ZHxlKXZQNFckU003fUFIJUN9XipKY2o/MkN1RUMhVGV7
XnR2UUBxLQp6K3ZHe3ZGNWczVSlifXdeYyRlJiFye3JuKmYkV2lJPFhQRChge1glWDF8Tns7PCVq
WnU5RiMteXFXbm1IRUhCQisKel87Pm49OUZlMVBPbnhkb2F2YWxkZWtMZDc3Mkp2WlR6Y2hJSVc1
MUNHWl4pN1IoPmgzJCo8JmZjfCo/MHVqTXliCnorenZ+PiVKMWEmYXNnZSE3dilYKTE2Q3E8T1d1
fUNAPCtLV0A1SX11Ql58dTN0O09zMFJ5ZVpVWW9yZWVsPWdQUwp6ZVRANGwxQyY5XjVNYEokTEsm
cWpjY2liPGstPHYkb09OczQ/TVNlNHdrPDxtcj9SbHVESFFoRm5kZismYlYlQz4Kek5aU1pWeUsr
ZG9hITkqIU5We0BLOCl1R0o/WiFhYl8+amE9Ozs3dmlxIVVreHJeSGpARGUtKjdeQVhRU0pSazlW
CnojUGJvKU0/ND8jZThscSsmcmR1KkAlK1R8NlZGZFBLa0B2O15BcGNjSlV7VVEjMHdCRkspZTkp
MD5sZHRGRj9FaQp6QGRDc1A1SENvKUFufTY0M2xjOSN5ZGQjeyMwd0hITlczOE5MY3xMWkNxJGVP
YVlEb2k1aHB+UDVPRzRwMkBAd3cKenlUWmZeNkU5ND5GITkyfjNsbEYpeWZFPTEjRVRGd0xjOXBe
QkUqWGpGRzlRc0BnbF5GNUhDdStERGs0aWl4TXdOCnp5ZVJSYSNFVXczTzVRN1p1aklYWW9wTVY0
RUJVWUZ6bW9xLXt3dypmPGlDPnRPOHpWUHVqSWR5fDRSTlZgTEU9Xgp6bEspRW5FQlVZRnptb3Et
e3d3KmY8aUM+dE84elZQdWpJZHl8NFJOVmBIdit0JjNSJnVsSylFbkVCVVlGem1vcS0Kent3dypm
PGlDPnRPOHpWUHVqSVh3X2UkTz9kOVVPPnkjRnxNa29RWDdEfHhUdnlee0F6LVlhPnBBJV9vMnt3
dypmCno8aUM+dE84elZQdWpJZHl8NFJOVmBMRT1ebEspRW5WQChMaFVoLWViZTxsQnd7OCNjeyQk
dXNQbUhiIW9VJigoWgp6fENSaCNAP1hoK0NJNk5EJEdtWEk0KVJ+Z2U8bEFsI2B+eXE5QklAIWpf
fmkoRUIjT08kZGxIKm9gam0oPDA5TVoKcGojdEwjKkd9azN0KChgQXdnQWViYj5uKkNeQjMzRl5g
enpGK0MmeXl0dnpPMHt8MSVCNnhzaikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVu
bmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBo
aWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzU0MTgyYWE1ZDRkMWFi
M2M5MTcxOTc2YjYxNWMxZGNiMWRjMTg3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMzMyMAp6
Y21ZJjxWe2omMnZ+X0lUbiVFUUR3cnl2VU9sJig3K3FQfW53ciVUKUAjWHopKXZkYXhZU2xoI15+
VUtzZkJKT3EKemM5ajxzMHxFeTY4UU5HdCRwNl9xZiZiekUmSHdLWjZIfTF8MHN7OD9RU3R1NkFK
elVfYVM+Nm1BMSg4VDZhMFYoCno3enprWFVZVVhFTjkrOUkhYXAhREZPZCMxd2xUQj0wc3tHPXpf
PnJ3TEZ5SmQtUHB5NjJuWSFEemckck5BQyNiPgp6V19JUV9LTnsoZVUpXyhOc2Q2SmppTWdUVVBi
fUUjfE1+I3xBKD5tZG9CZTNKS3RPVkVLdFRVXjJuZCpvRWxkcWYKemZQaj1QZkJhWn16eUBOWkBu
IUtOMHMkISN7cVg8bGtpc3k1QXpJaXR4JjNIN0tRKypQWUNRSiFBeEIlPTh2cHBJCnpERXcjQEtX
SnIlUUlvU1Zibzs1UmB0Y0xAVXB4XkE3O3hAaUxtTntkQWhuLWR6eVV3Jl5qZlMqeVJ4JSZiT0hp
Vwp6Jjs4KjdLZXJPcENSU2B8PVYxQzF0RmArUk5CPHZjP2BoQ25PXnRybXRjfj07QV53OSNqbmVV
dDFeeGxoQnlheEEKemV8ODJBPE5ranZHYC11cHY0TSQhITdpdX5HejV9P2twV28wdyFrRkZAb3lq
P18pPWhhQWZXJVFuXn5HPF9WJGtWCnpfRD5FdGBUUDQ1IXc1MGM4IXtUTDEwUkFHKWRuaXUqenJS
XkxUcm59Tyt0UmIweGR+MEUmPkgoJDBiclNHSippWAp6OGJVQXM8ZH0tJW1tVi1jOG9zZXZtazZJ
JTVVQzd2aDAtYnkpYUA3JnkmP2szPFo5d1RnVClVfCpsS3NWQVFfck0KeismeFhQZ204PygmJipz
RDRTR3JVNlZ9RFVeVjxGRCtXYlZnQ0w7LUQrOHtPTlAzeHxiKEs/Wn1GcVF5REE4bEVLCnpmeGNS
KExPVCp6Y1dCWXdlcUNpJXQ8aDJ2PWRINGsjYSYtYWM0O2dUIz1rJSNwZjFoeHxIVSNWZ2VWK29B
QykwNAp6Njw/IUVXan0qKjIwM1JUPSM1QHdtNzdQRmVJWCN1PD9vTHVoen40PmxwaEV6bVRIaVdC
NzJgYW5MdjRWdUVZfl8KemF9V1ZadV56VDtSLX55JlR+QllTaUo+MDBeT35ncGw5cSR6SEklWT5M
aHNyLU1hT3JiJXklcXwoNDJwWDw0YmNlCnomJVMoRUlZR3h9cTh+QDRwWCpFS2RTP2g9U0kmdEV2
YEdHTTgpQVNjTDA7VX1icm4xMHY7fnAyOzFOT24yVW0kVwp6KlU9aSVWdXdCUnpAWjExcUtyKHFn
Tzh2ciomWDV7PzEyZGR7NipsYFlwYD9rM01EY2loJXFJK2chcVYybjYxTHsKelMtODB5OUgtTm1y
TmBzU1VDKnAkbHV0LXdgP255Yipnb1lYbmlfemYzb2tDQkF7enJDd1hEcV4kRFFCNVU/RFEqCno2
MW8yWDlyNDt5QSE1c05gKWY2cGU5ZThwZ3VIKGNLNSUwLXZNZjk8YXpVUkZnQkBxc085JFJ5UHFq
fVZ6NkM3cAp6ODhJPnpyV1d0aF5Be185d1htSDBuVyR9d285aGZATXQmVio1bTJfVzBaYWN7Qnds
KjNOMFd9N0Q2VjVtT3xBYlQKek1lUGU3YjVkMXFudFdPQikyKGtmSDMrMWhAYHFkPFA7LVlQS3RM
byVue09jPHItZXM7R084R2FMUWNTZztYSytMCnpgempROGx8VUtwbCQ3RT0yeCk+Q2okNyU/V3Ng
NkM9RTt6P3ZCbUZ5KFp1VT4/WktBamRLbkVfJDNpeVpIbHAlXwp6NzctRnRlR1MyeD43cz09UkM9
RWdOYzIwcGl9QjVaWVA/PCo7WW4kN00pPDc7PD45bGpjfFFAfXExSEFYQT4/WFgKenstPD1GWVUq
OFl4X2JtUG4qZXF8KDZ9I1M9S1Z7YHxCWipYbiNCU0VPeFQwbjwyJTNVSmdsTTxsZHFtKXB7R3Zr
Cnp6bnVkSDB7O0Y2TFVkZDI+VmhgRkp4VClOKl9vNm0oOGlIMGglPUZ7Q3paYVo4ajNkXnh7S1Qw
YlJDX19eNzlrbwp6PXRyK2NBX3toQmdib3ArZ3J9cFRqZGg0bFI5T0dKWUlEe2YtaDdUZEZWc1RZ
ckopc1ZMKUBgTmVzfG1SSlNDQlEKejF2WTtEe2NUUz1NSzxNbTxHSiZgJT9tZnRfIzVzT1psJktZ
dmJSdD1YYmRoSEpsbVQ9bitmTzNyZ3BOZmJ9VyZECnokR1VnR3Z+THQybWxsO0w4QDBmUWdrcEdP
bG9vS3N8RDkmVmBEQkxzanZCJSFUMEZ8SW0lXy1qRml0NVdSKEZEPwp6cSp8JCZ8SDIlODVeRlJ7
ZU8qcHNBYEx1MENVYkZqU1dwJX5kcHNDR0ReZ1RTVFI3TkNTcUxOQSYpYWtHM2V5UXkKejYxfktS
RDlARH1KdlJYYTVBaWtrdTlZUyN2KTBkOzw+dShXeSV8ZX5JeX5RSWk/S0pFQn5vWEtIYkVSYk1T
V2J9CnpaJDRvTG82UTchSlk3RSZuU245OXNhZGFsM1BNVn57NTQ4Pk1wQUhZMkgxVGBaY21GOyU3
cCpHZEApWjJYJFYlVgp6JDFiWVVgYTd7Ti0mOGIoN0VLeGFEXyN7MnlOSSZ7dDNyeWdMSVFoOGkl
d2R0UV5BNFFXUHdAQVVrSVpqU3R5UnkKenQ2Z2ZWUH0keHokd300VE8hfjkxMGdXYz91anJ8SWAl
cnhvKn5aUkpqMCl8YzJrZjB0YjxKJGIjNWY9NGM4MXgoCnpaJTcpRTs4TWthN1JIPGpnb2Y4bE1h
RSZ7RzhSZW5oIWt1K2hWNWh4dWNhP1VIYms3OTJ8Nykqcnt8ZnBHdlhEQAp6cjlpUUkqekt1Pkh9
akxpKj9oNyNhfXIjM1VjSWglPVJxKzlPeTx9OWdPWTJ2eSRAS31peFRpby00WD1NMUA5cUkKel49
SyFxej1oP2JvYzchRG4mTzwha2lPcSN2NUcjPm88SmBYdmhNeUJEOFZ5e2FPPE8+aVpxKmFCaDRo
NyprWGhPCno+cGNYay0+MERTTHBgSDhnQXlgOWltajNSclR3WU1MbiV+YXgyUjt5NnokUyNidj9k
WGgkbiFme0klfEY2Q1V6SAp6TmdsSnImaVgoT2RoT3xNLXppamlvckxSaWtMITRiJnY8LUk7Y2Iy
VSo5QWhKcWc2S20wfENAM1VQaTNWdUllSEIKekU8VkFyZXtkYk1PIWc+dkpra15kNzY4VjstVTw5
bjM5PGZTNFohJU9FNlAqKXd8Y2Z+eiZOSjlxPk9FendIZWJWCnpeITs9b2hWTXsrU0ttTm1jKGZI
dU9hak9nKWVaZzRnUDlaP18wcl81QyZ3ZDxfaHhvb18rPDQ4a3daSntZM2tkagp6LWV1UnhiTnRT
NE9Sb1VEd34qMHtkP1lieWJWZipaJmozZjBEZnxwNnd0Z30jKXt6NjB2SElWRFl5dlhZaXF0PEUK
enY0Mm50UkR8ZzY7UXJpQzxnclRGcDVCKUxxZDN8OTgqVkpyJHJTVDZqMWI4WE55RjVgcGBjVldK
ZHgjUmtBIzNlCnpLfmZJMEx2MzRxOX4yXmZ0R1JwVXp0MnxfQ3Noc18hI1dze20lZC18UHF+ZUdm
eE0yLXROT1lReEEpeWJvJnRQcgp6eX1EKn40bShGWSQjcUJoe0psVnxoY1Zrbi1AKDNxY1p7LT1S
NUVNK1NaJlBWSTshYWAheHF6Jmhwe0I4PXdyZTQKemcxPnc1ZkxzdElAO3dQaCtCZDVsZFc/fCNB
SlhEQ2ZSJWVVWWV3XzsmKCtnNi09VGhDP1MzPjh3Nz8/OGNZQHJ4CnpYQU5SV0JPQUNiQTZjQ19s
NCthRiEmTlNLTW1qPEY1MFRlTV4xMT0wJEliT2d1V3grUnk+bUs0UFpvRjdVRyVDNQp6ZilYJWNM
QyY7Pl4kTmRVaGk+fU9hZU9oLTAzUXQ+YztyQk1sOEZYbGg2dSMrVDspYU5RQU03aVltOU13UUF3
USQKemF1Tj9pWEMtPnhmRnw5QT5ZbjNyZk9rVnBtKzgmej9MbXRVY1pURUNkVlA2QEs4TmA9TlZu
JXd2Z1lUP3d2KH5ACnpSUWkxc3lEbl93K2lBdzYqQjJqX0MjKjRPYT0zPj5Ic3hMRnpmYy1scUhp
QldQc0c9dl9ScWZuYV80djY9WHhEagp6Yld2WD1iQ2o0amY+LW1HTGEpXnFUKXlFTU4qQU9hNn1Z
PXo1cl5XIzUrZUIqPU5NWUZMbHhwfGw7VW1rcnlrbW0Kej4xUGJAPWQ3Wk1YaC1wPEB2TlREeyVD
JSR5JVlZTi1WVEQpNSU+NVF2UVA8SXtiZnVOSiEyZ2I2bH5jXmxgcndNCnpHQD00bVdUajM5Xnxm
K0paSk1fQ0BOO3EzLXlHa2smbmRJY1c4KWxxdHxxKGJQXmppZ0c4NzVeKm07Ym01UyhFKAp6JHNj
cT9sKTtmRzZJOHxKXlhhT1Uqa296Uyl+WkV4NiYlYmA7JlMkP04hNkE2VzBZcl5gJkhCbl48bG1v
OE52PW8Kek1KZHQwXnRhNkcrZDhXcCliP35LXlBrZUxAYEYwUSVJRCMzYU1WTlVyS0Z3cHQrWkVJ
YyRXNjVNZmIpPEpZNW01Cno5aFFeYHohUm9tMDtwQ09jV085PmxwTFlKUlM8Tzw5X35JMEZ7SzFr
aXhlRik5WGxQSWVDeGd0MmQ3cmAtbmJaagp6VilmX1VwdlJTdjxWS3A4VjtJfUw3TTheKlcqRy0y
T35ne2BAeWt8e0twVyNzQCo8ZmVCb3w7aWVARHlAaF5+bjkKemNYbWs4YEVlanNiKFBEXkIrS1B7
ZiFebUtsMiomMzd8SW1YbmZTP1VRc21oMmYkMHpoMyZwbyU/fkpzcDBWdWM8CnpZJmEoTUhmeCFt
YHV8TmM2N2Y8VGJaMnIjdj9hRjF3WlNnYGtxVnlRNzNDfXhFXkEyQGx9YiN1bys3NGBhO3kmZQp6
eXB9bjhXYSN5PVlIRUItcmQyUlVEXnFxTFVQJHdRVTlWM1JTYGJqMChnTlEyVCQmRjZ5cXI8bl8h
KCF8MjMqMEcKejdnX3pDRl9VJng5XmNjIUIzaWRUQzlOdz17ZUpPfHxOZWVAaSZZVH0kbDhzSHtN
d2x8endrVnFKRnA+bXVsYz9KCnp1Ym9+IzZnfE1JUyN0TV55PzB+Q2BqVTIjYSNUJFZFR1c7Nkha
SEZXTEVkNkM2Z2ZoVHc2SHc1NlE4KlYrflZXTgp6NEFMIU5kRjY/UXhhVXBzUipaVGhaMjJCckco
KzUtVWQ4amB8OG5eP0hQWjcqTUgkWS1HZFRFeV88fUlwJVVIYCUKekNfeWJrdXZaVGAoKjUtN3pU
U2d0MXktQVhfPTRWcXtfeTFQS3x0PW44SnN6OE5geF4xUiNMKEhmKFNaKFJ9ZXQ9CnoyMD1LMGBp
IXtHVEJ7fkkzJEhaIWZaN1BFMEszbWdybE9qXj1ITGptbHpCe1EhSU5qVTJgNEpodmtWQXJoV0kz
Zwp6MkJGRFJNTnVzeCkwUUs+bi17X0JQTGtPKnRIPHQ2RHooRENWd3socFdnNCRVNm1qV15NPyFi
KUs+P31+Yl4qdDIKekx8QjhAM2EjaXQxR3pGTEc+LWpudENwbm8xVEYwT01zLTMmSUNQZ0FtJGF3
S3s/XzAlKFc/Vz18M1ltPDJCMzk5Cno2P3NPdj1vZEZlRnEtNFpIfmRLfSpBI1cwSV9GJWhPY3kz
QihCPShvUzlOP3JaSzZSKXU4U0ZnWWw2NyVqJFZ6bgp6VDJjb20pRztrNWVqPjUmZihsZEFqZjtE
UTYhNWhPU257Q3szQEhHZ0o8WSN9U0Q9R2tPaHhUWVJSJldaZ1RRaHgKekhfZD1WVDw/dCpOKz5m
eUhIYkN3YjtKV0lObCl0X0BAS21NSCtiazhRYHRVJmZSQm5RKCMpNE5TYWR4RE9aSSh3CnpkRFZg
SVpIVGV2e2wzZXxZSk9qRykhKntRZDNCYmMtb0s+VzJMYlJ7O2Amcjd2PXV1WU59USFqP2JSNnFR
ZjYlWgp6RHxVXkhhUD1EdXcmPDleNHdjSFBNYFZvMGQ4Iz9jd2R1dnQpVyFDWTJ9U3pCQnNCVkRt
U15xTnEpQyQ0ei13IXYKenV8fUdETlUobkNxR1A/bTJuR2g+c283WSMyajxzO29NRCl4enZ6Q0Bv
QUVnXklrRS1IKWFJQWRQRSZkZGJSe0t2Cnp6P1A0THM5UkVQZj9fblAzWTM3dXR0JHhrSzFtT0cl
VGNZd1JMLTgkZ0VKWHVCJnp7VXE8fD9IQm82S0soV2o/Sgp6bjc/bHBPKCg/ZUBvcXoxTD9IRTFW
NDR0R0FKO1JsYipHNzMoLWd2WipRVlZ9KXNEZVlrdHojT0x1Y0hqQ2FgaXoKemojR3tYQWhXQGpx
RGtvKShfKnUxJnYxUWdoRnx3LSEqQjcxbX1wbTBDOW83VGhzPzw0R3pVQ3prRU90Y0ZkKE4pCnpS
LU5LfVdhZkZNRHxZbjlVTkxRUSNwP0JlVXRXSFNJZWF6V3YlU25AcXU5dmZjKCVqazs3YTY3ZzZ9
MnYrM3tOOwp6SSM5VTZkciF8VTE/dkMzbWN3eng1MUUtNyY3MV9zVGM2PHUqJkl2NSZTNXMwQTNr
akNlWTRxRSZaKVAtOVRvRFkKekBfOXRBIVJwTD9qPEwhR0tTbjZWOCl7cElTXmpGPXJsbXpNbFdG
XzRrcGsrUlJ8WjIoUEtfUS0meWhXKigxQVlyCnp6RHVtKnRmZ0I3SGEkPXxBQ2hqI0lWVlBqMWA0
LXpFYVlBJjE0XzR+ZGhUQyFUeyo5PGRiI0ZjaT5TQUY7VUQzbAp6VFdUSmxBUUI0WG9XRHo9cSVW
bitqRVkjQXdUQDlBNTI7dUIqVz5YamU/Zj1gXnMyREorc308d0UpO084dHRLQVYKelZWZGkwRSV6
PUVIOyM0NEVXM1Y3WUdzZUgwU1UzYj1jIXBTVjFKMlgoKjR4ZT1rbkNNaXVWTWhGKWFSVW02Nl5C
Cno8X3EhZm57fH4pUzd1RUg7Sm9XT0oyTXJrcHc2enlpKDNYSnF0QkVvYUVydkhJWXB9SCpqYCgz
TnJ3Jn5gbD42Ygp6WkhjdE8tLXZKcyh2QTZ1MkQhQ35NTVYlWkZfT1dLRVJxWSpMN2JufnB1PmVt
blh+fTt3PnhLc3grSG1sTW9kRCoKelJlN2p4dlNgVHI2dUh6X09gIXx5bGQrVnlLMEZRZCRpY29K
JjZJNUpfQ0B0WWx7IUdNPndnOGV6Ql5zTUZHe1NQCnorfnRPPThETXw2OD4+OGtMe3ZMYSs5c3Ra
VkUyJl5xKGo8YT1QPU1JVVFsPH42cXMzV2hrIVUpOEJhTTdvI3ZXZgp6SElkalV3fkM2QDBXMHIq
bi1+fHlyaTt7fXQ/a3dsYWlwIWEpZWlLTzh4O0coSjFCZE1ecWtGbXsoY1MmQFpKZUUKenhlNnNM
bSFFYDt5TmVufF4/YSV8Rk8mQlFEO1pIQ0l1cmF1USVsR0AkX1QrUWkqfUB7KWx3Z1hYOVMwbCM0
TD1ECnpEMGw4Z1dNKlFSWHghY3lvYDQ3R09GQk5wRElYbnlJbzgwUk1EWCsjI0tabGhfNn0qb1lz
PCNsTXtfRWAqJmF8MAp6OT9JSC1TYUVUPiZXcmltbHhBREcxMj5oM2wkKU08cVNMU0M3K2R5biEj
XjU+bm5vR35GK1E5JXUmX1JZTldWLVMKenU4WmlqMVQzdWRPN3lGKyt5N3FLOD9AUXk7aiY+ZDI5
Z0JyKD1DWjRsS0dacV4/MyNhalMxQ2tkWDd+QkY+Mys+CnpZWlZHI3FwbXpgVD9sNX1xQGpZZTR9
JnRBdUMqe2MtP0p5bmJ3WSpSMHdjKztob3RSITFDQnNIRVZ9SHtwRVZfUQp6UWJze3ZAI3BFc0k8
LWd8eGgjclFKZVhIfWRpYE58a05xakwkVUV+M1NvNTxGQD80cTVNYiFuTDdAbEdgJn4mTVUKenVs
SXBFdEdjJWwpdHpuQnk3STFhSSRzdV5IYXlpWT5aMGJzbC1VVHh0QnZxPUp8Z3UrUlA8Ylo3bUJH
USMlU04zCnpnan4hJiZ0dnZaR3V8clRBMERSc1Y4VFFVLWtQJmZ3YVUhMFU3ayQ7dk51ZWFkPFZV
KHBTWEBub2pFWD5FcmQ4bwp6cSVDdSkxQ1BCejdBPUVFekFVUnxZQz1JVTklaHZ0LU01cyR2UH15
WWJyUzhfeEVmbkRGQ0l+ayZ7ej88IUcxIUUKekteaVpRZStiSGZgNyFJSFhRODNySmQjMX01KX4l
Y18mK3V4SU5ONEJLM3tKZld1ZXpZcy1YTVJId29CRD53JGx4CnprSGwkJD5sNnc5RTw9JWgmbX1w
MERjVStmR1BNYGQoJGlHbytTM2ZKaGF5cGNJRTJ5VXs1SDwwSENnb0ZLe0dMZQp6Q1ZEK1A5ZV9l
dFhfSDlfdDZ4Yz9jPz43QHBiO1RPZjxkbX04JV9uSEopYEkoRn1jISRPRFRLOXVaaWxiTncydV8K
emViOEMqSHlHTU5CZXlAM1FVcmUpYDk0K2BXN3EoekxiSEA3KylYLXtUJCE9cCRLPjYlciYyb05E
YFZMNjgyWUBICnpvOWNzfHZAJD9CWmJtOztUZUkmMWF8aERqcnlnaGVgTEFISFl0Umg9VmBHOzgm
aEg9dV9SKFkxcHYlbj1MSF4zXgp6Rmt2SXM+Vn4zYVBeMmM5Ymp0JEhJISZLSXNIRjs8NkdHVjwm
Y3MzJmgmITcmRl8wVEpyVypWXkZgP2g0ejRiOVAKeilzaHJWT0lxO2duQnRQRTh4eXxjP0IrNVFo
ZTl2PUF7cTAkXzhpP2duPlUtIzNjTWhkRFYjcilnZyRqQlNIdXdrCnprfWdyeWF3VDUpSHxpOGdQ
MUNXMHRHcjNzS1Z2U0g9QzttS1ltRXhpJjwjbEtRYnhiVmZoNzJwY1E3b1J2WEIlPQp6ajFPWHpC
b3owbnFTd2UpP2RVRXxOMGRBYEptMCgoPSZrJHBgPGhSfTRlaVBzd28kOWFQeXhMTzRpfiFnPW1u
VHgKekU+TDFjKT0+TW8qYX1MSnh+Kz47MnRjalNoK0cxcGc1WTZQT31wajgrO0Q8aSUoRXBkakRI
elZhNV5QKEghYVJOCnpERzlhSjs7V09pT0d6QjhYKU5mOGhSVXxJT2pjU0RSbi0yail6XmMtT3pM
c1dkPkxYYzRMYS1renhpe2RQU2lKNwp6ODxHT0l7aX5SRjFCcGRDdFRzOyNTfkZCYSFZN0A9MXtk
KFdaTUpJR15EKFVKeF9aK1Z2K2NON1ZWSUFKTTM4RmAKeiZ3IWhkQ2w4Zyt3ejlOcG5CPkpDPnB5
Y2lfdGB4c0kzXyp6RCRXITxoZFc2JFE5VWEtenlvMjVJJkZybEh1e3xfCnpZcCMwY2x2SDJLcy1P
eT9MeCFufUU3am9OKVF+MGNEfSF9V3Jidjxydl9hWDx5JVchJjElOD19Vnd8KD8/K3shPAp6R0dw
QkVeTWR0Y3BBPjxqcWNvQT05OT4qJDw0dFhWUHxMeWQ7TEFJeyg/aDJDdyVkREBfO2xILWpIZTlT
K2kqNEUKejRtbSs9eXhQMztmam1SY00rdGo1V0skUS05XyghdyY0P1p1e34rdj1vfG88RkB7d0R4
eyFHXnRtVm1rT1Y1dU9CCnpoJFFnQUZENENlRG4+YHZ2S2VZX20mdXc+aVVPaHJuKTN3cyZfNnZ4
SHBNK2hDWXh9b3NDYzBZLVR5cTB6PGhaWAp6ZnBDUS17OE92R3Bad2NXXmYpfUxvKz5fSEg/bHc5
cz1RTSstUXtnUXh+Rm9jSzlqITghbXRiTlgmekJSMFh0JGwKenZFcnlhJFhOSkBtMkJAaWU0NSha
KDE5P1MwfGpARWVqPXp3MGdFPz9ZVmx3cDRMU2w3VkhVSG9vfExyYUZmMDBXCnpuYnc8fWVASTxI
Ync7KTtXN1VDYkRnTSZ3SUdrKiRFYDA4STg+VXplcyhmdX1uPHtWZFNOb3xUYCk3YXhuSjJFMwp6
R04tSz55d2pOX3F2cVNZUyszKFRpZnR9QWMrVGh+Vil3fiNGMTNqO0R+JGlVRV4/enlybTdSO0sh
RlZBZndmNCsKemdFZTUjcTY1JjJfQDJQOVhpMEBJektLPGtBciE8RFBqUT14Rk9hTE4tcnJ0Ujdn
YzNSS3t+Zmhqd2RmSCZjc0tqCnphWmUxTTR8YjYxNm9HaHxQbEsheWxxU2JWKyVCa1VmaDZMTVFC
UERIZWRXMVJQUk5CczZiQm9hLWI7TjYre21iUwp6ISRORCFabWdGV21vfWhUZnh2aW5FfGd7QVVg
fjhRMHphKz1aOGMwbj07emlqYTxFdmprQD84ME00cnJUI1pRUk8KenJCeT9WZ0RAWmprJVhRYjVV
Mj5CJE1yPXQ3N3pqRHdecnkqYEx+aSUzaGp2XjZsfT9nTVRqbm1IUE55UkQhUkU/CnpWemVDPmdr
RnVXPlY1UHxtcyY1R1Q0T0BOTS1taEN4K2EhZjApTFFzREFzeyFpKGNFOU92OGo5T3R+UyRTWF5U
dQp6YnZ2QH5jZW45ZkUzWUk+cjJ+fFl5UVZuV3BaLVh+bV5NNk9FJExgbSZNR2BHPTMzWDhEcHJZ
bEJndnJBak4+IykKemY3RjV9VE99T2QjaSVQdnIwOEh4QjFMfEY3TG1zO3Z0O156YExZb0VeSEFs
Y00kKjgwTiFfTmNAWjBDKT56MzchCnpCKjhwQyY3cyMwYiRMKGZiNnp6Yl97aHh5eitfaVlvbmtR
TG58TV5yNDhvT2xYWHQ+ZTd7ekZvMDN3TGhjeExAPgp6cnV4bVpEO1pNNVU/M1JSN25pYGJyI3sj
KUg4NyNLQEZCYkU3ITs9LVl9Yys4IWgzZDVKRXhsejJKYXRRSis/ckgKekVpVUdxQzBqYW9XPihF
dm5oYEhePz5DfEU/O3dkTT43eSE4RDRkVmtDPCt8VDB6UD9MTlpUNCMkVDIyazVtNTA8Cnp6b0FM
TnBaODRZbz1XRWlLXms7ZyMjeT5ucSo3MyVScUpGSk9YJVB7U2luKVVTVjY5bHdndGAtUURKakN7
SWdOZgp6Qlc0YCpzaU5CPUY1aHxGcEhjfW1ZOSZIfWpHdnZsWCF8fn5kSWNfSmA/OyhXc1NpYyhq
VT4zOWlxU3xRN3UhREEKelkma0ElR0BjZHNRdl5GV2dRK054I0E7KHs3dEk+Jm5pZ1MxTjBUYHh6
K21nNkBfe3pUJTtFJVAoYGBqJmJzRVROCnpzKHEoYldGOEtJMU1fZVk2UyUzfTRJLXBiZ0pnREwy
RVlJelA8TSgrY184T053VlFTOTQ+cChLZCg0X0NxV0kwTgp6dDh0X2tiK0gyJmgjNGtUJCNxPkFj
JVoyYmpAME4rTzt5QHNXdiQ4aFU5WnZAcCN1VDdzUH57a0c2ODIwLUt+amMKenp4K3pBVys9Q0Vp
JWt1ZmtZenJBWGkxaEZnNUReOFZmV0pTUXh+MXk+eH4wYkJWJDMzJkZZYGEwODdtK2lAQHIjCnp2
fkwoUHBoT2dpbVdtODF3TF5sWGs5NihlSyQjVT1oUX1wdTwtU3JiQFgpUnpFSzRAdlZMOWN3TkJ2
JkQ3YFAwQAp6cVZAJjcrVDE5YHlWfW9jPm8xUiVkTFBIT3RneWtma1EkbUJLZVpVKj09NT1PO3tg
dDdSVmAmbk9GdXM1SFdhQHsKelhiaHgrVFp4UnY9KEtvfERaZT43VGpoZ2d2eG4yZWQwdW1yWVNs
OGNxMV5oMUdMeHZ+T3ZpJGxkP3x5SFdRYkwwCnohSXZoNXMmVFB6MEteJVZmRTA1JW1KcVFLcz9B
JUh1JVh0QF4+QW9hJEw2fGZwPD5HOyslPnNsZVBQRW5SX3lSTAp6ajt5YzBsQ3lvUCRJY3xnI2JY
KG88JDAwbnNnKiFTMzNhR0hNeChGTDFJWkttbTIoMzspOHY8VVlCKzU9UDZ3c2cKelNuaUYmI2ZQ
dDJMe1hzRy1mUVRUXyMkaXZQcF90XihhaEtkKFJoKDhPdXxUbVVuR0pmSFU8ZzBLb0FedD57QkVo
CnpxKzB9O18zZFluTylnJjhybjJwfkVzZ2gmNWl5NH1UY2BzI2woTlFWUCpCYC1zKFRzZ2IlPUUq
eCFgdk5Kay1gawp6K2ZtKDdRY2FlXzA9emxqPDB+MkYpc31hN3RrblRUYGNkb18pZzs5QENYNn1T
eCh0WjxMe184ZV9JWEUmOGUyNlYKejtDTFModF5UKWlNKjNRKitfVUJNbSFMJXwjLUpaKSE4VD83
cVoxZmQpOSU+LXZCWGg5ZVZgLUNebDN1VF8ma2tfCnp5IVFHcj9pOXFtR2FKYDAzYFZUS14pZVlk
NDNwRCM2IU53SnIwQj16alF6NXBEVkl4cVBzcGZHeGM1MjdjS3VOfQp6TSswMnR6dz8oKE9qZnNo
MG1oKSFFc0U4eXokQEIqenY1TEN7QH5EU1dpZV9DS3RkXyUzJE13OGEoKXAoSUREfGcKekVgYUdq
U1htYEJnZ1h8UzBJejg9RFF3V3E3WT5uSD1sMmdGNiZnSFk5PTR7VUApKiY+YTVMZyRpNnJgTyFI
fWRECnpXO1ZMcj9jQElTVFp6LVhedy1yKU5zSnoqN0lrKjRMeTBpIUJxe1pkO3JGP204ZmtPMU9N
QD5XVyVqJkd2I3ZgJAp6UW1aJGtMZUlCU2NyMzhKYkBsJWNfUFF8O3hCfkg3cWg/amFvb2ZReGwh
TW91JGRpdlRmcFdfNXR7anQ1bjZyUEsKeiF2UnFnOHY/TmNgTV5lNmxNKEAyISFOQSZCbkt1bjF2
VmpjMXo5WUp2MDZvRVVGPUc7VXRFWiVhU2FzMXo4LU8yCno5QkMjeHpzekQ/MWJGIW15SE9YdzU9
QT05bzktQExobSFoMFlaLXxAQThAWSgrX1otREs1YU57JHAxPmN1bXAydAp6RDVZPCRvREd2Y0dI
JkBJJj1gX0AmejklbE1fI19XOGl5WEphPCZgWWRuO34jYnJYKlB3Ti1qJTNoPGZCPmYwNWQKejRF
JT5Cajl0X2MtaUdEVEolcDVvTWUlZ1Z6dmM2YmRgUFRiOWNRRn4kcT1iQTc4N1ZqUGkwNENoaWBp
Plc8K3tHCnpWJkZSQTdLUHVyXlcmdyFJc2VNT2FJe2k+UlV9Ym5XUXdsJEJRQS17Tjd9LXQ0PS1L
VmshdmJYUX16THRLS35WYgp6aH1OaStIU344VGppQWhDNVNQJX01KSsrdDFOYF9gXk8qJTteUF5g
UmojS1k9PFUxPDRpUmZnY0MkR259QU1iMU0Kek4/czZQVCMjY0g2aUlsc0pUZH42e3dNYSN6Pkcx
JXoqTUF5U0YmTWlVSH53SiZCRFVea1hjUUg2JTkheGJ6cVJBCnoqQztGVCF0dENtTExtR0FWVTk1
RW45MGRfKHFYNX4lZmFgcHN0eH1LNGNxYER8TDRXVU18Xj9wWElEU003antfYAp6M0czfkZiKzVZ
RmN0YV9fbUF6UCt2cVlNMShXJUA4KWQhKmR6LSl0ZkB0TVdwIXJuKnxUMHg5RHdRbWdge35IRl4K
eigmezA2TF9+eCRWTylRZ1khfXhTaXo5THxtWDxGO3hsdGhDRDdhfjFhQEdzM2N5UG57Z3JReEJ5
ZzFHT1hkY35nCnpDJnROSGJhKnE0e3UrYUVoNChWYyRyclhXQXdSaXdmXzJnbm82PDkhdWZ3cGRD
ZkxEfVU8aG8tdXs2OUlpVDVLQQp6OCRBejVmYkB3YlVnTiZDWSMkXnhOdFhheDdmbSpRfDAqWSln
Rk9MRFk0RGZXUnkjU04pNThVP3p1KEVKb0A/IWsKemBnfm0mPXtFMGlrSHktdD0+KGdyZWR0elM/
dDNjeV9Sam1USVUodTVkQiRQdytiXkNMeEtvIUthbC1xbDU3PGJ8CnojeiRpT3oqcT4rcCNKSjN6
ZypfIUxoI0NUUWxoTFphU2RVcGlyJHk5PzdjSF5EezVTRno0RTQjUn1+Y1pmOVk3bQp6bzs5Q20m
TVYpQz4lcCshYnYtKk0rJFdKVlQ7fDx3LUB6SHpKPlJxUlBjaG9RXzdCYkstfHlXTS08fkZlY3BG
WTwKeiorViV5cUJFTkBUdVd8VnZQS3h1O3d6bjZQRSN2THgoXm0yTnBsMF89UmAoZntlRSM+QGho
Tz1DfU1OYnhXV192Cno+aSo/NTZwNXBvSXQpJSRgVChGPkZidndtX3U3MmZJansqJi1RallsKEVH
Jn0meDJYQ3AtfGdtJjZMTncoKl5+cgp6KDtlXjcpcXskSENzeWRQKGxuWntDTUZvWndgRGkqTzB0
ZW95ZXVPVVNUcDFxVnMqYFo5PDIxO0VlQWUybnN2Tn4KelJDNipzJDNjZ0h4ODA3fVRkRiFLLUow
aUdOXlNPe3c+UVo7JlkkazNLZz82aiRZSEZHeFFnKmF7JX0tYXE0eHF5CnomakJ5d09IMDcoSCFY
JU4pKjlrKnBvdUxnLXUpfCpmUComYlNFeGdxN2I1NnZ0cyVwWktjJCEwV3opa1Rye25eYwp6SDB+
MWRGUCF1PDNoOHtIWSRMdDUwaWQlJGpxTkA4azh7VkFMbFN6MlVWaGBhLSNSIz56SFhTTk5SfHs3
ZTlwTj4KejdUWDVLU3Ejd0ZtVk8tMXhvKT5ITil2UiNSbG52OyZ9JVI3NVheS1Q5eEV7P218Pml6
X0JILTlPO2wwK1pQbDw9CnpnYXRlU0gjRHkmOGNMIVotc1Q1aHEoRDxeRm9xWUBtVXpsPUMteCQ8
VCsoY2Z3dHZ1aVhqS3woTkgwWG45QXxfOAp6TkBRJGN0THlrfFZuVHFKPE5LdyNoeDhpeD1DYFpR
PXlgU04xN0NubmNWVUlhOHcoakUhTG9Nbzh9KGs5REhRSEkKei1nJmZiNEt3RFREZGkxI3p4OWoj
JXFeYDYqPW9yaTh9VktGOCQwUzJiYFI9fWZ3NiliPUQtdn08b1VKdGN4QVheCno1eWJ7Y2p7PUwx
SWZJMCV4NX48KnUjJTRueVJFNzRBS2hrTmIqSzElQj5qPj95N252QWV4dlh3WiNNc0hncUJacAp6
YXRiTjRWX0gzSy1MMnZVQCtFR0FUSW02QXBgR1U3bG5BVnw2Z2A4Qyg2MXkqekRlbCUyfVZOQXkx
fmBibFBITj0KenV+YlBzekRaSTxMYkZOcDxYSyE4NU94NlhJZWU5dXlmXiRkJjgyMUdtRmQ7ISM1
dSFLQWNKfS1HdkxWbntSdHp0Cno0empkVDZ1Z1Nfe0FzfWdfRXJMNWY8UEFfeEdTJmhOMWc4QnB3
VG9KUmF0eWc5eD4qTnc8Vyk9aFBtV2BZZ0pEYAp6PUIrOGotP3NHK1RocXFfdm8zXkg4Q0cpWG4j
cVVhUTtmeWFWMD4hUCZxdnR6dnBBQCZ0R2RKdTtESW4xakxkWDsKeil0YHhad1BJYFRkQj9zK250
fUo3MW1VfWhhd3dFYlBuWCRPTDgtNW5PNXpIdSVrVD9NSVc9Klhqa0ItSDtwMT5pCnpjVnVQeihH
JkJQP0QwOVJ6bS1QSDVzSjtuNXxqUUVlbiooQVd5ITklOCVGcm9iVDJ5ej9kJjFyMktTUyY0PlU8
Ngp6SWAhY2RtOWRDMUhxbnxSPit4WCZCP3x+M2hkNXpoKTEzIW1mVnNMY3pkWUYwWl5pTHxvWj1N
JTBjOGBoMGp7O2gKeiUxaGtQKn4wNmo3K3JJQGVBOyNIVjVfM3lQVlNLcF4qVjJlUF9TZmdxZzN1
LSolP1IwTFAzUnlUWWg8fXokNzRUCnptO3V9S1EkaVAoTGFySXA7Km1+bF9pTlpVPi1mfkArfiE+
U0dNdjh4RilxczJZJGJ9eW1tSnArKjUxK2trPWNqTAp6bXJSUXBud2Job0dqXjl+dCg1TigoP3g7
QWNzJH45ekFuV3BDXkNzZmJMMlBQSF9KQio7M1JyPjU+Z3lwZEt1fUAKel91XiF6VS1vTSlBflJ2
PndAXlFlPUE+dDhJdl5JNShfaEx8QyowOTk0RHp0amUxLXRQMy1FaX0jeiVqUERkdHs4Cnp5an5O
UUQtTmFUSnAjaXc7JGVXXmI3MVc/VURAczVCemd5SHdaQDF2WFJJQih0XkpjNlJfRHYpSHN8Rjhx
b0x0dQp6a0MkNktQYzNhWTReWntwZi1ZOCtBaEh3QmZFfVdZRjwzMzRWbyFsfUFYYiV0clZgQUM4
IVQ2TXk+eFJ2ayNwbTMKekhITStKWD0xK1JMbmdOO2stM0lRPCNBNU1KN0RCMj0+XkxxRDxsX2df
fiRsdVpOOV42M3Ejc2NkSzBAZik5SU93CnpBJih6dyUqOHlhQlNMJnVMbWpBczhLd2tpU0k2eGw9
MzQxakM5NztSMUAxUVZWfkQodlpOeXk4WGwmaD9ZPztFIQp6OVoxRGwzfDBJV0UoS3t1b25rWjFM
Y1FLKUckdjhKOCN8Rjc+YjEla2MjUTVBNiVkJT5JTjtVSUs0bi1gMj5Ee3EKejZqSE19IzB+ei0l
MyFLOUBZIythTjBOPDBuVjchfVlqZG1hKmxpez15WkNhPEZgLTVOTlMmPTAjfEVSWHd7R3lfCnpl
b1pHUjwoSUpKXm5BOCUmSj47SDFNY1Q1e0dXQ1hlP0ZgK3s4SVp5NWxqPHkrNUoxIS16I0IrdTI7
I01OPlFRUwp6clRGcnFFbDVMUTZ5JXdOaDtgNFNyNUo5UkZmYUg5TmEhP24tTTxrfEFmK0ViaVo3
UUE/MnhzUGhEXnF6MXo1eCoKek8yP2JzKnJQeVlnd0olP1NYdjV2MmJBZXhfdDQoaEpybz9sKFQo
KEp2IWBlRzkwIyZWMDRaMjk2Vkx6fTUhJXA9CnpeKEdFSUs2VitIKkd4MXNRLU5NVkZzZnwlMVFt
b3VkeWFNV3VvSzV4U2phc1V4aWBKVDx7OTwzV14wRzxUfWJ+RQp6YDcqRClyKDF+Y3E2bkkySyhg
V2ZXPUNvTDMoQnxyKnhvcSZHZEs8VVA1OGBvUmJ+dE8rcXxed15HQHhwKFJZancKeiVUK35eRENW
MiozK1FWO0lDXyptPyF6KDMwakdYO0pHOTEzI3NWMjNqISFESHNBRzMkLUBoPz83S1VCMEY/KURU
CnpMPCpALUV3PkZEJSQyVms0KHx0YmM9Z31QNTJfUmdOU1djbjN0KUkzMzNnQ2thMHFfRG9YQyRF
RXx1P2xhKTNIaQp6Xk9xc2wlOEZ8aCFXPENDMWNaaXxkVllOZGdlNmk+Znh0QTMmfUUwS09nKSV9
KCo7OHA3SlB+b0lyN3h+cXI1WlMKenR9LWVHI0Q7fGtiLXFfYT1Zd01rZSFTRmxUVVhJSUl5aGdC
ckByMSRgTT12NTczekdVWiZaO292QiNUKzlCTTBuCnpyN0Q1M0dWO2NNUG5pdHdANn5sI1hMZ0Qt
cjF8bjR5P2JPIVVjRWMocWM3KE1DS3IwPTZqIT5HZnU3VU9TTX1Xcgp6cnhydlFNQl55UkdidTJ7
M09McmpQPTZgPlZgbks7e1lBdTIkYEI4RlBGJDdnWnEyWmF3dHdSVjBrSyFMZXVISnoKekJSdVIy
bkc4TCZUNyZzRihCbUZeOS1gSyVsLWE2QnhuUWhFc1NDY012QGNhYDdDK058OH5eKWBOWTZSPjkm
di1GCnpyU3Q5YW0zKTcoKTxGQTJYTmw0KEA+YUdrSXA9NkpGfCQzSTBgPXZnUzJ9Vz5KPmdJZTBM
YSlgbFo8RHQkZ218Wgp6Y210a302Z1I7MVZIaDVLJkg5amdeTXUxe1M0NmhmeTszKEs0YU98MWlS
KXJkU2Q7QGFXdVNCOXxKfDxjOXpNUHMKelFRfUApWCpSWmpwRE9lNko3Mk9sPDZLKFREd29ROVlZ
PE07RzZUMUNmPU9lb1ZBJD15bCotNzg4RSZHVDxydVlPCnpyZEtDTUszKEhxdmxaa3E0RVZ6fWU0
IXZLVVoqPXp4eVUhVmpfdEwlYVQ0e3c/QUclPDY3UCM2YWtDU2g2Tj4xUAp6e2w7dWRjfVFtSU0o
N0RgKHdabD9MYn1pPVc5KHJWZH1jYU1tM1lYQDJeWEVlNyY2b3Y+U0FfVWwhWUF2XnREWWUKeipS
fUtLO24zV3woRGdUa3NIRnAzQDZ0LWZCdk5JKVlyamdNWV5KSypLOVN6UDxPVUJUNEtTZXc4eUxl
JDVXKnFBCnpwO0NYez8rYi07dmQwfDA3STY9TDk0VUNzZU9nYVRXWEhZO295aHxxZk9AVV8kfUBh
NDJLeipsMSVeP2EyNSloUgp6KCEhdSgkQlpxbWI0ZGJPIWl0Y15pcilaa3ZGUjZmJWlgMX45bUNy
QzNnOCFeX2FudVpyV1NXMXs+O09LZjNyVlQKelpJUngldFd0T0VGa1grTGFOaCppM2t4cGhuXiRv
NkFSez8pVmY9NDh3SkYjaG1KQUx7ND0lXlBIdlI1e3N+SVB7Cnp3QEs1U3VIJn1fYjxQPzQ1O00l
dk18V0tJdG1XJGkqI0xJeDtUfFRJIWZvZzlvOWRmbU5Md3o/X3VrIWY5b0pVPQp6a0FTeTxvSitq
flc/Yklzey1gSV9VIURvZkd3cWhuJVR7YmJBWjt7U1Q2JUI5KGBuTSF4Y3M1dGgtU2NjKm9xaVIK
eihkcFclJEwmJnFqQSMrTnRRP3JEPTM8MWhVR3w9KThxblQyd1QyK0kwcmFUa1ZUayZ0Iz4jd2FE
TkBEcioxIzs4CnpqMz5MYHp5Mm1qIXltZ3BrbzttVVpzRjklK2RpQHE2Jl5KSSZDTk18Mi1XIVpl
cXg9QEpDV3d+TmEmXlhyK2NCeAp6RH5aX3JoUW44SmVRZXpnbH5fJUVIWTx9REhoTWVsUTJXPjM4
TX0qZ141Q3Q0K2hOeVljLVBRcktZZEtnNUxISEgKejVXN2M0c0ZeO35KNX5NcGVsO3Mxd2cmTkEr
c1pZdz15Yj0rb29jZ3hAcGRzQT1rN2s7UyZeMFllMlBLVitqQT1KCnola3Y4IXM7TD4lTClzYn56
NUpEYFgtS2tNSjVkMX5mZkNIcHliekhQdXU4V2toOWk7MUFLTUFVMXM7WkNsV2dNbAp6OVBgMHRD
bSVOeEtKKyZNT2srMGRGZClzeXg8K0RFREJPQzFHP3R3Q0BUbUpQQFBmKygqd2o9O0cjMGlRWkoo
aUoKemhHLXhBM0d8NSpSQH1lQCM3aGhfKlBRMEpfS2EjaGNjflErOG1iXygkNTdBMlpeaWtPdCMh
dmZAUEF8azM/MUU1CnpeVVokJkErS3FaQU1oMGBPQD9memdXZU0lZENWb1ElfH4qQ0ZPaCs/R0x1
PXo4Y3MwRG9pJj1SKldwelM0N2F1eAp6SGJhJiRqUnQtZ0ZiNChMQEQjdUdqbU18YyQrK1ZDdFFD
cUZVYXM9S0tXNmxxbH1iZUlpfUF5K3hJXkx0S2NAMGwKemRrUSNvLXooKVpOKnI/e3gqPDxKVzRs
fUNwVFc5UV9OKnRlPXY7QFIzfn5XOXt5dD1ASEh9WCt8OXBubFhMeEx6CnopXno8MXRWcFc5ZT5L
cWxvT208czdfLSNPekBaRH5hMjg0Jk51JEImVGpNSVp7TE45KS0rPE44O3UpYzY1dW8lYgp6VUlP
eV4yRHtFRHAyXmt0VHdjTWNDYSFhTWI1QC0mJF5NOFQlLUNeQlh3Uj0/e2dadCM4NkJRcHl2JGc1
R0VrN24Kel50aT94OEtiLUFZMlQrbStrQnxXeTAldXtJcDVneGA5Tyl2UGpqQjQkcHxveCp9ME4y
T0pNJE5Tajg+YlQ1dyZWCnp3YmpuM2EkUShFbmZycCQyajRwX2VoYX5Nb0omfSZpVVd4U1ohOHFf
UDk3d1drSWBSR1dhTDFSb25LfFVha15QOwp6e3c4NkYjYXRadXl+fUpxe2VqVTxXQGY/WlE5QW5O
Um9NfDEwTWArP2M7N0B5P1lkIzhXXyhaUzszekk4c2xhKEwKejVZMXNxSTJIZitJK2ItNFJISWcp
YnEqJT9PbEhzPytIYUFOSGMpI2V0eCkzQy1CUlBYNFM1fnxnWmhZR2goWkZ1CnpIaiZVX0d8Q0FN
dXdXI1E7RzxZO150dGU7QTNKLTlJMHFmZEooKjttZWd5bE89STNCLWJuemxFckJ2ZVJfNHNJYgp6
WWtpN34kRnl1JndTM0JjWmRpNn0+ZGtkcHIpZlM7LSlEJmhee207a1J2JnEwUCZnWT5fV25fdDtX
U25JZVFgZWIKeiUjKW1FKn5YWCg0aT5eRXd2RjJgJnd0Yz40OW5TYHFtTDVyVnpfQHVQbz9zKT5k
VyNwKnNiNWVOUSRxbUI1ZkU3CnpJS0VrKnw5SCZZIX0tRDw/ciMtSDtybi1QPjRUJkJJOXJIfFlR
eFpISXVnWSFXUUZXaXlRbj9uOWszO1BMOClVPAp6I0EkflYzaWFlNnooOGUobyUqSno2eC15akxB
M0c+akBjRER7OFRRRmFAfiRVUXpsO0BiSmNvSCU9M35XNnxEUXMKejxle0sxbHl1ZGVeKihhRjtv
and2SkV3bVBwe3JCQD9CWStIbVRfdkRqeiNkeGgkcCR5RyRNKyg9JkxZbj9KKlVwCnpfLU4pQUow
aGMySGFoK3tuNEtlZ2dGbHR7P2VvLTllT21JTClaYTFrPDM8UUY7c3tmM2E9QnZaWiVQVFBYclE/
RQp6Y0dkQTJ2djd2ayhnZjFqeUFCQWRJPFkpfD4oSFdzK0R2NGs3ZChVe15ea35pT0EmRkV5RUht
P292e1FHU0pyPn4Kek5CdSF0RFpLeVp7fWc1Y2oqSSpCU3lwdTdiSHVJQj4xc0p7Sk5QNzE3QEAx
cj43WTRyMjMpYlVmb0ZSbV4pOSopCnpDcDl1fGdRP2R7bEE+K0Q3UUNTci09c3l0cCFSQ21sZWZk
UGJJM28/PCokV0dRQlhrcCFDbWlme2MqTCpBR2cmYgp6PzdEV2R4K1picUs2JndoPXc3VWJZZkp2
SCU2VTB6eUEtO310N0NCcT8oJWRxM3RoNmJGbDcpUExZSTR4Vkw7SUkKenlIeG8/NCRIck1gUDY/
OFR2bHwyNFgtdDU0bl9pLWgwLW4wU2wyN2ZEWlpMOEhwQUVjUXI2KnlWSENifk43RTI3CnptSz1j
Q2g+cEQ2V1RXO2lrZ2t2Z2lNN1JPQ2Z9UUMzY1QoQkgkb0d1LTB0XjhQZ1o2TVg/ej04THowbmU0
VDReVgp6LXRoQWN5aVBNaCYjenUzSl9FUyRGQmtPfiRTdU10LXMhdUA0OEA1N0g/KiRlOFB3Ymky
WXJwM0NRR3RSOEAheWoKelVrODw/MTxLNmUqeT1OazYtPnZreXkjZERyMHNmXkQ2d29kN2o1WWxm
Nndgd0NtdmNVeU5efHc/ZHlVRF9LTDMxCnpFflYxPkohMmUpemBFI3h3TiY3ZDA9RFlhMkRCNnBR
NCR3ajtAOGFTTUA0QVpBe3ZqcjNxeEFIcXJZPTdUMWA5NAp6X3I3OzZ4e1BYbzloZG5KIU44e3RC
TTl1YUtFOD1LTi1UX249UChyT3JhfVZpKWBqMnYlZ0laezcrZzN8bEF0aioKekJ9fWE0c3R0M35h
Kk5FTnlxUFI1Yyglbmpna3pSNnY0SiZSQTUzUk5felhSajFWUldhQG5nPGshUWFAbTZmRmFgCnpZ
enlaa2pwQjZKPm5NTUN2TFp2UUArc319PVU/UHxETHhlZW08KE51djdwNjNObGtBNyFDRTEwRDN3
TyQhQU53OQp6T2JYWGBZTD1SNiUyVGVHZDE/eHJMSyRWRXdQYHFON0hQbG9gTU19ZEszSV9IOU16
dTtXfSQpJUpJTkVHVXBGOTAKejxndkI3RSh6ck9aeGNQIzZ7VVh+YHlwJmk7TlE5UiVlNHV0aW5l
TG50OGJQYW92Vmx7VTw/NFdeO1F0RDBxNng0CnppQD4jfW1UT0xCMTdTV2hMfVpNUkdUYUZnbVVg
Mk80Zyg+O0BrcHJsRipDcClrcHkzOChpPn4xNCRSM3M/Nl4/Mwp6KEhnVlFGb3Y0ak03UVdxYWRw
aGAqdm0kYUlJWEpOTmN5fG0yJEd8bnRCZ2IhR3dXQzQ4aU16dER8bz0oPjsxNXEKenskJTNPeXZt
OUBPYDRKb0I2NGNKNklGJVhVKjtCaXVvSlcoWiNqXlVIJGwjOUhSe01tN0doU1VwLWY5VGJTKD4r
Cno9VEJoRUxqYmVKVyNLRSUtdHIzWmhgbmR7Klp8MU8wRmAoTVRDZjUlRzJIZlJBYUlyMFNtdk8p
VGI1eEFSYClJUwp6REpRKl9hVF9Qa25hQlMzQHszSTdtYXkmTyt6bTgoeV9lYTArJUcyTTVOLSpB
N1RGeTNFdl9wUGhoajkzXmh5MnAKenNmflNUc2NnMFZIdjYpLXN1SkpfSHZmaFlRckNfWm4jT1BL
bk9USng8WDJeb3RXJmArIU5uR2YzYVN0M3lwfDU0CnoreVFQZiohc3MyUShLcHQ/WEF6X2RqNn1P
P34/VD0hc2peNSgtQSg4eDQhQmYrVl9MNlBoWHY8akIzYXgqN25qQgp6KFpOKWZOPyhAaE8mMktS
Vn54XiVFNzBZSzwjTFFMUzNkKDBJOWVPSnlRMXV5ZUdAQChXYl5uO1FWfXh4P0VZTy0KemR5OSQo
MzlkVUkzKDZ2JjI2eElOb0FsI1Z5T3gmTDNhRjVXMnl1azFYcXotWDlpMjt4aShncW8pZD8rNzlx
bj58Cnp0JGJlZjFFMnYyNHVBXkNvWDt1dmJOciM8XjskQm4lIzFWIz1JQjJHOS1lNzxZQG1McyVE
d1VDKS1IeCtCT2B7Ygp6aE0kTCl2TFByZD5scWc0OWppMH5pP3VTdHFPTk87JWZhK15SZUNMM1Ja
amlvQG5Yb15nMW5OUGJ3cDFITlFWJD4KejFAZ1RmWnlGKTg3JGw2fiU1eXhKbkVRK2llOStHJTtm
LX0mPzZIYk9lKGtQSXp6RSRpcVhgdmZvazQmYWlgVy1kCnp3Qzk5V0R7UUJ0PTZNWFZEO0Q5NjIj
WFg/aSEzaWhJc2hJZ3txPmZYZ0FNeXM9QGtMa1MlOWQrbWZ3ZEAjX0N+fgp6V0tANSNuZ0F5UDhX
T3MlQDdNLXRWalFHPXtgT0lUIzZPP35VU01WfUFxej5oI14hd0ZiIXgkQWs1ZVlgZ3dfSWwKeitU
KShYekkkMTBuSXhsejBZUTJ2NGJoRHVnYlNRX3lAcz4+ckhwMStTdmkyQC10U3NxbHBJenpQVHlV
SjQmNldnCno4dCUqI3c+KHowVWlNWFFFTFhjdHNaOX5rNXdDT3dIVnAkOEU7PTExUEhBdEEzOz8/
WUR3Q3V8ak8wI1lBJnUkWQp6SDVyOFdobD1lYilBaERxY0I/ZVRzNX44TT90Rnsxezh+TnZrdkFB
cXYxWHBFQFc4V0FpNE5sU0w8MmV5bipnTTwKemA5SHw5X0l8VF5te0owITNiM2BMemNpRkF0ZDJM
UnU3cypzX0pzYjAhN1MrUzdhSmMqbHQ7YCpnQS1mS084QXJZCnpoQT9WUjcpamFSWDs2blVAbnw4
VGY/JXttQk0zdFp7eHI4fGRtXktacFNQfUYqSz5eeTErYyMqTl94KlBuUVY0agp6SFhYczZDKV9v
Vik9N1Q4d1JnfSM3eSQqT3h6aXxXeEFDajN0YCRnK0hxb2I7Xmh9ejBNWU5PKikqKVclVFAyS14K
ejgrRTlBem9GZ2wrKkd8NEZJbG9XVnAkVEchJjZtR0hBUiYrO05UaDVKXnA2eTZ7NW5sdENrSnJX
UXxvVTZxVypoCnpQZk9ZJHFaVHA7YShBJW40ZmRkVmRKeWlCPTchTVJeIzElTDZBdzlkeztqY3hZ
RyFxSnFlMnBNclZ5VmhnX0FXSAp6Q2FWQjU1RiVLS2E1XkEpbG1NVFBHPXgoaGgzMiZVKlNBJHhE
TXlkM3taUHhpemkhUVN6NUspKjgyO1dHQmFUYXkKekhEZVdVOE1Fe3JuTFRPQHE4VS14VyhPZTRT
VDV6KXcpeW9XP1h9JFcrPE43VjY5Pn5pLXlJWEFxN1Rfb2x0MDMjCnpHMkd1fWVtbF48MSZoYT1x
SWo9YG5DZz5XbV8wK0N3ZDZvUypMUmtRa1NnQXc7Z3ZwTEtXYDNub1BgRDE9cjUoYAp6UHo+YkF0
QDw1XyUqYmdUUCNJZ2hZIVhKPU5GSjk4ekR0QChLXip9QiR0cyFQWmpZcHZxJXRxNWtZS0xjSkBy
KWgKenBqR2VXZ3Nwakc8R2FmRExfR1BeOG81S30lUFo8VnpMN2xUNUhOVDFlJDRDbCkqcDYqIWQr
S0FybipxVSZ+NT88Cno9MTNkVytOKDFRUm8rNDxzUDY5R1REfDx9cDFGRjgzczwjRTxMRyFOY3ch
M1loPE18ZU9yWEdxdFlsJCFgdVJIbwp6enxQd2ZTJHR6VEM5S1FsR31fKW87Mmp5TjdMKzJoe3BC
SXNPMkIzeTIjekBeIWojIWB2YS1VZmdQN0ZTNWxYNnwKemtUYzRBUElqNG87blFfZSQkUUA2MGtr
TWdUaGwyS1V3QTtLdE04M3M7THVtanVHPXpjMFExSUArR3FfQ2t2eSgmCnpaKilWKGUoYW4/N3I5
IWFUMj4kfVU1STM7RSh3RnUtVCp0dEJqOTlua1ZTSnkwNEIqPjNNPk09NENKQld7Vyt3cgp6bW84
TGJtP2RWRSNpakw+PDtuOWRDdHwjT2R8OUhGRjQjfVk8MnJWfSlJS2Vqc35xNGBNV2xRTmM0MUtq
cCRyO0YKekFVWThkREhtY3toTEYlPUtpaytqMVd7V0VaUDRhYUUwVF85RzJrMyk1MEorbjRAIUZ+
OzZNbSMzfnpBMiEodU5XCnpEPzN+OSFrNUV6PGJFSktvfHNoZz1IVl9Nem1MMlJoRXNHPXdxciVe
KDdUWWtDcHp9fnoxfn1tWTBpbFVBPHdlUwp6KW9MLXQrT3B7fShzaGJrK2lJP1BTJEVqenVST0RK
LTx3aX5xX19RWjQxMVFuenxDd2luQndYQGhUVyVhMik/V0MKekliRnUqekE1QEVIelNnTGl7JX0j
TFNadDtOKmxUc2ZUKE15MlB2MzBoKyk5aD98VFZsNFE3ZnxRMDhxSnVvMnVYCnpsJHRhXjNMP2Rz
TmRATl5ZeXZFTjZ3SCF4RjE7NVNOfjFpUzJ1ZT1YOUUhZm5obWlSSnU4KjxaJHd4Slg/dlBseAp6
cU9AO0dgazdIU2hWX2RyWFhqQT0zaWxjQFpDKiNiQkBUPHZRSSFNWjFrYlg9SU5PNVlrN1AkWmVL
eXZIYCFYOFQKekk2PShQRE57Mm13djchIVh5XiVRWENLTG53XiQwKmUpM2ZFKH5DXlQ2NWQmWlg3
SHBgJDtqMHU5NzBCPnUkKlA7CnowWi01Y0YmXmUyWlQ9Rzc7SDIoVTY9RExfZ0lee31TTmo/ZGc4
fF5TeHQwcGBjcV5qd1ZNOzchWGptOGQ0fU5zJgp6S2NkI2twZUMmWXJWUFU/XjYzPChQPntVaSs2
anA7Z0ZEaG1eMXBlY3UzQzhiK2tSX1RkeXtJTVdLQj8xZm16SkEKelJyV2JpMmlBV0pmYE9XWDUq
TWdwPm43K01ucVYrOE0mRFBFbVBhP0glWko3XnpCSXFvaDk/KlUza0NjaHozVDwoCnp7bz1EcGhC
WlBzKSZPJit4TDx9UFRyU1V3QEJCSkYtamBKN0JAZ28qVClMTy1qezBaWnBQU3F9K2ZTRWc0QH0x
TAp6Wjh8QjhqZ2IyZ3lIaDJQb3B3e35FZGhOI3BrMW0oMCN5Z2NhOEY0ZiFpMkBCcnpyfit0IVUp
c0VNRSF5RCg3Y30Kekg8cF55JGBeRG8lZVhGTGdRPklNYEM1U240T0h1UGZBU1N3XktFS3s1RyZa
S1QtdWRoUXx5SXJ2YDAybjJuRUU2CnpKYWFqPWNZdGt4RHAlKnZuO3Y3IW13IyhFUkhVSTgmJT9Y
d1dXd2Q8S3BEayh6T1J5OFYqdkpHZEo0bjl4NmNLdwp6ZmQqTENGKVRfYlFzRVpeZylMT0FDX35j
Jl8oUFZpdzdATngzT0Vwe2V5PTt2VmhlKT1gfmZrVDcyQ0cycTlEY3kKejhMfjlRYXY/VHBYdVcx
NGdSRT9vNV4rUzdpbyNkRUFSfTBgNjVwQ3tXVlZpU0RZVk0lbiY8UUxmZ3I7QjZvKXJ2CnpUSWI2
fWhMUHM3I09HcX1zfiV9QiNjVjlsR1J4KTtSZGs2Z3g3dCZpbHAkaWxneXYwTEJAQ3U5S3ZIZE90
OFdOVQp6UktFKUptZmZpXmtaMX5FO09LM2RqV0leRnBqY35adzhIOUFLaGc3SG1+I0UrN3NjMDRZ
dkB6I1lWRTJ2cmAlMGgKejAjLWkwTnQrRCp5d0RCU3dkUjBacWA0dF5KZ3hQZlJSbTgzVHVYV3ll
NCVKWDtqJTlBcn0pY0c3MjlSNWJ1OGUjCnp5Rlh5OVNndDVrM20xR0hRaHZycUJTZWJ2M0I4dVhM
T1dgblFEUjV3bmRwPXNvRG5+cG5WWiozWT1SNU1pbnEtPQp6ZTtMPFlVO0tIT0BvJSVHQiFgcF50
dG9gdi1kKTBoXlh1SWl7Pl4/Si0/QEEqOWt3LWN2ZDJ7OFhKVCR9OEgkITUKeihDUjcwSWpvYUM+
RER+U2R2YnE4KEdXJEFiJlFWcTxhK2J+dzk5az05Jn02TEZUMypLTUVQMDFRP3sjKm5+cj9DCnp2
dC0rck4zM1MjKDFCM3k8UFB0PVd1M284SFE9X3dwOU1XODVIR2YlSD8pdmZGYzBganMqVT5zPjVx
TS1zJihwTQp6UHFxZTlSRmo7a1ljLTh3P15WK1YlN3t1NTRrYDdWZT8raGgrcn5gb1JuS1hWQjNw
X1h7Yi1TUCp9SHRae0chUEEKellKSCZEUE40Xy1MSTBRcT9Yb01oTVVEdmMjfjFINXo5aFJkbXgh
QTttOF4/Nm1+WS0jYjFobFA8KUVxOFU+P1U/Cnpickd+dG9qRWx7ZjN+fEM/eHs1TmFhT1VPSjt5
SjJoT3o7YDQ7enxPZ0JHSHJwZEI+X0YzPDhXSSolT0haTWQzagp6eTJvUk16Wil4aylmeV5GM0ww
UjIwaGcwcGFaJHJkR3tJfCEpSCV8QlclbjRPQ25GSk97QDVobEtFdEB7WkYpYm8Kem0zJl9QNjJs
QFRvWjl2c1psN3JxZ1l8aiZKPU19MGFDWG8kUVdKYHVWamhCKCp1UytIXlVETX05PGRSa0RubGMq
CnpuQU07bUdUT31BbzFVWXwzeSZVQmd3P19hcDlzb1grJU9Cb01NYjg4TitZPGRIUypucihJITsw
UU84KExpc0IkVgp6PCF7QD88LTwrOz4oRVI0K0pwVyZROUJueTRtKj9ZUX5MfDVASVpyP3h3VmRh
biQ3YSU5e2d2N25ST2RhaUBgMTQKekcrLV58Wn0pNF9PdEV+SSNhRX5BUzAoTEN0TlhVKCE/Q3s4
cExXWUQkJEBUVjJIc0Rsam9WSlopQn02OSQ5KT81CnppTnk9Ul9ZdjVhXjs8cllhRzdCRTA5P1F6
NjU3VGkyYztJMkZTNWEpa1YycG9EVkZ7Z25wfWlvaXFIQEZoSCZsbwp6Tmg3bkUjS1B6KExJTk5s
QEVxWEZKQ1RLZUVgfF8maURacTVON35ad0x5aX1ZRGRyTkhYfT9TaEs+VEhMcHhOTE8Kenl7cTJN
VFImamtmQWNZO2QzfThyak5HM0N5aS00R1lsR3pKa29PWHRXb0tke0A7TnsmVGRuQE0/WX1CVzdV
WGAqCnpHTE10MSl8QkM0NX47TzxpR3t1RFlOZCtSN3pseVJpb08wLUd6TEZqSmghXypGcmF8Y2xv
Knxec3VMRWoqckohRgp6a0lpJF9ONzFkNW5IUWBVWmMrTCpGfXQzWipDY3dhdDtCfHBQfGA0OF9l
eGF2LUF9O3JncC1ZeEp9YlMmcE4pPD4KellFYllTWjJ7fit5dilRbGtBVmc/TV9walotIUdDcGpx
bj56TWF5ZFElKmx5RTBgPTJFXzFvPjEhc0ozODBpX015CnpCfSkhS044dk5MXnNSKldidlhoanRg
diFUSWxqWmwrbmQqcl9Lc2E/ZTM9WFFmMU8tYVIyO216Zzx7MkJpeHpqNgp6IUFzSE4/aGI9JWFo
S3c1I2JMMUdGZ1FnRWdCTiRWTDBoQ2EjcGQjI2F+fCV4X3dEM01AQDIxWTxzfm80VEdATGkKekt2
dnVaUm1DYHQ2aTdmU140PXtjbHNfejt1eysyUXJqWV5RTWVGS3pOdVk1ViRFXk9yMX1fJk80dSo9
MFJoSU1qCnpQZmExbylXU0lwMlIpU3JJZFJIflQlRk9VeCpnSmtAdUE3RHFUWHt8PE4rNzEjQmNL
JFdXUk9TdiQmJS1VOG1nIQp6YENgaWQyR2tjWWtOa0FRS2BWfld4UilJIzl3XyFzNSomeG1qS1NK
MVFaYGxpYnJ0Q3U3ZiZmNSoyc28kKyNCZjIKejRlO0pLVzR1ZVFiZVhBSC1qMDxyXiEyX19iWGF9
a1opXzNPcm9TQ1VebH1fPyE+VjkrM3tZdnpCY1RYWWY8NSNmCnp3QG5heldqXz0lPUgoPk8yUVN5
QFA9dThgezhgX2JrfXg7IVAlPkktamxxb1NjdUd9PVl1YT1vQmwrI0lDRn5GKwp6blNAJDZ5enhe
NHZ3NVIkbis0R2VwQFBZck94ZntVIWIjMFNXMFd8fjBDZGBwZzxSdm80Kk94emFZZVAwPkgrZDkK
ejxDVDBpZU4mPkhGMll9cnElb1Y2O0llV3xue0pfVTBkT2NTRGBBV2ghRF5kRFlDYipjOF5sYWRs
eDZlOHY9N31VCnpwR0NKLURFcml2REs3TzlQTFlaIUtXJGZoYEJsN0doa2UpX0EyXmZCX21QMyRA
ZHRWT3U0UGREO0o5XiVwdCNyNwp6OWFVQ1NGQE1BQThmNjl+Km1zbXA7Z29tUk1zYkV5SXVpcjlt
UlQ7bVM3QCMyVT4pNFlxJVdPb1RMNSZoVUx5OEsKej5rRG5NWHwzZm4tUk51dygwU2VuKjhkdElZ
K0N6PjVVN0leNlZYZU97MmpMZGQkcT48PlhsJjFWdTBwN2ZzJjF8CnokUGJJSmB6ZFl6RUl+bSE3
JiMlRyV0WCZoNSp9TipzbH5eVXFhUj5uaGs8bHJ7aFRIWFo+TkJTOEFaTX13aD1aWAp6cmp2Oylg
fHclX3kyI3FaQUlkX1lzZGRWK3dKMipkdTwkVys1dCZGVUZaa3tyRWkzbnRyJlNVbnR8JTFDPUpk
NV8KemVfPHlhblg2QHoxNDdMSEt4QGpAVG53SzdheW51UllEOHthMzNTZjFEJGExSE9qbG1FRUJU
c09vK1loXnxLb14lCnojejIwTWdYS0x8MXUjeXxacHNlaCtCUDlzTlpsYjszeXZAfkBPdjB7PkNG
NHU5emVNZG1UK2VycVR3d3lqcVJNUwp6WG15S19hNkQhI085bT5SK3E1dSpxKUZ+NEYmaXE7aUt1
ajdZRGpnPWdSIUswTUAzcCZjSSsjYT5kbzdiYytFRmYKenB9e2hBQXJLajtYJVNIWjZEOVJ6NGB8
U1NtYWh2I1ZBR3kxMWNYYVgpTXQ7ZDhNMSZ9MXwtaEF2WlZOaVhBNm88Cno2Y2Z5NSFKTDtRQmx0
fVJ1Km9BTUxzfnxGWTVgZ2E3MlRQekljOXRaRnBVfjM3a2RlbS0qfWs5KEoqUElwSkpeSgp6c1NV
KWkrWXNPZXN5fld5JXQldzZ6TXF6KF9xQztAQHY+XnZJSnV5cVhoeFV9aXJrTkhSe1ZsY1pIeV9K
LV97YCEKensoaXtaXmBvPys7LVR9TkgzX2Vpa149QDduSnsmS0g+TkM+STgkK2QwNkVzMWh8UHFv
Xm97MTspXn1fRVcofDU3Cnp5SmorNTMqeSltNmU1Rn5BUiM/SWFfTzt0MCtjQ2ZAXztscWQ5QD5j
V00lJGNOa2Jnc0RaN0NwYE9zbUJ2NWE8VQp6amhee2FHSVVvNGkteSEwVD0xZzN3OSRpQjhDVjI2
MUYwRyVsZz49VFFBREEwXj8/bC1mTzFeaj1mcXptdj4kSWsKenNGPCtiJSZCKnBrIUhYOVdpZm5h
dXtFbj5TPCsqKndlI2crdElxKytDIWZGc2hsQElaJV9BUyZqJXlOa2o9dyNqCnpWMXpMND5CQ0J2
PzhtIV9BOHZVNXdfK2pSSkFVYSpLJFNoPT51O28pQCVnWm0oSGwjPj5IOXlBPVZEPHBAcjFSZAp6
PmVXV2B6ZXJsfSYtMWljeX4lQ3MyV1JaVDFKaUs7KVNVWlE+VndxP0hJWiM0eXs3JWBIdEB1VTkt
Mm1UP1U4bXoKekM5NE9YeS1jfWRmWVlaQFRuSyE3T25Zd1VuVSM9UylrLVRqMVB5e1lfKmc+ISRp
Z1VuXzhIZz9ZZGBZQVp8PGhoCnprfk49OGg/MV9wcio2RTRkOVRVPnpPKUVUOyt4WSlDRHwmNE04
aFNHSjVyd2xMb3pOKWB4SmtwaG1UV2hua0g3Ugp6cHxHTj84PGJuQnA7KWFoa1ZzY2JDUjc7UU0h
dF9sRThrelhsPXtNR2lvIyhVWnMwI31TY1hoWUQmdkR3N3lBSHkKejsxV2w2bCVuQlN4SDNXYjsy
ak5QITVAc0xpYUt9fk0mRlB2VGdwd156Zj9wMkY8dGNOIWgyVDxzWHY2Ql9gfWNrCnpxfHV3dTlw
S1N0O3MrajNPbGFOVStvMl5UOSkpdU9sNXQ9WTFaYlQ8VUBrRUZZaWN4OFV4ekM8cFhlcHpWYUl9
KQp6KW57SkRXWXBlJGJwPjZ0U2w7S2RYMk9vUUdoUllCeE1OWVhATXBTbjVEN0Z9RFNQZjEqcWBJ
YiMqYTRKZ0BxSGgKemA3cXlWa0thTUNjUmVtV05ZNjUxYUh2aSlEPHZLcWt2d2wxcDxtZVNpJih+
LT0pekZIQElEUWFJN1Z0Q2BoWm9aCnpxOyYreG94ZTRFYmpOT0R3JkhFOENSeVY2UUNUd0QmUlhZ
e2ZfcSN7aFdHO3l2byV9JFlMOEJSQTBoMW81S0sqTwp6WEQzcmpkPnQ7TiEqMG5SSCVndjNjc3Y3
PT97Pk8qfDJyTXp6dEo0RkM1M2lIaH5JMjRTKlpOOHUzQjQ1cVRPMmsKelYjYSU8YUNHUSNXYW58
N2s/KlVKfElXP2JCRlN9IV58YDEkZ1R1THwoX0pPRGEtfGNYTUpIKWFucmUyKHVFdXF5Cnoke2sj
V3M4PH0/NW1qfGQtRiljVkdgUXA4LX4zN1RKOEJ8TWlDSSZwXnVaVD87aElnb1UxQEZNJVlBPjIt
aGlvPwp6SUZFSW9oZjhFWVdSRHYwUUlLNlhkUnY5SkQrdD4rLTQ/ZUheJjA4SExzKEVhSWp9PnVm
ZFBHLSZGS2BveChoUCkKelNYKlpxYm9zXj9telQ3YGtVPTJSKF9zRnRvIztlMS1qUyEze3dNazJP
TWNvSj5+NnpJayVtdlQtSmg3S3ZidCRCCno4fHJPP0peZzJYcl5IM017VnVgUDwpbCp8VnIqRTFY
PCskamBwOGtndDZTY01iTjk1MnhqbWR6YztgVXU8UUhmNAp6bH4rVFghMWAwP3VjVmNRJklSQVFx
PX1LbSFtUzlPbEJxQDBWV1RQd3hFYXZSYCNiZ1YhMFNjdkU+Qm1VMTl6SDEKemRRbTw3KXdlJX0h
cnV1dFpTNXdtZDtieD9FSjQxNnQqejhNaXszSnIhITlJdDtfVzNVJCZjfVc/Mk51cGZQQWJ6Cnph
RXZTPnRGPTshSzVBb34td0x7YEFhS1dgMnZYOVchdik7KzM8diFfcUg0OylOVn5gO2VgKjNMV1A+
TmUlVWNWeAp6YjtMPWxtKSVyWXRBPXheY3dhQGZeSXNtR19mSEJNRiF5TENKK0JGT0hSPjdzdEpk
KT89Tnh6JTxsUGBGPDdGNmkKemwoSG85dj1zNkkyYSZYZjA8cVZqYyVtb1NqVipfOyY/anlVK2Ba
Qj44aVAtVmU2ZVNaRH50eyVHfEh2aHBXaio7CnphMz1+b3YmSHlDbUQydlckTittVUUkMTAkRzMm
Nk0/UVkmaVJeb2A+Vmh8bHc9WUN4T09FP3dgWEAoVTw5WTd+Ngp6KUZjcSE8YFlPVWtgUCojZTE3
QXp2bnU2T25qZjI7aVlzbGwhdCFgQ2JuZ2tHT0FhQ15tNF5SVygoZCtTLW4pTH4KelRNIW1hdUt6
UT83NCpoX1MxPHZtcj5ANilBXzJ8fVJtSGo4I0EmfnZWKlZnQFcqWTxeUV8yJShaREBoZGxLeUNl
CnpsKXhldEo4IXBaI31xZjtDaj4qaU5xKj4zMHF4P2V1SW9LWVY4dVNyYlZ1WDtLQn5VblEjS3ZH
TCt3YEJOY1NTMQp6O1V+MnsxVH12S0RPaD9HalpxQV5AOFArT0VzaD17cVZZbVEkdlkmNGpZcD1J
cE5HR2VzcjthQld4Nm80MUpvU1EKeih9Qkg0Y3YyP3NCfj9CRm02O0UxYnZrN2FDI24qUCVPaT9k
RzVMXjEtaGxtNShQJnIyK2NuRyshe19YVmA7TDg8CnpsfHApUGVkeV5kM2dsNFpxe2VnJTtoc04m
PHlCLXFQJSpKRHgtZFlRdl9jKi0peVFwfE9+c2FAQUBxZDgwPlZXMQp6KllqanBnZ013WS18fjNB
ZHI4aldeY2xAT3Z7NHhNdkhIUDtkSGxXe1VAXnV1SX1CIyF6RUJUK29lYmFkbXU7KFQKem8/STVS
RUdeemNLTEI/dENeJnpeaiRfbCQyTHU+ZGpVTFFhKCN7KGs4QzBAamNIQFk1cGxRQz5YU2RaUjwl
MkZuCnpDMUNuWTk/eDF6SUBpPExRQG0/UVJhRkNnOGJINzFyNz5edUZ1WDV1TXRMYXEhIyU/P1Rr
UVIySSFpZkk7eH1qOAp6ZnJgQlBeUTZzQTh2RHV9eUlUcUJlYDlqbihzNHArVUBYQWk0WVhHd1Qh
fmVqNktfJSFGbylVMUZKeDU/SVg3cz8Kem5JfHomJH49JCRUK0xOR3dATFk5KEs2fFM/UiU7Szko
MkAhc2xKUHhtSlFXRy0qQ3BQSSFER2tmblRNMz1VYEBrCnpvKk43KmtvR3J3YHBsaTRecEpwamdT
TUxGVm0mfT4hYVNNNGNQbjdoenNMMTRRa0s+VUsoRVcqcT1UfkI+Nkcycgp6M2tjMFBVPUdtZl9p
MSFeJEl3WTtYc1pjKnozOXVRWmQxVDA/M3Z7WEt8alIjVHdAaW5vdWRIcnp3IX44eGBaVUwKelA+
OW1oYjRHSjk1JDdsMzVVU1kwZEsqUn1KUjR1PnlzSGRUVGFWe3JgcSUqTjRndjd9RHA4UE1NRDh9
dmU7VT48Cnp6PzV0QWoqSnA+PElOJVlkQjhAY20zanhYOSptcHBJU3J+ZDt0azJ7X3tJQj8oXyVK
NCtpd1BXTFc3QEpfVkFZTAp6emRKK1p0ZU40RE57aV9WbGJoSy1QcGU9VCYrcisxaHg1cXhsKHxX
P3NCTVF3PWg3c2V3eWFSSSh7KF9lU2s0PDsKemBCaH1HdX0pUSs3d0E8Y0J5Z1QkTkVQYmwjP0Ez
VV5GazlLM2w8cTRIUmxqYXlFZ0EqI05rcmJoJWdVM2hOJGVtCnpQdWNPRzZvSGxCbk5yMXd6REZ4
S193aDN9XnI5NTtqPGZYJCpxa3tIJTZiZXVyMH1LP0olOTMjRVojSHNVVWxtWAp6Q3ZNQzBjUlZD
Jjc9QTFzVyljX1dabGhYaWl7Q1V3RXJqTTJgVDg/amYxPHNIPVR4PmUxKTdEbSM1fF4rdUlRKVIK
elg2MnwrfEpeal9oI099O3pFUzY2P2ZhZHA1SUtyLT8ydG13PUBwSGZBVGNwKWlNNlJmaHc/cV5o
RjtnJUI+Tmd5Cnppbzs4dSQqT0I3YFI7TFo4akdoWis/Z2JOdShzWXM8aGh8Ym1iWXtLO04qa0w8
T2QlOCV9dT1JRjY5WCNNVjtxTAp6K1FVSUZwT1o5PWtmY2xRVzZFOV9Ce09tXmU1RDBpLXV4Vmcl
LVUrUGokK2A4MSpJIzlHTUV1eDxXOUNzbmxEMWsKem43JWVuRUhIKkEmfkkzN1VDPGVuMWZBfWYp
YiprJFFZez97eyZpNCVfUEpzTXE5bjR+ezByQzFDR25IVVBudXVLCnppd3wwTT0lS2ZXRFNwc2ln
U2NGeSEwUEJxPFl1WXBBYzdsOzNHKF9mUzE8fStUYD5jTHhaPGJ0JUJYR3Z1KVNtRwp6blgybztY
K2Eld2E5RzcoezZCdktpe3IhKks9aGw3TVZfPnYkRykjdGhNaFdsZlhXMlEkV19ySihRIU5EWEgw
K3gKelE8IWpROzg4fkgzNEJjKGQyVystUUdPWnwjRkNRKmw+M3MtPnJQVXk9SlkzVmZ5fCR1TXoo
dVBXfUBnMGhObHYkCno4aWpBbiF6VnlabTZZfVozZE9oM0QjRFVAeERGR1JlTEBWI2t1PVFaTWFv
XlFUJkRBSXkhOTxSUEB+OFUrJSlAcQp6Vmt3SjRMTHdWPVJMRHE5X3sqciRfRnpkR2dLM1ctaD1x
bVckNjVHeUtFbTU9dD54U3leVVAtYFNXJiF0WVM3SkcKekZ1SzZtLTYtMFZTcC0rPlgyO21hWFF7
NElsdmNBMjs3UDgqblNlZ252fFA7bmYkRjlOdmJoTT8qO2E2bylTXkdiCnooI3FqTi0qUEIkbHd+
JnNGVTt8RGVMUDFKYncoJTNAZiRRaWYlMn5PO2BYLVpXelRFKCprUCtqJXMwPDIpR2N7bwp6Wkst
YWZocytTRFQhOEluYTR6Z2lBcDkqKyRfN0g3KWNURUtKVzgrZV5nSkt4TXokNmN5cEdZXjg5ZnN8
SGF6S2kKejluM3B+K0hSfEAkX3lNT2E5c1VuRjt7MUspdW9GajVKbFN7TztMRSp7Ykh1c1VkSTNU
ZkBIOF5RVHFpa0FvZyV+CnpLcGRXQGdiJnU0aTE3PTh7fDl5RXNZTH5OQ25VYjMjSnFAUXAjN3po
aWt+PzdVME9QLTxfYzd5aUhpdXckYGc1aAp6NERrK1c0flNvamo9cDt9bHVUdUw2TGcrNkY+OWl8
WVJ0I1g4Y3VvKGVVcms+Wj5+O2FKN1pFYUNuV0FgTWRCYykKemY8aE5ORH59dSpvMlhkKUlyaXww
SDlzd2JgTGJTV24yY0RTaDBnQStvJT5jYyZaM1RPJnYlQGdGbDVeaWpxO0JeCnp2ejhSTigybDZZ
OTFXOWcoPk1yWkNoRDJGXyYjckN2fiE8ZjQ1SlQ2TX1PSGtVTl5XVlhUSlZee1ZgcjNDOWwwKAp6
cjNhXzFfMmFlbFdhbzV5c2BxWlckU2wlX3BVPT8wLU5KUzNBcERhYF5MRzs9ej50X1k8IW9nNV5z
RnpnPXlfOUwKejRRKnBvNmlMe3xpSEw8R0c5LXpyKSVWIU1tJGI7ZTJVPm1YSzJkbjtTZnBgS2lS
KmI0dHtmalFmM1ElYHIjNjJFCnpqNVNKeD42RmgpclZwYG8yJjshTVIhRHVCSV9xMXdLckJWd2V2
LXx2QFVmVDtBaktwKXJDUihJXmsqamdEZWcoKAp6ZEljP1c0bnkjbHZDY19Xck53TWpSfHpKTk5N
THJzbylUJXxGRnhjNHBTWGllWUorSm9iOWAwUkpCOypIIWIwRzcKenlqY0p1bH1BVFhnUlFEQFl1
cWNATnhgM29UOF5HS1Q3WTJ3QjFeSn5pPzA1SlN+fHs1Z3YwTyFuWTg7amhxMGlZCnpWUG9ORG8h
PDA7VVpnUXs5N0g3TzgkN3JfZn0kR3lDKjJhZChDYjVPX1NzUzZlMnhsYkNGSUAxNjltS2FjTkJL
Zgp6bmNPPyNEMG0+Wj9LSFUjMFR5ckhVUUxYZD9JPUU2TGAqPE56e1IpJlZefFNAbFpvNl5uLWVS
aiV4N1h3bGUmKlQKentPRWZKYWQ9PUtUc1MpRE5MQ0B5WSkmb3BCUDJjIzZgMXxkaGtzQWleUUFD
alZgSFBVXjNKVFhxaDlDU2tOcnN7CnpiUExrfjN3clRqUmlpWCZqc0VAI1IzWWVGRUw3QCY1cjdB
VDdfU3hYYU8mfU9xbzFkcThHM3tRTHxtVmxgIzF9SAp6X2kxWSZUfU4rakM0Oyo2RjQ7UyVZaEVm
a2JGQ282WT9wRWRsa2JGWW51YXR2e1AjWD5qeTRmPCFMVF9CV0FPZ3QKenIpWHk3WVYtaXBSMkEp
PSZfKHdCaVliWDNjX29fWCRNdyo9MDBZIWA+KGhyQVZJZWFsR3JgJk5xT2JnQ1BzYVYkCno4OzA1
IVZfXjRCSUQheEdTTVZfKyRjbkdFXiomSHZWYHdObVlXYV80QnsyKyk4b2FrVFp1bUh6KysxQWlV
dj52Mgp6I25GPipMI0MrIzYpKlZscmpqU0hMVGNiTTQxKyVuSjk/MUR7XmROeGpHKXQ4azBgbmNX
SXVAT01eWHlucWZIMEcKej1Xd0dgTWQ5fE5IMGUpWTd1fTx5TH12VEdRNVl3bnhlYURiKSl9YX5n
RT58TldpMW1oXiVCSlNXJk5kNHlHN0whCnpBQHV9I29ncD9OaDRBcldWTyVreXJ9bG9oJEgxfG56
UV9SV3ooRWZZSHZDQ3E0PXF1Til6KEdkJXNOWjFxUkZHdgp6XmhjPjxQZlZGZXZjO0JXQkNyJl45
Wi1AU008Y1k2PkJuR2BxclQrfD40VXcpZlhEY1ghNURIWk41TTRvPHFoc08Kekx6ZE1DSlh7K3xC
eFc7d0I8ZFIyWEVocjZMenBUfDApQyRiVVcyU0k7R2dwe24tMSZlaT1AQSZFYGN2V3Y0cGNrCnpo
cTRUUGopIUg5WDkybkwmSGFYSkFTYU5naF9ZekBoPWU1Tm4yQ3J9KyluSUE8WGQ4TE8oOUduZTQl
bnpIQEVNdQp6cDAzP2NFTkg9eD1sSjE3OC0jaWM3dChWVWFuPkhoOSohUTdDcWN2akx9QTFfKUp4
UFZSMjV1MispcD9pXmxTfDQKempRekIhYmQ4RXkke3drRHNtdHRjUjJLcGwjQ1N3XyU2Tn0tb14m
P3lGRGFMKVJWa3xzcDMxKnNueG1VVG4rclgxCnp1TFhgI1c9KlpgdCV8TF9qJiFCKnI7NT1yUVpM
Y3AkITtuS2crOVVtbHx5cXhHZUMxal5GX2xhNU44SDVRPndkYgp6MnAxV1pjZDV1b1RjP2lrWVUz
X29FZFopPXdZRGx7RG1eUHNIVHtidyVMfmVhUjNLOGNHTH0pX3ZKVkpyTVFhNkQKek5tcH41Z09B
JmYjLX0mUkFDKStqVH5hcVcxNmRKSiE8ezFTQlJ3TkM8QXZoQU5Fa159eGwoeGF0O1FeSmZFYG14
Cno8N2A4WWFleiRVdSlremk1PThKc2hIVWd+dn4xPTJDSm18SiplM2c/NHEmYU51fD9xMlAjKioy
QWg5Oz82aW96UAp6MWlNcXI+LStAcyMwSjB4cGM4VSooe2V2P2VjR1BpeU19eSt7TFBJXlB6P0pp
M2E4IzVlZm4/YihLV2MtZkJVfF4Kem56Tz5jNHgpY3FDO3JRbSlNdkY7Vj93MjBrfGQ5YTQ9O2dD
TEZqSX5GQWtJWGVnQ0tyNGxHNz9yYkxTPUxuQHxMCnozJEwpPj1GamU2eExsIys3TnE9LVMpTVR3
LUFFc2FvdE85Uj98YE56T31PekxCKGVke001SVl2K1ptRTIpLXlqbgp6MjtMZE5CNmwyMDFubn1V
c2I3OFhQdnN2KD1hIW9Pdj1NdCVHKnowU1pkUCpJN2QwUVV4UURLTy1UfjRHPXp0QWMKekBCNS1W
dWBaZyp0dGZOYlJwJk5pWj9ealYrXjxVbTQ1SDA1Z1okKm42fF5DdGEqMkdZXjV6ajB7Y1hyenVB
eExyCnojK009a1ZPdEBpVzVgRDBMJjsmQi1yOUJBYnJoNENSP1pnKGhmR0QkUDZkOV4yO156SHJD
O083cUNOKVppcGxNKgp6d1ZUVzJyQ1FpJV8lVXlQRGJITmRDOEBzQXdEWG56LUcmdlAoeGQ1JVUz
ZX4qLTNLbURvaipHNXNyS1lTJmBhR1MKel5+bG5MOGNDKkFWY01ncUJ4dCsyTjV0Z25XellfPCYq
e09TPzhDdjg3WWwwUTQ0dVk3YHZRUj9WPVlydmtgdXd1CnpeeTVhVSEodVdGbyl6OGYrdmw/RWxv
OCZqdTVxM3pIbEE+cDxwRnhhWG1yRnM5PE5SZCtEcXh5YUkhbHFBIWVaKQp6OD9+USV1TklmelVh
ZjN3eW9uOEFWKTYyUlpSWHpJIT1WIVdnYG9TMSt3cj9TNko3X1AjOGUtQGdSckc9JDwhOVEKenUq
QE4+S3RoQ0toXnYqaW1BOFI2IypNQXRoWEtxSypDMzxfcm8rITMmfHNWM1ZPI3FmeDM1PH5zRiN3
Vm0jd1hyCnp2N25kRnViMC1NbStQc1FkODFjfHh0eUdeb1RhPit7YCRVVlVyd3ooIWI5XioqUDc+
UnpGeF8zVEs7O3ZUdEttJAp6R0l9eVZAUXVncE9hNGxQQGsrd1JPMVJpY1Q9ejs7OzdaYW5BT3J5
cjlTLT5ONWZCZG5nd1g8R084fTlVZko3KUQKejZkdz57cih9YzdfISo1Q2tmQT5nIzQ2e2BvQ0Fk
Vz04ZnYtTyQxRXQ3KT9TMElKVHVZYn1jd3xHJnJFe2I9I2xuCnpjSjFxUzRDPGhNJmZCdWl5Rmxr
MTljUVQ1Knx5NXJ1SmhUQiRyJl89YXtCfTJ0fnVxN0l3alB0VXxYU0oqUkVoawp6elgwbE12TXBu
PllpK1dsWkRJKnVlfShMRk4jdF5jYiQmXkNlZyNpO2lBIX5iVDZqclhjIWd3b05vYWI3eHBoZ2cK
emIlaHt0aTcjPTUtaDI3M19pRmd3amB3Z1h5OCFoSElDMTNGc1RuMm17cWRYI2VhalV9PFVHWmBG
Oz1AVjxoMFF2Cno7QGR0cjsjIV5KN1ZpN21DYUlARl9GS0kzc2Q8OF9lTWJvdXJCNiZ+Q2R1bSpn
KUpKZXlAUDtGPCNQfHB0JFkydQp6dnx1Y0E7Sm1lWD9lJD5ZVyE0a0lUUXZXTz90VDtWZjhnKHh7
fnhUVThNbU1PJWVyU3g/Q1A2IVNPMC01e3UkazQKekNmNDxoeCt+UXUrVyYmOUNRanc4bnJvRyhe
SXJCTUUlfmJ8bWdOXkYzRWV7YG1ofXh3JU1LXn13YEJnYy1IUnA7CnpeKHstUTR5UEAqMkxGT3ZD
alVFdm0qZFYjOSpASyFSOXBTRT4jTlZfezxSYHFhQFNQUGE8R307fDJ9UVYtT1U3Zwp6UTJuMSYt
ZFlZamw2WGpaRGZ3Pl8/RUNySkZ9NFVnT3paYEkrP1pGZzlVY3x8aEVJU34xaXd8JllrLUdPKU5o
YlEKbVg0UnRzPExFMWIye2N8OEFeSD94V0w2X1JlSn15KktmYlhWMllQaklhUV8xbV84QzxHCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVy
L2ZvbnRzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzI3YmJjOGQ1MmZkZTA0ODU0NGUy
MDBlMmU1YWVjNTc0NDFhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1y
ZWd1bGFyLmVvdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuc3ZnCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9u
dHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhh
bGZsaW5ncy1yZWd1bGFyLndvZmYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2luZGV4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVkZmMxZGNmMzZlNjQ3YmJiODY1ZmFhYzE0ZjcxMjFjZTUwNmI3ZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sCkBAIC0wLDAgKzEsMjIxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ZW4+Cis8bWV0YSBjaGFyc2V0PVVURi04PgorPHRpdGxlPldlYiB0
ZXN0czwvdGl0bGU+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3RyYXAu
bWluLmNzcyc+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3RyYXAtdGhl
bWUubWluLmNzcyc+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J3J1bm5lci5jc3MnPgor
PHNjcmlwdCBzcmM9Jy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9J3J1bm5lci5qcyc+PC9zY3JpcHQ+CisKKworPGhlYWRlciBjbGFzcz0ibmF2YmFy
IG5hdmJhci1pbnZlcnNlIG5hdmJhci1maXhlZC10b3AiPgorICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgorICAgICAgPGEgY2xhc3M9Im5h
dmJhci1icmFuZCIgaHJlZj0iIyI+CisgICAgICAgIDxpbWcgc3JjPSdsb2dvLnN2Zycgd2lkdGg9
JzUwJyBoZWlnaHQ9JzUwJyBhbHQ9J0xvZ28gZm9yIHRoZSBXUFQgUnVubmVyJz4KKyAgICAgICAg
V2ViIFBsYXRmb3JtIFRlc3RzIFJ1bm5lcgorICAgICAgPC9hPgorICAgIDwvZGl2PgorICA8L2Rp
dj4KKzwvaGVhZGVyPgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJ0ZXN0
Q29udHJvbCIgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgorICAgIDxkaXYgY2xhc3M9InBh
bmVsLWJvZHkiPgorICAgICAgPGZvcm0gaWQ9J29wdGlvbnMnIGNsYXNzPSdob3Jpem9udGFsLWZv
cm0nIG9uc3VibWl0PSdyZXR1cm4gZmFsc2U7Jz4KKworICAgICAgICA8ZGl2IGNsYXNzPSJmb3Jt
LWdyb3VwIj4KKyAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFiZWwi
PlRlc3QgdHlwZXMgdG8gaW5jbHVkZTwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29s
LXNtLTkiPgorICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1j
aGVja2JveCBjaGVja2VkIHZhbHVlPSJ0ZXN0aGFybmVzcyIgaWQ9J3RoJyBjbGFzcz0ndGVzdC10
eXBlJz4KKyAgICAgICAgICAgICAgSmF2YVNjcmlwdCB0ZXN0cworICAgICAgICAgICAgPC9sYWJl
bD4KKyAgICAgICAgICAgIDxsYWJlbD4KKyAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Y2hlY2ti
b3ggY2hlY2tlZCB2YWx1ZT0icmVmdGVzdCIgaWQ9J3JlZicgY2xhc3M9J3Rlc3QtdHlwZSc+Cisg
ICAgICAgICAgICAgIFJlZnRlc3RzCisgICAgICAgICAgICA8L2xhYmVsPgorICAgICAgICAgICAg
PGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1jaGVja2JveCBjaGVja2VkIHZhbHVl
PSJtYW51YWwiIGlkPSdtYW4nIGNsYXNzPSd0ZXN0LXR5cGUnPgorICAgICAgICAgICAgICBNYW51
YWwgdGVzdHMKKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgPC9kaXY+CisgICAgICAg
IDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAgICAgICAgIDxs
YWJlbCBmb3I9InBhdGgiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5SdW4gdGVzdHMg
dW5kZXIgcGF0aDwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgorICAg
ICAgICAgICAgPGlucHV0IHZhbHVlPSIvIiBpZD0ncGF0aCcgY2xhc3M9J3BhdGggZm9ybS1jb250
cm9sJyBkaXNhYmxlZD4KKyAgICAgICAgICAgIDxsYWJlbD4KKyAgICAgICAgICAgICAgPGlucHV0
IHR5cGU9Y2hlY2tib3ggaWQ9J3VzZV9yZWdleCc+CisgICAgICAgICAgICAgIFVzZSByZWd1bGFy
IGV4cHJlc3Npb24KKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgPC9kaXY+CisgICAg
ICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAgICAgICAg
IDxsYWJlbCBmb3I9InRpbWVvdXRfbXVsdGlwbGllciIgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wt
bGFiZWwiPlRpbWVvdXQgbXVsdGlwbGllcjwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
Y29sLXNtLTkiPgorICAgICAgICAgICAgPGlucHV0IHR5cGU9bnVtYmVyIHZhbHVlPSIxIiBpZD0n
dGltZW91dF9tdWx0aXBsaWVyJyBjbGFzcz0ndGltZW91dF9tdWx0aXBsaWVyIGZvcm0tY29udHJv
bCc+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xh
c3M9ImZvcm0tZ3JvdXAiPgorICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29udHJv
bC1sYWJlbCI+RGVidWcgb3B0aW9uczwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29s
LXNtLTkiPgorICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1j
aGVja2JveCBpZD0ncmVuZGVyJyB2YWx1ZT0ncmVuZGVyJyBjbGFzcz0ncmVuZGVyJz4KKyAgICAg
ICAgICAgICAgU2hvdyBvdXRwdXQKKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgICA8
bGFiZWw+CisgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPWNoZWNrYm94IGlkPSdkdW1waXQnPgor
ICAgICAgICAgICAgICBEdW1wIEpTT04KKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAi
PgorICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+Q291bnQg
b2YgbWF0Y2hpbmcgdGVzdHM8L2xhYmVsPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05
IiBpZD0idGVzdGNvdW50Ij4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisKKyAg
ICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29s
LXNtLW9mZnNldC0zIGNvbC1zbS05Ij4KKyAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0
IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHRvZ2dsZVN0YXJ0IiBkaXNhYmxlZD5TdGFydDwvYnV0
dG9uPgorICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSdzdWJtaXQnIGNsYXNzPSJidG4gYnRuLWlu
Zm8gdG9nZ2xlUGF1c2UiIGRpc2FibGVkPlBhdXNlPC9idXR0b24+CisgICAgICAgICAgPC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgPC9mb3JtPgorICAgIDwvZGl2PgorICA8L2Rpdj4KKwor
ICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgorICAgIDxwPgorICAgICAgVG8gcnVuIGEgc2V0
IG9mCisgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9ibG9iL21hc3Rlci9SRUFETUUubWQiPndlYi1wbGF0Zm9ybS10ZXN0czwvYT4KKyAgICAg
IHRlc3RzLCBzcGVjaWZ5IGEgcGF0aCB2YWx1ZSBpbiB0aGUgPGI+UnVuIHRlc3RzIHVuZGVyIHBh
dGg8L2I+IGZpZWxkIGFib3ZlLiBFeGFtcGxlIHBhdGhzOgorICAgIDwvcD4KKyAgICA8dWw+Cisg
ICAgICA8bGk+PGNvZGU+LzwvY29kZT4gLSBydW5zIGFsbCBvZiB0aGUgdGVzdHMgZnJvbSB0aGUg
cm9vdCBkb3duPC9saT4KKyAgICAgIDxsaT48Y29kZT4vd2Vic29ja2V0czwvY29kZT4gLSBydW5z
IGFsbCBvZiB0aGUKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vdzNjLXRlc3Qub3JnL3dlYnNv
Y2tldHMvIj53ZWJzb2NrZXRzPC9hPiB0ZXN0czwvbGk+CisgICAgICA8bGk+PGNvZGU+L3dlYnNv
Y2tldHMvY29uc3RydWN0b3I8L2NvZGU+IC0gcnVucyBhbGwgb2YgdGhlCisgICAgICAgICAgPGEg
aHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy93ZWJzb2NrZXRzL2NvbnN0cnVjdG9yLyI+d2Vic29j
a2V0cy9jb25zdHJ1Y3RvcjwvYT4gdGVzdHM8L2xpPgorICAgICAgPGxpPjxjb2RlPi9odG1sL3N5
bnRheC9wYXJzaW5nPC9jb2RlPiAtIHJ1bnMgYWxsIG9mIHRoZQorICAgICAgICAgIDxhIGhyZWY9
Imh0dHA6Ly93M2MtdGVzdC5vcmcvaHRtbC9zeW50YXgvcGFyc2luZy8iPmh0bWwvc3ludGF4L3Bh
cnNpbmc8L2E+IHRlc3RzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPgorICAgICAgTXVsdGlwbGUg
dGVzdCBwYXRocyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNlcGFyYXRpbmcgdGhlbSB3aXRoIGNvbW1h
IG9yIHdoaXRlc3BhY2UuIEZvciBleGFtcGxlLAorICAgICAgPGNvZGU+L2pzLCAvaHRtbDwvY29k
ZT4gd2lsbCBydW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93M2MtdGVzdC5vcmcvanMvIj5qczwvYT4g
PGVtPmFuZDwvZW0+IDxhIGhyZWY9Imh0dHA6Ly93M2MtdGVzdC5vcmcvaHRtbC8iPmh0bWw8L2E+
CisgICAgICB0ZXN0cy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICA8YSBocmVmPSJodHRwOi8v
d3d3Lnczc2Nob29scy5jb20vanNyZWYvanNyZWZfb2JqX3JlZ2V4cC5hc3AiIHRhcmdldD0iX2Js
YW5rIj5KYXZhc2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnM8L2E+IGFyZSBhbHNvIHN1cHBvcnRl
ZCBmb3IgZmlsdGVyaW5nLiBXaGVuIHRoZSBvcHRpb24gaXMgY2hlY2tlZCwKKyAgICAgIG9ubHkg
YSB0ZXN0IHBhdGggbWF0Y2hpbmcgdGhlIHJlZ2V4IHBhdHRlcm4gd2lsbCBydW4uIEZvciBleGFt
cGxlLCB5b3UgY2FuIHNwZWNpZnkgPGNvZGU+Xi9qcy98Xi9odG1sLzwvY29kZT4KKyAgICAgIHRv
IHJ1biB0aGUgPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy9qcy8iPmpzPC9hPiA8ZW0+YW5k
PC9lbT4gPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy9odG1sLyI+aHRtbDwvYT4KKyAgICAg
IHRlc3RzLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIElmIHRoZSB0ZXN0IHJ1bm5lciBpcyBy
dW4gb25saW5lLCB0aGUgc2V0IG9mIHRlc3RzIGF2YWlsYWJsZSB0byBydW4gY2FuIGJlIGZvdW5k
IGluIHRoZQorICAgICAgPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy8iPnczYy10ZXN0Lm9y
ZzwvYT4gdGVzdCByZXBvc2l0b3J5LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFRlc3RzIHdp
bGwgcnVuIGluIGEgbmV3IHdpbmRvdy4gRm9yIHJlZnRlc3RzIGFuZCBtYW51YWwgdGVzdHMgaXTi
gJlzIGJlc3QKKyAgICAgIHRvIHB1dCB0aGF0IHdpbmRvdyBzaWRlLWJ5LXNpZGUgd2l0aCB0aGlz
IG9uZS4KKyAgICA8L3A+CisgIDwvZGl2PgorCisgIDxkaXYgaWQ9Im91dHB1dCI+CisgICAgPGRp
diBjbGFzcz0ic3VtbWFyeSBjbGVhcmZpeCI+CisgICAgICA8aDQ+UHJvZ3Jlc3M8L2g0PgorICAg
ICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgorICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1i
YXIiIHJvbGU9InByb2dyZXNzYmFyIgorICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9IjAiIGFy
aWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjAiIHN0eWxlPSJ3aWR0aDogMCI+CisgICAg
ICAgICAgMCUKKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgaWQ9ImN1
cnJlbnRfdGVzdCI+CisgICAgICAgIDxsYWJlbD5DdXJyZW50IHRlc3Q6PC9sYWJlbD48YT48L2E+
CisgICAgICA8L2Rpdj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ndGFibGUnPgorICAgICAgICA8dGhl
YWQ+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAgICAgICA8
dGg+UGFzc2VkPC90aD4KKyAgICAgICAgICAgIDx0aD5GYWlsZWQ8L3RoPgorICAgICAgICAgICAg
PHRoPlRpbWVvdXRzPC90aD4KKyAgICAgICAgICAgIDx0aD5FcnJvcnM8L3RoPgorICAgICAgICAg
ICAgPHRoPk5vdCBSdW48L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGhlYWQ+Cisg
ICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+PC90ZD4KKyAg
ICAgICAgICAgIDx0ZCBjbGFzcz0nUEFTUyc+MDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9
J0ZBSUwnPjA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSdUSU1FT1VUJz4wPC90ZD4KKyAg
ICAgICAgICAgIDx0ZCBjbGFzcz0nRVJST1InPjA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNz
PSdOT1RSVU4nPjA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgIDx0cj4KKyAgICAg
ICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICAgIERpc3Bs
YXk6CisgICAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAg
ICAgICA8dGQ+PGlucHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5LWZpbHRl
ciIgdmFsdWU9IlBBU1MiIGNoZWNrZWQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlw
ZT1jaGVja2JveCBjbGFzcz0icmVzdWx0LWRpc3BsYXktZmlsdGVyIiB2YWx1ZT0iRkFJTCIgY2hl
Y2tlZD48L3RkPgorICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPWNoZWNrYm94IGNsYXNzPSJy
ZXN1bHQtZGlzcGxheS1maWx0ZXIiIHZhbHVlPSJUSU1FT1VUIiBjaGVja2VkPjwvdGQ+CisgICAg
ICAgICAgICA8dGQ+PGlucHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5LWZp
bHRlciIgdmFsdWU9IkVSUk9SIiBjaGVja2VkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PGlucHV0
IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5LWZpbHRlciIgdmFsdWU9Ik5PVFJV
TiIgY2hlY2tlZD48L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAg
ICA8L3RhYmxlPgorICAgICAgPGEgY2xhc3M9Impzb25SZXN1bHRzIGJ0biBidG4tcHJpbWFyeSBw
dWxsLXJpZ2h0Ij5Eb3dubG9hZCBKU09OIHJlc3VsdHM8L2E+CisgICAgPC9kaXY+CisKKyAgICA8
ZGl2IGNsYXNzPSJyZXN1bHRzIj4KKyAgICAgIDxkaXYgaWQ9Im1hbnVhbFVJIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ncGFuZWwgcGFuZWwtcHJpbWFyeSc+CisgICAgICAgICAgPGRpdiBjbGFzcz0n
cGFuZWwtaGVhZGluZyc+CisgICAgICAgICAgICA8aDQgY2xhc3M9J3BhbmVsLXRpdGxlJz5NYW51
YWwgVGVzdGluZzwvaDQ+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
cGFuZWwtYm9keSByZWZ0ZXN0VUkiPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgIFRo
ZSBjdXJyZW50IHRlc3QgcmVxdWlyZXMgbWFudWFsIHJlc3VsdCBtYXJraW5nLgorICAgICAgICAg
ICAgICBUZXN0IGFuZCByZWYgc2hvdWxkIGNvbXBhcmUgPHN0cm9uZyBjbGFzcz0icmVmVHlwZSB0
ZXh0LXByaW1hcnkiPjwvc3Ryb25nPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+
CisgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4taW5mbyB0ZXN0Ij5TaG93IFRl
c3Q8L2J1dHRvbj4KKyAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1pbmZvIHJl
ZiI+U2hvdyBSZWZlcmVuY2U8L2J1dHRvbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJl
ZnRlc3RXYXJuIj48L3NwYW4+CisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4KKyAgICAgICAgICAgIFRoZSB0ZXN0
IGhhczoKKyAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBwYXNzIj5Q
YXNzZWQ8L2J1dHRvbj4KKyAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4taW5mbyBz
a2lwIj5Ob3QgUnVuPC9idXR0b24+CisgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRu
LWRhbmdlciBmYWlsIj5GYWlsZWQ8L2J1dHRvbj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGhyPgorICAgICAgPGg0PkRldGFpbHM8L2g0
PgorICAgICAgPHRhYmxlIGNsYXNzPSd0YWJsZSc+CisgICAgICAgIDx0aGVhZD4KKyAgICAgICAg
ICA8dHI+CisgICAgICAgICAgICA8dGg+VGVzdAorICAgICAgICAgICAgPHRoPlN0YXR1cworICAg
ICAgICAgICAgPHRoPk1lc3NhZ2UKKyAgICAgICAgICAgIDx0aD5TdWJ0ZXN0IFBhc3MgUmF0ZQor
ICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGhlYWQ+CisgICAgICAgIDx0Ym9keT48L3Rib2R5
PgorICAgICAgPC90YWJsZT4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKzwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvbG9nby5zdmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9sb2dvLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTI1Nzc2YjZmNGM3YTZmOWMw
Nzk5NjM3MWIwMjZmMjRkMzE0NmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvbG9nby5zdmcKQEAgLTAs
MCArMSw4IEBACis8c3ZnIHdpZHRoPSI0NTNweCIgaGVpZ2h0PSI0NTNweCIgdmlld0JveD0iMCAw
IDQ1MyA0NTMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgIDxjaXJjbGUg
c3Ryb2tlPSIjZWQ1NTY1IiBzdHJva2Utd2lkdGg9IjIwIiBmaWxsPSIjZmZmIiBjeD0iMjI2LjUi
IGN5PSIyMjYuNSIgcj0iMjEzLjUiPjwvY2lyY2xlPgorICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0
ZSgxNjAgMjUwKSI+CisgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMi4yNSAwIDAgLTIuMjUgMCAw
KSI+CisgICAgICA8cGF0aCBkPSJtMCAwYzAuMjUyLTAuMzMzIDAuNTA4LTAuNjU5IDAuNzY2LTAu
OTc0LTEuMjY5LTMuNzY0LTIuMzY4LTcuNzQ5LTMuNDQ3LTExLjM4My0wLjE2Ni0wLjA1My0wLjMy
OS0wLjExNi0wLjQ4Ni0wLjE5NC04LjU3MiA4LjIxMS0yLjA1NiAxMS4zNjQgMy4xNjcgMTIuNTUx
bTU5LjgwOSA0NS41N2MyLjg5OSAyMC4xMTgtMTAuMDg0IDM4LjYzNS0yOSA0MS4zNjItMTguOTE1
IDIuNzI2LTM2LjYwMS0xMS4zNzEtMzkuNS0zMS40ODktMi40MTgtMTYuNzc0IDYuMjEyLTMyLjQy
NyAyMC4xMTItMzguNzVsLTAuMDUgMC4wMTQtMC4zMjMtMi4yNDJjMC4yMTktMC4wNDkgMC40Mjct
MC4wOSAwLjY0LTAuMTM0LTAuMTIyLTAuMDI3LTAuMjQ1LTAuMDUzLTAuMzY1LTAuMDg2bC0wLjAw
NCAwLjAxM3MtMC4wNDItMC4wMTctMC4xMDYtMC4wNDJjLTAuNDY1LTAuMTM3LTAuOTE1LTAuMzE5
LTEuMzQ5LTAuNTQ0LTMuNTAyLTEuNDI0LTEyLjI4NS01LjA5NS0xNC4yODctNi44NjcgMCAwIDAu
OTI3LTEuNjY1IDIuMjU0LTMuNzA0LTE3LjMzNS0yLjQyMS02LjUyMi0xNS42My0zLjE3Ni0xOS4y
Ni0wLjAxNS0wLjI5NiAwLjAwNC0wLjU5MiAwLjAzOS0wLjg4OC0yLjU2Mi0xLjY3Ny01Ljc3Mi00
LjE5NS03Ljc3Mi03LjI5IDAgMCAwLjU1Mi0wLjE4MiAxLjQ1OC0wLjUzNnYtMC4wMDFsMC4wMTYt
MC4wMDVjMS4xODItMC40NjMgMi45Ni0xLjIxOSA0LjkxNC0yLjI0OC0zLjAwNC0xMy41NTctNy41
NDItOS42NzctMTAuNTg5LTQuNjgzIDAuNzQ1IDIuMjMyIDAuNzQxIDQuMjMtMC4yMDIgNS4zOTMt
MC42NiAwLjgxMS0xLjY4MSAxLjEwMS0yLjg4OSAwLjkzMS0wLjA4NyAwLjIyMi0wLjEzNSAwLjM0
OS0wLjEzNSAwLjM0OWwtMC4xMDgtMC4zOTdjLTAuMDU3LTAuMDEtMC4xMTUtMC4wMjEtMC4xNzMt
MC4wMzQgMC4wMDUgMC4wMDMgMC4wMDggMC4wMDUgMC4wMTMgMC4wMDggMCAwLTAuMDMyLTAuMDA4
LTAuMDc4LTAuMDIxLTAuNTA4LTAuMTE2LTEuMDQyLTAuMzA2LTEuNTkzLTAuNTY2LTIuNzU5LTEu
MTU4LTguMDIzLTQuMjQ4LTguNjM5LTExLjA4OC0wLjIwOC0xLjA1Ni0wLjIxMi0yLjAxNSAwLjAw
Mi0yLjgxMiAwLjAwMS0wLjAxNCAwLjAwMS0wLjAyNiAwLjAwMy0wLjA0IDAgMCAwLjUyNy00LjU2
MSA0LjI4OC0xLjg5NGwtMC4wMDIgMC4wMDNjMS44NjEgMC41MzYgNC4wMzQgMi4wMDMgNS45ODkg
NC4yMjYgMC42NjQgMC43NTUgMS4yNTYgMS41NDUgMS43NjggMi4zNDMgOC41MzctMTYuNzY4IDE0
Ljk3NCAzLjQwOSAxNS44MSA2LjIzIDIuMzA5LTEuNTM4IDQuNTI4LTMuNDI1IDYuMDE5LTUuNjQg
MCAwIDEuMTgyIDMuNDU4IDMuOTQyIDYuMzEyIDUuOTg0LTguOTU2IDEzLjM3NC0xMC40NjUgMTMu
Mzc0LTEwLjQ2NWwzLjgwMiA2LjE1MmMxMS4zMjgtNS41NjkgNy4zODItMTAuMzg1IDIuNzEzLTEz
LjI1My0xLjc1NyAxLjE5OC0zLjQyOCAxLjQ4NS00LjUzNyAwLjU1LTAuNzc1LTAuNjUzLTEuMTY2
LTEuODA3LTEuMi0zLjI0Ni0wLjE5OS0wLjA2OS0wLjMxMi0wLjEwNi0wLjMxMi0wLjEwNmwwLjMx
Ni0wLjE4NWMwLjAwMS0wLjA2OSAwLjAwMi0wLjEzOSAwLjAwNC0wLjIxLTAuMDAyIDAuMDA2LTAu
MDA0IDAuMDEyLTAuMDA2IDAuMDE5IDAgMCAwLjAwMy0wLjA0NCAwLjAwNy0wLjExMiAwLjAyNC0w
LjYwNCAwLjEwNC0xLjI0NyAwLjIzOS0xLjkyIDAuNTY0LTMuMzk1IDIuMzc4LTEwLjAxOSA4LjAx
My0xMS43NDEgMC44NTEtMC4zOTYgMS42NTItMC41NDIgMi4zNDktMC40MDcgMC4wMTIgMCAwLjAy
My0wLjAwMyAwLjAzNS0wLjAwMyAwIDAgMy44OTEtMC4wNDggMi4yMSA0Ljc0NWwtMC4wMDQtMC4w
MDRjLTAuMTc2IDIuMjU4LTEuMDg2IDUuMDE1LTIuNjU5IDcuNjI4LTAuNTM1IDAuODg4LTEuMTA5
IDEuNjk1LTEuNzAxIDIuNDEzIDE2LjM3NCA4LjA5NS0zLjE1IDE5LjU2Ny0zLjE1NiAxOS41N2wy
LjA2MiAzLjMzNi00LjU4NCAxLjAyOGMtMC41MTYgMC4xMTYtMS40NDYgMC40NTgtMi42MzkgMC45
NDkgMC42MS0wLjExNiAxLjIxOC0wLjIyNSAxLjgyMS0wLjMyMiAwLjIyMSAwLjYxNSAwLjQzMiAx
LjI0OSAwLjYzMSAxLjkxOCAxLjcxNSA1Ljc2NiAyLjM0IDEyLjU3NyAxLjgwMyAxOC43NmwxLjU0
NC0zLjYwMXMwLjY1NSAwLjQwNCAxLjYxMiAwLjgyN2wtMC4wODgtMC4xNjdjMy44MzItMjYuOTA2
IDE0LjYzMS0xMC42NjYgMTcuNDA3LTUuOTI0IDEuNDQ1IDAuMTI1IDIuODE5IDEuMjcgMy40NDgg
My4wNzQgMC44NjQgMi40NzUgMC4wMDIgNS4yNDItMS45MjYgNi4xODMtMS45MjcgMC45NDItNC4x
ODgtMC4zMDEtNS4wNS0yLjc3NC0wLjUzMy0xLjUyNC0wLjQwNi0zLjE1OCAwLjIxOC00LjQxLTYu
NjctMTMuMDQ0LTEwLjM2LTEuMDE2LTExLjY0NyA0LjgxIDAuNjY5IDAuMTQzIDEuMzU1IDAuMjEg
MS45OTggMC4xMzUgMCAwLTQuMTg1IDExLjIzNC0xMS43NDMgMTUuNjE4LTAuMDk3IDAuMTM2LTAu
MTkyIDAuMjc1LTAuMjkxIDAuNDA1LTAuMDU2LTAuMDE3LTAuMTE2LTAuMDI5LTAuMTc0LTAuMDQ0
bDAuMzQ1IDIuODMyYzAuNTY3IDAuMDQ2IDAuODcxIDAuMDk5IDAuODcxIDAuMDk5bDAuMDIxIDAu
MTQ2LTAuNjUgMC4xODFjMTguNTcyLTIuMTU4IDM1Ljc0NCAxMS43OTcgMzguNTk3IDMxLjU5MyIg
ZmlsbD0iI2VkNTU2NSIvPgorICAgIDwvZz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9y
ZXBvcnQuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9ydW5uZXIvcmVwb3J0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzI1ZjllMWJkYjA2MGMxNGQzMWZi
YjAwYjMxNTM1NzkzMjdlZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LmNzcwpAQCAtMCww
ICsxLDQzIEBACit0YWJsZSB7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30KKwor
dGJvZHkgeworICAgIGJvcmRlci10b3A6IHRoaW4gc29saWQ7CisgICAgYm9yZGVyLWJvdHRvbTog
dGhpbiBzb2xpZDsKK30KKworLnN0YXR1cyB7CisgICAgZm9udC12YXJpYW50OnNtYWxsLWNhcHM7
CisgICAgY29sb3I6d2hpdGU7CisgICAgdGV4dC1hbGlnbjpjZW50ZXI7CisgICAgZm9udC12YXJp
YW50OnNtYWxsLWNhcHM7Cit9CisKKy5QQVNTLCAuT0sgeworICAgIGJhY2tncm91bmQtY29sb3I6
Z3JlZW47Cit9CisKKy5GQUlMIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsKK30KKworLkVS
Uk9SLCAuTk9UUlVOLCAuTk9ORSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpibGFjazsKK30KKwor
LlRJTUVPVVQgeworICAgIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsKK30KKwordGQgeworICAgIHBh
ZGRpbmc6MC4yNWVtOworfQorCit0ci50ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiNkZGQ7
Cit9CisKK3RyLnN1YnRlc3QgeworICAgIGJhY2tncm91bmQtY29sb3I6I2VlZTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL3JlcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTJkZjA4YjgwNTk4OWM4
NDA4ZWMwZTVlOTBjMDY1MmM3MzRhNTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5CkBA
IC0wLDAgKzEsMzA5IEBACisjIGZsYWtlODogbm9xYQorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGpzb24KK2ltcG9ydCBz
eXMKK2Zyb20gY2dpIGltcG9ydCBlc2NhcGUKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1
bHRkaWN0CisKK2ltcG9ydCB0eXBlcworCisKK2RlZiBodG1sX2VzY2FwZShpdGVtLCBlc2NhcGVf
cXVvdGU9RmFsc2UpOgorICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgdHlwZXMuU3RyaW5nVHlwZXMp
OgorICAgICAgICBydiA9IGVzY2FwZShpdGVtKQorICAgICAgICBpZiBlc2NhcGVfcXVvdGU6Cisg
ICAgICAgICAgICBydiA9IHJ2LnJlcGxhY2UoJyInLCAiJnF1b3Q7IikKKyAgICAgICAgcmV0dXJu
IHJ2CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGl0ZW0KKworCitjbGFzcyBSYXcob2JqZWN0
KToKKyAgICAiIiJTaW1wbGUgd3JhcHBlciBhcm91bmQgYSBzdHJpbmcgdG8gc3RvcCBpdCBiZWlu
ZyBlc2NhcGVkIGJ5IGh0bWxfZXNjYXBlIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVl
KToKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisKKyAgICBkZWYgX191bmljb2RlX18oc2Vs
Zik6CisgICAgICAgIHJldHVybiB1bmljb2RlKHNlbGYudmFsdWUpCisKKworY2xhc3MgTm9kZShv
YmplY3QpOgorICAgICIiIk5vZGUgc3RydWN0dXJlIHVzZWQgd2hlbiBidWlsZGluZyBIVE1MIiIi
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGF0dHJzLCBjaGlsZHJlbik6CisgICAgICAg
ICNOZWVkIGxpc3Qgb2Ygdm9pZCBlbGVtZW50cworICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisg
ICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycworICAgICAgICBzZWxmLmNoaWxkcmVuID0gY2hpbGRy
ZW4KKworICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5hdHRyczoK
KyAgICAgICAgICAgICNOZWVkIHRvIGVzY2FwZQorICAgICAgICAgICAgYXR0cnNfdW5pY29kZSA9
ICIgIiArICIgIi5qb2luKCIlcz1cIiVzXCIiICUgKGh0bWxfZXNjYXBlKGtleSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbF9l
c2NhcGUodmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXNjYXBlX3F1b3RlPVRydWUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYu
YXR0cnMuaXRlcml0ZW1zKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhdHRyc191bmlj
b2RlID0gIiIKKyAgICAgICAgcmV0dXJuICI8JXMlcz4lczwvJXM+XG4iICUgKHNlbGYubmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzX3VuaWNvZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIi5qb2luKHVuaWNvZGUoaHRtbF9lc2Nh
cGUoaXRlbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciBpdGVtIGluIHNlbGYuY2hpbGRyZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5uYW1lKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVy
biB1bmljb2RlKHNlbGYpLmVuY29kZSgidXRmOCIpCisKKworY2xhc3MgUm9vdE5vZGUob2JqZWN0
KToKKyAgICAiIiJTcGVjaWFsIE5vZGUgcmVwcmVzZW50aW5nIHRoZSBkb2N1bWVudCByb290IiIi
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICpjaGlsZHJlbik6CisgICAgICAgIHNlbGYuY2hpbGRy
ZW4gPSBbIjwhRE9DVFlQRSBodG1sPiJdICsgbGlzdChjaGlsZHJlbikKKworICAgIGRlZiBfX3Vu
aWNvZGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIiLmpvaW4odW5pY29kZShpdGVtKSBmb3Ig
aXRlbSBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAg
IHJldHVybiB1bmljb2RlKHNlbGYpLmVuY29kZSgidXRmOCIpCisKKworZGVmIGZsYXR0ZW4oaXRl
cmFibGUpOgorICAgICIiIkZsYXR0ZW4gYSBsaXN0IG9mIGxpc3RzIGJ5IG9uZSBsZXZlbCBzbyB0
aGF0CisgICAgWzEsWyJhYmMiXSwgImRlZiIsWzIsIFszXV1dCisgICAgYmVjb21lcworICAgIFsx
LCAiYWJjIiwgImRlZiIsIDIsIFszXV0iIiIKKyAgICBydiA9IFtdCisgICAgZm9yIGl0ZW0gaW4g
aXRlcmFibGU6CisgICAgICAgIGlmIGhhc2F0dHIoaXRlbSwgIl9faXRlcl9fIikgYW5kIG5vdCBp
c2luc3RhbmNlKGl0ZW0sIHR5cGVzLlN0cmluZ1R5cGVzKToKKyAgICAgICAgICAgIHJ2LmV4dGVu
ZChpdGVtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnYuYXBwZW5kKGl0ZW0pCisgICAg
cmV0dXJuIHJ2CisKKworY2xhc3MgSFRNTChvYmplY3QpOgorICAgICIiIlNpbXBsZSBIVE1MIHRl
bXBsYXRpbmcgc3lzdGVtLiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGNhbiBjcmVhdGUKKyAg
ICBlbGVtZW50IG5vZGVzIGJ5IGNhbGxpbmcgbWV0aG9kcyB3aXRoIHRoZSBzYW1lIG5hbWUgYXMg
dGhlIGVsZW1lbnQsCisgICAgcGFzc2luZyBpbiBjaGlsZHJlbiBhcyBwb3NpdGlvbmFsIGFyZ3Vt
ZW50cyBvciBhcyBhIGxpc3QsIGFuZCBhdHRyaWJ1dGVzCisgICAgYXMga2V5d29yZCBhcmd1bWVu
dHMsIHdpdGggXyByZXBsYWNpbmcgLSBhbmQgdHJhaWxpbmcgXyBmb3IgcHl0aG9uIGtleXdvcmRz
CisKKyAgICBlLmcuCisKKyAgICBoID0gSFRNTCgpCisgICAgcHJpbnQoaC5odG1sKAorICAgICAg
ICBodG1sLmhlYWQoKSwKKyAgICAgICAgaHRtbC5ib2R5KFtodG1sLmgxKCJIZWxsbyBXb3JsZCEi
KV0sIGNsYXNzXz0iYm9keS1jbGFzcyIpCisgICAgKSkKKyAgICBXb3VsZCBnaXZlCisgICAgPCFE
T0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IGNsYXNzPSJib2R5LWNsYXNzIj48
aDE+SGVsbG8gV29ybGQhPC9oMT48L2JvZHk+PC9odG1sPiIiIgorICAgIGRlZiBfX2dldGF0dHJf
XyhzZWxmLCBuYW1lKToKKyAgICAgICAgZGVmIG1ha2VfaHRtbChzZWxmLCAqY29udGVudCwgKiph
dHRycyk6CisgICAgICAgICAgICBmb3IgYXR0cl9uYW1lIGluIGF0dHJzLmtleXMoKToKKyAgICAg
ICAgICAgICAgICBpZiAiXyIgaW4gYXR0cl9uYW1lOgorICAgICAgICAgICAgICAgICAgICBuZXdf
bmFtZSA9IGF0dHJfbmFtZS5yZXBsYWNlKCJfIiwgIi0iKQorICAgICAgICAgICAgICAgICAgICBp
ZiBuZXdfbmFtZS5lbmRzd2l0aCgiLSIpOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X25h
bWUgPSBuZXdfbmFtZVs6LTFdCisgICAgICAgICAgICAgICAgICAgIGF0dHJzW25ld19uYW1lXSA9
IGF0dHJzLnBvcChhdHRyX25hbWUpCisgICAgICAgICAgICByZXR1cm4gTm9kZShuYW1lLCBhdHRy
cywgZmxhdHRlbihjb250ZW50KSkKKworICAgICAgICBtZXRob2QgPSB0eXBlcy5NZXRob2RUeXBl
KG1ha2VfaHRtbCwgc2VsZiwgSFRNTCkKKyAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCBtZXRo
b2QpCisgICAgICAgIHJldHVybiBtZXRob2QKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqY2hp
bGRyZW4pOgorICAgICAgICByZXR1cm4gUm9vdE5vZGUoKmZsYXR0ZW4oY2hpbGRyZW4pKQorCisK
K2ggPSBIVE1MKCkKKworCitjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CisgICAgIiIiU2ltcGxl
IGhvbGRlciBmb3IgdGhlIHJlc3VsdHMgb2YgYSBzaW5nbGUgdGVzdCBpbiBhIHNpbmdsZSBVQSIi
IgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0KToKKyAgICAgICAgc2VsZi50ZXN0ID0gdGVz
dAorICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQorCisgICAgZGVmIF9fY21wX18oc2VsZiwgb3Ro
ZXIpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ID09IG90aGVyLnRlc3QKKworICAgIGRlZiBf
X2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi50ZXN0KQorCisKK2RlZiBs
b2FkX2RhdGEoYXJncyk6CisgICAgIiIiTG9hZCBkYXRhIHRyZWF0aW5nIGFyZ3MgYXMgYSBsaXN0
IG9mIFVBIG5hbWUsIGZpbGVuYW1lIHBhaXJzIiIiCisgICAgcGFpcnMgPSBbXQorICAgIGZvciBp
IGluIHhyYW5nZSgwLCBsZW4oYXJncyksIDIpOgorICAgICAgICBwYWlycy5hcHBlbmQoYXJnc1tp
OmkrMl0pCisKKyAgICBydiA9IHt9CisgICAgZm9yIFVBLCBmaWxlbmFtZSBpbiBwYWlyczoKKyAg
ICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgcnZbVUFdID0ganNv
bi5sb2FkKGYpCisKKyAgICByZXR1cm4gcnYKKworCitkZWYgdGVzdF9pZChpZCk6CisgICAgIiIi
Q29udmVydCBhIHRlc3QgaWQgaW4gSlNPTiBpbnRvIGFuIGltbXV0YWJsZSBvYmplY3QgdGhhdAor
ICAgIGNhbiBiZSB1c2VkIGFzIGEgZGljdGlvbmFyeSBrZXkiIiIKKyAgICBpZiBpc2luc3RhbmNl
KGlkLCBsaXN0KToKKyAgICAgICAgcmV0dXJuIHR1cGxlKGlkKQorICAgIGVsc2U6CisgICAgICAg
IHJldHVybiBpZAorCisKK2RlZiBhbGxfdGVzdHMoZGF0YSk6CisgICAgdGVzdHMgPSBkZWZhdWx0
ZGljdChzZXQpCisgICAgZm9yIFVBLCByZXN1bHRzIGluIGRhdGEuaXRlcml0ZW1zKCk6CisgICAg
ICAgIGZvciByZXN1bHQgaW4gcmVzdWx0c1sicmVzdWx0cyJdOgorICAgICAgICAgICAgaWQgPSB0
ZXN0X2lkKHJlc3VsdFsidGVzdCJdKQorICAgICAgICAgICAgdGVzdHNbaWRdIHw9IHNldChzdWJ0
ZXN0WyJuYW1lIl0gZm9yIHN1YnRlc3QgaW4gcmVzdWx0WyJzdWJ0ZXN0cyJdKQorICAgIHJldHVy
biB0ZXN0cworCisKK2RlZiBncm91cF9yZXN1bHRzKGRhdGEpOgorICAgICIiIlByb2R1Y2UgYSBs
aXN0IG9mIFVBcyBhbmQgYSBkaWN0aW9uYXJ5IG1hcHBpbmcgc3BlY2lmaWMgdGVzdHMgdG8gdGhl
aXIKKyAgICBzdGF0dXMgaW4gYWxsIFVBcyBlLmcuCisgICAgWyJVQTEiLCAiVUEyIl0sIHsidGVz
dF9pZCI6eyJoYXJuZXNzIjp7IlVBMSI6IChzdGF0dXMxLCBtZXNzYWdlMSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVBMiI6IChzdGF0dXMyLCBtZXNzYWdl
Mil9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdHMiOnsic3VidGVz
dDEiOiAiVUExIjogKHN0YXR1czEtMSwgbWVzc2FnZTEtMSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVQTIiOiAoc3RhdHVzMi0xLCBt
ZXNzYWdlMi0xKX19fQorICAgIFN0YXR1cyBhbmQgbWVzc2FnZSBhcmUgTm9uZSBpZiB0aGUgdGVz
dCBkaWRuJ3QgcnVuIGluIGEgcGFydGljdWxhciBVQS4KKyAgICBNZXNzYWdlIGlzIE5vbmUgaWYg
dGhlIHRlc3QgZGlkbid0IHByb2R1Y2UgYSBtZXNzYWdlIiIiCisgICAgdGVzdHMgPSBhbGxfdGVz
dHMoZGF0YSkKKworICAgIFVBcyA9IGRhdGEua2V5cygpCisKKyAgICBkZWYgcmVzdWx0KCk6Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiaGFybmVzcyI6IGRpY3QoKFVBLCAoTm9uZSwg
Tm9uZSkpIGZvciBVQSBpbiBVQXMpLAorICAgICAgICAgICAgInN1YnRlc3RzIjogTm9uZSAgIyBp
bml0IHRoaXMgbGF0ZXIKKyAgICAgICAgfQorCisgICAgcmVzdWx0c19ieV90ZXN0ID0gZGVmYXVs
dGRpY3QocmVzdWx0KQorCisgICAgZm9yIFVBLCByZXN1bHRzIGluIGRhdGEuaXRlcml0ZW1zKCk6
CisgICAgICAgIGZvciB0ZXN0X2RhdGEgaW4gcmVzdWx0c1sicmVzdWx0cyJdOgorICAgICAgICAg
ICAgaWQgPSB0ZXN0X2lkKHRlc3RfZGF0YVsidGVzdCJdKQorICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0c19ieV90ZXN0W2lkXQorCisgICAgICAgICAgICBpZiByZXN1bHRbInN1YnRlc3RzIl0g
aXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0gPSBkaWN0KAorICAg
ICAgICAgICAgICAgICAgICAobmFtZSwgZGljdCgoVUEsIChOb25lLCBOb25lKSkgZm9yIFVBIGlu
IFVBcykpIGZvciBuYW1lIGluIHRlc3RzW2lkXQorICAgICAgICAgICAgICAgICkKKworICAgICAg
ICAgICAgcmVzdWx0WyJoYXJuZXNzIl1bVUFdID0gKHRlc3RfZGF0YVsic3RhdHVzIl0sIHRlc3Rf
ZGF0YVsibWVzc2FnZSJdKQorICAgICAgICAgICAgZm9yIHN1YnRlc3QgaW4gdGVzdF9kYXRhWyJz
dWJ0ZXN0cyJdOgorICAgICAgICAgICAgICAgIHJlc3VsdFsic3VidGVzdHMiXVtzdWJ0ZXN0WyJu
YW1lIl1dW1VBXSA9IChzdWJ0ZXN0WyJzdGF0dXMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdFsibWVzc2FnZSJdKQor
CisgICAgcmV0dXJuIFVBcywgcmVzdWx0c19ieV90ZXN0CisKKworZGVmIHN0YXR1c19jZWxsKHN0
YXR1cywgbWVzc2FnZT1Ob25lKToKKyAgICAiIiJQcm9kdWNlIGEgdGFibGUgY2VsbCBzaG93aW5n
IHRoZSBzdGF0dXMgb2YgYSB0ZXN0IiIiCisgICAgc3RhdHVzID0gc3RhdHVzIGlmIHN0YXR1cyBp
cyBub3QgTm9uZSBlbHNlICJOT05FIgorICAgIGt3YXJncyA9IHt9CisgICAgaWYgbWVzc2FnZToK
KyAgICAgICAga3dhcmdzWyJ0aXRsZSJdID0gbWVzc2FnZQorICAgIHN0YXR1c190ZXh0ID0gc3Rh
dHVzLnRpdGxlKCkKKyAgICByZXR1cm4gaC50ZChzdGF0dXNfdGV4dCwgY2xhc3NfPSJzdGF0dXMg
IiArIHN0YXR1cywKKyAgICAgICAgICAgICAgICAqKmt3YXJncykKKworCitkZWYgdGVzdF9saW5r
KHRlc3RfaWQsIHN1YnRlc3Q9Tm9uZSk6CisgICAgIiIiUHJvZHVjZSBhbiA8YT4gZWxlbWVudCBs
aW5raW5nIHRvIGEgdGVzdCIiIgorICAgIGlmIGlzaW5zdGFuY2UodGVzdF9pZCwgdHlwZXMuU3Ry
aW5nVHlwZXMpOgorICAgICAgICBydiA9IFtoLmEodGVzdF9pZCwgaHJlZj10ZXN0X2lkKV0KKyAg
ICBlbHNlOgorICAgICAgICBydiA9IFtoLmEodGVzdF9pZFswXSwgaHJlZj10ZXN0X2lkWzBdKSwK
KyAgICAgICAgICAgICAgIiAlcyAiICUgdGVzdF9pZFsxXSwKKyAgICAgICAgICAgICAgaC5hKHRl
c3RfaWRbMl0sIGhyZWY9dGVzdF9pZFsyXSldCisgICAgaWYgc3VidGVzdCBpcyBub3QgTm9uZToK
KyAgICAgICAgcnYuYXBwZW5kKCIgWyVzXSIgJSBzdWJ0ZXN0KQorICAgIHJldHVybiBydgorCisK
K2RlZiBzdW1tYXJ5KFVBcywgcmVzdWx0c19ieV90ZXN0KToKKyAgICAiIiJSZW5kZXIgdGhlIGlt
cGxlbWVudGF0aW9uIHJlcG9ydCBzdW1tYXJ5IiIiCisgICAgbm90X3Bhc3NpbmcgPSBbXQorICAg
IGZvciB0ZXN0LCByZXN1bHRzIGluIHJlc3VsdHNfYnlfdGVzdC5pdGVyaXRlbXMoKToKKyAgICAg
ICAgaWYgbm90IGFueShpdGVtWzBdIGluICgiUEFTUyIsICJPSyIpIGZvciBpdGVtIGluIHJlc3Vs
dHNbImhhcm5lc3MiXS52YWx1ZXMoKSk6CisgICAgICAgICAgICBub3RfcGFzc2luZy5hcHBlbmQo
KHRlc3QsIE5vbmUpKQorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0X3Jlc3VsdHMg
aW4gcmVzdWx0c1sic3VidGVzdHMiXS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBh
bnkoaXRlbVswXSA9PSAiUEFTUyIgZm9yIGl0ZW0gaW4gc3VidGVzdF9yZXN1bHRzLnZhbHVlcygp
KToKKyAgICAgICAgICAgICAgICBub3RfcGFzc2luZy5hcHBlbmQoKHRlc3QsIHN1YnRlc3RfbmFt
ZSkpCisgICAgaWYgbm90X3Bhc3Npbmc6CisgICAgICAgIHJ2ID0gWworICAgICAgICAgICAgaC5w
KCJUaGUgZm9sbG93aW5nIHRlc3RzIGZhaWxlZCB0byBwYXNzIGluIGFsbCBVQXM6IiksCisgICAg
ICAgICAgICBoLnVsKFtoLmxpKHRlc3RfbGluayh0ZXN0LCBzdWJ0ZXN0KSkKKyAgICAgICAgICAg
ICAgICAgIGZvciB0ZXN0LCBzdWJ0ZXN0IGluIG5vdF9wYXNzaW5nXSkKKyAgICAgICAgXQorICAg
IGVsc2U6CisgICAgICAgIHJ2ID0gIkFsbCB0ZXN0cyBwYXNzZWQgaW4gYXQgbGVhc3Qgb25lIFVB
IgorICAgIHJldHVybiBydgorCisKK2RlZiByZXN1bHRfcm93cyhVQXMsIHRlc3QsIHJlc3VsdCk6
CisgICAgIiIiUmVuZGVyIHRoZSByZXN1bHRzIGZvciBlYWNoIHRlc3QgcnVuIiIiCisgICAgeWll
bGQgaC50cigKKyAgICAgICAgaC50ZCgKKyAgICAgICAgICAgIHRlc3RfbGluayh0ZXN0KSwKKyAg
ICAgICAgICAgIHJvd3NwYW49KDEgKyBsZW4ocmVzdWx0WyJzdWJ0ZXN0cyJdKSkKKyAgICAgICAg
KSwKKyAgICAgICAgaC50ZCgpLAorICAgICAgICBbc3RhdHVzX2NlbGwoc3RhdHVzLCBtZXNzYWdl
KQorICAgICAgICAgZm9yIFVBLCAoc3RhdHVzLCBtZXNzYWdlKSBpbiBzb3J0ZWQocmVzdWx0WyJo
YXJuZXNzIl0uaXRlbXMoKSldLAorICAgICAgICBjbGFzc189InRlc3QiCisgICAgKQorCisgICAg
Zm9yIG5hbWUsIHN1YnRlc3RfcmVzdWx0IGluIHNvcnRlZChyZXN1bHRbInN1YnRlc3RzIl0uaXRl
cml0ZW1zKCkpOgorICAgICAgICB5aWVsZCBoLnRyKAorICAgICAgICAgICAgaC50ZChuYW1lKSwK
KyAgICAgICAgICAgIFtzdGF0dXNfY2VsbChzdGF0dXMsIG1lc3NhZ2UpCisgICAgICAgICAgICAg
Zm9yIFVBLCAoc3RhdHVzLCBtZXNzYWdlKSBpbiBzb3J0ZWQoc3VidGVzdF9yZXN1bHQuaXRlbXMo
KSldLAorICAgICAgICAgICAgY2xhc3NfPSJzdWJ0ZXN0IgorICAgICAgICApCisKKworZGVmIHJl
c3VsdF9ib2RpZXMoVUFzLCByZXN1bHRzX2J5X3Rlc3QpOgorICAgIHJldHVybiBbaC50Ym9keShy
ZXN1bHRfcm93cyhVQXMsIHRlc3QsIHJlc3VsdCkpCisgICAgICAgICAgICBmb3IgdGVzdCwgcmVz
dWx0IGluIHNvcnRlZChyZXN1bHRzX2J5X3Rlc3QuaXRlcml0ZW1zKCkpXQorCisKK2RlZiBnZW5l
cmF0ZV9odG1sKFVBcywgcmVzdWx0c19ieV90ZXN0KToKKyAgICAiIiJHZW5lcmF0ZSBhbGwgdGhl
IEhUTUwgb3V0cHV0IiIiCisgICAgcmV0dXJuIGgoaC5odG1sKAorICAgICAgICBoLmhlYWQoCisg
ICAgICAgICAgICBoLm1ldGEoY2hhcnNldD0idXRmOCIpLAorICAgICAgICAgICAgaC50aXRsZSgi
SW1wbGVtZW50YXRpb24gUmVwb3J0IiksCisgICAgICAgICAgICBoLmxpbmsoaHJlZj0icmVwb3J0
LmNzcyIsIHJlbD0ic3R5bGVzaGVldCIpKSwKKyAgICAgICAgaC5ib2R5KAorICAgICAgICAgICAg
aC5oMSgiSW1wbGVtZW50YXRpb24gUmVwb3J0IiksCisgICAgICAgICAgICBoLmgyKCJTdW1tYXJ5
IiksCisgICAgICAgICAgICBzdW1tYXJ5KFVBcywgcmVzdWx0c19ieV90ZXN0KSwKKyAgICAgICAg
ICAgIGguaDIoIkZ1bGwgUmVzdWx0cyIpLAorICAgICAgICAgICAgaC50YWJsZSgKKyAgICAgICAg
ICAgICAgICBoLnRoZWFkKAorICAgICAgICAgICAgICAgICAgICBoLnRyKAorICAgICAgICAgICAg
ICAgICAgICAgICAgaC50aCgiVGVzdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgaC50aCgi
U3VidGVzdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgW2gudGgoVUEpIGZvciBVQSBpbiBz
b3J0ZWQoVUFzKV0pKSwKKyAgICAgICAgICAgICAgICByZXN1bHRfYm9kaWVzKFVBcywgcmVzdWx0
c19ieV90ZXN0KSkpKSkKKworCitkZWYgbWFpbihmaWxlbmFtZXMpOgorICAgIGRhdGEgPSBsb2Fk
X2RhdGEoZmlsZW5hbWVzKQorICAgIFVBcywgcmVzdWx0c19ieV90ZXN0ID0gZ3JvdXBfcmVzdWx0
cyhkYXRhKQorICAgIHJldHVybiBnZW5lcmF0ZV9odG1sKFVBcywgcmVzdWx0c19ieV90ZXN0KQor
CisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgaWYgbm90IHN5cy5hcmd2WzE6XToK
KyAgICAgICAgcHJpbnQoIiIiUGxlYXNlIHN1cHBseSBhIGxpc3Qgb2YgVUEgbmFtZSwgZmlsZW5h
bWUgcGFpcnMgZS5nLgorCitweXRob24gcmVwb3J0LnB5IEZpcmVmb3ggZmlyZWZveC5qc29uIENo
cm9tZSBjaHJvbWUuanNvbiBJRSBpbnRlcm5ldF9leHBsb3Jlci5qc29uIiIiKQorICAgIHByaW50
KG1haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5jc3MgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg1NDYwMTc3ZWExNTFhYmQzZWVmYTg0OTg2NjA3NzU1YzkyZWZlOTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCkBAIC0wLDAgKzEsMjE3IEBACisKK2h0bWwgewor
ICAgIG1hcmdpbjogMCA4cHg7Cit9CisKK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKworaHRt
bC5kb25lIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCAjMzJjZDMyOworICAgIG1hcmdpbjogM3B4
OworICAgIHBhZGRpbmc6IDNweDsKK30KKworaHRtbDpub3QoLmRvbmUpIHsKKyAgICBoZWlnaHQ6
IDEwMCU7Cit9CisKK2h0bWw6bm90KC5kb25lKSBib2R5IHsKKyAgICBoZWlnaHQ6IDEwMCU7Cit9
CisKK2h0bWw6bm90KC5kb25lKSAjd3JhcHBlciB7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIG1h
cmdpbi10b3A6IC0xLjVlbTsKKyAgICBwYWRkaW5nLXRvcDogMS41ZW07CisgICAgLW1vei1ib3gt
c2l6aW5nOiBib3JkZXItYm94OworICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsK
KyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworfQorCitzZWN0aW9uIHsKKyAgICBkaXNwbGF5
OiBibG9jazsKKyAgICBib3JkZXI6IHRoaW4gc29saWQgYmxhY2s7CisgICAgcGFkZGluZzogMC41
ZW0gMDsKK30KKworc2VjdGlvbiBoMSB7CisgICAgbWFyZ2luOiAwOworICAgIGZvbnQtc2l6ZTog
MWVtOworfQorCitodG1sLmRvbmUgc2VjdGlvbiBoMSB7CisgICAgdGV4dC1hbGlnbjogY2VudGVy
OworfQorCitzZWN0aW9uIG9sIHsKKyAgICBwYWRkaW5nOiAwOworICAgIG1hcmdpbjogMDsKKyAg
ICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7Cit9CisKK2h0bWwuZG9uZSBzZWN0aW9uIG9s
IHsKKyAgICAtbW96LWNvbHVtbi1jb3VudDogMzsKKyAgICAtd2Via2l0LWNvbHVtbi1jb3VudDog
MzsKKyAgICBjb2x1bW4tY291bnQ6IDM7Cit9CisKK3NlY3Rpb24gbGkgeworICAgIHBhZGRpbmc6
IDAuMWVtIDAuNWVtOworfQorCitzZWN0aW9uIGxpLnBhc3M6bnRoLWNoaWxkKG9kZCkgIHsKKyAg
ICBiYWNrZ3JvdW5kOiAjZTVmZmU1OworfQorc2VjdGlvbiBsaS5wYXNzOm50aC1jaGlsZChldmVu
KSB7CisgICAgYmFja2dyb3VuZDogI2RlZjhkZTsKK30KKworc2VjdGlvbiBsaS5mYWlsOm50aC1j
aGlsZChvZGQpICB7CisgICAgYmFja2dyb3VuZDogI2ZmZTVlNTsKK30KKworc2VjdGlvbiBsaS5m
YWlsOm50aC1jaGlsZChldmVuKSB7CisgICAgYmFja2dyb3VuZDogI2Y4ZGVkZTsKK30KKworc2Vj
dGlvbiBwIHsKKyAgICBtYXJnaW46IDA7Cit9CisKK2h0bWw6bm90KC5kb25lKSBzZWN0aW9uIHsK
KyAgICBib3JkZXItdG9wOiBub25lOworfQorCitodG1sLmRvbmUgc2VjdGlvbiArIHNlY3Rpb24g
eworICAgIGJvcmRlci10b3A6IG5vbmU7Cit9CisKKyNtYW51YWxVSSB7CisgICAgcG9zaXRpb246
IGZpeGVkOworICAgIHotaW5kZXg6IDIwMDA7CisgICAgdG9wOiAtMjBweDsKKyAgICBsZWZ0OiAw
OworICAgIHJpZ2h0OiAwOworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIHBhZGRpbmc6IDQwcHg7
CisgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIwMCwgMCwgMC41KTsKK30KKworI2N1cnJlbnRf
dGVzdCB7CisgIHZpc2liaWxpdHk6IGhpZGRlbjsKK30KKworI2N1cnJlbnRfdGVzdCBhIHsKKyAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICBtYXJnaW4tbGVmdDogMWVtOworfQorCisjY3VycmVu
dF90ZXN0IC5tYXRjaCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNCREYxRkY7Cit9CisKKyNtYW51
YWxVSSAucGFuZWwgeworICAgIG1heC13aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiBhdXRvOwor
ICAgIGJveC1zaGFkb3c6IDJweCAycHggMTBweCAjNjY2OworfQorCitib2R5ID4gcCB7CisgICAg
dGV4dC1hbGlnbjogY2VudGVyOworfQorCitib2R5ID4gcCA+IHRleHRhcmVhIHsKKyAgICB3aWR0
aDogOTAlOworICAgIGhlaWdodDogMjBlbTsKK30KKworYm9keSB7CisgICAgcGFkZGluZy10b3A6
IDcwcHg7Cit9CisKKy5jb250YWluZXIgeworICAgIG1heC13aWR0aDogODAwcHg7Cit9CisKKy5u
YXZiYXItYnJhbmQgPiBpbWcgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKworLm5hdmJhci1p
bnZlcnNlIC5uYXZiYXItYnJhbmQgeworICAgIGNvbG9yOiAjZmZmOworfQorCisuZm9ybS1ncm91
cCB7CisgICAgY2xlYXI6Ym90aDsKK30KKworLmhvcml6b250YWwtZm9ybSAuZm9ybS1ncm91cCB7
CisgICAgcGFkZGluZzogNnB4OworfQorCitoZWFkZXIubmF2YmFyLWludmVyc2UgeworICAgIGJh
Y2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYig3LCA2MiwgMTI4KSAwcHgs
IHJnYigwLCA0NSwgODApIDEwMCUpOworfQorCit1bC5lcnJvciwgdWwud2FybmluZyB7CisgICAg
cGFkZGluZzogICAgMDsKK30KKwordGQuUEFTUyB7CisgICAgY29sb3I6ICAjNDhjZmFkOworfQor
Cit0ZC5GQUlMIHsKKyAgICBjb2xvcjogICNlZDU1NjU7Cit9CisKK3RkLlRJTUVPVVQgeworICAg
IGNvbG9yOiAgI2Y2YmI0MjsKK30KKwordGQuTk9UUlVOIHsKKyAgICBjb2xvcjogICMwMGM7Cit9
CisKK3RkLkVSUk9SIHsKKyAgICBjb2xvcjogI2RhNDQ1MzsKKyAgICBmb250LXdlaWdodDogYm9s
ZDsKK30KKy5zdG9wcGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQo
dG8gYm90dG9tLCAjZmMwMDAwIDAsICM3NzAwMDAgMTAwJSk7Cit9CisKKy5jb2wtc20tOSBsYWJl
bCB7CisgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworfQorCisuaW5zdHJ1Y3Rpb25zIHsKKyAgcGFk
ZGluZy1sZWZ0OiA4cHg7CisgIHBhZGRpbmctcmlnaHQ6IDhweDsKK30KKworQGtleWZyYW1lcyBh
bGVydF91cGRhdGluZyB7CisgIGZyb20geworICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7
CisgIH0KKyAgdG8geworICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmJiNDI7CisgIH0KK30KKwor
LmxvYWRpbmctbWFuaWZlc3QgeworICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOworICBjb2xvcjog
IzMzMzsKKyAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzOworICBhbmltYXRpb24tbmFtZTogYWxl
cnRfdXBkYXRpbmc7CisgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworICBh
bmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7Cit9CisKKy5yZWZ0ZXN0V2FybiB7CisgICAg
Y29sb3I6IHllbGxvdzsKKyAgICBiYWNrZ3JvdW5kOiBibGFjazsKKyAgICBwYWRkaW5nOiA4cHg7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYwYjZh
NDQ5ZDY4NjE2ODQ2OWRmY2I4NTFiMzA5MTIxMjQzODdhNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1
bm5lci5qcwpAQCAtMCwwICsxLDkxNiBAQAorLypqc2hpbnQgbm9uZXc6IGZhbHNlICovCisoZnVu
Y3Rpb24oKSB7CisidXNlIHN0cmljdCI7Cit2YXIgcnVubmVyOwordmFyIHRlc3RoYXJuZXNzX3By
b3BlcnRpZXMgPSB7b3V0cHV0OmZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dF9tdWx0aXBsaWVyOjF9OworCitmdW5jdGlvbiBNYW5pZmVzdChwYXRoKSB7CisgICAg
dGhpcy5kYXRhID0gbnVsbDsKKyAgICB0aGlzLnBhdGggPSBwYXRoOworICAgIHRoaXMubnVtX3Rl
c3RzID0gbnVsbDsKK30KKworTWFuaWZlc3QucHJvdG90eXBlID0geworICAgIGxvYWQ6IGZ1bmN0
aW9uKGxvYWRlZF9jYWxsYmFjaykgeworICAgICAgICB0aGlzLmdlbmVyYXRlKGxvYWRlZF9jYWxs
YmFjayk7CisgICAgfSwKKworICAgIGRvX2xvYWQ6IGZ1bmN0aW9uKGxvYWRlZF9jYWxsYmFjaykg
eworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHhoci5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh4aHIucmVh
ZHlTdGF0ZSAhPT0gNCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPT09IDIwMCB8fCB4aHIuc3RhdHVzID09PSAw
KSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWFuaWZlc3QgIiArIHRoaXMu
cGF0aCArICIgZmFpbGVkIHRvIGxvYWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRo
aXMuZGF0YSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICBsb2Fk
ZWRfY2FsbGJhY2soKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgICB4aHIub3Blbigi
R0VUIiwgdGhpcy5wYXRoKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgfSwKKworICAg
IGdlbmVyYXRlOiBmdW5jdGlvbihsb2FkZWRfY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgIT09IDQpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoISh4
aHIuc3RhdHVzID09PSAyMDAgfHwgeGhyLnN0YXR1cyA9PT0gMCkpIHsKKyAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIk1hbmlmZXN0IGdlbmVyYXRpb24gZmFpbGVkIik7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLmRvX2xvYWQobG9hZGVkX2NhbGxiYWNrKTsKKyAgICAg
ICAgfS5iaW5kKHRoaXMpOworICAgICAgICB4aHIub3BlbigiUE9TVCIsICJ1cGRhdGVfbWFuaWZl
c3QucHkiKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgfSwKKworICAgIGJ5X3R5cGU6
ZnVuY3Rpb24odHlwZSkgeworICAgICAgICB2YXIgcmV0ID0gW10gOworICAgICAgICBpZiAodGhp
cy5kYXRhLml0ZW1zLmhhc093blByb3BlcnR5KHR5cGUpKSB7CisgICAgICAgICAgICBmb3IgKHZh
ciBwcm9wZXJ0eU5hbWUgaW4gdGhpcy5kYXRhLml0ZW1zW3R5cGVdKSB7CisgICAgICAgICAgICAg
ICAgdmFyIGFyciA9IHRoaXMuZGF0YS5pdGVtc1t0eXBlXVtwcm9wZXJ0eU5hbWVdWzBdOworICAg
ICAgICAgICAgICAgIHZhciBpdGVtID0gYXJyW2Fyci5sZW5ndGggLSAxXTsKKyAgICAgICAgICAg
ICAgICBpdGVtLnBhdGggPSBwcm9wZXJ0eU5hbWU7CisgICAgICAgICAgICAgICAgaWYgKCdzdHJp
bmcnID09PSB0eXBlb2YgYXJyWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0udXJsID0g
YXJyWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNB
cnJheShhcnJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0ucmVmZXJlbmNlcyA9IGFy
clsxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0LnB1c2goaXRlbSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldCA7CisgICAgfQor
fTsKKworZnVuY3Rpb24gTWFuaWZlc3RJdGVyYXRvcihtYW5pZmVzdCwgcGF0aCwgdGVzdF90eXBl
cywgdXNlX3JlZ2V4KSB7CisgICAgdGhpcy5tYW5pZmVzdCA9IG1hbmlmZXN0OworICAgIHRoaXMu
cGF0aHMgPSBudWxsOworICAgIHRoaXMucmVnZXhfcGF0dGVybiA9IG51bGw7CisgICAgdGhpcy50
ZXN0X3R5cGVzID0gdGVzdF90eXBlczsKKyAgICB0aGlzLnRlc3RfdHlwZXNfaW5kZXggPSAtMTsK
KyAgICB0aGlzLnRlc3RfbGlzdCA9IG51bGw7CisgICAgdGhpcy50ZXN0X2luZGV4ID0gbnVsbDsK
KworICAgIGlmICh1c2VfcmVnZXgpIHsKKyAgICAgICAgdGhpcy5yZWdleF9wYXR0ZXJuID0gcGF0
aDsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTcGxpdCBwYXRocyBieSBlaXRoZXIgYSBjb21t
YSBvciB3aGl0ZXNwYWNlLCBhbmQgaWdub3JlIGVtcHR5IHN1Yi1zdHJpbmdzLgorICAgICAgICB0
aGlzLnBhdGhzID0gcGF0aC5zcGxpdCgvWyxcc10rLykuZmlsdGVyKGZ1bmN0aW9uKHMpIHsgcmV0
dXJuIHMubGVuZ3RoID4gMDsgfSk7CisgICAgfQorfQorCitNYW5pZmVzdEl0ZXJhdG9yLnByb3Rv
dHlwZSA9IHsKKyAgICBuZXh0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG1hbmlmZXN0X2l0
ZW0gPSBudWxsOworCisgICAgICAgIGlmICh0aGlzLnRlc3RfdHlwZXMubGVuZ3RoID09PSAwKSB7
CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICgh
bWFuaWZlc3RfaXRlbSkgeworICAgICAgICAgICAgd2hpbGUgKHRoaXMudGVzdF9saXN0ID09PSBu
dWxsIHx8IHRoaXMudGVzdF9pbmRleCA+PSB0aGlzLnRlc3RfbGlzdC5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICB0aGlzLnRlc3RfdHlwZXNfaW5kZXgrKzsKKyAgICAgICAgICAgICAgICBpZiAo
dGhpcy50ZXN0X3R5cGVzX2luZGV4ID49IHRoaXMudGVzdF90eXBlcy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHRoaXMudGVzdF9pbmRleCA9IDA7CisgICAgICAgICAgICAgICAgdGhpcy50ZXN0X2xp
c3QgPSB0aGlzLm1hbmlmZXN0LmJ5X3R5cGUodGhpcy50ZXN0X3R5cGVzW3RoaXMudGVzdF90eXBl
c19pbmRleF0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYW5pZmVzdF9pdGVtID0g
dGhpcy50ZXN0X2xpc3RbdGhpcy50ZXN0X2luZGV4KytdOworICAgICAgICAgICAgd2hpbGUgKG1h
bmlmZXN0X2l0ZW0gJiYgIXRoaXMubWF0Y2hlcyhtYW5pZmVzdF9pdGVtKSkgeworICAgICAgICAg
ICAgICAgIG1hbmlmZXN0X2l0ZW0gPSB0aGlzLnRlc3RfbGlzdFt0aGlzLnRlc3RfaW5kZXgrK107
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWFuaWZlc3RfaXRlbSkgeworICAgICAg
ICAgICAgICAgIHJldHVybiB0aGlzLnRvX3Rlc3QobWFuaWZlc3RfaXRlbSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gQ2FsY3VsYXRlIHRoZSBsb2NhdGlvbiBv
ZiBhIG1hdGNoIHdpdGhpbiBhIHByb3ZpZGVkIFVSTC4KKyAgICAvLworICAgIC8vIEBwYXJhbSB7
c3RyaW5nfSB1cmwgLSBWYWxpZCBVUkwKKyAgICAvLworICAgIC8vIEByZXR1cm5zIHtudWxsfG9i
amVjdH0gLSBudWxsIGlmIHRoZSBVUkwgZG9lcyBub3Qgc2F0aXNmeSB0aGUgaXRlcmF0b3Incwor
ICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJpbmcgY3JpdGVyaWEuIE90aGVy
d2lzZSwgYW4gb2JqZWN0IHdpdGgKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl
IGZvbGxvd2luZyBwcm9wZXJ0aWVzOgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAgIC0gaW5kZXggLSB0aGUgemVyby1pbmRleGVkIG9mZnNldCBvZiB0aGUgc3RhcnQKKyAg
ICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBtYXRjaAorICAg
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAtIHdpZHRoIC0gdGhlIHRvdGFsIG51bWJlciBv
ZiBtYXRjaGluZworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
cmFjdGVycworICAgIG1hdGNoX2xvY2F0aW9uOiBmdW5jdGlvbih1cmwpIHsKKyAgICAgICAgdmFy
IG1hdGNoOworCisgICAgICAgIGlmICh0aGlzLnJlZ2V4X3BhdHRlcm4pIHsKKyAgICAgICAgICAg
bWF0Y2ggPSB1cmwubWF0Y2godGhpcy5yZWdleF9wYXR0ZXJuKTsKKworICAgICAgICAgICBpZiAo
IW1hdGNoKSB7CisgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgcmV0dXJuIHsgaW5kZXg6IG1hdGNoLmluZGV4LCB3aWR0aDogbWF0Y2hbMF0ubGVu
Z3RoIH07CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnBhdGhzLnNvbWUoZnVuY3Rpb24ocGF0
aCkgeworICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKHBhdGgpID09PSAwKSB7CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSBwYXRoOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9KTsKKworICAg
ICAgICBpZiAoIW1hdGNoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiB7IGluZGV4OiAwLCB3aWR0aDogbWF0Y2gubGVuZ3RoIH07CisgICAg
fSwKKworICAgIG1hdGNoZXM6IGZ1bmN0aW9uKG1hbmlmZXN0X2l0ZW0pIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMubWF0Y2hfbG9jYXRpb24obWFuaWZlc3RfaXRlbS51cmwpICE9PSBudWxsOworICAg
IH0sCisKKyAgICB0b190ZXN0OiBmdW5jdGlvbihtYW5pZmVzdF9pdGVtKSB7CisgICAgICAgIHZh
ciB0ZXN0ID0geworICAgICAgICAgICAgdHlwZTogdGhpcy50ZXN0X3R5cGVzW3RoaXMudGVzdF90
eXBlc19pbmRleF0sCisgICAgICAgICAgICB1cmw6IG1hbmlmZXN0X2l0ZW0udXJsCisgICAgICAg
IH07CisgICAgICAgIGlmIChtYW5pZmVzdF9pdGVtLmhhc093blByb3BlcnR5KCJyZWZlcmVuY2Vz
IikpIHsKKyAgICAgICAgICAgIHRlc3QucmVmX2xlbmd0aCA9IG1hbmlmZXN0X2l0ZW0ucmVmZXJl
bmNlcy5sZW5ndGg7CisgICAgICAgICAgICB0ZXN0LnJlZl90eXBlID0gbWFuaWZlc3RfaXRlbS5y
ZWZlcmVuY2VzWzBdWzFdOworICAgICAgICAgICAgdGVzdC5yZWZfdXJsID0gbWFuaWZlc3RfaXRl
bS5yZWZlcmVuY2VzWzBdWzBdOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXN0OworICAg
IH0sCisKKyAgICBjb3VudDogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRlc3Rf
dHlwZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGN1cnJlbnQpIHsKKyAgICAgICAgICAgIHZhciBt
YXRjaGVzID0gdGhpcy5tYW5pZmVzdC5ieV90eXBlKGN1cnJlbnQpLmZpbHRlcihmdW5jdGlvbih4
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2hlcyh4KTsKKyAgICAgICAgICAg
IH0uYmluZCh0aGlzKSk7CisgICAgICAgICAgICByZXR1cm4gcHJldiArIG1hdGNoZXMubGVuZ3Ro
OworICAgICAgICB9LmJpbmQodGhpcyksIDApOworICAgIH0KK307CisKK2Z1bmN0aW9uIFZpc3Vh
bE91dHB1dChlbGVtLCBydW5uZXIpIHsKKyAgICB0aGlzLmVsZW0gPSBlbGVtOworICAgIHRoaXMu
cnVubmVyID0gcnVubmVyOworICAgIHRoaXMucmVzdWx0c190YWJsZSA9IG51bGw7CisgICAgdGhp
cy5zZWN0aW9uX3dyYXBwZXIgPSBudWxsOworICAgIHRoaXMucmVzdWx0c190YWJsZSA9IHRoaXMu
ZWxlbS5xdWVyeVNlbGVjdG9yKCIucmVzdWx0cyA+IHRhYmxlIik7CisgICAgdGhpcy5zZWN0aW9u
ID0gbnVsbDsKKyAgICB0aGlzLnByb2dyZXNzID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3IoIi5z
dW1tYXJ5IC5wcm9ncmVzcyIpOworICAgIHRoaXMubWV0ZXIgPSB0aGlzLnByb2dyZXNzLnF1ZXJ5
U2VsZWN0b3IoIi5wcm9ncmVzcy1iYXIiKTsKKyAgICB0aGlzLnJlc3VsdF9jb3VudCA9IG51bGw7
CisgICAgdGhpcy5qc29uX3Jlc3VsdHNfYXJlYSA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJ0
ZXh0YXJlYSIpOworICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLmluc3RydWN0aW9ucyIpOworCisgICAgdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAibm9u
ZSI7CisgICAgdGhpcy5ydW5uZXIubWFuaWZlc3Rfd2FpdF9jYWxsYmFja3MucHVzaCh0aGlzLm9u
X21hbmlmZXN0X3dhaXQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5ydW5uZXIuc3RhcnRfY2FsbGJh
Y2tzLnB1c2godGhpcy5vbl9zdGFydC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnJ1bm5lci5yZXN1
bHRfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9yZXN1bHQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5y
dW5uZXIuZG9uZV9jYWxsYmFja3MucHVzaCh0aGlzLm9uX2RvbmUuYmluZCh0aGlzKSk7CisKKyAg
ICB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlID0ge307CisKKyAgICB2YXIgdmlzdWFsX291dHB1
dCA9IHRoaXM7CisgICAgdmFyIGRpc3BsYXlfZmlsdGVyX2lucHV0cyA9IHRoaXMuZWxlbS5xdWVy
eVNlbGVjdG9yQWxsKCIucmVzdWx0LWRpc3BsYXktZmlsdGVyIik7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBkaXNwbGF5X2ZpbHRlcl9pbnB1dHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFy
IGRpc3BsYXlfZmlsdGVyX2lucHV0ID0gZGlzcGxheV9maWx0ZXJfaW5wdXRzW2ldOworICAgICAg
ICB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlW2Rpc3BsYXlfZmlsdGVyX2lucHV0LnZhbHVlXSA9
IGRpc3BsYXlfZmlsdGVyX2lucHV0LmNoZWNrZWQ7CisgICAgICAgIGRpc3BsYXlfZmlsdGVyX2lu
cHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IHZpc3VhbF9vdXRwdXQuYXBwbHlfZGlzcGxheV9maWx0ZXIoZS50YXJnZXQudmFsdWUsIGUudGFy
Z2V0LmNoZWNrZWQpOworICAgICAgICB9KQorICAgIH0KK30KKworVmlzdWFsT3V0cHV0LnByb3Rv
dHlwZSA9IHsKKyAgICBjbGVhcjogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVzdWx0X2Nv
dW50ID0geyJQQVNTIjowLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFJTCI6MCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SIjowLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVElNRU9VVCI6MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ik5PVFJVTiI6MH07CisgICAgICAgIGZvciAodmFyIHAgaW4gdGhpcy5yZXN1bHRfY291bnQpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzLnJlc3VsdF9jb3VudC5oYXNPd25Qcm9wZXJ0eShwKSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJ0ZC4iICsgcCkudGV4dENv
bnRlbnQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLmpz
b25fcmVzdWx0c19hcmVhKSB7CisgICAgICAgICAgICB0aGlzLmpzb25fcmVzdWx0c19hcmVhLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5qc29uX3Jlc3VsdHNfYXJlYSk7CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5tZXRlci5zdHlsZS53aWR0aCA9ICcwcHgnOworICAgICAgICB0aGlzLm1l
dGVyLnRleHRDb250ZW50ID0gJzAlJzsKKyAgICAgICAgdGhpcy5tZXRlci5jbGFzc0xpc3QucmVt
b3ZlKCJzdG9wcGVkIiwgImxvYWRpbmctbWFuaWZlc3QiKTsKKyAgICAgICAgdGhpcy5lbGVtLnF1
ZXJ5U2VsZWN0b3IoIi5qc29uUmVzdWx0cyIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAg
ICAgIHRoaXMucmVzdWx0c190YWJsZS5yZW1vdmVDaGlsZCh0aGlzLnJlc3VsdHNfdGFibGUudEJv
ZGllc1swXSk7CisgICAgICAgIHRoaXMucmVzdWx0c190YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTsKKyAgICB9LAorCisgICAgb25fbWFuaWZlc3Rfd2Fp
dDogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5pbnN0
cnVjdGlvbnMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgdGhpcy5lbGVtLnN0eWxl
LmRpc3BsYXkgPSAiYmxvY2siOworICAgICAgICB0aGlzLnN0ZWFkeV9zdGF0dXMoImxvYWRpbmct
bWFuaWZlc3QiKTsKKyAgICB9LAorCisgICAgb25fc3RhcnQ6IGZ1bmN0aW9uKCkgeworICAgICAg
ICB0aGlzLmNsZWFyKCk7CisgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zLnN0eWxlLmRpc3BsYXkg
PSAibm9uZSI7CisgICAgICAgIHRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAg
ICAgICAgdGhpcy5tZXRlci5jbGFzc0xpc3QuYWRkKCJwcm9ncmVzcy1zdHJpcGVkIiwgImFjdGl2
ZSIpOworICAgIH0sCisKKyAgICBvbl9yZXN1bHQ6IGZ1bmN0aW9uKHRlc3QsIHN0YXR1cywgbWVz
c2FnZSwgc3VidGVzdHMpIHsKKyAgICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInRyIik7CisKKyAgICAgICAgdmFyIHN1YnRlc3RfcGFzc19jb3VudCA9IHN1YnRlc3RzLnJl
ZHVjZShmdW5jdGlvbihwcmV2LCBjdXJyZW50KSB7CisgICAgICAgICAgICByZXR1cm4gKGN1cnJl
bnQuc3RhdHVzID09PSAiUEFTUyIpID8gcHJldiArIDEgOiBwcmV2OworICAgICAgICB9LCAwKTsK
KworICAgICAgICB2YXIgc3VidGVzdF9ub3RydW5fY291bnQgPSBzdWJ0ZXN0cy5yZWR1Y2UoZnVu
Y3Rpb24ocHJldiwgY3VycmVudCkgeworICAgICAgICAgICAgcmV0dXJuIChjdXJyZW50LnN0YXR1
cyA9PT0gIk5PVFJVTiIpID8gcHJldiArMSA6IHByZXY7CisgICAgICAgIH0sIDApOworCisgICAg
ICAgIHZhciBzdWJ0ZXN0c19jb3VudCA9IHN1YnRlc3RzLmxlbmd0aDsKKworICAgICAgICB2YXIg
dGVzdF9zdGF0dXM7CisgICAgICAgIGlmIChzdWJ0ZXN0X3Bhc3NfY291bnQgPT09IHN1YnRlc3Rz
X2NvdW50ICYmCisgICAgICAgICAgICAoc3RhdHVzID09ICJPSyIgfHwgc3RhdHVzID09ICJQQVNT
IikpIHsKKyAgICAgICAgICAgIHRlc3Rfc3RhdHVzID0gIlBBU1MiOworICAgICAgICB9IGVsc2Ug
aWYgKCghc3VidGVzdHNfY291bnQgJiYgc3RhdHVzID09PSAiTk9UUlVOIikgfHwKKyAgICAgICAg
ICAgIChzdWJ0ZXN0c19jb3VudCAmJiAoc3VidGVzdF9ub3RydW5fY291bnQgPT0gc3VidGVzdHNf
Y291bnQpICkgKSB7CisgICAgICAgICAgICB0ZXN0X3N0YXR1cyA9ICJOT1RSVU4iOworICAgICAg
ICB9IGVsc2UgaWYgKHN1YnRlc3RzX2NvdW50ID4gMCAmJiBzdGF0dXMgPT09ICJPSyIpIHsKKyAg
ICAgICAgICAgIHRlc3Rfc3RhdHVzID0gIkZBSUwiOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdGVzdF9zdGF0dXMgPSBzdGF0dXM7CisgICAgICAgIH0KKworICAgICAgICBzdWJ0ZXN0
cy5mb3JFYWNoKGZ1bmN0aW9uKHN1YnRlc3QpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLnJlc3Vs
dF9jb3VudC5oYXNPd25Qcm9wZXJ0eShzdWJ0ZXN0LnN0YXR1cykpIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLnJlc3VsdF9jb3VudFtzdWJ0ZXN0LnN0YXR1c10gKz0gMTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgaWYgKHRoaXMucmVzdWx0X2NvdW50Lmhh
c093blByb3BlcnR5KHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRoaXMucmVzdWx0X2NvdW50W3N0
YXR1c10gKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBuYW1lX25vZGUgPSByb3cuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIG5hbWVfbm9k
ZS5hcHBlbmRDaGlsZCh0aGlzLnRlc3RfbmFtZV9ub2RlKHRlc3QpKTsKKworICAgICAgICB2YXIg
c3RhdHVzX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQi
KSk7CisgICAgICAgIHN0YXR1c19ub2RlLnRleHRDb250ZW50ID0gdGVzdF9zdGF0dXM7CisgICAg
ICAgIHN0YXR1c19ub2RlLmNsYXNzTmFtZSA9IHRlc3Rfc3RhdHVzOworCisgICAgICAgIHZhciBt
ZXNzYWdlX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQi
KSk7CisgICAgICAgIG1lc3NhZ2Vfbm9kZS50ZXh0Q29udGVudCA9IG1lc3NhZ2UgfHwgIiI7CisK
KyAgICAgICAgdmFyIHN1YnRlc3RzX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIGlmIChzdWJ0ZXN0c19jb3VudCkgeworICAgICAg
ICAgICAgc3VidGVzdHNfbm9kZS50ZXh0Q29udGVudCA9IHN1YnRlc3RfcGFzc19jb3VudCArICIv
IiArIHN1YnRlc3RzX2NvdW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHN0
YXR1cyA9PSAiUEFTUyIpIHsKKyAgICAgICAgICAgICAgICBzdWJ0ZXN0c19ub2RlLnRleHRDb250
ZW50ID0gIjEvMSI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN1YnRl
c3RzX25vZGUudGV4dENvbnRlbnQgPSAiMC8xIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIHZhciBzdGF0dXNfYXJyID0gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiVElN
RU9VVCIsICJOT1RSVU4iXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0dXNfYXJy
Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvcigidGQu
IiArIHN0YXR1c19hcnJbaV0pLnRleHRDb250ZW50ID0gdGhpcy5yZXN1bHRfY291bnRbc3RhdHVz
X2FycltpXV07CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmFwcGx5X2Rpc3BsYXlfZmlsdGVy
X3RvX3Jlc3VsdF9yb3cocm93LCB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlW3Rlc3Rfc3RhdHVz
XSk7CisgICAgICAgIHRoaXMucmVzdWx0c190YWJsZS50Qm9kaWVzWzBdLmFwcGVuZENoaWxkKHJv
dyk7CisgICAgICAgIHRoaXMudXBkYXRlX21ldGVyKHRoaXMucnVubmVyLnByb2dyZXNzKCksIHRo
aXMucnVubmVyLnJlc3VsdHMuY291bnQoKSwgdGhpcy5ydW5uZXIudGVzdF9jb3VudCgpKTsKKyAg
ICB9LAorCisgICAgc3RlYWR5X3N0YXR1czogZnVuY3Rpb24oc3RhdHVzTmFtZSkgeworICAgICAg
ICB2YXIgc3RhdHVzVGV4dHMgPSB7CisgICAgICAgICAgICBkb25lOiAiRG9uZSEiLAorICAgICAg
ICAgICAgc3RvcHBlZDogIlN0b3BwZWQiLAorICAgICAgICAgICAgImxvYWRpbmctbWFuaWZlc3Qi
OiAiVXBkYXRpbmcgYW5kIGxvYWRpbmcgdGVzdCBtYW5pZmVzdDsgdGhpcyBtYXkgdGFrZSBzZXZl
cmFsIG1pbnV0ZXMuIgorICAgICAgICB9OworICAgICAgICB2YXIgdGV4dENvbnRlbnQgPSBzdGF0
dXNUZXh0c1tzdGF0dXNOYW1lXTsKKworICAgICAgICB0aGlzLm1ldGVyLnNldEF0dHJpYnV0ZSgi
YXJpYS12YWx1ZW5vdyIsIHRoaXMubWV0ZXIuZ2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4Iikp
OworICAgICAgICB0aGlzLm1ldGVyLnN0eWxlLndpZHRoID0gIjEwMCUiOworICAgICAgICB0aGlz
Lm1ldGVyLnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7CisgICAgICAgIHRoaXMubWV0ZXIuY2xh
c3NMaXN0LnJlbW92ZSgicHJvZ3Jlc3Mtc3RyaXBlZCIsICJhY3RpdmUiLCAic3RvcHBlZCIsICJs
b2FkaW5nLW1hbmlmZXN0Iik7CisgICAgICAgIHRoaXMubWV0ZXIuY2xhc3NMaXN0LmFkZChzdGF0
dXNOYW1lKTsKKyAgICAgICAgdGhpcy5ydW5uZXIuZGlzcGxheV9jdXJyZW50X3Rlc3QobnVsbCk7
CisgICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnN0ZWFk
eV9zdGF0dXModGhpcy5ydW5uZXIuc3RvcF9mbGFnID8gInN0b3BwZWQiIDogImRvbmUiKTsKKyAg
ICAgICAgLy9hZGQgdGhlIGpzb24gc2VyaWFsaXphdGlvbiBvZiB0aGUgcmVzdWx0cworICAgICAg
ICB2YXIgYSA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCIuanNvblJlc3VsdHMiKTsKKyAgICAg
ICAgdmFyIGpzb24gPSB0aGlzLnJ1bm5lci5yZXN1bHRzLnRvX2pzb24oKTsKKworICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImR1bXBpdCIpLmNoZWNrZWQpIHsKKyAgICAgICAg
ICAgIHRoaXMuanNvbl9yZXN1bHRzX2FyZWEgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0
aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgidGV4dGFyZWEiKSk7CisgICAgICAgICAgICBmb3Io
dmFyIGkgPSAwLHQgPSB0aGlzLmpzb25fcmVzdWx0c19hcmVhLmxlbmd0aDsgaSA8IHQ7IGkrKyl7
CisgICAgICAgICAgICAgICAgdGhpcy5lbGVtLnJlbW92ZUNoaWxkKHRoaXMuanNvbl9yZXN1bHRz
X2FyZWFbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5qc29uX3Jlc3VsdHNf
YXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7CisgICAgICAgICAgICB0
aGlzLmpzb25fcmVzdWx0c19hcmVhLnN0eWxlLndpZHRoID0gIjEwMCUiOworICAgICAgICAgICAg
dGhpcy5qc29uX3Jlc3VsdHNfYXJlYS5zZXRBdHRyaWJ1dGUoInJvd3MiLCAiNTAiKTsKKyAgICAg
ICAgICAgIHRoaXMuZWxlbS5hcHBlbmRDaGlsZCh0aGlzLmpzb25fcmVzdWx0c19hcmVhKTsKKyAg
ICAgICAgICAgIHRoaXMuanNvbl9yZXN1bHRzX2FyZWEudGV4dENvbnRlbnQgPSBqc29uOworICAg
ICAgICB9CisgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2pzb25dLCB7IHR5cGU6ICJhcHBs
aWNhdGlvbi9qc29uIiB9KTsKKyAgICAgICAgYS5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmpl
Y3RVUkwoYmxvYik7CisgICAgICAgIGEuZG93bmxvYWQgPSAicnVubmVyLXJlc3VsdHMuanNvbiI7
CisgICAgICAgIGEudGV4dENvbnRlbnQgPSAiRG93bmxvYWQgSlNPTiByZXN1bHRzIjsKKyAgICAg
ICAgaWYgKCFhLmdldEF0dHJpYnV0ZSgiZG93bmxvYWQiKSkgYS50ZXh0Q29udGVudCArPSAiIChy
aWdodC1jbGljayBhbmQgc2F2ZSBhcyB0byBkb3dubG9hZCkiOworICAgICAgICBhLnN0eWxlLmRp
c3BsYXkgPSAiaW5saW5lIjsKKyAgICB9LAorCisgICAgdGVzdF9uYW1lX25vZGU6IGZ1bmN0aW9u
KHRlc3QpIHsKKyAgICAgICAgaWYgKCF0ZXN0Lmhhc093blByb3BlcnR5KCJyZWZfdXJsIikpIHsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLmxpbmsodGVzdC51cmwpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CisgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubGluayh0ZXN0LnVybCkp
OworICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiICIgKyB0ZXN0LnJlZl90eXBlICsgIiAiKSk7CisgICAgICAgICAgICB3cmFwcGVyLmFwcGVu
ZENoaWxkKHRoaXMubGluayh0ZXN0LnJlZl91cmwpKTsKKyAgICAgICAgICAgIHJldHVybiB3cmFw
cGVyOworICAgICAgICB9CisgICAgfSwKKworICAgIGxpbms6IGZ1bmN0aW9uKGhyZWYpIHsKKyAg
ICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgICAgICAgIGxp
bmsuaHJlZiA9IHRoaXMucnVubmVyLnNlcnZlciArIGhyZWY7CisgICAgICAgIGxpbmsudGV4dENv
bnRlbnQgPSBocmVmOworICAgICAgICByZXR1cm4gbGluazsKKyAgICB9LAorCisgICAgdXBkYXRl
X21ldGVyOiBmdW5jdGlvbihwcm9ncmVzcywgY291bnQsIHRvdGFsKSB7CisgICAgICAgIHRoaXMu
bWV0ZXIuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbm93IiwgY291bnQpOworICAgICAgICB0aGlz
Lm1ldGVyLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1heCIsIHRvdGFsKTsKKyAgICAgICAgdGhp
cy5tZXRlci50ZXh0Q29udGVudCA9IHRoaXMubWV0ZXIuc3R5bGUud2lkdGggPSAocHJvZ3Jlc3Mg
KiAxMDApLnRvRml4ZWQoMSkgKyAiJSI7CisgICAgfSwKKworICAgIGFwcGx5X2Rpc3BsYXlfZmls
dGVyOiBmdW5jdGlvbih0ZXN0X3N0YXR1cywgZGlzcGxheV9zdGF0ZSkgeworICAgICAgICB0aGlz
LmRpc3BsYXlfZmlsdGVyX3N0YXRlW3Rlc3Rfc3RhdHVzXSA9IGRpc3BsYXlfc3RhdGU7CisgICAg
ICAgIHZhciByZXN1bHRfY2VsbHMgPSB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgiLnJlc3Vs
dHMgPiB0YWJsZSB0ciB0ZC4iICsgdGVzdF9zdGF0dXMpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlc3VsdF9jZWxscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcHBs
eV9kaXNwbGF5X2ZpbHRlcl90b19yZXN1bHRfcm93KHJlc3VsdF9jZWxsc1tpXS5wYXJlbnROb2Rl
LCBkaXNwbGF5X3N0YXRlKQorICAgICAgICB9CisgICAgfSwKKworICAgIGFwcGx5X2Rpc3BsYXlf
ZmlsdGVyX3RvX3Jlc3VsdF9yb3c6IGZ1bmN0aW9uKHJlc3VsdF9yb3csIGRpc3BsYXlfc3RhdGUp
IHsKKyAgICAgICAgcmVzdWx0X3Jvdy5zdHlsZS5kaXNwbGF5ID0gZGlzcGxheV9zdGF0ZSA/ICIi
IDogIm5vbmUiOworICAgIH0KK307CisKK2Z1bmN0aW9uIE1hbnVhbFVJKGVsZW0sIHJ1bm5lcikg
eworICAgIHRoaXMuZWxlbSA9IGVsZW07CisgICAgdGhpcy5ydW5uZXIgPSBydW5uZXI7CisgICAg
dGhpcy5wYXNzX2J1dHRvbiA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24ucGFzcyIp
OworICAgIHRoaXMuZmFpbF9idXR0b24gPSB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvcigiYnV0dG9u
LmZhaWwiKTsKKyAgICB0aGlzLnNraXBfYnV0dG9uID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3Io
ImJ1dHRvbi5za2lwIik7CisgICAgdGhpcy5yZWZfYnV0dG9ucyA9IHRoaXMuZWxlbS5xdWVyeVNl
bGVjdG9yKCIucmVmdGVzdFVJIik7CisgICAgdGhpcy5yZWZfdHlwZSA9IHRoaXMucmVmX2J1dHRv
bnMucXVlcnlTZWxlY3RvcigiLnJlZlR5cGUiKTsKKyAgICB0aGlzLnJlZl93YXJuaW5nID0gdGhp
cy5lbGVtLnF1ZXJ5U2VsZWN0b3IoIi5yZWZ0ZXN0V2FybiIpOworICAgIHRoaXMudGVzdF9idXR0
b24gPSB0aGlzLnJlZl9idXR0b25zLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50ZXN0Iik7CisgICAg
dGhpcy5yZWZfYnV0dG9uID0gdGhpcy5yZWZfYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCJidXR0b24u
cmVmIik7CisKKyAgICB0aGlzLmhpZGUoKTsKKworICAgIHRoaXMucnVubmVyLnRlc3Rfc3RhcnRf
Y2FsbGJhY2tzLnB1c2godGhpcy5vbl90ZXN0X3N0YXJ0LmJpbmQodGhpcykpOworICAgIHRoaXMu
cnVubmVyLnRlc3RfcGF1c2VfY2FsbGJhY2tzLnB1c2godGhpcy5oaWRlLmJpbmQodGhpcykpOwor
ICAgIHRoaXMucnVubmVyLmRvbmVfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9kb25lLmJpbmQodGhp
cykpOworCisgICAgdGhpcy5wYXNzX2J1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIHRoaXMuZGlzYWJsZV9idXR0b25zKCk7CisgICAgICAgIHRoaXMucnVubmVyLm9uX3Jlc3Vs
dCgiUEFTUyIsICIiLCBbXSk7CisgICAgfS5iaW5kKHRoaXMpOworCisgICAgdGhpcy5za2lwX2J1
dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZGlzYWJsZV9idXR0b25z
KCk7CisgICAgICAgIHRoaXMucnVubmVyLm9uX3Jlc3VsdCgiTk9UUlVOIiwgIiIsIFtdKTsKKyAg
ICB9LmJpbmQodGhpcyk7CisKKyAgICB0aGlzLmZhaWxfYnV0dG9uLm9uY2xpY2sgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGhpcy5kaXNhYmxlX2J1dHRvbnMoKTsKKyAgICAgICAgdGhpcy5ydW5u
ZXIub25fcmVzdWx0KCJGQUlMIiwgIiIsIFtdKTsKKyAgICB9LmJpbmQodGhpcyk7Cit9CisKK01h
bnVhbFVJLnByb3RvdHlwZSA9IHsKKyAgICBzaG93OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhp
cy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgICAgICBzZXRUaW1lb3V0KHRoaXMu
ZW5hYmxlX2J1dHRvbnMuYmluZCh0aGlzKSwgMjAwKTsKKyAgICB9LAorCisgICAgaGlkZTogZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAg
IH0sCisKKyAgICBzaG93X3JlZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVmX2J1dHRv
bnMuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICAgICAgIHRoaXMudGVzdF9idXR0b24ub25j
bGljayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5ydW5uZXIubG9hZCh0aGlzLnJ1
bm5lci5jdXJyZW50X3Rlc3QudXJsKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgICB0
aGlzLnJlZl9idXR0b24ub25jbGljayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5y
dW5uZXIubG9hZCh0aGlzLnJ1bm5lci5jdXJyZW50X3Rlc3QucmVmX3VybCk7CisgICAgICAgIH0u
YmluZCh0aGlzKTsKKyAgICB9LAorCisgICAgaGlkZV9yZWY6IGZ1bmN0aW9uKCkgeworICAgICAg
ICB0aGlzLnJlZl9idXR0b25zLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgfSwKKworICAg
IGRpc2FibGVfYnV0dG9uczogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGFzc19idXR0b24u
ZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLmZhaWxfYnV0dG9uLmRpc2FibGVkID0gdHJ1
ZTsKKyAgICB9LAorCisgICAgZW5hYmxlX2J1dHRvbnM6IGZ1bmN0aW9uKCkgeworICAgICAgICB0
aGlzLnBhc3NfYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuZmFpbF9idXR0
b24uZGlzYWJsZWQgPSBmYWxzZTsKKyAgICB9LAorCisgICAgb25fdGVzdF9zdGFydDogZnVuY3Rp
b24odGVzdCkgeworICAgICAgICBpZiAodGVzdC50eXBlID09ICJtYW51YWwiIHx8IHRlc3QudHlw
ZSA9PSAicmVmdGVzdCIpIHsKKyAgICAgICAgICAgIHRoaXMuc2hvdygpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGhpcy5oaWRlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRl
c3QudHlwZSA9PSAicmVmdGVzdCIpIHsKKyAgICAgICAgICAgIHRoaXMuc2hvd19yZWYoKTsKKyAg
ICAgICAgICAgIHRoaXMucmVmX3R5cGUudGV4dENvbnRlbnQgPSB0ZXN0LnJlZl90eXBlID09PSAi
PT0iID8gImVxdWFsIiA6ICJ1bmVxdWFsIjsKKyAgICAgICAgICAgIGlmICh0ZXN0LnJlZl9sZW5n
dGggPiAxKSB7CisgICAgICAgICAgICAgICAgdGhpcy5yZWZfd2FybmluZy50ZXh0Q29udGVudCA9
ICJXQVJOSU5HOiBvbmx5IHByZXNlbnRpbmcgZmlyc3Qgb2YgIiArIHRlc3QucmVmX2xlbmd0aCAr
ICIgcmVmZXJlbmNlcyI7CisgICAgICAgICAgICAgICAgdGhpcy5yZWZfd2FybmluZy5zdHlsZS5k
aXNwbGF5ID0gImlubGluZSI7CisgICAgICAgICAgICB9ICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLnJlZl93YXJuaW5nLnRleHRDb250ZW50ID0gIiI7CisgICAgICAgICAgICAgICAgdGhp
cy5yZWZfd2FybmluZy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5oaWRlX3JlZigpOworICAgICAgICB9Cisg
ICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmhpZGUoKTsK
KyAgICB9Cit9OworCitmdW5jdGlvbiBUZXN0Q29udHJvbChlbGVtLCBydW5uZXIpIHsKKyAgICB0
aGlzLmVsZW0gPSBlbGVtOworICAgIHRoaXMucGF0aF9pbnB1dCA9IHRoaXMuZWxlbS5xdWVyeVNl
bGVjdG9yKCIucGF0aCIpOworICAgIHRoaXMucGF0aF9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJj
aGFuZ2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5zZXRfY291bnRzKCk7CisgICAgfS5i
aW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy51c2VfcmVnZXhfaW5wdXQgPSB0aGlzLmVsZW0u
cXVlcnlTZWxlY3RvcigiI3VzZV9yZWdleCIpOworICAgIHRoaXMudXNlX3JlZ2V4X2lucHV0LmFk
ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnNldF9j
b3VudHMoKTsKKyAgICB9LmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLnBhdXNlX2J1dHRv
biA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24udG9nZ2xlUGF1c2UiKTsKKyAgICB0
aGlzLnN0YXJ0X2J1dHRvbiA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24udG9nZ2xl
U3RhcnQiKTsKKyAgICB0aGlzLnR5cGVfY2hlY2tib3hlcyA9IEFycmF5LnByb3RvdHlwZS5zbGlj
ZS5jYWxsKAorICAgICAgICB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlwZT1j
aGVja2JveF0udGVzdC10eXBlIikpOworICAgIHRoaXMudHlwZV9jaGVja2JveGVzLmZvckVhY2go
ZnVuY3Rpb24oZWxlbSkgeworICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5zZXRfY291bnRzKCk7CisgICAgICAgIH0u
YmluZCh0aGlzKSwKKyAgICAgICAgZmFsc2UpOworICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLnN0YXJ0X2J1dHRvbi5k
aXNhYmxlZCA9IHRoaXMuZ2V0X3Rlc3RfdHlwZXMoKS5sZW5ndGggPCAxOworICAgICAgICB9LmJp
bmQodGhpcyksCisgICAgICAgIGZhbHNlKTsKKyAgICB9LmJpbmQodGhpcykpOworCisgICAgdGhp
cy50aW1lb3V0X2lucHV0ID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3IoIi50aW1lb3V0X211bHRp
cGxpZXIiKTsKKyAgICB0aGlzLnJlbmRlcl9jaGVja2JveCA9IHRoaXMuZWxlbS5xdWVyeVNlbGVj
dG9yKCIucmVuZGVyIik7CisgICAgdGhpcy50ZXN0Y291bnRfYXJlYSA9IHRoaXMuZWxlbS5xdWVy
eVNlbGVjdG9yKCIjdGVzdGNvdW50Iik7CisgICAgdGhpcy5ydW5uZXIgPSBydW5uZXI7CisgICAg
dGhpcy5ydW5uZXIuZG9uZV9jYWxsYmFja3MucHVzaCh0aGlzLm9uX2RvbmUuYmluZCh0aGlzKSk7
CisgICAgdGhpcy5zZXRfc3RhcnQoKTsKKyAgICB0aGlzLnNldF9jb3VudHMoKTsKK30KKworVGVz
dENvbnRyb2wucHJvdG90eXBlID0geworICAgIHNldF9zdGFydDogZnVuY3Rpb24oKSB7CisgICAg
ICAgIHRoaXMuc3RhcnRfYnV0dG9uLmRpc2FibGVkID0gdGhpcy5nZXRfdGVzdF90eXBlcygpLmxl
bmd0aCA8IDE7CisgICAgICAgIHRoaXMucGF1c2VfYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKKyAg
ICAgICAgdGhpcy5zdGFydF9idXR0b24udGV4dENvbnRlbnQgPSAiU3RhcnQiOworICAgICAgICB0
aGlzLnBhdGhfaW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy50eXBlX2NoZWNr
Ym94ZXMuZm9yRWFjaChmdW5jdGlvbihlbGVtKSB7CisgICAgICAgICAgICBlbGVtLmRpc2FibGVk
ID0gZmFsc2U7CisgICAgICAgIH0pOworICAgICAgICB0aGlzLnN0YXJ0X2J1dHRvbi5vbmNsaWNr
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcGF0aCA9IHRoaXMuZ2V0X3BhdGgoKTsK
KyAgICAgICAgICAgIHZhciB0ZXN0X3R5cGVzID0gdGhpcy5nZXRfdGVzdF90eXBlcygpOworICAg
ICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5nZXRfdGVzdGhhcm5lc3Nfc2V0dGluZ3MoKTsK
KyAgICAgICAgICAgIHZhciB1c2VfcmVnZXggPSB0aGlzLmdldF91c2VfcmVnZXgoKTsKKyAgICAg
ICAgICAgIHRoaXMucnVubmVyLnN0YXJ0KHBhdGgsIHRlc3RfdHlwZXMsIHNldHRpbmdzLCB1c2Vf
cmVnZXgpOworICAgICAgICAgICAgdGhpcy5zZXRfc3RvcCgpOworICAgICAgICAgICAgdGhpcy5z
ZXRfcGF1c2UoKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgIH0sCisKKyAgICBzZXRfc3Rv
cDogZnVuY3Rpb24oKSB7CisgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJ1bm5lci50aW1lb3V0
KTsKKyAgICAgICAgdGhpcy5wYXVzZV9idXR0b24uZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAg
dGhpcy5zdGFydF9idXR0b24udGV4dENvbnRlbnQgPSAiU3RvcCI7CisgICAgICAgIHRoaXMucGF0
aF9pbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMudHlwZV9jaGVja2JveGVzLmZv
ckVhY2goZnVuY3Rpb24oZWxlbSkgeworICAgICAgICAgICAgZWxlbS5kaXNhYmxlZCA9IHRydWU7
CisgICAgICAgIH0pOworICAgICAgICB0aGlzLnN0YXJ0X2J1dHRvbi5vbmNsaWNrID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB0aGlzLnJ1bm5lci5zdG9wX2ZsYWcgPSB0cnVlOworICAgICAg
ICAgICAgdGhpcy5ydW5uZXIuZG9uZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisgICAgfSwK
KworICAgIHNldF9wYXVzZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGF1c2VfYnV0dG9u
LnRleHRDb250ZW50ID0gIlBhdXNlIjsKKyAgICAgICAgdGhpcy5wYXVzZV9idXR0b24ub25jbGlj
ayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5ydW5uZXIucGF1c2UoKTsKKyAgICAg
ICAgICAgIHRoaXMuc2V0X3Jlc3VtZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisgICAgfSwK
KworICAgIHNldF9yZXN1bWU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnBhdXNlX2J1dHRv
bi50ZXh0Q29udGVudCA9ICJSZXN1bWUiOworICAgICAgICB0aGlzLnBhdXNlX2J1dHRvbi5vbmNs
aWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLnJ1bm5lci51bnBhdXNlKCk7Cisg
ICAgICAgICAgICB0aGlzLnNldF9wYXVzZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisKKyAg
ICB9LAorCisgICAgc2V0X2NvdW50czogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0aGlzLnJ1
bm5lci5tYW5pZmVzdF9sb2FkaW5nKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRoaXMuc2V0X2NvdW50cygpOworICAgICAgICAgICAgfS5i
aW5kKHRoaXMpLCAxMDAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICB2YXIgcGF0aCA9IHRoaXMuZ2V0X3BhdGgoKTsKKyAgICAgICAgdmFyIHRlc3RfdHlwZXMgPSB0
aGlzLmdldF90ZXN0X3R5cGVzKCk7CisgICAgICAgIHZhciB1c2VfcmVnZXggPSB0aGlzLmdldF91
c2VfcmVnZXgoKTsKKyAgICAgICAgdmFyIGl0ZXJhdG9yID0gbmV3IE1hbmlmZXN0SXRlcmF0b3Io
dGhpcy5ydW5uZXIubWFuaWZlc3QsIHBhdGgsIHRlc3RfdHlwZXMsIHVzZV9yZWdleCk7CisgICAg
ICAgIHZhciBjb3VudCA9IGl0ZXJhdG9yLmNvdW50KCk7CisgICAgICAgIHRoaXMudGVzdGNvdW50
X2FyZWEudGV4dENvbnRlbnQgPSBjb3VudDsKKyAgICB9LAorCisgICAgZ2V0X3BhdGg6IGZ1bmN0
aW9uKCkgeworICAgICAgICByZXR1cm4gdGhpcy5wYXRoX2lucHV0LnZhbHVlOworICAgIH0sCisK
KyAgICBnZXRfdGVzdF90eXBlczogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnR5
cGVfY2hlY2tib3hlcy5maWx0ZXIoZnVuY3Rpb24oZWxlbSkgeworICAgICAgICAgICAgcmV0dXJu
IGVsZW0uY2hlY2tlZDsKKyAgICAgICAgfSkubWFwKGZ1bmN0aW9uKGVsZW0pIHsKKyAgICAgICAg
ICAgIHJldHVybiBlbGVtLnZhbHVlOworICAgICAgICB9KTsKKyAgICB9LAorCisgICAgZ2V0X3Rl
c3RoYXJuZXNzX3NldHRpbmdzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHt0aW1lb3V0
X211bHRpcGxpZXI6IHBhcnNlRmxvYXQodGhpcy50aW1lb3V0X2lucHV0LnZhbHVlKSwKKyAgICAg
ICAgICAgICAgICBvdXRwdXQ6IHRoaXMucmVuZGVyX2NoZWNrYm94LmNoZWNrZWR9OworICAgIH0s
CisKKyAgICBnZXRfdXNlX3JlZ2V4OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
dXNlX3JlZ2V4X2lucHV0LmNoZWNrZWQ7CisgICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0aW9u
KCkgeworICAgICAgICB0aGlzLnNldF9wYXVzZSgpOworICAgICAgICB0aGlzLnNldF9zdGFydCgp
OworICAgIH0KK307CisKK2Z1bmN0aW9uIFJlc3VsdHMocnVubmVyKSB7CisgICAgdGhpcy50ZXN0
X3Jlc3VsdHMgPSBudWxsOworICAgIHRoaXMucnVubmVyID0gcnVubmVyOworCisgICAgdGhpcy5y
dW5uZXIuc3RhcnRfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9zdGFydC5iaW5kKHRoaXMpKTsKK30K
KworUmVzdWx0cy5wcm90b3R5cGUgPSB7CisgICAgb25fc3RhcnQ6IGZ1bmN0aW9uKCkgeworICAg
ICAgICB0aGlzLnRlc3RfcmVzdWx0cyA9IFtdOworICAgIH0sCisKKyAgICBzZXQ6IGZ1bmN0aW9u
KHRlc3QsIHN0YXR1cywgbWVzc2FnZSwgc3VidGVzdHMpIHsKKyAgICAgICAgdGhpcy50ZXN0X3Jl
c3VsdHMucHVzaCh7InRlc3QiOnRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdWJ0ZXN0cyI6c3VidGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3NhZ2Ui
Om1lc3NhZ2V9KTsKKyAgICB9LAorCisgICAgY291bnQ6IGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZXR1cm4gdGhpcy50ZXN0X3Jlc3VsdHMubGVuZ3RoOworICAgIH0sCisKKyAgICB0b19qc29uOiBm
dW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGRhdGEgPSB7CisgICAgICAgICAgICAicmVzdWx0cyI6
IHRoaXMudGVzdF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgcnYgPSB7InRlc3QiOihyZXN1bHQudGVzdC5oYXNPd25Qcm9wZXJ0eSgicmVmX3VybCIp
ID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0LnRlc3QudXJsLCBy
ZXN1bHQudGVzdC5yZWZfdHlwZSwgcmVzdWx0LnRlc3QucmVmX3VybF0gOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC50ZXN0LnVybCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdWJ0ZXN0cyI6cmVzdWx0LnN1YnRlc3RzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjpyZXN1bHQuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAibWVzc2FnZSI6cmVzdWx0Lm1lc3NhZ2V9OworICAgICAgICAgICAgICAgIHJldHVybiBydjsK
KyAgICAgICAgICAgIH0pCisgICAgICAgIH07CisgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lm
eShkYXRhLCBudWxsLCAyKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiBSdW5uZXIobWFuaWZlc3Rf
cGF0aCkgeworICAgIHRoaXMuc2VydmVyID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lOOwor
ICAgIHRoaXMuaHR0cHNfc2VydmVyID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX09SSUdJTjsKKyAg
ICB0aGlzLm1hbmlmZXN0ID0gbmV3IE1hbmlmZXN0KG1hbmlmZXN0X3BhdGgpOworICAgIHRoaXMu
cGF0aCA9IG51bGw7CisgICAgdGhpcy50ZXN0X3R5cGVzID0gbnVsbDsKKyAgICB0aGlzLm1hbmlm
ZXN0X2l0ZXJhdG9yID0gbnVsbDsKKworICAgIHRoaXMudGVzdF93aW5kb3cgPSBudWxsOworICAg
IHRoaXMudGVzdF9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3VycmVudF90ZXN0Jyk7
CisgICAgdGhpcy50ZXN0X3VybCA9IHRoaXMudGVzdF9kaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2EnKVswXTsKKyAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CisgICAgdGhpcy50aW1lb3V0
ID0gbnVsbDsKKyAgICB0aGlzLm51bV90ZXN0cyA9IG51bGw7CisgICAgdGhpcy5wYXVzZV9mbGFn
ID0gZmFsc2U7CisgICAgdGhpcy5zdG9wX2ZsYWcgPSBmYWxzZTsKKyAgICB0aGlzLmRvbmVfZmxh
ZyA9IGZhbHNlOworCisgICAgdGhpcy5tYW5pZmVzdF93YWl0X2NhbGxiYWNrcyA9IFtdOworICAg
IHRoaXMuc3RhcnRfY2FsbGJhY2tzID0gW107CisgICAgdGhpcy50ZXN0X3N0YXJ0X2NhbGxiYWNr
cyA9IFtdOworICAgIHRoaXMudGVzdF9wYXVzZV9jYWxsYmFja3MgPSBbXTsKKyAgICB0aGlzLnJl
c3VsdF9jYWxsYmFja3MgPSBbXTsKKyAgICB0aGlzLmRvbmVfY2FsbGJhY2tzID0gW107CisKKyAg
ICB0aGlzLnJlc3VsdHMgPSBuZXcgUmVzdWx0cyh0aGlzKTsKKworICAgIHRoaXMuc3RhcnRfYWZ0
ZXJfbWFuaWZlc3RfbG9hZCA9IGZhbHNlOworICAgIHRoaXMubWFuaWZlc3RfbG9hZGluZyA9IHRy
dWU7CisgICAgdGhpcy5tYW5pZmVzdC5sb2FkKHRoaXMubWFuaWZlc3RfbG9hZGVkLmJpbmQodGhp
cykpOworfQorCitSdW5uZXIucHJvdG90eXBlID0geworICAgIHRlc3RfdGltZW91dDogMjAwMDAs
IC8vbXMKKworICAgIGN1cnJlbnRUZXN0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMubWFuaWZlc3RbdGhpcy5tVGVzdENvdW50XTsKKyAgICB9LAorCisgICAgZW5zdXJlX3Rlc3Rf
d2luZG93OiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0aGlzLnRlc3Rfd2luZG93IHx8IHRo
aXMudGVzdF93aW5kb3cubG9jYXRpb24gPT09IG51bGwpIHsKKyAgICAgICAgICB0aGlzLnRlc3Rf
d2luZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgODAwLCA2MDApOworICAgICAgICB9
CisgICAgfSwKKworICAgIG1hbmlmZXN0X2xvYWRlZDogZnVuY3Rpb24oKSB7CisgICAgICAgIHRo
aXMubWFuaWZlc3RfbG9hZGluZyA9IGZhbHNlOworICAgICAgICBpZiAodGhpcy5zdGFydF9hZnRl
cl9tYW5pZmVzdF9sb2FkKSB7CisgICAgICAgICAgICB0aGlzLmRvX3N0YXJ0KCk7CisgICAgICAg
IH0KKyAgICB9LAorCisgICAgc3RhcnQ6IGZ1bmN0aW9uKHBhdGgsIHRlc3RfdHlwZXMsIHRlc3Ro
YXJuZXNzX3NldHRpbmdzLCB1c2VfcmVnZXgpIHsKKyAgICAgICAgdGhpcy5wYXVzZV9mbGFnID0g
ZmFsc2U7CisgICAgICAgIHRoaXMuc3RvcF9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMuZG9u
ZV9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIHRoaXMu
dXNlX3JlZ2V4ID0gdXNlX3JlZ2V4OworICAgICAgICB0aGlzLnRlc3RfdHlwZXMgPSB0ZXN0X3R5
cGVzOworICAgICAgICB3aW5kb3cudGVzdGhhcm5lc3NfcHJvcGVydGllcyA9IHRlc3RoYXJuZXNz
X3NldHRpbmdzOworICAgICAgICB0aGlzLm1hbmlmZXN0X2l0ZXJhdG9yID0gbmV3IE1hbmlmZXN0
SXRlcmF0b3IodGhpcy5tYW5pZmVzdCwgdGhpcy5wYXRoLCB0aGlzLnRlc3RfdHlwZXMsIHRoaXMu
dXNlX3JlZ2V4KTsKKyAgICAgICAgdGhpcy5udW1fdGVzdHMgPSBudWxsOworCisgICAgICAgIHRo
aXMuZW5zdXJlX3Rlc3Rfd2luZG93KCk7CisgICAgICAgIGlmICh0aGlzLm1hbmlmZXN0LmRhdGEg
PT09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMud2FpdF9mb3JfbWFuaWZlc3QoKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZG9fc3RhcnQoKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICB3YWl0X2Zvcl9tYW5pZmVzdDogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMu
c3RhcnRfYWZ0ZXJfbWFuaWZlc3RfbG9hZCA9IHRydWU7CisgICAgICAgIHRoaXMubWFuaWZlc3Rf
d2FpdF9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihjYWxsYmFjaykgeworICAgICAgICAgICAg
Y2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSwKKworICAgIGRvX3N0YXJ0OiBmdW5jdGlv
bigpIHsKKyAgICAgICAgaWYgKHRoaXMubWFuaWZlc3RfaXRlcmF0b3IuY291bnQoKSA+IDApIHsK
KyAgICAgICAgICAgIHRoaXMuc3RhcnRfY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24oY2FsbGJh
Y2spIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB0aGlzLnJ1bl9uZXh0X3Rlc3QoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHZhciB0ZXN0cyA9ICJ0ZXN0cyI7CisgICAgICAgICAgICBpZiAodGhpcy50ZXN0X3R5cGVz
Lmxlbmd0aCA8IDMpIHsKKyAgICAgICAgICAgICAgICB0ZXN0cyA9IHRoaXMudGVzdF90eXBlcy5q
b2luKCIgdGVzdHMgb3IgIikgKyAiIHRlc3RzIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHZhciBtZXNzYWdlID0gIk5vICIgKyB0ZXN0cyArICIgZm91bmQgaW4gdGhpcyBwYXRoLiIKKyAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wYXRoIikuc2V0Q3VzdG9tVmFsaWRp
dHkobWVzc2FnZSk7CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfQorICAgIH0s
CisKKyAgICBwYXVzZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGF1c2VfZmxhZyA9IHRy
dWU7CisgICAgICAgIHRoaXMudGVzdF9wYXVzZV9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihj
YWxsYmFjaykgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5jdXJyZW50X3Rlc3QpOworICAg
ICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICB1bnBhdXNlOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgdGhpcy5wYXVzZV9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMucnVuX25leHRf
dGVzdCgpOworICAgIH0sCisKKyAgICBvbl9yZXN1bHQ6IGZ1bmN0aW9uKHN0YXR1cywgbWVzc2Fn
ZSwgc3VidGVzdHMpIHsKKyAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7CisgICAg
ICAgIHRoaXMucmVzdWx0cy5zZXQodGhpcy5jdXJyZW50X3Rlc3QsIHN0YXR1cywgbWVzc2FnZSwg
c3VidGVzdHMpOworICAgICAgICB0aGlzLnJlc3VsdF9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlv
bihjYWxsYmFjaykgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5jdXJyZW50X3Rlc3QsIHN0
YXR1cywgbWVzc2FnZSwgc3VidGVzdHMpOworICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAg
ICB0aGlzLnJ1bl9uZXh0X3Rlc3QoKTsKKyAgICB9LAorCisgICAgb25fdGltZW91dDogZnVuY3Rp
b24oKSB7CisgICAgICAgIHRoaXMub25fcmVzdWx0KCJUSU1FT1VUIiwgIiIsIFtdKTsKKyAgICB9
LAorCisgICAgZG9uZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZG9uZV9mbGFnID0gdHJ1
ZTsKKyAgICAgICAgaWYgKHRoaXMudGVzdF93aW5kb3cpIHsKKyAgICAgICAgICAgIHRoaXMudGVz
dF93aW5kb3cuY2xvc2UoKTsKKyAgICAgICAgICAgIHRoaXMudGVzdF93aW5kb3cgPSB1bmRlZmlu
ZWQ7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5kb25lX2NhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0
aW9uKGNhbGxiYWNrKSB7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9KTsKKyAg
ICB9LAorCisgICAgcnVuX25leHRfdGVzdDogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0aGlz
LnBhdXNlX2ZsYWcpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2
YXIgbmV4dF90ZXN0ID0gdGhpcy5tYW5pZmVzdF9pdGVyYXRvci5uZXh0KCk7CisgICAgICAgIGlm
IChuZXh0X3Rlc3QgPT09IG51bGx8fHRoaXMuZG9uZV9mbGFnKSB7CisgICAgICAgICAgICB0aGlz
LmRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
Y3VycmVudF90ZXN0ID0gbmV4dF90ZXN0OworCisgICAgICAgIGlmIChuZXh0X3Rlc3QudHlwZSA9
PT0gInRlc3RoYXJuZXNzIikgeworICAgICAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91
dCh0aGlzLm9uX3RpbWVvdXQuYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy50ZXN0X3RpbWVvdXQgKiB3aW5kb3cudGVzdGhhcm5lc3NfcHJvcGVy
dGllcy50aW1lb3V0X211bHRpcGxpZXIpOworICAgICAgICB9CisgICAgICAgIHRoaXMuZGlzcGxh
eV9jdXJyZW50X3Rlc3QodGhpcy5jdXJyZW50X3Rlc3QudXJsKTsKKyAgICAgICAgdGhpcy5sb2Fk
KHRoaXMuY3VycmVudF90ZXN0LnVybCk7CisKKyAgICAgICAgdGhpcy50ZXN0X3N0YXJ0X2NhbGxi
YWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgICAgICAgICBjYWxsYmFjayh0
aGlzLmN1cnJlbnRfdGVzdCk7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAg
IGRpc3BsYXlfY3VycmVudF90ZXN0OiBmdW5jdGlvbih1cmwpIHsKKyAgICAgICAgdmFyIG1hdGNo
X2xvY2F0aW9uLCBpbmRleCwgd2lkdGg7CisKKyAgICAgICAgaWYgKHVybCA9PT0gbnVsbCkgewor
ICAgICAgICAgICAgdGhpcy50ZXN0X2Rpdi5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Cisg
ICAgICAgICAgICB0aGlzLnRlc3RfdXJsLnJlbW92ZUF0dHJpYnV0ZSgiaHJlZiIpOworICAgICAg
ICAgICAgdGhpcy50ZXN0X3VybC50ZXh0Q29udGVudCA9ICIiOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbWF0Y2hfbG9jYXRpb24gPSB0aGlzLm1hbmlmZXN0X2l0
ZXJhdG9yLm1hdGNoX2xvY2F0aW9uKHVybCk7CisgICAgICAgIGluZGV4ID0gbWF0Y2hfbG9jYXRp
b24uaW5kZXg7CisgICAgICAgIHdpZHRoID0gbWF0Y2hfbG9jYXRpb24ud2lkdGg7CisKKyAgICAg
ICAgdGhpcy50ZXN0X3VybC5zZXRBdHRyaWJ1dGUoImhyZWYiLCB1cmwpOworICAgICAgICB0aGlz
LnRlc3RfdXJsLmlubmVySFRNTCA9IHVybC5zdWJzdHJpbmcoMCwgaW5kZXgpICsKKyAgICAgICAg
ICAgICI8c3BhbiBjbGFzcz0nbWF0Y2gnPiIgKworICAgICAgICAgICAgdXJsLnN1YnN0cmluZyhp
bmRleCwgaW5kZXggKyB3aWR0aCkgKworICAgICAgICAgICAgIjwvc3Bhbj4iICsKKyAgICAgICAg
ICAgIHVybC5zdWJzdHJpbmcoaW5kZXggKyB3aWR0aCk7CisgICAgICAgIHRoaXMudGVzdF9kaXYu
c3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICB9LAorCisgICAgbG9hZDogZnVuY3Rp
b24ocGF0aCkgeworICAgICAgICB0aGlzLmVuc3VyZV90ZXN0X3dpbmRvdygpOworICAgICAgICBp
ZiAocGF0aC5tYXRjaCgvXC5odHRwc1wuLykpCisgICAgICAgICAgdGhpcy50ZXN0X3dpbmRvdy5s
b2NhdGlvbi5ocmVmID0gdGhpcy5odHRwc19zZXJ2ZXIgKyBwYXRoOworICAgICAgICBlbHNlCisg
ICAgICAgICAgdGhpcy50ZXN0X3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5zZXJ2ZXIgKyBw
YXRoOworICAgIH0sCisKKyAgICBwcm9ncmVzczogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVy
biB0aGlzLnJlc3VsdHMuY291bnQoKSAvIHRoaXMudGVzdF9jb3VudCgpOworICAgIH0sCisKKyAg
ICB0ZXN0X2NvdW50OiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRoaXMubnVtX3Rlc3RzID09
PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLm51bV90ZXN0cyA9IHRoaXMubWFuaWZlc3RfaXRl
cmF0b3IuY291bnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5udW1fdGVzdHM7
CisgICAgfSwKKworICAgIG9uX2NvbXBsZXRlOiBmdW5jdGlvbih0ZXN0cywgc3RhdHVzKSB7Cisg
ICAgICB2YXIgaGFybmVzc19zdGF0dXNfbWFwID0gezA6Ik9LIiwgMToiRVJST1IiLCAyOiJUSU1F
T1VUIiwgMzoiTk9UUlVOIn07CisgICAgICB2YXIgc3VidGVzdF9zdGF0dXNfbWFwID0gezA6IlBB
U1MiLCAxOiJGQUlMIiwgMjoiVElNRU9VVCIsIDM6Ik5PVFJVTiJ9OworCisgICAgICAvLyB0aGlz
IHVnbHkgaGFjayBpcyBiZWNhdXNlIElFIHJlYWxseSBpbnNpc3RzIG9uIGhvbGRpbmcgb24gdG8g
dGhlIG9iamVjdHMgaXQgY3JlYXRlcyBpbgorICAgICAgLy8gb3RoZXIgd2luZG93cywgYW5kIG9u
IGxvc2luZyB0cmFjayBvZiB0aGVtIHdoZW4gdGhlIHdpbmRvdyBnZXRzIGNsb3NlZAorICAgICAg
dmFyIHN1YnRlc3RfcmVzdWx0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoCisgICAgICAg
ICAgdGVzdHMubWFwKGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICAgICAgICAgIHJldHVybiB7bmFt
ZTogdGVzdC5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogc3VidGVzdF9zdGF0
dXNfbWFwW3Rlc3Quc3RhdHVzXSwKKyAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0ZXN0
Lm1lc3NhZ2V9OworICAgICAgICAgIH0pCisgICAgICApKTsKKworICAgICAgcnVubmVyLm9uX3Jl
c3VsdChoYXJuZXNzX3N0YXR1c19tYXBbc3RhdHVzLnN0YXR1c10sCisgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1cy5tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0X3Jl
c3VsdHMpOworICAgIH0KK307CisKKworZnVuY3Rpb24gcGFyc2VPcHRpb25zKCkgeworICAgIHZh
ciBvcHRpb25zID0geworICAgICAgICB0ZXN0X3R5cGVzOiBbInRlc3RoYXJuZXNzIiwgInJlZnRl
c3QiLCAibWFudWFsIl0KKyAgICB9OworCisgICAgdmFyIG9wdGlvbnN0cmluZ3MgPSBsb2NhdGlv
bi5zZWFyY2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIik7CisgICAgZm9yICh2YXIgaSA9IDAsIGls
ID0gb3B0aW9uc3RyaW5ncy5sZW5ndGg7IGkgPCBpbDsgKytpKSB7CisgICAgICAgIHZhciBvcHQg
PSBvcHRpb25zdHJpbmdzW2ldOworICAgICAgICAvL1RPRE86IGZpeCB0aGlzIGZvciBjb21wbGV4
LXZhbHVlZCBvcHRpb25zCisgICAgICAgIG9wdGlvbnNbb3B0LnN1YnN0cmluZygwLCBvcHQuaW5k
ZXhPZigiPSIpKV0gPQorICAgICAgICAgICAgb3B0LnN1YnN0cmluZyhvcHQuaW5kZXhPZigiPSIp
ICsgMSk7CisgICAgfQorICAgIHJldHVybiBvcHRpb25zOworfQorCitmdW5jdGlvbiBzZXR1cCgp
IHsKKyAgICB2YXIgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucygpOworCisgICAgaWYgKG9wdGlvbnMu
cGF0aCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGF0aCcpLnZhbHVlID0g
b3B0aW9ucy5wYXRoOworICAgIH0KKworICAgIHJ1bm5lciA9IG5ldyBSdW5uZXIoIi9NQU5JRkVT
VC5qc29uIiwgb3B0aW9ucyk7CisgICAgdmFyIHRlc3RfY29udHJvbCA9IG5ldyBUZXN0Q29udHJv
bChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRyb2wiKSwgcnVubmVyKTsKKyAgICBu
ZXcgTWFudWFsVUkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hbnVhbFVJIiksIHJ1bm5lcik7
CisgICAgbmV3IFZpc3VhbE91dHB1dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiks
IHJ1bm5lcik7CisKKyAgICBpZiAob3B0aW9ucy5hdXRvcnVuID09PSAiMSIpIHsKKyAgICAgICAg
cnVubmVyLnN0YXJ0KHRlc3RfY29udHJvbC5nZXRfcGF0aCgpLAorICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9jb250cm9sLmdldF90ZXN0X3R5cGVzKCksCisgICAgICAgICAgICAgICAgICAgICB0
ZXN0X2NvbnRyb2wuZ2V0X3Rlc3RoYXJuZXNzX3NldHRpbmdzKCksCisgICAgICAgICAgICAgICAg
ICAgICB0ZXN0X2NvbnRyb2wuZ2V0X3VzZV9yZWdleCgpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkg
eworICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAiY29tcGxldGUiKQorICAgICAgICBydW5uZXIu
b25fY29tcGxldGUoZS5kYXRhLnRlc3RzLCBlLmRhdGEuc3RhdHVzKTsKKyAgICB9KTsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzZXR1cCwgZmFsc2Up
OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL3VwZGF0ZV9tYW5pZmVzdC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3VwZGF0ZV9tYW5pZmVz
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYjJjOGEyNmY4ZjEzZWJmMjljZDZlOTM0YWZkNjE0ZWQ1ZjZkNGI2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9ydW5uZXIvdXBkYXRlX21hbmlmZXN0LnB5CkBAIC0wLDAgKzEsMjggQEAK
K2ltcG9ydCBpbXAKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaGVyZSA9
IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK2xvY2FscGF0aHMgPSBpbXAubG9hZF9zb3VyY2Uo
ImxvY2FscGF0aHMiLCBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRp
ciwgImxvY2FscGF0aHMucHkiKSkpCisKK3Jvb3QgPSBsb2NhbHBhdGhzLnJlcG9fcm9vdAorCitm
cm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCwgdXBkYXRlCisKK2RlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICBwYXRoID0gb3MucGF0aC5qb2luKHJvb3QsICJNQU5JRkVTVC5qc29u
IikKKworICAgIG1hbmlmZXN0X2ZpbGUgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBtYW5pZmVz
dF9maWxlID0gbWFuaWZlc3QubG9hZChyb290LCBwYXRoKQorICAgIGV4Y2VwdCBtYW5pZmVzdC5N
YW5pZmVzdFZlcnNpb25NaXNtYXRjaDoKKyAgICAgICAgcGFzcworICAgIGlmIG1hbmlmZXN0X2Zp
bGUgaXMgTm9uZToKKyAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCIv
IikKKworICAgIHVwZGF0ZS51cGRhdGUocm9vdCwgbWFuaWZlc3RfZmlsZSkKKworICAgIG1hbmlm
ZXN0LndyaXRlKG1hbmlmZXN0X2ZpbGUsIHBhdGgpCisKKyAgICByZXR1cm4gWygiQ29udGVudC1U
eXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKV0sIGpzb24uZHVtcHMoeyJ1cmwiOiAiL01BTklGRVNU
Lmpzb24ifSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDUxZWUyOWU2NzE0MWY3MDJhMjNmNzdkNzYxOTRhZWY3N2JlYjFlNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjMgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2lu
ZGV4Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3J1bm5lci9sb2dvLnN2ZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5jc3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3Nz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5u
ZXIvcnVubmVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9ydW5uZXIvdXBkYXRlX21hbmlmZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2Ny
aXB0cy9pZDJwYXRoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YjhkNjQ0YmM1MzNiZDQ4MDRlOWE0Nzg0OWQ3
ZjgwYzQ2ZGVjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcwpAQCAtMCwwICsxLDEy
IEBACisKK3ZhciBmcyA9IHJlcXVpcmUoImZzIikKKywgICBwdGggPSByZXF1aXJlKCJwYXRoIikK
KywgICBpZCA9IHByb2Nlc3MuYXJndlsyXQorOworCitpZiAoIWlkKSB7CisgICAgY29uc29sZS5s
b2coIk1pc3NpbmcgSUQiKTsKKyAgICBwcm9jZXNzLmV4aXQoMSk7Cit9CisKK2NvbnNvbGUubG9n
KEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHB0aC5qb2luKF9fZGlybmFtZSwgImlkMnBhdGgu
anNvbiIpLCAidXRmOCIpKVtpZF0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJw
YXRoLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkxYmQ4Njk0YzU3ZWM4YjNkZTZiOGIyMTdlNDAwMDIzZTc4
NWE0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJwYXRoLmpzb24KQEAgLTAsMCArMSw4MjIgQEAK
K3sKKyAgICAiaW50cm9kdWN0aW9uIjogIm1pY3JvZGF0YS9pbnRyb2R1Y3Rpb24iLAorICAgICJi
YWNrZ3JvdW5kIjogImh0bWwvaW50cm9kdWN0aW9uL2JhY2tncm91bmQiLAorICAgICJhdWRpZW5j
ZSI6ICJodG1sL2ludHJvZHVjdGlvbi9hdWRpZW5jZSIsCisgICAgInNjb3BlIjogImh0bWwvaW50
cm9kdWN0aW9uL3Njb3BlIiwKKyAgICAiaGlzdG9yeS0wIjogImh0bWwvaW50cm9kdWN0aW9uL2hp
c3RvcnktMCIsCisgICAgImRlc2lnbi1ub3RlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9kZXNpZ24t
bm90ZXMiLAorICAgICJzZXJpYWxpemFiaWxpdHktb2Ytc2NyaXB0LWV4ZWN1dGlvbiI6ICJodG1s
L2ludHJvZHVjdGlvbi9kZXNpZ24tbm90ZXMvc2VyaWFsaXphYmlsaXR5LW9mLXNjcmlwdC1leGVj
dXRpb24iLAorICAgICJjb21wbGlhbmNlLXdpdGgtb3RoZXItc3BlY2lmaWNhdGlvbnMiOiAiaHRt
bC9pbnRyb2R1Y3Rpb24vZGVzaWduLW5vdGVzL2NvbXBsaWFuY2Utd2l0aC1vdGhlci1zcGVjaWZp
Y2F0aW9ucyIsCisgICAgImh0bWwtdnMteGh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vaHRtbC12
cy14aHRtbCIsCisgICAgInN0cnVjdHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24iOiAiaHRtbC9p
bnRyb2R1Y3Rpb24vc3RydWN0dXJlLW9mLXRoaXMtc3BlY2lmaWNhdGlvbiIsCisgICAgImhvdy10
by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiI6ICJodG1sL2ludHJvZHVjdGlvbi9zdHJ1Y3R1cmUt
b2YtdGhpcy1zcGVjaWZpY2F0aW9uL2hvdy10by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiIsCisg
ICAgInR5cG9ncmFwaGljLWNvbnZlbnRpb25zIjogImh0bWwvaW50cm9kdWN0aW9uL3N0cnVjdHVy
ZS1vZi10aGlzLXNwZWNpZmljYXRpb24vdHlwb2dyYXBoaWMtY29udmVudGlvbnMiLAorICAgICJm
aW5nZXJwcmludCI6ICJodG1sL2ludHJvZHVjdGlvbi9maW5nZXJwcmludCIsCisgICAgImEtcXVp
Y2staW50cm9kdWN0aW9uLXRvLWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1pbnRy
b2R1Y3Rpb24tdG8taHRtbCIsCisgICAgIndyaXRpbmctc2VjdXJlLWFwcGxpY2F0aW9ucy13aXRo
LWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1pbnRyb2R1Y3Rpb24tdG8taHRtbC93
cml0aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIiwKKyAgICAiY29tbW9uLXBpdGZh
bGxzLXRvLWF2b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIjogImh0bWwvaW50cm9k
dWN0aW9uL2EtcXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwvY29tbW9uLXBpdGZhbGxzLXRvLWF2
b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIiwKKyAgICAiY29uZm9ybWFuY2UtcmVx
dWlyZW1lbnRzLWZvci1hdXRob3JzIjogImh0bWwvaW50cm9kdWN0aW9uL2NvbmZvcm1hbmNlLXJl
cXVpcmVtZW50cy1mb3ItYXV0aG9ycyIsCisgICAgInByZXNlbnRhdGlvbmFsLW1hcmt1cCI6ICJo
dG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMvcHJl
c2VudGF0aW9uYWwtbWFya3VwIiwKKyAgICAic3ludGF4LWVycm9ycyI6ICJodG1sL2ludHJvZHVj
dGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMvc3ludGF4LWVycm9ycyIs
CisgICAgInJlc3RyaWN0aW9ucy1vbi1jb250ZW50LW1vZGVscy1hbmQtb24tYXR0cmlidXRlLXZh
bHVlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1
dGhvcnMvcmVzdHJpY3Rpb25zLW9uLWNvbnRlbnQtbW9kZWxzLWFuZC1vbi1hdHRyaWJ1dGUtdmFs
dWVzIiwKKyAgICAic3VnZ2VzdGVkLXJlYWRpbmciOiAiaHRtbC9pbnRyb2R1Y3Rpb24vc3VnZ2Vz
dGVkLXJlYWRpbmciLAorICAgICJpbmZyYXN0cnVjdHVyZSI6ICJodG1sL2luZnJhc3RydWN0dXJl
IiwKKyAgICAidGVybWlub2xvZ3kiOiAibWljcm9kYXRhL3Rlcm1pbm9sb2d5IiwKKyAgICAicmVz
b3VyY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvcmVzb3VyY2VzIiwKKyAg
ICAieG1sIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kveG1sIiwKKyAgICAiZG9t
LXRyZWVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvZG9tLXRyZWVzIiwKKyAg
ICAic2NyaXB0aW5nLTAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9neS9zY3JpcHRp
bmctMCIsCisgICAgInBsdWdpbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9neS9w
bHVnaW5zIiwKKyAgICAiY2hhcmFjdGVyLWVuY29kaW5ncyI6ICJodG1sL2luZnJhc3RydWN0dXJl
L3Rlcm1pbm9sb2d5L2NoYXJhY3Rlci1lbmNvZGluZ3MiLAorICAgICJjb25mb3JtYW5jZS1yZXF1
aXJlbWVudHMiOiAibWljcm9kYXRhL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCisgICAgImNv
bmZvcm1hbmNlLWNsYXNzZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb25mb3JtYW5jZS1yZXF1
aXJlbWVudHMvY29uZm9ybWFuY2UtY2xhc3NlcyIsCisgICAgImRlcGVuZGVuY2llcyI6ICJtaWNy
b2RhdGEvZGVwZW5kZW5jaWVzIiwKKyAgICAiZXh0ZW5zaWJpbGl0eSI6ICJodG1sL2luZnJhc3Ry
dWN0dXJlL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy9leHRlbnNpYmlsaXR5IiwKKyAgICAiY2Fz
ZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5nLWNvbXBhcmlzb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jYXNlLXNlbnNpdGl2aXR5LWFuZC1zdHJpbmctY29tcGFyaXNvbiIsCisgICAgInV0Zi04Ijog
Imh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXRmLTgiLAorICAgICJjb21tb24tbWljcm9zeW50YXhlcyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzIiwKKyAgICAiY29tbW9u
LXBhcnNlci1pZGlvbXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9jb21tb24tcGFyc2VyLWlkaW9tcyIsCisgICAgImJvb2xlYW4tYXR0cmlidXRlcyI6ICJodG1s
L2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2Jvb2xlYW4tYXR0cmlidXRlcyIs
CisgICAgImtleXdvcmRzLWFuZC1lbnVtZXJhdGVkLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0
cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9rZXl3b3Jkcy1hbmQtZW51bWVyYXRlZC1hdHRy
aWJ1dGVzIiwKKyAgICAibnVtYmVycyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNy
b3N5bnRheGVzL251bWJlcnMiLAorICAgICJzaWduZWQtaW50ZWdlcnMiOiAiaHRtbC9pbmZyYXN0
cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAibm9uLW5lZ2F0aXZl
LWludGVnZXJzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvbnVt
YmVycyIsCisgICAgImZsb2F0aW5nLXBvaW50LW51bWJlcnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAicGVyY2VudGFnZXMtYW5kLWRp
bWVuc2lvbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1i
ZXJzIiwKKyAgICAibGlzdHMtb2YtaW50ZWdlcnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21t
b24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAibGlzdHMtb2YtZGltZW5zaW9ucyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL251bWJlcnMiLAorICAgICJk
YXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJtb250aHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9j
b21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJkYXRlcyI6ICJodG1s
L2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCisg
ICAgInllYXJsZXNzLWRhdGVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3lu
dGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAidGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJsb2NhbC1kYXRl
cy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9k
YXRlcy1hbmQtdGltZXMiLAorICAgICJ0aW1lLXpvbmVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUv
Y29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAiZ2xvYmFsLWRhdGVz
LWFuZC10aW1lcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2Rh
dGVzLWFuZC10aW1lcyIsCisgICAgIndlZWtzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9u
LW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAiZHVyYXRpb25zIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAg
ICAidmFndWVyLW1vbWVudHMtaW4tdGltZSI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1t
aWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCisgICAgImNvbG9ycyI6ICJodG1sL2luZnJh
c3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbG9ycyIsCisgICAgInNwYWNlLXNlcGFy
YXRlZC10b2tlbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9z
cGFjZS1zZXBhcmF0ZWQtdG9rZW5zIiwKKyAgICAiY29tbWEtc2VwYXJhdGVkLXRva2VucyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbW1hLXNlcGFyYXRlZC10
b2tlbnMiLAorICAgICJzeW50YXgtcmVmZXJlbmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2Nv
bW1vbi1taWNyb3N5bnRheGVzL3N5bnRheC1yZWZlcmVuY2VzIiwKKyAgICAibXEiOiAiaHRtbC9p
bmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9tcSIsCisgICAgInVybHMiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS91cmxzIiwKKyAgICAidGVybWlub2xvZ3ktMCI6ICJodG1sL2luZnJh
c3RydWN0dXJlL3VybHMvdGVybWlub2xvZ3ktMCIsCisgICAgInBhcnNpbmctdXJscyI6ICJodG1s
L2luZnJhc3RydWN0dXJlL3VybHMvcGFyc2luZy11cmxzIiwKKyAgICAiYmFzZS11cmxzIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9iYXNlLXVybHMiLAorICAgICJyZXNvbHZpbmctdXJscyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMiLAorICAgICJ1cmwtbWFu
aXB1bGF0aW9uLWFuZC1jcmVhdGlvbiI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvdXJsLW1h
bmlwdWxhdGlvbi1hbmQtY3JlYXRpb24iLAorICAgICJkeW5hbWljLWNoYW5nZXMtdG8tYmFzZS11
cmxzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9keW5hbWljLWNoYW5nZXMtdG8tYmFzZS11
cmxzIiwKKyAgICAiaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiI6ICJodG1sL2luZnJh
c3RydWN0dXJlL3VybHMvaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiIsCisgICAgImZl
dGNoaW5nLXJlc291cmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291cmNl
cyIsCisgICAgInRlcm1pbm9sb2d5LTEiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1y
ZXNvdXJjZXMvdGVybWlub2xvZ3ktMSIsCisgICAgInByb2Nlc3NpbmctbW9kZWwiOiAiaHRtbC9p
bmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvcHJvY2Vzc2luZy1tb2RlbCIsCisgICAg
ImVuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVkLXNlY3VyaXR5LWNvbmNlcm5zIjogImh0bWwvaW5m
cmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2VuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVk
LXNlY3VyaXR5LWNvbmNlcm5zIiwKKyAgICAiY29udGVudC10eXBlLXNuaWZmaW5nIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2NvbnRlbnQtdHlwZS1zbmlmZmluZyIs
CisgICAgImV4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxlbWVudHMi
OiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvZXh0cmFjdGluZy1jaGFy
YWN0ZXItZW5jb2RpbmdzLWZyb20tbWV0YS1lbGVtZW50cyIsCisgICAgImNvcnMtc2V0dGluZ3Mt
YXR0cmlidXRlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291cmNlcy9jb3Jz
LXNldHRpbmdzLWF0dHJpYnV0ZXMiLAorICAgICJjb3JzLWVuYWJsZWQtZmV0Y2giOiAiaHRtbC9p
bmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvY29ycy1lbmFibGVkLWZldGNoIiwKKyAg
ICAiY29tbW9uLWRvbS1pbnRlcmZhY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRv
bS1pbnRlcmZhY2VzIiwKKyAgICAicmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4taWRs
LWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMv
cmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4taWRsLWF0dHJpYnV0ZXMiLAorICAgICJj
b2xsZWN0aW9ucyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcy9j
b2xsZWN0aW9ucyIsCisgICAgImh0bWxhbGxjb2xsZWN0aW9uIjogImh0bWwvaW5mcmFzdHJ1Y3R1
cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25zIiwKKyAgICAiaHRtbGZvcm1jb250
cm9sc2NvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFj
ZXMvY29sbGVjdGlvbnMiLAorICAgICJodG1sb3B0aW9uc2NvbGxlY3Rpb24iOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMiLAorICAgICJkb21z
dHJpbmdtYXAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvZG9t
c3RyaW5nbWFwIiwKKyAgICAidHJhbnNmZXJhYmxlLW9iamVjdHMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvdHJhbnNmZXJhYmxlLW9iamVjdHMiLAorICAgICJz
YWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29t
bW9uLWRvbS1pbnRlcmZhY2VzL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEiLAorICAg
ICJnYXJiYWdlLWNvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWlu
dGVyZmFjZXMvZ2FyYmFnZS1jb2xsZWN0aW9uIiwKKyAgICAibmFtZXNwYWNlcyI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL25hbWVzcGFjZXMiLAorICAgICJkb20iOiAiaHRtbC9kb20iLAorICAgICJk
b2N1bWVudHMiOiAiaHRtbC9kb20vZG9jdW1lbnRzIiwKKyAgICAidGhlLWRvY3VtZW50LW9iamVj
dCI6ICJodG1sL2RvbS9kb2N1bWVudHMvdGhlLWRvY3VtZW50LW9iamVjdCIsCisgICAgInNlY3Vy
aXR5LWRvY3VtZW50IjogImh0bWwvZG9tL2RvY3VtZW50cy9zZWN1cml0eS1kb2N1bWVudCIsCisg
ICAgInJlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiOiAiaHRtbC9kb20vZG9jdW1lbnRzL3Jl
c291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiLAorICAgICJkb20tdHJlZS1hY2Nlc3NvcnMiOiAi
aHRtbC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycyIsCisgICAgImxvYWRpbmcteG1s
LWRvY3VtZW50cyI6ICJodG1sL2RvbS9kb2N1bWVudHMvbG9hZGluZy14bWwtZG9jdW1lbnRzIiwK
KyAgICAiZWxlbWVudHMiOiAiaHRtbC9kb20vZWxlbWVudHMiLAorICAgICJzZW1hbnRpY3MtMCI6
ICJodG1sL2RvbS9lbGVtZW50cy9zZW1hbnRpY3MtMCIsCisgICAgImVsZW1lbnRzLWluLXRoZS1k
b20iOiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudHMtaW4tdGhlLWRvbSIsCisgICAgImdsb2Jh
bC1hdHRyaWJ1dGVzIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAg
ICAidGhlLWlkLWF0dHJpYnV0ZSI6ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRl
cyIsCisgICAgInRoZS10aXRsZS1hdHRyaWJ1dGUiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFs
LWF0dHJpYnV0ZXMiLAorICAgICJ0aGUtbGFuZy1hbmQteG1sOmxhbmctYXR0cmlidXRlcyI6ICJo
dG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgInRoZS10cmFuc2xhdGUt
YXR0cmlidXRlIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAgICAi
dGhlLXhtbDpiYXNlLWF0dHJpYnV0ZS0oeG1sLW9ubHkpIjogImh0bWwvZG9tL2VsZW1lbnRzL2ds
b2JhbC1hdHRyaWJ1dGVzIiwKKyAgICAidGhlLWRpci1hdHRyaWJ1dGUiOiAiaHRtbC9kb20vZWxl
bWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMiLAorICAgICJjbGFzc2VzIjogImh0bWwvZG9tL2VsZW1l
bnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAgICAidGhlLXN0eWxlLWF0dHJpYnV0ZSI6ICJodG1s
L2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgImVtYmVkZGluZy1jdXN0b20t
bm9uLXZpc2libGUtZGF0YS13aXRoLXRoZS1kYXRhLSotYXR0cmlidXRlcyI6ICJodG1sL2RvbS9l
bGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgImVsZW1lbnQtZGVmaW5pdGlvbnMiOiAi
aHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCisgICAgImF0dHJpYnV0ZXMi
OiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCisgICAgImNvbnRlbnQt
bW9kZWxzIjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAia2luZHMt
b2YtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1vZGVscyIsCisgICAgIm1l
dGFkYXRhLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAorICAg
ICJmbG93LWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAorICAg
ICJzZWN0aW9uaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMi
LAorICAgICJoZWFkaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2Rl
bHMiLAorICAgICJwaHJhc2luZy1jb250ZW50IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQt
bW9kZWxzIiwKKyAgICAiZW1iZWRkZWQtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250
ZW50LW1vZGVscyIsCisgICAgImludGVyYWN0aXZlLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVu
dHMvY29udGVudC1tb2RlbHMiLAorICAgICJwYWxwYWJsZS1jb250ZW50IjogImh0bWwvZG9tL2Vs
ZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAidHJhbnNwYXJlbnQtY29udGVudC1tb2RlbHMi
OiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAorICAgICJwYXJhZ3JhcGhzIjog
Imh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAicmVxdWlyZW1lbnRzLXJl
bGF0aW5nLXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZvcm1hdHRpbmctY2hhcmFjdGVycyI6
ICJodG1sL2RvbS9lbGVtZW50cy9yZXF1aXJlbWVudHMtcmVsYXRpbmctdG8tYmlkaXJlY3Rpb25h
bC1hbGdvcml0aG0tZm9ybWF0dGluZy1jaGFyYWN0ZXJzIiwKKyAgICAid2FpLWFyaWEiOiAiaHRt
bC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJhcmlhLXJvbGUtYXR0cmlidXRlIjogImh0
bWwvZG9tL2VsZW1lbnRzL3dhaS1hcmlhIiwKKyAgICAic3RhdGUtYW5kLXByb3BlcnR5LWF0dHJp
YnV0ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJzZWMtc3Ryb25nLW5h
dGl2ZS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJzZWMt
aW1wbGljaXQtYXJpYS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAor
ICAgICJpbnRlcmFjdGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCI6ICJodG1sL2RvbS9pbnRlcmFj
dGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCIsCisgICAgImR5bmFtaWMtbWFya3VwLWluc2VydGlv
biI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24iLAorICAgICJvcGVuaW5nLXRo
ZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL29wZW5p
bmctdGhlLWlucHV0LXN0cmVhbSIsCisgICAgImNsb3NpbmctdGhlLWlucHV0LXN0cmVhbSI6ICJo
dG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vY2xvc2luZy10aGUtaW5wdXQtc3RyZWFt
IiwKKyAgICAiZG9jdW1lbnQud3JpdGUoKSI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNl
cnRpb24vZG9jdW1lbnQtd3JpdGUiLAorICAgICJkb2N1bWVudC53cml0ZWxuKCkiOiAiaHRtbC9k
b20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL2RvY3VtZW50LXdyaXRlbG4iLAorICAgICJzZW1h
bnRpY3MiOiAiaHRtbC9zZW1hbnRpY3MiLAorICAgICJ0aGUtcm9vdC1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQiLAorICAgICJ0aGUtaHRtbC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQvdGhlLWh0bWwtZWxlbWVudCIsCisgICAgImRv
Y3VtZW50LW1ldGFkYXRhIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhIiwKKyAg
ICAidGhlLWhlYWQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90
aGUtaGVhZC1lbGVtZW50IiwKKyAgICAidGhlLXRpdGxlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLXRpdGxlLWVsZW1lbnQiLAorICAgICJ0aGUtYmFzZS1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1iYXNlLWVsZW1l
bnQiLAorICAgICJ0aGUtbGluay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1l
dGFkYXRhL3RoZS1saW5rLWVsZW1lbnQiLAorICAgICJ0aGUtbWV0YS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQiLAorICAgICJzdGFu
ZGFyZC1tZXRhZGF0YS1uYW1lcyI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90
aGUtbWV0YS1lbGVtZW50IiwKKyAgICAib3RoZXItbWV0YWRhdGEtbmFtZXMiOiAiaHRtbC9zZW1h
bnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudCIsCisgICAgInByYWdtYS1k
aXJlY3RpdmVzIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVs
ZW1lbnQiLAorICAgICJvdGhlci1wcmFnbWEtZGlyZWN0aXZlcyI6ICJodG1sL3NlbWFudGljcy9k
b2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKKyAgICAiY2hhcnNldCI6ICJodG1s
L3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKKyAgICAidGhl
LXN0eWxlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLXN0
eWxlLWVsZW1lbnQiLAorICAgICJzdHlsaW5nIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1l
dGFkYXRhL3N0eWxpbmciLAorICAgICJzY3JpcHRpbmctMSI6ICJodG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMSIsCisgICAgInRoZS1zY3JpcHQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAorICAgICJzY3JpcHRpbmdMYW5ndWFnZXMiOiAi
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAicmVz
dHJpY3Rpb25zLWZvci1jb250ZW50cy1vZi1zY3JpcHQtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAiaW5saW5lLWRvY3VtZW50
YXRpb24tZm9yLWV4dGVybmFsLXNjcmlwdHMiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAic2NyaXB0VGFnWFNMVCI6ICJodG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAorICAgICJ0aGUtbm9zY3JpcHQtZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtbm9zY3JpcHQtZWxlbWVudCIs
CisgICAgInNlY3Rpb25zIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zIiwKKyAgICAidGhlLWJv
ZHktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtYm9keS1lbGVtZW50IiwK
KyAgICAidGhlLWFydGljbGUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUt
YXJ0aWNsZS1lbGVtZW50IiwKKyAgICAidGhlLXNlY3Rpb24tZWxlbWVudCI6ICJodG1sL3NlbWFu
dGljcy9zZWN0aW9ucy90aGUtc2VjdGlvbi1lbGVtZW50IiwKKyAgICAidGhlLW5hdi1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1uYXYtZWxlbWVudCIsCisgICAgInRoZS1h
c2lkZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hc2lkZS1lbGVtZW50
IiwKKyAgICAidGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzIjogImh0bWwv
c2VtYW50aWNzL3NlY3Rpb25zL3RoZS1oMS1oMi1oMy1oNC1oNS1hbmQtaDYtZWxlbWVudHMiLAor
ICAgICJ0aGUtaGdyb3VwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhlLWhn
cm91cC1lbGVtZW50IiwKKyAgICAidGhlLWhlYWRlci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNz
L3NlY3Rpb25zL3RoZS1oZWFkZXItZWxlbWVudCIsCisgICAgInRoZS1mb290ZXItZWxlbWVudCI6
ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtZm9vdGVyLWVsZW1lbnQiLAorICAgICJ0aGUt
YWRkcmVzcy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hZGRyZXNzLWVs
ZW1lbnQiLAorICAgICJoZWFkaW5ncy1hbmQtc2VjdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3Mvc2Vj
dGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKKyAgICAib3V0bGluZXMiOiAiaHRtbC9zZW1h
bnRpY3Mvc2VjdGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKKyAgICAidXNhZ2Utc3VtbWFy
eS0wIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3VzYWdlLXN1bW1hcnktMCIsCisgICAgImdy
b3VwaW5nLWNvbnRlbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudCIsCisgICAg
InRoZS1wLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtcC1l
bGVtZW50IiwKKyAgICAidGhlLWhyLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmct
Y29udGVudC90aGUtaHItZWxlbWVudCIsCisgICAgInRoZS1wcmUtZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1wcmUtZWxlbWVudCIsCisgICAgInRoZS1ibG9j
a3F1b3RlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtYmxv
Y2txdW90ZS1lbGVtZW50IiwKKyAgICAidGhlLW9sLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
Z3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudCIsCisgICAgInRoZS11bC1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLXVsLWVsZW1lbnQiLAorICAgICJ0
aGUtbGktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1saS1l
bGVtZW50IiwKKyAgICAidGhlLWRsLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmct
Y29udGVudC90aGUtZGwtZWxlbWVudCIsCisgICAgInRoZS1kdC1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQiLAorICAgICJ0aGUtZGQtZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kZC1lbGVtZW50IiwK
KyAgICAidGhlLWZpZ3VyZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRl
bnQvdGhlLWZpZ3VyZS1lbGVtZW50IiwKKyAgICAidGhlLWZpZ2NhcHRpb24tZWxlbWVudCI6ICJo
dG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQiLAor
ICAgICJ0aGUtZGl2LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90
aGUtZGl2LWVsZW1lbnQiLAorICAgICJ0ZXh0LWxldmVsLXNlbWFudGljcyI6ICJodG1sL3NlbWFu
dGljcy90ZXh0LWxldmVsLXNlbWFudGljcyIsCisgICAgInRoZS1hLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxlbWVudCIsCisgICAgInRoZS1l
bS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1lbS1l
bGVtZW50IiwKKyAgICAidGhlLXN0cm9uZy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1zdHJvbmctZWxlbWVudCIsCisgICAgInRoZS1zbWFsbC1lbGVt
ZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zbWFsbC1lbGVt
ZW50IiwKKyAgICAidGhlLXMtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNl
bWFudGljcy90aGUtcy1lbGVtZW50IiwKKyAgICAidGhlLWNpdGUtZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtY2l0ZS1lbGVtZW50IiwKKyAgICAidGhl
LXEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtcS1l
bGVtZW50IiwKKyAgICAidGhlLWRmbi1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2
ZWwtc2VtYW50aWNzL3RoZS1kZm4tZWxlbWVudCIsCisgICAgInRoZS1hYmJyLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWFiYnItZWxlbWVudCIsCisg
ICAgInRoZS10aW1lLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLXRpbWUtZWxlbWVudCIsCisgICAgInRoZS1jb2RlLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWNvZGUtZWxlbWVudCIsCisgICAgInRoZS12
YXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtdmFy
LWVsZW1lbnQiLAorICAgICJ0aGUtc2FtcC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1zYW1wLWVsZW1lbnQiLAorICAgICJ0aGUta2JkLWVsZW1lbnQi
OiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWtiZC1lbGVtZW50IiwK
KyAgICAidGhlLXN1Yi1hbmQtc3VwLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2
ZWwtc2VtYW50aWNzL3RoZS1zdWItYW5kLXN1cC1lbGVtZW50cyIsCisgICAgInRoZS1pLWVsZW1l
bnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWktZWxlbWVudCIs
CisgICAgInRoZS1iLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWItZWxlbWVudCIsCisgICAgInRoZS11LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
dGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXUtZWxlbWVudCIsCisgICAgInRoZS1tYXJrLWVsZW1l
bnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLW1hcmstZWxlbWVu
dCIsCisgICAgInRoZS1ydWJ5LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1z
ZW1hbnRpY3MvdGhlLXJ1YnktZWxlbWVudCIsCisgICAgInRoZS1ydC1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ydC1lbGVtZW50IiwKKyAgICAidGhl
LXJwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXJw
LWVsZW1lbnQiLAorICAgICJ0aGUtYmRpLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1s
ZXZlbC1zZW1hbnRpY3MvdGhlLWJkaS1lbGVtZW50IiwKKyAgICAidGhlLWJkby1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1iZG8tZWxlbWVudCIsCisg
ICAgInRoZS1zcGFuLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLXNwYW4tZWxlbWVudCIsCisgICAgInRoZS1ici1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ici1lbGVtZW50IiwKKyAgICAidGhlLXdici1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS13YnItZWxl
bWVudCIsCisgICAgInVzYWdlLXN1bW1hcnkiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1z
ZW1hbnRpY3MvdXNhZ2Utc3VtbWFyeSIsCisgICAgImVkaXRzIjogImh0bWwvc2VtYW50aWNzL2Vk
aXRzIiwKKyAgICAidGhlLWlucy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VkaXRzL3RoZS1p
bnMtZWxlbWVudCIsCisgICAgInRoZS1kZWwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lZGl0
cy90aGUtZGVsLWVsZW1lbnQiLAorICAgICJhdHRyaWJ1dGVzLWNvbW1vbi10by1pbnMtYW5kLWRl
bC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lZGl0cy9hdHRyaWJ1dGVzLWNvbW1vbi10by1p
bnMtYW5kLWRlbC1lbGVtZW50cyIsCisgICAgImVkaXRzLWFuZC1wYXJhZ3JhcGhzIjogImh0bWwv
c2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1wYXJhZ3JhcGhzIiwKKyAgICAiZWRpdHMtYW5kLWxp
c3RzIjogImh0bWwvc2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1saXN0cyIsCisgICAgImVkaXRz
LWFuZC10YWJsZXMiOiAiaHRtbC9zZW1hbnRpY3MvZWRpdHMvZWRpdHMtYW5kLXRhYmxlcyIsCisg
ICAgImVtYmVkZGVkLWNvbnRlbnQtMCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
LTAiLAorICAgICJ0aGUtaW1nLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgImFsdCI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiZ2VuZXJhbC1ndWlkZWxpbmVz
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAor
ICAgICJhLWxpbmstb3ItYnV0dG9uLWNvbnRhaW5pbmctbm90aGluZy1idXQtdGhlLWltYWdlIjog
Imh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAorICAg
ICJhLXBocmFzZS1vci1wYXJhZ3JhcGgtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFwaGljYWwtcmVw
cmVzZW50YXRpb246LWNoYXJ0cywtZGlhZ3JhbXMsLWdyYXBocywtbWFwcywtaWxsdXN0cmF0aW9u
cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwK
KyAgICAiYS1zaG9ydC1waHJhc2Utb3ItbGFiZWwtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFwaGlj
YWwtcmVwcmVzZW50YXRpb246LWljb25zLC1sb2dvcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAidGV4dC10aGF0LWhhcy1iZWVuLXJl
bmRlcmVkLXRvLWEtZ3JhcGhpYy1mb3ItdHlwb2dyYXBoaWNhbC1lZmZlY3QiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgImEtZ3JhcGhp
Y2FsLXJlcHJlc2VudGF0aW9uLW9mLXNvbWUtb2YtdGhlLXN1cnJvdW5kaW5nLXRleHQiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgImEt
cHVyZWx5LWRlY29yYXRpdmUtaW1hZ2UtdGhhdC1kb2Vzbid0LWFkZC1hbnktaW5mb3JtYXRpb24i
OiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisg
ICAgImEtZ3JvdXAtb2YtaW1hZ2VzLXRoYXQtZm9ybS1hLXNpbmdsZS1sYXJnZXItcGljdHVyZS13
aXRoLW5vLWxpbmtzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1n
LWVsZW1lbnQiLAorICAgICJhLWdyb3VwLW9mLWltYWdlcy10aGF0LWZvcm0tYS1zaW5nbGUtbGFy
Z2VyLXBpY3R1cmUtd2l0aC1saW5rcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiYS1rZXktcGFydC1vZi10aGUtY29udGVudCI6ICJo
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAi
YW4taW1hZ2Utbm90LWludGVuZGVkLWZvci10aGUtdXNlciI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiZ3VpZGFuY2UtZm9yLW1hcmt1
cC1nZW5lcmF0b3JzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1n
LWVsZW1lbnQiLAorICAgICJndWlkYW5jZS1mb3ItY29uZm9ybWFuY2UtY2hlY2tlcnMiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgInRo
ZS1pZnJhbWUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhl
LWlmcmFtZS1lbGVtZW50IiwKKyAgICAidGhlLWVtYmVkLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1lbWJlZC1lbGVtZW50IiwKKyAgICAidGhlLW9iamVj
dC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtb2JqZWN0
LWVsZW1lbnQiLAorICAgICJ0aGUtcGFyYW0tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvdGhlLXBhcmFtLWVsZW1lbnQiLAorICAgICJ0aGUtdmlkZW8tZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLXZpZGVvLWVsZW1lbnQi
LAorICAgICJ0aGUtYXVkaW8tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAvdGhlLWF1ZGlvLWVsZW1lbnQiLAorICAgICJ0aGUtc291cmNlLWVsZW1lbnQiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1zb3VyY2UtZWxlbWVudCIsCisgICAg
InRoZS10cmFjay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90
aGUtdHJhY2stZWxlbWVudCIsCisgICAgIm1lZGlhLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgImVycm9yLWNvZGVzIjog
Imh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAg
ImxvY2F0aW9uLW9mLXRoZS1tZWRpYS1yZXNvdXJjZSI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJtaW1lLXR5cGVzIjogImh0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgIm5ldHdvcmst
c3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCisgICAgImxvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlIjogImh0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgIm9mZnNldHMtaW50by10aGUt
bWVkaWEtcmVzb3VyY2UiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlh
LWVsZW1lbnRzIiwKKyAgICAicmVhZHktc3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgInBsYXlpbmctdGhlLW1lZGlhLXJlc291
cmNlIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIs
CisgICAgInNlZWtpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlh
LWVsZW1lbnRzIiwKKyAgICAibWVkaWEtcmVzb3VyY2VzLXdpdGgtbXVsdGlwbGUtbWVkaWEtdHJh
Y2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIs
CisgICAgImF1ZGlvdHJhY2tsaXN0LWFuZC12aWRlb3RyYWNrbGlzdC1vYmplY3RzIjogImh0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgInNlbGVj
dGluZy1zcGVjaWZpYy1hdWRpby1hbmQtdmlkZW8tdHJhY2tzLWRlY2xhcmF0aXZlbHkiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAic3lu
Y2hyb25pc2luZy1tdWx0aXBsZS1tZWRpYS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJpbnRyb2R1Y3Rpb24tMCI6ICJo
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJt
ZWRpYS1jb250cm9sbGVycyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVk
aWEtZWxlbWVudHMiLAorICAgICJhc3NpZ25pbmctYS1tZWRpYS1jb250cm9sbGVyLWRlY2xhcmF0
aXZlbHkiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRz
IiwKKyAgICAidGltZWQtdGV4dC10cmFja3MiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidGV4dC10cmFjay1tb2RlbCI6ICJodG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJzb3VyY2lu
Zy1pbi1iYW5kLXRleHQtdHJhY2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC9tZWRpYS1lbGVtZW50cyIsCisgICAgInNvdXJjaW5nLW91dC1vZi1iYW5kLXRleHQtdHJhY2tz
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisg
ICAgImd1aWRlbGluZXMtZm9yLWV4cG9zaW5nLWN1ZXMtaW4tdmFyaW91cy1mb3JtYXRzLWFzLXRl
eHQtdHJhY2stY3VlcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEt
ZWxlbWVudHMiLAorICAgICJ0ZXh0LXRyYWNrLWFwaSI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJ0ZXh0LXRyYWNrcy1kZXNjcmliaW5n
LWNoYXB0ZXJzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVt
ZW50cyIsCisgICAgImN1ZS1ldmVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidXNlci1pbnRlcmZhY2UiOiAiaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidGltZS1yYW5nZXMi
OiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAg
ICAiZXZlbnQtZGVmaW5pdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0w
L21lZGlhLWVsZW1lbnRzIiwKKyAgICAibWVkaWFldmVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAic2VjdXJpdHktYW5kLXByaXZh
Y3ktY29uc2lkZXJhdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKKyAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWF1dGhvcnMtdXNpbmctbWVk
aWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVs
ZW1lbnRzIiwKKyAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWltcGxlbWVudG9ycy1vZi1tZWRpYS1l
bGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVu
dHMiLAorICAgICJ0aGUtY2FudmFzLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCisgICAgImNvbG9yLXNwYWNlcy1hbmQtY29s
b3ItY29ycmVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWNh
bnZhcy1lbGVtZW50IiwKKyAgICAic2VjdXJpdHktd2l0aC1jYW52YXMtZWxlbWVudHMiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCisgICAg
InRoZS1tYXAtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhl
LW1hcC1lbGVtZW50IiwKKyAgICAidGhlLWFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLWFyZWEtZWxlbWVudCIsCisgICAgImltYWdlLW1hcHMiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMiLAorICAgICJhdXRo
b3JpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMiLAor
ICAgICJwcm9jZXNzaW5nLW1vZGVsLTAiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL2ltYWdlLW1hcHMiLAorICAgICJtYXRobWwiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL21hdGhtbCIsCisgICAgInN2ZyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50LTAvc3ZnIiwKKyAgICAiZGltZW5zaW9uLWF0dHJpYnV0ZXMiOiAiaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC0wL2RpbWVuc2lvbi1hdHRyaWJ1dGVzIiwKKyAgICAidGFidWxh
ci1kYXRhIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YSIsCisgICAgInRoZS10YWJsZS1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIs
CisgICAgInRhYmxlLWRlc2NyaXB0aW9ucy10ZWNobmlxdWVzIjogImh0bWwvc2VtYW50aWNzL3Rh
YnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIsCisgICAgInRhYmxlLWxheW91dC10ZWNobmlx
dWVzIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIsCisg
ICAgInRoZS1jYXB0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3Ro
ZS1jYXB0aW9uLWVsZW1lbnQiLAorICAgICJ0aGUtY29sZ3JvdXAtZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLWNvbGdyb3VwLWVsZW1lbnQiLAorICAgICJ0aGUtY29s
LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS1jb2wtZWxlbWVudCIs
CisgICAgInRoZS10Ym9keS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdGJvZHktZWxlbWVudCIsCisgICAgInRoZS10aGVhZC1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGhlYWQtZWxlbWVudCIsCisgICAgInRoZS10Zm9vdC1lbGVt
ZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3QtZWxlbWVudCIsCisg
ICAgInRoZS10ci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdHIt
ZWxlbWVudCIsCisgICAgInRoZS10ZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXIt
ZGF0YS90aGUtdGQtZWxlbWVudCIsCisgICAgInRoZS10aC1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGgtZWxlbWVudCIsCisgICAgImF0dHJpYnV0ZXMtY29tbW9u
LXRvLXRkLWFuZC10aC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvYXR0
cmlidXRlcy1jb21tb24tdG8tdGQtYW5kLXRoLWVsZW1lbnRzIiwKKyAgICAicHJvY2Vzc2luZy1t
b2RlbC0xIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9wcm9jZXNzaW5nLW1vZGVsLTEi
LAorICAgICJmb3JtaW5nLWEtdGFibGUiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3By
b2Nlc3NpbmctbW9kZWwtMSIsCisgICAgImhlYWRlci1hbmQtZGF0YS1jZWxsLXNlbWFudGljcyI6
ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvcHJvY2Vzc2luZy1tb2RlbC0xIiwKKyAgICAi
ZXhhbXBsZXMiOiAiY2FudmFzMmQvZXhhbXBsZXMiLAorICAgICJmb3JtcyI6ICJodG1sL3NlbWFu
dGljcy9mb3JtcyIsCisgICAgImludHJvZHVjdGlvbi0xIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L2ludHJvZHVjdGlvbi0xIiwKKyAgICAid3JpdGluZy1hLWZvcm0ncy11c2VyLWludGVyZmFjZSI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCisgICAgImltcGxlbWVudGlu
Zy10aGUtc2VydmVyLXNpZGUtcHJvY2Vzc2luZy1mb3ItYS1mb3JtIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL2ludHJvZHVjdGlvbi0xIiwKKyAgICAiY29uZmlndXJpbmctYS1mb3JtLXRvLWNvbW11
bmljYXRlLXdpdGgtYS1zZXJ2ZXIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9u
LTEiLAorICAgICJjbGllbnQtc2lkZS1mb3JtLXZhbGlkYXRpb24iOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvaW50cm9kdWN0aW9uLTEiLAorICAgICJlbmFibGluZy1jbGllbnQtc2lkZS1hdXRvbWF0
aWMtZmlsbGluZy1vZi1mb3JtLWNvbnRyb2xzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2ludHJv
ZHVjdGlvbi0xIiwKKyAgICAiaW1wcm92aW5nLXRoZS11c2VyLWV4cGVyaWVuY2Utb24tbW9iaWxl
LWRldmljZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAorICAgICJ0
aGUtZGlmZmVyZW5jZS1iZXR3ZWVuLXRoZS1maWVsZC10eXBlLC10aGUtYXV0b2ZpbGwtZmllbGQt
bmFtZSwtYW5kLXRoZS1pbnB1dC1tb2RhbGl0eSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRy
b2R1Y3Rpb24tMSIsCisgICAgImlucHV0LWF1dGhvci1ub3RlcyI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCisgICAgImNhdGVnb3JpZXMiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvY2F0ZWdvcmllcyIsCisgICAgInRoZS1mb3JtLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudCIsCisgICAgInRoZS1maWVsZHNldC1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1maWVsZHNldC1lbGVtZW50IiwKKyAgICAidGhlLWxl
Z2VuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1sZWdlbmQtZWxlbWVudCIs
CisgICAgInRoZS1sYWJlbC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1sYWJl
bC1lbGVtZW50IiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9y
bXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmlidXRl
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiaGlkZGVu
LXN0YXRlLSh0eXBlPWhpZGRlbikiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVs
ZW1lbnQiLAorICAgICJ0ZXh0LSh0eXBlPXRleHQpLXN0YXRlLWFuZC1zZWFyY2gtc3RhdGUtKHR5
cGU9c2VhcmNoKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisg
ICAgInRlbGVwaG9uZS1zdGF0ZS0odHlwZT10ZWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKKyAgICAidXJsLXN0YXRlLSh0eXBlPXVybCkiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJlLW1haWwtc3RhdGUtKHR5cGU9
ZW1haWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAi
cGFzc3dvcmQtc3RhdGUtKHR5cGU9cGFzc3dvcmQpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiZGF0ZS1hbmQtdGltZS1zdGF0ZS0odHlwZT1kYXRldGlt
ZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJkYXRl
LXN0YXRlLSh0eXBlPWRhdGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKKyAgICAibW9udGgtc3RhdGUtKHR5cGU9bW9udGgpIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAid2Vlay1zdGF0ZS0odHlwZT13ZWVrKSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRpbWUtc3RhdGUt
KHR5cGU9dGltZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAor
ICAgICJsb2NhbC1kYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lLWxvY2FsKSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgIm51bWJlci1zdGF0
ZS0odHlwZT1udW1iZXIpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
IiwKKyAgICAicmFuZ2Utc3RhdGUtKHR5cGU9cmFuZ2UpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY29sb3Itc3RhdGUtKHR5cGU9Y29sb3IpIjogImh0
bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY2hlY2tib3gtc3Rh
dGUtKHR5cGU9Y2hlY2tib3gpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKKyAgICAicmFkaW8tYnV0dG9uLXN0YXRlLSh0eXBlPXJhZGlvKSI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgImZpbGUtdXBsb2FkLXN0YXRlLSh0
eXBlPWZpbGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAg
ICAic3VibWl0LWJ1dHRvbi1zdGF0ZS0odHlwZT1zdWJtaXQpIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiaW1hZ2UtYnV0dG9uLXN0YXRlLSh0eXBlPWlt
YWdlKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInJl
c2V0LWJ1dHRvbi1zdGF0ZS0odHlwZT1yZXNldCkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhl
LWlucHV0LWVsZW1lbnQiLAorICAgICJidXR0b24tc3RhdGUtKHR5cGU9YnV0dG9uKSI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgImlucHV0LWltcGwtbm90
ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJjb21t
b24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1p
bnB1dC1lbGVtZW50IiwKKyAgICAidGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUtc2l6ZS1hdHRyaWJ1dGUi
OiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUtcmVh
ZG9ubHktYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
IiwKKyAgICAidGhlLXJlcXVpcmVkLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90
aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1tdWx0aXBsZS1hdHRyaWJ1dGUiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUtcGF0dGVybi1hdHRy
aWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0
aGUtbWluLWFuZC1tYXgtYXR0cmlidXRlcyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5w
dXQtZWxlbWVudCIsCisgICAgInRoZS1zdGVwLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1saXN0LWF0dHJpYnV0ZSI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1wbGFjZWhvbGRl
ci1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAor
ICAgICJjb21tb24taW5wdXQtZWxlbWVudC1hcGlzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY29tbW9uLWV2ZW50LWJlaGF2aW9ycyI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1idXR0b24tZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtYnV0dG9uLWVsZW1lbnQiLAorICAgICJ0aGUt
c2VsZWN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXNlbGVjdC1lbGVtZW50
IiwKKyAgICAidGhlLWRhdGFsaXN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhl
LWRhdGFsaXN0LWVsZW1lbnQiLAorICAgICJ0aGUtb3B0Z3JvdXAtZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtb3B0Z3JvdXAtZWxlbWVudCIsCisgICAgInRoZS1vcHRpb24tZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtb3B0aW9uLWVsZW1lbnQiLAorICAgICJ0
aGUtdGV4dGFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtdGV4dGFyZWEt
ZWxlbWVudCIsCisgICAgInRoZS1rZXlnZW4tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy90aGUta2V5Z2VuLWVsZW1lbnQiLAorICAgICJ0aGUtb3V0cHV0LWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLW91dHB1dC1lbGVtZW50IiwKKyAgICAidGhlLXByb2dyZXNzLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXByb2dyZXNzLWVsZW1lbnQiLAorICAg
ICJ0aGUtbWV0ZXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtbWV0ZXItZWxl
bWVudCIsCisgICAgImZvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZSI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUiLAorICAgICJhLWZvcm0tY29udHJv
bCdzLXZhbHVlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVj
dHVyZSIsCisgICAgIm11dGFiaWxpdHkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1jb250
cm9sLWluZnJhc3RydWN0dXJlIiwKKyAgICAiYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5kLWZv
cm1zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZSIs
CisgICAgImF0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgIm5hbWlu
Zy1mb3JtLWNvbnRyb2xzOi10aGUtbmFtZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9y
bXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgInN1Ym1pdHRpbmct
ZWxlbWVudC1kaXJlY3Rpb25hbGl0eTotdGhlLWRpcm5hbWUtYXR0cmlidXRlIjogImh0bWwvc2Vt
YW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAgICJs
aW1pdGluZy11c2VyLWlucHV0LWxlbmd0aDotdGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAiaHRt
bC9zZW1hbnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisg
ICAgImVuYWJsaW5nLWFuZC1kaXNhYmxpbmctZm9ybS1jb250cm9sczotdGhlLWRpc2FibGVkLWF0
dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1mb3Jt
LWNvbnRyb2xzIiwKKyAgICAiZm9ybS1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAgICJhdXRvZm9jdXNpbmct
YS1mb3JtLWNvbnRyb2w6LXRoZS1hdXRvZm9jdXMtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAgICJpbnB1dC1t
b2RhbGl0aWVzOi10aGUtaW5wdXRtb2RlLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy9hdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNvbnRyb2xzIiwKKyAgICAiYXV0b2ZpbGxpbmct
Zm9ybS1jb250cm9sczotdGhlLWF1dG9jb21wbGV0ZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgInRleHRG
aWVsZFNlbGVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24i
LAorICAgICJjb25zdHJhaW50cyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIs
CisgICAgImRlZmluaXRpb25zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzIiwK
KyAgICAiY29uc3RyYWludC12YWxpZGF0aW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0
cmFpbnRzIiwKKyAgICAidGhlLWNvbnN0cmFpbnQtdmFsaWRhdGlvbi1hcGkiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvY29uc3RyYWludHMiLAorICAgICJzZWN1cml0eS1mb3JtcyI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIsCisgICAgImZvcm0tc3VibWlzc2lvbi0wIjogImh0
bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAiaW50cm9kdWN0aW9u
LTIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAiLAorICAgICJpbXBs
aWNpdC1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0w
IiwKKyAgICAiZm9ybS1zdWJtaXNzaW9uLWFsZ29yaXRobSI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy9mb3JtLXN1Ym1pc3Npb24tMCIsCisgICAgImNvbnN0cnVjdGluZy1mb3JtLWRhdGEtc2V0Ijog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAidXJsLWVuY29k
ZWQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwK
KyAgICAibXVsdGlwYXJ0LWZvcm0tZGF0YSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3JtLXN1
Ym1pc3Npb24tMCIsCisgICAgInBsYWluLXRleHQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAicmVzZXR0aW5nLWEtZm9ybSI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy9yZXNldHRpbmctYS1mb3JtIiwKKyAgICAiaW50ZXJhY3RpdmUtZWxl
bWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMiLAorICAgICJ0aGUt
ZGV0YWlscy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3Ro
ZS1kZXRhaWxzLWVsZW1lbnQiLAorICAgICJ0aGUtc3VtbWFyeS1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5LWVsZW1lbnQiLAorICAgICJ0
aGUtY29tbWFuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRz
L3RoZS1jb21tYW5kLWVsZW1lbnQiLAorICAgICJ0aGUtbWVudS1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAorICAgICJtZW51
cy1pbnRybyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtbWVudS1l
bGVtZW50IiwKKyAgICAiYnVpbGRpbmctbWVudXMtYW5kLXRvb2xiYXJzIjogImh0bWwvc2VtYW50
aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAorICAgICJjb250ZXh0
LW1lbnVzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVs
ZW1lbnQiLAorICAgICJ0b29sYmFycyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVt
ZW50cy90aGUtbWVudS1lbGVtZW50IiwKKyAgICAiY29tbWFuZHMiOiAiaHRtbC9zZW1hbnRpY3Mv
aW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAorICAgICJ1c2luZy10aGUtYS1lbGVtZW50
LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVu
dHMvY29tbWFuZHMiLAorICAgICJ1c2luZy10aGUtYnV0dG9uLWVsZW1lbnQtdG8tZGVmaW5lLWEt
Y29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIs
CisgICAgInVzaW5nLXRoZS1pbnB1dC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAiaHRt
bC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAorICAgICJ1c2luZy10
aGUtb3B0aW9uLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9p
bnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRoZS1jb21tYW5kLWVs
ZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1l
bGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRoZS1jb21tYW5kLWF0dHJpYnV0ZS1vbi1j
b21tYW5kLWVsZW1lbnRzLXRvLWRlZmluZS1hLWNvbW1hbmQtaW5kaXJlY3RseSI6ICJodG1sL3Nl
bWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRoZS1h
Y2Nlc3NrZXktYXR0cmlidXRlLW9uLWEtbGFiZWwtZWxlbWVudC10by1kZWZpbmUtYS1jb21tYW5k
IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1hbmRzIiwKKyAgICAi
dXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtb24tYS1sZWdlbmQtZWxlbWVudC10by1kZWZp
bmUtYS1jb21tYW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1h
bmRzIiwKKyAgICAidXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtdG8tZGVmaW5lLWEtY29t
bWFuZC1vbi1vdGhlci1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVt
ZW50cy9jb21tYW5kcyIsCisgICAgInRoZS1kaWFsb2ctZWxlbWVudCI6ICJodG1sL3NlbWFudGlj
cy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQiLAorICAgICJhbmNob3It
cG9pbnRzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1kaWFsb2ct
ZWxlbWVudCIsCisgICAgImxpbmtzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzIiwKKyAgICAiaW50
cm9kdWN0aW9uLTMiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvaW50cm9kdWN0aW9uLTMiLAorICAg
ICJsaW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3Mv
bGlua3MvbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIiwKKyAgICAiZm9sbG93
aW5nLWh5cGVybGlua3MiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvZm9sbG93aW5nLWh5cGVybGlu
a3MiLAorICAgICJkb3dubG9hZGluZy1yZXNvdXJjZXMiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3Mv
ZG93bmxvYWRpbmctcmVzb3VyY2VzIiwKKyAgICAiaHlwZXJsaW5rLWF1ZGl0aW5nIjogImh0bWwv
c2VtYW50aWNzL2xpbmtzL2Rvd25sb2FkaW5nLXJlc291cmNlcyIsCisgICAgImxpbmtUeXBlcyI6
ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJyZWwtYWx0ZXJuYXRlIjog
Imh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1hdXRob3Ii
OiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKKyAgICAibGluay10eXBlLWJvb2tt
YXJrIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1o
ZWxwIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgInJlbC1pY29uIjog
Imh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1saWNlbnNl
IjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1ub2Zv
bGxvdyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJsaW5rLXR5cGUt
bm9yZWZlcnJlciI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJsaW5r
LXR5cGUtcHJlZmV0Y2giOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKKyAgICAi
bGluay10eXBlLXNlYXJjaCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAg
ICJsaW5rLXR5cGUtc3R5bGVzaGVldCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMi
LAorICAgICJsaW5rLXR5cGUtdGFnIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIs
CisgICAgInNlcXVlbnRpYWwtbGluay10eXBlcyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5r
dHlwZXMiLAorICAgICJsaW5rLXR5cGUtbmV4dCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5r
dHlwZXMiLAorICAgICJsaW5rLXR5cGUtcHJldiI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5r
dHlwZXMiLAorICAgICJvdGhlci1saW5rLXR5cGVzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xp
bmt0eXBlcyIsCisgICAgImNvbW1vbi1pZGlvbXMiOiAiaHRtbC9zZW1hbnRpY3MvY29tbW9uLWlk
aW9tcyIsCisgICAgInRoZS1tYWluLXBhcnQtb2YtdGhlLWNvbnRlbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvY29tbW9uLWlkaW9tcy90aGUtbWFpbi1wYXJ0LW9mLXRoZS1jb250ZW50IiwKKyAgICAicmVs
LXVwIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvcmVsLXVwIiwKKyAgICAidGFnLWNs
b3VkcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL3RhZy1jbG91ZHMiLAorICAgICJj
b252ZXJzYXRpb25zIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvY29udmVyc2F0aW9u
cyIsCisgICAgImZvb3Rub3RlcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL2Zvb3Ru
b3RlcyIsCisgICAgImRpc2FibGVkLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2Rpc2FibGVk
LWVsZW1lbnRzIiwKKyAgICAic2VsZWN0b3JzIjogImh0bWwvc2VtYW50aWNzL3NlbGVjdG9ycyIs
CisgICAgImNhc2Utc2Vuc2l0aXZpdHkiOiAiaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL2Nhc2Ut
c2Vuc2l0aXZpdHkiLAorICAgICJwc2V1ZG8tY2xhc3NlcyI6ICJodG1sL3NlbWFudGljcy9zZWxl
Y3RvcnMvcHNldWRvLWNsYXNzZXMiLAorICAgICJicm93c2VycyI6ICJodG1sL2Jyb3dzZXJzIiwK
KyAgICAid2luZG93cyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MiLAorICAgICJuZXN0ZWQtYnJv
d3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1j
b250ZXh0cyIsCisgICAgIm5hdmlnYXRpbmctbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzLWluLXRo
ZS1kb20iOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cyIs
CisgICAgImF1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRv
d3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAibmF2aWdhdGluZy1hdXhpbGlh
cnktYnJvd3NpbmctY29udGV4dHMtaW4tdGhlLWRvbSI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3Mv
YXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAic2Vjb25kYXJ5LWJyb3dzaW5nLWNv
bnRleHRzIjogImh0bWwvYnJvd3NlcnMvd2luZG93cy9zZWNvbmRhcnktYnJvd3NpbmctY29udGV4
dHMiLAorICAgICJzZWN1cml0eS1uYXYiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL3NlY3VyaXR5
LW5hdiIsCisgICAgImdyb3VwaW5ncy1vZi1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jyb3dz
ZXJzL3dpbmRvd3MvZ3JvdXBpbmdzLW9mLWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAiYnJvd3Np
bmctY29udGV4dC1uYW1lcyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4
dC1uYW1lcyIsCisgICAgInRoZS13aW5kb3ctb2JqZWN0IjogImh0bWwvYnJvd3NlcnMvdGhlLXdp
bmRvdy1vYmplY3QiLAorICAgICJzZWN1cml0eS13aW5kb3ciOiAiaHRtbC9icm93c2Vycy90aGUt
d2luZG93LW9iamVjdC9zZWN1cml0eS13aW5kb3ciLAorICAgICJhcGlzLWZvci1jcmVhdGluZy1h
bmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lIjogImh0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Np
bmctY29udGV4dHMtYnktbmFtZSIsCisgICAgImFjY2Vzc2luZy1vdGhlci1icm93c2luZy1jb250
ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FjY2Vzc2luZy1vdGhlci1i
cm93c2luZy1jb250ZXh0cyIsCisgICAgIm5hbWVkLWFjY2Vzcy1vbi10aGUtd2luZG93LW9iamVj
dCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L25hbWVkLWFjY2Vzcy1vbi10aGUt
d2luZG93LW9iamVjdCIsCisgICAgImdhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3NpbmctY29u
dGV4dHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxlY3Rp
b24tYW5kLWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAiY2xvc2luZy1icm93c2luZy1jb250ZXh0
cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2Nsb3NpbmctYnJvd3NpbmctY29u
dGV4dHMiLAorICAgICJicm93c2VyLWludGVyZmFjZS1lbGVtZW50cyI6ICJodG1sL2Jyb3dzZXJz
L3RoZS13aW5kb3ctb2JqZWN0L2Jyb3dzZXItaW50ZXJmYWNlLWVsZW1lbnRzIiwKKyAgICAidGhl
LXdpbmRvd3Byb3h5LW9iamVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3Ro
ZS13aW5kb3dwcm94eS1vYmplY3QiLAorICAgICJvcmlnaW4iOiAiaHRtbC9icm93c2Vycy9vcmln
aW4iLAorICAgICJyZWxheGluZy10aGUtc2FtZS1vcmlnaW4tcmVzdHJpY3Rpb24iOiAiaHRtbC9i
cm93c2Vycy9vcmlnaW4vcmVsYXhpbmctdGhlLXNhbWUtb3JpZ2luLXJlc3RyaWN0aW9uIiwKKyAg
ICAic2FuZGJveGluZyI6ICJodG1sL2Jyb3dzZXJzL3NhbmRib3hpbmciLAorICAgICJoaXN0b3J5
IjogImh0bWwvYnJvd3NlcnMvaGlzdG9yeSIsCisgICAgInRoZS1zZXNzaW9uLWhpc3Rvcnktb2Yt
YnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1zZXNzaW9uLWhp
c3Rvcnktb2YtYnJvd3NpbmctY29udGV4dHMiLAorICAgICJ0aGUtaGlzdG9yeS1pbnRlcmZhY2Ui
OiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZSIsCisgICAgInRo
ZS1sb2NhdGlvbi1pbnRlcmZhY2UiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlv
bi1pbnRlcmZhY2UiLAorICAgICJzZWN1cml0eS1sb2NhdGlvbiI6ICJodG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZSIsCisgICAgImhpc3Rvcnktbm90ZXMiOiAiaHRt
bC9icm93c2Vycy9oaXN0b3J5L2hpc3Rvcnktbm90ZXMiLAorICAgICJicm93c2luZy10aGUtd2Vi
IjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYiIsCisgICAgIm5hdmlnYXRpbmctYWNy
b3NzLWRvY3VtZW50cyI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdhdGlu
Zy1hY3Jvc3MtZG9jdW1lbnRzIiwKKyAgICAicmVhZC1odG1sIjogImh0bWwvYnJvd3NlcnMvYnJv
d3NpbmctdGhlLXdlYi9yZWFkLWh0bWwiLAorICAgICJyZWFkLXhtbCI6ICJodG1sL2Jyb3dzZXJz
L2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC14bWwiLAorICAgICJyZWFkLXRleHQiOiAiaHRtbC9icm93
c2Vycy9icm93c2luZy10aGUtd2ViL3JlYWQtdGV4dCIsCisgICAgInJlYWQtbXVsdGlwYXJ0LXgt
bWl4ZWQtcmVwbGFjZSI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1tdWx0
aXBhcnQteC1taXhlZC1yZXBsYWNlIiwKKyAgICAicmVhZC1tZWRpYSI6ICJodG1sL2Jyb3dzZXJz
L2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1tZWRpYSIsCisgICAgInJlYWQtcGx1Z2luIjogImh0bWwv
YnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXBsdWdpbiIsCisgICAgInJlYWQtdWEtaW5s
aW5lIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXVhLWlubGluZSIsCisg
ICAgInNjcm9sbC10by1mcmFnaWQiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3Nj
cm9sbC10by1mcmFnaWQiLAorICAgICJoaXN0b3J5LXRyYXZlcnNhbCI6ICJodG1sL2Jyb3dzZXJz
L2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwiLAorICAgICJldmVudC1kZWZpbml0
aW9ucy0wIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNh
bCIsCisgICAgInVubG9hZGluZy1kb2N1bWVudHMiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10
aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMiLAorICAgICJldmVudC1kZWZpbml0aW9uIjogImh0
bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzIiwKKyAgICAi
YWJvcnRpbmctYS1kb2N1bWVudC1sb2FkIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9hYm9ydGluZy1hLWRvY3VtZW50LWxvYWQiLAorICAgICJvZmZsaW5lIjogImh0bWwvYnJvd3Nl
cnMvb2ZmbGluZSIsCisgICAgImludHJvZHVjdGlvbi00IjogImh0bWwvYnJvd3NlcnMvb2ZmbGlu
ZS9pbnRyb2R1Y3Rpb24tNCIsCisgICAgInN1cHBvcnRpbmctb2ZmbGluZS1jYWNoaW5nLWZvci1s
ZWdhY3ktYXBwbGljYXRpb25zIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRyb2R1Y3Rpb24t
NCIsCisgICAgImFwcGNhY2hlZXZlbnRzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRyb2R1
Y3Rpb24tNCIsCisgICAgImFwcGNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNo
ZSIsCisgICAgIm1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvbWFuaWZlc3RzIiwK
KyAgICAic29tZS1zYW1wbGUtbWFuaWZlc3RzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9tYW5p
ZmVzdHMiLAorICAgICJ3cml0aW5nLWNhY2hlLW1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJzL29m
ZmxpbmUvbWFuaWZlc3RzIiwKKyAgICAicGFyc2luZy1jYWNoZS1tYW5pZmVzdHMiOiAiaHRtbC9i
cm93c2Vycy9vZmZsaW5lL21hbmlmZXN0cyIsCisgICAgImRvd25sb2FkaW5nLW9yLXVwZGF0aW5n
LWFuLWFwcGxpY2F0aW9uLWNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kb3dubG9hZGlu
Zy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSIsCisgICAgInRoZS1hcHBsaWNhdGlv
bi1jYWNoZS1zZWxlY3Rpb24tYWxnb3JpdGhtIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS90aGUt
YXBwbGljYXRpb24tY2FjaGUtc2VsZWN0aW9uLWFsZ29yaXRobSIsCisgICAgImNoYW5nZXNUb05l
dHdvcmtpbmdNb2RlbCI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvY2hhbmdlc3RvbmV0d29ya2lu
Z21vZGVsIiwKKyAgICAiZXhwaXJpbmctYXBwbGljYXRpb24tY2FjaGVzIjogImh0bWwvYnJvd3Nl
cnMvb2ZmbGluZS9leHBpcmluZy1hcHBsaWNhdGlvbi1jYWNoZXMiLAorICAgICJkaXNrLXNwYWNl
IjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kaXNrLXNwYWNlIiwKKyAgICAiYXBwbGljYXRpb24t
Y2FjaGUtYXBpIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBsaWNhdGlvbi1jYWNoZS1hcGki
LAorICAgICJicm93c2VyLXN0YXRlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9icm93c2VyLXN0
YXRlIiwKKyAgICAid2ViYXBwYXBpcyI6ICJodG1sL3dlYmFwcGFwaXMiLAorICAgICJzY3JpcHRp
bmciOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZyIsCisgICAgImludHJvZHVjdGlvbi01Ijog
Imh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvaW50cm9kdWN0aW9uLTUiLAorICAgICJlbmFibGlu
Zy1hbmQtZGlzYWJsaW5nLXNjcmlwdGluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2Vu
YWJsaW5nLWFuZC1kaXNhYmxpbmctc2NyaXB0aW5nIiwKKyAgICAicHJvY2Vzc2luZy1tb2RlbC0y
IjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKKyAgICAi
ZGVmaW5pdGlvbnMtMCI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9k
ZWwtMiIsCisgICAgImNhbGxpbmctc2NyaXB0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMiIsCisgICAgImNyZWF0aW5nLXNjcmlwdHMiOiAiaHRtbC93ZWJh
cHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAorICAgICJraWxsaW5nLXNjcmlw
dHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAorICAg
ICJydW50aW1lLXNjcmlwdC1lcnJvcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9j
ZXNzaW5nLW1vZGVsLTIiLAorICAgICJydW50aW1lLXNjcmlwdC1lcnJvcnMtaW4tZG9jdW1lbnRz
IjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKKyAgICAi
ZXZlbnQtbG9vcHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIsCisg
ICAgImRlZmluaXRpb25zLTEiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29w
cyIsCisgICAgInByb2Nlc3NpbmctbW9kZWwtMyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L2V2ZW50LWxvb3BzIiwKKyAgICAiZ2VuZXJpYy10YXNrLXNvdXJjZXMiOiAiaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIsCisgICAgImphdmFzY3JpcHQtcHJvdG9jb2wiOiAi
aHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9qYXZhc2NyaXB0LXByb3RvY29sIiwKKyAgICAiZXZl
bnRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwKKyAgICAiZXZlbnQtaGFu
ZGxlci1hdHRyaWJ1dGVzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwKKyAg
ICAiZXZlbnQtaGFuZGxlcnMtb24tZWxlbWVudHMsLWRvY3VtZW50LW9iamVjdHMsLWFuZC13aW5k
b3ctb2JqZWN0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCisgICAgImV2
ZW50LWZpcmluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCisgICAgImV2
ZW50cy1hbmQtdGhlLXdpbmRvdy1vYmplY3QiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9l
dmVudHMiLAorICAgICJhdG9iIjogImh0bWwvd2ViYXBwYXBpcy9hdG9iIiwKKyAgICAidGltZXJz
IjogImh0bWwvd2ViYXBwYXBpcy90aW1lcnMiLAorICAgICJ1c2VyLXByb21wdHMiOiAiaHRtbC93
ZWJhcHBhcGlzL3VzZXItcHJvbXB0cyIsCisgICAgInNpbXBsZS1kaWFsb2dzIjogImh0bWwvd2Vi
YXBwYXBpcy91c2VyLXByb21wdHMvc2ltcGxlLWRpYWxvZ3MiLAorICAgICJwcmludGluZyI6ICJo
dG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL3ByaW50aW5nIiwKKyAgICAiZGlhbG9ncy1pbXBs
ZW1lbnRlZC11c2luZy1zZXBhcmF0ZS1kb2N1bWVudHMiOiAiaHRtbC93ZWJhcHBhcGlzL3VzZXIt
cHJvbXB0cy9kaWFsb2dzLWltcGxlbWVudGVkLXVzaW5nLXNlcGFyYXRlLWRvY3VtZW50cyIsCisg
ICAgInN5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzIjogImh0bWwvd2ViYXBwYXBpcy9zeXN0
ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcyIsCisgICAgInRoZS1uYXZpZ2F0b3Itb2JqZWN0Ijog
Imh0bWwvd2ViYXBwYXBpcy9zeXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcy90aGUtbmF2aWdh
dG9yLW9iamVjdCIsCisgICAgImNsaWVudC1pZGVudGlmaWNhdGlvbiI6ICJodG1sL3dlYmFwcGFw
aXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1vYmplY3QiLAor
ICAgICJjdXN0b20taGFuZGxlcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQt
Y2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKKyAgICAic2VjdXJpdHktYW5kLXBy
aXZhY3kiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzL3Ro
ZS1uYXZpZ2F0b3Itb2JqZWN0IiwKKyAgICAic2FtcGxlLWhhbmRsZXItaW1wbCI6ICJodG1sL3dl
YmFwcGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1vYmpl
Y3QiLAorICAgICJtYW51YWxseS1yZWxlYXNpbmctdGhlLXN0b3JhZ2UtbXV0ZXgiOiAiaHRtbC93
ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3Itb2Jq
ZWN0IiwKKyAgICAidGhlLWV4dGVybmFsLWludGVyZmFjZSI6ICJodG1sL3dlYmFwcGFwaXMvc3lz
dGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLWV4dGVybmFsLWludGVyZmFjZSIsCisgICAg
ImVkaXRpbmciOiAiaHRtbC9lZGl0aW5nIiwKKyAgICAidGhlLWhpZGRlbi1hdHRyaWJ1dGUiOiAi
aHRtbC9lZGl0aW5nL3RoZS1oaWRkZW4tYXR0cmlidXRlIiwKKyAgICAiaW5lcnQtc3VidHJlZXMi
OiAiaHRtbC9lZGl0aW5nL2luZXJ0LXN1YnRyZWVzIiwKKyAgICAidGhlLWluZXJ0LWF0dHJpYnV0
ZSI6ICJodG1sL2VkaXRpbmcvaW5lcnQtc3VidHJlZXMvdGhlLWluZXJ0LWF0dHJpYnV0ZSIsCisg
ICAgImFjdGl2YXRpb24iOiAiaHRtbC9lZGl0aW5nL2FjdGl2YXRpb24iLAorICAgICJmb2N1cyI6
ICJodG1sL2VkaXRpbmcvZm9jdXMiLAorICAgICJzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24t
YW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGUiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL3NlcXVlbnRp
YWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZSIsCisgICAgImZv
Y3VzLW1hbmFnZW1lbnQiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL2ZvY3VzLW1hbmFnZW1lbnQiLAor
ICAgICJkb2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIjogImh0bWwvZWRpdGluZy9mb2N1cy9kb2N1
bWVudC1sZXZlbC1mb2N1cy1hcGlzIiwKKyAgICAiZWxlbWVudC1sZXZlbC1mb2N1cy1hcGlzIjog
Imh0bWwvZWRpdGluZy9mb2N1cy9lbGVtZW50LWxldmVsLWZvY3VzLWFwaXMiLAorICAgICJhc3Np
Z25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzIjogImh0bWwvZWRpdGluZy9hc3NpZ25pbmcta2V5Ym9h
cmQtc2hvcnRjdXRzIiwKKyAgICAiaW50cm9kdWN0aW9uLTYiOiAiaHRtbC9lZGl0aW5nL2Fzc2ln
bmluZy1rZXlib2FyZC1zaG9ydGN1dHMvaW50cm9kdWN0aW9uLTYiLAorICAgICJ0aGUtYWNjZXNz
a2V5LWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0
cy90aGUtYWNjZXNza2V5LWF0dHJpYnV0ZSIsCisgICAgInByb2Nlc3NpbmctbW9kZWwtNCI6ICJo
dG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0cy9wcm9jZXNzaW5nLW1vZGVs
LTQiLAorICAgICJlZGl0aW5nLTAiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMCIsCisgICAgImNv
bnRlbnRlZGl0YWJsZSI6ICJodG1sL2VkaXRpbmcvZWRpdGluZy0wL2NvbnRlbnRlZGl0YWJsZSIs
CisgICAgIm1ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlOi10aGUtZGVzaWdubW9kZS1p
ZGwtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvbWFraW5nLWVudGlyZS1kb2N1
bWVudHMtZWRpdGFibGUtdGhlLWRlc2lnbm1vZGUtaWRsLWF0dHJpYnV0ZSIsCisgICAgImJlc3Qt
cHJhY3RpY2VzLWZvci1pbi1wYWdlLWVkaXRvcnMiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMC9i
ZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3JzIiwKKyAgICAiZWRpdGluZy1hcGlzIjog
Imh0bWwvZWRpdGluZy9lZGl0aW5nLTAvZWRpdGluZy1hcGlzIiwKKyAgICAic3BlbGxpbmctYW5k
LWdyYW1tYXItY2hlY2tpbmciOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMC9zcGVsbGluZy1hbmQt
Z3JhbW1hci1jaGVja2luZyIsCisgICAgImRuZCI6ICJodG1sL2VkaXRpbmcvZG5kIiwKKyAgICAi
aW50cm9kdWN0aW9uLTciOiAiaHRtbC9lZGl0aW5nL2RuZC9pbnRyb2R1Y3Rpb24tNyIsCisgICAg
InRoZS1kcmFnLWRhdGEtc3RvcmUiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZy1kYXRhLXN0
b3JlIiwKKyAgICAidGhlLWRhdGF0cmFuc2Zlci1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2Ru
ZC90aGUtZGF0YXRyYW5zZmVyLWludGVyZmFjZSIsCisgICAgInRoZS1kYXRhdHJhbnNmZXJpdGVt
bGlzdC1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZGF0YXRyYW5zZmVyLWludGVy
ZmFjZSIsCisgICAgInRoZS1kYXRhdHJhbnNmZXJpdGVtLWludGVyZmFjZSI6ICJodG1sL2VkaXRp
bmcvZG5kL3RoZS1kYXRhdHJhbnNmZXItaW50ZXJmYWNlIiwKKyAgICAidGhlLWRyYWdldmVudC1p
bnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZ2V2ZW50LWludGVyZmFjZSIsCisg
ICAgImRyYWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCI6ICJodG1sL2VkaXRpbmcvZG5kL2Ry
YWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCIsCisgICAgImRuZGV2ZW50cyI6ICJodG1sL2Vk
aXRpbmcvZG5kL2RuZGV2ZW50cyIsCisgICAgInRoZS1kcmFnZ2FibGUtYXR0cmlidXRlIjogImh0
bWwvZWRpdGluZy9kbmQvdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUiLAorICAgICJ0aGUtZHJvcHpv
bmUtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9kbmQvdGhlLWRyb3B6b25lLWF0dHJpYnV0ZSIs
CisgICAgInNlY3VyaXR5LXJpc2tzLWluLXRoZS1kcmFnLWFuZC1kcm9wLW1vZGVsIjogImh0bWwv
ZWRpdGluZy9kbmQvc2VjdXJpdHktcmlza3MtaW4tdGhlLWRyYWctYW5kLWRyb3AtbW9kZWwiLAor
ICAgICJzeW50YXgiOiAiaHRtbC9zeW50YXgiLAorICAgICJ3cml0aW5nIjogImh0bWwvc3ludGF4
L3dyaXRpbmciLAorICAgICJ0aGUtZG9jdHlwZSI6ICJodG1sL3N5bnRheC93cml0aW5nL3RoZS1k
b2N0eXBlIiwKKyAgICAiZWxlbWVudHMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1lbnRz
LTAiLAorICAgICJzdGFydC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIs
CisgICAgImVuZC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCisgICAg
ImF0dHJpYnV0ZXMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1lbnRzLTAiLAorICAgICJv
cHRpb25hbC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCisgICAgImVs
ZW1lbnQtcmVzdHJpY3Rpb25zIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCisg
ICAgImNkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9lbGVt
ZW50cy0wIiwKKyAgICAidGV4dCI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAorICAgICJu
ZXdsaW5lcyI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAorICAgICJjaGFyYWN0ZXItcmVm
ZXJlbmNlcyI6ICJodG1sL3N5bnRheC93cml0aW5nL2NoYXJhY3Rlci1yZWZlcmVuY2VzIiwKKyAg
ICAiY2RhdGEtc2VjdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9jZGF0YS1zZWN0aW9ucyIs
CisgICAgImNvbW1lbnRzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvY29tbWVudHMiLAorICAgICJw
YXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJvdmVydmlldy1vZi10aGUtcGFy
c2luZy1tb2RlbCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWlucHV0LWJ5dGUt
c3RyZWFtIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJkZXRlcm1pbmluZy10aGUtY2hh
cmFjdGVyLWVuY29kaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjaGFyYWN0ZXIt
ZW5jb2RpbmdzLTAiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNoYW5naW5nLXRoZS1l
bmNvZGluZy13aGlsZS1wYXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwcmVw
cm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
InBhcnNlLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtaW5zZXJ0aW9u
LW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1zdGFjay1vZi1vcGVuLWVs
ZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtbGlzdC1vZi1hY3RpdmUt
Zm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWVs
ZW1lbnQtcG9pbnRlcnMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgIm90aGVyLXBhcnNp
bmctc3RhdGUtZmxhZ3MiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRva2VuaXphdGlv
biI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKKyAgICAiY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1kYXRhLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFy
c2luZyIsCisgICAgImNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tcmNkYXRhLXN0YXRlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAorICAgICJzY3JpcHQtZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAicGxhaW50ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0YWctb3Bl
bi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiZW5kLXRhZy1vcGVuLXN0YXRl
IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0YWctbmFtZS1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKKyAgICAicmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LWxlc3MtdGhhbi1zaWduLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWduLXN0
YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3JpcHQtZGF0YS1lbmQtdGFnLW9w
ZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1kYXRhLWVuZC10
YWctbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEt
ZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3JpcHQt
ZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAic2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAic2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAorICAgICJzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0
ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1lbmQt
dGFnLW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1kYXRh
LWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAg
ICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAorICAgICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1zdGF0
ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2Fw
ZWQtZGFzaC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3JpcHQt
ZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYXR0cmlidXRlLW5hbWUtc3RhdGUiOiAiaHRtbC9z
eW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAorICAgICJiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90ZWQp
LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRyaWJ1dGUtdmFsdWUtKHNp
bmdsZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRyaWJ1
dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAi
Y2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUiOiAiaHRtbC9zeW50
YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1zdGF0
ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYm9ndXMtY29tbWVudC1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAibWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNvbW1lbnQtc3RhcnQtc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgImNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKKyAgICAiY29tbWVudC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKKyAgICAiY29tbWVudC1lbmQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKKyAgICAiY29tbWVudC1lbmQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
ImNvbW1lbnQtZW5kLWJhbmctc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImRv
Y3R5cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1kb2N0eXBl
LW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImRvY3R5cGUtbmFtZS1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYWZ0ZXItZG9jdHlwZS1uYW1lLXN0
YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhZnRlci1kb2N0eXBlLXB1YmxpYy1r
ZXl3b3JkLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJiZWZvcmUtZG9jdHlw
ZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAi
ZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUiOiAiaHRtbC9z
eW50YXgvcGFyc2luZyIsCisgICAgImRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmdsZS1x
dW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhZnRlci1kb2N0eXBl
LXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJi
ZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQtc3Rh
dGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1kb2N0eXBlLXN5c3RlbS1p
ZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJkb2N0eXBlLXN5
c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKKyAgICAiZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCktc3Rh
dGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWRvY3R5cGUtc3lzdGVtLWlk
ZW50aWZpZXItc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJvZ3VzLWRvY3R5
cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNkYXRhLXNlY3Rpb24tc3Rh
dGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRva2VuaXppbmctY2hhcmFjdGVyLXJl
ZmVyZW5jZXMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRyZWUtY29uc3RydWN0aW9u
IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjcmVhdGluZy1hbmQtaW5zZXJ0aW5nLWVs
ZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjbG9zaW5nLWVsZW1lbnRzLXRo
YXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJm
b3N0ZXItcGFyZW50aW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1h
aW4taW5odG1sIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtaW5pdGlhbC1pbnNl
cnRpb24tbW9kZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWJlZm9yZS1odG1s
LWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtYmVmb3Jl
LWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNp
bmctbWFpbi1pbmhlYWQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFp
bi1pbmhlYWRub3NjcmlwdCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWFmdGVy
LWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNp
bmctbWFpbi1pbmJvZHkiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFp
bi1pbmNkYXRhIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW50
YWJsZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicGFyc2luZy1tYWluLWludGFibGV0
ZXh0IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW5jYXB0aW9u
IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW5jb2xncm91cCI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicGFyc2luZy1tYWluLWludGJvZHkiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFpbi1pbnRyIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW50ZCI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKKyAgICAicGFyc2luZy1tYWluLWluc2VsZWN0IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAor
ICAgICJwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAorICAgICJwYXJzaW5nLW1haW4tYWZ0ZXJib2R5IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAor
ICAgICJwYXJzaW5nLW1haW4taW5mcmFtZXNldCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAicGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgInRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAorICAgICJ0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFpbi1pbmZvcmVpZ24iOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1lbmQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIs
CisgICAgImNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldCI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKKyAgICAiYW4taW50cm9kdWN0aW9uLXRvLWVycm9yLWhhbmRsaW5nLWFuZC1z
dHJhbmdlLWNhc2VzLWluLXRoZS1wYXJzZXIiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
Im1pc25lc3RlZC10YWdzOi1iLWktL2ItL2kiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
Im1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3AiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
InVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlcyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAic2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10aGF0
LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50cyI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKKyAgICAidW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKKyAgICAic2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiOiAiaHRtbC9zeW50YXgv
c2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiLAorICAgICJwYXJzaW5nLWh0bWwtZnJhZ21lbnRz
IjogImh0bWwvc3ludGF4L3BhcnNpbmctaHRtbC1mcmFnbWVudHMiLAorICAgICJuYW1lZC1jaGFy
YWN0ZXItcmVmZXJlbmNlcyI6ICJodG1sL3N5bnRheC9uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNl
cyIsCisgICAgInRoZS14aHRtbC1zeW50YXgiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4IiwKKyAg
ICAid3JpdGluZy14aHRtbC1kb2N1bWVudHMiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4L3dyaXRp
bmcteGh0bWwtZG9jdW1lbnRzIiwKKyAgICAicGFyc2luZy14aHRtbC1kb2N1bWVudHMiOiAiaHRt
bC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzIiwKKyAgICAic2VyaWFs
aXppbmcteGh0bWwtZnJhZ21lbnRzIjogImh0bWwvdGhlLXhodG1sLXN5bnRheC9zZXJpYWxpemlu
Zy14aHRtbC1mcmFnbWVudHMiLAorICAgICJwYXJzaW5nLXhodG1sLWZyYWdtZW50cyI6ICJodG1s
L3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1mcmFnbWVudHMiLAorICAgICJyZW5kZXJp
bmciOiAiaHRtbC9yZW5kZXJpbmciLAorICAgICJpbnRyb2R1Y3Rpb24tOCI6ICJodG1sL3JlbmRl
cmluZy9pbnRyb2R1Y3Rpb24tOCIsCisgICAgInRoZS1jc3MtdXNlci1hZ2VudC1zdHlsZS1zaGVl
dC1hbmQtcHJlc2VudGF0aW9uYWwtaGludHMiOiAiaHRtbC9yZW5kZXJpbmcvdGhlLWNzcy11c2Vy
LWFnZW50LXN0eWxlLXNoZWV0LWFuZC1wcmVzZW50YXRpb25hbC1oaW50cyIsCisgICAgIm5vbi1y
ZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxlbWVudHMi
LAorICAgICJoaWRkZW4tZWxlbWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVs
ZW1lbnRzL2hpZGRlbi1lbGVtZW50cyIsCisgICAgInRoZS1wYWdlIjogImh0bWwvcmVuZGVyaW5n
L25vbi1yZXBsYWNlZC1lbGVtZW50cy90aGUtcGFnZSIsCisgICAgImZsb3ctY29udGVudC0wIjog
Imh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mbG93LWNvbnRlbnQtMCIsCisg
ICAgInBocmFzaW5nLWNvbnRlbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxl
bWVudHMvcGhyYXNpbmctY29udGVudC0wIiwKKyAgICAiYmlkaXJlY3Rpb25hbC10ZXh0IjogImh0
bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9iaWRpcmVjdGlvbmFsLXRleHQiLAor
ICAgICJxdW90ZXMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3F1b3Rl
cyIsCisgICAgInNlY3Rpb25zLWFuZC1oZWFkaW5ncyI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVw
bGFjZWQtZWxlbWVudHMvc2VjdGlvbnMtYW5kLWhlYWRpbmdzIiwKKyAgICAibGlzdHMiOiAiaHRt
bC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL2xpc3RzIiwKKyAgICAidGFibGVzIjog
Imh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy90YWJsZXMiLAorICAgICJmb3Jt
LWNvbnRyb2xzIjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mb3JtLWNv
bnRyb2xzIiwKKyAgICAidGhlLWhyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVw
bGFjZWQtZWxlbWVudHMvdGhlLWhyLWVsZW1lbnQtMCIsCisgICAgInRoZS1maWVsZHNldC1lbGVt
ZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3RoZS1maWVsZHNl
dC1lbGVtZW50LTAiLAorICAgICJyZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmluZy9y
ZXBsYWNlZC1lbGVtZW50cyIsCisgICAgImVtYmVkZGVkLWNvbnRlbnQtMSI6ICJodG1sL3JlbmRl
cmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJlZGRlZC1jb250ZW50LTEiLAorICAgICJpbWFnZXMi
OiAiaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvaW1hZ2VzIiwKKyAgICAiYXR0cmli
dXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzIjogImh0bWwvcmVuZGVyaW5nL3Jl
cGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdl
cyIsCisgICAgImltYWdlLW1hcHMtMCI6ICJodG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50
cy9pbWFnZS1tYXBzLTAiLAorICAgICJ0b29sYmFycy0wIjogImh0bWwvcmVuZGVyaW5nL3JlcGxh
Y2VkLWVsZW1lbnRzL3Rvb2xiYXJzLTAiLAorICAgICJiaW5kaW5ncyI6ICJodG1sL3JlbmRlcmlu
Zy9iaW5kaW5ncyIsCisgICAgImludHJvZHVjdGlvbi05IjogImh0bWwvcmVuZGVyaW5nL2JpbmRp
bmdzL2ludHJvZHVjdGlvbi05IiwKKyAgICAidGhlLWJ1dHRvbi1lbGVtZW50LTAiOiAiaHRtbC9y
ZW5kZXJpbmcvYmluZGluZ3MvdGhlLWJ1dHRvbi1lbGVtZW50LTAiLAorICAgICJ0aGUtZGV0YWls
cy1lbGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWRldGFpbHMtZWxlbWVu
dC0wIiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCI6ICJo
dG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLXRleHQtZW50cnkt
d2lkZ2V0IiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWluLXNwZWNpZmljLXdpZGdl
dHMiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWlu
LXNwZWNpZmljLXdpZGdldHMiLAorICAgICJ0aGUtaW5wdXQtZWxlbWVudC1hcy1hLXJhbmdlLWNv
bnRyb2wiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMtYS1y
YW5nZS1jb250cm9sIiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS1jb2xvci13ZWxsIjog
Imh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtY29sb3Itd2Vs
bCIsCisgICAgInRoZS1pbnB1dC1lbGVtZW50LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRv
bi13aWRnZXRzIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50LWFz
LWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRvbi13aWRnZXRzIiwKKyAgICAidGhlLWlucHV0LWVs
ZW1lbnQtYXMtYS1maWxlLXVwbG9hZC1jb250cm9sIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdz
L3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtZmlsZS11cGxvYWQtY29udHJvbCIsCisgICAgInRoZS1p
bnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1p
bnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIiwKKyAgICAidGhlLW1hcnF1ZWUtZWxlbWVudCI6ICJo
dG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWFycXVlZS1lbGVtZW50IiwKKyAgICAidGhlLW1l
dGVyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWV0ZXItZWxlbWVu
dC0wIiwKKyAgICAidGhlLXByb2dyZXNzLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9iaW5k
aW5ncy90aGUtcHJvZ3Jlc3MtZWxlbWVudC0wIiwKKyAgICAidGhlLXNlbGVjdC1lbGVtZW50LTAi
OiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLXNlbGVjdC1lbGVtZW50LTAiLAorICAgICJ0
aGUtdGV4dGFyZWEtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS10ZXh0
YXJlYS1lbGVtZW50LTAiLAorICAgICJ0aGUta2V5Z2VuLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRl
cmluZy9iaW5kaW5ncy90aGUta2V5Z2VuLWVsZW1lbnQtMCIsCisgICAgImZyYW1lcy1hbmQtZnJh
bWVzZXRzIjogImh0bWwvcmVuZGVyaW5nL2ZyYW1lcy1hbmQtZnJhbWVzZXRzIiwKKyAgICAiaW50
ZXJhY3RpdmUtbWVkaWEiOiAiaHRtbC9yZW5kZXJpbmcvaW50ZXJhY3RpdmUtbWVkaWEiLAorICAg
ICJsaW5rcywtZm9ybXMsLWFuZC1uYXZpZ2F0aW9uIjogImh0bWwvcmVuZGVyaW5nL2ludGVyYWN0
aXZlLW1lZGlhL2xpbmtzLWZvcm1zLWFuZC1uYXZpZ2F0aW9uIiwKKyAgICAidGhlLXRpdGxlLWF0
dHJpYnV0ZS0wIjogImh0bWwvcmVuZGVyaW5nL2ludGVyYWN0aXZlLW1lZGlhL3RoZS10aXRsZS1h
dHRyaWJ1dGUtMCIsCisgICAgImVkaXRpbmctaG9zdHMiOiAiaHRtbC9yZW5kZXJpbmcvaW50ZXJh
Y3RpdmUtbWVkaWEvZWRpdGluZy1ob3N0cyIsCisgICAgInRleHQtcmVuZGVyZWQtaW4tbmF0aXZl
LXVzZXItaW50ZXJmYWNlcyI6ICJodG1sL3JlbmRlcmluZy9pbnRlcmFjdGl2ZS1tZWRpYS90ZXh0
LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiLAorICAgICJwcmludC1tZWRpYSI6
ICJodG1sL3JlbmRlcmluZy9wcmludC1tZWRpYSIsCisgICAgInVuc3R5bGVkLXhtbC1kb2N1bWVu
dHMiOiAiaHRtbC9yZW5kZXJpbmcvdW5zdHlsZWQteG1sLWRvY3VtZW50cyIsCisgICAgIm9ic29s
ZXRlIjogImh0bWwvb2Jzb2xldGUiLAorICAgICJvYnNvbGV0ZS1idXQtY29uZm9ybWluZy1mZWF0
dXJlcyI6ICJodG1sL29ic29sZXRlL29ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIiwK
KyAgICAid2FybmluZ3MtZm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIjogImh0
bWwvb2Jzb2xldGUvb2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMvd2FybmluZ3MtZm9y
LW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIiwKKyAgICAibm9uLWNvbmZvcm1pbmct
ZmVhdHVyZXMiOiAiaHRtbC9vYnNvbGV0ZS9ub24tY29uZm9ybWluZy1mZWF0dXJlcyIsCisgICAg
InJlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIjogImh0bWwvb2Jzb2xldGUvcmVxdWly
ZW1lbnRzLWZvci1pbXBsZW1lbnRhdGlvbnMiLAorICAgICJ0aGUtYXBwbGV0LWVsZW1lbnQiOiAi
aHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtYXBwbGV0
LWVsZW1lbnQiLAorICAgICJ0aGUtbWFycXVlZS1lbGVtZW50LTAiOiAiaHRtbC9vYnNvbGV0ZS9y
ZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtbWFycXVlZS1lbGVtZW50LTAiLAor
ICAgICJmcmFtZXMiOiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0
aW9ucy9mcmFtZXMiLAorICAgICJvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBpcyI6
ICJodG1sL29ic29sZXRlL3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zL290aGVyLWVs
ZW1lbnRzLWF0dHJpYnV0ZXMtYW5kLWFwaXMiLAorICAgICJpYW5hIjogIm1pY3JvZGF0YS9pYW5h
IiwKKyAgICAidGV4dC9odG1sIjogImh0bWwvaWFuYS90ZXh0LWh0bWwiLAorICAgICJtdWx0aXBh
cnQveC1taXhlZC1yZXBsYWNlIjogImh0bWwvaWFuYS9tdWx0aXBhcnQteC1taXhlZC1yZXBsYWNl
IiwKKyAgICAiYXBwbGljYXRpb24veGh0bWwreG1sIjogImh0bWwvaWFuYS9hcHBsaWNhdGlvbi14
aHRtbC14bWwiLAorICAgICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOiAiaHRt
bC9pYW5hL2FwcGxpY2F0aW9uLXgtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCisgICAgInRleHQvY2Fj
aGUtbWFuaWZlc3QiOiAiaHRtbC9pYW5hL3RleHQtY2FjaGUtbWFuaWZlc3QiLAorICAgICJwaW5n
LXRvIjogImh0bWwvaWFuYS9waW5nLXRvIiwKKyAgICAid2ViKy1zY2hlbWUtcHJlZml4IjogImh0
bWwvaWFuYS93ZWItc2NoZW1lLXByZWZpeCIsCisgICAgInRoZS1jYW52YXMtc3RhdGUiOiAiY2Fu
dmFzMmQvdGhlLWNhbnZhcy1zdGF0ZSIsCisgICAgImRyYXdpbmdzdHlsZS1vYmplY3RzIjogImNh
bnZhczJkL2RyYXdpbmdzdHlsZS1vYmplY3RzIiwKKyAgICAibGluZS1zdHlsZXMiOiAiY2FudmFz
MmQvbGluZS1zdHlsZXMiLAorICAgICJ0ZXh0LXN0eWxlcyI6ICJjYW52YXMyZC90ZXh0LXN0eWxl
cyIsCisgICAgImJ1aWxkaW5nLXBhdGhzIjogImNhbnZhczJkL2J1aWxkaW5nLXBhdGhzIiwKKyAg
ICAicGF0aC1vYmplY3RzIjogImNhbnZhczJkL3BhdGgtb2JqZWN0cyIsCisgICAgInRyYW5zZm9y
bWF0aW9ucyI6ICJjYW52YXMyZC90cmFuc2Zvcm1hdGlvbnMiLAorICAgICJmaWxsLWFuZC1zdHJv
a2Utc3R5bGVzIjogImNhbnZhczJkL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMiLAorICAgICJkcmF3
aW5nLXJlY3RhbmdsZXMtdG8tdGhlLWNhbnZhcyI6ICJjYW52YXMyZC9kcmF3aW5nLXJlY3Rhbmds
ZXMtdG8tdGhlLWNhbnZhcyIsCisgICAgImRyYXdpbmctdGV4dC10by10aGUtY2FudmFzIjogImNh
bnZhczJkL2RyYXdpbmctdGV4dC10by10aGUtY2FudmFzIiwKKyAgICAiZHJhd2luZy1wYXRocy10
by10aGUtY2FudmFzIjogImNhbnZhczJkL2RyYXdpbmctcGF0aHMtdG8tdGhlLWNhbnZhcyIsCisg
ICAgImRyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMiOiAiY2FudmFzMmQvZHJhd2luZy1pbWFn
ZXMtdG8tdGhlLWNhbnZhcyIsCisgICAgImhpdC1yZWdpb25zIjogImNhbnZhczJkL2hpdC1yZWdp
b25zIiwKKyAgICAicGl4ZWwtbWFuaXB1bGF0aW9uIjogImNhbnZhczJkL3BpeGVsLW1hbmlwdWxh
dGlvbiIsCisgICAgImNvbXBvc2l0aW5nIjogImNhbnZhczJkL2NvbXBvc2l0aW5nIiwKKyAgICAi
c2hhZG93cyI6ICJjYW52YXMyZC9zaGFkb3dzIiwKKyAgICAiZHJhd2luZy1tb2RlbCI6ICJjYW52
YXMyZC9kcmF3aW5nLW1vZGVsIiwKKyAgICAiYmVzdC1wcmFjdGljZXMiOiAiY2FudmFzMmQvYmVz
dC1wcmFjdGljZXMiLAorICAgICJvdmVydmlldyI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9uL292
ZXJ2aWV3IiwKKyAgICAidGhlLWJhc2ljLXN5bnRheCI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9u
L3RoZS1iYXNpYy1zeW50YXgiLAorICAgICJ0eXBlZC1pdGVtcyI6ICJtaWNyb2RhdGEvaW50cm9k
dWN0aW9uL3R5cGVkLWl0ZW1zIiwKKyAgICAiZ2xvYmFsLWlkZW50aWZpZXJzLWZvci1pdGVtcyI6
ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9uL2dsb2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMiLAor
ICAgICJzZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJpZXMiOiAibWljcm9k
YXRhL2ludHJvZHVjdGlvbi9zZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJp
ZXMiLAorICAgICJ1c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL2ludHJv
ZHVjdGlvbi91c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiLAorICAgICJlbmNvZGluZy1taWNy
b2RhdGEiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YSIsCisgICAgInRoZS1taWNyb2Rh
dGEtbW9kZWwiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS90aGUtbWljcm9kYXRhLW1v
ZGVsIiwKKyAgICAiaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9pdGVtcyIs
CisgICAgIm5hbWVzOi10aGUtaXRlbXByb3AtYXR0cmlidXRlIjogIm1pY3JvZGF0YS9lbmNvZGlu
Zy1taWNyb2RhdGEvbmFtZXMtdGhlLWl0ZW1wcm9wLWF0dHJpYnV0ZSIsCisgICAgInZhbHVlcyI6
ICJtaWNyb2RhdGEvZW5jb2RpbmctbWljcm9kYXRhL3ZhbHVlcyIsCisgICAgImFzc29jaWF0aW5n
LW5hbWVzLXdpdGgtaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9hc3NvY2lh
dGluZy1uYW1lcy13aXRoLWl0ZW1zIiwKKyAgICAibWljcm9kYXRhLWFuZC1vdGhlci1uYW1lc3Bh
Y2VzIjogIm1pY3JvZGF0YS9lbmNvZGluZy1taWNyb2RhdGEvbWljcm9kYXRhLWFuZC1vdGhlci1u
YW1lc3BhY2VzIiwKKyAgICAibWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL21pY3JvZGF0
YS1kb20tYXBpIiwKKyAgICAiaHRtbHByb3BlcnRpZXNjb2xsZWN0aW9uIjogIm1pY3JvZGF0YS9t
aWNyb2RhdGEtZG9tLWFwaS9odG1scHJvcGVydGllc2NvbGxlY3Rpb24iLAorICAgICJjb252ZXJ0
aW5nLWh0bWwtdG8tb3RoZXItZm9ybWF0cyI6ICJtaWNyb2RhdGEvY29udmVydGluZy1odG1sLXRv
LW90aGVyLWZvcm1hdHMiLAorICAgICJqc29uIjogIm1pY3JvZGF0YS9jb252ZXJ0aW5nLWh0bWwt
dG8tb3RoZXItZm9ybWF0cy9qc29uIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2NyaXB0cy9tYW5pZmVzdC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmQ1NTY4
MjU5MDA5OGE5ZDI0MzQxZjJiODE5ZmQ2ZDk3ZTdhYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL21h
bmlmZXN0LmpzCkBAIC0wLDAgKzEsMTQwIEBACisvLyBncmFiIHRlc3QgbWV0YWRhdGEgZnJvbSBh
IHRlc3QgZmlsZQorZnVuY3Rpb24gX19yZXN1bHRfaGFuZGxlcigpIHsKKworICAgIGZ1bmN0aW9u
IF9fZ2V0X21ldGFkYXRhKCkgeworCXZhciBvYmogPSBuZXcgT2JqZWN0KCk7CisJdmFyIGF1dGhv
ciA9IFtdOworCXZhciBhc3NlcnQgPSBbXTsKKwl2YXIgaGVscCA9IFtdOworCXZhciBtYXRjaCA9
IFtdOworCXZhciBtaXNtYXRjaCA9IFtdOworCXZhciBmbGFncyA9IFtdOworCXZhciBub2RlczsK
KworCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImF1dGhvciJd
Jyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworCSAgICB2YXIg
aHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpOworCSAgICB2YXIgdGl0bGUgPSBu
b2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7CisJICAgIHZhciBzID0gdGl0bGU7CisJICAg
IGlmIChocmVmICE9IG51bGwpIHsKKwkJcyArPSAiIDwiICsgaHJlZiArICI+IjsKKwkgICAgfQor
CSAgICBhdXRob3IucHVzaChzKTsKKwl9CisJaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5hdXRo
b3IgPSBhdXRob3I7CisJbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRhW25h
bWU9ImFzc2VydCJdJyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykg
eworCSAgICBhc3NlcnQucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSk7CisJ
fQorCWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouYXNzZXJ0ID0gYXNzZXJ0OworCW5vZGVzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImhlbHAiXScpOworCWZvciAodmFy
IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKwkgICAgaGVscC5wdXNoKG5vZGVzW2ld
LmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKwl9CisJaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5o
ZWxwID0gaGVscDsKKwlub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVs
PSJtYXRjaCJdJyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewor
CSAgICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKwl9CisJaWYg
KG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1hdGNoOworCW5vZGVzID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0nKTsKKwlmb3IgKHZhciBpID0g
MDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisJICAgIG1pc21hdGNoLnB1c2gobm9kZXNbaV0u
Z2V0QXR0cmlidXRlKCJocmVmIikpOworCX0KKwlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLm1h
dGNoID0gbWlzbWF0Y2g7CisJbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRh
W25hbWU9ImZsYWdzIl0nKTsKKwlmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsr
KSB7CisJICAgIGZsYWdzLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50IikpOwor
CX0KKwlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZsYWdzID0gZmxhZ3M7CisKKwlyZXR1cm4g
b2JqOworICAgIH0KKworICAgIHZhciBtZXRhID0gX19nZXRfbWV0YWRhdGEoKTsKKyAgICB2YXIg
bm9kZXM7CisKKyAgICBmdW5jdGlvbiBjb3B5KG9iaiwgcHJvcCwgYXJyKSB7CisJaWYgKHR5cGVv
ZiBhcnIgIT09ICJ1bmRlZmluZWQiKSB7CisJICAgIHZhciBhID0gW107CisJICAgIGZvciAodmFy
IGkgPSAwOyBpPGFyci5sZW5ndGg7aSsrKSB7CisJCWFbaV0gPSBhcnJbaV07CisJICAgIH0JCisJ
ICAgIG9ialtwcm9wXSA9IGE7CisJfQorICAgIH0KKworCisgICAgdmFyIHJldCA9IG5ldyBPYmpl
Y3QoKTsKKyAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOworICAgIHJl
dC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0KCk7CisK
KyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMkPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0nKTsKKyAgICBpZiAobm9kZSAhPT0gbnVsbCkgeworCXJl
dC50eXBlID0gInNjcmlwdCI7CisgICAgfQorCisgICAgaWYgKHJldC50eXBlID09PSAic2NyaXB0
IikgeworCWlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09PSAidW5kZWZpbmVkIgorCSAg
ICB8fCBPYmplY3Qua2V5cyhtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRhKS5sZW5n
dGggPT09IDApCisJICAgIHJldHVybiAiV1JBUFBFUjpUUllfQUdBSU4iOworCWVsc2UgeworCSAg
ICBmb3IgKHZhciBrZXkgaW4gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YSkgewor
CQl2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXldOworCQl2
YXIgbmV3dGVzdCA9IG5ldyBPYmplY3QoKTsKKwkJcmV0LnRlc3RzW2tleV09IG5ld3Rlc3Q7CisJ
CWlmICh0eXBlb2Ygb2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7CisJCSAgICBjb3B5KG5ld3Rl
c3QsICJoZWxwIiwgbWV0YS5oZWxwKTsKKwkJfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmhlbHAgPT09
ICJzdHJpbmciKSB7CisJCSAgICBuZXd0ZXN0LmhlbHAgPSBbIG9iai5oZWxwIF07CSAgCisJCX0K
KwkJaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAidW5kZWZpbmVkIikgeworCQkgICAgY29weShu
ZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOworCQl9IGVsc2UgaWYgKHR5cGVvZiBvYmou
YXV0aG9yID09PSAic3RyaW5nIikgeworCQkgICAgbmV3dGVzdC5hdXRob3IgPSBbIG9iai5hdXRo
b3IgXTsJICAKKwkJfQorCQlpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmluZWQiKSB7
CisJCSAgICBjb3B5KG5ld3Rlc3QsICJhc3NlcnQiLCBtZXRhLmFzc2VydCk7CisJCX0gZWxzZSBp
ZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJzdHJpbmciKSB7CisJCSAgICBuZXd0ZXN0LmFzc2Vy
dCA9IFsgb2JqLmFzc2VydCBdOwkgIAorCQl9CisJCWNvcHkobmV3dGVzdCwgIm1hdGNoIiwgbWV0
YS5tYXRjaCk7CisJCWNvcHkobmV3dGVzdCwgIm1pc21hdGNoIiwgbWV0YS5taXNtYXRjaCk7CisJ
CWNvcHkobmV3dGVzdCwgImZsYWdzIiwgbWV0YS5mbGFncyk7CisJICAgIH0KKwkgICAgcmV0dXJu
IHJldDsKKwl9CisgICAgfSBlbHNlIHsKKwl2YXIgbmV3dGVzdCA9IG1ldGE7CisJcmV0LnRlc3Rz
W2RvY3VtZW50LnRpdGxlXT0gbmV3dGVzdDsJCisKKwlpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2gg
IT09ICJ1bmRlZmluZWQiCisJICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5k
ZWZpbmVkIikgeworCSAgICByZXQudHlwZSA9ICJyZWZ0ZXN0IjsKKwl9CisKKwlyZXR1cm4gcmV0
OworICAgIH0KKworfQorCitmdW5jdGlvbiBfX2dpdmVfdXAoKSB7CisgICAgdmFyIHJldCA9IG5l
dyBPYmplY3QoKTsKKyAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOwor
ICAgIHJldC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0
KCk7CisKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMk
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0nKTsKKyAgICBpZiAobm9kZSAhPT0gbnVsbCkg
eworCXJldC50eXBlID0gInNjcmlwdCI7CisgICAgfSBlbHNlIGlmICh0eXBlb2YgbmV3dGVzdC5t
YXRjaCAhPT0gInVuZGVmaW5lZCIKKwkgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlzbWF0Y2gg
IT09ICJ1bmRlZmluZWQiKSB7CisJcmV0LnR5cGUgPSAicmVmdGVzdCI7CisgICAgfQorCisgICAg
dmFyIG5ld3Rlc3QgPSBfX2dldF9tZXRhZGF0YSgpOworICAgIHJldC50ZXN0c1tkb2N1bWVudC50
aXRsZV09IG5ld3Rlc3Q7CQorICAgIAorICAgIHJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMv
cGFja2FnZS5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zY3JpcHRzL3BhY2thZ2UuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjE4ZjY2OTFmNWZmMmVl
MWEzZGY2ZTA4ZWMzOGIyM2NjMjk0ZmNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3BhY2thZ2UuanNv
bgpAQCAtMCwwICsxLDExIEBACit7CisgICAgIm5hbWUiOiAgICAgImNvbnZlcnQiCissICAgInZl
cnNpb24iOiAgIjAuMC4xIgorLCAgICJwcml2YXRlIjogIHRydWUKKywgICAiZGVwZW5kZW5jaWVz
IjogeworICAgICAgICAibWtkaXJwIjogICAgICAgIioiCisgICAgLCAgICJ3cmVuY2giOiAgICAg
ICAiKiIKKyAgICAsICAgInVuZGVyc2NvcmUiOiAgICIqIgorICAgICwgICAianNkb20iOiAgICAg
ICAgIioiCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTIwZDRiZTAzOWZkMWFmOTAzZjEyOGYxYzMwOGMwOTEyZTIwY2QzYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
c2NyaXB0cy90b2MuanMKQEAgLTAsMCArMSwxMDcgQEAKKy8vIGdyYWIgdGhlIHRhYmxlIG9mIGNv
bnRlbnRzIGZpbGxlZCB3aXRoIGFsbCB0aGUgYW5jaG9ycworZnVuY3Rpb24gX19yZXN1bHRfaGFu
ZGxlcigpIHsKKyAgICBmdW5jdGlvbiBnZXRNYXAoKSB7CisJdmFyIHRvY19lbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRzIikubmV4dEVsZW1lbnRTaWJsaW5nOworCisJ
ZnVuY3Rpb24gZ2V0U2VjdGlvbigpIHsKKwkgICAgZnVuY3Rpb24gZ2V0SWRzKG5vZGUpIHsKKwkJ
dmFyIGEgPSBbXTsKKwkgICAgCisJCXZhciBub2RlcyA9IG5vZGUucXVlcnlTZWxlY3RvckFsbCgn
KltpZF0nKTsKKwkJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworCQkg
ICAgYS5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisJCX0KKwkJcmV0dXJuIGE7
CisJICAgIH0KKwkKKwkgICAgZnVuY3Rpb24gZ2V0VE9DSWRzKCkgeworCQl2YXIgYSA9IFtdOwor
CSAgICAKKwkJdmFyIG5vZGVzID0gdG9jX2VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGknKTsK
KwkJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworCQkgICAgdmFyIGhy
ZWYgPSBub2Rlc1tpXS5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKKwkJ
ICAgIGEucHVzaChocmVmLnN1YnN0cmluZygxKSk7CisJCX0KKwkJcmV0dXJuIGE7CisJICAgIH0K
KworCSAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOworCSAgICB2YXIgaWRzID0gZ2V0SWRzKGRv
Y3VtZW50KTsKKwkgICAgdmFyIHRvYyA9IGdldFRPQ0lkcygpOworICAgIAorCSAgICBmb3IgKHZh
ciBpID0gMTsgaSA8IHRvYy5sZW5ndGg7IGkrKykgeworCQl2YXIga2V5MSA9IHRvY1tpLTFdOwor
CQl2YXIga2V5MiA9IHRvY1tpXTsKKwkJdmFyIG1hcCA9IFtdOworCisJCXZhciBpbmRleDEgPSBp
ZHMuaW5kZXhPZihrZXkxKTsKKwkJdmFyIGluZGV4MiA9IGlkcy5pbmRleE9mKGtleTIpOworCisJ
CWlmICgoaW5kZXgyLWluZGV4MSkgPiAxKSB7CisJCSAgICBmb3IgKHZhciBqID0gaW5kZXgxKzE7
IGogPCBpbmRleDI7aisrKSB7CisJCQltYXAucHVzaChpZHNbal0pOworCQkgICAgfQorCQl9CisK
KwkJb2JqW2tleTFdID0gbWFwOworCSAgICB9CisJICAgIHsKKwkJdmFyIGtleSA9IHRvY1t0b2Mu
bGVuZ3RoLTFdOworCQl2YXIgaW5kZXggPSBpZHMuaW5kZXhPZihrZXkpOworCQl2YXIgbWFwID0g
W107CisKKwkJZm9yICh2YXIgaiA9IGluZGV4KzE7IGogPCBpZHMubGVuZ3RoO2orKykgeworCQkg
ICAgbWFwLnB1c2goaWRzW2pdKTsKKwkJfQorCQlvYmpba2V5XSA9IG1hcDsKKwkgICAgfQorICAg
IAorCSAgICByZXR1cm4gb2JqOworCX0KKworCWZ1bmN0aW9uIHNlY3Rpb24oaWQpIHsKKwkgICAg
dGhpcy5pZCA9IGlkOworCX0KKwlmdW5jdGlvbiBhZGRTdWJTZWN0aW9uKHNlY3Rpb24sIHN1Yikg
eworCSAgICBpZiAodHlwZW9mIHNlY3Rpb24uc2VjdGlvbnMgPT09ICJ1bmRlZmluZWQiKSB7CisJ
CXNlY3Rpb24uc2VjdGlvbnMgPSBbXTsKKwkgICAgfQorCSAgICBzZWN0aW9uLnNlY3Rpb25zLnB1
c2goc3ViKTsKKwl9CisKKwlmdW5jdGlvbiBsaShlbCwgbWFwKSB7CisJICAgIHZhciBvYmogPSBu
ZXcgc2VjdGlvbihlbC5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKS5zdWJz
dHJpbmcoMSkpOworCSAgICBvYmoudGl0bGUgPSBlbC5maXJzdEVsZW1lbnRDaGlsZC50ZXh0Q29u
dGVudDsKKwkgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7CisKKwkgICAgdmFy
IG0gPSBtYXBbb2JqLmlkXTsKKwkgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtLmxlbmd0aDsgaSsr
KSAgewkgICAgCisJCXZhciBzdWIgPSBuZXcgc2VjdGlvbihtW2ldKTsgCisJCWFkZFN1YlNlY3Rp
b24ob2JqLCBzdWIpOworCSAgICB9CisJICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkgeworCQlp
ZiAoY2hpbGQubm9kZU5hbWUgPT09ICJPTCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7CisJCWNoaWxk
ID0gY2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nOworCSAgICB9CisJICAgIHJldHVybiBvYmo7CisJ
fQorCisJZnVuY3Rpb24gb2woZWwsIHNlY3Rpb24sIG1hcCkgeworCSAgICB2YXIgY2hpbGQgPSBl
bC5maXJzdEVsZW1lbnRDaGlsZDsKKwkgICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7CisJCWFk
ZFN1YlNlY3Rpb24oc2VjdGlvbiwgbGkoY2hpbGQsIG1hcCkpOworCQljaGlsZCA9IGNoaWxkLm5l
eHRFbGVtZW50U2libGluZzsKKwkgICAgfQorCX0KKworCXZhciBtYXAgPSBnZXRTZWN0aW9uKCk7
CisJdmFyIG1haW4gPSBuZXcgc2VjdGlvbigiX19fbWFpbl9fXyIpOworCW1haW4udGl0bGUgPSBk
b2N1bWVudC50aXRsZTsKKworCW9sKHRvY19lbGVtZW50LCBtYWluLCBtYXApOworCisJcmV0dXJu
IG1haW47CisgICAgfQorCisgICAgcmV0dXJuIGdldE1hcCgpOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3Vw
ZGF0ZS1kaXJlY3Rvcnktc3RydWN0dXJlLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3VwZGF0ZS1kaXJlY3Rvcnktc3RydWN0dXJl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdkNzNkOTNhYzk2YjE5ZmVhM2QwZjc4ZDYxZGYxNTA1YjhhMDZlM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBkYXRlLWRpcmVjdG9yeS1zdHJ1Y3R1cmUuanMKQEAgLTAs
MCArMSwxMDYgQEAKKworLy8gY29udmVydCBmcm9tIG9sZC1zdHlsZSB0ZXN0IHN0cnVjdHVyZSB0
byBuZXcgc3R5bGUKKwordmFyIGZzID0gcmVxdWlyZSgiZnMiKQorLCAgIHB0aCA9IHJlcXVpcmUo
InBhdGgiKQorLCAgIGpzZG9tID0gcmVxdWlyZSgianNkb20iKQorLCAgIG1rZGlycCA9IHJlcXVp
cmUoIm1rZGlycCIpLnN5bmMKKywgICB0ZXN0RGlyID0gcHRoLmpvaW4oX19kaXJuYW1lLCAiLi4v
Li4iKQorLCAgIE1BWF9ERVBUSCA9IDMKKywgICBpZDJwYXRoID0ge30KKywgICBsaW1pdERlcHRo
ID0geworICAgICAgICBwYXJzaW5nOiAgICB0cnVlCisgICAgfQorOworCit2YXIgc2VjdGlvbnMg
PSB7CisgICAgaHRtbDogICAgICAgImh0dHA6Ly93d3cudzMub3JnL2h0bWwvd2cvZHJhZnRzL2h0
bWwvbWFzdGVyL092ZXJ2aWV3Lmh0bWwiCissICAgY2FudmFzMmQ6ICAgImh0dHA6Ly93d3cudzMu
b3JnL2h0bWwvd2cvZHJhZnRzLzJkY29udGV4dC9odG1sNV9jYW52YXMvT3ZlcnZpZXcuaHRtbCIK
KywgICBtaWNyb2RhdGE6ICAiaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy9kcmFmdHMvbWljcm9k
YXRhL21hc3Rlci9PdmVydmlldy5odG1sIgorfTsKKworZnVuY3Rpb24gd2Fsa1RyZWUgKCQsICRl
bCwgbGlzdCkgeworICAgICRlbC5maW5kKCI+IGxpIikuZWFjaChmdW5jdGlvbiAoKSB7CisgICAg
ICAgIHZhciAkbGkgPSAkKHRoaXMpCisgICAgICAgICwgICAkYSA9ICRsaS5maW5kKCI+IGEiKS5m
aXJzdCgpCisgICAgICAgIDsKKyAgICAgICAgLy8gc2tpcCBzZWN0aW9ucyB0aGF0IGRvbid0IGhh
dmUgYSBudW1iZXIKKyAgICAgICAgaWYgKCEvXlxzKlxkKy8udGVzdCgkYS50ZXh0KCkpKSByZXR1
cm47CisgICAgICAgIHZhciBocmVmID0gJGEuYXR0cigiaHJlZiIpLnJlcGxhY2UoL14uKiMvLCAi
IikKKyAgICAgICAgLCAgIGRlZiA9IHsKKyAgICAgICAgICAgICAgICBpZDogaHJlZi50b0xvd2Vy
Q2FzZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcLV0vZywg
Ii0iKQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wtezIsfS9nLCAiLSIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKD86XlwtfFwtJCkvZywgIiIpCisgICAg
ICAgICAgICAsICAgb3JpZ2luYWxfaWQ6IGhyZWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgLCAg
ICRvbCA9ICRsaS5maW5kKCI+IG9sIikuZmlyc3QoKQorICAgICAgICA7CisgICAgICAgIGlmICgk
b2wubGVuZ3RoKSB7CisgICAgICAgICAgICBkZWYuY2hpbGRyZW4gPSBbXTsKKyAgICAgICAgICAg
IHdhbGtUcmVlKCQsICRvbCwgZGVmLmNoaWxkcmVuKTsKKyAgICAgICAgfQorICAgICAgICBsaXN0
LnB1c2goZGVmKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZXh0cmFjdFNlY3Rpb25zIChzZWMs
IHNlY0Rpciwgc3BlYywgY2IpIHsKKyAgICBqc2RvbS5lbnYoCisgICAgICAgIHNwZWMKKyAgICAs
ICAgZnVuY3Rpb24gKGVyciwgd2luZG93KSB7CisgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4g
Y2IoZXJyKTsKKyAgICAgICAgICAgIGpzZG9tLmpRdWVyeWlmeSh3aW5kb3csICJodHRwczovL2Fq
YXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjguMy9qcXVlcnkubWluLmpzIiwg
ZnVuY3Rpb24gKHdpbmRvdywgJCkgeworICAgICAgICAgICAgICAgIGlmICghJCkgcmV0dXJuIGNi
KCIkIHdhcyBub3QgZGVmaW5lZCIpOworICAgICAgICAgICAgICAgIHZhciAkcm9vdCA9ICQoImJv
ZHkgPiBvbC50b2MiKS5maXJzdCgpCisgICAgICAgICAgICAgICAgLCAgIHRyZWUgPSBbXQorICAg
ICAgICAgICAgICAgIDsKKyAgICAgICAgICAgICAgICB3YWxrVHJlZSgkLCAkcm9vdCwgdHJlZSk7
CisgICAgICAgICAgICAgICAgY2IobnVsbCwgdHJlZSwgc2VjLCBzZWNEaXIpOworICAgICAgICAg
ICAgfQorICAgICAgICApOworICAgIH0pOworfQorCitmdW5jdGlvbiBtYWtlSUQyUGF0aCAoYmFz
ZSwgdHJlZSkgeworICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHJlZS5sZW5ndGg7IGkgPCBuOyBp
KyspIHsKKyAgICAgICAgdmFyIHNlYyA9IHRyZWVbaV07CisgICAgICAgIGlkMnBhdGhbc2VjLm9y
aWdpbmFsX2lkXSA9IGJhc2U7CisgICAgICAgIGlmIChzZWMuY2hpbGRyZW4gJiYgc2VjLmNoaWxk
cmVuLmxlbmd0aCkgbWFrZUlEMlBhdGgoYmFzZSwgc2VjLmNoaWxkcmVuKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIG1ha2VEaXJzIChiYXNlLCB0cmVlLCBkZXB0aCkgeworICAgIGNvbnNvbGUubG9n
KCJNYWtpbmcgIiArIGJhc2UgKyAiIGF0IGRlcHRoICIgKyBkZXB0aCk7CisgICAgZm9yICh2YXIg
aSA9IDAsIG4gPSB0cmVlLmxlbmd0aDsgaSA8IG47IGkrKykgeworICAgICAgICB2YXIgc2VjID0g
dHJlZVtpXQorICAgICAgICAsICAgcGF0aCA9IHB0aC5qb2luKGJhc2UsIHNlYy5pZCkKKyAgICAg
ICAgOworICAgICAgICBta2RpcnAocGF0aCk7CisgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRo
LmpvaW4ocGF0aCwgIi5naXRrZWVwIiksICIiLCAidXRmOCIpOworICAgICAgICBpZDJwYXRoW3Nl
Yy5vcmlnaW5hbF9pZF0gPSBwYXRoOworICAgICAgICBpZiAoc2VjLmlkICE9PSBzZWMub3JpZ2lu
YWxfaWQpIHsKKyAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRoLmpvaW4ocGF0aCwgIm9y
aWdpbmFsLWlkLmpzb24iKSwgSlNPTi5zdHJpbmdpZnkoeyBvcmlnaW5hbF9pZDogc2VjLm9yaWdp
bmFsX2lkfSksICJ1dGY4Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlYy5jaGlsZHJlbiAm
JiBzZWMuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoZGVwdGggPT09IE1BWF9E
RVBUSCB8fCBsaW1pdERlcHRoW3NlYy5pZF0pIHsKKyAgICAgICAgICAgICAgICBmcy53cml0ZUZp
bGVTeW5jKHB0aC5qb2luKHBhdGgsICJjb250YWlucy5qc29uIiksIEpTT04uc3RyaW5naWZ5KHNl
Yy5jaGlsZHJlbiwgbnVsbCwgNCksICJ1dGY4Iik7CisgICAgICAgICAgICAgICAgbWFrZUlEMlBh
dGgocGF0aCwgc2VjLmNoaWxkcmVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIG1ha2VEaXJzKHBhdGgsIHNlYy5jaGlsZHJlbiwgZGVwdGggKyAx
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworZm9yICh2YXIgc2VjIGlu
IHNlY3Rpb25zKSB7CisgICAgdmFyIHNlY0RpciA9IHB0aC5qb2luKHRlc3REaXIsIHNlYyk7Cisg
ICAgbWtkaXJwKHNlY0Rpcik7CisgICAgY29uc29sZS5sb2coIkxhdW5jaGluZyBleHRyYWN0aW9u
IGZvciAiICsgc2VjKTsKKyAgICBleHRyYWN0U2VjdGlvbnMoc2VjLCBzZWNEaXIsIHNlY3Rpb25z
W3NlY10sIGZ1bmN0aW9uIChlcnIsIHRvYywgc2VjLCBzZWNEaXIpIHsKKyAgICAgICAgaWYgKGVy
cikgcmV0dXJuIGNvbnNvbGUubG9nKCJFUlJPUjogIiArIGVycik7CisgICAgICAgIG1ha2VEaXJz
KHNlY0RpciwgdG9jLCAxKTsKKyAgICAgICAgZm9yICh2YXIgayBpbiBpZDJwYXRoKSBpZDJwYXRo
W2tdID0gaWQycGF0aFtrXS5yZXBsYWNlKHRlc3REaXIgKyAiLyIsICIiKTsKKyAgICAgICAgZnMu
d3JpdGVGaWxlU3luYyhwdGguam9pbihfX2Rpcm5hbWUsICJpZDJwYXRoLmpzb24iKSwgSlNPTi5z
dHJpbmdpZnkoaWQycGF0aCwgbnVsbCwgNCksICJ1dGY4Iik7CisgICAgfSk7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nj
cmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMyNjU3
M2U5ODU3YTNjNDE0MDRlYWQyZjg1NzE5NDM2NWI3ZTBhYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9p
ZDJwYXRoLmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvcGFja2FnZS5qc29uCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy91
cGRhdGUtZGlyZWN0b3J5LXN0cnVjdHVyZS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUu
cHkKaW5kZXggODg2NTUzYmRlODZiOWQ5ZjY2ZDJmMTI5YTk1OTVhMDU3Y2M2MjFlOS4uMzg4MTQw
YjJhODM3ZWRhYjFjYTMwYTM3YTE0MzhkNzEyMjIxMzgwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nl
cnZlL3NlcnZlLnB5CkBAIC0xNyw3ICsxNyw3IEBAIGltcG9ydCB1dWlkCiBmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBkZWZhdWx0ZGljdCwgT3JkZXJlZERpY3QKIGZyb20gbXVsdGlwcm9jZXNzaW5n
IGltcG9ydCBQcm9jZXNzLCBFdmVudAogCi1mcm9tIC4ubG9jYWxwYXRocyBpbXBvcnQgcmVwb19y
b290Citmcm9tIGxvY2FscGF0aHMgaW1wb3J0IHJlcG9fcm9vdAogCiBpbXBvcnQgc3NsdXRpbHMK
IGZyb20gbWFuaWZlc3Quc291cmNlZmlsZSBpbXBvcnQgcmVhZF9zY3JpcHRfbWV0YWRhdGEsIGpz
X21ldGFfcmUKQEAgLTIwMyw2ICsyMDMsOCBAQCBzdWJkb21haW5zID0gW3Uid3d3IiwKICAgICAg
ICAgICAgICAgdSLlpKnmsJfjga7oia/jgYTml6UiLAogICAgICAgICAgICAgICB1IsOpbMOodmUi
XQogCitub3Rfc3ViZG9tYWlucyA9IFt1Im5vbmV4aXN0ZW50LW9yaWdpbiJdCisKIGNsYXNzIFJv
dXRlc0J1aWxkZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNl
bGYuZm9yYmlkZGVuX292ZXJyaWRlID0gWygiR0VUIiwgIi90b29scy9ydW5uZXIvKiIsIGhhbmRs
ZXJzLmZpbGVfaGFuZGxlciksCkBAIC0yMTQsMTQgKzIxNiwxNCBAQCBjbGFzcyBSb3V0ZXNCdWls
ZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIsICJ7c3BlY30vdG9v
bHMvKiIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCIqIiwgIi9zZXJ2ZS5weSIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKV0KIAot
ICAgICAgICBzZWxmLnN0YXRpYyA9IFtdCisgICAgICAgIHNlbGYuZXh0cmEgPSBbXQogCiAgICAg
ICAgIHNlbGYubW91bnRwb2ludF9yb3V0ZXMgPSBPcmRlcmVkRGljdCgpCiAKICAgICAgICAgc2Vs
Zi5hZGRfbW91bnRfcG9pbnQoIi8iLCBOb25lKQogCiAgICAgZGVmIGdldF9yb3V0ZXMoc2VsZik6
Ci0gICAgICAgIHJvdXRlcyA9IHNlbGYuZm9yYmlkZGVuX292ZXJyaWRlICsgc2VsZi5mb3JiaWRk
ZW4gKyBzZWxmLnN0YXRpYworICAgICAgICByb3V0ZXMgPSBzZWxmLmZvcmJpZGRlbl9vdmVycmlk
ZSArIHNlbGYuZm9yYmlkZGVuICsgc2VsZi5leHRyYQogICAgICAgICAjIFVzaW5nIHJldmVyc2Vk
IGhlcmUgbWVhbnMgdGhhdCBtb3VudCBwb2ludHMgdGhhdCBhcmUgYWRkZWQgbGF0ZXIKICAgICAg
ICAgIyBnZXQgaGlnaGVyIHByaW9yaXR5LiBUaGlzIG1ha2VzIHNlbnNlIHNpbmNlIC8gaXMgdHlw
aWNhbGx5IGFkZGVkCiAgICAgICAgICMgZmlyc3QuCkBAIC0yMjksOSArMjMxLDE0IEBAIGNsYXNz
IFJvdXRlc0J1aWxkZXIob2JqZWN0KToKICAgICAgICAgICAgIHJvdXRlcy5leHRlbmQoaXRlbSkK
ICAgICAgICAgcmV0dXJuIHJvdXRlcwogCi0gICAgZGVmIGFkZF9zdGF0aWMoc2VsZiwgcGF0aCwg
Zm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgcm91dGUpOgotICAgICAgICBoYW5kbGVyID0gaGFu
ZGxlcnMuU3RhdGljSGFuZGxlcihwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlKQotICAg
ICAgICBzZWxmLnN0YXRpYy5hcHBlbmQoKGIiR0VUIiwgc3RyKHJvdXRlKSwgaGFuZGxlcikpCisg
ICAgZGVmIGFkZF9oYW5kbGVyKHNlbGYsIG1ldGhvZCwgcm91dGUsIGhhbmRsZXIpOgorICAgICAg
ICBzZWxmLmV4dHJhLmFwcGVuZCgoc3RyKG1ldGhvZCksIHN0cihyb3V0ZSksIGhhbmRsZXIpKQor
CisgICAgZGVmIGFkZF9zdGF0aWMoc2VsZiwgcGF0aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlw
ZSwgcm91dGUsIGhlYWRlcnM9Tm9uZSk6CisgICAgICAgIGlmIGhlYWRlcnMgaXMgTm9uZToKKyAg
ICAgICAgICAgIGhlYWRlcnMgPSB7fQorICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnMuU3RhdGlj
SGFuZGxlcihwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlLCAqKmhlYWRlcnMpCisgICAg
ICAgIHNlbGYuYWRkX2hhbmRsZXIoYiJHRVQiLCBzdHIocm91dGUpLCBoYW5kbGVyKQogCiAgICAg
ZGVmIGFkZF9tb3VudF9wb2ludChzZWxmLCB1cmxfYmFzZSwgcGF0aCk6CiAgICAgICAgIHVybF9i
YXNlID0gIi8lcy8iICUgdXJsX2Jhc2Uuc3RyaXAoIi8iKSBpZiB1cmxfYmFzZSAhPSAiLyIgZWxz
ZSAiLyIKQEAgLTM4MCwyNCArMzg3LDI0IEBAIGNsYXNzIFNlcnZlclByb2Mob2JqZWN0KToKICAg
ICAgICAgc2VsZi5kYWVtb24gPSBOb25lCiAgICAgICAgIHNlbGYuc3RvcCA9IEV2ZW50KCkKIAot
ICAgIGRlZiBzdGFydChzZWxmLCBpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMs
IGJpbmRfaG9zdG5hbWUsIGV4dGVybmFsX2NvbmZpZywKKyAgICBkZWYgc3RhcnQoc2VsZiwgaW5p
dF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywK
ICAgICAgICAgICAgICAgc3NsX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLnByb2Mg
PSBQcm9jZXNzKHRhcmdldD1zZWxmLmNyZWF0ZV9kYWVtb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz0oaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5k
X2hvc3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2Nv
bmZpZywgc3NsX2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oaW5p
dF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLCBzc2xfY29uZmlnKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQogICAgICAgICBzZWxmLnByb2MuZGFl
bW9uID0gVHJ1ZQogICAgICAgICBzZWxmLnByb2Muc3RhcnQoKQogCi0gICAgZGVmIGNyZWF0ZV9k
YWVtb24oc2VsZiwgaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2hv
c3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZp
ZywgKiprd2FyZ3MpOgorICAgIGRlZiBjcmVhdGVfZGFlbW9uKHNlbGYsIGluaXRfZnVuYywgaG9z
dCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZywgc3NsX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBzZWxmLmRhZW1vbiA9IGluaXRfZnVuYyhob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBi
aW5kX2hvc3RuYW1lLCBleHRlcm5hbF9jb25maWcsCisgICAgICAgICAgICBzZWxmLmRhZW1vbiA9
IGluaXRfZnVuYyhob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZp
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcsICoqa3dh
cmdzKQogICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgogICAgICAgICAgICAgcHJpbnQoIlNv
Y2tldCBlcnJvciBvbiBwb3J0ICVzIiAlIHBvcnQsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAg
ICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAg
ICAgICAgICAgIHByaW50KHRyYWNlYmFjay5mb3JtYXRfZXhjKCksIGZpbGU9c3lzLnN0ZGVycikK
ICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTQwOCw3ICs0MTUsNyBAQCBjbGFzcyBTZXJ2ZXJQcm9j
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RvcC53YWl0KCkKICAgICAgICAg
ICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAg
ICAgICAgICAgICAgICAgcHJpbnQodHJhY2ViYWNrLmZvcm1hdF9leGMoKSwgZmlsZT1zeXMuc3Rk
ZXJyKQogICAgICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTQyNSwxMiArNDMyLDEyIEBAIGNsYXNz
IFNlcnZlclByb2Mob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvYy5pc19hbGl2ZSgp
CiAKIAotZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9zdCwgcGF0aHMsIGJpbmRfaG9zdG5hbWUsIHNz
bF9jb25maWcsIGFsaWFzZXMpOgorZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9zdCwgcGF0aHMsIGJp
bmRfYWRkcmVzcywgc3NsX2NvbmZpZywgYWxpYXNlcyk6CiAgICAgcG9ydCA9IGdldF9wb3J0KCkK
ICAgICBzdWJkb21haW5zID0gZ2V0X3N1YmRvbWFpbnMoaG9zdCkKIAogICAgIHdyYXBwZXIgPSBT
ZXJ2ZXJQcm9jKCkKLSAgICB3cmFwcGVyLnN0YXJ0KHN0YXJ0X2h0dHBfc2VydmVyLCBob3N0LCBw
b3J0LCBwYXRocywgYnVpbGRfcm91dGVzKGFsaWFzZXMpLCBiaW5kX2hvc3RuYW1lLAorICAgIHdy
YXBwZXIuc3RhcnQoc3RhcnRfaHR0cF9zZXJ2ZXIsIGhvc3QsIHBvcnQsIHBhdGhzLCBidWlsZF9y
b3V0ZXMoYWxpYXNlcyksIGJpbmRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgIE5vbmUsIHNz
bF9jb25maWcpCiAKICAgICBjb25uZWN0ZWQgPSBGYWxzZQpAQCAtNDQzLDcgKzQ1MCw4IEBAIGRl
ZiBjaGVja19zdWJkb21haW5zKGhvc3QsIHBhdGhzLCBiaW5kX2hvc3RuYW1lLCBzc2xfY29uZmln
LCBhbGlhc2VzKToKICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKIAogICAgIGlmIG5vdCBjb25u
ZWN0ZWQ6Ci0gICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRmFpbGVkIHRvIGNvbm5lY3QgdG8gdGVz
dCBzZXJ2ZXIgb24gaHR0cDovLyVzOiVzIFlvdSBtYXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMg
b3Igc2ltaWxhciIgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRmFp
bGVkIHRvIGNvbm5lY3QgdG8gdGVzdCBzZXJ2ZXIgb24gaHR0cDovLyVzOiVzLiAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAiWW91IG1heSBuZWVkIHRvIGVkaXQgL2V0Yy9ob3N0cyBvciBzaW1p
bGFyLCBzZWUgUkVBRE1FLm1kLiIgJSAoaG9zdCwgcG9ydCkpCiAgICAgICAgIHN5cy5leGl0KDEp
CiAKICAgICBmb3Igc3ViZG9tYWluLCAocHVueWNvZGUsIGhvc3QpIGluIHN1YmRvbWFpbnMuaXRl
cml0ZW1zKCk6CkBAIC00NTEsNyArNDU5LDggQEAgZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9zdCwg
cGF0aHMsIGJpbmRfaG9zdG5hbWUsIHNzbF9jb25maWcsIGFsaWFzZXMpOgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICB1cmxsaWIyLnVybG9wZW4oImh0dHA6Ly8lczolZC8iICUgKGRvbWFpbiwg
cG9ydCkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIGxvZ2dl
ci5jcml0aWNhbCgiRmFpbGVkIHByb2JpbmcgZG9tYWluICVzLiBZb3UgbWF5IG5lZWQgdG8gZWRp
dCAvZXRjL2hvc3RzIG9yIHNpbWlsYXIuIiAlIGRvbWFpbikKKyAgICAgICAgICAgIGxvZ2dlci5j
cml0aWNhbCgiRmFpbGVkIHByb2JpbmcgZG9tYWluICVzLiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIllvdSBtYXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2Vl
IFJFQURNRS5tZC4iICUgZG9tYWluKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAgIHdy
YXBwZXIud2FpdCgpCkBAIC00NjMsNyArNDcyLDI1IEBAIGRlZiBnZXRfc3ViZG9tYWlucyhob3N0
KToKICAgICAgICAgICAgIGZvciBzdWJkb21haW4gaW4gc3ViZG9tYWluc30KIAogCi1kZWYgc3Rh
cnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0
ZXJuYWxfY29uZmlnLCBzc2xfY29uZmlnLAorZGVmIGdldF9ub3Rfc3ViZG9tYWlucyhob3N0KToK
KyAgICAjVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRsZCBpcyBhc2NpaS1vbmx5IG9yIGFscmVhZHkg
aW4gcHVueWNvZGUKKyAgICByZXR1cm4ge3N1YmRvbWFpbjogKHN1YmRvbWFpbi5lbmNvZGUoImlk
bmEiKSwgaG9zdCkKKyAgICAgICAgICAgIGZvciBzdWJkb21haW4gaW4gbm90X3N1YmRvbWFpbnN9
CisKKworZGVmIG1ha2VfaG9zdHNfZmlsZShjb25maWcsIGhvc3QpOgorICAgIHJ2ID0gW10KKwor
ICAgIGZvciBkb21haW4gaW4gY29uZmlnWyJkb21haW5zIl0udmFsdWVzKCk6CisgICAgICAgIHJ2
LmFwcGVuZCgiJXNcdCVzXG4iICUgKGhvc3QsIGRvbWFpbikpCisKKyAgICBmb3Igbm90X2RvbWFp
biBpbiBjb25maWcuZ2V0KCJub3RfZG9tYWlucyIsIHt9KS52YWx1ZXMoKToKKyAgICAgICAgcnYu
YXBwZW5kKCIwLjAuMC4wXHQlc1xuIiAlIG5vdF9kb21haW4pCisKKyAgICByZXR1cm4gIiIuam9p
bihydikKKworCitkZWYgc3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywg
YmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAqKmt3
YXJncyk6CiAgICAgc2VydmVycyA9IGRlZmF1bHRkaWN0KGxpc3QpCiAgICAgZm9yIHNjaGVtZSwg
cG9ydHMgaW4gcG9ydHMuaXRlcml0ZW1zKCk6CkBAIC00NzgsMzcgKzUwNSwzNyBAQCBkZWYgc3Rh
cnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0
ZXJuYWxfY29uZmlnLCBzcwogICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOnN0YXJ0X3dz
c19zZXJ2ZXJ9W3NjaGVtZV0KIAogICAgICAgICAgICAgc2VydmVyX3Byb2MgPSBTZXJ2ZXJQcm9j
KCkKLSAgICAgICAgICAgIHNlcnZlcl9wcm9jLnN0YXJ0KGluaXRfZnVuYywgaG9zdCwgcG9ydCwg
cGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywgKiprd2FyZ3MpCisgICAgICAgICAgICBz
ZXJ2ZXJfcHJvYy5zdGFydChpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJp
bmRfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywgc3NsX2Nv
bmZpZywgKiprd2FyZ3MpCiAgICAgICAgICAgICBzZXJ2ZXJzW3NjaGVtZV0uYXBwZW5kKChwb3J0
LCBzZXJ2ZXJfcHJvYykpCiAKICAgICByZXR1cm4gc2VydmVycwogCiAKLWRlZiBzdGFydF9odHRw
X3NlcnZlcihob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2hvc3RuYW1lLCBleHRlcm5h
bF9jb25maWcsIHNzbF9jb25maWcsCitkZWYgc3RhcnRfaHR0cF9zZXJ2ZXIoaG9zdCwgcG9ydCwg
cGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcsCiAgICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHJldHVybiB3cHRzZXJ2ZS5XZWJUZXN0SHR0
cGQoaG9zdD1ob3N0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jX3Jvb3Q9cGF0aHNbImRvY19y
b290Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXM9cm91dGVzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV3cml0ZXM9cmV3cml0ZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kX2hvc3RuYW1lPWJpbmRfaG9zdG5hbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9ZXh0ZXJuYWxfY29uZmln
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzPWJpbmRfYWRk
cmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz1jb25maWcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vfc3NsPUZhbHNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9Tm9uZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsYXRlbmN5PWt3YXJncy5nZXQoImxhdGVuY3kiKSkKIAogCi1kZWYgc3RhcnRf
aHR0cHNfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfaG9zdG5hbWUsIGV4
dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywKK2RlZiBzdGFydF9odHRwc19zZXJ2ZXIoaG9zdCwg
cG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICByZXR1cm4gd3B0c2VydmUuV2Vi
VGVzdEh0dHBkKGhvc3Q9aG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cnQ9cG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY19yb290PXBhdGhz
WyJkb2Nfcm9vdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVzPXJv
dXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJld3JpdGVzPXJld3JpdGVz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9ob3N0bmFtZT1iaW5kX2hv
c3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPWV4dGVybmFs
X2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfYWRkcmVzcz1i
aW5kX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9Y29u
ZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3NzbD1UcnVlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9c3NsX2NvbmZpZ1sia2V5X3Bh
dGgiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlPXNzbF9j
b25maWdbImNlcnRfcGF0aCJdLApAQCAtNTE3LDcgKzU0NCw3IEBAIGRlZiBzdGFydF9odHRwc19z
ZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0ZXJuYWxf
Y29uZmlnCiAKIAogY2xhc3MgV2ViU29ja2V0RGFlbW9uKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGhvc3QsIHBvcnQsIGRvY19yb290LCBoYW5kbGVyc19yb290LCBsb2dfbGV2ZWws
IGJpbmRfaG9zdG5hbWUsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIGRvY19y
b290LCBoYW5kbGVyc19yb290LCBsb2dfbGV2ZWwsIGJpbmRfYWRkcmVzcywKICAgICAgICAgICAg
ICAgICAgc3NsX2NvbmZpZyk6CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKICAgICAgICAgY21k
X2FyZ3MgPSBbIi1wIiwgcG9ydCwKQEAgLTU0Miw3ICs1NjksNyBAQCBjbGFzcyBXZWJTb2NrZXRE
YWVtb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jZXJ0aWZpY2F0ZSIs
IHNzbF9jb25maWdbImNlcnRfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICItLXRs
cy1tb2R1bGUiLCB0bHNfbW9kdWxlXQogCi0gICAgICAgIGlmIChiaW5kX2hvc3RuYW1lKToKKyAg
ICAgICAgaWYgKGJpbmRfYWRkcmVzcyk6CiAgICAgICAgICAgICBjbWRfYXJncyA9IFsiLUgiLCBo
b3N0XSArIGNtZF9hcmdzCiAgICAgICAgIG9wdHMsIGFyZ3MgPSBweXdlYnNvY2tldC5fcGFyc2Vf
YXJnc19hbmRfY29uZmlnKGNtZF9hcmdzKQogICAgICAgICBvcHRzLmNnaV9kaXJlY3RvcmllcyA9
IFtdCkBAIC01ODEsMjUgKzYwOCwyNSBAQCBjbGFzcyBXZWJTb2NrZXREYWVtb24ob2JqZWN0KToK
ICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCiAKIAotZGVmIHN0YXJ0X3dzX3NlcnZlcihob3N0
LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2hvc3RuYW1lLCBleHRlcm5hbF9jb25maWcsIHNz
bF9jb25maWcsCitkZWYgc3RhcnRfd3Nfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMs
IGJpbmRfYWRkcmVzcywgY29uZmlnLCBzc2xfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6CiAgICAgcmV0dXJuIFdlYlNvY2tldERhZW1vbihob3N0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RyKHBvcnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
b19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHNbIndzX2RvY19yb290Il0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVidWciLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluZF9ob3N0bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRf
YWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcgPSBOb25lKQog
CiAKLWRlZiBzdGFydF93c3Nfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRf
aG9zdG5hbWUsIGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywKK2RlZiBzdGFydF93c3Nfc2Vy
dmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCBzc2xf
Y29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHJldHVybiBXZWJT
b2NrZXREYWVtb24oaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihwb3J0KSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9fcm9vdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhdGhzWyJ3c19kb2Nfcm9vdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlYnVnIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfaG9zdG5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kX2FkZHJlc3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzc2xfY29uZmlnKQogCiAKQEAgLTYxOSw4ICs2NDYsMTUgQEAgZGVmIGdldF9w
b3J0cyhjb25maWcsIHNzbF9lbnZpcm9ubWVudCk6CiAKIAogZGVmIG5vcm1hbGlzZV9jb25maWco
Y29uZmlnLCBwb3J0cyk6Ci0gICAgaG9zdCA9IGNvbmZpZ1siZXh0ZXJuYWxfaG9zdCJdIGlmIGNv
bmZpZ1siZXh0ZXJuYWxfaG9zdCJdIGVsc2UgY29uZmlnWyJob3N0Il0KKyAgICBpZiAiaG9zdCIg
aW4gY29uZmlnOgorICAgICAgICBsb2dnZXIud2FybmluZygiaG9zdCBpbiBjb25maWcgaXMgZGVw
cmVjYXRlZDsgdXNlIGJyb3dzZXJfaG9zdCBpbnN0ZWFkIikKKyAgICAgICAgaG9zdCA9IGNvbmZp
Z1siaG9zdCJdCisgICAgZWxzZToKKyAgICAgICAgaG9zdCA9IGNvbmZpZ1siYnJvd3Nlcl9ob3N0
Il0KKwogICAgIGRvbWFpbnMgPSBnZXRfc3ViZG9tYWlucyhob3N0KQorICAgIG5vdF9kb21haW5z
ID0gZ2V0X25vdF9zdWJkb21haW5zKGhvc3QpCisKICAgICBwb3J0c18gPSB7fQogICAgIGZvciBz
Y2hlbWUsIHBvcnRzX3VzZWQgaW4gcG9ydHMuaXRlcml0ZW1zKCk6CiAgICAgICAgIHBvcnRzX1tz
Y2hlbWVdID0gcG9ydHNfdXNlZApAQCAtNjI4LDQzICs2NjIsNTMgQEAgZGVmIG5vcm1hbGlzZV9j
b25maWcoY29uZmlnLCBwb3J0cyk6CiAgICAgZm9yIGtleSwgdmFsdWUgaW4gZG9tYWlucy5pdGVy
aXRlbXMoKToKICAgICAgICAgZG9tYWluc1trZXldID0gIi4iLmpvaW4odmFsdWUpCiAKKyAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBub3RfZG9tYWlucy5pdGVyaXRlbXMoKToKKyAgICAgICAgbm90X2Rv
bWFpbnNba2V5XSA9ICIuIi5qb2luKHZhbHVlKQorCiAgICAgZG9tYWluc1siIl0gPSBob3N0CiAK
LSAgICBwb3J0c18gPSB7fQotICAgIGZvciBzY2hlbWUsIHBvcnRzX3VzZWQgaW4gcG9ydHMuaXRl
cml0ZW1zKCk6Ci0gICAgICAgIHBvcnRzX1tzY2hlbWVdID0gcG9ydHNfdXNlZAorICAgIGlmICJi
aW5kX2hvc3RuYW1lIiBpbiBjb25maWc6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJiaW5kX2hv
c3RuYW1lIGluIGNvbmZpZyBpcyBkZXByZWNhdGVkOyB1c2UgYmluZF9hZGRyZXNzIGluc3RlYWQi
KQorICAgICAgICBiaW5kX2FkZHJlc3MgPSBjb25maWdbImJpbmRfaG9zdG5hbWUiXQorICAgIGVs
c2U6CisgICAgICAgIGJpbmRfYWRkcmVzcyA9IGNvbmZpZ1siYmluZF9hZGRyZXNzIl0KIAotICAg
IHJldHVybiB7Imhvc3QiOiBob3N0LAotICAgICAgICAgICAgImRvbWFpbnMiOiBkb21haW5zLAot
ICAgICAgICAgICAgInBvcnRzIjogcG9ydHNffQorICAgICMgbWFrZSBhIChzaGFsbG93KSBjb3B5
IG9mIHRoZSBjb25maWcgYW5kIHVwZGF0ZSB0aGF0LCBzbyB0aGF0IHRoZQorICAgICMgbm9ybWFs
aXplZCBjb25maWcgY2FuIGJlIHVzZWQgaW4gcGxhY2Ugb2YgdGhlIG9yaWdpbmFsIG9uZS4KKyAg
ICBjb25maWdfID0gY29uZmlnLmNvcHkoKQorICAgIGNvbmZpZ19bImRvbWFpbnMiXSA9IGRvbWFp
bnMKKyAgICBjb25maWdfWyJub3RfZG9tYWlucyJdID0gbm90X2RvbWFpbnMKKyAgICBjb25maWdf
WyJwb3J0cyJdID0gcG9ydHNfCisgICAgY29uZmlnX1siYmluZF9hZGRyZXNzIl0gPSBiaW5kX2Fk
ZHJlc3MKKyAgICBpZiBjb25maWcuZ2V0KCJzZXJ2ZXJfaG9zdCIsIE5vbmUpIGlzIE5vbmU6Cisg
ICAgICAgIGNvbmZpZ19bInNlcnZlcl9ob3N0Il0gPSBob3N0CisgICAgcmV0dXJuIGNvbmZpZ18K
IAogCi1kZWYgZ2V0X3NzbF9jb25maWcoY29uZmlnLCBleHRlcm5hbF9kb21haW5zLCBzc2xfZW52
aXJvbm1lbnQpOgorZGVmIGdldF9wYXRocyhjb25maWcpOgorICAgIHJldHVybiB7ImRvY19yb290
IjogY29uZmlnWyJkb2Nfcm9vdCJdLAorICAgICAgICAgICAgIndzX2RvY19yb290IjogY29uZmln
WyJ3c19kb2Nfcm9vdCJdfQorCisKK2RlZiBnZXRfc3NsX2NvbmZpZyhjb25maWcsIHNzbF9lbnZp
cm9ubWVudCk6CisgICAgZXh0ZXJuYWxfZG9tYWlucyA9IGNvbmZpZ1siZG9tYWlucyJdLnZhbHVl
cygpCiAgICAga2V5X3BhdGgsIGNlcnRfcGF0aCA9IHNzbF9lbnZpcm9ubWVudC5ob3N0X2NlcnRf
cGF0aChleHRlcm5hbF9kb21haW5zKQogICAgIHJldHVybiB7ImtleV9wYXRoIjoga2V5X3BhdGgs
CiAgICAgICAgICAgICAiY2VydF9wYXRoIjogY2VydF9wYXRoLAogICAgICAgICAgICAgImVuY3J5
cHRfYWZ0ZXJfY29ubmVjdCI6IGNvbmZpZ1sic3NsIl1bImVuY3J5cHRfYWZ0ZXJfY29ubmVjdCJd
fQogCisKIGRlZiBzdGFydChjb25maWcsIHNzbF9lbnZpcm9ubWVudCwgcm91dGVzLCAqKmt3YXJn
cyk6Ci0gICAgaG9zdCA9IGNvbmZpZ1siaG9zdCJdCi0gICAgZG9tYWlucyA9IGdldF9zdWJkb21h
aW5zKGhvc3QpCisgICAgaG9zdCA9IGNvbmZpZ1sic2VydmVyX2hvc3QiXQogICAgIHBvcnRzID0g
Z2V0X3BvcnRzKGNvbmZpZywgc3NsX2Vudmlyb25tZW50KQotICAgIGJpbmRfaG9zdG5hbWUgPSBj
b25maWdbImJpbmRfaG9zdG5hbWUiXQorICAgIHBhdGhzID0gZ2V0X3BhdGhzKGNvbmZpZykKKyAg
ICBiaW5kX2FkZHJlc3MgPSBjb25maWdbImJpbmRfYWRkcmVzcyJdCisgICAgc3NsX2NvbmZpZyA9
IGdldF9zc2xfY29uZmlnKGNvbmZpZywgc3NsX2Vudmlyb25tZW50KQogCi0gICAgcGF0aHMgPSB7
ImRvY19yb290IjogY29uZmlnWyJkb2Nfcm9vdCJdLAotICAgICAgICAgICAgICJ3c19kb2Nfcm9v
dCI6IGNvbmZpZ1sid3NfZG9jX3Jvb3QiXX0KLQotICAgIGV4dGVybmFsX2NvbmZpZyA9IG5vcm1h
bGlzZV9jb25maWcoY29uZmlnLCBwb3J0cykKLQotICAgIHNzbF9jb25maWcgPSBnZXRfc3NsX2Nv
bmZpZyhjb25maWcsIGV4dGVybmFsX2NvbmZpZ1siZG9tYWlucyJdLnZhbHVlcygpLCBzc2xfZW52
aXJvbm1lbnQpCi0KLSAgICBpZiBjb25maWdbImNoZWNrX3N1YmRvbWFpbnMiXToKLSAgICAgICAg
Y2hlY2tfc3ViZG9tYWlucyhob3N0LCBwYXRocywgYmluZF9ob3N0bmFtZSwgc3NsX2NvbmZpZywg
Y29uZmlnWyJhbGlhc2VzIl0pCi0KLSAgICBzZXJ2ZXJzID0gc3RhcnRfc2VydmVycyhob3N0LCBw
b3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0ZXJuYWxfY29uZmlnLAorICAg
IHNlcnZlcnMgPSBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVzLCBiaW5k
X2FkZHJlc3MsIGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfY29uZmln
LCAqKmt3YXJncykKIAotICAgIHJldHVybiBleHRlcm5hbF9jb25maWcsIHNlcnZlcnMKKyAgICBy
ZXR1cm4gc2VydmVycwogCiAKIGRlZiBpdGVyX3Byb2NzKHNlcnZlcnMpOgpAQCAtNzc1LDEzICs4
MTksMjMgQEAgZGVmIHJ1bigqKmt3YXJncyk6CiAKICAgICBzZXR1cF9sb2dnZXIoY29uZmlnWyJs
b2dfbGV2ZWwiXSkKIAotICAgIHN0YXNoX2FkZHJlc3MgPSBOb25lCi0gICAgaWYgY29uZmlnWyJi
aW5kX2hvc3RuYW1lIl06Ci0gICAgICAgIHN0YXNoX2FkZHJlc3MgPSAoY29uZmlnWyJob3N0Il0s
IGdldF9wb3J0KCkpCisgICAgd2l0aCBnZXRfc3NsX2Vudmlyb25tZW50KGNvbmZpZykgYXMgc3Ns
X2VudjoKKyAgICAgICAgcG9ydHMgPSBnZXRfcG9ydHMoY29uZmlnLCBzc2xfZW52KQorICAgICAg
ICBjb25maWcgPSBub3JtYWxpc2VfY29uZmlnKGNvbmZpZywgcG9ydHMpCisgICAgICAgIGhvc3Qg
PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgIGJpbmRfYWRkcmVzcyA9IGNvbmZpZ1si
YmluZF9hZGRyZXNzIl0KKworICAgICAgICBpZiBjb25maWdbImNoZWNrX3N1YmRvbWFpbnMiXToK
KyAgICAgICAgICAgIHBhdGhzID0gZ2V0X3BhdGhzKGNvbmZpZykKKyAgICAgICAgICAgIHNzbF9j
b25maWcgPSBnZXRfc3NsX2NvbmZpZyhjb25maWcsIHNzbF9lbnYpCisgICAgICAgICAgICBjaGVj
a19zdWJkb21haW5zKGhvc3QsIHBhdGhzLCBiaW5kX2FkZHJlc3MsIHNzbF9jb25maWcsIGNvbmZp
Z1siYWxpYXNlcyJdKQorCisgICAgICAgIHN0YXNoX2FkZHJlc3MgPSBOb25lCisgICAgICAgIGlm
IGJpbmRfYWRkcmVzczoKKyAgICAgICAgICAgIHN0YXNoX2FkZHJlc3MgPSAoaG9zdCwgZ2V0X3Bv
cnQoKSkKIAotICAgIHdpdGggc3Rhc2guU3Rhc2hTZXJ2ZXIoc3Rhc2hfYWRkcmVzcywgYXV0aGtl
eT1zdHIodXVpZC51dWlkNCgpKSk6Ci0gICAgICAgIHdpdGggZ2V0X3NzbF9lbnZpcm9ubWVudChj
b25maWcpIGFzIHNzbF9lbnY6Ci0gICAgICAgICAgICBjb25maWdfLCBzZXJ2ZXJzID0gc3RhcnQo
Y29uZmlnLCBzc2xfZW52LCBidWlsZF9yb3V0ZXMoY29uZmlnWyJhbGlhc2VzIl0pLCAqKmt3YXJn
cykKKyAgICAgICAgd2l0aCBzdGFzaC5TdGFzaFNlcnZlcihzdGFzaF9hZGRyZXNzLCBhdXRoa2V5
PXN0cih1dWlkLnV1aWQ0KCkpKToKKyAgICAgICAgICAgIHNlcnZlcnMgPSBzdGFydChjb25maWcs
IHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMiXSksICoqa3dhcmdzKQogCiAg
ICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgd2hpbGUgYW55KGl0ZW0uaXNfYWxpdmUo
KSBmb3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpKToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
c2VydmUvdGVzdF9zZXJ2ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzM3NjAxNTNlOTg3YWI4MWRmZDQ3MGY4
OGU3NzljZGZiZGRkZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5CkBAIC0wLDAg
KzEsMTIgQEAKK2Zyb20gLiBpbXBvcnQgc2VydmUKKworZGVmIHRlc3RfbWFrZV9ob3N0c19maWxl
KCk6CisgICAgaG9zdHMgPSBzZXJ2ZS5tYWtlX2hvc3RzX2ZpbGUoeworICAgICAgICAiZG9tYWlu
cyI6IHsid3d3IjogInd3dy5mb28uYmFyLnRlc3QiLCAid3d3MSI6ICJ3d3cxLmZvby5iYXIudGVz
dCJ9LAorICAgICAgICAibm90X2RvbWFpbnMiOiB7ImFhYSI6ICJhYWEuZm9vLmJhci50ZXN0Iiwg
ImJiYiI6ICJiYmIuZm9vLmJhci50ZXN0In0KKyAgICB9LCAiMTI3LjEuMS4xIikKKyAgICBsaW5l
cyA9IGhvc3RzLnNwbGl0KCJcbiIpCisgICAgYXNzZXJ0ICIxMjcuMS4xLjFcdHd3dy5mb28uYmFy
LnRlc3QiIGluIGxpbmVzCisgICAgYXNzZXJ0ICIxMjcuMS4xLjFcdHd3dzEuZm9vLmJhci50ZXN0
IiBpbiBsaW5lcworICAgIGFzc2VydCAiMC4wLjAuMFx0YWFhLmZvby5iYXIudGVzdCIgaW4gbGlu
ZXMKKyAgICBhc3NlcnQgIjAuMC4wLjBcdGJiYi5mb28uYmFyLnRlc3QiIGluIGxpbmVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZwppbmRleCBiN2RlMjU1ZDBhYzAy
ODJmNjliYmVkMGI2NWEzZDRmNDJhNzAwM2I3Li5lNzI4MjYwOGViNTJiZWY5ZDJkNWYxMDRhNWU5
YWIyYzE2YzlkZWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5s
b2cKQEAgLTE3LDMgKzE3LDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL19faW5pdF9fLnB5CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9jb21tYW5k
cy5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zZXJ2ZS9zZXJ2ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9p
bmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAppbmRleCA3ODUxNDIxYTkwZWFmNWQ1ZDkw
MTg2MTAzOTFhZTFkMWI1YWVjZjM2Li45ODI3ZTY2OTViNTkzMWU1NTE0NGM4NTg3NmI3ZDZmMjU1
Y2YzNDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9u
L2luZGV4LnJzdApAQCAtMTA0LDcgKzEwNCw3IEBAIEhlcmUncyBleGFtcGxlIHVzYWdlIG9mIHRo
ZSBtb2R1bGU6OgogT2JqZWN0IG1vZGVsIGNvbXBhdGliaWxpdHkKID4+Pj4+Pj4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+CiAKLVB5dGhvbiAzIHJlbmFtZWQgdGhlIGF0dHJpYnV0ZXMgb2Ygc2V2ZXJhbCBp
bnRlcHJldGVyIGRhdGEgc3RydWN0dXJlcy4gIFRoZQorUHl0aG9uIDMgcmVuYW1lZCB0aGUgYXR0
cmlidXRlcyBvZiBzZXZlcmFsIGludGVycHJldGVyIGRhdGEgc3RydWN0dXJlcy4gIFRoZQogZm9s
bG93aW5nIGFjY2Vzc29ycyBhcmUgYXZhaWxhYmxlLiAgTm90ZSB0aGF0IHRoZSByZWNvbW1lbmRl
ZCB3YXkgdG8gaW5zcGVjdAogZnVuY3Rpb25zIGFuZCBtZXRob2RzIGlzIHRoZSBzdGRsaWIgOm1v
ZDpgcHkzOmluc3BlY3RgIG1vZHVsZS4KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEZvciB0aGUgbW9z
dCBwYXJ0LCA6bW9kOmBzaXgubW92ZXNgIGFsaWFzZXMgYXJlIHRoZSBuYW1lcyBvZiB0aGUgbW9k
dWxlcyBpbgogUHl0aG9uIDMuICBXaGVuIHRoZSBuZXcgUHl0aG9uIDMgbmFtZSBpcyBhIHBhY2th
Z2UsIHRoZSBjb21wb25lbnRzIG9mIHRoZSBuYW1lCiBhcmUgc2VwYXJhdGVkIGJ5IHVuZGVyc2Nv
cmVzLiAgRm9yIGV4YW1wbGUsIGBgaHRtbC5wYXJzZXJgYCBiZWNvbWVzCiBgYGh0bWxfcGFyc2Vy
YGAuICBJbiBzb21lIGNhc2VzIHdoZXJlIHNldmVyYWwgbW9kdWxlcyBoYXZlIGJlZW4gY29tYmlu
ZWQsIHRoZQotUHl0aG9uIDIgbmFtZSBpcyByZXRhaW5lZC4gIFRoaXMgaXMgc28gdGhlIGFwcHJv
cGlhdGUgbW9kdWxlcyBjYW4gYmUgZm91bmQgd2hlbgorUHl0aG9uIDIgbmFtZSBpcyByZXRhaW5l
ZC4gIFRoaXMgaXMgc28gdGhlIGFwcHJvcHJpYXRlIG1vZHVsZXMgY2FuIGJlIGZvdW5kIHdoZW4K
IHJ1bm5pbmcgb24gUHl0aG9uIDIuICBGb3IgZXhhbXBsZSwgYGBCYXNlSFRUUFNlcnZlcmBgIHdo
aWNoIGlzIGluCiBgYGh0dHAuc2VydmVyYGAgaW4gUHl0aG9uIDMgaXMgYWxpYXNlZCBhcyBgYEJh
c2VIVFRQU2VydmVyYGAuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weQppbmRl
eCBlNzhlMTM4NWM3YmUwODMwMWFiZGY3N2UwNDY3OWFlYTZmMGY5OGE4Li4yMzdhZTVmMjNjY2Yx
ZmE5OGNkMzk2YWY4ODY5YjI3NGZjOWUzNDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGls
cy9iYXNlLnB5CkBAIC0xLDkgKzEsMyBAQAotZGVmIGdldF9sb2dnZXIobmFtZT0ic3NsIik6Ci0g
ICAgbG9nZ2VyID0gc3RydWN0dXJlZC5nZXRfZGVmYXVsdF9sb2dnZXIobmFtZSkKLSAgICBpZiBs
b2dnZXIgaXMgTm9uZToKLSAgICAgICAgbG9nZ2VyID0gc3RydWN0dXJlZC5zdHJ1Y3R1cmVkbG9n
LlN0cnVjdHVyZWRMb2dnZXIobmFtZSkKLSAgICByZXR1cm4gbG9nZ2VyCi0KIGNsYXNzIE5vU1NM
RW52aXJvbm1lbnQob2JqZWN0KToKICAgICBzc2xfZW5hYmxlZCA9IEZhbHNlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvQVVUSE9SUy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0FVVEhPUlMucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjczZWFlMjE1NGQ1YjFmYjEyZTY4ZDRjNjhhMjNhZWRlZmJjYWE4NWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL0FVVEhPUlMucnN0CkBAIC0wLDAgKzEsMTEgQEAKK0NyZWRp
dHMKKz09PT09PT0KKworYGBhdHRyc2BgIGlzIHdyaXR0ZW4gYW5kIG1haW50YWluZWQgYnkgYEh5
bmVrIFNjaGxhd2FjayA8aHR0cHM6Ly9oeW5lay5tZS8+YF8uCisKK1RoZSBkZXZlbG9wbWVudCBp
cyBraW5kbHkgc3VwcG9ydGVkIGJ5IGBWYXJpb21lZGlhIEFHIDxodHRwczovL3d3dy52YXJpb21l
ZGlhLmRlLz5gXy4KKworQSBmdWxsIGxpc3Qgb2YgY29udHJpYnV0b3JzIGNhbiBiZSBmb3VuZCBp
biBgR2l0SHViJ3Mgb3ZlcnZpZXcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0
cnMvZ3JhcGhzL2NvbnRyaWJ1dG9ycz5gXy4KKworSXTigJlzIHRoZSBzcGlyaXR1YWwgc3VjY2Vz
c29yIG9mIGBjaGFyYWN0ZXJpc3RpYyA8aHR0cHM6Ly9jaGFyYWN0ZXJpc3RpYy5yZWFkdGhlZG9j
cy5pby8+YF8gYW5kIGFzcGlyZXMgdG8gZml4IHNvbWUgb2YgaXQgY2x1bmtpbmVzcyBhbmQgdW5m
b3J0dW5hdGUgZGVjaXNpb25zLgorQm90aCB3ZXJlIGluc3BpcmVkIGJ5IFR3aXN0ZWTigJlzIGBG
YW5jeUVxTWl4aW4gPGh0dHBzOi8vdHdpc3RlZG1hdHJpeC5jb20vZG9jdW1lbnRzL2N1cnJlbnQv
YXBpL3R3aXN0ZWQucHl0aG9uLnV0aWwuRmFuY3lFcU1peGluLmh0bWw+YF8gYnV0IGJvdGggYXJl
IGltcGxlbWVudGVkIHVzaW5nIGNsYXNzIGRlY29yYXRvcnMgYmVjYXVzZSBgc3ViLWNsYXNzaW5n
IGlzIGJhZCBmb3IgeW91IDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTNNTlZQOS1o
Z2xjPmBfLCBt4oCZa2F5PwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1Y2Q0NTkxMzU3MDQxNGYzYTFj
ZmY2MmJiNmRiM2M0YTBhNDNkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NIQU5H
RUxPRy5yc3QKQEAgLTAsMCArMSwzMjYgQEAKK0NoYW5nZWxvZworPT09PT09PT09CisKK1ZlcnNp
b25zIGZvbGxvdyBgQ2FsVmVyIDxodHRwOi8vY2FsdmVyLm9yZz5gXyB3aXRoIGEgc3RyaWN0IGJh
Y2t3YXJkcyBjb21wYXRpYmlsaXR5IHBvbGljeS4KK1RoZSB0aGlyZCBkaWdpdCBpcyBvbmx5IGZv
ciByZWdyZXNzaW9ucy4KKworQ2hhbmdlcyBmb3IgdGhlIHVwY29taW5nIHJlbGVhc2UgY2FuIGJl
IGZvdW5kIGluIHRoZSBgImNoYW5nZWxvZy5kIiBkaXJlY3RvcnkgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRob24tYXR0cnMvYXR0cnMvdHJlZS9tYXN0ZXIvY2hhbmdlbG9nLmQ+YF8gaW4gb3VyIHJl
cG9zaXRvcnkuCisKKy4uCisgICBEbyAqTk9UKiBhZGQgY2hhbmdlbG9nIGVudHJpZXMgaGVyZSEK
KworICAgVGhpcyBjaGFuZ2Vsb2cgaXMgbWFuYWdlZCBieSB0b3duY3JpZXIgYW5kIGlzIGNvbXBp
bGVkIGF0IHJlbGVhc2UgdGltZS4KKworICAgU2VlIGh0dHA6Ly93d3cuYXR0cnMub3JnL2VuL2xh
dGVzdC9jb250cmlidXRpbmcuaHRtbCNjaGFuZ2Vsb2cgZm9yIGRldGFpbHMuIiIiICAjIG5vcWEK
KworLi4gdG93bmNyaWVyIHJlbGVhc2Ugbm90ZXMgc3RhcnQKKworCisxNy4zLjAgKDIwMTctMTEt
MDgpCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0JhY2t3YXJkLWluY29tcGF0aWJsZSBDaGFuZ2Vz
CiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCistIEF0dHJpYnV0ZXMgYXJlIG5vdCBk
ZWZpbmVkIG9uIHRoZSBjbGFzcyBib2R5IGFueW1vcmUuCisKKyAgVGhpcyBtZWFucyB0aGF0IGlm
IHlvdSBkZWZpbmUgYSBjbGFzcyBgYENgYCB3aXRoIGFuIGF0dHJpYnV0ZSBgYHhgYCwgdGhlIGNs
YXNzIHdpbGwgKm5vdCogaGF2ZSBhbiBhdHRyaWJ1dGUgYGB4YGAgZm9yIGludHJvc3BlY3Rpb24g
YW55bW9yZS4KKyAgSW5zdGVhZCBvZiBgYEMueGBgLCB1c2UgYGBhdHRyLmZpZWxkcyhDKS54YGAg
b3IgbG9vayBhdCBgYEMuX19hdHRyc19hdHRyc19fYGAuCisgIFRoZSBvbGQgYmVoYXZpb3IgaGFz
IGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEuCisgIChgIzI1MyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjUzPmBfKQorCisKK0NoYW5nZXMK
K15eXl5eXl4KKworLSBgYHN1cGVyKClgYCBhbmQgYGBfX2NsYXNzX19gYCBub3cgd29yayBvbiBQ
eXRob24gMyB3aGVuIGBgc2xvdHM9VHJ1ZWBgLgorICAoYCMxMDIgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzEwMj5gXywgYCMyMjYgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzIyNj5gXywgYCMyNjkgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI2OT5gXywgYCMyNzAgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI3MD5gXywgYCMyNzIgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI3Mj5gXykKKy0gQWRkZWQg
YGB0eXBlYGAgYXJndW1lbnQgdG8gYGBhdHRyLmliKClgYCBhbmQgY29ycmVzcG9uZGluZyBgYHR5
cGVgYCBhdHRyaWJ1dGUgdG8gYGBhdHRyLkF0dHJpYnV0ZWBgLgorCisgIFRoaXMgY2hhbmdlIHBh
dmVzIHRoZSB3YXkgZm9yIGF1dG9tYXRpYyB0eXBlIGNoZWNraW5nIGFuZCBzZXJpYWxpemF0aW9u
ICh0aG91Z2ggYXMgb2YgdGhpcyByZWxlYXNlIGBgYXR0cnNgYCBkb2VzIG5vdCBtYWtlIHVzZSBv
ZiBpdCkuCisgIEluIFB5dGhvbiAzLjYgb3IgaGlnaGVyLCB0aGUgdmFsdWUgb2YgYGBhdHRyLkF0
dHJpYnV0ZS50eXBlYGAgY2FuIGFsdGVybmF0ZWx5IGJlIHNldCB1c2luZyB2YXJpYWJsZSB0eXBl
IGFubm90YXRpb25zCisgIChzZWUgYFBFUCA1MjYgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2
L3BlcHMvcGVwLTA1MjYvPmBfKS4gKGAjMTUxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0
dHJzL2F0dHJzL2lzc3Vlcy8xNTE+YF8sIGAjMjE0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9u
LWF0dHJzL2F0dHJzL2lzc3Vlcy8yMTQ+YF8sIGAjMjE1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yMTU+YF8sIGAjMjM5IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yMzk+YF8pCistIFRoZSBjb21iaW5hdGlvbiBvZiBg
YHN0cj1UcnVlYGAgYW5kIGBgc2xvdHM9VHJ1ZWBgIG5vdyB3b3JrcyBvbiBQeXRob24gMi4KKyAg
KGAjMTk4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xOTg+
YF8pCistIGBgYXR0ci5GYWN0b3J5YGAgaXMgaGFzaGFibGUgYWdhaW4uIChgIzIwNAorICA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjA0PmBfKQorLSBTdWJj
bGFzc2VzIG5vdyBjYW4gb3ZlcndyaXRlIGF0dHJpYnV0ZSBkZWZpbml0aW9ucyBvZiB0aGVpciBz
dXBlcmNsYXNzLgorCisgIFRoYXQgbWVhbnMgdGhhdCB5b3UgY2FuIC0tIGZvciBleGFtcGxlIC0t
IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlIGJ5IHJlZGVmaW5pbmcg
aXQuCisgIChgIzIyMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1
ZXMvMjIxPmBfLCBgIzIyOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9p
c3N1ZXMvMjI5PmBfKQorLSBBZGRlZCBuZXcgb3B0aW9uIGBgYXV0b19hdHRyaWJzYGAgdG8gYGBA
YXR0ci5zYGAgdGhhdCBhbGxvd3MgdG8gY29sbGVjdCBhbm5vdGF0ZWQgZmllbGRzIHdpdGhvdXQg
c2V0dGluZyB0aGVtIHRvIGBgYXR0ci5pYigpYGAuCisKKyAgU2V0dGluZyBhIGZpZWxkIHRvIGFu
IGBgYXR0ci5pYigpYGAgaXMgc3RpbGwgcG9zc2libGUgdG8gc3VwcGx5IG9wdGlvbnMgbGlrZSB2
YWxpZGF0b3JzLgorICBTZXR0aW5nIGl0IHRvIGFueSBvdGhlciB2YWx1ZSBpcyB0cmVhdGVkIGxp
a2UgaXQgd2FzIHBhc3NlZCBhcyBgYGF0dHIuaWIoZGVmYXVsdD12YWx1ZSlgYCAtLSBwYXNzaW5n
IGFuIGluc3RhbmNlIG9mIGBgYXR0ci5GYWN0b3J5YGAgYWxzbyB3b3JrcyBhcyBleHBlY3RlZC4K
KyAgKGAjMjYyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8y
NjI+YF8sIGAjMjc3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vl
cy8yNzc+YF8pCistIEluc3RhbmNlcyBvZiBjbGFzc2VzIGNyZWF0ZWQgdXNpbmcgYGBhdHRyLm1h
a2VfY2xhc3MoKWBgIGNhbiBub3cgYmUgcGlja2xlZC4KKyAgKGAjMjgyIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yODI+YF8pCisKKworLS0tLQorCisKKzE3
LjIuMCAoMjAxNy0wNS0yNCkKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitDaGFuZ2VzOgorXl5e
Xl5eXl4KKworLSBWYWxpZGF0b3JzIGFyZSBoYXNoYWJsZSBhZ2Fpbi4KKyAgTm90ZSB0aGF0IHZh
bGlkYXRvcnMgbWF5IGJlY29tZSBmcm96ZW4gaW4gdGhlIGZ1dHVyZSwgcGVuZGluZyBhdmFpbGFi
aWxpdHkgb2Ygbm8tb3ZlcmhlYWQgZnJvemVuIGNsYXNzZXMuCisgIGAjMTkyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xOTI+YF8KKworCistLS0tCisKKwor
MTcuMS4wICgyMDE3LTA1LTE2KQorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBlbmNvdXJhZ2Ug
bW9yZSBwYXJ0aWNpcGF0aW9uLCB0aGUgcHJvamVjdCBoYXMgYWxzbyBiZWVuIG1vdmVkIGludG8g
YSBgZGVkaWNhdGVkIEdpdEh1YiBvcmdhbml6YXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRo
b24tYXR0cnMvPmBfIGFuZCBldmVyeW9uZSBpcyBtb3N0IHdlbGNvbWUgdG8gam9pbiEKKworYGBh
dHRyc2BgIGFsc28gaGFzIGEgbG9nbyBub3chCisKKy4uIGltYWdlOjogaHR0cDovL3d3dy5hdHRy
cy5vcmcvZW4vbGF0ZXN0L19zdGF0aWMvYXR0cnNfbG9nby5wbmcKKyAgIDphbHQ6IGF0dHJzIGxv
Z28KKworCitCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXgorCistIGBgYXR0cnNgYCB3aWxsIHNldCB0aGUgYGBfX2hhc2hfXygpYGAg
bWV0aG9kIHRvIGBgTm9uZWBgIGJ5IGRlZmF1bHQgbm93LgorICBUaGUgd2F5IGhhc2hlcyB3ZXJl
IGhhbmRsZWQgYmVmb3JlIHdhcyBpbiBjb25mbGljdCB3aXRoIGBQeXRob24ncyBzcGVjaWZpY2F0
aW9uIDxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNv
YmplY3QuX19oYXNoX18+YF8uCisgIFRoaXMgKm1heSogYnJlYWsgc29tZSBzb2Z0d2FyZSBhbHRo
b3VnaCB0aGlzIGJyZWFrYWdlIGlzIG1vc3QgbGlrZWx5IGp1c3Qgc3VyZmFjaW5nIG9mIGxhdGVu
dCBidWdzLgorICBZb3UgY2FuIGFsd2F5cyBtYWtlIGBgYXR0cnNgYCBjcmVhdGUgdGhlIGBgX19o
YXNoX18oKWBgIG1ldGhvZCB1c2luZyBgYEBhdHRyLnMoaGFzaD1UcnVlKWBgLgorICBTZWUgYCMx
MzZgXyBmb3IgdGhlIHJhdGlvbmFsZSBvZiB0aGlzIGNoYW5nZS4KKworICAuLiB3YXJuaW5nOjoK
KworICAgIFBsZWFzZSAqZG8gbm90KiB1cGdyYWRlIGJsaW5kbHkgYW5kICpkbyogdGVzdCB5b3Vy
IHNvZnR3YXJlIQorICAgICpFc3BlY2lhbGx5KiBpZiB5b3UgdXNlIGluc3RhbmNlcyBhcyBkaWN0
IGtleXMgb3IgcHV0IHRoZW0gaW50byBzZXRzIQorCistIENvcnJlc3BvbmRpbmdseSwgYGBhdHRy
LmliYGAncyBgYGhhc2hgYCBhcmd1bWVudCBpcyBgYE5vbmVgYCBieSBkZWZhdWx0IHRvbyBhbmQg
bWlycm9ycyB0aGUgYGBjbXBgYCBhcmd1bWVudCBhcyBpdCBzaG91bGQuCisKKworRGVwcmVjYXRp
b25zOgorXl5eXl5eXl5eXl5eXgorCistIGBgYXR0ci5hc3NvYygpYGAgaXMgbm93IGRlcHJlY2F0
ZWQgaW4gZmF2b3Igb2YgYGBhdHRyLmV2b2x2ZSgpYGAgYW5kIHdpbGwgc3RvcCB3b3JraW5nIGlu
IDIwMTguCisKKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gRml4IGRlZmF1bHQgaGFzaGluZyBi
ZWhhdmlvci4KKyAgTm93ICpoYXNoKiBtaXJyb3JzIHRoZSB2YWx1ZSBvZiAqY21wKiBhbmQgY2xh
c3NlcyBhcmUgdW5oYXNoYWJsZSBieSBkZWZhdWx0LgorICBgIzEzNmBfCisgIGAjMTQyIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xNDI+YF8KKy0gQWRkZWQg
YGBhdHRyLmV2b2x2ZSgpYGAgdGhhdCwgZ2l2ZW4gYW4gaW5zdGFuY2Ugb2YgYW4gYGBhdHRyc2Bg
IGNsYXNzIGFuZCBmaWVsZCBjaGFuZ2VzIGFzIGtleXdvcmQgYXJndW1lbnRzLCB3aWxsIGluc3Rh
bnRpYXRlIGEgY29weSBvZiB0aGUgZ2l2ZW4gaW5zdGFuY2Ugd2l0aCB0aGUgY2hhbmdlcyBhcHBs
aWVkLgorICBgYGV2b2x2ZSgpYGAgcmVwbGFjZXMgYGBhc3NvYygpYGAsIHdoaWNoIGlzIG5vdyBk
ZXByZWNhdGVkLgorICBgYGV2b2x2ZSgpYGAgaXMgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGhhbiBg
YGFzc29jKClgYCwgYW5kIHJlcXVpcmVzIHRoZSBjbGFzcyBoYXZlIGFuIGluaXRpYWxpemVyIHRo
YXQgY2FuIHRha2UgdGhlIGZpZWxkIHZhbHVlcyBhcyBrZXl3b3JkIGFyZ3VtZW50cyAobGlrZSBg
YGF0dHJzYGAgaXRzZWxmIGNhbiBnZW5lcmF0ZSkuCisgIGAjMTE2IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xMTY+YF8KKyAgYCMxMjQgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvcHVsbC8xMjQ+YF8KKyAgYCMxMzUgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvcHVsbC8xMzU+YF8KKy0gYGBGcm96ZW5JbnN0
YW5jZUVycm9yYGAgaXMgbm93IHJhaXNlZCB3aGVuIHRyeWluZyB0byBkZWxldGUgYW4gYXR0cmli
dXRlIGZyb20gYSBmcm96ZW4gY2xhc3MuCisgIGAjMTE4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
aG9uLWF0dHJzL2F0dHJzL3B1bGwvMTE4PmBfCistIEZyb3plbi1uZXNzIG9mIGNsYXNzZXMgaXMg
bm93IGluaGVyaXRlZC4KKyAgYCMxMjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMv
YXR0cnMvcHVsbC8xMjg+YF8KKy0gYGBfX2F0dHJzX3Bvc3RfaW5pdF9fKClgYCBpcyBub3cgcnVu
IGlmIHZhbGlkYXRpb24gaXMgZGlzYWJsZWQuCisgIGAjMTMwIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0aG9uLWF0dHJzL2F0dHJzL3B1bGwvMTMwPmBfCistIEFkZGVkIGBgYXR0ci52YWxpZGF0b3Jz
LmluXyhvcHRpb25zKWBgIHRoYXQsIGdpdmVuIHRoZSBhbGxvd2VkIGBvcHRpb25zYCwgY2hlY2tz
IHdoZXRoZXIgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBpbiBpdC4KKyAgVGhpcyBjYW4gYmUgdXNl
ZCB0byBjaGVjayBjb25zdGFudHMsIGVudW1zLCBtYXBwaW5ncywgZXRjLgorICBgIzE4MSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE4MT5gXworLSBBZGRlZCBg
YGF0dHIudmFsaWRhdG9ycy5hbmRfKClgYCB0aGF0IGNvbXBvc2VzIG11bHRpcGxlIHZhbGlkYXRv
cnMgaW50byBvbmUuCisgIGAjMTYxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0
dHJzL2lzc3Vlcy8xNjE+YF8KKy0gRm9yIGNvbnZlbmllbmNlLCB0aGUgYGB2YWxpZGF0b3JgYCBh
cmd1bWVudCBvZiBgYEBhdHRyLnNgYCBub3cgY2FuIHRha2UgYSBgYGxpc3RgYCBvZiB2YWxpZGF0
b3JzIHRoYXQgYXJlIHdyYXBwZWQgdXNpbmcgYGBhbmRfKClgYC4KKyAgYCMxMzggPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzEzOD5gXworLSBBY2NvcmRpbmds
eSwgYGBhdHRyLnZhbGlkYXRvcnMub3B0aW9uYWwoKWBgIG5vdyBjYW4gdGFrZSBhIGBgbGlzdGBg
IG9mIHZhbGlkYXRvcnMgdG9vLgorICBgIzE2MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1h
dHRycy9hdHRycy9pc3N1ZXMvMTYxPmBfCistIFZhbGlkYXRvcnMgY2FuIG5vdyBiZSBkZWZpbmVk
IGNvbnZlbmllbnRseSBpbmxpbmUgYnkgdXNpbmcgdGhlIGF0dHJpYnV0ZSBhcyBhIGRlY29yYXRv
ci4KKyAgQ2hlY2sgb3V0IHRoZSBgZXhhbXBsZXMgPGh0dHA6Ly93d3cuYXR0cnMub3JnL2VuL3N0
YWJsZS9leGFtcGxlcy5odG1sI3ZhbGlkYXRvcnM+YF8gdG8gc2VlIGl0IGluIGFjdGlvbiEKKyAg
YCMxNDMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzE0Mz5g
XworLSBgYGF0dHIuRmFjdG9yeSgpYGAgbm93IGhhcyBhIGBgdGFrZXNfc2VsZmBgIGFyZ3VtZW50
IHRoYXQgbWFrZXMgdGhlIGluaXRpYWxpemVyIHRvIHBhc3MgdGhlIHBhcnRpYWxseSBpbml0aWFs
aXplZCBpbnN0YW5jZSBpbnRvIHRoZSBmYWN0b3J5LgorICBJbiBvdGhlciB3b3JkcyB5b3UgY2Fu
IGRlZmluZSBhdHRyaWJ1dGUgZGVmYXVsdHMgYmFzZWQgb24gb3RoZXIgYXR0cmlidXRlcy4KKyAg
YCMxNjVgXworICBgIzE4OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9p
c3N1ZXMvMTg5PmBfCistIERlZmF1bHQgZmFjdG9yaWVzIGNhbiBub3cgYWxzbyBiZSBkZWZpbmVk
IGlubGluZSB1c2luZyBkZWNvcmF0b3JzLgorICBUaGV5IGFyZSAqYWx3YXlzKiBwYXNzZWQgdGhl
IHBhcnRpYWxseSBpbml0aWFsaXplZCBpbnN0YW5jZS4KKyAgYCMxNjVgXworLSBDb252ZXJzaW9u
IGNhbiBub3cgYmUgbWFkZSBvcHRpb25hbCB1c2luZyBgYGF0dHIuY29udmVydGVycy5vcHRpb25h
bCgpYGAuCisgIGAjMTA1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lz
c3Vlcy8xMDU+YF8KKyAgYCMxNzMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0
cnMvcHVsbC8xNzM+YF8KKy0gYGBhdHRyLm1ha2VfY2xhc3MoKWBgIG5vdyBhY2NlcHRzIHRoZSBr
ZXl3b3JkIGFyZ3VtZW50IGBgYmFzZXNgYCB3aGljaCBhbGxvd3MgZm9yIHN1YmNsYXNzaW5nLgor
ICBgIzE1MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE1Mj5g
XworLSBNZXRhY2xhc3NlcyBhcmUgbm93IHByZXNlcnZlZCB3aXRoIGBgc2xvdHM9VHJ1ZWBgLgor
ICBgIzE1NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE1NT5g
XworCisuLiBfYCMxMzZgOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lz
c3Vlcy8xMzYKKy4uIF9gIzE2NWA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0
cnMvaXNzdWVzLzE2NQorCisKKy0tLS0KKworCisxNi4zLjAgKDIwMTYtMTEtMjQpCistLS0tLS0t
LS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6CiteXl5eXl5eXgorCistIEF0dHJpYnV0ZXMgbm93IGNh
biBoYXZlIHVzZXItZGVmaW5lZCBtZXRhZGF0YSB3aGljaCBncmVhdGx5IGltcHJvdmVzIGBgYXR0
cnNgYCdzIGV4dGVuc2liaWxpdHkuCisgIGAjOTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24t
YXR0cnMvYXR0cnMvcHVsbC85Nj5gXworLSBBbGxvdyBmb3IgYSBgYF9fYXR0cnNfcG9zdF9pbml0
X18oKWBgIG1ldGhvZCB0aGF0IC0tIGlmIGRlZmluZWQgLS0gd2lsbCBnZXQgY2FsbGVkIGF0IHRo
ZSBlbmQgb2YgdGhlIGBgYXR0cnNgYC1nZW5lcmF0ZWQgYGBfX2luaXRfXygpYGAgbWV0aG9kLgor
ICBgIzExMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzExMT5g
XworLSBBZGRlZCBgYEBhdHRyLnMoc3RyPVRydWUpYGAgdGhhdCB3aWxsIG9wdGlvbmFsbHkgY3Jl
YXRlIGEgYGBfX3N0cl9fKClgYCBtZXRob2QgdGhhdCBpcyBpZGVudGljYWwgdG8gYGBfX3JlcHJf
XygpYGAuCisgIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCB3aXRoIGBgRXhjZXB0aW9uYGBcIHMgYW5k
IG90aGVyIGNsYXNzZXMgdGhhdCByZWx5IG9uIGEgdXNlZnVsIGBgX19zdHJfXygpYGAgaW1wbGVt
ZW50YXRpb24gYnV0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBvbmUgdGhyb3VnaCBhIHBvb3Igb3du
IG9uZS4KKyAgRGVmYXVsdCBQeXRob24gY2xhc3MgYmVoYXZpb3IgaXMgdG8gdXNlIGBgX19yZXBy
X18oKWBgIGFzIGBgX19zdHJfXygpYGAgYW55d2F5cy4KKworICBJZiB5b3UgdHJpZWQgdXNpbmcg
YGBhdHRyc2BgIHdpdGggYGBFeGNlcHRpb25gYFwgcyBhbmQgd2VyZSBwdXp6bGVkIGJ5IHRoZSB0
cmFjZWJhY2tzOiB0aGlzIG9wdGlvbiBpcyBmb3IgeW91LgorLSBgYF9fbmFtZV9fYGAgaXMgbm90
IG92ZXJ3cml0dGVuIHdpdGggYGBfX3F1YWxuYW1lX19gYCBmb3IgYGBhdHRyLnMoc2xvdHM9VHJ1
ZSlgYCBjbGFzc2VzIGFueW1vcmUuCisgIGAjOTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24t
YXR0cnMvYXR0cnMvaXNzdWVzLzk5PmBfCisKKworLS0tLQorCisKKzE2LjIuMCAoMjAxNi0wOS0x
NykKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gQWRkZWQg
YGBhdHRyLmFzdHVwbGUoKWBgIHRoYXQgLS0gc2ltaWxhcmx5IHRvIGBgYXR0ci5hc2RpY3QoKWBg
IC0tIHJldHVybnMgdGhlIGluc3RhbmNlIGFzIGEgdHVwbGUuCisgIGAjNzcgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzc3PmBfCistIENvbnZlcnRzIG5vdyB3
b3JrIHdpdGggZnJvemVuIGNsYXNzZXMuCisgIGAjNzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRo
b24tYXR0cnMvYXR0cnMvaXNzdWVzLzc2PmBfCistIEluc3RhbnRpYXRpb24gb2YgYGBhdHRyc2Bg
IGNsYXNzZXMgd2l0aCBjb252ZXJ0ZXJzIGlzIG5vdyBzaWduaWZpY2FudGx5IGZhc3Rlci4KKyAg
YCM4MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzgwPmBfCist
IFBpY2tsaW5nIG5vdyB3b3JrcyB3aXRoIGBgX19zbG90c19fYGAgY2xhc3Nlcy4KKyAgYCM4MSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvODE+YF8KKy0gYGBh
dHRyLmFzc29jKClgYCBub3cgd29ya3Mgd2l0aCBgYF9fc2xvdHNfX2BgIGNsYXNzZXMuCisgIGAj
ODQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzg0PmBfCist
IFRoZSB0dXBsZSByZXR1cm5lZCBieSBgYGF0dHIuZmllbGRzKClgYCBub3cgYWxzbyBhbGxvd3Mg
dG8gYWNjZXNzIHRoZSBgYEF0dHJpYnV0ZWBgIGluc3RhbmNlcyBieSBuYW1lLgorICBZZXMsIHdl
J3ZlIHN1YmNsYXNzZWQgYGB0dXBsZWBgIHNvIHlvdSBkb24ndCBoYXZlIHRvIQorICBUaGVyZWZv
cmUgYGBhdHRyLmZpZWxkcyhDKS54YGAgaXMgZXF1aXZhbGVudCB0byB0aGUgZGVwcmVjYXRlZCBg
YEMueGBgIGFuZCB3b3JrcyB3aXRoIGBgX19zbG90c19fYGAgY2xhc3Nlcy4KKyAgYCM4OCA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvODg+YF8KKworCistLS0t
CisKKworMTYuMS4wICgyMDE2LTA4LTMwKQorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCYWNrd2Fy
ZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgor
CistIEFsbCBpbnN0YW5jZXMgd2hlcmUgZnVuY3Rpb24gYXJndW1lbnRzIHdlcmUgY2FsbGVkIGBg
Y2xgYCBoYXZlIGJlZW4gY2hhbmdlZCB0byB0aGUgbW9yZSBQeXRob25pYyBgYGNsc2BgLgorICBT
aW5jZSBpdCB3YXMgYWx3YXlzIHRoZSBmaXJzdCBhcmd1bWVudCwgaXQncyBkb3VidGZ1bCBhbnlv
bmUgZXZlciBjYWxsZWQgdGhvc2UgZnVuY3Rpb24gd2l0aCBpbiB0aGUga2V5d29yZCBmb3JtLgor
ICBJZiBzbywgc29ycnkgZm9yIGFueSBicmVha2FnZSBidXQgdGhlcmUncyBubyBwcmFjdGljYWwg
ZGVwcmVjYXRpb24gcGF0aCB0byBzb2x2ZSB0aGlzIHVnbHkgd2FydC4KKworCitEZXByZWNhdGlv
bnM6CiteXl5eXl5eXl5eXl5eCisKKy0gQWNjZXNzaW5nIGBgQXR0cmlidXRlYGAgaW5zdGFuY2Vz
IG9uIGNsYXNzIG9iamVjdHMgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3JraW5n
IGluIDIwMTcuCisgIElmIHlvdSBuZWVkIGludHJvc3BlY3Rpb24gcGxlYXNlIHVzZSB0aGUgYGBf
X2F0dHJzX2F0dHJzX19gYCBhdHRyaWJ1dGUgb3IgdGhlIGBgYXR0ci5maWVsZHMoKWBgIGZ1bmN0
aW9uIHRoYXQgY2FycnkgdGhlbSB0b28uCisgIEluIHRoZSBmdXR1cmUsIHRoZSBhdHRyaWJ1dGVz
IHRoYXQgYXJlIGRlZmluZWQgb24gdGhlIGNsYXNzIGJvZHkgYW5kIGFyZSB1c3VhbGx5IG92ZXJ3
cml0dGVuIGluIHlvdXIgYGBfX2luaXRfX2BgIG1ldGhvZCBhcmUgc2ltcGx5IHJlbW92ZWQgYWZ0
ZXIgYGBAYXR0ci5zYGAgaGFzIGJlZW4gYXBwbGllZC4KKworICBUaGlzIHdpbGwgcmVtb3ZlIHRo
ZSBjb25mdXNpbmcgZXJyb3IgbWVzc2FnZSBpZiB5b3Ugd3JpdGUgeW91ciBvd24gYGBfX2luaXRf
X2BgIGFuZCBmb3JnZXQgdG8gaW5pdGlhbGl6ZSBzb21lIGF0dHJpYnV0ZS4KKyAgSW5zdGVhZCB5
b3Ugd2lsbCBnZXQgYSBzdHJhaWdodGZvcndhcmQgYGBBdHRyaWJ1dGVFcnJvcmBgLgorICBJbiBv
dGhlciB3b3JkczogZGVjb3JhdGVkIGNsYXNzZXMgd2lsbCB3b3JrIG1vcmUgbGlrZSBwbGFpbiBQ
eXRob24gY2xhc3NlcyB3aGljaCB3YXMgYWx3YXlzIGBgYXR0cnNgYCdzIGdvYWwuCistIFRoZSBz
ZXJpb3VzIGJ1c2luZXNzIGFsaWFzZXMgYGBhdHRyLmF0dHJpYnV0ZXNgYCBhbmQgYGBhdHRyLmF0
dHJgYCBoYXZlIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgYGF0dHIuYXR0cnNgYCBhbmQg
YGBhdHRyLmF0dHJpYmBgIHdoaWNoIGFyZSBtdWNoIG1vcmUgY29uc2lzdGVudCBhbmQgZnJhbmts
eSBvYnZpb3VzIGluIGhpbmRzaWdodC4KKyAgVGhleSB3aWxsIGJlIHB1cmdlZCBmcm9tIGRvY3Vt
ZW50YXRpb24gaW1tZWRpYXRlbHkgYnV0IHRoZXJlIGFyZSBubyBwbGFucyB0byBhY3R1YWxseSBy
ZW1vdmUgdGhlbS4KKworCitDaGFuZ2VzOgorXl5eXl5eXl4KKworLSBgYGF0dHIuYXNkaWN0KClg
YFwgJ3MgYGBkaWN0X2ZhY3RvcnlgYCBhcmd1bWVudHMgaXMgbm93IHByb3BhZ2F0ZWQgb24gcmVj
dXJzaW9uLgorICBgIzQ1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lz
c3Vlcy80NT5gXworLSBgYGF0dHIuYXNkaWN0KClgYCwgYGBhdHRyLmhhcygpYGAgYW5kIGBgYXR0
ci5maWVsZHMoKWBgIGFyZSBzaWduaWZpY2FudGx5IGZhc3Rlci4KKyAgYCM0OCA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvNDg+YF8KKyAgYCM1MSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvNTE+YF8KKy0gQWRkIGBgYXR0
ci5hdHRyc2BgIGFuZCBgYGF0dHIuYXR0cmliYGAgYXMgYSBtb3JlIGNvbnNpc3RlbnQgYWxpYXNl
cyBmb3IgYGBhdHRyLnNgYCBhbmQgYGBhdHRyLmliYGAuCistIEFkZCBgYGZyb3plbmBgIG9wdGlv
biB0byBgYGF0dHIuc2BgIHRoYXQgd2lsbCBtYWtlIGluc3RhbmNlcyBiZXN0LWVmZm9ydCBpbW11
dGFibGUuCisgIGAjNjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNz
dWVzLzYwPmBfCistIGBgYXR0ci5hc2RpY3QoKWBgIG5vdyB0YWtlcyBgYHJldGFpbl9jb2xsZWN0
aW9uX3R5cGVzYGAgYXMgYW4gYXJndW1lbnQuCisgIElmIGBgVHJ1ZWBgLCBpdCBkb2VzIG5vdCBj
b252ZXJ0IGF0dHJpYnV0ZXMgb2YgdHlwZSBgYHR1cGxlYGAgb3IgYGBzZXRgYCB0byBgYGxpc3Rg
YC4KKyAgYCM2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMv
Njk+YF8KKworCistLS0tCisKKworMTYuMC4wICgyMDE2LTA1LTIzKQorLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXgorCistIFB5dGhvbiAzLjMgYW5kIDIuNiBhcmVuJ3Qgc3VwcG9ydGVkIGFu
eW1vcmUuCisgIFRoZXkgbWF5IHdvcmsgYnkgY2hhbmNlIGJ1dCBhbnkgZWZmb3J0IHRvIGtlZXAg
dGhlbSB3b3JraW5nIGhhcyBjZWFzZWQuCisKKyAgVGhlIGxhc3QgUHl0aG9uIDIuNiByZWxlYXNl
IHdhcyBvbiBPY3RvYmVyIDI5LCAyMDEzIGFuZCBpc24ndCBzdXBwb3J0ZWQgYnkgdGhlIENQeXRo
b24gY29yZSB0ZWFtIGFueW1vcmUuCisgIE1ham9yIFB5dGhvbiBwYWNrYWdlcyBsaWtlIERqYW5n
byBhbmQgVHdpc3RlZCBkcm9wcGVkIFB5dGhvbiAyLjYgYSB3aGlsZSBhZ28gYWxyZWFkeS4KKwor
ICBQeXRob24gMy4zIG5ldmVyIGhhZCBhIHNpZ25pZmljYW50IHVzZXIgYmFzZSBhbmQgd2Fzbid0
IHBhcnQgb2YgYW55IGRpc3RyaWJ1dGlvbidzIExUUyByZWxlYXNlLgorCitDaGFuZ2VzOgorXl5e
Xl5eXl4KKworLSBgYF9fc2xvdHNfX2BgIGhhdmUgYXJyaXZlZCEKKyAgQ2xhc3NlcyBub3cgY2Fu
IGF1dG9tYXRpY2FsbHkgYmUgYHNsb3RzIDxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVy
ZW5jZS9kYXRhbW9kZWwuaHRtbCNzbG90cz5gXy1zdHlsZSAoYW5kIHNhdmUgeW91ciBwcmVjaW91
cyBtZW1vcnkpIGp1c3QgYnkgcGFzc2luZyBgYHNsb3RzPVRydWVgYC4KKyAgYCMzNSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMzU+YF8KKy0gQWxsb3cgdGhl
IGNhc2Ugb2YgaW5pdGlhbGl6aW5nIGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2V0IHRvIGBgaW5pdD1G
YWxzZWBgLgorICBUaGlzIGFsbG93cyBmb3IgY2xlYW4gaW5pdGlhbGl6ZXIgcGFyYW1ldGVyIGxp
c3RzIHdoaWxlIGJlaW5nIGFibGUgdG8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIHRvIGRlZmF1bHQg
dmFsdWVzLgorICBgIzMyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lz
c3Vlcy8zMj5gXworLSBgYGF0dHIuYXNkaWN0KClgYCBjYW4gbm93IHByb2R1Y2UgYXJiaXRyYXJ5
IG1hcHBpbmdzIGluc3RlYWQgb2YgUHl0aG9uIGBgZGljdGBgXCBzIHdoZW4gcHJvdmlkZWQgd2l0
aCBhIGBgZGljdF9mYWN0b3J5YGAgYXJndW1lbnQuCisgIGAjNDAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzQwPmBfCistIE11bHRpcGxlIHBlcmZvcm1hbmNl
IGltcHJvdmVtZW50cy4KKworCistLS0tCisKKworMTUuMi4wICgyMDE1LTEyLTA4KQorLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzOgorXl5eXl5eXl4KKworLSBBZGRlZCBhIGBgY29udmVy
dGBgIGFyZ3VtZW50IHRvIGBgYXR0ci5pYmBgLCB3aGljaCBhbGxvd3Mgc3BlY2lmeWluZyBhIGZ1
bmN0aW9uIHRvIHJ1biBvbiBhcmd1bWVudHMuCisgIFRoaXMgYWxsb3dzIGZvciBzaW1wbGUgdHlw
ZSBjb252ZXJzaW9ucywgZS5nLiB3aXRoIGBgYXR0ci5pYihjb252ZXJ0PWludClgYC4KKyAgYCMy
NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjY+YF8KKy0g
U3BlZWQgdXAgb2JqZWN0IGNyZWF0aW9uIHdoZW4gYXR0cmlidXRlIHZhbGlkYXRvcnMgYXJlIHVz
ZWQuCisgIGAjMjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVz
LzI4PmBfCisKKworLS0tLQorCisKKzE1LjEuMCAoMjAxNS0wOC0yMCkKKy0tLS0tLS0tLS0tLS0t
LS0tLS0KKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gQWRkZWQgYGBhdHRyLnZhbGlkYXRvcnMu
b3B0aW9uYWwoKWBgIHRoYXQgd3JhcHMgb3RoZXIgdmFsaWRhdG9ycyBhbGxvd2luZyBhdHRyaWJ1
dGVzIHRvIGJlIGBgTm9uZWBgLgorICBgIzE2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0
dHJzL2F0dHJzL2lzc3Vlcy8xNj5gXworLSBNdWx0aS1sZXZlbCBpbmhlcml0YW5jZSBub3cgd29y
a3MuCisgIGAjMjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVz
LzI0PmBfCistIGBgX19yZXByX18oKWBgIG5vdyB3b3JrcyB3aXRoIG5vbi1yZWRlY29yYXRlZCBz
dWJjbGFzc2VzLgorICBgIzIwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2lzc3Vlcy8yMD5gXworCisKKy0tLS0KKworCisxNS4wLjAgKDIwMTUtMDQtMTUpCistLS0tLS0t
LS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6CiteXl5eXl5eXgorCitJbml0aWFsIHJlbGVhc2UuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NPREVfT0ZfQ09ORFVDVC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NP
REVfT0ZfQ09ORFVDVC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0YjhlZTljZDkyZTlkNDg5N2YxMDY4MmIy
N2JjOTBjZTlhNDI4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvQ09ERV9PRl9DT05E
VUNULnJzdApAQCAtMCwwICsxLDU1IEBACitDb250cmlidXRvciBDb3ZlbmFudCBDb2RlIG9mIENv
bmR1Y3QKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitPdXIgUGxlZGdl
CistLS0tLS0tLS0tCisKK0luIHRoZSBpbnRlcmVzdCBvZiBmb3N0ZXJpbmcgYW4gb3BlbiBhbmQg
d2VsY29taW5nIGVudmlyb25tZW50LCB3ZSBhcyBjb250cmlidXRvcnMgYW5kIG1haW50YWluZXJz
IHBsZWRnZSB0byBtYWtlIHBhcnRpY2lwYXRpb24gaW4gb3VyIHByb2plY3QgYW5kIG91ciBjb21t
dW5pdHkgYSBoYXJhc3NtZW50LWZyZWUgZXhwZXJpZW5jZSBmb3IgZXZlcnlvbmUsIHJlZ2FyZGxl
c3Mgb2YgYWdlLCBib2R5IHNpemUsIGRpc2FiaWxpdHksIGV0aG5pY2l0eSwgZ2VuZGVyIGlkZW50
aXR5IGFuZCBleHByZXNzaW9uLCBsZXZlbCBvZiBleHBlcmllbmNlLCBuYXRpb25hbGl0eSwgcGVy
c29uYWwgYXBwZWFyYW5jZSwgcmFjZSwgcmVsaWdpb24sIG9yIHNleHVhbCBpZGVudGl0eSBhbmQg
b3JpZW50YXRpb24uCisKK091ciBTdGFuZGFyZHMKKy0tLS0tLS0tLS0tLS0KKworRXhhbXBsZXMg
b2YgYmVoYXZpb3IgdGhhdCBjb250cmlidXRlcyB0byBjcmVhdGluZyBhIHBvc2l0aXZlIGVudmly
b25tZW50IGluY2x1ZGU6CisKKyogVXNpbmcgd2VsY29taW5nIGFuZCBpbmNsdXNpdmUgbGFuZ3Vh
Z2UKKyogQmVpbmcgcmVzcGVjdGZ1bCBvZiBkaWZmZXJpbmcgdmlld3BvaW50cyBhbmQgZXhwZXJp
ZW5jZXMKKyogR3JhY2VmdWxseSBhY2NlcHRpbmcgY29uc3RydWN0aXZlIGNyaXRpY2lzbQorKiBG
b2N1c2luZyBvbiB3aGF0IGlzIGJlc3QgZm9yIHRoZSBjb21tdW5pdHkKKyogU2hvd2luZyBlbXBh
dGh5IHRvd2FyZHMgb3RoZXIgY29tbXVuaXR5IG1lbWJlcnMKKworRXhhbXBsZXMgb2YgdW5hY2Nl
cHRhYmxlIGJlaGF2aW9yIGJ5IHBhcnRpY2lwYW50cyBpbmNsdWRlOgorCisqIFRoZSB1c2Ugb2Yg
c2V4dWFsaXplZCBsYW5ndWFnZSBvciBpbWFnZXJ5IGFuZCB1bndlbGNvbWUgc2V4dWFsIGF0dGVu
dGlvbiBvciBhZHZhbmNlcworKiBUcm9sbGluZywgaW5zdWx0aW5nL2Rlcm9nYXRvcnkgY29tbWVu
dHMsIGFuZCBwZXJzb25hbCBvciBwb2xpdGljYWwgYXR0YWNrcworKiBQdWJsaWMgb3IgcHJpdmF0
ZSBoYXJhc3NtZW50CisqIFB1Ymxpc2hpbmcgb3RoZXJzJyBwcml2YXRlIGluZm9ybWF0aW9uLCBz
dWNoIGFzIGEgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBhZGRyZXNzLCB3aXRob3V0IGV4cGxpY2l0
IHBlcm1pc3Npb24KKyogT3RoZXIgY29uZHVjdCB3aGljaCBjb3VsZCByZWFzb25hYmx5IGJlIGNv
bnNpZGVyZWQgaW5hcHByb3ByaWF0ZSBpbiBhIHByb2Zlc3Npb25hbCBzZXR0aW5nCisKK091ciBS
ZXNwb25zaWJpbGl0aWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitQcm9qZWN0IG1haW50YWlu
ZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgY2xhcmlmeWluZyB0aGUgc3RhbmRhcmRzIG9mIGFjY2Vw
dGFibGUgYmVoYXZpb3IgYW5kIGFyZSBleHBlY3RlZCB0byB0YWtlIGFwcHJvcHJpYXRlIGFuZCBm
YWlyIGNvcnJlY3RpdmUgYWN0aW9uIGluIHJlc3BvbnNlIHRvIGFueSBpbnN0YW5jZXMgb2YgdW5h
Y2NlcHRhYmxlIGJlaGF2aW9yLgorCitQcm9qZWN0IG1haW50YWluZXJzIGhhdmUgdGhlIHJpZ2h0
IGFuZCByZXNwb25zaWJpbGl0eSB0byByZW1vdmUsIGVkaXQsIG9yIHJlamVjdCBjb21tZW50cywg
Y29tbWl0cywgY29kZSwgd2lraSBlZGl0cywgaXNzdWVzLCBhbmQgb3RoZXIgY29udHJpYnV0aW9u
cyB0aGF0IGFyZSBub3QgYWxpZ25lZCB0byB0aGlzIENvZGUgb2YgQ29uZHVjdCwgb3IgdG8gYmFu
IHRlbXBvcmFyaWx5IG9yIHBlcm1hbmVudGx5IGFueSBjb250cmlidXRvciBmb3Igb3RoZXIgYmVo
YXZpb3JzIHRoYXQgdGhleSBkZWVtIGluYXBwcm9wcmlhdGUsIHRocmVhdGVuaW5nLCBvZmZlbnNp
dmUsIG9yIGhhcm1mdWwuCisKK1Njb3BlCistLS0tLQorCitUaGlzIENvZGUgb2YgQ29uZHVjdCBh
cHBsaWVzIGJvdGggd2l0aGluIHByb2plY3Qgc3BhY2VzIGFuZCBpbiBwdWJsaWMgc3BhY2VzIHdo
ZW4gYW4gaW5kaXZpZHVhbCBpcyByZXByZXNlbnRpbmcgdGhlIHByb2plY3Qgb3IgaXRzIGNvbW11
bml0eS4KK0V4YW1wbGVzIG9mIHJlcHJlc2VudGluZyBhIHByb2plY3Qgb3IgY29tbXVuaXR5IGlu
Y2x1ZGUgdXNpbmcgYW4gb2ZmaWNpYWwgcHJvamVjdCBlLW1haWwgYWRkcmVzcywgcG9zdGluZyB2
aWEgYW4gb2ZmaWNpYWwgc29jaWFsIG1lZGlhIGFjY291bnQsIG9yIGFjdGluZyBhcyBhbiBhcHBv
aW50ZWQgcmVwcmVzZW50YXRpdmUgYXQgYW4gb25saW5lIG9yIG9mZmxpbmUgZXZlbnQuCitSZXBy
ZXNlbnRhdGlvbiBvZiBhIHByb2plY3QgbWF5IGJlIGZ1cnRoZXIgZGVmaW5lZCBhbmQgY2xhcmlm
aWVkIGJ5IHByb2plY3QgbWFpbnRhaW5lcnMuCisKK0VuZm9yY2VtZW50CistLS0tLS0tLS0tLQor
CitJbnN0YW5jZXMgb2YgYWJ1c2l2ZSwgaGFyYXNzaW5nLCBvciBvdGhlcndpc2UgdW5hY2NlcHRh
YmxlIGJlaGF2aW9yIG1heSBiZSByZXBvcnRlZCBieSBjb250YWN0aW5nIHRoZSBwcm9qZWN0IHRl
YW0gYXQgaHNAb3guY3guCitBbGwgY29tcGxhaW50cyB3aWxsIGJlIHJldmlld2VkIGFuZCBpbnZl
c3RpZ2F0ZWQgYW5kIHdpbGwgcmVzdWx0IGluIGEgcmVzcG9uc2UgdGhhdCBpcyBkZWVtZWQgbmVj
ZXNzYXJ5IGFuZCBhcHByb3ByaWF0ZSB0byB0aGUgY2lyY3Vtc3RhbmNlcy4KK1RoZSBwcm9qZWN0
IHRlYW0gaXMgb2JsaWdhdGVkIHRvIG1haW50YWluIGNvbmZpZGVudGlhbGl0eSB3aXRoIHJlZ2Fy
ZCB0byB0aGUgcmVwb3J0ZXIgb2YgYW4gaW5jaWRlbnQuCitGdXJ0aGVyIGRldGFpbHMgb2Ygc3Bl
Y2lmaWMgZW5mb3JjZW1lbnQgcG9saWNpZXMgbWF5IGJlIHBvc3RlZCBzZXBhcmF0ZWx5LgorCitQ
cm9qZWN0IG1haW50YWluZXJzIHdobyBkbyBub3QgZm9sbG93IG9yIGVuZm9yY2UgdGhlIENvZGUg
b2YgQ29uZHVjdCBpbiBnb29kIGZhaXRoIG1heSBmYWNlIHRlbXBvcmFyeSBvciBwZXJtYW5lbnQg
cmVwZXJjdXNzaW9ucyBhcyBkZXRlcm1pbmVkIGJ5IG90aGVyIG1lbWJlcnMgb2YgdGhlIHByb2pl
Y3QncyBsZWFkZXJzaGlwLgorCitBdHRyaWJ1dGlvbgorLS0tLS0tLS0tLS0KKworVGhpcyBDb2Rl
IG9mIENvbmR1Y3QgaXMgYWRhcHRlZCBmcm9tIHRoZSBgQ29udHJpYnV0b3IgQ292ZW5hbnQgPGh0
dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmc+YF8sIHZlcnNpb24gMS40LCBhdmFpbGFibGUg
YXQgaHR0cDovL2NvbnRyaWJ1dG9yLWNvdmVuYW50Lm9yZy92ZXJzaW9uLzEvNC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvQ09OVFJJQlVUSU5HLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvQ09OVFJJQlVUSU5H
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ODIyZjg5MjZhODc3ZjA3NTEwN2I2MWViMWVhY2ZlNDNmOTEyMDQ3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9DT05UUklCVVRJTkcucnN0CkBAIC0wLDAg
KzEsMjIwIEBACitIb3cgVG8gQ29udHJpYnV0ZQorPT09PT09PT09PT09PT09PT0KKworRmlyc3Qg
b2ZmLCB0aGFuayB5b3UgZm9yIGNvbnNpZGVyaW5nIGNvbnRyaWJ1dGluZyB0byBgYGF0dHJzYGAh
CitJdCdzIHBlb3BsZSBsaWtlICp5b3UqIHdobyBtYWtlIGl0IGlzIHN1Y2ggYSBncmVhdCB0b29s
IGZvciBldmVyeW9uZS4KKworVGhpcyBkb2N1bWVudCBpcyBtYWlubHkgdG8gaGVscCB5b3UgdG8g
Z2V0IHN0YXJ0ZWQgYnkgY29kaWZ5aW5nIHRyaWJhbCBrbm93bGVkZ2UgYW5kIGV4cGVjdGF0aW9u
cyBhbmQgbWFrZSBpdCBtb3JlIGFjY2Vzc2libGUgdG8gZXZlcnlvbmUuCitCdXQgZG9uJ3QgYmUg
YWZyYWlkIHRvIG9wZW4gaGFsZi1maW5pc2hlZCBQUnMgYW5kIGFzayBxdWVzdGlvbnMgaWYgc29t
ZXRoaW5nIGlzIHVuY2xlYXIhCisKKworU3VwcG9ydAorLS0tLS0tLQorCitJbiBjYXNlIHlvdSdk
IGxpa2UgdG8gaGVscCBvdXQgYnV0IGRvbid0IHdhbnQgdG8gZGVhbCB3aXRoIEdpdEh1YiwgdGhl
cmUncyBhIGdyZWF0IG9wcG9ydHVuaXR5OgoraGVscCB5b3VyIGZlbGxvdyBkZXZlbG9wZXJzIG9u
IGBTdGFja092ZXJmbG93IDxodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdn
ZWQvcHl0aG9uLWF0dHJzPmBfIQorCitUaGUgb2ZmaWNhbCB0YWcgaXMgYGBweXRob24tYXR0cnNg
YCBhbmQgaGVscGluZyBvdXQgaW4gc3VwcG9ydCBmcmVlcyB1cyB1cCBmb3IgaW1wcm92aW5nIGBg
YXR0cnNgYCBpbnN0ZWFkIQorCisKK1dvcmtmbG93CistLS0tLS0tLQorCistIE5vIGNvbnRyaWJ1
dGlvbiBpcyB0b28gc21hbGwhCisgIFBsZWFzZSBzdWJtaXQgYXMgbWFueSBmaXhlcyBmb3IgdHlw
b3MgYW5kIGdyYW1tYXIgYmxvb3BlcnMgYXMgeW91IGNhbiEKKy0gVHJ5IHRvIGxpbWl0IGVhY2gg
cHVsbCByZXF1ZXN0IHRvICpvbmUqIGNoYW5nZSBvbmx5LgorLSAqQWx3YXlzKiBhZGQgdGVzdHMg
YW5kIGRvY3MgZm9yIHlvdXIgY29kZS4KKyAgVGhpcyBpcyBhIGhhcmQgcnVsZTsgcGF0Y2hlcyB3
aXRoIG1pc3NpbmcgdGVzdHMgb3IgZG9jdW1lbnRhdGlvbiBjYW4ndCBiZSBtZXJnZWQuCistIE1h
a2Ugc3VyZSB5b3VyIGNoYW5nZXMgcGFzcyBvdXIgQ0lfLgorICBZb3Ugd29uJ3QgZ2V0IGFueSBm
ZWVkYmFjayB1bnRpbCBpdCdzIGdyZWVuIHVubGVzcyB5b3UgYXNrIGZvciBpdC4KKy0gT25jZSB5
b3UndmUgYWRkcmVzc2VkIHJldmlldyBmZWVkYmFjaywgbWFrZSBzdXJlIHRvIGJ1bXAgdGhlIHB1
bGwgcmVxdWVzdCB3aXRoIGEgc2hvcnQgbm90ZSwgc28gd2Uga25vdyB5b3UncmUgZG9uZS4KKy0g
RG9u4oCZdCBicmVhayBgYmFja3dhcmQgY29tcGF0aWJpbGl0eWBfLgorCisKK0NvZGUKKy0tLS0K
KworLSBPYmV5IGBQRVAgOGBfIGFuZCBgUEVQIDI1N2BfLgorICBXZSB1c2UgdGhlIGBgIiIiYGBc
IC1vbi1zZXBhcmF0ZS1saW5lcyBzdHlsZSBmb3IgZG9jc3RyaW5nczoKKworICAuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCisKKyAgICAgZGVmIGZ1bmMoeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg
IERvIHNvbWV0aGluZy4KKworICAgICAgICAgOnBhcmFtIHN0ciB4OiBBIHZlcnkgaW1wb3J0YW50
IHBhcmFtZXRlci4KKworICAgICAgICAgOnJ0eXBlOiBzdHIKKyAgICAgICAgICIiIgorLSBJZiB5
b3UgYWRkIG9yIGNoYW5nZSBwdWJsaWMgQVBJcywgdGFnIHRoZSBkb2NzdHJpbmcgdXNpbmcgYGAu
LiAgdmVyc2lvbmFkZGVkOjogMTYuMC4wIFdIQVRgYCBvciBgYC4uICB2ZXJzaW9uY2hhbmdlZDo6
IDE2LjIuMCBXSEFUYGAuCistIFByZWZlciBkb3VibGUgcXVvdGVzIChgYCJgYCkgb3ZlciBzaW5n
bGUgcXVvdGVzIChgYCdgYCkgdW5sZXNzIHRoZSBzdHJpbmcgY29udGFpbnMgZG91YmxlIHF1b3Rl
cyBpdHNlbGYuCisKKworVGVzdHMKKy0tLS0tCisKKy0gV3JpdGUgeW91ciBhc3NlcnRzIGFzIGBg
ZXhwZWN0ZWQgPT0gYWN0dWFsYGAgdG8gbGluZSB0aGVtIHVwIG5pY2VseToKKworICAuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICAgeCA9IGYoKQorCisgICAgIGFzc2VydCA0MiA9PSB4LnNv
bWVfYXR0cmlidXRlCisgICAgIGFzc2VydCAiZm9vIiA9PSB4Ll9hX3ByaXZhdGVfYXR0cmlidXRl
CisKKy0gVG8gcnVuIHRoZSB0ZXN0IHN1aXRlLCBhbGwgeW91IG5lZWQgaXMgYSByZWNlbnQgdG94
Xy4KKyAgSXQgd2lsbCBlbnN1cmUgdGhlIHRlc3Qgc3VpdGUgcnVucyB3aXRoIGFsbCBkZXBlbmRl
bmNpZXMgYWdhaW5zdCBhbGwgUHl0aG9uIHZlcnNpb25zIGp1c3QgYXMgaXQgd2lsbCBvbiBUcmF2
aXMgQ0kuCisgIElmIHlvdSBsYWNrIHNvbWUgUHl0aG9uIHZlcnNpb25zLCB5b3UgY2FuIGNhbiBh
bHdheXMgbGltaXQgdGhlIGVudmlyb25tZW50cyBsaWtlIGBgdG94IC1lIHB5MjcscHkzNWBgIChp
biB0aGF0IGNhc2UgeW91IG1heSB3YW50IHRvIGxvb2sgaW50byBweWVudl8sIHdoaWNoIG1ha2Vz
IGl0IHZlcnkgZWFzeSB0byBpbnN0YWxsIG1hbnkgZGlmZmVyZW50IFB5dGhvbiB2ZXJzaW9ucyBp
biBwYXJhbGxlbCkuCistIFdyaXRlIGBnb29kIHRlc3QgZG9jc3RyaW5nc2BfLgorLSBUbyBlbnN1
cmUgbmV3IGZlYXR1cmVzIHdvcmsgd2VsbCB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHRo
ZXkgc2hvdWxkIGJlIGFsc28gYWRkZWQgdG8gb3VyIGBIeXBvdGhlc2lzYF8gdGVzdGluZyBzdHJh
dGVneSB3aGljaCB5b3UgZmluZCBpbiBgYHRlc3RzL3V0aWwucHlgYC4KKworCitEb2N1bWVudGF0
aW9uCistLS0tLS0tLS0tLS0tCisKKy0gVXNlIGBzZW1hbnRpYyBuZXdsaW5lc2BfIGluIHJlU3Ry
dWN0dXJlZFRleHRfIGZpbGVzIChmaWxlcyBlbmRpbmcgaW4gYGAucnN0YGApOgorCisgIC4uIGNv
ZGUtYmxvY2s6OiByc3QKKworICAgICBUaGlzIGlzIGEgc2VudGVuY2UuCisgICAgIFRoaXMgaXMg
YW5vdGhlciBzZW50ZW5jZS4KKworLSBJZiB5b3Ugc3RhcnQgYSBuZXcgc2VjdGlvbiwgYWRkIHR3
byBibGFuayBsaW5lcyBiZWZvcmUgYW5kIG9uZSBibGFuayBsaW5lIGFmdGVyIHRoZSBoZWFkZXIg
ZXhjZXB0IGlmIHR3byBoZWFkZXJzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciBlYWNoIG90aGVy
OgorCisgIC4uIGNvZGUtYmxvY2s6OiByc3QKKworICAgICBMYXN0IGxpbmUgb2YgcHJldmlvdXMg
c2VjdGlvbi4KKworCisgICAgIEhlYWRlciBvZiBOZXcgVG9wIFNlY3Rpb24KKyAgICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgIEhlYWRlciBvZiBOZXcgU2VjdGlvbgorICAgICBe
Xl5eXl5eXl5eXl5eXl5eXl5eXl4KKworICAgICBGaXJzdCBsaW5lIG9mIG5ldyBzZWN0aW9uLgor
LSBJZiB5b3UgYWRkIGEgbmV3IGZlYXR1cmUsIGRlbW9uc3RyYXRlIGl0cyBhd2Vzb21lbmVzcyBp
biB0aGUgYGV4YW1wbGVzIHBhZ2VgXyEKKworCitDaGFuZ2Vsb2cKK15eXl5eXl5eXgorCitJZiB5
b3VyIGNoYW5nZSBpcyBub3Rld29ydGh5LCB0aGVyZSBuZWVkcyB0byBiZSBhIGNoYW5nZWxvZyBl
bnRyeSwgc28gb3VyIHVzZXJzIGNhbiBsZWFybiBhYm91dCBpdCEKKworVG8gYXZvaWQgbWVyZ2Ug
Y29uZmxpY3RzLCB3ZSB1c2UgdGhlIHRvd25jcmllcl8gcGFja2FnZSB0byBtYW5hZ2Ugb3VyIGNo
YW5nZWxvZy4KK2BgdG93bmNyaWVyYGAgdXNlcyBpbmRlcGVuZGVudCBmaWxlcyBmb3IgZWFjaCBw
dWxsIHJlcXVlc3QgLS0gc28gY2FsbGVkICpuZXdzIGZyYWdtZW50cyogLS0gaW5zdGVhZCBvZiBv
bmUgbW9ub2xpdGhpYyBjaGFuZ2Vsb2cgZmlsZS4KK09uIHJlbGVhc2UgdGhvc2UgbmV3cyBmcmFn
bWVudHMgYXJlIGNvbXBpbGVkIGludG8gb3VyIGBgQ0hBTkdFTE9HLnJzdGBgLgorCitZb3UgZG9u
J3QgbmVlZCB0byBpbnN0YWxsIGBgdG93bmNyaWVyYGAgeW91cnNlbGYsIHlvdSBqdXN0IGhhdmUg
dG8gYWJpZGUgdG8gYSBmZXcgc2ltcGxlIHJ1bGVzOgorCistIEZvciBlYWNoIHB1bGwgcmVxdWVz
dCwgYWRkIGEgbmV3IGZpbGUgaW50byBgYGNoYW5nZWxvZy5kYGAgd2l0aCBhIGZpbGVuYW1lIGFk
aGVyaW5nIHRvIHRoZSBgYHByIy4oY2hhbmdlfGRlcHJlY2F0aW9ufGJyZWFraW5nKS5yc3RgYCBz
Y2hlbWE6CisgIEZvciBleGFtcGxlIGBgY2hhbmdlbG9nLmQvNDIuY2hhbmdlLnJzdGBgIGZvciBh
IG5vbi1icmVha2luZyBjaGFuZ2UsIHRoYXQgaXMgcHJvcG9zZWQgaW4gcHVsbCByZXF1ZXN0IG51
bWJlciA0Mi4KKy0gQXMgd2l0aCBvdGhlciBkb2NzLCBwbGVhc2UgdXNlIGBzZW1hbnRpYyBuZXds
aW5lc2BfIHdpdGhpbiBuZXdzIGZyYWdtZW50cy4KKy0gV3JhcCBzeW1ib2xzIGxpa2UgbW9kdWxl
cywgZnVuY3Rpb25zLCBvciBjbGFzc2VzIGludG8gZG91YmxlIGJhY2t0aWNrcyBzbyB0aGV5IGFy
ZSByZW5kZXJlZCBpbiBhIG1vbm9zcGFjZWQgZm9udC4KKy0gSWYgeW91IG1lbnRpb24gZnVuY3Rp
b25zIG9yIG90aGVyIGNhbGxhYmxlcywgYWRkIHBhcmFudGhlc2VzIGF0IHRoZSBlbmQgb2YgdGhl
aXIgbmFtZXM6IGBgYXR0ci5mdW5jKClgYCBvciBgYGF0dHIuQ2xhc3MubWV0aG9kKClgYC4KKyAg
VGhpcyBtYWtlcyB0aGUgY2hhbmdlbG9nIGEgbG90IG1vcmUgcmVhZGFibGUuCistIFByZWZlciBz
aW1wbGUgcGFzdCBvciBjb25zdHJ1Y3Rpb25zIHdpdGggIm5vdyIuCisgIEZvciBleGFtcGxlOgor
CisgICsgQWRkZWQgYGBhdHRyLnZhbGlkYXRvcnMuZnVuYygpYGAuCisgICsgYGBhdHRyLmZ1bmMo
KWBgIG5vdyBkb2Vzbid0IGNyYXNoIHRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgYW55bW9yZS4K
Ky0gSWYgeW91IHdhbnQgdG8gcmVmZXJlbmNlIG11bHRpcGxlIGlzc3VlcywgY29weSB0aGUgbmV3
cyBmcmFnbWVudCB0byBhbm90aGVyIGZpbGVuYW1lLgorICBgYHRvd25jcmllcmBgIHdpbGwgbWVy
Z2UgYWxsIG5ld3MgZnJhZ21lbnRzIHdpdGggaWRlbnRpY2FsIGNvbnRlbnRzIGludG8gb25lIGVu
dHJ5IHdpdGggbXVsdGlwbGUgbGlua3MgdG8gdGhlIHJlc3BlY3RpdmUgcHVsbCByZXF1ZXN0cy4K
KworRXhhbXBsZSBlbnRyaWVzOgorCisgIC4uIGNvZGUtYmxvY2s6OiByc3QKKworICAgICBBZGRl
ZCBgYGF0dHIudmFsaWRhdG9ycy5mdW5jKClgYC4KKyAgICAgVGhlIGZlYXR1cmUgcmVhbGx5ICpp
cyogYXdlc29tZS4KKworb3I6CisKKyAgLi4gY29kZS1ibG9jazo6IHJzdAorCisgICAgIGBgYXR0
ci5mdW5jKClgYCBub3cgZG9lc24ndCBjcmFzaCB0aGUgTGFyZ2UgSGFkcm9uIENvbGxpZGVyIGFu
eW1vcmUuCisgICAgIFRoZSBidWcgcmVhbGx5ICp3YXMqIG5hc3R5LgorCistLS0tCisKK2BgdG94
IC1lIGNoYW5nZWxvZ2BgIHdpbGwgcmVuZGVyIHRoZSBjdXJyZW50IGNoYW5nZWxvZyB0byB0aGUg
dGVybWluYWwgaWYgeW91IGhhdmUgYW55IGRvdWJ0cy4KKworCitMb2NhbCBEZXZlbG9wbWVudCBF
bnZpcm9ubWVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiAoYW5k
IHNob3VsZCkgcnVuIG91ciB0ZXN0IHN1aXRlIHVzaW5nIHRveF8uCitIb3dldmVyIHlvdeKAmWxs
IHByb2JhYmx5IHdhbnQgYSBtb3JlIHRyYWRpdGlvbmFsIGVudmlyb25tZW50IHRvby4KK1dlIGhp
Z2hseSByZWNvbW1lbmQgdG8gZGV2ZWxvcCB1c2luZyB0aGUgbGF0ZXN0IFB5dGhvbiAzIHJlbGVh
c2UgYmVjYXVzZSBgYGF0dHJzYGAgdHJpZXMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgbW9kZXJuIGZl
YXR1cmVzIHdoZW5ldmVyIHBvc3NpYmxlLgorCitGaXJzdCBjcmVhdGUgYSBgdmlydHVhbCBlbnZp
cm9ubWVudCA8aHR0cHM6Ly92aXJ0dWFsZW52LnB5cGEuaW8vPmBfLgorSXTigJlzIG91dCBvZiBz
Y29wZSBmb3IgdGhpcyBkb2N1bWVudCB0byBsaXN0IGFsbCB0aGUgd2F5cyB0byBtYW5hZ2Ugdmly
dHVhbCBlbnZpcm9ubWVudHMgaW4gUHl0aG9uIGJ1dCBpZiB5b3UgZG9u4oCZdCBoYXZlIGFscmVh
ZHkgYSBwZXQgd2F5LCB0YWtlIHNvbWUgdGltZSB0byBsb29rIGF0IHRvb2xzIGxpa2UgYHBldyA8
aHR0cHM6Ly9naXRodWIuY29tL2JlcmRhcmlvL3Bldz5gXywgYHZpcnR1YWxmaXNoIDxodHRwOi8v
dmlydHVhbGZpc2gucmVhZHRoZWRvY3MuaW8vPmBfLCBhbmQgYHZpcnR1YWxlbnZ3cmFwcGVyIDxo
dHRwOi8vdmlydHVhbGVudndyYXBwZXIucmVhZHRoZWRvY3MuaW8vPmBfLgorCitOZXh0IGdldCBh
biB1cCB0byBkYXRlIGNoZWNrb3V0IG9mIHRoZSBgYGF0dHJzYGAgcmVwb3NpdG9yeToKKworLi4g
Y29kZS1ibG9jazo6IGJhc2gKKworICAgIGdpdCBjaGVja291dCBnaXRAZ2l0aHViLmNvbTpweXRo
b24tYXR0cnMvYXR0cnMuZ2l0CisKK0NoYW5nZSBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIGRpcmVj
dG9yeSBhbmQgKiphZnRlciBhY3RpdmF0aW5nIHlvdXIgdmlydHVhbCBlbnZpcm9ubWVudCoqIGlu
c3RhbGwgYW4gZWRpdGFibGUgdmVyc2lvbiBvZiBgYGF0dHJzYGA6CisKKy4uIGNvZGUtYmxvY2s6
OiBiYXNoCisKKyAgICBjZCBhdHRycworICAgIHBpcCBpbnN0YWxsIC1lIC4KKworSWYgeW91IHJ1
biB0aGUgdmlydHVhbCBlbnZpcm9ubWVudOKAmXMgUHl0aG9uIGFuZCB0cnkgdG8gYGBpbXBvcnQg
YXR0cmBgIGl0IHNob3VsZCB3b3JrIQorCitUbyBydW4gdGhlIHRlc3Qgc3VpdGUsIHlvdSdsbCBu
ZWVkIG91ciBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMgd2hpY2ggY2FuIGJlIGluc3RhbGxlZCB1
c2luZworCisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAgcGlwIGluc3RhbGwgLXIgZGV2LXJl
cXVpcmVtZW50cy50eHQKKworQXQgdGhpcyBwb2ludAorCisuLiBjb2RlLWJsb2NrOjogYmFzaAor
CisgICBweXRob24gLW0gcHl0ZXN0CisKK3Nob3VsZCB3b3JrIGFuZCBwYXNzIQorCisKK0dvdmVy
bmFuY2UKKy0tLS0tLS0tLS0KKworYGBhdHRyc2BgIGlzIG1haW50YWluZWQgYnkgYHRlYW0gb2Yg
dm9sdW50ZWVyc2BfIHRoYXQgaXMgYWx3YXlzIG9wZW4gZm9yIG5ldyBtZW1iZXJzIHRoYXQgc2hh
cmUgb3VyIHZpc2lvbiBvZiBhIGZhc3QsIGxlYW4sIGFuZCBtYWdpYy1mcmVlIGxpYnJhcnkgdGhh
dCBlbXBvd2VycyBwcm9ncmFtbWVycyB0byB3cml0ZSBiZXR0ZXIgY29kZSB3aXRoIGxlc3MgZWZm
b3J0LgorSWYgeW91J2QgbGlrZSB0byBqb2luLCBqdXN0IGdldCBhIHB1bGwgcmVxdWVzdCBtZXJn
ZWQgYW5kIGFzayB0byBiZSBhZGRlZCBpbiB0aGUgdmVyeSBzYW1lIHB1bGwgcmVxdWVzdCEKKwor
KipUaGUgc2ltcGxlIHJ1bGUgaXMgdGhhdCBldmVyeW9uZSBpcyB3ZWxjb21lIHRvIHJldmlldy9t
ZXJnZSBwdWxsIHJlcXVlc3RzIG9mIG90aGVycyBidXQgbm9ib2R5IGlzIGFsbG93ZWQgdG8gbWVy
Z2UgdGhlaXIgb3duIGNvZGUuKioKKworYEh5bmVrIFNjaGxhd2Fja2BfIGFjdHMgcmVsdWN0YW50
bHkgYXMgdGhlIEJERkxfIGFuZCBoYXMgdGhlIGZpbmFsIHNheSBvdmVyIGRlc2lnbiBkZWNpc2lv
bnMuCisKKworKioqKgorCitQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgcHJvamVjdCBpcyByZWxlYXNl
ZCB3aXRoIGEgQ29udHJpYnV0b3IgYENvZGUgb2YgQ29uZHVjdGBfLgorQnkgcGFydGljaXBhdGlu
ZyBpbiB0aGlzIHByb2plY3QgeW91IGFncmVlIHRvIGFiaWRlIGJ5IGl0cyB0ZXJtcy4KK1BsZWFz
ZSByZXBvcnQgYW55IGhhcm0gdG8gYEh5bmVrIFNjaGxhd2Fja2BfIGluIGFueSB3YXkgeW91IGZp
bmQgYXBwcm9wcmlhdGUuCisKK1RoYW5rIHlvdSBmb3IgY29uc2lkZXJpbmcgY29udHJpYnV0aW5n
IHRvIGBgYXR0cnNgYCEKKworCisuLiBfYEh5bmVrIFNjaGxhd2Fja2A6IGh0dHBzOi8vaHluZWsu
bWUvYWJvdXQvCisuLiBfYFBFUCA4YDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9w
ZXAtMDAwOC8KKy4uIF9gUEVQIDI1N2A6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMv
cGVwLTAyNTcvCisuLiBfYGdvb2QgdGVzdCBkb2NzdHJpbmdzYDogaHR0cHM6Ly9qbWwuaW8vcGFn
ZXMvdGVzdC1kb2NzdHJpbmdzLmh0bWwKKy4uIF9gQ29kZSBvZiBDb25kdWN0YDogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9ibG9iL21hc3Rlci9DT0RFX09GX0NPTkRVQ1Qu
cnN0CisuLiBfY2hhbmdlbG9nOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5yc3QKKy4uIF9gYmFja3dhcmQgY29tcGF0aWJpbGl0eWA6
IGh0dHA6Ly93d3cuYXR0cnMub3JnL2VuL2xhdGVzdC9iYWNrd2FyZC1jb21wYXRpYmlsaXR5Lmh0
bWwKKy4uIF90b3g6IGh0dHBzOi8vdG94LnJlYWR0aGVkb2NzLmlvLworLi4gX3B5ZW52OiBodHRw
czovL2dpdGh1Yi5jb20vcHllbnYvcHllbnYKKy4uIF9yZVN0cnVjdHVyZWRUZXh0OiBodHRwOi8v
d3d3LnNwaGlueC1kb2Mub3JnL2VuL3N0YWJsZS9yZXN0Lmh0bWwKKy4uIF9zZW1hbnRpYyBuZXds
aW5lczogaHR0cDovL3Job2Rlc21pbGwub3JnL2JyYW5kb24vMjAxMi9vbmUtc2VudGVuY2UtcGVy
LWxpbmUvCisuLiBfZXhhbXBsZXMgcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRy
cy9hdHRycy9ibG9iL21hc3Rlci9kb2NzL2V4YW1wbGVzLnJzdAorLi4gX0h5cG90aGVzaXM6IGh0
dHBzOi8vaHlwb3RoZXNpcy5yZWFkdGhlZG9jcy5pby8KKy4uIF9DSTogaHR0cHM6Ly90cmF2aXMt
Y2kub3JnL3B5dGhvbi1hdHRycy9hdHRycy8KKy4uIF9gdGVhbSBvZiB2b2x1bnRlZXJzYDogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycworLi4gX0JERkw6IGh0dHBzOi8vZW4ud2lraXBl
ZGlhLm9yZy93aWtpL0JlbmV2b2xlbnRfZGljdGF0b3JfZm9yX2xpZmUKKy4uIF90b3duY3JpZXI6
IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC90b3duY3JpZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvTElDRU5TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWUzZGY5MzA5NzZi
ZDAxZDM0MDQxYjFjN2NlZWI0YjMyYWFjZThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9MSUNFTlNFCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSBNSVQgTGljZW5zZSAoTUlUKQorCitDb3B5
cmlnaHQgKGMpIDIwMTUgSHluZWsgU2NobGF3YWNrCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdy
YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1v
ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs
Citjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0
aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lN
UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg
QVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg
T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvTUFOSUZFU1QuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDNhOTQ4ZWYyYzRhNGE0MjAwZDVhYjJkYWVjNDYyZTI5NjIwMWNhYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwxOSBAQAoraW5jbHVk
ZSBMSUNFTlNFICoucnN0ICoudG9tbAorCisjIERvbid0IHBhY2thZ2UgR2l0SHViLXNwZWNpZmlj
IGZpbGVzLgorZXhjbHVkZSAqLm1kIC50cmF2aXMueW1sCisKKyMgVGVzdHMKK2luY2x1ZGUgdG94
LmluaSAuY292ZXJhZ2VyYyBjb25mdGVzdC5weSBkZXYtcmVxdWlyZW1lbnRzLnR4dCBkb2NzLXJl
cXVpcmVtZW50cy50eHQKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3RzICoucHkKKworIyBEb2N1bWVu
dGF0aW9uCitpbmNsdWRlIGRvY3MvTWFrZWZpbGUgZG9jcy9kb2N1dGlscy5jb25mCityZWN1cnNp
dmUtaW5jbHVkZSBkb2NzICoucG5nCityZWN1cnNpdmUtaW5jbHVkZSBkb2NzICouc3ZnCityZWN1
cnNpdmUtaW5jbHVkZSBkb2NzICoucHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIGRvY3MgKi5yc3QKK3By
dW5lIGRvY3MvX2J1aWxkCisKKyMgQ2hhbmdlbG9nIG5ld3MgZnJhZ21lbnRzIC0tIGlzIGVtcHR5
IG9uIHJlbGVhc2VzLgorcHJ1bmUgY2hhbmdlbG9nLmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
UFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9QVUxMX1JFUVVFU1RfVEVNUExB
VEUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzRjNDY4ZTZhZTU0MzUxNzhjN2RjOTFiZjYzZDhiM2Q1MjU1MDU1
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1k
CkBAIC0wLDAgKzEsMTIgQEAKKyMgUHVsbCBSZXF1ZXN0IENoZWNrIExpc3QKKworVGhpcyBpcyBq
dXN0IGEgcmVtaW5kZXIgYWJvdXQgdGhlIG1vc3QgY29tbW9uIG1pc3Rha2VzLiAgUGxlYXNlIG1h
a2Ugc3VyZSB0aGF0IHlvdSB0aWNrIGFsbCAqYXBwcm9wcmlhdGUqIGJveGVzLiAgQnV0IHBsZWFz
ZSByZWFkIG91ciBbY29udHJpYnV0aW9uIGd1aWRlXShodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9s
YXRlc3QvY29udHJpYnV0aW5nLmh0bWwpIGF0IGxlYXN0IG9uY2UsIGl0IHdpbGwgc2F2ZSB5b3Ug
dW5uZWNlc3NhcnkgcmV2aWV3IGN5Y2xlcyEKKworLSBbIF0gQWRkZWQgKip0ZXN0cyoqIGZvciBj
aGFuZ2VkIGNvZGUuCistIFsgXSBOZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIG91ciBb
SHlwb3RoZXNpcyB0ZXN0aW5nIHN0cmF0ZWd5XShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0
dHJzL2F0dHJzL2Jsb2IvbWFzdGVyL3Rlc3RzL3V0aWxzLnB5KS4KKy0gWyBdIFVwZGF0ZWQgKipk
b2N1bWVudGF0aW9uKiogZm9yIGNoYW5nZWQgY29kZS4KKy0gWyBdIERvY3VtZW50YXRpb24gaW4g
YC5yc3RgIGZpbGVzIGlzIHdyaXR0ZW4gdXNpbmcgW3NlbWFudGljIG5ld2xpbmVzXShodHRwOi8v
cmhvZGVzbWlsbC5vcmcvYnJhbmRvbi8yMDEyL29uZS1zZW50ZW5jZS1wZXItbGluZS8pLgorLSBb
IF0gQ2hhbmdlZC9hZGRlZCBjbGFzc2VzL21ldGhvZHMvZnVuY3Rpb25zIGhhdmUgYXBwcm9wcmlh
dGUgYHZlcnNpb25hZGRlZGAsIGB2ZXJzaW9uY2hhbmdlZGAsIG9yIGBkZXByZWNhdGVkYCBbZGly
ZWN0aXZlc10oaHR0cDovL3d3dy5zcGhpbngtZG9jLm9yZy9lbi9zdGFibGUvbWFya3VwL3BhcmEu
aHRtbCNkaXJlY3RpdmUtdmVyc2lvbmFkZGVkKS4KKy0gWyBdIENoYW5nZXMgKGFuZCBwb3NzaWJs
ZSBkZXByZWNhdGlvbnMpIGhhdmUgbmV3cyBmcmFnbWVudHMgaW4gW2BjaGFuZ2Vsb2cuZGBdKGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvYmxvYi9tYXN0ZXIvY2hhbmdlbG9n
LmQpLgorCitJZiB5b3UgaGF2ZSAqYW55KiBxdWVzdGlvbnMgdG8gKmFueSogb2YgdGhlIHBvaW50
cyBhYm92ZSwganVzdCAqKnN1Ym1pdCBhbmQgYXNrKiohICBUaGlzIGNoZWNrbGlzdCBpcyBoZXJl
IHRvICpoZWxwKiB5b3UsIG5vdCB0byBkZXRlciB5b3UgZnJvbSBjb250cmlidXRpbmchCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODRkNmFhNzY1MzExN2EwOTNjYTNkMTkxZDEzM2I0OGM2NTcyZDc2MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUkVBRE1FLnJzdApAQCAtMCwwICsxLDEyOSBAQAorLi4g
aW1hZ2U6OiBodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9sYXRlc3QvX3N0YXRpYy9hdHRyc19sb2dv
LnBuZworICAgOmFsdDogYXR0cnMgTG9nbworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorYGBhdHRyc2BgOiBDbGFzc2VzIFdpdGhvdXQgQm9pbGVycGxhdGUKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGltYWdlOjogaHR0cHM6Ly9y
ZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvYXR0cnMvYmFkZ2UvP3ZlcnNpb249c3RhYmxlCisgICA6
dGFyZ2V0OiBodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUvP2JhZGdlPXN0YWJsZQorICAg
OmFsdDogRG9jdW1lbnRhdGlvbiBTdGF0dXMKKworLi4gaW1hZ2U6OiBodHRwczovL3RyYXZpcy1j
aS5vcmcvcHl0aG9uLWF0dHJzL2F0dHJzLnN2Zz9icmFuY2g9bWFzdGVyCisgICA6dGFyZ2V0OiBo
dHRwczovL3RyYXZpcy1jaS5vcmcvcHl0aG9uLWF0dHJzL2F0dHJzCisgICA6YWx0OiBDSSBTdGF0
dXMKKworLi4gaW1hZ2U6OiBodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL3B5dGhvbi1hdHRycy9h
dHRycy9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZworICAgOnRhcmdldDogaHR0cHM6Ly9j
b2RlY292LmlvL2dpdGh1Yi9weXRob24tYXR0cnMvYXR0cnMKKyAgIDphbHQ6IFRlc3QgQ292ZXJh
Z2UKKworLi4gdGVhc2VyLWJlZ2luCisKK2BgYXR0cnNgYCBpcyB0aGUgUHl0aG9uIHBhY2thZ2Ug
dGhhdCB3aWxsIGJyaW5nIGJhY2sgdGhlICoqam95Kiogb2YgKip3cml0aW5nIGNsYXNzZXMqKiBi
eSByZWxpZXZpbmcgeW91IGZyb20gdGhlIGRydWRnZXJ5IG9mIGltcGxlbWVudGluZyBvYmplY3Qg
cHJvdG9jb2xzIChha2EgYGR1bmRlciA8aHR0cHM6Ly9uZWRiYXRjaGVsZGVyLmNvbS9ibG9nLzIw
MDYwNS9kdW5kZXIuaHRtbD5gXyBtZXRob2RzKS4KKworSXRzIG1haW4gZ29hbCBpcyB0byBoZWxw
IHlvdSB0byB3cml0ZSAqKmNvbmNpc2UqKiBhbmQgKipjb3JyZWN0Kiogc29mdHdhcmUgd2l0aG91
dCBzbG93aW5nIGRvd24geW91ciBjb2RlLgorCisuLiAtc3BpZWwtZW5kLQorCitGb3IgdGhhdCwg
aXQgZ2l2ZXMgeW91IGEgY2xhc3MgZGVjb3JhdG9yIGFuZCBhIHdheSB0byBkZWNsYXJhdGl2ZWx5
IGRlZmluZSB0aGUgYXR0cmlidXRlcyBvbiB0aGF0IGNsYXNzOgorCisuLiAtY29kZS1iZWdpbi0K
KworLi4gY29kZS1ibG9jazo6IHB5Y29uCisKKyAgID4+PiBpbXBvcnQgYXR0cgorICAgCisgICA+
Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIFNvbWVDbGFzcyhvYmplY3QpOgorICAgLi4uICAgICBh
X251bWJlciA9IGF0dHIuaWIoZGVmYXVsdD00MikKKyAgIC4uLiAgICAgbGlzdF9vZl9udW1iZXJz
ID0gYXR0ci5pYihkZWZhdWx0PWF0dHIuRmFjdG9yeShsaXN0KSkKKyAgIC4uLgorICAgLi4uICAg
ICBkZWYgaGFyZF9tYXRoKHNlbGYsIGFub3RoZXJfbnVtYmVyKToKKyAgIC4uLiAgICAgICAgIHJl
dHVybiBzZWxmLmFfbnVtYmVyICsgc3VtKHNlbGYubGlzdF9vZl9udW1iZXJzKSAqIGFub3RoZXJf
bnVtYmVyCisgICAKKyAgIAorICAgPj4+IHNjID0gU29tZUNsYXNzKDEsIFsxLCAyLCAzXSkKKyAg
ID4+PiBzYworICAgU29tZUNsYXNzKGFfbnVtYmVyPTEsIGxpc3Rfb2ZfbnVtYmVycz1bMSwgMiwg
M10pCisgICAKKyAgID4+PiBzYy5oYXJkX21hdGgoMykKKyAgIDE5CisgICA+Pj4gc2MgPT0gU29t
ZUNsYXNzKDEsIFsxLCAyLCAzXSkKKyAgIFRydWUKKyAgID4+PiBzYyAhPSBTb21lQ2xhc3MoMiwg
WzMsIDIsIDFdKQorICAgVHJ1ZQorICAgCisgICA+Pj4gYXR0ci5hc2RpY3Qoc2MpCisgICB7J2Ff
bnVtYmVyJzogMSwgJ2xpc3Rfb2ZfbnVtYmVycyc6IFsxLCAyLCAzXX0KKyAgIAorICAgPj4+IFNv
bWVDbGFzcygpCisgICBTb21lQ2xhc3MoYV9udW1iZXI9NDIsIGxpc3Rfb2ZfbnVtYmVycz1bXSkK
KyAgIAorICAgPj4+IEMgPSBhdHRyLm1ha2VfY2xhc3MoIkMiLCBbImEiLCAiYiJdKQorICAgPj4+
IEMoImZvbyIsICJiYXIiKQorICAgQyhhPSdmb28nLCBiPSdiYXInKQorCisKK0FmdGVyICpkZWNs
YXJpbmcqIHlvdXIgYXR0cmlidXRlcyBgYGF0dHJzYGAgZ2l2ZXMgeW91OgorCistIGEgY29uY2lz
ZSBhbmQgZXhwbGljaXQgb3ZlcnZpZXcgb2YgdGhlIGNsYXNzJ3MgYXR0cmlidXRlcywKKy0gYSBu
aWNlIGh1bWFuLXJlYWRhYmxlIGBgX19yZXByX19gYCwKKy0gYSBjb21wbGV0ZSBzZXQgb2YgY29t
cGFyaXNvbiBtZXRob2RzLAorLSBhbiBpbml0aWFsaXplciwKKy0gYW5kIG11Y2ggbW9yZSwKKwor
KndpdGhvdXQqIHdyaXRpbmcgZHVsbCBib2lsZXJwbGF0ZSBjb2RlIGFnYWluIGFuZCBhZ2FpbiBh
bmQgKndpdGhvdXQqIHJ1bnRpbWUgcGVyZm9ybWFuY2UgcGVuYWx0aWVzLgorCitUaGlzIGdpdmVz
IHlvdSB0aGUgcG93ZXIgdG8gdXNlIGFjdHVhbCBjbGFzc2VzIHdpdGggYWN0dWFsIHR5cGVzIGlu
IHlvdXIgY29kZSBpbnN0ZWFkIG9mIGNvbmZ1c2luZyBgYHR1cGxlYGBcIHMgb3IgYGNvbmZ1c2lu
Z2x5IGJlaGF2aW5nIDxodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUvd2h5Lmh0bWwjbmFt
ZWR0dXBsZXM+YF8gYGBuYW1lZHR1cGxlYGBcIHMuCitXaGljaCBpbiB0dXJuIGVuY291cmFnZXMg
eW91IHRvIHdyaXRlICpzbWFsbCBjbGFzc2VzKiB0aGF0IGRvIGBvbmUgdGhpbmcgd2VsbCA8aHR0
cHM6Ly93d3cuZGVzdHJveWFsbHNvZnR3YXJlLmNvbS90YWxrcy9ib3VuZGFyaWVzPmBfLgorTmV2
ZXIgYWdhaW4gdmlvbGF0ZSB0aGUgYHNpbmdsZSByZXNwb25zaWJpbGl0eSBwcmluY2lwbGUgPGh0
dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NpbmdsZV9yZXNwb25zaWJpbGl0eV9wcmluY2lw
bGU+YF8ganVzdCBiZWNhdXNlIGltcGxlbWVudGluZyBgYF9faW5pdF9fYGAgZXQgYWwgaXMgYSBw
YWluZnVsIGRyYWcuCisKKworLi4gLXRlc3RpbW9uaWFscy0KKworVGVzdGltb25pYWxzCis9PT09
PT09PT09PT0KKworKipBbWJlciBIYXdraWUgQnJvd24qKiwgVHdpc3RlZCBSZWxlYXNlIE1hbmFn
ZXIgYW5kIENvbXB1dGVyIE93bDoKKworICBXcml0aW5nIGEgZnVsbHktZnVuY3Rpb25hbCBjbGFz
cyB1c2luZyBhdHRycyB0YWtlcyBtZSBsZXNzIHRpbWUgdGhhbiB3cml0aW5nIHRoaXMgdGVzdGlt
b25pYWwuCisKKworKipHbHlwaCBMZWZrb3dpdHoqKiwgY3JlYXRvciBvZiBgVHdpc3RlZCA8aHR0
cHM6Ly90d2lzdGVkbWF0cml4LmNvbS8+YF8sIGBBdXRvbWF0IDxodHRwczovL3B5cGkucHl0aG9u
Lm9yZy9weXBpL0F1dG9tYXQ+YF8sIGFuZCBvdGhlciBvcGVuIHNvdXJjZSBzb2Z0d2FyZSwgaW4g
YFRoZSBPbmUgUHl0aG9uIExpYnJhcnkgRXZlcnlvbmUgTmVlZHMgPGh0dHBzOi8vZ2x5cGgudHdp
c3RlZG1hdHJpeC5jb20vMjAxNi8wOC9hdHRycy5odG1sPmBfOgorCisgIEnigJltIGxvb2tpbmcg
Zm9yd2FyZCB0byBpcyBiZWluZyBhYmxlIHRvIHByb2dyYW0gaW4gUHl0aG9uLXdpdGgtYXR0cnMg
ZXZlcnl3aGVyZS4KKyAgSXQgZXhlcnRzIGEgc3VidGxlLCBidXQgcG9zaXRpdmUsIGRlc2lnbiBp
bmZsdWVuY2UgaW4gYWxsIHRoZSBjb2RlYmFzZXMgSeKAmXZlIHNlZSBpdCB1c2VkIGluLgorCisK
KyoqS2VubmV0aCBSZWl0eioqLCBhdXRob3Igb2YgYHJlcXVlc3RzIDxodHRwOi8vd3d3LnB5dGhv
bi1yZXF1ZXN0cy5vcmcvPmBfLCBQeXRob24gT3ZlcmxvcmQgYXQgSGVyb2t1LCBgb24gcGFwZXIg
bm8gbGVzcyA8aHR0cHM6Ly90d2l0dGVyLmNvbS9oeW5lay9zdGF0dXMvODY2ODE3ODc3NjUwNzUx
NDg4PmBfOgorCisgIGF0dHJz4oCUY2xhc3NlcyBmb3IgaHVtYW5zLiAgSSBsaWtlIGl0LgorCisK
KyoqxYF1a2FzeiBMYW5nYSoqLCBwcm9saWZpYyBDUHl0aG9uIGNvcmUgZGV2ZWxvcGVyIGFuZCBQ
cm9kdWN0aW9uIEVuZ2luZWVyIGF0IEZhY2Vib29rOgorCisgIEknbSBpbmNyZWFzaW5nbHkgZGln
Z2luZyB5b3VyIGF0dHIub2NpdHkuIEdvb2Qgam9iIQorCisKKy4uIC1lbmQtCisKKy4uIC1wcm9q
ZWN0LWluZm9ybWF0aW9uLQorCitHZXR0aW5nIEhlbHAKKz09PT09PT09PT09PQorCitQbGVhc2Ug
dXNlIHRoZSBgYHB5dGhvbi1hdHRyc2BgIHRhZyBvbiBgU3RhY2tPdmVyZmxvdyA8aHR0cHM6Ly9z
dGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL3B5dGhvbi1hdHRycz5gXyB0byBnZXQg
aGVscC4KKworQW5zd2VyaW5nIHF1ZXN0aW9ucyBvZiB5b3VyIGZlbGxvdyBkZXZlbG9wZXJzIGlz
IGFsc28gZ3JlYXQgd2F5IHRvIGhlbHAgdGhlIHByb2plY3QhCisKKworUHJvamVjdCBJbmZvcm1h
dGlvbgorPT09PT09PT09PT09PT09PT09PQorCitgYGF0dHJzYGAgaXMgcmVsZWFzZWQgdW5kZXIg
dGhlIGBNSVQgPGh0dHBzOi8vY2hvb3NlYWxpY2Vuc2UuY29tL2xpY2Vuc2VzL21pdC8+YF8gbGlj
ZW5zZSwKK2l0cyBkb2N1bWVudGF0aW9uIGxpdmVzIGF0IGBSZWFkIHRoZSBEb2NzIDxodHRwOi8v
d3d3LmF0dHJzLm9yZy8+YF8sCit0aGUgY29kZSBvbiBgR2l0SHViIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0aG9uLWF0dHJzL2F0dHJzPmBfLAorYW5kIHRoZSBsYXRlc3QgcmVsZWFzZSBvbiBgUHlQ
SSA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2F0dHJzLz5gXy4KK0l04oCZcyByaWdvcm91c2x5
IHRlc3RlZCBvbiBQeXRob24gMi43LCAzLjQrLCBhbmQgUHlQeS4KKworSWYgeW91J2QgbGlrZSB0
byBjb250cmlidXRlIHlvdSdyZSBtb3N0IHdlbGNvbWUgYW5kIHdlJ3ZlIHdyaXR0ZW4gYGEgbGl0
dGxlIGd1aWRlIDxodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9sYXRlc3QvY29udHJpYnV0aW5nLmh0
bWw+YF8gdG8gZ2V0IHlvdSBzdGFydGVkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vs
b2cuZC8yNjEuY2hhbmdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjYxLmNoYW5nZS5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjg2N2Y2NmRkMjM1Nzg0Y2ZkOWRjOTc4NmE2ZGRhOWU3MjI3NjU1ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjYxLmNoYW5nZS5yc3QK
QEAgLTAsMCArMSw0IEBACitHZW5lcmF0ZWQgYGBfX2hhc2hfX2BgIG1ldGhvZHMgbm93IGhhc2gg
dGhlIGNsYXNzIHR5cGUgYWxvbmcgd2l0aCB0aGUgYXR0cmlidXRlIHZhbHVlcy4KK1VudGlsIG5v
dyB0aGUgaGFzaGVzIG9mIHR3byBjbGFzc2VzIHdpdGggdGhlIHNhbWUgdmFsdWVzIHdlcmUgaWRl
bnRpY2FsIHdoaWNoIHdhcyBhIGJ1Zy4KKworVGhlIGdlbmVyYXRlZCBtZXRob2QgaXMgYWxzbyAq
bXVjaCogZmFzdGVyIG5vdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg0
LmNoYW5nZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI4NC5jaGFuZ2UucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI2NjU5OWRhYWJlYjE2ODdhZTQwNWViNGFmYzUyOTU3ZDQ0YThmOWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI4NC5jaGFuZ2UucnN0CkBAIC0wLDAg
KzEsMiBAQAorYGBjdHlwZXNgYCBpcyBvcHRpb25hbCBub3cgaG93ZXZlciBpZiBpdCdzIG1pc3Np
bmcsIGEgYmFyZSBgYHN1cGVyKClgYCB3aWxsIG5vdCB3b3JrIGluIHNsb3RzIGNsYXNzZXMuCitU
aGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpbiBzcGVjaWFsIGVudmlyb25tZW50cyBsaWtlIEdvb2ds
ZSBBcHAgRW5naW5lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yODUuY2hh
bmdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzNmYmI3OTdkNGY3MzllNDI3YjIxODNhMGRiYjA3NTM4NGFmMGI2MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKQEAgLTAsMCArMSwy
IEBACitUaGUgYXR0cmlidXRlIHJlZGVmaW5pdGlvbiBmZWF0dXJlIGludHJvZHVjZWQgaW4gMTcu
My4wIG5vdyB0YWtlcyBpbnRvIGFjY291bnQgaWYgYW4gYXR0cmlidXRlIGlzIHJlZGVmaW5lZCB2
aWEgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCitJbiB0aGF0IGNhc2UsIHRoZSBkZWZpbml0aW9uIHRo
YXQgaXMgY2xvc2VyIHRvIHRoZSBiYXNlIG9mIHRoZSBjbGFzcyBoaWVyYXJjaHkgd2lucy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg2LmNoYW5nZS5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NjU5OWRhYWJlYjE2
ODdhZTQwNWViNGFmYzUyOTU3ZDQ0YThmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0CkBAIC0wLDAgKzEsMiBAQAorYGBjdHlwZXNgYCBp
cyBvcHRpb25hbCBub3cgaG93ZXZlciBpZiBpdCdzIG1pc3NpbmcsIGEgYmFyZSBgYHN1cGVyKClg
YCB3aWxsIG5vdCB3b3JrIGluIHNsb3RzIGNsYXNzZXMuCitUaGlzIHNob3VsZCBvbmx5IGhhcHBl
biBpbiBzcGVjaWFsIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBBcHAgRW5naW5lLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yODcuY2hhbmdlLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
Y2hhbmdlbG9nLmQvMjg3LmNoYW5nZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNmYmI3OTdkNGY3MzllNDI3
YjIxODNhMGRiYjA3NTM4NGFmMGI2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hh
bmdlbG9nLmQvMjg3LmNoYW5nZS5yc3QKQEAgLTAsMCArMSwyIEBACitUaGUgYXR0cmlidXRlIHJl
ZGVmaW5pdGlvbiBmZWF0dXJlIGludHJvZHVjZWQgaW4gMTcuMy4wIG5vdyB0YWtlcyBpbnRvIGFj
Y291bnQgaWYgYW4gYXR0cmlidXRlIGlzIHJlZGVmaW5lZCB2aWEgbXVsdGlwbGUgaW5oZXJpdGFu
Y2UuCitJbiB0aGF0IGNhc2UsIHRoZSBkZWZpbml0aW9uIHRoYXQgaXMgY2xvc2VyIHRvIHRoZSBi
YXNlIG9mIHRoZSBjbGFzcyBoaWVyYXJjaHkgd2lucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
Y2hhbmdlbG9nLmQvMjkxLmNoYW5nZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5MS5j
aGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNTQzOGYxZGJlZTU5ZDM0MGNjODYzZWNlNDQ5MjI3NzMx
NzY0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5MS5jaGFu
Z2UucnN0CkBAIC0wLDAgKzEgQEAKK1N1YmNsYXNzZXMgb2YgYGBhdXRvX2F0dHJpYnM9VHJ1ZWBg
IGNhbiBiZSBlbXB0eSBub3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5
Mi5jaGFuZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTIuY2hhbmdlLnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZDU0MzhmMWRiZWU1OWQzNDBjYzg2M2VjZTQ0OTIyNzczMTc2NGM2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTIuY2hhbmdlLnJzdApAQCAtMCww
ICsxIEBACitTdWJjbGFzc2VzIG9mIGBgYXV0b19hdHRyaWJzPVRydWVgYCBjYW4gYmUgZW1wdHkg
bm93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTUuY2hhbmdlLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk1LmNoYW5nZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2N2Y2
NmRkMjM1Nzg0Y2ZkOWRjOTc4NmE2ZGRhOWU3MjI3NjU1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk1LmNoYW5nZS5yc3QKQEAgLTAsMCArMSw0IEBACitHZW5l
cmF0ZWQgYGBfX2hhc2hfX2BgIG1ldGhvZHMgbm93IGhhc2ggdGhlIGNsYXNzIHR5cGUgYWxvbmcg
d2l0aCB0aGUgYXR0cmlidXRlIHZhbHVlcy4KK1VudGlsIG5vdyB0aGUgaGFzaGVzIG9mIHR3byBj
bGFzc2VzIHdpdGggdGhlIHNhbWUgdmFsdWVzIHdlcmUgaWRlbnRpY2FsIHdoaWNoIHdhcyBhIGJ1
Zy4KKworVGhlIGdlbmVyYXRlZCBtZXRob2QgaXMgYWxzbyAqbXVjaCogZmFzdGVyIG5vdy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk2LmNoYW5nZS5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzI5Ni5jaGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NjdmNjZkZDIzNTc4
NGNmZDlkYzk3ODZhNmRkYTllNzIyNzY1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kLzI5Ni5jaGFuZ2UucnN0CkBAIC0wLDAgKzEsNCBAQAorR2VuZXJhdGVkIGBg
X19oYXNoX19gYCBtZXRob2RzIG5vdyBoYXNoIHRoZSBjbGFzcyB0eXBlIGFsb25nIHdpdGggdGhl
IGF0dHJpYnV0ZSB2YWx1ZXMuCitVbnRpbCBub3cgdGhlIGhhc2hlcyBvZiB0d28gY2xhc3NlcyB3
aXRoIHRoZSBzYW1lIHZhbHVlcyB3ZXJlIGlkZW50aWNhbCB3aGljaCB3YXMgYSBidWcuCisKK1Ro
ZSBnZW5lcmF0ZWQgbWV0aG9kIGlzIGFsc28gKm11Y2gqIGZhc3RlciBub3cuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDc4ODFlYzlhYjVhMThjNDk2ZTQz
NjVmZTJhMDc3OTRkMDI3YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vs
b2cuZC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kLzI2MS5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yODQu
Y2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cu
ZC8yODcuY2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjkxLmNoYW5nZS5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5Mi5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC8yOTUuY2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk2LmNoYW5n
ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Nv
bmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNGQ2NTI1YjQ1ZGI2ODNjOTI1NWYzNDI1MWM2ZDA2ZTQ0
YzE3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NvbmZ0ZXN0LnB5CkBAIC0wLDAg
KzEsMjggQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKKworQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBDKCk6CisgICAgIiIiCisgICAgUmV0
dXJuIGEgc2ltcGxlIGJ1dCBmdWxseSBmZWF0dXJlZCBhdHRycyBjbGFzcyB3aXRoIGFuIHggYW5k
IGEgeSBhdHRyaWJ1dGUuCisgICAgIiIiCisgICAgaW1wb3J0IGF0dHIKKworICAgIEBhdHRyLnMK
KyAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgIHggPSBhdHRyLmliKCkKKyAgICAgICAgeSA9
IGF0dHIuaWIoKQorCisgICAgcmV0dXJuIEMKKworCitjb2xsZWN0X2lnbm9yZSA9IFtdCitpZiBz
eXMudmVyc2lvbl9pbmZvWzoyXSA8ICgzLCA2KToKKyAgICBjb2xsZWN0X2lnbm9yZS5leHRlbmQo
WworICAgICAgICAidGVzdHMvdGVzdF9hbm5vdGF0aW9ucy5weSIsCisgICAgICAgICJ0ZXN0cy90
ZXN0X2luaXRfc3ViY2xhc3MucHkiLAorICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Rl
di1yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYmQ2YjkyMDFlMGQxN2MyZjQ3M2I5OGRhMjNmYzBmMjQzOWJmMDgyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxLDYg
QEAKK2NvdmVyYWdlCitoeXBvdGhlc2lzCitweW1wbGVyCitweXRlc3QKK3NpeAorem9wZS5pbnRl
cmZhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy1yZXF1aXJlbWVudHMudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9kb2NzLXJlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ3M2UxZTQzMjQzNTFl
OWU5ZGFjZjUzMDVmMGZmMTM5MDUxYTQzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy1yZXF1aXJlbWVudHMudHh0CkBAIC0wLDAgKzEsMyBAQAorLWUgLgorc3BoaW54Cit6b3Bl
LmludGVyZmFjZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL01ha2VmaWxlIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9kb2NzL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNDM4OTFkYWY4ODQ5M2IxMWUzNDZlOGRl
ZjcxOWRmNDk5ZWVjOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvTWFrZWZp
bGUKQEAgLTAsMCArMSwxNzcgQEAKKyMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9u
CisjCisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQgbGlu
ZS4KK1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAorUEFQRVIg
ICAgICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMgVXNlci1mcmllbmRseSBjaGVj
ayBmb3Igc3BoaW54LWJ1aWxkCitpZmVxICgkKHNoZWxsIHdoaWNoICQoU1BISU5YQlVJTEQpID4v
ZGV2L251bGwgMj4mMTsgZWNobyAkJD8pLCAxKQorJChlcnJvciBUaGUgJyQoU1BISU5YQlVJTEQp
JyBjb21tYW5kIHdhcyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3UgaGF2ZSBTcGhpbnggaW5zdGFs
bGVkLCB0aGVuIHNldCB0aGUgU1BISU5YQlVJTEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcG9p
bnQgdG8gdGhlIGZ1bGwgcGF0aCBvZiB0aGUgJyQoU1BISU5YQlVJTEQpJyBleGVjdXRhYmxlLiBB
bHRlcm5hdGl2ZWx5IHlvdSBjYW4gYWRkIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZXhlY3V0YWJs
ZSB0byB5b3VyIFBBVEguIElmIHlvdSBkb24ndCBoYXZlIFNwaGlueCBpbnN0YWxsZWQsIGdyYWIg
aXQgZnJvbSBodHRwOi8vc3BoaW54LWRvYy5vcmcvKQorZW5kaWYKKworIyBJbnRlcm5hbCB2YXJp
YWJsZXMuCitQQVBFUk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBlcl9zaXplPWE0CitQQVBFUk9Q
VF9sZXR0ZXIgPSAtRCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgorQUxMU1BISU5YT1BUUyAgID0g
LWQgJChCVUlMRERJUikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRT
KSAuCisjIHRoZSBpMThuIGJ1aWxkZXIgY2Fubm90IHNoYXJlIHRoZSBlbnZpcm9ubWVudCBhbmQg
ZG9jdHJlZXMgd2l0aCB0aGUgb3RoZXJzCitJMThOU1BISU5YT1BUUyAgPSAkKFBBUEVST1BUXyQo
UEFQRVIpKSAkKFNQSElOWE9QVFMpIC4KKworLlBIT05ZOiBoZWxwIGNsZWFuIGh0bWwgZGlyaHRt
bCBzaW5nbGVodG1sIHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBkZXZoZWxwIGVwdWIgbGF0
ZXggbGF0ZXhwZGYgdGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9jdGVzdCBnZXR0ZXh0CisK
K2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFyZ2V0
PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRN
TCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBp
bmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFrZSBh
IHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtlIHBp
Y2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIKKwlA
ZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJv
amVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhl
bHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQg
YSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIi
CisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQ
QVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtlIExh
VGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgorCUBlY2hvICIgIGxhdGV4
cGRmamEgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwbGF0ZXgvZHZp
cGRmbXgiCisJQGVjaG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCisJQGVjaG8g
IiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKKwlAZWNobyAiICB0ZXhpbmZvICAg
IHRvIG1ha2UgVGV4aW5mbyBmaWxlcyIKKwlAZWNobyAiICBpbmZvICAgICAgIHRvIG1ha2UgVGV4
aW5mbyBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBtYWtlaW5mbyIKKwlAZWNobyAiICBnZXR0
ZXh0ICAgIHRvIG1ha2UgUE8gbWVzc2FnZSBjYXRhbG9ncyIKKwlAZWNobyAiICBjaGFuZ2VzICAg
IHRvIG1ha2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVt
cyIKKwlAZWNobyAiICB4bWwgICAgICAgIHRvIG1ha2UgRG9jdXRpbHMtbmF0aXZlIFhNTCBmaWxl
cyIKKwlAZWNobyAiICBwc2V1ZG94bWwgIHRvIG1ha2UgcHNldWRveG1sLVhNTCBmaWxlcyBmb3Ig
ZGlzcGxheSBwdXJwb3NlcyIKKwlAZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRl
cm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgorCUBlY2hvICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFs
bCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5hYmxlZCkiCisK
K2NsZWFuOgorCXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2h0bWw6CisJJChTUEhJTlhCVUlMRCkg
LWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWwKKwlAZWNobworCUBlY2hv
ICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2h0bWwu
IgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1sLiIKKworc2luZ2xlaHRtbDoK
KwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
Uikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBw
YWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitwaWNrbGU6CisJJChTUEhJTlhC
VUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcGlja2xlCisJQGVj
aG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2ts
ZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIganNvbiAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93
IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0bWxoZWxwOgorCSQoU1BISU5Y
QlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbGhlbHAK
KwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwgSGVs
cCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHByb2plY3QgZmlsZSBpbiAkKEJV
SUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBxdGhlbHAg
JChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlAZWNobworCUBlY2hvICJCdWls
ZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0aCB0
aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL3F0aGVscCwg
bGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAkKEJVSUxERElSKS9x
dGhlbHAvYXR0cnMucWhjcCIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNo
byAiIyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC9hdHRycy5x
aGMiCisKK2RldmhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2RldmhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4i
CisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgbWtkaXIgLXAgJCRI
T01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL2F0dHJzIgorCUBlY2hvICIjIGxuIC1zICQoQlVJTERE
SVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL2F0dHJzIgorCUBlY2hvICIj
IGRldmhlbHAiCisKK2VwdWI6CisJJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2VwdWIKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhl
IGVwdWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKKworbGF0ZXg6CisJJChTUEhJTlhC
VUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL2xhdGV4LiIKKwlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVu
IHRoZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAorCSAgICAgICIodXNlIFxgbWFrZSBsYXRleHBk
ZicgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKworbGF0ZXhwZGY6CisJJChTUEhJ
TlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAorCUBl
Y2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4iCisJJChNQUtFKSAt
QyAkKEJVSUxERElSKS9sYXRleCBhbGwtcGRmCisJQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0
aGUgUERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisKK2xhdGV4cGRmamE6CisJ
JChTUEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRl
eAorCUBlY2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGxhdGV4IGFuZCBkdmlwZGZt
eC4uLiIKKwkkKE1BS0UpIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYtamEKKwlAZWNobyAi
cGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4
LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4dCBm
aWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCisKK21hbjoKKwkkKFNQSElOWEJVSUxEKSAt
YiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KKwlAZWNobworCUBlY2hvICJC
dWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvbWFuLiIK
KwordGV4aW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUg
VGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCisJQGVjaG8gIlJ1biBc
YG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIG1ha2VpbmZvIiBc
CisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5
KS4iCisKK2luZm86CisJJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5mbyAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVubmluZyBUZXhpbmZvIGZpbGVzIHRocm91
Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxERElSKS90ZXhpbmZvIGluZm8KKwlAZWNo
byAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90
ZXhpbmZvLiIKKworZ2V0dGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiBnZXR0ZXh0ICQoSTE4TlNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2xvY2FsZQorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlz
aGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJChCVUlMRERJUikvbG9jYWxlLiIKKwor
Y2hhbmdlczoKKwkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvY2hhbmdlcworCUBlY2hvCisJQGVjaG8gIlRoZSBvdmVydmlldyBmaWxlIGlzIGlu
ICQoQlVJTERESVIpL2NoYW5nZXMuIgorCitsaW5rY2hlY2s6CisJJChTUEhJTlhCVUlMRCkgLWIg
bGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlua2NoZWNrCisJQGVjaG8K
KwlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0aGUg
YWJvdmUgb3V0cHV0ICIgXAorCSAgICAgICJvciBpbiAkKEJVSUxERElSKS9saW5rY2hlY2svb3V0
cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJJChTUEhJTlhCVUlMRCkgLWIgZG9jdGVzdCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKKwlAZWNobyAiVGVzdGluZyBvZiBkb2N0ZXN0
cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCisJICAgICAgInJlc3Vs
dHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKKworeG1sOgorCSQoU1BISU5Y
QlVJTEQpIC1iIHhtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3htbAorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgWE1MIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS94
bWwuIgorCitwc2V1ZG94bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgcHNldWRveG1sICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvcHNldWRveG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmlu
aXNoZWQuIFRoZSBwc2V1ZG8tWE1MIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9wc2V1ZG94bWwu
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMvYXR0cnNfbG9nby5wbmcgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWI2ZTZm
ZTNmOTllODdkN2U3MDY1ZDUzYzBmZDZjYTExZjBhNjIxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCA3NjM5CnpjbVpgO2N7RWdpK2BkRFdZfXVFUlduYEJ5YzNCKFNXTlJYWT84WktYJFVYXzdBe3NK
YEZmeCpARVpMY1VzNCV1aAp6KitvTTM/Mll4a3ozPD1lSj9HOW5fcztpeCZiXj1RY3xPbEsqfi1H
MG1GWVlhMDA2OX1DVTdLcHRwZDtJalAmNGQKek9xJilmY3NVYm5VfjBfPjkjTT8kTiNPbjJLJEFQ
YzBLbkd5P31US152UndjbDNXT05tNCFJZUMzSkcld0AmTGxaCnohc05adHpRSnhUZmdiViFMN3V0
bVNJK34kTVFjO0l6ViFxQVQzJSQ3cGwkZW0+O1VlWSZ3UURtPGZlRT1VMnkxUwp6aldHI31wQmJJ
cTdtT2heYDlQejk2Z3kxLTxxUSZXKS0tJSMtKyRKQlhgV0w1dSUwaFJiPGokclI8SDVRY3puRCkK
empiaXF3b0AqU0pwUHo+KD5WQzMrIWYxdl51YnA/OzA3VztIeVo3c1FkMXhyPVJgYVdrI2lGIzw7
Q31xfT5VeGM1Cnp8OW02NiFGZipVY3s9aXVKJHkkQUJNS2ROPDQtKVJfcyN4OExESH4yPUswbm8m
U1lPO1JmVDEpbjZzPD5JPW8lJgp6STFYMzFhPS15TlJtLWhabEgkdzczYio3SEF8Zk5qWGxaRlQ9
Pk89VytTb35NS3FVaFNfU1BIdChBVn1kPUAjVXsKelU2RDk+O0xTOG1KUlhXT0wqR0N8YkNRVS1r
PnVaeCRWWm84UDhNKWUtfnVxfEBSaypOa208c3wkUkw4QUktNDJ4CnpAVlN7cGZIZmtUN1czd1Bz
U35wKCtOXn1xakIrJSkjRjxDRmlwcDdkZX0yTUFWZmE4bDtYeXBvTjRTTm0ofC0lRwp6aERFTUZO
NDdCbW9YTVJOKjtFWmNjWGZIJFpiZV8xSVdGK21UfEU9JmVBPlc9a0lpTEpDKDwxTHhIYn0qaCtN
OGEKekswZU5SZF8wXjB0YEk0PXVTYXVXVUk/a2xxR2FSJl9WbE40WHF1Xz8lZzlPRm5mUlYmO1A9
d2ZvJTJ0Kys4QWM0CnpNR284K3d6SHxkUXROaWdhPGpGQ1lgPmRnWGZnaXE5Vl53YFZ8X1deTkpp
M3EkUDxeXnkxS2l5Vkg/dzJrb15eYgp6IVl6OFV0M3FqS01mVl9zWXU5ZkExanJMYngpfXNUSXNh
XmZsalllR1I+KERZRWFxa2teTz5wITs3Xy1hdCVIYlEKeklJVmFsIWNiQnxmKnlqdT4zUVFJZm45
cWtCJS09TVhjKEAoTVFAXi1KQyU0S0QtVlE3N28pNHsrM1ByRTB4JH5PCnomQzhjTlNZb1B6Rzg0
P3p7VFpMYnEzTn50WiZYSkgkdjEkQjxTKl9FblNkajBMOWQ2czBPfVNYNjVsWVNAWUx6TQp6JGlH
aiNwcz80bnpZUj5VfEo7aU97dFZzT0pEWEZ2NjI+KzMqe2I2TzdQcytFWlV1KGtzQThDezY/TldR
cFZJMGcKektheGtjand0czxCS1deXiVrPmBFMH5ANz1eM2I+US1kMjFEXkEpc2s/QXhzQDlnNEU8
c2BXP1p6NSR4UT87fWZ9Cnp6blB0R1Z3Vllzekoxciswfioxbz1PVlBMdnR8YyVfRiYhcm8tcF9W
RHgjXldJY3tmZj9eSzB0STsmP1JSKXpGdwp6PDhAd0k3TFFFZVFKSiZ7NFlNWUZ8Tml8N1k/fkdT
dHR2ZiUtRk0rOzhnOE50LVNYUlVobEx+aFZeYH5hYXFIPEIKens/Skc8bjNMaV9NNjFuLWRXPDxk
bSRmNlgyMi12emkmcW9McmdvaTJ4Njd4U0k0b0k8cmtqTHQ0bj55dj9aMTVYCnp3bjZWcmkkMWI5
aWtwMC1hKENwNG9ERmcxeno2dDJYSTFmIytHZ2tlUiZCUVNCZUFUXipaJmdkU1NOV0FAPmBVVQp6
TnAyQSZhUk9XYjVzUiNNU0hqJjtUUWkySHVUaTdnY3NXS21oaSlRITR6Yjh7ZGB0LSshTUIhMiNh
eEVQZSN4cXsKejMkPn1ONG1AaSk+aH5KIU1EdkhPTD16czg9ZmVNXnZAbmVwWHF1WWRwdUhrcEpl
fTk9LWV3PTVLZ24pISFRI2Z5CnpfO3UtZF5eRyRyXjRlMG1RWjR5Tz56ND54SU9fSHtyciklU2pH
e3U2YD5qTXVWKzY8bHRgKX44MzEtP044bjM/Vwp6VTMtcVMwUkJHciZNQz16ZkZue25wRWZ4YDA9
ZUdpbXFhfDFpMDZNPiEmMiR4I24zezFqd21MKXp3Tmc+SXkhbzwKekJ0ckk5YENsbmE3Zis2c1hJ
QmModDtvbm9iVnh8WjhKS35CXz4xbWErfUJgdG5Qd2ItYGlrNHtVRld2dWQmQU9GCnpRflBtfVgt
fVY7UlhRfFExMmZ8P0tRY3lFNzB0S0x0O2p1KyY1N3Ywa29JfWJBZ0shWT9ZZUxRT3FIPjY4S19Y
Mgp6bFgoMENFekNabCQkUilMVjk3WiZBfUp9XkY3VjlnUkd8MkJTMVEqfkJ4fWR0cHREcVlLNy0t
PUwhSVArST1Qaj8KemhAUDEmcVJsaU1kWEViaCVVaERGWk9KNXhIWjdyPyt1enhkPnMjRjNhOWUx
JDUpfTZ9RVVmKytpOyV1PURlPEQ0CnpNbyVXd1BEeFI1bExhR20/aldxVS1pIzlFY0paKChuVFgj
O05iQn5IVl5iKXhfJE9HVCk1IWZ9PTlAUWYyMl9qNQp6TTA3PE50XlZMS3hhNEJWQl9TY1BadWw7
eDdkVk1lJTJMPzJobWBYZ09iUiVrek1fUW1sJnVeJTBlezspUWRGUF4KemBUOU11QyQ/OFphYTBK
amlIQjRUOVE0N3E1NWUhWEo9YF5KWUhsN19VUmpDTXpfZGpkbEBlSy1Eb0AyWnFGK3gzCnpWRzll
ZTIkVHx6eWhDPykjS3s8Kk0mcV5GeFVydjAzfndLWks0VT55LVRwTVVgR29oflBhMlhLakU0Xlo/
WSgwRQp6U3BqX1Zia0whbihkVnxAWkdrU2kqZlM+KlolbXM+WSVgLWA4Ykc2dWFLZl9wd2V1YD08
PkUoflcoKXljKVBnekQKemRwZklrSzckLTMrfHNSaD8qKVV1b08rSld4SmE/WHhmeHI0X25VbmRy
PVooSE1WNSFRP2MyYilQdFZIc0hoJD0pCnorITVrSl9Te2V4Y0U8ekdxbytUdGlUIUVTVzJeVFcm
SSM+a0dJYHdmJlBuRzMlcVc2RFVfazQ8UjdWaT4wTSQ2dAp6ZjRJTSk4fjMkUiREPl5nNl9lfG9i
S1JXTTt1UkhqZ2FEI3pkZHpfVUZnMkRASHlzTVB1X0d3YWlJVTBAPHUhZmwKentaM2dtZX0xPEdX
MTx0d3hwUWU7THpqVlNwdkAzSWFTUDA8QT8zY1JYMSp7TmladnpDVTFfV2s4ekY/YjVTQV57CnpE
OU09fENIa2AwfE5XWUhyM2dWNiN4bURFIzxNMGVTb1F1enNVSG5ITG0pM0UwUUJYYD5Pclpza0V6
KD4lTjI9NAp6cUAobkY1cGFJQ145fC1zczV0clBWc0NYXj5kP2ZYXjBPXzNeZUZAODslLShFWiNF
VSRUZkh9SXBLNFNuWUJgJEcKej9ILTN+Jk98YjdROyh7K2t+Xj0xcG0kbXw5clRUZkJidUdHQHFm
I1ZMQSMhVmMmOHhNK2BkWW1Qazloc3VnKW9ZCnokUERXKT98K2k2P3tCWXUrdk8kUEBNYGVCYzIl
Z0lvNzU1KUlRJkh2KDFIa303Sy01Xkl3XiZ3JDEhJVQ5SGIoaAp6e1VMNTt7RllEN28mPjdXVk14
MigzVVFuZDIzSC1tX0l8bChUMEgoUUJrWXZ6REFHc2VLWGk5byE3UHkjT3lxMCMKemJWazJfNTU9
dlNZYl4kbnM+QD9LNnNFPUVOOWl9WFBSekdrKXt4eERobCUjQG1ZVUcpPXtycSNROEE7ezxeSV92
CnpxRTlQVjB6P1Rfe31sfWs+aCFkSnR9WnYweHkxJDxiUVRMeCF1ZzNxPnFTQGQpYUJ6SlR6VUkk
MV9YWGw9c154Jgp6OSZEU0lqQSFEaCpGMjkxNHtwVEFwQSNBJkE4QitiSUtKSn1mZ1c1KWdafnw/
NFkyPW08U2pMU25WWUV0KDBOR3MKel9+QilQLUJieD4kckNheHhVSSlIVGRYQEphUDZBKCNeQilL
NFR8eXgrU2hrUWdyRWdea2tPaW1iOXl0b1hTYmZXCnp1NTBiY3I7T2RRc1FDd0BpN3I9MzxjJUdJ
SG1YdmIlZV5seDVgYHxTZGo/QlN3NFYwMXYkTU9aY3VZflEkUW90Ngp6U2hyXmhjUlZQfFEmZ19x
cVQkfnJhNnA2WlUtSkZqUmlScEFEWlFTQmo4TyFlJiRfPDdDa3R5dU9MVE8hQHl0VVMKeip0VU9i
WWIpQn4hVWpleS0tVmxXKiZ5akl2Wm4tJGJqeUUjXk9yek4xYiheJjQ4eGtBQVV9VVlTPFohQG4t
QjB3CnpDdG5gNWQyWihkbiRjZU1PSX17e25NbX1iITxPY25NJSQ2eW1CcEtpPV9ZdXdfeT1jbjQ0
YTNQKlN2TWR7Wi1HZQp6S2l+Jks/cncrQDRyaWh0NEFObFFkciZwUHZZdDE9TXA2Z2dzUkYpN1BW
T3NUMFc8YzRyTjBedlllfno4PTdJZWkKemMqJW48UUIoe2dpNENlNVBuYkJNQjEmX1V5YEgyVSgt
P200TERrdnJWSDA3PV8/KDxeekdueGVeKn5EWmJzYj1hCnptY299VWZhVjA2VytMQE56T3BEITs9
e2JXZW9MaXo9ak5vaEFibCpAbSFFJEh2dXlteHhSdmZ0QEBFKjFKUjhBMAp6QiZHYSVEPldAbW14
aVNIOEJRQjAqb0NjeE8mUFNebWJgTzUxOWJLNT9DZD8lJD5XSUw4X2VWKlVXKVFhSGdTeEEKendk
KkQ0IzxSMkhFKVgxKkMoI3xzJGV3dyEtdmh4e3g+OVpFb0NXKmsla1V6fnlWN3phQk8/amgzT2hQ
eytlantDCnpGd01FOyR5ODdfRWBhfnkjZnchQUR4SnhSNkVlQm9vdD5TIVU5UnRXZkxHbn5MQ3kz
RzRDZzh4VE8mNHFjMENFQgp6azsxdCpeKCRiKT9xc1ByMW5CMkhPdzNiTkFEV3VGM3w2SERQX31a
cCpEdUt7Kk08TXxQSmwrdkwhen1LQEVxdyMKekIzc0luRyZWX3B8TmY8UmJhYTQoJkZGayt6a1BD
Z2RpdSotNj9TempyMCleRU4+QW81VSV1PUUha21UTl56JnR9CnpGQlIzKSFISjByRSg+QWI+e0Y1
S0xzUzNTTjkoKi1OWTFWQiFeNlhYeFkjVkdJeDhTPjV5I20mWCRkfHxVfmhLewp6NUlfVlg4OD1a
QjwjeXxUdVpPYTZ7N0JZTV5BblQkZ3E4Qmw0TlNzU2ZuZGR+WVVAeG1STmhsJk1ybkQ0KGA2QnsK
ekVuSlRRKDd9SXJmdlg/TVZOY1cyIWc3ZT1eKytGUE9teGslYzBaWlZLNUd+REA7RHdfOzljS0NH
P2pTNEN0SXhaCnpgMExyZEp4MCtGTTlSfFVnUjNWcHFNYlp8Sm1nTygqLWJKTHJ8V207eVZGMmhU
Zz5xUlBZeUJxUTQ7dmlYUUZvdQp6KTNrZHYzcj9SUmQmTyFwb0xeOXxCQGNIaFNpJll4QUpqT1Jf
M2A3IU0+UStnck5mSGViWT9iOGZ1dD08I3pmKnAKek1XWH1TQlIyTF9iVSkqPGBjVW0qMyN7OCsk
O2FLQEo8USZJO3UhUT0ya0BPcWJRPDY3UERidzlSeXVAM0Z4TUF7CnpjMW56bWoxWTtEbmhgcip2
IW4wYlc+ZSRSQEVsP1JidGNrM0FPJH5ERzM+NnZudDNQVDA1a3p4UHs8bTU2byg3VAp6K08qOSo8
NlBKdnE2TFV0ZUM7NHchajs8TVZOIzQ3bil7cX5oMVduWCY4U0VjdG5eUitfQF8ta3Fydn1vRVN1
SGoKenplfnBrKFBIfUdBIWxKdVUlfEhNcmhQWE1TISU3RSt2Zjs0KkMyZ2g5RVBDI1RPR0hRbUNR
WFN7KUppcUVObmRQCnoyTGU5ZlQkMUM4MClDZjB7eUR6YVRFJTFGcHNUMk9QaSE+PV87QjJMdGx2
d0tRX2tHbDB9MDFQZXR2JE1jalpyQQp6JXg0O2ZlczJDPE5ubFQtTmdDQkhwb2tDQFBVRWxWXnNx
fGg1MWRLfVg1aVV9RU5RdEpmQ0JJRlRrMCZGKUZfPW0KelR1dVRBTTVzMSRYXldOQW5lfVUqJFFE
THhwVFgyPkhSLXg8Xndxa0QqPm1HQHNtWjBTQyF8WiMyMnUrKXZZIVhvCno0P1orNW0/NVhaSWlN
LSklJE49MytxWEluejI8OX5nU2lkI0lZIX1IVDNSRUpLbV9KdTB8NUBARnhHN2RlMUdlTAp6Y35K
YChxKlQrQTxUcGF3UT8/cUp6QiM8OUVoO2srVyMjcXRZT1olfmxAUHIlYU4/TDxnQ3kxQlZJPFRw
JlVIOVAKejV2dXUtRUQzU1gqMH1pMGh5cGdyRC1uQmE3UERgcEt4ISpnZ3J8SHRCdnxIT0dYIURM
UzB7ZllmZ0xvIWs7ZzNaCnppVG9zPGVHUVBuZyR0NHRROUBoPiszKm1OK2BlXzteWEdFe2hzNXVQ
ZztuKj0yWXA/PyR1UmhkeWF1bUxOK0tYaQp6WiRMSEFJQDZGdVU/ckt6cklWOHIyPX05QXZWVSFn
VDJ5R0UpbypiXkZUXjN5KSF+c1VVJShsMTZyNkZCOCtLfFgKeno1Qj5hMCM9bl40SS0lPnJTX0dR
ZjFCYHBRNlYzMnF7R3A4TjA2MDJhV2dMezBvaH19RChvd2JUZmFzJSVSNVpeCnolX2FXfTBeM2tC
LT08UShaPitDcEJeYkRyd08qKjkoXz5udm1vTFU1SmR8Kzk3TVQkZDVtXmdDamIlOGhsRCg2Qgp6
IXJ8M0VObmpPOXhKVypGP1ZZM0xhd1hfdVdfP1hmQExsRWV0KG13Zzw0eUJKcDJiLUphfChqPV5+
UzYyN3UzKVcKekRrPl93RyNEUDhaWXhlYDZHaD1FMTByKiY9fG1JQ3EqKytWWCVKRkVAJE0pXkxl
dX1VcVQxKzR5Rmc0d1FDb1hKCnomVnVpQ3AzYj89UHw7NFVZJGBwcGlDKFlGSUokcXE1Tzh1P1U9
V09yOWBmMT1waD53bUt8NTJGTCkyeXthUXx9SAp6LVFCRyNQU0U0d0JsVyZgQCM1NXhYZUxIRDZA
SF5eQ3srNW8wVShpYGpQQXduWDAqJU4+Y0x8bkdxak1gNGNkR3AKelZmTFkpKXl5QUtRJlV3QFpR
VEs7QzxDfXlhcGlTc0hUSSN5SUJad2VxRWs9YlgyeylrUnVVY0wkKGRzN3VBfF4mCnp4R1N2MWNH
NCtfTkxAcUhaOWElJTwoUWhpN25eemU/eVljcEpHKUFUY2dsSiQxejFod3ZMP3FkMlBSOXoxRU40
Ygp6Qml4SmkyMlJ4Vj9od2IpeVdMfU1tdlh7PkVaX2VlK1MlOW1OZFNtdjVCb1RPUChufWUkYjZZ
SiZHR3NZQFZzfF4KektgSjBEWjJ1MVZzSzNDJldnJCU8YVQ4ZnU/WEU8WGZNKTFGZDV0fmpLeEY+
WTlIZmpJY1FXIW91S0lLRU0/bUR7CnprRW9mOTtPWDYha3QhaFlaWmJpUjt8fCR4ZGAhfER4V1gp
SUF5eGJkQHw1I043SCRITmxPelA9OFgzQ2lJKFB3Mwp6NGFTPSRtcEhHbXZhITdpUm0+a35YWlUj
Zl9PWFBkPFl9OGpBIyVBPUJtbn1UUEpBUkBsek1mLSlZVHZHJFZsRVcKemdLZVhzPEw3NFJ4UHdL
fm1fI01BSEhjVXtHeCY4fWN3WHpYSitIPlpnVHVvckYrdl5CITNGdzFFVSpuTzFBWnhxCnoyI3s5
S0F4YUdtbDVFSD1ETWAxKz9aYyRHP3wraSE4TXwjZHw0bihWUGZDWGY0JStmU0d2dWxwfEVEU3wp
UFRRXgp6aVMmTktRUnclTllaTFgwbz0lcXRgQktGKFdlJkxwTmwmdD1tT1l0Vkx0d0ZfKkB7V1Ir
NWBYMGUwJXs4QWdCez0KempIU2o3NiU3T2dOd3JePnd5X0JmRDtgYzt5dDUldVYjdmtPYGNkSSZN
ekFkeTt8WThaaj5eX3N0dXNlbFRWRyRWCnoqYGdqOTArcjRTbSpLVF5xQGQ9JWZ1ezMzMjFvOGVM
MGhZWmdAcnxFJkM5ZTk2THN1NFk/QnYlcUZZWjEqamxPdgp6SHkma3F0ZCgxcG9NKzFOaTAmKG0h
KXxHX2J4RT54R3poRCgoNkYme1hrNHlOYHxTRkRCWFVkX2xWUl92YG5hajcKek5oamI9UkB0WStn
OUF0VUtrPiY1eiZ9YUliLUA/MWxXRmJQcCVBbjVSKm01YEhWQCN7dlgoQXckJGFBK2wlMCNtCnpN
fTBTTVIrO2ZLSEcoKEtydX5HMVdCWSQoM3hWZkNgJTFTOURwJmFhcVlqLXNMdDBZS1RQPWtnK3lN
cT9BbWdlRQp6K2VSZnBrdGVKNGxKbjhpXllANnBlKSl+bmhlUERtK3w5PTU+fGRSM2ooZilOcyEk
b3YxPnh8cUFBVTQ5OVl5MWQKend2QEp+ZUl9bE1wN1dpLWB9ITlPPGtSWihiZHN4cldve3YmZCp8
ZFlUQ09YYlo+eio/I3REUSZ0aEheRDtuMzdxCnpUeUd3MkZeTEwjYTJvdG8rNSpTNFBeZ1NBekxW
VDg2fUlDQG9CRzUxNjZleD5McHg8NkVjbTlVPVZGdHxyM2BpaAp6SmhRVV4/MjV9bUhvSmtzd21R
YyUrMlR8aGVrcEZJRD1hSzVQZjY1ZzMqK1BDWiRsckt4KDcrYy19WFgxZkJiYzYKej1laDgpUGZq
Um5AS1N7KEFWUFE+PmFidjFleyhpUiNXIXtCJEEod09PfERHck9WR2NuOzM1cVV8TSRZbCtKR3hi
CnpjS3VnWjNjUldYd2N1VGsyNGU9UVJBPjUyP25rM31JV3Z6c3pBbnxxPH55N1BBdStfJl4oUEB7
cDFpdDxvZ0hWZwp6WDxQSiYlfmNDUDNrVjNAOD9YT05COVI3KXY2aSRDUWotcHQ2NUBFMDtpPDFG
T0dTVTJoY3UxRCpKPl44QShMZFgKejhxTSFCN1BpQWFxNjhaWSY9NHhEPERTZ2B4dmdUa1M1Wjsl
e25gSFMpLWdJfkR9JHU4TzBmfD16NVNfejhyOFJ4CnpRZm01e1M5S0wmQCQ2T3plWipQcnY+JWM8
c3lhdVcyIVhzYSVaSmU+QUJCTF55UVllY2FYMTQ1TDtEeDkkMnF6cQp6SjtvY211STN9VlghWXt0
bTB1ZTd5YzF8P29aS156QChoNygqRH57T0E+KTBMamYkUlpRKiVOOzVeMWFPdE49TngKekBjOF4q
YHlKX2QzaTs/Uj5ja1peTj1ERHI9MzlWejlCbGk4LUtDKTktMUteTVNwKTsjOWY+SVFKby1KWHMm
cXcqCnpNUU9YbVYpM29NXm42JGxqdnJIJl50JnBhb3J2OHNabUpDSEQtUnNNQFMpLW5PJlZiaUg3
KmtXPUdXeHl2XkBIZgp6RTt9Y1E3WHJJUVBTQj9STzdTQERKUzlMK0N0cjh7ZWw4bjNyVk89bHlP
cSNWWUF3QDQtZTl2VEBWM1klLXIwcDEKekNmRlJpYlNUaFk/OW56eEcpfTQtJFVNR01Cb0I7TXM/
Si1ibzRDSW1pM1lgaWF7c3I+UkJ0fkdGI1Q2K008fU5uCno7YWs1fVdHfE5remFVM1VwKX1mMU8t
NSVrWCUrdkB1V1UxWiZ9SGBwYjllfWNqRDdxdXd+YylIcyZobSFDI1lsVwp6cSR8WDtnVllna1gx
MkglZGBzTmdXeUIqXkdmIXh7JGdNKmBoaXp1QXNXTzFteityJUYzdSZPeUd0RjxheU1mNDQKej9U
I0BGVXZ6MVlUcDFvN1IocT5+VVJ6c3h3ekkkZyF4Vm57JWNeNDgqZSo2VUhZTGZHJV9jN09EUXoq
PGpvX34pCnpuWTNOX15gMF9LX012QE45Um8/STtCVmVKUkBQbT5NNWchPll+X1AtJntMZGtmJT9u
ND0rZz5BOXQtKiFaR1J8OQp6X1Y5KDhgczdQYzhNclJ4WDZsc3N6a1NjTCtIKCUyVis3Q1M3N3Zg
S2RwQX0oSTNNYjRENjx3UUdMdWx8cEh3cSkKejY1S2cwYHlFRiRuMyZ1USNWZHY1dWolQ0htJGdW
KnpHfWZJO3BOKGR1NFNmWm5iWFpaR2YrTiVBMGB9WiYwVU9qCnpPN29KJCQ1PyY3KyNCU2ZxSVFt
Vl4xdTZTdEpBR28zPFUheGt0VD5TPUVubSFEN0JBWlBSITFaLX1OZ2VvQmgrQwp6UiFkcHt1ZTFZ
YUZ1NjhtbHFqYCFfd0owOD17bT0rTHFrTEtpJCEwZjFGM1VXWEUtI1oxM3Q5MjkmNnx4Pj9Sd3MK
emQwWVdteXgmNT82NVNfWEwzQj12UVBJU2QkPTkhNmdILVR0K0UtXy03VUV5eiNTNFZRdChhVztP
NndebT18cDQhCnpiQSMjZSRBYEg1SV4lakglIzVIZmBvfTc+PnJ+VklDb0BPQ3NtWi1WOUVlaDFl
OXNqQmxhUjJtZF4lNjMyR1pQPQp6UHRMN3cqWiFBWGNFeGtRNlJ2dD5LZFczPm5le3RXdkpJYVlB
TWR8TGVHYjxmaXRYZCFBJk47ZENtNEtOKkp5TkQKelooKWt3dnpiNnVTUyMmWUJsQFRfK1JJXzB1
YXVlJEQ5UjtFO3o/ZnBQPV5BOEtxaEZBaWYxKXpTTUxYTnhSJTRLCnpkYWE5Uk5VRSFoU1ZUe21j
YUQ+aSVCcmlzRHgkT2t0b1dseFY8VHJeU15ePH1xMXlhZ1FHKUwqSkZ+Zzt1RFJNOAp6bGp1KjJg
Q1RoVlhvP3AxOz41JjZ2fD4tRlVBZnttTX40RTxzaGtnfmAqcUVMYS1ULUMzV3YyJl87dmN9SCls
OW4KenJ3Zy1IJXAqdDVuLVFmSkNERz1oQCVCI1lCY3Faal5DPTkreDBTb1ZIbWswaUBHOX1NbUxS
ZjY0YWx9ZVh3TWdlCnozTG5sKXgpXldabllyXklSYmppKXFRXj4jYHxYRnduc2VJdDd9STlvS1Q/
NVBjVnh7aEVTZ2ZuQ24lSH08QF5DQgp6TSgwTl57TzlgamJxLXN6U2h3YHltSFQwSG59NSRvJUEz
QDxUXl5PIV49TWJ1Qzk9Um5CdzteOTs9ZHJJT1dZIV4KejhvfiNMfDNvdHQ0e1AlclQ9cTUqMX5w
KEZiZCkyNER3bzFzdWZ0dGJBeElsJk15WH1RYyExPG1mSX1SKGdyb2pVCnpQRUxOfTVeMFooIT0w
QT5jT2ZYRmdpPzY+aUJadU5RfFd2T0xPJChwUyNHQXw1OU58VEVpWTRveEl0MWVwcWMhSgp6bVBD
KGdRLTlmTyR+Xis/KD5ANG4rcnEyZ2B7YGcjIUlMP3Z2WERZRkAxRWZIJDhZIX50YCtzMDB1fClS
UktpXm8KejI4PXZQWFcjPyM5azxBMHRrTy1ec1EwUktyRl51Mzt4TVBQR3FILVcqSHx+SEB6enpe
S24oNjI0TGA0ZTswP3EpCno0d3ZMNWtkbHRRIzMyckdBZCZleEcodERMM2F6OUJnZi0lTkhxcksw
TStKYDVjU0t7SzskaVA5JihuNTZfJUh0Mgp6QXt2VyhHI0o4LUZEbTNIUj1+e3Ume0ZyaXJgX3F4
Mmc1TWZPWGY7alBOPTQqKDZ7ZUUxMTw/MmBhMlNwM3Y7cWQKemJSajJtTnlJa3ttJEs+fT9hUT1g
Y3UzSi1ZJHNQVCZ0UntRYG42X1BkOXJiNlRjY0I7R2Z7NzY4N3k7Jk9GbWs/CnpZfDlIRlB3JmU5
XyNqc3s5Xz9EPHJ8VEZmakpRMnpHYiZMNzAlS001Yk1aaj9mYTJseU9qI318b2hGKGBOb19ORwp6
KDtiaGBVM3J8PS1JbDtFVCh1X3pnMGpnXmg7YWdZQFhzaHk+NSZmNj57bl4ydU8yUXU2KGkpfCZa
O1lOWG1temQKek0oNF5ydz8jeUU/ZTxZeUB7MTw5ekAzKUpJPD5LZG4zJkQ/JFBXejtxNytIJE9K
ZTl+TiQ3T35fUTFDIT1wIzlSCnp7Kk1OQ3RIdj9tOUh8d2tkPyhrdCVQPUBUdUV7dSkyVEY8JFJ0
M3RqMlQ4ZiQpUyhOQlYjSktsRD9GfGxUYUVWVQp6NXVDRmptN0pMK0E1OCF7a2w0KD5oVE1GOEJY
KElmczxrby1hfnYoYHNWMmpKUVh6Yn1tKXQ2S0tCfmRBOzZFdnUKejY/eFFqSCg1KUBCa2tUYlRp
Y093bFNAR3J0cUxvMj58dFpXcmh0PSpJUzZEUClpMUpKNV4rX2Nnbzs0aVEzNVV2CnpgMUBudDsx
TlE0ITxhZm4tO2IpWClyJEEzeiVCaEBNM2cjMG0rTCg0PD80QmBjZGRRNjMlcFdkbk9uP1dKUDhA
Mgp6eGBEODAydShpJjMkUXxuYHwtXy0xSDJxVm9HMmw7ZyV7VDN5ISllaiYxJShTPCtGPG53JjQ3
Ym5oOFNHQlgoJUEKenRKSnFIMmw5M3VmN2lZU3tSfV9HNElZQlVRUSpVI3tHWnNQbHgpbztVUikl
JUt1R2tGeCF4U0dEO3gmM3ZjKGVkCno/NE5KMlI5YGlNS1cwaVdhMDIodVR1eDdwI1ZIciR0b0Az
JSlHQDRadG91Uzh4Z3t4eW11cEF+clNzND1yZnY9JQpzVmxEMEFvckMoZDladERZR1dgNUdVMCpE
JVBQfTdRUnxqYEF4Q3NsRzhkfF9CNFY+ZnQyV0FMfDB7e1IzCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2ZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL2F0dHJzX2xvZ28uc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYjNl
NGI3MjczNjIwZDYwNDJjODFkNGUyMGYxNmI2YWVlYmFkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2ZwpAQCAtMCwwICsxIEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz48IURPQ1RZ
UEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9y
Zy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdo
dD0iMTAwJSIgdmlld0JveD0iMCAwIDE0MiAxMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2Ns
aXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDox
LjQxNDIxOyI+PHJlY3QgaWQ9IkFydEJvYXJkMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0MS41Nzgi
IGhlaWdodD0iMTE3LjYzOCIgc3R5bGU9ImZpbGw6bm9uZTsiLz48cGF0aCBkPSJNMzIuNTUsODIu
NTE2Yy0wLjE5MSw0LjAyNyAtMC44MzIsOC41MDMgLTEuNzkzLDEzLjIzOGMtMS4wMjMsNC43OTMg
LTIuMzAxLDkuMjY5IC0zLjgzNiwxMy4yMzRjLTMuMzI0LDEuMjE1IC03LjAzNSwxLjkyMiAtMTAu
ODA4LDEuOTIyYy0zLjc3LDAgLTcuMTYxLC0wLjcwNyAtOS45NzMsLTEuOTIyYzAsMCAtMC4zODcs
LTMuMTMzIDAuNjM3LC03Ljg2M2MxLjAyMywtNC43OTcgMi42ODcsLTcuOTMgMi42ODcsLTcuOTNj
My4zMjQsLTEuMjE1IDcuMDk4LC0xLjkxOCAxMC44NzEsLTEuOTE4YzEuODU2LDAgMy42NDUsMC4x
OTIgNS4zMDksMC41MTJjMC40NDUsLTIuNjg4IDAuODMyLC01LjMwOSAwLjgzMiwtNS4zMDljMCww
IC0yLjQ5NiwtMC43MDMgLTQuOTg4LC0wLjcwM2MtNC44NjQsMCAtOS40NjUsMS4wODYgLTExLjQ1
LDEuNjY0YzAuNTc5LC0xLjcyNiAxLjA5LC0zLjMyOCAxLjcyNywtNC45MjVjMy4zMjgsLTEuMTUz
IDcuMDM1LC0xLjg1NiAxMC44MDksLTEuODU2YzMuNzczLDAgNy4xNiwwLjcwMyA5Ljk3NiwxLjg1
NlptLTE1LjM0OCwyMy4yNzdjMi43NSwwIDUuMzA5LC0wLjcwMyA1LjMwOSwtMC43MDNjMCwwIDEu
MzQsLTQuNjY4IDIuMTA5LC03Ljk5NmMtMS4xNTIsLTAuMzE3IC0zLjEzMiwtMC43MDQgLTUuMzcx
LC0wLjcwNGMtMi40OTYsMCAtNS40MzcsMC43MDQgLTUuNDM3LDAuNzA0YzAsMCAtMC43MDMsMS42
NjQgLTEuMjE1LDQuMDMxYy0wLjUxMiwyLjMwMSAtMC40NDUsMy45NjUgLTAuNDQ1LDMuOTY1YzAs
MCAyLjU1NCwwLjcwMyA1LjA1LDAuNzAzWm0zMi42NzYsMGMyLjgxMywwIDUuNjI5LC0wLjUxMiA3
Ljg2NywtMS4wMjRjLTAuNzY5LDEuOTgxIC0xLjY2NCwzLjc3NCAtMi42MjEsNS41Yy0yLjA0Nyww
LjM4MyAtNC4xNiwwLjY0MSAtNi4zMzIsMC42NDFjLTMuNzczLDAgLTcuMDk3LC0wLjcwNyAtOS45
MTQsLTEuOTIyYzAuMTI5LC0zLjk2NSAwLjc3LC04LjQ0MSAxLjc5MywtMTMuMjM0bDEuOTE4LC05
LjA4MmwtNi40NjEsMGMwLjcwNywtMS43ODkgMS40NzMsLTMuNDUzIDIuNDk2LC01LjA1MWw1LjA1
MSwwbDEuMzQ0LC02LjMzMmMxLjkxOCwtMC43MDMgMy45NjUsLTEuMjE1IDYuMDc0LC0xLjUzNWwt
MS42Niw3Ljg2N2wxMS4xMjUsMGMtMC43MDMsMS43ODkgLTEuNTM1LDMuNTE2IC0yLjQ5Miw1LjA1
MWwtOS43MjMsMGwtMS45MTgsOS4wODJjLTAuNzAzLDMuMjYyIC0xLjQ2OSw5LjMzNiAtMS40Njks
OS4zMzZjMCwwIDIuNDkzLDAuNzAzIDQuOTIyLDAuNzAzWm0yNy40OTYsMGMyLjgxNywwIDUuNjI5
LC0wLjUxMiA3Ljg2NywtMS4wMjRjLTAuNzY1LDEuOTgxIC0xLjY2NCwzLjc3NCAtMi42MjEsNS41
Yy0yLjA0NiwwLjM4MyAtNC4xNTYsMC42NDEgLTYuMzMyLDAuNjQxYy0zLjc3MywwIC03LjA5Nywt
MC43MDcgLTkuOTEsLTEuOTIyYzAuMTI1LC0zLjk2NSAwLjc2NiwtOC40NDEgMS43ODksLTEzLjIz
NGwxLjkxOCwtOS4wODJsLTYuNDU3LDBjMC43MDMsLTEuNzg5IDEuNDY5LC0zLjQ1MyAyLjQ5Miwt
NS4wNTFsNS4wNTUsMGwxLjM0LC02LjMzMmMxLjkxOCwtMC43MDMgMy45NjUsLTEuMjE1IDYuMDc0
LC0xLjUzNWwtMS42Niw3Ljg2N2wxMS4xMjUsMGMtMC43MDMsMS43ODkgLTEuNTM1LDMuNTE2IC0y
LjQ5Miw1LjA1MWwtOS43MTksMGwtMS45MjIsOS4wODJjLTAuNzAzLDMuMjYyIC0xLjQ2OSw5LjMz
NiAtMS40NjksOS4zMzZjMCwwIDIuNDkzLDAuNzAzIDQuOTIyLDAuNzAzWm0yOC4xMzcsLTI1LjEz
M2MxLjk4NCwwIDMuODQsMC4xOTEgNS42MjksMC41NzhjLTAuNzAzLDEuNzI3IC0xLjQ2OSwzLjMy
NCAtMi4zNjcsNC44NmMtMS40MDYsLTAuMTkyIC0yLjgxMywtMC4zMjEgLTQuMzQ4LC0wLjMyMWMt
Mi40OTIsMCAtNS4yNDIsMC43MDMgLTUuMjQyLDAuNzAzYzAsMCAtMS44NTYsNi4wNzUgLTIuNDk2
LDkuMjc0bC0zLjA2NywxNC41MTVsLTUuODIsMGwzLjA3LC0xNC41MTVjMC45NTcsLTQuNzM1IDIu
MzAxLC05LjIxMSAzLjgzNiwtMTMuMjM4YzMuMzI1LC0xLjE1MyA3LjAzNSwtMS44NTYgMTAuODA1
LC0xLjg1NlptMjguNzE1LDEzLjYyMWMwLDAgMC40NDUsMi42MjEgLTAuNTc0LDcuMzU2Yy0xLjAy
NCw0Ljc5NiAtMi41NTksNy4zNTEgLTIuNTU5LDcuMzUxYy0zLjMyOCwxLjIxNSAtNy4wMzUsMS45
MjIgLTEwLjgwOSwxLjkyMmMtMy43NzMsMCAtNy4xNiwtMC43MDcgLTkuOTc2LC0xLjkyMmMwLDAg
LTAuMzgzLC0xLjcyNiAwLjEyOSwtNC45ODhjMS40MDYsMC4zODcgNi40NTcsMS43OTMgMTAuOTMz
LDEuNzkzYzIuNDk3LDAgNS4zNzUsLTAuNzAzIDUuMzc1LC0wLjcwM2MwLDAgMC43MDQsLTEuMTUz
IDEuMTQ5LC0zLjQ1M2MwLjUxMiwtMi4zMDUgMC4zMiwtMy40NTQgMC4zMiwtMy40NTRjMCwwIC0y
LjU1OCwtMC43MDMgLTUuMDUxLC0wLjcwM2MtMy45MDIsMCAtNy4yMjYsLTAuNjQgLTEwLjAzOSwt
MS44NTVjMCwwIC0wLjM4NiwtMi44NzkgMC4zODMsLTYuNTI0YzAuNzY2LC0zLjcwNyAyLjQzLC02
LjU4NSAyLjQzLC02LjU4NWMzLjMyNCwtMS4xNTMgNy4wMzUsLTEuODU2IDEwLjgwOCwtMS44NTZj
My43NywwIDcuMTYxLDAuNzAzIDkuOTczLDEuODU2YzAsMC4xMjggMC4zODcsMi4wNDYgLTAuMDYy
LDUuMTc5Yy0xLjUzNiwtMC40NDkgLTcuMTY1LC0xLjkxOCAtMTEsLTEuOTE4Yy0yLjQ5MywwIC01
LjM3MiwwLjcwMyAtNS4zNzIsMC43MDNjMCwwIC0wLjY0LDEuMDI0IC0wLjk1NywyLjYyMWMtMC4z
MiwxLjU5OCAtMC4xOTUsMi42MjIgLTAuMTk1LDIuNjIyYzAsMCAyLjQ5NiwwLjY0IDUuMTE3LDAu
NzAzYzMuNzc0LDAgNy4xNjQsMC42NCA5Ljk3NywxLjg1NVoiIHN0eWxlPSJmaWxsOiMyMjI7Zmls
bC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTc5LjEyLDQ0LjUzOWMwLC0wLjkxNCAtMC4wNjYs
LTEuODA1IC0wLjE5NSwtMi42OGwyLjgzMiwtMS42ODdsLTAuMDU4LC0wLjI2NmMtMC40MzQsLTIu
MDA0IC0xLjE0NSwtMy45MDIgLTIuMDg2LC01LjY2bC0wLjEzNywtMC4yNTRsLTMuMTU2LDAuNzIz
Yy0wLjc2NiwtMS4yMzUgLTEuNjc2LC0yLjM3NSAtMi43MDMsLTMuMzk1bDEuMjg1LC0zLjAxMmwt
MC4yLC0wLjE3NWMtMS41LC0xLjI5MyAtMy4xNjgsLTIuMzkxIC00Ljk3NiwtMy4yNDZsLTAuMjU0
LC0wLjExOGwtMi4xMzcsMi40NDJjLTEuMzg2LC0wLjU1MSAtMi44NTUsLTAuOTM0IC00LjM4Niwt
MS4xMzdsLTAuNzI3LC0zLjE3NmwtMC4yNzcsLTAuMDE1Yy0wLjQ3NywtMC4wMzUgLTAuOTY1LC0w
LjA1OSAtMS40NTcsLTAuMDU5Yy0xLjUyLDAgLTMsMC4xNiAtNC40MywwLjQ1N2wtMC4yNzcsMC4w
NTFsLTAuMjkzLDMuMjVjLTEuNDY1LDAuNDEgLTIuODY0LDAuOTk2IC00LjE2NCwxLjczbC0yLjQz
OCwtMi4xMzJsLTAuMjM4LDAuMTU2Yy0xLjY3MiwxLjA5IC0zLjE4OCwyLjQwMiAtNC40OTYsMy44
OTRsLTAuMTgsMC4yMDdsMS42ODQsMi44MjFjLTAuODYsMS4xMjUgLTEuNjAyLDIuMzYzIC0yLjE4
OCwzLjY3NWwtMy4yMTksLTAuMjg5bC0wLjA5MywwLjI2NmMtMC43MDcsMS44NjMgLTEuMTU3LDMu
ODUyIC0xLjMxMyw1LjkxOGwtMC4wMjMsMC4yNjZsMy4wMzUsMS4yOTZjLTAuMDA0LDAuMDQ3IC0w
LjAwNCwwLjA5OCAtMC4wMDQsMC4xNDljMCwxLjI4OSAwLjEzNywyLjU1NSAwLjM4NywzLjc2Nmwt
Mi43ODIsMS42NTZsMC4wNzEsMC4yNzNjMC41NSwyLjAyOCAxLjM3OSwzLjkyNiAyLjQ1Myw1LjY3
MmwwLjE0LDAuMjI3bDMuMjIzLC0wLjczMWMwLjcwMywwLjk3MyAxLjQ5NiwxLjg4MyAyLjM3MSwy
LjcwM2wtMS4yNzcsMi45OTNsMC4yMTEsMC4xNzljMS42MDksMS4zMjggMy40MSwyLjQzNCA1LjM1
OSwzLjI1OGwwLjI0MiwwLjEwNWwyLjE3NiwtMi40OGMxLjA1OSwwLjM2NyAyLjE3NiwwLjY0MSAz
LjMxMywwLjgwOWwwLjcyNiwzLjE4N2wwLjI4MSwwLjAyYzAuNTYzLDAuMDQ3IDEuMTQ5LDAuMDc4
IDEuNzQzLDAuMDc4YzEuNTU0LDAgMy4wNywtMC4xNjggNC41MzUsLTAuNDgxbDAuMjczLC0wLjA1
OGwwLjI5MywtMy4yNTRjMS4xMTMsLTAuMzE3IDIuMTgsLTAuNzM4IDMuMjAzLC0xLjI0MmwyLjQ3
NywyLjE2NGwwLjIzNCwtMC4xMzdjMS44MTMsLTEuMDcgMy40NDksLTIuMzkxIDQuODc1LC0zLjkx
OGwwLjE5NiwtMC4yMDNsLTEuNjY1LC0yLjc4OWMwLjc3NCwtMC45MzggMS40NSwtMS45NjUgMi4w
MjgsLTMuMDQ3bDMuMjkzLDAuMjk3bDAuMTA1LC0wLjI1YzAuODIxLC0xLjg0IDEuMzkxLC0zLjgz
NiAxLjY3MiwtNS45MjJsMC4wMzUsLTAuMjg1bC0yLjk3NiwtMS4yN2MwLjAzMSwtMC40MjkgMC4w
NTQsLTAuODcxIDAuMDU0LC0xLjMyWm0tMTIuOTIxLDBjMCwzLjE1NiAtMi41NTUsNS43MTEgLTUu
NzExLDUuNzE1Yy0zLjE2MSwtMC4wMDQgLTUuNzExLC0yLjU1OSAtNS43MTUsLTUuNzE1YzAuMDA0
LC0zLjE1MiAyLjU1NCwtNS43MDMgNS43MTUsLTUuNzE1YzMuMTU2LDAuMDEyIDUuNzExLDIuNTYz
IDUuNzExLDUuNzE1WiIgc3R5bGU9ImZpbGw6IzIyMjtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0
aCBkPSJNMTAzLjUxOSwxNS41bC0wLjA2NywtMC4yNDJsLTIuMjUzLC0wLjAxMmMtMC4zMTcsLTAu
OTM0IC0wLjc0NywtMS44MzIgLTEuMjU4LC0yLjY2NGwxLjM1MSwtMS44NDRsLTAuMTM2LC0wLjE5
MWMtMC44MDksLTEuMTIxIC0xLjc3OCwtMi4xMzMgLTIuODY4LC0zLjAwNGwtMC4xOTUsLTAuMTU2
bC0xLjg0LDEuMzE2Yy0wLjgzMiwtMC41NzggLTEuNzUsLTEuMDU5IC0yLjcyMiwtMS40MzdsMC4w
MTEsLTIuMjY2bC0wLjIzLC0wLjA3NGMtMC4zMjgsLTAuMDk4IC0wLjY0OSwtMC4xOTIgLTAuOTky
LC0wLjI3NGMtMS4wMjgsLTAuMjQyIC0yLjA2MywtMC4zNjcgLTMuMDg2LC0wLjQwMmwtMC4yNSwt
MC4wMDRsLTAuNzE1LDIuMTZjLTEuMDI4LDAuMDQ3IC0yLjA0NywwLjIxNSAtMy4wMjQsMC40OTZs
LTEuMzA4LC0xLjg0bC0wLjIzOCwwLjA5Yy0xLjMxNywwLjQ2OSAtMi41NTksMS4xMjEgLTMuNjky
LDEuOTM0bC0wLjE5NSwwLjE0bDAuNjk1LDIuMThjLTAuNzQyLDAuNjE3IC0xLjQyMiwxLjMxMyAt
Mi4wMTYsMi4wOWwtMi4xNCwtMC43MTFsLTAuMTM3LDAuMjExYy0wLjc3MywxLjE1NiAtMS40MDIs
Mi40MzQgLTEuODQ0LDMuODE2bC0wLjA2NiwwLjIyM2wxLjg1MiwxLjM2M2MtMC4wMTIsMC4wMiAt
MC4wMTYsMC4wNDMgLTAuMDIsMC4wNTljLTAuMjA3LDAuODY3IC0wLjMxMiwxLjcyNiAtMC4zNCwy
LjU3OGwtMi4xNTYsMC42ODRsMC4wMTIsMC4yNDZjMC4wNTQsMS40NjggMC4zMDgsMi45MDIgMC43
NjEsNC4yNjFsMC4wNzUsMC4yMjdsMi4zMDgsMC4wMTJjMC4zMTMsMC43NSAwLjY5MiwxLjQ2NSAx
LjEzNywyLjE0OGwtMS4zNDgsMS44MjhsMC4xNDksMC4xOTZjMC44ODYsMS4xNiAxLjkyOSwyLjIw
NyAzLjEyOSwzLjA3NGwwLjE5MSwwLjE0bDEuODY3LC0xLjMzNWMwLjY0MSwwLjQwMiAxLjMyOCww
Ljc1IDIuMDQ3LDEuMDM5bC0wLjAxNiwyLjI4MWwwLjIzMSwwLjA3NGMwLjM4NywwLjEyMSAwLjc3
NywwLjIzNCAxLjE4LDAuMzMyYzEuMDYyLDAuMjQ2IDIuMTIxLDAuMzc5IDMuMTY4LDAuNDAybDAu
MjQyLDAuMDA0bDAuNzE4LC0yLjE2NGMwLjc4MiwtMC4wMzUgMS41NDcsLTAuMTQ0IDIuMjk3LC0w
LjMxNmwxLjMzNiwxLjg2M2wwLjIzMSwtMC4wNzRjMS4zOTgsLTAuNDMgMi43MywtMS4wNzQgMy45
NDUsLTEuODg3bDAuMjAzLC0wLjEzN2wtMC42NzksLTIuMTZjMC42NDgsLTAuNTA0IDEuMjU3LC0x
LjA2NiAxLjgwNCwtMS42ODdsMi4xODQsMC43MjZsMC4xNDQsLTAuMTkxYzAuODYsLTEuMTE3IDEu
NTY3LC0yLjM4NyAyLjA5LC0zLjc2MmwwLjA5LC0wLjIzOGwtMS44MTYsLTEuMzM2YzAuMDg2LC0w
LjI3NyAwLjE2LC0wLjU1OSAwLjIzLC0wLjg0YzAuMTQxLC0wLjYxMyAwLjIzOCwtMS4yMTkgMC4y
OTMsLTEuODJsMi4xOTEsLTAuNjk1bDAsLTAuMjM5YzAsLTAuMDg2IDAuMDA4LC0wLjE3MiAwLjAw
OCwtMC4yNjFjLTAuMDA0LC0xLjM0IC0wLjE4MywtMi42NjEgLTAuNTIzLC0zLjkzWm0tMTAuNzY2
LDMuOTQxYzAsMC4zMDEgLTAuMDMxLDAuNjAyIC0wLjEwMSwwLjkwM2MtMC40MywxLjggLTIuMDMy
LDMuMDE1IC0zLjgwNSwzLjAxNWMtMC4zMDEsMCAtMC41OTgsLTAuMDM1IC0wLjg5OCwtMC4xMDlj
LTEuODA1LC0wLjQxNCAtMy4wMTIsLTIuMDI0IC0zLjAxMiwtMy43OTdjMCwtMC4yOTcgMC4wMzEs
LTAuNTk0IDAuMDk3LC0wLjg5OGMwLjQyMiwtMS44MDEgMi4wMzIsLTMuMDE2IDMuODA5LC0zLjAx
NmMwLjI4OSwwIDAuNTk0LDAuMDMxIDAuODk4LDAuMTA1YzEuNzkzLDAuNDE4IDMuMDEyLDIuMDMy
IDMuMDEyLDMuNzk3WiIgc3R5bGU9ImZpbGw6IzIyMjtmaWxsLXJ1bGU6bm9uemVybzsiLz48L3N2
Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Rv
Y3MvX3N0YXRpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NTAwMjIwYjg3MjJkN2U3Y2IwOWQwOTc2MGRhYTIxY2Ni
NjFiY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRp
Yy9hdHRyc19sb2dvLnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL2F0dHJzX2xvZ28uc3Zn
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvYXBpLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9h
cGkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUyYWNiNzQwMGY0Njk0N2I0Njk2YmM0MmY4MWIxMDFjZjE0ZjQ5
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvYXBpLnJzdApAQCAtMCwwICsx
LDQyOCBAQAorLi4gX2FwaToKKworQVBJIFJlZmVyZW5jZQorPT09PT09PT09PT09PQorCisuLiBj
dXJyZW50bW9kdWxlOjogYXR0cgorCitgYGF0dHJzYGAgd29ya3MgYnkgZGVjb3JhdGluZyBhIGNs
YXNzIHVzaW5nIDpmdW5jOmBhdHRyLnNgIGFuZCB0aGVuIG9wdGlvbmFsbHkgZGVmaW5pbmcgYXR0
cmlidXRlcyBvbiB0aGUgY2xhc3MgdXNpbmcgOmZ1bmM6YGF0dHIuaWJgLgorCisuLiBub3RlOjoK
KworICAgV2hlbiB0aGlzIGRvY3VtZW50YXRpb24gc3BlYWtzIGFib3V0ICJgYGF0dHJzYGAgYXR0
cmlidXRlcyIgaXQgbWVhbnMgdGhvc2UgYXR0cmlidXRlcyB0aGF0IGFyZSBkZWZpbmVkIHVzaW5n
IDpmdW5jOmBhdHRyLmliYCBpbiB0aGUgY2xhc3MgYm9keS4KKworV2hhdCBmb2xsb3dzIGlzIHRo
ZSBBUEkgZXhwbGFuYXRpb24sIGlmIHlvdSdkIGxpa2UgYSBtb3JlIGhhbmRzLW9uIGludHJvZHVj
dGlvbiwgaGF2ZSBhIGxvb2sgYXQgOmRvYzpgZXhhbXBsZXNgLgorCisKKworQ29yZQorLS0tLQor
CisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnModGhlc2U9Tm9uZSwgcmVwcl9ucz1Ob25lLCByZXBy
PVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgc2xvdHM9RmFsc2UsIGZyb3pl
bj1GYWxzZSwgc3RyPUZhbHNlKQorCisgICAuLiBub3RlOjoKKworICAgICAgYGBhdHRyc2BgIGFs
c28gY29tZXMgd2l0aCBhIHNlcmlvdXMgYnVzaW5lc3MgYWxpYXMgYGBhdHRyLmF0dHJzYGAuCisK
KyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IGltcG9ydCBh
dHRyCisgICAgICA+Pj4gQGF0dHIucworICAgICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAg
IC4uLiAgICAgX3ByaXZhdGUgPSBhdHRyLmliKCkKKyAgICAgID4+PiBDKHByaXZhdGU9NDIpCisg
ICAgICBDKF9wcml2YXRlPTQyKQorICAgICAgPj4+IGNsYXNzIEQob2JqZWN0KToKKyAgICAgIC4u
LiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgpOgorICAgICAgLi4uICAgICAgICAgc2VsZi54ID0g
eAorICAgICAgPj4+IEQoMSkKKyAgICAgIDxEIG9iamVjdCBhdCAuLi4+CisgICAgICA+Pj4gRCA9
IGF0dHIucyh0aGVzZT17IngiOiBhdHRyLmliKCl9LCBpbml0PUZhbHNlKShEKQorICAgICAgPj4+
IEQoMSkKKyAgICAgIEQoeD0xKQorCisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuaWIKKworICAg
Li4gbm90ZTo6CisKKyAgICAgIGBgYXR0cnNgYCBhbHNvIGNvbWVzIHdpdGggYSBzZXJpb3VzIGJ1
c2luZXNzIGFsaWFzIGBgYXR0ci5hdHRyaWJgYC4KKworICAgVGhlIG9iamVjdCByZXR1cm5lZCBi
eSA6ZnVuYzpgYXR0ci5pYmAgYWxzbyBhbGxvd3MgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQgYW5k
IHRoZSB2YWxpZGF0b3IgdXNpbmcgZGVjb3JhdG9yczoKKworICAgLi4gZG9jdGVzdDo6CisKKyAg
ICAgID4+PiBAYXR0ci5zCisgICAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4uICAg
ICB4ID0gYXR0ci5pYigpCisgICAgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgICAgIC4uLiAg
ICAgQHgudmFsaWRhdG9yCisgICAgICAuLi4gICAgIGRlZiBuYW1lX2Nhbl9iZV9hbnl0aGluZyhz
ZWxmLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgICAgIC4uLiAgICAgICAgIGlmIHZhbHVlIDwgMDoK
KyAgICAgIC4uLiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ4IG11c3QgYmUgcG9zaXRp
dmUiKQorICAgICAgLi4uICAgICBAeS5kZWZhdWx0CisgICAgICAuLi4gICAgIGRlZiBuYW1lX2Rv
ZXNfbm90X21hdHRlcihzZWxmKToKKyAgICAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmLnggKyAx
CisgICAgICA+Pj4gQygxKQorICAgICAgQyh4PTEsIHk9MikKKyAgICAgID4+PiBDKC0xKQorICAg
ICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgIC4uLgorICAg
ICAgVmFsdWVFcnJvcjogeCBtdXN0IGJlIHBvc2l0aXZlCisKKy4uIGF1dG9jbGFzczo6IGF0dHIu
QXR0cmlidXRlCisKKyAgIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBmcmVxdWVudGx5IHVz
ZWQgZm9yIGludHJvc3BlY3Rpb24gcHVycG9zZXMgbGlrZToKKworICAgLSA6ZnVuYzpgZmllbGRz
YCByZXR1cm5zIGEgdHVwbGUgb2YgdGhlbS4KKyAgIC0gVmFsaWRhdG9ycyBnZXQgdGhlbSBwYXNz
ZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LgorCisgICAuLiB3YXJuaW5nOjoKKworICAgICAgIFlv
dSBzaG91bGQgbmV2ZXIgaW5zdGFudGlhdGUgdGhpcyBjbGFzcyB5b3Vyc2VsZiEKKworICAgLi4g
ZG9jdGVzdDo6CisKKyAgICAgID4+PiBpbXBvcnQgYXR0cgorICAgICAgPj4+IEBhdHRyLnMKKyAg
ICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAg
ICAgID4+PiBhdHRyLmZpZWxkcyhDKS54CisgICAgICBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1
bHQ9Tk9USElORywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9Tm9u
ZSwgaW5pdD1UcnVlLCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPW1hcHBpbmdwcm94eSh7fSksIHR5
cGU9Tm9uZSkKKworCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLm1ha2VfY2xhc3MKKworICAgVGhp
cyBpcyBoYW5keSBpZiB5b3Ugd2FudCB0byBwcm9ncmFtbWF0aWNhbGx5IGNyZWF0ZSBjbGFzc2Vz
LgorCisgICBGb3IgZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgID4+PiBDMSA9
IGF0dHIubWFrZV9jbGFzcygiQzEiLCBbIngiLCAieSJdKQorICAgICAgPj4+IEMxKDEsIDIpCisg
ICAgICBDMSh4PTEsIHk9MikKKyAgICAgID4+PiBDMiA9IGF0dHIubWFrZV9jbGFzcygiQzIiLCB7
IngiOiBhdHRyLmliKGRlZmF1bHQ9NDIpLAorICAgICAgLi4uICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAieSI6IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpfSkKKyAgICAg
ID4+PiBDMigpCisgICAgICBDMih4PTQyLCB5PVtdKQorCisKKy4uIGF1dG9jbGFzczo6IGF0dHIu
RmFjdG9yeQorCisgICBGb3IgZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgID4+
PiBAYXR0ci5zCisgICAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4uICAgICB4ID0g
YXR0ci5pYihkZWZhdWx0PWF0dHIuRmFjdG9yeShsaXN0KSkKKyAgICAgIC4uLiAgICAgeSA9IGF0
dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkoCisgICAgICAuLi4gICAgICAgICBsYW1iZGEgc2Vs
Zjogc2V0KHNlbGYueCksCisgICAgICAuLi4gICAgICAgICB0YWtlc19zZWxmPVRydWUpCisgICAg
ICAuLi4gICAgICkKKyAgICAgID4+PiBDKCkKKyAgICAgIEMoeD1bXSwgeT1zZXQoKSkKKyAgICAg
ID4+PiBDKFsxLCAyLCAzXSkKKyAgICAgIEMoeD1bMSwgMiwgM10sIHk9ezEsIDIsIDN9KQorCisK
Ky4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuRnJvemVuSW5zdGFuY2VFcnJvcgor
Li4gYXV0b2V4Y2VwdGlvbjo6IGF0dHIuZXhjZXB0aW9ucy5BdHRyc0F0dHJpYnV0ZU5vdEZvdW5k
RXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0NsYXNz
RXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuRGVmYXVsdEFscmVhZHlT
ZXRFcnJvcgorLi4gYXV0b2V4Y2VwdGlvbjo6IGF0dHIuZXhjZXB0aW9ucy5VbmFubm90YXRlZEF0
dHJpYnV0ZUVycm9yCisKKyAgIEZvciBleGFtcGxlOjoKKworICAgICAgIEBhdHRyLnMoYXV0b19h
dHRyaWJzPVRydWUpCisgICAgICAgY2xhc3MgQzoKKyAgICAgICAgICAgeDogaW50CisgICAgICAg
ICAgIHkgPSBhdHRyLmliKCkKKworCitJbmZsdWVuY2luZyBJbml0aWFsaXphdGlvbgorKysrKysr
KysrKysrKysrKysrKysrKysrKysKKworR2VuZXJhbGx5IHNwZWFraW5nLCBpdCdzIGJlc3QgdG8g
a2VlcCBsb2dpYyBvdXQgb2YgeW91ciBgYF9faW5pdF9fYGAuCitUaGUgbW9tZW50IHlvdSBuZWVk
IGEgZmluZXIgY29udHJvbCBvdmVyIGhvdyB5b3VyIGNsYXNzIGlzIGluc3RhbnRpYXRlZCwgaXQn
cyB1c3VhbGx5IGJlc3QgdG8gdXNlIGEgY2xhc3NtZXRob2QgZmFjdG9yeSBvciB0byBhcHBseSB0
aGUgYGJ1aWxkZXIgcGF0dGVybiA8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQnVpbGRl
cl9wYXR0ZXJuPmBfLgorCitIb3dldmVyLCBzb21ldGltZXMgeW91IG5lZWQgdG8gZG8gdGhhdCBv
bmUgcXVpY2sgdGhpbmcgYWZ0ZXIgeW91ciBjbGFzcyBpcyBpbml0aWFsaXplZC4KK0FuZCBmb3Ig
dGhhdCBgYGF0dHJzYGAgb2ZmZXJzIHRoZSBgYF9fYXR0cnNfcG9zdF9pbml0X19gYCBob29rIHRo
YXQgaXMgYXV0b21hdGljYWxseSBkZXRlY3RlZCBhbmQgcnVuIGFmdGVyIGBgYXR0cnNgYCBpcyBk
b25lIGluaXRpYWxpemluZyB5b3VyIGluc3RhbmNlOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+
IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmli
KCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoaW5pdD1GYWxzZSkKKyAgIC4uLiAgICAgZGVmIF9f
YXR0cnNfcG9zdF9pbml0X18oc2VsZik6CisgICAuLi4gICAgICAgICBzZWxmLnkgPSBzZWxmLngg
KyAxCisgICA+Pj4gQygxKQorICAgQyh4PTEsIHk9MikKKworUGxlYXNlIG5vdGUgdGhhdCB5b3Ug
Y2FuJ3QgZGlyZWN0bHkgc2V0IGF0dHJpYnV0ZXMgb24gZnJvemVuIGNsYXNzZXM6CisKKy4uIGRv
Y3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhmcm96ZW49VHJ1ZSkKKyAgIC4uLiBjbGFzcyBGcm96
ZW5Ccm9rZW4ob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9IGF0dHIuaWIoKQorICAgLi4uICAgICB5
ID0gYXR0ci5pYihpbml0PUZhbHNlKQorICAgLi4uICAgICBkZWYgX19hdHRyc19wb3N0X2luaXRf
XyhzZWxmKToKKyAgIC4uLiAgICAgICAgIHNlbGYueSA9IHNlbGYueCArIDEKKyAgID4+PiBGcm96
ZW5Ccm9rZW4oMSkKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAg
IC4uLgorICAgYXR0ci5leGNlcHRpb25zLkZyb3plbkluc3RhbmNlRXJyb3I6IGNhbid0IHNldCBh
dHRyaWJ1dGUKKworSWYgeW91IG5lZWQgdG8gc2V0IGF0dHJpYnV0ZXMgb24gYSBmcm96ZW4gY2xh
c3MsIHlvdSdsbCBoYXZlIHRvIHJlc29ydCB0byB0aGUgOnJlZjpgc2FtZSB0cmljayA8aG93LWZy
b3plbj5gIGFzIGBgYXR0cnNgYCBhbmQgdXNlIDptZXRoOmBvYmplY3QuX19zZXRhdHRyX19gOgor
CisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRyLnMoZnJvemVuPVRydWUpCisgICAuLi4gY2xh
c3MgRnJvemVuKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgIC4uLiAgICAg
eSA9IGF0dHIuaWIoaW5pdD1GYWxzZSkKKyAgIC4uLiAgICAgZGVmIF9fYXR0cnNfcG9zdF9pbml0
X18oc2VsZik6CisgICAuLi4gICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgInkiLCBz
ZWxmLnggKyAxKQorICAgPj4+IEZyb3plbigxKQorICAgRnJvemVuKHg9MSwgeT0yKQorCisKKy4u
IF9oZWxwZXJzOgorCitIZWxwZXJzCistLS0tLS0tCisKK2BgYXR0cnNgYCBjb21lcyB3aXRoIGEg
YnVuY2ggb2YgaGVscGVyIG1ldGhvZHMgdGhhdCBtYWtlIHdvcmtpbmcgd2l0aCBpdCBlYXNpZXI6
CisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuZmllbGRzCisKKyAgIEZvciBleGFtcGxlOgorCisg
ICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9i
amVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9IGF0
dHIuaWIoKQorICAgICAgPj4+IGF0dHIuZmllbGRzKEMpCisgICAgICAoQXR0cmlidXRlKG5hbWU9
J3gnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1Ob25lLCByZXByPVRydWUsIGNtcD1UcnVl
LCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCBtZXRhZGF0YT1tYXBwaW5ncHJv
eHkoe30pLCB0eXBlPU5vbmUpLCBBdHRyaWJ1dGUobmFtZT0neScsIGRlZmF1bHQ9Tk9USElORywg
dmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9Tm9uZSwgaW5pdD1UcnVl
LCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPW1hcHBpbmdwcm94eSh7fSksIHR5cGU9Tm9uZSkpCisg
ICAgICA+Pj4gYXR0ci5maWVsZHMoQylbMV0KKyAgICAgIEF0dHJpYnV0ZShuYW1lPSd5JywgZGVm
YXVsdD1OT1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1O
b25lLCBpbml0PVRydWUsIGNvbnZlcnQ9Tm9uZSwgbWV0YWRhdGE9bWFwcGluZ3Byb3h5KHt9KSwg
dHlwZT1Ob25lKQorICAgICAgPj4+IGF0dHIuZmllbGRzKEMpLnkgaXMgYXR0ci5maWVsZHMoQylb
MV0KKyAgICAgIFRydWUKKworCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLmhhcworCisgICBGb3Ig
ZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgID4+PiBAYXR0ci5zCisgICAgICAu
Li4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4uICAgICBwYXNzCisgICAgICA+Pj4gYXR0ci5o
YXMoQykKKyAgICAgIFRydWUKKyAgICAgID4+PiBhdHRyLmhhcyhvYmplY3QpCisgICAgICBGYWxz
ZQorCisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuYXNkaWN0CisKKyAgIEZvciBleGFtcGxlOgor
CisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBD
KG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9
IGF0dHIuaWIoKQorICAgICAgPj4+IGF0dHIuYXNkaWN0KEMoMSwgQygyLCAzKSkpCisgICAgICB7
J3gnOiAxLCAneSc6IHsneCc6IDIsICd5JzogM319CisKKworLi4gYXV0b2Z1bmN0aW9uOjogYXR0
ci5hc3R1cGxlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAg
Pj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHgg
PSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgICAgPj4+IGF0dHIu
YXN0dXBsZShDKDEsMikpCisgICAgICAoMSwgMikKKworYGBhdHRyc2BgIGluY2x1ZGVzIHNvbWUg
aGFuZHkgaGVscGVycyBmb3IgZmlsdGVyaW5nOgorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLmZp
bHRlcnMuaW5jbHVkZQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLmZpbHRlcnMuZXhjbHVkZQor
CitTZWUgOnJlZjpgYXNkaWN0YCBmb3IgZXhhbXBsZXMuCisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0
dHIuZXZvbHZlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAg
Pj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHgg
PSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgICAgPj4+IGkxID0g
QygxLCAyKQorICAgICAgPj4+IGkxCisgICAgICBDKHg9MSwgeT0yKQorICAgICAgPj4+IGkyID0g
YXR0ci5ldm9sdmUoaTEsIHk9MykKKyAgICAgID4+PiBpMgorICAgICAgQyh4PTEsIHk9MykKKyAg
ICAgID4+PiBpMSA9PSBpMgorICAgICAgRmFsc2UKKworICAgYGBldm9sdmVgYCBjcmVhdGVzIGEg
bmV3IGluc3RhbmNlIHVzaW5nIGBgX19pbml0X19gYC4KKyAgIFRoaXMgZmFjdCBoYXMgc2V2ZXJh
bCBpbXBsaWNhdGlvbnM6CisKKyAgICogcHJpdmF0ZSBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzcGVj
aWZpZWQgd2l0aG91dCB0aGUgbGVhZGluZyB1bmRlcnNjb3JlLCBqdXN0IGxpa2UgaW4gYGBfX2lu
aXRfX2BgLgorICAgKiBhdHRyaWJ1dGVzIHdpdGggYGBpbml0PUZhbHNlYGAgY2FuJ3QgYmUgc2V0
IHdpdGggYGBldm9sdmVgYC4KKyAgICogdGhlIHVzdWFsIGBgX19pbml0X19gYCB2YWxpZGF0b3Jz
IHdpbGwgdmFsaWRhdGUgdGhlIG5ldyB2YWx1ZXMuCisKKy4uIGF1dG9mdW5jdGlvbjo6IHZhbGlk
YXRlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IEBh
dHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRy
LmliKHZhbGlkYXRvcj1hdHRyLnZhbGlkYXRvcnMuaW5zdGFuY2Vfb2YoaW50KSkKKyAgICAgID4+
PiBpID0gQygxKQorICAgICAgPj4+IGkueCA9ICIxIgorICAgICAgPj4+IGF0dHIudmFsaWRhdGUo
aSkKKyAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgIC4u
LgorICAgICAgVHlwZUVycm9yOiAoIid4JyBtdXN0IGJlIDx0eXBlICdpbnQnPiAoZ290ICcxJyB0
aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4iLCBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9U
SElORywgdmFsaWRhdG9yPTxpbnN0YW5jZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUgJ2lu
dCc+PiwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUsIHR5cGU9Tm9u
ZSksIDx0eXBlICdpbnQnPiwgJzEnKQorCisKK1ZhbGlkYXRvcnMgY2FuIGJlIGdsb2JhbGx5IGRp
c2FibGVkIGlmIHlvdSB3YW50IHRvIHJ1biB0aGVtIG9ubHkgaW4gZGV2ZWxvcG1lbnQgYW5kIHRl
c3RzIGJ1dCBub3QgaW4gcHJvZHVjdGlvbiBiZWNhdXNlIHlvdSBmZWFyIHRoZWlyIHBlcmZvcm1h
bmNlIGltcGFjdDoKKworLi4gYXV0b2Z1bmN0aW9uOjogc2V0X3J1bl92YWxpZGF0b3JzCisKKy4u
IGF1dG9mdW5jdGlvbjo6IGdldF9ydW5fdmFsaWRhdG9ycworCisKKy4uIF9hcGlfdmFsaWRhdG9y
czoKKworVmFsaWRhdG9ycworLS0tLS0tLS0tLQorCitgYGF0dHJzYGAgY29tZXMgd2l0aCBzb21l
IGNvbW1vbiB2YWxpZGF0b3JzIGluIHRoZSBgYGF0dHJzLnZhbGlkYXRvcnNgYCBtb2R1bGU6CisK
KworLi4gYXV0b2Z1bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mCisKKworICAg
Rm9yIGV4YW1wbGU6CisKKyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIucworICAg
ICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIodmFsaWRh
dG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgICAgPj4+IEMoNDIpCisg
ICAgICBDKHg9NDIpCisgICAgICA+Pj4gQygiNDIiKQorICAgICAgVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgLi4uCisgICAgICBUeXBlRXJyb3I6ICgiJ3gnIG11
c3QgYmUgPHR5cGUgJ2ludCc+IChnb3QgJzQyJyB0aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4iLCBB
dHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPTxpbnN0YW5jZV9v
ZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUgJ2ludCc+PiwgdHlwZT1Ob25lKSwgPHR5cGUgJ2lu
dCc+LCAnNDInKQorICAgICAgPj4+IEMoTm9uZSkKKyAgICAgIFRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKKyAgICAgICAgIC4uLgorICAgICAgVHlwZUVycm9yOiAoIid4JyBtdXN0
IGJlIDx0eXBlICdpbnQnPiAoZ290IE5vbmUgdGhhdCBpcyBhIDx0eXBlICdOb25lVHlwZSc+KS4i
LCBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPTxpbnN0YW5j
ZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUgJ2ludCc+PiwgcmVwcj1UcnVlLCBjbXA9VHJ1
ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUsIHR5cGU9Tm9uZSksIDx0eXBlICdpbnQnPiwgTm9uZSkK
KworLi4gYXV0b2Z1bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmluXworCisgICBGb3IgZXhhbXBs
ZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgICA+Pj4gaW1wb3J0IGVudW0KKyAgICAgICA+
Pj4gY2xhc3MgU3RhdGUoZW51bS5FbnVtKToKKyAgICAgICAuLi4gICAgIE9OID0gIm9uIgorICAg
ICAgIC4uLiAgICAgT0ZGID0gIm9mZiIKKyAgICAgICA+Pj4gQGF0dHIucworICAgICAgIC4uLiBj
bGFzcyBDKG9iamVjdCk6CisgICAgICAgLi4uICAgICBzdGF0ZSA9IGF0dHIuaWIodmFsaWRhdG9y
PWF0dHIudmFsaWRhdG9ycy5pbl8oU3RhdGUpKQorICAgICAgIC4uLiAgICAgdmFsID0gYXR0ci5p
Yih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluXyhbMSwgMiwgM10pKQorICAgICAgID4+PiBD
KFN0YXRlLk9OLCAxKQorICAgICAgIEMoc3RhdGU9PFN0YXRlLk9OOiAnb24nPiwgdmFsPTEpCisg
ICAgICAgPj4+IEMoIm9uIiwgMSkKKyAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwg
bGFzdCk6CisgICAgICAgICAgLi4uCisgICAgICAgVmFsdWVFcnJvcjogJ3N0YXRlJyBtdXN0IGJl
IGluIDxlbnVtICdTdGF0ZSc+IChnb3QgJ29uJykKKyAgICAgICA+Pj4gQyhTdGF0ZS5PTiwgNCkK
KyAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgLi4u
CisgICAgICAgVmFsdWVFcnJvcjogJ3ZhbCcgbXVzdCBiZSBpbiBbMSwgMiwgM10gKGdvdCA0KQor
CisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnZhbGlkYXRvcnMucHJvdmlkZXMKKworLi4gYXV0b2Z1
bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmFuZF8KKworICAgRm9yIGNvbnZlbmllbmNlLCBpdCdz
IGFsc28gcG9zc2libGUgdG8gcGFzcyBhIGxpc3QgdG8gOmZ1bmM6YGF0dHIuaWJgJ3MgdmFsaWRh
dG9yIGFyZ3VtZW50LgorCisgICBUaHVzIHRoZSBmb2xsb3dpbmcgdHdvIHN0YXRlbWVudHMgYXJl
IGVxdWl2YWxlbnQ6OgorCisgICAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0
b3JzLmFuZF8odjEsIHYyLCB2MykpCisgICAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9W3YxLCB2
MiwgdjNdKQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnZhbGlkYXRvcnMub3B0aW9uYWwKKwor
ICAgRm9yIGV4YW1wbGU6CisKKyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIucwor
ICAgICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIodmFs
aWRhdG9yPWF0dHIudmFsaWRhdG9ycy5vcHRpb25hbChhdHRyLnZhbGlkYXRvcnMuaW5zdGFuY2Vf
b2YoaW50KSkpCisgICAgICA+Pj4gQyg0MikKKyAgICAgIEMoeD00MikKKyAgICAgID4+PiBDKCI0
MiIpCisgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAu
Li4KKyAgICAgIFR5cGVFcnJvcjogKCIneCcgbXVzdCBiZSA8dHlwZSAnaW50Jz4gKGdvdCAnNDIn
IHRoYXQgaXMgYSA8dHlwZSAnc3RyJz4pLiIsIEF0dHJpYnV0ZShuYW1lPSd4JywgZGVmYXVsdD1O
T1RISU5HLCB2YWxpZGF0b3I9PGluc3RhbmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8dHlwZSAn
aW50Jz4+LCB0eXBlPU5vbmUpLCA8dHlwZSAnaW50Jz4sICc0MicpCisgICAgICA+Pj4gQyhOb25l
KQorICAgICAgQyh4PU5vbmUpCisKKworQ29udmVydGVycworLS0tLS0tLS0tLQorCisuLiBhdXRv
ZnVuY3Rpb246OiBhdHRyLmNvbnZlcnRlcnMub3B0aW9uYWwKKworICAgRm9yIGV4YW1wbGU6CisK
KyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIucworICAgICAgLi4uIGNsYXNzIEMo
b2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIoY29udmVydD1hdHRyLmNvbnZlcnRl
cnMub3B0aW9uYWwoaW50KSkKKyAgICAgID4+PiBDKE5vbmUpCisgICAgICBDKHg9Tm9uZSkKKyAg
ICAgID4+PiBDKDQyKQorICAgICAgQyh4PTQyKQorCisKK0RlcHJlY2F0ZWQgQVBJcworLS0tLS0t
LS0tLS0tLS0tCisKK1RoZSBzZXJpb3VzIGJ1c2luZXNzIGFsaWFzZXMgdXNlZCB0byBiZSBjYWxs
ZWQgYGBhdHRyLmF0dHJpYnV0ZXNgYCBhbmQgYGBhdHRyLmF0dHJgYC4KK1RoZXJlIGFyZSBubyBw
bGFucyB0byByZW1vdmUgdGhlbSBidXQgdGhleSBzaG91bGRuJ3QgYmUgdXNlZCBpbiBuZXcgY29k
ZS4KKworLi4gYXV0b2Z1bmN0aW9uOjogYXNzb2MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9iYWNrd2FyZC1jb21wYXRpYmlsaXR5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9iYWNrd2FyZC1j
b21wYXRpYmlsaXR5LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjU1OWY4ZDQ1MDc5OTdiMzgxNjk4MzVkNTFl
MmY4ZWZhNGI0OWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2JhY2t3YXJk
LWNvbXBhdGliaWxpdHkucnN0CkBAIC0wLDAgKzEsMTkgQEAKK0JhY2t3YXJkIENvbXBhdGliaWxp
dHkKKz09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY3VycmVudG1vZHVsZTo6IGF0dHIKKwor
YGBhdHRyc2BgIGhhcyBhIHZlcnkgc3Ryb25nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcG9saWN5
IHRoYXQgaXMgaW5zcGlyZWQgYnkgdGhlIHBvbGljeSBvZiB0aGUgYFR3aXN0ZWQgZnJhbWV3b3Jr
IDxodHRwczovL3R3aXN0ZWRtYXRyaXguY29tL3RyYWMvd2lraS9Db21wYXRpYmlsaXR5UG9saWN5
PmBfLgorCitQdXQgc2ltcGx5LCB5b3Ugc2hvdWxkbid0IGV2ZXIgYmUgYWZyYWlkIHRvIHVwZ3Jh
ZGUgYGBhdHRyc2BgIGlmIHlvdSdyZSBvbmx5IHVzaW5nIGl0cyBwdWJsaWMgQVBJcy4KK0lmIHRo
ZXJlIHdpbGwgZXZlciBiZSBhIG5lZWQgdG8gYnJlYWsgY29tcGF0aWJpbGl0eSwgaXQgd2lsbCBi
ZSBhbm5vdW5jZWQgaW4gdGhlIDpkb2M6YGNoYW5nZWxvZ2AgYW5kIHJhaXNlIGEgYGBEZXByZWNh
dGlvbldhcm5pbmdgYCBmb3IgYSB5ZWFyIChpZiBwb3NzaWJsZSkgYmVmb3JlIGl0J3MgZmluYWxs
eSByZWFsbHkgYnJva2VuLgorCisKKy4uIF9leGVtcHRpb246CisKKy4uIHdhcm5pbmc6OgorCisg
ICBUaGUgc3RydWN0dXJlIG9mIHRoZSA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYCBjbGFzcyBpcyBl
eGVtcHQgZnJvbSB0aGlzIHJ1bGUuCisgICBJdCAqd2lsbCogY2hhbmdlIGluIHRoZSBmdXR1cmUs
IGJ1dCBzaW5jZSBpdCBzaG91bGQgYmUgY29uc2lkZXJlZCByZWFkLW9ubHksIHRoYXQgc2hvdWxk
bid0IG1hdHRlci4KKworICAgSG93ZXZlciBpZiB5b3UgaW50ZW5kIHRvIGJ1aWxkIGV4dGVuc2lv
bnMgb24gdG9wIG9mIGBgYXR0cnNgYCB5b3UgaGF2ZSB0byBhbnRpY2lwYXRlIHRoYXQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY2hhbmdlbG9nLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9j
aGFuZ2Vsb2cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NWIwNTIxZDBjMmNkYmZlNDkzZDE5NzY1YjA0ZDVj
MTE5ZmE3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY2hhbmdlbG9nLnJz
dApAQCAtMCwwICsxIEBACisuLiBpbmNsdWRlOjogLi4vQ0hBTkdFTE9HLnJzdApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY29uZi5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xY2RiMDdjMWY3OThlOTA4NGY0NzM1NDhjMzE4NDA2MjhlYmIyNTFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkKQEAgLTAsMCArMSwxNTUgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBvcworaW1wb3J0
IHJlCisKKworZGVmIHJlYWQoKnBhcnRzKToKKyAgICAiIiIKKyAgICBCdWlsZCBhbiBhYnNvbHV0
ZSBwYXRoIGZyb20gKnBhcnRzKiBhbmQgYW5kIHJldHVybiB0aGUgY29udGVudHMgb2YgdGhlCisg
ICAgcmVzdWx0aW5nIGZpbGUuICBBc3N1bWUgVVRGLTggZW5jb2RpbmcuCisgICAgIiIiCisgICAg
aGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQorICAgIHdp
dGggY29kZWNzLm9wZW4ob3MucGF0aC5qb2luKGhlcmUsICpwYXJ0cyksICJyYiIsICJ1dGYtOCIp
IGFzIGY6CisgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisKK2RlZiBmaW5kX3ZlcnNpb24oKmZp
bGVfcGF0aHMpOgorICAgICIiIgorICAgIEJ1aWxkIGEgcGF0aCBmcm9tICpmaWxlX3BhdGhzKiBh
bmQgc2VhcmNoIGZvciBhIGBgX192ZXJzaW9uX19gYAorICAgIHN0cmluZyBpbnNpZGUuCisgICAg
IiIiCisgICAgdmVyc2lvbl9maWxlID0gcmVhZCgqZmlsZV9wYXRocykKKyAgICB2ZXJzaW9uX21h
dGNoID0gcmUuc2VhcmNoKHIiXl9fdmVyc2lvbl9fID0gWydcIl0oW14nXCJdKilbJ1wiXSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uX2ZpbGUsIHJlLk0pCisgICAgaWYg
dmVyc2lvbl9tYXRjaDoKKyAgICAgICAgcmV0dXJuIHZlcnNpb25fbWF0Y2guZ3JvdXAoMSkKKyAg
ICByYWlzZSBSdW50aW1lRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZlcnNpb24gc3RyaW5nLiIpCisK
KworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVs
ZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZQorIyBleHRlbnNpb25zIGNvbWlu
ZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tCisjIG9u
ZXMuCitleHRlbnNpb25zID0gWworICAgICdzcGhpbnguZXh0LmF1dG9kb2MnLAorICAgICdzcGhp
bnguZXh0LmRvY3Rlc3QnLAorICAgICdzcGhpbnguZXh0LmludGVyc3BoaW54JywKKyAgICAnc3Bo
aW54LmV4dC50b2RvJywKK10KKworCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBs
YXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBsYXRlc19wYXRoID0g
WydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCitzb3Vy
Y2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhlIG1hc3RlciB0b2N0cmVlIGRvY3VtZW50LgorbWFz
dGVyX2RvYyA9ICdpbmRleCcKKworIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9q
ZWN0LgorcHJvamVjdCA9IHUnYXR0cnMnCitjb3B5cmlnaHQgPSB1JzIwMTUsIEh5bmVrIFNjaGxh
d2FjaycKKworIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1l
bnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8
LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKKyMgYnVp
bHQgZG9jdW1lbnRzLgorIworIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCityZWxlYXNlID0gZmlu
ZF92ZXJzaW9uKCIuLi9zcmMvYXR0ci9fX2luaXRfXy5weSIpCit2ZXJzaW9uID0gcmVsZWFzZS5y
c3BsaXQodSIuIiwgMSlbMF0KKyMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2Jl
dGEvcmMgdGFncy4KKworIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGly
ZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hl
biBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVpbGQn
XQorCisjIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBlbmRlZCB0byA6ZnVuYzogZXRjLiBjcm9z
cy1yZWZlcmVuY2UgdGV4dC4KK2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKworIyBU
aGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcpIHN0eWxlIHRvIHVz
ZS4KK3B5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKKworIyAtLSBPcHRpb25zIGZvciBIVE1MIG91
dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMg
VGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRoZSBk
b2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCisKK2h0bWxfdGhl
bWUgPSAiYWxhYmFzdGVyIgoraHRtbF90aGVtZV9vcHRpb25zID0geworICAgICJmb250X2ZhbWls
eSI6ICciQXZlbmlyIE5leHQiLCBDYWxpYnJpLCAiUFQgU2FucyIsIHNhbnMtc2VyaWYnLAorICAg
ICJoZWFkX2ZvbnRfZmFtaWx5IjogJyJBdmVuaXIgTmV4dCIsIENhbGlicmksICJQVCBTYW5zIiwg
c2Fucy1zZXJpZicsCisgICAgImZvbnRfc2l6ZSI6ICIxOHB4IiwKKyAgICAicGFnZV93aWR0aCI6
ICI5ODBweCIsCit9CisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8g
dGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKKyMgb2YgdGhlIHNpZGViYXIuCito
dG1sX2xvZ28gPSAiX3N0YXRpYy9hdHRyc19sb2dvLnN2ZyIKKworIyBUaGUgbmFtZSBvZiBhbiBp
bWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2aWNvbiBvZiB0
aGUKKyMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24gZmlsZSAoLmlj
bykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKKyMgcGl4ZWxzIGxhcmdlLgorIyBodG1sX2Zhdmljb24g
PSBOb25lCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxl
cyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhlcmUsCisjIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0
b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAorIyBz
byBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAi
ZGVmYXVsdC5jc3MiLgoraHRtbF9zdGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCisKKyMgSWYgZmFs
c2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX2RvbWFpbl9pbmRpY2VzID0g
VHJ1ZQorCisjIElmIGZhbHNlLCBubyBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX3VzZV9pbmRl
eCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFs
IHBhZ2VzIGZvciBlYWNoIGxldHRlci4KK2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQorCisjIElm
IHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdlcy4K
K2h0bWxfc2hvd19zb3VyY2VsaW5rID0gRmFsc2UKKworIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2lu
ZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgor
aHRtbF9zaG93X3NwaGlueCA9IFRydWUKKworIyBJZiB0cnVlLCAiKEMpIENvcHlyaWdodCAuLi4i
IGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgoraHRtbF9zaG93
X2NvcHlyaWdodCA9IFRydWUKKworIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9u
IGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBhbGwgcGFnZXMgd2lsbAorIyBjb250YWluIGEgPGxp
bms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBi
ZSB0aGUKKyMgYmFzZSBVUkwgZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQu
CisjIGh0bWxfdXNlX29wZW5zZWFyY2ggPSAnJworCisjIE91dHB1dCBmaWxlIGJhc2UgbmFtZSBm
b3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICdhdHRyc2RvYycKKwor
IyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4gTGlzdCBv
ZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0aG9y
cywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWworICAgICgnaW5kZXgnLCAnYXR0cnMn
LCB1J2F0dHJzIERvY3VtZW50YXRpb24nLAorICAgICBbdSdIeW5layBTY2hsYXdhY2snXSwgMSkK
K10KKworCisjIC0tIE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJl
ZSBpbnRvIFRleGluZm8gZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQgZmls
ZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsCisjICBkaXIgbWVudSBlbnRyeSwgZGVzY3Jp
cHRpb24sIGNhdGVnb3J5KQordGV4aW5mb19kb2N1bWVudHMgPSBbCisgICAgKCdpbmRleCcsICdh
dHRycycsIHUnYXR0cnMgRG9jdW1lbnRhdGlvbicsCisgICAgIHUnSHluZWsgU2NobGF3YWNrJywg
J2F0dHJzJywgJ09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICAgJ01pc2Nl
bGxhbmVvdXMnKSwKK10KKworaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsKKyAgICAiaHR0cHM6Ly9k
b2NzLnB5dGhvbi5vcmcvMyI6IE5vbmUsCit9CisKKyMgQWxsb3cgbm9uLWxvY2FsIFVSSXMgc28g
d2UgY2FuIGhhdmUgaW1hZ2VzIGluIENIQU5HRUxPRyBldGMuCitzdXBwcmVzc193YXJuaW5ncyA9
IFsnaW1hZ2Uubm9ubG9jYWxfdXJpJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9jb250
cmlidXRpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbnRyaWJ1dGluZy5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQ1MTljMzgxNTFhYjcyMjc1ZWU4MWE3NWQ0MTIwYzNlOWQ1YTViYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvZG9jcy9jb250cmlidXRpbmcucnN0CkBAIC0wLDAgKzEsNSBAQAor
Li4gX2NvbnRyaWJ1dGluZzoKKworLi4gaW5jbHVkZTo6IC4uL0NPTlRSSUJVVElORy5yc3QKKwor
Li4gaW5jbHVkZTo6IC4uL0NPREVfT0ZfQ09ORFVDVC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvZG9jcy9kb2N1dGlscy5jb25mIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2RvY3V0aWxzLmNvbmYKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGI4Y2E4MmM3NDdjZWRlMDI3YzAxYjNlOTM3NWQwNmQzOTU0MTQ5ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9kb2N1dGlscy5jb25mCkBAIC0wLDAgKzEsMyBA
QAorW3BhcnNlcnNdCitbcmVzdHJ1Y3R1cmVkdGV4dCBwYXJzZXJdCitzbWFydF9xdW90ZXM9eWVz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZXhhbXBsZXMucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9k
b2NzL2V4YW1wbGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDMyZThmY2I1MzkzNWU2ZTk0Y2UwZjRlNDRh
ODI5MjZjMDhjZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2V4YW1wbGVz
LnJzdApAQCAtMCwwICsxLDcwNSBAQAorLi4gX2V4YW1wbGVzOgorCitgYGF0dHJzYGAgYnkgRXhh
bXBsZQorPT09PT09PT09PT09PT09PT09PT0KKworCitCYXNpY3MKKy0tLS0tLQorCitUaGUgc2lt
cGxlc3QgcG9zc2libGUgdXNhZ2UgaXM6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1wb3J0
IGF0dHIKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgRW1wdHkob2JqZWN0KToKKyAgIC4u
LiAgICAgcGFzcworICAgPj4+IEVtcHR5KCkKKyAgIEVtcHR5KCkKKyAgID4+PiBFbXB0eSgpID09
IEVtcHR5KCkKKyAgIFRydWUKKyAgID4+PiBFbXB0eSgpIGlzIEVtcHR5KCkKKyAgIEZhbHNlCisK
K1NvIGluIG90aGVyIHdvcmRzOiBgYGF0dHJzYGAgaXMgdXNlZnVsIGV2ZW4gd2l0aG91dCBhY3R1
YWwgYXR0cmlidXRlcyEKKworQnV0IHlvdSdsbCB1c3VhbGx5IHdhbnQgc29tZSBkYXRhIG9uIHlv
dXIgY2xhc3Nlcywgc28gbGV0J3MgYWRkIHNvbWU6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4g
QGF0dHIucworICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVjdCk6CisgICAuLi4gICAgIHgg
PSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorCitCeSBkZWZhdWx0LCBhbGwg
ZmVhdHVyZXMgYXJlIGFkZGVkLCBzbyB5b3UgaW1tZWRpYXRlbHkgaGF2ZSBhIGZ1bGx5IGZ1bmN0
aW9uYWwgZGF0YSBjbGFzcyB3aXRoIGEgbmljZSBgYHJlcHJgYCBzdHJpbmcgYW5kIGNvbXBhcmlz
b24gbWV0aG9kcy4KKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBjMSA9IENvb3JkaW5hdGVzKDEs
IDIpCisgICA+Pj4gYzEKKyAgIENvb3JkaW5hdGVzKHg9MSwgeT0yKQorICAgPj4+IGMyID0gQ29v
cmRpbmF0ZXMoeD0yLCB5PTEpCisgICA+Pj4gYzIKKyAgIENvb3JkaW5hdGVzKHg9MiwgeT0xKQor
ICAgPj4+IGMxID09IGMyCisgICBGYWxzZQorCitBcyBzaG93biwgdGhlIGdlbmVyYXRlZCBgYF9f
aW5pdF9fYGAgbWV0aG9kIGFsbG93cyBmb3IgYm90aCBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFy
Z3VtZW50cy4KKworSWYgcGxheWZ1bCBuYW1pbmcgdHVybnMgeW91IG9mZiwgYGBhdHRyc2BgIGNv
bWVzIHdpdGggc2VyaW91cyBidXNpbmVzcyBhbGlhc2VzOgorCisuLiBkb2N0ZXN0OjoKKworICAg
Pj4+IGZyb20gYXR0ciBpbXBvcnQgYXR0cnMsIGF0dHJpYgorICAgPj4+IEBhdHRycworICAgLi4u
IGNsYXNzIFNlcmlvdXNDb29yZGluYXRlcyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0cmli
KCkKKyAgIC4uLiAgICAgeSA9IGF0dHJpYigpCisgICA+Pj4gU2VyaW91c0Nvb3JkaW5hdGVzKDEs
IDIpCisgICBTZXJpb3VzQ29vcmRpbmF0ZXMoeD0xLCB5PTIpCisgICA+Pj4gYXR0ci5maWVsZHMo
Q29vcmRpbmF0ZXMpID09IGF0dHIuZmllbGRzKFNlcmlvdXNDb29yZGluYXRlcykKKyAgIFRydWUK
KworRm9yIHByaXZhdGUgYXR0cmlidXRlcywgYGBhdHRyc2BgIHdpbGwgc3RyaXAgdGhlIGxlYWRp
bmcgdW5kZXJzY29yZXMgZm9yIGtleXdvcmQgYXJndW1lbnRzOgorCisuLiBkb2N0ZXN0OjoKKwor
ICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIF94ID0g
YXR0ci5pYigpCisgICA+Pj4gQyh4PTEpCisgICBDKF94PTEpCisKK0lmIHlvdSB3YW50IHRvIGlu
aXRpYWxpemUgeW91ciBwcml2YXRlIGF0dHJpYnV0ZXMgeW91cnNlbGYsIHlvdSBjYW4gZG8gdGhh
dCB0b286CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMo
b2JqZWN0KToKKyAgIC4uLiAgICAgX3ggPSBhdHRyLmliKGluaXQ9RmFsc2UsIGRlZmF1bHQ9NDIp
CisgICA+Pj4gQygpCisgICBDKF94PTQyKQorICAgPj4+IEMoMjMpCisgICBUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFR5cGVFcnJvcjogX19pbml0X18o
KSB0YWtlcyBleGFjdGx5IDEgYXJndW1lbnQgKDIgZ2l2ZW4pCisKK0FuIGFkZGl0aW9uYWwgd2F5
IG9mIGRlZmluaW5nIGF0dHJpYnV0ZXMgaXMgc3VwcG9ydGVkIHRvby4KK1RoaXMgaXMgdXNlZnVs
IGluIHRpbWVzIHdoZW4geW91IHdhbnQgdG8gZW5oYW5jZSBjbGFzc2VzIHRoYXQgYXJlIG5vdCB5
b3VycyAobmljZSBgYF9fcmVwcl9fYGAgZm9yIERqYW5nbyBtb2RlbHMgYW55b25lPyk6CisKKy4u
IGRvY3Rlc3Q6OgorCisgICA+Pj4gY2xhc3MgU29tZXRoaW5nRnJvbVNvbWVvbmVFbHNlKG9iamVj
dCk6CisgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4KToKKyAgIC4uLiAgICAgICAgIHNl
bGYueCA9IHgKKyAgID4+PiBTb21ldGhpbmdGcm9tU29tZW9uZUVsc2UgPSBhdHRyLnMoCisgICAu
Li4gICAgIHRoZXNlPXsKKyAgIC4uLiAgICAgICAgICJ4IjogYXR0ci5pYigpCisgICAuLi4gICAg
IH0sIGluaXQ9RmFsc2UpKFNvbWV0aGluZ0Zyb21Tb21lb25lRWxzZSkKKyAgID4+PiBTb21ldGhp
bmdGcm9tU29tZW9uZUVsc2UoMSkKKyAgIFNvbWV0aGluZ0Zyb21Tb21lb25lRWxzZSh4PTEpCisK
KworYFN1YmNsYXNzaW5nIGlzIGJhZCBmb3IgeW91IDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93
YXRjaD92PTNNTlZQOS1oZ2xjPmBfLCBidXQgYGBhdHRyc2BgIHdpbGwgc3RpbGwgZG8gd2hhdCB5
b3UnZCBob3BlIGZvcjoKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAuLi4g
Y2xhc3MgQShvYmplY3QpOgorICAgLi4uICAgICBhID0gYXR0ci5pYigpCisgICAuLi4gICAgIGRl
ZiBnZXRfYShzZWxmKToKKyAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmLmEKKyAgID4+PiBAYXR0
ci5zCisgICAuLi4gY2xhc3MgQihvYmplY3QpOgorICAgLi4uICAgICBiID0gYXR0ci5pYigpCisg
ICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMoQiwgQSk6CisgICAuLi4gICAgIGMgPSBhdHRy
LmliKCkKKyAgID4+PiBpID0gQygxLCAyLCAzKQorICAgPj4+IGkKKyAgIEMoYT0xLCBiPTIsIGM9
MykKKyAgID4+PiBpID09IEMoMSwgMiwgMykKKyAgIFRydWUKKyAgID4+PiBpLmdldF9hKCkKKyAg
IDEKKworVGhlIG9yZGVyIG9mIHRoZSBhdHRyaWJ1dGVzIGlzIGRlZmluZWQgYnkgdGhlIGBNUk8g
PGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZG93bmxvYWQvcmVsZWFzZXMvMi4zL21yby8+YF8uCisK
K0luIFB5dGhvbiAzLCBjbGFzc2VzIGRlZmluZWQgd2l0aGluIG90aGVyIGNsYXNzZXMgYXJlIGBk
ZXRlY3RlZCA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMzE1NS8+YF8gYW5k
IHJlZmxlY3RlZCBpbiB0aGUgYGBfX3JlcHJfX2BgLgorSW4gUHl0aG9uIDIgdGhvdWdoLCBpdCdz
IGltcG9zc2libGUuCitUaGVyZWZvcmUgYGBAYXR0ci5zYGAgY29tZXMgd2l0aCB0aGUgYGByZXBy
X25zYGAgb3B0aW9uIHRvIHNldCBpdCBtYW51YWxseToKKworLi4gZG9jdGVzdDo6CisKKyAgID4+
PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICBAYXR0ci5zKHJl
cHJfbnM9IkMiKQorICAgLi4uICAgICBjbGFzcyBEKG9iamVjdCk6CisgICAuLi4gICAgICAgICBw
YXNzCisgICA+Pj4gQy5EKCkKKyAgIEMuRCgpCisKK2BgcmVwcl9uc2BgIHdvcmtzIG9uIGJvdGgg
UHl0aG9uIDIgYW5kIDMuCitPbiBQeXRob24gMyBpdCBvdmVycmlkZXMgdGhlIGltcGxpY2l0IGRl
dGVjdGlvbi4KKworCisuLiBfYXNkaWN0OgorCitDb252ZXJ0aW5nIHRvIENvbGxlY3Rpb25zIFR5
cGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doZW4geW91IGhhdmUgYSBj
bGFzcyB3aXRoIGRhdGEsIGl0IG9mdGVuIGlzIHZlcnkgY29udmVuaWVudCB0byB0cmFuc2Zvcm0g
dGhhdCBjbGFzcyBpbnRvIGEgOmNsYXNzOmBkaWN0YCAoZm9yIGV4YW1wbGUgaWYgeW91IHdhbnQg
dG8gc2VyaWFsaXplIGl0IHRvIEpTT04pOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGF0dHIu
YXNkaWN0KENvb3JkaW5hdGVzKHg9MSwgeT0yKSkKKyAgIHsneCc6IDEsICd5JzogMn0KKworU29t
ZSBmaWVsZHMgY2Fubm90IG9yIHNob3VsZCBub3QgYmUgdHJhbnNmb3JtZWQuCitGb3IgdGhhdCwg
OmZ1bmM6YGF0dHIuYXNkaWN0YCBvZmZlcnMgYSBjYWxsYmFjayB0aGF0IGRlY2lkZXMgd2hldGhl
ciBhbiBhdHRyaWJ1dGUgc2hvdWxkIGJlIGluY2x1ZGVkOgorCisuLiBkb2N0ZXN0OjoKKworICAg
Pj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBVc2VyTGlzdChvYmplY3QpOgorICAgLi4uICAgICB1
c2VycyA9IGF0dHIuaWIoKQorICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBVc2VyKG9iamVj
dCk6CisgICAuLi4gICAgIGVtYWlsID0gYXR0ci5pYigpCisgICAuLi4gICAgIHBhc3N3b3JkID0g
YXR0ci5pYigpCisgICA+Pj4gYXR0ci5hc2RpY3QoVXNlckxpc3QoW1VzZXIoImphbmVAZG9lLmlu
dmFsaWQiLCAiczMza3JlZCIpLAorICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBVc2VyKCJq
b2VAZG9lLmludmFsaWQiLCAicDRzc3cwcmQiKV0pLAorICAgLi4uICAgICAgICAgICAgIGZpbHRl
cj1sYW1iZGEgYXR0ciwgdmFsdWU6IGF0dHIubmFtZSAhPSAicGFzc3dvcmQiKQorICAgeyd1c2Vy
cyc6IFt7J2VtYWlsJzogJ2phbmVAZG9lLmludmFsaWQnfSwgeydlbWFpbCc6ICdqb2VAZG9lLmlu
dmFsaWQnfV19CisKK0ZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgeW91IHdhbnQgdG8gOmZ1bmM6
YGluY2x1ZGUgPGF0dHIuZmlsdGVycy5pbmNsdWRlPmAgb3IgOmZ1bmM6YGV4Y2x1ZGUgPGF0dHIu
ZmlsdGVycy5leGNsdWRlPmAgY2VydGFpbiB0eXBlcyBvciBhdHRyaWJ1dGVzLCBgYGF0dHJzYGAg
c2hpcHMgd2l0aCBhIGZldyBoZWxwZXJzOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRy
LnMKKyAgIC4uLiBjbGFzcyBVc2VyKG9iamVjdCk6CisgICAuLi4gICAgIGxvZ2luID0gYXR0ci5p
YigpCisgICAuLi4gICAgIHBhc3N3b3JkID0gYXR0ci5pYigpCisgICAuLi4gICAgIGlkID0gYXR0
ci5pYigpCisgICA+Pj4gYXR0ci5hc2RpY3QoCisgICAuLi4gICAgIFVzZXIoImphbmUiLCAiczMz
a3JlZCIsIDQyKSwKKyAgIC4uLiAgICAgZmlsdGVyPWF0dHIuZmlsdGVycy5leGNsdWRlKGF0dHIu
ZmllbGRzKFVzZXIpLnBhc3N3b3JkLCBpbnQpKQorICAgeydsb2dpbic6ICdqYW5lJ30KKyAgID4+
PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0ci5p
YigpCisgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeiA9IGF0dHIuaWIoKQor
ICAgPj4+IGF0dHIuYXNkaWN0KEMoImZvbyIsICIyIiwgMyksCisgICAuLi4gICAgICAgICAgICAg
ZmlsdGVyPWF0dHIuZmlsdGVycy5pbmNsdWRlKGludCwgYXR0ci5maWVsZHMoQykueCkpCisgICB7
J3gnOiAnZm9vJywgJ3onOiAzfQorCitPdGhlciB0aW1lcywgYWxsIHlvdSB3YW50IGlzIGEgdHVw
bGUgYW5kIGBgYXR0cnNgYCB3b24ndCBsZXQgeW91IGRvd246CisKKy4uIGRvY3Rlc3Q6OgorCisg
ICA+Pj4gaW1wb3J0IHNxbGl0ZTMKKyAgID4+PiBpbXBvcnQgYXR0cgorICAgPj4+IEBhdHRyLnMK
KyAgIC4uLiBjbGFzcyBGb286CisgICAuLi4gICAgYSA9IGF0dHIuaWIoKQorICAgLi4uICAgIGIg
PSBhdHRyLmliKCkKKyAgID4+PiBmb28gPSBGb28oMiwgMykKKyAgID4+PiB3aXRoIHNxbGl0ZTMu
Y29ubmVjdCgiOm1lbW9yeToiKSBhcyBjb25uOgorICAgLi4uICAgIGMgPSBjb25uLmN1cnNvcigp
CisgICAuLi4gICAgYy5leGVjdXRlKCJDUkVBVEUgVEFCTEUgZm9vICh4IElOVEVHRVIgUFJJTUFS
WSBLRVkgQVNDLCB5KSIpICNkb2N0ZXN0OiArRUxMSVBTSVMKKyAgIC4uLiAgICBjLmV4ZWN1dGUo
IklOU0VSVCBJTlRPIGZvbyBWQUxVRVMgKD8sID8pIiwgYXR0ci5hc3R1cGxlKGZvbykpICNkb2N0
ZXN0OiArRUxMSVBTSVMKKyAgIC4uLiAgICBmb28yID0gRm9vKCpjLmV4ZWN1dGUoIlNFTEVDVCB4
LCB5IEZST00gZm9vIikuZmV0Y2hvbmUoKSkKKyAgIDxzcWxpdGUzLkN1cnNvciBvYmplY3QgYXQg
Li4uPgorICAgPHNxbGl0ZTMuQ3Vyc29yIG9iamVjdCBhdCAuLi4+CisgICA+Pj4gZm9vID09IGZv
bzIKKyAgIFRydWUKKworCisKKworRGVmYXVsdHMKKy0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3Ug
d2FudCB0byBoYXZlIGRlZmF1bHQgdmFsdWVzIGZvciB5b3VyIGluaXRpYWxpemVyLgorQW5kIHNv
bWV0aW1lcyB5b3UgZXZlbiB3YW50IG11dGFibGUgb2JqZWN0cyBhcyBkZWZhdWx0IHZhbHVlcyAo
ZXZlciB1c2VkIGFjY2lkZW50YWxseSBgYGRlZiBmKGFyZz1bXSlgYD8pLgorYGBhdHRyc2BgIGhh
cyB5b3UgY292ZXJlZCBpbiBib3RoIGNhc2VzOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGlt
cG9ydCBjb2xsZWN0aW9ucworICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDb25uZWN0aW9u
KG9iamVjdCk6CisgICAuLi4gICAgIHNvY2tldCA9IGF0dHIuaWIoKQorICAgLi4uICAgICBAY2xh
c3NtZXRob2QKKyAgIC4uLiAgICAgZGVmIGNvbm5lY3QoY2xzLCBkYl9zdHJpbmcpOgorICAgLi4u
ICAgICAgICAjIC4uLiBjb25uZWN0IHNvbWVob3cgdG8gZGJfc3RyaW5nIC4uLgorICAgLi4uICAg
ICAgICByZXR1cm4gY2xzKHNvY2tldD00MikKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3Mg
Q29ubmVjdGlvblBvb2wob2JqZWN0KToKKyAgIC4uLiAgICAgZGJfc3RyaW5nID0gYXR0ci5pYigp
CisgICAuLi4gICAgIHBvb2wgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGNvbGxlY3Rp
b25zLmRlcXVlKSkKKyAgIC4uLiAgICAgZGVidWcgPSBhdHRyLmliKGRlZmF1bHQ9RmFsc2UpCisg
ICAuLi4gICAgIGRlZiBnZXRfY29ubmVjdGlvbihzZWxmKToKKyAgIC4uLiAgICAgICAgIHRyeToK
KyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5wb29sLnBvcCgpCisgICAuLi4gICAgICAg
ICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgIC4uLiAgICAgICAgICAgICBpZiBzZWxmLmRlYnVnOgor
ICAgLi4uICAgICAgICAgICAgICAgICBwcmludCgiTmV3IGNvbm5lY3Rpb24hIikKKyAgIC4uLiAg
ICAgICAgICAgICByZXR1cm4gQ29ubmVjdGlvbi5jb25uZWN0KHNlbGYuZGJfc3RyaW5nKQorICAg
Li4uICAgICBkZWYgZnJlZV9jb25uZWN0aW9uKHNlbGYsIGNvbm4pOgorICAgLi4uICAgICAgICAg
aWYgc2VsZi5kZWJ1ZzoKKyAgIC4uLiAgICAgICAgICAgICBwcmludCgiQ29ubmVjdGlvbiByZXR1
cm5lZCEiKQorICAgLi4uICAgICAgICAgc2VsZi5wb29sLmFwcGVuZGxlZnQoY29ubikKKyAgIC4u
LgorICAgPj4+IGNwID0gQ29ubmVjdGlvblBvb2woInBvc3RncmVzOi8vbG9jYWxob3N0IikKKyAg
ID4+PiBjcAorICAgQ29ubmVjdGlvblBvb2woZGJfc3RyaW5nPSdwb3N0Z3JlczovL2xvY2FsaG9z
dCcsIHBvb2w9ZGVxdWUoW10pLCBkZWJ1Zz1GYWxzZSkKKyAgID4+PiBjb25uID0gY3AuZ2V0X2Nv
bm5lY3Rpb24oKQorICAgPj4+IGNvbm4KKyAgIENvbm5lY3Rpb24oc29ja2V0PTQyKQorICAgPj4+
IGNwLmZyZWVfY29ubmVjdGlvbihjb25uKQorICAgPj4+IGNwCisgICBDb25uZWN0aW9uUG9vbChk
Yl9zdHJpbmc9J3Bvc3RncmVzOi8vbG9jYWxob3N0JywgcG9vbD1kZXF1ZShbQ29ubmVjdGlvbihz
b2NrZXQ9NDIpXSksIGRlYnVnPUZhbHNlKQorCitNb3JlIGluZm9ybWF0aW9uIG9uIHdoeSBjbGFz
cyBtZXRob2RzIGZvciBjb25zdHJ1Y3Rpbmcgb2JqZWN0cyBhcmUgYXdlc29tZSBjYW4gYmUgZm91
bmQgaW4gdGhpcyBpbnNpZ2h0ZnVsIGBibG9nIHBvc3QgPGh0dHA6Ly9hcy55bmNocm9uby51cy8y
MDE0LzEyL2FzeW5jaHJvbm91cy1vYmplY3QtaW5pdGlhbGl6YXRpb24uaHRtbD5gXy4KKworRGVm
YXVsdCBmYWN0b3JpZXMgY2FuIGFsc28gYmUgc2V0IHVzaW5nIGEgZGVjb3JhdG9yLgorVGhlIG1l
dGhvZCByZWNlaXZlcyB0aGUgcGFydGlhbGx5IGluaXRpYWxpemVkIGluc3RhbmNlIHdoaWNoIGVu
YWJsZXMgeW91IHRvIGJhc2UgYSBkZWZhdWx0IHZhbHVlIG9uIG90aGVyIGF0dHJpYnV0ZXM6CisK
Ky4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0KToK
KyAgIC4uLiAgICAgeCA9IGF0dHIuaWIoZGVmYXVsdD0xKQorICAgLi4uICAgICB5ID0gYXR0ci5p
YigpCisgICAuLi4gICAgIEB5LmRlZmF1bHQKKyAgIC4uLiAgICAgZGVmIG5hbWVfZG9lc19ub3Rf
bWF0dGVyKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIHNlbGYueCArIDEKKyAgID4+PiBD
KCkKKyAgIEMoeD0xLCB5PTIpCisKKworLi4gX2V4YW1wbGVzX3ZhbGlkYXRvcnM6CisKK1ZhbGlk
YXRvcnMKKy0tLS0tLS0tLS0KKworQWx0aG91Z2ggeW91ciBpbml0aWFsaXplcnMgc2hvdWxkIGRv
IGFzIGxpdHRsZSBhcyBwb3NzaWJsZSAoaWRlYWxseToganVzdCBpbml0aWFsaXplIHlvdXIgaW5z
dGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBhcmd1bWVudHMhKSwgaXQgY2FuIGNvbWUgaW4gaGFuZHkg
dG8gZG8gc29tZSBraW5kIG9mIHZhbGlkYXRpb24gb24gdGhlIGFyZ3VtZW50cy4KKworYGBhdHRy
c2BgIG9mZmVycyB0d28gd2F5cyB0byBkZWZpbmUgdmFsaWRhdG9ycyBmb3IgZWFjaCBhdHRyaWJ1
dGUgYW5kIGl0J3MgdXAgdG8geW91IHRvIGNob29zZSB3aGljaCBvbmUgc3VpdGVzIGJldHRlciB5
b3VyIHN0eWxlIGFuZCBwcm9qZWN0LgorCisKK0RlY29yYXRvcgorfn5+fn5+fn5+CisKK1RoZSBt
b3JlIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgaXMgYnkgdXNpbmcgdGhlIGF0dHJpYnV0ZSdzIGBgdmFs
aWRhdG9yYGAgbWV0aG9kIGFzIGEgZGVjb3JhdG9yLgorVGhlIG1ldGhvZCBoYXMgdG8gYWNjZXB0
IHRocmVlIGFyZ3VtZW50czoKKworIy4gdGhlICppbnN0YW5jZSogdGhhdCdzIGJlaW5nIHZhbGlk
YXRlZCAoYWthIGBgc2VsZmBgKSwKKyMuIHRoZSAqYXR0cmlidXRlKiB0aGF0IGl0J3MgdmFsaWRh
dGluZywgYW5kIGZpbmFsbHkKKyMuIHRoZSAqdmFsdWUqIHRoYXQgaXMgcGFzc2VkIGZvciBpdC4K
KworSWYgdGhlIHZhbHVlIGRvZXMgbm90IHBhc3MgdGhlIHZhbGlkYXRvcidzIHN0YW5kYXJkcywg
aXQganVzdCByYWlzZXMgYW4gYXBwcm9wcmlhdGUgZXhjZXB0aW9uLgorCisuLiBkb2N0ZXN0OjoK
KworICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIHgg
PSBhdHRyLmliKCkKKyAgIC4uLiAgICAgQHgudmFsaWRhdG9yCisgICAuLi4gICAgIGRlZiBjaGVj
ayhzZWxmLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgICAgIGlmIHZhbHVlID4gNDI6
CisgICAuLi4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigieCBtdXN0IGJlIHNtYWxsZXIg
b3IgZXF1YWwgdG8gNDIiKQorICAgPj4+IEMoNDIpCisgICBDKHg9NDIpCisgICA+Pj4gQyg0MykK
KyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgVmFs
dWVFcnJvcjogeCBtdXN0IGJlIHNtYWxsZXIgb3IgZXF1YWwgdG8gNDIKKworCitDYWxsYWJsZXMK
K35+fn5+fn5+fgorCitJZiB5b3Ugd2FudCB0byByZS11c2UgeW91ciB2YWxpZGF0b3JzLCB5b3Ug
c2hvdWxkIGhhdmUgYSBsb29rIGF0IHRoZSBgYHZhbGlkYXRvcmBgIGFyZ3VtZW50IHRvIDpmdW5j
OmBhdHRyLmliKClgLgorCitJdCB0YWtlcyBlaXRoZXIgYSBjYWxsYWJsZSBvciBhIGxpc3Qgb2Yg
Y2FsbGFibGVzICh1c3VhbGx5IGZ1bmN0aW9ucykgYW5kIHRyZWF0cyB0aGVtIGFzIHZhbGlkYXRv
cnMgdGhhdCByZWNlaXZlIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyB3aXRoIHRoZSBkZWNvcmF0b3Ig
YXBwcm9hY2guCisKK1NpbmNlIHRoZSB2YWxpZGF0b3JzIHJ1bnMgKmFmdGVyKiB0aGUgaW5zdGFu
Y2UgaXMgaW5pdGlhbGl6ZWQsIHlvdSBjYW4gcmVmZXIgdG8gb3RoZXIgYXR0cmlidXRlcyB3aGls
ZSB2YWxpZGF0aW5nOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGRlZiB4X3NtYWxsZXJfdGhh
bl95KGluc3RhbmNlLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgaWYgdmFsdWUgPj0g
aW5zdGFuY2UueToKKyAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid4JyBoYXMgdG8g
YmUgc21hbGxlciB0aGFuICd5JyEiKQorICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9i
amVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKHZhbGlkYXRvcj1bYXR0ci52YWxpZGF0b3Jz
Lmluc3RhbmNlX29mKGludCksCisgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeF9z
bWFsbGVyX3RoYW5feV0pCisgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgID4+PiBDKHg9Mywg
eT00KQorICAgQyh4PTMsIHk9NCkKKyAgID4+PiBDKHg9NCwgeT0zKQorICAgVHJhY2ViYWNrICht
b3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICBWYWx1ZUVycm9yOiAneCcgaGFz
IHRvIGJlIHNtYWxsZXIgdGhhbiAneSchCisKK1RoaXMgZXhhbXBsZSBhbHNvIHNob3dzIG9mIHNv
bWUgc3ludGFjdGljIHN1Z2FyIGZvciB1c2luZyB0aGUgOmZ1bmM6YGF0dHIudmFsaWRhdG9ycy5h
bmRfYCB2YWxpZGF0b3I6IGlmIHlvdSBwYXNzIGEgbGlzdCwgYWxsIHZhbGlkYXRvcnMgaGF2ZSB0
byBwYXNzLgorCitgYGF0dHJzYGAgd29uJ3QgaW50ZXJjZXB0IHlvdXIgY2hhbmdlcyB0byB0aG9z
ZSBhdHRyaWJ1dGVzIGJ1dCB5b3UgY2FuIGFsd2F5cyBjYWxsIDpmdW5jOmBhdHRyLnZhbGlkYXRl
YCBvbiBhbnkgaW5zdGFuY2UgdG8gdmVyaWZ5IHRoYXQgaXQncyBzdGlsbCB2YWxpZDoKKworLi4g
ZG9jdGVzdDo6CisKKyAgID4+PiBpID0gQyg0LCA1KQorICAgPj4+IGkueCA9IDUgICMgd29ya3Ms
IG5vIG1hZ2ljIGhlcmUKKyAgID4+PiBhdHRyLnZhbGlkYXRlKGkpCisgICBUcmFjZWJhY2sgKG1v
c3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFZhbHVlRXJyb3I6ICd4JyBoYXMg
dG8gYmUgc21hbGxlciB0aGFuICd5JyEKKworYGBhdHRyc2BgIHNoaXBzIHdpdGggYSBidW5jaCBv
ZiB2YWxpZGF0b3JzLCBtYWtlIHN1cmUgdG8gOnJlZjpgY2hlY2sgdGhlbSBvdXQgPGFwaV92YWxp
ZGF0b3JzPmAgYmVmb3JlIHdyaXRpbmcgeW91ciBvd246CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+
Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9IGF0dHIu
aWIodmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgPj4+IEMo
NDIpCisgICBDKHg9NDIpCisgICA+Pj4gQygiNDIiKQorICAgVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICBUeXBlRXJyb3I6ICgiJ3gnIG11c3QgYmUgPHR5
cGUgJ2ludCc+IChnb3QgJzQyJyB0aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4iLCBBdHRyaWJ1dGUo
bmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgZmFjdG9yeT1OT1RISU5HLCB2YWxpZGF0b3I9PGlu
c3RhbmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8dHlwZSAnaW50Jz4+LCB0eXBlPU5vbmUpLCA8
dHlwZSAnaW50Jz4sICc0MicpCisKK09mIGNvdXJzZSB5b3UgY2FuIG1peCBhbmQgbWF0Y2ggdGhl
IHR3byBhcHByb2FjaGVzIGF0IHlvdXIgY29udmVuaWVuY2U6CisKKy4uIGRvY3Rlc3Q6OgorCisg
ICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9IGF0
dHIuaWIodmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgLi4u
ICAgICBAeC52YWxpZGF0b3IKKyAgIC4uLiAgICAgZGVmIGZpdHNfYnl0ZShzZWxmLCBhdHRyaWJ1
dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgICAgIGlmIG5vdCAwIDwgdmFsdWUgPCAyNTY6CisgICAu
Li4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgb3V0IG9mIGJvdW5kcyIpCisg
ICA+Pj4gQygxMjgpCisgICBDKHg9MTI4KQorICAgPj4+IEMoIjEyOCIpCisgICBUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFR5cGVFcnJvcjogKCIneCcg
bXVzdCBiZSA8Y2xhc3MgJ2ludCc+IChnb3QgJzEyOCcgdGhhdCBpcyBhIDxjbGFzcyAnc3RyJz4p
LiIsIEF0dHJpYnV0ZShuYW1lPSd4JywgZGVmYXVsdD1OT1RISU5HLCB2YWxpZGF0b3I9WzxpbnN0
YW5jZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPGNsYXNzICdpbnQnPj4sIDxmdW5jdGlvbiBmaXRz
X2J5dGUgYXQgMHgxMGZkN2EwZDA+XSwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1UcnVlLCBp
bml0PVRydWUsIGNvbnZlcnQ9Tm9uZSwgbWV0YWRhdGE9bWFwcGluZ3Byb3h5KHt9KSwgdHlwZT1O
b25lKSwgPGNsYXNzICdpbnQnPiwgJzEyOCcpCisgICA+Pj4gQygyNTYpCisgICBUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFZhbHVlRXJyb3I6IHZhbHVl
IG91dCBvZiBib3VuZHMKKworQW5kIGZpbmFsbHkgeW91IGNhbiBkaXNhYmxlIHZhbGlkYXRvcnMg
Z2xvYmFsbHk6CisKKyAgID4+PiBhdHRyLnNldF9ydW5fdmFsaWRhdG9ycyhGYWxzZSkKKyAgID4+
PiBDKCIxMjgiKQorICAgQyh4PScxMjgnKQorICAgPj4+IGF0dHIuc2V0X3J1bl92YWxpZGF0b3Jz
KFRydWUpCisgICA+Pj4gQygiMTI4IikKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBs
YXN0KToKKyAgICAgIC4uLgorICAgVHlwZUVycm9yOiAoIid4JyBtdXN0IGJlIDxjbGFzcyAnaW50
Jz4gKGdvdCAnMTI4JyB0aGF0IGlzIGEgPGNsYXNzICdzdHInPikuIiwgQXR0cmlidXRlKG5hbWU9
J3gnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1bPGluc3RhbmNlX29mIHZhbGlkYXRvciBm
b3IgdHlwZSA8Y2xhc3MgJ2ludCc+PiwgPGZ1bmN0aW9uIGZpdHNfYnl0ZSBhdCAweDEwZmQ3YTBk
MD5dLCByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPVRydWUsIGluaXQ9VHJ1ZSwgY29udmVydD1O
b25lLCBtZXRhZGF0YT1tYXBwaW5ncHJveHkoe30pLCB0eXBlPU5vbmUpLCA8Y2xhc3MgJ2ludCc+
LCAnMTI4JykKKworCitDb252ZXJzaW9uCistLS0tLS0tLS0tCisKK0F0dHJpYnV0ZXMgY2FuIGhh
dmUgYSBgYGNvbnZlcnRgYCBmdW5jdGlvbiBzcGVjaWZpZWQsIHdoaWNoIHdpbGwgYmUgY2FsbGVk
IHdpdGggdGhlIGF0dHJpYnV0ZSdzIHBhc3NlZC1pbiB2YWx1ZSB0byBnZXQgYSBuZXcgdmFsdWUg
dG8gdXNlLgorVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBkb2luZyB0eXBlLWNvbnZlcnNpb25zIG9u
IHZhbHVlcyB0aGF0IHlvdSBkb24ndCB3YW50IHRvIGZvcmNlIHlvdXIgY2FsbGVycyB0byBkby4K
KworLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4gQGF0dHIucworICAgIC4uLiBjbGFzcyBDKG9iamVj
dCk6CisgICAgLi4uICAgICB4ID0gYXR0ci5pYihjb252ZXJ0PWludCkKKyAgICA+Pj4gbyA9IEMo
IjEiKQorICAgID4+PiBvLngKKyAgICAxCisKK0NvbnZlcnRlcnMgYXJlIHJ1biAqYmVmb3JlKiB2
YWxpZGF0b3JzLCBzbyB5b3UgY2FuIHVzZSB2YWxpZGF0b3JzIHRvIGNoZWNrIHRoZSBmaW5hbCBm
b3JtIG9mIHRoZSB2YWx1ZS4KKworLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4gZGVmIHZhbGlkYXRl
X3goaW5zdGFuY2UsIGF0dHJpYnV0ZSwgdmFsdWUpOgorICAgIC4uLiAgICAgaWYgdmFsdWUgPCAw
OgorICAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInggbXVzdCBiZSBiZSBhdCBsZWFz
dCAwLiIpCisgICAgPj4+IEBhdHRyLnMKKyAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgIC4u
LiAgICAgeCA9IGF0dHIuaWIoY29udmVydD1pbnQsIHZhbGlkYXRvcj12YWxpZGF0ZV94KQorICAg
ID4+PiBvID0gQygiMCIpCisgICAgPj4+IG8ueAorICAgIDAKKyAgICA+Pj4gQygiLTEiKQorICAg
IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgVmFs
dWVFcnJvcjogeCBtdXN0IGJlIGJlIGF0IGxlYXN0IDAuCisKKworLi4gX21ldGFkYXRhOgorCitN
ZXRhZGF0YQorLS0tLS0tLS0KKworQWxsIGBgYXR0cnNgYCBhdHRyaWJ1dGVzIG1heSBpbmNsdWRl
IGFyYml0cmFyeSBtZXRhZGF0YSBpbiB0aGUgZm9ybSBvZiBhIHJlYWQtb25seSBkaWN0aW9uYXJ5
LgorCisuLiBkb2N0ZXN0OjoKKworICAgID4+PiBAYXR0ci5zCisgICAgLi4uIGNsYXNzIEMob2Jq
ZWN0KToKKyAgICAuLi4gICAgeCA9IGF0dHIuaWIobWV0YWRhdGE9eydteV9tZXRhZGF0YSc6IDF9
KQorICAgID4+PiBhdHRyLmZpZWxkcyhDKS54Lm1ldGFkYXRhCisgICAgbWFwcGluZ3Byb3h5KHsn
bXlfbWV0YWRhdGEnOiAxfSkKKyAgICA+Pj4gYXR0ci5maWVsZHMoQykueC5tZXRhZGF0YVsnbXlf
bWV0YWRhdGEnXQorICAgIDEKKworTWV0YWRhdGEgaXMgbm90IHVzZWQgYnkgYGBhdHRyc2BgLCBh
bmQgaXMgbWVhbnQgdG8gZW5hYmxlIHJpY2ggZnVuY3Rpb25hbGl0eSBpbiB0aGlyZC1wYXJ0eSBs
aWJyYXJpZXMuCitUaGUgbWV0YWRhdGEgZGljdGlvbmFyeSBmb2xsb3dzIHRoZSBub3JtYWwgZGlj
dGlvbmFyeSBydWxlczoga2V5cyBuZWVkIHRvIGJlIGhhc2hhYmxlLCBhbmQgYm90aCBrZXlzIGFu
ZCB2YWx1ZXMgYXJlIHJlY29tbWVuZGVkIHRvIGJlIGltbXV0YWJsZS4KKworSWYgeW91J3JlIHRo
ZSBhdXRob3Igb2YgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IHdpdGggYGBhdHRyc2BgIGludGVncmF0
aW9uLCBwbGVhc2Ugc2VlIDpyZWY6YEV4dGVuZGluZyBNZXRhZGF0YSA8ZXh0ZW5kaW5nX21ldGFk
YXRhPmAuCisKKworVHlwZXMKKy0tLS0tCisKK2BgYXR0cnNgYCBhbHNvIGFsbG93cyB5b3UgdG8g
YXNzb2NpYXRlIGEgdHlwZSB3aXRoIGFuIGF0dHJpYnV0ZSB1c2luZyBlaXRoZXIgdGhlICp0eXBl
KiBhcmd1bWVudCB0byA6ZnVuYzpgYXR0ci5pYmAgb3IgLS0gYXMgb2YgUHl0aG9uIDMuNiAtLSB1
c2luZyBgUEVQIDUyNiA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8+
YF8tYW5ub3RhdGlvbnM6CisKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAu
Li4gY2xhc3MgQzoKKyAgIC4uLiAgICAgeCA9IGF0dHIuaWIodHlwZT1pbnQpCisgICAuLi4gICAg
IHk6IGludCA9IGF0dHIuaWIoKQorICAgPj4+IGF0dHIuZmllbGRzKEMpLngudHlwZQorICAgPGNs
YXNzICdpbnQnPgorICAgPj4+IGF0dHIuZmllbGRzKEMpLnkudHlwZQorICAgPGNsYXNzICdpbnQn
PgorCitJZiB5b3UgZG9uJ3QgbWluZCBhbm5vdGF0aW5nICphbGwqIGF0dHJpYnV0ZXMsIHlvdSBj
YW4gZXZlbiBkcm9wIHRoZSA6ZnVuYzpgYXR0ci5pYmAgYW5kIGFzc2lnbiBkZWZhdWx0IHZhbHVl
cyBpbnN0ZWFkOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGltcG9ydCB0eXBpbmcKKyAgID4+
PiBAYXR0ci5zKGF1dG9fYXR0cmlicz1UcnVlKQorICAgLi4uIGNsYXNzIEF1dG9DOgorICAgLi4u
ICAgICBjbHNfdmFyOiB0eXBpbmcuQ2xhc3NWYXJbaW50XSA9IDUgICMgdGhpcyBvbmUgaXMgaWdu
b3JlZAorICAgLi4uICAgICBsOiB0eXBpbmcuTGlzdFtpbnRdID0gYXR0ci5GYWN0b3J5KGxpc3Qp
CisgICAuLi4gICAgIHg6IGludCA9IDEKKyAgIC4uLiAgICAgZm9vOiBzdHIgPSBhdHRyLmliKAor
ICAgLi4uICAgICAgICAgIGRlZmF1bHQ9ImV2ZXJ5IGF0dHJpYiBuZWVkcyBhIHR5cGUgaWYgYXV0
b19hdHRyaWJzPVRydWUiCisgICAuLi4gICAgICkKKyAgIC4uLiAgICAgYmFyOiB0eXBpbmcuQW55
ID0gTm9uZQorICAgPj4+IGF0dHIuZmllbGRzKEF1dG9DKS5sLnR5cGUKKyAgIHR5cGluZy5MaXN0
W2ludF0KKyAgID4+PiBhdHRyLmZpZWxkcyhBdXRvQykueC50eXBlCisgICA8Y2xhc3MgJ2ludCc+
CisgICA+Pj4gYXR0ci5maWVsZHMoQXV0b0MpLmZvby50eXBlCisgICA8Y2xhc3MgJ3N0cic+Cisg
ICA+Pj4gYXR0ci5maWVsZHMoQXV0b0MpLmJhci50eXBlCisgICB0eXBpbmcuQW55CisgICA+Pj4g
QXV0b0MoKQorICAgQXV0b0MobD1bXSwgeD0xLCBmb289J2V2ZXJ5IGF0dHJpYiBuZWVkcyBhIHR5
cGUgaWYgYXV0b19hdHRyaWJzPVRydWUnLCBiYXI9Tm9uZSkKKyAgID4+PiBBdXRvQy5jbHNfdmFy
CisgICA1CisKKworLi4gd2FybmluZzo6CisKKyAgIGBgYXR0cnNgYCBpdHNlbGYgZG9lc24ndCBo
YXZlIGFueSBmZWF0dXJlcyB0aGF0IHdvcmsgb24gdG9wIG9mIHR5cGUgbWV0YWRhdGEgKnlldCou
CisgICBIb3dldmVyIGl0J3MgdXNlZnVsIGZvciB3cml0aW5nIHlvdXIgb3duIHZhbGlkYXRvcnMg
b3Igc2VyaWFsaXphdGlvbiBmcmFtZXdvcmtzLgorCisKKy4uIF9zbG90czoKKworU2xvdHMKKy0t
LS0tCisKK0J5IGRlZmF1bHQsIGluc3RhbmNlcyBvZiBjbGFzc2VzIGhhdmUgYSBkaWN0aW9uYXJ5
IGZvciBhdHRyaWJ1dGUgc3RvcmFnZS4KK1RoaXMgd2FzdGVzIHNwYWNlIGZvciBvYmplY3RzIGhh
dmluZyB2ZXJ5IGZldyBkYXRhIGF0dHJpYnV0ZXMuCitUaGUgc3BhY2UgY29uc3VtcHRpb24gY2Fu
IGJlY29tZSBzaWduaWZpY2FudCB3aGVuIGNyZWF0aW5nIGxhcmdlIG51bWJlcnMgb2YgaW5zdGFu
Y2VzLgorCitOb3JtYWwgUHl0aG9uIGNsYXNzZXMgY2FuIGF2b2lkIHVzaW5nIGEgc2VwYXJhdGUg
ZGljdGlvbmFyeSBmb3IgZWFjaCBpbnN0YW5jZSBvZiBhIGNsYXNzIGJ5IGBkZWZpbmluZyA8aHR0
cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwjc2xvdHM+YF8g
YGBfX3Nsb3RzX19gYC4KK0ZvciBgYGF0dHJzYGAgY2xhc3NlcyBpdCdzIGVub3VnaCB0byBzZXQg
YGBzbG90cz1UcnVlYGA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhzbG90cz1U
cnVlKQorICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBh
dHRyLmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorCisKKy4uIG5vdGU6OgorCisgICAg
YGBhdHRyc2BgIHNsb3QgY2xhc3NlcyBjYW4gaW5oZXJpdCBmcm9tIG90aGVyIGNsYXNzZXMganVz
dCBsaWtlIG5vbi1zbG90IGNsYXNzZXMsIGJ1dCBzb21lIG9mIHRoZSBiZW5lZml0cyBvZiBzbG90
IGNsYXNzZXMgYXJlIGxvc3QgaWYgeW91IGRvIHRoYXQuCisgICAgSWYgeW91IG11c3QgaW5oZXJp
dCBmcm9tIG90aGVyIGNsYXNzZXMsIHRyeSB0byBpbmhlcml0IG9ubHkgZnJvbSBvdGhlciBzbG90
IGNsYXNzZXMuCisKK1Nsb3QgY2xhc3NlcyBhcmUgYSBsaXR0bGUgZGlmZmVyZW50IHRoYW4gb3Jk
aW5hcnksIGRpY3Rpb25hcnktYmFja2VkIGNsYXNzZXM6CisKKy0gQXNzaWduaW5nIHRvIGEgbm9u
LWV4aXN0ZW50IGF0dHJpYnV0ZSBvZiBhbiBpbnN0YW5jZSB3aWxsIHJlc3VsdCBpbiBhbiBgYEF0
dHJpYnV0ZUVycm9yYGAgYmVpbmcgcmFpc2VkLgorICBEZXBlbmRpbmcgb24geW91ciBuZWVkcywg
dGhpcyBtaWdodCBiZSBhIGdvb2QgdGhpbmcgc2luY2UgaXQgd2lsbCBsZXQgeW91IGNhdGNoIHR5
cG9zIGVhcmx5LgorICBUaGlzIGlzIG5vdCB0aGUgY2FzZSBpZiB5b3VyIGNsYXNzIGluaGVyaXRz
IGZyb20gYW55IG5vbi1zbG90IGNsYXNzZXMuCisKKyAgLi4gZG9jdGVzdDo6CisKKyAgICAgPj4+
IEBhdHRyLnMoc2xvdHM9VHJ1ZSkKKyAgICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVjdCk6
CisgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIoKQorICAgICAuLi4gICAgIHkgPSBhdHRyLmliKCkK
KyAgICAgLi4uCisgICAgID4+PiBjID0gQ29vcmRpbmF0ZXMoeD0xLCB5PTIpCisgICAgID4+PiBj
LnogPSAzCisgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAg
IC4uLgorICAgICBBdHRyaWJ1dGVFcnJvcjogJ0Nvb3JkaW5hdGVzJyBvYmplY3QgaGFzIG5vIGF0
dHJpYnV0ZSAneicKKworLSBTaW5jZSBub24tc2xvdCBjbGFzc2VzIGNhbm5vdCBiZSB0dXJuZWQg
aW50byBzbG90IGNsYXNzZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gY3JlYXRlZCwgYGBhdHRyLnMo
c2xvdHM9VHJ1ZSlgYCB3aWxsICpyZXBsYWNlKiB0aGUgY2xhc3MgaXQgaXMgYXBwbGllZCB0byB3
aXRoIGEgY29weS4KKyAgSW4gYWxtb3N0IGFsbCBjYXNlcyB0aGlzIGlzbid0IGEgcHJvYmxlbSwg
YnV0IHdlIG1lbnRpb24gaXQgZm9yIHRoZSBzYWtlIG9mIGNvbXBsZXRlbmVzcy4KKworICAqIE9u
ZSBub3RhYmxlIHByb2JsZW0gaXMgdGhhdCBjZXJ0YWluIG1ldGFjbGFzcyBmZWF0dXJlcyBsaWtl
IGBgX19pbml0X3N1YmNsYXNzX19gYCBkbyBub3Qgd29yayB3aXRoIHNsb3QgY2xhc3Nlcy4KKwor
LSBVc2luZyA6bW9kOmBwaWNrbGVgIHdpdGggc2xvdCBjbGFzc2VzIHJlcXVpcmVzIHBpY2tsZSBw
cm90b2NvbCAyIG9yIGdyZWF0ZXIuCisgIFB5dGhvbiAyIHVzZXMgcHJvdG9jb2wgMCBieSBkZWZh
dWx0IHNvIHRoZSBwcm90b2NvbCBuZWVkcyB0byBiZSBzcGVjaWZpZWQuCisgIFB5dGhvbiAzIHVz
ZXMgcHJvdG9jb2wgMyBieSBkZWZhdWx0LgorICBZb3UgY2FuIHN1cHBvcnQgcHJvdG9jb2wgMCBh
bmQgMSBieSBpbXBsZW1lbnRpbmcgOm1ldGg6YF9fZ2V0c3RhdGVfXyA8b2JqZWN0Ll9fZ2V0c3Rh
dGVfXz5gIGFuZCA6bWV0aDpgX19zZXRzdGF0ZV9fIDxvYmplY3QuX19zZXRzdGF0ZV9fPmAgbWV0
aG9kcyB5b3Vyc2VsZi4KKyAgVGhvc2UgbWV0aG9kcyBhcmUgY3JlYXRlZCBmb3IgZnJvemVuIHNs
b3QgY2xhc3NlcyBiZWNhdXNlIHRoZXkgd29uJ3QgcGlja2xlIG90aGVyd2lzZS4KKyAgYFRoaW5r
IHR3aWNlIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTdLbmZHRGFqRFF3PmBfIGJl
Zm9yZSB1c2luZyA6bW9kOmBwaWNrbGVgIHRob3VnaC4KKworLSBBcyBhbHdheXMgd2l0aCBzbG90
IGNsYXNzZXMsIHlvdSBtdXN0IHNwZWNpZnkgYSBgYF9fd2Vha3JlZl9fYGAgc2xvdCBpZiB5b3Ug
d2lzaCBmb3IgdGhlIGNsYXNzIHRvIGJlIHdlYWstcmVmZXJlbmNlYWJsZS4KKyAgSGVyZSdzIGhv
dyBpdCBsb29rcyB1c2luZyBgYGF0dHJzYGA6CisKKyAgLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4g
aW1wb3J0IHdlYWtyZWYKKyAgICA+Pj4gQGF0dHIucyhzbG90cz1UcnVlKQorICAgIC4uLiBjbGFz
cyBDKG9iamVjdCk6CisgICAgLi4uICAgICBfX3dlYWtyZWZfXyA9IGF0dHIuaWIoaW5pdD1GYWxz
ZSwgaGFzaD1GYWxzZSwgcmVwcj1GYWxzZSwgY21wPUZhbHNlKQorICAgIC4uLiAgICAgeCA9IGF0
dHIuaWIoKQorICAgID4+PiBjID0gQygxKQorICAgID4+PiB3ZWFrcmVmLnJlZihjKQorICAgIDx3
ZWFrcmVmIGF0IDB4Li4uOyB0byAnQycgYXQgMHguLi4+CisKK0FsbCBpbiBhbGwsIHNldHRpbmcg
YGBzbG90cz1UcnVlYGAgaXMgdXN1YWxseSBhIHZlcnkgZ29vZCBpZGVhLgorCisKK0ltbXV0YWJp
bGl0eQorLS0tLS0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3UgaGF2ZSBpbnN0YW5jZXMgdGhhdCBz
aG91bGRuJ3QgYmUgY2hhbmdlZCBhZnRlciBpbnN0YW50aWF0aW9uLgorSW1tdXRhYmlsaXR5IGlz
IGVzcGVjaWFsbHkgcG9wdWxhciBpbiBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGFuZCBpcyBnZW5l
cmFsbHkgYSB2ZXJ5IGdvb2QgdGhpbmcuCitJZiB5b3UnZCBsaWtlIHRvIGVuZm9yY2UgaXQsIGBg
YXR0cnNgYCB3aWxsIHRyeSB0byBoZWxwOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRy
LnMoZnJvemVuPVRydWUpCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0g
YXR0ci5pYigpCisgICA+Pj4gaSA9IEMoMSkKKyAgID4+PiBpLnggPSAyCisgICBUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIGF0dHIuZXhjZXB0aW9ucy5G
cm96ZW5JbnN0YW5jZUVycm9yOiBjYW4ndCBzZXQgYXR0cmlidXRlCisgICA+Pj4gaS54CisgICAx
CisKK1BsZWFzZSBub3RlIHRoYXQgdHJ1ZSBpbW11dGFiaWxpdHkgaXMgaW1wb3NzaWJsZSBpbiBQ
eXRob24gYnV0IGl0IHdpbGwgOnJlZjpgZ2V0IDxob3ctZnJvemVuPmAgeW91IDk5JSB0aGVyZS4K
K0J5IHRoZW1zZWx2ZXMsIGltbXV0YWJsZSBjbGFzc2VzIGFyZSB1c2VmdWwgZm9yIGxvbmctbGl2
ZWQgb2JqZWN0cyB0aGF0IHNob3VsZCBuZXZlciBjaGFuZ2U7IGxpa2UgY29uZmlndXJhdGlvbnMg
Zm9yIGV4YW1wbGUuCisKK0luIG9yZGVyIHRvIHVzZSB0aGVtIGluIHJlZ3VsYXIgcHJvZ3JhbSBm
bG93LCB5b3UnbGwgbmVlZCBhIHdheSB0byBlYXNpbHkgY3JlYXRlIG5ldyBpbnN0YW5jZXMgd2l0
aCBjaGFuZ2VkIGF0dHJpYnV0ZXMuCitJbiBDbG9qdXJlIHRoYXQgZnVuY3Rpb24gaXMgY2FsbGVk
IGBhc3NvYyA8aHR0cHM6Ly9jbG9qdXJlZG9jcy5vcmcvY2xvanVyZS5jb3JlL2Fzc29jPmBfIGFu
ZCBgYGF0dHJzYGAgc2hhbWVsZXNzbHkgaW1pdGF0ZXMgaXQ6IDpmdW5jOmBhdHRyLmV2b2x2ZWA6
CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhmcm96ZW49VHJ1ZSkKKyAgIC4uLiBj
bGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeSA9
IGF0dHIuaWIoKQorICAgPj4+IGkxID0gQygxLCAyKQorICAgPj4+IGkxCisgICBDKHg9MSwgeT0y
KQorICAgPj4+IGkyID0gYXR0ci5ldm9sdmUoaTEsIHk9MykKKyAgID4+PiBpMgorICAgQyh4PTEs
IHk9MykKKyAgID4+PiBpMSA9PSBpMgorICAgRmFsc2UKKworCitPdGhlciBHb29kaWVzCistLS0t
LS0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3UgbWF5IHdhbnQgdG8gY3JlYXRlIGEgY2xhc3MgcHJv
Z3JhbW1hdGljYWxseS4KK2BgYXR0cnNgYCB3b24ndCBsZXQgeW91IGRvd24gYW5kIGdpdmVzIHlv
dSA6ZnVuYzpgYXR0ci5tYWtlX2NsYXNzYCA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0
dHIucworICAgLi4uIGNsYXNzIEMxKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKCkK
KyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgPj4+IEMyID0gYXR0ci5tYWtlX2NsYXNzKCJD
MiIsIFsieCIsICJ5Il0pCisgICA+Pj4gYXR0ci5maWVsZHMoQzEpID09IGF0dHIuZmllbGRzKEMy
KQorICAgVHJ1ZQorCitZb3UgY2FuIHN0aWxsIGhhdmUgcG93ZXIgb3ZlciB0aGUgYXR0cmlidXRl
cyBpZiB5b3UgcGFzcyBhIGRpY3Rpb25hcnkgb2YgbmFtZTogYGBhdHRyLmliYGAgbWFwcGluZ3Mg
YW5kIGNhbiBwYXNzIGFyZ3VtZW50cyB0byBgYEBhdHRyLnNgYDoKKworLi4gZG9jdGVzdDo6CisK
KyAgID4+PiBDID0gYXR0ci5tYWtlX2NsYXNzKCJDIiwgeyJ4IjogYXR0ci5pYihkZWZhdWx0PTQy
KSwKKyAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogYXR0ci5pYihkZWZhdWx0
PWF0dHIuRmFjdG9yeShsaXN0KSl9LAorICAgLi4uICAgICAgICAgICAgICAgICAgICAgcmVwcj1G
YWxzZSkKKyAgID4+PiBpID0gQygpCisgICA+Pj4gaSAgIyBubyByZXByIGFkZGVkIQorICAgPF9f
bWFpbl9fLkMgb2JqZWN0IGF0IC4uLj4KKyAgID4+PiBpLngKKyAgIDQyCisgICA+Pj4gaS55Cisg
ICBbXQorCitJZiB5b3UgbmVlZCB0byBkeW5hbWljYWxseSBtYWtlIGEgY2xhc3Mgd2l0aCA6ZnVu
YzpgYXR0ci5tYWtlX2NsYXNzYCBhbmQgaXQgbmVlZHMgdG8gYmUgYSBzdWJjbGFzcyBvZiBzb21l
dGhpbmcgZWxzZSB0aGFuIGBgb2JqZWN0YGAsIHVzZSB0aGUgYGBiYXNlc2BgIGFyZ3VtZW50Ogor
CisuLiBkb2N0ZXN0OjoKKworICA+Pj4gY2xhc3MgRChvYmplY3QpOgorICAuLi4gICAgZGVmIF9f
ZXFfXyhzZWxmLCBvdGhlcik6CisgIC4uLiAgICAgICAgcmV0dXJuIFRydWUgICMgYXJiaXRyYXJ5
IGV4YW1wbGUKKyAgPj4+IEMgPSBhdHRyLm1ha2VfY2xhc3MoIkMiLCB7fSwgYmFzZXM9KEQsKSwg
Y21wPUZhbHNlKQorICA+Pj4gaXNpbnN0YW5jZShDKCksIEQpCisgIFRydWUKKworU29tZXRpbWVz
LCB5b3Ugd2FudCB0byBoYXZlIHlvdXIgY2xhc3MncyBgYF9faW5pdF9fYGAgbWV0aG9kIGRvIG1v
cmUgdGhhbiBqdXN0Cit0aGUgaW5pdGlhbGl6YXRpb24sIHZhbGlkYXRpb24sIGV0Yy4gdGhhdCBn
ZXRzIGRvbmUgZm9yIHlvdSBhdXRvbWF0aWNhbGx5IHdoZW4KK3VzaW5nIGBgQGF0dHIuc2BgLgor
VG8gZG8gdGhpcywganVzdCBkZWZpbmUgYSBgYF9fYXR0cnNfcG9zdF9pbml0X19gYCBtZXRob2Qg
aW4geW91ciBjbGFzcy4KK0l0IHdpbGwgZ2V0IGNhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBnZW5l
cmF0ZWQgYGBfX2luaXRfX2BgIG1ldGhvZC4KKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0
ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0ci5pYigpCisg
ICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeiA9IGF0dHIuaWIoaW5pdD1GYWxz
ZSkKKyAgIC4uLgorICAgLi4uICAgICBkZWYgX19hdHRyc19wb3N0X2luaXRfXyhzZWxmKToKKyAg
IC4uLiAgICAgICAgIHNlbGYueiA9IHNlbGYueCArIHNlbGYueQorICAgPj4+IG9iaiA9IEMoeD0x
LCB5PTIpCisgICA+Pj4gb2JqCisgICBDKHg9MSwgeT0yLCB6PTMpCisKK0ZpbmFsbHksIHlvdSBj
YW4gZXhjbHVkZSBzaW5nbGUgYXR0cmlidXRlcyBmcm9tIGNlcnRhaW4gbWV0aG9kczoKKworLi4g
ZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAg
Li4uICAgICB1c2VyID0gYXR0ci5pYigpCisgICAuLi4gICAgIHBhc3N3b3JkID0gYXR0ci5pYihy
ZXByPUZhbHNlKQorICAgPj4+IEMoIm1lIiwgInMza3IzdCIpCisgICBDKHVzZXI9J21lJykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9leHRlbmRpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2Nz
L2V4dGVuZGluZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2MGVlOWI4YzBmNGMxYzA4YTRiMjc3ODMyYzUz
YWY4MDg5Mzk3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9leHRlbmRpbmcu
cnN0CkBAIC0wLDAgKzEsMTEyIEBACisuLiBfZXh0ZW5kaW5nOgorCitFeHRlbmRpbmcKKz09PT09
PT09PQorCitFYWNoIGBgYXR0cnNgYC1kZWNvcmF0ZWQgY2xhc3MgaGFzIGEgYGBfX2F0dHJzX2F0
dHJzX19gYCBjbGFzcyBhdHRyaWJ1dGUuCitJdCBpcyBhIHR1cGxlIG9mIDpjbGFzczpgYXR0ci5B
dHRyaWJ1dGVgIGNhcnJ5aW5nIG1ldGEtZGF0YSBhYm91dCBlYWNoIGF0dHJpYnV0ZS4KKworU28g
aXQgaXMgZmFpcmx5IHNpbXBsZSB0byBidWlsZCB5b3VyIG93biBkZWNvcmF0b3JzIG9uIHRvcCBv
ZiBgYGF0dHJzYGA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1wb3J0IGF0dHIKKyAgID4+
PiBkZWYgcHJpbnRfYXR0cnMoY2xzKToKKyAgIC4uLiAgICAgcHJpbnQoY2xzLl9fYXR0cnNfYXR0
cnNfXykKKyAgID4+PiBAcHJpbnRfYXR0cnMKKyAgIC4uLiBAYXR0ci5zCisgICAuLi4gY2xhc3Mg
QyhvYmplY3QpOgorICAgLi4uICAgICBhID0gYXR0ci5pYigpCisgICAoQXR0cmlidXRlKG5hbWU9
J2EnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1Ob25lLCByZXByPVRydWUsIGNtcD1UcnVl
LCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCBtZXRhZGF0YT1tYXBwaW5ncHJv
eHkoe30pLCB0eXBlPU5vbmUpLCkKKworCisuLiB3YXJuaW5nOjoKKworICAgVGhlIDpmdW5jOmBh
dHRyLnNgIGRlY29yYXRvciAqKm11c3QqKiBiZSBhcHBsaWVkIGZpcnN0IGJlY2F1c2UgaXQgcHV0
cyBgYF9fYXR0cnNfYXR0cnNfX2BgIGluIHBsYWNlIQorICAgVGhhdCBtZWFucyB0aGF0IGlzIGhh
cyB0byBjb21lICphZnRlciogeW91ciBkZWNvcmF0b3IgYmVjYXVzZTo6CisKKyAgICAgIEBhCisg
ICAgICBAYgorICAgICAgZGVmIGYoKToKKyAgICAgICAgIHBhc3MKKworICAgaXMganVzdCBgc3lu
dGFjdGljIHN1Z2FyIDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TeW50YWN0aWNfc3Vn
YXI+YF8gZm9yOjoKKworICAgICAgZGVmIG9yaWdpbmFsX2YoKToKKyAgICAgICAgIHBhc3MKKwor
ICAgICAgZiA9IGEoYihvcmlnaW5hbF9mKSkKKworCitXcmFwcGluZyB0aGUgRGVjb3JhdG9yCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0EgbW9yZSBlbGVnYW50IHdheSBjYW4gYmUgdG8gd3Jh
cCBgYGF0dHJzYGAgYWx0b2dldGhlciBhbmQgYnVpbGQgYSBjbGFzcyBgRFNMIDxodHRwczovL2Vu
Lndpa2lwZWRpYS5vcmcvd2lraS9Eb21haW4tc3BlY2lmaWNfbGFuZ3VhZ2U+YF8gb24gdG9wIG9m
IGl0LgorCitBbiBleGFtcGxlIGZvciB0aGF0IGlzIHRoZSBwYWNrYWdlIGBlbnZpcm9uX2NvbmZp
ZyA8aHR0cHM6Ly9naXRodWIuY29tL2h5bmVrL2Vudmlyb25fY29uZmlnPmBfIHRoYXQgdXNlcyBg
YGF0dHJzYGAgdW5kZXIgdGhlIGhvb2QgdG8gZGVmaW5lIGVudmlyb25tZW50LWJhc2VkIGNvbmZp
Z3VyYXRpb25zIGRlY2xhcmF0aXZlbHkgd2l0aG91dCBleHBvc2luZyBgYGF0dHJzYGAgQVBJcyBh
dCBhbGwuCisKKworVHlwZXMKKy0tLS0tCisKK2BgYXR0cnNgYCBvZmZlcnMgdHdvIHdheXMgb2Yg
YXR0YWNoaW5nIHR5cGUgaW5mb3JtYXRpb24gdG8gYXR0cmlidXRlczoKKworLSBgUEVQIDUyNiA8
aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8+YF8gYW5ub3RhdGlvbnMg
b24gUHl0aG9uIDMuNiBhbmQgbGF0ZXIsCistIGFuZCB0aGUgKnR5cGUqIGFyZ3VtZW50IHRvIDpm
dW5jOmBhdHRyLmliYC4KKworVGhpcyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgdG8geW91Ogor
CisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGltcG9ydCBhdHRyCisgICA+Pj4gQGF0dHIucworICAg
Li4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeDogaW50ID0gYXR0ci5pYigpCisgICAu
Li4gICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgPj4+IGF0dHIuZmllbGRzKEMpLngudHlw
ZQorICAgPGNsYXNzICdpbnQnPgorICAgPj4+IGF0dHIuZmllbGRzKEMpLnkudHlwZQorICAgPGNs
YXNzICdzdHInPgorCitDdXJyZW50bHksIGBgYXR0cnNgYCBkb2Vzbid0IGRvIGFueXRoaW5nIHdp
dGggdGhpcyBpbmZvcm1hdGlvbiBidXQgaXQncyB2ZXJ5IHVzZWZ1bCBpZiB5b3UnZCBsaWtlIHRv
IHdyaXRlIHlvdXIgb3duIHZhbGlkYXRvcnMgb3Igc2VyaWFsaXplcnMhCisKKworLi4gX2V4dGVu
ZGluZ19tZXRhZGF0YToKKworTWV0YWRhdGEKKy0tLS0tLS0tCisKK0lmIHlvdSdyZSB0aGUgYXV0
aG9yIG9mIGEgdGhpcmQtcGFydHkgbGlicmFyeSB3aXRoIGBgYXR0cnNgYCBpbnRlZ3JhdGlvbiwg
eW91IG1heSB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIGF0dHJpYnV0ZSBtZXRhZGF0YS4KKwor
SGVyZSBhcmUgc29tZSB0aXBzIGZvciBlZmZlY3RpdmUgdXNlIG9mIG1ldGFkYXRhOgorCistIFRy
eSBtYWtpbmcgeW91ciBtZXRhZGF0YSBrZXlzIGFuZCB2YWx1ZXMgaW1tdXRhYmxlLgorICBUaGlz
IGtlZXBzIHRoZSBlbnRpcmUgYGBBdHRyaWJ1dGVgYCBpbnN0YW5jZXMgaW1tdXRhYmxlIHRvby4K
KworLSBUbyBhdm9pZCBtZXRhZGF0YSBrZXkgY29sbGlzaW9ucywgY29uc2lkZXIgZXhwb3Npbmcg
eW91ciBtZXRhZGF0YSBrZXlzIGZyb20geW91ciBtb2R1bGVzLjo6CisKKyAgICBmcm9tIG15bGli
IGltcG9ydCBNWV9NRVRBREFUQV9LRVkKKworICAgIEBhdHRyLnMKKyAgICBjbGFzcyBDKG9iamVj
dCk6CisgICAgICB4ID0gYXR0ci5pYihtZXRhZGF0YT17TVlfTUVUQURBVEFfS0VZOiAxfSkKKwor
ICBNZXRhZGF0YSBzaG91bGQgYmUgY29tcG9zYWJsZSwgc28gY29uc2lkZXIgc3VwcG9ydGluZyB0
aGlzIGFwcHJvYWNoIGV2ZW4gaWYgeW91IGRlY2lkZSBpbXBsZW1lbnRpbmcgeW91ciBtZXRhZGF0
YSBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzLgorCistIEV4cG9zZSBgYGF0dHIuaWJgYCB3
cmFwcGVycyBmb3IgeW91ciBzcGVjaWZpYyBtZXRhZGF0YS4KKyAgVGhpcyBpcyBhIG1vcmUgZ3Jh
Y2VmdWwgYXBwcm9hY2ggaWYgeW91ciB1c2VycyBkb24ndCByZXF1aXJlIG1ldGFkYXRhIGZyb20g
b3RoZXIgbGlicmFyaWVzLgorCisgIC4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IE1ZX1RZUEVfTUVU
QURBVEEgPSAnX19teV90eXBlX21ldGFkYXRhJworICAgID4+PgorICAgID4+PiBkZWYgdHlwZWQo
Y2xzLCBkZWZhdWx0PWF0dHIuTk9USElORywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgY21w
PVRydWUsIGhhc2g9Tm9uZSwgaW5pdD1UcnVlLCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPXt9KToK
KyAgICAuLi4gICAgIG1ldGFkYXRhID0gZGljdCgpIGlmIG5vdCBtZXRhZGF0YSBlbHNlIG1ldGFk
YXRhCisgICAgLi4uICAgICBtZXRhZGF0YVtNWV9UWVBFX01FVEFEQVRBXSA9IGNscworICAgIC4u
LiAgICAgcmV0dXJuIGF0dHIuaWIoZGVmYXVsdCwgdmFsaWRhdG9yLCByZXByLCBjbXAsIGhhc2gs
IGluaXQsIGNvbnZlcnQsIG1ldGFkYXRhKQorICAgID4+PgorICAgID4+PiBAYXR0ci5zCisgICAg
Li4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAuLi4gICAgIHggPSB0eXBlZChpbnQsIGRlZmF1bHQ9
MSwgaW5pdD1GYWxzZSkKKyAgICA+Pj4gYXR0ci5maWVsZHMoQykueC5tZXRhZGF0YVtNWV9UWVBF
X01FVEFEQVRBXQorICAgIDxjbGFzcyAnaW50Jz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9ob3ctZG9lcy1pdC13b3JrLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9ob3ctZG9lcy1pdC13b3Jr
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMjBiZWNkMWY3ODY5NDFjYzJiYzBhNzBmOThhMjFlYmExZjQ1OTA2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2VzLWl0LXdvcmsucnN0
CkBAIC0wLDAgKzEsNzkgQEAKKy4uIF9ob3c6CisKK0hvdyBEb2VzIEl0IFdvcms/Cis9PT09PT09
PT09PT09PT09PQorCisKK0JvaWxlcnBsYXRlCistLS0tLS0tLS0tLQorCitgYGF0dHJzYGAgY2Vy
dGFpbmx5IGlzbid0IHRoZSBmaXJzdCBsaWJyYXJ5IHRoYXQgYWltcyB0byBzaW1wbGlmeSBjbGFz
cyBkZWZpbml0aW9uIGluIFB5dGhvbi4KK0J1dCBpdHMgKipkZWNsYXJhdGl2ZSoqIGFwcHJvYWNo
IGNvbWJpbmVkIHdpdGggKipubyBydW50aW1lIG92ZXJoZWFkKiogbGV0cyBpdCBzdGFuZCBvdXQu
CisKK09uY2UgeW91IGFwcGx5IHRoZSBgYEBhdHRyLnNgYCBkZWNvcmF0b3IgdG8gYSBjbGFzcywg
YGBhdHRyc2BgIHNlYXJjaGVzIHRoZSBjbGFzcyBvYmplY3QgZm9yIGluc3RhbmNlcyBvZiBgYGF0
dHIuaWJgYFwgcy4KK0ludGVybmFsbHkgdGhleSdyZSBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBk
YXRhIHBhc3NlZCBpbnRvIGBgYXR0ci5pYmBgIGFsb25nIHdpdGggYSBjb3VudGVyIHRvIHByZXNl
cnZlIHRoZSBvcmRlciBvZiB0aGUgYXR0cmlidXRlcy4KKworSW4gb3JkZXIgdG8gZW5zdXJlIHRo
YXQgc3ViLWNsYXNzaW5nIHdvcmtzIGFzIHlvdSdkIGV4cGVjdCBpdCB0byB3b3JrLCBgYGF0dHJz
YGAgYWxzbyB3YWxrcyB0aGUgY2xhc3MgaGllcmFyY2h5IGFuZCBjb2xsZWN0cyB0aGUgYXR0cmli
dXRlcyBvZiBhbGwgc3VwZXItY2xhc3Nlcy4KK1BsZWFzZSBub3RlIHRoYXQgYGBhdHRyc2BgIGRv
ZXMgKm5vdCogY2FsbCBgYHN1cGVyKClgYCAqZXZlciouCitJdCB3aWxsIHdyaXRlIGR1bmRlciBt
ZXRob2RzIHRvIHdvcmsgb24gKmFsbCogb2YgdGhvc2UgYXR0cmlidXRlcyB3aGljaCBhbHNvIGhh
cyBwZXJmb3JtYW5jZSBiZW5lZml0cyBkdWUgdG8gZmV3ZXIgZnVuY3Rpb24gY2FsbHMuCisKK09u
Y2UgYGBhdHRyc2BgIGtub3dzIHdoYXQgYXR0cmlidXRlcyBpdCBoYXMgdG8gd29yayBvbiwgaXQg
d3JpdGVzIHRoZSByZXF1ZXN0ZWQgZHVuZGVyIG1ldGhvZHMgYW5kIC0tIGRlcGVuZGluZyBvbiB3
aGV0aGVyIHlvdSB3aXNoIHRvIGhhdmUgYGBfX3Nsb3RzX19gYCAtLSBjcmVhdGVzIGEgbmV3IGNs
YXNzIGZvciB5b3UgKGBgc2xvdHM9VHJ1ZWBgKSBvciBhdHRhY2hlcyB0aGVtIHRvIHRoZSBvcmln
aW5hbCBjbGFzcyAoYGBzbG90cz1GYWxzZWBgKS4KK1doaWxlIGNyZWF0aW5nIG5ldyBjbGFzc2Vz
IGlzIG1vcmUgZWxlZ2FudCwgd2UndmUgcnVuIGludG8gc2V2ZXJhbCBlZGdlIGNhc2VzIHN1cnJv
dW5kaW5nIG1ldGFjbGFzc2VzIHRoYXQgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIGdvIHRoaXMgcm91
dGUgdW5jb25kaXRpb25hbGx5LgorCitUbyBiZSB2ZXJ5IGNsZWFyOiBpZiB5b3UgZGVmaW5lIGEg
Y2xhc3Mgd2l0aCBhIHNpbmdsZSBhdHRyaWJ1dGUgIHdpdGhvdXQgYSBkZWZhdWx0IHZhbHVlLCB0
aGUgZ2VuZXJhdGVkIGBgX19pbml0X19gYCB3aWxsIGxvb2sgKmV4YWN0bHkqIGhvdyB5b3UnZCBl
eHBlY3Q6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1wb3J0IGF0dHIsIGluc3BlY3QKKyAg
ID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0
ci5pYigpCisgICA+Pj4gcHJpbnQoaW5zcGVjdC5nZXRzb3VyY2UoQy5fX2luaXRfXykpCisgICBk
ZWYgX19pbml0X18oc2VsZiwgeCk6CisgICAgICAgc2VsZi54ID0geAorICAgPEJMQU5LTElORT4K
KworTm8gbWFnaWMsIG5vIG1ldGEgcHJvZ3JhbW1pbmcsIG5vIGV4cGVuc2l2ZSBpbnRyb3NwZWN0
aW9uIGF0IHJ1bnRpbWUuCisKKyoqKioKKworRXZlcnl0aGluZyB1bnRpbCB0aGlzIHBvaW50IGhh
cHBlbnMgZXhhY3RseSAqb25jZSogd2hlbiB0aGUgY2xhc3MgaXMgZGVmaW5lZC4KK0FzIHNvb24g
YXMgYSBjbGFzcyBpcyBkb25lLCBpdCdzIGRvbmUuCitBbmQgaXQncyBqdXN0IGEgcmVndWxhciBQ
eXRob24gY2xhc3MgbGlrZSBhbnkgb3RoZXIsIGV4Y2VwdCBmb3IgYSBzaW5nbGUgYGBfX2F0dHJz
X2F0dHJzX19gYCBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBmb3IgaW50cm9zcGVjdGlvbiBv
ciBmb3Igd3JpdGluZyB5b3VyIG93biB0b29scyBhbmQgZGVjb3JhdG9ycyBvbiB0b3Agb2YgYGBh
dHRyc2BgIChsaWtlIDpmdW5jOmBhdHRyLmFzZGljdGApLgorCitBbmQgb25jZSB5b3Ugc3RhcnQg
aW5zdGFudGlhdGluZyB5b3VyIGNsYXNzZXMsIGBgYXR0cnNgYCBpcyBvdXQgb2YgeW91ciB3YXkg
Y29tcGxldGVseS4KKworVGhpcyAqKnN0YXRpYyoqIGFwcHJvYWNoIHdhcyB2ZXJ5IG11Y2ggYSBk
ZXNpZ24gZ29hbCBvZiBgYGF0dHJzYGAgYW5kIHdoYXQgSSBzdHJvbmdseSBiZWxpZXZlIG1ha2Vz
IGl0IGRpc3RpbmN0LgorCisKKy4uIF9ob3ctZnJvemVuOgorCitJbW11dGFiaWxpdHkKKy0tLS0t
LS0tLS0tLQorCitJbiBvcmRlciB0byBnaXZlIHlvdSBpbW11dGFiaWxpdHksIGBgYXR0cnNgYCB3
aWxsIGF0dGFjaCBhIGBgX19zZXRhdHRyX19gYCBtZXRob2QgdG8geW91ciBjbGFzcyB0aGF0IHJh
aXNlcyBhIDpleGM6YGF0dHIuZXhjZXB0aW9ucy5Gcm96ZW5JbnN0YW5jZUVycm9yYCB3aGVuZXZl
ciBhbnlvbmUgdHJpZXMgdG8gc2V0IGFuIGF0dHJpYnV0ZS4KKworVG8gY2lyY3VtdmVudCB0aGF0
IG91cnNlbHZlcyBpbiBgYF9faW5pdF9fYGAsIGBgYXR0cnNgYCB1c2VzIChhbiBhZ2dyZXNzaXZl
bHkgY2FjaGVkKSA6bWV0aDpgb2JqZWN0Ll9fc2V0YXR0cl9fYCB0byBzZXQgeW91ciBhdHRyaWJ1
dGVzLgorVGhpcyBpcyAoc3RpbGwpIHNsb3dlciB0aGFuIGEgcGxhaW4gYXNzaWdubWVudDoKKwor
Li4gY29kZS1ibG9jazo6IG5vbmUKKworICAkIHB5cGVyZiB0aW1laXQgLS1yaWdvcm91cyBcCisg
ICAgICAgIC1zICJpbXBvcnQgYXR0cjsgQyA9IGF0dHIubWFrZV9jbGFzcygnQycsIFsneCcsICd5
JywgJ3onXSwgc2xvdHM9VHJ1ZSkiIFwKKyAgICAgICAgIkMoMSwgMiwgMykiCisgIC4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgTWVkaWFuICstIHN0ZCBkZXY6IDM3
OCBucyArLSAxMiBucworCisgICQgcHlwZXJmIHRpbWVpdCAtLXJpZ29yb3VzIFwKKyAgICAgICAg
LXMgImltcG9ydCBhdHRyOyBDID0gYXR0ci5tYWtlX2NsYXNzKCdDJywgWyd4JywgJ3knLCAneidd
LCBzbG90cz1UcnVlLCBmcm96ZW49VHJ1ZSkiIFwKKyAgICAgICAgIkMoMSwgMiwgMykiCisgIC4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgTWVkaWFuICstIHN0ZCBk
ZXY6IDY3NiBucyArLSAxNiBucworCitTbyBvbiBhIHN0YW5kYXJkIG5vdGVib29rIHRoZSBkaWZm
ZXJlbmNlIGlzIGFib3V0IDMwMCBuYW5vc2Vjb25kcyAoMSBzZWNvbmQgaXMgMSwwMDAsMDAwLDAw
MCBuYW5vc2Vjb25kcykuCitJdCdzIGNlcnRhaW5seSBzb21ldGhpbmcgeW91J2xsIGZlZWwgaW4g
YSBob3QgbG9vcCBidXQgc2hvdWxkbid0IG1hdHRlciBpbiBub3JtYWwgY29kZS4KK1BpY2sgd2hh
dCdzIG1vcmUgaW1wb3J0YW50IHRvIHlvdS4KKworKioqKgorCitPbmNlIGNvbnN0cnVjdGVkLCBm
cm96ZW4gaW5zdGFuY2VzIGRvbid0IGRpZmZlciBpbiBhbnkgd2F5IGZyb20gcmVndWxhciBvbmVz
IGV4Y2VwdCB0aGF0IHlvdSBjYW5ub3QgY2hhbmdlIGl0cyBhdHRyaWJ1dGVzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9kb2NzL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9pbmRleC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmIyNGNkNzczZmI5MzM5OTRlMTJmOGMyODcyZTM0YjM4Y2JmMWMwMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9pbmRleC5yc3QKQEAgLTAsMCArMSw4MCBA
QAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2BgYXR0cnNgYDogQ2xh
c3NlcyBXaXRob3V0IEJvaWxlcnBsYXRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitSZWxlYXNlIHZcIHxyZWxlYXNlfCAoOmRvYzpgV2hhdCdzIG5ldz8gPGNoYW5n
ZWxvZz5gKS4KKworLi4gaW5jbHVkZTo6IC4uL1JFQURNRS5yc3QKKyAgIDpzdGFydC1hZnRlcjog
dGVhc2VyLWJlZ2luCisgICA6ZW5kLWJlZm9yZTogLXNwaWVsLWVuZC0KKworCitHZXR0aW5nIFN0
YXJ0ZWQKKz09PT09PT09PT09PT09PQorCitgYGF0dHJzYGAgaXMgYSBQeXRob24tb25seSBwYWNr
YWdlIGBob3N0ZWQgb24gUHlQSSA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2F0dHJzLz5gXy4K
K1RoZSByZWNvbW1lbmRlZCBpbnN0YWxsYXRpb24gbWV0aG9kIGlzIGBwaXAgPGh0dHBzOi8vcGlw
LnB5cGEuaW8vZW4vc3RhYmxlLz5gXy1pbnN0YWxsaW5nIGludG8gYSBgdmlydHVhbGVudiA8aHR0
cHM6Ly9oeW5lay5tZS9hcnRpY2xlcy92aXJ0dWFsZW52LWxpdmVzLz5gXzoKKworLi4gY29kZS1i
bG9jazo6IGNvbnNvbGUKKworICAgJCBwaXAgaW5zdGFsbCBhdHRycworCitUaGUgbmV4dCB0aHJl
ZSBzdGVwcyBzaG91bGQgYnJpbmcgeW91IHVwIGFuZCBydW5uaW5nIGluIG5vIHRpbWU6CisKKy0g
OmRvYzpgb3ZlcnZpZXdgIHdpbGwgc2hvdyB5b3UgYSBzaW1wbGUgZXhhbXBsZSBvZiBgYGF0dHJz
YGAgaW4gYWN0aW9uIGFuZCBpbnRyb2R1Y2UgeW91IHRvIGl0cyBwaGlsb3NvcGh5LgorICBBZnRl
cndhcmRzLCB5b3UgY2FuIHN0YXJ0IHdyaXRpbmcgeW91ciBvd24gY2xhc3NlcywgdW5kZXJzdGFu
ZCB3aGF0IGRyaXZlcyBgYGF0dHJzYGAncyBkZXNpZ24sIGFuZCBrbm93IHdoYXQgYGBAYXR0ci5z
YGAgYW5kIGBgYXR0ci5pYigpYGAgc3RhbmQgZm9yLgorLSA6ZG9jOmBleGFtcGxlc2Agd2lsbCBn
aXZlIHlvdSBhIGNvbXByZWhlbnNpdmUgdG91ciBvZiBgYGF0dHJzYGAncyBmZWF0dXJlcy4KKyAg
QWZ0ZXIgcmVhZGluZywgeW91IHdpbGwga25vdyBhYm91dCBvdXIgYWR2YW5jZWQgZmVhdHVyZXMg
YW5kIGhvdyB0byB1c2UgdGhlbS4KKy0gRmluYWxseSA6ZG9jOmB3aHlgIGdpdmVzIHlvdSBhIHJ1
bmRvd24gb2YgcG90ZW50aWFsIGFsdGVybmF0aXZlcyBhbmQgd2h5IHdlIHRoaW5rIGBgYXR0cnNg
YCBpcyBzdXBlcmlvci4KKyAgWWVzLCB3ZSd2ZSBoZWFyZCBhYm91dCBgYG5hbWVkdHVwbGVgYFwg
cyEKKworCitJZiB5b3UgbmVlZCBhbnkgaGVscCB3aGlsZSBnZXR0aW5nIHN0YXJ0ZWQsIGZlZWwg
ZnJlZSB0byB1c2UgdGhlIGBgcHl0aG9uLWF0dHJzYGAgdGFnIG9uIGBTdGFja092ZXJmbG93IDxo
dHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdnZWQvcHl0aG9uLWF0dHJzPmBf
IGFuZCBzb21lb25lIHdpbGwgc3VyZWx5IGhlbHAgeW91IG91dCEKKworCitEYXktdG8tRGF5IFVz
YWdlCis9PT09PT09PT09PT09PT09CisKKy0gT25jZSB5b3UncmUgY29tZm9ydGFibGUgd2l0aCB0
aGUgY29uY2VwdHMsIG91ciA6ZG9jOmBhcGlgIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB5b3Ug
bmVlZCB0byB1c2UgYGBhdHRyc2BgIHRvIGl0cyBmdWxsZXN0LgorLSBgYGF0dHJzYGAgaXMgYnVp
bHQgZm9yIGV4dGVuc2lvbiBmcm9tIHRoZSBncm91bmQgdXAuCisgIDpkb2M6YGV4dGVuZGluZ2Ag
d2lsbCBzaG93IHlvdSB0aGUgYWZmb3JkYW5jZXMgaXQgb2ZmZXJzIGFuZCBob3cgdG8gbWFrZSBp
dCBhIGJ1aWxkaW5nIGJsb2NrIG9mIHlvdXIgb3duIHByb2plY3RzLgorCisKKy4uIGluY2x1ZGU6
OiAuLi9SRUFETUUucnN0CisgICA6c3RhcnQtYWZ0ZXI6IC10ZXN0aW1vbmlhbHMtCisgICA6ZW5k
LWJlZm9yZTogLWVuZC0KKworLi4gaW5jbHVkZTo6IC4uL1JFQURNRS5yc3QKKyAgIDpzdGFydC1h
ZnRlcjogLXByb2plY3QtaW5mb3JtYXRpb24tCisKKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRo
OiAxCisKKyAgIGxpY2Vuc2UKKyAgIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkKKyAgIGNvbnRyaWJ1
dGluZworICAgY2hhbmdlbG9nCisKKworLS0tLQorCisKK0Z1bGwgVGFibGUgb2YgQ29udGVudHMK
Kz09PT09PT09PT09PT09PT09PT09PT0KKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIK
KworICAgb3ZlcnZpZXcKKyAgIHdoeQorICAgZXhhbXBsZXMKKyAgIGFwaQorICAgZXh0ZW5kaW5n
CisgICBob3ctZG9lcy1pdC13b3JrCisKKworSW5kaWNlcyBhbmQgdGFibGVzCis9PT09PT09PT09
PT09PT09PT0KKworKiA6cmVmOmBnZW5pbmRleGAKKyogOnJlZjpgc2VhcmNoYApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9kb2NzL2xpY2Vuc2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2xpY2Vuc2Uu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNlZjVmMzkzOTkzYzYzY2U2MjJlZWVhZDgwOWM2NDZkYzA1ZWY3MzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvbGljZW5zZS5yc3QKQEAgLTAsMCAr
MSw4IEBACis9PT09PT09PT09PT09PT09PT09CitMaWNlbnNlIGFuZCBDcmVkaXRzCis9PT09PT09
PT09PT09PT09PT09CisKK2BgYXR0cnNgYCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgYE1JVCA8aHR0
cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbWl0Lz5gXyBsaWNlbnNlLgorVGhlIGZ1
bGwgbGljZW5zZSB0ZXh0IGNhbiBiZSBhbHNvIGZvdW5kIGluIHRoZSBgc291cmNlIGNvZGUgcmVw
b3NpdG9yeSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9ibG9iL21hc3Rl
ci9MSUNFTlNFPmBfLgorCisuLiBpbmNsdWRlOjogLi4vQVVUSE9SUy5yc3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvZG9jcy9vdmVydmlldy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvb3ZlcnZpZXcu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ3YjAyMmZmMzJlYjBhY2VlMWUwYTcyZmExMGI3MzRmOGY1MmViYzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvb3ZlcnZpZXcucnN0CkBAIC0wLDAg
KzEsODcgQEAKKz09PT09PT09CitPdmVydmlldworPT09PT09PT0KKworSW4gb3JkZXIgdG8gZnVs
ZmlsbCBpdHMgYW1iaXRpb3VzIGdvYWwgb2YgYnJpbmdpbmcgYmFjayB0aGUgam95IHRvIHdyaXRp
bmcgY2xhc3NlcywgaXQgZ2l2ZXMgeW91IGEgY2xhc3MgZGVjb3JhdG9yIGFuZCBhIHdheSB0byBk
ZWNsYXJhdGl2ZWx5IGRlZmluZSB0aGUgYXR0cmlidXRlcyBvbiB0aGF0IGNsYXNzOgorCisuLiBp
bmNsdWRlOjogLi4vUkVBRE1FLnJzdAorICAgOnN0YXJ0LWFmdGVyOiAtY29kZS1iZWdpbi0KKyAg
IDplbmQtYmVmb3JlOiAtdGVzdGltb25pYWxzLQorCisKKy4uIF9waGlsb3NvcGh5OgorCitQaGls
b3NvcGh5Cis9PT09PT09PT09CisKKyoqSXQncyBhYm91dCByZWd1bGFyIGNsYXNzZXMuKioKKyAg
IGBgYXR0cnNgYCBpcyBmb3IgY3JlYXRpbmcgd2VsbC1iZWhhdmVkIGNsYXNzZXMgd2l0aCBhIHR5
cGUsIGF0dHJpYnV0ZXMsIG1ldGhvZHMsIGFuZCBldmVyeXRoaW5nIHRoYXQgY29tZXMgd2l0aCBh
IGNsYXNzLgorICAgSXQgY2FuIGJlIHVzZWQgZm9yIGRhdGEtb25seSBjb250YWluZXJzIGxpa2Ug
YGBuYW1lZHR1cGxlYGBcIHMgb3IgYGB0eXBlcy5TaW1wbGVOYW1lc3BhY2VgYCBidXQgdGhleSdy
ZSBqdXN0IGEgc3ViLWdlbnJlIG9mIHdoYXQgYGBhdHRyc2BgIGlzIGdvb2QgZm9yLgorCisqKlRo
ZSBjbGFzcyBiZWxvbmdzIHRvIHRoZSB1c2Vycy4qKgorICAgWW91IGRlZmluZSBhIGNsYXNzIGFu
ZCBgYGF0dHJzYGAgYWRkcyBzdGF0aWMgbWV0aG9kcyB0byB0aGF0IGNsYXNzIGJhc2VkIG9uIHRo
ZSBhdHRyaWJ1dGVzIHlvdSBkZWNsYXJlLgorICAgVGhlIGVuZC4KKyAgIEl0IGRvZXNuJ3QgYWRk
IG1ldGFjbGFzc2VzLgorICAgSXQgZG9lc24ndCBhZGQgY2xhc3NlcyB5b3UndmUgbmV2ZXIgaGVh
cmQgb2YgdG8geW91ciBpbmhlcml0YW5jZSB0cmVlLgorICAgQW4gYGBhdHRyc2BgIGNsYXNzIGlu
IHJ1bnRpbWUgaXMgaW5kaXN0aWd1aXNoYWJsZSBmcm9tIGEgcmVndWxhciBjbGFzczogYmVjYXVz
ZSBpdCAqaXMqIGEgcmVndWxhciBjbGFzcyB3aXRoIGEgZmV3IGJvaWxlcnBsYXRlLXkgbWV0aG9k
cyBhdHRhY2hlZC4KKworKipCZSBsaWdodCBvbiBBUEkgaW1wYWN0LioqCisgICBBcyBjb252ZW5p
ZW50IGFzIGl0IHNlZW1zIGF0IGZpcnN0LCBgYGF0dHJzYGAgd2lsbCAqbm90KiB0YWNrIG9uIGFu
eSBtZXRob2RzIHRvIHlvdXIgY2xhc3NlcyBzYXZlIHRoZSBkdW5kZXIgb25lcy4KKyAgIEhlbmNl
IGFsbCB0aGUgdXNlZnVsIDpyZWY6YHRvb2xzIDxoZWxwZXJzPmAgdGhhdCBjb21lIHdpdGggYGBh
dHRyc2BgIGxpdmUgaW4gZnVuY3Rpb25zIHRoYXQgb3BlcmF0ZSBvbiB0b3Agb2YgaW5zdGFuY2Vz
LgorICAgU2luY2UgdGhleSB0YWtlIGFuIGBgYXR0cnNgYCBpbnN0YW5jZSBhcyB0aGVpciBmaXJz
dCBhcmd1bWVudCwgeW91IGNhbiBhdHRhY2ggdGhlbSB0byB5b3VyIGNsYXNzZXMgd2l0aCBvbmUg
bGluZSBvZiBjb2RlLgorCisqKlBlcmZvcm1hbmNlIG1hdHRlcnMuKioKKyAgIGBgYXR0cnNgYCBy
dW50aW1lIGltcGFjdCBpcyB2ZXJ5IGNsb3NlIHRvIHplcm8gYmVjYXVzZSBhbGwgdGhlIHdvcmsg
aXMgZG9uZSB3aGVuIHRoZSBjbGFzcyBpcyBkZWZpbmVkLgorICAgT25jZSB5b3UncmUgaW5zdGFu
dGlhdGluZyBpdCwgYGBhdHRyc2BgIGlzIG91dCBvZiB0aGUgcGljdHVyZSBjb21wbGV0ZWx5Lgor
CisqKk5vIHN1cnByaXNlcy4qKgorICAgYGBhdHRyc2BgIGNyZWF0ZXMgY2xhc3NlcyB0aGF0IGFy
Z3VhYmx5IHdvcmsgdGhlIHdheSBhIFB5dGhvbiBiZWdpbm5lciB3b3VsZCByZWFzb25hYmx5IGV4
cGVjdCB0aGVtIHRvIHdvcmsuCisgICBJdCBkb2Vzbid0IHRyeSB0byBndWVzcyB3aGF0IHlvdSBt
ZWFuIGJlY2F1c2UgZXhwbGljaXQgaXMgYmV0dGVyIHRoYW4gaW1wbGljaXQuCisgICBJdCBkb2Vz
bid0IHRyeSB0byBiZSBjbGV2ZXIgYmVjYXVzZSBzb2Z0d2FyZSBzaG91bGRuJ3QgYmUgY2xldmVy
LgorCitDaGVjayBvdXQgOmRvYzpgaG93LWRvZXMtaXQtd29ya2AgaWYgeW91J2QgbGlrZSB0byBr
bm93IGhvdyBpdCBhY2hpZXZlcyBhbGwgb2YgdGhlIGFib3ZlLgorCisKK1doYXQgYGBhdHRyc2Bg
IElzIE5vdAorPT09PT09PT09PT09PT09PT09PT09CisKK2BgYXR0cnNgYCBkb2VzICpub3QqIGlu
dmVudCBzb21lIGtpbmQgb2YgbWFnaWMgc3lzdGVtIHRoYXQgcHVsbHMgY2xhc3NlcyBvdXQgb2Yg
aXRzIGhhdCB1c2luZyBtZXRhIGNsYXNzZXMsIHJ1bnRpbWUgaW50cm9zcGVjdGlvbiwgYW5kIHNo
YWt5IGludGVyZGVwZW5kZW5jaWVzLgorCitBbGwgYGBhdHRyc2BgIGRvZXMgaXM6CisKKzEuIHRh
a2UgeW91ciBkZWNsYXJhdGlvbiwKKzIuIHdyaXRlIGR1bmRlciBtZXRob2RzIGJhc2VkIG9uIHRo
YXQgaW5mb3JtYXRpb24sCiszLiBhbmQgYXR0YWNoIHRoZW0gdG8geW91ciBjbGFzcy4KKworSXQg
ZG9lcyAqbm90aGluZyogZHluYW1pYyBhdCBydW50aW1lLCBoZW5jZSB6ZXJvIHJ1bnRpbWUgb3Zl
cmhlYWQuCitJdCdzIHN0aWxsICp5b3VyKiBjbGFzcy4KK0RvIHdpdGggaXQgYXMgeW91IHBsZWFz
ZS4KKworCitPbiB0aGUgYGBhdHRyLnNgYCBhbmQgYGBhdHRyLmliYGAgTmFtZXMKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYGBhdHRyLnNgYCBkZWNvcmF0
b3IgYW5kIHRoZSBgYGF0dHIuaWJgYCBmdW5jdGlvbiBhcmVuJ3QgYW55IG9ic2N1cmUgYWJicmV2
aWF0aW9ucy4KK1RoZXkgYXJlIGEgKmNvbmNpc2UqIGFuZCBoaWdobHkgKnJlYWRhYmxlKiB3YXkg
dG8gd3JpdGUgYGBhdHRyc2BgIGFuZCBgYGF0dHJpYmBgIHdpdGggYW4gKmV4cGxpY2l0IG5hbWVz
cGFjZSouCisKK0F0IGZpcnN0LCBzb21lIHBlb3BsZSBoYXZlIGEgbmVnYXRpdmUgZ3V0IHJlYWN0
aW9uIHRvIHRoYXQ7IHJlc2VtYmxpbmcgdGhlIHJlYWN0aW9ucyB0byBQeXRob24ncyBzaWduaWZp
Y2FudCB3aGl0ZXNwYWNlLgorQW5kIGFzIHdpdGggdGhhdCwgb25jZSBvbmUgZ2V0cyB1c2VkIHRv
IGl0LCB0aGUgcmVhZGFiaWxpdHkgYW5kIGV4cGxpY2l0bmVzcyBvZiB0aGF0IEFQSSBwcmV2YWls
cyBhbmQgZGVsaWdodHMuCisKK0ZvciB0aG9zZSB3aG8gY2FuJ3Qgc3dhbGxvdyB0aGF0IEFQSSBh
dCBhbGwsIGBgYXR0cnNgYCBjb21lcyB3aXRoIHNlcmlvdXMgYnVzaW5lc3MgYWxpYXNlczogYGBh
dHRyLmF0dHJzYGAgYW5kIGBgYXR0ci5hdHRyaWJgYC4KKworVGhlcmVmb3JlLCB0aGUgZm9sbG93
aW5nIGNsYXNzIGRlZmluaXRpb24gaXMgaWRlbnRpY2FsIHRvIHRoZSBwcmV2aW91cyBvbmU6CisK
Ky4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gZnJvbSBhdHRyIGltcG9ydCBhdHRycywgYXR0cmliLCBG
YWN0b3J5CisgICA+Pj4gQGF0dHJzCisgICAuLi4gY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6Cisg
ICAuLi4gICAgIGFfbnVtYmVyID0gYXR0cmliKGRlZmF1bHQ9NDIpCisgICAuLi4gICAgIGxpc3Rf
b2ZfbnVtYmVycyA9IGF0dHJpYihkZWZhdWx0PUZhY3RvcnkobGlzdCkpCisgICAuLi4KKyAgIC4u
LiAgICAgZGVmIGhhcmRfbWF0aChzZWxmLCBhbm90aGVyX251bWJlcik6CisgICAuLi4gICAgICAg
ICByZXR1cm4gc2VsZi5hX251bWJlciArIHN1bShzZWxmLmxpc3Rfb2ZfbnVtYmVycykgKiBhbm90
aGVyX251bWJlcgorICAgPj4+IFNvbWVDbGFzcygxLCBbMSwgMiwgM10pCisgICBTb21lQ2xhc3Mo
YV9udW1iZXI9MSwgbGlzdF9vZl9udW1iZXJzPVsxLCAyLCAzXSkKKworVXNlIHdoaWNoZXZlciB2
YXJpYW50IGZpdHMgeW91ciB0YXN0ZSBiZXR0ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Rv
Y3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmZiODdhZGQ4ZDY0ZjlkOTEzODM3ZmZkMzQ5YTRjODYzNWU4Mjk5NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDMwIEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvTWFrZWZpbGUKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvYXBp
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvZG9jcy9iYWNrd2FyZC1jb21wYXRpYmlsaXR5LnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvZG9jcy9jaGFuZ2Vsb2cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2RvY3MvY29udHJpYnV0aW5nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9kb2N1dGlscy5j
b25mCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2V4YW1wbGVzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9leHRl
bmRpbmcucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2VzLWl0LXdvcmsucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9kb2NzL2luZGV4LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9saWNlbnNlLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvZG9jcy9vdmVydmlldy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJzdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3doeS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45YzY0Y2I5M2M1NzFiYjc3MjEzYWZlMzc3MmFkZWQ5ZjUyMDdmOWI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3doeS5yc3QKQEAgLTAsMCArMSwyNTEgQEAK
Ky4uIF93aHk6CisKK1doeSBub3TigKYKKz09PT09PT09CisKKworSWYgeW91J2QgbGlrZSB0aGly
ZCBwYXJ0eSdzIGFjY291bnQgd2h5IGBgYXR0cnNgYCBpcyBncmVhdCwgaGF2ZSBhIGxvb2sgYXQg
R2x5cGgncyBgVGhlIE9uZSBQeXRob24gTGlicmFyeSBFdmVyeW9uZSBOZWVkcyA8aHR0cHM6Ly9n
bHlwaC50d2lzdGVkbWF0cml4LmNvbS8yMDE2LzA4L2F0dHJzLmh0bWw+YF8hCisKKwor4oCmdHVw
bGVzPworLS0tLS0tLS0KKworCitSZWFkYWJpbGl0eQorXl5eXl5eXl5eXl4KKworV2hhdCBtYWtl
cyBtb3JlIHNlbnNlIHdoaWxlIGRlYnVnZ2luZzo6CisKKyAgIFBvaW50KHg9MSwgeT0yKQorCitv
cjo6CisKKyAgICgxLCAyKQorCis/CisKK0xldCdzIGFkZCBldmVuIG1vcmUgYW1iaWd1aXR5OjoK
KworICAgQ3VzdG9tZXIoaWQ9NDIsIHJlc2VsbGVyPTIzLCBmaXJzdF9uYW1lPSJKYW5lIiwgbGFz
dF9uYW1lPSJKb2huIikKKworb3I6OgorCisgICAoNDIsIDIzLCAiSmFuZSIsICJKb2huIikKKwor
PworCitXaHkgd291bGQgeW91IHdhbnQgdG8gd3JpdGUgYGBjdXN0b21lclsyXWBgIGluc3RlYWQg
b2YgYGBjdXN0b21lci5maXJzdF9uYW1lYGA/CisKK0Rvbid0IGdldCBtZSBzdGFydGVkIHdoZW4g
eW91IGFkZCBuZXN0aW5nLgorSWYgeW91J3ZlIG5ldmVyIHJ1biBpbnRvIG15c3RlcmlvdXMgdHVw
bGVzIHlvdSBoYWQgbm8gaWRlYSB3aGF0IHRoZSBoZWxsIHRoZXkgbWVhbnQgd2hpbGUgZGVidWdn
aW5nLCB5b3UncmUgbXVjaCBzbWFydGVyIHRoYW4geW91cnMgdHJ1bHkuCisKK1VzaW5nIHByb3Bl
ciBjbGFzc2VzIHdpdGggbmFtZXMgYW5kIHR5cGVzIG1ha2VzIHByb2dyYW0gY29kZSBtdWNoIG1v
cmUgcmVhZGFibGUgYW5kIGNvbXByZWhlbnNpYmxlXy4KK0VzcGVjaWFsbHkgd2hlbiB0cnlpbmcg
dG8gZ3JvayBhIG5ldyBwaWVjZSBvZiBzb2Z0d2FyZSBvciByZXR1cm5pbmcgdG8gb2xkIGNvZGUg
YWZ0ZXIgc2V2ZXJhbCBtb250aHMuCisKKy4uIF9jb21wcmVoZW5zaWJsZTogaHR0cHM6Ly9hcnhp
di5vcmcvcGRmLzEzMDQuNTI1Ny5wZGYKKworCitFeHRlbmRhYmlsaXR5CiteXl5eXl5eXl5eXl5e
CisKK0ltYWdpbmUgeW91IGhhdmUgYSBmdW5jdGlvbiB0aGF0IHRha2VzIG9yIHJldHVybnMgYSB0
dXBsZS4KK0VzcGVjaWFsbHkgaWYgeW91IHVzZSB0dXBsZSB1bnBhY2tpbmcgKGVnLiBgYHgsIHkg
PSBnZXRfcG9pbnQoKWBgKSwgYWRkaW5nIGFkZGl0aW9uYWwgZGF0YSBtZWFucyB0aGF0IHlvdSBo
YXZlIHRvIGNoYW5nZSB0aGUgaW52b2NhdGlvbiBvZiB0aGF0IGZ1bmN0aW9uICpldmVyeXdoZXJl
Ki4KKworQWRkaW5nIGFuIGF0dHJpYnV0ZSB0byBhIGNsYXNzIGNvbmNlcm5zIG9ubHkgdGhvc2Ug
d2hvIGFjdHVhbGx5IGNhcmUgYWJvdXQgdGhhdCBhdHRyaWJ1dGUuCisKKwor4oCmbmFtZWR0dXBs
ZXM/CistLS0tLS0tLS0tLS0tCisKKzpmdW5jOmBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlYFwgcyBh
cmUgdHVwbGVzIHdpdGggbmFtZXMsIG5vdCBjbGFzc2VzLiBbI2hpc3RvcnldXworU2luY2Ugd3Jp
dGluZyBjbGFzc2VzIGlzIHRpcmVzb21lIGluIFB5dGhvbiwgZXZlcnkgbm93IGFuZCB0aGVuIHNv
bWVvbmUgZGlzY292ZXJzIGFsbCB0aGUgdHlwaW5nIHRoZXkgY291bGQgc2F2ZSBhbmQgZ2V0cyBy
ZWFsbHkgZXhjaXRlZC4KK0hvd2V2ZXIgdGhhdCBjb252ZW5pZW5jZSBjb21lcyBhdCBhIHByaWNl
LgorCitUaGUgbW9zdCBvYnZpb3VzIGRpZmZlcmVuY2UgYmV0d2VlbiBgYG5hbWVkdHVwbGVgYFwg
cyBhbmQgYGBhdHRyc2BgLWJhc2VkIGNsYXNzZXMgaXMgdGhhdCB0aGUgbGF0dGVyIGFyZSB0eXBl
LXNlbnNpdGl2ZToKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBpbXBvcnQgYXR0cgorICAgPj4+
IEMxID0gYXR0ci5tYWtlX2NsYXNzKCJDMSIsIFsiYSJdKQorICAgPj4+IEMyID0gYXR0ci5tYWtl
X2NsYXNzKCJDMiIsIFsiYSJdKQorICAgPj4+IGkxID0gQzEoMSkKKyAgID4+PiBpMiA9IEMyKDEp
CisgICA+Pj4gaTEuYSA9PSBpMi5hCisgICBUcnVlCisgICA+Pj4gaTEgPT0gaTIKKyAgIEZhbHNl
CisKK+KApndoaWxlIGEgYGBuYW1lZHR1cGxlYGAgaXMgKmludGVudGlvbmFsbHkqIGBiZWhhdmlu
ZyBsaWtlIGEgdHVwbGVgXyB3aGljaCBtZWFucyB0aGUgdHlwZSBvZiBhIHR1cGxlIGlzICppZ25v
cmVkKjoKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBu
YW1lZHR1cGxlCisgICA+Pj4gTlQxID0gbmFtZWR0dXBsZSgiTlQxIiwgImEiKQorICAgPj4+IE5U
MiA9IG5hbWVkdHVwbGUoIk5UMiIsICJiIikKKyAgID4+PiB0MSA9IE5UMSgxKQorICAgPj4+IHQy
ID0gTlQyKDEpCisgICA+Pj4gdDEgPT0gdDIgPT0gKDEsKQorICAgVHJ1ZQorCitPdGhlciBvZnRl
biBzdXJwcmlzaW5nIGJlaGF2aW9ycyBpbmNsdWRlOgorCistIFNpbmNlIHRoZXkgYXJlIGEgc3Vi
Y2xhc3Mgb2YgdHVwbGVzLCBgYG5hbWVkdHVwbGVgYFwgcyBoYXZlIGEgbGVuZ3RoIGFuZCBhcmUg
Ym90aCBpdGVyYWJsZSBhbmQgaW5kZXhhYmxlLgorICBUaGF0J3Mgbm90IHdoYXQgeW91J2QgZXhw
ZWN0IGZyb20gYSBjbGFzcyBhbmQgaXMgbGlrZWx5IHRvIHNoYWRvdyBzdWJ0bGUgdHlwbyBidWdz
LgorLSBJdGVyYWJpbGl0eSBhbHNvIGltcGxpZXMgdGhhdCBpdCdzIGVhc3kgdG8gYWNjaWRlbnRh
bGx5IHVucGFjayBhIGBgbmFtZWR0dXBsZWBgIHdoaWNoIGxlYWRzIHRvIGhhcmQtdG8tZmluZCBi
dWdzLiBbI2l0ZXJdXworLSBgYG5hbWVkdHVwbGVgYFwgcyBoYXZlIHRoZWlyIG1ldGhvZHMgKm9u
IHlvdXIgaW5zdGFuY2VzKiB3aGV0aGVyIHlvdSBsaWtlIGl0IG9yIG5vdC4gWyNwb2xsdXRpb25d
XworLSBgYG5hbWVkdHVwbGVgYFwgcyBhcmUgKmFsd2F5cyogaW1tdXRhYmxlLgorICBOb3Qgb25s
eSBkb2VzIHRoYXQgbWVhbiB0aGF0IHlvdSBjYW4ndCBkZWNpZGUgZm9yIHlvdXJzZWxmIHdoZXRo
ZXIgeW91ciBpbnN0YW5jZXMgc2hvdWxkIGJlIGltbXV0YWJsZSBvciBub3QsIGl0IGFsc28gbWVh
bnMgdGhhdCBpZiB5b3Ugd2FudCB0byBpbmZsdWVuY2UgeW91ciBjbGFzcycgaW5pdGlhbGl6YXRp
b24gKHZhbGlkYXRpb24/ICBkZWZhdWx0IHZhbHVlcz8pLCB5b3UgaGF2ZSB0byBpbXBsZW1lbnQg
Om1ldGg6YF9fbmV3X18oKSA8b2JqZWN0Ll9fbmV3X18+YCB3aGljaCBpcyBhIHBhcnRpY3VsYXJs
eSBoYWNreSBhbmQgZXJyb3ItcHJvbmUgcmVxdWlyZW1lbnQgZm9yIGEgdmVyeSBjb21tb24gcHJv
YmxlbS4gWyNpbW11dGFibGVdXworLSBUbyBhdHRhY2ggbWV0aG9kcyB0byBhIGBgbmFtZWR0dXBs
ZWBgIHlvdSBoYXZlIHRvIHN1YmNsYXNzIGl0LgorICBBbmQgaWYgeW91IGZvbGxvdyB0aGUgc3Rh
bmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uJ3MgcmVjb21tZW5kYXRpb24gb2Y6OgorCisgICAg
Y2xhc3MgUG9pbnQobmFtZWR0dXBsZSgnUG9pbnQnLCBbJ3gnLCAneSddKSk6CisgICAgICAgICMg
Li4uCisKKyAgeW91IGVuZCB1cCB3aXRoIGEgY2xhc3MgdGhhdCBoYXMgKnR3byogYGBQb2ludGBg
XCBzIGluIGl0cyA6YXR0cjpgX19tcm9fXyA8Y2xhc3MuX19tcm9fXz5gOiBgYFs8Y2xhc3MgJ3Bv
aW50LlBvaW50Jz4sIDxjbGFzcyAncG9pbnQuUG9pbnQnPiwgPHR5cGUgJ3R1cGxlJz4sIDx0eXBl
ICdvYmplY3QnPl1gYC4KKworICBUaGF0J3Mgbm90IG9ubHkgY29uZnVzaW5nLCBpdCBhbHNvIGhh
cyB2ZXJ5IHByYWN0aWNhbCBjb25zZXF1ZW5jZXM6CisgIGZvciBleGFtcGxlIGlmIHlvdSBjcmVh
dGUgZG9jdW1lbnRhdGlvbiB0aGF0IGluY2x1ZGVzIGNsYXNzIGhpZXJhcmNoaWVzIGxpa2UgYFNw
aGlueCdzIGF1dG9kb2MgPGh0dHA6Ly93d3cuc3BoaW54LWRvYy5vcmcvZW4vc3RhYmxlL2V4dC9h
dXRvZG9jLmh0bWw+YF8gd2l0aCBgYHNob3ctaW5oZXJpdGFuY2VgYC4KKyAgQWdhaW46IGNvbW1v
biBwcm9ibGVtLCBoYWNreSBzb2x1dGlvbiB3aXRoIGNvbmZ1c2luZyBmYWxsb3V0LgorCitBbGwg
dGhlc2UgdGhpbmdzIG1ha2UgYGBuYW1lZHR1cGxlYGBcIHMgYSBwYXJ0aWN1bGFybHkgcG9vciBj
aG9pY2UgZm9yIHB1YmxpYyBBUElzIGJlY2F1c2UgYWxsIHlvdXIgb2JqZWN0cyBhcmUgaXJyZXZv
Y2FibHkgdGFpbnRlZC4KK1dpdGggYGBhdHRyc2BgIHlvdXIgdXNlcnMgd29uJ3Qgbm90aWNlIGEg
ZGlmZmVyZW5jZSBiZWNhdXNlIGl0IGNyZWF0ZXMgcmVndWxhciwgd2VsbC1iZWhhdmVkIGNsYXNz
ZXMuCisKKy4uIGFkbW9uaXRpb246OiBTdW1tYXJ5CisKKyAgSWYgeW91IHdhbnQgYSAqdHVwbGUg
d2l0aCBuYW1lcyosIGJ5IGFsbCBtZWFuczogZ28gZm9yIGEgYGBuYW1lZHR1cGxlYGAuIFsjcGVy
Zl1fCisgIEJ1dCBpZiB5b3Ugd2FudCBhIGNsYXNzIHdpdGggbWV0aG9kcywgeW91J3JlIGRvaW5n
IHlvdXJzZWxmIGEgZGlzc2VydmljZSBieSByZWx5aW5nIG9uIGEgcGlsZSBvZiBoYWNrcyB0aGF0
IHJlcXVpcmVzIHlvdSB0byBlbXBsb3kgZXZlbiBtb3JlIGhhY2tzIGFzIHlvdXIgcmVxdWlyZW1l
bnRzIGV4cGFuZC4KKworICBPdGhlciB0aGFuIHRoYXQsIGBgYXR0cnNgYCBhbHNvIGFkZHMgbmlm
dHkgZmVhdHVyZXMgbGlrZSB2YWxpZGF0b3JzLCBjb252ZXJ0ZXJzLCBhbmQgKG11dGFibGUhKSBk
ZWZhdWx0IHZhbHVlcy4KKworCisuLiBydWJyaWM6OiBGb290bm90ZXMKKworLi4gWyNoaXN0b3J5
XSBUaGUgd29yZCBpcyB0aGF0IGBgbmFtZWR0dXBsZWBgXCBzIHdlcmUgYWRkZWQgdG8gdGhlIFB5
dGhvbiBzdGFuZGFyZCBsaWJyYXJ5IGFzIGEgd2F5IHRvIG1ha2UgdHVwbGVzIGluIHJldHVybiB2
YWx1ZXMgbW9yZSByZWFkYWJsZS4KKyAgICAgICAgICAgICAgQW5kIGluZGVlZCB0aGF0IGlzIHNv
bWV0aGluZyB5b3Ugc2VlIHRocm91Z2hvdXQgdGhlIHN0YW5kYXJkIGxpYnJhcnkuCisKKyAgICAg
ICAgICAgICAgTG9va2luZyBhdCB3aGF0IHRoZSBtYWtlcnMgb2YgYGBuYW1lZHR1cGxlYGBcIHMg
dXNlIGl0IGZvciB0aGVtc2VsdmVzIGlzIGEgZ29vZCBndWlkZWxpbmUgZm9yIGRlY2lkaW5nIG9u
IHlvdXIgb3duIHVzZSBjYXNlcy4KKy4uIFsjcG9sbHV0aW9uXSBgYGF0dHJzYGAgb25seSBhZGRz
IGEgc2luZ2xlIGF0dHJpYnV0ZTogYGBfX2F0dHJzX2F0dHJzX19gYCBmb3IgaW50cm9zcGVjdGlv
bi4KKyAgICAgICAgICAgICAgICBBbGwgaGVscGVycyBhcmUgZnVuY3Rpb25zIGluIHRoZSBgYGF0
dHJgYCBwYWNrYWdlLgorICAgICAgICAgICAgICAgIFNpbmNlIHRoZXkgdGFrZSB0aGUgaW5zdGFu
Y2UgYXMgZmlyc3QgYXJndW1lbnQsIHlvdSBjYW4gZWFzaWx5IGF0dGFjaCB0aGVtIHRvIHlvdXIg
Y2xhc3NlcyB1bmRlciBhIG5hbWUgb2YgeW91ciBvd24gY2hvaWNlLgorLi4gWyNpdGVyXSA6ZnVu
YzpgYXR0ci5hc3R1cGxlYCBjYW4gYmUgdXNlZCB0byBnZXQgdGhhdCBiZWhhdmlvciBpbiBgYGF0
dHJzYGAgb24gKmV4cGxpY2l0IGRlbWFuZCouCisuLiBbI2ltbXV0YWJsZV0gYGBhdHRyc2BgIG9m
ZmVycyAqb3B0aW9uYWwqIGltbXV0YWJpbGl0eSB0aHJvdWdoIHRoZSBgYGZyb3plbmBgIGtleXdv
cmQuCisuLiBbI3BlcmZdIEFsdGhvdWdoIGBgYXR0cnNgYCB3b3VsZCBzZXJ2ZSB5b3UganVzdCBh
cyB3ZWxsIQorICAgICAgICAgICBTaW5jZSBib3RoIGVtcGxveSB0aGUgc2FtZSBtZXRob2Qgb2Yg
d3JpdGluZyBhbmQgY29tcGlsaW5nIFB5dGhvbiBjb2RlIGZvciB5b3UsIHRoZSBwZXJmb3JtYW5j
ZSBwZW5hbHR5IGlzIG5lZ2xpZ2libGUgYXQgd29yc3QgYW5kIGluIHNvbWUgY2FzZXMgYGBhdHRy
c2BgIGlzIGV2ZW4gZmFzdGVyIGlmIHlvdSB1c2UgYGBzbG90cz1UcnVlYGAgKHdoaWNoIGlzIGdl
bmVyYWxseSBhIGdvb2QgaWRlYSBhbnl3YXkpLgorCisuLiBfYmVoYXZpbmcgbGlrZSBhIHR1cGxl
OiBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3R1dG9yaWFsL2RhdGFzdHJ1Y3R1cmVzLmh0bWwj
dHVwbGVzLWFuZC1zZXF1ZW5jZXMKKworCivigKZkaWN0cz8KKy0tLS0tLS0KKworRGljdGlvbmFy
aWVzIGFyZSBub3QgZm9yIGZpeGVkIGZpZWxkcy4KKworSWYgeW91IGhhdmUgYSBkaWN0LCBpdCBt
YXBzIHNvbWV0aGluZyB0byBzb21ldGhpbmcgZWxzZS4KK1lvdSBzaG91bGQgYmUgYWJsZSB0byBh
ZGQgYW5kIHJlbW92ZSB2YWx1ZXMuCisKKworCitgYGF0dHJzYGAgbGV0cyB5b3UgYmUgc3BlY2lm
aWMgYWJvdXQgdGhvc2UgZXhwZWN0YXRpb25zOyBhIGRpY3Rpb25hcnkgZG9lcyBub3QuCitJdCBn
aXZlcyB5b3UgYSBuYW1lZCBlbnRpdHkgKHRoZSBjbGFzcykgaW4geW91ciBjb2RlLCB3aGljaCBs
ZXRzIHlvdSBleHBsYWluIGluIG90aGVyIHBsYWNlcyB3aGV0aGVyIHlvdSB0YWtlIGEgcGFyYW1l
dGVyIG9mIHRoYXQgY2xhc3Mgb3IgcmV0dXJuIGEgdmFsdWUgb2YgdGhhdCBjbGFzcy4KKworSW4g
b3RoZXIgd29yZHM6IGlmIHlvdXIgZGljdCBoYXMgYSBmaXhlZCBhbmQga25vd24gc2V0IG9mIGtl
eXMsIGl0IGlzIGFuIG9iamVjdCwgbm90IGEgaGFzaC4KK1NvIGlmIHlvdSBuZXZlciBpdGVyYXRl
IG92ZXIgdGhlIGtleXMgb2YgYSBkaWN0LCB5b3Ugc2hvdWxkIHVzZSBhIHByb3BlciBjbGFzcy4K
KworCivigKZoYW5kLXdyaXR0ZW4gY2xhc3Nlcz8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
V2hpbGUgd2UncmUgZmFucyBvZiBhbGwgdGhpbmdzIGFydGlzYW5hbCwgd3JpdGluZyB0aGUgc2Ft
ZSBuaW5lIG1ldGhvZHMgYWxsIG92ZXIgYWdhaW4gZG9lc24ndCBxdWFsaWZ5IGZvciBtZS4KK0kg
dXN1YWxseSBtYW5hZ2UgdG8gZ2V0IHNvbWUgdHlwb3MgaW5zaWRlIGFuZCB0aGVyZSdzIHNpbXBs
eSBtb3JlIGNvZGUgdGhhdCBjYW4gYnJlYWsgYW5kIHRodXMgaGFzIHRvIGJlIHRlc3RlZC4KKwor
VG8gYnJpbmcgaXQgaW50byBwZXJzcGVjdGl2ZSwgdGhlIGVxdWl2YWxlbnQgb2YKKworLi4gZG9j
dGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgU21hcnRDbGFzcyhvYmplY3Qp
OgorICAgLi4uICAgIGEgPSBhdHRyLmliKCkKKyAgIC4uLiAgICBiID0gYXR0ci5pYigpCisgICA+
Pj4gU21hcnRDbGFzcygxLCAyKQorICAgU21hcnRDbGFzcyhhPTEsIGI9MikKKworaXMKKworLi4g
ZG9jdGVzdDo6CisKKyAgID4+PiBjbGFzcyBBcnRpc2FuYWxDbGFzcyhvYmplY3QpOgorICAgLi4u
ICAgICBkZWYgX19pbml0X18oc2VsZiwgYSwgYik6CisgICAuLi4gICAgICAgICBzZWxmLmEgPSBh
CisgICAuLi4gICAgICAgICBzZWxmLmIgPSBiCisgICAuLi4KKyAgIC4uLiAgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuICJBcnRpc2FuYWxDbGFzcyhhPXt9LCBi
PXt9KSIuZm9ybWF0KHNlbGYuYSwgc2VsZi5iKQorICAgLi4uCisgICAuLi4gICAgIGRlZiBfX2Vx
X18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19jbGFzc19fIGlzIHNl
bGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2VsZi5hLCBzZWxmLmIp
ID09IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToKKyAgIC4uLiAgICAg
ICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4uICAgICBkZWYgX19u
ZV9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIHJlc3VsdCA9IHNlbGYuX19lcV9fKG90
aGVyKQorICAgLi4uICAgICAgICAgaWYgcmVzdWx0IGlzIE5vdEltcGxlbWVudGVkOgorICAgLi4u
ICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgLi4uICAgICAgICAgZWxzZToK
KyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gbm90IHJlc3VsdAorICAgLi4uCisgICAuLi4gICAg
IGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19jbGFz
c19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2VsZi5h
LCBzZWxmLmIpIDwgKG90aGVyLmEsIG90aGVyLmIpCisgICAuLi4gICAgICAgICBlbHNlOgorICAg
Li4uICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgLi4uCisgICAuLi4gICAg
IGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19jbGFz
c19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2VsZi5h
LCBzZWxmLmIpIDw9IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToKKyAg
IC4uLiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4uICAg
ICBkZWYgX19ndF9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIGlmIG90aGVyLl9fY2xh
c3NfXyBpcyBzZWxmLl9fY2xhc3NfXzoKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gKHNlbGYu
YSwgc2VsZi5iKSA+IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToKKyAg
IC4uLiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4uICAg
ICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIGlmIG90aGVyLl9fY2xh
c3NfXyBpcyBzZWxmLl9fY2xhc3NfXzoKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gKHNlbGYu
YSwgc2VsZi5iKSA+PSAob3RoZXIuYSwgb3RoZXIuYikKKyAgIC4uLiAgICAgICAgIGVsc2U6Cisg
ICAuLi4gICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAuLi4KKyAgIC4uLiAg
ICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIGhhc2goKHNlbGYu
YSwgc2VsZi5iKSkKKyAgID4+PiBBcnRpc2FuYWxDbGFzcyhhPTEsIGI9MikKKyAgIEFydGlzYW5h
bENsYXNzKGE9MSwgYj0yKQorCit3aGljaCBpcyBxdWl0ZSBhIG1vdXRoZnVsIGFuZCBpdCBkb2Vz
bid0IGV2ZW4gdXNlIGFueSBvZiBgYGF0dHJzYGAncyBtb3JlIGFkdmFuY2VkIGZlYXR1cmVzIGxp
a2UgdmFsaWRhdG9ycyBvciBkZWZhdWx0cyB2YWx1ZXMuCitBbHNvOiBubyB0ZXN0cyB3aGF0c29l
dmVyLgorQW5kIHdobyB3aWxsIGd1YXJhbnRlZSB5b3UsIHRoYXQgeW91IGRvbid0IGFjY2lkZW50
YWxseSBmbGlwIHRoZSBgYDxgYCBpbiB5b3VyIHRlbnRoIGltcGxlbWVudGF0aW9uIG9mIGBgX19n
dF9fYGA/CisKK0l0IGFsc28gc2hvdWxkIGJlIG5vdGVkIHRoYXQgYGBhdHRyc2BgIGlzIG5vdCBh
biBhbGwtb3Itbm90aGluZyBzb2x1dGlvbi4KK1lvdSBjYW4gZnJlZWx5IGNob29zZSB3aGljaCBm
ZWF0dXJlcyB5b3Ugd2FudCBhbmQgZGlzYWJsZSB0aG9zZSB0aGF0IHlvdSB3YW50IG1vcmUgY29u
dHJvbCBvdmVyOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRyLnMocmVwcj1GYWxzZSkK
KyAgIC4uLiBjbGFzcyBTbWFydENsYXNzKG9iamVjdCk6CisgICAuLi4gICAgYSA9IGF0dHIuaWIo
KQorICAgLi4uICAgIGIgPSBhdHRyLmliKCkKKyAgIC4uLgorICAgLi4uICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgIC4uLiAgICAgICAgcmV0dXJuICI8U21hcnRDbGFzcyhhPSVkKT4iICUgKHNl
bGYuYSwpCisgICA+Pj4gU21hcnRDbGFzcygxLCAyKQorICAgPFNtYXJ0Q2xhc3MoYT0xKT4KKwor
Li4gYWRtb25pdGlvbjo6IFN1bW1hcnkKKworICAgSWYgeW91IGRvbid0IGNhcmUgYW5kIGxpa2Ug
dHlwaW5nLCB3ZSdyZSBub3QgZ29ubmEgc3RvcCB5b3UuCisKKyAgIEhvd2V2ZXIgaXQgdGFrZXMg
YSBsb3Qgb2YgYmlhcyBhbmQgZGV0ZXJtaW5lZCByYXRpb25hbGl6YXRpb24gdG8gY2xhaW0gdGhh
dCBgYGF0dHJzYGAgcmFpc2VzIHRoZSBtZW50YWwgYnVyZGVuIG9uIGEgcHJvamVjdCBnaXZlbiBo
b3cgZGlmZmljdWx0IGl0IGlzIHRvIGZpbmQgdGhlIGltcG9ydGFudCBiaXRzIGluIGEgaGFuZC13
cml0dGVuIGNsYXNzIGFuZCBob3cgYW5ub3lpbmcgaXQgaXMgdG8gZW5zdXJlIHlvdSd2ZSBjb3B5
LXBhc3RlZCB5b3VyIGNvZGUgY29ycmVjdGx5IG92ZXIgYWxsIHlvdXIgY2xhc3Nlcy4KKworICAg
SW4gYW55IGNhc2UsIGlmIHlvdSBldmVyIGdldCBzaWNrIG9mIHRoZSByZXBldGl0aXZlbmVzcyBh
bmQgZHJvd25pbmcgaW1wb3J0YW50IGNvZGUgaW4gYSBzZWEgb2YgYm9pbGVycGxhdGUsIGBgYXR0
cnNgYCB3aWxsIGJlIHdhaXRpbmcgZm9yIHlvdS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvcHlw
cm9qZWN0LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmNjhh
N2NiMGZjYzU2NGI4NTYzMmJhZDkzMWY1M2Q0ZGNmNmUwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3B5cHJvamVjdC50b21sCkBAIC0wLDAgKzEsMjYgQEAKK1t0b29sLnRvd25jcmll
cl0KKyAgICBwYWNrYWdlID0gImF0dHIiCisgICAgcGFja2FnZV9kaXIgPSAic3JjIgorICAgIGZp
bGVuYW1lID0gIkNIQU5HRUxPRy5yc3QiCisgICAgaXNzdWVfZm9ybWF0ID0gImAje2lzc3VlfSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMve2lzc3VlfT5gXyIK
KyAgICBkaXJlY3RvcnkgPSAiY2hhbmdlbG9nLmQiCisgICAgdGl0bGVfZm9ybWF0ID0gInt2ZXJz
aW9ufSAoe3Byb2plY3RfZGF0ZX0pIgorICAgIHVuZGVybGluZXMgPSBbIi0iLCAiXiJdCisKKyAg
ICBbW3Rvb2wudG93bmNyaWVyLnNlY3Rpb25dXQorICAgICAgICBwYXRoID0gIiIKKworICAgIFtb
dG9vbC50b3duY3JpZXIudHlwZV1dCisgICAgICAgIGRpcmVjdG9yeSA9ICJicmVha2luZyIKKyAg
ICAgICAgbmFtZSA9ICJCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlcyIKKyAgICAgICAgc2hv
d2NvbnRlbnQgPSB0cnVlCisKKyAgICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICAgICAgICBk
aXJlY3RvcnkgPSAiZGVwcmVjYXRpb24iCisgICAgICAgIG5hbWUgPSAiRGVwcmVjYXRpb25zIgor
ICAgICAgICBzaG93Y29udGVudCA9IHRydWUKKworICAgIFtbdG9vbC50b3duY3JpZXIudHlwZV1d
CisgICAgICAgIGRpcmVjdG9yeSA9ICJjaGFuZ2UiCisgICAgICAgIG5hbWUgPSAiQ2hhbmdlcyIK
KyAgICAgICAgc2hvd2NvbnRlbnQgPSB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NldHVw
LmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvc2V0dXAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZGJiYWJjM2NkNzQ4ZGE4
MDgzMjY4MTUyMWM0NGE5OGMzMGQ1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Nl
dHVwLmNmZwpAQCAtMCwwICsxLDI2IEBACitbYmRpc3Rfd2hlZWxdCit1bml2ZXJzYWwgPSAxCisK
KworW21ldGFkYXRhXQorIyBlbnN1cmUgTElDRU5TRSBpcyBpbmNsdWRlZCBpbiB3aGVlbCBtZXRh
ZGF0YQorbGljZW5zZV9maWxlID0gTElDRU5TRQorCisKK1t0b29sOnB5dGVzdF0KK21pbnZlcnNp
b24gPSAzLjAKK3N0cmljdCA9IHRydWUKK2FkZG9wdHMgPSAtcmEKK3Rlc3RwYXRocyA9IHRlc3Rz
CitmaWx0ZXJ3YXJuaW5ncyA9CisgICAgb25jZTo6V2FybmluZworCisKK1tpc29ydF0KK2F0b21p
Yz10cnVlCitsaW5lc19hZnRlcl9pbXBvcnRzPTIKK2xpbmVzX2JldHdlZW5fdHlwZXM9MQorbXVs
dGlfbGluZV9vdXRwdXQ9NQorbm90X3NraXA9X19pbml0X18ucHkKKwora25vd25fZmlyc3RfcGFy
dHk9YXR0cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zZXR1cC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc2V0
dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjMyZDNmNWVhYWE2MTdjYWI1ZTkwYzUzYzMzNjA3ZTZmNzUxMWQx
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc2V0dXAucHkKQEAgLTAsMCArMSw5NSBA
QAoraW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworZnJvbSBzZXR1cHRvb2xz
IGltcG9ydCBmaW5kX3BhY2thZ2VzLCBzZXR1cAorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
KworTkFNRSA9ICJhdHRycyIKK1BBQ0tBR0VTID0gZmluZF9wYWNrYWdlcyh3aGVyZT0ic3JjIikK
K01FVEFfUEFUSCA9IG9zLnBhdGguam9pbigic3JjIiwgImF0dHIiLCAiX19pbml0X18ucHkiKQor
S0VZV09SRFMgPSBbImNsYXNzIiwgImF0dHJpYnV0ZSIsICJib2lsZXJwbGF0ZSJdCitDTEFTU0lG
SUVSUyA9IFsKKyAgICAiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUgLSBQcm9kdWN0aW9uL1N0YWJs
ZSIsCisgICAgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAorICAgICJOYXR1cmFs
IExhbmd1YWdlIDo6IEVuZ2xpc2giLAorICAgICJMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBN
SVQgTGljZW5zZSIsCisgICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQiLAor
ICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24iLAorICAgICJQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogMiIsCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiA6OiAyLjciLAorICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMyIs
CisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjQiLAorICAgICJQcm9n
cmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41IiwKKyAgICAiUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDMuNiIsCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBDUHl0aG9uIiwKKyAgICAiUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IFB5UHkiLAorICAgICJUb3BpYyA6
OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMiLAor
XQorSU5TVEFMTF9SRVFVSVJFUyA9IFtdCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworSEVS
RSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQorCisKK2RlZiBy
ZWFkKCpwYXJ0cyk6CisgICAgIiIiCisgICAgQnVpbGQgYW4gYWJzb2x1dGUgcGF0aCBmcm9tICpw
YXJ0cyogYW5kIGFuZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgIHJlc3VsdGluZyBm
aWxlLiAgQXNzdW1lIFVURi04IGVuY29kaW5nLgorICAgICIiIgorICAgIHdpdGggY29kZWNzLm9w
ZW4ob3MucGF0aC5qb2luKEhFUkUsICpwYXJ0cyksICJyYiIsICJ1dGYtOCIpIGFzIGY6CisgICAg
ICAgIHJldHVybiBmLnJlYWQoKQorCisKK01FVEFfRklMRSA9IHJlYWQoTUVUQV9QQVRIKQorCisK
K2RlZiBmaW5kX21ldGEobWV0YSk6CisgICAgIiIiCisgICAgRXh0cmFjdCBfXyptZXRhKl9fIGZy
b20gTUVUQV9GSUxFLgorICAgICIiIgorICAgIG1ldGFfbWF0Y2ggPSByZS5zZWFyY2goCisgICAg
ICAgIHIiXl9fe21ldGF9X18gPSBbJ1wiXShbXidcIl0qKVsnXCJdIi5mb3JtYXQobWV0YT1tZXRh
KSwKKyAgICAgICAgTUVUQV9GSUxFLCByZS5NCisgICAgKQorICAgIGlmIG1ldGFfbWF0Y2g6Cisg
ICAgICAgIHJldHVybiBtZXRhX21hdGNoLmdyb3VwKDEpCisgICAgcmFpc2UgUnVudGltZUVycm9y
KCJVbmFibGUgdG8gZmluZCBfX3ttZXRhfV9fIHN0cmluZy4iLmZvcm1hdChtZXRhPW1ldGEpKQor
CisKK1ZFUlNJT04gPSBmaW5kX21ldGEoInZlcnNpb24iKQorVVJJID0gZmluZF9tZXRhKCJ1cmki
KQorTE9ORyA9ICgKKyAgICByZWFkKCJSRUFETUUucnN0IikgKyAiXG5cbiIgKworICAgICJSZWxl
YXNlIEluZm9ybWF0aW9uXG4iICsKKyAgICAiPT09PT09PT09PT09PT09PT09PVxuXG4iICsKKyAg
ICByZS5zZWFyY2goIihcZCsuXGQuXGQgXCguKj9cKVxuLio/KVxuXG5cbi0tLS1cblxuXG4iLAor
ICAgICAgICAgICAgICByZWFkKCJDSEFOR0VMT0cucnN0IiksIHJlLlMpLmdyb3VwKDEpICsKKyAg
ICAiXG5cbmBGdWxsIGNoYW5nZWxvZyAiICsKKyAgICAiPHt1cml9ZW4vc3RhYmxlL2NoYW5nZWxv
Zy5odG1sPmBfLlxuXG4iLmZvcm1hdCh1cmk9VVJJKSArCisgICAgcmVhZCgiQVVUSE9SUy5yc3Qi
KQorKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgc2V0dXAoCisgICAgICAg
IG5hbWU9TkFNRSwKKyAgICAgICAgZGVzY3JpcHRpb249ZmluZF9tZXRhKCJkZXNjcmlwdGlvbiIp
LAorICAgICAgICBsaWNlbnNlPWZpbmRfbWV0YSgibGljZW5zZSIpLAorICAgICAgICB1cmw9VVJJ
LAorICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCisgICAgICAgIGF1dGhvcj1maW5kX21ldGEoImF1
dGhvciIpLAorICAgICAgICBhdXRob3JfZW1haWw9ZmluZF9tZXRhKCJlbWFpbCIpLAorICAgICAg
ICBtYWludGFpbmVyPWZpbmRfbWV0YSgiYXV0aG9yIiksCisgICAgICAgIG1haW50YWluZXJfZW1h
aWw9ZmluZF9tZXRhKCJlbWFpbCIpLAorICAgICAgICBrZXl3b3Jkcz1LRVlXT1JEUywKKyAgICAg
ICAgbG9uZ19kZXNjcmlwdGlvbj1MT05HLAorICAgICAgICBwYWNrYWdlcz1QQUNLQUdFUywKKyAg
ICAgICAgcGFja2FnZV9kaXI9eyIiOiAic3JjIn0sCisgICAgICAgIHppcF9zYWZlPUZhbHNlLAor
ICAgICAgICBjbGFzc2lmaWVycz1DTEFTU0lGSUVSUywKKyAgICAgICAgaW5zdGFsbF9yZXF1aXJl
cz1JTlNUQUxMX1JFUVVJUkVTLAorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0
dHIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyOWIxNzIxZmYxNmI1NTc3MGFlYzY2MjdhZTU2ZDc1ZTE1MmQ1ZmUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNTUgQEAK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKKworZnJvbSAuIGltcG9y
dCBjb252ZXJ0ZXJzLCBleGNlcHRpb25zLCBmaWx0ZXJzLCB2YWxpZGF0b3JzCitmcm9tIC5fY29u
ZmlnIGltcG9ydCBnZXRfcnVuX3ZhbGlkYXRvcnMsIHNldF9ydW5fdmFsaWRhdG9ycworZnJvbSAu
X2Z1bmNzIGltcG9ydCBhc2RpY3QsIGFzc29jLCBhc3R1cGxlLCBldm9sdmUsIGhhcworZnJvbSAu
X21ha2UgaW1wb3J0ICgKKyAgICBOT1RISU5HLCBBdHRyaWJ1dGUsIEZhY3RvcnksIGF0dHJpYiwg
YXR0cnMsIGZpZWxkcywgbWFrZV9jbGFzcywgdmFsaWRhdGUKKykKKworCitfX3ZlcnNpb25fXyA9
ICIxNy40LjAuZGV2MCIKKworX190aXRsZV9fID0gImF0dHJzIgorX19kZXNjcmlwdGlvbl9fID0g
IkNsYXNzZXMgV2l0aG91dCBCb2lsZXJwbGF0ZSIKK19fdXJpX18gPSAiaHR0cDovL3d3dy5hdHRy
cy5vcmcvIgorX19kb2NfXyA9IF9fZGVzY3JpcHRpb25fXyArICIgPCIgKyBfX3VyaV9fICsgIj4i
CisKK19fYXV0aG9yX18gPSAiSHluZWsgU2NobGF3YWNrIgorX19lbWFpbF9fID0gImhzQG94LmN4
IgorCitfX2xpY2Vuc2VfXyA9ICJNSVQiCitfX2NvcHlyaWdodF9fID0gIkNvcHlyaWdodCAoYykg
MjAxNSBIeW5layBTY2hsYXdhY2siCisKKworcyA9IGF0dHJpYnV0ZXMgPSBhdHRycworaWIgPSBh
dHRyID0gYXR0cmliCitkYXRhY2xhc3MgPSBwYXJ0aWFsKGF0dHJzLCBhdXRvX2F0dHJpYnM9VHJ1
ZSkgICMgaGFwcHkgRWFzdGVyIDspCisKK19fYWxsX18gPSBbCisgICAgIkF0dHJpYnV0ZSIsCisg
ICAgIkZhY3RvcnkiLAorICAgICJOT1RISU5HIiwKKyAgICAiYXNkaWN0IiwKKyAgICAiYXNzb2Mi
LAorICAgICJhc3R1cGxlIiwKKyAgICAiYXR0ciIsCisgICAgImF0dHJpYiIsCisgICAgImF0dHJp
YnV0ZXMiLAorICAgICJhdHRycyIsCisgICAgImNvbnZlcnRlcnMiLAorICAgICJldm9sdmUiLAor
ICAgICJleGNlcHRpb25zIiwKKyAgICAiZmllbGRzIiwKKyAgICAiZmlsdGVycyIsCisgICAgImdl
dF9ydW5fdmFsaWRhdG9ycyIsCisgICAgImhhcyIsCisgICAgImliIiwKKyAgICAibWFrZV9jbGFz
cyIsCisgICAgInMiLAorICAgICJzZXRfcnVuX3ZhbGlkYXRvcnMiLAorICAgICJ2YWxpZGF0ZSIs
CisgICAgInZhbGlkYXRvcnMiLAorXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9f
Y29tcGF0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fY29tcGF0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhh
NDkzNDFiMjVmNDkxMjk0ZTRhMjhiNzliYWE4MmQyODBhN2E0NjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb21wYXQucHkKQEAgLTAsMCArMSwxMzkgQEAKK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KKworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc3lzCitpbXBvcnQgdHlwZXMKK2ltcG9ydCB3
YXJuaW5ncworCisKK1BZMiA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMgorUFlQWSA9IHBsYXRm
b3JtLnB5dGhvbl9pbXBsZW1lbnRhdGlvbigpID09ICJQeVB5IgorCisKK2lmIFBZMjoKKyAgICBm
cm9tIFVzZXJEaWN0IGltcG9ydCBJdGVyYWJsZVVzZXJEaWN0CisKKyAgICAjIFdlICdidW5kbGUn
IGlzY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBpbnNwZWN0IGFzIGltcG9ydGluZyBpbnNwZWN0IGlz
CisgICAgIyBmYWlybHkgZXhwZW5zaXZlIChvcmRlciBvZiAxMC0xNSBtcyBmb3IgYSBtb2Rlcm4g
bWFjaGluZSBpbiAyMDE2KQorICAgIGRlZiBpc2NsYXNzKGtsYXNzKToKKyAgICAgICAgcmV0dXJu
IGlzaW5zdGFuY2Uoa2xhc3MsICh0eXBlLCB0eXBlcy5DbGFzc1R5cGUpKQorCisgICAgIyBUWVBF
IGlzIHVzZWQgaW4gZXhjZXB0aW9ucywgcmVwcihpbnQpIGlzIGRpZmZlcmVudCBvbiBQeXRob24g
MiBhbmQgMy4KKyAgICBUWVBFID0gInR5cGUiCisKKyAgICBkZWYgaXRlcml0ZW1zKGQpOgorICAg
ICAgICByZXR1cm4gZC5pdGVyaXRlbXMoKQorCisgICAgIyBQeXRob24gMiBpcyBiZXJlZnQgb2Yg
YSByZWFkLW9ubHkgZGljdCBwcm94eSwgc28gd2UgbWFrZSBvbmUhCisgICAgY2xhc3MgUmVhZE9u
bHlEaWN0KEl0ZXJhYmxlVXNlckRpY3QpOgorICAgICAgICAiIiIKKyAgICAgICAgQmVzdC1lZmZv
cnQgcmVhZC1vbmx5IGRpY3Qgd3JhcHBlci4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIF9f
c2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsKToKKyAgICAgICAgICAgICMgV2UgZ2VudGx5IHByZXRl
bmQgd2UncmUgYSBQeXRob24gMyBtYXBwaW5ncHJveHkuCisgICAgICAgICAgICByYWlzZSBUeXBl
RXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IGl0ZW0gIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NpZ25tZW50IikKKworICAgICAgICBkZWYgdXBk
YXRlKHNlbGYsIF8pOgorICAgICAgICAgICAgIyBXZSBnZW50bHkgcHJldGVuZCB3ZSdyZSBhIFB5
dGhvbiAzIG1hcHBpbmdwcm94eS4KKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCIn
bWFwcGluZ3Byb3h5JyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiJ3VwZGF0ZSciKQorCisgICAgICAgIGRlZiBfX2RlbGl0ZW1fXyhz
ZWxmLCBfKToKKyAgICAgICAgICAgICMgV2UgZ2VudGx5IHByZXRlbmQgd2UncmUgYSBQeXRob24g
MyBtYXBwaW5ncHJveHkuCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIidtYXBwaW5ncHJv
eHknIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IGl0ZW0gIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZWxldGlvbiIpCisKKyAgICAgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICAg
ICAgIyBXZSBnZW50bHkgcHJldGVuZCB3ZSdyZSBhIFB5dGhvbiAzIG1hcHBpbmdwcm94eS4KKyAg
ICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCInbWFwcGluZ3Byb3h5JyBvYmplY3QgaGFz
IG5vIGF0dHJpYnV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2NsZWFy
JyIpCisKKyAgICAgICAgZGVmIHBvcChzZWxmLCBrZXksIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAg
ICAgICAjIFdlIGdlbnRseSBwcmV0ZW5kIHdlJ3JlIGEgUHl0aG9uIDMgbWFwcGluZ3Byb3h5Lgor
ICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVjdCBo
YXMgbm8gYXR0cmlidXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIncG9w
JyIpCisKKyAgICAgICAgZGVmIHBvcGl0ZW0oc2VsZik6CisgICAgICAgICAgICAjIFdlIGdlbnRs
eSBwcmV0ZW5kIHdlJ3JlIGEgUHl0aG9uIDMgbWFwcGluZ3Byb3h5LgorICAgICAgICAgICAgcmFp
c2UgQXR0cmlidXRlRXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVjdCBoYXMgbm8gYXR0cmlidXRl
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIncG9waXRlbSciKQorCisgICAg
ICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgICAg
ICMgV2UgZ2VudGx5IHByZXRlbmQgd2UncmUgYSBQeXRob24gMyBtYXBwaW5ncHJveHkuCisgICAg
ICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJ21hcHBpbmdwcm94eScgb2JqZWN0IGhhcyBu
byBhdHRyaWJ1dGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidzZXRkZWZh
dWx0JyIpCisKKyAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgIyBPdmVy
cmlkZSB0byBiZSBpZGVudGljYWwgdG8gdGhlIFB5dGhvbiAzIHZlcnNpb24uCisgICAgICAgICAg
ICByZXR1cm4gIm1hcHBpbmdwcm94eSgiICsgcmVwcihzZWxmLmRhdGEpICsgIikiCisKKyAgICBk
ZWYgbWV0YWRhdGFfcHJveHkoZCk6CisgICAgICAgIHJlcyA9IFJlYWRPbmx5RGljdCgpCisgICAg
ICAgIHJlcy5kYXRhLnVwZGF0ZShkKSAgIyBXZSBibG9ja2VkIHVwZGF0ZSwgc28gd2UgaGF2ZSB0
byBkbyBpdCBsaWtlIHRoaXMuCisgICAgICAgIHJldHVybiByZXMKKworZWxzZToKKyAgICBkZWYg
aXNjbGFzcyhrbGFzcyk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKGtsYXNzLCB0eXBlKQor
CisgICAgVFlQRSA9ICJjbGFzcyIKKworICAgIGRlZiBpdGVyaXRlbXMoZCk6CisgICAgICAgIHJl
dHVybiBkLml0ZW1zKCkKKworICAgIGRlZiBtZXRhZGF0YV9wcm94eShkKToKKyAgICAgICAgcmV0
dXJuIHR5cGVzLk1hcHBpbmdQcm94eVR5cGUoZGljdChkKSkKKworCitkZWYgaW1wb3J0X2N0eXBl
cygpOiAgIyBwcmFnbWE6IG5vY292ZXIKKyAgICAiIiIKKyAgICBNb3ZlZCBpbnRvIGEgZnVuY3Rp
b24gZm9yIHRlc3RhYmlsaXR5LgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IGN0
eXBlcworICAgICAgICByZXR1cm4gY3R5cGVzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAg
ICAgICByZXR1cm4gTm9uZQorCisKK2lmIG5vdCBQWTI6CisgICAgZGVmIGp1c3Rfd2FybigqYXJn
cywgKiprdyk6CisgICAgICAgICIiIgorICAgICAgICBXZSBvbmx5IHdhcm4gb24gUHl0aG9uIDMg
YmVjYXVzZSB3ZSBhcmUgbm90IGF3YXJlIG9mIGFueSBjb25jcmV0ZQorICAgICAgICBjb25zZXF1
ZW5jZXMgb2Ygbm90IHNldHRpbmcgdGhlIGNlbGwgb24gUHl0aG9uIDIuCisgICAgICAgICIiIgor
ICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgIk1pc3NpbmcgY3R5cGVzLiAgU29t
ZSBmZWF0dXJlcyBsaWtlIGJhcmUgc3VwZXIoKSBvciBhY2Nlc3NpbmcgIgorICAgICAgICAgICAg
Il9fY2xhc3NfXyB3aWxsIG5vdCB3b3JrIHdpdGggc2xvdHMgY2xhc3Nlcy4iLAorICAgICAgICAg
ICAgUnVudGltZVdhcm5pbmcsCisgICAgICAgICAgICBzdGFja2xldmVsPTIsCisgICAgICAgICkK
K2Vsc2U6CisgICAgZGVmIGp1c3Rfd2FybigqYXJncywgKiprdyk6ICAjIHByYWdtYTogbm9jb3Zl
cgorICAgICAgICAiIiIKKyAgICAgICAgV2Ugb25seSB3YXJuIG9uIFB5dGhvbiAzIGJlY2F1c2Ug
d2UgYXJlIG5vdCBhd2FyZSBvZiBhbnkgY29uY3JldGUKKyAgICAgICAgY29uc2VxdWVuY2VzIG9m
IG5vdCBzZXR0aW5nIHRoZSBjZWxsIG9uIFB5dGhvbiAyLgorICAgICAgICAiIiIKKworCitkZWYg
bWFrZV9zZXRfY2xvc3VyZV9jZWxsKCk6CisgICAgIiIiCisgICAgTW92ZWQgaW50byBhIGZ1bmN0
aW9uIGZvciB0ZXN0YWJpbGl0eS4KKyAgICAiIiIKKyAgICBpZiBQWVBZOiAgIyBwcmFnbWE6IG5v
IGNvdmVyCisgICAgICAgIGRlZiBzZXRfY2xvc3VyZV9jZWxsKGNlbGwsIHZhbHVlKToKKyAgICAg
ICAgICAgIGNlbGwuX19zZXRzdGF0ZV9fKCh2YWx1ZSwpKQorICAgIGVsc2U6CisgICAgICAgIGN0
eXBlcyA9IGltcG9ydF9jdHlwZXMoKQorICAgICAgICBpZiBjdHlwZXMgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsID0gY3R5cGVzLnB5dGhvbmFwaS5QeUNlbGxfU2V0
CisgICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsLmFyZ3R5cGVzID0gKGN0eXBlcy5weV9vYmpl
Y3QsIGN0eXBlcy5weV9vYmplY3QpCisgICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsLnJlc3R5
cGUgPSBjdHlwZXMuY19pbnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNldF9jbG9zdXJl
X2NlbGwgPSBqdXN0X3dhcm4KKyAgICByZXR1cm4gc2V0X2Nsb3N1cmVfY2VsbAorCisKK3NldF9j
bG9zdXJlX2NlbGwgPSBtYWtlX3NldF9jbG9zdXJlX2NlbGwoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9zcmMvYXR0ci9fY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fY29uZmlnLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhlYzkyMDk2MmQxYjQwMTMzNTkyN2RiODM3Y2MxM2NjYTFlOTlhZTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb25maWcucHkKQEAgLTAsMCAr
MSwyMyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgorCisKK19fYWxsX18gPSBbInNldF9ydW5fdmFsaWRhdG9ycyIsICJn
ZXRfcnVuX3ZhbGlkYXRvcnMiXQorCitfcnVuX3ZhbGlkYXRvcnMgPSBUcnVlCisKKworZGVmIHNl
dF9ydW5fdmFsaWRhdG9ycyhydW4pOgorICAgICIiIgorICAgIFNldCB3aGV0aGVyIG9yIG5vdCB2
YWxpZGF0b3JzIGFyZSBydW4uICBCeSBkZWZhdWx0LCB0aGV5IGFyZSBydW4uCisgICAgIiIiCisg
ICAgaWYgbm90IGlzaW5zdGFuY2UocnVuLCBib29sKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCIncnVuJyBtdXN0IGJlIGJvb2wuIikKKyAgICBnbG9iYWwgX3J1bl92YWxpZGF0b3JzCisgICAg
X3J1bl92YWxpZGF0b3JzID0gcnVuCisKKworZGVmIGdldF9ydW5fdmFsaWRhdG9ycygpOgorICAg
ICIiIgorICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCB2YWxpZGF0b3JzIGFyZSBydW4uCisgICAg
IiIiCisgICAgcmV0dXJuIF9ydW5fdmFsaWRhdG9ycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9z
cmMvYXR0ci9fZnVuY3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19mdW5jcy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OTgwNDNhZjNmODg5YmM1N2E0ZGIyYTJkYTE3MTAzZGI0MmZjZGFlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fZnVuY3MucHkKQEAgLTAsMCArMSwyMTIgQEAK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKworaW1wb3J0IGNvcHkKKworZnJvbSAuX2NvbXBhdCBpbXBvcnQgaXRlcml0ZW1z
Citmcm9tIC5fbWFrZSBpbXBvcnQgTk9USElORywgX29ial9zZXRhdHRyLCBmaWVsZHMKK2Zyb20g
LmV4Y2VwdGlvbnMgaW1wb3J0IEF0dHJzQXR0cmlidXRlTm90Rm91bmRFcnJvcgorCisKK2RlZiBh
c2RpY3QoaW5zdCwgcmVjdXJzZT1UcnVlLCBmaWx0ZXI9Tm9uZSwgZGljdF9mYWN0b3J5PWRpY3Qs
CisgICAgICAgICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPUZhbHNlKToKKyAgICAiIiIKKyAg
ICBSZXR1cm4gdGhlIGBgYXR0cnNgYCBhdHRyaWJ1dGUgdmFsdWVzIG9mICppbnN0KiBhcyBhIGRp
Y3QuCisKKyAgICBPcHRpb25hbGx5IHJlY3Vyc2UgaW50byBvdGhlciBgYGF0dHJzYGAtZGVjb3Jh
dGVkIGNsYXNzZXMuCisKKyAgICA6cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYW4gYGBhdHRyc2Bg
LWRlY29yYXRlZCBjbGFzcy4KKyAgICA6cGFyYW0gYm9vbCByZWN1cnNlOiBSZWN1cnNlIGludG8g
Y2xhc3NlcyB0aGF0IGFyZSBhbHNvCisgICAgICAgIGBgYXR0cnNgYC1kZWNvcmF0ZWQuCisgICAg
OnBhcmFtIGNhbGxhYmxlIGZpbHRlcjogQSBjYWxsYWJsZSB3aG9zZSByZXR1cm4gY29kZSBkZXRl
cm1pbmVzIHdoZXRoZXIgYW4KKyAgICAgICAgYXR0cmlidXRlIG9yIGVsZW1lbnQgaXMgaW5jbHVk
ZWQgKGBgVHJ1ZWBgKSBvciBkcm9wcGVkIChgYEZhbHNlYGApLiAgSXMKKyAgICAgICAgY2FsbGVk
IHdpdGggdGhlIDpjbGFzczpgYXR0ci5BdHRyaWJ1dGVgIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBh
bmQgdGhlCisgICAgICAgIHZhbHVlIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuCisgICAgOnBhcmFt
IGNhbGxhYmxlIGRpY3RfZmFjdG9yeTogQSBjYWxsYWJsZSB0byBwcm9kdWNlIGRpY3Rpb25hcmll
cyBmcm9tLiAgRm9yCisgICAgICAgIGV4YW1wbGUsIHRvIHByb2R1Y2Ugb3JkZXJlZCBkaWN0aW9u
YXJpZXMgaW5zdGVhZCBvZiBub3JtYWwgUHl0aG9uCisgICAgICAgIGRpY3Rpb25hcmllcywgcGFz
cyBpbiBgYGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0YGAuCisgICAgOnBhcmFtIGJvb2wgcmV0YWlu
X2NvbGxlY3Rpb25fdHlwZXM6IERvIG5vdCBjb252ZXJ0IHRvIGBgbGlzdGBgIHdoZW4KKyAgICAg
ICAgZW5jb3VudGVyaW5nIGFuIGF0dHJpYnV0ZSB3aG9zZSB0eXBlIGlzIGBgdHVwbGVgYCBvciBg
YHNldGBgLiAgT25seQorICAgICAgICBtZWFuaW5nZnVsIGlmIGBgcmVjdXJzZWBgIGlzIGBgVHJ1
ZWBgLgorCisgICAgOnJ0eXBlOiByZXR1cm4gdHlwZSBvZiAqZGljdF9mYWN0b3J5KgorCisgICAg
OnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5Ob3RBbkF0dHJzQ2xhc3NFcnJvcjogSWYgKmNscyogaXMg
bm90IGFuIGBgYXR0cnNgYAorICAgICAgICBjbGFzcy4KKworICAgIC4uICB2ZXJzaW9uYWRkZWQ6
OiAxNi4wLjAgKmRpY3RfZmFjdG9yeSoKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMS4wICpy
ZXRhaW5fY29sbGVjdGlvbl90eXBlcyoKKyAgICAiIiIKKyAgICBhdHRycyA9IGZpZWxkcyhpbnN0
Ll9fY2xhc3NfXykKKyAgICBydiA9IGRpY3RfZmFjdG9yeSgpCisgICAgZm9yIGEgaW4gYXR0cnM6
CisgICAgICAgIHYgPSBnZXRhdHRyKGluc3QsIGEubmFtZSkKKyAgICAgICAgaWYgZmlsdGVyIGlz
IG5vdCBOb25lIGFuZCBub3QgZmlsdGVyKGEsIHYpOgorICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgaWYgcmVjdXJzZSBpcyBUcnVlOgorICAgICAgICAgICAgaWYgaGFzKHYuX19jbGFzc19f
KToKKyAgICAgICAgICAgICAgICBydlthLm5hbWVdID0gYXNkaWN0KHYsIHJlY3Vyc2U9VHJ1ZSwg
ZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rf
ZmFjdG9yeT1kaWN0X2ZhY3RvcnkpCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodiwgKHR1
cGxlLCBsaXN0LCBzZXQpKToKKyAgICAgICAgICAgICAgICBjZiA9IHYuX19jbGFzc19fIGlmIHJl
dGFpbl9jb2xsZWN0aW9uX3R5cGVzIGlzIFRydWUgZWxzZSBsaXN0CisgICAgICAgICAgICAgICAg
cnZbYS5uYW1lXSA9IGNmKFsKKyAgICAgICAgICAgICAgICAgICAgYXNkaWN0KGksIHJlY3Vyc2U9
VHJ1ZSwgZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3RfZmFj
dG9yeT1kaWN0X2ZhY3RvcnkpCisgICAgICAgICAgICAgICAgICAgIGlmIGhhcyhpLl9fY2xhc3Nf
XykgZWxzZSBpCisgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHYKKyAgICAgICAgICAgICAg
ICBdKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHYsIGRpY3QpOgorICAgICAgICAgICAg
ICAgIGRmID0gZGljdF9mYWN0b3J5CisgICAgICAgICAgICAgICAgcnZbYS5uYW1lXSA9IGRmKCgK
KyAgICAgICAgICAgICAgICAgICAgYXNkaWN0KGtrLCBkaWN0X2ZhY3Rvcnk9ZGYpIGlmIGhhcyhr
ay5fX2NsYXNzX18pIGVsc2Uga2ssCisgICAgICAgICAgICAgICAgICAgIGFzZGljdCh2diwgZGlj
dF9mYWN0b3J5PWRmKSBpZiBoYXModnYuX19jbGFzc19fKSBlbHNlIHZ2KQorICAgICAgICAgICAg
ICAgICAgICBmb3Iga2ssIHZ2IGluIGl0ZXJpdGVtcyh2KSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgcnZbYS5uYW1lXSA9IHYKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHJ2W2EubmFtZV0gPSB2CisgICAgcmV0dXJuIHJ2CisKKworZGVmIGFzdHVwbGUoaW5zdCwgcmVj
dXJzZT1UcnVlLCBmaWx0ZXI9Tm9uZSwgdHVwbGVfZmFjdG9yeT10dXBsZSwKKyAgICAgICAgICAg
IHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPUZhbHNlKToKKyAgICAiIiIKKyAgICBSZXR1cm4gdGhl
IGBgYXR0cnNgYCBhdHRyaWJ1dGUgdmFsdWVzIG9mICppbnN0KiBhcyBhIHR1cGxlLgorCisgICAg
T3B0aW9uYWxseSByZWN1cnNlIGludG8gb3RoZXIgYGBhdHRyc2BgLWRlY29yYXRlZCBjbGFzc2Vz
LgorCisgICAgOnBhcmFtIGluc3Q6IEluc3RhbmNlIG9mIGFuIGBgYXR0cnNgYC1kZWNvcmF0ZWQg
Y2xhc3MuCisgICAgOnBhcmFtIGJvb2wgcmVjdXJzZTogUmVjdXJzZSBpbnRvIGNsYXNzZXMgdGhh
dCBhcmUgYWxzbworICAgICAgICBgYGF0dHJzYGAtZGVjb3JhdGVkLgorICAgIDpwYXJhbSBjYWxs
YWJsZSBmaWx0ZXI6IEEgY2FsbGFibGUgd2hvc2UgcmV0dXJuIGNvZGUgZGV0ZXJtaW5lcyB3aGV0
aGVyIGFuCisgICAgICAgIGF0dHJpYnV0ZSBvciBlbGVtZW50IGlzIGluY2x1ZGVkIChgYFRydWVg
YCkgb3IgZHJvcHBlZCAoYGBGYWxzZWBgKS4gIElzCisgICAgICAgIGNhbGxlZCB3aXRoIHRoZSA6
Y2xhc3M6YGF0dHIuQXR0cmlidXRlYCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHRoZQorICAg
ICAgICB2YWx1ZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LgorICAgIDpwYXJhbSBjYWxsYWJsZSB0
dXBsZV9mYWN0b3J5OiBBIGNhbGxhYmxlIHRvIHByb2R1Y2UgdHVwbGVzIGZyb20uICBGb3IKKyAg
ICAgICAgZXhhbXBsZSwgdG8gcHJvZHVjZSBsaXN0cyBpbnN0ZWFkIG9mIHR1cGxlcy4KKyAgICA6
cGFyYW0gYm9vbCByZXRhaW5fY29sbGVjdGlvbl90eXBlczogRG8gbm90IGNvbnZlcnQgdG8gYGBs
aXN0YGAKKyAgICAgICAgb3IgYGBkaWN0YGAgd2hlbiBlbmNvdW50ZXJpbmcgYW4gYXR0cmlidXRl
IHdoaWNoIHR5cGUgaXMKKyAgICAgICAgYGB0dXBsZWBgLCBgYGRpY3RgYCBvciBgYHNldGBgLiAg
T25seSBtZWFuaW5nZnVsIGlmIGBgcmVjdXJzZWBgIGlzCisgICAgICAgIGBgVHJ1ZWBgLgorCisg
ICAgOnJ0eXBlOiByZXR1cm4gdHlwZSBvZiAqdHVwbGVfZmFjdG9yeSoKKworICAgIDpyYWlzZSBh
dHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0NsYXNzRXJyb3I6IElmICpjbHMqIGlzIG5vdCBhbiBg
YGF0dHJzYGAKKyAgICAgICAgY2xhc3MuCisKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMi4w
CisgICAgIiIiCisgICAgYXR0cnMgPSBmaWVsZHMoaW5zdC5fX2NsYXNzX18pCisgICAgcnYgPSBb
XQorICAgIHJldGFpbiA9IHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzICAjIFZlcnkgbG9uZy4gOi8K
KyAgICBmb3IgYSBpbiBhdHRyczoKKyAgICAgICAgdiA9IGdldGF0dHIoaW5zdCwgYS5uYW1lKQor
ICAgICAgICBpZiBmaWx0ZXIgaXMgbm90IE5vbmUgYW5kIG5vdCBmaWx0ZXIoYSwgdik6CisgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICBpZiByZWN1cnNlIGlzIFRydWU6CisgICAgICAgICAg
ICBpZiBoYXModi5fX2NsYXNzX18pOgorICAgICAgICAgICAgICAgIHJ2LmFwcGVuZChhc3R1cGxl
KHYsIHJlY3Vyc2U9VHJ1ZSwgZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0dXBsZV9mYWN0b3J5PXR1cGxlX2ZhY3RvcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXM9cmV0YWluKSkKKyAgICAg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2LCAodHVwbGUsIGxpc3QsIHNldCkpOgorICAgICAgICAg
ICAgICAgIGNmID0gdi5fX2NsYXNzX18gaWYgcmV0YWluIGlzIFRydWUgZWxzZSBsaXN0CisgICAg
ICAgICAgICAgICAgcnYuYXBwZW5kKGNmKFsKKyAgICAgICAgICAgICAgICAgICAgYXN0dXBsZShq
LCByZWN1cnNlPVRydWUsIGZpbHRlcj1maWx0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPXJldGFpbikKKyAgICAgICAgICAgICAgICAgICAg
aWYgaGFzKGouX19jbGFzc19fKSBlbHNlIGoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4g
dgorICAgICAgICAgICAgICAgIF0pKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHYsIGRp
Y3QpOgorICAgICAgICAgICAgICAgIGRmID0gdi5fX2NsYXNzX18gaWYgcmV0YWluIGlzIFRydWUg
ZWxzZSBkaWN0CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKGRmKAorICAgICAgICAgICAgICAg
ICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdHVwbGUoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0dXBsZV9mYWN0b3J5PXR1cGxlX2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPXJldGFpbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICkgaWYgaGFzKGtrLl9fY2xhc3NfXykgZWxzZSBraywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3R1cGxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2diwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVwbGVfZmFjdG9yeT10dXBs
ZV9mYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRhaW5fY29sbGVj
dGlvbl90eXBlcz1yZXRhaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGlmIGhhcyh2
di5fX2NsYXNzX18pIGVsc2UgdnYKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciBraywgdnYgaW4gaXRlcml0ZW1zKHYpKSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKHYpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBydi5hcHBlbmQodikKKyAgICByZXR1cm4gcnYgaWYgdHVwbGVfZmFjdG9yeSBpcyBs
aXN0IGVsc2UgdHVwbGVfZmFjdG9yeShydikKKworCitkZWYgaGFzKGNscyk6CisgICAgIiIiCisg
ICAgQ2hlY2sgd2hldGhlciAqY2xzKiBpcyBhIGNsYXNzIHdpdGggYGBhdHRyc2BgIGF0dHJpYnV0
ZXMuCisKKyAgICA6cGFyYW0gdHlwZSBjbHM6IENsYXNzIHRvIGludHJvc3BlY3QuCisgICAgOnJh
aXNlIFR5cGVFcnJvcjogSWYgKmNscyogaXMgbm90IGEgY2xhc3MuCisKKyAgICA6cnR5cGU6IDpj
bGFzczpgYm9vbGAKKyAgICAiIiIKKyAgICByZXR1cm4gZ2V0YXR0cihjbHMsICJfX2F0dHJzX2F0
dHJzX18iLCBOb25lKSBpcyBub3QgTm9uZQorCisKK2RlZiBhc3NvYyhpbnN0LCAqKmNoYW5nZXMp
OgorICAgICIiIgorICAgIENvcHkgKmluc3QqIGFuZCBhcHBseSAqY2hhbmdlcyouCisKKyAgICA6
cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYSBjbGFzcyB3aXRoIGBgYXR0cnNgYCBhdHRyaWJ1dGVz
LgorICAgIDpwYXJhbSBjaGFuZ2VzOiBLZXl3b3JkIGNoYW5nZXMgaW4gdGhlIG5ldyBjb3B5Lgor
CisgICAgOnJldHVybjogQSBjb3B5IG9mIGluc3Qgd2l0aCAqY2hhbmdlcyogaW5jb3Jwb3JhdGVk
LgorCisgICAgOnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5BdHRyc0F0dHJpYnV0ZU5vdEZvdW5kRXJy
b3I6IElmICphdHRyX25hbWUqIGNvdWxkbid0CisgICAgICAgIGJlIGZvdW5kIG9uICpjbHMqLgor
ICAgIDpyYWlzZSBhdHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0NsYXNzRXJyb3I6IElmICpjbHMq
IGlzIG5vdCBhbiBgYGF0dHJzYGAKKyAgICAgICAgY2xhc3MuCisKKyAgICAuLiAgZGVwcmVjYXRl
ZDo6IDE3LjEuMAorICAgICAgICBVc2UgOmZ1bmM6YGV2b2x2ZWAgaW5zdGVhZC4KKyAgICAiIiIK
KyAgICBpbXBvcnQgd2FybmluZ3MKKyAgICB3YXJuaW5ncy53YXJuKCJhc3NvYyBpcyBkZXByZWNh
dGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgMjAxOC8wMS4iLAorICAgICAgICAgICAgICAg
ICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCisgICAgbmV3ID0gY29weS5jb3B5
KGluc3QpCisgICAgYXR0cnMgPSBmaWVsZHMoaW5zdC5fX2NsYXNzX18pCisgICAgZm9yIGssIHYg
aW4gaXRlcml0ZW1zKGNoYW5nZXMpOgorICAgICAgICBhID0gZ2V0YXR0cihhdHRycywgaywgTk9U
SElORykKKyAgICAgICAgaWYgYSBpcyBOT1RISU5HOgorICAgICAgICAgICAgcmFpc2UgQXR0cnNB
dHRyaWJ1dGVOb3RGb3VuZEVycm9yKAorICAgICAgICAgICAgICAgICJ7a30gaXMgbm90IGFuIGF0
dHJzIGF0dHJpYnV0ZSBvbiB7Y2x9LiIKKyAgICAgICAgICAgICAgICAuZm9ybWF0KGs9aywgY2w9
bmV3Ll9fY2xhc3NfXykKKyAgICAgICAgICAgICkKKyAgICAgICAgX29ial9zZXRhdHRyKG5ldywg
aywgdikKKyAgICByZXR1cm4gbmV3CisKKworZGVmIGV2b2x2ZShpbnN0LCAqKmNoYW5nZXMpOgor
ICAgICIiIgorICAgIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSwgYmFzZWQgb24gKmluc3QqIHdpdGgg
KmNoYW5nZXMqIGFwcGxpZWQuCisKKyAgICA6cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYSBjbGFz
cyB3aXRoIGBgYXR0cnNgYCBhdHRyaWJ1dGVzLgorICAgIDpwYXJhbSBjaGFuZ2VzOiBLZXl3b3Jk
IGNoYW5nZXMgaW4gdGhlIG5ldyBjb3B5LgorCisgICAgOnJldHVybjogQSBjb3B5IG9mIGluc3Qg
d2l0aCAqY2hhbmdlcyogaW5jb3Jwb3JhdGVkLgorCisgICAgOnJhaXNlIFR5cGVFcnJvcjogSWYg
KmF0dHJfbmFtZSogY291bGRuJ3QgYmUgZm91bmQgaW4gdGhlIGNsYXNzCisgICAgICAgIGBgX19p
bml0X19gYC4KKyAgICA6cmFpc2UgYXR0ci5leGNlcHRpb25zLk5vdEFuQXR0cnNDbGFzc0Vycm9y
OiBJZiAqY2xzKiBpcyBub3QgYW4gYGBhdHRyc2BgCisgICAgICAgIGNsYXNzLgorCisgICAgLi4g
IHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIGNscyA9IGluc3QuX19jbGFzc19f
CisgICAgYXR0cnMgPSBmaWVsZHMoY2xzKQorICAgIGZvciBhIGluIGF0dHJzOgorICAgICAgICBp
ZiBub3QgYS5pbml0OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgYXR0cl9uYW1lID0g
YS5uYW1lICAjIFRvIGRlYWwgd2l0aCBwcml2YXRlIGF0dHJpYnV0ZXMuCisgICAgICAgIGluaXRf
bmFtZSA9IGF0dHJfbmFtZSBpZiBhdHRyX25hbWVbMF0gIT0gIl8iIGVsc2UgYXR0cl9uYW1lWzE6
XQorICAgICAgICBpZiBpbml0X25hbWUgbm90IGluIGNoYW5nZXM6CisgICAgICAgICAgICBjaGFu
Z2VzW2luaXRfbmFtZV0gPSBnZXRhdHRyKGluc3QsIGF0dHJfbmFtZSkKKyAgICByZXR1cm4gY2xz
KCoqY2hhbmdlcykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX21ha2UucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3NyYy9hdHRyL19tYWtlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYzVmOTRjZTM4MjgxNzcx
MmEzOTcyNDRlMzk2ZGNlN2VlYjg3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Ny
Yy9hdHRyL19tYWtlLnB5CkBAIC0wLDAgKzEsMTM5NSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgaGFz
aGxpYgoraW1wb3J0IGxpbmVjYWNoZQoraW1wb3J0IHN5cworCitmcm9tIG9wZXJhdG9yIGltcG9y
dCBpdGVtZ2V0dGVyCisKK2Zyb20gLiBpbXBvcnQgX2NvbmZpZworZnJvbSAuX2NvbXBhdCBpbXBv
cnQgUFkyLCBpc2NsYXNzLCBpdGVyaXRlbXMsIG1ldGFkYXRhX3Byb3h5LCBzZXRfY2xvc3VyZV9j
ZWxsCitmcm9tIC5leGNlcHRpb25zIGltcG9ydCAoCisgICAgRGVmYXVsdEFscmVhZHlTZXRFcnJv
ciwgRnJvemVuSW5zdGFuY2VFcnJvciwgTm90QW5BdHRyc0NsYXNzRXJyb3IsCisgICAgVW5hbm5v
dGF0ZWRBdHRyaWJ1dGVFcnJvcgorKQorCisKKyMgVGhpcyBpcyB1c2VkIGF0IGxlYXN0IHR3aWNl
LCBzbyBjYWNoZSBpdCBoZXJlLgorX29ial9zZXRhdHRyID0gb2JqZWN0Ll9fc2V0YXR0cl9fCitf
aW5pdF9jb252ZXJ0X3BhdCA9ICJfX2F0dHJfY29udmVydF97fSIKK19pbml0X2ZhY3RvcnlfcGF0
ID0gIl9fYXR0cl9mYWN0b3J5X3t9IgorX3R1cGxlX3Byb3BlcnR5X3BhdCA9ICIgICAge2F0dHJf
bmFtZX0gPSBwcm9wZXJ0eShpdGVtZ2V0dGVyKHtpbmRleH0pKSIKK19lbXB0eV9tZXRhZGF0YV9z
aW5nbGV0b24gPSBtZXRhZGF0YV9wcm94eSh7fSkKKworCitjbGFzcyBfTm90aGluZyhvYmplY3Qp
OgorICAgICIiIgorICAgIFNlbnRpbmVsIGNsYXNzIHRvIGluZGljYXRlIHRoZSBsYWNrIG9mIGEg
dmFsdWUgd2hlbiBgYE5vbmVgYCBpcyBhbWJpZ3VvdXMuCisKKyAgICBBbGwgaW5zdGFuY2VzIG9m
IGBfTm90aGluZ2AgYXJlIGVxdWFsLgorICAgICIiIgorICAgIGRlZiBfX2NvcHlfXyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgXyk6Cisg
ICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAg
ICAgcmV0dXJuIG90aGVyLl9fY2xhc3NfXyA9PSBfTm90aGluZworCisgICAgZGVmIF9fbmVfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIk5PVEhJTkciCisKKyAgICBkZWYgX19o
YXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiAweGRlYWRiZWVmCisKKworTk9USElORyA9IF9O
b3RoaW5nKCkKKyIiIgorU2VudGluZWwgdG8gaW5kaWNhdGUgdGhlIGxhY2sgb2YgYSB2YWx1ZSB3
aGVuIGBgTm9uZWBgIGlzIGFtYmlndW91cy4KKyIiIgorCisKK2RlZiBhdHRyaWIoZGVmYXVsdD1O
T1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwg
aGFzaD1Ob25lLCBpbml0PVRydWUsCisgICAgICAgICAgIGNvbnZlcnQ9Tm9uZSwgbWV0YWRhdGE9
e30sIHR5cGU9Tm9uZSk6CisgICAgIiIiCisgICAgQ3JlYXRlIGEgbmV3IGF0dHJpYnV0ZSBvbiBh
IGNsYXNzLgorCisgICAgLi4gIHdhcm5pbmc6OgorCisgICAgICAgIERvZXMgKm5vdCogZG8gYW55
dGhpbmcgdW5sZXNzIHRoZSBjbGFzcyBpcyBhbHNvIGRlY29yYXRlZCB3aXRoCisgICAgICAgIDpm
dW5jOmBhdHRyLnNgIQorCisgICAgOnBhcmFtIGRlZmF1bHQ6IEEgdmFsdWUgdGhhdCBpcyB1c2Vk
IGlmIGFuIGBgYXR0cnNgYC1nZW5lcmF0ZWQgYGBfX2luaXRfX2BgCisgICAgICAgIGlzIHVzZWQg
YW5kIG5vIHZhbHVlIGlzIHBhc3NlZCB3aGlsZSBpbnN0YW50aWF0aW5nIG9yIHRoZSBhdHRyaWJ1
dGUgaXMKKyAgICAgICAgZXhjbHVkZWQgdXNpbmcgYGBpbml0PUZhbHNlYGAuCisKKyAgICAgICAg
SWYgdGhlIHZhbHVlIGlzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgRmFjdG9yeWAsIGl0cyBjYWxs
YWJsZSB3aWxsIGJlCisgICAgICAgIHVzZWQgdG8gY29uc3RydWN0IGEgbmV3IHZhbHVlICh1c2Vm
dWwgZm9yIG11dGFibGUgZGF0YSB0eXBlcyBsaWtlIGxpc3RzCisgICAgICAgIG9yIGRpY3RzKS4K
KworICAgICAgICBJZiBhIGRlZmF1bHQgaXMgbm90IHNldCAob3Igc2V0IG1hbnVhbGx5IHRvIGBg
YXR0ci5OT1RISU5HYGApLCBhIHZhbHVlCisgICAgICAgICptdXN0KiBiZSBzdXBwbGllZCB3aGVu
IGluc3RhbnRpYXRpbmc7IG90aGVyd2lzZSBhIDpleGM6YFR5cGVFcnJvcmAKKyAgICAgICAgd2ls
bCBiZSByYWlzZWQuCisKKyAgICAgICAgVGhlIGRlZmF1bHQgY2FuIGFsc28gYmUgc2V0IHVzaW5n
IGRlY29yYXRvciBub3RhdGlvbiBhcyBzaG93biBiZWxvdy4KKworICAgIDp0eXBlIGRlZmF1bHQ6
IEFueSB2YWx1ZS4KKworICAgIDpwYXJhbSB2YWxpZGF0b3I6IDpmdW5jOmBjYWxsYWJsZWAgdGhh
dCBpcyBjYWxsZWQgYnkgYGBhdHRyc2BgLWdlbmVyYXRlZAorICAgICAgICBgYF9faW5pdF9fYGAg
bWV0aG9kcyBhZnRlciB0aGUgaW5zdGFuY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICBUaGV5Cisg
ICAgICAgIHJlY2VpdmUgdGhlIGluaXRpYWxpemVkIGluc3RhbmNlLCB0aGUgOmNsYXNzOmBBdHRy
aWJ1dGVgLCBhbmQgdGhlCisgICAgICAgIHBhc3NlZCB2YWx1ZS4KKworICAgICAgICBUaGUgcmV0
dXJuIHZhbHVlIGlzICpub3QqIGluc3BlY3RlZCBzbyB0aGUgdmFsaWRhdG9yIGhhcyB0byB0aHJv
dyBhbgorICAgICAgICBleGNlcHRpb24gaXRzZWxmLgorCisgICAgICAgIElmIGEgYGBsaXN0YGAg
aXMgcGFzc2VkLCBpdHMgaXRlbXMgYXJlIHRyZWF0ZWQgYXMgdmFsaWRhdG9ycyBhbmQgbXVzdAor
ICAgICAgICBhbGwgcGFzcy4KKworICAgICAgICBWYWxpZGF0b3JzIGNhbiBiZSBnbG9iYWxseSBk
aXNhYmxlZCBhbmQgcmUtZW5hYmxlZCB1c2luZworICAgICAgICA6ZnVuYzpgZ2V0X3J1bl92YWxp
ZGF0b3JzYC4KKworICAgICAgICBUaGUgdmFsaWRhdG9yIGNhbiBhbHNvIGJlIHNldCB1c2luZyBk
ZWNvcmF0b3Igbm90YXRpb24gYXMgc2hvd24gYmVsb3cuCisKKyAgICA6dHlwZSB2YWxpZGF0b3I6
IGBgY2FsbGFibGVgYCBvciBhIGBgbGlzdGBgIG9mIGBgY2FsbGFibGVgYFwgcy4KKworICAgIDpw
YXJhbSBib29sIHJlcHI6IEluY2x1ZGUgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGdlbmVyYXRlZCBg
YF9fcmVwcl9fYGAKKyAgICAgICAgbWV0aG9kLgorICAgIDpwYXJhbSBib29sIGNtcDogSW5jbHVk
ZSB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZ2VuZXJhdGVkIGNvbXBhcmlzb24gbWV0aG9kcworICAg
ICAgICAoYGBfX2VxX19gYCBldCBhbCkuCisgICAgOnBhcmFtIGhhc2g6IEluY2x1ZGUgdGhpcyBh
dHRyaWJ1dGUgaW4gdGhlIGdlbmVyYXRlZCBgYF9faGFzaF9fYGAKKyAgICAgICAgbWV0aG9kLiAg
SWYgYGBOb25lYGAgKGRlZmF1bHQpLCBtaXJyb3IgKmNtcConcyB2YWx1ZS4gIFRoaXMgaXMgdGhl
CisgICAgICAgIGNvcnJlY3QgYmVoYXZpb3IgYWNjb3JkaW5nIHRoZSBQeXRob24gc3BlYy4gIFNl
dHRpbmcgdGhpcyB2YWx1ZSB0bworICAgICAgICBhbnl0aGluZyBlbHNlIHRoYW4gYGBOb25lYGAg
aXMgKmRpc2NvdXJhZ2VkKi4KKyAgICA6dHlwZSBoYXNoOiBgYGJvb2xgYCBvciBgYE5vbmVgYAor
ICAgIDpwYXJhbSBib29sIGluaXQ6IEluY2x1ZGUgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGdlbmVy
YXRlZCBgYF9faW5pdF9fYGAKKyAgICAgICAgbWV0aG9kLiAgSXQgaXMgcG9zc2libGUgdG8gc2V0
IHRoaXMgdG8gYGBGYWxzZWBgIGFuZCBzZXQgYSBkZWZhdWx0CisgICAgICAgIHZhbHVlLiAgSW4g
dGhhdCBjYXNlIHRoaXMgYXR0cmlidXRlZCBpcyB1bmNvbmRpdGlvbmFsbHkgaW5pdGlhbGl6ZWQK
KyAgICAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIGRlZmF1bHQgdmFsdWUgb3IgZmFjdG9yeS4KKyAg
ICA6cGFyYW0gY2FsbGFibGUgY29udmVydDogOmZ1bmM6YGNhbGxhYmxlYCB0aGF0IGlzIGNhbGxl
ZCBieQorICAgICAgICBgYGF0dHJzYGAtZ2VuZXJhdGVkIGBgX19pbml0X19gYCBtZXRob2RzIHRv
IGNvbnZlcnQgYXR0cmlidXRlJ3MgdmFsdWUKKyAgICAgICAgdG8gdGhlIGRlc2lyZWQgZm9ybWF0
LiAgSXQgaXMgZ2l2ZW4gdGhlIHBhc3NlZC1pbiB2YWx1ZSwgYW5kIHRoZQorICAgICAgICByZXR1
cm5lZCB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgYXR0cmlidXRl
LiAgVGhlCisgICAgICAgIHZhbHVlIGlzIGNvbnZlcnRlZCBiZWZvcmUgYmVpbmcgcGFzc2VkIHRv
IHRoZSB2YWxpZGF0b3IsIGlmIGFueS4KKyAgICA6cGFyYW0gbWV0YWRhdGE6IEFuIGFyYml0cmFy
eSBtYXBwaW5nLCB0byBiZSB1c2VkIGJ5IHRoaXJkLXBhcnR5CisgICAgICAgIGNvbXBvbmVudHMu
ICBTZWUgOnJlZjpgZXh0ZW5kaW5nX21ldGFkYXRhYC4KKyAgICA6cGFyYW0gdHlwZTogVGhlIHR5
cGUgb2YgdGhlIGF0dHJpYnV0ZS4gIEluIFB5dGhvbiAzLjYgb3IgZ3JlYXRlciwgdGhlCisgICAg
ICAgIHByZWZlcnJlZCBtZXRob2QgdG8gc3BlY2lmeSB0aGUgdHlwZSBpcyB1c2luZyBhIHZhcmlh
YmxlIGFubm90YXRpb24KKyAgICAgICAgKHNlZSBgUEVQIDUyNiA8aHR0cHM6Ly93d3cucHl0aG9u
Lm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8+YF8pLgorICAgICAgICBUaGlzIGFyZ3VtZW50IGlzIHBy
b3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAgICBSZWdhcmRsZXNzIG9m
IHRoZSBhcHByb2FjaCB1c2VkLCB0aGUgdHlwZSB3aWxsIGJlIHN0b3JlZCBvbgorICAgICAgICBg
YEF0dHJpYnV0ZS50eXBlYGAuCisKKyAgICAuLiAgdmVyc2lvbmNoYW5nZWQ6OiAxNy4xLjAgKnZh
bGlkYXRvciogY2FuIGJlIGEgYGBsaXN0YGAgbm93LgorICAgIC4uICB2ZXJzaW9uY2hhbmdlZDo6
IDE3LjEuMAorICAgICAgICAqaGFzaCogaXMgYGBOb25lYGAgYW5kIHRoZXJlZm9yZSBtaXJyb3Jz
ICpjbXAqIGJ5IGRlZmF1bHQuCisgICAgLi4gIHZlcnNpb25hZGRlZDo6IDE3LjMuMCAqdHlwZSoK
KyAgICAiIiIKKyAgICBpZiBoYXNoIGlzIG5vdCBOb25lIGFuZCBoYXNoIGlzIG5vdCBUcnVlIGFu
ZCBoYXNoIGlzIG5vdCBGYWxzZToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAg
ICAgIkludmFsaWQgdmFsdWUgZm9yIGhhc2guICBNdXN0IGJlIFRydWUsIEZhbHNlLCBvciBOb25l
LiIKKyAgICAgICAgKQorICAgIHJldHVybiBfQ291bnRpbmdBdHRyKAorICAgICAgICBkZWZhdWx0
PWRlZmF1bHQsCisgICAgICAgIHZhbGlkYXRvcj12YWxpZGF0b3IsCisgICAgICAgIHJlcHI9cmVw
ciwKKyAgICAgICAgY21wPWNtcCwKKyAgICAgICAgaGFzaD1oYXNoLAorICAgICAgICBpbml0PWlu
aXQsCisgICAgICAgIGNvbnZlcnQ9Y29udmVydCwKKyAgICAgICAgbWV0YWRhdGE9bWV0YWRhdGEs
CisgICAgICAgIHR5cGU9dHlwZSwKKyAgICApCisKKworZGVmIF9tYWtlX2F0dHJfdHVwbGVfY2xh
c3MoY2xzX25hbWUsIGF0dHJfbmFtZXMpOgorICAgICIiIgorICAgIENyZWF0ZSBhIHR1cGxlIHN1
YmNsYXNzIHRvIGhvbGQgYEF0dHJpYnV0ZWBzIGZvciBhbiBgYXR0cnNgIGNsYXNzLgorCisgICAg
VGhlIHN1YmNsYXNzIGlzIGEgYmFyZSB0dXBsZSB3aXRoIHByb3BlcnRpZXMgZm9yIG5hbWVzLgor
CisgICAgY2xhc3MgTXlDbGFzc0F0dHJpYnV0ZXModHVwbGUpOgorICAgICAgICBfX3Nsb3RzX18g
PSAoKQorICAgICAgICB4ID0gcHJvcGVydHkoaXRlbWdldHRlcigwKSkKKyAgICAiIiIKKyAgICBh
dHRyX2NsYXNzX25hbWUgPSAie31BdHRyaWJ1dGVzIi5mb3JtYXQoY2xzX25hbWUpCisgICAgYXR0
cl9jbGFzc190ZW1wbGF0ZSA9IFsKKyAgICAgICAgImNsYXNzIHt9KHR1cGxlKToiLmZvcm1hdChh
dHRyX2NsYXNzX25hbWUpLAorICAgICAgICAiICAgIF9fc2xvdHNfXyA9ICgpIiwKKyAgICBdCisg
ICAgaWYgYXR0cl9uYW1lczoKKyAgICAgICAgZm9yIGksIGF0dHJfbmFtZSBpbiBlbnVtZXJhdGUo
YXR0cl9uYW1lcyk6CisgICAgICAgICAgICBhdHRyX2NsYXNzX3RlbXBsYXRlLmFwcGVuZChfdHVw
bGVfcHJvcGVydHlfcGF0LmZvcm1hdCgKKyAgICAgICAgICAgICAgICBpbmRleD1pLAorICAgICAg
ICAgICAgICAgIGF0dHJfbmFtZT1hdHRyX25hbWUsCisgICAgICAgICAgICApKQorICAgIGVsc2U6
CisgICAgICAgIGF0dHJfY2xhc3NfdGVtcGxhdGUuYXBwZW5kKCIgICAgcGFzcyIpCisgICAgZ2xv
YnMgPSB7Iml0ZW1nZXR0ZXIiOiBpdGVtZ2V0dGVyfQorICAgIGV2YWwoY29tcGlsZSgiXG4iLmpv
aW4oYXR0cl9jbGFzc190ZW1wbGF0ZSksICIiLCAiZXhlYyIpLCBnbG9icykKKyAgICByZXR1cm4g
Z2xvYnNbYXR0cl9jbGFzc19uYW1lXQorCisKKyMgVHVwbGUgY2xhc3MgZm9yIGV4dHJhY3RlZCBh
dHRyaWJ1dGVzIGZyb20gYSBjbGFzcyBkZWZpbml0aW9uLgorIyBgc3VwZXJfYXR0cnNgIGlzIGEg
c3Vic2V0IG9mIGBhdHRyc2AuCitfQXR0cmlidXRlcyA9IF9tYWtlX2F0dHJfdHVwbGVfY2xhc3Mo
Il9BdHRyaWJ1dGVzIiwgWworICAgICJhdHRycyIsICAgICAgICAjIGFsbCBhdHRyaWJ1dGVzIHRv
IGJ1aWxkIGR1bmRlciBtZXRob2RzIGZvcgorICAgICJzdXBlcl9hdHRycyIsICAjIGF0dHJpYnV0
ZXMgdGhhdCBoYXZlIGJlZW4gaW5oZXJpdGVkIGZyb20gc3VwZXIgY2xhc3NlcworXSkKKworCitk
ZWYgX2lzX2NsYXNzX3Zhcihhbm5vdCk6CisgICAgIiIiCisgICAgQ2hlY2sgd2hldGhlciAqYW5u
b3QqIGlzIGEgdHlwaW5nLkNsYXNzVmFyLgorCisgICAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGdy
b3NzIGJ1dCBpbXBvcnRpbmcgYHR5cGluZ2AgaXMgc2xvdyBhbmQgdGhlcmUgYXJlCisgICAgZGlz
Y3Vzc2lvbnMgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIHN0ZGxpYiBhbGx0b2dldGhlci4KKyAgICAi
IiIKKyAgICByZXR1cm4gc3RyKGFubm90KS5zdGFydHN3aXRoKCJ0eXBpbmcuQ2xhc3NWYXIiKQor
CisKK2RlZiBfZ2V0X2Fubm90YXRpb25zKGNscyk6CisgICAgIiIiCisgICAgR2V0IGFubm90YXRp
b25zIGZvciAqY2xzKi4KKyAgICAiIiIKKyAgICBhbm5zID0gZ2V0YXR0cihjbHMsICJfX2Fubm90
YXRpb25zX18iLCBOb25lKQorICAgIGlmIGFubnMgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIHt9
CisKKyAgICAjIFZlcmlmeSB0aGF0IHRoZSBhbm5vdGF0aW9ucyBhcmVuJ3QgbWVyZWx5IGluaGVy
aXRlZC4KKyAgICBmb3Igc3VwZXJfY2xzIGluIGNscy5fX21yb19fWzE6XToKKyAgICAgICAgaWYg
YW5ucyBpcyBnZXRhdHRyKHN1cGVyX2NscywgIl9fYW5ub3RhdGlvbnNfXyIsIE5vbmUpOgorICAg
ICAgICAgICAgcmV0dXJuIHt9CisKKyAgICByZXR1cm4gYW5ucworCisKK2RlZiBfdHJhbnNmb3Jt
X2F0dHJzKGNscywgdGhlc2UsIGF1dG9fYXR0cmlicyk6CisgICAgIiIiCisgICAgVHJhbnNmb3Jt
IGFsbCBgX0NvdW50aW5nQXR0cmBzIG9uIGEgY2xhc3MgaW50byBgQXR0cmlidXRlYHMuCisKKyAg
ICBJZiAqdGhlc2UqIGlzIHBhc3NlZCwgdXNlIHRoYXQgYW5kIGRvbid0IGxvb2sgZm9yIHRoZW0g
b24gdGhlIGNsYXNzLgorCisgICAgUmV0dXJuIGFuIGBfQXR0cmlidXRlc2AuCisgICAgIiIiCisg
ICAgY2QgPSBjbHMuX19kaWN0X18KKyAgICBhbm5zID0gX2dldF9hbm5vdGF0aW9ucyhjbHMpCisK
KyAgICBpZiB0aGVzZSBpcyBub3QgTm9uZToKKyAgICAgICAgY2FfbGlzdCA9IHNvcnRlZCgoCisg
ICAgICAgICAgICAobmFtZSwgY2EpCisgICAgICAgICAgICBmb3IgbmFtZSwgY2EKKyAgICAgICAg
ICAgIGluIGl0ZXJpdGVtcyh0aGVzZSkKKyAgICAgICAgKSwga2V5PWxhbWJkYSBlOiBlWzFdLmNv
dW50ZXIpCisgICAgZWxpZiBhdXRvX2F0dHJpYnMgaXMgVHJ1ZToKKyAgICAgICAgY2FfbmFtZXMg
PSB7CisgICAgICAgICAgICBuYW1lCisgICAgICAgICAgICBmb3IgbmFtZSwgYXR0cgorICAgICAg
ICAgICAgaW4gY2QuaXRlbXMoKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhdHRyLCBfQ291
bnRpbmdBdHRyKQorICAgICAgICB9CisgICAgICAgIGNhX2xpc3QgPSBbXQorICAgICAgICBhbm5v
dF9uYW1lcyA9IHNldCgpCisgICAgICAgIGZvciBhdHRyX25hbWUsIHR5cGUgaW4gYW5ucy5pdGVt
cygpOgorICAgICAgICAgICAgaWYgX2lzX2NsYXNzX3Zhcih0eXBlKToKKyAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgYW5ub3RfbmFtZXMuYWRkKGF0dHJfbmFtZSkKKyAgICAg
ICAgICAgIGEgPSBjZC5nZXQoYXR0cl9uYW1lLCBOT1RISU5HKQorICAgICAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UoYSwgX0NvdW50aW5nQXR0cik6CisgICAgICAgICAgICAgICAgaWYgYSBpcyBO
T1RISU5HOgorICAgICAgICAgICAgICAgICAgICBhID0gYXR0cmliKCkKKyAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhID0gYXR0cmliKGRlZmF1bHQ9YSkKKyAgICAg
ICAgICAgIGNhX2xpc3QuYXBwZW5kKChhdHRyX25hbWUsIGEpKQorCisgICAgICAgIHVuYW5ub3Rh
dGVkID0gY2FfbmFtZXMgLSBhbm5vdF9uYW1lcworICAgICAgICBpZiBsZW4odW5hbm5vdGF0ZWQp
ID4gMDoKKyAgICAgICAgICAgIHJhaXNlIFVuYW5ub3RhdGVkQXR0cmlidXRlRXJyb3IoCisgICAg
ICAgICAgICAgICAgIlRoZSBmb2xsb3dpbmcgYGF0dHIuaWJgcyBsYWNrIGEgdHlwZSBhbm5vdGF0
aW9uOiAiICsKKyAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29ydGVkKAorICAgICAgICAgICAg
ICAgICAgICB1bmFubm90YXRlZCwKKyAgICAgICAgICAgICAgICAgICAga2V5PWxhbWJkYSBuOiBj
ZC5nZXQobikuY291bnRlcgorICAgICAgICAgICAgICAgICkpICsgIi4iCisgICAgICAgICAgICAp
CisgICAgZWxzZToKKyAgICAgICAgY2FfbGlzdCA9IHNvcnRlZCgoCisgICAgICAgICAgICAobmFt
ZSwgYXR0cikKKyAgICAgICAgICAgIGZvciBuYW1lLCBhdHRyCisgICAgICAgICAgICBpbiBjZC5p
dGVtcygpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGF0dHIsIF9Db3VudGluZ0F0dHIpCisg
ICAgICAgICksIGtleT1sYW1iZGEgZTogZVsxXS5jb3VudGVyKQorCisgICAgbm9uX3N1cGVyX2F0
dHJzID0gWworICAgICAgICBBdHRyaWJ1dGUuZnJvbV9jb3VudGluZ19hdHRyKAorICAgICAgICAg
ICAgbmFtZT1hdHRyX25hbWUsCisgICAgICAgICAgICBjYT1jYSwKKyAgICAgICAgICAgIHR5cGU9
YW5ucy5nZXQoYXR0cl9uYW1lKSwKKyAgICAgICAgKQorICAgICAgICBmb3IgYXR0cl9uYW1lLCBj
YQorICAgICAgICBpbiBjYV9saXN0CisgICAgXQorCisgICAgIyBXYWxrICpkb3duKiB0aGUgTVJP
IGZvciBhdHRyaWJ1dGVzLiAgV2hpbGUgZG9pbmcgc28sIHdlIGNvbGxlY3QgdGhlIG5hbWVzCisg
ICAgIyBvZiBhdHRyaWJ1dGVzIHdlJ3ZlIHNlZW4gaW4gYHRha2VfYXR0cl9uYW1lc2AgYW5kIGln
bm9yZSB0aGVpcgorICAgICMgcmVkZWZpbml0aW9ucyBkZWVwZXIgaW4gdGhlIGhpZXJhcmNoeS4K
KyAgICBzdXBlcl9hdHRycyA9IFtdCisgICAgdGFrZW5fYXR0cl9uYW1lcyA9IHthLm5hbWU6IGEg
Zm9yIGEgaW4gbm9uX3N1cGVyX2F0dHJzfQorICAgIGZvciBzdXBlcl9jbHMgaW4gY2xzLl9fbXJv
X19bMTotMV06CisgICAgICAgIHN1Yl9hdHRycyA9IGdldGF0dHIoc3VwZXJfY2xzLCAiX19hdHRy
c19hdHRyc19fIiwgTm9uZSkKKyAgICAgICAgaWYgc3ViX2F0dHJzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgIyBXZSBpdGVyYXRlIG92ZXIgc3ViX2F0dHJzIGJhY2t3YXJkcyBzbyB3ZSBjYW4g
cmV2ZXJzZSB0aGUgd2hvbGUKKyAgICAgICAgICAgICMgbGlzdCBpbiB0aGUgZW5kIGFuZCBnZXQg
YWxsIGF0dHJpYnV0ZXMgaW4gdGhlIG9yZGVyIHRoZXkgaGF2ZQorICAgICAgICAgICAgIyBiZWVu
IGRlZmluZWQuCisgICAgICAgICAgICBmb3IgYSBpbiByZXZlcnNlZChzdWJfYXR0cnMpOgorICAg
ICAgICAgICAgICAgIHByZXZfYSA9IHRha2VuX2F0dHJfbmFtZXMuZ2V0KGEubmFtZSkKKyAgICAg
ICAgICAgICAgICBpZiBwcmV2X2EgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc3VwZXJf
YXR0cnMuYXBwZW5kKGEpCisgICAgICAgICAgICAgICAgICAgIHRha2VuX2F0dHJfbmFtZXNbYS5u
YW1lXSA9IGEKKyAgICAgICAgICAgICAgICBlbGlmIHByZXZfYSA9PSBhOgorICAgICAgICAgICAg
ICAgICAgICAjIFRoaXMgaGFwcGVucyB0aHJ1IG11bHRpcGxlIGluaGVyaXRhbmNlLiAgV2UgZG9u
J3Qgd2FudAorICAgICAgICAgICAgICAgICAgICAjIHRvIGZhdm9yIGF0dHJpYnV0ZXMgdGhhdCBh
cmUgZnVydGhlciBkb3duIGluIHRoZSB0cmVlCisgICAgICAgICAgICAgICAgICAgICMgc28gd2Ug
bW92ZSB0aGVtIHRvIHRoZSBiYWNrLgorICAgICAgICAgICAgICAgICAgICBzdXBlcl9hdHRycy5y
ZW1vdmUoYSkKKyAgICAgICAgICAgICAgICAgICAgc3VwZXJfYXR0cnMuYXBwZW5kKGEpCisKKyAg
ICAjIE5vdyByZXZlcnNlIHRoZSBsaXN0LCBzdWNoIHRoYXQgdGhlIGF0dHJpYnV0ZXMgYXJlIHNv
cnRlZCBieSAqZGVzY2VuZGluZyoKKyAgICAjIGFnZS4gIElPVzogdGhlIG9sZGVzdCBhdHRyaWJ1
dGUgZGVmaW5pdGlvbiBpcyBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KKyAgICBzdXBlcl9hdHRy
cy5yZXZlcnNlKCkKKworICAgIGF0dHJfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGluIHN1cGVyX2F0
dHJzICsgbm9uX3N1cGVyX2F0dHJzXQorCisgICAgQXR0cnNDbGFzcyA9IF9tYWtlX2F0dHJfdHVw
bGVfY2xhc3MoY2xzLl9fbmFtZV9fLCBhdHRyX25hbWVzKQorCisgICAgYXR0cnMgPSBBdHRyc0Ns
YXNzKAorICAgICAgICBzdXBlcl9hdHRycyArIFsKKyAgICAgICAgICAgIEF0dHJpYnV0ZS5mcm9t
X2NvdW50aW5nX2F0dHIoCisgICAgICAgICAgICAgICAgbmFtZT1hdHRyX25hbWUsCisgICAgICAg
ICAgICAgICAgY2E9Y2EsCisgICAgICAgICAgICAgICAgdHlwZT1hbm5zLmdldChhdHRyX25hbWUp
CisgICAgICAgICAgICApCisgICAgICAgICAgICBmb3IgYXR0cl9uYW1lLCBjYQorICAgICAgICAg
ICAgaW4gY2FfbGlzdAorICAgICAgICBdCisgICAgKQorCisgICAgaGFkX2RlZmF1bHQgPSBGYWxz
ZQorICAgIGZvciBhIGluIGF0dHJzOgorICAgICAgICBpZiBoYWRfZGVmYXVsdCBpcyBUcnVlIGFu
ZCBhLmRlZmF1bHQgaXMgTk9USElORyBhbmQgYS5pbml0IGlzIFRydWU6CisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJObyBtYW5kYXRvcnkgYXR0cmlidXRl
cyBhbGxvd2VkIGFmdGVyIGFuIGF0dHJpYnV0ZSB3aXRoIGEgIgorICAgICAgICAgICAgICAgICJk
ZWZhdWx0IHZhbHVlIG9yIGZhY3RvcnkuICBBdHRyaWJ1dGUgaW4gcXVlc3Rpb246IHthIXJ9Igor
ICAgICAgICAgICAgICAgIC5mb3JtYXQoYT1hKQorICAgICAgICAgICAgKQorICAgICAgICBlbGlm
IGhhZF9kZWZhdWx0IGlzIEZhbHNlIGFuZCBcCisgICAgICAgICAgICAgICAgYS5kZWZhdWx0IGlz
IG5vdCBOT1RISU5HIGFuZCBcCisgICAgICAgICAgICAgICAgYS5pbml0IGlzIG5vdCBGYWxzZToK
KyAgICAgICAgICAgIGhhZF9kZWZhdWx0ID0gVHJ1ZQorCisgICAgcmV0dXJuIF9BdHRyaWJ1dGVz
KChhdHRycywgc3VwZXJfYXR0cnMpKQorCisKK2RlZiBfZnJvemVuX3NldGF0dHJzKHNlbGYsIG5h
bWUsIHZhbHVlKToKKyAgICAiIiIKKyAgICBBdHRhY2hlZCB0byBmcm96ZW4gY2xhc3NlcyBhcyBf
X3NldGF0dHJfXy4KKyAgICAiIiIKKyAgICByYWlzZSBGcm96ZW5JbnN0YW5jZUVycm9yKCkKKwor
CitkZWYgX2Zyb3plbl9kZWxhdHRycyhzZWxmLCBuYW1lKToKKyAgICAiIiIKKyAgICBBdHRhY2hl
ZCB0byBmcm96ZW4gY2xhc3NlcyBhcyBfX2RlbGF0dHJfXy4KKyAgICAiIiIKKyAgICByYWlzZSBG
cm96ZW5JbnN0YW5jZUVycm9yKCkKKworCitjbGFzcyBfQ2xhc3NCdWlsZGVyKG9iamVjdCk6Cisg
ICAgIiIiCisgICAgSXRlcmF0aXZlbHkgYnVpbGQgKm9uZSogY2xhc3MuCisgICAgIiIiCisgICAg
X19zbG90c19fID0gKAorICAgICAgICAiX2NscyIsICJfY2xzX2RpY3QiLCAiX2F0dHJzIiwgIl9z
dXBlcl9uYW1lcyIsICJfYXR0cl9uYW1lcyIsICJfc2xvdHMiLAorICAgICAgICAiX2Zyb3plbiIs
ICJfaGFzX3Bvc3RfaW5pdCIsCisgICAgKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNscywg
dGhlc2UsIHNsb3RzLCBmcm96ZW4sIGF1dG9fYXR0cmlicyk6CisgICAgICAgIGF0dHJzLCBzdXBl
cl9hdHRycyA9IF90cmFuc2Zvcm1fYXR0cnMoY2xzLCB0aGVzZSwgYXV0b19hdHRyaWJzKQorCisg
ICAgICAgIHNlbGYuX2NscyA9IGNscworICAgICAgICBzZWxmLl9jbHNfZGljdCA9IGRpY3QoY2xz
Ll9fZGljdF9fKSBpZiBzbG90cyBlbHNlIHt9CisgICAgICAgIHNlbGYuX2F0dHJzID0gYXR0cnMK
KyAgICAgICAgc2VsZi5fc3VwZXJfbmFtZXMgPSBzZXQoYS5uYW1lIGZvciBhIGluIHN1cGVyX2F0
dHJzKQorICAgICAgICBzZWxmLl9hdHRyX25hbWVzID0gdHVwbGUoYS5uYW1lIGZvciBhIGluIGF0
dHJzKQorICAgICAgICBzZWxmLl9zbG90cyA9IHNsb3RzCisgICAgICAgIHNlbGYuX2Zyb3plbiA9
IGZyb3plbiBvciBfaGFzX2Zyb3plbl9zdXBlcmNsYXNzKGNscykKKyAgICAgICAgc2VsZi5faGFz
X3Bvc3RfaW5pdCA9IGJvb2woZ2V0YXR0cihjbHMsICJfX2F0dHJzX3Bvc3RfaW5pdF9fIiwgRmFs
c2UpKQorCisgICAgICAgIHNlbGYuX2Nsc19kaWN0WyJfX2F0dHJzX2F0dHJzX18iXSA9IHNlbGYu
X2F0dHJzCisKKyAgICAgICAgaWYgZnJvemVuOgorICAgICAgICAgICAgc2VsZi5fY2xzX2RpY3Rb
Il9fc2V0YXR0cl9fIl0gPSBfZnJvemVuX3NldGF0dHJzCisgICAgICAgICAgICBzZWxmLl9jbHNf
ZGljdFsiX19kZWxhdHRyX18iXSA9IF9mcm96ZW5fZGVsYXR0cnMKKworICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8X0NsYXNzQnVpbGRlcihjbHM9e2Nsc30pPiIuZm9y
bWF0KGNscz1zZWxmLl9jbHMuX19uYW1lX18pCisKKyAgICBkZWYgYnVpbGRfY2xhc3Moc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBGaW5hbGl6ZSBjbGFzcyBiYXNlZCBvbiB0aGUgYWNjdW11
bGF0ZWQgY29uZmlndXJhdGlvbi4KKworICAgICAgICBCdWlsZGVyIGNhbm5vdCBiZSB1c2VkIGFu
eW1vcmUgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IHNlbGYuX3Nsb3RzIGlzIFRydWU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY3JlYXRlX3Ns
b3RzX2NsYXNzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXRj
aF9vcmlnaW5hbF9jbGFzcygpCisKKyAgICBkZWYgX3BhdGNoX29yaWdpbmFsX2NsYXNzKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgQXBwbHkgYWNjdW11bGF0ZWQgbWV0aG9kcyBhbmQgcmV0
dXJuIHRoZSBjbGFzcy4KKyAgICAgICAgIiIiCisgICAgICAgIGNscyA9IHNlbGYuX2NscworICAg
ICAgICBzdXBlcl9uYW1lcyA9IHNlbGYuX3N1cGVyX25hbWVzCisKKyAgICAgICAgIyBDbGVhbiBj
bGFzcyBvZiBhdHRyaWJ1dGUgZGVmaW5pdGlvbnMgKGBhdHRyLmliKClgcykuCisgICAgICAgIGZv
ciBuYW1lIGluIHNlbGYuX2F0dHJfbmFtZXM6CisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBz
dXBlcl9uYW1lcyBhbmQgXAorICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGNscywgbmFtZSwg
Tm9uZSkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZGVsYXR0cihjbHMsIG5hbWUpCisK
KyAgICAgICAgIyBBdHRhY2ggb3VyIGR1bmRlciBtZXRob2RzLgorICAgICAgICBmb3IgbmFtZSwg
dmFsdWUgaW4gc2VsZi5fY2xzX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgIHNldGF0dHIoY2xz
LCBuYW1lLCB2YWx1ZSkKKworICAgICAgICByZXR1cm4gY2xzCisKKyAgICBkZWYgX2NyZWF0ZV9z
bG90c19jbGFzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEJ1aWxkIGFuZCByZXR1cm4g
YSBuZXcgY2xhc3Mgd2l0aCBhIGBfX3Nsb3RzX19gIGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHN1cGVyX25hbWVzID0gc2VsZi5fc3VwZXJfbmFtZXMKKyAgICAgICAgY2QgPSB7Cisg
ICAgICAgICAgICBrOiB2CisgICAgICAgICAgICBmb3IgaywgdiBpbiBpdGVyaXRlbXMoc2VsZi5f
Y2xzX2RpY3QpCisgICAgICAgICAgICBpZiBrIG5vdCBpbiB0dXBsZShzZWxmLl9hdHRyX25hbWVz
KSArICgiX19kaWN0X18iLCkKKyAgICAgICAgfQorCisgICAgICAgICMgV2Ugb25seSBhZGQgdGhl
IG5hbWVzIG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmVuJ3QgaW5oZXJpdGVkLgorICAgICAgICAjIFNl
dHRpbmdzIF9fc2xvdHNfXyB0byBpbmhlcml0ZWQgYXR0cmlidXRlcyB3YXN0ZXMgbWVtb3J5Lgor
ICAgICAgICBjZFsiX19zbG90c19fIl0gPSB0dXBsZSgKKyAgICAgICAgICAgIG5hbWUKKyAgICAg
ICAgICAgIGZvciBuYW1lIGluIHNlbGYuX2F0dHJfbmFtZXMKKyAgICAgICAgICAgIGlmIG5hbWUg
bm90IGluIHN1cGVyX25hbWVzCisgICAgICAgICkKKworICAgICAgICBxdWFsbmFtZSA9IGdldGF0
dHIoc2VsZi5fY2xzLCAiX19xdWFsbmFtZV9fIiwgTm9uZSkKKyAgICAgICAgaWYgcXVhbG5hbWUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBjZFsiX19xdWFsbmFtZV9fIl0gPSBxdWFsbmFtZQor
CisgICAgICAgIGF0dHJfbmFtZXMgPSB0dXBsZShzZWxmLl9hdHRyX25hbWVzKQorCisgICAgICAg
IGRlZiBzbG90c19nZXRzdGF0ZShzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
QXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgorICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICByZXR1cm4gdHVwbGUoZ2V0YXR0cihzZWxmLCBuYW1lKSBmb3IgbmFtZSBpbiBhdHRyX25h
bWVzKQorCisgICAgICAgIGRlZiBzbG90c19zZXRzdGF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgX19ib3VuZF9zZXRhdHRyID0gX29ial9zZXRhdHRy
Ll9fZ2V0X18oc2VsZiwgQXR0cmlidXRlKQorICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGlu
IHppcChhdHRyX25hbWVzLCBzdGF0ZSk6CisgICAgICAgICAgICAgICAgX19ib3VuZF9zZXRhdHRy
KG5hbWUsIHZhbHVlKQorCisgICAgICAgICMgc2xvdHMgYW5kIGZyb3plbiByZXF1aXJlIF9fZ2V0
c3RhdGVfXy9fX3NldHN0YXRlX18gdG8gd29yaworICAgICAgICBjZFsiX19nZXRzdGF0ZV9fIl0g
PSBzbG90c19nZXRzdGF0ZQorICAgICAgICBjZFsiX19zZXRzdGF0ZV9fIl0gPSBzbG90c19zZXRz
dGF0ZQorCisgICAgICAgICMgQ3JlYXRlIG5ldyBjbGFzcyBiYXNlZCBvbiBvbGQgY2xhc3MgYW5k
IG91ciBtZXRob2RzLgorICAgICAgICBjbHMgPSB0eXBlKHNlbGYuX2NscykoCisgICAgICAgICAg
ICBzZWxmLl9jbHMuX19uYW1lX18sCisgICAgICAgICAgICBzZWxmLl9jbHMuX19iYXNlc19fLAor
ICAgICAgICAgICAgY2QsCisgICAgICAgICkKKworICAgICAgICAjIFRoZSBmb2xsb3dpbmcgaXMg
YSBmaXggZm9yCisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRy
cy9pc3N1ZXMvMTAyLiAgT24gUHl0aG9uIDMsCisgICAgICAgICMgaWYgYSBtZXRob2QgbWVudGlv
bnMgYF9fY2xhc3NfX2Agb3IgdXNlcyB0aGUgbm8tYXJnIHN1cGVyKCksIHRoZQorICAgICAgICAj
IGNvbXBpbGVyIHdpbGwgYmFrZSBhIHJlZmVyZW5jZSB0byB0aGUgY2xhc3MgaW4gdGhlIG1ldGhv
ZCBpdHNlbGYKKyAgICAgICAgIyBhcyBgbWV0aG9kLl9fY2xvc3VyZV9fYC4gIFNpbmNlIHdlIHJl
cGxhY2UgdGhlIGNsYXNzIHdpdGggYQorICAgICAgICAjIGNsb25lLCB3ZSByZXdyaXRlIHRoZXNl
IHJlZmVyZW5jZXMgc28gaXQga2VlcHMgd29ya2luZy4KKyAgICAgICAgZm9yIGl0ZW0gaW4gY2xz
Ll9fZGljdF9fLnZhbHVlcygpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCAoY2xh
c3NtZXRob2QsIHN0YXRpY21ldGhvZCkpOgorICAgICAgICAgICAgICAgICMgQ2xhc3MtIGFuZCBz
dGF0aWNtZXRob2RzIGhpZGUgdGhlaXIgZnVuY3Rpb25zIGluc2lkZS4KKyAgICAgICAgICAgICAg
ICAjIFRoZXNlIG1pZ2h0IG5lZWQgdG8gYmUgcmV3cml0dGVuIGFzIHdlbGwuCisgICAgICAgICAg
ICAgICAgY2xvc3VyZV9jZWxscyA9IGdldGF0dHIoaXRlbS5fX2Z1bmNfXywgIl9fY2xvc3VyZV9f
IiwgTm9uZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2xvc3VyZV9jZWxs
cyA9IGdldGF0dHIoaXRlbSwgIl9fY2xvc3VyZV9fIiwgTm9uZSkKKworICAgICAgICAgICAgaWYg
bm90IGNsb3N1cmVfY2VsbHM6ICAjIENhdGNoIE5vbmUgb3IgdGhlIGVtcHR5IGxpc3QuCisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGZvciBjZWxsIGluIGNsb3N1cmVfY2Vs
bHM6CisgICAgICAgICAgICAgICAgaWYgY2VsbC5jZWxsX2NvbnRlbnRzIGlzIHNlbGYuX2NsczoK
KyAgICAgICAgICAgICAgICAgICAgc2V0X2Nsb3N1cmVfY2VsbChjZWxsLCBjbHMpCisKKyAgICAg
ICAgcmV0dXJuIGNscworCisgICAgZGVmIGFkZF9yZXByKHNlbGYsIG5zKToKKyAgICAgICAgc2Vs
Zi5fY2xzX2RpY3RbIl9fcmVwcl9fIl0gPSBfbWFrZV9yZXByKHNlbGYuX2F0dHJzLCBucz1ucykK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBhZGRfc3RyKHNlbGYpOgorICAgICAgICBy
ZXByXyA9IHNlbGYuX2Nsc19kaWN0LmdldCgiX19yZXByX18iKQorICAgICAgICBpZiByZXByXyBp
cyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAi
X19zdHJfXyBjYW4gb25seSBiZSBnZW5lcmF0ZWQgaWYgYSBfX3JlcHJfXyBleGlzdHMuIgorICAg
ICAgICAgICAgKQorCisgICAgICAgIHNlbGYuX2Nsc19kaWN0WyJfX3N0cl9fIl0gPSByZXByXwor
ICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG1ha2VfdW5oYXNoYWJsZShzZWxmKToKKyAg
ICAgICAgc2VsZi5fY2xzX2RpY3RbIl9faGFzaF9fIl0gPSBOb25lCisgICAgICAgIHJldHVybiBz
ZWxmCisKKyAgICBkZWYgYWRkX2hhc2goc2VsZik6CisgICAgICAgIHNlbGYuX2Nsc19kaWN0WyJf
X2hhc2hfXyJdID0gX21ha2VfaGFzaChzZWxmLl9hdHRycykKKyAgICAgICAgcmV0dXJuIHNlbGYK
KworICAgIGRlZiBhZGRfaW5pdChzZWxmKToKKyAgICAgICAgc2VsZi5fY2xzX2RpY3RbIl9faW5p
dF9fIl0gPSBfbWFrZV9pbml0KAorICAgICAgICAgICAgc2VsZi5fYXR0cnMsCisgICAgICAgICAg
ICBzZWxmLl9oYXNfcG9zdF9pbml0LAorICAgICAgICAgICAgc2VsZi5fZnJvemVuLAorICAgICAg
ICApCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgYWRkX2NtcChzZWxmKToKKyAgICAg
ICAgY2QgPSBzZWxmLl9jbHNfZGljdAorCisgICAgICAgIGNkWyJfX2VxX18iXSwgY2RbIl9fbmVf
XyJdLCBjZFsiX19sdF9fIl0sIGNkWyJfX2xlX18iXSwgY2RbIl9fZ3RfXyJdLCBcCisgICAgICAg
ICAgICBjZFsiX19nZV9fIl0gPSBfbWFrZV9jbXAoc2VsZi5fYXR0cnMpCisKKyAgICAgICAgcmV0
dXJuIHNlbGYKKworCitkZWYgYXR0cnMobWF5YmVfY2xzPU5vbmUsIHRoZXNlPU5vbmUsIHJlcHJf
bnM9Tm9uZSwKKyAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9
VHJ1ZSwKKyAgICAgICAgICBzbG90cz1GYWxzZSwgZnJvemVuPUZhbHNlLCBzdHI9RmFsc2UsIGF1
dG9fYXR0cmlicz1GYWxzZSk6CisgICAgciIiIgorICAgIEEgY2xhc3MgZGVjb3JhdG9yIHRoYXQg
YWRkcyBgZHVuZGVyCisgICAgPGh0dHBzOi8vd2lraS5weXRob24ub3JnL21vaW4vRHVuZGVyQWxp
YXM+YF9cIC1tZXRob2RzIGFjY29yZGluZyB0byB0aGUKKyAgICBzcGVjaWZpZWQgYXR0cmlidXRl
cyB1c2luZyA6ZnVuYzpgYXR0ci5pYmAgb3IgdGhlICp0aGVzZSogYXJndW1lbnQuCisKKyAgICA6
cGFyYW0gdGhlc2U6IEEgZGljdGlvbmFyeSBvZiBuYW1lIHRvIDpmdW5jOmBhdHRyLmliYCBtYXBw
aW5ncy4gIFRoaXMgaXMKKyAgICAgICAgdXNlZnVsIHRvIGF2b2lkIHRoZSBkZWZpbml0aW9uIG9m
IHlvdXIgYXR0cmlidXRlcyB3aXRoaW4gdGhlIGNsYXNzIGJvZHkKKyAgICAgICAgYmVjYXVzZSB5
b3UgY2FuJ3QgKGUuZy4gaWYgeW91IHdhbnQgdG8gYWRkIGBgX19yZXByX19gYCBtZXRob2RzIHRv
CisgICAgICAgIERqYW5nbyBtb2RlbHMpIG9yIGRvbid0IHdhbnQgdG8uCisKKyAgICAgICAgSWYg
KnRoZXNlKiBpcyBub3QgYGBOb25lYGAsIGBgYXR0cnNgYCB3aWxsICpub3QqIHNlYXJjaCB0aGUg
Y2xhc3MgYm9keQorICAgICAgICBmb3IgYXR0cmlidXRlcy4KKworICAgIDp0eXBlIHRoZXNlOiA6
Y2xhc3M6YGRpY3RgIG9mIDpjbGFzczpgc3RyYCB0byA6ZnVuYzpgYXR0ci5pYmAKKworICAgIDpw
YXJhbSBzdHIgcmVwcl9uczogV2hlbiB1c2luZyBuZXN0ZWQgY2xhc3NlcywgdGhlcmUncyBubyB3
YXkgaW4gUHl0aG9uIDIKKyAgICAgICAgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhhdC4gIFRo
ZXJlZm9yZSBpdCdzIHBvc3NpYmxlIHRvIHNldCB0aGUKKyAgICAgICAgbmFtZXNwYWNlIGV4cGxp
Y2l0bHkgZm9yIGEgbW9yZSBtZWFuaW5nZnVsIGBgcmVwcmBgIG91dHB1dC4KKyAgICA6cGFyYW0g
Ym9vbCByZXByOiBDcmVhdGUgYSBgYF9fcmVwcl9fYGAgbWV0aG9kIHdpdGggYSBodW1hbiByZWFk
YWJsZQorICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBgYGF0dHJzYGAgYXR0cmlidXRlcy4uCisg
ICAgOnBhcmFtIGJvb2wgc3RyOiBDcmVhdGUgYSBgYF9fc3RyX19gYCBtZXRob2QgdGhhdCBpcyBp
ZGVudGljYWwgdG8KKyAgICAgICAgYGBfX3JlcHJfX2BgLiAgVGhpcyBpcyB1c3VhbGx5IG5vdCBu
ZWNlc3NhcnkgZXhjZXB0IGZvcgorICAgICAgICA6Y2xhc3M6YEV4Y2VwdGlvbmBcIHMuCisgICAg
OnBhcmFtIGJvb2wgY21wOiBDcmVhdGUgYGBfX2VxX19gYCwgYGBfX25lX19gYCwgYGBfX2x0X19g
YCwgYGBfX2xlX19gYCwKKyAgICAgICAgYGBfX2d0X19gYCwgYW5kIGBgX19nZV9fYGAgbWV0aG9k
cyB0aGF0IGNvbXBhcmUgdGhlIGNsYXNzIGFzIGlmIGl0IHdlcmUKKyAgICAgICAgYSB0dXBsZSBv
ZiBpdHMgYGBhdHRyc2BgIGF0dHJpYnV0ZXMuICBCdXQgdGhlIGF0dHJpYnV0ZXMgYXJlICpvbmx5
KgorICAgICAgICBjb21wYXJlZCwgaWYgdGhlIHR5cGUgb2YgYm90aCBjbGFzc2VzIGlzICppZGVu
dGljYWwqIQorICAgIDpwYXJhbSBoYXNoOiBJZiBgYE5vbmVgYCAoZGVmYXVsdCksIHRoZSBgYF9f
aGFzaF9fYGAgbWV0aG9kIGlzIGdlbmVyYXRlZAorICAgICAgICBhY2NvcmRpbmcgaG93ICpjbXAq
IGFuZCAqZnJvemVuKiBhcmUgc2V0LgorCisgICAgICAgIDEuIElmICpib3RoKiBhcmUgVHJ1ZSwg
YGBhdHRyc2BgIHdpbGwgZ2VuZXJhdGUgYSBgYF9faGFzaF9fYGAgZm9yIHlvdS4KKyAgICAgICAg
Mi4gSWYgKmNtcCogaXMgVHJ1ZSBhbmQgKmZyb3plbiogaXMgRmFsc2UsIGBgX19oYXNoX19gYCB3
aWxsIGJlIHNldCB0bworICAgICAgICAgICBOb25lLCBtYXJraW5nIGl0IHVuaGFzaGFibGUgKHdo
aWNoIGl0IGlzKS4KKyAgICAgICAgMy4gSWYgKmNtcCogaXMgRmFsc2UsIGBgX19oYXNoX19gYCB3
aWxsIGJlIGxlZnQgdW50b3VjaGVkIG1lYW5pbmcgdGhlCisgICAgICAgICAgIGBgX19oYXNoX19g
YCBtZXRob2Qgb2YgdGhlIHN1cGVyY2xhc3Mgd2lsbCBiZSB1c2VkIChpZiBzdXBlcmNsYXNzIGlz
CisgICAgICAgICAgIGBgb2JqZWN0YGAsIHRoaXMgbWVhbnMgaXQgd2lsbCBmYWxsIGJhY2sgdG8g
aWQtYmFzZWQgaGFzaGluZy4pLgorCisgICAgICAgIEFsdGhvdWdoIG5vdCByZWNvbW1lbmRlZCwg
eW91IGNhbiBkZWNpZGUgZm9yIHlvdXJzZWxmIGFuZCBmb3JjZQorICAgICAgICBgYGF0dHJzYGAg
dG8gY3JlYXRlIG9uZSAoZS5nLiBpZiB0aGUgY2xhc3MgaXMgaW1tdXRhYmxlIGV2ZW4gdGhvdWdo
IHlvdQorICAgICAgICBkaWRuJ3QgZnJlZXplIGl0IHByb2dyYW1tYXRpY2FsbHkpIGJ5IHBhc3Np
bmcgYGBUcnVlYGAgb3Igbm90LiAgQm90aCBvZgorICAgICAgICB0aGVzZSBjYXNlcyBhcmUgcmF0
aGVyIHNwZWNpYWwgYW5kIHNob3VsZCBiZSB1c2VkIGNhcmVmdWxseS4KKworICAgICAgICBTZWUg
dGhlIGBQeXRob24gZG9jdW1lbnRhdGlvbiBcCisgICAgICAgIDxodHRwczovL2RvY3MucHl0aG9u
Lm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNvYmplY3QuX19oYXNoX18+YF8KKyAgICAg
ICAgYW5kIHRoZSBgR2l0SHViIGlzc3VlIHRoYXQgbGVkIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9y
IFwKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVz
LzEzNj5gXyBmb3IgbW9yZSBkZXRhaWxzLgorICAgIDp0eXBlIGhhc2g6IGBgYm9vbGBgIG9yIGBg
Tm9uZWBgCisgICAgOnBhcmFtIGJvb2wgaW5pdDogQ3JlYXRlIGEgYGBfX2luaXRfX2BgIG1ldGhv
ZCB0aGF0IGluaXRpYWxpemVzIHRoZQorICAgICAgICBgYGF0dHJzYGAgYXR0cmlidXRlcy4gIExl
YWRpbmcgdW5kZXJzY29yZXMgYXJlIHN0cmlwcGVkIGZvciB0aGUKKyAgICAgICAgYXJndW1lbnQg
bmFtZS4gIElmIGEgYGBfX2F0dHJzX3Bvc3RfaW5pdF9fYGAgbWV0aG9kIGV4aXN0cyBvbiB0aGUK
KyAgICAgICAgY2xhc3MsIGl0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBjbGFzcyBpcyBmdWxs
eSBpbml0aWFsaXplZC4KKyAgICA6cGFyYW0gYm9vbCBzbG90czogQ3JlYXRlIGEgc2xvdHNfLXN0
eWxlIGNsYXNzIHRoYXQncyBtb3JlCisgICAgICAgIG1lbW9yeS1lZmZpY2llbnQuICBTZWUgOnJl
Zjpgc2xvdHNgIGZvciBmdXJ0aGVyIHJhbWlmaWNhdGlvbnMuCisgICAgOnBhcmFtIGJvb2wgZnJv
emVuOiBNYWtlIGluc3RhbmNlcyBpbW11dGFibGUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uICBJZgor
ICAgICAgICBzb21lb25lIGF0dGVtcHRzIHRvIG1vZGlmeSBhIGZyb3plbiBpbnN0YW5jZSwKKyAg
ICAgICAgOmV4YzpgYXR0ci5leGNlcHRpb25zLkZyb3plbkluc3RhbmNlRXJyb3JgIGlzIHJhaXNl
ZC4KKworICAgICAgICBQbGVhc2Ugbm90ZToKKworICAgICAgICAgICAgMS4gVGhpcyBpcyBhY2hp
ZXZlZCBieSBpbnN0YWxsaW5nIGEgY3VzdG9tIGBgX19zZXRhdHRyX19gYCBtZXRob2QKKyAgICAg
ICAgICAgICAgIG9uIHlvdXIgY2xhc3Mgc28geW91IGNhbid0IGltcGxlbWVudCBhbiBvd24gb25l
LgorCisgICAgICAgICAgICAyLiBUcnVlIGltbXV0YWJpbGl0eSBpcyBpbXBvc3NpYmxlIGluIFB5
dGhvbi4KKworICAgICAgICAgICAgMy4gVGhpcyAqZG9lcyogaGF2ZSBhIG1pbm9yIGEgcnVudGlt
ZSBwZXJmb3JtYW5jZSA6cmVmOmBpbXBhY3QKKyAgICAgICAgICAgICAgIDxob3ctZnJvemVuPmAg
d2hlbiBpbml0aWFsaXppbmcgbmV3IGluc3RhbmNlcy4gIEluIG90aGVyIHdvcmRzOgorICAgICAg
ICAgICAgICAgYGBfX2luaXRfX2BgIGlzIHNsaWdodGx5IHNsb3dlciB3aXRoIGBgZnJvemVuPVRy
dWVgYC4KKworICAgICAgICAgICAgNC4gSWYgYSBjbGFzcyBpcyBmcm96ZW4sIHlvdSBjYW5ub3Qg
bW9kaWZ5IGBgc2VsZmBgIGluCisgICAgICAgICAgICAgICBgYF9fYXR0cnNfcG9zdF9pbml0X19g
YCBvciBhIHNlbGYtd3JpdHRlbiBgYF9faW5pdF9fYGAuIFlvdSBjYW4KKyAgICAgICAgICAgICAg
IGNpcmN1bXZlbnQgdGhhdCBsaW1pdGF0aW9uIGJ5IHVzaW5nCisgICAgICAgICAgICAgICBgYG9i
amVjdC5fX3NldGF0dHJfXyhzZWxmLCAiYXR0cmlidXRlX25hbWUiLCB2YWx1ZSlgYC4KKworICAg
ICAgICAuLiAgX3Nsb3RzOiBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRh
bW9kZWwuaHRtbCNzbG90cworICAgIDpwYXJhbSBib29sIGF1dG9fYXR0cmliczogSWYgVHJ1ZSwg
Y29sbGVjdCBgUEVQIDUyNmBfLWFubm90YXRlZCBhdHRyaWJ1dGVzCisgICAgICAgIChQeXRob24g
My42IGFuZCBsYXRlciBvbmx5KSBmcm9tIHRoZSBjbGFzcyBib2R5LgorCisgICAgICAgIEluIHRo
aXMgY2FzZSwgeW91ICoqbXVzdCoqIGFubm90YXRlIGV2ZXJ5IGZpZWxkLiAgSWYgYGBhdHRyc2Bg
CisgICAgICAgIGVuY291bnRlcnMgYSBmaWVsZCB0aGF0IGlzIHNldCB0byBhbiA6ZnVuYzpgYXR0
ci5pYmAgYnV0IGxhY2tzIGEgdHlwZQorICAgICAgICBhbm5vdGF0aW9uLCBhbiA6ZXhjOmBhdHRy
LmV4Y2VwdGlvbnMuVW5hbm5vdGF0ZWRBdHRyaWJ1dGVFcnJvcmAgaXMKKyAgICAgICAgcmFpc2Vk
LiAgVXNlIGBgZmllbGRfbmFtZTogdHlwaW5nLkFueSA9IGF0dHIuaWIoLi4uKWBgIGlmIHlvdSBk
b24ndAorICAgICAgICB3YW50IHRvIHNldCBhIHR5cGUuCisKKyAgICAgICAgSWYgeW91IGFzc2ln
biBhIHZhbHVlIHRvIHRob3NlIGF0dHJpYnV0ZXMgKGUuZy4gYGB4OiBpbnQgPSA0MmBgKSwgdGhh
dAorICAgICAgICB2YWx1ZSBiZWNvbWVzIHRoZSBkZWZhdWx0IHZhbHVlIGxpa2UgaWYgaXQgd2Vy
ZSBwYXNzZWQgdXNpbmcKKyAgICAgICAgYGBhdHRyLmliKGRlZmF1bHQ9NDIpYGAuICBQYXNzaW5n
IGFuIGluc3RhbmNlIG9mIDpjbGFzczpgRmFjdG9yeWAgYWxzbworICAgICAgICB3b3JrcyBhcyBl
eHBlY3RlZC4KKworICAgICAgICBBdHRyaWJ1dGVzIGFubm90YXRlZCBhcyA6ZGF0YTpgdHlwaW5n
LkNsYXNzVmFyYCBhcmUgKippZ25vcmVkKiouCisKKyAgICAgICAgLi4gX2BQRVAgNTI2YDogaHR0
cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8KKworICAgIC4uICB2ZXJzaW9u
YWRkZWQ6OiAxNi4wLjAgKnNsb3RzKgorICAgIC4uICB2ZXJzaW9uYWRkZWQ6OiAxNi4xLjAgKmZy
b3plbioKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMy4wICpzdHIqLCBhbmQgc3VwcG9ydCBm
b3IgYGBfX2F0dHJzX3Bvc3RfaW5pdF9fYGAuCisgICAgLi4gIHZlcnNpb25jaGFuZ2VkOjoKKyAg
ICAgICAgICAgIDE3LjEuMCAqaGFzaCogc3VwcG9ydHMgYGBOb25lYGAgYXMgdmFsdWUgd2hpY2gg
aXMgYWxzbyB0aGUgZGVmYXVsdAorICAgICAgICAgICAgbm93LgorICAgIC4uIHZlcnNpb25hZGRl
ZDo6IDE3LjMuMCAqYXV0b19hdHRyaWJzKgorICAgICIiIgorICAgIGRlZiB3cmFwKGNscyk6Cisg
ICAgICAgIGlmIGdldGF0dHIoY2xzLCAiX19jbGFzc19fIiwgTm9uZSkgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXR0cnMgb25seSB3b3JrcyB3aXRoIG5ldy1zdHlsZSBj
bGFzc2VzLiIpCisKKyAgICAgICAgYnVpbGRlciA9IF9DbGFzc0J1aWxkZXIoY2xzLCB0aGVzZSwg
c2xvdHMsIGZyb3plbiwgYXV0b19hdHRyaWJzKQorCisgICAgICAgIGlmIHJlcHIgaXMgVHJ1ZToK
KyAgICAgICAgICAgIGJ1aWxkZXIuYWRkX3JlcHIocmVwcl9ucykKKyAgICAgICAgaWYgc3RyIGlz
IFRydWU6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9zdHIoKQorICAgICAgICBpZiBjbXAgaXMg
VHJ1ZToKKyAgICAgICAgICAgIGJ1aWxkZXIuYWRkX2NtcCgpCisKKyAgICAgICAgaWYgaGFzaCBp
cyBub3QgVHJ1ZSBhbmQgaGFzaCBpcyBub3QgRmFsc2UgYW5kIGhhc2ggaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAjIENhbid0IHVzZSBgaGFzaCBpbmAgYmVjYXVzZSAxID09IFRydWUgZm9yIGV4
YW1wbGUuCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIklu
dmFsaWQgdmFsdWUgZm9yIGhhc2guICBNdXN0IGJlIFRydWUsIEZhbHNlLCBvciBOb25lLiIKKyAg
ICAgICAgICAgICkKKyAgICAgICAgZWxpZiBoYXNoIGlzIEZhbHNlIG9yIChoYXNoIGlzIE5vbmUg
YW5kIGNtcCBpcyBGYWxzZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgaGFzaCBp
cyBUcnVlIG9yIChoYXNoIGlzIE5vbmUgYW5kIGNtcCBpcyBUcnVlIGFuZCBmcm96ZW4gaXMgVHJ1
ZSk6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9oYXNoKCkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGJ1aWxkZXIubWFrZV91bmhhc2hhYmxlKCkKKworICAgICAgICBpZiBpbml0IGlzIFRy
dWU6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9pbml0KCkKKworICAgICAgICByZXR1cm4gYnVp
bGRlci5idWlsZF9jbGFzcygpCisKKyAgICAjIG1heWJlX2NscydzIHR5cGUgZGVwZW5kcyBvbiB0
aGUgdXNhZ2Ugb2YgdGhlIGRlY29yYXRvci4gIEl0J3MgYSBjbGFzcworICAgICMgaWYgaXQncyB1
c2VkIGFzIGBAYXR0cnNgIGJ1dCBgYE5vbmVgYCBpZiB1c2VkIGFzIGBAYXR0cnMoKWAuCisgICAg
aWYgbWF5YmVfY2xzIGlzIE5vbmU6CisgICAgICAgIHJldHVybiB3cmFwCisgICAgZWxzZToKKyAg
ICAgICAgcmV0dXJuIHdyYXAobWF5YmVfY2xzKQorCisKK19hdHRycyA9IGF0dHJzCisiIiIKK0lu
dGVybmFsIGFsaWFzIHNvIHdlIGNhbiB1c2UgaXQgaW4gZnVuY3Rpb25zIHRoYXQgdGFrZSBhbiBh
cmd1bWVudCBjYWxsZWQKKyphdHRycyouCisiIiIKKworCitpZiBQWTI6CisgICAgZGVmIF9oYXNf
ZnJvemVuX3N1cGVyY2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHdoZXRo
ZXIgKmNscyogaGFzIGEgZnJvemVuIGFuY2VzdG9yIGJ5IGxvb2tpbmcgYXQgaXRzCisgICAgICAg
IF9fc2V0YXR0cl9fLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAg
IGdldGF0dHIoCisgICAgICAgICAgICAgICAgY2xzLl9fc2V0YXR0cl9fLCAiX19tb2R1bGVfXyIs
IE5vbmUKKyAgICAgICAgICAgICkgPT0gX2Zyb3plbl9zZXRhdHRycy5fX21vZHVsZV9fIGFuZAor
ICAgICAgICAgICAgY2xzLl9fc2V0YXR0cl9fLl9fbmFtZV9fID09IF9mcm96ZW5fc2V0YXR0cnMu
X19uYW1lX18KKyAgICAgICAgKQorZWxzZToKKyAgICBkZWYgX2hhc19mcm96ZW5fc3VwZXJjbGFz
cyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2hlY2sgd2hldGhlciAqY2xzKiBoYXMgYSBm
cm96ZW4gYW5jZXN0b3IgYnkgbG9va2luZyBhdCBpdHMKKyAgICAgICAgX19zZXRhdHRyX18uCisg
ICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzLl9fc2V0YXR0cl9fID09IF9mcm96ZW5fc2V0
YXR0cnMKKworCitkZWYgX2F0dHJzX3RvX3R1cGxlKG9iaiwgYXR0cnMpOgorICAgICIiIgorICAg
IENyZWF0ZSBhIHR1cGxlIG9mIGFsbCB2YWx1ZXMgb2YgKm9iaioncyAqYXR0cnMqLgorICAgICIi
IgorICAgIHJldHVybiB0dXBsZShnZXRhdHRyKG9iaiwgYS5uYW1lKSBmb3IgYSBpbiBhdHRycykK
KworCitkZWYgX21ha2VfaGFzaChhdHRycyk6CisgICAgYXR0cnMgPSB0dXBsZSgKKyAgICAgICAg
YQorICAgICAgICBmb3IgYSBpbiBhdHRycworICAgICAgICBpZiBhLmhhc2ggaXMgVHJ1ZSBvciAo
YS5oYXNoIGlzIE5vbmUgYW5kIGEuY21wIGlzIFRydWUpCisgICAgKQorCisgICAgIyBXZSBjYWNo
ZSB0aGUgZ2VuZXJhdGVkIGluaXQgbWV0aG9kcyBmb3IgdGhlIHNhbWUga2luZHMgb2YgYXR0cmli
dXRlcy4KKyAgICBzaGExID0gaGFzaGxpYi5zaGExKCkKKyAgICBzaGExLnVwZGF0ZShyZXByKGF0
dHJzKS5lbmNvZGUoInV0Zi04IikpCisgICAgdW5pcXVlX2ZpbGVuYW1lID0gIjxhdHRycyBnZW5l
cmF0ZWQgaGFzaCAlcz4iICUgKHNoYTEuaGV4ZGlnZXN0KCksKQorICAgIHR5cGVfaGFzaCA9IGhh
c2godW5pcXVlX2ZpbGVuYW1lKQorICAgIGxpbmVzID0gWworICAgICAgICAiZGVmIF9faGFzaF9f
KHNlbGYpOiIsCisgICAgICAgICIgICAgcmV0dXJuIGhhc2goKCIsCisgICAgICAgICIgICAgICAg
ICVkLCIgJSAodHlwZV9oYXNoLCksCisgICAgXQorICAgIGZvciBhIGluIGF0dHJzOgorICAgICAg
ICBsaW5lcy5hcHBlbmQoIiAgICAgICAgc2VsZi4lcywiICUgKGEubmFtZSkpCisKKyAgICBsaW5l
cy5hcHBlbmQoIiAgICApKSIpCisKKyAgICBzY3JpcHQgPSAiXG4iLmpvaW4obGluZXMpCisgICAg
Z2xvYnMgPSB7fQorICAgIGxvY3MgPSB7fQorICAgIGJ5dGVjb2RlID0gY29tcGlsZShzY3JpcHQs
IHVuaXF1ZV9maWxlbmFtZSwgImV4ZWMiKQorICAgIGV2YWwoYnl0ZWNvZGUsIGdsb2JzLCBsb2Nz
KQorCisgICAgIyBJbiBvcmRlciBvZiBkZWJ1Z2dlcnMgbGlrZSBQREIgYmVpbmcgYWJsZSB0byBz
dGVwIHRocm91Z2ggdGhlIGNvZGUsCisgICAgIyB3ZSBhZGQgYSBmYWtlIGxpbmVjYWNoZSBlbnRy
eS4KKyAgICBsaW5lY2FjaGUuY2FjaGVbdW5pcXVlX2ZpbGVuYW1lXSA9ICgKKyAgICAgICAgbGVu
KHNjcmlwdCksCisgICAgICAgIE5vbmUsCisgICAgICAgIHNjcmlwdC5zcGxpdGxpbmVzKFRydWUp
LAorICAgICAgICB1bmlxdWVfZmlsZW5hbWUsCisgICAgKQorCisgICAgcmV0dXJuIGxvY3NbIl9f
aGFzaF9fIl0KKworCitkZWYgX2FkZF9oYXNoKGNscywgYXR0cnMpOgorICAgICIiIgorICAgIEFk
ZCBhIGhhc2ggbWV0aG9kIHRvICpjbHMqLgorICAgICIiIgorICAgIGNscy5fX2hhc2hfXyA9IF9t
YWtlX2hhc2goYXR0cnMpCisgICAgcmV0dXJuIGNscworCisKK2RlZiBfbWFrZV9jbXAoYXR0cnMp
OgorICAgIGF0dHJzID0gW2EgZm9yIGEgaW4gYXR0cnMgaWYgYS5jbXBdCisKKyAgICBkZWYgYXR0
cnNfdG9fdHVwbGUob2JqKToKKyAgICAgICAgIiIiCisgICAgICAgIFNhdmUgdXMgc29tZSB0eXBp
bmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gX2F0dHJzX3RvX3R1cGxlKG9iaiwgYXR0
cnMpCisKKyAgICBkZWYgZXEoc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQXV0
b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgb3Ro
ZXIuX19jbGFzc19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgICAgICAgICAgcmV0dXJuIGF0dHJz
X3RvX3R1cGxlKHNlbGYpID09IGF0dHJzX3RvX3R1cGxlKG90aGVyKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgbmUoc2VsZiwgb3Ro
ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJz
LgorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZXEoc2VsZiwgb3RoZXIpCisgICAgICAg
IGlmIHJlc3VsdCBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBs
ZW1lbnRlZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG5vdCByZXN1bHQKKwor
ICAgIGRlZiBsdChzZWxmLCBvdGhlcik6CisgICAgICAgICIiIgorICAgICAgICBBdXRvbWF0aWNh
bGx5IGNyZWF0ZWQgYnkgYXR0cnMuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNl
KG90aGVyLCBzZWxmLl9fY2xhc3NfXyk6CisgICAgICAgICAgICByZXR1cm4gYXR0cnNfdG9fdHVw
bGUoc2VsZikgPCBhdHRyc190b190dXBsZShvdGhlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgZGVmIGxlKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgIiIiCisgICAgICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKToKKyAg
ICAgICAgICAgIHJldHVybiBhdHRyc190b190dXBsZShzZWxmKSA8PSBhdHRyc190b190dXBsZShv
dGhlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAor
CisgICAgZGVmIGd0KHNlbGYsIG90aGVyKToKKyAgICAgICAgIiIiCisgICAgICAgIEF1dG9tYXRp
Y2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFu
Y2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKToKKyAgICAgICAgICAgIHJldHVybiBhdHRyc190b190
dXBsZShzZWxmKSA+IGF0dHJzX3RvX3R1cGxlKG90aGVyKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgZ2Uoc2VsZiwgb3RoZXIpOgor
ICAgICAgICAiIiIKKyAgICAgICAgQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNzX18pOgor
ICAgICAgICAgICAgcmV0dXJuIGF0dHJzX3RvX3R1cGxlKHNlbGYpID49IGF0dHJzX3RvX3R1cGxl
KG90aGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVk
CisKKyAgICByZXR1cm4gZXEsIG5lLCBsdCwgbGUsIGd0LCBnZQorCisKK2RlZiBfYWRkX2NtcChj
bHMsIGF0dHJzPU5vbmUpOgorICAgICIiIgorICAgIEFkZCBjb21wYXJpc29uIG1ldGhvZHMgdG8g
KmNscyouCisgICAgIiIiCisgICAgaWYgYXR0cnMgaXMgTm9uZToKKyAgICAgICAgYXR0cnMgPSBj
bHMuX19hdHRyc19hdHRyc19fCisKKyAgICBjbHMuX19lcV9fLCBjbHMuX19uZV9fLCBjbHMuX19s
dF9fLCBjbHMuX19sZV9fLCBjbHMuX19ndF9fLCBjbHMuX19nZV9fID0gXAorICAgICAgICBfbWFr
ZV9jbXAoYXR0cnMpCisKKyAgICByZXR1cm4gY2xzCisKKworZGVmIF9tYWtlX3JlcHIoYXR0cnMs
IG5zKToKKyAgICAiIiIKKyAgICBNYWtlIGEgcmVwciBtZXRob2QgZm9yICphdHRyX25hbWVzKiBh
ZGRpbmcgKm5zKiB0byB0aGUgZnVsbCBuYW1lLgorICAgICIiIgorICAgIGF0dHJfbmFtZXMgPSB0
dXBsZSgKKyAgICAgICAgYS5uYW1lCisgICAgICAgIGZvciBhIGluIGF0dHJzCisgICAgICAgIGlm
IGEucmVwcgorICAgICkKKworICAgIGRlZiByZXByXyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAgICAgICAgIiIiCisgICAgICAg
IHJlYWxfY2xzID0gc2VsZi5fX2NsYXNzX18KKyAgICAgICAgaWYgbnMgaXMgTm9uZToKKyAgICAg
ICAgICAgIHF1YWxuYW1lID0gZ2V0YXR0cihyZWFsX2NscywgIl9fcXVhbG5hbWVfXyIsIE5vbmUp
CisgICAgICAgICAgICBpZiBxdWFsbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBj
bGFzc19uYW1lID0gcXVhbG5hbWUucnNwbGl0KCI+LiIsIDEpWy0xXQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBjbGFzc19uYW1lID0gcmVhbF9jbHMuX19uYW1lX18KKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGNsYXNzX25hbWUgPSBucyArICIuIiArIHJlYWxfY2xzLl9f
bmFtZV9fCisKKyAgICAgICAgcmV0dXJuICJ7MH0oezF9KSIuZm9ybWF0KAorICAgICAgICAgICAg
Y2xhc3NfbmFtZSwKKyAgICAgICAgICAgICIsICIuam9pbigKKyAgICAgICAgICAgICAgICBuYW1l
ICsgIj0iICsgcmVwcihnZXRhdHRyKHNlbGYsIG5hbWUpKQorICAgICAgICAgICAgICAgIGZvciBu
YW1lIGluIGF0dHJfbmFtZXMKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgIHJldHVybiBy
ZXByXworCisKK2RlZiBfYWRkX3JlcHIoY2xzLCBucz1Ob25lLCBhdHRycz1Ob25lKToKKyAgICAi
IiIKKyAgICBBZGQgYSByZXByIG1ldGhvZCB0byAqY2xzKi4KKyAgICAiIiIKKyAgICBpZiBhdHRy
cyBpcyBOb25lOgorICAgICAgICBhdHRycyA9IGNscy5fX2F0dHJzX2F0dHJzX18KKworICAgIHJl
cHJfID0gX21ha2VfcmVwcihhdHRycywgbnMpCisgICAgY2xzLl9fcmVwcl9fID0gcmVwcl8KKyAg
ICByZXR1cm4gY2xzCisKKworZGVmIF9tYWtlX2luaXQoYXR0cnMsIHBvc3RfaW5pdCwgZnJvemVu
KToKKyAgICBhdHRycyA9IFsKKyAgICAgICAgYQorICAgICAgICBmb3IgYSBpbiBhdHRycworICAg
ICAgICBpZiBhLmluaXQgb3IgYS5kZWZhdWx0IGlzIG5vdCBOT1RISU5HCisgICAgXQorCisgICAg
IyBXZSBjYWNoZSB0aGUgZ2VuZXJhdGVkIGluaXQgbWV0aG9kcyBmb3IgdGhlIHNhbWUga2luZHMg
b2YgYXR0cmlidXRlcy4KKyAgICBzaGExID0gaGFzaGxpYi5zaGExKCkKKyAgICBzaGExLnVwZGF0
ZShyZXByKGF0dHJzKS5lbmNvZGUoInV0Zi04IikpCisgICAgdW5pcXVlX2ZpbGVuYW1lID0gIjxh
dHRycyBnZW5lcmF0ZWQgaW5pdCB7MH0+Ii5mb3JtYXQoCisgICAgICAgIHNoYTEuaGV4ZGlnZXN0
KCkKKyAgICApCisKKyAgICBzY3JpcHQsIGdsb2JzID0gX2F0dHJzX3RvX2luaXRfc2NyaXB0KAor
ICAgICAgICBhdHRycywKKyAgICAgICAgZnJvemVuLAorICAgICAgICBwb3N0X2luaXQsCisgICAg
KQorICAgIGxvY3MgPSB7fQorICAgIGJ5dGVjb2RlID0gY29tcGlsZShzY3JpcHQsIHVuaXF1ZV9m
aWxlbmFtZSwgImV4ZWMiKQorICAgIGF0dHJfZGljdCA9IGRpY3QoKGEubmFtZSwgYSkgZm9yIGEg
aW4gYXR0cnMpCisgICAgZ2xvYnMudXBkYXRlKHsKKyAgICAgICAgIk5PVEhJTkciOiBOT1RISU5H
LAorICAgICAgICAiYXR0cl9kaWN0IjogYXR0cl9kaWN0LAorICAgIH0pCisgICAgaWYgZnJvemVu
IGlzIFRydWU6CisgICAgICAgICMgU2F2ZSB0aGUgbG9va3VwIG92ZXJoZWFkIGluIF9faW5pdF9f
IGlmIHdlIG5lZWQgdG8gY2lyY3VtdmVudAorICAgICAgICAjIGltbXV0YWJpbGl0eS4KKyAgICAg
ICAgZ2xvYnNbIl9jYWNoZWRfc2V0YXR0ciJdID0gX29ial9zZXRhdHRyCisgICAgZXZhbChieXRl
Y29kZSwgZ2xvYnMsIGxvY3MpCisKKyAgICAjIEluIG9yZGVyIG9mIGRlYnVnZ2VycyBsaWtlIFBE
QiBiZWluZyBhYmxlIHRvIHN0ZXAgdGhyb3VnaCB0aGUgY29kZSwKKyAgICAjIHdlIGFkZCBhIGZh
a2UgbGluZWNhY2hlIGVudHJ5LgorICAgIGxpbmVjYWNoZS5jYWNoZVt1bmlxdWVfZmlsZW5hbWVd
ID0gKAorICAgICAgICBsZW4oc2NyaXB0KSwKKyAgICAgICAgTm9uZSwKKyAgICAgICAgc2NyaXB0
LnNwbGl0bGluZXMoVHJ1ZSksCisgICAgICAgIHVuaXF1ZV9maWxlbmFtZSwKKyAgICApCisKKyAg
ICByZXR1cm4gbG9jc1siX19pbml0X18iXQorCisKK2RlZiBfYWRkX2luaXQoY2xzLCBmcm96ZW4p
OgorICAgICIiIgorICAgIEFkZCBhIF9faW5pdF9fIG1ldGhvZCB0byAqY2xzKi4gIElmICpmcm96
ZW4qIGlzIFRydWUsIG1ha2UgaXQgaW1tdXRhYmxlLgorICAgICIiIgorICAgIGNscy5fX2luaXRf
XyA9IF9tYWtlX2luaXQoCisgICAgICAgIGNscy5fX2F0dHJzX2F0dHJzX18sCisgICAgICAgIGdl
dGF0dHIoY2xzLCAiX19hdHRyc19wb3N0X2luaXRfXyIsIEZhbHNlKSwKKyAgICAgICAgZnJvemVu
LAorICAgICkKKyAgICByZXR1cm4gY2xzCisKKworZGVmIGZpZWxkcyhjbHMpOgorICAgICIiIgor
ICAgIFJldHVybnMgdGhlIHR1cGxlIG9mIGBgYXR0cnNgYCBhdHRyaWJ1dGVzIGZvciBhIGNsYXNz
LgorCisgICAgVGhlIHR1cGxlIGFsc28gYWxsb3dzIGFjY2Vzc2luZyB0aGUgZmllbGRzIGJ5IHRo
ZWlyIG5hbWVzIChzZWUgYmVsb3cgZm9yCisgICAgZXhhbXBsZXMpLgorCisgICAgOnBhcmFtIHR5
cGUgY2xzOiBDbGFzcyB0byBpbnRyb3NwZWN0LgorCisgICAgOnJhaXNlIFR5cGVFcnJvcjogSWYg
KmNscyogaXMgbm90IGEgY2xhc3MuCisgICAgOnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5Ob3RBbkF0
dHJzQ2xhc3NFcnJvcjogSWYgKmNscyogaXMgbm90IGFuIGBgYXR0cnNgYAorICAgICAgICBjbGFz
cy4KKworICAgIDpydHlwZTogdHVwbGUgKHdpdGggbmFtZSBhY2Nlc3NvcnMpIG9mIDpjbGFzczpg
YXR0ci5BdHRyaWJ1dGVgCisKKyAgICAuLiAgdmVyc2lvbmNoYW5nZWQ6OiAxNi4yLjAgUmV0dXJu
ZWQgdHVwbGUgYWxsb3dzIGFjY2Vzc2luZyB0aGUgZmllbGRzCisgICAgICAgIGJ5IG5hbWUuCisg
ICAgIiIiCisgICAgaWYgbm90IGlzY2xhc3MoY2xzKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCJQYXNzZWQgb2JqZWN0IG11c3QgYmUgYSBjbGFzcy4iKQorICAgIGF0dHJzID0gZ2V0YXR0cihj
bHMsICJfX2F0dHJzX2F0dHJzX18iLCBOb25lKQorICAgIGlmIGF0dHJzIGlzIE5vbmU6CisgICAg
ICAgIHJhaXNlIE5vdEFuQXR0cnNDbGFzc0Vycm9yKAorICAgICAgICAgICAgIntjbHMhcn0gaXMg
bm90IGFuIGF0dHJzLWRlY29yYXRlZCBjbGFzcy4iLmZvcm1hdChjbHM9Y2xzKQorICAgICAgICAp
CisgICAgcmV0dXJuIGF0dHJzCisKKworZGVmIHZhbGlkYXRlKGluc3QpOgorICAgICIiIgorICAg
IFZhbGlkYXRlIGFsbCBhdHRyaWJ1dGVzIG9uICppbnN0KiB0aGF0IGhhdmUgYSB2YWxpZGF0b3Iu
CisKKyAgICBMZWF2ZXMgYWxsIGV4Y2VwdGlvbnMgdGhyb3VnaC4KKworICAgIDpwYXJhbSBpbnN0
OiBJbnN0YW5jZSBvZiBhIGNsYXNzIHdpdGggYGBhdHRyc2BgIGF0dHJpYnV0ZXMuCisgICAgIiIi
CisgICAgaWYgX2NvbmZpZy5fcnVuX3ZhbGlkYXRvcnMgaXMgRmFsc2U6CisgICAgICAgIHJldHVy
bgorCisgICAgZm9yIGEgaW4gZmllbGRzKGluc3QuX19jbGFzc19fKToKKyAgICAgICAgdiA9IGEu
dmFsaWRhdG9yCisgICAgICAgIGlmIHYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB2KGluc3Qs
IGEsIGdldGF0dHIoaW5zdCwgYS5uYW1lKSkKKworCitkZWYgX2F0dHJzX3RvX2luaXRfc2NyaXB0
KGF0dHJzLCBmcm96ZW4sIHBvc3RfaW5pdCk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgc2NyaXB0
IG9mIGFuIGluaXRpYWxpemVyIGZvciAqYXR0cnMqIGFuZCBhIGRpY3Qgb2YgZ2xvYmFscy4KKwor
ICAgIFRoZSBnbG9iYWxzIGFyZSBleHBlY3RlZCBieSB0aGUgZ2VuZXJhdGVkIHNjcmlwdC4KKwor
ICAgICBJZiAqZnJvemVuKiBpcyBUcnVlLCB3ZSBjYW5ub3Qgc2V0IHRoZSBhdHRyaWJ1dGVzIGRp
cmVjdGx5IHNvIHdlIHVzZQorICAgIGEgY2FjaGVkIGBgb2JqZWN0Ll9fc2V0YXR0cl9fYGAuCisg
ICAgIiIiCisgICAgbGluZXMgPSBbXQorICAgIGlmIGZyb3plbiBpcyBUcnVlOgorICAgICAgICBs
aW5lcy5hcHBlbmQoCisgICAgICAgICAgICAjIENpcmN1bXZlbnQgdGhlIF9fc2V0YXR0cl9fIGRl
c2NyaXB0b3IgdG8gc2F2ZSBvbmUgbG9va3VwIHBlcgorICAgICAgICAgICAgIyBhc3NpZ25tZW50
LgorICAgICAgICAgICAgIl9zZXRhdHRyID0gX2NhY2hlZF9zZXRhdHRyLl9fZ2V0X18oc2VsZiwg
c2VsZi5fX2NsYXNzX18pIgorICAgICAgICApCisKKyAgICAgICAgZGVmIGZtdF9zZXR0ZXIoYXR0
cl9uYW1lLCB2YWx1ZV92YXIpOgorICAgICAgICAgICAgcmV0dXJuICJfc2V0YXR0cignJShhdHRy
X25hbWUpcycsICUodmFsdWVfdmFyKXMpIiAlIHsKKyAgICAgICAgICAgICAgICAiYXR0cl9uYW1l
IjogYXR0cl9uYW1lLAorICAgICAgICAgICAgICAgICJ2YWx1ZV92YXIiOiB2YWx1ZV92YXIsCisg
ICAgICAgICAgICB9CisKKyAgICAgICAgZGVmIGZtdF9zZXR0ZXJfd2l0aF9jb252ZXJ0ZXIoYXR0
cl9uYW1lLCB2YWx1ZV92YXIpOgorICAgICAgICAgICAgY29udl9uYW1lID0gX2luaXRfY29udmVy
dF9wYXQuZm9ybWF0KGF0dHJfbmFtZSkKKyAgICAgICAgICAgIHJldHVybiAiX3NldGF0dHIoJyUo
YXR0cl9uYW1lKXMnLCAlKGNvbnYpcyglKHZhbHVlX3ZhcilzKSkiICUgeworICAgICAgICAgICAg
ICAgICJhdHRyX25hbWUiOiBhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgInZhbHVlX3ZhciI6
IHZhbHVlX3ZhciwKKyAgICAgICAgICAgICAgICAiY29udiI6IGNvbnZfbmFtZSwKKyAgICAgICAg
ICAgIH0KKyAgICBlbHNlOgorICAgICAgICBkZWYgZm10X3NldHRlcihhdHRyX25hbWUsIHZhbHVl
KToKKyAgICAgICAgICAgIHJldHVybiAic2VsZi4lKGF0dHJfbmFtZSlzID0gJSh2YWx1ZSlzIiAl
IHsKKyAgICAgICAgICAgICAgICAiYXR0cl9uYW1lIjogYXR0cl9uYW1lLAorICAgICAgICAgICAg
ICAgICJ2YWx1ZSI6IHZhbHVlLAorICAgICAgICAgICAgfQorCisgICAgICAgIGRlZiBmbXRfc2V0
dGVyX3dpdGhfY29udmVydGVyKGF0dHJfbmFtZSwgdmFsdWVfdmFyKToKKyAgICAgICAgICAgIGNv
bnZfbmFtZSA9IF9pbml0X2NvbnZlcnRfcGF0LmZvcm1hdChhdHRyX25hbWUpCisgICAgICAgICAg
ICByZXR1cm4gInNlbGYuJShhdHRyX25hbWUpcyA9ICUoY29udilzKCUodmFsdWVfdmFyKXMpIiAl
IHsKKyAgICAgICAgICAgICAgICAiYXR0cl9uYW1lIjogYXR0cl9uYW1lLAorICAgICAgICAgICAg
ICAgICJ2YWx1ZV92YXIiOiB2YWx1ZV92YXIsCisgICAgICAgICAgICAgICAgImNvbnYiOiBjb252
X25hbWUsCisgICAgICAgICAgICB9CisKKyAgICBhcmdzID0gW10KKyAgICBhdHRyc190b192YWxp
ZGF0ZSA9IFtdCisKKyAgICAjIFRoaXMgaXMgYSBkaWN0aW9uYXJ5IG9mIG5hbWVzIHRvIHZhbGlk
YXRvciBhbmQgY29udmVydGVyIGNhbGxhYmxlcy4KKyAgICAjIEluamVjdGluZyB0aGlzIGludG8g
X19pbml0X18gZ2xvYmFscyBsZXRzIHVzIGF2b2lkIGxvb2t1cHMuCisgICAgbmFtZXNfZm9yX2ds
b2JhbHMgPSB7fQorCisgICAgZm9yIGEgaW4gYXR0cnM6CisgICAgICAgIGlmIGEudmFsaWRhdG9y
OgorICAgICAgICAgICAgYXR0cnNfdG9fdmFsaWRhdGUuYXBwZW5kKGEpCisgICAgICAgIGF0dHJf
bmFtZSA9IGEubmFtZQorICAgICAgICBhcmdfbmFtZSA9IGEubmFtZS5sc3RyaXAoIl8iKQorICAg
ICAgICBoYXNfZmFjdG9yeSA9IGlzaW5zdGFuY2UoYS5kZWZhdWx0LCBGYWN0b3J5KQorICAgICAg
ICBpZiBoYXNfZmFjdG9yeSBhbmQgYS5kZWZhdWx0LnRha2VzX3NlbGY6CisgICAgICAgICAgICBt
YXliZV9zZWxmID0gInNlbGYiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYXliZV9zZWxm
ID0gIiIKKyAgICAgICAgaWYgYS5pbml0IGlzIEZhbHNlOgorICAgICAgICAgICAgaWYgaGFzX2Zh
Y3Rvcnk6CisgICAgICAgICAgICAgICAgaW5pdF9mYWN0b3J5X25hbWUgPSBfaW5pdF9mYWN0b3J5
X3BhdC5mb3JtYXQoYS5uYW1lKQorICAgICAgICAgICAgICAgIGlmIGEuY29udmVydCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZtdF9zZXR0ZXJfd2l0aF9j
b252ZXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICBpbml0X2ZhY3RvcnlfbmFtZSArICIoezB9KSIuZm9ybWF0KG1heWJlX3Nl
bGYpKSkKKyAgICAgICAgICAgICAgICAgICAgY29udl9uYW1lID0gX2luaXRfY29udmVydF9wYXQu
Zm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgbmFtZXNfZm9yX2dsb2JhbHNbY29u
dl9uYW1lXSA9IGEuY29udmVydAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZChmbXRfc2V0dGVyKAorICAgICAgICAgICAgICAgICAgICAgICAg
YXR0cl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdF9mYWN0b3J5X25hbWUgKyAi
KHswfSkiLmZvcm1hdChtYXliZV9zZWxmKQorICAgICAgICAgICAgICAgICAgICApKQorICAgICAg
ICAgICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxzW2luaXRfZmFjdG9yeV9uYW1lXSA9IGEuZGVmYXVs
dC5mYWN0b3J5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGEuY29udmVy
dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZtdF9zZXR0
ZXJfd2l0aF9jb252ZXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiYXR0cl9kaWN0Wyd7YXR0cl9uYW1lfSddLmRlZmF1bHQi
CisgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KGF0dHJfbmFtZT1hdHRyX25hbWUpCisg
ICAgICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICAgICAgICAgIGNvbnZfbmFtZSA9IF9p
bml0X2NvbnZlcnRfcGF0LmZvcm1hdChhLm5hbWUpCisgICAgICAgICAgICAgICAgICAgIG5hbWVz
X2Zvcl9nbG9iYWxzW2NvbnZfbmFtZV0gPSBhLmNvbnZlcnQKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10X3NldHRlcigKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdHRy
X2RpY3RbJ3thdHRyX25hbWV9J10uZGVmYXVsdCIKKyAgICAgICAgICAgICAgICAgICAgICAgIC5m
b3JtYXQoYXR0cl9uYW1lPWF0dHJfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgKSkKKyAgICAg
ICAgZWxpZiBhLmRlZmF1bHQgaXMgbm90IE5PVEhJTkcgYW5kIG5vdCBoYXNfZmFjdG9yeToKKyAg
ICAgICAgICAgIGFyZ3MuYXBwZW5kKAorICAgICAgICAgICAgICAgICJ7YXJnX25hbWV9PWF0dHJf
ZGljdFsne2F0dHJfbmFtZX0nXS5kZWZhdWx0Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAg
IGFyZ19uYW1lPWFyZ19uYW1lLAorICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWU9YXR0cl9u
YW1lLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIGEu
Y29udmVydCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10X3Nl
dHRlcl93aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAgICAgICAg
ICBuYW1lc19mb3JfZ2xvYmFsc1tfaW5pdF9jb252ZXJ0X3BhdC5mb3JtYXQoYS5uYW1lKV0gPSBh
LmNvbnZlcnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5k
KGZtdF9zZXR0ZXIoYXR0cl9uYW1lLCBhcmdfbmFtZSkpCisgICAgICAgIGVsaWYgaGFzX2ZhY3Rv
cnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgie2FyZ19uYW1lfT1OT1RISU5HIi5mb3JtYXQo
YXJnX25hbWU9YXJnX25hbWUpKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJpZiB7YXJnX25h
bWV9IGlzIG5vdCBOT1RISU5HOiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KGFy
Z19uYW1lPWFyZ19uYW1lKSkKKyAgICAgICAgICAgIGluaXRfZmFjdG9yeV9uYW1lID0gX2luaXRf
ZmFjdG9yeV9wYXQuZm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgIGlmIGEuY29udmVydCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICAiICsgZm10X3NldHRl
cl93aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX25hbWUpKQorICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZCgiZWxzZToiKQorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiICAgICIgKyBmbXRfc2V0dGVyX3dpdGhfY29udmVydGVyKAorICAgICAgICAgICAgICAgICAg
ICBhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgICAgIGluaXRfZmFjdG9yeV9uYW1lICsgIih7
MH0pIi5mb3JtYXQobWF5YmVfc2VsZikKKyAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAg
ICAgIG5hbWVzX2Zvcl9nbG9iYWxzW19pbml0X2NvbnZlcnRfcGF0LmZvcm1hdChhLm5hbWUpXSA9
IGEuY29udmVydAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIiAgICAiICsgZm10X3NldHRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoImVsc2U6IikKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiAgICAiICsgZm10X3NldHRlcigKKyAgICAgICAgICAgICAgICAgICAgYXR0cl9uYW1lLAorICAg
ICAgICAgICAgICAgICAgICBpbml0X2ZhY3RvcnlfbmFtZSArICIoezB9KSIuZm9ybWF0KG1heWJl
X3NlbGYpCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxz
W2luaXRfZmFjdG9yeV9uYW1lXSA9IGEuZGVmYXVsdC5mYWN0b3J5CisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBhcmdzLmFwcGVuZChhcmdfbmFtZSkKKyAgICAgICAgICAgIGlmIGEuY29udmVy
dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10X3NldHRlcl93
aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAgICAgICAgICBuYW1l
c19mb3JfZ2xvYmFsc1tfaW5pdF9jb252ZXJ0X3BhdC5mb3JtYXQoYS5uYW1lKV0gPSBhLmNvbnZl
cnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZtdF9z
ZXR0ZXIoYXR0cl9uYW1lLCBhcmdfbmFtZSkpCisKKyAgICBpZiBhdHRyc190b192YWxpZGF0ZTog
ICMgd2UgY2FuIHNraXAgdGhpcyBpZiB0aGVyZSBhcmUgbm8gdmFsaWRhdG9ycy4KKyAgICAgICAg
bmFtZXNfZm9yX2dsb2JhbHNbIl9jb25maWciXSA9IF9jb25maWcKKyAgICAgICAgbGluZXMuYXBw
ZW5kKCJpZiBfY29uZmlnLl9ydW5fdmFsaWRhdG9ycyBpcyBUcnVlOiIpCisgICAgICAgIGZvciBh
IGluIGF0dHJzX3RvX3ZhbGlkYXRlOgorICAgICAgICAgICAgdmFsX25hbWUgPSAiX19hdHRyX3Zh
bGlkYXRvcl97fSIuZm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgIGF0dHJfbmFtZSA9ICJfX2F0
dHJfe30iLmZvcm1hdChhLm5hbWUpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICB7fShz
ZWxmLCB7fSwgc2VsZi57fSkiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICB2YWxfbmFtZSwgYXR0
cl9uYW1lLCBhLm5hbWUpKQorICAgICAgICAgICAgbmFtZXNfZm9yX2dsb2JhbHNbdmFsX25hbWVd
ID0gYS52YWxpZGF0b3IKKyAgICAgICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxzW2F0dHJfbmFtZV0g
PSBhCisgICAgaWYgcG9zdF9pbml0OgorICAgICAgICBsaW5lcy5hcHBlbmQoInNlbGYuX19hdHRy
c19wb3N0X2luaXRfXygpIikKKworICAgIHJldHVybiAiIiJcCitkZWYgX19pbml0X18oc2VsZiwg
e2FyZ3N9KToKKyAgICB7bGluZXN9CisiIiIuZm9ybWF0KAorICAgICAgICBhcmdzPSIsICIuam9p
bihhcmdzKSwKKyAgICAgICAgbGluZXM9IlxuICAgICIuam9pbihsaW5lcykgaWYgbGluZXMgZWxz
ZSAicGFzcyIsCisgICAgKSwgbmFtZXNfZm9yX2dsb2JhbHMKKworCitjbGFzcyBBdHRyaWJ1dGUo
b2JqZWN0KToKKyAgICAiIiIKKyAgICAqUmVhZC1vbmx5KiByZXByZXNlbnRhdGlvbiBvZiBhbiBh
dHRyaWJ1dGUuCisKKyAgICA6YXR0cmlidXRlIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1
dGUuCisKKyAgICBQbHVzICphbGwqIGFyZ3VtZW50cyBvZiA6ZnVuYzpgYXR0ci5pYmAuCisgICAg
IiIiCisgICAgX19zbG90c19fID0gKAorICAgICAgICAibmFtZSIsICJkZWZhdWx0IiwgInZhbGlk
YXRvciIsICJyZXByIiwgImNtcCIsICJoYXNoIiwgImluaXQiLAorICAgICAgICAiY29udmVydCIs
ICJtZXRhZGF0YSIsICJ0eXBlIgorICAgICkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
LCBkZWZhdWx0LCB2YWxpZGF0b3IsIHJlcHIsIGNtcCwgaGFzaCwgaW5pdCwKKyAgICAgICAgICAg
ICAgICAgY29udmVydD1Ob25lLCBtZXRhZGF0YT1Ob25lLCB0eXBlPU5vbmUpOgorICAgICAgICAj
IENhY2hlIHRoaXMgZGVzY3JpcHRvciBoZXJlIHRvIHNwZWVkIHRoaW5ncyB1cCBsYXRlci4KKyAg
ICAgICAgYm91bmRfc2V0YXR0ciA9IF9vYmpfc2V0YXR0ci5fX2dldF9fKHNlbGYsIEF0dHJpYnV0
ZSkKKworICAgICAgICBib3VuZF9zZXRhdHRyKCJuYW1lIiwgbmFtZSkKKyAgICAgICAgYm91bmRf
c2V0YXR0cigiZGVmYXVsdCIsIGRlZmF1bHQpCisgICAgICAgIGJvdW5kX3NldGF0dHIoInZhbGlk
YXRvciIsIHZhbGlkYXRvcikKKyAgICAgICAgYm91bmRfc2V0YXR0cigicmVwciIsIHJlcHIpCisg
ICAgICAgIGJvdW5kX3NldGF0dHIoImNtcCIsIGNtcCkKKyAgICAgICAgYm91bmRfc2V0YXR0cigi
aGFzaCIsIGhhc2gpCisgICAgICAgIGJvdW5kX3NldGF0dHIoImluaXQiLCBpbml0KQorICAgICAg
ICBib3VuZF9zZXRhdHRyKCJjb252ZXJ0IiwgY29udmVydCkKKyAgICAgICAgYm91bmRfc2V0YXR0
cigibWV0YWRhdGEiLCAobWV0YWRhdGFfcHJveHkobWV0YWRhdGEpIGlmIG1ldGFkYXRhCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgX2VtcHR5X21ldGFkYXRhX3Npbmds
ZXRvbikpCisgICAgICAgIGJvdW5kX3NldGF0dHIoInR5cGUiLCB0eXBlKQorCisgICAgZGVmIF9f
c2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgcmFpc2UgRnJvemVuSW5zdGFu
Y2VFcnJvcigpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9jb3VudGluZ19hdHRy
KGNscywgbmFtZSwgY2EsIHR5cGU9Tm9uZSk6CisgICAgICAgICMgdHlwZSBob2xkcyB0aGUgYW5u
b3RhdGVkIHZhbHVlLiBkZWFsIHdpdGggY29uZmxpY3RzOgorICAgICAgICBpZiB0eXBlIGlzIE5v
bmU6CisgICAgICAgICAgICB0eXBlID0gY2EudHlwZQorICAgICAgICBlbGlmIGNhLnR5cGUgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAg
ICJUeXBlIGFubm90YXRpb24gYW5kIHR5cGUgYXJndW1lbnQgY2Fubm90IGJvdGggYmUgcHJlc2Vu
dCIKKyAgICAgICAgICAgICkKKyAgICAgICAgaW5zdF9kaWN0ID0geworICAgICAgICAgICAgazog
Z2V0YXR0cihjYSwgaykKKyAgICAgICAgICAgIGZvciBrCisgICAgICAgICAgICBpbiBBdHRyaWJ1
dGUuX19zbG90c19fCisgICAgICAgICAgICBpZiBrIG5vdCBpbiAoCisgICAgICAgICAgICAgICAg
Im5hbWUiLCAidmFsaWRhdG9yIiwgImRlZmF1bHQiLCAidHlwZSIKKyAgICAgICAgICAgICkgICMg
ZXhjbHVkZSBtZXRob2RzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNscyhuYW1lPW5hbWUs
IHZhbGlkYXRvcj1jYS5fdmFsaWRhdG9yLCBkZWZhdWx0PWNhLl9kZWZhdWx0LAorICAgICAgICAg
ICAgICAgICAgIHR5cGU9dHlwZSwgKippbnN0X2RpY3QpCisKKyAgICAjIERvbid0IHVzZSBfYWRk
X3BpY2tsZSBzaW5jZSBmaWVsZHMoQXR0cmlidXRlKSBkb2Vzbid0IHdvcmsKKyAgICBkZWYgX19n
ZXRzdGF0ZV9fKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUGxheSBuaWNlIHdpdGggcGlj
a2xlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHR1cGxlKGdldGF0dHIoc2VsZiwgbmFt
ZSkgaWYgbmFtZSAhPSAibWV0YWRhdGEiCisgICAgICAgICAgICAgICAgICAgICBlbHNlIGRpY3Qo
c2VsZi5tZXRhZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX19z
bG90c19fKQorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6CisgICAgICAgICIi
IgorICAgICAgICBQbGF5IG5pY2Ugd2l0aCBwaWNrbGUuCisgICAgICAgICIiIgorICAgICAgICBi
b3VuZF9zZXRhdHRyID0gX29ial9zZXRhdHRyLl9fZ2V0X18oc2VsZiwgQXR0cmlidXRlKQorICAg
ICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gemlwKHNlbGYuX19zbG90c19fLCBzdGF0ZSk6CisgICAg
ICAgICAgICBpZiBuYW1lICE9ICJtZXRhZGF0YSI6CisgICAgICAgICAgICAgICAgYm91bmRfc2V0
YXR0cihuYW1lLCB2YWx1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYm91
bmRfc2V0YXR0cihuYW1lLCBtZXRhZGF0YV9wcm94eSh2YWx1ZSkgaWYgdmFsdWUgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgX2VtcHR5X21ldGFkYXRhX3NpbmdsZXRvbikKKwor
CitfYSA9IFtBdHRyaWJ1dGUobmFtZT1uYW1lLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1O
b25lLAorICAgICAgICAgICAgICAgIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9KG5hbWUgIT0g
Im1ldGFkYXRhIiksIGluaXQ9VHJ1ZSkKKyAgICAgIGZvciBuYW1lIGluIEF0dHJpYnV0ZS5fX3Ns
b3RzX19dCisKK0F0dHJpYnV0ZSA9IF9hZGRfaGFzaCgKKyAgICBfYWRkX2NtcChfYWRkX3JlcHIo
QXR0cmlidXRlLCBhdHRycz1fYSksIGF0dHJzPV9hKSwKKyAgICBhdHRycz1bYSBmb3IgYSBpbiBf
YSBpZiBhLmhhc2hdCispCisKKworY2xhc3MgX0NvdW50aW5nQXR0cihvYmplY3QpOgorICAgICIi
IgorICAgIEludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiBvZiBhdHRyaWJ1dGVzIHRoYXQgdXNl
cyBhIGNvdW50ZXIgdG8gcHJlc2VydmUKKyAgICB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGF0dHJp
YnV0ZXMgaGF2ZSBiZWVuIGRlZmluZWQuCisKKyAgICAqSW50ZXJuYWwqIGRhdGEgc3RydWN0dXJl
IG9mIHRoZSBhdHRycyBsaWJyYXJ5LiAgUnVubmluZyBpbnRvIGlzIG1vc3QKKyAgICBsaWtlbHkg
dGhlIHJlc3VsdCBvZiBhIGJ1ZyBsaWtlIGEgZm9yZ290dGVuIGBAYXR0ci5zYCBkZWNvcmF0b3Iu
CisgICAgIiIiCisgICAgX19zbG90c19fID0gKCJjb3VudGVyIiwgIl9kZWZhdWx0IiwgInJlcHIi
LCAiY21wIiwgImhhc2giLCAiaW5pdCIsCisgICAgICAgICAgICAgICAgICJtZXRhZGF0YSIsICJf
dmFsaWRhdG9yIiwgImNvbnZlcnQiLCAidHlwZSIpCisgICAgX19hdHRyc19hdHRyc19fID0gdHVw
bGUoCisgICAgICAgIEF0dHJpYnV0ZShuYW1lPW5hbWUsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRh
dG9yPU5vbmUsCisgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPVRy
dWUsIGluaXQ9VHJ1ZSkKKyAgICAgICAgZm9yIG5hbWUKKyAgICAgICAgaW4gKCJjb3VudGVyIiwg
Il9kZWZhdWx0IiwgInJlcHIiLCAiY21wIiwgImhhc2giLCAiaW5pdCIsKQorICAgICkgKyAoCisg
ICAgICAgIEF0dHJpYnV0ZShuYW1lPSJtZXRhZGF0YSIsIGRlZmF1bHQ9Tm9uZSwgdmFsaWRhdG9y
PU5vbmUsCisgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPUZhbHNl
LCBpbml0PVRydWUpLAorICAgICkKKyAgICBjbHNfY291bnRlciA9IDAKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBkZWZhdWx0LCB2YWxpZGF0b3IsIHJlcHIsIGNtcCwgaGFzaCwgaW5pdCwgY29u
dmVydCwKKyAgICAgICAgICAgICAgICAgbWV0YWRhdGEsIHR5cGUpOgorICAgICAgICBfQ291bnRp
bmdBdHRyLmNsc19jb3VudGVyICs9IDEKKyAgICAgICAgc2VsZi5jb3VudGVyID0gX0NvdW50aW5n
QXR0ci5jbHNfY291bnRlcgorICAgICAgICBzZWxmLl9kZWZhdWx0ID0gZGVmYXVsdAorICAgICAg
ICAjIElmIHZhbGlkYXRvciBpcyBhIGxpc3QvdHVwbGUsIHdyYXAgaXQgdXNpbmcgaGVscGVyIHZh
bGlkYXRvci4KKyAgICAgICAgaWYgdmFsaWRhdG9yIGFuZCBpc2luc3RhbmNlKHZhbGlkYXRvciwg
KGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0b3IgPSBhbmRfKCp2YWxp
ZGF0b3IpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0b3IgPSB2YWxp
ZGF0b3IKKyAgICAgICAgc2VsZi5yZXByID0gcmVwcgorICAgICAgICBzZWxmLmNtcCA9IGNtcAor
ICAgICAgICBzZWxmLmhhc2ggPSBoYXNoCisgICAgICAgIHNlbGYuaW5pdCA9IGluaXQKKyAgICAg
ICAgc2VsZi5jb252ZXJ0ID0gY29udmVydAorICAgICAgICBzZWxmLm1ldGFkYXRhID0gbWV0YWRh
dGEKKyAgICAgICAgc2VsZi50eXBlID0gdHlwZQorCisgICAgZGVmIHZhbGlkYXRvcihzZWxmLCBt
ZXRoKToKKyAgICAgICAgIiIiCisgICAgICAgIERlY29yYXRvciB0aGF0IGFkZHMgKm1ldGgqIHRv
IHRoZSBsaXN0IG9mIHZhbGlkYXRvcnMuCisKKyAgICAgICAgUmV0dXJucyAqbWV0aCogdW5jaGFu
Z2VkLgorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgc2VsZi5fdmFsaWRhdG9yIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl92YWxp
ZGF0b3IgPSBtZXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0b3Ig
PSBhbmRfKHNlbGYuX3ZhbGlkYXRvciwgbWV0aCkKKyAgICAgICAgcmV0dXJuIG1ldGgKKworICAg
IGRlZiBkZWZhdWx0KHNlbGYsIG1ldGgpOgorICAgICAgICAiIiIKKyAgICAgICAgRGVjb3JhdG9y
IHRoYXQgYWxsb3dzIHRvIHNldCB0aGUgZGVmYXVsdCBmb3IgYW4gYXR0cmlidXRlLgorCisgICAg
ICAgIFJldHVybnMgKm1ldGgqIHVuY2hhbmdlZC4KKworICAgICAgICA6cmFpc2VzIERlZmF1bHRB
bHJlYWR5U2V0RXJyb3I6IElmIGRlZmF1bHQgaGFzIGJlZW4gc2V0IGJlZm9yZS4KKworICAgICAg
ICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYu
X2RlZmF1bHQgaXMgbm90IE5PVEhJTkc6CisgICAgICAgICAgICByYWlzZSBEZWZhdWx0QWxyZWFk
eVNldEVycm9yKCkKKworICAgICAgICBzZWxmLl9kZWZhdWx0ID0gRmFjdG9yeShtZXRoLCB0YWtl
c19zZWxmPVRydWUpCisKKyAgICAgICAgcmV0dXJuIG1ldGgKKworCitfQ291bnRpbmdBdHRyID0g
X2FkZF9jbXAoX2FkZF9yZXByKF9Db3VudGluZ0F0dHIpKQorCisKK0BhdHRycyhzbG90cz1UcnVl
LCBpbml0PUZhbHNlLCBoYXNoPVRydWUpCitjbGFzcyBGYWN0b3J5KG9iamVjdCk6CisgICAgIiIi
CisgICAgU3RvcmVzIGEgZmFjdG9yeSBjYWxsYWJsZS4KKworICAgIElmIHBhc3NlZCBhcyB0aGUg
ZGVmYXVsdCB2YWx1ZSB0byA6ZnVuYzpgYXR0ci5pYmAsIHRoZSBmYWN0b3J5IGlzIHVzZWQgdG8K
KyAgICBnZW5lcmF0ZSBhIG5ldyB2YWx1ZS4KKworICAgIDpwYXJhbSBjYWxsYWJsZSBmYWN0b3J5
OiBBIGNhbGxhYmxlIHRoYXQgdGFrZXMgZWl0aGVyIG5vbmUgb3IgZXhhY3RseSBvbmUKKyAgICAg
ICAgbWFuZGF0b3J5IHBvc2l0aW9uYWwgYXJndW1lbnQgZGVwZW5kaW5nIG9uICp0YWtlc19zZWxm
Ki4KKyAgICA6cGFyYW0gYm9vbCB0YWtlc19zZWxmOiBQYXNzIHRoZSBwYXJ0aWFsbHkgaW5pdGlh
bGl6ZWQgaW5zdGFuY2UgdGhhdCBpcworICAgICAgICBiZWluZyBpbml0aWFsaXplZCBhcyBhIHBv
c2l0aW9uYWwgYXJndW1lbnQuCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAgICp0YWtl
c19zZWxmKgorICAgICIiIgorICAgIGZhY3RvcnkgPSBhdHRyaWIoKQorICAgIHRha2VzX3NlbGYg
PSBhdHRyaWIoKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhY3RvcnksIHRha2VzX3NlbGY9
RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgYEZhY3RvcnlgIGlzIHBhcnQgb2YgdGhlIGRl
ZmF1bHQgbWFjaGluZXJ5IHNvIGlmIHdlIHdhbnQgYSBkZWZhdWx0CisgICAgICAgIHZhbHVlIGhl
cmUsIHdlIGhhdmUgdG8gaW1wbGVtZW50IGl0IG91cnNlbHZlcy4KKyAgICAgICAgIiIiCisgICAg
ICAgIHNlbGYuZmFjdG9yeSA9IGZhY3RvcnkKKyAgICAgICAgc2VsZi50YWtlc19zZWxmID0gdGFr
ZXNfc2VsZgorCisKK2RlZiBtYWtlX2NsYXNzKG5hbWUsIGF0dHJzLCBiYXNlcz0ob2JqZWN0LCks
ICoqYXR0cmlidXRlc19hcmd1bWVudHMpOgorICAgICIiIgorICAgIEEgcXVpY2sgd2F5IHRvIGNy
ZWF0ZSBhIG5ldyBjbGFzcyBjYWxsZWQgKm5hbWUqIHdpdGggKmF0dHJzKi4KKworICAgIDpwYXJh
bSBuYW1lOiBUaGUgbmFtZSBmb3IgdGhlIG5ldyBjbGFzcy4KKyAgICA6dHlwZSBuYW1lOiBzdHIK
KworICAgIDpwYXJhbSBhdHRyczogQSBsaXN0IG9mIG5hbWVzIG9yIGEgZGljdGlvbmFyeSBvZiBt
YXBwaW5ncyBvZiBuYW1lcyB0bworICAgICAgICBhdHRyaWJ1dGVzLgorICAgIDp0eXBlIGF0dHJz
OiA6Y2xhc3M6YGxpc3RgIG9yIDpjbGFzczpgZGljdGAKKworICAgIDpwYXJhbSB0dXBsZSBiYXNl
czogQ2xhc3NlcyB0aGF0IHRoZSBuZXcgY2xhc3Mgd2lsbCBzdWJjbGFzcy4KKworICAgIDpwYXJh
bSBhdHRyaWJ1dGVzX2FyZ3VtZW50czogUGFzc2VkIHVubW9kaWZpZWQgdG8gOmZ1bmM6YGF0dHIu
c2AuCisKKyAgICA6cmV0dXJuOiBBIG5ldyBjbGFzcyB3aXRoICphdHRycyouCisgICAgOnJ0eXBl
OiB0eXBlCisKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTcuMS4wICpiYXNlcyoKKyAgICAiIiIK
KyAgICBpZiBpc2luc3RhbmNlKGF0dHJzLCBkaWN0KToKKyAgICAgICAgY2xzX2RpY3QgPSBhdHRy
cworICAgIGVsaWYgaXNpbnN0YW5jZShhdHRycywgKGxpc3QsIHR1cGxlKSk6CisgICAgICAgIGNs
c19kaWN0ID0gZGljdCgoYSwgYXR0cmliKCkpIGZvciBhIGluIGF0dHJzKQorICAgIGVsc2U6Cisg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXR0cnMgYXJndW1lbnQgbXVzdCBiZSBhIGRpY3Qgb3Ig
YSBsaXN0LiIpCisKKyAgICBwb3N0X2luaXQgPSBjbHNfZGljdC5wb3AoIl9fYXR0cnNfcG9zdF9p
bml0X18iLCBOb25lKQorICAgIHR5cGVfID0gdHlwZSgKKyAgICAgICAgbmFtZSwKKyAgICAgICAg
YmFzZXMsCisgICAgICAgIHt9IGlmIHBvc3RfaW5pdCBpcyBOb25lIGVsc2UgeyJfX2F0dHJzX3Bv
c3RfaW5pdF9fIjogcG9zdF9pbml0fQorICAgICkKKyAgICAjIEZvciBwaWNrbGluZyB0byB3b3Jr
LCB0aGUgX19tb2R1bGVfXyB2YXJpYWJsZSBuZWVkcyB0byBiZSBzZXQgdG8gdGhlCisgICAgIyBm
cmFtZSB3aGVyZSB0aGUgY2xhc3MgaXMgY3JlYXRlZC4gIEJ5cGFzcyB0aGlzIHN0ZXAgaW4gZW52
aXJvbm1lbnRzIHdoZXJlCisgICAgIyBzeXMuX2dldGZyYW1lIGlzIG5vdCBkZWZpbmVkIChKeXRo
b24gZm9yIGV4YW1wbGUpIG9yIHN5cy5fZ2V0ZnJhbWUgaXMgbm90CisgICAgIyBkZWZpbmVkIGZv
ciBhcmd1bWVudHMgZ3JlYXRlciB0aGFuIDAgKElyb25QeXRob24pLgorICAgIHRyeToKKyAgICAg
ICAgdHlwZV8uX19tb2R1bGVfXyA9IHN5cy5fZ2V0ZnJhbWUoMSkuZl9nbG9iYWxzLmdldCgKKyAg
ICAgICAgICAgICJfX25hbWVfXyIsICJfX21haW5fXyIsCisgICAgICAgICkKKyAgICBleGNlcHQg
KEF0dHJpYnV0ZUVycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgcGFzcworCisgICAgcmV0dXJu
IF9hdHRycyh0aGVzZT1jbHNfZGljdCwgKiphdHRyaWJ1dGVzX2FyZ3VtZW50cykodHlwZV8pCisK
KworIyBUaGVzZSBhcmUgcmVxdWlyZWQgYnkgd2l0aGluIHRoaXMgbW9kdWxlIHNvIHdlIGRlZmlu
ZSB0aGVtIGhlcmUgYW5kIG1lcmVseQorIyBpbXBvcnQgaW50byAudmFsaWRhdG9ycy4KKworCitA
YXR0cnMoc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorY2xhc3MgX0FuZFZhbGlkYXRvcihvYmplY3Qp
OgorICAgICIiIgorICAgIENvbXBvc2UgbWFueSB2YWxpZGF0b3JzIHRvIGEgc2luZ2xlIG9uZS4K
KyAgICAiIiIKKyAgICBfdmFsaWRhdG9ycyA9IGF0dHJpYigpCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgaW5zdCwgYXR0ciwgdmFsdWUpOgorICAgICAgICBmb3IgdiBpbiBzZWxmLl92YWxpZGF0
b3JzOgorICAgICAgICAgICAgdihpbnN0LCBhdHRyLCB2YWx1ZSkKKworCitkZWYgYW5kXygqdmFs
aWRhdG9ycyk6CisgICAgIiIiCisgICAgQSB2YWxpZGF0b3IgdGhhdCBjb21wb3NlcyBtdWx0aXBs
ZSB2YWxpZGF0b3JzIGludG8gb25lLgorCisgICAgV2hlbiBjYWxsZWQgb24gYSB2YWx1ZSwgaXQg
cnVucyBhbGwgd3JhcHBlZCB2YWxpZGF0b3JzLgorCisgICAgOnBhcmFtIHZhbGlkYXRvcnM6IEFy
Yml0cmFyeSBudW1iZXIgb2YgdmFsaWRhdG9ycy4KKyAgICA6dHlwZSB2YWxpZGF0b3JzOiBjYWxs
YWJsZXMKKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIHZhbHMg
PSBbXQorICAgIGZvciB2YWxpZGF0b3IgaW4gdmFsaWRhdG9yczoKKyAgICAgICAgdmFscy5leHRl
bmQoCisgICAgICAgICAgICB2YWxpZGF0b3IuX3ZhbGlkYXRvcnMgaWYgaXNpbnN0YW5jZSh2YWxp
ZGF0b3IsIF9BbmRWYWxpZGF0b3IpCisgICAgICAgICAgICBlbHNlIFt2YWxpZGF0b3JdCisgICAg
ICAgICkKKworICAgIHJldHVybiBfQW5kVmFsaWRhdG9yKHR1cGxlKHZhbHMpKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9jb252ZXJ0ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0
ci9jb252ZXJ0ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiM2JhYzkyYmU1MjRhMjYwZWQ2MzEyYzlhYzYz
NjA1MDNhNjU4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2NvbnZl
cnRlcnMucHkKQEAgLTAsMCArMSwyNCBAQAorIiIiCitDb21tb25seSB1c2VmdWwgY29udmVydGVy
cy4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisKKworZGVmIG9wdGlvbmFsKGNvbnZlcnRlcik6CisgICAgIiIi
CisgICAgQSBjb252ZXJ0ZXIgdGhhdCBhbGxvd3MgYW4gYXR0cmlidXRlIHRvIGJlIG9wdGlvbmFs
LiBBbiBvcHRpb25hbCBhdHRyaWJ1dGUKKyAgICBpcyBvbmUgd2hpY2ggY2FuIGJlIHNldCB0byBg
YE5vbmVgYC4KKworICAgIDpwYXJhbSBjYWxsYWJsZSBjb252ZXJ0ZXI6IHRoZSBjb252ZXJ0ZXIg
dGhhdCBpcyB1c2VkIGZvciBub24tYGBOb25lYGAKKyAgICAgICAgdmFsdWVzLgorCisgICAgLi4g
IHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorCisgICAgZGVmIG9wdGlvbmFsX2NvbnZl
cnRlcih2YWwpOgorICAgICAgICBpZiB2YWwgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBO
b25lCisgICAgICAgIHJldHVybiBjb252ZXJ0ZXIodmFsKQorCisgICAgcmV0dXJuIG9wdGlvbmFs
X2NvbnZlcnRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9leGNlcHRpb25zLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9leGNlcHRpb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NDlmM2M5
YzAxY2YzNzFhNWYzYmExNjM5YTdlODZmYmI5MjcyZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL3NyYy9hdHRyL2V4Y2VwdGlvbnMucHkKQEAgLTAsMCArMSw0OCBAQAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
CisKK2NsYXNzIEZyb3plbkluc3RhbmNlRXJyb3IoQXR0cmlidXRlRXJyb3IpOgorICAgICIiIgor
ICAgIEEgZnJvemVuL2ltbXV0YWJsZSBpbnN0YW5jZSBoYXMgYmVlbiBhdHRlbXB0ZWQgdG8gYmUg
bW9kaWZpZWQuCisKKyAgICBJdCBtaXJyb3JzIHRoZSBiZWhhdmlvciBvZiBgYG5hbWVkdHVwbGVz
YGAgYnkgdXNpbmcgdGhlIHNhbWUgZXJyb3IgbWVzc2FnZQorICAgIGFuZCBzdWJjbGFzc2luZyA6
ZXhjOmBBdHRyaWJ1dGVFcnJvcmAuCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNi4xLjAKKyAg
ICAiIiIKKyAgICBtc2cgPSAiY2FuJ3Qgc2V0IGF0dHJpYnV0ZSIKKyAgICBhcmdzID0gW21zZ10K
KworCitjbGFzcyBBdHRyc0F0dHJpYnV0ZU5vdEZvdW5kRXJyb3IoVmFsdWVFcnJvcik6CisgICAg
IiIiCisgICAgQW4gYGBhdHRyc2BgIGZ1bmN0aW9uIGNvdWxkbid0IGZpbmQgYW4gYXR0cmlidXRl
IHRoYXQgdGhlIHVzZXIgYXNrZWQgZm9yLgorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMTYuMi4w
CisgICAgIiIiCisKKworY2xhc3MgTm90QW5BdHRyc0NsYXNzRXJyb3IoVmFsdWVFcnJvcik6Cisg
ICAgIiIiCisgICAgQSBub24tYGBhdHRyc2BgIGNsYXNzIGhhcyBiZWVuIHBhc3NlZCBpbnRvIGFu
IGBgYXR0cnNgYCBmdW5jdGlvbi4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE2LjIuMAorICAg
ICIiIgorCisKK2NsYXNzIERlZmF1bHRBbHJlYWR5U2V0RXJyb3IoUnVudGltZUVycm9yKToKKyAg
ICAiIiIKKyAgICBBIGRlZmF1bHQgaGFzIGJlZW4gc2V0IHVzaW5nIGBgYXR0ci5pYigpYGAgYW5k
IGlzIGF0dGVtcHRlZCB0byBiZSByZXNldAorICAgIHVzaW5nIHRoZSBkZWNvcmF0b3IuCisKKyAg
ICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAKKyAgICAiIiIKKworCitjbGFzcyBVbmFubm90YXRl
ZEF0dHJpYnV0ZUVycm9yKFJ1bnRpbWVFcnJvcik6CisgICAgIiIiCisgICAgQSBjbGFzcyB3aXRo
IGBgYXV0b19hdHRyaWJzPVRydWVgYCBoYXMgYW4gYGBhdHRyLmliKClgYCB3aXRob3V0IGEgdHlw
ZQorICAgIGFubm90YXRpb24uCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4zLjAKKyAgICAi
IiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvZmlsdGVycy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvc3JjL2F0dHIvZmlsdGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWJhZDM1ZTM2M2Q3MDVjZGMxMTU0
OWIwY2NmNGRhODNkYTA4MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0
ci9maWx0ZXJzLnB5CkBAIC0wLDAgKzEsNTIgQEAKKyIiIgorQ29tbW9ubHkgdXNlZnVsIGZpbHRl
cnMgZm9yIDpmdW5jOmBhdHRyLmFzZGljdGAuCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitmcm9tIC5fY29t
cGF0IGltcG9ydCBpc2NsYXNzCitmcm9tIC5fbWFrZSBpbXBvcnQgQXR0cmlidXRlCisKKworZGVm
IF9zcGxpdF93aGF0KHdoYXQpOgorICAgICIiIgorICAgIFJldHVybnMgYSB0dXBsZSBvZiBgZnJv
emVuc2V0YHMgb2YgY2xhc3NlcyBhbmQgYXR0cmlidXRlcy4KKyAgICAiIiIKKyAgICByZXR1cm4g
KAorICAgICAgICBmcm96ZW5zZXQoY2xzIGZvciBjbHMgaW4gd2hhdCBpZiBpc2NsYXNzKGNscykp
LAorICAgICAgICBmcm96ZW5zZXQoY2xzIGZvciBjbHMgaW4gd2hhdCBpZiBpc2luc3RhbmNlKGNs
cywgQXR0cmlidXRlKSksCisgICAgKQorCisKK2RlZiBpbmNsdWRlKCp3aGF0KToKKyAgICAiIiIK
KyAgICBXaGl0ZWxpc3QgKndoYXQqLgorCisgICAgOnBhcmFtIHdoYXQ6IFdoYXQgdG8gd2hpdGVs
aXN0LgorICAgIDp0eXBlIHdoYXQ6IDpjbGFzczpgbGlzdGAgb2YgOmNsYXNzOmB0eXBlYCBvciA6
Y2xhc3M6YGF0dHIuQXR0cmlidXRlYFwgcworCisgICAgOnJ0eXBlOiA6Y2xhc3M6YGNhbGxhYmxl
YAorICAgICIiIgorICAgIGNscywgYXR0cnMgPSBfc3BsaXRfd2hhdCh3aGF0KQorCisgICAgZGVm
IGluY2x1ZGVfKGF0dHJpYnV0ZSwgdmFsdWUpOgorICAgICAgICByZXR1cm4gdmFsdWUuX19jbGFz
c19fIGluIGNscyBvciBhdHRyaWJ1dGUgaW4gYXR0cnMKKworICAgIHJldHVybiBpbmNsdWRlXwor
CisKK2RlZiBleGNsdWRlKCp3aGF0KToKKyAgICAiIiIKKyAgICBCbGFja2xpc3QgKndoYXQqLgor
CisgICAgOnBhcmFtIHdoYXQ6IFdoYXQgdG8gYmxhY2tsaXN0LgorICAgIDp0eXBlIHdoYXQ6IDpj
bGFzczpgbGlzdGAgb2YgY2xhc3NlcyBvciA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYFwgcy4KKwor
ICAgIDpydHlwZTogOmNsYXNzOmBjYWxsYWJsZWAKKyAgICAiIiIKKyAgICBjbHMsIGF0dHJzID0g
X3NwbGl0X3doYXQod2hhdCkKKworICAgIGRlZiBleGNsdWRlXyhhdHRyaWJ1dGUsIHZhbHVlKToK
KyAgICAgICAgcmV0dXJuIHZhbHVlLl9fY2xhc3NfXyBub3QgaW4gY2xzIGFuZCBhdHRyaWJ1dGUg
bm90IGluIGF0dHJzCisKKyAgICByZXR1cm4gZXhjbHVkZV8KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvc3JjL2F0dHIvdmFsaWRhdG9ycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdmFsaWRhdG9y
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mODg5MmZjZGZlNGVlZmU1NTUzY2QzNjE3YTQ3YTliOTc4Y2U1NjJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci92YWxpZGF0b3JzLnB5CkBA
IC0wLDAgKzEsMTY2IEBACisiIiIKK0NvbW1vbmx5IHVzZWZ1bCB2YWxpZGF0b3JzLgorIiIiCisK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKworZnJvbSAuX21ha2UgaW1wb3J0IF9BbmRWYWxpZGF0b3IsIGFuZF8sIGF0dHJp
YiwgYXR0cnMKKworCitfX2FsbF9fID0gWworICAgICJhbmRfIiwKKyAgICAiaW5fIiwKKyAgICAi
aW5zdGFuY2Vfb2YiLAorICAgICJvcHRpb25hbCIsCisgICAgInByb3ZpZGVzIiwKK10KKworCitA
YXR0cnMocmVwcj1GYWxzZSwgc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorY2xhc3MgX0luc3RhbmNl
T2ZWYWxpZGF0b3Iob2JqZWN0KToKKyAgICB0eXBlID0gYXR0cmliKCkKKworICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCBpbnN0LCBhdHRyLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBXZSB1
c2UgYSBjYWxsYWJsZSBjbGFzcyB0byBiZSBhYmxlIHRvIGNoYW5nZSB0aGUgYGBfX3JlcHJfX2Bg
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHNlbGYudHlw
ZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIid7bmFt
ZX0nIG11c3QgYmUge3R5cGUhcn0gKGdvdCB7dmFsdWUhcn0gdGhhdCBpcyBhICIKKyAgICAgICAg
ICAgICAgICAie2FjdHVhbCFyfSkuIgorICAgICAgICAgICAgICAgIC5mb3JtYXQobmFtZT1hdHRy
Lm5hbWUsIHR5cGU9c2VsZi50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsPXZh
bHVlLl9fY2xhc3NfXywgdmFsdWU9dmFsdWUpLAorICAgICAgICAgICAgICAgIGF0dHIsIHNlbGYu
dHlwZSwgdmFsdWUsCisgICAgICAgICAgICApCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAiPGluc3RhbmNlX29mIHZhbGlkYXRvciBmb3Ig
dHlwZSB7dHlwZSFyfT4iCisgICAgICAgICAgICAuZm9ybWF0KHR5cGU9c2VsZi50eXBlKQorICAg
ICAgICApCisKKworZGVmIGluc3RhbmNlX29mKHR5cGUpOgorICAgICIiIgorICAgIEEgdmFsaWRh
dG9yIHRoYXQgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYCBpZiB0aGUgaW5pdGlhbGl6ZXIgaXMg
Y2FsbGVkCisgICAgd2l0aCBhIHdyb25nIHR5cGUgZm9yIHRoaXMgcGFydGljdWxhciBhdHRyaWJ1
dGUgKGNoZWNrcyBhcmUgcGVyZm9ybWVkIHVzaW5nCisgICAgOmZ1bmM6YGlzaW5zdGFuY2VgIHRo
ZXJlZm9yZSBpdCdzIGFsc28gdmFsaWQgdG8gcGFzcyBhIHR1cGxlIG9mIHR5cGVzKS4KKworICAg
IDpwYXJhbSB0eXBlOiBUaGUgdHlwZSB0byBjaGVjayBmb3IuCisgICAgOnR5cGUgdHlwZTogdHlw
ZSBvciB0dXBsZSBvZiB0eXBlcworCisgICAgOnJhaXNlcyBUeXBlRXJyb3I6IFdpdGggYSBodW1h
biByZWFkYWJsZSBlcnJvciBtZXNzYWdlLCB0aGUgYXR0cmlidXRlCisgICAgICAgIChvZiB0eXBl
IDpjbGFzczpgYXR0ci5BdHRyaWJ1dGVgKSwgdGhlIGV4cGVjdGVkIHR5cGUsIGFuZCB0aGUgdmFs
dWUgaXQKKyAgICAgICAgZ290LgorICAgICIiIgorICAgIHJldHVybiBfSW5zdGFuY2VPZlZhbGlk
YXRvcih0eXBlKQorCisKK0BhdHRycyhyZXByPUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRydWUp
CitjbGFzcyBfUHJvdmlkZXNWYWxpZGF0b3Iob2JqZWN0KToKKyAgICBpbnRlcmZhY2UgPSBhdHRy
aWIoKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGluc3QsIGF0dHIsIHZhbHVlKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFdlIHVzZSBhIGNhbGxhYmxlIGNsYXNzIHRvIGJlIGFibGUgdG8gY2hh
bmdlIHRoZSBgYF9fcmVwcl9fYGAuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5p
bnRlcmZhY2UucHJvdmlkZWRCeSh2YWx1ZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
CisgICAgICAgICAgICAgICAgIid7bmFtZX0nIG11c3QgcHJvdmlkZSB7aW50ZXJmYWNlIXJ9IHdo
aWNoIHt2YWx1ZSFyfSAiCisgICAgICAgICAgICAgICAgImRvZXNuJ3QuIgorICAgICAgICAgICAg
ICAgIC5mb3JtYXQobmFtZT1hdHRyLm5hbWUsIGludGVyZmFjZT1zZWxmLmludGVyZmFjZSwgdmFs
dWU9dmFsdWUpLAorICAgICAgICAgICAgICAgIGF0dHIsIHNlbGYuaW50ZXJmYWNlLCB2YWx1ZSwK
KyAgICAgICAgICAgICkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICgKKyAgICAgICAgICAgICI8cHJvdmlkZXMgdmFsaWRhdG9yIGZvciBpbnRlcmZhY2Uge2ludGVy
ZmFjZSFyfT4iCisgICAgICAgICAgICAuZm9ybWF0KGludGVyZmFjZT1zZWxmLmludGVyZmFjZSkK
KyAgICAgICAgKQorCisKK2RlZiBwcm92aWRlcyhpbnRlcmZhY2UpOgorICAgICIiIgorICAgIEEg
dmFsaWRhdG9yIHRoYXQgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYCBpZiB0aGUgaW5pdGlhbGl6
ZXIgaXMgY2FsbGVkCisgICAgd2l0aCBhbiBvYmplY3QgdGhhdCBkb2VzIG5vdCBwcm92aWRlIHRo
ZSByZXF1ZXN0ZWQgKmludGVyZmFjZSogKGNoZWNrcyBhcmUKKyAgICBwZXJmb3JtZWQgdXNpbmcg
YGBpbnRlcmZhY2UucHJvdmlkZWRCeSh2YWx1ZSlgYCAoc2VlIGB6b3BlLmludGVyZmFjZQorICAg
IDxodHRwczovL3pvcGVpbnRlcmZhY2UucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lz5gXykuCisK
KyAgICA6cGFyYW0gem9wZS5pbnRlcmZhY2UuSW50ZXJmYWNlIGludGVyZmFjZTogVGhlIGludGVy
ZmFjZSB0byBjaGVjayBmb3IuCisKKyAgICA6cmFpc2VzIFR5cGVFcnJvcjogV2l0aCBhIGh1bWFu
IHJlYWRhYmxlIGVycm9yIG1lc3NhZ2UsIHRoZSBhdHRyaWJ1dGUKKyAgICAgICAgKG9mIHR5cGUg
OmNsYXNzOmBhdHRyLkF0dHJpYnV0ZWApLCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBhbmQgdGhl
CisgICAgICAgIHZhbHVlIGl0IGdvdC4KKyAgICAiIiIKKyAgICByZXR1cm4gX1Byb3ZpZGVzVmFs
aWRhdG9yKGludGVyZmFjZSkKKworCitAYXR0cnMocmVwcj1GYWxzZSwgc2xvdHM9VHJ1ZSwgaGFz
aD1UcnVlKQorY2xhc3MgX09wdGlvbmFsVmFsaWRhdG9yKG9iamVjdCk6CisgICAgdmFsaWRhdG9y
ID0gYXR0cmliKCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBpbnN0LCBhdHRyLCB2YWx1ZSk6
CisgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAg
ICBzZWxmLnZhbGlkYXRvcihpbnN0LCBhdHRyLCB2YWx1ZSkKKworICAgIGRlZiBfX3JlcHJfXyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICI8b3B0aW9uYWwgdmFsaWRhdG9y
IGZvciB7d2hhdH0gb3IgTm9uZT4iCisgICAgICAgICAgICAuZm9ybWF0KHdoYXQ9cmVwcihzZWxm
LnZhbGlkYXRvcikpCisgICAgICAgICkKKworCitkZWYgb3B0aW9uYWwodmFsaWRhdG9yKToKKyAg
ICAiIiIKKyAgICBBIHZhbGlkYXRvciB0aGF0IG1ha2VzIGFuIGF0dHJpYnV0ZSBvcHRpb25hbC4g
IEFuIG9wdGlvbmFsIGF0dHJpYnV0ZSBpcyBvbmUKKyAgICB3aGljaCBjYW4gYmUgc2V0IHRvIGBg
Tm9uZWBgIGluIGFkZGl0aW9uIHRvIHNhdGlzZnlpbmcgdGhlIHJlcXVpcmVtZW50cyBvZgorICAg
IHRoZSBzdWItdmFsaWRhdG9yLgorCisgICAgOnBhcmFtIHZhbGlkYXRvcjogQSB2YWxpZGF0b3Ig
KG9yIGEgbGlzdCBvZiB2YWxpZGF0b3JzKSB0aGF0IGlzIHVzZWQgZm9yCisgICAgICAgIG5vbi1g
YE5vbmVgYCB2YWx1ZXMuCisgICAgOnR5cGUgdmFsaWRhdG9yOiBjYWxsYWJsZSBvciA6Y2xhc3M6
YGxpc3RgIG9mIGNhbGxhYmxlcy4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE1LjEuMAorICAg
IC4uIHZlcnNpb25jaGFuZ2VkOjogMTcuMS4wICp2YWxpZGF0b3IqIGNhbiBiZSBhIGxpc3Qgb2Yg
dmFsaWRhdG9ycy4KKyAgICAiIiIKKyAgICBpZiBpc2luc3RhbmNlKHZhbGlkYXRvciwgbGlzdCk6
CisgICAgICAgIHJldHVybiBfT3B0aW9uYWxWYWxpZGF0b3IoX0FuZFZhbGlkYXRvcih2YWxpZGF0
b3IpKQorICAgIHJldHVybiBfT3B0aW9uYWxWYWxpZGF0b3IodmFsaWRhdG9yKQorCisKK0BhdHRy
cyhyZXByPUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRydWUpCitjbGFzcyBfSW5WYWxpZGF0b3Io
b2JqZWN0KToKKyAgICBvcHRpb25zID0gYXR0cmliKCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBpbnN0LCBhdHRyLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZWxmLm9wdGlv
bnM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICIne25h
bWV9JyBtdXN0IGJlIGluIHtvcHRpb25zIXJ9IChnb3Qge3ZhbHVlIXJ9KSIKKyAgICAgICAgICAg
ICAgICAuZm9ybWF0KG5hbWU9YXR0ci5uYW1lLCBvcHRpb25zPXNlbGYub3B0aW9ucywgdmFsdWU9
dmFsdWUpCisgICAgICAgICAgICApCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
IHJldHVybiAoCisgICAgICAgICAgICAiPGluXyB2YWxpZGF0b3Igd2l0aCBvcHRpb25zIHtvcHRp
b25zIXJ9PiIKKyAgICAgICAgICAgIC5mb3JtYXQob3B0aW9ucz1zZWxmLm9wdGlvbnMpCisgICAg
ICAgICkKKworCitkZWYgaW5fKG9wdGlvbnMpOgorICAgICIiIgorICAgIEEgdmFsaWRhdG9yIHRo
YXQgcmFpc2VzIGEgOmV4YzpgVmFsdWVFcnJvcmAgaWYgdGhlIGluaXRpYWxpemVyIGlzIGNhbGxl
ZAorICAgIHdpdGggYSB2YWx1ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyBpbiB0aGUgb3B0aW9ucyBw
cm92aWRlZC4gIFRoZSBjaGVjayBpcworICAgIHBlcmZvcm1lZCB1c2luZyBgYHZhbHVlIGluIG9w
dGlvbnNgYC4KKworICAgIDpwYXJhbSBvcHRpb25zOiBBbGxvd2VkIG9wdGlvbnMuCisgICAgOnR5
cGUgb3B0aW9uczogbGlzdCwgdHVwbGUsIDpjbGFzczpgZW51bS5FbnVtYCwgLi4uCisKKyAgICA6
cmFpc2VzIFZhbHVlRXJyb3I6IFdpdGggYSBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlLCB0
aGUgYXR0cmlidXRlIChvZgorICAgICAgIHR5cGUgOmNsYXNzOmBhdHRyLkF0dHJpYnV0ZWApLCB0
aGUgZXhwZWN0ZWQgb3B0aW9ucywgYW5kIHRoZSB2YWx1ZSBpdAorICAgICAgIGdvdC4KKworICAg
IC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIHJldHVybiBfSW5WYWxpZGF0
b3Iob3B0aW9ucykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNTI1
ZDJiNTk2MWFjZDczNDA1NDM5MzM5YzU0M2E0OTZhZWQ1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3NyYy9hdHRyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjUgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRy
L19jb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb25maWcucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3NyYy9hdHRyL19mdW5jcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX21ha2UucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL3NyYy9hdHRyL2NvbnZlcnRlcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2V4Y2Vw
dGlvbnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2ZpbHRlcnMucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Ny
Yy9hdHRyL3ZhbGlkYXRvcnMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMv
dGVzdF9hbm5vdGF0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9hbm5vdGF0aW9ucy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDJmMjFiZDVlNmVhNzk5ZDFlNDgwNTgxZWI5MTJjZTlhM2MyZTA5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Fubm90YXRpb25zLnB5CkBA
IC0wLDAgKzEsMTU2IEBACisiIiIKK1Rlc3RzIGZvciBQRVAtNTI2IHR5cGUgYW5ub3RhdGlvbnMu
CisKK1B5dGhvbiAzLjYrIG9ubHkuCisiIiIKKworaW1wb3J0IHR5cGVzCitpbXBvcnQgdHlwaW5n
CisKK2ltcG9ydCBweXRlc3QKKworaW1wb3J0IGF0dHIKKworZnJvbSBhdHRyLmV4Y2VwdGlvbnMg
aW1wb3J0IFVuYW5ub3RhdGVkQXR0cmlidXRlRXJyb3IKKworCitjbGFzcyBUZXN0QW5ub3RhdGlv
bnM6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIHR5cGVzIGRlcml2ZWQgZnJvbSB2YXJpYWJsZSBh
bm5vdGF0aW9ucyAoUEVQLTUyNikuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9iYXNpY19hbm5v
dGF0aW9ucyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIGBBdHRyaWJ1dGUu
dHlwZWAgYXR0ciBmcm9tIGJhc2ljIHR5cGUgYW5ub3RhdGlvbnMuCisgICAgICAgICIiIgorICAg
ICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICB4OiBpbnQgPSBhdHRy
LmliKCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgICAgICAgICAgeiA9
IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBpbnQgaXMgYXR0ci5maWVsZHMoQykueC50eXBl
CisgICAgICAgIGFzc2VydCBzdHIgaXMgYXR0ci5maWVsZHMoQykueS50eXBlCisgICAgICAgIGFz
c2VydCBOb25lIGlzIGF0dHIuZmllbGRzKEMpLnoudHlwZQorCisgICAgZGVmIHRlc3RfY2F0Y2hl
c19iYXNpY190eXBlX2NvbmZsaWN0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmFpc2Vz
IFZhbHVlRXJyb3IgaWYgdHlwZSBpcyBzcGVjaWZpZWQgYm90aCB3YXlzLgorICAgICAgICAiIiIK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGU6CisgICAgICAgICAg
ICBAYXR0ci5zCisgICAgICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgICAgIHg6IGludCA9
IGF0dHIuaWIodHlwZT1pbnQpCisKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJUeXBl
IGFubm90YXRpb24gYW5kIHR5cGUgYXJndW1lbnQgY2Fubm90IGJvdGggYmUgcHJlc2VudCIsCisg
ICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF90eXBpbmdfYW5ub3RhdGlv
bnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBgQXR0cmlidXRlLnR5cGVg
IGF0dHIgZnJvbSB0eXBpbmcgYW5ub3RhdGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBAYXR0
ci5zCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICB4OiB0eXBpbmcuTGlzdFtpbnRdID0g
YXR0ci5pYigpCisgICAgICAgICAgICB5ID0gYXR0ci5pYih0eXBlPXR5cGluZy5PcHRpb25hbFtz
dHJdKQorCisgICAgICAgIGFzc2VydCB0eXBpbmcuTGlzdFtpbnRdIGlzIGF0dHIuZmllbGRzKEMp
LngudHlwZQorICAgICAgICBhc3NlcnQgdHlwaW5nLk9wdGlvbmFsW3N0cl0gaXMgYXR0ci5maWVs
ZHMoQykueS50eXBlCisKKyAgICBkZWYgdGVzdF9vbmx5X2F0dHJzX2Fubm90YXRpb25zX2NvbGxl
Y3RlZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEFubm90YXRpb25zIHRoYXQgYXJlbid0
IHNldCB0byBhbiBhdHRyLmliIGFyZSBpZ25vcmVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0
dHIucworICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgeDogdHlwaW5nLkxpc3RbaW50XSA9
IGF0dHIuaWIoKQorICAgICAgICAgICAgeTogaW50CisKKyAgICAgICAgYXNzZXJ0IDEgPT0gbGVu
KGF0dHIuZmllbGRzKEMpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzbG90cyIs
IFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfYXV0b19hdHRyaWJzKHNlbGYsIHNsb3RzKToK
KyAgICAgICAgIiIiCisgICAgICAgIElmICphdXRvX2F0dHJpYnMqIGlzIFRydWUsIGJhcmUgYW5u
b3RhdGlvbnMgYXJlIGNvbGxlY3RlZCB0b28uCisgICAgICAgIERlZmF1bHRzIHdvcmsgYW5kIGNs
YXNzIHZhcmlhYmxlcyBhcmUgaWdub3JlZC4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMo
YXV0b19hdHRyaWJzPVRydWUsIHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBDOgorICAgICAg
ICAgICAgY2xzX3ZhcjogdHlwaW5nLkNsYXNzVmFyW2ludF0gPSAyMworICAgICAgICAgICAgYTog
aW50CisgICAgICAgICAgICB4OiB0eXBpbmcuTGlzdFtpbnRdID0gYXR0ci5GYWN0b3J5KGxpc3Qp
CisgICAgICAgICAgICB5OiBpbnQgPSAyCisgICAgICAgICAgICB6OiBpbnQgPSBhdHRyLmliKGRl
ZmF1bHQ9MykKKyAgICAgICAgICAgIGZvbzogdHlwaW5nLkFueSA9IE5vbmUKKworICAgICAgICBp
ID0gQyg0MikKKyAgICAgICAgYXNzZXJ0ICJDKGE9NDIsIHg9W10sIHk9Miwgej0zLCBmb289Tm9u
ZSkiID09IHJlcHIoaSkKKworICAgICAgICBhdHRyX25hbWVzID0gc2V0KGEubmFtZSBmb3IgYSBp
biBDLl9fYXR0cnNfYXR0cnNfXykKKyAgICAgICAgYXNzZXJ0ICJhIiBpbiBhdHRyX25hbWVzICAj
IGp1c3QgZG91YmxlIGNoZWNrIHRoYXQgdGhlIHNldCB3b3JrcworICAgICAgICBhc3NlcnQgImNs
c192YXIiIG5vdCBpbiBhdHRyX25hbWVzCisKKyAgICAgICAgYXNzZXJ0IGludCA9PSBhdHRyLmZp
ZWxkcyhDKS5hLnR5cGUKKworICAgICAgICBhc3NlcnQgYXR0ci5GYWN0b3J5KGxpc3QpID09IGF0
dHIuZmllbGRzKEMpLnguZGVmYXVsdAorICAgICAgICBhc3NlcnQgdHlwaW5nLkxpc3RbaW50XSA9
PSBhdHRyLmZpZWxkcyhDKS54LnR5cGUKKworICAgICAgICBhc3NlcnQgaW50ID09IGF0dHIuZmll
bGRzKEMpLnkudHlwZQorICAgICAgICBhc3NlcnQgMiA9PSBhdHRyLmZpZWxkcyhDKS55LmRlZmF1
bHQKKworICAgICAgICBhc3NlcnQgaW50ID09IGF0dHIuZmllbGRzKEMpLnoudHlwZQorCisgICAg
ICAgIGFzc2VydCB0eXBpbmcuQW55ID09IGF0dHIuZmllbGRzKEMpLmZvby50eXBlCisKKyAgICAg
ICAgIyBDbGFzcyBib2R5IGlzIGNsZWFuLgorICAgICAgICBpZiBzbG90cyBpcyBGYWxzZToKKyAg
ICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAg
ICAgICAgQy55CisKKyAgICAgICAgICAgIGFzc2VydCAyID09IGkueQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoQy55LCB0eXBlcy5NZW1iZXJEZXNjcmlwdG9y
VHlwZSkKKworICAgICAgICAgICAgaS55ID0gMjMKKyAgICAgICAgICAgIGFzc2VydCAyMyA9PSBp
LnkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBbVHJ1ZSwgRmFsc2Vd
KQorICAgIGRlZiB0ZXN0X2F1dG9fYXR0cmlic191bmFubm90YXRlZChzZWxmLCBzbG90cyk6Cisg
ICAgICAgICIiIgorICAgICAgICBVbmFubm90YXRlZCBgYXR0ci5pYmBzIHJhaXNlIGFuIGVycm9y
LgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFVuYW5ub3RhdGVkQXR0
cmlidXRlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzLCBhdXRv
X2F0dHJpYnM9VHJ1ZSkKKyAgICAgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICAgICAgdiA9
IGF0dHIuaWIoKQorICAgICAgICAgICAgICAgIHg6IGludAorICAgICAgICAgICAgICAgIHkgPSBh
dHRyLmliKCkKKyAgICAgICAgICAgICAgICB6OiBzdHIKKworICAgICAgICBhc3NlcnQgKAorICAg
ICAgICAgICAgIlRoZSBmb2xsb3dpbmcgYGF0dHIuaWJgcyBsYWNrIGEgdHlwZSBhbm5vdGF0aW9u
OiB2LCB5LiIsCisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9hdXRvX2F0
dHJpYnNfc3ViY2xhc3Npbmcoc2VsZiwgc2xvdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0
cmlidXRlcyBmcm9tIHN1cGVyIGNsYXNzZXMgYXJlIGluaGVyaXRlZCwgaXQgZG9lc24ndCBtYXR0
ZXIgaWYgdGhlCisgICAgICAgIHN1YmNsYXNzIGhhcyBhbm5vdGF0aW9ucyBvciBub3QuCisKKyAg
ICAgICAgUmVmICMyOTEKKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMs
IGF1dG9fYXR0cmlicz1UcnVlKQorICAgICAgICBjbGFzcyBBOgorICAgICAgICAgICAgYTogaW50
ID0gMQorCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMsIGF1dG9fYXR0cmlicz1UcnVlKQor
ICAgICAgICBjbGFzcyBCKEEpOgorICAgICAgICAgICAgYjogaW50ID0gMgorCisgICAgICAgIEBh
dHRyLnMoc2xvdHM9c2xvdHMsIGF1dG9fYXR0cmlicz1UcnVlKQorICAgICAgICBjbGFzcyBDKEEp
OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGFzc2VydCAiQihhPTEsIGI9MikiID09IHJl
cHIoQigpKQorICAgICAgICBhc3NlcnQgIkMoYT0xKSIgPT0gcmVwcihDKCkpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0
X2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODdiZTAzYTU5NzkzYmZmOTQ1N2I2M2UyMmRkNWE4Njg0
YTNjZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2NvbmZpZy5w
eQpAQCAtMCwwICsxLDQzIEBACisiIiIKK1Rlc3RzIGZvciBgYXR0ci5fY29uZmlnYC4KKyIiIgor
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBhdHRyIGltcG9ydCBfY29uZmlnCisK
KworY2xhc3MgVGVzdENvbmZpZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBSdW4gdmFsaWRhdG9ycyBieSBkZWZhdWx0LgorICAgICAg
ICAiIiIKKyAgICAgICAgYXNzZXJ0IFRydWUgaXMgX2NvbmZpZy5fcnVuX3ZhbGlkYXRvcnMKKwor
ICAgIGRlZiB0ZXN0X3NldF9ydW5fdmFsaWRhdG9ycyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFNldHMgYF9ydW5fdmFsaWRhdG9yc2AuCisgICAgICAgICIiIgorICAgICAgICBfY29uZmln
LnNldF9ydW5fdmFsaWRhdG9ycyhGYWxzZSkKKyAgICAgICAgYXNzZXJ0IEZhbHNlIGlzIF9jb25m
aWcuX3J1bl92YWxpZGF0b3JzCisgICAgICAgIF9jb25maWcuc2V0X3J1bl92YWxpZGF0b3JzKFRy
dWUpCisgICAgICAgIGFzc2VydCBUcnVlIGlzIF9jb25maWcuX3J1bl92YWxpZGF0b3JzCisKKyAg
ICBkZWYgdGVzdF9nZXRfcnVuX3ZhbGlkYXRvcnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm5zIGBfcnVuX3ZhbGlkYXRvcnNgLgorICAgICAgICAiIiIKKyAgICAgICAgX2NvbmZp
Zy5fcnVuX3ZhbGlkYXRvcnMgPSBGYWxzZQorICAgICAgICBhc3NlcnQgX2NvbmZpZy5fcnVuX3Zh
bGlkYXRvcnMgaXMgX2NvbmZpZy5nZXRfcnVuX3ZhbGlkYXRvcnMoKQorICAgICAgICBfY29uZmln
Ll9ydW5fdmFsaWRhdG9ycyA9IFRydWUKKyAgICAgICAgYXNzZXJ0IF9jb25maWcuX3J1bl92YWxp
ZGF0b3JzIGlzIF9jb25maWcuZ2V0X3J1bl92YWxpZGF0b3JzKCkKKworICAgIGRlZiB0ZXN0X3dy
b25nX3R5cGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBQYXNzaW5nIGFueXRoaW5nIGVs
c2UgdGhhbiBhIGJvb2xlYW4gcmFpc2VzIFR5cGVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBfY29uZmln
LnNldF9ydW5fdmFsaWRhdG9ycygiRmFsc2UiKQorICAgICAgICBhc3NlcnQgIidydW4nIG11c3Qg
YmUgYm9vbC4iID09IGUudmFsdWUuYXJnc1swXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0
cy90ZXN0X2NvbnZlcnRlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29udmVydGVycy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYWYzOWQ4YWNlMDJhMjg1NWI3NTZiMzdkYmYyZWE4ZjZkYTQxODY0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2NvbnZlcnRlcnMucHkKQEAg
LTAsMCArMSwzNiBAQAorIiIiCitUZXN0cyBmb3IgYGF0dHIuY29udmVydGVyc2AuCisiIiIKKwor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKKworaW1wb3J0IHB5dGVzdAor
Citmcm9tIGF0dHIuY29udmVydGVycyBpbXBvcnQgb3B0aW9uYWwKKworCitjbGFzcyBUZXN0T3B0
aW9uYWwob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYG9wdGlvbmFsYC4KKyAgICAi
IiIKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhfdHlwZShzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFdyYXBwZWQgY29udmVydGVyIGlzIHVzZWQgYXMgdXN1YWwgaWYgdmFsdWUgaXMgbm90
IE5vbmUuCisgICAgICAgICIiIgorICAgICAgICBjID0gb3B0aW9uYWwoaW50KQorICAgICAgICBh
c3NlcnQgYygiNDIiKSA9PSA0MgorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc193aXRoX25vbmUoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBOb3RoaW5nIGhhcHBlbnMgaWYgTm9uZS4KKyAgICAg
ICAgIiIiCisgICAgICAgIGMgPSBvcHRpb25hbChpbnQpCisgICAgICAgIGFzc2VydCBjKE5vbmUp
IGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2ZhaWwoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBQcm9wYWdhdGVzIHRoZSB1bmRlcmx5aW5nIGNvbnZlcnNpb24gZXJyb3Igd2hlbiBjb252ZXJz
aW9uIGZhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgYyA9IG9wdGlvbmFsKGludCkKKyAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgYygibm90X2Fu
X2ludCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZGFya19tYWdpYy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvdGVzdF9kYXJrX21hZ2ljLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNjY2NWNm
NWZlMTA5NTNkNmU4NzlhZTY0MjgyZWE4MmUwZTM4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL3Rlc3RzL3Rlc3RfZGFya19tYWdpYy5weQpAQCAtMCwwICsxLDM4MiBAQAorIiIiCitF
bmQtdG8tZW5kIHRlc3RzLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHBpY2tsZQorCitpbXBv
cnQgcHl0ZXN0CitpbXBvcnQgc2l4CisKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgZ2l2ZW4KK2Zy
b20gaHlwb3RoZXNpcy5zdHJhdGVnaWVzIGltcG9ydCBib29sZWFucworCitpbXBvcnQgYXR0cgor
Citmcm9tIGF0dHIuX2NvbXBhdCBpbXBvcnQgVFlQRQorZnJvbSBhdHRyLl9tYWtlIGltcG9ydCBO
T1RISU5HLCBBdHRyaWJ1dGUKK2Zyb20gYXR0ci5leGNlcHRpb25zIGltcG9ydCBGcm96ZW5JbnN0
YW5jZUVycm9yCisKKworQGF0dHIucworY2xhc3MgQzEob2JqZWN0KToKKyAgICB4ID0gYXR0ci5p
Yih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgeSA9IGF0
dHIuaWIoKQorCisKK0BhdHRyLnMoc2xvdHM9VHJ1ZSkKK2NsYXNzIEMxU2xvdHMob2JqZWN0KToK
KyAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGlu
dCkpCisgICAgeSA9IGF0dHIuaWIoKQorCisKK2ZvbyA9IE5vbmUKKworCitAYXR0ci5zKCkKK2Ns
YXNzIEMyKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoZGVmYXVsdD1mb28pCisgICAgeSA9IGF0
dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpCisKKworQGF0dHIucyhzbG90cz1UcnVl
KQorY2xhc3MgQzJTbG90cyhvYmplY3QpOgorICAgIHggPSBhdHRyLmliKGRlZmF1bHQ9Zm9vKQor
ICAgIHkgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGxpc3QpKQorCisKK0BhdHRyLnMK
K2NsYXNzIFN1cGVyKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisgICAgZGVmIG1ldGgo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworCitAYXR0ci5zKHNsb3RzPVRydWUpCitj
bGFzcyBTdXBlclNsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisgICAgZGVmIG1l
dGgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworCitAYXR0ci5zCitjbGFzcyBTdWIo
U3VwZXIpOgorICAgIHkgPSBhdHRyLmliKCkKKworCitAYXR0ci5zKHNsb3RzPVRydWUpCitjbGFz
cyBTdWJTbG90cyhTdXBlclNsb3RzKToKKyAgICB5ID0gYXR0ci5pYigpCisKKworQGF0dHIucyhm
cm96ZW49VHJ1ZSwgc2xvdHM9VHJ1ZSkKK2NsYXNzIEZyb3plbihvYmplY3QpOgorICAgIHggPSBh
dHRyLmliKCkKKworCitAYXR0ci5zCitjbGFzcyBTdWJGcm96ZW4oRnJvemVuKToKKyAgICB5ID0g
YXR0ci5pYigpCisKKworQGF0dHIucyhmcm96ZW49VHJ1ZSwgc2xvdHM9RmFsc2UpCitjbGFzcyBG
cm96ZW5Ob1Nsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisKK2NsYXNzIE1ldGEo
dHlwZSk6CisgICAgcGFzcworCisKK0BhdHRyLnMKK0BzaXguYWRkX21ldGFjbGFzcyhNZXRhKQor
Y2xhc3MgV2l0aE1ldGEob2JqZWN0KToKKyAgICBwYXNzCisKKworQGF0dHIucyhzbG90cz1UcnVl
KQorQHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpCitjbGFzcyBXaXRoTWV0YVNsb3RzKG9iamVjdCk6
CisgICAgcGFzcworCisKK0Zyb21NYWtlQ2xhc3MgPSBhdHRyLm1ha2VfY2xhc3MoIkZyb21NYWtl
Q2xhc3MiLCBbIngiXSkKKworCitjbGFzcyBUZXN0RGFya01hZ2ljKG9iamVjdCk6CisgICAgIiIi
CisgICAgSW50ZWdyYXRpb24gdGVzdHMuCisgICAgIiIiCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJjbHMiLCBbQzIsIEMyU2xvdHNdKQorICAgIGRlZiB0ZXN0X2ZpZWxkcyhzZWxmLCBj
bHMpOgorICAgICAgICAiIiIKKyAgICAgICAgYGF0dHIuZmllbGRzYCB3b3Jrcy4KKyAgICAgICAg
IiIiCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBBdHRyaWJ1dGUobmFtZT0ieCIsIGRl
ZmF1bHQ9Zm9vLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICByZXByPVRy
dWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSksCisgICAgICAgICAgICBBdHRyaWJ1
dGUobmFtZT0ieSIsIGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGxpc3QpLCB2YWxpZGF0b3I9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGlu
aXQ9VHJ1ZSksCisgICAgICAgICkgPT0gYXR0ci5maWVsZHMoY2xzKQorCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQzEsIEMxU2xvdHNdKQorICAgIGRlZiB0ZXN0X2FzZGlj
dChzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgYGF0dHIuYXNkaWN0YCB3b3Jrcy4K
KyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisgICAg
ICAgICAgICAieSI6IDIsCisgICAgICAgIH0gPT0gYXR0ci5hc2RpY3QoY2xzKHg9MSwgeT0yKSkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwgW0MxLCBDMVNsb3RzXSkKKyAg
ICBkZWYgdGVzdF92YWxpZGF0b3Ioc2VsZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIGBp
bnN0YW5jZV9vZmAgcmFpc2VzIGBUeXBlRXJyb3JgIG9uIHR5cGUgbWlzbWF0Y2guCisgICAgICAg
ICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAg
ICAgICAgY2xzKCIxIiwgMikKKworICAgICAgICAjIFVzaW5nIEMxIGV4cGxpY2l0bHksIHNpbmNl
IHNsb3QgY2xhc3NlcyBkb24ndCBzdXBwb3J0IHRoaXMuCisgICAgICAgIGFzc2VydCAoCisgICAg
ICAgICAgICAiJ3gnIG11c3QgYmUgPHt0eXBlfSAnaW50Jz4gKGdvdCAnMScgdGhhdCBpcyBhIDx7
dHlwZX0gIgorICAgICAgICAgICAgIidzdHInPikuIi5mb3JtYXQodHlwZT1UWVBFKSwKKyAgICAg
ICAgICAgIGF0dHIuZmllbGRzKEMxKS54LCBpbnQsICIxIiwKKyAgICAgICAgKSA9PSBlLnZhbHVl
LmFyZ3MKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X3JlbmFtaW5nKHNl
bGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFByaXZhdGUgbWVtYmVycyBhcmUgcmVu
YW1lZCBidXQgb25seSBpbiBgX19pbml0X19gLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIu
cyhzbG90cz1zbG90cykKKyAgICAgICAgY2xhc3MgQzMob2JqZWN0KToKKyAgICAgICAgICAgIF94
ID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0ICJDMyhfeD0xKSIgPT0gcmVwcihDMyh4PTEp
KQorCisgICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfcHJv
Z3JhbW1hdGljKHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAgICAgICAgYGF0
dHIubWFrZV9jbGFzc2Agd29ya3MuCisgICAgICAgICIiIgorICAgICAgICBQQyA9IGF0dHIubWFr
ZV9jbGFzcygiUEMiLCBbImEiLCAiYiJdLCBzbG90cz1zbG90cywgZnJvemVuPWZyb3plbikKKyAg
ICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIEF0dHJpYnV0ZShuYW1lPSJhIiwgZGVmYXVsdD1O
T1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICByZXByPVRydWUs
IGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSksCisgICAgICAgICAgICBBdHRyaWJ1dGUo
bmFtZT0iYiIsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPU5vbmUsCisgICAgICAgICAgICAg
ICAgICAgICAgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUpLAorICAg
ICAgICApID09IGF0dHIuZmllbGRzKFBDKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJjbHMiLCBbU3ViLCBTdWJTbG90c10pCisgICAgZGVmIHRlc3Rfc3ViY2xhc3Npbmdfd2l0aF9l
eHRyYV9hdHRycyhzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgU3ViLWNsYXNzaW5n
ICh3aGVyZSB0aGUgc3ViY2xhc3MgaGFzIGV4dHJhIGF0dHJzKSBkb2VzIHdoYXQgeW91J2QgaG9w
ZQorICAgICAgICBmb3IuCisgICAgICAgICIiIgorICAgICAgICBvYmogPSBvYmplY3QoKQorICAg
ICAgICBpID0gY2xzKHg9b2JqLCB5PTIpCisgICAgICAgIGFzc2VydCBpLnggaXMgaS5tZXRoKCkg
aXMgb2JqCisgICAgICAgIGFzc2VydCBpLnkgPT0gMgorICAgICAgICBpZiBjbHMgaXMgU3ViOgor
ICAgICAgICAgICAgYXNzZXJ0ICJTdWIoeD17b2JqfSwgeT0yKSIuZm9ybWF0KG9iaj1vYmopID09
IHJlcHIoaSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAiU3ViU2xvdHMoeD17
b2JqfSwgeT0yKSIuZm9ybWF0KG9iaj1vYmopID09IHJlcHIoaSkKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiYmFzZSIsIFtTdXBlciwgU3VwZXJTbG90c10pCisgICAgZGVmIHRlc3Rf
c3ViY2xhc3Nfd2l0aG91dF9leHRyYV9hdHRycyhzZWxmLCBiYXNlKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFN1Yi1jbGFzc2luZyAod2hlcmUgdGhlIHN1YmNsYXNzIGRvZXMgbm90IGhhdmUgZXh0
cmEgYXR0cnMpIHN0aWxsCisgICAgICAgIGJlaGF2ZXMgdGhlIHNhbWUgYXMgYSBzdWJjbGFzcyB3
aXRoIGV4dHJhIGF0dHJzLgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgU3ViMihiYXNlKToK
KyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBvYmogPSBvYmplY3QoKQorICAgICAgICBpID0g
U3ViMih4PW9iaikKKyAgICAgICAgYXNzZXJ0IGkueCBpcyBpLm1ldGgoKSBpcyBvYmoKKyAgICAg
ICAgYXNzZXJ0ICJTdWIyKHg9e29ian0pIi5mb3JtYXQob2JqPW9iaikgPT0gcmVwcihpKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmcm96ZW5fY2xhc3MiLCBbCisgICAgICAgIEZy
b3plbiwgICMgaGFzIHNsb3RzPVRydWUKKyAgICAgICAgYXR0ci5tYWtlX2NsYXNzKCJGcm96ZW5U
b28iLCBbIngiXSwgc2xvdHM9RmFsc2UsIGZyb3plbj1UcnVlKSwKKyAgICBdKQorICAgIGRlZiB0
ZXN0X2Zyb3plbl9pbnN0YW5jZShzZWxmLCBmcm96ZW5fY2xhc3MpOgorICAgICAgICAiIiIKKyAg
ICAgICAgRnJvemVuIGluc3RhbmNlcyBjYW4ndCBiZSBtb2RpZmllZCAoZWFzaWx5KS4KKyAgICAg
ICAgIiIiCisgICAgICAgIGZyb3plbiA9IGZyb3plbl9jbGFzcygxKQorCisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhGcm96ZW5JbnN0YW5jZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgZnJv
emVuLnggPSAyCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEZyb3plbkluc3RhbmNlRXJy
b3IpIGFzIGU6CisgICAgICAgICAgICBkZWwgZnJvemVuLngKKworICAgICAgICBhc3NlcnQgZS52
YWx1ZS5hcmdzWzBdID09ICJjYW4ndCBzZXQgYXR0cmlidXRlIgorICAgICAgICBhc3NlcnQgMSA9
PSBmcm96ZW4ueAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbQzEsIEMxU2xvdHMsIEMyLCBDMlNsb3RzLCBTdXBlciwg
U3VwZXJTbG90cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YiwgU3ViU2xvdHMs
IEZyb3plbiwgRnJvemVuTm9TbG90cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZy
b21NYWtlQ2xhc3NdKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicHJvdG9jb2wiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSgyLCBwaWNrbGUuSElHSEVTVF9QUk9U
T0NPTCArIDEpKQorICAgIGRlZiB0ZXN0X3BpY2tsZV9hdHRyaWJ1dGVzKHNlbGYsIGNscywgcHJv
dG9jb2wpOgorICAgICAgICAiIiIKKyAgICAgICAgUGlja2xpbmcvdW4tcGlja2xpbmcgb2YgQXR0
cmlidXRlIGluc3RhbmNlcyB3b3Jrcy4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBhdHRyaWJ1
dGUgaW4gYXR0ci5maWVsZHMoY2xzKToKKyAgICAgICAgICAgIGFzc2VydCBhdHRyaWJ1dGUgPT0g
cGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhhdHRyaWJ1dGUsIHByb3RvY29sKSkKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0MxLCBDMVNsb3RzLCBDMiwgQzJTbG90cywgU3VwZXIsIFN1cGVyU2xvdHMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTdWIsIFN1YlNsb3RzLCBGcm96ZW4sIEZyb3plbk5vU2xv
dHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9tTWFrZUNsYXNzXSkKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInByb3RvY29sIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmFuZ2UoMiwgcGlja2xlLkhJR0hFU1RfUFJPVE9DT0wgKyAxKSkKKyAgICBkZWYg
dGVzdF9waWNrbGVfb2JqZWN0KHNlbGYsIGNscywgcHJvdG9jb2wpOgorICAgICAgICAiIiIKKyAg
ICAgICAgUGlja2xlIG9iamVjdCBzZXJpYWxpemF0aW9uIHdvcmtzIG9uIGFsbCBraW5kcyBvZiBh
dHRycyBjbGFzc2VzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbGVuKGF0dHIuZmllbGRzKGNs
cykpID09IDI6CisgICAgICAgICAgICBvYmogPSBjbHMoMTIzLCA0NTYpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBvYmogPSBjbHMoMTIzKQorICAgICAgICBhc3NlcnQgcmVwcihvYmopID09
IHJlcHIocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhvYmosIHByb3RvY29sKSkpCisKKyAgICBk
ZWYgdGVzdF9zdWJjbGFzc2luZ19mcm96ZW5fZ2l2ZXNfZnJvemVuKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgVGhlIGZyb3plbi1uZXNzIG9mIGNsYXNzZXMgaXMgaW5oZXJpdGVkLiAgU3Vi
Y2xhc3NlcyBvZiBmcm96ZW4gY2xhc3NlcworICAgICAgICBhcmUgYWxzbyBmcm96ZW4gYW5kIGNh
biBiZSBpbnN0YW50aWF0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpID0gU3ViRnJvemVuKCJm
b28iLCAiYmFyIikKKworICAgICAgICBhc3NlcnQgaS54ID09ICJmb28iCisgICAgICAgIGFzc2Vy
dCBpLnkgPT0gImJhciIKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwgW1dp
dGhNZXRhLCBXaXRoTWV0YVNsb3RzXSkKKyAgICBkZWYgdGVzdF9tZXRhY2xhc3NfcHJlc2VydmVk
KHNlbGYsIGNscyk6CisgICAgICAgICIiIgorICAgICAgICBNZXRhY2xhc3MgZGF0YSBpcyBwcmVz
ZXJ2ZWQuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTWV0YSA9PSB0eXBlKGNscykKKwor
ICAgIGRlZiB0ZXN0X2RlZmF1bHRfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgRGVmYXVsdCBkZWNvcmF0b3Igc2V0cyB0aGUgZGVmYXVsdCBhbmQgdGhlIHJlc3BlY3RpdmUg
bWV0aG9kIGdldHMKKyAgICAgICAgY2FsbGVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIu
cworICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gYXR0ci5pYihkZWZh
dWx0PTEpCisgICAgICAgICAgICB5ID0gYXR0ci5pYigpCisKKyAgICAgICAgICAgIEB5LmRlZmF1
bHQKKyAgICAgICAgICAgIGRlZiBjb21wdXRlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLnggKyAxCisKKyAgICAgICAgYXNzZXJ0IEMoMSwgMikgPT0gQygpCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImZyb3plbiIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3Rf
YXR0cmliX292ZXJ3cml0ZShzZWxmLCBzbG90cywgZnJvemVuKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFN1YmNsYXNzZXMgY2FuIG92ZXJ3cml0ZSBhdHRyaWJ1dGVzIG9mIHRoZWlyIHN1cGVyY2xh
c3MuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzLCBmcm96ZW49ZnJv
emVuKQorICAgICAgICBjbGFzcyBTdWJPdmVyd3JpdGUoU3VwZXIpOgorICAgICAgICAgICAgeCA9
IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpCisKKyAgICAgICAgYXNzZXJ0IFN1
Yk92ZXJ3cml0ZShbXSkgPT0gU3ViT3ZlcndyaXRlKCkKKworICAgIGRlZiB0ZXN0X2RpY3RfcGF0
Y2hfY2xhc3Moc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBkaWN0LWNsYXNzZXMgYXJlIG5l
dmVyIHJlcGxhY2VkLgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAg
ICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIENfbmV3ID0gYXR0ci5zKEMpCisKKyAg
ICAgICAgYXNzZXJ0IENfbmV3IGlzIEMKKworICAgIGRlZiB0ZXN0X2hhc2hfYnlfaWQoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBXaXRoIGRpY3QgY2xhc3NlcywgaGFzaGluZyBieSBJRCBp
cyBhY3RpdmUgZm9yIGhhc2g9RmFsc2UgZXZlbiBvbgorICAgICAgICBQeXRob24gMy4gIFRoaXMg
aXMgaW5jb3JyZWN0IGJlaGF2aW9yIGJ1dCB3ZSBoYXZlIHRvIHJldGFpbiBpdCBmb3IKKyAgICAg
ICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMo
aGFzaD1GYWxzZSkKKyAgICAgICAgY2xhc3MgSGFzaEJ5SURCYWNrd2FyZENvbXBhdChvYmplY3Qp
OgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCAoCisgICAgICAg
ICAgICBoYXNoKEhhc2hCeUlEQmFja3dhcmRDb21wYXQoMSkpICE9IGhhc2goSGFzaEJ5SURCYWNr
d2FyZENvbXBhdCgxKSkKKyAgICAgICAgKQorCisgICAgICAgIEBhdHRyLnMoaGFzaD1GYWxzZSwg
Y21wPUZhbHNlKQorICAgICAgICBjbGFzcyBIYXNoQnlJRChvYmplY3QpOgorICAgICAgICAgICAg
eCA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBoYXNoKEhhc2hCeUlEKDEpKSAhPSBoYXNo
KEhhc2hCeUlEKDEpKQorCisgICAgICAgIEBhdHRyLnMoaGFzaD1UcnVlKQorICAgICAgICBjbGFz
cyBIYXNoQnlWYWx1ZXMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkKKworICAg
ICAgICBhc3NlcnQgaGFzaChIYXNoQnlWYWx1ZXMoMSkpID09IGhhc2goSGFzaEJ5VmFsdWVzKDEp
KQorCisgICAgZGVmIHRlc3RfaGFuZGxlc19kaWZmZXJlbnRfZGVmYXVsdHMoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICBVbmhhc2hhYmxlIGRlZmF1bHRzICsgc3ViY2xhc3NpbmcgdmFsdWVz
IHdvcmsuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIFVuaGFz
aGFibGUob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBAYXR0ci5zCisgICAg
ICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKGRlZmF1bHQ9VW5o
YXNoYWJsZSgpKQorCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgRChDKToKKyAgICAg
ICAgICAgIHBhc3MKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBbVHJ1
ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X2hhc2hfZmFsc2VfY21wX2ZhbHNlKHNlbGYsIHNsb3Rz
KToKKyAgICAgICAgIiIiCisgICAgICAgIGhhc2g9RmFsc2UgYW5kIGNtcD1GYWxzZSBtYWtlIGEg
Y2xhc3MgaGFzaGFibGUgYnkgSUQuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zKGhhc2g9
RmFsc2UsIGNtcD1GYWxzZSwgc2xvdHM9c2xvdHMpCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToK
KyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBhc3NlcnQgaGFzaChDKCkpICE9IGhhc2goQygp
KQorCisgICAgZGVmIHRlc3Rfb3ZlcndyaXRlX3N1cGVyKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgU3VwZXIgY2xhc3NlcyBjYW4gb3ZlcndyaXRlIGVhY2ggb3RoZXIgYW5kIHRoZSBhdHRy
aWJ1dGVzIGFyZSBhZGRlZAorICAgICAgICBpbiB0aGUgb3JkZXIgdGhleSBhcmUgZGVmaW5lZC4K
KyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgor
ICAgICAgICAgICAgYyA9IGF0dHIuaWIoZGVmYXVsdD0xMDApCisgICAgICAgICAgICB4ID0gYXR0
ci5pYihkZWZhdWx0PTEpCisgICAgICAgICAgICBiID0gYXR0ci5pYihkZWZhdWx0PTIzKQorCisg
ICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgRChDKToKKyAgICAgICAgICAgIGEgPSBhdHRy
LmliKGRlZmF1bHQ9NDIpCisgICAgICAgICAgICB4ID0gYXR0ci5pYihkZWZhdWx0PTIpCisgICAg
ICAgICAgICBkID0gYXR0ci5pYihkZWZhdWx0PTMuMTQpCisKKyAgICAgICAgQGF0dHIucworICAg
ICAgICBjbGFzcyBFKEQpOgorICAgICAgICAgICAgeSA9IGF0dHIuaWIoZGVmYXVsdD0zKQorICAg
ICAgICAgICAgeiA9IGF0dHIuaWIoZGVmYXVsdD00KQorCisgICAgICAgIGFzc2VydCAiRShjPTEw
MCwgYj0yMywgYT00MiwgeD0yLCBkPTMuMTQsIHk9Mywgej00KSIgPT0gcmVwcihFKCkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZHVuZGVycy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9kdW5kZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MWZhYmEyZmZjNGZmNGY5MjA3ZmE0NDFk
ZTdmZDRiZWJhMjIyMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rf
ZHVuZGVycy5weQpAQCAtMCwwICsxLDUwMiBAQAorIiIiCitUZXN0cyBmb3IgZHVuZGVyIG1ldGhv
ZHMgZnJvbSBgYXR0cmliLl9tYWtlYC4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBjb3B5CisK
K2ltcG9ydCBweXRlc3QKKworZnJvbSBoeXBvdGhlc2lzIGltcG9ydCBnaXZlbgorZnJvbSBoeXBv
dGhlc2lzLnN0cmF0ZWdpZXMgaW1wb3J0IGJvb2xlYW5zCisKK2ltcG9ydCBhdHRyCisKK2Zyb20g
YXR0ci5fbWFrZSBpbXBvcnQgKAorICAgIE5PVEhJTkcsIEZhY3RvcnksIF9hZGRfaW5pdCwgX2Fk
ZF9yZXByLCBfTm90aGluZywgZmllbGRzLCBtYWtlX2NsYXNzCispCitmcm9tIGF0dHIudmFsaWRh
dG9ycyBpbXBvcnQgaW5zdGFuY2Vfb2YKKworZnJvbSAudXRpbHMgaW1wb3J0IHNpbXBsZV9hdHRy
LCBzaW1wbGVfY2xhc3MKKworCitDbXBDID0gc2ltcGxlX2NsYXNzKGNtcD1UcnVlKQorQ21wQ1Ns
b3RzID0gc2ltcGxlX2NsYXNzKGNtcD1UcnVlLCBzbG90cz1UcnVlKQorUmVwckMgPSBzaW1wbGVf
Y2xhc3MocmVwcj1UcnVlKQorUmVwckNTbG90cyA9IHNpbXBsZV9jbGFzcyhyZXByPVRydWUsIHNs
b3RzPVRydWUpCisKKyMgSGFzaEMgaXMgaGFzaGFibGUgYnkgZXhwbGljaXQgZGVmaW5pdGlvbiB3
aGlsZSBIYXNoQ1Nsb3RzIGlzIGhhc2hhYmxlCisjIGltcGxpY2l0bHkuCitIYXNoQyA9IHNpbXBs
ZV9jbGFzcyhoYXNoPVRydWUpCitIYXNoQ1Nsb3RzID0gc2ltcGxlX2NsYXNzKGhhc2g9Tm9uZSwg
Y21wPVRydWUsIGZyb3plbj1UcnVlLCBzbG90cz1UcnVlKQorCisKK2NsYXNzIEluaXRDKG9iamVj
dCk6CisgICAgX19hdHRyc19hdHRyc19fID0gW3NpbXBsZV9hdHRyKCJhIiksIHNpbXBsZV9hdHRy
KCJiIildCisKKworSW5pdEMgPSBfYWRkX2luaXQoSW5pdEMsIEZhbHNlKQorCisKK2NsYXNzIFRl
c3RBZGRDbXAob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9hZGRfY21wYC4KKyAg
ICAiIiIKKyAgICBAZ2l2ZW4oYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9jbXAoc2VsZiwgc2xv
dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYGNtcGAgaXMgRmFsc2UsIGlnbm9yZSB0aGF0
IGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwgewor
ICAgICAgICAgICAgImEiOiBhdHRyLmliKGNtcD1GYWxzZSksCisgICAgICAgICAgICAiYiI6IGF0
dHIuaWIoKQorICAgICAgICB9LCBzbG90cz1zbG90cykKKworICAgICAgICBhc3NlcnQgQygxLCAy
KSA9PSBDKDIsIDIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNscyIsIFtDbXBD
LCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X2VxdWFsKHNlbGYsIGNscyk6CisgICAgICAgICIi
IgorICAgICAgICBFcXVhbCBvYmplY3RzIGFyZSBkZXRlY3RlZCBhcyBlcXVhbC4KKyAgICAgICAg
IiIiCisgICAgICAgIGFzc2VydCBjbHMoMSwgMikgPT0gY2xzKDEsIDIpCisgICAgICAgIGFzc2Vy
dCBub3QgKGNscygxLCAyKSAhPSBjbHMoMSwgMikpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImNscyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3VuZXF1YWxfc2Ft
ZV9jbGFzcyhzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgVW5lcXVhbCBvYmplY3Rz
IG9mIGNvcnJlY3QgdHlwZSBhcmUgZGV0ZWN0ZWQgYXMgdW5lcXVhbC4KKyAgICAgICAgIiIiCisg
ICAgICAgIGFzc2VydCBjbHMoMSwgMikgIT0gY2xzKDIsIDEpCisgICAgICAgIGFzc2VydCBub3Qg
KGNscygxLCAyKSA9PSBjbHMoMiwgMSkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImNscyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3VuZXF1YWxfZGlmZmVyZW50
X2NsYXNzKHNlbGYsIGNscyk6CisgICAgICAgICIiIgorICAgICAgICBVbmVxdWFsIG9iamVjdHMg
b2YgZGlmZmVyZW50IHR5cGUgYXJlIGRldGVjdGVkIGV2ZW4gaWYgdGhlaXIgYXR0cmlidXRlcwor
ICAgICAgICBtYXRjaC4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIE5vdENtcEMob2JqZWN0
KToKKyAgICAgICAgICAgIGEgPSAxCisgICAgICAgICAgICBiID0gMgorICAgICAgICBhc3NlcnQg
Y2xzKDEsIDIpICE9IE5vdENtcEMoKQorICAgICAgICBhc3NlcnQgbm90IChjbHMoMSwgMikgPT0g
Tm90Q21wQygpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21wQywg
Q21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9sdChzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAg
ICAgICAgX19sdF9fIGNvbXBhcmVzIG9iamVjdHMgYXMgdHVwbGVzIG9mIGF0dHJpYnV0ZSB2YWx1
ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwgYiBpbiBbCisgICAgICAgICAgICAoKDEs
IDIpLCAgKDIsIDEpKSwKKyAgICAgICAgICAgICgoMSwgMiksICAoMSwgMykpLAorICAgICAgICAg
ICAgKCgiYSIsICJiIiksICgiYiIsICJhIikpLAorICAgICAgICBdOgorICAgICAgICAgICAgYXNz
ZXJ0IGNscygqYSkgPCBjbHMoKmIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNs
cyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X2x0X3Vub3JkYWJsZShzZWxmLCBj
bHMpOgorICAgICAgICAiIiIKKyAgICAgICAgX19sdF9fIHJldHVybnMgTm90SW1wbGVtZW50ZWQg
aWYgY2xhc3NlcyBkaWZmZXIuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTm90SW1wbGVt
ZW50ZWQgPT0gKGNscygxLCAyKS5fX2x0X18oNDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJjbHMiLCBbQ21wQywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9sZShzZWxmLCBj
bHMpOgorICAgICAgICAiIiIKKyAgICAgICAgX19sZV9fIGNvbXBhcmVzIG9iamVjdHMgYXMgdHVw
bGVzIG9mIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwgYiBp
biBbCisgICAgICAgICAgICAoKDEsIDIpLCAgKDIsIDEpKSwKKyAgICAgICAgICAgICgoMSwgMiks
ICAoMSwgMykpLAorICAgICAgICAgICAgKCgxLCAxKSwgICgxLCAxKSksCisgICAgICAgICAgICAo
KCJhIiwgImIiKSwgKCJiIiwgImEiKSksCisgICAgICAgICAgICAoKCJhIiwgImIiKSwgKCJhIiwg
ImIiKSksCisgICAgICAgIF06CisgICAgICAgICAgICBhc3NlcnQgY2xzKCphKSA8PSBjbHMoKmIp
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNscyIsIFtDbXBDLCBDbXBDU2xvdHNd
KQorICAgIGRlZiB0ZXN0X2xlX3Vub3JkYWJsZShzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAg
ICAgICAgX19sZV9fIHJldHVybnMgTm90SW1wbGVtZW50ZWQgaWYgY2xhc3NlcyBkaWZmZXIuCisg
ICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTm90SW1wbGVtZW50ZWQgPT0gKGNscygxLCAyKS5f
X2xlX18oNDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21wQywg
Q21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9ndChzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAg
ICAgICAgX19ndF9fIGNvbXBhcmVzIG9iamVjdHMgYXMgdHVwbGVzIG9mIGF0dHJpYnV0ZSB2YWx1
ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwgYiBpbiBbCisgICAgICAgICAgICAoKDIs
IDEpLCAoMSwgMikpLAorICAgICAgICAgICAgKCgxLCAzKSwgKDEsIDIpKSwKKyAgICAgICAgICAg
ICgoImIiLCAiYSIpLCAoImEiLCAiYiIpKSwKKyAgICAgICAgXToKKyAgICAgICAgICAgIGFzc2Vy
dCBjbHMoKmEpID4gY2xzKCpiKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMi
LCBbQ21wQywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9ndF91bm9yZGFibGUoc2VsZiwgY2xz
KToKKyAgICAgICAgIiIiCisgICAgICAgIF9fZ3RfXyByZXR1cm5zIE5vdEltcGxlbWVudGVkIGlm
IGNsYXNzZXMgZGlmZmVyLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IE5vdEltcGxlbWVu
dGVkID09IChjbHMoMSwgMikuX19ndF9fKDQyKSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiY2xzIiwgW0NtcEMsIENtcENTbG90c10pCisgICAgZGVmIHRlc3RfZ2Uoc2VsZiwgY2xz
KToKKyAgICAgICAgIiIiCisgICAgICAgIF9fZ2VfXyBjb21wYXJlcyBvYmplY3RzIGFzIHR1cGxl
cyBvZiBhdHRyaWJ1dGUgdmFsdWVzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGEsIGIgaW4g
WworICAgICAgICAgICAgKCgyLCAxKSwgKDEsIDIpKSwKKyAgICAgICAgICAgICgoMSwgMyksICgx
LCAyKSksCisgICAgICAgICAgICAoKDEsIDEpLCAoMSwgMSkpLAorICAgICAgICAgICAgKCgiYiIs
ICJhIiksICgiYSIsICJiIikpLAorICAgICAgICAgICAgKCgiYSIsICJiIiksICgiYSIsICJiIikp
LAorICAgICAgICBdOgorICAgICAgICAgICAgYXNzZXJ0IGNscygqYSkgPj0gY2xzKCpiKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21wQywgQ21wQ1Nsb3RzXSkKKyAg
ICBkZWYgdGVzdF9nZV91bm9yZGFibGUoc2VsZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAgICAg
IF9fZ2VfXyByZXR1cm5zIE5vdEltcGxlbWVudGVkIGlmIGNsYXNzZXMgZGlmZmVyLgorICAgICAg
ICAiIiIKKyAgICAgICAgYXNzZXJ0IE5vdEltcGxlbWVudGVkID09IChjbHMoMSwgMikuX19nZV9f
KDQyKSkKKworCitjbGFzcyBUZXN0QWRkUmVwcihvYmplY3QpOgorICAgICIiIgorICAgIFRlc3Rz
IGZvciBgX2FkZF9yZXByYC4KKyAgICAiIiIKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
InNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYsIHNsb3RzKToK
KyAgICAgICAgIiIiCisgICAgICAgIElmIGByZXByYCBpcyBGYWxzZSwgaWdub3JlIHRoYXQgYXR0
cmlidXRlLgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7CisgICAg
ICAgICAgICAiYSI6IGF0dHIuaWIocmVwcj1GYWxzZSksCisgICAgICAgICAgICAiYiI6IGF0dHIu
aWIoKQorICAgICAgICB9LCBzbG90cz1zbG90cykKKworICAgICAgICBhc3NlcnQgIkMoYj0yKSIg
PT0gcmVwcihDKDEsIDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBb
UmVwckMsIFJlcHJDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3JlcHJfd29ya3Moc2VsZiwgY2xzKToK
KyAgICAgICAgIiIiCisgICAgICAgIHJlcHIgcmV0dXJucyBhIHNlbnNpYmxlIHZhbHVlLgorICAg
ICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICJDKGE9MSwgYj0yKSIgPT0gcmVwcihjbHMoMSwgMikp
CisKKyAgICBkZWYgdGVzdF91bmRlcnNjb3JlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IHJlcHIgZG9lcyBub3Qgc3RyaXAgdW5kZXJzY29yZXMuCisgICAgICAgICIiIgorICAgICAgICBj
bGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICBfX2F0dHJzX2F0dHJzX18gPSBbc2ltcGxlX2F0
dHIoIl94IildCisKKyAgICAgICAgQyA9IF9hZGRfcmVwcihDKQorICAgICAgICBpID0gQygpCisg
ICAgICAgIGkuX3ggPSA0MgorCisgICAgICAgIGFzc2VydCAiQyhfeD00MikiID09IHJlcHIoaSkK
KworICAgIEBnaXZlbihhZGRfc3RyPWJvb2xlYW5zKCksIHNsb3RzPWJvb2xlYW5zKCkpCisgICAg
ZGVmIHRlc3Rfc3RyKHNlbGYsIGFkZF9zdHIsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAg
IElmIHN0ciBpcyBUcnVlLCBpdCByZXR1cm5zIHRoZSBzYW1lIGFzIHJlcHIuCisKKyAgICAgICAg
VGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gc3ViY2xhc3NpbmcgYSBjbGFzcyB3aXRoIGFuIHBv
b3IgX19zdHJfXworICAgICAgICAobGlrZSBFeGNlcHRpb25zKS4KKyAgICAgICAgIiIiCisgICAg
ICAgIEBhdHRyLnMoc3RyPWFkZF9zdHIsIHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBFcnJv
cihFeGNlcHRpb24pOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIGUgPSBF
cnJvcig0MikKKworICAgICAgICBhc3NlcnQgKHN0cihlKSA9PSByZXByKGUpKSBpcyBhZGRfc3Ry
CisKKyAgICBkZWYgdGVzdF9zdHJfbm9fcmVwcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IFJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgcmVwcj1GYWxzZSBhbmQgc3RyPVRydWUuCisgICAgICAg
ICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZToKKyAgICAg
ICAgICAgIHNpbXBsZV9jbGFzcyhyZXByPUZhbHNlLCBzdHI9VHJ1ZSkKKworICAgICAgICBhc3Nl
cnQgKAorICAgICAgICAgICAgIl9fc3RyX18gY2FuIG9ubHkgYmUgZ2VuZXJhdGVkIGlmIGEgX19y
ZXByX18gZXhpc3RzLiIKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3NbMF0KKworCitjbGFzcyBU
ZXN0QWRkSGFzaChvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgX2FkZF9oYXNoYC4K
KyAgICAiIiIKKyAgICBkZWYgdGVzdF9lbmZvcmNlc190eXBlKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgVGhlIGBoYXNoYCBhcmd1bWVudCB0byBib3RoIGF0dHJzIGFuZCBhdHRyaWIgbXVz
dCBiZSBOb25lLCBUcnVlLCBvcgorICAgICAgICBGYWxzZS4KKyAgICAgICAgIiIiCisgICAgICAg
IGV4Y19hcmdzID0gKCJJbnZhbGlkIHZhbHVlIGZvciBoYXNoLiAgTXVzdCBiZSBUcnVlLCBGYWxz
ZSwgb3IgTm9uZS4iLCkKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBh
cyBlOgorICAgICAgICAgICAgbWFrZV9jbGFzcygiQyIsIHt9LCBoYXNoPTEpLAorCisgICAgICAg
IGFzc2VydCBleGNfYXJncyA9PSBlLnZhbHVlLmFyZ3MKKworICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgbWFrZV9jbGFzcygiQyIsIHsiYSI6
IGF0dHIuaWIoaGFzaD0xKX0pLAorCisgICAgICAgIGFzc2VydCBleGNfYXJncyA9PSBlLnZhbHVl
LmFyZ3MKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X2hhc2hfYXR0cmli
dXRlKHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGBoYXNoYCBpcyBGYWxz
ZSBvbiBhbiBhdHRyaWJ1dGUsIGlnbm9yZSB0aGF0IGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwgeyJhIjogYXR0ci5pYihoYXNoPUZhbHNlKSwgImIi
OiBhdHRyLmliKCl9LAorICAgICAgICAgICAgICAgICAgICAgICBzbG90cz1zbG90cywgaGFzaD1U
cnVlKQorCisgICAgICAgIGFzc2VydCBoYXNoKEMoMSwgMikpID09IGhhc2goQygyLCAyKSkKKwor
ICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X2hhc2hfYXR0cmlidXRlX21pcnJv
cnNfY21wKHNlbGYsIGNtcCk6CisgICAgICAgICIiIgorICAgICAgICBJZiBgaGFzaGAgaXMgTm9u
ZSwgdGhlIGhhc2ggZ2VuZXJhdGlvbiBtaXJyb3JzIGBjbXBgLgorICAgICAgICAiIiIKKyAgICAg
ICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKGNtcD1jbXApfSwgY21wPVRydWUs
IGZyb3plbj1UcnVlKQorCisgICAgICAgIGlmIGNtcDoKKyAgICAgICAgICAgIGFzc2VydCBDKDEp
ICE9IEMoMikKKyAgICAgICAgICAgIGFzc2VydCBoYXNoKEMoMSkpICE9IGhhc2goQygyKSkKKyAg
ICAgICAgICAgIGFzc2VydCBoYXNoKEMoMSkpID09IGhhc2goQygxKSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGFzc2VydCBDKDEpID09IEMoMikKKyAgICAgICAgICAgIGFzc2VydCBoYXNo
KEMoMSkpID09IGhhc2goQygyKSkKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0
ZXN0X2hhc2hfbWlycm9yc19jbXAoc2VsZiwgY21wKToKKyAgICAgICAgIiIiCisgICAgICAgIElm
IGBoYXNoYCBpcyBOb25lLCB0aGUgaGFzaCBnZW5lcmF0aW9uIG1pcnJvcnMgYGNtcGAuCisgICAg
ICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsiYSI6IGF0dHIuaWIoKX0sIGNt
cD1jbXAsIGZyb3plbj1UcnVlKQorCisgICAgICAgIGkgPSBDKDEpCisKKyAgICAgICAgYXNzZXJ0
IGkgPT0gaQorICAgICAgICBhc3NlcnQgaGFzaChpKSA9PSBoYXNoKGkpCisKKyAgICAgICAgaWYg
Y21wOgorICAgICAgICAgICAgYXNzZXJ0IEMoMSkgPT0gQygxKQorICAgICAgICAgICAgYXNzZXJ0
IGhhc2goQygxKSkgPT0gaGFzaChDKDEpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNz
ZXJ0IEMoMSkgIT0gQygxKQorICAgICAgICAgICAgYXNzZXJ0IGhhc2goQygxKSkgIT0gaGFzaChD
KDEpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbSGFzaEMsIEhhc2hD
U2xvdHNdKQorICAgIGRlZiB0ZXN0X2hhc2hfd29ya3Moc2VsZiwgY2xzKToKKyAgICAgICAgIiIi
CisgICAgICAgIF9faGFzaF9fIHJldHVybnMgZGlmZmVyZW50IGhhc2hlcyBmb3IgZGlmZmVyZW50
IHZhbHVlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBoYXNoKGNscygxLCAyKSkgIT0g
aGFzaChjbHMoMSwgMSkpCisKKyAgICBkZWYgdGVzdF9oYXNoX2RlZmF1bHQoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICBDbGFzc2VzIGFyZSBub3QgaGFzaGFibGUgYnkgZGVmYXVsdC4KKyAg
ICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwge30pCisKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIGhhc2goQygpKQor
CisgICAgICAgIGFzc2VydCBlLnZhbHVlLmFyZ3NbMF0gaW4gKAorICAgICAgICAgICAgIidDJyBv
YmplY3RzIGFyZSB1bmhhc2hhYmxlIiwgICMgUHlQeQorICAgICAgICAgICAgInVuaGFzaGFibGUg
dHlwZTogJ0MnIiwgICMgQ1B5dGhvbgorICAgICAgICApCisKKworY2xhc3MgVGVzdEFkZEluaXQo
b2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9hZGRfaW5pdGAuCisgICAgIiIiCisg
ICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfaW5pdChzZWxm
LCBzbG90cywgZnJvemVuKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGBpbml0YCBpcyBGYWxz
ZSwgaWdub3JlIHRoYXQgYXR0cmlidXRlLgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2Vf
Y2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKGluaXQ9RmFsc2UpLCAiYiI6IGF0dHIuaWIoKX0sCisg
ICAgICAgICAgICAgICAgICAgICAgIHNsb3RzPXNsb3RzLCBmcm96ZW49ZnJvemVuKQorICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgQyhhPTEs
IGI9MikKKworICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIl9faW5pdF9fKCkgZ290IGFu
IHVuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudCAnYSciID09CisgICAgICAgICAgICBlLnZhbHVl
LmFyZ3NbMF0KKyAgICAgICAgKQorCisgICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5zKCkp
CisgICAgZGVmIHRlc3Rfbm9faW5pdF9kZWZhdWx0KHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAg
ICAgICAiIiIKKyAgICAgICAgSWYgYGluaXRgIGlzIEZhbHNlIGJ1dCBhIEZhY3RvcnkgaXMgc3Bl
Y2lmaWVkLCBkb24ndCBhbGxvdyBwYXNzaW5nIHRoYXQKKyAgICAgICAgYXJndW1lbnQgYnV0IGlu
aXRpYWxpemUgaXQgYW55d2F5LgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xhc3Mo
IkMiLCB7CisgICAgICAgICAgICAiX2EiOiBhdHRyLmliKGluaXQ9RmFsc2UsIGRlZmF1bHQ9NDIp
LAorICAgICAgICAgICAgIl9iIjogYXR0ci5pYihpbml0PUZhbHNlLCBkZWZhdWx0PUZhY3Rvcnko
bGlzdCkpLAorICAgICAgICAgICAgImMiOiBhdHRyLmliKCkKKyAgICAgICAgfSwgc2xvdHM9c2xv
dHMsIGZyb3plbj1mcm96ZW4pCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3Ip
OgorICAgICAgICAgICAgQyhhPTEsIGM9MikKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5
cGVFcnJvcik6CisgICAgICAgICAgICBDKGI9MSwgYz0yKQorCisgICAgICAgIGkgPSBDKDIzKQor
ICAgICAgICBhc3NlcnQgKDQyLCBbXSwgMjMpID09IChpLl9hLCBpLl9iLCBpLmMpCisKKyAgICBA
Z2l2ZW4oYm9vbGVhbnMoKSwgYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9ub19pbml0X29yZGVy
KHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYW4gYXR0cmli
dXRlIGlzIGBpbml0PUZhbHNlYCwgaXQncyBsZWdhbCB0byBjb21lIGFmdGVyIGEgbWFuZGF0b3J5
CisgICAgICAgIGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIG1ha2VfY2xhc3MoIkMi
LCB7CisgICAgICAgICAgICAiYSI6IGF0dHIuaWIoZGVmYXVsdD1GYWN0b3J5KGxpc3QpKSwKKyAg
ICAgICAgICAgICJiIjogYXR0ci5pYihpbml0PUZhbHNlKSwKKyAgICAgICAgfSwgc2xvdHM9c2xv
dHMsIGZyb3plbj1mcm96ZW4pCisKKyAgICBkZWYgdGVzdF9zZXRzX2F0dHJpYnV0ZXMoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBUaGUgYXR0cmlidXRlcyBhcmUgaW5pdGlhbGl6ZWQgdXNp
bmcgdGhlIHBhc3NlZCBrZXl3b3Jkcy4KKyAgICAgICAgIiIiCisgICAgICAgIG9iaiA9IEluaXRD
KGE9MSwgYj0yKQorICAgICAgICBhc3NlcnQgMSA9PSBvYmouYQorICAgICAgICBhc3NlcnQgMiA9
PSBvYmouYgorCisgICAgZGVmIHRlc3RfZGVmYXVsdChzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIElmIGEgZGVmYXVsdCB2YWx1ZSBpcyBwcmVzZW50LCBpdCdzIHVzZWQgYXMgZmFsbGJhY2su
CisgICAgICAgICIiIgorICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICBfX2F0
dHJzX2F0dHJzX18gPSBbCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYSIsIGRl
ZmF1bHQ9MiksCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYiIsIGRlZmF1bHQ9
ImhhbGxvIiksCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYyIsIGRlZmF1bHQ9
Tm9uZSksCisgICAgICAgICAgICBdCisKKyAgICAgICAgQyA9IF9hZGRfaW5pdChDLCBGYWxzZSkK
KyAgICAgICAgaSA9IEMoKQorICAgICAgICBhc3NlcnQgMiA9PSBpLmEKKyAgICAgICAgYXNzZXJ0
ICJoYWxsbyIgPT0gaS5iCisgICAgICAgIGFzc2VydCBOb25lIGlzIGkuYworCisgICAgZGVmIHRl
c3RfZmFjdG9yeShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgZGVmYXVsdCBmYWN0
b3J5IGlzIHByZXNlbnQsIGl0J3MgdXNlZCBhcyBmYWxsYmFjay4KKyAgICAgICAgIiIiCisgICAg
ICAgIGNsYXNzIEQob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBjbGFzcyBD
KG9iamVjdCk6CisgICAgICAgICAgICBfX2F0dHJzX2F0dHJzX18gPSBbCisgICAgICAgICAgICAg
ICAgc2ltcGxlX2F0dHIobmFtZT0iYSIsIGRlZmF1bHQ9RmFjdG9yeShsaXN0KSksCisgICAgICAg
ICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYiIsIGRlZmF1bHQ9RmFjdG9yeShEKSksCisgICAg
ICAgICAgICBdCisgICAgICAgIEMgPSBfYWRkX2luaXQoQywgRmFsc2UpCisgICAgICAgIGkgPSBD
KCkKKworICAgICAgICBhc3NlcnQgW10gPT0gaS5hCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGkuYiwgRCkKKworICAgIGRlZiB0ZXN0X3ZhbGlkYXRvcihzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIElmIGEgdmFsaWRhdG9yIGlzIHBhc3NlZCwgY2FsbCBpdCB3aXRoIHRoZSBwcmVsaW1p
bmFyeSBpbnN0YW5jZSwgdGhlCisgICAgICAgIEF0dHJpYnV0ZSwgYW5kIHRoZSBhcmd1bWVudC4K
KyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIFZFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICAg
ICAgICAgIHBhc3MKKworICAgICAgICBkZWYgcmFpc2VyKCphcmdzKToKKyAgICAgICAgICAgIHJh
aXNlIFZFeGNlcHRpb24oKmFyZ3MpCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7ImEi
OiBhdHRyLmliKCJhIiwgdmFsaWRhdG9yPXJhaXNlcil9KQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVkV4Y2VwdGlvbikgYXMgZToKKyAgICAgICAgICAgIEMoNDIpCisKKyAgICAgICAgYXNz
ZXJ0IChmaWVsZHMoQykuYSwgNDIsKSA9PSBlLnZhbHVlLmFyZ3NbMTpdCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGUudmFsdWUuYXJnc1swXSwgQykKKworICAgIGRlZiB0ZXN0X3ZhbGlkYXRv
cl9zbG90cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgdmFsaWRhdG9yIGlzIHBh
c3NlZCwgY2FsbCBpdCB3aXRoIHRoZSBwcmVsaW1pbmFyeSBpbnN0YW5jZSwgdGhlCisgICAgICAg
IEF0dHJpYnV0ZSwgYW5kIHRoZSBhcmd1bWVudC4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNz
IFZFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYg
cmFpc2VyKCphcmdzKToKKyAgICAgICAgICAgIHJhaXNlIFZFeGNlcHRpb24oKmFyZ3MpCisKKyAg
ICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKCJhIiwgdmFsaWRhdG9yPXJh
aXNlcil9LCBzbG90cz1UcnVlKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVkV4Y2VwdGlv
bikgYXMgZToKKyAgICAgICAgICAgIEMoNDIpCisKKyAgICAgICAgYXNzZXJ0IChmaWVsZHMoQylb
MF0sIDQyLCkgPT0gZS52YWx1ZS5hcmdzWzE6XQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShl
LnZhbHVlLmFyZ3NbMF0sIEMpCisKKyAgICBAZ2l2ZW4oYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVz
dF92YWxpZGF0b3Jfb3RoZXJzKHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIERv
ZXMgbm90IGludGVyZmVyZSB3aGVuIHNldHRpbmcgbm9uLWF0dHJzIGF0dHJpYnV0ZXMuCisgICAg
ICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJhIjog
YXR0ci5pYigiYSIsIHZhbGlkYXRvcj1pbnN0YW5jZV9vZihpbnQpKQorICAgICAgICB9LCBzbG90
cz1zbG90cykKKyAgICAgICAgaSA9IEMoMSkKKworICAgICAgICBhc3NlcnQgMSA9PSBpLmEKKwor
ICAgICAgICBpZiBub3Qgc2xvdHM6CisgICAgICAgICAgICBpLmIgPSAiZm9vIgorICAgICAgICAg
ICAgYXNzZXJ0ICJmb28iID09IGkuYgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICBpLmIgPSAiZm9v
IgorCisgICAgZGVmIHRlc3RfdW5kZXJzY29yZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBUaGUgYXJndW1lbnQgbmFtZXMgaW4gYF9faW5pdF9fYCBhcmUgd2l0aG91dCBsZWFkaW5nIGFu
ZCB0cmFpbGluZworICAgICAgICB1bmRlcnNjb3Jlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGNs
YXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIF9fYXR0cnNfYXR0cnNfXyA9IFtzaW1wbGVfYXR0
cigiX3ByaXZhdGUiKV0KKworICAgICAgICBDID0gX2FkZF9pbml0KEMsIEZhbHNlKQorICAgICAg
ICBpID0gQyhwcml2YXRlPTQyKQorICAgICAgICBhc3NlcnQgNDIgPT0gaS5fcHJpdmF0ZQorCisK
K2NsYXNzIFRlc3ROb3RoaW5nKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBfTm90
aGluZ2AuCisgICAgIiIiCisgICAgZGVmIHRlc3RfY29weShzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIF9fY29weV9fIHJldHVybnMgdGhlIHNhbWUgb2JqZWN0LgorICAgICAgICAiIiIKKyAg
ICAgICAgbiA9IF9Ob3RoaW5nKCkKKyAgICAgICAgYXNzZXJ0IG4gaXMgY29weS5jb3B5KG4pCisK
KyAgICBkZWYgdGVzdF9kZWVwY29weShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIF9fZGVl
cGNvcHlfXyByZXR1cm5zIHRoZSBzYW1lIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAgIG4g
PSBfTm90aGluZygpCisgICAgICAgIGFzc2VydCBuIGlzIGNvcHkuZGVlcGNvcHkobikKKworICAg
IGRlZiB0ZXN0X2VxKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsIGluc3RhbmNlcyBh
cmUgZXF1YWwuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgX05vdGhpbmcoKSA9PSBfTm90
aGluZygpID09IE5PVEhJTkcKKyAgICAgICAgYXNzZXJ0IG5vdCAoX05vdGhpbmcoKSAhPSBfTm90
aGluZygpKQorICAgICAgICBhc3NlcnQgMSAhPSBfTm90aGluZygpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9maWx0
ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhmN2RkNjk0OTI1MjQ5Mzk3OTdmOGY2ZWYyZTU3NDhmMDM2MDI5
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5weQpA
QCAtMCwwICsxLDk0IEBACisiIiIKK1Rlc3RzIGZvciBgYXR0ci5maWx0ZXJzYC4KKyIiIgorCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCisKK2ltcG9ydCBweXRlc3QKKworaW1wb3J0IGF0dHIKKworZnJvbSBhdHRyIGltcG9y
dCBmaWVsZHMKK2Zyb20gYXR0ci5maWx0ZXJzIGltcG9ydCBfc3BsaXRfd2hhdCwgZXhjbHVkZSwg
aW5jbHVkZQorCisKK0BhdHRyLnMKK2NsYXNzIEMob2JqZWN0KToKKyAgICBhID0gYXR0ci5pYigp
CisgICAgYiA9IGF0dHIuaWIoKQorCisKK2NsYXNzIFRlc3RTcGxpdFdoYXQob2JqZWN0KToKKyAg
ICAiIiIKKyAgICBUZXN0cyBmb3IgYF9zcGxpdF93aGF0YC4KKyAgICAiIiIKKyAgICBkZWYgdGVz
dF9zcGxpdHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTcGxpdHMgY29ycmVjdGx5Lgor
ICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIGZyb3plbnNldCgoaW50
LCBzdHIpKSwKKyAgICAgICAgICAgIGZyb3plbnNldCgoZmllbGRzKEMpLmEsKSksCisgICAgICAg
ICkgPT0gX3NwbGl0X3doYXQoKHN0ciwgZmllbGRzKEMpLmEsIGludCwpKQorCisKK2NsYXNzIFRl
c3RJbmNsdWRlKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBpbmNsdWRlYC4KKyAg
ICAiIiIKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImluY2wsdmFsdWUiLCBbCisgICAg
ICAgICgoaW50LCksIDQyKSwKKyAgICAgICAgKChzdHIsKSwgImhlbGxvIiksCisgICAgICAgICgo
c3RyLCBmaWVsZHMoQykuYSksIDQyKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhDKS5iKSwgImhl
bGxvIiksCisgICAgXSkKKyAgICBkZWYgdGVzdF9hbGxvdyhzZWxmLCBpbmNsLCB2YWx1ZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSBpZiBhIGNsYXNzIG9yIGF0dHJpYnV0ZSBp
cyB3aGl0ZWxpc3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGkgPSBpbmNsdWRlKCppbmNsKQor
ICAgICAgICBhc3NlcnQgaShmaWVsZHMoQykuYSwgdmFsdWUpIGlzIFRydWUKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaW5jbCx2YWx1ZSIsIFsKKyAgICAgICAgKChzdHIsKSwgNDIp
LAorICAgICAgICAoKGludCwpLCAiaGVsbG8iKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhDKS5i
KSwgNDIpLAorICAgICAgICAoKGludCwgZmllbGRzKEMpLmIpLCAiaGVsbG8iKSwKKyAgICBdKQor
ICAgIGRlZiB0ZXN0X2Ryb3BfY2xhc3Moc2VsZiwgaW5jbCwgdmFsdWUpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmV0dXJuIEZhbHNlIG9uIG5vbi13aGl0ZWxpc3RlZCBjbGFzc2VzIGFuZCBhdHRy
aWJ1dGVzLgorICAgICAgICAiIiIKKyAgICAgICAgaSA9IGluY2x1ZGUoKmluY2wpCisgICAgICAg
IGFzc2VydCBpKGZpZWxkcyhDKS5hLCB2YWx1ZSkgaXMgRmFsc2UKKworCitjbGFzcyBUZXN0RXhj
bHVkZShvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgZXhjbHVkZWAuCisgICAgIiIi
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJleGNsLHZhbHVlIiwgWworICAgICAgICAo
KHN0ciwpLCA0MiksCisgICAgICAgICgoaW50LCksICJoZWxsbyIpLAorICAgICAgICAoKHN0ciwg
ZmllbGRzKEMpLmIpLCA0MiksCisgICAgICAgICgoaW50LCBmaWVsZHMoQykuYiksICJoZWxsbyIp
LAorICAgIF0pCisgICAgZGVmIHRlc3RfYWxsb3coc2VsZiwgZXhjbCwgdmFsdWUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgUmV0dXJuIFRydWUgaWYgY2xhc3Mgb3IgYXR0cmlidXRlIGlzIG5vdCBi
bGFja2xpc3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGUgPSBleGNsdWRlKCpleGNsKQorICAg
ICAgICBhc3NlcnQgZShmaWVsZHMoQykuYSwgdmFsdWUpIGlzIFRydWUKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiZXhjbCx2YWx1ZSIsIFsKKyAgICAgICAgKChpbnQsKSwgNDIpLAor
ICAgICAgICAoKHN0ciwpLCAiaGVsbG8iKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhDKS5hKSwg
NDIpLAorICAgICAgICAoKHN0ciwgZmllbGRzKEMpLmIpLCAiaGVsbG8iKSwKKyAgICBdKQorICAg
IGRlZiB0ZXN0X2Ryb3BfY2xhc3Moc2VsZiwgZXhjbCwgdmFsdWUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgUmV0dXJuIFRydWUgb24gbm9uLWJsYWNrbGlzdGVkIGNsYXNzZXMgYW5kIGF0dHJpYnV0
ZXMuCisgICAgICAgICIiIgorICAgICAgICBlID0gZXhjbHVkZSgqZXhjbCkKKyAgICAgICAgYXNz
ZXJ0IGUoZmllbGRzKEMpLmEsIHZhbHVlKSBpcyBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy90ZXN0cy90ZXN0X2Z1bmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAxNjc4MjM4MThlZWZlZmU1OTBhN2EwMjFhNTkyNzE0ODQzMmUyYjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZnVuY3MucHkKQEAgLTAsMCArMSw1
MjcgQEAKKyIiIgorVGVzdHMgZm9yIGBhdHRyLl9mdW5jc2AuCisiIiIKKworZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNYXBwaW5nLCBPcmRlcmVkRGljdCwgU2VxdWVuY2UKKwor
aW1wb3J0IHB5dGVzdAorCitmcm9tIGh5cG90aGVzaXMgaW1wb3J0IHN0cmF0ZWdpZXMgYXMgc3QK
K2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgSGVhbHRoQ2hlY2ssIGFzc3VtZSwgZ2l2ZW4sIHNldHRp
bmdzCisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgYXNkaWN0LCBhc3NvYywgYXN0
dXBsZSwgZXZvbHZlLCBmaWVsZHMsIGhhcworZnJvbSBhdHRyLl9jb21wYXQgaW1wb3J0IFRZUEUK
K2Zyb20gYXR0ci5leGNlcHRpb25zIGltcG9ydCBBdHRyc0F0dHJpYnV0ZU5vdEZvdW5kRXJyb3IK
K2Zyb20gYXR0ci52YWxpZGF0b3JzIGltcG9ydCBpbnN0YW5jZV9vZgorCitmcm9tIC51dGlscyBp
bXBvcnQgbmVzdGVkX2NsYXNzZXMsIHNpbXBsZV9jbGFzc2VzCisKKworTUFQUElOR19UWVBFUyA9
IChkaWN0LCBPcmRlcmVkRGljdCkKK1NFUVVFTkNFX1RZUEVTID0gKGxpc3QsIHR1cGxlKQorCisK
K2NsYXNzIFRlc3RBc0RpY3Qob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYGFzZGlj
dGAuCisgICAgIiIiCisgICAgQGdpdmVuKHN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVTKSkK
KyAgICBkZWYgdGVzdF9zaGFsbG93KHNlbGYsIEMsIGRpY3RfZmFjdG9yeSk6CisgICAgICAgICIi
IgorICAgICAgICBTaGFsbG93IGFzZGljdCByZXR1cm5zIGNvcnJlY3QgZGljdC4KKyAgICAgICAg
IiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisgICAgICAgICAgICAi
eSI6IDIsCisgICAgICAgIH0gPT0gYXNkaWN0KEMoeD0xLCB5PTIpLCBGYWxzZSwgZGljdF9mYWN0
b3J5PWRpY3RfZmFjdG9yeSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oTUFQUElOR19U
WVBFUykpCisgICAgZGVmIHRlc3RfcmVjdXJzZShzZWxmLCBDLCBkaWN0X2NsYXNzKToKKyAgICAg
ICAgIiIiCisgICAgICAgIERlZXAgYXNkaWN0IHJldHVybnMgY29ycmVjdCBkaWN0LgorICAgICAg
ICAiIiIKKyAgICAgICAgYXNzZXJ0IHsKKyAgICAgICAgICAgICJ4IjogeyJ4IjogMSwgInkiOiAy
fSwKKyAgICAgICAgICAgICJ5IjogeyJ4IjogMywgInkiOiA0fSwKKyAgICAgICAgfSA9PSBhc2Rp
Y3QoQygKKyAgICAgICAgICAgIEMoMSwgMiksCisgICAgICAgICAgICBDKDMsIDQpLAorICAgICAg
ICApLCBkaWN0X2ZhY3Rvcnk9ZGljdF9jbGFzcykKKworICAgIEBnaXZlbihuZXN0ZWRfY2xhc3Nl
cywgc3Quc2FtcGxlZF9mcm9tKE1BUFBJTkdfVFlQRVMpKQorICAgIEBzZXR0aW5ncyhzdXBwcmVz
c19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkKKyAgICBkZWYgdGVzdF9yZWN1
cnNlX3Byb3BlcnR5KHNlbGYsIGNscywgZGljdF9jbGFzcyk6CisgICAgICAgICIiIgorICAgICAg
ICBQcm9wZXJ0eSB0ZXN0cyBmb3IgcmVjdXJzaXZlIGFzZGljdC4KKyAgICAgICAgIiIiCisgICAg
ICAgIG9iaiA9IGNscygpCisgICAgICAgIG9ial9kaWN0ID0gYXNkaWN0KG9iaiwgZGljdF9mYWN0
b3J5PWRpY3RfY2xhc3MpCisKKyAgICAgICAgZGVmIGFzc2VydF9wcm9wZXJfZGljdF9jbGFzcyhv
YmosIG9ial9kaWN0KToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9ial9kaWN0LCBk
aWN0X2NsYXNzKQorCisgICAgICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzKG9iai5fX2NsYXNz
X18pOgorICAgICAgICAgICAgICAgIGZpZWxkX3ZhbCA9IGdldGF0dHIob2JqLCBmaWVsZC5uYW1l
KQorICAgICAgICAgICAgICAgIGlmIGhhcyhmaWVsZF92YWwuX19jbGFzc19fKToKKyAgICAgICAg
ICAgICAgICAgICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgY2xhc3MsIHJlY3Vyc2UgdGhlIGFzc2Vy
dGlvbnMuCisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfZGljdF9jbGFzcyhmaWVs
ZF92YWwsIG9ial9kaWN0W2ZpZWxkLm5hbWVdKQorICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0
YW5jZShmaWVsZF92YWwsIFNlcXVlbmNlKToKKyAgICAgICAgICAgICAgICAgICAgZGljdF92YWwg
PSBvYmpfZGljdFtmaWVsZC5uYW1lXQorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSwgaXRl
bV9kaWN0IGluIHppcChmaWVsZF92YWwsIGRpY3RfdmFsKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIGhhcyhpdGVtLl9fY2xhc3NfXyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3Byb3Blcl9kaWN0X2NsYXNzKGl0ZW0sIGl0ZW1fZGljdCkKKyAgICAgICAgICAgICAg
ICBlbGlmIGlzaW5zdGFuY2UoZmllbGRfdmFsLCBNYXBwaW5nKToKKyAgICAgICAgICAgICAgICAg
ICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgZGljdGlvbmFyeS4KKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2Uob2JqX2RpY3RbZmllbGQubmFtZV0sIGRpY3RfY2xhc3MpCisKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsIGluIGZpZWxkX3ZhbC5pdGVtcygpOgorICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgaGFzKHZhbC5fX2NsYXNzX18pOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfZGljdF9jbGFzcyh2YWwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ial9kaWN0W2ZpZWxk
Lm5hbWVdW2tleV0pCisKKyAgICAgICAgYXNzZXJ0X3Byb3Blcl9kaWN0X2NsYXNzKG9iaiwgb2Jq
X2RpY3QpCisKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKE1BUFBJTkdfVFlQRVMpKQorICAg
IGRlZiB0ZXN0X2ZpbHRlcihzZWxmLCBDLCBkaWN0X2ZhY3RvcnkpOgorICAgICAgICAiIiIKKyAg
ICAgICAgQXR0cmlidXRlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBza2lwcGVkIGFyZSBza2lw
cGVkLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IHsKKyAgICAgICAgICAgICJ4IjogeyJ4
IjogMX0sCisgICAgICAgIH0gPT0gYXNkaWN0KEMoCisgICAgICAgICAgICBDKDEsIDIpLAorICAg
ICAgICAgICAgQygzLCA0KSwKKyAgICAgICAgKSwgZmlsdGVyPWxhbWJkYSBhLCB2OiBhLm5hbWUg
IT0gInkiLCBkaWN0X2ZhY3Rvcnk9ZGljdF9mYWN0b3J5KQorCisgICAgQGdpdmVuKGNvbnRhaW5l
cj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2xpc3RzX3R1
cGxlcyhzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgcmVjdXJz
ZSBpcyBUcnVlLCBhbHNvIHJlY3Vyc2UgaW50byBsaXN0cy4KKyAgICAgICAgIiIiCisgICAgICAg
IGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisgICAgICAgICAgICAieSI6IFt7IngiOiAy
LCAieSI6IDN9LCB7IngiOiA0LCAieSI6IDV9LCAiYSJdLAorICAgICAgICB9ID09IGFzZGljdChD
KDEsIGNvbnRhaW5lcihbQygyLCAzKSwgQyg0LCA1KSwgImEiXSkpKQorCisgICAgQGdpdmVuKGNv
bnRhaW5lcj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2xp
c3RzX3R1cGxlc19yZXRhaW5fdHlwZShzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAiIiIK
KyAgICAgICAgSWYgcmVjdXJzZSBhbmQgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXMgYXJlIFRydWUs
IGFsc28gcmVjdXJzZQorICAgICAgICBpbnRvIGxpc3RzIGFuZCBkbyBub3QgY29udmVydCB0aGVt
IGludG8gbGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAgICAi
eCI6IDEsCisgICAgICAgICAgICAieSI6IGNvbnRhaW5lcihbeyJ4IjogMiwgInkiOiAzfSwgeyJ4
IjogNCwgInkiOiA1fSwgImEiXSksCisgICAgICAgIH0gPT0gYXNkaWN0KEMoMSwgY29udGFpbmVy
KFtDKDIsIDMpLCBDKDQsIDUpLCAiYSJdKSksCisgICAgICAgICAgICAgICAgICAgIHJldGFpbl9j
b2xsZWN0aW9uX3R5cGVzPVRydWUpCisKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKE1BUFBJ
TkdfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2RpY3RzKHNlbGYsIEMsIGRpY3RfZmFjdG9yeSk6Cisg
ICAgICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGlzIFRydWUsIGFsc28gcmVjdXJzZSBpbnRv
IGRpY3RzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gYXNkaWN0KEMoMSwgeyJhIjogQyg0
LCA1KX0pLCBkaWN0X2ZhY3Rvcnk9ZGljdF9mYWN0b3J5KQorICAgICAgICBhc3NlcnQgeworICAg
ICAgICAgICAgIngiOiAxLAorICAgICAgICAgICAgInkiOiB7ImEiOiB7IngiOiA0LCAieSI6IDV9
fSwKKyAgICAgICAgfSA9PSByZXMKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzLCBkaWN0
X2ZhY3RvcnkpCisKKyAgICBAZ2l2ZW4oc2ltcGxlX2NsYXNzZXMocHJpdmF0ZV9hdHRycz1GYWxz
ZSksIHN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVTKSkKKyAgICBkZWYgdGVzdF9yb3VuZHRy
aXAoc2VsZiwgY2xzLCBkaWN0X2NsYXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgZHVt
cGluZyB0byBkaWN0cyBhbmQgYmFjayBmb3IgSHlwb3RoZXNpcy1nZW5lcmF0ZWQgY2xhc3Nlcy4K
KworICAgICAgICBQcml2YXRlIGF0dHJpYnV0ZXMgZG9uJ3Qgcm91bmQtdHJpcCAodGhlIGF0dHJp
YnV0ZSBuYW1lIGlzIGRpZmZlcmVudAorICAgICAgICB0aGFuIHRoZSBpbml0aWFsaXplciBhcmd1
bWVudCkuCisgICAgICAgICIiIgorICAgICAgICBpbnN0YW5jZSA9IGNscygpCisgICAgICAgIGRp
Y3RfaW5zdGFuY2UgPSBhc2RpY3QoaW5zdGFuY2UsIGRpY3RfZmFjdG9yeT1kaWN0X2NsYXNzKQor
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRpY3RfaW5zdGFuY2UsIGRpY3RfY2xhc3MpCisK
KyAgICAgICAgcm91bmR0cmlwX2luc3RhbmNlID0gY2xzKCoqZGljdF9pbnN0YW5jZSkKKworICAg
ICAgICBhc3NlcnQgaW5zdGFuY2UgPT0gcm91bmR0cmlwX2luc3RhbmNlCisKKyAgICBAZ2l2ZW4o
c2ltcGxlX2NsYXNzZXMoKSkKKyAgICBkZWYgdGVzdF9hc2RpY3RfcHJlc2VydmVfb3JkZXIoc2Vs
ZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpZWxkIG9yZGVyIHNob3VsZCBiZSBwcmVz
ZXJ2ZWQgd2hlbiBkdW1waW5nIHRvIE9yZGVyZWREaWN0cy4KKyAgICAgICAgIiIiCisgICAgICAg
IGluc3RhbmNlID0gY2xzKCkKKyAgICAgICAgZGljdF9pbnN0YW5jZSA9IGFzZGljdChpbnN0YW5j
ZSwgZGljdF9mYWN0b3J5PU9yZGVyZWREaWN0KQorCisgICAgICAgIGFzc2VydCBbYS5uYW1lIGZv
ciBhIGluIGZpZWxkcyhjbHMpXSA9PSBsaXN0KGRpY3RfaW5zdGFuY2Uua2V5cygpKQorCisKK2Ns
YXNzIFRlc3RBc1R1cGxlKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhc3R1cGxl
YC4KKyAgICAiIiIKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKFNFUVVFTkNFX1RZUEVTKSkK
KyAgICBkZWYgdGVzdF9zaGFsbG93KHNlbGYsIEMsIHR1cGxlX2ZhY3RvcnkpOgorICAgICAgICAi
IiIKKyAgICAgICAgU2hhbGxvdyBhc3R1cGxlIHJldHVybnMgY29ycmVjdCBkaWN0LgorICAgICAg
ICAiIiIKKyAgICAgICAgYXNzZXJ0ICh0dXBsZV9mYWN0b3J5KFsxLCAyXSkgPT0KKyAgICAgICAg
ICAgICAgICBhc3R1cGxlKEMoeD0xLCB5PTIpLCBGYWxzZSwgdHVwbGVfZmFjdG9yeT10dXBsZV9m
YWN0b3J5KSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQor
ICAgIGRlZiB0ZXN0X3JlY3Vyc2Uoc2VsZiwgQywgdHVwbGVfZmFjdG9yeSk6CisgICAgICAgICIi
IgorICAgICAgICBEZWVwIGFzdHVwbGUgcmV0dXJucyBjb3JyZWN0IHR1cGxlLgorICAgICAgICAi
IiIKKyAgICAgICAgYXNzZXJ0ICh0dXBsZV9mYWN0b3J5KFt0dXBsZV9mYWN0b3J5KFsxLCAyXSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dXBsZV9mYWN0b3J5KFszLCA0XSldKQor
ICAgICAgICAgICAgICAgID09IGFzdHVwbGUoQygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBDKDEsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMoMywgNCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1cGxl
X2ZhY3Rvcnk9dHVwbGVfZmFjdG9yeSkpCisKKyAgICBAZ2l2ZW4obmVzdGVkX2NsYXNzZXMsIHN0
LnNhbXBsZWRfZnJvbShTRVFVRU5DRV9UWVBFUykpCisgICAgQHNldHRpbmdzKHN1cHByZXNzX2hl
YWx0aF9jaGVjaz1bSGVhbHRoQ2hlY2sudG9vX3Nsb3ddKQorICAgIGRlZiB0ZXN0X3JlY3Vyc2Vf
cHJvcGVydHkoc2VsZiwgY2xzLCB0dXBsZV9jbGFzcyk6CisgICAgICAgICIiIgorICAgICAgICBQ
cm9wZXJ0eSB0ZXN0cyBmb3IgcmVjdXJzaXZlIGFzdHVwbGUuCisgICAgICAgICIiIgorICAgICAg
ICBvYmogPSBjbHMoKQorICAgICAgICBvYmpfdHVwbGUgPSBhc3R1cGxlKG9iaiwgdHVwbGVfZmFj
dG9yeT10dXBsZV9jbGFzcykKKworICAgICAgICBkZWYgYXNzZXJ0X3Byb3Blcl90dXBsZV9jbGFz
cyhvYmosIG9ial90dXBsZSk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmpfdHVw
bGUsIHR1cGxlX2NsYXNzKQorICAgICAgICAgICAgZm9yIGluZGV4LCBmaWVsZCBpbiBlbnVtZXJh
dGUoZmllbGRzKG9iai5fX2NsYXNzX18pKToKKyAgICAgICAgICAgICAgICBmaWVsZF92YWwgPSBn
ZXRhdHRyKG9iaiwgZmllbGQubmFtZSkKKyAgICAgICAgICAgICAgICBpZiBoYXMoZmllbGRfdmFs
Ll9fY2xhc3NfXyk6CisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBmaWVsZCBob2xkcyBhIGNs
YXNzLCByZWN1cnNlIHRoZSBhc3NlcnRpb25zLgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
cHJvcGVyX3R1cGxlX2NsYXNzKGZpZWxkX3ZhbCwgb2JqX3R1cGxlW2luZGV4XSkKKworICAgICAg
ICBhc3NlcnRfcHJvcGVyX3R1cGxlX2NsYXNzKG9iaiwgb2JqX3R1cGxlKQorCisgICAgQGdpdmVu
KG5lc3RlZF9jbGFzc2VzLCBzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIEBz
ZXR0aW5ncyhzdXBwcmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkKKyAg
ICBkZWYgdGVzdF9yZWN1cnNlX3JldGFpbihzZWxmLCBjbHMsIHR1cGxlX2NsYXNzKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFByb3BlcnR5IHRlc3RzIGZvciBhc3NlcnRpbmcgY29sbGVjdGlvbiB0
eXBlcyBhcmUgcmV0YWluZWQuCisgICAgICAgICIiIgorICAgICAgICBvYmogPSBjbHMoKQorICAg
ICAgICBvYmpfdHVwbGUgPSBhc3R1cGxlKG9iaiwgdHVwbGVfZmFjdG9yeT10dXBsZV9jbGFzcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRhaW5fY29sbGVjdGlvbl90eXBlcz1UcnVl
KQorCisgICAgICAgIGRlZiBhc3NlcnRfcHJvcGVyX2NvbF9jbGFzcyhvYmosIG9ial90dXBsZSk6
CisgICAgICAgICAgICAjIEl0ZXJhdGUgb3ZlciBhbGwgYXR0cmlidXRlcywgYW5kIGlmIHRoZXkg
YXJlIGxpc3RzIG9yIG1hcHBpbmdzCisgICAgICAgICAgICAjIGluIHRoZSBvcmlnaW5hbCwgYXNz
ZXJ0IHRoZXkgYXJlIHRoZSBzYW1lIGNsYXNzIGluIHRoZSBkdW1wZWQuCisgICAgICAgICAgICBm
b3IgaW5kZXgsIGZpZWxkIGluIGVudW1lcmF0ZShmaWVsZHMob2JqLl9fY2xhc3NfXykpOgorICAg
ICAgICAgICAgICAgIGZpZWxkX3ZhbCA9IGdldGF0dHIob2JqLCBmaWVsZC5uYW1lKQorICAgICAg
ICAgICAgICAgIGlmIGhhcyhmaWVsZF92YWwuX19jbGFzc19fKToKKyAgICAgICAgICAgICAgICAg
ICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgY2xhc3MsIHJlY3Vyc2UgdGhlIGFzc2VydGlvbnMuCisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfY29sX2NsYXNzKGZpZWxkX3ZhbCwgb2Jq
X3R1cGxlW2luZGV4XSkKKyAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZmllbGRfdmFs
LCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGZpZWxkIGhvbGRz
IGEgc2VxdWVuY2Ugb2Ygc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90
eXBlID0gdHlwZShvYmpfdHVwbGVbaW5kZXhdKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
dHlwZShmaWVsZF92YWwpIGlzIGV4cGVjdGVkX3R5cGUgICMgbm9xYTogRTcyMQorICAgICAgICAg
ICAgICAgICAgICBmb3Igb2JqX2UsIG9ial90dXBsZV9lIGluIHppcChmaWVsZF92YWwsIG9ial90
dXBsZVtpbmRleF0pOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaGFzKG9ial9lLl9fY2xh
c3NfXyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Byb3Blcl9jb2xfY2xh
c3Mob2JqX2UsIG9ial90dXBsZV9lKQorICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShm
aWVsZF92YWwsIGRpY3QpOgorICAgICAgICAgICAgICAgICAgICBvcmlnID0gZmllbGRfdmFsCisg
ICAgICAgICAgICAgICAgICAgIHR1cGxlZCA9IG9ial90dXBsZVtpbmRleF0KKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHR5cGUob3JpZykgaXMgdHlwZSh0dXBsZWQpICAjIG5vcWE6IEU3MjEK
KyAgICAgICAgICAgICAgICAgICAgZm9yIG9ial9lLCBvYmpfdHVwbGVfZSBpbiB6aXAob3JpZy5p
dGVtcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0dXBsZWQuaXRlbXMoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBoYXMob2JqX2Vb
MF0uX19jbGFzc19fKTogICMgRGljdCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfcHJvcGVyX2NvbF9jbGFzcyhvYmpfZVswXSwgb2JqX3R1cGxlX2VbMF0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBoYXMob2JqX2VbMV0uX19jbGFzc19fKTogICMgRGljdCB2YWx1
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfY29sX2NsYXNzKG9i
al9lWzFdLCBvYmpfdHVwbGVfZVsxXSkKKworICAgICAgICBhc3NlcnRfcHJvcGVyX2NvbF9jbGFz
cyhvYmosIG9ial90dXBsZSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0Vf
VFlQRVMpKQorICAgIGRlZiB0ZXN0X2ZpbHRlcihzZWxmLCBDLCB0dXBsZV9mYWN0b3J5KToKKyAg
ICAgICAgIiIiCisgICAgICAgIEF0dHJpYnV0ZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgc2tp
cHBlZCBhcmUgc2tpcHBlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB0dXBsZV9mYWN0
b3J5KFt0dXBsZV9mYWN0b3J5KFsxLCBdKSwgXSkgPT0gYXN0dXBsZShDKAorICAgICAgICAgICAg
QygxLCAyKSwKKyAgICAgICAgICAgIEMoMywgNCksCisgICAgICAgICksIGZpbHRlcj1sYW1iZGEg
YSwgdjogYS5uYW1lICE9ICJ5IiwgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5KQorCisgICAg
QGdpdmVuKGNvbnRhaW5lcj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRl
ZiB0ZXN0X2xpc3RzX3R1cGxlcyhzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAiIiIKKyAg
ICAgICAgSWYgcmVjdXJzZSBpcyBUcnVlLCBhbHNvIHJlY3Vyc2UgaW50byBsaXN0cy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGFzc2VydCAoKDEsIFsoMiwgMyksICg0LCA1KSwgImEiXSkKKyAgICAg
ICAgICAgICAgICA9PSBhc3R1cGxlKEMoMSwgY29udGFpbmVyKFtDKDIsIDMpLCBDKDQsIDUpLCAi
YSJdKSkpCisgICAgICAgICAgICAgICAgKQorCisgICAgQGdpdmVuKHN0LnNhbXBsZWRfZnJvbShT
RVFVRU5DRV9UWVBFUykpCisgICAgZGVmIHRlc3RfZGljdHMoc2VsZiwgQywgdHVwbGVfZmFjdG9y
eSk6CisgICAgICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGlzIFRydWUsIGFsc28gcmVjdXJz
ZSBpbnRvIGRpY3RzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gYXN0dXBsZShDKDEsIHsi
YSI6IEMoNCwgNSl9KSwgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5KQorICAgICAgICBhc3Nl
cnQgdHVwbGVfZmFjdG9yeShbMSwgeyJhIjogdHVwbGVfZmFjdG9yeShbNCwgNV0pfV0pID09IHJl
cworICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXMsIHR1cGxlX2ZhY3RvcnkpCisKKyAgICBA
Z2l2ZW4oY29udGFpbmVyPXN0LnNhbXBsZWRfZnJvbShTRVFVRU5DRV9UWVBFUykpCisgICAgZGVm
IHRlc3RfbGlzdHNfdHVwbGVzX3JldGFpbl90eXBlKHNlbGYsIGNvbnRhaW5lciwgQyk6CisgICAg
ICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGFuZCByZXRhaW5fY29sbGVjdGlvbl90eXBlcyBh
cmUgVHJ1ZSwgYWxzbyByZWN1cnNlCisgICAgICAgIGludG8gbGlzdHMgYW5kIGRvIG5vdCBjb252
ZXJ0IHRoZW0gaW50byBsaXN0LgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAg
ICAgICAgICgxLCBjb250YWluZXIoWygyLCAzKSwgKDQsIDUpLCAiYSJdKSkKKyAgICAgICAgICAg
ID09IGFzdHVwbGUoQygxLCBjb250YWluZXIoW0MoMiwgMyksIEMoNCwgNSksICJhIl0pKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXM9VHJ1ZSkpCisKKyAg
ICBAZ2l2ZW4oY29udGFpbmVyPXN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVTKSkKKyAgICBk
ZWYgdGVzdF9kaWN0c19yZXRhaW5fdHlwZShzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAi
IiIKKyAgICAgICAgSWYgcmVjdXJzZSBhbmQgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXMgYXJlIFRy
dWUsIGFsc28gcmVjdXJzZQorICAgICAgICBpbnRvIGxpc3RzIGFuZCBkbyBub3QgY29udmVydCB0
aGVtIGludG8gbGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAg
ICAoMSwgY29udGFpbmVyKHsiYSI6ICg0LCA1KX0pKQorICAgICAgICAgICAgPT0gYXN0dXBsZShD
KDEsIGNvbnRhaW5lcih7ImEiOiBDKDQsIDUpfSkpLAorICAgICAgICAgICAgICAgICAgICAgICBy
ZXRhaW5fY29sbGVjdGlvbl90eXBlcz1UcnVlKSkKKworICAgIEBnaXZlbihzaW1wbGVfY2xhc3Nl
cygpLCBzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X3JvdW5k
dHJpcChzZWxmLCBjbHMsIHR1cGxlX2NsYXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3Qg
ZHVtcGluZyB0byB0dXBsZSBhbmQgYmFjayBmb3IgSHlwb3RoZXNpcy1nZW5lcmF0ZWQgY2xhc3Nl
cy4KKyAgICAgICAgIiIiCisgICAgICAgIGluc3RhbmNlID0gY2xzKCkKKyAgICAgICAgdHVwbGVf
aW5zdGFuY2UgPSBhc3R1cGxlKGluc3RhbmNlLCB0dXBsZV9mYWN0b3J5PXR1cGxlX2NsYXNzKQor
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHR1cGxlX2luc3RhbmNlLCB0dXBsZV9jbGFzcykK
KworICAgICAgICByb3VuZHRyaXBfaW5zdGFuY2UgPSBjbHMoKnR1cGxlX2luc3RhbmNlKQorCisg
ICAgICAgIGFzc2VydCBpbnN0YW5jZSA9PSByb3VuZHRyaXBfaW5zdGFuY2UKKworCitjbGFzcyBU
ZXN0SGFzKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBoYXNgLgorICAgICIiIgor
ICAgIGRlZiB0ZXN0X3Bvc2l0aXZlKHNlbGYsIEMpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0
dXJucyBgVHJ1ZWAgb24gZGVjb3JhdGVkIGNsYXNzZXMuCisgICAgICAgICIiIgorICAgICAgICBh
c3NlcnQgaGFzKEMpCisKKyAgICBkZWYgdGVzdF9wb3NpdGl2ZV9lbXB0eShzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFJldHVybnMgYFRydWVgIG9uIGRlY29yYXRlZCBjbGFzc2VzIGV2ZW4g
aWYgdGhlcmUgYXJlIG5vIGF0dHJpYnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5z
CisgICAgICAgIGNsYXNzIEQob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBh
c3NlcnQgaGFzKEQpCisKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZShzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIFJldHVybnMgYEZhbHNlYCBvbiBub24tZGVjb3JhdGVkIGNsYXNzZXMuCisgICAg
ICAgICIiIgorICAgICAgICBhc3NlcnQgbm90IGhhcyhvYmplY3QpCisKKworY2xhc3MgVGVzdEFz
c29jKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhc3NvY2AuCisgICAgIiIiCisg
ICAgQGdpdmVuKHNsb3RzPXN0LmJvb2xlYW5zKCksIGZyb3plbj1zdC5ib29sZWFucygpKQorICAg
IGRlZiB0ZXN0X2VtcHR5KHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAgICAg
ICAgRW1wdHkgY2xhc3NlcyB3aXRob3V0IGNoYW5nZXMgZ2V0IGNvcGllZC4KKyAgICAgICAgIiIi
CisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMsIGZyb3plbj1mcm96ZW4pCisgICAgICAgIGNs
YXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpMSA9IEMoKQorICAg
ICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAgIGkyID0gYXNz
b2MoaTEpCisKKyAgICAgICAgYXNzZXJ0IGkxIGlzIG5vdCBpMgorICAgICAgICBhc3NlcnQgaTEg
PT0gaTIKKworICAgIEBnaXZlbihzaW1wbGVfY2xhc3NlcygpKQorICAgIGRlZiB0ZXN0X25vX2No
YW5nZXMoc2VsZiwgQyk6CisgICAgICAgICIiIgorICAgICAgICBObyBjaGFuZ2VzIG1lYW5zIGEg
dmVyYmF0aW0gY29weS4KKyAgICAgICAgIiIiCisgICAgICAgIGkxID0gQygpCisgICAgICAgIHdp
dGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICAgICAgaTIgPSBhc3NvYyhpMSkK
KworICAgICAgICBhc3NlcnQgaTEgaXMgbm90IGkyCisgICAgICAgIGFzc2VydCBpMSA9PSBpMgor
CisgICAgQGdpdmVuKHNpbXBsZV9jbGFzc2VzKCksIHN0LmRhdGEoKSkKKyAgICBkZWYgdGVzdF9j
aGFuZ2Uoc2VsZiwgQywgZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2VzIHdvcmsu
CisgICAgICAgICIiIgorICAgICAgICAjIFRha2UgdGhlIGZpcnN0IGF0dHJpYnV0ZSwgYW5kIGNo
YW5nZSBpdC4KKyAgICAgICAgYXNzdW1lKGZpZWxkcyhDKSkgICMgU2tpcCBjbGFzc2VzIHdpdGgg
bm8gYXR0cmlidXRlcy4KKyAgICAgICAgZmllbGRfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGluIGZp
ZWxkcyhDKV0KKyAgICAgICAgb3JpZ2luYWwgPSBDKCkKKyAgICAgICAgY2hvc2VuX25hbWVzID0g
ZGF0YS5kcmF3KHN0LnNldHMoc3Quc2FtcGxlZF9mcm9tKGZpZWxkX25hbWVzKSkpCisgICAgICAg
IGNoYW5nZV9kaWN0ID0ge25hbWU6IGRhdGEuZHJhdyhzdC5pbnRlZ2VycygpKQorICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBjaG9zZW5fbmFtZXN9CisKKyAgICAgICAgd2l0aCBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgICAgICBjaGFuZ2VkID0gYXNzb2Mob3Jp
Z2luYWwsICoqY2hhbmdlX2RpY3QpCisKKyAgICAgICAgZm9yIGssIHYgaW4gY2hhbmdlX2RpY3Qu
aXRlbXMoKToKKyAgICAgICAgICAgIGFzc2VydCBnZXRhdHRyKGNoYW5nZWQsIGspID09IHYKKwor
ICAgIEBnaXZlbihzaW1wbGVfY2xhc3NlcygpKQorICAgIGRlZiB0ZXN0X3Vua25vd24oc2VsZiwg
Qyk6CisgICAgICAgICIiIgorICAgICAgICBXYW50aW5nIHRvIGNoYW5nZSBhbiB1bmtub3duIGF0
dHJpYnV0ZSByYWlzZXMgYW4KKyAgICAgICAgQXR0cnNBdHRyaWJ1dGVOb3RGb3VuZEVycm9yLgor
ICAgICAgICAiIiIKKyAgICAgICAgIyBObyBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBoYXZlIGEgZm91
ciBsZXR0ZXIgYXR0cmlidXRlLgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXR0cnNBdHRy
aWJ1dGVOb3RGb3VuZEVycm9yKSBhcyBlLCBcCisgICAgICAgICAgICAgICAgcHl0ZXN0LmRlcHJl
Y2F0ZWRfY2FsbCgpOgorICAgICAgICAgICAgYXNzb2MoQygpLCBhYWFhPTIpCisKKyAgICAgICAg
YXNzZXJ0ICgKKyAgICAgICAgICAgICJhYWFhIGlzIG5vdCBhbiBhdHRycyBhdHRyaWJ1dGUgb24g
e2NscyFyfS4iLmZvcm1hdChjbHM9QyksCisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisKKyAg
ICBkZWYgdGVzdF9mcm96ZW4oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBvbiBm
cm96ZW4gY2xhc3Nlcy4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoZnJvemVuPVRydWUp
CisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkKKyAg
ICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwoKToKKyAgICAgICAgICAgIGFzc2VydCBDKDMsIDIpID09IGFzc29jKEMoMSwgMiksIHg9
MykKKworICAgIGRlZiB0ZXN0X3dhcm5pbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBE
ZXByZWNhdGlvbldhcm5pbmcgcG9pbnRzIHRvIHRoZSBjb3JyZWN0IGZpbGUuCisgICAgICAgICIi
IgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAg
IHggPSBhdHRyLmliKCkKKworICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhEZXByZWNhdGlvbldh
cm5pbmcpIGFzIHdpOgorICAgICAgICAgICAgYXNzZXJ0IEMoMikgPT0gYXNzb2MoQygxKSwgeD0y
KQorCisgICAgICAgIGFzc2VydCBfX2ZpbGVfXyA9PSB3aS5saXN0WzBdLmZpbGVuYW1lCisKKwor
Y2xhc3MgVGVzdEV2b2x2ZShvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgZXZvbHZl
YC4KKyAgICAiIiIKKyAgICBAZ2l2ZW4oc2xvdHM9c3QuYm9vbGVhbnMoKSwgZnJvemVuPXN0LmJv
b2xlYW5zKCkpCisgICAgZGVmIHRlc3RfZW1wdHkoc2VsZiwgc2xvdHMsIGZyb3plbik6CisgICAg
ICAgICIiIgorICAgICAgICBFbXB0eSBjbGFzc2VzIHdpdGhvdXQgY2hhbmdlcyBnZXQgY29waWVk
LgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucyhzbG90cz1zbG90cywgZnJvemVuPWZyb3pl
bikKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAg
IGkxID0gQygpCisgICAgICAgIGkyID0gZXZvbHZlKGkxKQorCisgICAgICAgIGFzc2VydCBpMSBp
cyBub3QgaTIKKyAgICAgICAgYXNzZXJ0IGkxID09IGkyCisKKyAgICBAZ2l2ZW4oc2ltcGxlX2Ns
YXNzZXMoKSkKKyAgICBkZWYgdGVzdF9ub19jaGFuZ2VzKHNlbGYsIEMpOgorICAgICAgICAiIiIK
KyAgICAgICAgTm8gY2hhbmdlcyBtZWFucyBhIHZlcmJhdGltIGNvcHkuCisgICAgICAgICIiIgor
ICAgICAgICBpMSA9IEMoKQorICAgICAgICBpMiA9IGV2b2x2ZShpMSkKKworICAgICAgICBhc3Nl
cnQgaTEgaXMgbm90IGkyCisgICAgICAgIGFzc2VydCBpMSA9PSBpMgorCisgICAgQGdpdmVuKHNp
bXBsZV9jbGFzc2VzKCksIHN0LmRhdGEoKSkKKyAgICBkZWYgdGVzdF9jaGFuZ2Uoc2VsZiwgQywg
ZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2VzIHdvcmsuCisgICAgICAgICIiIgor
ICAgICAgICAjIFRha2UgdGhlIGZpcnN0IGF0dHJpYnV0ZSwgYW5kIGNoYW5nZSBpdC4KKyAgICAg
ICAgYXNzdW1lKGZpZWxkcyhDKSkgICMgU2tpcCBjbGFzc2VzIHdpdGggbm8gYXR0cmlidXRlcy4K
KyAgICAgICAgZmllbGRfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGluIGZpZWxkcyhDKV0KKyAgICAg
ICAgb3JpZ2luYWwgPSBDKCkKKyAgICAgICAgY2hvc2VuX25hbWVzID0gZGF0YS5kcmF3KHN0LnNl
dHMoc3Quc2FtcGxlZF9mcm9tKGZpZWxkX25hbWVzKSkpCisgICAgICAgICMgV2UgcGF5IHNwZWNp
YWwgYXR0ZW50aW9uIHRvIHByaXZhdGUgYXR0cmlidXRlcywgdGhleSBzaG91bGQgYmVoYXZlCisg
ICAgICAgICMgbGlrZSBpbiBgX19pbml0X19gLgorICAgICAgICBjaGFuZ2VfZGljdCA9IHtuYW1l
LnJlcGxhY2UoJ18nLCAnJyk6IGRhdGEuZHJhdyhzdC5pbnRlZ2VycygpKQorICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgbmFtZSBpbiBjaG9zZW5fbmFtZXN9CisgICAgICAgIGNoYW5nZWQgPSBl
dm9sdmUob3JpZ2luYWwsICoqY2hhbmdlX2RpY3QpCisgICAgICAgIGZvciBuYW1lIGluIGNob3Nl
bl9uYW1lczoKKyAgICAgICAgICAgIGFzc2VydCBnZXRhdHRyKGNoYW5nZWQsIG5hbWUpID09IGNo
YW5nZV9kaWN0W25hbWUucmVwbGFjZSgnXycsICcnKV0KKworICAgIEBnaXZlbihzaW1wbGVfY2xh
c3NlcygpKQorICAgIGRlZiB0ZXN0X3Vua25vd24oc2VsZiwgQyk6CisgICAgICAgICIiIgorICAg
ICAgICBXYW50aW5nIHRvIGNoYW5nZSBhbiB1bmtub3duIGF0dHJpYnV0ZSByYWlzZXMgYW4KKyAg
ICAgICAgQXR0cnNBdHRyaWJ1dGVOb3RGb3VuZEVycm9yLgorICAgICAgICAiIiIKKyAgICAgICAg
IyBObyBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBoYXZlIGEgZm91ciBsZXR0ZXIgYXR0cmlidXRlLgor
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAg
ZXZvbHZlKEMoKSwgYWFhYT0yKQorICAgICAgICBleHBlY3RlZCA9ICJfX2luaXRfXygpIGdvdCBh
biB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnQgJ2FhYWEnIgorICAgICAgICBhc3NlcnQgKGV4
cGVjdGVkLCkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF92YWxpZGF0b3JfZmFpbHVy
ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFR5cGVFcnJvciBpc24ndCBzd2FsbG93ZWQg
d2hlbiB2YWxpZGF0aW9uIGZhaWxzIHdpdGhpbiBldm9sdmUuCisgICAgICAgICIiIgorICAgICAg
ICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIGEgPSBhdHRy
LmliKHZhbGlkYXRvcj1pbnN0YW5jZV9vZihpbnQpKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBldm9sdmUoQyhhPTEpLCBhPSJzb21l
IHN0cmluZyIpCisgICAgICAgIG0gPSBlLnZhbHVlLmFyZ3NbMF0KKworICAgICAgICBhc3NlcnQg
bS5zdGFydHN3aXRoKCInYScgbXVzdCBiZSA8e3R5cGV9ICdpbnQnPiIuZm9ybWF0KHR5cGU9VFlQ
RSkpCisKKyAgICBkZWYgdGVzdF9wcml2YXRlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg
ZXZvbHZlKCkgYWN0cyBhcyBgX19pbml0X19gIHdpdGggcmVnYXJkcyB0byBwcml2YXRlIGF0dHJp
YnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2Jq
ZWN0KToKKyAgICAgICAgICAgIF9hID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0IGV2b2x2
ZShDKDEpLCBhPTIpLl9hID09IDIKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVy
cm9yKToKKyAgICAgICAgICAgIGV2b2x2ZShDKDEpLCBfYT0yKQorCisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgZXZvbHZlKEMoMSksIGE9MywgX2E9
MikKKworICAgIGRlZiB0ZXN0X25vbl9pbml0X2F0dHJzKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgZXZvbHZlKCkgaGFuZGxlcyBgaW5pdD1GYWxzZWAgYXR0cmlidXRlcy4KKyAgICAgICAg
IiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAg
ICAgYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgYiA9IGF0dHIuaWIoaW5pdD1GYWxzZSwgZGVm
YXVsdD0wKQorCisgICAgICAgIGFzc2VydCBldm9sdmUoQygxKSwgYT0yKS5hID09IDIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9pbml0X3N1YmNsYXNzLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy90ZXN0cy90ZXN0X2luaXRfc3ViY2xhc3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY2MTMwZWRlNDcxZjY2
YWYwM2ZmZDY4MmZiNjlmYzAwZGJlY2ZmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
dGVzdHMvdGVzdF9pbml0X3N1YmNsYXNzLnB5CkBAIC0wLDAgKzEsNDQgQEAKKyIiIgorVGVzdHMg
Zm9yIGBfX2luaXRfc3ViY2xhc3NfX2AgcmVsYXRlZCB0ZXN0cy4KKworUHl0aG9uIDMuNisgb25s
eS4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CisKK2ltcG9ydCBhdHRyCisKKworQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJzbG90cyIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9pbml0X3N1YmNs
YXNzX3ZhbmlsbGEoc2xvdHMpOgorICAgICIiIgorICAgIGBzdXBlcigpLl9faW5pdF9zdWJjbGFz
c19fYCBjYW4gYmUgdXNlZCBpZiB0aGUgc3ViY2xhc3MgaXMgbm90IGFuIGF0dHJzCisgICAgY2xh
c3MgYm90aCB3aXRoIGRpY3QgYW5kIHNsb3RzIGNsYXNzZXMuCisgICAgIiIiCisgICAgQGF0dHIu
cyhzbG90cz1zbG90cykKKyAgICBjbGFzcyBCYXNlOgorICAgICAgICBkZWYgX19pbml0X3N1YmNs
YXNzX18oY2xzLCBwYXJhbSwgKiprdyk6CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9zdWJj
bGFzc19fKCoqa3cpCisgICAgICAgICAgICBjbHMucGFyYW0gPSBwYXJhbQorCisgICAgY2xhc3Mg
VmFuaWxsYShCYXNlLCBwYXJhbT0iZm9vIik6CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCAi
Zm9vIiA9PSBWYW5pbGxhKCkucGFyYW0KKworCitkZWYgdGVzdF9pbml0X3N1YmNsYXNzX2F0dHJz
KCk6CisgICAgIiIiCisgICAgYF9faW5pdF9zdWJjbGFzc19fYCB3b3JrcyB3aXRoIGF0dHJzIGNs
YXNzZXMgYXMgbG9uZyBhcyBzbG90cz1GYWxzZS4KKyAgICAiIiIKKyAgICBAYXR0ci5zKHNsb3Rz
PUZhbHNlKQorICAgIGNsYXNzIEJhc2U6CisgICAgICAgIGRlZiBfX2luaXRfc3ViY2xhc3NfXyhj
bHMsIHBhcmFtLCAqKmt3KToKKyAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X3N1YmNsYXNzX18o
KiprdykKKyAgICAgICAgICAgIGNscy5wYXJhbSA9IHBhcmFtCisKKyAgICBAYXR0ci5zCisgICAg
Y2xhc3MgQXR0cnMoQmFzZSwgcGFyYW09ImZvbyIpOgorICAgICAgICBwYXNzCisKKyAgICBhc3Nl
cnQgImZvbyIgPT0gQXR0cnMoKS5wYXJhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90
ZXN0X21ha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfbWFrZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OGM4MDIyOGFlODc4MmYwOGQ0NTQ0OTJmZmM5MzUyOTU2MmIzMDIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X21ha2UucHkKQEAgLTAsMCArMSw4NjYgQEAKKyIiIgor
VGVzdHMgZm9yIGBhdHRyLl9tYWtlYC4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBpbnNwZWN0
CitpbXBvcnQgc3lzCisKK2Zyb20gb3BlcmF0b3IgaW1wb3J0IGF0dHJnZXR0ZXIKKworaW1wb3J0
IHB5dGVzdAorCitmcm9tIGh5cG90aGVzaXMgaW1wb3J0IGdpdmVuCitmcm9tIGh5cG90aGVzaXMu
c3RyYXRlZ2llcyBpbXBvcnQgYm9vbGVhbnMsIGludGVnZXJzLCBsaXN0cywgc2FtcGxlZF9mcm9t
LCB0ZXh0CisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgX2NvbmZpZworZnJvbSBh
dHRyLl9jb21wYXQgaW1wb3J0IFBZMgorZnJvbSBhdHRyLl9tYWtlIGltcG9ydCAoCisgICAgQXR0
cmlidXRlLCBGYWN0b3J5LCBfQW5kVmFsaWRhdG9yLCBfQXR0cmlidXRlcywgX0NsYXNzQnVpbGRl
ciwKKyAgICBfQ291bnRpbmdBdHRyLCBfdHJhbnNmb3JtX2F0dHJzLCBhbmRfLCBmaWVsZHMsIG1h
a2VfY2xhc3MsIHZhbGlkYXRlCispCitmcm9tIGF0dHIuZXhjZXB0aW9ucyBpbXBvcnQgRGVmYXVs
dEFscmVhZHlTZXRFcnJvciwgTm90QW5BdHRyc0NsYXNzRXJyb3IKKworZnJvbSAudXRpbHMgaW1w
b3J0ICgKKyAgICBnZW5fYXR0cl9uYW1lcywgbGlzdF9vZl9hdHRycywgc2ltcGxlX2F0dHIsIHNp
bXBsZV9hdHRycywKKyAgICBzaW1wbGVfYXR0cnNfd2l0aG91dF9tZXRhZGF0YSwgc2ltcGxlX2Ns
YXNzZXMKKykKKworCithdHRyc19zdCA9IHNpbXBsZV9hdHRycy5tYXAobGFtYmRhIGM6IEF0dHJp
YnV0ZS5mcm9tX2NvdW50aW5nX2F0dHIoIm5hbWUiLCBjKSkKKworCitjbGFzcyBUZXN0Q291bnRp
bmdBdHRyKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhdHRyYC4KKyAgICAiIiIK
KyAgICBkZWYgdGVzdF9yZXR1cm5zX0F0dHIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBS
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIF9Db3VudGluZ0F0dHIuCisgICAgICAgICIiIgorICAgICAg
ICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYSwgX0NvdW50aW5n
QXR0cikKKworICAgIGRlZiB0ZXN0X3ZhbGlkYXRvcnNfbGlzdHNfdG9fd3JhcHBlZF90dXBsZXMo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiBhIGxpc3QgaXMgcGFzc2VkIGFzIHZhbGlk
YXRvciwgaXQncyBqdXN0IGNvbnZlcnRlZCB0byBhIHR1cGxlLgorICAgICAgICAiIiIKKyAgICAg
ICAgZGVmIHYxKF8sIF9fKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgdjIoXywg
X18pOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGEgPSBhdHRyLmliKHZhbGlkYXRvcj1b
djEsIHYyXSkKKworICAgICAgICBhc3NlcnQgX0FuZFZhbGlkYXRvcigodjEsIHYyLCkpID09IGEu
X3ZhbGlkYXRvcgorCisgICAgZGVmIHRlc3RfdmFsaWRhdG9yX2RlY29yYXRvcl9zaW5nbGUoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBJZiBfQ291bnRpbmdBdHRyLnZhbGlkYXRvciBpcyB1
c2VkIGFzIGEgZGVjb3JhdG9yIGFuZCB0aGVyZSBpcyBubworICAgICAgICBkZWNvcmF0b3Igc2V0
LCB0aGUgZGVjb3JhdGVkIG1ldGhvZCBpcyB1c2VkIGFzIHRoZSB2YWxpZGF0b3IuCisgICAgICAg
ICIiIgorICAgICAgICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgQGEudmFsaWRhdG9yCisgICAg
ICAgIGRlZiB2KCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IHYgPT0gYS5f
dmFsaWRhdG9yCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIndyYXAiLCBbCisgICAg
ICAgIGxhbWJkYSB2OiB2LAorICAgICAgICBsYW1iZGEgdjogW3ZdLAorICAgICAgICBsYW1iZGEg
djogYW5kXyh2KQorCisgICAgXSkKKyAgICBkZWYgdGVzdF92YWxpZGF0b3JfZGVjb3JhdG9yKHNl
bGYsIHdyYXApOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgX0NvdW50aW5nQXR0ci52YWxpZGF0
b3IgaXMgdXNlZCBhcyBhIGRlY29yYXRvciBhbmQgdGhlcmUgaXMgYWxyZWFkeQorICAgICAgICBh
IGRlY29yYXRvciBzZXQsIHRoZSBkZWNvcmF0b3JzIGFyZSBjb21wb3NlZCB1c2luZyBgYW5kX2Au
CisgICAgICAgICIiIgorICAgICAgICBkZWYgdihfLCBfXyk6CisgICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgYSA9IGF0dHIuaWIodmFsaWRhdG9yPXdyYXAodikpCisKKyAgICAgICAgQGEudmFs
aWRhdG9yCisgICAgICAgIGRlZiB2MihzZWxmLCBfLCBfXyk6CisgICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgYXNzZXJ0IF9BbmRWYWxpZGF0b3IoKHYsIHYyLCkpID09IGEuX3ZhbGlkYXRvcgor
CisgICAgZGVmIHRlc3RfZGVmYXVsdF9kZWNvcmF0b3JfYWxyZWFkeV9zZXQoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICBSYWlzZSBEZWZhdWx0QWxyZWFkeVNldEVycm9yIGlmIHRoZSBkZWNv
cmF0b3IgaXMgdXNlZCBhZnRlciBhIGRlZmF1bHQKKyAgICAgICAgaGFzIGJlZW4gc2V0LgorICAg
ICAgICAiIiIKKyAgICAgICAgYSA9IGF0dHIuaWIoZGVmYXVsdD00MikKKworICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoRGVmYXVsdEFscmVhZHlTZXRFcnJvcik6CisgICAgICAgICAgICBAYS5k
ZWZhdWx0CisgICAgICAgICAgICBkZWYgZihzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisK
KyAgICBkZWYgdGVzdF9kZWZhdWx0X2RlY29yYXRvcl9zZXRzKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgRGVjb3JhdG9yIHdyYXBzIHRoZSBtZXRob2QgaW4gYSBGYWN0b3J5IHdpdGggcGFz
c19zZWxmPVRydWUgYW5kIHNldHMKKyAgICAgICAgdGhlIGRlZmF1bHQuCisgICAgICAgICIiIgor
ICAgICAgICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgQGEuZGVmYXVsdAorICAgICAgICBkZWYg
ZihzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBhc3NlcnQgRmFjdG9yeShmLCBU
cnVlKSA9PSBhLl9kZWZhdWx0CisKKworZGVmIG1ha2VfdGMoKToKKyAgICBjbGFzcyBUcmFuc2Zv
cm1DKG9iamVjdCk6CisgICAgICAgIHogPSBhdHRyLmliKCkKKyAgICAgICAgeSA9IGF0dHIuaWIo
KQorICAgICAgICB4ID0gYXR0ci5pYigpCisgICAgICAgIGEgPSA0MgorICAgIHJldHVybiBUcmFu
c2Zvcm1DCisKKworY2xhc3MgVGVzdFRyYW5zZm9ybUF0dHJzKG9iamVjdCk6CisgICAgIiIiCisg
ICAgVGVzdHMgZm9yIGBfdHJhbnNmb3JtX2F0dHJzYC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9u
b19tb2RpZmljYXRpb25zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRG9lc24ndCBhdHRh
Y2ggX19hdHRyc19hdHRyc19fIHRvIHRoZSBjbGFzcyBhbnltb3JlLgorICAgICAgICAiIiIKKyAg
ICAgICAgQyA9IG1ha2VfdGMoKQorICAgICAgICBfdHJhbnNmb3JtX2F0dHJzKEMsIE5vbmUsIEZh
bHNlKQorCisgICAgICAgIGFzc2VydCBOb25lIGlzIGdldGF0dHIoQywgIl9fYXR0cnNfYXR0cnNf
XyIsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9ub3JtYWwoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBUcmFuc2Zvcm1zIGV2ZXJ5IGBfQ291bnRpbmdBdHRyYCBhbmQgbGVhdmVzIG90aGVycyAo
YSkgYmUuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV90YygpCisgICAgICAgIGF0dHJz
LCBfLCA9IF90cmFuc2Zvcm1fYXR0cnMoQywgTm9uZSwgRmFsc2UpCisKKyAgICAgICAgYXNzZXJ0
IFsieiIsICJ5IiwgIngiXSA9PSBbYS5uYW1lIGZvciBhIGluIGF0dHJzXQorCisgICAgZGVmIHRl
c3RfZW1wdHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBObyBhdHRyaWJ1dGVzIHdvcmtz
IGFzIGV4cGVjdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucworICAgICAgICBjbGFz
cyBDKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IF9BdHRyaWJ1
dGVzKCgoKSwgW10pKSA9PSBfdHJhbnNmb3JtX2F0dHJzKEMsIE5vbmUsIEZhbHNlKQorCisgICAg
ZGVmIHRlc3RfdHJhbnNmb3Jtc190b19hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBBbGwgYF9Db3VudGluZ0F0dHJgcyBhcmUgdHJhbnNmb3JtZWQgaW50byBgQXR0cmlidXRl
YHMuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV90YygpCisgICAgICAgIGF0dHJzLCBz
dXBlcl9hdHRycyA9IF90cmFuc2Zvcm1fYXR0cnMoQywgTm9uZSwgRmFsc2UpCisKKyAgICAgICAg
YXNzZXJ0IFtdID09IHN1cGVyX2F0dHJzCisgICAgICAgIGFzc2VydCAzID09IGxlbihhdHRycykK
KyAgICAgICAgYXNzZXJ0IGFsbChpc2luc3RhbmNlKGEsIEF0dHJpYnV0ZSkgZm9yIGEgaW4gYXR0
cnMpCisKKyAgICBkZWYgdGVzdF9jb25mbGljdGluZ19kZWZhdWx0cyhzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIFJhaXNlcyBgVmFsdWVFcnJvcmAgaWYgYXR0cmlidXRlcyB3aXRoIGRlZmF1
bHRzIGFyZSBmb2xsb3dlZCBieQorICAgICAgICBtYW5kYXRvcnkgYXR0cmlidXRlcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmli
KGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIF90cmFuc2Zvcm1f
YXR0cnMoQywgTm9uZSwgRmFsc2UpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAiTm8g
bWFuZGF0b3J5IGF0dHJpYnV0ZXMgYWxsb3dlZCBhZnRlciBhbiBhdHRyaWJ1dGUgd2l0aCBhICIK
KyAgICAgICAgICAgICJkZWZhdWx0IHZhbHVlIG9yIGZhY3RvcnkuICBBdHRyaWJ1dGUgaW4gcXVl
c3Rpb246IEF0dHJpYnV0ZSIKKyAgICAgICAgICAgICIobmFtZT0neScsIGRlZmF1bHQ9Tk9USElO
RywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgIgorICAgICAgICAgICAgImNtcD1UcnVlLCBo
YXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCAiCisgICAgICAgICAgICAibWV0YWRh
dGE9bWFwcGluZ3Byb3h5KHt9KSwgdHlwZT1Ob25lKSIsCisgICAgICAgICkgPT0gZS52YWx1ZS5h
cmdzCisKKyAgICBkZWYgdGVzdF90aGVzZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElm
IHRoZXNlIGlzIHBhc3NlZCwgdXNlIGl0IGFuZCBpZ25vcmUgYm9keSBhbmQgc3VwZXIgY2xhc3Nl
cy4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKKyAgICAgICAgICAg
IHogPSBhdHRyLmliKCkKKworICAgICAgICBjbGFzcyBDKEJhc2UpOgorICAgICAgICAgICAgeSA9
IGF0dHIuaWIoKQorCisgICAgICAgIGF0dHJzLCBzdXBlcl9hdHRycyA9IF90cmFuc2Zvcm1fYXR0
cnMoQywgeyJ4IjogYXR0ci5pYigpfSwgRmFsc2UpCisKKyAgICAgICAgYXNzZXJ0IFtdID09IHN1
cGVyX2F0dHJzCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBzaW1wbGVfYXR0cigieCIp
LAorICAgICAgICApID09IGF0dHJzCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9pbmhlcml0YW5j
ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE9yZGVyIG9mIGF0dHJpYnV0ZXMgZG9lc24n
dCBnZXQgbWl4ZWQgdXAgYnkgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCisKKyAgICAgICAgU2VlICMy
ODUKKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQShvYmplY3Qp
OgorICAgICAgICAgICAgYTEgPSBhdHRyLmliKGRlZmF1bHQ9ImExIikKKyAgICAgICAgICAgIGEy
ID0gYXR0ci5pYihkZWZhdWx0PSJhMiIpCisKKyAgICAgICAgQGF0dHIucworICAgICAgICBjbGFz
cyBCKEEpOgorICAgICAgICAgICAgYjEgPSBhdHRyLmliKGRlZmF1bHQ9ImIxIikKKyAgICAgICAg
ICAgIGIyID0gYXR0ci5pYihkZWZhdWx0PSJiMiIpCisKKyAgICAgICAgQGF0dHIucworICAgICAg
ICBjbGFzcyBDKEIsIEEpOgorICAgICAgICAgICAgYzEgPSBhdHRyLmliKGRlZmF1bHQ9ImMxIikK
KyAgICAgICAgICAgIGMyID0gYXR0ci5pYihkZWZhdWx0PSJjMiIpCisKKyAgICAgICAgQGF0dHIu
cworICAgICAgICBjbGFzcyBEKEEpOgorICAgICAgICAgICAgZDEgPSBhdHRyLmliKGRlZmF1bHQ9
ImQxIikKKyAgICAgICAgICAgIGQyID0gYXR0ci5pYihkZWZhdWx0PSJkMiIpCisKKyAgICAgICAg
QGF0dHIucworICAgICAgICBjbGFzcyBFKEQsIEMpOgorICAgICAgICAgICAgZTEgPSBhdHRyLmli
KGRlZmF1bHQ9ImUxIikKKyAgICAgICAgICAgIGUyID0gYXR0ci5pYihkZWZhdWx0PSJlMiIpCisK
KyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJFKGExPSdhMScsIGEyPSdhMicsIGIxPSdi
MScsIGIyPSdiMicsIGMxPSdjMScsIGMyPSdjMicsIGQxPSdkMScsICIKKyAgICAgICAgICAgICJk
Mj0nZDInLCBlMT0nZTEnLCBlMj0nZTInKSIKKyAgICAgICAgKSA9PSByZXByKEUoKSkKKworCitj
bGFzcyBUZXN0QXR0cmlidXRlcyhvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciB0aGUg
YGF0dHJzYC9gYXR0ci5zYCBjbGFzcyBkZWNvcmF0b3IuCisgICAgIiIiCisgICAgQHB5dGVzdC5t
YXJrLnNraXBpZihub3QgUFkyLCByZWFzb249Ik5vIG9sZC1zdHlsZSBjbGFzc2VzIGluIFB5MyIp
CisgICAgZGVmIHRlc3RfY2F0Y2hlc19vbGRfc3R5bGUoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSYWlzZXMgVHlwZUVycm9yIG9uIG9sZC1zdHlsZSBjbGFzc2VzLgorICAgICAgICAiIiIK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAg
IEBhdHRyLnMKKyAgICAgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIGFzc2VydCAoImF0dHJzIG9ubHkgd29ya3Mgd2l0aCBuZXctc3R5bGUgY2xhc3Nlcy4i
LCkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9zZXRzX2F0dHJzKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgYF9fYXR0cnNfYXR0cnNfX2AgY2xhc3MgYXR0cmli
dXRlIHdpdGggYSBsaXN0IG9mIGBBdHRyaWJ1dGVgcy4KKyAgICAgICAgIiIiCisgICAgICAgIEBh
dHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIo
KQorCisgICAgICAgIGFzc2VydCAieCIgPT0gQy5fX2F0dHJzX2F0dHJzX19bMF0ubmFtZQorICAg
ICAgICBhc3NlcnQgYWxsKGlzaW5zdGFuY2UoYSwgQXR0cmlidXRlKSBmb3IgYSBpbiBDLl9fYXR0
cnNfYXR0cnNfXykKKworICAgIGRlZiB0ZXN0X2VtcHR5KHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgTm8gYXR0cmlidXRlcywgbm8gcHJvYmxlbXMuCisgICAgICAgICIiIgorICAgICAgICBA
YXR0ci5zCisgICAgICAgIGNsYXNzIEMzKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgYXNzZXJ0ICJDMygpIiA9PSByZXByKEMzKCkpCisgICAgICAgIGFzc2VydCBDMygpID09
IEMzKCkKKworICAgIEBnaXZlbihhdHRyPWF0dHJzX3N0LCBhdHRyX25hbWU9c2FtcGxlZF9mcm9t
KEF0dHJpYnV0ZS5fX3Nsb3RzX18pKQorICAgIGRlZiB0ZXN0X2ltbXV0YWJsZShzZWxmLCBhdHRy
LCBhdHRyX25hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0cmlidXRlIGluc3RhbmNlcyBh
cmUgaW1tdXRhYmxlLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0
dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIHNldGF0dHIoYXR0ciwgYXR0cl9uYW1lLCAxKQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtZXRob2RfbmFtZSIsIFsKKyAgICAgICAg
Il9fcmVwcl9fIiwKKyAgICAgICAgIl9fZXFfXyIsCisgICAgICAgICJfX2hhc2hfXyIsCisgICAg
ICAgICJfX2luaXRfXyIsCisgICAgXSkKKyAgICBkZWYgdGVzdF9hZGRzX2FsbF9ieV9kZWZhdWx0
KHNlbGYsIG1ldGhvZF9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIG5vIGZ1cnRoZXIg
YXJndW1lbnRzIGFyZSBzdXBwbGllZCwgYWxsIGFkZF9YWFggZnVuY3Rpb25zIGV4Y2VwdAorICAg
ICAgICBhZGRfaGFzaCBhcmUgYXBwbGllZC4gIF9faGFzaF9fIGlzIHNldCB0byBOb25lLgorICAg
ICAgICAiIiIKKyAgICAgICAgIyBTZXQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgc2VudGluZWwgYW5k
IGNoZWNrIHdoZXRoZXIgaXQgaGFzIGJlZW4KKyAgICAgICAgIyBvdmVyd3JpdHRlbiBhZnRlcndh
cmRzLgorICAgICAgICBzZW50aW5lbCA9IG9iamVjdCgpCisKKyAgICAgICAgY2xhc3MgQyhvYmpl
Y3QpOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIHNldGF0dHIoQywgbWV0
aG9kX25hbWUsIHNlbnRpbmVsKQorCisgICAgICAgIEMgPSBhdHRyLnMoQykKKyAgICAgICAgbWV0
aCA9IGdldGF0dHIoQywgbWV0aG9kX25hbWUpCisKKyAgICAgICAgYXNzZXJ0IHNlbnRpbmVsICE9
IG1ldGgKKyAgICAgICAgaWYgbWV0aG9kX25hbWUgPT0gIl9faGFzaF9fIjoKKyAgICAgICAgICAg
IGFzc2VydCBtZXRoIGlzIE5vbmUKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYXJn
X25hbWUsIG1ldGhvZF9uYW1lIiwgWworICAgICAgICAoInJlcHIiLCAiX19yZXByX18iKSwKKyAg
ICAgICAgKCJjbXAiLCAiX19lcV9fIiksCisgICAgICAgICgiaGFzaCIsICJfX2hhc2hfXyIpLAor
ICAgICAgICAoImluaXQiLCAiX19pbml0X18iKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X3Jlc3Bl
Y3RzX2FkZF9hcmd1bWVudHMoc2VsZiwgYXJnX25hbWUsIG1ldGhvZF9uYW1lKToKKyAgICAgICAg
IiIiCisgICAgICAgIElmIGEgY2VydGFpbiBgYWRkX1hYWGAgaXMgYEZhbHNlYCwgYF9fWFhYX19g
IGlzIG5vdCBhZGRlZCB0byB0aGUgY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICAjIFNldCB0
aGUgbWV0aG9kIG5hbWUgdG8gYSBzZW50aW5lbCBhbmQgY2hlY2sgd2hldGhlciBpdCBoYXMgYmVl
bgorICAgICAgICAjIG92ZXJ3cml0dGVuIGFmdGVyd2FyZHMuCisgICAgICAgIHNlbnRpbmVsID0g
b2JqZWN0KCkKKworICAgICAgICBhbV9hcmdzID0geworICAgICAgICAgICAgInJlcHIiOiBUcnVl
LAorICAgICAgICAgICAgImNtcCI6IFRydWUsCisgICAgICAgICAgICAiaGFzaCI6IFRydWUsCisg
ICAgICAgICAgICAiaW5pdCI6IFRydWUKKyAgICAgICAgfQorICAgICAgICBhbV9hcmdzW2FyZ19u
YW1lXSA9IEZhbHNlCisKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgeCA9
IGF0dHIuaWIoKQorCisgICAgICAgIHNldGF0dHIoQywgbWV0aG9kX25hbWUsIHNlbnRpbmVsKQor
CisgICAgICAgIEMgPSBhdHRyLnMoKiphbV9hcmdzKShDKQorCisgICAgICAgIGFzc2VydCBzZW50
aW5lbCA9PSBnZXRhdHRyKEMsIG1ldGhvZF9uYW1lKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBp
ZihQWTIsIHJlYXNvbj0iX19xdWFsbmFtZV9fIGlzIFBZMy1vbmx5LiIpCisgICAgQGdpdmVuKHNs
b3RzX291dGVyPWJvb2xlYW5zKCksIHNsb3RzX2lubmVyPWJvb2xlYW5zKCkpCisgICAgZGVmIHRl
c3RfcmVwcl9xdWFsbmFtZShzZWxmLCBzbG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAgICAg
ICAiIiIKKyAgICAgICAgT24gUHl0aG9uIDMsIHRoZSBuYW1lIGluIHJlcHIgaXMgdGhlIF9fcXVh
bG5hbWVfXy4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfb3V0ZXIp
CisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xv
dHNfaW5uZXIpCisgICAgICAgICAgICBjbGFzcyBEKG9iamVjdCk6CisgICAgICAgICAgICAgICAg
cGFzcworCisgICAgICAgIGFzc2VydCAiQy5EKCkiID09IHJlcHIoQy5EKCkpCisgICAgICAgIGFz
c2VydCAiR0MuRCgpIiA9PSByZXByKEdDLkQoKSkKKworICAgIEBnaXZlbihzbG90c19vdXRlcj1i
b29sZWFucygpLCBzbG90c19pbm5lcj1ib29sZWFucygpKQorICAgIGRlZiB0ZXN0X3JlcHJfZmFr
ZV9xdWFsbmFtZShzZWxmLCBzbG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAgICAgICAiIiIK
KyAgICAgICAgU2V0dGluZyByZXByX25zIG92ZXJyaWRlcyBhIHBvdGVudGlhbGx5IGd1ZXNzZWQg
bmFtZXNwYWNlLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucyhzbG90cz1zbG90c19vdXRl
cikKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgQGF0dHIucyhyZXByX25z
PSJDIiwgc2xvdHM9c2xvdHNfaW5uZXIpCisgICAgICAgICAgICBjbGFzcyBEKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgIkMuRCgpIiA9PSByZXByKEMuRCgp
KQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihQWTIsIHJlYXNvbj0iX19xdWFsbmFtZV9fIGlz
IFBZMy1vbmx5LiIpCisgICAgQGdpdmVuKHNsb3RzX291dGVyPWJvb2xlYW5zKCksIHNsb3RzX2lu
bmVyPWJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfbmFtZV9ub3Rfb3ZlcnJpZGRlbihzZWxmLCBz
bG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgT24gUHl0aG9u
IDMsIF9fbmFtZV9fIGlzIGRpZmZlcmVudCBmcm9tIF9fcXVhbG5hbWVfXy4KKyAgICAgICAgIiIi
CisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfb3V0ZXIpCisgICAgICAgIGNsYXNzIEMob2Jq
ZWN0KToKKyAgICAgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfaW5uZXIpCisgICAgICAgICAg
ICBjbGFzcyBEKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGFzc2Vy
dCBDLkQuX19uYW1lX18gPT0gIkQiCisgICAgICAgIGFzc2VydCBDLkQuX19xdWFsbmFtZV9fID09
IEMuX19xdWFsbmFtZV9fICsgIi5EIgorCisgICAgQGdpdmVuKHdpdGhfdmFsaWRhdGlvbj1ib29s
ZWFucygpKQorICAgIGRlZiB0ZXN0X3Bvc3RfaW5pdChzZWxmLCB3aXRoX3ZhbGlkYXRpb24sIG1v
bmtleXBhdGNoKToKKyAgICAgICAgIiIiCisgICAgICAgIFZlcmlmeSB0aGF0IF9fYXR0cnNfcG9z
dF9pbml0X18gZ2V0cyBjYWxsZWQgaWYgZGVmaW5lZC4KKyAgICAgICAgIiIiCisgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIoX2NvbmZpZywgIl9ydW5fdmFsaWRhdG9ycyIsIHdpdGhfdmFsaWRh
dGlvbikKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAg
ICAgICAgIHggPSBhdHRyLmliKCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAgICAg
ICAgICAgZGVmIF9fYXR0cnNfcG9zdF9pbml0X18oc2VsZjIpOgorICAgICAgICAgICAgICAgIHNl
bGYyLnogPSBzZWxmMi54ICsgc2VsZjIueQorCisgICAgICAgIGMgPSBDKHg9MTAsIHk9MjApCisK
KyAgICAgICAgYXNzZXJ0IDMwID09IGdldGF0dHIoYywgJ3onLCBOb25lKQorCisgICAgZGVmIHRl
c3RfdHlwZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBgQXR0cmlidXRl
LnR5cGVgIGF0dHIgZnJvbSB0eXBlIGFyZ3VtZW50LgorICAgICAgICAiIiIKKyAgICAgICAgQGF0
dHIucworICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gYXR0ci5pYih0
eXBlPWludCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgICAgICAgICAg
eiA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBpbnQgaXMgZmllbGRzKEMpLngudHlwZQor
ICAgICAgICBhc3NlcnQgc3RyIGlzIGZpZWxkcyhDKS55LnR5cGUKKyAgICAgICAgYXNzZXJ0IE5v
bmUgaXMgZmllbGRzKEMpLnoudHlwZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJz
bG90cyIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfY2xlYW5fY2xhc3Moc2VsZiwgc2xv
dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0cmlidXRlIGRlZmluaXRpb25zIGRvIG5vdCBh
cHBlYXIgb24gdGhlIGNsYXNzIGJvZHkgYWZ0ZXIgQGF0dHIucy4KKyAgICAgICAgIiIiCisgICAg
ICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMpCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAg
ICAgICAgIHggPSBhdHRyLmliKCkKKworICAgICAgICB4ID0gZ2V0YXR0cihDLCAieCIsIE5vbmUp
CisKKyAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHgsIF9Db3VudGluZ0F0dHIpCisKKwor
QGF0dHIucworY2xhc3MgR0Mob2JqZWN0KToKKyAgICBAYXR0ci5zCisgICAgY2xhc3MgRChvYmpl
Y3QpOgorICAgICAgICBwYXNzCisKKworY2xhc3MgVGVzdE1ha2VDbGFzcyhvYmplY3QpOgorICAg
ICIiIgorICAgIFRlc3RzIGZvciBgbWFrZV9jbGFzc2AuCisgICAgIiIiCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJscyIsIFsKKyAgICAgICAgbGlzdCwKKyAgICAgICAgdHVwbGUKKyAg
ICBdKQorICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmLCBscyk6CisgICAgICAgICIiIgorICAgICAg
ICBQYXNzaW5nIGEgbGlzdCBvZiBzdHJpbmdzIGNyZWF0ZXMgYXR0cmlidXRlcyB3aXRoIGRlZmF1
bHQgYXJncy4KKyAgICAgICAgIiIiCisgICAgICAgIEMxID0gbWFrZV9jbGFzcygiQzEiLCBscyhb
ImEiLCAiYiJdKSkKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMyKG9iamVjdCk6
CisgICAgICAgICAgICBhID0gYXR0ci5pYigpCisgICAgICAgICAgICBiID0gYXR0ci5pYigpCisK
KyAgICAgICAgYXNzZXJ0IEMxLl9fYXR0cnNfYXR0cnNfXyA9PSBDMi5fX2F0dHJzX2F0dHJzX18K
KworICAgIGRlZiB0ZXN0X2RpY3Qoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBQYXNzaW5n
IGEgZGljdCBvZiBuYW1lOiBfQ291bnRpbmdBdHRyIGNyZWF0ZXMgYW4gZXF1aXZhbGVudCBjbGFz
cy4KKyAgICAgICAgIiIiCisgICAgICAgIEMxID0gbWFrZV9jbGFzcygiQzEiLCB7CisgICAgICAg
ICAgICAiYSI6IGF0dHIuaWIoZGVmYXVsdD00MiksCisgICAgICAgICAgICAiYiI6IGF0dHIuaWIo
ZGVmYXVsdD1Ob25lKSwKKyAgICAgICAgfSkKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNs
YXNzIEMyKG9iamVjdCk6CisgICAgICAgICAgICBhID0gYXR0ci5pYihkZWZhdWx0PTQyKQorICAg
ICAgICAgICAgYiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorCisgICAgICAgIGFzc2VydCBDMS5f
X2F0dHJzX2F0dHJzX18gPT0gQzIuX19hdHRyc19hdHRyc19fCisKKyAgICBkZWYgdGVzdF9hdHRy
X2FyZ3Moc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBhdHRyaWJ1dGVzX2FyZ3VtZW50cyBh
cmUgcGFzc2VkIHRvIGF0dHJpYnV0ZXMKKyAgICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtlX2Ns
YXNzKCJDIiwgWyJ4Il0sIHJlcHI9RmFsc2UpCisKKyAgICAgICAgYXNzZXJ0IHJlcHIoQygxKSku
c3RhcnRzd2l0aCgiPHRlc3RzLnRlc3RfbWFrZS5DIG9iamVjdCBhdCAweCIpCisKKyAgICBkZWYg
dGVzdF9jYXRjaGVzX3dyb25nX2F0dHJzX3R5cGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSYWlzZSBgVHlwZUVycm9yYCBpZiBhbiBpbnZhbGlkIHR5cGUgZm9yIGF0dHJzIGlzIHBhc3Nl
ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFz
IGU6CisgICAgICAgICAgICBtYWtlX2NsYXNzKCJDIiwgb2JqZWN0KCkpCisKKyAgICAgICAgYXNz
ZXJ0ICgKKyAgICAgICAgICAgICJhdHRycyBhcmd1bWVudCBtdXN0IGJlIGEgZGljdCBvciBhIGxp
c3QuIiwKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3MKKworICAgIGRlZiB0ZXN0X2Jhc2VzKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUGFyYW1ldGVyIGJhc2VzIGRlZmF1bHQgdG8gKG9i
amVjdCwpIGFuZCBzdWJjbGFzc2VzIGNvcnJlY3RseQorICAgICAgICAiIiIKKyAgICAgICAgY2xh
c3MgRChvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNscyA9IG1ha2VfY2xh
c3MoIkMiLCB7fSkKKworICAgICAgICBhc3NlcnQgY2xzLl9fbXJvX19bLTFdID09IG9iamVjdAor
CisgICAgICAgIGNscyA9IG1ha2VfY2xhc3MoIkMiLCB7fSwgYmFzZXM9KEQsKSkKKworICAgICAg
ICBhc3NlcnQgRCBpbiBjbHMuX19tcm9fXworICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjbHMo
KSwgRCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBbVHJ1ZSwgRmFs
c2VdKQorICAgIGRlZiB0ZXN0X2NsZWFuX2NsYXNzKHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIi
CisgICAgICAgIEF0dHJpYnV0ZSBkZWZpbml0aW9ucyBkbyBub3QgYXBwZWFyIG9uIHRoZSBjbGFz
cyBib2R5LgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCBbIngiXSwg
c2xvdHM9c2xvdHMpCisKKyAgICAgICAgeCA9IGdldGF0dHIoQywgIngiLCBOb25lKQorCisgICAg
ICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZSh4LCBfQ291bnRpbmdBdHRyKQorCisgICAgZGVmIHRl
c3RfbWlzc2luZ19zeXNfZ2V0ZnJhbWUoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAiIiIK
KyAgICAgICAgYG1ha2VfY2xhc3MoKWAgZG9lcyBub3QgZmFpbCB3aGVuIGBzeXMuX2dldGZyYW1l
KClgIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICAgICIiIgorICAgICAgICBtb25rZXlwYXRjaC5k
ZWxhdHRyKHN5cywgJ19nZXRmcmFtZScpCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwgWyJ4
Il0pCisKKyAgICAgICAgYXNzZXJ0IDEgPT0gbGVuKEMuX19hdHRyc19hdHRyc19fKQorCisKK2Ns
YXNzIFRlc3RGaWVsZHMob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYGZpZWxkc2Au
CisgICAgIiIiCisgICAgZGVmIHRlc3RfaW5zdGFuY2Uoc2VsZiwgQyk6CisgICAgICAgICIiIgor
ICAgICAgICBSYWlzZXMgYFR5cGVFcnJvcmAgb24gbm9uLWNsYXNzZXMuCisgICAgICAgICIiIgor
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAg
ZmllbGRzKEMoMSwgMikpCisKKyAgICAgICAgYXNzZXJ0ICJQYXNzZWQgb2JqZWN0IG11c3QgYmUg
YSBjbGFzcy4iID09IGUudmFsdWUuYXJnc1swXQorCisgICAgZGVmIHRlc3RfaGFuZGxlcl9ub25f
YXR0cnNfY2xhc3Moc2VsZiwgQyk6CisgICAgICAgICIiIgorICAgICAgICBSYWlzZXMgYFZhbHVl
RXJyb3JgIGlmIHBhc3NlZCBhIG5vbi1gYGF0dHJzYGAgaW5zdGFuY2UuCisgICAgICAgICIiIgor
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm90QW5BdHRyc0NsYXNzRXJyb3IpIGFzIGU6Cisg
ICAgICAgICAgICBmaWVsZHMob2JqZWN0KQorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAg
IntvIXJ9IGlzIG5vdCBhbiBhdHRycy1kZWNvcmF0ZWQgY2xhc3MuIi5mb3JtYXQobz1vYmplY3Qp
CisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzWzBdCisKKyAgICBAZ2l2ZW4oc2ltcGxlX2NsYXNz
ZXMoKSkKKyAgICBkZWYgdGVzdF9maWVsZHMoc2VsZiwgQyk6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm5zIGEgbGlzdCBvZiBgQXR0cmlidXRlYGEuCisgICAgICAgICIiIgorICAgICAgICBh
c3NlcnQgYWxsKGlzaW5zdGFuY2UoYSwgQXR0cmlidXRlKSBmb3IgYSBpbiBmaWVsZHMoQykpCisK
KyAgICBAZ2l2ZW4oc2ltcGxlX2NsYXNzZXMoKSkKKyAgICBkZWYgdGVzdF9maWVsZHNfcHJvcGVy
dGllcyhzZWxmLCBDKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpZWxkcyByZXR1cm5zIGEgdHVw
bGUgd2l0aCBwcm9wZXJ0aWVzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGF0dHJpYnV0ZSBp
biBmaWVsZHMoQyk6CisgICAgICAgICAgICBhc3NlcnQgZ2V0YXR0cihmaWVsZHMoQyksIGF0dHJp
YnV0ZS5uYW1lKSBpcyBhdHRyaWJ1dGUKKworCitjbGFzcyBUZXN0Q29udmVydChvYmplY3QpOgor
ICAgICIiIgorICAgIFRlc3RzIGZvciBhdHRyaWJ1dGUgY29udmVyc2lvbi4KKyAgICAiIiIKKyAg
ICBkZWYgdGVzdF9jb252ZXJ0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHZh
bHVlIG9mIGNvbnZlcnQgaXMgdXNlZCBhcyB0aGUgYXR0cmlidXRlJ3MgdmFsdWUuCisgICAgICAg
ICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJ4IjogYXR0
ci5pYihjb252ZXJ0PWxhbWJkYSB2OiB2ICsgMSksCisgICAgICAgICAgICAieSI6IGF0dHIuaWIo
KSwKKyAgICAgICAgfSkKKyAgICAgICAgYyA9IEMoMSwgMikKKworICAgICAgICBhc3NlcnQgYy54
ID09IDIKKyAgICAgICAgYXNzZXJ0IGMueSA9PSAyCisKKyAgICBAZ2l2ZW4oaW50ZWdlcnMoKSwg
Ym9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9jb252ZXJ0X3Byb3BlcnR5KHNlbGYsIHZhbCwgaW5p
dCk6CisgICAgICAgICIiIgorICAgICAgICBQcm9wZXJ0eSB0ZXN0cyBmb3IgYXR0cmlidXRlcyB3
aXRoIGNvbnZlcnQuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsK
KyAgICAgICAgICAgICJ5IjogYXR0ci5pYigpLAorICAgICAgICAgICAgIngiOiBhdHRyLmliKGlu
aXQ9aW5pdCwgZGVmYXVsdD12YWwsIGNvbnZlcnQ9bGFtYmRhIHY6IHYgKyAxKSwKKyAgICAgICAg
fSkKKyAgICAgICAgYyA9IEMoMikKKworICAgICAgICBhc3NlcnQgYy54ID09IHZhbCArIDEKKyAg
ICAgICAgYXNzZXJ0IGMueSA9PSAyCisKKyAgICBAZ2l2ZW4oaW50ZWdlcnMoKSwgYm9vbGVhbnMo
KSkKKyAgICBkZWYgdGVzdF9jb252ZXJ0X2ZhY3RvcnlfcHJvcGVydHkoc2VsZiwgdmFsLCBpbml0
KToKKyAgICAgICAgIiIiCisgICAgICAgIFByb3BlcnR5IHRlc3RzIGZvciBhdHRyaWJ1dGVzIHdp
dGggY29udmVydCwgYW5kIGEgZmFjdG9yeSBkZWZhdWx0LgorICAgICAgICAiIiIKKyAgICAgICAg
QyA9IG1ha2VfY2xhc3MoIkMiLCB7CisgICAgICAgICAgICAieSI6IGF0dHIuaWIoKSwKKyAgICAg
ICAgICAgICJ4IjogYXR0ci5pYigKKyAgICAgICAgICAgICAgICBpbml0PWluaXQsCisgICAgICAg
ICAgICAgICAgZGVmYXVsdD1GYWN0b3J5KGxhbWJkYTogdmFsKSwKKyAgICAgICAgICAgICAgICBj
b252ZXJ0PWxhbWJkYSB2OiB2ICsgMSksCisgICAgICAgIH0pCisgICAgICAgIGMgPSBDKDIpCisK
KyAgICAgICAgYXNzZXJ0IGMueCA9PSB2YWwgKyAxCisgICAgICAgIGFzc2VydCBjLnkgPT0gMgor
CisgICAgZGVmIHRlc3RfZmFjdG9yeV90YWtlc19zZWxmKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgSWYgdGFrZXNfc2VsZiBvbiBmYWN0b3JpZXMgaXMgVHJ1ZSwgc2VsZiBpcyBwYXNzZWQu
CisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAg
ICJ4IjogYXR0ci5pYigKKyAgICAgICAgICAgICAgICBkZWZhdWx0PUZhY3RvcnkoKGxhbWJkYSBz
ZWxmOiBzZWxmKSwgdGFrZXNfc2VsZj1UcnVlKQorICAgICAgICAgICAgKSwKKyAgICAgICAgfSkK
KworICAgICAgICBpID0gQygpCisKKyAgICAgICAgYXNzZXJ0IGkgaXMgaS54CisKKyAgICBkZWYg
dGVzdF9mYWN0b3J5X2hhc2hhYmxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRmFjdG9y
eSBpcyBoYXNoYWJsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBoYXNoKEZhY3Rvcnko
Tm9uZSwgRmFsc2UpKSA9PSBoYXNoKEZhY3RvcnkoTm9uZSwgRmFsc2UpKQorCisgICAgZGVmIHRl
c3RfY29udmVydF9iZWZvcmVfdmFsaWRhdGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBW
YWxpZGF0aW9uIGhhcHBlbnMgYWZ0ZXIgY29udmVyc2lvbi4KKyAgICAgICAgIiIiCisgICAgICAg
IGRlZiB2YWxpZGF0b3IoaW5zdCwgYXR0ciwgdmFsKToKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRp
bWVFcnJvcigiZm9vIikKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoCisgICAgICAgICAgICAiQyIs
IHsKKyAgICAgICAgICAgICAgICAieCI6IGF0dHIuaWIodmFsaWRhdG9yPXZhbGlkYXRvciwgY29u
dmVydD1sYW1iZGEgdjogMSAvIDApLAorICAgICAgICAgICAgICAgICJ5IjogYXR0ci5pYigpLAor
ICAgICAgICAgICAgfSkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVy
cm9yKToKKyAgICAgICAgICAgIEMoMSwgMikKKworICAgIGRlZiB0ZXN0X2Zyb3plbihzZWxmKToK
KyAgICAgICAgIiIiCisgICAgICAgIENvbnZlcnRlcnMgY2lyY3VtdmVudCBpbW11dGFiaWxpdHku
CisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAg
ICJ4IjogYXR0ci5pYihjb252ZXJ0PWxhbWJkYSB2OiBpbnQodikpLAorICAgICAgICB9LCBmcm96
ZW49VHJ1ZSkKKyAgICAgICAgQygiMSIpCisKKworY2xhc3MgVGVzdFZhbGlkYXRlKG9iamVjdCk6
CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGB2YWxpZGF0ZWAuCisgICAgIiIiCisgICAgZGVmIHRl
c3Rfc3VjY2VzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIHRoZSB2YWxpZGF0b3Ig
c3VjY2VlZHMsIG5vdGhpbmcgZ2V0cyByYWlzZWQuCisgICAgICAgICIiIgorICAgICAgICBDID0g
bWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJ4IjogYXR0ci5pYih2YWxpZGF0b3I9bGFt
YmRhICphOiBOb25lKSwKKyAgICAgICAgICAgICJ5IjogYXR0ci5pYigpCisgICAgICAgIH0pCisg
ICAgICAgIHZhbGlkYXRlKEMoMSwgMikpCisKKyAgICBkZWYgdGVzdF9wcm9wYWdhdGVzKHNlbGYp
OgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGV4Y2VwdGlvbiBvZiB0aGUgdmFsaWRhdG9yIGlz
IGhhbmRlZCB0aHJvdWdoLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHJhaXNlcihfLCBfXywg
dmFsdWUpOgorICAgICAgICAgICAgaWYgdmFsdWUgPT0gNDI6CisgICAgICAgICAgICAgICAgcmFp
c2UgRmxvYXRpbmdQb2ludEVycm9yCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7Ingi
OiBhdHRyLmliKHZhbGlkYXRvcj1yYWlzZXIpfSkKKyAgICAgICAgaSA9IEMoMSkKKyAgICAgICAg
aS54ID0gNDIKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRmxvYXRpbmdQb2ludEVycm9y
KToKKyAgICAgICAgICAgIHZhbGlkYXRlKGkpCisKKyAgICBkZWYgdGVzdF9ydW5fdmFsaWRhdG9y
cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHRpbmcgYF9ydW5fdmFsaWRhdG9yc2Ag
dG8gRmFsc2UgcHJldmVudHMgdmFsaWRhdG9ycyBmcm9tIHJ1bm5pbmcuCisgICAgICAgICIiIgor
ICAgICAgICBfY29uZmlnLl9ydW5fdmFsaWRhdG9ycyA9IEZhbHNlCisgICAgICAgIG9iaiA9IG9i
amVjdCgpCisKKyAgICAgICAgZGVmIHJhaXNlcihfLCBfXywgX19fKToKKyAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbihvYmopCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7IngiOiBh
dHRyLmliKHZhbGlkYXRvcj1yYWlzZXIpfSkKKyAgICAgICAgYyA9IEMoMSkKKyAgICAgICAgdmFs
aWRhdGUoYykKKyAgICAgICAgYXNzZXJ0IDEgPT0gYy54CisgICAgICAgIF9jb25maWcuX3J1bl92
YWxpZGF0b3JzID0gVHJ1ZQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24p
OgorICAgICAgICAgICAgdmFsaWRhdGUoYykKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
RXhjZXB0aW9uKSBhcyBlOgorICAgICAgICAgICAgQygxKQorICAgICAgICBhc3NlcnQgKG9iaiwp
ID09IGUudmFsdWUuYXJncworCisgICAgZGVmIHRlc3RfbXVsdGlwbGVfdmFsaWRhdG9ycyhzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgbGlzdCBpcyBwYXNzZWQgYXMgYSB2YWxpZGF0
b3IsIGFsbCBvZiBpdHMgaXRlbXMgYXJlIHRyZWF0ZWQgYXMgb25lCisgICAgICAgIGFuZCBtdXN0
IHBhc3MuCisgICAgICAgICIiIgorICAgICAgICBkZWYgdjEoXywgX18sIHZhbHVlKToKKyAgICAg
ICAgICAgIGlmIHZhbHVlID09IDIzOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigi
b21nIikKKworICAgICAgICBkZWYgdjIoXywgX18sIHZhbHVlKToKKyAgICAgICAgICAgIGlmIHZh
bHVlID09IDQyOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9tZyIpCisKKyAg
ICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7IngiOiBhdHRyLmliKHZhbGlkYXRvcj1bdjEsIHYy
XSl9KQorCisgICAgICAgIHZhbGlkYXRlKEMoMSkpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIEMoMjMpCisKKyAgICAgICAgYXNzZXJ0
ICJvbWciID09IGUudmFsdWUuYXJnc1swXQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgQyg0MikKKworICAgICAgICBhc3NlcnQgIm9t
ZyIgPT0gZS52YWx1ZS5hcmdzWzBdCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9lbXB0eShzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIEVtcHR5IGxpc3QvdHVwbGUgZm9yIHZhbGlkYXRvciBp
cyB0aGUgc2FtZSBhcyBOb25lLgorICAgICAgICAiIiIKKyAgICAgICAgQzEgPSBtYWtlX2NsYXNz
KCJDIiwgeyJ4IjogYXR0ci5pYih2YWxpZGF0b3I9W10pfSkKKyAgICAgICAgQzIgPSBtYWtlX2Ns
YXNzKCJDIiwgeyJ4IjogYXR0ci5pYih2YWxpZGF0b3I9Tm9uZSl9KQorCisgICAgICAgIGFzc2Vy
dCBpbnNwZWN0LmdldHNvdXJjZShDMS5fX2luaXRfXykgPT0gaW5zcGVjdC5nZXRzb3VyY2UoQzIu
X19pbml0X18pCisKKworIyBIeXBvdGhlc2lzIHNlZW1zIHRvIGNhY2hlIHZhbHVlcywgc28gdGhl
IGxpc3RzIG9mIGF0dHJpYnV0ZXMgY29tZSBvdXQKKyMgdW5zb3J0ZWQuCitzb3J0ZWRfbGlzdHNf
b2ZfYXR0cnMgPSBsaXN0X29mX2F0dHJzLm1hcCgKKyAgICBsYW1iZGEgbDogc29ydGVkKGwsIGtl
eT1hdHRyZ2V0dGVyKCJjb3VudGVyIikpKQorCisKK2NsYXNzIFRlc3RNZXRhZGF0YShvYmplY3Qp
OgorICAgICIiIgorICAgIFRlc3RzIGZvciBtZXRhZGF0YSBoYW5kbGluZy4KKyAgICAiIiIKKyAg
ICBAZ2l2ZW4oc29ydGVkX2xpc3RzX29mX2F0dHJzKQorICAgIGRlZiB0ZXN0X21ldGFkYXRhX3By
ZXNlbnQoc2VsZiwgbGlzdF9vZl9hdHRycyk6CisgICAgICAgICIiIgorICAgICAgICBBc3NlcnQg
ZGljdGlvbmFyaWVzIGFyZSBjb3BpZWQgYW5kIHByZXNlbnQuCisgICAgICAgICIiIgorICAgICAg
ICBDID0gbWFrZV9jbGFzcygiQyIsIGRpY3QoemlwKGdlbl9hdHRyX25hbWVzKCksIGxpc3Rfb2Zf
YXR0cnMpKSkKKworICAgICAgICBmb3IgaHlwX2F0dHIsIGNsYXNzX2F0dHIgaW4gemlwKGxpc3Rf
b2ZfYXR0cnMsIGZpZWxkcyhDKSk6CisgICAgICAgICAgICBpZiBoeXBfYXR0ci5tZXRhZGF0YSBp
cyBOb25lOgorICAgICAgICAgICAgICAgICMgVGhlIGRlZmF1bHQgaXMgYSBzaW5nbGV0b24gZW1w
dHkgZGljdC4KKyAgICAgICAgICAgICAgICBhc3NlcnQgY2xhc3NfYXR0ci5tZXRhZGF0YSBpcyBu
b3QgTm9uZQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oY2xhc3NfYXR0ci5tZXRhZGF0YSkg
PT0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaHlwX2F0dHIu
bWV0YWRhdGEgPT0gY2xhc3NfYXR0ci5tZXRhZGF0YQorCisgICAgICAgICAgICAgICAgIyBPbmNl
IG1vcmUsIGp1c3QgdG8gYXNzZXJ0IGdldHRpbmcgaXRlbXMgYW5kIGl0ZXJhdGlvbi4KKyAgICAg
ICAgICAgICAgICBmb3IgayBpbiBjbGFzc19hdHRyLm1ldGFkYXRhOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgaHlwX2F0dHIubWV0YWRhdGFba10gPT0gY2xhc3NfYXR0ci5tZXRhZGF0YVtr
XQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgKGh5cF9hdHRyLm1ldGFkYXRhLmdldChrKSA9
PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX2F0dHIubWV0YWRhdGEuZ2V0KGsp
KQorCisgICAgQGdpdmVuKHNpbXBsZV9jbGFzc2VzKCksIHRleHQoKSkKKyAgICBkZWYgdGVzdF9t
ZXRhZGF0YV9pbW11dGFiaWxpdHkoc2VsZiwgQywgc3RyaW5nKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFRoZSBtZXRhZGF0YSBkaWN0IHNob3VsZCBiZSBiZXN0LWVmZm9ydCBpbW11dGFibGUuCisg
ICAgICAgICIiIgorICAgICAgICBmb3IgYSBpbiBmaWVsZHMoQyk6CisgICAgICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgICAgICBhLm1ldGFkYXRhW3N0
cmluZ10gPSBzdHJpbmcKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVF
cnJvcik6CisgICAgICAgICAgICAgICAgYS5tZXRhZGF0YS51cGRhdGUoe3N0cmluZzogc3RyaW5n
fSkKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAg
ICAgICAgICAgICAgYS5tZXRhZGF0YS5jbGVhcigpCisgICAgICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgICAgIGEubWV0YWRhdGEuc2V0ZGVm
YXVsdChzdHJpbmcsIHN0cmluZykKKworICAgICAgICAgICAgZm9yIGsgaW4gYS5tZXRhZGF0YToK
KyAgICAgICAgICAgICAgICAjIEZvciBzb21lIHJlYXNvbiwgUHl0aG9uIDMncyBNYXBwaW5nUHJv
eHlUeXBlIHRocm93cyBhbgorICAgICAgICAgICAgICAgICMgSW5kZXhFcnJvciBmb3IgZGVsZXRl
cyBvbiBhIGxhcmdlIGludGVnZXIga2V5LgorICAgICAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcygoVHlwZUVycm9yLCBJbmRleEVycm9yKSk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBh
Lm1ldGFkYXRhW2tdCisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgYS5tZXRhZGF0YS5wb3AoaykKKyAgICAgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICAgICAg
ICAgIGEubWV0YWRhdGEucG9waXRlbSgpCisKKyAgICBAZ2l2ZW4obGlzdHMoc2ltcGxlX2F0dHJz
X3dpdGhvdXRfbWV0YWRhdGEsIG1pbl9zaXplPTIsIG1heF9zaXplPTUpKQorICAgIGRlZiB0ZXN0
X2VtcHR5X21ldGFkYXRhX3NpbmdsZXRvbihzZWxmLCBsaXN0X29mX2F0dHJzKToKKyAgICAgICAg
IiIiCisgICAgICAgIEFsbCBlbXB0eSBtZXRhZGF0YSBhdHRyaWJ1dGVzIHNoYXJlIHRoZSBzYW1l
IGVtcHR5IG1ldGFkYXRhIGRpY3QuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFz
cygiQyIsIGRpY3QoemlwKGdlbl9hdHRyX25hbWVzKCksIGxpc3Rfb2ZfYXR0cnMpKSkKKyAgICAg
ICAgZm9yIGEgaW4gZmllbGRzKEMpWzE6XToKKyAgICAgICAgICAgIGFzc2VydCBhLm1ldGFkYXRh
IGlzIGZpZWxkcyhDKVswXS5tZXRhZGF0YQorCisKK2NsYXNzIFRlc3RDbGFzc0J1aWxkZXIob2Jq
ZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9DbGFzc0J1aWxkZXJgLgorICAgICIiIgor
ICAgIGRlZiB0ZXN0X3JlcHJfc3RyKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVHJ5aW5n
IHRvIGFkZCBhIGBfX3N0cl9fYCB3aXRob3V0IGhhdmluZyBhIGBfX3JlcHJfX2AgcmFpc2VzIGEK
KyAgICAgICAgVmFsdWVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yKSBhcyBlaToKKyAgICAgICAgICAgIG1ha2VfY2xhc3MoIkMiLCB7fSwg
cmVwcj1GYWxzZSwgc3RyPVRydWUpCisKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJf
X3N0cl9fIGNhbiBvbmx5IGJlIGdlbmVyYXRlZCBpZiBhIF9fcmVwcl9fIGV4aXN0cy4iLAorICAg
ICAgICApID09IGVpLnZhbHVlLmFyZ3MKKworICAgIGRlZiB0ZXN0X3JlcHIoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICByZXByIG9mIGJ1aWxkZXIgaXRzZWxmIG1ha2VzIHNlbnNlLgorICAg
ICAgICAiIiIKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIGIgPSBfQ2xhc3NCdWlsZGVyKEMsIE5vbmUsIFRydWUsIFRydWUsIEZhbHNlKQorCisg
ICAgICAgIGFzc2VydCAiPF9DbGFzc0J1aWxkZXIoY2xzPUMpPiIgPT0gcmVwcihiKQorCisgICAg
ZGVmIHRlc3RfcmV0dXJuc19zZWxmKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsIG1l
dGhvZHMgcmV0dXJuIHRoZSBidWlsZGVyIGZvciBjaGFpbmluZy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkKKworICAgICAg
ICBiID0gX0NsYXNzQnVpbGRlcihDLCBOb25lLCBUcnVlLCBUcnVlLCBGYWxzZSkKKworICAgICAg
ICBjbHMgPSBiLmFkZF9jbXAoKS5hZGRfaGFzaCgpLmFkZF9pbml0KCkuYWRkX3JlcHIoIm5zIiku
YWRkX3N0cigpIFwKKyAgICAgICAgICAgIC5idWlsZF9jbGFzcygpCisKKyAgICAgICAgYXNzZXJ0
ICJucy5DKHg9MSkiID09IHJlcHIoY2xzKDEpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0
cy90ZXN0X3Nsb3RzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X3Nsb3RzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUxNmE3OTdiNzU3MjBiZDJmYTgwYTE4YjgzOTY2MWYwYTU5MzI2MjQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rfc2xvdHMucHkKQEAgLTAsMCArMSw0MjMgQEAK
KyIiIgorVW5pdCB0ZXN0cyBmb3Igc2xvdC1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCisiIiIKKwor
aW1wb3J0IHB5dGVzdAorCitpbXBvcnQgYXR0cgorCitmcm9tIGF0dHIuX2NvbXBhdCBpbXBvcnQg
UFkyLCBQWVBZLCBqdXN0X3dhcm4sIG1ha2Vfc2V0X2Nsb3N1cmVfY2VsbAorCisKKyMgUHltcGxl
ciBkb2Vzbid0IHdvcmsgb24gUHlQeS4KK3RyeToKKyAgICBmcm9tIHB5bXBsZXIuYXNpemVvZiBp
bXBvcnQgYXNpemVvZgorICAgIGhhc19weW1wbGVyID0gVHJ1ZQorZXhjZXB0IEJhc2VFeGNlcHRp
b246ICAjIFdvbid0IGJlIGFuIGltcG9ydCBlcnJvci4KKyAgICBoYXNfcHltcGxlciA9IEZhbHNl
CisKKworQGF0dHIucworY2xhc3MgQzEob2JqZWN0KToKKyAgICB4ID0gYXR0ci5pYih2YWxpZGF0
b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgeSA9IGF0dHIuaWIoKQor
CisgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYueAorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIGNsYXNzbWV0aG9kKGNscyk6CisgICAgICAgIHJldHVybiAiY2xz
bWV0aG9kIgorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzdGF0aWNtZXRob2QoKToKKyAg
ICAgICAgcmV0dXJuICJzdGF0aWNtZXRob2QiCisKKyAgICBpZiBub3QgUFkyOgorICAgICAgICBk
ZWYgbXlfY2xhc3Moc2VsZik6CisgICAgICAgICAgICByZXR1cm4gX19jbGFzc19fICAjIE5PUUE6
IEY4MjEKKworICAgICAgICBkZWYgbXlfc3VwZXIoc2VsZik6CisgICAgICAgICAgICAiIiJKdXN0
IHRvIHRlc3Qgb3V0IHRoZSBuby1hcmcgc3VwZXIuIiIiCisgICAgICAgICAgICByZXR1cm4gc3Vw
ZXIoKS5fX3JlcHJfXygpCisKKworQGF0dHIucyhzbG90cz1UcnVlLCBoYXNoPVRydWUpCitjbGFz
cyBDMVNsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIodmFsaWRhdG9yPWF0dHIudmFsaWRh
dG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgIHkgPSBhdHRyLmliKCkKKworICAgIGRlZiBtZXRo
b2Qoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworICAgIEBjbGFzc21ldGhvZAorICAg
IGRlZiBjbGFzc21ldGhvZChjbHMpOgorICAgICAgICByZXR1cm4gImNsc21ldGhvZCIKKworICAg
IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc3RhdGljbWV0aG9kKCk6CisgICAgICAgIHJldHVybiAi
c3RhdGljbWV0aG9kIgorCisgICAgaWYgbm90IFBZMjoKKyAgICAgICAgZGVmIG15X2NsYXNzKHNl
bGYpOgorICAgICAgICAgICAgcmV0dXJuIF9fY2xhc3NfXyAgIyBOT1FBOiBGODIxCisKKyAgICAg
ICAgZGVmIG15X3N1cGVyKHNlbGYpOgorICAgICAgICAgICAgIiIiSnVzdCB0byB0ZXN0IG91dCB0
aGUgbm8tYXJnIHN1cGVyLiIiIgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19yZXByX18o
KQorCisKK2RlZiB0ZXN0X3Nsb3RzX2JlaW5nX3VzZWQoKToKKyAgICAiIiIKKyAgICBUaGUgY2xh
c3MgaXMgcmVhbGx5IHVzaW5nIF9fc2xvdHNfXy4KKyAgICAiIiIKKyAgICBub25fc2xvdF9pbnN0
YW5jZSA9IEMxKHg9MSwgeT0idGVzdCIpCisgICAgc2xvdF9pbnN0YW5jZSA9IEMxU2xvdHMoeD0x
LCB5PSJ0ZXN0IikKKworICAgIGFzc2VydCAiX19kaWN0X18iIG5vdCBpbiBkaXIoc2xvdF9pbnN0
YW5jZSkKKyAgICBhc3NlcnQgIl9fc2xvdHNfXyIgaW4gZGlyKHNsb3RfaW5zdGFuY2UpCisKKyAg
ICBhc3NlcnQgIl9fZGljdF9fIiBpbiBkaXIobm9uX3Nsb3RfaW5zdGFuY2UpCisgICAgYXNzZXJ0
ICJfX3Nsb3RzX18iIG5vdCBpbiBkaXIobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBhc3NlcnQg
c2V0KFsieCIsICJ5Il0pID09IHNldChzbG90X2luc3RhbmNlLl9fc2xvdHNfXykKKworICAgIGlm
IGhhc19weW1wbGVyOgorICAgICAgICBhc3NlcnQgYXNpemVvZihzbG90X2luc3RhbmNlKSA8IGFz
aXplb2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBub25fc2xvdF9pbnN0YW5jZS50ID0gInRl
c3QiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgc2xv
dF9pbnN0YW5jZS50ID0gInRlc3QiCisKKyAgICBhc3NlcnQgMSA9PSBub25fc2xvdF9pbnN0YW5j
ZS5tZXRob2QoKQorICAgIGFzc2VydCAxID09IHNsb3RfaW5zdGFuY2UubWV0aG9kKCkKKworICAg
IGFzc2VydCBhdHRyLmZpZWxkcyhDMVNsb3RzKSA9PSBhdHRyLmZpZWxkcyhDMSkKKyAgICBhc3Nl
cnQgYXR0ci5hc2RpY3Qoc2xvdF9pbnN0YW5jZSkgPT0gYXR0ci5hc2RpY3Qobm9uX3Nsb3RfaW5z
dGFuY2UpCisKKworZGVmIHRlc3RfYmFzaWNfYXR0cl9mdW5jcygpOgorICAgICIiIgorICAgIENv
bXBhcmlzb24sIGBfX2VxX19gLCBgX19oYXNoX19gLCBgX19yZXByX19gLCBgYXR0cnMuYXNkaWN0
YCB3b3JrLgorICAgICIiIgorICAgIGEgPSBDMVNsb3RzKHg9MSwgeT0yKQorICAgIGIgPSBDMVNs
b3RzKHg9MSwgeT0zKQorICAgIGFfID0gQzFTbG90cyh4PTEsIHk9MikKKworICAgICMgQ29tcGFy
aXNvbi4KKyAgICBhc3NlcnQgYiA+IGEKKworICAgIGFzc2VydCBhXyA9PSBhCisKKyAgICAjIEhh
c2hpbmcuCisgICAgaGFzaChiKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0IHJhaXNlLgor
CisgICAgIyBSZXByLgorICAgIGFzc2VydCAiQzFTbG90cyh4PTEsIHk9MikiID09IHJlcHIoYSkK
KworICAgIGFzc2VydCB7IngiOiAxLCAieSI6IDJ9ID09IGF0dHIuYXNkaWN0KGEpCisKKworZGVm
IHRlc3RfaW5oZXJpdGFuY2VfZnJvbV9ub25zbG90cygpOgorICAgICIiIgorICAgIEluaGVyaXRh
bmNlIGZyb20gYSBub24tc2xvdCBjbGFzcyB3b3Jrcy4KKworICAgIE5vdGUgdGhhdCBhIHNsb3Rz
IGNsYXNzIGluaGVyaXRpbmcgZnJvbSBhbiBvcmRpbmFyeSBjbGFzcyBsb3NlcyBtb3N0IG9mIHRo
ZQorICAgIGJlbmVmaXRzIG9mIHNsb3RzIGNsYXNzZXMsIGJ1dCBpdCBzaG91bGQgc3RpbGwgd29y
ay4KKyAgICAiIiIKKyAgICBAYXR0ci5zKHNsb3RzPVRydWUsIGhhc2g9VHJ1ZSkKKyAgICBjbGFz
cyBDMlNsb3RzKEMxKToKKyAgICAgICAgeiA9IGF0dHIuaWIoKQorCisgICAgYzIgPSBDMlNsb3Rz
KHg9MSwgeT0yLCB6PSJ0ZXN0IikKKworICAgIGFzc2VydCAxID09IGMyLngKKyAgICBhc3NlcnQg
MiA9PSBjMi55CisgICAgYXNzZXJ0ICJ0ZXN0IiA9PSBjMi56CisKKyAgICBjMi50ID0gInRlc3Qi
ICAjIFRoaXMgd2lsbCB3b3JrLCB1c2luZyB0aGUgYmFzZSBjbGFzcy4KKworICAgIGFzc2VydCAi
dGVzdCIgPT0gYzIudAorCisgICAgYXNzZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3NlcnQg
ImNsc21ldGhvZCIgPT0gYzIuY2xhc3NtZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0aG9k
IiA9PSBjMi5zdGF0aWNtZXRob2QoKQorCisgICAgYXNzZXJ0IHNldChbInoiXSkgPT0gc2V0KEMy
U2xvdHMuX19zbG90c19fKQorCisgICAgYzMgPSBDMlNsb3RzKHg9MSwgeT0zLCB6PSJ0ZXN0IikK
KworICAgIGFzc2VydCBjMyA+IGMyCisKKyAgICBjMl8gPSBDMlNsb3RzKHg9MSwgeT0yLCB6PSJ0
ZXN0IikKKworICAgIGFzc2VydCBjMiA9PSBjMl8KKworICAgIGFzc2VydCAiQzJTbG90cyh4PTEs
IHk9Miwgej0ndGVzdCcpIiA9PSByZXByKGMyKQorCisgICAgaGFzaChjMikgICMgSnVzdCB0byBh
c3NlcnQgaXQgZG9lc24ndCByYWlzZS4KKworICAgIGFzc2VydCB7IngiOiAxLCAieSI6IDIsICJ6
IjogInRlc3QifSA9PSBhdHRyLmFzZGljdChjMikKKworCitkZWYgdGVzdF9ub25zbG90c190aGVz
ZSgpOgorICAgICIiIgorICAgIEVuaGFuY2luZyBhIG5vbi1zbG90cyBjbGFzcyB1c2luZyAndGhl
c2UnIHdvcmtzLgorCisgICAgVGhpcyB3aWxsIGFjdHVhbGx5ICpyZXBsYWNlKiB0aGUgY2xhc3Mg
d2l0aCBhbm90aGVyIG9uZSwgdXNpbmcgc2xvdHMuCisgICAgIiIiCisgICAgY2xhc3MgU2ltcGxl
T3JkaW5hcnlDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgeCwgeSwg
eik6CisgICAgICAgICAgICBzZWxmLnggPSB4CisgICAgICAgICAgICBzZWxmLnkgPSB5CisgICAg
ICAgICAgICBzZWxmLnogPSB6CisKKyAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLngKKworICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGNs
YXNzbWV0aG9kKGNscyk6CisgICAgICAgICAgICByZXR1cm4gImNsc21ldGhvZCIKKworICAgICAg
ICBAc3RhdGljbWV0aG9kCisgICAgICAgIGRlZiBzdGF0aWNtZXRob2QoKToKKyAgICAgICAgICAg
IHJldHVybiAic3RhdGljbWV0aG9kIgorCisgICAgQzJTbG90cyA9IGF0dHIucyh0aGVzZT17Ingi
OiBhdHRyLmliKCksICJ5IjogYXR0ci5pYigpLCAieiI6IGF0dHIuaWIoKX0sCisgICAgICAgICAg
ICAgICAgICAgICBpbml0PUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRydWUpKFNpbXBsZU9yZGlu
YXJ5Q2xhc3MpCisKKyAgICBjMiA9IEMyU2xvdHMoeD0xLCB5PTIsIHo9InRlc3QiKQorICAgIGFz
c2VydCAxID09IGMyLngKKyAgICBhc3NlcnQgMiA9PSBjMi55CisgICAgYXNzZXJ0ICJ0ZXN0IiA9
PSBjMi56CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAg
YzIudCA9ICJ0ZXN0IiAgIyBXZSBoYXZlIHNsb3RzIG5vdy4KKworICAgIGFzc2VydCAxID09IGMy
Lm1ldGhvZCgpCisgICAgYXNzZXJ0ICJjbHNtZXRob2QiID09IGMyLmNsYXNzbWV0aG9kKCkKKyAg
ICBhc3NlcnQgInN0YXRpY21ldGhvZCIgPT0gYzIuc3RhdGljbWV0aG9kKCkKKworICAgIGFzc2Vy
dCBzZXQoWyJ4IiwgInkiLCAieiJdKSA9PSBzZXQoQzJTbG90cy5fX3Nsb3RzX18pCisKKyAgICBj
MyA9IEMyU2xvdHMoeD0xLCB5PTMsIHo9InRlc3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisgICAg
YzJfID0gQzJTbG90cyh4PTEsIHk9Miwgej0idGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMyXwor
CisgICAgYXNzZXJ0ICJTaW1wbGVPcmRpbmFyeUNsYXNzKHg9MSwgeT0yLCB6PSd0ZXN0JykiID09
IHJlcHIoYzIpCisKKyAgICBoYXNoKGMyKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0IHJh
aXNlLgorCisgICAgYXNzZXJ0IHsieCI6IDEsICJ5IjogMiwgInoiOiAidGVzdCJ9ID09IGF0dHIu
YXNkaWN0KGMyKQorCisKK2RlZiB0ZXN0X2luaGVyaXRhbmNlX2Zyb21fc2xvdHMoKToKKyAgICAi
IiIKKyAgICBJbmhlcml0aW5nIGZyb20gYW4gYXR0ciBzbG90IGNsYXNzIHdvcmtzLgorICAgICIi
IgorICAgIEBhdHRyLnMoc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorICAgIGNsYXNzIEMyU2xvdHMo
QzFTbG90cyk6CisgICAgICAgIHogPSBhdHRyLmliKCkKKworICAgIEBhdHRyLnMoc2xvdHM9VHJ1
ZSwgaGFzaD1UcnVlKQorICAgIGNsYXNzIEMyKEMxKToKKyAgICAgICAgeiA9IGF0dHIuaWIoKQor
CisgICAgYzIgPSBDMlNsb3RzKHg9MSwgeT0yLCB6PSJ0ZXN0IikKKyAgICBhc3NlcnQgMSA9PSBj
Mi54CisgICAgYXNzZXJ0IDIgPT0gYzIueQorICAgIGFzc2VydCAidGVzdCIgPT0gYzIuegorCisg
ICAgYXNzZXJ0IHNldChbInoiXSkgPT0gc2V0KEMyU2xvdHMuX19zbG90c19fKQorCisgICAgYXNz
ZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3NlcnQgImNsc21ldGhvZCIgPT0gYzIuY2xhc3Nt
ZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0aG9kIiA9PSBjMi5zdGF0aWNtZXRob2QoKQor
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgYzIudCA9
ICJ0ZXN0IgorCisgICAgbm9uX3Nsb3RfaW5zdGFuY2UgPSBDMih4PTEsIHk9Miwgej0idGVzdCIp
CisgICAgaWYgaGFzX3B5bXBsZXI6CisgICAgICAgIGFzc2VydCBhc2l6ZW9mKGMyKSA8IGFzaXpl
b2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBjMyA9IEMyU2xvdHMoeD0xLCB5PTMsIHo9InRl
c3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisgICAgYzJfID0gQzJTbG90cyh4PTEsIHk9Miwgej0i
dGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMyXworCisgICAgYXNzZXJ0ICJDMlNsb3RzKHg9MSwg
eT0yLCB6PSd0ZXN0JykiID09IHJlcHIoYzIpCisKKyAgICBoYXNoKGMyKSAgIyBKdXN0IHRvIGFz
c2VydCBpdCBkb2Vzbid0IHJhaXNlLgorCisgICAgYXNzZXJ0IHsieCI6IDEsICJ5IjogMiwgInoi
OiAidGVzdCJ9ID09IGF0dHIuYXNkaWN0KGMyKQorCisKK2RlZiB0ZXN0X2JhcmVfaW5oZXJpdGFu
Y2VfZnJvbV9zbG90cygpOgorICAgICIiIgorICAgIEluaGVyaXRpbmcgZnJvbSBhIGJhcmUgYXR0
ciBzbG90IGNsYXNzIHdvcmtzLgorICAgICIiIgorICAgIEBhdHRyLnMoaW5pdD1GYWxzZSwgY21w
PUZhbHNlLCBoYXNoPUZhbHNlLCByZXByPUZhbHNlLCBzbG90cz1UcnVlKQorICAgIGNsYXNzIEMx
QmFyZVNsb3RzKG9iamVjdCk6CisgICAgICAgIHggPSBhdHRyLmliKHZhbGlkYXRvcj1hdHRyLnZh
bGlkYXRvcnMuaW5zdGFuY2Vfb2YoaW50KSkKKyAgICAgICAgeSA9IGF0dHIuaWIoKQorCisgICAg
ICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi54CisKKyAgICAg
ICAgQGNsYXNzbWV0aG9kCisgICAgICAgIGRlZiBjbGFzc21ldGhvZChjbHMpOgorICAgICAgICAg
ICAgcmV0dXJuICJjbHNtZXRob2QiCisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBk
ZWYgc3RhdGljbWV0aG9kKCk6CisgICAgICAgICAgICByZXR1cm4gInN0YXRpY21ldGhvZCIKKwor
ICAgIEBhdHRyLnMoaW5pdD1GYWxzZSwgY21wPUZhbHNlLCBoYXNoPUZhbHNlLCByZXByPUZhbHNl
KQorICAgIGNsYXNzIEMxQmFyZShvYmplY3QpOgorICAgICAgICB4ID0gYXR0ci5pYih2YWxpZGF0
b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgICAgIHkgPSBhdHRyLmli
KCkKKworICAgICAgICBkZWYgbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
eAorCisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgY2xhc3NtZXRob2QoY2xzKToK
KyAgICAgICAgICAgIHJldHVybiAiY2xzbWV0aG9kIgorCisgICAgICAgIEBzdGF0aWNtZXRob2QK
KyAgICAgICAgZGVmIHN0YXRpY21ldGhvZCgpOgorICAgICAgICAgICAgcmV0dXJuICJzdGF0aWNt
ZXRob2QiCisKKyAgICBAYXR0ci5zKHNsb3RzPVRydWUsIGhhc2g9VHJ1ZSkKKyAgICBjbGFzcyBD
MlNsb3RzKEMxQmFyZVNsb3RzKToKKyAgICAgICAgeiA9IGF0dHIuaWIoKQorCisgICAgQGF0dHIu
cyhzbG90cz1UcnVlLCBoYXNoPVRydWUpCisgICAgY2xhc3MgQzIoQzFCYXJlKToKKyAgICAgICAg
eiA9IGF0dHIuaWIoKQorCisgICAgYzIgPSBDMlNsb3RzKHg9MSwgeT0yLCB6PSJ0ZXN0IikKKyAg
ICBhc3NlcnQgMSA9PSBjMi54CisgICAgYXNzZXJ0IDIgPT0gYzIueQorICAgIGFzc2VydCAidGVz
dCIgPT0gYzIuegorCisgICAgYXNzZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3NlcnQgImNs
c21ldGhvZCIgPT0gYzIuY2xhc3NtZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0aG9kIiA9
PSBjMi5zdGF0aWNtZXRob2QoKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVy
cm9yKToKKyAgICAgICAgYzIudCA9ICJ0ZXN0IgorCisgICAgbm9uX3Nsb3RfaW5zdGFuY2UgPSBD
Mih4PTEsIHk9Miwgej0idGVzdCIpCisgICAgaWYgaGFzX3B5bXBsZXI6CisgICAgICAgIGFzc2Vy
dCBhc2l6ZW9mKGMyKSA8IGFzaXplb2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBjMyA9IEMy
U2xvdHMoeD0xLCB5PTMsIHo9InRlc3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisgICAgYzJfID0g
QzJTbG90cyh4PTEsIHk9Miwgej0idGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMyXworCisgICAg
YXNzZXJ0ICJDMlNsb3RzKHg9MSwgeT0yLCB6PSd0ZXN0JykiID09IHJlcHIoYzIpCisKKyAgICBo
YXNoKGMyKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0IHJhaXNlLgorCisgICAgYXNzZXJ0
IHsieCI6IDEsICJ5IjogMiwgInoiOiAidGVzdCJ9ID09IGF0dHIuYXNkaWN0KGMyKQorCisKK0Bw
eXRlc3QubWFyay5za2lwaWYoUFkyLCByZWFzb249ImNsb3N1cmUgY2VsbCByZXdyaXRpbmcgaXMg
UFkzLW9ubHkuIikKK2NsYXNzIFRlc3RDbG9zdXJlQ2VsbFJld3JpdGluZyhvYmplY3QpOgorICAg
IGRlZiB0ZXN0X2Nsb3N1cmVfY2VsbF9yZXdyaXRpbmcoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBTbG90IGNsYXNzZXMgc3VwcG9ydCBwcm9wZXIgY2xvc3VyZSBjZWxsIHJld3JpdGluZy4K
KworICAgICAgICBUaGlzIGFmZmVjdHMgZmVhdHVyZXMgbGlrZSBgX19jbGFzc19fYCBhbmQgdGhl
IG5vLWFyZyBzdXBlcigpLgorICAgICAgICAiIiIKKyAgICAgICAgbm9uX3Nsb3RfaW5zdGFuY2Ug
PSBDMSh4PTEsIHk9InRlc3QiKQorICAgICAgICBzbG90X2luc3RhbmNlID0gQzFTbG90cyh4PTEs
IHk9InRlc3QiKQorCisgICAgICAgIGFzc2VydCBub25fc2xvdF9pbnN0YW5jZS5teV9jbGFzcygp
IGlzIEMxCisgICAgICAgIGFzc2VydCBzbG90X2luc3RhbmNlLm15X2NsYXNzKCkgaXMgQzFTbG90
cworCisgICAgICAgICMgSnVzdCBhc3NlcnQgdGhleSByZXR1cm4gc29tZXRoaW5nLCBhbmQgbm90
IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgYXNzZXJ0IG5vbl9zbG90X2luc3RhbmNlLm15X3N1cGVy
KCkKKyAgICAgICAgYXNzZXJ0IHNsb3RfaW5zdGFuY2UubXlfc3VwZXIoKQorCisgICAgZGVmIHRl
c3RfaW5oZXJpdGFuY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTbG90IGNsYXNzZXMg
c3VwcG9ydCBwcm9wZXIgY2xvc3VyZSBjZWxsIHJld3JpdGluZyB3aGVuIGluaGVyaXRpbmcuCisK
KyAgICAgICAgVGhpcyBhZmZlY3RzIGZlYXR1cmVzIGxpa2UgYF9fY2xhc3NfX2AgYW5kIHRoZSBu
by1hcmcgc3VwZXIoKS4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xh
c3MgQzIoQzEpOgorICAgICAgICAgICAgZGVmIG15X3N1YmNsYXNzKHNlbGYpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBfX2NsYXNzX18gICMgTk9RQTogRjgyMQorCisgICAgICAgIEBhdHRyLnMK
KyAgICAgICAgY2xhc3MgQzJTbG90cyhDMVNsb3RzKToKKyAgICAgICAgICAgIGRlZiBteV9zdWJj
bGFzcyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gX19jbGFzc19fICAjIE5PUUE6IEY4
MjEKKworICAgICAgICBub25fc2xvdF9pbnN0YW5jZSA9IEMyKHg9MSwgeT0idGVzdCIpCisgICAg
ICAgIHNsb3RfaW5zdGFuY2UgPSBDMlNsb3RzKHg9MSwgeT0idGVzdCIpCisKKyAgICAgICAgYXNz
ZXJ0IG5vbl9zbG90X2luc3RhbmNlLm15X2NsYXNzKCkgaXMgQzEKKyAgICAgICAgYXNzZXJ0IHNs
b3RfaW5zdGFuY2UubXlfY2xhc3MoKSBpcyBDMVNsb3RzCisKKyAgICAgICAgIyBKdXN0IGFzc2Vy
dCB0aGV5IHJldHVybiBzb21ldGhpbmcsIGFuZCBub3QgYW4gZXhjZXB0aW9uLgorICAgICAgICBh
c3NlcnQgbm9uX3Nsb3RfaW5zdGFuY2UubXlfc3VwZXIoKQorICAgICAgICBhc3NlcnQgc2xvdF9p
bnN0YW5jZS5teV9zdXBlcigpCisKKyAgICAgICAgYXNzZXJ0IG5vbl9zbG90X2luc3RhbmNlLm15
X3N1YmNsYXNzKCkgaXMgQzIKKyAgICAgICAgYXNzZXJ0IHNsb3RfaW5zdGFuY2UubXlfc3ViY2xh
c3MoKSBpcyBDMlNsb3RzCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNsb3RzIiwg
W1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9jbHNfc3RhdGljKHNlbGYsIHNsb3RzKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFNsb3QgY2xhc3NlcyBzdXBwb3J0IHByb3BlciBjbG9zdXJlIGNl
bGwgcmV3cml0aW5nIGZvciBjbGFzcy0gYW5kCisgICAgICAgIHN0YXRpYyBtZXRob2RzLgorICAg
ICAgICAiIiIKKyAgICAgICAgIyBQeXRob24gY2FuIHJldXNlIGNsb3N1cmUgY2VsbHMsIHNvIHdl
IGNyZWF0ZSBuZXcgY2xhc3NlcyBqdXN0IGZvcgorICAgICAgICAjIHRoaXMgdGVzdC4KKworICAg
ICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAg
QGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgY2xzbWV0aG9kKGNscyk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIF9fY2xhc3NfXyAgIyBub3FhOiBGODIxCisKKyAgICAgICAgYXNzZXJ0IEMu
Y2xzbWV0aG9kKCkgaXMgQworCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMpCisgICAgICAg
IGNsYXNzIEQ6CisgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICBkZWYgc3Rh
dG1ldGhvZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBfX2NsYXNzX18gICMgbm9xYTogRjgy
MQorCisgICAgICAgIGFzc2VydCBELnN0YXRtZXRob2QoKSBpcyBECisKKyAgICBAcHl0ZXN0Lm1h
cmsuc2tpcGlmKAorICAgICAgICBQWVBZLAorICAgICAgICByZWFzb249ImN0eXBlcyBhcmUgdXNl
ZCBvbmx5IG9uIENQeXRob24iCisgICAgKQorICAgIGRlZiB0ZXN0X21pc3NpbmdfY3R5cGVzKHNl
bGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIiIiCisgICAgICAgIEtlZXBzIHdvcmtpbmcgaWYg
Y3R5cGVzIGlzIG1pc3NpbmcuCisKKyAgICAgICAgQSB3YXJuaW5nIGlzIGVtaXR0ZWQgdGhhdCBw
b2ludHMgdG8gdGhlIGFjdHVhbCBjb2RlLgorICAgICAgICAiIiIKKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihhdHRyLl9jb21wYXQsICJpbXBvcnRfY3R5cGVzIiwgbGFtYmRhOiBOb25lKQor
ICAgICAgICBmdW5jID0gbWFrZV9zZXRfY2xvc3VyZV9jZWxsKCkKKworICAgICAgICB3aXRoIHB5
dGVzdC53YXJucyhSdW50aW1lV2FybmluZykgYXMgd3I6CisgICAgICAgICAgICBmdW5jKCkKKwor
ICAgICAgICB3ID0gd3IucG9wKCkKKyAgICAgICAgYXNzZXJ0IF9fZmlsZV9fID09IHcuZmlsZW5h
bWUKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJNaXNzaW5nIGN0eXBlcy4gIFNvbWUg
ZmVhdHVyZXMgbGlrZSBiYXJlIHN1cGVyKCkgb3IgYWNjZXNzaW5nICIKKyAgICAgICAgICAgICJf
X2NsYXNzX18gd2lsbCBub3Qgd29yayB3aXRoIHNsb3RzIGNsYXNzZXMuIiwKKyAgICAgICAgKSA9
PSB3Lm1lc3NhZ2UuYXJncworCisgICAgICAgIGFzc2VydCBqdXN0X3dhcm4gaXMgZnVuYwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X3ZhbGlkYXRvcnMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3Rlc3RzL3Rlc3RfdmFsaWRhdG9ycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzIyZGEyN2ZkYjM1OWI0YWZh
MzgwMzI5Zjk3YmQyMjYzM2QzY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0
cy90ZXN0X3ZhbGlkYXRvcnMucHkKQEAgLTAsMCArMSwyNjYgQEAKKyIiIgorVGVzdHMgZm9yIGBh
dHRyLnZhbGlkYXRvcnNgLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHB5dGVzdAoraW1wb3J0
IHpvcGUuaW50ZXJmYWNlCisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgdmFsaWRh
dG9ycyBhcyB2YWxpZGF0b3JfbW9kdWxlCitmcm9tIGF0dHIgaW1wb3J0IGhhcworZnJvbSBhdHRy
Ll9jb21wYXQgaW1wb3J0IFRZUEUKK2Zyb20gYXR0ci52YWxpZGF0b3JzIGltcG9ydCBhbmRfLCBp
bl8sIGluc3RhbmNlX29mLCBvcHRpb25hbCwgcHJvdmlkZXMKKworZnJvbSAudXRpbHMgaW1wb3J0
IHNpbXBsZV9hdHRyCisKKworY2xhc3MgVGVzdEluc3RhbmNlT2Yob2JqZWN0KToKKyAgICAiIiIK
KyAgICBUZXN0cyBmb3IgYGluc3RhbmNlX29mYC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9zdWNj
ZXNzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTm90aGluZyBoYXBwZW5zIGlmIHR5cGVz
IG1hdGNoLgorICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAgICAg
ICAgdihOb25lLCBzaW1wbGVfYXR0cigidGVzdCIpLCA0MikKKworICAgIGRlZiB0ZXN0X3N1YmNs
YXNzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3ViY2xhc3NlcyBhcmUgYWNjZXB0ZWQg
dG9vLgorICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAgICAgICAg
IyB5ZXAsIGJvb2xzIGFyZSBhIHN1YmNsYXNzIG9mIGludCA6KAorICAgICAgICB2KE5vbmUsIHNp
bXBsZV9hdHRyKCJ0ZXN0IiksIFRydWUpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIG9uIHdyb25nIHR5cGVzLgorICAg
ICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAgICAgICAgYSA9IHNpbXBs
ZV9hdHRyKCJ0ZXN0IikKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMg
ZToKKyAgICAgICAgICAgIHYoTm9uZSwgYSwgIjQyIikKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAg
ICAgICAgICIndGVzdCcgbXVzdCBiZSA8e3R5cGV9ICdpbnQnPiAoZ290ICc0MicgdGhhdCBpcyBh
IDx7dHlwZX0gIgorICAgICAgICAgICAgIidzdHInPikuIi5mb3JtYXQodHlwZT1UWVBFKSwKKyAg
ICAgICAgICAgIGEsIGludCwgIjQyIiwKKworICAgICAgICApID09IGUudmFsdWUuYXJncworCisg
ICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybmVkIHZh
bGlkYXRvciBoYXMgYSB1c2VmdWwgYF9fcmVwcl9fYC4KKyAgICAgICAgIiIiCisgICAgICAgIHYg
PSBpbnN0YW5jZV9vZihpbnQpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAiPGluc3Rh
bmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8e3R5cGV9ICdpbnQnPj4iCisgICAgICAgICAgICAu
Zm9ybWF0KHR5cGU9VFlQRSkKKyAgICAgICAgKSA9PSByZXByKHYpCisKKworZGVmIGFsd2F5c19w
YXNzKF8sIF9fLCBfX18pOgorICAgICIiIgorICAgIFRveSB2YWxpZGF0b3IgdGhhdCBhbHdheXMg
cGFzc3Nlcy4KKyAgICAiIiIKKworCitkZWYgYWx3YXlzX2ZhaWwoXywgX18sIF9fXyk6CisgICAg
IiIiCisgICAgVG95IHZhbGlkYXRvciB0aGF0IGFsd2F5cyBmYWlscy4KKyAgICAiIiIKKyAgICAw
LzAKKworCitjbGFzcyBUZXN0QW5kKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIFN1Y2NlZWRzIGlmIGFsbCB3cmFwcGVkIHZhbGlkYXRv
cnMgc3VjY2VlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHYgPSBhbmRfKGluc3RhbmNlX29mKGlu
dCksIGFsd2F5c19wYXNzKQorCisgICAgICAgIHYoTm9uZSwgc2ltcGxlX2F0dHIoInRlc3QiKSwg
NDIpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRmFp
bHMgaWYgYW55IHdyYXBwZWQgdmFsaWRhdG9yIGZhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAg
diA9IGFuZF8oaW5zdGFuY2Vfb2YoaW50KSwgYWx3YXlzX2ZhaWwpCisKKyAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgIHYoTm9uZSwgc2lt
cGxlX2F0dHIoInRlc3QiKSwgNDIpCisKKyAgICBkZWYgdGVzdF9zdWdhcihzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIGBhbmRfKHYxLCB2MiwgdjMpYCBhbmQgYFt2MSwgdjIsIHYzXWAgYXJl
IGVxdWl2YWxlbnQuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNz
IEMob2JqZWN0KToKKyAgICAgICAgICAgIGExID0gYXR0ci5pYigiYTEiLCB2YWxpZGF0b3I9YW5k
XygKKyAgICAgICAgICAgICAgICBpbnN0YW5jZV9vZihpbnQpLAorICAgICAgICAgICAgKSkKKyAg
ICAgICAgICAgIGEyID0gYXR0ci5pYigiYTIiLCB2YWxpZGF0b3I9WworICAgICAgICAgICAgICAg
IGluc3RhbmNlX29mKGludCksCisgICAgICAgICAgICBdKQorCisgICAgICAgIGFzc2VydCBDLl9f
YXR0cnNfYXR0cnNfX1swXS52YWxpZGF0b3IgPT0gQy5fX2F0dHJzX2F0dHJzX19bMV0udmFsaWRh
dG9yCisKKworY2xhc3MgSUZvbyh6b3BlLmludGVyZmFjZS5JbnRlcmZhY2UpOgorICAgICIiIgor
ICAgIEFuIGludGVyZmFjZS4KKyAgICAiIiIKKyAgICBkZWYgZigpOgorICAgICAgICAiIiIKKyAg
ICAgICAgQSBmdW5jdGlvbiBjYWxsZWQgZi4KKyAgICAgICAgIiIiCisKKworY2xhc3MgVGVzdFBy
b3ZpZGVzKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBwcm92aWRlc2AuCisgICAg
IiIiCisgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE5v
dGhpbmcgaGFwcGVucyBpZiB2YWx1ZSBwcm92aWRlcyByZXF1ZXN0ZWQgaW50ZXJmYWNlLgorICAg
ICAgICAiIiIKKyAgICAgICAgQHpvcGUuaW50ZXJmYWNlLmltcGxlbWVudGVyKElGb28pCisgICAg
ICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBmKHNlbGYpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKworICAgICAgICB2ID0gcHJvdmlkZXMoSUZvbykKKyAgICAgICAgdihOb25l
LCBzaW1wbGVfYXR0cigieCIpLCBDKCkpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIGlmIGludGVyZmFjZXMgaXNuJ3Qg
cHJvdmlkZWQgYnkgdmFsdWUuCisgICAgICAgICIiIgorICAgICAgICB2YWx1ZSA9IG9iamVjdCgp
CisgICAgICAgIGEgPSBzaW1wbGVfYXR0cigieCIpCisKKyAgICAgICAgdiA9IHByb3ZpZGVzKElG
b28pCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAgICAg
ICAgICB2KE5vbmUsIGEsIHZhbHVlKQorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIid4
JyBtdXN0IHByb3ZpZGUge2ludGVyZmFjZSFyfSB3aGljaCB7dmFsdWUhcn0gZG9lc24ndC4iCisg
ICAgICAgICAgICAuZm9ybWF0KGludGVyZmFjZT1JRm9vLCB2YWx1ZT12YWx1ZSksCisgICAgICAg
ICAgICBhLCBJRm9vLCB2YWx1ZSwKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3MKKworICAgIGRl
ZiB0ZXN0X3JlcHIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5lZCB2YWxpZGF0
b3IgaGFzIGEgdXNlZnVsIGBfX3JlcHJfX2AuCisgICAgICAgICIiIgorICAgICAgICB2ID0gcHJv
dmlkZXMoSUZvbykKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICI8cHJvdmlkZXMgdmFs
aWRhdG9yIGZvciBpbnRlcmZhY2Uge2ludGVyZmFjZSFyfT4iCisgICAgICAgICAgICAuZm9ybWF0
KGludGVyZmFjZT1JRm9vKQorICAgICAgICApID09IHJlcHIodikKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInZhbGlkYXRvciIsIFsKKyAgICBpbnN0YW5jZV9vZihpbnQpLAorICAgIFth
bHdheXNfcGFzcywgaW5zdGFuY2Vfb2YoaW50KV0sCitdKQorY2xhc3MgVGVzdE9wdGlvbmFsKG9i
amVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBvcHRpb25hbGAuCisgICAgIiIiCisgICAg
ZGVmIHRlc3Rfc3VjY2VzcyhzZWxmLCB2YWxpZGF0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAg
Tm90aGluZyBoYXBwZW5zIGlmIHZhbGlkYXRvciBzdWNjZWVkcy4KKyAgICAgICAgIiIiCisgICAg
ICAgIHYgPSBvcHRpb25hbCh2YWxpZGF0b3IpCisgICAgICAgIHYoTm9uZSwgc2ltcGxlX2F0dHIo
InRlc3QiKSwgNDIpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhfbm9uZShzZWxmLCB2YWxp
ZGF0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAgTm90aGluZyBoYXBwZW5zIGlmIE5vbmUuCisg
ICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRhdG9yKQorICAgICAgICB2KE5v
bmUsIHNpbXBsZV9hdHRyKCJ0ZXN0IiksIE5vbmUpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYs
IHZhbGlkYXRvcik6CisgICAgICAgICIiIgorICAgICAgICBSYWlzZXMgYFR5cGVFcnJvcmAgb24g
d3JvbmcgdHlwZXMuCisgICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRhdG9y
KQorICAgICAgICBhID0gc2ltcGxlX2F0dHIoInRlc3QiKQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgdihOb25lLCBhLCAiNDIiKQorICAg
ICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIid0ZXN0JyBtdXN0IGJlIDx7dHlwZX0gJ2ludCc+
IChnb3QgJzQyJyB0aGF0IGlzIGEgPHt0eXBlfSAiCisgICAgICAgICAgICAiJ3N0cic+KS4iLmZv
cm1hdCh0eXBlPVRZUEUpLAorICAgICAgICAgICAgYSwgaW50LCAiNDIiLAorCisgICAgICAgICkg
PT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYsIHZhbGlkYXRvcik6Cisg
ICAgICAgICIiIgorICAgICAgICBSZXR1cm5lZCB2YWxpZGF0b3IgaGFzIGEgdXNlZnVsIGBfX3Jl
cHJfX2AuCisgICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRhdG9yKQorCisg
ICAgICAgIGlmIGlzaW5zdGFuY2UodmFsaWRhdG9yLCBsaXN0KToKKyAgICAgICAgICAgIGFzc2Vy
dCAoCisgICAgICAgICAgICAgICAgKCI8b3B0aW9uYWwgdmFsaWRhdG9yIGZvciBfQW5kVmFsaWRh
dG9yKF92YWxpZGF0b3JzPVt7ZnVuY30sICIKKyAgICAgICAgICAgICAgICAgIjxpbnN0YW5jZV9v
ZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHt0eXBlfSAnaW50Jz4+XSkgb3IgTm9uZT4iKQorICAgICAg
ICAgICAgICAgIC5mb3JtYXQoZnVuYz1yZXByKGFsd2F5c19wYXNzKSwgdHlwZT1UWVBFKQorICAg
ICAgICAgICAgKSA9PSByZXByKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQg
KAorICAgICAgICAgICAgICAgICgiPG9wdGlvbmFsIHZhbGlkYXRvciBmb3IgPGluc3RhbmNlX29m
IHZhbGlkYXRvciBmb3IgdHlwZSAiCisgICAgICAgICAgICAgICAgICI8e3R5cGV9ICdpbnQnPj4g
b3IgTm9uZT4iKQorICAgICAgICAgICAgICAgIC5mb3JtYXQodHlwZT1UWVBFKQorICAgICAgICAg
ICAgKSA9PSByZXByKHYpCisKKworY2xhc3MgVGVzdEluXyhvYmplY3QpOgorICAgICIiIgorICAg
IFRlc3RzIGZvciBgaW5fYC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhfdmFs
dWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiB0aGUgdmFsdWUgaXMgaW4gb3VyIG9w
dGlvbnMsIG5vdGhpbmcgaGFwcGVucy4KKyAgICAgICAgIiIiCisgICAgICAgIHYgPSBpbl8oWzEs
IDIsIDNdKQorICAgICAgICBhID0gc2ltcGxlX2F0dHIoInRlc3QiKQorICAgICAgICB2KDEsIGEs
IDMpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmFp
c2UgVmFsdWVFcnJvciBpZiB0aGUgdmFsdWUgaXMgb3V0c2lkZSBvdXIgb3B0aW9ucy4KKyAgICAg
ICAgIiIiCisgICAgICAgIHYgPSBpbl8oWzEsIDIsIDNdKQorICAgICAgICBhID0gc2ltcGxlX2F0
dHIoInRlc3QiKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZToK
KyAgICAgICAgICAgIHYoTm9uZSwgYSwgTm9uZSkKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAg
ICAgICIndGVzdCcgbXVzdCBiZSBpbiBbMSwgMiwgM10gKGdvdCBOb25lKSIsCisgICAgICAgICkg
PT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmV0dXJuZWQgdmFsaWRhdG9yIGhhcyBhIHVzZWZ1bCBgX19yZXByX19gLgorICAg
ICAgICAiIiIKKyAgICAgICAgdiA9IGluXyhbMywgNCwgNV0pCisgICAgICAgIGFzc2VydCgKKyAg
ICAgICAgICAgICgiPGluXyB2YWxpZGF0b3Igd2l0aCBvcHRpb25zIFszLCA0LCA1XT4iKQorICAg
ICAgICApID09IHJlcHIodikKKworCitkZWYgdGVzdF9oYXNoYWJpbGl0eSgpOgorICAgICIiIgor
ICAgIFZhbGlkYXRvciBjbGFzc2VzIGFyZSBoYXNoYWJsZS4KKyAgICAiIiIKKyAgICBmb3Igb2Jq
X25hbWUgaW4gZGlyKHZhbGlkYXRvcl9tb2R1bGUpOgorICAgICAgICBvYmogPSBnZXRhdHRyKHZh
bGlkYXRvcl9tb2R1bGUsIG9ial9uYW1lKQorICAgICAgICBpZiBub3QgaGFzKG9iaik6CisgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICBoYXNoX2Z1bmMgPSBnZXRhdHRyKG9iaiwgJ19faGFz
aF9fJywgTm9uZSkKKyAgICAgICAgYXNzZXJ0IGhhc2hfZnVuYyBpcyBub3QgTm9uZQorICAgICAg
ICBhc3NlcnQgaGFzaF9mdW5jIGlzIG5vdCBvYmplY3QuX19oYXNoX18KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvdGVzdHMvdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3V0aWxzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2YjYyNDk4MWU5YjczNjgyNGI3Mzk4MjI4MTk4N2I0N2IyMjRmZTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsMjM3IEBACisi
IiIKK0NvbW1vbiBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXN0cy4KKyIiIgorCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisK
K2ltcG9ydCBrZXl3b3JkCitpbXBvcnQgc3RyaW5nCisKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0
IE9yZGVyZWREaWN0CisKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgc3RyYXRlZ2llcyBhcyBzdAor
CitpbXBvcnQgYXR0cgorCitmcm9tIGF0dHIgaW1wb3J0IEF0dHJpYnV0ZQorZnJvbSBhdHRyLl9t
YWtlIGltcG9ydCBOT1RISU5HLCBtYWtlX2NsYXNzCisKKworZGVmIHNpbXBsZV9jbGFzcyhjbXA9
RmFsc2UsIHJlcHI9RmFsc2UsIGhhc2g9RmFsc2UsIHN0cj1GYWxzZSwgc2xvdHM9RmFsc2UsCisg
ICAgICAgICAgICAgICAgIGZyb3plbj1GYWxzZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgbmV3
IHNpbXBsZSBjbGFzcy4KKyAgICAiIiIKKyAgICByZXR1cm4gbWFrZV9jbGFzcygKKyAgICAgICAg
IkMiLCBbImEiLCAiYiJdLAorICAgICAgICBjbXA9Y21wLCByZXByPXJlcHIsIGhhc2g9aGFzaCwg
aW5pdD1UcnVlLCBzbG90cz1zbG90cywgc3RyPXN0ciwKKyAgICAgICAgZnJvemVuPWZyb3plbiwK
KyAgICApCisKKworZGVmIHNpbXBsZV9hdHRyKG5hbWUsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRh
dG9yPU5vbmUsIHJlcHI9VHJ1ZSwKKyAgICAgICAgICAgICAgICBjbXA9VHJ1ZSwgaGFzaD1Ob25l
LCBpbml0PVRydWUpOgorICAgICIiIgorICAgIFJldHVybiBhbiBhdHRyaWJ1dGUgd2l0aCBhIG5h
bWUgYW5kIG5vIG90aGVyIGJlbGxzIGFuZCB3aGlzdGxlcy4KKyAgICAiIiIKKyAgICByZXR1cm4g
QXR0cmlidXRlKAorICAgICAgICBuYW1lPW5hbWUsIGRlZmF1bHQ9ZGVmYXVsdCwgdmFsaWRhdG9y
PXZhbGlkYXRvciwgcmVwcj1yZXByLAorICAgICAgICBjbXA9Y21wLCBoYXNoPWhhc2gsIGluaXQ9
aW5pdAorICAgICkKKworCitjbGFzcyBUZXN0U2ltcGxlQ2xhc3Mob2JqZWN0KToKKyAgICAiIiIK
KyAgICBUZXN0cyBmb3IgdGhlIHRlc3RpbmcgaGVscGVyIGZ1bmN0aW9uIGBtYWtlX2NsYXNzYC4K
KyAgICAiIiIKKyAgICBkZWYgdGVzdF9yZXR1cm5zX2NsYXNzKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmV0dXJucyBhIGNsYXNzIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAgIGFz
c2VydCB0eXBlIGlzIHNpbXBsZV9jbGFzcygpLl9fY2xhc3NfXworCisgICAgZGVmIHJldHVybnNf
ZGlzdGluY3RfY2xhc3NlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEVhY2ggY2FsbCBy
ZXR1cm5zIGEgY29tcGxldGVseSBuZXcgY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICBhc3Nl
cnQgc2ltcGxlX2NsYXNzKCkgaXMgbm90IHNpbXBsZV9jbGFzcygpCisKKworZGVmIGdlbl9hdHRy
X25hbWVzKCk6CisgICAgIiIiCisgICAgR2VuZXJhdGUgbmFtZXMgZm9yIGF0dHJpYnV0ZXMsICdh
Jy4uLid6JywgdGhlbiAnYWEnLi4uJ3p6Jy4KKworICAgIH43MDIgZGlmZmVyZW50IGF0dHJpYnV0
ZSBuYW1lcyBzaG91bGQgYmUgZW5vdWdoIGluIHByYWN0aWNlLgorCisgICAgU29tZSBzaG9ydCBz
dHJpbmdzIChzdWNoIGFzICdhcycpIGFyZSBrZXl3b3Jkcywgc28gd2Ugc2tpcCB0aGVtLgorICAg
ICIiIgorICAgIGxjID0gc3RyaW5nLmFzY2lpX2xvd2VyY2FzZQorICAgIGZvciBjIGluIGxjOgor
ICAgICAgICB5aWVsZCBjCisgICAgZm9yIG91dGVyIGluIGxjOgorICAgICAgICBmb3IgaW5uZXIg
aW4gbGM6CisgICAgICAgICAgICByZXMgPSBvdXRlciArIGlubmVyCisgICAgICAgICAgICBpZiBr
ZXl3b3JkLmlza2V5d29yZChyZXMpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
ICAgICB5aWVsZCBvdXRlciArIGlubmVyCisKKworZGVmIG1heWJlX3VuZGVyc2NvcmVfcHJlZml4
KHNvdXJjZSk6CisgICAgIiIiCisgICAgQSBnZW5lcmF0b3IgdG8gc29tZXRpbWVzIHByZXBlbmQg
YW4gdW5kZXJzY29yZS4KKyAgICAiIiIKKyAgICB0b191bmRlcnNjb3JlID0gRmFsc2UKKyAgICBm
b3IgdmFsIGluIHNvdXJjZToKKyAgICAgICAgeWllbGQgdmFsIGlmIG5vdCB0b191bmRlcnNjb3Jl
IGVsc2UgJ18nICsgdmFsCisgICAgICAgIHRvX3VuZGVyc2NvcmUgPSBub3QgdG9fdW5kZXJzY29y
ZQorCisKK2RlZiBfY3JlYXRlX2h5cF9jbGFzcyhhdHRycyk6CisgICAgIiIiCisgICAgQSBoZWxw
ZXIgZnVuY3Rpb24gZm9yIEh5cG90aGVzaXMgdG8gZ2VuZXJhdGUgYXR0cnMgY2xhc3Nlcy4KKyAg
ICAiIiIKKyAgICByZXR1cm4gbWFrZV9jbGFzcygKKyAgICAgICAgIkh5cENsYXNzIiwgZGljdCh6
aXAoZ2VuX2F0dHJfbmFtZXMoKSwgYXR0cnMpKQorICAgICkKKworCitkZWYgX2NyZWF0ZV9oeXBf
bmVzdGVkX3N0cmF0ZWd5KHNpbXBsZV9jbGFzc19zdHJhdGVneSk6CisgICAgIiIiCisgICAgQ3Jl
YXRlIGEgcmVjdXJzaXZlIGF0dHJzIGNsYXNzLgorCisgICAgR2l2ZW4gYSBzdHJhdGVneSBmb3Ig
YnVpbGRpbmcgKHNpbXBsZXIpIGNsYXNzZXMsIGNyZWF0ZSBhbmQgcmV0dXJuCisgICAgYSBzdHJh
dGVneSBmb3IgYnVpbGRpbmcgY2xhc3NlcyB0aGF0IGhhdmUgYXMgYW4gYXR0cmlidXRlOiBlaXRo
ZXIganVzdAorICAgIHRoZSBzaW1wbGVyIGNsYXNzLCBhIGxpc3Qgb2Ygc2ltcGxlciBjbGFzc2Vz
LCBhIHR1cGxlIG9mIHNpbXBsZXIgY2xhc3NlcywKKyAgICBhbiBvcmRlcmVkIGRpY3Qgb3IgYSBk
aWN0IG1hcHBpbmcgdGhlIHN0cmluZyAiY2xzIiB0byBhIHNpbXBsZXIgY2xhc3MuCisgICAgIiIi
CisgICAgIyBVc2UgYSB0dXBsZSBzdHJhdGVneSB0byBjb21iaW5lIHNpbXBsZSBhdHRyaWJ1dGVz
IGFuZCBhbiBhdHRyIGNsYXNzLgorICAgIGRlZiBqdXN0X2NsYXNzKHR1cCk6CisgICAgICAgIGNv
bWJpbmVkX2F0dHJzID0gbGlzdCh0dXBbMF0pCisgICAgICAgIGNvbWJpbmVkX2F0dHJzLmFwcGVu
ZChhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KHR1cFsxXSkpKQorICAgICAgICByZXR1cm4g
X2NyZWF0ZV9oeXBfY2xhc3MoY29tYmluZWRfYXR0cnMpCisKKyAgICBkZWYgbGlzdF9vZl9jbGFz
cyh0dXApOgorICAgICAgICBkZWZhdWx0ID0gYXR0ci5GYWN0b3J5KGxhbWJkYTogW3R1cFsxXSgp
XSkKKyAgICAgICAgY29tYmluZWRfYXR0cnMgPSBsaXN0KHR1cFswXSkKKyAgICAgICAgY29tYmlu
ZWRfYXR0cnMuYXBwZW5kKGF0dHIuaWIoZGVmYXVsdD1kZWZhdWx0KSkKKyAgICAgICAgcmV0dXJu
IF9jcmVhdGVfaHlwX2NsYXNzKGNvbWJpbmVkX2F0dHJzKQorCisgICAgZGVmIHR1cGxlX29mX2Ns
YXNzKHR1cCk6CisgICAgICAgIGRlZmF1bHQgPSBhdHRyLkZhY3RvcnkobGFtYmRhOiAodHVwWzFd
KCksKSkKKyAgICAgICAgY29tYmluZWRfYXR0cnMgPSBsaXN0KHR1cFswXSkKKyAgICAgICAgY29t
YmluZWRfYXR0cnMuYXBwZW5kKGF0dHIuaWIoZGVmYXVsdD1kZWZhdWx0KSkKKyAgICAgICAgcmV0
dXJuIF9jcmVhdGVfaHlwX2NsYXNzKGNvbWJpbmVkX2F0dHJzKQorCisgICAgZGVmIGRpY3Rfb2Zf
Y2xhc3ModHVwKToKKyAgICAgICAgZGVmYXVsdCA9IGF0dHIuRmFjdG9yeShsYW1iZGE6IHsiY2xz
IjogdHVwWzFdKCl9KQorICAgICAgICBjb21iaW5lZF9hdHRycyA9IGxpc3QodHVwWzBdKQorICAg
ICAgICBjb21iaW5lZF9hdHRycy5hcHBlbmQoYXR0ci5pYihkZWZhdWx0PWRlZmF1bHQpKQorICAg
ICAgICByZXR1cm4gX2NyZWF0ZV9oeXBfY2xhc3MoY29tYmluZWRfYXR0cnMpCisKKyAgICBkZWYg
b3JkZXJlZGRpY3Rfb2ZfY2xhc3ModHVwKToKKyAgICAgICAgZGVmYXVsdCA9IGF0dHIuRmFjdG9y
eShsYW1iZGE6IE9yZGVyZWREaWN0KFsoImNscyIsIHR1cFsxXSgpKV0pKQorICAgICAgICBjb21i
aW5lZF9hdHRycyA9IGxpc3QodHVwWzBdKQorICAgICAgICBjb21iaW5lZF9hdHRycy5hcHBlbmQo
YXR0ci5pYihkZWZhdWx0PWRlZmF1bHQpKQorICAgICAgICByZXR1cm4gX2NyZWF0ZV9oeXBfY2xh
c3MoY29tYmluZWRfYXR0cnMpCisKKyAgICAjIEEgc3RyYXRlZ3kgcHJvZHVjaW5nIHR1cGxlcyBv
ZiB0aGUgZm9ybSAoW2xpc3Qgb2YgYXR0cmlidXRlc10sIDxnaXZlbgorICAgICMgY2xhc3Mgc3Ry
YXRlZ3k+KS4KKyAgICBhdHRyc19hbmRfY2xhc3NlcyA9IHN0LnR1cGxlcyhsaXN0X29mX2F0dHJz
LCBzaW1wbGVfY2xhc3Nfc3RyYXRlZ3kpCisKKyAgICByZXR1cm4gc3Qub25lX29mKGF0dHJzX2Fu
ZF9jbGFzc2VzLm1hcChqdXN0X2NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJzX2Fu
ZF9jbGFzc2VzLm1hcChsaXN0X29mX2NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJz
X2FuZF9jbGFzc2VzLm1hcCh0dXBsZV9vZl9jbGFzcyksCisgICAgICAgICAgICAgICAgICAgICBh
dHRyc19hbmRfY2xhc3Nlcy5tYXAoZGljdF9vZl9jbGFzcyksCisgICAgICAgICAgICAgICAgICAg
ICBhdHRyc19hbmRfY2xhc3Nlcy5tYXAob3JkZXJlZGRpY3Rfb2ZfY2xhc3MpKQorCisKK2JhcmVf
YXR0cnMgPSBzdC5qdXN0KGF0dHIuaWIoZGVmYXVsdD1Ob25lKSkKK2ludF9hdHRycyA9IHN0Lmlu
dGVnZXJzKCkubWFwKGxhbWJkYSBpOiBhdHRyLmliKGRlZmF1bHQ9aSkpCitzdHJfYXR0cnMgPSBz
dC50ZXh0KCkubWFwKGxhbWJkYSBzOiBhdHRyLmliKGRlZmF1bHQ9cykpCitmbG9hdF9hdHRycyA9
IHN0LmZsb2F0cygpLm1hcChsYW1iZGEgZjogYXR0ci5pYihkZWZhdWx0PWYpKQorZGljdF9hdHRy
cyA9IChzdC5kaWN0aW9uYXJpZXMoa2V5cz1zdC50ZXh0KCksIHZhbHVlcz1zdC5pbnRlZ2Vycygp
KQorICAgICAgICAgICAgICAubWFwKGxhbWJkYSBkOiBhdHRyLmliKGRlZmF1bHQ9ZCkpKQorCitz
aW1wbGVfYXR0cnNfd2l0aG91dF9tZXRhZGF0YSA9IChiYXJlX2F0dHJzIHwgaW50X2F0dHJzIHwg
c3RyX2F0dHJzIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0X2F0dHJz
IHwgZGljdF9hdHRycykKKworCitAc3QuY29tcG9zaXRlCitkZWYgc2ltcGxlX2F0dHJzX3dpdGhf
bWV0YWRhdGEoZHJhdyk6CisgICAgIiIiCisgICAgQ3JlYXRlIGEgc2ltcGxlIGF0dHJpYnV0ZSB3
aXRoIGFyYml0cmFyeSBtZXRhZGF0YS4KKyAgICAiIiIKKyAgICBjX2F0dHIgPSBkcmF3KHNpbXBs
ZV9hdHRycykKKyAgICBrZXlzID0gc3QuYm9vbGVhbnMoKSB8IHN0LmJpbmFyeSgpIHwgc3QuaW50
ZWdlcnMoKSB8IHN0LnRleHQoKQorICAgIHZhbHMgPSBzdC5ib29sZWFucygpIHwgc3QuYmluYXJ5
KCkgfCBzdC5pbnRlZ2VycygpIHwgc3QudGV4dCgpCisgICAgbWV0YWRhdGEgPSBkcmF3KHN0LmRp
Y3Rpb25hcmllcyhrZXlzPWtleXMsIHZhbHVlcz12YWxzKSkKKworICAgIHJldHVybiBhdHRyLmli
KGNfYXR0ci5fZGVmYXVsdCwgY19hdHRyLl92YWxpZGF0b3IsIGNfYXR0ci5yZXByLAorICAgICAg
ICAgICAgICAgICAgIGNfYXR0ci5jbXAsIGNfYXR0ci5oYXNoLCBjX2F0dHIuaW5pdCwgY19hdHRy
LmNvbnZlcnQsCisgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEpCisKKworc2ltcGxlX2F0dHJz
ID0gc2ltcGxlX2F0dHJzX3dpdGhvdXRfbWV0YWRhdGEgfCBzaW1wbGVfYXR0cnNfd2l0aF9tZXRh
ZGF0YSgpCisKKyMgUHl0aG9uIGZ1bmN0aW9ucyBzdXBwb3J0IHVwIHRvIDI1NSBhcmd1bWVudHMu
CitsaXN0X29mX2F0dHJzID0gc3QubGlzdHMoc2ltcGxlX2F0dHJzLCBhdmVyYWdlX3NpemU9Mywg
bWF4X3NpemU9OSkKKworCitAc3QuY29tcG9zaXRlCitkZWYgc2ltcGxlX2NsYXNzZXMoZHJhdywg
c2xvdHM9Tm9uZSwgZnJvemVuPU5vbmUsIHByaXZhdGVfYXR0cnM9Tm9uZSk6CisgICAgIiIiCisg
ICAgQSBzdHJhdGVneSB0aGF0IGdlbmVyYXRlcyBjbGFzc2VzIHdpdGggZGVmYXVsdCBub24tYXR0
ciBhdHRyaWJ1dGVzLgorCisgICAgRm9yIGV4YW1wbGUsIHRoaXMgc3RyYXRlZ3kgbWlnaHQgZ2Vu
ZXJhdGUgYSBjbGFzcyBzdWNoIGFzOgorCisgICAgQGF0dHIucyhzbG90cz1UcnVlLCBmcm96ZW49
VHJ1ZSkKKyAgICBjbGFzcyBIeXBDbGFzczoKKyAgICAgICAgYSA9IGF0dHIuaWIoZGVmYXVsdD0x
KQorICAgICAgICBfYiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorICAgICAgICBjID0gYXR0ci5p
YihkZWZhdWx0PSd0ZXh0JykKKyAgICAgICAgX2QgPSBhdHRyLmliKGRlZmF1bHQ9MS4wKQorICAg
ICAgICBjID0gYXR0ci5pYihkZWZhdWx0PXsndCc6IDF9KQorCisgICAgQnkgZGVmYXVsdCwgYWxs
IGNvbWJpbmF0aW9ucyBvZiBzbG90cyBhbmQgZnJvemVuIGNsYXNzZXMgd2lsbCBiZSBnZW5lcmF0
ZWQuCisgICAgSWYgYHNsb3RzPVRydWVgIGlzIHBhc3NlZCBpbiwgb25seSBzbG90cyBjbGFzc2Vz
IHdpbGwgYmUgZ2VuZXJhdGVkLCBhbmQKKyAgICBpZiBgc2xvdHM9RmFsc2VgIGlzIHBhc3NlZCBp
biwgbm8gc2xvdCBjbGFzc2VzIHdpbGwgYmUgZ2VuZXJhdGVkLiBUaGUgc2FtZQorICAgIGFwcGxp
ZXMgdG8gYGZyb3plbmAuCisKKyAgICBCeSBkZWZhdWx0LCBzb21lIGF0dHJpYnV0ZXMgd2lsbCBi
ZSBwcml2YXRlIChpLmUuIHByZWZpeGVkIHdpdGggYW4KKyAgICB1bmRlcnNjb3JlKS4gSWYgYHBy
aXZhdGVfYXR0cnM9VHJ1ZWAgaXMgcGFzc2VkIGluLCBhbGwgYXR0cmlidXRlcyB3aWxsIGJlCisg
ICAgcHJpdmF0ZSwgYW5kIGlmIGBwcml2YXRlX2F0dHJzPUZhbHNlYCwgbm8gYXR0cmlidXRlcyB3
aWxsIGJlIHByaXZhdGUuCisgICAgIiIiCisgICAgYXR0cnMgPSBkcmF3KGxpc3Rfb2ZfYXR0cnMp
CisgICAgZnJvemVuX2ZsYWcgPSBkcmF3KHN0LmJvb2xlYW5zKCkpIGlmIGZyb3plbiBpcyBOb25l
IGVsc2UgZnJvemVuCisgICAgc2xvdHNfZmxhZyA9IGRyYXcoc3QuYm9vbGVhbnMoKSkgaWYgc2xv
dHMgaXMgTm9uZSBlbHNlIHNsb3RzCisKKyAgICBpZiBwcml2YXRlX2F0dHJzIGlzIE5vbmU6Cisg
ICAgICAgIGF0dHJfbmFtZXMgPSBtYXliZV91bmRlcnNjb3JlX3ByZWZpeChnZW5fYXR0cl9uYW1l
cygpKQorICAgIGVsaWYgcHJpdmF0ZV9hdHRycyBpcyBUcnVlOgorICAgICAgICBhdHRyX25hbWVz
ID0gKCdfJyArIG4gZm9yIG4gaW4gZ2VuX2F0dHJfbmFtZXMoKSkKKyAgICBlbGlmIHByaXZhdGVf
YXR0cnMgaXMgRmFsc2U6CisgICAgICAgIGF0dHJfbmFtZXMgPSBnZW5fYXR0cl9uYW1lcygpCisK
KyAgICBjbHNfZGljdCA9IGRpY3QoemlwKGF0dHJfbmFtZXMsIGF0dHJzKSkKKyAgICBwb3N0X2lu
aXRfZmxhZyA9IGRyYXcoc3QuYm9vbGVhbnMoKSkKKyAgICBpZiBwb3N0X2luaXRfZmxhZzoKKyAg
ICAgICAgZGVmIHBvc3RfaW5pdChzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2xz
X2RpY3RbIl9fYXR0cnNfcG9zdF9pbml0X18iXSA9IHBvc3RfaW5pdAorCisgICAgcmV0dXJuIG1h
a2VfY2xhc3MoCisgICAgICAgICJIeXBDbGFzcyIsCisgICAgICAgIGNsc19kaWN0LAorICAgICAg
ICBzbG90cz1zbG90c19mbGFnLAorICAgICAgICBmcm96ZW49ZnJvemVuX2ZsYWcsCisgICAgKQor
CisKKyMgc3QucmVjdXJzaXZlIHdvcmtzIGJ5IHRha2luZyBhIGJhc2Ugc3RyYXRlZ3kgKGluIHRo
aXMgY2FzZSwgc2ltcGxlX2NsYXNzZXMpCisjIGFuZCBhIHNwZWNpYWwgZnVuY3Rpb24uICBUaGlz
IGZ1bmN0aW9uIHJlY2VpdmVzIGEgc3RyYXRlZ3ksIGFuZCByZXR1cm5zCisjIGFub3RoZXIgc3Ry
YXRlZ3kgKGJ1aWxkaW5nIG9uIHRvcCBvZiB0aGUgYmFzZSBzdHJhdGVneSkuCituZXN0ZWRfY2xh
c3NlcyA9IHN0LnJlY3Vyc2l2ZSgKKyAgICBzaW1wbGVfY2xhc3NlcygpLAorICAgIF9jcmVhdGVf
aHlwX25lc3RlZF9zdHJhdGVneSwKKyAgICBtYXhfbGVhdmVzPTEwCispCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZWM5NzBkMDg3OTE5MDk5MzA2OWUzN2VlMWJkYTRkOTlmOGNm
NjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Fubm90YXRpb25zLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90
ZXN0X2NvbmZpZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9jb252ZXJ0ZXJzLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy90ZXN0cy90ZXN0X2RhcmtfbWFnaWMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rf
ZHVuZGVycy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9maWx0ZXJzLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy90ZXN0cy90ZXN0X2Z1bmNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2luaXRfc3ViY2xh
c3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfbWFrZS5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMv
dGVzdF9zbG90cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF92YWxpZGF0b3JzLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy90ZXN0cy91dGlscy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90b3guaW5pIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMmMzMzAxMDI1ZWNjZGEyNTc1NWE4NDcx
ZTJiNGMyYTlhNDFhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3RveC5pbmkKQEAg
LTAsMCArMSw4MyBAQAorW3RveF0KK2Vudmxpc3QgPSBpc29ydCxweTI3LHB5MzQscHkzNSxweTM2
LHB5cHkscHlweTMsZmxha2U4LG1hbmlmZXN0LGRvY3MscmVhZG1lLGNoYW5nZWxvZyxjb3ZlcmFn
ZS1yZXBvcnQKKworCitbdGVzdGVudl0KKyMgUHJldmVudCByYW5kb20gc2V0dXB0b29scy9waXAg
YnJlYWthZ2VzIGxpa2UKKyMgaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvc2V0dXB0b29scy9pc3N1
ZXMvMTA0MiBmcm9tIGJyZWFraW5nIG91ciBidWlsZHMuCitzZXRlbnYgPQorICAgIFZJUlRVQUxF
TlZfTk9fRE9XTkxPQUQ9MQorZGVwcyA9IC1yZGV2LXJlcXVpcmVtZW50cy50eHQKK2NvbW1hbmRz
ID0gcHl0aG9uIC1tIHB5dGVzdCB7cG9zYXJnc30KKworCitbdGVzdGVudjpweTI3XQorZGVwcyA9
IC1yZGV2LXJlcXVpcmVtZW50cy50eHQKK2NvbW1hbmRzID0gY292ZXJhZ2UgcnVuIC0tcGFyYWxs
ZWwgLW0gcHl0ZXN0IHtwb3NhcmdzfQorCisKK1t0ZXN0ZW52OnB5MzZdCitkZXBzID0gLXJkZXYt
cmVxdWlyZW1lbnRzLnR4dAorY29tbWFuZHMgPSBjb3ZlcmFnZSBydW4gLS1wYXJhbGxlbCAtbSBw
eXRlc3Qge3Bvc2FyZ3N9CisKKworIyBVc2VzIGRlZmF1bHQgYmFzZXB5dGhvbiBvdGhlcndpc2Ug
cmVwb3J0aW5nIGRvZXNuJ3Qgd29yayBvbiBUcmF2aXMgd2hlcmUKKyMgUHl0aG9uIDMuNiBpcyBv
bmx5IGF2YWlsYWJsZSBpbiAzLjYgam9icy4KK1t0ZXN0ZW52OmNvdmVyYWdlLXJlcG9ydF0KK2Rl
cHMgPSBjb3ZlcmFnZQorc2tpcF9pbnN0YWxsID0gdHJ1ZQorY29tbWFuZHMgPQorICAgIGNvdmVy
YWdlIGNvbWJpbmUKKyAgICBjb3ZlcmFnZSByZXBvcnQKKworCitbdGVzdGVudjpmbGFrZThdCiti
YXNlcHl0aG9uID0gcHl0aG9uMy42CisjIE5lZWRzIGEgZnVsbCBpbnN0YWxsIHNvIGlzb3J0IGNh
biBkZXRlcm1pbmUgb3duL2ZvcmVpZ24gaW1wb3J0cy4KK2RlcHMgPQorICAgIC1yZGV2LXJlcXVp
cmVtZW50cy50eHQKKyAgICBmbGFrZTgKKyAgICBmbGFrZTgtaXNvcnQKK2NvbW1hbmRzID0gZmxh
a2U4IHNyYyB0ZXN0cyBzZXR1cC5weSBjb25mdGVzdC5weSBkb2NzL2NvbmYucHkKKworCitbdGVz
dGVudjppc29ydF0KK2Jhc2VweXRob24gPSBweXRob24zLjYKKyMgTmVlZHMgYSBmdWxsIGluc3Rh
bGwgc28gaXNvcnQgY2FuIGRldGVybWluZSBvd24vZm9yZWlnbiBpbXBvcnRzLgorZGVwcyA9Cisg
ICAgLXJkZXYtcmVxdWlyZW1lbnRzLnR4dAorICAgIGlzb3J0Citjb21tYW5kcyA9CisgICAgaXNv
cnQgLS1yZWN1cnNpdmUgc2V0dXAucHkgY29uZnRlc3QucHkgc3JjIHRlc3RzCisKKworW3Rlc3Rl
bnY6ZG9jc10KK2Jhc2VweXRob24gPSBweXRob24zLjYKK3NldGVudiA9CisgICAgUFlUSE9OSEFT
SFNFRUQgPSAwCitkZXBzID0gLXJkb2NzLXJlcXVpcmVtZW50cy50eHQKK2NvbW1hbmRzID0KKyAg
ICBzcGhpbngtYnVpbGQgLVcgLWIgaHRtbCAtZCB7ZW52dG1wZGlyfS9kb2N0cmVlcyBkb2NzIGRv
Y3MvX2J1aWxkL2h0bWwKKyAgICBzcGhpbngtYnVpbGQgLVcgLWIgZG9jdGVzdCAtZCB7ZW52dG1w
ZGlyfS9kb2N0cmVlcyBkb2NzIGRvY3MvX2J1aWxkL2h0bWwKKyAgICBweXRob24gLW0gZG9jdGVz
dCBSRUFETUUucnN0CisKKworW3Rlc3RlbnY6bWFuaWZlc3RdCitiYXNlcHl0aG9uID0gcHl0aG9u
My42CitkZXBzID0gY2hlY2stbWFuaWZlc3QKK3NraXBfaW5zdGFsbCA9IHRydWUKK2NvbW1hbmRz
ID0gY2hlY2stbWFuaWZlc3QKKworCitbdGVzdGVudjpyZWFkbWVdCitiYXNlcHl0aG9uID0gcHl0
aG9uMy42CitkZXBzID0gcmVhZG1lX3JlbmRlcmVyCitza2lwX2luc3RhbGwgPSB0cnVlCitjb21t
YW5kcyA9IHB5dGhvbiBzZXR1cC5weSBjaGVjayAtciAtcworCisKK1t0ZXN0ZW52OmNoYW5nZWxv
Z10KK2Jhc2VweXRob24gPSBweXRob24zLjYKK2RlcHMgPSB0b3duY3JpZXIKK3NraXBfaW5zdGFs
bCA9IHRydWUKK2NvbW1hbmRzID0gdG93bmNyaWVyIC0tZHJhZnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEwNzBlOWQ0MzNhOGI2Y2EwMzgzNzRkZDMwMGU3NzJjMDZkOTg0MmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMzEgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvQVVUSE9SUy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NIQU5HRUxPRy5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL0NPREVfT0ZfQ09ORFVDVC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NPTlRSSUJVVElORy5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL01BTklGRVNULmluCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9QVUxMX1JFUVVFU1RfVEVNUExBVEUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4dAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvZG9jcy1yZXF1aXJlbWVudHMudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9weXByb2plY3Qu
dG9tbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvc2V0dXAuY2ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zZXR1cC5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFOR0VMT0cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Z1bmNzaWdzL0NIQU5HRUxPRwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDJiMDE2YmI5OTRjYWExNDBiNDA2MjM0
OWQ5NmZhZTdhZmIzNmUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFOR0VM
T0cKQEAgLTAsMCArMSwyMDUgQEAKKzIwMTgtMDMtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgdG9vbHMgdG8gYTFlYzMzMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZml4LTE4MzkzNAorCisg
ICAgICAgICogQ0hBTkdFTE9HOiBBZGRlZC4KKyAgICAgICAgKiBMSUNFTlNFOiBBZGRlZC4KKyAg
ICAgICAgKiBNQU5JRkVTVC5pbjogQWRkZWQuCisgICAgICAgICogTWFrZWZpbGU6IEFkZGVkLgor
ICAgICAgICAqIFJFQURNRS5yc3Q6IEFkZGVkLgorICAgICAgICAqIGRvY3MvTWFrZWZpbGU6IEFk
ZGVkLgorICAgICAgICAqIGRvY3MvX3RlbXBsYXRlcy9wYWdlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGRvY3MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZy4K
KyAgICAgICAgKiBkb2NzL2NvbmYucHk6IEFkZGVkLgorICAgICAgICAqIGRvY3MvaW5kZXgucnN0
OiBBZGRlZC4KKyAgICAgICAgKiBkb2NzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1p
bXBvcnQubG9nLgorICAgICAgICAqIGZ1bmNzaWdzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKGZvcm1hdGFubm90YXRpb24pOgorICAgICAgICAoX2dldF91c2VyX2RlZmluZWRfbWV0aG9k
KToKKyAgICAgICAgKHNpZ25hdHVyZSk6CisgICAgICAgIChfdm9pZCk6CisgICAgICAgIChfZW1w
dHkpOgorICAgICAgICAoX1BhcmFtZXRlcktpbmQpOgorICAgICAgICAoX1BhcmFtZXRlcktpbmQu
X19uZXdfXyk6CisgICAgICAgIChfUGFyYW1ldGVyS2luZC5fX3N0cl9fKToKKyAgICAgICAgKF9Q
YXJhbWV0ZXJLaW5kLl9fcmVwcl9fKToKKyAgICAgICAgKFBhcmFtZXRlcik6CisgICAgICAgIChQ
YXJhbWV0ZXIuX19pbml0X18pOgorICAgICAgICAoUGFyYW1ldGVyLm5hbWUpOgorICAgICAgICAo
UGFyYW1ldGVyLmRlZmF1bHQpOgorICAgICAgICAoUGFyYW1ldGVyLmFubm90YXRpb24pOgorICAg
ICAgICAoUGFyYW1ldGVyLmtpbmQpOgorICAgICAgICAoUGFyYW1ldGVyLnJlcGxhY2UpOgorICAg
ICAgICAoUGFyYW1ldGVyLl9fc3RyX18pOgorICAgICAgICAoUGFyYW1ldGVyLl9fcmVwcl9fKToK
KyAgICAgICAgKFBhcmFtZXRlci5fX2hhc2hfXyk6CisgICAgICAgIChQYXJhbWV0ZXIuX19lcV9f
KToKKyAgICAgICAgKFBhcmFtZXRlci5fX25lX18pOgorICAgICAgICAoQm91bmRBcmd1bWVudHMp
OgorICAgICAgICAoQm91bmRBcmd1bWVudHMuX19pbml0X18pOgorICAgICAgICAoQm91bmRBcmd1
bWVudHMuc2lnbmF0dXJlKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLmFyZ3MpOgorICAgICAg
ICAoQm91bmRBcmd1bWVudHMua3dhcmdzKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLl9faGFz
aF9fKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLl9fZXFfXyk6CisgICAgICAgIChCb3VuZEFy
Z3VtZW50cy5fX25lX18pOgorICAgICAgICAoU2lnbmF0dXJlKToKKyAgICAgICAgKFNpZ25hdHVy
ZS5fX2luaXRfXyk6CisgICAgICAgIChTaWduYXR1cmUuZnJvbV9mdW5jdGlvbik6CisgICAgICAg
IChTaWduYXR1cmUucGFyYW1ldGVycyk6CisgICAgICAgIChTaWduYXR1cmUucmV0dXJuX2Fubm90
YXRpb24pOgorICAgICAgICAoU2lnbmF0dXJlLnJlcGxhY2UpOgorICAgICAgICAoU2lnbmF0dXJl
Ll9faGFzaF9fKToKKyAgICAgICAgKFNpZ25hdHVyZS5fX2VxX18pOgorICAgICAgICAoU2lnbmF0
dXJlLl9fbmVfXyk6CisgICAgICAgIChTaWduYXR1cmUuX2JpbmQpOgorICAgICAgICAoU2lnbmF0
dXJlLmJpbmQpOgorICAgICAgICAoU2lnbmF0dXJlLmJpbmRfcGFydGlhbCk6CisgICAgICAgIChT
aWduYXR1cmUuX19zdHJfXyk6CisgICAgICAgICogZnVuY3NpZ3Mvb2RpY3QucHk6IEFkZGVkLgor
ICAgICAgICAoT3JkZXJlZERpY3QpOgorICAgICAgICAoT3JkZXJlZERpY3QuX19pbml0X18pOgor
ICAgICAgICAoT3JkZXJlZERpY3QuX19zZXRpdGVtX18pOgorICAgICAgICAoT3JkZXJlZERpY3Qu
X19kZWxpdGVtX18pOgorICAgICAgICAoT3JkZXJlZERpY3QuX19pdGVyX18pOgorICAgICAgICAo
T3JkZXJlZERpY3QuX19yZXZlcnNlZF9fKToKKyAgICAgICAgKE9yZGVyZWREaWN0LmNsZWFyKToK
KyAgICAgICAgKE9yZGVyZWREaWN0LnBvcGl0ZW0pOgorICAgICAgICAoT3JkZXJlZERpY3Qua2V5
cyk6CisgICAgICAgIChPcmRlcmVkRGljdC52YWx1ZXMpOgorICAgICAgICAoT3JkZXJlZERpY3Qu
aXRlbXMpOgorICAgICAgICAoT3JkZXJlZERpY3QuaXRlcmtleXMpOgorICAgICAgICAoT3JkZXJl
ZERpY3QuaXRlcnZhbHVlcyk6CisgICAgICAgIChPcmRlcmVkRGljdC5pdGVyaXRlbXMpOgorICAg
ICAgICAoT3JkZXJlZERpY3QudXBkYXRlKToKKyAgICAgICAgKE9yZGVyZWREaWN0LnBvcCk6Cisg
ICAgICAgIChPcmRlcmVkRGljdC5zZXRkZWZhdWx0KToKKyAgICAgICAgKE9yZGVyZWREaWN0Ll9f
cmVwcl9fKToKKyAgICAgICAgKE9yZGVyZWREaWN0Ll9fcmVkdWNlX18pOgorICAgICAgICAoT3Jk
ZXJlZERpY3QuY29weSk6CisgICAgICAgIChPcmRlcmVkRGljdC5mcm9ta2V5cyk6CisgICAgICAg
IChPcmRlcmVkRGljdC5fX2VxX18pOgorICAgICAgICAoT3JkZXJlZERpY3QuX19uZV9fKToKKyAg
ICAgICAgKE9yZGVyZWREaWN0LnZpZXdrZXlzKToKKyAgICAgICAgKE9yZGVyZWREaWN0LnZpZXd2
YWx1ZXMpOgorICAgICAgICAoT3JkZXJlZERpY3Qudmlld2l0ZW1zKToKKyAgICAgICAgKiBmdW5j
c2lncy92ZXJzaW9uLnB5OiBBZGRlZC4KKyAgICAgICAgKiBmdW5jc2lncy93M2MtaW1wb3J0Lmxv
ZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiByZXF1aXJlbWVudHMvZGV2ZWxvcG1l
bnQudHh0OiBBZGRlZC4KKyAgICAgICAgKiByZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHJlcXVpcmVtZW50cy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1w
b3J0LmxvZy4KKyAgICAgICAgKiBzZXR1cC5jZmc6IEFkZGVkLgorICAgICAgICAqIHNldHVwLnB5
OiBBZGRlZC4KKyAgICAgICAgKGxvYWRfdmVyc2lvbik6CisgICAgICAgIChsb2FkX3JzdCk6Cisg
ICAgICAgICogdGVzdHMvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3Rlc3Rf
Zm9ybWF0YW5ub3RhdGlvbi5weTogQWRkZWQuCisgICAgICAgIChUZXN0Rm9ybWF0QW5ub3RhdGlv
bik6CisgICAgICAgIChUZXN0Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X3N0cmluZyk6CisgICAgICAg
IChUZXN0Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X2J1aWx0aW5fdHlwZSk6CisgICAgICAgIChUZXN0
Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X3VzZXJfdHlwZSk6CisgICAgICAgIChUZXN0Rm9ybWF0QW5u
b3RhdGlvbi50ZXN0X3VzZXJfdHlwZS5kdW1teSk6CisgICAgICAgICogdGVzdHMvdGVzdF9mdW5j
c2lncy5weTogQWRkZWQuCisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzKToKKyAgICAg
ICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMuc2lnbmF0dXJlKToKKyAgICAgICAgKFRlc3RGdW5j
dGlvblNpZ25hdHVyZXMudGVzdF96ZXJvX2FyZ3VtZW50cyk6CisgICAgICAgIChUZXN0RnVuY3Rp
b25TaWduYXR1cmVzLnRlc3RfemVyb19hcmd1bWVudHMudGVzdCk6CisgICAgICAgIChUZXN0RnVu
Y3Rpb25TaWduYXR1cmVzLnRlc3Rfc2luZ2xlX3Bvc2l0aW9uYWxfYXJndW1lbnQpOgorICAgICAg
ICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0X3NpbmdsZV9wb3NpdGlvbmFsX2FyZ3VtZW50
LnRlc3QpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0X3NpbmdsZV9rZXl3
b3JkX2FyZ3VtZW50KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF9zaW5n
bGVfa2V5d29yZF9hcmd1bWVudC50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVy
ZXMudGVzdF92YXJfYXJncyk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rf
dmFyX2FyZ3MudGVzdCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rfa2V5
d29yZHNfYXJncyk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rfa2V5d29y
ZHNfYXJncy50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF9tdWx0
aXBsZV9hcmd1bWVudHMpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0X211
bHRpcGxlX2FyZ3VtZW50cy50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMu
dGVzdF9oYXNfdmVyc2lvbik6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rf
cmVhZG1lKToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF91bmJvdW5kX21l
dGhvZCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3RfdW5ib3VuZF9tZXRo
b2QuVGVzdCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3RfdW5ib3VuZF9t
ZXRob2QuVGVzdC5tZXRob2QpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0
X3VuYm91bmRfbWV0aG9kLlRlc3QubWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICogdGVzdHMv
dGVzdF9pbnNwZWN0LnB5OiBBZGRlZC4KKyAgICAgICAgKFRlc3RTaWduYXR1cmVPYmplY3QpOgor
ICAgICAgICAoVGVzdFNpZ25hdHVyZU9iamVjdC5zaWduYXR1cmUpOgorICAgICAgICAoVGVzdFNp
Z25hdHVyZU9iamVjdC5fX2luaXRfXyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vYmplY3Qp
OgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb2JqZWN0LnRlc3QpOgorICAgICAgICAodGVzdF9z
aWduYXR1cmVfb25fd2FyZ3MpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fd2FyZ3MudGVz
dCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl93a3dvbmx5KToKKyAgICAgICAgKHRlc3Rf
c2lnbmF0dXJlX29uX3drd29ubHkudGVzdCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9j
b21wbGV4X2FyZ3MpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY29tcGxleF9hcmdzLnRl
c3QpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fbWV0aG9kKToKKyAgICAgICAgKHRlc3Rf
c2lnbmF0dXJlX29uX21ldGhvZC5UZXN0KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX21l
dGhvZC5UZXN0LmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzc21ldGhvZCk6
CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzc21ldGhvZC5UZXN0KToKKyAgICAgICAg
KHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzbWV0aG9kLlRlc3QuZm9vKToKKyAgICAgICAgKHRlc3Rf
c2lnbmF0dXJlX29uX3N0YXRpY21ldGhvZCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9z
dGF0aWNtZXRob2QuVGVzdCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9zdGF0aWNtZXRo
b2QuVGVzdC5mb28pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fcGFydGlhbCk6CisgICAg
ICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9wYXJ0aWFsLnRlc3QpOgorICAgICAgICAodGVzdF9zaWdu
YXR1cmVfb25fcGFydGlhbC5mb28pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fZGVjb3Jh
dGVkKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2RlY29yYXRlZC5kZWNvcmF0b3IpOgor
ICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fZGVjb3JhdGVkLmRlY29yYXRvci53cmFwcGVyKToK
KyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2RlY29yYXRlZC5Gb28pOgorICAgICAgICAodGVz
dF9zaWduYXR1cmVfb25fZGVjb3JhdGVkLkZvby5iYXIpOgorICAgICAgICAodGVzdF9zaWduYXR1
cmVfb25fZGVjb3JhdGVkLkZvby5fX2NhbGxfXyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9v
bl9jbGFzcyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzcy5DKToKKyAgICAgICAg
KHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzLkMuX19pbml0X18pOgorICAgICAgICAodGVzdF9zaWdu
YXR1cmVfb25fY2xhc3MuQ00pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY2xhc3MuQ00u
X19jYWxsX18pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY2xhc3MuQ00uX19uZXdfXyk6
CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzcy5DTU0pOgorICAgICAgICAodGVzdF9z
aWduYXR1cmVfb25fY2xhc3MuQ01NLl9fbmV3X18pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVf
b25fY2xhc3MuQ01NLl9fY2FsbF9fKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNz
LkNNLl9faW5pdF9fKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2VxdWFsaXR5KToKKyAgICAg
ICAgKHRlc3Rfc2lnbmF0dXJlX2VxdWFsaXR5LmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVy
ZV9lcXVhbGl0eS5iYXIpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfZXF1YWxpdHkuc3BhbSk6
CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9zdHIpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVf
c3RyLmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9zdHJfcG9zaXRpb25hbF9vbmx5KToK
KyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX3N0cl9wb3NpdGlvbmFsX29ubHkudGVzdCk6CisgICAg
ICAgICh0ZXN0X3NpZ25hdHVyZV9yZXBsYWNlX2Fubm8pOgorICAgICAgICAodGVzdF9zaWduYXR1
cmVfcmVwbGFjZV9hbm5vLnRlc3QpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfYmluZF9rd29u
bHkpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfYmluZF9rd29ubHkudGVzdCk6CisgICAgICAg
ICh0ZXN0X3NpZ25hdHVyZV9iaW5kX2FyZ3VtZW50cyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVy
ZV9iaW5kX2FyZ3VtZW50cy50ZXN0KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2JpbmRfcG9z
aXRpb25hbF9vbmx5KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2JpbmRfcG9zaXRpb25hbF9v
bmx5LnRlc3QpOgorICAgICAgICAqIHRlc3RzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBv
cnQubG9nLgorICAgICAgICAqIHczYy1pbXBvcnQubG9nOiBBZGRlZC4KKworQ2hhbmdlbG9nCist
LS0tLS0tLS0KKworMC40ICgyMDEzLTEyLTIwKQorYGBgYGBgYGBgYGBgYGBgYAorKiBGaXggdW5i
b3VuZCBtZXRob2RzIGdldHRpbmcgdGhlaXIgZmlyc3QgcGFyYW1ldGVyIGN1cnJpZWQKKyogUHVi
bGlzaCBQeXRob24gd2hlZWwgcGFja2FnZXMKKworMC4zICgyMDEzLTA1LTI5KQorYGBgYGBgYGBg
YGBgYGBgYAorKiBGaXggYW5ub3RhdGlvbiBmb3JtYXR0aW5nIG9mIGJ1aWx0aW4gdHlwZXMgb24g
UHl0aG9uIDIueAorCiswLjIgKDIwMTItMDEtMDcpCitgYGBgYGBgYGBgYGBgYGBgCisqIFB5UHkg
Y29tcGF0YWJpbGl0eQorCiswLjEgKDIwMTItMDEtMDYpCitgYGBgYGBgYGBgYGBgYGBgCisqIElu
aXRpYWwgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9MSUNFTlNFIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlNTYzZDZmYmQ0ZDQ2YWJiNDk0Y2IxMDk4NjA2
N2E5NWJjNGMxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0xJQ0VOU0UKQEAg
LTAsMCArMSwxMyBAQAorQ29weXJpZ2h0IDIwMTMgQWFyb24gSWxlcworCitMaWNlbnNlZCB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKK3lvdSBt
YXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5z
ZS4KK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgIGh0dHA6Ly93
d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCitkaXN0cmli
dXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lT
LAorV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuCitTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCitsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGlj
ZW5zZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL01BTklGRVNULmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYWJiNDJmMDRhMTgwNDI2MzU1NjBlZDNhNjU2
YmViMjQ5MjhmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL01BTklGRVNULmlu
CkBAIC0wLDAgKzEsNyBAQAorcmVjdXJzaXZlLWluY2x1ZGUgZG9jcyAqCityZWN1cnNpdmUtaW5j
bHVkZSB0ZXN0cyAqLnB5CitpbmNsdWRlICoucHkKK2luY2x1ZGUgQ0hBTkdFTE9HCitpbmNsdWRl
IExJQ0VOU0UKK2luY2x1ZGUgTUFOSUZFU1QuaW4KK2luY2x1ZGUgUkVBRE1FLnJzdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy9NYWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTWFrZWZpbGUKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTIzMjkyMzFiNTY0YjVhMTFiYjJiYzA2YTA5MGJmNDAxNzQyZGJkYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTWFrZWZpbGUKQEAgLTAsMCArMSwzOSBAQAorU0hF
TEwgOj0gL2Jpbi9iYXNoCisKK2RlcHM6CisJcGlwIGluc3RhbGwgLS11cGdyYWRlIFwKKwkgICAg
ICAgICAgICAtciByZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0IFwKKwkgICAgICAgICAgICAt
ciByZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQKKworc2Rpc3Q6CisJcHl0aG9uIHNldHVwLnB5
IHNkaXN0CisJcHl0aG9uIHNldHVwLnB5IGJkaXN0X3doZWVsCisKK3JlZ2lzdGVyOgorCXB5dGhv
biBzZXR1cC5weSByZWdpc3RlcgorCXB5dGhvbiBzZXR1cC5weSBzZGlzdCB1cGxvYWQKKwlweXRo
b24gc2V0dXAucHkgYmRpc3Rfd2hlZWwgdXBsb2FkCisKK3NpdGU6CisJY2QgZG9jczsgbWFrZSBo
dG1sCisKK3Rlc3Q6CisJY292ZXJhZ2UgcnVuIHNldHVwLnB5IHRlc3QKKwordW5pdHRlc3Q6CisJ
Y292ZXJhZ2UgcnVuIC1tIHVuaXR0ZXN0IGRpc2NvdmVyCisKK2xpbnQ6CisJZmxha2U4IC0tZXhp
dC16ZXJvIGZ1bmNzaWdzIHRlc3RzCisKK2NvdmVyYWdlOgorCWNvdmVyYWdlIHJlcG9ydCAtLXNo
b3ctbWlzc2luZworCitjbGVhbjoKKwlweXRob24gc2V0dXAucHkgY2xlYW4gLS1hbGwKKwlmaW5k
IC4gLXR5cGUgZiAtbmFtZSAiKi5weWMiIC1leGVjIHJtICd7fScgKworCWZpbmQgLiAtdHlwZSBk
IC1uYW1lICJfX3B5Y2FjaGVfXyIgLWV4ZWMgcm1kaXIgJ3t9JyArCisJcm0gLXJmICouZWdnLWlu
Zm8gLmNvdmVyYWdlCisJY2QgZG9jczsgbWFrZSBjbGVhbgorCitkb2NzOiBzaXRlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjA0YjdiNDIyY2Y1MWI2NzU4NjcwM2YyYWUwOWViODZjMWNlNmJhOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvUkVBRE1FLnJzdApAQCAtMCwwICsxLDgzIEBA
CitmdW5jc2lncworPT09PT09PT0KKworYGBmdW5jc2lnc2BgIGlzIGEgYmFja3BvcnQgb2YgdGhl
IGBQRVAgMzYyYF8gZnVuY3Rpb24gc2lnbmF0dXJlIGZlYXR1cmVzIGZyb20KK1B5dGhvbiAzLjMn
cyBgaW5zcGVjdGBfIG1vZHVsZS4gVGhlIGJhY2twb3J0IGlzIGNvbXBhdGlibGUgd2l0aCBQeXRo
b24gMi42LCAyLjcKK2FzIHdlbGwgYXMgMy4yIGFuZCB1cC4KKworfHB5cGlfdmVyc2lvbnwKKwor
RG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCitUaGUgcmVmZXJlbmNlIGRvY3VtZW50YXRp
b24gaXMgc3RhbmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uIGZvciB0aGUKK2BpbnNwZWN0YF8g
bW9kdWxlIGluIFB5dGhvbjMuIFRoaXMgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiBpbmNsdWRlZCBp
biB0aGUKK2BgZnVuY3NpZ3NgYCBwYWNrYWdlIGRvY3VtZW50YXRpb24gaG9zdGVkIG9uIGBSZWFk
IFRoZSBEb2NzYF8uCisKK0V4YW1wbGUKKy0tLS0tLS0KKworVG8gb2J0YWluIGEgc2lnbmF0dXJl
IG9iamVjdCwgcGFzcyB0aGUgdGFyZ2V0IGZ1bmN0aW9uIHRvIHRoZQorYGBmdW5jc2lncy5zaWdu
YXR1cmVgYCBmdW5jdGlvbi4gOjoKKworICAgID4+PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWdu
YXR1cmUKKyAgICA+Pj4gZGVmIGZvbyhhLCBiPU5vbmUsICphcmdzLCAqKmt3YXJncyk6CisgICAg
Li4uICAgICBwYXNzCisKKyAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKworRm9yIHRoZSBk
ZXRhaWxzIG9mIHRoZSBzaWduYXR1cmUgb2JqZWN0LCByZWZlciB0byB0aGUgZWl0aGVyIHRoZSBw
YWNrYWdlIG9mCitzdGFuZGFyZCBsaWJyYXJ5IGRvY3VtZW50YXRpb24uCisKK0NvbXBhdGFiaWxp
dHkKKy0tLS0tLS0tLS0tLS0KKworVGhlIGBgZnVuY3NpZ3NgYCBiYWNrcG9ydCBoYXMgYmVlbiB0
ZXN0ZWQgYWdhaW5zdDoKKworKiBDUHl0aG9uIDIuNgorKiBDUHl0aG9uIDIuNworKiBDUHl0aG9u
IDMuMgorKiBQeVB5IDEuOQorCitDb250aW51b3VzIGludGVncmF0aW9uIHRlc3RpbmcgaXMgcHJv
dmlkZWQgYnkgYFRyYXZpcyBDSWBfLgorCitVbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEgY29t
cGF0YWJpbGl0eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KK3RoZSBgYF9f
d3JhcHBlZF9fYGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1
Y3RlZC4KK1NpbWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUg
YGBfX2NhbGxfX2BgIG1ldGhvZCBvZiBhCitidWlsdGluIGlzIGFsc28gYSBjb21wYXRhYmlsaXR5
IGlzc3Vlcy4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcworYmVsaWV2ZWQgdG8gYmUg
dW5pZm9ybSBiZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KKworSXNzdWVzCistLS0t
LS0KKworU291cmNlIGNvZGUgZm9yIGBgZnVuY3NpZ3NgYCBpcyBob3N0ZWQgb24gYEdpdEh1YmBf
LiBBbnkgYnVnIHJlcG9ydHMgb3IgZmVhdHVyZQorcmVxdWVzdHMgY2FuIGJlIG1hZGUgdXNpbmcg
R2l0SHViJ3MgYGlzc3VlcyBzeXN0ZW1gXy4gfGJ1aWxkX3N0YXR1c3wgfGNvdmVyYWdlfAorCitD
b3B5cmlnaHQKKy0tLS0tLS0tLQorCitUaGlzIGlzIGEgZGVyaXZlZCB3b3JrIG9mIENQeXRob24g
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgUFNGIExpY2Vuc2UKK0FncmVlbWVudGBfLiBUaGUgb3Jp
Z2luYWwgQ1B5dGhvbiBpbnNwZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMgYW5kCitkb2N1bWVu
dGF0aW9uIGFyZSB0aGUgY29weXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdhcmUgRm91bmRhdGlv
bi4gVGhlIGRlcml2ZWQKK3dvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBBcGFjaGUgTGlj
ZW5zZSBWZXJzaW9uIDIuMGBfLgorCisuLiBfQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjA6IGh0
dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisuLiBfR2l0SHViOiBodHRw
czovL2dpdGh1Yi5jb20vYWxpbGVzL2Z1bmNzaWdzCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVtZW50
OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25kaXRp
b25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgorLi4gX1RyYXZpcyBD
STogaHR0cDovL3RyYXZpcy1jaS5vcmcvCisuLiBfUmVhZCBUaGUgRG9jczogaHR0cDovL2Z1bmNz
aWdzLnJlYWR0aGVkb2NzLm9yZy8KKy4uIF9QRVAgMzYyOiBodHRwOi8vd3d3LnB5dGhvbi5vcmcv
ZGV2L3BlcHMvcGVwLTAzNjIvCisuLiBfaW5zcGVjdDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy8z
L2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2FsbGFibGVzLXdpdGgtdGhlLXNp
Z25hdHVyZS1vYmplY3QKKy4uIF9pc3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1Yi5jb20vYWxp
ZXMvZnVuY3NpZ3MvaXNzdWVzCisKKy4uIHxidWlsZF9zdGF0dXN8IGltYWdlOjogaHR0cHM6Ly9z
ZWN1cmUudHJhdmlzLWNpLm9yZy9hbGlsZXMvZnVuY3NpZ3MucG5nP2JyYW5jaD1tYXN0ZXIKKyAg
IDp0YXJnZXQ6IGh0dHA6Ly90cmF2aXMtY2kub3JnLyMhL2FsaWxlcy9mdW5jc2lncworICAgOmFs
dDogQ3VycmVudCBidWlsZCBzdGF0dXMKKworLi4gfGNvdmVyYWdlfCBpbWFnZTo6IGh0dHBzOi8v
Y292ZXJhbGxzLmlvL3JlcG9zL2FsaWxlcy9mdW5jc2lncy9iYWRnZS5wbmc/YnJhbmNoPW1hc3Rl
cgorICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vci9hbGlsZXMvZnVuY3NpZ3M/YnJh
bmNoPW1hc3RlcgorICAgOmFsdDogQ292ZXJhZ2Ugc3RhdHVzCisKKy4uIHxweXBpX3ZlcnNpb258
IGltYWdlOjogaHR0cHM6Ly9weXBpcC5pbi92L2Z1bmNzaWdzL2JhZGdlLnBuZworICAgOnRhcmdl
dDogaHR0cHM6Ly9jcmF0ZS5pby9wYWNrYWdlcy9mdW5jc2lncy8KKyAgIDphbHQ6IExhdGVzdCBQ
eVBJIHZlcnNpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9NYWtlZmlsZSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvZG9jcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2FiM2QxNmI0MDU5OWI0ZWZm
MjU2NmRmNjVmNmMwY2U1MGVhMjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9k
b2NzL01ha2VmaWxlCkBAIC0wLDAgKzEsMTUzIEBACisjIE1ha2VmaWxlIGZvciBTcGhpbnggZG9j
dW1lbnRhdGlvbgorIworCisjIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBj
b21tYW5kIGxpbmUuCitTUEhJTlhPUFRTICAgID0KK1NQSElOWEJVSUxEICAgPSBzcGhpbngtYnVp
bGQKK1BBUEVSICAgICAgICAgPQorQlVJTERESVIgICAgICA9IF9idWlsZAorCisjIEludGVybmFs
IHZhcmlhYmxlcy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQKK1BB
UEVST1BUX2xldHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhPUFRT
ICAgPSAtZCAkKEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElO
WE9QVFMpIC4KKyMgdGhlIGkxOG4gYnVpbGRlciBjYW5ub3Qgc2hhcmUgdGhlIGVudmlyb25tZW50
IGFuZCBkb2N0cmVlcyB3aXRoIHRoZSBvdGhlcnMKK0kxOE5TUEhJTlhPUFRTICA9ICQoUEFQRVJP
UFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgorCisuUEhPTlk6IGhlbHAgY2xlYW4gaHRtbCBk
aXJodG1sIHNpbmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAgZXB1
YiBsYXRleCBsYXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0IGdldHRl
eHQKKworaGVscDoKKwlAZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRhcmdldD4nIHdoZXJlIDx0
YXJnZXQ+IGlzIG9uZSBvZiIKKwlAZWNobyAiICBodG1sICAgICAgIHRvIG1ha2Ugc3RhbmRhbG9u
ZSBIVE1MIGZpbGVzIgorCUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1MIGZpbGVzIG5h
bWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMiCisJQGVjaG8gIiAgc2luZ2xlaHRtbCB0byBt
YWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmlsZSIKKwlAZWNobyAiICBwaWNrbGUgICAgIHRvIG1h
a2UgcGlja2xlIGZpbGVzIgorCUBlY2hvICIgIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZpbGVz
IgorCUBlY2hvICIgIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIEhUTUwgaGVs
cCBwcm9qZWN0IgorCUBlY2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBh
IHF0aGVscCBwcm9qZWN0IgorCUBlY2hvICIgIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZpbGVz
IGFuZCBhIERldmhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBlcHViICAgICAgIHRvIG1ha2UgYW4g
ZXB1YiIKKwlAZWNobyAiICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmlsZXMsIHlvdSBjYW4g
c2V0IFBBUEVSPWE0IG9yIFBBUEVSPWxldHRlciIKKwlAZWNobyAiICBsYXRleHBkZiAgIHRvIG1h
a2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgiCisJQGVjaG8gIiAg
dGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCisJQGVjaG8gIiAgbWFuICAgICAgICB0byBt
YWtlIG1hbnVhbCBwYWdlcyIKKwlAZWNobyAiICB0ZXhpbmZvICAgIHRvIG1ha2UgVGV4aW5mbyBm
aWxlcyIKKwlAZWNobyAiICBpbmZvICAgICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyBhbmQgcnVu
IHRoZW0gdGhyb3VnaCBtYWtlaW5mbyIKKwlAZWNobyAiICBnZXR0ZXh0ICAgIHRvIG1ha2UgUE8g
bWVzc2FnZSBjYXRhbG9ncyIKKwlAZWNobyAiICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4gb3ZlcnZp
ZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIKKwlAZWNobyAiICBsaW5r
Y2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgorCUBlY2hv
ICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1l
bnRhdGlvbiAoaWYgZW5hYmxlZCkiCisKK2NsZWFuOgorCS1ybSAtcmYgJChCVUlMRERJUikKKwor
aHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
UikvaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBh
cmUgaW4gJChCVUlMRERJUikvaHRtbC4iCisKK2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIg
ZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobworCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rp
cmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9zaW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAiQnVp
bGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4i
CisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS9waWNrbGUKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlv
dSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZpbGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJVSUxE
KSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvanNvbgorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIK
KworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9odG1saGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBu
b3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAgIi5o
aHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgorCSQo
U1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVs
cAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xs
ZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIgXAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUg
aW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtlIHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0aW9u
Z2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVscC9mdW5jc2lncy5xaGNwIgorCUBlY2hvICJUbyB2
aWV3IHRoZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIGFzc2lzdGFudCAtY29sbGVjdGlvbkZpbGUg
JChCVUlMRERJUikvcXRoZWxwL2Z1bmNzaWdzLnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJV
SUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBl
Y2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBm
aWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvZnVu
Y3NpZ3MiCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJUikvZGV2aGVscCAkJEhPTUUvLmxvY2Fs
L3NoYXJlL2RldmhlbHAvZnVuY3NpZ3MiCisJQGVjaG8gIiMgZGV2aGVscCIKKworZXB1YjoKKwkk
KFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZXB1Ygor
CUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGluICQoQlVJ
TERESVIpL2VwdWIuIgorCitsYXRleDoKKwkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNo
ZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgorCUBlY2hvICJS
dW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhlc2UgdGhyb3VnaCAocGRmKWxh
dGV4IiBcCisJICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0
b21hdGljYWxseSkuIgorCitsYXRleHBkZjoKKwkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8gIlJ1bm5pbmcgTGFUZVggZmls
ZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKKwkkKE1BS0UpIC1DICQoQlVJTERESVIpL2xhdGV4IGFs
bC1wZGYKKwlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQo
QlVJTERESVIpL2xhdGV4LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlz
aGVkLiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCisKK21hbjoKKwkk
KFNQSElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KKwlA
ZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChC
VUlMRERJUikvbWFuLiIKKwordGV4aW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkLiBUaGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4i
CisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJv
dWdoIG1ha2VpbmZvIiBcCisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8gdGhh
dCBhdXRvbWF0aWNhbGx5KS4iCisKK2luZm86CisJJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5mbyAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVubmluZyBUZXhp
bmZvIGZpbGVzIHRocm91Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxERElSKS90ZXhp
bmZvIGluZm8KKwlAZWNobyAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZpbGVzIGFyZSBp
biAkKEJVSUxERElSKS90ZXhpbmZvLiIKKworZ2V0dGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiBn
ZXR0ZXh0ICQoSTE4TlNQSElOWE9QVFMpICQoQlVJTERESVIpL2xvY2FsZQorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJChCVUlMRERJ
UikvbG9jYWxlLiIKKworY2hhbmdlczoKKwkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcworCUBlY2hvCisJQGVjaG8gIlRoZSBvdmVy
dmlldyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgorCitsaW5rY2hlY2s6CisJJChT
UEhJTlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlu
a2NoZWNrCisJQGVjaG8KKwlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55
IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAorCSAgICAgICJvciBpbiAkKEJVSUxERElS
KS9saW5rY2hlY2svb3V0cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJJChTUEhJTlhCVUlMRCkgLWIg
ZG9jdGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKKwlAZWNobyAiVGVz
dGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBc
CisJICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTFlMDBiY2Fm
YWYxMTA2YTc4Y2JiNzE4OGRhNTBlYzVjNWQ1ZTVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvcGFnZS5odG1sCkBAIC0wLDAgKzEsOSBAQAoreyUgZXh0
ZW5kcyAiIXBhZ2UuaHRtbCIgJX0KK3slIGJsb2NrIGV4dHJhaGVhZCAlfQorICAgIDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS9hbGlsZXMvZnVuY3NpZ3MiPgorICAgICAgICA8aW1nIHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IGJvcmRlcjogMDsiCisgICAg
ICAgICAgICAgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ2l0aHViL3JpYmJvbnMvZm9y
a21lX3JpZ2h0X3JlZF9hYTAwMDAucG5nIgorICAgICAgICAgICAgIGFsdD0iRm9yayBtZSBvbiBH
aXRIdWIiPgorICAgIDwvYT4KKyAgICB7eyBzdXBlcigpIH19Cit7JSBlbmRibG9jayAlfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZjUwOWVkMWVlOWE2YzkzZmMxODRmMWM4ZjIzNDZmMmQ5ODY2YTg0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvcGFnZS5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
ZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZTQxOTRjYzA1YzZhMDI3NDVjN2FiOGEwOTM3MTE2
MmY3NWRjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvY29uZi5weQpA
QCAtMCwwICsxLDI1MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KKyMKKyMgZnVuY3NpZ3MgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25maWd1cmF0aW9u
IGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1aWNrc3RhcnQgb24gRnJpIEFwciAyMCAyMDoy
Nzo1MiAyMDEyLgorIworIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0aGUgY3VycmVu
dCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWluaW5nIGRpci4KKyMKKyMgTm90ZSB0aGF0IG5v
dCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIHByZXNlbnQgaW4gdGhpcwor
IyBhdXRvZ2VuZXJhdGVkIGZpbGUuCisjCisjIEFsbCBjb25maWd1cmF0aW9uIHZhbHVlcyBoYXZl
IGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKKyMgc2VydmUgdG8gc2hv
dyB0aGUgZGVmYXVsdC4KKworaW1wb3J0IHN5cywgb3MKKworIyBJZiBleHRlbnNpb25zIChvciBt
b2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5
LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVj
dG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0
aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KK3N5cy5wYXRo
Lmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4uJykpCisKKyMgLS0gR2VuZXJhbCBjb25maWd1
cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEgbWluaW1hbCBTcGhpbnggdmVy
c2lvbiwgc3RhdGUgaXQgaGVyZS4KKyNuZWVkc19zcGhpbnggPSAnMS4wJworCisjIEFkZCBhbnkg
U3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4g
YmUgZXh0ZW5zaW9ucworIyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhpbnguZXh0Lion
KSBvciB5b3VyIGN1c3RvbSBvbmVzLgorZXh0ZW5zaW9ucyA9IFsnc3BoaW54LmV4dC5hdXRvZG9j
JywgJ3NwaGlueC5leHQuaW50ZXJzcGhpbngnLCAnc3BoaW54LmV4dC52aWV3Y29kZSddCisKKyMg
QWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gdGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRvIHRo
aXMgZGlyZWN0b3J5LgordGVtcGxhdGVzX3BhdGggPSBbJ190ZW1wbGF0ZXMnXQorCisjIFRoZSBz
dWZmaXggb2Ygc291cmNlIGZpbGVuYW1lcy4KK3NvdXJjZV9zdWZmaXggPSAnLnJzdCcKKworIyBU
aGUgZW5jb2Rpbmcgb2Ygc291cmNlIGZpbGVzLgorI3NvdXJjZV9lbmNvZGluZyA9ICd1dGYtOC1z
aWcnCisKKyMgVGhlIG1hc3RlciB0b2N0cmVlIGRvY3VtZW50LgorbWFzdGVyX2RvYyA9ICdpbmRl
eCcKKworIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0LgorcHJvamVjdCA9
ICdmdW5jc2lncycKK2NvcHlyaWdodCA9ICcyMDEzLCBBYXJvbiBJbGVzJworCisjIFRoZSB2ZXJz
aW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBs
YWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJp
b3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisj
IFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK2Zyb20gZnVuY3NpZ3MgaW1wb3J0IF9fdmVyc2lvbl9f
Cit2ZXJzaW9uID0gJy4nLmpvaW4oX192ZXJzaW9uX18uc3BsaXQoJy4nKVs6Ml0pCisjIFRoZSBm
dWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCityZWxlYXNlID0gX192
ZXJzaW9uX18KKworIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBT
cGhpbnguIFJlZmVyIHRvIGRvY3VtZW50YXRpb24KKyMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQg
bGFuZ3VhZ2VzLgorI2xhbmd1YWdlID0gTm9uZQorCisjIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBm
b3IgcmVwbGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCisjIG5v
bi1mYWxzZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgorI3RvZGF5ID0gJycKKyMgRWxzZSwgdG9k
YXlfZm10IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgorI3RvZGF5
X2ZtdCA9ICclQiAlZCwgJVknCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291
cmNlIGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdu
b3JlIHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9IFsn
X2J1aWxkJ10KKworIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFya3Vw
OiBgdGV4dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KKyNkZWZhdWx0X3JvbGUgPSBOb25l
CisKKyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3Nz
LXJlZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKworIyBJ
ZiB0cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwg
ZGVzY3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCisjYWRk
X21vZHVsZV9uYW1lcyA9IFRydWUKKworIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBtb2R1
bGVhdXRob3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQorIyBvdXRwdXQuIFRoZXkg
YXJlIGlnbm9yZWQgYnkgZGVmYXVsdC4KKyNzaG93X2F1dGhvcnMgPSBGYWxzZQorCisjIFRoZSBu
YW1lIG9mIHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNlLgor
cHlnbWVudHNfc3R5bGUgPSAnc3BoaW54JworCisjIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVz
IGZvciBtb2R1bGUgaW5kZXggc29ydGluZy4KKyNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10K
KworCisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhU
TUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyMgYSBs
aXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgoraHRtbF90aGVtZSA9ICdhZ29nbycKKworIyBUaGVtZSBv
cHRpb25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVs
IG9mIGEgdGhlbWUKKyMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Ygb3B0aW9ucyBhdmFpbGFibGUg
Zm9yIGVhY2ggdGhlbWUsIHNlZSB0aGUKKyMgZG9jdW1lbnRhdGlvbi4KKyNodG1sX3RoZW1lX29w
dGlvbnMgPSB7fQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSB0aGVtZXMg
aGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCisjaHRtbF90aGVtZV9wYXRoID0gW10K
KworIyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3VtZW50cy4gIElmIE5vbmUs
IGl0IGRlZmF1bHRzIHRvCisjICI8cHJvamVjdD4gdjxyZWxlYXNlPiBkb2N1bWVudGF0aW9uIi4K
KyNodG1sX3RpdGxlID0gTm9uZQorCisjIEEgc2hvcnRlciB0aXRsZSBmb3IgdGhlIG5hdmlnYXRp
b24gYmFyLiAgRGVmYXVsdCBpcyB0aGUgc2FtZSBhcyBodG1sX3RpdGxlLgorI2h0bWxfc2hvcnRf
dGl0bGUgPSBOb25lCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8g
dGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKKyMgb2YgdGhlIHNpZGViYXIuCisj
aHRtbF9sb2dvID0gTm9uZQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHdpdGhpbiB0
aGUgc3RhdGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQorIyBkb2NzLiAgVGhpcyBm
aWxlIHNob3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBiZWluZyAxNngxNiBvciAz
MngzMgorIyBwaXhlbHMgbGFyZ2UuCisjaHRtbF9mYXZpY29uID0gTm9uZQorCisjIEFkZCBhbnkg
cGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5bGUgc2hl
ZXRzKSBoZXJlLAorIyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUgY29waWVk
IGFmdGVyIHRoZSBidWlsdGluIHN0YXRpYyBmaWxlcywKKyMgc28gYSBmaWxlIG5hbWVkICJkZWZh
dWx0LmNzcyIgd2lsbCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4KK2h0bWxf
c3RhdGljX3BhdGggPSBbXQorCisjIElmIG5vdCAnJywgYSAnTGFzdCB1cGRhdGVkIG9uOicgdGlt
ZXN0YW1wIGlzIGluc2VydGVkIGF0IGV2ZXJ5IHBhZ2UgYm90dG9tLAorIyB1c2luZyB0aGUgZ2l2
ZW4gc3RyZnRpbWUgZm9ybWF0LgorI2h0bWxfbGFzdF91cGRhdGVkX2ZtdCA9ICclYiAlZCwgJVkn
CisKKyMgSWYgdHJ1ZSwgU21hcnR5UGFudHMgd2lsbCBiZSB1c2VkIHRvIGNvbnZlcnQgcXVvdGVz
IGFuZCBkYXNoZXMgdG8KKyMgdHlwb2dyYXBoaWNhbGx5IGNvcnJlY3QgZW50aXRpZXMuCisjaHRt
bF91c2Vfc21hcnR5cGFudHMgPSBUcnVlCisKKyMgQ3VzdG9tIHNpZGViYXIgdGVtcGxhdGVzLCBt
YXBzIGRvY3VtZW50IG5hbWVzIHRvIHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfc2lkZWJhcnMgPSB7
fQorCisjIEFkZGl0aW9uYWwgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHRvIHBh
Z2VzLCBtYXBzIHBhZ2UgbmFtZXMgdG8KKyMgdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9hZGRpdGlv
bmFsX3BhZ2VzID0ge30KKworIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4IGlzIGdlbmVyYXRl
ZC4KKyNodG1sX2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQorCisjIElmIGZhbHNlLCBubyBpbmRleCBp
cyBnZW5lcmF0ZWQuCisjaHRtbF91c2VfaW5kZXggPSBUcnVlCisKKyMgSWYgdHJ1ZSwgdGhlIGlu
ZGV4IGlzIHNwbGl0IGludG8gaW5kaXZpZHVhbCBwYWdlcyBmb3IgZWFjaCBsZXR0ZXIuCisjaHRt
bF9zcGxpdF9pbmRleCA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgbGlua3MgdG8gdGhlIHJlU1Qgc291
cmNlcyBhcmUgYWRkZWQgdG8gdGhlIHBhZ2VzLgorI2h0bWxfc2hvd19zb3VyY2VsaW5rID0gVHJ1
ZQorCisjIElmIHRydWUsICJDcmVhdGVkIHVzaW5nIFNwaGlueCIgaXMgc2hvd24gaW4gdGhlIEhU
TUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCisjaHRtbF9zaG93X3NwaGlueCA9IFRydWUKKwor
IyBJZiB0cnVlLCAiKEMpIENvcHlyaWdodCAuLi4iIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rl
ci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19jb3B5cmlnaHQgPSBUcnVlCisKKyMgSWYg
dHJ1ZSwgYW4gT3BlblNlYXJjaCBkZXNjcmlwdGlvbiBmaWxlIHdpbGwgYmUgb3V0cHV0LCBhbmQg
YWxsIHBhZ2VzIHdpbGwKKyMgY29udGFpbiBhIDxsaW5rPiB0YWcgcmVmZXJyaW5nIHRvIGl0LiAg
VGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uIG11c3QgYmUgdGhlCisjIGJhc2UgVVJMIGZyb20gd2hp
Y2ggdGhlIGZpbmlzaGVkIEhUTUwgaXMgc2VydmVkLgorI2h0bWxfdXNlX29wZW5zZWFyY2ggPSAn
JworCisjIFRoaXMgaXMgdGhlIGZpbGUgbmFtZSBzdWZmaXggZm9yIEhUTUwgZmlsZXMgKGUuZy4g
Ii54aHRtbCIpLgorI2h0bWxfZmlsZV9zdWZmaXggPSBOb25lCisKKyMgT3V0cHV0IGZpbGUgYmFz
ZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRlci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ2Z1bmNz
aWdzZG9jJworCisKKyMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2xhdGV4X2VsZW1lbnRzID0g
eworIyBUaGUgcGFwZXIgc2l6ZSAoJ2xldHRlcnBhcGVyJyBvciAnYTRwYXBlcicpLgorIydwYXBl
cnNpemUnOiAnbGV0dGVycGFwZXInLAorCisjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzExcHQn
IG9yICcxMnB0JykuCisjJ3BvaW50c2l6ZSc6ICcxMHB0JywKKworIyBBZGRpdGlvbmFsIHN0dWZm
IGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCisjJ3ByZWFtYmxlJzogJycsCit9CisKKyMgR3JvdXBp
bmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMg
KHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwgZG9jdW1lbnRj
bGFzcyBbaG93dG8vbWFudWFsXSkuCitsYXRleF9kb2N1bWVudHMgPSBbCisgICgnaW5kZXgnLCAn
ZnVuY3NpZ3MudGV4JywgJ2Z1bmNzaWdzIERvY3VtZW50YXRpb24nLAorICAgJ0Fhcm9uIElsZXMn
LCAnbWFudWFsJyksCitdCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUg
dG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3Agb2YKKyMgdGhlIHRpdGxlIHBh
Z2UuCisjbGF0ZXhfbG9nbyA9IE5vbmUKKworIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBpZiB0
aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAorIyBub3QgY2hh
cHRlcnMuCisjbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IHBhZ2Ug
cmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KKyNsYXRleF9zaG93X3BhZ2VyZWZzID0g
RmFsc2UKKworIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlu
a3MuCisjbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKKworIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFz
IGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMgPSBbXQorCisj
IElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2xhdGV4X2RvbWFpbl9p
bmRpY2VzID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5
IHBlciBtYW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBu
YW1lLCBkZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0g
WworICAgICgnaW5kZXgnLCAnZnVuY3NpZ3MnLCAnZnVuY3NpZ3MgRG9jdW1lbnRhdGlvbicsCisg
ICAgIFsnQWFyb24gSWxlcyddLCAxKQorXQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3Nl
cyBhZnRlciBleHRlcm5hbCBsaW5rcy4KKyNtYW5fc2hvd191cmxzID0gRmFsc2UKKworCisjIC0t
IE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8g
VGV4aW5mbyBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJn
ZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwKKyMgIGRpciBtZW51IGVudHJ5LCBkZXNjcmlwdGlvbiwg
Y2F0ZWdvcnkpCit0ZXhpbmZvX2RvY3VtZW50cyA9IFsKKyAgKCdpbmRleCcsICdmdW5jc2lncycs
ICdmdW5jc2lncyBEb2N1bWVudGF0aW9uJywKKyAgICdBYXJvbiBJbGVzJywgJ2Z1bmNzaWdzJywg
J09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICdNaXNjZWxsYW5lb3VzJyks
CitdCisKKyMgRG9jdW1lbnRzIHRvIGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFs
cy4KKyN0ZXhpbmZvX2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5k
ZXggaXMgZ2VuZXJhdGVkLgorI3RleGluZm9fZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMgSG93
IHRvIGRpc3BsYXkgVVJMIGFkZHJlc3NlczogJ2Zvb3Rub3RlJywgJ25vJywgb3IgJ2lubGluZScu
CisjdGV4aW5mb19zaG93X3VybHMgPSAnZm9vdG5vdGUnCisKKworIyBFeGFtcGxlIGNvbmZpZ3Vy
YXRpb24gZm9yIGludGVyc3BoaW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJkIGxpYnJh
cnkuCitpbnRlcnNwaGlueF9tYXBwaW5nID0geworICAgICAgICAncHl0aG9uMyc6ICgnaHR0cDov
L2RvY3MucHl0aG9uLm9yZy9weTNrJywgTm9uZSksCisgICAgICAgICdweXRob24nOiAoJ2h0dHA6
Ly9kb2NzLnB5dGhvbi5vcmcvJywgTm9uZSkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
ZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVkMGY0MmY5MzY4Yjc2ZDdlZjU4YmM5MDg3NDRkODcyNDNjMTQ4NTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0CkBAIC0wLDAgKzEsMzE1IEBACisuLiBm
dW5jc2lncyBkb2N1bWVudGF0aW9uIG1hc3RlciBmaWxlLCBjcmVhdGVkIGJ5CisgICBzcGhpbngt
cXVpY2tzdGFydCBvbiBGcmkgQXByIDIwIDIwOjI3OjUyIDIwMTIuCisgICBZb3UgY2FuIGFkYXB0
IHRoaXMgZmlsZSBjb21wbGV0ZWx5IHRvIHlvdXIgbGlraW5nLCBidXQgaXQgc2hvdWxkIGF0IGxl
YXN0CisgICBjb250YWluIHRoZSByb290IGB0b2N0cmVlYCBkaXJlY3RpdmUuCisKK0ludHJvZHVj
aW5nIGZ1bmNzaWdzCis9PT09PT09PT09PT09PT09PT09PQorCitUaGUgRnVuY3NpZ3MgUGFja2Fn
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKmZ1bmNzaWdzKiBpcyBhIGJhY2twb3J0IG9mIHRo
ZSBgUEVQIDM2MmBfIGZ1bmN0aW9uIHNpZ25hdHVyZSBmZWF0dXJlcyBmcm9tCitQeXRob24gMy4z
J3MgYGluc3BlY3RgXyBtb2R1bGUuIFRoZSBiYWNrcG9ydCBpcyBjb21wYXRpYmxlIHdpdGggUHl0
aG9uIDIuNiwgMi43CithcyB3ZWxsIGFzIDMuMiBhbmQgdXAuCisKKy4uIF9QRVAgMzYyOiBodHRw
Oi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzNjIvCisuLiBfaW5zcGVjdDogaHR0cDov
L2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2Fs
bGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1vYmplY3QKKworQ29tcGF0YWJpbGl0eQorYGBgYGBg
YGBgYGBgYAorCitUaGUgKmZ1bmNzaWdzKiBiYWNrcG9ydCBoYXMgYmVlbiB0ZXN0ZWQgYWdhaW5z
dDoKKworKiBDUHl0aG9uIDIuNgorKiBDUHl0aG9uIDIuNworKiBDUHl0aG9uIDMuMgorKiBQeVB5
IDEuOQorCitDb250aW51b3VzIGludGVncmF0aW9uIHRlc3RpbmcgaXMgcHJvdmlkZWQgYnkgYFRy
YXZpcyBDSWBfLgorCitVbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEgY29tcGF0YWJpbGl0eSBp
c3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KK3RoZSBgYF9fd3JhcHBlZF9fYGAg
cHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4KK1NpbWls
aWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBfX2NhbGxfX2Bg
IG1ldGhvZCBvZiBhCitidWlsdGluIGlzIGFsc28gYSBjb21wYXRhYmlsaXR5IGlzc3Vlcy4gIE90
aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcworYmVsaWV2ZWQgdG8gYmUgdW5pZm9ybSBiZXR3
ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KKworLi4gX1RyYXZpcyBDSTogaHR0cDovL3Ry
YXZpcy1jaS5vcmcvCisKK0lzc3VlcworYGBgYGBgCisKK1NvdXJjZSBjb2RlIGZvciAqZnVuY3Np
Z3MqIGlzIGhvc3RlZCBvbiBgR2l0SHViYF8uIEFueSBidWcgcmVwb3J0cyBvciBmZWF0dXJlCity
ZXF1ZXN0cyBjYW4gYmUgbWFkZSB1c2luZyBHaXRIdWIncyBgaXNzdWVzIHN5c3RlbWBfLgorCisu
LiBfR2l0SHViOiBodHRwczovL2dpdGh1Yi5jb20vYWxpbGVzL2Z1bmNzaWdzCisuLiBfaXNzdWVz
IHN5c3RlbTogaHR0cHM6Ly9naXRodWIuY29tL2FsaWVzL2Z1bmNzaWdzL2lzc3VlcworCitJbnRy
b3NwZWN0aW5nIGNhbGxhYmxlcyB3aXRoIHRoZSBTaWduYXR1cmUgb2JqZWN0CistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIG5vdGU6OgorCisg
ICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRpcmVjdCByZXBvZHVjdGlvbiBv
ZiB0aGUgUHl0aG9uCisgICBzdGFuZGFyZCBsaWJyYXJ5IGRvY3VtZW50YXRpb24gZm9yIHRoZSBp
bnNwZWN0IG1vZHVsZS4KKworVGhlIFNpZ25hdHVyZSBvYmplY3QgcmVwcmVzZW50cyB0aGUgY2Fs
bCBzaWduYXR1cmUgb2YgYSBjYWxsYWJsZSBvYmplY3QgYW5kIGl0cworcmV0dXJuIGFubm90YXRp
b24uICBUbyByZXRyaWV2ZSBhIFNpZ25hdHVyZSBvYmplY3QsIHVzZSB0aGUgOmZ1bmM6YHNpZ25h
dHVyZWAKK2Z1bmN0aW9uLgorCisuLiBmdW5jdGlvbjo6IHNpZ25hdHVyZShjYWxsYWJsZSkKKwor
ICAgUmV0dXJuIGEgOmNsYXNzOmBTaWduYXR1cmVgIG9iamVjdCBmb3IgdGhlIGdpdmVuIGBgY2Fs
bGFibGVgYDo6CisKKyAgICAgID4+PiBmcm9tIGluc3BlY3QgaW1wb3J0IHNpZ25hdHVyZQorICAg
ICAgPj4+IGRlZiBmb28oYSwgKiwgYjppbnQsICoqa3dhcmdzKToKKyAgICAgIC4uLiAgICAgcGFz
cworCisgICAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKworICAgICAgPj4+IHN0cihzaWcp
CisgICAgICAnKGEsICosIGI6aW50LCAqKmt3YXJncyknCisKKyAgICAgID4+PiBzdHIoc2lnLnBh
cmFtZXRlcnNbJ2InXSkKKyAgICAgICdiOmludCcKKworICAgICAgPj4+IHNpZy5wYXJhbWV0ZXJz
WydiJ10uYW5ub3RhdGlvbgorICAgICAgPGNsYXNzICdpbnQnPgorCisgICBBY2NlcHRzIGEgd2lk
ZSByYW5nZSBvZiBweXRob24gY2FsbGFibGVzLCBmcm9tIHBsYWluIGZ1bmN0aW9ucyBhbmQgY2xh
c3NlcyB0bworICAgOmZ1bmM6YGZ1bmN0b29scy5wYXJ0aWFsYCBvYmplY3RzLgorCisgICAuLiBu
b3RlOjoKKworICAgICAgU29tZSBjYWxsYWJsZXMgbWF5IG5vdCBiZSBpbnRyb3NwZWN0YWJsZSBp
biBjZXJ0YWluIGltcGxlbWVudGF0aW9ucyBvZgorICAgICAgUHl0aG9uLiAgRm9yIGV4YW1wbGUs
IGluIENQeXRob24sIGJ1aWx0LWluIGZ1bmN0aW9ucyBkZWZpbmVkIGluIEMgcHJvdmlkZQorICAg
ICAgbm8gbWV0YWRhdGEgYWJvdXQgdGhlaXIgYXJndW1lbnRzLgorCisKKy4uIGNsYXNzOjogU2ln
bmF0dXJlCisKKyAgIEEgU2lnbmF0dXJlIG9iamVjdCByZXByZXNlbnRzIHRoZSBjYWxsIHNpZ25h
dHVyZSBvZiBhIGZ1bmN0aW9uIGFuZCBpdHMgcmV0dXJuCisgICBhbm5vdGF0aW9uLiAgRm9yIGVh
Y2ggcGFyYW1ldGVyIGFjY2VwdGVkIGJ5IHRoZSBmdW5jdGlvbiBpdCBzdG9yZXMgYQorICAgOmNs
YXNzOmBQYXJhbWV0ZXJgIG9iamVjdCBpbiBpdHMgOmF0dHI6YHBhcmFtZXRlcnNgIGNvbGxlY3Rp
b24uCisKKyAgIFNpZ25hdHVyZSBvYmplY3RzIGFyZSAqaW1tdXRhYmxlKi4gIFVzZSA6bWV0aDpg
U2lnbmF0dXJlLnJlcGxhY2VgIHRvIG1ha2UgYQorICAgbW9kaWZpZWQgY29weS4KKworICAgLi4g
YXR0cmlidXRlOjogU2lnbmF0dXJlLmVtcHR5CisKKyAgICAgIEEgc3BlY2lhbCBjbGFzcy1sZXZl
bCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNlIG9mIGEgcmV0dXJuIGFubm90YXRpb24uCisKKyAg
IC4uIGF0dHJpYnV0ZTo6IFNpZ25hdHVyZS5wYXJhbWV0ZXJzCisKKyAgICAgIEFuIG9yZGVyZWQg
bWFwcGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byB0aGUgY29ycmVzcG9uZGluZworICAgICAg
OmNsYXNzOmBQYXJhbWV0ZXJgIG9iamVjdHMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFNpZ25hdHVy
ZS5yZXR1cm5fYW5ub3RhdGlvbgorCisgICAgICBUaGUgInJldHVybiIgYW5ub3RhdGlvbiBmb3Ig
dGhlIGNhbGxhYmxlLiAgSWYgdGhlIGNhbGxhYmxlIGhhcyBubyAicmV0dXJuIgorICAgICAgYW5u
b3RhdGlvbiwgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDphdHRyOmBTaWduYXR1cmUuZW1wdHlg
LgorCisgICAuLiBtZXRob2Q6OiBTaWduYXR1cmUuYmluZCgqYXJncywgKiprd2FyZ3MpCisKKyAg
ICAgIENyZWF0ZSBhIG1hcHBpbmcgZnJvbSBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFyZ3VtZW50
cyB0byBwYXJhbWV0ZXJzLgorICAgICAgUmV0dXJucyA6Y2xhc3M6YEJvdW5kQXJndW1lbnRzYCBp
ZiBgYCphcmdzYGAgYW5kIGBgKiprd2FyZ3NgYCBtYXRjaCB0aGUKKyAgICAgIHNpZ25hdHVyZSwg
b3IgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYC4KKworICAgLi4gbWV0aG9kOjogU2lnbmF0dXJl
LmJpbmRfcGFydGlhbCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAgIFdvcmtzIHRoZSBzYW1lIHdh
eSBhcyA6bWV0aDpgU2lnbmF0dXJlLmJpbmRgLCBidXQgYWxsb3dzIHRoZSBvbWlzc2lvbiBvZgor
ICAgICAgc29tZSByZXF1aXJlZCBhcmd1bWVudHMgKG1pbWljcyA6ZnVuYzpgZnVuY3Rvb2xzLnBh
cnRpYWxgIGJlaGF2aW9yLikKKyAgICAgIFJldHVybnMgOmNsYXNzOmBCb3VuZEFyZ3VtZW50c2As
IG9yIHJhaXNlcyBhIDpleGM6YFR5cGVFcnJvcmAgaWYgdGhlCisgICAgICBwYXNzZWQgYXJndW1l
bnRzIGRvIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLgorCisgICAuLiBtZXRob2Q6OiBTaWduYXR1
cmUucmVwbGFjZSgqWywgcGFyYW1ldGVyc11bLCByZXR1cm5fYW5ub3RhdGlvbl0pCisKKyAgICAg
IENyZWF0ZSBhIG5ldyBTaWduYXR1cmUgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGluc3RhbmNlIHJl
cGxhY2Ugd2FzIGludm9rZWQKKyAgICAgIG9uLiAgSXQgaXMgcG9zc2libGUgdG8gcGFzcyBkaWZm
ZXJlbnQgYGBwYXJhbWV0ZXJzYGAgYW5kL29yCisgICAgICBgYHJldHVybl9hbm5vdGF0aW9uYGAg
dG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydGllcyBvZiB0aGUgYmFzZQorICAg
ICAgc2lnbmF0dXJlLiAgVG8gcmVtb3ZlIHJldHVybl9hbm5vdGF0aW9uIGZyb20gdGhlIGNvcGll
ZCBTaWduYXR1cmUsIHBhc3MgaW4KKyAgICAgIDphdHRyOmBTaWduYXR1cmUuZW1wdHlgLgorCisg
ICAgICA6OgorCisgICAgICAgICA+Pj4gZGVmIHRlc3QoYSwgYik6CisgICAgICAgICAuLi4gICAg
IHBhc3MKKyAgICAgICAgID4+PiBzaWcgPSBzaWduYXR1cmUodGVzdCkKKyAgICAgICAgID4+PiBu
ZXdfc2lnID0gc2lnLnJlcGxhY2UocmV0dXJuX2Fubm90YXRpb249Im5ldyByZXR1cm4gYW5ubyIp
CisgICAgICAgICA+Pj4gc3RyKG5ld19zaWcpCisgICAgICAgICAiKGEsIGIpIC0+ICduZXcgcmV0
dXJuIGFubm8nIgorCisKKy4uIGNsYXNzOjogUGFyYW1ldGVyCisKKyAgIFBhcmFtZXRlciBvYmpl
Y3RzIGFyZSAqaW1tdXRhYmxlKi4gIEluc3RlYWQgb2YgbW9kaWZ5aW5nIGEgUGFyYW1ldGVyIG9i
amVjdCwKKyAgIHlvdSBjYW4gdXNlIDptZXRoOmBQYXJhbWV0ZXIucmVwbGFjZWAgdG8gY3JlYXRl
IGEgbW9kaWZpZWQgY29weS4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmVtcHR5CisK
KyAgICAgIEEgc3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNlIG9m
IGRlZmF1bHQgdmFsdWVzIGFuZAorICAgICAgYW5ub3RhdGlvbnMuCisKKyAgIC4uIGF0dHJpYnV0
ZTo6IFBhcmFtZXRlci5uYW1lCisKKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYXMg
YSBzdHJpbmcuICBNdXN0IGJlIGEgdmFsaWQgcHl0aG9uIGlkZW50aWZpZXIKKyAgICAgIG5hbWUg
KHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBgYFBPU0lUSU9OQUxfT05MWWBgIHBhcmFtZXRlcnMsIHdo
aWNoIGNhbiBoYXZlCisgICAgICBpdCBzZXQgdG8gYGBOb25lYGApLgorCisgICAuLiBhdHRyaWJ1
dGU6OiBQYXJhbWV0ZXIuZGVmYXVsdAorCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhl
IHBhcmFtZXRlci4gIElmIHRoZSBwYXJhbWV0ZXIgaGFzIG5vIGRlZmF1bHQKKyAgICAgIHZhbHVl
LCB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gOmF0dHI6YFBhcmFtZXRlci5lbXB0eWAuCisKKyAg
IC4uIGF0dHJpYnV0ZTo6IFBhcmFtZXRlci5hbm5vdGF0aW9uCisKKyAgICAgIFRoZSBhbm5vdGF0
aW9uIGZvciB0aGUgcGFyYW1ldGVyLiAgSWYgdGhlIHBhcmFtZXRlciBoYXMgbm8gYW5ub3RhdGlv
biwKKyAgICAgIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byA6YXR0cjpgUGFyYW1ldGVyLmVtcHR5
YC4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmtpbmQKKworICAgICAgRGVzY3JpYmVz
IGhvdyBhcmd1bWVudCB2YWx1ZXMgYXJlIGJvdW5kIHRvIHRoZSBwYXJhbWV0ZXIuICBQb3NzaWJs
ZSB2YWx1ZXMKKyAgICAgIChhY2Nlc3NpYmxlIHZpYSA6Y2xhc3M6YFBhcmFtZXRlcmAsIGxpa2Ug
YGBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZYGApOgorCisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg
ICAgICB8ICAgIE5hbWUgICAgICAgICAgICAgICAgfCBNZWFuaW5nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8CisgICAgICArPT09PT09PT09PT09PT09PT09PT09PT09Kz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgICAgICB8ICpQ
T1NJVElPTkFMX09OTFkqICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEgcG9zaXRp
b25hbCAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmd1bWVudC4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gaGFzIG5vIGV4cGxp
Y2l0IHN5bnRheCBmb3IgZGVmaW5pbmcgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgfCBwb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVycywgYnV0IG1hbnkgYnVpbHQtaW58CisgICAg
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhbmQgZXh0ZW5zaW9uIG1vZHVsZSBmdW5jdGlv
bnMgKGVzcGVjaWFsbHkgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0aG9z
ZSB0aGF0IGFjY2VwdCBvbmx5IG9uZSBvciB0d28gcGFyYW1ldGVycyl8CisgICAgICB8ICAgICAg
ICAgICAgICAgICAgICAgICAgfCBhY2NlcHQgdGhlbS4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpQT1NJVElPTkFMX09S
X0tFWVdPUkQqfCBWYWx1ZSBtYXkgYmUgc3VwcGxpZWQgYXMgZWl0aGVyIGEga2V5d29yZCBvciB8
CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3NpdGlvbmFsIGFyZ3VtZW50ICh0
aGlzIGlzIHRoZSBzdGFuZGFyZCAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg
fCBiaW5kaW5nIGJlaGF2aW91ciBmb3IgZnVuY3Rpb25zIGltcGxlbWVudGVkICB8CisgICAgICB8
ICAgICAgICAgICAgICAgICAgICAgICAgfCBpbiBQeXRob24uKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpWQVJfUE9T
SVRJT05BTCogICAgICAgfCBBIHR1cGxlIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIHRoYXQgYXJl
bid0ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBib3VuZCB0byBhbnkgb3Ro
ZXIgcGFyYW1ldGVyLiBUaGlzICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgICAgfCBjb3JyZXNwb25kcyB0byBhIGBgKmFyZ3NgYCBwYXJhbWV0ZXIgaW4gYSAgICB8Cisg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24gZGVmaW5pdGlv
bi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpL
RVlXT1JEX09OTFkqICAgICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEga2V5d29y
ZCBhcmd1bWVudC58CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBLZXl3b3JkIG9u
bHkgcGFyYW1ldGVycyBhcmUgdGhvc2Ugd2hpY2ggICAgICB8CisgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgfCBhcHBlYXIgYWZ0ZXIgYSBgYCpgYCBvciBgYCphcmdzYGAgZW50cnkgaW4g
YSB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24gZGVm
aW5pdGlvbi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAg
ICB8ICpWQVJfS0VZV09SRCogICAgICAgICAgfCBBIGRpY3Qgb2Yga2V5d29yZCBhcmd1bWVudHMg
dGhhdCBhcmVuJ3QgYm91bmR8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0byBh
bnkgb3RoZXIgcGFyYW1ldGVyLiBUaGlzIGNvcnJlc3BvbmRzIHRvIGF8CisgICAgICB8ICAgICAg
ICAgICAgICAgICAgICAgICAgfCBgYCoqa3dhcmdzYGAgcGFyYW1ldGVyIGluIGEgUHl0aG9uIGZ1
bmN0aW9uICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbml0aW9uLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
CisKKyAgICAgIEV4YW1wbGU6IHByaW50IGFsbCBrZXl3b3JkLW9ubHkgYXJndW1lbnRzIHdpdGhv
dXQgZGVmYXVsdCB2YWx1ZXM6OgorCisgICAgICAgICA+Pj4gZGVmIGZvbyhhLCBiLCAqLCBjLCBk
PTEwKToKKyAgICAgICAgIC4uLiAgICAgcGFzcworCisgICAgICAgICA+Pj4gc2lnID0gc2lnbmF0
dXJlKGZvbykKKyAgICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFsdWVz
KCk6CisgICAgICAgICAuLi4gICAgIGlmIChwYXJhbS5raW5kID09IHBhcmFtLktFWVdPUkRfT05M
WSBhbmQKKyAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLmRlZmF1bHQg
aXMgcGFyYW0uZW1wdHkpOgorICAgICAgICAgLi4uICAgICAgICAgcHJpbnQoJ1BhcmFtZXRlcjon
LCBwYXJhbSkKKyAgICAgICAgIFBhcmFtZXRlcjogYworCisgICAuLiBtZXRob2Q6OiBQYXJhbWV0
ZXIucmVwbGFjZSgqWywgbmFtZV1bLCBraW5kXVssIGRlZmF1bHRdWywgYW5ub3RhdGlvbl0pCisK
KyAgICAgIENyZWF0ZSBhIG5ldyBQYXJhbWV0ZXIgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGluc3Rh
bmNlIHJlcGxhY2VkIHdhcyBpbnZva2VkCisgICAgICBvbi4gIFRvIG92ZXJyaWRlIGEgOmNsYXNz
OmBQYXJhbWV0ZXJgIGF0dHJpYnV0ZSwgcGFzcyB0aGUgY29ycmVzcG9uZGluZworICAgICAgYXJn
dW1lbnQuICBUbyByZW1vdmUgYSBkZWZhdWx0IHZhbHVlIG9yL2FuZCBhbiBhbm5vdGF0aW9uIGZy
b20gYQorICAgICAgUGFyYW1ldGVyLCBwYXNzIDphdHRyOmBQYXJhbWV0ZXIuZW1wdHlgLgorCisg
ICAgICA6OgorCisgICAgICAgICA+Pj4gZnJvbSBpbnNwZWN0IGltcG9ydCBQYXJhbWV0ZXIKKyAg
ICAgICAgID4+PiBwYXJhbSA9IFBhcmFtZXRlcignZm9vJywgUGFyYW1ldGVyLktFWVdPUkRfT05M
WSwgZGVmYXVsdD00MikKKyAgICAgICAgID4+PiBzdHIocGFyYW0pCisgICAgICAgICAnZm9vPTQy
JworCisgICAgICAgICA+Pj4gc3RyKHBhcmFtLnJlcGxhY2UoKSkgIyBXaWxsIGNyZWF0ZSBhIHNo
YWxsb3cgY29weSBvZiAncGFyYW0nCisgICAgICAgICAnZm9vPTQyJworCisgICAgICAgICA+Pj4g
c3RyKHBhcmFtLnJlcGxhY2UoZGVmYXVsdD1QYXJhbWV0ZXIuZW1wdHksIGFubm90YXRpb249J3Nw
YW0nKSkKKyAgICAgICAgICJmb286J3NwYW0nIgorCisKKy4uIGNsYXNzOjogQm91bmRBcmd1bWVu
dHMKKworICAgUmVzdWx0IG9mIGEgOm1ldGg6YFNpZ25hdHVyZS5iaW5kYCBvciA6bWV0aDpgU2ln
bmF0dXJlLmJpbmRfcGFydGlhbGAgY2FsbC4KKyAgIEhvbGRzIHRoZSBtYXBwaW5nIG9mIGFyZ3Vt
ZW50cyB0byB0aGUgZnVuY3Rpb24ncyBwYXJhbWV0ZXJzLgorCisgICAuLiBhdHRyaWJ1dGU6OiBC
b3VuZEFyZ3VtZW50cy5hcmd1bWVudHMKKworICAgICAgQW4gb3JkZXJlZCwgbXV0YWJsZSBtYXBw
aW5nICg6Y2xhc3M6YGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0YCkgb2YKKyAgICAgIHBhcmFtZXRl
cnMnIG5hbWVzIHRvIGFyZ3VtZW50cycgdmFsdWVzLiAgQ29udGFpbnMgb25seSBleHBsaWNpdGx5
IGJvdW5kCisgICAgICBhcmd1bWVudHMuICBDaGFuZ2VzIGluIDphdHRyOmBhcmd1bWVudHNgIHdp
bGwgcmVmbGVjdCBpbiA6YXR0cjpgYXJnc2AgYW5kCisgICAgICA6YXR0cjpga3dhcmdzYC4KKwor
ICAgICAgU2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA6YXR0cjpgU2lnbmF0dXJl
LnBhcmFtZXRlcnNgIGZvciBhbnkKKyAgICAgIGFyZ3VtZW50IHByb2Nlc3NpbmcgcHVycG9zZXMu
CisKKyAgICAgIC4uIG5vdGU6OgorCisgICAgICAgICBBcmd1bWVudHMgZm9yIHdoaWNoIDptZXRo
OmBTaWduYXR1cmUuYmluZGAgb3IKKyAgICAgICAgIDptZXRoOmBTaWduYXR1cmUuYmluZF9wYXJ0
aWFsYCByZWxpZWQgb24gYSBkZWZhdWx0IHZhbHVlIGFyZSBza2lwcGVkLgorICAgICAgICAgSG93
ZXZlciwgaWYgbmVlZGVkLCBpdCBpcyBlYXN5IHRvIGluY2x1ZGUgdGhlbS4KKworICAgICAgOjoK
KworICAgICAgICA+Pj4gZGVmIGZvbyhhLCBiPTEwKToKKyAgICAgICAgLi4uICAgICBwYXNzCisK
KyAgICAgICAgPj4+IHNpZyA9IHNpZ25hdHVyZShmb28pCisgICAgICAgID4+PiBiYSA9IHNpZy5i
aW5kKDUpCisKKyAgICAgICAgPj4+IGJhLmFyZ3MsIGJhLmt3YXJncworICAgICAgICAoKDUsKSwg
e30pCisKKyAgICAgICAgPj4+IGZvciBwYXJhbSBpbiBzaWcucGFyYW1ldGVycy52YWx1ZXMoKToK
KyAgICAgICAgLi4uICAgICBpZiBwYXJhbS5uYW1lIG5vdCBpbiBiYS5hcmd1bWVudHM6CisgICAg
ICAgIC4uLiAgICAgICAgIGJhLmFyZ3VtZW50c1twYXJhbS5uYW1lXSA9IHBhcmFtLmRlZmF1bHQK
KworICAgICAgICA+Pj4gYmEuYXJncywgYmEua3dhcmdzCisgICAgICAgICgoNSwgMTApLCB7fSkK
KworCisgICAuLiBhdHRyaWJ1dGU6OiBCb3VuZEFyZ3VtZW50cy5hcmdzCisKKyAgICAgIEEgdHVw
bGUgb2YgcG9zaXRpb25hbCBhcmd1bWVudHMgdmFsdWVzLiAgRHluYW1pY2FsbHkgY29tcHV0ZWQg
ZnJvbSB0aGUKKyAgICAgIDphdHRyOmBhcmd1bWVudHNgIGF0dHJpYnV0ZS4KKworICAgLi4gYXR0
cmlidXRlOjogQm91bmRBcmd1bWVudHMua3dhcmdzCisKKyAgICAgIEEgZGljdCBvZiBrZXl3b3Jk
IGFyZ3VtZW50cyB2YWx1ZXMuICBEeW5hbWljYWxseSBjb21wdXRlZCBmcm9tIHRoZQorICAgICAg
OmF0dHI6YGFyZ3VtZW50c2AgYXR0cmlidXRlLgorCisgICBUaGUgOmF0dHI6YGFyZ3NgIGFuZCA6
YXR0cjpga3dhcmdzYCBwcm9wZXJ0aWVzIGNhbiBiZSB1c2VkIHRvIGludm9rZQorICAgZnVuY3Rp
b25zOjoKKworICAgICAgZGVmIHRlc3QoYSwgKiwgYik6CisgICAgICAgICAuLi4KKworICAgICAg
c2lnID0gc2lnbmF0dXJlKHRlc3QpCisgICAgICBiYSA9IHNpZy5iaW5kKDEwLCBiPTIwKQorICAg
ICAgdGVzdCgqYmEuYXJncywgKipiYS5rd2FyZ3MpCisKKworLi4gc2VlYWxzbzo6CisKKyAgIDpw
ZXA6YDM2MmAgLSBGdW5jdGlvbiBTaWduYXR1cmUgT2JqZWN0LgorICAgICAgVGhlIGRldGFpbGVk
IHNwZWNpZmljYXRpb24sIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYW5kIGV4YW1wbGVzLgorCitD
b3B5cmlnaHQKKy0tLS0tLS0tLQorCisqZnVuY3NpZ3MqIGlzIGEgZGVyaXZlZCB3b3JrIG9mIENQ
eXRob24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgUFNGIExpY2Vuc2UKK0FncmVlbWVudGBfLiBU
aGUgb3JpZ2luYWwgQ1B5dGhvbiBpbnNwZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMgYW5kCitk
b2N1bWVudGF0aW9uIGFyZSB0aGUgY29weXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdhcmUgRm91
bmRhdGlvbi4gVGhlIGRlcml2ZWQKK3dvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBBcGFj
aGUgTGljZW5zZSBWZXJzaW9uIDIuMGBfLgorCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVtZW50OiBo
dHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25kaXRpb25z
LWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgorLi4gX0FwYWNoZSBMaWNl
bnNlIFZlcnNpb24gMi4wOiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIu
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYTEyN2UzMDNmZmJkODlj
ZGY4ZmY2Y2FjYmIyNTM2MDYxYzNmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L2RvY3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9kb2NzL01ha2VmaWxlCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL2NvbmYucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL2RvY3MvaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdz
L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy9fX2luaXRfXy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZDJmNDdiMWQ0ZGY2ZWMyYWZmZTZmNjc4YTFhNTgzZGY5NTQzNWI1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDgx
OCBAQAorIyBDb3B5cmlnaHQgMjAwMS0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBB
bGwgUmlnaHRzIFJlc2VydmVkCisiIiJGdW5jdGlvbiBzaWduYXR1cmUgb2JqZWN0cyBmb3IgY2Fs
bGFibGVzCisKK0JhY2sgcG9ydCBvZiBQeXRob24gMy4zJ3MgZnVuY3Rpb24gc2lnbmF0dXJlIHRv
b2xzIGZyb20gdGhlIGluc3BlY3QgbW9kdWxlLAorbW9kaWZpZWQgdG8gYmUgY29tcGF0aWJsZSB3
aXRoIFB5dGhvbiAyLjYsIDIuNyBhbmQgMy4yKy4KKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IGl0ZXJ0
b29scworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IHJlCitpbXBvcnQgdHlwZXMKKwordHJ5Ogor
ICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CitleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgZnJvbSBmdW5jc2lncy5vZGljdCBpbXBvcnQgT3JkZXJlZERpY3QKKworZnJvbSBm
dW5jc2lncy52ZXJzaW9uIGltcG9ydCBfX3ZlcnNpb25fXworCitfX2FsbF9fID0gWydCb3VuZEFy
Z3VtZW50cycsICdQYXJhbWV0ZXInLCAnU2lnbmF0dXJlJywgJ3NpZ25hdHVyZSddCisKKworX1dy
YXBwZXJEZXNjcmlwdG9yID0gdHlwZSh0eXBlLl9fY2FsbF9fKQorX01ldGhvZFdyYXBwZXIgPSB0
eXBlKGFsbC5fX2NhbGxfXykKKworX05vblVzZXJEZWZpbmVkQ2FsbGFibGVzID0gKF9XcmFwcGVy
RGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTWV0aG9kV3JhcHBlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcy5CdWlsdGluRnVuY3Rpb25UeXBlKQor
CisKK2RlZiBmb3JtYXRhbm5vdGF0aW9uKGFubm90YXRpb24sIGJhc2VfbW9kdWxlPU5vbmUpOgor
ICAgIGlmIGlzaW5zdGFuY2UoYW5ub3RhdGlvbiwgdHlwZSk6CisgICAgICAgIGlmIGFubm90YXRp
b24uX19tb2R1bGVfXyBpbiAoJ2J1aWx0aW5zJywgJ19fYnVpbHRpbl9fJywgYmFzZV9tb2R1bGUp
OgorICAgICAgICAgICAgcmV0dXJuIGFubm90YXRpb24uX19uYW1lX18KKyAgICAgICAgcmV0dXJu
IGFubm90YXRpb24uX19tb2R1bGVfXysnLicrYW5ub3RhdGlvbi5fX25hbWVfXworICAgIHJldHVy
biByZXByKGFubm90YXRpb24pCisKKworZGVmIF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZChjbHMs
IG1ldGhvZF9uYW1lLCAqbmVzdGVkKToKKyAgICB0cnk6CisgICAgICAgIGlmIGNscyBpcyB0eXBl
OgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1ldGggPSBnZXRhdHRyKGNscywgbWV0aG9k
X25hbWUpCisgICAgICAgIGZvciBuYW1lIGluIG5lc3RlZDoKKyAgICAgICAgICAgIG1ldGggPSBn
ZXRhdHRyKG1ldGgsIG5hbWUsIG1ldGgpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg
ICAgICByZXR1cm4KKyAgICBlbHNlOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtZXRoLCBf
Tm9uVXNlckRlZmluZWRDYWxsYWJsZXMpOgorICAgICAgICAgICAgIyBPbmNlICdfX3NpZ25hdHVy
ZV9fJyB3aWxsIGJlIGFkZGVkIHRvICdDJy1sZXZlbAorICAgICAgICAgICAgIyBjYWxsYWJsZXMs
IHRoaXMgY2hlY2sgd29uJ3QgYmUgbmVjZXNzYXJ5CisgICAgICAgICAgICByZXR1cm4gbWV0aAor
CisKK2RlZiBzaWduYXR1cmUob2JqKToKKyAgICAnJydHZXQgYSBzaWduYXR1cmUgb2JqZWN0IGZv
ciB0aGUgcGFzc2VkIGNhbGxhYmxlLicnJworCisgICAgaWYgbm90IGNhbGxhYmxlKG9iaik6Cisg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcignezAhcn0gaXMgbm90IGEgY2FsbGFibGUgb2JqZWN0Jy5m
b3JtYXQob2JqKSkKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5NZXRob2RUeXBlKToK
KyAgICAgICAgc2lnID0gc2lnbmF0dXJlKG9iai5fX2Z1bmNfXykKKyAgICAgICAgaWYgb2JqLl9f
c2VsZl9fIGlzIE5vbmU6CisgICAgICAgICAgICAjIFVuYm91bmQgbWV0aG9kOiB0aGUgZmlyc3Qg
cGFyYW1ldGVyIGJlY29tZXMgcG9zaXRpb25hbC1vbmx5CisgICAgICAgICAgICBpZiBzaWcucGFy
YW1ldGVyczoKKyAgICAgICAgICAgICAgICBmaXJzdCA9IHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygp
WzBdLnJlcGxhY2UoCisgICAgICAgICAgICAgICAgICAgIGtpbmQ9X1BPU0lUSU9OQUxfT05MWSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gc2lnLnJlcGxhY2UoCisgICAgICAgICAgICAgICAgICAg
IHBhcmFtZXRlcnM9KGZpcnN0LCkgKyB0dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlbMTpd
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAjIEluIHRoaXMgY2FzZSB3ZSBza2lwIHRoZSBmaXJzdCBwYXJh
bWV0ZXIgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgICAgICMgZnVuY3Rpb24gKHVzdWFsbHkg
YHNlbGZgIG9yIGBjbHNgKS4KKyAgICAgICAgICAgIHJldHVybiBzaWcucmVwbGFjZShwYXJhbWV0
ZXJzPXR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpKVsxOl0pCisKKyAgICB0cnk6CisgICAg
ICAgIHNpZyA9IG9iai5fX3NpZ25hdHVyZV9fCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor
ICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgaWYgc2lnIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgcmV0dXJuIHNpZworCisgICAgdHJ5OgorICAgICAgICAjIFdhcyB0aGlzIGZ1bmN0
aW9uIHdyYXBwZWQgYnkgYSBkZWNvcmF0b3I/CisgICAgICAgIHdyYXBwZWQgPSBvYmouX193cmFw
cGVkX18KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gc2lnbmF0dXJlKHdyYXBwZWQpCisKKyAgICBpZiBpc2luc3RhbmNl
KG9iaiwgdHlwZXMuRnVuY3Rpb25UeXBlKToKKyAgICAgICAgcmV0dXJuIFNpZ25hdHVyZS5mcm9t
X2Z1bmN0aW9uKG9iaikKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBmdW5jdG9vbHMucGFydGlh
bCk6CisgICAgICAgIHNpZyA9IHNpZ25hdHVyZShvYmouZnVuYykKKworICAgICAgICBuZXdfcGFy
YW1zID0gT3JkZXJlZERpY3Qoc2lnLnBhcmFtZXRlcnMuaXRlbXMoKSkKKworICAgICAgICBwYXJ0
aWFsX2FyZ3MgPSBvYmouYXJncyBvciAoKQorICAgICAgICBwYXJ0aWFsX2tleXdvcmRzID0gb2Jq
LmtleXdvcmRzIG9yIHt9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJhID0gc2lnLmJpbmRf
cGFydGlhbCgqcGFydGlhbF9hcmdzLCAqKnBhcnRpYWxfa2V5d29yZHMpCisgICAgICAgIGV4Y2Vw
dCBUeXBlRXJyb3IgYXMgZXg6CisgICAgICAgICAgICBtc2cgPSAncGFydGlhbCBvYmplY3QgezAh
cn0gaGFzIGluY29ycmVjdCBhcmd1bWVudHMnLmZvcm1hdChvYmopCisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKG1zZykKKworICAgICAgICBmb3IgYXJnX25hbWUsIGFyZ192YWx1ZSBpbiBi
YS5hcmd1bWVudHMuaXRlbXMoKToKKyAgICAgICAgICAgIHBhcmFtID0gbmV3X3BhcmFtc1thcmdf
bmFtZV0KKyAgICAgICAgICAgIGlmIGFyZ19uYW1lIGluIHBhcnRpYWxfa2V5d29yZHM6CisgICAg
ICAgICAgICAgICAgIyBXZSBzZXQgYSBuZXcgZGVmYXVsdCB2YWx1ZSwgYmVjYXVzZSB0aGUgZm9s
bG93aW5nIGNvZGUKKyAgICAgICAgICAgICAgICAjIGlzIGNvcnJlY3Q6CisgICAgICAgICAgICAg
ICAgIworICAgICAgICAgICAgICAgICMgICA+Pj4gZGVmIGZvbyhhKTogcHJpbnQoYSkKKyAgICAg
ICAgICAgICAgICAjICAgPj4+IHByaW50KHBhcnRpYWwocGFydGlhbChmb28sIGE9MTApLCBhPTIw
KSgpKQorICAgICAgICAgICAgICAgICMgICAyMAorICAgICAgICAgICAgICAgICMgICA+Pj4gcHJp
bnQocGFydGlhbChwYXJ0aWFsKGZvbywgYT0xMCksIGE9MjApKGE9MzApKQorICAgICAgICAgICAg
ICAgICMgICAzMAorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIFNvLCB3aXRo
ICdwYXJ0aWFsJyBvYmplY3RzLCBwYXNzaW5nIGEga2V5d29yZCBhcmd1bWVudCBpcworICAgICAg
ICAgICAgICAgICMgbGlrZSBzZXR0aW5nIGEgbmV3IGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3Jy
ZXNwb25kaW5nCisgICAgICAgICAgICAgICAgIyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAj
CisgICAgICAgICAgICAgICAgIyBXZSBhbHNvIG1hcmsgdGhpcyBwYXJhbWV0ZXIgd2l0aCAnX3Bh
cnRpYWxfa3dhcmcnCisgICAgICAgICAgICAgICAgIyBmbGFnLiAgTGF0ZXIsIGluICdfYmluZCcs
IHRoZSAnZGVmYXVsdCcgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICMgcGFyYW1ldGVy
IHdpbGwgYmUgYWRkZWQgdG8gJ2t3YXJncycsIHRvIHNpbXVsYXRlCisgICAgICAgICAgICAgICAg
IyB0aGUgJ2Z1bmN0b29scy5wYXJ0aWFsJyByZWFsIGNhbGwuCisgICAgICAgICAgICAgICAgbmV3
X3BhcmFtc1thcmdfbmFtZV0gPSBwYXJhbS5yZXBsYWNlKGRlZmF1bHQ9YXJnX3ZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFydGlh
bF9rd2FyZz1UcnVlKQorCisgICAgICAgICAgICBlbGlmIChwYXJhbS5raW5kIG5vdCBpbiAoX1ZB
Ul9LRVlXT1JELCBfVkFSX1BPU0lUSU9OQUwpIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdCBwYXJhbS5fcGFydGlhbF9rd2FyZyk6CisgICAgICAgICAgICAgICAgbmV3X3BhcmFt
cy5wb3AoYXJnX25hbWUpCisKKyAgICAgICAgcmV0dXJuIHNpZy5yZXBsYWNlKHBhcmFtZXRlcnM9
bmV3X3BhcmFtcy52YWx1ZXMoKSkKKworICAgIHNpZyA9IE5vbmUKKyAgICBpZiBpc2luc3RhbmNl
KG9iaiwgdHlwZSk6CisgICAgICAgICMgb2JqIGlzIGEgY2xhc3Mgb3IgYSBtZXRhY2xhc3MKKwor
ICAgICAgICAjIEZpcnN0LCBsZXQncyBzZWUgaWYgaXQgaGFzIGFuIG92ZXJsb2FkZWQgX19jYWxs
X18gZGVmaW5lZAorICAgICAgICAjIGluIGl0cyBtZXRhY2xhc3MKKyAgICAgICAgY2FsbCA9IF9n
ZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycpCisgICAgICAgIGlm
IGNhbGwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzaWcgPSBzaWduYXR1cmUoY2FsbCkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm93IHdlIGNoZWNrIGlmIHRoZSAnb2JqJyBjbGFz
cyBoYXMgYSAnX19uZXdfXycgbWV0aG9kCisgICAgICAgICAgICBuZXcgPSBfZ2V0X3VzZXJfZGVm
aW5lZF9tZXRob2Qob2JqLCAnX19uZXdfXycpCisgICAgICAgICAgICBpZiBuZXcgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICAgICAgc2lnID0gc2lnbmF0dXJlKG5ldykKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgIyBGaW5hbGx5LCB3ZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCBf
X2luaXRfXyBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgIGluaXQgPSBfZ2V0X3VzZXJfZGVm
aW5lZF9tZXRob2Qob2JqLCAnX19pbml0X18nKQorICAgICAgICAgICAgICAgIGlmIGluaXQgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNpZyA9IHNpZ25hdHVyZShpbml0KQorICAg
IGVsaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBfTm9uVXNlckRlZmluZWRDYWxsYWJsZXMpOgorICAg
ICAgICAjIEFuIG9iamVjdCB3aXRoIF9fY2FsbF9fCisgICAgICAgICMgV2UgYWxzbyBjaGVjayB0
aGF0IHRoZSAnb2JqJyBpcyBub3QgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgIyBfV3JhcHBlckRl
c2NyaXB0b3Igb3IgX01ldGhvZFdyYXBwZXIgdG8gYXZvaWQKKyAgICAgICAgIyBpbmZpbml0ZSBy
ZWN1cnNpb24gKGFuZCBldmVuIHBvdGVudGlhbCBzZWdmYXVsdCkKKyAgICAgICAgY2FsbCA9IF9n
ZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycsICdpbV9mdW5jJykK
KyAgICAgICAgaWYgY2FsbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNpZyA9IHNpZ25hdHVy
ZShjYWxsKQorCisgICAgaWYgc2lnIGlzIG5vdCBOb25lOgorICAgICAgICAjIEZvciBjbGFzc2Vz
IGFuZCBvYmplY3RzIHdlIHNraXAgdGhlIGZpcnN0IHBhcmFtZXRlciBvZiB0aGVpcgorICAgICAg
ICAjIF9fY2FsbF9fLCBfX25ld19fLCBvciBfX2luaXRfXyBtZXRob2RzCisgICAgICAgIHJldHVy
biBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPXR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpKVsx
Ol0pCisKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgdHlwZXMuQnVpbHRpbkZ1bmN0aW9uVHlwZSk6
CisgICAgICAgICMgUmFpc2UgYSBuaWNlciBlcnJvciBtZXNzYWdlIGZvciBidWlsdGlucworICAg
ICAgICBtc2cgPSAnbm8gc2lnbmF0dXJlIGZvdW5kIGZvciBidWlsdGluIGZ1bmN0aW9uIHswIXJ9
Jy5mb3JtYXQob2JqKQorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKworICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ2NhbGxhYmxlIHswIXJ9IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0dXJl
Jy5mb3JtYXQob2JqKSkKKworCitjbGFzcyBfdm9pZChvYmplY3QpOgorICAgICcnJ0EgcHJpdmF0
ZSBtYXJrZXIgLSB1c2VkIGluIFBhcmFtZXRlciAmIFNpZ25hdHVyZScnJworCisKK2NsYXNzIF9l
bXB0eShvYmplY3QpOgorICAgIHBhc3MKKworCitjbGFzcyBfUGFyYW1ldGVyS2luZChpbnQpOgor
ICAgIGRlZiBfX25ld19fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIG9iaiA9IGlu
dC5fX25ld19fKHNlbGYsICphcmdzKQorICAgICAgICBvYmouX25hbWUgPSBrd2FyZ3NbJ25hbWUn
XQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX25hbWUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuICc8X1BhcmFtZXRlcktpbmQ6IHswIXJ9PicuZm9ybWF0KHNlbGYuX25hbWUpCisKKworX1BP
U0lUSU9OQUxfT05MWSAgICAgICAgPSBfUGFyYW1ldGVyS2luZCgwLCBuYW1lPSdQT1NJVElPTkFM
X09OTFknKQorX1BPU0lUSU9OQUxfT1JfS0VZV09SRCAgPSBfUGFyYW1ldGVyS2luZCgxLCBuYW1l
PSdQT1NJVElPTkFMX09SX0tFWVdPUkQnKQorX1ZBUl9QT1NJVElPTkFMICAgICAgICAgPSBfUGFy
YW1ldGVyS2luZCgyLCBuYW1lPSdWQVJfUE9TSVRJT05BTCcpCitfS0VZV09SRF9PTkxZICAgICAg
ICAgICA9IF9QYXJhbWV0ZXJLaW5kKDMsIG5hbWU9J0tFWVdPUkRfT05MWScpCitfVkFSX0tFWVdP
UkQgICAgICAgICAgICA9IF9QYXJhbWV0ZXJLaW5kKDQsIG5hbWU9J1ZBUl9LRVlXT1JEJykKKwor
CitjbGFzcyBQYXJhbWV0ZXIob2JqZWN0KToKKyAgICAnJydSZXByZXNlbnRzIGEgcGFyYW1ldGVy
IGluIGEgZnVuY3Rpb24gc2lnbmF0dXJlLgorCisgICAgSGFzIHRoZSBmb2xsb3dpbmcgcHVibGlj
IGF0dHJpYnV0ZXM6CisKKyAgICAqIG5hbWUgOiBzdHIKKyAgICAgICAgVGhlIG5hbWUgb2YgdGhl
IHBhcmFtZXRlciBhcyBhIHN0cmluZy4KKyAgICAqIGRlZmF1bHQgOiBvYmplY3QKKyAgICAgICAg
VGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBwYXJhbWV0ZXIgaWYgc3BlY2lmaWVkLiAgSWYgdGhl
CisgICAgICAgIHBhcmFtZXRlciBoYXMgbm8gZGVmYXVsdCB2YWx1ZSwgdGhpcyBhdHRyaWJ1dGUg
aXMgbm90IHNldC4KKyAgICAqIGFubm90YXRpb24KKyAgICAgICAgVGhlIGFubm90YXRpb24gZm9y
IHRoZSBwYXJhbWV0ZXIgaWYgc3BlY2lmaWVkLiAgSWYgdGhlCisgICAgICAgIHBhcmFtZXRlciBo
YXMgbm8gYW5ub3RhdGlvbiwgdGhpcyBhdHRyaWJ1dGUgaXMgbm90IHNldC4KKyAgICAqIGtpbmQg
OiBzdHIKKyAgICAgICAgRGVzY3JpYmVzIGhvdyBhcmd1bWVudCB2YWx1ZXMgYXJlIGJvdW5kIHRv
IHRoZSBwYXJhbWV0ZXIuCisgICAgICAgIFBvc3NpYmxlIHZhbHVlczogYFBhcmFtZXRlci5QT1NJ
VElPTkFMX09OTFlgLAorICAgICAgICBgUGFyYW1ldGVyLlBPU0lUSU9OQUxfT1JfS0VZV09SRGAs
IGBQYXJhbWV0ZXIuVkFSX1BPU0lUSU9OQUxgLAorICAgICAgICBgUGFyYW1ldGVyLktFWVdPUkRf
T05MWWAsIGBQYXJhbWV0ZXIuVkFSX0tFWVdPUkRgLgorICAgICcnJworCisgICAgX19zbG90c19f
ID0gKCdfbmFtZScsICdfa2luZCcsICdfZGVmYXVsdCcsICdfYW5ub3RhdGlvbicsICdfcGFydGlh
bF9rd2FyZycpCisKKyAgICBQT1NJVElPTkFMX09OTFkgICAgICAgICA9IF9QT1NJVElPTkFMX09O
TFkKKyAgICBQT1NJVElPTkFMX09SX0tFWVdPUkQgICA9IF9QT1NJVElPTkFMX09SX0tFWVdPUkQK
KyAgICBWQVJfUE9TSVRJT05BTCAgICAgICAgICA9IF9WQVJfUE9TSVRJT05BTAorICAgIEtFWVdP
UkRfT05MWSAgICAgICAgICAgID0gX0tFWVdPUkRfT05MWQorICAgIFZBUl9LRVlXT1JEICAgICAg
ICAgICAgID0gX1ZBUl9LRVlXT1JECisKKyAgICBlbXB0eSA9IF9lbXB0eQorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG5hbWUsIGtpbmQsIGRlZmF1bHQ9X2VtcHR5LCBhbm5vdGF0aW9uPV9lbXB0
eSwKKyAgICAgICAgICAgICAgICAgX3BhcnRpYWxfa3dhcmc9RmFsc2UpOgorCisgICAgICAgIGlm
IGtpbmQgbm90IGluIChfUE9TSVRJT05BTF9PTkxZLCBfUE9TSVRJT05BTF9PUl9LRVlXT1JELAor
ICAgICAgICAgICAgICAgICAgICAgICAgX1ZBUl9QT1NJVElPTkFMLCBfS0VZV09SRF9PTkxZLCBf
VkFSX0tFWVdPUkQpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCB2YWx1
ZSBmb3IgJ1BhcmFtZXRlci5raW5kJyBhdHRyaWJ1dGUiKQorICAgICAgICBzZWxmLl9raW5kID0g
a2luZAorCisgICAgICAgIGlmIGRlZmF1bHQgaXMgbm90IF9lbXB0eToKKyAgICAgICAgICAgIGlm
IGtpbmQgaW4gKF9WQVJfUE9TSVRJT05BTCwgX1ZBUl9LRVlXT1JEKToKKyAgICAgICAgICAgICAg
ICBtc2cgPSAnezB9IHBhcmFtZXRlcnMgY2Fubm90IGhhdmUgZGVmYXVsdCB2YWx1ZXMnLmZvcm1h
dChraW5kKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnKQorICAgICAgICBz
ZWxmLl9kZWZhdWx0ID0gZGVmYXVsdAorICAgICAgICBzZWxmLl9hbm5vdGF0aW9uID0gYW5ub3Rh
dGlvbgorCisgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGtpbmQgIT0g
X1BPU0lUSU9OQUxfT05MWToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJOb25l
IGlzIG5vdCBhIHZhbGlkIG5hbWUgZm9yIGEgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5vbi1wb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVyIikKKyAgICAgICAgICAgIHNlbGYu
X25hbWUgPSBuYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gc3RyKG5hbWUp
CisgICAgICAgICAgICBpZiBraW5kICE9IF9QT1NJVElPTkFMX09OTFkgYW5kIG5vdCByZS5tYXRj
aChyJ1thLXpfXVx3KiQnLCBuYW1lLCByZS5JKToKKyAgICAgICAgICAgICAgICBtc2cgPSAnezAh
cn0gaXMgbm90IGEgdmFsaWQgcGFyYW1ldGVyIG5hbWUnLmZvcm1hdChuYW1lKQorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnKQorICAgICAgICAgICAgc2VsZi5fbmFtZSA9IG5h
bWUKKworICAgICAgICBzZWxmLl9wYXJ0aWFsX2t3YXJnID0gX3BhcnRpYWxfa3dhcmcKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbmFt
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRlZmF1bHQoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9kZWZhdWx0CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYW5ub3RhdGlvbihzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Fubm90YXRpb24KKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBraW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fa2luZAorCisgICAgZGVmIHJl
cGxhY2Uoc2VsZiwgbmFtZT1fdm9pZCwga2luZD1fdm9pZCwgYW5ub3RhdGlvbj1fdm9pZCwKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0PV92b2lkLCBfcGFydGlhbF9rd2FyZz1fdm9pZCk6CisgICAg
ICAgICcnJ0NyZWF0ZXMgYSBjdXN0b21pemVkIGNvcHkgb2YgdGhlIFBhcmFtZXRlci4nJycKKwor
ICAgICAgICBpZiBuYW1lIGlzIF92b2lkOgorICAgICAgICAgICAgbmFtZSA9IHNlbGYuX25hbWUK
KworICAgICAgICBpZiBraW5kIGlzIF92b2lkOgorICAgICAgICAgICAga2luZCA9IHNlbGYuX2tp
bmQKKworICAgICAgICBpZiBhbm5vdGF0aW9uIGlzIF92b2lkOgorICAgICAgICAgICAgYW5ub3Rh
dGlvbiA9IHNlbGYuX2Fubm90YXRpb24KKworICAgICAgICBpZiBkZWZhdWx0IGlzIF92b2lkOgor
ICAgICAgICAgICAgZGVmYXVsdCA9IHNlbGYuX2RlZmF1bHQKKworICAgICAgICBpZiBfcGFydGlh
bF9rd2FyZyBpcyBfdm9pZDoKKyAgICAgICAgICAgIF9wYXJ0aWFsX2t3YXJnID0gc2VsZi5fcGFy
dGlhbF9rd2FyZworCisgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKG5hbWUsIGtpbmQsIGRlZmF1
bHQ9ZGVmYXVsdCwgYW5ub3RhdGlvbj1hbm5vdGF0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBfcGFydGlhbF9rd2FyZz1fcGFydGlhbF9rd2FyZykKKworICAgIGRlZiBfX3N0cl9fKHNl
bGYpOgorICAgICAgICBraW5kID0gc2VsZi5raW5kCisKKyAgICAgICAgZm9ybWF0dGVkID0gc2Vs
Zi5fbmFtZQorICAgICAgICBpZiBraW5kID09IF9QT1NJVElPTkFMX09OTFk6CisgICAgICAgICAg
ICBpZiBmb3JtYXR0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgPSAnJwor
ICAgICAgICAgICAgZm9ybWF0dGVkID0gJzx7MH0+Jy5mb3JtYXQoZm9ybWF0dGVkKQorCisgICAg
ICAgICMgQWRkIGFubm90YXRpb24gYW5kIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgaWYgc2VsZi5f
YW5ub3RhdGlvbiBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJ3swfTp7
MX0nLmZvcm1hdChmb3JtYXR0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3JtYXRhbm5vdGF0aW9uKHNlbGYuX2Fubm90YXRpb24pKQorCisgICAgICAgIGlmIHNl
bGYuX2RlZmF1bHQgaXMgbm90IF9lbXB0eToKKyAgICAgICAgICAgIGZvcm1hdHRlZCA9ICd7MH09
ezF9Jy5mb3JtYXQoZm9ybWF0dGVkLCByZXByKHNlbGYuX2RlZmF1bHQpKQorCisgICAgICAgIGlm
IGtpbmQgPT0gX1ZBUl9QT1NJVElPTkFMOgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJyonICsg
Zm9ybWF0dGVkCisgICAgICAgIGVsaWYga2luZCA9PSBfVkFSX0tFWVdPUkQ6CisgICAgICAgICAg
ICBmb3JtYXR0ZWQgPSAnKionICsgZm9ybWF0dGVkCisKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRl
ZAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzx7MH0gYXQgezE6
I3h9IHsyIXJ9PicuZm9ybWF0KHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKHNlbGYpLCBzZWxmLm5hbWUpCisKKyAg
ICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIG1zZyA9ICJ1bmhhc2hhYmxlIHR5cGU6ICd7
MH0nIi5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgIHJhaXNlIFR5cGVF
cnJvcihtc2cpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJu
IChpc3N1YmNsYXNzKG90aGVyLl9fY2xhc3NfXywgUGFyYW1ldGVyKSBhbmQKKyAgICAgICAgICAg
ICAgICBzZWxmLl9uYW1lID09IG90aGVyLl9uYW1lIGFuZAorICAgICAgICAgICAgICAgIHNlbGYu
X2tpbmQgPT0gb3RoZXIuX2tpbmQgYW5kCisgICAgICAgICAgICAgICAgc2VsZi5fZGVmYXVsdCA9
PSBvdGhlci5fZGVmYXVsdCBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLl9hbm5vdGF0aW9uID09
IG90aGVyLl9hbm5vdGF0aW9uKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAg
ICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIpCisKKworY2xhc3MgQm91bmRBcmd1bWVu
dHMob2JqZWN0KToKKyAgICAnJydSZXN1bHQgb2YgYFNpZ25hdHVyZS5iaW5kYCBjYWxsLiAgSG9s
ZHMgdGhlIG1hcHBpbmcgb2YgYXJndW1lbnRzCisgICAgdG8gdGhlIGZ1bmN0aW9uJ3MgcGFyYW1l
dGVycy4KKworICAgIEhhcyB0aGUgZm9sbG93aW5nIHB1YmxpYyBhdHRyaWJ1dGVzOgorCisgICAg
KiBhcmd1bWVudHMgOiBPcmRlcmVkRGljdAorICAgICAgICBBbiBvcmRlcmVkIG11dGFibGUgbWFw
cGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byBhcmd1bWVudHMnIHZhbHVlcy4KKyAgICAgICAg
RG9lcyBub3QgY29udGFpbiBhcmd1bWVudHMnIGRlZmF1bHQgdmFsdWVzLgorICAgICogc2lnbmF0
dXJlIDogU2lnbmF0dXJlCisgICAgICAgIFRoZSBTaWduYXR1cmUgb2JqZWN0IHRoYXQgY3JlYXRl
ZCB0aGlzIGluc3RhbmNlLgorICAgICogYXJncyA6IHR1cGxlCisgICAgICAgIFR1cGxlIG9mIHBv
c2l0aW9uYWwgYXJndW1lbnRzIHZhbHVlcy4KKyAgICAqIGt3YXJncyA6IGRpY3QKKyAgICAgICAg
RGljdCBvZiBrZXl3b3JkIGFyZ3VtZW50cyB2YWx1ZXMuCisgICAgJycnCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgc2lnbmF0dXJlLCBhcmd1bWVudHMpOgorICAgICAgICBzZWxmLmFyZ3VtZW50
cyA9IGFyZ3VtZW50cworICAgICAgICBzZWxmLl9zaWduYXR1cmUgPSBzaWduYXR1cmUKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBzaWduYXR1cmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9zaWduYXR1cmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhcmdzKHNlbGYpOgorICAgICAg
ICBhcmdzID0gW10KKyAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtIGluIHNlbGYuX3NpZ25h
dHVyZS5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiAocGFyYW0ua2luZCBpbiAo
X1ZBUl9LRVlXT1JELCBfS0VZV09SRF9PTkxZKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLl9wYXJ0aWFsX2t3YXJnKToKKyAgICAg
ICAgICAgICAgICAjIEtleXdvcmQgYXJndW1lbnRzIG1hcHBlZCBieSAnZnVuY3Rvb2xzLnBhcnRp
YWwnCisgICAgICAgICAgICAgICAgIyAoUGFyYW1ldGVyLl9wYXJ0aWFsX2t3YXJnIGlzIFRydWUp
IGFyZSBtYXBwZWQKKyAgICAgICAgICAgICAgICAjIGluICdCb3VuZEFyZ3VtZW50cy5rd2FyZ3Mn
LCBhbG9uZyB3aXRoIFZBUl9LRVlXT1JEICYKKyAgICAgICAgICAgICAgICAjIEtFWVdPUkRfT05M
WQorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICBhcmcgPSBzZWxmLmFyZ3VtZW50c1twYXJhbV9uYW1lXQorICAgICAgICAgICAgZXhjZXB0
IEtleUVycm9yOgorICAgICAgICAgICAgICAgICMgV2UncmUgZG9uZSBoZXJlLiBPdGhlciBhcmd1
bWVudHMKKyAgICAgICAgICAgICAgICAjIHdpbGwgYmUgbWFwcGVkIGluICdCb3VuZEFyZ3VtZW50
cy5rd2FyZ3MnCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAg
ICAgICAgICAgICMgKmFyZ3MKKyAgICAgICAgICAgICAgICAgICAgYXJncy5leHRlbmQoYXJnKQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgcGxhaW4gYXJndW1l
bnQKKyAgICAgICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoYXJnKQorCisgICAgICAgIHJldHVy
biB0dXBsZShhcmdzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGt3YXJncyhzZWxmKToKKyAg
ICAgICAga3dhcmdzID0ge30KKyAgICAgICAga3dhcmdzX3N0YXJ0ZWQgPSBGYWxzZQorICAgICAg
ICBmb3IgcGFyYW1fbmFtZSwgcGFyYW0gaW4gc2VsZi5fc2lnbmF0dXJlLnBhcmFtZXRlcnMuaXRl
bXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBrd2FyZ3Nfc3RhcnRlZDoKKyAgICAgICAgICAgICAg
ICBpZiAocGFyYW0ua2luZCBpbiAoX1ZBUl9LRVlXT1JELCBfS0VZV09SRF9PTkxZKSBvcgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0uX3BhcnRp
YWxfa3dhcmcpOgorICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nfc3RhcnRlZCA9IFRydWUKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbV9uYW1lIG5v
dCBpbiBzZWxmLmFyZ3VtZW50czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc19zdGFy
dGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAg
ICAgaWYgbm90IGt3YXJnc19zdGFydGVkOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBhcmcgPSBzZWxmLmFyZ3VtZW50c1twYXJh
bV9uYW1lXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBf
VkFSX0tFWVdPUkQ6CisgICAgICAgICAgICAgICAgICAgICMgKiprd2FyZ3MKKyAgICAgICAgICAg
ICAgICAgICAga3dhcmdzLnVwZGF0ZShhcmcpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgIyBwbGFpbiBrZXl3b3JkIGFyZ3VtZW50CisgICAgICAgICAgICAgICAg
ICAgIGt3YXJnc1twYXJhbV9uYW1lXSA9IGFyZworCisgICAgICAgIHJldHVybiBrd2FyZ3MKKwor
ICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgbXNnID0gInVuaGFzaGFibGUgdHlwZTog
J3swfSciLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgcmFpc2UgVHlw
ZUVycm9yKG1zZykKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gKGlzc3ViY2xhc3Mob3RoZXIuX19jbGFzc19fLCBCb3VuZEFyZ3VtZW50cykgYW5kCisgICAg
ICAgICAgICAgICAgc2VsZi5zaWduYXR1cmUgPT0gb3RoZXIuc2lnbmF0dXJlIGFuZAorICAgICAg
ICAgICAgICAgIHNlbGYuYXJndW1lbnRzID09IG90aGVyLmFyZ3VtZW50cykKKworICAgIGRlZiBf
X25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVy
KQorCisKK2NsYXNzIFNpZ25hdHVyZShvYmplY3QpOgorICAgICcnJ0EgU2lnbmF0dXJlIG9iamVj
dCByZXByZXNlbnRzIHRoZSBvdmVyYWxsIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgorICAgIEl0
IHN0b3JlcyBhIFBhcmFtZXRlciBvYmplY3QgZm9yIGVhY2ggcGFyYW1ldGVyIGFjY2VwdGVkIGJ5
IHRoZQorICAgIGZ1bmN0aW9uLCBhcyB3ZWxsIGFzIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvIHRo
ZSBmdW5jdGlvbiBpdHNlbGYuCisKKyAgICBBIFNpZ25hdHVyZSBvYmplY3QgaGFzIHRoZSBmb2xs
b3dpbmcgcHVibGljIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHM6CisKKyAgICAqIHBhcmFtZXRlcnMg
OiBPcmRlcmVkRGljdAorICAgICAgICBBbiBvcmRlcmVkIG1hcHBpbmcgb2YgcGFyYW1ldGVycycg
bmFtZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgUGFyYW1ldGVyIG9iamVjdHMgKGtl
eXdvcmQtb25seSBhcmd1bWVudHMgYXJlIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICAgIGFzIGxp
c3RlZCBpbiBgY29kZS5jb192YXJuYW1lc2ApLgorICAgICogcmV0dXJuX2Fubm90YXRpb24gOiBv
YmplY3QKKyAgICAgICAgVGhlIGFubm90YXRpb24gZm9yIHRoZSByZXR1cm4gdHlwZSBvZiB0aGUg
ZnVuY3Rpb24gaWYgc3BlY2lmaWVkLgorICAgICAgICBJZiB0aGUgZnVuY3Rpb24gaGFzIG5vIGFu
bm90YXRpb24gZm9yIGl0cyByZXR1cm4gdHlwZSwgdGhpcworICAgICAgICBhdHRyaWJ1dGUgaXMg
bm90IHNldC4KKyAgICAqIGJpbmQoKmFyZ3MsICoqa3dhcmdzKSAtPiBCb3VuZEFyZ3VtZW50cwor
ICAgICAgICBDcmVhdGVzIGEgbWFwcGluZyBmcm9tIHBvc2l0aW9uYWwgYW5kIGtleXdvcmQgYXJn
dW1lbnRzIHRvCisgICAgICAgIHBhcmFtZXRlcnMuCisgICAgKiBiaW5kX3BhcnRpYWwoKmFyZ3Ms
ICoqa3dhcmdzKSAtPiBCb3VuZEFyZ3VtZW50cworICAgICAgICBDcmVhdGVzIGEgcGFydGlhbCBt
YXBwaW5nIGZyb20gcG9zaXRpb25hbCBhbmQga2V5d29yZCBhcmd1bWVudHMKKyAgICAgICAgdG8g
cGFyYW1ldGVycyAoc2ltdWxhdGluZyAnZnVuY3Rvb2xzLnBhcnRpYWwnIGJlaGF2aW9yLikKKyAg
ICAnJycKKworICAgIF9fc2xvdHNfXyA9ICgnX3JldHVybl9hbm5vdGF0aW9uJywgJ19wYXJhbWV0
ZXJzJykKKworICAgIF9wYXJhbWV0ZXJfY2xzID0gUGFyYW1ldGVyCisgICAgX2JvdW5kX2FyZ3Vt
ZW50c19jbHMgPSBCb3VuZEFyZ3VtZW50cworCisgICAgZW1wdHkgPSBfZW1wdHkKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwYXJhbWV0ZXJzPU5vbmUsIHJldHVybl9hbm5vdGF0aW9uPV9lbXB0
eSwKKyAgICAgICAgICAgICAgICAgX192YWxpZGF0ZV9wYXJhbWV0ZXJzX189VHJ1ZSk6CisgICAg
ICAgICcnJ0NvbnN0cnVjdHMgU2lnbmF0dXJlIGZyb20gdGhlIGdpdmVuIGxpc3Qgb2YgUGFyYW1l
dGVyCisgICAgICAgIG9iamVjdHMgYW5kICdyZXR1cm5fYW5ub3RhdGlvbicuICBBbGwgYXJndW1l
bnRzIGFyZSBvcHRpb25hbC4KKyAgICAgICAgJycnCisKKyAgICAgICAgaWYgcGFyYW1ldGVycyBp
cyBOb25lOgorICAgICAgICAgICAgcGFyYW1zID0gT3JkZXJlZERpY3QoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgaWYgX192YWxpZGF0ZV9wYXJhbWV0ZXJzX186CisgICAgICAgICAgICAg
ICAgcGFyYW1zID0gT3JkZXJlZERpY3QoKQorICAgICAgICAgICAgICAgIHRvcF9raW5kID0gX1BP
U0lUSU9OQUxfT05MWQorCisgICAgICAgICAgICAgICAgZm9yIGlkeCwgcGFyYW0gaW4gZW51bWVy
YXRlKHBhcmFtZXRlcnMpOgorICAgICAgICAgICAgICAgICAgICBraW5kID0gcGFyYW0ua2luZAor
ICAgICAgICAgICAgICAgICAgICBpZiBraW5kIDwgdG9wX2tpbmQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBtc2cgPSAnd3JvbmcgcGFyYW1ldGVyIG9yZGVyOiB7MH0gYmVmb3JlIHsxfScKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IG1zZy5mb3JtYXQodG9wX2tpbmQsIHBhcmFtLmtp
bmQpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcF9raW5kID0g
a2luZAorCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwYXJhbS5uYW1lCisgICAgICAgICAg
ICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUg
PSBzdHIoaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5yZXBsYWNl
KG5hbWU9bmFtZSkKKworICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHBhcmFtczoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWU6IHsw
IXJ9Jy5mb3JtYXQobmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IobXNnKQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbbmFtZV0gPSBwYXJhbQorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSBPcmRlcmVkRGljdCgoKHBhcmFt
Lm5hbWUsIHBhcmFtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIHBhcmFtIGluIHBhcmFtZXRlcnMpKQorCisgICAgICAgIHNlbGYuX3BhcmFtZXRl
cnMgPSBwYXJhbXMKKyAgICAgICAgc2VsZi5fcmV0dXJuX2Fubm90YXRpb24gPSByZXR1cm5fYW5u
b3RhdGlvbgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fZnVuY3Rpb24oY2xzLCBm
dW5jKToKKyAgICAgICAgJycnQ29uc3RydWN0cyBTaWduYXR1cmUgZm9yIHRoZSBnaXZlbiBweXRo
b24gZnVuY3Rpb24nJycKKworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmdW5jLCB0eXBlcy5G
dW5jdGlvblR5cGUpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd7MCFyfSBpcyBub3Qg
YSBQeXRob24gZnVuY3Rpb24nLmZvcm1hdChmdW5jKSkKKworICAgICAgICBQYXJhbWV0ZXIgPSBj
bHMuX3BhcmFtZXRlcl9jbHMKKworICAgICAgICAjIFBhcmFtZXRlciBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgZnVuY19jb2RlID0gZnVuYy5fX2NvZGVfXworICAgICAgICBwb3NfY291bnQgPSBmdW5j
X2NvZGUuY29fYXJnY291bnQKKyAgICAgICAgYXJnX25hbWVzID0gZnVuY19jb2RlLmNvX3Zhcm5h
bWVzCisgICAgICAgIHBvc2l0aW9uYWwgPSB0dXBsZShhcmdfbmFtZXNbOnBvc19jb3VudF0pCisg
ICAgICAgIGtleXdvcmRfb25seV9jb3VudCA9IGdldGF0dHIoZnVuY19jb2RlLCAnY29fa3dvbmx5
YXJnY291bnQnLCAwKQorICAgICAgICBrZXl3b3JkX29ubHkgPSBhcmdfbmFtZXNbcG9zX2NvdW50
Oihwb3NfY291bnQgKyBrZXl3b3JkX29ubHlfY291bnQpXQorICAgICAgICBhbm5vdGF0aW9ucyA9
IGdldGF0dHIoZnVuYywgJ19fYW5ub3RhdGlvbnNfXycsIHt9KQorICAgICAgICBkZWZhdWx0cyA9
IGZ1bmMuX19kZWZhdWx0c19fCisgICAgICAgIGt3ZGVmYXVsdHMgPSBnZXRhdHRyKGZ1bmMsICdf
X2t3ZGVmYXVsdHNfXycsIE5vbmUpCisKKyAgICAgICAgaWYgZGVmYXVsdHM6CisgICAgICAgICAg
ICBwb3NfZGVmYXVsdF9jb3VudCA9IGxlbihkZWZhdWx0cykKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHBvc19kZWZhdWx0X2NvdW50ID0gMAorCisgICAgICAgIHBhcmFtZXRlcnMgPSBbXQor
CisgICAgICAgICMgTm9uLWtleXdvcmQtb25seSBwYXJhbWV0ZXJzIHcvbyBkZWZhdWx0cy4KKyAg
ICAgICAgbm9uX2RlZmF1bHRfY291bnQgPSBwb3NfY291bnQgLSBwb3NfZGVmYXVsdF9jb3VudAor
ICAgICAgICBmb3IgbmFtZSBpbiBwb3NpdGlvbmFsWzpub25fZGVmYXVsdF9jb3VudF06CisgICAg
ICAgICAgICBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAgICAg
ICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFubm90
YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1fUE9T
SVRJT05BTF9PUl9LRVlXT1JEKSkKKworICAgICAgICAjIC4uLiB3LyBkZWZhdWx0cy4KKyAgICAg
ICAgZm9yIG9mZnNldCwgbmFtZSBpbiBlbnVtZXJhdGUocG9zaXRpb25hbFtub25fZGVmYXVsdF9j
b3VudDpdKToKKyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwg
X2VtcHR5KQorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFu
bm90YXRpb249YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBraW5kPV9QT1NJVElPTkFMX09SX0tFWVdPUkQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0c1tvZmZzZXRdKSkKKworICAgICAgICAj
ICphcmdzCisgICAgICAgIGlmIGZ1bmNfY29kZS5jb19mbGFncyAmIDB4MDQ6CisgICAgICAgICAg
ICBuYW1lID0gYXJnX25hbWVzW3Bvc19jb3VudCArIGtleXdvcmRfb25seV9jb3VudF0KKyAgICAg
ICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAgICAg
ICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5ub3Rh
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9WQVJf
UE9TSVRJT05BTCkpCisKKyAgICAgICAgIyBLZXl3b3JkLW9ubHkgcGFyYW1ldGVycy4KKyAgICAg
ICAgZm9yIG5hbWUgaW4ga2V5d29yZF9vbmx5OgorICAgICAgICAgICAgZGVmYXVsdCA9IF9lbXB0
eQorICAgICAgICAgICAgaWYga3dkZWZhdWx0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICBkZWZhdWx0ID0ga3dkZWZhdWx0cy5nZXQobmFtZSwgX2VtcHR5KQorCisgICAgICAgICAgICBh
bm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAgICAgICAgICAgIHBh
cmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFubm90YXRpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1fS0VZV09SRF9PTkxZ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ZGVmYXVs
dCkpCisgICAgICAgICMgKiprd2FyZ3MKKyAgICAgICAgaWYgZnVuY19jb2RlLmNvX2ZsYWdzICYg
MHgwODoKKyAgICAgICAgICAgIGluZGV4ID0gcG9zX2NvdW50ICsga2V5d29yZF9vbmx5X2NvdW50
CisgICAgICAgICAgICBpZiBmdW5jX2NvZGUuY29fZmxhZ3MgJiAweDA0OgorICAgICAgICAgICAg
ICAgIGluZGV4ICs9IDEKKworICAgICAgICAgICAgbmFtZSA9IGFyZ19uYW1lc1tpbmRleF0KKyAg
ICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAg
ICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5u
b3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9W
QVJfS0VZV09SRCkpCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJhbWV0ZXJzLAorICAgICAgICAg
ICAgICAgICAgIHJldHVybl9hbm5vdGF0aW9uPWFubm90YXRpb25zLmdldCgncmV0dXJuJywgX2Vt
cHR5KSwKKyAgICAgICAgICAgICAgICAgICBfX3ZhbGlkYXRlX3BhcmFtZXRlcnNfXz1GYWxzZSkK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICByZXR1cm4gdHlwZXMuTWFwcGluZ1Byb3h5VHlwZShzZWxmLl9wYXJhbWV0
ZXJzKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4g
T3JkZXJlZERpY3Qoc2VsZi5fcGFyYW1ldGVycy5pdGVtcygpKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJldHVybl9hbm5vdGF0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmV0
dXJuX2Fubm90YXRpb24KKworICAgIGRlZiByZXBsYWNlKHNlbGYsIHBhcmFtZXRlcnM9X3ZvaWQs
IHJldHVybl9hbm5vdGF0aW9uPV92b2lkKToKKyAgICAgICAgJycnQ3JlYXRlcyBhIGN1c3RvbWl6
ZWQgY29weSBvZiB0aGUgU2lnbmF0dXJlLgorICAgICAgICBQYXNzICdwYXJhbWV0ZXJzJyBhbmQv
b3IgJ3JldHVybl9hbm5vdGF0aW9uJyBhcmd1bWVudHMKKyAgICAgICAgdG8gb3ZlcnJpZGUgdGhl
bSBpbiB0aGUgbmV3IGNvcHkuCisgICAgICAgICcnJworCisgICAgICAgIGlmIHBhcmFtZXRlcnMg
aXMgX3ZvaWQ6CisgICAgICAgICAgICBwYXJhbWV0ZXJzID0gc2VsZi5wYXJhbWV0ZXJzLnZhbHVl
cygpCisKKyAgICAgICAgaWYgcmV0dXJuX2Fubm90YXRpb24gaXMgX3ZvaWQ6CisgICAgICAgICAg
ICByZXR1cm5fYW5ub3RhdGlvbiA9IHNlbGYuX3JldHVybl9hbm5vdGF0aW9uCisKKyAgICAgICAg
cmV0dXJuIHR5cGUoc2VsZikocGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuX2Fubm90YXRpb249cmV0dXJuX2Fubm90YXRpb24pCisKKyAgICBkZWYgX19oYXNoX18o
c2VsZik6CisgICAgICAgIG1zZyA9ICJ1bmhhc2hhYmxlIHR5cGU6ICd7MH0nIi5mb3JtYXQoc2Vs
Zi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cpCisKKyAg
ICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgKG5vdCBpc3N1YmNsYXNzKHR5
cGUob3RoZXIpLCBTaWduYXR1cmUpIG9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmV0dXJu
X2Fubm90YXRpb24gIT0gb3RoZXIucmV0dXJuX2Fubm90YXRpb24gb3IKKyAgICAgICAgICAgICAg
ICAgICAgbGVuKHNlbGYucGFyYW1ldGVycykgIT0gbGVuKG90aGVyLnBhcmFtZXRlcnMpKToKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIG90aGVyX3Bvc2l0aW9ucyA9IGRpY3Qo
KHBhcmFtLCBpZHgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaWR4LCBwYXJhbSBp
biBlbnVtZXJhdGUob3RoZXIucGFyYW1ldGVycy5rZXlzKCkpKQorCisgICAgICAgIGZvciBpZHgs
IChwYXJhbV9uYW1lLCBwYXJhbSkgaW4gZW51bWVyYXRlKHNlbGYucGFyYW1ldGVycy5pdGVtcygp
KToKKyAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgPT0gX0tFWVdPUkRfT05MWToKKyAgICAgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG90aGVyX3BhcmFtID0gb3RoZXIucGFy
YW1ldGVyc1twYXJhbV9uYW1lXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgaWYgcGFyYW0gIT0gb3RoZXJfcGFyYW06CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvdGhlcl9pZHggPSBvdGhlcl9wb3NpdGlvbnNb
cGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGlmIChpZHggIT0gb3RoZXJfaWR4IG9yCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJhbSAhPSBvdGhlci5wYXJhbWV0ZXJzW3BhcmFtX25hbWVdKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxm
Ll9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfYmluZChzZWxmLCBhcmdzLCBrd2FyZ3MsIHBhcnRp
YWw9RmFsc2UpOgorICAgICAgICAnJydQcml2YXRlIG1ldGhvZC4gIERvbid0IHVzZSBkaXJlY3Rs
eS4nJycKKworICAgICAgICBhcmd1bWVudHMgPSBPcmRlcmVkRGljdCgpCisKKyAgICAgICAgcGFy
YW1ldGVycyA9IGl0ZXIoc2VsZi5wYXJhbWV0ZXJzLnZhbHVlcygpKQorICAgICAgICBwYXJhbWV0
ZXJzX2V4ID0gKCkKKyAgICAgICAgYXJnX3ZhbHMgPSBpdGVyKGFyZ3MpCisKKyAgICAgICAgaWYg
cGFydGlhbDoKKyAgICAgICAgICAgICMgU3VwcG9ydCBmb3IgYmluZGluZyBhcmd1bWVudHMgdG8g
J2Z1bmN0b29scy5wYXJ0aWFsJyBvYmplY3RzLgorICAgICAgICAgICAgIyBTZWUgJ2Z1bmN0b29s
cy5wYXJ0aWFsJyBjYXNlIGluICdzaWduYXR1cmUoKScgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
ICAgICMgZm9yIGRldGFpbHMuCisgICAgICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW0gaW4g
c2VsZi5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtLl9wYXJ0
aWFsX2t3YXJnIGFuZCBwYXJhbV9uYW1lIG5vdCBpbiBrd2FyZ3MpOgorICAgICAgICAgICAgICAg
ICAgICAjIFNpbXVsYXRpbmcgJ2Z1bmN0b29scy5wYXJ0aWFsJyBiZWhhdmlvcgorICAgICAgICAg
ICAgICAgICAgICBrd2FyZ3NbcGFyYW1fbmFtZV0gPSBwYXJhbS5kZWZhdWx0CisKKyAgICAgICAg
d2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICMgTGV0J3MgaXRlcmF0ZSB0aHJvdWdoIHRoZSBwb3Np
dGlvbmFsIGFyZ3VtZW50cyBhbmQgY29ycmVzcG9uZGluZworICAgICAgICAgICAgIyBwYXJhbWV0
ZXJzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJnX3ZhbCA9IG5leHQoYXJn
X3ZhbHMpCisgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAg
ICAjIE5vIG1vcmUgcG9zaXRpb25hbCBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgICAgIHBhcmFtID0gbmV4dChwYXJhbWV0ZXJzKQorICAgICAgICAgICAg
ICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAgICAjIE5vIG1vcmUg
cGFyYW1ldGVycy4gVGhhdCdzIGl0LiBKdXN0IG5lZWQgdG8gY2hlY2sgdGhhdAorICAgICAgICAg
ICAgICAgICAgICAjIHdlIGhhdmUgbm8gYGt3YXJnc2AgYWZ0ZXIgdGhpcyB3aGlsZSBsb29wCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAg
ICAgICAgICAgICAgICAjIFRoYXQncyBPSywganVzdCBlbXB0eSAqYXJncy4gIExldCdzIHN0YXJ0
IHBhcnNpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICMga3dhcmdzCisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbGlmIHBhcmFtLm5hbWUgaW4g
a3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfUE9TSVRJ
T05BTF9PTkxZOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICd7YXJnIXJ9IHBh
cmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdidXQgd2FzIHBhc3NlZCBhcyBhIGtleXdvcmQnCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXNnID0gbXNnLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyYW1ldGVyc19leCA9IChwYXJhbSwpCisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbS5raW5kID09IF9WQVJfS0VZV09S
RCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
YW0uZGVmYXVsdCBpcyBub3QgX2VtcHR5KToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhh
dCdzIGZpbmUgdG9vIC0gd2UgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICMgcGFyYW1ldGVyLiAgU28sIGxldHMgc3RhcnQgcGFyc2luZyBga3dh
cmdzYCwgc3RhcnRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aCB0aGUgY3VycmVu
dCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNfZXggPSAocGFy
YW0sKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRpYWw6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyYW1ldGVyc19leCA9IChwYXJhbSwpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXNnID0gJ3thcmchcn0gcGFyYW1ldGVyIGxhY2tpbmcgZGVm
YXVsdCB2YWx1ZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBtc2cuZm9ybWF0
KGFyZz1wYXJhbS5uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVF
cnJvcihtc2cpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgV2UgaGF2ZSBh
IHBvc2l0aW9uYWwgYXJndW1lbnQgdG8gcHJvY2VzcworICAgICAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICAgICAgcGFyYW0gPSBuZXh0KHBhcmFtZXRlcnMpCisgICAgICAgICAgICAg
ICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVF
cnJvcigndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMnKQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgaW4gKF9WQVJfS0VZV09SRCwg
X0tFWVdPUkRfT05MWSk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIExvb2tzIGxpa2Ugd2Ug
aGF2ZSBubyBwYXJhbWV0ZXIgZm9yIHRoaXMgcG9zaXRpb25hbAorICAgICAgICAgICAgICAgICAg
ICAgICAgIyBhcmd1bWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpCisKKyAgICAgICAgICAgICAgICAgICAg
aWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAgICAgICAgICAgICAg
ICAjIFdlIGhhdmUgYW4gJyphcmdzJy1saWtlIGFyZ3VtZW50LCBsZXQncyBmaWxsIGl0IHdpdGgK
KyAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIHBvc2l0aW9uYWwgYXJndW1lbnRzIHdlIGhh
dmUgbGVmdCBhbmQgbW92ZSBvbiB0bworICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgbmV4
dCBwaGFzZQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gW2FyZ192YWxdCisgICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuZXh0ZW5kKGFyZ192YWxzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gdHVwbGUodmFsdWVzKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbS5u
YW1lIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcign
bXVsdGlwbGUgdmFsdWVzIGZvciBhcmd1bWVudCAnCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3thcmchcn0nLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkpCisKKyAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gYXJnX3ZhbAorCisgICAgICAg
ICMgTm93LCB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJhbWV0ZXJzIHRvIHBy
b2Nlc3MKKyAgICAgICAgIyBrZXl3b3JkIGFyZ3VtZW50cworICAgICAgICBrd2FyZ3NfcGFyYW0g
PSBOb25lCisgICAgICAgIGZvciBwYXJhbSBpbiBpdGVydG9vbHMuY2hhaW4ocGFyYW1ldGVyc19l
eCwgcGFyYW1ldGVycyk6CisgICAgICAgICAgICBpZiBwYXJhbS5raW5kID09IF9QT1NJVElPTkFM
X09OTFk6CisgICAgICAgICAgICAgICAgIyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gaW4gY2Fz
ZSBvZiBhIHByb3Blcmx5IGJ1aWx0CisgICAgICAgICAgICAgICAgIyBTaWduYXR1cmUgb2JqZWN0
IChidXQgbGV0J3MgaGF2ZSB0aGlzIGNoZWNrIGhlcmUKKyAgICAgICAgICAgICAgICAjIHRvIGVu
c3VyZSBjb3JyZWN0IGJlaGF2aW91ciBqdXN0IGluIGNhc2UpCisgICAgICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKCd7YXJnIXJ9IHBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dCB3YXMgcGFzc2VkIGFzIGEga2V5d29y
ZCcuIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1wYXJhbS5u
YW1lKSkKKworICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX0tFWVdPUkQ6CisgICAg
ICAgICAgICAgICAgIyBNZW1vcml6ZSB0aGF0IHdlIGhhdmUgYSAnKiprd2FyZ3MnLWxpa2UgcGFy
YW1ldGVyCisgICAgICAgICAgICAgICAga3dhcmdzX3BhcmFtID0gcGFyYW0KKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwYXJhbV9uYW1lID0gcGFyYW0ubmFtZQorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFyZ192YWwgPSBrd2FyZ3MucG9wKHBhcmFt
X25hbWUpCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgIyBX
ZSBoYXZlIG5vIHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlci4gIEl0J3MgZmluZSB0aG91Z2gsCisg
ICAgICAgICAgICAgICAgIyBpZiBpdCBoYXMgYSBkZWZhdWx0IHZhbHVlLCBvciBpdCBpcyBhbiAn
KmFyZ3MnLWxpa2UKKyAgICAgICAgICAgICAgICAjIHBhcmFtZXRlciwgbGVmdCBhbG9uZSBieSB0
aGUgcHJvY2Vzc2luZyBvZiBwb3NpdGlvbmFsCisgICAgICAgICAgICAgICAgIyBhcmd1bWVudHMu
CisgICAgICAgICAgICAgICAgaWYgKG5vdCBwYXJ0aWFsIGFuZCBwYXJhbS5raW5kICE9IF9WQVJf
UE9TSVRJT05BTCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXJhbS5kZWZhdWx0IGlzIF9lbXB0eSk6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcigne2FyZyFyfSBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVl
Jy4gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1wYXJh
bV9uYW1lKSkKKworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhcmd1bWVudHNb
cGFyYW1fbmFtZV0gPSBhcmdfdmFsCisKKyAgICAgICAgaWYga3dhcmdzOgorICAgICAgICAgICAg
aWYga3dhcmdzX3BhcmFtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICMgUHJvY2VzcyBv
dXIgJyoqa3dhcmdzJy1saWtlIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tr
d2FyZ3NfcGFyYW0ubmFtZV0gPSBrd2FyZ3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cycpCisKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2JvdW5kX2FyZ3VtZW50c19jbHMoc2VsZiwgYXJndW1lbnRzKQor
CisgICAgZGVmIGJpbmQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgJycnR2V0IGEg
Qm91bmRBcmd1bWVudHMgb2JqZWN0LCB0aGF0IG1hcHMgdGhlIHBhc3NlZCBgYXJnc2AKKyAgICAg
ICAgYW5kIGBrd2FyZ3NgIHRvIHRoZSBmdW5jdGlvbidzIHNpZ25hdHVyZS4gIFJhaXNlcyBgVHlw
ZUVycm9yYAorICAgICAgICBpZiB0aGUgcGFzc2VkIGFyZ3VtZW50cyBjYW4gbm90IGJlIGJvdW5k
LgorICAgICAgICAnJycKKyAgICAgICAgcmV0dXJuIHNlbGYuX2JpbmQoYXJncywga3dhcmdzKQor
CisgICAgZGVmIGJpbmRfcGFydGlhbChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAn
JydHZXQgYSBCb3VuZEFyZ3VtZW50cyBvYmplY3QsIHRoYXQgcGFydGlhbGx5IG1hcHMgdGhlCisg
ICAgICAgIHBhc3NlZCBgYXJnc2AgYW5kIGBrd2FyZ3NgIHRvIHRoZSBmdW5jdGlvbidzIHNpZ25h
dHVyZS4KKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIGlmIHRoZSBwYXNzZWQgYXJndW1lbnRz
IGNhbiBub3QgYmUgYm91bmQuCisgICAgICAgICcnJworICAgICAgICByZXR1cm4gc2VsZi5fYmlu
ZChhcmdzLCBrd2FyZ3MsIHBhcnRpYWw9VHJ1ZSkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICByZW5kZXJfa3dfb25seV9zZXBhcmF0b3IgPSBU
cnVlCisgICAgICAgIGZvciBpZHgsIHBhcmFtIGluIGVudW1lcmF0ZShzZWxmLnBhcmFtZXRlcnMu
dmFsdWVzKCkpOgorICAgICAgICAgICAgZm9ybWF0dGVkID0gc3RyKHBhcmFtKQorCisgICAgICAg
ICAgICBraW5kID0gcGFyYW0ua2luZAorICAgICAgICAgICAgaWYga2luZCA9PSBfVkFSX1BPU0lU
SU9OQUw6CisgICAgICAgICAgICAgICAgIyBPSywgd2UgaGF2ZSBhbiAnKmFyZ3MnLWxpa2UgcGFy
YW1ldGVyLCBzbyB3ZSB3b24ndCBuZWVkCisgICAgICAgICAgICAgICAgIyBhICcqJyB0byBzZXBh
cmF0ZSBrZXl3b3JkLW9ubHkgYXJndW1lbnRzCisgICAgICAgICAgICAgICAgcmVuZGVyX2t3X29u
bHlfc2VwYXJhdG9yID0gRmFsc2UKKyAgICAgICAgICAgIGVsaWYga2luZCA9PSBfS0VZV09SRF9P
TkxZIGFuZCByZW5kZXJfa3dfb25seV9zZXBhcmF0b3I6CisgICAgICAgICAgICAgICAgIyBXZSBo
YXZlIGEga2V5d29yZC1vbmx5IHBhcmFtZXRlciB0byByZW5kZXIgYW5kIHdlIGhhdmVuJ3QKKyAg
ICAgICAgICAgICAgICAjIHJlbmRlcmVkIGFuICcqYXJncyctbGlrZSBwYXJhbWV0ZXIgYmVmb3Jl
LCBzbyBhZGQgYSAnKicKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciB0byB0aGUgcGFyYW1l
dGVycyBsaXN0ICgiZm9vKGFyZzEsICosIGFyZzIpIiBjYXNlKQorICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyonKQorICAgICAgICAgICAgICAgICMgVGhpcyBjb25kaXRpb24gc2hvdWxk
IGJlIG9ubHkgdHJpZ2dlcmVkIG9uY2UsIHNvCisgICAgICAgICAgICAgICAgIyByZXNldCB0aGUg
ZmxhZworICAgICAgICAgICAgICAgIHJlbmRlcl9rd19vbmx5X3NlcGFyYXRvciA9IEZhbHNlCisK
KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0dGVkKQorCisgICAgICAgIHJlbmRlcmVk
ID0gJyh7MH0pJy5mb3JtYXQoJywgJy5qb2luKHJlc3VsdCkpCisKKyAgICAgICAgaWYgc2VsZi5y
ZXR1cm5fYW5ub3RhdGlvbiBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgYW5ubyA9IGZvcm1h
dGFubm90YXRpb24oc2VsZi5yZXR1cm5fYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHJlbmRlcmVk
ICs9ICcgLT4gezB9Jy5mb3JtYXQoYW5ubykKKworICAgICAgICByZXR1cm4gcmVuZGVyZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3Mvb2RpY3QucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L2Z1bmNzaWdzL29kaWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMjFlOTcxYjM3OTRkZWU2ZTA3NzU2NGU1
YzZmODU0MzU3ZDIzNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdz
L29kaWN0LnB5CkBAIC0wLDAgKzEsMjYxIEBACisjIEJhY2twb3J0IG9mIE9yZGVyZWREaWN0KCkg
Y2xhc3MgdGhhdCBydW5zIG9uIFB5dGhvbiAyLjQsIDIuNSwgMi42LCAyLjcgYW5kIHB5cHkuCisj
IFBhc3NlcyBQeXRob24yLjcncyB0ZXN0IHN1aXRlIGFuZCBpbmNvcnBvcmF0ZXMgYWxsIHRoZSBs
YXRlc3QgdXBkYXRlcy4KKyMgQ29weXJpZ2h0IDIwMDkgUmF5bW9uZCBIZXR0aW5nZXIKKyMgaHR0
cDovL2NvZGUuYWN0aXZlc3RhdGUuY29tL3JlY2lwZXMvNTc2NjkzLworIk9yZGVyZWQgZGljdGlv
bmFyeSIKKwordHJ5OgorICAgIGZyb20gdGhyZWFkIGltcG9ydCBnZXRfaWRlbnQgYXMgX2dldF9p
ZGVudAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gZHVtbXlfdGhyZWFkIGltcG9ydCBn
ZXRfaWRlbnQgYXMgX2dldF9pZGVudAorCit0cnk6CisgICAgZnJvbSBfYWJjb2xsIGltcG9ydCBL
ZXlzVmlldywgVmFsdWVzVmlldywgSXRlbXNWaWV3CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
cGFzcworCisKK2NsYXNzIE9yZGVyZWREaWN0KGRpY3QpOgorICAgICdEaWN0aW9uYXJ5IHRoYXQg
cmVtZW1iZXJzIGluc2VydGlvbiBvcmRlcicKKyAgICAjIEFuIGluaGVyaXRlZCBkaWN0IG1hcHMg
a2V5cyB0byB2YWx1ZXMuCisgICAgIyBUaGUgaW5oZXJpdGVkIGRpY3QgcHJvdmlkZXMgX19nZXRp
dGVtX18sIF9fbGVuX18sIF9fY29udGFpbnNfXywgYW5kIGdldC4KKyAgICAjIFRoZSByZW1haW5p
bmcgbWV0aG9kcyBhcmUgb3JkZXItYXdhcmUuCisgICAgIyBCaWctTyBydW5uaW5nIHRpbWVzIGZv
ciBhbGwgbWV0aG9kcyBhcmUgdGhlIHNhbWUgYXMgZm9yIHJlZ3VsYXIgZGljdGlvbmFyaWVzLgor
CisgICAgIyBUaGUgaW50ZXJuYWwgc2VsZi5fX21hcCBkaWN0aW9uYXJ5IG1hcHMga2V5cyB0byBs
aW5rcyBpbiBhIGRvdWJseSBsaW5rZWQgbGlzdC4KKyAgICAjIFRoZSBjaXJjdWxhciBkb3VibHkg
bGlua2VkIGxpc3Qgc3RhcnRzIGFuZCBlbmRzIHdpdGggYSBzZW50aW5lbCBlbGVtZW50LgorICAg
ICMgVGhlIHNlbnRpbmVsIGVsZW1lbnQgbmV2ZXIgZ2V0cyBkZWxldGVkICh0aGlzIHNpbXBsaWZp
ZXMgdGhlIGFsZ29yaXRobSkuCisgICAgIyBFYWNoIGxpbmsgaXMgc3RvcmVkIGFzIGEgbGlzdCBv
ZiBsZW5ndGggdGhyZWU6ICBbUFJFViwgTkVYVCwgS0VZXS4KKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgJycnSW5pdGlhbGl6ZSBhbiBvcmRlcmVkIGRp
Y3Rpb25hcnkuICBTaWduYXR1cmUgaXMgdGhlIHNhbWUgYXMgZm9yCisgICAgICAgIHJlZ3VsYXIg
ZGljdGlvbmFyaWVzLCBidXQga2V5d29yZCBhcmd1bWVudHMgYXJlIG5vdCByZWNvbW1lbmRlZAor
ICAgICAgICBiZWNhdXNlIHRoZWlyIGluc2VydGlvbiBvcmRlciBpcyBhcmJpdHJhcnkuCisKKyAg
ICAgICAgJycnCisgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3IoJ2V4cGVjdGVkIGF0IG1vc3QgMSBhcmd1bWVudHMsIGdvdCAlZCcgJSBsZW4oYXJn
cykpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX19yb290CisgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX19yb290ID0gcm9vdCA9IFtdICAg
ICAgICAgICAgICAgICAgICAgIyBzZW50aW5lbCBub2RlCisgICAgICAgICAgICByb290WzpdID0g
W3Jvb3QsIHJvb3QsIE5vbmVdCisgICAgICAgICAgICBzZWxmLl9fbWFwID0ge30KKyAgICAgICAg
c2VsZi5fX3VwZGF0ZSgqYXJncywgKiprd2RzKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYs
IGtleSwgdmFsdWUsIGRpY3Rfc2V0aXRlbT1kaWN0Ll9fc2V0aXRlbV9fKToKKyAgICAgICAgJ29k
Ll9fc2V0aXRlbV9fKGksIHkpIDw9PT4gb2RbaV09eScKKyAgICAgICAgIyBTZXR0aW5nIGEgbmV3
IGl0ZW0gY3JlYXRlcyBhIG5ldyBsaW5rIHdoaWNoIGdvZXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlu
a2VkCisgICAgICAgICMgbGlzdCwgYW5kIHRoZSBpbmhlcml0ZWQgZGljdGlvbmFyeSBpcyB1cGRh
dGVkIHdpdGggdGhlIG5ldyBrZXkvdmFsdWUgcGFpci4KKyAgICAgICAgaWYga2V5IG5vdCBpbiBz
ZWxmOgorICAgICAgICAgICAgcm9vdCA9IHNlbGYuX19yb290CisgICAgICAgICAgICBsYXN0ID0g
cm9vdFswXQorICAgICAgICAgICAgbGFzdFsxXSA9IHJvb3RbMF0gPSBzZWxmLl9fbWFwW2tleV0g
PSBbbGFzdCwgcm9vdCwga2V5XQorICAgICAgICBkaWN0X3NldGl0ZW0oc2VsZiwga2V5LCB2YWx1
ZSkKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXksIGRpY3RfZGVsaXRlbT1kaWN0Ll9f
ZGVsaXRlbV9fKToKKyAgICAgICAgJ29kLl9fZGVsaXRlbV9fKHkpIDw9PT4gZGVsIG9kW3ldJwor
ICAgICAgICAjIERlbGV0aW5nIGFuIGV4aXN0aW5nIGl0ZW0gdXNlcyBzZWxmLl9fbWFwIHRvIGZp
bmQgdGhlIGxpbmsgd2hpY2ggaXMKKyAgICAgICAgIyB0aGVuIHJlbW92ZWQgYnkgdXBkYXRpbmcg
dGhlIGxpbmtzIGluIHRoZSBwcmVkZWNlc3NvciBhbmQgc3VjY2Vzc29yIG5vZGVzLgorICAgICAg
ICBkaWN0X2RlbGl0ZW0oc2VsZiwga2V5KQorICAgICAgICBsaW5rX3ByZXYsIGxpbmtfbmV4dCwg
a2V5ID0gc2VsZi5fX21hcC5wb3Aoa2V5KQorICAgICAgICBsaW5rX3ByZXZbMV0gPSBsaW5rX25l
eHQKKyAgICAgICAgbGlua19uZXh0WzBdID0gbGlua19wcmV2CisKKyAgICBkZWYgX19pdGVyX18o
c2VsZik6CisgICAgICAgICdvZC5fX2l0ZXJfXygpIDw9PT4gaXRlcihvZCknCisgICAgICAgIHJv
b3QgPSBzZWxmLl9fcm9vdAorICAgICAgICBjdXJyID0gcm9vdFsxXQorICAgICAgICB3aGlsZSBj
dXJyIGlzIG5vdCByb290OgorICAgICAgICAgICAgeWllbGQgY3VyclsyXQorICAgICAgICAgICAg
Y3VyciA9IGN1cnJbMV0KKworICAgIGRlZiBfX3JldmVyc2VkX18oc2VsZik6CisgICAgICAgICdv
ZC5fX3JldmVyc2VkX18oKSA8PT0+IHJldmVyc2VkKG9kKScKKyAgICAgICAgcm9vdCA9IHNlbGYu
X19yb290CisgICAgICAgIGN1cnIgPSByb290WzBdCisgICAgICAgIHdoaWxlIGN1cnIgaXMgbm90
IHJvb3Q6CisgICAgICAgICAgICB5aWVsZCBjdXJyWzJdCisgICAgICAgICAgICBjdXJyID0gY3Vy
clswXQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICAnb2QuY2xlYXIoKSAtPiBOb25l
LiAgUmVtb3ZlIGFsbCBpdGVtcyBmcm9tIG9kLicKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
Zm9yIG5vZGUgaW4gc2VsZi5fX21hcC5pdGVydmFsdWVzKCk6CisgICAgICAgICAgICAgICAgZGVs
IG5vZGVbOl0KKyAgICAgICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAorICAgICAgICAgICAgcm9v
dFs6XSA9IFtyb290LCByb290LCBOb25lXQorICAgICAgICAgICAgc2VsZi5fX21hcC5jbGVhcigp
CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgZGljdC5jbGVhcihzZWxmKQorCisgICAgZGVmIHBvcGl0ZW0oc2VsZiwgbGFzdD1UcnVlKToK
KyAgICAgICAgJycnb2QucG9waXRlbSgpIC0+IChrLCB2KSwgcmV0dXJuIGFuZCByZW1vdmUgYSAo
a2V5LCB2YWx1ZSkgcGFpci4KKyAgICAgICAgUGFpcnMgYXJlIHJldHVybmVkIGluIExJRk8gb3Jk
ZXIgaWYgbGFzdCBpcyB0cnVlIG9yIEZJRk8gb3JkZXIgaWYgZmFsc2UuCisKKyAgICAgICAgJycn
CisgICAgICAgIGlmIG5vdCBzZWxmOgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2RpY3Rp
b25hcnkgaXMgZW1wdHknKQorICAgICAgICByb290ID0gc2VsZi5fX3Jvb3QKKyAgICAgICAgaWYg
bGFzdDoKKyAgICAgICAgICAgIGxpbmsgPSByb290WzBdCisgICAgICAgICAgICBsaW5rX3ByZXYg
PSBsaW5rWzBdCisgICAgICAgICAgICBsaW5rX3ByZXZbMV0gPSByb290CisgICAgICAgICAgICBy
b290WzBdID0gbGlua19wcmV2CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaW5rID0gcm9v
dFsxXQorICAgICAgICAgICAgbGlua19uZXh0ID0gbGlua1sxXQorICAgICAgICAgICAgcm9vdFsx
XSA9IGxpbmtfbmV4dAorICAgICAgICAgICAgbGlua19uZXh0WzBdID0gcm9vdAorICAgICAgICBr
ZXkgPSBsaW5rWzJdCisgICAgICAgIGRlbCBzZWxmLl9fbWFwW2tleV0KKyAgICAgICAgdmFsdWUg
PSBkaWN0LnBvcChzZWxmLCBrZXkpCisgICAgICAgIHJldHVybiBrZXksIHZhbHVlCisKKyAgICAj
IC0tIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBkbyBub3QgZGVwZW5kIG9uIHRoZSBpbnRlcm5hbCBz
dHJ1Y3R1cmUgLS0KKworICAgIGRlZiBrZXlzKHNlbGYpOgorICAgICAgICAnb2Qua2V5cygpIC0+
IGxpc3Qgb2Yga2V5cyBpbiBvZCcKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZikKKworICAgIGRl
ZiB2YWx1ZXMoc2VsZik6CisgICAgICAgICdvZC52YWx1ZXMoKSAtPiBsaXN0IG9mIHZhbHVlcyBp
biBvZCcKKyAgICAgICAgcmV0dXJuIFtzZWxmW2tleV0gZm9yIGtleSBpbiBzZWxmXQorCisgICAg
ZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAnb2QuaXRlbXMoKSAtPiBsaXN0IG9mIChrZXksIHZh
bHVlKSBwYWlycyBpbiBvZCcKKyAgICAgICAgcmV0dXJuIFsoa2V5LCBzZWxmW2tleV0pIGZvciBr
ZXkgaW4gc2VsZl0KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgJ29kLml0ZXJr
ZXlzKCkgLT4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5cyBpbiBvZCcKKyAgICAgICAgcmV0dXJu
IGl0ZXIoc2VsZikKKworICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICAnb2QuaXRl
cnZhbHVlcyAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSB2YWx1ZXMgaW4gb2QnCisgICAgICAgIGZv
ciBrIGluIHNlbGY6CisgICAgICAgICAgICB5aWVsZCBzZWxmW2tdCisKKyAgICBkZWYgaXRlcml0
ZW1zKHNlbGYpOgorICAgICAgICAnb2QuaXRlcml0ZW1zIC0+IGFuIGl0ZXJhdG9yIG92ZXIgdGhl
IChrZXksIHZhbHVlKSBpdGVtcyBpbiBvZCcKKyAgICAgICAgZm9yIGsgaW4gc2VsZjoKKyAgICAg
ICAgICAgIHlpZWxkIChrLCBzZWxmW2tdKQorCisgICAgZGVmIHVwZGF0ZSgqYXJncywgKiprd2Rz
KToKKyAgICAgICAgJycnb2QudXBkYXRlKEUsICoqRikgLT4gTm9uZS4gIFVwZGF0ZSBvZCBmcm9t
IGRpY3QvaXRlcmFibGUgRSBhbmQgRi4KKworICAgICAgICBJZiBFIGlzIGEgZGljdCBpbnN0YW5j
ZSwgZG9lczogICAgICAgICAgIGZvciBrIGluIEU6IG9kW2tdID0gRVtrXQorICAgICAgICBJZiBF
IGhhcyBhIC5rZXlzKCkgbWV0aG9kLCBkb2VzOiAgICAgICAgIGZvciBrIGluIEUua2V5cygpOiBv
ZFtrXSA9IEVba10KKyAgICAgICAgT3IgaWYgRSBpcyBhbiBpdGVyYWJsZSBvZiBpdGVtcywgZG9l
czogICBmb3IgaywgdiBpbiBFOiBvZFtrXSA9IHYKKyAgICAgICAgSW4gZWl0aGVyIGNhc2UsIHRo
aXMgaXMgZm9sbG93ZWQgYnk6ICAgICBmb3IgaywgdiBpbiBGLml0ZW1zKCk6IG9kW2tdID0gdgor
CisgICAgICAgICcnJworICAgICAgICBpZiBsZW4oYXJncykgPiAyOgorICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKCd1cGRhdGUoKSB0YWtlcyBhdCBtb3N0IDIgcG9zaXRpb25hbCAnCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2FyZ3VtZW50cyAoJWQgZ2l2ZW4pJyAlIChsZW4oYXJn
cyksKSkKKyAgICAgICAgZWxpZiBub3QgYXJnczoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigndXBkYXRlKCkgdGFrZXMgYXQgbGVhc3QgMSBhcmd1bWVudCAoMCBnaXZlbiknKQorICAgICAg
ICBzZWxmID0gYXJnc1swXQorICAgICAgICAjIE1ha2UgcHJvZ3Jlc3NpdmVseSB3ZWFrZXIgYXNz
dW1wdGlvbnMgYWJvdXQgIm90aGVyIgorICAgICAgICBvdGhlciA9ICgpCisgICAgICAgIGlmIGxl
bihhcmdzKSA9PSAyOgorICAgICAgICAgICAgb3RoZXIgPSBhcmdzWzFdCisgICAgICAgIGlmIGlz
aW5zdGFuY2Uob3RoZXIsIGRpY3QpOgorICAgICAgICAgICAgZm9yIGtleSBpbiBvdGhlcjoKKyAg
ICAgICAgICAgICAgICBzZWxmW2tleV0gPSBvdGhlcltrZXldCisgICAgICAgIGVsaWYgaGFzYXR0
cihvdGhlciwgJ2tleXMnKToKKyAgICAgICAgICAgIGZvciBrZXkgaW4gb3RoZXIua2V5cygpOgor
ICAgICAgICAgICAgICAgIHNlbGZba2V5XSA9IG90aGVyW2tleV0KKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIG90aGVyOgorICAgICAgICAgICAgICAgIHNlbGZb
a2V5XSA9IHZhbHVlCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGt3ZHMuaXRlbXMoKToKKyAg
ICAgICAgICAgIHNlbGZba2V5XSA9IHZhbHVlCisKKyAgICBfX3VwZGF0ZSA9IHVwZGF0ZSAgIyBs
ZXQgc3ViY2xhc3NlcyBvdmVycmlkZSB1cGRhdGUgd2l0aG91dCBicmVha2luZyBfX2luaXRfXwor
CisgICAgX19tYXJrZXIgPSBvYmplY3QoKQorCisgICAgZGVmIHBvcChzZWxmLCBrZXksIGRlZmF1
bHQ9X19tYXJrZXIpOgorICAgICAgICAnJydvZC5wb3Aoa1ssZF0pIC0+IHYsIHJlbW92ZSBzcGVj
aWZpZWQga2V5IGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUuCisgICAgICAgIElm
IGtleSBpcyBub3QgZm91bmQsIGQgaXMgcmV0dXJuZWQgaWYgZ2l2ZW4sIG90aGVyd2lzZSBLZXlF
cnJvciBpcyByYWlzZWQuCisKKyAgICAgICAgJycnCisgICAgICAgIGlmIGtleSBpbiBzZWxmOgor
ICAgICAgICAgICAgcmVzdWx0ID0gc2VsZltrZXldCisgICAgICAgICAgICBkZWwgc2VsZltrZXld
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGlmIGRlZmF1bHQgaXMgc2VsZi5f
X21hcmtlcjoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKyAgICAgICAgcmV0dXJu
IGRlZmF1bHQKKworICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToK
KyAgICAgICAgJ29kLnNldGRlZmF1bHQoa1ssZF0pIC0+IG9kLmdldChrLGQpLCBhbHNvIHNldCBv
ZFtrXT1kIGlmIGsgbm90IGluIG9kJworICAgICAgICBpZiBrZXkgaW4gc2VsZjoKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmW2tleV0KKyAgICAgICAgc2VsZltrZXldID0gZGVmYXVsdAorICAgICAg
ICByZXR1cm4gZGVmYXVsdAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYsIF9yZXByX3J1bm5pbmc9
e30pOgorICAgICAgICAnb2QuX19yZXByX18oKSA8PT0+IHJlcHIob2QpJworICAgICAgICBjYWxs
X2tleSA9IGlkKHNlbGYpLCBfZ2V0X2lkZW50KCkKKyAgICAgICAgaWYgY2FsbF9rZXkgaW4gX3Jl
cHJfcnVubmluZzoKKyAgICAgICAgICAgIHJldHVybiAnLi4uJworICAgICAgICBfcmVwcl9ydW5u
aW5nW2NhbGxfa2V5XSA9IDEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgbm90IHNlbGY6
CisgICAgICAgICAgICAgICAgcmV0dXJuICclcygpJyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVf
XywpCisgICAgICAgICAgICByZXR1cm4gJyVzKCVyKScgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1l
X18sIHNlbGYuaXRlbXMoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGRlbCBfcmVw
cl9ydW5uaW5nW2NhbGxfa2V5XQorCisgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAg
ICdSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nJworICAgICAgICBpdGVtcyA9
IFtbaywgc2VsZltrXV0gZm9yIGsgaW4gc2VsZl0KKyAgICAgICAgaW5zdF9kaWN0ID0gdmFycyhz
ZWxmKS5jb3B5KCkKKyAgICAgICAgZm9yIGsgaW4gdmFycyhPcmRlcmVkRGljdCgpKToKKyAgICAg
ICAgICAgIGluc3RfZGljdC5wb3AoaywgTm9uZSkKKyAgICAgICAgaWYgaW5zdF9kaWN0OgorICAg
ICAgICAgICAgcmV0dXJuIChzZWxmLl9fY2xhc3NfXywgKGl0ZW1zLCksIGluc3RfZGljdCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLCAoaXRlbXMsKQorCisgICAgZGVmIGNvcHkoc2Vs
Zik6CisgICAgICAgICdvZC5jb3B5KCkgLT4gYSBzaGFsbG93IGNvcHkgb2Ygb2QnCisgICAgICAg
IHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IGZyb21rZXlzKGNscywgaXRlcmFibGUsIHZhbHVlPU5vbmUpOgorICAgICAgICAnJydPRC5mcm9t
a2V5cyhTWywgdl0pIC0+IE5ldyBvcmRlcmVkIGRpY3Rpb25hcnkgd2l0aCBrZXlzIGZyb20gUwor
ICAgICAgICBhbmQgdmFsdWVzIGVxdWFsIHRvIHYgKHdoaWNoIGRlZmF1bHRzIHRvIE5vbmUpLgor
CisgICAgICAgICcnJworICAgICAgICBkID0gY2xzKCkKKyAgICAgICAgZm9yIGtleSBpbiBpdGVy
YWJsZToKKyAgICAgICAgICAgIGRba2V5XSA9IHZhbHVlCisgICAgICAgIHJldHVybiBkCisKKyAg
ICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgJycnb2QuX19lcV9fKHkpIDw9PT4g
b2Q9PXkuICBDb21wYXJpc29uIHRvIGFub3RoZXIgT0QgaXMgb3JkZXItc2Vuc2l0aXZlCisgICAg
ICAgIHdoaWxlIGNvbXBhcmlzb24gdG8gYSByZWd1bGFyIG1hcHBpbmcgaXMgb3JkZXItaW5zZW5z
aXRpdmUuCisKKyAgICAgICAgJycnCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIE9yZGVy
ZWREaWN0KToKKyAgICAgICAgICAgIHJldHVybiBsZW4oc2VsZik9PWxlbihvdGhlcikgYW5kIHNl
bGYuaXRlbXMoKSA9PSBvdGhlci5pdGVtcygpCisgICAgICAgIHJldHVybiBkaWN0Ll9fZXFfXyhz
ZWxmLCBvdGhlcikKKworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gbm90IHNlbGYgPT0gb3RoZXIKKworICAgICMgLS0gdGhlIGZvbGxvd2luZyBtZXRob2RzIGFy
ZSBvbmx5IHVzZWQgaW4gUHl0aG9uIDIuNyAtLQorCisgICAgZGVmIHZpZXdrZXlzKHNlbGYpOgor
ICAgICAgICAib2Qudmlld2tleXMoKSAtPiBhIHNldC1saWtlIG9iamVjdCBwcm92aWRpbmcgYSB2
aWV3IG9uIG9kJ3Mga2V5cyIKKyAgICAgICAgcmV0dXJuIEtleXNWaWV3KHNlbGYpCisKKyAgICBk
ZWYgdmlld3ZhbHVlcyhzZWxmKToKKyAgICAgICAgIm9kLnZpZXd2YWx1ZXMoKSAtPiBhbiBvYmpl
Y3QgcHJvdmlkaW5nIGEgdmlldyBvbiBvZCdzIHZhbHVlcyIKKyAgICAgICAgcmV0dXJuIFZhbHVl
c1ZpZXcoc2VsZikKKworICAgIGRlZiB2aWV3aXRlbXMoc2VsZik6CisgICAgICAgICJvZC52aWV3
aXRlbXMoKSAtPiBhIHNldC1saWtlIG9iamVjdCBwcm92aWRpbmcgYSB2aWV3IG9uIG9kJ3MgaXRl
bXMiCisgICAgICAgIHJldHVybiBJdGVtc1ZpZXcoc2VsZikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvZnVuY3NpZ3MvdmVyc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdmVyc2lv
bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44OTZhMzcwY2FkMTZjZjE4MzZjZTEzZjNiNTRkNDljMTkxZGY4Mjgx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CkBA
IC0wLDAgKzEgQEAKK19fdmVyc2lvbl9fID0gIjAuNCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNmEzMDZlMWU0ZWM0OWRjYTFiYTBkNDU0NWU1NDU5MTEz
OTNkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3Mv
X19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0LnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVp
cmVtZW50cy9kZXZlbG9wbWVudC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy9kZXZl
bG9wbWVudC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhZmIwYTUyN2QzZTc5NmM3MDgwZjEwMDg1YjUzN2E3
MzAwZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL2Rl
dmVsb3BtZW50LnR4dApAQCAtMCwwICsxLDYgQEAKK2NvdmVyYWdlCitjb3ZlcmFsbHMKK3BpcAor
Zmxha2U4CitzcGhpbngKK3doZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVt
ZW50cy9wcm9kdWN0aW9uLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rp
b24udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUz
OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTU1ZmE0NzU2N2MzYjk5YWZiNzEwMjg2ZDMyOTM1MzRhYzlhMWQ0ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL2RldmVsb3BtZW50LnR4
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rpb24udHh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mvc2V0dXAuY2ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVlNDA5MDAxN2E5YmVjNWRlNjBhNzQ1ZDE3MDA3YTllOTVmMzFhNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVwLmNmZwpAQCAtMCwwICsxLDIgQEAKK1t3aGVl
bF0KK3VuaXZlcnNhbCA9IDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mvc2V0dXAucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YjA5MTI2MDQ1M2MxNDYzOGY3MGZj
ZTlmNTAyZGQ4MmJiZThiM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVw
LnB5CkBAIC0wLDAgKzEsNTUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorZnJvbSBzZXR1cHRv
b2xzIGltcG9ydCBzZXR1cAoraW1wb3J0IHJlCitpbXBvcnQgc3lzCisKK2RlZiBsb2FkX3ZlcnNp
b24oZmlsZW5hbWU9J2Z1bmNzaWdzL3ZlcnNpb24ucHknKToKKyAgICAiUGFyc2UgYSBfX3ZlcnNp
b25fXyBudW1iZXIgZnJvbSBhIHNvdXJjZSBmaWxlIgorICAgIHdpdGggb3BlbihmaWxlbmFtZSkg
YXMgc291cmNlOgorICAgICAgICB0ZXh0ID0gc291cmNlLnJlYWQoKQorICAgICAgICBtYXRjaCA9
IHJlLnNlYXJjaChyIl5fX3ZlcnNpb25fXyA9IFsnXCJdKFteJ1wiXSopWydcIl0iLCB0ZXh0KQor
ICAgICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAgICBtc2cgPSAiVW5hYmxlIHRvIGZpbmQg
dmVyc2lvbiBudW1iZXIgaW4ge30iLmZvcm1hdChmaWxlbmFtZSkKKyAgICAgICAgICAgIHJhaXNl
IFJ1bnRpbWVFcnJvcihtc2cpCisgICAgICAgIHZlcnNpb24gPSBtYXRjaC5ncm91cCgxKQorICAg
ICAgICByZXR1cm4gdmVyc2lvbgorCitkZWYgbG9hZF9yc3QoZmlsZW5hbWU9J2RvY3Mvc291cmNl
L2d1aWRlX2NvbnRlbnQucnN0Jyk6CisgICAgIlB1cmdlIHJlZnMgZGlyZWN0aXZlcyBmcm9tIHJl
c3RydWN0dXJlZCB0ZXh0IgorICAgIHdpdGggb3BlbihmaWxlbmFtZSkgYXMgc291cmNlOgorICAg
ICAgICB0ZXh0ID0gc291cmNlLnJlYWQoKQorICAgICAgICBkb2MgPSByZS5zdWIocic6XHcrOmB+
PyhbYS16QS1aLl8oKV0rKWAnLCByJypcMSonLCB0ZXh0KQorICAgICAgICByZXR1cm4gZG9jCisK
K3NldHVwKAorICAgIG5hbWU9ImZ1bmNzaWdzIiwKKyAgICB2ZXJzaW9uPWxvYWRfdmVyc2lvbigp
LAorICAgIHBhY2thZ2VzPVsnZnVuY3NpZ3MnXSwKKyAgICB6aXBfc2FmZT1GYWxzZSwKKyAgICBh
dXRob3I9IkFhcm9uIElsZXMiLAorICAgIGF1dGhvcl9lbWFpbD0iYWFyb24uaWxlc0BnbWFpbC5j
b20iLAorICAgIHVybD0iaHR0cDovL2Z1bmNzaWdzLnJlYWR0aGVkb2NzLm9yZyIsCisgICAgZGVz
Y3JpcHRpb249IlB5dGhvbiBmdW5jdGlvbiBzaWduYXR1cmVzIGZyb20gUEVQMzYyIGZvciBQeXRo
b24gMi42LCAyLjcgYW5kIDMuMisiLAorICAgIGxvbmdfZGVzY3JpcHRpb249b3BlbignUkVBRE1F
LnJzdCcpLnJlYWQoKSwKKyAgICAjIGxvbmdfZGVzY3JpcHRpb249bG9hZF9yc3QoKSwKKyAgICBs
aWNlbnNlPSJBU0wiLAorICAgIGluc3RhbGxfcmVxdWlyZXMgPSBbXSwKKyAgICBjbGFzc2lmaWVy
cyA9IFsKKyAgICAgICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YScsCisgICAgICAg
ICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKKyAgICAgICAgJ0xpY2Vuc2UgOjog
T1NJIEFwcHJvdmVkIDo6IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlJywKKyAgICAgICAgJ09wZXJh
dGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uJywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhv
biA6OiAyJywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjYn
LAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNycsCisgICAg
ICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMycsCisgICAgICAgICdQcm9n
cmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4yJywKKyAgICAgICAgJ1Byb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24nLAorICAgICAgICAnUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IFB5UHknLAor
ICAgICAgICAnVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIDo6IFB5
dGhvbiBNb2R1bGVzJworICAgIF0sCisgICAgdGVzdHNfcmVxdWlyZSA9IFtdIGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPiAyIGVsc2UgWyd1bml0dGVzdDInXSwKKyAgICB0ZXN0X3N1aXRlID0gInRl
c3RzIiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMiBlbHNlICd1bml0dGVzdDIuY29sbGVjdG9y
JworKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBl
MTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
dGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0
X2Zvcm1hdGFubm90YXRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfZm9ybWF0YW5u
b3RhdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDdhODg3M2Y4NTVjYWU4ZWJlMjkzZTQ0ZThlMDU3MjFj
ZWVmNjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Zvcm1h
dGFubm90YXRpb24ucHkKQEAgLTAsMCArMSwyNyBAQAordHJ5OgorICAgICMgcHl0aG9uIDIueAor
ICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAg
ICAjIHB5dGhvbiAzLngKKyAgICBpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGZ1bmNzaWdzCisK
KworY2xhc3MgVGVzdEZvcm1hdEFubm90YXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRl
ZiB0ZXN0X3N0cmluZyAoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuY3NpZ3Mu
Zm9ybWF0YW5ub3RhdGlvbigiYW5ub3RhdGlvbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICInYW5ub3RhdGlvbiciKQorCisgICAgZGVmIHRlc3RfYnVpbHRpbl90eXBlIChzZWxmKToKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jc2lncy5mb3JtYXRhbm5vdGF0aW9uKGludCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgImludCIpCisKKyAgICBkZWYgdGVzdF91c2VyX3R5cGUg
KHNlbGYpOgorICAgICAgICBjbGFzcyBkdW1teSAob2JqZWN0KTogcGFzcworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZ1bmNzaWdzLmZvcm1hdGFubm90YXRpb24oZHVtbXkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0cy50ZXN0X2Zvcm1hdGFubm90YXRpb24uZHVtbXkiKQorCisK
K2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdW5pdHRlc3QuYmVnaW4oKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy90ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlY2MwYThhNzA5MTk4YzY5OWNk
MTk3NzNhYjQyMzI4MDE3YjJiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rl
c3RzL3Rlc3RfZnVuY3NpZ3MucHkKQEAgLTAsMCArMSw5MyBAQAordHJ5OgorICAgICMgcHl0aG9u
IDIueAorICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2V4Y2VwdCBJbXBvcnRFcnJv
cjoKKyAgICAjIHB5dGhvbiAzLngKKyAgICBpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGRvY3Rl
c3QKK2ltcG9ydCBzeXMKKworaW1wb3J0IGZ1bmNzaWdzIGFzIGluc3BlY3QKKworCitjbGFzcyBU
ZXN0RnVuY3Rpb25TaWduYXR1cmVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIEBzdGF0aWNt
ZXRob2QKKyAgICBkZWYgc2lnbmF0dXJlKGZ1bmMpOgorICAgICAgICBzaWcgPSBpbnNwZWN0LnNp
Z25hdHVyZShmdW5jKQorICAgICAgICByZXR1cm4gKHR1cGxlKChwYXJhbS5uYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAoRWxsaXBzaXMgaWYgcGFyYW0uZGVmYXVsdCBpcyBwYXJhbS5lbXB0
eSBlbHNlIHBhcmFtLmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAoRWxsaXBzaXMg
aWYgcGFyYW0uYW5ub3RhdGlvbiBpcyBwYXJhbS5lbXB0eQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHBhcmFtLmFubm90YXRpb24p
LAorICAgICAgICAgICAgICAgICAgICAgICBzdHIocGFyYW0ua2luZCkubG93ZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwYXJhbSBpbiBzaWcucGFyYW1ldGVy
cy52YWx1ZXMoKSksCisgICAgICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHNpZy5yZXR1cm5fYW5u
b3RhdGlvbiBpcyBzaWcuZW1wdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSBzaWcucmV0dXJuX2Fubm90YXRpb24pKQorCisgICAgZGVmIHRlc3RfemVy
b19hcmd1bWVudHMoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBwYXNz
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUodGVzdCksCisgICAgICAg
ICAgICAgICAgKCgpLCBFbGxpcHNpcykpCisKKyAgICBkZWYgdGVzdF9zaW5nbGVfcG9zaXRpb25h
bF9hcmd1bWVudChzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoYSk6CisgICAgICAgICAgICBwYXNz
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUodGVzdCksCisgICAgICAg
ICAgICAgICAgKCgoKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3
b3JkIikpLCksIEVsbGlwc2lzKSkKKworICAgIGRlZiB0ZXN0X3NpbmdsZV9rZXl3b3JkX2FyZ3Vt
ZW50KHNlbGYpOgorICAgICAgICBkZWYgdGVzdChhPU5vbmUpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLAorICAgICAgICAg
ICAgICAgICgoKCgnYScsIE5vbmUsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikp
LCksIEVsbGlwc2lzKSkKKworICAgIGRlZiB0ZXN0X3Zhcl9hcmdzKHNlbGYpOgorICAgICAgICBk
ZWYgdGVzdCgqYXJncyk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5zaWduYXR1cmUodGVzdCksCisgICAgICAgICAgICAgICAgKCgoKCdhcmdzJywgRWxs
aXBzaXMsIEVsbGlwc2lzLCAidmFyX3Bvc2l0aW9uYWwiKSksKSwgRWxsaXBzaXMpKQorCisgICAg
ZGVmIHRlc3Rfa2V5d29yZHNfYXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKiprd2FyZ3Mp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0
dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICgoKCgna3dhcmdzJywgRWxsaXBzaXMsIEVsbGlw
c2lzLCAidmFyX2tleXdvcmQiKSksKSwgRWxsaXBzaXMpKQorCisgICAgZGVmIHRlc3RfbXVsdGlw
bGVfYXJndW1lbnRzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdChhLCBiPU5vbmUsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5zaWduYXR1cmUodGVzdCksICgoCisgICAgICAgICAgICAoJ2EnLCBFbGxpcHNpcywgRWxsaXBz
aXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICgnYicsIE5vbmUsIEVs
bGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAoJ2FyZ3MnLCBF
bGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAgICAgKCdrd2Fy
Z3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfa2V5d29yZCIpLAorICAgICAgICAgICAgKSwg
RWxsaXBzaXMpKQorCisgICAgZGVmIHRlc3RfaGFzX3ZlcnNpb24oc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpbnNwZWN0Ll9fdmVyc2lvbl9fKQorCisgICAgZGVmIHRlc3RfcmVhZG1l
KHNlbGYpOgorICAgICAgICBkb2N0ZXN0LnRlc3RmaWxlKCcuLi9SRUFETUUucnN0JykKKworICAg
IGRlZiB0ZXN0X3VuYm91bmRfbWV0aG9kKHNlbGYpOgorICAgICAgICBpZiBzeXMudmVyc2lvbl9p
bmZvIDwgKDMsKToKKyAgICAgICAgICAgIHNlbGZfa2luZCA9ICJwb3NpdGlvbmFsX29ubHkiCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmX2tpbmQgPSAicG9zaXRpb25hbF9vcl9rZXl3
b3JkIgorICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgbWV0aG9k
KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBtZXRob2Rfd2l0
aF9hcmdzKHNlbGYsIGEpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNpZ25hdHVyZShUZXN0Lm1ldGhvZCksCisgICAgICAgICAgICAgICAgKCgo
KCdzZWxmJywgRWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxmX2tpbmQpKSwpLCBFbGxpcHNpcykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoVGVzdC5tZXRob2Rfd2l0aF9h
cmdzKSwgKCgKKyAgICAgICAgICAgICAgICAoJ3NlbGYnLCBFbGxpcHNpcywgRWxsaXBzaXMsIHNl
bGZfa2luZCksCisgICAgICAgICAgICAgICAgKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9z
aXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgKSwgRWxsaXBzaXMpKQorCisK
K2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdW5pdHRlc3QuYmVnaW4oKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3QucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L3Rlc3RzL3Rlc3RfaW5zcGVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjNjMzIzZWFmZDk4NjAzMTA1YmEw
NTdlY2VmMzQ5NWZhMTYyZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0
cy90ZXN0X2luc3BlY3QucHkKQEAgLTAsMCArMSwxMDE5IEBACisjIENvcHlyaWdodCAyMDAxLTIw
MTMgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb247IEFsbCBSaWdodHMgUmVzZXJ2ZWQKK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHN5cworCit0cnk6CisgICAgaW1wb3J0IHVu
aXR0ZXN0MiBhcyB1bml0dGVzdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCB1bml0
dGVzdAorCitpbXBvcnQgZnVuY3NpZ3MgYXMgaW5zcGVjdAorCisKK2NsYXNzIFRlc3RTaWduYXR1
cmVPYmplY3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg
c2lnbmF0dXJlKGZ1bmMpOgorICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShmdW5jKQor
ICAgICAgICByZXR1cm4gKHR1cGxlKChwYXJhbS5uYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAoRWxsaXBzaXMgaWYgcGFyYW0uZGVmYXVsdCBpcyBwYXJhbS5lbXB0eSBlbHNlIHBhcmFtLmRl
ZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAoRWxsaXBzaXMgaWYgcGFyYW0uYW5ub3Rh
dGlvbiBpcyBwYXJhbS5lbXB0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlIHBhcmFtLmFubm90YXRpb24pLAorICAgICAgICAgICAg
ICAgICAgICAgICBzdHIocGFyYW0ua2luZCkubG93ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciBwYXJhbSBpbiBzaWcucGFyYW1ldGVycy52YWx1ZXMoKSksCisg
ICAgICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHNpZy5yZXR1cm5fYW5ub3RhdGlvbiBpcyBzaWcu
ZW1wdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBz
aWcucmV0dXJuX2Fubm90YXRpb24pKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLl9faW5pdF9fKHNlbGYsICphcmdz
LCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2Fzc2VydFJhaXNlc1Jl
Z2V4Jyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4ID0gc2VsZi5hc3NlcnRS
YWlzZXNSZWdleHAKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBl
eGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX29iamVjdChzZWxmKToKKyAgICBTID0gaW5zcGVj
dC5TaWduYXR1cmUKKyAgICBQID0gaW5zcGVjdC5QYXJhbWV0ZXIKKworICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyKFMoKSksICcoKScpCisKKyAgICBkZWYgdGVzdChwbywgcGssICphcmdzLCBrbywg
Kiprd2FyZ3MpOgorICAgICAgICBwYXNzCisgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVz
dCkKKyAgICBwbyA9IHNpZy5wYXJhbWV0ZXJzWydwbyddLnJlcGxhY2Uoa2luZD1QLlBPU0lUSU9O
QUxfT05MWSkKKyAgICBwayA9IHNpZy5wYXJhbWV0ZXJzWydwayddCisgICAgYXJncyA9IHNpZy5w
YXJhbWV0ZXJzWydhcmdzJ10KKyAgICBrbyA9IHNpZy5wYXJhbWV0ZXJzWydrbyddCisgICAga3dh
cmdzID0gc2lnLnBhcmFtZXRlcnNbJ2t3YXJncyddCisKKyAgICBTKChwbywgcGssIGFyZ3MsIGtv
LCBrd2FyZ3MpKQorCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3Is
ICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgUygocGssIHBvLCBhcmdzLCBrbywg
a3dhcmdzKSkKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAn
d3JvbmcgcGFyYW1ldGVyIG9yZGVyJyk6CisgICAgICAgIFMoKHBvLCBhcmdzLCBwaywga28sIGt3
YXJncykpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ3dy
b25nIHBhcmFtZXRlciBvcmRlcicpOgorICAgICAgICBTKChhcmdzLCBwbywgcGssIGtvLCBrd2Fy
Z3MpKQorCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9u
ZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgUygocG8sIHBrLCBhcmdzLCBrd2FyZ3MsIGtv
KSkKKworICAgIGt3YXJnczIgPSBrd2FyZ3MucmVwbGFjZShuYW1lPSdhcmdzJykKKyAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2R1cGxpY2F0ZSBwYXJhbWV0ZXIg
bmFtZScpOgorICAgICAgICBTKChwbywgcGssIGFyZ3MsIGt3YXJnczIsIGtvKSkKKyIiIikKKwor
ICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9pbW11dGFiaWxpdHkoc2VsZik6CisgICAgICAgIGRlZiB0
ZXN0KGEpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVy
ZSh0ZXN0KQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3Ip
OgorICAgICAgICAgICAgc2lnLmZvbyA9ICdiYXInCisKKyAgICAgICAgIyBQeXRob24yIGRvZXMg
bm90IGhhdmUgTWFwcGluZ1Byb3h5VHlwZSBjbGFzcworICAgICAgICBpZiBzeXMudmVyc2lvbl9p
bmZvWzoyXSA8ICgzLCAzKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHNpZy5wYXJhbWV0ZXJzWydh
J10gPSBOb25lCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fbm9hcmcoc2VsZik6CisgICAg
ICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5zaWduYXR1cmUodGVzdCksICgoKSwgRWxsaXBzaXMpKQorCisgICAgaWYgc3lzLnZl
cnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1cmVf
b25fd2FyZ3Moc2VsZik6CisgICAgZGVmIHRlc3QoYSwgYjonZm9vJykgLT4gMTIzOgorICAgICAg
ICBwYXNzCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZSh0ZXN0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICgoKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9v
cl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYicsIEVsbGlwc2lzLCAnZm9v
JywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAxMjMp
KQorIiIiKQorCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMo
IiIiCitkZWYgdGVzdF9zaWduYXR1cmVfb25fd2t3b25seShzZWxmKToKKyAgICBkZWYgdGVzdCgq
LCBhOmZsb2F0LCBiOnN0cikgLT4gaW50OgorICAgICAgICBwYXNzCisgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnNpZ25hdHVyZSh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhJywg
RWxsaXBzaXMsIGZsb2F0LCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAgICAgICAg
ICgnYicsIEVsbGlwc2lzLCBzdHIsICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAg
ICAgICAgIGludCkpCisiIiIpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAg
ICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9vbl9jb21wbGV4X2FyZ3Moc2VsZik6
CisgICAgZGVmIHRlc3QoYSwgYjonZm9vJz0xMCwgKmFyZ3M6J2JhcicsIHNwYW06J2JheicsIGhh
bT0xMjMsICoqa3dhcmdzOmludCk6CisgICAgICAgIHBhc3MKKyAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuc2lnbmF0dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxp
cHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCdiJywgMTAsICdmb28nLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICgnYXJncycsIEVsbGlwc2lzLCAnYmFyJywgInZhcl9wb3NpdGlv
bmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnc3BhbScsIEVsbGlwc2lzLCAnYmF6Jywg
ImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2hhbScsIDEyMywgRWxs
aXBzaXMsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3Mn
LCBFbGxpcHNpcywgaW50LCAidmFyX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAg
RWxsaXBzaXMpKQorIiIiKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX2J1aWx0aW5fZnVu
Y3Rpb24oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVy
cm9yLCAnbm90IHN1cHBvcnRlZCBieSBzaWduYXR1cmUnKToKKyAgICAgICAgICAgIGluc3BlY3Qu
c2lnbmF0dXJlKHR5cGUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1
ZUVycm9yLCAnbm90IHN1cHBvcnRlZCBieSBzaWduYXR1cmUnKToKKyAgICAgICAgICAgICMgc3Vw
cG9ydCBmb3IgJ3dyYXBwZXJfZGVzY3JpcHRvcicKKyAgICAgICAgICAgIGluc3BlY3Quc2lnbmF0
dXJlKHR5cGUuX19jYWxsX18pCisgICAgICAgICAgICBpZiBoYXNhdHRyKHN5cywgJ3B5cHlfdmVy
c2lvbl9pbmZvJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbm90IHN1cHBv
cnRlZCBieSBzaWduYXR1cmUnKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgo
VmFsdWVFcnJvciwgJ25vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0dXJlJyk6CisgICAgICAgICAgICAj
IHN1cHBvcnQgZm9yICdtZXRob2Qtd3JhcHBlcicKKyAgICAgICAgICAgIGluc3BlY3Quc2lnbmF0
dXJlKG1pbi5fX2NhbGxfXykKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc3lzLCAncHlweV92ZXJz
aW9uX2luZm8nKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdub3Qgc3VwcG9y
dGVkIGJ5IHNpZ25hdHVyZScpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChW
YWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdubyBzaWdu
YXR1cmUgZm91bmQgZm9yIGJ1aWx0aW4gZnVuY3Rpb24nKToKKyAgICAgICAgICAgICMgc3VwcG9y
dCBmb3IgJ21ldGhvZC13cmFwcGVyJworICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUobWlu
KQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX25vbl9mdW5jdGlvbihzZWxmKToKKyAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ2lzIG5vdCBhIGNhbGxh
YmxlIG9iamVjdCcpOgorICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUoNDIpCisKKyAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ2lzIG5vdCBhIFB5dGhv
biBmdW5jdGlvbicpOgorICAgICAgICAgICAgaW5zcGVjdC5TaWduYXR1cmUuZnJvbV9mdW5jdGlv
big0MikKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIi
IgorZGVmIHRlc3Rfc2lnbmF0dXJlX29uX21ldGhvZChzZWxmKToKKyAgICBjbGFzcyBUZXN0Ogor
ICAgICAgICBkZWYgZm9vKHNlbGYsIGFyZzEsIGFyZzI9MSkgLT4gaW50OgorICAgICAgICAgICAg
cGFzcworCisgICAgbWV0aCA9IFRlc3QoKS5mb28KKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5zaWduYXR1cmUobWV0aCksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYXJnMScsIEVsbGlw
c2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAoJ2FyZzInLCAxLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwK
KyAgICAgICAgICAgICAgICAgICAgICBpbnQpKQorIiIiKQorCisgICAgaWYgc3lzLnZlcnNpb25f
aW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1cmVfb25fY2xh
c3NtZXRob2Qoc2VsZik6CisgICAgY2xhc3MgVGVzdDoKKyAgICAgICAgQGNsYXNzbWV0aG9kCisg
ICAgICAgIGRlZiBmb28oY2xzLCBhcmcxLCAqLCBhcmcyPTEpOgorICAgICAgICAgICAgcGFzcwor
CisgICAgbWV0aCA9IFRlc3QoKS5mb28KKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0
dXJlKG1ldGgpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZzEnLCBFbGxpcHNpcywgRWxs
aXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCdhcmcyJywgMSwgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAg
ICAgICAgRWxsaXBzaXMpKQorCisgICAgbWV0aCA9IFRlc3QuZm9vCisgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhcmcx
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICgnYXJnMicsIDEsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IikpLAor
ICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKyIiIikKKworICAgIGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX29u
X3N0YXRpY21ldGhvZChzZWxmKToKKyAgICBjbGFzcyBUZXN0OgorICAgICAgICBAc3RhdGljbWV0
aG9kCisgICAgICAgIGRlZiBmb28oY2xzLCAqLCBhcmcpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgbWV0aCA9IFRlc3QoKS5mb28KKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJl
KG1ldGgpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2NscycsIEVsbGlwc2lzLCBFbGxpcHNp
cywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2Fy
ZycsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICBFbGxpcHNpcykpCisKKyAgICBtZXRoID0gVGVzdC5mb28KKyAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYuc2lnbmF0dXJlKG1ldGgpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2Ns
cycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAg
ICAgICAgICAgICAgICAgICAoJ2FyZycsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25s
eSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisiIiIpCisKKyAgICBpZiBz
eXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25h
dHVyZV9vbl9wYXJ0aWFsKHNlbGYpOgorICAgIGZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFs
CisKKyAgICBkZWYgdGVzdCgpOgorICAgICAgICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCkpLCAoKCksIEVsbGlwc2lzKSkKKworICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAiaGFzIGluY29ycmVjdCBhcmd1
bWVudHMiKToKKyAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAxKSkKKwor
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAiaGFzIGluY29ycmVj
dCBhcmd1bWVudHMiKToKKyAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCBh
PTEpKQorCisgICAgZGVmIHRlc3QoYSwgYiwgKiwgYywgZCk6CisgICAgICAgIHBhc3MKKworICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0KSksCisgICAgICAg
ICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jf
a2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCBFbGxpcHNpcywgRWxsaXBz
aXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdj
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAg
ICAgICAgICgnZCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
c2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgMSkpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2In
LCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCdjJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5Iiks
CisgICAgICAgICAgICAgICAgICAgICAgICgnZCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdv
cmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgMSwgYz0yKSksCisgICAg
ICAgICAgICAgICAgICAgICAoKCgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxf
b3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAyLCBFbGxpcHNpcywg
ImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2QnLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBz
aXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3Qs
IGI9MSwgYz0yKSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxp
cHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAo
J2InLCAxLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAoJ2MnLCAyLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAoJ2QnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSks
CisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDAsIGI9MSwgYz0yKSksCisgICAgICAgICAg
ICAgICAgICAgICAoKCgnYicsIDEsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiks
CisgICAgICAgICAgICAgICAgICAgICAgICgnYycsIDIsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5
IiksCisgICAgICAgICAgICAgICAgICAgICAgICgnZCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtl
eXdvcmRfb25seSIpLCksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAg
ZGVmIHRlc3QoYSwgKmFyZ3MsIGIsICoqa3dhcmdzKToKKyAgICAgICAgcGFzcworCisgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICgoKCdhcmdzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX3Bvc2l0aW9u
YWwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAi
a2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdzJywgRWxsaXBz
aXMsIEVsbGlwc2lzLCAidmFyX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxs
aXBzaXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRl
c3QsIDEsIDIsIDMpKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhcmdzJywgRWxsaXBzaXMs
IEVsbGlwc2lzLCAidmFyX3Bvc2l0aW9uYWwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdi
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAg
ICAgICAgICgna3dhcmdzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX2tleXdvcmQiKSksCisg
ICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisKKyAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgMSwgMiwgMywgdGVzdD1UcnVlKSksCisgICAg
ICAgICAgICAgICAgICAgICAoKCgnYXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9wb3Np
dGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYicsIEVsbGlwc2lzLCBFbGxpcHNp
cywgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIEVs
bGlwc2lzLCBFbGxpcHNpcywgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAg
IEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlh
bCh0ZXN0LCAxLCAyLCAzLCB0ZXN0PTEsIGI9MCkpLAorICAgICAgICAgICAgICAgICAgICAgKCgo
J2FyZ3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAoJ2InLCAwLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAg
ICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9rZXl3
b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCBiPTApKSwKKyAgICAgICAgICAg
ICAgICAgICAgICgoKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3
b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYXJncycsIEVsbGlwc2lzLCBFbGxpcHNp
cywgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYicsIDAsIEVs
bGlwc2lzLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdz
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAg
ICAgICAgRWxsaXBzaXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShw
YXJ0aWFsKHRlc3QsIGI9MCwgdGVzdD0xKSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScs
IEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAoJ2FyZ3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfcG9zaXRpb25h
bCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCAwLCBFbGxpcHNpcywgImtleXdvcmRf
b25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIEVsbGlwc2lzLCBFbGxp
cHNpcywgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkK
KworICAgIGRlZiB0ZXN0KGEsIGIsIGM6aW50KSAtPiA0MjoKKyAgICAgICAgcGFzcworCisgICAg
c2lnID0gdGVzdC5fX3NpZ25hdHVyZV9fID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKworICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbChwYXJ0aWFsKHRlc3QsIDEp
KSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCBFbGxp
cHNpcywgaW50LCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAg
ICAgIDQyKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbChw
YXJ0aWFsKHRlc3QsIDEpLCAyKSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYycsIEVsbGlw
c2lzLCBpbnQsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAg
ICAgIDQyKSkKKworICAgIHBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShwYXJ0aWFsKHBhcnRpYWwo
dGVzdCwgMSksIDIpKQorCisgICAgZGVmIGZvbyhhKToKKyAgICAgICAgcmV0dXJuIGEKKyAgICBf
Zm9vID0gcGFydGlhbChwYXJ0aWFsKGZvbywgYT0xMCksIGE9MjApCisgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnNpZ25hdHVyZShfZm9vKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhJywg
MjAsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAg
ICAgICAgICBFbGxpcHNpcykpCisgICAgIyBjaGVjayB0aGF0IHdlIGRvbid0IGhhdmUgYW55IHNp
ZGUtZWZmZWN0cyBpbiBzaWduYXR1cmUoKSwKKyAgICAjIGFuZCB0aGUgcGFydGlhbCBvYmplY3Qg
aXMgc3RpbGwgZnVuY3Rpb25pbmcKKyAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKSwgMjApCisK
KyAgICBkZWYgZm9vKGEsIGIsIGMpOgorICAgICAgICByZXR1cm4gYSwgYiwgYworICAgIF9mb28g
PSBwYXJ0aWFsKHBhcnRpYWwoZm9vLCAxLCBiPTIwKSwgYj0zMCkKKyAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuc2lnbmF0dXJlKF9mb28pLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCAz
MCwgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgKCdjJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikp
LAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKyAgICBzZWxmLmFzc2VydEVxdWFs
KF9mb28oYz0xMCksICgxLCAzMCwgMTApKQorICAgIF9mb28gPSBwYXJ0aWFsKF9mb28sIDIpICMg
bm93ICdiJyBoYXMgdHdvIHZhbHVlcyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBw
b3NpdGlvbmFsIGFuZCBrZXl3b3JkCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZh
bHVlRXJyb3IsICJoYXMgaW5jb3JyZWN0IGFyZ3VtZW50cyIpOgorICAgICAgICBpbnNwZWN0LnNp
Z25hdHVyZShfZm9vKQorCisgICAgZGVmIGZvbyhhLCBiLCBjLCAqLCBkKToKKyAgICAgICAgcmV0
dXJuIGEsIGIsIGMsIGQKKyAgICBfZm9vID0gcGFydGlhbChwYXJ0aWFsKGZvbywgZD0yMCwgYz0y
MCksIGI9MTAsIGQ9MzApCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShfZm9v
KSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9z
aXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYicsIDEwLCBF
bGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAoJ2MnLCAyMCwgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCdkJywgMzAsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IikpLAorICAg
ICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKyAgICBiYSA9IGluc3BlY3Quc2lnbmF0dXJl
KF9mb28pLmJpbmQoYT0yMDAsIGI9MTEpCisgICAgc2VsZi5hc3NlcnRFcXVhbChfZm9vKCpiYS5h
cmdzLCAqKmJhLmt3YXJncyksICgyMDAsIDExLCAyMCwgMzApKQorCisgICAgZGVmIGZvbyhhPTEs
IGI9MiwgYz0zKToKKyAgICAgICAgcmV0dXJuIGEsIGIsIGMKKyAgICBfZm9vID0gcGFydGlhbChm
b28sIGE9MTAsIGM9MTMpCisgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKDEx
KQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTEs
IDIsIDEzKSkKKyAgICBiYSA9IGluc3BlY3Quc2lnbmF0dXJlKF9mb28pLmJpbmQoMTEsIDEyKQor
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTEsIDEy
LCAxMykpCisgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKDExLCBiPTEyKQor
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTEsIDEy
LCAxMykpCisgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKGI9MTIpCisgICAg
c2VsZi5hc3NlcnRFcXVhbChfZm9vKCpiYS5hcmdzLCAqKmJhLmt3YXJncyksICgxMCwgMTIsIDEz
KSkKKyAgICBfZm9vID0gcGFydGlhbChfZm9vLCBiPTEwKQorICAgIGJhID0gaW5zcGVjdC5zaWdu
YXR1cmUoX2ZvbykuYmluZCgxMiwgMTQpCisgICAgc2VsZi5hc3NlcnRFcXVhbChfZm9vKCpiYS5h
cmdzLCAqKmJhLmt3YXJncyksICgxMiwgMTQsIDEzKSkKKyIiIikKKworICAgIGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX29u
X2RlY29yYXRlZChzZWxmKToKKyAgICBpbXBvcnQgZnVuY3Rvb2xzCisKKyAgICBkZWYgZGVjb3Jh
dG9yKGZ1bmMpOgorICAgICAgICBAZnVuY3Rvb2xzLndyYXBzKGZ1bmMpCisgICAgICAgIGRlZiB3
cmFwcGVyKCphcmdzLCAqKmt3YXJncykgLT4gaW50OgorICAgICAgICAgICAgcmV0dXJuIGZ1bmMo
KmFyZ3MsICoqa3dhcmdzKQorICAgICAgICByZXR1cm4gd3JhcHBlcgorCisgICAgY2xhc3MgRm9v
OgorICAgICAgICBAZGVjb3JhdG9yCisgICAgICAgIGRlZiBiYXIoc2VsZiwgYSwgYik6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEZvby5i
YXIpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ3NlbGYnLCBFbGxpcHNpcywgRWxsaXBzaXMs
ICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdhJywg
RWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAg
ICAgICAgICAgICAgICgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5
d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEZvbygpLmJhciksCisgICAgICAgICAgICAgICAgICAg
ICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlv
bmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisg
ICAgIyBUZXN0IHRoYXQgd2UgaGFuZGxlIG1ldGhvZCB3cmFwcGVycyBjb3JyZWN0bHkKKyAgICBk
ZWYgZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBAZnVuY3Rvb2xzLndyYXBzKGZ1bmMpCisgICAg
ICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3YXJncykgLT4gaW50OgorICAgICAgICAgICAgcmV0
dXJuIGZ1bmMoNDIsICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2lnID0gaW5zcGVjdC5zaWdu
YXR1cmUoZnVuYykKKyAgICAgICAgbmV3X3BhcmFtcyA9IHR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZh
bHVlcygpKVsxOl0KKyAgICAgICAgd3JhcHBlci5fX3NpZ25hdHVyZV9fID0gc2lnLnJlcGxhY2Uo
cGFyYW1ldGVycz1uZXdfcGFyYW1zKQorICAgICAgICByZXR1cm4gd3JhcHBlcgorCisgICAgY2xh
c3MgRm9vOgorICAgICAgICBAZGVjb3JhdG9yCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBh
LCBiKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWdu
YXR1cmUoRm9vLl9fY2FsbF9fKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgRWxsaXBz
aXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAg
ICAgICAgICgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIp
KSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuc2lnbmF0dXJlKEZvbygpLl9fY2FsbF9fKSwKKyAgICAgICAgICAgICAgICAgICAg
ICgoKCdiJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwK
KyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisiIiIpCisKKyAgICBpZiBzeXMudmVy
c2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9v
bl9jbGFzcyhzZWxmKToKKyAgICBjbGFzcyBDOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
YSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0
dXJlKEMpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMs
ICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlw
c2lzKSkKKworICAgIGNsYXNzIENNKHR5cGUpOgorICAgICAgICBkZWYgX19jYWxsX18oY2xzLCBh
KToKKyAgICAgICAgICAgIHBhc3MKKyAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBiKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQyksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScs
IEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAg
ICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAgY2xhc3MgQ00odHlwZSk6CisgICAgICAg
IGRlZiBfX25ld19fKG1jbHMsIG5hbWUsIGJhc2VzLCBkY3QsICosIGZvbz0xKToKKyAgICAgICAg
ICAgIHJldHVybiBzdXBlcigpLl9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIGRjdCkKKyAgICBj
bGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQyks
CisgICAgICAgICAgICAgICAgICAgICAoKCgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0
aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQor
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDTSksCisgICAgICAgICAgICAg
ICAgICAgICAoKCgnbmFtZScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5
d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2Jhc2VzJywgRWxsaXBzaXMsIEVsbGlw
c2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgn
ZGN0JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICgnZm9vJywgMSwgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSks
CisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAgY2xhc3MgQ01NKHR5cGUp
OgorICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0LCAqLCBmb289MSk6
CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX25ld19fKG1jbHMsIG5hbWUsIGJhc2VzLCBk
Y3QpCisgICAgICAgIGRlZiBfX2NhbGxfXyhjbHMsIG5tLCBicywgZHQpOgorICAgICAgICAgICAg
cmV0dXJuIHR5cGUobm0sIGJzLCBkdCkKKyAgICBjbGFzcyBDTSh0eXBlLCBtZXRhY2xhc3M9Q01N
KToKKyAgICAgICAgZGVmIF9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIGRjdCwgKiwgYmFyPTIp
OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywg
ZGN0KQorICAgIGNsYXNzIEMobWV0YWNsYXNzPUNNKToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGIpOgorICAgICAgICAgICAgcGFzcworCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNp
Z25hdHVyZShDTU0pLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ25hbWUnLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCdiYXNlcycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIp
LAorICAgICAgICAgICAgICAgICAgICAgICAoJ2RjdCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2ZvbycsIDEs
IEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlw
c2lzKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQ00pLAorICAgICAg
ICAgICAgICAgICAgICAgKCgoJ25tJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9v
cl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYnMnLCBFbGxpcHNpcywgRWxs
aXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCdkdCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuc2lnbmF0dXJlKEMpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAg
ICAgIEVsbGlwc2lzKSkKKworICAgIGNsYXNzIENNKHR5cGUpOgorICAgICAgICBkZWYgX19pbml0
X18oY2xzLCBuYW1lLCBiYXNlcywgZGN0LCAqLCBiYXI9Mik6CisgICAgICAgICAgICByZXR1cm4g
c3VwZXIoKS5fX2luaXRfXyhuYW1lLCBiYXNlcywgZGN0KQorICAgIGNsYXNzIEMobWV0YWNsYXNz
PUNNKToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGIpOgorICAgICAgICAgICAgcGFzcwor
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDTSksCisgICAgICAgICAgICAg
ICAgICAgICAoKCgnbmFtZScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5
d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2Jhc2VzJywgRWxsaXBzaXMsIEVsbGlw
c2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgn
ZGN0JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICgnYmFyJywgMiwgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSks
CisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorIiIiKQorCisgICAgZGVmIHRlc3Rf
c2lnbmF0dXJlX29uX2NhbGxhYmxlX29iamVjdHMoc2VsZik6CisgICAgICAgIGNsYXNzIEZvbyhv
YmplY3QpOgorICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGEpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEZvbygp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywg
InBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVs
bGlwc2lzKSkKKworICAgICAgICBjbGFzcyBTcGFtKG9iamVjdCk6CisgICAgICAgICAgICBwYXNz
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICJpcyBub3Qg
YSBjYWxsYWJsZSBvYmplY3QiKToKKyAgICAgICAgICAgIGluc3BlY3Quc2lnbmF0dXJlKFNwYW0o
KSkKKworICAgICAgICBjbGFzcyBCYXIoU3BhbSwgRm9vKToKKyAgICAgICAgICAgIHBhc3MKKwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEJhcigpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxf
b3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKwor
ICAgICAgICBjbGFzcyBUb0ZhaWwob2JqZWN0KToKKyAgICAgICAgICAgIF9fY2FsbF9fID0gdHlw
ZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgIm5vdCBz
dXBwb3J0ZWQgYnkgc2lnbmF0dXJlIik6CisgICAgICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZShU
b0ZhaWwoKSkKKworICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKKyAgICAgICAg
ICAgIHJldHVybgorCisgICAgICAgIGNsYXNzIFdyYXBwZWQob2JqZWN0KToKKyAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgV3JhcHBlZC5fX3dyYXBwZWRfXyA9IGxhbWJkYSBhOiBOb25lCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoV3JhcHBlZCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29y
X2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAg
ICBkZWYgdGVzdF9zaWduYXR1cmVfb25fbGFtYmRhcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNpZ25hdHVyZSgobGFtYmRhIGE9MTA6IGEpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAoKCgnYScsIDEwLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIp
LCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIGlmIHN5cy52
ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJl
X2VxdWFsaXR5KHNlbGYpOgorICAgIGRlZiBmb28oYSwgKiwgYjppbnQpIC0+IGZsb2F0OiBwYXNz
CisgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCA0MikKKwor
ICAgIGRlZiBiYXIoYSwgKiwgYjppbnQpIC0+IGZsb2F0OiBwYXNzCisgICAgc2VsZi5hc3NlcnRF
cXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisg
ICAgZGVmIGJhcihhLCAqLCBiOmludCkgLT4gaW50OiBwYXNzCisgICAgc2VsZi5hc3NlcnROb3RF
cXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisg
ICAgZGVmIGJhcihhLCAqLCBiOmludCk6IHBhc3MKKyAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlu
c3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICBkZWYg
YmFyKGEsICosIGI6aW50PTQyKSAtPiBmbG9hdDogcGFzcworICAgIHNlbGYuYXNzZXJ0Tm90RXF1
YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVjdC5zaWduYXR1cmUoYmFyKSkKKworICAg
IGRlZiBiYXIoYSwgKiwgYykgLT4gZmxvYXQ6IHBhc3MKKyAgICBzZWxmLmFzc2VydE5vdEVxdWFs
KGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICBk
ZWYgYmFyKGEsIGI6aW50KSAtPiBmbG9hdDogcGFzcworICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwo
aW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVjdC5zaWduYXR1cmUoYmFyKSkKKyAgICBkZWYg
c3BhbShiOmludCwgYSkgLT4gZmxvYXQ6IHBhc3MKKyAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlu
c3BlY3Quc2lnbmF0dXJlKHNwYW0pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgZGVm
IGZvbygqLCBhLCBiLCBjKTogcGFzcworICAgIGRlZiBiYXIoKiwgYywgYiwgYSk6IHBhc3MKKyAg
ICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0
dXJlKGJhcikpCisKKyAgICBkZWYgZm9vKCosIGE9MSwgYiwgYyk6IHBhc3MKKyAgICBkZWYgYmFy
KCosIGMsIGIsIGE9MSk6IHBhc3MKKyAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0
dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICBkZWYgZm9vKHBvcywgKiwg
YT0xLCBiLCBjKTogcGFzcworICAgIGRlZiBiYXIocG9zLCAqLCBjLCBiLCBhPTEpOiBwYXNzCisg
ICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25h
dHVyZShiYXIpKQorCisgICAgZGVmIGZvbyhwb3MsICosIGEsIGIsIGMpOiBwYXNzCisgICAgZGVm
IGJhcihwb3MsICosIGMsIGIsIGE9MSk6IHBhc3MKKyAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlu
c3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICBkZWYg
Zm9vKHBvcywgKmFyZ3MsIGE9NDIsIGIsIGMsICoqa3dhcmdzOmludCk6IHBhc3MKKyAgICBkZWYg
YmFyKHBvcywgKmFyZ3MsIGMsIGIsIGE9NDIsICoqa3dhcmdzOmludCk6IHBhc3MKKyAgICBzZWxm
LmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJh
cikpCisiIiIpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfdW5oYXNoYWJsZShzZWxmKToKKyAg
ICAgICAgZGVmIGZvbyhhKTogcGFzcworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShm
b28pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd1bmhh
c2hhYmxlIHR5cGUnKToKKyAgICAgICAgICAgIGhhc2goc2lnKQorCisKKyAgICBpZiBzeXMudmVy
c2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9z
dHIoc2VsZik6CisgICAgZGVmIGZvbyhhOmludD0xLCAqLCBiLCBjPU5vbmUsICoqa3dhcmdzKSAt
PiA0MjoKKyAgICAgICAgcGFzcworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGluc3BlY3Quc2ln
bmF0dXJlKGZvbykpLAorICAgICAgICAgICAgICAgICAgICAgJyhhOmludD0xLCAqLCBiLCBjPU5v
bmUsICoqa3dhcmdzKSAtPiA0MicpCisKKyAgICBkZWYgZm9vKGE6aW50PTEsICphcmdzLCBiLCBj
PU5vbmUsICoqa3dhcmdzKSAtPiA0MjoKKyAgICAgICAgcGFzcworICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyKGluc3BlY3Quc2lnbmF0dXJlKGZvbykpLAorICAgICAgICAgICAgICAgICAgICAgJyhh
OmludD0xLCAqYXJncywgYiwgYz1Ob25lLCAqKmt3YXJncykgLT4gNDInKQorCisgICAgZGVmIGZv
bygpOgorICAgICAgICBwYXNzCisgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaW5zcGVjdC5zaWdu
YXR1cmUoZm9vKSksICcoKScpCisiIiIpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4g
MjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9zdHJfcG9zaXRpb25hbF9v
bmx5KHNlbGYpOgorICAgIFAgPSBpbnNwZWN0LlBhcmFtZXRlcgorCisgICAgZGVmIHRlc3QoYV9w
bywgKiwgYiwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gYV9wbywga3dhcmdzCisKKyAgICBz
aWcgPSBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KQorICAgIG5ld19wYXJhbXMgPSBsaXN0KHNpZy5w
YXJhbWV0ZXJzLnZhbHVlcygpKQorICAgIG5ld19wYXJhbXNbMF0gPSBuZXdfcGFyYW1zWzBdLnJl
cGxhY2Uoa2luZD1QLlBPU0lUSU9OQUxfT05MWSkKKyAgICB0ZXN0Ll9fc2lnbmF0dXJlX18gPSBz
aWcucmVwbGFjZShwYXJhbWV0ZXJzPW5ld19wYXJhbXMpCisKKyAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cihpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KSksCisgICAgICAgICAgICAgICAgICAgICAnKDxh
X3BvPiwgKiwgYiwgKiprd2FyZ3MpJykKKworICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKHRl
c3QpCisgICAgbmV3X3BhcmFtcyA9IGxpc3Qoc2lnLnBhcmFtZXRlcnMudmFsdWVzKCkpCisgICAg
bmV3X3BhcmFtc1swXSA9IG5ld19wYXJhbXNbMF0ucmVwbGFjZShuYW1lPU5vbmUpCisgICAgdGVz
dC5fX3NpZ25hdHVyZV9fID0gc2lnLnJlcGxhY2UocGFyYW1ldGVycz1uZXdfcGFyYW1zKQorICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICcoPDA+LCAqLCBiLCAqKmt3YXJncyknKQorIiIiKQorCisgICAgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1
cmVfcmVwbGFjZV9hbm5vKHNlbGYpOgorICAgIGRlZiB0ZXN0KCkgLT4gNDI6CisgICAgICAgIHBh
c3MKKworICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpCisgICAgc2lnID0gc2lnLnJl
cGxhY2UocmV0dXJuX2Fubm90YXRpb249Tm9uZSkKKyAgICBzZWxmLmFzc2VydElzKHNpZy5yZXR1
cm5fYW5ub3RhdGlvbiwgTm9uZSkKKyAgICBzaWcgPSBzaWcucmVwbGFjZShyZXR1cm5fYW5ub3Rh
dGlvbj1zaWcuZW1wdHkpCisgICAgc2VsZi5hc3NlcnRJcyhzaWcucmV0dXJuX2Fubm90YXRpb24s
IHNpZy5lbXB0eSkKKyAgICBzaWcgPSBzaWcucmVwbGFjZShyZXR1cm5fYW5ub3RhdGlvbj00MikK
KyAgICBzZWxmLmFzc2VydEVxdWFsKHNpZy5yZXR1cm5fYW5ub3RhdGlvbiwgNDIpCisgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzaWcsIGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpKQorIiIiKQorCisKK2Ns
YXNzIFRlc3RQYXJhbWV0ZXJPYmplY3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNl
Ll9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IGhhc2F0dHIo
c2VsZiwgJ2Fzc2VydFJhaXNlc1JlZ2V4Jyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNl
c1JlZ2V4ID0gc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVy
ZV9wYXJhbWV0ZXJfa2luZHMoc2VsZik6CisgICAgICAgIFAgPSBpbnNwZWN0LlBhcmFtZXRlcgor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoUC5QT1NJVElPTkFMX09OTFkgPCBQLlBPU0lUSU9OQUxf
T1JfS0VZV09SRCA8IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIFAuVkFSX1BPU0lUSU9OQUwg
PCBQLktFWVdPUkRfT05MWSA8IFAuVkFSX0tFWVdPUkQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHIoUC5QT1NJVElPTkFMX09OTFkpLCAnUE9TSVRJT05BTF9PTkxZJykKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCdQT1NJVElPTkFMX09OTFknIGluIHJlcHIoUC5QT1NJVElPTkFMX09O
TFkpKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX3BhcmFtZXRlcl9vYmplY3Qoc2VsZik6Cisg
ICAgICAgIHAgPSBpbnNwZWN0LlBhcmFtZXRlcignZm9vJywgZGVmYXVsdD0xMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9P
TkxZKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAubmFtZSwgJ2ZvbycpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocC5kZWZhdWx0LCAxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhwLmFu
bm90YXRpb24sIHAuZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5raW5kLCBpbnNw
ZWN0LlBhcmFtZXRlci5QT1NJVElPTkFMX09OTFkpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdpbnZhbGlkIHZhbHVlJyk6CisgICAgICAgICAgICBp
bnNwZWN0LlBhcmFtZXRlcignZm9vJywgZGVmYXVsdD0xMCwga2luZD0nMTIzJykKKworICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ25vdCBhIHZhbGlkIHBh
cmFtZXRlciBuYW1lJyk6CisgICAgICAgICAgICBpbnNwZWN0LlBhcmFtZXRlcignMScsIGtpbmQ9
aW5zcGVjdC5QYXJhbWV0ZXIuVkFSX0tFWVdPUkQpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ25vbi1wb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVyJyk6CisgICAgICAgICAgICBpbnNw
ZWN0LlBhcmFtZXRlcihOb25lLCBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9LRVlXT1JEKQor
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnY2Fubm90
IGhhdmUgZGVmYXVsdCB2YWx1ZXMnKToKKyAgICAgICAgICAgIGluc3BlY3QuUGFyYW1ldGVyKCdh
JywgZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVj
dC5QYXJhbWV0ZXIuVkFSX0tFWVdPUkQpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
c1JlZ2V4KFZhbHVlRXJyb3IsICdjYW5ub3QgaGF2ZSBkZWZhdWx0IHZhbHVlcycpOgorICAgICAg
ICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoJ2EnLCBkZWZhdWx0PTQyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2luZD1pbnNwZWN0LlBhcmFtZXRlci5WQVJfUE9TSVRJT05BTCkKKwor
ICAgICAgICBwID0gaW5zcGVjdC5QYXJhbWV0ZXIoJ2EnLCBkZWZhdWx0PTQyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2luZD1pbnNwZWN0LlBhcmFtZXRlci5QT1NJVElPTkFMX09S
X0tFWVdPUkQpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9y
LCAnY2Fubm90IGhhdmUgZGVmYXVsdCB2YWx1ZXMnKToKKyAgICAgICAgICAgIHAucmVwbGFjZShr
aW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9QT1NJVElPTkFMKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZXByKHApLnN0YXJ0c3dpdGgoJzxQYXJhbWV0ZXInKSkKKworICAgIGRlZiB0ZXN0
X3NpZ25hdHVyZV9wYXJhbWV0ZXJfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIFAgPSBpbnNwZWN0
LlBhcmFtZXRlcgorICAgICAgICBwID0gUCgnZm9vJywgZGVmYXVsdD00Miwga2luZD1pbnNwZWN0
LlBhcmFtZXRlci5LRVlXT1JEX09OTFkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBw
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAsIDQyKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocCwgUCgnZm9vJywgZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuS0VZV09SRF9PTkxZKSkKKworICAgIGRlZiB0
ZXN0X3NpZ25hdHVyZV9wYXJhbWV0ZXJfdW5oYXNoYWJsZShzZWxmKToKKyAgICAgICAgcCA9IGlu
c3BlY3QuUGFyYW1ldGVyKCdmb28nLCBkZWZhdWx0PTQyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2luZD1pbnNwZWN0LlBhcmFtZXRlci5LRVlXT1JEX09OTFkpCisKKyAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ3VuaGFzaGFibGUgdHlwZScp
OgorICAgICAgICAgICAgaGFzaChwKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX3BhcmFtZXRl
cl9yZXBsYWNlKHNlbGYpOgorICAgICAgICBwID0gaW5zcGVjdC5QYXJhbWV0ZXIoJ2ZvbycsIGRl
ZmF1bHQ9NDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3QuUGFy
YW1ldGVyLktFWVdPUkRfT05MWSkKKworICAgICAgICBzZWxmLmFzc2VydElzTm90KHAsIHAucmVw
bGFjZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIHAucmVwbGFjZSgpKQorCisgICAg
ICAgIHAyID0gcC5yZXBsYWNlKGFubm90YXRpb249MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwMi5hbm5vdGF0aW9uLCAxKQorICAgICAgICBwMiA9IHAyLnJlcGxhY2UoYW5ub3RhdGlvbj1w
Mi5lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBwMikKKworICAgICAgICBwMiA9
IHAyLnJlcGxhY2UobmFtZT0nYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMi5uYW1l
LCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwMiwgcCkKKworICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ25vdCBhIHZhbGlkIHBhcmFt
ZXRlciBuYW1lJyk6CisgICAgICAgICAgICBwMiA9IHAyLnJlcGxhY2UobmFtZT1wMi5lbXB0eSkK
KworICAgICAgICBwMiA9IHAyLnJlcGxhY2UobmFtZT0nZm9vJywgZGVmYXVsdD1Ob25lKQorICAg
ICAgICBzZWxmLmFzc2VydElzKHAyLmRlZmF1bHQsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0
Tm90RXF1YWwocDIsIHApCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9J2ZvbycsIGRl
ZmF1bHQ9cDIuZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocDIuZGVmYXVsdCwgcDIuZW1w
dHkpCisKKworICAgICAgICBwMiA9IHAyLnJlcGxhY2UoZGVmYXVsdD00Miwga2luZD1wMi5QT1NJ
VElPTkFMX09SX0tFWVdPUkQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIua2luZCwgcDIu
UE9TSVRJT05BTF9PUl9LRVlXT1JEKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAyLCBw
KQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnaW52
YWxpZCB2YWx1ZSBmb3InKToKKyAgICAgICAgICAgIHAyID0gcDIucmVwbGFjZShraW5kPXAyLmVt
cHR5KQorCisgICAgICAgIHAyID0gcDIucmVwbGFjZShraW5kPXAyLktFWVdPUkRfT05MWSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMiwgcCkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9w
YXJhbWV0ZXJfcG9zaXRpb25hbF9vbmx5KHNlbGYpOgorICAgICAgICBwID0gaW5zcGVjdC5QYXJh
bWV0ZXIoTm9uZSwga2luZD1pbnNwZWN0LlBhcmFtZXRlci5QT1NJVElPTkFMX09OTFkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCAnPD4nKQorCisgICAgICAgIHAgPSBwLnJlcGxh
Y2UobmFtZT0nMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCAnPDE+JykKKwor
ICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9wYXJhbWV0ZXJfaW1tdXRhYmlsaXR5KHNlbGYpOgorICAg
ICAgICBwID0gaW5zcGVjdC5QYXJhbWV0ZXIoTm9uZSwga2luZD1pbnNwZWN0LlBhcmFtZXRlci5Q
T1NJVElPTkFMX09OTFkpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1
dGVFcnJvcik6CisgICAgICAgICAgICBwLmZvbyA9ICdiYXInCisKKyAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBwLmtpbmQgPSAxMjMK
KworCitjbGFzcyBUZXN0U2lnbmF0dXJlQmluZCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBjYWxsKGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
IHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKGZ1bmMpCisgICAgICAgIGJhID0gc2lnLmJpbmQoKmFy
Z3MsICoqa3dhcmdzKQorICAgICAgICByZXR1cm4gZnVuYygqYmEuYXJncywgKipiYS5rd2FyZ3Mp
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgdW5p
dHRlc3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBp
ZiBub3QgaGFzYXR0cihzZWxmLCAnYXNzZXJ0UmFpc2VzUmVnZXgnKToKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzUmVnZXggPSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cAorCisgICAgZGVm
IHRlc3Rfc2lnbmF0dXJlX2JpbmRfZW1wdHkoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCk6Cisg
ICAgICAgICAgICByZXR1cm4gNDIKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2Fs
bCh0ZXN0KSwgNDIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJy
b3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5j
YWxsKHRlc3QsIDEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJy
b3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5j
YWxsKHRlc3QsIDEsIHNwYW09MTApCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdl
eChUeXBlRXJyb3IsICd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cycpOgorICAgICAgICAgICAg
c2VsZi5jYWxsKHRlc3QsIHNwYW09MSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3Zh
cihzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAg
IHJldHVybiBhcmdzLCBrd2FyZ3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2Fs
bCh0ZXN0KSwgKCgpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRl
c3QsIDEpLCAoKDEsKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0
ZXN0LCAxLCAyKSwgKCgxLCAyKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
Y2FsbCh0ZXN0LCBmb289J2JhcicpLCAoKCksIHsnZm9vJzogJ2Jhcid9KSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgZm9vPSdiYXInKSwgKCgxLCksIHsnZm9v
JzogJ2Jhcid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgYXJn
cz0xMCksICgoKSwgeydhcmdzJzogMTB9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
LmNhbGwodGVzdCwgMSwgMiwgZm9vPSdiYXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
KDEsIDIpLCB7J2Zvbyc6ICdiYXInfSkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYmluZF9q
dXN0X2FyZ3Moc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KGEsIGIsIGMpOgorICAgICAgICAgICAg
cmV0dXJuIGEsIGIsIGMKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0
LCAxLCAyLCAzKSwgKDEsIDIsIDMpKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNS
ZWdleChUeXBlRXJyb3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAg
ICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMsIDQpCisKKyAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgIidiJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0
Iik6CisgICAgICAgICAgICBzZWxmLmNhbGwodGVzdCwgMSkKKworICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAiJ2EnIHBhcmFtZXRlciBsYWNraW5nIGRlZmF1
bHQiKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0KQorCisgICAgICAgIGRlZiB0ZXN0KGEs
IGIsIGM9MTApOgorICAgICAgICAgICAgcmV0dXJuIGEsIGIsIGMKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgMyksICgxLCAyLCAzKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgxLCAyLCAxMCkpCisKKyAgICAg
ICAgZGVmIHRlc3QoYT0xLCBiPTIsIGM9Myk6CisgICAgICAgICAgICByZXR1cm4gYSwgYiwgYwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBhPTEwLCBjPTEzKSwgKDEw
LCAyLCAxMykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGE9MTAp
LCAoMTAsIDIsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBi
PTEwKSwgKDEsIDEwLCAzKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3ZhcmFyZ3Nf
b3JkZXIoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCphcmdzKToKKyAgICAgICAgICAgIHJldHVy
biBhcmdzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksICgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCAzKSwgKDEsIDIs
IDMpKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfYXJnc19hbmRfdmFyYXJncyhzZWxm
KToKKyAgICAgICAgZGVmIHRlc3QoYSwgYiwgYz0zLCAqYXJncyk6CisgICAgICAgICAgICByZXR1
cm4gYSwgYiwgYywgYXJncworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRl
c3QsIDEsIDIsIDMsIDQsIDUpLCAoMSwgMiwgMywgKDQsIDUpKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgxLCAyLCAzLCAoKSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGI9MSwgYT0yKSwgKDIsIDEsIDMsICgpKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYj0yKSwgKDEsIDIs
IDMsICgpKSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSB2YWx1ZXMg
Zm9yIGFyZ3VtZW50ICdjJyIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMs
IGM9NCkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX2p1c3Rfa3dhcmdzKHNlbGYpOgor
ICAgICAgICBkZWYgdGVzdCgqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4ga3dhcmdzCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksIHt9KQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBmb289J2JhcicsIHNwYW09J2hhbScpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KQor
CisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfYXJnc19hbmRfa3dhcmdzKHNlbGYpOgorICAg
ICAgICBkZWYgdGVzdChhLCBiLCBjPTMsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBh
LCBiLCBjLCBrd2FyZ3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0
LCAxLCAyKSwgKDEsIDIsIDMsIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNh
bGwodGVzdCwgMSwgMiwgZm9vPSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAoMSwgMiwgMywgeydmb28nOiAnYmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBiPTIsIGE9MSwgZm9vPSdiYXInLCBz
cGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgMywgeydmb28nOiAn
YmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2Fs
bCh0ZXN0LCBhPTEsIGI9MiwgZm9vPSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAoMSwgMiwgMywgeydmb28nOiAnYmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCBiPTIsIGZvbz0nYmFyJywg
c3BhbT0naGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDMsIHsnZm9vJzog
J2JhcicsICdzcGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNh
bGwodGVzdCwgMSwgYj0yLCBjPTQsIGZvbz0nYmFyJywgc3BhbT0naGFtJyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKDEsIDIsIDQsIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgNCwgZm9vPSdi
YXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgNCwgeydmb28nOiAnYmFyJ30p
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBjPTUsIGE9NCwgYj0z
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoNCwgMywgNSwge30pKQorCisgICAgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1
cmVfYmluZF9rd29ubHkoc2VsZik6CisgICAgZGVmIHRlc3QoKiwgZm9vKToKKyAgICAgICAgcmV0
dXJuIGZvbworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVu
dHMnKToKKyAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEpCisgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLmNhbGwodGVzdCwgZm9vPTEpLCAxKQorCisgICAgZGVmIHRlc3QoYSwgKiwgZm9vPTEsIGJh
cik6CisgICAgICAgIHJldHVybiBmb28KKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgo
VHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidiYXInIHBhcmFt
ZXRlciBsYWNraW5nIGRlZmF1bHQgdmFsdWUiKToKKyAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEp
CisKKyAgICBkZWYgdGVzdChmb28sICosIGJhcik6CisgICAgICAgIHJldHVybiBmb28sIGJhcgor
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIGJhcj0yKSwgKDEsIDIpKQor
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGJhcj0yLCBmb289MSksICgxLCAy
KSkKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkga2V5d29yZCBhcmd1bWVudHMnKToK
KyAgICAgICAgc2VsZi5jYWxsKHRlc3QsIGJhcj0yLCBmb289MSwgc3BhbT0xMCkKKworICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMnKToKKyAgICAgICAg
c2VsZi5jYWxsKHRlc3QsIDEsIDIpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgo
VHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBtYW55IHBv
c2l0aW9uYWwgYXJndW1lbnRzJyk6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCBiYXI9
MikKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkga2V5d29yZCBhcmd1bWVudHMnKToK
KyAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIGJhcj0yLCBzcGFtPSdoYW0nKQorCisgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICInYmFyJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVlIik6Cisg
ICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxKQorCisgICAgZGVmIHRlc3QoZm9vLCAqLCBiYXIsICoq
YmluKToKKyAgICAgICAgcmV0dXJuIGZvbywgYmFyLCBiaW4KKyAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuY2FsbCh0ZXN0LCAxLCBiYXI9MiksICgxLCAyLCB7fSkpCisgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLmNhbGwodGVzdCwgZm9vPTEsIGJhcj0yKSwgKDEsIDIsIHt9KSkKKyAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCBiYXI9Miwgc3BhbT0naGFtJyksCisgICAg
ICAgICAgICAgICAgICAgICAoMSwgMiwgeydzcGFtJzogJ2hhbSd9KSkKKyAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBzcGFtPSdoYW0nLCBmb289MSwgYmFyPTIpLAorICAgICAg
ICAgICAgICAgICAgICAgKDEsIDIsIHsnc3BhbSc6ICdoYW0nfSkpCisgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICInZm9vJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVlIik6CisgICAgICAgIHNl
bGYuY2FsbCh0ZXN0LCBzcGFtPSdoYW0nLCBiYXI9MikKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuY2FsbCh0ZXN0LCAxLCBiYXI9MiwgYmluPTEsIHNwYW09MTApLAorICAgICAgICAgICAgICAg
ICAgICAgKDEsIDIsIHsnYmluJzogMSwgJ3NwYW0nOiAxMH0pKQorIiIiKQorIworICAgIGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0
dXJlX2JpbmRfYXJndW1lbnRzKHNlbGYpOgorICAgIGRlZiB0ZXN0KGEsICphcmdzLCBiLCB6PTEw
MCwgKiprd2FyZ3MpOgorICAgICAgICBwYXNzCisgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUo
dGVzdCkKKyAgICBiYSA9IHNpZy5iaW5kKDEwLCAyMCwgYj0zMCwgYz00MCwgYXJncz01MCwga3dh
cmdzPTYwKQorICAgICMgd2Ugd29uJ3QgaGF2ZSAneicgYXJndW1lbnQgaW4gdGhlIGJvdW5kIGFy
Z3VtZW50cyBvYmplY3QsIGFzIHdlIGRpZG4ndAorICAgICMgcGFzcyBpdCB0byB0aGUgJ2JpbmQn
CisgICAgc2VsZi5hc3NlcnRFcXVhbCh0dXBsZShiYS5hcmd1bWVudHMuaXRlbXMoKSksCisgICAg
ICAgICAgICAgICAgICAgICAoKCdhJywgMTApLCAoJ2FyZ3MnLCAoMjAsKSksICgnYicsIDMwKSwK
KyAgICAgICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIHsnYyc6IDQwLCAnYXJncyc6IDUwLCAn
a3dhcmdzJzogNjB9KSkpCisgICAgc2VsZi5hc3NlcnRFcXVhbChiYS5rd2FyZ3MsCisgICAgICAg
ICAgICAgICAgICAgICB7J2InOiAzMCwgJ2MnOiA0MCwgJ2FyZ3MnOiA1MCwgJ2t3YXJncyc6IDYw
fSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKGJhLmFyZ3MsICgxMCwgMjApKQorIiIiKQorIworICAg
IGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rf
c2lnbmF0dXJlX2JpbmRfcG9zaXRpb25hbF9vbmx5KHNlbGYpOgorICAgIFAgPSBpbnNwZWN0LlBh
cmFtZXRlcgorCisgICAgZGVmIHRlc3QoYV9wbywgYl9wbywgY19wbz0zLCBmb289NDIsICosIGJh
cj01MCwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gYV9wbywgYl9wbywgY19wbywgZm9vLCBi
YXIsIGt3YXJncworCisgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKyAgICBuZXdf
cGFyYW1zID0gY29sbGVjdGlvbnMuT3JkZXJlZERpY3QodHVwbGUoc2lnLnBhcmFtZXRlcnMuaXRl
bXMoKSkpCisgICAgZm9yIG5hbWUgaW4gKCdhX3BvJywgJ2JfcG8nLCAnY19wbycpOgorICAgICAg
ICBuZXdfcGFyYW1zW25hbWVdID0gbmV3X3BhcmFtc1tuYW1lXS5yZXBsYWNlKGtpbmQ9UC5QT1NJ
VElPTkFMX09OTFkpCisgICAgbmV3X3NpZyA9IHNpZy5yZXBsYWNlKHBhcmFtZXRlcnM9bmV3X3Bh
cmFtcy52YWx1ZXMoKSkKKyAgICB0ZXN0Ll9fc2lnbmF0dXJlX18gPSBuZXdfc2lnCisKKyAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCA0LCA1LCBiYXI9NiksCisgICAg
ICAgICAgICAgICAgICAgICAoMSwgMiwgNCwgNSwgNiwge30pKQorCisgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgInBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHki
KToKKyAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIGNfcG89NCkKKworICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICJwYXJhbWV0ZXIgaXMgcG9zaXRpb25hbCBv
bmx5Iik6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCBhX3BvPTEsIGJfcG89MikKKyIiIikKKwor
CitjbGFzcyBUZXN0Qm91bmRBcmd1bWVudHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHVuaXR0ZXN0LlRlc3RD
YXNlLl9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IGhhc2F0
dHIoc2VsZiwgJ2Fzc2VydFJhaXNlc1JlZ2V4Jyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJh
aXNlc1JlZ2V4ID0gc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAKKworICAgIGRlZiB0ZXN0X3NpZ25h
dHVyZV9ib3VuZF9hcmd1bWVudHNfdW5oYXNoYWJsZShzZWxmKToKKyAgICAgICAgZGVmIGZvbyhh
KTogcGFzcworICAgICAgICBiYSA9IGluc3BlY3Quc2lnbmF0dXJlKGZvbykuYmluZCgxKQorCisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd1bmhhc2hhYmxl
IHR5cGUnKToKKyAgICAgICAgICAgIGhhc2goYmEpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVf
Ym91bmRfYXJndW1lbnRzX2VxdWFsaXR5KHNlbGYpOgorICAgICAgICBkZWYgZm9vKGEpOiBwYXNz
CisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUoZm9vKS5iaW5kKDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYmEsIGJhKQorCisgICAgICAgIGJhMiA9IGluc3BlY3Quc2lnbmF0dXJl
KGZvbykuYmluZCgxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJhLCBiYTIpCisKKyAgICAg
ICAgYmEzID0gaW5zcGVjdC5zaWduYXR1cmUoZm9vKS5iaW5kKDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0Tm90RXF1YWwoYmEsIGJhMykKKyAgICAgICAgYmEzLmFyZ3VtZW50c1snYSddID0gMQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJhLCBiYTMpCisKKyAgICAgICAgZGVmIGJhcihiKTogcGFz
cworICAgICAgICBiYTQgPSBpbnNwZWN0LnNpZ25hdHVyZShiYXIpLmJpbmQoMSkKKyAgICAgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChiYSwgYmE0KQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5f
XyI6CisgICAgdW5pdHRlc3QuYmVnaW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDA2ZTkxNDcyMTdjYWY2ZGM4MThjNWY0ODc3MDY0MjI1MDJkOTc3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy9fX2luaXRfXy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvdGVzdHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9uLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90
ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3Qu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkOGYyN2QwNDU3YzY3ZDNiZTc2ZjM3YTg4
MjdhYjRmYzAyN2UzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMjMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvQ0hBTkdFTE9H
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9NQU5JRkVTVC5pbgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvTWFrZWZpbGUKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL3NldHVwLmNmZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9DSEFOR0VMT0cucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkxYmY1M2ZkY2NiNTMyZTBhNTA0ZjU4NTFhODgzNTlkZjNiY2QzODQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9DSEFOR0VMT0cucnN0CkBAIC0wLDAgKzEsMTUyIEBACisw
LjYuMAorLS0tLS0KKy0gQWRkIENJIHRlc3RpbmcgZm9yIHRoZSBmZWF0dXJlcywgcmVsZWFzZSwg
YW5kIG1hc3RlcgorICBicmFuY2hlcyBvZiBgYHB5dGVzdGBgIChQUiBgIzc5YF8pLgorLSBEb2N1
bWVudCBwdWJsaWMgQVBJIGZvciBgYF9SZXN1bHRgYCBvYmplY3RzIHBhc3NlZCB0byB3cmFwcGVy
cworICAoUFIgYCM4NWBfKS4KKy0gRG9jdW1lbnQgYW5kIHRlc3QgaG9vayBMSUZPIG9yZGVyaW5n
IChQUiBgIzg1YF8pLgorLSBUdXJuIHdhcm5pbmdzIGludG8gZXJyb3JzIGluIHRlc3Qgc3VpdGUg
KFBSIGAjODlgXykuCistIERlcHJlY2F0ZSBgYF9SZXN1bHQucmVzdWx0YGAgKFBSIGAjODhgXyku
CistIENvbnZlcnQgYGBfTXVsdGljYWxsYGAgdG8gYSBzaW1wbGUgZnVuY3Rpb24gZGlzdGluZ3Vp
c2hpbmcgaXQgZnJvbQorICB0aGUgbGVnYWN5IHZlcnNpb24gKFBSIGAjOTBgXykuCistIFJlc29s
dmUgRTc0MSBlcnJvcnMgKFBSIGAjOTZgXykuCistIFRlc3QgYW5kIGJ1ZyBmaXggZm9yIHVubWFy
a2VkIGhvb2sgY29sbGVjdGlvbiAoUFJzIGAjOTdgXyBhbmQKKyAgYCMxMDJgXykuCistIERyb3Ag
c3VwcG9ydCBmb3IgRU9MIFB5dGhvbiAyLjYgYW5kIDMuMyAoUFIgYCMxMDNgXykuCistIEZpeCBg
YGluc3BlY3RgYCBiYXNlZCBhcmcgaW50cm9zcGVjdGlvbiBvbiBweTMuNiAoUFIgYCM5NGBfKS4K
KworLi4gXyM3OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvNzkK
Ky4uIF8jODU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzg1Cisu
LiBfIzg4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC84OAorLi4g
XyM4OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvODkKKy4uIF8j
OTA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzkwCisuLiBfIzk0
OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC85NAorLi4gXyM5Njog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvOTYKKy4uIF8jOTc6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzk3CisuLiBfIzEwMjogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvMTAyCisuLiBfIzEwMzogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvMTAzCisKKworMC41LjIKKy0t
LS0tCistIGZpeCBidWcgd2hlcmUgYGBmaXJzdHJlc3VsdGBgIHdyYXBwZXJzIHdlcmUgYmVpbmcg
c2VudCBhbiBpbmNvcnJlY3RseSBjb25maWd1cmVkCisgIGBgX1Jlc3VsdGBgIChhIGxpc3Qgd2Fz
IHNldCBpbnN0ZWFkIG9mIGEgc2luZ2xlIHZhbHVlKS4gQWRkIHRlc3RzIHRvIGNoZWNrIGZvcgor
ICB0aGlzIGFzIHdlbGwgYXMgYGBfUmVzdWx0LmZvcmNlX3Jlc3VsdCgpYGAgYmVoYXZpb3VyLiBU
aGFua3MgdG8gYEB0Z29vZGxldGBfCisgIGZvciB0aGUgUFIgYCM3MmBfLgorCistIGZpeCBpbmNv
cnJlY3QgYGBnZXRhdHRyYGAgIG9mIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgZnJvbSB0aGUgYGB3
YXJuaW5nc2BgCisgIG1vZHVsZS4gVGhhbmtzIHRvIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIg
YCM3N2BfLgorCistIGhpZGUgYGBweXRlc3RgYCB0cmFjZWJhY2tzIGluIGNlcnRhaW4gY29yZSBy
b3V0aW5lcy4gVGhhbmtzIHRvCisgIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIgYCM4MGBfLgor
CisuLiBfIzcyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC83Mgor
Li4gXyM3NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvNzcKKy4u
IF8jODA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzgwCisKKwor
MC41LjEKKy0tLS0tCistIGZpeCBhIGJ1ZyBhbmQgYWRkIHRlc3RzIGZvciBjYXNlIHdoZXJlIGBg
Zmlyc3RyZXN1bHRgYCBob29rcyByZXR1cm4KKyAgYGBOb25lYGAgcmVzdWx0cy4gVGhhbmtzIHRv
IGBAUm9ubnlQZmFubnNjaG1pZHRgXyBhbmQgYEB0Z29vZGxldGBfCisgIGZvciB0aGUgaXNzdWUg
KGAjNjhgXykgYW5kIFBSIChgIzY5YF8pIHJlc3BlY3RpdmVseS4KKworLi4gXyM2OTogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvNjkKKy4uIF8jNjg6IGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1c2VzLzY4CisKKworMC41LjAKKy0tLS0t
CistIGZpeCBidWcgd2hlcmUgY2FsbGJhY2tzIGZvciBoaXN0b3JpYyBob29rcyB3b3VsZCBub3Qg
YmUgY2FsbGVkIGZvcgorICBhbHJlYWR5IHJlZ2lzdGVyZWQgcGx1Z2lucy4gIFRoYW5rcyBgQHZv
ZGlrYF8gZm9yIHRoZSBQUgorICBhbmQgYEBocGs0MmBfIGZvciBmdXJ0aGVyIGZpeGVzLgorCist
IGZpeCBgIzE3YF8gYnkgY29uc2lkZXJpbmcgb25seSBhY3R1YWwgZnVuY3Rpb25zIGZvciBob29r
cworICB0aGlzIHJlbW92ZXMgdGhlIGFiaWxpdHkgdG8gcmVnaXN0ZXIgYXJiaXRyYXJ5IGNhbGxh
YmxlIG9iamVjdHMKKyAgd2hpY2ggYXQgZmlyc3QgZ2xhbmNlIGlzIGEgcmVhc29uYWJsZSBzaW1w
bGlmaWNhdGlvbiwKKyAgdGhhbmtzIGBAUm9ubnlQZmFubnNjaG1pZHRgXyBmb3IgcmVwb3J0IGFu
ZCBwci4KKworLSBmaXggYCMxOWBfOiBhbGxvdyByZWdpc3RlcmluZyBob29rc3BlY3MgZnJvbSBp
bnN0YW5jZXMuICBUaGUgUFIgZnJvbQorICBgQHRnb29kbGV0YF8gYWxzbyBtb2Rlcm5pemVkIHRo
ZSB2YXJuYW1lcyBpbXBsZW1lbnRhdGlvbi4KKworLSByZXNvbHZlIGAjMzJgXzogc3BsaXQgdXAg
dGhlIHRlc3Qgc2V0IGludG8gbXVsdGlwbGUgbW9kdWxlcy4KKyAgVGhhbmtzIHRvIGBAUm9ubnlQ
ZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSIGFuZCBgQHRnb29kbGV0YF8gZm9yCisgIHRoZSBpbml0
aWFsIHJlcXVlc3QuCisKKy0gcmVzb2x2ZSBgIzE0YF86IGFkZCBmdWxsIHNwaGlueCBkb2NzLiBU
aGFua3MgdG8gYEB0Z29vZGxldGBfIGZvcgorICBQUiBgIzM5YF8uCisKKy0gYWRkIGhvb2sgY2Fs
bCBtaXNtYXRjaCB3YXJuaW5ncy4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXyBmb3IgdGhlCisgIFBS
IGAjNDJgXy4KKworLSByZXNvbHZlIGAjNDRgXzogbW92ZSB0byBuZXctc3R5bGUgY2xhc3Nlcy4g
VGhhbmtzIHRvIGBATWljaGFsVEhFRFVERWBfCisgIGZvciBQUiBgIzQ2YF8uCisKKy0gYWRkIGJh
c2VsaW5lIGJlbmNobWFya2luZy9zcGVlZCB0ZXN0cyB1c2luZyBgYHB5dGVzdC1iZW5jaG1hcmtg
YAorICBpbiBQUiBgIzU0YF8uICBUaGFua3MgdG8gYEB0Z29vZGxldGBfLgorCistIHVwZGF0ZSB0
aGUgUkVBRE1FIHRvIHNob3djYXNlIHRoZSBBUEkuIFRoYW5rcyB0byBgQHRnb29kbGV0YF8gZm9y
IHRoZQorICBpc3N1ZSBhbmQgUFIgYCM1NWBfLgorCistIGRlcHJlY2F0ZSBgYF9fbXVsdGljYWxs
X19gYCBhbmQgYWRkIGEgZmFzdGVyIGNhbGwgbG9vcCBpbXBsZW1lbnRhdGlvbi4KKyAgVGhhbmtz
IHRvIGBAdGdvb2RsZXRgXyBmb3IgUFIgYCM1OGBfLgorCistIHJhaXNlIGEgY29tcHJlaGVuc2li
bGUgZXJyb3Igd2hlbiBhIGBgaG9va2ltcGxgYCBpcyBjYWxsZWQgd2l0aCBwb3NpdGlvbmFsCisg
IGFyZ3MuIFRoYW5rcyB0byBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBpc3N1ZSBhbmQg
YEB0Z29vZGxldGBfIGZvcgorICBQUiBgIzYwYF8uCisKKy0gZml4IHRoZSBgYGZpcnN0cmVzdWx0
YGAgdGVzdCBtYWtpbmcgaXQgbW9yZSBjb21wbGV0ZQorICBhbmQgcmVtb3ZlIGEgZHVwbGljYXRl
IG9mIHRoYXQgdGVzdC4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXworICBmb3IgUFIgYCM2MmBfLgor
CisuLiBfIzYyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC82Mgor
Li4gXyM2MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvNjAKKy4u
IF8jNTg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzU4CisuLiBf
IzU1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC81NQorLi4gXyM1
NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvNTQKKy4uIF8jNDY6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzQ2CisuLiBfIzQ0OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzQ0CisuLiBfIzQyOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC80MgorLi4gXyMzOTogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvMzkKKy4uIF8jMzI6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzMyCisuLiBfIzE5OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE5CisuLiBfIzE3OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE3CisuLiBfIzE0OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE0CisKKworMC40LjAKKy0tLS0t
CistIGFkZCBgYGhhc19wbHVnaW4obmFtZSlgYCBtZXRob2QgdG8gcGx1Z2lubWFuYWdlci4gIHRo
YW5rcyBgQG5pY29kZGVtdXNgXy4KKworLSBmaXggYCMxMWBfOiBtYWtlIHBsdWdpbiBwYXJzaW5n
IG1vcmUgcmVzaWxpZW50IGFnYWluc3QgZXhjZXB0aW9ucworICBmcm9tIGBgX19nZXRhdHRyX19g
YCBmdW5jdGlvbnMuIFRoYW5rcyBgQG5pY29kZGVtdXNgXy4KKworLSBmaXggaXNzdWUgYCM0YF86
IHNwZWNpZmljIGBgSG9va0NhbGxFcnJvcmBgIGV4Y2VwdGlvbiBmb3Igd2hlbiBhIGhvb2sgY2Fs
bAorICBwcm92aWRlcyBub3QgZW5vdWdoIGFyZ3VtZW50cy4KKworLSBiZXR0ZXIgZXJyb3IgbWVz
c2FnZSB3aGVuIGxvYWRpbmcgc2V0dXB0b29scyBlbnRyeXBvaW50cyBmYWlscworICBkdWUgdG8g
YSBgYFZlcnNpb25Db25mbGljdGBgLiAgVGhhbmtzIGBAYmx1ZXllZGBfLgorCisuLiBfIzExOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzExCisuLiBfIzQ6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvNAorCisKKzAuMy4xCist
LS0tLQorLSBhdm9pZCB1c2luZyBkZXByZWNhdGVkLWluLXB5dGhvbjMuNSBnZXRhcmdzcGVjIG1l
dGhvZC4gVGhhbmtzCisgIGBAbWRib29tYF8uCisKKworMC4zLjAKKy0tLS0tCitpbml0aWFsIHJl
bGVhc2UKKworLi4gY29udHJpYnV0b3JzCisuLiBfQGhwazQyOiBodHRwczovL2dpdGh1Yi5jb20v
aHBrNDIKKy4uIF9AdGdvb2RsZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS90Z29vZGxldAorLi4gX0BN
aWNoYWxUSEVEVURFOiBodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVEhFRFVERQorLi4gX0B2b2Rp
azogaHR0cHM6Ly9naXRodWIuY29tL3ZvZGlrCisuLiBfQFJvbm55UGZhbm5zY2htaWR0OiBodHRw
czovL2dpdGh1Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQKKy4uIF9AYmx1ZXllZDogaHR0cHM6Ly9n
aXRodWIuY29tL2JsdWV5ZWQKKy4uIF9Abmljb2RkZW11czogaHR0cHM6Ly9naXRodWIuY29tL25p
Y29kZGVtdXMKKy4uIF9AbWRib29tOiBodHRwczovL2dpdGh1Yi5jb20vbWRib29tCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTElDRU5TRQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMjEwMTdkMDg2NmFmYzYxNzRiY2JkOTIxNGZhZGZmZDgwMDZmODM0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvTElDRU5TRQpAQCAtMCwwICsxLDIyIEBACitUaGUgTUlUIExpY2Vu
c2UgKE1JVCkKKworQ29weXJpZ2h0IChjKSAyMDE1IGhvbGdlciBrcmVrZWwgKHJhdGhlciB1c2Vz
IGJpdGJ1Y2tldC9ocGs0MikgCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdh
cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0
byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us
IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2Yg
dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUg
aXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90
aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp
b25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
LAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ
QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N
LAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L01BTklGRVNULmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBj
ZjhmM2UwODg3YzE2MTg1NWQwOTZkOTY4ODBjNjU5MzRmMWJmYmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9NQU5JRkVTVC5pbgpAQCAtMCwwICsxLDcgQEAKK2luY2x1ZGUgQ0hBTkdF
TE9HCitpbmNsdWRlIFJFQURNRS5yc3QKK2luY2x1ZGUgc2V0dXAucHkKK2luY2x1ZGUgdG94Lmlu
aQoraW5jbHVkZSBMSUNFTlNFCitncmFmdCB0ZXN0aW5nCityZWN1cnNpdmUtZXhjbHVkZSAqICou
cHljICoucHlvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9SRUFETUUucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvUkVBRE1FLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjM2YjZlYzY0MjUwMjMyMGFlY2I3Mzg3NDZkYzVj
ODg5MDgyZjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvUkVBRE1FLnJzdApAQCAt
MCwwICsxLDgwIEBACitwbHVnZ3kgLSBBIG1pbmltYWxpc3QgcHJvZHVjdGlvbiByZWFkeSBwbHVn
aW4gc3lzdGVtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Cit8cHlwaXwgfGFuYWNvbmRhfCB8dmVyc2lvbnN8IHx0cmF2aXN8IHxhcHB2ZXlvcnwK
KworCitUaGlzIGlzIHRoZSBjb3JlIGZyYW1ld29yayB1c2VkIGJ5IHRoZSBgcHl0ZXN0YF8sIGB0
b3hgXywgYW5kIGBkZXZwaWBfIHByb2plY3RzLgorCitQbGVhc2UgYHJlYWQgdGhlIGRvY3NgXyB0
byBsZWFybiBtb3JlIQorCitBIGRlZmluaXRpdmUgZXhhbXBsZQorKioqKioqKioqKioqKioqKioq
KioKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBwbHVnZ3kKKworICAgIGhv
b2tzcGVjID0gcGx1Z2d5Lkhvb2tzcGVjTWFya2VyKCJteXByb2plY3QiKQorICAgIGhvb2tpbXBs
ID0gcGx1Z2d5Lkhvb2tpbXBsTWFya2VyKCJteXByb2plY3QiKQorCisKKyAgICBjbGFzcyBNeVNw
ZWMob2JqZWN0KToKKyAgICAgICAgIiIiQSBob29rIHNwZWNpZmljYXRpb24gbmFtZXNwYWNlLgor
ICAgICAgICAiIiIKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBteWhvb2soc2VsZiwg
YXJnMSwgYXJnMik6CisgICAgICAgICAgICAiIiJNeSBzcGVjaWFsIGxpdHRsZSBob29rIHRoYXQg
eW91IGNhbiBjdXN0b21pemUuCisgICAgICAgICAgICAiIiIKKworCisgICAgY2xhc3MgUGx1Z2lu
XzEob2JqZWN0KToKKyAgICAgICAgIiIiQSBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4K
KyAgICAgICAgIiIiCisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbXlob29rKHNlbGYs
IGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgcHJpbnQoImluc2lkZSBQbHVnaW5fMS5teWhvb2so
KSIpCisgICAgICAgICAgICByZXR1cm4gYXJnMSArIGFyZzIKKworCisgICAgY2xhc3MgUGx1Z2lu
XzIob2JqZWN0KToKKyAgICAgICAgIiIiQSAybmQgaG9vayBpbXBsZW1lbnRhdGlvbiBuYW1lc3Bh
Y2UuCisgICAgICAgICIiIgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIG15aG9vayhz
ZWxmLCBhcmcxLCBhcmcyKToKKyAgICAgICAgICAgIHByaW50KCJpbnNpZGUgUGx1Z2luXzIubXlo
b29rKCkiKQorICAgICAgICAgICAgcmV0dXJuIGFyZzEgLSBhcmcyCisKKworICAgICMgY3JlYXRl
IGEgbWFuYWdlciBhbmQgYWRkIHRoZSBzcGVjCisgICAgcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdl
cigibXlwcm9qZWN0IikKKyAgICBwbS5hZGRfaG9va3NwZWNzKE15U3BlYykKKworICAgICMgcmVn
aXN0ZXIgcGx1Z2lucworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbl8xKCkpCisgICAgcG0ucmVnaXN0
ZXIoUGx1Z2luXzIoKSkKKworICAgICMgY2FsbCBvdXIgYG15aG9va2AgaG9vaworICAgIHJlc3Vs
dHMgPSBwbS5ob29rLm15aG9vayhhcmcxPTEsIGFyZzI9MikKKyAgICBwcmludChyZXN1bHRzKQor
CisKKy4uIGJhZGdlcworLi4gfHB5cGl8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9w
eXBpL3YvcGx1Z2d5LnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5
cGkvcGx1Z2d5CisuLiB8dmVyc2lvbnN8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9w
eXBpL3B5dmVyc2lvbnMvcGx1Z2d5LnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3B5cGkvcGx1Z2d5CisuLiB8dHJhdmlzfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVs
ZHMuaW8vdHJhdmlzL3B5dGVzdC1kZXYvcGx1Z2d5L21hc3Rlci5zdmcKKyAgICA6dGFyZ2V0OiBo
dHRwczovL3RyYXZpcy1jaS5vcmcvcHl0ZXN0LWRldi9wbHVnZ3kKKy4uIHxhcHB2ZXlvcnwgaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2FwcHZleW9yL2NpL3B5dGVzdGJvdC9wbHVnZ3kv
bWFzdGVyLnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3Qv
cHl0ZXN0Ym90L3BsdWdneQorLi4gfGFuYWNvbmRhfCBpbWFnZTo6IGh0dHBzOi8vYW5hY29uZGEu
b3JnL2NvbmRhLWZvcmdlL3BsdWdneS9iYWRnZXMvdmVyc2lvbi5zdmcKKyAgICA6dGFyZ2V0OiBo
dHRwczovL2FuYWNvbmRhLm9yZy9jb25kYS1mb3JnZS9wbHVnZ3kKKworLi4gbGlua3MKKy4uIF9w
eXRlc3Q6CisgICAgaHR0cDovL3B5dGVzdC5vcmcKKy4uIF90b3g6CisgICAgaHR0cHM6Ly90b3gu
cmVhZHRoZWRvY3Mub3JnCisuLiBfZGV2cGk6CisgICAgaHR0cDovL2RvYy5kZXZwaS5uZXQKKy4u
IF9yZWFkIHRoZSBkb2NzOgorICAgaHR0cHM6Ly9wbHVnZ3kucmVhZHRoZWRvY3MuaW8vZW4vbGF0
ZXN0LwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
YXBwdmV5b3IueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzOTAzZjhiZmNjNjcxYmJlODYwYjE5MTNmYzVjY2Ew
NmRhYjg4NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9hcHB2ZXlvci55bWwKQEAg
LTAsMCArMSwzNCBAQAorZW52aXJvbm1lbnQ6CisgIG1hdHJpeDoKKyAgIyBub3RlOiBwbGVhc2Ug
dXNlICJ0b3ggLS1saXN0ZW52cyIgdG8gcG9wdWxhdGUgdGhlIGJ1aWxkIG1hdHJpeCBiZWxvdwor
ICAtIFRPWEVOVjogImNoZWNrIgorICAtIFRPWEVOVjogImRvY3MiCisgIC0gVE9YRU5WOiAicHky
Ny1weXRlc3RyZWxlYXNlIgorICAtIFRPWEVOVjogInB5MzQtcHl0ZXN0cmVsZWFzZSIKKyAgLSBU
T1hFTlY6ICJweTM1LXB5dGVzdHJlbGVhc2UiCisgIC0gVE9YRU5WOiAicHkzNi1weXRlc3RyZWxl
YXNlIgorICAtIFRPWEVOVjogInB5cHktcHl0ZXN0cmVsZWFzZSIKKyAgLSBUT1hFTlY6ICJweTI3
LXB5dGVzdG1hc3RlciIKKyAgLSBUT1hFTlY6ICJweTI3LXB5dGVzdGZlYXR1cmVzIgorICAtIFRP
WEVOVjogInB5MzYtcHl0ZXN0bWFzdGVyIgorICAtIFRPWEVOVjogInB5MzYtcHl0ZXN0ZmVhdHVy
ZXMiCisKK2luc3RhbGw6CisgIC0gZWNobyBJbnN0YWxsZWQgUHl0aG9ucworICAtIGRpciBjOlxQ
eXRob24qCisKKyAgIyBpbnN0YWxsIHB5cHkgdXNpbmcgY2hvY28gKHJlZGlyZWN0IHRvIGEgZmls
ZSBhbmQgd3JpdGUgdG8gY29uc29sZSBpbiBjYXNlCisgICMgY2hvY28gaW5zdGFsbCByZXR1cm5z
IG5vbi16ZXJvLCBiZWNhdXNlIGNob2NvIGluc3RhbGwgcHl0aG9uLnB5cHkgaXMgdG9vCisgICMg
bm9pc3kpCisgICMgcHlweSBpcyBkaXNhYmxlZCB1bnRpbCAjMTk2MyBnZXRzIGZpeGVkCisgIC0g
Y2hvY28gaW5zdGFsbCBweXRob24ucHlweSA+IHB5cHktaW5zdC5sb2cgMj4mMSB8fCAodHlwZSBw
eXB5LWluc3QubG9nICYgZXhpdCAvYiAxKQorICAtIHNldCBQQVRIPUM6XHRvb2xzXHB5cHlccHlw
eTslUEFUSCUgIyBzbyB0b3ggY2FuIGZpbmQgcHlweQorICAtIGVjaG8gUHlQeSBpbnN0YWxsZWQK
KyAgLSBweXB5IC0tdmVyc2lvbgorCisgIC0gQzpcUHl0aG9uMzVccHl0aG9uIC1tIHBpcCBpbnN0
YWxsIHRveAorCitidWlsZDogZmFsc2UgICMgTm90IGEgQyMgcHJvamVjdCwgYnVpbGQgc3R1ZmYg
YXQgdGhlIHRlc3Qgc3RlcCBpbnN0ZWFkLgorCit0ZXN0X3NjcmlwdDoKKyAgLSBDOlxQeXRob24z
NVxweXRob24gLW0gdG94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1n
L3BsdWcucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3RhdGljL2ltZy9wbHVnLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMzM5ZjhhNjA4ZDI1ZmY3YmRjNjUzMWI0MjkwOTM1ZjU4YmE5MDdhCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA5MzUwCnpjbWVIdFhIKnA1X0dPVjJLQGorZk5MSTJTamJzNEBMYDFUUFdW
PUM7TXNtKXYkc2kmVW48JXVCQmBDNFVxOVVQNQp6ZzU8ME9rPSoxd3d8VkxSKjFXYW0pMnh7ZiZr
c21aUmt2PjRkKEorND9eNis0bilqKEZtPyQ2IXFFYjstKVBeOVUKelZoQUZKJGpeWWtqOEtMcmdh
MWdLNjt5UHshOU8yenZ2M0h5MDt3cTgoZVglSTk9RWsmKnthQEl3fDQpbENEWE1sCnp8TFVGakFz
JVcpKHY3I0ZHekJhX29ITSpmd0hPdWxlflI2cUFiWk4wIWZPPSFuJmUoTVN9OzNjXjlORGQqOTJ0
Xwp6VUU8bTQtP0NnZWQwYjFLTDcld1lRMjVWfHFASD1VMSN3VU1oSWt5KTNVfmJPcHVHKnZwRmVr
Vm5gPDBnK1RrPk8Kenk+JHktVGUod3BsNUJuYW1yOEQqQkByWWFrKyhuJEtATEd2Izg5NHMwfS1U
P1krZUtIQCtQUThnZXphYUJubnItCnpuaT1jVThiQUktc3N4ODFUQER2fFZvMj1pUzI5UXwjMkdH
eVBqN1U8ZHNKUS0+fncjX0p0K2x5ZXteWGliaTghPAp6el9EZ28wYXh1Z3YxaT1rYktxOGNHS08z
LV9MZU5zPWMwPWxCVnA2cSgkdnVLZU9CIyp0SnhiaVRFfW1jODRhe2AKemYzeG4peVkmKzU8Z3Bo
ZFR2NSF0SD0qcHJ7dmNjWDY8VG85THdKJEY+dm1kJHZFQmpSczQ+LWRfX2lJcmxBY19jCnomOzU7
fU1BdEleVCU2UStiZ0N+aGFjbDg7Zld4enx4KlNaekJ8VXNSMzk1IzZDR29nUmtNN1FXUklvU1Ns
VT8+Ngp6WjtUdG4jK01XJkN+emo1P3lNcXhjfXZfSVgyKUx7MT16Z0F2TiZ1K2wpKG9vZXItfjx3
dn1vJiZSMiR4d1d5ODwKejhtciQtQFR2YD1la1ElPUlTPjFfPHlwTnF6RStDKE01elJxYUZVYW5e
Wk8mQCgpI3NsTyo2JVFSUCV4fXBOblEmCnpYSEUwY1dLcElQckNyemZVV0wmNip+QH1nJHpOaXhk
K2Z6cVNzfF97QUZlY1VEWiRDcUg4YyFtUzd6ZH1eSWdScQp6X1BAOyFCMThTXipIaXJOVU1PdkEq
PnRgKVl4LTRKZWxBTE08Tmx3eT0+OHV5JV53IW1AT0stWXp7PUNtJmNSUCgKel9kSTgxQDhfMFMz
bS1VQHZlMXdRM1BmOSFAMW5vYHNMYGFpK0lKWjdveDloZHg4XmdDUGpqMTtOK3s4b1NZLUNVCnpS
PCRfdU1SaTMpKF55fXwqaVJDYj41ejlMVEFBeW9oMTdld25hbn1nay1GRXVfX2BrcURibCltWEtI
PXZyVDEyfAp6MXs0bTJ3dEtRbk1tcnN4dUEld3sjVyNFPE9WbnJAbk5nM3hzOyV7IStFXmlTTjZT
YWllTW1MS3BtN19EO2p6IysKenFlbCMxcUw7cyFleW4zUlBkb096SW9fQiRObVZycHNZYS17VmN6
dFU2VSUhRHxOS1lYVUJ5Q0JmeHwwR0QzZ0t7CnoyQkcqIzg2YkszSypDYFlBPXYmSXBRcVErNU1x
KTF6bjJqYl9XJHZNPFJydE85dmRHWWN4K3BpaUBVcDtpQWx6Sgp6WVU9aml6dzx6N0dacU9qTVlW
UyVpKUpAODdea0c5bjA8ZUhGSUpoMGkhR1lEaD58WnZTdnAtYTYtTH1NX2FweU4KekA5Xi1vZ1Bt
MSRNOHZ0aSpfK3gzZ3JGSzRtWElLei08fkdydGQxdFI3JlMhPCQydj8wbVJEOGJVYWB0PkM4I0ZE
CnphYGA/UXNFPj97bjJwIUNpYWgmdnpIYiZQcmlHKktsOH0mO3gtQTxtdGdjRVRSOD19TTxWPldj
ckwhPVlDWU5newp6MGFBdTNkNEs9TEc1MU1kNWZLczduKXVqKXFNYCZ1dHl8bVMtaThMNl9APEhy
NSF3MGs9VWVmIXhWc0VTajE/NlgKenJPJihCbCNJMjQrJm4mZ2B9I0d3NUske3BqXlhBMnd7dXR6
N1ZHd3o1ITFqP1FRTzx3SiF5VFZlVXA8eSVnZjYtCnpJRVpDaD4rMCo0ezcxUTIrMWRBT2NRUE0/
KiY2JDk9XkQqRytgakJjPG11dyhybClRWjV1VC1lWkREQ2kzfkAkXwp6aDc8UGJeWEBLbyV4a2ZU
LWhDcHNycDlRKGJEcV9GTlojPC1TMjY9LW87WjMyQk11WFpjVSpCUWVNcVIxOVFIfVUKei1Nd21v
P3EmWVdKVCl1ZjVOeUV6SVE7elM2QUJ6TXZhcENEaEBWN0c1bnEyOTZfcEhZTzhXbCZWSU1iQ2lE
Z0lBCnpKJG0jPUxgO2x9U0NhKyg3cTRifXVLJHJ2PSRTQXg0LVcmYGxTNX1sWDY4N2RoRnR8N1VT
OTQ1KXBNUDFgNFNocgp6Qlp4dzE7SylCPFhQdEp9eXokMmU/NSszTmVZdCNuZVZ2WEVKXlBTRUNg
VkhMV1VSfT0rcSN7SnI9R3QkQzE7OHgKekN1NWBLail6PVNBZ3g0bFNkZXlwe05jZ198NSZ0JXBD
TlU8cEt7bW5hXlhUT2wofEY7S1hhYW5zJT5TdzdDRzdBCno+JEphVjNBUG1nZjxEVTIran1PMiFM
MWNASHwhPTZIRlM+eU9UNHh7WUxEQ0ttSl9QNHVnXzU8ZzB7JEU+fDVMMAp6dClrc0ZKUmhMVVV+
b3RYI31kQ1Mwbmc9JUwzSzFTZ3RfYUcoOTt8bCpFX3I/R2hBdCMzWmttWE1HQiUoQ0RvN2MKelMh
KzZyLX5BUXNkXylpSnpNUjdVPyMrKEdGT193LVo3K3s1VHFIJDdHO2xVVFhvT05SJnZnNEFtbn4+
Um5XaV5uCnpkfTU2S2s2aWI1KnBGbHxXRHdEX3VkfnxIPjR+cGlRNGcwUURNZGUhcGV9Jjd7Uik2
Xmt7MWg0Tj11N3hWZT9qfQp6WDFWI0s8fDBITXJOY2pLPHIjPj5mR3Noc19vfj8zKylSUnpAbGcm
VSt8dzg2Xz5JSnY1KCowVl5ZaW0jNDltPF8KejVReX1TUkxLV35XTkhkYkhRUWMjdVp+WEFtcm1k
UShRISR8eCRiPnRPYm81MXQhPWApYF9VO2RHVi1xPHBTNGlICnp6I0NVcEpJfHxmI0pvO1N5a3Uh
LW0jRUJUVEVqSU9sUTUySGZ8S2VLSj9+MTNAbXtVaGY1azNtUzk5Xm80TmBycQp6bjFuPzgzd2k7
d0peVTxQYlcybyEzXlAxTlNARz98byFmej09JjAlR3IrZSRze159TihwRVU2NGlfdENGJWZ9THkK
eiowIVJUb0A4SGt7WjVfSEdCbEpfVVF0MTcxU3ZjTj08c0c3VXdHWlAmY0pQVCFxJSllKng+cWh6
a2FhfXw1aVZtCnpINHlpQ1crdG85dXFAT1dUeEBBKHJ1ZkY9PWVnP25Ie05DcjRtfTJ9WmRjOTJy
cktqUGI3JHd9UE8zcFhjQHM5Owp6V05VTT9IUWp5VVQxZyVMTWErPjU+KGZ+ZHRkb24yaT9ZNXhk
Ty14YkxObmkkOT1Fa1BoIWFpQ0k1KlJTS15SRH0KejJHR0l7MFohUXJtb35kRkxOd1R9PEA4ZD1V
ck47PVBWRW9ZPT02cmtpeU42KVNtTipkQU1eRnlCKzReREFRMVNUCno4ck96VWVIYjxVcjNEWlRy
RzdfVlFVX0lLZ2dMeVVaZ0E2TF5QRzhUTGRgcjlSYWtvQVlPbjZeUGk1VipFIVM2fQp6SEZ2X3pz
Vjlkfl9NX2Rod3wtWj8oK1p4N3kmJF9RVXVpI1NTOTJjWDZHJEpHQXo3NGdWSyR7X2cpPDJHTnNZ
PzUKeiFfSmBXeSQ7dH5ORSo5dkRqdkVuNHo2eTt1YWJxS0U3OHZMVTJYNThfYjFFZTxfOzU7JDw3
Vz1PPWE0UVIoNjZICnooSGlqYkAta2JVc09LSXhtcmpUNnw5bG9oTDB6MnQjIUQzaiQzN3VFJH4j
cmtLSm52NjtxSzhrKHVEcDZNb0I3Vwp6ZFBleURTMWQ3ZCRMckFtc3Z2cUxCXyo/I0U+YFlJSjEp
QVgjUnxEXntQcnlZTFpKOSUrP1YzbCpCdXs+d28+SnAKelVTUU9OSkpjVS1rTUBwXlQ3IXxia1lJ
RFNteGgwTiU4VShVayQyelRObjQ8VTxnKnp9ZF9IRWVoSz56PDRWYWk8CnpsWDk4fjJZVnUpOW1v
NWlKJmZKWXBtZj5zQG4yXytKdXNXUjNgQ2krYl5Dd2J6WnNhWDxiZT9+QUVkV0JuZ31aMwp6aiUj
fjZJMUIhYEpXLSNUcEFMT2AyakhvN3EzYDRveEUqajc5ZShiRT9QWEVLODdUTzM0Q2c5QzF6Vk40
QmNgX1kKenYxVyM+RXRuZzVOSkUze2dHS045cUJnTXktdWs4fCQ0NUQ4NVVPVylDaG1jMVA1c2lF
WClJejd6dysodTF2WUBhCnpQO2g4UW05KFA+RzM4UEM7QGIyVjVvdXtGIVhRIUl2SW03KHF0MnNn
d0VJKjBqck1nPFllKnEtYGpWZ2s3d1A0RQp6b1hscF4pPENMI0dLPmdQS3NxXjw9NH54MD5EaUAt
RFhfdWBOcCpeTmoxV1pteDc7YlpndDY8bz45aEwqRVljTzEKemZgV248TWtQOGA7XiglKTdyKTQl
P0w/SEpQaVhWNUd7ZW1yeDEhYklsUyZ6diVQVWorczN+SFVifWhiTEsmX091CnpZUzExVEVQPjYq
JCs9fVJQNmg0ZT9DPFojK08qZypgelRvaVN6QX5yY1YpPWc2WHU8NlR+YzU5K2cwdG07cExHagp6
WH0/MSg7Z1J0R0goblNDUDE8VVZRUH1FRng1ZT5scGRrb1R7LWpCUmRzSSZ0JXcjIXl2OUhuM2l0
dnU8MDVhTl8KemhWfCh5Pzk1JHxeZzdraXhAUCoqSnlXa3dDcj1qPEphMFBfTzItTE9oSylARUtA
MF9KcztRfjlSVmBFcyU5Yn42Cno/YWdQVDUqOCk8PEh2XzdzaX4zMWEofTcxZyVQRVRTcUUyMjF3
QnJOPFNtTn5KfVBqO2ZYTWpGMzx1ZE5OKkZgdwp6NzhgbU5oZmFtdlJhRWZGVGwqWUJkQWVzN3ck
PSRBd15sNWZvOGVfaD9zODY7a21OTkk9K0dZJj1pWSU0Xk9+MD4KeiE2SH15dlJRcVdwZjFZdSpe
RlR5VDNLMUNxdF9GKCohV3FQLXdCZ0lzIXlqc2htP1pra0Z+KmRaVyZjRzJzfiN1CnpLUis5ODRQ
ZUlROUYjZFJpI0NDIU80I3k4WUpSckN1c0F4KGB+fEo4d0REJEs5fk0rc2R8fT03IUg3NFd2KUZ5
WQp6YkM3V1BOSjBQbW5POENeSHhReE9KeUJTJj9tfSY1eSZ4U2syViVMXiUpYWJYSFB9dXItbVhA
VnszLTEpMXU/TGIKeiRqNGxvdFRjR3o9TXxeOz8pZDluJW8hP1BEaSNieWFVPXNUNT0xZn40SEZX
dDgqKTR6OEFYbmlGRXJUNSQ7NnZ9Cno5RmxBKE9lfmAteEVtdGx6N3BHYkk0ZVpCJntlUDQ9LUxI
KWtEO208eS1KQGpsNGw8Y2tlJD8lfEt1SyE/JDM0WAp6QXMqY3JLV2c3Tj9zRHhfMm5STWFFRFlK
MUF9JTUmV2VFejgpLSVGI1NvWTxfUkBSLXA8TGZ8bTtld2pBd0V6UHYKejNGQHZzKyVlP1Y7bzI5
bFN8WGViNDd1OVphOT1fK3BBVHJVIWpGIVFPM2djJjZldUI8QFJuYl9adkxzfDZfdVdFCno3VjBr
IyZ3cF9HQjJlWXs8eUhHc2pmYlBRK3NZVT5BVk1yYHEkcHgwWDZEKEkrU05vUEV8S3dFcC1sK1dq
V2w+bQp6SHZqM1dvdXlgWnkqeWdnY2Jnb05uQ25VeGgpYDU4R0JWMWx1QzZZZVY9a3hRbUYmQmRW
QyNecmpoPE49ZSNwcWcKejZjMWAheVVjMnhLJH1AP1dGKFFpO0BqX2VJPVo/bDhYOGRARGRLOD57
YEBoVXNQbENDTE03UiVBdnctaF9TXihuCnpxeGV8dzlWfmE2VVdLe0F1XiRqRHpASFhZUnVUYX4w
QlJIdUR6Nj5zeHl2cH5MJkFPQlNGK04/cDJST3A2K2c8PQp6UkMpZTljV0pXR2dvbFNtSiVJPyk7
I3IlamA0PE87a0wjUj1HRUA2Q3RgOz85bHB0Z3xkIzBFIVV3Jk8tSipldk0KekBCZ30lNEMyI3Jk
bkNLSHZ4RD45OFJ6Qlg8aC0qPzJoa2A1YldxRlB4RksmcjFnVT1Cbk16NFlCSFRofTFWT1pJCnps
WkZOb2s3TyZWcys9X2BwfHotTThCMip9elpTejYwWWZmenA0WElmMmIwTHM7JHpJZj1Xbj5EbSlE
VSU0Y3xJOQp6SFQ4VSQ5aXlWN2FtVlBMZzk9WWJKX0srM0g5PyZ4blUofXZxbkVydHdXTmU+aHtE
Iz8pKmcrQkw3OVBqNTxtWWUKekVeYikmS35NLXFgWTY4YHdAIz0lWEtfRlBRS0pNRU0yPUJeTE5B
XjVgPntoKlJNY0xEQl92T19BJkE5aFQhS0RiCnpLemc0d2dYRlJDZWArUz1kNHxjTE9kVVhFcTR2
PUFZWih5S3grZE5LPXU4KnwhMHNEQipwYXM1MVRfPjE9WlNVbAp6JTZlNGh1TDNEWXVJUj5oazBZ
aWVzPGB4SWE7Tzc5cWRgUW9EUDVHR3M5JjBke2w1dmolPERKUD4wU1drTkJWaUMKemw2eUZzdjZo
X3lnNnhFNnxBSTBMWFU7cWw/dnAzek43Qnk9UWlUZSooX2VaMVFxfClXT2M4fTNxKEZrSWlnZnol
CnpOTXBKd3VxKChGP2V3UkF7THE7fEV9YyR8LXtqYCRJTS0pb3VLKFYyeEVlLTUlVlFiWSFWI2NQ
Xmh3KzloRzhlVQp6e2F7XjhRI2o/Km1fKHR3ezV2QFE0KFJnU3RRU2xQUE0qNHlYPEFNZSZzZDhw
T3tMPiFaVklgPEBjfF89PEQlMEgKejU2TSVzb1RqLS1XQXFZQkJrezVsQntEdHRfOXh1ITlWYCRH
UjYta2NnK3c4QU4rRjN4VGJ7OXZSYjB4XyltPW9ECno2UHROMlhaLWZZPFhEU0hwXn52Q25rVy0k
Qjh3e2hCRVVKPnhKKEBSZiVxWl5IZDl2XjVtWCY7S2Ioa3k3VCVMTAp6IzMpPlBMNDF6IzF8KFox
Sj1rb2twPis8VlVpdWJSZEhNIU5BcXYlT2BtdXllcntUai1WemMwVFQ9Unw5KGY5QyYKekdWWnIp
azxmMFQ3TjFseUI4WmtqJSZDdm8hcXFyM2xsWilvRDVlO3daNmpKKWQ0TG17aFRFUWt3VDdial5i
P0xsCnpoLThVTElQSy1Qbj1ORldjdHF7JkNYKjBFQj1GPCpAMnVMX1EtT01SPUJWNXQ4YXxSPyUq
RHYmMjhrTXtLQmZsXwp6Y1F8dndZO2lgdT9EQylSdGtmPGU8Iyt6NFI3STZleHMzMXZhWmVOOEEk
OSNkc0AtPCUhKERJekZANDAkWUxzYV4KekZDPWYrTXdNZmw8SWUkSGZkQntSTVk+d35Vc19sSDtS
cH5TRVdwN0BIbkpOMDBfWiRZITlaejJuS2xscjRCK1IqCnpLSSNsWlVZVllvSV49KE00bkFXUEFv
KGpWa3wpfSVTV2tWZCkxWDhTVz0pJnZkPHpIak5LIX0tPX0wNGpfP1c5RAp6QlJrai0kUDw2ZStV
ZGpGLUVhMC1aaUwhNShNUUViSyZhamdLP0pCUGhrcnw+T0s+VkdEbkRCJGtrZ3ZFIUZXTHwKekQ2
ZlE1QHxkeGB2dF9kcWMwPW9lKmhfKiZHbE14cSY8aGF1Yig1bWZHQ3FLWXxNX0U7b1JxWD80RlZl
SjZxS0syCnpuRiV0dWBJbj5OeytEYiZUUSoxdzxGam1OdktOPGRGWiZ2RiNScFdqVXFVaHNYOWpe
NyZaPztCPz95bG58STFiVgp6YjB2P2ZHPmRDanEjTkJ5QVVAfTAlUXR2bTxkQz8xSTRLUmh6clZs
dGB9ZUQkTGkoKnpLJCErU2ItZkdhJVQ1NnUKeklHMyR7ZU94aTNtUnR4ekpyQl59eVhrLUlHaEZz
TzhWRl4lSld6eGNfPEU4Wm4zPFJlbG9KMW08VSlAdklZakA+CnpUSm90OTd2bEdtdyt9U2FyTVg4
ZFpSM2lJVktENzg/SHhkNHNIMElkUEU2X3tYQyVHXzNKP2hZZjNnRlR1VCRuKAp6a1RNKTxAbk9e
MEIxR0JYZHMrVnApVX5fUFd1RGlGVUQtP3tXazZSYShNS3N8N1pqKzFSV308Ykd9UEFEPWlRaj0K
empMWFU0RzVqI2FsWUlNdHptSSFBJDBpOFp6UEIreWB6aGU0KU9BdGZSUFIjTDc/R209MEI9ckU8
aFV2KkRBK3FUCnoyNDVTPSVRVEU/X3p7Zz1nNGYtPU15Uk9VK2l1QmVYPGBVITh0TU9DXzYrPS14
dXJqeEBlQlg5dkMjeFB7PnlKbAp6S0gpJXRHKkRkMiQwdkRnaSlAdk1aTEYqY3JrYX5NT3VFdSZx
dnFfcl5qWUI/OUFDYkM9Xll2MjJofGNOMSU7cH4KemltSChqQmhUSUdGZUsxfmx8JkQlbER7WDho
cXQkaDFRQHI+aDZ4bTc2K3BTWHd6YWlJNUVjWTdKYD0oRj1DJGBxCnpfNUUyfGZ2cU5QSmtyQjx5
aGF5TE11TFg1MHdWRkI+U3NZNGUocyhfZ3BYQUFqfmRzLVF8Zz4xPEV9WVNWanxSUwp6PEVQWlFS
ZmFoU3FtM0NESUdGa0t6QzszMC1NcWYpYGJRRldWfC17QlYkO198dVRRMnI4R2xXdU4hLV5mcTBw
JEoKem9qX3YxTFpmZSQrb2p1MiZ1JlQ9RGQwbCp2NUpaLWJzTCkxaGpeUkA7T0czVEtGZ1c2QFU4
Q31TUzMyQEV3bFBvCnprKDNBcmd4ZkZAU1VpTVRTaD4yb3clSCRWTkgobCtOQGs5WTMzSXRMYWRT
OD03TSsqXmRafF85PzQ0XnI5JV5pRgp6UDFpbUpjMkAqTVVmdkU2LXs/Yz41ezJtKnR+diFxSVEt
PiNYZClmRjRWJi1nIX4xPD1RWmNObUcwSFI2VlEwJXUKejhucndeTTZneT88fHpjOGlPSjJxenI4
YTR4WXpjWnNXMmAtQysqRVYxPTBaa1ZRSzFUY0JwKSQmYT4+KWB1SFYpCnpJUy0+Zj1raWstQX08
NENkSEFEcSpuJnN7LUg3YFJxb3tjalZXPztHdWhLPGlXbWd0dWBEQDs1RFBxWVBBeXRkTgp6Pmx7
bndXTT4wQ3FKJCVaPUZZU2pWUF9zSENQKyZhNyRsfWAoJnNud1RhIWdhOG4lbDVyVXp6YytUIXJq
VmVEUWIKek4tTzE+JF5KNndEPUopSG5fUWRlXi1ySE8tPit7WGohXklqZFNCZW8xdD13cmJlbWJ9
WmBYMTRNS2ZOJnB1MH50Cnp5SENsbGw7aDlmR30kOUxDMk1rOTJYUDZCKUF3Q3lqb0ZEYj5oQVFz
RWB5O2V3bDEjek1pQGFBU1RJVUU+PzJiSgp6QDg4R2FWNmAwdG9oek47Z09CKXI2ZWZYdmA8PF4h
a19jaz1zUDh8d15RLWlgJiRGXnFHQjEwdVJRN2dJdT14bV4Kekx0cFBzbWVRITxLcVF8Wl8zRzg3
M1MqM0F5MnZDajt3dj4rRmw+KEZQQl84U05yOVolRWNhe0JEJWVkSFJhNytaCnpPeUxHO05mMlkx
ITllP1BhR2RObjlgX1RiI0lMS1gzI0o2Yik4eHN2Sj5nIWhiKzRUJEFGOWhQXnZDMFpSYiF0OAp6
SE5qMkFiQD13VDEzMX5SMVpNNUFYYVFVfkFvQS0hbipyQkZfMmlZNTJ6aVl3VjA2Q2t7QSNhc1M8
blc7Uk5leWEKenk8RzhUcGVtKjheP35FOExBZ2F0JEQ3LXVnIWlTJFBEO29kRzg5JGg9ZmF3UE9n
ajkxVXJ2TXxASUQ4VU56JklCCnpCYjI0NktEOzBZRE4oeXBxeFNhdTMocCM4RClPSVZyJnlQN3hI
Qns2TDMzVClWMUl3eFBVREYka1E2QVoyKnVBRQp6NStkX3VCQUE0T1JSdys/TE9MYHliYHFxM2so
eWQwdXhiUmJiYDc0Rz5qb2Jfb2hIejtYWWElJFEjMCE3LVVnfkUKeiZnOUErPCU2fUImISFqOVF8
NikqTWt2amE0WjFmVEFnY0d+UVZJRH5ARDsjK2dPOF81Qzk/bF5ZWk1veSQ0dHo5CnpicyowUSR9
MX5XWj9XeF5NfiUlemBWMmJnOT56Yj15TDg+KWlyajl+MXd4fG57fT5vaGVRYSUrR01hPk0zbkYr
Kwp6PHtlMi1mZTdVRFd8cClnWHVlb21xMXZPe0pHaDchUktAJUlVSWQjNz08Jj0jS3shP2BRU2RR
QUtqalppKGF7PUsKejw5VkdyI1JycE1CdjU8cktsRzN4RlEpJTZjJn1rZSRIaFMtITxoVFE/WDhR
Qz9odjZ1Y3IkIUBgdmxid3dieGdOCnpCcXUhSHtUKH5CXnpAMzF4IXVQY0AyZ1o8eTQmRnZfNV45
YzUtOXBAbXUwazlINkdhI0IkfVo/c2FiQExMRjNpNgp6cXUjWFgmdFNWfSFLdEZkRkxLOTB6KmhU
fCpJWHItbjQyLTdHbXh2KlVSOD9mOX57S3huNG5qPHhGQ3gldm9eWm4Kei1VKFA9ailvLVNnPHpu
NzhZcm5AWStrS3wtTno9cCpLNDJhTyFjSl9FRXh9R0ItTVdmKm1YT1FXUTMmKEFaVjZ9CnozRTBX
VWItREpyd0pWUWd0MW1fPCZJfnBsU05QMSFPYlIwP3BqfDdWaXx9fXk1Tl4yJjcmUkM1JHpoWnJn
aDUlKwp6dDNLWGUxUChGOHReZkczSzt2JCsmPHI2dUc2eVpgdC1gdXJtU2RyNldwUSF3KHF9RXk8
XnZFNyk0QilUWkBaXl4Keld+d1IzM0FsTClvdFFnUzkxQVlld2woMlNaZ1Utcyl4Z1Z8LUNoMyRB
Zk1RSVkzTzRoNCg+a2dOfjlDMFpEQ14qCnpVJVQ0eTgwXmo1LVQ7PiQ/cSVndG1vcUojYHNLQCkl
R1RFSlMjRXAlYUplUmJnJmNQRFo7SHZWR2gzRWF7flNvJQp6X0NOamF2dllHPmZhQVNOVVd7az5r
NDJRKDR0dk0wVzxsdzFSbiN4MiYmezFTQFZ5elpkU15lanUqSCNfcjNPeXEKelQwLTB1QHQ2fTZK
WTsxMDkxSU9lMWFSM30hT1ZpdSlLQmpAVkEyK0J0X2t6ZU1ZSU44a21ZK15Xcnd1ODMqQTZYCnpA
JVFkRD9BK2NmQGpZb1MjNnZWVTAmemoxcD1VZjd2S2FeKClUJCY1Zl4wcGl3ayZ8cUVxKGZoWn57
JGBaODxuMQp6UjFZVXNiPjx0aGVmLUpzPkl2dUtLdkNRJkdNfE1NQkIlSDwzd2Bmcm4kRUp2JU48
VCVhMm1DKE5gYD9HNXBFdjsKekBPPXt9Q1hEO0NxMmVDdVhlVDhIdk1JMk9pU3JyJFo9ZkoxUWln
V01DaSthXk5PP3wmdXNaJGp4dGc0a0I3JmZQCnomQ25EQXU0VExkWjE3dDUpa05RZT9ZNCEhVG4j
amQ1NlIhbyNIKGh7akpyPUpmRilfZzN8P3AoWmNHPFAmfFRwRwp6QlFpSlheMXUpXmU1PntEMWB7
M3xSR3kyU1JXclkkPHM9WXZ7RmhKZlBSSkwxLXFrdyZXd3FeSykmQn4rP2BGKkEKeik+YSMhRDtu
cSFpYVRIaFkybTclVGhpOWteRSZPT0JWMDQ+PUN6RkR0dylTWkVVXlRpXj5DdmJYPTlfX3U9fHF8
CnpmTnMxRmV7O3Z5VEpWJkQ2ZWt2PDk1bkl3WkZjaWhkaVFXO0pGNF9zMk99eVpDNTVTdmA/OUY+
b0h+SFgoLXkocQp6eUZyQVdLdUwrQC08dHFwO15LclJmVTRoMFBYT28lVHNKQ2pidmdHPDJrI3Q0
UDBIfShZSyplN3QxQ2JWVnR2cXUKejBsNFNGaCFQQj57Nkdga2Y/VCtPUEp3WWNzUUZgYzAwI21m
QHxjdzJieFY2alZaNmIwMDMpQmluaEZ+Tis2cktzCnpmJitgWEhQP35NU3lXViVnQ2tjNVZHSF5O
RWlSMW1jaV5iPUxyRm1QMDs1TF92fDwqdGVaPkRwS19BP0VHWi1aTQp6NShfY15pQG9Oa3Qhdm9Z
N0o7Q25HMTNCIVk2PVNyaWBTckM2Q3pTKVdvP1pkRUpvMSNIaT5WN0tHPDIydS0+YHUKejQxM1Zo
SXJxejEwZUotcmcpI2skI14kWF55bGdmbDVaY3k+ZFQmT3tKS1FPdkQyX0J+U0pnX31RNkF2ZGlV
PG9vCnp0em8kak4rK0B7bWI9dHolY3x4cWhOKzNuPEEkcyh0aiRhdD07IVFga19UdGJvPCtMMntN
WiRJMiNrbDBHXnN+Rwp6T0swY2pze28/VTZgPmR5OEEoZlYrUCYtbyVKKUNEPU8jcyRpb21BPCFo
fi1Ee0BkYSNfJjNlfXw0K35OfExgSGkKd0RVNmR0UCNWRXFgMHZMTXxOUilefE10ZmEyYDZXRmMr
N2o1aG9ySz1oZWVSZUp4I0A4ZyhyZGszdDZaTVU7cUZCCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1nL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3RhdGljL2ltZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMGFmNmQ5NjI0Yzk3YWU5MTFhNWE5YTQxMmI3ODhmZTQyODM4YzVlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3RhdGljL2ltZy93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1nL3BsdWcucG5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvZG9jcy9hcGlfcmVmZXJlbmNlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTE1MTM1YWQzZGYwNGUy
YjU5NDgzNjc4ZGM4NDY0YmJhYzY4YmUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
ZG9jcy9hcGlfcmVmZXJlbmNlLnJzdApAQCAtMCwwICsxLDE0IEBACitBcGkgUmVmZXJlbmNlCis9
PT09PT09PT09PT09CisKKy4uIGF1dG9tb2R1bGU6OiBwbHVnZ3kKKyAgICA6bWVtYmVyczoKKyAg
ICA6dW5kb2MtbWVtYmVyczoKKyAgICA6c2hvdy1pbmhlcml0YW5jZToKKworCisuLiBhdXRvbWV0
aG9kOjogcGx1Z2d5Ll9SZXN1bHQuZ2V0X3Jlc3VsdAorCisuLiBhdXRvbWV0aG9kOjogcGx1Z2d5
Ll9SZXN1bHQuZm9yY2VfcmVzdWx0CisKKy4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuX0hvb2tDYWxs
ZXIuY2FsbF9leHRyYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jb25mLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MDY1MjE4ZmRhMDMxYzYzYjRkOTVm
ZTFlYmJmZmY4YjhlMzg5ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2Nv
bmYucHkKQEAgLTAsMCArMSw3MSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBw
a2dfcmVzb3VyY2VzCisKKworZXh0ZW5zaW9ucyA9IFsKKyAgICAnc3BoaW54LmV4dC5hdXRvZG9j
JywKKyAgICAnc3BoaW54LmV4dC5kb2N0ZXN0JywKKyAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlu
eCcsCisgICAgJ3NwaGlueC5leHQuY292ZXJhZ2UnLAorICAgICdzcGhpbnguZXh0LnZpZXdjb2Rl
JywKK10KKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVs
YXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCit0ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRlcydd
CisKK3NvdXJjZV9zdWZmaXggPSAnLnJzdCcKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1l
bnQuCittYXN0ZXJfZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIHByb2plY3QuCisKK2Rpc3QgPSBwa2dfcmVzb3VyY2VzLmdldF9kaXN0cmlidXRpb24oJ3Bs
dWdneScpCitwcm9qZWN0ID0gZGlzdC5wcm9qZWN0X25hbWUKK2NvcHlyaWdodCA9IHUnMjAxNiwg
SG9sZ2VyIEtyZWtlbCcKK2F1dGhvciA9ICdIb2xnZXIgS3Jla2VsJworCityZWxlYXNlID0gZGlz
dC52ZXJzaW9uCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK3ZlcnNpb24gPSB1Jy4nLmpvaW4o
ZGlzdC52ZXJzaW9uLnNwbGl0KCcuJylbOjJdKQorCisKK2xhbmd1YWdlID0gTm9uZQorCitweWdt
ZW50c19zdHlsZSA9ICdzcGhpbngnCitodG1sX2xvZ28gPSAnX3N0YXRpYy9pbWcvcGx1Zy5wbmcn
CitodG1sX3RoZW1lID0gJ2FsYWJhc3RlcicKK2h0bWxfdGhlbWVfb3B0aW9ucyA9IHsKKyAgICAj
ICdsb2dvJzogJ2ltZy9wbHVnLnBuZycsCisgICAgIyAnbG9nb19uYW1lJzogJ3RydWUnLAorICAg
ICdkZXNjcmlwdGlvbic6ICdUaGUgYHB5dGVzdGAgcGx1Z2luIHN5c3RlbScsCisgICAgJ2dpdGh1
Yl91c2VyJzogJ3B5dGVzdC1kZXYnLAorICAgICdnaXRodWJfcmVwbyc6ICdwbHVnZ3knLAorICAg
ICdnaXRodWJfYnV0dG9uJzogJ3RydWUnLAorICAgICdnaXRodWJfYmFubmVyJzogJ3RydWUnLAor
ICAgICdwYWdlX3dpZHRoJzogJzEwODBweCcsCisgICAgJ2ZpeGVkX3NpZGViYXInOiAnZmFsc2Un
LAorfQoraHRtbF9zdGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCisKKyMgT25lIGVudHJ5IHBlciBt
YW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBk
ZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWworICAg
IChtYXN0ZXJfZG9jLCAncGx1Z2d5JywgdSdwbHVnZ3kgRG9jdW1lbnRhdGlvbicsCisgICAgIFth
dXRob3JdLCAxKQorXQorCisKKyMgLS0gT3B0aW9ucyBmb3IgVGV4aW5mbyBvdXRwdXQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdyb3VwaW5nIHRoZSBk
b2N1bWVudCB0cmVlIGludG8gVGV4aW5mbyBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJj
ZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwKKyMgIGRpciBtZW51IGVu
dHJ5LCBkZXNjcmlwdGlvbiwgY2F0ZWdvcnkpCit0ZXhpbmZvX2RvY3VtZW50cyA9IFsKKyAgICAo
bWFzdGVyX2RvYywgJ3BsdWdneScsIHUncGx1Z2d5IERvY3VtZW50YXRpb24nLAorICAgICBhdXRo
b3IsICdwbHVnZ3knLCAnT25lIGxpbmUgZGVzY3JpcHRpb24gb2YgcHJvamVjdC4nLAorICAgICAn
TWlzY2VsbGFuZW91cycpLAorXQorCisjIEV4YW1wbGUgY29uZmlndXJhdGlvbiBmb3IgaW50ZXJz
cGhpbng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4KK2ludGVyc3BoaW54
X21hcHBpbmcgPSB7J2h0dHBzOi8vZG9jcy5weXRob24ub3JnLyc6IE5vbmV9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2RvY3MvZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZWM3Y2QyMTQ0NzQz
Y2ExYWJmYmIyYTdjYjgyNDhhNDQxZDIyOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQpAQCAtMCwwICsxLDQ0IEBACitpbXBvcnQg
cGx1Z2d5CisKK2hvb2tzcGVjID0gcGx1Z2d5Lkhvb2tzcGVjTWFya2VyKCJteXByb2plY3QiKQor
aG9va2ltcGwgPSBwbHVnZ3kuSG9va2ltcGxNYXJrZXIoIm15cHJvamVjdCIpCisKKworY2xhc3Mg
TXlTcGVjKG9iamVjdCk6CisgICAgIiIiQSBob29rIHNwZWNpZmljYXRpb24gbmFtZXNwYWNlLgor
ICAgICIiIgorICAgIEBob29rc3BlYworICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6
CisgICAgICAgICIiIk15IHNwZWNpYWwgbGl0dGxlIGhvb2sgdGhhdCB5b3UgY2FuIGN1c3RvbWl6
ZS4KKyAgICAgICAgIiIiCisKKworY2xhc3MgUGx1Z2luXzEob2JqZWN0KToKKyAgICAiIiJBIGhv
b2sgaW1wbGVtZW50YXRpb24gbmFtZXNwYWNlLgorICAgICIiIgorICAgIEBob29raW1wbAorICAg
IGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CisgICAgICAgIHByaW50KCJpbnNpZGUgUGx1
Z2luXzEubXlob29rKCkiKQorICAgICAgICByZXR1cm4gYXJnMSArIGFyZzIKKworCitjbGFzcyBQ
bHVnaW5fMihvYmplY3QpOgorICAgICIiIkEgMm5kIGhvb2sgaW1wbGVtZW50YXRpb24gbmFtZXNw
YWNlLgorICAgICIiIgorICAgIEBob29raW1wbAorICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwg
YXJnMik6CisgICAgICAgIHByaW50KCJpbnNpZGUgUGx1Z2luXzIubXlob29rKCkiKQorICAgICAg
ICByZXR1cm4gYXJnMSAtIGFyZzIKKworCisjIGNyZWF0ZSBhIG1hbmFnZXIgYW5kIGFkZCB0aGUg
c3BlYworcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKK3BtLmFkZF9ob29r
c3BlY3MoTXlTcGVjKQorCisjIHJlZ2lzdGVyIHBsdWdpbnMKK3BtLnJlZ2lzdGVyKFBsdWdpbl8x
KCkpCitwbS5yZWdpc3RlcihQbHVnaW5fMigpKQorCisjIGNhbGwgb3VyIGBteWhvb2tgIGhvb2sK
K3Jlc3VsdHMgPSBwbS5ob29rLm15aG9vayhhcmcxPTEsIGFyZzI9MikKK3ByaW50KHJlc3VsdHMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjgy
OWE1Njg3ZjQxZWVmMWJiZDYyNDZiM2E2NDE1ZDgzYTA3NGUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2lu
ZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYjY1YTEwMjNmZGQ1MDUwZGJmNTM1MjljMTUzMmMyMTQyODkw
ODg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKQEAgLTAs
MCArMSw3MDUgQEAKK2BgcGx1Z2d5YGAKKz09PT09PT09PT0KKworVGhlIGBgcHl0ZXN0YGAgcGx1
Z2luIHN5c3RlbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorYGBwbHVnZ3lgYCBpcyB0
aGUgY3J5c3RhbGxpemVkIGNvcmUgb2YgYHBsdWdpbiBtYW5hZ2VtZW50IGFuZCBob29rCitjYWxs
aW5nYF8gZm9yIGBweXRlc3RgXy4KKworSW4gZmFjdCwgYGBweXRlc3RgYCBpcyBpdHNlbGYgY29t
cG9zZWQgYXMgYSBzZXQgb2YgYGBwbHVnZ3lgYCBwbHVnaW5zCit3aGljaCBhcmUgaW52b2tlZCBp
biBzZXF1ZW5jZSBhY2NvcmRpbmcgdG8gYSB3ZWxsIGRlZmluZWQgc2V0IG9mIHByb3RvY29scy4K
K1NvbWUgYDIwMCsgcGx1Z2luc2BfIHVzZSBgYHBsdWdneWBgIHRvIGV4dGVuZCBhbmQgY3VzdG9t
aXplIGBgcHl0ZXN0YGAncyBkZWZhdWx0IGJlaGF2aW91ci4KKworSW4gZXNzZW5jZSwgYGBwbHVn
Z3lgYCBlbmFibGVzIGZ1bmN0aW9uIGBob29raW5nYF8gc28geW91IGNhbiBidWlsZCAicGx1Z2dh
YmxlIiBzeXN0ZW1zLgorCitIb3cncyBpdCB3b3JrPworLS0tLS0tLS0tLS0tLS0KK0EgYHBsdWdp
bmAgaXMgYSBgbmFtZXNwYWNlYF8gd2hpY2ggZGVmaW5lcyBob29rIGZ1bmN0aW9ucy4KKworYGBw
bHVnZ3lgYCBtYW5hZ2VzICpwbHVnaW5zKiBieSByZWx5aW5nIG9uOgorCistIGEgaG9vayAqc3Bl
Y2lmaWNhdGlvbiogLSBkZWZpbmVzIGEgY2FsbCBzaWduYXR1cmUKKy0gYSBzZXQgb2YgaG9vayAq
aW1wbGVtZW50YXRpb25zKiAtIGFrYSBgY2FsbGJhY2tzYF8KKy0gdGhlIGhvb2sgKmNhbGxlciog
LSBhIGNhbGwgbG9vcCB3aGljaCBjb2xsZWN0cyByZXN1bHRzCisKK3doZXJlIGZvciBlYWNoIHJl
Z2lzdGVyZWQgaG9vayAqc3BlY2lmaWNhdGlvbiosIGEgaG9vayAqY2FsbCogd2lsbCBpbnZva2Ug
dXAgdG8gYGBOYGAKK3JlZ2lzdGVyZWQgaG9vayAqaW1wbGVtZW50YXRpb25zKi4KKworYGBwbHVn
Z3lgYCBhY2NvbXBsaXNoZXMgYWxsIHRoaXMgYnkgaW1wbGVtZW50aW5nIGEgYHJlcXVlc3QtcmVz
cG9uc2UgcGF0dGVybmBfIHVzaW5nICpmdW5jdGlvbioKK3N1YnNjcmlwdGlvbnMgYW5kIGNhbiBi
ZSB0aG91Z2h0IG9mIGFuZCB1c2VkIGFzIGEgcnVkaW1lbnRhcnkgYnVzbGVzcyBgcHVibGlzaC1z
dWJzY3JpYmVgXworZXZlbnQgc3lzdGVtLgorCitgYHBsdWdneWBgJ3MgYXBwcm9hY2ggaXMgbWVh
bnQgdG8gbGV0IGEgZGVzaWduZXIgdGhpbmsgY2FyZWZ1bHkgYWJvdXQgd2hpY2ggb2JqZWN0cyBh
cmUKK2V4cGxpY2l0bHkgbmVlZGVkIGJ5IGFuIGV4dGVuc2lvbiB3cml0ZXIuIFRoaXMgaXMgaW4g
Y29udHJhc3QgdG8gc3ViY2xhc3MtYmFzZWQgZXh0ZW5zaW9uCitzeXN0ZW1zIHdoaWNoIG1heSBl
eHBvc2UgdW5lY2Vzc2FyeSBzdGF0ZSBhbmQgYmVoYXZpb3VyIG9yIGVuY291cmFnZSBgdGlnaHQg
Y291cGxpbmdgXworaW4gb3Zlcmx5aW5nIGZyYW1ld29ya3MuCisKKworQSBmaXJzdCBleGFtcGxl
CistLS0tLS0tLS0tLS0tLS0KKworLi4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlcy9maXJzdGV4
YW1wbGUucHkKKworUnVubmluZyB0aGlzIGRpcmVjdGx5IGdldHMgdXM6OgorCisgICAgJCBweXRo
b24gZG9jcy9leGFtcGxlcy9maXJzdGV4YW1wbGUucHkKKworICAgIGluc2lkZSBQbHVnaW5fMi5t
eWhvb2soKQorICAgIGluc2lkZSBQbHVnaW5fMS5teWhvb2soKQorICAgIFstMSwgM10KKworRm9y
IG1vcmUgZGV0YWlscyBhbmQgYWR2YW5jZWQgdXNhZ2UgcGxlYXNlIHJlYWQgb24uCisKKy4uIF9k
ZWZpbmU6CisKK0RlZmluaW5nIGFuZCBDb2xsZWN0aW5nIEhvb2tzCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorQSAqcGx1Z2luKiBpcyBhIG5hbWVzcGFjZSB0eXBlIChjdXJyZW50bHkg
b25lIG9mIGEgYGBjbGFzc2BgIG9yIG1vZHVsZSkKK3doaWNoIGRlZmluZXMgYSBzZXQgb2YgKmhv
b2sqIGZ1bmN0aW9ucy4KKworQXMgbWVudGlvbmVkIGluIDpyZWY6YG1hbmFnZWAsIGFsbCAqcGx1
Z2lucyogd2hpY2ggZGVmaW5lICpob29rcyoKK2FyZSBtYW5hZ2VkIGJ5IGFuIGluc3RhbmNlIG9m
IGEgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlcmAgd2hpY2gKK2RlZmluZXMgdGhlIHBy
aW1hcnkgYGBwbHVnZ3lgYCBBUEkuCisKK0luIG9yZGVyIGZvciBhIGBgUGx1Z2luTWFuYWdlcmBg
IHRvIGRldGVjdCBmdW5jdGlvbnMgaW4gYSBuYW1lc3BhY2UKK2ludGVuZGVkIHRvIGJlICpob29r
cyosIHRoZXkgbXVzdCBiZSBkZWNvcmF0ZWQgdXNpbmcgc3BlY2lhbCBgYHBsdWdneWBgICptYXJr
cyouCisKKy4uIF9tYXJraW5nX2hvb2tzOgorCitNYXJraW5nIGhvb2tzCistLS0tLS0tLS0tLS0t
CitUaGUgOnB5OmNsYXNzOmB+cGx1Z2d5Lkhvb2tzcGVjTWFya2VyYCBhbmQgOnB5OmNsYXNzOmB+
cGx1Z2d5Lkhvb2tpbXBsTWFya2VyYAorZGVjb3JhdG9ycyBhcmUgdXNlZCB0byAqbWFyayogZnVu
Y3Rpb25zIGZvciBkZXRlY3Rpb24gYnkgYSBgYFBsdWdpbk1hbmFnZXJgYDoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICAgZnJvbSBwbHVnZ3kgaW1wb3J0IEhvb2tzcGVjTWFya2VyLCBI
b29raW1wbE1hcmtlcgorCisgICAgaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigncHJvamVjdF9u
YW1lJykKKyAgICBob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCdwcm9qZWN0X25hbWUnKQorCisK
K0VhY2ggZGVjb3JhdG9yIHR5cGUgdGFrZXMgYSBzaW5nbGUgYGBwcm9qZWN0X25hbWVgYCBzdHJp
bmcgYXMgaXRzCitsb25lIGFyZ3VtZW50IHRoZSB2YWx1ZSBvZiB3aGljaCBpcyB1c2VkIHRvIG1h
cmsgaG9va3MgZm9yIGRldGVjdGlvbiBieQorYnkgYSBzaW1pbGFybHkgY29uZmlndXJlZCBgYFBs
dWdpbk1hbmFnZXJgYCBpbnN0YW5jZS4KKworVGhhdCBpcywgYSAqbWFyayogdHlwZSBjYWxsZWQg
d2l0aCBgYHByb2plY3RfbmFtZWBgIHJldHVybnMgYW4gb2JqZWN0IHdoaWNoCitjYW4gYmUgdXNl
ZCB0byBkZWNvcmF0ZSBmdW5jdGlvbnMgd2hpY2ggd2lsbCB0aGVuIGJlIGRldGVjdGVkIGJ5IGEK
K2BgUGx1Z2luTWFuYWdlcmBgIHdoaWNoIHdhcyBpbnN0YW50aWF0ZWQgd2l0aCB0aGUgdGhlIHNh
bWUgYGBwcm9qZWN0X25hbWVgYAordmFsdWUuCisKK0Z1cnRoZXJtb3JlLCBlYWNoICpob29raW1w
bCogb3IgKmhvb2tzcGVjKiBkZWNvcmF0b3IgY2FuIGNvbmZpZ3VyZSB0aGUKK3VuZGVybHlpbmcg
Y2FsbC10aW1lIGJlaGF2aW9yIG9mIGVhY2ggKmhvb2sqIG9iamVjdCBieSBwcm92aWRpbmcgc3Bl
Y2lhbAorKm9wdGlvbnMqIHBhc3NlZCBhcyBrZXl3b3JkIGFyZ3VtZW50cy4KKworCisuLiBub3Rl
OjoKKyAgICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvcnJlc3BvbmQgdG8gc2ltaWxhciBkb2N1
bWVudGF0aW9uIGluCisgICAgYGBweXRlc3RgYCBmb3IgYFdyaXRpbmcgaG9vayBmdW5jdGlvbnNg
XyBhbmQgY2FuIGJlIHVzZWQKKyAgICBhcyBhIHN1cHBsZW1lbnRhcnkgcmVzb3VyY2UuCisKKy4u
IF9pbXBsczoKKworSW1wbGVtZW50YXRpb25zCistLS0tLS0tLS0tLS0tLS0KK0EgaG9vayAqaW1w
bGVtZW50YXRpb24qICgqaG9va2ltcGwqKSBpcyBqdXN0IGEgKGNhbGxiYWNrKSBmdW5jdGlvbgor
d2hpY2ggaGFzIGJlZW4gYXBwcm9wcmlhdGVseSBtYXJrZWQuCisKKypob29raW1wbHMqIGFyZSBs
b2FkZWQgZnJvbSBhIHBsdWdpbiB1c2luZyB0aGUKKzpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1h
bmFnZXIucmVnaXN0ZXIoKWAgbWV0aG9kOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICBpbXBvcnQgc3lzCisgICAgZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tp
bXBsTWFya2VyCisKKyAgICBob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCdteXByb2plY3QnKQor
CisgICAgQGhvb2tpbXBsCisgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToKKyAg
ICAgICAgIiIiVGhpcyBob29rIGlzIHVzZWQgdG8gcHJvY2VzcyB0aGUgaW5pdGlhbCBjb25maWcK
KyAgICAgICAgYW5kIHBvc3NpYmx5IGlucHV0IGFyZ3VtZW50cy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBjb25maWcucHJvY2Vzc19hcmdzKGFyZ3MpCisKKyAg
ICAgICAgcmV0dXJuIGNvbmZpZworCisgICAgcG0gPSBQbHVnaW5NYW5hZ2VyKCdteXByb2plY3Qn
KQorCisgICAgIyBsb2FkIGFsbCBob29raW1wbHMgZnJvbSB0aGUgbG9jYWwgbW9kdWxlJ3MgbmFt
ZXNwYWNlCisgICAgcGx1Z2luX25hbWUgPSBwbS5yZWdpc3RlcihzeXMubW9kdWxlc1tfX25hbWVf
X10pCisKKy4uIF9vcHRpb25hbGhvb2s6CisKK09wdGlvbmFsIHZhbGlkYXRpb24KK15eXl5eXl5e
Xl5eXl5eXl5eXl4KK05vcm1hbGx5IGVhY2ggKmhvb2tpbXBsKiBzaG91bGQgYmUgdmFsaWRhdGVk
IGEgYWdhaW5zdCBhIGNvcnJlc3BvbmRpbmcKK2hvb2sgOnJlZjpgc3BlY2lmaWNhdGlvbiA8c3Bl
Y3M+YC4gSWYgeW91IHdhbnQgdG8gbWFrZSBhbiBleGNlcHRpb24KK3RoZW4gdGhlICpob29raW1w
bCogc2hvdWxkIGJlIG1hcmtlZCB3aXRoIHRoZSBgYCJvcHRpb25hbGhvb2siYGAgb3B0aW9uOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAaG9va2ltcGwob3B0aW9uYWxob29rPVRy
dWUpCisgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToKKyAgICAgICAgIiIiVGhp
cyBob29rIGlzIHVzZWQgdG8gcHJvY2VzcyB0aGUgaW5pdGlhbCBjb25maWcKKyAgICAgICAgYW5k
IHBvc3NpYmx5IGlucHV0IGFyZ3VtZW50cy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGFyZ3M6
CisgICAgICAgICAgICBjb25maWcucHJvY2Vzc19hcmdzKGFyZ3MpCisKKyAgICAgICAgcmV0dXJu
IGNvbmZpZworCitDYWxsIHRpbWUgb3JkZXIKK15eXl5eXl5eXl5eXl5eXgorQnkgZGVmYXVsdCBo
b29rcyBhcmUgOnJlZjpgY2FsbGVkIDxjYWxsaW5nPmAgaW4gTElGTyByZWdpc3RlcmVkIG9yZGVy
LCBob3dldmVyLAorYSAqaG9va2ltcGwqIGNhbiBpbmZsdWVuY2UgaXRzIGNhbGwtdGltZSBpbnZv
Y2F0aW9uIHBvc2l0aW9uIHVzaW5nIHNwZWNpYWwKK2F0dHJpYnV0ZXMuIElmIG1hcmtlZCB3aXRo
IGEgYGAidHJ5Zmlyc3QiYGAgb3IgYGAidHJ5bGFzdCJgYCBvcHRpb24gaXQKK3dpbGwgYmUgZXhl
Y3V0ZWQgKmZpcnN0KiBvciAqbGFzdCogcmVzcGVjdGl2ZWx5IGluIHRoZSBob29rIGNhbGwgbG9v
cDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHN5cworICAgIGZyb20g
cGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlcgorCisgICAgaG9va2lt
cGwgPSBIb29raW1wbE1hcmtlcignbXlwcm9qZWN0JykKKworICAgIEBob29raW1wbCh0cnlsYXN0
PVRydWUpCisgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToKKyAgICAgICAgIiIi
RGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGFyZ3M6Cisg
ICAgICAgICAgICBjb25maWcucHJvY2Vzc19hcmdzKGFyZ3MpCisKKyAgICAgICAgcmV0dXJuIGNv
bmZpZworCisKKyAgICBjbGFzcyBTb21lT3RoZXJQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgIiIi
U29tZSBvdGhlciBwbHVnaW4gZGVmaW5pbmcgdGhlIHNhbWUgaG9vay4KKyAgICAgICAgIiIiCisg
ICAgICAgIEBob29raW1wbCh0cnlmaXJzdD1UcnVlKQorICAgICAgICBkZWYgc2V0dXBfcHJvamVj
dChjb25maWcsIGFyZ3MpOgorICAgICAgICAgICAgIiIiUmVwb3J0IHdoYXQgYXJncyB3ZXJlIHBh
c3NlZCBiZWZvcmUgY2FsbGluZworICAgICAgICAgICAgZG93bnN0cmVhbSBob29rcy4KKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgICAgICBwcmludCgi
R290IGFyZ3M6IHt9Ii5mb3JtYXQoYXJncykpCisKKyAgICAgICAgICAgIHJldHVybiBjb25maWcK
KworICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAgICMgbG9hZCBmcm9t
IHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKKyAgICBwbS5yZWdpc3RlcihzeXMubW9kdWxl
c1tfX25hbWVfX10pCisgICAgIyBsb2FkIGEgcGx1Z2luIGRlZmluZWQgb24gYSBjbGFzcworICAg
IHBtLnJlZ2lzdGVyKFNvbWVQbHVnaW4oKSkKKworRm9yIGFub3RoZXIgZXhhbXBsZSBzZWUgdGhl
IGBob29rIGZ1bmN0aW9uIG9yZGVyaW5nYF8gc2VjdGlvbiBvZiB0aGUKK2BgcHl0ZXN0YGAgZG9j
cy4KKworLi4gbm90ZTo6CisgICAgYGB0cnlmaXJzdGBgIGFuZCBgYHRyeWxhc3RgYCBob29rcyBh
cmUgc3RpbGwgaW52b2tlZCBpbiBMSUZPIG9yZGVyIHdpdGhpbgorICAgIGVhY2ggY2F0ZWdvcnku
CisKK1dyYXBwZXJzCiteXl5eXl5eXgorQSAqaG9va2ltcGwqIGNhbiBiZSBtYXJrZWQgd2l0aCBh
IGBgImhvb2t3cmFwcGVyImBgIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgdGhhdAordGhlIGZ1bmN0
aW9uIHdpbGwgYmUgY2FsbGVkIHRvICp3cmFwKiAob3Igc3Vycm91bmQpIGFsbCBvdGhlciBub3Jt
YWwgKmhvb2tpbXBsKgorY2FsbHMuIEEgKmhvb2t3cmFwcGVyKiBjYW4gdGh1cyBleGVjdXRlIHNv
bWUgY29kZSBhaGVhZCBhbmQgYWZ0ZXIgdGhlIGV4ZWN1dGlvbgorb2YgYWxsIGNvcnJlc3BvbmRp
bmcgbm9uLXdyYXBwcGVyICpob29raW1wbHMqLgorCitNdWNoIGluIHRoZSBzYW1lIHdheSBhcyBh
IGBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcmBfLCAqaG9va3dyYXBwZXJzKiBtdXN0CitiZSBp
bXBsZW1lbnRlZCBhcyBnZW5lcmF0b3IgZnVuY3Rpb24gd2l0aCBhIHNpbmdsZSBgYHlpZWxkYGAg
aW4gaXRzIGJvZHk6CisKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQGhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToK
KyAgICAgICAgIiIiV3JhcCBjYWxscyB0byBgYHNldHVwX3Byb2plY3QoKWBgIGltcGxlbWVudGF0
aW9ucyB3aGljaAorICAgICAgICBzaG91bGQgcmV0dXJuIGpzb24gZW5jb2RlZCBjb25maWcgb3B0
aW9ucy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGNvbmZpZy5kZWJ1ZzoKKyAgICAgICAgICAg
IHByaW50KCJQcmUtaG9vayBjb25maWcgaXMge30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBj
b25maWcudG9qc29uKCkpKQorCisgICAgICAgICMgZ2V0IGluaXRpYWwgZGVmYXVsdCBjb25maWcK
KyAgICAgICAgZGVmYXVsdHMgPSBjb25maWcudG9qc29uKCkKKworICAgICAgICAjIGFsbCBjb3Jy
ZXNwb25kaW5nIGhvb2tpbXBscyBhcmUgaW52b2tlZCBoZXJlCisgICAgICAgIG91dGNvbWUgPSB5
aWVsZAorCisgICAgICAgIGZvciBpdGVtIGluIG91dGNvbWUuZ2V0X3Jlc3VsdCgpOgorICAgICAg
ICAgICAgcHJpbnQoIkpTT04gY29uZmlnIG92ZXJyaWRlIGlzIHt9Ii5mb3JtYXQoaXRlbSkpCisK
KyAgICAgICAgaWYgY29uZmlnLmRlYnVnOgorICAgICAgICAgICAgcHJpbnQoIlBvc3QtaG9vayBj
b25maWcgaXMge30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBjb25maWcudG9qc29uKCkpKQor
CisgICAgICAgIGlmIGNvbmZpZy51c2VfZGVmYXVsdHM6CisgICAgICAgICAgICBvdXRjb21lLmZv
cmNlX3Jlc3VsdChkZWZhdWx0cykKKworVGhlIGdlbmVyYXRvciBpcyBgc2VudGBfIGEgOnB5OmNs
YXNzOmBwbHVnZ3kuX1Jlc3VsdGAgb2JqZWN0IHdoaWNoIGNhbgorYmUgYXNzaWduZWQgaW4gdGhl
IGBgeWllbGRgYCBleHByZXNzaW9uIGFuZCB1c2VkIHRvIG92ZXJyaWRlIG9yIGluc3BlY3QKK3Ro
ZSBmaW5hbCByZXN1bHQocykgcmV0dXJuZWQgYmFjayB0byB0aGUgY2FsbGVyIHVzaW5nIHRoZQor
OnB5Om1ldGg6YH5wbHVnZ3kuX1Jlc3VsdC5mb3JjZV9yZXN1bHRgIG9yCis6cHk6bWV0aDpgfnBs
dWdneS5fUmVzdWx0LmdldF9yZXN1bHRgIG1ldGhvZHMuCisKKy4uIG5vdGU6OgorICAgIEhvb2sg
d3JhcHBlcnMgY2FuICoqbm90KiogcmV0dXJuIHJlc3VsdHMgKGFzIHBlciBnZW5lcmF0b3IgZnVu
Y3Rpb24KKyAgICBzZW1hbnRpY3MpOyB0aGV5IGNhbiBvbmx5IG1vZGlmeSB0aGVtIHVzaW5nIHRo
ZSBgYF9SZXN1bHRgYCBBUEkuCisKK0Fsc28gc2VlIHRoZSBgaG9va3dyYXBwZXJgXyBzZWN0aW9u
IGluIHRoZSBgYHB5dGVzdGBgIGRvY3MuCisKKy4uIF9zcGVjczoKKworU3BlY2lmaWNhdGlvbnMK
Ky0tLS0tLS0tLS0tLS0tCitBIGhvb2sgKnNwZWNpZmljYXRpb24qICgqaG9va3NwZWMqKSBpcyBh
IGRlZmluaXRpb24gdXNlZCB0byB2YWxpZGF0ZSBlYWNoCisqaG9va2ltcGwqIGVuc3VyaW5nIHRo
YXQgYW4gZXh0ZW5zaW9uIHdyaXRlciBoYXMgY29ycmVjdGx5IGRlZmluZWQgdGhlaXIKK2NhbGxi
YWNrIGZ1bmN0aW9uICppbXBsZW1lbnRhdGlvbiogLgorCisqaG9va3NwZWNzKiBhcmUgZGVmaW5l
ZCB1c2luZyBzaW1pbGFybHkgbWFya2VkIGZ1bmN0aW9ucyBob3dldmVyIG9ubHkgdGhlCitmdW5j
dGlvbiAqc2lnbmF0dXJlKiAoaXRzIG5hbWUgYW5kIG5hbWVzIG9mIGFsbCBpdHMgYXJndW1lbnRz
KSBpcyBhbmFseXplZAorYW5kIHN0b3JlZC4gQXMgc3VjaCwgb2Z0ZW4geW91IHdpbGwgc2VlIGEg
Kmhvb2tzcGVjKiBkZWZpbmVkIHdpdGggb25seQorYSBkb2NzdHJpbmcgaW4gaXRzIGJvZHkuCisK
Kypob29rc3BlY3MqIGFyZSBsb2FkZWQgdXNpbmcgdGhlCis6cHk6bWV0aDpgfnBsdWdneS5QbHVn
aW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MoKWAgbWV0aG9kIGFuZCBub3JtYWxseQorc2hvdWxkIGJl
IGFkZGVkIGJlZm9yZSByZWdpc3RlcmluZyBjb3JyZXNwb25kaW5nICpob29raW1wbHMqOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgc3lzCisgICAgZnJvbSBwbHVnZ3kg
aW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tzcGVjTWFya2VyCisKKyAgICBob29rc3BlYyA9IEhv
b2tzcGVjTWFya2VyKCdteXByb2plY3QnKQorCisgICAgQGhvb2tzcGVjCisgICAgZGVmIHNldHVw
X3Byb2plY3QoY29uZmlnLCBhcmdzKToKKyAgICAgICAgIiIiVGhpcyBob29rIGlzIHVzZWQgdG8g
cHJvY2VzcyB0aGUgaW5pdGFsIGNvbmZpZyBhbmQgaW5wdXQKKyAgICAgICAgYXJndW1lbnRzLgor
ICAgICAgICAiIiIKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAg
ICMgbG9hZCBmcm9tIHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKKyAgICBwbS5hZGRfaG9v
a3NwZWNzKHN5cy5tb2R1bGVzW19fbmFtZV9fXSkKKworCitSZWdpc3RlcmluZyBhICpob29raW1w
bCogd2hpY2ggZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgaXRzCitjb3JyZXNwb25k
aW5nICpob29rc3BlYyogd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuCisKK0EgKmhvb2tzcGVjKiBj
YW4gYWxzbyBiZSBhZGRlZCAqKmFmdGVyKiogc29tZSAqaG9va2ltcGxzKiBoYXZlIGJlZW4KK3Jl
Z2lzdGVyZWQgaG93ZXZlciB0aGlzIGlzIG5vdCBub3JtYWxseSByZWNvbW1lbmRlZCBhcyBpdCBy
ZXN1bHRzIGluCitkZWxheWVkIGhvb2sgdmFsaWRhdGlvbi4KKworLi4gbm90ZTo6CisgICAgVGhl
IHRlcm0gKmhvb2tzcGVjKiBjYW4gc29tZXRpbWVzIHJlZmVyIHRvIHRoZSBwbHVnaW4tbmFtZXNw
YWNlCisgICAgd2hpY2ggZGVmaW5lcyBgYGhvb2tzcGVjYGAgZGVjb3JhdGVkIGZ1bmN0aW9ucyBh
cyBpbiB0aGUgY2FzZSBvZgorICAgIGBgcHl0ZXN0YGAncyBgaG9va3NwZWMgbW9kdWxlYF8KKwor
RW5mb3JjaW5nIHNwZWMgdmFsaWRhdGlvbgorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorQnkg
ZGVmYXVsdCB0aGVyZSBpcyBubyBzdHJpY3QgcmVxdWlyZW1lbnQgdGhhdCBlYWNoICpob29raW1w
bCogaGFzCithIGNvcnJlc3BvbmRpbmcgKmhvb2tzcGVjKi4gSG93ZXZlciwgaWYgeW91J2QgbGlr
ZSB5b3UgZW5mb3JjZSB0aGlzCitiZWhhdmlvciB5b3UgY2FuIHJ1biBhIGNoZWNrIHdpdGggdGhl
Cis6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmNoZWNrX3BlbmRpbmcoKWAgbWV0aG9k
LiBJZiB5b3UnZCBsaWtlCit0byBlbmZvcmNlIHJlcXVpc2l0ZSAqaG9va3NwZWNzKiBidXQgd2l0
aCBjZXJ0YWluIGV4Y2VwdGlvbnMgZm9yIHNvbWUgaG9va3MKK3RoZW4gbWFrZSBzdXJlIHRvIG1h
cmsgdGhvc2UgaG9va3MgYXMgOnJlZjpgb3B0aW9uYWwgPG9wdGlvbmFsaG9vaz5gLgorCitPcHQt
aW4gYXJndW1lbnRzCiteXl5eXl5eXl5eXl5eXl5eCitUbyBhbGxvdyBmb3IgKmhvb2tzcGVjcyog
dG8gZXZvbHZlIG92ZXIgdGhlIGxpZmV0aW1lIG9mIGEgcHJvamVjdCwKKypob29raW1wbHMqIGNh
biBhY2NlcHQgKipsZXNzKiogYXJndW1lbnRzIHRoZW4gZGVmaW5lZCBpbiB0aGUgc3BlYy4KK1Ro
aXMgYWxsb3dzIGZvciBleHRlbmRpbmcgaG9vayBhcmd1bWVudHMgKGFuZCB0aHVzIHNlbWFudGlj
cykgd2l0aG91dAorYnJlYWtpbmcgZXhpc3RpbmcgKmhvb2tpbXBscyouCisKK0luIG90aGVyIHdv
cmRzIHRoaXMgaXMgb2s6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIEBob29rc3Bl
YworICAgIGRlZiBteWhvb2soY29uZmlnLCBhcmdzKToKKyAgICAgICAgcGFzcworCisgICAgQGhv
b2tpbXBsCisgICAgZGVmIG15aG9vayhhcmdzKToKKyAgICAgICAgcHJpbnQoYXJncykKKworCit3
aGVyZWFzIHRoaXMgaXMgbm90OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAaG9v
a3NwZWMKKyAgICBkZWYgbXlob29rKGNvbmZpZywgYXJncyk6CisgICAgICAgIHBhc3MKKworICAg
IEBob29raW1wbAorICAgIGRlZiBteWhvb2soY29uZmlnLCBhcmdzLCBleHRyYV9hcmcpOgorICAg
ICAgICBwcmludChhcmdzKQorCisuLiBfZmlyc3RyZXN1bHQ6CisKK0ZpcnN0IHJlc3VsdCBvbmx5
CiteXl5eXl5eXl5eXl5eXl5eXgorQSAqaG9va3NwZWMqIGNhbiBiZSBtYXJrZWQgc3VjaCB0aGF0
IHdoZW4gdGhlICpob29rKiBpcyBjYWxsZWQgdGhlIGNhbGwgbG9vcAord2lsbCBvbmx5IGludm9r
ZSB1cCB0byB0aGUgZmlyc3QgKmhvb2tpbXBsKiB3aGljaCByZXR1cm5zIGEgcmVzdWx0IG90aGVy
Cit0aGVuIGBgTm9uZWBgLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICBkZWYgbXlob29rKGNvbmZpZywgYXJncyk6CisgICAg
ICAgIHBhc3MKKworVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBvcHRpbWl6aW5nIGEgY2FsbCBsb29w
IGZvciB3aGljaCB5b3UgYXJlIG9ubHkKK2ludGVyZXN0ZWQgaW4gYSBzaW5nbGUgY29yZSAqaG9v
a2ltcGwqLiBBbiBleGFtcGxlIGlzIHRoZQorYHB5dGVzdF9jbWRsaW5lX21haW5gXyBjZW50cmFs
IHJvdXRpbmUgb2YgYGBweXRlc3RgYC4KKworQWxzbyBzZWUgdGhlIGBmaXJzdCByZXN1bHRgXyBz
ZWN0aW9uIGluIHRoZSBgYHB5dGVzdGBgIGRvY3MuCisKKy4uIF9oaXN0b3JpYzoKKworSGlzdG9y
aWMgaG9va3MKK15eXl5eXl5eXl5eXl5eCitZb3UgY2FuIG1hcmsgYSAqaG9va3NwZWMqIGFzIGJl
aW5nICpoaXN0b3JpYyogbWVhbmluZyB0aGF0IHRoZSBob29rCitjYW4gYmUgY2FsbGVkIHdpdGgg
OnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5jYWxsX2hpc3RvcmljKClgICoqYmVmb3Jl
KioKK2hhdmluZyBiZWVuIHJlZ2lzdGVyZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgIEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorICAgIGRlZiBteWhvb2soY29uZmlnLCBhcmdz
KToKKyAgICAgICAgcGFzcworCitUaGUgaW1wbGljYXRpb24gaXMgdGhhdCBsYXRlIHJlZ2lzdGVy
ZWQgKmhvb2tpbXBscyogd2lsbCBiZSBjYWxsZWQgYmFjaworaW1tZWRpYXRlbHkgYXQgcmVnaXN0
ZXIgdGltZSBhbmQgKipjYW4gbm90KiogcmV0dXJuIGEgcmVzdWx0IHRvIHRoZSBjYWxsZXIuKioK
KworVGhpcyB0dXJucyBvdXQgdG8gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGRlYWxpbmcg
d2l0aCBsYXp5IG9yCitkeW5hbWljYWxseSBsb2FkZWQgcGx1Z2lucy4KKworRm9yIG1vcmUgaW5m
byBzZWUgOnJlZjpgY2FsbF9oaXN0b3JpY2AuCisKKworLi4gbGlua3MKKy4uIF9AY29udGV4dGxp
Yi5jb250ZXh0bWFuYWdlcjoKKyAgICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjYvbGlicmFy
eS9jb250ZXh0bGliLmh0bWwjY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorLi4gX3B5dGVzdF9j
bWRsaW5lX21haW46CisgICAgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2Js
b2IvbWFzdGVyL19weXRlc3QvaG9va3NwZWMucHkjTDgwCisuLiBfaG9va3NwZWMgbW9kdWxlOgor
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9fcHl0
ZXN0L2hvb2tzcGVjLnB5CisuLiBfV3JpdGluZyBob29rIGZ1bmN0aW9uczoKKyAgICBodHRwOi8v
ZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI3dyaXRpbmctaG9v
ay1mdW5jdGlvbnMKKy4uIF9ob29rd3JhcHBlcjoKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI2hvb2t3cmFwcGVyLWV4ZWN1dGluZy1hcm91
bmQtb3RoZXItaG9va3MKKy4uIF9ob29rIGZ1bmN0aW9uIG9yZGVyaW5nOgorICAgIGh0dHA6Ly9k
b2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd3JpdGluZ19wbHVnaW5zLmh0bWwjaG9vay1mdW5jdGlv
bi1vcmRlcmluZy1jYWxsLWV4YW1wbGUKKy4uIF9maXJzdCByZXN1bHQ6CisgICAgaHR0cDovL2Rv
Yy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCNmaXJzdHJlc3VsdC1z
dG9wLWF0LWZpcnN0LW5vbi1ub25lLXJlc3VsdAorLi4gX3NlbnQ6CisgICAgaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZXhwcmVzc2lvbnMuaHRtbCNnZW5lcmF0b3Iuc2VuZAor
CisuLiBfbWFuYWdlOgorCitUaGUgUGx1Z2luIFJlZ2lzdHJ5CisqKioqKioqKioqKioqKioqKioq
CitgYHBsdWdneWBgIG1hbmFnZXMgcGx1Z2lucyB1c2luZyBpbnN0YW5jZXMgb2YgdGhlCis6cHk6
Y2xhc3M6YHBsdWdneS5QbHVnaW5NYW5hZ2VyYC4KKworQSBgYFBsdWdpbk1hbmFnZXJgYCBpcyBp
bnN0YW50aWF0ZWQgd2l0aCBhIHNpbmdsZQorYGBzdHJgYCBhcmd1bWVudCwgdGhlIGBgcHJvamVj
dF9uYW1lYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBwbHVnZ3kK
KyAgICBwbSA9IHBsdWdneS5QbHVnaW5NYW5hZ2VyKCdteV9wcm9qZWN0X25hbWUnKQorCisKK1Ro
ZSBgYHByb2plY3RfbmFtZWBgIHZhbHVlIGlzIHVzZWQgd2hlbiBhIGBgUGx1Z2luTWFuYWdlcmBg
IHNjYW5zIGZvciAqaG9vayoKK2Z1bmN0aW9ucyA6cmVmOmBkZWZpbmVkIG9uIGEgcGx1Z2luIDxk
ZWZpbmU+YC4KK1RoaXMgYWxsb3dzIGZvciBtdWx0aXBsZQorcGx1Z2luIG1hbmFnZXJzIGZyb20g
bXVsdGlwbGUgcHJvamVjdHMgdG8gZGVmaW5lIGhvb2tzIGFsb25nc2lkZSBlYWNoIG90aGVyLgor
CisKK1JlZ2lzdHJhdGlvbgorLS0tLS0tLS0tLS0tCitFYWNoIGBgUGx1Z2luTWFuYWdlcmBgIG1h
aW50YWlucyBhICpwbHVnaW4qIHJlZ2lzdHJ5IHdoZXJlIGVhY2ggKnBsdWdpbioKK2NvbnRhaW5z
IGEgc2V0IG9mICpob29raW1wbCogZGVmaW5pdGlvbnMuIExvYWRpbmcgKmhvb2tpbXBsKiBhbmQg
Kmhvb2tzcGVjKgorZGVmaW5pdGlvbnMgdG8gcG9wdWxhdGUgdGhlIHJlZ2lzdHJ5IGlzIGRlc2Ny
aWJlZCBpbiBkZXRhaWwgaW4gdGhlIHNlY3Rpb24gb24KKzpyZWY6YGRlZmluZWAuCisKK0luIHN1
bW1hcnksIHlvdSBwYXNzIGEgcGx1Z2luIG5hbWVzcGFjZSBvYmplY3QgdG8gdGhlCis6cHk6bWV0
aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLnJlZ2lzdGVyKClgIGFuZAorOnB5Om1ldGg6YH5wbHVn
Z3kuUGx1Z2luTWFuYWdlci5hZGRfaG9va3NwZWMoKWAgbWV0aG9kcyB0byBjb2xsZWN0Citob29r
ICppbXBsZW1lbnRhdGlvbnMqIGFuZCAqc3BlY2ZpY2F0aW9ucyogZnJvbSAqcGx1Z2luKiBuYW1l
c3BhY2VzIHJlc3BlY3RpdmVseS4KKworWW91IGNhbiB1bnJlZ2lzdGVyIGFueSAqcGx1Z2luKidz
IGhvb2tzIHVzaW5nCis6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLnVucmVnaXN0ZXIo
KWAgYW5kIGNoZWNrIGlmIGEgcGx1Z2luIGlzCityZWdpc3RlcmVkIGJ5IHBhc3NpbmcgaXRzIG5h
bWUgdG8gdGhlCis6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmlzX3JlZ2lzdGVyZWQo
KWAgbWV0aG9kLgorCitMb2FkaW5nIGBgc2V0dXB0b29sc2BgIGVudHJ5IHBvaW50cworXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KK1lvdSBjYW4gYXV0b21hdGljYWxseSBsb2Fk
IHBsdWdpbnMgcmVnaXN0ZXJlZCB0aHJvdWdoIGBzZXR1cHRvb2xzIGVudHJ5IHBvaW50c2BfCit3
aXRoIHRoZSA6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmxvYWRfc2V0dXB0b29sc19l
bnRyeXBvaW50cygpYAorbWV0aG9kLgorCitBbiBleGFtcGxlIHVzZSBvZiB0aGlzIGlzIHRoZSBg
cHl0ZXN0IGVudHJ5IHBvaW50YF8uCisKKworQmxvY2tpbmcKKy0tLS0tLS0tCitZb3UgY2FuIGJs
b2NrIGFueSBwbHVnaW4gZnJvbSBiZWluZyByZWdpc3RlcmVkIHVzaW5nCis6cHk6bWV0aDpgfnBs
dWdneS5QbHVnaW5NYW5hZ2VyLnNldF9ibG9ja2VkKClgIGFuZCBjaGVjayBpZiBhIGdpdmVuCisq
cGx1Z2luKiBpcyBibG9ja2VkIGJ5IG5hbWUgdXNpbmcgOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2lu
TWFuYWdlci5pc19ibG9ja2VkKClgLgorCisKK0luc3BlY3Rpb24KKy0tLS0tLS0tLS0KK1lvdSBj
YW4gdXNlIGEgdmFyaWV0eSBvZiBtZXRob2RzIHRvIGluc3BlY3QgdGhlIGJvdGggdGhlIHJlZ2lz
dHJ5CithbmQgcGFydGljdWxhciBwbHVnaW5zIGluIGl0OgorCistIDpweTptZXRoOmB+cGx1Z2d5
LlBsdWdpbk1hbmFnZXIubGlzdF9uYW1lX3BsdWdpbigpYCAtCisgIHJldHVybiBhIGxpc3Qgb2Yg
bmFtZS1wbHVnaW4gcGFpcnMKKy0gOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5nZXRf
cGx1Z2lucygpYCAtIHJldHJpZXZlIGFsbCBwbHVnaW5zCistIDpweTptZXRoOmB+cGx1Z2d5LlBs
dWdpbk1hbmFnZXIuZ2V0X2Nhbm9uaWNhbF9uYW1lKClgLSBnZXQgYSAqcGx1Z2luKidzCisgIGNh
bm9uaWNhbCBuYW1lICh0aGUgbmFtZSBpdCB3YXMgcmVnaXN0ZXJlZCB3aXRoKQorLSA6cHk6bWV0
aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmdldF9wbHVnaW4oKWAgLSByZXRyaWV2ZSBhIHBsdWdp
biBieSBpdHMKKyAgY2Fub25pY2FsIG5hbWUKKworCitQYXJzaW5nIG1hcmsgb3B0aW9ucworXl5e
Xl5eXl5eXl5eXl5eXl5eXl4KK1lvdSBjYW4gcmV0cmlldmUgdGhlICpvcHRpb25zKiBhcHBsaWVk
IHRvIGEgcGFydGljdWxhcgorKmhvb2tzcGVjKiBvciAqaG9va2ltcGwqIGFzIHBlciA6cmVmOmBt
YXJraW5nX2hvb2tzYCB1c2luZyB0aGUKKzpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIu
cGFyc2VfaG9va3NwZWNfb3B0cygpYCBhbmQKKzpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFn
ZXIucGFyc2VfaG9va2ltcGxfb3B0cygpYCByZXNwZWN0aXZlbHkuCisKKy4uIGxpbmtzCisuLiBf
c2V0dXB0b29scyBlbnRyeSBwb2ludHM6CisgICAgaHR0cDovL3NldHVwdG9vbHMucmVhZHRoZWRv
Y3MuaW8vZW4vbGF0ZXN0L3NldHVwdG9vbHMuaHRtbCNkeW5hbWljLWRpc2NvdmVyeS1vZi1zZXJ2
aWNlcy1hbmQtcGx1Z2lucworLi4gX3B5dGVzdCBlbnRyeSBwb2ludDoKKyAgICBodHRwOi8vZG9j
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI3NldHVwdG9vbHMtZW50
cnktcG9pbnRzCisKKworLi4gX2NhbGxpbmc6CisKK0NhbGxpbmcgSG9va3MKKyoqKioqKioqKioq
KioKK1RoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgYGBwbHVnZ3lgYCBlbmFibGVzIGFuIGV4dGVu
c2lvbiBwcm92aWRlcgordG8gb3ZlcnJpZGUgZnVuY3Rpb24gY2FsbHMgbWFkZSBhdCBjZXJ0YWlu
IHBvaW50cyB0aHJvdWdob3V0IGEgcHJvZ3JhbS4KKworQSBwYXJ0aWN1bGFyICpob29rKiBpcyBp
bnZva2VkIGJ5IGNhbGxpbmcgYW4gaW5zdGFuY2Ugb2YKK2EgOnB5OmNsYXNzOmBwbHVnZ3kuX0hv
b2tDYWxsZXJgIHdoaWNoIGluIHR1cm4gKmxvb3BzKiB0aHJvdWdoIHRoZQorYGAxOk5gYCByZWdp
c3RlcmVkICpob29raW1wbHMqIGFuZCBjYWxscyB0aGVtIGluIHNlcXVlbmNlLgorCitFdmVyeSA6
cHk6Y2xhc3M6YHBsdWdneS5QbHVnaW5NYW5hZ2VyYCBoYXMgYSBgYGhvb2tgYCBhdHRyaWJ1dGUK
K3doaWNoIGlzIGFuIGluc3RhbmNlIG9mIHRoaXMgOnB5OmNsYXNzOmBwbHVnZ3kuX0hvb2tSZWxh
eWAuCitUaGUgYGBfSG9va1JlbGF5YGAgaXRzZWxmIGNvbnRhaW5zIHJlZmVyZW5jZXMgKGJ5IGhv
b2sgbmFtZSkgdG8gZWFjaAorcmVnaXN0ZXJlZCAqaG9va2ltcGwqJ3MgYGBfSG9va0NhbGxlcmBg
IGluc3RhbmNlLgorCitNb3JlIHByYWN0aWNhbGx5IHlvdSBjYWxsIGEgKmhvb2sqIGxpa2Ugc286
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBzeXMKKyAgICBpbXBvcnQg
cGx1Z2d5CisgICAgaW1wb3J0IG15cGx1Z2luc3BlYworICAgIGltcG9ydCBteXBsdWdpbgorICAg
IGZyb20gY29uZmlndXJhdGlvbiBpbXBvcnQgY29uZmlnCisKKyAgICBwbSA9IHBsdWdneS5QbHVn
aW5NYW5hZ2VyKCJteXByb2plY3QiKQorICAgIHBtLmFkZF9ob29rc3BlY3MobXlwbHVnaW5zcGVj
KQorICAgIHBtLnJlZ2lzdGVyKG15cGx1Z2luKQorCisgICAgIyB3ZSBpbnZva2UgdGhlIF9Ib29r
Q2FsbGVyIGFuZCB0aHVzIGFsbCB1bmRlcmx5aW5nIGhvb2tpbXBscworICAgIHJlc3VsdF9saXN0
ID0gcG0uaG9vay5teWhvb2soY29uZmlnPWNvbmZpZywgYXJncz1zeXMuYXJndikKKworTm90ZSB0
aGF0IHlvdSAqKm11c3QqKiBjYWxsIGhvb2tzIHVzaW5nIGtleXdvcmQgYGFyZ3VtZW50c2BfIHN5
bnRheCEKKworSG9vayBpbXBsZW1lbnRhdGlvbnMgYXJlIGNhbGxlZCBpbiBMSUZPIHJlZ2lzdGVy
ZWQgb3JkZXI6ICp0aGUgbGFzdAorcmVnaXN0ZXJlZCBwbHVnaW4ncyBob29rcyBhcmUgY2FsbGVk
IGZpcnN0Ki4gQXMgYW4gZXhhbXBsZSwgdGhlIGJlbG93Cithc3NlcnRpb24gc2hvdWxkIG5vdCBl
cnJvcjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZnJvbSBwbHVnZ3kgaW1wb3J0
IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFya2VyCisKKyAgICBob29raW1wbCA9IEhvb2tpbXBs
TWFya2VyKCdteXByb2plY3QnKQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAg
ICBkZWYgbXlob29rKHNlbGYsIGFyZ3MpOgorICAgICAgICAgICAgIiIiRGVmYXVsdCBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgIGNs
YXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToKKyAg
ICAgICAgICAgICIiIkRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIHJldHVybiAyCisKKyAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAg
IGRlZiBteWhvb2soc2VsZiwgYXJncyk6CisgICAgICAgICAgICAiIiJEZWZhdWx0IGltcGxlbWVu
dGF0aW9uLgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICByZXR1cm4gMworCisgICAgcG0g
PSBQbHVnaW5NYW5hZ2VyKCdteXByb2plY3QnKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkK
KyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMygpKQor
CisgICAgYXNzZXJ0IHBtLmhvb2subXlob29rKGFyZ3M9KCkpID09IFszLCAyLCAxXQorCitDb2xs
ZWN0aW5nIHJlc3VsdHMKKy0tLS0tLS0tLS0tLS0tLS0tLQorQnkgZGVmYXVsdCBjYWxsaW5nIGEg
aG9vayByZXN1bHRzIGluIGFsbCB1bmRlcmx5aW5nIDpyZWY6YGhvb2tpbXBscworPGltcGxzPmAg
ZnVuY3Rpb25zIHRvIGJlIGludm9rZWQgaW4gc2VxdWVuY2UgdmlhIGEgbG9vcC4gQW55IGZ1bmN0
aW9uCit3aGljaCByZXR1cm5zIGEgdmFsdWUgb3RoZXIgdGhlbiBhIGBgTm9uZWBgIHJlc3VsdCB3
aWxsIGhhdmUgdGhhdCByZXN1bHQKK2FwcGVuZGVkIHRvIGEgOnB5OmNsYXNzOmBsaXN0YCB3aGlj
aCBpcyByZXR1cm5lZCBieSB0aGUgY2FsbC4KKworVGhlIG9ubHkgZXhjZXB0aW9uIHRvIHRoaXMg
YmVoYXZpb3VyIGlzIGlmIHRoZSBob29rIGhhcyBiZWVuIG1hcmtlZCB0byByZXR1cm4KK2l0cyA6
cmVmOmBmaXJzdHJlc3VsdGAgaW4gd2hpY2ggY2FzZSBvbmx5IHRoZSBmaXJzdCBzaW5nbGUgdmFs
dWUgKHdoaWNoIGlzIG5vdAorYGBOb25lYGApIHdpbGwgYmUgcmV0dXJuZWQuCisKKy4uIF9jYWxs
X2hpc3RvcmljOgorCitIaXN0b3JpYyBjYWxscworLS0tLS0tLS0tLS0tLS0KK0EgKmhpc3Rvcmlj
IGNhbGwqIGFsbG93cyBmb3IgYWxsIG5ld2x5IHJlZ2lzdGVyZWQgZnVuY3Rpb25zIHRvIHJlY2Vp
dmUgYWxsIGhvb2sKK2NhbGxzIHRoYXQgaGFwcGVuZWQgYmVmb3JlIHRoZWlyIHJlZ2lzdHJhdGlv
bi4gVGhlIGltcGxpY2F0aW9uIGlzIHRoYXQgdGhpcyBpcworb25seSB1c2VmdWwgaWYgeW91IGV4
cGVjdCB0aGF0IHNvbWUgKmhvb2tpbXBscyogbWF5IGJlIHJlZ2lzdGVyZWQgKiphZnRlcioqIHRo
ZQoraG9vayBpcyBpbml0aWFsbHkgaW52b2tlZC4KKworSGlzdG9yaWMgaG9va3MgbXVzdCBiZSA6
cmVmOmBzcGVjaWFsbHkgbWFya2VkIDxoaXN0b3JpYz5gIGFuZCBjYWxsZWQKK3VzaW5nIHRoZSA6
cHk6bWV0aDpgcGx1Z2d5Ll9Ib29rQ2FsbGVyLmNhbGxfaGlzdG9yaWMoKWAgbWV0aG9kOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNhbGwgd2l0aCBoaXN0b3J5OyBubyByZXN1
bHRzIHJldHVybmVkCisgICAgcG0uaG9vay5teWhvb2suY2FsbF9oaXN0b3JpYyhjb25maWc9Y29u
ZmlnLCBhcmdzPXN5cy5hcmd2KQorCisgICAgIyAuLi4gbW9yZSBvZiBvdXIgcHJvZ3JhbSAuLi4K
KworICAgICMgbGF0ZSBsb2FkaW5nIG9mIHNvbWUgcGx1Z2luCisgICAgaW1wb3J0IG15bGF0ZXBs
dWdpbgorCisgICAgIyBoaXN0b3JpYyBjYWxsIGJhY2sgaXMgZG9uZSBoZXJlCisgICAgcG0ucmVn
aXN0ZXIobXlsYXRlcGx1Z2luKQorCitOb3RlIHRoYXQgaWYgeW91IGBgY2FsbF9oaXN0b3JpYygp
YGAgdGhlIGBgX0hvb2tDYWxsZXJgYCAoYW5kIHRodXMgeW91cgorY2FsbGluZyBjb2RlKSBjYW4g
bm90IHJlY2VpdmUgcmVzdWx0cyBiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgKmhvb2tpbXBsKgor
ZnVuY3Rpb25zLgorCitDYWxsaW5nIHdpdGggZXh0cmFzCistLS0tLS0tLS0tLS0tLS0tLS0tCitZ
b3UgY2FuIGNhbGwgYSBob29rIHdpdGggdGVtcG9yYXJpbHkgcGFydGljaXBhdGluZyAqaW1wbGVt
ZW50YXRpb24qIGZ1bmN0aW9ucworKHRoYXQgYXJlbid0IGluIHRoZSByZWdpc3RyeSkgdXNpbmcg
dGhlCis6cHk6bWV0aDpgcGx1Z2d5Ll9Ib29rQ2FsbGVyLmNhbGxfZXh0cmEoKWAgbWV0aG9kLgor
CisKK0NhbGxpbmcgd2l0aCBhIHN1YnNldCBvZiByZWdpc3RlcmVkIHBsdWdpbnMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1lvdSBjYW4gbWFrZSBhIGNhbGwg
dXNpbmcgYSBzdWJzZXQgb2YgcGx1Z2lucyBieSBhc2tpbmcgdGhlCitgYFBsdWdpbk1hbmFnZXJg
YCBmaXJzdCBmb3IgYSBgYF9Ib29rQ2FsbGVyYGAgd2l0aCB0aG9zZSBwbHVnaW5zIHJlbW92ZWQK
K3VzaW5nIHRoZSA6cHk6bWV0aDpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIuc3Vic2V0X2hvb2tfY2Fs
bGVyKClgIG1ldGhvZC4KKworWW91IHRoZW4gY2FuIHVzZSB0aGF0IGBgX0hvb2tDYWxsZXJgYCB0
byBtYWtlIG5vcm1hbCwgYGBjYWxsX2hpc3RvcmljKClgYCwKK29yIGBgY2FsbF9leHRyYSgpYGAg
Y2FsbHMgYXMgbmVjZXNzYXJ5LgorCisKKy4uIGxpbmtzCisuLiBfYXJndW1lbnRzOgorICAgIGh0
dHBzOi8vZG9jcy5weXRob24ub3JnLzMvZ2xvc3NhcnkuaHRtbCN0ZXJtLWFyZ3VtZW50CisKKwor
QnVpbHQtaW4gdHJhY2luZworKioqKioqKioqKioqKioqKgorYGBwbHVnZ3lgYCBjb21lcyB3aXRo
IHNvbWUgYmF0dGVyaWVzIGluY2x1ZGVkIGhvb2sgdHJhY2luZyBmb3IgeW91cgorZGVidWdnaW5n
IG5lZWRzLgorCisKK0NhbGwgdHJhY2luZworLS0tLS0tLS0tLS0tCitUbyBlbmFibGUgdHJhY2lu
ZyB1c2UgdGhlCis6cHk6bWV0aDpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIuZW5hYmxlX3RyYWNpbmco
KWAgbWV0aG9kIHdoaWNoIHJldHVybnMgYW4KK3VuZG8gZnVuY3Rpb24gdG8gZGlzYWJsZSB0aGUg
YmVoYXZpb3VyLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBwbSA9IFBsdWdpbk1h
bmFnZXIoJ215cHJvamVjdCcpCisgICAgIyBtYWdpYyBsaW5lIHRvIHNldCBhIHdyaXRlciBmdW5j
dGlvbgorICAgIHBtLnRyYWNlLnJvb3Quc2V0d3JpdGVyKHByaW50KQorICAgIHVuZG8gPSBwbS5l
bmFibGVfdHJhY2luZygpCisKKworQ2FsbCBtb25pdG9yaW5nCistLS0tLS0tLS0tLS0tLS0KK0lu
c3RlYWQgb2YgdXNpbmcgdGhlIGJ1aWx0LWluIHRyYWNpbmcgbWVjaGFuaXNtIHlvdSBjYW4gYWxz
byBhZGQgeW91cgorb3duIGBgYmVmb3JlYGAgYW5kIGBgYWZ0ZXJgYCBtb25pdG9yaW5nIGZ1bmN0
aW9ucyB1c2luZworOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlci5hZGRfaG9va2NhbGxf
bW9uaXRvcmluZygpYC4KKworVGhlIGV4cGVjdGVkIHNpZ25hdHVyZSBhbmQgZGVmYXVsdCBpbXBs
ZW1lbnRhdGlvbnMgZm9yIHRoZXNlIGZ1bmN0aW9ucyBpczoKKworLi4gY29kZS1ibG9jazo6IHB5
dGhvbgorCisgICAgZGVmIGJlZm9yZShob29rX25hbWUsIG1ldGhvZHMsIGt3YXJncyk6CisgICAg
ICAgIHBhc3MKKworICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIG1ldGhvZHMsIGt3
YXJncyk6CisgICAgICAgIHBhc3MKKworUHVibGljIEFQSQorKioqKioqKioqKgorUGxlYXNlIHNl
ZSB0aGUgOmRvYzpgYXBpX3JlZmVyZW5jZWAuCisKK0RldmVsb3BtZW50CisqKioqKioqKioqKgor
R3JlYXQgY2FyZSBtdXN0IHRha2VuIHdoZW4gaGFja2luZyBvbiBgYHBsdWdneWBgIHNpbmNlIG11
bHRpcGxlIG1hdHVyZQorcHJvamVjdHMgcmVseSBvbiBpdC4gT3VyIEdpdGh1YiBpbnRlZ3JhdGVk
IENJIHByb2Nlc3MgcnVucyB0aGUgZnVsbAorYHRveCB0ZXN0IHN1aXRlYF8gb24gZWFjaCBjb21t
aXQgc28gYmUgc3VyZSB5b3VyIGNoYW5nZXMgY2FuIHJ1biBvbgorYWxsIHJlcXVpcmVkIGBQeXRo
b24gaW50ZXJwcmV0ZXJzYF8gYW5kIGBgcHl0ZXN0YGAgdmVyc2lvbnMuCisKK1JlbGVhc2UgUG9s
aWN5CisqKioqKioqKioqKioqKgorUGx1Z2d5IHVzZXMgYFNlbWFudGljIFZlcnNpb25pbmdgXy4g
QnJlYWtpbmcgY2hhbmdlcyBhcmUgb25seSBmb3Jlc2VlbiBmb3IKK01ham9yIHJlbGVhc2VzIChp
bmNyZW1lbnRlZCBYIGluICJYLlkuWiIpLiAgSWYgeW91IHdhbnQgdG8gdXNlIGBgcGx1Z2d5YGAK
K2luIHlvdXIgcHJvamVjdCB5b3Ugc2hvdWxkIHRodXMgdXNlIGEgZGVwZW5kZW5jeSByZXN0cmlj
dGlvbiBsaWtlCitgYCJwbHVnZ3k+PTAuMS4wLDwxLjAiYGAgdG8gYXZvaWQgc3VycHJpc2VzLgor
CisKKy4uIGh5cGVybGlua3MKKy4uIF9weXRlc3Q6CisgICAgaHR0cDovL3B5dGVzdC5vcmcKKy4u
IF9yZXF1ZXN0LXJlc3BvbnNlIHBhdHRlcm46CisgICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3Jn
L3dpa2kvUmVxdWVzdCVFMiU4MCU5M3Jlc3BvbnNlCisuLiBfcHVibGlzaC1zdWJzY3JpYmU6Cisg
ICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUHVibGlzaCVFMiU4MCU5M3N1YnNjcmli
ZV9wYXR0ZXJuCisuLiBfaG9va2luZzoKKyAgICBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9Ib29raW5nCisuLiBfcGx1Z2luIG1hbmFnZW1lbnQgYW5kIGhvb2sgY2FsbGluZzoKKyAgICBo
dHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sCisuLiBf
bmFtZXNwYWNlOgorICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuNi90dXRvcmlhbC9jbGFz
c2VzLmh0bWwjcHl0aG9uLXNjb3Blcy1hbmQtbmFtZXNwYWNlcworLi4gX2NhbGxiYWNrczoKKyAg
ICBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DYWxsYmFja18oY29tcHV0ZXJfcHJvZ3Jh
bW1pbmcpCisuLiBfdG94IHRlc3Qgc3VpdGU6CisgICAgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcGx1Z2d5L2Jsb2IvbWFzdGVyL3RveC5pbmkKKy4uIF9TZW1hbnRpYyBWZXJzaW9uaW5n
OgorICAgIGh0dHA6Ly9zZW12ZXIub3JnLworLi4gX3RpZ2h0IGNvdXBsaW5nOgorICAgIGh0dHBz
Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvdXBsaW5nXyUyOGNvbXB1dGVyX3Byb2dyYW1taW5n
JTI5I1R5cGVzX29mX2NvdXBsaW5nCisuLiBfUHl0aG9uIGludGVycHJldGVyczoKKyAgICBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvYmxvYi9tYXN0ZXIvdG94LmluaSNMMgor
Li4gXzIwMCsgcGx1Z2luczoKKyAgICBodHRwOi8vcGx1Z2luY29tcGF0Lmhlcm9rdWFwcC5jb20v
CisKKworLi4gSW5kaWNlcyBhbmQgdGFibGVzCisuLiA9PT09PT09PT09PT09PT09PT0KKy4uICog
OnJlZjpgZ2VuaW5kZXhgCisuLiAqIDpyZWY6YG1vZGluZGV4YAorLi4gKiA6cmVmOmBzZWFyY2hg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzNlNmEzM2YwZDhhOWQ3ZGMxYTE4
OTk4NGFhMzU1MGI0ZTc5YWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2FwaV9yZWZlcmVuY2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jb25mLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy9pbmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRf
Xy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjUxNzVk
OTU2NjE0YjAyZjNlZTVhYThiYzkzMzE4M2ViNzUxMjMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvcGx1Z2d5L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNjg0IEBACitpbXBvcnQgaW5z
cGVjdAoraW1wb3J0IHdhcm5pbmdzCitmcm9tIC5jYWxsZXJzIGltcG9ydCBfbXVsdGljYWxsLCBI
b29rQ2FsbEVycm9yLCBfUmVzdWx0LCBfbGVnYWN5bXVsdGljYWxsCisKK19fdmVyc2lvbl9fID0g
JzAuNS4zLmRldicKKworX19hbGxfXyA9IFsiUGx1Z2luTWFuYWdlciIsICJQbHVnaW5WYWxpZGF0
aW9uRXJyb3IiLCAiSG9va0NhbGxFcnJvciIsCisgICAgICAgICAgICJIb29rc3BlY01hcmtlciIs
ICJIb29raW1wbE1hcmtlciJdCisKKworY2xhc3MgUGx1Z2luVmFsaWRhdGlvbkVycm9yKEV4Y2Vw
dGlvbik6CisgICAgIiIiIHBsdWdpbiBmYWlsZWQgdmFsaWRhdGlvbi4gIiIiCisKKworY2xhc3Mg
SG9va3NwZWNNYXJrZXIob2JqZWN0KToKKyAgICAiIiIgRGVjb3JhdG9yIGhlbHBlciBjbGFzcyBm
b3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBzcGVjaWZpY2F0aW9ucy4KKworICAgIFlvdSBj
YW4gaW5zdGFudGlhdGUgaXQgd2l0aCBhIHByb2plY3RfbmFtZSB0byBnZXQgYSBkZWNvcmF0b3Iu
CisgICAgQ2FsbGluZyBQbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MgbGF0ZXIgd2lsbCBkaXNj
b3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucworICAgIGlmIHRoZSBQbHVnaW5NYW5hZ2VyIHVzZXMg
dGhlIHNhbWUgcHJvamVjdF9uYW1lLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHByb2plY3RfbmFtZSk6CisgICAgICAgIHNlbGYucHJvamVjdF9uYW1lID0gcHJvamVjdF9uYW1l
CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb249Tm9uZSwgZmlyc3RyZXN1bHQ9RmFs
c2UsIGhpc3RvcmljPUZhbHNlKToKKyAgICAgICAgIiIiIGlmIHBhc3NlZCBhIGZ1bmN0aW9uLCBk
aXJlY3RseSBzZXRzIGF0dHJpYnV0ZXMgb24gdGhlIGZ1bmN0aW9uCisgICAgICAgIHdoaWNoIHdp
bGwgbWFrZSBpdCBkaXNjb3ZlcmFibGUgdG8gYWRkX2hvb2tzcGVjcygpLiAgSWYgcGFzc2VkIG5v
CisgICAgICAgIGZ1bmN0aW9uLCByZXR1cm5zIGEgZGVjb3JhdG9yIHdoaWNoIGNhbiBiZSBhcHBs
aWVkIHRvIGEgZnVuY3Rpb24KKyAgICAgICAgbGF0ZXIgdXNpbmcgdGhlIGF0dHJpYnV0ZXMgc3Vw
cGxpZWQuCisKKyAgICAgICAgSWYgZmlyc3RyZXN1bHQgaXMgVHJ1ZSB0aGUgMTpOIGhvb2sgY2Fs
bCAoTiBiZWluZyB0aGUgbnVtYmVyIG9mIHJlZ2lzdGVyZWQKKyAgICAgICAgaG9vayBpbXBsZW1l
bnRhdGlvbiBmdW5jdGlvbnMpIHdpbGwgc3RvcCBhdCBJPD1OIHdoZW4gdGhlIEkndGggZnVuY3Rp
b24KKyAgICAgICAgcmV0dXJucyBhIG5vbi1Ob25lIHJlc3VsdC4KKworICAgICAgICBJZiBoaXN0
b3JpYyBpcyBUcnVlIGNhbGxzIHRvIGEgaG9vayB3aWxsIGJlIG1lbW9yaXplZCBhbmQgcmVwbGF5
ZWQKKyAgICAgICAgb24gbGF0ZXIgcmVnaXN0ZXJlZCBwbHVnaW5zLgorCisgICAgICAgICIiIgor
ICAgICAgICBkZWYgc2V0YXR0cl9ob29rc3BlY19vcHRzKGZ1bmMpOgorICAgICAgICAgICAgaWYg
aGlzdG9yaWMgYW5kIGZpcnN0cmVzdWx0OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImNhbm5vdCBoYXZlIGEgaGlzdG9yaWMgZmlyc3RyZXN1bHQgaG9vayIpCisgICAgICAgICAg
ICBzZXRhdHRyKGZ1bmMsIHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwKKyAgICAgICAgICAg
ICAgICAgICAgZGljdChmaXJzdHJlc3VsdD1maXJzdHJlc3VsdCwgaGlzdG9yaWM9aGlzdG9yaWMp
KQorICAgICAgICAgICAgcmV0dXJuIGZ1bmMKKworICAgICAgICBpZiBmdW5jdGlvbiBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tzcGVjX29wdHMoZnVuY3Rpb24p
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29rc3BlY19vcHRz
CisKKworY2xhc3MgSG9va2ltcGxNYXJrZXIob2JqZWN0KToKKyAgICAiIiIgRGVjb3JhdG9yIGhl
bHBlciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBpbXBsZW1lbnRhdGlvbnMu
CisKKyAgICBZb3UgY2FuIGluc3RhbnRpYXRlIHdpdGggYSBwcm9qZWN0X25hbWUgdG8gZ2V0IGEg
ZGVjb3JhdG9yLgorICAgIENhbGxpbmcgUGx1Z2luTWFuYWdlci5yZWdpc3RlciBsYXRlciB3aWxs
IGRpc2NvdmVyIGFsbCBtYXJrZWQgZnVuY3Rpb25zCisgICAgaWYgdGhlIFBsdWdpbk1hbmFnZXIg
dXNlcyB0aGUgc2FtZSBwcm9qZWN0X25hbWUuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHByb2plY3RfbmFtZSk6CisgICAgICAgIHNlbGYucHJvamVjdF9uYW1lID0gcHJvamVjdF9u
YW1lCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb249Tm9uZSwgaG9va3dyYXBwZXI9
RmFsc2UsIG9wdGlvbmFsaG9vaz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgdHJ5Zmlyc3Q9RmFs
c2UsIHRyeWxhc3Q9RmFsc2UpOgorCisgICAgICAgICIiIiBpZiBwYXNzZWQgYSBmdW5jdGlvbiwg
ZGlyZWN0bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5jdGlvbgorICAgICAgICB3aGljaCB3
aWxsIG1ha2UgaXQgZGlzY292ZXJhYmxlIHRvIHJlZ2lzdGVyKCkuICBJZiBwYXNzZWQgbm8gZnVu
Y3Rpb24sCisgICAgICAgIHJldHVybnMgYSBkZWNvcmF0b3Igd2hpY2ggY2FuIGJlIGFwcGxpZWQg
dG8gYSBmdW5jdGlvbiBsYXRlciB1c2luZworICAgICAgICB0aGUgYXR0cmlidXRlcyBzdXBwbGll
ZC4KKworICAgICAgICBJZiBvcHRpb25hbGhvb2sgaXMgVHJ1ZSBhIG1pc3NpbmcgbWF0Y2hpbmcg
aG9vayBzcGVjaWZpY2F0aW9uIHdpbGwgbm90IHJlc3VsdAorICAgICAgICBpbiBhbiBlcnJvciAo
YnkgZGVmYXVsdCBpdCBpcyBhbiBlcnJvciBpZiBubyBtYXRjaGluZyBzcGVjIGlzIGZvdW5kKS4K
KworICAgICAgICBJZiB0cnlmaXJzdCBpcyBUcnVlIHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3
aWxsIHJ1biBhcyBlYXJseSBhcyBwb3NzaWJsZQorICAgICAgICBpbiB0aGUgY2hhaW4gb2YgTiBo
b29rIGltcGxlbWVudGF0aW9ucyBmb3IgYSBzcGVjZmljYXRpb24uCisKKyAgICAgICAgSWYgdHJ5
bGFzdCBpcyBUcnVlIHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3aWxsIHJ1biBhcyBsYXRlIGFz
IHBvc3NpYmxlCisgICAgICAgIGluIHRoZSBjaGFpbiBvZiBOIGhvb2sgaW1wbGVtZW50YXRpb25z
LgorCisgICAgICAgIElmIGhvb2t3cmFwcGVyIGlzIFRydWUgdGhlIGhvb2sgaW1wbGVtZW50YXRp
b25zIG5lZWRzIHRvIGV4ZWN1dGUgZXhhY3RseQorICAgICAgICBvbmUgInlpZWxkIi4gIFRoZSBj
b2RlIGJlZm9yZSB0aGUgeWllbGQgaXMgcnVuIGVhcmx5IGJlZm9yZSBhbnkgbm9uLWhvb2t3cmFw
cGVyCisgICAgICAgIGZ1bmN0aW9uIGlzIHJ1bi4gIFRoZSBjb2RlIGFmdGVyIHRoZSB5aWVsZCBp
cyBydW4gYWZ0ZXIgYWxsIG5vbi1ob29rd3JhcHBlcgorICAgICAgICBmdW5jdGlvbiBoYXZlIHJ1
bi4gIFRoZSB5aWVsZCByZWNlaXZlcyBhIGBgX1Jlc3VsdGBgIG9iamVjdCByZXByZXNlbnRpbmcK
KyAgICAgICAgdGhlIGV4Y2VwdGlvbiBvciByZXN1bHQgb3V0Y29tZSBvZiB0aGUgaW5uZXIgY2Fs
bHMgKGluY2x1ZGluZyBvdGhlciBob29rd3JhcHBlcgorICAgICAgICBjYWxscykuCisKKyAgICAg
ICAgIiIiCisgICAgICAgIGRlZiBzZXRhdHRyX2hvb2tpbXBsX29wdHMoZnVuYyk6CisgICAgICAg
ICAgICBzZXRhdHRyKGZ1bmMsIHNlbGYucHJvamVjdF9uYW1lICsgIl9pbXBsIiwKKyAgICAgICAg
ICAgICAgICAgICAgZGljdChob29rd3JhcHBlcj1ob29rd3JhcHBlciwgb3B0aW9uYWxob29rPW9w
dGlvbmFsaG9vaywKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cnlmaXJzdD10cnlmaXJzdCwg
dHJ5bGFzdD10cnlsYXN0KSkKKyAgICAgICAgICAgIHJldHVybiBmdW5jCisKKyAgICAgICAgaWYg
ZnVuY3Rpb24gaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29w
dHMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29w
dHMoZnVuY3Rpb24pCisKKworZGVmIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKG9wdHMpOgorICAg
IG9wdHMuc2V0ZGVmYXVsdCgidHJ5Zmlyc3QiLCBGYWxzZSkKKyAgICBvcHRzLnNldGRlZmF1bHQo
InRyeWxhc3QiLCBGYWxzZSkKKyAgICBvcHRzLnNldGRlZmF1bHQoImhvb2t3cmFwcGVyIiwgRmFs
c2UpCisgICAgb3B0cy5zZXRkZWZhdWx0KCJvcHRpb25hbGhvb2siLCBGYWxzZSkKKworCitjbGFz
cyBfVGFnVHJhY2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBz
ZWxmLl90YWcycHJvYyA9IHt9CisgICAgICAgIHNlbGYud3JpdGVyID0gTm9uZQorICAgICAgICBz
ZWxmLmluZGVudCA9IDAKKworICAgIGRlZiBnZXQoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVy
biBfVGFnVHJhY2VyU3ViKHNlbGYsIChuYW1lLCkpCisKKyAgICBkZWYgZm9ybWF0X21lc3NhZ2Uo
c2VsZiwgdGFncywgYXJncyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoYXJnc1stMV0sIGRpY3Qp
OgorICAgICAgICAgICAgZXh0cmEgPSBhcmdzWy0xXQorICAgICAgICAgICAgYXJncyA9IGFyZ3Nb
Oi0xXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXh0cmEgPSB7fQorCisgICAgICAgIGNv
bnRlbnQgPSAiICIuam9pbihtYXAoc3RyLCBhcmdzKSkKKyAgICAgICAgaW5kZW50ID0gIiAgIiAq
IHNlbGYuaW5kZW50CisKKyAgICAgICAgbGluZXMgPSBbCisgICAgICAgICAgICAiJXMlcyBbJXNd
XG4iICUgKGluZGVudCwgY29udGVudCwgIjoiLmpvaW4odGFncykpCisgICAgICAgIF0KKworICAg
ICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZXh0cmEuaXRlbXMoKToKKyAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgiJXMgICAgJXM6ICVzXG4iICUgKGluZGVudCwgbmFtZSwgdmFsdWUpKQorICAgICAg
ICByZXR1cm4gbGluZXMKKworICAgIGRlZiBwcm9jZXNzbWVzc2FnZShzZWxmLCB0YWdzLCBhcmdz
KToKKyAgICAgICAgaWYgc2VsZi53cml0ZXIgaXMgbm90IE5vbmUgYW5kIGFyZ3M6CisgICAgICAg
ICAgICBsaW5lcyA9IHNlbGYuZm9ybWF0X21lc3NhZ2UodGFncywgYXJncykKKyAgICAgICAgICAg
IHNlbGYud3JpdGVyKCcnLmpvaW4obGluZXMpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBz
ZWxmLl90YWcycHJvY1t0YWdzXSh0YWdzLCBhcmdzKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6
CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgc2V0d3JpdGVyKHNlbGYsIHdyaXRlcik6Cisg
ICAgICAgIHNlbGYud3JpdGVyID0gd3JpdGVyCisKKyAgICBkZWYgc2V0cHJvY2Vzc29yKHNlbGYs
IHRhZ3MsIHByb2Nlc3Nvcik6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodGFncywgc3RyKToKKyAg
ICAgICAgICAgIHRhZ3MgPSB0dXBsZSh0YWdzLnNwbGl0KCI6IikpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0YWdzLCB0dXBsZSkKKyAgICAgICAgc2VsZi5f
dGFnMnByb2NbdGFnc10gPSBwcm9jZXNzb3IKKworCitjbGFzcyBfVGFnVHJhY2VyU3ViKG9iamVj
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QsIHRhZ3MpOgorICAgICAgICBzZWxmLnJv
b3QgPSByb290CisgICAgICAgIHNlbGYudGFncyA9IHRhZ3MKKworICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYucm9vdC5wcm9jZXNzbWVzc2FnZShzZWxmLnRhZ3Ms
IGFyZ3MpCisKKyAgICBkZWYgc2V0bXlwcm9jZXNzb3Ioc2VsZiwgcHJvY2Vzc29yKToKKyAgICAg
ICAgc2VsZi5yb290LnNldHByb2Nlc3NvcihzZWxmLnRhZ3MsIHByb2Nlc3NvcikKKworICAgIGRl
ZiBnZXQoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnJv
b3QsIHNlbGYudGFncyArIChuYW1lLCkpCisKKworY2xhc3MgX1RyYWNlZEhvb2tFeGVjdXRpb24o
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGx1Z2lubWFuYWdlciwgYmVmb3JlLCBh
ZnRlcik6CisgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHBsdWdpbm1hbmFnZXIKKyAgICAg
ICAgc2VsZi5iZWZvcmUgPSBiZWZvcmUKKyAgICAgICAgc2VsZi5hZnRlciA9IGFmdGVyCisgICAg
ICAgIHNlbGYub2xkY2FsbCA9IHBsdWdpbm1hbmFnZXIuX2lubmVyX2hvb2tleGVjCisgICAgICAg
IGFzc2VydCBub3QgaXNpbnN0YW5jZShzZWxmLm9sZGNhbGwsIF9UcmFjZWRIb29rRXhlY3V0aW9u
KQorICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIuX2lubmVyX2hvb2tleGVjID0gc2VsZgorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncyk6CisgICAgICAg
IHNlbGYuYmVmb3JlKGhvb2submFtZSwgaG9va19pbXBscywga3dhcmdzKQorICAgICAgICBvdXRj
b21lID0gX1Jlc3VsdC5mcm9tX2NhbGwobGFtYmRhOiBzZWxmLm9sZGNhbGwoaG9vaywgaG9va19p
bXBscywga3dhcmdzKSkKKyAgICAgICAgc2VsZi5hZnRlcihvdXRjb21lLCBob29rLm5hbWUsIGhv
b2tfaW1wbHMsIGt3YXJncykKKyAgICAgICAgcmV0dXJuIG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisK
KyAgICBkZWYgdW5kbyhzZWxmKToKKyAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLl9pbm5lcl9o
b29rZXhlYyA9IHNlbGYub2xkY2FsbAorCisKK2NsYXNzIFBsdWdpbk1hbmFnZXIob2JqZWN0KToK
KyAgICAiIiIgQ29yZSBQbHVnaW5tYW5hZ2VyIGNsYXNzIHdoaWNoIG1hbmFnZXMgcmVnaXN0cmF0
aW9uCisgICAgb2YgcGx1Z2luIG9iamVjdHMgYW5kIDE6TiBob29rIGNhbGxpbmcuCisKKyAgICBZ
b3UgY2FuIHJlZ2lzdGVyIG5ldyBob29rcyBieSBjYWxsaW5nIGBgYWRkX2hvb2tzcGVjKG1vZHVs
ZV9vcl9jbGFzcylgYC4KKyAgICBZb3UgY2FuIHJlZ2lzdGVyIHBsdWdpbiBvYmplY3RzICh3aGlj
aCBjb250YWluIGhvb2tzKSBieSBjYWxsaW5nCisgICAgYGByZWdpc3RlcihwbHVnaW4pYGAuICBU
aGUgUGx1Z2lubWFuYWdlciBpcyBpbml0aWFsaXplZCB3aXRoIGEKKyAgICBwcmVmaXggdGhhdCBp
cyBzZWFyY2hlZCBmb3IgaW4gdGhlIG5hbWVzIG9mIHRoZSBkaWN0IG9mIHJlZ2lzdGVyZWQKKyAg
ICBwbHVnaW4gb2JqZWN0cy4gIEFuIG9wdGlvbmFsIGV4Y2x1ZGVmdW5jIGFsbG93cyB0byBibGFj
a2xpc3QgbmFtZXMgd2hpY2gKKyAgICBhcmUgbm90IGNvbnNpZGVyZWQgYXMgaG9va3MgZGVzcGl0
ZSBhIG1hdGNoaW5nIHByZWZpeC4KKworICAgIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgeW91IGNh
biBjYWxsIGBgZW5hYmxlX3RyYWNpbmcoKWBgCisgICAgd2hpY2ggd2lsbCBzdWJzZXF1ZW50bHkg
c2VuZCBkZWJ1ZyBpbmZvcm1hdGlvbiB0byB0aGUgdHJhY2UgaGVscGVyLgorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2plY3RfbmFtZSwgaW1wbHByZWZpeD1Ob25lKToKKyAg
ICAgICAgIiIiIGlmIGltcGxwcmVmaXggaXMgZ2l2ZW4gaW1wbGVtZW50YXRpb24gZnVuY3Rpb25z
CisgICAgICAgIHdpbGwgYmUgcmVjb2duaXplZCBpZiB0aGVpciBuYW1lIG1hdGNoZXMgdGhlIGlt
cGxwcmVmaXguICIiIgorICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQor
ICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbiA9IHt9CisgICAgICAgIHNlbGYuX3BsdWdpbjJob29r
Y2FsbGVycyA9IHt9CisgICAgICAgIHNlbGYuX3BsdWdpbl9kaXN0aW5mbyA9IFtdCisgICAgICAg
IHNlbGYudHJhY2UgPSBfVGFnVHJhY2VyKCkuZ2V0KCJwbHVnaW5tYW5hZ2UiKQorICAgICAgICBz
ZWxmLmhvb2sgPSBfSG9va1JlbGF5KHNlbGYudHJhY2Uucm9vdC5nZXQoImhvb2siKSkKKyAgICAg
ICAgc2VsZi5faW1wbHByZWZpeCA9IGltcGxwcmVmaXgKKyAgICAgICAgc2VsZi5faW5uZXJfaG9v
a2V4ZWMgPSBsYW1iZGEgaG9vaywgbWV0aG9kcywga3dhcmdzOiBcCisgICAgICAgICAgICBob29r
Lm11bHRpY2FsbCgKKyAgICAgICAgICAgICAgICBtZXRob2RzLCBrd2FyZ3MsCisgICAgICAgICAg
ICAgICAgZmlyc3RyZXN1bHQ9aG9vay5zcGVjX29wdHMuZ2V0KCdmaXJzdHJlc3VsdCcpLAorICAg
ICAgICAgICAgKQorCisgICAgZGVmIF9ob29rZXhlYyhzZWxmLCBob29rLCBtZXRob2RzLCBrd2Fy
Z3MpOgorICAgICAgICAjIGNhbGxlZCBmcm9tIGFsbCBob29rY2FsbGVyIGluc3RhbmNlcy4KKyAg
ICAgICAgIyBlbmFibGVfdHJhY2luZyB3aWxsIHNldCBpdHMgb3duIHdyYXBwaW5nIGZ1bmN0aW9u
IGF0IHNlbGYuX2lubmVyX2hvb2tleGVjCisgICAgICAgIHJldHVybiBzZWxmLl9pbm5lcl9ob29r
ZXhlYyhob29rLCBtZXRob2RzLCBrd2FyZ3MpCisKKyAgICBkZWYgcmVnaXN0ZXIoc2VsZiwgcGx1
Z2luLCBuYW1lPU5vbmUpOgorICAgICAgICAiIiIgUmVnaXN0ZXIgYSBwbHVnaW4gYW5kIHJldHVy
biBpdHMgY2Fub25pY2FsIG5hbWUgb3IgTm9uZSBpZiB0aGUgbmFtZQorICAgICAgICBpcyBibG9j
a2VkIGZyb20gcmVnaXN0ZXJpbmcuICBSYWlzZSBhIFZhbHVlRXJyb3IgaWYgdGhlIHBsdWdpbiBp
cyBhbHJlYWR5CisgICAgICAgIHJlZ2lzdGVyZWQuICIiIgorICAgICAgICBwbHVnaW5fbmFtZSA9
IG5hbWUgb3Igc2VsZi5nZXRfY2Fub25pY2FsX25hbWUocGx1Z2luKQorCisgICAgICAgIGlmIHBs
dWdpbl9uYW1lIGluIHNlbGYuX25hbWUycGx1Z2luIG9yIHBsdWdpbiBpbiBzZWxmLl9wbHVnaW4y
aG9va2NhbGxlcnM6CisgICAgICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5nZXQocGx1Z2lu
X25hbWUsIC0xKSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiAgIyBibG9ja2VkIHBs
dWdpbiwgcmV0dXJuIE5vbmUgdG8gaW5kaWNhdGUgbm8gcmVnaXN0cmF0aW9uCisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJQbHVnaW4gYWxyZWFkeSByZWdpc3RlcmVkOiAlcz0lc1xuJXMi
ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsdWdpbl9uYW1lLCBwbHVnaW4sIHNl
bGYuX25hbWUycGx1Z2luKSkKKworICAgICAgICAjIFhYWCBpZiBhbiBlcnJvciBoYXBwZW5zIHdl
IHNob3VsZCBtYWtlIHN1cmUgbm8gc3RhdGUgaGFzIGJlZW4KKyAgICAgICAgIyBjaGFuZ2VkIGF0
IHBvaW50IG9mIHJldHVybgorICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltwbHVnaW5fbmFtZV0g
PSBwbHVnaW4KKworICAgICAgICAjIHJlZ2lzdGVyIG1hdGNoaW5nIGhvb2sgaW1wbGVtZW50YXRp
b25zIG9mIHRoZSBwbHVnaW4KKyAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzW3BsdWdp
bl0gPSBob29rY2FsbGVycyA9IFtdCisgICAgICAgIGZvciBuYW1lIGluIGRpcihwbHVnaW4pOgor
ICAgICAgICAgICAgaG9va2ltcGxfb3B0cyA9IHNlbGYucGFyc2VfaG9va2ltcGxfb3B0cyhwbHVn
aW4sIG5hbWUpCisgICAgICAgICAgICBpZiBob29raW1wbF9vcHRzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKGhvb2tpbXBsX29wdHMpCisgICAg
ICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4sIG5hbWUpCisgICAgICAgICAgICAg
ICAgaG9va2ltcGwgPSBIb29rSW1wbChwbHVnaW4sIHBsdWdpbl9uYW1lLCBtZXRob2QsIGhvb2tp
bXBsX29wdHMpCisgICAgICAgICAgICAgICAgaG9vayA9IGdldGF0dHIoc2VsZi5ob29rLCBuYW1l
LCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGhvb2sgaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgaG9vayA9IF9Ib29rQ2FsbGVyKG5hbWUsIHNlbGYuX2hvb2tleGVjKQorICAgICAgICAg
ICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgaG9vaykKKyAgICAgICAgICAgICAg
ICBlbGlmIGhvb2suaGFzX3NwZWMoKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdmVyaWZ5
X2hvb2soaG9vaywgaG9va2ltcGwpCisgICAgICAgICAgICAgICAgICAgIGhvb2suX21heWJlX2Fw
cGx5X2hpc3RvcnkoaG9va2ltcGwpCisgICAgICAgICAgICAgICAgaG9vay5fYWRkX2hvb2tpbXBs
KGhvb2tpbXBsKQorICAgICAgICAgICAgICAgIGhvb2tjYWxsZXJzLmFwcGVuZChob29rKQorICAg
ICAgICByZXR1cm4gcGx1Z2luX25hbWUKKworICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNl
bGYsIHBsdWdpbiwgbmFtZSk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2luLCBuYW1l
KQorICAgICAgICBpZiBub3QgaW5zcGVjdC5pc3JvdXRpbmUobWV0aG9kKToKKyAgICAgICAgICAg
IHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXMgPSBnZXRhdHRyKG1ldGhvZCwg
c2VsZi5wcm9qZWN0X25hbWUgKyAiX2ltcGwiLCBOb25lKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgcmVzID0ge30KKyAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25lIGFu
ZCBub3QgaXNpbnN0YW5jZShyZXMsIGRpY3QpOgorICAgICAgICAgICAgIyBmYWxzZSBwb3NpdGl2
ZQorICAgICAgICAgICAgcmVzID0gTm9uZQorICAgICAgICBlbGlmIHJlcyBpcyBOb25lIGFuZCBz
ZWxmLl9pbXBscHJlZml4IGFuZCBuYW1lLnN0YXJ0c3dpdGgoc2VsZi5faW1wbHByZWZpeCk6Cisg
ICAgICAgICAgICByZXMgPSB7fQorICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgdW5yZWdp
c3RlcihzZWxmLCBwbHVnaW49Tm9uZSwgbmFtZT1Ob25lKToKKyAgICAgICAgIiIiIHVucmVnaXN0
ZXIgYSBwbHVnaW4gb2JqZWN0IGFuZCBhbGwgaXRzIGNvbnRhaW5lZCBob29rIGltcGxlbWVudGF0
aW9ucworICAgICAgICBmcm9tIGludGVybmFsIGRhdGEgc3RydWN0dXJlcy4gIiIiCisgICAgICAg
IGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIGFzc2VydCBwbHVnaW4gaXMgbm90IE5vbmUs
ICJvbmUgb2YgbmFtZSBvciBwbHVnaW4gbmVlZHMgdG8gYmUgc3BlY2lmaWVkIgorICAgICAgICAg
ICAgbmFtZSA9IHNlbGYuZ2V0X25hbWUocGx1Z2luKQorCisgICAgICAgIGlmIHBsdWdpbiBpcyBO
b25lOgorICAgICAgICAgICAgcGx1Z2luID0gc2VsZi5nZXRfcGx1Z2luKG5hbWUpCisKKyAgICAg
ICAgIyBpZiBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXSA9PSBOb25lIHJlZ2lzdHJhdGlvbiB3YXMg
YmxvY2tlZDogaWdub3JlCisgICAgICAgIGlmIHNlbGYuX25hbWUycGx1Z2luLmdldChuYW1lKToK
KyAgICAgICAgICAgIGRlbCBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXQorCisgICAgICAgIGZvciBo
b29rY2FsbGVyIGluIHNlbGYuX3BsdWdpbjJob29rY2FsbGVycy5wb3AocGx1Z2luLCBbXSk6Cisg
ICAgICAgICAgICBob29rY2FsbGVyLl9yZW1vdmVfcGx1Z2luKHBsdWdpbikKKworICAgICAgICBy
ZXR1cm4gcGx1Z2luCisKKyAgICBkZWYgc2V0X2Jsb2NrZWQoc2VsZiwgbmFtZSk6CisgICAgICAg
ICIiIiBibG9jayByZWdpc3RyYXRpb25zIG9mIHRoZSBnaXZlbiBuYW1lLCB1bnJlZ2lzdGVyIGlm
IGFscmVhZHkgcmVnaXN0ZXJlZC4gIiIiCisgICAgICAgIHNlbGYudW5yZWdpc3RlcihuYW1lPW5h
bWUpCisgICAgICAgIHNlbGYuX25hbWUycGx1Z2luW25hbWVdID0gTm9uZQorCisgICAgZGVmIGlz
X2Jsb2NrZWQoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiB0aGUgbmFt
ZSBibG9ncyByZWdpc3RlcmluZyBwbHVnaW5zIG9mIHRoYXQgbmFtZS4gIiIiCisgICAgICAgIHJl
dHVybiBuYW1lIGluIHNlbGYuX25hbWUycGx1Z2luIGFuZCBzZWxmLl9uYW1lMnBsdWdpbltuYW1l
XSBpcyBOb25lCisKKyAgICBkZWYgYWRkX2hvb2tzcGVjcyhzZWxmLCBtb2R1bGVfb3JfY2xhc3Mp
OgorICAgICAgICAiIiIgYWRkIG5ldyBob29rIHNwZWNpZmljYXRpb25zIGRlZmluZWQgaW4gdGhl
IGdpdmVuIG1vZHVsZV9vcl9jbGFzcy4KKyAgICAgICAgRnVuY3Rpb25zIGFyZSByZWNvZ25pemVk
IGlmIHRoZXkgaGF2ZSBiZWVuIGRlY29yYXRlZCBhY2NvcmRpbmdseS4gIiIiCisgICAgICAgIG5h
bWVzID0gW10KKyAgICAgICAgZm9yIG5hbWUgaW4gZGlyKG1vZHVsZV9vcl9jbGFzcyk6CisgICAg
ICAgICAgICBzcGVjX29wdHMgPSBzZWxmLnBhcnNlX2hvb2tzcGVjX29wdHMobW9kdWxlX29yX2Ns
YXNzLCBuYW1lKQorICAgICAgICAgICAgaWYgc3BlY19vcHRzIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIGhjID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIE5vbmUpCisgICAgICAgICAg
ICAgICAgaWYgaGMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaGMgPSBfSG9va0NhbGxl
cihuYW1lLCBzZWxmLl9ob29rZXhlYywgbW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpCisgICAg
ICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZi5ob29rLCBuYW1lLCBoYykKKyAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIHBsdWdpbnMgcmVnaXN0ZXJlZCB0aGlz
IGhvb2sgd2l0aG91dCBrbm93aW5nIHRoZSBzcGVjCisgICAgICAgICAgICAgICAgICAgIGhjLnNl
dF9zcGVjaWZpY2F0aW9uKG1vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKQorICAgICAgICAgICAg
ICAgICAgICBmb3IgaG9va2Z1bmN0aW9uIGluIChoYy5fd3JhcHBlcnMgKyBoYy5fbm9ud3JhcHBl
cnMpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2hvb2soaGMsIGhvb2tm
dW5jdGlvbikKKyAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQobmFtZSkKKworICAgICAgICBp
ZiBub3QgbmFtZXM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkaWQgbm90IGZpbmQg
YW55ICVyIGhvb2tzIGluICVyIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxm
LnByb2plY3RfbmFtZSwgbW9kdWxlX29yX2NsYXNzKSkKKworICAgIGRlZiBwYXJzZV9ob29rc3Bl
Y19vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6CisgICAgICAgIG1ldGhvZCA9IGdl
dGF0dHIobW9kdWxlX29yX2NsYXNzLCBuYW1lKQorICAgICAgICByZXR1cm4gZ2V0YXR0cihtZXRo
b2QsIHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwgTm9uZSkKKworICAgIGRlZiBnZXRfcGx1
Z2lucyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgc2V0IG9mIHJlZ2lzdGVyZWQgcGx1
Z2lucy4gIiIiCisgICAgICAgIHJldHVybiBzZXQoc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzKQor
CisgICAgZGVmIGlzX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKKyAgICAgICAgIiIiIFJldHVy
biBUcnVlIGlmIHRoZSBwbHVnaW4gaXMgYWxyZWFkeSByZWdpc3RlcmVkLiAiIiIKKyAgICAgICAg
cmV0dXJuIHBsdWdpbiBpbiBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMKKworICAgIGRlZiBnZXRf
Y2Fub25pY2FsX25hbWUoc2VsZiwgcGx1Z2luKToKKyAgICAgICAgIiIiIFJldHVybiBjYW5vbmlj
YWwgbmFtZSBmb3IgYSBwbHVnaW4gb2JqZWN0LiBOb3RlIHRoYXQgYSBwbHVnaW4KKyAgICAgICAg
bWF5IGJlIHJlZ2lzdGVyZWQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSB3aGljaCB3YXMgc3BlY2lm
aWVkCisgICAgICAgIGJ5IHRoZSBjYWxsZXIgb2YgcmVnaXN0ZXIocGx1Z2luLCBuYW1lKS4gVG8g
b2J0YWluIHRoZSBuYW1lCisgICAgICAgIG9mIGFuIHJlZ2lzdGVyZWQgcGx1Z2luIHVzZSBgYGdl
dF9uYW1lKHBsdWdpbilgYCBpbnN0ZWFkLiIiIgorICAgICAgICByZXR1cm4gZ2V0YXR0cihwbHVn
aW4sICJfX25hbWVfXyIsIE5vbmUpIG9yIHN0cihpZChwbHVnaW4pKQorCisgICAgZGVmIGdldF9w
bHVnaW4oc2VsZiwgbmFtZSk6CisgICAgICAgICIiIiBSZXR1cm4gYSBwbHVnaW4gb3IgTm9uZSBm
b3IgdGhlIGdpdmVuIG5hbWUuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbmFtZTJwbHVnaW4u
Z2V0KG5hbWUpCisKKyAgICBkZWYgaGFzX3BsdWdpbihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIi
IFJldHVybiBUcnVlIGlmIGEgcGx1Z2luIHdpdGggdGhlIGdpdmVuIG5hbWUgaXMgcmVnaXN0ZXJl
ZC4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLmdldF9wbHVnaW4obmFtZSkgaXMgbm90IE5vbmUK
KworICAgIGRlZiBnZXRfbmFtZShzZWxmLCBwbHVnaW4pOgorICAgICAgICAiIiIgUmV0dXJuIG5h
bWUgZm9yIHJlZ2lzdGVyZWQgcGx1Z2luIG9yIE5vbmUgaWYgbm90IHJlZ2lzdGVyZWQuICIiIgor
ICAgICAgICBmb3IgbmFtZSwgdmFsIGluIHNlbGYuX25hbWUycGx1Z2luLml0ZW1zKCk6CisgICAg
ICAgICAgICBpZiBwbHVnaW4gPT0gdmFsOgorICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCisK
KyAgICBkZWYgX3ZlcmlmeV9ob29rKHNlbGYsIGhvb2ssIGhvb2tpbXBsKToKKyAgICAgICAgaWYg
aG9vay5pc19oaXN0b3JpYygpIGFuZCBob29raW1wbC5ob29rd3JhcHBlcjoKKyAgICAgICAgICAg
IHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAiUGx1Z2luICVy
XG5ob29rICVyXG5oaXN0b3JpYyBpbmNvbXBhdGlibGUgdG8gaG9va3dyYXBwZXIiICUKKyAgICAg
ICAgICAgICAgICAoaG9va2ltcGwucGx1Z2luX25hbWUsIGhvb2submFtZSkpCisKKyAgICAgICAg
IyBwb3NpdGlvbmFsIGFyZyBjaGVja2luZworICAgICAgICBub3RpbnNwZWMgPSBzZXQoaG9va2lt
cGwuYXJnbmFtZXMpIC0gc2V0KGhvb2suYXJnbmFtZXMpCisgICAgICAgIGlmIG5vdGluc3BlYzoK
KyAgICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKKyAgICAgICAgICAgICAg
ICAiUGx1Z2luICVyIGZvciBob29rICVyXG5ob29raW1wbCBkZWZpbml0aW9uOiAlc1xuIgorICAg
ICAgICAgICAgICAgICJBcmd1bWVudChzKSAlcyBhcmUgZGVjbGFyZWQgaW4gdGhlIGhvb2tpbXBs
IGJ1dCAiCisgICAgICAgICAgICAgICAgImNhbiBub3QgYmUgZm91bmQgaW4gdGhlIGhvb2tzcGVj
IiAlCisgICAgICAgICAgICAgICAgKGhvb2tpbXBsLnBsdWdpbl9uYW1lLCBob29rLm5hbWUsCisg
ICAgICAgICAgICAgICAgIF9mb3JtYXRkZWYoaG9va2ltcGwuZnVuY3Rpb24pLCBub3RpbnNwZWMp
CisgICAgICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcGVuZGluZyhzZWxmKToKKyAgICAgICAg
IiIiIFZlcmlmeSB0aGF0IGFsbCBob29rcyB3aGljaCBoYXZlIG5vdCBiZWVuIHZlcmlmaWVkIGFn
YWluc3QKKyAgICAgICAgYSBob29rIHNwZWNpZmljYXRpb24gYXJlIG9wdGlvbmFsLCBvdGhlcndp
c2UgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yIiIiCisgICAgICAgIGZvciBuYW1lIGluIHNl
bGYuaG9vay5fX2RpY3RfXzoKKyAgICAgICAgICAgIGlmIG5hbWVbMF0gIT0gIl8iOgorICAgICAg
ICAgICAgICAgIGhvb2sgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkKKyAgICAgICAgICAgICAg
ICBpZiBub3QgaG9vay5oYXNfc3BlYygpOgorICAgICAgICAgICAgICAgICAgICBmb3IgaG9va2lt
cGwgaW4gKGhvb2suX3dyYXBwZXJzICsgaG9vay5fbm9ud3JhcHBlcnMpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgbm90IGhvb2tpbXBsLm9wdGlvbmFsaG9vazoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ1bmtub3duIGhvb2sgJXIgaW4gcGx1Z2luICVyIiAlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLCBob29raW1wbC5wbHVnaW4pKQorCisg
ICAgZGVmIGxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cyhzZWxmLCBlbnRyeXBvaW50X25hbWUp
OgorICAgICAgICAiIiIgTG9hZCBtb2R1bGVzIGZyb20gcXVlcnlpbmcgdGhlIHNwZWNpZmllZCBz
ZXR1cHRvb2xzIGVudHJ5cG9pbnQgbmFtZS4KKyAgICAgICAgUmV0dXJuIHRoZSBudW1iZXIgb2Yg
bG9hZGVkIHBsdWdpbnMuICIiIgorICAgICAgICBmcm9tIHBrZ19yZXNvdXJjZXMgaW1wb3J0IChp
dGVyX2VudHJ5X3BvaW50cywgRGlzdHJpYnV0aW9uTm90Rm91bmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFZlcnNpb25Db25mbGljdCkKKyAgICAgICAgZm9yIGVwIGluIGl0
ZXJfZW50cnlfcG9pbnRzKGVudHJ5cG9pbnRfbmFtZSk6CisgICAgICAgICAgICAjIGlzIHRoZSBw
bHVnaW4gcmVnaXN0ZXJlZCBvciBibG9ja2VkPworICAgICAgICAgICAgaWYgc2VsZi5nZXRfcGx1
Z2luKGVwLm5hbWUpIG9yIHNlbGYuaXNfYmxvY2tlZChlcC5uYW1lKToKKyAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHBsdWdpbiA9IGVw
LmxvYWQoKQorICAgICAgICAgICAgZXhjZXB0IERpc3RyaWJ1dGlvbk5vdEZvdW5kOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleGNlcHQgVmVyc2lvbkNvbmZsaWN0IGFz
IGU6CisgICAgICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yKAorICAgICAg
ICAgICAgICAgICAgICAiUGx1Z2luICVyIGNvdWxkIG5vdCBiZSBsb2FkZWQ6ICVzISIgJSAoZXAu
bmFtZSwgZSkpCisgICAgICAgICAgICBzZWxmLnJlZ2lzdGVyKHBsdWdpbiwgbmFtZT1lcC5uYW1l
KQorICAgICAgICAgICAgc2VsZi5fcGx1Z2luX2Rpc3RpbmZvLmFwcGVuZCgocGx1Z2luLCBlcC5k
aXN0KSkKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9wbHVnaW5fZGlzdGluZm8pCisKKyAgICBk
ZWYgbGlzdF9wbHVnaW5fZGlzdGluZm8oc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGlzdCBv
ZiBkaXN0aW5mby9wbHVnaW4gdHVwbGVzIGZvciBhbGwgc2V0dXB0b29scyByZWdpc3RlcmVkCisg
ICAgICAgIHBsdWdpbnMuICIiIgorICAgICAgICByZXR1cm4gbGlzdChzZWxmLl9wbHVnaW5fZGlz
dGluZm8pCisKKyAgICBkZWYgbGlzdF9uYW1lX3BsdWdpbihzZWxmKToKKyAgICAgICAgIiIiIHJl
dHVybiBsaXN0IG9mIG5hbWUvcGx1Z2luIHBhaXJzLiAiIiIKKyAgICAgICAgcmV0dXJuIGxpc3Qo
c2VsZi5fbmFtZTJwbHVnaW4uaXRlbXMoKSkKKworICAgIGRlZiBnZXRfaG9va2NhbGxlcnMoc2Vs
ZiwgcGx1Z2luKToKKyAgICAgICAgIiIiIGdldCBhbGwgaG9vayBjYWxsZXJzIGZvciB0aGUgc3Bl
Y2lmaWVkIHBsdWdpbi4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9wbHVnaW4yaG9va2NhbGxl
cnMuZ2V0KHBsdWdpbikKKworICAgIGRlZiBhZGRfaG9va2NhbGxfbW9uaXRvcmluZyhzZWxmLCBi
ZWZvcmUsIGFmdGVyKToKKyAgICAgICAgIiIiIGFkZCBiZWZvcmUvYWZ0ZXIgdHJhY2luZyBmdW5j
dGlvbnMgZm9yIGFsbCBob29rcworICAgICAgICBhbmQgcmV0dXJuIGFuIHVuZG8gZnVuY3Rpb24g
d2hpY2gsIHdoZW4gY2FsbGVkLAorICAgICAgICB3aWxsIHJlbW92ZSB0aGUgYWRkZWQgdHJhY2Vy
cy4KKworICAgICAgICBgYGJlZm9yZShob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncylgYCB3
aWxsIGJlIGNhbGxlZCBhaGVhZAorICAgICAgICBvZiBhbGwgaG9vayBjYWxscyBhbmQgcmVjZWl2
ZSBhIGhvb2tjYWxsZXIgaW5zdGFuY2UsIGEgbGlzdAorICAgICAgICBvZiBIb29rSW1wbCBpbnN0
YW5jZXMgYW5kIHRoZSBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgdGhlIGhvb2sgY2FsbC4KKworICAg
ICAgICBgYGFmdGVyKG91dGNvbWUsIGhvb2tfbmFtZSwgaG9va19pbXBscywga3dhcmdzKWBgIHJl
Y2VpdmVzIHRoZQorICAgICAgICBzYW1lIGFyZ3VtZW50cyBhcyBgYGJlZm9yZWBgIGJ1dCBhbHNv
IGEgOnB5OmNsYXNzOmBfUmVzdWx0YGAgb2JqZWN0CisgICAgICAgIHdoaWNoIHJlcHJlc2VudHMg
dGhlIHJlc3VsdCBvZiB0aGUgb3ZlcmFsbCBob29rIGNhbGwuCisgICAgICAgICIiIgorICAgICAg
ICByZXR1cm4gX1RyYWNlZEhvb2tFeGVjdXRpb24oc2VsZiwgYmVmb3JlLCBhZnRlcikudW5kbwor
CisgICAgZGVmIGVuYWJsZV90cmFjaW5nKHNlbGYpOgorICAgICAgICAiIiIgZW5hYmxlIHRyYWNp
bmcgb2YgaG9vayBjYWxscyBhbmQgcmV0dXJuIGFuIHVuZG8gZnVuY3Rpb24uICIiIgorICAgICAg
ICBob29rdHJhY2UgPSBzZWxmLmhvb2suX3RyYWNlCisKKyAgICAgICAgZGVmIGJlZm9yZShob29r
X25hbWUsIG1ldGhvZHMsIGt3YXJncyk6CisgICAgICAgICAgICBob29rdHJhY2Uucm9vdC5pbmRl
bnQgKz0gMQorICAgICAgICAgICAgaG9va3RyYWNlKGhvb2tfbmFtZSwga3dhcmdzKQorCisgICAg
ICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIG1ldGhvZHMsIGt3YXJncyk6CisgICAg
ICAgICAgICBpZiBvdXRjb21lLmV4Y2luZm8gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBob29r
dHJhY2UoImZpbmlzaCIsIGhvb2tfbmFtZSwgIi0tPiIsIG91dGNvbWUuZ2V0X3Jlc3VsdCgpKQor
ICAgICAgICAgICAgaG9va3RyYWNlLnJvb3QuaW5kZW50IC09IDEKKworICAgICAgICByZXR1cm4g
c2VsZi5hZGRfaG9va2NhbGxfbW9uaXRvcmluZyhiZWZvcmUsIGFmdGVyKQorCisgICAgZGVmIHN1
YnNldF9ob29rX2NhbGxlcihzZWxmLCBuYW1lLCByZW1vdmVfcGx1Z2lucyk6CisgICAgICAgICIi
IiBSZXR1cm4gYSBuZXcgX0hvb2tDYWxsZXIgaW5zdGFuY2UgZm9yIHRoZSBuYW1lZCBtZXRob2QK
KyAgICAgICAgd2hpY2ggbWFuYWdlcyBjYWxscyB0byBhbGwgcmVnaXN0ZXJlZCBwbHVnaW5zIGV4
Y2VwdCB0aGUKKyAgICAgICAgb25lcyBmcm9tIHJlbW92ZV9wbHVnaW5zLiAiIiIKKyAgICAgICAg
b3JpZyA9IGdldGF0dHIoc2VsZi5ob29rLCBuYW1lKQorICAgICAgICBwbHVnaW5zX3RvX3JlbW92
ZSA9IFtwbHVnIGZvciBwbHVnIGluIHJlbW92ZV9wbHVnaW5zIGlmIGhhc2F0dHIocGx1ZywgbmFt
ZSldCisgICAgICAgIGlmIHBsdWdpbnNfdG9fcmVtb3ZlOgorICAgICAgICAgICAgaGMgPSBfSG9v
a0NhbGxlcihvcmlnLm5hbWUsIG9yaWcuX2hvb2tleGVjLCBvcmlnLl9zcGVjbW9kdWxlX29yX2Ns
YXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnLnNwZWNfb3B0cykKKyAgICAg
ICAgICAgIGZvciBob29raW1wbCBpbiAob3JpZy5fd3JhcHBlcnMgKyBvcmlnLl9ub253cmFwcGVy
cyk6CisgICAgICAgICAgICAgICAgcGx1Z2luID0gaG9va2ltcGwucGx1Z2luCisgICAgICAgICAg
ICAgICAgaWYgcGx1Z2luIG5vdCBpbiBwbHVnaW5zX3RvX3JlbW92ZToKKyAgICAgICAgICAgICAg
ICAgICAgaGMuX2FkZF9ob29raW1wbChob29raW1wbCkKKyAgICAgICAgICAgICAgICAgICAgIyB3
ZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhpcyBob29rIGNhbGxlciBzbyBpdAorICAgICAgICAgICAg
ICAgICAgICAjIGdldHMgcHJvcGVybHkgcmVtb3ZlZCBvbiBwbHVnaW4gdW5yZWdpc3RyYXRpb24K
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLnNldGRlZmF1bHQo
cGx1Z2luLCBbXSkuYXBwZW5kKGhjKQorICAgICAgICAgICAgcmV0dXJuIGhjCisgICAgICAgIHJl
dHVybiBvcmlnCisKKworZGVmIHZhcm5hbWVzKGZ1bmMpOgorICAgICIiIlJldHVybiB0dXBsZSBv
ZiBwb3NpdGlvbmFsIGFuZCBrZXl3cm9yZCBhcmd1bWVudCBuYW1lcyBmb3IgYSBmdW5jdGlvbiwK
KyAgICBtZXRob2QsIGNsYXNzIG9yIGNhbGxhYmxlLgorCisgICAgSW4gY2FzZSBvZiBhIGNsYXNz
LCBpdHMgYGBfX2luaXRfX2BgIG1ldGhvZCBpcyBjb25zaWRlcmVkLgorICAgIEZvciBtZXRob2Rz
IHRoZSBgYHNlbGZgYCBwYXJhbWV0ZXIgaXMgbm90IGluY2x1ZGVkLgorICAgICIiIgorICAgIGNh
Y2hlID0gZ2V0YXR0cihmdW5jLCAiX19kaWN0X18iLCB7fSkKKyAgICB0cnk6CisgICAgICAgIHJl
dHVybiBjYWNoZVsiX3Zhcm5hbWVzIl0KKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHBh
c3MKKworICAgIGlmIGluc3BlY3QuaXNjbGFzcyhmdW5jKToKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgZnVuYyA9IGZ1bmMuX19pbml0X18KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgorICAgICAgICAgICAgcmV0dXJuICgpLCAoKQorICAgIGVsaWYgbm90IGluc3BlY3QuaXNyb3V0
aW5lKGZ1bmMpOiAgIyBjYWxsYWJsZSBvYmplY3Q/CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGZ1bmMgPSBnZXRhdHRyKGZ1bmMsICdfX2NhbGxfXycsIGZ1bmMpCisgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gKCkKKworICAgIHRyeTogICMgZnVuYyBNVVNU
IGJlIGEgZnVuY3Rpb24gb3IgbWV0aG9kIGhlcmUgb3Igd2Ugd29uJ3QgcGFyc2UgYW55IGFyZ3MK
KyAgICAgICAgc3BlYyA9IF9nZXRhcmdzcGVjKGZ1bmMpCisgICAgZXhjZXB0IFR5cGVFcnJvcjoK
KyAgICAgICAgcmV0dXJuICgpLCAoKQorCisgICAgYXJncywgZGVmYXVsdHMgPSB0dXBsZShzcGVj
LmFyZ3MpLCBzcGVjLmRlZmF1bHRzCisgICAgaWYgZGVmYXVsdHM6CisgICAgICAgIGluZGV4ID0g
LWxlbihkZWZhdWx0cykKKyAgICAgICAgYXJncywgZGVmYXVsdHMgPSBhcmdzWzppbmRleF0sIHR1
cGxlKGFyZ3NbaW5kZXg6XSkKKyAgICBlbHNlOgorICAgICAgICBkZWZhdWx0cyA9ICgpCisKKyAg
ICAjIHN0cmlwIGFueSBpbXBsaWNpdCBpbnN0YW5jZSBhcmcKKyAgICBpZiBhcmdzOgorICAgICAg
ICBpZiBpbnNwZWN0LmlzbWV0aG9kKGZ1bmMpIG9yICgKKyAgICAgICAgICAgICcuJyBpbiBnZXRh
dHRyKGZ1bmMsICdfX3F1YWxuYW1lX18nLCAoKSkgYW5kIGFyZ3NbMF0gPT0gJ3NlbGYnCisgICAg
ICAgICk6CisgICAgICAgICAgICBhcmdzID0gYXJnc1sxOl0KKworICAgIGFzc2VydCAic2VsZiIg
bm90IGluIGFyZ3MgICMgYmVzdCBuYW1pbmcgcHJhY3Rpc2VzIGNoZWNrPworICAgIHRyeToKKyAg
ICAgICAgY2FjaGVbIl92YXJuYW1lcyJdID0gYXJncywgZGVmYXVsdHMKKyAgICBleGNlcHQgVHlw
ZUVycm9yOgorICAgICAgICBwYXNzCisgICAgcmV0dXJuIGFyZ3MsIGRlZmF1bHRzCisKKworY2xh
c3MgX0hvb2tSZWxheShvYmplY3QpOgorICAgICIiIiBob29rIGhvbGRlciBvYmplY3QgZm9yIHBl
cmZvcm1pbmcgMTpOIGhvb2sgY2FsbHMgd2hlcmUgTiBpcyB0aGUgbnVtYmVyCisgICAgb2YgcmVn
aXN0ZXJlZCBwbHVnaW5zLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdHJh
Y2UpOgorICAgICAgICBzZWxmLl90cmFjZSA9IHRyYWNlCisKKworY2xhc3MgX0hvb2tDYWxsZXIo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgaG9va19leGVjdXRlLCBzcGVj
bW9kdWxlX29yX2NsYXNzPU5vbmUsCisgICAgICAgICAgICAgICAgIHNwZWNfb3B0cz1Ob25lKToK
KyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLl93cmFwcGVycyA9IFtdCisg
ICAgICAgIHNlbGYuX25vbndyYXBwZXJzID0gW10KKyAgICAgICAgc2VsZi5faG9va2V4ZWMgPSBo
b29rX2V4ZWN1dGUKKyAgICAgICAgc2VsZi5fc3BlY21vZHVsZV9vcl9jbGFzcyA9IE5vbmUKKyAg
ICAgICAgc2VsZi5hcmduYW1lcyA9IE5vbmUKKyAgICAgICAgc2VsZi5rd2FyZ25hbWVzID0gTm9u
ZQorICAgICAgICBzZWxmLm11bHRpY2FsbCA9IF9tdWx0aWNhbGwKKyAgICAgICAgc2VsZi5zcGVj
X29wdHMgPSBzcGVjX29wdHMgb3Ige30KKyAgICAgICAgaWYgc3BlY21vZHVsZV9vcl9jbGFzcyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2V0X3NwZWNpZmljYXRpb24oc3BlY21vZHVs
ZV9vcl9jbGFzcywgc3BlY19vcHRzKQorCisgICAgZGVmIGhhc19zcGVjKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fc3BlY21vZHVsZV9vcl9jbGFzcyBpcyBub3QgTm9uZQorCisgICAgZGVm
IHNldF9zcGVjaWZpY2F0aW9uKHNlbGYsIHNwZWNtb2R1bGVfb3JfY2xhc3MsIHNwZWNfb3B0cyk6
CisgICAgICAgIGFzc2VydCBub3Qgc2VsZi5oYXNfc3BlYygpCisgICAgICAgIHNlbGYuX3NwZWNt
b2R1bGVfb3JfY2xhc3MgPSBzcGVjbW9kdWxlX29yX2NsYXNzCisgICAgICAgIHNwZWNmdW5jID0g
Z2V0YXR0cihzcGVjbW9kdWxlX29yX2NsYXNzLCBzZWxmLm5hbWUpCisgICAgICAgICMgZ2V0IHNw
ZWMgYXJnIHNpZ25hdHVyZQorICAgICAgICBhcmduYW1lcywgc2VsZi5rd2FyZ25hbWVzID0gdmFy
bmFtZXMoc3BlY2Z1bmMpCisgICAgICAgIHNlbGYuYXJnbmFtZXMgPSBbIl9fbXVsdGljYWxsX18i
XSArIGxpc3QoYXJnbmFtZXMpCisgICAgICAgIHNlbGYuc3BlY19vcHRzLnVwZGF0ZShzcGVjX29w
dHMpCisgICAgICAgIGlmIHNwZWNfb3B0cy5nZXQoImhpc3RvcmljIik6CisgICAgICAgICAgICBz
ZWxmLl9jYWxsX2hpc3RvcnkgPSBbXQorCisgICAgZGVmIGlzX2hpc3RvcmljKHNlbGYpOgorICAg
ICAgICByZXR1cm4gaGFzYXR0cihzZWxmLCAiX2NhbGxfaGlzdG9yeSIpCisKKyAgICBkZWYgX3Jl
bW92ZV9wbHVnaW4oc2VsZiwgcGx1Z2luKToKKyAgICAgICAgZGVmIHJlbW92ZSh3cmFwcGVycyk6
CisgICAgICAgICAgICBmb3IgaSwgbWV0aG9kIGluIGVudW1lcmF0ZSh3cmFwcGVycyk6CisgICAg
ICAgICAgICAgICAgaWYgbWV0aG9kLnBsdWdpbiA9PSBwbHVnaW46CisgICAgICAgICAgICAgICAg
ICAgIGRlbCB3cmFwcGVyc1tpXQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICBpZiByZW1vdmUoc2VsZi5fd3JhcHBlcnMpIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBy
ZW1vdmUoc2VsZi5fbm9ud3JhcHBlcnMpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigicGx1Z2luICVyIG5vdCBmb3VuZCIgJSAocGx1Z2luLCkpCisKKyAgICBkZWYg
X2FkZF9ob29raW1wbChzZWxmLCBob29raW1wbCk6CisgICAgICAgICIiIkEgYW4gaW1wbGVtZW50
YXRpb24gdG8gdGhlIGNhbGxiYWNrIGNoYWluLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaG9v
a2ltcGwuaG9va3dyYXBwZXI6CisgICAgICAgICAgICBtZXRob2RzID0gc2VsZi5fd3JhcHBlcnMK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1ldGhvZHMgPSBzZWxmLl9ub253cmFwcGVycwor
CisgICAgICAgIGlmIGhvb2tpbXBsLnRyeWxhc3Q6CisgICAgICAgICAgICBtZXRob2RzLmluc2Vy
dCgwLCBob29raW1wbCkKKyAgICAgICAgZWxpZiBob29raW1wbC50cnlmaXJzdDoKKyAgICAgICAg
ICAgIG1ldGhvZHMuYXBwZW5kKGhvb2tpbXBsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
IyBmaW5kIGxhc3Qgbm9uLXRyeWZpcnN0IG1ldGhvZAorICAgICAgICAgICAgaSA9IGxlbihtZXRo
b2RzKSAtIDEKKyAgICAgICAgICAgIHdoaWxlIGkgPj0gMCBhbmQgbWV0aG9kc1tpXS50cnlmaXJz
dDoKKyAgICAgICAgICAgICAgICBpIC09IDEKKyAgICAgICAgICAgIG1ldGhvZHMuaW5zZXJ0KGkg
KyAxLCBob29raW1wbCkKKworICAgICAgICBpZiAnX19tdWx0aWNhbGxfXycgaW4gaG9va2ltcGwu
YXJnbmFtZXM6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgICJT
dXBwb3J0IGZvciBfX211bHRpY2FsbF9fIGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIgor
ICAgICAgICAgICAgICAgICJyZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIiwKKyAgICAg
ICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IHNlbGYubXVsdGljYWxsID0gX2xlZ2FjeW11bHRpY2FsbAorCisgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICByZXR1cm4gIjxfSG9va0NhbGxlciAlcj4iICUgKHNlbGYubmFtZSwpCisK
KyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgYXJn
czoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiaG9vayBjYWxsaW5nIHN1cHBvcnRzIG9u
bHkga2V5d29yZCBhcmd1bWVudHMiKQorICAgICAgICBhc3NlcnQgbm90IHNlbGYuaXNfaGlzdG9y
aWMoKQorICAgICAgICBpZiBzZWxmLmFyZ25hbWVzOgorICAgICAgICAgICAgbm90aW5jYWxsID0g
c2V0KHNlbGYuYXJnbmFtZXMpIC0gc2V0KFsnX19tdWx0aWNhbGxfXyddKSAtIHNldCgKKyAgICAg
ICAgICAgICAgICBrd2FyZ3Mua2V5cygpKQorICAgICAgICAgICAgaWYgbm90aW5jYWxsOgorICAg
ICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgICAgICJBcmd1bWVu
dChzKSB7fSB3aGljaCBhcmUgZGVjbGFyZWQgaW4gdGhlIGhvb2tzcGVjICIKKyAgICAgICAgICAg
ICAgICAgICAgImNhbiBub3QgYmUgZm91bmQgaW4gdGhpcyBob29rIGNhbGwiCisgICAgICAgICAg
ICAgICAgICAgIC5mb3JtYXQodHVwbGUobm90aW5jYWxsKSksCisgICAgICAgICAgICAgICAgICAg
IHN0YWNrbGV2ZWw9MiwKKyAgICAgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBzZWxmLl9o
b29rZXhlYyhzZWxmLCBzZWxmLl9ub253cmFwcGVycyArIHNlbGYuX3dyYXBwZXJzLCBrd2FyZ3Mp
CisKKyAgICBkZWYgY2FsbF9oaXN0b3JpYyhzZWxmLCBwcm9jPU5vbmUsIGt3YXJncz1Ob25lKToK
KyAgICAgICAgIiIiIGNhbGwgdGhlIGhvb2sgd2l0aCBnaXZlbiBgYGt3YXJnc2BgIGZvciBhbGwg
cmVnaXN0ZXJlZCBwbHVnaW5zIGFuZAorICAgICAgICBmb3IgYWxsIHBsdWdpbnMgd2hpY2ggd2ls
bCBiZSByZWdpc3RlcmVkIGFmdGVyd2FyZHMuCisKKyAgICAgICAgSWYgYGBwcm9jYGAgaXMgbm90
IE5vbmUgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIGZvciBlYWNoIG5vbi1Ob25lIHJlc3VsdAorICAg
ICAgICBvYnRhaW5lZCBmcm9tIGEgaG9vayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuX2NhbGxfaGlzdG9yeS5hcHBlbmQoKGt3YXJncyBvciB7fSwgcHJvYykpCisg
ICAgICAgICMgaGlzdG9yaXppbmcgaG9va3MgZG9uJ3QgcmV0dXJuIHJlc3VsdHMKKyAgICAgICAg
cmVzID0gc2VsZi5faG9va2V4ZWMoc2VsZiwgc2VsZi5fbm9ud3JhcHBlcnMgKyBzZWxmLl93cmFw
cGVycywga3dhcmdzKQorICAgICAgICBmb3IgeCBpbiByZXMgb3IgW106CisgICAgICAgICAgICBw
cm9jKHgpCisKKyAgICBkZWYgY2FsbF9leHRyYShzZWxmLCBtZXRob2RzLCBrd2FyZ3MpOgorICAg
ICAgICAiIiIgQ2FsbCB0aGUgaG9vayB3aXRoIHNvbWUgYWRkaXRpb25hbCB0ZW1wb3JhcmlseSBw
YXJ0aWNpcGF0aW5nCisgICAgICAgIG1ldGhvZHMgdXNpbmcgdGhlIHNwZWNpZmllZCBrd2FyZ3Mg
YXMgY2FsbCBwYXJhbWV0ZXJzLiAiIiIKKyAgICAgICAgb2xkID0gbGlzdChzZWxmLl9ub253cmFw
cGVycyksIGxpc3Qoc2VsZi5fd3JhcHBlcnMpCisgICAgICAgIGZvciBtZXRob2QgaW4gbWV0aG9k
czoKKyAgICAgICAgICAgIG9wdHMgPSBkaWN0KGhvb2t3cmFwcGVyPUZhbHNlLCB0cnlsYXN0PUZh
bHNlLCB0cnlmaXJzdD1GYWxzZSkKKyAgICAgICAgICAgIGhvb2tpbXBsID0gSG9va0ltcGwoTm9u
ZSwgIjx0ZW1wPiIsIG1ldGhvZCwgb3B0cykKKyAgICAgICAgICAgIHNlbGYuX2FkZF9ob29raW1w
bChob29raW1wbCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYoKiprd2Fy
Z3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9ub253cmFwcGVycywgc2Vs
Zi5fd3JhcHBlcnMgPSBvbGQKKworICAgIGRlZiBfbWF5YmVfYXBwbHlfaGlzdG9yeShzZWxmLCBt
ZXRob2QpOgorICAgICAgICAiIiJBcHBseSBjYWxsIGhpc3RvcnkgdG8gYSBuZXcgaG9va2ltcGwg
aWYgaXQgaXMgbWFya2VkIGFzIGhpc3RvcmljLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2Vs
Zi5pc19oaXN0b3JpYygpOgorICAgICAgICAgICAgZm9yIGt3YXJncywgcHJvYyBpbiBzZWxmLl9j
YWxsX2hpc3Rvcnk6CisgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5faG9va2V4ZWMoc2VsZiwg
W21ldGhvZF0sIGt3YXJncykKKyAgICAgICAgICAgICAgICBpZiByZXMgYW5kIHByb2MgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHByb2MocmVzWzBdKQorCisKK2NsYXNzIEhvb2tJ
bXBsKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbiwgcGx1Z2luX25hbWUs
IGZ1bmN0aW9uLCBob29rX2ltcGxfb3B0cyk6CisgICAgICAgIHNlbGYuZnVuY3Rpb24gPSBmdW5j
dGlvbgorICAgICAgICBzZWxmLmFyZ25hbWVzLCBzZWxmLmt3YXJnbmFtZXMgPSB2YXJuYW1lcyhz
ZWxmLmZ1bmN0aW9uKQorICAgICAgICBzZWxmLnBsdWdpbiA9IHBsdWdpbgorICAgICAgICBzZWxm
Lm9wdHMgPSBob29rX2ltcGxfb3B0cworICAgICAgICBzZWxmLnBsdWdpbl9uYW1lID0gcGx1Z2lu
X25hbWUKKyAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoaG9va19pbXBsX29wdHMpCisKKwor
aWYgaGFzYXR0cihpbnNwZWN0LCAnZ2V0ZnVsbGFyZ3NwZWMnKToKKyAgICBkZWYgX2dldGFyZ3Nw
ZWMoZnVuYyk6CisgICAgICAgIHJldHVybiBpbnNwZWN0LmdldGZ1bGxhcmdzcGVjKGZ1bmMpCitl
bHNlOgorICAgIGRlZiBfZ2V0YXJnc3BlYyhmdW5jKToKKyAgICAgICAgcmV0dXJuIGluc3BlY3Qu
Z2V0YXJnc3BlYyhmdW5jKQorCisKK2lmIGhhc2F0dHIoaW5zcGVjdCwgJ3NpZ25hdHVyZScpOgor
ICAgIGRlZiBfZm9ybWF0ZGVmKGZ1bmMpOgorICAgICAgICByZXR1cm4gIiVzJXMiICUgKAorICAg
ICAgICAgICAgZnVuYy5fX25hbWVfXywKKyAgICAgICAgICAgIHN0cihpbnNwZWN0LnNpZ25hdHVy
ZShmdW5jKSkKKyAgICAgICAgKQorZWxzZToKKyAgICBkZWYgX2Zvcm1hdGRlZihmdW5jKToKKyAg
ICAgICAgcmV0dXJuICIlcyVzIiAlICgKKyAgICAgICAgICAgIGZ1bmMuX19uYW1lX18sCisgICAg
ICAgICAgICBpbnNwZWN0LmZvcm1hdGFyZ3NwZWMoKmluc3BlY3QuZ2V0YXJnc3BlYyhmdW5jKSkK
KyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9wbHVnZ3kvY2FsbGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY2N2JlY2ZmYmNiNGMz
ZTBjZGMyZmUxYmRiOGI2ODM0ZGJkNzY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
cGx1Z2d5L2NhbGxlcnMucHkKQEAgLTAsMCArMSwyMDEgQEAKKycnJworQ2FsbCBsb29wIG1hY2hp
bmVyeQorJycnCitpbXBvcnQgc3lzCitpbXBvcnQgd2FybmluZ3MKKworX3B5MyA9IHN5cy52ZXJz
aW9uX2luZm8gPiAoMywgMCkKKworCitpZiBub3QgX3B5MzoKKyAgICBleGVjKCIiIgorZGVmIF9y
ZXJhaXNlKGNscywgdmFsLCB0Yik6CisgICAgcmFpc2UgY2xzLCB2YWwsIHRiCisiIiIpCisKKwor
ZGVmIF9yYWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIsIG1zZyk6CisgICAgY28gPSB3cmFw
X2NvbnRyb2xsZXIuZ2lfY29kZQorICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigid3JhcF9jb250cm9s
bGVyIGF0ICVyICVzOiVkICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgIChjby5jb19uYW1l
LCBjby5jb19maWxlbmFtZSwgY28uY29fZmlyc3RsaW5lbm8sIG1zZykpCisKKworY2xhc3MgSG9v
a0NhbGxFcnJvcihFeGNlcHRpb24pOgorICAgICIiIiBIb29rIHdhcyBjYWxsZWQgd3JvbmdseS4g
IiIiCisKKworY2xhc3MgX1Jlc3VsdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXN1bHQsIGV4Y2luZm8pOgorICAgICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAg
c2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleGNpbmZv
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhjaW5mbworCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJlc3VsdChzZWxmKToKKyAgICAgICAgIiIiR2V0IHRoZSByZXN1bHQocykgZm9yIHRo
aXMgaG9vayBjYWxsIChERVBSRUNBVEVEIGluIGZhdm9yIG9mIGBgZ2V0X3Jlc3VsdCgpYGApLiIi
IgorICAgICAgICBtc2cgPSAnVXNlIGdldF9yZXN1bHQoKSB3aGljaCBmb3JjZXMgY29ycmVjdCBl
eGNlcHRpb24gaGFuZGxpbmcnCisgICAgICAgIHdhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJu
aW5nKG1zZyksIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fY2FsbChjbHMsIGZ1bmMpOgorICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgcmVzdWx0ID0gZXhjaW5mbyA9IE5vbmUK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZnVuYygpCisgICAgICAgIGV4Y2Vw
dCBCYXNlRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisK
KyAgICAgICAgcmV0dXJuIGNscyhyZXN1bHQsIGV4Y2luZm8pCisKKyAgICBkZWYgZm9yY2VfcmVz
dWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICIiIkZvcmNlIHRoZSByZXN1bHQocykgdG8gYGBy
ZXN1bHRgYC4KKworICAgICAgICBJZiB0aGUgaG9vayB3YXMgbWFya2VkIGFzIGEgYGBmaXJzdHJl
c3VsdGBgIGEgc2luZ2xlIHZhbHVlIHNob3VsZAorICAgICAgICBiZSBzZXQgb3RoZXJ3aXNlIHNl
dCBhIChtb2RpZmllZCkgbGlzdCBvZiByZXN1bHRzLiBBbnkgZXhjZXB0aW9ucworICAgICAgICBm
b3VuZCBkdXJpbmcgaW52b2NhdGlvbiB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICAgICIiIgorICAg
ICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAgc2VsZi5fZXhjaW5mbyA9IE5vbmUK
KworICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYpOgorICAgICAgICAiIiJHZXQgdGhlIHJlc3VsdChz
KSBmb3IgdGhpcyBob29rIGNhbGwuCisKKyAgICAgICAgSWYgdGhlIGhvb2sgd2FzIG1hcmtlZCBh
cyBhIGBgZmlyc3RyZXN1bHRgYCBvbmx5IGEgc2luZ2xlIHZhbHVlCisgICAgICAgIHdpbGwgYmUg
cmV0dXJuZWQgb3RoZXJ3aXNlIGEgbGlzdCBvZiByZXN1bHRzLgorICAgICAgICAiIiIKKyAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGlmIHNlbGYuX2V4Y2luZm8gaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHQKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGV4ID0gc2VsZi5fZXhjaW5mbworICAgICAgICAgICAgaWYgX3B5MzoKKyAgICAg
ICAgICAgICAgICByYWlzZSBleFsxXS53aXRoX3RyYWNlYmFjayhleFsyXSkKKyAgICAgICAgICAg
IF9yZXJhaXNlKCpleCkgICMgbm9xYQorCisKK2RlZiBfd3JhcHBlZF9jYWxsKHdyYXBfY29udHJv
bGxlciwgZnVuYyk6CisgICAgIiIiIFdyYXAgY2FsbGluZyB0byBhIGZ1bmN0aW9uIHdpdGggYSBn
ZW5lcmF0b3Igd2hpY2ggbmVlZHMgdG8geWllbGQKKyAgICBleGFjdGx5IG9uY2UuICBUaGUgeWll
bGQgcG9pbnQgd2lsbCB0cmlnZ2VyIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAgICBh
bmQgcmV0dXJuIGl0cyBgYF9SZXN1bHRgYCB0byB0aGUgeWllbGQgcG9pbnQuICBUaGUgZ2VuZXJh
dG9yIHRoZW4gbmVlZHMKKyAgICB0byBmaW5pc2ggKHJhaXNlIFN0b3BJdGVyYXRpb24pIGluIG9y
ZGVyIGZvciB0aGUgd3JhcHBlZCBjYWxsIHRvIGNvbXBsZXRlLgorICAgICIiIgorICAgIHRyeToK
KyAgICAgICAgbmV4dCh3cmFwX2NvbnRyb2xsZXIpICAgIyBmaXJzdCB5aWVsZAorICAgIGV4Y2Vw
dCBTdG9wSXRlcmF0aW9uOgorICAgICAgICBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVy
LCAiZGlkIG5vdCB5aWVsZCIpCisgICAgY2FsbF9vdXRjb21lID0gX1Jlc3VsdC5mcm9tX2NhbGwo
ZnVuYykKKyAgICB0cnk6CisgICAgICAgIHdyYXBfY29udHJvbGxlci5zZW5kKGNhbGxfb3V0Y29t
ZSkKKyAgICAgICAgX3JhaXNlX3dyYXBmYWlsKHdyYXBfY29udHJvbGxlciwgImhhcyBzZWNvbmQg
eWllbGQiKQorICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICBwYXNzCisgICAgcmV0
dXJuIGNhbGxfb3V0Y29tZS5nZXRfcmVzdWx0KCkKKworCitjbGFzcyBfTGVnYWN5TXVsdGlDYWxs
KG9iamVjdCk6CisgICAgIiIiIGV4ZWN1dGUgYSBjYWxsIGludG8gbXVsdGlwbGUgcHl0aG9uIGZ1
bmN0aW9ucy9tZXRob2RzLiAiIiIKKworICAgICMgWFhYIG5vdGUgdGhhdCB0aGUgX19tdWx0aWNh
bGxfXyBhcmd1bWVudCBpcyBzdXBwb3J0ZWQgb25seQorICAgICMgZm9yIHB5dGVzdCBjb21wYXRp
YmlsaXR5IHJlYXNvbnMuICBJdCB3YXMgbmV2ZXIgb2ZmaWNpYWxseQorICAgICMgc3VwcG9ydGVk
IHRoZXJlIGFuZCBpcyBleHBsaWNpdGVseSBkZXByZWNhdGVkIHNpbmNlIDIuOAorICAgICMgc28g
d2UgY2FuIHJlbW92ZSBpdCBzb29uLCBhbGxvd2luZyB0byBhdm9pZCB0aGUgYmVsb3cgcmVjdXJz
aW9uCisgICAgIyBpbiBleGVjdXRlKCkgYW5kIHNpbXBsaWZ5L3NwZWVkIHVwIHRoZSBleGVjdXRl
IGxvb3AuCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9va19pbXBscywga3dhcmdzLCBmaXJz
dHJlc3VsdD1GYWxzZSk6CisgICAgICAgIHNlbGYuaG9va19pbXBscyA9IGhvb2tfaW1wbHMKKyAg
ICAgICAgc2VsZi5jYWxsZXJfa3dhcmdzID0ga3dhcmdzICAjIGNvbWUgZnJvbSBfSG9va0NhbGxl
ci5fX2NhbGxfXygpCisgICAgICAgIHNlbGYuY2FsbGVyX2t3YXJnc1siX19tdWx0aWNhbGxfXyJd
ID0gc2VsZgorICAgICAgICBzZWxmLmZpcnN0cmVzdWx0ID0gZmlyc3RyZXN1bHQKKworICAgIGRl
ZiBleGVjdXRlKHNlbGYpOgorICAgICAgICBjYWxsZXJfa3dhcmdzID0gc2VsZi5jYWxsZXJfa3dh
cmdzCisgICAgICAgIHNlbGYucmVzdWx0cyA9IHJlc3VsdHMgPSBbXQorICAgICAgICBmaXJzdHJl
c3VsdCA9IHNlbGYuZmlyc3RyZXN1bHQKKworICAgICAgICB3aGlsZSBzZWxmLmhvb2tfaW1wbHM6
CisgICAgICAgICAgICBob29rX2ltcGwgPSBzZWxmLmhvb2tfaW1wbHMucG9wKCkKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBhcmdzID0gW2NhbGxlcl9rd2FyZ3NbYXJnbmFtZV0g
Zm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzXQorICAgICAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgorICAgICAgICAgICAgICAgIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1l
czoKKyAgICAgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJnczoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEhvb2tDYWxsRXJyb3IoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImhvb2sgY2FsbCBtdXN0IHByb3ZpZGUgYXJndW1lbnQgJXIiICUg
KGFyZ25hbWUsKSkKKyAgICAgICAgICAgIGlmIGhvb2tfaW1wbC5ob29rd3JhcHBlcjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gX3dyYXBwZWRfY2FsbChob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3Mp
LCBzZWxmLmV4ZWN1dGUpCisgICAgICAgICAgICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFy
Z3MpCisgICAgICAgICAgICBpZiByZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYg
Zmlyc3RyZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgICAg
ICAgICByZXN1bHRzLmFwcGVuZChyZXMpCisKKyAgICAgICAgaWYgbm90IGZpcnN0cmVzdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHMKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAg
ICAgICAgc3RhdHVzID0gIiVkIG1ldGhzIiAlIChsZW4oc2VsZi5ob29rX2ltcGxzKSwpCisgICAg
ICAgIGlmIGhhc2F0dHIoc2VsZiwgInJlc3VsdHMiKToKKyAgICAgICAgICAgIHN0YXR1cyA9ICgi
JWQgcmVzdWx0cywgIiAlIGxlbihzZWxmLnJlc3VsdHMpKSArIHN0YXR1cworICAgICAgICByZXR1
cm4gIjxfTXVsdGlDYWxsICVzLCBrd2FyZ3M9JXI+IiAlIChzdGF0dXMsIHNlbGYuY2FsbGVyX2t3
YXJncykKKworCitkZWYgX2xlZ2FjeW11bHRpY2FsbChob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdz
LCBmaXJzdHJlc3VsdD1GYWxzZSk6CisgICAgcmV0dXJuIF9MZWdhY3lNdWx0aUNhbGwoCisgICAg
ICAgIGhvb2tfaW1wbHMsIGNhbGxlcl9rd2FyZ3MsIGZpcnN0cmVzdWx0PWZpcnN0cmVzdWx0KS5l
eGVjdXRlKCkKKworCitkZWYgX211bHRpY2FsbChob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBm
aXJzdHJlc3VsdD1GYWxzZSk6CisgICAgIiIiRXhlY3V0ZSBhIGNhbGwgaW50byBtdWx0aXBsZSBw
eXRob24gZnVuY3Rpb25zL21ldGhvZHMgYW5kIHJldHVybiB0aGUKKyAgICByZXN1bHQocykuCisK
KyAgICBgYGNhbGxlcl9rd2FyZ3NgYCBjb21lcyBmcm9tIF9Ib29rQ2FsbGVyLl9fY2FsbF9fKCku
CisgICAgIiIiCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgcmVzdWx0cyA9IFtd
CisgICAgZXhjaW5mbyA9IE5vbmUKKyAgICB0cnk6ICAjIHJ1biBpbXBsIGFuZCB3cmFwcGVyIHNl
dHVwIGZ1bmN0aW9ucyBpbiBhIGxvb3AKKyAgICAgICAgdGVhcmRvd25zID0gW10KKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgZm9yIGhvb2tfaW1wbCBpbiByZXZlcnNlZChob29rX2ltcGxzKToK
KyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbY2FsbGVy
X2t3YXJnc1thcmduYW1lXSBmb3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJnbmFtZXNdCisgICAg
ICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICAgICBmb3IgYXJn
bmFtZSBpbiBob29rX2ltcGwuYXJnbmFtZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBh
cmduYW1lIG5vdCBpbiBjYWxsZXJfa3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJhaXNlIEhvb2tDYWxsRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
b29rIGNhbGwgbXVzdCBwcm92aWRlIGFyZ3VtZW50ICVyIiAlIChhcmduYW1lLCkpCisKKyAgICAg
ICAgICAgICAgICBpZiBob29rX2ltcGwuaG9va3dyYXBwZXI6CisgICAgICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbiA9IGhvb2tfaW1wbC5mdW5jdGlvbigq
YXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHQoZ2VuKSAgICMgZmlyc3QgeWllbGQK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlYXJkb3ducy5hcHBlbmQoZ2VuKQorICAgICAgICAg
ICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAg
IF9yYWlzZV93cmFwZmFpbChnZW4sICJkaWQgbm90IHlpZWxkIikKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3Mp
CisgICAgICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IGZpcnN0cmVzdWx0OiAgIyBoYWx0IGZ1cnRoZXIgaW1wbCBjYWxscworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgorICAgICAg
ICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgZmluYWxseToKKyAgICAgICAgaWYg
Zmlyc3RyZXN1bHQ6ICAjIGZpcnN0IHJlc3VsdCBob29rcyByZXR1cm4gYSBzaW5nbGUgdmFsdWUK
KyAgICAgICAgICAgIG91dGNvbWUgPSBfUmVzdWx0KHJlc3VsdHNbMF0gaWYgcmVzdWx0cyBlbHNl
IE5vbmUsIGV4Y2luZm8pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRjb21lID0gX1Jl
c3VsdChyZXN1bHRzLCBleGNpbmZvKQorCisgICAgICAgICMgcnVuIGFsbCB3cmFwcGVyIHBvc3Qt
eWllbGQgYmxvY2tzCisgICAgICAgIGZvciBnZW4gaW4gcmV2ZXJzZWQodGVhcmRvd25zKToKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBnZW4uc2VuZChvdXRjb21lKQorICAgICAg
ICAgICAgICAgIF9yYWlzZV93cmFwZmFpbChnZW4sICJoYXMgc2Vjb25kIHlpZWxkIikKKyAgICAg
ICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICByZXR1cm4gb3V0Y29tZS5nZXRfcmVzdWx0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3BsdWdneS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Mjk5MGNkODg3MjhjOTAxZGQ5YjY2OGNjYjI4NzM3ZWIxNTc5Y2U1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1
cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U3MjljYjRmMjRiMWY2
MzcxZTlhZjg0MGUzYzE1NDg1YjM4OThjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3NldHVwLmNmZwpAQCAtMCwwICsxLDggQEAKK1tiZGlzdF93aGVlbF0KK3VuaXZlcnNhbD0xCisK
K1ttZXRhZGF0YV0KK2xpY2Vuc2VfZmlsZT1MSUNFTlNFCisKK1tkZXZwaTp1cGxvYWRdCitmb3Jt
YXRzPXNkaXN0LnRneixiZGlzdF93aGVlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2MwZjY5NzEyMGFkNGNjMDk3
ODcyYmQwMTBmYWRkMjAxNmQyYmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0
dXAucHkKQEAgLTAsMCArMSw1MSBAQAoraW1wb3J0IG9zCitmcm9tIHNldHVwdG9vbHMgaW1wb3J0
IHNldHVwCisKK2NsYXNzaWZpZXJzID0gWworICAgICdEZXZlbG9wbWVudCBTdGF0dXMgOjogNCAt
IEJldGEnLAorICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKKyAgICAnTGlj
ZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLAorICAgICdPcGVyYXRpbmcgU3lz
dGVtIDo6IFBPU0lYJywKKyAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQgOjogV2lu
ZG93cycsCisgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcsCisgICAg
J1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IFRlc3RpbmcnLAorICAgICdUb3BpYyA6
OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLAorICAgICdUb3BpYyA6OiBVdGls
aXRpZXMnLAorICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50
YXRpb24gOjogQ1B5dGhvbicsCisgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6
OiBJbXBsZW1lbnRhdGlvbiA6OiBQeVB5J10gKyBbCisgICAgKCdQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogJXMnICUgeCkgZm9yIHggaW4KKyAgICAnMiAyLjcgMyAzLjQgMy41IDMu
Nicuc3BsaXQoKV0KKword2l0aCBvcGVuKCdSRUFETUUucnN0JykgYXMgZmQ6CisgICAgbG9uZ19k
ZXNjcmlwdGlvbiA9IGZkLnJlYWQoKQorCisKK2RlZiBnZXRfdmVyc2lvbigpOgorICAgIHAgPSBv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKAorICAgICAgICAgICAgICAgICAgICAgb3MucGF0
aC5hYnNwYXRoKF9fZmlsZV9fKSksICJwbHVnZ3kvX19pbml0X18ucHkiKQorICAgIHdpdGggb3Bl
bihwKSBhcyBmOgorICAgICAgICBmb3IgbGluZSBpbiBmLnJlYWRsaW5lcygpOgorICAgICAgICAg
ICAgaWYgIl9fdmVyc2lvbl9fIiBpbiBsaW5lOgorICAgICAgICAgICAgICAgIHJldHVybiBsaW5l
LnN0cmlwKCkuc3BsaXQoIj0iKVstMV0uc3RyaXAoIiAnIikKKyAgICByYWlzZSBWYWx1ZUVycm9y
KCJjb3VsZCBub3QgcmVhZCB2ZXJzaW9uIikKKworCitkZWYgbWFpbigpOgorICAgIHNldHVwKAor
ICAgICAgICBuYW1lPSdwbHVnZ3knLAorICAgICAgICBkZXNjcmlwdGlvbj0ncGx1Z2luIGFuZCBo
b29rIGNhbGxpbmcgbWVjaGFuaXNtcyBmb3IgcHl0aG9uJywKKyAgICAgICAgbG9uZ19kZXNjcmlw
dGlvbj1sb25nX2Rlc2NyaXB0aW9uLAorICAgICAgICB2ZXJzaW9uPWdldF92ZXJzaW9uKCksCisg
ICAgICAgIGxpY2Vuc2U9J01JVCBsaWNlbnNlJywKKyAgICAgICAgcGxhdGZvcm1zPVsndW5peCcs
ICdsaW51eCcsICdvc3gnLCAnd2luMzInXSwKKyAgICAgICAgYXV0aG9yPSdIb2xnZXIgS3Jla2Vs
JywKKyAgICAgICAgYXV0aG9yX2VtYWlsPSdob2xnZXJAbWVybGludXguZXUnLAorICAgICAgICB1
cmw9J2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneScsCisgICAgICAgIHB5dGhv
bl9yZXF1aXJlcz0nPj0yLjcsICE9My4wLiosICE9My4xLiosICE9My4yLiosICE9My4zLionLAor
ICAgICAgICBjbGFzc2lmaWVycz1jbGFzc2lmaWVycywKKyAgICAgICAgcGFja2FnZXM9WydwbHVn
Z3knXSwKKyAgICApCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvYmVuY2htYXJrLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy9iZW5jaG1hcmsucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE5MTNlOWQ0MThkZmEzOWRkZDlh
NzI2ZDQ3YTE3NTVmZWFiOWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvYmVuY2htYXJrLnB5CkBAIC0wLDAgKzEsNTkgQEAKKyIiIgorQmVuY2htYXJraW5nIGFuZCBw
ZXJmb3JtYW5jZSB0ZXN0cy4KKyIiIgoraW1wb3J0IHB5dGVzdAorZnJvbSBwbHVnZ3kgaW1wb3J0
IChfbXVsdGljYWxsLCBfbGVnYWN5bXVsdGljYWxsLCBIb29rSW1wbCwgSG9va3NwZWNNYXJrZXIs
CisgICAgICAgICAgICAgICAgICAgIEhvb2tpbXBsTWFya2VyKQorCitob29rc3BlYyA9IEhvb2tz
cGVjTWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUi
KQorCisKK2RlZiBNQyhtZXRob2RzLCBrd2FyZ3MsIGNhbGxlcnR5cGUsIGZpcnN0cmVzdWx0PUZh
bHNlKToKKyAgICBob29rZnVuY3MgPSBbXQorICAgIGZvciBtZXRob2QgaW4gbWV0aG9kczoKKyAg
ICAgICAgZiA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBtZXRob2QsIG1ldGhvZC5leGFtcGxl
X2ltcGwpCisgICAgICAgIGhvb2tmdW5jcy5hcHBlbmQoZikKKyAgICByZXR1cm4gY2FsbGVydHlw
ZShob29rZnVuY3MsIGt3YXJncywgeyJmaXJzdHJlc3VsdCI6IGZpcnN0cmVzdWx0fSkKKworCitA
aG9va2ltcGwKK2RlZiBob29rKGFyZzEsIGFyZzIsIGFyZzMpOgorICAgIHJldHVybiBhcmcxLCBh
cmcyLCBhcmczCisKKworQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgd3JhcHBlcihh
cmcxLCBhcmcyLCBhcmczKToKKyAgICB5aWVsZAorCisKK0BweXRlc3QuZml4dHVyZSgKKyAgICBw
YXJhbXM9WzEwLCAxMDBdLAorICAgIGlkcz0iaG9va3M9e30iLmZvcm1hdCwKKykKK2RlZiBob29r
cyhyZXF1ZXN0KToKKyAgICByZXR1cm4gW2hvb2sgZm9yIGkgaW4gcmFuZ2UocmVxdWVzdC5wYXJh
bSldCisKKworQHB5dGVzdC5maXh0dXJlKAorICAgIHBhcmFtcz1bMTAsIDEwMF0sCisgICAgaWRz
PSJ3cmFwcGVycz17fSIuZm9ybWF0LAorKQorZGVmIHdyYXBwZXJzKHJlcXVlc3QpOgorICAgIHJl
dHVybiBbd3JhcHBlciBmb3IgaSBpbiByYW5nZShyZXF1ZXN0LnBhcmFtKV0KKworCitAcHl0ZXN0
LmZpeHR1cmUoCisgICAgcGFyYW1zPVtfbXVsdGljYWxsLCBfbGVnYWN5bXVsdGljYWxsXSwKKyAg
ICBpZHM9bGFtYmRhIGl0ZW06IGl0ZW0uX19uYW1lX18KKykKK2RlZiBjYWxsZXJ0eXBlKHJlcXVl
c3QpOgorICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKworZGVmIGlubmVyX2V4ZWMobWV0aG9k
cywgY2FsbGVydHlwZSk6CisgICAgcmV0dXJuIE1DKG1ldGhvZHMsIHsnYXJnMSc6IDEsICdhcmcy
JzogMiwgJ2FyZzMnOiAzfSwgY2FsbGVydHlwZSkKKworCitkZWYgdGVzdF9ob29rX2FuZF93cmFw
cGVyc19zcGVlZChiZW5jaG1hcmssIGhvb2tzLCB3cmFwcGVycywgY2FsbGVydHlwZSk6CisgICAg
YmVuY2htYXJrKGlubmVyX2V4ZWMsIGhvb2tzICsgd3JhcHBlcnMsIGNhbGxlcnR5cGUpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDYxYTM0OWM4OGM2ODdmMzExYjEwMDVjYWQ1
Y2NiMDRiMWI4OTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9jb25m
dGVzdC5weQpAQCAtMCwwICsxLDMwIEBACitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0
dXJlKAorICAgIHBhcmFtcz1bCisgICAgICAgIGxhbWJkYSBzcGVjOiBzcGVjLAorICAgICAgICBs
YW1iZGEgc3BlYzogc3BlYygpCisgICAgXSwKKyAgICBpZHM9WworICAgICAgICAic3BlYy1pcy1j
bGFzcyIsCisgICAgICAgICJzcGVjLWlzLWluc3RhbmNlIgorICAgIF0sCispCitkZWYgaGVfcG0o
cmVxdWVzdCwgcG0pOgorICAgIGZyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlcgorICAg
IGhvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoImV4YW1wbGUiKQorCisgICAgY2xhc3MgSG9va3Mo
b2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYs
IGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisgICAgcG0uYWRkX2hvb2tzcGVj
cyhyZXF1ZXN0LnBhcmFtKEhvb2tzKSkKKyAgICByZXR1cm4gcG0KKworCitAcHl0ZXN0LmZpeHR1
cmUKK2RlZiBwbSgpOgorICAgIGZyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyCisgICAg
cmV0dXJuIFBsdWdpbk1hbmFnZXIoImV4YW1wbGUiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
dGVzdGluZy90ZXN0X2RldGFpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfZGV0YWls
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZmFkMTk4ZDk1ODVkNGMzYjE5ZjVlZjIwNTJlNzQzZWNmNGU4ZTY3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RldGFpbHMucHkK
QEAgLTAsMCArMSwxMDMgQEAKK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgcHl0ZXN0CisKK2Zy
b20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNN
YXJrZXIsIF9SZXN1bHQKKworaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCito
b29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKKworCitkZWYgdGVzdF9wYXJzZV9o
b29raW1wbF9vdmVycmlkZSgpOgorICAgIGNsYXNzIE15UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5h
Z2VyKToKKyAgICAgICAgZGVmIHBhcnNlX2hvb2tpbXBsX29wdHMoc2VsZiwgbW9kdWxlX29yX2Ns
YXNzLCBuYW1lKToKKyAgICAgICAgICAgIG9wdHMgPSBQbHVnaW5NYW5hZ2VyLnBhcnNlX2hvb2tp
bXBsX29wdHMoCisgICAgICAgICAgICAgICAgc2VsZiwgbW9kdWxlX29yX2NsYXNzLCBuYW1lKQor
ICAgICAgICAgICAgaWYgb3B0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIG5hbWUuc3Rh
cnRzd2l0aCgieDEiKToKKyAgICAgICAgICAgICAgICAgICAgb3B0cyA9IHt9CisgICAgICAgICAg
ICByZXR1cm4gb3B0cworCisgICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAgIGRlZiB4
MW1ldGgoc2VsZik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3
cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCisgICAgICAgIGRlZiB4MW1ldGgyKHNlbGYpOgor
ICAgICAgICAgICAgcGFzcworCisgICAgY2xhc3MgU3BlYyhvYmplY3QpOgorICAgICAgICBAaG9v
a3NwZWMKKyAgICAgICAgZGVmIHgxbWV0aChzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICBAaG9va3NwZWMKKyAgICAgICAgZGVmIHgxbWV0aDIoc2VsZik6CisgICAgICAgICAgICBw
YXNzCisKKyAgICBwbSA9IE15UGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUpCisg
ICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisgICAgcG0uYWRkX2hvb2tzcGVjcyhTcGVjKQorICAg
IGFzc2VydCBub3QgcG0uaG9vay54MW1ldGguX25vbndyYXBwZXJzWzBdLmhvb2t3cmFwcGVyCisg
ICAgYXNzZXJ0IG5vdCBwbS5ob29rLngxbWV0aC5fbm9ud3JhcHBlcnNbMF0udHJ5Zmlyc3QKKyAg
ICBhc3NlcnQgbm90IHBtLmhvb2sueDFtZXRoLl9ub253cmFwcGVyc1swXS50cnlsYXN0CisgICAg
YXNzZXJ0IG5vdCBwbS5ob29rLngxbWV0aC5fbm9ud3JhcHBlcnNbMF0ub3B0aW9uYWxob29rCisK
KyAgICBhc3NlcnQgcG0uaG9vay54MW1ldGgyLl93cmFwcGVyc1swXS50cnlmaXJzdAorICAgIGFz
c2VydCBwbS5ob29rLngxbWV0aDIuX3dyYXBwZXJzWzBdLmhvb2t3cmFwcGVyCisKKworZGVmIHRl
c3RfcGx1Z2luX2dldGF0dHJfcmFpc2VzX2Vycm9ycygpOgorICAgICIiIlBsdWdneSBtdXN0IGJl
IGFibGUgdG8gaGFuZGxlIHBsdWdpbnMgd2hpY2ggcmFpc2Ugd2VpcmQgZXhjZXB0aW9ucworICAg
IHdoZW4gZ2V0YXR0cigpIGdldHMgY2FsbGVkICgjMTEpLgorICAgICIiIgorICAgIGNsYXNzIERv
bnRUb3VjaE1lKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCB4KToKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignY2FudCB0b3VjaCBtZScpCisKKyAgICBjbGFzcyBN
b2R1bGUob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAgbW9kdWxlID0gTW9kdWxlKCkKKyAg
ICBtb2R1bGUueCA9IERvbnRUb3VjaE1lKCkKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29r
c3BlYy5wcm9qZWN0X25hbWUpCisgICAgIyByZWdpc3RlcigpIHdvdWxkIHJhaXNlIGFuIGVycm9y
CisgICAgcG0ucmVnaXN0ZXIobW9kdWxlLCAnZG9udHRvdWNoJykKKyAgICBhc3NlcnQgcG0uZ2V0
X3BsdWdpbignZG9udHRvdWNoJykgaXMgbW9kdWxlCisKKworZGVmIHRlc3Rfd2FybmluZ19vbl9j
YWxsX3ZzX2hvb2tzcGVjX2FyZ19taXNtYXRjaCgpOgorICAgICIiIlZlcmlmeSB0aGF0IGlzIGEg
aG9vayBpcyBjYWxsZWQgd2l0aCBsZXNzIGFyZ3VtZW50cyB0aGVuIGRlZmluZWQgaW4gdGhlCisg
ICAgc3BlYyB0aGF0IGEgd2FybmluZyBpcyBlbWl0dGVkLgorICAgICIiIgorICAgIGNsYXNzIFNw
ZWM6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFy
ZzIpOgorICAgICAgICAgICAgcGFzcworCisgICAgY2xhc3MgUGx1Z2luOgorICAgICAgICBAaG9v
a2ltcGwKKyAgICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmcxKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUpCisgICAgcG0u
cmVnaXN0ZXIoUGx1Z2luKCkpCisgICAgcG0uYWRkX2hvb2tzcGVjcyhTcGVjKCkpCisKKyAgICB3
aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyB3YXJuczoKKyAgICAg
ICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQorCisgICAgICAgICMgY2FsbGluZyBz
aG91bGQgdHJpZ2dlciBhIHdhcm5pbmcKKyAgICAgICAgcG0uaG9vay5teWhvb2soYXJnMT0xKQor
CisgICAgICAgIGFzc2VydCBsZW4od2FybnMpID09IDEKKyAgICAgICAgd2FybmluZyA9IHdhcm5z
Wy0xXQorICAgICAgICBhc3NlcnQgaXNzdWJjbGFzcyh3YXJuaW5nLmNhdGVnb3J5LCBXYXJuaW5n
KQorICAgICAgICBhc3NlcnQgIkFyZ3VtZW50KHMpICgnYXJnMicsKSIgaW4gc3RyKHdhcm5pbmcu
bWVzc2FnZSkKKworCitkZWYgdGVzdF9yZXN1bHRfZGVwcmVjYXRlZCgpOgorICAgIHIgPSBfUmVz
dWx0KDEwLCBOb25lKQorICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAg
ICBhc3NlcnQgci5yZXN1bHQgPT0gMTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9oZWxwZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjE3ODA5Njg0NDY1MDgzZTRkMDAxMzRmMjM3NTFiZjBjNGMyYTM0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9oZWxwZXJzLnB5CkBAIC0wLDAg
KzEsNjggQEAKK2Zyb20gcGx1Z2d5IGltcG9ydCBfZm9ybWF0ZGVmLCB2YXJuYW1lcworCisKK2Rl
ZiB0ZXN0X3Zhcm5hbWVzKCk6CisgICAgZGVmIGYoeCk6CisgICAgICAgIGkgPSAzICAjIG5vcWEK
KworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgZGVmIGYoc2VsZiwgeSk6CisgICAgICAg
ICAgICBwYXNzCisKKyAgICBjbGFzcyBCKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCB6KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGFzc2VydCB2YXJuYW1lcyhmKSA9PSAo
KCJ4IiwpLCAoKSkKKyAgICBhc3NlcnQgdmFybmFtZXMoQSgpLmYpID09ICgoJ3knLCksICgpKQor
ICAgIGFzc2VydCB2YXJuYW1lcyhCKCkpID09ICgoJ3onLCksICgpKQorCisKK2RlZiB0ZXN0X3Zh
cm5hbWVzX2RlZmF1bHQoKToKKyAgICBkZWYgZih4LCB5PTMpOgorICAgICAgICBwYXNzCisKKyAg
ICBhc3NlcnQgdmFybmFtZXMoZikgPT0gKCgieCIsKSwgKCJ5IiwpKQorCisKK2RlZiB0ZXN0X3Zh
cm5hbWVzX2NsYXNzKCk6CisgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0
X18oc2VsZiwgeCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBEKG9iamVjdCk6Cisg
ICAgICAgIHBhc3MKKworICAgIGNsYXNzIEUob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHgpOgorICAgICAgICAgICAgcGFzcworCisgICAgY2xhc3MgRihvYmplY3QpOgorICAg
ICAgICBwYXNzCisKKyAgICBhc3NlcnQgdmFybmFtZXMoQykgPT0gKCgieCIsKSwgKCkpCisgICAg
YXNzZXJ0IHZhcm5hbWVzKEQpID09ICgoKSwgKCkpCisgICAgYXNzZXJ0IHZhcm5hbWVzKEUpID09
ICgoIngiLCksICgpKQorICAgIGFzc2VydCB2YXJuYW1lcyhGKSA9PSAoKCksICgpKQorCisKK2Rl
ZiB0ZXN0X2Zvcm1hdGRlZigpOgorICAgIGRlZiBmdW5jdGlvbjEoKToKKyAgICAgICAgcGFzcwor
CisgICAgYXNzZXJ0IF9mb3JtYXRkZWYoZnVuY3Rpb24xKSA9PSAnZnVuY3Rpb24xKCknCisKKyAg
ICBkZWYgZnVuY3Rpb24yKGFyZzEpOgorICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgX2Zvcm1h
dGRlZihmdW5jdGlvbjIpID09ICJmdW5jdGlvbjIoYXJnMSkiCisKKyAgICBkZWYgZnVuY3Rpb24z
KGFyZzEsIGFyZzI9InF3ZSIpOgorICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgX2Zvcm1hdGRl
ZihmdW5jdGlvbjMpID09ICJmdW5jdGlvbjMoYXJnMSwgYXJnMj0ncXdlJykiCisKKyAgICBkZWYg
ZnVuY3Rpb240KGFyZzEsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHBhc3MKKworICAgIGFz
c2VydCBfZm9ybWF0ZGVmKGZ1bmN0aW9uNCkgPT0gImZ1bmN0aW9uNChhcmcxLCAqYXJncywgKipr
d2FyZ3MpIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tyZWxheS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rcmVsYXkucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU3
ODIxYmVkOGY5ZDBkM2ExYjk4Y2ZlOWMwNzcyNDE2OWM1YzQxYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rcmVsYXkucHkKQEAgLTAsMCArMSwyMTAgQEAK
K2ltcG9ydCBweXRlc3QKK2Zyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5WYWxpZGF0aW9uRXJyb3Is
IEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlcgorCisKK2hvb2tzcGVjID0gSG9va3NwZWNN
YXJrZXIoImV4YW1wbGUiKQoraG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigiZXhhbXBsZSIpCisK
KworZGVmIHRlc3RfaGFwcHlwYXRoKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAg
ICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAg
ImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKyAgICBob29rID0gcG0u
aG9vaworICAgIGFzc2VydCBoYXNhdHRyKGhvb2ssICdoZWxsbycpCisgICAgYXNzZXJ0IHJlcHIo
aG9vay5oZWxsbykuZmluZCgiaGVsbG8iKSAhPSAtMQorCisgICAgY2xhc3MgUGx1Z2luKG9iamVj
dCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAg
ICAgICAgICAgIHJldHVybiBhcmcgKyAxCisKKyAgICBwbHVnaW4gPSBQbHVnaW4oKQorICAgIHBt
LnJlZ2lzdGVyKHBsdWdpbikKKyAgICBvdXQgPSBob29rLmhlbGxvKGFyZz0zKQorICAgIGFzc2Vy
dCBvdXQgPT0gWzRdCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGhvb2ssICd3b3JsZCcpCisgICAg
cG0udW5yZWdpc3RlcihwbHVnaW4pCisgICAgYXNzZXJ0IGhvb2suaGVsbG8oYXJnPTMpID09IFtd
CisKKworZGVmIHRlc3RfYXJnbWlzbWF0Y2gocG0pOgorICAgIGNsYXNzIEFwaShvYmplY3QpOgor
ICAgICAgICBAaG9va3NwZWMKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAg
ICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorCisgICAgY2xh
c3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8o
c2VsZiwgYXJnd3JvbmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKFBsdWdpblZhbGlkYXRpb25FcnJvcikgYXMgZXhjOgorICAgICAgICBwbS5yZWdpc3RlcihQ
bHVnaW4oKSkKKworICAgIGFzc2VydCAiYXJnd3JvbmciIGluIHN0cihleGMudmFsdWUpCisKKwor
ZGVmIHRlc3Rfb25seV9rd2FyZ3MocG0pOgorICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAg
ICBAaG9va3NwZWMKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAi
YXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGV4YzoKKyAgICAgICAgcG0uaG9vay5oZWxsbygzKQorCisg
ICAgY29tcHJlaGVuc2libGUgPSAiaG9vayBjYWxsaW5nIHN1cHBvcnRzIG9ubHkga2V5d29yZCBh
cmd1bWVudHMiCisgICAgYXNzZXJ0IGNvbXByZWhlbnNpYmxlIGluIHN0cihleGMudmFsdWUpCisK
KworZGVmIHRlc3RfY2FsbF9vcmRlcihwbSk6CisgICAgY2xhc3MgQXBpKG9iamVjdCk6CisgICAg
ICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAg
ICJhcGkgaG9vayAxIgorCisgICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCisKKyAgICBjbGFzcyBQ
bHVnaW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8oc2Vs
ZiwgYXJnKToKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICBjbGFzcyBQbHVnaW4yKG9iamVj
dCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAg
ICAgICAgICAgIHJldHVybiAyCisKKyAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAg
IEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJl
dHVybiAzCisKKyAgICBjbGFzcyBQbHVnaW40KG9iamVjdCk6CisgICAgICAgIEBob29raW1wbCho
b29rd3JhcHBlcj1UcnVlKQorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAg
ICAgIGFzc2VydCBhcmcgPT0gMAorICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAg
ICAgICBhc3NlcnQgb3V0Y29tZS5nZXRfcmVzdWx0KCkgPT0gWzMsIDIsIDFdCisKKyAgICBwbS5y
ZWdpc3RlcihQbHVnaW4xKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKQorICAgIHBtLnJl
Z2lzdGVyKFBsdWdpbjMoKSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW40KCkpICAjIGhvb2t3cmFw
cGVyIHNob3VsZCBnZXQgc2FtZSBsaXN0IHJlc3VsdAorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8o
YXJnPTApCisgICAgYXNzZXJ0IHJlcyA9PSBbMywgMiwgMV0KKworCitkZWYgdGVzdF9maXJzdHJl
c3VsdF9kZWZpbml0aW9uKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhv
b2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgor
ICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKwor
ICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRl
ZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEKKworICAgIGNs
YXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxs
byhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAtIDEKKworICAgIGNsYXNzIFBs
dWdpbjMob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxm
LCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGNsYXNzIFBsdWdpbjQob2Jq
ZWN0KToKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgIGRlZiBo
ZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAzCisgICAgICAgICAg
ICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAgIGFzc2VydCBvdXRjb21lLmdldF9yZXN1bHQo
KSA9PSAyCisKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4xKCkpICAjIGRpc2NhcmRlZCAtIG5vdCB0
aGUgbGFzdCByZWdpc3RlcmVkIHBsdWdpbgorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIoKSkgICMg
dXNlZCBhcyByZXN1bHQKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4zKCkpICAjIE5vbmUgcmVzdWx0
IGlzIGlnbm9yZWQKKyAgICBwbS5yZWdpc3RlcihQbHVnaW40KCkpICAjIGhvb2t3cmFwcGVyIHNo
b3VsZCBnZXQgc2FtZSBub24tbGlzdCByZXN1bHQKKyAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFy
Zz0zKQorICAgIGFzc2VydCByZXMgPT0gMgorCisKK2RlZiB0ZXN0X2ZpcnN0cmVzdWx0X2ZvcmNl
X3Jlc3VsdChwbSk6CisgICAgIiIiVmVyaWZ5IGZvcmNpbmcgYSByZXN1bHQgaW4gYSB3cmFwcGVy
LgorICAgICIiIgorICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMoZmly
c3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAg
ICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorCisgICAgY2xhc3Mg
UGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNl
bGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisgICAgY2xhc3MgUGx1Z2lu
MihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAg
ZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBhc3NlcnQgYXJnID09IDMKKyAgICAg
ICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgYXNzZXJ0IG91dGNvbWUuZ2V0X3Jl
c3VsdCgpID09IDQKKyAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KDApCisKKyAgICBj
bGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVs
bG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBwbS5yZWdpc3Rl
cihQbHVnaW4xKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKSAgIyB3cmFwcGVyCisgICAg
cG0ucmVnaXN0ZXIoUGx1Z2luMygpKSAgIyBpZ25vcmVkIHNpbmNlIHJldHVybnMgTm9uZQorICAg
IHJlcyA9IHBtLmhvb2suaGVsbG8oYXJnPTMpCisgICAgYXNzZXJ0IHJlcyA9PSAwICAjIHRoaXMg
cmVzdWx0IGlzIGZvcmNlZCBhbmQgbm90IGEgbGlzdAorCisKK2RlZiB0ZXN0X2ZpcnN0cmVzdWx0
X3JldHVybnNfbm9uZShwbSk6CisgICAgIiIiSWYgTm9uZSByZXN1bHRzIGFyZSByZXR1cm5lZCBi
eSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9ucyBlbnN1cmUKKyAgICB0aGUgbXVsdGktY2FsbCBs
b29wIHJldHVybnMgYSBOb25lIHZhbHVlLgorICAgICIiIgorICAgIGNsYXNzIEFwaShvYmplY3Qp
OgorICAgICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxv
KHNlbGYsIGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29r
c3BlY3MoQXBpKQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2lt
cGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gTm9u
ZQorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8o
YXJnPTMpCisgICAgYXNzZXJ0IHJlcyBpcyBOb25lCisKKworZGVmIHRlc3RfZmlyc3RyZXN1bHRf
bm9fcGx1Z2luKHBtKToKKyAgICAiIiJJZiBubyBpbXBsZW1lbnRhdGlvbnMvcGx1Z2lucyBoYXZl
IGJlZW4gcmVnaXN0ZXJlZCBmb3IgYSBmaXJzdHJlc3VsdAorICAgIGhvb2sgdGhlIG11bHRpLWNh
bGwgbG9vcCBzaG91bGQgcmV0dXJuIGEgTm9uZSB2YWx1ZS4KKyAgICAiIiIKKyAgICBjbGFzcyBB
cGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgICAg
IGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBw
bS5hZGRfaG9va3NwZWNzKEFwaSkKKyAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQorICAg
IGFzc2VydCByZXMgaXMgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0
X21ldGhvZF9vcmRlcmluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tZXRob2Rfb3Jk
ZXJpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU4NGEwYWU1YTgyNDRmMWQwNjNlNzNiOWIyMzk3Mjk5M2U2
MTFmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tZXRob2Rf
b3JkZXJpbmcucHkKQEAgLTAsMCArMSwzMjIgQEAKK2ltcG9ydCBweXRlc3QKKworCitpbXBvcnQg
c3lzCitpbXBvcnQgdHlwZXMKKworZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhv
b2tJbXBsLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKKworaG9va3NwZWMgPSBIb29r
c3BlY01hcmtlcigiZXhhbXBsZSIpCitob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxl
IikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBoYyhwbSk6CisgICAgY2xhc3MgSG9va3Mob2Jq
ZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFy
Zyk6CisgICAgICAgICAgICBwYXNzCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKyAgICBy
ZXR1cm4gcG0uaG9vay5oZV9tZXRob2QxCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgYWRkbWV0
aChoYyk6CisgICAgZGVmIGFkZG1ldGgodHJ5Zmlyc3Q9RmFsc2UsIHRyeWxhc3Q9RmFsc2UsIGhv
b2t3cmFwcGVyPUZhbHNlKToKKyAgICAgICAgZGVmIHdyYXAoZnVuYyk6CisgICAgICAgICAgICBo
b29raW1wbCh0cnlmaXJzdD10cnlmaXJzdCwgdHJ5bGFzdD10cnlsYXN0LAorICAgICAgICAgICAg
ICAgICAgICAgaG9va3dyYXBwZXI9aG9va3dyYXBwZXIpKGZ1bmMpCisgICAgICAgICAgICBoYy5f
YWRkX2hvb2tpbXBsKEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBmdW5jLCBmdW5jLmV4YW1wbGVf
aW1wbCkpCisgICAgICAgICAgICByZXR1cm4gZnVuYworICAgICAgICByZXR1cm4gd3JhcAorICAg
IHJldHVybiBhZGRtZXRoCisKKworZGVmIGZ1bmNzKGhvb2ttZXRob2RzKToKKyAgICByZXR1cm4g
W2hvb2ttZXRob2QuZnVuY3Rpb24gZm9yIGhvb2ttZXRob2QgaW4gaG9va21ldGhvZHNdCisKKwor
ZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzKGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aCgp
CisgICAgZGVmIGhlX21ldGhvZDEoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgoKQor
ICAgIGRlZiBoZV9tZXRob2QyKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAg
ICBkZWYgaGVfbWV0aG9kMygpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9u
b253cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDIsIGhlX21ldGhvZDNdCisKKwor
ZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QoaGMsIGFkZG1ldGgpOgorICAgIEBh
ZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAgcGFzcworCisg
ICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAg
IHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9iKCk6CisgICAgICAg
IHBhc3MKKyAgICBhc3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9PSBbaGVfbWV0aG9kMSwg
aGVfbWV0aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYl0KKworCitkZWYgdGVzdF9hZGRpbmdfbm9u
d3JhcHBlcnNfdHJ5bGFzdDMoaGMsIGFkZG1ldGgpOgorICAgIEBhZGRtZXRoKCkKKyAgICBkZWYg
aGVfbWV0aG9kMV9hKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1
ZSkKKyAgICBkZWYgaGVfbWV0aG9kMV9iKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRo
KCkKKyAgICBkZWYgaGVfbWV0aG9kMV9jKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRo
KHRyeWxhc3Q9VHJ1ZSkKKyAgICBkZWYgaGVfbWV0aG9kMV9kKCk6CisgICAgICAgIHBhc3MKKyAg
ICBhc3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9PSBcCisgICAgICAgIFtoZV9tZXRob2Qx
X2QsIGhlX21ldGhvZDFfYiwgaGVfbWV0aG9kMV9hLCBoZV9tZXRob2QxX2NdCisKKworZGVmIHRl
c3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QyKGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0
aCgpCisgICAgZGVmIGhlX21ldGhvZDFfbWlkZGxlKCk6CisgICAgICAgIHBhc3MKKworICAgIEBh
ZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9iKCk6CisgICAgICAgIHBhc3MKKworICAgIEBh
ZGRtZXRoKHRyeWxhc3Q9VHJ1ZSkKKyAgICBkZWYgaGVfbWV0aG9kMSgpOgorICAgICAgICBwYXNz
CisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gXAorICAgICAgICBbaGVfbWV0
aG9kMSwgaGVfbWV0aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYl0KKworCitkZWYgdGVzdF9hZGRp
bmdfbm9ud3JhcHBlcnNfdHJ5Zmlyc3QoaGMsIGFkZG1ldGgpOgorICAgIEBhZGRtZXRoKHRyeWZp
cnN0PVRydWUpCisgICAgZGVmIGhlX21ldGhvZDEoKToKKyAgICAgICAgcGFzcworCisgICAgQGFk
ZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgorICAgICAgICBwYXNzCisKKyAg
ICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfYigpOgorICAgICAgICBwYXNzCisgICAg
YXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gWworICAgICAgICBoZV9tZXRob2QxX21p
ZGRsZSwgaGVfbWV0aG9kMV9iLCBoZV9tZXRob2QxXQorCisKK2RlZiB0ZXN0X2FkZGluZ193cmFw
cGVyc19vcmRlcmluZyhoYywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1
ZSkKKyAgICBkZWYgaGVfbWV0aG9kMSgpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgp
CisgICAgZGVmIGhlX21ldGhvZDFfbWlkZGxlKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRt
ZXRoKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIGhlX21ldGhvZDMoKToKKyAgICAgICAgcGFz
cworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDFfbWlk
ZGxlXQorICAgIGFzc2VydCBmdW5jcyhoYy5fd3JhcHBlcnMpID09IFtoZV9tZXRob2QxLCBoZV9t
ZXRob2QzXQorCisKK2RlZiB0ZXN0X2FkZGluZ193cmFwcGVyc19vcmRlcmluZ190cnlmaXJzdCho
YywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1
ZSkKKyAgICBkZWYgaGVfbWV0aG9kMSgpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCho
b29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QyKCk6CisgICAgICAgIHBhc3MKKwor
ICAgIGFzc2VydCBoYy5fbm9ud3JhcHBlcnMgPT0gW10KKyAgICBhc3NlcnQgZnVuY3MoaGMuX3dy
YXBwZXJzKSA9PSBbaGVfbWV0aG9kMiwgaGVfbWV0aG9kMV0KKworCitkZWYgdGVzdF9ob29rc3Bl
YyhwbSk6CisgICAgY2xhc3MgSG9va1NwZWMob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjKCkK
KyAgICAgICAgZGVmIGhlX215aG9vazEoYXJnMSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAg
ICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgICAgIGRlZiBoZV9teWhvb2syKGFy
ZzEpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1G
YWxzZSkKKyAgICAgICAgZGVmIGhlX215aG9vazMoYXJnMSk6CisgICAgICAgICAgICBwYXNzCisK
KyAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tTcGVjKQorICAgIGFzc2VydCBub3QgcG0uaG9vay5o
ZV9teWhvb2sxLnNwZWNfb3B0c1siZmlyc3RyZXN1bHQiXQorICAgIGFzc2VydCBwbS5ob29rLmhl
X215aG9vazIuc3BlY19vcHRzWyJmaXJzdHJlc3VsdCJdCisgICAgYXNzZXJ0IG5vdCBwbS5ob29r
LmhlX215aG9vazMuc3BlY19vcHRzWyJmaXJzdHJlc3VsdCJdCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCduYW1lJywgWyJob29rd3JhcHBlciIsICJvcHRpb25hbGhvb2siLCAidHJ5Zmly
c3QiLCAidHJ5bGFzdCJdKQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd2YWwnLCBbVHJ1ZSwg
RmFsc2VdKQorZGVmIHRlc3RfaG9va2ltcGwobmFtZSwgdmFsKToKKyAgICBAaG9va2ltcGwoKip7
bmFtZTogdmFsfSkKKyAgICBkZWYgaGVfbXlob29rMShhcmcxKToKKyAgICAgICAgcGFzcworICAg
IGlmIHZhbDoKKyAgICAgICAgYXNzZXJ0IGhlX215aG9vazEuZXhhbXBsZV9pbXBsLmdldChuYW1l
KQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihoZV9teWhvb2sxLCBuYW1l
KQorCisKK2RlZiB0ZXN0X2xvYWRfc2V0dXB0b29sc19pbnN0YW50aWF0aW9uKG1vbmtleXBhdGNo
LCBwbSk6CisgICAgcGtnX3Jlc291cmNlcyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNv
dXJjZXMiKQorCisgICAgZGVmIG15X2l0ZXIobmFtZSk6CisgICAgICAgIGFzc2VydCBuYW1lID09
ICJoZWxsbyIKKworICAgICAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6CisgICAgICAgICAg
ICBuYW1lID0gIm15bmFtZSIKKyAgICAgICAgICAgIGRpc3QgPSBOb25lCisKKyAgICAgICAgICAg
IGRlZiBsb2FkKHNlbGYpOgorICAgICAgICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmpl
Y3QpOgorICAgICAgICAgICAgICAgICAgICB4ID0gNDIKKyAgICAgICAgICAgICAgICByZXR1cm4g
UHNldWRvUGx1Z2luKCkKKworICAgICAgICByZXR1cm4gaXRlcihbRW50cnlQb2ludCgpXSkKKwor
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgJ2l0ZXJfZW50cnlfcG9pbnRz
JywgbXlfaXRlcikKKyAgICBudW0gPSBwbS5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoImhl
bGxvIikKKyAgICBhc3NlcnQgbnVtID09IDEKKyAgICBwbHVnaW4gPSBwbS5nZXRfcGx1Z2luKCJt
eW5hbWUiKQorICAgIGFzc2VydCBwbHVnaW4ueCA9PSA0MgorICAgIGFzc2VydCBwbS5saXN0X3Bs
dWdpbl9kaXN0aW5mbygpID09IFsocGx1Z2luLCBOb25lKV0KKworCitkZWYgdGVzdF9sb2FkX3Nl
dHVwdG9vbHNfbm90X2luc3RhbGxlZChtb25rZXlwYXRjaCwgcG0pOgorICAgIG1vbmtleXBhdGNo
LnNldGl0ZW0oCisgICAgICAgIHN5cy5tb2R1bGVzLCAncGtnX3Jlc291cmNlcycsCisgICAgICAg
IHR5cGVzLk1vZHVsZVR5cGUoInBrZ19yZXNvdXJjZXMiKSkKKworICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgIHBtLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50
cygicXdlIikKKworCitkZWYgdGVzdF9hZGRfdHJhY2VmdW5jcyhoZV9wbSk6CisgICAgb3V0ID0g
W10KKworICAgIGNsYXNzIGFwaTEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAg
IGRlZiBoZV9tZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgb3V0LmFwcGVuZCgiaGVfbWV0aG9k
MS1hcGkxIikKKworICAgIGNsYXNzIGFwaTIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisg
ICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgb3V0LmFwcGVuZCgiaGVf
bWV0aG9kMS1hcGkyIikKKworICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTEoKSkKKyAgICBoZV9wbS5y
ZWdpc3RlcihhcGkyKCkpCisKKyAgICBkZWYgYmVmb3JlKGhvb2tfbmFtZSwgaG9va19pbXBscywg
a3dhcmdzKToKKyAgICAgICAgb3V0LmFwcGVuZCgoaG9va19uYW1lLCBsaXN0KGhvb2tfaW1wbHMp
LCBrd2FyZ3MpKQorCisgICAgZGVmIGFmdGVyKG91dGNvbWUsIGhvb2tfbmFtZSwgaG9va19pbXBs
cywga3dhcmdzKToKKyAgICAgICAgb3V0LmFwcGVuZCgob3V0Y29tZSwgaG9va19uYW1lLCBsaXN0
KGhvb2tfaW1wbHMpLCBrd2FyZ3MpKQorCisgICAgdW5kbyA9IGhlX3BtLmFkZF9ob29rY2FsbF9t
b25pdG9yaW5nKGJlZm9yZSwgYWZ0ZXIpCisKKyAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEoYXJn
PTEpCisgICAgYXNzZXJ0IGxlbihvdXQpID09IDQKKyAgICBhc3NlcnQgb3V0WzBdWzBdID09ICJo
ZV9tZXRob2QxIgorICAgIGFzc2VydCBsZW4ob3V0WzBdWzFdKSA9PSAyCisgICAgYXNzZXJ0IGlz
aW5zdGFuY2Uob3V0WzBdWzJdLCBkaWN0KQorICAgIGFzc2VydCBvdXRbMV0gPT0gImhlX21ldGhv
ZDEtYXBpMiIKKyAgICBhc3NlcnQgb3V0WzJdID09ICJoZV9tZXRob2QxLWFwaTEiCisgICAgYXNz
ZXJ0IGxlbihvdXRbM10pID09IDQKKyAgICBhc3NlcnQgb3V0WzNdWzFdID09IG91dFswXVswXQor
CisgICAgdW5kbygpCisgICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQorICAgIGFzc2Vy
dCBsZW4ob3V0KSA9PSA0ICsgMgorCisKK2RlZiB0ZXN0X2hvb2tfdHJhY2luZyhoZV9wbSk6Cisg
ICAgc2F2ZWluZGVudCA9IFtdCisKKyAgICBjbGFzcyBhcGkxKG9iamVjdCk6CisgICAgICAgIEBo
b29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAgIHNhdmVp
bmRlbnQuYXBwZW5kKGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50KQorCisgICAgY2xhc3MgYXBpMihv
YmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZik6
CisgICAgICAgICAgICBzYXZlaW5kZW50LmFwcGVuZChoZV9wbS50cmFjZS5yb290LmluZGVudCkK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorCisgICAgaGVfcG0ucmVnaXN0ZXIoYXBp
MSgpKQorICAgIG91dCA9IFtdCisgICAgaGVfcG0udHJhY2Uucm9vdC5zZXR3cml0ZXIob3V0LmFw
cGVuZCkKKyAgICB1bmRvID0gaGVfcG0uZW5hYmxlX3RyYWNpbmcoKQorICAgIHRyeToKKyAgICAg
ICAgaW5kZW50ID0gaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQKKyAgICAgICAgaGVfcG0uaG9vay5o
ZV9tZXRob2QxKGFyZz0xKQorICAgICAgICBhc3NlcnQgaW5kZW50ID09IGhlX3BtLnRyYWNlLnJv
b3QuaW5kZW50CisgICAgICAgIGFzc2VydCBsZW4ob3V0KSA9PSAyCisgICAgICAgIGFzc2VydCAn
aGVfbWV0aG9kMScgaW4gb3V0WzBdCisgICAgICAgIGFzc2VydCAnZmluaXNoJyBpbiBvdXRbMV0K
KworICAgICAgICBvdXRbOl0gPSBbXQorICAgICAgICBoZV9wbS5yZWdpc3RlcihhcGkyKCkpCisK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgaGVf
cG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQorICAgICAgICBhc3NlcnQgaGVfcG0udHJhY2Uucm9v
dC5pbmRlbnQgPT0gaW5kZW50CisgICAgICAgIGFzc2VydCBzYXZlaW5kZW50WzBdID4gaW5kZW50
CisgICAgZmluYWxseToKKyAgICAgICAgdW5kbygpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdpbmNsdWRlX2hvb2tzcGVjJywgW1RydWUsIEZhbHNlXSkKK2RlZiB0ZXN0X3ByZWZpeF9o
b29raW1wbChpbmNsdWRlX2hvb2tzcGVjKToKKyAgICBwbSA9IFBsdWdpbk1hbmFnZXIoaG9va3Nw
ZWMucHJvamVjdF9uYW1lLCAiaGVsbG9fIikKKworICAgIGlmIGluY2x1ZGVfaG9va3NwZWM6Cisg
ICAgICAgIGNsYXNzIEhvb2tTcGVjKG9iamVjdCk6CisgICAgICAgICAgICBAaG9va3NwZWMKKyAg
ICAgICAgICAgIGRlZiBoZWxsb19teWhvb2soc2VsZiwgYXJnMSk6CisgICAgICAgICAgICAgICAg
IiIiIGFkZCB0byBhcmcxICIiIgorCisgICAgICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va1NwZWMp
CisKKyAgICBjbGFzcyBQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgZGVmIGhlbGxvX215aG9vayhz
ZWxmLCBhcmcxKToKKyAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQorCisgICAgcG0ucmVnaXN0
ZXIoUGx1Z2luKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisgICAgcmVzdWx0cyA9IHBt
Lmhvb2suaGVsbG9fbXlob29rKGFyZzE9MTcpCisgICAgYXNzZXJ0IHJlc3VsdHMgPT0gWzE4LCAx
OF0KKworCitkZWYgdGVzdF9wcmVmaXhfaG9va2ltcGxfZG9udG1hdGNoX21vZHVsZSgpOgorICAg
IHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUsICJoZWxsb18iKQorCisg
ICAgY2xhc3MgQmFkUGx1Z2luKG9iamVjdCk6CisgICAgICAgIGhlbGxvX21vZHVsZSA9IF9faW1w
b3J0X18oJ2VtYWlsJykKKworICAgIHBtLnJlZ2lzdGVyKEJhZFBsdWdpbigpKQorICAgIHBtLmNo
ZWNrX3BlbmRpbmcoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRp
Y2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tdWx0aWNhbGwucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODYwYTIwOWI2NjkwZTYxMzhlNzdlODc2ODc3ZDI5YTBiMzY3YjNlNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tdWx0aWNhbGwucHkKQEAgLTAsMCArMSwx
OTQgQEAKK2ltcG9ydCBweXRlc3QKKworZnJvbSBwbHVnZ3kgaW1wb3J0IF9tdWx0aWNhbGwsIF9s
ZWdhY3ltdWx0aWNhbGwsIEhvb2tJbXBsLCBIb29rQ2FsbEVycm9yCitmcm9tIHBsdWdneS5jYWxs
ZXJzIGltcG9ydCBfTGVnYWN5TXVsdGlDYWxsCitmcm9tIHBsdWdneSBpbXBvcnQgSG9va3NwZWNN
YXJrZXIsIEhvb2tpbXBsTWFya2VyCisKKworaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhh
bXBsZSIpCitob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKKworCitkZWYgdGVz
dF91c2VzX2NvcHlfb2ZfbWV0aG9kcygpOgorICAgIG91dCA9IFtsYW1iZGE6IDQyXQorICAgIG1j
ID0gX0xlZ2FjeU11bHRpQ2FsbChvdXQsIHt9KQorICAgIHJlcHIobWMpCisgICAgb3V0WzpdID0g
W10KKyAgICByZXMgPSBtYy5leGVjdXRlKCkKKyAgICByZXR1cm4gcmVzID09IDQyCisKKworZGVm
IE1DKG1ldGhvZHMsIGt3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgIGNhbGxlciA9IF9t
dWx0aWNhbGwKKyAgICBob29rZnVuY3MgPSBbXQorICAgIGZvciBtZXRob2QgaW4gbWV0aG9kczoK
KyAgICAgICAgZiA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBtZXRob2QsIG1ldGhvZC5leGFt
cGxlX2ltcGwpCisgICAgICAgIGhvb2tmdW5jcy5hcHBlbmQoZikKKyAgICAgICAgaWYgJ19fbXVs
dGljYWxsX18nIGluIGYuYXJnbmFtZXM6CisgICAgICAgICAgICBjYWxsZXIgPSBfbGVnYWN5bXVs
dGljYWxsCisgICAgcmV0dXJuIGNhbGxlcihob29rZnVuY3MsIGt3YXJncywgZmlyc3RyZXN1bHQ9
Zmlyc3RyZXN1bHQpCisKKworZGVmIHRlc3RfY2FsbF9wYXNzaW5nKCk6CisgICAgY2xhc3MgUDEo
b2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBtKHNlbGYsIF9fbXVsdGlj
YWxsX18sIHgpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihfX211bHRpY2FsbF9fLnJlc3VsdHMp
ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBub3QgX19tdWx0aWNhbGxfXy5ob29rX2ltcGxzCisg
ICAgICAgICAgICByZXR1cm4gMTcKKworICAgIGNsYXNzIFAyKG9iamVjdCk6CisgICAgICAgIEBo
b29raW1wbAorICAgICAgICBkZWYgbShzZWxmLCBfX211bHRpY2FsbF9fLCB4KToKKyAgICAgICAg
ICAgIGFzc2VydCBfX211bHRpY2FsbF9fLnJlc3VsdHMgPT0gW10KKyAgICAgICAgICAgIGFzc2Vy
dCBfX211bHRpY2FsbF9fLmhvb2tfaW1wbHMKKyAgICAgICAgICAgIHJldHVybiAyMworCisgICAg
cDEgPSBQMSgpCisgICAgcDIgPSBQMigpCisgICAgcmVzbGlzdCA9IE1DKFtwMS5tLCBwMi5tXSwg
eyJ4IjogMjN9KQorICAgIGFzc2VydCBsZW4ocmVzbGlzdCkgPT0gMgorICAgICMgZW5zdXJlIHJl
dmVyc2VkIG9yZGVyCisgICAgYXNzZXJ0IHJlc2xpc3QgPT0gWzIzLCAxN10KKworCitkZWYgdGVz
dF9rZXl3b3JkX2FyZ3MoKToKKyAgICBAaG9va2ltcGwKKyAgICBkZWYgZih4KToKKyAgICAgICAg
cmV0dXJuIHggKyAxCisKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAor
ICAgICAgICBkZWYgZihzZWxmLCB4LCB5KToKKyAgICAgICAgICAgIHJldHVybiB4ICsgeQorCisg
ICAgcmVzbGlzdCA9IE1DKFtmLCBBKCkuZl0sIGRpY3QoeD0yMywgeT0yNCkpCisgICAgYXNzZXJ0
IHJlc2xpc3QgPT0gWzI0ICsgMjMsIDI0XQorCisKK2RlZiB0ZXN0X2tleXdvcmRfYXJnc193aXRo
X2RlZmF1bHRhcmdzKCk6CisgICAgQGhvb2tpbXBsCisgICAgZGVmIGYoeCwgej0xKToKKyAgICAg
ICAgcmV0dXJuIHggKyB6CisgICAgcmVzbGlzdCA9IE1DKFtmXSwgZGljdCh4PTIzLCB5PTI0KSkK
KyAgICBhc3NlcnQgcmVzbGlzdCA9PSBbMjRdCisKKworZGVmIHRlc3RfdGFnc19jYWxsX2Vycm9y
KCk6CisgICAgQGhvb2tpbXBsCisgICAgZGVmIGYoeCk6CisgICAgICAgIHJldHVybiB4CisgICAg
d2l0aCBweXRlc3QucmFpc2VzKEhvb2tDYWxsRXJyb3IpOgorICAgICAgICBNQyhbZl0sIHt9KQor
CisKK2RlZiB0ZXN0X2NhbGxfc3ViZXhlY3V0ZSgpOgorICAgIEBob29raW1wbAorICAgIGRlZiBt
KF9fbXVsdGljYWxsX18pOgorICAgICAgICBzdWJyZXN1bHQgPSBfX211bHRpY2FsbF9fLmV4ZWN1
dGUoKQorICAgICAgICByZXR1cm4gc3VicmVzdWx0ICsgMQorCisgICAgQGhvb2tpbXBsCisgICAg
ZGVmIG4oKToKKyAgICAgICAgcmV0dXJuIDEKKworICAgIHJlcyA9IE1DKFtuLCBtXSwge30sIGZp
cnN0cmVzdWx0PVRydWUpCisgICAgYXNzZXJ0IHJlcyA9PSAyCisKKworZGVmIHRlc3RfY2FsbF9u
b25lX2lzX25vX3Jlc3VsdCgpOgorICAgIEBob29raW1wbAorICAgIGRlZiBtMSgpOgorICAgICAg
ICByZXR1cm4gMQorCisgICAgQGhvb2tpbXBsCisgICAgZGVmIG0yKCk6CisgICAgICAgIHJldHVy
biBOb25lCisKKyAgICByZXMgPSBNQyhbbTEsIG0yXSwge30sIGZpcnN0cmVzdWx0PVRydWUpCisg
ICAgYXNzZXJ0IHJlcyA9PSAxCisgICAgcmVzID0gTUMoW20xLCBtMl0sIHt9LCB7fSkKKyAgICBh
c3NlcnQgcmVzID09IFsxXQorCisKK2RlZiB0ZXN0X2hvb2t3cmFwcGVyKCk6CisgICAgb3V0ID0g
W10KKworICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBtMSgpOgorICAg
ICAgICBvdXQuYXBwZW5kKCJtMSBpbml0IikKKyAgICAgICAgeWllbGQgTm9uZQorICAgICAgICBv
dXQuYXBwZW5kKCJtMSBmaW5pc2giKQorCisgICAgQGhvb2tpbXBsCisgICAgZGVmIG0yKCk6Cisg
ICAgICAgIG91dC5hcHBlbmQoIm0yIikKKyAgICAgICAgcmV0dXJuIDIKKworICAgIHJlcyA9IE1D
KFttMiwgbTFdLCB7fSkKKyAgICBhc3NlcnQgcmVzID09IFsyXQorICAgIGFzc2VydCBvdXQgPT0g
WyJtMSBpbml0IiwgIm0yIiwgIm0xIGZpbmlzaCJdCisgICAgb3V0WzpdID0gW10KKyAgICByZXMg
PSBNQyhbbTIsIG0xXSwge30sIGZpcnN0cmVzdWx0PVRydWUpCisgICAgYXNzZXJ0IHJlcyA9PSAy
CisgICAgYXNzZXJ0IG91dCA9PSBbIm0xIGluaXQiLCAibTIiLCAibTEgZmluaXNoIl0KKworCitk
ZWYgdGVzdF9ob29rd3JhcHBlcl9vcmRlcigpOgorICAgIG91dCA9IFtdCisKKyAgICBAaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgbTEoKToKKyAgICAgICAgb3V0LmFwcGVuZCgi
bTEgaW5pdCIpCisgICAgICAgIHlpZWxkIDEKKyAgICAgICAgb3V0LmFwcGVuZCgibTEgZmluaXNo
IikKKworICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBtMigpOgorICAg
ICAgICBvdXQuYXBwZW5kKCJtMiBpbml0IikKKyAgICAgICAgeWllbGQgMgorICAgICAgICBvdXQu
YXBwZW5kKCJtMiBmaW5pc2giKQorCisgICAgcmVzID0gTUMoW20yLCBtMV0sIHt9KQorICAgIGFz
c2VydCByZXMgPT0gW10KKyAgICBhc3NlcnQgb3V0ID09IFsibTEgaW5pdCIsICJtMiBpbml0Iiwg
Im0yIGZpbmlzaCIsICJtMSBmaW5pc2giXQorCisKK2RlZiB0ZXN0X2hvb2t3cmFwcGVyX25vdF95
aWVsZCgpOgorICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBtMSgpOgor
ICAgICAgICBwYXNzCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAg
ICAgTUMoW20xXSwge30pCisKKworZGVmIHRlc3RfaG9va3dyYXBwZXJfdG9vX21hbnlfeWllbGQo
KToKKyAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgbTEoKToKKyAgICAg
ICAgeWllbGQgMQorICAgICAgICB5aWVsZCAyCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoUnVu
dGltZUVycm9yKSBhcyBleDoKKyAgICAgICAgTUMoW20xXSwge30pCisgICAgYXNzZXJ0ICJtMSIg
aW4gc3RyKGV4LnZhbHVlKQorICAgIGFzc2VydCAoX19maWxlX18gKyAnOicpIGluIHN0cihleC52
YWx1ZSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImV4YyIsIFtWYWx1ZUVycm9yLCBT
eXN0ZW1FeGl0XSkKK2RlZiB0ZXN0X2hvb2t3cmFwcGVyX2V4Y2VwdGlvbihleGMpOgorICAgIG91
dCA9IFtdCisKKyAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgbTEoKToK
KyAgICAgICAgb3V0LmFwcGVuZCgibTEgaW5pdCIpCisgICAgICAgIHlpZWxkIE5vbmUKKyAgICAg
ICAgb3V0LmFwcGVuZCgibTEgZmluaXNoIikKKworICAgIEBob29raW1wbAorICAgIGRlZiBtMigp
OgorICAgICAgICByYWlzZSBleGMKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhleGMpOgorICAg
ICAgICBNQyhbbTIsIG0xXSwge30pCisgICAgYXNzZXJ0IG91dCA9PSBbIm0xIGluaXQiLCAibTEg
ZmluaXNoIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5h
Z2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTJjODZjYzY0NDI2YjEzNjk4MGE4OTgxNGI1NjhlYmRiOTZkYjg5ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5CkBAIC0w
LDAgKzEsMzc0IEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgdHlwZXMKKworZnJvbSBwbHVnZ3kg
aW1wb3J0IChQbHVnaW5WYWxpZGF0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgIEhvb2tD
YWxsRXJyb3IsIEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlcikKKworCitob29rc3BlYyA9
IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4
YW1wbGUiKQorCisKK2RlZiB0ZXN0X3BsdWdpbl9kb3VibGVfcmVnaXN0ZXIocG0pOgorICAgIHBt
LnJlZ2lzdGVyKDQyLCBuYW1lPSJhYmMiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKToKKyAgICAgICAgcG0ucmVnaXN0ZXIoNDIsIG5hbWU9ImFiYyIpCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICBwbS5yZWdpc3Rlcig0MiwgbmFtZT0iZGVm
IikKKworCitkZWYgdGVzdF9wbShwbSk6CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBw
YXNzCisKKyAgICBhMSwgYTIgPSBBKCksIEEoKQorICAgIHBtLnJlZ2lzdGVyKGExKQorICAgIGFz
c2VydCBwbS5pc19yZWdpc3RlcmVkKGExKQorICAgIHBtLnJlZ2lzdGVyKGEyLCAiaGVsbG8iKQor
ICAgIGFzc2VydCBwbS5pc19yZWdpc3RlcmVkKGEyKQorICAgIG91dCA9IHBtLmdldF9wbHVnaW5z
KCkKKyAgICBhc3NlcnQgYTEgaW4gb3V0CisgICAgYXNzZXJ0IGEyIGluIG91dAorICAgIGFzc2Vy
dCBwbS5nZXRfcGx1Z2luKCdoZWxsbycpID09IGEyCisgICAgYXNzZXJ0IHBtLnVucmVnaXN0ZXIo
YTEpID09IGExCisgICAgYXNzZXJ0IG5vdCBwbS5pc19yZWdpc3RlcmVkKGExKQorCisgICAgb3V0
ID0gcG0ubGlzdF9uYW1lX3BsdWdpbigpCisgICAgYXNzZXJ0IGxlbihvdXQpID09IDEKKyAgICBh
c3NlcnQgb3V0ID09IFsoImhlbGxvIiwgYTIpXQorCisKK2RlZiB0ZXN0X2hhc19wbHVnaW4ocG0p
OgorICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAgYTEgPSBBKCkKKyAg
ICBwbS5yZWdpc3RlcihhMSwgJ2hlbGxvJykKKyAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChh
MSkKKyAgICBhc3NlcnQgcG0uaGFzX3BsdWdpbignaGVsbG8nKQorCisKK2RlZiB0ZXN0X3JlZ2lz
dGVyX2R5bmFtaWNfYXR0cihoZV9wbSk6CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBk
ZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgICAgICBpZiBuYW1lWzBdICE9ICJf
IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0
ZUVycm9yKCkKKworICAgIGEgPSBBKCkKKyAgICBoZV9wbS5yZWdpc3RlcihhKQorICAgIGFzc2Vy
dCBub3QgaGVfcG0uZ2V0X2hvb2tjYWxsZXJzKGEpCisKKworZGVmIHRlc3RfcG1fbmFtZShwbSk6
CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBhMSA9IEEoKQorICAg
IG5hbWUgPSBwbS5yZWdpc3RlcihhMSwgbmFtZT0iaGVsbG8iKQorICAgIGFzc2VydCBuYW1lID09
ICJoZWxsbyIKKyAgICBwbS51bnJlZ2lzdGVyKGExKQorICAgIGFzc2VydCBwbS5nZXRfcGx1Z2lu
KGExKSBpcyBOb25lCisgICAgYXNzZXJ0IG5vdCBwbS5pc19yZWdpc3RlcmVkKGExKQorICAgIGFz
c2VydCBub3QgcG0uZ2V0X3BsdWdpbnMoKQorICAgIG5hbWUyID0gcG0ucmVnaXN0ZXIoYTEsIG5h
bWU9ImhlbGxvIikKKyAgICBhc3NlcnQgbmFtZTIgPT0gbmFtZQorICAgIHBtLnVucmVnaXN0ZXIo
bmFtZT0iaGVsbG8iKQorICAgIGFzc2VydCBwbS5nZXRfcGx1Z2luKGExKSBpcyBOb25lCisgICAg
YXNzZXJ0IG5vdCBwbS5pc19yZWdpc3RlcmVkKGExKQorICAgIGFzc2VydCBub3QgcG0uZ2V0X3Bs
dWdpbnMoKQorCisKK2RlZiB0ZXN0X3NldF9ibG9ja2VkKHBtKToKKyAgICBjbGFzcyBBKG9iamVj
dCk6CisgICAgICAgIHBhc3MKKworICAgIGExID0gQSgpCisgICAgbmFtZSA9IHBtLnJlZ2lzdGVy
KGExKQorICAgIGFzc2VydCBwbS5pc19yZWdpc3RlcmVkKGExKQorICAgIGFzc2VydCBub3QgcG0u
aXNfYmxvY2tlZChuYW1lKQorICAgIHBtLnNldF9ibG9ja2VkKG5hbWUpCisgICAgYXNzZXJ0IHBt
LmlzX2Jsb2NrZWQobmFtZSkKKyAgICBhc3NlcnQgbm90IHBtLmlzX3JlZ2lzdGVyZWQoYTEpCisK
KyAgICBwbS5zZXRfYmxvY2tlZCgic29tZW5hbWUiKQorICAgIGFzc2VydCBwbS5pc19ibG9ja2Vk
KCJzb21lbmFtZSIpCisgICAgYXNzZXJ0IG5vdCBwbS5yZWdpc3RlcihBKCksICJzb21lbmFtZSIp
CisgICAgcG0udW5yZWdpc3RlcihuYW1lPSJzb21lbmFtZSIpCisgICAgYXNzZXJ0IHBtLmlzX2Js
b2NrZWQoInNvbWVuYW1lIikKKworCitkZWYgdGVzdF9yZWdpc3Rlcl9taXNtYXRjaF9tZXRob2Qo
aGVfcG0pOgorICAgIGNsYXNzIGhlbGxvKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAg
ICAgICBkZWYgaGVfbWV0aG9kX25vdGV4aXN0cyhzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKwor
ICAgIGhlX3BtLnJlZ2lzdGVyKGhlbGxvKCkpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFBsdWdp
blZhbGlkYXRpb25FcnJvcik6CisgICAgICAgIGhlX3BtLmNoZWNrX3BlbmRpbmcoKQorCisKK2Rl
ZiB0ZXN0X3JlZ2lzdGVyX21pc21hdGNoX2FyZyhoZV9wbSk6CisgICAgY2xhc3MgaGVsbG8ob2Jq
ZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIHFs
d2tqZSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoUGx1Z2lu
VmFsaWRhdGlvbkVycm9yKToKKyAgICAgICAgaGVfcG0ucmVnaXN0ZXIoaGVsbG8oKSkKKworCitk
ZWYgdGVzdF9yZWdpc3RlcihwbSk6CisgICAgY2xhc3MgTXlQbHVnaW4ob2JqZWN0KToKKyAgICAg
ICAgcGFzcworICAgIG15ID0gTXlQbHVnaW4oKQorICAgIHBtLnJlZ2lzdGVyKG15KQorICAgIGFz
c2VydCBteSBpbiBwbS5nZXRfcGx1Z2lucygpCisgICAgbXkyID0gTXlQbHVnaW4oKQorICAgIHBt
LnJlZ2lzdGVyKG15MikKKyAgICBhc3NlcnQgc2V0KFtteSwgbXkyXSkuaXNzdWJzZXQocG0uZ2V0
X3BsdWdpbnMoKSkKKworICAgIGFzc2VydCBwbS5pc19yZWdpc3RlcmVkKG15KQorICAgIGFzc2Vy
dCBwbS5pc19yZWdpc3RlcmVkKG15MikKKyAgICBwbS51bnJlZ2lzdGVyKG15KQorICAgIGFzc2Vy
dCBub3QgcG0uaXNfcmVnaXN0ZXJlZChteSkKKyAgICBhc3NlcnQgbXkgbm90IGluIHBtLmdldF9w
bHVnaW5zKCkKKworCitkZWYgdGVzdF9yZWdpc3Rlcl91bmtub3duX2hvb2tzKHBtKToKKyAgICBj
bGFzcyBQbHVnaW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVf
bWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEKKworICAgIHBu
YW1lID0gcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorCisgICAgY2xhc3MgSG9va3Mob2JqZWN0KToK
KyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tzKQorICAgICMgYXNz
ZXJ0IG5vdCBwbS5fdW52ZXJpZmllZF9ob29rcworICAgIGFzc2VydCBwbS5ob29rLmhlX21ldGhv
ZDEoYXJnPTEpID09IFsyXQorICAgIGFzc2VydCBsZW4ocG0uZ2V0X2hvb2tjYWxsZXJzKHBtLmdl
dF9wbHVnaW4ocG5hbWUpKSkgPT0gMQorCisKK2RlZiB0ZXN0X3JlZ2lzdGVyX2hpc3RvcmljKHBt
KToKKyAgICBjbGFzcyBIb29rcyhvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMoaGlzdG9yaWM9
VHJ1ZSkKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHBh
c3MKKyAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tzKQorCisgICAgcG0uaG9vay5oZV9tZXRob2Qx
LmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QoYXJnPTEpKQorICAgIG91dCA9IFtdCisKKyAgICBj
bGFzcyBQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9t
ZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBvdXQuYXBwZW5kKGFyZykKKworICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbigpKQorICAgIGFzc2VydCBvdXQgPT0gWzFdCisKKyAgICBjbGFzcyBQ
bHVnaW4yKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9k
MShzZWxmLCBhcmcpOgorICAgICAgICAgICAgb3V0LmFwcGVuZChhcmcgKiAxMCkKKworICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjIoKSkKKyAgICBhc3NlcnQgb3V0ID09IFsxLCAxMF0KKyAgICBwbS5o
b29rLmhlX21ldGhvZDEuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdChhcmc9MTIpKQorICAgIGFz
c2VydCBvdXQgPT0gWzEsIDEwLCAxMjAsIDEyXQorCisKK2RlZiB0ZXN0X3dpdGhfcmVzdWx0X21l
bW9yaXplZChwbSk6CisgICAgY2xhc3MgSG9va3Mob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVj
KGhpc3RvcmljPVRydWUpCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICBwYXNzCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKworICAgIGhlX21ldGhv
ZDEgPSBwbS5ob29rLmhlX21ldGhvZDEKKyAgICBoZV9tZXRob2QxLmNhbGxfaGlzdG9yaWMobGFt
YmRhIHJlczogb3V0LmFwcGVuZChyZXMpLCBkaWN0KGFyZz0xKSkKKyAgICBvdXQgPSBbXQorCisg
ICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYg
aGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDEwCisKKyAg
ICBwbS5yZWdpc3RlcihQbHVnaW4oKSkKKyAgICBhc3NlcnQgb3V0ID09IFsxMF0KKworCitkZWYg
dGVzdF93aXRoX2NhbGxiYWNrc19pbW1lZGlhdGVseV9leGVjdXRlZChwbSk6CisgICAgY2xhc3Mg
SG9va3Mob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCisgICAgICAg
IGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBwYXNzCisgICAgcG0uYWRk
X2hvb2tzcGVjcyhIb29rcykKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAg
QGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAg
ICByZXR1cm4gYXJnICogMTAKKworICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAg
QGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAg
ICByZXR1cm4gYXJnICogMjAKKworICAgIGNsYXNzIFBsdWdpbjMob2JqZWN0KToKKyAgICAgICAg
QGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAg
ICByZXR1cm4gYXJnICogMzAKKworICAgIG91dCA9IFtdCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2lu
MSgpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIoKSkKKworICAgIGhlX21ldGhvZDEgPSBwbS5o
b29rLmhlX21ldGhvZDEKKyAgICBoZV9tZXRob2QxLmNhbGxfaGlzdG9yaWMobGFtYmRhIHJlczog
b3V0LmFwcGVuZChyZXMpLCBkaWN0KGFyZz0xKSkKKyAgICBhc3NlcnQgb3V0ID09IFsyMCwgMTBd
CisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMygpKQorICAgIGFzc2VydCBvdXQgPT0gWzIwLCAxMCwg
MzBdCisKKworZGVmIHRlc3RfcmVnaXN0ZXJfaGlzdG9yaWNfaW5jb21wYXRfaG9va3dyYXBwZXIo
cG0pOgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyhoaXN0b3Jp
Yz1UcnVlKQorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAg
cGFzcworCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKworICAgIG91dCA9IFtdCisKKyAg
ICBjbGFzcyBQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRy
dWUpCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBvdXQu
YXBwZW5kKGFyZykKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJy
b3IpOgorICAgICAgICBwbS5yZWdpc3RlcihQbHVnaW4oKSkKKworCitkZWYgdGVzdF9jYWxsX2V4
dHJhKHBtKToKKyAgICBjbGFzcyBIb29rcyhvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMKKyAg
ICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHBhc3MKKworICAg
IHBtLmFkZF9ob29rc3BlY3MoSG9va3MpCisKKyAgICBkZWYgaGVfbWV0aG9kMShhcmcpOgorICAg
ICAgICByZXR1cm4gYXJnICogMTAKKworICAgIG91dCA9IHBtLmhvb2suaGVfbWV0aG9kMS5jYWxs
X2V4dHJhKFtoZV9tZXRob2QxXSwgZGljdChhcmc9MSkpCisgICAgYXNzZXJ0IG91dCA9PSBbMTBd
CisKKworZGVmIHRlc3RfY2FsbF93aXRoX3Rvb19mZXdfYXJncyhwbSk6CisgICAgY2xhc3MgSG9v
a3Mob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNl
bGYsIGFyZyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tz
KQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAg
ICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIDAgLyAwCisgICAgcG0u
cmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIb29rQ2FsbEVycm9y
KToKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcpOgorICAgICAgICAgICAg
cG0uaG9vay5oZV9tZXRob2QxKCkKKworCitkZWYgdGVzdF9zdWJzZXRfaG9va19jYWxsZXIocG0p
OgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBk
ZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgcG0uYWRk
X2hvb2tzcGVjcyhIb29rcykKKworICAgIG91dCA9IFtdCisKKyAgICBjbGFzcyBQbHVnaW4xKG9i
amVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBh
cmcpOgorICAgICAgICAgICAgb3V0LmFwcGVuZChhcmcpCisKKyAgICBjbGFzcyBQbHVnaW4yKG9i
amVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBh
cmcpOgorICAgICAgICAgICAgb3V0LmFwcGVuZChhcmcgKiAxMCkKKworICAgIGNsYXNzIFBsdWdp
bk5vKG9iamVjdCk6CisgICAgICAgIHBhc3MKKworICAgIHBsdWdpbjEsIHBsdWdpbjIsIHBsdWdp
bjMgPSBQbHVnaW4xKCksIFBsdWdpbjIoKSwgUGx1Z2luTm8oKQorICAgIHBtLnJlZ2lzdGVyKHBs
dWdpbjEpCisgICAgcG0ucmVnaXN0ZXIocGx1Z2luMikKKyAgICBwbS5yZWdpc3RlcihwbHVnaW4z
KQorICAgIHBtLmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICBhc3NlcnQgb3V0ID09IFsxMCwg
MV0KKyAgICBvdXRbOl0gPSBbXQorCisgICAgaGMgPSBwbS5zdWJzZXRfaG9va19jYWxsZXIoImhl
X21ldGhvZDEiLCBbcGx1Z2luMV0pCisgICAgaGMoYXJnPTIpCisgICAgYXNzZXJ0IG91dCA9PSBb
MjBdCisgICAgb3V0WzpdID0gW10KKworICAgIGhjID0gcG0uc3Vic2V0X2hvb2tfY2FsbGVyKCJo
ZV9tZXRob2QxIiwgW3BsdWdpbjJdKQorICAgIGhjKGFyZz0yKQorICAgIGFzc2VydCBvdXQgPT0g
WzJdCisgICAgb3V0WzpdID0gW10KKworICAgIHBtLnVucmVnaXN0ZXIocGx1Z2luMSkKKyAgICBo
Yyhhcmc9MikKKyAgICBhc3NlcnQgb3V0ID09IFtdCisgICAgb3V0WzpdID0gW10KKworICAgIHBt
Lmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICBhc3NlcnQgb3V0ID09IFsxMF0KKworCitkZWYg
dGVzdF9tdWx0aWNhbGxfZGVwcmVjYXRlZChwbSk6CisgICAgY2xhc3MgUDEob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBtKHNlbGYsIF9fbXVsdGljYWxsX18sIHgpOgor
ICAgICAgICAgICAgcGFzcworCisgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChwbS5yZWdpc3Rl
ciwgUDEoKSkKKworCitkZWYgdGVzdF9hZGRfaG9va3NwZWNzX25vaG9va3MocG0pOgorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgcG0uYWRkX2hvb2tzcGVjcygx
MCkKKworCitkZWYgdGVzdF9yZWplY3RfcHJlZml4ZWRfbW9kdWxlKHBtKToKKyAgICAiIiJWZXJp
ZnkgdGhhdCBhIG1vZHVsZSB0eXBlIGF0dHJpYnV0ZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9qZWN0
CisgICAgcHJlZml4IGluIGl0cyBuYW1lIChpbiB0aGlzIGNhc2UgYCdleGFtcGxlXyonYCBpc24n
dCBjb2xsZWN0ZWQKKyAgICB3aGVuIHJlZ2lzdGVyaW5nIGEgbW9kdWxlIHdoaWNoIGltcG9ydHMg
aXQuCisgICAgIiIiCisgICAgcG0uX2ltcGxwcmVmaXggPSAnZXhhbXBsZScKKyAgICBjb25mdGVz
dCA9IHR5cGVzLk1vZHVsZVR5cGUoImNvbmZ0ZXN0IikKKyAgICBzcmMgPSAoIiIiCitkZWYgZXhh
bXBsZV9ob29rKCk6CisgICAgcGFzcworIiIiKQorICAgIGV4ZWMoc3JjLCBjb25mdGVzdC5fX2Rp
Y3RfXykKKyAgICBjb25mdGVzdC5leGFtcGxlX2JsYWggPSB0eXBlcy5Nb2R1bGVUeXBlKCJleGFt
cGxlX2JsYWgiKQorICAgIG5hbWUgPSBwbS5yZWdpc3Rlcihjb25mdGVzdCkKKyAgICBhc3NlcnQg
bmFtZSA9PSAnY29uZnRlc3QnCisgICAgYXNzZXJ0IGdldGF0dHIocG0uaG9vaywgJ2V4YW1wbGVf
YmxhaCcsIE5vbmUpIGlzIE5vbmUKKyAgICBhc3NlcnQgZ2V0YXR0cihwbS5ob29rLCAnZXhhbXBs
ZV9ob29rJywgTm9uZSkgICMgY29uZnRlc3QuZXhhbXBsZV9ob29rIHNob3VsZCBiZSBjb2xsZWN0
ZWQKKyAgICBhc3NlcnQgcG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVzdCwgJ2V4YW1wbGVf
YmxhaCcpIGlzIE5vbmUKKyAgICBhc3NlcnQgcG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVz
dCwgJ2V4YW1wbGVfaG9vaycpID09IHt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5n
L3Rlc3RfdHJhY2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YTNlMTZjZWM0MzYzOGNkMDM2MmJkOTQ5ZDQzZDI1OTA5ZDk2ZWY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weQpAQCAtMCwwICsx
LDg5IEBACisKK2Zyb20gcGx1Z2d5IGltcG9ydCBfVGFnVHJhY2VyCisKKworZGVmIHRlc3Rfc2lt
cGxlKCk6CisgICAgcm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQorICAgIGxvZyA9IHJvb3Rsb2dn
ZXIuZ2V0KCJweXRlc3QiKQorICAgIGxvZygiaGVsbG8iKQorICAgIG91dCA9IFtdCisgICAgcm9v
dGxvZ2dlci5zZXR3cml0ZXIob3V0LmFwcGVuZCkKKyAgICBsb2coIndvcmxkIikKKyAgICBhc3Nl
cnQgbGVuKG91dCkgPT0gMQorICAgIGFzc2VydCBvdXRbMF0gPT0gIndvcmxkIFtweXRlc3RdXG4i
CisgICAgc3VibG9nID0gbG9nLmdldCgiY29sbGVjdGlvbiIpCisgICAgc3VibG9nKCJoZWxsbyIp
CisgICAgYXNzZXJ0IG91dFsxXSA9PSAiaGVsbG8gW3B5dGVzdDpjb2xsZWN0aW9uXVxuIgorCisK
K2RlZiB0ZXN0X2luZGVudCgpOgorICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKKyAgICBs
b2cgPSByb290bG9nZ2VyLmdldCgiMSIpCisgICAgb3V0ID0gW10KKyAgICBsb2cucm9vdC5zZXR3
cml0ZXIobGFtYmRhIGFyZzogb3V0LmFwcGVuZChhcmcpKQorICAgIGxvZygiaGVsbG8iKQorICAg
IGxvZy5yb290LmluZGVudCArPSAxCisgICAgbG9nKCJsaW5lMSIpCisgICAgbG9nKCJsaW5lMiIp
CisgICAgbG9nLnJvb3QuaW5kZW50ICs9IDEKKyAgICBsb2coImxpbmUzIikKKyAgICBsb2coImxp
bmU0IikKKyAgICBsb2cucm9vdC5pbmRlbnQgLT0gMQorICAgIGxvZygibGluZTUiKQorICAgIGxv
Zy5yb290LmluZGVudCAtPSAxCisgICAgbG9nKCJsYXN0IikKKyAgICBhc3NlcnQgbGVuKG91dCkg
PT0gNworICAgIG5hbWVzID0gW3hbOngucmZpbmQoJyBbJyldIGZvciB4IGluIG91dF0KKyAgICBh
c3NlcnQgbmFtZXMgPT0gWworICAgICAgICAnaGVsbG8nLCAnICBsaW5lMScsICcgIGxpbmUyJywK
KyAgICAgICAgJyAgICBsaW5lMycsICcgICAgbGluZTQnLCAnICBsaW5lNScsICdsYXN0J10KKwor
CitkZWYgdGVzdF9yZWFkYWJsZV9vdXRwdXRfZGljdGFyZ3MoKToKKyAgICByb290bG9nZ2VyID0g
X1RhZ1RyYWNlcigpCisKKyAgICBvdXQgPSByb290bG9nZ2VyLmZvcm1hdF9tZXNzYWdlKFsndGVz
dCddLCBbMV0pCisgICAgYXNzZXJ0IG91dCA9PSBbJzEgW3Rlc3RdXG4nXQorCisgICAgb3V0MiA9
IHJvb3Rsb2dnZXIuZm9ybWF0X21lc3NhZ2UoWyd0ZXN0J10sIFsndGVzdCcsIHsnYSc6IDF9XSkK
KyAgICBhc3NlcnQgb3V0MiA9PSBbCisgICAgICAgICd0ZXN0IFt0ZXN0XVxuJywKKyAgICAgICAg
JyAgICBhOiAxXG4nCisgICAgXQorCisKK2RlZiB0ZXN0X3NldHByb2Nlc3NvcigpOgorICAgIHJv
b3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKKyAgICBsb2cgPSByb290bG9nZ2VyLmdldCgiMSIpCisg
ICAgbG9nMiA9IGxvZy5nZXQoIjIiKQorICAgIGFzc2VydCBsb2cyLnRhZ3MgPT0gdHVwbGUoIjEy
IikKKyAgICBvdXQgPSBbXQorICAgIHJvb3Rsb2dnZXIuc2V0cHJvY2Vzc29yKHR1cGxlKCIxMiIp
LCBsYW1iZGEgKmFyZ3M6IG91dC5hcHBlbmQoYXJncykpCisgICAgbG9nKCJub3Qgc2VlbiIpCisg
ICAgbG9nMigic2VlbiIpCisgICAgYXNzZXJ0IGxlbihvdXQpID09IDEKKyAgICB0YWdzLCBhcmdz
ID0gb3V0WzBdCisgICAgYXNzZXJ0ICIxIiBpbiB0YWdzCisgICAgYXNzZXJ0ICIyIiBpbiB0YWdz
CisgICAgYXNzZXJ0IGFyZ3MgPT0gKCJzZWVuIiwpCisgICAgbDIgPSBbXQorICAgIHJvb3Rsb2dn
ZXIuc2V0cHJvY2Vzc29yKCIxOjIiLCBsYW1iZGEgKmFyZ3M6IGwyLmFwcGVuZChhcmdzKSkKKyAg
ICBsb2cyKCJzZWVuIikKKyAgICB0YWdzLCBhcmdzID0gbDJbMF0KKyAgICBhc3NlcnQgYXJncyA9
PSAoInNlZW4iLCkKKworCitkZWYgdGVzdF9zZXRteXByb2Nlc3NvcigpOgorICAgIHJvb3Rsb2dn
ZXIgPSBfVGFnVHJhY2VyKCkKKyAgICBsb2cgPSByb290bG9nZ2VyLmdldCgiMSIpCisgICAgbG9n
MiA9IGxvZy5nZXQoIjIiKQorICAgIG91dCA9IFtdCisgICAgbG9nMi5zZXRteXByb2Nlc3Nvcihs
YW1iZGEgKmFyZ3M6IG91dC5hcHBlbmQoYXJncykpCisgICAgbG9nKCJub3Qgc2VlbiIpCisgICAg
YXNzZXJ0IG5vdCBvdXQKKyAgICBsb2cyKDQyKQorICAgIGFzc2VydCBsZW4ob3V0KSA9PSAxCisg
ICAgdGFncywgYXJncyA9IG91dFswXQorICAgIGFzc2VydCAiMSIgaW4gdGFncworICAgIGFzc2Vy
dCAiMiIgaW4gdGFncworICAgIGFzc2VydCBhcmdzID09ICg0MiwpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93M2Mt
aW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGVkY2FlMmMzMjIwZTRlZTYzYTM1ODQzMTUwZDJjOTNh
MGQ3MzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNo
bWFyay5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL3Rlc3RfZGV0YWlscy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9oZWxwZXJz
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tyZWxheS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3Rlc3RpbmcvdGVzdF9tZXRob2Rfb3JkZXJpbmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rl
c3RfbXVsdGljYWxsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWQ0NGUz
NTJkYmE0MmY3MjYxMWYwZWVjZTA2ZjYzMzZlYTk4MWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdG94LmluaQpAQCAtMCwwICsxLDQ0IEBACitbdG94XQorZW52bGlzdD1jaGVjayxk
b2NzLHB5ezI3LDM0LDM1LDM2LHB5fS1weXRlc3RyZWxlYXNlLHB5ezI3LDM2fS1weXRlc3R7bWFz
dGVyLGZlYXR1cmVzfQorCitbdGVzdGVudl0KK2NvbW1hbmRzPXB5LnRlc3Qge3Bvc2FyZ3M6dGVz
dGluZy99CitzZXRlbnY9CisgIF9QWVRFU1RfU0VUVVBfU0tJUF9QTFVHR1lfREVQPTEKK2RlcHM9
CisgIHB5dGVzdHJlbGVhc2U6IHB5dGVzdAorICBweXRlc3RtYXN0ZXI6IGdpdCtodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QuZ2l0QG1hc3RlcgorICBweXRlc3RmZWF0dXJlczog
Z2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC5naXRAZmVhdHVyZXMKKwor
W3Rlc3RlbnY6YmVuY2htYXJrXQorY29tbWFuZHM9cHkudGVzdCB7cG9zYXJnczp0ZXN0aW5nL2Jl
bmNobWFyay5weX0KK2RlcHM9CisgIHB5dGVzdAorICBweXRlc3QtYmVuY2htYXJrCisKK1t0ZXN0
ZW52OmNoZWNrXQorZGVwcyA9CisgIGZsYWtlOAorICByZXN0cnVjdHVyZWR0ZXh0X2xpbnQKKyAg
cHlnbWVudHMKK2NvbW1hbmRzID0KKyAgZmxha2U4IHBsdWdneS5weSBzZXR1cC5weSB0ZXN0aW5n
CisgIHJzdC1saW50IENIQU5HRUxPRy5yc3QgUkVBRE1FLnJzdAorCitbdGVzdGVudjpkb2NzXQor
ZGVwcyA9CisgIHNwaGlueAorICBweWdtZW50cworY29tbWFuZHMgPQorICBzcGhpbngtYnVpbGQg
LWIgaHRtbCB7dG94aW5pZGlyfS9kb2NzIHt0b3hpbmlkaXJ9L2J1aWxkL2h0bWwtZG9jcworCitb
cHl0ZXN0XQorbWludmVyc2lvbj0yLjAKKyMtLXB5YXJncyAtLWRvY3Rlc3QtbW9kdWxlcyAtLWln
bm9yZT0udG94CithZGRvcHRzPS1yeHNYCitub3JlY3Vyc2VkaXJzPS50b3ggamEgLmhnIC5lbnYq
CitmaWx0ZXJ3YXJuaW5ncyA9CisgIGVycm9yCisKK1tmbGFrZThdCittYXgtbGluZS1sZW5ndGg9
OTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M1NjdmYWZkOWRkMTMxMDliZWRkOTM0ZThkZjZh
NjA1NjQ4MGM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMjQgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0NIQU5HRUxPRy5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFOSUZFU1QuaW4KKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9SRUFETUUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3IueW1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0
dXAuY2ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90b3guaW5pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L0FVVEhPUlMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0FVVEhPUlMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMw
Y2Y5YjcxYjE1ZDA1MWYwZDlhNGZhY2Q0OTBlZjU4YmNlNjZmZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvQVVUSE9SUwpAQCAtMCwwICsxLDI0IEBACitIb2xnZXIgS3Jla2VsLCBob2xnZXIg
YXQgbWVybGludXggZXUKK0JlbmphbWluIFBldGVyc29uLCBiZW5qYW1pbiBhdCBweXRob24gb3Jn
CitSb25ueSBQZmFubnNjaG1pZHQsIFJvbm55LlBmYW5uc2NobWlkdCBhdCBnbXggZGUKK0d1aWRv
IFdlc2RvcnAsIGpvaG5ueSBhdCBqb2hubnlkZWJyaXMgbmV0IAorU2FtdWVsZSBQZWRyb25pLCBw
ZWRyb25pcyBhdCBvcGVuZW5kIHNlIAorQ2FybCBGcmllZHJpY2ggQm9seiwgY2Zib2x6IGF0IGdt
eCBkZQorQXJtaW4gUmlnbywgYXJpZ28gYXQgdHVuZXMgb3JnIAorTWFjaWVrIEZpamFsa293c2tp
LCBmaWphbCBhdCBnZW5lc2lsaWNvIHBsCitCcmlhbiBEb3JzZXksIGJyaWFuZG9yc2V5IGF0IGdt
YWlsIGNvbSAKK0Zsb3JpcyBCcnV5bm9vZ2hlLCBmbHViIGF0IGRldm9yayBiZQorbWVybGludXgg
R21iSCwgR2VybWFueSwgb2ZmaWNlIGF0IG1lcmxpbnV4IGV1CisKK0NvbnRyaWJ1dG9ycyBpbmNs
dWRlOjogCisKK1Jvc3MgTGF3bGV5CitSYWxmIFNjaG1pdHQKK0NocmlzIExhbWIgCitIYXJhbGQg
QXJtaW4gTWFzc2EKK01hcnRpam4gRmFhc3NlbgorSWFuIEJpY2tpbmcgCitKYW4gQmFsc3Rlcgor
R3JpZyBHaGVvcmdoaXUKK0JvYiBJcHBvbGl0bworQ2hyaXN0aWFuIFRpc21lcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9DSEFOR0VMT0cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0NIQU5HRUxPRwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWNk
ODQ4N2MwYTJkZmQzNDMzMzNlMjY1MzVkNWEyMTJhNGRiOWVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9DSEFOR0VMT0cKQEAgLTAsMCArMSwyODE2IEBACisyMDE4LTAzLTIzICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIHRv
IGExZWMzMzAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MzkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGZpeC0xODM5MzQKKworICAgICAgICAqIEFVVEhPUlM6IEFkZGVkLgorICAgICAgICAqIENIQU5H
RUxPRzogQWRkZWQuCisgICAgICAgICogTElDRU5TRTogQWRkZWQuCisgICAgICAgICogTUFOSUZF
U1QuaW46IEFkZGVkLgorICAgICAgICAqIFJFQURNRS5yc3Q6IEFkZGVkLgorICAgICAgICAqIGFw
cHZleW9yLnltbDogQWRkZWQuCisgICAgICAgICogYmVuY2gvbG9jYWxwYXRoLnB5OiBBZGRlZC4K
KyAgICAgICAgKExpc3RkaXIpOgorICAgICAgICAoTGlzdGRpci5zZXR1cCk6CisgICAgICAgIChM
aXN0ZGlyLnJ1bik6CisgICAgICAgIChMaXN0ZGlyX2FyZyk6CisgICAgICAgIChMaXN0ZGlyX2Fy
Zy5ydW4pOgorICAgICAgICAoSm9pbl9vbmVhcmcpOgorICAgICAgICAoSm9pbl9vbmVhcmcucnVu
KToKKyAgICAgICAgKEpvaW5fbXVsdGkpOgorICAgICAgICAoSm9pbl9tdWx0aS5ydW4pOgorICAg
ICAgICAoQ2hlY2spOgorICAgICAgICAoQ2hlY2sucnVuKToKKyAgICAgICAgKENoZWNrRGlyKToK
KyAgICAgICAgKENoZWNrRGlyLnJ1bik6CisgICAgICAgIChDaGVja0RpcjIpOgorICAgICAgICAo
Q2hlY2tEaXIyLnJ1bik6CisgICAgICAgIChDaGVja0ZpbGUpOgorICAgICAgICAoQ2hlY2tGaWxl
LnJ1bik6CisgICAgICAgICogYmVuY2gvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5s
b2cuCisgICAgICAgICogY29uZnRlc3QucHk6IEFkZGVkLgorICAgICAgICAocHl0ZXN0X2FkZG9w
dGlvbik6CisgICAgICAgIChzc2hob3N0KToKKyAgICAgICAgKGdldGV4ZWN1dGFibGUpOgorICAg
ICAgICAoYW55cHl0aG9uKToKKyAgICAgICAgKiBkb2MvTWFrZWZpbGU6IEFkZGVkLgorICAgICAg
ICAqIGRvYy9fdGVtcGxhdGVzL2xheW91dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBkb2MvX3Rl
bXBsYXRlcy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiBk
b2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMC50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5v
dW5jZS9yZWxlYXNlLTAuOS4yLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3Jl
bGVhc2UtMS4wLjAudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0x
LjAuMS50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4yLnR4
dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjAudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjEuMS50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMi4wLnR4dDogQWRkZWQuCisgICAgICAgICog
ZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjEudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5u
b3VuY2UvcmVsZWFzZS0xLjMuMC50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9y
ZWxlYXNlLTEuMy4xLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2Ut
MS4zLjIudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMy50
eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy40LnR4dDogQWRk
ZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjAudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjQuMS50eHQ6IEFkZGVkLgorICAgICAgICAq
IGRvYy9hbm5vdW5jZS9yZWxlYXNlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5j
ZS93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogZG9jL2NoYW5nZWxvZy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGRvYy9jb2RlLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2NvbmYu
cHk6IEFkZGVkLgorICAgICAgICAqIGRvYy9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBkb2MvZXhhbXBsZS9nZW5odG1sLnB5OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvZXhhbXBsZS9n
ZW5odG1sY3NzLnB5OiBBZGRlZC4KKyAgICAgICAgKG15KToKKyAgICAgICAgKG15LmJvZHkpOgor
ICAgICAgICAobXkuaDIpOgorICAgICAgICAobXkucCk6CisgICAgICAgICogZG9jL2V4YW1wbGUv
Z2VueG1sLnB5OiBBZGRlZC4KKyAgICAgICAgKG5zKToKKyAgICAgICAgKiBkb2MvZXhhbXBsZS93
M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiBkb2Mv
ZmFxLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2ltZy9weWxpYi5wbmc6IEFkZGVkLgorICAg
ICAgICAqIGRvYy9pbWcvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cuCisgICAg
ICAgICogZG9jL2luZGV4LnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2luc3RhbGwudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBkb2MvaW8udHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvbGlua3Mu
aW5jOiBBZGRlZC4KKyAgICAgICAgKiBkb2MvbG9nLnR4dDogQWRkZWQuCisgICAgICAgICogZG9j
L21pc2MudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvcGF0aC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGRvYy9zdHlsZS5jc3M6IEFkZGVkLgorICAgICAgICAoYm9keSxib2R5LmVkaXRvcixib2R5
LmJvZHkpOgorICAgICAgICAoYSwgYS5yZWZlcmVuY2UpOgorICAgICAgICAoYVtocmVmXTpob3Zl
cik6CisgICAgICAgIChpbWcpOgorICAgICAgICAocCwgZGl2LnRleHQpOgorICAgICAgICAocCBh
OmFjdGl2ZSk6CisgICAgICAgIChwIGltZyk6CisgICAgICAgIChpbWcuaW5saW5lcGhvdG8pOgor
ICAgICAgICAoaHIpOgorICAgICAgICAodWwpOgorICAgICAgICAob2wpOgorICAgICAgICAodWwg
YSwgb2wgYSk6CisgICAgICAgIChkbCk6CisgICAgICAgIChkZCk6CisgICAgICAgIChibG9ja3F1
b3RlKToKKyAgICAgICAgKGNvZGUpOgorICAgICAgICAocHJlKToKKyAgICAgICAgKC5uZXRzY2Fw
ZTQpOgorICAgICAgICAoc3Bhbi5tZW51X3NlbGVjdGVkKToKKyAgICAgICAgKGEubWVudSk6Cisg
ICAgICAgIChhLm1lbnVbaHJlZl06dmlzaXRlZCwgYS5tZW51W2hyZWZdOmxpbmspOgorICAgICAg
ICAoYS5tZW51W2hyZWZdOmhvdmVyKToKKyAgICAgICAgKGRpdiNwYWdldGl0bGUpOgorICAgICAg
ICAoYS53aWtpY3VycmVudCk6CisgICAgICAgICh0YWJsZS5ib2R5KToKKyAgICAgICAgKHRkLnBh
Z2UtaGVhZGVyLWxlZnQpOgorICAgICAgICAodGQucGFnZS1oZWFkZXItdG9wKToKKyAgICAgICAg
KHRkLnNpZGViYXIpOgorICAgICAgICAodGQuc2lkZWJhciBwLmNsYXNzYmxvY2spOgorICAgICAg
ICAodGQuc2lkZWJhciBwLnVzZXJibG9jayk6CisgICAgICAgICh0ZC5jb250ZW50KToKKyAgICAg
ICAgKHAub2stbWVzc2FnZSk6CisgICAgICAgIChwLmVycm9yLW1lc3NhZ2UpOgorICAgICAgICAo
cDpmaXJzdC1jaGlsZCk6CisgICAgICAgICh0YWJsZS5mb3JtKToKKyAgICAgICAgKHRhYmxlLmZv
cm0gdGgpOgorICAgICAgICAodGFibGUuZm9ybSB0aC5oZWFkZXIpOgorICAgICAgICAodGFibGUu
Zm9ybSB0aC5yZXF1aXJlZCk6CisgICAgICAgICh0YWJsZS5mb3JtIHRkKToKKyAgICAgICAgKHRh
YmxlLmZvcm0gdGQub3B0aW9uYWwpOgorICAgICAgICAodGFibGUuZm9ybSB0ZC5odG1sKToKKyAg
ICAgICAgKHRhYmxlLmxpc3QpOgorICAgICAgICAodGFibGUubGlzdCB0aCk6CisgICAgICAgICh0
YWJsZS5saXN0IHRoIGFbaHJlZl06aG92ZXIpOgorICAgICAgICAodGFibGUubGlzdCB0aCBhW2hy
ZWZdOmxpbmspOgorICAgICAgICAodGFibGUubGlzdCB0aCBhW2hyZWZdKToKKyAgICAgICAgKHRh
YmxlLmxpc3QgdGguZ3JvdXApOgorICAgICAgICAodGFibGUubGlzdCB0ZCk6CisgICAgICAgICh0
YWJsZS5saXN0IHRyLm5vcm1hbCB0ZCk6CisgICAgICAgICh0YWJsZS5saXN0IHRyLmFsdCB0ZCk6
CisgICAgICAgICh0YWJsZS5saXN0IHRkOmZpcnN0LWNoaWxkKToKKyAgICAgICAgKHRhYmxlLmxp
c3QgdGg6Zmlyc3QtY2hpbGQpOgorICAgICAgICAodGFibGUubGlzdCB0ci5uYXZpZ2F0aW9uIHRo
KToKKyAgICAgICAgKHRhYmxlLmxpc3QgdHIubmF2aWdhdGlvbiB0aDpmaXJzdC1jaGlsZCk6Cisg
ICAgICAgICh0YWJsZS5tZXNzYWdlcyk6CisgICAgICAgICh0YWJsZS5tZXNzYWdlcyB0aC5oZWFk
ZXIpOgorICAgICAgICAodGFibGUubWVzc2FnZXMgdGgpOgorICAgICAgICAodGFibGUubWVzc2Fn
ZXMgdGQpOgorICAgICAgICAodGFibGUubWVzc2FnZXMgdGQ6Zmlyc3QtY2hpbGQpOgorICAgICAg
ICAodGFibGUuZmlsZXMpOgorICAgICAgICAodGFibGUuZmlsZXMgdGguaGVhZGVyKToKKyAgICAg
ICAgKHRhYmxlLmZpbGVzIHRoKToKKyAgICAgICAgKHRhYmxlLmZpbGVzIHRkKToKKyAgICAgICAg
KHRhYmxlLmhpc3RvcnkpOgorICAgICAgICAodGFibGUuaGlzdG9yeSB0aC5oZWFkZXIpOgorICAg
ICAgICAodGFibGUuaGlzdG9yeSB0aCk6CisgICAgICAgICh0YWJsZS5oaXN0b3J5IHRkKToKKyAg
ICAgICAgKHRhYmxlLmNsYXNzbGlzdCk6CisgICAgICAgICh0YWJsZS5jbGFzc2xpc3QgdGguaGVh
ZGVyKToKKyAgICAgICAgKHRhYmxlLmNsYXNzbGlzdCB0aCk6CisgICAgICAgICh0YWJsZS5jbGFz
c2hlbHApOgorICAgICAgICAodGFibGUuY2xhc3NoZWxwIHRoKToKKyAgICAgICAgKHRhYmxlLmNs
YXNzaGVscCB0ZCk6CisgICAgICAgICh0YWJsZS5vdGhlcmluZm8pOgorICAgICAgICAodGFibGUu
b3RoZXJpbmZvIHRoLmhlYWRlcik6CisgICAgICAgICh0YWJsZS5vdGhlcmluZm8gdGgpOgorICAg
ICAgICAoaW5wdXQpOgorICAgICAgICAoc2VsZWN0KToKKyAgICAgICAgKGEubm9uZXhpc3RlbnQp
OgorICAgICAgICAoYS5ub25leGlzdGVudDp2aXNpdGVkKToKKyAgICAgICAgKGEuZXh0ZXJuYWwp
OgorICAgICAgICAoZGl2LmRpZmZvbGQpOgorICAgICAgICAoZGl2LmRpZmZuZXcpOgorICAgICAg
ICAoZGl2Lm1lc3NhZ2UpOgorICAgICAgICAoc3Ryb25nLmhpZ2hsaWdodCk6CisgICAgICAgICh0
YWJsZS5uYXZpYmFyKToKKyAgICAgICAgKHRkLm5hdmliYXIpOgorICAgICAgICAoYSN2ZXJzaW9u
aW5mbyk6CisgICAgICAgIChkaXYjcGFnZW5hbWUpOgorICAgICAgICAoYS53aWtpYWN0aW9uLCBp
bnB1dC53aWtpYWN0aW9uKToKKyAgICAgICAgKGEud2lraWFjdGlvbltocmVmXTpob3Zlcik6Cisg
ICAgICAgIChkaXYubGVnZW5kaXRlbSk6CisgICAgICAgIChzcGFuLndpa2l0b2tlbik6CisgICAg
ICAgIChkaXYjY29udGVudHNwYWNlIGgxOmZpcnN0LWNoaWxkLCBkaXYuaGVhZGluZzpmaXJzdC1j
aGlsZCk6CisgICAgICAgIChkaXYjY29udGVudHNwYWNlIGgyOmZpcnN0LWNoaWxkKToKKyAgICAg
ICAgKGRpdi5oZWFkaW5nLCBoMSk6CisgICAgICAgIChoMik6CisgICAgICAgIChoMSwgaDIsIGgz
LCBoNCwgaDUsIGg2KToKKyAgICAgICAgKGgxKToKKyAgICAgICAgKGgzKToKKyAgICAgICAgKGg0
KToKKyAgICAgICAgKGg1KToKKyAgICAgICAgKGgxIGEpOgorICAgICAgICAoZGl2LmV4Y2VwdGlv
bik6CisgICAgICAgIChwcmUuZXhjZXB0aW9uKToKKyAgICAgICAgKGRpdi5kaXJlbnRyeSk6Cisg
ICAgICAgIChkaXYuZmlsZWVudHJ5KToKKyAgICAgICAgKGEuZmlsZWVudHJ5KToKKyAgICAgICAg
KHNwYW4ubGVmdCk6CisgICAgICAgIChzcGFuLnJpZ2h0KToKKyAgICAgICAgKGRpdi5uYXZiYXIp
OgorICAgICAgICAoZGl2Lmhpc3RvcnkgYSk6CisgICAgICAgIChkaXYud2lraWFjdGlvbnRpdGxl
KToKKyAgICAgICAgKGRpdi5kb2N1bWVudCk6CisgICAgICAgIChoMS50aXRsZSk6CisgICAgICAg
ICh0ZC50b3BsaXN0KToKKyAgICAgICAgKGltZyNweWltZyk6CisgICAgICAgIChkaXYjbmF2c3Bh
Y2UpOgorICAgICAgICAoZGl2I2Vycm9ybGluZSk6CisgICAgICAgIChkaXYjY29udGVudHNwYWNl
KToKKyAgICAgICAgKGRpdiNtZW51YmFyKToKKyAgICAgICAgKGRpdiN0aXRsZSk6CisgICAgICAg
IChkaXYjZG9jbmF2bGlzdCk6CisgICAgICAgIChkaXYubGlzdHRpdGxlKToKKyAgICAgICAgKGRp
di5hY3Rpb25ib3ggaDMpOgorICAgICAgICAoZGl2LmFjdGlvbmJveCBhKToKKyAgICAgICAgKGRp
di5hY3Rpb25ib3ggYS5oaXN0b3J5KToKKyAgICAgICAgKGRpdi5hY3Rpb25ib3gpOgorICAgICAg
ICAob2wuc2ltcGxlLCB1bC5zaW1wbGUpOgorICAgICAgICAob2wuYXJhYmljKToKKyAgICAgICAg
KG9sLmxvd2VyYWxwaGEpOgorICAgICAgICAob2wudXBwZXJhbHBoYSk6CisgICAgICAgIChvbC5s
b3dlcnJvbWFuKToKKyAgICAgICAgKG9sLnVwcGVycm9tYW4pOgorICAgICAgICAoZGl2LnNlY3Rp
b24pOgorICAgICAgICAqIGRvYy93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogZG9j
L3htbC50eHQ6IEFkZGVkLgorICAgICAgICAqIHB5L19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBweS9fX21ldGFpbmZvLnB5OiBBZGRlZC4KKyAgICAgICAgKiBweS9fYnVpbHRpbi5weTog
QWRkZWQuCisgICAgICAgIChyZXZlcnNlZCk6CisgICAgICAgIChyZXZlcnNlZF9pdGVyYXRvcik6
CisgICAgICAgIChyZXZlcnNlZF9pdGVyYXRvci5fX2luaXRfXyk6CisgICAgICAgIChyZXZlcnNl
ZF9pdGVyYXRvci5fX2l0ZXJfXyk6CisgICAgICAgIChyZXZlcnNlZF9pdGVyYXRvci5uZXh0KToK
KyAgICAgICAgKHJldmVyc2VkX2l0ZXJhdG9yLl9fbGVuZ3RoX2hpbnRfXyk6CisgICAgICAgIChh
bnkpOgorICAgICAgICAoYWxsKToKKyAgICAgICAgKHNvcnRlZCk6CisgICAgICAgIChzb3J0ZWQu
dXNlX2NtcCk6CisgICAgICAgIChHZW5lcmF0b3JFeGl0KToKKyAgICAgICAgKGNhbGxhYmxlKToK
KyAgICAgICAgKF90b3RleHQpOgorICAgICAgICAoX2lzYnl0ZXMpOgorICAgICAgICAoX2lzdGV4
dCk6CisgICAgICAgIChfZ2V0aW1zZWxmKToKKyAgICAgICAgKF9nZXRmdW5jZGljdCk6CisgICAg
ICAgIChfZ2V0Y29kZSk6CisgICAgICAgIChleGVjZmlsZSk6CisgICAgICAgIChwcmludF8pOgor
ICAgICAgICAoZXhlY18pOgorICAgICAgICAoX3JlcmFpc2UpOgorICAgICAgICAoZXhlYzIpOgor
ICAgICAgICAqIHB5L19jb2RlL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAgICAgKiBweS9fY29k
ZS9fYXNzZXJ0aW9ubmV3LnB5OiBBZGRlZC4KKyAgICAgICAgKF9pc19hc3RfZXhwcik6CisgICAg
ICAgIChfaXNfYXN0X3N0bXQpOgorICAgICAgICAoRmFpbHVyZSk6CisgICAgICAgIChGYWlsdXJl
Ll9faW5pdF9fKToKKyAgICAgICAgKGludGVycHJldCk6CisgICAgICAgIChydW4pOgorICAgICAg
ICAoZ2V0ZmFpbHVyZSk6CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyKToKKyAgICAgICAgKERl
YnVnSW50ZXJwcmV0ZXIuX19pbml0X18pOgorICAgICAgICAoRGVidWdJbnRlcnByZXRlci5nZW5l
cmljX3Zpc2l0KToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIuX2NvbXBpbGUpOgorICAgICAg
ICAoRGVidWdJbnRlcnByZXRlci52aXNpdF9FeHByKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0
ZXIudmlzaXRfTW9kdWxlKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfTmFtZSk6
CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLnZpc2l0X0NvbXBhcmUpOgorICAgICAgICAoRGVi
dWdJbnRlcnByZXRlci52aXNpdF9Cb29sT3ApOgorICAgICAgICAoRGVidWdJbnRlcnByZXRlci52
aXNpdF9VbmFyeU9wKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfQmluT3ApOgor
ICAgICAgICAoRGVidWdJbnRlcnByZXRlci52aXNpdF9DYWxsKToKKyAgICAgICAgKERlYnVnSW50
ZXJwcmV0ZXIuX2lzX2J1aWx0aW5fbmFtZSk6CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLnZp
c2l0X0F0dHJpYnV0ZSk6CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLnZpc2l0X0Fzc2VydCk6
CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLnZpc2l0X0Fzc2lnbik6CisgICAgICAgICogcHkv
X2NvZGUvX2Fzc2VydGlvbm9sZC5weTogQWRkZWQuCisgICAgICAgIChGYWlsdXJlKToKKyAgICAg
ICAgKEZhaWx1cmUuX19pbml0X18pOgorICAgICAgICAoVmlldyk6CisgICAgICAgIChWaWV3Ll9f
bmV3X18pOgorICAgICAgICAoVmlldy5fX2dldGF0dHJfXyk6CisgICAgICAgIChWaWV3Ll9fdmll
d2tleV9fKToKKyAgICAgICAgKFZpZXcuX19tYXRjaGtleV9fKToKKyAgICAgICAgKFZpZXcuX3Nl
bGVjdHN1YmNsYXNzKToKKyAgICAgICAgKFZpZXcuX19yZXByX18pOgorICAgICAgICAoZW51bXN1
YmNsYXNzZXMpOgorICAgICAgICAoZW51bXN1YmNsYXNzZXMuaW4pOgorICAgICAgICAoSW50ZXJw
cmV0YWJsZSk6CisgICAgICAgIChJbnRlcnByZXRhYmxlLmlzX2J1aWx0aW4pOgorICAgICAgICAo
SW50ZXJwcmV0YWJsZS5ldmFsKToKKyAgICAgICAgKEludGVycHJldGFibGUucnVuKToKKyAgICAg
ICAgKEludGVycHJldGFibGUubmljZV9leHBsYW5hdGlvbik6CisgICAgICAgIChOYW1lKToKKyAg
ICAgICAgKE5hbWUuaXNfbG9jYWwpOgorICAgICAgICAoTmFtZS5pc19nbG9iYWwpOgorICAgICAg
ICAoTmFtZS5pc19idWlsdGluKToKKyAgICAgICAgKE5hbWUuZXZhbCk6CisgICAgICAgIChDb21w
YXJlKToKKyAgICAgICAgKENvbXBhcmUuZXZhbCk6CisgICAgICAgIChBbmQpOgorICAgICAgICAo
QW5kLmV2YWwpOgorICAgICAgICAoT3IpOgorICAgICAgICAoT3IuZXZhbCk6CisgICAgICAgIChV
bmFyeUFyaXRoKToKKyAgICAgICAgKFVuYXJ5QXJpdGguZXZhbCk6CisgICAgICAgIChCaW5hcnlB
cml0aCk6CisgICAgICAgIChCaW5hcnlBcml0aC5ldmFsKToKKyAgICAgICAgKENhbGxGdW5jKToK
KyAgICAgICAgKENhbGxGdW5jLmlzX2Jvb2wpOgorICAgICAgICAoQ2FsbEZ1bmMuZXZhbCk6Cisg
ICAgICAgIChHZXRhdHRyKToKKyAgICAgICAgKEdldGF0dHIuZXZhbCk6CisgICAgICAgIChBc3Nl
cnQpOgorICAgICAgICAoQXNzZXJ0LnJ1bik6CisgICAgICAgIChBc3NpZ24pOgorICAgICAgICAo
QXNzaWduLnJ1bik6CisgICAgICAgIChEaXNjYXJkKToKKyAgICAgICAgKERpc2NhcmQucnVuKToK
KyAgICAgICAgKFN0bXQpOgorICAgICAgICAoU3RtdC5ydW4pOgorICAgICAgICAocmVwb3J0X2Zh
aWx1cmUpOgorICAgICAgICAoY2hlY2spOgorICAgICAgICAoaW50ZXJwcmV0KToKKyAgICAgICAg
KGdldG1zZyk6CisgICAgICAgIChnZXRmYWlsdXJlKToKKyAgICAgICAgKHJ1bik6CisgICAgICAg
IChmKToKKyAgICAgICAgKGcpOgorICAgICAgICAoaCk6CisgICAgICAgICogcHkvX2NvZGUvX3B5
MnRyYWNlYmFjay5weTogQWRkZWQuCisgICAgICAgIChmb3JtYXRfZXhjZXB0aW9uX29ubHkpOgor
ICAgICAgICAoX2Zvcm1hdF9maW5hbF9leGNfbGluZSk6CisgICAgICAgIChfc29tZV9zdHIpOgor
ICAgICAgICAqIHB5L19jb2RlL2Fzc2VydGlvbi5weTogQWRkZWQuCisgICAgICAgIChfZm9ybWF0
X2V4cGxhbmF0aW9uKToKKyAgICAgICAgKEFzc2VydGlvbkVycm9yKToKKyAgICAgICAgKEFzc2Vy
dGlvbkVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKiBweS9fY29kZS9jb2RlLnB5OiBBZGRlZC4K
KyAgICAgICAgKENvZGUpOgorICAgICAgICAoQ29kZS5fX2luaXRfXyk6CisgICAgICAgIChDb2Rl
Ll9fZXFfXyk6CisgICAgICAgIChDb2RlLl9fbmVfXyk6CisgICAgICAgIChDb2RlLnBhdGgpOgor
ICAgICAgICAoQ29kZS5mdWxsc291cmNlKToKKyAgICAgICAgKENvZGUuc291cmNlKToKKyAgICAg
ICAgKENvZGUuZ2V0YXJncyk6CisgICAgICAgIChGcmFtZSk6CisgICAgICAgIChGcmFtZS5fX2lu
aXRfXyk6CisgICAgICAgIChGcmFtZS5zdGF0ZW1lbnQpOgorICAgICAgICAoRnJhbWUuZXZhbCk6
CisgICAgICAgIChGcmFtZS5leGVjXyk6CisgICAgICAgIChGcmFtZS5yZXByKToKKyAgICAgICAg
KEZyYW1lLmlzX3RydWUpOgorICAgICAgICAoRnJhbWUuZ2V0YXJncyk6CisgICAgICAgIChUcmFj
ZWJhY2tFbnRyeSk6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5fX2luaXRfXyk6CisgICAgICAg
IChUcmFjZWJhY2tFbnRyeS5zZXRfcmVwcl9zdHlsZSk6CisgICAgICAgIChUcmFjZWJhY2tFbnRy
eS5mcmFtZSk6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5yZWxsaW5lKToKKyAgICAgICAgKFRy
YWNlYmFja0VudHJ5Ll9fcmVwcl9fKToKKyAgICAgICAgKFRyYWNlYmFja0VudHJ5LnN0YXRlbWVu
dCk6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5wYXRoKToKKyAgICAgICAgKFRyYWNlYmFja0Vu
dHJ5LmdldGxvY2Fscyk6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5yZWludGVycHJldCk6Cisg
ICAgICAgIChUcmFjZWJhY2tFbnRyeS5nZXRmaXJzdGxpbmVzb3VyY2UpOgorICAgICAgICAoVHJh
Y2ViYWNrRW50cnkuZ2V0c291cmNlKToKKyAgICAgICAgKFRyYWNlYmFja0VudHJ5LmlzaGlkZGVu
KToKKyAgICAgICAgKFRyYWNlYmFja0VudHJ5Ll9fc3RyX18pOgorICAgICAgICAoVHJhY2ViYWNr
RW50cnkubmFtZSk6CisgICAgICAgIChUcmFjZWJhY2spOgorICAgICAgICAoVHJhY2ViYWNrLl9f
aW5pdF9fKToKKyAgICAgICAgKFRyYWNlYmFjay5fX2luaXRfXy5mKToKKyAgICAgICAgKFRyYWNl
YmFjay5jdXQpOgorICAgICAgICAoVHJhY2ViYWNrLl9fZ2V0aXRlbV9fKToKKyAgICAgICAgKFRy
YWNlYmFjay5maWx0ZXIpOgorICAgICAgICAoVHJhY2ViYWNrLmdldGNyYXNoZW50cnkpOgorICAg
ICAgICAoVHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4KToKKyAgICAgICAgKEV4Y2VwdGlvbkluZm8p
OgorICAgICAgICAoRXhjZXB0aW9uSW5mby5fX2luaXRfXyk6CisgICAgICAgIChFeGNlcHRpb25J
bmZvLl9fcmVwcl9fKToKKyAgICAgICAgKEV4Y2VwdGlvbkluZm8uZXhjb25seSk6CisgICAgICAg
IChFeGNlcHRpb25JbmZvLmVycmlzaW5zdGFuY2UpOgorICAgICAgICAoRXhjZXB0aW9uSW5mby5f
Z2V0cmVwcmNyYXNoKToKKyAgICAgICAgKEV4Y2VwdGlvbkluZm8uZ2V0cmVwcik6CisgICAgICAg
IChFeGNlcHRpb25JbmZvLl9fc3RyX18pOgorICAgICAgICAoRXhjZXB0aW9uSW5mby5fX3VuaWNv
ZGVfXyk6CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvKToKKyAgICAgICAgKEZvcm1hdHRlZEV4
Y2luZm8uX19pbml0X18pOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5mby5fZ2V0aW5kZW50KToK
KyAgICAgICAgKEZvcm1hdHRlZEV4Y2luZm8uX2dldGVudHJ5c291cmNlKToKKyAgICAgICAgKEZv
cm1hdHRlZEV4Y2luZm8uX3NhZmVyZXByKToKKyAgICAgICAgKEZvcm1hdHRlZEV4Y2luZm8ucmVw
cl9hcmdzKToKKyAgICAgICAgKEZvcm1hdHRlZEV4Y2luZm8uZ2V0X3NvdXJjZSk6CisgICAgICAg
IChGb3JtYXR0ZWRFeGNpbmZvLmdldF9leGNvbmx5KToKKyAgICAgICAgKEZvcm1hdHRlZEV4Y2lu
Zm8ucmVwcl9sb2NhbHMpOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5mby5yZXByX3RyYWNlYmFj
a19lbnRyeSk6CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLl9tYWtlcGF0aCk6CisgICAgICAg
IChGb3JtYXR0ZWRFeGNpbmZvLnJlcHJfdHJhY2ViYWNrKToKKyAgICAgICAgKEZvcm1hdHRlZEV4
Y2luZm8ucmVwcl9leGNpbmZvKToKKyAgICAgICAgKFRlcm1pbmFsUmVwcik6CisgICAgICAgIChU
ZXJtaW5hbFJlcHIuX19zdHJfXyk6CisgICAgICAgIChUZXJtaW5hbFJlcHIuX191bmljb2RlX18p
OgorICAgICAgICAoVGVybWluYWxSZXByLl9fcmVwcl9fKToKKyAgICAgICAgKFJlcHJFeGNlcHRp
b25JbmZvKToKKyAgICAgICAgKFJlcHJFeGNlcHRpb25JbmZvLl9faW5pdF9fKToKKyAgICAgICAg
KFJlcHJFeGNlcHRpb25JbmZvLmFkZHNlY3Rpb24pOgorICAgICAgICAoUmVwckV4Y2VwdGlvbklu
Zm8udG90ZXJtaW5hbCk6CisgICAgICAgIChSZXByVHJhY2ViYWNrKToKKyAgICAgICAgKFJlcHJU
cmFjZWJhY2suX19pbml0X18pOgorICAgICAgICAoUmVwclRyYWNlYmFjay50b3Rlcm1pbmFsKToK
KyAgICAgICAgKFJlcHJUcmFjZWJhY2tOYXRpdmUpOgorICAgICAgICAoUmVwclRyYWNlYmFja05h
dGl2ZS5fX2luaXRfXyk6CisgICAgICAgIChSZXByRW50cnlOYXRpdmUpOgorICAgICAgICAoUmVw
ckVudHJ5TmF0aXZlLl9faW5pdF9fKToKKyAgICAgICAgKFJlcHJFbnRyeU5hdGl2ZS50b3Rlcm1p
bmFsKToKKyAgICAgICAgKFJlcHJFbnRyeSk6CisgICAgICAgIChSZXByRW50cnkuX19pbml0X18p
OgorICAgICAgICAoUmVwckVudHJ5LnRvdGVybWluYWwpOgorICAgICAgICAoUmVwckVudHJ5Ll9f
c3RyX18pOgorICAgICAgICAoUmVwckZpbGVMb2NhdGlvbik6CisgICAgICAgIChSZXByRmlsZUxv
Y2F0aW9uLl9faW5pdF9fKToKKyAgICAgICAgKFJlcHJGaWxlTG9jYXRpb24udG90ZXJtaW5hbCk6
CisgICAgICAgIChSZXByTG9jYWxzKToKKyAgICAgICAgKFJlcHJMb2NhbHMuX19pbml0X18pOgor
ICAgICAgICAoUmVwckxvY2Fscy50b3Rlcm1pbmFsKToKKyAgICAgICAgKFJlcHJGdW5jQXJncyk6
CisgICAgICAgIChSZXByRnVuY0FyZ3MuX19pbml0X18pOgorICAgICAgICAoUmVwckZ1bmNBcmdz
LnRvdGVybWluYWwpOgorICAgICAgICAocGF0Y2hfYnVpbHRpbnMpOgorICAgICAgICAodW5wYXRj
aF9idWlsdGlucyk6CisgICAgICAgIChnZXRyYXdjb2RlKToKKyAgICAgICAgKiBweS9fY29kZS9z
b3VyY2UucHk6IEFkZGVkLgorICAgICAgICAoU291cmNlKToKKyAgICAgICAgKFNvdXJjZS5fX2lu
aXRfXyk6CisgICAgICAgIChTb3VyY2UuX19lcV9fKToKKyAgICAgICAgKFNvdXJjZS5fX2dldGl0
ZW1fXyk6CisgICAgICAgIChTb3VyY2UuX19sZW5fXyk6CisgICAgICAgIChTb3VyY2UuX19nZXRz
bGljZV9fKToKKyAgICAgICAgKFNvdXJjZS5zdHJpcCk6CisgICAgICAgIChTb3VyY2UucHV0YXJv
dW5kKToKKyAgICAgICAgKFNvdXJjZS5pbmRlbnQpOgorICAgICAgICAoU291cmNlLmdldHN0YXRl
bWVudCk6CisgICAgICAgIChTb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UpOgorICAgICAgICAoU291
cmNlLmRlaW5kZW50KToKKyAgICAgICAgKFNvdXJjZS5pc3BhcnNlYWJsZSk6CisgICAgICAgIChT
b3VyY2UuX19zdHJfXyk6CisgICAgICAgIChTb3VyY2UuY29tcGlsZSk6CisgICAgICAgIChjb21w
aWxlXyk6CisgICAgICAgIChnZXRmc2xpbmVubyk6CisgICAgICAgIChmaW5kc291cmNlKToKKyAg
ICAgICAgKGdldHNvdXJjZSk6CisgICAgICAgIChkZWluZGVudCk6CisgICAgICAgIChkZWluZGVu
dC5yZWFkbGluZV9nZW5lcmF0b3IpOgorICAgICAgICAoZ2V0X3N0YXRlbWVudF9zdGFydGVuZDIp
OgorICAgICAgICAoZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KToKKyAgICAgICAgKGdldHN0YXRlbWVu
dHJhbmdlX29sZCk6CisgICAgICAgIChnZXRzdGF0ZW1lbnRyYW5nZV9vbGQueHh4KToKKyAgICAg
ICAgKiBweS9fY29kZS93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogcHkvX2Vycm9y
LnB5OiBBZGRlZC4KKyAgICAgICAgKEVycm9yKToKKyAgICAgICAgKEVycm9yLl9fcmVwcl9fKToK
KyAgICAgICAgKEVycm9yLl9fc3RyX18pOgorICAgICAgICAoRXJyb3JNYWtlcik6CisgICAgICAg
IChFcnJvck1ha2VyLl9fZ2V0YXR0cl9fKToKKyAgICAgICAgKEVycm9yTWFrZXIuX2dldGVycm5v
Y2xhc3MpOgorICAgICAgICAoRXJyb3JNYWtlci5jaGVja2VkX2NhbGwpOgorICAgICAgICAqIHB5
L19pby9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogcHkvX2lvL2NhcHR1cmUucHk6IEFk
ZGVkLgorICAgICAgICAoVGV4dElPKToKKyAgICAgICAgKFRleHRJTy53cml0ZSk6CisgICAgICAg
IChCeXRlc0lPKToKKyAgICAgICAgKEJ5dGVzSU8ud3JpdGUpOgorICAgICAgICAoRkRDYXB0dXJl
KToKKyAgICAgICAgKEZEQ2FwdHVyZS5fX2luaXRfXyk6CisgICAgICAgIChGRENhcHR1cmUuc3Rh
cnQpOgorICAgICAgICAoRkRDYXB0dXJlLmRvbmUpOgorICAgICAgICAoRkRDYXB0dXJlLndyaXRl
b3JnKToKKyAgICAgICAgKGR1cGZpbGUpOgorICAgICAgICAoRW5jb2RlZEZpbGUpOgorICAgICAg
ICAoRW5jb2RlZEZpbGUuX19pbml0X18pOgorICAgICAgICAoRW5jb2RlZEZpbGUud3JpdGUpOgor
ICAgICAgICAoRW5jb2RlZEZpbGUud3JpdGVsaW5lcyk6CisgICAgICAgIChFbmNvZGVkRmlsZS5f
X2dldGF0dHJfXyk6CisgICAgICAgIChDYXB0dXJlKToKKyAgICAgICAgKENhcHR1cmUuY2FsbCk6
CisgICAgICAgIChDYXB0dXJlLnJlc2V0KToKKyAgICAgICAgKENhcHR1cmUuc3VzcGVuZCk6Cisg
ICAgICAgIChTdGRDYXB0dXJlRkQpOgorICAgICAgICAoU3RkQ2FwdHVyZUZELl9faW5pdF9fKToK
KyAgICAgICAgKFN0ZENhcHR1cmVGRC5fc2F2ZSk6CisgICAgICAgIChTdGRDYXB0dXJlRkQuc3Rh
cnRhbGwpOgorICAgICAgICAoU3RkQ2FwdHVyZUZELnJlc3VtZSk6CisgICAgICAgIChTdGRDYXB0
dXJlRkQuZG9uZSk6CisgICAgICAgIChTdGRDYXB0dXJlRkQucmVhZG91dGVycik6CisgICAgICAg
IChTdGRDYXB0dXJlRkQuX3JlYWRzbmFwc2hvdCk6CisgICAgICAgIChTdGRDYXB0dXJlKToKKyAg
ICAgICAgKFN0ZENhcHR1cmUuX19pbml0X18pOgorICAgICAgICAoU3RkQ2FwdHVyZS5zdGFydGFs
bCk6CisgICAgICAgIChTdGRDYXB0dXJlLmRvbmUpOgorICAgICAgICAoU3RkQ2FwdHVyZS5yZXN1
bWUpOgorICAgICAgICAoU3RkQ2FwdHVyZS5yZWFkb3V0ZXJyKToKKyAgICAgICAgKERvbnRSZWFk
RnJvbUlucHV0KToKKyAgICAgICAgKERvbnRSZWFkRnJvbUlucHV0LnJlYWQpOgorICAgICAgICAo
RG9udFJlYWRGcm9tSW5wdXQuZmlsZW5vKToKKyAgICAgICAgKERvbnRSZWFkRnJvbUlucHV0Lmlz
YXR0eSk6CisgICAgICAgIChEb250UmVhZEZyb21JbnB1dC5jbG9zZSk6CisgICAgICAgICogcHkv
X2lvL3NhZmVyZXByLnB5OiBBZGRlZC4KKyAgICAgICAgKFNhZmVSZXByKToKKyAgICAgICAgKFNh
ZmVSZXByLnJlcHIpOgorICAgICAgICAoU2FmZVJlcHIucmVwcl91bmljb2RlKToKKyAgICAgICAg
KFNhZmVSZXByLnJlcHJfdW5pY29kZS5yZXByKToKKyAgICAgICAgKFNhZmVSZXByLnJlcHJfaW5z
dGFuY2UpOgorICAgICAgICAoU2FmZVJlcHIuX2NhbGxoZWxwZXIpOgorICAgICAgICAoc2FmZXJl
cHIpOgorICAgICAgICAqIHB5L19pby90ZXJtaW5hbHdyaXRlci5weTogQWRkZWQuCisgICAgICAg
IChfZ2V0ZGltZW5zaW9ucyk6CisgICAgICAgIChnZXRfdGVybWluYWxfd2lkdGgpOgorICAgICAg
ICAoYW5zaV9wcmludCk6CisgICAgICAgIChzaG91bGRfZG9fbWFya3VwKToKKyAgICAgICAgKFRl
cm1pbmFsV3JpdGVyKToKKyAgICAgICAgKFRlcm1pbmFsV3JpdGVyLl9faW5pdF9fKToKKyAgICAg
ICAgKFRlcm1pbmFsV3JpdGVyLmZ1bGx3aWR0aCk6CisgICAgICAgIChUZXJtaW5hbFdyaXRlci5j
aGFyc19vbl9jdXJyZW50X2xpbmUpOgorICAgICAgICAoVGVybWluYWxXcml0ZXIuX2VzY2FwZWQp
OgorICAgICAgICAoVGVybWluYWxXcml0ZXIubWFya3VwKToKKyAgICAgICAgKFRlcm1pbmFsV3Jp
dGVyLnNlcCk6CisgICAgICAgIChUZXJtaW5hbFdyaXRlci53cml0ZSk6CisgICAgICAgIChUZXJt
aW5hbFdyaXRlci5fdXBkYXRlX2NoYXJzX29uX2N1cnJlbnRfbGluZSk6CisgICAgICAgIChUZXJt
aW5hbFdyaXRlci5saW5lKToKKyAgICAgICAgKFRlcm1pbmFsV3JpdGVyLnJlbGluZSk6CisgICAg
ICAgIChUZXJtaW5hbFdyaXRlci5fY2hlY2tmaWxsKToKKyAgICAgICAgKFdpbjMyQ29uc29sZVdy
aXRlcik6CisgICAgICAgIChXaW4zMkNvbnNvbGVXcml0ZXIud3JpdGUpOgorICAgICAgICAoV3Jp
dGVGaWxlKToKKyAgICAgICAgKFdyaXRlRmlsZS5fX2luaXRfXyk6CisgICAgICAgIChXcml0ZUZp
bGUud3JpdGUpOgorICAgICAgICAoV3JpdGVGaWxlLmZsdXNoKToKKyAgICAgICAgKENPT1JEKToK
KyAgICAgICAgKFNNQUxMX1JFQ1QpOgorICAgICAgICAoQ09OU09MRV9TQ1JFRU5fQlVGRkVSX0lO
Rk8pOgorICAgICAgICAoR2V0U3RkSGFuZGxlKToKKyAgICAgICAgKEdldENvbnNvbGVJbmZvKToK
KyAgICAgICAgKHdyaXRlX291dCk6CisgICAgICAgICogcHkvX2lvL3czYy1pbXBvcnQubG9nOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIHB5L19sb2cvX19pbml0X18ucHk6IEFkZGVk
LgorICAgICAgICAqIHB5L19sb2cvbG9nLnB5OiBBZGRlZC4KKyAgICAgICAgKE1lc3NhZ2UpOgor
ICAgICAgICAoTWVzc2FnZS5fX2luaXRfXyk6CisgICAgICAgIChNZXNzYWdlLmNvbnRlbnQpOgor
ICAgICAgICAoTWVzc2FnZS5wcmVmaXgpOgorICAgICAgICAoTWVzc2FnZS5fX3N0cl9fKToKKyAg
ICAgICAgKFByb2R1Y2VyKToKKyAgICAgICAgKFByb2R1Y2VyLl9faW5pdF9fKToKKyAgICAgICAg
KFByb2R1Y2VyLl9fcmVwcl9fKToKKyAgICAgICAgKFByb2R1Y2VyLl9fZ2V0YXR0cl9fKToKKyAg
ICAgICAgKFByb2R1Y2VyLl9fY2FsbF9fKToKKyAgICAgICAgKEtleXdvcmRNYXBwZXIpOgorICAg
ICAgICAoS2V5d29yZE1hcHBlci5fX2luaXRfXyk6CisgICAgICAgIChLZXl3b3JkTWFwcGVyLmdl
dHN0YXRlKToKKyAgICAgICAgKEtleXdvcmRNYXBwZXIuc2V0c3RhdGUpOgorICAgICAgICAoS2V5
d29yZE1hcHBlci5nZXRjb25zdW1lcik6CisgICAgICAgIChLZXl3b3JkTWFwcGVyLnNldGNvbnN1
bWVyKToKKyAgICAgICAgKGRlZmF1bHRfY29uc3VtZXIpOgorICAgICAgICAoc2V0Y29uc3VtZXIp
OgorICAgICAgICAoc2V0c3RhdGUpOgorICAgICAgICAoZ2V0c3RhdGUpOgorICAgICAgICAoRmls
ZSk6CisgICAgICAgIChGaWxlLl9faW5pdF9fKToKKyAgICAgICAgKEZpbGUuX19jYWxsX18pOgor
ICAgICAgICAoUGF0aCk6CisgICAgICAgIChQYXRoLl9faW5pdF9fKToKKyAgICAgICAgKFBhdGgu
X29wZW5maWxlKToKKyAgICAgICAgKFBhdGguX19jYWxsX18pOgorICAgICAgICAoU1RET1VUKToK
KyAgICAgICAgKFNUREVSUik6CisgICAgICAgIChTeXNsb2cpOgorICAgICAgICAoU3lzbG9nLl9f
aW5pdF9fKToKKyAgICAgICAgKFN5c2xvZy5fX2NhbGxfXyk6CisgICAgICAgICogcHkvX2xvZy93
M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiBweS9f
bG9nL3dhcm5pbmcucHk6IEFkZGVkLgorICAgICAgICAoRGVwcmVjYXRpb25XYXJuaW5nKToKKyAg
ICAgICAgKERlcHJlY2F0aW9uV2FybmluZy5fX2luaXRfXyk6CisgICAgICAgIChEZXByZWNhdGlv
bldhcm5pbmcuX19yZXByX18pOgorICAgICAgICAoRGVwcmVjYXRpb25XYXJuaW5nLl9fc3RyX18p
OgorICAgICAgICAoX2FwaXdhcm4pOgorICAgICAgICAod2Fybik6CisgICAgICAgICogcHkvX3Bh
dGgvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHB5L19wYXRoL2NhY2hldXRpbC5weTog
QWRkZWQuCisgICAgICAgIChCYXNpY0NhY2hlKToKKyAgICAgICAgKEJhc2ljQ2FjaGUuX19pbml0
X18pOgorICAgICAgICAoQmFzaWNDYWNoZS5jbGVhcik6CisgICAgICAgIChCYXNpY0NhY2hlLl9n
ZXRlbnRyeSk6CisgICAgICAgIChCYXNpY0NhY2hlLl9wdXRlbnRyeSk6CisgICAgICAgIChCYXNp
Y0NhY2hlLmRlbGVudHJ5KToKKyAgICAgICAgKEJhc2ljQ2FjaGUuZ2V0b3JidWlsZCk6CisgICAg
ICAgIChCYXNpY0NhY2hlLl9wcnVuZWxvd2VzdHdlaWdodCk6CisgICAgICAgIChCdWlsZGNvc3RB
Y2Nlc3NDYWNoZSk6CisgICAgICAgIChCdWlsZGNvc3RBY2Nlc3NDYWNoZS5fYnVpbGQpOgorICAg
ICAgICAoV2VpZ2h0ZWRDb3VudGluZ0VudHJ5KToKKyAgICAgICAgKFdlaWdodGVkQ291bnRpbmdF
bnRyeS5fX2luaXRfXyk6CisgICAgICAgIChXZWlnaHRlZENvdW50aW5nRW50cnkudmFsdWUpOgor
ICAgICAgICAoQWdpbmdDYWNoZSk6CisgICAgICAgIChBZ2luZ0NhY2hlLl9faW5pdF9fKToKKyAg
ICAgICAgKEFnaW5nQ2FjaGUuX2dldGVudHJ5KToKKyAgICAgICAgKEFnaW5nQ2FjaGUuX2J1aWxk
KToKKyAgICAgICAgKEFnaW5nRW50cnkpOgorICAgICAgICAoQWdpbmdFbnRyeS5fX2luaXRfXyk6
CisgICAgICAgIChBZ2luZ0VudHJ5LmlzZXhwaXJlZCk6CisgICAgICAgICogcHkvX3BhdGgvY29t
bW9uLnB5OiBBZGRlZC4KKyAgICAgICAgKGZzcGF0aCk6CisgICAgICAgIChDaGVja2Vycyk6Cisg
ICAgICAgIChDaGVja2Vycy5fX2luaXRfXyk6CisgICAgICAgIChDaGVja2Vycy5kaXIpOgorICAg
ICAgICAoQ2hlY2tlcnMuZmlsZSk6CisgICAgICAgIChDaGVja2Vycy5kb3RmaWxlKToKKyAgICAg
ICAgKENoZWNrZXJzLmV4dCk6CisgICAgICAgIChDaGVja2Vycy5leGlzdHMpOgorICAgICAgICAo
Q2hlY2tlcnMuYmFzZW5hbWUpOgorICAgICAgICAoQ2hlY2tlcnMuYmFzZXN0YXJ0cyk6CisgICAg
ICAgIChDaGVja2Vycy5yZWx0byk6CisgICAgICAgIChDaGVja2Vycy5mbm1hdGNoKToKKyAgICAg
ICAgKENoZWNrZXJzLmVuZHN3aXRoKToKKyAgICAgICAgKENoZWNrZXJzLl9ldmFsdWF0ZSk6Cisg
ICAgICAgIChOZXZlclJhaXNlZCk6CisgICAgICAgIChQYXRoQmFzZSk6CisgICAgICAgIChQYXRo
QmFzZS5fX2Rpdl9fKToKKyAgICAgICAgKFBhdGhCYXNlLmJhc2VuYW1lKToKKyAgICAgICAgKFBh
dGhCYXNlLmRpcm5hbWUpOgorICAgICAgICAoUGF0aEJhc2UucHVyZWJhc2VuYW1lKToKKyAgICAg
ICAgKFBhdGhCYXNlLmV4dCk6CisgICAgICAgIChQYXRoQmFzZS5kaXJwYXRoKToKKyAgICAgICAg
KFBhdGhCYXNlLnJlYWRfYmluYXJ5KToKKyAgICAgICAgKFBhdGhCYXNlLnJlYWRfdGV4dCk6Cisg
ICAgICAgIChQYXRoQmFzZS5yZWFkKToKKyAgICAgICAgKFBhdGhCYXNlLnJlYWRsaW5lcyk6Cisg
ICAgICAgIChsb2FkKToKKyAgICAgICAgKG1vdmUpOgorICAgICAgICAoX19yZXByX18pOgorICAg
ICAgICAoY2hlY2spOgorICAgICAgICAoZm5tYXRjaCk6CisgICAgICAgIChyZWx0byk6CisgICAg
ICAgIChlbnN1cmVfZGlyKToKKyAgICAgICAgKGJlc3RyZWxwYXRoKToKKyAgICAgICAgKGV4aXN0
cyk6CisgICAgICAgIChpc2Rpcik6CisgICAgICAgIChpc2ZpbGUpOgorICAgICAgICAocGFydHMp
OgorICAgICAgICAoY29tbW9uKToKKyAgICAgICAgKF9fYWRkX18pOgorICAgICAgICAoX19jbXBf
Xyk6CisgICAgICAgIChfX2x0X18pOgorICAgICAgICAodmlzaXQpOgorICAgICAgICAoX3NvcnRs
aXN0KToKKyAgICAgICAgKHNhbWVmaWxlKToKKyAgICAgICAgKF9fZnNwYXRoX18pOgorICAgICAg
ICAoVmlzaXRvcik6CisgICAgICAgIChWaXNpdG9yLl9faW5pdF9fKToKKyAgICAgICAgKFZpc2l0
b3IuZ2VuKToKKyAgICAgICAgKEZOTWF0Y2hlcik6CisgICAgICAgIChGTk1hdGNoZXIuX19pbml0
X18pOgorICAgICAgICAoRk5NYXRjaGVyLl9fY2FsbF9fKToKKyAgICAgICAgKiBweS9fcGF0aC9s
b2NhbC5weTogQWRkZWQuCisgICAgICAgIChtYXBfYXNfbGlzdCk6CisgICAgICAgIChTdGF0KToK
KyAgICAgICAgKFN0YXQuX19nZXRhdHRyX18pOgorICAgICAgICAoU3RhdC5fX2luaXRfXyk6Cisg
ICAgICAgIChTdGF0Lm93bmVyKToKKyAgICAgICAgKFN0YXQuZ3JvdXApOgorICAgICAgICAoU3Rh
dC5pc2Rpcik6CisgICAgICAgIChTdGF0LmlzZmlsZSk6CisgICAgICAgIChTdGF0LmlzbGluayk6
CisgICAgICAgIChQb3NpeFBhdGgpOgorICAgICAgICAoUG9zaXhQYXRoLmNob3duKToKKyAgICAg
ICAgKFBvc2l4UGF0aC5yZWFkbGluayk6CisgICAgICAgIChQb3NpeFBhdGgubWtsaW5rdG8pOgor
ICAgICAgICAoUG9zaXhQYXRoLm1rc3ltbGlua3RvKToKKyAgICAgICAgKGdldHVzZXJpZCk6Cisg
ICAgICAgIChnZXRncm91cGlkKToKKyAgICAgICAgKExvY2FsUGF0aCk6CisgICAgICAgIChMb2Nh
bFBhdGguSW1wb3J0TWlzbWF0Y2hFcnJvcik6CisgICAgICAgIChMb2NhbFBhdGguQ2hlY2tlcnMp
OgorICAgICAgICAoTG9jYWxQYXRoLkNoZWNrZXJzLl9zdGF0KToKKyAgICAgICAgKExvY2FsUGF0
aC5DaGVja2Vycy5kaXIpOgorICAgICAgICAoTG9jYWxQYXRoLkNoZWNrZXJzLmZpbGUpOgorICAg
ICAgICAoTG9jYWxQYXRoLkNoZWNrZXJzLmV4aXN0cyk6CisgICAgICAgIChMb2NhbFBhdGguQ2hl
Y2tlcnMubGluayk6CisgICAgICAgIChMb2NhbFBhdGguX19pbml0X18pOgorICAgICAgICAoTG9j
YWxQYXRoLl9faGFzaF9fKToKKyAgICAgICAgKExvY2FsUGF0aC5fX2VxX18pOgorICAgICAgICAo
TG9jYWxQYXRoLl9fbmVfXyk6CisgICAgICAgIChMb2NhbFBhdGguX19sdF9fKToKKyAgICAgICAg
KExvY2FsUGF0aC5fX2d0X18pOgorICAgICAgICAoTG9jYWxQYXRoLnNhbWVmaWxlKToKKyAgICAg
ICAgKExvY2FsUGF0aC5yZW1vdmUpOgorICAgICAgICAoTG9jYWxQYXRoLmNvbXB1dGVoYXNoKToK
KyAgICAgICAgKExvY2FsUGF0aC5uZXcpOgorICAgICAgICAoTG9jYWxQYXRoLl9nZXRieXNwZWMp
OgorICAgICAgICAoTG9jYWxQYXRoLmRpcnBhdGgpOgorICAgICAgICAoTG9jYWxQYXRoLmpvaW4p
OgorICAgICAgICAoTG9jYWxQYXRoLm9wZW4pOgorICAgICAgICAoTG9jYWxQYXRoLl9mYXN0am9p
bik6CisgICAgICAgIChMb2NhbFBhdGguaXNsaW5rKToKKyAgICAgICAgKExvY2FsUGF0aC5jaGVj
ayk6CisgICAgICAgIChMb2NhbFBhdGgubGlzdGRpcik6CisgICAgICAgIChMb2NhbFBhdGguc2l6
ZSk6CisgICAgICAgIChMb2NhbFBhdGgubXRpbWUpOgorICAgICAgICAoTG9jYWxQYXRoLmNvcHkp
OgorICAgICAgICAoTG9jYWxQYXRoLmNvcHkucmVjKToKKyAgICAgICAgKExvY2FsUGF0aC5yZW5h
bWUpOgorICAgICAgICAoTG9jYWxQYXRoLmR1bXApOgorICAgICAgICAoTG9jYWxQYXRoLm1rZGly
KToKKyAgICAgICAgKExvY2FsUGF0aC53cml0ZV9iaW5hcnkpOgorICAgICAgICAoTG9jYWxQYXRo
LndyaXRlX3RleHQpOgorICAgICAgICAoTG9jYWxQYXRoLndyaXRlKToKKyAgICAgICAgKExvY2Fs
UGF0aC5fZW5zdXJlZGlycyk6CisgICAgICAgIChMb2NhbFBhdGguZW5zdXJlKToKKyAgICAgICAg
KExvY2FsUGF0aC5zdGF0KToKKyAgICAgICAgKExvY2FsUGF0aC5sc3RhdCk6CisgICAgICAgIChM
b2NhbFBhdGguc2V0bXRpbWUpOgorICAgICAgICAoTG9jYWxQYXRoLmNoZGlyKToKKyAgICAgICAg
KExvY2FsUGF0aC5hc19jd2QpOgorICAgICAgICAoTG9jYWxQYXRoLnJlYWxwYXRoKToKKyAgICAg
ICAgKExvY2FsUGF0aC5hdGltZSk6CisgICAgICAgIChMb2NhbFBhdGguX19yZXByX18pOgorICAg
ICAgICAoTG9jYWxQYXRoLl9fc3RyX18pOgorICAgICAgICAoTG9jYWxQYXRoLmNobW9kKToKKyAg
ICAgICAgKExvY2FsUGF0aC5weXBrZ3BhdGgpOgorICAgICAgICAoTG9jYWxQYXRoLl9lbnN1cmVz
eXNwYXRoKToKKyAgICAgICAgKExvY2FsUGF0aC5weWltcG9ydCk6CisgICAgICAgIChMb2NhbFBh
dGguc3lzZXhlYyk6CisgICAgICAgIChMb2NhbFBhdGguc3lzZmluZCk6CisgICAgICAgIChMb2Nh
bFBhdGguX2dldGhvbWVkaXIpOgorICAgICAgICAoTG9jYWxQYXRoLmdldF90ZW1wcm9vdCk6Cisg
ICAgICAgIChMb2NhbFBhdGgubWtkdGVtcCk6CisgICAgICAgIChMb2NhbFBhdGgubWFrZV9udW1i
ZXJlZF9kaXIpOgorICAgICAgICAoTG9jYWxQYXRoLm1ha2VfbnVtYmVyZWRfZGlyLnBhcnNlX251
bSk6CisgICAgICAgIChMb2NhbFBhdGgubWFrZV9udW1iZXJlZF9kaXIuY3JlYXRlX2xvY2tmaWxl
KToKKyAgICAgICAgKExvY2FsUGF0aC5tYWtlX251bWJlcmVkX2Rpci5hdGV4aXRfcmVtb3ZlX2xv
Y2tmaWxlKToKKyAgICAgICAgKExvY2FsUGF0aC5tYWtlX251bWJlcmVkX2Rpci5hdGV4aXRfcmVt
b3ZlX2xvY2tmaWxlLnRyeV9yZW1vdmVfbG9ja2ZpbGUpOgorICAgICAgICAoTG9jYWxQYXRoLm1h
a2VfbnVtYmVyZWRfZGlyLmdldF9tdGltZSk6CisgICAgICAgIChMb2NhbFBhdGgubWFrZV9udW1i
ZXJlZF9kaXIuaXNfZ2FyYmFnZSk6CisgICAgICAgIChjb3B5bW9kZSk6CisgICAgICAgIChjb3B5
c3RhdCk6CisgICAgICAgIChjb3B5Y2h1bmtlZCk6CisgICAgICAgIChpc2ltcG9ydGFibGUpOgor
ICAgICAgICAqIHB5L19wYXRoL3N2bnVybC5weTogQWRkZWQuCisgICAgICAgIChTdm5Db21tYW5k
UGF0aCk6CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5fX25ld19fKToKKyAgICAgICAgKFN2bkNv
bW1hbmRQYXRoLl9fcmVwcl9fKToKKyAgICAgICAgKFN2bkNvbW1hbmRQYXRoLl9zdm53aXRocmV2
KToKKyAgICAgICAgKFN2bkNvbW1hbmRQYXRoLl9zdm53cml0ZSk6CisgICAgICAgIChTdm5Db21t
YW5kUGF0aC5fc3ZuY21kZXhlY2F1dGgpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX2NtZGV4
ZWMpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX3N2bnBvcGVuYXV0aCk6CisgICAgICAgIChT
dm5Db21tYW5kUGF0aC5fcG9wZW4pOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX2VuY29kZWR1
cmwpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX25vcmV2X2RlbGVudHJ5KToKKyAgICAgICAg
KFN2bkNvbW1hbmRQYXRoLm9wZW4pOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguZGlycGF0aCk6
CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5ta2Rpcik6CisgICAgICAgIChTdm5Db21tYW5kUGF0
aC5jb3B5KToKKyAgICAgICAgKFN2bkNvbW1hbmRQYXRoLnJlbmFtZSk6CisgICAgICAgIChTdm5D
b21tYW5kUGF0aC5yZW1vdmUpOgorICAgICAgICAoZXhwb3J0KToKKyAgICAgICAgKGVuc3VyZSk6
CisgICAgICAgIChfcHJvcGdldCk6CisgICAgICAgIChfcHJvcGxpc3QpOgorICAgICAgICAoaW5m
byk6CisgICAgICAgIChfbGlzdGRpcl9uYW1laW5mbyk6CisgICAgICAgIChfbGlzdGRpcl9uYW1l
aW5mby5idWlsZGVyKToKKyAgICAgICAgKGxpc3RkaXIpOgorICAgICAgICAobG9nKToKKyAgICAg
ICAgKEluZm9Tdm5Db21tYW5kKToKKyAgICAgICAgKEluZm9Tdm5Db21tYW5kLl9faW5pdF9fKToK
KyAgICAgICAgKEluZm9Tdm5Db21tYW5kLl9fZXFfXyk6CisgICAgICAgIChwYXJzZV90aW1lX3dp
dGhfbWlzc2luZ195ZWFyKToKKyAgICAgICAgKFBhdGhFbnRyeSk6CisgICAgICAgIChQYXRoRW50
cnkuX19pbml0X18pOgorICAgICAgICAqIHB5L19wYXRoL3N2bndjLnB5OiBBZGRlZC4KKyAgICAg
ICAgKGNhY2hlKToKKyAgICAgICAgKFJlcG9FbnRyeSk6CisgICAgICAgIChSZXBvRW50cnkuX19p
bml0X18pOgorICAgICAgICAoUmVwb0VudHJ5Ll9fc3RyX18pOgorICAgICAgICAoUmVwb0NhY2hl
KToKKyAgICAgICAgKFJlcG9DYWNoZS5fX2luaXRfXyk6CisgICAgICAgIChSZXBvQ2FjaGUuY2xl
YXIpOgorICAgICAgICAoUmVwb0NhY2hlLnB1dCk6CisgICAgICAgIChSZXBvQ2FjaGUuZ2V0KToK
KyAgICAgICAgKF9nZXRzdm52ZXJzaW9uKToKKyAgICAgICAgKF9lc2NhcGVfaGVscGVyKToKKyAg
ICAgICAgKF9jaGVja19mb3JfYmFkX2NoYXJzKToKKyAgICAgICAgKGNoZWNrYmFkY2hhcnMpOgor
ICAgICAgICAoU3ZuUGF0aEJhc2UpOgorICAgICAgICAoU3ZuUGF0aEJhc2UuX2dldHVybCk6Cisg
ICAgICAgIChTdm5QYXRoQmFzZS5fX3N0cl9fKToKKyAgICAgICAgKFN2blBhdGhCYXNlLl9faGFz
aF9fKToKKyAgICAgICAgKFN2blBhdGhCYXNlLm5ldyk6CisgICAgICAgIChTdm5QYXRoQmFzZS5f
Z2V0YnlzcGVjKToKKyAgICAgICAgKFN2blBhdGhCYXNlLl9fZXFfXyk6CisgICAgICAgIChTdm5Q
YXRoQmFzZS5fX25lX18pOgorICAgICAgICAoU3ZuUGF0aEJhc2Uuam9pbik6CisgICAgICAgIChT
dm5QYXRoQmFzZS5wcm9wZ2V0KToKKyAgICAgICAgKFN2blBhdGhCYXNlLnByb3BsaXN0KToKKyAg
ICAgICAgKFN2blBhdGhCYXNlLnNpemUpOgorICAgICAgICAoU3ZuUGF0aEJhc2UubXRpbWUpOgor
ICAgICAgICAoU3ZuUGF0aEJhc2UuX2VzY2FwZSk6CisgICAgICAgIChTdm5QYXRoQmFzZS5DaGVj
a2Vycyk6CisgICAgICAgIChTdm5QYXRoQmFzZS5DaGVja2Vycy5kaXIpOgorICAgICAgICAoU3Zu
UGF0aEJhc2UuQ2hlY2tlcnMuX2xpc3RkaXJ3b3Jrcyk6CisgICAgICAgIChTdm5QYXRoQmFzZS5D
aGVja2Vycy5maWxlKToKKyAgICAgICAgKFN2blBhdGhCYXNlLkNoZWNrZXJzLmV4aXN0cyk6Cisg
ICAgICAgIChwYXJzZV9hcHJfdGltZSk6CisgICAgICAgIChQcm9wTGlzdERpY3QpOgorICAgICAg
ICAoUHJvcExpc3REaWN0Ll9faW5pdF9fKToKKyAgICAgICAgKFByb3BMaXN0RGljdC5fX2dldGl0
ZW1fXyk6CisgICAgICAgIChmaXhsb2NhbGUpOgorICAgICAgICAoX2NoZWNrX3BhdGgpOgorICAg
ICAgICAocGF0aF90b19mc3BhdGgpOgorICAgICAgICAodXJsX2Zyb21fcGF0aCk6CisgICAgICAg
IChTdm5BdXRoKToKKyAgICAgICAgKFN2bkF1dGguX19pbml0X18pOgorICAgICAgICAoU3ZuQXV0
aC5tYWtlY21kb3B0aW9ucyk6CisgICAgICAgIChTdm5BdXRoLl9fc3RyX18pOgorICAgICAgICAo
U3ZuV0NDb21tYW5kUGF0aCk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLl9fbmV3X18pOgor
ICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5fX2VxX18pOgorICAgICAgICAoU3ZuV0NDb21tYW5k
UGF0aC5fZ2V0dXJsKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX2VzY2FwZSk6CisgICAg
ICAgIChTdm5XQ0NvbW1hbmRQYXRoLmR1bXApOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5z
dm51cmwpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5fX3JlcHJfXyk6CisgICAgICAgIChT
dm5XQ0NvbW1hbmRQYXRoLl9fc3RyX18pOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5fbWFr
ZWF1dGhvcHRpb25zKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX2F1dGhzdm4pOgorICAg
ICAgICAoU3ZuV0NDb21tYW5kUGF0aC5fc3ZuKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgu
c3dpdGNoKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguY2hlY2tvdXQpOgorICAgICAgICAo
U3ZuV0NDb21tYW5kUGF0aC51cGRhdGUpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC53cml0
ZSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmRpcnBhdGgpOgorICAgICAgICAoU3ZuV0ND
b21tYW5kUGF0aC5fZW5zdXJlZGlycyk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmVuc3Vy
ZSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLm1rZGlyKToKKyAgICAgICAgKFN2bldDQ29t
bWFuZFBhdGguYWRkKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgucmVtb3ZlKToKKyAgICAg
ICAgKFN2bldDQ29tbWFuZFBhdGguY29weSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLnJl
bmFtZSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmxvY2spOgorICAgICAgICAoU3ZuV0ND
b21tYW5kUGF0aC51bmxvY2spOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5jbGVhbnVwKToK
KyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguc3RhdHVzKToKKyAgICAgICAgKFN2bldDQ29tbWFu
ZFBhdGguZGlmZik6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmJsYW1lKToKKyAgICAgICAg
KFN2bldDQ29tbWFuZFBhdGguY29tbWl0KToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgucHJv
cHNldCk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLnByb3BnZXQpOgorICAgICAgICAoU3Zu
V0NDb21tYW5kUGF0aC5wcm9wZGVsKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgucHJvcGxp
c3QpOgorICAgICAgICAocmV2ZXJ0KToKKyAgICAgICAgKG5ldyk6CisgICAgICAgIChqb2luKToK
KyAgICAgICAgKGluZm8pOgorICAgICAgICAobGlzdGRpcik6CisgICAgICAgIChsaXN0ZGlyLm5v
dHN2bik6CisgICAgICAgIChvcGVuKToKKyAgICAgICAgKF9nZXRieXNwZWMpOgorICAgICAgICAo
Q2hlY2tlcnMpOgorICAgICAgICAoQ2hlY2tlcnMuX19pbml0X18pOgorICAgICAgICAoQ2hlY2tl
cnMudmVyc2lvbmVkKToKKyAgICAgICAgKGxvZyk6CisgICAgICAgIChzaXplKToKKyAgICAgICAg
KG10aW1lKToKKyAgICAgICAgKF9faGFzaF9fKToKKyAgICAgICAgKFdDU3RhdHVzKToKKyAgICAg
ICAgKFdDU3RhdHVzLl9faW5pdF9fKToKKyAgICAgICAgKFdDU3RhdHVzLmFsbHBhdGgpOgorICAg
ICAgICAoV0NTdGF0dXMuZnJvbXN0cmluZyk6CisgICAgICAgIChYTUxXQ1N0YXR1cyk6CisgICAg
ICAgIChYTUxXQ1N0YXR1cy5mcm9tc3RyaW5nKToKKyAgICAgICAgKEluZm9Tdm5XQ0NvbW1hbmQp
OgorICAgICAgICAoSW5mb1N2bldDQ29tbWFuZC5fX2luaXRfXyk6CisgICAgICAgIChJbmZvU3Zu
V0NDb21tYW5kLl9fZXFfXyk6CisgICAgICAgIChwYXJzZV93Y2luZm90aW1lKToKKyAgICAgICAg
KG1ha2VfcmVjdXJzaXZlX3Byb3BkaWN0KToKKyAgICAgICAgKGltcG9ydHhtbCk6CisgICAgICAg
IChMb2dFbnRyeSk6CisgICAgICAgIChMb2dFbnRyeS5fX2luaXRfXyk6CisgICAgICAgIChMb2dF
bnRyeS5fX3JlcHJfXyk6CisgICAgICAgICogcHkvX3BhdGgvdzNjLWltcG9ydC5sb2c6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dzNjLWltcG9ydC5sb2cuCisgICAgICAgICogcHkvX3Byb2Nlc3MvX19pbml0X18ucHk6IEFkZGVk
LgorICAgICAgICAqIHB5L19wcm9jZXNzL2NtZGV4ZWMucHk6IEFkZGVkLgorICAgICAgICAoY21k
ZXhlYyk6CisgICAgICAgIChFeGVjdXRpb25GYWlsZWQpOgorICAgICAgICAoRXhlY3V0aW9uRmFp
bGVkLl9faW5pdF9fKToKKyAgICAgICAgKEV4ZWN1dGlvbkZhaWxlZC5fX3N0cl9fKToKKyAgICAg
ICAgKiBweS9fcHJvY2Vzcy9mb3JrZWRmdW5jLnB5OiBBZGRlZC4KKyAgICAgICAgKGdldF91bmJ1
ZmZlcmVkX2lvKToKKyAgICAgICAgKGdldF91bmJ1ZmZlcmVkX2lvLkF1dG9GbHVzaCk6CisgICAg
ICAgIChnZXRfdW5idWZmZXJlZF9pby5BdXRvRmx1c2gud3JpdGUpOgorICAgICAgICAoZ2V0X3Vu
YnVmZmVyZWRfaW8uQXV0b0ZsdXNoLl9fZ2V0YXR0cl9fKToKKyAgICAgICAgKEZvcmtlZEZ1bmMp
OgorICAgICAgICAoRm9ya2VkRnVuYy5fX2luaXRfXyk6CisgICAgICAgIChGb3JrZWRGdW5jLl9j
aGlsZCk6CisgICAgICAgIChGb3JrZWRGdW5jLndhaXRmaW5pc2gpOgorICAgICAgICAoRm9ya2Vk
RnVuYy5fcmVtb3ZldGVtcCk6CisgICAgICAgIChGb3JrZWRGdW5jLl9fZGVsX18pOgorICAgICAg
ICAoUmVzdWx0KToKKyAgICAgICAgKFJlc3VsdC5fX2luaXRfXyk6CisgICAgICAgICogcHkvX3By
b2Nlc3Mva2lsbHByb2MucHk6IEFkZGVkLgorICAgICAgICAoZG9raWxsKToKKyAgICAgICAgKGtp
bGwpOgorICAgICAgICAqIHB5L19wcm9jZXNzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3cz
Yy1pbXBvcnQubG9nLgorICAgICAgICAqIHB5L19zdGQucHk6IEFkZGVkLgorICAgICAgICAoUHlT
dGRJc0RlcHJlY2F0ZWRXYXJuaW5nKToKKyAgICAgICAgKFN0ZCk6CisgICAgICAgIChTdGQuX19p
bml0X18pOgorICAgICAgICAoU3RkLl9fZ2V0YXR0cl9fKToKKyAgICAgICAgKiBweS9fdmVuZG9y
ZWRfcGFja2FnZXMvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3Q6IEFkZGVkLgorICAg
ICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9JTlNUQUxM
RVI6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRp
c3QtaW5mby9NRVRBREFUQTogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2FwaXBrZy0xLjQuZGlzdC1pbmZvL1JFQ09SRDogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dIRUVMOiBBZGRlZC4KKyAgICAgICAg
KiBweS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vbWV0YWRhdGEuanNv
bjogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlz
dC1pbmZvL3RvcF9sZXZlbC50eHQ6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNr
YWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAg
ICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy5weTogQWRkZWQuCisgICAgICAgIChfcHlf
YWJzcGF0aCk6CisgICAgICAgIChkaXN0cmlidXRpb25fdmVyc2lvbik6CisgICAgICAgIChpbml0
cGtnKToKKyAgICAgICAgKGltcG9ydG9iaik6CisgICAgICAgIChBcGlNb2R1bGUpOgorICAgICAg
ICAoQXBpTW9kdWxlLl9fZG9jZ2V0KToKKyAgICAgICAgKEFwaU1vZHVsZS5fX2RvY3NldCk6Cisg
ICAgICAgIChBcGlNb2R1bGUuX19pbml0X18pOgorICAgICAgICAoQXBpTW9kdWxlLl9fcmVwcl9f
KToKKyAgICAgICAgKEFwaU1vZHVsZS5fX21ha2VhdHRyKToKKyAgICAgICAgKEFwaU1vZHVsZS5f
X2RpY3RfXyk6CisgICAgICAgIChBbGlhc01vZHVsZSk6CisgICAgICAgIChBbGlhc01vZHVsZS5n
ZXRtb2QpOgorICAgICAgICAoQWxpYXNNb2R1bGUuQWxpYXNNb2R1bGUpOgorICAgICAgICAoQWxp
YXNNb2R1bGUuQWxpYXNNb2R1bGUuX19yZXByX18pOgorICAgICAgICAoQWxpYXNNb2R1bGUuQWxp
YXNNb2R1bGUuX19nZXRhdHRyaWJ1dGVfXyk6CisgICAgICAgIChBbGlhc01vZHVsZS5BbGlhc01v
ZHVsZS5fX3NldGF0dHJfXyk6CisgICAgICAgIChBbGlhc01vZHVsZS5BbGlhc01vZHVsZS5fX2Rl
bGF0dHJfXyk6CisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAu
MC5kaXN0LWluZm8vREVTQ1JJUFRJT04ucnN0OiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9y
ZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9JTlNUQUxMRVI6IEFkZGVkLgor
ICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZv
L01FVEFEQVRBOiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29u
ZmlnLTEuMC4wLmRpc3QtaW5mby9SRUNPUkQ6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3Jl
ZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL1dIRUVMOiBBZGRlZC4KKyAgICAg
ICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9tZXRh
ZGF0YS5qc29uOiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29u
ZmlnLTEuMC4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0OiBBZGRlZC4KKyAgICAgICAgKiBweS9f
dmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby93M2MtaW1wb3J0Lmxv
ZzogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy5weTog
QWRkZWQuCisgICAgICAgIChQYXJzZUVycm9yKToKKyAgICAgICAgKFBhcnNlRXJyb3IuX19pbml0
X18pOgorICAgICAgICAoUGFyc2VFcnJvci5fX3N0cl9fKToKKyAgICAgICAgKFNlY3Rpb25XcmFw
cGVyKToKKyAgICAgICAgKFNlY3Rpb25XcmFwcGVyLl9faW5pdF9fKToKKyAgICAgICAgKFNlY3Rp
b25XcmFwcGVyLmxpbmVvZik6CisgICAgICAgIChTZWN0aW9uV3JhcHBlci5nZXQpOgorICAgICAg
ICAoU2VjdGlvbldyYXBwZXIuX19nZXRpdGVtX18pOgorICAgICAgICAoU2VjdGlvbldyYXBwZXIu
X19pdGVyX18pOgorICAgICAgICAoU2VjdGlvbldyYXBwZXIuX19pdGVyX18ubGluZW9mKToKKyAg
ICAgICAgKFNlY3Rpb25XcmFwcGVyLml0ZW1zKToKKyAgICAgICAgKEluaUNvbmZpZyk6CisgICAg
ICAgIChJbmlDb25maWcuX19pbml0X18pOgorICAgICAgICAoSW5pQ29uZmlnLl9yYWlzZSk6Cisg
ICAgICAgIChJbmlDb25maWcuX3BhcnNlKToKKyAgICAgICAgKEluaUNvbmZpZy5fcGFyc2VsaW5l
KToKKyAgICAgICAgKEluaUNvbmZpZy5saW5lb2YpOgorICAgICAgICAoSW5pQ29uZmlnLmdldCk6
CisgICAgICAgIChJbmlDb25maWcuX19nZXRpdGVtX18pOgorICAgICAgICAoSW5pQ29uZmlnLl9f
aXRlcl9fKToKKyAgICAgICAgKEluaUNvbmZpZy5fX2NvbnRhaW5zX18pOgorICAgICAgICAoaXNj
b21tZW50bGluZSk6CisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL3czYy1pbXBvcnQu
bG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIHB5L194bWxnZW4ucHk6
IEFkZGVkLgorICAgICAgICAodSk6CisgICAgICAgICh1bmljb2RlKToKKyAgICAgICAgKE5hbWVz
cGFjZU1ldGFjbGFzcyk6CisgICAgICAgIChOYW1lc3BhY2VNZXRhY2xhc3MuX19nZXRhdHRyX18p
OgorICAgICAgICAoTmFtZXNwYWNlTWV0YWNsYXNzLl9fZ2V0YXR0cl9fLmlzKToKKyAgICAgICAg
KFRhZyk6CisgICAgICAgIChUYWcuQXR0cik6CisgICAgICAgIChUYWcuQXR0ci5fX2luaXRfXyk6
CisgICAgICAgIChUYWcuX19pbml0X18pOgorICAgICAgICAoVGFnLl9fdW5pY29kZV9fKToKKyAg
ICAgICAgKFRhZy51bmljb2RlKToKKyAgICAgICAgKFRhZy5fX3JlcHJfXyk6CisgICAgICAgIChI
dG1sVGFnKToKKyAgICAgICAgKEh0bWxUYWcudW5pY29kZSk6CisgICAgICAgIChodG1sKToKKyAg
ICAgICAgKGh0bWwuU3R5bGUpOgorICAgICAgICAoaHRtbC5TdHlsZS5fX2luaXRfXyk6CisgICAg
ICAgIChyYXcpOgorICAgICAgICAocmF3Ll9faW5pdF9fKToKKyAgICAgICAgKFNpbXBsZVVuaWNv
ZGVWaXNpdG9yKToKKyAgICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLl9faW5pdF9fKToKKyAg
ICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLnZpc2l0KToKKyAgICAgICAgKFNpbXBsZVVuaWNv
ZGVWaXNpdG9yLnZpc2l0LmluKToKKyAgICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLl9fb2Jq
ZWN0KToKKyAgICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLnJhdyk6CisgICAgICAgIChTaW1w
bGVVbmljb2RlVmlzaXRvci5saXN0KToKKyAgICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLlRh
Zyk6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci5hdHRyaWJ1dGVzKToKKyAgICAgICAg
KFNpbXBsZVVuaWNvZGVWaXNpdG9yLnJlcHJfYXR0cmlidXRlKToKKyAgICAgICAgKFNpbXBsZVVu
aWNvZGVWaXNpdG9yLmdldHN0eWxlKToKKyAgICAgICAgKFNpbXBsZVVuaWNvZGVWaXNpdG9yLl9p
c3NpbmdsZXRvbik6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci5faXNpbmxpbmUpOgor
ICAgICAgICAoSHRtbFZpc2l0b3IpOgorICAgICAgICAoSHRtbFZpc2l0b3IucmVwcl9hdHRyaWJ1
dGUpOgorICAgICAgICAoSHRtbFZpc2l0b3IuX2lzc2luZ2xldG9uKToKKyAgICAgICAgKEh0bWxW
aXNpdG9yLl9pc2lubGluZSk6CisgICAgICAgIChfZXNjYXBlKToKKyAgICAgICAgKF9lc2NhcGUu
X19pbml0X18pOgorICAgICAgICAoX2VzY2FwZS5fcmVwbGFjZXIpOgorICAgICAgICAoX2VzY2Fw
ZS5fX2NhbGxfXyk6CisgICAgICAgICogcHkvdGVzdC5weTogQWRkZWQuCisgICAgICAgICogcHkv
dzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cuCisgICAgICAgICogc2V0
dXAuY2ZnOiBBZGRlZC4KKyAgICAgICAgKiBzZXR1cC5weTogQWRkZWQuCisgICAgICAgIChnZXRf
dmVyc2lvbik6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB0YXNrcy9fX2luaXRfXy5weTog
QWRkZWQuCisgICAgICAgICogdGFza3MvdmVuZG9yaW5nLnB5OiBBZGRlZC4KKyAgICAgICAgKHJl
bW92ZV9saWJzKToKKyAgICAgICAgKHVwZGF0ZV9saWJzKToKKyAgICAgICAgKiB0YXNrcy93M2Mt
aW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiB0ZXN0aW5nL2NvZGUv
dGVzdF9hc3NlcnRpb24ucHk6IEFkZGVkLgorICAgICAgICAoZXh2YWx1ZSk6CisgICAgICAgIChm
KToKKyAgICAgICAgKHRlc3RfYXNzZXJ0KToKKyAgICAgICAgKHRlc3RfYXNzZXJ0X3dpdGhpbl9m
aW5hbGx5KToKKyAgICAgICAgKHRlc3RfaGVsbG8pOgorICAgICAgICAqIHRlc3RpbmcvY29kZS90
ZXN0X2NvZGUucHk6IEFkZGVkLgorICAgICAgICAodGVzdF9uZSk6CisgICAgICAgICh0ZXN0X2Nv
ZGVfZ2l2ZXNfYmFja19uYW1lX2Zvcl9ub3RfZXhpc3RpbmdfZmlsZSk6CisgICAgICAgICh0ZXN0
X2NvZGVfd2l0aF9jbGFzcyk6CisgICAgICAgICh0ZXN0X2NvZGVfd2l0aF9jbGFzcy5BKToKKyAg
ICAgICAgKHgpOgorICAgICAgICAodGVzdF9jb2RlX2Z1bGxzb3VyY2UpOgorICAgICAgICAodGVz
dF9jb2RlX3NvdXJjZSk6CisgICAgICAgICh0ZXN0X2NvZGVfc291cmNlLngpOgorICAgICAgICAo
dGVzdF9mcmFtZV9nZXRzb3VyY2VsaW5lbm9fbXlzZWxmKToKKyAgICAgICAgKHRlc3RfZnJhbWVf
Z2V0c291cmNlbGluZW5vX215c2VsZi5mdW5jKToKKyAgICAgICAgKHRlc3RfZ2V0c3RhdGVtZW50
X2VtcHR5X2Z1bGxzb3VyY2UpOgorICAgICAgICAodGVzdF9nZXRzdGF0ZW1lbnRfZW1wdHlfZnVs
bHNvdXJjZS5mdW5jKToKKyAgICAgICAgKHRlc3RfY29kZV9mcm9tX2Z1bmMpOgorICAgICAgICAo
dGVzdF9idWlsdGluX3BhdGNoX3VucGF0Y2gpOgorICAgICAgICAodGVzdF9idWlsdGluX3BhdGNo
X3VucGF0Y2gubXljb21waWxlKToKKyAgICAgICAgKHRlc3RfYnVpbHRpbl9wYXRjaF91bnBhdGNo
LlN1Yik6CisgICAgICAgICh0ZXN0X3VuaWNvZGVfaGFuZGxpbmcpOgorICAgICAgICAodGVzdF91
bmljb2RlX2hhbmRsaW5nLmYpOgorICAgICAgICAodGVzdF9jb2RlX2dldGFyZ3MpOgorICAgICAg
ICAodGVzdF9jb2RlX2dldGFyZ3MuZjEpOgorICAgICAgICAodGVzdF9jb2RlX2dldGFyZ3MuZjIp
OgorICAgICAgICAodGVzdF9jb2RlX2dldGFyZ3MuZjMpOgorICAgICAgICAodGVzdF9jb2RlX2dl
dGFyZ3MuZjQpOgorICAgICAgICAodGVzdF9mcmFtZV9nZXRhcmdzKToKKyAgICAgICAgKHRlc3Rf
ZnJhbWVfZ2V0YXJncy5mMSk6CisgICAgICAgICh0ZXN0X2ZyYW1lX2dldGFyZ3MuZjIpOgorICAg
ICAgICAodGVzdF9mcmFtZV9nZXRhcmdzLmYzKToKKyAgICAgICAgKHRlc3RfZnJhbWVfZ2V0YXJn
cy5mNCk6CisgICAgICAgIChUZXN0RXhjZXB0aW9uSW5mbyk6CisgICAgICAgIChUZXN0RXhjZXB0
aW9uSW5mby50ZXN0X2JhZF9nZXRzb3VyY2UpOgorICAgICAgICAoVGVzdFRyYWNlYmFja0VudHJ5
KToKKyAgICAgICAgKFRlc3RUcmFjZWJhY2tFbnRyeS50ZXN0X2dldHNvdXJjZSk6CisgICAgICAg
ICogdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weTogQWRkZWQuCisgICAgICAgIChUV01vY2sp
OgorICAgICAgICAoVFdNb2NrLl9faW5pdF9fKToKKyAgICAgICAgKFRXTW9jay5zZXApOgorICAg
ICAgICAoVFdNb2NrLmxpbmUpOgorICAgICAgICAoVFdNb2NrLm1hcmt1cCk6CisgICAgICAgICh0
ZXN0X2V4Y2luZm9fc2ltcGxlKToKKyAgICAgICAgKHRlc3RfZXhjaW5mb19nZXRzdGF0ZW1lbnQp
OgorICAgICAgICAodGVzdF9leGNpbmZvX2dldHN0YXRlbWVudC5nKToKKyAgICAgICAgKHRlc3Rf
ZXhjaW5mb19nZXRzdGF0ZW1lbnQuZik6CisgICAgICAgIChmKToKKyAgICAgICAgKGcpOgorICAg
ICAgICAoaCk6CisgICAgICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19oKToKKyAgICAgICAgKFRlc3RU
cmFjZWJhY2tfZl9nX2guc2V0dXBfbWV0aG9kKToKKyAgICAgICAgKFRlc3RUcmFjZWJhY2tfZl9n
X2gudGVzdF90cmFjZWJhY2tfZW50cmllcyk6CisgICAgICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19o
LnRlc3RfdHJhY2ViYWNrX2VudHJ5X2dldHNvdXJjZSk6CisgICAgICAgIChUZXN0VHJhY2ViYWNr
X2ZfZ19oLnRlc3RfdHJhY2ViYWNrX2VudHJ5X2dldHNvdXJjZS5mKToKKyAgICAgICAgKFRlc3RU
cmFjZWJhY2tfZl9nX2gudGVzdF90cmFjZWJhY2tfZW50cnlfZ2V0c291cmNlX2luX2NvbnN0cnVj
dCk6CisgICAgICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19oLnRlc3RfdHJhY2ViYWNrX2VudHJ5X2dl
dHNvdXJjZV9pbl9jb25zdHJ1Y3QueHl6KToKKyAgICAgICAgKGZ1bmMxKToKKyAgICAgICAgKGVu
dHJ5KToKKyAgICAgICAgKHJlYzIpOgorICAgICAgICAocmVjMSk6CisgICAgICAgIChzb21lZnVu
Yyk6CisgICAgICAgIChpKToKKyAgICAgICAgKiB0ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHk6
IEFkZGVkLgorICAgICAgICAodGVzdF9zb3VyY2Vfc3RyX2Z1bmN0aW9uKToKKyAgICAgICAgKHRl
c3Rfc291cmNlX3B1dGFyb3VuZCk6CisgICAgICAgIChmKToKKyAgICAgICAgKGcpOgorICAgICAg
ICAodGVzdF9kZWluZGVudCk6CisgICAgICAgICh0ZXN0X2RlaW5kZW50LmYpOgorICAgICAgICAo
Zi5nKToKKyAgICAgICAgKEEpOgorICAgICAgICAoQS5tZXRob2QpOgorICAgICAgICAodGVzdF9p
ZGVtX2NvbXBpbGVfYW5kX2dldHNvdXJjZSk6CisgICAgICAgICh0ZXN0X2lkZW1fY29tcGlsZV9h
bmRfZ2V0c291cmNlLngpOgorICAgICAgICAodGVzdF9maW5kc291cmNlX2ZhbGxiYWNrKToKKyAg
ICAgICAgKHRlc3RfZmluZHNvdXJjZV9mYWxsYmFjay54KToKKyAgICAgICAgKHRlc3RfZmluZHNv
dXJjZSk6CisgICAgICAgICh0ZXN0X2ZpbmRzb3VyY2UueCk6CisgICAgICAgICh0ZXN0X2NvbW1l
bnRfaW5fc3RhdGVtZW50KToKKyAgICAgICAgKHRlc3RfYm9keSk6CisgICAgICAgICh0ZXN0X2V4
Y2VwdF9saW5lKToKKyAgICAgICAgKHRlc3RfZXhjZXB0X2JvZHkpOgorICAgICAgICAodGVzdF9l
bHNlKToKKyAgICAgICAgKFRlc3RUcnlGaW5hbGx5KToKKyAgICAgICAgKHRlc3RfZWxpZl9jbGF1
c2UpOgorICAgICAgICAodGVzdF9lbGlmKToKKyAgICAgICAgKHRlc3Rfc2VtaWNvbG9uKToKKyAg
ICAgICAgKGZ1bmMpOgorICAgICAgICAoWFhYX3Rlc3RfZXhwcmVzc2lvbl9tdWx0aWxpbmUpOgor
ICAgICAgICAqIHRlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0Lmxv
Zy4KKyAgICAgICAgKiB0ZXN0aW5nL2NvbmZ0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
aW5nL2lvXy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9pb18vdGVzdF9j
YXB0dXJlLnB5OiBBZGRlZC4KKyAgICAgICAgKHRvYnl0ZXMpOgorICAgICAgICAodG90ZXh0KToK
KyAgICAgICAgKG9zd3JpdGVieXRlcyk6CisgICAgICAgIChUZXN0VGV4dElPKToKKyAgICAgICAg
KFRlc3RUZXh0SU8udGVzdF90ZXh0KToKKyAgICAgICAgKFRlc3RUZXh0SU8udGVzdF91bmljb2Rl
X2FuZF9zdHJfbWl4dHVyZSk6CisgICAgICAgICh0ZXN0X2J5dGVzX2lvKToKKyAgICAgICAgKHRl
c3RfZG9udHJlYWRmcm9taW5wdXQpOgorICAgICAgICAocHl0ZXN0X2Z1bmNhcmdfX3RtcGZpbGUp
OgorICAgICAgICAodGVzdF9kdXBmaWxlKToKKyAgICAgICAgKHRlc3RfZHVwZmlsZV9ub19tb2Rl
KToKKyAgICAgICAgKHRlc3RfZHVwZmlsZV9ub19tb2RlLlNvbWVGaWxlV3JhcHBlcik6CisgICAg
ICAgICh0ZXN0X2R1cGZpbGVfbm9fbW9kZS5Tb21lRmlsZVdyYXBwZXIuZmlsZW5vKToKKyAgICAg
ICAgKGxzb2ZfY2hlY2spOgorICAgICAgICAoVGVzdEZEQ2FwdHVyZSk6CisgICAgICAgIChUZXN0
RkRDYXB0dXJlLnRlc3Rfbm90X25vdyk6CisgICAgICAgIChUZXN0RkRDYXB0dXJlLnRlc3Rfc2lt
cGxlKToKKyAgICAgICAgKFRlc3RGRENhcHR1cmUudGVzdF9zaW1wbGVfbWFueSk6CisgICAgICAg
IChUZXN0RkRDYXB0dXJlLnRlc3Rfc2ltcGxlX21hbnlfY2hlY2tfb3Blbl9maWxlcyk6CisgICAg
ICAgIChUZXN0RkRDYXB0dXJlLnRlc3Rfc2ltcGxlX2ZhaWxfc2Vjb25kX3N0YXJ0KToKKyAgICAg
ICAgKFRlc3RGRENhcHR1cmUudGVzdF9zdGRlcnIpOgorICAgICAgICAoVGVzdEZEQ2FwdHVyZS50
ZXN0X3N0ZGluKToKKyAgICAgICAgKFRlc3RGRENhcHR1cmUudGVzdF93cml0ZW9yZyk6CisgICAg
ICAgIChUZXN0U3RkQ2FwdHVyZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS5nZXRjYXB0dXJl
KToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlLnRlc3RfY2FwdHVyaW5nX2RvbmVfc2ltcGxlKToK
KyAgICAgICAgKFRlc3RTdGRDYXB0dXJlLnRlc3RfY2FwdHVyaW5nX3Jlc2V0X3NpbXBsZSk6Cisg
ICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyKToKKyAgICAg
ICAgKFRlc3RTdGRDYXB0dXJlLnRlc3RfY2FwdHVyaW5nX3JlYWRvdXRlcnJfdW5pY29kZSk6Cisg
ICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyX2RlY29kZV9l
cnJvcl9oYW5kbGluZyk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1cmluZ19t
aXhlZCk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X3Jlc2V0X3R3aWNlX2Vycm9yKToK
KyAgICAgICAgKFRlc3RTdGRDYXB0dXJlLnRlc3RfY2FwdHVyaW5nX21vZGlmeV9zeXNvdXRlcnJf
aW5fYmV0d2Vlbik6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1cmluZ19lcnJv
cl9yZWN1cnNpdmUpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUudGVzdF9qdXN0X291dF9jYXB0
dXJlKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlLnRlc3RfanVzdF9lcnJfY2FwdHVyZSk6Cisg
ICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X3N0ZGluX3Jlc3RvcmVkKToKKyAgICAgICAgKFRl
c3RTdGRDYXB0dXJlLnRlc3Rfc3RkaW5fbnVsbGVkX2J5X2RlZmF1bHQpOgorICAgICAgICAoVGVz
dFN0ZENhcHR1cmUudGVzdF9zdXNwZW5kX3Jlc3VtZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVy
ZU5vdE5vdyk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZU5vdE5vdy5nZXRjYXB0dXJlKToKKyAg
ICAgICAgKFRlc3RTdGRDYXB0dXJlRkQpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmVGRC5nZXRj
YXB0dXJlKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkQudGVzdF9pbnRlcm1pbmdsaW5nKToK
KyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkQudGVzdF9jYWxsY2FwdHVyZSk6CisgICAgICAgIChU
ZXN0U3RkQ2FwdHVyZUZELnRlc3RfY2FsbGNhcHR1cmUuZnVuYyk6CisgICAgICAgIChUZXN0U3Rk
Q2FwdHVyZUZELnRlc3RfbWFueSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZELnRlc3RfbWFu
eS5mKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkROb3ROb3cpOgorICAgICAgICAoVGVzdFN0
ZENhcHR1cmVGRE5vdE5vdy5nZXRjYXB0dXJlKToKKyAgICAgICAgKHRlc3Rfc3RkY2FwdHVyZV9m
ZF90bXBmaWxlKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQpOgorICAgICAg
ICAoVGVzdFN0ZENhcHR1cmVGRGludmFsaWRGRC50ZXN0X3N0ZGNhcHR1cmVfZmRfaW52YWxpZF9m
ZCk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZEaW52YWxpZEZELnRlc3Rfc3RkY2FwdHVyZV9m
ZF9pbnZhbGlkX2ZkLnRlc3Rfc3Rkb3V0KToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkRpbnZh
bGlkRkQudGVzdF9zdGRjYXB0dXJlX2ZkX2ludmFsaWRfZmQudGVzdF9zdGRlcnIpOgorICAgICAg
ICAoVGVzdFN0ZENhcHR1cmVGRGludmFsaWRGRC50ZXN0X3N0ZGNhcHR1cmVfZmRfaW52YWxpZF9m
ZC50ZXN0X3N0ZGluKToKKyAgICAgICAgKiB0ZXN0aW5nL2lvXy90ZXN0X3NhZmVyZXByLnB5OiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RTYWZlUmVwcik6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVz
dF9zaW1wbGVfcmVwcik6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9tYXhzaXplKToKKyAg
ICAgICAgKFRlc3RTYWZlUmVwci50ZXN0X21heHNpemVfZXJyb3Jfb25faW5zdGFuY2UpOgorICAg
ICAgICAoVGVzdFNhZmVSZXByLnRlc3RfbWF4c2l6ZV9lcnJvcl9vbl9pbnN0YW5jZS5BKToKKyAg
ICAgICAgKFRlc3RTYWZlUmVwci50ZXN0X21heHNpemVfZXJyb3Jfb25faW5zdGFuY2UuQS5fX3Jl
cHJfXyk6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9leGNlcHRpb25zKToKKyAgICAgICAg
KFRlc3RTYWZlUmVwci50ZXN0X2V4Y2VwdGlvbnMuQnJva2VuUmVwcik6CisgICAgICAgIChUZXN0
U2FmZVJlcHIudGVzdF9leGNlcHRpb25zLkJyb2tlblJlcHIuX19pbml0X18pOgorICAgICAgICAo
VGVzdFNhZmVSZXByLnRlc3RfZXhjZXB0aW9ucy5Ccm9rZW5SZXByLl9fcmVwcl9fKToKKyAgICAg
ICAgKFRlc3RTYWZlUmVwci50ZXN0X2V4Y2VwdGlvbnMuQnJva2VuUmVwckV4Y2VwdGlvbik6Cisg
ICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9iaWdfcmVwcik6CisgICAgICAgIChUZXN0U2FmZVJl
cHIudGVzdF9yZXByX29uX25ld3N0eWxlKToKKyAgICAgICAgKFRlc3RTYWZlUmVwci50ZXN0X3Jl
cHJfb25fbmV3c3R5bGUuRnVuY3Rpb24pOgorICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3RfcmVw
cl9vbl9uZXdzdHlsZS5GdW5jdGlvbi5fX3JlcHJfXyk6CisgICAgICAgIChUZXN0U2FmZVJlcHIu
dGVzdF91bmljb2RlKToKKyAgICAgICAgKHRlc3RfdW5pY29kZV9oYW5kbGluZyk6CisgICAgICAg
ICh0ZXN0X3VuaWNvZGVfaGFuZGxpbmcuZik6CisgICAgICAgICogdGVzdGluZy9pb18vdGVzdF90
ZXJtaW5hbHdyaXRlci5weTogQWRkZWQuCisgICAgICAgICh0ZXN0X2dldF90ZXJtaW5hbF93aWR0
aCk6CisgICAgICAgICh0ZXN0X2dldGRpbWVuc2lvbnMpOgorICAgICAgICAodGVzdF90ZXJtaW5h
bF93aWR0aF9DT0xVTU5TKToKKyAgICAgICAgKHRlc3RfdGVybWluYWx3cml0ZXJfZGVmYXVsdHdp
ZHRoXzgwKToKKyAgICAgICAgKHRlc3RfdGVybWluYWx3cml0ZXJfZ2V0ZGltZW5zaW9uc19ib2d1
cyk6CisgICAgICAgICh0ZXN0X3Rlcm1pbmFsd3JpdGVyX2dldGRpbWVuc2lvbnNfZW1hY3MpOgor
ICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9jb21wdXRlc193aWR0aCk6CisgICAgICAgICh0
ZXN0X3Rlcm1pbmFsd3JpdGVyX2RlZmF1bHRfaW5zdGFudGlhdGlvbik6CisgICAgICAgICh0ZXN0
X3Rlcm1pbmFsd3JpdGVyX2R1bWJfdGVybV9ub19tYXJrdXApOgorICAgICAgICAodGVzdF90ZXJt
aW5hbHdyaXRlcl9kdW1iX3Rlcm1fbm9fbWFya3VwLk15RmlsZSk6CisgICAgICAgICh0ZXN0X3Rl
cm1pbmFsd3JpdGVyX2R1bWJfdGVybV9ub19tYXJrdXAuTXlGaWxlLmlzYXR0eSk6CisgICAgICAg
ICh0ZXN0X3Rlcm1pbmFsd3JpdGVyX2ZpbGVfdW5pY29kZSk6CisgICAgICAgICh0ZXN0X3VuaWNv
ZGVfZW5jb2RpbmcpOgorICAgICAgICAodGVzdF91bmljb2RlX29uX2ZpbGVfd2l0aF9hc2NpaV9l
bmNvZGluZyk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIpOgorICAgICAgICAoVGVzdFRl
cm1pbmFsV3JpdGVyLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cyk6CisgICAgICAgIChUZXN0VGVybWlu
YWxXcml0ZXIucHl0ZXN0X2Z1bmNhcmdfX3R3KToKKyAgICAgICAgKFRlc3RUZXJtaW5hbFdyaXRl
ci5weXRlc3RfZnVuY2FyZ19fdHcuZ2V0bGluZXMpOgorICAgICAgICAoVGVzdFRlcm1pbmFsV3Jp
dGVyLnRlc3RfbGluZSk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9saW5lX3Vu
aWNvZGUpOgorICAgICAgICAoVGVzdFRlcm1pbmFsV3JpdGVyLnRlc3Rfc2VwX25vX3RpdGxlKToK
KyAgICAgICAgKFRlc3RUZXJtaW5hbFdyaXRlci50ZXN0X3NlcF93aXRoX3RpdGxlKToKKyAgICAg
ICAgKFRlc3RUZXJtaW5hbFdyaXRlci50ZXN0X19lc2NhcGVkKToKKyAgICAgICAgKFRlc3RUZXJt
aW5hbFdyaXRlci50ZXN0X21hcmt1cCk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVz
dF9saW5lX3dyaXRlX21hcmt1cCk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9h
dHRyX2Z1bGx3aWR0aCk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9yZWxpbmUp
OgorICAgICAgICAodGVzdF90ZXJtaW5hbF93aXRoX2NhbGxhYmxlX3dyaXRlX2FuZF9mbHVzaCk6
CisgICAgICAgICh0ZXN0X3Rlcm1pbmFsX3dpdGhfY2FsbGFibGVfd3JpdGVfYW5kX2ZsdXNoLmZp
bCk6CisgICAgICAgICh0ZXN0X2NoYXJzX29uX2N1cnJlbnRfbGluZSk6CisgICAgICAgICh0ZXN0
X2NoYXJzX29uX2N1cnJlbnRfbGluZS53cml0ZV9hbmRfY2hlY2spOgorICAgICAgICAodGVzdF9h
dHRyX2hhc21hcmt1cCk6CisgICAgICAgICh0ZXN0X2Fuc2lfcHJpbnQpOgorICAgICAgICAodGVz
dF9zaG91bGRfZG9fbWFya3VwX1BZX0NPTE9SU19lcV8xKToKKyAgICAgICAgKHRlc3Rfc2hvdWxk
X2RvX21hcmt1cF9QWV9DT0xPUlNfZXFfMCk6CisgICAgICAgICogdGVzdGluZy9pb18vdzNjLWlt
cG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cuCisgICAgICAgICogdGVzdGluZy9s
b2cvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvbG9nL3Rlc3RfbG9nLnB5
OiBBZGRlZC4KKyAgICAgICAgKHNldHVwX21vZHVsZSk6CisgICAgICAgICh0ZWFyZG93bl9tb2R1
bGUpOgorICAgICAgICAoVGVzdExvZ1Byb2R1Y2VyKToKKyAgICAgICAgKFRlc3RMb2dQcm9kdWNl
ci5zZXR1cF9tZXRob2QpOgorICAgICAgICAoVGVzdExvZ1Byb2R1Y2VyLnRlc3RfZ2V0c3RhdGVf
c2V0c3RhdGUpOgorICAgICAgICAoVGVzdExvZ1Byb2R1Y2VyLnRlc3RfcHJvZHVjZXJfcmVwcik6
CisgICAgICAgIChUZXN0TG9nUHJvZHVjZXIudGVzdF9wcm9kdWNlX29uZV9rZXl3b3JkKToKKyAg
ICAgICAgKFRlc3RMb2dQcm9kdWNlci50ZXN0X3Byb2R1Y2VyX2NsYXNzKToKKyAgICAgICAgKFRl
c3RMb2dQcm9kdWNlci50ZXN0X3Byb2R1Y2VyX2NhY2hpbmcpOgorICAgICAgICAoVGVzdExvZ0Nv
bnN1bWVyKToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lci5zZXR1cF9tZXRob2QpOgorICAgICAg
ICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbG9nX25vbmUpOgorICAgICAgICAoVGVzdExvZ0NvbnN1
bWVyLnRlc3RfbG9nX2RlZmF1bHRfc3RkZXJyKToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lci50
ZXN0X3NpbXBsZV9jb25zdW1lcl9tYXRjaCk6CisgICAgICAgIChUZXN0TG9nQ29uc3VtZXIudGVz
dF9zaW1wbGVfY29uc3VtZXJfbWF0Y2hfMik6CisgICAgICAgIChUZXN0TG9nQ29uc3VtZXIudGVz
dF9ub19hdXRvX3Byb2R1Y2VyKToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lci50ZXN0X3NldGNv
bnN1bWVyX3dpdGhfcHJvZHVjZXIpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbXVs
dGlfY29uc3VtZXIpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbG9nX3N0ZGVycik6
CisgICAgICAgIChUZXN0TG9nQ29uc3VtZXIudGVzdF9sb2dfZmlsZSk6CisgICAgICAgIChUZXN0
TG9nQ29uc3VtZXIudGVzdF9sb2dfZmlsZV9hcHBlbmRfbW9kZSk6CisgICAgICAgIChUZXN0TG9n
Q29uc3VtZXIudGVzdF9sb2dfZmlsZV9kZWxheWVkX2NyZWF0ZSk6CisgICAgICAgIChUZXN0TG9n
Q29uc3VtZXIudGVzdF9rZXl3b3JkX2Jhc2VkX2xvZ19maWxlcyk6CisgICAgICAgIChUZXN0TG9n
Q29uc3VtZXIubm9fdGVzdF9sb2dfc3lzbG9nKToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lci5u
b190ZXN0X2xvZ193aW5ldmVudCk6CisgICAgICAgIChUZXN0TG9nQ29uc3VtZXIubm9fdGVzdF9s
b2dfZW1haWwpOgorICAgICAgICAqIHRlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weTogQWRkZWQu
CisgICAgICAgICh0ZXN0X2ZvcndhcmRpbmdfdG9fd2FybmluZ3NfbW9kdWxlKToKKyAgICAgICAg
KHRlc3RfYXBpd2Fybl9mdW5jdGlvbmFsKToKKyAgICAgICAgKHRlc3Rfc3RhY2tsZXZlbCk6Cisg
ICAgICAgICh0ZXN0X3N0YWNrbGV2ZWwuZik6CisgICAgICAgICh0ZXN0X3N0YWNrbGV2ZWxfaW5p
dHBrZ193aXRoX3Jlc29sdmUpOgorICAgICAgICAodGVzdF9zdGFja2xldmVsX2luaXRwa2dfd2l0
aF9yZXNvbHZlLmYpOgorICAgICAgICAodGVzdF9zdGFja2xldmVsX2luaXRwa2dfd2l0aF9yZXNv
bHZlLl9fZ2V0YXR0cl9fKToKKyAgICAgICAgKiB0ZXN0aW5nL2xvZy93M2MtaW1wb3J0LmxvZzog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvY29tbW9u
LnB5OiBBZGRlZC4KKyAgICAgICAgKENvbW1vbkZTVGVzdHMpOgorICAgICAgICAoQ29tbW9uRlNU
ZXN0cy50ZXN0X2NvbnN0cnVjdG9yX2VxdWFsaXR5KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMu
dGVzdF9lcV9ub25zdHJpbmcpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X25ld19pZGVu
dGljYWwpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2pvaW4pOgorICAgICAgICAoQ29t
bW9uRlNUZXN0cy50ZXN0X2pvaW5fbm9ybWFsaXplZCk6CisgICAgICAgIChDb21tb25GU1Rlc3Rz
LnRlc3Rfam9pbl9ub2FyZ3MpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2FkZF9zb21l
dGhpbmcpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3BhcnRzKToKKyAgICAgICAgKENv
bW1vbkZTVGVzdHMudGVzdF9jb21tb24pOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2Jh
c2VuYW1lX2NoZWNrcyk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfYmFzZW5hbWUpOgor
ICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2Rpcm5hbWUpOgorICAgICAgICAoQ29tbW9uRlNU
ZXN0cy50ZXN0X2RpcnBhdGgpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2RpcnBhdGhf
d2l0aF9hcmdzKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9uZXdiYXNlbmFtZSk6Cisg
ICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rfbm90X2V4aXN0cyk6CisgICAgICAgIChDb21tb25G
U1Rlc3RzLnRlc3RfZXhpc3RzKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9kaXIpOgor
ICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2ZubWF0Y2hfZmlsZSk6CisgICAgICAgIChDb21t
b25GU1Rlc3RzLnRlc3RfcmVsdG8pOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2Jlc3Ry
ZWxwYXRoKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9yZWx0b19ub3RfcmVsYXRpdmUp
OgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2xpc3RkaXIpOgorICAgICAgICAoQ29tbW9u
RlNUZXN0cy50ZXN0X2xpc3RkaXJfZm5tYXRjaHN0cmluZyk6CisgICAgICAgIChDb21tb25GU1Rl
c3RzLnRlc3RfbGlzdGRpcl9maWx0ZXIpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2xp
c3RkaXJfc29ydGVkKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF92aXNpdF9ub2ZpbHRl
cik6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfdmlzaXRfbm9yZWN1cnNlKToKKyAgICAg
ICAgKENvbW1vbkZTVGVzdHMudGVzdF92aXNpdF9maWx0ZXJmdW5jX2lzX3N0cmluZyk6CisgICAg
ICAgIChDb21tb25GU1Rlc3RzLnRlc3RfdmlzaXRfaWdub3JlKToKKyAgICAgICAgKENvbW1vbkZT
VGVzdHMudGVzdF92aXNpdF9lbmRzd2l0aCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rf
ZW5kc3dpdGgpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2NtcCk6CisgICAgICAgIChD
b21tb25GU1Rlc3RzLnRlc3Rfc2ltcGxlX3JlYWQpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50
ZXN0X2pvaW5fZGl2X29wZXJhdG9yKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9leHQp
OgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3B1cmViYXNlbmFtZSk6CisgICAgICAgIChD
b21tb25GU1Rlc3RzLnRlc3RfbXVsdGlwbGVfcGFydHMpOgorICAgICAgICAoQ29tbW9uRlNUZXN0
cy50ZXN0X2RvdHRlZF9uYW1lX2V4dCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfbmV3
ZXh0KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9yZWFkbGluZXMpOgorICAgICAgICAo
Q29tbW9uRlNUZXN0cy50ZXN0X3JlYWRsaW5lc19ub2NyKToKKyAgICAgICAgKENvbW1vbkZTVGVz
dHMudGVzdF9maWxlKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9ub3RfZmlsZSk6Cisg
ICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rfbm9uX2V4aXN0ZW50KToKKyAgICAgICAgKENvbW1v
bkZTVGVzdHMudGVzdF9zaXplKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9tdGltZSk6
CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfcmVsdG9fd3JvbmdfdHlwZSk6CisgICAgICAg
IChDb21tb25GU1Rlc3RzLnRlc3RfbG9hZCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rf
dmlzaXRfZmlsZXNvbmx5KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF92aXNpdF9ub2Rv
dGZpbGVzKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF92aXNpdF9icmVhZHRoZmlyc3Qp
OgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3Zpc2l0X3NvcnQpOgorICAgICAgICAoQ29t
bW9uRlNUZXN0cy50ZXN0X2VuZHN3aXRoLmNoayk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRl
c3RfY29weV9maWxlKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9jb3B5X2Rpcik6Cisg
ICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfcmVtb3ZlX2ZpbGUpOgorICAgICAgICAoQ29tbW9u
RlNUZXN0cy50ZXN0X3JlbW92ZV9kaXJfcmVjdXJzaXZlX2J5X2RlZmF1bHQpOgorICAgICAgICAo
Q29tbW9uRlNUZXN0cy50ZXN0X2Vuc3VyZV9kaXIpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50
ZXN0X21rZGlyX2FuZF9yZW1vdmUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X21vdmVf
ZmlsZSk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfbW92ZV9kaXIpOgorICAgICAgICAo
Q29tbW9uRlNUZXN0cy50ZXN0X2ZzcGF0aF9wcm90b2NvbF9tYXRjaF9zdHJwYXRoKToKKyAgICAg
ICAgKENvbW1vbkZTVGVzdHMudGVzdF9mc3BhdGhfZnVuY19tYXRjaF9zdHJwYXRoKToKKyAgICAg
ICAgKENvbW1vbkZTVGVzdHMudGVzdF9mc3BhdGhfb3Blbik6CisgICAgICAgIChDb21tb25GU1Rl
c3RzLnRlc3RfZnNwYXRoX2ZzZW5jb2RlKToKKyAgICAgICAgKHNldHVwdGVzdGZzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL3BhdGgvY29uZnRlc3QucHk6IEFkZGVkLgorICAgICAgICAocHl0ZXN0X2Z1
bmNhcmdfX3JlcG93YzEpOgorICAgICAgICAocHl0ZXN0X2Z1bmNhcmdfX3JlcG93YzIpOgorICAg
ICAgICAoZ2V0c3ZuYmluKToKKyAgICAgICAgKGdldHJlcG93Yyk6CisgICAgICAgIChzYXZlX3Jl
cG93Yyk6CisgICAgICAgIChyZXN0b3JlX3JlcG93Yyk6CisgICAgICAgICogdGVzdGluZy9wYXRo
L3JlcG90ZXN0LmR1bXA6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvcGF0aC9zdm50ZXN0YmFz
ZS5weTogQWRkZWQuCisgICAgICAgIChDb21tb25Tdm5UZXN0cyk6CisgICAgICAgIChDb21tb25T
dm5UZXN0cy50ZXN0X3Byb3BnZXQpOgorICAgICAgICAoQ29tbW9uU3ZuVGVzdHMudGVzdF9wcm9w
bGlzdCk6CisgICAgICAgIChDb21tb25Tdm5UZXN0cy50ZXN0X2luZm8pOgorICAgICAgICAoQ29t
bW9uU3ZuVGVzdHMudGVzdF9sb2dfc2ltcGxlKToKKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdGVz
dF9jYWNoZXV0aWwucHk6IEFkZGVkLgorICAgICAgICAoQmFzaWNDYWNoZUFQSVRlc3QpOgorICAg
ICAgICAoQmFzaWNDYWNoZUFQSVRlc3QudGVzdF9nZXRvcmJ1aWxkKToKKyAgICAgICAgKEJhc2lj
Q2FjaGVBUElUZXN0LnRlc3RfY2FjaGVfZ2V0X2tleV9lcnJvcik6CisgICAgICAgIChCYXNpY0Nh
Y2hlQVBJVGVzdC50ZXN0X2RlbGVudHJ5X25vbl9yYWlzaW5nKToKKyAgICAgICAgKEJhc2ljQ2Fj
aGVBUElUZXN0LnRlc3RfZGVsZW50cnlfcmFpc2luZyk6CisgICAgICAgIChCYXNpY0NhY2hlQVBJ
VGVzdC50ZXN0X2NsZWFyKToKKyAgICAgICAgKFRlc3RCdWlsZGNvc3RBY2Nlc3MpOgorICAgICAg
ICAoVGVzdEJ1aWxkY29zdEFjY2Vzcy50ZXN0X2NhY2hlX3dvcmtzX3NvbWV3aGF0X3NpbXBsZSk6
CisgICAgICAgIChUZXN0QnVpbGRjb3N0QWNjZXNzLnRlc3RfY2FjaGVfd29ya3Nfc29tZXdoYXRf
c2ltcGxlLmNvdW50ZXIpOgorICAgICAgICAoVGVzdEFnaW5nKToKKyAgICAgICAgKFRlc3RBZ2lu
Zy50ZXN0X2NhY2hlX2V2aWN0aW9uKToKKyAgICAgICAgKHRlc3RfcHJ1bmVfbG93ZXN0d2VpZ2h0
KToKKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdGVzdF9sb2NhbC5weTogQWRkZWQuCisgICAgICAg
IChwYXRoMSk6CisgICAgICAgIChmYWtlX2ZzcGF0aF9vYmopOgorICAgICAgICAoZmFrZV9mc3Bh
dGhfb2JqLkZha2VGU1BhdGhDbGFzcyk6CisgICAgICAgIChmYWtlX2ZzcGF0aF9vYmouRmFrZUZT
UGF0aENsYXNzLl9faW5pdF9fKToKKyAgICAgICAgKGZha2VfZnNwYXRoX29iai5GYWtlRlNQYXRo
Q2xhc3MuX19mc3BhdGhfXyk6CisgICAgICAgIChiYXRjaF9tYWtlX251bWJlcmVkX2RpcnMpOgor
ICAgICAgICAoVGVzdExvY2FsUGF0aCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfam9p
bl9ub3JtcGF0aCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfZGlycGF0aF9hYnNfbm9f
YWJzKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9nZXRoYXNoKToKKyAgICAgICAgKFRl
c3RMb2NhbFBhdGgudGVzdF9yZW1vdmVfcmVtb3Zlc19yZWFkb25seV9maWxlKToKKyAgICAgICAg
KFRlc3RMb2NhbFBhdGgudGVzdF9yZW1vdmVfcmVtb3Zlc19yZWFkb25seV9kaXIpOgorICAgICAg
ICAoVGVzdExvY2FsUGF0aC50ZXN0X3JlbW92ZV9yZW1vdmVzX2Rpcl9hbmRfcmVhZG9ubHlfZmls
ZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfcmVtb3ZlX3JvdXRlc19pZ25vcmVfZXJy
b3JzKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9pbml0aWFsaXplX2N1cmRpcik6Cisg
ICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfY2hkaXJfZ29uZSk6CisgICAgICAgIChUZXN0TG9j
YWxQYXRoLnRlc3RfYXNfY3dkKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9hc19jd2Rf
ZXhjZXB0aW9uKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9pbml0aWFsaXplX3JlbGRp
cik6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfdGlsZGVfZXhwYW5zaW9uKToKKyAgICAg
ICAgKFRlc3RMb2NhbFBhdGgudGVzdF9lcV93aXRoX3N0cmluZ3MpOgorICAgICAgICAoVGVzdExv
Y2FsUGF0aC50ZXN0X2VxX3dpdGhfbm9uZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rf
ZXFfbm9uX2FzY2lpX3VuaWNvZGUpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2d0X3dp
dGhfc3RyaW5ncyk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfb3Blbl9hbmRfZW5zdXJl
KToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF93cml0ZV9hbmRfZW5zdXJlKToKKyAgICAg
ICAgKFRlc3RMb2NhbFBhdGgudGVzdF9kdW1wKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVz
dF9zZXRtdGltZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfbm9ybXBhdGgpOgorICAg
ICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X21rZHRlbXBfY3JlYXRpb24pOgorICAgICAgICAoVGVz
dExvY2FsUGF0aC50ZXN0X3RtcHJvb3QpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2No
ZGlyKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9lbnN1cmVfZmlsZXBhdGhfd2l0aGRp
cik6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfZW5zdXJlX2ZpbGVwYXRoX3dpdGhvdXRk
aXIpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2Vuc3VyZV9kaXJwYXRoKToKKyAgICAg
ICAgKFRlc3RMb2NhbFBhdGgudGVzdF9lbnN1cmVfbm9uX2FzY2lpX3VuaWNvZGUpOgorICAgICAg
ICAoVGVzdExvY2FsUGF0aC50ZXN0X2luaXRfZnJvbV9wYXRoKToKKyAgICAgICAgKFRlc3RMb2Nh
bFBhdGgudGVzdF9sb25nX2ZpbGVuYW1lcyk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rf
dmlzaXRfZGVwdGhfZmlyc3QpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X3Zpc2l0X3Jl
Y19mbm1hdGNoKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9mbm1hdGNoX2ZpbGVfYWJz
cGF0aCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfc3lzZmluZCk6CisgICAgICAgIChU
ZXN0TG9jYWxQYXRoLnRlc3RfZnNwYXRoX3Byb3RvY29sX290aGVyX2NsYXNzKToKKyAgICAgICAg
KFRlc3RMb2NhbFBhdGgudGVzdF9tYWtlX251bWJlcmVkX2Rpcl9tdWx0aXByb2Nlc3Nfc2FmZSk6
CisgICAgICAgIChUZXN0RXhlY3V0aW9uT25XaW5kb3dzKToKKyAgICAgICAgKFRlc3RFeGVjdXRp
b25PbldpbmRvd3MudGVzdF9zeXNmaW5kX2JhdF9leGVfYmVmb3JlKToKKyAgICAgICAgKFRlc3RF
eGVjdXRpb24pOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X3N5c2ZpbmRfbm9fcGVybWlz
c29uX2lnbm9yZWQpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X3N5c2ZpbmRfYWJzb2x1
dGUpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X3N5c2ZpbmRfbXVsdGlwbGUpOgorICAg
ICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X3N5c2V4ZWMpOgorICAgICAgICAoVGVzdEV4ZWN1dGlv
bi50ZXN0X3N5c2V4ZWNfZmFpbGluZyk6CisgICAgICAgIChUZXN0RXhlY3V0aW9uLnRlc3RfbWFr
ZV9udW1iZXJlZF9kaXIpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X21ha2VfbnVtYmVy
ZWRfZGlyX2Nhc2VfaW5zZW5zaXRpdmUpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X21h
a2VfbnVtYmVyZWRfZGlyX2Nhc2Vfc2Vuc2l0aXZlKToKKyAgICAgICAgKFRlc3RFeGVjdXRpb24u
dGVzdF9tYWtlX251bWJlcmVkX2Rpcl9Ob3RJbXBsZW1lbnRlZF9FcnJvcik6CisgICAgICAgIChU
ZXN0RXhlY3V0aW9uLnRlc3RfbWFrZV9udW1iZXJlZF9kaXJfTm90SW1wbGVtZW50ZWRfRXJyb3Iu
bm90aW1wbCk6CisgICAgICAgIChUZXN0RXhlY3V0aW9uLnRlc3RfbG9ja2VkX21ha2VfbnVtYmVy
ZWRfZGlyKToKKyAgICAgICAgKFRlc3RFeGVjdXRpb24udGVzdF9lcnJvcl9wcmVzZXJ2YXRpb24p
OgorICAgICAgICAoVGVzdEltcG9ydCk6CisgICAgICAgIChUZXN0SW1wb3J0LnRlc3RfcHlpbXBv
cnQpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X3JlbmFtZWRfZGlyX2NyZWF0
ZXNfbWlzbWF0Y2gpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X21lc3N5X25h
bWUpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X2Rpcik6CisgICAgICAgIChU
ZXN0SW1wb3J0LnRlc3RfcHlpbXBvcnRfZXhlY2ZpbGVfZGlmZmVyZW50X25hbWUpOgorICAgICAg
ICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X2EpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0
X3B5aW1wb3J0X2IpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X2MpOgorICAg
ICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X2QpOgorICAgICAgICAoVGVzdEltcG9ydC50
ZXN0X3B5aW1wb3J0X2FuZF9pbXBvcnQpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1w
b3J0X2NoZWNrX2ZpbGVwYXRoX2NvbnNpc3RlbmN5KToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVz
dF9pc3N1ZTEzMV9weWltcG9ydF9vbl9faW5pdF9fKToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVz
dF9lbnN1cmVzeXNwYXRoX2FwcGVuZCk6CisgICAgICAgICh0ZXN0X3B5cGtnZGlyKToKKyAgICAg
ICAgKHRlc3RfcHlwa2dkaXJfdW5pbXBvcnRhYmxlKToKKyAgICAgICAgKHRlc3RfaXNpbXBvcnRh
YmxlKToKKyAgICAgICAgKHRlc3RfaG9tZWRpcl9mcm9tX0hPTUUpOgorICAgICAgICAodGVzdF9o
b21lZGlyX25vdF9leGlzdHMpOgorICAgICAgICAodGVzdF9zYW1lZmlsZSk6CisgICAgICAgICh0
ZXN0X2xpc3RkaXJfc2luZ2xlX2FyZyk6CisgICAgICAgICh0ZXN0X21rZHRlbXBfcm9vdGRpcik6
CisgICAgICAgIChUZXN0V0lOTG9jYWxQYXRoKToKKyAgICAgICAgKFRlc3RXSU5Mb2NhbFBhdGgu
dGVzdF9vd25lcl9ncm91cF9ub3RfaW1wbGVtZW50ZWQpOgorICAgICAgICAoVGVzdFdJTkxvY2Fs
UGF0aC50ZXN0X2NobW9kX3NpbXBsZV9pbnQpOgorICAgICAgICAoVGVzdFdJTkxvY2FsUGF0aC50
ZXN0X3BhdGhfY29tcGFyaXNvbl9sb3dlcmNhc2VfbWl4ZWQpOgorICAgICAgICAoVGVzdFdJTkxv
Y2FsUGF0aC50ZXN0X3JlbHRvX3dpdGhfbWl4ZWRfY2FzZSk6CisgICAgICAgIChUZXN0V0lOTG9j
YWxQYXRoLnRlc3RfYWxsb3dfdW5peF9zdHlsZV9wYXRocyk6CisgICAgICAgIChUZXN0V0lOTG9j
YWxQYXRoLnRlc3Rfc3lzZmluZF9pbl9jdXJyZW50ZGlyKToKKyAgICAgICAgKFRlc3RXSU5Mb2Nh
bFBhdGgudGVzdF9mbm1hdGNoX2ZpbGVfYWJzcGF0aF9wb3NpeF9wYXR0ZXJuX29uX3dpbjMyKToK
KyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aCk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBh
dGgudGVzdF9oYXJkbGluayk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9zeW1s
aW5rX2FyZV9pZGVudGljYWwpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3Rfc3lt
bGlua19pc2ZpbGUpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3Rfc3ltbGlua19y
ZWxhdGl2ZSk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9zeW1saW5rX25vdF9l
eGlzdGluZyk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9yZWx0b193aXRoX3Jv
b3QpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfdmlzaXRfcmVjdXJzaXZlX3N5
bWxpbmspOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3Rfc3ltbGlua19pc2Rpcik6
CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9zeW1saW5rX3JlbW92ZSk6CisgICAg
ICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9yZWFscGF0aF9maWxlKToKKyAgICAgICAgKFRl
c3RQT1NJWExvY2FsUGF0aC50ZXN0X293bmVyKToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0
aC50ZXN0X3N0YXRfaGVscGVycyk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9z
dGF0X25vbl9yYWlzaW5nKToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2F0aW1l
KToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2NvbW1vbmRpcik6CisgICAgICAg
IChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9jb21tb25kaXJfbm9jb21tb24pOgorICAgICAgICAo
VGVzdFBPU0lYTG9jYWxQYXRoLnRlc3Rfam9pbl90b19yb290KToKKyAgICAgICAgKFRlc3RQT1NJ
WExvY2FsUGF0aC50ZXN0X2pvaW5fcm9vdF90b19yb290X3dpdGhfbm9fYWJzKToKKyAgICAgICAg
KFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2NobW9kX3NpbXBsZV9pbnQpOgorICAgICAgICAoVGVz
dFBPU0lYTG9jYWxQYXRoLnRlc3RfY2htb2RfcmVjX2ludCk6CisgICAgICAgIChUZXN0UE9TSVhM
b2NhbFBhdGgudGVzdF9jaG1vZF9yZWNfaW50LnJlY2ZpbHRlcik6CisgICAgICAgIChUZXN0UE9T
SVhMb2NhbFBhdGgudGVzdF9jb3B5X2FyY2hpdmluZyk6CisgICAgICAgIChUZXN0UE9TSVhMb2Nh
bFBhdGgudGVzdF9jb3B5X3N0YXRfZmlsZSk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgu
dGVzdF9jb3B5X3N0YXRfZGlyKToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2No
b3duX2lkZW50aXR5KToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2Nob3duX2Rh
bmdsaW5nX2xpbmspOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY2hvd25faWRl
bnRpdHlfcmVjX21heWZhaWwpOgorICAgICAgICAoVGVzdFVuaWNvZGVQeTJQeTMpOgorICAgICAg
ICAoVGVzdFVuaWNvZGVQeTJQeTMudGVzdF9qb2luX2Vuc3VyZSk6CisgICAgICAgIChUZXN0VW5p
Y29kZVB5MlB5My50ZXN0X2xpc3RkaXIpOgorICAgICAgICAoVGVzdFVuaWNvZGVQeTJQeTMudGVz
dF9yZWFkX3dyaXRlKToKKyAgICAgICAgKFRlc3RCaW5hcnlBbmRUZXh0TWV0aG9kcyk6CisgICAg
ICAgIChUZXN0QmluYXJ5QW5kVGV4dE1ldGhvZHMudGVzdF9yZWFkX2JpbndyaXRlKToKKyAgICAg
ICAgKFRlc3RCaW5hcnlBbmRUZXh0TWV0aG9kcy50ZXN0X3JlYWRfdGV4dHdyaXRlKToKKyAgICAg
ICAgKFRlc3RCaW5hcnlBbmRUZXh0TWV0aG9kcy50ZXN0X2RlZmF1bHRfZW5jb2RpbmcpOgorICAg
ICAgICAqIHRlc3RpbmcvcGF0aC90ZXN0X3N2bmF1dGgucHk6IEFkZGVkLgorICAgICAgICAobWFr
ZV9yZXBvX2F1dGgpOgorICAgICAgICAodGVzdF9pbmZvKToKKyAgICAgICAgKHRlc3RfaW5mby5k
aXJwYXRoKToKKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdGVzdF9zdm51cmwucHk6IEFkZGVkLgor
ICAgICAgICAocHl0ZXN0X2Z1bmNhcmdfX3BhdGgxKToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21t
YW5kUGF0aCk6CisgICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9sb2FkKToKKyAg
ICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0X2xpc3RkaXIpOgorICAgICAgICAoVGVz
dFN2blVSTENvbW1hbmRQYXRoLnRlc3RfdmlzaXRfaWdub3JlKToKKyAgICAgICAgKFRlc3RTdm5V
UkxDb21tYW5kUGF0aC50ZXN0X3N2bnVybF9uZWVkc19hcmcpOgorICAgICAgICAoVGVzdFN2blVS
TENvbW1hbmRQYXRoLnRlc3Rfc3ZudXJsX2RvZXNfbm90X2FjY2VwdF9Ob25lX2VpdGhlcik6Cisg
ICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9zdm51cmxfY2hhcmFjdGVyc19zaW1w
bGUpOgorICAgICAgICAoVGVzdFN2blVSTENvbW1hbmRQYXRoLnRlc3Rfc3ZudXJsX2NoYXJhY3Rl
cnNfYXRfdXNlcik6CisgICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9zdm51cmxf
Y2hhcmFjdGVyc19hdF9wYXRoKToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0
X3N2bnVybF9jaGFyYWN0ZXJzX2NvbG9uX3BvcnQpOgorICAgICAgICAoVGVzdFN2blVSTENvbW1h
bmRQYXRoLnRlc3Rfc3ZudXJsX2NoYXJhY3RlcnNfdGlsZGVfZW5kKToKKyAgICAgICAgKFRlc3RT
dm5VUkxDb21tYW5kUGF0aC50ZXN0X3N2bnVybF9jaGFyYWN0ZXJzX2NvbG9uX3BhdGgpOgorICAg
ICAgICAoVGVzdFN2blVSTENvbW1hbmRQYXRoLnRlc3RfZXhwb3J0KToKKyAgICAgICAgKFRlc3RT
dm5JbmZvQ29tbWFuZCk6CisgICAgICAgIChUZXN0U3ZuSW5mb0NvbW1hbmQudGVzdF9zdm5fMV8y
KToKKyAgICAgICAgKFRlc3RTdm5JbmZvQ29tbWFuZC50ZXN0X3N2bl8xXzMpOgorICAgICAgICAo
VGVzdFN2bkluZm9Db21tYW5kLnRlc3Rfc3ZuXzFfM19iKToKKyAgICAgICAgKHRlc3RfYmFkY2hh
cnMpOgorICAgICAgICAqIHRlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5OiBBZGRlZC4KKyAgICAg
ICAgKHRlc3RfbWFrZV9yZXBvKToKKyAgICAgICAgKHB5dGVzdF9mdW5jYXJnX19wYXRoMSk6Cisg
ICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aCk6CisgICAgICAgIChUZXN0V0NTdm5Db21tYW5k
UGF0aC50ZXN0X3N0YXR1c19hdHRyaWJ1dGVzX3NpbXBsZSk6CisgICAgICAgIChUZXN0V0NTdm5D
b21tYW5kUGF0aC50ZXN0X3N0YXR1c19hdHRyaWJ1dGVzX3NpbXBsZS5hc3NlcnRfbm9jaGFuZ2Up
OgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfYWRkZWQpOgorICAg
ICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfY2hhbmdlKToKKyAgICAgICAg
KFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3RhdHVzX2FkZGVkX29uZGlyZWN0b3J5KToKKyAg
ICAgICAgKFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3RhdHVzX3Vua25vd24pOgorICAgICAg
ICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfdW5jaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3RhdHVzX3VwZGF0ZSk6CisgICAgICAgIChUZXN0
V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19yZXBsYWNlZCk6CisgICAgICAgIChUZXN0V0NT
dm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19pZ25vcmVkKToKKyAgICAgICAgKFRlc3RXQ1N2bkNv
bW1hbmRQYXRoLnRlc3Rfc3RhdHVzX2NvbmZsaWN0KToKKyAgICAgICAgKFRlc3RXQ1N2bkNvbW1h
bmRQYXRoLnRlc3Rfc3RhdHVzX2V4dGVybmFsKToKKyAgICAgICAgKFRlc3RXQ1N2bkNvbW1hbmRQ
YXRoLnRlc3Rfc3RhdHVzX2RlbGV0ZWQpOgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgu
dGVzdF9zdGF0dXNfbm9hdXRob3IpOgorICAgICAgICAqIHRlc3RpbmcvcGF0aC93M2MtaW1wb3J0
LmxvZzogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9wcm9jZXNzL19faW5pdF9fLnB5OiBBZGRl
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL3Byb2Nlc3MvdGVzdF9jbWRleGVjLnB5OiBBZGRlZC4KKyAg
ICAgICAgKGV4dmFsdWUpOgorICAgICAgICAoVGVzdF9leGVjX2NtZCk6CisgICAgICAgIChUZXN0
X2V4ZWNfY21kLnRlc3Rfc2ltcGxlKToKKyAgICAgICAgKFRlc3RfZXhlY19jbWQudGVzdF9zaW1w
bGVfbmV3bGluZSk6CisgICAgICAgIChUZXN0X2V4ZWNfY21kLnRlc3Rfc2ltcGxlX2Vycm9yKToK
KyAgICAgICAgKFRlc3RfZXhlY19jbWQudGVzdF9zaW1wbGVfZXJyb3JfZXhhY3Rfc3RhdHVzKToK
KyAgICAgICAgKFRlc3RfZXhlY19jbWQudGVzdF9lcnIpOgorICAgICAgICAqIHRlc3RpbmcvcHJv
Y2Vzcy90ZXN0X2ZvcmtlZGZ1bmMucHk6IEFkZGVkLgorICAgICAgICAodGVzdF93YWl0ZmluaXNo
X3JlbW92ZXNfdGVtcGRpcik6CisgICAgICAgICh0ZXN0X3RlbXBkaXJfZ2V0c19nY19jb2xsZWN0
ZWQpOgorICAgICAgICAodGVzdF9iYXNpY19mb3JrZWRmdW5jKToKKyAgICAgICAgKHRlc3RfZXhp
dHN0YXR1cyk6CisgICAgICAgICh0ZXN0X2V4aXRzdGF0dXMuZnVuYyk6CisgICAgICAgICh0ZXN0
X2V4ZWNwdGlvbl9pbl9mdW5jKToKKyAgICAgICAgKHRlc3RfZXhlY3B0aW9uX2luX2Z1bmMuZnVu
KToKKyAgICAgICAgKHRlc3RfZm9ya2VkZnVuY19vbl9mZHMpOgorICAgICAgICAodGVzdF9mb3Jr
ZWRmdW5jX29uX2Zkc19vdXRwdXQpOgorICAgICAgICAodGVzdF9mb3JrZWRmdW5jX29uX3N0ZG91
dCk6CisgICAgICAgICh0ZXN0X2ZvcmtlZGZ1bmNfb25fc3Rkb3V0LmJveGYzKToKKyAgICAgICAg
KHRlc3RfZm9ya2VkZnVuY19zaWduYWwpOgorICAgICAgICAodGVzdF9mb3JrZWRmdW5jX2h1Z2Vf
ZGF0YSk6CisgICAgICAgICh0ZXN0X2JveF9zZXEpOgorICAgICAgICAodGVzdF9ib3hfaW5fYV9i
b3gpOgorICAgICAgICAodGVzdF9ib3hfaW5fYV9ib3guYm94ZnVuKToKKyAgICAgICAgKHRlc3Rf
a2lsbF9mdW5jX2ZvcmtlZCk6CisgICAgICAgICh0ZXN0X2tpbGxfZnVuY19mb3JrZWQuQSk6Cisg
ICAgICAgICh0ZXN0X2tpbGxfZnVuY19mb3JrZWQuYm94X2Z1bik6CisgICAgICAgICh0ZXN0X2hv
b2tzKToKKyAgICAgICAgKHRlc3RfaG9va3MuX2JveGVkKToKKyAgICAgICAgKHRlc3RfaG9va3Mu
X29uX3N0YXJ0KToKKyAgICAgICAgKHRlc3RfaG9va3MuX29uX2V4aXQpOgorICAgICAgICAoYm94
ZjEpOgorICAgICAgICAoYm94ZjIpOgorICAgICAgICAoYm94ZjMpOgorICAgICAgICAoYm94c2Vn
KToKKyAgICAgICAgKGJveGh1Z2UpOgorICAgICAgICAqIHRlc3RpbmcvcHJvY2Vzcy90ZXN0X2tp
bGxwcm9jLnB5OiBBZGRlZC4KKyAgICAgICAgKHRlc3Rfa2lsbCk6CisgICAgICAgICogdGVzdGlu
Zy9wcm9jZXNzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nLgorICAgICAgICAq
IHRlc3Rpbmcvcm9vdC9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9yb290
L3Rlc3RfYnVpbHRpbi5weTogQWRkZWQuCisgICAgICAgICh0ZXN0X2VudW1lcmF0ZSk6CisgICAg
ICAgICh0ZXN0X2FueSk6CisgICAgICAgICh0ZXN0X2FsbCk6CisgICAgICAgICh0ZXN0X0Jhc2VF
eGNlcHRpb24pOgorICAgICAgICAodGVzdF9CYXNlRXhjZXB0aW9uLk15UmFuZG9tQ2xhc3MpOgor
ICAgICAgICAodGVzdF9HZW5lcmF0b3JFeGl0KToKKyAgICAgICAgKHRlc3RfcmV2ZXJzZWQpOgor
ICAgICAgICAodGVzdF9zaW1wbGUpOgorICAgICAgICAodGVzdF9mcm96ZW5zZXQpOgorICAgICAg
ICAodGVzdF9zb3J0ZWQpOgorICAgICAgICAodGVzdF9zb3J0ZWQudGVzdCk6CisgICAgICAgICh0
ZXN0X3NvcnRlZC50ZXN0LmNvbXBhcmUpOgorICAgICAgICAodGVzdF9wcmludF9zaW1wbGUpOgor
ICAgICAgICAodGVzdF9wcmludF9zaW1wbGUuWCk6CisgICAgICAgICh0ZXN0X3ByaW50X3NpbXBs
ZS5YLl9fcmVwcl9fKToKKyAgICAgICAgKHRlc3RfZXhlY2ZpbGUpOgorICAgICAgICAodGVzdF9l
eGVjZmlsZS5mKToKKyAgICAgICAgKHRlc3RfZXhlY2ZpbGUuQSk6CisgICAgICAgICh0ZXN0X2dl
dGZ1bmNkaWN0KToKKyAgICAgICAgKHRlc3RfZ2V0ZnVuY2RpY3QuZik6CisgICAgICAgICh0ZXN0
X2NhbGxhYmxlKToKKyAgICAgICAgKHRlc3RfY2FsbGFibGUuQSk6CisgICAgICAgICh0ZXN0X3Rv
dGV4dCk6CisgICAgICAgICh0ZXN0X2J5dGVzX3RleHQpOgorICAgICAgICAodGVzdF90b3RleHRf
YmFkdXRmOCk6CisgICAgICAgICh0ZXN0X3JlcmFpc2UpOgorICAgICAgICAodGVzdF9leGVjKToK
KyAgICAgICAgKHRlc3RfdHJ5aW1wb3J0KToKKyAgICAgICAgKHRlc3RfZ2V0Y29kZSk6CisgICAg
ICAgICogdGVzdGluZy9yb290L3Rlc3RfZXJyb3IucHk6IEFkZGVkLgorICAgICAgICAodGVzdF9l
cnJvcl9jbGFzc2VzKToKKyAgICAgICAgKHRlc3RfaGFzX25hbWUpOgorICAgICAgICAodGVzdF9w
aWNrbGFiaWxpdHlfaXNzdWUxKToKKyAgICAgICAgKHRlc3RfdW5rbm93bl9lcnJvcik6CisgICAg
ICAgICh0ZXN0X2Vycm9yX2NvbnZlcnNpb25fRU5PVERJUik6CisgICAgICAgICh0ZXN0X2NoZWNr
ZWRfY2FsbF9zdXBwb3J0c19rd2FyZ3MpOgorICAgICAgICAoQ2FzZSk6CisgICAgICAgIChDYXNl
LnRlc3RfYXNzZXJ0V2FybnMpOgorICAgICAgICAqIHRlc3Rpbmcvcm9vdC90ZXN0X3B5X2ltcG9y
dHMucHk6IEFkZGVkLgorICAgICAgICAodGVzdF9kaXIpOgorICAgICAgICAodGVzdF92aXJ0dWFs
X21vZHVsZV9pZGVudGl0eSk6CisgICAgICAgICh0ZXN0X2ltcG9ydGFsbCk6CisgICAgICAgICh0
ZXN0X2ltcG9ydGFsbC5yZWN1cnNlKToKKyAgICAgICAgKGNoZWNrX2ltcG9ydCk6CisgICAgICAg
ICh0ZXN0X3N0YXJfaW1wb3J0KToKKyAgICAgICAgKHRlc3RfYWxsX3Jlc29sdmVzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL3Jvb3QvdGVzdF9zdGQucHk6IEFkZGVkLgorICAgICAgICAodGVzdF9vcyk6
CisgICAgICAgICh0ZXN0X2ltcG9ydF9lcnJvcl9jb252ZXJ0c190b19hdHRyaWJ1dGVlcnJvcik6
CisgICAgICAgICh0ZXN0X3N0ZF9nZXRzX2l0KToKKyAgICAgICAgKiB0ZXN0aW5nL3Jvb3QvdGVz
dF94bWxnZW4ucHk6IEFkZGVkLgorICAgICAgICAobnMpOgorICAgICAgICAodGVzdF9lc2NhcGUp
OgorICAgICAgICAodGVzdF9lc2NhcGUuQSk6CisgICAgICAgICh0ZXN0X2VzY2FwZS5BLl9fdW5p
Y29kZV9fKToKKyAgICAgICAgKHRlc3RfZXNjYXBlLkEuX19zdHJfXyk6CisgICAgICAgICh0ZXN0
X3RhZ193aXRoX3RleHQpOgorICAgICAgICAodGVzdF9jbGFzc19pZGVudGl0eSk6CisgICAgICAg
ICh0ZXN0X3RhZ193aXRoX3RleHRfYW5kX2F0dHJpYnV0ZXMpOgorICAgICAgICAodGVzdF90YWdf
d2l0aF9zdWJjbGFzc2VkX2F0dHJfc2ltcGxlKToKKyAgICAgICAgKHRlc3RfdGFnX3dpdGhfc3Vi
Y2xhc3NlZF9hdHRyX3NpbXBsZS5teSk6CisgICAgICAgICh0ZXN0X3RhZ193aXRoX3N1YmNsYXNz
ZWRfYXR0cl9zaW1wbGUubXkuQXR0cik6CisgICAgICAgICh0ZXN0X3RhZ193aXRoX3Jhd19hdHRy
KToKKyAgICAgICAgKHRlc3RfdGFnX25lc3RlZCk6CisgICAgICAgICh0ZXN0X2xpc3RfbmVzdGVk
KToKKyAgICAgICAgKHRlc3RfdGFnX3htbG5hbWUpOgorICAgICAgICAodGVzdF90YWdfeG1sbmFt
ZS5teSk6CisgICAgICAgICh0ZXN0X3RhZ193aXRoX3RleHRfZW50aXR5KToKKyAgICAgICAgKHRl
c3RfdGFnX3dpdGhfdGV4dF9hbmRfYXR0cmlidXRlc19lbnRpdHkpOgorICAgICAgICAodGVzdF9y
YXcpOgorICAgICAgICAodGVzdF9odG1sX25hbWVfc3RpY2t5bmVzcyk6CisgICAgICAgICh0ZXN0
X2h0bWxfbmFtZV9zdGlja3luZXNzLm15KToKKyAgICAgICAgKHRlc3Rfc3R5bGVuYW1lcyk6Cisg
ICAgICAgICh0ZXN0X3N0eWxlbmFtZXMubXkpOgorICAgICAgICAodGVzdF9zdHlsZW5hbWVzLm15
LmJvZHkpOgorICAgICAgICAodGVzdF9jbGFzc19Ob25lKToKKyAgICAgICAgKHRlc3RfYWx0ZXJu
YXRpbmdfc3R5bGUpOgorICAgICAgICAodGVzdF9hbHRlcm5hdGluZ19zdHlsZS5teSk6CisgICAg
ICAgICh0ZXN0X2FsdGVybmF0aW5nX3N0eWxlLm15LmxpKToKKyAgICAgICAgKHRlc3RfYWx0ZXJu
YXRpbmdfc3R5bGUubXkubGkuc3R5bGUpOgorICAgICAgICAodGVzdF9zaW5nbGV0b24pOgorICAg
ICAgICAodGVzdF9pbmxpbmUpOgorICAgICAgICAodGVzdF9vYmplY3RfdGFncyk6CisgICAgICAg
ICogdGVzdGluZy9yb290L3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9n
LgorICAgICAgICAqIHRlc3RpbmcvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cu
CisgICAgICAgICogdG94LmluaTogQWRkZWQuCisgICAgICAgICogdzNjLWltcG9ydC5sb2c6IEFk
ZGVkLgorCisxLjUuMgorPT09PT0KKworLSBmaXggIzE2OSwgIzE3MDogZXJyb3IgaW1wb3J0aW5n
IHB5LmxvZyBvbiBXaW5kb3dzOiBubyBtb2R1bGUgbmFtZWQgYGBzeXNsb2dgYC4KKworMS41LjEK
Kz09PT09CisKKy0gZml4ICMxNjcgLSBwcmV2ZW50IHBpcCBmcm9tIGluc3RhbGxpbmcgcHkgaW4g
dW5zdXBwb3J0ZWQgUHl0aG9uIHZlcnNpb25zLgorCisxLjUuMAorPT09PT0KKworTk9URTogKip0
aGlzIHJlbGVhc2UgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIFB5UEkqKiBkdWUgdG8gbWlzc2luZyBw
YWNrYWdlCittZXRhZGF0YSB3aGljaCBjYXVzZWQgYSBudW1iZXIgb2YgcHJvYmxlbXMgdG8gcHky
NiBhbmQgcHkzMyB1c2Vycy4KK1RoaXMgaXNzdWUgd2FzIGZpeGVkIGluIHRoZSAxLjUuMSByZWxl
YXNlLgorCistIHB5dGhvbiAyLjYgYW5kIDMuMyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZAorLSBk
ZXByZWNhdGUgcHkuc3RkIGFuZCByZW1vdmUgYWxsIGludGVybmFsIHVzZXMKKy0gZml4ICM3MyB0
dXJuIHB5LmVycm9yIGludG8gYW4gYWN0dWFsIG1vZHVsZQorLSBwYXRoIGpvaW4gdG8gLyBubyBs
b25nZXIgcHJvZHVjZXMgbGVhZGluZyBkb3VibGUgc2xhc2hlcworLSBmaXggIzgyIC0gcmVtb3Zl
IHVuc3VwcG9ydGFibGUgYWxpYXNlcworLSBmaXggcHl0aG9uMzcgY29tcGF0aWJpbGl0eSBvZiBw
YXRoLnN5c2ZpbmQgb24gd2luZG93cyBieSBjb3JyZWN0bHkgcmVwbGFjaW5nIHZhcnMKKy0gdHVy
biBpbmljb25maWcgYW5kIGFwaXBrZyBpbnRvIHZlbmRvcmVkIHBhY2thZ2VzIGFuZCBlYXNlIGRl
LXZlbmRvcmluZyBmb3IgZGlzdHJpYnV0aW9ucworLSBmaXggIzY4IHJlbW92ZSBpbnZhbGlkIHB5
LnRlc3QuZW5zdXJldGVtcCByZWZlcmVuY2VzCistIGZpeCAjMjUgLSBkZXByZWNhdGUgcGF0aC5s
aXN0ZGlyKHNvcnQ9Y2FsbGFibGUpCistIGFkZCBgYFRlcm1pbmFsV3JpdGVyLmNoYXJzX29uX2N1
cnJlbnRfbGluZWBgIHJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBob3cgbWFueSBjaGFy
YWN0ZXJzCisgIGhhdmUgYmVlbiB3cml0dGVuIHRvIHRoZSBjdXJyZW50IGxpbmUuCisKKzEuNC4z
NAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxMTkgLyBweXRlc3QgaXNzdWU3MDggd2hlcmUg
dG1wZGlyIG1heSBmYWlsIHRvIG1ha2UgbnVtYmVyZWQgZGlyZWN0b3JpZXMKKyAgd2hlbiB0aGUg
ZmlsZXN5c3RlbSBpcyBjYXNlLWluc2Vuc2l0aXZlLgorCisxLjQuMzMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
Ky0gYXZvaWQgaW1wb3J0cyBpbiBjYWxscyB0byBweS5wYXRoLmxvY2FsKCkuZm5tYXRjaCgpLiBU
aGFua3MgQW5kcmVhcyBQZWxtZSBmb3IKKyAgdGhlIFBSLgorCistIGZpeCBpc3N1ZTEwNjogTmFp
dmUgdW5pY29kZSBlbmNvZGluZyB3aGVuIGNhbGxpbmcgZnNwYXRoKCkgaW4gcHl0aG9uMi4gVGhh
bmtzIFRpYWdvIE5vYnJlZ2EgZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWUxMTA6IHVuaXR0ZXN0
LlRlc3RDYXNlLmFzc2VydFdhcm5zIGZhaWxzIHdpdGggcHkgaW1wb3J0ZWQuCisKKzEuNC4zMgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworLSBmaXggaXNzdWU3MDogYWRkZWQgYWJpbGl0eSB0byBjb3B5IGFsbCBz
dGF0IGluZm8gaW4gcHkucGF0aC5sb2NhbC5jb3B5LgorCistIG1ha2UgVGVybWluYWxXcml0ZXIu
ZnVsbHdpZHRoIGEgcHJvcGVydHkuICBUaGlzIHJlc3VsdHMgaW4gdGhlIGNvcnJlY3QKKyAgdmFs
dWUgd2hlbiB0aGUgdGVybWluYWwgZ2V0cyByZXNpemVkLgorCistIHVwZGF0ZSBzdXBwb3J0ZWQg
aHRtbCB0YWdzIHRvIGluY2x1ZGUgcmVjZW50IGFkZGl0aW9ucy4KKyAgVGhhbmtzIERlbmlzIEFm
b25zbyBmb3IgdGhlIFBSLgorCistIFJlbW92ZSBpbnRlcm5hbCBjb2RlIGluIGBgU291cmNlLmNv
bXBpbGVgYCBtZWFudCB0byBzdXBwb3J0IGVhcmxpZXIgUHl0aG9uIDMgdmVyc2lvbnMgdGhhdCBw
cm9kdWNlZCB0aGUgc2lkZSBlZmZlY3QKKyAgb2YgbGVhdmluZyBgYE5vbmVgYCBpbiBgYHN5cy5t
b2R1bGVzYGAgd2hlbiBjYWxsZWQgKHNlZSBweXRlc3QtZGV2L3B5dGVzdCMyMTAzKS4KKyAgVGhh
bmtzIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKzEuNC4zMQorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggbG9jYWwoKS5jb3B5
KGRlc3QsIG1vZGU9VHJ1ZSkgdG8gYWxzbyB3b3JrCisgIHdpdGggdW5pY29kZS4KKworLSBwYXNz
IGJldHRlciBlcnJvciBtZXNzYWdlIHdpdGggc3ZuIEVFWElTVCBwYXRocworCisxLjQuMzAKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4
IGlzc3VlNjggYW4gYXNzZXJ0IHdpdGggYSAgbXVsdGlsaW5lIGxpc3QgY29tcHJlaGVuc2lvbiAK
KyAgd2FzIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkuIFRoYW5rcyBIZW5yaWsgSGVpYnVlcmdlci4K
KworCisxLjQuMjkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKy0gZml4IGlzc3VlNTU6IHJldmVydCBhIGNoYW5nZSB0byB0aGUgc3RhdGVtZW50
IGZpbmRpbmcgYWxnb3JpdGhtCisgIHdoaWNoIGlzIHVzZWQgYnkgcHl0ZXN0IGZvciBnZW5lcmF0
aW5nIHRyYWNlYmFja3MuCisgIFRoYW5rcyBEYW5pZWwgSGFobGVyIGZvciBpbml0aWFsIGFuYWx5
c2lzLgorCistIGZpeCBweXRlc3QgaXNzdWUyNTQgZm9yIHdoZW4gdHJhY2ViYWNrIHJlbmRlcmlu
ZyBjYW4ndAorICBmaW5kIHZhbGlkIHNvdXJjZSBjb2RlLiAgVGhhbmtzIElvbmVsIENyaXN0aWFu
IE1hcmllcy4KKworCisxLjQuMjgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNjQgLS0gZGlycGF0aCByZWdyZXNzaW9uIHdo
ZW4gImFicz1UcnVlIiBpcyBwYXNzZWQuCisgIFRoYW5rcyBHaWxsZXMgRGFydGlndWVsb25ndWUu
CisKKzEuNC4yNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLSBmaXggaXNzdWU1OTogcG9pbnQgdG8gbmV3IHJlcG8gc2l0ZQorCistIGFsbG93
IGEgbmV3IGVuc3VyZXN5c3BhdGg9ImFwcGVuZCIgbW9kZSBmb3IgcHkucGF0aC5sb2NhbC5weWlt
cG9ydCgpCisgIHNvIHRoYXQgYSBuZWNjZXNzYXJ5IGltcG9ydCBwYXRoIGlzIGFwcGVuZGVkIGlu
c3RlYWQgb2YgcHJlcGVuZGVkIHRvCisgIHN5cy5wYXRoIAorCistIHN0cmlrZSB1bmRvY3VtZW50
ZWQsIHVudGVzdGVkIGFyZ3VtZW50IHRvIHB5LnBhdGgubG9jYWwucHlwa2dwYXRoCisKKy0gc3Bl
ZWQgdXAgcHkucGF0aC5sb2NhbC5kaXJwYXRoIGJ5IGEgZmFjdG9yIG9mIDEwCisKKzEuNC4yNgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBh
dm9pZCBjYWxsaW5nIG5vcm1wYXRoIHR3aWNlIGluIHB5LnBhdGgubG9jYWwKKworLSBweS5idWls
dGluLl9yZXJhaXNlIHByb3Blcmx5IHJlcmFpc2VzIHVuZGVyIFB5dGhvbjMgbm93LgorCistIGZp
eCBpc3N1ZTUzIC0gcmVtb3ZlIG1vZHVsZSBpbmRleCwgdGhhbmtzIGplbmlzeXMuCisKKy0gYWxs
b3cgcG9zaXggcGF0aCBzZXBhcmF0b3JzIHdoZW4gImZubWF0Y2giIGlzIGNhbGxlZC4KKyAgVGhh
bmtzIENocmlzdGlhbiBMb25nIGZvciB0aGUgY29tcGxldGUgUFIuCisKKzEuNC4yNQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNz
dWU1MjogdmFndWVseSBmaXggcHkyNSBjb21wYXQgb2YgcHkucGF0aC5sb2NhbCAoaXQncyBub3QK
KyAgb2ZmaWNpYWxseSBzdXBwb3J0ZWQpLCBhbHNvIGZpeCBkb2NzCisKKy0gZml4IHB5dGVzdCBp
c3N1ZSA1ODk6IHdoZW4gY2hlY2tpbmcgaWYgd2UgaGF2ZSBhIHJlY3Vyc2lvbiBlcnJvcgorICBj
aGVjayBmb3IgdGhlIHNwZWNpZmljICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCIgdGV4dCBvZiB0
aGUgZXhjZXB0aW9uLgorCisxLjQuMjQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKy0gRml4IHJldHJpZXZpbmcgc291cmNlIHdoZW4gYW4gZWxz
ZTogbGluZSBoYXMgYW4gb3RoZXIgc3RhdGVtZW50IG9uCisgIHRoZSBzYW1lIGxpbmUuCisKKy0g
YWRkIGxvY2FscGF0aCByZWFkX3RleHQvd3JpdGVfdGV4dC9yZWFkX2J5dGVzL3dyaXRlX2J5dGVz
IG1ldGhvZHMKKyAgYXMgc2hvcnRjdXRzIGFuZCBjbGVhcmVyIGJ5dGVzL3RleHQgaW50ZXJmYWNl
cyBmb3IgcmVhZC93cml0ZS4KKyAgQWRhcHRlZCBmcm9tIGEgUFIgZnJvbSBQYXVsIE1vb3JlLgor
CisKKzEuNC4yMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLSB1c2UgbmV3ZXIgYXBpcGtnIHZlcnNpb24gd2hpY2ggbWFrZXMgYXR0cmlidXRl
IGFjY2VzcyBvbgorICBhbGlhcyBtb2R1bGVzIHJlc29sdmUgdG8gTm9uZSByYXRoZXIgdGhhbiBh
biBJbXBvcnRFcnJvci4KKyAgVGhpcyBoZWxwcyB3aXRoIGNvZGUgdGhhdCB1c2VzIGluc3BlY3Qu
Z2V0ZnJhbWVpbmZvKCkKKyAgb24gcHkzNCB3aGljaCBjYXVzZXMgYSBjb21wbGV0ZSB3YWxrIG9u
IHN5cy5tb2R1bGVzCisgIHRodXMgdHJpZ2dlcmluZyB0aGUgYWxpYXMgbW9kdWxlIHRvIHJlc29s
dmUgYW5kIGJsb3dpbmcKKyAgdXAgd2l0aCBJbXBvcnRFcnJvci4gIFRoZSBuZWdhdGl2ZSBzaWRl
IGlzIHRoYXQgc29tZXRoaW5nCisgIGxpa2UgInB5LnRlc3QuWCIgd2lsbCBub3cgcmVzdWx0IGlu
IE5vbmUgaW5zdGVhZCBvZiAiaW1wb3J0ZXJyb3I6IHB5dGVzdCIKKyAgaWYgcHl0ZXN0IGlzIG5v
dCBpbnN0YWxsZWQuICBCdXQgeW91IHNob3VsZG4ndCBpbXBvcnQgInB5LnRlc3QiIAorICBhbnl3
YXkgYW55bW9yZS4KKworLSBhZGFwdCBvbmUgc3ZuIHRlc3QgdG8gb25seSBjaGVjayBmb3IgYW55
IGV4Y2VwdGlvbiBpbnN0ZWFkIAorICBvZiBzcGVjaWZpYyBvbmVzIGJlY2F1c2UgZGlmZmVyZW50
IHN2biB2ZXJzaW9ucyBjYXVzZSBkaWZmZXJlbnQKKyAgZXJyb3JzIGFuZCB3ZSBkb24ndCBjYXJl
LgorCisKKzEuNC4yMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLSByZWZhY3RvciBjbGFzcy1sZXZlbCByZWdpc3RyeSBvbiBGb3JrZWRGdW5j
IGNoaWxkIHN0YXJ0L2ZpbmlzaAorICBldmVudCB0byBiZWNvbWUgaW5zdGFuY2UgYmFzZWQgKGku
ZS4gcGFzc2VkIGludG8gdGhlIGNvbnN0cnVjdG9yKQorCisxLjQuMjEKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gRm9ya2VkRnVuYyBub3cg
aGFzIGNsYXNzLWxldmVsIHJlZ2lzdGVyX29uX3N0YXJ0L29uX2V4aXQoKQorICBtZXRob2RzIHRv
IGFsbG93IGFkZGluZyBpbmZvcm1hdGlvbiBpbiB0aGUgYm94ZWQgcHJvY2Vzcy4KKyAgVGhhbmtz
IE1hcmMgU2NobGFpY2guCisKKy0gRm9ya2VkRnVuYyBpbiB0aGUgY2hpbGQgb3BlbnMgaW4gImF1
dG8tZmx1c2giIG1vZGUgZm9yCisgIHN0ZG91dC9zdGRlcnIgc28gdGhhdCB3aGVuIGEgc3VicHJv
Y2VzcyBkaWVzIHlvdSBjYW4gc2VlCisgIGl0cyBvdXRwdXQgZXZlbiBpZiBpdCBkaWRuJ3QgZmx1
c2ggaXRzZWxmLgorCistIHJlZmFjdG9yIHRyYWNlYmFjayBnZW5lcmF0aW9uIGluIGxpZ2h0IG9m
IHB5dGVzdCBpc3N1ZSAzNjQKKyAgKHNob3J0ZW5pbmcgdHJhY2ViYWNrcykuICAgeW91IGNhbiBu
b3cgc2V0IGEgbmV3IHRyYWNlYmFjayBzdHlsZSAKKyAgb24gYSBwZXItZW50cnkgYmFzaXMgc3Vj
aCB0aGF0IGEgY2FsbGVyIGNhbiBmb3JjZSBlbnRyaWVzIHRvIGJlIAorICBpc3BsYXllZCBhcyBz
aG9ydCBvciBsb25nIGVudHJpZXMuCisKKy0gd2luMzI6IHB5LnBhdGgubG9jYWwuc3lzZmluZChu
YW1lKSB3aWxsIHByZWZlcnJhYmx5IHJldHVybiBmaWxlcyB3aXRoCisgIGV4dGVuc2lvbnMgc28g
dGhhdCBpZiAiWCIgYW5kICJYLmJhdCIgb3IgIlguZXhlIiBpcyBvbiB0aGUgUEFUSCwKKyAgb25l
IG9mIHRoZSBsYXR0ZXIgdHdvIHdpbGwgYmUgcmV0dXJuZWQuCisKKzEuNC4yMAorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBpZ25vcmUgdW5p
Y29kZSBkZWNvZGUgZXJyb3JzIGluIHhtbGVzY2FwZS4gIFRoYW5rcyBBbmF0b2x5IEJ1YmVua29m
Zi4KKworLSBvbiBweXRob24yIG1vZGlmeSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbl9vbmx5
IHRvIG1hdGNoIHB5dGhvbjMgCisgIGJlaGF2aW91ciwgbmFtZWx5IHRyeWluZyB0byBwcmludCB1
bmljb2RlIGZvciBFeGNlcHRpb24gaW5zdGFuY2VzCisKKy0gdXNlIGEgc2FmZXIgd2F5IGZvciBz
ZXJpYWxpemluZyBleGNlcHRpb24gcmVwb3J0cyAoaGVscHMgdG8gZml4CisgIHB5dGVzdCBpc3N1
ZTQxMykKKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xOCBhbmQgMS40LjE5Cis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIG1lcmdlIGluIGFwaXBr
ZyBmaXhlcworCistIHNvbWUgbWljcm8tb3B0aW1pemF0aW9ucyBpbiBweS9fY29kZS9jb2RlLnB5
IGZvciBzcGVlZGluZworICB1cCBweXRlc3QgcnVucy4gIFRoYW5rcyBBbGV4IEdheW5vciBmb3Ig
aW5pdGlhdGl2ZS4KKworLSBjaGVjayBQWV9DT0xPUlM9MSBvciBQWV9DT0xPUlM9MCB0byBmb3Jj
ZSBjb2xvcmluZy9ub3QtY29sb3JpbmcKKyAgZm9yIHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkgaW5k
ZXBlbmRlbnRseSBmcm9tIGNhcGFiaWxpdGllcworICBvZiB0aGUgb3V0cHV0IGZpbGUuICBUaGFu
a3MgTWFyYyBBYnJhbW93aXR6IGZvciB0aGUgUFIuCisKKy0gc29tZSBmaXhlcyB0byB1bmljb2Rl
IGhhbmRsaW5nIGluIGFzc2VydGlvbiBoYW5kbGluZy4KKyAgVGhhbmtzIGZvciB0aGUgUFIgdG8g
RmxvcmlzIEJydXlub29naGUuICAoVGhpcyBoZWxwcworICB0byBmaXggcHl0ZXN0IGlzc3VlIDMx
OSkuCisKKy0gZGVwZW5kIG9uIHNldHVwdG9vbHMgcHJlc2VuY2UsIHJlbW92ZSBkaXN0cmlidXRl
X3NldHVwCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMTcgYW5kIDEuNC4xOAorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBpbnRyb2R1Y2UgcGF0
aC5lbnN1cmVfZGlyKCkgYXMgYSBzeW5vbnltIGZvciBlbnN1cmUoLi4uLCBkaXI9MSkKKworLSBz
b21lIHVuaWNvZGUvcHl0aG9uMyByZWxhdGVkIGZpeGVzIHdydCB0byBwYXRoIG1hbmlwdWxhdGlv
bnMKKyAgKGlmIHlvdSBzdGFydCBwYXNzaW5nIHVuaWNvZGUgcGFydGljdWxhciBpbiBweTIgeW91
IG1pZ2h0IAorICBzdGlsbCBnZXQgcHJvYmxlbXMsIHRob3VnaCkKKworQ2hhbmdlcyBiZXR3ZWVu
IDEuNC4xNiBhbmQgMS40LjE3Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIG1ha2UgcHkuaW8uVGVybWluYWxXcml0ZXIoKSBwcmVmZXIgY29s
b3JhbWEgaWYgaXQgaXMgYXZhaWxhYmxlCisgIGFuZCBhdm9pZCBlbXB0eSBsaW5lcyB3aGVuIHNl
cGFyYXRvci1saW5lcyBhcmUgcHJpbnRlZCBieQorICBiZWluZyBkZWZlbnNpdmUgYW5kIHJlZHVj
aW5nIHRoZSB3b3JraW5nIHRlcm1pbmFsd2lkdGggYnkgMQorCistIGludHJvZHVjZSBvcHRpb25h
bCAiZXhwYW5kdXNlciIgYXJndW1lbnQgdG8gcHkucGF0aC5sb2NhbAorICB0byB0aGF0IGxvY2Fs
KCJ+IiwgZXhwYW5kdXNlcj1UcnVlKSBnaXZlcyB0aGUgaG9tZQorICBkaXJlY3Rvcnkgb2YgInVz
ZXIiLgorCitDaGFuZ2VzIGJldHdlZW4gMS40LjE1IGFuZCAxLjQuMTYKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMzUgLSBk
ZWZpbmUgX19ndF9fIG9yZGVyaW5nIGJldHdlZW4gYSBsb2NhbCBwYXRoCisgIGFuZCBzdHJpbmdz
CisKKy0gZml4IGlzc3VlMzYgLSBtYWtlIGNoZGlyKCkgd29yayBldmVuIGlmIG9zLmdldGN3ZCgp
IGZhaWxzLgorCistIGFkZCBwYXRoLmV4aXN0cy9pc2Rpci9pc2ZpbGUvaXNsaW5rIHNob3J0Y3V0
cworCistIGludHJvZHVjZSBsb2NhbCBwYXRoLmFzX2N3ZCgpIGNvbnRleHQgbWFuYWdlci4KKwor
LSBpbnRyb2R1Y2UgcC53cml0ZShlbnN1cmU9MSkgYW5kIHAub3BlbihlbnN1cmU9MSkKKyAgd2hl
cmUgZW5zdXJlIHRyaWdnZXJzIGNyZWF0aW9uIG9mIG5lY2Nlc3NhcnkgcGFyZW50CisgIGRpcnMu
CisKKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xNCBhbmQgMS40LjE1Cis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIG1ham9ybHkgc3BlZWQgdXAg
c29tZSBjb21tb24gY2FsbGluZyBwYXR0ZXJucyB3aXRoCisgIExvY2FsUGF0aC5saXN0ZGlyKCkv
am9pbi9jaGVjay9zdGF0IGZ1bmN0aW9ucyBjb25zaWRlcmFibHkuCisKKy0gZml4IGFuIGVkZ2Ug
Y2FzZSB3aXRoIGZubWF0Y2ggd2hlcmUgYSBnbG9iIHN0eWxlIHBhdHRlcm4gYXBwZWFyZWQKKyAg
aW4gYW4gYWJzb2x1dGUgcGF0aC4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xMyBhbmQgMS40LjE0
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCist
IGZpeCBkdXBmaWxlIHRvIHdvcmsgd2l0aCBmaWxlcyB0aGF0IGRvbid0CisgIGNhcnJ5IGEgbW9k
ZS4gVGhhbmtzIEphc29uIFIuIENvb21icy4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xMiBhbmQg
MS40LjEzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCistIGZpeCBnZXR0aW5nIHN0YXRlbWVudHJhbmdlL2NvbXBpbGluZyBhIGZpbGUgZW5kaW5n
CisgIGluIGEgY29tbWVudCBsaW5lIHdpdGhvdXQgbmV3bGluZSAob24gcHl0aG9uMi41KQorLSBm
b3IgbG9jYWwgcGF0aHMgeW91IGNhbiBwYXNzICJtb2RlPVRydWUiIHRvIGEgY29weSgpCisgIGlu
IG9yZGVyIHRvIGNvcHkgcGVybWlzc2lvbiBiaXRzICh1bmRlcmx5aW5nIG1lY2hhbmlzbQorICBp
cyB1c2luZyBzaHV0aWwuY29weW1vZGUpCistIGFkZCBwYXRocyBhcmd1bWVudHMgdG8gcHkucGF0
aC5sb2NhbC5zeXNmaW5kIHRvIHJlc3RyaWN0CisgIHNlYXJjaCB0byB0aGUgZGlyZXRvcmllcyBp
biB0aGUgcGF0aC4KKy0gYWRkIGlzZGlyL2lzZmlsZS9pc2xpbmsgdG8gcGF0aC5zdGF0KCkgb2Jq
ZWN0cyBhbGxvd2luZyB0byBwZXJmb3JtCisgIG11bHRpcGxlIGNoZWNrcyB3aXRob3V0IGNhbGxp
bmcgb3V0IG11bHRpcGxlIHRpbWVzCistIGRyb3AgcHkucGF0aC5sb2NhbC5fX25ld19fIGluIGZh
dm91ciBvZiBhIHNpbXBsZXIgX19pbml0X18KKy0gaW5pY29uZmlnOiBhbGxvdyAibmFtZTp2YWx1
ZSIgc2V0dGluZ3MgaW4gY29uZmlnIGZpbGVzLCBubyBzcGFjZSBhZnRlcgorICAibmFtZSIgcmVx
dWlyZWQKKy0gZml4IGlzc3VlIDI3IC0gTmFtZUVycm9yIGluIHVubGlrZWx5IHVudGVzdGVkIGNh
c2Ugb2Ygc2FmZXJlcHIKKworCitDaGFuZ2VzIGJldHdlZW4gMS40LjExIGFuZCAxLjQuMTIKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4
IHB5dGhvbjIuNCBzdXBwb3J0IC0gZm9yIHByZS1BU1QgaW50ZXJwcmV0ZXJzIHJlLWludHJvZHVj
ZSAKKyAgb2xkIHdheSB0byBmaW5kIHN0YXRlbWVudHMgaW4gZXhjZXB0aW9ucyAoY2xvc2VzIHB5
dGVzdCBpc3N1ZSAyMDkpCistIGFkZCB0b3guaW5pIHRvIGRpc3RyaWJ1dGlvbgorLSBmaXggaXNz
dWUyMyAtIHByaW50ICosKiogYXJncyBpbmZvcm1hdGlvbiBpbiB0cmFjZWJhY2tzLAorICB0aGFu
a3MgTWFudWVsIEphY29iCisKKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xMCBhbmQgMS40LjExCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIHVz
ZSBfYXN0IHRvIGRldGVybWluZSBzdGF0ZW1lbnQgcmFuZ2VzIHdoZW4gcHJpbnRpbmcgdHJhY2Vi
YWNrcyAtCisgIGF2b2lkaW5nIG11bHRpLXNlY29uZCBkZWxheXMgb24gc29tZSBsYXJnZSB0ZXN0
IG1vZHVsZXMKKy0gZml4IGFuIGludGVybmFsIHRlc3QgdG8gbm90IHVzZSBjbGFzcy1kZW5vdGVk
IHB5dGVzdF9mdW5jYXJnX18KKy0gZml4IGEgZG9jIGxpbmsgdG8gYnVnIHRyYWNrZXIKKy0gdHJ5
IHRvIG1ha2UgdGVybWluYWwud3JpdGUoKSBwcmludGluZyBtb3JlIHJvYnVzdCBhZ2FpbnN0Cisg
IHVuaWNvZGVlbmNvZGUvZGVjb2RlIHByb2JsZW1zLCBhbWVuZCBhY2NvcmRpbmcgdGVzdAorLSBp
bnRyb2R1Y2UgcHkuYnVpbHRpbi50ZXh0IGFuZCBweS5idWlsdGluLmJ5dGVzCisgIHRvIHBvaW50
IHRvIHJlc3BlY3RpdmUgc3RyL3VuaWNvZGUgKHB5MikgYW5kIGJ5dGVzL3N0ciAocHkzKSB0eXBl
cworLSBmaXggZXJyb3IgaGFuZGxpbmcgb24gd2luMzIvcHkzMyBmb3IgRU5PRElSIAorCitDaGFu
Z2VzIGJldHdlZW4gMS40LjkgYW5kIDEuNC4xMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworLSB0ZXJtaW5hbHdyaXRlcjogZGVmYXVsdCB0byBl
bmNvZGUgdG8gVVRGOCBpZiBubyBlbmNvZGluZyBpcyBkZWZpbmVkCisgIG9uIHRoZSBvdXRwdXQg
c3RyZWFtCistIGlzc3VlMjI6IGltcHJvdmUgaGV1cmlzdGljIGZvciBmaW5kaW5nIHRoZSBzdGF0
ZW1lbnRyYW5nZSBpbiBleGNlcHRpb25zCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuOCBhbmQgMS40
LjkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
Ky0gZml4IGJ1ZyBvZiBwYXRoLnZpc2l0KCkgd2hpY2ggd291bGQgbm90IHJlY29nbml6ZSBnbG9i
LXN0eWxlIHBhdHRlcm5zCisgIGZvciB0aGUgInJlYyIgcmVjdXJzaW9uIGFyZ3VtZW50CistIGNo
YW5nZWQgaW5pY29uZmlnIHBhcnNpbmcgdG8gYmV0dGVyIGNvbmZvcm0sIG5vdyB0aGUgY2hhcnMg
IjsiCisgIGFuZCAiIyIgb25seSBtYXJrIGEgY29tbWVudCBhdCB0aGUgc3RyaXBwZWQgc3RhcnQg
b2YgYSBsaW5lCistIGluY2x1ZGUgcmVjZW50IGFwaXBrZy0xLjIKKy0gY2hhbmdlIGludGVybmFs
IHRlcm1pbmFsd3JpdGVyLmxpbmUvcmVsaW5lIGxvZ2ljIHRvIG1vcmUgbmljZWx5CisgIHN1cHBv
cnQgZmlsZSBzcGlubmVycworCitDaGFuZ2VzIGJldHdlZW4gMS40LjcgYW5kIDEuNC44Cis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBp
c3N1ZSAxMyAtIGNvcnJlY3QgaGFuZGxpbmcgb2YgdGhlIHRhZyBuYW1lIG9iamVjdCBpbiB4bWxn
ZW4KKy0gZml4IGlzc3VlIDE0IC0gc3VwcG9ydCByYXcgYXR0cmlidXRlIHZhbHVlcyBpbiB4bWxn
ZW4KKy0gZml4IHdpbmRvd3MgdGVybWluYWx3cml0ZXIgcHJpbnRpbmcvcmUtbGluZSBwcm9ibGVt
CistIHVwZGF0ZSBkaXN0cmlidXRlX3NldHVwLnB5IHRvIDAuNi4yNworCitDaGFuZ2VzIGJldHdl
ZW4gMS40LjYgYW5kIDEuNC43Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTExIC0gb3duIHRlc3QgZmFpbHVyZSB3aXRoIHB5
dGhvbjMuMyAvIFRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbgorLSBoZWxwIGZpeCBweXRlc3QgaXNz
dWUgMTAyCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuNSBhbmQgMS40LjYKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gaGVscCB0byBmaXggcHl0
ZXN0IGlzc3VlOTk6IHVuaWZ5IG91dHB1dCBvZiAKKyAgRXhjZXB0aW9uSW5mby5nZXRyZXByKHN0
eWxlPSJuYXRpdmUiKSB3aXRoIC4uLihzdHlsZT0ibG9uZyIpCistIGZpeCBpc3N1ZTc6IHNvdXJj
ZS5nZXRzdGF0ZW1lbnRyYW5nZSgpIG5vdyByYWlzZXMgcHJvcGVyIGVycm9yCisgIGlmIG5vIHZh
bGlkIHN0YXRlbWVudCBjYW4gYmUgZm91bmQKKy0gZml4IGlzc3VlODogZml4IGNvZGUgYW5kIHRl
c3RzIG9mIHN2bnVybC9zdm53YyB0byB3b3JrIG9uIHN1YnZlcnNpb24gMS43IC0gCisgIG5vdGUg
dGhhdCBwYXRoLnN0YXR1cyh1cGRhdGVzPTEpIHdpbGwgbm90IHByb3Blcmx5IHdvcmsgc3ZuLTE3
J3Mgc3RhdHVzIAorICAtLXhtbCBvdXRwdXQgaXMgYnJva2VuLgorLSBtYWtlIHNvdXJjZS5nZXRz
dGF0ZW1lbnRyYW5nZSgpIG1vcmUgcmVzaWxlbnQgYWJvdXQgbm9uLXB5dGhvbiBjb2RlIGZyYW1l
cworICAoYXMgc2VlbiBmcm9tIGpuamEyKQorLSBtYWtlIHRyYWNrZWJhY2sgcmVjdXJzaW9uIGRl
dGVjdGlvbiBtb3JlIHJlc2lsZW50CisgIGFib3V0IHRoZSBldmFsIG1hZ2ljIG9mIGEgZGVjb3Jh
dG9yIGxpYnJhcnkKKy0gaW5pY29uZmlnOiBhZGQgc3VwcG9ydCBmb3IgOyBhcyBjb21tZW50IHN0
YXJ0ZXIKKy0gcHJvcGVybHkgaGFuZGxlIGxpc3RzIGluIHhtbGdlbiBvbiBweXRob24zCistIG5v
cm1hbGl6ZSBweS5jb2RlLmdldGZzbGluZW5vKG9iaikgdG8gYWx3YXlzIHJldHVybiBhIChzdHJp
bmcsIGludCkgdHVwbGUKKyAgZGVmYXVsdGluZyB0byAoIiIsIC0xKSByZXNwZWN0aXZlbHkgaWYg
bm8gc291cmNlIGNvZGUgY2FuIGJlIGZvdW5kIGZvciBvYmouCisKK0NoYW5nZXMgYmV0d2VlbiAx
LjQuNCBhbmQgMS40LjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKy0gaW1wcm92ZSBzb21lIHVuaWNvZGUgaGFuZGxpbmcgaW4gdGVybWluYWx3
cml0ZXIgYW5kIGNhcHR1cmluZworICAodXNlZCBieSBweXRlc3QpCisKK0NoYW5nZXMgYmV0d2Vl
biAxLjQuMyBhbmQgMS40LjQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKKy0gYSBmZXcgZml4ZXMgYW5kIGFzc2VydGlvbiByZWxhdGVkIHJlZmlu
ZW1lbnRzIGZvciBweXRlc3QtMi4xCistIGd1YXJkIHB5LmNvZGUuQ29kZSBhbmQgZ2V0ZnNsaW5l
bm8gYWdhaW5zdCBib2d1cyBpbnB1dAorICBhbmQgbWFrZSBweS5jb2RlLkNvZGUgb2JqZWN0cyBm
b3Igb2JqZWN0IGluc3RhbmNlCisgIGJ5IGxvb2tpbmcgdXAgdGhlaXIgX19jYWxsX18gZnVuY3Rp
b24uCistIG1ha2UgZXhjZXB0aW9uIHByZXNlbnRhdGlvbiByb2J1c3QgYWdhaW5zdCBpbnZhbGlk
IGN1cnJlbnQgY3dkCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMiBhbmQgMS40LjMKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IHRlcm1p
bmFsIGNvbG9yaW5nIGlzc3VlIGZvciBza2lwcGVkIHRlc3RzICh0aGFua3MgQW1hdXJ5KQorLSBm
aXggaXNzdWU0IC0gbGFyZ2UgY2FsbHMgdG8gYW5zaV9wcmludCAodGhhbmtzIEFtYXVyeSkKKwor
Q2hhbmdlcyBiZXR3ZWVuIDEuNC4xIGFuZCAxLjQuMgorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggKHB5dGVzdCkgaXNzdWUyMyAtIHRt
cGRpciBhcmd1bWVudCBub3cgd29ya3Mgb24gUHl0aG9uMy4yIGFuZCBXaW5kb3dzWFAKKyAgKHdo
aWNoIGFwcGFyZW50bHkgc3RhcnRzIHRvIG9mZmVyIG9zLnN5bWxpbmsgbm93KQorCistIGJldHRl
ciBlcnJvciBtZXNzYWdlIGZvciBzeW50YXggZXJyb3JzIGZyb20gY29tcGlsZWQgY29kZQorCist
IHNtYWxsIGZpeCB0byBiZXR0ZXIgZGVhbCB3aXRoICh1bi0pY29sb3JlZCB0ZXJtaW5hbCBvdXRw
dXQgb24gd2luZG93cworCitDaGFuZ2VzIGJldHdlZW4gMS40LjAgYW5kIDEuNC4xCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1
ZTEgLSBweS5lcnJvci4qIGNsYXNzZXMgdG8gYmUgcGlja2xlYWJsZQorCistIGZpeCBpc3N1ZTIg
LSBvbiB3aW5kb3dzMzIgdXNlIFBBVEhFWFQgYXMgdGhlIGxpc3Qgb2YgcG90ZW50aWFsCisgIGV4
dGVuc2lvbnMgdG8gZmluZCBmaW5kIGJpbmFyaWVzIHdpdGggcHkucGF0aC5sb2NhbC5zeXNmaW5k
KGNvbW1hbmRuYW1lKQorCistIGZpeCAocHl0ZXN0LSkgaXNzdWUxMCBhbmQgcmVmaW5lIGFzc2Vy
dGlvbiByZWludGVycHJldGF0aW9uCisgIHRvIGF2b2lkIGJyZWFraW5nIGlmIHRoZSBfX25vbnpl
cm9fXyBvZiBhbiBvYmplY3QgZmFpbHMKKworLSBmaXggKHB5dGVzdC0pIGlzc3VlMTcgd2hlcmUg
cHl0aG9uMyBkb2VzIG5vdCBsaWtlICJpbXBvcnQgKiIKKyAgbGVhZGluZyB0byBtaXNyZXByZXNl
bnRhdGlvbiBvZiBpbXBvcnQtZXJyb3JzIGluIHRlc3QgbW9kdWxlcworCistIGZpeCBweS5lcnJv
ci4qIGF0dHJpYnV0ZSBweXB5IGFjY2VzcyBpc3N1ZQorCistIGFsbG93IHBhdGguc2FtZWZpbGUo
YXJnKSB0byBzdWNjZWVkIHdoZW4gYXJnIGlzIGEgcmVsYXRpdmUgZmlsZW5hbWUKKworLSBmaXgg
KHB5dGVzdC0pIGlzc3VlMjAgcGF0aC5zYW1lZmlsZShyZWxwYXRoKSB3b3JrcyBhcyBleHBlY3Rl
ZCBub3cKKworLSBmaXggKHB5dGVzdC0pIGlzc3VlOCBsZW4obG9uZ19saXN0KSBub3cgc2hvd3Mg
dGhlIGxlbmd0aCBvZiB0aGUgbGlzdAorCitDaGFuZ2VzIGJldHdlZW4gMS4zLjQgYW5kIDEuNC4w
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCist
IHB5LnRlc3Qgd2FzIG1vdmVkIHRvIGEgc2VwYXJhdGUgInB5dGVzdCIgcGFja2FnZS4gV2hhdCBy
ZW1haW5zIGlzCisgIGEgc3R1YiBob29rIHdoaWNoIHdpbGwgcHJveHkgYGBpbXBvcnQgcHkudGVz
dGBgIHRvIGBgcHl0ZXN0YGAuCistIGFsbCBjb21tYW5kIGxpbmUgdG9vbHMgKCJweS5jbGVhbnVw
L2xvb2t1cC9jb3VudGxvYy8uLi4iIG1vdmVkIAorICB0byAicHljbWQiIHBhY2thZ2UpCistIHJl
bW92ZWQgdGhlIG9sZCBhbmQgZGVwcmVjYXRlZCAicHkubWFnaWMiIG5hbWVzcGFjZQorLSB1c2Ug
YXBpcGtnLTEuMSBhbmQgbWFrZSBweS5hcGlwa2cuaW5pdHBrZ3xBcGlNb2R1bGUgYXZhaWxhYmxl
CistIGFkZCBweS5pbmljb25maWcgbW9kdWxlIGZvciBicmFpbi1kZWFkIGVhc3kgaW5pLWNvbmZp
ZyBmaWxlIHBhcnNpbmcKKy0gaW50cm9kdWNlIHB5LmJ1aWx0aW4uYW55KCkKKy0gcGF0aCBvYmpl
Y3RzIGhhdmUgYSAuZGlybmFtZSBhdHRyaWJ1dGUgbm93IChlcXVpdmFsZW50IHRvCisgIG9zLnBh
dGguZGlybmFtZShwYXRoKSkKKy0gcGF0aC52aXNpdCgpIGFjY2VwdHMgYnJlYWR0aGZpcnN0IChi
ZikgYW5kIHNvcnQgb3B0aW9ucworLSByZW1vdmUgZGVwcmVjYXRlZCBweS5jb21wYXQgbmFtZXNw
YWNlCisKK0NoYW5nZXMgYmV0d2VlbiAxLjMuMyBhbmQgMS4zLjQKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMTExOiBpbXBy
b3ZlIGluc3RhbGwgZG9jdW1lbnRhdGlvbiBmb3Igd2luZG93cworLSBmaXggaXNzdWUxMTk6IGZp
eCBjdXN0b20gY29sbGVjdGFiaWxpdHkgb2YgX19pbml0X18ucHkgYXMgYSBtb2R1bGUKKy0gZml4
IGlzc3VlMTE2OiAtLWRvY3Rlc3Rtb2R1bGVzIHdvcmsgd2l0aCBfX2luaXRfXy5weSBmaWxlcyBh
cyB3ZWxsCistIGZpeCBpc3N1ZTExNTogdW5pZnkgaW50ZXJuYWwgZXhjZXB0aW9uIHBhc3N0aHJv
dWdoL2NhdGNoaW5nL0dlbmVyYXRvckV4aXQKKy0gZml4IGlzc3VlMTE4OiBuZXcgLS10Yj1uYXRp
dmUgZm9yIHByZXNlbnRpbmcgY3B5dGhvbi1zdGFuZGFyZCBleGNlcHRpb25zCisKK0NoYW5nZXMg
YmV0d2VlbiAxLjMuMiBhbmQgMS4zLjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMTEzOiBhc3NlcnRpb24gcmVwcmVzZW50
YXRpb24gcHJvYmxlbSB3aXRoIHRyaXBsZS1xdW90ZWQgc3RyaW5ncworICAoYW5kIHBvc3NpYmx5
IG90aGVyIGNhc2VzKQorLSBtYWtlIGNvbmZ0ZXN0IGxvYWRpbmcgZGV0ZWN0IHRoYXQgYSBjb25m
dGVzdCBmaWxlIHdpdGggdGhlIHNhbWUKKyAgY29udGVudCB3YXMgYWxyZWFkeSBsb2FkZWQsIGF2
b2lkcyBzdXJwcmlzZXMgaW4gbmVzdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzCisgIHdoaWNoIGNh
biBiZSBwcm9kdWNlZCBlLmcuIGJ5IEh1ZHNvbi4gSXQgcHJvYmFibHkgcmVtb3ZlcyB0aGUgbmVl
ZCB0byB1c2UKKyAgLS1jb25mY3V0ZGlyIGluIG1vc3QgY2FzZXMuCistIGZpeCB0ZXJtaW5hbCBj
b2xvcmluZyBmb3Igd2luMzIKKyAgKHRoYW5rcyBNaWNoYWVsIEZvb3JkIGZvciByZXBvcnRpbmcp
CistIGZpeCB3ZWlyZG5lc3M6IG1ha2UgdGVybWluYWwgd2lkdGggZGV0ZWN0aW9uIHdvcmsgb24g
c3Rkb3V0IGluc3RlYWQgb2Ygc3RkaW4KKyAgKHRoYW5rcyBBcm1pbiBSb25hY2hlciBmb3IgcmVw
b3J0aW5nKQorLSByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiBhbGwgcHkvdGV4dCBkaXN0
cmlidXRpb24gZmlsZXMKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMy4xIGFuZCAxLjMuMgorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworTmV3IGZlYXR1
cmVzCisrKysrKysrKysrKysrKysrKysKKworLSBmaXggaXNzdWUxMDM6ICBpbnRyb2R1Y2UgcHku
dGVzdC5yYWlzZXMgYXMgY29udGV4dCBtYW5hZ2VyLCBleGFtcGxlczo6CisKKyAgICB3aXRoIHB5
LnRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgeCA9IDAKKyAgICAgICAg
MSAvIHgKKworICAgIHdpdGggcHkudGVzdC5yYWlzZXMoUnVudGltZUVycm9yKSBhcyBleGNpbmZv
OgorICAgICAgICBjYWxsX3NvbWV0aGluZygpCisKKyAgICAjIHlvdSBtYXkgZG8gZXh0cmEgY2hl
Y2tzIG9uIGV4Y2luZm8udmFsdWV8dHlwZXx0cmFjZWJhY2sgaGVyZQorCisgICh0aGFua3MgUm9u
bnkgUGZhbm5zY2htaWR0KQorCistIEZ1bmNhcmcgZmFjdG9yaWVzIGNhbiBub3cgZHluYW1pY2Fs
bHkgYXBwbHkgYSBtYXJrZXIgdG8gYQorICB0ZXN0IGludm9jYXRpb24uICBUaGlzIGlzIGZvciBl
eGFtcGxlIHVzZWZ1bCBpZiBhIGZhY3RvcnkKKyAgcHJvdmlkZXMgcGFyYW1ldGVycyB0byBhIHRl
c3Qgd2hpY2ggYXJlIGV4cGVjdGVkLXRvLWZhaWw6OgorCisgICAgZGVmIHB5dGVzdF9mdW5jYXJn
X19hcmcocmVxdWVzdCk6CisgICAgICAgIHJlcXVlc3QuYXBwbHltYXJrZXIocHkudGVzdC5tYXJr
LnhmYWlsKHJlYXNvbj0iZmxha3kgY29uZmlnIikpCisgICAgICAgIC4uLgorCisgICAgZGVmIHRl
c3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAgLi4uCisKKy0gaW1wcm92ZWQgZXJyb3IgcmVwb3J0
aW5nIG9uIGNvbGxlY3Rpb24gYW5kIGltcG9ydCBlcnJvcnMuIFRoaXMgbWFrZXMKKyAgdXNlIG9m
IGEgbW9yZSBnZW5lcmFsIG1lY2hhbmlzbSwgbmFtZWx5IHRoYXQgZm9yIGN1c3RvbSB0ZXN0IGl0
ZW0vY29sbGVjdAorICBub2RlcyBgYG5vZGUucmVwcl9mYWlsdXJlKGV4Y2luZm8pYGAgaXMgbm93
IHVuaWZvcm1seSBjYWxsZWQgc28gdGhhdCB5b3UgY2FuCisgIG92ZXJyaWRlIGl0IHRvIHJldHVy
biBhIHN0cmluZyBlcnJvciByZXByZXNlbnRhdGlvbiBvZiB5b3VyIGNob2ljZQorICB3aGljaCBp
cyBnb2luZyB0byBiZSByZXBvcnRlZCBhcyBhIChyZWQpIHN0cmluZy4KKworLSBpbnRyb2R1Y2Ug
Jy0tanVuaXRwcmVmaXg9U1RSJyBvcHRpb24gdG8gcHJlcGVuZCBhIHByZWZpeAorICB0byBhbGwg
cmVwb3J0cyBpbiB0aGUganVuaXR4bWwgZmlsZS4KKworQnVnIGZpeGVzIC8gTWFpbnRlbmFuY2UK
KysrKysrKysrKysrKysrKysrKysrKysrKysrCisKKy0gbWFrZSB0ZXN0cyBhbmQgdGhlIGBgcHl0
ZXN0X3JlY3dhcm5gYCBwbHVnaW4gaW4gcGFydGljdWxhciBmdWxseSBjb21wYXRpYmxlCisgIHRv
IFB5dGhvbjIuNyAoaWYgeW91IHVzZSB0aGUgYGByZWN3YXJuYGAgZnVuY2FyZyB3YXJuaW5ncyB3
aWxsIGJlIGVuYWJsZWQgc28gdGhhdAorICB5b3UgY2FuIHByb3Blcmx5IGNoZWNrIGZvciB0aGVp
ciBleGlzdGVuY2UgaW4gYSBjcm9zcy1weXRob24gbWFubmVyKS4KKy0gcmVmaW5lIC0tcGRiOiBp
Z25vcmUgeGZhaWxlZCB0ZXN0cywgdW5pZnkgaXRzIFRCLXJlcG9ydGluZyBhbmQKKyAgZG9uJ3Qg
ZGlzcGxheSBmYWlsdXJlcyBhZ2FpbiBhdCB0aGUgZW5kLgorLSBmaXggYXNzZXJ0aW9uIGludGVy
cHJldGF0aW9uIHdpdGggdGhlICoqIG9wZXJhdG9yICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24p
CistIGZpeCBpc3N1ZTEwNSBhc3NpZ25tZW50IG9uIHRoZSBzYW1lIGxpbmUgYXMgYSBmYWlsaW5n
IGFzc2VydGlvbiAodGhhbmtzIEJlbmphbWluIFBldGVyc29uKQorLSBmaXggaXNzdWUxMDQgcHJv
cGVyIGVzY2FwaW5nIGZvciB0ZXN0IG5hbWVzIGluIGp1bml0eG1sIHBsdWdpbiAodGhhbmtzIGFu
b255bW91cykKKy0gZml4IGlzc3VlNTcgLWZ8LS1sb29wb25mYWlsIHRvIHdvcmsgd2l0aCB4cGFz
c2luZyB0ZXN0cyAodGhhbmtzIFJvbm55KQorLSBmaXggaXNzdWU5MiBjb2xsZWN0b25seSByZXBv
cnRlciBhbmQgLS1wYXN0ZWJpbiAodGhhbmtzIEJlbmphbWluIFBldGVyc29uKQorLSBmaXggcHku
Y29kZS5jb21waWxlKHNvdXJjZSkgdG8gZ2VuZXJhdGUgdW5pcXVlIGZpbGVuYW1lcworLSBmaXgg
YXNzZXJ0aW9uIHJlLWludGVycCBwcm9ibGVtcyBvbiBQeVB5LCBieSBkZWZlcmluZyBjb2RlCisg
IGNvbXBpbGF0aW9uIHRvIHRoZSAob3ZlcnJpZGFibGUpIEZyYW1lLmV2YWwgY2xhc3MuICh0aGFu
a3MgQW1hdXJ5IEZvcmdlb3QpCistIGZpeCBweS5wYXRoLmxvY2FsLnB5aW1wb3J0KCkgdG8gd29y
ayB3aXRoIGRpcmVjdG9yaWVzCistIHN0cmVhbWxpbmUgcHkucGF0aC5sb2NhbC5ta2R0ZW1wIGlt
cGxlbWVudGF0aW9uIGFuZCB1c2FnZQorLSBkb24ndCBwcmludCBlbXB0eSBsaW5lcyB3aGVuIHNo
b3dpbmcganVuaXR4bWwtZmlsZW5hbWUKKy0gYWRkIG9wdGlvbmFsIGJvb2xlYW4gaWdub3JlX2Vy
cm9ycyBwYXJhbWV0ZXIgdG8gcHkucGF0aC5sb2NhbC5yZW1vdmUKKy0gZml4IHRlcm1pbmFsIHdy
aXRpbmcgb24gd2luMzIvcHl0aG9uMi40CistIHB5LnByb2Nlc3MuY21kZXhlYygpIG5vdyB0cmll
cyBoYXJkZXIgdG8gcmV0dXJuIHByb3Blcmx5IGVuY29kZWQgdW5pY29kZSBvYmplY3RzCisgIG9u
IGFsbCBweXRob24gdmVyc2lvbnMKKy0gaW5zdGFsbCBwbGFpbiBweS50ZXN0L3B5LndoaWNoIHNj
cmlwdHMgYWxzbyBmb3IgSnl0aG9uLCB0aGlzIGhlbHBzIHRvCisgIGdldCBjYW5vbmljYWwgc2Ny
aXB0IHBhdGhzIGluIHZpcnR1YWxlbnYgc2l0dWF0aW9ucworLSBtYWtlIHBhdGguYmVzdHJlbHBh
dGgocGF0aCkgcmV0dXJuICIuIiwgbm90ZSB0aGF0IHdoZW4gY2FsbGluZworICBYLmJlc3RyZWxw
YXRoIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgWCBpcyBhIGRpcmVjdG9yeS4KKy0gbWFrZSBpbml0
aWFsIGNvbmZ0ZXN0IGRpc2NvdmVyeSBpZ25vcmUgIi0tIiBwcmVmaXhlZCBhcmd1bWVudHMKKy0g
Zml4IHJlc3VsdGxvZyBwbHVnaW4gd2hlbiB1c2VkIGluIGFuIG11bHRpY3B1L211bHRpaG9zdCB4
ZGlzdCBzaXR1YXRpb24KKyAgKHRoYW5rcyBKYWt1YiBHdXN0YWspCistIHBlcmZvcm0gZGlzdHJp
YnV0ZWQgdGVzdGluZyByZWxhdGVkIHJlcG9ydGluZyBpbiB0aGUgeGRpc3QtcGx1Z2luCisgIHJh
dGhlciB0aGFuIGhhdmluZyBkaXN0LXJlbGF0ZWQgY29kZSBpbiB0aGUgZ2VuZXJpYyBweS50ZXN0
CisgIGRpc3RyaWJ1dGlvbgorLSBmaXggaG9tZWRpciBkZXRlY3Rpb24gb24gV2luZG93cworLSBz
aGlwIGRpc3RyaWJ1dGVfc2V0dXAucHkgdmVyc2lvbiAwLjYuMTMKKworQ2hhbmdlcyBiZXR3ZWVu
IDEuMy4wIGFuZCAxLjMuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworTmV3IGZlYXR1cmVzCisrKysrKysrKysrKysrKysrKysKKworLSBpc3N1
ZTkxOiBpbnRyb2R1Y2UgbmV3IHB5LnRlc3QueGZhaWwocmVhc29uKSBoZWxwZXIKKyAgdG8gaW1w
ZXJhdGl2ZWx5IG1hcmsgYSB0ZXN0IGFzIGV4cGVjdGVkIHRvIGZhaWwuIENhbgorICBiZSB1c2Vk
IGZyb20gd2l0aGluIHNldHVwIGFuZCB0ZXN0IGZ1bmN0aW9ucy4gVGhpcyBpcworICB1c2VmdWwg
ZXNwZWNpYWxseSBmb3IgcGFyYW1ldHJpemVkIHRlc3RzIHdoZW4gY2VydGFpbgorICBjb25maWd1
cmF0aW9ucyBhcmUgZXhwZWN0ZWQtdG8tZmFpbC4gIEluIHRoaXMgY2FzZSB0aGUKKyAgZGVjbGFy
YXRpdmUgYXBwcm9hY2ggd2l0aCB0aGUgQHB5LnRlc3QubWFyay54ZmFpbCBjYW5ub3QKKyAgYmUg
dXNlZCBhcyBpdCB3b3VsZCBtYXJrIGFsbCBjb25maWd1cmF0aW9ucyBhcyB4ZmFpbC4KKworLSBp
c3N1ZTEwMjogaW50cm9kdWNlIG5ldyAtLW1heGZhaWw9TlVNIG9wdGlvbiB0byBzdG9wCisgIHRl
c3QgcnVucyBhZnRlciBOVU0gZmFpbHVyZXMuICBUaGlzIGlzIGEgZ2VuZXJhbGl6YXRpb24KKyAg
b2YgdGhlICcteCcgb3IgJy0tZXhpdGZpcnN0JyBvcHRpb24gd2hpY2ggaXMgbm93IGVxdWl2YWxl
bnQKKyAgdG8gJy0tbWF4ZmFpbD0xJy4gIEJvdGggJy14JyBhbmQgJy0tbWF4ZmFpbCcgd2lsbAor
ICBub3cgYWxzbyBwcmludCBhIGxpbmUgbmVhciB0aGUgZW5kIGluZGljYXRpbmcgdGhlIEludGVy
cnVwdGlvbi4KKworLSBpc3N1ZTg5OiBhbGxvdyBweS50ZXN0Lm1hcmsgZGVjb3JhdG9ycyB0byBi
ZSB1c2VkIG9uIGNsYXNzZXMKKyAgKGNsYXNzIGRlY29yYXRvcnMgd2VyZSBpbnRyb2R1Y2VkIHdp
dGggcHl0aG9uMi42KSBhbmQKKyAgYWxzbyBhbGxvdyB0byBoYXZlIG11bHRpcGxlIG1hcmtlcnMg
YXBwbGllZCBhdCBjbGFzcy9tb2R1bGUgbGV2ZWwKKyAgYnkgc3BlY2lmeWluZyBhIGxpc3QuCisK
Ky0gaW1wcm92ZSBhbmQgcmVmaW5lIGxldHRlciByZXBvcnRpbmcgaW4gdGhlIHByb2dyZXNzIGJh
cjoKKyAgLiAgcGFzcworICBmICBmYWlsZWQgdGVzdAorICBzICBza2lwcGVkIHRlc3RzIChyZW1p
bmRlcjogdXNlIGZvciBkZXBlbmRlbmN5L3BsYXRmb3JtIG1pc21hdGNoIG9ubHkpCisgIHggIHhm
YWlsZWQgdGVzdCAodGVzdCB0aGF0IHdhcyBleHBlY3RlZCB0byBmYWlsKQorICBYICB4cGFzc2Vk
IHRlc3QgKHRlc3QgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gZmFpbCBidXQgcGFzc2VkKQorCisgIFlv
dSBjYW4gdXNlIGFueSBjb21iaW5hdGlvbiBvZiAnZnN4WCcgd2l0aCB0aGUgJy1yJyBleHRlbmRl
ZAorICByZXBvcnRpbmcgb3B0aW9uLiBUaGUgeGZhaWwveHBhc3MgcmVzdWx0cyB3aWxsIHNob3cg
dXAgYXMKKyAgc2tpcHBlZCB0ZXN0cyBpbiB0aGUganVuaXR4bWwgb3V0cHV0IC0gd2hpY2ggYWxz
byBmaXhlcworICBpc3N1ZTk5LgorCistIG1ha2UgcHkudGVzdC5jbWRsaW5lLm1haW4oKSByZXR1
cm4gdGhlIGV4aXRzdGF0dXMgaW5zdGVhZCBvZiByYWlzaW5nCisgIFN5c3RlbUV4aXQgYW5kIGFs
c28gYWxsb3cgaXQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLiAgVGhpcyBvZgorICBjb3Vy
c2UgcmVxdWlyZXMgdGhhdCB5b3VyIGFwcGxpY2F0aW9uIGFuZCB0ZXN0cyBhcmUgcHJvcGVybHkg
dGVhcmVkCisgIGRvd24gYW5kIGRvbid0IGhhdmUgZ2xvYmFsIHN0YXRlLgorCitGaXhlcyAvIE1h
aW50ZW5hbmNlCisrKysrKysrKysrKysrKysrKysrKysrCisKKy0gaW1wcm92ZWQgdHJhY2ViYWNr
IHByZXNlbnRhdGlvbjoKKyAgLSBpbXByb3ZlZCBhbmQgdW5pZmllZCByZXBvcnRpbmcgZm9yICIt
LXRiPXNob3J0IiBvcHRpb24KKyAgLSBFcnJvcnMgZHVyaW5nIHRlc3QgbW9kdWxlIGltcG9ydHMg
YXJlIG11Y2ggc2hvcnRlciwgKHVzaW5nIC0tdGI9c2hvcnQgc3R5bGUpCisgIC0gcmFpc2VzIHNo
b3dzIHNob3J0ZXIgbW9yZSByZWxldmFudCB0cmFjZWJhY2tzCisgIC0gLS1mdWxsdHJhY2Ugbm93
IG1vcmUgc3lzdGVtYXRpY2FsbHkgbWFrZXMgdHJhY2VzIGxvbmdlciAvIGluaGliaXRzIGN1dHRp
bmcKKworLSBpbXByb3ZlIHN1cHBvcnQgZm9yIHJhaXNlcyBhbmQgb3RoZXIgZHluYW1pY2FsbHkg
Y29tcGlsZWQgY29kZSBieQorICBtYW5pcHVsYXRpbmcgcHl0aG9uJ3MgbGluZWNhY2hlLmNhY2hl
IGluc3RlYWQgb2YgdGhlIHByZXZpb3VzCisgIHJhdGhlciBoYWNreSB3YXkgb2YgY3JlYXRpbmcg
Y3VzdG9tIGNvZGUgb2JqZWN0cy4gIFRoaXMgbWFrZXMKKyAgaXQgc2VlbWxlc3NseSB3b3JrIG9u
IEp5dGhvbiBhbmQgUHlQeSB3aGVyZSBpdCBwcmV2aW91c2x5IGRpZG4ndC4KKworLSBmaXggaXNz
dWU5NjogbWFrZSBjYXB0dXJpbmcgbW9yZSByZXNpbGllbnQgYWdhaW5zdCBDb250cm9sLUMKKyAg
aW50ZXJydXB0aW9ucyAoaW52b2x2ZWQgc29tZXdoYXQgc3Vic3RhbnRpYWwgcmVmYWN0b3JpbmcK
KyAgdG8gdGhlIHVuZGVybHlpbmcgY2FwdHVyaW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXZvaWQgcmFj
ZQorICBjb25kaXRpb25zKS4KKworLSBmaXggY2hhaW5pbmcgb2YgY29uZGl0aW9uYWwgc2tpcGlm
L3hmYWlsIGRlY29yYXRvcnMgLSBzbyBpdCB3b3JrcyBub3cKKyAgYXMgZXhwZWN0ZWQgdG8gdXNl
IG11bHRpcGxlIEBweS50ZXN0Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbikgZGVjb3JhdG9ycywKKyAg
aW5jbHVkaW5nIHNwZWNpZmljIHJlcG9ydGluZyB3aGljaCBvZiB0aGUgY29uZGl0aW9ucyBsZWFk
IHRvIHNraXBwaW5nLgorCistIGZpeCBpc3N1ZTk1OiBsYXRlLWltcG9ydCB6bGliIHNvIHRoYXQg
aXQncyBub3QgcmVxdWlyZWQKKyAgZm9yIGdlbmVyYWwgcHkudGVzdCBzdGFydHVwLgorCistIGZp
eCBpc3N1ZTk0OiBtYWtlIHJlcG9ydGluZyBtb3JlIHJvYnVzdCBhZ2FpbnN0IGJvZ3VzIHNvdXJj
ZSBjb2RlCisgIChhbmQgaW50ZXJuYWxseSBiZSBtb3JlIGNhcmVmdWwgd2hlbiBwcmVzZW50aW5n
IHVuZXhwZWN0ZWQgYnl0ZSBzZXF1ZW5jZXMpCisKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMi4xIGFu
ZCAxLjMuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworLSBkZXByZWNhdGUgLS1yZXBvcnQgb3B0aW9uIGluIGZhdm91ciBvZiBhIG5ldyBzaG9y
dGVyIGFuZCBlYXNpZXIgdG8KKyAgcmVtZW1iZXIgLXIgb3B0aW9uOiBpdCB0YWtlcyBhIHN0cmlu
ZyBhcmd1bWVudCBjb25zaXN0aW5nIG9mIGFueQorICBjb21iaW5hdGlvbiBvZiAneGZzWCcgY2hh
cmFjdGVycy4gIFRoZXkgcmVsYXRlIHRvIHRoZSBzaW5nbGUgY2hhcnMKKyAgeW91IHNlZSBkdXJp
bmcgdGhlIGRvdHRlZCBwcm9ncmVzcyBwcmludGluZyBhbmQgd2lsbCBwcmludCBhbiBleHRyYSBs
aW5lCisgIHBlciB0ZXN0IGF0IHRoZSBlbmQgb2YgdGhlIHRlc3QgcnVuLiAgVGhpcyBleHRyYSBs
aW5lIGluZGljYXRlcyB0aGUgZXhhY3QKKyAgcG9zaXRpb24gb3IgdGVzdCBJRCB0aGF0IHlvdSBk
aXJlY3RseSBwYXN0ZSB0byB0aGUgcHkudGVzdCBjbWRsaW5lIGluIG9yZGVyCisgIHRvIHJlLXJ1
biBhIHBhcnRpY3VsYXIgdGVzdC4KKworLSBhbGxvdyBleHRlcm5hbCBwbHVnaW5zIHRvIHJlZ2lz
dGVyIG5ldyBob29rcyB2aWEgdGhlIG5ldworICBweXRlc3RfYWRkaG9va3MocGx1Z2lubWFuYWdl
cikgaG9vay4gIFRoZSBuZXcgcmVsZWFzZSBvZgorICB0aGUgcHl0ZXN0LXhkaXN0IHBsdWdpbiBm
b3IgZGlzdHJpYnV0ZWQgYW5kIGxvb3BvbmZhaWxpbmcKKyAgdGVzdGluZyByZXF1aXJlcyB0aGlz
IGZlYXR1cmUuCisKKy0gYWRkIGEgbmV3IHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25m
aWcpIGhvb2sgdG8gYWxsb3cgcHJvamVjdHMgYW5kCisgIHBsdWdpbnMgdG8gZGVmaW5lIGV4Y2x1
c2lvbiBiZWhhdmlvdXIgZm9yIHRoZWlyIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgLQorICBmb3IgZXhh
bXBsZSB5b3UgbWF5IGRlZmluZSBpbiBhIGNvbmZ0ZXN0LnB5IHRoaXMgbWV0aG9kOjoKKworICAg
ICAgICBkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgpOgorICAgICAgICAgICAgcmV0dXJu
IHBhdGguY2hlY2sobGluaz0xKQorCisgIHRvIHByZXZlbnQgZXZlbiBhIGNvbGxlY3Rpb24gdHJ5
IG9mIGFueSB0ZXN0cyBpbiBzeW1saW5rZWQgZGlycy4KKworLSBuZXcgcHl0ZXN0X3B5Y29sbGVj
dF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCkgaG9vayBmb3IKKyAgYWxsb3dpbmcgY3VzdG9taXph
dGlvbiBvZiB0aGUgTW9kdWxlIGNvbGxlY3Rpb24gb2JqZWN0IGZvciBhCisgIG1hdGNoaW5nIHRl
c3QgbW9kdWxlLgorCistIGV4dGVuZCBhbmQgcmVmaW5lIHhmYWlsIG1lY2hhbmlzbToKKyAgYGBA
cHkudGVzdC5tYXJrLnhmYWlsKHJ1bj1GYWxzZSlgYCBkbyBub3QgcnVuIHRoZSBkZWNvcmF0ZWQg
dGVzdAorICBgYEBweS50ZXN0Lm1hcmsueGZhaWwocmVhc29uPSIuLi4iKWBgIHByaW50cyB0aGUg
cmVhc29uIHN0cmluZyBpbiB4ZmFpbCBzdW1tYXJpZXMKKyAgc3BlY2lmaXlpbmcgYGAtLXJ1bnhm
YWlsYGAgb24gY29tbWFuZCBsaW5lIHZpcnR1YWxseSBpZ25vcmVzIHhmYWlsIG1hcmtlcnMKKwor
LSBleHBvc2UgKHByZXZpb3VzbHkgaW50ZXJuYWwpIGNvbW1vbmx5IHVzZWZ1bCBtZXRob2RzOgor
ICBweS5pby5nZXRfdGVybWluYWxfd2l0aCgpIC0+IHJldHVybiB0ZXJtaW5hbCB3aWR0aAorICBw
eS5pby5hbnNpX3ByaW50KC4uLikgLT4gcHJpbnQgY29sb3JlZC9ib2xkIHRleHQgb24gbGludXgv
d2luMzIKKyAgcHkuaW8uc2FmZXJlcHIob2JqKSAtPiByZXR1cm4gbGltaXRlZCByZXByZXNlbnRh
dGlvbiBzdHJpbmcKKworLSBleHBvc2UgdGVzdCBvdXRjb21lIHJlbGF0ZWQgZXhjZXB0aW9ucyBh
cyBweS50ZXN0LnNraXAuRXhjZXB0aW9uLAorICBweS50ZXN0LnJhaXNlcy5FeGNlcHRpb24gZXRj
LiwgdXNlZnVsIG1vc3RseSBmb3IgcGx1Z2lucworICBkb2luZyBzcGVjaWFsIG91dGNvbWUgaW50
ZXJwcmV0YXRpb24vdHdlYWtpbmcKKworLSAoaXNzdWU4NSkgZml4IGp1bml0eG1sIHBsdWdpbiB0
byBoYW5kbGUgdGVzdHMgd2l0aCBub24tYXNjaWkgb3V0cHV0CisKKy0gZml4L3JlZmluZSBweXRo
b24zIGNvbXBhdGliaWxpdHkgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKworLSBmaXhlcyBm
b3IgbWFraW5nIHRoZSBqeXRob24vd2luMzIgY29tYmluYXRpb24gd29yaywgbm90ZSBob3dldmVy
OgorICBqeXRob24yLjUuMS93aW4zMiBkb2VzIG5vdCBwcm92aWRlIGEgY29tbWFuZCBsaW5lIGxh
dW5jaGVyLCBzZWUKKyAgaHR0cDovL2J1Z3Muanl0aG9uLm9yZy9pc3N1ZTE0OTEgLiBTZWUgcHls
aWIgaW5zdGFsbCBkb2N1bWVudGF0aW9uCisgIGZvciBob3cgdG8gd29yayBhcm91bmQuCisKKy0g
Zml4ZXMgZm9yIGhhbmRsaW5nIG9mIHVuaWNvZGUgZXhjZXB0aW9uIHZhbHVlcyBhbmQgdW5wcmlu
dGFibGUgb2JqZWN0cworCistIChpc3N1ZTg3KSBmaXggdW5ib3VuZGxvY2FsIGVycm9yIGluIGFz
c2VydGlvbm9sZCBjb2RlCisKKy0gKGlzc3VlODYpIGltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3Ig
bG9vcG9uZmFpbGluZworCistIHJlZmluZSBJTyBjYXB0dXJpbmc6IHN0ZGluLXJlZGlyZWN0IHBz
ZXVkby1maWxlIG5vdyBoYXMgYSBOT1AgY2xvc2UoKSBtZXRob2QKKworLSBzaGlwIGRpc3RyaWJ1
dGVfc2V0dXAucHkgdmVyc2lvbiAwLjYuMTAKKworLSBhZGRlZCBsaW5rcyB0byB0aGUgbmV3IGNh
cHR1cmVsb2cgYW5kIGNvdmVyYWdlIHBsdWdpbnMKKworCitDaGFuZ2VzIGJldHdlZW4gMS4yLjEg
YW5kIDEuMi4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gcmVm
aW5lZCB1c2FnZSBhbmQgb3B0aW9ucyBmb3IgInB5LmNsZWFudXAiOjoKKworICAgIHB5LmNsZWFu
dXAgICAgICMgcmVtb3ZlICIqLnB5YyIgYW5kICIqJHB5LmNsYXNzIiAoanl0aG9uKSBmaWxlcwor
ICAgIHB5LmNsZWFudXAgLWUgLnN3cCAtZSAuY2FjaGUgIyBhbHNvIHJlbW92ZSBmaWxlcyB3aXRo
IHRoZXNlIGV4dGVuc2lvbnMKKyAgICBweS5jbGVhbnVwIC1zICAjIHJlbW92ZSAiYnVpbGQiIGFu
ZCAiZGlzdCIgZGlyZWN0b3J5IG5leHQgdG8gc2V0dXAucHkgZmlsZXMKKyAgICBweS5jbGVhbnVw
IC1kICAjIGFsc28gcmVtb3ZlIGVtcHR5IGRpcmVjdG9yaWVzCisgICAgcHkuY2xlYW51cCAtYSAg
IyBzeW5vbnltIGZvciAiLXMgLWQgLWUgJ3BpcC1sb2cudHh0JyIKKyAgICBweS5jbGVhbnVwIC1u
ICAjIGRyeSBydW4sIG9ubHkgc2hvdyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQKKworLSBhZGQgYSBu
ZXcgb3B0aW9uICJweS50ZXN0IC0tZnVuY2FyZ3MiIHdoaWNoIHNob3dzIGF2YWlsYWJsZSBmdW5j
YXJncworICBhbmQgdGhlaXIgaGVscCBzdHJpbmdzIChkb2NzdHJpbmdzIG9uIHRoZWlyIHJlc3Bl
Y3RpdmUgZmFjdG9yeSBmdW5jdGlvbikKKyAgZm9yIGEgZ2l2ZW4gdGVzdCBwYXRoCisKKy0gZGlz
cGxheSBhIHNob3J0IGFuZCBjb25jaXNlIHRyYWNlYmFjayBpZiBhIGZ1bmNhcmcgbG9va3VwIGZh
aWxzCisKKy0gZWFybHktbG9hZCAiY29uZnRlc3QucHkiIGZpbGVzIGluIG5vbi1kb3QgZmlyc3Qt
bGV2ZWwgc3ViIGRpcmVjdG9yaWVzLgorICBhbGxvd3MgdG8gY29udmVuaWVudGx5IGtlZXAgYW5k
IGFjY2VzcyB0ZXN0LXJlbGF0ZWQgb3B0aW9ucyBpbiBhIGBgdGVzdGBgCisgIHN1YmRpciBhbmQg
c3RpbGwgYWRkIGNvbW1hbmQgbGluZSBvcHRpb25zLgorCistIGZpeCBpc3N1ZTY3OiBuZXcgc3Vw
ZXItc2hvcnQgdHJhY2ViYWNrLXByaW50aW5nIG9wdGlvbjogIi0tdGI9bGluZSIgd2lsbCBwcmlu
dCBhIHNpbmdsZSBsaW5lIGZvciBlYWNoIGZhaWxpbmcgKHB5dGhvbikgdGVzdCBpbmRpY2F0aW5n
IGl0cyBmaWxlbmFtZSwgbGluZW5vIGFuZCB0aGUgZmFpbHVyZSB2YWx1ZQorCistIGZpeCBpc3N1
ZTc4OiBhbHdheXMgY2FsbCBweXRob24tbGV2ZWwgdGVhcmRvd24gZnVuY3Rpb25zIGV2ZW4gaWYg
dGhlCisgIGFjY29yZGluZyBzZXR1cCBmYWlsZWQuICBUaGlzIGluY2x1ZGVzIHJlZmluZW1lbnRz
IGZvciBjYWxsaW5nIHNldHVwX21vZHVsZS9jbGFzcyBmdW5jdGlvbnMKKyAgd2hpY2ggd2lsbCBu
b3cgb25seSBiZSBjYWxsZWQgb25jZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIg
d2hlcmUgdGhleSdkIGJlIGNhbGxlZAorICBtdWx0aXBsZSB0aW1lcyBpZiB0aGV5IHJhaXNlIGFu
IGV4Y2VwdGlvbiAoaW5jbHVkaW5nIGEgU2tpcHBlZCBleGNlcHRpb24pLiAgQW55IGV4Y2VwdGlv
bgorICB3aWxsIGJlIHJlLWNvcmRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIGFsbCB0ZXN0cyBpbiB0
aGUgYWNjb3JkaW5nIG1vZHVsZS9jbGFzcyBzY29wZS4KKworLSBmaXggaXNzdWU2MzogYXNzdW1l
IDw0MCBjb2x1bW5zIHRvIGJlIGEgYm9ndXMgdGVybWluYWwgd2lkdGgsIGRlZmF1bHQgdG8gODAK
KworLSBmaXggcGRiIGRlYnVnZ2luZyB0byBiZSBpbiB0aGUgY29ycmVjdCBmcmFtZSBvbiByYWlz
ZXMtcmVsYXRlZCBlcnJvcnMKKworLSB1cGRhdGUgYXBpcGtnLnB5IHRvIGZpeCBhbiBpc3N1ZSB3
aGVyZSByZWN1cnNpdmUgaW1wb3J0cyBtaWdodAorICB1bm5lY2Vzc2FyaWx5IGJyZWFrIGltcG9y
dGluZworCistIGZpeCBwbHVnaW4gbGlua3MKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMiBhbmQgMS4x
LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBtb3ZlZCBkaXN0
L2xvb3BvbmZhaWxpbmcgZnJvbSBweS50ZXN0IGNvcmUgaW50byBhIG5ldworICBzZXBhcmF0ZWx5
IHJlbGVhc2VkIHB5dGVzdC14ZGlzdCBwbHVnaW4uCisKKy0gbmV3IGp1bml0eG1sIHBsdWdpbjog
LS1qdW5pdHhtbD1wYXRoIHdpbGwgZ2VuZXJhdGUgYSBqdW5pdCBzdHlsZSB4bWwgZmlsZQorICB3
aGljaCBpcyBwcm9jZXNzYWJsZSBlLmcuIGJ5IHRoZSBIdWRzb24gQ0kgc3lzdGVtLgorCistIG5l
dyBvcHRpb246IC0tZ2Vuc2NyaXB0PXBhdGggd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYWxvbmUgcHku
dGVzdCBzY3JpcHQKKyAgd2hpY2ggd2lsbCBub3QgbmVlZCBhbnkgbGlicmFyaWVzIGluc3RhbGxl
ZC4gIHRoYW5rcyB0byBSYWxmIFNjaG1pdHQuCisKKy0gbmV3IG9wdGlvbjogLS1pZ25vcmUgd2ls
bCBwcmV2ZW50IHNwZWNpZmllZCBwYXRoIGZyb20gY29sbGVjdGlvbi4KKyAgQ2FuIGJlIHNwZWNp
ZmllZCBtdWx0aXBsZSB0aW1lcy4KKworLSBuZXcgb3B0aW9uOiAtLWNvbmZjdXRkaXI9ZGlyIHdp
bGwgbWFrZSBweS50ZXN0IG9ubHkgY29uc2lkZXIgY29uZnRlc3QKKyAgZmlsZXMgdGhhdCBhcmUg
cmVsYXRpdmUgdG8gdGhlIHNwZWNpZmllZCBkaXIuCisKKy0gbmV3IGZ1bmNhcmc6ICJweXRlc3Rj
b25maWciIGlzIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBmb3IgYWNjZXNzCisgIHRvIGNvbW1h
bmQgbGluZSBhcmdzIGFuZCBjYW4gbm93IGJlIGVhc2lseSB1c2VkIGluIGEgdGVzdC4KKworLSBp
bnN0YWxsICdweS50ZXN0JyBhbmQgYHB5LndoaWNoYCB3aXRoIGEgYGAtJFZFUlNJT05gYCBzdWZm
aXggdG8KKyAgZGlzYW1iaWd1YXRlIGJldHdlZW4gUHl0aG9uMywgcHl0aG9uMi5YLCBKeXRob24g
YW5kIFB5UHkgaW5zdGFsbGVkIHZlcnNpb25zLgorCistIG5ldyAicHl0ZXN0Y29uZmlnIiBmdW5j
YXJnIGFsbG93cyBhY2Nlc3MgdG8gdGVzdCBjb25maWcgb2JqZWN0CisKKy0gbmV3ICJweXRlc3Rf
cmVwb3J0X2hlYWRlciIgaG9vayBjYW4gcmV0dXJuIGFkZGl0aW9uYWwgbGluZXMKKyAgdG8gYmUg
ZGlzcGxheWVkIGF0IHRoZSBoZWFkZXIgb2YgYSB0ZXN0IHJ1bi4KKworLSAoZXhwZXJpbWVudGFs
KSBhbGxvdyAicHkudGVzdCBwYXRoOjpuYW1lMTo6bmFtZTI6Oi4uLiIgZm9yIHBvaW50aW5nCisg
IHRvIGEgdGVzdCB3aXRoaW4gYSB0ZXN0IGNvbGxlY3Rpb24gZGlyZWN0bHkuICBUaGlzIG1pZ2h0
IGV2ZW50dWFsbHkKKyAgZXZvbHZlIGFzIGEgZnVsbCBzdWJzdGl0dXRlIHRvICItayIgc3BlY2lm
aWNhdGlvbnMuCisKKy0gc3RyZWFtbGluZWQgcGx1Z2luIGxvYWRpbmc6IG9yZGVyIGlzIG5vdyBh
cyBkb2N1bWVudGVkIGluCisgIGN1c3RvbWl6ZS5odG1sOiBzZXR1cHRvb2xzLCBFTlYsIGNvbW1h
bmRsaW5lLCBjb25mdGVzdC4KKyAgYWxzbyBzZXR1cHRvb2xzIGVudHJ5IHBvaW50IG5hbWVzIGFy
ZSB0dXJuZWQgdG8gY2Fub25pY2FsIG5hbWVlcyAoInB5dGVzdF8qIikKKworLSBhdXRvbWF0aWNh
bGx5IHNraXAgdGVzdHMgdGhhdCBuZWVkICdjYXBmZCcgYnV0IGhhdmUgbm8gb3MuZHVwCisKKy0g
YWxsb3cgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIHRvIGJlIGRlZmluZWQgaW4gY2xhc3NlcyBhcyB3
ZWxsCisKKy0gZGVwcmVjYXRlIHVzYWdlIG9mICdkaXNhYmxlZCcgYXR0cmlidXRlIGluIGZhdm91
ciBvZiBweXRlc3RtYXJrCistIGRlcHJlY2F0ZSBkZWZpbml0aW9uIG9mIERpcmVjdG9yeSwgTW9k
dWxlLCBDbGFzcyBhbmQgRnVuY3Rpb24gbm9kZXMKKyAgaW4gY29uZnRlc3QucHkgZmlsZXMuICBV
c2UgcHl0ZXN0IGNvbGxlY3QgaG9va3MgaW5zdGVhZC4KKworLSBjb2xsZWN0aW9uL2l0ZW0gbm9k
ZSBzcGVjaWZpYyBydW50ZXN0L2NvbGxlY3QgaG9va3MgYXJlIG9ubHkgY2FsbGVkIGV4YWN0bHkK
KyAgb24gbWF0Y2hpbmcgY29uZnRlc3QucHkgZmlsZXMsIGkuZS4gb25lcyB3aGljaCBhcmUgZXhh
Y3RseSBiZWxvdworICB0aGUgZmlsZXN5c3RlbSBwYXRoIG9mIGFuIGl0ZW0KKworLSBjaGFuZ2U6
IHRoZSBmaXJzdCBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkgaG9vayB0byByZXR1cm4gc29tZXRo
aW5nCisgIHdpbGwgbm93IHByZXZlbnQgZnVydGhlciBob29rcyB0byBiZSBjYWxsZWQuCisKKy0g
Y2hhbmdlOiBmaWdsZWFmIHBsdWdpbiBub3cgcmVxdWlyZXMgLS1maWdsZWFmIHRvIHJ1bi4gIEFs
c28KKyAgY2hhbmdlIGl0cyBsb25nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIGJlIGEgYml0IHNo
b3J0ZXIgKHNlZSBweS50ZXN0IC1oKS4KKworLSBjaGFuZ2U6IHB5dGVzdCBkb2N0ZXN0IHBsdWdp
biBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBoYXMgYQorICBuZXcgb3B0aW9uIC0tZG9j
dGVzdC1nbG9iIHRvIHNldCBhIHBhdHRlcm4gZm9yIGZpbGUgbWF0Y2hlcy4KKworLSBjaGFuZ2U6
IHJlbW92ZSBpbnRlcm5hbCBweS5fKiBoZWxwZXIgdmFycywgb25seSBrZWVwIHB5Ll9weWRpcgor
CistIHJvYnVzdGlmeSBjYXB0dXJpbmcgdG8gc3Vydml2ZSBpZiBjdXN0b20gcHl0ZXN0X3J1bnRl
c3Rfc2V0dXAKKyAgY29kZSBmYWlsZWQgYW5kIHByZXZlbnRlZCB0aGUgY2FwdHVyaW5nIHNldHVw
IGNvZGUgZnJvbSBydW5uaW5nLgorCistIG1ha2UgcHkudGVzdC4qIGhlbHBlcnMgcHJvdmlkZWQg
YnkgZGVmYXVsdCBwbHVnaW5zIHZpc2libGUgZWFybHkgLQorICB3b3JrcyB0cmFuc3BhcmVudGx5
IGJvdGggZm9yIHB5ZG9jIGFuZCBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMKKyAgd2hpY2ggd2ls
bCByZWd1bGFybHkgc2VlIGUuZy4gcHkudGVzdC5tYXJrIGFuZCBweS50ZXN0LmltcG9ydG9yc2tp
cC4KKworLSBzaW1wbGlmeSBpbnRlcm5hbCBwbHVnaW4gbWFuYWdlciBtYWNoaW5lcnkKKy0gc2lt
cGxpZnkgaW50ZXJuYWwgY29sbGVjdGlvbiB0cmVlIGJ5IGludHJvZHVjaW5nIGEgUm9vdENvbGxl
Y3RvciBub2RlCisKKy0gZml4IGFzc2VydCByZWludGVycHJlYXRpb24gdGhhdCBzZWVzIGEgY2Fs
bCBjb250YWluaW5nICJrZXl3b3JkPS4uLiIKKworLSBmaXggaXNzdWU2NjogaW52b2tlIHB5dGVz
dF9zZXNzaW9uc3RhcnQgYW5kIHB5dGVzdF9zZXNzaW9uZmluaXNoCisgIGhvb2tzIG9uIHNsYXZl
cyBkdXJpbmcgZGlzdC10ZXN0aW5nLCByZXBvcnQgbW9kdWxlL3Nlc3Npb24gdGVhcmRvd24KKyAg
aG9va3MgY29ycmVjdGx5LgorCistIGZpeCBpc3N1ZTY1OiBwcm9wZXJseSBoYW5kbGUgZGlzdC10
ZXN0aW5nIGlmIG5vCisgIGV4ZWNuZXQvcHkgbGliIGluc3RhbGxlZCByZW1vdGVseS4KKworLSBz
a2lwIHNvbWUgaW5zdGFsbC10ZXN0cyBpZiBubyBleGVjbmV0IGlzIGF2YWlsYWJsZQorCistIGZp
eCBkb2NzLCBmaXggaW50ZXJuYWwgYmluLyBzY3JpcHQgZ2VuZXJhdGlvbgorCisKK0NoYW5nZXMg
YmV0d2VlbiAxLjEuMSBhbmQgMS4xLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLSBpbnRyb2R1Y2UgYXV0b21hdGljIHBsdWdpbiByZWdpc3RyYXRpb24gdmlhICdw
eXRlc3QxMScKKyAgZW50cnlwb2ludHMgdmlhIHNldHVwdG9vbHMnIHBrZ19yZXNvdXJjZXMuaXRl
cl9lbnRyeV9wb2ludHMKKworLSBmaXggcHkudGVzdCBkaXN0LXRlc3RpbmcgdG8gd29yayB3aXRo
IGV4ZWNuZXQgPj0gMS4wLjBiNAorCistIHJlLWludHJvZHVjZSBweS50ZXN0LmNtZGxpbmUubWFp
bigpIGZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorCistIHN2biBwYXRoczogZml4
IGEgYnVnIHdpdGggcGF0aC5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSkgZm9yIHN2biBwYXRocywKKyAg
YWxsb3cgJyUnIGluIHN2biBwYXRocywgbWFrZSBzdm53Yy51cGRhdGUoKSBkZWZhdWx0IHRvIGlu
dGVyYWN0aXZlIG1vZGUKKyAgbGlrZSBpbiAxLjAueCBhbmQgYWRkIHN2bndjLnVwZGF0ZShpbnRl
cmFjdGl2ZT1GYWxzZSkgdG8gaW5oaWJpdCBpbnRlcmFjdGlvbi4KKworLSByZWZpbmUgZGlzdHJp
YnV0ZWQgdGFyYmFsbCB0byBjb250YWluIHRlc3QgYW5kIG5vIHB5YyBmaWxlcworCistIHRyeSBo
YXJkZXIgdG8gaGF2ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgcHkuY29tcGF0LiogYWNjZXNz
ZXMKKyAgcmVwb3J0IGEgY29ycmVjdCBsb2NhdGlvbgorCitDaGFuZ2VzIGJldHdlZW4gMS4xLjAg
YW5kIDEuMC4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogYWRq
dXN0IGFuZCBpbXByb3ZlIGRvY3MKKworKiByZW1vdmUgcHkucmVzdCB0b29sIGFuZCBpbnRlcm5h
bCBuYW1lc3BhY2UgLSBpdCB3YXMKKyAgbmV2ZXIgcmVhbGx5IGFkdmVydGlzZWQgYW5kIGNhbiBz
dGlsbCBiZSB1c2VkIHdpdGgKKyAgdGhlIG9sZCByZWxlYXNlIGlmIG5lZWRlZC4gIElmIHRoZXJl
IGlzIGludGVyZXN0CisgIGl0IGNvdWxkIGJlIHJldml2ZWQgaW50byBpdHMgb3duIHRvb2wgaSBn
dWVzcy4KKworKiBmaXggaXNzdWU0OCBhbmQgaXNzdWU1OTogcmFpc2UgYW4gRXJyb3IgaWYgdGhl
IG1vZHVsZQorICBmcm9tIGFuIGltcG9ydGVkIHRlc3QgZmlsZSBkb2VzIG5vdCBzZWVtIHRvIGNv
bWUgZnJvbQorICB0aGUgZmlsZXBhdGggLSBhdm9pZHMgInNhbWUtbmFtZSIgY29uZnVzaW9uIHRo
YXQgaGFzCisgIGJlZW4gcmVwb3J0ZWQgcmVwZWF0ZWRseQorCisqIG1lcmdlZCBSb25ueSdzIG5v
c2UtY29tcGF0aWJpbGl0eSBoYWNrczogbm93CisgIG5vc2Utc3R5bGUgc2V0dXBfbW9kdWxlKCkg
YW5kIHNldHVwKCkgZnVuY3Rpb25zIGFyZQorICBzdXBwb3J0ZWQKKworKiBpbnRyb2R1Y2UgZ2Vu
ZXJhbGl6ZWQgcHkudGVzdC5tYXJrIGZ1bmN0aW9uIG1hcmtpbmcKKworKiByZXNodWZmbGUgLyBy
ZWZpbmUgY29tbWFuZCBsaW5lIGdyb3VwaW5nCisKKyogZGVwcmVjYXRlIHBhcnNlci5hZGRncm91
cCBpbiBmYXZvdXIgb2YgZ2V0Z3JvdXAgd2hpY2ggY3JlYXRlcyBvcHRpb24gZ3JvdXAKKworKiBh
ZGQgLS1yZXBvcnQgY29tbWFuZCBsaW5lIG9wdGlvbiB0aGF0IGFsbG93cyB0byBjb250cm9sIHNo
b3dpbmcgb2Ygc2tpcHBlZC94ZmFpbGVkIHNlY3Rpb25zCisKKyogZ2VuZXJhbGl6ZWQgc2tpcHBp
bmc6IGEgbmV3IHdheSB0byBtYXJrIHB5dGhvbiBmdW5jdGlvbnMgd2l0aCBza2lwaWYgb3IgeGZh
aWwKKyAgYXQgZnVuY3Rpb24sIGNsYXNzIGFuZCBtb2R1bGVzIGxldmVsIGJhc2VkIG9uIHBsYXRm
b3JtIG9yIHN5cy1tb2R1bGUgYXR0cmlidXRlcy4KKworKiBleHRlbmQgcHkudGVzdC5tYXJrIGRl
Y29yYXRvciB0byBhbGxvdyBmb3IgcG9zaXRpb25hbCBhcmdzCisKKyogaW50cm9kdWNlIGFuZCB0
ZXN0ICJweS5jbGVhbnVwIC1kIiB0byByZW1vdmUgZW1wdHkgZGlyZWN0b3JpZXMKKworKiBmaXgg
aXNzdWUgIzU5IC0gcm9idXN0aWZ5IHVuaXR0ZXN0IHRlc3QgY29sbGVjdGlvbgorCisqIG1ha2Ug
YnB5dGhvbi9oZWxwIGludGVyYWN0aW9uIHdvcmsgYnkgYWRkaW5nIGFuIF9fYWxsX18gYXR0cmli
dXRlCisgIHRvIEFwaU1vZHVsZSwgY2xlYW51cCBpbml0cGtnCisKKyogdXNlIE1JVCBsaWNlbnNl
IGZvciBweWxpYiwgYWRkIHNvbWUgY29udHJpYnV0b3JzCisKKyogcmVtb3ZlIHB5LmV4ZWNuZXQg
Y29kZSBhbmQgc3Vic3RpdHV0ZSBhbGwgdXNhZ2VzIHdpdGggJ2V4ZWNuZXQnIHByb3BlcgorCisq
IGZpeCBpc3N1ZTUwIC0gY2FjaGVkX3NldHVwIG5vdyBjYWNoZXMgbW9yZSB0byBleHBlY3RhdGlv
bnMKKyAgZm9yIHRlc3QgZnVuY3Rpb25zIHdpdGggbXVsdGlwbGUgYXJndW1lbnRzLgorCisqIG1l
cmdlIEphcmtvJ3MgZml4ZXMsIGlzc3VlICM0NSBhbmQgIzQ2CisKKyogYWRkIHRoZSBhYmlsaXR5
IHRvIHNwZWNpZnkgYSBwYXRoIGZvciBweS5sb29rdXAgdG8gc2VhcmNoIGluCisKKyogZml4IGEg
ZnVuY2FyZyBjYWNoZWRfc2V0dXAgYnVnIHByb2JhYmx5IG9ubHkgb2NjdXJpbmcKKyAgaW4gZGlz
dHJpYnV0ZWQgdGVzdGluZyBhbmQgIm1vZHVsZSIgc2NvcGUgd2l0aCB0ZWFyZG93bi4KKworKiBt
YW55IGZpeGVzIGFuZCBjaGFuZ2VzIGZvciBtYWtpbmcgdGhlIGNvZGUgYmFzZSBweXRob24zIGNv
bXBhdGlibGUsCisgIG1hbnkgdGhhbmtzIHRvIEJlbmphbWluIFBldGVyc29uIGZvciBoZWxwaW5n
IHdpdGggdGhpcy4KKworKiBjb25zb2xpZGF0ZSBidWlsdGlucyBpbXBsZW1lbnRhdGlvbiB0byBi
ZSBjb21wYXRpYmxlIHdpdGggPj0yLjMsCisgIGFkZCBoZWxwZXJzIHRvIGVhc2Uga2VlcGluZyAy
IGFuZCAzayBjb21wYXRpYmxlIGNvZGUKKworKiBkZXByZWNhdGUgcHkuY29tcGF0LmRvY3Rlc3R8
c3VicHJvY2Vzc3x0ZXh0d3JhcHxvcHRwYXJzZQorCisqIGRlcHJlY2F0ZSBweS5tYWdpYy5hdXRv
cGF0aCwgcmVtb3ZlIHB5L21hZ2ljIGRpcmVjdG9yeQorCisqIG1vdmUgcHl0ZXN0IGFzc2VydGlv
biBoYW5kbGluZyB0byBweS9jb2RlIGFuZCBhIHB5dGVzdF9hc3NlcnRpb24KKyAgcGx1Z2luLCBh
ZGQgIi0tbm8tYXNzZXJ0IiBvcHRpb24sIGRlcHJlY2F0ZSBweS5tYWdpYyBuYW1lc3BhY2VzCisg
IGluIGZhdm91ciBvZiAobGVzcykgcHkuY29kZSBvbmVzLgorCisqIGNvbnNvbGlkYXRlIGFuZCBj
bGVhbnVwIHB5L2NvZGUgY2xhc3NlcyBhbmQgZmlsZXMKKworKiBjbGVhbnVwIHB5L21pc2MsIG1v
dmUgdGVzdHMgdG8gYmluLWZvci1kaXN0CisKKyogaW50cm9kdWNlIGRlbGF0dHIvZGVsaXRlbS9k
ZWxlbnYgbWV0aG9kcyB0byBweS50ZXN0J3MgbW9ua2V5cGF0Y2ggZnVuY2FyZworCisqIGNvbnNv
bGlkYXRlIHB5LmxvZyBpbXBsZW1lbnRhdGlvbiwgcmVtb3ZlIG9sZCBhcHByb2FjaC4KKworKiBp
bnRyb2R1Y2UgcHkuaW8uVGV4dElPIGFuZCBweS5pby5CeXRlc0lPIGZvciBkaXN0aW5ndWlzaGlu
ZyBiZXR3ZWVuCisgIHRleHQvdW5pY29kZSBhbmQgYnl0ZS1zdHJlYW1zICh1c2VzIHVuZGVybHlp
bmcgc3RhbmRhcmQgbGliIGlvLioKKyAgaWYgYXZhaWxhYmxlKQorCisqIG1ha2UgcHkudW5pdHRl
c3RfY29udmVydCBoZWxwZXIgc2NyaXB0IGF2YWlsYWJsZSB3aGljaCBjb252ZXJ0cyAidW5pdHRl
c3QucHkiCisgIHN0eWxlIGZpbGVzIGludG8gdGhlIHNpbXBsZXIgYXNzZXJ0L2RpcmVjdC10ZXN0
LWNsYXNzZXMgcHkudGVzdC9ub3NldGVzdHMKKyAgc3R5bGUuICBUaGUgc2NyaXB0IHdhcyB3cml0
dGVuIGJ5IExhdXJhIENyZWlnaHRvbi4KKworKiBzaW1wbGlmaWVkIGludGVybmFsIGxvY2FscGF0
aCBpbXBsZW1lbnRhdGlvbgorCitDaGFuZ2VzIGJldHdlZW4gMS4wLjEgYW5kIDEuMC4yCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogZml4aW5nIHBhY2thZ2luZyBp
c3N1ZXMsIHRyaWdnZXJlZCBieSBmZWRvcmEgcmVkaGF0IHBhY2thZ2luZywKKyAgYWxzbyBhZGRl
ZCBkb2MsIGV4YW1wbGVzIGFuZCBjb250cmliIGRpcnMgdG8gdGhlIHRhcmJhbGwuCisKKyogYWRk
ZWQgYSBkb2N1bWVudGF0aW9uIGxpbmsgdG8gdGhlIG5ldyBkamFuZ28gcGx1Z2luLgorCitDaGFu
Z2VzIGJldHdlZW4gMS4wLjAgYW5kIDEuMC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKyogYWRkZWQgYSAncHl0ZXN0X25vc2UnIHBsdWdpbiB3aGljaCBoYW5kbGVz
IG5vc2UuU2tpcFRlc3QsCisgIG5vc2Utc3R5bGUgZnVuY3Rpb24vbWV0aG9kL2dlbmVyYXRvciBz
ZXR1cC90ZWFyZG93biBhbmQKKyAgdHJpZXMgdG8gcmVwb3J0IGZ1bmN0aW9ucyBjb3JyZWN0bHku
CisKKyogY2FwdHVyaW5nIG9mIHVuaWNvZGUgd3JpdGVzIG9yIGVuY29kZWQgc3RyaW5ncyB0byBz
eXMuc3Rkb3V0L2VycgorICB3b3JrIGJldHRlciwgYWxzbyB0ZXJtaW5hbHdyaXRpbmcgd2FzIGFk
YXB0ZWQgYW5kIHNvbWV3aGF0CisgIHVuaWZpZWQgYmV0d2VlbiB3aW5kb3dzIGFuZCBsaW51eC4K
KworKiBpbXByb3ZlZCBkb2N1bWVudGF0aW9uIGxheW91dCBhbmQgY29udGVudCBhIGxvdAorCisq
IGFkZGVkIGEgIi0taGVscC1jb25maWciIG9wdGlvbiB0byBzaG93IGNvbmZ0ZXN0LnB5IC8gRU5W
LXZhciBuYW1lcyBmb3IKKyAgYWxsIGxvbmdvcHQgY21kbGluZSBvcHRpb25zLCBhbmQgc29tZSBz
cGVjaWFsIGNvbmZ0ZXN0LnB5IHZhcmlhYmxlcy4KKyAgcmVuYW1lZCAnY29uZl9jYXB0dXJlJyBj
b25mdGVzdCBzZXR0aW5nIHRvICdvcHRpb25fY2FwdHVyZScgYWNjb3JkaW5nbHkuCisKKyogZml4
IGlzc3VlICMyNzogYmV0dGVyIHJlcG9ydGluZyBvbiBub24tY29sbGVjdGFibGUgaXRlbXMgZ2l2
ZW4gb24gY29tbWFuZGxpbmUKKyAgKGUuZy4gcHljIGZpbGVzKQorCisqIGZpeCBpc3N1ZSAjMzM6
IGFkZGVkIC0tdmVyc2lvbiBmbGFnICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCisKKyogZml4
IGlzc3VlICMzMjogYWRkaW5nIHN1cHBvcnQgZm9yICJpbmNvbXBsZXRlIiBwYXRocyB0byB3Y3Bh
dGguc3RhdHVzKCkKKworKiAiVGVzdCIgcHJlZml4ZWQgY2xhc3NlcyBhcmUgKm5vdCogY29sbGVj
dGVkIGJ5IGRlZmF1bHQgYW55bW9yZSBpZiB0aGV5CisgIGhhdmUgYW4gX19pbml0X18gbWV0aG9k
CisKKyogbW9ua2V5cGF0Y2ggc2V0ZW52KCkgbm93IGFjY2VwdHMgYSAicHJlcGVuZCIgcGFyYW1l
dGVyCisKKyogaW1wcm92ZWQgcmVwb3J0aW5nIG9mIGNvbGxlY3Rpb24gZXJyb3IgdHJhY2ViYWNr
cworCisqIHNpbXBsaWZpZWQgbXVsdGljYWxsIG1lY2hhbmlzbSBhbmQgcGx1Z2luIGFyY2hpdGVj
dHVyZSwKKyAgcmVuYW1lZCBzb21lIGludGVybmFsIG1ldGhvZHMgYW5kIGFyZ25hbWVzCisKK0No
YW5nZXMgYmV0d2VlbiAxLjAuMGI5IGFuZCAxLjAuMAorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisqIG1vcmUgdGVyc2UgcmVwb3J0aW5nIHRyeSB0byBzaG93IGZpbGVz
eXN0ZW0gcGF0aCByZWxhdGl2ZWx5IHRvIGN1cnJlbnQgZGlyCisqIGltcHJvdmUgeGZhaWwgb3V0
cHV0IGEgYml0CisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMGI4IGFuZCAxLjAuMGI5Cis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogY2xlYW5seSBoYW5kbGUgYW5kIHJl
cG9ydCBmaW5hbCB0ZWFyZG93biBvZiB0ZXN0IHNldHVwCisKKyogZml4IHN2bi0xLjYgY29tcGF0
IGlzc3VlIHdpdGggcHkucGF0aC5zdm53YygpLnZlcnNpb25lZCgpCisgICh0aGFua3MgV291dGVy
IFZhbmRlbiBIb3ZlKQorCisqIHNldHVwL3RlYXJkb3duIG9yIGNvbGxlY3Rpb24gcHJvYmxlbXMg
bm93IHNob3cgYXMgRVJST1JzCisgIG9yIHdpdGggYmlnICJFIidzIGluIHRoZSBwcm9ncmVzcyBs
aW5lcy4gIHRoZXkgYXJlIHJlcG9ydGVkCisgIGFuZCBjb3VudGVkIHNlcGFyYXRlbHkuCisKKyog
ZGlzdC10ZXN0aW5nOiBwcm9wZXJseSBoYW5kbGUgdGVzdCBpdGVtcyB0aGF0IGdldCBsb2NhbGx5
CisgIGNvbGxlY3RlZCBidXQgY2Fubm90IGJlIGNvbGxlY3RlZCBvbiB0aGUgcmVtb3RlIHNpZGUg
LSBvZnRlbgorICBkdWUgdG8gcGxhdGZvcm0vZGVwZW5kZW5jeSByZWFzb25zCisKKyogc2ltcGxp
ZmllZCBweS50ZXN0Lm1hcmsgQVBJIC0gc2VlIGtleXdvcmQgcGx1Z2luIGRvY3VtZW50YXRpb24K
KworKiBpbnRlZ3JhdGUgYmV0dGVyIHdpdGggbG9nZ2luZzogY2FwdHVyaW5nIG5vdyBieSBkZWZh
dWx0IGNhcHR1cmVzCisgIHRlc3QgZnVuY3Rpb25zIGFuZCB0aGVpciBpbW1lZGlhdGUgc2V0dXAv
dGVhcmRvd24gaW4gYSBzaW5nbGUgc3RyZWFtCisKKyogY2Fwc3lzIGFuZCBjYXBmZCBmdW5jYXJn
cyBub3cgaGF2ZSBhIHJlYWRvdXRlcnIoKSBhbmQgYSBjbG9zZSgpIG1ldGhvZAorICAodW5kZXJs
eWluZ2x5IHB5LmlvLlN0ZENhcHR1cmUvRkQgb2JqZWN0cyBhcmUgdXNlZCB3aGljaCBncmV3IGEK
KyAgcmVhZG91dGVycigpIG1ldGhvZCBhcyB3ZWxsIHRvIHJldHVybiBzbmFwc2hvdHMgb2YgY2Fw
dHVyZWQgb3V0L2VycikKKworKiBtYWtlIGFzc2VydC1yZWludGVycHJldGF0aW9uIHdvcmsgYmV0
dGVyIHdpdGggY29tcGFyaXNvbnMgbm90CisgIHJldHVybmluZyBib29scyAocmVwb3J0ZWQgd2l0
aCBudW1weSBmcm9tIHRoYW5rcyBtYWNpZWogZmlqYWxrb3dza2kpCisKKyogcmV3b3JrZWQgcGVy
LXRlc3Qgb3V0cHV0IGNhcHR1cmluZyBpbnRvIHRoZSBweXRlc3RfaW9jYXB0dXJlLnB5IHBsdWdp
bgorICBhbmQgdGh1cyByZW1vdmVkIGNhcHR1cmluZyBjb2RlIGZyb20gY29uZmlnIG9iamVjdAor
CisqIGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8pIGluc3RlYWQgb2YgaXRlbS5yZXByX2ZhaWx1
cmUoZXhjaW5mbywgb3V0ZXJyKQorCisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMGI3IGFuZCAxLjAu
MGI4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcHl0ZXN0X3Vu
aXR0ZXN0LXBsdWdpbiBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0CisKKyogaW50cm9kdWNlZCBw
eXRlc3Rfa2V5Ym9hcmRpbnRlcnJ1cHQgaG9vayBhbmQKKyAgcmVmaW5lZCBweXRlc3Rfc2Vzc2lv
bmZpbmlzaCBob29rZWQsIGFkZGVkIHRlc3RzLgorCisqIHdvcmthcm91bmQgYSBidWdneSBsb2dn
aW5nIG1vZHVsZSBpbnRlcmFjdGlvbiAoImNsb3NpbmcgYWxyZWFkeSBjbG9zZWQKKyAgZmlsZXMi
KS4gIFRoYW5rcyB0byBTcmlkaGFyIFJhdG5ha3VtYXIgZm9yIHRyaWdnZXJpbmcuCisKKyogaWYg
cGx1Z2lucyB1c2UgInB5LnRlc3QuaW1wb3J0b3Jza2lwIiBmb3IgaW1wb3J0aW5nCisgIGEgZGVw
ZW5kZW5jeSBvbmx5IGEgd2FybmluZyB3aWxsIGJlIGlzc3VlZCBpbnN0ZWFkCisgIG9mIGV4aXRp
bmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4KKworKiBtYW55IGltcHJvdmVtZW50cyB0byBkb2NzOgor
ICAtIHJlZmluZWQgZnVuY2FyZ3MgZG9jICwgdXNlIHRoZSB0ZXJtICJmYWN0b3J5IiBpbnN0ZWFk
IG9mICJwcm92aWRlciIKKyAgLSBhZGRlZCBhIG5ldyB0YWxrL3R1dG9yaWFsIGRvYyBwYWdlCisg
IC0gYmV0dGVyIGRvd25sb2FkIHBhZ2UKKyAgLSBiZXR0ZXIgcGx1Z2luIGRvY3N0cmluZ3MKKyAg
LSBhZGRlZCBuZXcgcGx1Z2lucyBwYWdlIGFuZCBhdXRvbWF0aWMgZG9jIGdlbmVyYXRpb24gc2Ny
aXB0CisKKyogZml4ZWQgdGVhcmRvd24gcHJvYmxlbSByZWxhdGVkIHRvIHBhcnRpYWxseSBmYWls
aW5nIGZ1bmNhcmcgc2V0dXBzCisgICh0aGFua3MgTXJUb3BmIGZvciByZXBvcnRpbmcpLCAicHl0
ZXN0X3J1bnRlc3RfdGVhcmRvd24iIGlzIG5vdworICBhbHdheXMgaW52b2tlZCBldmVuIGlmIHRo
ZSAicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiIGZhaWxlZC4KKworKiB0d2Vha2VkIGRvY3Rlc3Qgb3V0
cHV0IGZvciBkb2NzdHJpbmdzIGluIHB5IG1vZHVsZXMsCisgIHRoYW5rcyBSYWRvbWlyLgorCitD
aGFuZ2VzIGJldHdlZW4gMS4wLjBiMyBhbmQgMS4wLjBiNworPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcmVuYW1lZCBweS50ZXN0LnhmYWlsIGJhY2sg
dG8gcHkudGVzdC5tYXJrLnhmYWlsIHRvIGF2b2lkCisgIHR3byB3YXlzIHRvIGRlY29yYXRlIGZv
ciB4ZmFpbAorCisqIHJlLWFkZGVkIHB5LnRlc3QubWFyayBkZWNvcmF0b3IgZm9yIHNldHRpbmcg
a2V5d29yZHMgb24gZnVuY3Rpb25zCisgIChpdCB3YXMgYWN0dWFsbHkgZG9jdW1lbnRlZCBzbyBy
ZW1vdmluZyBpdCB3YXMgbm90IG5pY2UpCisKKyogcmVtb3ZlIHNjb3BlLWFyZ3VtZW50IGZyb20g
cmVxdWVzdC5hZGRmaW5hbGl6ZXIoKSBiZWNhdXNlCisgIHJlcXVlc3QuY2FjaGVkX3NldHVwIGhh
cyB0aGUgc2NvcGUgYXJnLiBUT09XVERJLgorCisqIHBlcmZvcm0gc2V0dXAgZmluYWxpemF0aW9u
IGJlZm9yZSByZXBvcnRpbmcgZmFpbHVyZXMKKworKiBhcHBseSBtb2RpZmllZCBwYXRjaGVzIGZy
b20gQW5kcmVhcyBLbG9lY2tuZXIgdG8gYWxsb3cKKyAgdGVzdCBmdW5jdGlvbnMgdG8gaGF2ZSBu
byBmdW5jX2NvZGUgKCMyMikgYW5kIHRvIG1ha2UKKyAgIi1rIiBhbmQgZnVuY3Rpb24ga2V5d29y
ZHMgd29yayAgKCMyMCkKKworKiBhcHBseSBwYXRjaCBmcm9tIERhbmllbCBQZW9semxlaXRobmVy
IChpc3N1ZSAjMjMpCisKKyogcmVzb2x2ZSBpc3N1ZSAjMTgsIG11bHRpcHJvY2Vzc2luZy5NYW5h
Z2VyKCkgYW5kCisgIHJlZGlyZWN0aW9uIGNsYXNoCisKKyogbWFrZSBfX25hbWVfXyA9PSAiX19j
aGFubmVsZXhlY19fIiBmb3IgcmVtb3RlX2V4ZWMgY29kZQorCitDaGFuZ2VzIGJldHdlZW4gMS4w
LjBiMSBhbmQgMS4wLjBiMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKyogcGx1Z2luIGNsYXNzZXMgYXJlIHJlbW92ZWQ6IG9uZSBub3cgZGVmaW5lcwor
ICBob29rcyBkaXJlY3RseSBpbiBjb25mdGVzdC5weSBvciBnbG9iYWwgcHl0ZXN0XyoucHkKKyAg
ZmlsZXMuCisKKyogYWRkZWQgbmV3IHB5dGVzdF9uYW1lc3BhY2UoY29uZmlnKSBob29rIHRoYXQg
YWxsb3dzCisgIHRvIGluamVjdCBoZWxwZXJzIGRpcmVjdGx5IHRvIHRoZSBweS50ZXN0LiogbmFt
ZXNwYWNlLgorCisqIGRvY3VtZW50ZWQgYW5kIHJlZmluZWQgbWFueSBob29rcworCisqIGFkZGVk
IG5ldyBzdHlsZSBvZiBnZW5lcmF0aXZlIHRlc3RzIHZpYQorICBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMgaG9vayB0aGF0IGludGVncmF0ZXMKKyAgd2VsbCB3aXRoIGZ1bmN0aW9uIGFyZ3VtZW50cy4K
KworCitDaGFuZ2VzIGJldHdlZW4gMC45LjIgYW5kIDEuMC4wYjEKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGludHJvZHVjZWQgbmV3ICJmdW5jYXJn
IiBzZXR1cCBtZXRob2QsCisgIHNlZSBkb2MvdGVzdC9mdW5jYXJnLnR4dAorCisqIGludHJvZHVj
ZWQgcGx1Z2luIGFyY2hpdGVjdXR1cmUgYW5kIG1hbnkKKyAgbmV3IHB5LnRlc3QgcGx1Z2lucywg
c2VlCisgIGRvYy90ZXN0L3BsdWdpbnMudHh0CisKKyogdGVhcmRvd25fbWV0aG9kIGlzIG5vdyBn
dWFyYW50ZWVkIHRvIGdldAorICBjYWxsZWQgYWZ0ZXIgYSB0ZXN0IG1ldGhvZCBoYXMgcnVuLgor
CisqIG5ldyBtZXRob2Q6IHB5LnRlc3QuaW1wb3J0b3Jza2lwKG1vZCxtaW52ZXJzaW9uKQorICB3
aWxsIGVpdGhlciBpbXBvcnQgb3IgY2FsbCBweS50ZXN0LnNraXAoKQorCisqIGNvbXBsZXRlbHkg
cmV2aXNlZCBpbnRlcm5hbCBweS50ZXN0IGFyY2hpdGVjdHVyZQorCisqIG5ldyBweS5wcm9jZXNz
LkZvcmtlZEZ1bmMgb2JqZWN0IGFsbG93aW5nIHRvCisgIGZvcmsgZXhlY3V0aW9uIG9mIGEgZnVu
Y3Rpb24gdG8gYSBzdWIgcHJvY2VzcworICBhbmQgZ2V0dGluZyBhIHJlc3VsdCBiYWNrLgorCitY
WFggbG90cyBvZiB0aGluZ3MgbWlzc2luZyBoZXJlIFhYWAorCitDaGFuZ2VzIGJldHdlZW4gMC45
LjEgYW5kIDAuOS4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcmVmaW5l
ZCBpbnN0YWxsYXRpb24gYW5kIG1ldGFkYXRhLCBjcmVhdGVkIG5ldyBzZXR1cC5weSwKKyAgbm93
IGJhc2VkIG9uIHNldHVwdG9vbHMvZXpfc2V0dXAgKHRoYW5rcyB0byBSYWxmIFNjaG1pdHQKKyAg
Zm9yIGhpcyBzdXBwb3J0KS4KKworKiBpbXByb3ZlZCB0aGUgd2F5IG9mIG1ha2luZyBweS4qIHNj
cmlwdHMgYXZhaWxhYmxlIGluCisgIHdpbmRvd3MgZW52aXJvbm1lbnRzLCB0aGV5IGFyZSBub3cg
YWRkZWQgdG8gdGhlCisgIFNjcmlwdHMgZGlyZWN0b3J5IGFzICIuY21kIiBmaWxlcy4KKworKiBw
eS5wYXRoLnN2bndjLnN0YXR1cygpIG5vdyBpcyBtb3JlIGNvbXBsZXRlIGFuZAorICB1c2VzIHht
bCBvdXRwdXQgZnJvbSB0aGUgJ3N2bicgY29tbWFuZCBpZiBhdmFpbGFibGUKKyAgKEd1aWRvIFdl
c2RvcnApCisKKyogZml4IGZvciBweS5wYXRoLnN2biogdG8gd29yayB3aXRoIHN2biAxLjUKKyAg
KENocmlzIExhbWIpCisKKyogZml4IHBhdGgucmVsdG8ob3RoZXJwYXRoKSBtZXRob2Qgb24gd2lu
ZG93cyB0bworICB1c2Ugbm9ybWNhc2UgZm9yIGNoZWNraW5nIGlmIGEgcGF0aCBpcyByZWxhdGl2
ZS4KKworKiBweS50ZXN0J3MgdHJhY2ViYWNrIGlzIGJldHRlciBwYXJzZWFibGUgZnJvbSBlZGl0
b3JzCisgIChmb2xsb3dzIHRoZSBmaWxlbmFtZXM6TElORU5POiBNU0cgY29udmVudGlvbikKKyAg
KHRoYW5rcyB0byBPc21vIFNhbG9tYWEpCisKKyogZml4IHRvIGphdmFzY3JpcHQtZ2VuZXJhdGlv
biwgInB5LnRlc3QgLS1ydW5icm93c2VyIgorICBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IG5v
dworCisqIHJlbW92ZWQgcHJldmlvdXNseSBhY2NpZGVudGFsbHkgYWRkZWQKKyAgcHkudGVzdC5i
cm9rZW4gYW5kIHB5LnRlc3Qubm90aW1wbGVtZW50ZWQgaGVscGVycy4KKworKiB0aGVyZSBub3cg
aXMgYSBweS5fX3ZlcnNpb25fXyBhdHRyaWJ1dGUKKworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4wIGFu
ZCAwLjkuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGlzIGlzIGEgZmFp
cmx5IGNvbXBsZXRlIGxpc3Qgb2YgY2hhbmdlcyBiZXR3ZWVuIDAuOSBhbmQgMC45LjEsIHdoaWNo
IGNhbgorc2VydmUgYXMgYSByZWZlcmVuY2UgZm9yIGRldmVsb3BlcnMuCisKKyogYWxsb3dpbmcg
KyBzaWducyBpbiBweS5wYXRoLnN2biB1cmxzIFszOTEwNl0KKyogZml4ZWQgc3VwcG9ydCBmb3Ig
RmFpbGVkIGV4Y2VwdGlvbnMgd2l0aG91dCBleGNpbmZvIGluIHB5LnRlc3QgWzM5MzQwXQorKiBh
ZGRlZCBzdXBwb3J0IGZvciBraWxsaW5nIHByb2Nlc3NlcyBmb3IgV2luZG93cyAoYXMgd2VsbCBh
cyBwbGF0Zm9ybXMgdGhhdAorICBzdXBwb3J0IG9zLmtpbGwpIGluIHB5Lm1pc2Mua2lsbHByb2Mg
WzM5NjU1XQorKiBhZGRlZCBzZXR1cC90ZWFyZG93biBmb3IgZ2VuZXJhdGl2ZSB0ZXN0cyB0byBw
eS50ZXN0IFs0MDcwMl0KKyogYWRkZWQgZGV0ZWN0aW9uIG9mIEZBSUxFRCBUTyBMT0FEIE1PRFVM
RSB0byBweS50ZXN0IFs0MDcwMywgNDA3MzgsIDQwNzM5XQorKiBmaXhlZCBwcm9ibGVtIHdpdGgg
Y2FsbGluZyAucmVtb3ZlKCkgb24gd2NwYXRocyBvZiBub24tdmVyc2lvbmVkIGZpbGVzIGluCisg
IHB5LnBhdGggWzQ0MjQ4XQorKiBmaXhlZCBzb21lIGltcG9ydCBhbmQgaW5oZXJpdGFuY2UgaXNz
dWVzIGluIHB5LnRlc3QgWzQxNDgwLCA0NDY0OCwgNDQ2NTVdCisqIGZhaWwgdG8gcnVuIGdyZWVu
bGV0IHRlc3RzIHdoZW4gcHlweSBpcyBhdmFpbGFibGUsIGJ1dCB3aXRob3V0IHN0YWNrbGVzcwor
ICBbNDUyOTRdCisqIHNtYWxsIGZpeGVzIGluIHJzZXNzaW9uIHRlc3RzIFs0NTI5NV0KKyogZml4
ZWQgaXNzdWUgd2l0aCAyLjUgdHlwZSByZXByZXNlbnRhdGlvbnMgaW4gcHkudGVzdCBbNDU0ODMs
IDQ1NDg0XQorKiBtYWRlIHRoYXQgaW50ZXJuYWwgcmVwb3J0aW5nIGlzc3VlcyBkaXNwbGF5aW5n
IGlzIGRvbmUgYXRvbWljYWxseSBpbiBweS50ZXN0CisgIFs0NTUxOF0KKyogbWFkZSB0aGF0IG5v
bi1leGlzdGluZyBmaWxlcyBhcmUgaWdvcmVkIGJ5IHRoZSBweS5sb29rdXAgc2NyaXB0IFs0NTUx
OV0KKyogaW1wcm92ZWQgZXhjZXB0aW9uIG5hbWUgY3JlYXRpb24gaW4gcHkudGVzdCBbNDU1MzVd
CisqIG1hZGUgdGhhdCBsZXNzIHRocmVhZHMgYXJlIHVzZWQgaW4gZXhlY25ldCBbbWVyZ2UgaW4g
NDU1MzldCisqIHJlbW92ZWQgbG9jayByZXF1aXJlZCBmb3IgYXRvbWljYWwgcmVwb3J0aW5nIGlz
c3VlIGRpc3BsYXlpbmcgaW4gcHkudGVzdAorICBbNDU1NDVdCisqIHJlbW92ZWQgZ2xvYmFscyBm
cm9tIGV4ZWNuZXQgWzQ1NTQxLCA0NTU0N10KKyogcmVmYWN0b3JlZCBjbGVhbnVwIG1lY2hhbmlj
cywgbWFkZSB0aGF0IHNldERhZW1vbiBpcyBzZXQgdG8gMSB0byBtYWtlIGF0ZXhpdAorICBnZXQg
Y2FsbGVkIGluIDIuNSAocHkuZXhlY25ldCkgWzQ1NTQ4XQorKiBmaXhlZCBidWcgaW4gam9pbmlu
ZyB0aHJlYWRzIGluIHB5LmV4ZWNuZXQncyBzZXJ2ZW1haW4gWzQ1NTQ5XQorKiByZWZhY3RvcmVk
IHB5LnRlc3QucnNlc3Npb24gdGVzdHMgdG8gbm90IHJlbHkgb24gZXhhY3Qgb3V0cHV0IGZvcm1h
dCBhbnltb3JlCisgIFs0NTY0Nl0KKyogdXNpbmcgcmVwcigpIG9uIHRlc3Qgb3V0Y29tZSBbNDU2
NDddCisqIGFkZGVkICdSZWFzb24nIGNsYXNzZXMgZm9yIHB5LnRlc3Quc2tpcCgpIFs0NTY0OCwg
NDU2NDldCisqIGtpbGxlZCBzb21lIHVubmVjZXNzYXJ5IHNhbml0eSBjaGVjayBpbiBweS50ZXN0
LmNvbGxlY3QgWzQ1NjU1XQorKiBhdm9pZCB1c2luZyBvcy50bXBmaWxlKCkgaW4gcHkuaW8uZmRj
YXB0dXJlIGJlY2F1c2Ugb24gV2luZG93cyBpdCdzIG9ubHkKKyAgdXNhYmxlIGJ5IEFkbWluaXN0
cmF0b3JzIFs0NTkwMV0KKyogYWRkZWQgc3VwcG9ydCBmb3IgbG9ja2luZyBhbmQgbm9uLXJlY3Vy
c2l2ZSBjb21taXRzIHRvIHB5LnBhdGguc3Zud2MgWzQ1OTk0XQorKiBsb2NraW5nIGZpbGVzIGlu
IHB5LmV4ZWNuZXQgdG8gcHJldmVudCBDUHl0aG9uIGZyb20gc2VnZmF1bHRpbmcgWzQ2MDEwXQor
KiBhZGRlZCBleHBvcnQoKSBtZXRob2QgdG8gcHkucGF0aC5zdm51cmwKKyogZml4ZWQgLWQgLXgg
aW4gcHkudGVzdCBbNDcyNzddCisqIGZpeGVkIGFyZ3VtZW50IGNvbmNhdGVuYXRpb24gcHJvYmxl
bSBpbiBweS5wYXRoLnN2bndjIFs0OTQyM10KKyogcmVzdG9yZSBweS50ZXN0IGJlaGF2aW91ciB0
aGF0IGl0IGV4aXRzIHdpdGggY29kZSAxIHdoZW4gdGhlcmUgYXJlIGZhaWx1cmVzCisgIFs0OTk3
NF0KKyogZG9uJ3QgZmFpbCBvbiBodG1sIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhbiBhY2NvbXBh
bnlpbmcgLnR4dCBmaWxlIFs1MDYwNl0KKyogZml4ZWQgJ3V0ZXN0Y29udmVydC5weSA8IGlucHV0
JyBbNTA2NDVdCisqIHNtYWxsIGZpeCBmb3IgY29kZSBpbmRlbnRhdGlvbiBpbiBweS5jb2RlLnNv
dXJjZSBbNTA3NTVdCisqIGZpeCBfZG9jZ2VuLnB5IGRvY3VtZW50YXRpb24gYnVpbGRpbmcgWzUx
Mjg1XQorKiBpbXByb3ZlZCBjaGVja3MgZm9yIHNvdXJjZSByZXByZXNlbnRhdGlvbiBvZiBjb2Rl
IGJsb2NrcyBpbiBweS50ZXN0IFs1MTI5Ml0KKyogYWRkZWQgc3VwcG9ydCBmb3IgcGFzc2luZyBh
dXRoZW50aWNhdGlvbiB0byBweS5wYXRoLnN2biogb2JqZWN0cyBbNTIwMDAsCisgIDUyMDAxXQor
KiByZW1vdmVkIHNvcnRlZCgpIGNhbGwgZm9yIHB5LmFwaWdlbiB0ZXN0cyBpbiBmYXZvdXIgb2Yg
W10uc29ydCgpIHRvIHN1cHBvcnQKKyAgUHl0aG9uIDIuMyBbNTI0ODFdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlY2RmYjFkYmM1
NGZiNDE5OTk4Njc4ODRkYWQ1MmEwN2VhYzJjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
TElDRU5TRQpAQCAtMCwwICsxLDE5IEBACisKKyAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICBvZiB0
aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m
dHdhcmUiKSwgdG8gZGVhbAorICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCisgIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl
bGwKKyAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIFNvZnR3YXJlIGlzCisgIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisgICAgIAorICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKKyAg
Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAKKyAgVEhF
IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ
TkQsIEVYUFJFU1MgT1IKKyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU
SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQor
ICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSCisgIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisgIE9VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFCisgIFNPRlRXQVJFLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L01BTklGRVNULmluIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzlhZDIyODNlMTNlYjVlNDJkNjBlOGRj
MzFiY2VkYTgzY2U1MDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9NQU5JRkVTVC5pbgpA
QCAtMCwwICsxLDEwIEBACitpbmNsdWRlIENIQU5HRUxPRworaW5jbHVkZSBBVVRIT1JTCitpbmNs
dWRlIFJFQURNRS5yc3QKK2luY2x1ZGUgc2V0dXAucHkKK2luY2x1ZGUgTElDRU5TRQoraW5jbHVk
ZSBjb25mdGVzdC5weQoraW5jbHVkZSB0b3guaW5pCitncmFmdCBkb2MKK2dyYWZ0IHRlc3RpbmcK
K2dsb2JhbC1leGNsdWRlICoucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L1JFQURNRS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5MmFlNGM0NjBjZDg1YzNhOWM3ZWM4NDg2
MGNiYzdmMGY5ZTU0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvUkVBRE1FLnJzdApAQCAt
MCwwICsxLDM0IEBACisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3B5
LnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weQorCisuLiBpbWFn
ZTo6IGh0dHBzOi8vYW5hY29uZGEub3JnL2NvbmRhLWZvcmdlL3B5L2JhZGdlcy92ZXJzaW9uLnN2
ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vYW5hY29uZGEub3JnL2NvbmRhLWZvcmdlL3B5CisKKy4u
IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvcHl0ZXN0LnN2
ZworICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHkKKworLi4gaW1hZ2U6OiBo
dHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9weXRlc3QtZGV2L3B5LnN2ZworICAgOnRhcmdl
dDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3B5dGVzdC1kZXYvcHkKKworLi4gaW1hZ2U6OiBodHRw
czovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzLzEwa2VnbGFuNnVxd2o1YWwv
YnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZQorICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlvci5j
b20vcHJvamVjdC9weXRlc3Rib3QvcHkKKworCisqKk5PVEUqKjogdGhpcyBsaWJyYXJ5IGlzIGlu
ICoqbWFpbnRlbmFuY2UgbW9kZSoqIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgaW4gbmV3IGNvZGUu
CisKK1RoZSBweSBsaWIgaXMgYSBQeXRob24gZGV2ZWxvcG1lbnQgc3VwcG9ydCBsaWJyYXJ5IGZl
YXR1cmluZwordGhlIGZvbGxvd2luZyB0b29scyBhbmQgbW9kdWxlczoKKworKiBgYHB5LnBhdGhg
YDogIHVuaWZvcm0gbG9jYWwgYW5kIHN2biBwYXRoIG9iamVjdHMKKyogYGBweS5hcGlwa2dgYDog
IGV4cGxpY2l0IEFQSSBjb250cm9sIGFuZCBsYXp5LWltcG9ydGluZworKiBgYHB5LmluaWNvbmZp
Z2BgOiAgZWFzeSBwYXJzaW5nIG9mIC5pbmkgZmlsZXMKKyogYGBweS5jb2RlYGA6IGR5bmFtaWMg
Y29kZSBnZW5lcmF0aW9uIGFuZCBpbnRyb3NwZWN0aW9uIChkZXByZWNhdGVkLCBtb3ZlZCB0byBg
YHB5dGVzdGBgKS4KKworKipOT1RFKio6IHByaW9yIHRvIHRoZSAxLjQgcmVsZWFzZSB0aGlzIGRp
c3RyaWJ1dGlvbiB1c2VkIHRvCitjb250YWluIHB5LnRlc3Qgd2hpY2ggaXMgbm93IGl0cyBvd24g
cGFja2FnZSwgc2VlIGh0dHA6Ly9weXRlc3Qub3JnCisKK0ZvciBxdWVzdGlvbnMgYW5kIG1vcmUg
aW5mb3JtYXRpb24gcGxlYXNlIHZpc2l0IGh0dHA6Ly9weS5yZWFkdGhlZG9jcy5vcmcKKworQnVn
cyBhbmQgaXNzdWVzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weQorCitBdXRob3Jz
OiBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIwMDQtMjAxNwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmJlY2E5
YWI2NTk3MTlmZjNiOTg2YmZlYWY2ZDFhYzk0MWExOWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9hcHB2ZXlvci55bWwKQEAgLTAsMCArMSwyNiBAQAorZW52aXJvbm1lbnQ6CisgIG1hdHJp
eDoKKyAgIyBub3RlOiBwbGVhc2UgdXNlICJ0b3ggLS1saXN0ZW52cyIgdG8gcG9wdWxhdGUgdGhl
IGJ1aWxkIG1hdHJpeCBiZWxvdworICAtIFRPWEVOVjogInB5MjctcHl0ZXN0MjkiCisgIC0gVE9Y
RU5WOiAicHkyNy1weXRlc3QzMCIKKyAgLSBUT1hFTlY6ICJweTI3LXB5dGVzdDMxIgorICAtIFRP
WEVOVjogInB5MzQtcHl0ZXN0MjkiCisgIC0gVE9YRU5WOiAicHkzNC1weXRlc3QzMCIKKyAgLSBU
T1hFTlY6ICJweTM0LXB5dGVzdDMxIgorICAtIFRPWEVOVjogInB5MzUtcHl0ZXN0MjkiCisgIC0g
VE9YRU5WOiAicHkzNS1weXRlc3QzMCIKKyAgLSBUT1hFTlY6ICJweTM1LXB5dGVzdDMxIgorICAt
IFRPWEVOVjogInB5MzYtcHl0ZXN0MjkiCisgIC0gVE9YRU5WOiAicHkzNi1weXRlc3QzMCIKKyAg
LSBUT1hFTlY6ICJweTM2LXB5dGVzdDMxIgorCitpbnN0YWxsOgorICAtIGVjaG8gSW5zdGFsbGVk
IFB5dGhvbnMKKyAgLSBkaXIgYzpcUHl0aG9uKgorCisgIC0gQzpcUHl0aG9uMzZccHl0aG9uIC1t
IHBpcCBpbnN0YWxsIC0tdXBncmFkZSAtLXByZSB0b3gKKworYnVpbGQ6IGZhbHNlICAjIE5vdCBh
IEMjIHByb2plY3QsIGJ1aWxkIHN0dWZmIGF0IHRoZSB0ZXN0IHN0ZXAgaW5zdGVhZC4KKwordGVz
dF9zY3JpcHQ6CisgIC0gQzpcUHl0aG9uMzZccHl0aG9uIC1tIHRveApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9iZW5jaC9sb2NhbHBhdGgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2JlbmNoL2xvY2FscGF0aC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZDRmYmQ4ZTJiZmQ0NTk1YjU4NDY2NWE1Y2Q4OWZmZjFjM2M1MGIxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9iZW5jaC9sb2NhbHBhdGgucHkKQEAgLTAsMCArMSw3NSBAQAor
CitpbXBvcnQgcHkKK2ltcG9ydCB0aW1laXQKKworY2xhc3MgTGlzdGRpcjoKKyAgICBudW1pdGVy
ID0gMTAwMDAwCisgICAgbnVtZW50cmllcyA9IDEwMAorCisgICAgZGVmIHNldHVwKHNlbGYpOgor
ICAgICAgICB0bXBkaXIgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHNlbGYuX19j
bGFzc19fLl9fbmFtZV9fKQorICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLm51bWVudHJpZXMp
OgorICAgICAgICAgICAgdG1wZGlyLmpvaW4oc3RyKGkpKQorICAgICAgICBzZWxmLnRtcGRpciA9
IHRtcGRpcgorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudG1wZGly
Lmxpc3RkaXIoKQorCitjbGFzcyBMaXN0ZGlyX2FyZyhMaXN0ZGlyKToKKyAgICBudW1pdGVyID0g
MTAwMDAwCisgICAgbnVtZW50cmllcyA9IDEwMAorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYudG1wZGlyLmxpc3RkaXIoIjQ3IikKKworY2xhc3MgSm9pbl9vbmVhcmco
TGlzdGRpcik6CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi50bXBkaXIuam9pbigi
MTciKQorICAgICAgICBzZWxmLnRtcGRpci5qb2luKCIxOCIpCisgICAgICAgIHNlbGYudG1wZGly
LmpvaW4oIjE5IikKKworY2xhc3MgSm9pbl9tdWx0aShMaXN0ZGlyKToKKyAgICBkZWYgcnVuKHNl
bGYpOgorICAgICAgICBzZWxmLnRtcGRpci5qb2luKCJhIiwgImIiKQorICAgICAgICBzZWxmLnRt
cGRpci5qb2luKCJhIiwgImIiLCAiYyIpCisgICAgICAgIHNlbGYudG1wZGlyLmpvaW4oImEiLCAi
YiIsICJjIiwgImQiKQorCitjbGFzcyBDaGVjayhMaXN0ZGlyKToKKyAgICBkZWYgcnVuKHNlbGYp
OgorICAgICAgICBzZWxmLnRtcGRpci5jaGVjaygpCisgICAgICAgIHNlbGYudG1wZGlyLmNoZWNr
KCkKKyAgICAgICAgc2VsZi50bXBkaXIuY2hlY2soKQorCitjbGFzcyBDaGVja0RpcihMaXN0ZGly
KToKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLnRtcGRpci5jaGVjayhkaXI9MSkK
KyAgICAgICAgc2VsZi50bXBkaXIuY2hlY2soZGlyPTEpCisgICAgICAgIGFzc2VydCBub3Qgc2Vs
Zi50bXBkaXIuY2hlY2soZGlyPTApCisKK2NsYXNzIENoZWNrRGlyMihMaXN0ZGlyKToKKyAgICBk
ZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLnRtcGRpci5zdGF0KCkuaXNkaXIoKQorICAgICAg
ICBzZWxmLnRtcGRpci5zdGF0KCkuaXNkaXIoKQorICAgICAgICBhc3NlcnQgc2VsZi50bXBkaXIu
c3RhdCgpLmlzZGlyKCkKKworY2xhc3MgQ2hlY2tGaWxlKExpc3RkaXIpOgorICAgIGRlZiBydW4o
c2VsZik6CisgICAgICAgIHNlbGYudG1wZGlyLmNoZWNrKGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0
IG5vdCBzZWxmLnRtcGRpci5jaGVjayhmaWxlPTEpCisgICAgICAgIGFzc2VydCBzZWxmLnRtcGRp
ci5jaGVjayhmaWxlPTApCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgaW1wb3J0
IHRpbWUKKyAgICBmb3IgY2xzIGluIFtMaXN0ZGlyLCBMaXN0ZGlyX2FyZywKKyAgICAgICAgICAg
ICAgICBKb2luX29uZWFyZywgSm9pbl9tdWx0aSwKKyAgICAgICAgICAgICAgIENoZWNrLCBDaGVj
a0RpciwgQ2hlY2tEaXIyLCBDaGVja0ZpbGUsXToKKworICAgICAgICBpbnN0ID0gY2xzKCkKKyAg
ICAgICAgaW5zdC5zZXR1cCgpCisgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCisgICAgICAgIGZv
ciBpIGluIHhyYW5nZShjbHMubnVtaXRlcik6CisgICAgICAgICAgICBpbnN0LnJ1bigpCisgICAg
ICAgIGVsYXBzZWQgPSB0aW1lLnRpbWUoKSAtIG5vdworICAgICAgICBwcmludCAiJXM6ICVkIGxv
b3BzIHRvb2sgJS4yZiBzZWNvbmRzLCBwZXIgY2FsbCAlLjZmIiAlKAorICAgICAgICAgICAgICAg
Y2xzLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgIGNscy5udW1pdGVyLCBlbGFwc2VkLCBlbGFw
c2VkIC8gY2xzLm51bWl0ZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2JlbmNoL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9iZW5jaC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWRhZDYyMWY1
YmUzOTlkZjUwOWI5N2ZiNTgxYWUwOTZjYzY2MDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9iZW5jaC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L2JlbmNoL2xvY2FscGF0aC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9jb25mdGVzdC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJmZjNmZTAyMjQ1Y2UwZDAxYThmMDAxMWNk
MGM1ZTFmNDExZjAxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvY29uZnRlc3QucHkKQEAg
LTAsMCArMSw2MCBAQAoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCisKK3B5
dGVzdF9wbHVnaW5zID0gJ2RvY3Rlc3QnLCAncHl0ZXN0ZXInCisKK2NvbGxlY3RfaWdub3JlID0g
WydidWlsZCcsICdkb2MvX2J1aWxkJ10KKworCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIp
OgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJweWxpYiIsICJweSBsaWIgdGVzdGluZyBv
cHRpb25zIikKKyAgICBncm91cC5hZGRvcHRpb24oJy0tcnVuc2xvd3Rlc3RzJywKKyAgICAgICAg
ICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0icnVuc2xvd3Rlc3RzIiwgZGVmYXVsdD1GYWxz
ZSwKKyAgICAgICAgICAgaGVscD0oInJ1biBzbG93IHRlc3RzIikpCisKK0BweXRlc3QuZml4dHVy
ZQorZGVmIHNzaGhvc3QocmVxdWVzdCk6CisgICAgdmFsID0gcmVxdWVzdC5jb25maWcuZ2V0dmFs
dWUoInNzaGhvc3QiKQorICAgIGlmIHZhbDoKKyAgICAgICAgcmV0dXJuIHZhbAorICAgIHB5LnRl
c3Quc2tpcCgibmVlZCAtLXNzaGhvc3Qgb3B0aW9uIikKKworCisjIFhYWCBjb3BpZWQgZnJvbSBl
eGVjbmV0J3MgY29uZnRlc3QucHkgLSBuZWVkcyB0byBiZSBtZXJnZWQKK3dpbnB5bWFwID0gewor
ICAgICdweXRob24yLjcnOiByJ0M6XFB5dGhvbjI3XHB5dGhvbi5leGUnLAorfQorCisKK2RlZiBn
ZXRleGVjdXRhYmxlKG5hbWUsIGNhY2hlPXt9KToKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBj
YWNoZVtuYW1lXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgZXhlY3V0YWJsZSA9IHB5
LnBhdGgubG9jYWwuc3lzZmluZChuYW1lKQorICAgICAgICBpZiBleGVjdXRhYmxlOgorICAgICAg
ICAgICAgaWYgbmFtZSA9PSAianl0aG9uIjoKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3VicHJv
Y2VzcworICAgICAgICAgICAgICAgIHBvcGVuID0gc3VicHJvY2Vzcy5Qb3BlbigKKyAgICAgICAg
ICAgICAgICAgICAgW3N0cihleGVjdXRhYmxlKSwgIi0tdmVyc2lvbiJdLAorICAgICAgICAgICAg
ICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkK
KyAgICAgICAgICAgICAgICBvdXQsIGVyciA9IHBvcGVuLmNvbW11bmljYXRlKCkKKyAgICAgICAg
ICAgICAgICBpZiBub3QgZXJyIG9yICIyLjUiIG5vdCBpbiBlcnI6CisgICAgICAgICAgICAgICAg
ICAgIGV4ZWN1dGFibGUgPSBOb25lCisgICAgICAgIGNhY2hlW25hbWVdID0gZXhlY3V0YWJsZQor
ICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQorCisKK0BweXRlc3QuZml4dHVyZShwYXJhbXM9KCdw
eXRob24yLjcnLCAncHlweS1jJywgJ2p5dGhvbicpKQorZGVmIGFueXB5dGhvbihyZXF1ZXN0KToK
KyAgICBuYW1lID0gcmVxdWVzdC5wYXJhbQorICAgIGV4ZWN1dGFibGUgPSBnZXRleGVjdXRhYmxl
KG5hbWUpCisgICAgaWYgZXhlY3V0YWJsZSBpcyBOb25lOgorICAgICAgICBpZiBzeXMucGxhdGZv
cm0gPT0gIndpbjMyIjoKKyAgICAgICAgICAgIGV4ZWN1dGFibGUgPSB3aW5weW1hcC5nZXQobmFt
ZSwgTm9uZSkKKyAgICAgICAgICAgIGlmIGV4ZWN1dGFibGU6CisgICAgICAgICAgICAgICAgZXhl
Y3V0YWJsZSA9IHB5LnBhdGgubG9jYWwoZXhlY3V0YWJsZSkKKyAgICAgICAgICAgICAgICBpZiBl
eGVjdXRhYmxlLmNoZWNrKCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxl
CisgICAgICAgIHB5LnRlc3Quc2tpcCgibm8gJXMgZm91bmQiICUgKG5hbWUsKSkKKyAgICByZXR1
cm4gZXhlY3V0YWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L2RvYy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTBlODllMDFmZTYxZTUxZjBjNzU4YjA5MjY3YmMy
MDUyZTQxMzE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUKQEAgLTAs
MCArMSwxMzMgQEAKKyMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9uCisjCisKKyMg
WW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KK1NQSElO
WE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAorUEFQRVIgICAgICAgICA9
CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMgSW50ZXJuYWwgdmFyaWFibGVzLgorUEFQRVJP
UFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1hNAorUEFQRVJPUFRfbGV0dGVyID0gLUQg
bGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKK0FMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIp
L2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgorCisuUEhPTlk6
IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNpbmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAg
cXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBsYXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtj
aGVjayBkb2N0ZXN0CisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+
JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtl
IHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRN
TCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNpbmds
ZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlja2xl
ICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2Ug
SlNPTiBmaWxlcyIKKwlAZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQg
YSBIVE1MIGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBm
aWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2Ug
SFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAgICB0
byBtYWtlIGFuIGVwdWIiCisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVz
LCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0ZXhw
ZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4Igor
CUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzIgorCUBlY2hvICIgIG1hbiAg
ICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCisJQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtl
IGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCisJQGVj
aG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0
eSIKKwlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4g
dGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQpIgorCitjbGVhbjoKKwktcm0gLXJmICQoQlVJ
TERESVIpLyoKKworaW5zdGFsbDogY2xlYW4gaHRtbAorCXJzeW5jIC1hdnogX2J1aWxkL2h0bWwv
IGNvZGU6d3d3LXB5bGliLworCitodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWwgJChBTExT
UEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNo
ZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9odG1sLiIKKworZGlyaHRtbDoK
KwkkKFNQSElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikv
ZGlyaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBh
cmUgaW4gJChCVUlMRERJUikvZGlyaHRtbC4iCisKK3NpbmdsZWh0bWw6CisJJChTUEhJTlhCVUlM
RCkgLWIgc2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3NpbmdsZWh0bWwK
KwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJV
SUxERElSKS9zaW5nbGVodG1sLiIKKworcGlja2xlOgorCSQoU1BISU5YQlVJTEQpIC1iIHBpY2ts
ZSAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BpY2tsZQorCUBlY2hvCisJQGVjaG8gIkJ1
aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgorCitq
c29uOgorCSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS9qc29uCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nl
c3MgdGhlIEpTT04gZmlsZXMuIgorCitodG1saGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBodG1s
aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWxoZWxwCisJQGVjaG8KKwlAZWNo
byAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0
aCB0aGUiIFwKKwkgICAgICAiLmhocCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvaHRtbGhl
bHAuIgorCitxdGhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgcXRoZWxwICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvcXRoZWxwCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5v
dyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIiBcCisJICAgICAg
Ii5xaGNwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9xdGhlbHAsIGxpa2UgdGhpczoiCisJ
QGVjaG8gIiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChCVUlMRERJUikvcXRoZWxwL3B5LnFoY3Ai
CisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1j
b2xsZWN0aW9uRmlsZSAkKEJVSUxERElSKS9xdGhlbHAvcHkucWhjIgorCitkZXZoZWxwOgorCSQo
U1BISU5YQlVJTEQpIC1iIGRldmhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kZXZo
ZWxwCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIgorCUBlY2hvICJUbyB2aWV3IHRo
ZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIG1rZGlyIC1wICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2
aGVscC9weSIKKwlAZWNobyAiIyBsbiAtcyAkKEJVSUxERElSKS9kZXZoZWxwICQkSE9NRS8ubG9j
YWwvc2hhcmUvZGV2aGVscC9weSIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQoU1BI
SU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJQGVj
aG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJ
UikvZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsg
dGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1biBc
YG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgi
IFwKKwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0
aWNhbGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0
aHJvdWdoIHBkZmxhdGV4Li4uIgorCW1ha2UgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgor
CUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikvbGF0ZXguIgorCit0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS90ZXh0CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSB0ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5Y
QlVJTEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElS
KS9tYW4uIgorCitjaGFuZ2VzOgorCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS9jaGFuZ2VzCisJQGVjaG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3
IGZpbGUgaXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4iCisKK2xpbmtjaGVjazoKKwkkKFNQSElO
WEJVSUxEKSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hl
Y2sKKwlAZWNobworCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJy
b3JzIGluIHRoZSBhYm92ZSBvdXRwdXQgIiBcCisJICAgICAgIm9yIGluICQoQlVJTERESVIpL2xp
bmtjaGVjay9vdXRwdXQudHh0LiIKKworZG9jdGVzdDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0
ZXN0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAorCUBlY2hvICJUZXN0aW5n
IG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKKwkg
ICAgICAicmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190
ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjgzODYzYWE0NjAzY2VhMzhhZmI5NjM1
Nzc4ZWFkNzI4MjIwZGQzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190ZW1wbGF0
ZXMvbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAoreyUgZXh0ZW5kcyAiIWxheW91dC5odG1s
IiAlfQorCit7JSBibG9jayBmb290ZXIgJX0KK3t7IHN1cGVyKCkgfX0KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKworICB2YXIgX2dhcSA9IF9nYXEgfHwgW107CisgIF9nYXEucHVz
aChbJ19zZXRBY2NvdW50JywgJ1VBLTc1OTcyNzQtMTQnXSk7CisgIF9nYXEucHVzaChbJ190cmFj
a1BhZ2V2aWV3J10pOworCisgIChmdW5jdGlvbigpIHsKKyAgICB2YXIgZ2EgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgZ2EudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOyBnYS5h
c3luYyA9IHRydWU7CisgICAgZ2Euc3JjID0gKCdodHRwczonID09IGRvY3VtZW50LmxvY2F0aW9u
LnByb3RvY29sID8gJ2h0dHBzOi8vc3NsJyA6ICdodHRwOi8vd3d3JykgKyAnLmdvb2dsZS1hbmFs
eXRpY3MuY29tL2dhLmpzJzsKKyAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdzY3JpcHQnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7CisgIH0p
KCk7CisKKzwvc2NyaXB0PgoreyUgZW5kYmxvY2sgJX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YTU4NGUxNTVlMDQ2ZWQyNGRmOTYzNWQ2MzNlZGZmNGY1
MDhlMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190ZW1wbGF0ZXMv
bGF5b3V0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45
LjAudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDcxMDkzMTM1NDMxMjA1NDAwNGNhNGZmMjkzZGU0OWY0N2MzN2I2MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45LjAudHh0CkBAIC0wLDAgKzEs
NyBAQAorcHkgbGliIDEuMC4wOiBYWFgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2VsY29tZSB0byB0aGUg
MS4wLjAgcHkgbGliIHJlbGVhc2UgLSBhIGxpYnJhcnkgYWltaW5nIHRvCitzdXBwb3J0IGFnaWxl
IGFuZCB0ZXN0LWRyaXZlbiBweXRob24gZGV2ZWxvcG1lbnQgb24gdmFyaW91cyBsZXZlbHMuCisK
K1hYWApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMi50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTAuOS4yLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzJk
MmVmMjkwOGNlMjg4ZGFlOTI1MTE2ZjEzOGY1ODhlZDc1ZDcwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMi50eHQKQEAgLTAsMCArMSwyNyBAQAor
cHkgbGliIDAuOS4yOiBidWdmaXggcmVsZWFzZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworV2VsY29tZSB0byB0aGUgMC45LjIgcHkgbGliIGFuZCBweS50ZXN0IHJlbGVhc2UgLQor
bWFpbmx5IGZpeGluZyBXaW5kb3dzIGlzc3VlcywgcHJvdmlkaW5nIGJldHRlcgorcGFja2FnaW5n
IGFuZCBpbnRlZ3JhdGlvbiB3aXRoIHNldHVwdG9vbHMuCisKK0hlcmUgaXMgYSBxdWljayBzdW1t
YXJ5IG9mIHdoYXQgdGhlIHB5IGxpYiBwcm92aWRlczoKKworKiBweS50ZXN0OiBjcm9zcy1wcm9q
ZWN0IHRlc3RpbmcgdG9vbCB3aXRoIG1hbnkgYWR2YW5jZWQgZmVhdHVyZXMKKyogcHkuZXhlY25l
dDogYWQtaG9jIGNvZGUgZGlzdHJpYnV0aW9uIHRvIFNTSCwgU29ja2V0IGFuZCBsb2NhbCBzdWIg
cHJvY2Vzc2VzCisqIHB5Lm1hZ2ljLmdyZWVubGV0OiBtaWNyby10aHJlYWRzIG9uIHN0YW5kYXJk
IENQeXRob24gKCJzdGFja2xlc3MtbGlnaHQiKQorKiBweS5wYXRoOiBwYXRoIGFic3RyYWN0aW9u
cyBvdmVyIGxvY2FsIGFuZCBzdWJ2ZXJzaW9uIGZpbGVzCisqIHJpY2ggZG9jdW1lbnRhdGlvbiBv
ZiBweSdzIGV4cG9ydGVkIEFQSQorKiB0ZXN0ZWQgYWdhaW5zdCBMaW51eCwgV2luMzIsIE9TWCwg
d29ya3Mgb24gcHl0aG9uIDIuMy0yLjYKKworU2VlIGhlcmUgZm9yIG1vcmUgaW5mb3JtYXRpb246
CisKK1B5cGkgcGFnZXM6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weS8KKworRG93bmxv
YWQvSW5zdGFsbDogICBodHRwOi8vY29kZXNwZWFrLm5ldC9weS8wLjkuMi9kb3dubG9hZC5odG1s
CisKK0RvY3VtZW50YXRpb24vQVBJOiAgaHR0cDovL2NvZGVzcGVhay5uZXQvcHkvMC45LjIvaW5k
ZXguaHRtbAorCitiZXN0IGFuZCBoYXZlIGZ1biwKKworaG9sZ2VyIGtyZWtlbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjAuMC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9h
bm5vdW5jZS9yZWxlYXNlLTEuMC4wLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDI0MjU1YTE5NTkwZDAxNjg2
OTQwOWE4YmQzZjc4Zjk3M2E2MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5u
b3VuY2UvcmVsZWFzZS0xLjAuMC50eHQKQEAgLTAsMCArMSw2MyBAQAorCitweWxpYiAxLjAuMCBy
ZWxlYXNlZDogdGVzdGluZy13aXRoLXB5dGhvbiBpbm5vdmF0aW9ucyBjb250aW51ZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworVG9vayBhIGZldyBiZXRhcyBidXQgZmluYWxseSBpIHVwbG9hZGVkIGEgYDEuMC4w
IHB5IGxpYiByZWxlYXNlYF8sCitmZWF0dXJpbmcgdGhlIG1hdHVyZSBhbmQgcG93ZXJmdWwgcHku
dGVzdCB0b29sIGFuZCAiZXhlY25ldC1zdHlsZSIKKyplbGFzdGljKiBkaXN0cmlidXRlZCBwcm9n
cmFtbWluZy4gIFdpdGggdGhlIG5ldyByZWxlYXNlLCB0aGVyZSBhcmUKK21hbnkgbmV3IGFkdmFu
Y2VkIGF1dG9tYXRlZCB0ZXN0aW5nIGZlYXR1cmVzIC0gaGVyZSBpcyBhIHF1aWNrIHN1bW1hcnk6
CisKKyogZnVuY2FyZ3NfIC0gcHl0aG9uaWMgemVyby1ib2lsZXJwbGF0ZSBmaXh0dXJlcyBmb3Ig
UHl0aG9uIHRlc3QgZnVuY3Rpb25zIDoKKworICAtIHRvdGFsbHkgc2VwYXJhdGVzIHRlc3QgY29k
ZSwgdGVzdCBjb25maWd1cmF0aW9uIGFuZCB0ZXN0IHNldHVwCisgIC0gaWRlYWwgZm9yIGludGVn
cmF0aW9uIGFuZCBmdW5jdGlvbmFsIHRlc3RzCisgIC0gYWxsb3dzIGZvciBmbGV4aWJsZSBhbmQg
bmF0dXJhbCB0ZXN0IHBhcmFtZXRyaXphdGlvbiBzY2hlbWVzCisKKyogbmV3IGBwbHVnaW4gYXJj
aGl0ZWN0dXJlYF8sIGFsbG93aW5nIGVhc3ktdG8td3JpdGUgcHJvamVjdC1zcGVjaWZpYyBhbmQg
Y3Jvc3MtcHJvamVjdCBzaW5nbGUtZmlsZSBwbHVnaW5zLiAgIFRoZSBtb3N0IG5vdGFibGUgbmV3
IGV4dGVybmFsIHBsdWdpbiBpcyBgb2Vqc2tpdGBfIHdoaWNoIG5hdHVyYWxseSBlbmFibGVzICoq
cnVubmluZyBhbmQgcmVwb3J0aW5nIG9mIGphdmFzY3JpcHQtdW5pdHRlc3RzIGluIHJlYWwtbGlm
ZSBicm93c2VycyoqLgorCisqIG1hbnkgbmV3IGZlYXR1cmVzIGRvbmUgaW4gZWFzeS10by1pbXBy
b3ZlIGBkZWZhdWx0IHBsdWdpbnNgXywgaGlnaGxpZ2h0czoKKworICAqIHhmYWlsOiBtYXJrIHRl
c3RzIGFzICJleHBlY3RlZCB0byBmYWlsIiBhbmQgcmVwb3J0IHNlcGFyYXRlbHkuCisgICogcGFz
dGViaW46IGF1dG9tYXRpY2FsbHkgc2VuZCB0cmFjZWJhY2tzIHRvIHBvY29vIHBhc3RlIHNlcnZp
Y2UKKyAgKiBjYXB0dXJlOiBmbGV4aWJseSBjYXB0dXJlIHN0ZG91dC9zdGRlcnIgb2Ygc3VicHJv
Y2Vzc2VzLCBwZXItdGVzdCAuLi4KKyAgKiBtb25rZXlwYXRjaDogc2FmZWx5IG1vbmtleXBhdGNo
IG1vZHVsZXMvY2xhc3NlcyBmcm9tIHdpdGhpbiB0ZXN0cworICAqIHVuaXR0ZXN0OiBydW4gYW5k
IGludGVncmF0ZSB0cmFkaXRpb25hbCB1bml0dGVzdC5weSB0ZXN0cworICAqIGZpZ2xlYWY6IGdl
bmVyYXRlIGh0bWwgY292ZXJhZ2UgcmVwb3J0cyB3aXRoIHRoZSBmaWdsZWFmIG1vZHVsZQorICAq
IHJlc3VsdGxvZzogZ2VuZXJhdGUgYnVpbGRib3QtZnJpZW5kbHkgcmVwb3J0aW5nIG91dHB1dAor
ICAqIC4uLgorCisqIGBkaXN0cmlidXRlZCB0ZXN0aW5nYF8gYW5kIGBlbGFzdGljIGRpc3RyaWJ1
dGVkIGV4ZWN1dGlvbmBfOgorCisgIC0gbmV3IHVuaWZpZWQgIlRYIiBVUkwgc2NoZW1lIGZvciBz
cGVjaWZ5aW5nIHJlbW90ZSBwcm9jZXNzZXMKKyAgLSBuZXcgZGlzdHJpYnV0aW9uIG1vZGVzICIt
LWRpc3Q9ZWFjaCIgYW5kICItLWRpc3Q9bG9hZCIKKyAgLSBuZXcgc3luYy9hc3luYyB3YXlzIHRv
IGhhbmRsZSAxOk4gY29tbXVuaWNhdGlvbgorICAtIGltcHJvdmVkIGRvY3VtZW50YXRpb24KKwor
VGhlIHB5IGxpYiBjb250aW51ZXMgdG8gb2ZmZXIgbW9zdCBvZiB0aGUgZnVuY3Rpb25hbGl0eSB1
c2VkIGJ5Cit0aGUgdGVzdGluZyB0b29sIGluIGBpbmRlcGVuZGVudCBuYW1lc3BhY2VzYF8uCisK
K1NvbWUgbm9uLXRlc3QgcmVsYXRlZCBjb2RlLCBub3RhYmx5IGdyZWVubGV0cy9jby1yb3V0aW5l
cyBhbmQKK2FwaS1nZW5lcmF0aW9uIG5vdyBsaXZlIGFzIHRoZWlyIG93biBwcm9qZWN0cyB3aGlj
aCBzaW1wbGlmaWVzIHRoZQoraW5zdGFsbGF0aW9uIHByb2NlZHVyZSBiZWNhdXNlIG5vIEMtRXh0
ZW5zaW9ucyBhcmUgcmVxdWlyZWQgYW55bW9yZS4KKworVGhlIHdob2xlIHBhY2thZ2Ugc2hvdWxk
IHdvcmsgd2VsbCB3aXRoIExpbnV4LCBXaW4zMiBhbmQgT1NYLCBvbiBQeXRob24KKzIuMywgMi40
LCAyLjUgYW5kIDIuNi4gIChFeHBlY3QgUHl0aG9uMyBjb21wYXRpYmlsaXR5IHNvb24hKQorCitG
b3IgbW9yZSBpbmZvLCBzZWUgdGhlIHB5LnRlc3QgYW5kIHB5IGxpYiBkb2N1bWVudGF0aW9uOgor
CisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworICAgIGh0dHA6Ly9weWxpYi5vcmcKKworaGF2ZSBm
dW4sCitob2xnZXIKKworLi4gX2BpbmRlcGVuZGVudCBuYW1lc3BhY2VzYDogaHR0cDovL3B5bGli
Lm9yZworLi4gX2BmdW5jYXJnc2A6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3B5L2Rpc3QvdGVzdC9m
dW5jYXJncy5odG1sCisuLiBfYHBsdWdpbiBhcmNoaXRlY3R1cmVgOiBodHRwOi8vY29kZXNwZWFr
Lm5ldC9weS9kaXN0L3Rlc3QvZXh0ZW5kLmh0bWwKKy4uIF9gZGVmYXVsdCBwbHVnaW5zYDogaHR0
cDovL2NvZGVzcGVhay5uZXQvcHkvZGlzdC90ZXN0L3BsdWdpbi9pbmRleC5odG1sCisuLiBfYGRp
c3RyaWJ1dGVkIHRlc3RpbmdgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9weS9kaXN0L3Rlc3QvZGlz
dC5odG1sCisuLiBfYGVsYXN0aWMgZGlzdHJpYnV0ZWQgZXhlY3V0aW9uYDogaHR0cDovL2NvZGVz
cGVhay5uZXQvcHkvZGlzdC9leGVjbmV0Lmh0bWwKKy4uIF9gMS4wLjAgcHkgbGliIHJlbGVhc2Vg
OiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHkKKy4uIF9gb2Vqc2tpdGA6IGh0dHA6Ly9j
b2Rlc3BlYWsubmV0L3B5L2Rpc3QvdGVzdC9wbHVnaW4vb2Vqc2tpdC5odG1sCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjEudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjAuMS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM5Zjg3NjBiZGJhZDRiNWQw
YjFkYjY5ZDY2NGFlZTNiY2JmZTIyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS4wLjEudHh0CkBAIC0wLDAgKzEsNDggQEAKKzEuMC4xOiBpbXByb3Zl
ZCByZXBvcnRpbmcsIG5vc2UvdW5pdHRlc3QucHkgc3VwcG9ydCwgYnVnIGZpeGVzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitUaGlzIGlzIGEgYnVnZml4IHJlbGVhc2Ugb2YgcHlsaWIvcHkudGVzdCBhbHNv
IGNvbWluZyB3aXRoOgorCisqIGltcHJvdmVkIGRvY3VtZW50YXRpb24sIGltcHJvdmVkIG5hdmln
YXRpb24KKyogdGVzdCBmYWlsdXJlIHJlcG9ydGluZyBpbXByb3ZlbWVudHMKKyogc3VwcG9ydCBm
b3IgZGlyZWN0bHkgcnVubmluZyBleGlzdGluZyBub3NlL3VuaXR0ZXN0LnB5IHN0eWxlIHRlc3Rz
CisKK3Zpc2l0IGhlcmUgZm9yIG1vcmUgaW5mbywgaW5jbHVkaW5nIHF1aWNrc3RhcnQgYW5kIHR1
dG9yaWFsczoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnIGFuZCBodHRwOi8vcHlsaWIub3JnCisK
KworQ2hhbmdlbG9nIDEuMC4wIHRvIDEuMC4xCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
KiBhZGRlZCBhIGRlZmF1bHQgJ3B5dGVzdF9ub3NlJyBwbHVnaW4gd2hpY2ggaGFuZGxlcyBub3Nl
LlNraXBUZXN0LAorICBub3NlLXN0eWxlIGZ1bmN0aW9uL21ldGhvZC9nZW5lcmF0b3Igc2V0dXAv
dGVhcmRvd24gYW5kCisgIHRyaWVzIHRvIHJlcG9ydCBmdW5jdGlvbnMgY29ycmVjdGx5LgorCisq
IGltcHJvdmVkIGRvY3VtZW50YXRpb24sIGJldHRlciBuYXZpZ2F0aW9uOiBzZWUgaHR0cDovL3B5
dGVzdC5vcmcKKworKiBhZGRlZCBhICItLWhlbHAtY29uZmlnIiBvcHRpb24gdG8gc2hvdyBjb25m
dGVzdC5weSAvIEVOVi12YXIgbmFtZXMgZm9yCisgIGFsbCBsb25nb3B0IGNtZGxpbmUgb3B0aW9u
cywgYW5kIHNvbWUgc3BlY2lhbCBjb25mdGVzdC5weSB2YXJpYWJsZXMuCisgIHJlbmFtZWQgJ2Nv
bmZfY2FwdHVyZScgY29uZnRlc3Qgc2V0dGluZyB0byAnb3B0aW9uX2NhcHR1cmUnIGFjY29yZGlu
Z2x5LgorCisqIHVuaWNvZGUgZml4ZXM6IGNhcHR1cmluZyBhbmQgdW5pY29kZSB3cml0ZXMgdG8g
c3lzLnN0ZG91dAorICAodGhyb3VnaCBlLmcgYSBwcmludCBzdGF0ZW1lbnQpIG5vdyB3b3JrIHdp
dGhpbiB0ZXN0cywKKyAgdGhleSBhcmUgZW5jb2RlZCBhcyAidXRmOCIgYnkgZGVmYXVsdCwgYWxz
byB0ZXJtaW5hbHdyaXRpbmcKKyAgd2FzIGFkYXB0ZWQgYW5kIHNvbWV3aGF0IHVuaWZpZWQgYmV0
d2VlbiB3aW5kb3dzIGFuZCBsaW51eAorCisqIGZpeCBpc3N1ZSAjMjc6IGJldHRlciByZXBvcnRp
bmcgb24gbm9uLWNvbGxlY3RhYmxlIGl0ZW1zIGdpdmVuIG9uIGNvbW1hbmRsaW5lCisgIChlLmcu
IHB5YyBmaWxlcykKKworKiBmaXggaXNzdWUgIzMzOiBhZGRlZCAtLXZlcnNpb24gZmxhZyAodGhh
bmtzIEJlbmphbWluIFBldGVyc29uKQorCisqIGZpeCBpc3N1ZSAjMzI6IGFkZGluZyBzdXBwb3J0
IGZvciAiaW5jb21wbGV0ZSIgcGF0aHMgdG8gd2NwYXRoLnN0YXR1cygpCisKKyogIlRlc3QiIHBy
ZWZpeGVkIGNsYXNzZXMgYXJlICpub3QqIGNvbGxlY3RlZCBieSBkZWZhdWx0IGFueW1vcmUgaWYg
dGhleQorICBoYXZlIGFuIF9faW5pdF9fIG1ldGhvZAorCisqIG1vbmtleXBhdGNoIHNldGVudigp
IG5vdyBhY2NlcHRzIGEgInByZXBlbmQiIHBhcmFtZXRlcgorCisqIGltcHJvdmVkIHJlcG9ydGlu
ZyBvZiBjb2xsZWN0aW9uIGVycm9yIHRyYWNlYmFja3MKKworKiBzaW1wbGlmaWVkIG11bHRpY2Fs
bCBtZWNoYW5pc20gYW5kIHBsdWdpbiBhcmNoaXRlY3R1cmUsCisgIHJlbmFtZWQgc29tZSBpbnRl
cm5hbCBtZXRob2RzIGFuZCBhcmduYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3Vu
Y2UvcmVsZWFzZS0xLjAuMi50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4y
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzU0NjE5NTM1MzA0MzliYTY2MWE3NzZiYjZlZGM0Nzc3OGE4YTY2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjAuMi50
eHQKQEAgLTAsMCArMSw1IEBACisxLjAuMjogcGFja2FnaW5nIGZpeGVzCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCit0aGlzIHJlbGVhc2UgaXMgcHVyZWx5IGEgcmVsZWFzZSBmb3IgZml4aW5nIHBhY2thZ2lu
ZyBpc3N1ZXMuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4x
LjAudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjEuMC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDQ0MWMzMjE1ZWIxMTY2N2QzMTJiYmRjMmU3YmE3OWU4OTExOTk4MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjAudHh0CkBAIC0wLDAgKzEs
MTE1IEBACitweS50ZXN0L3B5bGliIDEuMS4wOiBQeXRob24zLCBKeXRob24sIGFkdmFuY2VkIHNr
aXBwaW5nLCBjbGVhbnVwcyAuLi4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZlYXR1cmVz
OgorCisqIGNvbXBhdGlibGUgdG8gUHl0aG9uMyAoc2luZ2xlIHB5Mi9weTMgc291cmNlKSwgYGVh
c3kgdG8gaW5zdGFsbGBfCisqIGNvbmRpdGlvbmFsIHNraXBwaW5nXzogc2tpcC94ZmFpbCBiYXNl
ZCBvbiBwbGF0Zm9ybS9kZXBlbmRlbmNpZXMKKyogZ2VuZXJhbGl6ZWQgbWFya2luZ186IG1hcmsg
dGVzdHMgb25lIGEgd2hvbGUtY2xhc3Mgb3Igd2hvbGUtbW9kdWxlIGJhc2lzCisKK0ZpeGVzOgor
CisqIGNvZGUgcmVkdWN0aW9uIGFuZCAiZGUtbWFnaWZpY2F0aW9uIiAoZS5nLiAyMyBLTG9jIC0+
IDExIEtMT0MpCisqIGRpc3RyaWJ1dGUgdGVzdGluZyByZXF1aXJlcyB0aGUgbm93IHNlcGFyYXRl
bHkgcmVsZWFzZWQgZXhlY25ldF8gcGFja2FnZQorKiBmdW5jYXJnLXNldHVwL2NhY2hpbmcsICJz
YW1lLW5hbWUiIHRlc3QgbW9kdWxlcyBub3cgY2F1c2UgYW4gZXhsaWNpdCBlcnJvcgorKiBkZS1j
bHV0dGVyZWQgcmVwb3J0aW5nIG9wdGlvbnMsIC0tcmVwb3J0IGZvciBza2lwcGVkL3hmYWlsIGRl
dGFpbHMKKworQ29tcGF0aWJpbGl0aWVzCisKKzEuMS4wIHNob3VsZCBhbGxvdyBydW5uaW5nIHRl
c3QgY29kZSB0aGF0IGFscmVhZHkgd29ya2VkIHdlbGwgd2l0aCAxLjAuMgorcGx1cyBzb21lIG1v
cmUgZHVlIHRvIGltcHJvdmVkIHVuaXR0ZXN0L25vc2UgY29tcGF0aWJpbGl0eS4KKworTW9yZSBp
bmZvcm1hdGlvbjogaHR0cDovL3B5dGVzdC5vcmcKKwordGhhbmtzIGFuZCBoYXZlIGZ1biwKKwor
aG9sZ2VyIChodHRwOi8vdHdpdHRlci5jb20vaHBrNDIpCisKKy4uIF9leGVjbmV0OiBodHRwOi8v
Y29kZXNwZWFrLm5ldC9leGVjbmV0CisuLiBfYGVhc3kgdG8gaW5zdGFsbGA6IC4uL2luc3RhbGwu
aHRtbAorLi4gX21hcmtpbmc6IC4uL3Rlc3QvcGx1Z2luL21hcmsuaHRtbAorLi4gX3NraXBwaW5n
OiAuLi90ZXN0L3BsdWdpbi9za2lwcGluZy5odG1sCisKKworQ2hhbmdlbG9nIDEuMC4yIC0+IDEu
MS4wCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIHJlbW92ZSBweS5yZXN0IHRvb2wgYW5kIGludGVybmFs
IG5hbWVzcGFjZSAtIGl0IHdhcworICBuZXZlciByZWFsbHkgYWR2ZXJ0aXNlZCBhbmQgY2FuIHN0
aWxsIGJlIHVzZWQgd2l0aAorICB0aGUgb2xkIHJlbGVhc2UgaWYgbmVlZGVkLiAgSWYgdGhlcmUg
aXMgaW50ZXJlc3QKKyAgaXQgY291bGQgYmUgcmV2aXZlZCBpbnRvIGl0cyBvd24gdG9vbCBpIGd1
ZXNzLgorCisqIGZpeCBpc3N1ZTQ4IGFuZCBpc3N1ZTU5OiByYWlzZSBhbiBFcnJvciBpZiB0aGUg
bW9kdWxlCisgIGZyb20gYW4gaW1wb3J0ZWQgdGVzdCBmaWxlIGRvZXMgbm90IHNlZW0gdG8gY29t
ZSBmcm9tCisgIHRoZSBmaWxlcGF0aCAtIGF2b2lkcyAic2FtZS1uYW1lIiBjb25mdXNpb24gdGhh
dCBoYXMKKyAgYmVlbiByZXBvcnRlZCByZXBlYXRlZGx5CisKKyogbWVyZ2VkIFJvbm55J3Mgbm9z
ZS1jb21wYXRpYmlsaXR5IGhhY2tzOiBub3cKKyAgbm9zZS1zdHlsZSBzZXR1cF9tb2R1bGUoKSBh
bmQgc2V0dXAoKSBmdW5jdGlvbnMgYXJlCisgIHN1cHBvcnRlZAorCisqIGludHJvZHVjZSBnZW5l
cmFsaXplZCBweS50ZXN0Lm1hcmsgZnVuY3Rpb24gbWFya2luZworCisqIHJlc2h1ZmZsZSAvIHJl
ZmluZSBjb21tYW5kIGxpbmUgZ3JvdXBpbmcKKworKiBkZXByZWNhdGUgcGFyc2VyLmFkZGdyb3Vw
IGluIGZhdm91ciBvZiBnZXRncm91cCB3aGljaCBjcmVhdGVzIG9wdGlvbiBncm91cAorCisqIGFk
ZCAtLXJlcG9ydCBjb21tYW5kIGxpbmUgb3B0aW9uIHRoYXQgYWxsb3dzIHRvIGNvbnRyb2wgc2hv
d2luZyBvZiBza2lwcGVkL3hmYWlsZWQgc2VjdGlvbnMKKworKiBnZW5lcmFsaXplZCBza2lwcGlu
ZzogYSBuZXcgd2F5IHRvIG1hcmsgcHl0aG9uIGZ1bmN0aW9ucyB3aXRoIHNraXBpZiBvciB4ZmFp
bAorICBhdCBmdW5jdGlvbiwgY2xhc3MgYW5kIG1vZHVsZXMgbGV2ZWwgYmFzZWQgb24gcGxhdGZv
cm0gb3Igc3lzLW1vZHVsZSBhdHRyaWJ1dGVzLgorCisqIGV4dGVuZCBweS50ZXN0Lm1hcmsgZGVj
b3JhdG9yIHRvIGFsbG93IGZvciBwb3NpdGlvbmFsIGFyZ3MKKworKiBpbnRyb2R1Y2UgYW5kIHRl
c3QgInB5LmNsZWFudXAgLWQiIHRvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworCisqIGZpeCBp
c3N1ZSAjNTkgLSByb2J1c3RpZnkgdW5pdHRlc3QgdGVzdCBjb2xsZWN0aW9uCisKKyogbWFrZSBi
cHl0aG9uL2hlbHAgaW50ZXJhY3Rpb24gd29yayBieSBhZGRpbmcgYW4gX19hbGxfXyBhdHRyaWJ1
dGUKKyAgdG8gQXBpTW9kdWxlLCBjbGVhbnVwIGluaXRwa2cKKworKiB1c2UgTUlUIGxpY2Vuc2Ug
Zm9yIHB5bGliLCBhZGQgc29tZSBjb250cmlidXRvcnMKKworKiByZW1vdmUgcHkuZXhlY25ldCBj
b2RlIGFuZCBzdWJzdGl0dXRlIGFsbCB1c2FnZXMgd2l0aCAnZXhlY25ldCcgcHJvcGVyCisKKyog
Zml4IGlzc3VlNTAgLSBjYWNoZWRfc2V0dXAgbm93IGNhY2hlcyBtb3JlIHRvIGV4cGVjdGF0aW9u
cworICBmb3IgdGVzdCBmdW5jdGlvbnMgd2l0aCBtdWx0aXBsZSBhcmd1bWVudHMuCisKKyogbWVy
Z2UgSmFya28ncyBmaXhlcywgaXNzdWUgIzQ1IGFuZCAjNDYKKworKiBhZGQgdGhlIGFiaWxpdHkg
dG8gc3BlY2lmeSBhIHBhdGggZm9yIHB5Lmxvb2t1cCB0byBzZWFyY2ggaW4KKworKiBmaXggYSBm
dW5jYXJnIGNhY2hlZF9zZXR1cCBidWcgcHJvYmFibHkgb25seSBvY2N1cmluZworICBpbiBkaXN0
cmlidXRlZCB0ZXN0aW5nIGFuZCAibW9kdWxlIiBzY29wZSB3aXRoIHRlYXJkb3duLgorCisqIG1h
bnkgZml4ZXMgYW5kIGNoYW5nZXMgZm9yIG1ha2luZyB0aGUgY29kZSBiYXNlIHB5dGhvbjMgY29t
cGF0aWJsZSwKKyAgbWFueSB0aGFua3MgdG8gQmVuamFtaW4gUGV0ZXJzb24gZm9yIGhlbHBpbmcg
d2l0aCB0aGlzLgorCisqIGNvbnNvbGlkYXRlIGJ1aWx0aW5zIGltcGxlbWVudGF0aW9uIHRvIGJl
IGNvbXBhdGlibGUgd2l0aCA+PTIuMywKKyAgYWRkIGhlbHBlcnMgdG8gZWFzZSBrZWVwaW5nIDIg
YW5kIDNrIGNvbXBhdGlibGUgY29kZQorCisqIGRlcHJlY2F0ZSBweS5jb21wYXQuZG9jdGVzdHxz
dWJwcm9jZXNzfHRleHR3cmFwfG9wdHBhcnNlCisKKyogZGVwcmVjYXRlIHB5Lm1hZ2ljLmF1dG9w
YXRoLCByZW1vdmUgcHkvbWFnaWMgZGlyZWN0b3J5CisKKyogbW92ZSBweXRlc3QgYXNzZXJ0aW9u
IGhhbmRsaW5nIHRvIHB5L2NvZGUgYW5kIGEgcHl0ZXN0X2Fzc2VydGlvbgorICBwbHVnaW4sIGFk
ZCAiLS1uby1hc3NlcnQiIG9wdGlvbiwgZGVwcmVjYXRlIHB5Lm1hZ2ljIG5hbWVzcGFjZXMKKyAg
aW4gZmF2b3VyIG9mIChsZXNzKSBweS5jb2RlIG9uZXMuCisKKyogY29uc29saWRhdGUgYW5kIGNs
ZWFudXAgcHkvY29kZSBjbGFzc2VzIGFuZCBmaWxlcworCisqIGNsZWFudXAgcHkvbWlzYywgbW92
ZSB0ZXN0cyB0byBiaW4tZm9yLWRpc3QKKworKiBpbnRyb2R1Y2UgZGVsYXR0ci9kZWxpdGVtL2Rl
bGVudiBtZXRob2RzIHRvIHB5LnRlc3QncyBtb25rZXlwYXRjaCBmdW5jYXJnCisKKyogY29uc29s
aWRhdGUgcHkubG9nIGltcGxlbWVudGF0aW9uLCByZW1vdmUgb2xkIGFwcHJvYWNoLgorCisqIGlu
dHJvZHVjZSBweS5pby5UZXh0SU8gYW5kIHB5LmlvLkJ5dGVzSU8gZm9yIGRpc3Rpbmd1aXNoaW5n
IGJldHdlZW4KKyAgdGV4dC91bmljb2RlIGFuZCBieXRlLXN0cmVhbXMgKHVzZXMgdW5kZXJseWlu
ZyBzdGFuZGFyZCBsaWIgaW8uKgorICBpZiBhdmFpbGFibGUpCisKKyogbWFrZSBweS51bml0dGVz
dF9jb252ZXJ0IGhlbHBlciBzY3JpcHQgYXZhaWxhYmxlIHdoaWNoIGNvbnZlcnRzICJ1bml0dGVz
dC5weSIKKyAgc3R5bGUgZmlsZXMgaW50byB0aGUgc2ltcGxlciBhc3NlcnQvZGlyZWN0LXRlc3Qt
Y2xhc3NlcyBweS50ZXN0L25vc2V0ZXN0cworICBzdHlsZS4gIFRoZSBzY3JpcHQgd2FzIHdyaXR0
ZW4gYnkgTGF1cmEgQ3JlaWdodG9uLgorCisqIHNpbXBsaWZpZWQgaW50ZXJuYWwgbG9jYWxwYXRo
IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMS4xLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjEudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgzZTZhMWZkOGQ5NTg1M2I2MzAxYzBmMWM0NTYwZTM3NjlmYzU4NjYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMS4xLnR4dApAQCAtMCww
ICsxLDQ4IEBACitweS50ZXN0L3B5bGliIDEuMS4xOiBidWdmaXggcmVsZWFzZSwgc2V0dXB0b29s
cyBwbHVnaW4gcmVnaXN0cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGlzIGlz
IGEgY29tcGF0aWJpbGl0eSBmaXhpbmcgcmVsZWFzZSBvZiBweWxpYi9weS50ZXN0IHRvIHdvcmsK
K2JldHRlciB3aXRoIHByZXZpb3VzIDEuMC54IHRlc3QgY29kZSBiYXNlcy4gIEl0IGFsc28gY29u
dGFpbnMgZml4ZXMKK2FuZCBjaGFuZ2VzIHRvIHdvcmsgd2l0aCBgZXhlY25ldD49MS4wLjBgXyB0
byBwcm92aWRlIGRpc3RyaWJ1dGVkCit0ZXN0aW5nIGFuZCBsb29wb25mYWlsaW5nIHRlc3Rpbmcg
bW9kZXMuICBweS0xLjEuMSBhbHNvIGludHJvZHVjZXMKK2EgbmV3IG1lY2hhbmlzbSBmb3IgcmVn
aXN0ZXJpbmcgcGx1Z2lucyB2aWEgc2V0dXB0b29scy4KKworV2hhdCBpcyBweWxpYi9weS50ZXN0
PworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworcHkudGVzdCBpcyBhbiBhZHZhbmNlZCBhdXRv
bWF0ZWQgdGVzdGluZyB0b29sIHdvcmtpbmcgd2l0aAorUHl0aG9uMiwgUHl0aG9uMyBhbmQgSnl0
aG9uIHZlcnNpb25zIG9uIGFsbCBtYWpvciBvcGVyYXRpbmcKK3N5c3RlbXMuIEl0IGhhcyBhbiBl
eHRlbnNpdmUgcGx1Z2luIGFyY2hpdGVjdHVyZSBhbmQgY2FuIHJ1biBtYW55CitleGlzdGluZyBj
b21tb24gUHl0aG9uIHRlc3Qgc3VpdGVzIHdpdGhvdXQgbW9kaWZpY2F0aW9uLiAgTW9yZW92ZXIs
CitpdCBvZmZlcnMgc29tZSB1bmlxdWUgZmVhdHVyZXMgbm90IGZvdW5kIGluIG90aGVyCit0ZXN0
aW5nIHRvb2xzLiAgU2VlIGh0dHA6Ly9weXRlc3Qub3JnIGZvciBtb3JlIGluZm8uCisKK1RoZSBw
eWxpYiBhbHNvIGNvbnRhaW5zIGEgbG9jYWxwYXRoIGFuZCBzdm5wYXRoIGltcGxlbWVudGF0aW9u
CithbmQgc29tZSBkZXZlbG9wZXItb3JpZW50ZWQgY29tbWFuZCBsaW5lIHRvb2xzLiBTZWUKK2h0
dHA6Ly9weWxpYi5vcmcgZm9yIG1vcmUgaW5mby4KKwordGhhbmtzIHRvIGFsbCB3aG8gaGVscGVk
IGFuZCBnYXZlIGZlZWRiYWNrLAoraGF2ZSBmdW4sCisKK2hvbGdlciAoaHR0cDovL3R3aXR0ZXIu
Y29tL2hwazQyKQorCisuLiBfYGV4ZWNuZXQ+PTEuMC4wYDogaHR0cDovL2NvZGVzcGVhay5uZXQv
ZXhlY25ldAorCitDaGFuZ2VzIGJldHdlZW4gMS4xLjEgYW5kIDEuMS4wCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gaW50cm9kdWNlIGF1dG9tYXRpYyBwbHVnaW4g
cmVnaXN0cmF0aW9uIHZpYSAncHl0ZXN0MTEnCisgIGVudHJ5cG9pbnRzIHZpYSBzZXR1cHRvb2xz
JyBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzCisKKy0gZml4IHB5LnRlc3QgZGlzdC10
ZXN0aW5nIHRvIHdvcmsgd2l0aCBleGVjbmV0ID49IDEuMC4wYjQKKworLSByZS1pbnRyb2R1Y2Ug
cHkudGVzdC5jbWRsaW5lLm1haW4oKSBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkK
KworLSBzdm4gcGF0aHM6IGZpeCBhIGJ1ZyB3aXRoIHBhdGguY2hlY2sodmVyc2lvbmVkPVRydWUp
IGZvciBzdm4gcGF0aHMsCisgIGFsbG93ICclJyBpbiBzdm4gcGF0aHMsIG1ha2Ugc3Zud2MudXBk
YXRlKCkgZGVmYXVsdCB0byBpbnRlcmFjdGl2ZSBtb2RlCisgIGxpa2UgaW4gMS4wLnggYW5kIGFk
ZCBzdm53Yy51cGRhdGUoaW50ZXJhY3RpdmU9RmFsc2UpIHRvIGluaGliaXQgaW50ZXJhY3Rpb24u
CisKKy0gcmVmaW5lIGRpc3RyaWJ1dGVkIHRhcmJhbGwgdG8gY29udGFpbiB0ZXN0IGFuZCBubyBw
eWMgZmlsZXMKKworLSB0cnkgaGFyZGVyIHRvIGhhdmUgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9y
IHB5LmNvbXBhdC4qIGFjY2Vzc2VzCisgIHJlcG9ydCBhIGNvcnJlY3QgbG9jYXRpb24KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjAudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY2YTU2MTQ0NzYzM2E3
NTFhNjMxNjZjNWQxNDk2MDQ3M2VlMDQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2Fubm91bmNlL3JlbGVhc2UtMS4yLjAudHh0CkBAIC0wLDAgKzEsMTE2IEBACitweS50ZXN0L3B5
bGliIDEuMi4wOiBqdW5pdHhtbCwgc3RhbmRhbG9uZSB0ZXN0IHNjcmlwdHMsIHBsdWdpbml6YXRp
b24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3B5LnRlc3QgaXMgYW4gYWR2YW5jZWQgYXV0
b21hdGVkIHRlc3RpbmcgdG9vbCB3b3JraW5nIHdpdGgKK1B5dGhvbjIsIFB5dGhvbjMgYW5kIEp5
dGhvbiB2ZXJzaW9ucyBvbiBhbGwgbWFqb3Igb3BlcmF0aW5nCitzeXN0ZW1zLiAgSXQgaGFzIGEg
c2ltcGxlIHBsdWdpbiBhcmNoaXRlY3R1cmUgYW5kIGNhbiBydW4gbWFueQorZXhpc3RpbmcgY29t
bW9uIFB5dGhvbiB0ZXN0IHN1aXRlcyB3aXRob3V0IG1vZGlmaWNhdGlvbi4gIEl0IG9mZmVycwor
c29tZSB1bmlxdWUgZmVhdHVyZXMgbm90IGZvdW5kIGluIG90aGVyIHRlc3RpbmcgdG9vbHMuCitT
ZWUgaHR0cDovL3B5dGVzdC5vcmcgZm9yIG1vcmUgaW5mby4KKworcHkudGVzdCAxLjIuMCBicmlu
Z3MgbWFueSBidWcgZml4ZXMgYW5kIGludGVyZXN0aW5nIG5ldyBhYmlsaXRpZXM6CisKKyogLS1q
dW5pdHhtbD1wYXRoIHdpbGwgY3JlYXRlIGFuIFhNTCBmaWxlIGZvciB1c2Ugd2l0aCBDSSBwcm9j
ZXNzaW5nCisqIC0tZ2Vuc2NyaXB0PXBhdGggY3JlYXRlcyBhIHN0YW5kYWxvbmUgcHkudGVzdC1l
cXVpdmFsZW50IHRlc3Qtc2NyaXB0CisqIC0taWdub3JlPXBhdGggcHJldmVudHMgY29sbGVjdGlv
biBvZiBhbnl0aGluZyBiZWxvdyB0aGF0IHBhdGgKKyogLS1jb25mY3V0ZGlyPXBhdGggb25seSBs
b29rdXAgY29uZnRlc3QucHkgdGVzdCBjb25maWdzIGJlbG93IHRoYXQgcGF0aAorKiBhICdweXRl
c3RfcmVwb3J0X2hlYWRlcicgaG9vayB0byBhZGQgaW5mbyB0byB0aGUgdGVybWluYWwgcmVwb3J0
IGhlYWRlcgorKiBhICdweXRlc3Rjb25maWcnIGZ1bmN0aW9uIGFyZ3VtZW50IGdpdmVzIGRpcmVj
dCBhY2Nlc3MgdG8gb3B0aW9uIHZhbHVlcworKiAncHl0ZXN0X2dlbmVyYXRlX3Rlc3RzJyBjYW4g
bm93IGJlIHB1dCBpbnRvIGEgY2xhc3MgYXMgd2VsbAorKiBvbiBDUHl0aG9uIHB5LnRlc3QgYWRk
aXRpb25hbGx5IGluc3RhbGxzIGFzICJweS50ZXN0LVZFUlNJT04iLCBvbgorICBKeXRob24gYXMg
cHkudGVzdC1qeXRob24gYW5kIG9uIFB5UHkgYXMgcHkudGVzdC1weXB5LVhZWgorCitBcGFydCBm
cm9tIG1hbnkgYnVnIGZpeGVzIDEuMi4wIGFsc28gaGFzIGJldHRlciBwbHVnaW5pemF0aW9uOgor
RGlzdHJpYnV0ZWQgdGVzdGluZyBhbmQgbG9vcG9uZmFpbGluZyB0ZXN0aW5nIG5vdyBsaXZlIGlu
IHRoZQorc2VwYXJhdGVseSBpbnN0YWxsYWJsZSAncHl0ZXN0LXhkaXN0JyBwbHVnaW4uICBUaGUg
c2FtZSBpcyB0cnVlIGZvcgorJ3B5dGVzdC1maWdsZWFmJyBmb3IgZG9pbmcgY292ZXJhZ2UgcmVw
b3J0aW5nLiAgVGhvc2UgdHdvIHBsdWdpbnMKK2NhbiBzZXJ2ZSB3ZWxsIG5vdyBhcyBibHVlIHBy
aW50cyBmb3IgZG9pbmcgeW91ciBvd24uCisKK3RoYW5rcyB0byBhbGwgd2hvIGhlbHBlZCBhbmQg
Z2F2ZSBmZWVkYmFjaywKK2hhdmUgZnVuLAorCitob2xnZXIga3Jla2VsLCBKYW51YXJ5IDIwMTAK
KworQ2hhbmdlcyBiZXR3ZWVuIDEuMi4wIGFuZCAxLjEuMQorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCistIG1vdmVkIGRpc3QvbG9vcG9uZmFpbGluZyBmcm9tIHB5LnRl
c3QgY29yZSBpbnRvIGEgbmV3CisgIHNlcGFyYXRlbHkgcmVsZWFzZWQgcHl0ZXN0LXhkaXN0IHBs
dWdpbi4KKworLSBuZXcganVuaXR4bWwgcGx1Z2luOiAtLWp1bml0eG1sPXBhdGggd2lsbCBnZW5l
cmF0ZSBhIGp1bml0IHN0eWxlIHhtbCBmaWxlCisgIHdoaWNoIGlzIHByb2Nlc3NhYmxlIGUuZy4g
YnkgdGhlIEh1ZHNvbiBDSSBzeXN0ZW0uCisKKy0gbmV3IG9wdGlvbjogLS1nZW5zY3JpcHQ9cGF0
aCB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhbG9uZSBweS50ZXN0IHNjcmlwdAorICB3aGljaCB3aWxs
IG5vdCBuZWVkIGFueSBsaWJyYXJpZXMgaW5zdGFsbGVkLiAgdGhhbmtzIHRvIFJhbGYgU2NobWl0
dC4KKworLSBuZXcgb3B0aW9uOiAtLWlnbm9yZSB3aWxsIHByZXZlbnQgc3BlY2lmaWVkIHBhdGgg
ZnJvbSBjb2xsZWN0aW9uLgorICBDYW4gYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVzLgorCist
IG5ldyBvcHRpb246IC0tY29uZmN1dGRpcj1kaXIgd2lsbCBtYWtlIHB5LnRlc3Qgb25seSBjb25z
aWRlciBjb25mdGVzdAorICBmaWxlcyB0aGF0IGFyZSByZWxhdGl2ZSB0byB0aGUgc3BlY2lmaWVk
IGRpci4KKworLSBuZXcgZnVuY2FyZzogInB5dGVzdGNvbmZpZyIgaXMgdGhlIHB5dGVzdCBjb25m
aWcgb2JqZWN0IGZvciBhY2Nlc3MKKyAgdG8gY29tbWFuZCBsaW5lIGFyZ3MgYW5kIGNhbiBub3cg
YmUgZWFzaWx5IHVzZWQgaW4gYSB0ZXN0LgorCistIGluc3RhbGwgJ3B5LnRlc3QnIGFuZCBgcHku
d2hpY2hgIHdpdGggYSBgYC0kVkVSU0lPTmBgIHN1ZmZpeCB0bworICBkaXNhbWJpZ3VhdGUgYmV0
d2VlbiBQeXRob24zLCBweXRob24yLlgsIEp5dGhvbiBhbmQgUHlQeSBpbnN0YWxsZWQgdmVyc2lv
bnMuCisKKy0gbmV3ICJweXRlc3Rjb25maWciIGZ1bmNhcmcgYWxsb3dzIGFjY2VzcyB0byB0ZXN0
IGNvbmZpZyBvYmplY3QKKworLSBuZXcgInB5dGVzdF9yZXBvcnRfaGVhZGVyIiBob29rIGNhbiBy
ZXR1cm4gYWRkaXRpb25hbCBsaW5lcworICB0byBiZSBkaXNwbGF5ZWQgYXQgdGhlIGhlYWRlciBv
ZiBhIHRlc3QgcnVuLgorCistIChleHBlcmltZW50YWwpIGFsbG93ICJweS50ZXN0IHBhdGg6Om5h
bWUxOjpuYW1lMjo6Li4uIiBmb3IgcG9pbnRpbmcKKyAgdG8gYSB0ZXN0IHdpdGhpbiBhIHRlc3Qg
Y29sbGVjdGlvbiBkaXJlY3RseS4gIFRoaXMgbWlnaHQgZXZlbnR1YWxseQorICBldm9sdmUgYXMg
YSBmdWxsIHN1YnN0aXR1dGUgdG8gIi1rIiBzcGVjaWZpY2F0aW9ucy4KKworLSBzdHJlYW1saW5l
ZCBwbHVnaW4gbG9hZGluZzogb3JkZXIgaXMgbm93IGFzIGRvY3VtZW50ZWQgaW4KKyAgY3VzdG9t
aXplLmh0bWw6IHNldHVwdG9vbHMsIEVOViwgY29tbWFuZGxpbmUsIGNvbmZ0ZXN0LgorICBhbHNv
IHNldHVwdG9vbHMgZW50cnkgcG9pbnQgbmFtZXMgYXJlIHR1cm5lZCB0byBjYW5vbmljYWwgbmFt
ZWVzICgicHl0ZXN0XyoiKQorCistIGF1dG9tYXRpY2FsbHkgc2tpcCB0ZXN0cyB0aGF0IG5lZWQg
J2NhcGZkJyBidXQgaGF2ZSBubyBvcy5kdXAKKworLSBhbGxvdyBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMgdG8gYmUgZGVmaW5lZCBpbiBjbGFzc2VzIGFzIHdlbGwKKworLSBkZXByZWNhdGUgdXNhZ2Ug
b2YgJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgaW4gZmF2b3VyIG9mIHB5dGVzdG1hcmsKKy0gZGVwcmVj
YXRlIGRlZmluaXRpb24gb2YgRGlyZWN0b3J5LCBNb2R1bGUsIENsYXNzIGFuZCBGdW5jdGlvbiBu
b2RlcworICBpbiBjb25mdGVzdC5weSBmaWxlcy4gIFVzZSBweXRlc3QgY29sbGVjdCBob29rcyBp
bnN0ZWFkLgorCistIGNvbGxlY3Rpb24vaXRlbSBub2RlIHNwZWNpZmljIHJ1bnRlc3QvY29sbGVj
dCBob29rcyBhcmUgb25seSBjYWxsZWQgZXhhY3RseQorICBvbiBtYXRjaGluZyBjb25mdGVzdC5w
eSBmaWxlcywgaS5lLiBvbmVzIHdoaWNoIGFyZSBleGFjdGx5IGJlbG93CisgIHRoZSBmaWxlc3lz
dGVtIHBhdGggb2YgYW4gaXRlbQorCistIGNoYW5nZTogdGhlIGZpcnN0IHB5dGVzdF9jb2xsZWN0
X2RpcmVjdG9yeSBob29rIHRvIHJldHVybiBzb21ldGhpbmcKKyAgd2lsbCBub3cgcHJldmVudCBm
dXJ0aGVyIGhvb2tzIHRvIGJlIGNhbGxlZC4KKworLSBjaGFuZ2U6IGZpZ2xlYWYgcGx1Z2luIG5v
dyByZXF1aXJlcyAtLWZpZ2xlYWYgdG8gcnVuLiAgQWxzbworICBjaGFuZ2UgaXRzIGxvbmcgY29t
bWFuZCBsaW5lIG9wdGlvbnMgdG8gYmUgYSBiaXQgc2hvcnRlciAoc2VlIHB5LnRlc3QgLWgpLgor
CistIGNoYW5nZTogcHl0ZXN0IGRvY3Rlc3QgcGx1Z2luIGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1
bHQgYW5kIGhhcyBhCisgIG5ldyBvcHRpb24gLS1kb2N0ZXN0LWdsb2IgdG8gc2V0IGEgcGF0dGVy
biBmb3IgZmlsZSBtYXRjaGVzLgorCistIGNoYW5nZTogcmVtb3ZlIGludGVybmFsIHB5Ll8qIGhl
bHBlciB2YXJzLCBvbmx5IGtlZXAgcHkuX3B5ZGlyCisKKy0gcm9idXN0aWZ5IGNhcHR1cmluZyB0
byBzdXJ2aXZlIGlmIGN1c3RvbSBweXRlc3RfcnVudGVzdF9zZXR1cAorICBjb2RlIGZhaWxlZCBh
bmQgcHJldmVudGVkIHRoZSBjYXB0dXJpbmcgc2V0dXAgY29kZSBmcm9tIHJ1bm5pbmcuCisKKy0g
bWFrZSBweS50ZXN0LiogaGVscGVycyBwcm92aWRlZCBieSBkZWZhdWx0IHBsdWdpbnMgdmlzaWJs
ZSBlYXJseSAtCisgIHdvcmtzIHRyYW5zcGFyZW50bHkgYm90aCBmb3IgcHlkb2MgYW5kIGZvciBp
bnRlcmFjdGl2ZSBzZXNzaW9ucworICB3aGljaCB3aWxsIHJlZ3VsYXJseSBzZWUgZS5nLiBweS50
ZXN0Lm1hcmsgYW5kIHB5LnRlc3QuaW1wb3J0b3Jza2lwLgorCistIHNpbXBsaWZ5IGludGVybmFs
IHBsdWdpbiBtYW5hZ2VyIG1hY2hpbmVyeQorLSBzaW1wbGlmeSBpbnRlcm5hbCBjb2xsZWN0aW9u
IHRyZWUgYnkgaW50cm9kdWNpbmcgYSBSb290Q29sbGVjdG9yIG5vZGUKKworLSBmaXggYXNzZXJ0
IHJlaW50ZXJwcmVhdGlvbiB0aGF0IHNlZXMgYSBjYWxsIGNvbnRhaW5pbmcgImtleXdvcmQ9Li4u
IgorCistIGZpeCBpc3N1ZTY2OiBpbnZva2UgcHl0ZXN0X3Nlc3Npb25zdGFydCBhbmQgcHl0ZXN0
X3Nlc3Npb25maW5pc2gKKyAgaG9va3Mgb24gc2xhdmVzIGR1cmluZyBkaXN0LXRlc3RpbmcsIHJl
cG9ydCBtb2R1bGUvc2Vzc2lvbiB0ZWFyZG93bgorICBob29rcyBjb3JyZWN0bHkuCisKKy0gZml4
IGlzc3VlNjU6IHByb3Blcmx5IGhhbmRsZSBkaXN0LXRlc3RpbmcgaWYgbm8KKyAgZXhlY25ldC9w
eSBsaWIgaW5zdGFsbGVkIHJlbW90ZWx5LgorCistIHNraXAgc29tZSBpbnN0YWxsLXRlc3RzIGlm
IG5vIGV4ZWNuZXQgaXMgYXZhaWxhYmxlCisKKy0gZml4IGRvY3MsIGZpeCBpbnRlcm5hbCBiaW4v
IHNjcmlwdCBnZW5lcmF0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3Jl
bGVhc2UtMS4yLjEudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMS50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWJmOGJhMjJkYzY5OTBiZTc3ZGY1NmFiNGM1ZWE4ZWZkMWI4YmFiNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjEudHh0CkBA
IC0wLDAgKzEsNjYgQEAKK3B5LnRlc3QvcHlsaWIgMS4yLjE6IGxpdHRsZSBmaXhlcyBhbmQgaW1w
cm92ZW1lbnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitweS50ZXN0IGlzIGFuIGFkdmFu
Y2VkIGF1dG9tYXRlZCB0ZXN0aW5nIHRvb2wgd29ya2luZyB3aXRoCitQeXRob24yLCBQeXRob24z
IGFuZCBKeXRob24gdmVyc2lvbnMgb24gYWxsIG1ham9yIG9wZXJhdGluZworc3lzdGVtcy4gIEl0
IGhhcyBhIHNpbXBsZSBwbHVnaW4gYXJjaGl0ZWN0dXJlIGFuZCBjYW4gcnVuIG1hbnkKK2V4aXN0
aW5nIGNvbW1vbiBQeXRob24gdGVzdCBzdWl0ZXMgd2l0aG91dCBtb2RpZmljYXRpb24uICBJdCBv
ZmZlcnMKK3NvbWUgdW5pcXVlIGZlYXR1cmVzIG5vdCBmb3VuZCBpbiBvdGhlciB0ZXN0aW5nIHRv
b2xzLgorU2VlIGh0dHA6Ly9weXRlc3Qub3JnIGZvciBtb3JlIGluZm8uCisKK3B5LnRlc3QgMS4y
LjEgYnJpbmdzIGJ1ZyBmaXhlcyBhbmQgc29tZSBuZXcgb3B0aW9ucyBhbmQgYWJpbGl0aWVzIHRy
aWdnZXJlZAorYnkgdXNlciBmZWVkYmFjazoKKworKiAtLWZ1bmNhcmdzIFt0ZXN0cGF0aF0gIHdp
bGwgc2hvdyBhdmFpbGFibGUgYnVpbHRpbi0gYW5kIHByb2plY3QgZnVuY2FyZ3MuCisqIGRpc3Bs
YXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sgaWYgZnVuY2FyZyBsb29rdXAgZmFpbHMu
CisqIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBmaWxlcyBpbiBub24tZG90IGZpcnN0LWxldmVs
IHN1YiBkaXJlY3Rvcmllcy4KKyogLS10Yj1saW5lIHdpbGwgcHJpbnQgYSBzaW5nbGUgbGluZSBm
b3IgZWFjaCBmYWlsaW5nIHRlc3QgKGlzc3VlNjcpCisqIHB5LmNsZWFudXAgaGFzIGEgbnVtYmVy
IG9mIG5ldyBvcHRpb25zLCBjbGVhbnVwcyB1cCBzZXR1cC5weSByZWxhdGVkIGZpbGVzCisqIGZp
eCBpc3N1ZTc4OiBhbHdheXMgY2FsbCBweXRob24tbGV2ZWwgdGVhcmRvd24gZnVuY3Rpb25zIGV2
ZW4gaWYgdGhlCisgIGFjY29yZGluZyBzZXR1cCBmYWlsZWQuCisKK0ZvciBtb3JlIGRldGFpbGVk
IGluZm9ybWF0aW9uIHNlZSB0aGUgY2hhbmdlbG9nIGJlbG93LgorCitjaGVlcnMgYW5kIGhhdmUg
ZnVuLAorCitob2xnZXIKKworCitDaGFuZ2VzIGJldHdlZW4gMS4yLjEgYW5kIDEuMi4wCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gcmVmaW5lZCB1c2FnZSBhbmQg
b3B0aW9ucyBmb3IgInB5LmNsZWFudXAiOjoKKworICAgIHB5LmNsZWFudXAgICAgICMgcmVtb3Zl
ICIqLnB5YyIgYW5kICIqJHB5LmNsYXNzIiAoanl0aG9uKSBmaWxlcworICAgIHB5LmNsZWFudXAg
LWUgLnN3cCAtZSAuY2FjaGUgIyBhbHNvIHJlbW92ZSBmaWxlcyB3aXRoIHRoZXNlIGV4dGVuc2lv
bnMKKyAgICBweS5jbGVhbnVwIC1zICAjIHJlbW92ZSAiYnVpbGQiIGFuZCAiZGlzdCIgZGlyZWN0
b3J5IG5leHQgdG8gc2V0dXAucHkgZmlsZXMKKyAgICBweS5jbGVhbnVwIC1kICAjIGFsc28gcmVt
b3ZlIGVtcHR5IGRpcmVjdG9yaWVzCisgICAgcHkuY2xlYW51cCAtYSAgIyBzeW5vbnltIGZvciAi
LXMgLWQgLWUgJ3BpcC1sb2cudHh0JyIKKyAgICBweS5jbGVhbnVwIC1uICAjIGRyeSBydW4sIG9u
bHkgc2hvdyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQKKworLSBhZGQgYSBuZXcgb3B0aW9uICJweS50
ZXN0IC0tZnVuY2FyZ3MiIHdoaWNoIHNob3dzIGF2YWlsYWJsZSBmdW5jYXJncworICBhbmQgdGhl
aXIgaGVscCBzdHJpbmdzIChkb2NzdHJpbmdzIG9uIHRoZWlyIHJlc3BlY3RpdmUgZmFjdG9yeSBm
dW5jdGlvbikKKyAgZm9yIGEgZ2l2ZW4gdGVzdCBwYXRoCisKKy0gZGlzcGxheSBhIHNob3J0IGFu
ZCBjb25jaXNlIHRyYWNlYmFjayBpZiBhIGZ1bmNhcmcgbG9va3VwIGZhaWxzCisKKy0gZWFybHkt
bG9hZCAiY29uZnRlc3QucHkiIGZpbGVzIGluIG5vbi1kb3QgZmlyc3QtbGV2ZWwgc3ViIGRpcmVj
dG9yaWVzLgorICBhbGxvd3MgdG8gY29udmVuaWVudGx5IGtlZXAgYW5kIGFjY2VzcyB0ZXN0LXJl
bGF0ZWQgb3B0aW9ucyBpbiBhIGBgdGVzdGBgCisgIHN1YmRpciBhbmQgc3RpbGwgYWRkIGNvbW1h
bmQgbGluZSBvcHRpb25zLgorCistIGZpeCBpc3N1ZTY3OiBuZXcgc3VwZXItc2hvcnQgdHJhY2Vi
YWNrLXByaW50aW5nIG9wdGlvbjogIi0tdGI9bGluZSIgd2lsbCBwcmludCBhIHNpbmdsZSBsaW5l
IGZvciBlYWNoIGZhaWxpbmcgKHB5dGhvbikgdGVzdCBpbmRpY2F0aW5nIGl0cyBmaWxlbmFtZSwg
bGluZW5vIGFuZCB0aGUgZmFpbHVyZSB2YWx1ZQorCistIGZpeCBpc3N1ZTc4OiBhbHdheXMgY2Fs
bCBweXRob24tbGV2ZWwgdGVhcmRvd24gZnVuY3Rpb25zIGV2ZW4gaWYgdGhlCisgIGFjY29yZGlu
ZyBzZXR1cCBmYWlsZWQuICBUaGlzIGluY2x1ZGVzIHJlZmluZW1lbnRzIGZvciBjYWxsaW5nIHNl
dHVwX21vZHVsZS9jbGFzcyBmdW5jdGlvbnMKKyAgd2hpY2ggd2lsbCBub3cgb25seSBiZSBjYWxs
ZWQgb25jZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIgd2hlcmUgdGhleSdkIGJl
IGNhbGxlZAorICBtdWx0aXBsZSB0aW1lcyBpZiB0aGV5IHJhaXNlIGFuIGV4Y2VwdGlvbiAoaW5j
bHVkaW5nIGEgU2tpcHBlZCBleGNlcHRpb24pLiAgQW55IGV4Y2VwdGlvbgorICB3aWxsIGJlIHJl
LWNvcmRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIGFsbCB0ZXN0cyBpbiB0aGUgYWNjb3JkaW5nIG1v
ZHVsZS9jbGFzcyBzY29wZS4KKworLSBmaXggaXNzdWU2MzogYXNzdW1lIDw0MCBjb2x1bW5zIHRv
IGJlIGEgYm9ndXMgdGVybWluYWwgd2lkdGgsIGRlZmF1bHQgdG8gODAKKworLSBmaXggcGRiIGRl
YnVnZ2luZyB0byBiZSBpbiB0aGUgY29ycmVjdCBmcmFtZSBvbiByYWlzZXMtcmVsYXRlZCBlcnJv
cnMKKworLSB1cGRhdGUgYXBpcGtnLnB5IHRvIGZpeCBhbiBpc3N1ZSB3aGVyZSByZWN1cnNpdmUg
aW1wb3J0cyBtaWdodAorICB1bm5lY2Vzc2FyaWx5IGJyZWFrIGltcG9ydGluZworCistIGZpeCBw
bHVnaW4gbGlua3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4z
LjAudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2Y5N2RiMDM2N2E4ZjgwNzFkNjczOGIzMzcyYWFjMDZhMjk5OGI3OQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjAudHh0CkBAIC0wLDAgKzEs
NTgwIEBACitweS50ZXN0L3B5bGliIDEuMy4wOiBuZXcgb3B0aW9ucywgcGVyLXBsdWdpbiBob29r
cywgZml4ZXMgLi4uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIDEuMy4wIHJlbGVhc2UgaW50
cm9kdWNlcyBuZXcgb3B0aW9ucywgYnVnIGZpeGVzIGFuZCBpbXByb3ZlZCBjb21wYXRpYmlsaXR5
Cit3aXRoIFB5dGhvbjMgYW5kIEp5dGhvbi0yLjUuMSBvbiBXaW5kb3dzLiAgIElmIHlvdSBhbHJl
YWR5IHVzZSBweS0xLjIgY2hhbmNlcworYXJlIHlvdSBjYW4gdXNlIHB5LTEuMy4wLiAgU2VlIHRo
ZSBiZWxvdyBDSEFOR0VMT0cgZm9yIG1vcmUgZGV0YWlscyBhbmQKK2h0dHA6Ly9weWxpYi5vcmcv
aW5zdGFsbC5odG1sIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgorCitweS50ZXN0IGlz
IGFuIGFkdmFuY2VkIGF1dG9tYXRlZCB0ZXN0aW5nIHRvb2wgd29ya2luZyB3aXRoIFB5dGhvbjIs
CitQeXRob24zLCBKeXRob24gYW5kIFB5UHkgdmVyc2lvbnMgb24gYWxsIG1ham9yIG9wZXJhdGlu
ZyBzeXN0ZW1zLiAgSXQKK29mZmVycyBhIG5vLWJvaWxlcnBsYXRlIHRlc3RpbmcgYXBwcm9hY2gg
YW5kIGhhcyBpbnNwaXJlZCBvdGhlciB0ZXN0aW5nCit0b29scyBhbmQgZW5oYW5jZW1lbnRzIGlu
IHRoZSBzdGFuZGFyZCBQeXRob24gbGlicmFyeSBmb3IgbW9yZSB0aGFuIGZpdmUKK3llYXJzLiAg
SXQgaGFzIGEgc2ltcGxlIGFuZCBleHRlbnNpdmUgcGx1Z2luIGFyY2hpdGVjdHVyZSwgY29uZmln
dXJhYmxlCityZXBvcnRpbmcgYW5kIHByb3ZpZGVzIHVuaXF1ZSB3YXlzIHRvIG1ha2UgaXQgZml0
IHRvIHlvdXIgdGVzdGluZworcHJvY2VzcyBhbmQgbmVlZHMuCisKK1NlZSBodHRwOi8vcHl0ZXN0
Lm9yZyBmb3IgbW9yZSBpbmZvLgorCitjaGVlcnMgYW5kIGhhdmUgZnVuLAorCitob2xnZXIga3Jl
a2VsCisKK0NoYW5nZXMgYmV0d2VlbiAxLjIuMSBhbmQgMS4zLjAKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZGVwcmVjYXRlIC0tcmVwb3J0
IG9wdGlvbiBpbiBmYXZvdXIgb2YgYSBuZXcgc2hvcnRlciBhbmQgZWFzaWVyIHRvCisgIHJlbWVt
YmVyIC1yIG9wdGlvbjogaXQgdGFrZXMgYSBzdHJpbmcgYXJndW1lbnQgY29uc2lzdGluZyBvZiBh
bnkKKyAgY29tYmluYXRpb24gb2YgJ3hmc1gnIGNoYXJhY3RlcnMuICBUaGV5IHJlbGF0ZSB0byB0
aGUgc2luZ2xlIGNoYXJzCisgIHlvdSBzZWUgZHVyaW5nIHRoZSBkb3R0ZWQgcHJvZ3Jlc3MgcHJp
bnRpbmcgYW5kIHdpbGwgcHJpbnQgYW4gZXh0cmEgbGluZQorICBwZXIgdGVzdCBhdCB0aGUgZW5k
IG9mIHRoZSB0ZXN0IHJ1bi4gIFRoaXMgZXh0cmEgbGluZSBpbmRpY2F0ZXMgdGhlIGV4YWN0Cisg
IHBvc2l0aW9uIG9yIHRlc3QgSUQgdGhhdCB5b3UgZGlyZWN0bHkgcGFzdGUgdG8gdGhlIHB5LnRl
c3QgY21kbGluZSBpbiBvcmRlcgorICB0byByZS1ydW4gYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0g
YWxsb3cgZXh0ZXJuYWwgcGx1Z2lucyB0byByZWdpc3RlciBuZXcgaG9va3MgdmlhIHRoZSBuZXcK
KyAgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpIGhvb2suICBUaGUgbmV3IHJlbGVhc2Ug
b2YKKyAgdGhlIHB5dGVzdC14ZGlzdCBwbHVnaW4gZm9yIGRpc3RyaWJ1dGVkIGFuZCBsb29wb25m
YWlsaW5nCisgIHRlc3RpbmcgcmVxdWlyZXMgdGhpcyBmZWF0dXJlLgorCistIGFkZCBhIG5ldyBw
eXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKSBob29rIHRvIGFsbG93IHByb2plY3Rz
IGFuZAorICBwbHVnaW5zIHRvIGRlZmluZSBleGNsdXNpb24gYmVoYXZpb3VyIGZvciB0aGVpciBk
aXJlY3Rvcnkgc3RydWN0dXJlIC0KKyAgZm9yIGV4YW1wbGUgeW91IG1heSBkZWZpbmUgaW4gYSBj
b25mdGVzdC5weSB0aGlzIG1ldGhvZDo6CisKKyAgICAgICAgZGVmIHB5dGVzdF9pZ25vcmVfY29s
bGVjdChwYXRoKToKKyAgICAgICAgICAgIHJldHVybiBwYXRoLmNoZWNrKGxpbms9MSkKKworICB0
byBwcmV2ZW50IGV2ZW4gY29sbGVjdGlvbiBvZiBhbnkgdGVzdHMgaW4gc3ltbGlua2VkIGRpcnMu
CisKKy0gbmV3IHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpIGhvb2sg
Zm9yCisgIGFsbG93aW5nIGN1c3RvbWl6YXRpb24gb2YgdGhlIE1vZHVsZSBjb2xsZWN0aW9uIG9i
amVjdCBmb3IgYQorICBtYXRjaGluZyB0ZXN0IG1vZHVsZS4KKworLSBleHRlbmQgYW5kIHJlZmlu
ZSB4ZmFpbCBtZWNoYW5pc206OgorCisgICAgQHB5LnRlc3QubWFyay54ZmFpbChydW49RmFsc2Up
IGRvIG5vdCBydW4gdGhlIGRlY29yYXRlZCB0ZXN0CisgICAgQHB5LnRlc3QubWFyay54ZmFpbChy
ZWFzb249Ii4uLiIpIHByaW50cyB0aGUgcmVhc29uIHN0cmluZyBpbiB4ZmFpbCBzdW1tYXJpZXMK
KworICBzcGVjaWZpeWluZyBgYC0tcnVueGZhaWxgYCBvbiBjb21tYW5kIGxpbmUgaWdub3JlcyB4
ZmFpbCBtYXJrZXJzIHRvIHNob3cKKyAgeW91IHRoZSB1bmRlcmx5aW5nIHRyYWNlYmFjay4KKwor
LSBleHBvc2UgKHByZXZpb3VzbHkgaW50ZXJuYWwpIGNvbW1vbmx5IHVzZWZ1bCBtZXRob2RzOgor
ICBweS5pby5nZXRfdGVybWluYWxfd2l0aCgpIC0+IHJldHVybiB0ZXJtaW5hbCB3aWR0aAorICBw
eS5pby5hbnNpX3ByaW50KC4uLikgLT4gcHJpbnQgY29sb3JlZC9ib2xkIHRleHQgb24gbGludXgv
d2luMzIKKyAgcHkuaW8uc2FmZXJlcHIob2JqKSAtPiByZXR1cm4gbGltaXRlZCByZXByZXNlbnRh
dGlvbiBzdHJpbmcKKworLSBleHBvc2UgdGVzdCBvdXRjb21lIHJlbGF0ZWQgZXhjZXB0aW9ucyBh
cyBweS50ZXN0LnNraXAuRXhjZXB0aW9uLAorICBweS50ZXN0LnJhaXNlcy5FeGNlcHRpb24gZXRj
LiwgdXNlZnVsIG1vc3RseSBmb3IgcGx1Z2lucworICBkb2luZyBzcGVjaWFsIG91dGNvbWUgaW50
ZXJwcmV0YXRpb24vdHdlYWtpbmcKKworLSAoaXNzdWU4NSkgZml4IGp1bml0eG1sIHBsdWdpbiB0
byBoYW5kbGUgdGVzdHMgd2l0aCBub24tYXNjaWkgb3V0cHV0CisKKy0gZml4L3JlZmluZSBweXRo
b24zIGNvbXBhdGliaWxpdHkgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKworLSBmaXhlcyBm
b3IgbWFraW5nIHRoZSBqeXRob24vd2luMzIgY29tYmluYXRpb24gd29yaywgbm90ZSBob3dldmVy
OgorICBqeXRob24yLjUuMS93aW4zMiBkb2VzIG5vdCBwcm92aWRlIGEgY29tbWFuZCBsaW5lIGxh
dW5jaGVyLCBzZWUKKyAgaHR0cDovL2J1Z3Muanl0aG9uLm9yZy9pc3N1ZTE0OTEgLiBTZWUgcHls
aWIgaW5zdGFsbCBkb2N1bWVudGF0aW9uCisgIGZvciBob3cgdG8gd29yayBhcm91bmQuCisKKy0g
Zml4ZXMgZm9yIGhhbmRsaW5nIG9mIHVuaWNvZGUgZXhjZXB0aW9uIHZhbHVlcyBhbmQgdW5wcmlu
dGFibGUgb2JqZWN0cworCistIChpc3N1ZTg3KSBmaXggdW5ib3VuZGxvY2FsIGVycm9yIGluIGFz
c2VydGlvbm9sZCBjb2RlCisKKy0gKGlzc3VlODYpIGltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3Ig
bG9vcG9uZmFpbGluZworCistIHJlZmluZSBJTyBjYXB0dXJpbmc6IHN0ZGluLXJlZGlyZWN0IHBz
ZXVkby1maWxlIG5vdyBoYXMgYSBOT1AgY2xvc2UoKSBtZXRob2QKKworLSBzaGlwIGRpc3RyaWJ1
dGVfc2V0dXAucHkgdmVyc2lvbiAwLjYuMTAKKworLSBhZGRlZCBsaW5rcyB0byB0aGUgbmV3IGNh
cHR1cmVsb2cgYW5kIGNvdmVyYWdlIHBsdWdpbnMKKworCitDaGFuZ2VzIGJldHdlZW4gMS4yLjEg
YW5kIDEuMi4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gcmVm
aW5lZCB1c2FnZSBhbmQgb3B0aW9ucyBmb3IgInB5LmNsZWFudXAiOjoKKworICAgIHB5LmNsZWFu
dXAgICAgICMgcmVtb3ZlICIqLnB5YyIgYW5kICIqJHB5LmNsYXNzIiAoanl0aG9uKSBmaWxlcwor
ICAgIHB5LmNsZWFudXAgLWUgLnN3cCAtZSAuY2FjaGUgIyBhbHNvIHJlbW92ZSBmaWxlcyB3aXRo
IHRoZXNlIGV4dGVuc2lvbnMKKyAgICBweS5jbGVhbnVwIC1zICAjIHJlbW92ZSAiYnVpbGQiIGFu
ZCAiZGlzdCIgZGlyZWN0b3J5IG5leHQgdG8gc2V0dXAucHkgZmlsZXMKKyAgICBweS5jbGVhbnVw
IC1kICAjIGFsc28gcmVtb3ZlIGVtcHR5IGRpcmVjdG9yaWVzCisgICAgcHkuY2xlYW51cCAtYSAg
IyBzeW5vbnltIGZvciAiLXMgLWQgLWUgJ3BpcC1sb2cudHh0JyIKKyAgICBweS5jbGVhbnVwIC1u
ICAjIGRyeSBydW4sIG9ubHkgc2hvdyB3aGF0IHdvdWxkIGJlIHJlbW92ZWQKKworLSBhZGQgYSBu
ZXcgb3B0aW9uICJweS50ZXN0IC0tZnVuY2FyZ3MiIHdoaWNoIHNob3dzIGF2YWlsYWJsZSBmdW5j
YXJncworICBhbmQgdGhlaXIgaGVscCBzdHJpbmdzIChkb2NzdHJpbmdzIG9uIHRoZWlyIHJlc3Bl
Y3RpdmUgZmFjdG9yeSBmdW5jdGlvbikKKyAgZm9yIGEgZ2l2ZW4gdGVzdCBwYXRoCisKKy0gZGlz
cGxheSBhIHNob3J0IGFuZCBjb25jaXNlIHRyYWNlYmFjayBpZiBhIGZ1bmNhcmcgbG9va3VwIGZh
aWxzCisKKy0gZWFybHktbG9hZCAiY29uZnRlc3QucHkiIGZpbGVzIGluIG5vbi1kb3QgZmlyc3Qt
bGV2ZWwgc3ViIGRpcmVjdG9yaWVzLgorICBhbGxvd3MgdG8gY29udmVuaWVudGx5IGtlZXAgYW5k
IGFjY2VzcyB0ZXN0LXJlbGF0ZWQgb3B0aW9ucyBpbiBhIGBgdGVzdGBgCisgIHN1YmRpciBhbmQg
c3RpbGwgYWRkIGNvbW1hbmQgbGluZSBvcHRpb25zLgorCistIGZpeCBpc3N1ZTY3OiBuZXcgc3Vw
ZXItc2hvcnQgdHJhY2ViYWNrLXByaW50aW5nIG9wdGlvbjogIi0tdGI9bGluZSIgd2lsbCBwcmlu
dCBhIHNpbmdsZSBsaW5lIGZvciBlYWNoIGZhaWxpbmcgKHB5dGhvbikgdGVzdCBpbmRpY2F0aW5n
IGl0cyBmaWxlbmFtZSwgbGluZW5vIGFuZCB0aGUgZmFpbHVyZSB2YWx1ZQorCistIGZpeCBpc3N1
ZTc4OiBhbHdheXMgY2FsbCBweXRob24tbGV2ZWwgdGVhcmRvd24gZnVuY3Rpb25zIGV2ZW4gaWYg
dGhlCisgIGFjY29yZGluZyBzZXR1cCBmYWlsZWQuICBUaGlzIGluY2x1ZGVzIHJlZmluZW1lbnRz
IGZvciBjYWxsaW5nIHNldHVwX21vZHVsZS9jbGFzcyBmdW5jdGlvbnMKKyAgd2hpY2ggd2lsbCBu
b3cgb25seSBiZSBjYWxsZWQgb25jZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIg
d2hlcmUgdGhleSdkIGJlIGNhbGxlZAorICBtdWx0aXBsZSB0aW1lcyBpZiB0aGV5IHJhaXNlIGFu
IGV4Y2VwdGlvbiAoaW5jbHVkaW5nIGEgU2tpcHBlZCBleGNlcHRpb24pLiAgQW55IGV4Y2VwdGlv
bgorICB3aWxsIGJlIHJlLWNvcmRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIGFsbCB0ZXN0cyBpbiB0
aGUgYWNjb3JkaW5nIG1vZHVsZS9jbGFzcyBzY29wZS4KKworLSBmaXggaXNzdWU2MzogYXNzdW1l
IDw0MCBjb2x1bW5zIHRvIGJlIGEgYm9ndXMgdGVybWluYWwgd2lkdGgsIGRlZmF1bHQgdG8gODAK
KworLSBmaXggcGRiIGRlYnVnZ2luZyB0byBiZSBpbiB0aGUgY29ycmVjdCBmcmFtZSBvbiByYWlz
ZXMtcmVsYXRlZCBlcnJvcnMKKworLSB1cGRhdGUgYXBpcGtnLnB5IHRvIGZpeCBhbiBpc3N1ZSB3
aGVyZSByZWN1cnNpdmUgaW1wb3J0cyBtaWdodAorICB1bm5lY2Vzc2FyaWx5IGJyZWFrIGltcG9y
dGluZworCistIGZpeCBwbHVnaW4gbGlua3MKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMiBhbmQgMS4x
LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBtb3ZlZCBkaXN0
L2xvb3BvbmZhaWxpbmcgZnJvbSBweS50ZXN0IGNvcmUgaW50byBhIG5ldworICBzZXBhcmF0ZWx5
IHJlbGVhc2VkIHB5dGVzdC14ZGlzdCBwbHVnaW4uCisKKy0gbmV3IGp1bml0eG1sIHBsdWdpbjog
LS1qdW5pdHhtbD1wYXRoIHdpbGwgZ2VuZXJhdGUgYSBqdW5pdCBzdHlsZSB4bWwgZmlsZQorICB3
aGljaCBpcyBwcm9jZXNzYWJsZSBlLmcuIGJ5IHRoZSBIdWRzb24gQ0kgc3lzdGVtLgorCistIG5l
dyBvcHRpb246IC0tZ2Vuc2NyaXB0PXBhdGggd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYWxvbmUgcHku
dGVzdCBzY3JpcHQKKyAgd2hpY2ggd2lsbCBub3QgbmVlZCBhbnkgbGlicmFyaWVzIGluc3RhbGxl
ZC4gIHRoYW5rcyB0byBSYWxmIFNjaG1pdHQuCisKKy0gbmV3IG9wdGlvbjogLS1pZ25vcmUgd2ls
bCBwcmV2ZW50IHNwZWNpZmllZCBwYXRoIGZyb20gY29sbGVjdGlvbi4KKyAgQ2FuIGJlIHNwZWNp
ZmllZCBtdWx0aXBsZSB0aW1lcy4KKworLSBuZXcgb3B0aW9uOiAtLWNvbmZjdXRkaXI9ZGlyIHdp
bGwgbWFrZSBweS50ZXN0IG9ubHkgY29uc2lkZXIgY29uZnRlc3QKKyAgZmlsZXMgdGhhdCBhcmUg
cmVsYXRpdmUgdG8gdGhlIHNwZWNpZmllZCBkaXIuCisKKy0gbmV3IGZ1bmNhcmc6ICJweXRlc3Rj
b25maWciIGlzIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBmb3IgYWNjZXNzCisgIHRvIGNvbW1h
bmQgbGluZSBhcmdzIGFuZCBjYW4gbm93IGJlIGVhc2lseSB1c2VkIGluIGEgdGVzdC4KKworLSBp
bnN0YWxsICdweS50ZXN0JyBhbmQgYHB5LndoaWNoYCB3aXRoIGEgYGAtJFZFUlNJT05gYCBzdWZm
aXggdG8KKyAgZGlzYW1iaWd1YXRlIGJldHdlZW4gUHl0aG9uMywgcHl0aG9uMi5YLCBKeXRob24g
YW5kIFB5UHkgaW5zdGFsbGVkIHZlcnNpb25zLgorCistIG5ldyAicHl0ZXN0Y29uZmlnIiBmdW5j
YXJnIGFsbG93cyBhY2Nlc3MgdG8gdGVzdCBjb25maWcgb2JqZWN0CisKKy0gbmV3ICJweXRlc3Rf
cmVwb3J0X2hlYWRlciIgaG9vayBjYW4gcmV0dXJuIGFkZGl0aW9uYWwgbGluZXMKKyAgdG8gYmUg
ZGlzcGxheWVkIGF0IHRoZSBoZWFkZXIgb2YgYSB0ZXN0IHJ1bi4KKworLSAoZXhwZXJpbWVudGFs
KSBhbGxvdyAicHkudGVzdCBwYXRoOjpuYW1lMTo6bmFtZTI6Oi4uLiIgZm9yIHBvaW50aW5nCisg
IHRvIGEgdGVzdCB3aXRoaW4gYSB0ZXN0IGNvbGxlY3Rpb24gZGlyZWN0bHkuICBUaGlzIG1pZ2h0
IGV2ZW50dWFsbHkKKyAgZXZvbHZlIGFzIGEgZnVsbCBzdWJzdGl0dXRlIHRvICItayIgc3BlY2lm
aWNhdGlvbnMuCisKKy0gc3RyZWFtbGluZWQgcGx1Z2luIGxvYWRpbmc6IG9yZGVyIGlzIG5vdyBh
cyBkb2N1bWVudGVkIGluCisgIGN1c3RvbWl6ZS5odG1sOiBzZXR1cHRvb2xzLCBFTlYsIGNvbW1h
bmRsaW5lLCBjb25mdGVzdC4KKyAgYWxzbyBzZXR1cHRvb2xzIGVudHJ5IHBvaW50IG5hbWVzIGFy
ZSB0dXJuZWQgdG8gY2Fub25pY2FsIG5hbWVlcyAoInB5dGVzdF8qIikKKworLSBhdXRvbWF0aWNh
bGx5IHNraXAgdGVzdHMgdGhhdCBuZWVkICdjYXBmZCcgYnV0IGhhdmUgbm8gb3MuZHVwCisKKy0g
YWxsb3cgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIHRvIGJlIGRlZmluZWQgaW4gY2xhc3NlcyBhcyB3
ZWxsCisKKy0gZGVwcmVjYXRlIHVzYWdlIG9mICdkaXNhYmxlZCcgYXR0cmlidXRlIGluIGZhdm91
ciBvZiBweXRlc3RtYXJrCistIGRlcHJlY2F0ZSBkZWZpbml0aW9uIG9mIERpcmVjdG9yeSwgTW9k
dWxlLCBDbGFzcyBhbmQgRnVuY3Rpb24gbm9kZXMKKyAgaW4gY29uZnRlc3QucHkgZmlsZXMuICBV
c2UgcHl0ZXN0IGNvbGxlY3QgaG9va3MgaW5zdGVhZC4KKworLSBjb2xsZWN0aW9uL2l0ZW0gbm9k
ZSBzcGVjaWZpYyBydW50ZXN0L2NvbGxlY3QgaG9va3MgYXJlIG9ubHkgY2FsbGVkIGV4YWN0bHkK
KyAgb24gbWF0Y2hpbmcgY29uZnRlc3QucHkgZmlsZXMsIGkuZS4gb25lcyB3aGljaCBhcmUgZXhh
Y3RseSBiZWxvdworICB0aGUgZmlsZXN5c3RlbSBwYXRoIG9mIGFuIGl0ZW0KKworLSBjaGFuZ2U6
IHRoZSBmaXJzdCBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkgaG9vayB0byByZXR1cm4gc29tZXRo
aW5nCisgIHdpbGwgbm93IHByZXZlbnQgZnVydGhlciBob29rcyB0byBiZSBjYWxsZWQuCisKKy0g
Y2hhbmdlOiBmaWdsZWFmIHBsdWdpbiBub3cgcmVxdWlyZXMgLS1maWdsZWFmIHRvIHJ1bi4gIEFs
c28KKyAgY2hhbmdlIGl0cyBsb25nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIGJlIGEgYml0IHNo
b3J0ZXIgKHNlZSBweS50ZXN0IC1oKS4KKworLSBjaGFuZ2U6IHB5dGVzdCBkb2N0ZXN0IHBsdWdp
biBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBoYXMgYQorICBuZXcgb3B0aW9uIC0tZG9j
dGVzdC1nbG9iIHRvIHNldCBhIHBhdHRlcm4gZm9yIGZpbGUgbWF0Y2hlcy4KKworLSBjaGFuZ2U6
IHJlbW92ZSBpbnRlcm5hbCBweS5fKiBoZWxwZXIgdmFycywgb25seSBrZWVwIHB5Ll9weWRpcgor
CistIHJvYnVzdGlmeSBjYXB0dXJpbmcgdG8gc3Vydml2ZSBpZiBjdXN0b20gcHl0ZXN0X3J1bnRl
c3Rfc2V0dXAKKyAgY29kZSBmYWlsZWQgYW5kIHByZXZlbnRlZCB0aGUgY2FwdHVyaW5nIHNldHVw
IGNvZGUgZnJvbSBydW5uaW5nLgorCistIG1ha2UgcHkudGVzdC4qIGhlbHBlcnMgcHJvdmlkZWQg
YnkgZGVmYXVsdCBwbHVnaW5zIHZpc2libGUgZWFybHkgLQorICB3b3JrcyB0cmFuc3BhcmVudGx5
IGJvdGggZm9yIHB5ZG9jIGFuZCBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMKKyAgd2hpY2ggd2ls
bCByZWd1bGFybHkgc2VlIGUuZy4gcHkudGVzdC5tYXJrIGFuZCBweS50ZXN0LmltcG9ydG9yc2tp
cC4KKworLSBzaW1wbGlmeSBpbnRlcm5hbCBwbHVnaW4gbWFuYWdlciBtYWNoaW5lcnkKKy0gc2lt
cGxpZnkgaW50ZXJuYWwgY29sbGVjdGlvbiB0cmVlIGJ5IGludHJvZHVjaW5nIGEgUm9vdENvbGxl
Y3RvciBub2RlCisKKy0gZml4IGFzc2VydCByZWludGVycHJlYXRpb24gdGhhdCBzZWVzIGEgY2Fs
bCBjb250YWluaW5nICJrZXl3b3JkPS4uLiIKKworLSBmaXggaXNzdWU2NjogaW52b2tlIHB5dGVz
dF9zZXNzaW9uc3RhcnQgYW5kIHB5dGVzdF9zZXNzaW9uZmluaXNoCisgIGhvb2tzIG9uIHNsYXZl
cyBkdXJpbmcgZGlzdC10ZXN0aW5nLCByZXBvcnQgbW9kdWxlL3Nlc3Npb24gdGVhcmRvd24KKyAg
aG9va3MgY29ycmVjdGx5LgorCistIGZpeCBpc3N1ZTY1OiBwcm9wZXJseSBoYW5kbGUgZGlzdC10
ZXN0aW5nIGlmIG5vCisgIGV4ZWNuZXQvcHkgbGliIGluc3RhbGxlZCByZW1vdGVseS4KKworLSBz
a2lwIHNvbWUgaW5zdGFsbC10ZXN0cyBpZiBubyBleGVjbmV0IGlzIGF2YWlsYWJsZQorCistIGZp
eCBkb2NzLCBmaXggaW50ZXJuYWwgYmluLyBzY3JpcHQgZ2VuZXJhdGlvbgorCisKK0NoYW5nZXMg
YmV0d2VlbiAxLjEuMSBhbmQgMS4xLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworLSBpbnRyb2R1Y2UgYXV0b21hdGljIHBsdWdpbiByZWdpc3RyYXRpb24gdmlhICdw
eXRlc3QxMScKKyAgZW50cnlwb2ludHMgdmlhIHNldHVwdG9vbHMnIHBrZ19yZXNvdXJjZXMuaXRl
cl9lbnRyeV9wb2ludHMKKworLSBmaXggcHkudGVzdCBkaXN0LXRlc3RpbmcgdG8gd29yayB3aXRo
IGV4ZWNuZXQgPj0gMS4wLjBiNAorCistIHJlLWludHJvZHVjZSBweS50ZXN0LmNtZGxpbmUubWFp
bigpIGZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorCistIHN2biBwYXRoczogZml4
IGEgYnVnIHdpdGggcGF0aC5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSkgZm9yIHN2biBwYXRocywKKyAg
YWxsb3cgJyUnIGluIHN2biBwYXRocywgbWFrZSBzdm53Yy51cGRhdGUoKSBkZWZhdWx0IHRvIGlu
dGVyYWN0aXZlIG1vZGUKKyAgbGlrZSBpbiAxLjAueCBhbmQgYWRkIHN2bndjLnVwZGF0ZShpbnRl
cmFjdGl2ZT1GYWxzZSkgdG8gaW5oaWJpdCBpbnRlcmFjdGlvbi4KKworLSByZWZpbmUgZGlzdHJp
YnV0ZWQgdGFyYmFsbCB0byBjb250YWluIHRlc3QgYW5kIG5vIHB5YyBmaWxlcworCistIHRyeSBo
YXJkZXIgdG8gaGF2ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgcHkuY29tcGF0LiogYWNjZXNz
ZXMKKyAgcmVwb3J0IGEgY29ycmVjdCBsb2NhdGlvbgorCitDaGFuZ2VzIGJldHdlZW4gMS4xLjAg
YW5kIDEuMC4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogYWRq
dXN0IGFuZCBpbXByb3ZlIGRvY3MKKworKiByZW1vdmUgcHkucmVzdCB0b29sIGFuZCBpbnRlcm5h
bCBuYW1lc3BhY2UgLSBpdCB3YXMKKyAgbmV2ZXIgcmVhbGx5IGFkdmVydGlzZWQgYW5kIGNhbiBz
dGlsbCBiZSB1c2VkIHdpdGgKKyAgdGhlIG9sZCByZWxlYXNlIGlmIG5lZWRlZC4gIElmIHRoZXJl
IGlzIGludGVyZXN0CisgIGl0IGNvdWxkIGJlIHJldml2ZWQgaW50byBpdHMgb3duIHRvb2wgaSBn
dWVzcy4KKworKiBmaXggaXNzdWU0OCBhbmQgaXNzdWU1OTogcmFpc2UgYW4gRXJyb3IgaWYgdGhl
IG1vZHVsZQorICBmcm9tIGFuIGltcG9ydGVkIHRlc3QgZmlsZSBkb2VzIG5vdCBzZWVtIHRvIGNv
bWUgZnJvbQorICB0aGUgZmlsZXBhdGggLSBhdm9pZHMgInNhbWUtbmFtZSIgY29uZnVzaW9uIHRo
YXQgaGFzCisgIGJlZW4gcmVwb3J0ZWQgcmVwZWF0ZWRseQorCisqIG1lcmdlZCBSb25ueSdzIG5v
c2UtY29tcGF0aWJpbGl0eSBoYWNrczogbm93CisgIG5vc2Utc3R5bGUgc2V0dXBfbW9kdWxlKCkg
YW5kIHNldHVwKCkgZnVuY3Rpb25zIGFyZQorICBzdXBwb3J0ZWQKKworKiBpbnRyb2R1Y2UgZ2Vu
ZXJhbGl6ZWQgcHkudGVzdC5tYXJrIGZ1bmN0aW9uIG1hcmtpbmcKKworKiByZXNodWZmbGUgLyBy
ZWZpbmUgY29tbWFuZCBsaW5lIGdyb3VwaW5nCisKKyogZGVwcmVjYXRlIHBhcnNlci5hZGRncm91
cCBpbiBmYXZvdXIgb2YgZ2V0Z3JvdXAgd2hpY2ggY3JlYXRlcyBvcHRpb24gZ3JvdXAKKworKiBh
ZGQgLS1yZXBvcnQgY29tbWFuZCBsaW5lIG9wdGlvbiB0aGF0IGFsbG93cyB0byBjb250cm9sIHNo
b3dpbmcgb2Ygc2tpcHBlZC94ZmFpbGVkIHNlY3Rpb25zCisKKyogZ2VuZXJhbGl6ZWQgc2tpcHBp
bmc6IGEgbmV3IHdheSB0byBtYXJrIHB5dGhvbiBmdW5jdGlvbnMgd2l0aCBza2lwaWYgb3IgeGZh
aWwKKyAgYXQgZnVuY3Rpb24sIGNsYXNzIGFuZCBtb2R1bGVzIGxldmVsIGJhc2VkIG9uIHBsYXRm
b3JtIG9yIHN5cy1tb2R1bGUgYXR0cmlidXRlcy4KKworKiBleHRlbmQgcHkudGVzdC5tYXJrIGRl
Y29yYXRvciB0byBhbGxvdyBmb3IgcG9zaXRpb25hbCBhcmdzCisKKyogaW50cm9kdWNlIGFuZCB0
ZXN0ICJweS5jbGVhbnVwIC1kIiB0byByZW1vdmUgZW1wdHkgZGlyZWN0b3JpZXMKKworKiBmaXgg
aXNzdWUgIzU5IC0gcm9idXN0aWZ5IHVuaXR0ZXN0IHRlc3QgY29sbGVjdGlvbgorCisqIG1ha2Ug
YnB5dGhvbi9oZWxwIGludGVyYWN0aW9uIHdvcmsgYnkgYWRkaW5nIGFuIF9fYWxsX18gYXR0cmli
dXRlCisgIHRvIEFwaU1vZHVsZSwgY2xlYW51cCBpbml0cGtnCisKKyogdXNlIE1JVCBsaWNlbnNl
IGZvciBweWxpYiwgYWRkIHNvbWUgY29udHJpYnV0b3JzCisKKyogcmVtb3ZlIHB5LmV4ZWNuZXQg
Y29kZSBhbmQgc3Vic3RpdHV0ZSBhbGwgdXNhZ2VzIHdpdGggJ2V4ZWNuZXQnIHByb3BlcgorCisq
IGZpeCBpc3N1ZTUwIC0gY2FjaGVkX3NldHVwIG5vdyBjYWNoZXMgbW9yZSB0byBleHBlY3RhdGlv
bnMKKyAgZm9yIHRlc3QgZnVuY3Rpb25zIHdpdGggbXVsdGlwbGUgYXJndW1lbnRzLgorCisqIG1l
cmdlIEphcmtvJ3MgZml4ZXMsIGlzc3VlICM0NSBhbmQgIzQ2CisKKyogYWRkIHRoZSBhYmlsaXR5
IHRvIHNwZWNpZnkgYSBwYXRoIGZvciBweS5sb29rdXAgdG8gc2VhcmNoIGluCisKKyogZml4IGEg
ZnVuY2FyZyBjYWNoZWRfc2V0dXAgYnVnIHByb2JhYmx5IG9ubHkgb2NjdXJpbmcKKyAgaW4gZGlz
dHJpYnV0ZWQgdGVzdGluZyBhbmQgIm1vZHVsZSIgc2NvcGUgd2l0aCB0ZWFyZG93bi4KKworKiBt
YW55IGZpeGVzIGFuZCBjaGFuZ2VzIGZvciBtYWtpbmcgdGhlIGNvZGUgYmFzZSBweXRob24zIGNv
bXBhdGlibGUsCisgIG1hbnkgdGhhbmtzIHRvIEJlbmphbWluIFBldGVyc29uIGZvciBoZWxwaW5n
IHdpdGggdGhpcy4KKworKiBjb25zb2xpZGF0ZSBidWlsdGlucyBpbXBsZW1lbnRhdGlvbiB0byBi
ZSBjb21wYXRpYmxlIHdpdGggPj0yLjMsCisgIGFkZCBoZWxwZXJzIHRvIGVhc2Uga2VlcGluZyAy
IGFuZCAzayBjb21wYXRpYmxlIGNvZGUKKworKiBkZXByZWNhdGUgcHkuY29tcGF0LmRvY3Rlc3R8
c3VicHJvY2Vzc3x0ZXh0d3JhcHxvcHRwYXJzZQorCisqIGRlcHJlY2F0ZSBweS5tYWdpYy5hdXRv
cGF0aCwgcmVtb3ZlIHB5L21hZ2ljIGRpcmVjdG9yeQorCisqIG1vdmUgcHl0ZXN0IGFzc2VydGlv
biBoYW5kbGluZyB0byBweS9jb2RlIGFuZCBhIHB5dGVzdF9hc3NlcnRpb24KKyAgcGx1Z2luLCBh
ZGQgIi0tbm8tYXNzZXJ0IiBvcHRpb24sIGRlcHJlY2F0ZSBweS5tYWdpYyBuYW1lc3BhY2VzCisg
IGluIGZhdm91ciBvZiAobGVzcykgcHkuY29kZSBvbmVzLgorCisqIGNvbnNvbGlkYXRlIGFuZCBj
bGVhbnVwIHB5L2NvZGUgY2xhc3NlcyBhbmQgZmlsZXMKKworKiBjbGVhbnVwIHB5L21pc2MsIG1v
dmUgdGVzdHMgdG8gYmluLWZvci1kaXN0CisKKyogaW50cm9kdWNlIGRlbGF0dHIvZGVsaXRlbS9k
ZWxlbnYgbWV0aG9kcyB0byBweS50ZXN0J3MgbW9ua2V5cGF0Y2ggZnVuY2FyZworCisqIGNvbnNv
bGlkYXRlIHB5LmxvZyBpbXBsZW1lbnRhdGlvbiwgcmVtb3ZlIG9sZCBhcHByb2FjaC4KKworKiBp
bnRyb2R1Y2UgcHkuaW8uVGV4dElPIGFuZCBweS5pby5CeXRlc0lPIGZvciBkaXN0aW5ndWlzaGlu
ZyBiZXR3ZWVuCisgIHRleHQvdW5pY29kZSBhbmQgYnl0ZS1zdHJlYW1zICh1c2VzIHVuZGVybHlp
bmcgc3RhbmRhcmQgbGliIGlvLioKKyAgaWYgYXZhaWxhYmxlKQorCisqIG1ha2UgcHkudW5pdHRl
c3RfY29udmVydCBoZWxwZXIgc2NyaXB0IGF2YWlsYWJsZSB3aGljaCBjb252ZXJ0cyAidW5pdHRl
c3QucHkiCisgIHN0eWxlIGZpbGVzIGludG8gdGhlIHNpbXBsZXIgYXNzZXJ0L2RpcmVjdC10ZXN0
LWNsYXNzZXMgcHkudGVzdC9ub3NldGVzdHMKKyAgc3R5bGUuICBUaGUgc2NyaXB0IHdhcyB3cml0
dGVuIGJ5IExhdXJhIENyZWlnaHRvbi4KKworKiBzaW1wbGlmaWVkIGludGVybmFsIGxvY2FscGF0
aCBpbXBsZW1lbnRhdGlvbgorCitDaGFuZ2VzIGJldHdlZW4gMS4wLjEgYW5kIDEuMC4yCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogZml4aW5nIHBhY2thZ2luZyBp
c3N1ZXMsIHRyaWdnZXJlZCBieSBmZWRvcmEgcmVkaGF0IHBhY2thZ2luZywKKyAgYWxzbyBhZGRl
ZCBkb2MsIGV4YW1wbGVzIGFuZCBjb250cmliIGRpcnMgdG8gdGhlIHRhcmJhbGwuCisKKyogYWRk
ZWQgYSBkb2N1bWVudGF0aW9uIGxpbmsgdG8gdGhlIG5ldyBkamFuZ28gcGx1Z2luLgorCitDaGFu
Z2VzIGJldHdlZW4gMS4wLjAgYW5kIDEuMC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKyogYWRkZWQgYSAncHl0ZXN0X25vc2UnIHBsdWdpbiB3aGljaCBoYW5kbGVz
IG5vc2UuU2tpcFRlc3QsCisgIG5vc2Utc3R5bGUgZnVuY3Rpb24vbWV0aG9kL2dlbmVyYXRvciBz
ZXR1cC90ZWFyZG93biBhbmQKKyAgdHJpZXMgdG8gcmVwb3J0IGZ1bmN0aW9ucyBjb3JyZWN0bHku
CisKKyogY2FwdHVyaW5nIG9mIHVuaWNvZGUgd3JpdGVzIG9yIGVuY29kZWQgc3RyaW5ncyB0byBz
eXMuc3Rkb3V0L2VycgorICB3b3JrIGJldHRlciwgYWxzbyB0ZXJtaW5hbHdyaXRpbmcgd2FzIGFk
YXB0ZWQgYW5kIHNvbWV3aGF0CisgIHVuaWZpZWQgYmV0d2VlbiB3aW5kb3dzIGFuZCBsaW51eC4K
KworKiBpbXByb3ZlZCBkb2N1bWVudGF0aW9uIGxheW91dCBhbmQgY29udGVudCBhIGxvdAorCisq
IGFkZGVkIGEgIi0taGVscC1jb25maWciIG9wdGlvbiB0byBzaG93IGNvbmZ0ZXN0LnB5IC8gRU5W
LXZhciBuYW1lcyBmb3IKKyAgYWxsIGxvbmdvcHQgY21kbGluZSBvcHRpb25zLCBhbmQgc29tZSBz
cGVjaWFsIGNvbmZ0ZXN0LnB5IHZhcmlhYmxlcy4KKyAgcmVuYW1lZCAnY29uZl9jYXB0dXJlJyBj
b25mdGVzdCBzZXR0aW5nIHRvICdvcHRpb25fY2FwdHVyZScgYWNjb3JkaW5nbHkuCisKKyogZml4
IGlzc3VlICMyNzogYmV0dGVyIHJlcG9ydGluZyBvbiBub24tY29sbGVjdGFibGUgaXRlbXMgZ2l2
ZW4gb24gY29tbWFuZGxpbmUKKyAgKGUuZy4gcHljIGZpbGVzKQorCisqIGZpeCBpc3N1ZSAjMzM6
IGFkZGVkIC0tdmVyc2lvbiBmbGFnICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCisKKyogZml4
IGlzc3VlICMzMjogYWRkaW5nIHN1cHBvcnQgZm9yICJpbmNvbXBsZXRlIiBwYXRocyB0byB3Y3Bh
dGguc3RhdHVzKCkKKworKiAiVGVzdCIgcHJlZml4ZWQgY2xhc3NlcyBhcmUgKm5vdCogY29sbGVj
dGVkIGJ5IGRlZmF1bHQgYW55bW9yZSBpZiB0aGV5CisgIGhhdmUgYW4gX19pbml0X18gbWV0aG9k
CisKKyogbW9ua2V5cGF0Y2ggc2V0ZW52KCkgbm93IGFjY2VwdHMgYSAicHJlcGVuZCIgcGFyYW1l
dGVyCisKKyogaW1wcm92ZWQgcmVwb3J0aW5nIG9mIGNvbGxlY3Rpb24gZXJyb3IgdHJhY2ViYWNr
cworCisqIHNpbXBsaWZpZWQgbXVsdGljYWxsIG1lY2hhbmlzbSBhbmQgcGx1Z2luIGFyY2hpdGVj
dHVyZSwKKyAgcmVuYW1lZCBzb21lIGludGVybmFsIG1ldGhvZHMgYW5kIGFyZ25hbWVzCisKK0No
YW5nZXMgYmV0d2VlbiAxLjAuMGI5IGFuZCAxLjAuMAorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisqIG1vcmUgdGVyc2UgcmVwb3J0aW5nIHRyeSB0byBzaG93IGZpbGVz
eXN0ZW0gcGF0aCByZWxhdGl2ZWx5IHRvIGN1cnJlbnQgZGlyCisqIGltcHJvdmUgeGZhaWwgb3V0
cHV0IGEgYml0CisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMGI4IGFuZCAxLjAuMGI5Cis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogY2xlYW5seSBoYW5kbGUgYW5kIHJl
cG9ydCBmaW5hbCB0ZWFyZG93biBvZiB0ZXN0IHNldHVwCisKKyogZml4IHN2bi0xLjYgY29tcGF0
IGlzc3VlIHdpdGggcHkucGF0aC5zdm53YygpLnZlcnNpb25lZCgpCisgICh0aGFua3MgV291dGVy
IFZhbmRlbiBIb3ZlKQorCisqIHNldHVwL3RlYXJkb3duIG9yIGNvbGxlY3Rpb24gcHJvYmxlbXMg
bm93IHNob3cgYXMgRVJST1JzCisgIG9yIHdpdGggYmlnICJFIidzIGluIHRoZSBwcm9ncmVzcyBs
aW5lcy4gIHRoZXkgYXJlIHJlcG9ydGVkCisgIGFuZCBjb3VudGVkIHNlcGFyYXRlbHkuCisKKyog
ZGlzdC10ZXN0aW5nOiBwcm9wZXJseSBoYW5kbGUgdGVzdCBpdGVtcyB0aGF0IGdldCBsb2NhbGx5
CisgIGNvbGxlY3RlZCBidXQgY2Fubm90IGJlIGNvbGxlY3RlZCBvbiB0aGUgcmVtb3RlIHNpZGUg
LSBvZnRlbgorICBkdWUgdG8gcGxhdGZvcm0vZGVwZW5kZW5jeSByZWFzb25zCisKKyogc2ltcGxp
ZmllZCBweS50ZXN0Lm1hcmsgQVBJIC0gc2VlIGtleXdvcmQgcGx1Z2luIGRvY3VtZW50YXRpb24K
KworKiBpbnRlZ3JhdGUgYmV0dGVyIHdpdGggbG9nZ2luZzogY2FwdHVyaW5nIG5vdyBieSBkZWZh
dWx0IGNhcHR1cmVzCisgIHRlc3QgZnVuY3Rpb25zIGFuZCB0aGVpciBpbW1lZGlhdGUgc2V0dXAv
dGVhcmRvd24gaW4gYSBzaW5nbGUgc3RyZWFtCisKKyogY2Fwc3lzIGFuZCBjYXBmZCBmdW5jYXJn
cyBub3cgaGF2ZSBhIHJlYWRvdXRlcnIoKSBhbmQgYSBjbG9zZSgpIG1ldGhvZAorICAodW5kZXJs
eWluZ2x5IHB5LmlvLlN0ZENhcHR1cmUvRkQgb2JqZWN0cyBhcmUgdXNlZCB3aGljaCBncmV3IGEK
KyAgcmVhZG91dGVycigpIG1ldGhvZCBhcyB3ZWxsIHRvIHJldHVybiBzbmFwc2hvdHMgb2YgY2Fw
dHVyZWQgb3V0L2VycikKKworKiBtYWtlIGFzc2VydC1yZWludGVycHJldGF0aW9uIHdvcmsgYmV0
dGVyIHdpdGggY29tcGFyaXNvbnMgbm90CisgIHJldHVybmluZyBib29scyAocmVwb3J0ZWQgd2l0
aCBudW1weSBmcm9tIHRoYW5rcyBtYWNpZWogZmlqYWxrb3dza2kpCisKKyogcmV3b3JrZWQgcGVy
LXRlc3Qgb3V0cHV0IGNhcHR1cmluZyBpbnRvIHRoZSBweXRlc3RfaW9jYXB0dXJlLnB5IHBsdWdp
bgorICBhbmQgdGh1cyByZW1vdmVkIGNhcHR1cmluZyBjb2RlIGZyb20gY29uZmlnIG9iamVjdAor
CisqIGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8pIGluc3RlYWQgb2YgaXRlbS5yZXByX2ZhaWx1
cmUoZXhjaW5mbywgb3V0ZXJyKQorCisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMGI3IGFuZCAxLjAu
MGI4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcHl0ZXN0X3Vu
aXR0ZXN0LXBsdWdpbiBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0CisKKyogaW50cm9kdWNlZCBw
eXRlc3Rfa2V5Ym9hcmRpbnRlcnJ1cHQgaG9vayBhbmQKKyAgcmVmaW5lZCBweXRlc3Rfc2Vzc2lv
bmZpbmlzaCBob29rZWQsIGFkZGVkIHRlc3RzLgorCisqIHdvcmthcm91bmQgYSBidWdneSBsb2dn
aW5nIG1vZHVsZSBpbnRlcmFjdGlvbiAoImNsb3NpbmcgYWxyZWFkeSBjbG9zZWQKKyAgZmlsZXMi
KS4gIFRoYW5rcyB0byBTcmlkaGFyIFJhdG5ha3VtYXIgZm9yIHRyaWdnZXJpbmcuCisKKyogaWYg
cGx1Z2lucyB1c2UgInB5LnRlc3QuaW1wb3J0b3Jza2lwIiBmb3IgaW1wb3J0aW5nCisgIGEgZGVw
ZW5kZW5jeSBvbmx5IGEgd2FybmluZyB3aWxsIGJlIGlzc3VlZCBpbnN0ZWFkCisgIG9mIGV4aXRp
bmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4KKworKiBtYW55IGltcHJvdmVtZW50cyB0byBkb2NzOgor
ICAtIHJlZmluZWQgZnVuY2FyZ3MgZG9jICwgdXNlIHRoZSB0ZXJtICJmYWN0b3J5IiBpbnN0ZWFk
IG9mICJwcm92aWRlciIKKyAgLSBhZGRlZCBhIG5ldyB0YWxrL3R1dG9yaWFsIGRvYyBwYWdlCisg
IC0gYmV0dGVyIGRvd25sb2FkIHBhZ2UKKyAgLSBiZXR0ZXIgcGx1Z2luIGRvY3N0cmluZ3MKKyAg
LSBhZGRlZCBuZXcgcGx1Z2lucyBwYWdlIGFuZCBhdXRvbWF0aWMgZG9jIGdlbmVyYXRpb24gc2Ny
aXB0CisKKyogZml4ZWQgdGVhcmRvd24gcHJvYmxlbSByZWxhdGVkIHRvIHBhcnRpYWxseSBmYWls
aW5nIGZ1bmNhcmcgc2V0dXBzCisgICh0aGFua3MgTXJUb3BmIGZvciByZXBvcnRpbmcpLCAicHl0
ZXN0X3J1bnRlc3RfdGVhcmRvd24iIGlzIG5vdworICBhbHdheXMgaW52b2tlZCBldmVuIGlmIHRo
ZSAicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiIGZhaWxlZC4KKworKiB0d2Vha2VkIGRvY3Rlc3Qgb3V0
cHV0IGZvciBkb2NzdHJpbmdzIGluIHB5IG1vZHVsZXMsCisgIHRoYW5rcyBSYWRvbWlyLgorCitD
aGFuZ2VzIGJldHdlZW4gMS4wLjBiMyBhbmQgMS4wLjBiNworPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcmVuYW1lZCBweS50ZXN0LnhmYWlsIGJhY2sg
dG8gcHkudGVzdC5tYXJrLnhmYWlsIHRvIGF2b2lkCisgIHR3byB3YXlzIHRvIGRlY29yYXRlIGZv
ciB4ZmFpbAorCisqIHJlLWFkZGVkIHB5LnRlc3QubWFyayBkZWNvcmF0b3IgZm9yIHNldHRpbmcg
a2V5d29yZHMgb24gZnVuY3Rpb25zCisgIChpdCB3YXMgYWN0dWFsbHkgZG9jdW1lbnRlZCBzbyBy
ZW1vdmluZyBpdCB3YXMgbm90IG5pY2UpCisKKyogcmVtb3ZlIHNjb3BlLWFyZ3VtZW50IGZyb20g
cmVxdWVzdC5hZGRmaW5hbGl6ZXIoKSBiZWNhdXNlCisgIHJlcXVlc3QuY2FjaGVkX3NldHVwIGhh
cyB0aGUgc2NvcGUgYXJnLiBUT09XVERJLgorCisqIHBlcmZvcm0gc2V0dXAgZmluYWxpemF0aW9u
IGJlZm9yZSByZXBvcnRpbmcgZmFpbHVyZXMKKworKiBhcHBseSBtb2RpZmllZCBwYXRjaGVzIGZy
b20gQW5kcmVhcyBLbG9lY2tuZXIgdG8gYWxsb3cKKyAgdGVzdCBmdW5jdGlvbnMgdG8gaGF2ZSBu
byBmdW5jX2NvZGUgKCMyMikgYW5kIHRvIG1ha2UKKyAgIi1rIiBhbmQgZnVuY3Rpb24ga2V5d29y
ZHMgd29yayAgKCMyMCkKKworKiBhcHBseSBwYXRjaCBmcm9tIERhbmllbCBQZW9semxlaXRobmVy
IChpc3N1ZSAjMjMpCisKKyogcmVzb2x2ZSBpc3N1ZSAjMTgsIG11bHRpcHJvY2Vzc2luZy5NYW5h
Z2VyKCkgYW5kCisgIHJlZGlyZWN0aW9uIGNsYXNoCisKKyogbWFrZSBfX25hbWVfXyA9PSAiX19j
aGFubmVsZXhlY19fIiBmb3IgcmVtb3RlX2V4ZWMgY29kZQorCitDaGFuZ2VzIGJldHdlZW4gMS4w
LjBiMSBhbmQgMS4wLjBiMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKyogcGx1Z2luIGNsYXNzZXMgYXJlIHJlbW92ZWQ6IG9uZSBub3cgZGVmaW5lcwor
ICBob29rcyBkaXJlY3RseSBpbiBjb25mdGVzdC5weSBvciBnbG9iYWwgcHl0ZXN0XyoucHkKKyAg
ZmlsZXMuCisKKyogYWRkZWQgbmV3IHB5dGVzdF9uYW1lc3BhY2UoY29uZmlnKSBob29rIHRoYXQg
YWxsb3dzCisgIHRvIGluamVjdCBoZWxwZXJzIGRpcmVjdGx5IHRvIHRoZSBweS50ZXN0LiogbmFt
ZXNwYWNlLgorCisqIGRvY3VtZW50ZWQgYW5kIHJlZmluZWQgbWFueSBob29rcworCisqIGFkZGVk
IG5ldyBzdHlsZSBvZiBnZW5lcmF0aXZlIHRlc3RzIHZpYQorICBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMgaG9vayB0aGF0IGludGVncmF0ZXMKKyAgd2VsbCB3aXRoIGZ1bmN0aW9uIGFyZ3VtZW50cy4K
KworCitDaGFuZ2VzIGJldHdlZW4gMC45LjIgYW5kIDEuMC4wYjEKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGludHJvZHVjZWQgbmV3ICJmdW5jYXJn
IiBzZXR1cCBtZXRob2QsCisgIHNlZSBkb2MvdGVzdC9mdW5jYXJnLnR4dAorCisqIGludHJvZHVj
ZWQgcGx1Z2luIGFyY2hpdGVjdXR1cmUgYW5kIG1hbnkKKyAgbmV3IHB5LnRlc3QgcGx1Z2lucywg
c2VlCisgIGRvYy90ZXN0L3BsdWdpbnMudHh0CisKKyogdGVhcmRvd25fbWV0aG9kIGlzIG5vdyBn
dWFyYW50ZWVkIHRvIGdldAorICBjYWxsZWQgYWZ0ZXIgYSB0ZXN0IG1ldGhvZCBoYXMgcnVuLgor
CisqIG5ldyBtZXRob2Q6IHB5LnRlc3QuaW1wb3J0b3Jza2lwKG1vZCxtaW52ZXJzaW9uKQorICB3
aWxsIGVpdGhlciBpbXBvcnQgb3IgY2FsbCBweS50ZXN0LnNraXAoKQorCisqIGNvbXBsZXRlbHkg
cmV2aXNlZCBpbnRlcm5hbCBweS50ZXN0IGFyY2hpdGVjdHVyZQorCisqIG5ldyBweS5wcm9jZXNz
LkZvcmtlZEZ1bmMgb2JqZWN0IGFsbG93aW5nIHRvCisgIGZvcmsgZXhlY3V0aW9uIG9mIGEgZnVu
Y3Rpb24gdG8gYSBzdWIgcHJvY2VzcworICBhbmQgZ2V0dGluZyBhIHJlc3VsdCBiYWNrLgorCitY
WFggbG90cyBvZiB0aGluZ3MgbWlzc2luZyBoZXJlIFhYWAorCitDaGFuZ2VzIGJldHdlZW4gMC45
LjEgYW5kIDAuOS4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogcmVmaW5l
ZCBpbnN0YWxsYXRpb24gYW5kIG1ldGFkYXRhLCBjcmVhdGVkIG5ldyBzZXR1cC5weSwKKyAgbm93
IGJhc2VkIG9uIHNldHVwdG9vbHMvZXpfc2V0dXAgKHRoYW5rcyB0byBSYWxmIFNjaG1pdHQKKyAg
Zm9yIGhpcyBzdXBwb3J0KS4KKworKiBpbXByb3ZlZCB0aGUgd2F5IG9mIG1ha2luZyBweS4qIHNj
cmlwdHMgYXZhaWxhYmxlIGluCisgIHdpbmRvd3MgZW52aXJvbm1lbnRzLCB0aGV5IGFyZSBub3cg
YWRkZWQgdG8gdGhlCisgIFNjcmlwdHMgZGlyZWN0b3J5IGFzICIuY21kIiBmaWxlcy4KKworKiBw
eS5wYXRoLnN2bndjLnN0YXR1cygpIG5vdyBpcyBtb3JlIGNvbXBsZXRlIGFuZAorICB1c2VzIHht
bCBvdXRwdXQgZnJvbSB0aGUgJ3N2bicgY29tbWFuZCBpZiBhdmFpbGFibGUKKyAgKEd1aWRvIFdl
c2RvcnApCisKKyogZml4IGZvciBweS5wYXRoLnN2biogdG8gd29yayB3aXRoIHN2biAxLjUKKyAg
KENocmlzIExhbWIpCisKKyogZml4IHBhdGgucmVsdG8ob3RoZXJwYXRoKSBtZXRob2Qgb24gd2lu
ZG93cyB0bworICB1c2Ugbm9ybWNhc2UgZm9yIGNoZWNraW5nIGlmIGEgcGF0aCBpcyByZWxhdGl2
ZS4KKworKiBweS50ZXN0J3MgdHJhY2ViYWNrIGlzIGJldHRlciBwYXJzZWFibGUgZnJvbSBlZGl0
b3JzCisgIChmb2xsb3dzIHRoZSBmaWxlbmFtZXM6TElORU5POiBNU0cgY29udmVudGlvbikKKyAg
KHRoYW5rcyB0byBPc21vIFNhbG9tYWEpCisKKyogZml4IHRvIGphdmFzY3JpcHQtZ2VuZXJhdGlv
biwgInB5LnRlc3QgLS1ydW5icm93c2VyIgorICBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IG5v
dworCisqIHJlbW92ZWQgcHJldmlvdXNseSBhY2NpZGVudGFsbHkgYWRkZWQKKyAgcHkudGVzdC5i
cm9rZW4gYW5kIHB5LnRlc3Qubm90aW1wbGVtZW50ZWQgaGVscGVycy4KKworKiB0aGVyZSBub3cg
aXMgYSBweS5fX3ZlcnNpb25fXyBhdHRyaWJ1dGUKKworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4wIGFu
ZCAwLjkuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGlzIGlzIGEgZmFp
cmx5IGNvbXBsZXRlIGxpc3Qgb2YgY2hhbmdlcyBiZXR3ZWVuIDAuOSBhbmQgMC45LjEsIHdoaWNo
IGNhbgorc2VydmUgYXMgYSByZWZlcmVuY2UgZm9yIGRldmVsb3BlcnMuCisKKyogYWxsb3dpbmcg
KyBzaWducyBpbiBweS5wYXRoLnN2biB1cmxzIFszOTEwNl0KKyogZml4ZWQgc3VwcG9ydCBmb3Ig
RmFpbGVkIGV4Y2VwdGlvbnMgd2l0aG91dCBleGNpbmZvIGluIHB5LnRlc3QgWzM5MzQwXQorKiBh
ZGRlZCBzdXBwb3J0IGZvciBraWxsaW5nIHByb2Nlc3NlcyBmb3IgV2luZG93cyAoYXMgd2VsbCBh
cyBwbGF0Zm9ybXMgdGhhdAorICBzdXBwb3J0IG9zLmtpbGwpIGluIHB5Lm1pc2Mua2lsbHByb2Mg
WzM5NjU1XQorKiBhZGRlZCBzZXR1cC90ZWFyZG93biBmb3IgZ2VuZXJhdGl2ZSB0ZXN0cyB0byBw
eS50ZXN0IFs0MDcwMl0KKyogYWRkZWQgZGV0ZWN0aW9uIG9mIEZBSUxFRCBUTyBMT0FEIE1PRFVM
RSB0byBweS50ZXN0IFs0MDcwMywgNDA3MzgsIDQwNzM5XQorKiBmaXhlZCBwcm9ibGVtIHdpdGgg
Y2FsbGluZyAucmVtb3ZlKCkgb24gd2NwYXRocyBvZiBub24tdmVyc2lvbmVkIGZpbGVzIGluCisg
IHB5LnBhdGggWzQ0MjQ4XQorKiBmaXhlZCBzb21lIGltcG9ydCBhbmQgaW5oZXJpdGFuY2UgaXNz
dWVzIGluIHB5LnRlc3QgWzQxNDgwLCA0NDY0OCwgNDQ2NTVdCisqIGZhaWwgdG8gcnVuIGdyZWVu
bGV0IHRlc3RzIHdoZW4gcHlweSBpcyBhdmFpbGFibGUsIGJ1dCB3aXRob3V0IHN0YWNrbGVzcwor
ICBbNDUyOTRdCisqIHNtYWxsIGZpeGVzIGluIHJzZXNzaW9uIHRlc3RzIFs0NTI5NV0KKyogZml4
ZWQgaXNzdWUgd2l0aCAyLjUgdHlwZSByZXByZXNlbnRhdGlvbnMgaW4gcHkudGVzdCBbNDU0ODMs
IDQ1NDg0XQorKiBtYWRlIHRoYXQgaW50ZXJuYWwgcmVwb3J0aW5nIGlzc3VlcyBkaXNwbGF5aW5n
IGlzIGRvbmUgYXRvbWljYWxseSBpbiBweS50ZXN0CisgIFs0NTUxOF0KKyogbWFkZSB0aGF0IG5v
bi1leGlzdGluZyBmaWxlcyBhcmUgaWdvcmVkIGJ5IHRoZSBweS5sb29rdXAgc2NyaXB0IFs0NTUx
OV0KKyogaW1wcm92ZWQgZXhjZXB0aW9uIG5hbWUgY3JlYXRpb24gaW4gcHkudGVzdCBbNDU1MzVd
CisqIG1hZGUgdGhhdCBsZXNzIHRocmVhZHMgYXJlIHVzZWQgaW4gZXhlY25ldCBbbWVyZ2UgaW4g
NDU1MzldCisqIHJlbW92ZWQgbG9jayByZXF1aXJlZCBmb3IgYXRvbWljYWwgcmVwb3J0aW5nIGlz
c3VlIGRpc3BsYXlpbmcgaW4gcHkudGVzdAorICBbNDU1NDVdCisqIHJlbW92ZWQgZ2xvYmFscyBm
cm9tIGV4ZWNuZXQgWzQ1NTQxLCA0NTU0N10KKyogcmVmYWN0b3JlZCBjbGVhbnVwIG1lY2hhbmlj
cywgbWFkZSB0aGF0IHNldERhZW1vbiBpcyBzZXQgdG8gMSB0byBtYWtlIGF0ZXhpdAorICBnZXQg
Y2FsbGVkIGluIDIuNSAocHkuZXhlY25ldCkgWzQ1NTQ4XQorKiBmaXhlZCBidWcgaW4gam9pbmlu
ZyB0aHJlYWRzIGluIHB5LmV4ZWNuZXQncyBzZXJ2ZW1haW4gWzQ1NTQ5XQorKiByZWZhY3RvcmVk
IHB5LnRlc3QucnNlc3Npb24gdGVzdHMgdG8gbm90IHJlbHkgb24gZXhhY3Qgb3V0cHV0IGZvcm1h
dCBhbnltb3JlCisgIFs0NTY0Nl0KKyogdXNpbmcgcmVwcigpIG9uIHRlc3Qgb3V0Y29tZSBbNDU2
NDddCisqIGFkZGVkICdSZWFzb24nIGNsYXNzZXMgZm9yIHB5LnRlc3Quc2tpcCgpIFs0NTY0OCwg
NDU2NDldCisqIGtpbGxlZCBzb21lIHVubmVjZXNzYXJ5IHNhbml0eSBjaGVjayBpbiBweS50ZXN0
LmNvbGxlY3QgWzQ1NjU1XQorKiBhdm9pZCB1c2luZyBvcy50bXBmaWxlKCkgaW4gcHkuaW8uZmRj
YXB0dXJlIGJlY2F1c2Ugb24gV2luZG93cyBpdCdzIG9ubHkKKyAgdXNhYmxlIGJ5IEFkbWluaXN0
cmF0b3JzIFs0NTkwMV0KKyogYWRkZWQgc3VwcG9ydCBmb3IgbG9ja2luZyBhbmQgbm9uLXJlY3Vy
c2l2ZSBjb21taXRzIHRvIHB5LnBhdGguc3Zud2MgWzQ1OTk0XQorKiBsb2NraW5nIGZpbGVzIGlu
IHB5LmV4ZWNuZXQgdG8gcHJldmVudCBDUHl0aG9uIGZyb20gc2VnZmF1bHRpbmcgWzQ2MDEwXQor
KiBhZGRlZCBleHBvcnQoKSBtZXRob2QgdG8gcHkucGF0aC5zdm51cmwKKyogZml4ZWQgLWQgLXgg
aW4gcHkudGVzdCBbNDcyNzddCisqIGZpeGVkIGFyZ3VtZW50IGNvbmNhdGVuYXRpb24gcHJvYmxl
bSBpbiBweS5wYXRoLnN2bndjIFs0OTQyM10KKyogcmVzdG9yZSBweS50ZXN0IGJlaGF2aW91ciB0
aGF0IGl0IGV4aXRzIHdpdGggY29kZSAxIHdoZW4gdGhlcmUgYXJlIGZhaWx1cmVzCisgIFs0OTk3
NF0KKyogZG9uJ3QgZmFpbCBvbiBodG1sIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhbiBhY2NvbXBh
bnlpbmcgLnR4dCBmaWxlIFs1MDYwNl0KKyogZml4ZWQgJ3V0ZXN0Y29udmVydC5weSA8IGlucHV0
JyBbNTA2NDVdCisqIHNtYWxsIGZpeCBmb3IgY29kZSBpbmRlbnRhdGlvbiBpbiBweS5jb2RlLnNv
dXJjZSBbNTA3NTVdCisqIGZpeCBfZG9jZ2VuLnB5IGRvY3VtZW50YXRpb24gYnVpbGRpbmcgWzUx
Mjg1XQorKiBpbXByb3ZlZCBjaGVja3MgZm9yIHNvdXJjZSByZXByZXNlbnRhdGlvbiBvZiBjb2Rl
IGJsb2NrcyBpbiBweS50ZXN0IFs1MTI5Ml0KKyogYWRkZWQgc3VwcG9ydCBmb3IgcGFzc2luZyBh
dXRoZW50aWNhdGlvbiB0byBweS5wYXRoLnN2biogb2JqZWN0cyBbNTIwMDAsCisgIDUyMDAxXQor
KiByZW1vdmVkIHNvcnRlZCgpIGNhbGwgZm9yIHB5LmFwaWdlbiB0ZXN0cyBpbiBmYXZvdXIgb2Yg
W10uc29ydCgpIHRvIHN1cHBvcnQKKyAgUHl0aG9uIDIuMyBbNTI0ODFdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4xLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3JlbGVhc2UtMS4zLjEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWRlNDA4YTEwMGVlNTFlYjVlNjMy
NDZkNDI0ZjNiM2Q3NzQ5YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuMy4xLnR4dApAQCAtMCwwICsxLDEwNCBAQAorcHkudGVzdC9weWxpYiAxLjMu
MTogbmV3IHB5LnRlc3QueGZhaWwsIC0tbWF4ZmFpbCwgYmV0dGVyIHJlcG9ydGluZworPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK1RoZSBweWxpYi9weS50ZXN0IDEuMy4xIHJlbGVhc2UgYnJpbmdzOgor
CistIHRoZSBuZXcgaW1wZXJhdGl2ZSBgYHB5LnRlc3QueGZhaWwoKWBgIGhlbHBlciBpbiBvcmRl
ciB0byBoYXZlIGEgdGVzdCBvcgorICBzZXR1cCBmdW5jdGlvbiByZXN1bHQgaW4gYW4gImV4cGVj
dGVkIGZhaWx1cmUiCistIGEgbmV3IG9wdGlvbiBgYC0tbWF4ZmFpbD1OVU1gYCB0byBzdG9wIHRo
ZSB0ZXN0IHJ1biBhZnRlciBzb21lIGZhaWx1cmVzCistIG1hcmtlcnMvZGVjb3JhdG9ycyBhcmUg
bm93IGFwcGxpY2FibGUgdG8gdGVzdCBjbGFzc2VzICg+PVB5dGhvbjIuNikKKy0gaW1wcm92ZWQg
cmVwb3J0aW5nLCBzaG9ydGVyIHRyYWNlYmFja3MgaW4gc2V2ZXJhbCBjYXNlcworLSBzb21lIHNp
bXBsaWZpZWQgaW50ZXJuYWxzLCBtb3JlIGNvbXBhdGliaWxpdHkgd2l0aCBKeXRob24gYW5kIFB5
UHkKKy0gYnVnIGZpeGVzIGFuZCB2YXJpb3VzIHJlZmluZW1lbnRzCisKK1NlZSB0aGUgYmVsb3cg
Q0hBTkdFTE9HIGVudHJ5IGJlbG93IGZvciBtb3JlIGRldGFpbHMgYW5kCitodHRwOi8vcHlsaWIu
b3JnL2luc3RhbGwuaHRtbCBmb3IgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KKworSWYgeW91
IHVzZWQgb2xkZXIgdmVyc2lvbnMgb2YgcHkudGVzdCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gdXBn
cmFkZQordG8gMS4zLjEgd2l0aG91dCBjaGFuZ2VzIHRvIHlvdXIgdGVzdCBzb3VyY2UgY29kZS4K
KworcHkudGVzdCBpcyBhbiBhdXRvbWF0ZWQgdGVzdGluZyB0b29sIHdvcmtpbmcgd2l0aCBQeXRo
b24yLAorUHl0aG9uMywgSnl0aG9uIGFuZCBQeVB5IHZlcnNpb25zIG9uIGFsbCBtYWpvciBvcGVy
YXRpbmcgc3lzdGVtcy4gIEl0CitvZmZlcnMgYSBuby1ib2lsZXJwbGF0ZSB0ZXN0aW5nIGFwcHJv
YWNoIGFuZCBoYXMgaW5zcGlyZWQgb3RoZXIgdGVzdGluZwordG9vbHMgYW5kIGVuaGFuY2VtZW50
cyBpbiB0aGUgc3RhbmRhcmQgUHl0aG9uIGxpYnJhcnkgZm9yIG1vcmUgdGhhbiBmaXZlCit5ZWFy
cy4gIEl0IGhhcyBhIHNpbXBsZSBhbmQgZXh0ZW5zaXZlIHBsdWdpbiBhcmNoaXRlY3R1cmUsIGNv
bmZpZ3VyYWJsZQorcmVwb3J0aW5nIGFuZCBwcm92aWRlcyB1bmlxdWUgd2F5cyB0byBtYWtlIGl0
IGZpdCB0byB5b3VyIHRlc3RpbmcKK3Byb2Nlc3MgYW5kIG5lZWRzLgorCitTZWUgaHR0cDovL3B5
dGVzdC5vcmcgZm9yIG1vcmUgaW5mby4KKworY2hlZXJzIGFuZCBoYXZlIGZ1biwKKworaG9sZ2Vy
IGtyZWtlbAorCitDaGFuZ2VzIGJldHdlZW4gMS4zLjAgYW5kIDEuMy4xCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitOZXcgZmVhdHVyZXMKKysr
KysrKysrKysrKysrKysrKworCistIGlzc3VlOTE6IGludHJvZHVjZSBuZXcgcHkudGVzdC54ZmFp
bChyZWFzb24pIGhlbHBlcgorICB0byBpbXBlcmF0aXZlbHkgbWFyayBhIHRlc3QgYXMgZXhwZWN0
ZWQgdG8gZmFpbC4gQ2FuCisgIGJlIHVzZWQgZnJvbSB3aXRoaW4gc2V0dXAgYW5kIHRlc3QgZnVu
Y3Rpb25zLiBUaGlzIGlzCisgIHVzZWZ1bCBlc3BlY2lhbGx5IGZvciBwYXJhbWV0cml6ZWQgdGVz
dHMgd2hlbiBjZXJ0YWluCisgIGNvbmZpZ3VyYXRpb25zIGFyZSBleHBlY3RlZC10by1mYWlsLiAg
SW4gdGhpcyBjYXNlIHRoZQorICBkZWNsYXJhdGl2ZSBhcHByb2FjaCB3aXRoIHRoZSBAcHkudGVz
dC5tYXJrLnhmYWlsIGNhbm5vdAorICBiZSB1c2VkIGFzIGl0IHdvdWxkIG1hcmsgYWxsIGNvbmZp
Z3VyYXRpb25zIGFzIHhmYWlsLgorCistIGlzc3VlMTAyOiBpbnRyb2R1Y2UgbmV3IC0tbWF4ZmFp
bD1OVU0gb3B0aW9uIHRvIHN0b3AKKyAgdGVzdCBydW5zIGFmdGVyIE5VTSBmYWlsdXJlcy4gIFRo
aXMgaXMgYSBnZW5lcmFsaXphdGlvbgorICBvZiB0aGUgJy14JyBvciAnLS1leGl0Zmlyc3QnIG9w
dGlvbiB3aGljaCBpcyBub3cgZXF1aXZhbGVudAorICB0byAnLS1tYXhmYWlsPTEnLiAgQm90aCAn
LXgnIGFuZCAnLS1tYXhmYWlsJyB3aWxsCisgIG5vdyBhbHNvIHByaW50IGEgbGluZSBuZWFyIHRo
ZSBlbmQgaW5kaWNhdGluZyB0aGUgSW50ZXJydXB0aW9uLgorCistIGlzc3VlODk6IGFsbG93IHB5
LnRlc3QubWFyayBkZWNvcmF0b3JzIHRvIGJlIHVzZWQgb24gY2xhc3NlcworICAoY2xhc3MgZGVj
b3JhdG9ycyB3ZXJlIGludHJvZHVjZWQgd2l0aCBweXRob24yLjYpIGFuZAorICBhbHNvIGFsbG93
IHRvIGhhdmUgbXVsdGlwbGUgbWFya2VycyBhcHBsaWVkIGF0IGNsYXNzL21vZHVsZSBsZXZlbAor
ICBieSBzcGVjaWZ5aW5nIGEgbGlzdC4KKworLSBpbXByb3ZlIGFuZCByZWZpbmUgbGV0dGVyIHJl
cG9ydGluZyBpbiB0aGUgcHJvZ3Jlc3MgYmFyOgorICAuICBwYXNzCisgIGYgIGZhaWxlZCB0ZXN0
CisgIHMgIHNraXBwZWQgdGVzdHMgKHJlbWluZGVyOiB1c2UgZm9yIGRlcGVuZGVuY3kvcGxhdGZv
cm0gbWlzbWF0Y2ggb25seSkKKyAgeCAgeGZhaWxlZCB0ZXN0ICh0ZXN0IHRoYXQgd2FzIGV4cGVj
dGVkIHRvIGZhaWwpCisgIFggIHhwYXNzZWQgdGVzdCAodGVzdCB0aGF0IHdhcyBleHBlY3RlZCB0
byBmYWlsIGJ1dCBwYXNzZWQpCisKKyAgWW91IGNhbiB1c2UgYW55IGNvbWJpbmF0aW9uIG9mICdm
c3hYJyB3aXRoIHRoZSAnLXInIGV4dGVuZGVkCisgIHJlcG9ydGluZyBvcHRpb24uIFRoZSB4ZmFp
bC94cGFzcyByZXN1bHRzIHdpbGwgc2hvdyB1cCBhcworICBza2lwcGVkIHRlc3RzIGluIHRoZSBq
dW5pdHhtbCBvdXRwdXQgLSB3aGljaCBhbHNvIGZpeGVzCisgIGlzc3VlOTkuCisKKy0gbWFrZSBw
eS50ZXN0LmNtZGxpbmUubWFpbigpIHJldHVybiB0aGUgZXhpdHN0YXR1cyBpbnN0ZWFkIG9mIHJh
aXNpbmcKKyAgU3lzdGVtRXhpdCBhbmQgYWxzbyBhbGxvdyBpdCB0byBiZSBjYWxsZWQgbXVsdGlw
bGUgdGltZXMuICBUaGlzIG9mCisgIGNvdXJzZSByZXF1aXJlcyB0aGF0IHlvdXIgYXBwbGljYXRp
b24gYW5kIHRlc3RzIGFyZSBwcm9wZXJseSB0ZWFyZWQKKyAgZG93biBhbmQgZG9uJ3QgaGF2ZSBn
bG9iYWwgc3RhdGUuCisKK0ZpeGVzIC8gTWFpbnRlbmFuY2UKKysrKysrKysrKysrKysrKysrKysr
KysKKworLSBpbXByb3ZlZCB0cmFjZWJhY2sgcHJlc2VudGF0aW9uOgorICAtIGltcHJvdmVkIGFu
ZCB1bmlmaWVkIHJlcG9ydGluZyBmb3IgIi0tdGI9c2hvcnQiIG9wdGlvbgorICAtIEVycm9ycyBk
dXJpbmcgdGVzdCBtb2R1bGUgaW1wb3J0cyBhcmUgbXVjaCBzaG9ydGVyLCAodXNpbmcgLS10Yj1z
aG9ydCBzdHlsZSkKKyAgLSByYWlzZXMgc2hvd3Mgc2hvcnRlciBtb3JlIHJlbGV2YW50IHRyYWNl
YmFja3MKKyAgLSAtLWZ1bGx0cmFjZSBub3cgbW9yZSBzeXN0ZW1hdGljYWxseSBtYWtlcyB0cmFj
ZXMgbG9uZ2VyIC8gaW5oaWJpdHMgY3V0dGluZworCistIGltcHJvdmUgc3VwcG9ydCBmb3IgcmFp
c2VzIGFuZCBvdGhlciBkeW5hbWljYWxseSBjb21waWxlZCBjb2RlIGJ5CisgIG1hbmlwdWxhdGlu
ZyBweXRob24ncyBsaW5lY2FjaGUuY2FjaGUgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXMKKyAgcmF0
aGVyIGhhY2t5IHdheSBvZiBjcmVhdGluZyBjdXN0b20gY29kZSBvYmplY3RzLiAgVGhpcyBtYWtl
cworICBpdCBzZWVtbGVzc2x5IHdvcmsgb24gSnl0aG9uIGFuZCBQeVB5IHdoZXJlIGl0IHByZXZp
b3VzbHkgZGlkbid0LgorCistIGZpeCBpc3N1ZTk2OiBtYWtlIGNhcHR1cmluZyBtb3JlIHJlc2ls
aWVudCBhZ2FpbnN0IENvbnRyb2wtQworICBpbnRlcnJ1cHRpb25zIChpbnZvbHZlZCBzb21ld2hh
dCBzdWJzdGFudGlhbCByZWZhY3RvcmluZworICB0byB0aGUgdW5kZXJseWluZyBjYXB0dXJpbmcg
ZnVuY3Rpb25hbGl0eSB0byBhdm9pZCByYWNlCisgIGNvbmRpdGlvbnMpLgorCistIGZpeCBjaGFp
bmluZyBvZiBjb25kaXRpb25hbCBza2lwaWYveGZhaWwgZGVjb3JhdG9ycyAtIHNvIGl0IHdvcmtz
IG5vdworICBhcyBleHBlY3RlZCB0byB1c2UgbXVsdGlwbGUgQHB5LnRlc3QubWFyay5za2lwaWYo
Y29uZGl0aW9uKSBkZWNvcmF0b3JzLAorICBpbmNsdWRpbmcgc3BlY2lmaWMgcmVwb3J0aW5nIHdo
aWNoIG9mIHRoZSBjb25kaXRpb25zIGxlYWQgdG8gc2tpcHBpbmcuCisKKy0gZml4IGlzc3VlOTU6
IGxhdGUtaW1wb3J0IHpsaWIgc28gdGhhdCBpdCdzIG5vdCByZXF1aXJlZAorICBmb3IgZ2VuZXJh
bCBweS50ZXN0IHN0YXJ0dXAuCisKKy0gZml4IGlzc3VlOTQ6IG1ha2UgcmVwb3J0aW5nIG1vcmUg
cm9idXN0IGFnYWluc3QgYm9ndXMgc291cmNlIGNvZGUKKyAgKGFuZCBpbnRlcm5hbGx5IGJlIG1v
cmUgY2FyZWZ1bCB3aGVuIHByZXNlbnRpbmcgdW5leHBlY3RlZCBieXRlIHNlcXVlbmNlcykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMi50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4yLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTlkZmJlZDc1
NWY3ZGRlY2ZjMmE0YWUyZGMzNzYyMTdjZjMxMDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMi50eHQKQEAgLTAsMCArMSw3MjAgQEAKK3B5LnRl
c3QvcHlsaWIgMS4zLjI6IEFQSSBhbmQgcmVwb3J0aW5nIHJlZmluZW1lbnRzLCBtYW55IGZpeGVz
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5bGliL3B5LnRlc3QgMS4zLjIgcmVsZWFzZSBi
cmluZ3MgbWFueSBidWcgZml4ZXMgYW5kIHNvbWUgbmV3CitmZWF0dXJlcy4gIEl0IHdhcyByZWZp
bmVkIGZvciBhbmQgdGVzdGVkIGFnYWluc3QgdGhlIHJlY2VudGx5IHJlbGVhc2VkCitQeXRob24y
LjcgYW5kIHJlbWFpbnMgY29tcGF0aWJpbGUgdG8gdGhlIHVzdWFsIGFybWFkYSBvZiBpbnRlcnBy
ZXRlcnMKKyhQeXRob24yLjQgdGhyb3VnaCB0byBQeXRob24zLjEuMiwgSnl0aG9uIGFuZCBQeVB5
KS4gIE5vdGUgdGhhdCBmb3IgdXNpbmcKK2Rpc3RyaWJ1dGVkIHRlc3RpbmcgZmVhdHVyZXMgeW91
J2xsIG5lZWQgdG8gdXBncmFkZSB0byB0aGUgam9pbnRseSByZWxlYXNlZAorcHl0ZXN0LXhkaXN0
LTEuNCBiZWNhdXNlIG9mIHNvbWUgaW50ZXJuYWwgcmVmYWN0b3JpbmdzLgorCitTZWUgaHR0cDov
L3B5dGVzdC5vcmcgZm9yIGdlbmVyYWwgZG9jdW1lbnRhdGlvbiBhbmQgYmVsb3cgZm9yCithIGRl
dGFpbGVkIENIQU5HRUxPRy4KKworY2hlZXJzICYgcGFydGljdWxhciB0aGFua3MgdG8gQmVuamFt
aW4gUGV0ZXJzb24sIFJvbm55IFBmYW5uc2NobWlkdAorYW5kIGFsbCBpc3N1ZSBhbmQgcGF0Y2gg
Y29udHJpYnV0b3JzLAorCitob2xnZXIga3Jla2VsCisKK0NoYW5nZXMgYmV0d2VlbiAxLjMuMSBh
bmQgMS4zLjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK05ldyBmZWF0dXJlcworKysrKysrKysrKysrKysrKysrCisKKy0gZml4IGlzc3VlMTAz
OiAgaW50cm9kdWNlIHB5LnRlc3QucmFpc2VzIGFzIGNvbnRleHQgbWFuYWdlciwgZXhhbXBsZXM6
OgorCisgICAgd2l0aCBweS50ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAg
IHggPSAwCisgICAgICAgIDEgLyB4CisKKyAgICB3aXRoIHB5LnRlc3QucmFpc2VzKFJ1bnRpbWVF
cnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgY2FsbF9zb21ldGhpbmcoKQorCisgICAgIyB5b3Ug
bWF5IGRvIGV4dHJhIGNoZWNrcyBvbiBleGNpbmZvLnZhbHVlfHR5cGV8dHJhY2ViYWNrIGhlcmUK
KworICAodGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdCkKKworLSBGdW5jYXJnIGZhY3RvcmllcyBj
YW4gbm93IGR5bmFtaWNhbGx5IGFwcGx5IGEgbWFya2VyIHRvIGEKKyAgdGVzdCBpbnZvY2F0aW9u
LiAgVGhpcyBpcyBmb3IgZXhhbXBsZSB1c2VmdWwgaWYgYSBmYWN0b3J5CisgIHByb3ZpZGVzIHBh
cmFtZXRlcnMgdG8gYSB0ZXN0IHdoaWNoIGFyZSBleHBlY3RlZC10by1mYWlsOjoKKworICAgIGRl
ZiBweXRlc3RfZnVuY2FyZ19fYXJnKHJlcXVlc3QpOgorICAgICAgICByZXF1ZXN0LmFwcGx5bWFy
a2VyKHB5LnRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IGNvbmZpZyIpKQorICAgICAgICAu
Li4KKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAgICAgIC4uLgorCistIGltcHJv
dmVkIGVycm9yIHJlcG9ydGluZyBvbiBjb2xsZWN0aW9uIGFuZCBpbXBvcnQgZXJyb3JzLiBUaGlz
IG1ha2VzCisgIHVzZSBvZiBhIG1vcmUgZ2VuZXJhbCBtZWNoYW5pc20sIG5hbWVseSB0aGF0IGZv
ciBjdXN0b20gdGVzdCBpdGVtL2NvbGxlY3QKKyAgbm9kZXMgYGBub2RlLnJlcHJfZmFpbHVyZShl
eGNpbmZvKWBgIGlzIG5vdyB1bmlmb3JtbHkgY2FsbGVkIHNvIHRoYXQgeW91IGNhbgorICBvdmVy
cmlkZSBpdCB0byByZXR1cm4gYSBzdHJpbmcgZXJyb3IgcmVwcmVzZW50YXRpb24gb2YgeW91ciBj
aG9pY2UKKyAgd2hpY2ggaXMgZ29pbmcgdG8gYmUgcmVwb3J0ZWQgYXMgYSAocmVkKSBzdHJpbmcu
CisKKy0gaW50cm9kdWNlICctLWp1bml0cHJlZml4PVNUUicgb3B0aW9uIHRvIHByZXBlbmQgYSBw
cmVmaXgKKyAgdG8gYWxsIHJlcG9ydHMgaW4gdGhlIGp1bml0eG1sIGZpbGUuCisKK0J1ZyBmaXhl
cyAvIE1haW50ZW5hbmNlCisrKysrKysrKysrKysrKysrKysrKysrKysrKworCistIG1ha2UgdGVz
dHMgYW5kIHRoZSBgYHB5dGVzdF9yZWN3YXJuYGAgcGx1Z2luIGluIHBhcnRpY3VsYXIgZnVsbHkg
Y29tcGF0aWJsZQorICB0byBQeXRob24yLjcgKGlmIHlvdSB1c2UgdGhlIGBgcmVjd2FybmBgIGZ1
bmNhcmcgd2FybmluZ3Mgd2lsbCBiZSBlbmFibGVkIHNvIHRoYXQKKyAgeW91IGNhbiBwcm9wZXJs
eSBjaGVjayBmb3IgdGhlaXIgZXhpc3RlbmNlIGluIGEgY3Jvc3MtcHl0aG9uIG1hbm5lcikuCist
IHJlZmluZSAtLXBkYjogaWdub3JlIHhmYWlsZWQgdGVzdHMsIHVuaWZ5IGl0cyBUQi1yZXBvcnRp
bmcgYW5kCisgIGRvbid0IGRpc3BsYXkgZmFpbHVyZXMgYWdhaW4gYXQgdGhlIGVuZC4KKy0gZml4
IGFzc2VydGlvbiBpbnRlcnByZXRhdGlvbiB3aXRoIHRoZSAqKiBvcGVyYXRvciAodGhhbmtzIEJl
bmphbWluIFBldGVyc29uKQorLSBmaXggaXNzdWUxMDUgYXNzaWdubWVudCBvbiB0aGUgc2FtZSBs
aW5lIGFzIGEgZmFpbGluZyBhc3NlcnRpb24gKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKy0g
Zml4IGlzc3VlMTA0IHByb3BlciBlc2NhcGluZyBmb3IgdGVzdCBuYW1lcyBpbiBqdW5pdHhtbCBw
bHVnaW4gKHRoYW5rcyBhbm9ueW1vdXMpCistIGZpeCBpc3N1ZTU3IC1mfC0tbG9vcG9uZmFpbCB0
byB3b3JrIHdpdGggeHBhc3NpbmcgdGVzdHMgKHRoYW5rcyBSb25ueSkKKy0gZml4IGlzc3VlOTIg
Y29sbGVjdG9ubHkgcmVwb3J0ZXIgYW5kIC0tcGFzdGViaW4gKHRoYW5rcyBCZW5qYW1pbiBQZXRl
cnNvbikKKy0gZml4IHB5LmNvZGUuY29tcGlsZShzb3VyY2UpIHRvIGdlbmVyYXRlIHVuaXF1ZSBm
aWxlbmFtZXMKKy0gZml4IGFzc2VydGlvbiByZS1pbnRlcnAgcHJvYmxlbXMgb24gUHlQeSwgYnkg
ZGVmZXJpbmcgY29kZQorICBjb21waWxhdGlvbiB0byB0aGUgKG92ZXJyaWRhYmxlKSBGcmFtZS5l
dmFsIGNsYXNzLiAodGhhbmtzIEFtYXVyeSBGb3JnZW90KQorLSBmaXggcHkucGF0aC5sb2NhbC5w
eWltcG9ydCgpIHRvIHdvcmsgd2l0aCBkaXJlY3RvcmllcworLSBzdHJlYW1saW5lIHB5LnBhdGgu
bG9jYWwubWtkdGVtcCBpbXBsZW1lbnRhdGlvbiBhbmQgdXNhZ2UKKy0gZG9uJ3QgcHJpbnQgZW1w
dHkgbGluZXMgd2hlbiBzaG93aW5nIGp1bml0eG1sLWZpbGVuYW1lCistIGFkZCBvcHRpb25hbCBi
b29sZWFuIGlnbm9yZV9lcnJvcnMgcGFyYW1ldGVyIHRvIHB5LnBhdGgubG9jYWwucmVtb3ZlCist
IGZpeCB0ZXJtaW5hbCB3cml0aW5nIG9uIHdpbjMyL3B5dGhvbjIuNAorLSBweS5wcm9jZXNzLmNt
ZGV4ZWMoKSBub3cgdHJpZXMgaGFyZGVyIHRvIHJldHVybiBwcm9wZXJseSBlbmNvZGVkIHVuaWNv
ZGUgb2JqZWN0cworICBvbiBhbGwgcHl0aG9uIHZlcnNpb25zCistIGluc3RhbGwgcGxhaW4gcHku
dGVzdC9weS53aGljaCBzY3JpcHRzIGFsc28gZm9yIEp5dGhvbiwgdGhpcyBoZWxwcyB0bworICBn
ZXQgY2Fub25pY2FsIHNjcmlwdCBwYXRocyBpbiB2aXJ0dWFsZW52IHNpdHVhdGlvbnMKKy0gbWFr
ZSBwYXRoLmJlc3RyZWxwYXRoKHBhdGgpIHJldHVybiAiLiIsIG5vdGUgdGhhdCB3aGVuIGNhbGxp
bmcKKyAgWC5iZXN0cmVscGF0aCB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IFggaXMgYSBkaXJlY3Rv
cnkuCistIG1ha2UgaW5pdGlhbCBjb25mdGVzdCBkaXNjb3ZlcnkgaWdub3JlICItLSIgcHJlZml4
ZWQgYXJndW1lbnRzCistIGZpeCByZXN1bHRsb2cgcGx1Z2luIHdoZW4gdXNlZCBpbiBhbiBtdWx0
aWNwdS9tdWx0aWhvc3QgeGRpc3Qgc2l0dWF0aW9uCisgICh0aGFua3MgSmFrdWIgR3VzdGFrKQor
LSBwZXJmb3JtIGRpc3RyaWJ1dGVkIHRlc3RpbmcgcmVsYXRlZCByZXBvcnRpbmcgaW4gdGhlIHhk
aXN0LXBsdWdpbgorICByYXRoZXIgdGhhbiBoYXZpbmcgZGlzdC1yZWxhdGVkIGNvZGUgaW4gdGhl
IGdlbmVyaWMgcHkudGVzdAorICBkaXN0cmlidXRpb24KKy0gZml4IGhvbWVkaXIgZGV0ZWN0aW9u
IG9uIFdpbmRvd3MKKy0gc2hpcCBkaXN0cmlidXRlX3NldHVwLnB5IHZlcnNpb24gMC42LjEzCisK
K0NoYW5nZXMgYmV0d2VlbiAxLjMuMCBhbmQgMS4zLjEKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK05ldyBmZWF0dXJlcworKysrKysrKysrKysr
KysrKysrCisKKy0gaXNzdWU5MTogaW50cm9kdWNlIG5ldyBweS50ZXN0LnhmYWlsKHJlYXNvbikg
aGVscGVyCisgIHRvIGltcGVyYXRpdmVseSBtYXJrIGEgdGVzdCBhcyBleHBlY3RlZCB0byBmYWls
LiBDYW4KKyAgYmUgdXNlZCBmcm9tIHdpdGhpbiBzZXR1cCBhbmQgdGVzdCBmdW5jdGlvbnMuIFRo
aXMgaXMKKyAgdXNlZnVsIGVzcGVjaWFsbHkgZm9yIHBhcmFtZXRyaXplZCB0ZXN0cyB3aGVuIGNl
cnRhaW4KKyAgY29uZmlndXJhdGlvbnMgYXJlIGV4cGVjdGVkLXRvLWZhaWwuICBJbiB0aGlzIGNh
c2UgdGhlCisgIGRlY2xhcmF0aXZlIGFwcHJvYWNoIHdpdGggdGhlIEBweS50ZXN0Lm1hcmsueGZh
aWwgY2Fubm90CisgIGJlIHVzZWQgYXMgaXQgd291bGQgbWFyayBhbGwgY29uZmlndXJhdGlvbnMg
YXMgeGZhaWwuCisKKy0gaXNzdWUxMDI6IGludHJvZHVjZSBuZXcgLS1tYXhmYWlsPU5VTSBvcHRp
b24gdG8gc3RvcAorICB0ZXN0IHJ1bnMgYWZ0ZXIgTlVNIGZhaWx1cmVzLiAgVGhpcyBpcyBhIGdl
bmVyYWxpemF0aW9uCisgIG9mIHRoZSAnLXgnIG9yICctLWV4aXRmaXJzdCcgb3B0aW9uIHdoaWNo
IGlzIG5vdyBlcXVpdmFsZW50CisgIHRvICctLW1heGZhaWw9MScuICBCb3RoICcteCcgYW5kICct
LW1heGZhaWwnIHdpbGwKKyAgbm93IGFsc28gcHJpbnQgYSBsaW5lIG5lYXIgdGhlIGVuZCBpbmRp
Y2F0aW5nIHRoZSBJbnRlcnJ1cHRpb24uCisKKy0gaXNzdWU4OTogYWxsb3cgcHkudGVzdC5tYXJr
IGRlY29yYXRvcnMgdG8gYmUgdXNlZCBvbiBjbGFzc2VzCisgIChjbGFzcyBkZWNvcmF0b3JzIHdl
cmUgaW50cm9kdWNlZCB3aXRoIHB5dGhvbjIuNikgYW5kCisgIGFsc28gYWxsb3cgdG8gaGF2ZSBt
dWx0aXBsZSBtYXJrZXJzIGFwcGxpZWQgYXQgY2xhc3MvbW9kdWxlIGxldmVsCisgIGJ5IHNwZWNp
ZnlpbmcgYSBsaXN0LgorCistIGltcHJvdmUgYW5kIHJlZmluZSBsZXR0ZXIgcmVwb3J0aW5nIGlu
IHRoZSBwcm9ncmVzcyBiYXI6CisgIC4gIHBhc3MKKyAgZiAgZmFpbGVkIHRlc3QKKyAgcyAgc2tp
cHBlZCB0ZXN0cyAocmVtaW5kZXI6IHVzZSBmb3IgZGVwZW5kZW5jeS9wbGF0Zm9ybSBtaXNtYXRj
aCBvbmx5KQorICB4ICB4ZmFpbGVkIHRlc3QgKHRlc3QgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gZmFp
bCkKKyAgWCAgeHBhc3NlZCB0ZXN0ICh0ZXN0IHRoYXQgd2FzIGV4cGVjdGVkIHRvIGZhaWwgYnV0
IHBhc3NlZCkKKworICBZb3UgY2FuIHVzZSBhbnkgY29tYmluYXRpb24gb2YgJ2ZzeFgnIHdpdGgg
dGhlICctcicgZXh0ZW5kZWQKKyAgcmVwb3J0aW5nIG9wdGlvbi4gVGhlIHhmYWlsL3hwYXNzIHJl
c3VsdHMgd2lsbCBzaG93IHVwIGFzCisgIHNraXBwZWQgdGVzdHMgaW4gdGhlIGp1bml0eG1sIG91
dHB1dCAtIHdoaWNoIGFsc28gZml4ZXMKKyAgaXNzdWU5OS4KKworLSBtYWtlIHB5LnRlc3QuY21k
bGluZS5tYWluKCkgcmV0dXJuIHRoZSBleGl0c3RhdHVzIGluc3RlYWQgb2YgcmFpc2luZworICBT
eXN0ZW1FeGl0IGFuZCBhbHNvIGFsbG93IGl0IHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4g
IFRoaXMgb2YKKyAgY291cnNlIHJlcXVpcmVzIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBhbmQgdGVz
dHMgYXJlIHByb3Blcmx5IHRlYXJlZAorICBkb3duIGFuZCBkb24ndCBoYXZlIGdsb2JhbCBzdGF0
ZS4KKworRml4ZXMgLyBNYWludGVuYW5jZQorKysrKysrKysrKysrKysrKysrKysrKworCistIGlt
cHJvdmVkIHRyYWNlYmFjayBwcmVzZW50YXRpb246CisgIC0gaW1wcm92ZWQgYW5kIHVuaWZpZWQg
cmVwb3J0aW5nIGZvciAiLS10Yj1zaG9ydCIgb3B0aW9uCisgIC0gRXJyb3JzIGR1cmluZyB0ZXN0
IG1vZHVsZSBpbXBvcnRzIGFyZSBtdWNoIHNob3J0ZXIsICh1c2luZyAtLXRiPXNob3J0IHN0eWxl
KQorICAtIHJhaXNlcyBzaG93cyBzaG9ydGVyIG1vcmUgcmVsZXZhbnQgdHJhY2ViYWNrcworICAt
IC0tZnVsbHRyYWNlIG5vdyBtb3JlIHN5c3RlbWF0aWNhbGx5IG1ha2VzIHRyYWNlcyBsb25nZXIg
LyBpbmhpYml0cyBjdXR0aW5nCisKKy0gaW1wcm92ZSBzdXBwb3J0IGZvciByYWlzZXMgYW5kIG90
aGVyIGR5bmFtaWNhbGx5IGNvbXBpbGVkIGNvZGUgYnkKKyAgbWFuaXB1bGF0aW5nIHB5dGhvbidz
IGxpbmVjYWNoZS5jYWNoZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cworICByYXRoZXIgaGFja3kg
d2F5IG9mIGNyZWF0aW5nIGN1c3RvbSBjb2RlIG9iamVjdHMuICBUaGlzIG1ha2VzCisgIGl0IHNl
ZW1sZXNzbHkgd29yayBvbiBKeXRob24gYW5kIFB5UHkgd2hlcmUgaXQgcHJldmlvdXNseSBkaWRu
J3QuCisKKy0gZml4IGlzc3VlOTY6IG1ha2UgY2FwdHVyaW5nIG1vcmUgcmVzaWxpZW50IGFnYWlu
c3QgQ29udHJvbC1DCisgIGludGVycnVwdGlvbnMgKGludm9sdmVkIHNvbWV3aGF0IHN1YnN0YW50
aWFsIHJlZmFjdG9yaW5nCisgIHRvIHRoZSB1bmRlcmx5aW5nIGNhcHR1cmluZyBmdW5jdGlvbmFs
aXR5IHRvIGF2b2lkIHJhY2UKKyAgY29uZGl0aW9ucykuCisKKy0gZml4IGNoYWluaW5nIG9mIGNv
bmRpdGlvbmFsIHNraXBpZi94ZmFpbCBkZWNvcmF0b3JzIC0gc28gaXQgd29ya3Mgbm93CisgIGFz
IGV4cGVjdGVkIHRvIHVzZSBtdWx0aXBsZSBAcHkudGVzdC5tYXJrLnNraXBpZihjb25kaXRpb24p
IGRlY29yYXRvcnMsCisgIGluY2x1ZGluZyBzcGVjaWZpYyByZXBvcnRpbmcgd2hpY2ggb2YgdGhl
IGNvbmRpdGlvbnMgbGVhZCB0byBza2lwcGluZy4KKworLSBmaXggaXNzdWU5NTogbGF0ZS1pbXBv
cnQgemxpYiBzbyB0aGF0IGl0J3Mgbm90IHJlcXVpcmVkCisgIGZvciBnZW5lcmFsIHB5LnRlc3Qg
c3RhcnR1cC4KKworLSBmaXggaXNzdWU5NDogbWFrZSByZXBvcnRpbmcgbW9yZSByb2J1c3QgYWdh
aW5zdCBib2d1cyBzb3VyY2UgY29kZQorICAoYW5kIGludGVybmFsbHkgYmUgbW9yZSBjYXJlZnVs
IHdoZW4gcHJlc2VudGluZyB1bmV4cGVjdGVkIGJ5dGUgc2VxdWVuY2VzKQorCisKK0NoYW5nZXMg
YmV0d2VlbiAxLjIuMSBhbmQgMS4zLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKy0gZGVwcmVjYXRlIC0tcmVwb3J0IG9wdGlvbiBpbiBmYXZv
dXIgb2YgYSBuZXcgc2hvcnRlciBhbmQgZWFzaWVyIHRvCisgIHJlbWVtYmVyIC1yIG9wdGlvbjog
aXQgdGFrZXMgYSBzdHJpbmcgYXJndW1lbnQgY29uc2lzdGluZyBvZiBhbnkKKyAgY29tYmluYXRp
b24gb2YgJ3hmc1gnIGNoYXJhY3RlcnMuICBUaGV5IHJlbGF0ZSB0byB0aGUgc2luZ2xlIGNoYXJz
CisgIHlvdSBzZWUgZHVyaW5nIHRoZSBkb3R0ZWQgcHJvZ3Jlc3MgcHJpbnRpbmcgYW5kIHdpbGwg
cHJpbnQgYW4gZXh0cmEgbGluZQorICBwZXIgdGVzdCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHJ1
bi4gIFRoaXMgZXh0cmEgbGluZSBpbmRpY2F0ZXMgdGhlIGV4YWN0CisgIHBvc2l0aW9uIG9yIHRl
c3QgSUQgdGhhdCB5b3UgZGlyZWN0bHkgcGFzdGUgdG8gdGhlIHB5LnRlc3QgY21kbGluZSBpbiBv
cmRlcgorICB0byByZS1ydW4gYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0gYWxsb3cgZXh0ZXJuYWwg
cGx1Z2lucyB0byByZWdpc3RlciBuZXcgaG9va3MgdmlhIHRoZSBuZXcKKyAgcHl0ZXN0X2FkZGhv
b2tzKHBsdWdpbm1hbmFnZXIpIGhvb2suICBUaGUgbmV3IHJlbGVhc2Ugb2YKKyAgdGhlIHB5dGVz
dC14ZGlzdCBwbHVnaW4gZm9yIGRpc3RyaWJ1dGVkIGFuZCBsb29wb25mYWlsaW5nCisgIHRlc3Rp
bmcgcmVxdWlyZXMgdGhpcyBmZWF0dXJlLgorCistIGFkZCBhIG5ldyBweXRlc3RfaWdub3JlX2Nv
bGxlY3QocGF0aCwgY29uZmlnKSBob29rIHRvIGFsbG93IHByb2plY3RzIGFuZAorICBwbHVnaW5z
IHRvIGRlZmluZSBleGNsdXNpb24gYmVoYXZpb3VyIGZvciB0aGVpciBkaXJlY3Rvcnkgc3RydWN0
dXJlIC0KKyAgZm9yIGV4YW1wbGUgeW91IG1heSBkZWZpbmUgaW4gYSBjb25mdGVzdC5weSB0aGlz
IG1ldGhvZDo6CisKKyAgICAgICAgZGVmIHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoKToKKyAg
ICAgICAgICAgIHJldHVybiBwYXRoLmNoZWNrKGxpbms9MSkKKworICB0byBwcmV2ZW50IGV2ZW4g
YSBjb2xsZWN0aW9uIHRyeSBvZiBhbnkgdGVzdHMgaW4gc3ltbGlua2VkIGRpcnMuCisKKy0gbmV3
IHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpIGhvb2sgZm9yCisgIGFs
bG93aW5nIGN1c3RvbWl6YXRpb24gb2YgdGhlIE1vZHVsZSBjb2xsZWN0aW9uIG9iamVjdCBmb3Ig
YQorICBtYXRjaGluZyB0ZXN0IG1vZHVsZS4KKworLSBleHRlbmQgYW5kIHJlZmluZSB4ZmFpbCBt
ZWNoYW5pc206CisgIGBgQHB5LnRlc3QubWFyay54ZmFpbChydW49RmFsc2UpYGAgZG8gbm90IHJ1
biB0aGUgZGVjb3JhdGVkIHRlc3QKKyAgYGBAcHkudGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iLi4u
IilgYCBwcmludHMgdGhlIHJlYXNvbiBzdHJpbmcgaW4geGZhaWwgc3VtbWFyaWVzCisgIHNwZWNp
Zml5aW5nIGBgLS1ydW54ZmFpbGBgIG9uIGNvbW1hbmQgbGluZSB2aXJ0dWFsbHkgaWdub3JlcyB4
ZmFpbCBtYXJrZXJzCisKKy0gZXhwb3NlIChwcmV2aW91c2x5IGludGVybmFsKSBjb21tb25seSB1
c2VmdWwgbWV0aG9kczoKKyAgcHkuaW8uZ2V0X3Rlcm1pbmFsX3dpdGgoKSAtPiByZXR1cm4gdGVy
bWluYWwgd2lkdGgKKyAgcHkuaW8uYW5zaV9wcmludCguLi4pIC0+IHByaW50IGNvbG9yZWQvYm9s
ZCB0ZXh0IG9uIGxpbnV4L3dpbjMyCisgIHB5LmlvLnNhZmVyZXByKG9iaikgLT4gcmV0dXJuIGxp
bWl0ZWQgcmVwcmVzZW50YXRpb24gc3RyaW5nCisKKy0gZXhwb3NlIHRlc3Qgb3V0Y29tZSByZWxh
dGVkIGV4Y2VwdGlvbnMgYXMgcHkudGVzdC5za2lwLkV4Y2VwdGlvbiwKKyAgcHkudGVzdC5yYWlz
ZXMuRXhjZXB0aW9uIGV0Yy4sIHVzZWZ1bCBtb3N0bHkgZm9yIHBsdWdpbnMKKyAgZG9pbmcgc3Bl
Y2lhbCBvdXRjb21lIGludGVycHJldGF0aW9uL3R3ZWFraW5nCisKKy0gKGlzc3VlODUpIGZpeCBq
dW5pdHhtbCBwbHVnaW4gdG8gaGFuZGxlIHRlc3RzIHdpdGggbm9uLWFzY2lpIG91dHB1dAorCist
IGZpeC9yZWZpbmUgcHl0aG9uMyBjb21wYXRpYmlsaXR5ICh0aGFua3MgQmVuamFtaW4gUGV0ZXJz
b24pCisKKy0gZml4ZXMgZm9yIG1ha2luZyB0aGUganl0aG9uL3dpbjMyIGNvbWJpbmF0aW9uIHdv
cmssIG5vdGUgaG93ZXZlcjoKKyAganl0aG9uMi41LjEvd2luMzIgZG9lcyBub3QgcHJvdmlkZSBh
IGNvbW1hbmQgbGluZSBsYXVuY2hlciwgc2VlCisgIGh0dHA6Ly9idWdzLmp5dGhvbi5vcmcvaXNz
dWUxNDkxIC4gU2VlIHB5bGliIGluc3RhbGwgZG9jdW1lbnRhdGlvbgorICBmb3IgaG93IHRvIHdv
cmsgYXJvdW5kLgorCistIGZpeGVzIGZvciBoYW5kbGluZyBvZiB1bmljb2RlIGV4Y2VwdGlvbiB2
YWx1ZXMgYW5kIHVucHJpbnRhYmxlIG9iamVjdHMKKworLSAoaXNzdWU4NykgZml4IHVuYm91bmRs
b2NhbCBlcnJvciBpbiBhc3NlcnRpb25vbGQgY29kZQorCistIChpc3N1ZTg2KSBpbXByb3ZlIGRv
Y3VtZW50YXRpb24gZm9yIGxvb3BvbmZhaWxpbmcKKworLSByZWZpbmUgSU8gY2FwdHVyaW5nOiBz
dGRpbi1yZWRpcmVjdCBwc2V1ZG8tZmlsZSBub3cgaGFzIGEgTk9QIGNsb3NlKCkgbWV0aG9kCisK
Ky0gc2hpcCBkaXN0cmlidXRlX3NldHVwLnB5IHZlcnNpb24gMC42LjEwCisKKy0gYWRkZWQgbGlu
a3MgdG8gdGhlIG5ldyBjYXB0dXJlbG9nIGFuZCBjb3ZlcmFnZSBwbHVnaW5zCisKKworQ2hhbmdl
cyBiZXR3ZWVuIDEuMi4xIGFuZCAxLjIuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCistIHJlZmluZWQgdXNhZ2UgYW5kIG9wdGlvbnMgZm9yICJweS5jbGVhbnVwIjo6
CisKKyAgICBweS5jbGVhbnVwICAgICAjIHJlbW92ZSAiKi5weWMiIGFuZCAiKiRweS5jbGFzcyIg
KGp5dGhvbikgZmlsZXMKKyAgICBweS5jbGVhbnVwIC1lIC5zd3AgLWUgLmNhY2hlICMgYWxzbyBy
ZW1vdmUgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zCisgICAgcHkuY2xlYW51cCAtcyAgIyBy
ZW1vdmUgImJ1aWxkIiBhbmQgImRpc3QiIGRpcmVjdG9yeSBuZXh0IHRvIHNldHVwLnB5IGZpbGVz
CisgICAgcHkuY2xlYW51cCAtZCAgIyBhbHNvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworICAg
IHB5LmNsZWFudXAgLWEgICMgc3lub255bSBmb3IgIi1zIC1kIC1lICdwaXAtbG9nLnR4dCciCisg
ICAgcHkuY2xlYW51cCAtbiAgIyBkcnkgcnVuLCBvbmx5IHNob3cgd2hhdCB3b3VsZCBiZSByZW1v
dmVkCisKKy0gYWRkIGEgbmV3IG9wdGlvbiAicHkudGVzdCAtLWZ1bmNhcmdzIiB3aGljaCBzaG93
cyBhdmFpbGFibGUgZnVuY2FyZ3MKKyAgYW5kIHRoZWlyIGhlbHAgc3RyaW5ncyAoZG9jc3RyaW5n
cyBvbiB0aGVpciByZXNwZWN0aXZlIGZhY3RvcnkgZnVuY3Rpb24pCisgIGZvciBhIGdpdmVuIHRl
c3QgcGF0aAorCistIGRpc3BsYXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sgaWYgYSBm
dW5jYXJnIGxvb2t1cCBmYWlscworCistIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBmaWxlcyBp
biBub24tZG90IGZpcnN0LWxldmVsIHN1YiBkaXJlY3Rvcmllcy4KKyAgYWxsb3dzIHRvIGNvbnZl
bmllbnRseSBrZWVwIGFuZCBhY2Nlc3MgdGVzdC1yZWxhdGVkIG9wdGlvbnMgaW4gYSBgYHRlc3Rg
YAorICBzdWJkaXIgYW5kIHN0aWxsIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKworLSBmaXgg
aXNzdWU2NzogbmV3IHN1cGVyLXNob3J0IHRyYWNlYmFjay1wcmludGluZyBvcHRpb246ICItLXRi
PWxpbmUiIHdpbGwgcHJpbnQgYSBzaW5nbGUgbGluZSBmb3IgZWFjaCBmYWlsaW5nIChweXRob24p
IHRlc3QgaW5kaWNhdGluZyBpdHMgZmlsZW5hbWUsIGxpbmVubyBhbmQgdGhlIGZhaWx1cmUgdmFs
dWUKKworLSBmaXggaXNzdWU3ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVsIHRlYXJkb3duIGZ1
bmN0aW9ucyBldmVuIGlmIHRoZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVkLiAgVGhpcyBpbmNs
dWRlcyByZWZpbmVtZW50cyBmb3IgY2FsbGluZyBzZXR1cF9tb2R1bGUvY2xhc3MgZnVuY3Rpb25z
CisgIHdoaWNoIHdpbGwgbm93IG9ubHkgYmUgY2FsbGVkIG9uY2UgaW5zdGVhZCBvZiB0aGUgcHJl
dmlvdXMgYmVoYXZpb3VyIHdoZXJlIHRoZXknZCBiZSBjYWxsZWQKKyAgbXVsdGlwbGUgdGltZXMg
aWYgdGhleSByYWlzZSBhbiBleGNlcHRpb24gKGluY2x1ZGluZyBhIFNraXBwZWQgZXhjZXB0aW9u
KS4gIEFueSBleGNlcHRpb24KKyAgd2lsbCBiZSByZS1jb3JkZWQgYW5kIGFzc29jaWF0ZWQgd2l0
aCBhbGwgdGVzdHMgaW4gdGhlIGFjY29yZGluZyBtb2R1bGUvY2xhc3Mgc2NvcGUuCisKKy0gZml4
IGlzc3VlNjM6IGFzc3VtZSA8NDAgY29sdW1ucyB0byBiZSBhIGJvZ3VzIHRlcm1pbmFsIHdpZHRo
LCBkZWZhdWx0IHRvIDgwCisKKy0gZml4IHBkYiBkZWJ1Z2dpbmcgdG8gYmUgaW4gdGhlIGNvcnJl
Y3QgZnJhbWUgb24gcmFpc2VzLXJlbGF0ZWQgZXJyb3JzCisKKy0gdXBkYXRlIGFwaXBrZy5weSB0
byBmaXggYW4gaXNzdWUgd2hlcmUgcmVjdXJzaXZlIGltcG9ydHMgbWlnaHQKKyAgdW5uZWNlc3Nh
cmlseSBicmVhayBpbXBvcnRpbmcKKworLSBmaXggcGx1Z2luIGxpbmtzCisKK0NoYW5nZXMgYmV0
d2VlbiAxLjIgYW5kIDEuMS4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKKy0gbW92ZWQgZGlzdC9sb29wb25mYWlsaW5nIGZyb20gcHkudGVzdCBjb3JlIGludG8gYSBu
ZXcKKyAgc2VwYXJhdGVseSByZWxlYXNlZCBweXRlc3QteGRpc3QgcGx1Z2luLgorCistIG5ldyBq
dW5pdHhtbCBwbHVnaW46IC0tanVuaXR4bWw9cGF0aCB3aWxsIGdlbmVyYXRlIGEganVuaXQgc3R5
bGUgeG1sIGZpbGUKKyAgd2hpY2ggaXMgcHJvY2Vzc2FibGUgZS5nLiBieSB0aGUgSHVkc29uIENJ
IHN5c3RlbS4KKworLSBuZXcgb3B0aW9uOiAtLWdlbnNjcmlwdD1wYXRoIHdpbGwgZ2VuZXJhdGUg
YSBzdGFuZGFsb25lIHB5LnRlc3Qgc2NyaXB0CisgIHdoaWNoIHdpbGwgbm90IG5lZWQgYW55IGxp
YnJhcmllcyBpbnN0YWxsZWQuICB0aGFua3MgdG8gUmFsZiBTY2htaXR0LgorCistIG5ldyBvcHRp
b246IC0taWdub3JlIHdpbGwgcHJldmVudCBzcGVjaWZpZWQgcGF0aCBmcm9tIGNvbGxlY3Rpb24u
CisgIENhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMuCisKKy0gbmV3IG9wdGlvbjogLS1j
b25mY3V0ZGlyPWRpciB3aWxsIG1ha2UgcHkudGVzdCBvbmx5IGNvbnNpZGVyIGNvbmZ0ZXN0Cisg
IGZpbGVzIHRoYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgZGlyLgorCistIG5ldyBm
dW5jYXJnOiAicHl0ZXN0Y29uZmlnIiBpcyB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QgZm9yIGFj
Y2VzcworICB0byBjb21tYW5kIGxpbmUgYXJncyBhbmQgY2FuIG5vdyBiZSBlYXNpbHkgdXNlZCBp
biBhIHRlc3QuCisKKy0gaW5zdGFsbCAncHkudGVzdCcgYW5kIGBweS53aGljaGAgd2l0aCBhIGBg
LSRWRVJTSU9OYGAgc3VmZml4IHRvCisgIGRpc2FtYmlndWF0ZSBiZXR3ZWVuIFB5dGhvbjMsIHB5
dGhvbjIuWCwgSnl0aG9uIGFuZCBQeVB5IGluc3RhbGxlZCB2ZXJzaW9ucy4KKworLSBuZXcgInB5
dGVzdGNvbmZpZyIgZnVuY2FyZyBhbGxvd3MgYWNjZXNzIHRvIHRlc3QgY29uZmlnIG9iamVjdAor
CistIG5ldyAicHl0ZXN0X3JlcG9ydF9oZWFkZXIiIGhvb2sgY2FuIHJldHVybiBhZGRpdGlvbmFs
IGxpbmVzCisgIHRvIGJlIGRpc3BsYXllZCBhdCB0aGUgaGVhZGVyIG9mIGEgdGVzdCBydW4uCisK
Ky0gKGV4cGVyaW1lbnRhbCkgYWxsb3cgInB5LnRlc3QgcGF0aDo6bmFtZTE6Om5hbWUyOjouLi4i
IGZvciBwb2ludGluZworICB0byBhIHRlc3Qgd2l0aGluIGEgdGVzdCBjb2xsZWN0aW9uIGRpcmVj
dGx5LiAgVGhpcyBtaWdodCBldmVudHVhbGx5CisgIGV2b2x2ZSBhcyBhIGZ1bGwgc3Vic3RpdHV0
ZSB0byAiLWsiIHNwZWNpZmljYXRpb25zLgorCistIHN0cmVhbWxpbmVkIHBsdWdpbiBsb2FkaW5n
OiBvcmRlciBpcyBub3cgYXMgZG9jdW1lbnRlZCBpbgorICBjdXN0b21pemUuaHRtbDogc2V0dXB0
b29scywgRU5WLCBjb21tYW5kbGluZSwgY29uZnRlc3QuCisgIGFsc28gc2V0dXB0b29scyBlbnRy
eSBwb2ludCBuYW1lcyBhcmUgdHVybmVkIHRvIGNhbm9uaWNhbCBuYW1lZXMgKCJweXRlc3RfKiIp
CisKKy0gYXV0b21hdGljYWxseSBza2lwIHRlc3RzIHRoYXQgbmVlZCAnY2FwZmQnIGJ1dCBoYXZl
IG5vIG9zLmR1cAorCistIGFsbG93IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyB0byBiZSBkZWZpbmVk
IGluIGNsYXNzZXMgYXMgd2VsbAorCistIGRlcHJlY2F0ZSB1c2FnZSBvZiAnZGlzYWJsZWQnIGF0
dHJpYnV0ZSBpbiBmYXZvdXIgb2YgcHl0ZXN0bWFyaworLSBkZXByZWNhdGUgZGVmaW5pdGlvbiBv
ZiBEaXJlY3RvcnksIE1vZHVsZSwgQ2xhc3MgYW5kIEZ1bmN0aW9uIG5vZGVzCisgIGluIGNvbmZ0
ZXN0LnB5IGZpbGVzLiAgVXNlIHB5dGVzdCBjb2xsZWN0IGhvb2tzIGluc3RlYWQuCisKKy0gY29s
bGVjdGlvbi9pdGVtIG5vZGUgc3BlY2lmaWMgcnVudGVzdC9jb2xsZWN0IGhvb2tzIGFyZSBvbmx5
IGNhbGxlZCBleGFjdGx5CisgIG9uIG1hdGNoaW5nIGNvbmZ0ZXN0LnB5IGZpbGVzLCBpLmUuIG9u
ZXMgd2hpY2ggYXJlIGV4YWN0bHkgYmVsb3cKKyAgdGhlIGZpbGVzeXN0ZW0gcGF0aCBvZiBhbiBp
dGVtCisKKy0gY2hhbmdlOiB0aGUgZmlyc3QgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5IGhvb2sg
dG8gcmV0dXJuIHNvbWV0aGluZworICB3aWxsIG5vdyBwcmV2ZW50IGZ1cnRoZXIgaG9va3MgdG8g
YmUgY2FsbGVkLgorCistIGNoYW5nZTogZmlnbGVhZiBwbHVnaW4gbm93IHJlcXVpcmVzIC0tZmln
bGVhZiB0byBydW4uICBBbHNvCisgIGNoYW5nZSBpdHMgbG9uZyBjb21tYW5kIGxpbmUgb3B0aW9u
cyB0byBiZSBhIGJpdCBzaG9ydGVyIChzZWUgcHkudGVzdCAtaCkuCisKKy0gY2hhbmdlOiBweXRl
c3QgZG9jdGVzdCBwbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQgaGFzIGEKKyAg
bmV3IG9wdGlvbiAtLWRvY3Rlc3QtZ2xvYiB0byBzZXQgYSBwYXR0ZXJuIGZvciBmaWxlIG1hdGNo
ZXMuCisKKy0gY2hhbmdlOiByZW1vdmUgaW50ZXJuYWwgcHkuXyogaGVscGVyIHZhcnMsIG9ubHkg
a2VlcCBweS5fcHlkaXIKKworLSByb2J1c3RpZnkgY2FwdHVyaW5nIHRvIHN1cnZpdmUgaWYgY3Vz
dG9tIHB5dGVzdF9ydW50ZXN0X3NldHVwCisgIGNvZGUgZmFpbGVkIGFuZCBwcmV2ZW50ZWQgdGhl
IGNhcHR1cmluZyBzZXR1cCBjb2RlIGZyb20gcnVubmluZy4KKworLSBtYWtlIHB5LnRlc3QuKiBo
ZWxwZXJzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgcGx1Z2lucyB2aXNpYmxlIGVhcmx5IC0KKyAgd29y
a3MgdHJhbnNwYXJlbnRseSBib3RoIGZvciBweWRvYyBhbmQgZm9yIGludGVyYWN0aXZlIHNlc3Np
b25zCisgIHdoaWNoIHdpbGwgcmVndWxhcmx5IHNlZSBlLmcuIHB5LnRlc3QubWFyayBhbmQgcHku
dGVzdC5pbXBvcnRvcnNraXAuCisKKy0gc2ltcGxpZnkgaW50ZXJuYWwgcGx1Z2luIG1hbmFnZXIg
bWFjaGluZXJ5CistIHNpbXBsaWZ5IGludGVybmFsIGNvbGxlY3Rpb24gdHJlZSBieSBpbnRyb2R1
Y2luZyBhIFJvb3RDb2xsZWN0b3Igbm9kZQorCistIGZpeCBhc3NlcnQgcmVpbnRlcnByZWF0aW9u
IHRoYXQgc2VlcyBhIGNhbGwgY29udGFpbmluZyAia2V5d29yZD0uLi4iCisKKy0gZml4IGlzc3Vl
NjY6IGludm9rZSBweXRlc3Rfc2Vzc2lvbnN0YXJ0IGFuZCBweXRlc3Rfc2Vzc2lvbmZpbmlzaAor
ICBob29rcyBvbiBzbGF2ZXMgZHVyaW5nIGRpc3QtdGVzdGluZywgcmVwb3J0IG1vZHVsZS9zZXNz
aW9uIHRlYXJkb3duCisgIGhvb2tzIGNvcnJlY3RseS4KKworLSBmaXggaXNzdWU2NTogcHJvcGVy
bHkgaGFuZGxlIGRpc3QtdGVzdGluZyBpZiBubworICBleGVjbmV0L3B5IGxpYiBpbnN0YWxsZWQg
cmVtb3RlbHkuCisKKy0gc2tpcCBzb21lIGluc3RhbGwtdGVzdHMgaWYgbm8gZXhlY25ldCBpcyBh
dmFpbGFibGUKKworLSBmaXggZG9jcywgZml4IGludGVybmFsIGJpbi8gc2NyaXB0IGdlbmVyYXRp
b24KKworCitDaGFuZ2VzIGJldHdlZW4gMS4xLjEgYW5kIDEuMS4wCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKKy0gaW50cm9kdWNlIGF1dG9tYXRpYyBwbHVnaW4gcmVn
aXN0cmF0aW9uIHZpYSAncHl0ZXN0MTEnCisgIGVudHJ5cG9pbnRzIHZpYSBzZXR1cHRvb2xzJyBw
a2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzCisKKy0gZml4IHB5LnRlc3QgZGlzdC10ZXN0
aW5nIHRvIHdvcmsgd2l0aCBleGVjbmV0ID49IDEuMC4wYjQKKworLSByZS1pbnRyb2R1Y2UgcHku
dGVzdC5jbWRsaW5lLm1haW4oKSBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKwor
LSBzdm4gcGF0aHM6IGZpeCBhIGJ1ZyB3aXRoIHBhdGguY2hlY2sodmVyc2lvbmVkPVRydWUpIGZv
ciBzdm4gcGF0aHMsCisgIGFsbG93ICclJyBpbiBzdm4gcGF0aHMsIG1ha2Ugc3Zud2MudXBkYXRl
KCkgZGVmYXVsdCB0byBpbnRlcmFjdGl2ZSBtb2RlCisgIGxpa2UgaW4gMS4wLnggYW5kIGFkZCBz
dm53Yy51cGRhdGUoaW50ZXJhY3RpdmU9RmFsc2UpIHRvIGluaGliaXQgaW50ZXJhY3Rpb24uCisK
Ky0gcmVmaW5lIGRpc3RyaWJ1dGVkIHRhcmJhbGwgdG8gY29udGFpbiB0ZXN0IGFuZCBubyBweWMg
ZmlsZXMKKworLSB0cnkgaGFyZGVyIHRvIGhhdmUgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIHB5
LmNvbXBhdC4qIGFjY2Vzc2VzCisgIHJlcG9ydCBhIGNvcnJlY3QgbG9jYXRpb24KKworQ2hhbmdl
cyBiZXR3ZWVuIDEuMS4wIGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCisqIGFkanVzdCBhbmQgaW1wcm92ZSBkb2NzCisKKyogcmVtb3ZlIHB5LnJlc3Qg
dG9vbCBhbmQgaW50ZXJuYWwgbmFtZXNwYWNlIC0gaXQgd2FzCisgIG5ldmVyIHJlYWxseSBhZHZl
cnRpc2VkIGFuZCBjYW4gc3RpbGwgYmUgdXNlZCB3aXRoCisgIHRoZSBvbGQgcmVsZWFzZSBpZiBu
ZWVkZWQuICBJZiB0aGVyZSBpcyBpbnRlcmVzdAorICBpdCBjb3VsZCBiZSByZXZpdmVkIGludG8g
aXRzIG93biB0b29sIGkgZ3Vlc3MuCisKKyogZml4IGlzc3VlNDggYW5kIGlzc3VlNTk6IHJhaXNl
IGFuIEVycm9yIGlmIHRoZSBtb2R1bGUKKyAgZnJvbSBhbiBpbXBvcnRlZCB0ZXN0IGZpbGUgZG9l
cyBub3Qgc2VlbSB0byBjb21lIGZyb20KKyAgdGhlIGZpbGVwYXRoIC0gYXZvaWRzICJzYW1lLW5h
bWUiIGNvbmZ1c2lvbiB0aGF0IGhhcworICBiZWVuIHJlcG9ydGVkIHJlcGVhdGVkbHkKKworKiBt
ZXJnZWQgUm9ubnkncyBub3NlLWNvbXBhdGliaWxpdHkgaGFja3M6IG5vdworICBub3NlLXN0eWxl
IHNldHVwX21vZHVsZSgpIGFuZCBzZXR1cCgpIGZ1bmN0aW9ucyBhcmUKKyAgc3VwcG9ydGVkCisK
KyogaW50cm9kdWNlIGdlbmVyYWxpemVkIHB5LnRlc3QubWFyayBmdW5jdGlvbiBtYXJraW5nCisK
KyogcmVzaHVmZmxlIC8gcmVmaW5lIGNvbW1hbmQgbGluZSBncm91cGluZworCisqIGRlcHJlY2F0
ZSBwYXJzZXIuYWRkZ3JvdXAgaW4gZmF2b3VyIG9mIGdldGdyb3VwIHdoaWNoIGNyZWF0ZXMgb3B0
aW9uIGdyb3VwCisKKyogYWRkIC0tcmVwb3J0IGNvbW1hbmQgbGluZSBvcHRpb24gdGhhdCBhbGxv
d3MgdG8gY29udHJvbCBzaG93aW5nIG9mIHNraXBwZWQveGZhaWxlZCBzZWN0aW9ucworCisqIGdl
bmVyYWxpemVkIHNraXBwaW5nOiBhIG5ldyB3YXkgdG8gbWFyayBweXRob24gZnVuY3Rpb25zIHdp
dGggc2tpcGlmIG9yIHhmYWlsCisgIGF0IGZ1bmN0aW9uLCBjbGFzcyBhbmQgbW9kdWxlcyBsZXZl
bCBiYXNlZCBvbiBwbGF0Zm9ybSBvciBzeXMtbW9kdWxlIGF0dHJpYnV0ZXMuCisKKyogZXh0ZW5k
IHB5LnRlc3QubWFyayBkZWNvcmF0b3IgdG8gYWxsb3cgZm9yIHBvc2l0aW9uYWwgYXJncworCisq
IGludHJvZHVjZSBhbmQgdGVzdCAicHkuY2xlYW51cCAtZCIgdG8gcmVtb3ZlIGVtcHR5IGRpcmVj
dG9yaWVzCisKKyogZml4IGlzc3VlICM1OSAtIHJvYnVzdGlmeSB1bml0dGVzdCB0ZXN0IGNvbGxl
Y3Rpb24KKworKiBtYWtlIGJweXRob24vaGVscCBpbnRlcmFjdGlvbiB3b3JrIGJ5IGFkZGluZyBh
biBfX2FsbF9fIGF0dHJpYnV0ZQorICB0byBBcGlNb2R1bGUsIGNsZWFudXAgaW5pdHBrZworCisq
IHVzZSBNSVQgbGljZW5zZSBmb3IgcHlsaWIsIGFkZCBzb21lIGNvbnRyaWJ1dG9ycworCisqIHJl
bW92ZSBweS5leGVjbmV0IGNvZGUgYW5kIHN1YnN0aXR1dGUgYWxsIHVzYWdlcyB3aXRoICdleGVj
bmV0JyBwcm9wZXIKKworKiBmaXggaXNzdWU1MCAtIGNhY2hlZF9zZXR1cCBub3cgY2FjaGVzIG1v
cmUgdG8gZXhwZWN0YXRpb25zCisgIGZvciB0ZXN0IGZ1bmN0aW9ucyB3aXRoIG11bHRpcGxlIGFy
Z3VtZW50cy4KKworKiBtZXJnZSBKYXJrbydzIGZpeGVzLCBpc3N1ZSAjNDUgYW5kICM0NgorCisq
IGFkZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgcGF0aCBmb3IgcHkubG9va3VwIHRvIHNlYXJj
aCBpbgorCisqIGZpeCBhIGZ1bmNhcmcgY2FjaGVkX3NldHVwIGJ1ZyBwcm9iYWJseSBvbmx5IG9j
Y3VyaW5nCisgIGluIGRpc3RyaWJ1dGVkIHRlc3RpbmcgYW5kICJtb2R1bGUiIHNjb3BlIHdpdGgg
dGVhcmRvd24uCisKKyogbWFueSBmaXhlcyBhbmQgY2hhbmdlcyBmb3IgbWFraW5nIHRoZSBjb2Rl
IGJhc2UgcHl0aG9uMyBjb21wYXRpYmxlLAorICBtYW55IHRoYW5rcyB0byBCZW5qYW1pbiBQZXRl
cnNvbiBmb3IgaGVscGluZyB3aXRoIHRoaXMuCisKKyogY29uc29saWRhdGUgYnVpbHRpbnMgaW1w
bGVtZW50YXRpb24gdG8gYmUgY29tcGF0aWJsZSB3aXRoID49Mi4zLAorICBhZGQgaGVscGVycyB0
byBlYXNlIGtlZXBpbmcgMiBhbmQgM2sgY29tcGF0aWJsZSBjb2RlCisKKyogZGVwcmVjYXRlIHB5
LmNvbXBhdC5kb2N0ZXN0fHN1YnByb2Nlc3N8dGV4dHdyYXB8b3B0cGFyc2UKKworKiBkZXByZWNh
dGUgcHkubWFnaWMuYXV0b3BhdGgsIHJlbW92ZSBweS9tYWdpYyBkaXJlY3RvcnkKKworKiBtb3Zl
IHB5dGVzdCBhc3NlcnRpb24gaGFuZGxpbmcgdG8gcHkvY29kZSBhbmQgYSBweXRlc3RfYXNzZXJ0
aW9uCisgIHBsdWdpbiwgYWRkICItLW5vLWFzc2VydCIgb3B0aW9uLCBkZXByZWNhdGUgcHkubWFn
aWMgbmFtZXNwYWNlcworICBpbiBmYXZvdXIgb2YgKGxlc3MpIHB5LmNvZGUgb25lcy4KKworKiBj
b25zb2xpZGF0ZSBhbmQgY2xlYW51cCBweS9jb2RlIGNsYXNzZXMgYW5kIGZpbGVzCisKKyogY2xl
YW51cCBweS9taXNjLCBtb3ZlIHRlc3RzIHRvIGJpbi1mb3ItZGlzdAorCisqIGludHJvZHVjZSBk
ZWxhdHRyL2RlbGl0ZW0vZGVsZW52IG1ldGhvZHMgdG8gcHkudGVzdCdzIG1vbmtleXBhdGNoIGZ1
bmNhcmcKKworKiBjb25zb2xpZGF0ZSBweS5sb2cgaW1wbGVtZW50YXRpb24sIHJlbW92ZSBvbGQg
YXBwcm9hY2guCisKKyogaW50cm9kdWNlIHB5LmlvLlRleHRJTyBhbmQgcHkuaW8uQnl0ZXNJTyBm
b3IgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbgorICB0ZXh0L3VuaWNvZGUgYW5kIGJ5dGUtc3RyZWFt
cyAodXNlcyB1bmRlcmx5aW5nIHN0YW5kYXJkIGxpYiBpby4qCisgIGlmIGF2YWlsYWJsZSkKKwor
KiBtYWtlIHB5LnVuaXR0ZXN0X2NvbnZlcnQgaGVscGVyIHNjcmlwdCBhdmFpbGFibGUgd2hpY2gg
Y29udmVydHMgInVuaXR0ZXN0LnB5IgorICBzdHlsZSBmaWxlcyBpbnRvIHRoZSBzaW1wbGVyIGFz
c2VydC9kaXJlY3QtdGVzdC1jbGFzc2VzIHB5LnRlc3Qvbm9zZXRlc3RzCisgIHN0eWxlLiAgVGhl
IHNjcmlwdCB3YXMgd3JpdHRlbiBieSBMYXVyYSBDcmVpZ2h0b24uCisKKyogc2ltcGxpZmllZCBp
bnRlcm5hbCBsb2NhbHBhdGggaW1wbGVtZW50YXRpb24KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4x
IGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGZp
eGluZyBwYWNrYWdpbmcgaXNzdWVzLCB0cmlnZ2VyZWQgYnkgZmVkb3JhIHJlZGhhdCBwYWNrYWdp
bmcsCisgIGFsc28gYWRkZWQgZG9jLCBleGFtcGxlcyBhbmQgY29udHJpYiBkaXJzIHRvIHRoZSB0
YXJiYWxsLgorCisqIGFkZGVkIGEgZG9jdW1lbnRhdGlvbiBsaW5rIHRvIHRoZSBuZXcgZGphbmdv
IHBsdWdpbi4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wIGFuZCAxLjAuMQorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGFkZGVkIGEgJ3B5dGVzdF9ub3NlJyBwbHVn
aW4gd2hpY2ggaGFuZGxlcyBub3NlLlNraXBUZXN0LAorICBub3NlLXN0eWxlIGZ1bmN0aW9uL21l
dGhvZC9nZW5lcmF0b3Igc2V0dXAvdGVhcmRvd24gYW5kCisgIHRyaWVzIHRvIHJlcG9ydCBmdW5j
dGlvbnMgY29ycmVjdGx5LgorCisqIGNhcHR1cmluZyBvZiB1bmljb2RlIHdyaXRlcyBvciBlbmNv
ZGVkIHN0cmluZ3MgdG8gc3lzLnN0ZG91dC9lcnIKKyAgd29yayBiZXR0ZXIsIGFsc28gdGVybWlu
YWx3cml0aW5nIHdhcyBhZGFwdGVkIGFuZCBzb21ld2hhdAorICB1bmlmaWVkIGJldHdlZW4gd2lu
ZG93cyBhbmQgbGludXguCisKKyogaW1wcm92ZWQgZG9jdW1lbnRhdGlvbiBsYXlvdXQgYW5kIGNv
bnRlbnQgYSBsb3QKKworKiBhZGRlZCBhICItLWhlbHAtY29uZmlnIiBvcHRpb24gdG8gc2hvdyBj
b25mdGVzdC5weSAvIEVOVi12YXIgbmFtZXMgZm9yCisgIGFsbCBsb25nb3B0IGNtZGxpbmUgb3B0
aW9ucywgYW5kIHNvbWUgc3BlY2lhbCBjb25mdGVzdC5weSB2YXJpYWJsZXMuCisgIHJlbmFtZWQg
J2NvbmZfY2FwdHVyZScgY29uZnRlc3Qgc2V0dGluZyB0byAnb3B0aW9uX2NhcHR1cmUnIGFjY29y
ZGluZ2x5LgorCisqIGZpeCBpc3N1ZSAjMjc6IGJldHRlciByZXBvcnRpbmcgb24gbm9uLWNvbGxl
Y3RhYmxlIGl0ZW1zIGdpdmVuIG9uIGNvbW1hbmRsaW5lCisgIChlLmcuIHB5YyBmaWxlcykKKwor
KiBmaXggaXNzdWUgIzMzOiBhZGRlZCAtLXZlcnNpb24gZmxhZyAodGhhbmtzIEJlbmphbWluIFBl
dGVyc29uKQorCisqIGZpeCBpc3N1ZSAjMzI6IGFkZGluZyBzdXBwb3J0IGZvciAiaW5jb21wbGV0
ZSIgcGF0aHMgdG8gd2NwYXRoLnN0YXR1cygpCisKKyogIlRlc3QiIHByZWZpeGVkIGNsYXNzZXMg
YXJlICpub3QqIGNvbGxlY3RlZCBieSBkZWZhdWx0IGFueW1vcmUgaWYgdGhleQorICBoYXZlIGFu
IF9faW5pdF9fIG1ldGhvZAorCisqIG1vbmtleXBhdGNoIHNldGVudigpIG5vdyBhY2NlcHRzIGEg
InByZXBlbmQiIHBhcmFtZXRlcgorCisqIGltcHJvdmVkIHJlcG9ydGluZyBvZiBjb2xsZWN0aW9u
IGVycm9yIHRyYWNlYmFja3MKKworKiBzaW1wbGlmaWVkIG11bHRpY2FsbCBtZWNoYW5pc20gYW5k
IHBsdWdpbiBhcmNoaXRlY3R1cmUsCisgIHJlbmFtZWQgc29tZSBpbnRlcm5hbCBtZXRob2RzIGFu
ZCBhcmduYW1lcworCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBiOSBhbmQgMS4wLjAKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBtb3JlIHRlcnNlIHJlcG9ydGluZyB0
cnkgdG8gc2hvdyBmaWxlc3lzdGVtIHBhdGggcmVsYXRpdmVseSB0byBjdXJyZW50IGRpcgorKiBp
bXByb3ZlIHhmYWlsIG91dHB1dCBhIGJpdAorCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBiOCBhbmQg
MS4wLjBiOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGNsZWFu
bHkgaGFuZGxlIGFuZCByZXBvcnQgZmluYWwgdGVhcmRvd24gb2YgdGVzdCBzZXR1cAorCisqIGZp
eCBzdm4tMS42IGNvbXBhdCBpc3N1ZSB3aXRoIHB5LnBhdGguc3Zud2MoKS52ZXJzaW9uZWQoKQor
ICAodGhhbmtzIFdvdXRlciBWYW5kZW4gSG92ZSkKKworKiBzZXR1cC90ZWFyZG93biBvciBjb2xs
ZWN0aW9uIHByb2JsZW1zIG5vdyBzaG93IGFzIEVSUk9ScworICBvciB3aXRoIGJpZyAiRSIncyBp
biB0aGUgcHJvZ3Jlc3MgbGluZXMuICB0aGV5IGFyZSByZXBvcnRlZAorICBhbmQgY291bnRlZCBz
ZXBhcmF0ZWx5LgorCisqIGRpc3QtdGVzdGluZzogcHJvcGVybHkgaGFuZGxlIHRlc3QgaXRlbXMg
dGhhdCBnZXQgbG9jYWxseQorICBjb2xsZWN0ZWQgYnV0IGNhbm5vdCBiZSBjb2xsZWN0ZWQgb24g
dGhlIHJlbW90ZSBzaWRlIC0gb2Z0ZW4KKyAgZHVlIHRvIHBsYXRmb3JtL2RlcGVuZGVuY3kgcmVh
c29ucworCisqIHNpbXBsaWZpZWQgcHkudGVzdC5tYXJrIEFQSSAtIHNlZSBrZXl3b3JkIHBsdWdp
biBkb2N1bWVudGF0aW9uCisKKyogaW50ZWdyYXRlIGJldHRlciB3aXRoIGxvZ2dpbmc6IGNhcHR1
cmluZyBub3cgYnkgZGVmYXVsdCBjYXB0dXJlcworICB0ZXN0IGZ1bmN0aW9ucyBhbmQgdGhlaXIg
aW1tZWRpYXRlIHNldHVwL3RlYXJkb3duIGluIGEgc2luZ2xlIHN0cmVhbQorCisqIGNhcHN5cyBh
bmQgY2FwZmQgZnVuY2FyZ3Mgbm93IGhhdmUgYSByZWFkb3V0ZXJyKCkgYW5kIGEgY2xvc2UoKSBt
ZXRob2QKKyAgKHVuZGVybHlpbmdseSBweS5pby5TdGRDYXB0dXJlL0ZEIG9iamVjdHMgYXJlIHVz
ZWQgd2hpY2ggZ3JldyBhCisgIHJlYWRvdXRlcnIoKSBtZXRob2QgYXMgd2VsbCB0byByZXR1cm4g
c25hcHNob3RzIG9mIGNhcHR1cmVkIG91dC9lcnIpCisKKyogbWFrZSBhc3NlcnQtcmVpbnRlcnBy
ZXRhdGlvbiB3b3JrIGJldHRlciB3aXRoIGNvbXBhcmlzb25zIG5vdAorICByZXR1cm5pbmcgYm9v
bHMgKHJlcG9ydGVkIHdpdGggbnVtcHkgZnJvbSB0aGFua3MgbWFjaWVqIGZpamFsa293c2tpKQor
CisqIHJld29ya2VkIHBlci10ZXN0IG91dHB1dCBjYXB0dXJpbmcgaW50byB0aGUgcHl0ZXN0X2lv
Y2FwdHVyZS5weSBwbHVnaW4KKyAgYW5kIHRodXMgcmVtb3ZlZCBjYXB0dXJpbmcgY29kZSBmcm9t
IGNvbmZpZyBvYmplY3QKKworKiBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKSBpbnN0ZWFkIG9m
IGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8sIG91dGVycikKKworCitDaGFuZ2VzIGJldHdlZW4g
MS4wLjBiNyBhbmQgMS4wLjBiOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCisqIHB5dGVzdF91bml0dGVzdC1wbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVmYXVsdAor
CisqIGludHJvZHVjZWQgcHl0ZXN0X2tleWJvYXJkaW50ZXJydXB0IGhvb2sgYW5kCisgIHJlZmlu
ZWQgcHl0ZXN0X3Nlc3Npb25maW5pc2ggaG9va2VkLCBhZGRlZCB0ZXN0cy4KKworKiB3b3JrYXJv
dW5kIGEgYnVnZ3kgbG9nZ2luZyBtb2R1bGUgaW50ZXJhY3Rpb24gKCJjbG9zaW5nIGFscmVhZHkg
Y2xvc2VkCisgIGZpbGVzIikuICBUaGFua3MgdG8gU3JpZGhhciBSYXRuYWt1bWFyIGZvciB0cmln
Z2VyaW5nLgorCisqIGlmIHBsdWdpbnMgdXNlICJweS50ZXN0LmltcG9ydG9yc2tpcCIgZm9yIGlt
cG9ydGluZworICBhIGRlcGVuZGVuY3kgb25seSBhIHdhcm5pbmcgd2lsbCBiZSBpc3N1ZWQgaW5z
dGVhZAorICBvZiBleGl0aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MuCisKKyogbWFueSBpbXByb3Zl
bWVudHMgdG8gZG9jczoKKyAgLSByZWZpbmVkIGZ1bmNhcmdzIGRvYyAsIHVzZSB0aGUgdGVybSAi
ZmFjdG9yeSIgaW5zdGVhZCBvZiAicHJvdmlkZXIiCisgIC0gYWRkZWQgYSBuZXcgdGFsay90dXRv
cmlhbCBkb2MgcGFnZQorICAtIGJldHRlciBkb3dubG9hZCBwYWdlCisgIC0gYmV0dGVyIHBsdWdp
biBkb2NzdHJpbmdzCisgIC0gYWRkZWQgbmV3IHBsdWdpbnMgcGFnZSBhbmQgYXV0b21hdGljIGRv
YyBnZW5lcmF0aW9uIHNjcmlwdAorCisqIGZpeGVkIHRlYXJkb3duIHByb2JsZW0gcmVsYXRlZCB0
byBwYXJ0aWFsbHkgZmFpbGluZyBmdW5jYXJnIHNldHVwcworICAodGhhbmtzIE1yVG9wZiBmb3Ig
cmVwb3J0aW5nKSwgInB5dGVzdF9ydW50ZXN0X3RlYXJkb3duIiBpcyBub3cKKyAgYWx3YXlzIGlu
dm9rZWQgZXZlbiBpZiB0aGUgInB5dGVzdF9ydW50ZXN0X3NldHVwIiBmYWlsZWQuCisKKyogdHdl
YWtlZCBkb2N0ZXN0IG91dHB1dCBmb3IgZG9jc3RyaW5ncyBpbiBweSBtb2R1bGVzLAorICB0aGFu
a3MgUmFkb21pci4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjMgYW5kIDEuMC4wYjcKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIHJlbmFtZWQgcHku
dGVzdC54ZmFpbCBiYWNrIHRvIHB5LnRlc3QubWFyay54ZmFpbCB0byBhdm9pZAorICB0d28gd2F5
cyB0byBkZWNvcmF0ZSBmb3IgeGZhaWwKKworKiByZS1hZGRlZCBweS50ZXN0Lm1hcmsgZGVjb3Jh
dG9yIGZvciBzZXR0aW5nIGtleXdvcmRzIG9uIGZ1bmN0aW9ucworICAoaXQgd2FzIGFjdHVhbGx5
IGRvY3VtZW50ZWQgc28gcmVtb3ZpbmcgaXQgd2FzIG5vdCBuaWNlKQorCisqIHJlbW92ZSBzY29w
ZS1hcmd1bWVudCBmcm9tIHJlcXVlc3QuYWRkZmluYWxpemVyKCkgYmVjYXVzZQorICByZXF1ZXN0
LmNhY2hlZF9zZXR1cCBoYXMgdGhlIHNjb3BlIGFyZy4gVE9PV1RESS4KKworKiBwZXJmb3JtIHNl
dHVwIGZpbmFsaXphdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGZhaWx1cmVzCisKKyogYXBwbHkgbW9k
aWZpZWQgcGF0Y2hlcyBmcm9tIEFuZHJlYXMgS2xvZWNrbmVyIHRvIGFsbG93CisgIHRlc3QgZnVu
Y3Rpb25zIHRvIGhhdmUgbm8gZnVuY19jb2RlICgjMjIpIGFuZCB0byBtYWtlCisgICItayIgYW5k
IGZ1bmN0aW9uIGtleXdvcmRzIHdvcmsgICgjMjApCisKKyogYXBwbHkgcGF0Y2ggZnJvbSBEYW5p
ZWwgUGVvbHpsZWl0aG5lciAoaXNzdWUgIzIzKQorCisqIHJlc29sdmUgaXNzdWUgIzE4LCBtdWx0
aXByb2Nlc3NpbmcuTWFuYWdlcigpIGFuZAorICByZWRpcmVjdGlvbiBjbGFzaAorCisqIG1ha2Ug
X19uYW1lX18gPT0gIl9fY2hhbm5lbGV4ZWNfXyIgZm9yIHJlbW90ZV9leGVjIGNvZGUKKworQ2hh
bmdlcyBiZXR3ZWVuIDEuMC4wYjEgYW5kIDEuMC4wYjMKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisqIHBsdWdpbiBjbGFzc2VzIGFyZSByZW1vdmVkOiBv
bmUgbm93IGRlZmluZXMKKyAgaG9va3MgZGlyZWN0bHkgaW4gY29uZnRlc3QucHkgb3IgZ2xvYmFs
IHB5dGVzdF8qLnB5CisgIGZpbGVzLgorCisqIGFkZGVkIG5ldyBweXRlc3RfbmFtZXNwYWNlKGNv
bmZpZykgaG9vayB0aGF0IGFsbG93cworICB0byBpbmplY3QgaGVscGVycyBkaXJlY3RseSB0byB0
aGUgcHkudGVzdC4qIG5hbWVzcGFjZS4KKworKiBkb2N1bWVudGVkIGFuZCByZWZpbmVkIG1hbnkg
aG9va3MKKworKiBhZGRlZCBuZXcgc3R5bGUgb2YgZ2VuZXJhdGl2ZSB0ZXN0cyB2aWEKKyAgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzIGhvb2sgdGhhdCBpbnRlZ3JhdGVzCisgIHdlbGwgd2l0aCBmdW5j
dGlvbiBhcmd1bWVudHMuCisKKworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4yIGFuZCAxLjAuMGIxCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBpbnRyb2R1
Y2VkIG5ldyAiZnVuY2FyZyIgc2V0dXAgbWV0aG9kLAorICBzZWUgZG9jL3Rlc3QvZnVuY2FyZy50
eHQKKworKiBpbnRyb2R1Y2VkIHBsdWdpbiBhcmNoaXRlY3V0dXJlIGFuZCBtYW55CisgIG5ldyBw
eS50ZXN0IHBsdWdpbnMsIHNlZQorICBkb2MvdGVzdC9wbHVnaW5zLnR4dAorCisqIHRlYXJkb3du
X21ldGhvZCBpcyBub3cgZ3VhcmFudGVlZCB0byBnZXQKKyAgY2FsbGVkIGFmdGVyIGEgdGVzdCBt
ZXRob2QgaGFzIHJ1bi4KKworKiBuZXcgbWV0aG9kOiBweS50ZXN0LmltcG9ydG9yc2tpcChtb2Qs
bWludmVyc2lvbikKKyAgd2lsbCBlaXRoZXIgaW1wb3J0IG9yIGNhbGwgcHkudGVzdC5za2lwKCkK
KworKiBjb21wbGV0ZWx5IHJldmlzZWQgaW50ZXJuYWwgcHkudGVzdCBhcmNoaXRlY3R1cmUKKwor
KiBuZXcgcHkucHJvY2Vzcy5Gb3JrZWRGdW5jIG9iamVjdCBhbGxvd2luZyB0bworICBmb3JrIGV4
ZWN1dGlvbiBvZiBhIGZ1bmN0aW9uIHRvIGEgc3ViIHByb2Nlc3MKKyAgYW5kIGdldHRpbmcgYSBy
ZXN1bHQgYmFjay4KKworWFhYIGxvdHMgb2YgdGhpbmdzIG1pc3NpbmcgaGVyZSBYWFgKKworQ2hh
bmdlcyBiZXR3ZWVuIDAuOS4xIGFuZCAwLjkuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCisqIHJlZmluZWQgaW5zdGFsbGF0aW9uIGFuZCBtZXRhZGF0YSwgY3JlYXRlZCBuZXcg
c2V0dXAucHksCisgIG5vdyBiYXNlZCBvbiBzZXR1cHRvb2xzL2V6X3NldHVwICh0aGFua3MgdG8g
UmFsZiBTY2htaXR0CisgIGZvciBoaXMgc3VwcG9ydCkuCisKKyogaW1wcm92ZWQgdGhlIHdheSBv
ZiBtYWtpbmcgcHkuKiBzY3JpcHRzIGF2YWlsYWJsZSBpbgorICB3aW5kb3dzIGVudmlyb25tZW50
cywgdGhleSBhcmUgbm93IGFkZGVkIHRvIHRoZQorICBTY3JpcHRzIGRpcmVjdG9yeSBhcyAiLmNt
ZCIgZmlsZXMuCisKKyogcHkucGF0aC5zdm53Yy5zdGF0dXMoKSBub3cgaXMgbW9yZSBjb21wbGV0
ZSBhbmQKKyAgdXNlcyB4bWwgb3V0cHV0IGZyb20gdGhlICdzdm4nIGNvbW1hbmQgaWYgYXZhaWxh
YmxlCisgIChHdWlkbyBXZXNkb3JwKQorCisqIGZpeCBmb3IgcHkucGF0aC5zdm4qIHRvIHdvcmsg
d2l0aCBzdm4gMS41CisgIChDaHJpcyBMYW1iKQorCisqIGZpeCBwYXRoLnJlbHRvKG90aGVycGF0
aCkgbWV0aG9kIG9uIHdpbmRvd3MgdG8KKyAgdXNlIG5vcm1jYXNlIGZvciBjaGVja2luZyBpZiBh
IHBhdGggaXMgcmVsYXRpdmUuCisKKyogcHkudGVzdCdzIHRyYWNlYmFjayBpcyBiZXR0ZXIgcGFy
c2VhYmxlIGZyb20gZWRpdG9ycworICAoZm9sbG93cyB0aGUgZmlsZW5hbWVzOkxJTkVOTzogTVNH
IGNvbnZlbnRpb24pCisgICh0aGFua3MgdG8gT3NtbyBTYWxvbWFhKQorCisqIGZpeCB0byBqYXZh
c2NyaXB0LWdlbmVyYXRpb24sICJweS50ZXN0IC0tcnVuYnJvd3NlciIKKyAgc2hvdWxkIHdvcmsg
bW9yZSByZWxpYWJseSBub3cKKworKiByZW1vdmVkIHByZXZpb3VzbHkgYWNjaWRlbnRhbGx5IGFk
ZGVkCisgIHB5LnRlc3QuYnJva2VuIGFuZCBweS50ZXN0Lm5vdGltcGxlbWVudGVkIGhlbHBlcnMu
CisKKyogdGhlcmUgbm93IGlzIGEgcHkuX192ZXJzaW9uX18gYXR0cmlidXRlCisKK0NoYW5nZXMg
YmV0d2VlbiAwLjkuMCBhbmQgMC45LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworVGhpcyBpcyBhIGZhaXJseSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZXMgYmV0d2VlbiAwLjkg
YW5kIDAuOS4xLCB3aGljaCBjYW4KK3NlcnZlIGFzIGEgcmVmZXJlbmNlIGZvciBkZXZlbG9wZXJz
LgorCisqIGFsbG93aW5nICsgc2lnbnMgaW4gcHkucGF0aC5zdm4gdXJscyBbMzkxMDZdCisqIGZp
eGVkIHN1cHBvcnQgZm9yIEZhaWxlZCBleGNlcHRpb25zIHdpdGhvdXQgZXhjaW5mbyBpbiBweS50
ZXN0IFszOTM0MF0KKyogYWRkZWQgc3VwcG9ydCBmb3Iga2lsbGluZyBwcm9jZXNzZXMgZm9yIFdp
bmRvd3MgKGFzIHdlbGwgYXMgcGxhdGZvcm1zIHRoYXQKKyAgc3VwcG9ydCBvcy5raWxsKSBpbiBw
eS5taXNjLmtpbGxwcm9jIFszOTY1NV0KKyogYWRkZWQgc2V0dXAvdGVhcmRvd24gZm9yIGdlbmVy
YXRpdmUgdGVzdHMgdG8gcHkudGVzdCBbNDA3MDJdCisqIGFkZGVkIGRldGVjdGlvbiBvZiBGQUlM
RUQgVE8gTE9BRCBNT0RVTEUgdG8gcHkudGVzdCBbNDA3MDMsIDQwNzM4LCA0MDczOV0KKyogZml4
ZWQgcHJvYmxlbSB3aXRoIGNhbGxpbmcgLnJlbW92ZSgpIG9uIHdjcGF0aHMgb2Ygbm9uLXZlcnNp
b25lZCBmaWxlcyBpbgorICBweS5wYXRoIFs0NDI0OF0KKyogZml4ZWQgc29tZSBpbXBvcnQgYW5k
IGluaGVyaXRhbmNlIGlzc3VlcyBpbiBweS50ZXN0IFs0MTQ4MCwgNDQ2NDgsIDQ0NjU1XQorKiBm
YWlsIHRvIHJ1biBncmVlbmxldCB0ZXN0cyB3aGVuIHB5cHkgaXMgYXZhaWxhYmxlLCBidXQgd2l0
aG91dCBzdGFja2xlc3MKKyAgWzQ1Mjk0XQorKiBzbWFsbCBmaXhlcyBpbiByc2Vzc2lvbiB0ZXN0
cyBbNDUyOTVdCisqIGZpeGVkIGlzc3VlIHdpdGggMi41IHR5cGUgcmVwcmVzZW50YXRpb25zIGlu
IHB5LnRlc3QgWzQ1NDgzLCA0NTQ4NF0KKyogbWFkZSB0aGF0IGludGVybmFsIHJlcG9ydGluZyBp
c3N1ZXMgZGlzcGxheWluZyBpcyBkb25lIGF0b21pY2FsbHkgaW4gcHkudGVzdAorICBbNDU1MThd
CisqIG1hZGUgdGhhdCBub24tZXhpc3RpbmcgZmlsZXMgYXJlIGlnb3JlZCBieSB0aGUgcHkubG9v
a3VwIHNjcmlwdCBbNDU1MTldCisqIGltcHJvdmVkIGV4Y2VwdGlvbiBuYW1lIGNyZWF0aW9uIGlu
IHB5LnRlc3QgWzQ1NTM1XQorKiBtYWRlIHRoYXQgbGVzcyB0aHJlYWRzIGFyZSB1c2VkIGluIGV4
ZWNuZXQgW21lcmdlIGluIDQ1NTM5XQorKiByZW1vdmVkIGxvY2sgcmVxdWlyZWQgZm9yIGF0b21p
Y2FsIHJlcG9ydGluZyBpc3N1ZSBkaXNwbGF5aW5nIGluIHB5LnRlc3QKKyAgWzQ1NTQ1XQorKiBy
ZW1vdmVkIGdsb2JhbHMgZnJvbSBleGVjbmV0IFs0NTU0MSwgNDU1NDddCisqIHJlZmFjdG9yZWQg
Y2xlYW51cCBtZWNoYW5pY3MsIG1hZGUgdGhhdCBzZXREYWVtb24gaXMgc2V0IHRvIDEgdG8gbWFr
ZSBhdGV4aXQKKyAgZ2V0IGNhbGxlZCBpbiAyLjUgKHB5LmV4ZWNuZXQpIFs0NTU0OF0KKyogZml4
ZWQgYnVnIGluIGpvaW5pbmcgdGhyZWFkcyBpbiBweS5leGVjbmV0J3Mgc2VydmVtYWluIFs0NTU0
OV0KKyogcmVmYWN0b3JlZCBweS50ZXN0LnJzZXNzaW9uIHRlc3RzIHRvIG5vdCByZWx5IG9uIGV4
YWN0IG91dHB1dCBmb3JtYXQgYW55bW9yZQorICBbNDU2NDZdCisqIHVzaW5nIHJlcHIoKSBvbiB0
ZXN0IG91dGNvbWUgWzQ1NjQ3XQorKiBhZGRlZCAnUmVhc29uJyBjbGFzc2VzIGZvciBweS50ZXN0
LnNraXAoKSBbNDU2NDgsIDQ1NjQ5XQorKiBraWxsZWQgc29tZSB1bm5lY2Vzc2FyeSBzYW5pdHkg
Y2hlY2sgaW4gcHkudGVzdC5jb2xsZWN0IFs0NTY1NV0KKyogYXZvaWQgdXNpbmcgb3MudG1wZmls
ZSgpIGluIHB5LmlvLmZkY2FwdHVyZSBiZWNhdXNlIG9uIFdpbmRvd3MgaXQncyBvbmx5CisgIHVz
YWJsZSBieSBBZG1pbmlzdHJhdG9ycyBbNDU5MDFdCisqIGFkZGVkIHN1cHBvcnQgZm9yIGxvY2tp
bmcgYW5kIG5vbi1yZWN1cnNpdmUgY29tbWl0cyB0byBweS5wYXRoLnN2bndjIFs0NTk5NF0KKyog
bG9ja2luZyBmaWxlcyBpbiBweS5leGVjbmV0IHRvIHByZXZlbnQgQ1B5dGhvbiBmcm9tIHNlZ2Zh
dWx0aW5nIFs0NjAxMF0KKyogYWRkZWQgZXhwb3J0KCkgbWV0aG9kIHRvIHB5LnBhdGguc3ZudXJs
CisqIGZpeGVkIC1kIC14IGluIHB5LnRlc3QgWzQ3Mjc3XQorKiBmaXhlZCBhcmd1bWVudCBjb25j
YXRlbmF0aW9uIHByb2JsZW0gaW4gcHkucGF0aC5zdm53YyBbNDk0MjNdCisqIHJlc3RvcmUgcHku
dGVzdCBiZWhhdmlvdXIgdGhhdCBpdCBleGl0cyB3aXRoIGNvZGUgMSB3aGVuIHRoZXJlIGFyZSBm
YWlsdXJlcworICBbNDk5NzRdCisqIGRvbid0IGZhaWwgb24gaHRtbCBmaWxlcyB0aGF0IGRvbid0
IGhhdmUgYW4gYWNjb21wYW55aW5nIC50eHQgZmlsZSBbNTA2MDZdCisqIGZpeGVkICd1dGVzdGNv
bnZlcnQucHkgPCBpbnB1dCcgWzUwNjQ1XQorKiBzbWFsbCBmaXggZm9yIGNvZGUgaW5kZW50YXRp
b24gaW4gcHkuY29kZS5zb3VyY2UgWzUwNzU1XQorKiBmaXggX2RvY2dlbi5weSBkb2N1bWVudGF0
aW9uIGJ1aWxkaW5nIFs1MTI4NV0KKyogaW1wcm92ZWQgY2hlY2tzIGZvciBzb3VyY2UgcmVwcmVz
ZW50YXRpb24gb2YgY29kZSBibG9ja3MgaW4gcHkudGVzdCBbNTEyOTJdCisqIGFkZGVkIHN1cHBv
cnQgZm9yIHBhc3NpbmcgYXV0aGVudGljYXRpb24gdG8gcHkucGF0aC5zdm4qIG9iamVjdHMgWzUy
MDAwLAorICA1MjAwMV0KKyogcmVtb3ZlZCBzb3J0ZWQoKSBjYWxsIGZvciBweS5hcGlnZW4gdGVz
dHMgaW4gZmF2b3VyIG9mIFtdLnNvcnQoKSB0byBzdXBwb3J0CisgIFB5dGhvbiAyLjMgWzUyNDgx
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMy50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjJjYjg1
OTA1Mzc5OTcwYTU3NTVmNTRlOGUzMmM0NTM5YTI1YjE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMy50eHQKQEAgLTAsMCArMSwyNiBAQAorcHku
dGVzdC9weWxpYiAxLjMuMzogd2luZG93cyBhbmQgb3RoZXIgZml4ZXMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCitweWxpYi9weS50ZXN0IDEuMy4zIGlzIGEgbWlub3IgYnVnZml4IHJlbGVhc2UgZmVh
dHVyaW5nIHNvbWUgaW1wcm92ZW1lbnRzCithbmQgZml4ZXMuIFNlZSBjaGFuZ2Vsb2dfIGZvciBm
dWxsIGhpc3RvcnkuCisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCisuLiBfY2hhbmdlbG9n
OiAuLi9jaGFuZ2Vsb2cuaHRtbAorCitDaGFuZ2VzIGJldHdlZW4gMS4zLjIgYW5kIDEuMy4zCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZp
eCBpc3N1ZTExMzogYXNzZXJ0aW9uIHJlcHJlc2VudGF0aW9uIHByb2JsZW0gd2l0aCB0cmlwbGUt
cXVvdGVkIHN0cmluZ3MKKyAgKGFuZCBwb3NzaWJseSBvdGhlciBjYXNlcykKKy0gbWFrZSBjb25m
dGVzdCBsb2FkaW5nIGRldGVjdCB0aGF0IGEgY29uZnRlc3QgZmlsZSB3aXRoIHRoZSBzYW1lCisg
IGNvbnRlbnQgd2FzIGFscmVhZHkgbG9hZGVkLCBhdm9pZHMgc3VycHJpc2VzIGluIG5lc3RlZCBk
aXJlY3Rvcnkgc3RydWN0dXJlcworICB3aGljaCBjYW4gYmUgcHJvZHVjZWQgZS5nLiBieSBIdWRz
b24uIEl0IHByb2JhYmx5IHJlbW92ZXMgdGhlIG5lZWQgdG8gdXNlCisgIC0tY29uZmN1dGRpciBp
biBtb3N0IGNhc2VzLgorLSBmaXggdGVybWluYWwgY29sb3JpbmcgZm9yIHdpbjMyCisgICh0aGFu
a3MgTWljaGFlbCBGb29yZCBmb3IgcmVwb3J0aW5nKQorLSBmaXggd2VpcmRuZXNzOiBtYWtlIHRl
cm1pbmFsIHdpZHRoIGRldGVjdGlvbiB3b3JrIG9uIHN0ZG91dCBpbnN0ZWFkIG9mIHN0ZGluCisg
ICh0aGFua3MgQXJtaW4gUm9uYWNoZXIgZm9yIHJlcG9ydGluZykKKy0gcmVtb3ZlIHRyYWlsaW5n
IHdoaXRlc3BhY2UgaW4gYWxsIHB5L3RleHQgZGlzdHJpYnV0aW9uIGZpbGVzCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjMuNC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE1NmM4YmRiMzNjMDY5Njlm
NDBjMWU4YmNiZTJlOTBkYzk1NmM0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS4zLjQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK3B5LnRlc3QvcHlsaWIg
MS4zLjQ6IGZpeGVzIGFuZCBuZXcgbmF0aXZlIHRyYWNlYmFjayBvcHRpb24KKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweWxpYi9weS50ZXN0IDEuMy40IGlzIGEgbWlub3IgbWFpbnRlbmFuY2UgcmVs
ZWFzZSBtb3N0bHkgY29udGFpbmluZyBidWcgZml4ZXMKK2FuZCBhIG5ldyAiLS10Yj1uYXRpdmUi
IHRyYWNlYmFjayBvcHRpb24gdG8gc2hvdyAibm9ybWFsIiBQeXRob24gc3RhbmRhcmQKK3RyYWNl
YmFja3MgaW5zdGVhZCBvZiB0aGUgcHkudGVzdCBlbmhhbmNlZCB0cmFjZWJhY2tzLiAgU2VlIGJl
bG93IGZvciBtb3JlCitjaGFuZ2UgaW5mbyBhbmQgaHR0cDovL3B5dGVzdC5vcmcgZm9yIG1vcmUg
Z2VuZXJhbCBpbmZvcm1hdGlvbiBvbiBmZWF0dXJlcworYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhl
IHRlc3RpbmcgdG9vbC4KKworVGhhbmtzIHRvIHRoZSBpc3N1ZSByZXBvcnRlcnMgYW5kIGdlbmVy
YWxseSB0byBSb25ueSBQZmFubnNjaG1pZHQgZm9yIGhlbHAuCisKK2NoZWVycywKK2hvbGdlciBr
cmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMy4zIGFuZCAxLjMuNAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxMTE6IGlt
cHJvdmUgaW5zdGFsbCBkb2N1bWVudGF0aW9uIGZvciB3aW5kb3dzCistIGZpeCBpc3N1ZTExOTog
Zml4IGN1c3RvbSBjb2xsZWN0YWJpbGl0eSBvZiBfX2luaXRfXy5weSBhcyBhIG1vZHVsZQorLSBm
aXggaXNzdWUxMTY6IC0tZG9jdGVzdG1vZHVsZXMgd29yayB3aXRoIF9faW5pdF9fLnB5IGZpbGVz
IGFzIHdlbGwKKy0gZml4IGlzc3VlMTE1OiB1bmlmeSBpbnRlcm5hbCBleGNlcHRpb24gcGFzc3Ro
cm91Z2gvY2F0Y2hpbmcvR2VuZXJhdG9yRXhpdAorLSBmaXggaXNzdWUxMTg6IG5ldyAtLXRiPW5h
dGl2ZSBmb3IgcHJlc2VudGluZyBjcHl0aG9uLXN0YW5kYXJkIGV4Y2VwdGlvbnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjAudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjQuMC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY5YTc3MTRkOWYxNmMxNjlh
M2FjZTEzMTc4M2ViYzI5ODkzNmQzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS40LjAudHh0CkBAIC0wLDAgKzEsNDcgQEAKKworLi4gX2ByZWxlYXNl
LTEuNC4wYDoKKworcHktMS40LjA6IGNyb3NzLXB5dGhvbiBsaWIgZm9yIHBhdGgsIGNvZGUsIGlv
LCAuLi4gbWFuaXB1bGF0aW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyJweSIgaXMgYSBzbWFs
bCBsaWJyYXJ5IGNvbXByaXNpbmcgQVBJcyBmb3IgZmlsZXN5c3RlbSBhbmQgc3ZuIHBhdGgKK21h
bmlwdWxhdGlvbnMsIGR5bmFtaWMgY29kZSBjb25zdHJ1Y3Rpb24gYW5kIGludHJvc3BlY3Rpb24s
IGEgUHkyL1B5MworY29tcGF0aWJpbGl0eSBuYW1lc3BhY2UgKCJweS5idWlsdGluIiksIElPIGNh
cHR1cmluZywgdGVybWluYWwgY29sb3JlZCBwcmludGluZworKG9uIHdpbmRvd3MgYW5kIGxpbnV4
KSwgaW5pLWZpbGUgcGFyc2luZyBhbmQgYSBsYXp5IGltcG9ydCBtZWNoYW5pc20uCitJdCBydW5z
IHVubW9kaWZpZWQgb24gYWxsIFB5dGhvbiBpbnRlcnByZXRlcnMgY29tcGF0aWJsZSB0byBQeXRo
b24yLjQgdXAKK3VudGlsIFB5dGhvbiAzLjIuICBUaGUgZ2VuZXJhbCBnb2FsIHdpdGggInB5IiBp
cyB0byBwcm92aWRlIHN0YWJsZSBBUElzCitmb3Igc29tZSBjb21tb24gdGFza3MgdGhhdCBhcmUg
Y29udGlub3VzbHkgdGVzdGVkIGFnYWluc3QgbWFueSBQeXRob24KK2ludGVycHJldGVycyBhbmQg
dGh1cyBhbHNvIHRvIGhlbHAgdHJhbnNpdGlvbi4gSGVyZSBhcmUgc29tZSBkb2NzOgorCisgICAg
aHR0cDovL3B5bGliLm9yZworCitOT1RFOiBUaGUgcHJpb3IgcHktMS4zLlggdmVyc2lvbnMgY29u
dGFpbmVkICJweS50ZXN0IiB3aGljaCBub3cgY29tZXMKK2FzIGl0cyBvd24gc2VwYXJhdGUgInB5
dGVzdCIgZGlzdHJpYnV0aW9uIGFuZCB3YXMganVzdCByZWxlYXNlZAorYXMgInB5dGVzdC0yLjAu
MCIsIHNlZSBoZXJlIGZvciB0aGUgcmV2YW1wZWQgZG9jczoKKworICAgIGh0dHA6Ly9weXRlc3Qu
b3JnCisgICAKK0FuZCAicHkuY2xlYW51cHxweS5sb29rdXB8cHkuY291bnRsb2MiIGV0Yy4gaGVs
cGVycyBhcmUgbm93IHBhcnQgb2YKK3RoZSBweWNtZCBkaXN0cmlidXRpb24sIHNlZSBodHRwOi8v
cHlwaS5weXRob24ub3JnL3B5cGkvcHljbWQKKworVGhpcyBtYWtlcyAicHktMS40LjAiIGEgc2lt
cGxlIGxpYnJhcnkgd2hpY2ggZG9lcyBub3QgaW5zdGFsbAorYW55IGNvbW1hbmQgbGluZSB1dGls
aXRpZXMgYW55bW9yZS4KKworY2hlZXJzLAoraG9sZ2VyCisKK0NoYW5nZXMgYmV0d2VlbiAxLjMu
NCBhbmQgMS40LjAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBw
eS50ZXN0IHdhcyBtb3ZlZCB0byBhIHNlcGFyYXRlICJweXRlc3QiIHBhY2thZ2UuIFdoYXQgcmVt
YWlucyBpcworICBhIHN0dWIgaG9vayB3aGljaCB3aWxsIHByb3h5IGBgaW1wb3J0IHB5LnRlc3Rg
YCB0byBgYHB5dGVzdGBgLgorLSBhbGwgY29tbWFuZCBsaW5lIHRvb2xzICgicHkuY2xlYW51cC9s
b29rdXAvY291bnRsb2MvLi4uIiBtb3ZlZAorICB0byAicHljbWQiIHBhY2thZ2UpCistIHJlbW92
ZWQgdGhlIG9sZCBhbmQgZGVwcmVjYXRlZCAicHkubWFnaWMiIG5hbWVzcGFjZQorLSB1c2UgYXBp
cGtnLTEuMSBhbmQgbWFrZSBweS5hcGlwa2cuaW5pdHBrZ3xBcGlNb2R1bGUgYXZhaWxhYmxlCist
IGFkZCBweS5pbmljb25maWcgbW9kdWxlIGZvciBicmFpbi1kZWFkIGVhc3kgaW5pLWNvbmZpZyBm
aWxlIHBhcnNpbmcKKy0gaW50cm9kdWNlIHB5LmJ1aWx0aW4uYW55KCkKKy0gcGF0aCBvYmplY3Rz
IGhhdmUgYSAuZGlybmFtZSBhdHRyaWJ1dGUgbm93IChlcXVpdmFsZW50IHRvCisgIG9zLnBhdGgu
ZGlybmFtZShwYXRoKSkKKy0gcGF0aC52aXNpdCgpIGFjY2VwdHMgYnJlYWR0aGZpcnN0IChiZikg
YW5kIHNvcnQgb3B0aW9ucworLSByZW1vdmUgZGVwcmVjYXRlZCBweS5jb21wYXQgbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4xLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YWE3NmIx
NDM4ZWI3Mjg4YzU4MGJhMmI1MGRkYTk2NTAzMTk4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4xLnR4dApAQCAtMCwwICsxLDQ3IEBACisKKy4u
IF9gcmVsZWFzZS0xLjQuMWA6CisKK3B5LTEuNC4xOiBjcm9zcy1weXRob24gbGliIGZvciBmcyBw
YXRoLCBjb2RlLCBpbywgLi4uIG1hbmlwdWxhdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitU
aGlzIGlzIGEgYnVnIGZpeCByZWxlYXNlIG9mIHRoZSAicHkiIGxpYiwgc2VlIGJlbG93IGZvciBk
ZXRhaWxlZCBjaGFuZ2VzLgorVGhlIHB5IGxpYiBpcyBhIHNtYWxsIGxpYnJhcnkgY29tcHJpc2lu
ZyBBUElzIGZvciBmaWxlc3lzdGVtIGFuZCBzdm4gcGF0aAorbWFuaXB1bGF0aW9ucywgZHluYW1p
YyBjb2RlIGNvbnN0cnVjdGlvbiBhbmQgaW50cm9zcGVjdGlvbiwgYSBQeTIvUHkzCitjb21wYXRp
YmlsaXR5IG5hbWVzcGFjZSAoInB5LmJ1aWx0aW4iKSwgSU8gY2FwdHVyaW5nLCB0ZXJtaW5hbCBj
b2xvcmVkIHByaW50aW5nCisob24gd2luZG93cyBhbmQgbGludXgpLCBpbmktZmlsZSBwYXJzaW5n
IGFuZCBhIGxhenkgaW1wb3J0IG1lY2hhbmlzbS4KK0l0IHJ1bnMgdW5tb2RpZmllZCBvbiBhbGwg
UHl0aG9uIGludGVycHJldGVycyBjb21wYXRpYmxlIHRvIFB5dGhvbjIuNCB1cAordW50aWwgUHl0
aG9uIDMuMiwgUHlQeSBhbmQgSnl0aG9uLiAgVGhlIGdlbmVyYWwgZ29hbCB3aXRoICJweSIgaXMg
dG8KK3Byb3ZpZGUgc3RhYmxlIEFQSXMgZm9yIHNvbWUgY29tbW9uIHRhc2tzIHRoYXQgYXJlIGNv
bnRpbm91c2x5IHRlc3RlZAorYWdhaW5zdCBtYW55IFB5dGhvbiBpbnRlcnByZXRlcnMgYW5kIHRo
dXMgYWxzbyB0byBoZWxwIHRyYW5zaXRpb24uIEhlcmUKK2FyZSBzb21lIGRvY3M6CisKKyAgICBo
dHRwOi8vcHlsaWIub3JnCisKK05PVEU6IFRoZSBwcmlvciBweS0xLjMuWCB2ZXJzaW9ucyBjb250
YWluZWQgInB5LnRlc3QiIHdoaWNoIHNpbmNlIHB5LTEuNC4wCitjb21lcyBhcyBpdHMgb3duIHNl
cGFyYXRlICJweXRlc3QiIGRpc3RyaWJ1dGlvbiwgc2VlOgorCisgICAgaHR0cDovL3B5dGVzdC5v
cmcKKyAgIAorQWxzbywgdGhlICJweS5jbGVhbnVwfHB5Lmxvb2t1cHxweS5jb3VudGxvYyIgaGVs
cGVycyBhcmUgbm93IHBhcnQgb2YKK3RoZSBweWNtZCBkaXN0cmlidXRpb24sIHNlZSBodHRwOi8v
cHlwaS5weXRob24ub3JnL3B5cGkvcHljbWQKKworCitDaGFuZ2VzIGJldHdlZW4gMS40LjAgYW5k
IDEuNC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCistIGZpeCBpc3N1ZTEgLSBweS5lcnJvci4qIGNsYXNzZXMgdG8gYmUgcGlja2xlYWJsZQor
CistIGZpeCBpc3N1ZTIgLSBvbiB3aW5kb3dzMzIgdXNlIFBBVEhFWFQgYXMgdGhlIGxpc3Qgb2Yg
cG90ZW50aWFsCisgIGV4dGVuc2lvbnMgdG8gZmluZCBmaW5kIGJpbmFyaWVzIHdpdGggcHkucGF0
aC5sb2NhbC5zeXNmaW5kKGNvbW1hbmRuYW1lKQorCistIGZpeCAocHl0ZXN0LSkgaXNzdWUxMCBh
bmQgcmVmaW5lIGFzc2VydGlvbiByZWludGVycHJldGF0aW9uCisgIHRvIGF2b2lkIGJyZWFraW5n
IGlmIHRoZSBfX25vbnplcm9fXyBvZiBhbiBvYmplY3QgZmFpbHMKKworLSBmaXggKHB5dGVzdC0p
IGlzc3VlMTcgd2hlcmUgcHl0aG9uMyBkb2VzIG5vdCBsaWtlIHN0YXItaW1wb3J0cywKKyAgbGVh
ZGluZyB0byBtaXNyZXByZXNlbnRhdGlvbiBvZiBpbXBvcnQtZXJyb3JzIGluIHRlc3QgbW9kdWxl
cworCistIGZpeCBgYHB5LmVycm9yLipgYCBhdHRyaWJ1dGUgcHlweSBhY2Nlc3MKKworLSBhbGxv
dyBwYXRoLnNhbWVmaWxlKGFyZykgdG8gc3VjY2VlZCB3aGVuIGFyZyBpcyBhIHJlbGF0aXZlIGZp
bGVuYW1lCisKKy0gZml4IChweXRlc3QtKSBpc3N1ZTIwIHBhdGguc2FtZWZpbGUocmVscGF0aCkg
d29ya3MgYXMgZXhwZWN0ZWQgbm93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9y
ZWxlYXNlcy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlcy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzA5YzI5YmFjNWRlM2ExNTU0NmFiYzU1NjI1NzM1NDlkOWE5YjAyMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2VzLnR4dApAQCAtMCwwICsxLDE2IEBA
Cis9PT09PT09PT09PT09CitSZWxlYXNlIG5vdGVzCis9PT09PT09PT09PT09CisKK0NvbnRlbnRz
OgorCisuLiB0b2N0cmVlOjoKKyAgIDptYXhkZXB0aDogMgorCisuLiBpbmNsdWRlOiByZWxlYXNl
LTEuMS4wCisuLiBpbmNsdWRlOiByZWxlYXNlLTEuMC4yCisKKyAgIHJlbGVhc2UtMS4wLjEKKyAg
IHJlbGVhc2UtMS4wLjAKKyAgIHJlbGVhc2UtMC45LjIKKyAgIHJlbGVhc2UtMC45LjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiNTViNjEwMmUzMzRmNDJlZDQ5
ODgzYmU5MGJmZGZiNzU2MWRkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMzMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2Fubm91bmNlL3JlbGVhc2UtMC45LjAudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFz
ZS0wLjkuMi50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4wLnR4dAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjEudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3Vu
Y2UvcmVsZWFzZS0xLjAuMi50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMS4w
LnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjEudHh0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxl
YXNlLTEuMi4xLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjAudHh0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50eHQKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5v
dW5jZS9yZWxlYXNlLTEuMy4yLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4z
LjMudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuNC50eHQKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4wLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3Jl
bGVhc2UtMS40LjEudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZXMudHh0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9jaGFuZ2Vsb2cudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY2hhbmdlbG9n
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzdkYWNhMzU0ODc3OTU2MGJkZjcwNjAyNTE4YmNkOWViM2IzYTE2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY2hhbmdlbG9nLnR4dApAQCAtMCwwICsx
LDMgQEAKKy4uIF9gY2hhbmdlbG9nYDoKKworLi4gaW5jbHVkZTo6IC4uL0NIQU5HRUxPRwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvY29kZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9jb2RlLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZGQ4NjkxZGEwM2UyZTNhMmY3NjhkOGE4ODc3YzdkNGU0MTBmMzgyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY29kZS50eHQKQEAgLTAsMCArMSwxNTAgQEAKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CitweS5jb2RlOiBoaWdoZXIgbGV2ZWwgcHl0aG9uIGNvZGUgYW5k
IGludHJvc3BlY3Rpb24gb2JqZWN0cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworYGBweS5j
b2RlYGAgcHJvdmlkZXMgaGlnaGVyIGxldmVsIEFQSXMgYW5kIG9iamVjdHMgZm9yIENvZGUsIEZy
YW1lLCBUcmFjZWJhY2ssCitFeGNlcHRpb25JbmZvIGFuZCBzb3VyY2UgY29kZSBjb25zdHJ1Y3Rp
b24uICBUaGUgYGBweS5jb2RlYGAgbGlicmFyeQordHJpZXMgdG8gc2ltcGxpZnkgYWNjZXNzaW5n
IHRoZSBjb2RlIG9iamVjdHMgYXMgd2VsbCBhcyBjcmVhdGluZyB0aGVtLgorVGhlcmUgaXMgYSBz
bWFsbCBzZXQgb2YgaW50ZXJmYWNlcyBhIHVzZXIgbmVlZHMgdG8gZGVhbCB3aXRoLCBhbGwgbmlj
ZWx5CitidW5kbGVkIHRvZ2V0aGVyLCBhbmQgd2l0aCBhIHJpY2ggc2V0IG9mICdQeXRob25pYycg
ZnVuY3Rpb25hbGl0eS4KKworQ29udGVudHMgb2YgdGhlIGxpYnJhcnkKKz09PT09PT09PT09PT09
PT09PT09PT09CisKK0V2ZXJ5IG9iamVjdCBpbiB0aGUgYGBweS5jb2RlYGAgbGlicmFyeSB3cmFw
cyBhIGNvZGUgUHl0aG9uIG9iamVjdCByZWxhdGVkCit0byBjb2RlIG9iamVjdHMsIHNvdXJjZSBj
b2RlLCBmcmFtZXMgYW5kIHRyYWNlYmFja3M6IHRoZSBgYHB5LmNvZGUuQ29kZWBgCitjbGFzcyB3
cmFwcyBjb2RlIG9iamVjdHMsIGBgcHkuY29kZS5Tb3VyY2VgYCBzb3VyY2Ugc25pcHBldHMsCitg
YHB5LmNvZGUuVHJhY2ViYWNrYCBleGNlcHRpb24gdHJhY2ViYWNrcywgYGBweS5jb2RlLkZyYW1l
YGAgZnJhbWUKK29iamVjdHMgKGFzIGZvdW5kIGluIGUuZy4gdHJhY2ViYWNrcykgYW5kIGBgcHku
Y29kZS5FeGNlcHRpb25JbmZvYGAgdGhlCit0dXBsZSBwcm92aWRlZCBieSBzeXMuZXhjX2luZm8o
KSAoY29udGFpbmluZyBleGNlcHRpb24gYW5kIHRyYWNlYmFjaworaW5mb3JtYXRpb24gd2hlbiBh
biBleGNlcHRpb24gb2NjdXJzKS4gQWxzbyBpbiB0aGUgbGlicmFyeSBpcyBhIGhlbHBlciBmdW5j
dGlvbgorYGBweS5jb2RlLmNvbXBpbGUoKWBgIHRoYXQgcHJvdmlkZXMgdGhlIHNhbWUgZnVuY3Rp
b25hbGl0eSBhcyBQeXRob24ncworYnVpbHQtaW4gJ2NvbXBpbGUoKScgZnVuY3Rpb24sIGJ1dCBy
ZXR1cm5zIGEgd3JhcHBlZCBjb2RlIG9iamVjdC4KKworVGhlIHdyYXBwZXJzCis9PT09PT09PT09
PT0KKworYGBweS5jb2RlLkNvZGVgYAorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDb2RlIG9iamVj
dHMgYXJlIGluc3RhbnRpYXRlZCB3aXRoIGEgY29kZSBvYmplY3Qgb3IgYSBjYWxsYWJsZSBhcyBh
cmd1bWVudCwKK2FuZCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgdG8gY29tcGFyZSB0aGVtc2VsdmVz
IHdpdGggb3RoZXIgQ29kZSBvYmplY3RzLCBnZXQgdG8KK3RoZSBzb3VyY2UgZmlsZSBvciBpdHMg
Y29udGVudHMsIGNyZWF0ZSBuZXcgQ29kZSBvYmplY3RzIGZyb20gc2NyYXRjaCwgZXRjLgorCitB
IHF1aWNrIGV4YW1wbGU6OgorCisgID4+PiBpbXBvcnQgcHkKKyAgPj4+IGMgPSBweS5jb2RlLkNv
ZGUocHkucGF0aC5sb2NhbC5yZWFkKQorICA+Pj4gYy5wYXRoLmJhc2VuYW1lCisgICdjb21tb24u
cHknCisgID4+PiBpc2luc3RhbmNlKGMuc291cmNlKCksIHB5LmNvZGUuU291cmNlKQorICBUcnVl
CisgID4+PiBzdHIoYy5zb3VyY2UoKSkuc3BsaXQoJ1xuJylbMF0KKyAgImRlZiByZWFkKHNlbGYs
IG1vZGU9J3InKToiCisKKy4uIGF1dG9jbGFzczo6IHB5LmNvZGUuQ29kZQorICAgIDptZW1iZXJz
OgorICAgIDppbmhlcml0ZWQtbWVtYmVyczoKKworCitgYHB5LmNvZGUuU291cmNlYGAKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitTb3VyY2Ugb2JqZWN0cyB3cmFwIHNuaXBwZXRzIG9mIFB5dGhv
biBzb3VyY2UgY29kZSwgcHJvdmlkaW5nIGEgc2ltcGxlIHlldAorcG93ZXJmdWwgaW50ZXJmYWNl
IHRvIHJlYWQsIGRlaW5kZW50LCBzbGljZSwgY29tcGFyZSwgY29tcGlsZSBhbmQgbWFuaXB1bGF0
ZQordGhlbSwgdGhpbmdzIHRoYXQgYXJlIG5vdCBzbyBlYXN5IGluIGNvcmUgUHl0aG9uLgorCitF
eGFtcGxlOjoKKworICA+Pj4gcyA9IHB5LmNvZGUuU291cmNlKCIiIlwKKyAgLi4uICAgZGVmIGZv
bygpOgorICAuLi4gICAgIHByaW50ICJmb28iCisgIC4uLiAiIiIpCisgID4+PiBzdHIocykuc3Rh
cnRzd2l0aCgnZGVmJykgIyBhdXRvbWF0aWMgZGUtaW5kZW50YXRpb24hCisgIFRydWUKKyAgPj4+
IHMuaXNwYXJzZWFibGUoKQorICBUcnVlCisgID4+PiBzdWIgPSBzLmdldHN0YXRlbWVudCgxKSAj
IGdldCB0aGUgc3RhdGVtZW50IHN0YXJ0aW5nIGF0IGxpbmUgMQorICA+Pj4gc3RyKHN1Yikuc3Ry
aXAoKSAjIFhYWCB3aHkgaXMgdGhlIHN0cmlwKCkgcmVxdWlyZWQ/IT8KKyAgJ3ByaW50ICJmb28i
JworCisuLiBhdXRvY2xhc3M6OiBweS5jb2RlLlNvdXJjZQorICAgIDptZW1iZXJzOgorCisKK2Bg
cHkuY29kZS5UcmFjZWJhY2tgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RyYWNlYmFj
a3MgYXJlIHVzdWFsbHkgbm90IHZlcnkgZWFzeSB0byBleGFtaW5lLCB5b3UgbmVlZCB0byBhY2Nl
c3MgY2VydGFpbgorc29tZXdoYXQgaGlkZGVuIGF0dHJpYnV0ZXMgb2YgdGhlIHRyYWNlYmFjaydz
IGl0ZW1zIChyZXN1bHRpbmcgaW4gZXhwcmVzc2lvbnMKK3N1Y2ggYXMgJ2ZuYW1lID0gdGIudGJf
bmV4dC50Yl9mcmFtZS5mX2NvZGUuY29fZmlsZW5hbWUnKS4gVGhlIFRyYWNlYmFjaworaW50ZXJm
YWNlIChhbmQgaXRzIFRyYWNlYmFja0l0ZW0gY2hpbGRyZW4pIHRyaWVzIHRvIGltcHJvdmUgdGhp
cy4KKworRXhhbXBsZTo6CisKKyAgPj4+IGltcG9ydCBzeXMKKyAgPj4+IHRyeToKKyAgLi4uICAg
cHkucGF0aC5sb2NhbCgxMDApICMgaWxsZWdhbCBhcmd1bWVudAorICAuLi4gZXhjZXB0OgorICAu
Li4gICBleGMsIGUsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAgPj4+IHQgPSBweS5jb2RlLlRyYWNl
YmFjayh0YikKKyAgPj4+IGZpcnN0ID0gdFsxXSAjIGdldCB0aGUgc2Vjb25kIGVudHJ5IChmaXJz
dCBpcyBpbiB0aGlzIGRvYykKKyAgPj4+IGZpcnN0LnBhdGguYmFzZW5hbWUgIyBzZWNvbmQgaXMg
aW4gcHkvcGF0aC9sb2NhbC5weQorICAnbG9jYWwucHknCisgID4+PiBpc2luc3RhbmNlKGZpcnN0
LnN0YXRlbWVudCwgcHkuY29kZS5Tb3VyY2UpCisgIFRydWUKKyAgPj4+IHN0cihmaXJzdC5zdGF0
ZW1lbnQpLnN0cmlwKCkuc3RhcnRzd2l0aCgncmFpc2UgVmFsdWVFcnJvcicpCisgIFRydWUKKwor
Li4gYXV0b2NsYXNzOjogcHkuY29kZS5UcmFjZWJhY2sKKyAgICA6bWVtYmVyczoKKworYGBweS5j
b2RlLkZyYW1lYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZyYW1lIHdyYXBwZXJzIGFyZSB1
c2VkIGluIGBgcHkuY29kZS5UcmFjZWJhY2tgYCBpdGVtcywgYW5kIHdpbGwgdXN1YWxseSBub3QK
K2RpcmVjdGx5IGJlIGluc3RhbnRpYXRlZC4gVGhleSBwcm92aWRlIHNvbWUgbmljZSBtZXRob2Rz
IHRvIGV2YWx1YXRlIGNvZGUKKydpbnNpZGUnIHRoZSBmcmFtZSAodXNpbmcgdGhlIGZyYW1lJ3Mg
bG9jYWwgdmFyaWFibGVzKSwgZ2V0IHRvIHRoZSB1bmRlcmx5aW5nCitjb2RlIChmcmFtZXMgaGF2
ZSBhIGNvZGUgYXR0cmlidXRlIHRoYXQgcG9pbnRzIHRvIGEgYGBweS5jb2RlLkNvZGVgYCBvYmpl
Y3QpCithbmQgZXhhbWluZSB0aGUgYXJndW1lbnRzLgorCitFeGFtcGxlICh1c2luZyB0aGUgJ2Zp
cnN0JyBUcmFjZWJhY2tJdGVtIGluc3RhbmNlIGNyZWF0ZWQgYWJvdmUpOjoKKworICA+Pj4gZnJh
bWUgPSBmaXJzdC5mcmFtZQorICA+Pj4gaXNpbnN0YW5jZShmcmFtZS5jb2RlLCBweS5jb2RlLkNv
ZGUpCisgIFRydWUKKyAgPj4+IGlzaW5zdGFuY2UoZnJhbWUuZXZhbCgnc2VsZicpLCBweS5wYXRo
LmxvY2FsKQorICBUcnVlCisgID4+PiBbbmFtZXZhbHVlWzBdIGZvciBuYW1ldmFsdWUgaW4gZnJh
bWUuZ2V0YXJncygpXQorICBbJ2NscycsICdwYXRoJ10KKworLi4gYXV0b2NsYXNzOjogcHkuY29k
ZS5GcmFtZQorICAgIDptZW1iZXJzOgorCitgYHB5LmNvZGUuRXhjZXB0aW9uSW5mb2BgCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Egd3JhcHBlciBhcm91bmQgdGhlIHR1cGxlIHJl
dHVybmVkIGJ5IHN5cy5leGNfaW5mbygpICh3aWxsIGNhbGwgc3lzLmV4Y19pbmZvKCkKK2l0c2Vs
ZiBpZiB0aGUgdHVwbGUgaXMgbm90IHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50KSwgcHJvdmlkZXMg
c29tZSBoYW5keQorYXR0cmlidXRlcyB0byBlYXNpbHkgYWNjZXNzIHRoZSB0cmFjZWJhY2sgYW5k
IGV4Y2VwdGlvbiBzdHJpbmcuCisKK0V4YW1wbGU6OgorCisgID4+PiBpbXBvcnQgc3lzCisgID4+
PiB0cnk6CisgIC4uLiAgIGZvb2JhcigpCisgIC4uLiBleGNlcHQ6CisgIC4uLiAgIGV4Y2luZm8g
PSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICA+Pj4gZXhjaW5mby50eXBlbmFtZQorICAnTmFt
ZUVycm9yJworICA+Pj4gaXNpbnN0YW5jZShleGNpbmZvLnRyYWNlYmFjaywgcHkuY29kZS5UcmFj
ZWJhY2spCisgIFRydWUKKyAgPj4+IGV4Y2luZm8uZXhjb25seSgpCisgICJOYW1lRXJyb3I6IG5h
bWUgJ2Zvb2JhcicgaXMgbm90IGRlZmluZWQiCisKKy4uIGF1dG9jbGFzczo6IHB5LmNvZGUuRXhj
ZXB0aW9uSW5mbworICAgIDptZW1iZXJzOgorCisuLiBhdXRvY2xhc3M6OiBweS5jb2RlLlRyYWNl
YmFjaworICAgIDptZW1iZXJzOgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9jb25mLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTRjYmY4YTQ2ZjEwNTJmNTQ3MTNlMmI1
MTIzMzM1MWUxM2NkMTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY29uZi5weQpA
QCAtMCwwICsxLDI2MyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMKKyMgcHkgZG9jdW1l
bnRhdGlvbiBidWlsZCBjb25maWd1cmF0aW9uIGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1
aWNrc3RhcnQgb24gVGh1IE9jdCAyMSAwODozMDoxMCAyMDEwLgorIworIyBUaGlzIGZpbGUgaXMg
ZXhlY2ZpbGUoKWQgd2l0aCB0aGUgY3VycmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWlu
aW5nIGRpci4KKyMKKyMgTm90ZSB0aGF0IG5vdCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2
YWx1ZXMgYXJlIHByZXNlbnQgaW4gdGhpcworIyBhdXRvZ2VuZXJhdGVkIGZpbGUuCisjCisjIEFs
bCBjb25maWd1cmF0aW9uIHZhbHVlcyBoYXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNv
bW1lbnRlZCBvdXQKKyMgc2VydmUgdG8gc2hvdyB0aGUgZGVmYXVsdC4KKworaW1wb3J0IHN5cywg
b3MKKworIyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2Rv
YykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8g
c3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9j
dW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUs
IGxpa2Ugc2hvd24gaGVyZS4KKyNzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKCcu
JykpCisKKyMgLS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9u
IG5lZWRzIGEgbWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KKyNuZWVkc19z
cGhpbnggPSAnMS4wJworCisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMg
aGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUgZXh0ZW5zaW9ucworIyBjb21pbmcgd2l0aCBT
cGhpbnggKG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbSBvbmVzLgorZXh0ZW5z
aW9ucyA9IFsnc3BoaW54LmV4dC5hdXRvZG9jJywgJ3NwaGlueC5leHQuZG9jdGVzdCcsICdzcGhp
bnguZXh0LmludGVyc3BoaW54JywgJ3NwaGlueC5leHQudmlld2NvZGUnXQorCisjIEFkZCBhbnkg
cGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVj
dG9yeS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9m
IHNvdXJjZSBmaWxlbmFtZXMuCitzb3VyY2Vfc3VmZml4ID0gJy50eHQnCisKKyMgVGhlIGVuY29k
aW5nIG9mIHNvdXJjZSBmaWxlcy4KKyNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJworCisj
IFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KK21hc3Rlcl9kb2MgPSAnaW5kZXgnCisKKyMg
R2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KK3Byb2plY3QgPSB1J3B5Jwor
Y29weXJpZ2h0ID0gdScyMDEwLCBob2xnZXIga3Jla2VsIGV0LiBhbC4nCisKKyMgVGhlIHZlcnNp
b24gaW5mbyBmb3IgdGhlIHByb2plY3QgeW91J3JlIGRvY3VtZW50aW5nLCBhY3RzIGFzIHJlcGxh
Y2VtZW50IGZvcgorIyB8dmVyc2lvbnwgYW5kIHxyZWxlYXNlfCwgYWxzbyB1c2VkIGluIHZhcmlv
dXMgb3RoZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlCisjIGJ1aWx0IGRvY3VtZW50cy4KKyMKKyMg
VGhlIHNob3J0IFguWSB2ZXJzaW9uLgorIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxw
aGEvYmV0YS9yYyB0YWdzLgoraW1wb3J0IHB5CityZWxlYXNlID0gcHkuX192ZXJzaW9uX18KK3Zl
cnNpb24gPSAiLiIuam9pbihyZWxlYXNlLnNwbGl0KCIuIilbOjJdKQorCisjIFRoZSBsYW5ndWFn
ZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRh
dGlvbgorIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCisjbGFuZ3VhZ2UgPSBO
b25lCisKKyMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0
aGVyLCB5b3Ugc2V0IHRvZGF5IHRvIHNvbWUKKyMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlz
IHVzZWQ6CisjdG9kYXkgPSAnJworIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9y
bWF0IGZvciBhIHN0cmZ0aW1lIGNhbGwuCisjdG9kYXlfZm10ID0gJyVCICVkLCAlWScKKworIyBM
aXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNo
IGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3Vy
Y2UgZmlsZXMuCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVpbGQnXQorCisjIFRoZSByZVNUIGRl
ZmF1bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwg
ZG9jdW1lbnRzLgorI2RlZmF1bHRfcm9sZSA9IE5vbmUKKworIyBJZiB0cnVlLCAnKCknIHdpbGwg
YmUgYXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCisjYWRkX2Z1
bmN0aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQorCisjIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVs
ZSBuYW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgorIyB1bml0IHRpdGxl
cyAoc3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KKyNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQorCisj
IElmIHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwg
YmUgc2hvd24gaW4gdGhlCisjIG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0Lgor
I3Nob3dfYXV0aG9ycyA9IEZhbHNlCisKKyMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50
YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitweWdtZW50c19zdHlsZSA9ICdzcGhpbngn
CisKKyMgQSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5n
LgorI21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQorCisKKyMgLS0gT3B0aW9ucyBmb3IgSFRN
TCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKKyMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAg
U2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCito
dG1sX3RoZW1lID0gJ2RlZmF1bHQnCisKKyMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lm
aWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCisjIGZ1cnRoZXIu
ICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhl
CisjIGRvY3VtZW50YXRpb24uCisjaHRtbF90aGVtZV9vcHRpb25zID0ge30KKworIyBBZGQgYW55
IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMg
ZGlyZWN0b3J5LgorI2h0bWxfdGhlbWVfcGF0aCA9IFtdCisKKyMgVGhlIG5hbWUgZm9yIHRoaXMg
c2V0IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bworIyAiPHBy
b2plY3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCisjaHRtbF90aXRsZSA9IE5vbmUKKwor
IyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhl
IHNhbWUgYXMgaHRtbF90aXRsZS4KKyNodG1sX3Nob3J0X3RpdGxlID0gTm9uZQorCisjIFRoZSBu
YW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFj
ZSBhdCB0aGUgdG9wCisjIG9mIHRoZSBzaWRlYmFyLgorI2h0bWxfbG9nbyA9IE5vbmUKKworIyBU
aGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2Ug
YXMgZmF2aWNvbiBvZiB0aGUKKyMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dz
IGljb24gZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKKyMgcGl4ZWxzIGxhcmdlLgor
I2h0bWxfZmF2aWNvbiA9IE5vbmUKKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0
b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRpdmUg
dG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0
aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRl
IHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCitodG1sX3N0YXRpY19wYXRoID0gWydfc3RhdGlj
J10KKworIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNl
cnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKKyMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZv
cm1hdC4KKyNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZJworCisjIElmIHRydWUs
IFNtYXJ0eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3RlcyBhbmQgZGFzaGVzIHRv
CisjIHR5cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgorI2h0bWxfdXNlX3NtYXJ0eXBh
bnRzID0gVHJ1ZQorCisjIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1bWVudCBu
YW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX3NpZGViYXJzID0ge30KKworIyBBZGRpdGlv
bmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBwYWdlcywgbWFwcyBwYWdl
IG5hbWVzIHRvCisjIHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfYWRkaXRpb25hbF9wYWdlcyA9IHt9
CisKKyMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCisjaHRtbF9kb21h
aW5faW5kaWNlcyA9IFRydWUKKworIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMgZ2VuZXJhdGVkLgor
I2h0bWxfdXNlX2luZGV4ID0gVHJ1ZQorCisjIElmIHRydWUsIHRoZSBpbmRleCBpcyBzcGxpdCBp
bnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgorI2h0bWxfc3BsaXRfaW5kZXgg
PSBGYWxzZQorCisjIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVk
IHRvIHRoZSBwYWdlcy4KKyNodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUKKworIyBJZiB0cnVl
LCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVm
YXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCisKKyMgSWYgdHJ1ZSwgIihD
KSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMg
VHJ1ZS4KKyNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQorCisjIElmIHRydWUsIGFuIE9wZW5T
ZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFsbCBwYWdlcyB3aWxs
CisjIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRoZSB2YWx1ZSBvZiB0
aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQorIyBiYXNlIFVSTCBmcm9tIHdoaWNoIHRoZSBmaW5pc2hl
ZCBIVE1MIGlzIHNlcnZlZC4KKyNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycKKworIyBUaGlzIGlz
IHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZpbGVzIChlLmcuICIueGh0bWwiKS4KKyNo
dG1sX2ZpbGVfc3VmZml4ID0gTm9uZQorCisjIE91dHB1dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRN
TCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICdweScKKworCisjIC0tIE9wdGlv
bnMgZm9yIExhVGVYIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisjIFRoZSBwYXBlciBzaXplICgnbGV0dGVyJyBvciAnYTQnKS4KKyNs
YXRleF9wYXBlcl9zaXplID0gJ2xldHRlcicKKworIyBUaGUgZm9udCBzaXplICgnMTBwdCcsICcx
MXB0JyBvciAnMTJwdCcpLgorI2xhdGV4X2ZvbnRfc2l6ZSA9ICcxMHB0JworCisjIEdyb3VwaW5n
IHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChz
b3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRvY3VtZW50Y2xh
c3MgW2hvd3RvL21hbnVhbF0pLgorbGF0ZXhfZG9jdW1lbnRzID0gWworICAoJ2luZGV4JywgJ3B5
LnRleCcsIHUncHkgRG9jdW1lbnRhdGlvbicsCisgICB1J2hvbGdlciBrcmVrZWwgZXQuIGFsLics
ICdtYW51YWwnKSwKK10KKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0
byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcCBvZgorIyB0aGUgdGl0bGUgcGFn
ZS4KKyNsYXRleF9sb2dvID0gTm9uZQorCisjIEZvciAibWFudWFsIiBkb2N1bWVudHMsIGlmIHRo
aXMgaXMgdHJ1ZSwgdGhlbiB0b3BsZXZlbCBoZWFkaW5ncyBhcmUgcGFydHMsCisjIG5vdCBjaGFw
dGVycy4KKyNsYXRleF91c2VfcGFydHMgPSBGYWxzZQorCisjIElmIHRydWUsIHNob3cgcGFnZSBy
ZWZlcmVuY2VzIGFmdGVyIGludGVybmFsIGxpbmtzLgorI2xhdGV4X3Nob3dfcGFnZXJlZnMgPSBG
YWxzZQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRlciBleHRlcm5hbCBsaW5r
cy4KKyNsYXRleF9zaG93X3VybHMgPSBGYWxzZQorCisjIEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRo
ZSBMYVRlWCBwcmVhbWJsZS4KKyNsYXRleF9wcmVhbWJsZSA9ICcnCisKKyMgRG9jdW1lbnRzIHRv
IGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFscy4KKyNsYXRleF9hcHBlbmRpY2Vz
ID0gW10KKworIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4IGlzIGdlbmVyYXRlZC4KKyNsYXRl
eF9kb21haW5faW5kaWNlcyA9IFRydWUKKworCisjIC0tIE9wdGlvbnMgZm9yIG1hbnVhbCBwYWdl
IG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisj
IE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3Rh
cnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4KK21h
bl9wYWdlcyA9IFsKKyAgICAoJ2luZGV4JywgJ3B5JywgdSdweSBEb2N1bWVudGF0aW9uJywKKyAg
ICAgW3UnaG9sZ2VyIGtyZWtlbCBldC4gYWwuJ10sIDEpCitdCisKK2F1dG9kb2NfbWVtYmVyX29y
ZGVyID0gImJ5c291cmNlIgorYXV0b2RvY19kZWZhdWx0X2ZsYWdzID0gImluaGVyaXRlZC1tZW1i
ZXJzIgorCisjIC0tIE9wdGlvbnMgZm9yIEVwdWIgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEJpYmxpb2dyYXBoaWMgRHVibGlu
IENvcmUgaW5mby4KK2VwdWJfdGl0bGUgPSB1J3B5JworZXB1Yl9hdXRob3IgPSB1J2hvbGdlciBr
cmVrZWwgZXQuIGFsLicKK2VwdWJfcHVibGlzaGVyID0gdSdob2xnZXIga3Jla2VsIGV0LiBhbC4n
CitlcHViX2NvcHlyaWdodCA9IHUnMjAxMCwgaG9sZ2VyIGtyZWtlbCBldC4gYWwuJworCisjIFRo
ZSBsYW5ndWFnZSBvZiB0aGUgdGV4dC4gSXQgZGVmYXVsdHMgdG8gdGhlIGxhbmd1YWdlIG9wdGlv
bgorIyBvciBlbiBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHNldC4KKyNlcHViX2xhbmd1YWdlID0g
JycKKworIyBUaGUgc2NoZW1lIG9mIHRoZSBpZGVudGlmaWVyLiBUeXBpY2FsIHNjaGVtZXMgYXJl
IElTQk4gb3IgVVJMLgorI2VwdWJfc2NoZW1lID0gJycKKworIyBUaGUgdW5pcXVlIGlkZW50aWZp
ZXIgb2YgdGhlIHRleHQuIFRoaXMgY2FuIGJlIGEgSVNCTiBudW1iZXIKKyMgb3IgdGhlIHByb2pl
Y3QgaG9tZXBhZ2UuCisjZXB1Yl9pZGVudGlmaWVyID0gJycKKworIyBBIHVuaXF1ZSBpZGVudGlm
aWNhdGlvbiBmb3IgdGhlIHRleHQuCisjZXB1Yl91aWQgPSAnJworCisjIEhUTUwgZmlsZXMgdGhh
dCBzaG91bGQgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBwYWdlcyBjcmVhdGVkIGJ5IHNwaGlueC4K
KyMgVGhlIGZvcm1hdCBpcyBhIGxpc3Qgb2YgdHVwbGVzIGNvbnRhaW5pbmcgdGhlIHBhdGggYW5k
IHRpdGxlLgorI2VwdWJfcHJlX2ZpbGVzID0gW10KKworIyBIVE1MIGZpbGVzIHNoYXQgc2hvdWxk
IGJlIGluc2VydGVkIGFmdGVyIHRoZSBwYWdlcyBjcmVhdGVkIGJ5IHNwaGlueC4KKyMgVGhlIGZv
cm1hdCBpcyBhIGxpc3Qgb2YgdHVwbGVzIGNvbnRhaW5pbmcgdGhlIHBhdGggYW5kIHRpdGxlLgor
I2VwdWJfcG9zdF9maWxlcyA9IFtdCisKKyMgQSBsaXN0IG9mIGZpbGVzIHRoYXQgc2hvdWxkIG5v
dCBiZSBwYWNrZWQgaW50byB0aGUgZXB1YiBmaWxlLgorI2VwdWJfZXhjbHVkZV9maWxlcyA9IFtd
CisKKyMgVGhlIGRlcHRoIG9mIHRoZSB0YWJsZSBvZiBjb250ZW50cyBpbiB0b2MubmN4LgorI2Vw
dWJfdG9jZGVwdGggPSAzCisKKyMgQWxsb3cgZHVwbGljYXRlIHRvYyBlbnRyaWVzLgorI2VwdWJf
dG9jZHVwID0gVHJ1ZQorCisKKyMgRXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBpbnRlcnNwaGlu
eDogcmVmZXIgdG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LgoraW50ZXJzcGhpbnhfbWFw
cGluZyA9IHsnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8nOiBOb25lfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvZG93bmxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Rvd25sb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWY0YzQ2NjQwMmQxNGNjYWY2MzAyYWE0OGUzOTMzYTcyNmM1NGEwOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Rvd25sb2FkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRl
bnQ9IiAxIDsgVVJMPWluc3RhbGwuaHRtbCIgLz4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keT4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3ZhciBnYUpzSG9zdCA9ICgoImh0dHBz
OiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0
cDovL3d3dy4iKTsKK2RvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsg
Z2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNj
cmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Cit0cnkgewordmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcigi
VUEtNzU5NzI3NC0zIik7CitwYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOworfSBjYXRjaChl
cnIpIHt9PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisgICAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9leGFtcGxlL2dlbmh0bWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbmh0bWwu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjVjOGY1MjViNjJhYmQ3YTJhZWQ3MThhNDA2YjYzNzg0ZWE3NWQxMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VuaHRtbC5weQpAQCAtMCww
ICsxLDEzIEBACitmcm9tIHB5LnhtbCBpbXBvcnQgaHRtbAorCitwYXJhcyA9ICJGaXJzdCBQYXJh
IiwgIlNlY29uZCBwYXJhIgorCitkb2MgPSBodG1sLmh0bWwoCisgICBodG1sLmhlYWQoCisgICAg
ICAgIGh0bWwubWV0YShuYW1lPSJDb250ZW50LVR5cGUiLCB2YWx1ZT0idGV4dC9odG1sOyBjaGFy
c2V0PWxhdGluMSIpKSwKKyAgIGh0bWwuYm9keSgKKyAgICAgICAgW2h0bWwucChwKSBmb3IgcCBp
biBwYXJhc10pKQorCitwcmludCB1bmljb2RlKGRvYykuZW5jb2RlKCdsYXRpbjEnKQorCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VuaHRtbGNzcy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2V4YW1wbGUvZ2VuaHRtbGNzcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTZkMGFmNTQ1NGM1NTgzNDZmNjhi
ZmQzZjRjNzEzOGU1YzgxNjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBs
ZS9nZW5odG1sY3NzLnB5CkBAIC0wLDAgKzEsMjMgQEAKK2ltcG9ydCBweQoraHRtbCA9IHB5Lnht
bC5odG1sCisKK2NsYXNzIG15KGh0bWwpOgorICAgICJhIGN1c3RvbSBzdHlsZSIKKyAgICBjbGFz
cyBib2R5KGh0bWwuYm9keSk6CisgICAgICAgIHN0eWxlID0gaHRtbC5TdHlsZShmb250X3NpemUg
PSAiMTIwJSIpCisKKyAgICBjbGFzcyBoMihodG1sLmgyKToKKyAgICAgICAgc3R5bGUgPSBodG1s
LlN0eWxlKGJhY2tncm91bmQgPSAiZ3JleSIpCisKKyAgICBjbGFzcyBwKGh0bWwucCk6CisgICAg
ICAgIHN0eWxlID0gaHRtbC5TdHlsZShmb250X3dlaWdodD0iYm9sZCIpCisKK2RvYyA9IG15Lmh0
bWwoCisgICAgbXkuaGVhZCgpLAorICAgIG15LmJvZHkoCisgICAgICAgIG15LmgyKCJoZWxsbyB3
b3JsZCIpLAorICAgICAgICBteS5wKCJib2xkIGFzIGJvbGQgY2FuIikKKyAgICApCispCisKK3By
aW50IGRvYy51bmljb2RlKGluZGVudD0yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBs
ZS9nZW54bWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbnhtbC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
Zjc1NGU4ODk3YmU4ZmZlMDEzZWEyNjY1ZTgyNGVmZmQxZmM2NjgzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9nZW54bWwucHkKQEAgLTAsMCArMSwxNyBAQAorCitpbXBv
cnQgcHkKK2NsYXNzIG5zKHB5LnhtbC5OYW1lc3BhY2UpOgorICAgIHBhc3MKKworZG9jID0gbnMu
Ym9va3MoCisgICAgbnMuYm9vaygKKyAgICAgICAgbnMuYXV0aG9yKCJNYXkgRGF5IiksCisgICAg
ICAgIG5zLnRpdGxlKCJweXRob24gZm9yIGphdmEgcHJvZ3JhbW1lcnMiKSwpLAorICAgIG5zLmJv
b2soCisgICAgICAgIG5zLmF1dGhvcigid2h5IiwgY2xhc3NfPSJzb21lY3NzY2xhc3MiKSwKKyAg
ICAgICAgbnMudGl0bGUoIkphdmEgZm9yIFB5dGhvbiBwcm9ncmFtbWVycyIpLCksCisgICAgcHVi
bGlzaGVyPSJOLk4iLAorICAgICkKK3ByaW50IGRvYy51bmljb2RlKGluZGVudD0yKS5lbmNvZGUo
J3V0ZjgnKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhOGFj
NDc3M2ZhNmE5ZTkwZTY0YmNjMzBlOThjZWU2NWM3NGJkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VuaHRtbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUv
Z2VuaHRtbGNzcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VueG1sLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9mYXEudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZmFxLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MmNiNGIzZmJkMzc4MjNiZDRlNTNlZTkxY2E1MjMxMGIwODMyNjJiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvZmFxLnR4dApAQCAtMCwwICsxLDE3MiBAQAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY29udGVudHM6OgorICAgIDpsb2NhbDoK
KyAgICA6ZGVwdGg6IDIKKworCitPbiBuYW1pbmcsIG5vc2V0ZXN0cywgbGljZW5zaW5nIGFuZCBt
YWdpYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitXaHkg
dGhlIGBgcHlgYCBuYW1pbmc/ICBXaHkgbm90IGBgcHl0ZXN0YGA/CistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgbW9zdGx5IGhhcyBo
aXN0b3JpYyByZWFzb25zIC0gdGhlIGFpbSBpcwordG8gZ2V0IGF3YXkgZnJvbSB0aGUgc29tZXdo
YXQgcXVlc3Rpb25hYmxlICdweScgbmFtZQorYXQgc29tZSBwb2ludC4gIFRoZXNlIGRheXMgKDIw
MTApIHRoZSAncHknIGxpYnJhcnkKK2FsbW9zdCBjb21wbGV0ZWx5IGNvbXByaXNlcyBBUElzIHRo
YXQgYXJlIHVzZWQKK2J5IHRoZSBgYHB5LnRlc3RgYCB0b29sLiAgVGhlcmUgYWxzbyBhcmUgc29t
ZQorb3RoZXIgdXNlcywgZS5nLiBvZiB0aGUgYGBweS5wYXRoLmxvY2FsKClgYCBhbmQKK290aGVy
IHBhdGggaW1wbGVtZW50YXRpb25zLiAgU28gaXQgcmVxdWlyZXMgc29tZQord29yayB0byBmYWN0
b3IgdGhlbSBvdXQgYW5kIGRvIHRoZSBzaGlmdC4KKworV2h5IHRoZSBgYHB5LnRlc3RgYCBuYW1p
bmc/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYmVjYXVzZSBvZiBU
QUItY29tcGxldGlvbiB1bmRlciBCYXNoL1NoZWxscy4gIElmIHlvdSBoaXQKK2BgcHkuPFRBQj5g
YCB5b3UnbGwgZ2V0IGEgbGlzdCBvZiBhdmFpbGFibGUgZGV2ZWxvcG1lbnQKK3Rvb2xzIHRoYXQg
YWxsIHNoYXJlIHRoZSBgYHB5LmBgIHByZWZpeC4gIEFub3RoZXIgbW90aXZhdGlvbgord2FzIHRv
IHVuaWZ5IHRoZSBwYWNrYWdlICgicHkudGVzdCIpIGFuZCB0b29sIGZpbGVuYW1lLgorCitXaGF0
J3MgcHkudGVzdCdzIHJlbGF0aW9uIHRvIGBgbm9zZXRlc3RzYGA/CistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworcHkudGVzdCBhbmQgbm9zZV8gc2hhcmUg
YmFzaWMgcGhpbG9zb3BoeSB3aGVuIGl0IGNvbWVzCit0byBydW5uaW5nIFB5dGhvbiB0ZXN0cy4g
IEluIGZhY3QsCit3aXRoIHB5LnRlc3QtMS4xLjAgaXQgaXMgZXZlciBlYXNpZXIgdG8gcnVuIG1h
bnkgdGVzdCBzdWl0ZXMKK3RoYXQgY3VycmVudGx5IHdvcmsgd2l0aCBgYG5vc2V0ZXN0c2BgLiAg
bm9zZV8gd2FzIGNyZWF0ZWQKK2FzIGEgY2xvbmUgb2YgYGBweS50ZXN0YGAgd2hlbiBweS50ZXN0
IHdhcyBpbiB0aGUgYGAwLjhgYCByZWxlYXNlCitjeWNsZSBzbyBzb21lIG9mIHRoZSBuZXdlciBm
ZWF0dXJlc18gaW50cm9kdWNlZCB3aXRoIHB5LnRlc3QtMS4wCithbmQgcHkudGVzdC0xLjEgaGF2
ZSBubyBjb3VudGVycGFydCBpbiBub3NlXy4KKworLi4gX25vc2U6IGh0dHA6Ly9zb21ldGhpbmdh
Ym91dG9yYW5nZS5jb20vbXJsL3Byb2plY3RzL25vc2UvMC4xMS4xLworLi4gX2ZlYXR1cmVzOiB0
ZXN0L2ZlYXR1cmVzLmh0bWwKKy4uIF9hcGlwa2c6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9hcGlwa2cKKworCitXaGF0J3MgdGhpcyAibWFnaWMiIHdpdGggcHkudGVzdD8KKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaXNzdWVzIHdoZXJlIHBlb3BsZSBo
YXZlIHVzZWQgdGhlIHRlcm0gIm1hZ2ljIiBpbiB0aGUgcGFzdDoKKworKiBgcHkvX19pbml0X18u
cHlgXyB1c2VzIHRoZSBhcGlwa2dfIG1lY2hhbmlzbSBmb3IgbGF6eS1pbXBvcnRpbmcKKyAgYW5k
IGZ1bGwgY29udHJvbCBvbiB3aGF0IEFQSSB5b3UgZ2V0IHdoZW4gaW1wb3J0aW5nICJpbXBvcnQg
cHkiLgorCisqIHdoZW4gYW4gYGBhc3NlcnRgYCBzdGF0ZW1lbnQgZmFpbHMsIHB5LnRlc3QgcmUt
aW50ZXJwcmV0cyB0aGUgZXhwcmVzc2lvbgorICB0byBzaG93IGludGVybWVkaWF0ZSB2YWx1ZXMg
aWYgYSB0ZXN0IGZhaWxzLiAgSWYgeW91ciBleHByZXNzaW9uCisgIGhhcyBzaWRlIGVmZmVjdHMg
dGhlIGludGVybWVkaWF0ZSB2YWx1ZXMgbWF5IG5vdCBiZSB0aGUgc2FtZSwgb2JmdXNjYXRpbmcK
KyAgdGhlIGluaXRpYWwgZXJyb3IgKHRoaXMgaXMgYWxzbyBleHBsYWluZWQgYXQgdGhlIGNvbW1h
bmQgbGluZSBpZiBpdCBoYXBwZW5zKS4KKyAgYGBweS50ZXN0IC0tbm8tYXNzZXJ0YGAgdHVybnMg
b2ZmIGFzc2VydCByZS1pbnRlcHJldGF0aW9uLgorICBTaWRlbm90ZTogaXQgaXMgZ29vZCBwcmFj
dGlzZSB0byBhdm9pZCBhc3NlcnRzIHdpdGggc2lkZSBlZmZlY3RzLgorCisKKy4uIF9gcHkgbmFt
ZXNwYWNlc2A6IGluZGV4Lmh0bWwKKy4uIF9gcHkvX19pbml0X18ucHlgOiBodHRwOi8vYml0YnVj
a2V0Lm9yZy9ocGs0Mi9weS10cnVuay9zcmMvdHJ1bmsvcHkvX19pbml0X18ucHkKKworV2hlcmUg
ZG9lcyBteSBgYHB5LnRlc3RgYCBjb21lL2ltcG9ydCBmcm9tPworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGlzc3VlOjoKKworICAgIHB5
LnRlc3QgLS12ZXJzaW9uCisKK3doaWNoIHRlbGxzIHlvdSBib3RoIHZlcnNpb24gYW5kIGltcG9y
dCBsb2NhdGlvbiBvZiB0aGUgdG9vbC4KKworCitmdW5jdGlvbiBhcmd1bWVudHMsIHBhcmFtZXRy
aXplZCB0ZXN0cyBhbmQgc2V0dXAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLi4gX2Z1bmNhcmdzOiB0ZXN0L2Z1bmNhcmdzLmh0bWwKKwor
SXMgdXNpbmcgZnVuY2FyZy0gdmVyc3VzIHhVbml0LWJhc2VkIHNldHVwIGEgc3R5bGUgcXVlc3Rp
b24/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworSXQgZGVwZW5kcy4gRm9yIHNpbXBsZSBhcHBsaWNhdGlvbnMgb3IgZm9y
IHBlb3BsZSBleHBlcmllbmNlZAord2l0aCBub3NlXyBvciB1bml0dGVzdC1zdHlsZSB0ZXN0IHNl
dHVwIHVzaW5nIGB4VW5pdCBzdHlsZSBzZXR1cGBfCittYWtlIHNvbWUgc2Vuc2UuICBGb3IgbGFy
Z2VyIHRlc3Qgc3VpdGVzLCBwYXJhbWV0cml6ZWQgdGVzdGluZworb3Igc2V0dXAgb2YgY29tcGxl
eCB0ZXN0IHJlc291cmNlcyB1c2luZyBmdW5jYXJnc18gaXMgcmVjb21tZW5kZWQuCitNb3Jlb3Zl
ciwgZnVuY2FyZ3MgYXJlIGlkZWFsIGZvciB3cml0aW5nIGFkdmFuY2VkIHRlc3Qgc3VwcG9ydAor
Y29kZSAobGlrZSBlLmcuIHRoZSBtb25rZXlwYXRjaF8sIHRoZSB0bXBkaXJfIG9yIGNhcHR1cmVf
IGZ1bmNhcmdzKQorYmVjYXVzZSB0aGUgc3VwcG9ydCBjb2RlIGNhbiByZWdpc3RlciBzZXR1cC90
ZWFyZG93biBmdW5jdGlvbnMKK2luIGEgbWFuYWdlZCBjbGFzcy9tb2R1bGUvZnVuY3Rpb24gc2Nv
cGUuCisKKy4uIF9tb25rZXlwYXRjaDogdGVzdC9wbHVnaW4vbW9ua2V5cGF0Y2guaHRtbAorLi4g
X3RtcGRpcjogdGVzdC9wbHVnaW4vdG1wZGlyLmh0bWwKKy4uIF9jYXB0dXJlOiB0ZXN0L3BsdWdp
bi9jYXB0dXJlLmh0bWwKKy4uIF9geFVuaXQgc3R5bGUgc2V0dXBgOiB0ZXN0L3h1bml0X3NldHVw
Lmh0bWwKKy4uIF9gcHl0ZXN0X25vc2VgOiB0ZXN0L3BsdWdpbi9ub3NlLmh0bWwKKworLi4gX2B3
aHkgcHl0ZXN0X3B5ZnVuY2FyZ19fIG1ldGhvZHM/YDoKKworV2h5IHRoZSBgYHB5dGVzdF9mdW5j
YXJnX18qYGAgbmFtZSBmb3IgZnVuY2FyZyBmYWN0b3JpZXM/CistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hlbiBleHBl
cmltZW50aW5nIHdpdGggZnVuY2FyZ3MgYW4gZXhwbGljaXQgcmVnaXN0cmF0aW9uIG1lY2hhbmlz
bQord2FzIGNvbnNpZGVyZWQuICBCdXQgbGFja2luZyBhIGdvb2QgdXNlIGNhc2UgZm9yIHRoaXMg
aW5kaXJlY3Rpb24gYW5kCitmbGV4aWJpbGl0eSB3ZSBkZWNpZGVkIHRvIGdvIGZvciBgQ29udmVu
dGlvbiBvdmVyIENvbmZpZ3VyYXRpb25gXyBhbmQKK2FsbG93IHRvIGRpcmVjdGx5IHNwZWNpZnkg
dGhlIGZhY3RvcnkuICBCZXNpZGVzIHJlbW92aW5nIHRoZSBuZWVkCitmb3IgYW4gaW5kaXJlY3Rp
b24gaXQgYWxsb3dzIHRvICJncmVwIiBmb3IgYGBweXRlc3RfZnVuY2FyZ19fTVlBUkdgYAorYW5k
IHdpbGwgc2FmZWx5IGZpbmQgYWxsIGZhY3RvcnkgZnVuY3Rpb25zIGZvciB0aGUgYGBNWUFSR2Bg
IGZ1bmN0aW9uCithcmd1bWVudC4gIEl0IGhlbHBzIHRvIGFsbGV2aWF0ZSB0aGUgZGUtY291cGxp
bmcgb2YgZnVuY3Rpb24KK2FyZ3VtZW50IHVzYWdlIGFuZCBjcmVhdGlvbi4KKworLi4gX2BDb252
ZW50aW9uIG92ZXIgQ29uZmlndXJhdGlvbmA6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
Q29udmVudGlvbl9vdmVyX0NvbmZpZ3VyYXRpb24KKworQ2FuIEkgeWllbGQgbXVsdGlwbGUgdmFs
dWVzIGZyb20gYSBmYWN0b3J5IGZ1bmN0aW9uPworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlcmUgYXJlIHR3byBjb25jZXB0dWFsIHJl
YXNvbnMgd2h5IHlpZWxkaW5nIGZyb20gYSBmYWN0b3J5IGZ1bmN0aW9uCitpcyBub3QgcG9zc2li
bGU6CisKKyogQ2FsbGluZyBmYWN0b3JpZXMgZm9yIG9idGFpbmluZyB0ZXN0IGZ1bmN0aW9uIGFy
Z3VtZW50cworICBpcyBwYXJ0IG9mIHNldHRpbmcgdXAgYW5kIHJ1bm5pbmcgYSB0ZXN0LiAgQXQg
dGhhdAorICBwb2ludCBpdCBpcyBub3QgcG9zc2libGUgdG8gYWRkIG5ldyB0ZXN0IGNhbGxzIHRv
CisgIHRoZSB0ZXN0IGNvbGxlY3Rpb24gYW55bW9yZS4KKworKiBJZiBtdWx0aXBsZSBmYWN0b3Jp
ZXMgeWllbGRlZCB2YWx1ZXMgdGhlcmUgd291bGQKKyAgYmUgbm8gbmF0dXJhbCBwbGFjZSB0byBk
ZXRlcm1pbmUgdGhlIGNvbWJpbmF0aW9uCisgIHBvbGljeSAtIGluIHJlYWwtd29ybGQgZXhhbXBs
ZXMgc29tZSBjb21iaW5hdGlvbnMKKyAgb2Z0ZW4gc2hvdWxkIG5vdCBydW4uCisKK1VzZSB0aGUg
YHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2BfIGhvb2sgdG8gc29sdmUgYm90aCBpc3N1ZXMKK2FuZCBp
bXBsZW1lbnQgdGhlIGBwYXJhbWV0cml6YXRpb24gc2NoZW1lIG9mIHlvdXIgY2hvaWNlYF8uCisK
Ky4uIF9gcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzYDogdGVzdC9mdW5jYXJncy5odG1sI3BhcmFtZXRy
aXppbmctdGVzdHMKKy4uIF9gcGFyYW1ldHJpemF0aW9uIHNjaGVtZSBvZiB5b3VyIGNob2ljZWA6
IGh0dHA6Ly90ZXRhbWFwLndvcmRwcmVzcy5jb20vMjAwOS8wNS8xMy9wYXJhbWV0cml6aW5nLXB5
dGhvbi10ZXN0cy1nZW5lcmFsaXplZC8KKworCitweS50ZXN0IGludGVyYWN0aW9uIHdpdGggb3Ro
ZXIgcGFja2FnZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK0lzc3VlcyB3aXRoIHB5LnRlc3QsIG11bHRpcHJvY2VzcyBhbmQgc2V0dXB0b29scz8K
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitPbiB3aW5kb3dzIHRoZSBtdWx0aXByb2Nlc3MgcGFja2FnZSB3aWxsIGluc3RhbnRp
YXRlIHN1YiBwcm9jZXNzZXMKK2J5IHBpY2tsaW5nIGFuZCB0aHVzIGltcGxpY2l0ZWx5IHJlLWlt
cG9ydCBhIGxvdCBvZiBsb2NhbCBtb2R1bGVzLgorVW5mb3J0dWFudGVseSwgc2V0dXB0b29scy0w
LjYuMTEgZG9lcyBub3QgYGBpZiBfX25hbWVfXz09J19fbWFpbl9fJ2BgCitwcm90ZWN0IGl0cyBn
ZW5lcmF0ZWQgY29tbWFuZCBsaW5lIHNjcmlwdC4gIFRoaXMgbGVhZHMgdG8gaW5maW5pdGUKK3Jl
Y3Vyc2lvbiB3aGVuIHJ1bm5pbmcgYSB0ZXN0IHRoYXQgaW5zdGFudGlhdGVzIFByb2Nlc3Nlcy4K
K1RoZXJlIGFyZSB0aGVzZSB3b3JrYXJvdW5kczoKKworKiBgaW5zdGFsbCBEaXN0cmlidXRlYF8g
YXMgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciBzZXR1cHRvb2xzCisgIGFuZCBpbnN0YWxsIHB5
LnRlc3QKKworKiBgZGlyZWN0bHkgdXNlIGEgY2hlY2tvdXRgXyB3aGljaCBhdm9pZHMgYWxsIHNl
dHVwdG9vbHMvRGlzdHJpYnV0ZQorICBpbnN0YWxsYXRpb24KKworSWYgdGhvc2Ugb3B0aW9ucyBh
cmUgbm90IGF2YWlsYWJsZSB0byB5b3UsIHlvdSBtYXkgYWxzbyBtYW51YWxseQorZml4IHRoZSBz
Y3JpcHQgdGhhdCBpcyBjcmVhdGVkIGJ5IHNldHVwdG9vbHMgYnkgaW5zZXJ0aW5nIGFuCitgYGlm
IF9fbmFtZV9fID09ICdfX21haW5fXydgYC4gIE9yIHlvdSBjYW4gY3JlYXRlIGEgInB5dGVzdC5w
eSIKK3NjcmlwdCB3aXRoIHRoaXMgY29udGVudCBhbmQgaW52b2tlIHRoYXQgd2l0aCB0aGUgcHl0
aG9uIHZlcnNpb246OgorCisgICAgaW1wb3J0IHB5CisgICAgaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKKyAgICAgICAgcHkuY21kbGluZS5weXRlc3QoKQorCisuLiBfYGRpcmVjdGx5IHVzZSBh
IGNoZWNrb3V0YDogaW5zdGFsbC5odG1sI2RpcmVjdGx5LXVzZS1hLWNoZWNrb3V0CisKKy4uIF9g
aW5zdGFsbCBkaXN0cmlidXRlYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Rpc3RyaWJ1
dGUjaW5zdGFsbGF0aW9uLWluc3RydWN0aW9ucworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2ltZy9weWxpYi5wbmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvcHlsaWIucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MTBkNDM4ODY2ODYxZWJhZjkxN2NkNDEyZTAxYzlkMGM3MmFlOWEKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDgyNzYKemNtWDlAMn48PHAqMWs5TTJ3QDVWNWZUZyNBVkx5UTJfaHo4Rmt2IUEjREl0
YSFWc2h5KDR0c3RaJUNMP0JPc0dkCnpxb1Nnc2ppP29lekpeaFRzMSZKMU9CRHJpQ3xibiZpcV9a
dUh+eUB9ViYkXiRJczVFeT97OXptcStBLWVoRD5sSwp6MDAyT2loe0kqQC16TkFzQUJPfTBAT0xn
UThVQkZFNjI9TXY7SmJrcD0hJSF7WFEhUEpAfTI5cVhZU21Vbng2cCgKem1EfCVZPSNub3x2b2Q1
RXNtajg8IUhme3RORmp9aGtIRDhkbipaWXVPengkbz1IcURAVFNIRkdqX0xMTDJ4UDxOCnpiUSMm
TXpyWCtSKDk3RSgkWiZTWSNlOCNSKWhkK0Y4cmxBOSQzVT9DViZeWWd4QmY5V3NKaX5UaVM4YzBR
djdXQwp6Uzs7cnJkLXMzJkNOJCFvenlFRm9mUGVxfV91ST9PYz52KEhNLW5jSy1+Qkw2aylFa1Zy
WUBJSWBmd0JoPX5JNWIKeiRlZj5fbVFTWk10KGZEOTBIUkUmLSY3WiFrWCl4LU9DODdwKHpza0kx
ZikkbSk7eWM4Y0Jzb1pSOXtuYnNBZSomCnpJIXl1TT0kTCY1K3NzNXZWanx5QDV6NjMpO2B0VjlN
M2M5I3piX3FZWj84fEUkLXB7eTRJP041eHshK0RyelM/Vwp6OWNzPWV1PnI4eGJvWSp6N3Rfbmp1
YWB9fiNrX1VmLVJxWGNqYFdHSF41cFZgcz5vRD5QJHJ3N3BORFBmbztkck8KenNvR002RCtSUWVB
b0FOcXZsTj8xM1JzSlV5JH5pQzleNno1VUcrKXU9MUVNP1RaRXJ8M0RvSUJAYyNANHBASlRnCnp7
V0JZY3R6e3c4MDBKY3lhK2RuflRFcHcpUEUxTmBGZzN8MF4+aUh1VVByJVR7MjVJKlpGMDU2K0V7
ayYhXlBpcgp6QUhMMTxfVlYmVCp7Mz1uVkg8dkFwPVRuV2ooUm5Uey17WmUhX2dze2p3Vz1rdUlo
Kih3YTx6Sz5DQHZOMEBvSHQKenJLUk99ZD1pOXhGbHFYK0BMdWd6Q0tKYE00eE5QUFNrbyp5VT02
Pmc2ZUpZMnJ5fip2bllWXnx0emE3eWdoN1B6CnpAdjIwPiFhX2YpcV83Wjx5eThpJW9uMmItP2cq
K2E3NGB8SlFsJjZiIVlMSTQhJD1lYmlEYjxtYkRoIVltSXdlWQp6dShaQWdzKm5zc0JsO0ZWTD5Y
d20paV9yX15RNn1DJHV0VWZUcUBePV8zNEU3YWg0Wlo1cmNUNkFpV1dNIUQxPTAKejZiX1c0aj5K
TTNlTyY4LW1kITwqaXoxPipUM1laZ3opWWQxcj44ejI8Q3l8dEBDdSkpISFfdl4qcTRWRU5DKHUm
CnpGbHN+VmJuJHBiMkVWST5nUCNNbmYtKHVUeGxES2ZPXjJXdkUqRWlGRVleZ3JPSzZVKytZZTVv
Rzd9T0s0OEJtKgp6MUleMWlpXlZJUVU8UXg4Wkw3RGRNPzNsNkAjO25HYlN8eDsxbGQzOVlAQytF
JlA8MElmKF5GbmFlXzljY3NLR0QKeio0clM7ISZubVI+PWYjdXVqIVR2NipiPjYmIz97d3JZUENB
eysja01ASFVLKkF5X0MqSjdoT2dKQjR1YDh0VXlICnojRkdkcURma3FfaWdDVjJDdipwNEYtYjdg
Pzg2aXxnJStnWHkkam1gNyFHLVo9fEFaVCRgb1olUklOWmdDbz5XWQp6VTUjOzs8ajMmRUNIUCEh
MlVzPUJCRWoxfjk1IUprY2lOVSQ2eH0wUWB2PXx3O2VhTzdYITFVa2p3eE50TTh4MloKemh0TXpX
LW8zayEyP0w/b1FuSWxLOWU+PCNYNml8NXkmaEUpNXxUZ3FJVGAhPSY5X1VFY3x1U3N0dj0jM15j
Mm9QCnp7Z3peckU5U2FYVERHWH0+QEBVR2RNV3FBRyNtPEJldkFTWWxZJnJaR3otOWU7dXBrJGl4
JkxGKWgoS3E7Xkh1dQp6aDZVYTkwJE5qVVpVMlR4TGZxVS0kOGVaJUI5PmAzNUVffnFHIzdea0BL
dVNLN14+VnlhVHY8ezNkN3woITZ5U2UKenZrY0Q1NzM7ZTBsQT9IfkctNyljc297WDs0JSpySyo1
RG1EQkwkdlByYDB0c09waEhQN2Rie1Z7RyF2MUN1JDspCnpaWXU9PGMmfGdwPUcrUjwpSmxlamhK
bnxwSEFGNFYqc2NKKVFGeyg5aFQrWDFOK1Y/bDdIOWpldXckKFhLbTs1Sgp6VDdtNG5KSn0xeVc4
anF1Wjd+VCt2Vl4oflIhT31hb0Y/RXZFcmw3d3I7Ul49dExKIShiRjBrQ1QjR0cqVHQ+RikKeiY3
Tz5ZNnYtYX5pZGFiSlVjeEJSVHQyY31GeyNWU1ckP003bVhaaEpge3tRYF9TOCZGNjhXfHJYKSsk
aWV4ciVwCno1eHw5IUZeV04tYlghSCpxI2VUWll2fjlDNjc3T001YSRTPjluO0hsMz9rcCNoIXo+
cnRqaWo4ejBqQllUe3MpVAp6PXh9fF8/bWwhLTF8MGNwPWRuTGIwNk5vXnp0N1dDQGxVbEtralZp
SF87Q3NSNm1MblE5fj96fTRVYCRTRXA4dHMKems4aFFkc1p1NFhRZFF+JU1QfSp+Z2hRUExYdXkx
a3ZIX3VJYDs7JHBNOEslfDJDZDVuaE5KVVJARzJjQG9VKihECnpmWGpESSh9RlJkR3BEZzBYdDQy
bnFNYCl2c1BJIyRDJUhyLTdNSWwlQmI/YUxeSDRMKWYyTHJoe2d7Rk5CO3QwRwp6ayNxKytOYEBh
TGAmYlIpK01MfGQlMGdDOzZ+SGx4cSNgPipMOyo0MVYmZmdrPUVUR0FBUmltfUB6MSt0Zn1ZTH4K
enR2fVV2UmJaRnIqfDtYYzR9SSlWZCtjYWlJQCpTR3JvPTZANyh5UUdDRmVPdT11VFhrJS00K08z
c3dxcTNSfmV8CnpHej04ZWRpI247NHdvWTtYXzx4bD09azJ4eWhgc3dweGE2WUoyPjQ+aS08SUww
N1BBQW4kfCVkSGJxKUZLKUlCeAp6WEF5U2pRfXpZPyV4d3Z3cHdnK3BRei1TVGYkT2tMTU1wTiRB
SVJmS05rMitCZ0x3KlBqNSlgRV4zaXo/LThTOXcKej8hNXpkMW9iX3JVdm9VaEM2aXxDd293Kzxz
aF8mWSV4MUdvSzQrXyh1ZSt3WGEpZEBTT1N6JE9ZTjhjZiMtPEhyCnpSVUFoT042ZCtpaioyM0A8
NmgpeDdtfU16P1JTXnJHTGJ9S0wwbnJ6SCktJDlObjFeZ147MCpZN15CRjdJWmFWbgp6ck99azU8
OTgyNDRUKFZHVnIqdSNIZm57cHdDfm96SWVWPEg2dzl2bGZVY2xkX31hTyNqPXA8KTVrT0oyYmp9
SzEKelNXSGJ1VEU8ZiNwbVZ4Yz1zc188X2VKdlJrQVNZeXItbE5wejhPSDskOzxFIXRMUjxjO0xi
JD9LK18lRHlhQ2FeCno1dHI+P0h7Zmo7am1FSDx4OSpUfk9uRSQwJktHPHRyWFZsUnV2QkRBdk5h
R0k3cipjZjEmdFNIO2RZN1EjcD41JAp6V15ETmQ0WE8jVjs+VilvclBjPzsjIVclR001aEg1TzMr
djchZzNVRCMkREx7O0RMcTVsfSRRYClPJVhpVUJuKXAKenF9V2VRSndzaUtxQjZUTTFoPiNRJmpm
P3k9SWxWWmNCOGxtd0VkJm8xYmh5R240b0ZHPzhHJEdtTUdvKiR7SlYkCnpnWUJre2IhOWQ5d3RE
VFJEc2EzdHQ/Mlk+UGxoNHtpclEyRikzOWlIWX1IISgrR3h0ezA3PV8tIXVPdTclSURocAp6Xkoq
WnM1YjdxPTQ5eW41MU5YYThyJTUqX1dwPkZ6JG9ZR0FefXU7fGRFQkkoJE5eJkpEZi1oVUVlKnc+
K0RqNWkKej8/TDZJaGN5dW1pKWdEeEMrYFB8REkyYiRrWmtQJDk+MWdWQWBjOFpVe31rQXckMSRp
MyR2eXE2dzdhKjhfIVBVCnpxZnRSWj89c34wckA5UCNGb1VDYTxHMXp9bzFCUjl5fX1xZk1gVDg8
XzxPfHQ5RDROVSRZZUpLQSpDZ0ZrOGdIXwp6TUl+fVcjVmhNS0t6Mj1RXztPN2drbTAyJEA0flpw
TDtNWFFzSExYOUp8ZTIzeEV9NlJnOGwySFgtfnM+bTJVUmQKekVAPzU3V3xtKCs1bjs8XyVQMzhh
KGF5TmVSJVFAaTZIQ3lTKWRzZT1xSCVPfSkmVUxwQWZ1WkVTRFdTeEFka1YjCnp6d0o7RFBONiFn
cyN0cTFPLTBhNDQ5YnlyZDM7WkU4fk1PQ2NibGxpQSRVdDRmOzxxdXpVQzhZQlBmJmspfVZWOwp6
a0JoNlR5enlAVDU+VkQtP1dsKUVqaGRpfDA2OURxMVJYNWJZJFZqYnVMX3ktaVR+RWcxQHxlMCRF
bWM/ek1GbGwKekBoUHAyNz9lb01KS31rWmVLM0o+dkZCX0FUPGptPzVqaT9LdyotdXhzKlV7WDJC
cDI8QjdLfGBjTS17WjI5NGRhCnpSYkJgQmFwdTZ0QFRKfmZXR2hMLVcwO1ZlTUdlcTEwUEQqUG5+
IzNtRzA3IW0+dlpncCg0ZWs8bXw2dEMkSFVaSQp6JVpNMm5se08hZEtzRCY/JDA8KXpISCRuXnNa
c0wrczVTJm5gYDlWJEdqPCNXJGpYaH1kK09+YVZwcz9zV2dObHMKejNYMyVqSGdKNFQ8cG8+fVU+
dnJtOWpsXkZmMSt6NClzZjI1KHhkeWBwMFpQeEReP2U7YkcxYXFoNlVgYjE+OEVuCnoyZC1Jdnde
bmw8Tl59e21Sd0B0YV4kTUZ6VyRsd2BVNyhGY2Bpen1Qb3RkRiNfN0dhUjtxPjM9RCNeQk9uWX1i
Qwp6YEhmWnM4eiQ4PD9OJHx0IVRmbSZFZnpJY3BLd0NOdGEpbGAwXzgrVEFoNlpuJCFjM0BpVjhr
YjExOUkwc2NOYlkKelRLQFhNI2J0K31Ha0FGZC1jVX13MikhYzQhTmd6R2grKjNeOTU/fSZMJTxE
PiRfXnwtMEtQZSlhWFlfKCpnI1lzCnorPEdQZzYqSkdueDJlSE8/fHFtIUtBKEw2JCMrZUQrPUUy
UklgWj5qZ1lMaXJPc0x3KURuTnJENTcjKWV7cmNFdQp6dyNPM0dyTWhBI2A5WXZrbWUqRWgmbig/
eHU/PlhWZiY2a0ZmfHlJU2E+fURARVcrbjxNd21qV20hMTR5OXtyKSMKemJqc3M5el5FPStfTCMw
UXA8eS0yUmBkdkMxRyVCcFJLPmdmKEc+P0psIT84X2Y/cz0hYHthVXtPI08kT2RNUnFnCnoxKGcw
UiNNUm87WituVSNLQShtdVM+ZlIwVkoyX09TNFRAayZReyZ8SCVBcHpqeURHbkVze0tDb3RKcnI0
Knw8cQp6dDxlNUdicDJDe0p3YEZYO3xpVFEje00jUHNZfmxnUkljeGlBI3UrcFlmY1o4QGd0cG1t
ZXdtTVVraSprQldJWUYKelpWQSptJnl2amdKdVFgczkofDhHVmtYNTlDUUlCYHhKJVQpdVNYRHdu
MzNRbGd3b2RRaE1xRVRzNXUjQ2tacyleCnpNWEAhR05gLT8kd19LXn5CS3UxfUIzSE9FQ3J7eEtR
PDFwUXFAcFVpOzkocypoSkZ0d0tLcyk9PX5ZZFU1YzZ0Nwp6X0J+akJqTG9LbjVBN05lSVckMXkj
bDFwP1NIR0UhPFJRb1pYWXBPSE81M1pyN2NUVStuPXFyVntNJClDUmtWdGIKenQ5citYdjlyYmde
KS19ZUdoUm5VSUVLPktMOzxtfHZlY3tFNXo+MUNAQWJ8KFA0Pk8jQ2FMX2syY0YyUztRXjRYCnot
XmlCUG4zJDBna0c0WEw0PnstPj5gSmIpS1FtNXZoelR5K0E0VzEkP0NQK0lPTF9wNmI5cHBhZ0to
aGJJMyU3Vwp6dkc8WkAjb0p+cSZLT2lyTnFXeDxBKVAxNStyYXI5V240KFJNZWZZRFYldEkqZE18
a1BLWlRrQGZRbD5PZkgmTWsKeldoSlk8OU8xZn1ASEFQS3FiMSY0c3lhSF5SbGZGSk42KVhfYG5u
M0J0KGFrfE94X0ZCVUBwX2B1O2ppeE9BWllMCnpHV2NieGo7ZHNSTngrZyRGe1B4YkFIeVkyU1Fs
ajxla3p6SU9GIVlqXit0ZUkzXnpDQ0ZKWkNUPCU3PXt6cD04egp6SG9LMHRxN0ROSCFGZkApWH52
cn09ZjA9RzA0TlpyRFIzOXlrP1NyXnI9RGI3RjFDSU48Y1hxbDZfMWBnUSlhRjQKemQ2PWs0dFh5
bmdXSTw3dj51aVRAOD4qWXA5Iy1vXj52MklnZiojQCtBITZ4bmpSWWU8cClMTDViSUFHdil4KTtp
Cno4WW5AfWhOOWBlWE5hflEqSCZ4PGpVVCNBayN6WERUJlBrQk9OTD8+e3BnfD40aDQ5MXAhaF5R
aSRAfjBaNzI+Sgp6K251UjZTNnhxcGlKfmA9SG58TnN2b2lZJS0yO3tpPSRIUDZGfHRZTHJJQUd3
Z2RNQmZlej9vRGwhKUxjVmhKSSkKemlEe2ZoXjs7UnVTeTx9fChlPm9FUStVU3ZEcm03Xmc1ckpf
VnAlRWxHM2RpPzMhZDNjXnJNdkN6KTxObXc5aC1mCno1VUVrcmJCQiZ+cUd7VD5QanxfJEhYKD8r
M05RdWdqVG17MXJUVGpWeSVsa3BzYkhwNEw1bFBhYylnan1rVjE8UAp6aEpzZ25UVStVVTRLQlh6
WWtXdyMzN1M0Ny0xeE5NR309TmNYJXQ3cTQyUEAzbnNXR3RSZ1VVTWItP24hS056QDYKemR3fStU
UDNIPn53cDckRjxweDREcjIpZiMjX1k4QzwhdDxHfE5YVlB6Oz9kck03N0FZJEV0U2oqb29+aSY0
P0omCnplWlpKVnsxZFpWVHZfZm9lZyFEVlplQE54JVp2NCVpcyZYaHt9Q2hJeX1NbWNAKzdfYkhP
aT5uUjNTNChGNmxoTQp6MWFpdXV2alFRJUs7ZEMjbFZoNXl5R0pkfUpRZmw3KE9wK2ZGSiUxMjxD
SSFZe0Q0VUUxSyhzeUBZP0glcWhffEQKenBWanN3Q2EwP19ZMWUwSy0xJlJgVTQlRFRUJS0yYVdR
NkheSHxZd2FjNXVMPllIV1M9VlFMK015YTgrfSZofn1YCnpDTSEhflAmKTQ4Tn0xcClZeFozZnkz
bkpRX1YpY2w+OTVEJm1DanQhS0xye2RMdmhJYVp8UGcwbzVIQjhXSn1ZeQp6eE1aVEEjUXJiVEQ5
NFBHcmZjPFNHdTJBd05nQGojP29IMChXWmFgbEBZTUVeUEpDTSFlcypvejNPcit8JERpMTgKekxr
cSV2YUc4JWhic1pzUW0lZz1vWHhQYEl7TUA9YlJXQ08ydl5TIzR7JjkhcmY9aSlEKitKWERTKWwh
PFc+cipqCnolSmcmMVV2YShzIzsoT1NqTHRzR159cnBneUV2Sl8jZGBNSmRHNmFNWj8zKnd2Z2VD
WWc+T2RUcjFseXRgJSZ6cgp6aHhYaHRNV0ltOFZ1IT91USpVfDRjYiQ1WTAqZUVUSXU7anVXdi0l
WkJXPjRlOyFqeEo1c1h7NTx2RGx2MT19VE8KenVNWGNgcUcyRmJ6KD1HXy1qM3NVOSg+Q3VDO0h6
IWgrcEFHaGZFaTcramV6T28mXzNJR0YqRE56UWsydlE0TElpCnoxUWoxIyQhUDlwdWRQKVh0Uysh
dzw/MyEzSlh3SXooRiheKEF1am8hdUl1aj9nNDtweyZOeG98VF5uQS14MEx6Twp6cUwxLTxvV29Q
YUF3X0B2UGxjMX41aGtta0AwaEpmR3JId18wTTs2ZEBHcFgxJFpeSSRYQVhDNyU3TiFmWGpQdGYK
eiF3eDZTZT1yc0IyLV5BI3MzSjtaeT9ST1BBTmJlaXNDTHI3QWpId3FqVzl6N2IqfVhEaE19T2A2
Wjh4bF9Nd2JoCnpTaVJtY3JvaE4tLU1zMGszXmoyVm59TFVzSU8waCVwUGw0bHJHSiQjeyFaMVFA
QVdfd2tjak0pYjh7V1d4NDx2fQp6bj40fk9VJEpwTy1sej9FKWE1YGVPcT4lU3tsXjA1dmRlVEtL
fmJNO1ZEJmoqckVEMWNxc20+K05xY0ArZm9VNF8KekxAPnQtY2s1YWdnekcmbGZDUTRxQTdjX1dA
a0FxIUk5QDZEMWQqQntucU9rczJ8P35hOEJQcVZiRkxjaz4rPEkyCnpvMENye3EwO2ZVZ2VrWFZG
ayNsTCYoNlMqT0Y3WlEwb3Q5S2RrKE4yP3Zlclkta1VDKVBacXFNYHhCUUZxMHo/NAp6WH4qI301
YUJAISN7P3pDNXtldlFgaFdyI1U4TkMpNXZHfVhkaWIqWHohZ147OFZ2TjJKfDBnVi12TkE7T2Rw
UXUKejZpN0Q2WlEmT2U0dCpScXtleF4xOTE8K0xeaEQ1ajFvN1dMOEhDbmUhfFNaUTBeSW1PWUJs
QWxCaioxM05oe35tCnolYFI0fU02LUpoSzMwS2sjNDBmckNKc0BhYkcrLSVARUIxP3VPUHw9MSlB
aTMhRlVHY3MtfFRBZ0ozaDJ8TElqOQp6eTZYLTBgITYxNzteMD1jXlImPjZjdDRefj95dk4tWnVl
e3lvX0ZvYCk1ZEl2Sl9kXylfVjJXcmp0bGZoWGcte1MKem9FQShhUWVGeWF0aVEtNiR6dVdyIzI0
cV5yVipEZypuV0NOKEo5LSFlVk03LTZoKEgqTHRTRy1wakFAYWNBO2VoCno8IU84dWd5UDVfYlFK
KlVgXiY5a1Q/MT19MmB5LXkpaS0oMmBEdjthRFJlNUJYMHBNVTIkUGJEc3FtKSpTTEJLNAp6I05J
PCtHd3hKUGN3O1NsKDxyfkdAWnNNJkRrckI8JVNeKWMmMVJXUXJyNlBeazREUUklNkYpX09IfXB7
TE1xWWEKelVMXlNqQzF9MjhzZn4hUW9jMno+YVRKa3JNbkMleHl+KG1FSEQ1O2orR19sMXNYYHgo
a00yJS0qaWx2OFpRQ3JrCnpNPEdtfilUR1ArN3phKXY8ZiR8cWNiVWBJcj8wc15IYVQ1Vk9ONzRX
PE1tVURDSHJ9RjJlI2UtNmpNaTNhMl9TaQp6QTwweyVKRGhTI1RSRHlzNGtLTHdzZk1xZ2NCPnNh
T3lsWTNkVzxjYmI3ZWt2e040KWVpcTZhb08wQ1ZCcjZqPk4KeldMPSglaXtiNUIzPHxobk5gIzVL
T21qNGg7eGV7M01qVGdEPn5MRzA/NUJVK04hakxyJUpoX35PeD5nd2Q3V2NsCno2SU9gNFo/TU08
NWx0K1M2PDtreEo2Qkk1bXQ4ODxvRnV3c1E9QkZpRTF5X1ltfkBheCRaPCtnbypvUTlneFN6Rwp6
UipTYkckKSMlWGw0aW98X2ZjSWYhJFoyMDZOdGtiXzhQVll1UVkxV1peRyNuRjQ5Zy1hMD1hQCgx
blJLXntAPz4Kejtmb20oK2pnPUBub040Mm5tPDBQOX5FMTk3amxiXkJNKTdHQFdjP1ZLZENaflly
bDBKTXk9QDlxZUB4e05AOFd1CnpAeUZLUUVfNGcjQCtYWUczajFVOWpaaklIYU1jIyhSbjN9MXQ7
fWBKS0ghZFhBJmNDUSVkY0tFOTxPP2JUdzxnMgp6Vj5KbytnMGRSeHJ1JSYra0U0ezglQUpKaUt2
K308bE4qRSFPaUctIyltZT9IN2xrdXw0cXBuMGMzJSh+MVUwMz4Kel9SVkxYKU87ejlMejNUVnFn
UFEyKUd3ZWFoa0VFRVFvZGJfYnc7NnJRWkw9THJKUlBfQDBpTFl1b0w3cndGVSloCnotQFFHeWEo
QGBERjd7YWxLTHshbXhWcWw0KXFuRVBQNnk/QWl8LUBQUzVJcGwzTVF4VFZrPV84PXstMyVpbCFg
cAp6YFdNfUBPc35weGRGWW19dylURndCM1ArIV9DJloycSl+S14pWF5mRGJvc3lvIXZIaUxCPDl8
fCtlaH1aVGM5QHsKelQrRipiSSFfZENhMnpqd2ZkXjx9ITxZVTclUj1LUyhAdTJFUz44WX5tZVVj
YCtLfFljSm1XJGVIb1cmVTlJcnh1Cno+KmVIZSUrSWRhRDxAUkNUPEwoa3BLUW5sd18jR3hqV2RY
IztBSkE+JTVfYGgjQDVkK3VAfFpIaG1IbDI8KiE3Zwp6ZDZPRTlPMDFFVVJ0NHIxbEEtfl9wVTRX
Ym5nSl4zXkU7LXRaSEY9aFUwREQ4Z19EQkEjNU54Q15mSCh5Jk9UYiMKemZeaUxySlpuNE13P05u
R1NQJCV6NCRPc31FNXdYblViSz0hPFo+bVoxYi07IW85ckxfSExpUE5ea2FrbXElJF45CnpCYW4w
Zks4TXhtVzdsbyR7VjAhM0lhQE43U0cjOyExO1RJJT08VHRmPitLU1BlczM3U2A0OUxEN25CUkJL
VXBeawp6dldmeWQ7MGZ9Xkp6QWdxcXxNS0BIJHpxJjFzKkVoazlVUyRGZmpGd0JebUB1dUdDTn5e
U1lEYjx3PWhYQV4wUj4KejdiK148S3l+V08hfHJxejA4aUE7ekhPLUlyUmBQZF5XaTwmcyR0WGIt
KC11elRIVkl9JVdGJDV7cUFkRENpPjtGCnp4cVEpKjJyKiV4OXRlaHMheCRYPHQ8NlBEaUJ0NCps
PjlNMEMkM05rPylASmtUPGk0SkU8cD9fQi07PFFlWU5JQAp6eDhhJVBrfE4oM2R6Q0k7ZEc7UDFH
cTMjJHF5QnBDJX1Hd2tgTjIhYFo9Wkg3bDh0aG95cT1nbCNzYmljP0IhVFgKem1MaGA1JF5SbFo3
ZmxDQjxfemAkclM+Y3xheT1DRUJTeyQqPnM8VEF4JlN7ckhgakJHXiE9IXFIU2RyKyZLbiEoCnpE
PStgKVBfKkpwQSowYGxvb09rNW9QQ2JTYUhnUHU1cjB+RT5hLUtSPVYtZ1l1XyRNYGNOSFNHcSNR
aFlQYXRXUQp6MEFKKzBqUmotQXIjMUBzd3pafU9NTD4oUjl0Pk1GbUk5WlhJMF5ZNFpIbFdZNFA8
ejl5LVBNd0x3NWZVLUZZMVIKejwhOUNzTm1aYEMhZnlDRkJLc3QoeDB+UXkldVNqeT82bSY5ejlP
dkIjWXVkbi18Rj11eGNgcjw0MmBxYGhTN0N5CnpjMiZyUnFLNkIhWkhxVENeNzJNbFAqOHBpYVcr
ZjMjJWhlVXJVMld2ODJfZSlldCM3JnRlVV5GZ1d9czc7bmhjSQp6VG16UllFSjx2OWtYOFFEYlgj
N1omVWE3NEg4a0h3T1lZe2xjN0ExYksxSH1ST0w8ek4+MlR3NEhGY3xTIVd1cnkKenhvZHgqd15Q
fHMmM1RwYVdWN05tLThBUzhSIVFOb3R8VSpxJSlwZWN4LTtTRlhDYGJ0UFl9S2VadHlaKSNQfjJy
CnpSdF59bGYkI2I/ZmRjfWg2WGkjKHlWZyRyPGBROERhPnE8bDt8Nj8hR2dDKipCdUM/Qk1qeCMw
Xj50WGMlWTV5WAp6SENEcXZrSH5iJDhOYzJDeD9jVi1ga3stP09jeTVqPVpPamhpPUlGY2gtb1lG
NmkmVmZeaTJZZD1TLUprI3JKez8Kek1YO2l4S0xBRHJlTigqYlAzVGNZeTE/KDE7RjVDa1N8Q249
YFRHZDVCaEk8XmQzN2RnNk1wTG1wYmFObm1QISFMCnpnP2VMa1gwT1gldSMlSTFWYmF+cl8rKXF4
b3ppQzR3Sk02c1JoJipLYWZ7eW97Nk87MntCJGU5V15yV2h6MnNeYAp6X0xNQ1peSEZQND9fOzY5
U1RRMUckTnJfcSVFTENUOHxtI3FzbG8pfWZzYXdEKFY1Ri1YZ0UpSUc/RCUqSjk1O0MKeipNUzxg
VyE4VTt2JTBKeEhJP1l7eyUoPjFGbjNSd0MtPjJCKDI8ZSprKi1sbkxFeENGTjFzMT1saUJBbkNA
dyFqCnpkb1VpM0tMY080alZ2SUg+LXg7PmZyXj5INWVSNkZ2PWd5eWs7UlYwMDdxfSVeLWRBSCQy
cWRhKj9abHRAMzlVYwp6R204NGM7anUoTygjez5MO3RkSjxyNDArYzhBPytSPnIrfWchaHJzPHlT
ZiFrJDw3cCU1WXo4S1lqQzA3X0B1dkMKejJsJlRgdXRQbENvMEVxeiszejlKJjN8IUQqVE1aQlQr
UGZgTiRoK1R7ZENeKHdmbCM3KFIxQmw8UGE2fldLU1dDCnp8MVRKSmAtQGFlJF5odEVqQGpfZShD
dTk3b2ZrKjYlWGdrPktoTXNXcD5NZU1XVyNuVkppMT0qc3R0Q0QtKitySAp6MGpKXz08NEB6QzlJ
WnBmN1FRdUpHVGNTTjY5dXlFXn0qenVKOzclaVA3TDMpRXFnIU4kfHFsKiN+Z0sqdnxDITAKeilH
OTt0aGhMc3podHB8WUV0QjdlVEFoOHByYyNrJCg9QTI5KzJpN2FiNilLcnhgVzc7U2tMbFFpNSlF
XlQkUWcrCnpjWWokQG9nekZLbVZpZFZ1TWdWR0FgU00tPmxyK0lyPz8qNl81dE15b2NVN2pjc3wh
TUtZJH1pOzx3PUkyYkBZUwp6Q3BFODtRJnt7WD47NDNgUVREOShxfG9VOD1pISR5cUchVTZBXiRV
fVBBXzQqaEpRKCRtbzJWdEBubVk9MWdaXnEKemFDM2lJP1olT0dfYDRMdmVzfWR6O3lDSH5XTXB+
bEtJd0M4e0lgO3RPe288e0psMzhoaWwoIVE3JEp6SEMxMEM9Cno3cSpAdTBKXl5WIXtGK2N5e2Bu
Y0lidFlULXVYdlpmbkhjYDZYXiU2QCQkK3FNXnZuMWMjbUotPEdONDMxKlJkRAp6TFAkd3lEYXcr
YSlPQnN1MzRhS1E8THY7KG9KODRRZzNPa3xWYGFRPG0lZzRtejk9aFVBYEZvemgmOytnbDItXmIK
elordCowJk5KZmgxa3dKWllwbTk+SVRhUEE3UlkleFMtSn14eyZIYVVNa3s+cipWWEs0PCtLflFm
cnRhe1YkOH53CnpXU1l5WUtHMWA+dDQ+ZVpeVXxMe2xxZiNVZztnSkdoaSEhfHtoOyQxIzApQWxf
dEpOPiY5YyMyazdlc0A8VF8xMQp6aU9IbklrYHZlTU1qKzEqPjhhP18jWDshTHoxaVQ5ZCglKUo9
anBfYm8wfDZjUmFGKjwlNSYmczRCYENKKjdZKC0KemFwRmVBPUNpUD5wYFJgZnlFUCZSaSleMn5s
NFVyeWtxVXBrXyZjaihpVHh7I2ByS3kzKmRlSEhZZDZteytoX0dBCnpNN3VJSGBLZEd1NXV0RV49
Um1HX2twNTk4eyRIfTU4bD9UU1ZFO0BIVkh9YyhON2drKEgjbSpgcVY/a3s/SjxBRgp6OWF7OTBX
aEM/K2pHKldyQTMrd0JwWSRreV5WbzB9aVFAcEJVTjNqT3wwU216ZlBXK3JhcDR6NGlsWUFtRkht
P2UKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yM2Y4YWMwMGIxNzMyZmRmNjJmYzFlMDE3NWI1ZGQ2OTMyZjQwZWI1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvaW1nL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2ltZy9weWxpYi5wbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2luZGV4LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2luZGV4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzAwYjE3ZTk4
NzdiZWY1YjIwMzY1YjViNDJlZjcxODYyNjExY2MxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvaW5kZXgudHh0CkBAIC0wLDAgKzEsMzkgQEAKKy4uIHB5IGRvY3VtZW50YXRpb24gbWFz
dGVyIGZpbGUsIGNyZWF0ZWQgYnkKKyAgIHNwaGlueC1xdWlja3N0YXJ0IG9uIFRodSBPY3QgMjEg
MDg6MzA6MTAgMjAxMC4KKyAgIFlvdSBjYW4gYWRhcHQgdGhpcyBmaWxlIGNvbXBsZXRlbHkgdG8g
eW91ciBsaWtpbmcsIGJ1dCBpdCBzaG91bGQgYXQgbGVhc3QKKyAgIGNvbnRhaW4gdGhlIHJvb3Qg
YHRvY3RyZWVgIGRpcmVjdGl2ZS4KKworV2VsY29tZSB0byBweSdzIGRvY3VtZW50YXRpb24hCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworc2VlIDpyZWY6YENIQU5HRUxPRyA8
Y2hhbmdlbG9nPmAgZm9yIGxhdGVzdCBjaGFuZ2VzLgorCisuLiBfYHB5dGVzdCBkaXN0cmlidXRp
b25gOiBodHRwOi8vcHl0ZXN0Lm9yZworCitDb250ZW50czoKKworLi4gdG9jdHJlZTo6CisKKyAg
IGluc3RhbGwKKyAgIHBhdGgKKyAgIGNvZGUKKyAgIGlvCisgICBsb2cKKyAgIHhtbAorICAgbWlz
YworCisgICA6bWF4ZGVwdGg6IDIKKworLi4gdG9jdHJlZTo6CisgICAgOmhpZGRlbjoKKworICAg
IGFubm91bmNlL3JlbGVhc2UtMi4wLjAKKyAgICBjaGFuZ2Vsb2cKKyAgICBhbm5vdW5jZS8qCisK
K0luZGljZXMgYW5kIHRhYmxlcworPT09PT09PT09PT09PT09PT09CisKKyogOnJlZjpgZ2VuaW5k
ZXhgCisqIDpyZWY6YHNlYXJjaGAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW5zdGFsbC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9pbnN0YWxsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjQwNTZkMWZiYTNkMGM0
Zjg4NGZlMWRiNTQ1ZmNlOGU5N2UxMWZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
aW5zdGFsbC50eHQKQEAgLTAsMCArMSw4OCBAQAorCisuLiBfYHB5YDoKKy4uIF9gaW5kZXggcGFn
ZWA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weS8KKworaW5zdGFsbGF0aW9uIGluZm8g
aW4gYSBudXRzaGVsbAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKyoqUHlQSSBuYW1lKio6IHB5XworCisqKlB5dGhvbnMqKjogQ1B5dGhvbiAy
LjcsIDMuNCwgMy41LCAzLjYsIFB5UHktNS40CisKKyoqT3BlcmF0aW5nIHN5c3RlbXMqKjogTGlu
dXgsIFdpbmRvd3MsIE9TWCwgVW5peAorCisqKlJlcXVpcmVtZW50cyoqOiBzZXR1cHRvb2xzXyBv
ciBEaXN0cmlidXRlXworCisqKkluc3RhbGxlcnMqKjogYGBlYXN5X2luc3RhbGxgYCBhbmQgYGBw
aXBgYAorCisqKmhnIHJlcG9zaXRvcnkqKjogaHR0cHM6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5
CisKK2Vhc3kgaW5zdGFsbCBvciBwaXAgYGBweWBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitCb3RoIGBEaXN0cmlidXRlYF8gYW5kIHNldHVwdG9vbHNfIHByb3ZpZGUgdGhlIGBg
ZWFzeV9pbnN0YWxsYGAKK2luc3RhbGxhdGlvbiB0b29sIHdpdGggd2hpY2ggeW91IGNhbiB0eXBl
IGludG8gYSBjb21tYW5kIGxpbmUgd2luZG93OjoKKworICAgIGVhc3lfaW5zdGFsbCAtVSBweQor
Cit0byBpbnN0YWxsIHRoZSBsYXRlc3QgcmVsZWFzZSBvZiB0aGUgcHkgbGliLiAgVGhlIGBgLVVg
YCBzd2l0Y2gKK3dpbGwgdHJpZ2dlciBhbiB1cGdyYWRlIGlmIHlvdSBhbHJlYWR5IGhhdmUgYW4g
b2xkZXIgdmVyc2lvbiBpbnN0YWxsZWQuCisKKy4uIG5vdGU6OgorCisgICBBcyBvZiB2ZXJzaW9u
IDEuNCBweSBkb2VzIG5vdCBjb250YWluIHB5LnRlc3QgYW55bW9yZSAtIHlvdQorICAgbmVlZCB0
byBpbnN0YWxsIHRoZSBuZXcgYHB5dGVzdGBfIGRpc3RyaWJ1dGlvbi4KKworLi4gX3B5dGVzdDog
aHR0cDovL3B5dGVzdC5vcmcKKworV29ya2luZyBmcm9tIHZlcnNpb24gY29udHJvbCBvciBhIHRh
cmJhbGwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1RvIGZvbGxvdyBkZXZlbG9wbWVudCBvciBzdGFydCBleHBlcmltZW50cywgY2hlY2tvdXQgdGhl
Citjb21wbGV0ZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIHNvdXJjZSB3aXRoIG1lcmN1cmlhbF86
OgorCisgICAgaGcgY2xvbmUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5CisKK0RldmVs
b3BtZW50IHRha2VzIHBsYWNlIG9uIHRoZSAndHJ1bmsnIGJyYW5jaC4KKworWW91IGNhbiBhbHNv
IGdvIHRvIHRoZSBweXRob24gcGFja2FnZSBpbmRleCBhbmQKK2Rvd25sb2FkIGFuZCB1bnBhY2sg
YSBUQVIgZmlsZTo6CisKKyAgICBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHkvCisKK2Fj
dGl2YXRpbmcgYSBjaGVja291dCB3aXRoIHNldHVwdG9vbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1dpdGggYSB3b3JraW5nIGBEaXN0cmlidXRlYF8g
b3Igc2V0dXB0b29sc18gaW5zdGFsbGF0aW9uIHlvdSBjYW4gdHlwZTo6CisKKyAgICBweXRob24g
c2V0dXAucHkgZGV2ZWxvcAorCitpbiBvcmRlciB0byB3b3JrIGlubGluZSB3aXRoIHRoZSB0b29s
cyBhbmQgdGhlIGxpYiBvZiB5b3VyIGNoZWNrb3V0LgorCisuLiBfYG5vLXNldHVwdG9vbHNgOgor
CisuLiBfYGRpcmVjdGx5IHVzZSBhIGNoZWNrb3V0YDoKKworLi4gX2BzZXR1cHRvb2xzYDogaHR0
cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NldHVwdG9vbHMKKworCitNYWlsaW5nIGxpc3QgYW5k
IGlzc3VlIHRyYWNrZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYHB5LWRldiBkZXZlbG9wZXJzIGxpc3RgXyBhbmQgYGNvbW1pdCBtYWlsaW5nIGxpc3RgXy4K
KworLSAjcHlsaWIgb24gaXJjLmZyZWVub2RlLm5ldCBJUkMgY2hhbm5lbCBmb3IgcmFuZG9tIHF1
ZXN0aW9ucy4KKworLSBgYml0YnVja2V0IGlzc3VlIHRyYWNrZXJgXyB1c2UgdGhpcyBiaXRidWNr
ZXQgaXNzdWUgdHJhY2tlciB0byByZXBvcnQKKyAgYnVncyBvciByZXF1ZXN0IGZlYXR1cmVzLgor
CisuLiBfYGJpdGJ1Y2tldCBpc3N1ZSB0cmFja2VyYDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBr
NDIvcHkvaXNzdWVzLworCisuLiBfY29kZXNwZWFrOiBodHRwOi8vY29kZXNwZWFrLm5ldC8KKy4u
IF9gcHktZGV2YDoKKy4uIF9gZGV2ZWxvcG1lbnQgbWFpbGluZyBsaXN0YDoKKy4uIF9gcHktZGV2
IGRldmVsb3BlcnMgbGlzdGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L21haWxtYW4vbGlzdGluZm8v
cHktZGV2CisuLiBfYHB5LXN2bmA6CisuLiBfYGNvbW1pdCBtYWlsaW5nIGxpc3RgOiBodHRwOi8v
Y29kZXNwZWFrLm5ldC9tYWlsbWFuL2xpc3RpbmZvL3B5LXN2bgorCisuLiBpbmNsdWRlOjogbGlu
a3MuaW5jCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pby50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pby50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzExMzA4YTZkMjg1OWRmZjg5ODUwM2ZmNWFiNjc0YjA1OGU4YWQxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2lvLnR4dApAQCAtMCwwICsxLDU5IEBACis9
PT09PT09CitweS5pbworPT09PT09PQorCisKK1RoZSAncHknIGxpYiBwcm92aWRlcyBoZWxwZXIg
Y2xhc3NlcyBmb3IgY2FwdHVyaW5nIElPIGR1cmluZworZXhlY3V0aW9uIG9mIGEgcHJvZ3JhbS4K
KworSU8gQ2FwdHVyaW5nIGV4YW1wbGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCitgYHB5LmlvLlN0ZENhcHR1cmVgYAorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK0Jhc2ljIEV4YW1wbGU6OgorCisgID4+PiBpbXBvcnQgcHkKKyAgPj4+
IGNhcHR1cmUgPSBweS5pby5TdGRDYXB0dXJlKCkKKyAgPj4+IHByaW50ICJoZWxsbyIKKyAgPj4+
IG91dCxlcnIgPSBjYXB0dXJlLnJlc2V0KCkKKyAgPj4+IG91dC5zdHJpcCgpID09ICJoZWxsbyIK
KyAgVHJ1ZQorCitGb3IgY2FsbGluZyBmdW5jdGlvbnMgeW91IG1heSB1c2UgYSBzaG9ydGN1dDo6
CisKKyAgPj4+IGltcG9ydCBweQorICA+Pj4gZGVmIGYoKTogcHJpbnQgImhlbGxvIgorICA+Pj4g
cmVzLCBvdXQsIGVyciA9IHB5LmlvLlN0ZENhcHR1cmUuY2FsbChmKQorICA+Pj4gb3V0LnN0cmlw
KCkgPT0gImhlbGxvIgorICBUcnVlCisKK2BgcHkuaW8uU3RkQ2FwdHVyZUZEYGAKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgYWxzbyB3YW50IHRvIGNhcHR1cmUgd3JpdGVz
IHRvIHRoZSBzdGRvdXQvc3RkZXJyCitmaWxlZGVzY3JpcHRvcnMgeW91IG1heSBpbnZva2U6Ogor
CisgID4+PiBpbXBvcnQgcHksIHN5cworICA+Pj4gY2FwdHVyZSA9IHB5LmlvLlN0ZENhcHR1cmVG
RChvdXQ9RmFsc2UsIGluXz1GYWxzZSkKKyAgPj4+IHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikK
KyAgPj4+IG91dCxlcnIgPSBjYXB0dXJlLnJlc2V0KCkKKyAgPj4+IGVycgorICAnd29ybGQnCisK
K3B5LmlvIG9iamVjdCByZWZlcmVuY2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
Li4gYXV0b2NsYXNzOjogcHkuaW8uU3RkQ2FwdHVyZUZECisgICAgOm1lbWJlcnM6IAorICAgIDpp
bmhlcml0ZWQtbWVtYmVyczoKKworLi4gYXV0b2NsYXNzOjogcHkuaW8uU3RkQ2FwdHVyZQorICAg
IDptZW1iZXJzOiAKKyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IHB5
LmlvLlRlcm1pbmFsV3JpdGVyCisgICAgOm1lbWJlcnM6IAorICAgIDppbmhlcml0ZWQtbWVtYmVy
czoKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbGlua3MuaW5jIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbGlu
a3MuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliY2ZlNWNmODVjMDRmNzY2MGU0MjBkYzQ5YWFlM2EyYzRiYjlm
NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9saW5rcy5pbmMKQEAgLTAsMCArMSwx
NiBAQAorCisuLiBfYHNraXBwaW5nIHBsdWdpbmA6IHBsdWdpbi9za2lwcGluZy5odG1sCisuLiBf
YGZ1bmNhcmdzIG1lY2hhbmlzbWA6IGZ1bmNhcmdzLmh0bWwKKy4uIF9gZG9jdGVzdC5weWA6IGh0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9kb2N0ZXN0Lmh0bWwKKy4uIF9geFVuaXQgc3R5
bGUgc2V0dXBgOiB4dW5pdF9zZXR1cC5odG1sCisuLiBfYHB5dGVzdF9ub3NlYDogcGx1Z2luL25v
c2UuaHRtbAorLi4gX2ByZVN0cnVjdHVyZWQgVGV4dGA6IGh0dHA6Ly9kb2N1dGlscy5zb3VyY2Vm
b3JnZS5uZXQKKy4uIF9gUHl0aG9uIGRlYnVnZ2VyYDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy9s
aWIvbW9kdWxlLXBkYi5odG1sCisuLiBfbm9zZTogaHR0cDovL3NvbWV0aGluZ2Fib3V0b3Jhbmdl
LmNvbS9tcmwvcHJvamVjdHMvbm9zZS8KKy4uIF9weXRlc3Q6IGh0dHA6Ly9weXBpLnB5dGhvbi5v
cmcvcHlwaS9weXRlc3QKKy4uIF9tZXJjdXJpYWw6IGh0dHA6Ly9tZXJjdXJpYWwuc2VsZW5pYy5j
b20vd2lraS8KKy4uIF9gc2V0dXB0b29sc2A6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9z
ZXR1cHRvb2xzCisuLiBfYGRpc3RyaWJ1dGVgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkv
ZGlzdHJpYnV0ZQorLi4gX2BwaXBgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGlwCisu
LiBfYHZpcnR1YWxlbnZgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvdmlydHVhbGVudgor
Li4gX2h1ZHNvbjogaHR0cDovL2h1ZHNvbi1jaS5vcmcvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9sb2cudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbG9nLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTYwZmNhYzI1MDU0
MjU3NzUwN2Q2YzcwMThlNmZhYmJjOGJlMTE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvbG9nLnR4dApAQCAtMCwwICsxLDIwOCBAQAorLi4gcm9sZTo6IGNvZGUobGl0ZXJhbCkKKy4u
IHJvbGU6OiBmaWxlKGxpdGVyYWwpCisKKy4uIFhYWCBmaWd1cmUgb3V0IGhvdyB0aGUgY29kZSBs
aXRlcmFscyBzaG91bGQgYmUgZGVhbHQgd2l0aCBpbiBzcGhpbnguIFRoZXJlIGlzIHByb2JhYmx5
IHNvbWV0aGluZyBidWlsdGluLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CitweS5sb2cgZG9jdW1lbnRhdGlvbiBhbmQgbXVzaW5ncworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK0ZvcmV3b3JkCis9PT09PT09PQorCitUaGlz
IGRvY3VtZW50IGlzIGFuIGF0dGVtcHQgdG8gYnJpZWZseSBzdGF0ZSB0aGUgYWN0dWFsIHNwZWNp
ZmljYXRpb24gb2YgdGhlCis6Y29kZTpgcHkubG9nYCBtb2R1bGUuICBJdCB3YXMgd3JpdHRlbiBi
eSBGcmFuY29pcyBQaW5hcmQgYW5kIGFsc28gY29udGFpbnMKK3NvbWUgaWRlYXMgZm9yIGVuaGFu
Y2luZyB0aGUgcHkubG9nIGZhY2lsaXRpZXMuCisKK05PVEUgdGhhdCA6Y29kZTpgcHkubG9nYCBp
cyBzdWJqZWN0IHRvIHJlZmFjdG9yaW5ncywgaXQgbWF5IGNoYW5nZSB3aXRoCit0aGUgbmV4dCBy
ZWxlYXNlLgorCitUaGlzIGRvY3VtZW50IGlzIG1lYW50IHRvIHRyaWdnZXIgb3IgZmFjaWxpdGF0
ZSBkaXNjdXNzaW9ucy4gIEl0IHNoYW1lbGVzc2x5CitzdGVhbHMgZnJvbSB0aGUgYEFnaWxlIFRl
c3RpbmdgX18gY29tbWVudHMsIGFuZCBmcm9tIG90aGVyIHNvdXJjZXMgYXMgd2VsbCwKK3dpdGhv
dXQgcmVhbGx5IHRyeWluZyB0byBzb3J0IHRoZW0gb3V0LgorCitfXyBodHRwOi8vYWdpbGV0ZXN0
aW5nLmJsb2dzcG90LmNvbS8yMDA1LzA2L2tleXdvcmQtYmFzZWQtbG9nZ2luZy13aXRoLXB5LWxp
YnJhcnkuaHRtbAorCisKK0xvZ2dpbmcgb3JnYW5pc2F0aW9uCis9PT09PT09PT09PT09PT09PT09
PQorCitUaGUgOmNvZGU6YHB5LmxvZ2AgbW9kdWxlIGFpbXMgYSBuaWNoZSBjb21wYXJhYmxlIHRv
IHRoZSBvbmUgb2YgdGhlCitgbG9nZ2luZyBtb2R1bGVgX18gZm91bmQgd2l0aGluIHRoZSBzdGFu
ZGFyZCBQeXRob24gZGlzdHJpYnV0aW9ucywgeWV0Cit3aXRoIG11Y2ggc2ltcGxlciBwYXJhZGln
bXMgZm9yIGNvbmZpZ3VyYXRpb24gYW5kIHVzYWdlLgorCitfXyBodHRwOi8vd3d3LnB5dGhvbi5v
cmcvZG9jLzIuNC4yL2xpYi9tb2R1bGUtbG9nZ2luZy5odG1sCisKK0hvbGdlciBLcmVrZWwsIHRo
ZSBtYWluIDpjb2RlOmBweWAgbGlicmFyeSBkZXZlbG9wZXIsIGludHJvZHVjZWQKK3RoZSBpZGVh
IG9mIGtleXdvcmQtYmFzZWQgbG9nZ2luZyBhbmQgdGhlIGlkZWEgb2YgbG9nZ2luZyAqcHJvZHVj
ZXJzKiBhbmQKKypjb25zdW1lcnMqLiAgQSBsb2cgcHJvZHVjZXIgaXMgYW4gb2JqZWN0IHVzZWQg
YnkgdGhlIGFwcGxpY2F0aW9uIGNvZGUKK3RvIHNlbmQgbWVzc2FnZXMgdG8gdmFyaW91cyBsb2cg
Y29uc3VtZXJzLiAgV2hlbiB5b3UgY3JlYXRlIGEgbG9nCitwcm9kdWNlciwgeW91IGRlZmluZSBh
IHNldCBvZiBrZXl3b3JkcyB0aGF0IGFyZSB0aGVuIHVzZWQgdG8gYm90aCByb3V0ZQordGhlIGxv
Z2dpbmcgbWVzc2FnZXMgdG8gY29uc3VtZXJzLCBhbmQgdG8gcHJlZml4IHRob3NlIG1lc3NhZ2Vz
LgorCitJbiBmYWN0LCBlYWNoIGxvZyBwcm9kdWNlciBoYXMgYSBmZXcga2V5d29yZHMgYXNzb2Np
YXRlZCB3aXRoIGl0IGZvcgoraWRlbnRpZmljYXRpb24gcHVycG9zZXMuICBUaGVzZSBrZXl3b3Jk
cyBmb3JtIGEgdHVwbGUgb2Ygc3RyaW5ncywgYW5kCittYXkgYmUgdXNlZCB0byBsYXRlciByZXRy
aWV2ZSBhIHBhcnRpY3VsYXIgbG9nIHByb2R1Y2VyLgorCitBIGxvZyBwcm9kdWNlciBtYXkgKG9y
IG1heSBub3QpIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGxvZyBjb25zdW1lciwgbWVhbnQKK3RvIGhh
bmRsZSBsb2cgbWVzc2FnZXMgaW4gcGFydGljdWxhciB3YXlzLiAgVGhlIGxvZyBjb25zdW1lcnMg
Y2FuIGJlCitgYFNURE9VVGBgLCBgYFNUREVSUmBgLCBsb2cgZmlsZXMsIHN5c2xvZywgdGhlIFdp
bmRvd3MgRXZlbnQgTG9nLCB1c2VyCitkZWZpbmVkIGZ1bmN0aW9ucywgZXRjLiAgKFlldCwgbG9n
Z2luZyB0byBzeXNsb2cgb3IgdG8gdGhlIFdpbmRvd3MgRXZlbnQKK0xvZyBpcyBvbmx5IGZ1dHVy
ZSBwbGFucyBmb3Igbm93KS4gIEEgbG9nIHByb2R1Y2VyIGhhcyBuZXZlciBtb3JlIHRoYW4KK29u
ZSBjb25zdW1lciBhdCBhIGdpdmVuIHRpbWUsIGJ1dCBpdCBpcyBwb3NzaWJsZSB0byBkeW5hbWlj
YWxseSBzd2l0Y2gKK2EgcHJvZHVjZXIgdG8gdXNlIGFub3RoZXIgY29uc3VtZXIuICBPbiB0aGUg
b3RoZXIgaGFuZCwgYSBzaW5nbGUgbG9nCitjb25zdW1lciBtYXkgYmUgYXNzb2NpYXRlZCB3aXRo
IG1hbnkgcHJvZHVjZXJzLgorCitOb3RlIHRoYXQgY3JlYXRpbmcgYW5kIGFzc29jaWF0aW5nIGEg
cHJvZHVjZXIgYW5kIGEgY29uc3VtZXIgaXMgZG9uZQorYXV0b21hdGljYWxseSB3aGVuIG5vdCBv
dGhlcndpc2Ugb3ZlcnJpZGVuLCBzbyB1c2luZyA6Y29kZTpgcHlgIGxvZ2dpbmcKK2lzIHF1aXRl
IGNvbWZvcnRhYmxlIGV2ZW4gaW4gdGhlIHNtYWxsZXN0IHByb2dyYW1zLiAgTW9yZSB0eXBpY2Fs
bHksCit0aGUgYXBwbGljYXRpb24gcHJvZ3JhbW1lciB3aWxsIGxpa2VseSBkZXNpZ24gYSBoaWVy
YXJjaHkgb2YgcHJvZHVjZXJzLAorYW5kIHdpbGwgc2VsZWN0IGtleXdvcmRzIGFwcHJvcHJpYXRl
bHkgZm9yIG1hcmtpbmcgdGhlIGhpZXJhcmNoeSB0cmVlLgorSWYgYSBub2RlIG9mIHRoZSBoaWVy
YXJjaGljYWwgdHJlZSBvZiBwcm9kdWNlcnMgaGFzIHRvIGJlIGRpdmlkZWQgaW4KK3N1Yi10cmVl
cywgYWxsIHByb2R1Y2VycyBpbiB0aGUgc3ViLXRyZWVzIHNoYXJlLCBhcyBhIGNvbW1vbiBwcmVm
aXgsIHRoZQora2V5d29yZHMgb2YgdGhlIG5vZGUgYmVpbmcgZGl2aWRlZC4gIEluIG90aGVyIHdv
cmRzLCB3ZSBnbyBmdXJ0aGVyIGRvd24KK2luIHRoZSBoaWVyYXJjaHkgb2YgcHJvZHVjZXJzIG1l
cmVseSBieSBhZGRpbmcga2V5d29yZHMuCisKK1VzaW5nIHRoZSBweS5sb2cgbGlicmFyeQorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVG8gdXNlIHRoZSA6Y29kZTpgcHkubG9n
YCBsaWJyYXJ5LCB0aGUgdXNlciBtdXN0IGltcG9ydCBpdCBpbnRvIGEgUHl0aG9uCithcHBsaWNh
dGlvbiwgY3JlYXRlIGF0IGxlYXN0IG9uZSBsb2cgcHJvZHVjZXIgYW5kIG9uZSBsb2cgY29uc3Vt
ZXIsIGhhdmUKK3Byb2R1Y2VycyBhbmQgY29uc3VtZXJzIGFzc29jaWF0ZWQsIGFuZCBmaW5hbGx5
IGNhbGwgdGhlIGxvZyBwcm9kdWNlcnMKK2FzIG5lZWRlZCwgZ2l2aW5nIHRoZW0gbG9nIG1lc3Nh
Z2VzLgorCitJbXBvcnRpbmcKKy0tLS0tLS0tLQorCitPbmNlIHRoZSA6Y29kZTpgcHlgIGxpYnJh
cnkgaXMgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtLCBhIG1lcmU6OgorCisgIGltcG9ydCBweQor
Citob2xkcyBlbm91Z2ggbWFnaWMgZm9yIGxhemlseSBpbXBvcnRpbmcgdGhlIHZhcmlvdXMgZmFj
aWxpdGllcyBvZiB0aGUKKzpjb2RlOmBweWAgbGlicmFyeSB3aGVuIHRoZXkgYXJlIGZpcnN0IG5l
ZWRlZC4gIFRoaXMgaXMgcmVhbGx5IGhvdworOmNvZGU6YHB5LmxvZ2AgaXMgbWFkZSBhdmFpbGFi
bGUgdG8gdGhlIGFwcGxpY2F0aW9uLiAgRm9yIGV4YW1wbGUsIGFmdGVyCit0aGUgYWJvdmUgYGBp
bXBvcnQgcHlgYCwgb25lIG1heSBkaXJlY3RseSB3cml0ZSBgYHB5LmxvZy5Qcm9kdWNlciguLi4p
YGAKK2FuZCBldmVyeXRoaW5nIHNob3VsZCB3b3JrIGZpbmUsIHRoZSB1c2VyIGRvZXMgbm90IGhh
dmUgdG8gd29ycnkgYWJvdXQKK3NwZWNpZmljYWxseSBpbXBvcnRpbmcgbW9yZSBtb2R1bGVzLgor
CitDcmVhdGluZyBhIHByb2R1Y2VyCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSB0
aHJlZSB3YXlzIGZvciBjcmVhdGluZyBhIGxvZyBwcm9kdWNlciBpbnN0YW5jZToKKworICArIEFz
IHNvb24gYXMgYGBweS5sb2dgYCBpcyBmaXJzdCBldmFsdWF0ZWQgd2l0aGluIGFuIGFwcGxpY2F0
aW9uCisgICAgcHJvZ3JhbSwgYSBkZWZhdWx0IGxvZyBwcm9kdWNlciBpcyBjcmVhdGVkLCBhbmQg
bWFkZSBhdmFpbGFibGUgdW5kZXIKKyAgICB0aGUgbmFtZSBgYHB5LmxvZy5kZWZhdWx0YGAuICBU
aGUga2V5d29yZCBgYGRlZmF1bHRgYCBpcyBhc3NvY2lhdGVkCisgICAgd2l0aCB0aGF0IHByb2R1
Y2VyLgorCisgICsgVGhlIGBgcHkubG9nLlByb2R1Y2VyKClgYCBjb25zdHJ1Y3RvciBtYXkgYmUg
ZXhwbGljaXRseSBjYWxsZWQKKyAgICBmb3IgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2Ugb2YgYSBs
b2cgcHJvZHVjZXIuICBUaGF0IGNvbnN0cnVjdG9yCisgICAgYWNjZXB0cywgYXMgYW4gYXJndW1l
bnQsIHRoZSBrZXl3b3JkcyB0aGF0IHNob3VsZCBiZSBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGF0
IHByb2R1Y2VyLiAgS2V5d29yZHMgbWF5IGJlIGdpdmVuIGVpdGhlciBhcyBhIHR1cGxlIG9mIGtl
eXdvcmQKKyAgICBzdHJpbmdzLCBvciBhcyBhIHNpbmdsZSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5n
IG9mIGtleXdvcmRzLgorCisgICsgV2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzICp0YWtlbiogb3V0
IG9mIGEgbG9nIHByb2R1Y2VyIGluc3RhbmNlLAorICAgIGZvciB0aGUgZmlyc3QgdGltZSB0aGF0
IGF0dHJpYnV0ZSBpcyB0YWtlbiwgYSBuZXcgbG9nIHByb2R1Y2VyIGlzCisgICAgY3JlYXRlZC4g
IFRoZSBrZXl3b3JkcyBhc3NvY2lhdGVkIHdpdGggdGhhdCBuZXcgcHJvZHVjZXIgYXJlIHRob3Nl
CisgICAgb2YgdGhlIGluaXRpYWwgcHJvZHVjZXIgaW5zdGFuY2UsIHRvIHdoaWNoIGlzIGFwcGVu
ZGVkIHRoZSBuYW1lIG9mCisgICAgdGhlIGF0dHJpYnV0ZSBiZWluZyB0YWtlbi4KKworVGhlIGxh
c3QgcG9pbnQgaXMgZXNwZWNpYWxseSB1c2VmdWwsIGFzIGl0IGFsbG93cyB1c2luZyBsb2cgcHJv
ZHVjZXJzCit3aXRob3V0IGZ1cnRoZXIgZGVjbGFyYXRpb25zLCBtZXJlbHkgY3JlYXRpbmcgdGhl
bSAqb24tdGhlLWZseSouCisKK0NyZWF0aW5nIGEgY29uc3VtZXIKKy0tLS0tLS0tLS0tLS0tLS0t
LS0KKworVGhlcmUgYXJlIG1hbnkgd2F5cyBmb3IgY3JlYXRpbmcgb3IgZGVub3RpbmcgYSBsb2cg
Y29uc3VtZXI6CisKKyAgKyBBIGRlZmF1bHQgY29uc3VtZXIgZXhpc3RzIHdpdGhpbiB0aGUgYGBw
eS5sb2dgYCBmYWNpbGl0aWVzLCB3aGljaAorICAgIGhhcyB0aGUgZWZmZWN0IG9mIHdyaXRpbmcg
bG9nIG1lc3NhZ2VzIG9uIHRoZSBQeXRob24gc3RhbmRhcmQgb3V0cHV0CisgICAgc3RyZWFtLiAg
VGhhdCBjb25zdW1lciBpcyBhc3NvY2lhdGVkIGF0IHRoZSB2ZXJ5IHRvcCBvZiB0aGUgcHJvZHVj
ZXIKKyAgICBoaWVyYXJjaHksIGFuZCBhcyBzdWNoLCBpcyBjYWxsZWQgd2hlbmV2ZXIgbm8gb3Ro
ZXIgY29uc3VtZXIgaXMKKyAgICBmb3VuZC4KKworICArIFRoZSBub3RhdGlvbiBgYHB5LmxvZy5T
VERPVVRgYCBhY2Nlc3NlcyBhIGxvZyBjb25zdW1lciB3aGljaCB3cml0ZXMKKyAgICBsb2cgbWVz
c2FnZXMgb24gdGhlIFB5dGhvbiBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgorCisgICsgVGhlIG5v
dGF0aW9uIGBgcHkubG9nLlNUREVSUmBgIGFjY2Vzc2VzIGEgbG9nIGNvbnN1bWVyIHdoaWNoIHdy
aXRlcworICAgIGxvZyBtZXNzYWdlcyBvbiB0aGUgUHl0aG9uIHN0YW5kYXJkIGVycm9yIHN0cmVh
bS4KKworICArIFRoZSBgYHB5LmxvZy5GaWxlKClgYCBjb25zdHJ1Y3RvciBhY2NlcHRzLCBhcyBh
cmd1bWVudCwgZWl0aGVyIGEgZmlsZQorICAgIGFscmVhZHkgb3BlbmVkIGluIHdyaXRlIG1vZGUg
b3IgYW55IHNpbWlsYXIgZmlsZS1saWtlIG9iamVjdCwgYW5kCisgICAgY3JlYXRlcyBhIGxvZyBj
b25zdW1lciBhYmxlIHRvIHdyaXRlIGxvZyBtZXNzYWdlcyBvbnRvIHRoYXQgZmlsZS4KKworICAr
IFRoZSBgYHB5LmxvZy5QYXRoKClgYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGEgZmlsZSBuYW1lIGZv
ciBpdHMgZmlyc3QKKyAgICBhcmd1bWVudCwgYW5kIGNyZWF0ZXMgYSBsb2cgY29uc3VtZXIgYWJs
ZSB0byB3cml0ZSBsb2cgbWVzc2FnZXMgaW50bworICAgIHRoYXQgZmlsZS4gIFRoZSBjb25zdHJ1
Y3RvciBjYWxsIGFjY2VwdHMgYSBmZXcga2V5d29yZCBwYXJhbWV0ZXJzOgorCisgICAgICArIGBg
YXBwZW5kYGAsIHdoaWNoIGlzIGBgRmFsc2VgYCBieSBkZWZhdWx0LCBtYXkgYmUgdXNlZCBmb3IK
KyAgICAgICAgb3BlbmluZyB0aGUgZmlsZSBpbiBhcHBlbmQgbW9kZSBpbnN0ZWFkIG9mIHdyaXRl
IG1vZGUuCisKKyAgICAgICsgYGBkZWxheWVkX2NyZWF0ZWBgLCB3aGljaCBpcyBgYEZhbHNlYGAg
YnkgZGVmYXVsdCwgbWF5YmUgYmUgdXNlZAorICAgICAgICBmb3Igb3BlbmluZyB0aGUgZmlsZSBh
dCB0aGUgbGF0ZXN0IHBvc3NpYmxlIHRpbWUuICBDb25zZXF1ZW50bHksCisgICAgICAgIHRoZSBm
aWxlIHdpbGwgbm90IGJlIGNyZWF0ZWQgaWYgaXQgZGlkIG5vdCBleGlzdCwgYW5kIG5vIGFjdHVh
bAorICAgICAgICBsb2cgbWVzc2FnZSBnZXRzIHdyaXR0ZW4gdG8gaXQuCisKKyAgICAgICsgYGBi
dWZmZXJpbmdgYCwgd2hpY2ggaXMgMSBieSBkZWZhdWx0LCBpcyB1c2VkIHdoZW4gb3BlbmluZyB0
aGUKKyAgICAgICAgZmlsZS4gIEJ1ZmZlcmluZyBjYW4gYmUgdHVybmVkIG9mZiBieSBzcGVjaWZ5
aW5nIGEgMCB2YWx1ZS4gIFRoZQorICAgICAgICBidWZmZXIgc2l6ZSBtYXkgYWxzbyBiZSBzZWxl
Y3RlZCB0aHJvdWdoIHRoaXMgYXJndW1lbnQuCisKKyAgKyBBbnkgdXNlciBkZWZpbmVkIGZ1bmN0
aW9uIG1heSBiZSB1c2VkIGZvciBhIGxvZyBjb25zdW1lci4gIFN1Y2ggYQorICAgIGZ1bmN0aW9u
IHNob3VsZCBhY2NlcHQgYSBzaW5nbGUgYXJndW1lbnQsIHdoaWNoIGlzIHRoZSBtZXNzYWdlIHRv
CisgICAgd3JpdGUsIGFuZCBkbyB3aGF0ZXZlciBpcyBkZWVtZWQgYXBwcm9wcmlhdGUgYnkgdGhl
IHByb2dyYW1tZXIuCisgICAgV2hlbiB0aGUgbmVlZCBhcmlzZXMsIHRoaXMgbWF5IGJlIGFuIGVz
cGVjaWFsbHkgdXNlZnVsIGFuZCBmbGV4aWJsZQorICAgIGZlYXR1cmUuCisKKyAgKyBUaGUgc3Bl
Y2lhbCB2YWx1ZSBgYE5vbmVgYCBtZWFucyBubyBjb25zdW1lciBhdCBhbGwuICBUaGlzIGFjdHMg
anVzdAorICAgIGxpa2UgaWYgdGhlcmUgd2FzIGEgY29uc3VtZXIgd2hpY2ggd291bGQgc2lsZW50
bHkgZGlzY2FyZCBhbGwgbG9nCisgICAgbWVzc2FnZXMgc2VudCB0byBpdC4KKworQXNzb2NpYXRp
bmcgcHJvZHVjZXJzIGFuZCBjb25zdW1lcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK0VhY2ggbG9nIHByb2R1Y2VyIG1heSBoYXZlIGF0IG1vc3Qgb25lIGxvZyBjb25z
dW1lciBhc3NvY2lhdGVkIHdpdGgKK2l0LiAgQSBsb2cgcHJvZHVjZXIgZ2V0cyBhc3NvY2lhdGVk
IHdpdGggYSBsb2cgY29uc3VtZXIgdGhyb3VnaCBhCitgYHB5LmxvZy5zZXRjb25zdW1lcigpYGAg
Y2FsbC4gIFRoYXQgZnVuY3Rpb24gYWNjZXB0cyB0d28gYXJndW1lbnRzLAordGhlIGZpcnN0IGlk
ZW50aWZ5aW5nIGEgcHJvZHVjZXIgKGEgdHVwbGUgb2Yga2V5d29yZCBzdHJpbmdzIG9yIGEgc2lu
Z2xlCitzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nIG9mIGtleXdvcmRzKSwgdGhlIHNlY29uZCBzcGVj
aWZ5aW5nIHRoZSBwcmVjaXNlCitjb25zdW1lciB0byB1c2UgZm9yIHRoYXQgcHJvZHVjZXIuICBV
bnRpbCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgYQorcHJvZHVjZXIsIHRoYXQgcHJvZHVj
ZXIgZG9lcyBub3QgaGF2ZSBhbnkgZXhwbGljaXQgY29uc3VtZXIgYXNzb2NpYXRlZAord2l0aCBp
dC4KKworTm93LCB0aGUgaGllcmFyY2h5IG9mIGxvZyBwcm9kdWNlcnMgZXN0YWJsaXNoZXMgd2hp
Y2ggY29uc3VtZXIgZ2V0cyB1c2VkCit3aGVuZXZlciBhIHByb2R1Y2VyIGhhcyBubyBleHBsaWNp
dCBjb25zdW1lci4gIFdoZW4gYSBsb2cgcHJvZHVjZXIKK2hhcyBubyBjb25zdW1lciBleHBsaWNp
dGx5IGFzc29jaWF0ZWQgd2l0aCBpdCwgaXQgZHluYW1pY2FsbHkgYW5kCityZWN1cnNpdmVseSBp
bmhlcml0cyB0aGUgY29uc3VtZXIgb2YgaXRzIHBhcmVudCBub2RlLCB0aGF0IGlzLCB0aGF0IG5v
ZGUKK2JlaW5nIGEgYml0IGNsb3NlciB0byB0aGUgcm9vdCBvZiB0aGUgaGllcmFyY2h5LiAgSW4g
b3RoZXIgd29yZHMsIHRoZQorcmlnaHRtb3N0IGtleXdvcmRzIG9mIHRoYXQgcHJvZHVjZXIgYXJl
IGRyb3BwZWQgdW50aWwgYW5vdGhlciBwcm9kdWNlcgoraXMgZm91bmQgd2hpY2ggaGFzIGFuIGV4
cGxpY2l0IGNvbnN1bWVyLiAgQSBuaWNlIHNpZGUtZWZmZWN0IGlzIHRoYXQsCitieSBleHBsaWNp
dGx5IGFzc29jaWF0aW5nIGEgY29uc3VtZXIgd2l0aCBhIHByb2R1Y2VyLCBhbGwgY29uc3VtZXIt
bGVzcworcHJvZHVjZXJzIHdoaWNoIGFwcGVhciB1bmRlciB0aGF0IHByb2R1Y2VyLCBpbiB0aGUg
aGllcmFyY2h5IHRyZWUsCithdXRvbWF0aWNhbGx5ICppbmhlcml0cyogdGhhdCBjb25zdW1lci4K
KworV3JpdGluZyBsb2cgbWVzc2FnZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FsbCBsb2cg
cHJvZHVjZXIgaW5zdGFuY2VzIGFyZSBhbHNvIGZ1bmN0aW9ucywgYW5kIHRoaXMgaXMgYnkgY2Fs
bGluZwordGhlbSB0aGF0IGxvZyBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkLiAgRWFjaCBjYWxsIHRv
IGEgcHJvZHVjZXIgb2JqZWN0Citwcm9kdWNlcyB0aGUgdGV4dCBmb3Igb25lIGxvZyBlbnRyeSwg
d2hpY2ggaW4gdHVybiwgaXMgc2VudCB0byB0aGUgbG9nCitjb25zdW1lciBmb3IgdGhhdCBwcm9k
dWNlci4KKworVGhlIGxvZyBlbnRyeSBkaXNwbGF5cywgYWZ0ZXIgYSBwcmVmaXggaWRlbnRpZnlp
bmcgdGhlIGxvZyBwcm9kdWNlcgorYmVpbmcgdXNlZCwgYWxsIGFyZ3VtZW50cyBnaXZlbiBpbiB0
aGUgY2FsbCwgY29udmVydGVkIHRvIHN0cmluZ3MgYW5kCitzcGFjZS1zZXBhcmF0ZWQuICAoVGhp
cyBpcyBtZWFudCBieSBkZXNpZ24gdG8gYmUgZmFpcmx5IHNpbWlsYXIgdG8gd2hhdAordGhlIGBg
cHJpbnRgYCBzdGF0ZW1lbnQgZG9lcyBpbiBQeXRob24pLiAgVGhlIHByZWZpeCBpdHNlbGYgaXMg
bWFkZSB1cAorb2YgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBrZXl3b3JkcyBhc3NvY2lhdGVk
IHdpdGggdGhlIHByb2R1Y2VyLCB0aGUKK3dob2xlIGJlaW5nIHNldCB3aXRoaW4gc3F1YXJlIGJy
YWNrZXRzLgorCitOb3RlIHRoYXQgdGhlIGNvbnN1bWVyIGlzIHJlc3BvbnNpYmxlIGZvciBhZGRp
bmcgdGhlIG5ld2xpbmUgYXQgdGhlIGVuZAorb2YgdGhlIGxvZyBlbnRyeS4gIFRoYXQgZmluYWwg
bmV3bGluZSBpcyBub3QgcGFydCBvZiB0aGUgdGV4dCBmb3IgdGhlCitsb2cgZW50cnkuCisKKy4u
IE90aGVyIGRldGFpbHMKKy4uIC0tLS0tLS0tLS0tLS0KKy4uIFhYWDogZmlsbCBpbiBkZXRhaWxz
CisuLiArIFNob3VsZCBzcGVhayBhYm91dCBwaWNrbGUtYWJpbGl0eSBvZiA6Y29kZTpgcHkubG9n
YC4KKy4uCisuLiArIFdoYXQgaXMgOmNvZGU6YGxvZy5nZXRgIChpbiA6ZmlsZTpgbG9nZ2VyLnB5
YCk/CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9taXNjLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL21pc2Mu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRiNDUzNDgyNzU3YTEwNmE2ZjNmYTQ0MGI3ZDQwZjAyNGNlNDZhMzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9taXNjLnR4dApAQCAtMCwwICsxLDkzIEBA
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK01pc2NlbGxhbmVvdXMgZmVh
dHVyZXMgb2YgdGhlIHB5IGxpYgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK01hcHBpbmcgdGhlIHN0YW5kYXJkIHB5dGhvbiBsaWJyYXJ5IGludG8gcHkKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIGBgcHkuc3RkYGAgb2Jq
ZWN0IGFsbG93cyBsYXp5IGFjY2VzcyB0bworc3RhbmRhcmQgbGlicmFyeSBtb2R1bGVzLiAgRm9y
IGV4YW1wbGUsIHRvIGdldCB0byB0aGUgcHJpbnQtZXhjZXB0aW9uCitmdW5jdGlvbmFsaXR5IG9m
IHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHlvdSBjYW4gd3JpdGU6OgorCisgICAgcHkuc3RkLnRyYWNl
YmFjay5wcmludF9leGMoKQorCit3aXRob3V0IGhhdmluZyB0byBkbyBhbnl0aGluZyBlbHNlIHRo
YW4gdGhlIHVzdWFsIGBgaW1wb3J0IHB5YGAKK2F0IHRoZSBiZWdpbm5pbmcuICBZb3UgY2FuIGFj
Y2VzcyBhbnkgb3RoZXIgdG9wLWxldmVsIHN0YW5kYXJkCitsaWJyYXJ5IG1vZHVsZSB0aGlzIHdh
eS4gIFRoaXMgbWVhbnMgdGhhdCB5b3Ugd2lsbCBvbmx5IHRyaWdnZXIKK2ltcG9ydHMgb2YgbW9k
dWxlcyB0aGF0IGFyZSBhY3R1YWxseSBuZWVkZWQuICBOb3RlIHRoYXQgbm8gYXR0ZW1wdAoraXMg
bWFkZSB0byBpbXBvcnQgc3VibW9kdWxlcy4KKworU3VwcG9ydCBmb3IgaW50ZXJhY3Rpb24gd2l0
aCBzeXN0ZW0gdXRpbGl0aWVzL2JpbmFyaWVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQ3VycmVudGx5LCB0aGUgcHkgbGliIG9mZmVy
cyB0d28gd2F5cyB0byBpbnRlcmFjdCB3aXRoCitzeXN0ZW0gZXhlY3V0YWJsZXMuIGBgcHkucHJv
Y2Vzcy5jbWRleGVjKClgYCBpbnZva2VzCit0aGUgc2hlbGwgaW4gb3JkZXIgdG8gZXhlY3V0ZSBh
IHN0cmluZy4gIFRoZSBvdGhlcgorb25lLCBgYHB5LnBhdGgubG9jYWxgYCdzICdzeXNleGVjKCkn
IG1ldGhvZCBsZXRzIHlvdQorZGlyZWN0bHkgZXhlY3V0ZSBhIGJpbmFyeS4KKworQm90aCBhcHBy
b2FjaGVzIHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9uIGluIGNhc2Ugb2YgYSByZXR1cm4tCitjb2Rl
IG90aGVyIHRoYW4gMCBhbmQgb3RoZXJ3aXNlIHJldHVybiB0aGUgc3Rkb3V0LW91dHB1dAorb2Yg
dGhlIGNoaWxkIHByb2Nlc3MuCisKK1RoZSBzaGVsbCBiYXNlZCBhcHByb2FjaAorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gZXhlY3V0ZSBhIGNvbW1hbmQgdmlhIHlvdXIgc3lz
dGVtIHNoZWxsCitieSBkb2luZyBzb21ldGhpbmcgbGlrZTo6CisKKyAgICBvdXQgPSBweS5wcm9j
ZXNzLmNtZGV4ZWMoJ2xzIC12JykKKworSG93ZXZlciwgdGhlIGBgY21kZXhlY2BgIGFwcHJvYWNo
IGhhcyBhIGZldyBzaG9ydGNvbWluZ3M6CisKKy0gaXQgcmVsaWVzIG9uIHRoZSB1bmRlcmx5aW5n
IHN5c3RlbSBzaGVsbAorLSBpdCBuZWNjZXNzaXRhdGVzIHNoZWxsLWVzY2FwaW5nIGZvciBleHBy
ZXNzaW5nIGFyZ3VtZW50cworLSBpdCBkb2VzIG5vdCBlYXNpbHkgYWxsb3cgdG8gImZpeCIgdGhl
IGJpbmFyeSB5b3Ugd2FudCB0byBydW4uCistIGl0IG9ubHkgYWxsb3dzIHRvIGV4ZWN1dGUgZXhl
Y3V0YWJsZXMgZnJvbSB0aGUgbG9jYWwKKyAgZmlsZXN5c3RlbQorCisuLiBfc3lzZXhlYzoKKwor
bG9jYWwgcGF0aHMgaGF2ZSBgYHN5c2V4ZWNgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitJbiBvcmRlciB0byBzeW5jaHJvbm91c2x5IGV4ZWN1dGUgYW4gZXhlY3V0YWJsZSBmaWxl
IHlvdQorY2FuIHVzZSBgYHN5c2V4ZWNgYDo6CisKKyAgICBiaW5zdm4uc3lzZXhlYygnbHMnLCAn
aHR0cDovL2NvZGVzcGVhay5uZXQvc3ZuJykKKword2hlcmUgYGBiaW5zdm5gYCBpcyBhIHBhdGgg
dGhhdCBwb2ludHMgdG8gdGhlIGBgc3ZuYGAgY29tbWFuZGxpbmUKK2JpbmFyeS4gTm90ZSB0aGF0
IHRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgYW55IHNoZWxsLWVzY2FwaW5nCitzbyB5b3Ug
aGF2ZSB0byBwYXNzIGluIGFscmVhZHkgc2VwYXJhdGVkIGFyZ3VtZW50cy4KKworZmluZGluZyBh
biBleGVjdXRhYmxlIGxvY2FsIHBhdGgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK0ZpbmRpbmcgYW4gZXhlY3V0YWJsZSBpcyBxdWl0ZSBkaWZmZXJlbnQgb24gbXVsdGlwbGUg
cGxhdGZvcm1zLgorQ3VycmVudGx5LCB0aGUgYGBQQVRIYGAgZW52aXJvbm1lbnQgdmFyaWFibGUg
YmFzZWQgc2VhcmNoIG9uCit1bml4IHBsYXRmb3JtcyBpcyBzdXBwb3J0ZWQ6OgorCisgICAgcHku
cGF0aC5sb2NhbC5zeXNmaW5kKCdzdm4nKQorCit3aGljaCByZXR1cm5zIHRoZSBmaXJzdCBwYXRo
IHdob3NlIGBgYmFzZW5hbWVgYCBtYXRjaGVzIGBgc3ZuYGAuCitJbiBwcmluY2lwbGUsIGBzeXNm
aW5kYCBkZXBsb3lzIHBsYXRmb3JtIHNwZWNpZmljIGFsZ29yaXRobXMKK3RvIHBlcmZvcm0gdGhl
IHNlYXJjaC4gIE9uIFdpbmRvd3MsIGZvciBleGFtcGxlLCBpdCBtYXkgbG9vaworYXQgdGhlIHJl
Z2lzdHJ5IChYWFgpLgorCitUbyBtYWtlIHRoZSBzdG9yeSBjb21wbGV0ZSwgd2UgYWxsb3cgdG8g
cGFzcyBpbiBhIHNlY29uZCBgYGNoZWNrZXJgYAorYXJndW1lbnQgdGhhdCBpcyBjYWxsZWQgZm9y
IGVhY2ggZm91bmQgZXhlY3V0YWJsZS4gIEZvciBleGFtcGxlLCBpZgoreW91IGhhdmUgbXVsdGlw
bGUgYmluYXJpZXMgYXZhaWxhYmxlIHlvdSBtYXkgd2FudCB0byBzZWxlY3QgdGhlCityaWdodCB2
ZXJzaW9uOjoKKworICAgIGRlZiBteXN2bihwKToKKyAgICAgICAgIiIiIGNoZWNrIHRoYXQgdGhl
IGdpdmVuIHN2biBiaW5hcnkgaGFzIHZlcnNpb24gMS4xLiAiIiIKKyAgICAgICAgbGluZSA9IHAu
ZXhlY3V0ZSgnLS12ZXJzaW9uJycpLnJlYWRsaW5lcygpWzBdCisgICAgICAgIGlmIGxpbmUuZmlu
ZCgndmVyc2lvbiAxLjEnKToKKyAgICAgICAgICAgIHJldHVybiBwCisgICAgYmluc3ZuID0gcHku
cGF0aC5sb2NhbC5zeXNmaW5kKCdzdm4nLCBjaGVja2VyPW15c3ZuKQorCisKK0Nyb3NzLVB5dGhv
biBWZXJzaW9uIGNvbXBhdGliaWxpdHkgaGVscGVycworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBgYHB5LmJ1aWx0aW5gYCBuYW1lc3BhY2UgcHJv
dmlkZXMgYSBudW1iZXIgb2YgaGVscGVycyB0aGF0IGhlbHAgdG8gd3JpdGUgcHl0aG9uIGNvZGUg
Y29tcGF0aWJsZSBhY3Jvc3MgUHl0aG9uIGludGVycHJldGVycywgbWFpbmx5IFB5dGhvbjIgYW5k
IFB5dGhvbjMuICBUeXBlIGBgaGVscChweS5idWlsdGluKWBgIG9uIGEgUHl0aG9uIHByb21wdCBm
b3IgdGhlIHNlbGVjdGlvbiBvZiBidWlsdGlucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3Bh
dGgudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvcGF0aC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkwNjE3OTA5OWFmOGE0
NDA4MzRmMjBhMGU0ODQ1MGRlNmM2MzliZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L3BhdGgudHh0CkBAIC0wLDAgKzEsMjU4IEBACis9PT09PT09CitweS5wYXRoCis9PT09PT09CisK
K1RoZSAncHknIGxpYiBwcm92aWRlcyBhIHVuaWZvcm0gaGlnaC1sZXZlbCBhcGkgdG8gZGVhbCB3
aXRoIGZpbGVzeXN0ZW1zCithbmQgZmlsZXN5c3RlbS1saWtlIGludGVyZmFjZXM6IGBgcHkucGF0
aGBgLiAgSXQgYWltcyB0byBvZmZlciBhIGNlbnRyYWwKK29iamVjdCB0byBmcy1saWtlIG9iamVj
dCB0cmVlcyAocmVhZGluZyBmcm9tIGFuZCB3cml0aW5nIHRvIGZpbGVzLCBhZGRpbmcKK2ZpbGVz
L2RpcmVjdG9yaWVzLCBleGFtaW5pbmcgdGhlIHR5cGVzIGFuZCBzdHJ1Y3R1cmUsIGV0Yy4pLCBh
bmQgb3V0LW9mLXRoZS1ib3gKK3Byb3ZpZGVzIGEgbnVtYmVyIG9mIGltcGxlbWVudGF0aW9ucyBv
ZiB0aGlzIEFQSS4KKworcHkucGF0aC5sb2NhbCAtIGxvY2FsIGZpbGUgc3lzdGVtIHBhdGgKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9gbG9j
YWxgOgorCitiYXNpYyBpbnRlcmFjdGl2ZSBleGFtcGxlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1RoZSBmaXJzdCBhbmQgbW9zdCBvYnZpb3VzIG9mIHRoZSBpbXBs
ZW1lbnRhdGlvbnMgaXMgYSB3cmFwcGVyIGFyb3VuZCBhIGxvY2FsCitmaWxlc3lzdGVtLiBJdCdz
IGp1c3QgYSBiaXQgbmljZXIgaW4gdXNhZ2UgdGhhbiB0aGUgcmVndWxhciBQeXRob24gQVBJcywg
YW5kCitvZiBjb3Vyc2UgYWxsIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGJ1bmRsZWQgdG9nZXRoZXIg
cmF0aGVyIHRoYW4gc3ByZWFkIG92ZXIgYQorbnVtYmVyIG9mIG1vZHVsZXMuCisKKworLi4gc291
cmNlY29kZTo6IHB5Y29uCisKKyAgPj4+IGltcG9ydCBweQorICA+Pj4gdGVtcHBhdGggPSBweS5w
YXRoLmxvY2FsKCdweS5wYXRoX2RvY3VtZW50YXRpb24nKQorICA+Pj4gZm9vcGF0aCA9IHRlbXBw
YXRoLmpvaW4oJ2ZvbycpICMgZ2V0IGNoaWxkICdmb28nIChsYXppbHkpCisgID4+PiBmb29wYXRo
LmNoZWNrKCkgIyBjaGVjayBpZiBjaGlsZCAnZm9vJyBleGlzdHMKKyAgRmFsc2UKKyAgPj4+IGZv
b3BhdGgud3JpdGUoJ2JhcicpICMgd3JpdGUgc29tZSBkYXRhIHRvIGl0CisgID4+PiBmb29wYXRo
LmNoZWNrKCkKKyAgVHJ1ZQorICA+Pj4gZm9vcGF0aC5yZWFkKCkKKyAgJ2JhcicKKyAgPj4+IGZv
b2ZpbGUgPSBmb29wYXRoLm9wZW4oKSAjIHJldHVybiBhICdyZWFsJyBmaWxlIG9iamVjdAorICA+
Pj4gZm9vZmlsZS5yZWFkKDEpCisgICdiJworCityZWZlcmVuY2UgZG9jdW1lbnRhdGlvbgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6IHB5Ll9wYXRo
LmxvY2FsLkxvY2FsUGF0aAorICAgIDptZW1iZXJzOgorICAgIDppbmhlcml0ZWQtbWVtYmVyczoK
KworYGBweS5wYXRoLnN2bnVybGBgIGFuZCBgYHB5LnBhdGguc3Zud2NgYAorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVHdvIG90aGVyIGBgcHku
cGF0aGBgIGltcGxlbWVudGF0aW9ucyB0aGF0IHRoZSBweSBsaWIgcHJvdmlkZXMgd3JhcCB0aGUK
K3BvcHVsYXIgYFN1YnZlcnNpb25gXyByZXZpc2lvbiBjb250cm9sIHN5c3RlbTogdGhlIGZpcnN0
IChjYWxsZWQgJ3N2bnVybCcpCitieSBpbnRlcmZhY2luZyB3aXRoIGEgcmVtb3RlIHNlcnZlciwg
dGhlIHNlY29uZCBieSB3cmFwcGluZyBhIGxvY2FsIGNoZWNrb3V0LgorQm90aCBhbGxvdyB5b3Ug
dG8gYWNjZXNzIHJlbGF0aXZlbHkgYWR2YW5jZWQgZmVhdHVyZXMgc3VjaCBhcyBtZXRhZGF0YSBh
bmQKK3ZlcnNpb25pbmcsIGFuZCBib3RoIGluIGEgd2F5IG1vcmUgdXNlci1mcmllbmRseSBtYW5u
ZXIgdGhhbiBleGlzdGluZyBvdGhlcgorc29sdXRpb25zLgorCitTb21lIGV4YW1wbGUgdXNhZ2Ug
b2YgYGBweS5wYXRoLnN2bnVybGBgOgorCisuLiBzb3VyY2Vjb2RlOjogcHljb24KKworICAuLiA+
Pj4gaW1wb3J0IHB5CisgIC4uID4+PiBpZiBub3QgcHkudGVzdC5jb25maWcub3B0aW9uLnVybGNo
ZWNrOiByYWlzZSBWYWx1ZUVycm9yKCdza2lwY2h1bmsnKQorICA+Pj4gdXJsID0gcHkucGF0aC5z
dm51cmwoJ2h0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weScpCisgID4+PiBpbmZvID0gdXJsLmlu
Zm8oKQorICA+Pj4gaW5mby5raW5kCisgICdkaXInCisgID4+PiBmaXJzdGVudHJ5ID0gdXJsLmxv
ZygpWy0xXQorICA+Pj4gaW1wb3J0IHRpbWUKKyAgPj4+IHRpbWUuc3RyZnRpbWUoJyVZLSVtLSVk
JywgdGltZS5nbXRpbWUoZmlyc3RlbnRyeS5kYXRlKSkKKyAgJzIwMDQtMTAtMDInCisKK0V4YW1w
bGUgdXNhZ2Ugb2YgYGBweS5wYXRoLnN2bndjYGA6CisKKy4uIHNvdXJjZWNvZGU6OiBweWNvbgor
CisgIC4uID4+PiBpZiBub3QgcHkudGVzdC5jb25maWcub3B0aW9uLnVybGNoZWNrOiByYWlzZSBW
YWx1ZUVycm9yKCdza2lwY2h1bmsnKQorICA+Pj4gdGVtcCA9IHB5LnBhdGgubG9jYWwoJ3B5LnBh
dGhfZG9jdW1lbnRhdGlvbicpCisgID4+PiB3YyA9IHB5LnBhdGguc3Zud2ModGVtcC5qb2luKCdz
dm53YycpKQorICA+Pj4gd2MuY2hlY2tvdXQoJ2h0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weS9k
aXN0L3B5L3BhdGgvbG9jYWwnKQorICA+Pj4gd2Muam9pbignbG9jYWwucHknKS5jaGVjaygpCisg
IFRydWUKKworLi4gX2BTdWJ2ZXJzaW9uYDogaHR0cDovL3N1YnZlcnNpb24udGlncmlzLm9yZy8K
Kworc3ZuIHBhdGggcmVsYXRlZCBBUEkgcmVmZXJlbmNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBweS5fcGF0aC5zdm53Yy5Tdm5X
Q0NvbW1hbmRQYXRoCisgICAgOm1lbWJlcnM6CisgICAgOmluaGVyaXRlZC1tZW1iZXJzOgorCisu
LiBhdXRvY2xhc3M6OiBweS5fcGF0aC5zdm51cmwuU3ZuQ29tbWFuZFBhdGgKKyAgICA6bWVtYmVy
czoKKyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IHB5Ll9wYXRoLnN2
bndjLlN2bkF1dGgKKyAgICA6bWVtYmVyczoKKyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKK0Nv
bW1vbiB2cy4gc3BlY2lmaWMgQVBJLCBFeGFtcGxlcworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCitBbGwgUGF0aCBvYmplY3RzIHN1cHBvcnQgYSBjb21tb24gc2V0
IG9mIG9wZXJhdGlvbnMsIHN1aXRhYmxlCitmb3IgbWFueSB1c2UgY2FzZXMgYW5kIGFsbG93aW5n
IHRvIHRyYW5zcGFyZW50bHkgc3dpdGNoIHRoZQorcGF0aCBvYmplY3Qgd2l0aGluIGFuIGFwcGxp
Y2F0aW9uIChlLmcuIGZyb20gImxvY2FsIiB0byAic3Zud2MiKS4KK1RoZSBjb21tb24gc2V0IGlu
Y2x1ZGVzIGZ1bmN0aW9ucyBzdWNoIGFzIGBwYXRoLnJlYWQoKWAgdG8gcmVhZCBhbGwgZGF0YQor
ZnJvbSBhIGZpbGUsIGBwYXRoLndyaXRlKClgIHRvIHdyaXRlIGRhdGEsIGBwYXRoLmxpc3RkaXIo
KWAgdG8gZ2V0IGEgbGlzdAorb2YgZGlyZWN0b3J5IGVudHJpZXMsIGBwYXRoLmNoZWNrKClgIHRv
IGNoZWNrIGlmIGEgbm9kZSBleGlzdHMKK2FuZCBpcyBvZiBhIHBhcnRpY3VsYXIgdHlwZSwgYHBh
dGguam9pbigpYCB0byBnZXQKK3RvIGEgKGdyYW5kKWNoaWxkLCBgcGF0aC52aXNpdCgpYCB0byBy
ZWN1cnNpdmVseSB3YWxrIHRocm91Z2ggYSBub2RlJ3MKK2NoaWxkcmVuLCBldGMuICBPbmx5IHRo
aW5ncyB0aGF0IGFyZSBub3QgY29tbW9uIG9uICdub3JtYWwnIGZpbGVzeXN0ZW1zICh5ZXQpLAor
c3VjaCBhcyBoYW5kbGluZyBtZXRhZGF0YSAoZS5nLiB0aGUgU3VidmVyc2lvbiAicHJvcGVydGll
cyIpIHJlcXVpcmUKK3VzaW5nIHNwZWNpZmljIEFQSXMuCisKK0EgcXVpY2sgJ2Nvb2tib29rJyBv
ZiBzbWFsbCBleGFtcGxlcyB0aGF0IHdpbGwgYmUgdXNlZnVsICdpbiByZWFsIGxpZmUnLAord2hp
Y2ggYWxzbyBwcmVzZW50cyBwYXJ0cyBvZiB0aGUgJ2NvbW1vbicgQVBJLCBhbmQgc2hvd3Mgc29t
ZSBub24tY29tbW9uCittZXRob2RzOgorCitTZWFyY2hpbmcgYC50eHRgIGZpbGVzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTZWFyY2ggZm9yIGEgcGFydGljdWxhciBzdHJp
bmcgaW5zaWRlIGFsbCBmaWxlcyB3aXRoIGEgLnR4dCBleHRlbnNpb24gaW4gYQorc3BlY2lmaWMg
ZGlyZWN0b3J5LgorCisuLiBzb3VyY2Vjb2RlOjogcHljb24KKworICA+Pj4gZGlycGF0aCA9IHRl
bXBwYXRoLmVuc3VyZSgndGVzdGRpcicsIGRpcj1UcnVlKQorICA+Pj4gZGlycGF0aC5qb2luKCd0
ZXh0ZmlsZTEudHh0Jykud3JpdGUoJ2ZvbyBiYXIgYmF6JykKKyAgPj4+IGRpcnBhdGguam9pbign
dGV4dGZpbGUyLnR4dCcpLndyaXRlKCdmcm9iIGJhciBzcGFtIGVnZ3MnKQorICA+Pj4gc3ViZGly
ID0gZGlycGF0aC5lbnN1cmUoJ3N1YmRpcicsIGRpcj1UcnVlKQorICA+Pj4gc3ViZGlyLmpvaW4o
J3RleHRmaWxlMS50eHQnKS53cml0ZSgnZm9vIGJheicpCisgID4+PiBzdWJkaXIuam9pbigndGV4
dGZpbGUyLnR4dCcpLndyaXRlKCdzcGFtIGVnZ3Mgc3BhbSBmb28gYmFyIHNwYW0nKQorICA+Pj4g
cmVzdWx0cyA9IFtdCisgID4+PiBmb3IgZnBhdGggaW4gZGlycGF0aC52aXNpdCgnKi50eHQnKToK
KyAgLi4uICAgICBpZiAnYmFyJyBpbiBmcGF0aC5yZWFkKCk6CisgIC4uLiAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKGZwYXRoLmJhc2VuYW1lKQorICA+Pj4gcmVzdWx0cy5zb3J0KCkKKyAgPj4+IHJl
c3VsdHMKKyAgWyd0ZXh0ZmlsZTEudHh0JywgJ3RleHRmaWxlMi50eHQnLCAndGV4dGZpbGUyLnR4
dCddCisKK1dvcmtpbmcgd2l0aCBQYXRocworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitUaGlzIGV4YW1wbGUgc2hvd3MgdGhlIGBgcHkucGF0aGBgIGZlYXR1cmVzIHRvIGRlYWwgd2l0
aAorZmlsZXN5c3RlbSBwYXRocyBOb3RlIHRoYXQgdGhlIGZpbGVzeXN0ZW0gaXMgbmV2ZXIgdG91
Y2hlZCwKK2FsbCBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgb24gYSBzdHJpbmcgbGV2ZWwgKHNv
IHRoZSBwYXRocworZG9uJ3QgaGF2ZSB0byBleGlzdCwgZWl0aGVyKToKKworLi4gc291cmNlY29k
ZTo6IHB5Y29uCisKKyAgPj4+IHAxID0gcHkucGF0aC5sb2NhbCgnL2Zvby9iYXInKQorICA+Pj4g
cDIgPSBwMS5qb2luKCdiYXovcXV4JykKKyAgPj4+IHAyID09IHB5LnBhdGgubG9jYWwoJy9mb28v
YmFyL2Jhei9xdXgnKQorICBUcnVlCisgID4+PiBzZXAgPSBweS5wYXRoLmxvY2FsLnNlcAorICA+
Pj4gcDIucmVsdG8ocDEpLnJlcGxhY2Uoc2VwLCAnLycpICMgb3Mtc3BlY2lmaWMgcGF0aCBzZXAg
aW4gdGhlIHN0cmluZworICAnYmF6L3F1eCcKKyAgPj4+IHAyLmJlc3RyZWxwYXRoKHAxKS5yZXBs
YWNlKHNlcCwgJy8nKQorICAnLi4vLi4nCisgID4+PiBwMi5qb2luKHAyLmJlc3RyZWxwYXRoKHAx
KSkgPT0gcDEKKyAgVHJ1ZQorICA+Pj4gcDMgPSBwMSAvICdiYXovcXV4JyAjIHRoZSAvIG9wZXJh
dG9yIGFsbG93cyBqb2luaW5nLCB0b28KKyAgPj4+IHAyID09IHAzCisgIFRydWUKKyAgPj4+IHA0
ID0gcDEgKyAiLnB5IgorICA+Pj4gcDQuYmFzZW5hbWUgPT0gImJhci5weSIKKyAgVHJ1ZQorICA+
Pj4gcDQuZXh0ID09ICIucHkiCisgIFRydWUKKyAgPj4+IHA0LnB1cmViYXNlbmFtZSA9PSAiYmFy
IgorICBUcnVlCisKK1RoaXMgc2hvdWxkIGJlIHBvc3NpYmxlIG9uIGV2ZXJ5IGltcGxlbWVudGF0
aW9uIG9mIGBgcHkucGF0aGBgLCBzbworcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBpbXBsZW1l
bnRhdGlvbiB3cmFwcyBhIFVOSVggZmlsZXN5c3RlbSwgYSBXaW5kb3dzCitvbmUsIG9yIGEgZGF0
YWJhc2Ugb3Igb2JqZWN0IHRyZWUsIHRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgYmUgYXZhaWxhYmxl
IChlYWNoCit3aXRoIHRoZWlyIG93biBub3Rpb24gb2YgcGF0aCBzZXBlcmF0b3JzIGFuZCBkZWFs
aW5nIHdpdGggY29udmVyc2lvbnMsIGV0Yy4pLgorCitDaGVja2luZyBwYXRoIHR5cGVzCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK05vdyB3ZSB3aWxsIHNob3cgYSBiaXQgYWJv
dXQgdGhlIHBvd2VyZnVsICdjaGVjaygpJyBtZXRob2Qgb24gcGF0aHMsIHdoaWNoCithbGxvd3Mg
eW91IHRvIGNoZWNrIHdoZXRoZXIgYSBmaWxlIGV4aXN0cywgd2hhdCB0eXBlIGl0IGlzLCBldGMu
OgorCisuLiBzb3VyY2Vjb2RlOjogcHljb24KKworICA+Pj4gZmlsZTEgPSB0ZW1wcGF0aC5qb2lu
KCdmaWxlMScpCisgID4+PiBmaWxlMS5jaGVjaygpICMgZG9lcyBpdCBleGlzdD8KKyAgRmFsc2UK
KyAgPj4+IGZpbGUxID0gZmlsZTEuZW5zdXJlKGZpbGU9VHJ1ZSkgIyAndG91Y2gnIHRoZSBmaWxl
CisgID4+PiBmaWxlMS5jaGVjaygpCisgIFRydWUKKyAgPj4+IGZpbGUxLmNoZWNrKGRpcj1UcnVl
KSAjIGlzIGl0IGEgZGlyPworICBGYWxzZQorICA+Pj4gZmlsZTEuY2hlY2soZmlsZT1UcnVlKSAj
IG9yIGEgZmlsZT8KKyAgVHJ1ZQorICA+Pj4gZmlsZTEuY2hlY2soZXh0PScudHh0JykgIyBjaGVj
ayB0aGUgZXh0ZW5zaW9uCisgIEZhbHNlCisgID4+PiB0ZXh0ZmlsZSA9IHRlbXBwYXRoLmVuc3Vy
ZSgndGV4dC50eHQnLCBmaWxlPVRydWUpCisgID4+PiB0ZXh0ZmlsZS5jaGVjayhleHQ9Jy50eHQn
KQorICBUcnVlCisgID4+PiBmaWxlMS5jaGVjayhiYXNlbmFtZT0nZmlsZTEnKSAjIHdlIGNhbiB1
c2UgYWxsIHRoZSBwYXRoJ3MgcHJvcGVydGllcyBoZXJlCisgIFRydWUKKworU2V0dGluZyBzdm4t
cHJvcGVydGllcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQXMgYW4gZXhh
bXBsZSBvZiAndW5jb21tb24nIG1ldGhvZHMsIHdlJ2xsIHNob3cgaG93IHRvIHJlYWQgYW5kIHdy
aXRlCitwcm9wZXJ0aWVzIGluIGFuIGBgcHkucGF0aC5zdm53Y2BgIGluc3RhbmNlOgorCisuLiBz
b3VyY2Vjb2RlOjogcHljb24KKworICAuLiA+Pj4gaWYgbm90IHB5LnRlc3QuY29uZmlnLm9wdGlv
bi51cmxjaGVjazogcmFpc2UgVmFsdWVFcnJvcignc2tpcGNodW5rJykKKyAgPj4+IHdjLnByb3Bn
ZXQoJ2ZvbycpCisgICcnCisgID4+PiB3Yy5wcm9wc2V0KCdmb28nLCAnYmFyJykKKyAgPj4+IHdj
LnByb3BnZXQoJ2ZvbycpCisgICdiYXInCisgID4+PiBsZW4od2Muc3RhdHVzKCkucHJvcF9tb2Rp
ZmllZCkgIyBvdXIgb3duIHByb3BzCisgIDEKKyAgPj4+IG1zZyA9IHdjLnJldmVydCgpICMgcm9s
bCBiYWNrIG91ciBjaGFuZ2VzCisgID4+PiBsZW4od2Muc3RhdHVzKCkucHJvcF9tb2RpZmllZCkK
KyAgMAorCitTVk4gYXV0aGVudGljYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworU29tZSB1bmNvbW1vbiBmdW5jdGlvbmFsaXR5IGNhbiBhbHNvIGJlIHByb3ZpZGVkIGFzIGV4
dGVuc2lvbnMsIHN1Y2ggYXMgU1ZOCithdXRoZW50aWNhdGlvbjoKKworLi4gc291cmNlY29kZTo6
IHB5Y29uCisKKyAgLi4gPj4+IGlmIG5vdCBweS50ZXN0LmNvbmZpZy5vcHRpb24udXJsY2hlY2s6
IHJhaXNlIFZhbHVlRXJyb3IoJ3NraXBjaHVuaycpCisgID4+PiBhdXRoID0gcHkucGF0aC5Tdm5B
dXRoKCdhbm9ueW1vdXMnLCAndXNlcicsIGNhY2hlX2F1dGg9RmFsc2UsCisgIC4uLiAgICAgICAg
ICAgICBpbnRlcmFjdGl2ZT1GYWxzZSkKKyAgPj4+IHdjLmF1dGggPSBhdXRoCisgID4+PiB3Yy51
cGRhdGUoKSAjIHRoaXMgc2hvdWxkIHdvcmsKKyAgPj4+IHBhdGggPSB3Yy5lbnN1cmUoJ3RoaXNz
aG91bGRub3RleGlzdC50eHQnKQorICA+Pj4gdHJ5OgorICAuLi4gICAgIHBhdGguY29tbWl0KCd0
ZXN0aW5nJykKKyAgLi4uIGV4Y2VwdCBweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3IsIGU6CisgIC4u
LiAgICAgcGFzcworICA+Pj4gJ2F1dGhvcml6YXRpb24gZmFpbGVkJyBpbiBzdHIoZSkKKyAgVHJ1
ZQorCitLbm93biBwcm9ibGVtcyAvIGxpbWl0YXRpb25zCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisqIFRoZSBTVk4gcGF0aCBvYmplY3RzIHJlcXVpcmUgdGhlICJzdm4i
IGNvbW1hbmQgbGluZSwKKyAgdGhlcmUgaXMgY3VycmVudGx5IG5vIHN1cHBvcnQgZm9yIHB5dGhv
biBiaW5kaW5ncy4KKyAgUGFyc2luZyB0aGUgc3ZuIG91dHB1dCBjYW4gbGVhZCB0byBwcm9ibGVt
cywgcGFydGljdWxhcmx5CisgIHJlZ2FyZGluZyBpZiB5b3UgaGF2ZSBhIG5vbi1lbmdsaXNoICJs
b2NhbGVzIiBzZXR0aW5nLgorCisqIFdoaWxlIHRoZSBwYXRoIG9iamVjdHMgYmFzaWNhbGx5IHdv
cmsgb24gd2luZG93cywKKyAgdGhlcmUgaXMgbm8gYXR0ZW50aW9uIHlldCBvbiBtYWtpbmcgdW5p
Y29kZSBwYXRocworICB3b3JrIG9yIGRlYWwgd2l0aCB0aGUgZmFtb3VzICI4LjMiIGZpbGVuYW1l
IGlzc3Vlcy4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9zdHlsZS5jc3MgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L2RvYy9zdHlsZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZhZjc2MmM3MTU2Mzg2OGM2YmI5YmFiNGZmMWVj
OTQ2NDc0NWYxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3N0eWxlLmNzcwpAQCAt
MCwwICsxLDEwNDQgQEAKK2JvZHksYm9keS5lZGl0b3IsYm9keS5ib2R5IHsKKyAgICBmb250OiAx
MTAlICJUaW1lcyBOZXcgUm9tYW4iLCBBcmlhbCwgVmVyZGFuYSwgSGVsdmV0aWNhLCBzZXJpZjsK
KyAgICBiYWNrZ3JvdW5kOiBXaGl0ZTsKKyAgICBjb2xvcjogQmxhY2s7Cit9CisKK2EsIGEucmVm
ZXJlbmNlIHsKKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7IAorfQorYVtocmVmXTpob3ZlciB7IHRl
eHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CisKK2ltZyB7CisgICAgYm9yZGVyOiBub25lOwor
CXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cit9CisKK3AsIGRpdi50ZXh0IHsKKyAgICB0ZXh0LWFs
aWduOiBsZWZ0OworICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTsKKyAgICBtYXJnaW46IDAuNWVtIDBl
bSAwZW0gMGVtOworfQorCisKKworcCBhOmFjdGl2ZSB7CisJY29sb3I6IFJlZDsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KKworcCBpbWcgeworICAgIGJvcmRlcjogMDsK
KyAgICBtYXJnaW46IDA7Cit9CisKK2ltZy5pbmxpbmVwaG90byB7CisgICAgcGFkZGluZzogMDsK
KyAgICBwYWRkaW5nLXJpZ2h0OiAxZW07CisgICAgcGFkZGluZy10b3A6IDAuN2VtOworICAgIGZs
b2F0OiBsZWZ0OworfQorCitociB7CisgICAgY2xlYXI6IGJvdGg7CisgICAgaGVpZ2h0OiAxcHg7
CisgICAgY29sb3I6ICM4Q0FDQkI7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7
Cit9CisKKwordWwgeyAKKyAgICBsaW5lLWhlaWdodDogMS41ZW07CisgICAgLypsaXN0LXN0eWxl
LWltYWdlOiB1cmwoImJ1bGxldC5naWYiKTsgKi8KKyAgICBtYXJnaW4tbGVmdDogMS41ZW07Cisg
ICAgcGFkZGluZzowOworfQorCitvbCB7CisgICAgbGluZS1oZWlnaHQ6IDEuNWVtOworICAgIG1h
cmdpbi1sZWZ0OiAxLjVlbTsKKyAgICBwYWRkaW5nOjA7Cit9CisKK3VsIGEsIG9sIGEgeworICAg
IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOworfQorCitkbCB7Cit9CisKK2RkIHsKKyAgICBs
aW5lLWhlaWdodDogMS41ZW07CisgICAgbWFyZ2luLWJvdHRvbTogMWVtOworfQorCitibG9ja3F1
b3RlIHsKKyAgICBmb250LWZhbWlseTogVGltZXMsICJUaW1lcyBOZXcgUm9tYW4iLCBzZXJpZjsK
KyAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgZm9udC1zaXplOiAxMjAlOworfQorCitjb2Rl
IHsKKyAgICBjb2xvcjogQmxhY2s7CisgICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlN2VjOyov
CisgICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjOyovCit9CisKK3ByZSB7CisgICAgcGFk
ZGluZzogMWVtOworICAgIGJvcmRlcjogMXB4IGRvdHRlZCAjOGNhY2JiOworICAgIGNvbG9yOiBC
bGFjazsKKyAgICAvKgorICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWU3ZWM7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogI2NjY2NjYzsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVlN2VjOworICAg
ICovCisgICAgb3ZlcmZsb3c6IGF1dG87Cit9CisKKworLm5ldHNjYXBlNCB7CisgICAgZGlzcGxh
eTogbm9uZTsKK30KKworLyogbWFpbiBwYWdlIHN0eWxlcyAqLworCisvKmFbaHJlZl06aG92ZXIg
eyBjb2xvcjogYmxhY2s7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CithW2hyZWZdOmxp
bmsgeyBjb2xvcjogYmxhY2s7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CithW2hyZWZd
IHsgY29sb3I6IGJsYWNrOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQorKi8KKworc3Bh
bi5tZW51X3NlbGVjdGVkIHsKKwljb2xvcjogYmxhY2s7CisJdGV4dC1kZWNvcmF0aW9uOiBub25l
OworICAgIHBhZGRpbmctcmlnaHQ6IDAuM2VtOworICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2Nj
Y2M7Cit9CisKKworYS5tZW51IHsKKyAgCS8qY29sb3I6ICMzYmE2ZWM7ICovCisgIAlmb250OiAx
MjAlIFZlcmRhbmEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CisJdGV4dC1kZWNvcmF0
aW9uOiBub25lOworICAgIHBhZGRpbmctcmlnaHQ6IDAuM2VtOworfQorCithLm1lbnVbaHJlZl06
dmlzaXRlZCwgYS5tZW51W2hyZWZdOmxpbmt7CisgIAkvKmNvbG9yOiAjM2JhNmVjOyAqLworCXRl
eHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKworYS5tZW51W2hyZWZdOmhvdmVyIHsKKyAgCS8qY29s
b3I6IGJsYWNrOyovCit9CisKK2RpdiNwYWdldGl0bGV7CisgIC8qYm9yZGVyLXNwYWNpbmc6IDIw
cHg7Ki8KKyAgZm9udDogMTYwJSBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlm
OworICBjb2xvcjogIzNiYTZlYzsgCisgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgIGxlZnQ6
IDgwIHB4OworICBwYWRkaW5nLWJvdHRvbTogMC4zZW07Cit9CisKK2Eud2lraWN1cnJlbnQgewor
ICBmb250OiAxMDAlIFZlcmRhbmEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CisgIGNv
bG9yOiAjM2JhNmVjOyAKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKK30KKworCit0YWJsZS5i
b2R5IHsKKyAgYm9yZGVyOiAwOworICAvKnBhZGRpbmc6IDA7CisgIGJvcmRlci1zcGFjaW5nOiAw
cHg7CisgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgICovCit9CisKK3RkLnBhZ2UtaGVh
ZGVyLWxlZnQgeworICBwYWRkaW5nOiA1cHg7CisgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk
ICM0NDQ0NDQ7Ki8KK30KKwordGQucGFnZS1oZWFkZXItdG9wIHsKKyAgcGFkZGluZzogMDsKKyAg
ICAKKyAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQ0NDQ0NDsqLworfQorCit0ZC5zaWRl
YmFyIHsKKyAgcGFkZGluZzogMSAwIDAgMTsKK30KKwordGQuc2lkZWJhciBwLmNsYXNzYmxvY2sg
eworICBwYWRkaW5nOiAwIDUgMCA1OworICBtYXJnaW46IDEgMSAxIDE7CisgIGJvcmRlcjogMXB4
IHNvbGlkICM0NDQ0NDQ7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Cit9CisKK3RkLnNp
ZGViYXIgcC51c2VyYmxvY2sgeworICBwYWRkaW5nOiAwIDUgMCA1OworICBtYXJnaW46IDEgMSAx
IDE7CisgIGJvcmRlcjogMXB4IHNvbGlkICM0NDQ0NDQ7CisgIGJhY2tncm91bmQtY29sb3I6ICNl
ZWVlZmY7Cit9CisKK3RkLmNvbnRlbnQgeworICBwYWRkaW5nOiAxIDUgMSA1OworICB2ZXJ0aWNh
bC1hbGlnbjogdG9wOworICB3aWR0aDogMTAwJTsKK30KKworcC5vay1tZXNzYWdlIHsKKyAgYmFj
a2dyb3VuZC1jb2xvcjogIzIyYmIyMjsKKyAgcGFkZGluZzogNSA1IDUgNTsKKyAgY29sb3I6IHdo
aXRlOworICBmb250LXdlaWdodDogYm9sZDsKK30KK3AuZXJyb3ItbWVzc2FnZSB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNiYjIyMjI7CisgIHBhZGRpbmc6IDUgNSA1IDU7CisgIGNvbG9yOiB3aGl0
ZTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK3A6Zmlyc3QtY2hpbGQgeyAKKyAgbWFyZ2lu
OiAwIDsKKyAgcGFkZGluZzogMDsKK30KKworLyogc3R5bGUgZm9yIGZvcm1zICovCit0YWJsZS5m
b3JtIHsKKyAgcGFkZGluZzogMjsKKyAgYm9yZGVyLXNwYWNpbmc6IDBweDsKKyAgYm9yZGVyLWNv
bGxhcHNlOiBzZXBhcmF0ZTsKK30KKwordGFibGUuZm9ybSB0aCB7CisgIGNvbG9yOiAjMzMzMzg4
OworICB0ZXh0LWFsaWduOiByaWdodDsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgZm9udC13
ZWlnaHQ6IG5vcm1hbDsKK30KK3RhYmxlLmZvcm0gdGguaGVhZGVyIHsKKyAgZm9udC13ZWlnaHQ6
IGJvbGQ7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZmY7CisgIHRleHQtYWxpZ246IGxlZnQ7
Cit9CisKK3RhYmxlLmZvcm0gdGgucmVxdWlyZWQgeworICBmb250LXdlaWdodDogYm9sZDsKK30K
KwordGFibGUuZm9ybSB0ZCB7CisgIGNvbG9yOiAjMzMzMzMzOworICBlbXB0eS1jZWxsczogc2hv
dzsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKK30KKwordGFibGUuZm9ybSB0ZC5vcHRpb25hbCB7
CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK3RhYmxl
LmZvcm0gdGQuaHRtbCB7CisgIGNvbG9yOiAjNzc3Nzc3OworfQorCisvKiBzdHlsZSBmb3IgbGlz
dHMgKi8KK3RhYmxlLmxpc3QgeworICBib3JkZXItc3BhY2luZzogMHB4OworICBib3JkZXItY29s
bGFwc2U6IHNlcGFyYXRlOworICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICBwYWRkaW5nLXRvcDog
MDsKKyAgd2lkdGg6IDEwMCU7Cit9CisKK3RhYmxlLmxpc3QgdGggeworICBwYWRkaW5nOiAwIDQg
MCA0OworICBjb2xvcjogIzQwNDA3MDsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVmZjsKKyAg
Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQwNDA3MDsKKyAgYm9yZGVyLXRvcDogMXB4IHNvbGlk
ICM0MDQwNzA7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDA0MDcwOworICB2ZXJ0aWNh
bC1hbGlnbjogdG9wOworICBlbXB0eS1jZWxsczogc2hvdzsKK30KK3RhYmxlLmxpc3QgdGggYVto
cmVmXTpob3ZlciB7IGNvbG9yOiAjNDA0MDcwIH0KK3RhYmxlLmxpc3QgdGggYVtocmVmXTpsaW5r
IHsgY29sb3I6ICM0MDQwNzAgfQordGFibGUubGlzdCB0aCBhW2hyZWZdIHsgY29sb3I6ICM0MDQw
NzAgfQordGFibGUubGlzdCB0aC5ncm91cCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZmY7
CisgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgZm9udC1zaXplOiAxMjAlOworfQorCit0YWJsZS5s
aXN0IHRkIHsKKyAgcGFkZGluZzogMCA0IDAgNDsKKyAgYm9yZGVyOiAwIDIgMCAyOworICBib3Jk
ZXItcmlnaHQ6IDFweCBzb2xpZCAjNDA0MDcwOworICBjb2xvcjogIzQwNDA3MDsKKyAgYmFja2dy
b3VuZC1jb2xvcjogd2hpdGU7CisgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgIGVtcHR5LWNlbGxz
OiBzaG93OworfQorCit0YWJsZS5saXN0IHRyLm5vcm1hbCB0ZCB7CisgIGJhY2tncm91bmQtY29s
b3I6IHdoaXRlOworICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCit0YWJsZS5saXN0IHRyLmFs
dCB0ZCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7CisgIHdoaXRlLXNwYWNlOiBub3dy
YXA7Cit9CisKK3RhYmxlLmxpc3QgdGQ6Zmlyc3QtY2hpbGQgeworICBib3JkZXItbGVmdDogMXB4
IHNvbGlkICM0MDQwNzA7CisgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MDQwNzA7Cit9CisK
K3RhYmxlLmxpc3QgdGg6Zmlyc3QtY2hpbGQgeworICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0
MDQwNzA7CisgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MDQwNzA7Cit9CisKK3RhYmxlLmxp
c3QgdHIubmF2aWdhdGlvbiB0aCB7CisgIHRleHQtYWxpZ246IHJpZ2h0OworfQordGFibGUubGlz
dCB0ci5uYXZpZ2F0aW9uIHRoOmZpcnN0LWNoaWxkIHsKKyAgYm9yZGVyLXJpZ2h0OiBub25lOwor
ICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCisKKy8qIHN0eWxlIGZvciBtZXNzYWdlIGRpc3BsYXlz
ICovCit0YWJsZS5tZXNzYWdlcyB7CisgIGJvcmRlci1zcGFjaW5nOiAwcHg7CisgIGJvcmRlci1j
b2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRoOiAxMDAlOworfQorCit0YWJsZS5tZXNzYWdlcyB0
aC5oZWFkZXJ7CisgIHBhZGRpbmctdG9wOiAxMHB4OworICBib3JkZXItYm90dG9tOiAxcHggc29s
aWQgZ3JheTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRl
OworICBjb2xvcjogIzcwNzA0MDsKK30KKwordGFibGUubWVzc2FnZXMgdGggeworICBmb250LXdl
aWdodDogYm9sZDsKKyAgY29sb3I6IGJsYWNrOworICB0ZXh0LWFsaWduOiBsZWZ0OworICBib3Jk
ZXItYm90dG9tOiAxcHggc29saWQgI2FmYWZhZjsKK30KKwordGFibGUubWVzc2FnZXMgdGQgewor
ICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmOwor
ICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FmYWZhZjsKKyAgY29sb3I6IGJsYWNrOworICBl
bXB0eS1jZWxsczogc2hvdzsKKyAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2FmYWZhZjsKKyAg
dmVydGljYWwtYWxpZ246IHRvcDsKKyAgcGFkZGluZzogMiA1IDIgNTsKK30KKwordGFibGUubWVz
c2FnZXMgdGQ6Zmlyc3QtY2hpbGQgeworICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNhZmFmYWY7
CisgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNhZmFmYWY7Cit9CisKKy8qIHN0eWxlIGZvciBm
aWxlIGRpc3BsYXlzICovCit0YWJsZS5maWxlcyB7CisgIGJvcmRlci1zcGFjaW5nOiAwcHg7Cisg
IGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRoOiAxMDAlOworfQorCit0YWJsZS5m
aWxlcyB0aC5oZWFkZXJ7CisgIHBhZGRpbmctdG9wOiAxMHB4OworICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgZ3JheTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGJhY2tncm91bmQtY29sb3I6
IHdoaXRlOworICBjb2xvcjogIzcwNzA0MDsKK30KKwordGFibGUuZmlsZXMgdGggeworICBib3Jk
ZXItYm90dG9tOiAxcHggc29saWQgI2FmYWZhZjsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIHRl
eHQtYWxpZ246IGxlZnQ7Cit9CisKK3RhYmxlLmZpbGVzIHRkIHsKKyAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKKyAgZW1wdHktY2VsbHM6IHNob3c7Cit9CisKKy8qIHN0eWxlIGZvciBoaXN0b3J5
IGRpc3BsYXlzICovCit0YWJsZS5oaXN0b3J5IHsKKyAgYm9yZGVyLXNwYWNpbmc6IDBweDsKKyAg
Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKyAgd2lkdGg6IDEwMCU7Cit9CisKK3RhYmxlLmhp
c3RvcnkgdGguaGVhZGVyeworICBwYWRkaW5nLXRvcDogMTBweDsKKyAgYm9yZGVyLWJvdHRvbTog
MXB4IHNvbGlkIGdyYXk7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBiYWNrZ3JvdW5kLWNvbG9y
OiB3aGl0ZTsKKyAgY29sb3I6ICM3MDcwNDA7CisgIGZvbnQtc2l6ZTogMTAwJTsKK30KKwordGFi
bGUuaGlzdG9yeSB0aCB7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWZhZmFmOworICBm
b250LXdlaWdodDogYm9sZDsKKyAgdGV4dC1hbGlnbjogbGVmdDsKKyAgZm9udC1zaXplOiA5MCU7
Cit9CisKK3RhYmxlLmhpc3RvcnkgdGQgeworICBmb250LXNpemU6IDkwJTsKKyAgdmVydGljYWwt
YWxpZ246IHRvcDsKKyAgZW1wdHktY2VsbHM6IHNob3c7Cit9CisKKworLyogc3R5bGUgZm9yIGNs
YXNzIGxpc3QgKi8KK3RhYmxlLmNsYXNzbGlzdCB7CisgIGJvcmRlci1zcGFjaW5nOiAwcHg7Cisg
IGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRoOiAxMDAlOworfQorCit0YWJsZS5j
bGFzc2xpc3QgdGguaGVhZGVyeworICBwYWRkaW5nLXRvcDogMTBweDsKKyAgYm9yZGVyLWJvdHRv
bTogMXB4IHNvbGlkIGdyYXk7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBiYWNrZ3JvdW5kLWNv
bG9yOiB3aGl0ZTsKKyAgY29sb3I6ICM3MDcwNDA7Cit9CisKK3RhYmxlLmNsYXNzbGlzdCB0aCB7
CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCisKKy8qIHN0
eWxlIGZvciBjbGFzcyBoZWxwIGRpc3BsYXkgKi8KK3RhYmxlLmNsYXNzaGVscCB7CisgIGJvcmRl
ci1zcGFjaW5nOiAwcHg7CisgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRoOiAx
MDAlOworfQorCit0YWJsZS5jbGFzc2hlbHAgdGggeworICBmb250LXdlaWdodDogYm9sZDsKKyAg
dGV4dC1hbGlnbjogbGVmdDsKKyAgY29sb3I6ICM3MDcwNDA7Cit9CisKK3RhYmxlLmNsYXNzaGVs
cCB0ZCB7CisgIHBhZGRpbmc6IDIgMiAyIDI7CisgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICB0ZXh0LWFsaWduOiBsZWZ0OworICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICBlbXB0eS1jZWxs
czogc2hvdzsKK30KKworCisvKiBzdHlsZSBmb3IgIm90aGVyIiBkaXNwbGF5cyAqLwordGFibGUu
b3RoZXJpbmZvIHsKKyAgYm9yZGVyLXNwYWNpbmc6IDBweDsKKyAgYm9yZGVyLWNvbGxhcHNlOiBz
ZXBhcmF0ZTsKKyAgd2lkdGg6IDEwMCU7Cit9CisKK3RhYmxlLm90aGVyaW5mbyB0aC5oZWFkZXJ7
CisgIHBhZGRpbmctdG9wOiAxMHB4OworICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JheTsK
KyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICBjb2xv
cjogIzcwNzA0MDsKK30KKwordGFibGUub3RoZXJpbmZvIHRoIHsKKyAgYm9yZGVyLWJvdHRvbTog
MXB4IHNvbGlkICNhZmFmYWY7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICB0ZXh0LWFsaWduOiBs
ZWZ0OworfQorCitpbnB1dCB7CisgICAgYm9yZGVyOiAxcHggc29saWQgIzhjYWNiYjsKKyAgICBj
b2xvcjogQmxhY2s7CisgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgICAgdmVydGljYWwt
YWxpZ246IG1pZGRsZTsKKyAgICBtYXJnaW4tYm90dG9tOiAxcHg7IC8qIElFIGJ1ZyBmaXggKi8K
KyAgICBwYWRkaW5nOiAwLjFlbTsKK30KKworc2VsZWN0IHsKKyAgICBib3JkZXI6IDFweCBzb2xp
ZCAjOGNhY2JiOworICAgIGNvbG9yOiBCbGFjazsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0
ZTsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgIG1hcmdpbi1ib3R0b206IDFweDsg
LyogSUUgYnVnIGZpeCAqLworICAgIHBhZGRpbmc6IDAuMWVtOworfQorCisKK2Eubm9uZXhpc3Rl
bnQgeworICAgIGNvbG9yOiAjRkYyMjIyOworfQorYS5ub25leGlzdGVudDp2aXNpdGVkIHsKKyAg
ICBjb2xvcjogI0ZGMjIyMjsKK30KK2EuZXh0ZXJuYWwgeworICAgIGNvbG9yOiAjQUE2NjAwOwor
fQorCisvKgorZGwsdWwsb2wgeworICAgIG1hcmdpbi10b3A6IDFwdDsKK30KK3R0LHByZSB7Cisg
ICAgZm9udC1mYW1pbHk6IEx1Y2lkYSBDb25zb2xlLENvdXJpZXIgTmV3LENvdXJpZXIsbW9ub3R5
cGU7CisgICAgZm9udC1zaXplOiAxMnB0OworfQorcHJlLmNvZGUgeworICAgIG1hcmdpbi10b3A6
IDhwdDsKKyAgICBtYXJnaW4tYm90dG9tOiA4cHQ7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZG
RkZFRTsKKyAgICB3aGl0ZS1zcGFjZTpwcmU7CisgICAgYm9yZGVyLXN0eWxlOnNvbGlkOworICAg
IGJvcmRlci13aWR0aDoxcHQ7CisgICAgYm9yZGVyLWNvbG9yOiM5OTk5OTk7CisgICAgY29sb3I6
IzExMTExMTsKKyAgICBwYWRkaW5nOjVweDsKKyAgICB3aWR0aDoxMDAlOworfQorKi8KK2Rpdi5k
aWZmb2xkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjgwOworICAgIGJvcmRlci1zdHls
ZTpub25lOworICAgIGJvcmRlci13aWR0aDp0aGluOworICAgIHdpZHRoOjEwMCU7Cit9CitkaXYu
ZGlmZm5ldyB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogIzgwRkY4MDsKKyAgICBib3JkZXItc3R5
bGU6bm9uZTsKKyAgICBib3JkZXItd2lkdGg6dGhpbjsKKyAgICB3aWR0aDoxMDAlOworfQorZGl2
Lm1lc3NhZ2UgeworICAgIG1hcmdpbi10b3A6IDZwdDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
RThGRkU4OworICAgIGJvcmRlci1zdHlsZTpzb2xpZDsKKyAgICBib3JkZXItd2lkdGg6MXB0Owor
ICAgIGJvcmRlci1jb2xvcjojOTk5OTk5OworICAgIGNvbG9yOiM0NDAwMDA7CisgICAgcGFkZGlu
Zzo1cHg7CisgICAgd2lkdGg6MTAwJTsKK30KK3N0cm9uZy5oaWdobGlnaHQgeworICAgIGJhY2tn
cm91bmQtY29sb3I6ICNGRkJCQkI7CisvKiBhcyB1c3VhbCwgTmV0U2NhcGUgZnVja3MgdXAgd2l0
aCBpbm5vY2VudCBDU1MKKyAgICBib3JkZXItY29sb3I6ICNGRkFBQUE7CisgICAgYm9yZGVyLXN0
eWxlOiBzb2xpZDsKKyAgICBib3JkZXItd2lkdGg6IDFwdDsKKyovCit9CisKK3RhYmxlLm5hdmli
YXIgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNDOEM4Qzg7CisgICAgYm9yZGVyLXNwYWNpbmc6
IDNweDsKK30KK3RkLm5hdmliYXIgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNFOEU4RTg7Cisg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICBwYWRk
aW5nOiAwcHg7Cit9CisKK2EjdmVyc2lvbmluZm8geworICAgIGNvbG9yOiBibHVlOworfQorCitk
aXYjcGFnZW5hbWUgeworICAgIGZvbnQtc2l6ZTogMTQwJTsKKyAgICBjb2xvcjogYmx1ZTsKKyAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogd2hpdGU7CisgICAgcGFkZGluZzogMCA7Cit9CisKK2Eud2lraWFjdGlvbiwg
aW5wdXQud2lraWFjdGlvbiB7CisgICAgY29sb3I6IGJsYWNrOyAKKyAgICB0ZXh0LWRlY29yYXRp
b246IE5vbmU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGNvbG9yOiBibGFjazsKKyAg
ICAvKmJvcmRlcjogMXB4IHNvbGlkICMzYmE2ZWM7ICovCisgICAgbWFyZ2luOiA0cHg7CisgICAg
cGFkZGluZzogNTsKKyAgICBwYWRkaW5nLWJvdHRvbTogMDsKKyAgICB3aGl0ZS1zcGFjZTogbm93
cmFwOworfQorCithLndpa2lhY3Rpb25baHJlZl06aG92ZXIgeyAKKwljb2xvcjogYmxhY2s7IAor
CXRleHQtZGVjb3JhdGlvbjogbm9uZTsgCisJLypiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGRkOyAq
LworfQorCisKK2Rpdi5sZWdlbmRpdGVtIHsKKyAgICBwYWRkaW5nLXRvcDogMC41ZW07CisgICAg
cGFkZGluZy1sZWZ0OiAwLjNlbTsKK30KKworc3Bhbi53aWtpdG9rZW4geworICAgYmFja2dyb3Vu
ZC1jb2xvcjogI2VlZWVlZTsKK30KKyAgICAKKworZGl2I2NvbnRlbnRzcGFjZSBoMTpmaXJzdC1j
aGlsZCwgZGl2LmhlYWRpbmc6Zmlyc3QtY2hpbGQgeyAKKyAgcGFkZGluZy10b3A6IDA7CisgIG1h
cmdpbi10b3A6IDA7Cit9CitkaXYjY29udGVudHNwYWNlIGgyOmZpcnN0LWNoaWxkIHsgCisgIHBh
ZGRpbmctdG9wOiAwOworICBtYXJnaW4tdG9wOiAwOworfQorCisvKiBoZWFkaW5nIGFuZCBwYXJh
Z3JhcGggdGV4dCAqLworCitkaXYuaGVhZGluZywgaDEgeworICAgIGZvbnQtZmFtaWx5OiBWZXJk
YW5hLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOworICAgIGJhY2tncm91bmQtY29sb3I6
ICM1OGIzZWY7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgCisgICAgLypjb2xvcjog
IzQ4OTNjZjsqLworICAgIGNvbG9yOiBibGFjazsKKyAgICBwYWRkaW5nLXRvcDogMS4wZW07Cisg
ICAgcGFkZGluZy1ib3R0b206MC4yZW07CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBtYXJn
aW4tdG9wOiAwZW07IAorICAgIC8qbWFyZ2luLWJvdHRvbTo4cHQ7Ki8KKyAgICBmb250LXdlaWdo
dDogYm9sZDsKKyAgICBmb250LXNpemU6IDExNSU7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNv
bGlkICM4Q0FDQkI7Cit9CisKK2gyIHsKKyAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICM4
Q0FDQkI7Cit9CisKKworaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CisgICAgY29sb3I6IEJsYWNr
OworICAgIGNsZWFyOiBsZWZ0OworICAgIGZvbnQ6IDEwMCUgVmVyZGFuYSwgSGVsdmV0aWNhLCBB
cmlhbCwgc2Fucy1zZXJpZjsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZy1sZWZ0OiAwZW07
CisgICAgcGFkZGluZy10b3A6IDFlbTsKKyAgICBwYWRkaW5nLWJvdHRvbTogMC4yZW07CisgICAg
Lypib3JkZXItYm90dG9tOiAxcHggc29saWQgIzhDQUNCQjsqLworfQorLyogaDEsaDIgeyBwYWRk
aW5nLXRvcDogMDsgfSovCisKKworaDEgeyBmb250LXNpemU6IDE0NSU7IH0KK2gyIHsgZm9udC1z
aXplOiAxMTUlOyB9CitoMyB7IGZvbnQtc2l6ZTogMTA1JTsgfQoraDQgeyBmb250LXNpemU6IDEw
MCU7IH0KK2g1IHsgZm9udC1zaXplOiAxMDAlOyB9CisKK2gxIGEgeyB0ZXh0LWRlY29yYXRpb246
IE5vbmU7fQorCitkaXYuZXhjZXB0aW9uIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2JiMjIyMjsK
KyAgcGFkZGluZzogNSA1IDUgNTsKKyAgY29sb3I6IHdoaXRlOworICBmb250LXdlaWdodDogYm9s
ZDsKK30KK3ByZS5leGNlcHRpb24geworICAgIGZvbnQtc2l6ZTogMTEwJTsKKyAgICBwYWRkaW5n
OiAxZW07CisgICAgYm9yZGVyOiAxcHggc29saWQgIzhjYWNiYjsKKyAgICBjb2xvcjogQmxhY2s7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZTdlYzsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
Y2NjY2NjOworfQorCisvKiBkZWZpbmVzIGZvciBuYXZnaWF0aW9uIGJhciAoZG9jdW1lbnRhdGlv
bikgKi8KKworCitkaXYuZGlyZW50cnkgeworICAgIHBhZGRpbmctdG9wOiAwLjNlbTsKKyAgICBw
YWRkaW5nLWJvdHRvbTogMC4zZW07CisgICAgbWFyZ2luLXJpZ2h0OiAxZW07CisgICAgZm9udC13
ZWlnaHQ6IGJvbGQ7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZTdlYzsKKyAgICBmb250LXNp
emU6IDExMCU7Cit9CisKK2Rpdi5maWxlZW50cnkgeworICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5h
LCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOworICAgIHBhZGRpbmctYm90dG9tOiAwLjNl
bTsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIGxpbmUtaGVpZ2h0OiAxNTAlOworfQor
CithLmZpbGVlbnRyeSB7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworCitzcGFuLmxl
ZnQgeworICAgIHRleHQtYWxpZ246IGxlZnQ7Cit9CitzcGFuLnJpZ2h0IHsKKyAgICB0ZXh0LWFs
aWduOiByaWdodDsKK30KKworZGl2Lm5hdmJhciB7CisgIC8qbWFyZ2luOiAwOyovCisgIGZvbnQt
c2l6ZTogODAlIC8qc21hbGxlciovOworICBmb250LXdlaWdodDogYm9sZDsKKyAgdGV4dC1hbGln
bjogbGVmdDsKKyAgLyogcG9zaXRpb246IGZpeGVkOyAqLworICB0b3A6IDEwMHB0OworICBsZWZ0
OiAwcHQ7IC8qICBhdXRvOyAqLworICB3aWR0aDogMTIwcHQ7CisgIC8qIHJpZ2h0OiBhdXRvOwor
ICByaWdodDogMHB0OyAgMmVtOyAqLworfQorCisKK2Rpdi5oaXN0b3J5IGEgeworICAgIC8qIGZv
bnQtc2l6ZTogNzAlOyAqLworfQorCitkaXYud2lraWFjdGlvbnRpdGxlIHsgCisgIGZvbnQtd2Vp
Z2h0OiBib2xkOworfQorCisvKiAgUkVTVCAgZGVmaW5lcyAqLworCitkaXYuZG9jdW1lbnQgewor
ICAgIG1hcmdpbjogMDsKK30KKworaDEudGl0bGUgeworICAgIG1hcmdpbjogMDsKKyAgICBtYXJn
aW4tYm90dG9tOiAwLjVlbTsKK30KKwordGQudG9wbGlzdCB7CisgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKK30KKworaW1nI3B5aW1nIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgICBwYWRkaW5nLWJv
dHRvbTogMWVtOworfQorICAgIAorZGl2I25hdnNwYWNlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgZm9udC1zaXplOiAxMDAlOworICAgIHdpZHRoOiAxNTBweDsKKyAgICBvdmVyZmxv
dzogaGlkZGVuOyAvKiBzY3JvbGw7ICAqLworfQorCisKK2RpdiNlcnJvcmxpbmUgeworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDVweDsgCisgICAgZmxvYXQ6IHJpZ2h0OyAKK30K
KworZGl2I2NvbnRlbnRzcGFjZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAJLyogZm9u
dDogMTIwJSAiVGltZXMgTmV3IFJvbWFuIiwgc2VyaWY7Ki8KKyAgICBmb250OiAxMTAlIFZlcmRh
bmEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CisgICAgbGVmdDogMTcwcHg7CisgICAg
bWFyZ2luLXJpZ2h0OiA1cHg7Cit9CisKK2RpdiNtZW51YmFyIHsKKy8qICAgIHdpZHRoOiA0MDBw
eDsgKi8KKyAgICBmbG9hdDogbGVmdDsKK30KKworLyogZm9yIHRoZSBkb2N1bWVudGF0aW9uIHBh
Z2UgKi8KK2RpdiN0aXRsZXsKKyAgICAKKyAgZm9udC1zaXplOiAxMTAlOworICBjb2xvcjogYmxh
Y2s7CisgICAgCisgICAgCisgIC8qYmFja2dyb3VuZC1jb2xvcjogI2RlZTdlYzsgCisgICNwYWRk
aW5nOiA1cHQ7IAorICAjcGFkZGluZy1ib3R0b206IDFlbTsgCisgICNjb2xvcjogYmxhY2s7Cisg
IGJvcmRlci13aWR0aDogMXB0OworICBib3JkZXItc3R5bGU6IHNvbGlkOyovCisKK30KKworZGl2
I2RvY25hdmxpc3QgeworICAvKmJhY2tncm91bmQtY29sb3I6ICNkZWU3ZWM7ICovCisgIHBhZGRp
bmc6IDVwdDsgCisgIHBhZGRpbmctYm90dG9tOiAyZW07IAorICBjb2xvcjogYmxhY2s7CisgIGJv
cmRlci13aWR0aDogMXB0OworICAvKmJvcmRlci1zdHlsZTogc29saWQ7Ki8KK30KKworCisvKiB0
ZXh0IG1hcmt1cCAqLworCitkaXYubGlzdHRpdGxlIHsKKyAgICBjb2xvcjogQmxhY2s7CisgICAg
Y2xlYXI6IGxlZnQ7CisgICAgZm9udDogMTIwJSBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFyaWFsLCBz
YW5zLXNlcmlmOworICAgIG1hcmdpbjogMDsKKyAgICBwYWRkaW5nLWxlZnQ6IDBlbTsKKyAgICBw
YWRkaW5nLXRvcDogMGVtOworICAgIHBhZGRpbmctYm90dG9tOiAwLjJlbTsKKyAgICBtYXJnaW4t
cmlnaHQ6IDAuNWVtOworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOENBQ0JCOworfQor
CitkaXYuYWN0aW9uYm94IGgzIHsgCisgIHBhZGRpbmctdG9wOiAwOworICBwYWRkaW5nLXJpZ2h0
OiAwLjVlbTsKKyAgcGFkZGluZy1sZWZ0OiAwLjVlbTsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2Zh
YmYwMDsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsg
LyogOGNhY2JiOyAqLworfQorCitkaXYuYWN0aW9uYm94IGEgeyAKKyAgZGlzcGxheTogYmxvY2s7
CisgIHBhZGRpbmctYm90dG9tOiAwLjVlbTsKKyAgcGFkZGluZy10b3A6IDAuNWVtOworICBtYXJn
aW4tbGVmdDogMC41ZW07Cit9CisKK2Rpdi5hY3Rpb25ib3ggYS5oaXN0b3J5IHsgCisgIGRpc3Bs
YXk6IGJsb2NrOworICBwYWRkaW5nLWJvdHRvbTogMC41ZW07CisgIHBhZGRpbmctdG9wOiAwLjVl
bTsKKyAgbWFyZ2luLWxlZnQ6IDAuNWVtOworICBmb250LXNpemU6IDkwJTsgCit9CisKK2Rpdi5h
Y3Rpb25ib3ggeyAKKyAgbWFyZ2luLWJvdHRvbTogMmVtOworICBwYWRkaW5nLWJvdHRvbTogMWVt
OworICBvdmVyZmxvdzogaGlkZGVuOyAvKiBzY3JvbGw7ICAqLworfQorCisvKiB0YWtlbiBmcm9t
IGRvY3V0aWxzIChvaCBkZWFyLCBhIGJpdCBzZW5zZWxlc3MpICovCitvbC5zaW1wbGUsIHVsLnNp
bXBsZSB7CisgIG1hcmdpbi1ib3R0b206IDFlbSB9CisKK29sLmFyYWJpYyB7CisgIGxpc3Qtc3R5
bGU6IGRlY2ltYWwgfQorCitvbC5sb3dlcmFscGhhIHsKKyAgbGlzdC1zdHlsZTogbG93ZXItYWxw
aGEgfQorCitvbC51cHBlcmFscGhhIHsKKyAgbGlzdC1zdHlsZTogdXBwZXItYWxwaGEgfQorCitv
bC5sb3dlcnJvbWFuIHsKKyAgbGlzdC1zdHlsZTogbG93ZXItcm9tYW4gfQorCitvbC51cHBlcnJv
bWFuIHsKKyAgbGlzdC1zdHlsZTogdXBwZXItcm9tYW4gfQorCisKKy8qCis6QXV0aG9yOiBEYXZp
ZCBHb29kZ2VyCis6Q29udGFjdDogZ29vZGdlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKzpkYXRl
OiAkRGF0ZTogMjAwMy8wMS8yMiAyMjoyNjo0OCAkCis6dmVyc2lvbjogJFJldmlzaW9uOiAxLjI5
ICQKKzpjb3B5cmlnaHQ6IFRoaXMgc3R5bGVzaGVldCBoYXMgYmVlbiBwbGFjZWQgaW4gdGhlIHB1
YmxpYyBkb21haW4uCisKK0RlZmF1bHQgY2FzY2FkaW5nIHN0eWxlIHNoZWV0IGZvciB0aGUgSFRN
TCBvdXRwdXQgb2YgRG9jdXRpbHMuCisqLworLyoKKy5maXJzdCB7CisgIG1hcmdpbi10b3A6IDAg
fQorCisubGFzdCB7CisgIG1hcmdpbi1ib3R0b206IDAgfQorCithLnRvYy1iYWNrcmVmIHsKKyAg
dGV4dC1kZWNvcmF0aW9uOiBub25lIDsKKyAgY29sb3I6IGJsYWNrIH0KKworZGQgeworICBtYXJn
aW4tYm90dG9tOiAwLjVlbSB9CisKK2Rpdi5hYnN0cmFjdCB7CisgIG1hcmdpbjogMmVtIDVlbSB9
CisKK2Rpdi5hYnN0cmFjdCBwLnRvcGljLXRpdGxlIHsKKyAgZm9udC13ZWlnaHQ6IGJvbGQgOwor
ICB0ZXh0LWFsaWduOiBjZW50ZXIgfQorCitkaXYuYXR0ZW50aW9uLCBkaXYuY2F1dGlvbiwgZGl2
LmRhbmdlciwgZGl2LmVycm9yLCBkaXYuaGludCwKK2Rpdi5pbXBvcnRhbnQsIGRpdi5ub3RlLCBk
aXYudGlwLCBkaXYud2FybmluZyB7CisgIG1hcmdpbjogMmVtIDsKKyAgYm9yZGVyOiBtZWRpdW0g
b3V0c2V0IDsKKyAgcGFkZGluZzogMWVtIH0KKworZGl2LmF0dGVudGlvbiBwLmFkbW9uaXRpb24t
dGl0bGUsIGRpdi5jYXV0aW9uIHAuYWRtb25pdGlvbi10aXRsZSwKK2Rpdi5kYW5nZXIgcC5hZG1v
bml0aW9uLXRpdGxlLCBkaXYuZXJyb3IgcC5hZG1vbml0aW9uLXRpdGxlLAorZGl2Lndhcm5pbmcg
cC5hZG1vbml0aW9uLXRpdGxlIHsKKyAgY29sb3I6IHJlZCA7CisgIGZvbnQtd2VpZ2h0OiBib2xk
IDsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgfQorCitkaXYuaGludCBwLmFkbW9uaXRpb24t
dGl0bGUsIGRpdi5pbXBvcnRhbnQgcC5hZG1vbml0aW9uLXRpdGxlLAorZGl2Lm5vdGUgcC5hZG1v
bml0aW9uLXRpdGxlLCBkaXYudGlwIHAuYWRtb25pdGlvbi10aXRsZSB7CisgIGZvbnQtd2VpZ2h0
OiBib2xkIDsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgfQorCitkaXYuZGVkaWNhdGlvbiB7
CisgIG1hcmdpbjogMmVtIDVlbSA7CisgIHRleHQtYWxpZ246IGNlbnRlciA7CisgIGZvbnQtc3R5
bGU6IGl0YWxpYyB9CisKK2Rpdi5kZWRpY2F0aW9uIHAudG9waWMtdGl0bGUgeworICBmb250LXdl
aWdodDogYm9sZCA7CisgIGZvbnQtc3R5bGU6IG5vcm1hbCB9CisKK2Rpdi5maWd1cmUgeworICBt
YXJnaW4tbGVmdDogMmVtIH0KKworZGl2LmZvb3RlciwgZGl2LmhlYWRlciB7CisgIGZvbnQtc2l6
ZTogc21hbGxlciB9CisKK2Rpdi5zeXN0ZW0tbWVzc2FnZXMgeworICBtYXJnaW46IDVlbSB9CisK
K2Rpdi5zeXN0ZW0tbWVzc2FnZXMgaDEgeworICBjb2xvcjogcmVkIH0KKworZGl2LnN5c3RlbS1t
ZXNzYWdlIHsKKyAgYm9yZGVyOiBtZWRpdW0gb3V0c2V0IDsKKyAgcGFkZGluZzogMWVtIH0KKwor
ZGl2LnN5c3RlbS1tZXNzYWdlIHAuc3lzdGVtLW1lc3NhZ2UtdGl0bGUgeworICBjb2xvcjogcmVk
IDsKKyAgZm9udC13ZWlnaHQ6IGJvbGQgfQorCitkaXYudG9waWMgeworICBtYXJnaW46IDJlbSB9
CisKK2gxLnRpdGxlIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyIH0KKworaDIuc3VidGl0bGUgewor
ICB0ZXh0LWFsaWduOiBjZW50ZXIgfQorCitociB7CisgIHdpZHRoOiA3NSUgfQorCitwLmNhcHRp
b24geworICBmb250LXN0eWxlOiBpdGFsaWMgfQorCitwLmNyZWRpdHMgeworICBmb250LXN0eWxl
OiBpdGFsaWMgOworICBmb250LXNpemU6IHNtYWxsZXIgfQorCitwLmxhYmVsIHsKKyAgd2hpdGUt
c3BhY2U6IG5vd3JhcCB9CisKK3AudG9waWMtdGl0bGUgeworICBmb250LXdlaWdodDogYm9sZCB9
CisKK3ByZS5hZGRyZXNzIHsKKyAgbWFyZ2luLWJvdHRvbTogMCA7CisgIG1hcmdpbi10b3A6IDAg
OworICBmb250LWZhbWlseTogc2VyaWYgOworICBmb250LXNpemU6IDEwMCUgfQorCitwcmUubGlu
ZS1ibG9jayB7CisgIGZvbnQtZmFtaWx5OiBzZXJpZiA7CisgIGZvbnQtc2l6ZTogMTAwJSB9CisK
K3ByZS5saXRlcmFsLWJsb2NrLCBwcmUuZG9jdGVzdC1ibG9jayB7CisgIG1hcmdpbi1sZWZ0OiAy
ZW0gOworICBtYXJnaW4tcmlnaHQ6IDJlbSA7CisgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWUg
fQorCitzcGFuLmNsYXNzaWZpZXIgeworICBmb250LWZhbWlseTogc2Fucy1zZXJpZiA7CisgIGZv
bnQtc3R5bGU6IG9ibGlxdWUgfQorCitzcGFuLmNsYXNzaWZpZXItZGVsaW1pdGVyIHsKKyAgZm9u
dC1mYW1pbHk6IHNhbnMtc2VyaWYgOworICBmb250LXdlaWdodDogYm9sZCB9CisKK3NwYW4uaW50
ZXJwcmV0ZWQgeworICBmb250LWZhbWlseTogc2Fucy1zZXJpZiB9CisKK3NwYW4ub3B0aW9uIHsK
KyAgd2hpdGUtc3BhY2U6IG5vd3JhcCB9CisKK3NwYW4ub3B0aW9uLWFyZ3VtZW50IHsKKyAgZm9u
dC1zdHlsZTogaXRhbGljIH0KKworc3Bhbi5wcmUgeworICB3aGl0ZS1zcGFjZTogcHJlIH0KKwor
c3Bhbi5wcm9ibGVtYXRpYyB7CisgIGNvbG9yOiByZWQgfQorCit0YWJsZSB7CisgIG1hcmdpbi10
b3A6IDAuNWVtIDsKKyAgbWFyZ2luLWJvdHRvbTogMC41ZW0gfQorCit0YWJsZS5jaXRhdGlvbiB7
CisgIGJvcmRlci1sZWZ0OiBzb2xpZCB0aGluIGdyYXkgOworICBwYWRkaW5nLWxlZnQ6IDAuNWV4
IH0KKwordGFibGUuZG9jaW5mbyB7CisgIG1hcmdpbjogMmVtIDRlbSB9CisKK3RhYmxlLmZvb3Ru
b3RlIHsKKyAgYm9yZGVyLWxlZnQ6IHNvbGlkIHRoaW4gYmxhY2sgOworICBwYWRkaW5nLWxlZnQ6
IDAuNWV4IH0KKwordGQsIHRoIHsKKyAgcGFkZGluZy1sZWZ0OiAwLjVlbSA7CisgIHBhZGRpbmct
cmlnaHQ6IDAuNWVtIDsKKyAgdmVydGljYWwtYWxpZ246IHRvcCB9CisKK3RoLmRvY2luZm8tbmFt
ZSwgdGguZmllbGQtbmFtZSB7CisgIGZvbnQtd2VpZ2h0OiBib2xkIDsKKyAgdGV4dC1hbGlnbjog
bGVmdCA7CisgIHdoaXRlLXNwYWNlOiBub3dyYXAgfQorCitoMSB0dCwgaDIgdHQsIGgzIHR0LCBo
NCB0dCwgaDUgdHQsIGg2IHR0IHsKKyAgZm9udC1zaXplOiAxMDAlIH0KKwordHQgeworICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZWVlZWVlIH0KKwordWwuYXV0by10b2MgeworICBsaXN0LXN0eWxlLXR5
cGU6IG5vbmUgfQorKi8KKworZGl2LnNlY3Rpb24geworICBtYXJnaW4tdG9wOiAxLjBlbSA7Cit9
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODM5MjUyZGNlNTkwY2NhOTJiMWU3ZjRmYzhk
NWEzYzY3ZjAzZTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwzMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9jaGFuZ2Vsb2cudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY29kZS50eHQKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9jb25mLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZG93bmxvYWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ZhcS50
eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9pbmRleC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbnN0YWxsLnR4dAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvZG9jL2lvLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xpbmtzLmluYworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xv
Zy50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9taXNjLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3BhdGgudHh0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2Mvc3R5bGUuY3NzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MveG1sLnR4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MveG1sLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3htbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAyMmRl
NmU5MTI2ZjgxNjA5YzkyZWNhOTdjNThmMDRkNjI3MTFlNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvZG9jL3htbC50eHQKQEAgLTAsMCArMSwxNjQgQEAKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK3B5LnhtbDogc2ltcGxlIHB5dGhvbmlj
IHhtbC9odG1sIGZpbGUgZ2VuZXJhdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitNb3RpdmF0aW9uCis9PT09PT09PT09CisKK1RoZXJl
IGFyZSBhIHBsZXRob3JhIG9mIGZyYW1ld29ya3MgYW5kIGxpYnJhcmllcyB0byBnZW5lcmF0ZQor
eG1sIGFuZCBodG1sIHRyZWVzLiAgSG93ZXZlciwgbWFueSBvZiB0aGVtIGFyZSBsYXJnZSwgaGF2
ZSBhCitzdGVlcCBsZWFybmluZyBjdXJ2ZSBhbmQgYXJlIG9mdGVuIGhhcmQgdG8gZGVidWcuICBO
b3QgdG8KK3NwZWFrIG9mIHRoZSBmYWN0IHRoYXQgdGhleSBhcmUgZnJhbWV3b3JrcyB0byBiZWdp
biB3aXRoLgorCisuLiBfeGlzdDogaHR0cDovL3d3dy5saXZpbmdsb2dpYy5kZS9QeXRob24veGlz
dC9pbmRleC5odG1sCisKK2EgcHl0aG9uaWMgb2JqZWN0IG1vZGVsICwgcGxlYXNlCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHkgbGliIG9mZmVycyBhIHB5dGhvbmlj
IHdheSB0byBnZW5lcmF0ZSB4bWwvaHRtbCwgYmFzZWQgb24KK2lkZWFzIGZyb20geGlzdF8gd2hp
Y2ggYHVzZXMgcHl0aG9uIGNsYXNzIG9iamVjdHNgXyB0byBidWlsZAoreG1sIHRyZWVzLiAgSG93
ZXZlciwgeGlzdF8ncyBpbXBsZW1lbnRhdGlvbiBpcyBzb21ld2hhdCBoZWF2eQorYmVjYXVzZSBp
dCBoYXMgYWRkaXRpb25hbCBnb2FscyBsaWtlIHRyYW5zZm9ybWF0aW9ucyBhbmQKK3N1cHBvcnRp
bmcgbWFueSBuYW1lc3BhY2VzLiAgQnV0IGl0cyBiYXNpYyBpZGVhIGlzIHZlcnkgZWFzeS4KKwor
Li4gX2B1c2VzIHB5dGhvbiBjbGFzcyBvYmplY3RzYDogaHR0cDovL3d3dy5saXZpbmdsb2dpYy5k
ZS9QeXRob24veGlzdC9Ib3d0by5odG1sCisKK2dlbmVyYXRpbmcgYXJiaXRyYXJ5IHhtbCBzdHJ1
Y3R1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaXRoIGBgcHku
eG1sLk5hbWVzcGFjZWBgIHlvdSBoYXZlIHRoZSBiYXNpcwordG8gZ2VuZXJhdGUgY3VzdG9tIHht
bC1mcmFnbWVudHMgb24gdGhlIGZseTo6CisKKyAgICBjbGFzcyBucyhweS54bWwuTmFtZXNwYWNl
KToKKyAgICAgICAgIm15IGN1c3RvbSB4bWwgbmFtZXNwYWNlIgorICAgIGRvYyA9IG5zLmJvb2tz
KAorICAgICAgICBucy5ib29rKAorICAgICAgICAgICAgbnMuYXV0aG9yKCJNYXkgRGF5IiksCisg
ICAgICAgICAgICBucy50aXRsZSgicHl0aG9uIGZvciBqYXZhIHByb2dyYW1tZXJzIiksKSwKKyAg
ICAgICAgbnMuYm9vaygKKyAgICAgICAgICAgIG5zLmF1dGhvcigid2h5IiksCisgICAgICAgICAg
ICBucy50aXRsZSgiSmF2YSBmb3IgUHl0aG9uIHByb2dyYW1tZXJzIiksKSwKKyAgICAgICAgcHVi
bGlzaGVyPSJOLk4iLAorICAgICAgICApCisgICAgcHJpbnQgZG9jLnVuaWNvZGUoaW5kZW50PTIp
LmVuY29kZSgndXRmOCcpCisKK3dpbGwgZ2l2ZSB5b3UgdGhpcyByZXByZXNlbnRhdGlvbjo6CisK
KyAgICA8Ym9va3MgcHVibGlzaGVyPSJOLk4iPgorICAgICAgPGJvb2s+CisgICAgICAgIDxhdXRo
b3I+TWF5IERheTwvYXV0aG9yPgorICAgICAgICA8dGl0bGU+cHl0aG9uIGZvciBqYXZhIHByb2dy
YW1tZXJzPC90aXRsZT48L2Jvb2s+CisgICAgICA8Ym9vaz4KKyAgICAgICAgPGF1dGhvcj53aHk8
L2F1dGhvcj4KKyAgICAgICAgPHRpdGxlPkphdmEgZm9yIFB5dGhvbiBwcm9ncmFtbWVyczwvdGl0
bGU+PC9ib29rPjwvYm9va3M+CisKK0luIGEgc2VudGVuY2U6IHBvc2l0aW9uYWwgYXJndW1lbnRz
IGFyZSBjaGlsZC10YWdzIGFuZAora2V5d29yZC1hcmd1bWVudHMgYXJlIGF0dHJpYnV0ZXMuCisK
K09uIGEgc2lkZSBub3RlLCB5b3UnbGwgc2VlIHRoYXQgdGhlIHVuaWNvZGUtc2VyaWFsaXplcgor
c3VwcG9ydHMgYSBuaWNlIGluZGVudGF0aW9uIHN0eWxlIHdoaWNoIGtlZXBzIHlvdXIgZ2VuZXJh
dGVkCitodG1sIHJlYWRhYmxlLCBiYXNpY2FsbHkgdGhyb3VnaCBlbXVsYXRpbmcgcHl0aG9uJ3Mg
d2hpdGUKK3NwYWNlIHNpZ25pZmljYW5jZSBieSBwdXR0aW5nIGNsb3NpbmctdGFncyByaWdodG1v
c3QgYW5kCithbG1vc3QgaW52aXNpYmxlIGF0IGZpcnN0IGdsYW5jZSA6LSkKKworYmFzaWMgZXhh
bXBsZSBmb3IgZ2VuZXJhdGluZyBodG1sCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworQ29uc2lkZXIgdGhpcyBleGFtcGxlOjoKKworICAgIGZyb20gcHkueG1sIGltcG9ydCBo
dG1sICAjIGh0bWwgbmFtZXNwYWNlCisKKyAgICBwYXJhcyA9ICJGaXJzdCBQYXJhIiwgIlNlY29u
ZCBwYXJhIgorCisgICAgZG9jID0gaHRtbC5odG1sKAorICAgICAgIGh0bWwuaGVhZCgKKyAgICAg
ICAgICAgIGh0bWwubWV0YShuYW1lPSJDb250ZW50LVR5cGUiLCB2YWx1ZT0idGV4dC9odG1sOyBj
aGFyc2V0PWxhdGluMSIpKSwKKyAgICAgICBodG1sLmJvZHkoCisgICAgICAgICAgICBbaHRtbC5w
KHApIGZvciBwIGluIHBhcmFzXSkpCisKKyAgICBwcmludCB1bmljb2RlKGRvYykuZW5jb2RlKCds
YXRpbjEnKQorCitBZ2FpbiwgdGFncyBhcmUgb2JqZWN0cyB3aGljaCBjb250YWluIHRhZ3MgYW5k
IGhhdmUgYXR0cmlidXRlcy4KK01vcmUgZXhhY3RseSwgVGFncyBpbmhlcml0IGZyb20gdGhlIGxp
c3QgdHlwZSBhbmQgdGh1cyBjYW4gYmUKK21hbmlwdWxhdGVkIGFzIGxpc3Qgb2JqZWN0cy4gIFRo
ZXkgYWRkaXRpb25hbGx5IHN1cHBvcnQgYSBkZWZhdWx0Cit3YXkgdG8gcmVwcmVzZW50IHRoZW1z
ZWx2ZXMgYXMgYSBzZXJpYWxpemVkIHVuaWNvZGUgb2JqZWN0LgorCitJZiB5b3UgaGFwcGVuIHRv
IGxvb2sgYXQgdGhlIHB5LnhtbCBpbXBsZW1lbnRhdGlvbiB5b3UnbGwKK25vdGUgdGhhdCB0aGUg
dGFnL25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiBjb25zdW1lcyBzb21lIDUwIGxpbmVzCit3aXRo
IGFub3RoZXIgNTAgbGluZXMgZm9yIHRoZSB1bmljb2RlIHNlcmlhbGl6YXRpb24gY29kZS4KKwor
Q1NTLXN0eWxpbmcgeW91ciBodG1sIFRhZ3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K09uZSBhc3BlY3Qgd2hlcmUgbWFueSBvZiB0aGUgaHVnZSBweXRob24geG1sL2h0bWwgZ2VuZXJh
dGlvbgorZnJhbWV3b3JrcyB1dHRlcmx5IGZhaWwgaXMgYSBjbGVhbiBhbmQgY29udmVuaWVudCBp
bnRlZ3JhdGlvbgorb2YgQ1NTIHN0eWxpbmcuICBPZnRlbiwgZGV2ZWxvcGVycyBhcmUgbGVmdCBh
bG9uZSB3aXRoIGtlZXBpbmcKK0NTUyBzdHlsZSBkZWZpbml0aW9ucyBpbiBzeW5jIHdpdGggc29t
ZSBzdHlsZSBmaWxlcworcmVwcmVzZW50ZWQgYXMgc3RyaW5ncyAob2Z0ZW4gaW4gYSBzZXBhcmF0
ZSAuY3NzIGZpbGUpLiAgTm90Citvbmx5IGlzIHRoaXMgaGFyZCB0byBkZWJ1ZyBidXQgdGhlIG1p
c3NpbmcgYWJzdHJhY3Rpb25zIG1ha2UKK2l0IGhhcmQgdG8gbW9kaWZ5IHRoZSBzdHlsaW5nIG9m
IHlvdXIgdGFncyBvciB0byBjaG9vc2UgY3VzdG9tCitzdHlsZSByZXByZXNlbnRhdGlvbnMgKGlu
bGluZSwgaHRtbC5oZWFkIG9yIGV4dGVybmFsKS4gIEFkZCB0aGUKK0Jyb3dlcnMgdXN1YWwgdG9s
ZXJhbmNlIG9mIG1lc3N5bmVzcyBhbmQgZXJyb3JzIGluIFN0eWxlCityZWZlcmVuY2VzIGFuZCB3
ZWxjb21lIHRvIGhlbGwsIGtub3duIGFzIHRoZSBkb21haW4gb2YKK2RldmVsb3Bpbmcgd2ViIGFw
cGxpY2F0aW9ucyA6LSkKKworQnkgY29udHJhc3QsIGNvbnNpZGVyIHRoaXMgQ1NTIHN0eWxpbmcg
ZXhhbXBsZTo6CisKKyAgICBjbGFzcyBteShodG1sKToKKyAgICAgICAgIm15IGluaXRpYWwgY3Vz
dG9tIHN0eWxlIgorICAgICAgICBjbGFzcyBib2R5KGh0bWwuYm9keSk6CisgICAgICAgICAgICBz
dHlsZSA9IGh0bWwuU3R5bGUoZm9udF9zaXplID0gIjEyMCUiKQorCisgICAgICAgIGNsYXNzIGgy
KGh0bWwuaDIpOgorICAgICAgICAgICAgc3R5bGUgPSBodG1sLlN0eWxlKGJhY2tncm91bmQgPSAi
Z3JleSIpCisKKyAgICAgICAgY2xhc3MgcChodG1sLnApOgorICAgICAgICAgICAgc3R5bGUgPSBo
dG1sLlN0eWxlKGZvbnRfd2VpZ2h0PSJib2xkIikKKworICAgIGRvYyA9IG15Lmh0bWwoCisgICAg
ICAgIG15LmhlYWQoKSwKKyAgICAgICAgbXkuYm9keSgKKyAgICAgICAgICAgIG15LmgyKCJoZWxs
byB3b3JsZCIpLAorICAgICAgICAgICAgbXkucCgiYm9sZCBhcyBib2xkIGNhbiIpCisgICAgICAg
ICkKKyAgICApCisKKyAgICBwcmludCBkb2MudW5pY29kZShpbmRlbnQ9MikKKworVGhpcyB3aWxs
IGdpdmUgeW91IGEgc21hbGwnbiBtZWFuIHNlbGYgY29udGFpbmVkCityZXByZXNlbmF0aW9uIGJ5
IGRlZmF1bHQ6OgorCisgICAgPGh0bWw+CisgICAgICA8aGVhZC8+CisgICAgICA8Ym9keSBzdHls
ZT0iZm9udC1zaXplOiAxMjAlIj4KKyAgICAgICAgPGgyIHN0eWxlPSJiYWNrZ3JvdW5kOiBncmV5
Ij5oZWxsbyB3b3JsZDwvaDI+CisgICAgICAgIDxwIHN0eWxlPSJmb250LXdlaWdodDogYm9sZCI+
Ym9sZCBhcyBib2xkIGNhbjwvcD48L2JvZHk+PC9odG1sPgorCitNb3N0IGltcG9ydGFudGx5LCBu
b3RlIHRoYXQgdGhlIGlubGluZS1zdHlsaW5nIGlzIGp1c3QgYW4KK2ltcGxlbWVudGF0aW9uIGRl
dGFpbCBvZiB0aGUgdW5pY29kZSBzZXJpYWxpemF0aW9uIGNvZGUuCitZb3UgY2FuIGVhc2lseSBt
b2RpZnkgdGhlIHNlcmlhbGl6YXRpb24gdG8gcHV0IHlvdXIgc3R5bGluZyBpbnRvIHRoZQorYGBo
dG1sLmhlYWRgYCBvciBpbiBhIHNlcGFyYXRlIGZpbGUgYW5kIGF1dG9nZW5lcmF0ZSBDU1MtY2xh
c3MKK25hbWVzIG9yIGlkcy4KKworSGV5LCB5b3UgY291bGQgZXZlbiB3cml0ZSB0ZXN0cyB0aGF0
IHlvdSBhcmUgdXNpbmcgY29ycmVjdAorc3R5bGVzIHN1aXRhYmxlIGZvciBzcGVjaWZpYyBicm93
c2VyIHJlcXVpcmVtZW50cy4gIERpZCBpIG1lbnRpb24KK3RoYXQgdGhlIGFiaWxpdHkgdG8gZWFz
aWx5IHdyaXRlIHRlc3RzIGZvciB5b3VyIGdlbmVyYXRlZAoraHRtbCBhbmQgaXRzIHNlcmlhbGl6
YXRpb24gY291bGQgaGVscCB0byBkZXZlbG9wIF9zdGFibGVfIHVzZXIKK2ludGVyZmFjZXM/CisK
K01vcmUgdG8gY29tZSAuLi4KKy0tLS0tLS0tLS0tLS0tLS0KKworRm9yIG5vdywgaSBkb24ndCB0
aGluayB3ZSBzaG91bGQgc3RyaXZlIHRvIG9mZmVyIG11Y2ggbW9yZQordGhhbiB0aGUgYWJvdmUu
ICAgSG93ZXZlciwgaXQgaXMgcHJvYmFibHkgbm90IGhhcmQgdG8gb2ZmZXIKKypwYXJ0aWFsIHNl
cmlhbGl6YXRpb24qIHRvIGFsbG93IGdlbmVyYXRpbmcgbWF5YmUgaHVuZHJlZHMgb2YKK2NvbXBs
ZXggaHRtbCBkb2N1bWVudHMgcGVyIHNlY29uZC4gICBCYXNpY2FsbHkgd2Ugd291bGQgYWxsb3cK
K3B1dHRpbmcgY2FsbGFibGVzIGJvdGggYXMgVGFnIGNvbnRlbnQgYW5kIGFzIHZhbHVlcyBvZgor
YXR0cmlidXRlcy4gIEEgc2xpZ2h0bHkgbW9yZSBhZHZhbmNlZCBTZXJpYWxpemF0aW9uIHdvdWxk
IHRoZW4KK3Byb2R1Y2UgYSBsaXN0IG9mIHVuaWNvZGUgb2JqZWN0cyBpbnRlcm1pbmdsZWQgd2l0
aCBjYWxsYWJsZXMuCitBdCBIVFRQLVJlcXVlc3QgdGltZSB0aGUgY2FsbGFibGVzIHdvdWxkIGdl
dCBjYWxsZWQgdG8KK2NvbXBsZXRlIHRoZSBwcm9iYWJseSByZXF1ZXN0LXNwZWNpZmljIHNlcmlh
bGl6YXRpb24gb2YKK3lvdXIgVGFncy4gIEh1bSwgaXQncyBwcm9iYWJseSBoYXJkZXIgdG8gZXhw
bGFpbiB0aGlzIHRoYW4gdG8KK2FjdHVhbGx5IGNvZGUgaXQgOi0pCisKKy4uIF9gcHkudGVzdGA6
IHRlc3QvaW5kZXguaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlMGMxNjMwYzczMjAzMjA0NTE5NjBj
ZmQ1MDBhOWZkN2Q3ZmNiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19pbml0X18u
cHkKQEAgLTAsMCArMSwxNTQgQEAKKyIiIgorcHlsaWI6IHJhcGlkIHRlc3RpbmcgYW5kIGRldmVs
b3BtZW50IHV0aWxzCisKK3RoaXMgbW9kdWxlIHVzZXMgYXBpcGtnLnB5IGZvciBsYXp5LWxvYWRp
bmcgc3ViIG1vZHVsZXMKK2FuZCBjbGFzc2VzLiAgVGhlIGluaXRwa2ctZGljdGlvbmFyeSAgYmVs
b3cgc3BlY2lmaWVzCituYW1lLT52YWx1ZSBtYXBwaW5ncyB3aGVyZSB2YWx1ZSBjYW4gYmUgYW5v
dGhlciBuYW1lc3BhY2UKK2RpY3Rpb25hcnkgb3IgYW4gaW1wb3J0IHBhdGguCisKKyhjKSBIb2xn
ZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIwMDQtMjAxNAorIiIiCitfX3ZlcnNpb25fXyA9ICcxLjUu
MicKKwordHJ5OgorICAgIGZyb20gcHkuX3ZlbmRvcmVkX3BhY2thZ2VzIGltcG9ydCBhcGlwa2cK
KyAgICBsaWJfbm90X21hbmdsZWRfYnlfcGFja2FnZXJzID0gVHJ1ZQorICAgIHZlbmRvcl9wcmVm
aXggPSAnLl92ZW5kb3JlZF9wYWNrYWdlcy4nCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1w
b3J0IGFwaXBrZworICAgIGxpYl9ub3RfbWFuZ2xlZF9ieV9wYWNrYWdlcnMgPSBGYWxzZQorICAg
IHZlbmRvcl9wcmVmaXggPSAnJworCisjIHNvIHRoYXQgcHkuZXJyb3IuKiBpbnN0YW5jZXMgYXJl
IHBpY2tsYWJsZQoraW1wb3J0IHN5cworCithcGlwa2cuaW5pdHBrZyhfX25hbWVfXywgYXR0cj17
J19hcGlwa2cnOiBhcGlwa2d9LCBleHBvcnRkZWZzPXsKKyAgICAjIGFjY2VzcyB0byBhbGwgc3Rh
bmRhcmQgbGliIG1vZHVsZXMKKyAgICAnc3RkJzogJy5fc3RkOnN0ZCcsCisgICAgIyBhY2Nlc3Mg
dG8gYWxsIHBvc2l4IGVycm5vJ3MgYXMgY2xhc3NlcworICAgICdlcnJvcic6ICcuX2Vycm9yOmVy
cm9yJywKKworICAgICdfcHlkaXInIDogJy5fX21ldGFpbmZvOnB5ZGlyJywKKyAgICAndmVyc2lv
bic6ICdweTpfX3ZlcnNpb25fXycsICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorCisgICAgIyBw
eXRlc3QtMi4wIGhhcyBhIGZsYXQgbmFtZXNwYWNlLCB3ZSB1c2UgYWxpYXMgbW9kdWxlcworICAg
ICMgdG8ga2VlcCBvbGQgcmVmZXJlbmNlcyBjb21wYXRpYmxlCisgICAgJ3Rlc3QnIDogJ3B5dGVz
dCcsCisKKyAgICAjIGhvb2sgaW50byB0aGUgdG9wLWxldmVsIHN0YW5kYXJkIGxpYnJhcnkKKyAg
ICAncHJvY2VzcycgOiB7CisgICAgICAgICdfX2RvY19fJyAgICAgICAgOiAnLl9wcm9jZXNzOl9f
ZG9jX18nLAorICAgICAgICAnY21kZXhlYycgICAgICAgIDogJy5fcHJvY2Vzcy5jbWRleGVjOmNt
ZGV4ZWMnLAorICAgICAgICAna2lsbCcgICAgICAgICAgIDogJy5fcHJvY2Vzcy5raWxscHJvYzpr
aWxsJywKKyAgICAgICAgJ0ZvcmtlZEZ1bmMnICAgICA6ICcuX3Byb2Nlc3MuZm9ya2VkZnVuYzpG
b3JrZWRGdW5jJywKKyAgICB9LAorCisgICAgJ2FwaXBrZycgOiB7CisgICAgICAgICdpbml0cGtn
JyAgIDogdmVuZG9yX3ByZWZpeCArICdhcGlwa2c6aW5pdHBrZycsCisgICAgICAgICdBcGlNb2R1
bGUnIDogdmVuZG9yX3ByZWZpeCArICdhcGlwa2c6QXBpTW9kdWxlJywKKyAgICB9LAorCisgICAg
J2luaWNvbmZpZycgOiB7CisgICAgICAgICdJbmlDb25maWcnICAgICAgOiB2ZW5kb3JfcHJlZml4
ICsgJ2luaWNvbmZpZzpJbmlDb25maWcnLAorICAgICAgICAnUGFyc2VFcnJvcicgICAgIDogdmVu
ZG9yX3ByZWZpeCArICdpbmljb25maWc6UGFyc2VFcnJvcicsCisgICAgfSwKKworICAgICdwYXRo
JyA6IHsKKyAgICAgICAgJ19fZG9jX18nICAgICAgICA6ICcuX3BhdGg6X19kb2NfXycsCisgICAg
ICAgICdzdm53YycgICAgICAgICAgOiAnLl9wYXRoLnN2bndjOlN2bldDQ29tbWFuZFBhdGgnLAor
ICAgICAgICAnc3ZudXJsJyAgICAgICAgIDogJy5fcGF0aC5zdm51cmw6U3ZuQ29tbWFuZFBhdGgn
LAorICAgICAgICAnbG9jYWwnICAgICAgICAgIDogJy5fcGF0aC5sb2NhbDpMb2NhbFBhdGgnLAor
ICAgICAgICAnU3ZuQXV0aCcgICAgICAgIDogJy5fcGF0aC5zdm53YzpTdm5BdXRoJywKKyAgICB9
LAorCisgICAgIyBweXRob24gaW5zcGVjdGlvbi9jb2RlLWdlbmVyYXRpb24gQVBJCisgICAgJ2Nv
ZGUnIDogeworICAgICAgICAnX19kb2NfXycgICAgICAgICAgIDogJy5fY29kZTpfX2RvY19fJywK
KyAgICAgICAgJ2NvbXBpbGUnICAgICAgICAgICA6ICcuX2NvZGUuc291cmNlOmNvbXBpbGVfJywK
KyAgICAgICAgJ1NvdXJjZScgICAgICAgICAgICA6ICcuX2NvZGUuc291cmNlOlNvdXJjZScsCisg
ICAgICAgICdDb2RlJyAgICAgICAgICAgICAgOiAnLl9jb2RlLmNvZGU6Q29kZScsCisgICAgICAg
ICdGcmFtZScgICAgICAgICAgICAgOiAnLl9jb2RlLmNvZGU6RnJhbWUnLAorICAgICAgICAnRXhj
ZXB0aW9uSW5mbycgICAgIDogJy5fY29kZS5jb2RlOkV4Y2VwdGlvbkluZm8nLAorICAgICAgICAn
VHJhY2ViYWNrJyAgICAgICAgIDogJy5fY29kZS5jb2RlOlRyYWNlYmFjaycsCisgICAgICAgICdn
ZXRmc2xpbmVubycgICAgICAgOiAnLl9jb2RlLnNvdXJjZTpnZXRmc2xpbmVubycsCisgICAgICAg
ICdnZXRyYXdjb2RlJyAgICAgICAgOiAnLl9jb2RlLmNvZGU6Z2V0cmF3Y29kZScsCisgICAgICAg
ICdwYXRjaF9idWlsdGlucycgICAgOiAnLl9jb2RlLmNvZGU6cGF0Y2hfYnVpbHRpbnMnLAorICAg
ICAgICAndW5wYXRjaF9idWlsdGlucycgIDogJy5fY29kZS5jb2RlOnVucGF0Y2hfYnVpbHRpbnMn
LAorICAgICAgICAnX0Fzc2VydGlvbkVycm9yJyAgIDogJy5fY29kZS5hc3NlcnRpb246QXNzZXJ0
aW9uRXJyb3InLAorICAgICAgICAnX3JlaW50ZXJwcmV0X29sZCcgIDogJy5fY29kZS5hc3NlcnRp
b246cmVpbnRlcnByZXRfb2xkJywKKyAgICAgICAgJ19yZWludGVycHJldCcgICAgICA6ICcuX2Nv
ZGUuYXNzZXJ0aW9uOnJlaW50ZXJwcmV0JywKKyAgICAgICAgJ19yZXByY29tcGFyZScgICAgICA6
ICcuX2NvZGUuYXNzZXJ0aW9uOl9yZXByY29tcGFyZScsCisgICAgICAgICdfZm9ybWF0X2V4cGxh
bmF0aW9uJyA6ICcuX2NvZGUuYXNzZXJ0aW9uOl9mb3JtYXRfZXhwbGFuYXRpb24nLAorICAgIH0s
CisKKyAgICAjIGJhY2twb3J0cyBhbmQgYWRkaXRpb25zIG9mIGJ1aWx0aW5zCisgICAgJ2J1aWx0
aW4nIDogeworICAgICAgICAnX19kb2NfXycgICAgICAgIDogJy5fYnVpbHRpbjpfX2RvY19fJywK
KyAgICAgICAgJ2VudW1lcmF0ZScgICAgICA6ICcuX2J1aWx0aW46ZW51bWVyYXRlJywKKyAgICAg
ICAgJ3JldmVyc2VkJyAgICAgICA6ICcuX2J1aWx0aW46cmV2ZXJzZWQnLAorICAgICAgICAnc29y
dGVkJyAgICAgICAgIDogJy5fYnVpbHRpbjpzb3J0ZWQnLAorICAgICAgICAnYW55JyAgICAgICAg
ICAgIDogJy5fYnVpbHRpbjphbnknLAorICAgICAgICAnYWxsJyAgICAgICAgICAgIDogJy5fYnVp
bHRpbjphbGwnLAorICAgICAgICAnc2V0JyAgICAgICAgICAgIDogJy5fYnVpbHRpbjpzZXQnLAor
ICAgICAgICAnZnJvemVuc2V0JyAgICAgIDogJy5fYnVpbHRpbjpmcm96ZW5zZXQnLAorICAgICAg
ICAnQmFzZUV4Y2VwdGlvbicgIDogJy5fYnVpbHRpbjpCYXNlRXhjZXB0aW9uJywKKyAgICAgICAg
J0dlbmVyYXRvckV4aXQnICA6ICcuX2J1aWx0aW46R2VuZXJhdG9yRXhpdCcsCisgICAgICAgICdf
c3lzZXgnICAgICAgICAgOiAnLl9idWlsdGluOl9zeXNleCcsCisgICAgICAgICdwcmludF8nICAg
ICAgICAgOiAnLl9idWlsdGluOnByaW50XycsCisgICAgICAgICdfcmVyYWlzZScgICAgICAgOiAn
Ll9idWlsdGluOl9yZXJhaXNlJywKKyAgICAgICAgJ190cnlpbXBvcnQnICAgICA6ICcuX2J1aWx0
aW46X3RyeWltcG9ydCcsCisgICAgICAgICdleGVjXycgICAgICAgICAgOiAnLl9idWlsdGluOmV4
ZWNfJywKKyAgICAgICAgJ19iYXNlc3RyaW5nJyAgICA6ICcuX2J1aWx0aW46X2Jhc2VzdHJpbmcn
LAorICAgICAgICAnX3RvdGV4dCcgICAgICAgIDogJy5fYnVpbHRpbjpfdG90ZXh0JywKKyAgICAg
ICAgJ19pc2J5dGVzJyAgICAgICA6ICcuX2J1aWx0aW46X2lzYnl0ZXMnLAorICAgICAgICAnX2lz
dGV4dCcgICAgICAgIDogJy5fYnVpbHRpbjpfaXN0ZXh0JywKKyAgICAgICAgJ19nZXRpbXNlbGYn
ICAgICA6ICcuX2J1aWx0aW46X2dldGltc2VsZicsCisgICAgICAgICdfZ2V0ZnVuY2RpY3QnICAg
OiAnLl9idWlsdGluOl9nZXRmdW5jZGljdCcsCisgICAgICAgICdfZ2V0Y29kZScgICAgICAgOiAn
Ll9idWlsdGluOl9nZXRjb2RlJywKKyAgICAgICAgJ2J1aWx0aW5zJyAgICAgICA6ICcuX2J1aWx0
aW46YnVpbHRpbnMnLAorICAgICAgICAnZXhlY2ZpbGUnICAgICAgIDogJy5fYnVpbHRpbjpleGVj
ZmlsZScsCisgICAgICAgICdjYWxsYWJsZScgICAgICAgOiAnLl9idWlsdGluOmNhbGxhYmxlJywK
KyAgICAgICAgJ2J5dGVzJyAgICAgICA6ICcuX2J1aWx0aW46Ynl0ZXMnLAorICAgICAgICAndGV4
dCcgICAgICAgOiAnLl9idWlsdGluOnRleHQnLAorICAgIH0sCisKKyAgICAjIGlucHV0LW91dHB1
dCBoZWxwaW5nCisgICAgJ2lvJyA6IHsKKyAgICAgICAgJ19fZG9jX18nICAgICAgICAgICAgIDog
Jy5faW86X19kb2NfXycsCisgICAgICAgICdkdXBmaWxlJyAgICAgICAgICAgICA6ICcuX2lvLmNh
cHR1cmU6ZHVwZmlsZScsCisgICAgICAgICdUZXh0SU8nICAgICAgICAgICAgICA6ICcuX2lvLmNh
cHR1cmU6VGV4dElPJywKKyAgICAgICAgJ0J5dGVzSU8nICAgICAgICAgICAgIDogJy5faW8uY2Fw
dHVyZTpCeXRlc0lPJywKKyAgICAgICAgJ0ZEQ2FwdHVyZScgICAgICAgICAgIDogJy5faW8uY2Fw
dHVyZTpGRENhcHR1cmUnLAorICAgICAgICAnU3RkQ2FwdHVyZScgICAgICAgICAgOiAnLl9pby5j
YXB0dXJlOlN0ZENhcHR1cmUnLAorICAgICAgICAnU3RkQ2FwdHVyZUZEJyAgICAgICAgOiAnLl9p
by5jYXB0dXJlOlN0ZENhcHR1cmVGRCcsCisgICAgICAgICdUZXJtaW5hbFdyaXRlcicgICAgICA6
ICcuX2lvLnRlcm1pbmFsd3JpdGVyOlRlcm1pbmFsV3JpdGVyJywKKyAgICAgICAgJ2Fuc2lfcHJp
bnQnICAgICAgICAgIDogJy5faW8udGVybWluYWx3cml0ZXI6YW5zaV9wcmludCcsCisgICAgICAg
ICdnZXRfdGVybWluYWxfd2lkdGgnICA6ICcuX2lvLnRlcm1pbmFsd3JpdGVyOmdldF90ZXJtaW5h
bF93aWR0aCcsCisgICAgICAgICdzYWZlcmVwcicgICAgICAgICAgICA6ICcuX2lvLnNhZmVyZXBy
OnNhZmVyZXByJywKKyAgICB9LAorCisgICAgIyBzbWFsbCBhbmQgbWVhbiB4bWwvaHRtbCBnZW5l
cmF0aW9uCisgICAgJ3htbCcgOiB7CisgICAgICAgICdfX2RvY19fJyAgICAgICAgICAgIDogJy5f
eG1sZ2VuOl9fZG9jX18nLAorICAgICAgICAnaHRtbCcgICAgICAgICAgICAgICA6ICcuX3htbGdl
bjpodG1sJywKKyAgICAgICAgJ1RhZycgICAgICAgICAgICAgICAgOiAnLl94bWxnZW46VGFnJywK
KyAgICAgICAgJ3JhdycgICAgICAgICAgICAgICAgOiAnLl94bWxnZW46cmF3JywKKyAgICAgICAg
J05hbWVzcGFjZScgICAgICAgICAgOiAnLl94bWxnZW46TmFtZXNwYWNlJywKKyAgICAgICAgJ2Vz
Y2FwZScgICAgICAgICAgICAgOiAnLl94bWxnZW46ZXNjYXBlJywKKyAgICB9LAorCisgICAgJ2xv
ZycgOiB7CisgICAgICAgICMgbG9nZ2luZyBBUEkgKCdwcm9kdWNlcnMnIGFuZCAnY29uc3VtZXJz
JyBjb25uZWN0ZWQgdmlhIGtleXdvcmRzKQorICAgICAgICAnX19kb2NfXycgICAgICAgICAgICA6
ICcuX2xvZzpfX2RvY19fJywKKyAgICAgICAgJ19hcGl3YXJuJyAgICAgICAgICAgOiAnLl9sb2cu
d2FybmluZzpfYXBpd2FybicsCisgICAgICAgICdQcm9kdWNlcicgICAgICAgICAgIDogJy5fbG9n
LmxvZzpQcm9kdWNlcicsCisgICAgICAgICdzZXRjb25zdW1lcicgICAgICAgIDogJy5fbG9nLmxv
ZzpzZXRjb25zdW1lcicsCisgICAgICAgICdfc2V0c3RhdGUnICAgICAgICAgIDogJy5fbG9nLmxv
ZzpzZXRzdGF0ZScsCisgICAgICAgICdfZ2V0c3RhdGUnICAgICAgICAgIDogJy5fbG9nLmxvZzpn
ZXRzdGF0ZScsCisgICAgICAgICdQYXRoJyAgICAgICAgICAgICAgIDogJy5fbG9nLmxvZzpQYXRo
JywKKyAgICAgICAgJ1NURE9VVCcgICAgICAgICAgICAgOiAnLl9sb2cubG9nOlNURE9VVCcsCisg
ICAgICAgICdTVERFUlInICAgICAgICAgICAgIDogJy5fbG9nLmxvZzpTVERFUlInLAorICAgICAg
ICAnU3lzbG9nJyAgICAgICAgICAgICA6ICcuX2xvZy5sb2c6U3lzbG9nJywKKyAgICB9LAorCit9
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fX21ldGFpbmZvLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fX21l
dGFpbmZvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyNTgxZWI3YWZiYzIzMWUwMjQ3NmMxMjVjY2I5ZTI4OWU2
ZjMwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19fbWV0YWluZm8ucHkKQEAgLTAs
MCArMSwyIEBACitpbXBvcnQgcHkKK3B5ZGlyID0gcHkucGF0aC5sb2NhbChweS5fX2ZpbGVfXyku
ZGlycGF0aCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19idWlsdGluLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fYnVpbHRpbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmVlOWQ3OWNhZGNlMzk4MTc0YjZiOGI3M2Q2ODVh
ODNjNGJjMTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fYnVpbHRpbi5weQpAQCAt
MCwwICsxLDI0OCBAQAoraW1wb3J0IHN5cworCit0cnk6CisgICAgcmV2ZXJzZWQgPSByZXZlcnNl
ZAorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBkZWYgcmV2ZXJzZWQoc2VxdWVuY2UpOgorICAgICAg
ICAiIiJyZXZlcnNlZChzZXF1ZW5jZSkgLT4gcmV2ZXJzZSBpdGVyYXRvciBvdmVyIHZhbHVlcyBv
ZiB0aGUgc2VxdWVuY2UKKworICAgICAgICBSZXR1cm4gYSByZXZlcnNlIGl0ZXJhdG9yCisgICAg
ICAgICIiIgorICAgICAgICBpZiBoYXNhdHRyKHNlcXVlbmNlLCAnX19yZXZlcnNlZF9fJyk6Cisg
ICAgICAgICAgICByZXR1cm4gc2VxdWVuY2UuX19yZXZlcnNlZF9fKCkKKyAgICAgICAgaWYgbm90
IGhhc2F0dHIoc2VxdWVuY2UsICdfX2dldGl0ZW1fXycpOgorICAgICAgICAgICAgcmFpc2UgVHlw
ZUVycm9yKCJhcmd1bWVudCB0byByZXZlcnNlZCgpIG11c3QgYmUgYSBzZXF1ZW5jZSIpCisgICAg
ICAgIHJldHVybiByZXZlcnNlZF9pdGVyYXRvcihzZXF1ZW5jZSkKKworICAgIGNsYXNzIHJldmVy
c2VkX2l0ZXJhdG9yKG9iamVjdCk6CisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcSk6
CisgICAgICAgICAgICBzZWxmLnNlcSA9IHNlcQorICAgICAgICAgICAgc2VsZi5yZW1haW5pbmcg
PSBsZW4oc2VxKQorCisgICAgICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmCisKKyAgICAgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgICAgICBpID0gc2Vs
Zi5yZW1haW5pbmcKKyAgICAgICAgICAgIGlmIGkgPiAwOgorICAgICAgICAgICAgICAgIGkgLT0g
MQorICAgICAgICAgICAgICAgIGl0ZW0gPSBzZWxmLnNlcVtpXQorICAgICAgICAgICAgICAgIHNl
bGYucmVtYWluaW5nID0gaQorICAgICAgICAgICAgICAgIHJldHVybiBpdGVtCisgICAgICAgICAg
ICByYWlzZSBTdG9wSXRlcmF0aW9uCisKKyAgICAgICAgZGVmIF9fbGVuZ3RoX2hpbnRfXyhzZWxm
KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlbWFpbmluZworCit0cnk6CisgICAgYW55ID0g
YW55CitleGNlcHQgTmFtZUVycm9yOgorICAgIGRlZiBhbnkoaXRlcmFibGUpOgorICAgICAgICBm
b3IgeCBpbiBpdGVyYWJsZToKKyAgICAgICAgICAgIGlmIHg6CisgICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKK3RyeToKKyAgICBhbGwgPSBhbGwKK2V4
Y2VwdCBOYW1lRXJyb3I6CisgICAgZGVmIGFsbChpdGVyYWJsZSk6CisgICAgICAgIGZvciB4IGlu
IGl0ZXJhYmxlOgorICAgICAgICAgICAgaWYgbm90IHg6CisgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKK3RyeToKKyAgICBzb3J0ZWQgPSBzb3J0ZWQK
K2V4Y2VwdCBOYW1lRXJyb3I6CisgICAgYnVpbHRpbl9jbXAgPSBjbXAgIyBuZWVkIHRvIHVzZSBj
bXAgYXMga2V5d29yZCBhcmcKKworICAgIGRlZiBzb3J0ZWQoaXRlcmFibGUsIGNtcD1Ob25lLCBr
ZXk9Tm9uZSwgcmV2ZXJzZT0wKToKKyAgICAgICAgdXNlX2NtcCA9IE5vbmUKKyAgICAgICAgaWYg
a2V5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgY21wIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgZGVmIHVzZV9jbXAoeCwgeSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWls
dGluX2NtcCh4WzBdLCB5WzBdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBk
ZWYgdXNlX2NtcCh4LCB5KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNtcCh4WzBdLCB5
WzBdKQorICAgICAgICAgICAgbCA9IFsoa2V5KGVsZW1lbnQpLCBlbGVtZW50KSBmb3IgZWxlbWVu
dCBpbiBpdGVyYWJsZV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGNtcCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICB1c2VfY21wID0gY21wCisgICAgICAgICAgICBsID0gbGlz
dChpdGVyYWJsZSkKKyAgICAgICAgaWYgdXNlX2NtcCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGwuc29ydCh1c2VfY21wKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbC5zb3J0KCkKKyAg
ICAgICAgaWYgcmV2ZXJzZToKKyAgICAgICAgICAgIGwucmV2ZXJzZSgpCisgICAgICAgIGlmIGtl
eSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBbZWxlbWVudCBmb3IgKF8sIGVsZW1l
bnQpIGluIGxdCisgICAgICAgIHJldHVybiBsCisKK3RyeToKKyAgICBzZXQsIGZyb3plbnNldCA9
IHNldCwgZnJvemVuc2V0CitleGNlcHQgTmFtZUVycm9yOgorICAgIGZyb20gc2V0cyBpbXBvcnQg
c2V0LCBmcm96ZW5zZXQKKworIyBwYXNzIHRocm91Z2gKK2VudW1lcmF0ZSA9IGVudW1lcmF0ZQor
Cit0cnk6CisgICAgQmFzZUV4Y2VwdGlvbiA9IEJhc2VFeGNlcHRpb24KK2V4Y2VwdCBOYW1lRXJy
b3I6CisgICAgQmFzZUV4Y2VwdGlvbiA9IEV4Y2VwdGlvbgorCit0cnk6CisgICAgR2VuZXJhdG9y
RXhpdCA9IEdlbmVyYXRvckV4aXQKK2V4Y2VwdCBOYW1lRXJyb3I6CisgICAgY2xhc3MgR2VuZXJh
dG9yRXhpdChFeGNlcHRpb24pOgorICAgICAgICAiIiIgVGhpcyBleGNlcHRpb24gaXMgbmV2ZXIg
cmFpc2VkLCBpdCBpcyB0aGVyZSB0byBtYWtlIGl0IHBvc3NpYmxlIHRvCisgICAgICAgIHdyaXRl
IGNvZGUgY29tcGF0aWJsZSB3aXRoIENQeXRob24gMi41IGV2ZW4gaW4gbG93ZXIgQ1B5dGhvbgor
ICAgICAgICB2ZXJzaW9ucy4iIiIKKyAgICAgICAgcGFzcworICAgIEdlbmVyYXRvckV4aXQuX19t
b2R1bGVfXyA9ICdleGNlcHRpb25zJworCitfc3lzZXggPSAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5
c3RlbUV4aXQsIE1lbW9yeUVycm9yLCBHZW5lcmF0b3JFeGl0KQorCit0cnk6CisgICAgY2FsbGFi
bGUgPSBjYWxsYWJsZQorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBkZWYgY2FsbGFibGUob2JqKToK
KyAgICAgICAgcmV0dXJuIGhhc2F0dHIob2JqLCAiX19jYWxsX18iKQorCitpZiBzeXMudmVyc2lv
bl9pbmZvID49ICgzLCAwKToKKyAgICBleGVjICgicHJpbnRfID0gcHJpbnQgOyBleGVjXz1leGVj
IikKKyAgICBpbXBvcnQgYnVpbHRpbnMKKworICAgICMgc29tZSBiYWNrd2FyZCBjb21wYXRpYmls
aXR5IGhlbHBlcnMKKyAgICBfYmFzZXN0cmluZyA9IHN0cgorICAgIGRlZiBfdG90ZXh0KG9iaiwg
ZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwg
Ynl0ZXMpOgorICAgICAgICAgICAgaWYgZXJyb3JzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
b2JqID0gb2JqLmRlY29kZShlbmNvZGluZykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgb2JqID0gb2JqLmRlY29kZShlbmNvZGluZywgZXJyb3JzKQorICAgICAgICBlbGlmIG5v
dCBpc2luc3RhbmNlKG9iaiwgc3RyKToKKyAgICAgICAgICAgIG9iaiA9IHN0cihvYmopCisgICAg
ICAgIHJldHVybiBvYmoKKworICAgIGRlZiBfaXNieXRlcyh4KToKKyAgICAgICAgcmV0dXJuIGlz
aW5zdGFuY2UoeCwgYnl0ZXMpCisgICAgZGVmIF9pc3RleHQoeCk6CisgICAgICAgIHJldHVybiBp
c2luc3RhbmNlKHgsIHN0cikKKworICAgIHRleHQgPSBzdHIKKyAgICBieXRlcyA9IGJ5dGVzCisK
KworICAgIGRlZiBfZ2V0aW1zZWxmKGZ1bmN0aW9uKToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIo
ZnVuY3Rpb24sICdfX3NlbGZfXycsIE5vbmUpCisKKyAgICBkZWYgX2dldGZ1bmNkaWN0KGZ1bmN0
aW9uKToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoZnVuY3Rpb24sICJfX2RpY3RfXyIsIE5vbmUp
CisKKyAgICBkZWYgX2dldGNvZGUoZnVuY3Rpb24pOgorICAgICAgICByZXR1cm4gZ2V0YXR0cihm
dW5jdGlvbiwgIl9fY29kZV9fIiwgTm9uZSkKKworICAgIGRlZiBleGVjZmlsZShmbiwgZ2xvYnM9
Tm9uZSwgbG9jcz1Ob25lKToKKyAgICAgICAgaWYgZ2xvYnMgaXMgTm9uZToKKyAgICAgICAgICAg
IGJhY2sgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgICAgICBnbG9icyA9IGJhY2suZl9nbG9i
YWxzCisgICAgICAgICAgICBsb2NzID0gYmFjay5mX2xvY2FscworICAgICAgICAgICAgZGVsIGJh
Y2sKKyAgICAgICAgZWxpZiBsb2NzIGlzIE5vbmU6CisgICAgICAgICAgICBsb2NzID0gZ2xvYnMK
KyAgICAgICAgZnAgPSBvcGVuKGZuLCAiciIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNv
dXJjZSA9IGZwLnJlYWQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZnAuY2xvc2Uo
KQorICAgICAgICBjbyA9IGNvbXBpbGUoc291cmNlLCBmbiwgImV4ZWMiLCBkb250X2luaGVyaXQ9
VHJ1ZSkKKyAgICAgICAgZXhlY18oY28sIGdsb2JzLCBsb2NzKQorCitlbHNlOgorICAgIGltcG9y
dCBfX2J1aWx0aW5fXyBhcyBidWlsdGlucworICAgIF90b3RleHQgPSB1bmljb2RlCisgICAgX2Jh
c2VzdHJpbmcgPSBiYXNlc3RyaW5nCisgICAgdGV4dCA9IHVuaWNvZGUKKyAgICBieXRlcyA9IHN0
cgorICAgIGV4ZWNmaWxlID0gZXhlY2ZpbGUKKyAgICBjYWxsYWJsZSA9IGNhbGxhYmxlCisgICAg
ZGVmIF9pc2J5dGVzKHgpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBzdHIpCisgICAg
ZGVmIF9pc3RleHQoeCk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHgsIHVuaWNvZGUpCisK
KyAgICBkZWYgX2dldGltc2VsZihmdW5jdGlvbik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKGZ1
bmN0aW9uLCAnaW1fc2VsZicsIE5vbmUpCisKKyAgICBkZWYgX2dldGZ1bmNkaWN0KGZ1bmN0aW9u
KToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoZnVuY3Rpb24sICJfX2RpY3RfXyIsIE5vbmUpCisK
KyAgICBkZWYgX2dldGNvZGUoZnVuY3Rpb24pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBy
ZXR1cm4gZ2V0YXR0cihmdW5jdGlvbiwgIl9fY29kZV9fIikKKyAgICAgICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoZnVuY3Rpb24sICJmdW5jX2Nv
ZGUiLCBOb25lKQorCisgICAgZGVmIHByaW50XygqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAi
IiIgbWluaW1hbCBiYWNrcG9ydCBvZiBweTNrIHByaW50IHN0YXRlbWVudC4gIiIiCisgICAgICAg
IHNlcCA9ICcgJworICAgICAgICBpZiAnc2VwJyBpbiBrd2FyZ3M6CisgICAgICAgICAgICBzZXAg
PSBrd2FyZ3MucG9wKCdzZXAnKQorICAgICAgICBlbmQgPSAnXG4nCisgICAgICAgIGlmICdlbmQn
IGluIGt3YXJnczoKKyAgICAgICAgICAgIGVuZCA9IGt3YXJncy5wb3AoJ2VuZCcpCisgICAgICAg
IGZpbGUgPSAnZmlsZScgaW4ga3dhcmdzIGFuZCBrd2FyZ3MucG9wKCdmaWxlJykgb3Igc3lzLnN0
ZG91dAorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBhcmdzID0gIiwgIi5qb2luKFtz
dHIoeCkgZm9yIHggaW4ga3dhcmdzXSkKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiaW52
YWxpZCBrZXl3b3JkIGFyZ3VtZW50czogJXMiICUgYXJncykKKyAgICAgICAgYXRfc3RhcnQgPSBU
cnVlCisgICAgICAgIGZvciB4IGluIGFyZ3M6CisgICAgICAgICAgICBpZiBub3QgYXRfc3RhcnQ6
CisgICAgICAgICAgICAgICAgZmlsZS53cml0ZShzZXApCisgICAgICAgICAgICBmaWxlLndyaXRl
KHN0cih4KSkKKyAgICAgICAgICAgIGF0X3N0YXJ0ID0gRmFsc2UKKyAgICAgICAgZmlsZS53cml0
ZShlbmQpCisKKyAgICBkZWYgZXhlY18ob2JqLCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKToK
KyAgICAgICAgIiIiIG1pbmltYWwgYmFja3BvcnQgb2YgcHkzayBleGVjIHN0YXRlbWVudC4gIiIi
CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBnbG9iYWxzIGlz
IE5vbmU6CisgICAgICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKKyAgICAgICAgICAg
IGdsb2JhbHMgPSBmcmFtZS5mX2dsb2JhbHMKKyAgICAgICAgICAgIGlmIGxvY2FscyBpcyBOb25l
OgorICAgICAgICAgICAgICAgIGxvY2FscyA9IGZyYW1lLmZfbG9jYWxzCisgICAgICAgIGVsaWYg
bG9jYWxzIGlzIE5vbmU6CisgICAgICAgICAgICBsb2NhbHMgPSBnbG9iYWxzCisgICAgICAgIGV4
ZWMyKG9iaiwgZ2xvYmFscywgbG9jYWxzKQorCitpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAw
KToKKyAgICBkZWYgX3JlcmFpc2UoY2xzLCB2YWwsIHRiKToKKyAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCisgICAgICAgIGFzc2VydCBoYXNhdHRyKHZhbCwgJ19fdHJhY2ViYWNrX18n
KQorICAgICAgICByYWlzZSBjbHMud2l0aF90cmFjZWJhY2sodmFsLCB0YikKK2Vsc2U6CisgICAg
ZXhlYyAoIiIiCitkZWYgX3JlcmFpc2UoY2xzLCB2YWwsIHRiKToKKyAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IFRydWUKKyAgICByYWlzZSBjbHMsIHZhbCwgdGIKK2RlZiBleGVjMihvYmosIGdsb2Jh
bHMsIGxvY2Fscyk6CisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgZXhlYyBvYmog
aW4gZ2xvYmFscywgbG9jYWxzCisiIiIpCisKK2RlZiBfdHJ5aW1wb3J0KCpuYW1lcyk6CisgICAg
IiIiIHJldHVybiB0aGUgZmlyc3Qgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIG1vZHVsZS4gIiIiCisg
ICAgYXNzZXJ0IG5hbWVzCisgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIF9faW1wb3J0X18obmFtZSkKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KKyAgICBfcmVyYWlzZSgqZXhjaW5mbykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19j
b2RlL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNWFjZjg1MTMyMTEzZjA5MGIxYTUzY2RkMGJh
YzM5YWY5MjRkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19faW5pdF9f
LnB5CkBAIC0wLDAgKzEgQEAKKyIiIiBweXRob24gaW5zcGVjdGlvbi9jb2RlIGdlbmVyYXRpb24g
QVBJICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ubmV3LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ubmV3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwM2YyOWQ4NzA4
MTQyODNkM2YyZDUzN2Q5MWI4YTUyNzgyMWVlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L19jb2RlL19hc3NlcnRpb25uZXcucHkKQEAgLTAsMCArMSwzMjIgQEAKKyIiIgorRmluZCBp
bnRlcm1lZGlhdGUgZXZhbHV0YXRpb24gcmVzdWx0cyBpbiBhc3NlcnQgc3RhdGVtZW50cyB0aHJv
dWdoIGJ1aWx0aW4gQVNULgorVGhpcyBzaG91bGQgcmVwbGFjZSBfYXNzZXJ0aW9ub2xkLnB5IGV2
ZW50dWFsbHkuCisiIiIKKworaW1wb3J0IHN5cworaW1wb3J0IGFzdAorCitpbXBvcnQgcHkKK2Zy
b20gcHkuX2NvZGUuYXNzZXJ0aW9uIGltcG9ydCBfZm9ybWF0X2V4cGxhbmF0aW9uLCBCdWlsdGlu
QXNzZXJ0aW9uRXJyb3IKKworCitkZWYgX2lzX2FzdF9leHByKG5vZGUpOgorICAgIHJldHVybiBp
c2luc3RhbmNlKG5vZGUsIGFzdC5leHByKQorZGVmIF9pc19hc3Rfc3RtdChub2RlKToKKyAgICBy
ZXR1cm4gaXNpbnN0YW5jZShub2RlLCBhc3Quc3RtdCkKKworCitjbGFzcyBGYWlsdXJlKEV4Y2Vw
dGlvbik6CisgICAgIiIiRXJyb3IgZm91bmQgd2hpbGUgaW50ZXJwcmV0aW5nIEFTVC4iIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBsYW5hdGlvbj0iIik6CisgICAgICAgIHNlbGYuY2F1
c2UgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uID0gZXhwbGFuYXRp
b24KKworCitkZWYgaW50ZXJwcmV0KHNvdXJjZSwgZnJhbWUsIHNob3VsZF9mYWlsPUZhbHNlKToK
KyAgICBtb2QgPSBhc3QucGFyc2Uoc291cmNlKQorICAgIHZpc2l0b3IgPSBEZWJ1Z0ludGVycHJl
dGVyKGZyYW1lKQorICAgIHRyeToKKyAgICAgICAgdmlzaXRvci52aXNpdChtb2QpCisgICAgZXhj
ZXB0IEZhaWx1cmU6CisgICAgICAgIGZhaWx1cmUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAg
ICByZXR1cm4gZ2V0ZmFpbHVyZShmYWlsdXJlKQorICAgIGlmIHNob3VsZF9mYWlsOgorICAgICAg
ICByZXR1cm4gKCIoYXNzZXJ0aW9uIGZhaWxlZCwgYnV0IHdoZW4gaXQgd2FzIHJlLXJ1biBmb3Ig
IgorICAgICAgICAgICAgICAgICJwcmludGluZyBpbnRlcm1lZGlhdGUgdmFsdWVzLCBpdCBkaWQg
bm90IGZhaWwuICBTdWdnZXN0aW9uczogIgorICAgICAgICAgICAgICAgICJjb21wdXRlIGFzc2Vy
dCBleHByZXNzaW9uIGJlZm9yZSB0aGUgYXNzZXJ0IG9yIHVzZSAtLW5vLWFzc2VydCkiKQorCitk
ZWYgcnVuKG9mZmVuZGluZ19saW5lLCBmcmFtZT1Ob25lKToKKyAgICBpZiBmcmFtZSBpcyBOb25l
OgorICAgICAgICBmcmFtZSA9IHB5LmNvZGUuRnJhbWUoc3lzLl9nZXRmcmFtZSgxKSkKKyAgICBy
ZXR1cm4gaW50ZXJwcmV0KG9mZmVuZGluZ19saW5lLCBmcmFtZSkKKworZGVmIGdldGZhaWx1cmUo
ZmFpbHVyZSk6CisgICAgZXhwbGFuYXRpb24gPSBfZm9ybWF0X2V4cGxhbmF0aW9uKGZhaWx1cmUu
ZXhwbGFuYXRpb24pCisgICAgdmFsdWUgPSBmYWlsdXJlLmNhdXNlWzFdCisgICAgaWYgc3RyKHZh
bHVlKToKKyAgICAgICAgbGluZXMgPSBleHBsYW5hdGlvbi5zcGxpdGxpbmVzKCkKKyAgICAgICAg
aWYgbm90IGxpbmVzOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIiKQorICAgICAgICBsaW5l
c1swXSArPSAiIDw8ICVzIiAlICh2YWx1ZSwpCisgICAgICAgIGV4cGxhbmF0aW9uID0gIlxuIi5q
b2luKGxpbmVzKQorICAgIHRleHQgPSAiJXM6ICVzIiAlIChmYWlsdXJlLmNhdXNlWzBdLl9fbmFt
ZV9fLCBleHBsYW5hdGlvbikKKyAgICBpZiB0ZXh0LnN0YXJ0c3dpdGgoIkFzc2VydGlvbkVycm9y
OiBhc3NlcnQgIik6CisgICAgICAgIHRleHQgPSB0ZXh0WzE2Ol0KKyAgICByZXR1cm4gdGV4dAor
CisKK29wZXJhdG9yX21hcCA9IHsKKyAgICBhc3QuQml0T3IgOiAifCIsCisgICAgYXN0LkJpdFhv
ciA6ICJeIiwKKyAgICBhc3QuQml0QW5kIDogIiYiLAorICAgIGFzdC5MU2hpZnQgOiAiPDwiLAor
ICAgIGFzdC5SU2hpZnQgOiAiPj4iLAorICAgIGFzdC5BZGQgOiAiKyIsCisgICAgYXN0LlN1YiA6
ICItIiwKKyAgICBhc3QuTXVsdCA6ICIqIiwKKyAgICBhc3QuRGl2IDogIi8iLAorICAgIGFzdC5G
bG9vckRpdiA6ICIvLyIsCisgICAgYXN0Lk1vZCA6ICIlIiwKKyAgICBhc3QuRXEgOiAiPT0iLAor
ICAgIGFzdC5Ob3RFcSA6ICIhPSIsCisgICAgYXN0Lkx0IDogIjwiLAorICAgIGFzdC5MdEUgOiAi
PD0iLAorICAgIGFzdC5HdCA6ICI+IiwKKyAgICBhc3QuR3RFIDogIj49IiwKKyAgICBhc3QuUG93
IDogIioqIiwKKyAgICBhc3QuSXMgOiAiaXMiLAorICAgIGFzdC5Jc05vdCA6ICJpcyBub3QiLAor
ICAgIGFzdC5JbiA6ICJpbiIsCisgICAgYXN0Lk5vdEluIDogIm5vdCBpbiIKK30KKwordW5hcnlf
bWFwID0geworICAgIGFzdC5Ob3QgOiAibm90ICVzIiwKKyAgICBhc3QuSW52ZXJ0IDogIn4lcyIs
CisgICAgYXN0LlVTdWIgOiAiLSVzIiwKKyAgICBhc3QuVUFkZCA6ICIrJXMiCit9CisKKworY2xh
c3MgRGVidWdJbnRlcnByZXRlcihhc3QuTm9kZVZpc2l0b3IpOgorICAgICIiIkludGVycHJldCBB
U1Qgbm9kZXMgdG8gZ2xlYW0gdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4gIiIiCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZnJhbWUpOgorICAgICAgICBzZWxmLmZyYW1lID0gZnJhbWUK
KworICAgIGRlZiBnZW5lcmljX3Zpc2l0KHNlbGYsIG5vZGUpOgorICAgICAgICAjIEZhbGxiYWNr
IHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHNwZWNpYWwgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGlm
IF9pc19hc3RfZXhwcihub2RlKToKKyAgICAgICAgICAgIG1vZCA9IGFzdC5FeHByZXNzaW9uKG5v
ZGUpCisgICAgICAgICAgICBjbyA9IHNlbGYuX2NvbXBpbGUobW9kKQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZnJhbWUuZXZhbChjbykKKyAgICAgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcmFpc2UgRmFpbHVyZSgpCisg
ICAgICAgICAgICBleHBsYW5hdGlvbiA9IHNlbGYuZnJhbWUucmVwcihyZXN1bHQpCisgICAgICAg
ICAgICByZXR1cm4gZXhwbGFuYXRpb24sIHJlc3VsdAorICAgICAgICBlbGlmIF9pc19hc3Rfc3Rt
dChub2RlKToKKyAgICAgICAgICAgIG1vZCA9IGFzdC5Nb2R1bGUoW25vZGVdKQorICAgICAgICAg
ICAgY28gPSBzZWxmLl9jb21waWxlKG1vZCwgImV4ZWMiKQorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHNlbGYuZnJhbWUuZXhlY18oY28pCisgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgorICAgICAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoKQorICAgICAgICAgICAgcmV0
dXJuIE5vbmUsIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlv
bkVycm9yKCJjYW4ndCBoYW5kbGUgJXMiICUobm9kZSwpKQorCisgICAgZGVmIF9jb21waWxlKHNl
bGYsIHNvdXJjZSwgbW9kZT0iZXZhbCIpOgorICAgICAgICByZXR1cm4gY29tcGlsZShzb3VyY2Us
ICI8YXNzZXJ0aW9uIGludGVycHJldGF0aW9uPiIsIG1vZGUpCisKKyAgICBkZWYgdmlzaXRfRXhw
cihzZWxmLCBleHByKToKKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXQoZXhwci52YWx1ZSkKKwor
ICAgIGRlZiB2aXNpdF9Nb2R1bGUoc2VsZiwgbW9kKToKKyAgICAgICAgZm9yIHN0bXQgaW4gbW9k
LmJvZHk6CisgICAgICAgICAgICBzZWxmLnZpc2l0KHN0bXQpCisKKyAgICBkZWYgdmlzaXRfTmFt
ZShzZWxmLCBuYW1lKToKKyAgICAgICAgZXhwbGFuYXRpb24sIHJlc3VsdCA9IHNlbGYuZ2VuZXJp
Y192aXNpdChuYW1lKQorICAgICAgICAjIFNlZSBpZiB0aGUgbmFtZSBpcyBsb2NhbC4KKyAgICAg
ICAgc291cmNlID0gIiVyIGluIGxvY2FscygpIGlzIG5vdCBnbG9iYWxzKCkiICUgKG5hbWUuaWQs
KQorICAgICAgICBjbyA9IHNlbGYuX2NvbXBpbGUoc291cmNlKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBsb2NhbCA9IHNlbGYuZnJhbWUuZXZhbChjbykKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgICMgaGF2ZSB0byBhc3N1bWUgaXQgaXNuJ3QKKyAgICAgICAgICAg
IGxvY2FsID0gRmFsc2UKKyAgICAgICAgaWYgbm90IGxvY2FsOgorICAgICAgICAgICAgcmV0dXJu
IG5hbWUuaWQsIHJlc3VsdAorICAgICAgICByZXR1cm4gZXhwbGFuYXRpb24sIHJlc3VsdAorCisg
ICAgZGVmIHZpc2l0X0NvbXBhcmUoc2VsZiwgY29tcCk6CisgICAgICAgIGxlZnQgPSBjb21wLmxl
ZnQKKyAgICAgICAgbGVmdF9leHBsYW5hdGlvbiwgbGVmdF9yZXN1bHQgPSBzZWxmLnZpc2l0KGxl
ZnQpCisgICAgICAgIGZvciBvcCwgbmV4dF9vcCBpbiB6aXAoY29tcC5vcHMsIGNvbXAuY29tcGFy
YXRvcnMpOgorICAgICAgICAgICAgbmV4dF9leHBsYW5hdGlvbiwgbmV4dF9yZXN1bHQgPSBzZWxm
LnZpc2l0KG5leHRfb3ApCisgICAgICAgICAgICBvcF9zeW1ib2wgPSBvcGVyYXRvcl9tYXBbb3Au
X19jbGFzc19fXQorICAgICAgICAgICAgZXhwbGFuYXRpb24gPSAiJXMgJXMgJXMiICUgKGxlZnRf
ZXhwbGFuYXRpb24sIG9wX3N5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuZXh0X2V4cGxhbmF0aW9uKQorICAgICAgICAgICAgc291cmNlID0gIl9fZXhwcmlu
Zm9fbGVmdCAlcyBfX2V4cHJpbmZvX3JpZ2h0IiAlIChvcF9zeW1ib2wsKQorICAgICAgICAgICAg
Y28gPSBzZWxmLl9jb21waWxlKHNvdXJjZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBzZWxmLmZyYW1lLmV2YWwoY28sIF9fZXhwcmluZm9fbGVmdD1sZWZ0X3Jl
c3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19leHByaW5m
b19yaWdodD1uZXh0X3Jlc3VsdCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShleHBsYW5hdGlvbikKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAg
IHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAg
ICAgICAgIGxlZnRfZXhwbGFuYXRpb24sIGxlZnRfcmVzdWx0ID0gbmV4dF9leHBsYW5hdGlvbiwg
bmV4dF9yZXN1bHQKKworICAgICAgICByY29tcCA9IHB5LmNvZGUuX3JlcHJjb21wYXJlCisgICAg
ICAgIGlmIHJjb21wOgorICAgICAgICAgICAgcmVzID0gcmNvbXAob3Bfc3ltYm9sLCBsZWZ0X3Jl
c3VsdCwgbmV4dF9yZXN1bHQpCisgICAgICAgICAgICBpZiByZXM6CisgICAgICAgICAgICAgICAg
ZXhwbGFuYXRpb24gPSByZXMKKyAgICAgICAgcmV0dXJuIGV4cGxhbmF0aW9uLCByZXN1bHQKKwor
ICAgIGRlZiB2aXNpdF9Cb29sT3Aoc2VsZiwgYm9vbG9wKToKKyAgICAgICAgaXNfb3IgPSBpc2lu
c3RhbmNlKGJvb2xvcC5vcCwgYXN0Lk9yKQorICAgICAgICBleHBsYW5hdGlvbnMgPSBbXQorICAg
ICAgICBmb3Igb3BlcmFuZCBpbiBib29sb3AudmFsdWVzOgorICAgICAgICAgICAgZXhwbGFuYXRp
b24sIHJlc3VsdCA9IHNlbGYudmlzaXQob3BlcmFuZCkKKyAgICAgICAgICAgIGV4cGxhbmF0aW9u
cy5hcHBlbmQoZXhwbGFuYXRpb24pCisgICAgICAgICAgICBpZiByZXN1bHQgPT0gaXNfb3I6Cisg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgbmFtZSA9IGlzX29yIGFuZCAiIG9yICIgb3Ig
IiBhbmQgIgorICAgICAgICBleHBsYW5hdGlvbiA9ICIoIiArIG5hbWUuam9pbihleHBsYW5hdGlv
bnMpICsgIikiCisgICAgICAgIHJldHVybiBleHBsYW5hdGlvbiwgcmVzdWx0CisKKyAgICBkZWYg
dmlzaXRfVW5hcnlPcChzZWxmLCB1bmFyeSk6CisgICAgICAgIHBhdHRlcm4gPSB1bmFyeV9tYXBb
dW5hcnkub3AuX19jbGFzc19fXQorICAgICAgICBvcGVyYW5kX2V4cGxhbmF0aW9uLCBvcGVyYW5k
X3Jlc3VsdCA9IHNlbGYudmlzaXQodW5hcnkub3BlcmFuZCkKKyAgICAgICAgZXhwbGFuYXRpb24g
PSBwYXR0ZXJuICUgKG9wZXJhbmRfZXhwbGFuYXRpb24sKQorICAgICAgICBjbyA9IHNlbGYuX2Nv
bXBpbGUocGF0dGVybiAlICgiX19leHByaW5mb19leHByIiwpKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXN1bHQgPSBzZWxmLmZyYW1lLmV2YWwoY28sIF9fZXhwcmluZm9fZXhwcj1vcGVy
YW5kX3Jlc3VsdCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJhaXNl
IEZhaWx1cmUoZXhwbGFuYXRpb24pCisgICAgICAgIHJldHVybiBleHBsYW5hdGlvbiwgcmVzdWx0
CisKKyAgICBkZWYgdmlzaXRfQmluT3Aoc2VsZiwgYmlub3ApOgorICAgICAgICBsZWZ0X2V4cGxh
bmF0aW9uLCBsZWZ0X3Jlc3VsdCA9IHNlbGYudmlzaXQoYmlub3AubGVmdCkKKyAgICAgICAgcmln
aHRfZXhwbGFuYXRpb24sIHJpZ2h0X3Jlc3VsdCA9IHNlbGYudmlzaXQoYmlub3AucmlnaHQpCisg
ICAgICAgIHN5bWJvbCA9IG9wZXJhdG9yX21hcFtiaW5vcC5vcC5fX2NsYXNzX19dCisgICAgICAg
IGV4cGxhbmF0aW9uID0gIiglcyAlcyAlcykiICUgKGxlZnRfZXhwbGFuYXRpb24sIHN5bWJvbCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRfZXhwbGFuYXRpb24p
CisgICAgICAgIHNvdXJjZSA9ICJfX2V4cHJpbmZvX2xlZnQgJXMgX19leHByaW5mb19yaWdodCIg
JSAoc3ltYm9sLCkKKyAgICAgICAgY28gPSBzZWxmLl9jb21waWxlKHNvdXJjZSkKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5mcmFtZS5ldmFsKGNvLCBfX2V4cHJpbmZv
X2xlZnQ9bGVmdF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X19leHByaW5mb19yaWdodD1yaWdodF9yZXN1bHQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgICAgICByYWlzZSBGYWlsdXJlKGV4cGxhbmF0aW9uKQorICAgICAgICByZXR1cm4g
ZXhwbGFuYXRpb24sIHJlc3VsdAorCisgICAgZGVmIHZpc2l0X0NhbGwoc2VsZiwgY2FsbCk6Cisg
ICAgICAgIGZ1bmNfZXhwbGFuYXRpb24sIGZ1bmMgPSBzZWxmLnZpc2l0KGNhbGwuZnVuYykKKyAg
ICAgICAgYXJnX2V4cGxhbmF0aW9ucyA9IFtdCisgICAgICAgIG5zID0geyJfX2V4cHJpbmZvX2Z1
bmMiIDogZnVuY30KKyAgICAgICAgYXJndW1lbnRzID0gW10KKyAgICAgICAgZm9yIGFyZyBpbiBj
YWxsLmFyZ3M6CisgICAgICAgICAgICBhcmdfZXhwbGFuYXRpb24sIGFyZ19yZXN1bHQgPSBzZWxm
LnZpc2l0KGFyZykKKyAgICAgICAgICAgIGFyZ19uYW1lID0gIl9fZXhwcmluZm9fJXMiICUgKGxl
bihucyksKQorICAgICAgICAgICAgbnNbYXJnX25hbWVdID0gYXJnX3Jlc3VsdAorICAgICAgICAg
ICAgYXJndW1lbnRzLmFwcGVuZChhcmdfbmFtZSkKKyAgICAgICAgICAgIGFyZ19leHBsYW5hdGlv
bnMuYXBwZW5kKGFyZ19leHBsYW5hdGlvbikKKyAgICAgICAgZm9yIGtleXdvcmQgaW4gY2FsbC5r
ZXl3b3JkczoKKyAgICAgICAgICAgIGFyZ19leHBsYW5hdGlvbiwgYXJnX3Jlc3VsdCA9IHNlbGYu
dmlzaXQoa2V5d29yZC52YWx1ZSkKKyAgICAgICAgICAgIGFyZ19uYW1lID0gIl9fZXhwcmluZm9f
JXMiICUgKGxlbihucyksKQorICAgICAgICAgICAgbnNbYXJnX25hbWVdID0gYXJnX3Jlc3VsdAor
ICAgICAgICAgICAga2V5d29yZF9zb3VyY2UgPSAiJXM9JSVzIiAlIChrZXl3b3JkLmFyZykKKyAg
ICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoa2V5d29yZF9zb3VyY2UgJSAoYXJnX25hbWUsKSkK
KyAgICAgICAgICAgIGFyZ19leHBsYW5hdGlvbnMuYXBwZW5kKGtleXdvcmRfc291cmNlICUgKGFy
Z19leHBsYW5hdGlvbiwpKQorICAgICAgICBpZiBjYWxsLnN0YXJhcmdzOgorICAgICAgICAgICAg
YXJnX2V4cGxhbmF0aW9uLCBhcmdfcmVzdWx0ID0gc2VsZi52aXNpdChjYWxsLnN0YXJhcmdzKQor
ICAgICAgICAgICAgYXJnX25hbWUgPSAiX19leHByaW5mb19zdGFyIgorICAgICAgICAgICAgbnNb
YXJnX25hbWVdID0gYXJnX3Jlc3VsdAorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZCgiKiVz
IiAlIChhcmdfbmFtZSwpKQorICAgICAgICAgICAgYXJnX2V4cGxhbmF0aW9ucy5hcHBlbmQoIiol
cyIgJSAoYXJnX2V4cGxhbmF0aW9uLCkpCisgICAgICAgIGlmIGNhbGwua3dhcmdzOgorICAgICAg
ICAgICAgYXJnX2V4cGxhbmF0aW9uLCBhcmdfcmVzdWx0ID0gc2VsZi52aXNpdChjYWxsLmt3YXJn
cykKKyAgICAgICAgICAgIGFyZ19uYW1lID0gIl9fZXhwcmluZm9fa3dkcyIKKyAgICAgICAgICAg
IG5zW2FyZ19uYW1lXSA9IGFyZ19yZXN1bHQKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
IioqJXMiICUgKGFyZ19uYW1lLCkpCisgICAgICAgICAgICBhcmdfZXhwbGFuYXRpb25zLmFwcGVu
ZCgiKiolcyIgJSAoYXJnX2V4cGxhbmF0aW9uLCkpCisgICAgICAgIGFyZ3NfZXhwbGFpbmVkID0g
IiwgIi5qb2luKGFyZ19leHBsYW5hdGlvbnMpCisgICAgICAgIGV4cGxhbmF0aW9uID0gIiVzKCVz
KSIgJSAoZnVuY19leHBsYW5hdGlvbiwgYXJnc19leHBsYWluZWQpCisgICAgICAgIGFyZ3MgPSAi
LCAiLmpvaW4oYXJndW1lbnRzKQorICAgICAgICBzb3VyY2UgPSAiX19leHByaW5mb19mdW5jKCVz
KSIgJSAoYXJncywpCisgICAgICAgIGNvID0gc2VsZi5fY29tcGlsZShzb3VyY2UpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZnJhbWUuZXZhbChjbywgKipucykKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoZXhwbGFu
YXRpb24pCisgICAgICAgIHBhdHRlcm4gPSAiJXNcbnslcyA9ICVzXG59IgorICAgICAgICByZXAg
PSBzZWxmLmZyYW1lLnJlcHIocmVzdWx0KQorICAgICAgICBleHBsYW5hdGlvbiA9IHBhdHRlcm4g
JSAocmVwLCByZXAsIGV4cGxhbmF0aW9uKQorICAgICAgICByZXR1cm4gZXhwbGFuYXRpb24sIHJl
c3VsdAorCisgICAgZGVmIF9pc19idWlsdGluX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHBh
dHRlcm4gPSAiJXIgbm90IGluIGdsb2JhbHMoKSBhbmQgJXIgbm90IGluIGxvY2FscygpIgorICAg
ICAgICBzb3VyY2UgPSBwYXR0ZXJuICUgKG5hbWUuaWQsIG5hbWUuaWQpCisgICAgICAgIGNvID0g
c2VsZi5fY29tcGlsZShzb3VyY2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLmZyYW1lLmV2YWwoY28pCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgIGRlZiB2aXNpdF9BdHRyaWJ1dGUoc2VsZiwgYXR0cik6Cisg
ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGF0dHIuY3R4LCBhc3QuTG9hZCk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5nZW5lcmljX3Zpc2l0KGF0dHIpCisgICAgICAgIHNvdXJjZV9leHBsYW5h
dGlvbiwgc291cmNlX3Jlc3VsdCA9IHNlbGYudmlzaXQoYXR0ci52YWx1ZSkKKyAgICAgICAgZXhw
bGFuYXRpb24gPSAiJXMuJXMiICUgKHNvdXJjZV9leHBsYW5hdGlvbiwgYXR0ci5hdHRyKQorICAg
ICAgICBzb3VyY2UgPSAiX19leHByaW5mb19leHByLiVzIiAlIChhdHRyLmF0dHIsKQorICAgICAg
ICBjbyA9IHNlbGYuX2NvbXBpbGUoc291cmNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBy
ZXN1bHQgPSBzZWxmLmZyYW1lLmV2YWwoY28sIF9fZXhwcmluZm9fZXhwcj1zb3VyY2VfcmVzdWx0
KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShl
eHBsYW5hdGlvbikKKyAgICAgICAgZXhwbGFuYXRpb24gPSAiJXNcbnslcyA9ICVzLiVzXG59IiAl
IChzZWxmLmZyYW1lLnJlcHIocmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmZyYW1lLnJlcHIocmVzdWx0KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfZXhwbGFuYXRpb24sIGF0dHIu
YXR0cikKKyAgICAgICAgIyBDaGVjayBpZiB0aGUgYXR0ciBpcyBmcm9tIGFuIGluc3RhbmNlLgor
ICAgICAgICBzb3VyY2UgPSAiJXIgaW4gZ2V0YXR0cihfX2V4cHJpbmZvX2V4cHIsICdfX2RpY3Rf
XycsIHt9KSIKKyAgICAgICAgc291cmNlID0gc291cmNlICUgKGF0dHIuYXR0ciwpCisgICAgICAg
IGNvID0gc2VsZi5fY29tcGlsZShzb3VyY2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZy
b21faW5zdGFuY2UgPSBzZWxmLmZyYW1lLmV2YWwoY28sIF9fZXhwcmluZm9fZXhwcj1zb3VyY2Vf
cmVzdWx0KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgZnJvbV9pbnN0
YW5jZSA9IFRydWUKKyAgICAgICAgaWYgZnJvbV9pbnN0YW5jZToKKyAgICAgICAgICAgIHJlcCA9
IHNlbGYuZnJhbWUucmVwcihyZXN1bHQpCisgICAgICAgICAgICBwYXR0ZXJuID0gIiVzXG57JXMg
PSAlc1xufSIKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gcGF0dGVybiAlIChyZXAsIHJlcCwg
ZXhwbGFuYXRpb24pCisgICAgICAgIHJldHVybiBleHBsYW5hdGlvbiwgcmVzdWx0CisKKyAgICBk
ZWYgdmlzaXRfQXNzZXJ0KHNlbGYsIGFzc3J0KToKKyAgICAgICAgdGVzdF9leHBsYW5hdGlvbiwg
dGVzdF9yZXN1bHQgPSBzZWxmLnZpc2l0KGFzc3J0LnRlc3QpCisgICAgICAgIGlmIHRlc3RfZXhw
bGFuYXRpb24uc3RhcnRzd2l0aCgiRmFsc2VcbntGYWxzZSA9IikgYW5kIFwKKyAgICAgICAgICAg
ICAgICB0ZXN0X2V4cGxhbmF0aW9uLmVuZHN3aXRoKCJcbiIpOgorICAgICAgICAgICAgdGVzdF9l
eHBsYW5hdGlvbiA9IHRlc3RfZXhwbGFuYXRpb25bMTU6LTJdCisgICAgICAgIGV4cGxhbmF0aW9u
ID0gImFzc2VydCAlcyIgJSAodGVzdF9leHBsYW5hdGlvbiwpCisgICAgICAgIGlmIG5vdCB0ZXN0
X3Jlc3VsdDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByYWlzZSBCdWlsdGlu
QXNzZXJ0aW9uRXJyb3IKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg
ICAgICAgcmFpc2UgRmFpbHVyZShleHBsYW5hdGlvbikKKyAgICAgICAgcmV0dXJuIGV4cGxhbmF0
aW9uLCB0ZXN0X3Jlc3VsdAorCisgICAgZGVmIHZpc2l0X0Fzc2lnbihzZWxmLCBhc3NpZ24pOgor
ICAgICAgICB2YWx1ZV9leHBsYW5hdGlvbiwgdmFsdWVfcmVzdWx0ID0gc2VsZi52aXNpdChhc3Np
Z24udmFsdWUpCisgICAgICAgIGV4cGxhbmF0aW9uID0gIi4uLiA9ICVzIiAlICh2YWx1ZV9leHBs
YW5hdGlvbiwpCisgICAgICAgIG5hbWUgPSBhc3QuTmFtZSgiX19leHByaW5mb19leHByIiwgYXN0
LkxvYWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubz1hc3NpZ24udmFsdWUubGlu
ZW5vLAorICAgICAgICAgICAgICAgICAgICAgICAgY29sX29mZnNldD1hc3NpZ24udmFsdWUuY29s
X29mZnNldCkKKyAgICAgICAgbmV3X2Fzc2lnbiA9IGFzdC5Bc3NpZ24oYXNzaWduLnRhcmdldHMs
IG5hbWUsIGxpbmVubz1hc3NpZ24ubGluZW5vLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb2xfb2Zmc2V0PWFzc2lnbi5jb2xfb2Zmc2V0KQorICAgICAgICBtb2QgPSBhc3QuTW9k
dWxlKFtuZXdfYXNzaWduXSkKKyAgICAgICAgY28gPSBzZWxmLl9jb21waWxlKG1vZCwgImV4ZWMi
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmZyYW1lLmV4ZWNfKGNvLCBfX2V4cHJp
bmZvX2V4cHI9dmFsdWVfcmVzdWx0KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg
ICAgICAgcmFpc2UgRmFpbHVyZShleHBsYW5hdGlvbikKKyAgICAgICAgcmV0dXJuIGV4cGxhbmF0
aW9uLCB2YWx1ZV9yZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX2Fzc2VydGlv
bm9sZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX2Fzc2VydGlvbm9sZC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YmI3MGE4NzVkMDU5ZDY2NGM2NTE4NzAxOTYzODY0YWZhZDg2NTkzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ub2xkLnB5CkBAIC0wLDAgKzEsNTU2IEBACitp
bXBvcnQgcHkKK2ltcG9ydCBzeXMsIGluc3BlY3QKK2Zyb20gY29tcGlsZXIgaW1wb3J0IHBhcnNl
LCBhc3QsIHB5Y29kZWdlbgorZnJvbSBweS5fY29kZS5hc3NlcnRpb24gaW1wb3J0IEJ1aWx0aW5B
c3NlcnRpb25FcnJvciwgX2Zvcm1hdF9leHBsYW5hdGlvbgoraW1wb3J0IHR5cGVzCisKK3Bhc3N0
aHJvdWdoZXggPSBweS5idWlsdGluLl9zeXNleAorCitjbGFzcyBGYWlsdXJlOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBub2RlKToKKyAgICAgICAgc2VsZi5leGMsIHNlbGYudmFsdWUsIHNlbGYu
dGIgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICBzZWxmLm5vZGUgPSBub2RlCisKK2NsYXNzIFZp
ZXcob2JqZWN0KToKKyAgICAiIiJWaWV3IGJhc2UgY2xhc3MuCisKKyAgICBJZiBDIGlzIGEgc3Vi
Y2xhc3Mgb2YgVmlldywgdGhlbiBDKHgpIGNyZWF0ZXMgYSBwcm94eSBvYmplY3QgYXJvdW5kCisg
ICAgdGhlIG9iamVjdCB4LiAgVGhlIGFjdHVhbCBjbGFzcyBvZiB0aGUgcHJveHkgaXMgbm90IEMg
aW4gZ2VuZXJhbCwKKyAgICBidXQgYSAqc3ViY2xhc3MqIG9mIEMgZGV0ZXJtaW5lZCBieSB0aGUg
cnVsZXMgYmVsb3cuICBUbyBhdm9pZCBjb25mdXNpb24KKyAgICB3ZSBjYWxsIHZpZXcgY2xhc3Mg
dGhlIGNsYXNzIG9mIHRoZSBwcm94eSAoYSBzdWJjbGFzcyBvZiBDLCBzbyBvZiBWaWV3KQorICAg
IGFuZCBvYmplY3QgY2xhc3MgdGhlIGNsYXNzIG9mIHguCisKKyAgICBBdHRyaWJ1dGVzIGFuZCBt
ZXRob2RzIG5vdCBmb3VuZCBpbiB0aGUgcHJveHkgYXJlIGF1dG9tYXRpY2FsbHkgcmVhZCBvbiB4
LgorICAgIE90aGVyIG9wZXJhdGlvbnMgbGlrZSBzZXR0aW5nIGF0dHJpYnV0ZXMgYXJlIHBlcmZv
cm1lZCBvbiB0aGUgcHJveHksIGFzCisgICAgZGV0ZXJtaW5lZCBieSBpdHMgdmlldyBjbGFzcy4g
IFRoZSBvYmplY3QgeCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgcHJveHkKKyAgICBhcyBpdHMgX19v
YmpfXyBhdHRyaWJ1dGUuCisKKyAgICBUaGUgdmlldyBjbGFzcyBzZWxlY3Rpb24gaXMgZGV0ZXJt
aW5lZCBieSB0aGUgX192aWV3X18gdHVwbGVzIGFuZCB0aGUKKyAgICBvcHRpb25hbCBfX3ZpZXdr
ZXlfXyBtZXRob2QuICBCeSBkZWZhdWx0LCB0aGUgc2VsZWN0ZWQgdmlldyBjbGFzcyBpcyB0aGUK
KyAgICBtb3N0IHNwZWNpZmljIHN1YmNsYXNzIG9mIEMgd2hvc2UgX192aWV3X18gbWVudGlvbnMg
dGhlIGNsYXNzIG9mIHguCisgICAgSWYgbm8gc3VjaCBzdWJjbGFzcyBpcyBmb3VuZCwgdGhlIHNl
YXJjaCBwcm9jZWVkcyB3aXRoIHRoZSBwYXJlbnQKKyAgICBvYmplY3QgY2xhc3Nlcy4gIEZvciBl
eGFtcGxlLCBDKFRydWUpIHdpbGwgZmlyc3QgbG9vayBmb3IgYSBzdWJjbGFzcworICAgIG9mIEMg
d2l0aCBfX3ZpZXdfXyA9ICguLi4sIGJvb2wsIC4uLikgYW5kIG9ubHkgaWYgaXQgZG9lc24ndCBm
aW5kIGFueQorICAgIGxvb2sgZm9yIG9uZSB3aXRoIF9fdmlld19fID0gKC4uLiwgaW50LCAuLi4p
LCBhbmQgdGhlbiAuLi4sIG9iamVjdCwuLi4KKyAgICBJZiBldmVyeXRoaW5nIGZhaWxzIHRoZSBj
bGFzcyBDIGl0c2VsZiBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBkZWZhdWx0LgorCisgICAgQWx0
ZXJuYXRpdmVseSwgdGhlIHZpZXcgY2xhc3Mgc2VsZWN0aW9uIGNhbiBiZSBkcml2ZW4gYnkgYW5v
dGhlciBhc3BlY3QKKyAgICBvZiB0aGUgb2JqZWN0IHgsIGluc3RlYWQgb2YgdGhlIGNsYXNzIG9m
IHgsIGJ5IG92ZXJyaWRpbmcgX192aWV3a2V5X18uCisgICAgU2VlIGxhc3QgZXhhbXBsZSBhdCB0
aGUgZW5kIG9mIHRoaXMgbW9kdWxlLgorICAgICIiIgorCisgICAgX3ZpZXdjYWNoZSA9IHt9Cisg
ICAgX192aWV3X18gPSAoKQorCisgICAgZGVmIF9fbmV3X18ocm9vdGNsYXNzLCBvYmosICphcmdz
LCAqKmt3ZHMpOgorICAgICAgICBzZWxmID0gb2JqZWN0Ll9fbmV3X18ocm9vdGNsYXNzKQorICAg
ICAgICBzZWxmLl9fb2JqX18gPSBvYmoKKyAgICAgICAgc2VsZi5fX3Jvb3RjbGFzc19fID0gcm9v
dGNsYXNzCisgICAgICAgIGtleSA9IHNlbGYuX192aWV3a2V5X18oKQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZWxmLl9fY2xhc3NfXyA9IHNlbGYuX3ZpZXdjYWNoZVtrZXldCisgICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fID0gc2VsZi5fc2Vs
ZWN0c3ViY2xhc3Moa2V5KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZ2V0YXR0
cl9fKHNlbGYsIGF0dHIpOgorICAgICAgICAjIGF0dHJpYnV0ZXMgbm90IGZvdW5kIGluIHRoZSBu
b3JtYWwgaGllcmFyY2h5IHJvb3RlZCBvbiBWaWV3CisgICAgICAgICMgYXJlIGxvb2tlZCB1cCBp
biB0aGUgb2JqZWN0J3MgcmVhbCBjbGFzcworICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLl9f
b2JqX18sIGF0dHIpCisKKyAgICBkZWYgX192aWV3a2V5X18oc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9fb2JqX18uX19jbGFzc19fCisKKyAgICBkZWYgX19tYXRjaGtleV9fKHNlbGYsIGtl
eSwgc3ViY2xhc3Nlcyk6CisgICAgICAgIGlmIGluc3BlY3QuaXNjbGFzcyhrZXkpOgorICAgICAg
ICAgICAga2V5cyA9IGluc3BlY3QuZ2V0bXJvKGtleSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGtleXMgPSBba2V5XQorICAgICAgICBmb3Iga2V5IGluIGtleXM6CisgICAgICAgICAgICBy
ZXN1bHQgPSBbQyBmb3IgQyBpbiBzdWJjbGFzc2VzIGlmIGtleSBpbiBDLl9fdmlld19fXQorICAg
ICAgICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAg
ICAgcmV0dXJuIFtdCisKKyAgICBkZWYgX3NlbGVjdHN1YmNsYXNzKHNlbGYsIGtleSk6CisgICAg
ICAgIHN1YmNsYXNzZXMgPSBsaXN0KGVudW1zdWJjbGFzc2VzKHNlbGYuX19yb290Y2xhc3NfXykp
CisgICAgICAgIGZvciBDIGluIHN1YmNsYXNzZXM6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShDLl9fdmlld19fLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgQy5fX3ZpZXdfXyA9IChD
Ll9fdmlld19fLCkKKyAgICAgICAgY2hvaWNlcyA9IHNlbGYuX19tYXRjaGtleV9fKGtleSwgc3Vi
Y2xhc3NlcykKKyAgICAgICAgaWYgbm90IGNob2ljZXM6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fX3Jvb3RjbGFzc19fCisgICAgICAgIGVsaWYgbGVuKGNob2ljZXMpID09IDE6CisgICAgICAg
ICAgICByZXR1cm4gY2hvaWNlc1swXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBjb21i
aW5lIHRoZSBtdWx0aXBsZSBjaG9pY2VzCisgICAgICAgICAgICByZXR1cm4gdHlwZSgnPycsIHR1
cGxlKGNob2ljZXMpLCB7fSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuICclcyglciknICUgKHNlbGYuX19yb290Y2xhc3NfXy5fX25hbWVfXywgc2VsZi5fX29ial9f
KQorCisKK2RlZiBlbnVtc3ViY2xhc3NlcyhjbHMpOgorICAgIGZvciBzdWJjbHMgaW4gY2xzLl9f
c3ViY2xhc3Nlc19fKCk6CisgICAgICAgIGZvciBzdWJzdWJjbGFzcyBpbiBlbnVtc3ViY2xhc3Nl
cyhzdWJjbHMpOgorICAgICAgICAgICAgeWllbGQgc3Vic3ViY2xhc3MKKyAgICB5aWVsZCBjbHMK
KworCitjbGFzcyBJbnRlcnByZXRhYmxlKFZpZXcpOgorICAgICIiIkEgcGFyc2UgdHJlZSBub2Rl
IHdpdGggYSBmZXcgZXh0cmEgbWV0aG9kcy4iIiIKKyAgICBleHBsYW5hdGlvbiA9IE5vbmUKKwor
ICAgIGRlZiBpc19idWlsdGluKHNlbGYsIGZyYW1lKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSk6CisgICAgICAgICMgZmFsbC1iYWNrIGZvciB1bmtu
b3duIGV4cHJlc3Npb24gbm9kZXMKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhwciA9IGFz
dC5FeHByZXNzaW9uKHNlbGYuX19vYmpfXykKKyAgICAgICAgICAgIGV4cHIuZmlsZW5hbWUgPSAn
PGV2YWw+JworICAgICAgICAgICAgc2VsZi5fX29ial9fLmZpbGVuYW1lID0gJzxldmFsPicKKyAg
ICAgICAgICAgIGNvID0gcHljb2RlZ2VuLkV4cHJlc3Npb25Db2RlR2VuZXJhdG9yKGV4cHIpLmdl
dENvZGUoKQorICAgICAgICAgICAgcmVzdWx0ID0gZnJhbWUuZXZhbChjbykKKyAgICAgICAgZXhj
ZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6Cisg
ICAgICAgICAgICByYWlzZSBGYWlsdXJlKHNlbGYpCisgICAgICAgIHNlbGYucmVzdWx0ID0gcmVz
dWx0CisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSBzZWxmLmV4cGxhbmF0aW9uIG9yIGZyYW1l
LnJlcHIoc2VsZi5yZXN1bHQpCisKKyAgICBkZWYgcnVuKHNlbGYsIGZyYW1lKToKKyAgICAgICAg
IyBmYWxsLWJhY2sgZm9yIHVua25vd24gc3RhdGVtZW50IG5vZGVzCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGV4cHIgPSBhc3QuTW9kdWxlKE5vbmUsIGFzdC5TdG10KFtzZWxmLl9fb2JqX19d
KSkKKyAgICAgICAgICAgIGV4cHIuZmlsZW5hbWUgPSAnPHJ1bj4nCisgICAgICAgICAgICBjbyA9
IHB5Y29kZWdlbi5Nb2R1bGVDb2RlR2VuZXJhdG9yKGV4cHIpLmdldENvZGUoKQorICAgICAgICAg
ICAgZnJhbWUuZXhlY18oY28pCisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShz
ZWxmKQorCisgICAgZGVmIG5pY2VfZXhwbGFuYXRpb24oc2VsZik6CisgICAgICAgIHJldHVybiBf
Zm9ybWF0X2V4cGxhbmF0aW9uKHNlbGYuZXhwbGFuYXRpb24pCisKKworY2xhc3MgTmFtZShJbnRl
cnByZXRhYmxlKToKKyAgICBfX3ZpZXdfXyA9IGFzdC5OYW1lCisKKyAgICBkZWYgaXNfbG9jYWwo
c2VsZiwgZnJhbWUpOgorICAgICAgICBzb3VyY2UgPSAnJXIgaW4gbG9jYWxzKCkgaXMgbm90IGds
b2JhbHMoKScgJSBzZWxmLm5hbWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIGZy
YW1lLmlzX3RydWUoZnJhbWUuZXZhbChzb3VyY2UpKQorICAgICAgICBleGNlcHQgcGFzc3Rocm91
Z2hleDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgZGVmIGlzX2dsb2JhbChzZWxmLCBmcmFtZSk6CisgICAgICAgIHNv
dXJjZSA9ICclciBpbiBnbG9iYWxzKCknICUgc2VsZi5uYW1lCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHJldHVybiBmcmFtZS5pc190cnVlKGZyYW1lLmV2YWwoc291cmNlKSkKKyAgICAgICAg
ZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6
CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19idWlsdGluKHNlbGYsIGZy
YW1lKToKKyAgICAgICAgc291cmNlID0gJyVyIG5vdCBpbiBsb2NhbHMoKSBhbmQgJXIgbm90IGlu
IGdsb2JhbHMoKScgJSAoCisgICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYubmFtZSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIGZyYW1lLmlzX3RydWUoZnJhbWUuZXZhbChzb3Vy
Y2UpKQorICAgICAgICBleGNlcHQgcGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAgIHJhaXNlCisg
ICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGV2YWwo
c2VsZiwgZnJhbWUpOgorICAgICAgICBzdXBlcihOYW1lLCBzZWxmKS5ldmFsKGZyYW1lKQorICAg
ICAgICBpZiBub3Qgc2VsZi5pc19sb2NhbChmcmFtZSk6CisgICAgICAgICAgICBzZWxmLmV4cGxh
bmF0aW9uID0gc2VsZi5uYW1lCisKK2NsYXNzIENvbXBhcmUoSW50ZXJwcmV0YWJsZSk6CisgICAg
X192aWV3X18gPSBhc3QuQ29tcGFyZQorCisgICAgZGVmIGV2YWwoc2VsZiwgZnJhbWUpOgorICAg
ICAgICBleHByID0gSW50ZXJwcmV0YWJsZShzZWxmLmV4cHIpCisgICAgICAgIGV4cHIuZXZhbChm
cmFtZSkKKyAgICAgICAgZm9yIG9wZXJhdGlvbiwgZXhwcjIgaW4gc2VsZi5vcHM6CisgICAgICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYsICdyZXN1bHQnKToKKyAgICAgICAgICAgICAgICAjIHNob3J0
Y3V0dGluZyBpbiBjaGFpbmVkIGV4cHJlc3Npb25zCisgICAgICAgICAgICAgICAgaWYgbm90IGZy
YW1lLmlzX3RydWUoc2VsZi5yZXN1bHQpOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgZXhwcjIgPSBJbnRlcnByZXRhYmxlKGV4cHIyKQorICAgICAgICAgICAgZXhwcjIu
ZXZhbChmcmFtZSkKKyAgICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAiJXMgJXMgJXMiICUg
KAorICAgICAgICAgICAgICAgIGV4cHIuZXhwbGFuYXRpb24sIG9wZXJhdGlvbiwgZXhwcjIuZXhw
bGFuYXRpb24pCisgICAgICAgICAgICBzb3VyY2UgPSAiX19leHByaW5mb19sZWZ0ICVzIF9fZXhw
cmluZm9fcmlnaHQiICUgb3BlcmF0aW9uCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgc2VsZi5yZXN1bHQgPSBmcmFtZS5ldmFsKHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgX19leHByaW5mb19sZWZ0PWV4cHIucmVzdWx0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2V4cHJpbmZvX3JpZ2h0PWV4cHIy
LnJlc3VsdCkKKyAgICAgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAg
ICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcmFpc2UgRmFp
bHVyZShzZWxmKQorICAgICAgICAgICAgZXhwciA9IGV4cHIyCisKK2NsYXNzIEFuZChJbnRlcnBy
ZXRhYmxlKToKKyAgICBfX3ZpZXdfXyA9IGFzdC5BbmQKKworICAgIGRlZiBldmFsKHNlbGYsIGZy
YW1lKToKKyAgICAgICAgZXhwbGFuYXRpb25zID0gW10KKyAgICAgICAgZm9yIGV4cHIgaW4gc2Vs
Zi5ub2RlczoKKyAgICAgICAgICAgIGV4cHIgPSBJbnRlcnByZXRhYmxlKGV4cHIpCisgICAgICAg
ICAgICBleHByLmV2YWwoZnJhbWUpCisgICAgICAgICAgICBleHBsYW5hdGlvbnMuYXBwZW5kKGV4
cHIuZXhwbGFuYXRpb24pCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IGV4cHIucmVzdWx0Cisg
ICAgICAgICAgICBpZiBub3QgZnJhbWUuaXNfdHJ1ZShleHByLnJlc3VsdCk6CisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgc2VsZi5leHBsYW5hdGlvbiA9ICcoJyArICcgYW5kICcuam9p
bihleHBsYW5hdGlvbnMpICsgJyknCisKK2NsYXNzIE9yKEludGVycHJldGFibGUpOgorICAgIF9f
dmlld19fID0gYXN0Lk9yCisKKyAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSk6CisgICAgICAgIGV4
cGxhbmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBleHByIGluIHNlbGYubm9kZXM6CisgICAgICAg
ICAgICBleHByID0gSW50ZXJwcmV0YWJsZShleHByKQorICAgICAgICAgICAgZXhwci5ldmFsKGZy
YW1lKQorICAgICAgICAgICAgZXhwbGFuYXRpb25zLmFwcGVuZChleHByLmV4cGxhbmF0aW9uKQor
ICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBleHByLnJlc3VsdAorICAgICAgICAgICAgaWYgZnJh
bWUuaXNfdHJ1ZShleHByLnJlc3VsdCk6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
c2VsZi5leHBsYW5hdGlvbiA9ICcoJyArICcgb3IgJy5qb2luKGV4cGxhbmF0aW9ucykgKyAnKScK
KworCisjID09IFVuYXJ5IG9wZXJhdGlvbnMgPT0KK2tlZXBhbGl2ZSA9IFtdCitmb3IgYXN0Y2xh
c3MsIGFzdHBhdHRlcm4gaW4geworICAgIGFzdC5Ob3QgICAgOiAnbm90IF9fZXhwcmluZm9fZXhw
cicsCisgICAgYXN0LkludmVydCA6ICcofl9fZXhwcmluZm9fZXhwciknLAorICAgIH0uaXRlbXMo
KToKKworICAgIGNsYXNzIFVuYXJ5QXJpdGgoSW50ZXJwcmV0YWJsZSk6CisgICAgICAgIF9fdmll
d19fID0gYXN0Y2xhc3MKKworICAgICAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSwgYXN0cGF0dGVy
bj1hc3RwYXR0ZXJuKToKKyAgICAgICAgICAgIGV4cHIgPSBJbnRlcnByZXRhYmxlKHNlbGYuZXhw
cikKKyAgICAgICAgICAgIGV4cHIuZXZhbChmcmFtZSkKKyAgICAgICAgICAgIHNlbGYuZXhwbGFu
YXRpb24gPSBhc3RwYXR0ZXJuLnJlcGxhY2UoJ19fZXhwcmluZm9fZXhwcicsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIuZXhwbGFuYXRpb24p
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBmcmFtZS5l
dmFsKGFzdHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9fZXhwcmluZm9fZXhwcj1leHByLnJlc3VsdCkKKyAgICAgICAgICAgIGV4Y2VwdCBwYXNzdGhy
b3VnaGV4OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAg
ICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShzZWxmKQorCisgICAga2VlcGFsaXZlLmFwcGVuZChV
bmFyeUFyaXRoKQorCisjID09IEJpbmFyeSBvcGVyYXRpb25zID09Citmb3IgYXN0Y2xhc3MsIGFz
dHBhdHRlcm4gaW4geworICAgIGFzdC5BZGQgICAgOiAnKF9fZXhwcmluZm9fbGVmdCArIF9fZXhw
cmluZm9fcmlnaHQpJywKKyAgICBhc3QuU3ViICAgIDogJyhfX2V4cHJpbmZvX2xlZnQgLSBfX2V4
cHJpbmZvX3JpZ2h0KScsCisgICAgYXN0Lk11bCAgICA6ICcoX19leHByaW5mb19sZWZ0ICogX19l
eHByaW5mb19yaWdodCknLAorICAgIGFzdC5EaXYgICAgOiAnKF9fZXhwcmluZm9fbGVmdCAvIF9f
ZXhwcmluZm9fcmlnaHQpJywKKyAgICBhc3QuTW9kICAgIDogJyhfX2V4cHJpbmZvX2xlZnQgJSBf
X2V4cHJpbmZvX3JpZ2h0KScsCisgICAgYXN0LlBvd2VyICA6ICcoX19leHByaW5mb19sZWZ0ICoq
IF9fZXhwcmluZm9fcmlnaHQpJywKKyAgICB9Lml0ZW1zKCk6CisKKyAgICBjbGFzcyBCaW5hcnlB
cml0aChJbnRlcnByZXRhYmxlKToKKyAgICAgICAgX192aWV3X18gPSBhc3RjbGFzcworCisgICAg
ICAgIGRlZiBldmFsKHNlbGYsIGZyYW1lLCBhc3RwYXR0ZXJuPWFzdHBhdHRlcm4pOgorICAgICAg
ICAgICAgbGVmdCA9IEludGVycHJldGFibGUoc2VsZi5sZWZ0KQorICAgICAgICAgICAgbGVmdC5l
dmFsKGZyYW1lKQorICAgICAgICAgICAgcmlnaHQgPSBJbnRlcnByZXRhYmxlKHNlbGYucmlnaHQp
CisgICAgICAgICAgICByaWdodC5ldmFsKGZyYW1lKQorICAgICAgICAgICAgc2VsZi5leHBsYW5h
dGlvbiA9IChhc3RwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBs
YWNlKCdfX2V4cHJpbmZvX2xlZnQnLCAgbGVmdCAuZXhwbGFuYXRpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCdfX2V4cHJpbmZvX3JpZ2h0JywgcmlnaHQuZXhw
bGFuYXRpb24pKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0
ID0gZnJhbWUuZXZhbChhc3RwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfX2V4cHJpbmZvX2xlZnQ9bGVmdC5yZXN1bHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF9fZXhwcmluZm9fcmlnaHQ9cmlnaHQucmVzdWx0KQor
ICAgICAgICAgICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICByYWlzZSBGYWlsdXJlKHNlbGYp
CisKKyAgICBrZWVwYWxpdmUuYXBwZW5kKEJpbmFyeUFyaXRoKQorCisKK2NsYXNzIENhbGxGdW5j
KEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0gYXN0LkNhbGxGdW5jCisKKyAgICBkZWYg
aXNfYm9vbChzZWxmLCBmcmFtZSk6CisgICAgICAgIHNvdXJjZSA9ICdpc2luc3RhbmNlKF9fZXhw
cmluZm9fdmFsdWUsIGJvb2wpJworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gZnJh
bWUuaXNfdHJ1ZShmcmFtZS5ldmFsKHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19leHByaW5mb192YWx1ZT1zZWxmLnJlc3VsdCkpCisgICAgICAg
IGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0
OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSk6
CisgICAgICAgIG5vZGUgPSBJbnRlcnByZXRhYmxlKHNlbGYubm9kZSkKKyAgICAgICAgbm9kZS5l
dmFsKGZyYW1lKQorICAgICAgICBleHBsYW5hdGlvbnMgPSBbXQorICAgICAgICB2YXJzID0geydf
X2V4cHJpbmZvX2ZuJzogbm9kZS5yZXN1bHR9CisgICAgICAgIHNvdXJjZSA9ICdfX2V4cHJpbmZv
X2ZuKCcKKyAgICAgICAgZm9yIGEgaW4gc2VsZi5hcmdzOgorICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShhLCBhc3QuS2V5d29yZCk6CisgICAgICAgICAgICAgICAga2V5d29yZCA9IGEubmFtZQor
ICAgICAgICAgICAgICAgIGEgPSBhLmV4cHIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAga2V5d29yZCA9IE5vbmUKKyAgICAgICAgICAgIGEgPSBJbnRlcnByZXRhYmxlKGEpCisg
ICAgICAgICAgICBhLmV2YWwoZnJhbWUpCisgICAgICAgICAgICBhcmduYW1lID0gJ19fZXhwcmlu
Zm9fJWQnICUgbGVuKHZhcnMpCisgICAgICAgICAgICB2YXJzW2FyZ25hbWVdID0gYS5yZXN1bHQK
KyAgICAgICAgICAgIGlmIGtleXdvcmQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzb3VyY2Ug
Kz0gYXJnbmFtZSArICcsJworICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9ucy5hcHBlbmQoYS5l
eHBsYW5hdGlvbikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc291cmNlICs9
ICclcz0lcywnICUgKGtleXdvcmQsIGFyZ25hbWUpCisgICAgICAgICAgICAgICAgZXhwbGFuYXRp
b25zLmFwcGVuZCgnJXM9JXMnICUgKGtleXdvcmQsIGEuZXhwbGFuYXRpb24pKQorICAgICAgICBp
ZiBzZWxmLnN0YXJfYXJnczoKKyAgICAgICAgICAgIHN0YXJfYXJncyA9IEludGVycHJldGFibGUo
c2VsZi5zdGFyX2FyZ3MpCisgICAgICAgICAgICBzdGFyX2FyZ3MuZXZhbChmcmFtZSkKKyAgICAg
ICAgICAgIGFyZ25hbWUgPSAnX19leHByaW5mb19zdGFyJworICAgICAgICAgICAgdmFyc1thcmdu
YW1lXSA9IHN0YXJfYXJncy5yZXN1bHQKKyAgICAgICAgICAgIHNvdXJjZSArPSAnKicgKyBhcmdu
YW1lICsgJywnCisgICAgICAgICAgICBleHBsYW5hdGlvbnMuYXBwZW5kKCcqJyArIHN0YXJfYXJn
cy5leHBsYW5hdGlvbikKKyAgICAgICAgaWYgc2VsZi5kc3Rhcl9hcmdzOgorICAgICAgICAgICAg
ZHN0YXJfYXJncyA9IEludGVycHJldGFibGUoc2VsZi5kc3Rhcl9hcmdzKQorICAgICAgICAgICAg
ZHN0YXJfYXJncy5ldmFsKGZyYW1lKQorICAgICAgICAgICAgYXJnbmFtZSA9ICdfX2V4cHJpbmZv
X2t3ZHMnCisgICAgICAgICAgICB2YXJzW2FyZ25hbWVdID0gZHN0YXJfYXJncy5yZXN1bHQKKyAg
ICAgICAgICAgIHNvdXJjZSArPSAnKionICsgYXJnbmFtZSArICcsJworICAgICAgICAgICAgZXhw
bGFuYXRpb25zLmFwcGVuZCgnKionICsgZHN0YXJfYXJncy5leHBsYW5hdGlvbikKKyAgICAgICAg
c2VsZi5leHBsYW5hdGlvbiA9ICIlcyglcykiICUgKAorICAgICAgICAgICAgbm9kZS5leHBsYW5h
dGlvbiwgJywgJy5qb2luKGV4cGxhbmF0aW9ucykpCisgICAgICAgIGlmIHNvdXJjZS5lbmRzd2l0
aCgnLCcpOgorICAgICAgICAgICAgc291cmNlID0gc291cmNlWzotMV0KKyAgICAgICAgc291cmNl
ICs9ICcpJworICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IGZyYW1lLmV2
YWwoc291cmNlLCAqKnZhcnMpCisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShz
ZWxmKQorICAgICAgICBpZiBub3Qgbm9kZS5pc19idWlsdGluKGZyYW1lKSBvciBub3Qgc2VsZi5p
c19ib29sKGZyYW1lKToKKyAgICAgICAgICAgIHIgPSBmcmFtZS5yZXByKHNlbGYucmVzdWx0KQor
ICAgICAgICAgICAgc2VsZi5leHBsYW5hdGlvbiA9ICclc1xueyVzID0gJXNcbn0nICUgKHIsIHIs
IHNlbGYuZXhwbGFuYXRpb24pCisKK2NsYXNzIEdldGF0dHIoSW50ZXJwcmV0YWJsZSk6CisgICAg
X192aWV3X18gPSBhc3QuR2V0YXR0cgorCisgICAgZGVmIGV2YWwoc2VsZiwgZnJhbWUpOgorICAg
ICAgICBleHByID0gSW50ZXJwcmV0YWJsZShzZWxmLmV4cHIpCisgICAgICAgIGV4cHIuZXZhbChm
cmFtZSkKKyAgICAgICAgc291cmNlID0gJ19fZXhwcmluZm9fZXhwci4lcycgJSBzZWxmLmF0dHJu
YW1lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gZnJhbWUuZXZhbChz
b3VyY2UsIF9fZXhwcmluZm9fZXhwcj1leHByLnJlc3VsdCkKKyAgICAgICAgZXhjZXB0IHBhc3N0
aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAg
ICByYWlzZSBGYWlsdXJlKHNlbGYpCisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAnJXMuJXMn
ICUgKGV4cHIuZXhwbGFuYXRpb24sIHNlbGYuYXR0cm5hbWUpCisgICAgICAgICMgaWYgdGhlIGF0
dHJpYnV0ZSBjb21lcyBmcm9tIHRoZSBpbnN0YW5jZSwgaXRzIHZhbHVlIGlzIGludGVyZXN0aW5n
CisgICAgICAgIHNvdXJjZSA9ICgnaGFzYXR0cihfX2V4cHJpbmZvX2V4cHIsICJfX2RpY3RfXyIp
IGFuZCAnCisgICAgICAgICAgICAgICAgICAnJXIgaW4gX19leHByaW5mb19leHByLl9fZGljdF9f
JyAlIHNlbGYuYXR0cm5hbWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZyb21faW5zdGFu
Y2UgPSBmcmFtZS5pc190cnVlKAorICAgICAgICAgICAgICAgIGZyYW1lLmV2YWwoc291cmNlLCBf
X2V4cHJpbmZvX2V4cHI9ZXhwci5yZXN1bHQpKQorICAgICAgICBleGNlcHQgcGFzc3Rocm91Z2hl
eDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGZyb21f
aW5zdGFuY2UgPSBUcnVlCisgICAgICAgIGlmIGZyb21faW5zdGFuY2U6CisgICAgICAgICAgICBy
ID0gZnJhbWUucmVwcihzZWxmLnJlc3VsdCkKKyAgICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb24g
PSAnJXNcbnslcyA9ICVzXG59JyAlIChyLCByLCBzZWxmLmV4cGxhbmF0aW9uKQorCisjID09IFJl
LWludGVycHJldGF0aW9uIG9mIGZ1bGwgc3RhdGVtZW50cyA9PQorCitjbGFzcyBBc3NlcnQoSW50
ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuQXNzZXJ0CisKKyAgICBkZWYgcnVuKHNl
bGYsIGZyYW1lKToKKyAgICAgICAgdGVzdCA9IEludGVycHJldGFibGUoc2VsZi50ZXN0KQorICAg
ICAgICB0ZXN0LmV2YWwoZnJhbWUpCisgICAgICAgICMgc2ltcGxpZnkgJ2Fzc2VydCBGYWxzZSB3
aGVyZSBGYWxzZSA9IC4uLicKKyAgICAgICAgaWYgKHRlc3QuZXhwbGFuYXRpb24uc3RhcnRzd2l0
aCgnRmFsc2VcbntGYWxzZSA9ICcpIGFuZAorICAgICAgICAgICAgdGVzdC5leHBsYW5hdGlvbi5l
bmRzd2l0aCgnXG59JykpOgorICAgICAgICAgICAgdGVzdC5leHBsYW5hdGlvbiA9IHRlc3QuZXhw
bGFuYXRpb25bMTU6LTJdCisgICAgICAgICMgcHJpbnQgdGhlIHJlc3VsdCBhcyAgJ2Fzc2VydCA8
ZXhwbGFuYXRpb24+JworICAgICAgICBzZWxmLnJlc3VsdCA9IHRlc3QucmVzdWx0CisgICAgICAg
IHNlbGYuZXhwbGFuYXRpb24gPSAnYXNzZXJ0ICcgKyB0ZXN0LmV4cGxhbmF0aW9uCisgICAgICAg
IGlmIG5vdCBmcmFtZS5pc190cnVlKHRlc3QucmVzdWx0KToKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICByYWlzZSBCdWlsdGluQXNzZXJ0aW9uRXJyb3IKKyAgICAgICAgICAgIGV4
Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBl
eGNlcHQ6CisgICAgICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShzZWxmKQorCitjbGFzcyBBc3Np
Z24oSW50ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuQXNzaWduCisKKyAgICBkZWYg
cnVuKHNlbGYsIGZyYW1lKToKKyAgICAgICAgZXhwciA9IEludGVycHJldGFibGUoc2VsZi5leHBy
KQorICAgICAgICBleHByLmV2YWwoZnJhbWUpCisgICAgICAgIHNlbGYucmVzdWx0ID0gZXhwci5y
ZXN1bHQKKyAgICAgICAgc2VsZi5leHBsYW5hdGlvbiA9ICcuLi4gPSAnICsgZXhwci5leHBsYW5h
dGlvbgorICAgICAgICAjIGZhbGwtYmFjay1ydW4gdGhlIHJlc3Qgb2YgdGhlIGFzc2lnbm1lbnQK
KyAgICAgICAgYXNzID0gYXN0LkFzc2lnbihzZWxmLm5vZGVzLCBhc3QuTmFtZSgnX19leHByaW5m
b19leHByJykpCisgICAgICAgIG1vZCA9IGFzdC5Nb2R1bGUoTm9uZSwgYXN0LlN0bXQoW2Fzc10p
KQorICAgICAgICBtb2QuZmlsZW5hbWUgPSAnPHJ1bj4nCisgICAgICAgIGNvID0gcHljb2RlZ2Vu
Lk1vZHVsZUNvZGVHZW5lcmF0b3IobW9kKS5nZXRDb2RlKCkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgZnJhbWUuZXhlY18oY28sIF9fZXhwcmluZm9fZXhwcj1leHByLnJlc3VsdCkKKyAgICAg
ICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNl
cHQ6CisgICAgICAgICAgICByYWlzZSBGYWlsdXJlKHNlbGYpCisKK2NsYXNzIERpc2NhcmQoSW50
ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuRGlzY2FyZAorCisgICAgZGVmIHJ1bihz
ZWxmLCBmcmFtZSk6CisgICAgICAgIGV4cHIgPSBJbnRlcnByZXRhYmxlKHNlbGYuZXhwcikKKyAg
ICAgICAgZXhwci5ldmFsKGZyYW1lKQorICAgICAgICBzZWxmLnJlc3VsdCA9IGV4cHIucmVzdWx0
CisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSBleHByLmV4cGxhbmF0aW9uCisKK2NsYXNzIFN0
bXQoSW50ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuU3RtdAorCisgICAgZGVmIHJ1
bihzZWxmLCBmcmFtZSk6CisgICAgICAgIGZvciBzdG10IGluIHNlbGYubm9kZXM6CisgICAgICAg
ICAgICBzdG10ID0gSW50ZXJwcmV0YWJsZShzdG10KQorICAgICAgICAgICAgc3RtdC5ydW4oZnJh
bWUpCisKKworZGVmIHJlcG9ydF9mYWlsdXJlKGUpOgorICAgIGV4cGxhbmF0aW9uID0gZS5ub2Rl
Lm5pY2VfZXhwbGFuYXRpb24oKQorICAgIGlmIGV4cGxhbmF0aW9uOgorICAgICAgICBleHBsYW5h
dGlvbiA9ICIsIGluOiAiICsgZXhwbGFuYXRpb24KKyAgICBlbHNlOgorICAgICAgICBleHBsYW5h
dGlvbiA9ICIiCisgICAgc3lzLnN0ZG91dC53cml0ZSgiJXM6ICVzJXNcbiIgJSAoZS5leGMuX19u
YW1lX18sIGUudmFsdWUsIGV4cGxhbmF0aW9uKSkKKworZGVmIGNoZWNrKHMsIGZyYW1lPU5vbmUp
OgorICAgIGlmIGZyYW1lIGlzIE5vbmU6CisgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgx
KQorICAgICAgICBmcmFtZSA9IHB5LmNvZGUuRnJhbWUoZnJhbWUpCisgICAgZXhwciA9IHBhcnNl
KHMsICdldmFsJykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShleHByLCBhc3QuRXhwcmVzc2lvbikK
KyAgICBub2RlID0gSW50ZXJwcmV0YWJsZShleHByLm5vZGUpCisgICAgdHJ5OgorICAgICAgICBu
b2RlLmV2YWwoZnJhbWUpCisgICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgIHJhaXNl
CisgICAgZXhjZXB0IEZhaWx1cmU6CisgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAg
ICAgICByZXBvcnRfZmFpbHVyZShlKQorICAgIGVsc2U6CisgICAgICAgIGlmIG5vdCBmcmFtZS5p
c190cnVlKG5vZGUucmVzdWx0KToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImFzc2Vy
dGlvbiBmYWlsZWQ6ICVzXG4iICUgbm9kZS5uaWNlX2V4cGxhbmF0aW9uKCkpCisKKworIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg
QVBJIC8gRW50cnkgcG9pbnRzCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitkZWYgaW50ZXJwcmV0KHNvdXJjZSwgZnJhbWUsIHNo
b3VsZF9mYWlsPUZhbHNlKToKKyAgICBtb2R1bGUgPSBJbnRlcnByZXRhYmxlKHBhcnNlKHNvdXJj
ZSwgJ2V4ZWMnKS5ub2RlKQorICAgICNwcmludCAiZ290IG1vZHVsZSIsIG1vZHVsZQorICAgIGlm
IGlzaW5zdGFuY2UoZnJhbWUsIHR5cGVzLkZyYW1lVHlwZSk6CisgICAgICAgIGZyYW1lID0gcHku
Y29kZS5GcmFtZShmcmFtZSkKKyAgICB0cnk6CisgICAgICAgIG1vZHVsZS5ydW4oZnJhbWUpCisg
ICAgZXhjZXB0IEZhaWx1cmU6CisgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAg
ICByZXR1cm4gZ2V0ZmFpbHVyZShlKQorICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAg
ICByYWlzZQorICAgIGV4Y2VwdDoKKyAgICAgICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICB0
cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICBpZiBzaG91bGRfZmFpbDoKKyAgICAgICAgcmV0dXJu
ICgiKGFzc2VydGlvbiBmYWlsZWQsIGJ1dCB3aGVuIGl0IHdhcyByZS1ydW4gZm9yICIKKyAgICAg
ICAgICAgICAgICAicHJpbnRpbmcgaW50ZXJtZWRpYXRlIHZhbHVlcywgaXQgZGlkIG5vdCBmYWls
LiAgU3VnZ2VzdGlvbnM6ICIKKyAgICAgICAgICAgICAgICAiY29tcHV0ZSBhc3NlcnQgZXhwcmVz
c2lvbiBiZWZvcmUgdGhlIGFzc2VydCBvciB1c2UgLS1ub21hZ2ljKSIpCisgICAgZWxzZToKKyAg
ICAgICAgcmV0dXJuIE5vbmUKKworZGVmIGdldG1zZyhleGNpbmZvKToKKyAgICBpZiBpc2luc3Rh
bmNlKGV4Y2luZm8sIHR1cGxlKToKKyAgICAgICAgZXhjaW5mbyA9IHB5LmNvZGUuRXhjZXB0aW9u
SW5mbyhleGNpbmZvKQorICAgICNmcmFtZSwgbGluZSA9IGdldHRibGluZSh0YikKKyAgICAjZnJh
bWUgPSBweS5jb2RlLkZyYW1lKGZyYW1lKQorICAgICNyZXR1cm4gaW50ZXJwcmV0KGxpbmUsIGZy
YW1lKQorCisgICAgdGIgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAgICBzb3VyY2UgPSBzdHIo
dGIuc3RhdGVtZW50KS5zdHJpcCgpCisgICAgeCA9IGludGVycHJldChzb3VyY2UsIHRiLmZyYW1l
LCBzaG91bGRfZmFpbD1UcnVlKQorICAgIGlmIG5vdCBpc2luc3RhbmNlKHgsIHN0cik6CisgICAg
ICAgIHJhaXNlIFR5cGVFcnJvcigiaW50ZXJwcmV0IHJldHVybmVkIG5vbi1zdHJpbmcgJXIiICUg
KHgsKSkKKyAgICByZXR1cm4geAorCitkZWYgZ2V0ZmFpbHVyZShlKToKKyAgICBleHBsYW5hdGlv
biA9IGUubm9kZS5uaWNlX2V4cGxhbmF0aW9uKCkKKyAgICBpZiBzdHIoZS52YWx1ZSk6CisgICAg
ICAgIGxpbmVzID0gZXhwbGFuYXRpb24uc3BsaXQoJ1xuJykKKyAgICAgICAgbGluZXNbMF0gKz0g
IiAgPDwgJXMiICUgKGUudmFsdWUsKQorICAgICAgICBleHBsYW5hdGlvbiA9ICdcbicuam9pbihs
aW5lcykKKyAgICB0ZXh0ID0gIiVzOiAlcyIgJSAoZS5leGMuX19uYW1lX18sIGV4cGxhbmF0aW9u
KQorICAgIGlmIHRleHQuc3RhcnRzd2l0aCgnQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCAnKToKKyAg
ICAgICAgdGV4dCA9IHRleHRbMTY6XQorICAgIHJldHVybiB0ZXh0CisKK2RlZiBydW4ocywgZnJh
bWU9Tm9uZSk6CisgICAgaWYgZnJhbWUgaXMgTm9uZToKKyAgICAgICAgZnJhbWUgPSBzeXMuX2dl
dGZyYW1lKDEpCisgICAgICAgIGZyYW1lID0gcHkuY29kZS5GcmFtZShmcmFtZSkKKyAgICBtb2R1
bGUgPSBJbnRlcnByZXRhYmxlKHBhcnNlKHMsICdleGVjJykubm9kZSkKKyAgICB0cnk6CisgICAg
ICAgIG1vZHVsZS5ydW4oZnJhbWUpCisgICAgZXhjZXB0IEZhaWx1cmU6CisgICAgICAgIGUgPSBz
eXMuZXhjX2luZm8oKVsxXQorICAgICAgICByZXBvcnRfZmFpbHVyZShlKQorCisKK2lmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6CisgICAgIyBleGFtcGxlOgorICAgIGRlZiBmKCk6CisgICAgICAg
IHJldHVybiA1CisgICAgZGVmIGcoKToKKyAgICAgICAgcmV0dXJuIDMKKyAgICBkZWYgaCh4KToK
KyAgICAgICAgcmV0dXJuICduZXZlcicKKyAgICBjaGVjaygiZigpICogZygpID09IDUiKQorICAg
IGNoZWNrKCJub3QgZigpIikKKyAgICBjaGVjaygibm90IChmKCkgYW5kIGcoKSBvciAwKSIpCisg
ICAgY2hlY2soImYoKSA9PSBnKCkiKQorICAgIGkgPSA0CisgICAgY2hlY2soImkgPT0gZigpIikK
KyAgICBjaGVjaygibGVuKGYoKSkgPT0gMCIpCisgICAgY2hlY2soImlzaW5zdGFuY2UoMiszKzQs
IGZsb2F0KSIpCisKKyAgICBydW4oInggPSBpIikKKyAgICBjaGVjaygieCA9PSA1IikKKworICAg
IHJ1bigiYXNzZXJ0IG5vdCBmKCksICdvb3BzJyIpCisgICAgcnVuKCJhLCBiLCBjID0gMSwgMiIp
CisgICAgcnVuKCJhLCBiLCBjID0gZigpIikKKworICAgIGNoZWNrKCJtYXgoW2YoKSxnKCldKSA9
PSA0IikKKyAgICBjaGVjaygiJ2hlbGxvJ1tnKCldID09ICdoJyIpCisgICAgcnVuKCInZ3VrJWQn
ICUgaChmKCkpIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX3B5MnRyYWNlYmFjay5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2NvZGUvX3B5MnRyYWNlYmFjay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjVlMjdj
YjczMDc3YmJkMzNiYzBmYWQwZDIwYTg5ZTQ0M2JlZjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fY29kZS9fcHkydHJhY2ViYWNrLnB5CkBAIC0wLDAgKzEsNzkgQEAKKyMgY29waWVk
IGZyb20gcHl0aG9uLTIuNy4zJ3MgdHJhY2ViYWNrLnB5CisjIENIQU5HRVM6CisjIC0gc29tZV9z
dHIgaXMgcmVwbGFjZWQsIHRyeWluZyB0byBjcmVhdGUgdW5pY29kZSBzdHJpbmdzCisjCitpbXBv
cnQgdHlwZXMKKworZGVmIGZvcm1hdF9leGNlcHRpb25fb25seShldHlwZSwgdmFsdWUpOgorICAg
ICIiIkZvcm1hdCB0aGUgZXhjZXB0aW9uIHBhcnQgb2YgYSB0cmFjZWJhY2suCisKKyAgICBUaGUg
YXJndW1lbnRzIGFyZSB0aGUgZXhjZXB0aW9uIHR5cGUgYW5kIHZhbHVlIHN1Y2ggYXMgZ2l2ZW4g
YnkKKyAgICBzeXMubGFzdF90eXBlIGFuZCBzeXMubGFzdF92YWx1ZS4gVGhlIHJldHVybiB2YWx1
ZSBpcyBhIGxpc3Qgb2YKKyAgICBzdHJpbmdzLCBlYWNoIGVuZGluZyBpbiBhIG5ld2xpbmUuCisK
KyAgICBOb3JtYWxseSwgdGhlIGxpc3QgY29udGFpbnMgYSBzaW5nbGUgc3RyaW5nOyBob3dldmVy
LCBmb3IKKyAgICBTeW50YXhFcnJvciBleGNlcHRpb25zLCBpdCBjb250YWlucyBzZXZlcmFsIGxp
bmVzIHRoYXQgKHdoZW4KKyAgICBwcmludGVkKSBkaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9u
IGFib3V0IHdoZXJlIHRoZSBzeW50YXgKKyAgICBlcnJvciBvY2N1cnJlZC4KKworICAgIFRoZSBt
ZXNzYWdlIGluZGljYXRpbmcgd2hpY2ggZXhjZXB0aW9uIG9jY3VycmVkIGlzIGFsd2F5cyB0aGUg
bGFzdAorICAgIHN0cmluZyBpbiB0aGUgbGlzdC4KKworICAgICIiIgorCisgICAgIyBBbiBpbnN0
YW5jZSBzaG91bGQgbm90IGhhdmUgYSBtZWFuaW5nZnVsIHZhbHVlIHBhcmFtZXRlciwgYnV0Cisg
ICAgIyBzb21ldGltZXMgZG9lcywgcGFydGljdWxhcmx5IGZvciBzdHJpbmcgZXhjZXB0aW9ucywg
c3VjaCBhcworICAgICMgPj4+IHJhaXNlIHN0cmluZzEsIHN0cmluZzIgICMgZGVwcmVjYXRlZAor
ICAgICMKKyAgICAjIENsZWFyIHRoZXNlIG91dCBmaXJzdCBiZWNhdXNlIGlzc3VidHlwZShzdHJp
bmcxLCBTeW50YXhFcnJvcikKKyAgICAjIHdvdWxkIHRocm93IGFub3RoZXIgZXhjZXB0aW9uIGFu
ZCBtYXNrIHRoZSBvcmlnaW5hbCBwcm9ibGVtLgorICAgIGlmIChpc2luc3RhbmNlKGV0eXBlLCBC
YXNlRXhjZXB0aW9uKSBvcgorICAgICAgICBpc2luc3RhbmNlKGV0eXBlLCB0eXBlcy5JbnN0YW5j
ZVR5cGUpIG9yCisgICAgICAgIGV0eXBlIGlzIE5vbmUgb3IgdHlwZShldHlwZSkgaXMgc3RyKToK
KyAgICAgICAgcmV0dXJuIFtfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKGV0eXBlLCB2YWx1ZSldCisK
KyAgICBzdHlwZSA9IGV0eXBlLl9fbmFtZV9fCisKKyAgICBpZiBub3QgaXNzdWJjbGFzcyhldHlw
ZSwgU3ludGF4RXJyb3IpOgorICAgICAgICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhjX2xpbmUo
c3R5cGUsIHZhbHVlKV0KKworICAgICMgSXQgd2FzIGEgc3ludGF4IGVycm9yOyBzaG93IGV4YWN0
bHkgd2hlcmUgdGhlIHByb2JsZW0gd2FzIGZvdW5kLgorICAgIGxpbmVzID0gW10KKyAgICB0cnk6
CisgICAgICAgIG1zZywgKGZpbGVuYW1lLCBsaW5lbm8sIG9mZnNldCwgYmFkbGluZSkgPSB2YWx1
ZS5hcmdzCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6Cisg
ICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUgb3IgIjxzdHJpbmc+IgorICAgICAgICBsaW5lcy5h
cHBlbmQoJyAgRmlsZSAiJXMiLCBsaW5lICVkXG4nICUgKGZpbGVuYW1lLCBsaW5lbm8pKQorICAg
ICAgICBpZiBiYWRsaW5lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcg
ICAgJXNcbicgJSBiYWRsaW5lLnN0cmlwKCkpCisgICAgICAgICAgICBpZiBvZmZzZXQgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9IGJhZGxpbmUucnN0cmlwKCdcbicp
WzpvZmZzZXRdLmxzdHJpcCgpCisgICAgICAgICAgICAgICAgIyBub24tc3BhY2Ugd2hpdGVzcGFj
ZSAobGlrZXMgdGFicykgbXVzdCBiZSBrZXB0IGZvciBhbGlnbm1lbnQKKyAgICAgICAgICAgICAg
ICBjYXJldHNwYWNlID0gKChjLmlzc3BhY2UoKSBhbmQgYyBvciAnICcpIGZvciBjIGluIGNhcmV0
c3BhY2UpCisgICAgICAgICAgICAgICAgIyBvbmx5IHRocmVlIHNwYWNlcyB0byBhY2NvdW50IGZv
ciBvZmZzZXQxID09IHBvcyAwCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAlc15c
bicgJSAnJy5qb2luKGNhcmV0c3BhY2UpKQorICAgICAgICB2YWx1ZSA9IG1zZworCisgICAgbGlu
ZXMuYXBwZW5kKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKSkKKyAgICByZXR1
cm4gbGluZXMKKworZGVmIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKToKKyAg
ICAiIiJSZXR1cm4gYSBsaXN0IG9mIGEgc2luZ2xlIGxpbmUgLS0gbm9ybWFsIGNhc2UgZm9yIGZv
cm1hdF9leGNlcHRpb25fb25seSIiIgorICAgIHZhbHVlc3RyID0gX3NvbWVfc3RyKHZhbHVlKQor
ICAgIGlmIHZhbHVlIGlzIE5vbmUgb3Igbm90IHZhbHVlc3RyOgorICAgICAgICBsaW5lID0gIiVz
XG4iICUgZXR5cGUKKyAgICBlbHNlOgorICAgICAgICBsaW5lID0gIiVzOiAlc1xuIiAlIChldHlw
ZSwgdmFsdWVzdHIpCisgICAgcmV0dXJuIGxpbmUKKworZGVmIF9zb21lX3N0cih2YWx1ZSk6Cisg
ICAgdHJ5OgorICAgICAgICByZXR1cm4gdW5pY29kZSh2YWx1ZSkKKyAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgIHJldHVybiAnPHVucHJp
bnRhYmxlICVzIG9iamVjdD4nICUgdHlwZSh2YWx1ZSkuX19uYW1lX18KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX2NvZGUvYXNzZXJ0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9hc3NlcnRpb24u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmYxNjQzNzk5YzllMDE1YThlMzUxYjg5OTU4YWUzZWI4MTExZDY2OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvYXNzZXJ0aW9uLnB5CkBAIC0wLDAg
KzEsOTAgQEAKK2ltcG9ydCBzeXMKK2ltcG9ydCBweQorCitCdWlsdGluQXNzZXJ0aW9uRXJyb3Ig
PSBweS5idWlsdGluLmJ1aWx0aW5zLkFzc2VydGlvbkVycm9yCisKK19yZXByY29tcGFyZSA9IE5v
bmUgIyBpZiBzZXQsIHdpbGwgYmUgY2FsbGVkIGJ5IGFzc2VydCByZWludGVycCBmb3IgY29tcGFy
aXNvbiBvcHMKKworZGVmIF9mb3JtYXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pOgorICAgICIi
IlRoaXMgZm9ybWF0cyBhbiBleHBsYW5hdGlvbgorCisgICAgTm9ybWFsbHkgYWxsIGVtYmVkZGVk
IG5ld2xpbmVzIGFyZSBlc2NhcGVkLCBob3dldmVyIHRoZXJlIGFyZQorICAgIHRocmVlIGV4Y2Vw
dGlvbnM6IFxueywgXG59IGFuZCBcbn4uICBUaGUgZmlyc3QgdHdvIGFyZSBpbnRlbmRlZAorICAg
IGNvdmVyIG5lc3RlZCBleHBsYW5hdGlvbnMsIHNlZSBmdW5jdGlvbiBhbmQgYXR0cmlidXRlIGV4
cGxhbmF0aW9ucworICAgIGZvciBleGFtcGxlcyAoLnZpc2l0X0NhbGwoKSwgdmlzaXRfQXR0cmli
dXRlKCkpLiAgVGhlIGxhc3Qgb25lIGlzCisgICAgZm9yIHdoZW4gb25lIGV4cGxhbmF0aW9uIG5l
ZWRzIHRvIHNwYW4gbXVsdGlwbGUgbGluZXMsIGUuZy4gd2hlbgorICAgIGRpc3BsYXlpbmcgZGlm
ZnMuCisgICAgIiIiCisgICAgcmF3X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yICcnKS5zcGxpdCgn
XG4nKQorICAgICMgZXNjYXBlIG5ld2xpbmVzIG5vdCBmb2xsb3dlZCBieSB7LCB9IGFuZCB+Cisg
ICAgbGluZXMgPSBbcmF3X2xpbmVzWzBdXQorICAgIGZvciBsIGluIHJhd19saW5lc1sxOl06Cisg
ICAgICAgIGlmIGwuc3RhcnRzd2l0aCgneycpIG9yIGwuc3RhcnRzd2l0aCgnfScpIG9yIGwuc3Rh
cnRzd2l0aCgnficpOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGwpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBsaW5lc1stMV0gKz0gJ1xcbicgKyBsCisKKyAgICByZXN1bHQgPSBsaW5l
c1s6MV0KKyAgICBzdGFjayA9IFswXQorICAgIHN0YWNrY250ID0gWzBdCisgICAgZm9yIGxpbmUg
aW4gbGluZXNbMTpdOgorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3snKToKKyAgICAgICAg
ICAgIGlmIHN0YWNrY250Wy0xXToKKyAgICAgICAgICAgICAgICBzID0gJ2FuZCAgICcKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcyA9ICd3aGVyZSAnCisgICAgICAgICAgICBz
dGFjay5hcHBlbmQobGVuKHJlc3VsdCkpCisgICAgICAgICAgICBzdGFja2NudFstMV0gKz0gMQor
ICAgICAgICAgICAgc3RhY2tjbnQuYXBwZW5kKDApCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgKycgKyAnICAnKihsZW4oc3RhY2spLTEpICsgcyArIGxpbmVbMTpdKQorICAgICAgICBlbGlm
IGxpbmUuc3RhcnRzd2l0aCgnfScpOgorICAgICAgICAgICAgYXNzZXJ0IGxpbmUuc3RhcnRzd2l0
aCgnfScpCisgICAgICAgICAgICBzdGFjay5wb3AoKQorICAgICAgICAgICAgc3RhY2tjbnQucG9w
KCkKKyAgICAgICAgICAgIHJlc3VsdFtzdGFja1stMV1dICs9IGxpbmVbMTpdCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBhc3NlcnQgbGluZS5zdGFydHN3aXRoKCd+JykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgJypsZW4oc3RhY2spICsgbGluZVsxOl0pCisgICAgYXNzZXJ0IGxl
bihzdGFjaykgPT0gMQorICAgIHJldHVybiAnXG4nLmpvaW4ocmVzdWx0KQorCisKK2NsYXNzIEFz
c2VydGlvbkVycm9yKEJ1aWx0aW5Bc3NlcnRpb25FcnJvcik6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzKToKKyAgICAgICAgQnVpbHRpbkFzc2VydGlvbkVycm9yLl9faW5pdF9fKHNlbGYs
ICphcmdzKQorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHNlbGYubXNnID0gc3RyKGFyZ3NbMF0pCisgICAgICAgICAgICBleGNlcHQgcHkuYnVpbHRp
bi5fc3lzZXg6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAg
ICAgICAgICAgICAgICBzZWxmLm1zZyA9ICI8W2Jyb2tlbiBfX3JlcHJfX10gJXMgYXQgJTB4ZD4i
ICUoCisgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0uX19jbGFzc19fLCBpZChhcmdzWzBdKSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGYgPSBweS5jb2RlLkZyYW1lKHN5cy5fZ2V0ZnJh
bWUoMSkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc291cmNlID0gZi5jb2Rl
LmZ1bGxzb3VyY2UKKyAgICAgICAgICAgICAgICBpZiBzb3VyY2UgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNv
dXJjZS5nZXRzdGF0ZW1lbnQoZi5saW5lbm8sIGFzc2VydGlvbj1UcnVlKQorICAgICAgICAgICAg
ICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZSA9IHN0cihzb3VyY2UuZGVpbmRlbnQoKSkuc3RyaXAoKQorICAgICAgICAgICAg
ZXhjZXB0IHB5LmVycm9yLkVOT0VOVDoKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBOb25lCisg
ICAgICAgICAgICAgICAgIyB0aGlzIGNhbiBhbHNvIG9jY3VyIGR1cmluZyByZWludGVycHJldGF0
aW9uLCB3aGVuIHRoZQorICAgICAgICAgICAgICAgICMgY29fZmlsZW5hbWUgaXMgc2V0IHRvICI8
cnVuPiIuCisgICAgICAgICAgICBpZiBzb3VyY2U6CisgICAgICAgICAgICAgICAgc2VsZi5tc2cg
PSByZWludGVycHJldChzb3VyY2UsIGYsIHNob3VsZF9mYWlsPVRydWUpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHNlbGYubXNnID0gIjxjb3VsZCBub3QgZGV0ZXJtaW5lIGlu
Zm9ybWF0aW9uPiIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmFyZ3M6CisgICAgICAgICAgICAg
ICAgc2VsZi5hcmdzID0gKHNlbGYubXNnLCkKKworaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAw
KToKKyAgICBBc3NlcnRpb25FcnJvci5fX21vZHVsZV9fID0gImJ1aWx0aW5zIgorICAgIHJlaW50
ZXJwcmV0X29sZCA9ICJvbGQgcmVpbnRlcnByZXRhdGlvbiBub3QgYXZhaWxhYmxlIGZvciBweTMi
CitlbHNlOgorICAgIGZyb20gcHkuX2NvZGUuX2Fzc2VydGlvbm9sZCBpbXBvcnQgaW50ZXJwcmV0
IGFzIHJlaW50ZXJwcmV0X29sZAorZnJvbSBweS5fY29kZS5fYXNzZXJ0aW9ubmV3IGltcG9ydCBp
bnRlcnByZXQgYXMgcmVpbnRlcnByZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvY29k
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvY29kZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWQ3OTYyODNmZTY0
Yzg5ZjVmOTlmMmJjNzJhZGM0YTc2NTdkMjM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fY29kZS9jb2RlLnB5CkBAIC0wLDAgKzEsNzk2IEBACitpbXBvcnQgcHkKK2ltcG9ydCBzeXMK
K2Zyb20gaW5zcGVjdCBpbXBvcnQgQ09fVkFSQVJHUywgQ09fVkFSS0VZV09SRFMsIGlzY2xhc3MK
KworYnVpbHRpbl9yZXByID0gcmVwcgorCityZXBybGliID0gcHkuYnVpbHRpbi5fdHJ5aW1wb3J0
KCdyZXByJywgJ3JlcHJsaWInKQorCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CisgICAg
ZnJvbSB0cmFjZWJhY2sgaW1wb3J0IGZvcm1hdF9leGNlcHRpb25fb25seQorZWxzZToKKyAgICBm
cm9tIHB5Ll9jb2RlLl9weTJ0cmFjZWJhY2sgaW1wb3J0IGZvcm1hdF9leGNlcHRpb25fb25seQor
CitpbXBvcnQgdHJhY2ViYWNrCisKKworY2xhc3MgQ29kZShvYmplY3QpOgorICAgICIiIiB3cmFw
cGVyIGFyb3VuZCBQeXRob24gY29kZSBvYmplY3RzICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByYXdjb2RlKToKKyAgICAgICAgaWYgbm90IGhhc2F0dHIocmF3Y29kZSwgImNvX2ZpbGVuYW1l
Iik6CisgICAgICAgICAgICByYXdjb2RlID0gcHkuY29kZS5nZXRyYXdjb2RlKHJhd2NvZGUpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSByYXdjb2RlLmNvX2ZpbGVu
YW1lCisgICAgICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gcmF3Y29kZS5jb19maXJzdGxpbmVu
byAtIDEKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IHJhd2NvZGUuY29fbmFtZQorICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vdCBh
IGNvZGUgb2JqZWN0OiAlciIgJSAocmF3Y29kZSwpKQorICAgICAgICBzZWxmLnJhdyA9IHJhd2Nv
ZGUKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi5y
YXcgPT0gb3RoZXIucmF3CisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAg
cmV0dXJuIG5vdCBzZWxmID09IG90aGVyCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGF0aChz
ZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBhIHBhdGggb2JqZWN0IHBvaW50aW5nIHRvIHNvdXJj
ZSBjb2RlIChub3RlIHRoYXQgaXQKKyAgICAgICAgbWlnaHQgbm90IHBvaW50IHRvIGFuIGFjdHVh
bGx5IGV4aXN0aW5nIGZpbGUpLiAiIiIKKyAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwoc2VsZi5y
YXcuY29fZmlsZW5hbWUpCisgICAgICAgICMgbWF5YmUgZG9uJ3QgdHJ5IHRoaXMgY2hlY2tpbmcK
KyAgICAgICAgaWYgbm90IHAuY2hlY2soKToKKyAgICAgICAgICAgICMgWFhYIG1heWJlIHRyeSBo
YXJkZXIgbGlrZSB0aGUgd2VpcmQgbG9naWMKKyAgICAgICAgICAgICMgaW4gdGhlIHN0YW5kYXJk
IGxpYiBbbGluZWNhY2hlLnVwZGF0ZWNhY2hlXSBkb2VzPworICAgICAgICAgICAgcCA9IHNlbGYu
cmF3LmNvX2ZpbGVuYW1lCisgICAgICAgIHJldHVybiBwCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgZnVsbHNvdXJjZShzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBhIHB5LmNvZGUuU291cmNl
IG9iamVjdCBmb3IgdGhlIGZ1bGwgc291cmNlIGZpbGUgb2YgdGhlIGNvZGUKKyAgICAgICAgIiIi
CisgICAgICAgIGZyb20gcHkuX2NvZGUgaW1wb3J0IHNvdXJjZQorICAgICAgICBmdWxsLCBfID0g
c291cmNlLmZpbmRzb3VyY2Uoc2VsZi5yYXcpCisgICAgICAgIHJldHVybiBmdWxsCisKKyAgICBk
ZWYgc291cmNlKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGEgcHkuY29kZS5Tb3VyY2Ugb2Jq
ZWN0IGZvciB0aGUgY29kZSBvYmplY3QncyBzb3VyY2Ugb25seQorICAgICAgICAiIiIKKyAgICAg
ICAgIyByZXR1cm4gc291cmNlIG9ubHkgZm9yIHRoYXQgcGFydCBvZiBjb2RlCisgICAgICAgIHJl
dHVybiBweS5jb2RlLlNvdXJjZShzZWxmLnJhdykKKworICAgIGRlZiBnZXRhcmdzKHNlbGYsIHZh
cj1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gYSB0dXBsZSB3aXRoIHRoZSBhcmd1bWVudCBu
YW1lcyBmb3IgdGhlIGNvZGUgb2JqZWN0CisKKyAgICAgICAgICAgIGlmICd2YXInIGlzIHNldCBU
cnVlIGFsc28gcmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgdmFyaWFibGUgYW5kCisgICAgICAgICAg
ICBrZXl3b3JkIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQKKyAgICAgICAgIiIiCisgICAgICAgICMg
aGFuZGZ1bGwgc2hvcnRjdXQgZm9yIGdldHRpbmcgYXJncworICAgICAgICByYXcgPSBzZWxmLnJh
dworICAgICAgICBhcmdjb3VudCA9IHJhdy5jb19hcmdjb3VudAorICAgICAgICBpZiB2YXI6Cisg
ICAgICAgICAgICBhcmdjb3VudCArPSByYXcuY29fZmxhZ3MgJiBDT19WQVJBUkdTCisgICAgICAg
ICAgICBhcmdjb3VudCArPSByYXcuY29fZmxhZ3MgJiBDT19WQVJLRVlXT1JEUworICAgICAgICBy
ZXR1cm4gcmF3LmNvX3Zhcm5hbWVzWzphcmdjb3VudF0KKworY2xhc3MgRnJhbWUob2JqZWN0KToK
KyAgICAiIiJXcmFwcGVyIGFyb3VuZCBhIFB5dGhvbiBmcmFtZSBob2xkaW5nIGZfbG9jYWxzIGFu
ZCBmX2dsb2JhbHMKKyAgICBpbiB3aGljaCBleHByZXNzaW9ucyBjYW4gYmUgZXZhbHVhdGVkLiIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZyYW1lKToKKyAgICAgICAgc2VsZi5saW5lbm8g
PSBmcmFtZS5mX2xpbmVubyAtIDEKKyAgICAgICAgc2VsZi5mX2dsb2JhbHMgPSBmcmFtZS5mX2ds
b2JhbHMKKyAgICAgICAgc2VsZi5mX2xvY2FscyA9IGZyYW1lLmZfbG9jYWxzCisgICAgICAgIHNl
bGYucmF3ID0gZnJhbWUKKyAgICAgICAgc2VsZi5jb2RlID0gcHkuY29kZS5Db2RlKGZyYW1lLmZf
Y29kZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzdGF0ZW1lbnQoc2VsZik6CisgICAgICAg
ICIiIiBzdGF0ZW1lbnQgdGhpcyBmcmFtZSBpcyBhdCAiIiIKKyAgICAgICAgaWYgc2VsZi5jb2Rl
LmZ1bGxzb3VyY2UgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBweS5jb2RlLlNvdXJjZSgi
IikKKyAgICAgICAgcmV0dXJuIHNlbGYuY29kZS5mdWxsc291cmNlLmdldHN0YXRlbWVudChzZWxm
LmxpbmVubykKKworICAgIGRlZiBldmFsKHNlbGYsIGNvZGUsICoqdmFycyk6CisgICAgICAgICIi
IiBldmFsdWF0ZSAnY29kZScgaW4gdGhlIGZyYW1lCisKKyAgICAgICAgICAgICd2YXJzJyBhcmUg
b3B0aW9uYWwgYWRkaXRpb25hbCBsb2NhbCB2YXJpYWJsZXMKKworICAgICAgICAgICAgcmV0dXJu
cyB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uCisgICAgICAgICIiIgorICAgICAgICBmX2xv
Y2FscyA9IHNlbGYuZl9sb2NhbHMuY29weSgpCisgICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJz
KQorICAgICAgICByZXR1cm4gZXZhbChjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCisK
KyAgICBkZWYgZXhlY18oc2VsZiwgY29kZSwgKip2YXJzKToKKyAgICAgICAgIiIiIGV4ZWMgJ2Nv
ZGUnIGluIHRoZSBmcmFtZQorCisgICAgICAgICAgICAndmFycycgYXJlIG9wdGlvbmE7IGFkZGl0
aW9uYWwgbG9jYWwgdmFyaWFibGVzCisgICAgICAgICIiIgorICAgICAgICBmX2xvY2FscyA9IHNl
bGYuZl9sb2NhbHMuY29weSgpCisgICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJzKQorICAgICAg
ICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIHNlbGYuZl9nbG9iYWxzLCBmX2xvY2FscykKKworICAg
IGRlZiByZXByKHNlbGYsIG9iamVjdCk6CisgICAgICAgICIiIiByZXR1cm4gYSAnc2FmZScgKG5v
bi1yZWN1cnNpdmUsIG9uZS1saW5lKSBzdHJpbmcgcmVwciBmb3IgJ29iamVjdCcKKyAgICAgICAg
IiIiCisgICAgICAgIHJldHVybiBweS5pby5zYWZlcmVwcihvYmplY3QpCisKKyAgICBkZWYgaXNf
dHJ1ZShzZWxmLCBvYmplY3QpOgorICAgICAgICByZXR1cm4gb2JqZWN0CisKKyAgICBkZWYgZ2V0
YXJncyhzZWxmLCB2YXI9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIGEgbGlzdCBvZiB0dXBs
ZXMgKG5hbWUsIHZhbHVlKSBmb3IgYWxsIGFyZ3VtZW50cworCisgICAgICAgICAgICBpZiAndmFy
JyBpcyBzZXQgVHJ1ZSBhbHNvIGluY2x1ZGUgdGhlIHZhcmlhYmxlIGFuZCBrZXl3b3JkCisgICAg
ICAgICAgICBhcmd1bWVudHMgd2hlbiBwcmVzZW50CisgICAgICAgICIiIgorICAgICAgICByZXR2
YWwgPSBbXQorICAgICAgICBmb3IgYXJnIGluIHNlbGYuY29kZS5nZXRhcmdzKHZhcik6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dmFsLmFwcGVuZCgoYXJnLCBzZWxmLmZf
bG9jYWxzW2FyZ10pKQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAg
ICAgIHBhc3MgICAgICMgdGhpcyBjYW4gb2NjdXIgd2hlbiB1c2luZyBQc3ljbworICAgICAgICBy
ZXR1cm4gcmV0dmFsCisKKworY2xhc3MgVHJhY2ViYWNrRW50cnkob2JqZWN0KToKKyAgICAiIiIg
YSBzaW5nbGUgZW50cnkgaW4gYSB0cmFjZWJhY2sgIiIiCisKKyAgICBfcmVwcl9zdHlsZSA9IE5v
bmUKKyAgICBleHByaW5mbyA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdlbnRy
eSk6CisgICAgICAgIHNlbGYuX3Jhd2VudHJ5ID0gcmF3ZW50cnkKKyAgICAgICAgc2VsZi5saW5l
bm8gPSByYXdlbnRyeS50Yl9saW5lbm8gLSAxCisKKyAgICBkZWYgc2V0X3JlcHJfc3R5bGUoc2Vs
ZiwgbW9kZSk6CisgICAgICAgIGFzc2VydCBtb2RlIGluICgic2hvcnQiLCAibG9uZyIpCisgICAg
ICAgIHNlbGYuX3JlcHJfc3R5bGUgPSBtb2RlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnJh
bWUoc2VsZik6CisgICAgICAgIHJldHVybiBweS5jb2RlLkZyYW1lKHNlbGYuX3Jhd2VudHJ5LnRi
X2ZyYW1lKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlbGxpbmUoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLmxpbmVubyAtIHNlbGYuZnJhbWUuY29kZS5maXJzdGxpbmVubworCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxUcmFjZWJhY2tFbnRyeSAlczol
ZD4iICUgKHNlbGYuZnJhbWUuY29kZS5wYXRoLCBzZWxmLmxpbmVubysxKQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHN0YXRlbWVudChzZWxmKToKKyAgICAgICAgIiIiIHB5LmNvZGUuU291cmNl
IG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgc3RhdGVtZW50ICIiIgorICAgICAgICBzb3VyY2UgPSBz
ZWxmLmZyYW1lLmNvZGUuZnVsbHNvdXJjZQorICAgICAgICByZXR1cm4gc291cmNlLmdldHN0YXRl
bWVudChzZWxmLmxpbmVubykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXRoKHNlbGYpOgor
ICAgICAgICAiIiIgcGF0aCB0byB0aGUgc291cmNlIGNvZGUgIiIiCisgICAgICAgIHJldHVybiBz
ZWxmLmZyYW1lLmNvZGUucGF0aAorCisgICAgZGVmIGdldGxvY2FscyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuZnJhbWUuZl9sb2NhbHMKKyAgICBsb2NhbHMgPSBwcm9wZXJ0eShnZXRsb2Nh
bHMsIE5vbmUsIE5vbmUsICJsb2NhbHMgb2YgdW5kZXJsYXlpbmcgZnJhbWUiKQorCisgICAgZGVm
IHJlaW50ZXJwcmV0KHNlbGYpOgorICAgICAgICAiIiJSZWludGVycHJldCB0aGUgZmFpbGluZyBz
dGF0ZW1lbnQgYW5kIHJldHVybnMgYSBkZXRhaWxlZCBpbmZvcm1hdGlvbgorICAgICAgICAgICBh
Ym91dCB3aGF0IG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZC4iIiIKKyAgICAgICAgaWYgc2VsZi5l
eHByaW5mbyBpcyBOb25lOgorICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYuc3RhdGVtZW50
KS5zdHJpcCgpCisgICAgICAgICAgICB4ID0gcHkuY29kZS5fcmVpbnRlcnByZXQoc291cmNlLCBz
ZWxmLmZyYW1lLCBzaG91bGRfZmFpbD1UcnVlKQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UoeCwgc3RyKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImludGVycHJldCBy
ZXR1cm5lZCBub24tc3RyaW5nICVyIiAlICh4LCkpCisgICAgICAgICAgICBzZWxmLmV4cHJpbmZv
ID0geAorICAgICAgICByZXR1cm4gc2VsZi5leHByaW5mbworCisgICAgZGVmIGdldGZpcnN0bGlu
ZXNvdXJjZShzZWxmKToKKyAgICAgICAgIyBvbiBKeXRob24gdGhpcyBmaXJzdGxpbmVubyBjYW4g
YmUgLTEgYXBwYXJlbnRseQorICAgICAgICByZXR1cm4gbWF4KHNlbGYuZnJhbWUuY29kZS5maXJz
dGxpbmVubywgMCkKKworICAgIGRlZiBnZXRzb3VyY2Uoc2VsZiwgYXN0Y2FjaGU9Tm9uZSk6Cisg
ICAgICAgICIiIiByZXR1cm4gZmFpbGluZyBzb3VyY2UgY29kZS4gIiIiCisgICAgICAgICMgd2Ug
dXNlIHRoZSBwYXNzZWQgaW4gYXN0Y2FjaGUgdG8gbm90IHJlcGFyc2UgYXN0dHJlZXMKKyAgICAg
ICAgIyB3aXRoaW4gZXhjZXB0aW9uIGluZm8gcHJpbnRpbmcKKyAgICAgICAgZnJvbSBweS5fY29k
ZS5zb3VyY2UgaW1wb3J0IGdldHN0YXRlbWVudHJhbmdlX2FzdAorICAgICAgICBzb3VyY2UgPSBz
ZWxmLmZyYW1lLmNvZGUuZnVsbHNvdXJjZQorICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGtleSA9IGFzdG5vZGUgPSBOb25lCisgICAg
ICAgIGlmIGFzdGNhY2hlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga2V5ID0gc2VsZi5mcmFt
ZS5jb2RlLnBhdGgKKyAgICAgICAgICAgIGlmIGtleSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICBhc3Rub2RlID0gYXN0Y2FjaGUuZ2V0KGtleSwgTm9uZSkKKyAgICAgICAgc3RhcnQgPSBz
ZWxmLmdldGZpcnN0bGluZXNvdXJjZSgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzdG5v
ZGUsIF8sIGVuZCA9IGdldHN0YXRlbWVudHJhbmdlX2FzdChzZWxmLmxpbmVubywgc291cmNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdG5v
ZGU9YXN0bm9kZSkKKyAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgorICAgICAgICAgICAgZW5k
ID0gc2VsZi5saW5lbm8gKyAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBrZXkgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgYXN0Y2FjaGVba2V5XSA9IGFzdG5vZGUKKyAgICAg
ICAgcmV0dXJuIHNvdXJjZVtzdGFydDplbmRdCisKKyAgICBzb3VyY2UgPSBwcm9wZXJ0eShnZXRz
b3VyY2UpCisKKyAgICBkZWYgaXNoaWRkZW4oc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gVHJ1
ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBoYXMgYSB2YXIgX190cmFjZWJhY2toaWRlX18KKyAgICAg
ICAgICAgIHJlc29sdmluZyB0byBUcnVlCisKKyAgICAgICAgICAgIG1vc3RseSBmb3IgaW50ZXJu
YWwgdXNlCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5mcmFtZS5mX2xvY2Fsc1snX190cmFjZWJhY2toaWRlX18nXQorICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZnJh
bWUuZl9nbG9iYWxzWydfX3RyYWNlYmFja2hpZGVfXyddCisgICAgICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19zdHJfXyhz
ZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm4gPSBzdHIoc2VsZi5wYXRoKQorICAg
ICAgICBleGNlcHQgcHkuZXJyb3IuRXJyb3I6CisgICAgICAgICAgICBmbiA9ICc/Pz8nCisgICAg
ICAgIG5hbWUgPSBzZWxmLmZyYW1lLmNvZGUubmFtZQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBsaW5lID0gc3RyKHNlbGYuc3RhdGVtZW50KS5sc3RyaXAoKQorICAgICAgICBleGNlcHQgS2V5
Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAg
ICAgICAgICBsaW5lID0gIj8/PyIKKyAgICAgICAgcmV0dXJuICIgIEZpbGUgJXI6JWQgaW4gJXNc
biAgJXNcbiIgJSAoZm4sIHNlbGYubGluZW5vKzEsIG5hbWUsIGxpbmUpCisKKyAgICBkZWYgbmFt
ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuY29kZS5yYXcuY29fbmFtZQorICAg
IG5hbWUgPSBwcm9wZXJ0eShuYW1lLCBOb25lLCBOb25lLCAiY29fbmFtZSBvZiB1bmRlcmxheWlu
ZyBjb2RlIikKKworCitjbGFzcyBUcmFjZWJhY2sobGlzdCk6CisgICAgIiIiIFRyYWNlYmFjayBv
YmplY3RzIGVuY2Fwc3VsYXRlIGFuZCBvZmZlciBoaWdoZXIgbGV2ZWwKKyAgICAgICAgYWNjZXNz
IHRvIFRyYWNlYmFjayBlbnRyaWVzLgorICAgICIiIgorICAgIEVudHJ5ID0gVHJhY2ViYWNrRW50
cnkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0Yik6CisgICAgICAgICIiIiBpbml0aWFsaXpl
IGZyb20gZ2l2ZW4gcHl0aG9uIHRyYWNlYmFjayBvYmplY3QuICIiIgorICAgICAgICBpZiBoYXNh
dHRyKHRiLCAndGJfbmV4dCcpOgorICAgICAgICAgICAgZGVmIGYoY3VyKToKKyAgICAgICAgICAg
ICAgICB3aGlsZSBjdXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHNl
bGYuRW50cnkoY3VyKQorICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdXIudGJfbmV4dAorICAg
ICAgICAgICAgbGlzdC5fX2luaXRfXyhzZWxmLCBmKHRiKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGxpc3QuX19pbml0X18oc2VsZiwgdGIpCisKKyAgICBkZWYgY3V0KHNlbGYsIHBhdGg9
Tm9uZSwgbGluZW5vPU5vbmUsIGZpcnN0bGluZW5vPU5vbmUsIGV4Y2x1ZGVwYXRoPU5vbmUpOgor
ICAgICAgICAiIiIgcmV0dXJuIGEgVHJhY2ViYWNrIGluc3RhbmNlIHdyYXBwaW5nIHBhcnQgb2Yg
dGhpcyBUcmFjZWJhY2sKKworICAgICAgICAgICAgYnkgcHJvdmRpbmcgYW55IGNvbWJpbmF0aW9u
IG9mIHBhdGgsIGxpbmVubyBhbmQgZmlyc3RsaW5lbm8sIHRoZQorICAgICAgICAgICAgZmlyc3Qg
ZnJhbWUgdG8gc3RhcnQgdGhlIHRvLWJlLXJldHVybmVkIHRyYWNlYmFjayBpcyBkZXRlcm1pbmVk
CisKKyAgICAgICAgICAgIHRoaXMgYWxsb3dzIGN1dHRpbmcgdGhlIGZpcnN0IHBhcnQgb2YgYSBU
cmFjZWJhY2sgaW5zdGFuY2UgZS5nLgorICAgICAgICAgICAgZm9yIGZvcm1hdHRpbmcgcmVhc29u
cyAocmVtb3Zpbmcgc29tZSB1bmludGVyZXN0aW5nIGJpdHMgdGhhdCBkZWFsCisgICAgICAgICAg
ICB3aXRoIGhhbmRsaW5nIG9mIHRoZSBleGNlcHRpb24vdHJhY2ViYWNrKQorICAgICAgICAiIiIK
KyAgICAgICAgZm9yIHggaW4gc2VsZjoKKyAgICAgICAgICAgIGNvZGUgPSB4LmZyYW1lLmNvZGUK
KyAgICAgICAgICAgIGNvZGVwYXRoID0gY29kZS5wYXRoCisgICAgICAgICAgICBpZiAoKHBhdGgg
aXMgTm9uZSBvciBjb2RlcGF0aCA9PSBwYXRoKSBhbmQKKyAgICAgICAgICAgICAgICAoZXhjbHVk
ZXBhdGggaXMgTm9uZSBvciBub3QgaGFzYXR0cihjb2RlcGF0aCwgJ3JlbHRvJykgb3IKKyAgICAg
ICAgICAgICAgICAgbm90IGNvZGVwYXRoLnJlbHRvKGV4Y2x1ZGVwYXRoKSkgYW5kCisgICAgICAg
ICAgICAgICAgKGxpbmVubyBpcyBOb25lIG9yIHgubGluZW5vID09IGxpbmVubykgYW5kCisgICAg
ICAgICAgICAgICAgKGZpcnN0bGluZW5vIGlzIE5vbmUgb3IgeC5mcmFtZS5jb2RlLmZpcnN0bGlu
ZW5vID09IGZpcnN0bGluZW5vKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRyYWNlYmFjayh4
Ll9yYXdlbnRyeSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2dldGl0ZW1fXyhz
ZWxmLCBrZXkpOgorICAgICAgICB2YWwgPSBzdXBlcihUcmFjZWJhY2ssIHNlbGYpLl9fZ2V0aXRl
bV9fKGtleSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIHR5cGUoc2xpY2UoMCkpKToKKyAg
ICAgICAgICAgIHZhbCA9IHNlbGYuX19jbGFzc19fKHZhbCkKKyAgICAgICAgcmV0dXJuIHZhbAor
CisgICAgZGVmIGZpbHRlcihzZWxmLCBmbj1sYW1iZGEgeDogbm90IHguaXNoaWRkZW4oKSk6Cisg
ICAgICAgICIiIiByZXR1cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd2l0aCBjZXJ0YWluIGl0ZW1z
IHJlbW92ZWQKKworICAgICAgICAgICAgZm4gaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgYSBzaW5n
bGUgYXJndW1lbnQsIGEgVHJhY2ViYWNrSXRlbQorICAgICAgICAgICAgaW5zdGFuY2UsIGFuZCBz
aG91bGQgcmV0dXJuIFRydWUgd2hlbiB0aGUgaXRlbSBzaG91bGQgYmUgYWRkZWQKKyAgICAgICAg
ICAgIHRvIHRoZSBUcmFjZWJhY2ssIEZhbHNlIHdoZW4gbm90CisKKyAgICAgICAgICAgIGJ5IGRl
ZmF1bHQgdGhpcyByZW1vdmVzIGFsbCB0aGUgVHJhY2ViYWNrSXRlbXMgd2hpY2ggYXJlIGhpZGRl
bgorICAgICAgICAgICAgKHNlZSBpc2hpZGRlbigpIGFib3ZlKQorICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIFRyYWNlYmFjayhmaWx0ZXIoZm4sIHNlbGYpKQorCisgICAgZGVmIGdldGNyYXNo
ZW50cnkoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGFzdCBub24taGlkZGVuIHRyYWNlYmFj
ayBlbnRyeSB0aGF0IGxlYWQKKyAgICAgICAgdG8gdGhlIGV4Y2VwdGlvbiBvZiBhIHRyYWNlYmFj
ay4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBpIGluIHJhbmdlKC0xLCAtbGVuKHNlbGYpLTEs
IC0xKToKKyAgICAgICAgICAgIGVudHJ5ID0gc2VsZltpXQorICAgICAgICAgICAgaWYgbm90IGVu
dHJ5LmlzaGlkZGVuKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5CisgICAgICAgIHJl
dHVybiBzZWxmWy0xXQorCisgICAgZGVmIHJlY3Vyc2lvbmluZGV4KHNlbGYpOgorICAgICAgICAi
IiIgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZnJhbWUvVHJhY2ViYWNrSXRlbSB3aGVyZSByZWN1
cnNpb24KKyAgICAgICAgICAgIG9yaWdpbmF0ZXMgaWYgYXBwcm9wcmlhdGUsIE5vbmUgaWYgbm8g
cmVjdXJzaW9uIG9jY3VycmVkCisgICAgICAgICIiIgorICAgICAgICBjYWNoZSA9IHt9CisgICAg
ICAgIGZvciBpLCBlbnRyeSBpbiBlbnVtZXJhdGUoc2VsZik6CisgICAgICAgICAgICAjIGlkIGZv
ciB0aGUgY29kZS5yYXcgaXMgbmVlZGVkIHRvIHdvcmsgYXJvdW5kCisgICAgICAgICAgICAjIHRo
ZSBzdHJhbmdlIG1ldGFwcm9ncmFtbWluZyBpbiB0aGUgZGVjb3JhdG9yIGxpYiBmcm9tIHB5cGkK
KyAgICAgICAgICAgICMgd2hpY2ggZ2VuZXJhdGVzIGNvZGUgb2JqZWN0cyB0aGF0IGhhdmUgaGFz
aC92YWx1ZSBlcXVhbGl0eQorICAgICAgICAgICAgI1hYWCBuZWVkcyBhIHRlc3QKKyAgICAgICAg
ICAgIGtleSA9IGVudHJ5LmZyYW1lLmNvZGUucGF0aCwgaWQoZW50cnkuZnJhbWUuY29kZS5yYXcp
LCBlbnRyeS5saW5lbm8KKyAgICAgICAgICAgICNwcmludCAiY2hlY2tpbmcgZm9yIHJlY3Vyc2lv
biBhdCIsIGtleQorICAgICAgICAgICAgbCA9IGNhY2hlLnNldGRlZmF1bHQoa2V5LCBbXSkKKyAg
ICAgICAgICAgIGlmIGw6CisgICAgICAgICAgICAgICAgZiA9IGVudHJ5LmZyYW1lCisgICAgICAg
ICAgICAgICAgbG9jID0gZi5mX2xvY2FscworICAgICAgICAgICAgICAgIGZvciBvdGhlcmxvYyBp
biBsOgorICAgICAgICAgICAgICAgICAgICBpZiBmLmlzX3RydWUoZi5ldmFsKGNvX2VxdWFsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMT1sb2MsCisg
ICAgICAgICAgICAgICAgICAgICAgICBfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18yPW90aGVybG9j
KSk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaQorICAgICAgICAgICAgbC5hcHBl
bmQoZW50cnkuZnJhbWUuZl9sb2NhbHMpCisgICAgICAgIHJldHVybiBOb25lCisKK2NvX2VxdWFs
ID0gY29tcGlsZSgnX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMSA9PSBfX3JlY3Vyc2lvbmNhY2hl
X2xvY2Fsc18yJywKKyAgICAgICAgICAgICAgICAgICAnPycsICdldmFsJykKKworY2xhc3MgRXhj
ZXB0aW9uSW5mbyhvYmplY3QpOgorICAgICIiIiB3cmFwcyBzeXMuZXhjX2luZm8oKSBvYmplY3Rz
IGFuZCBvZmZlcnMKKyAgICAgICAgaGVscCBmb3IgbmF2aWdhdGluZyB0aGUgdHJhY2ViYWNrLgor
ICAgICIiIgorICAgIF9zdHJpcHRleHQgPSAnJworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0dXA9
Tm9uZSwgZXhwcmluZm89Tm9uZSk6CisgICAgICAgIGlmIHR1cCBpcyBOb25lOgorICAgICAgICAg
ICAgdHVwID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmUg
YW5kIGlzaW5zdGFuY2UodHVwWzFdLCBBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICAgICAg
ZXhwcmluZm8gPSBnZXRhdHRyKHR1cFsxXSwgJ21zZycsIE5vbmUpCisgICAgICAgICAgICAgICAg
aWYgZXhwcmluZm8gaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBzdHIo
dHVwWzFdKQorICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGFuZCBleHByaW5mby5zdGFydHN3
aXRoKCdhc3NlcnQgJyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0cmlwdGV4dCA9ICdB
c3NlcnRpb25FcnJvcjogJworICAgICAgICBzZWxmLl9leGNpbmZvID0gdHVwCisgICAgICAgICM6
IHRoZSBleGNlcHRpb24gY2xhc3MKKyAgICAgICAgc2VsZi50eXBlID0gdHVwWzBdCisgICAgICAg
ICM6IHRoZSBleGNlcHRpb24gaW5zdGFuY2UKKyAgICAgICAgc2VsZi52YWx1ZSA9IHR1cFsxXQor
ICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHJhdyB0cmFjZWJhY2sKKyAgICAgICAgc2VsZi50YiA9
IHR1cFsyXQorICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHR5cGUgbmFtZQorICAgICAgICBzZWxm
LnR5cGVuYW1lID0gc2VsZi50eXBlLl9fbmFtZV9fCisgICAgICAgICM6IHRoZSBleGNlcHRpb24g
dHJhY2ViYWNrIChweS5jb2RlLlRyYWNlYmFjayBpbnN0YW5jZSkKKyAgICAgICAgc2VsZi50cmFj
ZWJhY2sgPSBweS5jb2RlLlRyYWNlYmFjayhzZWxmLnRiKQorCisgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICByZXR1cm4gIjxFeGNlcHRpb25JbmZvICVzIHRibGVuPSVkPiIgJSAoCisg
ICAgICAgICAgICBzZWxmLnR5cGVuYW1lLCBsZW4oc2VsZi50cmFjZWJhY2spKQorCisgICAgZGVm
IGV4Y29ubHkoc2VsZiwgdHJ5c2hvcnQ9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBl
eGNlcHRpb24gYXMgYSBzdHJpbmcKKworICAgICAgICAgICAgd2hlbiAndHJ5c2hvcnQnIHJlc29s
dmVzIHRvIFRydWUsIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGEKKyAgICAgICAgICAgIHB5LmNvZGUu
X0Fzc2VydGlvbkVycm9yLCBvbmx5IHRoZSBhY3R1YWwgZXhjZXB0aW9uIHBhcnQgb2YKKyAgICAg
ICAgICAgIHRoZSBleGNlcHRpb24gcmVwcmVzZW50YXRpb24gaXMgcmV0dXJuZWQgKHNvICdBc3Nl
cnRpb25FcnJvcjogJyBpcworICAgICAgICAgICAgcmVtb3ZlZCBmcm9tIHRoZSBiZWdpbm5pbmcp
CisgICAgICAgICIiIgorICAgICAgICBsaW5lcyA9IGZvcm1hdF9leGNlcHRpb25fb25seShzZWxm
LnR5cGUsIHNlbGYudmFsdWUpCisgICAgICAgIHRleHQgPSAnJy5qb2luKGxpbmVzKQorICAgICAg
ICB0ZXh0ID0gdGV4dC5yc3RyaXAoKQorICAgICAgICBpZiB0cnlzaG9ydDoKKyAgICAgICAgICAg
IGlmIHRleHQuc3RhcnRzd2l0aChzZWxmLl9zdHJpcHRleHQpOgorICAgICAgICAgICAgICAgIHRl
eHQgPSB0ZXh0W2xlbihzZWxmLl9zdHJpcHRleHQpOl0KKyAgICAgICAgcmV0dXJuIHRleHQKKwor
ICAgIGRlZiBlcnJpc2luc3RhbmNlKHNlbGYsIGV4Yyk6CisgICAgICAgICIiIiByZXR1cm4gVHJ1
ZSBpZiB0aGUgZXhjZXB0aW9uIGlzIGFuIGluc3RhbmNlIG9mIGV4YyAiIiIKKyAgICAgICAgcmV0
dXJuIGlzaW5zdGFuY2Uoc2VsZi52YWx1ZSwgZXhjKQorCisgICAgZGVmIF9nZXRyZXByY3Jhc2go
c2VsZik6CisgICAgICAgIGV4Y29ubHkgPSBzZWxmLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkKKyAg
ICAgICAgZW50cnkgPSBzZWxmLnRyYWNlYmFjay5nZXRjcmFzaGVudHJ5KCkKKyAgICAgICAgcGF0
aCwgbGluZW5vID0gZW50cnkuZnJhbWUuY29kZS5yYXcuY29fZmlsZW5hbWUsIGVudHJ5LmxpbmVu
bworICAgICAgICByZXR1cm4gUmVwckZpbGVMb2NhdGlvbihwYXRoLCBsaW5lbm8rMSwgZXhjb25s
eSkKKworICAgIGRlZiBnZXRyZXByKHNlbGYsIHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJsb25n
IiwKKyAgICAgICAgICAgICAgICBhYnNwYXRoPUZhbHNlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJn
cz1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gc3RyKClhYmxlIHJlcHJlc2VudGF0aW9uIG9m
IHRoaXMgZXhjZXB0aW9uIGluZm8uCisgICAgICAgICAgICBzaG93bG9jYWxzOiBzaG93IGxvY2Fs
cyBwZXIgdHJhY2ViYWNrIGVudHJ5CisgICAgICAgICAgICBzdHlsZTogbG9uZ3xzaG9ydHxub3xu
YXRpdmUgdHJhY2ViYWNrIHN0eWxlCisgICAgICAgICAgICB0YmZpbHRlcjogaGlkZSBlbnRyaWVz
ICh3aGVyZSBfX3RyYWNlYmFja2hpZGVfXyBpcyB0cnVlKQorCisgICAgICAgICAgICBpbiBjYXNl
IG9mIHN0eWxlPT1uYXRpdmUsIHRiZmlsdGVyIGFuZCBzaG93bG9jYWxzIGlzIGlnbm9yZWQuCisg
ICAgICAgICIiIgorICAgICAgICBpZiBzdHlsZSA9PSAnbmF0aXZlJzoKKyAgICAgICAgICAgIHJl
dHVybiBSZXByRXhjZXB0aW9uSW5mbyhSZXByVHJhY2ViYWNrTmF0aXZlKAorICAgICAgICAgICAg
ICAgIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnR5cGUsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudmFsdWUsCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYudHJhY2ViYWNrWzBdLl9yYXdlbnRyeSwKKyAgICAgICAgICAgICAgICApKSwgc2Vs
Zi5fZ2V0cmVwcmNyYXNoKCkpCisKKyAgICAgICAgZm10ID0gRm9ybWF0dGVkRXhjaW5mbygKKyAg
ICAgICAgICAgIHNob3dsb2NhbHM9c2hvd2xvY2Fscywgc3R5bGU9c3R5bGUsCisgICAgICAgICAg
ICBhYnNwYXRoPWFic3BhdGgsIHRiZmlsdGVyPXRiZmlsdGVyLCBmdW5jYXJncz1mdW5jYXJncykK
KyAgICAgICAgcmV0dXJuIGZtdC5yZXByX2V4Y2luZm8oc2VsZikKKworICAgIGRlZiBfX3N0cl9f
KHNlbGYpOgorICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQorICAgICAgICBsb2Mg
PSBSZXByRmlsZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyArIDEsIHNlbGYuZXhj
b25seSgpKQorICAgICAgICByZXR1cm4gc3RyKGxvYykKKworICAgIGRlZiBfX3VuaWNvZGVfXyhz
ZWxmKToKKyAgICAgICAgZW50cnkgPSBzZWxmLnRyYWNlYmFja1stMV0KKyAgICAgICAgbG9jID0g
UmVwckZpbGVMb2NhdGlvbihlbnRyeS5wYXRoLCBlbnRyeS5saW5lbm8gKyAxLCBzZWxmLmV4Y29u
bHkoKSkKKyAgICAgICAgcmV0dXJuIGxvYy5fX3VuaWNvZGVfXygpCisKKworY2xhc3MgRm9ybWF0
dGVkRXhjaW5mbyhvYmplY3QpOgorICAgICIiIiBwcmVzZW50aW5nIGluZm9ybWF0aW9uIGFib3V0
IGZhaWxpbmcgRnVuY3Rpb25zIGFuZCBHZW5lcmF0b3JzLiAiIiIKKyAgICAjIGZvciB0cmFjZWJh
Y2sgZW50cmllcworICAgIGZsb3dfbWFya2VyID0gIj4iCisgICAgZmFpbF9tYXJrZXIgPSAiRSIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzaG93bG9jYWxzPUZhbHNlLCBzdHlsZT0ibG9uZyIs
CisgICAgICAgICAgICAgICAgIGFic3BhdGg9VHJ1ZSwgdGJmaWx0ZXI9VHJ1ZSwgZnVuY2FyZ3M9
RmFsc2UpOgorICAgICAgICBzZWxmLnNob3dsb2NhbHMgPSBzaG93bG9jYWxzCisgICAgICAgIHNl
bGYuc3R5bGUgPSBzdHlsZQorICAgICAgICBzZWxmLnRiZmlsdGVyID0gdGJmaWx0ZXIKKyAgICAg
ICAgc2VsZi5mdW5jYXJncyA9IGZ1bmNhcmdzCisgICAgICAgIHNlbGYuYWJzcGF0aCA9IGFic3Bh
dGgKKyAgICAgICAgc2VsZi5hc3RjYWNoZSA9IHt9CisKKyAgICBkZWYgX2dldGluZGVudChzZWxm
LCBzb3VyY2UpOgorICAgICAgICAjIGZpZ3VyZSBvdXQgaW5kZW50IGZvciBnaXZlbiBzb3VyY2UK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcyA9IHN0cihzb3VyY2UuZ2V0c3RhdGVtZW50KGxl
bihzb3VyY2UpLTEpKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAg
ICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgcyA9IHN0cihzb3VyY2VbLTFdKQorICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50
ZXJydXB0OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAgICAgcmV0dXJuIDQgKyAobGVuKHMpIC0gbGVuKHMu
bHN0cmlwKCkpKQorCisgICAgZGVmIF9nZXRlbnRyeXNvdXJjZShzZWxmLCBlbnRyeSk6CisgICAg
ICAgIHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZShzZWxmLmFzdGNhY2hlKQorICAgICAgICBpZiBz
b3VyY2UgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UuZGVpbmRlbnQo
KQorICAgICAgICByZXR1cm4gc291cmNlCisKKyAgICBkZWYgX3NhZmVyZXByKHNlbGYsIG9iaik6
CisgICAgICAgIHJldHVybiBweS5pby5zYWZlcmVwcihvYmopCisKKyAgICBkZWYgcmVwcl9hcmdz
KHNlbGYsIGVudHJ5KToKKyAgICAgICAgaWYgc2VsZi5mdW5jYXJnczoKKyAgICAgICAgICAgIGFy
Z3MgPSBbXQorICAgICAgICAgICAgZm9yIGFyZ25hbWUsIGFyZ3ZhbHVlIGluIGVudHJ5LmZyYW1l
LmdldGFyZ3ModmFyPVRydWUpOgorICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKChhcmduYW1l
LCBzZWxmLl9zYWZlcmVwcihhcmd2YWx1ZSkpKQorICAgICAgICAgICAgcmV0dXJuIFJlcHJGdW5j
QXJncyhhcmdzKQorCisgICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgc291cmNlLCBsaW5lX2luZGV4
PS0xLCBleGNpbmZvPU5vbmUsIHNob3J0PUZhbHNlKToKKyAgICAgICAgIiIiIHJldHVybiBmb3Jt
YXR0ZWQgYW5kIG1hcmtlZCB1cCBzb3VyY2UgbGluZXMuICIiIgorICAgICAgICBsaW5lcyA9IFtd
CisgICAgICAgIGlmIHNvdXJjZSBpcyBOb25lIG9yIGxpbmVfaW5kZXggPj0gbGVuKHNvdXJjZS5s
aW5lcyk6CisgICAgICAgICAgICBzb3VyY2UgPSBweS5jb2RlLlNvdXJjZSgiPz8/IikKKyAgICAg
ICAgICAgIGxpbmVfaW5kZXggPSAwCisgICAgICAgIGlmIGxpbmVfaW5kZXggPCAwOgorICAgICAg
ICAgICAgbGluZV9pbmRleCArPSBsZW4oc291cmNlKQorICAgICAgICBzcGFjZV9wcmVmaXggPSAi
ICAgICIKKyAgICAgICAgaWYgc2hvcnQ6CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2Vf
cHJlZml4ICsgc291cmNlLmxpbmVzW2xpbmVfaW5kZXhdLnN0cmlwKCkpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzb3VyY2UubGluZXNbOmxpbmVfaW5kZXhdOgorICAg
ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzcGFjZV9wcmVmaXggKyBsaW5lKQorICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKHNlbGYuZmxvd19tYXJrZXIgKyAiICAgIiArIHNvdXJjZS5saW5lc1ts
aW5lX2luZGV4XSkKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5lc1tsaW5lX2lu
ZGV4KzE6XToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgbGlu
ZSkKKyAgICAgICAgaWYgZXhjaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGluZGVudCA9
IDQgaWYgc2hvcnQgZWxzZSBzZWxmLl9nZXRpbmRlbnQoc291cmNlKQorICAgICAgICAgICAgbGlu
ZXMuZXh0ZW5kKHNlbGYuZ2V0X2V4Y29ubHkoZXhjaW5mbywgaW5kZW50PWluZGVudCwgbWFya2Fs
bD1UcnVlKSkKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKyAgICBkZWYgZ2V0X2V4Y29ubHkoc2Vs
ZiwgZXhjaW5mbywgaW5kZW50PTQsIG1hcmthbGw9RmFsc2UpOgorICAgICAgICBsaW5lcyA9IFtd
CisgICAgICAgIGluZGVudCA9ICIgIiAqIGluZGVudAorICAgICAgICAjIGdldCB0aGUgcmVhbCBl
eGNlcHRpb24gaW5mb3JtYXRpb24gb3V0CisgICAgICAgIGV4bGluZXMgPSBleGNpbmZvLmV4Y29u
bHkodHJ5c2hvcnQ9VHJ1ZSkuc3BsaXQoJ1xuJykKKyAgICAgICAgZmFpbGluZGVudCA9IHNlbGYu
ZmFpbF9tYXJrZXIgKyBpbmRlbnRbMTpdCisgICAgICAgIGZvciBsaW5lIGluIGV4bGluZXM6Cisg
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoZmFpbGluZGVudCArIGxpbmUpCisgICAgICAgICAgICBp
ZiBub3QgbWFya2FsbDoKKyAgICAgICAgICAgICAgICBmYWlsaW5kZW50ID0gaW5kZW50CisgICAg
ICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIHJlcHJfbG9jYWxzKHNlbGYsIGxvY2Fscyk6Cisg
ICAgICAgIGlmIHNlbGYuc2hvd2xvY2FsczoKKyAgICAgICAgICAgIGxpbmVzID0gW10KKyAgICAg
ICAgICAgIGtleXMgPSBbbG9jIGZvciBsb2MgaW4gbG9jYWxzIGlmIGxvY1swXSAhPSAiQCJdCisg
ICAgICAgICAgICBrZXlzLnNvcnQoKQorICAgICAgICAgICAgZm9yIG5hbWUgaW4ga2V5czoKKyAg
ICAgICAgICAgICAgICB2YWx1ZSA9IGxvY2Fsc1tuYW1lXQorICAgICAgICAgICAgICAgIGlmIG5h
bWUgPT0gJ19fYnVpbHRpbnNfXyc6CisgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgi
X19idWlsdGluc19fID0gPGJ1aWx0aW5zPiIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgIyBUaGlzIGZvcm1hdHRpbmcgY291bGQgYWxsIGJlIGhhbmRsZWQgYnkg
dGhlCisgICAgICAgICAgICAgICAgICAgICMgX3JlcHIoKSBmdW5jdGlvbiwgd2hpY2ggaXMgb25s
eSByZXBybGliLlJlcHIgaW4KKyAgICAgICAgICAgICAgICAgICAgIyBkaXNndWlzZSwgc28gaXMg
dmVyeSBjb25maWd1cmFibGUuCisgICAgICAgICAgICAgICAgICAgIHN0cl9yZXByID0gc2VsZi5f
c2FmZXJlcHIodmFsdWUpCisgICAgICAgICAgICAgICAgICAgICNpZiBsZW4oc3RyX3JlcHIpIDwg
NzAgb3Igbm90IGlzaW5zdGFuY2UodmFsdWUsCisgICAgICAgICAgICAgICAgICAgICMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxpc3QsIHR1cGxlLCBkaWN0KSk6CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZCgiJS0xMHMgPSAlcyIgJShuYW1lLCBzdHJfcmVwcikpCisgICAg
ICAgICAgICAgICAgICAgICNlbHNlOgorICAgICAgICAgICAgICAgICAgICAjICAgIHNlbGYuX2xp
bmUoIiUtMTBzID1cXCIgJSAobmFtZSwpKQorICAgICAgICAgICAgICAgICAgICAjICAgICMgWFhY
CisgICAgICAgICAgICAgICAgICAgICMgICAgcHByaW50LnBwcmludCh2YWx1ZSwgc3RyZWFtPXNl
bGYuZXhjaW5mb3dyaXRlcikKKyAgICAgICAgICAgIHJldHVybiBSZXByTG9jYWxzKGxpbmVzKQor
CisgICAgZGVmIHJlcHJfdHJhY2ViYWNrX2VudHJ5KHNlbGYsIGVudHJ5LCBleGNpbmZvPU5vbmUp
OgorICAgICAgICBzb3VyY2UgPSBzZWxmLl9nZXRlbnRyeXNvdXJjZShlbnRyeSkKKyAgICAgICAg
aWYgc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICBzb3VyY2UgPSBweS5jb2RlLlNvdXJjZSgi
Pz8/IikKKyAgICAgICAgICAgIGxpbmVfaW5kZXggPSAwCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAjIGVudHJ5LmdldGZpcnN0bGluZXNvdXJjZSgpIGNhbiBiZSAtMSwgc2hvdWxkIGJlIDAg
b24ganl0aG9uCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gZW50cnkubGluZW5vIC0gbWF4KGVu
dHJ5LmdldGZpcnN0bGluZXNvdXJjZSgpLCAwKQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAg
ICAgc3R5bGUgPSBlbnRyeS5fcmVwcl9zdHlsZQorICAgICAgICBpZiBzdHlsZSBpcyBOb25lOgor
ICAgICAgICAgICAgc3R5bGUgPSBzZWxmLnN0eWxlCisgICAgICAgIGlmIHN0eWxlIGluICgic2hv
cnQiLCAibG9uZyIpOgorICAgICAgICAgICAgc2hvcnQgPSBzdHlsZSA9PSAic2hvcnQiCisgICAg
ICAgICAgICByZXByYXJncyA9IHNlbGYucmVwcl9hcmdzKGVudHJ5KSBpZiBub3Qgc2hvcnQgZWxz
ZSBOb25lCisgICAgICAgICAgICBzID0gc2VsZi5nZXRfc291cmNlKHNvdXJjZSwgbGluZV9pbmRl
eCwgZXhjaW5mbywgc2hvcnQ9c2hvcnQpCisgICAgICAgICAgICBsaW5lcy5leHRlbmQocykKKyAg
ICAgICAgICAgIGlmIHNob3J0OgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiaW4gJXMiICUo
ZW50cnkubmFtZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9
IGV4Y2luZm8gYW5kIGV4Y2luZm8udHlwZW5hbWUgb3IgIiIKKyAgICAgICAgICAgIHBhdGggPSBz
ZWxmLl9tYWtlcGF0aChlbnRyeS5wYXRoKQorICAgICAgICAgICAgZmlsZWxvY3JlcHIgPSBSZXBy
RmlsZUxvY2F0aW9uKHBhdGgsIGVudHJ5LmxpbmVubysxLCBtZXNzYWdlKQorICAgICAgICAgICAg
bG9jYWxzcmVwciA9IE5vbmUKKyAgICAgICAgICAgIGlmIG5vdCBzaG9ydDoKKyAgICAgICAgICAg
ICAgICBsb2NhbHNyZXByID0gIHNlbGYucmVwcl9sb2NhbHMoZW50cnkubG9jYWxzKQorICAgICAg
ICAgICAgcmV0dXJuIFJlcHJFbnRyeShsaW5lcywgcmVwcmFyZ3MsIGxvY2Fsc3JlcHIsIGZpbGVs
b2NyZXByLCBzdHlsZSkKKyAgICAgICAgaWYgZXhjaW5mbzoKKyAgICAgICAgICAgIGxpbmVzLmV4
dGVuZChzZWxmLmdldF9leGNvbmx5KGV4Y2luZm8sIGluZGVudD00KSkKKyAgICAgICAgcmV0dXJu
IFJlcHJFbnRyeShsaW5lcywgTm9uZSwgTm9uZSwgTm9uZSwgc3R5bGUpCisKKyAgICBkZWYgX21h
a2VwYXRoKHNlbGYsIHBhdGgpOgorICAgICAgICBpZiBub3Qgc2VsZi5hYnNwYXRoOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5wID0gcHkucGF0aC5sb2NhbCgpLmJlc3RyZWxw
YXRoKHBhdGgpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcGF0aAorICAgICAgICAgICAgaWYgbGVuKG5wKSA8IGxlbihzdHIocGF0aCkpOgorICAg
ICAgICAgICAgICAgIHBhdGggPSBucAorICAgICAgICByZXR1cm4gcGF0aAorCisgICAgZGVmIHJl
cHJfdHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZv
LnRyYWNlYmFjaworICAgICAgICBpZiBzZWxmLnRiZmlsdGVyOgorICAgICAgICAgICAgdHJhY2Vi
YWNrID0gdHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIHJlY3Vyc2lvbmluZGV4ID0gTm9uZQor
ICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoUnVudGltZUVycm9yKToKKyAgICAgICAg
ICAgIGlmICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBleGNlZWRlZCIgaW4gc3RyKGV4Y2luZm8u
dmFsdWUpOgorICAgICAgICAgICAgICAgIHJlY3Vyc2lvbmluZGV4ID0gdHJhY2ViYWNrLnJlY3Vy
c2lvbmluZGV4KCkKKyAgICAgICAgbGFzdCA9IHRyYWNlYmFja1stMV0KKyAgICAgICAgZW50cmll
cyA9IFtdCisgICAgICAgIGV4dHJhbGluZSA9IE5vbmUKKyAgICAgICAgZm9yIGluZGV4LCBlbnRy
eSBpbiBlbnVtZXJhdGUodHJhY2ViYWNrKToKKyAgICAgICAgICAgIGVpbmZvID0gKGxhc3QgPT0g
ZW50cnkpIGFuZCBleGNpbmZvIG9yIE5vbmUKKyAgICAgICAgICAgIHJlcHJlbnRyeSA9IHNlbGYu
cmVwcl90cmFjZWJhY2tfZW50cnkoZW50cnksIGVpbmZvKQorICAgICAgICAgICAgZW50cmllcy5h
cHBlbmQocmVwcmVudHJ5KQorICAgICAgICAgICAgaWYgaW5kZXggPT0gcmVjdXJzaW9uaW5kZXg6
CisgICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0ZWN0ZWQgKHNh
bWUgbG9jYWxzICYgcG9zaXRpb24pIgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJl
dHVybiBSZXByVHJhY2ViYWNrKGVudHJpZXMsIGV4dHJhbGluZSwgc3R5bGU9c2VsZi5zdHlsZSkK
KworICAgIGRlZiByZXByX2V4Y2luZm8oc2VsZiwgZXhjaW5mbyk6CisgICAgICAgIHJlcHJ0cmFj
ZWJhY2sgPSBzZWxmLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgIHJlcHJjcmFzaCA9
IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCisgICAgICAgIHJldHVybiBSZXByRXhjZXB0aW9uSW5m
byhyZXBydHJhY2ViYWNrLCByZXByY3Jhc2gpCisKK2NsYXNzIFRlcm1pbmFsUmVwcjoKKyAgICBk
ZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcyA9IHNlbGYuX191bmljb2RlX18oKQorICAgICAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKKyAgICAgICAgICAgIHMgPSBzLmVuY29kZSgn
dXRmLTgnKQorICAgICAgICByZXR1cm4gcworCisgICAgZGVmIF9fdW5pY29kZV9fKHNlbGYpOgor
ICAgICAgICAjIEZZSSB0aGlzIGlzIGNhbGxlZCBmcm9tIHB5dGVzdC14ZGlzdCdzIHNlcmlhbGl6
YXRpb24gb2YgZXhjZXB0aW9uCisgICAgICAgICMgaW5mb3JtYXRpb24uCisgICAgICAgIGlvID0g
cHkuaW8uVGV4dElPKCkKKyAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihmaWxlPWlv
KQorICAgICAgICBzZWxmLnRvdGVybWluYWwodHcpCisgICAgICAgIHJldHVybiBpby5nZXR2YWx1
ZSgpLnN0cmlwKCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8
JXMgaW5zdGFuY2UgYXQgJTB4PiIgJShzZWxmLl9fY2xhc3NfXywgaWQoc2VsZikpCisKKworY2xh
c3MgUmVwckV4Y2VwdGlvbkluZm8oVGVybWluYWxSZXByKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKToKKyAgICAgICAgc2VsZi5yZXBydHJhY2ViYWNr
ID0gcmVwcnRyYWNlYmFjaworICAgICAgICBzZWxmLnJlcHJjcmFzaCA9IHJlcHJjcmFzaAorICAg
ICAgICBzZWxmLnNlY3Rpb25zID0gW10KKworICAgIGRlZiBhZGRzZWN0aW9uKHNlbGYsIG5hbWUs
IGNvbnRlbnQsIHNlcD0iLSIpOgorICAgICAgICBzZWxmLnNlY3Rpb25zLmFwcGVuZCgobmFtZSwg
Y29udGVudCwgc2VwKSkKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAg
c2VsZi5yZXBydHJhY2ViYWNrLnRvdGVybWluYWwodHcpCisgICAgICAgIGZvciBuYW1lLCBjb250
ZW50LCBzZXAgaW4gc2VsZi5zZWN0aW9uczoKKyAgICAgICAgICAgIHR3LnNlcChzZXAsIG5hbWUp
CisgICAgICAgICAgICB0dy5saW5lKGNvbnRlbnQpCisKK2NsYXNzIFJlcHJUcmFjZWJhY2soVGVy
bWluYWxSZXByKToKKyAgICBlbnRyeXNlcCA9ICJfICIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXByZW50cmllcywgZXh0cmFsaW5lLCBzdHlsZSk6CisgICAgICAgIHNlbGYucmVwcmVudHJp
ZXMgPSByZXByZW50cmllcworICAgICAgICBzZWxmLmV4dHJhbGluZSA9IGV4dHJhbGluZQorICAg
ICAgICBzZWxmLnN0eWxlID0gc3R5bGUKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToK
KyAgICAgICAgIyB0aGUgZW50cmllcyBtaWdodCBoYXZlIGRpZmZlcmVudCBzdHlsZXMKKyAgICAg
ICAgbGFzdF9zdHlsZSA9IE5vbmUKKyAgICAgICAgZm9yIGksIGVudHJ5IGluIGVudW1lcmF0ZShz
ZWxmLnJlcHJlbnRyaWVzKToKKyAgICAgICAgICAgIGlmIGVudHJ5LnN0eWxlID09ICJsb25nIjoK
KyAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQorICAgICAgICAgICAgZW50cnkudG90ZXJtaW5h
bCh0dykKKyAgICAgICAgICAgIGlmIGkgPCBsZW4oc2VsZi5yZXByZW50cmllcykgLSAxOgorICAg
ICAgICAgICAgICAgIG5leHRfZW50cnkgPSBzZWxmLnJlcHJlbnRyaWVzW2krMV0KKyAgICAgICAg
ICAgICAgICBpZiBlbnRyeS5zdHlsZSA9PSAibG9uZyIgb3IgXAorICAgICAgICAgICAgICAgICAg
IGVudHJ5LnN0eWxlID09ICJzaG9ydCIgYW5kIG5leHRfZW50cnkuc3R5bGUgPT0gImxvbmciOgor
ICAgICAgICAgICAgICAgICAgICB0dy5zZXAoc2VsZi5lbnRyeXNlcCkKKworICAgICAgICBpZiBz
ZWxmLmV4dHJhbGluZToKKyAgICAgICAgICAgIHR3LmxpbmUoc2VsZi5leHRyYWxpbmUpCisKK2Ns
YXNzIFJlcHJUcmFjZWJhY2tOYXRpdmUoUmVwclRyYWNlYmFjayk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHRibGluZXMpOgorICAgICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIKKyAgICAgICAg
c2VsZi5yZXByZW50cmllcyA9IFtSZXByRW50cnlOYXRpdmUodGJsaW5lcyldCisgICAgICAgIHNl
bGYuZXh0cmFsaW5lID0gTm9uZQorCitjbGFzcyBSZXByRW50cnlOYXRpdmUoVGVybWluYWxSZXBy
KToKKyAgICBzdHlsZSA9ICJuYXRpdmUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGJsaW5l
cyk6CisgICAgICAgIHNlbGYubGluZXMgPSB0YmxpbmVzCisKKyAgICBkZWYgdG90ZXJtaW5hbChz
ZWxmLCB0dyk6CisgICAgICAgIHR3LndyaXRlKCIiLmpvaW4oc2VsZi5saW5lcykpCisKK2NsYXNz
IFJlcHJFbnRyeShUZXJtaW5hbFJlcHIpOgorICAgIGxvY2Fsc3NlcCA9ICJfICIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsaW5lcywgcmVwcmZ1bmNhcmdzLCByZXBybG9jYWxzLCBmaWxlbG9j
cmVwciwgc3R5bGUpOgorICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKKyAgICAgICAgc2VsZi5y
ZXByZnVuY2FyZ3MgPSByZXByZnVuY2FyZ3MKKyAgICAgICAgc2VsZi5yZXBybG9jYWxzID0gcmVw
cmxvY2FscworICAgICAgICBzZWxmLnJlcHJmaWxlbG9jID0gZmlsZWxvY3JlcHIKKyAgICAgICAg
c2VsZi5zdHlsZSA9IHN0eWxlCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAg
ICAgIGlmIHNlbGYuc3R5bGUgPT0gInNob3J0IjoKKyAgICAgICAgICAgIHNlbGYucmVwcmZpbGVs
b2MudG90ZXJtaW5hbCh0dykKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6Cisg
ICAgICAgICAgICAgICAgcmVkID0gbGluZS5zdGFydHN3aXRoKCJFICAgIikKKyAgICAgICAgICAg
ICAgICB0dy5saW5lKGxpbmUsIGJvbGQ9VHJ1ZSwgcmVkPXJlZCkKKyAgICAgICAgICAgICN0dy5s
aW5lKCIiKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHNlbGYucmVwcmZ1bmNhcmdz
OgorICAgICAgICAgICAgc2VsZi5yZXByZnVuY2FyZ3MudG90ZXJtaW5hbCh0dykKKyAgICAgICAg
Zm9yIGxpbmUgaW4gc2VsZi5saW5lczoKKyAgICAgICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0
aCgiRSAgICIpCisgICAgICAgICAgICB0dy5saW5lKGxpbmUsIGJvbGQ9VHJ1ZSwgcmVkPXJlZCkK
KyAgICAgICAgaWYgc2VsZi5yZXBybG9jYWxzOgorICAgICAgICAgICAgI3R3LnNlcChzZWxmLmxv
Y2Fsc3NlcCwgIkxvY2FscyIpCisgICAgICAgICAgICB0dy5saW5lKCIiKQorICAgICAgICAgICAg
c2VsZi5yZXBybG9jYWxzLnRvdGVybWluYWwodHcpCisgICAgICAgIGlmIHNlbGYucmVwcmZpbGVs
b2M6CisgICAgICAgICAgICBpZiBzZWxmLmxpbmVzOgorICAgICAgICAgICAgICAgIHR3LmxpbmUo
IiIpCisgICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwodHcpCisKKyAgICBk
ZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIlc1xuJXNcbiVzIiAlICgiXG4iLmpv
aW4oc2VsZi5saW5lcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXBy
bG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2Mp
CisKK2NsYXNzIFJlcHJGaWxlTG9jYXRpb24oVGVybWluYWxSZXByKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcGF0aCwgbGluZW5vLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5wYXRoID0gc3Ry
KHBhdGgpCisgICAgICAgIHNlbGYubGluZW5vID0gbGluZW5vCisgICAgICAgIHNlbGYubWVzc2Fn
ZSA9IG1lc3NhZ2UKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAgIyBm
aWxlbmFtZSBhbmQgbGluZW5vIG91dHB1dCBmb3IgZWFjaCBlbnRyeSwKKyAgICAgICAgIyB1c2lu
ZyBhbiBvdXRwdXQgZm9ybWF0IHRoYXQgbW9zdCBlZGl0b3JzIHVudGVyc3RhbmQKKyAgICAgICAg
bXNnID0gc2VsZi5tZXNzYWdlCisgICAgICAgIGkgPSBtc2cuZmluZCgiXG4iKQorICAgICAgICBp
ZiBpICE9IC0xOgorICAgICAgICAgICAgbXNnID0gbXNnWzppXQorICAgICAgICB0dy5saW5lKCIl
czolczogJXMiICUoc2VsZi5wYXRoLCBzZWxmLmxpbmVubywgbXNnKSkKKworY2xhc3MgUmVwckxv
Y2FscyhUZXJtaW5hbFJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcyk6CisgICAg
ICAgIHNlbGYubGluZXMgPSBsaW5lcworCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgor
ICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgorICAgICAgICAgICAgdHcubGluZShsaW5l
KQorCitjbGFzcyBSZXByRnVuY0FyZ3MoVGVybWluYWxSZXByKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgYXJncyk6CisgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKKworICAgIGRlZiB0b3Rlcm1p
bmFsKHNlbGYsIHR3KToKKyAgICAgICAgaWYgc2VsZi5hcmdzOgorICAgICAgICAgICAgbGluZXNv
ZmFyID0gIiIKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLmFyZ3M6CisgICAg
ICAgICAgICAgICAgbnMgPSAiJXMgPSAlcyIgJShuYW1lLCB2YWx1ZSkKKyAgICAgICAgICAgICAg
ICBpZiBsZW4obnMpICsgbGVuKGxpbmVzb2ZhcikgKyAyID4gdHcuZnVsbHdpZHRoOgorICAgICAg
ICAgICAgICAgICAgICBpZiBsaW5lc29mYXI6CisgICAgICAgICAgICAgICAgICAgICAgICB0dy5s
aW5lKGxpbmVzb2ZhcikKKyAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyID0gIG5zCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZXNvZmFyOgorICAg
ICAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyICs9ICIsICIgKyBucworICAgICAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyID0gbnMKKyAg
ICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKKyAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmVzb2Zh
cikKKyAgICAgICAgICAgIHR3LmxpbmUoIiIpCisKKworCitvbGRidWlsdGlucyA9IHt9CisKK2Rl
ZiBwYXRjaF9idWlsdGlucyhhc3NlcnRpb249VHJ1ZSwgY29tcGlsZT1UcnVlKToKKyAgICAiIiIg
cHV0IGNvbXBpbGUgYW5kIEFzc2VydGlvbkVycm9yIGJ1aWx0aW5zIHRvIFB5dGhvbidzIGJ1aWx0
aW5zLiAiIiIKKyAgICBpZiBhc3NlcnRpb246CisgICAgICAgIGZyb20gcHkuX2NvZGUgaW1wb3J0
IGFzc2VydGlvbgorICAgICAgICBsID0gb2xkYnVpbHRpbnMuc2V0ZGVmYXVsdCgnQXNzZXJ0aW9u
RXJyb3InLCBbXSkKKyAgICAgICAgbC5hcHBlbmQocHkuYnVpbHRpbi5idWlsdGlucy5Bc3NlcnRp
b25FcnJvcikKKyAgICAgICAgcHkuYnVpbHRpbi5idWlsdGlucy5Bc3NlcnRpb25FcnJvciA9IGFz
c2VydGlvbi5Bc3NlcnRpb25FcnJvcgorICAgIGlmIGNvbXBpbGU6CisgICAgICAgIGwgPSBvbGRi
dWlsdGlucy5zZXRkZWZhdWx0KCdjb21waWxlJywgW10pCisgICAgICAgIGwuYXBwZW5kKHB5LmJ1
aWx0aW4uYnVpbHRpbnMuY29tcGlsZSkKKyAgICAgICAgcHkuYnVpbHRpbi5idWlsdGlucy5jb21w
aWxlID0gcHkuY29kZS5jb21waWxlCisKK2RlZiB1bnBhdGNoX2J1aWx0aW5zKGFzc2VydGlvbj1U
cnVlLCBjb21waWxlPVRydWUpOgorICAgICIiIiByZW1vdmUgY29tcGlsZSBhbmQgQXNzZXJ0aW9u
RXJyb3IgYnVpbHRpbnMgZnJvbSBQeXRob24gYnVpbHRpbnMuICIiIgorICAgIGlmIGFzc2VydGlv
bjoKKyAgICAgICAgcHkuYnVpbHRpbi5idWlsdGlucy5Bc3NlcnRpb25FcnJvciA9IG9sZGJ1aWx0
aW5zWydBc3NlcnRpb25FcnJvciddLnBvcCgpCisgICAgaWYgY29tcGlsZToKKyAgICAgICAgcHku
YnVpbHRpbi5idWlsdGlucy5jb21waWxlID0gb2xkYnVpbHRpbnNbJ2NvbXBpbGUnXS5wb3AoKQor
CitkZWYgZ2V0cmF3Y29kZShvYmosIHRyeWNhbGw9VHJ1ZSk6CisgICAgIiIiIHJldHVybiBjb2Rl
IG9iamVjdCBmb3IgZ2l2ZW4gZnVuY3Rpb24uICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJu
IG9iai5fX2NvZGVfXworICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgb2JqID0g
Z2V0YXR0cihvYmosICdpbV9mdW5jJywgb2JqKQorICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwg
J2Z1bmNfY29kZScsIG9iaikKKyAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICdmX2NvZGUnLCBv
YmopCisgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnX19jb2RlX18nLCBvYmopCisgICAgICAg
IGlmIHRyeWNhbGwgYW5kIG5vdCBoYXNhdHRyKG9iaiwgJ2NvX2ZpcnN0bGluZW5vJyk6CisgICAg
ICAgICAgICBpZiBoYXNhdHRyKG9iaiwgJ19fY2FsbF9fJykgYW5kIG5vdCBpc2NsYXNzKG9iaik6
CisgICAgICAgICAgICAgICAgeCA9IGdldHJhd2NvZGUob2JqLl9fY2FsbF9fLCB0cnljYWxsPUZh
bHNlKQorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoeCwgJ2NvX2ZpcnN0bGluZW5vJyk6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB4CisgICAgICAgIHJldHVybiBvYmoKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fY29kZS9zb3VyY2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3NvdXJj
ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZmM3YjIzYTk2YzMyZTYwM2YxZTY3OGQ1ZGFkMjcyZTg0YTBlMjdk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9zb3VyY2UucHkKQEAgLTAsMCAr
MSw0MTAgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZ2VuZXJhdG9ycworCitmcm9tIGJpc2Vj
dCBpbXBvcnQgYmlzZWN0X3JpZ2h0CitpbXBvcnQgc3lzCitpbXBvcnQgaW5zcGVjdCwgdG9rZW5p
emUKK2ltcG9ydCBweQorZnJvbSB0eXBlcyBpbXBvcnQgTW9kdWxlVHlwZQorY3B5X2NvbXBpbGUg
PSBjb21waWxlCisKK3RyeToKKyAgICBpbXBvcnQgX2FzdAorICAgIGZyb20gX2FzdCBpbXBvcnQg
UHlDRl9PTkxZX0FTVCBhcyBfQVNUX0ZMQUcKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBfQVNU
X0ZMQUcgPSAwCisgICAgX2FzdCA9IE5vbmUKKworCitjbGFzcyBTb3VyY2Uob2JqZWN0KToKKyAg
ICAiIiIgYSBpbW11dGFibGUgb2JqZWN0IGhvbGRpbmcgYSBzb3VyY2UgY29kZSBmcmFnbWVudCwK
KyAgICAgICAgcG9zc2libHkgZGVpbmRlbnRpbmcgaXQuCisgICAgIiIiCisgICAgX2NvbXBpbGVj
b3VudGVyID0gMAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqcGFydHMsICoqa3dhcmdzKToKKyAg
ICAgICAgc2VsZi5saW5lcyA9IGxpbmVzID0gW10KKyAgICAgICAgZGUgPSBrd2FyZ3MuZ2V0KCdk
ZWluZGVudCcsIFRydWUpCisgICAgICAgIHJzdHJpcCA9IGt3YXJncy5nZXQoJ3JzdHJpcCcsIFRy
dWUpCisgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgaWYgbm90IHBhcnQ6
CisgICAgICAgICAgICAgICAgcGFydGxpbmVzID0gW10KKyAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UocGFydCwgU291cmNlKToKKyAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBwYXJ0LmxpbmVz
CisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGFydCwgKHR1cGxlLCBsaXN0KSk6CisgICAg
ICAgICAgICAgICAgcGFydGxpbmVzID0gW3gucnN0cmlwKCJcbiIpIGZvciB4IGluIHBhcnRdCisg
ICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGFydCwgcHkuYnVpbHRpbi5fYmFzZXN0cmluZyk6
CisgICAgICAgICAgICAgICAgcGFydGxpbmVzID0gcGFydC5zcGxpdCgnXG4nKQorICAgICAgICAg
ICAgICAgIGlmIHJzdHJpcDoKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgcGFydGxpbmVzOgor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgcGFydGxpbmVzWy0xXS5zdHJpcCgpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0
bGluZXMucG9wKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGFydGxpbmVz
ID0gZ2V0c291cmNlKHBhcnQsIGRlaW5kZW50PWRlKS5saW5lcworICAgICAgICAgICAgaWYgZGU6
CisgICAgICAgICAgICAgICAgcGFydGxpbmVzID0gZGVpbmRlbnQocGFydGxpbmVzKQorICAgICAg
ICAgICAgbGluZXMuZXh0ZW5kKHBhcnRsaW5lcykKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3Ro
ZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lcyA9PSBvdGhl
ci5saW5lcworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKG90aGVyLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZikg
PT0gb3RoZXIKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9fZ2V0aXRlbV9f
KHNlbGYsIGtleSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCBpbnQpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYubGluZXNba2V5XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
a2V5LnN0ZXAgbm90IGluIChOb25lLCAxKToKKyAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVy
cm9yKCJjYW5ub3Qgc2xpY2UgYSBTb3VyY2Ugd2l0aCBhIHN0ZXAiKQorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX19nZXRzbGljZV9fKGtleS5zdGFydCwga2V5LnN0b3ApCisKKyAgICBkZWYgX19s
ZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLmxpbmVzKQorCisgICAgZGVmIF9f
Z2V0c2xpY2VfXyhzZWxmLCBzdGFydCwgZW5kKToKKyAgICAgICAgbmV3c291cmNlID0gU291cmNl
KCkKKyAgICAgICAgbmV3c291cmNlLmxpbmVzID0gc2VsZi5saW5lc1tzdGFydDplbmRdCisgICAg
ICAgIHJldHVybiBuZXdzb3VyY2UKKworICAgIGRlZiBzdHJpcChzZWxmKToKKyAgICAgICAgIiIi
IHJldHVybiBuZXcgc291cmNlIG9iamVjdCB3aXRoIHRyYWlsaW5nCisgICAgICAgICAgICBhbmQg
bGVhZGluZyBibGFuayBsaW5lcyByZW1vdmVkLgorICAgICAgICAiIiIKKyAgICAgICAgc3RhcnQs
IGVuZCA9IDAsIGxlbihzZWxmKQorICAgICAgICB3aGlsZSBzdGFydCA8IGVuZCBhbmQgbm90IHNl
bGYubGluZXNbc3RhcnRdLnN0cmlwKCk6CisgICAgICAgICAgICBzdGFydCArPSAxCisgICAgICAg
IHdoaWxlIGVuZCA+IHN0YXJ0IGFuZCBub3Qgc2VsZi5saW5lc1tlbmQtMV0uc3RyaXAoKToKKyAg
ICAgICAgICAgIGVuZCAtPSAxCisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgpCisgICAgICAgIHNv
dXJjZS5saW5lc1s6XSA9IHNlbGYubGluZXNbc3RhcnQ6ZW5kXQorICAgICAgICByZXR1cm4gc291
cmNlCisKKyAgICBkZWYgcHV0YXJvdW5kKHNlbGYsIGJlZm9yZT0nJywgYWZ0ZXI9JycsIGluZGVu
dD0nICcgKiA0KToKKyAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNvdXJjZSBvYmpl
Y3Qgd2l0aAorICAgICAgICAgICAgJ2JlZm9yZScgYW5kICdhZnRlcicgd3JhcHBlZCBhcm91bmQg
aXQuCisgICAgICAgICIiIgorICAgICAgICBiZWZvcmUgPSBTb3VyY2UoYmVmb3JlKQorICAgICAg
ICBhZnRlciA9IFNvdXJjZShhZnRlcikKKyAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKKyAg
ICAgICAgbGluZXMgPSBbIChpbmRlbnQgKyBsaW5lKSBmb3IgbGluZSBpbiBzZWxmLmxpbmVzXQor
ICAgICAgICBuZXdzb3VyY2UubGluZXMgPSBiZWZvcmUubGluZXMgKyBsaW5lcyArICBhZnRlci5s
aW5lcworICAgICAgICByZXR1cm4gbmV3c291cmNlCisKKyAgICBkZWYgaW5kZW50KHNlbGYsIGlu
ZGVudD0nICcgKiA0KToKKyAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNvdXJjZSBv
YmplY3Qgd2l0aAorICAgICAgICAgICAgYWxsIGxpbmVzIGluZGVudGVkIGJ5IHRoZSBnaXZlbiBp
bmRlbnQtc3RyaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkK
KyAgICAgICAgbmV3c291cmNlLmxpbmVzID0gWyhpbmRlbnQrbGluZSkgZm9yIGxpbmUgaW4gc2Vs
Zi5saW5lc10KKyAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQorCisgICAgZGVmIGdldHN0YXRlbWVu
dChzZWxmLCBsaW5lbm8sIGFzc2VydGlvbj1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gU291
cmNlIHN0YXRlbWVudCB3aGljaCBjb250YWlucyB0aGUKKyAgICAgICAgICAgIGdpdmVuIGxpbmVu
dW1iZXIgKGNvdW50ZWQgZnJvbSAwKS4KKyAgICAgICAgIiIiCisgICAgICAgIHN0YXJ0LCBlbmQg
PSBzZWxmLmdldHN0YXRlbWVudHJhbmdlKGxpbmVubywgYXNzZXJ0aW9uKQorICAgICAgICByZXR1
cm4gc2VsZltzdGFydDplbmRdCisKKyAgICBkZWYgZ2V0c3RhdGVtZW50cmFuZ2Uoc2VsZiwgbGlu
ZW5vLCBhc3NlcnRpb249RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIChzdGFydCwgZW5kKSB0
dXBsZSB3aGljaCBzcGFucyB0aGUgbWluaW1hbAorICAgICAgICAgICAgc3RhdGVtZW50IHJlZ2lv
biB3aGljaCBjb250YWluaW5nIHRoZSBnaXZlbiBsaW5lbm8uCisgICAgICAgICIiIgorICAgICAg
ICBpZiBub3QgKDAgPD0gbGluZW5vIDwgbGVuKHNlbGYpKToKKyAgICAgICAgICAgIHJhaXNlIElu
ZGV4RXJyb3IoImxpbmVubyBvdXQgb2YgcmFuZ2UiKQorICAgICAgICBhc3QsIHN0YXJ0LCBlbmQg
PSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzZWxmKQorICAgICAgICByZXR1cm4gc3Rh
cnQsIGVuZAorCisgICAgZGVmIGRlaW5kZW50KHNlbGYsIG9mZnNldD1Ob25lKToKKyAgICAgICAg
IiIiIHJldHVybiBhIG5ldyBzb3VyY2Ugb2JqZWN0IGRlaW5kZW50ZWQgYnkgb2Zmc2V0LgorICAg
ICAgICAgICAgSWYgb2Zmc2V0IGlzIE5vbmUgdGhlbiBndWVzcyBhbiBpbmRlbnRhdGlvbiBvZmZz
ZXQgZnJvbQorICAgICAgICAgICAgdGhlIGZpcnN0IG5vbi1ibGFuayBsaW5lLiAgU3Vic2VxdWVu
dCBsaW5lcyB3aGljaCBoYXZlIGEKKyAgICAgICAgICAgIGxvd2VyIGluZGVudGF0aW9uIG9mZnNl
dCB3aWxsIGJlIGNvcGllZCB2ZXJiYXRpbSBhcworICAgICAgICAgICAgdGhleSBhcmUgYXNzdW1l
ZCB0byBiZSBwYXJ0IG9mIG11bHRpbGluZXMuCisgICAgICAgICIiIgorICAgICAgICAjIFhYWCBt
YXliZSB1c2UgdGhlIHRva2VuaXplciB0byBwcm9wZXJseSBoYW5kbGUgbXVsdGlsaW5lCisgICAg
ICAgICMgICAgIHN0cmluZ3MgZXRjLnBwPworICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2UoKQor
ICAgICAgICBuZXdzb3VyY2UubGluZXNbOl0gPSBkZWluZGVudChzZWxmLmxpbmVzLCBvZmZzZXQp
CisgICAgICAgIHJldHVybiBuZXdzb3VyY2UKKworICAgIGRlZiBpc3BhcnNlYWJsZShzZWxmLCBk
ZWluZGVudD1UcnVlKToKKyAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHNvdXJjZSBpcyBwYXJz
ZWFibGUsIGhldXJpc3RpY2FsbHkKKyAgICAgICAgICAgIGRlaW5kZW50aW5nIGl0IGJ5IGRlZmF1
bHQuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgcGFyc2Vy
CisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHN5bnRheF9jaGVja2Vy
ID0gbGFtYmRhIHg6IGNvbXBpbGUoeCwgJ2FzZCcsICdleGVjJykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHN5bnRheF9jaGVja2VyID0gcGFyc2VyLnN1aXRlCisKKyAgICAgICAgaWYgZGVp
bmRlbnQ6CisgICAgICAgICAgICBzb3VyY2UgPSBzdHIoc2VsZi5kZWluZGVudCgpKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICNjb21waWxlKHNvdXJjZSsnXG4nLCAieCIsICJleGVjIikKKyAgICAgICAgICAg
IHN5bnRheF9jaGVja2VyKHNvdXJjZSsnXG4nKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRl
cnJ1cHQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAiXG4iLmpvaW4o
c2VsZi5saW5lcykKKworICAgIGRlZiBjb21waWxlKHNlbGYsIGZpbGVuYW1lPU5vbmUsIG1vZGU9
J2V4ZWMnLAorICAgICAgICAgICAgICAgIGZsYWc9Z2VuZXJhdG9ycy5jb21waWxlcl9mbGFnLAor
ICAgICAgICAgICAgICAgIGRvbnRfaW5oZXJpdD0wLCBfZ2VuZnJhbWU9Tm9uZSk6CisgICAgICAg
ICIiIiByZXR1cm4gY29tcGlsZWQgY29kZSBvYmplY3QuIGlmIGZpbGVuYW1lIGlzIE5vbmUKKyAg
ICAgICAgICAgIGludmVudCBhbiBhcnRpZmljaWFsIGZpbGVuYW1lIHdoaWNoIGRpc3BsYXlzCisg
ICAgICAgICAgICB0aGUgc291cmNlL2xpbmUgcG9zaXRpb24gb2YgdGhlIGNhbGxlciBmcmFtZS4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBmaWxlbmFtZSBvciBweS5wYXRoLmxvY2FsKGZp
bGVuYW1lKS5jaGVjayhmaWxlPTApOgorICAgICAgICAgICAgaWYgX2dlbmZyYW1lIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgX2dlbmZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKSAjIHRoZSBjYWxs
ZXIKKyAgICAgICAgICAgIGZuLGxpbmVubyA9IF9nZW5mcmFtZS5mX2NvZGUuY29fZmlsZW5hbWUs
IF9nZW5mcmFtZS5mX2xpbmVubworICAgICAgICAgICAgYmFzZSA9ICI8JWQtY29kZWdlbiAiICUg
c2VsZi5fY29tcGlsZWNvdW50ZXIKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9jb21waWxl
Y291bnRlciArPSAxCisgICAgICAgICAgICBpZiBub3QgZmlsZW5hbWU6CisgICAgICAgICAgICAg
ICAgZmlsZW5hbWUgPSBiYXNlICsgJyVzOiVkPicgJSAoZm4sIGxpbmVubykKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsgJyVyICVzOiVkPicgJSAo
ZmlsZW5hbWUsIGZuLCBsaW5lbm8pCisgICAgICAgIHNvdXJjZSA9ICJcbiIuam9pbihzZWxmLmxp
bmVzKSArICdcbicKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY28gPSBjcHlfY29tcGlsZShz
b3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFnKQorICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6
CisgICAgICAgICAgICBleCA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAgICAgICAjIHJlLXJl
cHJlc2VudCBzeW50YXggZXJyb3JzIGZyb20gcGFyc2luZyBweXRob24gc3RyaW5ncworICAgICAg
ICAgICAgbXNnbGluZXMgPSBzZWxmLmxpbmVzWzpleC5saW5lbm9dCisgICAgICAgICAgICBpZiBl
eC5vZmZzZXQ6CisgICAgICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5kKCIgIipleC5vZmZzZXQg
KyAnXicpCisgICAgICAgICAgICBtc2dsaW5lcy5hcHBlbmQoIihjb2RlIHdhcyBjb21waWxlZCBw
cm9iYWJseSBmcm9tIGhlcmU6ICVzKSIgJSBmaWxlbmFtZSkKKyAgICAgICAgICAgIG5ld2V4ID0g
U3ludGF4RXJyb3IoJ1xuJy5qb2luKG1zZ2xpbmVzKSkKKyAgICAgICAgICAgIG5ld2V4Lm9mZnNl
dCA9IGV4Lm9mZnNldAorICAgICAgICAgICAgbmV3ZXgubGluZW5vID0gZXgubGluZW5vCisgICAg
ICAgICAgICBuZXdleC50ZXh0ID0gZXgudGV4dAorICAgICAgICAgICAgcmFpc2UgbmV3ZXgKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGZsYWcgJiBfQVNUX0ZMQUc6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNvCisgICAgICAgICAgICBsaW5lcyA9IFsoeCArICJcbiIpIGZvciB4IGlu
IHNlbGYubGluZXNdCisgICAgICAgICAgICBpbXBvcnQgbGluZWNhY2hlCisgICAgICAgICAgICBs
aW5lY2FjaGUuY2FjaGVbZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBmaWxlbmFtZSkKKyAg
ICAgICAgICAgIHJldHVybiBjbworCisjCisjIHB1YmxpYyBBUEkgc2hvcnRjdXQgZnVuY3Rpb25z
CisjCisKK2RlZiBjb21waWxlXyhzb3VyY2UsIGZpbGVuYW1lPU5vbmUsIG1vZGU9J2V4ZWMnLCBm
bGFncz0KKyAgICAgICAgICAgIGdlbmVyYXRvcnMuY29tcGlsZXJfZmxhZywgZG9udF9pbmhlcml0
PTApOgorICAgICIiIiBjb21waWxlIHRoZSBnaXZlbiBzb3VyY2UgdG8gYSByYXcgY29kZSBvYmpl
Y3QsCisgICAgICAgIGFuZCBtYWludGFpbiBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBhbGxvd3Mg
bGF0ZXIKKyAgICAgICAgcmV0cmlldmFsIG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGNvZGUg
b2JqZWN0CisgICAgICAgIGFuZCBhbnkgcmVjdXJzaXZlbHkgY3JlYXRlZCBjb2RlIG9iamVjdHMu
CisgICAgIiIiCisgICAgaWYgX2FzdCBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZShzb3VyY2Us
IF9hc3QuQVNUKToKKyAgICAgICAgIyBYWFggc2hvdWxkIFNvdXJjZSBzdXBwb3J0IGhhdmluZyBB
U1Q/CisgICAgICAgIHJldHVybiBjcHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBm
bGFncywgZG9udF9pbmhlcml0KQorICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkgIyB0
aGUgY2FsbGVyCisgICAgcyA9IFNvdXJjZShzb3VyY2UpCisgICAgY28gPSBzLmNvbXBpbGUoZmls
ZW5hbWUsIG1vZGUsIGZsYWdzLCBfZ2VuZnJhbWU9X2dlbmZyYW1lKQorICAgIHJldHVybiBjbwor
CisKK2RlZiBnZXRmc2xpbmVubyhvYmopOgorICAgICIiIiBSZXR1cm4gc291cmNlIGxvY2F0aW9u
IChwYXRoLCBsaW5lbm8pIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LgorICAgIElmIHRoZSBzb3VyY2Ug
Y2Fubm90IGJlIGRldGVybWluZWQgcmV0dXJuICgiIiwgLTEpCisgICAgIiIiCisgICAgdHJ5Ogor
ICAgICAgICBjb2RlID0gcHkuY29kZS5Db2RlKG9iaikKKyAgICBleGNlcHQgVHlwZUVycm9yOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBmbiA9IChpbnNwZWN0LmdldHNvdXJjZWZpbGUob2Jq
KSBvcgorICAgICAgICAgICAgICAgICAgaW5zcGVjdC5nZXRmaWxlKG9iaikpCisgICAgICAgIGV4
Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gIiIsIC0xCisKKyAgICAgICAgZnNw
YXRoID0gZm4gYW5kIHB5LnBhdGgubG9jYWwoZm4pIG9yIE5vbmUKKyAgICAgICAgbGluZW5vID0g
LTEKKyAgICAgICAgaWYgZnNwYXRoOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IF8sIGxpbmVubyA9IGZpbmRzb3VyY2Uob2JqKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6
CisgICAgICAgICAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIGZzcGF0aCA9IGNvZGUu
cGF0aAorICAgICAgICBsaW5lbm8gPSBjb2RlLmZpcnN0bGluZW5vCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UobGluZW5vLCBpbnQpCisgICAgcmV0dXJuIGZzcGF0aCwgbGluZW5vCisKKyMKKyMgaGVs
cGVyIGZ1bmN0aW9ucworIworCitkZWYgZmluZHNvdXJjZShvYmopOgorICAgIHRyeToKKyAgICAg
ICAgc291cmNlbGluZXMsIGxpbmVubyA9IGluc3BlY3QuZmluZHNvdXJjZShvYmopCisgICAgZXhj
ZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgorICAgICAgICByYWlzZQorICAgIGV4Y2VwdDoKKyAgICAg
ICAgcmV0dXJuIE5vbmUsIC0xCisgICAgc291cmNlID0gU291cmNlKCkKKyAgICBzb3VyY2UubGlu
ZXMgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiBzb3VyY2VsaW5lc10KKyAgICByZXR1cm4g
c291cmNlLCBsaW5lbm8KKworZGVmIGdldHNvdXJjZShvYmosICoqa3dhcmdzKToKKyAgICBvYmog
PSBweS5jb2RlLmdldHJhd2NvZGUob2JqKQorICAgIHRyeToKKyAgICAgICAgc3Ryc3JjID0gaW5z
cGVjdC5nZXRzb3VyY2Uob2JqKQorICAgIGV4Y2VwdCBJbmRlbnRhdGlvbkVycm9yOgorICAgICAg
ICBzdHJzcmMgPSAiXCJCdWdneSBweXRob24gdmVyc2lvbiBjb25zaWRlciB1cGdyYWRpbmcsIGNh
bm5vdCBnZXQgc291cmNlXCIiCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3Ryc3JjLCBzdHIpCisg
ICAgcmV0dXJuIFNvdXJjZShzdHJzcmMsICoqa3dhcmdzKQorCitkZWYgZGVpbmRlbnQobGluZXMs
IG9mZnNldD1Ob25lKToKKyAgICBpZiBvZmZzZXQgaXMgTm9uZToKKyAgICAgICAgZm9yIGxpbmUg
aW4gbGluZXM6CisgICAgICAgICAgICBsaW5lID0gbGluZS5leHBhbmR0YWJzKCkKKyAgICAgICAg
ICAgIHMgPSBsaW5lLmxzdHJpcCgpCisgICAgICAgICAgICBpZiBzOgorICAgICAgICAgICAgICAg
IG9mZnNldCA9IGxlbihsaW5lKS1sZW4ocykKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgb2Zmc2V0ID0gMAorICAgIGlmIG9mZnNldCA9PSAwOgorICAg
ICAgICByZXR1cm4gbGlzdChsaW5lcykKKyAgICBuZXdsaW5lcyA9IFtdCisgICAgZGVmIHJlYWRs
aW5lX2dlbmVyYXRvcihsaW5lcyk6CisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAg
ICAgICAgeWllbGQgbGluZSArICdcbicKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IHlpZWxkICcnCisKKyAgICBpdCA9IHJlYWRsaW5lX2dlbmVyYXRvcihsaW5lcykKKworICAgIHRy
eToKKyAgICAgICAgZm9yIF8sIF8sIChzbGluZSwgXyksIChlbGluZSwgXyksIF8gaW4gdG9rZW5p
emUuZ2VuZXJhdGVfdG9rZW5zKGxhbWJkYTogbmV4dChpdCkpOgorICAgICAgICAgICAgaWYgc2xp
bmUgPiBsZW4obGluZXMpOgorICAgICAgICAgICAgICAgIGJyZWFrICMgRW5kIG9mIGlucHV0IHJl
YWNoZWQKKyAgICAgICAgICAgIGlmIHNsaW5lID4gbGVuKG5ld2xpbmVzKToKKyAgICAgICAgICAg
ICAgICBsaW5lID0gbGluZXNbc2xpbmUgLSAxXS5leHBhbmR0YWJzKCkKKyAgICAgICAgICAgICAg
ICBpZiBsaW5lLmxzdHJpcCgpIGFuZCBsaW5lWzpvZmZzZXRdLmlzc3BhY2UoKToKKyAgICAgICAg
ICAgICAgICAgICAgbGluZSA9IGxpbmVbb2Zmc2V0Ol0gIyBEZWluZGVudAorICAgICAgICAgICAg
ICAgIG5ld2xpbmVzLmFwcGVuZChsaW5lKQorCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShz
bGluZSwgZWxpbmUpOgorICAgICAgICAgICAgICAgICMgRG9uJ3QgZGVpbmRlbnQgY29udGludWlu
ZyBsaW5lcyBvZgorICAgICAgICAgICAgICAgICMgbXVsdGlsaW5lIHRva2VucyAoaS5lLiBtdWx0
aWxpbmUgc3RyaW5ncykKKyAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZXNbaV0p
CisgICAgZXhjZXB0IChJbmRlbnRhdGlvbkVycm9yLCB0b2tlbml6ZS5Ub2tlbkVycm9yKToKKyAg
ICAgICAgcGFzcworICAgICMgQWRkIGFueSBsaW5lcyB3ZSBkaWRuJ3Qgc2VlLiBFLmcuIGlmIGFu
IGV4Y2VwdGlvbiB3YXMgcmFpc2VkLgorICAgIG5ld2xpbmVzLmV4dGVuZChsaW5lc1tsZW4obmV3
bGluZXMpOl0pCisgICAgcmV0dXJuIG5ld2xpbmVzCisKKworZGVmIGdldF9zdGF0ZW1lbnRfc3Rh
cnRlbmQyKGxpbmVubywgbm9kZSk6CisgICAgaW1wb3J0IGFzdAorICAgICMgZmxhdHRlbiBhbGwg
c3RhdGVtZW50cyBhbmQgZXhjZXB0IGhhbmRsZXJzIGludG8gb25lIGxpbmVuby1saXN0CisgICAg
IyBBU1QncyBsaW5lIG51bWJlcnMgc3RhcnQgaW5kZXhpbmcgYXQgMQorICAgIGwgPSBbXQorICAg
IGZvciB4IGluIGFzdC53YWxrKG5vZGUpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHgsIF9hc3Qu
c3RtdCkgb3IgaXNpbnN0YW5jZSh4LCBfYXN0LkV4Y2VwdEhhbmRsZXIpOgorICAgICAgICAgICAg
bC5hcHBlbmQoeC5saW5lbm8gLSAxKQorICAgICAgICAgICAgZm9yIG5hbWUgaW4gImZpbmFsYm9k
eSIsICJvcmVsc2UiOgorICAgICAgICAgICAgICAgIHZhbCA9IGdldGF0dHIoeCwgbmFtZSwgTm9u
ZSkKKyAgICAgICAgICAgICAgICBpZiB2YWw6CisgICAgICAgICAgICAgICAgICAgICMgdHJlYXQg
dGhlIGZpbmFsbHkvb3JlbHNlIHBhcnQgYXMgaXRzIG93biBzdGF0ZW1lbnQKKyAgICAgICAgICAg
ICAgICAgICAgbC5hcHBlbmQodmFsWzBdLmxpbmVubyAtIDEgLSAxKQorICAgIGwuc29ydCgpCisg
ICAgaW5zZXJ0X2luZGV4ID0gYmlzZWN0X3JpZ2h0KGwsIGxpbmVubykKKyAgICBzdGFydCA9IGxb
aW5zZXJ0X2luZGV4IC0gMV0KKyAgICBpZiBpbnNlcnRfaW5kZXggPj0gbGVuKGwpOgorICAgICAg
ICBlbmQgPSBOb25lCisgICAgZWxzZToKKyAgICAgICAgZW5kID0gbFtpbnNlcnRfaW5kZXhdCisg
ICAgcmV0dXJuIHN0YXJ0LCBlbmQKKworCitkZWYgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVu
bywgc291cmNlLCBhc3NlcnRpb249RmFsc2UsIGFzdG5vZGU9Tm9uZSk6CisgICAgaWYgYXN0bm9k
ZSBpcyBOb25lOgorICAgICAgICBjb250ZW50ID0gc3RyKHNvdXJjZSkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgYXN0bm9kZSA9IGNvbXBpbGUoY29udGVudCwgInNvdXJjZSIsICJleGVjIiwg
MTAyNCkgICMgMTAyNCBmb3IgQVNUCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAg
ICAgICAgc3RhcnQsIGVuZCA9IGdldHN0YXRlbWVudHJhbmdlX29sZChsaW5lbm8sIHNvdXJjZSwg
YXNzZXJ0aW9uKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUsIHN0YXJ0LCBlbmQKKyAgICBzdGFy
dCwgZW5kID0gZ2V0X3N0YXRlbWVudF9zdGFydGVuZDIobGluZW5vLCBhc3Rub2RlKQorICAgICMg
d2UgbmVlZCB0byBjb3JyZWN0IHRoZSBlbmQ6CisgICAgIyAtIGFzdC1wYXJzaW5nIHN0cmlwcyBj
b21tZW50cworICAgICMgLSB0aGVyZSBtaWdodCBiZSBlbXB0eSBsaW5lcworICAgICMgLSB3ZSBt
aWdodCBoYXZlIGxlc3NlciBpbmRlbnRlZCBjb2RlIGJsb2NrcyBhdCB0aGUgZW5kCisgICAgaWYg
ZW5kIGlzIE5vbmU6CisgICAgICAgIGVuZCA9IGxlbihzb3VyY2UubGluZXMpCisKKyAgICBpZiBl
bmQgPiBzdGFydCArIDE6CisgICAgICAgICMgbWFrZSBzdXJlIHdlIGRvbid0IHNwYW4gZGlmZmVy
ZW50bHkgaW5kZW50ZWQgY29kZSBibG9ja3MKKyAgICAgICAgIyBieSB1c2luZyB0aGUgQmxvY2tG
aW5kZXIgaGVscGVyIHVzZWQgd2hpY2ggaW5zcGVjdC5nZXRzb3VyY2UoKSB1c2VzIGl0c2VsZgor
ICAgICAgICBibG9ja19maW5kZXIgPSBpbnNwZWN0LkJsb2NrRmluZGVyKCkKKyAgICAgICAgIyBp
ZiB3ZSBzdGFydCB3aXRoIGFuIGluZGVudGVkIGxpbmUsIHB1dCBibG9ja2ZpbmRlciB0byAic3Rh
cnRlZCIgbW9kZQorICAgICAgICBibG9ja19maW5kZXIuc3RhcnRlZCA9IHNvdXJjZS5saW5lc1tz
dGFydF1bMF0uaXNzcGFjZSgpCisgICAgICAgIGl0ID0gKCh4ICsgIlxuIikgZm9yIHggaW4gc291
cmNlLmxpbmVzW3N0YXJ0OmVuZF0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciB0b2sg
aW4gdG9rZW5pemUuZ2VuZXJhdGVfdG9rZW5zKGxhbWJkYTogbmV4dChpdCkpOgorICAgICAgICAg
ICAgICAgIGJsb2NrX2ZpbmRlci50b2tlbmVhdGVyKCp0b2spCisgICAgICAgIGV4Y2VwdCAoaW5z
cGVjdC5FbmRPZkJsb2NrLCBJbmRlbnRhdGlvbkVycm9yKToKKyAgICAgICAgICAgIGVuZCA9IGJs
b2NrX2ZpbmRlci5sYXN0ICsgc3RhcnQKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHBhc3MKKworICAgICMgdGhlIGVuZCBtaWdodCBzdGlsbCBwb2ludCB0byBhIGNvbW1l
bnQgb3IgZW1wdHkgbGluZSwgY29ycmVjdCBpdAorICAgIHdoaWxlIGVuZDoKKyAgICAgICAgbGlu
ZSA9IHNvdXJjZS5saW5lc1tlbmQgLSAxXS5sc3RyaXAoKQorICAgICAgICBpZiBsaW5lLnN0YXJ0
c3dpdGgoIiMiKSBvciBub3QgbGluZToKKyAgICAgICAgICAgIGVuZCAtPSAxCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBicmVhaworICAgIHJldHVybiBhc3Rub2RlLCBzdGFydCwgZW5kCisK
KworZGVmIGdldHN0YXRlbWVudHJhbmdlX29sZChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZh
bHNlKToKKyAgICAiIiIgcmV0dXJuIChzdGFydCwgZW5kKSB0dXBsZSB3aGljaCBzcGFucyB0aGUg
bWluaW1hbAorICAgICAgICBzdGF0ZW1lbnQgcmVnaW9uIHdoaWNoIGNvbnRhaW5pbmcgdGhlIGdp
dmVuIGxpbmVuby4KKyAgICAgICAgcmFpc2UgYW4gSW5kZXhFcnJvciBpZiBubyBzdWNoIHN0YXRl
bWVudHJhbmdlIGNhbiBiZSBmb3VuZC4KKyAgICAiIiIKKyAgICAjIFhYWCB0aGlzIGxvZ2ljIGlz
IG9ubHkgdXNlZCBvbiBweXRob24yLjQgYW5kIGJlbG93CisgICAgIyAxLiBmaW5kIHRoZSBzdGFy
dCBvZiB0aGUgc3RhdGVtZW50CisgICAgZnJvbSBjb2Rlb3AgaW1wb3J0IGNvbXBpbGVfY29tbWFu
ZAorICAgIGZvciBzdGFydCBpbiByYW5nZShsaW5lbm8sIC0xLCAtMSk6CisgICAgICAgIGlmIGFz
c2VydGlvbjoKKyAgICAgICAgICAgIGxpbmUgPSBzb3VyY2UubGluZXNbc3RhcnRdCisgICAgICAg
ICAgICAjIHRoZSBmb2xsb3dpbmcgbGluZXMgYXJlIG5vdCBmdWxseSB0ZXN0ZWQsIGNoYW5nZSB3
aXRoIGNhcmUKKyAgICAgICAgICAgIGlmICdzdXBlcicgaW4gbGluZSBhbmQgJ3NlbGYnIGluIGxp
bmUgYW5kICdfX2luaXRfXycgaW4gbGluZToKKyAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVy
cm9yKCJsaWtlbHkgYSBzdWJjbGFzcyIpCisgICAgICAgICAgICBpZiAiYXNzZXJ0IiBub3QgaW4g
bGluZSBhbmQgInJhaXNlIiBub3QgaW4gbGluZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICB0cnlsaW5lcyA9IHNvdXJjZS5saW5lc1tzdGFydDpsaW5lbm8rMV0KKyAgICAgICAg
IyBxdWljayBoYWNrIHRvIHByZXBhcmUgcGFyc2luZyBhbiBpbmRlbnRlZCBsaW5lIHdpdGgKKyAg
ICAgICAgIyBjb21waWxlX2NvbW1hbmQoKSAod2hpY2ggZXJyb3JzIG9uICJyZXR1cm4iIG91dHNp
ZGUgZGVmcykKKyAgICAgICAgdHJ5bGluZXMuaW5zZXJ0KDAsICdkZWYgeHh4KCk6JykKKyAgICAg
ICAgdHJ5c291cmNlID0gJ1xuICcuam9pbih0cnlsaW5lcykKKyAgICAgICAgIyAgICAgICAgICAg
ICAgXiBzcGFjZSBoZXJlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbXBpbGVfY29tbWFu
ZCh0cnlzb3VyY2UpCisgICAgICAgIGV4Y2VwdCAoU3ludGF4RXJyb3IsIE92ZXJmbG93RXJyb3Is
IFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAjIDIuIGZpbmQg
dGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50CisgICAgICAgIGZvciBlbmQgaW4gcmFuZ2UobGluZW5v
KzEsIGxlbihzb3VyY2UpKzEpOgorICAgICAgICAgICAgdHJ5c291cmNlID0gc291cmNlW3N0YXJ0
OmVuZF0KKyAgICAgICAgICAgIGlmIHRyeXNvdXJjZS5pc3BhcnNlYWJsZSgpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGFydCwgZW5kCisgICAgcmFpc2UgU3ludGF4RXJyb3IoIm5vIHZhbGlk
IHNvdXJjZSByYW5nZSBhcm91bmQgbGluZSAlZCAiICUgKGxpbmVubywpKQorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZjgyNGIyMTBkN2UwOTdhNmQwYTYxZGM3NDNjNzZm
OTdkZGRmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMjMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX19pbml0X18u
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L19jb2RlL19hc3NlcnRpb25uZXcucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2Rl
L19hc3NlcnRpb25vbGQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19weTJ0cmFjZWJhY2sucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L19jb2RlL2Fzc2VydGlvbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvY29kZS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2NvZGUvc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19lcnJv
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX2Vycm9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2Mzc1ZGU5ZmEyOWIxNDhl
ODg4MzcyNWYxZmMzODUyMjhiNWM1OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19l
cnJvci5weQpAQCAtMCwwICsxLDkxIEBACisiIiIKK2NyZWF0ZSBlcnJuby1zcGVjaWZpYyBjbGFz
c2VzIGZvciBJTyBvciBvcyBjYWxscy4KKworIiIiCitmcm9tIHR5cGVzIGltcG9ydCBNb2R1bGVU
eXBlCitpbXBvcnQgc3lzLCBvcywgZXJybm8KKworY2xhc3MgRXJyb3IoRW52aXJvbm1lbnRFcnJv
cik6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIiVzLiVzICVyOiAl
cyAiICUoc2VsZi5fX2NsYXNzX18uX19tb2R1bGVfXywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX2RvY19fLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIgIi5qb2luKG1hcChzdHIsIHNlbGYuYXJncykpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICNyZXByKHNlbGYuYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHMgPSAiWyVzXTogJXMi
ICUoc2VsZi5fX2NsYXNzX18uX19kb2NfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAi
LmpvaW4obWFwKHN0ciwgc2VsZi5hcmdzKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICkK
KyAgICAgICAgcmV0dXJuIHMKKworX3dpbmVycm5vbWFwID0geworICAgIDI6IGVycm5vLkVOT0VO
VCwKKyAgICAzOiBlcnJuby5FTk9FTlQsCisgICAgMTc6IGVycm5vLkVFWElTVCwKKyAgICAxODog
ZXJybm8uRVhERVYsCisgICAgMTM6IGVycm5vLkVCVVNZLCAjIGVtcHR5IGNkIGRyaXZlLCBidXQg
RU5PTUVESVVNIHNlZW1zIHVuYXZhaWxpYWJsZQorICAgIDIyOiBlcnJuby5FTk9URElSLAorICAg
IDIwOiBlcnJuby5FTk9URElSLAorICAgIDI2NzogZXJybm8uRU5PVERJUiwKKyAgICA1OiBlcnJu
by5FQUNDRVMsICAjIGFueXRoaW5nIGJldHRlcj8KK30KKworY2xhc3MgRXJyb3JNYWtlcihNb2R1
bGVUeXBlKToKKyAgICAiIiIgbGF6aWx5IHByb3ZpZGVzIEV4Y2VwdGlvbiBjbGFzc2VzIGZvciBl
YWNoIHBvc3NpYmxlIFBPU0lYIGVycm5vCisgICAgICAgIChhcyBkZWZpbmVkIHBlciB0aGUgJ2Vy
cm5vJyBtb2R1bGUpLiAgQWxsIHN1Y2ggaW5zdGFuY2VzCisgICAgICAgIHN1YmNsYXNzIEVudmly
b25tZW50RXJyb3IuCisgICAgIiIiCisgICAgRXJyb3IgPSBFcnJvcgorICAgIF9lcnJubzJjbGFz
cyA9IHt9CisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5h
bWVbMF0gPT0gIl8iOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAg
ICAgICAgZW5vID0gZ2V0YXR0cihlcnJubywgbmFtZSkKKyAgICAgICAgY2xzID0gc2VsZi5fZ2V0
ZXJybm9jbGFzcyhlbm8pCisgICAgICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgY2xzKQorICAgICAg
ICByZXR1cm4gY2xzCisKKyAgICBkZWYgX2dldGVycm5vY2xhc3Moc2VsZiwgZW5vKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Vycm5vMmNsYXNzW2Vub10KKyAgICAg
ICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgY2xzbmFtZSA9IGVycm5vLmVycm9yY29k
ZS5nZXQoZW5vLCAiVW5rbm93bkVycm5vJWQiICUoZW5vLCkpCisgICAgICAgICAgICBlcnJvcmNs
cyA9IHR5cGUoRXJyb3IpKGNsc25hbWUsIChFcnJvciwpLAorICAgICAgICAgICAgICAgICAgICB7
J19fbW9kdWxlX18nOidweS5lcnJvcicsCisgICAgICAgICAgICAgICAgICAgICAnX19kb2NfXyc6
IG9zLnN0cmVycm9yKGVubyl9KQorICAgICAgICAgICAgc2VsZi5fZXJybm8yY2xhc3NbZW5vXSA9
IGVycm9yY2xzCisgICAgICAgICAgICByZXR1cm4gZXJyb3JjbHMKKworICAgIGRlZiBjaGVja2Vk
X2NhbGwoc2VsZiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIGNhbGwgYSBm
dW5jdGlvbiBhbmQgcmFpc2UgYW4gZXJybm8tZXhjZXB0aW9uIGlmIGFwcGxpY2FibGUuICIiIgor
ICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBleGNlcHQgc2VsZi5FcnJv
cjoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgRW52aXJvbm1l
bnRFcnJvcik6CisgICAgICAgICAgICBjbHMsIHZhbHVlLCB0YiA9IHN5cy5leGNfaW5mbygpCisg
ICAgICAgICAgICBpZiBub3QgaGFzYXR0cih2YWx1ZSwgJ2Vycm5vJyk6CisgICAgICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gRmFsc2UKKyAgICAgICAg
ICAgIGVycm5vID0gdmFsdWUuZXJybm8KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgV2luZG93c0Vycm9yKToKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgTmFtZUVycm9yCisgICAgICAgICAgICBleGNlcHQgTmFtZUVycm9yOgorICAg
ICAgICAgICAgICAgICMgd2UgYXJlIG5vdCBvbiBXaW5kb3dzLCBvciB3ZSBnb3QgYSBwcm9wZXIg
T1NFcnJvcgorICAgICAgICAgICAgICAgIGNscyA9IHNlbGYuX2dldGVycm5vY2xhc3MoZXJybm8p
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICAgICAgY2xzID0gc2VsZi5fZ2V0ZXJybm9jbGFzcyhfd2luZXJybm9tYXBbZXJybm9dKQorICAg
ICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
dmFsdWUKKyAgICAgICAgICAgIHJhaXNlIGNscygiJXMlciIgJSAoZnVuYy5fX25hbWVfXywgYXJn
cykpCisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgICAgIAor
CitlcnJvciA9IEVycm9yTWFrZXIoJ3B5LmVycm9yJykKK3N5cy5tb2R1bGVzW2Vycm9yLl9fbmFt
ZV9fXSA9IGVycm9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9faW8vX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby9fX2luaXRfXy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MzVmMDFmM2FiOWRjYjY1NmRjZTFlNTgwZjBkOThkN2I4YWJmZTNhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIiIi
IGlucHV0L291dHB1dCBoZWxwaW5nICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vY2Fw
dHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL2NhcHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMxNTdlZDk3
OGY3MmRkOGQxOTU2ZmFmNGM1OTU0YzgxNzRiZjRkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX2lvL2NhcHR1cmUucHkKQEAgLTAsMCArMSwzNzEgQEAKK2ltcG9ydCBvcworaW1wb3J0
IHN5cworaW1wb3J0IHB5CitpbXBvcnQgdGVtcGZpbGUKKwordHJ5OgorICAgIGZyb20gaW8gaW1w
b3J0IFN0cmluZ0lPCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBTdHJpbmdJTyBpbXBv
cnQgU3RyaW5nSU8KKworaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLDApOgorICAgIGNsYXNzIFRl
eHRJTyhTdHJpbmdJTyk6CisgICAgICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIHVuaWNvZGUpOgorICAgICAgICAgICAgICAgIGRh
dGEgPSB1bmljb2RlKGRhdGEsIGdldGF0dHIoc2VsZiwgJ19lbmNvZGluZycsICdVVEYtOCcpLCAn
cmVwbGFjZScpCisgICAgICAgICAgICBTdHJpbmdJTy53cml0ZShzZWxmLCBkYXRhKQorZWxzZToK
KyAgICBUZXh0SU8gPSBTdHJpbmdJTworCit0cnk6CisgICAgZnJvbSBpbyBpbXBvcnQgQnl0ZXNJ
TworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGNsYXNzIEJ5dGVzSU8oU3RyaW5nSU8pOgorICAg
ICAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRh
dGEsIHVuaWNvZGUpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigibm90IGEgYnl0
ZSB2YWx1ZTogJXIiICUoZGF0YSwpKQorICAgICAgICAgICAgU3RyaW5nSU8ud3JpdGUoc2VsZiwg
ZGF0YSkKKworcGF0Y2hzeXNkaWN0ID0gezA6ICdzdGRpbicsIDE6ICdzdGRvdXQnLCAyOiAnc3Rk
ZXJyJ30KKworY2xhc3MgRkRDYXB0dXJlOgorICAgICIiIiBDYXB0dXJlIElPIHRvL2Zyb20gYSBn
aXZlbiBvcy1sZXZlbCBmaWxlZGVzY3JpcHRvci4gIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdGFyZ2V0ZmQsIHRtcGZpbGU9Tm9uZSwgbm93PVRydWUsIHBhdGNoc3lzPUZhbHNlKToKKyAg
ICAgICAgIiIiIHNhdmUgdGFyZ2V0ZmQgZGVzY3JpcHRvciwgYW5kIG9wZW4gYSBuZXcKKyAgICAg
ICAgICAgIHRlbXBvcmFyeSBmaWxlIHRoZXJlLiAgSWYgbm8gdG1wZmlsZSBpcworICAgICAgICAg
ICAgc3BlY2lmaWVkIGEgdGVtcGZpbGUuVGVtcGZpbGUoKSB3aWxsIGJlIG9wZW5lZAorICAgICAg
ICAgICAgaW4gdGV4dCBtb2RlLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi50YXJnZXRmZCA9
IHRhcmdldGZkCisgICAgICAgIGlmIHRtcGZpbGUgaXMgTm9uZSBhbmQgdGFyZ2V0ZmQgIT0gMDoK
KyAgICAgICAgICAgIGYgPSB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCd3YisnKQorICAgICAgICAg
ICAgdG1wZmlsZSA9IGR1cGZpbGUoZiwgZW5jb2Rpbmc9IlVURi04IikKKyAgICAgICAgICAgIGYu
Y2xvc2UoKQorICAgICAgICBzZWxmLnRtcGZpbGUgPSB0bXBmaWxlCisgICAgICAgIHNlbGYuX3Nh
dmVmZCA9IG9zLmR1cChzZWxmLnRhcmdldGZkKQorICAgICAgICBpZiBwYXRjaHN5czoKKyAgICAg
ICAgICAgIHNlbGYuX29sZHN5cyA9IGdldGF0dHIoc3lzLCBwYXRjaHN5c2RpY3RbdGFyZ2V0ZmRd
KQorICAgICAgICBpZiBub3c6CisgICAgICAgICAgICBzZWxmLnN0YXJ0KCkKKworICAgIGRlZiBz
dGFydChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MuZnN0YXQoc2VsZi5fc2F2
ZWZkKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoInNhdmVkIGZpbGVkZXNjcmlwdG9yIG5vdCB2YWxpZCwgIgorICAgICAgICAgICAgICAgICJk
aWQgeW91IGNhbGwgc3RhcnQoKSB0d2ljZT8iKQorICAgICAgICBpZiBzZWxmLnRhcmdldGZkID09
IDAgYW5kIG5vdCBzZWxmLnRtcGZpbGU6CisgICAgICAgICAgICBmZCA9IG9zLm9wZW4oZGV2bnVs
bHBhdGgsIG9zLk9fUkRPTkxZKQorICAgICAgICAgICAgb3MuZHVwMihmZCwgMCkKKyAgICAgICAg
ICAgIG9zLmNsb3NlKGZkKQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29sZHN5cycp
OgorICAgICAgICAgICAgICAgIHNldGF0dHIoc3lzLCBwYXRjaHN5c2RpY3Rbc2VsZi50YXJnZXRm
ZF0sIERvbnRSZWFkRnJvbUlucHV0KCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvcy5k
dXAyKHNlbGYudG1wZmlsZS5maWxlbm8oKSwgc2VsZi50YXJnZXRmZCkKKyAgICAgICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgJ19vbGRzeXMnKToKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHN5cywg
cGF0Y2hzeXNkaWN0W3NlbGYudGFyZ2V0ZmRdLCBzZWxmLnRtcGZpbGUpCisKKyAgICBkZWYgZG9u
ZShzZWxmKToKKyAgICAgICAgIiIiIHVucGF0Y2ggYW5kIGNsZWFuIHVwLCByZXR1cm5zIHRoZSBz
ZWxmLnRtcGZpbGUgKGZpbGUgb2JqZWN0KQorICAgICAgICAiIiIKKyAgICAgICAgb3MuZHVwMihz
ZWxmLl9zYXZlZmQsIHNlbGYudGFyZ2V0ZmQpCisgICAgICAgIG9zLmNsb3NlKHNlbGYuX3NhdmVm
ZCkKKyAgICAgICAgaWYgc2VsZi50YXJnZXRmZCAhPSAwOgorICAgICAgICAgICAgc2VsZi50bXBm
aWxlLnNlZWsoMCkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29sZHN5cycpOgorICAgICAg
ICAgICAgc2V0YXR0cihzeXMsIHBhdGNoc3lzZGljdFtzZWxmLnRhcmdldGZkXSwgc2VsZi5fb2xk
c3lzKQorICAgICAgICByZXR1cm4gc2VsZi50bXBmaWxlCisKKyAgICBkZWYgd3JpdGVvcmcoc2Vs
ZiwgZGF0YSk6CisgICAgICAgICIiIiB3cml0ZSBhIHN0cmluZyB0byB0aGUgb3JpZ2luYWwgZmls
ZSBkZXNjcmlwdG9yCisgICAgICAgICIiIgorICAgICAgICB0ZW1wZnAgPSB0ZW1wZmlsZS5UZW1w
b3JhcnlGaWxlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MuZHVwMihzZWxmLl9zYXZl
ZmQsIHRlbXBmcC5maWxlbm8oKSkKKyAgICAgICAgICAgIHRlbXBmcC53cml0ZShkYXRhKQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdGVtcGZwLmNsb3NlKCkKKworCitkZWYgZHVwZmls
ZShmLCBtb2RlPU5vbmUsIGJ1ZmZlcmluZz0wLCByYWlzaW5nPUZhbHNlLCBlbmNvZGluZz1Ob25l
KToKKyAgICAiIiIgcmV0dXJuIGEgbmV3IG9wZW4gZmlsZSBvYmplY3QgdGhhdCdzIGEgZHVwbGlj
YXRlIG9mIGYKKworICAgICAgICBtb2RlIGlzIGR1cGxpY2F0ZWQgaWYgbm90IGdpdmVuLCAnYnVm
ZmVyaW5nJyBjb250cm9scworICAgICAgICBidWZmZXIgc2l6ZSAoZGVmYXVsdGluZyB0byBubyBi
dWZmZXJpbmcpIGFuZCAncmFpc2luZycKKyAgICAgICAgZGVmaW5lcyB3aGV0aGVyIGFuIGV4Y2Vw
dGlvbiBpcyByYWlzZWQgd2hlbiBhbiBpbmNvbXBhdGlibGUKKyAgICAgICAgZmlsZSBvYmplY3Qg
aXMgcGFzc2VkIGluIChpZiByYWlzaW5nIGlzIEZhbHNlLCB0aGUgZmlsZQorICAgICAgICBvYmpl
Y3QgaXRzZWxmIHdpbGwgYmUgcmV0dXJuZWQpCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBm
ZCA9IGYuZmlsZW5vKCkKKyAgICAgICAgbW9kZSA9IG1vZGUgb3IgZi5tb2RlCisgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBpZiByYWlzaW5nOgorICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgcmV0dXJuIGYKKyAgICBuZXdmZCA9IG9zLmR1cChmZCkKKyAgICBpZiBzeXMudmVy
c2lvbl9pbmZvID49ICgzLDApOgorICAgICAgICBpZiBlbmNvZGluZyBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIG1vZGUgPSBtb2RlLnJlcGxhY2UoImIiLCAiIikKKyAgICAgICAgICAgIGJ1ZmZl
cmluZyA9IFRydWUKKyAgICAgICAgcmV0dXJuIG9zLmZkb3BlbihuZXdmZCwgbW9kZSwgYnVmZmVy
aW5nLCBlbmNvZGluZywgY2xvc2VmZD1UcnVlKQorICAgIGVsc2U6CisgICAgICAgIGYgPSBvcy5m
ZG9wZW4obmV3ZmQsIG1vZGUsIGJ1ZmZlcmluZykKKyAgICAgICAgaWYgZW5jb2RpbmcgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRW5jb2RlZEZpbGUoZiwgZW5jb2RpbmcpCisgICAg
ICAgIHJldHVybiBmCisKK2NsYXNzIEVuY29kZWRGaWxlKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIF9zdHJlYW0sIGVuY29kaW5nKToKKyAgICAgICAgc2VsZi5fc3RyZWFtID0gX3N0
cmVhbQorICAgICAgICBzZWxmLmVuY29kaW5nID0gZW5jb2RpbmcKKworICAgIGRlZiB3cml0ZShz
ZWxmLCBvYmopOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgdW5pY29kZSk6CisgICAgICAg
ICAgICBvYmogPSBvYmouZW5jb2RlKHNlbGYuZW5jb2RpbmcpCisgICAgICAgIGVsaWYgaXNpbnN0
YW5jZShvYmosIHN0cik6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBvYmogPSBzdHIob2JqKQorICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGUob2JqKQorCisg
ICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZWxpc3QpOgorICAgICAgICBkYXRhID0gJycuam9p
bihsaW5lbGlzdCkKKyAgICAgICAgc2VsZi53cml0ZShkYXRhKQorCisgICAgZGVmIF9fZ2V0YXR0
cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLl9zdHJlYW0sIG5h
bWUpCisKK2NsYXNzIENhcHR1cmUob2JqZWN0KToKKyAgICBkZWYgY2FsbChjbHMsIGZ1bmMsICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiByZXR1cm4gYSAocmVzLCBvdXQsIGVycikgdHVw
bGUgd2hlcmUKKyAgICAgICAgICAgIG91dCBhbmQgZXJyIHJlcHJlc2VudCB0aGUgb3V0cHV0L2Vy
cm9yIG91dHB1dAorICAgICAgICAgICAgZHVyaW5nIGZ1bmN0aW9uIGV4ZWN1dGlvbi4KKyAgICAg
ICAgICAgIGNhbGwgdGhlIGdpdmVuIGZ1bmN0aW9uIHdpdGggYXJncy9rd2FyZ3MKKyAgICAgICAg
ICAgIGFuZCBjYXB0dXJlIG91dHB1dC9lcnJvciBkdXJpbmcgaXRzIGV4ZWN1dGlvbi4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNvID0gY2xzKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVz
ID0gZnVuYygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBv
dXQsIGVyciA9IHNvLnJlc2V0KCkKKyAgICAgICAgcmV0dXJuIHJlcywgb3V0LCBlcnIKKyAgICBj
YWxsID0gY2xhc3NtZXRob2QoY2FsbCkKKworICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAg
IiIiIHJlc2V0IHN5cy5zdGRvdXQvc3RkZXJyIGFuZCByZXR1cm4gY2FwdHVyZWQgb3V0cHV0IGFz
IHN0cmluZ3MuICIiIgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfcmVzZXQnKToKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIndhcyBhbHJlYWR5IHJlc2V0IikKKyAgICAgICAgc2Vs
Zi5fcmVzZXQgPSBUcnVlCisgICAgICAgIG91dGZpbGUsIGVycmZpbGUgPSBzZWxmLmRvbmUoc2F2
ZT1GYWxzZSkKKyAgICAgICAgb3V0LCBlcnIgPSAiIiwgIiIKKyAgICAgICAgaWYgb3V0ZmlsZSBh
bmQgbm90IG91dGZpbGUuY2xvc2VkOgorICAgICAgICAgICAgb3V0ID0gb3V0ZmlsZS5yZWFkKCkK
KyAgICAgICAgICAgIG91dGZpbGUuY2xvc2UoKQorICAgICAgICBpZiBlcnJmaWxlIGFuZCBlcnJm
aWxlICE9IG91dGZpbGUgYW5kIG5vdCBlcnJmaWxlLmNsb3NlZDoKKyAgICAgICAgICAgIGVyciA9
IGVycmZpbGUucmVhZCgpCisgICAgICAgICAgICBlcnJmaWxlLmNsb3NlKCkKKyAgICAgICAgcmV0
dXJuIG91dCwgZXJyCisKKyAgICBkZWYgc3VzcGVuZChzZWxmKToKKyAgICAgICAgIiIiIHJldHVy
biBjdXJyZW50IHNuYXBzaG90IGNhcHR1cmVzLCBtZW1vcml6ZSB0ZW1wZmlsZXMuICIiIgorICAg
ICAgICBvdXRlcnIgPSBzZWxmLnJlYWRvdXRlcnIoKQorICAgICAgICBvdXRmaWxlLCBlcnJmaWxl
ID0gc2VsZi5kb25lKCkKKyAgICAgICAgcmV0dXJuIG91dGVycgorCisKK2NsYXNzIFN0ZENhcHR1
cmVGRChDYXB0dXJlKToKKyAgICAiIiIgVGhpcyBjbGFzcyBhbGxvd3MgdG8gY2FwdHVyZSB3cml0
ZXMgdG8gRkQxIGFuZCBGRDIKKyAgICAgICAgYW5kIG1heSBjb25uZWN0IGEgTlVMTCBmaWxlIHRv
IEZEMCAoYW5kIHByZXZlbnQKKyAgICAgICAgcmVhZHMgZnJvbSBzeXMuc3RkaW4pLiAgSWYgYW55
IG9mIHRoZSAwLDEsMiBmaWxlIGRlc2NyaXB0b3JzCisgICAgICAgIGlzIGludmFsaWQgaXQgd2ls
bCBub3QgYmUgY2FwdHVyZWQuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dD1U
cnVlLCBlcnI9VHJ1ZSwgbWl4ZWQ9RmFsc2UsCisgICAgICAgIGluXz1UcnVlLCBwYXRjaHN5cz1U
cnVlLCBub3c9VHJ1ZSk6CisgICAgICAgIHNlbGYuX29wdGlvbnMgPSB7CisgICAgICAgICAgICAi
b3V0Ijogb3V0LAorICAgICAgICAgICAgImVyciI6IGVyciwKKyAgICAgICAgICAgICJtaXhlZCI6
IG1peGVkLAorICAgICAgICAgICAgImluXyI6IGluXywKKyAgICAgICAgICAgICJwYXRjaHN5cyI6
IHBhdGNoc3lzLAorICAgICAgICAgICAgIm5vdyI6IG5vdywKKyAgICAgICAgfQorICAgICAgICBz
ZWxmLl9zYXZlKCkKKyAgICAgICAgaWYgbm93OgorICAgICAgICAgICAgc2VsZi5zdGFydGFsbCgp
CisKKyAgICBkZWYgX3NhdmUoc2VsZik6CisgICAgICAgIGluXyA9IHNlbGYuX29wdGlvbnNbJ2lu
XyddCisgICAgICAgIG91dCA9IHNlbGYuX29wdGlvbnNbJ291dCddCisgICAgICAgIGVyciA9IHNl
bGYuX29wdGlvbnNbJ2VyciddCisgICAgICAgIG1peGVkID0gc2VsZi5fb3B0aW9uc1snbWl4ZWQn
XQorICAgICAgICBwYXRjaHN5cyA9IHNlbGYuX29wdGlvbnNbJ3BhdGNoc3lzJ10KKyAgICAgICAg
aWYgaW5fOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuaW5fID0gRkRD
YXB0dXJlKDAsIHRtcGZpbGU9Tm9uZSwgbm93PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBw
YXRjaHN5cz1wYXRjaHN5cykKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgaWYgb3V0OgorICAgICAgICAgICAgdG1wZmlsZSA9IE5vbmUK
KyAgICAgICAgICAgIGlmIGhhc2F0dHIob3V0LCAnd3JpdGUnKToKKyAgICAgICAgICAgICAgICB0
bXBmaWxlID0gb3V0CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5vdXQg
PSBGRENhcHR1cmUoMSwgdG1wZmlsZT10bXBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbm93PUZhbHNlLCBwYXRjaHN5cz1wYXRjaHN5cykKKyAgICAgICAgICAgICAgICBzZWxmLl9v
cHRpb25zWydvdXQnXSA9IHNlbGYub3V0LnRtcGZpbGUKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vy
cm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgZXJyOgorICAgICAgICAgICAg
aWYgb3V0IGFuZCBtaXhlZDoKKyAgICAgICAgICAgICAgICB0bXBmaWxlID0gc2VsZi5vdXQudG1w
ZmlsZQorICAgICAgICAgICAgZWxpZiBoYXNhdHRyKGVyciwgJ3dyaXRlJyk6CisgICAgICAgICAg
ICAgICAgdG1wZmlsZSA9IGVycgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0
bXBmaWxlID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuZXJy
ID0gRkRDYXB0dXJlKDIsIHRtcGZpbGU9dG1wZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdz1GYWxzZSwgcGF0Y2hzeXM9cGF0Y2hzeXMpCisgICAgICAgICAgICAgICAgc2VsZi5f
b3B0aW9uc1snZXJyJ10gPSBzZWxmLmVyci50bXBmaWxlCisgICAgICAgICAgICBleGNlcHQgT1NF
cnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgc3RhcnRhbGwoc2VsZik6Cisg
ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2luXycpOgorICAgICAgICAgICAgc2VsZi5pbl8uc3Rh
cnQoKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdvdXQnKToKKyAgICAgICAgICAgIHNlbGYu
b3V0LnN0YXJ0KCkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXJyJyk6CisgICAgICAgICAg
ICBzZWxmLmVyci5zdGFydCgpCisKKyAgICBkZWYgcmVzdW1lKHNlbGYpOgorICAgICAgICAiIiIg
cmVzdW1lIGNhcHR1cmluZyB3aXRoIG9yaWdpbmFsIHRlbXAgZmlsZXMuICIiIgorICAgICAgICBz
ZWxmLnN0YXJ0YWxsKCkKKworICAgIGRlZiBkb25lKHNlbGYsIHNhdmU9VHJ1ZSk6CisgICAgICAg
ICIiIiByZXR1cm4gKG91dGZpbGUsIGVycmZpbGUpIGFuZCBzdG9wIGNhcHR1cmluZy4gIiIiCisg
ICAgICAgIG91dGZpbGUgPSBlcnJmaWxlID0gTm9uZQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYs
ICdvdXQnKSBhbmQgbm90IHNlbGYub3V0LnRtcGZpbGUuY2xvc2VkOgorICAgICAgICAgICAgb3V0
ZmlsZSA9IHNlbGYub3V0LmRvbmUoKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdlcnInKSBh
bmQgbm90IHNlbGYuZXJyLnRtcGZpbGUuY2xvc2VkOgorICAgICAgICAgICAgZXJyZmlsZSA9IHNl
bGYuZXJyLmRvbmUoKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdpbl8nKToKKyAgICAgICAg
ICAgIHRtcGZpbGUgPSBzZWxmLmluXy5kb25lKCkKKyAgICAgICAgaWYgc2F2ZToKKyAgICAgICAg
ICAgIHNlbGYuX3NhdmUoKQorICAgICAgICByZXR1cm4gb3V0ZmlsZSwgZXJyZmlsZQorCisgICAg
ZGVmIHJlYWRvdXRlcnIoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gc25hcHNob3QgdmFsdWUg
b2Ygc3Rkb3V0L3N0ZGVyciBjYXB0dXJpbmdzLiAiIiIKKyAgICAgICAgaWYgaGFzYXR0cihzZWxm
LCAib3V0Iik6CisgICAgICAgICAgICBvdXQgPSBzZWxmLl9yZWFkc25hcHNob3Qoc2VsZi5vdXQu
dG1wZmlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dCA9ICIiCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgImVyciIpOgorICAgICAgICAgICAgZXJyID0gc2VsZi5fcmVhZHNuYXBz
aG90KHNlbGYuZXJyLnRtcGZpbGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnIgPSAi
IgorICAgICAgICByZXR1cm4gW291dCwgZXJyXQorCisgICAgZGVmIF9yZWFkc25hcHNob3Qoc2Vs
ZiwgZik6CisgICAgICAgIGYuc2VlaygwKQorICAgICAgICByZXMgPSBmLnJlYWQoKQorICAgICAg
ICBlbmMgPSBnZXRhdHRyKGYsICJlbmNvZGluZyIsIE5vbmUpCisgICAgICAgIGlmIGVuYzoKKyAg
ICAgICAgICAgIHJlcyA9IHB5LmJ1aWx0aW4uX3RvdGV4dChyZXMsIGVuYywgInJlcGxhY2UiKQor
ICAgICAgICBmLnRydW5jYXRlKDApCisgICAgICAgIGYuc2VlaygwKQorICAgICAgICByZXR1cm4g
cmVzCisKKworY2xhc3MgU3RkQ2FwdHVyZShDYXB0dXJlKToKKyAgICAiIiIgVGhpcyBjbGFzcyBh
bGxvd3MgdG8gY2FwdHVyZSB3cml0ZXMgdG8gc3lzLnN0ZG91dHxzdGRlcnIgImluLW1lbW9yeSIK
KyAgICAgICAgYW5kIHdpbGwgcmFpc2UgZXJyb3JzIG9uIHRyaWVzIHRvIHJlYWQgZnJvbSBzeXMu
c3RkaW4uIEl0IG9ubHkKKyAgICAgICAgbW9kaWZpZXMgc3lzLnN0ZG91dHxzdGRlcnJ8c3RkaW4g
YXR0cmlidXRlcyBhbmQgZG9lcyBub3QKKyAgICAgICAgdG91Y2ggdW5kZXJseWluZyBGaWxlIERl
c2NyaXB0b3JzICh1c2UgU3RkQ2FwdHVyZUZEIGZvciB0aGF0KS4KKyAgICAiIiIKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgb3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1ZSwgbWl4ZWQ9RmFsc2Us
IG5vdz1UcnVlKToKKyAgICAgICAgc2VsZi5fb2xkb3V0ID0gc3lzLnN0ZG91dAorICAgICAgICBz
ZWxmLl9vbGRlcnIgPSBzeXMuc3RkZXJyCisgICAgICAgIHNlbGYuX29sZGluICA9IHN5cy5zdGRp
bgorICAgICAgICBpZiBvdXQgYW5kIG5vdCBoYXNhdHRyKG91dCwgJ2ZpbGUnKToKKyAgICAgICAg
ICAgIG91dCA9IFRleHRJTygpCisgICAgICAgIHNlbGYub3V0ID0gb3V0CisgICAgICAgIGlmIGVy
cjoKKyAgICAgICAgICAgIGlmIG1peGVkOgorICAgICAgICAgICAgICAgIGVyciA9IG91dAorICAg
ICAgICAgICAgZWxpZiBub3QgaGFzYXR0cihlcnIsICd3cml0ZScpOgorICAgICAgICAgICAgICAg
IGVyciA9IFRleHRJTygpCisgICAgICAgIHNlbGYuZXJyID0gZXJyCisgICAgICAgIHNlbGYuaW5f
ID0gaW5fCisgICAgICAgIGlmIG5vdzoKKyAgICAgICAgICAgIHNlbGYuc3RhcnRhbGwoKQorCisg
ICAgZGVmIHN0YXJ0YWxsKHNlbGYpOgorICAgICAgICBpZiBzZWxmLm91dDoKKyAgICAgICAgICAg
IHN5cy5zdGRvdXQgPSBzZWxmLm91dAorICAgICAgICBpZiBzZWxmLmVycjoKKyAgICAgICAgICAg
IHN5cy5zdGRlcnIgPSBzZWxmLmVycgorICAgICAgICBpZiBzZWxmLmluXzoKKyAgICAgICAgICAg
IHN5cy5zdGRpbiAgPSBzZWxmLmluXyAgPSBEb250UmVhZEZyb21JbnB1dCgpCisKKyAgICBkZWYg
ZG9uZShzZWxmLCBzYXZlPVRydWUpOgorICAgICAgICAiIiIgcmV0dXJuIChvdXRmaWxlLCBlcnJm
aWxlKSBhbmQgc3RvcCBjYXB0dXJpbmcuICIiIgorICAgICAgICBvdXRmaWxlID0gZXJyZmlsZSA9
IE5vbmUKKyAgICAgICAgaWYgc2VsZi5vdXQgYW5kIG5vdCBzZWxmLm91dC5jbG9zZWQ6CisgICAg
ICAgICAgICBzeXMuc3Rkb3V0ID0gc2VsZi5fb2xkb3V0CisgICAgICAgICAgICBvdXRmaWxlID0g
c2VsZi5vdXQKKyAgICAgICAgICAgIG91dGZpbGUuc2VlaygwKQorICAgICAgICBpZiBzZWxmLmVy
ciBhbmQgbm90IHNlbGYuZXJyLmNsb3NlZDoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBzZWxm
Ll9vbGRlcnIKKyAgICAgICAgICAgIGVycmZpbGUgPSBzZWxmLmVycgorICAgICAgICAgICAgZXJy
ZmlsZS5zZWVrKDApCisgICAgICAgIGlmIHNlbGYuaW5fOgorICAgICAgICAgICAgc3lzLnN0ZGlu
ID0gc2VsZi5fb2xkaW4KKyAgICAgICAgcmV0dXJuIG91dGZpbGUsIGVycmZpbGUKKworICAgIGRl
ZiByZXN1bWUoc2VsZik6CisgICAgICAgICIiIiByZXN1bWUgY2FwdHVyaW5nIHdpdGggb3JpZ2lu
YWwgdGVtcCBmaWxlcy4gIiIiCisgICAgICAgIHNlbGYuc3RhcnRhbGwoKQorCisgICAgZGVmIHJl
YWRvdXRlcnIoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gc25hcHNob3QgdmFsdWUgb2Ygc3Rk
b3V0L3N0ZGVyciBjYXB0dXJpbmdzLiAiIiIKKyAgICAgICAgb3V0ID0gZXJyID0gIiIKKyAgICAg
ICAgaWYgc2VsZi5vdXQ6CisgICAgICAgICAgICBvdXQgPSBzZWxmLm91dC5nZXR2YWx1ZSgpCisg
ICAgICAgICAgICBzZWxmLm91dC50cnVuY2F0ZSgwKQorICAgICAgICAgICAgc2VsZi5vdXQuc2Vl
aygwKQorICAgICAgICBpZiBzZWxmLmVycjoKKyAgICAgICAgICAgIGVyciA9IHNlbGYuZXJyLmdl
dHZhbHVlKCkKKyAgICAgICAgICAgIHNlbGYuZXJyLnRydW5jYXRlKDApCisgICAgICAgICAgICBz
ZWxmLmVyci5zZWVrKDApCisgICAgICAgIHJldHVybiBvdXQsIGVycgorCitjbGFzcyBEb250UmVh
ZEZyb21JbnB1dDoKKyAgICAiIiJUZW1wb3Jhcnkgc3R1YiBjbGFzcy4gIElkZWFsbHkgd2hlbiBz
dGRpbiBpcyBhY2Nlc3NlZCwgdGhlCisgICAgY2FwdHVyaW5nIHNob3VsZCBiZSB0dXJuZWQgb2Zm
LCB3aXRoIHBvc3NpYmx5IGFsbCBkYXRhIGNhcHR1cmVkCisgICAgc28gZmFyIHNlbnQgdG8gdGhl
IHNjcmVlbi4gIFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSwgdGhvdWdoLAorICAgIGJlY2F1
c2UgaW4gYXV0b21hdGVkIHRlc3QgcnVucyBpdCBpcyBiZXR0ZXIgdG8gY3Jhc2ggdGhhbgorICAg
IGhhbmcgaW5kZWZpbml0ZWx5LgorICAgICIiIgorICAgIGRlZiByZWFkKHNlbGYsICphcmdzKToK
KyAgICAgICAgcmFpc2UgSU9FcnJvcigicmVhZGluZyBmcm9tIHN0ZGluIHdoaWxlIG91dHB1dCBp
cyBjYXB0dXJlZCIpCisgICAgcmVhZGxpbmUgPSByZWFkCisgICAgcmVhZGxpbmVzID0gcmVhZAor
ICAgIF9faXRlcl9fID0gcmVhZAorCisgICAgZGVmIGZpbGVubyhzZWxmKToKKyAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigicmVkaXJlY3RlZCBTdGRpbiBpcyBwc2V1ZG9maWxlLCBoYXMgbm8gZmls
ZW5vKCkiKQorICAgIGRlZiBpc2F0dHkoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorICAg
IGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgcGFzcworCit0cnk6CisgICAgZGV2bnVsbHBhdGgg
PSBvcy5kZXZudWxsCitleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgaWYgb3MubmFtZSA9PSAn
bnQnOgorICAgICAgICBkZXZudWxscGF0aCA9ICdOVUwnCisgICAgZWxzZToKKyAgICAgICAgZGV2
bnVsbHBhdGggPSAnL2Rldi9udWxsJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vc2FmZXJl
cHIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19pby9zYWZlcmVwci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTE4MjkwZWZk
ZGVjZGM4NTI0YzY0MmFiYmQ1YWJhNzZkYWRhNDRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9faW8vc2FmZXJlcHIucHkKQEAgLTAsMCArMSw3MSBAQAoraW1wb3J0IHB5CitpbXBvcnQg
c3lzCisKK2J1aWx0aW5fcmVwciA9IHJlcHIKKworcmVwcmxpYiA9IHB5LmJ1aWx0aW4uX3RyeWlt
cG9ydCgncmVwcicsICdyZXBybGliJykKKworY2xhc3MgU2FmZVJlcHIocmVwcmxpYi5SZXByKToK
KyAgICAiIiIgc3ViY2xhc3Mgb2YgcmVwci5SZXByIHRoYXQgbGltaXRzIHRoZSByZXN1bHRpbmcg
c2l6ZSBvZiByZXByKCkKKyAgICAgICAgYW5kIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIGV4Y2Vw
dGlvbnMgcmFpc2VkIGR1cmluZyB0aGUgY2FsbC4KKyAgICAiIiIKKyAgICBkZWYgcmVwcihzZWxm
LCB4KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxoZWxwZXIocmVwcmxpYi5SZXByLnJlcHIs
IHNlbGYsIHgpCisKKyAgICBkZWYgcmVwcl91bmljb2RlKHNlbGYsIHgsIGxldmVsKToKKyAgICAg
ICAgIyBTdHJpY3RseSBzcGVha2luZyB3cm9uZyBvbiBuYXJyb3cgYnVpbGRzCisgICAgICAgIGRl
ZiByZXByKHUpOgorICAgICAgICAgICAgaWYgIiciIG5vdCBpbiB1OgorICAgICAgICAgICAgICAg
IHJldHVybiBweS5idWlsdGluLl90b3RleHQoIiclcyciKSAlIHUKKyAgICAgICAgICAgIGVsaWYg
JyInIG5vdCBpbiB1OgorICAgICAgICAgICAgICAgIHJldHVybiBweS5idWlsdGluLl90b3RleHQo
JyIlcyInKSAlIHUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHB5
LmJ1aWx0aW4uX3RvdGV4dCgiJyVzJyIpICUgdS5yZXBsYWNlKCInIiwgciJcJyIpCisgICAgICAg
IHMgPSByZXByKHhbOnNlbGYubWF4c3RyaW5nXSkKKyAgICAgICAgaWYgbGVuKHMpID4gc2VsZi5t
YXhzdHJpbmc6CisgICAgICAgICAgICBpID0gbWF4KDAsIChzZWxmLm1heHN0cmluZy0zKS8vMikK
KyAgICAgICAgICAgIGogPSBtYXgoMCwgc2VsZi5tYXhzdHJpbmctMy1pKQorICAgICAgICAgICAg
cyA9IHJlcHIoeFs6aV0gKyB4W2xlbih4KS1qOl0pCisgICAgICAgICAgICBzID0gc1s6aV0gKyAn
Li4uJyArIHNbbGVuKHMpLWo6XQorICAgICAgICByZXR1cm4gcworCisgICAgZGVmIHJlcHJfaW5z
dGFuY2Uoc2VsZiwgeCwgbGV2ZWwpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbGhlbHBlcihi
dWlsdGluX3JlcHIsIHgpCisKKyAgICBkZWYgX2NhbGxoZWxwZXIoc2VsZiwgY2FsbCwgeCwgKmFy
Z3MpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRyeSB0aGUgdmFuaWxsYSByZXByIGFu
ZCBtYWtlIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIGEgc3RyaW5nCisgICAgICAgICAgICBzID0g
Y2FsbCh4LCAqYXJncykKKyAgICAgICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgorICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgY2xzLCBlLCB0YiA9IHN5
cy5leGNfaW5mbygpCisgICAgICAgICAgICBleGNfbmFtZSA9IGdldGF0dHIoY2xzLCAnX19uYW1l
X18nLCAndW5rbm93bicpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXhjX2lu
Zm8gPSBzdHIoZSkKKyAgICAgICAgICAgIGV4Y2VwdCBweS5idWlsdGluLl9zeXNleDoKKyAgICAg
ICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGV4
Y19pbmZvID0gJ3Vua25vd24nCisgICAgICAgICAgICByZXR1cm4gJzxbJXMoIiVzIikgcmFpc2Vk
IGluIHJlcHIoKV0gJXMgb2JqZWN0IGF0IDB4JXg+JyAlICgKKyAgICAgICAgICAgICAgICBleGNf
bmFtZSwgZXhjX2luZm8sIHguX19jbGFzc19fLl9fbmFtZV9fLCBpZCh4KSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGlmIGxlbihzKSA+IHNlbGYubWF4c2l6ZToKKyAgICAgICAgICAgICAg
ICBpID0gbWF4KDAsIChzZWxmLm1heHNpemUtMykvLzIpCisgICAgICAgICAgICAgICAgaiA9IG1h
eCgwLCBzZWxmLm1heHNpemUtMy1pKQorICAgICAgICAgICAgICAgIHMgPSBzWzppXSArICcuLi4n
ICsgc1tsZW4ocyktajpdCisgICAgICAgICAgICByZXR1cm4gcworCitkZWYgc2FmZXJlcHIob2Jq
LCBtYXhzaXplPTI0MCk6CisgICAgIiIiIHJldHVybiBhIHNpemUtbGltaXRlZCBzYWZlIHJlcHIt
c3RyaW5nIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LgorICAgIEZhaWxpbmcgX19yZXByX18gZnVuY3Rp
b25zIG9mIHVzZXIgaW5zdGFuY2VzIHdpbGwgYmUgcmVwcmVzZW50ZWQKKyAgICB3aXRoIGEgc2hv
cnQgZXhjZXB0aW9uIGluZm8gYW5kICdzYWZlcmVwcicgZ2VuZXJhbGx5IHRha2VzCisgICAgY2Fy
ZSB0byBuZXZlciByYWlzZSBleGNlcHRpb25zIGl0c2VsZi4gIFRoaXMgZnVuY3Rpb24gaXMgYSB3
cmFwcGVyCisgICAgYXJvdW5kIHRoZSBSZXByL3JlcHJsaWIgZnVuY3Rpb25hbGl0eSBvZiB0aGUg
c3RhbmRhcmQgMi42IGxpYi4KKyAgICAiIiIKKyAgICAjIHJldmlldyBleGNlcHRpb24gaGFuZGxp
bmcKKyAgICBzcmVwciA9IFNhZmVSZXByKCkKKyAgICBzcmVwci5tYXhzdHJpbmcgPSBtYXhzaXpl
CisgICAgc3JlcHIubWF4c2l6ZSA9IG1heHNpemUKKyAgICBzcmVwci5tYXhvdGhlciA9IDE2MAor
ICAgIHJldHVybiBzcmVwci5yZXByKG9iaikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3Rl
cm1pbmFsd3JpdGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vdGVybWluYWx3cml0ZXIucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzRkMzEyNTlkYWM5NDI5MmQ1NDkwNDgyNGRhYmUzMWIxY2U4ZDUzZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3Rlcm1pbmFsd3JpdGVyLnB5CkBAIC0wLDAgKzEsMzg0
IEBACisiIiIKKworSGVscGVyIGZ1bmN0aW9ucyBmb3Igd3JpdGluZyB0byB0ZXJtaW5hbHMgYW5k
IGZpbGVzLgorCisiIiIKKworCitpbXBvcnQgc3lzLCBvcworaW1wb3J0IHB5CitweTNrID0gc3lz
LnZlcnNpb25faW5mb1swXSA+PSAzCitmcm9tIHB5LmJ1aWx0aW4gaW1wb3J0IHRleHQsIGJ5dGVz
CisKK3dpbjMyX2FuZF9jdHlwZXMgPSBGYWxzZQorY29sb3JhbWEgPSBOb25lCitpZiBzeXMucGxh
dGZvcm0gPT0gIndpbjMyIjoKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCBjb2xvcmFtYQorICAg
IGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IGN0
eXBlcworICAgICAgICAgICAgd2luMzJfYW5kX2N0eXBlcyA9IFRydWUKKyAgICAgICAgZXhjZXB0
IEltcG9ydEVycm9yOgorICAgICAgICAgICAgcGFzcworCisKK2RlZiBfZ2V0ZGltZW5zaW9ucygp
OgorICAgIGltcG9ydCB0ZXJtaW9zLGZjbnRsLHN0cnVjdAorICAgIGNhbGwgPSBmY250bC5pb2N0
bCgxLHRlcm1pb3MuVElPQ0dXSU5TWiwiXDAwMCIqOCkKKyAgICBoZWlnaHQsd2lkdGggPSBzdHJ1
Y3QudW5wYWNrKCAiaGhoaCIsIGNhbGwgKSBbOjJdCisgICAgcmV0dXJuIGhlaWdodCwgd2lkdGgK
KworCitkZWYgZ2V0X3Rlcm1pbmFsX3dpZHRoKCk6CisgICAgd2lkdGggPSAwCisgICAgdHJ5Ogor
ICAgICAgICBfLCB3aWR0aCA9IF9nZXRkaW1lbnNpb25zKCkKKyAgICBleGNlcHQgcHkuYnVpbHRp
bi5fc3lzZXg6CisgICAgICAgIHJhaXNlCisgICAgZXhjZXB0OgorICAgICAgICAjIHBhc3MgdG8g
ZmFsbGJhY2sgYmVsb3cKKyAgICAgICAgcGFzcworCisgICAgaWYgd2lkdGggPT0gMDoKKyAgICAg
ICAgIyBGQUxMQkFDSzoKKyAgICAgICAgIyAqIHNvbWUgZXhjZXB0aW9uIGhhcHBlbmVkCisgICAg
ICAgICMgKiBvciB0aGlzIGlzIGVtYWNzIHRlcm1pbmFsIHdoaWNoIHJlcG9ydHMgKDAsMCkKKyAg
ICAgICAgd2lkdGggPSBpbnQob3MuZW52aXJvbi5nZXQoJ0NPTFVNTlMnLCA4MCkpCisKKyAgICAj
IFhYWCB0aGUgd2luZG93cyBnZXRkaW1lbnNpb25zIG1heSBiZSBib2d1cywgbGV0J3Mgc2FuaWZ5
IGEgYml0CisgICAgaWYgd2lkdGggPCA0MDoKKyAgICAgICAgd2lkdGggPSA4MAorICAgIHJldHVy
biB3aWR0aAorCit0ZXJtaW5hbF93aWR0aCA9IGdldF90ZXJtaW5hbF93aWR0aCgpCisKKyMgWFhY
IHVuaWZ5IHdpdGggX2VzY2FwZWQgZnVuYyBiZWxvdworZGVmIGFuc2lfcHJpbnQodGV4dCwgZXNj
LCBmaWxlPU5vbmUsIG5ld2xpbmU9VHJ1ZSwgZmx1c2g9RmFsc2UpOgorICAgIGlmIGZpbGUgaXMg
Tm9uZToKKyAgICAgICAgZmlsZSA9IHN5cy5zdGRlcnIKKyAgICB0ZXh0ID0gdGV4dC5yc3RyaXAo
KQorICAgIGlmIGVzYyBhbmQgbm90IGlzaW5zdGFuY2UoZXNjLCB0dXBsZSk6CisgICAgICAgIGVz
YyA9IChlc2MsKQorICAgIGlmIGVzYyBhbmQgc3lzLnBsYXRmb3JtICE9ICJ3aW4zMiIgYW5kIGZp
bGUuaXNhdHR5KCk6CisgICAgICAgIHRleHQgPSAoJycuam9pbihbJ1x4MWJbJXNtJyAlIGNvZCBm
b3IgY29kIGluIGVzY10pICArCisgICAgICAgICAgICAgICAgdGV4dCArCisgICAgICAgICAgICAg
ICAgJ1x4MWJbMG0nKSAgICAgIyBBTlNJIGNvbG9yIGNvZGUgInJlc2V0IgorICAgIGlmIG5ld2xp
bmU6CisgICAgICAgIHRleHQgKz0gJ1xuJworCisgICAgaWYgZXNjIGFuZCB3aW4zMl9hbmRfY3R5
cGVzIGFuZCBmaWxlLmlzYXR0eSgpOgorICAgICAgICBpZiAxIGluIGVzYzoKKyAgICAgICAgICAg
IGJvbGQgPSBUcnVlCisgICAgICAgICAgICBlc2MgPSB0dXBsZShbeCBmb3IgeCBpbiBlc2MgaWYg
eCAhPSAxXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJvbGQgPSBGYWxzZQorICAgICAg
ICBlc2N0YWJsZSA9IHsoKSAgIDogRk9SRUdST1VORF9XSElURSwgICAgICAgICAgICAgICAgICMg
bm9ybWFsCisgICAgICAgICAgICAgICAgICAgICgzMSwpOiBGT1JFR1JPVU5EX1JFRCwgICAgICAg
ICAgICAgICAgICAgIyByZWQKKyAgICAgICAgICAgICAgICAgICAgKDMyLCk6IEZPUkVHUk9VTkRf
R1JFRU4sICAgICAgICAgICAgICAgICAjIGdyZWVuCisgICAgICAgICAgICAgICAgICAgICgzMywp
OiBGT1JFR1JPVU5EX0dSRUVOfEZPUkVHUk9VTkRfUkVELCAgIyB5ZWxsb3cKKyAgICAgICAgICAg
ICAgICAgICAgKDM0LCk6IEZPUkVHUk9VTkRfQkxVRSwgICAgICAgICAgICAgICAgICAjIGJsdWUK
KyAgICAgICAgICAgICAgICAgICAgKDM1LCk6IEZPUkVHUk9VTkRfQkxVRXxGT1JFR1JPVU5EX1JF
RCwgICAjIHB1cnBsZQorICAgICAgICAgICAgICAgICAgICAoMzYsKTogRk9SRUdST1VORF9CTFVF
fEZPUkVHUk9VTkRfR1JFRU4sICMgY3lhbgorICAgICAgICAgICAgICAgICAgICAoMzcsKTogRk9S
RUdST1VORF9XSElURSwgICAgICAgICAgICAgICAgICMgd2hpdGUKKyAgICAgICAgICAgICAgICAg
ICAgKDM5LCk6IEZPUkVHUk9VTkRfV0hJVEUsICAgICAgICAgICAgICAgICAjIHJlc2V0CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgYXR0ciA9IGVzY3RhYmxlLmdldChlc2MsIEZPUkVH
Uk9VTkRfV0hJVEUpCisgICAgICAgIGlmIGJvbGQ6CisgICAgICAgICAgICBhdHRyIHw9IEZPUkVH
Uk9VTkRfSU5URU5TSVRZCisgICAgICAgIFNURF9PVVRQVVRfSEFORExFID0gLTExCisgICAgICAg
IFNURF9FUlJPUl9IQU5ETEUgPSAtMTIKKyAgICAgICAgaWYgZmlsZSBpcyBzeXMuc3RkZXJyOgor
ICAgICAgICAgICAgaGFuZGxlID0gR2V0U3RkSGFuZGxlKFNURF9FUlJPUl9IQU5ETEUpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBoYW5kbGUgPSBHZXRTdGRIYW5kbGUoU1REX09VVFBVVF9I
QU5ETEUpCisgICAgICAgIG9sZGNvbG9ycyA9IEdldENvbnNvbGVJbmZvKGhhbmRsZSkud0F0dHJp
YnV0ZXMKKyAgICAgICAgYXR0ciB8PSAob2xkY29sb3JzICYgMHgwZjApCisgICAgICAgIFNldENv
bnNvbGVUZXh0QXR0cmlidXRlKGhhbmRsZSwgYXR0cikKKyAgICAgICAgd2hpbGUgbGVuKHRleHQp
ID4gMzI3Njg6CisgICAgICAgICAgICBmaWxlLndyaXRlKHRleHRbOjMyNzY4XSkKKyAgICAgICAg
ICAgIHRleHQgPSB0ZXh0WzMyNzY4Ol0KKyAgICAgICAgaWYgdGV4dDoKKyAgICAgICAgICAgIGZp
bGUud3JpdGUodGV4dCkKKyAgICAgICAgU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUoaGFuZGxlLCBv
bGRjb2xvcnMpCisgICAgZWxzZToKKyAgICAgICAgZmlsZS53cml0ZSh0ZXh0KQorCisgICAgaWYg
Zmx1c2g6CisgICAgICAgIGZpbGUuZmx1c2goKQorCitkZWYgc2hvdWxkX2RvX21hcmt1cChmaWxl
KToKKyAgICBpZiBvcy5lbnZpcm9uLmdldCgnUFlfQ09MT1JTJykgPT0gJzEnOgorICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgIGlmIG9zLmVudmlyb24uZ2V0KCdQWV9DT0xPUlMnKSA9PSAnMCc6Cisg
ICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBoYXNhdHRyKGZpbGUsICdpc2F0dHknKSBh
bmQgZmlsZS5pc2F0dHkoKSBcCisgICAgICAgICAgIGFuZCBvcy5lbnZpcm9uLmdldCgnVEVSTScp
ICE9ICdkdW1iJyBcCisgICAgICAgICAgIGFuZCBub3QgKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRo
KCdqYXZhJykgYW5kIG9zLl9uYW1lID09ICdudCcpCisKK2NsYXNzIFRlcm1pbmFsV3JpdGVyKG9i
amVjdCk6CisgICAgX2VzY3RhYmxlID0gZGljdChibGFjaz0zMCwgcmVkPTMxLCBncmVlbj0zMiwg
eWVsbG93PTMzLAorICAgICAgICAgICAgICAgICAgICAgYmx1ZT0zNCwgcHVycGxlPTM1LCBjeWFu
PTM2LCB3aGl0ZT0zNywKKyAgICAgICAgICAgICAgICAgICAgIEJsYWNrPTQwLCBSZWQ9NDEsIEdy
ZWVuPTQyLCBZZWxsb3c9NDMsCisgICAgICAgICAgICAgICAgICAgICBCbHVlPTQ0LCBQdXJwbGU9
NDUsIEN5YW49NDYsIFdoaXRlPTQ3LAorICAgICAgICAgICAgICAgICAgICAgYm9sZD0xLCBsaWdo
dD0yLCBibGluaz01LCBpbnZlcnQ9NykKKworICAgICMgWFhYIGRlcHJlY2F0ZSBzdHJpbmdpbyBh
cmd1bWVudAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlPU5vbmUsIHN0cmluZ2lvPUZhbHNl
LCBlbmNvZGluZz1Ob25lKToKKyAgICAgICAgaWYgZmlsZSBpcyBOb25lOgorICAgICAgICAgICAg
aWYgc3RyaW5naW86CisgICAgICAgICAgICAgICAgc2VsZi5zdHJpbmdpbyA9IGZpbGUgPSBweS5p
by5UZXh0SU8oKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmcm9tIHN5cyBp
bXBvcnQgc3Rkb3V0IGFzIGZpbGUKKyAgICAgICAgZWxpZiBweS5idWlsdGluLmNhbGxhYmxlKGZp
bGUpIGFuZCBub3QgKAorICAgICAgICAgICAgIGhhc2F0dHIoZmlsZSwgIndyaXRlIikgYW5kIGhh
c2F0dHIoZmlsZSwgImZsdXNoIikpOgorICAgICAgICAgICAgZmlsZSA9IFdyaXRlRmlsZShmaWxl
LCBlbmNvZGluZz1lbmNvZGluZykKKyAgICAgICAgaWYgaGFzYXR0cihmaWxlLCAiaXNhdHR5Iikg
YW5kIGZpbGUuaXNhdHR5KCkgYW5kIGNvbG9yYW1hOgorICAgICAgICAgICAgZmlsZSA9IGNvbG9y
YW1hLkFuc2lUb1dpbjMyKGZpbGUpLnN0cmVhbQorICAgICAgICBzZWxmLmVuY29kaW5nID0gZW5j
b2Rpbmcgb3IgZ2V0YXR0cihmaWxlLCAnZW5jb2RpbmcnLCAidXRmLTgiKQorICAgICAgICBzZWxm
Ll9maWxlID0gZmlsZQorICAgICAgICBzZWxmLmhhc21hcmt1cCA9IHNob3VsZF9kb19tYXJrdXAo
ZmlsZSkKKyAgICAgICAgc2VsZi5fbGFzdGxlbiA9IDAKKyAgICAgICAgc2VsZi5fY2hhcnNfb25f
Y3VycmVudF9saW5lID0gMAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1bGx3aWR0aChzZWxm
KToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX3Rlcm1pbmFsX3dpZHRoJyk6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fdGVybWluYWxfd2lkdGgKKyAgICAgICAgcmV0dXJuIGdldF90ZXJt
aW5hbF93aWR0aCgpCisKKyAgICBAZnVsbHdpZHRoLnNldHRlcgorICAgIGRlZiBmdWxsd2lkdGgo
c2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl90ZXJtaW5hbF93aWR0aCA9IHZhbHVlCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgY2hhcnNfb25fY3VycmVudF9saW5lKHNlbGYpOgorICAgICAg
ICAiIiJSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gc28gZmFyIGluIHRo
ZSBjdXJyZW50IGxpbmUuCisKKyAgICAgICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGNvdW50IGRv
ZXMgbm90IHByb2R1Y2UgY29ycmVjdCByZXN1bHRzIGFmdGVyIGEgcmVsaW5lKCkgY2FsbCwKKyAg
ICAgICAgc2VlICMxNjQuCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS41LjAKKworICAg
ICAgICA6cnR5cGU6IGludAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NoYXJz
X29uX2N1cnJlbnRfbGluZQorCisgICAgZGVmIF9lc2NhcGVkKHNlbGYsIHRleHQsIGVzYyk6Cisg
ICAgICAgIGlmIGVzYyBhbmQgc2VsZi5oYXNtYXJrdXA6CisgICAgICAgICAgICB0ZXh0ID0gKCcn
LmpvaW4oWydceDFiWyVzbScgJSBjb2QgZm9yIGNvZCBpbiBlc2NdKSAgKworICAgICAgICAgICAg
ICAgIHRleHQgKydceDFiWzBtJykKKyAgICAgICAgcmV0dXJuIHRleHQKKworICAgIGRlZiBtYXJr
dXAoc2VsZiwgdGV4dCwgKiprdyk6CisgICAgICAgIGVzYyA9IFtdCisgICAgICAgIGZvciBuYW1l
IGluIGt3OgorICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fZXNjdGFibGU6CisgICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBtYXJrdXA6ICVyIiAlKG5hbWUs
KSkKKyAgICAgICAgICAgIGlmIGt3W25hbWVdOgorICAgICAgICAgICAgICAgIGVzYy5hcHBlbmQo
c2VsZi5fZXNjdGFibGVbbmFtZV0pCisgICAgICAgIHJldHVybiBzZWxmLl9lc2NhcGVkKHRleHQs
IHR1cGxlKGVzYykpCisKKyAgICBkZWYgc2VwKHNlbGYsIHNlcGNoYXIsIHRpdGxlPU5vbmUsIGZ1
bGx3aWR0aD1Ob25lLCAqKmt3KToKKyAgICAgICAgaWYgZnVsbHdpZHRoIGlzIE5vbmU6CisgICAg
ICAgICAgICBmdWxsd2lkdGggPSBzZWxmLmZ1bGx3aWR0aAorICAgICAgICAjIHRoZSBnb2FsIGlz
IHRvIGhhdmUgdGhlIGxpbmUgYmUgYXMgbG9uZyBhcyBwb3NzaWJsZQorICAgICAgICAjIHVuZGVy
IHRoZSBjb25kaXRpb24gdGhhdCBsZW4obGluZSkgPD0gZnVsbHdpZHRoCisgICAgICAgIGlmIHN5
cy5wbGF0Zm9ybSA9PSAid2luMzIiOgorICAgICAgICAgICAgIyBpZiB3ZSBwcmludCBpbiB0aGUg
bGFzdCBjb2x1bW4gb24gd2luZG93cyB3ZSBhcmUgb24gYQorICAgICAgICAgICAgIyBuZXcgbGlu
ZSBidXQgdGhlcmUgaXMgbm8gd2F5IHRvIHZlcmlmeS9uZXV0cmFsaXplIHRoaXMKKyAgICAgICAg
ICAgICMgKHdlIG1heSBub3Qga25vdyB0aGUgZXhhY3QgbGluZSB3aWR0aCkKKyAgICAgICAgICAg
ICMgc28gbGV0J3MgYmUgZGVmZW5zaXZlIHRvIGF2b2lkIGVtcHR5IGxpbmVzIGluIHRoZSBvdXRw
dXQKKyAgICAgICAgICAgIGZ1bGx3aWR0aCAtPSAxCisgICAgICAgIGlmIHRpdGxlIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgIyB3ZSB3YW50IDIgKyAyKmxlbihmaWxsKSArIGxlbih0aXRsZSkg
PD0gZnVsbHdpZHRoCisgICAgICAgICAgICAjIGkuZS4gICAgMiArIDIqbGVuKHNlcGNoYXIpKk4g
KyBsZW4odGl0bGUpIDw9IGZ1bGx3aWR0aAorICAgICAgICAgICAgIyAgICAgICAgIDIqbGVuKHNl
cGNoYXIpKk4gPD0gZnVsbHdpZHRoIC0gbGVuKHRpdGxlKSAtIDIKKyAgICAgICAgICAgICMgICAg
ICAgICBOIDw9IChmdWxsd2lkdGggLSBsZW4odGl0bGUpIC0gMikgLy8gKDIqbGVuKHNlcGNoYXIp
KQorICAgICAgICAgICAgTiA9IChmdWxsd2lkdGggLSBsZW4odGl0bGUpIC0gMikgLy8gKDIqbGVu
KHNlcGNoYXIpKQorICAgICAgICAgICAgZmlsbCA9IHNlcGNoYXIgKiBOCisgICAgICAgICAgICBs
aW5lID0gIiVzICVzICVzIiAlIChmaWxsLCB0aXRsZSwgZmlsbCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICMgd2Ugd2FudCBsZW4oc2VwY2hhcikqTiA8PSBmdWxsd2lkdGgKKyAgICAgICAg
ICAgICMgaS5lLiAgICBOIDw9IGZ1bGx3aWR0aCAvLyBsZW4oc2VwY2hhcikKKyAgICAgICAgICAg
IGxpbmUgPSBzZXBjaGFyICogKGZ1bGx3aWR0aCAvLyBsZW4oc2VwY2hhcikpCisgICAgICAgICMg
aW4gc29tZSBzaXR1YXRpb25zIHRoZXJlIGlzIHJvb20gZm9yIGFuIGV4dHJhIHNlcGNoYXIgYXQg
dGhlIHJpZ2h0LAorICAgICAgICAjIGluIHBhcnRpY3VsYXIgaWYgd2UgY29uc2lkZXIgdGhhdCB3
aXRoIGEgc2VwY2hhciBsaWtlICJfICIgdGhlCisgICAgICAgICMgdHJhaWxpbmcgc3BhY2UgaXMg
bm90IGltcG9ydGFudCBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lCisgICAgICAgIGlmIGxlbihsaW5l
KSArIGxlbihzZXBjaGFyLnJzdHJpcCgpKSA8PSBmdWxsd2lkdGg6CisgICAgICAgICAgICBsaW5l
ICs9IHNlcGNoYXIucnN0cmlwKCkKKworICAgICAgICBzZWxmLmxpbmUobGluZSwgKiprdykKKwor
ICAgIGRlZiB3cml0ZShzZWxmLCBtc2csICoqa3cpOgorICAgICAgICBpZiBtc2c6CisgICAgICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShtc2csIChieXRlcywgdGV4dCkpOgorICAgICAgICAgICAg
ICAgIG1zZyA9IHRleHQobXNnKQorCisgICAgICAgICAgICBzZWxmLl91cGRhdGVfY2hhcnNfb25f
Y3VycmVudF9saW5lKG1zZykKKworICAgICAgICAgICAgaWYgc2VsZi5oYXNtYXJrdXAgYW5kIGt3
OgorICAgICAgICAgICAgICAgIG1hcmt1cG1zZyA9IHNlbGYubWFya3VwKG1zZywgKiprdykKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWFya3VwbXNnID0gbXNnCisgICAgICAg
ICAgICB3cml0ZV9vdXQoc2VsZi5fZmlsZSwgbWFya3VwbXNnKQorCisgICAgZGVmIF91cGRhdGVf
Y2hhcnNfb25fY3VycmVudF9saW5lKHNlbGYsIHRleHQpOgorICAgICAgICBmaWVsZHMgPSB0ZXh0
LnJzcGxpdCgnXG4nLCAxKQorICAgICAgICBpZiAnXG4nIGluIHRleHQ6CisgICAgICAgICAgICBz
ZWxmLl9jaGFyc19vbl9jdXJyZW50X2xpbmUgPSBsZW4oZmllbGRzWy0xXSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYuX2NoYXJzX29uX2N1cnJlbnRfbGluZSArPSBsZW4oZmllbGRz
Wy0xXSkKKworICAgIGRlZiBsaW5lKHNlbGYsIHM9JycsICoqa3cpOgorICAgICAgICBzZWxmLndy
aXRlKHMsICoqa3cpCisgICAgICAgIHNlbGYuX2NoZWNrZmlsbChzKQorICAgICAgICBzZWxmLndy
aXRlKCdcbicpCisKKyAgICBkZWYgcmVsaW5lKHNlbGYsIGxpbmUsICoqa3cpOgorICAgICAgICBp
ZiBub3Qgc2VsZi5oYXNtYXJrdXA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5u
b3QgdXNlIHJld3JpdGUtbGluZSB3aXRob3V0IHRlcm1pbmFsIikKKyAgICAgICAgc2VsZi53cml0
ZShsaW5lLCAqKmt3KQorICAgICAgICBzZWxmLl9jaGVja2ZpbGwobGluZSkKKyAgICAgICAgc2Vs
Zi53cml0ZSgnXHInKQorICAgICAgICBzZWxmLl9sYXN0bGVuID0gbGVuKGxpbmUpCisKKyAgICBk
ZWYgX2NoZWNrZmlsbChzZWxmLCBsaW5lKToKKyAgICAgICAgZGlmZjJsYXN0ID0gc2VsZi5fbGFz
dGxlbiAtIGxlbihsaW5lKQorICAgICAgICBpZiBkaWZmMmxhc3QgPiAwOgorICAgICAgICAgICAg
c2VsZi53cml0ZSgiICIgKiBkaWZmMmxhc3QpCisKK2NsYXNzIFdpbjMyQ29uc29sZVdyaXRlcihU
ZXJtaW5hbFdyaXRlcik6CisgICAgZGVmIHdyaXRlKHNlbGYsIG1zZywgKiprdyk6CisgICAgICAg
IGlmIG1zZzoKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG1zZywgKGJ5dGVzLCB0ZXh0
KSk6CisgICAgICAgICAgICAgICAgbXNnID0gdGV4dChtc2cpCisKKyAgICAgICAgICAgIHNlbGYu
X3VwZGF0ZV9jaGFyc19vbl9jdXJyZW50X2xpbmUobXNnKQorCisgICAgICAgICAgICBvbGRjb2xv
cnMgPSBOb25lCisgICAgICAgICAgICBpZiBzZWxmLmhhc21hcmt1cCBhbmQga3c6CisgICAgICAg
ICAgICAgICAgaGFuZGxlID0gR2V0U3RkSGFuZGxlKFNURF9PVVRQVVRfSEFORExFKQorICAgICAg
ICAgICAgICAgIG9sZGNvbG9ycyA9IEdldENvbnNvbGVJbmZvKGhhbmRsZSkud0F0dHJpYnV0ZXMK
KyAgICAgICAgICAgICAgICBkZWZhdWx0X2JnID0gb2xkY29sb3JzICYgMHgwMEYwCisgICAgICAg
ICAgICAgICAgYXR0ciA9IGRlZmF1bHRfYmcKKyAgICAgICAgICAgICAgICBpZiBrdy5wb3AoJ2Jv
bGQnLCBGYWxzZSk6CisgICAgICAgICAgICAgICAgICAgIGF0dHIgfD0gRk9SRUdST1VORF9JTlRF
TlNJVFkKKworICAgICAgICAgICAgICAgIGlmIGt3LnBvcCgncmVkJywgRmFsc2UpOgorICAgICAg
ICAgICAgICAgICAgICBhdHRyIHw9IEZPUkVHUk9VTkRfUkVECisgICAgICAgICAgICAgICAgZWxp
ZiBrdy5wb3AoJ2JsdWUnLCBGYWxzZSk6CisgICAgICAgICAgICAgICAgICAgIGF0dHIgfD0gRk9S
RUdST1VORF9CTFVFCisgICAgICAgICAgICAgICAgZWxpZiBrdy5wb3AoJ2dyZWVuJywgRmFsc2Up
OgorICAgICAgICAgICAgICAgICAgICBhdHRyIHw9IEZPUkVHUk9VTkRfR1JFRU4KKyAgICAgICAg
ICAgICAgICBlbGlmIGt3LnBvcCgneWVsbG93JywgRmFsc2UpOgorICAgICAgICAgICAgICAgICAg
ICBhdHRyIHw9IEZPUkVHUk9VTkRfR1JFRU58Rk9SRUdST1VORF9SRUQKKyAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhdHRyIHw9IG9sZGNvbG9ycyAmIDB4MDAwNwor
CisgICAgICAgICAgICAgICAgU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUoaGFuZGxlLCBhdHRyKQor
ICAgICAgICAgICAgd3JpdGVfb3V0KHNlbGYuX2ZpbGUsIG1zZykKKyAgICAgICAgICAgIGlmIG9s
ZGNvbG9yczoKKyAgICAgICAgICAgICAgICBTZXRDb25zb2xlVGV4dEF0dHJpYnV0ZShoYW5kbGUs
IG9sZGNvbG9ycykKKworY2xhc3MgV3JpdGVGaWxlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHdyaXRlbWV0aG9kLCBlbmNvZGluZz1Ob25lKToKKyAgICAgICAgc2VsZi5lbmNvZGlu
ZyA9IGVuY29kaW5nCisgICAgICAgIHNlbGYuX3dyaXRlbWV0aG9kID0gd3JpdGVtZXRob2QKKwor
ICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgc2VsZi5lbmNvZGluZzoKKyAg
ICAgICAgICAgIGRhdGEgPSBkYXRhLmVuY29kZShzZWxmLmVuY29kaW5nLCAicmVwbGFjZSIpCisg
ICAgICAgIHNlbGYuX3dyaXRlbWV0aG9kKGRhdGEpCisKKyAgICBkZWYgZmx1c2goc2VsZik6Cisg
ICAgICAgIHJldHVybgorCisKK2lmIHdpbjMyX2FuZF9jdHlwZXM6CisgICAgVGVybWluYWxXcml0
ZXIgPSBXaW4zMkNvbnNvbGVXcml0ZXIKKyAgICBpbXBvcnQgY3R5cGVzCisgICAgZnJvbSBjdHlw
ZXMgaW1wb3J0IHdpbnR5cGVzCisKKyAgICAjIGN0eXBlcyBhY2Nlc3MgdG8gdGhlIFdpbmRvd3Mg
Y29uc29sZQorICAgIFNURF9PVVRQVVRfSEFORExFID0gLTExCisgICAgU1REX0VSUk9SX0hBTkRM
RSAgPSAtMTIKKyAgICBGT1JFR1JPVU5EX0JMQUNLICAgICA9IDB4MDAwMCAjIGJsYWNrIHRleHQK
KyAgICBGT1JFR1JPVU5EX0JMVUUgICAgICA9IDB4MDAwMSAjIHRleHQgY29sb3IgY29udGFpbnMg
Ymx1ZS4KKyAgICBGT1JFR1JPVU5EX0dSRUVOICAgICA9IDB4MDAwMiAjIHRleHQgY29sb3IgY29u
dGFpbnMgZ3JlZW4uCisgICAgRk9SRUdST1VORF9SRUQgICAgICAgPSAweDAwMDQgIyB0ZXh0IGNv
bG9yIGNvbnRhaW5zIHJlZC4KKyAgICBGT1JFR1JPVU5EX1dISVRFICAgICA9IDB4MDAwNworICAg
IEZPUkVHUk9VTkRfSU5URU5TSVRZID0gMHgwMDA4ICMgdGV4dCBjb2xvciBpcyBpbnRlbnNpZmll
ZC4KKyAgICBCQUNLR1JPVU5EX0JMQUNLICAgICA9IDB4MDAwMCAjIGJhY2tncm91bmQgY29sb3Ig
YmxhY2sKKyAgICBCQUNLR1JPVU5EX0JMVUUgICAgICA9IDB4MDAxMCAjIGJhY2tncm91bmQgY29s
b3IgY29udGFpbnMgYmx1ZS4KKyAgICBCQUNLR1JPVU5EX0dSRUVOICAgICA9IDB4MDAyMCAjIGJh
Y2tncm91bmQgY29sb3IgY29udGFpbnMgZ3JlZW4uCisgICAgQkFDS0dST1VORF9SRUQgICAgICAg
PSAweDAwNDAgIyBiYWNrZ3JvdW5kIGNvbG9yIGNvbnRhaW5zIHJlZC4KKyAgICBCQUNLR1JPVU5E
X1dISVRFICAgICA9IDB4MDA3MAorICAgIEJBQ0tHUk9VTkRfSU5URU5TSVRZID0gMHgwMDgwICMg
YmFja2dyb3VuZCBjb2xvciBpcyBpbnRlbnNpZmllZC4KKworICAgIFNIT1JUID0gY3R5cGVzLmNf
c2hvcnQKKyAgICBjbGFzcyBDT09SRChjdHlwZXMuU3RydWN0dXJlKToKKyAgICAgICAgX2ZpZWxk
c18gPSBbKCdYJywgU0hPUlQpLAorICAgICAgICAgICAgICAgICAgICAoJ1knLCBTSE9SVCldCisg
ICAgY2xhc3MgU01BTExfUkVDVChjdHlwZXMuU3RydWN0dXJlKToKKyAgICAgICAgX2ZpZWxkc18g
PSBbKCdMZWZ0JywgU0hPUlQpLAorICAgICAgICAgICAgICAgICAgICAoJ1RvcCcsIFNIT1JUKSwK
KyAgICAgICAgICAgICAgICAgICAgKCdSaWdodCcsIFNIT1JUKSwKKyAgICAgICAgICAgICAgICAg
ICAgKCdCb3R0b20nLCBTSE9SVCldCisgICAgY2xhc3MgQ09OU09MRV9TQ1JFRU5fQlVGRkVSX0lO
Rk8oY3R5cGVzLlN0cnVjdHVyZSk6CisgICAgICAgIF9maWVsZHNfID0gWygnZHdTaXplJywgQ09P
UkQpLAorICAgICAgICAgICAgICAgICAgICAoJ2R3Q3Vyc29yUG9zaXRpb24nLCBDT09SRCksCisg
ICAgICAgICAgICAgICAgICAgICgnd0F0dHJpYnV0ZXMnLCB3aW50eXBlcy5XT1JEKSwKKyAgICAg
ICAgICAgICAgICAgICAgKCdzcldpbmRvdycsIFNNQUxMX1JFQ1QpLAorICAgICAgICAgICAgICAg
ICAgICAoJ2R3TWF4aW11bVdpbmRvd1NpemUnLCBDT09SRCldCisKKyAgICBfR2V0U3RkSGFuZGxl
ID0gY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5HZXRTdGRIYW5kbGUKKyAgICBfR2V0U3RkSGFuZGxl
LmFyZ3R5cGVzID0gW3dpbnR5cGVzLkRXT1JEXQorICAgIF9HZXRTdGRIYW5kbGUucmVzdHlwZSA9
IHdpbnR5cGVzLkhBTkRMRQorICAgIGRlZiBHZXRTdGRIYW5kbGUoa2luZCk6CisgICAgICAgIHJl
dHVybiBfR2V0U3RkSGFuZGxlKGtpbmQpCisKKyAgICBTZXRDb25zb2xlVGV4dEF0dHJpYnV0ZSA9
IGN0eXBlcy53aW5kbGwua2VybmVsMzIuU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUKKyAgICBTZXRD
b25zb2xlVGV4dEF0dHJpYnV0ZS5hcmd0eXBlcyA9IFt3aW50eXBlcy5IQU5ETEUsIHdpbnR5cGVz
LldPUkRdCisgICAgU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUucmVzdHlwZSA9IHdpbnR5cGVzLkJP
T0wKKworICAgIF9HZXRDb25zb2xlU2NyZWVuQnVmZmVySW5mbyA9IFwKKyAgICAgICAgY3R5cGVz
LndpbmRsbC5rZXJuZWwzMi5HZXRDb25zb2xlU2NyZWVuQnVmZmVySW5mbworICAgIF9HZXRDb25z
b2xlU2NyZWVuQnVmZmVySW5mby5hcmd0eXBlcyA9IFt3aW50eXBlcy5IQU5ETEUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGN0eXBlcy5QT0lOVEVSKENPTlNPTEVfU0NSRUVOX0JV
RkZFUl9JTkZPKV0KKyAgICBfR2V0Q29uc29sZVNjcmVlbkJ1ZmZlckluZm8ucmVzdHlwZSA9IHdp
bnR5cGVzLkJPT0wKKyAgICBkZWYgR2V0Q29uc29sZUluZm8oaGFuZGxlKToKKyAgICAgICAgaW5m
byA9IENPTlNPTEVfU0NSRUVOX0JVRkZFUl9JTkZPKCkKKyAgICAgICAgX0dldENvbnNvbGVTY3Jl
ZW5CdWZmZXJJbmZvKGhhbmRsZSwgY3R5cGVzLmJ5cmVmKGluZm8pKQorICAgICAgICByZXR1cm4g
aW5mbworCisgICAgZGVmIF9nZXRkaW1lbnNpb25zKCk6CisgICAgICAgIGhhbmRsZSA9IEdldFN0
ZEhhbmRsZShTVERfT1VUUFVUX0hBTkRMRSkKKyAgICAgICAgaW5mbyA9IEdldENvbnNvbGVJbmZv
KGhhbmRsZSkKKyAgICAgICAgIyBTdWJzdHJhY3Qgb25lIGZyb20gdGhlIHdpZHRoLCBvdGhlcndp
c2UgdGhlIGN1cnNvciB3cmFwcworICAgICAgICAjIGFuZCB0aGUgZW5kaW5nIFxuIGNhdXNlcyBh
biBlbXB0eSBsaW5lIHRvIGRpc3BsYXkuCisgICAgICAgIHJldHVybiBpbmZvLmR3U2l6ZS5ZLCBp
bmZvLmR3U2l6ZS5YIC0gMQorCitkZWYgd3JpdGVfb3V0KGZpbCwgbXNnKToKKyAgICAjIFhYWCBz
b21ldGltZXMgIm1zZyIgaXMgb2YgdHlwZSBieXRlcywgc29tZXRpbWVzIHRleHQgd2hpY2gKKyAg
ICAjIGNvbXBsaWNhdGVzIHRoZSBzaXR1YXRpb24uICBTaG91bGQgd2UgdHJ5IHRvIGVuZm9yY2Ug
dW5pY29kZT8KKyAgICB0cnk6CisgICAgICAgICMgb24gcHkyNyBhbmQgYWJvdmUgd3JpdGluZyBv
dXQgdG8gc3lzLnN0ZG91dCB3aXRoIGFuIGVuY29kaW5nCisgICAgICAgICMgc2hvdWxkIHVzdWFs
bHkgd29yayBmb3IgdW5pY29kZSBtZXNzYWdlcyAoaWYgdGhlIGVuY29kaW5nIGlzCisgICAgICAg
ICMgY2FwYWJsZSBvZiBpdCkKKyAgICAgICAgZmlsLndyaXRlKG1zZykKKyAgICBleGNlcHQgVW5p
Y29kZUVuY29kZUVycm9yOgorICAgICAgICAjIG9uIHB5MjYgaXQgbWlnaHQgbm90IHdvcmsgYmVj
YXVzZSBzdGRvdXQgZXhwZWN0cyBieXRlcworICAgICAgICBpZiBmaWwuZW5jb2Rpbmc6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmlsLndyaXRlKG1zZy5lbmNvZGUoZmlsLmVu
Y29kaW5nKSkKKyAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAg
ICAgICAgICAgIyBpdCBtaWdodCBzdGlsbCBmYWlsIGlmIHRoZSBlbmNvZGluZyBpcyBub3QgY2Fw
YWJsZQorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgZmlsLmZsdXNoKCkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIyBmYWxs
YmFjazogZXNjYXBlIGFsbCB1bmljb2RlIGNoYXJhY3RlcnMKKyAgICAgICAgbXNnID0gbXNnLmVu
Y29kZSgidW5pY29kZS1lc2NhcGUiKS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgZmlsLndyaXRl
KG1zZykKKyAgICBmaWwuZmx1c2goKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTY5
Y2I1ZmFmZjc2ZWIxMDk0ODZjNGJjMDNkOGIwYmM4ZGIwODhhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9faW8vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9faW8vX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby9jYXB0dXJlLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9faW8vc2FmZXJlcHIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby90ZXJtaW5hbHdyaXRl
ci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL19faW5pdF9fLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fbG9nL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDYyZTk2MGQ0ZmMwZDVmYWY0Nzk0Njdh
YWEwYmJmNTcwMDhhNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvX19pbml0
X18ucHkKQEAgLTAsMCArMSwyIEBACisiIiIgbG9nZ2luZyBBUEkgKCdwcm9kdWNlcnMnIGFuZCAn
Y29uc3VtZXJzJyBjb25uZWN0ZWQgdmlhIGtleXdvcmRzKSAiIiIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fbG9nL2xvZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9sb2cucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTY5NjliY2I1OGMzMzIyMjQ4ZWZjN2RlN2EwNGZlZjk2MDc0ZmU2NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2xvZy9sb2cucHkKQEAgLTAsMCArMSwyMDYgQEAKKyIiIgorYmFzaWMg
bG9nZ2luZyBmdW5jdGlvbmFsaXR5IGJhc2VkIG9uIGEgcHJvZHVjZXIvY29uc3VtZXIgc2NoZW1l
LgorCitYWFggaW1wbGVtZW50IHRoaXMgQVBJOiAobWF5YmUgcHV0IGl0IGludG8gc2xvZ2dlci5w
eT8pCisKKyAgICAgICAgbG9nID0gTG9nZ2VyKAorICAgICAgICAgICAgICAgICAgICBpbmZvPXB5
LmxvZy5TVERPVVQsCisgICAgICAgICAgICAgICAgICAgIGRlYnVnPXB5LmxvZy5TVERPVVQsCisg
ICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSkKKyAgICAgICAgbG9nLmluZm8oImhlbGxv
IiwgIndvcmxkIikKKyAgICAgICAgbG9nLmNvbW1hbmQoImhlbGxvIiwgIndvcmxkIikKKworICAg
ICAgICBsb2cgPSBMb2dnZXIoaW5mbz1Mb2dnZXIoc29tZXRoaW5nPS4uLiksCisgICAgICAgICAg
ICAgICAgICAgICBkZWJ1Zz1weS5sb2cuU1RET1VULAorICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZD1Ob25lKQorIiIiCitpbXBvcnQgcHkKK2ltcG9ydCBzeXMKKworCitjbGFzcyBNZXNzYWdl
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGtleXdvcmRzLCBhcmdzKToKKyAgICAg
ICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCisgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKKwor
ICAgIGRlZiBjb250ZW50KHNlbGYpOgorICAgICAgICByZXR1cm4gIiAiLmpvaW4obWFwKHN0ciwg
c2VsZi5hcmdzKSkKKworICAgIGRlZiBwcmVmaXgoc2VsZik6CisgICAgICAgIHJldHVybiAiWyVz
XSAiICUgKCI6Ii5qb2luKHNlbGYua2V5d29yZHMpKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLnByZWZpeCgpICsgc2VsZi5jb250ZW50KCkKKworCitjbGFz
cyBQcm9kdWNlcihvYmplY3QpOgorICAgICIiIiAoZGVwcmVjYXRlZCkgTG9nIHByb2R1Y2VyIEFQ
SSB3aGljaCBzZW5kcyBtZXNzYWdlcyB0byBiZSBsb2dnZWQKKyAgICAgICAgdG8gYSAnY29uc3Vt
ZXInIG9iamVjdCwgd2hpY2ggdGhlbiBwcmludHMgdGhlbSB0byBzdGRvdXQsCisgICAgICAgIHN0
ZGVyciwgZmlsZXMsIGV0Yy4gVXNlZCBleHRlbnNpdmVseSBieSBQeVB5LTEuMS4KKyAgICAiIiIK
KworICAgIE1lc3NhZ2UgPSBNZXNzYWdlICAjIHRvIGFsbG93IGxhdGVyIGN1c3RvbWl6YXRpb24K
KyAgICBrZXl3b3JkczJjb25zdW1lciA9IHt9CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwga2V5
d29yZHMsIGtleXdvcmRtYXBwZXI9Tm9uZSwgKiprdyk6CisgICAgICAgIGlmIGhhc2F0dHIoa2V5
d29yZHMsICdzcGxpdCcpOgorICAgICAgICAgICAga2V5d29yZHMgPSB0dXBsZShrZXl3b3Jkcy5z
cGxpdCgpKQorICAgICAgICBzZWxmLl9rZXl3b3JkcyA9IGtleXdvcmRzCisgICAgICAgIGlmIGtl
eXdvcmRtYXBwZXIgaXMgTm9uZToKKyAgICAgICAgICAgIGtleXdvcmRtYXBwZXIgPSBkZWZhdWx0
X2tleXdvcmRtYXBwZXIKKyAgICAgICAgc2VsZi5fa2V5d29yZG1hcHBlciA9IGtleXdvcmRtYXBw
ZXIKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8cHkubG9nLlBy
b2R1Y2VyICVzPiIgJSAiOiIuam9pbihzZWxmLl9rZXl3b3JkcykKKworICAgIGRlZiBfX2dldGF0
dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgJ18nIGluIG5hbWU6CisgICAgICAgICAgICBy
YWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorICAgICAgICBwcm9kdWNlciA9IHNlbGYuX19jbGFz
c19fKHNlbGYuX2tleXdvcmRzICsgKG5hbWUsKSkKKyAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1l
LCBwcm9kdWNlcikKKyAgICAgICAgcmV0dXJuIHByb2R1Y2VyCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiIgd3JpdGUgYSBtZXNzYWdlIHRvIHRoZSBhcHByb3By
aWF0ZSBjb25zdW1lcihzKSAiIiIKKyAgICAgICAgZnVuYyA9IHNlbGYuX2tleXdvcmRtYXBwZXIu
Z2V0Y29uc3VtZXIoc2VsZi5fa2V5d29yZHMpCisgICAgICAgIGlmIGZ1bmMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBmdW5jKHNlbGYuTWVzc2FnZShzZWxmLl9rZXl3b3JkcywgYXJncykpCisK
K2NsYXNzIEtleXdvcmRNYXBwZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBz
ZWxmLmtleXdvcmRzMmNvbnN1bWVyID0ge30KKworICAgIGRlZiBnZXRzdGF0ZShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYua2V5d29yZHMyY29uc3VtZXIuY29weSgpCisKKyAgICBkZWYgc2V0
c3RhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBzZWxmLmtleXdvcmRzMmNvbnN1bWVyLmNsZWFy
KCkKKyAgICAgICAgc2VsZi5rZXl3b3JkczJjb25zdW1lci51cGRhdGUoc3RhdGUpCisKKyAgICBk
ZWYgZ2V0Y29uc3VtZXIoc2VsZiwga2V5d29yZHMpOgorICAgICAgICAiIiIgcmV0dXJuIGEgY29u
c3VtZXIgbWF0Y2hpbmcgdGhlIGdpdmVuIGtleXdvcmRzLgorCisgICAgICAgICAgICB0cmllcyB0
byBmaW5kIHRoZSBtb3N0IHN1aXRhYmxlIGNvbnN1bWVyIGJ5IHdhbGtpbmcsIHN0YXJ0aW5nIGZy
b20KKyAgICAgICAgICAgIHRoZSBiYWNrLCB0aGUgbGlzdCBvZiBrZXl3b3JkcywgdGhlIGZpcnN0
IGNvbnN1bWVyIG1hdGNoaW5nIGEKKyAgICAgICAgICAgIGtleXdvcmQgaXMgcmV0dXJuZWQgKGZh
bGxpbmcgYmFjayB0byBweS5sb2cuZGVmYXVsdCkKKyAgICAgICAgIiIiCisgICAgICAgIGZvciBp
IGluIHJhbmdlKGxlbihrZXl3b3JkcyksIDAsIC0xKToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5rZXl3b3JkczJjb25zdW1lcltrZXl3b3Jkc1s6aV1dCisg
ICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgcmV0dXJuIHNlbGYua2V5d29yZHMyY29uc3VtZXIuZ2V0KCdkZWZhdWx0JywgZGVmYXVs
dF9jb25zdW1lcikKKworICAgIGRlZiBzZXRjb25zdW1lcihzZWxmLCBrZXl3b3JkcywgY29uc3Vt
ZXIpOgorICAgICAgICAiIiIgc2V0IGEgY29uc3VtZXIgZm9yIGEgc2V0IG9mIGtleXdvcmRzLiAi
IiIKKyAgICAgICAgIyBub3JtYWxpemUgdG8gdHVwbGVzCisgICAgICAgIGlmIGlzaW5zdGFuY2Uo
a2V5d29yZHMsIHN0cik6CisgICAgICAgICAgICBrZXl3b3JkcyA9IHR1cGxlKGZpbHRlcihOb25l
LCBrZXl3b3Jkcy5zcGxpdCgpKSkKKyAgICAgICAgZWxpZiBoYXNhdHRyKGtleXdvcmRzLCAnX2tl
eXdvcmRzJyk6CisgICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzLl9rZXl3b3JkcworICAg
ICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGtleXdvcmRzLCB0dXBsZSk6CisgICAgICAgICAgICBy
YWlzZSBUeXBlRXJyb3IoImtleSAlciBpcyBub3QgYSBzdHJpbmcgb3IgdHVwbGUiICUgKGtleXdv
cmRzLCkpCisgICAgICAgIGlmIGNvbnN1bWVyIGlzIG5vdCBOb25lIGFuZCBub3QgcHkuYnVpbHRp
bi5jYWxsYWJsZShjb25zdW1lcik6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihjb25zdW1l
ciwgJ3dyaXRlJyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAg
ICAgICAgICAgICAiJXIgc2hvdWxkIGJlIE5vbmUsIGNhbGxhYmxlIG9yIGZpbGUtbGlrZSIgJSAo
Y29uc3VtZXIsKSkKKyAgICAgICAgICAgIGNvbnN1bWVyID0gRmlsZShjb25zdW1lcikKKyAgICAg
ICAgc2VsZi5rZXl3b3JkczJjb25zdW1lcltrZXl3b3Jkc10gPSBjb25zdW1lcgorCisKK2RlZiBk
ZWZhdWx0X2NvbnN1bWVyKG1zZyk6CisgICAgIiIiIHRoZSBkZWZhdWx0IGNvbnN1bWVyLCBwcmlu
dHMgdGhlIG1lc3NhZ2UgdG8gc3Rkb3V0ICh1c2luZyAncHJpbnQnKSAiIiIKKyAgICBzeXMuc3Rk
ZXJyLndyaXRlKHN0cihtc2cpKyJcbiIpCisKK2RlZmF1bHRfa2V5d29yZG1hcHBlciA9IEtleXdv
cmRNYXBwZXIoKQorCisKK2RlZiBzZXRjb25zdW1lcihrZXl3b3JkcywgY29uc3VtZXIpOgorICAg
IGRlZmF1bHRfa2V5d29yZG1hcHBlci5zZXRjb25zdW1lcihrZXl3b3JkcywgY29uc3VtZXIpCisK
KworZGVmIHNldHN0YXRlKHN0YXRlKToKKyAgICBkZWZhdWx0X2tleXdvcmRtYXBwZXIuc2V0c3Rh
dGUoc3RhdGUpCisKKworZGVmIGdldHN0YXRlKCk6CisgICAgcmV0dXJuIGRlZmF1bHRfa2V5d29y
ZG1hcHBlci5nZXRzdGF0ZSgpCisKKyMKKyMgQ29uc3VtZXJzCisjCisKKworY2xhc3MgRmlsZShv
YmplY3QpOgorICAgICIiIiBsb2cgY29uc3VtZXIgd3JhcHBpbmcgYSBmaWxlKC1saWtlKSBvYmpl
Y3QgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGYpOgorICAgICAgICBhc3NlcnQgaGFzYXR0
cihmLCAnd3JpdGUnKQorICAgICAgICAjIGFzc2VydCBpc2luc3RhbmNlKGYsIGZpbGUpIG9yIG5v
dCBoYXNhdHRyKGYsICdvcGVuJykKKyAgICAgICAgc2VsZi5fZmlsZSA9IGYKKworICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBtc2cpOgorICAgICAgICAiIiIgd3JpdGUgYSBtZXNzYWdlIHRvIHRoZSBs
b2cgIiIiCisgICAgICAgIHNlbGYuX2ZpbGUud3JpdGUoc3RyKG1zZykgKyAiXG4iKQorICAgICAg
ICBpZiBoYXNhdHRyKHNlbGYuX2ZpbGUsICdmbHVzaCcpOgorICAgICAgICAgICAgc2VsZi5fZmls
ZS5mbHVzaCgpCisKKworY2xhc3MgUGF0aChvYmplY3QpOgorICAgICIiIiBsb2cgY29uc3VtZXIg
dGhhdCBvcGVucyBhbmQgd3JpdGVzIHRvIGEgUGF0aCAiIiIKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZmlsZW5hbWUsIGFwcGVuZD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZGVsYXllZF9jcmVh
dGU9RmFsc2UsIGJ1ZmZlcmluZz1GYWxzZSk6CisgICAgICAgIHNlbGYuX2FwcGVuZCA9IGFwcGVu
ZAorICAgICAgICBzZWxmLl9maWxlbmFtZSA9IHN0cihmaWxlbmFtZSkKKyAgICAgICAgc2VsZi5f
YnVmZmVyaW5nID0gYnVmZmVyaW5nCisgICAgICAgIGlmIG5vdCBkZWxheWVkX2NyZWF0ZToKKyAg
ICAgICAgICAgIHNlbGYuX29wZW5maWxlKCkKKworICAgIGRlZiBfb3BlbmZpbGUoc2VsZik6Cisg
ICAgICAgIG1vZGUgPSBzZWxmLl9hcHBlbmQgYW5kICdhJyBvciAndycKKyAgICAgICAgZiA9IG9w
ZW4oc2VsZi5fZmlsZW5hbWUsIG1vZGUpCisgICAgICAgIHNlbGYuX2ZpbGUgPSBmCisKKyAgICBk
ZWYgX19jYWxsX18oc2VsZiwgbXNnKToKKyAgICAgICAgIiIiIHdyaXRlIGEgbWVzc2FnZSB0byB0
aGUgbG9nICIiIgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAiX2ZpbGUiKToKKyAgICAg
ICAgICAgIHNlbGYuX29wZW5maWxlKCkKKyAgICAgICAgc2VsZi5fZmlsZS53cml0ZShzdHIobXNn
KSArICJcbiIpCisgICAgICAgIGlmIG5vdCBzZWxmLl9idWZmZXJpbmc6CisgICAgICAgICAgICBz
ZWxmLl9maWxlLmZsdXNoKCkKKworCitkZWYgU1RET1VUKG1zZyk6CisgICAgIiIiIGNvbnN1bWVy
IHRoYXQgd3JpdGVzIHRvIHN5cy5zdGRvdXQgIiIiCisgICAgc3lzLnN0ZG91dC53cml0ZShzdHIo
bXNnKSsiXG4iKQorCisKK2RlZiBTVERFUlIobXNnKToKKyAgICAiIiIgY29uc3VtZXIgdGhhdCB3
cml0ZXMgdG8gc3lzLnN0ZGVyciAiIiIKKyAgICBzeXMuc3RkZXJyLndyaXRlKHN0cihtc2cpKyJc
biIpCisKKworY2xhc3MgU3lzbG9nOgorICAgICIiIiBjb25zdW1lciB0aGF0IHdyaXRlcyB0byB0
aGUgc3lzbG9nIGRhZW1vbiAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcmlvcml0eT1O
b25lKToKKyAgICAgICAgaWYgcHJpb3JpdHkgaXMgTm9uZToKKyAgICAgICAgICAgIHByaW9yaXR5
ID0gc2VsZi5MT0dfSU5GTworICAgICAgICBzZWxmLnByaW9yaXR5ID0gcHJpb3JpdHkKKworICAg
IGRlZiBfX2NhbGxfXyhzZWxmLCBtc2cpOgorICAgICAgICAiIiIgd3JpdGUgYSBtZXNzYWdlIHRv
IHRoZSBsb2cgIiIiCisgICAgICAgIGltcG9ydCBzeXNsb2cKKyAgICAgICAgc3lzbG9nLnN5c2xv
ZyhzZWxmLnByaW9yaXR5LCBzdHIobXNnKSkKKworCit0cnk6CisgICAgaW1wb3J0IHN5c2xvZwor
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MKK2Vsc2U6CisgICAgZm9yIF9wcmlvIGluICJF
TUVSRyBBTEVSVCBDUklUIEVSUiBXQVJOSU5HIE5PVElDRSBJTkZPIERFQlVHIi5zcGxpdCgpOgor
ICAgICAgICBfcHJpbyA9ICJMT0dfIiArIF9wcmlvCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNldGF0dHIoU3lzbG9nLCBfcHJpbywgZ2V0YXR0cihzeXNsb2csIF9wcmlvKSkKKyAgICAgICAg
ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3NmFmNjEzZTI1ZGY5NDdmYjE1NGE5NTQ2YzRjOWNiNWU0MGYwMDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL19faW5pdF9fLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fbG9nL2xvZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93YXJuaW5nLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19sb2cvd2FybmluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93YXJuaW5nLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZlZjIwZDk4YTJkYzBlN2JlMjQwYzU5M2UwMzAzYzUwMWVjYjc4MzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvd2FybmluZy5weQpAQCAtMCwwICsxLDc5
IEBACitpbXBvcnQgcHksIHN5cworCitjbGFzcyBEZXByZWNhdGlvbldhcm5pbmcoRGVwcmVjYXRp
b25XYXJuaW5nKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBwYXRoLCBsaW5lbm8pOgor
ICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisgICAgICAg
IHNlbGYubGluZW5vID0gbGluZW5vCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gIiVzOiVkOiAlcyIgJShzZWxmLnBhdGgsIHNlbGYubGluZW5vKzEsIHNlbGYubXNnKQor
ICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tc2cKKworZGVmIF9h
cGl3YXJuKHN0YXJ0dmVyc2lvbiwgbXNnLCBzdGFja2xldmVsPTIsIGZ1bmN0aW9uPU5vbmUpOgor
ICAgICMgYmVsb3cgaXMgbW9zdGx5IENPUElFRCBmcm9tIHB5dGhvbjIuNC93YXJuaW5ncy5weSdz
IGRlZiB3YXJuKCkKKyAgICAjIEdldCBjb250ZXh0IGluZm9ybWF0aW9uCisgICAgaWYgaXNpbnN0
YW5jZShzdGFja2xldmVsLCBzdHIpOgorICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkK
KyAgICAgICAgbGV2ZWwgPSAxCisgICAgICAgIGZvdW5kID0gZnJhbWUuZl9jb2RlLmNvX2ZpbGVu
YW1lLmZpbmQoc3RhY2tsZXZlbCkgIT0gLTEKKyAgICAgICAgd2hpbGUgZnJhbWU6CisgICAgICAg
ICAgICBjbyA9IGZyYW1lLmZfY29kZQorICAgICAgICAgICAgaWYgY28uY29fZmlsZW5hbWUuZmlu
ZChzdGFja2xldmVsKSA9PSAtMToKKyAgICAgICAgICAgICAgICBpZiBmb3VuZDoKKyAgICAgICAg
ICAgICAgICAgICAgc3RhY2tsZXZlbCA9IGxldmVsCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAg
ICAgICAgbGV2ZWwgKz0gMQorICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS5mX2JhY2sKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHN0YWNrbGV2ZWwgPSAxCisgICAgbXNnID0gIiVzIChzaW5j
ZSB2ZXJzaW9uICVzKSIgJShtc2csIHN0YXJ0dmVyc2lvbikKKyAgICB3YXJuKG1zZywgc3RhY2ts
ZXZlbD1zdGFja2xldmVsKzEsIGZ1bmN0aW9uPWZ1bmN0aW9uKQorCisKK2RlZiB3YXJuKG1zZywg
c3RhY2tsZXZlbD0xLCBmdW5jdGlvbj1Ob25lKToKKyAgICBpZiBmdW5jdGlvbiBpcyBub3QgTm9u
ZToKKyAgICAgICAgaW1wb3J0IGluc3BlY3QKKyAgICAgICAgZmlsZW5hbWUgPSBpbnNwZWN0Lmdl
dGZpbGUoZnVuY3Rpb24pCisgICAgICAgIGxpbmVubyA9IHB5LmNvZGUuZ2V0cmF3Y29kZShmdW5j
dGlvbikuY29fZmlyc3RsaW5lbm8KKyAgICBlbHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBjYWxsZXIgPSBzeXMuX2dldGZyYW1lKHN0YWNrbGV2ZWwpCisgICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgorICAgICAgICAgICAgZ2xvYmFscyA9IHN5cy5fX2RpY3RfXworICAgICAgICAgICAg
bGluZW5vID0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZ2xvYmFscyA9IGNhbGxlci5m
X2dsb2JhbHMKKyAgICAgICAgICAgIGxpbmVubyA9IGNhbGxlci5mX2xpbmVubworICAgICAgICBp
ZiAnX19uYW1lX18nIGluIGdsb2JhbHM6CisgICAgICAgICAgICBtb2R1bGUgPSBnbG9iYWxzWydf
X25hbWVfXyddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtb2R1bGUgPSAiPHN0cmluZz4i
CisgICAgICAgIGZpbGVuYW1lID0gZ2xvYmFscy5nZXQoJ19fZmlsZV9fJykKKyAgICBpZiBmaWxl
bmFtZToKKyAgICAgICAgZm5sID0gZmlsZW5hbWUubG93ZXIoKQorICAgICAgICBpZiBmbmwuZW5k
c3dpdGgoIi5weWMiKSBvciBmbmwuZW5kc3dpdGgoIi5weW8iKToKKyAgICAgICAgICAgIGZpbGVu
YW1lID0gZmlsZW5hbWVbOi0xXQorICAgICAgICBlbGlmIGZubC5lbmRzd2l0aCgiJHB5LmNsYXNz
Iik6CisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoJyRweS5jbGFzcycs
ICcucHknKQorICAgIGVsc2U6CisgICAgICAgIGlmIG1vZHVsZSA9PSAiX19tYWluX18iOgorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gc3lzLmFyZ3ZbMF0KKyAg
ICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICAjIGVtYmVk
ZGVkIGludGVycHJldGVycyBkb24ndCBoYXZlIHN5cy5hcmd2LCBzZWUgYnVnICM4MzkxNTEKKyAg
ICAgICAgICAgICAgICBmaWxlbmFtZSA9ICdfX21haW5fXycKKyAgICAgICAgaWYgbm90IGZpbGVu
YW1lOgorICAgICAgICAgICAgZmlsZW5hbWUgPSBtb2R1bGUKKyAgICBwYXRoID0gcHkucGF0aC5s
b2NhbChmaWxlbmFtZSkKKyAgICB3YXJuaW5nID0gRGVwcmVjYXRpb25XYXJuaW5nKG1zZywgcGF0
aCwgbGluZW5vKQorICAgIGltcG9ydCB3YXJuaW5ncworICAgIHdhcm5pbmdzLndhcm5fZXhwbGlj
aXQod2FybmluZywgY2F0ZWdvcnk9V2FybmluZywKKyAgICAgICAgZmlsZW5hbWU9c3RyKHdhcm5p
bmcucGF0aCksCisgICAgICAgIGxpbmVubz13YXJuaW5nLmxpbmVubywKKyAgICAgICAgcmVnaXN0
cnk9d2FybmluZ3MuX19kaWN0X18uc2V0ZGVmYXVsdCgKKyAgICAgICAgICAgICJfX3dhcm5pbmdz
cmVnaXN0cnlfXyIsIHt9KQorICAgICkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFm
MzI0NmY4MDcwZmY0NjM0MmQzZDk5ODVmYTM4NGFjNGUxZDlmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3BhdGgvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIiIiIHVuaWZpZWQg
ZmlsZSBzeXN0ZW0gYXBpICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9jYWNoZXV0
aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2NhY2hldXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTIyNTA0
NzUwMmM2YTcxMTljYWYxMzZhZjA2MjI4MjM1ZGY5ZmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fcGF0aC9jYWNoZXV0aWwucHkKQEAgLTAsMCArMSwxMTQgQEAKKyIiIgorVGhpcyBt
b2R1bGUgY29udGFpbnMgbXVsdGl0aHJlYWQtc2FmZSBjYWNoZSBpbXBsZW1lbnRhdGlvbnMuCisK
K0FsbCBDYWNoZXMgaGF2ZQorCisgICAgZ2V0b3JidWlsZChrZXksIGJ1aWxkZXIpCisgICAgZGVs
ZW50cnkoa2V5KQorCittZXRob2RzIGFuZCBhbGxvdyBjb25maWd1cmF0aW9uIHdoZW4gaW5zdGFu
dGlhdGluZyB0aGUgY2FjaGUgY2xhc3MuCisiIiIKK2Zyb20gdGltZSBpbXBvcnQgdGltZSBhcyBn
ZXR0aW1lCisKK2NsYXNzIEJhc2ljQ2FjaGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbWF4ZW50cmllcz0xMjgpOgorICAgICAgICBzZWxmLm1heGVudHJpZXMgPSBtYXhlbnRyaWVz
CisgICAgICAgIHNlbGYucHJ1bmVudW0gPSBpbnQobWF4ZW50cmllcyAtIG1heGVudHJpZXMvOCkK
KyAgICAgICAgc2VsZi5fZGljdCA9IHt9CisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAg
IHNlbGYuX2RpY3QuY2xlYXIoKQorCisgICAgZGVmIF9nZXRlbnRyeShzZWxmLCBrZXkpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fZGljdFtrZXldCisKKyAgICBkZWYgX3B1dGVudHJ5KHNlbGYsIGtl
eSwgZW50cnkpOgorICAgICAgICBzZWxmLl9wcnVuZWxvd2VzdHdlaWdodCgpCisgICAgICAgIHNl
bGYuX2RpY3Rba2V5XSA9IGVudHJ5CisKKyAgICBkZWYgZGVsZW50cnkoc2VsZiwga2V5LCByYWlz
aW5nPUZhbHNlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHNlbGYuX2RpY3Rba2V5
XQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBpZiByYWlzaW5nOgorICAg
ICAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgZ2V0b3JidWlsZChzZWxmLCBrZXksIGJ1aWxk
ZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBlbnRyeSA9IHNlbGYuX2dldGVudHJ5KGtl
eSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgZW50cnkgPSBzZWxmLl9i
dWlsZChrZXksIGJ1aWxkZXIpCisgICAgICAgICAgICBzZWxmLl9wdXRlbnRyeShrZXksIGVudHJ5
KQorICAgICAgICByZXR1cm4gZW50cnkudmFsdWUKKworICAgIGRlZiBfcHJ1bmVsb3dlc3R3ZWln
aHQoc2VsZik6CisgICAgICAgICIiIiBwcnVuZSBvdXQgZW50cmllcyB3aXRoIGxvd2VzdCB3ZWln
aHQuICIiIgorICAgICAgICBudW1lbnRyaWVzID0gbGVuKHNlbGYuX2RpY3QpCisgICAgICAgIGlm
IG51bWVudHJpZXMgPj0gc2VsZi5tYXhlbnRyaWVzOgorICAgICAgICAgICAgIyBldmljdCBhY2Nv
cmRpbmcgdG8gZW50cnkncyB3ZWlnaHQKKyAgICAgICAgICAgIGl0ZW1zID0gWyhlbnRyeS53ZWln
aHQsIGtleSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIGVudHJ5IGluIHNlbGYu
X2RpY3QuaXRlbXMoKV0KKyAgICAgICAgICAgIGl0ZW1zLnNvcnQoKQorICAgICAgICAgICAgaW5k
ZXggPSBudW1lbnRyaWVzIC0gc2VsZi5wcnVuZW51bQorICAgICAgICAgICAgaWYgaW5kZXggPiAw
OgorICAgICAgICAgICAgICAgIGZvciB3ZWlnaHQsIGtleSBpbiBpdGVtc1s6aW5kZXhdOgorICAg
ICAgICAgICAgICAgICAgICAjIGluIE1UIHNpdHVhdGlvbnMgdGhlIGVsZW1lbnQgbWlnaHQgYmUg
Z29uZQorICAgICAgICAgICAgICAgICAgICBzZWxmLmRlbGVudHJ5KGtleSwgcmFpc2luZz1GYWxz
ZSkKKworY2xhc3MgQnVpbGRjb3N0QWNjZXNzQ2FjaGUoQmFzaWNDYWNoZSk6CisgICAgIiIiIEEg
QnVpbGRUaW1lL0FjY2Vzcy1jb3VudGluZyBjYWNoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAg
dGhlIHdlaWdodCBvZiBhIHZhbHVlIGlzIGNvbXB1dGVkIGFzIHRoZSBwcm9kdWN0IG9mCisKKyAg
ICAgICAgICAgIG51bS1hY2Nlc3Nlcy1vZi1hLXZhbHVlICogdGltZS10by1idWlsZC10aGUtdmFs
dWUKKworICAgICAgICBUaGUgdmFsdWVzIHdpdGggdGhlIGxlYXN0IHN1Y2ggd2VpZ2h0cyBhcmUg
ZXZpY3RlZAorICAgICAgICBpZiB0aGUgY2FjaGUgbWF4ZW50cmllcyB0aHJlc2hvbGQgaXMgc3Vw
ZXJjZWRlZC4KKyAgICAgICAgRm9yIGltcGxlbWVudGF0aW9uIGZsZXhpYmlsaXR5IG1vcmUgdGhh
biBvbmUgb2JqZWN0CisgICAgICAgIG1pZ2h0IGJlIGV2aWN0ZWQgYXQgYSB0aW1lLgorICAgICIi
IgorICAgICMgdGltZSBmdW5jdGlvbiB0byB1c2UgZm9yIG1lYXN1cmluZyBidWlsZC10aW1lcwor
CisgICAgZGVmIF9idWlsZChzZWxmLCBrZXksIGJ1aWxkZXIpOgorICAgICAgICBzdGFydCA9IGdl
dHRpbWUoKQorICAgICAgICB2YWwgPSBidWlsZGVyKCkKKyAgICAgICAgZW5kID0gZ2V0dGltZSgp
CisgICAgICAgIHJldHVybiBXZWlnaHRlZENvdW50aW5nRW50cnkodmFsLCBlbmQtc3RhcnQpCisK
KworY2xhc3MgV2VpZ2h0ZWRDb3VudGluZ0VudHJ5KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHZhbHVlLCBvbmV3ZWlnaHQpOgorICAgICAgICBzZWxmLl92YWx1ZSA9IHZhbHVlCisg
ICAgICAgIHNlbGYud2VpZ2h0ID0gc2VsZi5fb25ld2VpZ2h0ID0gb25ld2VpZ2h0CisKKyAgICBk
ZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHNlbGYud2VpZ2h0ICs9IHNlbGYuX29uZXdlaWdodAor
ICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWUKKyAgICB2YWx1ZSA9IHByb3BlcnR5KHZhbHVlKQor
CitjbGFzcyBBZ2luZ0NhY2hlKEJhc2ljQ2FjaGUpOgorICAgICIiIiBUaGlzIGNhY2hlIHBydW5l
cyBvdXQgY2FjaGUgZW50cmllcyB0aGF0IGFyZSB0b28gb2xkLgorICAgICIiIgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtYXhlbnRyaWVzPTEyOCwgbWF4c2Vjb25kcz0xMC4wKToKKyAgICAgICAg
c3VwZXIoQWdpbmdDYWNoZSwgc2VsZikuX19pbml0X18obWF4ZW50cmllcykKKyAgICAgICAgc2Vs
Zi5tYXhzZWNvbmRzID0gbWF4c2Vjb25kcworCisgICAgZGVmIF9nZXRlbnRyeShzZWxmLCBrZXkp
OgorICAgICAgICBlbnRyeSA9IHNlbGYuX2RpY3Rba2V5XQorICAgICAgICBpZiBlbnRyeS5pc2V4
cGlyZWQoKToKKyAgICAgICAgICAgIHNlbGYuZGVsZW50cnkoa2V5KQorICAgICAgICAgICAgcmFp
c2UgS2V5RXJyb3Ioa2V5KQorICAgICAgICByZXR1cm4gZW50cnkKKworICAgIGRlZiBfYnVpbGQo
c2VsZiwga2V5LCBidWlsZGVyKToKKyAgICAgICAgdmFsID0gYnVpbGRlcigpCisgICAgICAgIGVu
dHJ5ID0gQWdpbmdFbnRyeSh2YWwsIGdldHRpbWUoKSArIHNlbGYubWF4c2Vjb25kcykKKyAgICAg
ICAgcmV0dXJuIGVudHJ5CisKK2NsYXNzIEFnaW5nRW50cnkob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgdmFsdWUsIGV4cGlyYXRpb250aW1lKToKKyAgICAgICAgc2VsZi52YWx1ZSA9
IHZhbHVlCisgICAgICAgIHNlbGYud2VpZ2h0ID0gZXhwaXJhdGlvbnRpbWUKKworICAgIGRlZiBp
c2V4cGlyZWQoc2VsZik6CisgICAgICAgIHQgPSBnZXR0aW1lKCkKKyAgICAgICAgcmV0dXJuIHQg
Pj0gc2VsZi53ZWlnaHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvY29tbW9uLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fcGF0aC9jb21tb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ0OTBiNTZhODY2OTNlY2Rk
MjNmMzdkMDVkYmZiNGJkYzQzMjM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Bh
dGgvY29tbW9uLnB5CkBAIC0wLDAgKzEsNDUzIEBACisiIiIKKyIiIgoraW1wb3J0IHdhcm5pbmdz
CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBwb3NpeHBhdGgKK2ltcG9ydCBmbm1hdGNo
CitpbXBvcnQgcHkKKworIyBNb3ZlZCBmcm9tIGxvY2FsLnB5LgoraXN3aW4zMiA9IHN5cy5wbGF0
Zm9ybSA9PSAid2luMzIiIG9yIChnZXRhdHRyKG9zLCAnX25hbWUnLCBGYWxzZSkgPT0gJ250JykK
KwordHJ5OgorICAgIGZyb20gb3MgaW1wb3J0IGZzcGF0aAorZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgIGRlZiBmc3BhdGgocGF0aCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIHN0
cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGF0aC4KKyAgICAgICAgSWYgc3RyIG9yIGJ5dGVz
IGlzIHBhc3NlZCBpbiwgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLgorICAgICAgICBUaGlzIGNv
ZGUgY29tZXMgZnJvbSBQRVAgNTE5LCBtb2RpZmllZCB0byBzdXBwb3J0IGVhcmxpZXIgdmVyc2lv
bnMgb2YKKyAgICAgICAgcHl0aG9uLgorCisgICAgICAgIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHB5
dGhvbiA8IDMuNi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgKHB5
LmJ1aWx0aW4udGV4dCwgcHkuYnVpbHRpbi5ieXRlcykpOgorICAgICAgICAgICAgcmV0dXJuIHBh
dGgKKworICAgICAgICAjIFdvcmsgZnJvbSB0aGUgb2JqZWN0J3MgdHlwZSB0byBtYXRjaCBtZXRo
b2QgcmVzb2x1dGlvbiBvZiBvdGhlciBtYWdpYworICAgICAgICAjIG1ldGhvZHMuCisgICAgICAg
IHBhdGhfdHlwZSA9IHR5cGUocGF0aCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IHBhdGhfdHlwZS5fX2ZzcGF0aF9fKHBhdGgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv
cjoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocGF0aF90eXBlLCAnX19mc3BhdGhfXycpOgorICAg
ICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaW1w
b3J0IHBhdGhsaWIKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UocGF0aCwgcGF0aGxpYi5QdXJlUGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBw
eS5idWlsdGluLnRleHQocGF0aCkKKworICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBl
Y3RlZCBzdHIsIGJ5dGVzIG9yIG9zLlBhdGhMaWtlIG9iamVjdCwgbm90ICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArIHBhdGhfdHlwZS5fX25hbWVfXykKKworY2xhc3MgQ2hlY2tlcnM6
CisgICAgX2RlcGVuZF9vbl9leGlzdGVuY2UgPSAnZXhpc3RzJywgJ2xpbmsnLCAnZGlyJywgJ2Zp
bGUnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgICAgIHNlbGYucGF0aCA9
IHBhdGgKKworICAgIGRlZiBkaXIoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKKworICAgIGRlZiBmaWxlKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yCisKKyAgICBkZWYgZG90ZmlsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0
aC5iYXNlbmFtZS5zdGFydHN3aXRoKCcuJykKKworICAgIGRlZiBleHQoc2VsZiwgYXJnKToKKyAg
ICAgICAgaWYgbm90IGFyZy5zdGFydHN3aXRoKCcuJyk6CisgICAgICAgICAgICBhcmcgPSAnLicg
KyBhcmcKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aC5leHQgPT0gYXJnCisKKyAgICBkZWYgZXhp
c3RzKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYg
YmFzZW5hbWUoc2VsZiwgYXJnKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aC5iYXNlbmFtZSA9
PSBhcmcKKworICAgIGRlZiBiYXNlc3RhcnRzKHNlbGYsIGFyZyk6CisgICAgICAgIHJldHVybiBz
ZWxmLnBhdGguYmFzZW5hbWUuc3RhcnRzd2l0aChhcmcpCisKKyAgICBkZWYgcmVsdG8oc2VsZiwg
YXJnKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aC5yZWx0byhhcmcpCisKKyAgICBkZWYgZm5t
YXRjaChzZWxmLCBhcmcpOgorICAgICAgICByZXR1cm4gc2VsZi5wYXRoLmZubWF0Y2goYXJnKQor
CisgICAgZGVmIGVuZHN3aXRoKHNlbGYsIGFyZyk6CisgICAgICAgIHJldHVybiBzdHIoc2VsZi5w
YXRoKS5lbmRzd2l0aChhcmcpCisKKyAgICBkZWYgX2V2YWx1YXRlKHNlbGYsIGt3KToKKyAgICAg
ICAgZm9yIG5hbWUsIHZhbHVlIGluIGt3Lml0ZW1zKCk6CisgICAgICAgICAgICBpbnZlcnQgPSBG
YWxzZQorICAgICAgICAgICAgbWV0aCA9IE5vbmUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBtZXRoID0gZ2V0YXR0cihzZWxmLCBuYW1lKQorICAgICAgICAgICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIGlmIG5hbWVbOjNdID09ICdub3QnOgorICAg
ICAgICAgICAgICAgICAgICBpbnZlcnQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1ldGggPSBnZXRhdHRyKHNlbGYsIG5hbWVbMzpdKQor
ICAgICAgICAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBpZiBtZXRoIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAibm8gJXIgY2hlY2tl
ciBhdmFpbGFibGUgZm9yICVyIiAlIChuYW1lLCBzZWxmLnBhdGgpKQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIGlmIHB5LmNvZGUuZ2V0cmF3Y29kZShtZXRoKS5jb19hcmdjb3Vu
dCA+IDE6CisgICAgICAgICAgICAgICAgICAgIGlmIChub3QgbWV0aCh2YWx1ZSkpIF4gaW52ZXJ0
OgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgYm9vbCh2YWx1ZSkgXiBib29sKG1ldGgoKSkg
XiBpbnZlcnQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
ICAgIGV4Y2VwdCAocHkuZXJyb3IuRU5PRU5ULCBweS5lcnJvci5FTk9URElSLCBweS5lcnJvci5F
QlVTWSk6CisgICAgICAgICAgICAgICAgIyBFQlVTWSBmZWVscyBub3QgZW50aXJlbHkgY29ycmVj
dCwKKyAgICAgICAgICAgICAgICAjIGJ1dCBpdHMga2luZCBvZiBuZWNlc3Nhcnkgc2luY2UgRU5P
TUVESVVNCisgICAgICAgICAgICAgICAgIyBpcyBub3QgYWNjZXNzaWJsZSBpbiBweXRob24KKyAg
ICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLl9kZXBlbmRfb25fZXhpc3RlbmNlOgorICAg
ICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIGt3OgorICAgICAgICAgICAgICAgICAgICAgICAg
aWYga3cuZ2V0KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ25vdCcgKyBuYW1lCisgICAgICAgICAgICAg
ICAgICAgIGlmIG5hbWUgaW4ga3c6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3Qga3cu
Z2V0KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICByZXR1cm4gVHJ1ZQorCitjbGFzcyBOZXZlclJhaXNlZChFeGNlcHRpb24pOgorICAgIHBh
c3MKKworY2xhc3MgUGF0aEJhc2Uob2JqZWN0KToKKyAgICAiIiIgc2hhcmVkIGltcGxlbWVudGF0
aW9uIGZvciBmaWxlc3lzdGVtIHBhdGggb2JqZWN0cy4iIiIKKyAgICBDaGVja2VycyA9IENoZWNr
ZXJzCisKKyAgICBkZWYgX19kaXZfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxm
LmpvaW4oZnNwYXRoKG90aGVyKSkKKyAgICBfX3RydWVkaXZfXyA9IF9fZGl2X18gIyBweTNrCisK
KyAgICBkZWYgYmFzZW5hbWUoc2VsZik6CisgICAgICAgICIiIiBiYXNlbmFtZSBwYXJ0IG9mIHBh
dGguICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0YnlzcGVjKCdiYXNlbmFtZScpWzBdCisg
ICAgYmFzZW5hbWUgPSBwcm9wZXJ0eShiYXNlbmFtZSwgTm9uZSwgTm9uZSwgYmFzZW5hbWUuX19k
b2NfXykKKworICAgIGRlZiBkaXJuYW1lKHNlbGYpOgorICAgICAgICAiIiIgZGlybmFtZSBwYXJ0
IG9mIHBhdGguICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0YnlzcGVjKCdkaXJuYW1lJylb
MF0KKyAgICBkaXJuYW1lID0gcHJvcGVydHkoZGlybmFtZSwgTm9uZSwgTm9uZSwgZGlybmFtZS5f
X2RvY19fKQorCisgICAgZGVmIHB1cmViYXNlbmFtZShzZWxmKToKKyAgICAgICAgIiIiIHB1cmUg
YmFzZSBuYW1lIG9mIHRoZSBwYXRoLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0YnlzcGVj
KCdwdXJlYmFzZW5hbWUnKVswXQorICAgIHB1cmViYXNlbmFtZSA9IHByb3BlcnR5KHB1cmViYXNl
bmFtZSwgTm9uZSwgTm9uZSwgcHVyZWJhc2VuYW1lLl9fZG9jX18pCisKKyAgICBkZWYgZXh0KHNl
bGYpOgorICAgICAgICAiIiIgZXh0ZW5zaW9uIG9mIHRoZSBwYXRoIChpbmNsdWRpbmcgdGhlICcu
JykuIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9nZXRieXNwZWMoJ2V4dCcpWzBdCisgICAgZXh0
ID0gcHJvcGVydHkoZXh0LCBOb25lLCBOb25lLCBleHQuX19kb2NfXykKKworICAgIGRlZiBkaXJw
YXRoKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiByZXR1cm4gdGhlIGRpcmVj
dG9yeSBwYXRoIGpvaW5lZCB3aXRoIGFueSBnaXZlbiBwYXRoIGFyZ3VtZW50cy4gICIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5uZXcoYmFzZW5hbWU9JycpLmpvaW4oKmFyZ3MsICoqa3dhcmdzKQor
CisgICAgZGVmIHJlYWRfYmluYXJ5KHNlbGYpOgorICAgICAgICAiIiIgcmVhZCBhbmQgcmV0dXJu
IGEgYnl0ZXN0cmluZyBmcm9tIHJlYWRpbmcgdGhlIHBhdGguICIiIgorICAgICAgICB3aXRoIHNl
bGYub3BlbigncmInKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKyAgICBk
ZWYgcmVhZF90ZXh0KHNlbGYsIGVuY29kaW5nKToKKyAgICAgICAgIiIiIHJlYWQgYW5kIHJldHVy
biBhIFVuaWNvZGUgc3RyaW5nIGZyb20gcmVhZGluZyB0aGUgcGF0aC4gIiIiCisgICAgICAgIHdp
dGggc2VsZi5vcGVuKCJyIiwgZW5jb2Rpbmc9ZW5jb2RpbmcpIGFzIGY6CisgICAgICAgICAgICBy
ZXR1cm4gZi5yZWFkKCkKKworCisgICAgZGVmIHJlYWQoc2VsZiwgbW9kZT0ncicpOgorICAgICAg
ICAiIiIgcmVhZCBhbmQgcmV0dXJuIGEgYnl0ZXN0cmluZyBmcm9tIHJlYWRpbmcgdGhlIHBhdGgu
ICIiIgorICAgICAgICB3aXRoIHNlbGYub3Blbihtb2RlKSBhcyBmOgorICAgICAgICAgICAgcmV0
dXJuIGYucmVhZCgpCisKKyAgICBkZWYgcmVhZGxpbmVzKHNlbGYsIGNyPTEpOgorICAgICAgICAi
IiIgcmVhZCBhbmQgcmV0dXJuIGEgbGlzdCBvZiBsaW5lcyBmcm9tIHRoZSBwYXRoLiBpZiBjciBp
cyBGYWxzZSwgdGhlCituZXdsaW5lIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBlbmQgb2YgZWFj
aCBsaW5lLiAiIiIKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCApOgorICAgICAg
ICAgICAgbW9kZSA9ICdyVScKKyAgICAgICAgZWxzZTogICMgcHl0aG9uIDMgZGVwcmVjYXRlcyBt
b2RlICJVIiBpbiBmYXZvciBvZiAibmV3bGluZSIgb3B0aW9uCisgICAgICAgICAgICBtb2RlID0g
J3InCisKKyAgICAgICAgaWYgbm90IGNyOgorICAgICAgICAgICAgY29udGVudCA9IHNlbGYucmVh
ZChtb2RlKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQuc3BsaXQoJ1xuJykKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGYgPSBzZWxmLm9wZW4obW9kZSkKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICByZXR1cm4gZi5yZWFkbGluZXMoKQorICAgICAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiBsb2FkKHNlbGYpOgorICAg
ICAgICAiIiIgKGRlcHJlY2F0ZWQpIHJldHVybiBvYmplY3QgdW5waWNrbGVkIGZyb20gc2VsZi5y
ZWFkKCkgIiIiCisgICAgICAgIGYgPSBzZWxmLm9wZW4oJ3JiJykKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaW1wb3J0IHBpY2tsZQorICAgICAgICAgICAgcmV0dXJuIHB5LmVycm9yLmNoZWNr
ZWRfY2FsbChwaWNrbGUubG9hZCwgZikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYu
Y2xvc2UoKQorCisgICAgZGVmIG1vdmUoc2VsZiwgdGFyZ2V0KToKKyAgICAgICAgIiIiIG1vdmUg
dGhpcyBwYXRoIHRvIHRhcmdldC4gIiIiCisgICAgICAgIGlmIHRhcmdldC5yZWx0byhzZWxmKToK
KyAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVJTlZBTCgKKyAgICAgICAgICAgICAgICB0YXJn
ZXQsCisgICAgICAgICAgICAgICAgImNhbm5vdCBtb3ZlIHBhdGggaW50byBhIHN1YmRpcmVjdG9y
eSBvZiBpdHNlbGYiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnJlbmFtZSh0YXJn
ZXQpCisgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FWERFVjogICMgaW52YWxpZCBjcm9zcy1kZXZp
Y2UgbGluaworICAgICAgICAgICAgc2VsZi5jb3B5KHRhcmdldCkKKyAgICAgICAgICAgIHNlbGYu
cmVtb3ZlKCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBh
IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHBhdGguICIiIgorICAgICAgICByZXR1cm4g
cmVwcihzdHIoc2VsZikpCisKKyAgICBkZWYgY2hlY2soc2VsZiwgKiprdyk6CisgICAgICAgICIi
IiBjaGVjayBhIHBhdGggZm9yIGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcy4KKworICAgICAgICAg
ICAgV2l0aG91dCBhcmd1bWVudHMsIHJldHVybiBUcnVlIGlmIHRoZSBwYXRoIGV4aXN0cywgb3Ro
ZXJ3aXNlIEZhbHNlLgorCisgICAgICAgICAgICB2YWxpZCBjaGVja2Vyczo6CisKKyAgICAgICAg
ICAgICAgICBmaWxlPTEgICAgIyBpcyBhIGZpbGUKKyAgICAgICAgICAgICAgICBmaWxlPTAgICAg
IyBpcyBub3QgYSBmaWxlIChtYXkgbm90IGV2ZW4gZXhpc3QpCisgICAgICAgICAgICAgICAgZGly
PTEgICAgICMgaXMgYSBkaXIKKyAgICAgICAgICAgICAgICBsaW5rPTEgICAgIyBpcyBhIGxpbmsK
KyAgICAgICAgICAgICAgICBleGlzdHM9MSAgIyBleGlzdHMKKworICAgICAgICAgICAgWW91IGNh
biBzcGVjaWZ5IG11bHRpcGxlIGNoZWNrZXIgZGVmaW5pdGlvbnMsIGZvciBleGFtcGxlOjoKKwor
ICAgICAgICAgICAgICAgIHBhdGguY2hlY2soZmlsZT0xLCBsaW5rPTEpICAjIGEgbGluayBwb2lu
dGluZyB0byBhIGZpbGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBrdzoKKyAgICAgICAg
ICAgIGt3ID0geydleGlzdHMnOiAxfQorICAgICAgICByZXR1cm4gc2VsZi5DaGVja2VycyhzZWxm
KS5fZXZhbHVhdGUoa3cpCisKKyAgICBkZWYgZm5tYXRjaChzZWxmLCBwYXR0ZXJuKToKKyAgICAg
ICAgIiIicmV0dXJuIHRydWUgaWYgdGhlIGJhc2VuYW1lL2Z1bGxuYW1lIG1hdGNoZXMgdGhlIGds
b2ItJ3BhdHRlcm4nLgorCisgICAgICAgIHZhbGlkIHBhdHRlcm4gY2hhcmFjdGVyczo6CisKKyAg
ICAgICAgICAgICogICAgICAgbWF0Y2hlcyBldmVyeXRoaW5nCisgICAgICAgICAgICA/ICAgICAg
IG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIFtzZXFdICAgbWF0Y2hl
cyBhbnkgY2hhcmFjdGVyIGluIHNlcQorICAgICAgICAgICAgWyFzZXFdICBtYXRjaGVzIGFueSBj
aGFyIG5vdCBpbiBzZXEKKworICAgICAgICBJZiB0aGUgcGF0dGVybiBjb250YWlucyBhIHBhdGgt
c2VwYXJhdG9yIHRoZW4gdGhlIGZ1bGwgcGF0aAorICAgICAgICBpcyB1c2VkIGZvciBwYXR0ZXJu
IG1hdGNoaW5nIGFuZCBhICcqJyBpcyBwcmVwZW5kZWQgdG8gdGhlCisgICAgICAgIHBhdHRlcm4u
CisKKyAgICAgICAgaWYgdGhlIHBhdHRlcm4gZG9lc24ndCBjb250YWluIGEgcGF0aC1zZXBhcmF0
b3IgdGhlIHBhdHRlcm4KKyAgICAgICAgaXMgb25seSBtYXRjaGVkIGFnYWluc3QgdGhlIGJhc2Vu
YW1lLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZOTWF0Y2hlcihwYXR0ZXJuKShzZWxm
KQorCisgICAgZGVmIHJlbHRvKHNlbGYsIHJlbHBhdGgpOgorICAgICAgICAiIiIgcmV0dXJuIGEg
c3RyaW5nIHdoaWNoIGlzIHRoZSByZWxhdGl2ZSBwYXJ0IG9mIHRoZSBwYXRoCisgICAgICAgIHRv
IHRoZSBnaXZlbiAncmVscGF0aCcuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShyZWxwYXRoLCAoc3RyLCBQYXRoQmFzZSkpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCIlcjogbm90IGEgc3RyaW5nIG9yIHBhdGggb2JqZWN0IiAlKHJlbHBhdGgsKSkKKyAgICAg
ICAgc3RycmVscGF0aCA9IHN0cihyZWxwYXRoKQorICAgICAgICBpZiBzdHJyZWxwYXRoIGFuZCBz
dHJyZWxwYXRoWy0xXSAhPSBzZWxmLnNlcDoKKyAgICAgICAgICAgIHN0cnJlbHBhdGggKz0gc2Vs
Zi5zZXAKKyAgICAgICAgI2Fzc2VydCBzdHJyZWxwYXRoWy0xXSA9PSBzZWxmLnNlcAorICAgICAg
ICAjYXNzZXJ0IHN0cnJlbHBhdGhbLTJdICE9IHNlbGYuc2VwCisgICAgICAgIHN0cnNlbGYgPSBz
ZWxmLnN0cnBhdGgKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIgb3IgZ2V0YXR0
cihvcywgJ19uYW1lJywgTm9uZSkgPT0gJ250JzoKKyAgICAgICAgICAgIGlmIG9zLnBhdGgubm9y
bWNhc2Uoc3Ryc2VsZikuc3RhcnRzd2l0aCgKKyAgICAgICAgICAgICAgIG9zLnBhdGgubm9ybWNh
c2Uoc3RycmVscGF0aCkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdHJzZWxmW2xlbihzdHJy
ZWxwYXRoKTpdCisgICAgICAgIGVsaWYgc3Ryc2VsZi5zdGFydHN3aXRoKHN0cnJlbHBhdGgpOgor
ICAgICAgICAgICAgcmV0dXJuIHN0cnNlbGZbbGVuKHN0cnJlbHBhdGgpOl0KKyAgICAgICAgcmV0
dXJuICIiCisKKyAgICBkZWYgZW5zdXJlX2RpcihzZWxmLCAqYXJncyk6CisgICAgICAgICIiIiBl
bnN1cmUgdGhlIHBhdGggam9pbmVkIHdpdGggYXJncyBpcyBhIGRpcmVjdG9yeS4gIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLmVuc3VyZSgqYXJncywgKip7ImRpciI6IFRydWV9KQorCisgICAgZGVm
IGJlc3RyZWxwYXRoKHNlbGYsIGRlc3QpOgorICAgICAgICAiIiIgcmV0dXJuIGEgc3RyaW5nIHdo
aWNoIGlzIGEgcmVsYXRpdmUgcGF0aCBmcm9tIHNlbGYKKyAgICAgICAgICAgIChhc3N1bWVkIHRv
IGJlIGEgZGlyZWN0b3J5KSB0byBkZXN0IHN1Y2ggdGhhdAorICAgICAgICAgICAgc2VsZi5qb2lu
KGJlc3RyZWxwYXRoKSA9PSBkZXN0IGFuZCBpZiBub3Qgc3VjaAorICAgICAgICAgICAgcGF0aCBj
YW4gYmUgZGV0ZXJtaW5lZCByZXR1cm4gZGVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGlmIHNlbGYgPT0gZGVzdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gb3Mu
Y3VyZGlyCisgICAgICAgICAgICBiYXNlID0gc2VsZi5jb21tb24oZGVzdCkKKyAgICAgICAgICAg
IGlmIG5vdCBiYXNlOiAgIyBjYW4gYmUgdGhlIGNhc2Ugb24gd2luZG93cworICAgICAgICAgICAg
ICAgIHJldHVybiBzdHIoZGVzdCkKKyAgICAgICAgICAgIHNlbGYyYmFzZSA9IHNlbGYucmVsdG8o
YmFzZSkKKyAgICAgICAgICAgIHJlbGRlc3QgPSBkZXN0LnJlbHRvKGJhc2UpCisgICAgICAgICAg
ICBpZiBzZWxmMmJhc2U6CisgICAgICAgICAgICAgICAgbiA9IHNlbGYyYmFzZS5jb3VudChzZWxm
LnNlcCkgKyAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG4gPSAwCisgICAg
ICAgICAgICBsID0gW29zLnBhcmRpcl0gKiBuCisgICAgICAgICAgICBpZiByZWxkZXN0OgorICAg
ICAgICAgICAgICAgIGwuYXBwZW5kKHJlbGRlc3QpCisgICAgICAgICAgICB0YXJnZXQgPSBkZXN0
LnNlcC5qb2luKGwpCisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0CisgICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBzdHIoZGVzdCkKKworICAgIGRlZiBl
eGlzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNoZWNrKCkKKworICAgIGRlZiBpc2Rp
cihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2hlY2soZGlyPTEpCisKKyAgICBkZWYgaXNm
aWxlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jaGVjayhmaWxlPTEpCisKKyAgICBkZWYg
cGFydHMoc2VsZiwgcmV2ZXJzZT1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gYSByb290LWZp
cnN0IGxpc3Qgb2YgYWxsIGFuY2VzdG9yIGRpcmVjdG9yaWVzCisgICAgICAgICAgICBwbHVzIHRo
ZSBwYXRoIGl0c2VsZi4KKyAgICAgICAgIiIiCisgICAgICAgIGN1cnJlbnQgPSBzZWxmCisgICAg
ICAgIGwgPSBbc2VsZl0KKyAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIGxhc3QgPSBjdXJy
ZW50CisgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5kaXJwYXRoKCkKKyAgICAgICAgICAg
IGlmIGxhc3QgPT0gY3VycmVudDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
bC5hcHBlbmQoY3VycmVudCkKKyAgICAgICAgaWYgbm90IHJldmVyc2U6CisgICAgICAgICAgICBs
LnJldmVyc2UoKQorICAgICAgICByZXR1cm4gbAorCisgICAgZGVmIGNvbW1vbihzZWxmLCBvdGhl
cik6CisgICAgICAgICIiIiByZXR1cm4gdGhlIGNvbW1vbiBwYXJ0IHNoYXJlZCB3aXRoIHRoZSBv
dGhlciBwYXRoCisgICAgICAgICAgICBvciBOb25lIGlmIHRoZXJlIGlzIG5vIGNvbW1vbiBwYXJ0
LgorICAgICAgICAiIiIKKyAgICAgICAgbGFzdCA9IE5vbmUKKyAgICAgICAgZm9yIHgsIHkgaW4g
emlwKHNlbGYucGFydHMoKSwgb3RoZXIucGFydHMoKSk6CisgICAgICAgICAgICBpZiB4ICE9IHk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3QKKyAgICAgICAgICAgIGxhc3QgPSB4CisgICAg
ICAgIHJldHVybiBsYXN0CisKKyAgICBkZWYgX19hZGRfXyhzZWxmLCBvdGhlcik6CisgICAgICAg
ICIiIiByZXR1cm4gbmV3IHBhdGggb2JqZWN0IHdpdGggJ290aGVyJyBhZGRlZCB0byB0aGUgYmFz
ZW5hbWUiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubmV3KGJhc2VuYW1lPXNlbGYuYmFzZW5hbWUr
c3RyKG90aGVyKSkKKworICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIiIi
IHJldHVybiBzb3J0IHZhbHVlICgtMSwgMCwgKzEpLiAiIiIKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmV0dXJuIGNtcChzZWxmLnN0cnBhdGgsIG90aGVyLnN0cnBhdGgpCisgICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBjbXAoc3RyKHNlbGYpLCBz
dHIob3RoZXIpKSAjIHNlbGYucGF0aCwgb3RoZXIucGF0aCkKKworICAgIGRlZiBfX2x0X18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zdHJwYXRo
IDwgb3RoZXIuc3RycGF0aAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAg
ICAgICByZXR1cm4gc3RyKHNlbGYpIDwgc3RyKG90aGVyKQorCisgICAgZGVmIHZpc2l0KHNlbGYs
IGZpbD1Ob25lLCByZWM9Tm9uZSwgaWdub3JlPU5ldmVyUmFpc2VkLCBiZj1GYWxzZSwgc29ydD1G
YWxzZSk6CisgICAgICAgICIiIiB5aWVsZHMgYWxsIHBhdGhzIGJlbG93IHRoZSBjdXJyZW50IG9u
ZQorCisgICAgICAgICAgICBmaWwgaXMgYSBmaWx0ZXIgKGdsb2IgcGF0dGVybiBvciBjYWxsYWJs
ZSksIGlmIG5vdCBtYXRjaGluZyB0aGUKKyAgICAgICAgICAgIHBhdGggd2lsbCBub3QgYmUgeWll
bGRlZCwgZGVmYXVsdGluZyB0byBOb25lIChldmVyeXRoaW5nIGlzCisgICAgICAgICAgICByZXR1
cm5lZCkKKworICAgICAgICAgICAgcmVjIGlzIGEgZmlsdGVyIChnbG9iIHBhdHRlcm4gb3IgY2Fs
bGFibGUpIHRoYXQgY29udHJvbHMgd2hldGhlcgorICAgICAgICAgICAgYSBub2RlIGlzIGRlc2Nl
bmRlZCwgZGVmYXVsdGluZyB0byBOb25lCisKKyAgICAgICAgICAgIGlnbm9yZSBpcyBhbiBFeGNl
cHRpb24gY2xhc3MgdGhhdCBpcyBpZ25vcmVkd2hlbiBjYWxsaW5nIGRpcmxpc3QoKQorICAgICAg
ICAgICAgb24gYW55IG9mIHRoZSBwYXRocyAoYnkgZGVmYXVsdCwgYWxsIGV4Y2VwdGlvbnMgYXJl
IHJlcG9ydGVkKQorCisgICAgICAgICAgICBiZiBpZiBUcnVlIHdpbGwgY2F1c2UgYSBicmVhZHRo
Zmlyc3Qgc2VhcmNoIGluc3RlYWQgb2YgdGhlCisgICAgICAgICAgICBkZWZhdWx0IGRlcHRoZmly
c3QuIERlZmF1bHQ6IEZhbHNlCisKKyAgICAgICAgICAgIHNvcnQgaWYgVHJ1ZSB3aWxsIHNvcnQg
ZW50cmllcyB3aXRoaW4gZWFjaCBkaXJlY3RvcnkgbGV2ZWwuCisgICAgICAgICIiIgorICAgICAg
ICBmb3IgeCBpbiBWaXNpdG9yKGZpbCwgcmVjLCBpZ25vcmUsIGJmLCBzb3J0KS5nZW4oc2VsZik6
CisgICAgICAgICAgICB5aWVsZCB4CisKKyAgICBkZWYgX3NvcnRsaXN0KHNlbGYsIHJlcywgc29y
dCk6CisgICAgICAgIGlmIHNvcnQ6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNvcnQsICdfX2Nh
bGxfXycpOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5n
KAorICAgICAgICAgICAgICAgICAgICAibGlzdGRpcihzb3J0PWNhbGxhYmxlKSBpcyBkZXByZWNh
dGVkIGFuZCBicmVha3Mgb24gcHl0aG9uMyIKKyAgICAgICAgICAgICAgICApLCBzdGFja2xldmVs
PTMpCisgICAgICAgICAgICAgICAgcmVzLnNvcnQoc29ydCkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgcmVzLnNvcnQoKQorCisgICAgZGVmIHNhbWVmaWxlKHNlbGYsIG90aGVy
KToKKyAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIG90aGVyIHJlZmVycyB0byB0aGUgc2FtZSBz
dGF0IG9iamVjdCBhcyBzZWxmLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RycGF0aCA9PSBz
dHIob3RoZXIpCisKKyAgICBkZWYgX19mc3BhdGhfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuc3RycGF0aAorCitjbGFzcyBWaXNpdG9yOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWws
IHJlYywgaWdub3JlLCBiZiwgc29ydCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlsLCBweS5i
dWlsdGluLl9iYXNlc3RyaW5nKToKKyAgICAgICAgICAgIGZpbCA9IEZOTWF0Y2hlcihmaWwpCisg
ICAgICAgIGlmIGlzaW5zdGFuY2UocmVjLCBweS5idWlsdGluLl9iYXNlc3RyaW5nKToKKyAgICAg
ICAgICAgIHNlbGYucmVjID0gRk5NYXRjaGVyKHJlYykKKyAgICAgICAgZWxpZiBub3QgaGFzYXR0
cihyZWMsICdfX2NhbGxfXycpIGFuZCByZWM6CisgICAgICAgICAgICBzZWxmLnJlYyA9IGxhbWJk
YSBwYXRoOiBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnJlYyA9IHJlYwor
ICAgICAgICBzZWxmLmZpbCA9IGZpbAorICAgICAgICBzZWxmLmlnbm9yZSA9IGlnbm9yZQorICAg
ICAgICBzZWxmLmJyZWFkdGhmaXJzdCA9IGJmCisgICAgICAgIHNlbGYub3B0c29ydCA9IHNvcnQg
YW5kIHNvcnRlZCBvciAobGFtYmRhIHg6IHgpCisKKyAgICBkZWYgZ2VuKHNlbGYsIHBhdGgpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBlbnRyaWVzID0gcGF0aC5saXN0ZGlyKCkKKyAgICAg
ICAgZXhjZXB0IHNlbGYuaWdub3JlOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJlYyA9
IHNlbGYucmVjCisgICAgICAgIGRpcnMgPSBzZWxmLm9wdHNvcnQoW3AgZm9yIHAgaW4gZW50cmll
cworICAgICAgICAgICAgICAgICAgICBpZiBwLmNoZWNrKGRpcj0xKSBhbmQgKHJlYyBpcyBOb25l
IG9yIHJlYyhwKSldKQorICAgICAgICBpZiBub3Qgc2VsZi5icmVhZHRoZmlyc3Q6CisgICAgICAg
ICAgICBmb3Igc3ViZGlyIGluIGRpcnM6CisgICAgICAgICAgICAgICAgZm9yIHAgaW4gc2VsZi5n
ZW4oc3ViZGlyKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgcAorICAgICAgICBmb3IgcCBp
biBzZWxmLm9wdHNvcnQoZW50cmllcyk6CisgICAgICAgICAgICBpZiBzZWxmLmZpbCBpcyBOb25l
IG9yIHNlbGYuZmlsKHApOgorICAgICAgICAgICAgICAgIHlpZWxkIHAKKyAgICAgICAgaWYgc2Vs
Zi5icmVhZHRoZmlyc3Q6CisgICAgICAgICAgICBmb3Igc3ViZGlyIGluIGRpcnM6CisgICAgICAg
ICAgICAgICAgZm9yIHAgaW4gc2VsZi5nZW4oc3ViZGlyKToKKyAgICAgICAgICAgICAgICAgICAg
eWllbGQgcAorCitjbGFzcyBGTk1hdGNoZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdHRl
cm4pOgorICAgICAgICBzZWxmLnBhdHRlcm4gPSBwYXR0ZXJuCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgcGF0aCk6CisgICAgICAgIHBhdHRlcm4gPSBzZWxmLnBhdHRlcm4KKworICAgICAgICBp
ZiAocGF0dGVybi5maW5kKHBhdGguc2VwKSA9PSAtMSBhbmQKKyAgICAgICAgaXN3aW4zMiBhbmQK
KyAgICAgICAgcGF0dGVybi5maW5kKHBvc2l4cGF0aC5zZXApICE9IC0xKToKKyAgICAgICAgICAg
ICMgUnVubmluZyBvbiBXaW5kb3dzLCB0aGUgcGF0dGVybiBoYXMgbm8gV2luZG93cyBwYXRoIHNl
cGFyYXRvcnMsCisgICAgICAgICAgICAjIGFuZCB0aGUgcGF0dGVybiBoYXMgb25lIG9yIG1vcmUg
UG9zaXggcGF0aCBzZXBhcmF0b3JzLiBSZXBsYWNlCisgICAgICAgICAgICAjIHRoZSBQb3NpeCBw
YXRoIHNlcGFyYXRvcnMgd2l0aCB0aGUgV2luZG93cyBwYXRoIHNlcGFyYXRvci4KKyAgICAgICAg
ICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UocG9zaXhwYXRoLnNlcCwgcGF0aC5zZXApCisK
KyAgICAgICAgaWYgcGF0dGVybi5maW5kKHBhdGguc2VwKSA9PSAtMToKKyAgICAgICAgICAgIG5h
bWUgPSBwYXRoLmJhc2VuYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gc3Ry
KHBhdGgpICMgcGF0aC5zdHJwYXRoICMgWFhYIHN2bj8KKyAgICAgICAgICAgIGlmIG5vdCBvcy5w
YXRoLmlzYWJzKHBhdHRlcm4pOgorICAgICAgICAgICAgICAgIHBhdHRlcm4gPSAnKicgKyBwYXRo
LnNlcCArIHBhdHRlcm4KKyAgICAgICAgcmV0dXJuIGZubWF0Y2guZm5tYXRjaChuYW1lLCBwYXR0
ZXJuKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9sb2NhbC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
X3BhdGgvbG9jYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1MGZhMmYxYWI2OGJlZjA1OTQxNzk1OWYxOTU4
NDdiYzBmMWJmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvbG9jYWwucHkK
QEAgLTAsMCArMSw5OTIgQEAKKyIiIgorbG9jYWwgcGF0aCBpbXBsZW1lbnRhdGlvbi4KKyIiIgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAorCitmcm9tIGNvbnRleHRsaWIg
aW1wb3J0IGNvbnRleHRtYW5hZ2VyCitpbXBvcnQgc3lzLCBvcywgcmUsIGF0ZXhpdCwgaW8sIHV1
aWQKK2ltcG9ydCBweQorZnJvbSBweS5fcGF0aCBpbXBvcnQgY29tbW9uCitmcm9tIHB5Ll9wYXRo
LmNvbW1vbiBpbXBvcnQgaXN3aW4zMiwgZnNwYXRoCitmcm9tIHN0YXQgaW1wb3J0IFNfSVNMTkss
IFNfSVNESVIsIFNfSVNSRUcKKworZnJvbSBvcy5wYXRoIGltcG9ydCBhYnNwYXRoLCBub3JtY2Fz
ZSwgbm9ybXBhdGgsIGlzYWJzLCBleGlzdHMsIGlzZGlyLCBpc2ZpbGUsIGlzbGluaywgZGlybmFt
ZQorCitpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsMCk6CisgICAgZGVmIG1hcF9hc19saXN0KGZ1
bmMsIGl0ZXIpOgorICAgICAgICByZXR1cm4gbGlzdChtYXAoZnVuYywgaXRlcikpCitlbHNlOgor
ICAgIG1hcF9hc19saXN0ID0gbWFwCisKK2NsYXNzIFN0YXQob2JqZWN0KToKKyAgICBkZWYgX19n
ZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX29zc3Rh
dHJlc3VsdCwgInN0XyIgKyBuYW1lKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIG9z
c3RhdHJlc3VsdCk6CisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5fb3Nz
dGF0cmVzdWx0ID0gb3NzdGF0cmVzdWx0CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgb3duZXIo
c2VsZik6CisgICAgICAgIGlmIGlzd2luMzI6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCJYWFggd2luMzIiKQorICAgICAgICBpbXBvcnQgcHdkCisgICAgICAgIGVudHJ5
ID0gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKHB3ZC5nZXRwd3VpZCwgc2VsZi51aWQpCisgICAgICAg
IHJldHVybiBlbnRyeVswXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGdyb3VwKHNlbGYpOgor
ICAgICAgICAiIiIgcmV0dXJuIGdyb3VwIG5hbWUgb2YgZmlsZS4gIiIiCisgICAgICAgIGlmIGlz
d2luMzI6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJYWFggd2luMzIi
KQorICAgICAgICBpbXBvcnQgZ3JwCisgICAgICAgIGVudHJ5ID0gcHkuZXJyb3IuY2hlY2tlZF9j
YWxsKGdycC5nZXRncmdpZCwgc2VsZi5naWQpCisgICAgICAgIHJldHVybiBlbnRyeVswXQorCisg
ICAgZGVmIGlzZGlyKHNlbGYpOgorICAgICAgICByZXR1cm4gU19JU0RJUihzZWxmLl9vc3N0YXRy
ZXN1bHQuc3RfbW9kZSkKKworICAgIGRlZiBpc2ZpbGUoc2VsZik6CisgICAgICAgIHJldHVybiBT
X0lTUkVHKHNlbGYuX29zc3RhdHJlc3VsdC5zdF9tb2RlKQorCisgICAgZGVmIGlzbGluayhzZWxm
KToKKyAgICAgICAgc3QgPSBzZWxmLnBhdGgubHN0YXQoKQorICAgICAgICByZXR1cm4gU19JU0xO
SyhzZWxmLl9vc3N0YXRyZXN1bHQuc3RfbW9kZSkKKworY2xhc3MgUG9zaXhQYXRoKGNvbW1vbi5Q
YXRoQmFzZSk6CisgICAgZGVmIGNob3duKHNlbGYsIHVzZXIsIGdyb3VwLCByZWM9MCk6CisgICAg
ICAgICIiIiBjaGFuZ2Ugb3duZXJzaGlwIHRvIHRoZSBnaXZlbiB1c2VyIGFuZCBncm91cC4KKyAg
ICAgICAgICAgIHVzZXIgYW5kIGdyb3VwIG1heSBiZSBzcGVjaWZpZWQgYnkgYSBudW1iZXIgb3IK
KyAgICAgICAgICAgIGJ5IGEgbmFtZS4gIGlmIHJlYyBpcyBUcnVlIGNoYW5nZSBvd25lcnNoaXAK
KyAgICAgICAgICAgIHJlY3Vyc2l2ZWx5LgorICAgICAgICAiIiIKKyAgICAgICAgdWlkID0gZ2V0
dXNlcmlkKHVzZXIpCisgICAgICAgIGdpZCA9IGdldGdyb3VwaWQoZ3JvdXApCisgICAgICAgIGlm
IHJlYzoKKyAgICAgICAgICAgIGZvciB4IGluIHNlbGYudmlzaXQocmVjPWxhbWJkYSB4OiB4LmNo
ZWNrKGxpbms9MCkpOgorICAgICAgICAgICAgICAgIGlmIHguY2hlY2sobGluaz0wKToKKyAgICAg
ICAgICAgICAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmNob3duLCBzdHIoeCksIHVp
ZCwgZ2lkKQorICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwob3MuY2hvd24sIHN0cihzZWxm
KSwgdWlkLCBnaWQpCisKKyAgICBkZWYgcmVhZGxpbmsoc2VsZik6CisgICAgICAgICIiIiByZXR1
cm4gdmFsdWUgb2YgYSBzeW1ib2xpYyBsaW5rLiAiIiIKKyAgICAgICAgcmV0dXJuIHB5LmVycm9y
LmNoZWNrZWRfY2FsbChvcy5yZWFkbGluaywgc2VsZi5zdHJwYXRoKQorCisgICAgZGVmIG1rbGlu
a3RvKHNlbGYsIG9sZG5hbWUpOgorICAgICAgICAiIiIgcG9zaXggc3R5bGUgaGFyZCBsaW5rIHRv
IGFub3RoZXIgbmFtZS4gIiIiCisgICAgICAgIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5saW5r
LCBzdHIob2xkbmFtZSksIHN0cihzZWxmKSkKKworICAgIGRlZiBta3N5bWxpbmt0byhzZWxmLCB2
YWx1ZSwgYWJzb2x1dGU9MSk6CisgICAgICAgICIiIiBjcmVhdGUgYSBzeW1ib2xpYyBsaW5rIHdp
dGggdGhlIGdpdmVuIHZhbHVlIChwb2ludGluZyB0byBhbm90aGVyIG5hbWUpLiAiIiIKKyAgICAg
ICAgaWYgYWJzb2x1dGU6CisgICAgICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwob3Muc3lt
bGluaywgc3RyKHZhbHVlKSwgc2VsZi5zdHJwYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgYmFzZSA9IHNlbGYuY29tbW9uKHZhbHVlKQorICAgICAgICAgICAgIyB3aXRoIHBvc2l4IGxv
Y2FsIHBhdGhzICcvJyBpcyBhbHdheXMgYSBjb21tb24gYmFzZQorICAgICAgICAgICAgcmVsc291
cmNlID0gc2VsZi5fX2NsYXNzX18odmFsdWUpLnJlbHRvKGJhc2UpCisgICAgICAgICAgICByZWxk
ZXN0ID0gc2VsZi5yZWx0byhiYXNlKQorICAgICAgICAgICAgbiA9IHJlbGRlc3QuY291bnQoc2Vs
Zi5zZXApCisgICAgICAgICAgICB0YXJnZXQgPSBzZWxmLnNlcC5qb2luKCgnLi4nLCApKm4gKyAo
cmVsc291cmNlLCApKQorICAgICAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLnN5bWxp
bmssIHRhcmdldCwgc2VsZi5zdHJwYXRoKQorCitkZWYgZ2V0dXNlcmlkKHVzZXIpOgorICAgIGlt
cG9ydCBwd2QKKyAgICBpZiBub3QgaXNpbnN0YW5jZSh1c2VyLCBpbnQpOgorICAgICAgICB1c2Vy
ID0gcHdkLmdldHB3bmFtKHVzZXIpWzJdCisgICAgcmV0dXJuIHVzZXIKKworZGVmIGdldGdyb3Vw
aWQoZ3JvdXApOgorICAgIGltcG9ydCBncnAKKyAgICBpZiBub3QgaXNpbnN0YW5jZShncm91cCwg
aW50KToKKyAgICAgICAgZ3JvdXAgPSBncnAuZ2V0Z3JuYW0oZ3JvdXApWzJdCisgICAgcmV0dXJu
IGdyb3VwCisKK0ZTQmFzZSA9IG5vdCBpc3dpbjMyIGFuZCBQb3NpeFBhdGggb3IgY29tbW9uLlBh
dGhCYXNlCisKK2NsYXNzIExvY2FsUGF0aChGU0Jhc2UpOgorICAgICIiIiBvYmplY3Qgb3JpZW50
ZWQgaW50ZXJmYWNlIHRvIG9zLnBhdGggYW5kIG90aGVyIGxvY2FsIGZpbGVzeXN0ZW0KKyAgICAg
ICAgcmVsYXRlZCBpbmZvcm1hdGlvbi4KKyAgICAiIiIKKyAgICBjbGFzcyBJbXBvcnRNaXNtYXRj
aEVycm9yKEltcG9ydEVycm9yKToKKyAgICAgICAgIiIiIHJhaXNlZCBvbiBweWltcG9ydCgpIGlm
IHRoZXJlIGlzIGEgbWlzbWF0Y2ggb2YgX19maWxlX18ncyIiIgorCisgICAgc2VwID0gb3Muc2Vw
CisgICAgY2xhc3MgQ2hlY2tlcnMoY29tbW9uLkNoZWNrZXJzKToKKyAgICAgICAgZGVmIF9zdGF0
KHNlbGYpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9z
dGF0Y2FjaGUKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0YXRjYWNoZSA9IHNlbGYucGF0
aC5zdGF0KCkKKyAgICAgICAgICAgICAgICBleGNlcHQgcHkuZXJyb3IuRUxPT1A6CisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3N0YXRjYWNoZSA9IHNlbGYucGF0aC5sc3RhdCgpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX3N0YXRjYWNoZQorCisgICAgICAgIGRlZiBkaXIoc2VsZik6
CisgICAgICAgICAgICByZXR1cm4gU19JU0RJUihzZWxmLl9zdGF0KCkubW9kZSkKKworICAgICAg
ICBkZWYgZmlsZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBTX0lTUkVHKHNlbGYuX3N0YXQo
KS5tb2RlKQorCisgICAgICAgIGRlZiBleGlzdHMoc2VsZik6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi5fc3RhdCgpCisKKyAgICAgICAgZGVmIGxpbmsoc2VsZik6CisgICAgICAgICAgICBzdCA9
IHNlbGYucGF0aC5sc3RhdCgpCisgICAgICAgICAgICByZXR1cm4gU19JU0xOSyhzdC5tb2RlKQor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGg9Tm9uZSwgZXhwYW5kdXNlcj1GYWxzZSk6Cisg
ICAgICAgICIiIiBJbml0aWFsaXplIGFuZCByZXR1cm4gYSBsb2NhbCBQYXRoIGluc3RhbmNlLgor
CisgICAgICAgIFBhdGggY2FuIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4K
KyAgICAgICAgSWYgcGF0aCBpcyBOb25lIGl0IGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHdvcmtp
bmcgZGlyZWN0b3J5LgorICAgICAgICBJZiBleHBhbmR1c2VyIGlzIFRydWUsIHRpbGRlLWV4cGFu
c2lvbiBpcyBwZXJmb3JtZWQuCisgICAgICAgIE5vdGUgdGhhdCBQYXRoIGluc3RhbmNlcyBhbHdh
eXMgY2FycnkgYW4gYWJzb2x1dGUgcGF0aC4KKyAgICAgICAgTm90ZSBhbHNvIHRoYXQgcGFzc2lu
ZyBpbiBhIGxvY2FsIHBhdGggb2JqZWN0IHdpbGwgc2ltcGx5IHJldHVybgorICAgICAgICB0aGUg
ZXhhY3Qgc2FtZSBwYXRoIG9iamVjdC4gVXNlIG5ldygpIHRvIGdldCBhIG5ldyBjb3B5LgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5zdHJw
YXRoID0gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmdldGN3ZCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwYXRoID0gZnNwYXRoKHBhdGgpCisgICAg
ICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImNhbiBvbmx5IHBhc3MgTm9uZSwgUGF0aCBpbnN0YW5jZXMgIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm9yIG5vbi1lbXB0eSBzdHJpbmdzIHRvIExvY2FsUGF0aCIpCisg
ICAgICAgICAgICBpZiBleHBhbmR1c2VyOgorICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRo
LmV4cGFuZHVzZXIocGF0aCkKKyAgICAgICAgICAgIHNlbGYuc3RycGF0aCA9IGFic3BhdGgocGF0
aCkKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5z
dHJwYXRoKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHMxID0gZnNw
YXRoKHNlbGYpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMyID0gZnNwYXRoKG90aGVyKQor
ICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
ICAgIGlmIGlzd2luMzI6CisgICAgICAgICAgICBzMSA9IHMxLmxvd2VyKCkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBzMiA9IHMyLmxvd2VyKCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
cmV0dXJuIHMxID09IHMyCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAg
cmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gZnNwYXRoKHNlbGYpIDwgZnNwYXRoKG90aGVyKQorCisgICAgZGVm
IF9fZ3RfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBmc3BhdGgoc2VsZikgPiBmc3Bh
dGgob3RoZXIpCisKKyAgICBkZWYgc2FtZWZpbGUoc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiIg
cmV0dXJuIFRydWUgaWYgJ290aGVyJyByZWZlcmVuY2VzIHRoZSBzYW1lIGZpbGUgYXMgJ3NlbGYn
LgorICAgICAgICAiIiIKKyAgICAgICAgb3RoZXIgPSBmc3BhdGgob3RoZXIpCisgICAgICAgIGlm
IG5vdCBpc2FicyhvdGhlcik6CisgICAgICAgICAgICBvdGhlciA9IGFic3BhdGgob3RoZXIpCisg
ICAgICAgIGlmIHNlbGYgPT0gb3RoZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBpZiBpc3dpbjMyOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlICMgdGhlcmUgaXMgbm8gc2Ft
ZWZpbGUKKyAgICAgICAgcmV0dXJuIHB5LmVycm9yLmNoZWNrZWRfY2FsbCgKKyAgICAgICAgICAg
ICAgICBvcy5wYXRoLnNhbWVmaWxlLCBzZWxmLnN0cnBhdGgsIG90aGVyKQorCisgICAgZGVmIHJl
bW92ZShzZWxmLCByZWM9MSwgaWdub3JlX2Vycm9ycz1GYWxzZSk6CisgICAgICAgICIiIiByZW1v
dmUgYSBmaWxlIG9yIGRpcmVjdG9yeSAob3IgYSBkaXJlY3RvcnkgdHJlZSBpZiByZWM9MSkuCisg
ICAgICAgIGlmIGlnbm9yZV9lcnJvcnMgaXMgVHJ1ZSwgZXJyb3JzIHdoaWxlIHJlbW92aW5nIGRp
cmVjdG9yaWVzIHdpbGwKKyAgICAgICAgYmUgaWdub3JlZC4KKyAgICAgICAgIiIiCisgICAgICAg
IGlmIHNlbGYuY2hlY2soZGlyPTEsIGxpbms9MCk6CisgICAgICAgICAgICBpZiByZWM6CisgICAg
ICAgICAgICAgICAgIyBmb3JjZSByZW1vdmUgb2YgcmVhZG9ubHkgZmlsZXMgb24gd2luZG93cwor
ICAgICAgICAgICAgICAgIGlmIGlzd2luMzI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2ht
b2QoMG83MDAsIHJlYz0xKQorICAgICAgICAgICAgICAgIGltcG9ydCBzaHV0aWwKKyAgICAgICAg
ICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwoCisgICAgICAgICAgICAgICAgICAgIHNodXRp
bC5ybXRyZWUsIHNlbGYuc3RycGF0aCwKKyAgICAgICAgICAgICAgICAgICAgaWdub3JlX2Vycm9y
cz1pZ25vcmVfZXJyb3JzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBweS5l
cnJvci5jaGVja2VkX2NhbGwob3Mucm1kaXIsIHNlbGYuc3RycGF0aCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGlmIGlzd2luMzI6CisgICAgICAgICAgICAgICAgc2VsZi5jaG1vZCgwbzcw
MCkKKyAgICAgICAgICAgIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5yZW1vdmUsIHNlbGYuc3Ry
cGF0aCkKKworICAgIGRlZiBjb21wdXRlaGFzaChzZWxmLCBoYXNodHlwZT0ibWQ1IiwgY2h1bmtz
aXplPTUyNDI4OCk6CisgICAgICAgICIiIiByZXR1cm4gaGV4ZGlnZXN0IG9mIGhhc2h2YWx1ZSBm
b3IgdGhpcyBmaWxlLiAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIGltcG9ydCBoYXNobGliIGFzIG1vZAorICAgICAgICAgICAgZXhjZXB0IEltcG9y
dEVycm9yOgorICAgICAgICAgICAgICAgIGlmIGhhc2h0eXBlID09ICJzaGExIjoKKyAgICAgICAg
ICAgICAgICAgICAgaGFzaHR5cGUgPSAic2hhIgorICAgICAgICAgICAgICAgIG1vZCA9IF9faW1w
b3J0X18oaGFzaHR5cGUpCisgICAgICAgICAgICBoYXNoID0gZ2V0YXR0cihtb2QsIGhhc2h0eXBl
KSgpCisgICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIEltcG9ydEVycm9yKToKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkRvbid0IGtub3cgaG93IHRvIGNvbXB1dGUgJXIgaGFz
aCIgJShoYXNodHlwZSwpKQorICAgICAgICBmID0gc2VsZi5vcGVuKCdyYicpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICAgICAgYnVmID0gZi5yZWFkKGNo
dW5rc2l6ZSkKKyAgICAgICAgICAgICAgICBpZiBub3QgYnVmOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gaGFzaC5oZXhkaWdlc3QoKQorICAgICAgICAgICAgICAgIGhhc2gudXBkYXRlKGJ1
ZikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorCisgICAgZGVmIG5l
dyhzZWxmLCAqKmt3KToKKyAgICAgICAgIiIiIGNyZWF0ZSBhIG1vZGlmaWVkIHZlcnNpb24gb2Yg
dGhpcyBwYXRoLgorICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBrZXl3b3JkIGFyZ3VtZW50cyBt
b2RpZnkgdmFyaW91cyBwYXRoIHBhcnRzOjoKKworICAgICAgICAgICAgICBhOi9zb21lL3BhdGgv
dG8vYS9maWxlLmV4dAorICAgICAgICAgICAgICB4eCAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRyaXZlCisgICAgICAgICAgICAgIHh4eHh4eHh4eHh4eHh4eHh4ICAgICAgICAgICAgZGlybmFt
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4eHh4eHh4eCAgIGJhc2VuYW1lCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHh4eHggICAgICAgcHVyZWJhc2VuYW1lCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHh4ICAgZXh0CisgICAgICAgICIi
IgorICAgICAgICBvYmogPSBvYmplY3QuX19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAg
aWYgbm90IGt3OgorICAgICAgICAgICAgb2JqLnN0cnBhdGggPSBzZWxmLnN0cnBhdGgKKyAgICAg
ICAgICAgIHJldHVybiBvYmoKKyAgICAgICAgZHJpdmUsIGRpcm5hbWUsIGJhc2VuYW1lLCBwdXJl
YmFzZW5hbWUsZXh0ID0gc2VsZi5fZ2V0YnlzcGVjKAorICAgICAgICAgICAgICJkcml2ZSxkaXJu
YW1lLGJhc2VuYW1lLHB1cmViYXNlbmFtZSxleHQiKQorICAgICAgICBpZiAnYmFzZW5hbWUnIGlu
IGt3OgorICAgICAgICAgICAgaWYgJ3B1cmViYXNlbmFtZScgaW4ga3cgb3IgJ2V4dCcgaW4ga3c6
CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBzcGVjaWZpY2F0aW9u
ICVyIiAlIGt3KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcGIgPSBrdy5zZXRkZWZhdWx0
KCdwdXJlYmFzZW5hbWUnLCBwdXJlYmFzZW5hbWUpCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgZXh0ID0ga3dbJ2V4dCddCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBp
ZiBleHQgYW5kIG5vdCBleHQuc3RhcnRzd2l0aCgnLicpOgorICAgICAgICAgICAgICAgICAgICBl
eHQgPSAnLicgKyBleHQKKyAgICAgICAgICAgIGt3WydiYXNlbmFtZSddID0gcGIgKyBleHQKKwor
ICAgICAgICBpZiAoJ2Rpcm5hbWUnIGluIGt3IGFuZCBub3Qga3dbJ2Rpcm5hbWUnXSk6CisgICAg
ICAgICAgICBrd1snZGlybmFtZSddID0gZHJpdmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGt3LnNldGRlZmF1bHQoJ2Rpcm5hbWUnLCBkaXJuYW1lKQorICAgICAgICBrdy5zZXRkZWZhdWx0
KCdzZXAnLCBzZWxmLnNlcCkKKyAgICAgICAgb2JqLnN0cnBhdGggPSBub3JtcGF0aCgKKyAgICAg
ICAgICAgICIlKGRpcm5hbWUpcyUoc2VwKXMlKGJhc2VuYW1lKXMiICUga3cpCisgICAgICAgIHJl
dHVybiBvYmoKKworICAgIGRlZiBfZ2V0YnlzcGVjKHNlbGYsIHNwZWMpOgorICAgICAgICAiIiIg
c2VlIG5ldyBmb3Igd2hhdCAnc3BlYycgY2FuIGJlLiAiIiIKKyAgICAgICAgcmVzID0gW10KKyAg
ICAgICAgcGFydHMgPSBzZWxmLnN0cnBhdGguc3BsaXQoc2VsZi5zZXApCisKKyAgICAgICAgYXJn
cyA9IGZpbHRlcihOb25lLCBzcGVjLnNwbGl0KCcsJykgKQorICAgICAgICBhcHBlbmQgPSByZXMu
YXBwZW5kCisgICAgICAgIGZvciBuYW1lIGluIGFyZ3M6CisgICAgICAgICAgICBpZiBuYW1lID09
ICdkcml2ZSc6CisgICAgICAgICAgICAgICAgYXBwZW5kKHBhcnRzWzBdKQorICAgICAgICAgICAg
ZWxpZiBuYW1lID09ICdkaXJuYW1lJzoKKyAgICAgICAgICAgICAgICBhcHBlbmQoc2VsZi5zZXAu
am9pbihwYXJ0c1s6LTFdKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYmFz
ZW5hbWUgPSBwYXJ0c1stMV0KKyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICdiYXNlbmFtZSc6
CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChiYXNlbmFtZSkKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICBpID0gYmFzZW5hbWUucmZpbmQoJy4nKQorICAgICAg
ICAgICAgICAgICAgICBpZiBpID09IC0xOgorICAgICAgICAgICAgICAgICAgICAgICAgcHVyZWJh
c2VuYW1lLCBleHQgPSBiYXNlbmFtZSwgJycKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1cmViYXNlbmFtZSwgZXh0ID0gYmFzZW5hbWVbOmldLCBi
YXNlbmFtZVtpOl0KKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAncHVyZWJhc2VuYW1l
JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChwdXJlYmFzZW5hbWUpCisgICAgICAg
ICAgICAgICAgICAgIGVsaWYgbmFtZSA9PSAnZXh0JzoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFwcGVuZChleHQpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHBhcnQgc3BlY2lmaWNhdGlvbiAlciIg
JSBuYW1lKQorICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgZGlycGF0aChzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBkaXJlY3RvcnkgcGF0aCBqb2lu
ZWQgd2l0aCBhbnkgZ2l2ZW4gcGF0aCBhcmd1bWVudHMuICAiIiIKKyAgICAgICAgaWYgbm90IGt3
YXJnczoKKyAgICAgICAgICAgIHBhdGggPSBvYmplY3QuX19uZXdfXyhzZWxmLl9fY2xhc3NfXykK
KyAgICAgICAgICAgIHBhdGguc3RycGF0aCA9IGRpcm5hbWUoc2VsZi5zdHJwYXRoKQorICAgICAg
ICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgICAgICBwYXRoID0gcGF0aC5qb2luKCphcmdzKQor
ICAgICAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgcmV0dXJuIHN1cGVyKExvY2FsUGF0aCwg
c2VsZikuZGlycGF0aCgqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgam9pbihzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgcmV0dXJuIGEgbmV3IHBhdGggYnkgYXBwZW5kaW5n
IGFsbCAnYXJncycgYXMgcGF0aAorICAgICAgICBjb21wb25lbnRzLiAgaWYgYWJzPTEgaXMgdXNl
ZCByZXN0YXJ0IGZyb20gcm9vdCBpZiBhbnkKKyAgICAgICAgb2YgdGhlIGFyZ3MgaXMgYW4gYWJz
b2x1dGUgcGF0aC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlcCA9IHNlbGYuc2VwCisgICAgICAg
IHN0cmFyZ3MgPSBbZnNwYXRoKGFyZykgZm9yIGFyZyBpbiBhcmdzXQorICAgICAgICBzdHJwYXRo
ID0gc2VsZi5zdHJwYXRoCisgICAgICAgIGlmIGt3YXJncy5nZXQoJ2FicycpOgorICAgICAgICAg
ICAgbmV3YXJncyA9IFtdCisgICAgICAgICAgICBmb3IgYXJnIGluIHJldmVyc2VkKHN0cmFyZ3Mp
OgorICAgICAgICAgICAgICAgIGlmIGlzYWJzKGFyZyk6CisgICAgICAgICAgICAgICAgICAgIHN0
cnBhdGggPSBhcmcKKyAgICAgICAgICAgICAgICAgICAgc3RyYXJncyA9IG5ld2FyZ3MKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBuZXdhcmdzLmluc2VydCgwLCBh
cmcpCisgICAgICAgICMgc3BlY2lhbCBjYXNlIGZvciB3aGVuIHdlIGhhdmUgZS5nLiBzdHJwYXRo
ID09ICIvIgorICAgICAgICBhY3R1YWxfc2VwID0gIiIgaWYgc3RycGF0aC5lbmRzd2l0aChzZXAp
IGVsc2Ugc2VwCisgICAgICAgIGZvciBhcmcgaW4gc3RyYXJnczoKKyAgICAgICAgICAgIGFyZyA9
IGFyZy5zdHJpcChzZXApCisgICAgICAgICAgICBpZiBpc3dpbjMyOgorICAgICAgICAgICAgICAg
ICMgYWxsb3cgdW5peCBzdHlsZSBwYXRocyBldmVuIG9uIHdpbmRvd3MuCisgICAgICAgICAgICAg
ICAgYXJnID0gYXJnLnN0cmlwKCcvJykKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmcucmVwbGFj
ZSgnLycsIHNlcCkKKyAgICAgICAgICAgIHN0cnBhdGggPSBzdHJwYXRoICsgYWN0dWFsX3NlcCAr
IGFyZworICAgICAgICAgICAgYWN0dWFsX3NlcCA9IHNlcAorICAgICAgICBvYmogPSBvYmplY3Qu
X19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAgb2JqLnN0cnBhdGggPSBub3JtcGF0aChz
dHJwYXRoKQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgb3BlbihzZWxmLCBtb2RlPSdy
JywgZW5zdXJlPUZhbHNlLCBlbmNvZGluZz1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhbiBv
cGVuZWQgZmlsZSB3aXRoIHRoZSBnaXZlbiBtb2RlLgorCisgICAgICAgIElmIGVuc3VyZSBpcyBU
cnVlLCBjcmVhdGUgcGFyZW50IGRpcmVjdG9yaWVzIGlmIG5lZWRlZC4KKyAgICAgICAgIiIiCisg
ICAgICAgIGlmIGVuc3VyZToKKyAgICAgICAgICAgIHNlbGYuZGlycGF0aCgpLmVuc3VyZShkaXI9
MSkKKyAgICAgICAgaWYgZW5jb2Rpbmc6CisgICAgICAgICAgICByZXR1cm4gcHkuZXJyb3IuY2hl
Y2tlZF9jYWxsKGlvLm9wZW4sIHNlbGYuc3RycGF0aCwgbW9kZSwgZW5jb2Rpbmc9ZW5jb2Rpbmcp
CisgICAgICAgIHJldHVybiBweS5lcnJvci5jaGVja2VkX2NhbGwob3Blbiwgc2VsZi5zdHJwYXRo
LCBtb2RlKQorCisgICAgZGVmIF9mYXN0am9pbihzZWxmLCBuYW1lKToKKyAgICAgICAgY2hpbGQg
PSBvYmplY3QuX19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAgY2hpbGQuc3RycGF0aCA9
IHNlbGYuc3RycGF0aCArIHNlbGYuc2VwICsgbmFtZQorICAgICAgICByZXR1cm4gY2hpbGQKKwor
ICAgIGRlZiBpc2xpbmsoc2VsZik6CisgICAgICAgIHJldHVybiBpc2xpbmsoc2VsZi5zdHJwYXRo
KQorCisgICAgZGVmIGNoZWNrKHNlbGYsICoqa3cpOgorICAgICAgICBpZiBub3Qga3c6CisgICAg
ICAgICAgICByZXR1cm4gZXhpc3RzKHNlbGYuc3RycGF0aCkKKyAgICAgICAgaWYgbGVuKGt3KSA9
PSAxOgorICAgICAgICAgICAgaWYgImRpciIgaW4ga3c6CisgICAgICAgICAgICAgICAgcmV0dXJu
IG5vdCBrd1siZGlyIl0gXiBpc2RpcihzZWxmLnN0cnBhdGgpCisgICAgICAgICAgICBpZiAiZmls
ZSIgaW4ga3c6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5vdCBrd1siZmlsZSJdIF4gaXNmaWxl
KHNlbGYuc3RycGF0aCkKKyAgICAgICAgcmV0dXJuIHN1cGVyKExvY2FsUGF0aCwgc2VsZikuY2hl
Y2soKiprdykKKworICAgIF9wYXR0ZXJuY2hhcnMgPSBzZXQoIio/WyIgKyBvcy5wYXRoLnNlcCkK
KyAgICBkZWYgbGlzdGRpcihzZWxmLCBmaWw9Tm9uZSwgc29ydD1Ob25lKToKKyAgICAgICAgIiIi
IGxpc3QgZGlyZWN0b3J5IGNvbnRlbnRzLCBwb3NzaWJseSBmaWx0ZXIgYnkgdGhlIGdpdmVuIGZp
bCBmdW5jCisgICAgICAgICAgICBhbmQgcG9zc2libHkgc29ydGVkLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgZmlsIGlzIE5vbmUgYW5kIHNvcnQgaXMgTm9uZToKKyAgICAgICAgICAgIG5hbWVz
ID0gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmxpc3RkaXIsIHNlbGYuc3RycGF0aCkKKyAgICAg
ICAgICAgIHJldHVybiBtYXBfYXNfbGlzdChzZWxmLl9mYXN0am9pbiwgbmFtZXMpCisgICAgICAg
IGlmIGlzaW5zdGFuY2UoZmlsLCBweS5idWlsdGluLl9iYXNlc3RyaW5nKToKKyAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9wYXR0ZXJuY2hhcnMuaW50ZXJzZWN0aW9uKGZpbCk6CisgICAgICAgICAg
ICAgICAgY2hpbGQgPSBzZWxmLl9mYXN0am9pbihmaWwpCisgICAgICAgICAgICAgICAgaWYgZXhp
c3RzKGNoaWxkLnN0cnBhdGgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2NoaWxkXQor
ICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICAgICAgZmlsID0gY29tbW9uLkZOTWF0
Y2hlcihmaWwpCisgICAgICAgIG5hbWVzID0gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmxpc3Rk
aXIsIHNlbGYuc3RycGF0aCkKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgZm9yIG5hbWUgaW4g
bmFtZXM6CisgICAgICAgICAgICBjaGlsZCA9IHNlbGYuX2Zhc3Rqb2luKG5hbWUpCisgICAgICAg
ICAgICBpZiBmaWwgaXMgTm9uZSBvciBmaWwoY2hpbGQpOgorICAgICAgICAgICAgICAgIHJlcy5h
cHBlbmQoY2hpbGQpCisgICAgICAgIHNlbGYuX3NvcnRsaXN0KHJlcywgc29ydCkKKyAgICAgICAg
cmV0dXJuIHJlcworCisgICAgZGVmIHNpemUoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gc2l6
ZSBvZiB0aGUgdW5kZXJseWluZyBmaWxlIG9iamVjdCAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
c3RhdCgpLnNpemUKKworICAgIGRlZiBtdGltZShzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBs
YXN0IG1vZGlmaWNhdGlvbiB0aW1lIG9mIHRoZSBwYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNl
bGYuc3RhdCgpLm10aW1lCisKKyAgICBkZWYgY29weShzZWxmLCB0YXJnZXQsIG1vZGU9RmFsc2Us
IHN0YXQ9RmFsc2UpOgorICAgICAgICAiIiIgY29weSBwYXRoIHRvIHRhcmdldC4KKworICAgICAg
ICAgICAgSWYgbW9kZSBpcyBUcnVlLCB3aWxsIGNvcHkgY29weSBwZXJtaXNzaW9uIGZyb20gcGF0
aCB0byB0YXJnZXQuCisgICAgICAgICAgICBJZiBzdGF0IGlzIFRydWUsIGNvcHkgcGVybWlzc2lv
biwgbGFzdCBtb2RpZmljYXRpb24KKyAgICAgICAgICAgIHRpbWUsIGxhc3QgYWNjZXNzIHRpbWUs
IGFuZCBmbGFncyBmcm9tIHBhdGggdG8gdGFyZ2V0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYg
c2VsZi5jaGVjayhmaWxlPTEpOgorICAgICAgICAgICAgaWYgdGFyZ2V0LmNoZWNrKGRpcj0xKToK
KyAgICAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQuam9pbihzZWxmLmJhc2VuYW1lKQorICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYhPXRhcmdldAorICAgICAgICAgICAgY29weWNodW5rZWQoc2Vs
ZiwgdGFyZ2V0KQorICAgICAgICAgICAgaWYgbW9kZToKKyAgICAgICAgICAgICAgICBjb3B5bW9k
ZShzZWxmLnN0cnBhdGgsIHRhcmdldC5zdHJwYXRoKQorICAgICAgICAgICAgaWYgc3RhdDoKKyAg
ICAgICAgICAgICAgICBjb3B5c3RhdChzZWxmLCB0YXJnZXQpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBkZWYgcmVjKHApOgorICAgICAgICAgICAgICAgIHJldHVybiBwLmNoZWNrKGxpbms9
MCkKKyAgICAgICAgICAgIGZvciB4IGluIHNlbGYudmlzaXQocmVjPXJlYyk6CisgICAgICAgICAg
ICAgICAgcmVscGF0aCA9IHgucmVsdG8oc2VsZikKKyAgICAgICAgICAgICAgICBuZXd4ID0gdGFy
Z2V0LmpvaW4ocmVscGF0aCkKKyAgICAgICAgICAgICAgICBuZXd4LmRpcnBhdGgoKS5lbnN1cmUo
ZGlyPTEpCisgICAgICAgICAgICAgICAgaWYgeC5jaGVjayhsaW5rPTEpOgorICAgICAgICAgICAg
ICAgICAgICBuZXd4Lm1rc3ltbGlua3RvKHgucmVhZGxpbmsoKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbGlmIHguY2hlY2soZmlsZT0xKToKKyAgICAg
ICAgICAgICAgICAgICAgY29weWNodW5rZWQoeCwgbmV3eCkKKyAgICAgICAgICAgICAgICBlbGlm
IHguY2hlY2soZGlyPTEpOgorICAgICAgICAgICAgICAgICAgICBuZXd4LmVuc3VyZShkaXI9MSkK
KyAgICAgICAgICAgICAgICBpZiBtb2RlOgorICAgICAgICAgICAgICAgICAgICBjb3B5bW9kZSh4
LnN0cnBhdGgsIG5ld3guc3RycGF0aCkKKyAgICAgICAgICAgICAgICBpZiBzdGF0OgorICAgICAg
ICAgICAgICAgICAgICBjb3B5c3RhdCh4LCBuZXd4KQorCisgICAgZGVmIHJlbmFtZShzZWxmLCB0
YXJnZXQpOgorICAgICAgICAiIiIgcmVuYW1lIHRoaXMgcGF0aCB0byB0YXJnZXQuICIiIgorICAg
ICAgICB0YXJnZXQgPSBmc3BhdGgodGFyZ2V0KQorICAgICAgICByZXR1cm4gcHkuZXJyb3IuY2hl
Y2tlZF9jYWxsKG9zLnJlbmFtZSwgc2VsZi5zdHJwYXRoLCB0YXJnZXQpCisKKyAgICBkZWYgZHVt
cChzZWxmLCBvYmosIGJpbj0xKToKKyAgICAgICAgIiIiIHBpY2tsZSBvYmplY3QgaW50byBwYXRo
IGxvY2F0aW9uIiIiCisgICAgICAgIGYgPSBzZWxmLm9wZW4oJ3diJykKKyAgICAgICAgaW1wb3J0
IHBpY2tsZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwo
cGlja2xlLmR1bXAsIG9iaiwgZiwgYmluKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
Zi5jbG9zZSgpCisKKyAgICBkZWYgbWtkaXIoc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiIgY3Jl
YXRlICYgcmV0dXJuIHRoZSBkaXJlY3Rvcnkgam9pbmVkIHdpdGggYXJncy4gIiIiCisgICAgICAg
IHAgPSBzZWxmLmpvaW4oKmFyZ3MpCisgICAgICAgIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5t
a2RpciwgZnNwYXRoKHApKQorICAgICAgICByZXR1cm4gcAorCisgICAgZGVmIHdyaXRlX2JpbmFy
eShzZWxmLCBkYXRhLCBlbnN1cmU9RmFsc2UpOgorICAgICAgICAiIiIgd3JpdGUgYmluYXJ5IGRh
dGEgaW50byBwYXRoLiAgIElmIGVuc3VyZSBpcyBUcnVlIGNyZWF0ZQorICAgICAgICBtaXNzaW5n
IHBhcmVudCBkaXJlY3Rvcmllcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGVuc3VyZToKKyAg
ICAgICAgICAgIHNlbGYuZGlycGF0aCgpLmVuc3VyZShkaXI9MSkKKyAgICAgICAgd2l0aCBzZWxm
Lm9wZW4oJ3diJykgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoZGF0YSkKKworICAgIGRlZiB3
cml0ZV90ZXh0KHNlbGYsIGRhdGEsIGVuY29kaW5nLCBlbnN1cmU9RmFsc2UpOgorICAgICAgICAi
IiIgd3JpdGUgdGV4dCBkYXRhIGludG8gcGF0aCB1c2luZyB0aGUgc3BlY2lmaWVkIGVuY29kaW5n
LgorICAgICAgICBJZiBlbnN1cmUgaXMgVHJ1ZSBjcmVhdGUgbWlzc2luZyBwYXJlbnQgZGlyZWN0
b3JpZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBlbnN1cmU6CisgICAgICAgICAgICBzZWxm
LmRpcnBhdGgoKS5lbnN1cmUoZGlyPTEpCisgICAgICAgIHdpdGggc2VsZi5vcGVuKCd3JywgZW5j
b2Rpbmc9ZW5jb2RpbmcpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGRhdGEpCisKKyAgICBk
ZWYgd3JpdGUoc2VsZiwgZGF0YSwgbW9kZT0ndycsIGVuc3VyZT1GYWxzZSk6CisgICAgICAgICIi
IiB3cml0ZSBkYXRhIGludG8gcGF0aC4gICBJZiBlbnN1cmUgaXMgVHJ1ZSBjcmVhdGUKKyAgICAg
ICAgbWlzc2luZyBwYXJlbnQgZGlyZWN0b3JpZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBl
bnN1cmU6CisgICAgICAgICAgICBzZWxmLmRpcnBhdGgoKS5lbnN1cmUoZGlyPTEpCisgICAgICAg
IGlmICdiJyBpbiBtb2RlOgorICAgICAgICAgICAgaWYgbm90IHB5LmJ1aWx0aW4uX2lzYnl0ZXMo
ZGF0YSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2FuIG9ubHkgcHJvY2Vz
cyBieXRlcyIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBub3QgcHkuYnVpbHRpbi5f
aXN0ZXh0KGRhdGEpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBweS5idWlsdGluLl9pc2J5dGVz
KGRhdGEpOgorICAgICAgICAgICAgICAgICAgICBkYXRhID0gc3RyKGRhdGEpCisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHB5LmJ1aWx0aW4uX3RvdGV4
dChkYXRhLCBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpCisgICAgICAgIGYgPSBzZWxmLm9wZW4o
bW9kZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZi53cml0ZShkYXRhKQorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisKKyAgICBkZWYgX2Vuc3VyZWRpcnMoc2Vs
Zik6CisgICAgICAgIHBhcmVudCA9IHNlbGYuZGlycGF0aCgpCisgICAgICAgIGlmIHBhcmVudCA9
PSBzZWxmOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgaWYgcGFyZW50LmNoZWNr
KGRpcj0wKToKKyAgICAgICAgICAgIHBhcmVudC5fZW5zdXJlZGlycygpCisgICAgICAgIGlmIHNl
bGYuY2hlY2soZGlyPTApOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYu
bWtkaXIoKQorICAgICAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVFWElTVDoKKyAgICAgICAgICAg
ICAgICAjIHJhY2UgY29uZGl0aW9uOiBmaWxlL2RpciBjcmVhdGVkIGJ5IGFub3RoZXIgdGhyZWFk
L3Byb2Nlc3MuCisgICAgICAgICAgICAgICAgIyBjb21wbGFpbiBpZiBpdCBpcyBub3QgYSBkaXIK
KyAgICAgICAgICAgICAgICBpZiBzZWxmLmNoZWNrKGRpcj0wKToKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBlbnN1cmUoc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIGVuc3VyZSB0aGF0IGFuIGFyZ3Mtam9pbmVkIHBh
dGggZXhpc3RzIChieSBkZWZhdWx0IGFzCisgICAgICAgICAgICBhIGZpbGUpLiBpZiB5b3Ugc3Bl
Y2lmeSBhIGtleXdvcmQgYXJndW1lbnQgJ2Rpcj1UcnVlJworICAgICAgICAgICAgdGhlbiB0aGUg
cGF0aCBpcyBmb3JjZWQgdG8gYmUgYSBkaXJlY3RvcnkgcGF0aC4KKyAgICAgICAgIiIiCisgICAg
ICAgIHAgPSBzZWxmLmpvaW4oKmFyZ3MpCisgICAgICAgIGlmIGt3YXJncy5nZXQoJ2RpcicsIDAp
OgorICAgICAgICAgICAgcmV0dXJuIHAuX2Vuc3VyZWRpcnMoKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcC5kaXJwYXRoKCkuX2Vuc3VyZWRpcnMoKQorICAgICAgICAgICAgaWYgbm90IHAu
Y2hlY2soZmlsZT0xKToKKyAgICAgICAgICAgICAgICBwLm9wZW4oJ3cnKS5jbG9zZSgpCisgICAg
ICAgICAgICByZXR1cm4gcAorCisgICAgZGVmIHN0YXQoc2VsZiwgcmFpc2luZz1UcnVlKToKKyAg
ICAgICAgIiIiIFJldHVybiBhbiBvcy5zdGF0KCkgdHVwbGUuICIiIgorICAgICAgICBpZiByYWlz
aW5nID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gU3RhdChzZWxmLCBweS5lcnJvci5jaGVj
a2VkX2NhbGwob3Muc3RhdCwgc2VsZi5zdHJwYXRoKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIFN0YXQoc2VsZiwgb3Muc3RhdChzZWxmLnN0cnBhdGgpKQorICAgICAgICBleGNl
cHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBsc3RhdChzZWxm
KToKKyAgICAgICAgIiIiIFJldHVybiBhbiBvcy5sc3RhdCgpIHR1cGxlLiAiIiIKKyAgICAgICAg
cmV0dXJuIFN0YXQoc2VsZiwgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmxzdGF0LCBzZWxmLnN0
cnBhdGgpKQorCisgICAgZGVmIHNldG10aW1lKHNlbGYsIG10aW1lPU5vbmUpOgorICAgICAgICAi
IiIgc2V0IG1vZGlmaWNhdGlvbiB0aW1lIGZvciB0aGUgZ2l2ZW4gcGF0aC4gIGlmICdtdGltZScg
aXMgTm9uZQorICAgICAgICAodGhlIGRlZmF1bHQpIHRoZW4gdGhlIGZpbGUncyBtdGltZSBpcyBz
ZXQgdG8gY3VycmVudCB0aW1lLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGUgcmVzb2x1dGlvbiBm
b3IgJ210aW1lJyBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCisgICAgICAgICIiIgorICAgICAgICBp
ZiBtdGltZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHB5LmVycm9yLmNoZWNrZWRfY2Fs
bChvcy51dGltZSwgc2VsZi5zdHJwYXRoLCBtdGltZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy51dGltZSwgc2VsZi5zdHJwYXRoLCAo
LTEsIG10aW1lKSkKKyAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVJTlZBTDoKKyAgICAgICAgICAg
IHJldHVybiBweS5lcnJvci5jaGVja2VkX2NhbGwob3MudXRpbWUsIHNlbGYuc3RycGF0aCwgKHNl
bGYuYXRpbWUoKSwgbXRpbWUpKQorCisgICAgZGVmIGNoZGlyKHNlbGYpOgorICAgICAgICAiIiIg
Y2hhbmdlIGRpcmVjdG9yeSB0byBzZWxmIGFuZCByZXR1cm4gb2xkIGN1cnJlbnQgZGlyZWN0b3J5
ICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvbGQgPSBzZWxmLl9fY2xhc3NfXygpCisg
ICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9FTlQ6CisgICAgICAgICAgICBvbGQgPSBOb25lCisg
ICAgICAgIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5jaGRpciwgc2VsZi5zdHJwYXRoKQorICAg
ICAgICByZXR1cm4gb2xkCisKKworICAgIEBjb250ZXh0bWFuYWdlcgorICAgIGRlZiBhc19jd2Qo
c2VsZik6CisgICAgICAgICIiIiByZXR1cm4gY29udGV4dCBtYW5hZ2VyIHdoaWNoIGNoYW5nZXMg
dG8gY3VycmVudCBkaXIgZHVyaW5nIHRoZQorICAgICAgICBtYW5hZ2VkICJ3aXRoIiBjb250ZXh0
LiBPbiBfX2VudGVyX18gaXQgcmV0dXJucyB0aGUgb2xkIGRpci4KKyAgICAgICAgIiIiCisgICAg
ICAgIG9sZCA9IHNlbGYuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVsZCBv
bGQKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9sZC5jaGRpcigpCisKKyAgICBkZWYg
cmVhbHBhdGgoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYSBuZXcgcGF0aCB3aGljaCBjb250
YWlucyBubyBzeW1ib2xpYyBsaW5rcy4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19f
KG9zLnBhdGgucmVhbHBhdGgoc2VsZi5zdHJwYXRoKSkKKworICAgIGRlZiBhdGltZShzZWxmKToK
KyAgICAgICAgIiIiIHJldHVybiBsYXN0IGFjY2VzcyB0aW1lIG9mIHRoZSBwYXRoLiAiIiIKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc3RhdCgpLmF0aW1lCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6
CisgICAgICAgIHJldHVybiAnbG9jYWwoJXIpJyAlIHNlbGYuc3RycGF0aAorCisgICAgZGVmIF9f
c3RyX18oc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
IHRoZSBQYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RycGF0aAorCisgICAgZGVmIGNo
bW9kKHNlbGYsIG1vZGUsIHJlYz0wKToKKyAgICAgICAgIiIiIGNoYW5nZSBwZXJtaXNzaW9ucyB0
byB0aGUgZ2l2ZW4gbW9kZS4gSWYgbW9kZSBpcyBhbgorICAgICAgICAgICAgaW50ZWdlciBpdCBk
aXJlY3RseSBlbmNvZGVzIHRoZSBvcy1zcGVjaWZpYyBtb2Rlcy4KKyAgICAgICAgICAgIGlmIHJl
YyBpcyBUcnVlIHBlcmZvcm0gcmVjdXJzaXZlbHkuCisgICAgICAgICIiIgorICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShtb2RlLCBpbnQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJt
b2RlICVyIG11c3QgYmUgYW4gaW50ZWdlciIgJSAobW9kZSwpKQorICAgICAgICBpZiByZWM6Cisg
ICAgICAgICAgICBmb3IgeCBpbiBzZWxmLnZpc2l0KHJlYz1yZWMpOgorICAgICAgICAgICAgICAg
IHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5jaG1vZCwgc3RyKHgpLCBtb2RlKQorICAgICAgICBw
eS5lcnJvci5jaGVja2VkX2NhbGwob3MuY2htb2QsIHNlbGYuc3RycGF0aCwgbW9kZSkKKworICAg
IGRlZiBweXBrZ3BhdGgoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gdGhlIFB5dGhvbiBwYWNr
YWdlIHBhdGggYnkgbG9va2luZyBmb3IgdGhlIGxhc3QKKyAgICAgICAgZGlyZWN0b3J5IHVwd2Fy
ZHMgd2hpY2ggc3RpbGwgY29udGFpbnMgYW4gX19pbml0X18ucHkuCisgICAgICAgIFJldHVybiBO
b25lIGlmIGEgcGtncGF0aCBjYW4gbm90IGJlIGRldGVybWluZWQuCisgICAgICAgICIiIgorICAg
ICAgICBwa2dwYXRoID0gTm9uZQorICAgICAgICBmb3IgcGFyZW50IGluIHNlbGYucGFydHMocmV2
ZXJzZT1UcnVlKToKKyAgICAgICAgICAgIGlmIHBhcmVudC5pc2RpcigpOgorICAgICAgICAgICAg
ICAgIGlmIG5vdCBwYXJlbnQuam9pbignX19pbml0X18ucHknKS5leGlzdHMoKToKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbXBvcnRhYmxlKHBh
cmVudC5iYXNlbmFtZSk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAg
ICAgcGtncGF0aCA9IHBhcmVudAorICAgICAgICByZXR1cm4gcGtncGF0aAorCisgICAgZGVmIF9l
bnN1cmVzeXNwYXRoKHNlbGYsIGVuc3VyZW1vZGUsIHBhdGgpOgorICAgICAgICBpZiBlbnN1cmVt
b2RlOgorICAgICAgICAgICAgcyA9IHN0cihwYXRoKQorICAgICAgICAgICAgaWYgZW5zdXJlbW9k
ZSA9PSAiYXBwZW5kIjoKKyAgICAgICAgICAgICAgICBpZiBzIG5vdCBpbiBzeXMucGF0aDoKKyAg
ICAgICAgICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKHMpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIGlmIHMgIT0gc3lzLnBhdGhbMF06CisgICAgICAgICAgICAgICAgICAg
IHN5cy5wYXRoLmluc2VydCgwLCBzKQorCisgICAgZGVmIHB5aW1wb3J0KHNlbGYsIG1vZG5hbWU9
Tm9uZSwgZW5zdXJlc3lzcGF0aD1UcnVlKToKKyAgICAgICAgIiIiIHJldHVybiBwYXRoIGFzIGFu
IGltcG9ydGVkIHB5dGhvbiBtb2R1bGUuCisKKyAgICAgICAgSWYgbW9kbmFtZSBpcyBOb25lLCBs
b29rIGZvciB0aGUgY29udGFpbmluZyBwYWNrYWdlCisgICAgICAgIGFuZCBjb25zdHJ1Y3QgYW4g
YWNjb3JkaW5nIG1vZHVsZSBuYW1lLgorICAgICAgICBUaGUgbW9kdWxlIHdpbGwgYmUgcHV0L2xv
b2tlZCB1cCBpbiBzeXMubW9kdWxlcy4KKyAgICAgICAgaWYgZW5zdXJlc3lzcGF0aCBpcyBUcnVl
IHRoZW4gdGhlIHJvb3QgZGlyIGZvciBpbXBvcnRpbmcKKyAgICAgICAgdGhlIGZpbGUgKHRha2lu
ZyBfX2luaXRfXy5weSBmaWxlcyBpbnRvIGFjY291bnQpIHdpbGwKKyAgICAgICAgYmUgcHJlcGVu
ZGVkIHRvIHN5cy5wYXRoIGlmIGl0IGlzbid0IHRoZXJlIGFscmVhZHkuCisgICAgICAgIElmIGVu
c3VyZXN5c3BhdGg9PSJhcHBlbmQiIHRoZSByb290IGRpciB3aWxsIGJlIGFwcGVuZGVkCisgICAg
ICAgIGlmIGl0IGlzbid0IGFscmVhZHkgY29udGFpbmVkIGluIHN5cy5wYXRoLgorICAgICAgICBp
ZiBlbnN1cmVzeXNwYXRoIGlzIEZhbHNlIG5vIG1vZGlmaWNhdGlvbiBvZiBzeXNwYXRoIGhhcHBl
bnMuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5jaGVjaygpOgorICAgICAgICAg
ICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYpCisKKyAgICAgICAgcGtncGF0aCA9IE5vbmUK
KyAgICAgICAgaWYgbW9kbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcGtncGF0aCA9IHNlbGYu
cHlwa2dwYXRoKCkKKyAgICAgICAgICAgIGlmIHBrZ3BhdGggaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAgICAgcGtncm9vdCA9IHBrZ3BhdGguZGlycGF0aCgpCisgICAgICAgICAgICAgICAgbmFt
ZXMgPSBzZWxmLm5ldyhleHQ9IiIpLnJlbHRvKHBrZ3Jvb3QpLnNwbGl0KHNlbGYuc2VwKQorICAg
ICAgICAgICAgICAgIGlmIG5hbWVzWy0xXSA9PSAiX19pbml0X18iOgorICAgICAgICAgICAgICAg
ICAgICBuYW1lcy5wb3AoKQorICAgICAgICAgICAgICAgIG1vZG5hbWUgPSAiLiIuam9pbihuYW1l
cykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGtncm9vdCA9IHNlbGYuZGly
cGF0aCgpCisgICAgICAgICAgICAgICAgbW9kbmFtZSA9IHNlbGYucHVyZWJhc2VuYW1lCisKKyAg
ICAgICAgICAgIHNlbGYuX2Vuc3VyZXN5c3BhdGgoZW5zdXJlc3lzcGF0aCwgcGtncm9vdCkKKyAg
ICAgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKKyAgICAgICAgICAgIG1vZCA9IHN5cy5tb2R1
bGVzW21vZG5hbWVdCisgICAgICAgICAgICBpZiBzZWxmLmJhc2VuYW1lID09ICJfX2luaXRfXy5w
eSI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1vZCAjIHdlIGRvbid0IGNoZWNrIGFueXRoaW5n
IGFzIHdlIG1pZ2h0CisgICAgICAgICAgICAgICAgICAgICAgICMgd2UgaW4gYSBuYW1lc3BhY2Ug
cGFja2FnZSAuLi4gdG9vIGlja3kgdG8gY2hlY2sKKyAgICAgICAgICAgIG1vZGZpbGUgPSBtb2Qu
X19maWxlX18KKyAgICAgICAgICAgIGlmIG1vZGZpbGVbLTQ6XSBpbiAoJy5weWMnLCAnLnB5bycp
OgorICAgICAgICAgICAgICAgIG1vZGZpbGUgPSBtb2RmaWxlWzotMV0KKyAgICAgICAgICAgIGVs
aWYgbW9kZmlsZS5lbmRzd2l0aCgnJHB5LmNsYXNzJyk6CisgICAgICAgICAgICAgICAgbW9kZmls
ZSA9IG1vZGZpbGVbOi05XSArICcucHknCisgICAgICAgICAgICBpZiBtb2RmaWxlLmVuZHN3aXRo
KG9zLnBhdGguc2VwICsgIl9faW5pdF9fLnB5Iik6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5i
YXNlbmFtZSAhPSAiX19pbml0X18ucHkiOgorICAgICAgICAgICAgICAgICAgICBtb2RmaWxlID0g
bW9kZmlsZVs6LTEyXQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlzc2FtZSA9
IHNlbGYuc2FtZWZpbGUobW9kZmlsZSkKKyAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9F
TlQ6CisgICAgICAgICAgICAgICAgaXNzYW1lID0gRmFsc2UKKyAgICAgICAgICAgIGlmIG5vdCBp
c3NhbWU6CisgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5JbXBvcnRNaXNtYXRjaEVycm9yKG1v
ZG5hbWUsIG1vZGZpbGUsIHNlbGYpCisgICAgICAgICAgICByZXR1cm4gbW9kCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVz
W21vZG5hbWVdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAg
IyB3ZSBoYXZlIGEgY3VzdG9tIG1vZG5hbWUsIGRvIGEgcHNldWRvLWltcG9ydAorICAgICAgICAg
ICAgICAgIGltcG9ydCB0eXBlcworICAgICAgICAgICAgICAgIG1vZCA9IHR5cGVzLk1vZHVsZVR5
cGUobW9kbmFtZSkKKyAgICAgICAgICAgICAgICBtb2QuX19maWxlX18gPSBzdHIoc2VsZikKKyAg
ICAgICAgICAgICAgICBzeXMubW9kdWxlc1ttb2RuYW1lXSA9IG1vZAorICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjZmlsZShzdHIoc2VsZiks
IG1vZC5fX2RpY3RfXykKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAg
ICAgIGRlbCBzeXMubW9kdWxlc1ttb2RuYW1lXQorICAgICAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAgICAgICAgIHJldHVybiBtb2QKKworICAgIGRlZiBzeXNleGVjKHNlbGYsICphcmd2
LCAqKnBvcGVuX29wdHMpOgorICAgICAgICAiIiIgcmV0dXJuIHN0ZG91dCB0ZXh0IGZyb20gZXhl
Y3V0aW5nIGEgc3lzdGVtIGNoaWxkIHByb2Nlc3MsCisgICAgICAgICAgICB3aGVyZSB0aGUgJ3Nl
bGYnIHBhdGggcG9pbnRzIHRvIGV4ZWN1dGFibGUuCisgICAgICAgICAgICBUaGUgcHJvY2VzcyBp
cyBkaXJlY3RseSBpbnZva2VkIGFuZCBub3QgdGhyb3VnaCBhIHN5c3RlbSBzaGVsbC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGZyb20gc3VicHJvY2VzcyBpbXBvcnQgUG9wZW4sIFBJUEUKKyAgICAg
ICAgYXJndiA9IG1hcF9hc19saXN0KHN0ciwgYXJndikKKyAgICAgICAgcG9wZW5fb3B0c1snc3Rk
b3V0J10gPSBwb3Blbl9vcHRzWydzdGRlcnInXSA9IFBJUEUKKyAgICAgICAgcHJvYyA9IFBvcGVu
KFtzdHIoc2VsZildICsgYXJndiwgKipwb3Blbl9vcHRzKQorICAgICAgICBzdGRvdXQsIHN0ZGVy
ciA9IHByb2MuY29tbXVuaWNhdGUoKQorICAgICAgICByZXQgPSBwcm9jLndhaXQoKQorICAgICAg
ICBpZiBweS5idWlsdGluLl9pc2J5dGVzKHN0ZG91dCk6CisgICAgICAgICAgICBzdGRvdXQgPSBw
eS5idWlsdGluLl90b3RleHQoc3Rkb3V0LCBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpCisgICAg
ICAgIGlmIHJldCAhPSAwOgorICAgICAgICAgICAgaWYgcHkuYnVpbHRpbi5faXNieXRlcyhzdGRl
cnIpOgorICAgICAgICAgICAgICAgIHN0ZGVyciA9IHB5LmJ1aWx0aW4uX3RvdGV4dChzdGRlcnIs
IHN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKSkKKyAgICAgICAgICAgIHJhaXNlIHB5LnByb2Nlc3Mu
Y21kZXhlYy5FcnJvcihyZXQsIHJldCwgc3RyKHNlbGYpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyLCkKKyAgICAgICAgcmV0dXJuIHN0
ZG91dAorCisgICAgZGVmIHN5c2ZpbmQoY2xzLCBuYW1lLCBjaGVja2VyPU5vbmUsIHBhdGhzPU5v
bmUpOgorICAgICAgICAiIiIgcmV0dXJuIGEgcGF0aCBvYmplY3QgZm91bmQgYnkgbG9va2luZyBh
dCB0aGUgc3lzdGVtcworICAgICAgICAgICAgdW5kZXJseWluZyBQQVRIIHNwZWNpZmljYXRpb24u
IElmIHRoZSBjaGVja2VyIGlzIG5vdCBOb25lCisgICAgICAgICAgICBpdCB3aWxsIGJlIGludm9r
ZWQgdG8gZmlsdGVyIG1hdGNoaW5nIHBhdGhzLiAgSWYgYSBiaW5hcnkKKyAgICAgICAgICAgIGNh
bm5vdCBiZSBmb3VuZCwgTm9uZSBpcyByZXR1cm5lZAorICAgICAgICAgICAgTm90ZTogVGhpcyBp
cyBwcm9iYWJseSBub3Qgd29ya2luZyBvbiBwbGFpbiB3aW4zMiBzeXN0ZW1zCisgICAgICAgICAg
ICBidXQgbWF5IHdvcmsgb24gY3lnd2luLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNhYnMo
bmFtZSk6CisgICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChuYW1lKQorICAgICAgICAgICAg
aWYgcC5jaGVjayhmaWxlPTEpOgorICAgICAgICAgICAgICAgIHJldHVybiBwCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBpZiBwYXRocyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIGlz
d2luMzI6CisgICAgICAgICAgICAgICAgICAgIHBhdGhzID0gb3MuZW52aXJvblsnUGF0aCddLnNw
bGl0KCc7JykKKyAgICAgICAgICAgICAgICAgICAgaWYgJycgbm90IGluIHBhdGhzIGFuZCAnLicg
bm90IGluIHBhdGhzOgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHMuYXBwZW5kKCcuJykK
KyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVt
cm9vdCA9IG9zLmVudmlyb25bJ1NZU1RFTVJPT1QnXQorICAgICAgICAgICAgICAgICAgICBleGNl
cHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXRocyA9IFtwYXRoLnJlcGxh
Y2UoJyVTeXN0ZW1Sb290JScsIHN5c3RlbXJvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgcGF0aCBpbiBwYXRoc10KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICBwYXRocyA9IG9zLmVudmlyb25bJ1BBVEgnXS5zcGxpdCgnOicpCisgICAg
ICAgICAgICB0cnlhZGQgPSBbXQorICAgICAgICAgICAgaWYgaXN3aW4zMjoKKyAgICAgICAgICAg
ICAgICB0cnlhZGQgKz0gb3MuZW52aXJvblsnUEFUSEVYVCddLnNwbGl0KG9zLnBhdGhzZXApCisg
ICAgICAgICAgICB0cnlhZGQuYXBwZW5kKCIiKQorCisgICAgICAgICAgICBmb3IgeCBpbiBwYXRo
czoKKyAgICAgICAgICAgICAgICBmb3IgYWRkZXh0IGluIHRyeWFkZDoKKyAgICAgICAgICAgICAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwoeCkuam9pbihuYW1lLCBhYnM9VHJ1ZSkgKyBhZGRleHQK
KyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcC5j
aGVjayhmaWxlPTEpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNoZWNrZXI6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBjaGVja2VyKHApOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcAorICAgICAgICAgICAgICAgICAgICBleGNlcHQgcHkuZXJyb3Iu
RUFDQ0VTOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4gTm9u
ZQorICAgIHN5c2ZpbmQgPSBjbGFzc21ldGhvZChzeXNmaW5kKQorCisgICAgZGVmIF9nZXRob21l
ZGlyKGNscyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHggPSBvcy5lbnZpcm9uWydIT01F
J10KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHggPSBvcy5lbnZpcm9uWyJIT01FRFJJVkUiXSArIG9zLmVudmlyb25bJ0hPTUVQQVRI
J10KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQorICAgICAgICByZXR1cm4gY2xzKHgpCisgICAgX2dldGhvbWVkaXIgPSBjbGFzc21ldGhv
ZChfZ2V0aG9tZWRpcikKKworICAgICMgIiIiCisgICAgIyBzcGVjaWFsIGNsYXNzIGNvbnN0cnVj
dG9ycyBmb3IgbG9jYWwgZmlsZXN5c3RlbSBwYXRocworICAgICMgIiIiCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIGdldF90ZW1wcm9vdChjbHMpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBz
eXN0ZW0ncyB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgICAgICAod2hlcmUgdGVtcGZpbGVz
IGFyZSB1c3VhbGx5IGNyZWF0ZWQgaW4pCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgdGVt
cGZpbGUKKyAgICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwodGVtcGZpbGUuZ2V0dGVtcGRpcigp
KQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG1rZHRlbXAoY2xzLCByb290ZGlyPU5vbmUp
OgorICAgICAgICAiIiIgcmV0dXJuIGEgUGF0aCBvYmplY3QgcG9pbnRpbmcgdG8gYSBmcmVzaCBu
ZXcgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICAgICAgKHdoaWNoIHdlIGNyZWF0ZWQgb3Vy
c2VsZikuCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgdGVtcGZpbGUKKyAgICAgICAgaWYg
cm9vdGRpciBpcyBOb25lOgorICAgICAgICAgICAgcm9vdGRpciA9IGNscy5nZXRfdGVtcHJvb3Qo
KQorICAgICAgICByZXR1cm4gY2xzKHB5LmVycm9yLmNoZWNrZWRfY2FsbCh0ZW1wZmlsZS5ta2R0
ZW1wLCBkaXI9c3RyKHJvb3RkaXIpKSkKKworICAgIGRlZiBtYWtlX251bWJlcmVkX2RpcihjbHMs
IHByZWZpeD0nc2Vzc2lvbi0nLCByb290ZGlyPU5vbmUsIGtlZXA9MywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9ja190aW1lb3V0ID0gMTcyODAwKTogICAjIHR3byBkYXlzCisgICAgICAg
ICIiIiByZXR1cm4gdW5pcXVlIGRpcmVjdG9yeSB3aXRoIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiB0
aGUgY3VycmVudAorICAgICAgICAgICAgbWF4aW11bSBvbmUuICBUaGUgbnVtYmVyIGlzIGFzc3Vt
ZWQgdG8gc3RhcnQgZGlyZWN0bHkgYWZ0ZXIgcHJlZml4LgorICAgICAgICAgICAgaWYga2VlcCBp
cyB0cnVlIGRpcmVjdG9yaWVzIHdpdGggYSBudW1iZXIgbGVzcyB0aGFuIChtYXhudW0ta2VlcCkK
KyAgICAgICAgICAgIHdpbGwgYmUgcmVtb3ZlZC4gSWYgLmxvY2sgZmlsZXMgYXJlIHVzZWQgKGxv
Y2tfdGltZW91dCBub24temVybyksCisgICAgICAgICAgICBhbGdvcml0aG0gaXMgbXVsdGktcHJv
Y2VzcyBzYWZlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgcm9vdGRpciBpcyBOb25lOgorICAg
ICAgICAgICAgcm9vdGRpciA9IGNscy5nZXRfdGVtcHJvb3QoKQorCisgICAgICAgIG5wcmVmaXgg
PSBub3JtY2FzZShwcmVmaXgpCisgICAgICAgIGRlZiBwYXJzZV9udW0ocGF0aCk6CisgICAgICAg
ICAgICAiIiIgcGFyc2UgdGhlIG51bWJlciBvdXQgb2YgYSBwYXRoIChpZiBpdCBtYXRjaGVzIHRo
ZSBwcmVmaXgpICIiIgorICAgICAgICAgICAgbmJhc2VuYW1lID0gbm9ybWNhc2UocGF0aC5iYXNl
bmFtZSkKKyAgICAgICAgICAgIGlmIG5iYXNlbmFtZS5zdGFydHN3aXRoKG5wcmVmaXgpOgorICAg
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludChuYmFzZW5h
bWVbbGVuKG5wcmVmaXgpOl0pCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Cisg
ICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgY3JlYXRlX2xvY2tmaWxlKHBh
dGgpOgorICAgICAgICAgICAgIiIiIGV4Y2x1c2l2ZWx5IGNyZWF0ZSBsb2NrZmlsZS4gVGhyb3dz
IHdoZW4gZmFpbGVkICIiIgorICAgICAgICAgICAgbXlwaWQgPSBvcy5nZXRwaWQoKQorICAgICAg
ICAgICAgbG9ja2ZpbGUgPSBwYXRoLmpvaW4oJy5sb2NrJykKKyAgICAgICAgICAgIGlmIGhhc2F0
dHIobG9ja2ZpbGUsICdta3N5bWxpbmt0bycpOgorICAgICAgICAgICAgICAgIGxvY2tmaWxlLm1r
c3ltbGlua3RvKHN0cihteXBpZCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IGZkID0gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLm9wZW4sIHN0cihsb2NrZmlsZSksIG9zLk9f
V1JPTkxZIHwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCwgMG82NDQpCisgICAgICAgICAgICAgICAg
d2l0aCBvcy5mZG9wZW4oZmQsICd3JykgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAgZi53cml0
ZShzdHIobXlwaWQpKQorICAgICAgICAgICAgcmV0dXJuIGxvY2tmaWxlCisKKyAgICAgICAgZGVm
IGF0ZXhpdF9yZW1vdmVfbG9ja2ZpbGUobG9ja2ZpbGUpOgorICAgICAgICAgICAgIiIiIGVuc3Vy
ZSBsb2NrZmlsZSBpcyByZW1vdmVkIGF0IHByb2Nlc3MgZXhpdCAiIiIKKyAgICAgICAgICAgIG15
cGlkID0gb3MuZ2V0cGlkKCkKKyAgICAgICAgICAgIGRlZiB0cnlfcmVtb3ZlX2xvY2tmaWxlKCk6
CisgICAgICAgICAgICAgICAgIyBpbiBhIGZvcmsoKSBzaXR1YXRpb24sIG9ubHkgdGhlIGxhc3Qg
cHJvY2VzcyBzaG91bGQKKyAgICAgICAgICAgICAgICAjIHJlbW92ZSB0aGUgLmxvY2ssIG90aGVy
d2lzZSB0aGUgb3RoZXIgcHJvY2Vzc2VzIHJ1biB0aGUKKyAgICAgICAgICAgICAgICAjIHJpc2sg
b2Ygc2VlaW5nIHRoZWlyIHRlbXBvcmFyeSBkaXIgZGlzYXBwZWFyLiAgRm9yIG5vdworICAgICAg
ICAgICAgICAgICMgd2UgcmVtb3ZlIHRoZSAubG9jayBpbiB0aGUgcGFyZW50IG9ubHkgKGkuZS4g
d2UgYXNzdW1lCisgICAgICAgICAgICAgICAgIyB0aGF0IHRoZSBjaGlsZHJlbiBmaW5pc2ggYmVm
b3JlIHRoZSBwYXJlbnQpLgorICAgICAgICAgICAgICAgIGlmIG9zLmdldHBpZCgpICE9IG15cGlk
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgICAgIGxvY2tmaWxlLnJlbW92ZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0
IHB5LmVycm9yLkVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBh
dGV4aXQucmVnaXN0ZXIodHJ5X3JlbW92ZV9sb2NrZmlsZSkKKworICAgICAgICAjIGNvbXB1dGUg
dGhlIG1heGltdW0gbnVtYmVyIGN1cnJlbnRseSBpbiB1c2Ugd2l0aCB0aGUgcHJlZml4CisgICAg
ICAgIGxhc3RtYXggPSBOb25lCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBtYXhu
dW0gPSAtMQorICAgICAgICAgICAgZm9yIHBhdGggaW4gcm9vdGRpci5saXN0ZGlyKCk6CisgICAg
ICAgICAgICAgICAgbnVtID0gcGFyc2VfbnVtKHBhdGgpCisgICAgICAgICAgICAgICAgaWYgbnVt
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBtYXhudW0gPSBtYXgobWF4bnVtLCBu
dW0pCisKKyAgICAgICAgICAgICMgbWFrZSB0aGUgbmV3IGRpcmVjdG9yeQorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIHVkaXIgPSByb290ZGlyLm1rZGlyKHByZWZpeCArIHN0ciht
YXhudW0rMSkpCisgICAgICAgICAgICAgICAgaWYgbG9ja190aW1lb3V0OgorICAgICAgICAgICAg
ICAgICAgICBsb2NrZmlsZSA9IGNyZWF0ZV9sb2NrZmlsZSh1ZGlyKQorICAgICAgICAgICAgICAg
ICAgICBhdGV4aXRfcmVtb3ZlX2xvY2tmaWxlKGxvY2tmaWxlKQorICAgICAgICAgICAgZXhjZXB0
IChweS5lcnJvci5FRVhJU1QsIHB5LmVycm9yLkVOT0VOVCwgcHkuZXJyb3IuRUJVU1kpOgorICAg
ICAgICAgICAgICAgICMgcmFjZSBjb25kaXRpb24gKDEpOiBhbm90aGVyIHRocmVhZC9wcm9jZXNz
IGNyZWF0ZWQgdGhlIGRpcgorICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICBp
biB0aGUgbWVhbnRpbWUgLSB0cnkgYWdhaW4KKyAgICAgICAgICAgICAgICAjIHJhY2UgY29uZGl0
aW9uICgyKTogYW5vdGhlciB0aHJlYWQvcHJvY2VzcyBzcHVyaW91c2x5IGFjcXVpcmVkCisgICAg
ICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgIGxvY2sgdHJlYXRpbmcgZW1wdHkgZGly
ZWN0b3J5IGFzIGNhbmRpZGF0ZQorICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAg
ICBmb3IgcmVtb3ZhbCAtIHRyeSBhZ2FpbgorICAgICAgICAgICAgICAgICMgcmFjZSBjb25kaXRp
b24gKDMpOiBhbm90aGVyIHRocmVhZC9wcm9jZXNzIHRyaWVkIHRvIGNyZWF0ZSB0aGUgbG9jayBh
dAorICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB0aW1lICho
YXBwZW5lZCBpbiBQeXRob24gMy4zIG9uIFdpbmRvd3MpCisgICAgICAgICAgICAgICAgIyBodHRw
czovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L3B5dGVzdGJvdC9weS9idWlsZC8xLjAuMjEvam9i
L2ZmaTg1ajRjMGxxd3Nmd2EKKyAgICAgICAgICAgICAgICBpZiBsYXN0bWF4ID09IG1heG51bToK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBsYXN0bWF4ID0gbWF4
bnVtCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICAg
ICAgZGVmIGdldF9tdGltZShwYXRoKToKKyAgICAgICAgICAgICIiIiByZWFkIGZpbGUgbW9kaWZp
Y2F0aW9uIHRpbWUgIiIiCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHBhdGgubHN0YXQoKS5tdGltZQorICAgICAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVycm9yOgor
ICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBnYXJiYWdlX3ByZWZpeCA9IHByZWZpeCAr
ICdnYXJiYWdlLScKKworICAgICAgICBkZWYgaXNfZ2FyYmFnZShwYXRoKToKKyAgICAgICAgICAg
ICIiIiBjaGVjayBpZiBwYXRoIGRlbm90ZXMgZGlyZWN0b3J5IHNjaGVkdWxlZCBmb3IgcmVtb3Zh
bCAiIiIKKyAgICAgICAgICAgIGJuID0gcGF0aC5iYXNlbmFtZQorICAgICAgICAgICAgcmV0dXJu
IGJuLnN0YXJ0c3dpdGgoZ2FyYmFnZV9wcmVmaXgpCisKKyAgICAgICAgIyBwcnVuZSBvbGQgZGly
ZWN0b3JpZXMKKyAgICAgICAgdWRpcl90aW1lID0gZ2V0X210aW1lKHVkaXIpCisgICAgICAgIGlm
IGtlZXAgYW5kIHVkaXJfdGltZToKKyAgICAgICAgICAgIGZvciBwYXRoIGluIHJvb3RkaXIubGlz
dGRpcigpOgorICAgICAgICAgICAgICAgIG51bSA9IHBhcnNlX251bShwYXRoKQorICAgICAgICAg
ICAgICAgIGlmIG51bSBpcyBub3QgTm9uZSBhbmQgbnVtIDw9IChtYXhudW0gLSBrZWVwKToKKyAg
ICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgIyB0cnkgYWNx
dWlyaW5nIGxvY2sgdG8gcmVtb3ZlIGRpcmVjdG9yeSBhcyBleGNsdXNpdmUgdXNlcgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgbG9ja190aW1lb3V0OgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZV9sb2NrZmlsZShwYXRoKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQg
KHB5LmVycm9yLkVFWElTVCwgcHkuZXJyb3IuRU5PRU5ULCBweS5lcnJvci5FQlVTWSk6CisgICAg
ICAgICAgICAgICAgICAgICAgICBwYXRoX3RpbWUgPSBnZXRfbXRpbWUocGF0aCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIG5vdCBwYXRoX3RpbWU6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBhc3N1bWUgZGlyZWN0b3J5IGRvZXNuJ3QgZXhpc3Qgbm93CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFicyh1
ZGlyX3RpbWUgLSBwYXRoX3RpbWUpIDwgbG9ja190aW1lb3V0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgYXNzdW1lIGRpcmVjdG9yeSB3aXRoIGxvY2tmaWxlIGV4aXN0cworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgYW5kIGxvY2sgdGltZW91dCBoYXNuJ3QgZXhwaXJlZCB5
ZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAg
ICAgICAgICMgcGF0aCBkaXIgbG9ja2VkIGZvciBleGNsdXNpdmUgdXNlCisgICAgICAgICAgICAg
ICAgICAgICMgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbCB0byBhdm9pZCBhbm90aGVyIHRocmVh
ZC9wcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICMgdHJlYXRpbmcgaXQgYXMgYSBuZXcgZGly
ZWN0b3J5IG9yIHJlbW92YWwgY2FuZGlkYXRlCisgICAgICAgICAgICAgICAgICAgIGdhcmJhZ2Vf
cGF0aCA9IHJvb3RkaXIuam9pbihnYXJiYWdlX3ByZWZpeCArIHN0cih1dWlkLnV1aWQ0KCkpKQor
ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnJl
bmFtZShnYXJiYWdlX3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBnYXJiYWdlX3BhdGgu
cmVtb3ZlKHJlYz0xKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1
cHQ6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHQ6ICMgdGhpcyBtaWdodCBiZSBweS5lcnJvci5FcnJvciwgV2luZG93c0Vycm9yIC4uLgor
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGlmIGlzX2dhcmJh
Z2UocGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhdGgucmVtb3ZlKHJlYz0xKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9h
cmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAg
ICAgICAgICBleGNlcHQ6ICMgdGhpcyBtaWdodCBiZSBweS5lcnJvci5FcnJvciwgV2luZG93c0Vy
cm9yIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICMgbWFrZSBs
aW5rLi4uCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVzZXJuYW1lID0gb3MuZW52aXJvblsn
VVNFUiddICAgICAgICAgICAjbGludXgsIGV0IGFsCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB1c2VybmFtZSA9IG9zLmVudmlyb25b
J1VTRVJOQU1FJ10gICAjd2luZG93cworICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAg
ICAgICAgICAgICAgIHVzZXJuYW1lID0gJ2N1cnJlbnQnCisKKyAgICAgICAgc3JjICA9IHN0cih1
ZGlyKQorICAgICAgICBkZXN0ID0gc3JjWzpzcmMucmZpbmQoJy0nKV0gKyAnLScgKyB1c2VybmFt
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy51bmxpbmsoZGVzdCkKKyAgICAgICAgZXhj
ZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IG9zLnN5bWxpbmsoc3JjLCBkZXN0KQorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEF0dHJpYnV0
ZUVycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICByZXR1cm4gdWRpcgorICAgIG1ha2VfbnVtYmVyZWRfZGlyID0gY2xhc3NtZXRob2QobWFrZV9u
dW1iZXJlZF9kaXIpCisKKworZGVmIGNvcHltb2RlKHNyYywgZGVzdCk6CisgICAgIiIiIGNvcHkg
cGVybWlzc2lvbiBmcm9tIHNyYyB0byBkc3QuICIiIgorICAgIGltcG9ydCBzaHV0aWwKKyAgICBz
aHV0aWwuY29weW1vZGUoc3JjLCBkZXN0KQorCisKK2RlZiBjb3B5c3RhdChzcmMsIGRlc3QpOgor
ICAgICIiIiBjb3B5IHBlcm1pc3Npb24sICBsYXN0IG1vZGlmaWNhdGlvbiB0aW1lLAorICAgIGxh
c3QgYWNjZXNzIHRpbWUsIGFuZCBmbGFncyBmcm9tIHNyYyB0byBkc3QuIiIiCisgICAgaW1wb3J0
IHNodXRpbAorICAgIHNodXRpbC5jb3B5c3RhdChzdHIoc3JjKSwgc3RyKGRlc3QpKQorCisKK2Rl
ZiBjb3B5Y2h1bmtlZChzcmMsIGRlc3QpOgorICAgIGNodW5rc2l6ZSA9IDUyNDI4OCAgIyBoYWxm
IGEgbWVnIG9mIGJ5dGVzCisgICAgZnNyYyA9IHNyYy5vcGVuKCdyYicpCisgICAgdHJ5OgorICAg
ICAgICBmZGVzdCA9IGRlc3Qub3Blbignd2InKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3
aGlsZSAxOgorICAgICAgICAgICAgICAgIGJ1ZiA9IGZzcmMucmVhZChjaHVua3NpemUpCisgICAg
ICAgICAgICAgICAgaWYgbm90IGJ1ZjoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAg
ICAgICAgICAgICBmZGVzdC53cml0ZShidWYpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBmZGVzdC5jbG9zZSgpCisgICAgZmluYWxseToKKyAgICAgICAgZnNyYy5jbG9zZSgpCisKKwor
ZGVmIGlzaW1wb3J0YWJsZShuYW1lKToKKyAgICBpZiBuYW1lIGFuZCAobmFtZVswXS5pc2FscGhh
KCkgb3IgbmFtZVswXSA9PSAnXycpOgorICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCJfIiwg
JycpCisgICAgICAgIHJldHVybiBub3QgbmFtZSBvciBuYW1lLmlzYWxudW0oKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fcGF0aC9zdm51cmwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3N2bnVybC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NTg5YTcxZDA5ZTMzYjk0NmMwZDdjOTBjNTk0NWNkZmM5YzhhN2EwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9zdm51cmwucHkKQEAgLTAsMCArMSwz
ODAgQEAKKyIiIgorbW9kdWxlIGRlZmluaW5nIGEgc3VidmVyc2lvbiBwYXRoIG9iamVjdCBiYXNl
ZCBvbiB0aGUgZXh0ZXJuYWwKK2NvbW1hbmQgJ3N2bicuIFRoaXMgbW9kdWxlcyBhaW1zIHRvIHdv
cmsgd2l0aCBzdm4gMS4zIGFuZCBoaWdoZXIKK2J1dCBtaWdodCBhbHNvIGludGVyYWN0IHdlbGwg
d2l0aCBlYXJsaWVyIHZlcnNpb25zLgorIiIiCisKK2ltcG9ydCBvcywgc3lzLCB0aW1lLCByZQor
aW1wb3J0IHB5Citmcm9tIHB5IGltcG9ydCBwYXRoLCBwcm9jZXNzCitmcm9tIHB5Ll9wYXRoIGlt
cG9ydCBjb21tb24KK2Zyb20gcHkuX3BhdGggaW1wb3J0IHN2bndjIGFzIHN2bmNvbW1vbgorZnJv
bSBweS5fcGF0aC5jYWNoZXV0aWwgaW1wb3J0IEJ1aWxkY29zdEFjY2Vzc0NhY2hlLCBBZ2luZ0Nh
Y2hlCisKK0RFQlVHPUZhbHNlCisKK2NsYXNzIFN2bkNvbW1hbmRQYXRoKHN2bmNvbW1vbi5Tdm5Q
YXRoQmFzZSk6CisgICAgIiIiIHBhdGggaW1wbGVtZW50YXRpb24gdGhhdCBvZmZlcnMgYWNjZXNz
IHRvIChwb3NzaWJseSByZW1vdGUpIHN1YnZlcnNpb24KKyAgICByZXBvc2l0b3JpZXMuICIiIgor
CisgICAgX2xzcmV2Y2FjaGUgPSBCdWlsZGNvc3RBY2Nlc3NDYWNoZShtYXhlbnRyaWVzPTEyOCkK
KyAgICBfbHNub3JldmNhY2hlID0gQWdpbmdDYWNoZShtYXhlbnRyaWVzPTEwMDAsIG1heHNlY29u
ZHM9NjAuMCkKKworICAgIGRlZiBfX25ld19fKGNscywgcGF0aCwgcmV2PU5vbmUsIGF1dGg9Tm9u
ZSk6CisgICAgICAgIHNlbGYgPSBvYmplY3QuX19uZXdfXyhjbHMpCisgICAgICAgIGlmIGlzaW5z
dGFuY2UocGF0aCwgY2xzKToKKyAgICAgICAgICAgIHJldiA9IHBhdGgucmV2CisgICAgICAgICAg
ICBhdXRoID0gcGF0aC5hdXRoCisgICAgICAgICAgICBwYXRoID0gcGF0aC5zdHJwYXRoCisgICAg
ICAgIHN2bmNvbW1vbi5jaGVja2JhZGNoYXJzKHBhdGgpCisgICAgICAgIHBhdGggPSBwYXRoLnJz
dHJpcCgnLycpCisgICAgICAgIHNlbGYuc3RycGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5yZXYg
PSByZXYKKyAgICAgICAgc2VsZi5hdXRoID0gYXV0aAorICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJldiA9PSAtMToKKyAgICAg
ICAgICAgIHJldHVybiAnc3ZudXJsKCVyKScgJSBzZWxmLnN0cnBhdGgKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJldHVybiAnc3ZudXJsKCVyLCAlciknICUgKHNlbGYuc3RycGF0aCwgc2Vs
Zi5yZXYpCisKKyAgICBkZWYgX3N2bndpdGhyZXYoc2VsZiwgY21kLCAqYXJncyk6CisgICAgICAg
ICIiIiBleGVjdXRlIGFuIHN2biBjb21tYW5kLCBhcHBlbmQgb3VyIG93biB1cmwgYW5kIHJldmlz
aW9uICIiIgorICAgICAgICBpZiBzZWxmLnJldiBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX3N2bndyaXRlKGNtZCwgKmFyZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBh
cmdzID0gWyctcicsIHNlbGYucmV2XSArIGxpc3QoYXJncykKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9zdm53cml0ZShjbWQsICphcmdzKQorCisgICAgZGVmIF9zdm53cml0ZShzZWxmLCBjbWQs
ICphcmdzKToKKyAgICAgICAgIiIiIGV4ZWN1dGUgYW4gc3ZuIGNvbW1hbmQsIGFwcGVuZCBvdXIg
b3duIHVybCAiIiIKKyAgICAgICAgbCA9IFsnc3ZuICVzJyAlIGNtZF0KKyAgICAgICAgYXJncyA9
IFsnIiVzIicgJSBzZWxmLl9lc2NhcGUoaXRlbSkgZm9yIGl0ZW0gaW4gYXJnc10KKyAgICAgICAg
bC5leHRlbmQoYXJncykKKyAgICAgICAgbC5hcHBlbmQoJyIlcyInICUgc2VsZi5fZW5jb2RlZHVy
bCgpKQorICAgICAgICAjIGZpeGluZyB0aGUgbG9jYWxlIGJlY2F1c2Ugd2UgY2FuJ3Qgb3RoZXJ3
aXNlIHBhcnNlCisgICAgICAgIHN0cmluZyA9ICIgIi5qb2luKGwpCisgICAgICAgIGlmIERFQlVH
OgorICAgICAgICAgICAgcHJpbnQoImV4ZWNpbmcgJXMiICUgc3RyaW5nKQorICAgICAgICBvdXQg
PSBzZWxmLl9zdm5jbWRleGVjYXV0aChzdHJpbmcpCisgICAgICAgIHJldHVybiBvdXQKKworICAg
IGRlZiBfc3ZuY21kZXhlY2F1dGgoc2VsZiwgY21kKToKKyAgICAgICAgIiIiIGV4ZWN1dGUgYW4g
c3ZuIGNvbW1hbmQgJ2FzIGlzJyAiIiIKKyAgICAgICAgY21kID0gc3ZuY29tbW9uLmZpeGxvY2Fs
ZSgpICsgY21kCisgICAgICAgIGlmIHNlbGYuYXV0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGNtZCArPSAnICcgKyBzZWxmLmF1dGgubWFrZWNtZG9wdGlvbnMoKQorICAgICAgICByZXR1cm4g
c2VsZi5fY21kZXhlYyhjbWQpCisKKyAgICBkZWYgX2NtZGV4ZWMoc2VsZiwgY21kKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgb3V0ID0gcHJvY2Vzcy5jbWRleGVjKGNtZCkKKyAgICAgICAg
ZXhjZXB0IHB5LnByb2Nlc3MuY21kZXhlYy5FcnJvcjoKKyAgICAgICAgICAgIGUgPSBzeXMuZXhj
X2luZm8oKVsxXQorICAgICAgICAgICAgaWYgKGUuZXJyLmZpbmQoJ0ZpbGUgRXhpc3RzJykgIT0g
LTEgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmVyci5maW5kKCdGaWxlIGFscmVh
ZHkgZXhpc3RzJykgIT0gLTEpOgorICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVFWElT
VChzZWxmKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgcmV0dXJuIG91dAorCisgICAgZGVm
IF9zdm5wb3BlbmF1dGgoc2VsZiwgY21kKToKKyAgICAgICAgIiIiIGV4ZWN1dGUgYW4gc3ZuIGNv
bW1hbmQsIHJldHVybiBhIHBpcGUgZm9yIHJlYWRpbmcgc3RkaW4gIiIiCisgICAgICAgIGNtZCA9
IHN2bmNvbW1vbi5maXhsb2NhbGUoKSArIGNtZAorICAgICAgICBpZiBzZWxmLmF1dGggaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBjbWQgKz0gJyAnICsgc2VsZi5hdXRoLm1ha2VjbWRvcHRpb25z
KCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcGVuKGNtZCkKKworICAgIGRlZiBfcG9wZW4oc2Vs
ZiwgY21kKToKKyAgICAgICAgcmV0dXJuIG9zLnBvcGVuKGNtZCkKKworICAgIGRlZiBfZW5jb2Rl
ZHVybChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2VzY2FwZShzZWxmLnN0cnBhdGgpCisK
KyAgICBkZWYgX25vcmV2X2RlbGVudHJ5KHNlbGYsIHBhdGgpOgorICAgICAgICBhdXRoID0gc2Vs
Zi5hdXRoIGFuZCBzZWxmLmF1dGgubWFrZWNtZG9wdGlvbnMoKSBvciBOb25lCisgICAgICAgIHNl
bGYuX2xzbm9yZXZjYWNoZS5kZWxlbnRyeSgoc3RyKHBhdGgpLCBhdXRoKSkKKworICAgIGRlZiBv
cGVuKHNlbGYsIG1vZGU9J3InKToKKyAgICAgICAgIiIiIHJldHVybiBhbiBvcGVuZWQgZmlsZSB3
aXRoIHRoZSBnaXZlbiBtb2RlLiAiIiIKKyAgICAgICAgaWYgbW9kZSBub3QgaW4gKCJyIiwgInJV
IiwpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibW9kZSAlciBub3Qgc3VwcG9ydGVk
IiAlIChtb2RlLCkpCisgICAgICAgIGFzc2VydCBzZWxmLmNoZWNrKGZpbGU9MSkgIyBzdm4gY2F0
IHJldHVybnMgYW4gZW1wdHkgZmlsZSBvdGhlcndpc2UKKyAgICAgICAgaWYgc2VsZi5yZXYgaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zdm5wb3BlbmF1dGgoJ3N2biBjYXQgIiVz
IicgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VzY2Fw
ZShzZWxmLnN0cnBhdGgpLCApKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX3N2bnBvcGVuYXV0aCgnc3ZuIGNhdCAtciAlcyAiJXMiJyAlICgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXYsIHNlbGYuX2VzY2FwZShzZWxmLnN0cnBh
dGgpKSkKKworICAgIGRlZiBkaXJwYXRoKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
ICIiIiByZXR1cm4gdGhlIGRpcmVjdG9yeSBwYXRoIG9mIHRoZSBjdXJyZW50IHBhdGggam9pbmVk
CisgICAgICAgICAgICB3aXRoIGFueSBnaXZlbiBwYXRoIGFyZ3VtZW50cy4KKyAgICAgICAgIiIi
CisgICAgICAgIGwgPSBzZWxmLnN0cnBhdGguc3BsaXQoc2VsZi5zZXApCisgICAgICAgIGlmIGxl
bihsKSA8IDQ6CisgICAgICAgICAgICByYWlzZSBweS5lcnJvci5FSU5WQUwoc2VsZiwgImJhc2Ug
aXMgbm90IHZhbGlkIikKKyAgICAgICAgZWxpZiBsZW4obCkgPT0gNDoKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLmpvaW4oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYubmV3KGJhc2VuYW1lPScnKS5qb2luKCphcmdzLCAqKmt3YXJncykKKwor
ICAgICMgbW9kaWZ5aW5nIG1ldGhvZHMgKGNhY2hlIG11c3QgYmUgaW52YWxpZGF0ZWQpCisgICAg
ZGVmIG1rZGlyKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiBjcmVhdGUgJiBy
ZXR1cm4gdGhlIGRpcmVjdG9yeSBqb2luZWQgd2l0aCBhcmdzLgorICAgICAgICBwYXNzIGEgJ21z
Zycga2V5d29yZCBhcmd1bWVudCB0byBzZXQgdGhlIGNvbW1pdCBtZXNzYWdlLgorICAgICAgICAi
IiIKKyAgICAgICAgY29tbWl0X21zZyA9IGt3YXJncy5nZXQoJ21zZycsICJta2RpciBieSBweSBs
aWIgaW52b2NhdGlvbiIpCisgICAgICAgIGNyZWF0ZXBhdGggPSBzZWxmLmpvaW4oKmFyZ3MpCisg
ICAgICAgIGNyZWF0ZXBhdGguX3N2bndyaXRlKCdta2RpcicsICctbScsIGNvbW1pdF9tc2cpCisg
ICAgICAgIHNlbGYuX25vcmV2X2RlbGVudHJ5KGNyZWF0ZXBhdGguZGlycGF0aCgpKQorICAgICAg
ICByZXR1cm4gY3JlYXRlcGF0aAorCisgICAgZGVmIGNvcHkoc2VsZiwgdGFyZ2V0LCBtc2c9J2Nv
cGllZCBieSBweSBsaWIgaW52b2NhdGlvbicpOgorICAgICAgICAiIiIgY29weSBwYXRoIHRvIHRh
cmdldCB3aXRoIGNoZWNraW4gbWVzc2FnZSBtc2cuIiIiCisgICAgICAgIGlmIGdldGF0dHIodGFy
Z2V0LCAncmV2JywgTm9uZSkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBweS5lcnJv
ci5FSU5WQUwodGFyZ2V0LCAicmV2aXNpb25zIGFyZSBpbW11dGFibGUiKQorICAgICAgICBzZWxm
Ll9zdm5jbWRleGVjYXV0aCgnc3ZuIGNvcHkgLW0gIiVzIiAiJXMiICIlcyInICUobXNnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lc2NhcGUoc2VsZiksIHNlbGYuX2VzY2Fw
ZSh0YXJnZXQpKSkKKyAgICAgICAgc2VsZi5fbm9yZXZfZGVsZW50cnkodGFyZ2V0LmRpcnBhdGgo
KSkKKworICAgIGRlZiByZW5hbWUoc2VsZiwgdGFyZ2V0LCBtc2c9InJlbmFtZWQgYnkgcHkgbGli
IGludm9jYXRpb24iKToKKyAgICAgICAgIiIiIHJlbmFtZSB0aGlzIHBhdGggdG8gdGFyZ2V0IHdp
dGggY2hlY2tpbiBtZXNzYWdlIG1zZy4gIiIiCisgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ3Jl
dicsIE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRUlOVkFM
KHNlbGYsICJyZXZpc2lvbnMgYXJlIGltbXV0YWJsZSIpCisgICAgICAgIHNlbGYuX3N2bmNtZGV4
ZWNhdXRoKCdzdm4gbW92ZSAtbSAiJXMiIC0tZm9yY2UgIiVzIiAiJXMiJyAlKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtc2csIHNlbGYuX2VzY2FwZShzZWxmKSwgc2VsZi5fZXNjYXBl
KHRhcmdldCkpKQorICAgICAgICBzZWxmLl9ub3Jldl9kZWxlbnRyeShzZWxmLmRpcnBhdGgoKSkK
KyAgICAgICAgc2VsZi5fbm9yZXZfZGVsZW50cnkoc2VsZikKKworICAgIGRlZiByZW1vdmUoc2Vs
ZiwgcmVjPTEsIG1zZz0ncmVtb3ZlZCBieSBweSBsaWIgaW52b2NhdGlvbicpOgorICAgICAgICAi
IiIgcmVtb3ZlIGEgZmlsZSBvciBkaXJlY3RvcnkgKG9yIGEgZGlyZWN0b3J5IHRyZWUgaWYgcmVj
PTEpIHdpdGgKK2NoZWNraW4gbWVzc2FnZSBtc2cuIiIiCisgICAgICAgIGlmIHNlbGYucmV2IGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRUlOVkFMKHNlbGYsICJyZXZp
c2lvbnMgYXJlIGltbXV0YWJsZSIpCisgICAgICAgIHNlbGYuX3N2bmNtZGV4ZWNhdXRoKCdzdm4g
cm0gLW0gIiVzIiAiJXMiJyAlKG1zZywgc2VsZi5fZXNjYXBlKHNlbGYpKSkKKyAgICAgICAgc2Vs
Zi5fbm9yZXZfZGVsZW50cnkoc2VsZi5kaXJwYXRoKCkpCisKKyAgICBkZWYgZXhwb3J0KHNlbGYs
IHRvcGF0aCk6CisgICAgICAgICIiIiBleHBvcnQgdG8gYSBsb2NhbCBwYXRoCisKKyAgICAgICAg
ICAgIHRvcGF0aCBzaG91bGQgbm90IGV4aXN0IHByaW9yIHRvIGNhbGxpbmcgdGhpcywgcmV0dXJu
cyBhCisgICAgICAgICAgICBweS5wYXRoLmxvY2FsIGluc3RhbmNlCisgICAgICAgICIiIgorICAg
ICAgICB0b3BhdGggPSBweS5wYXRoLmxvY2FsKHRvcGF0aCkKKyAgICAgICAgYXJncyA9IFsnIiVz
IicgJSAoc2VsZi5fZXNjYXBlKHNlbGYpLCksCisgICAgICAgICAgICAgICAgJyIlcyInICUgKHNl
bGYuX2VzY2FwZSh0b3BhdGgpLCldCisgICAgICAgIGlmIHNlbGYucmV2IGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgYXJncyA9IFsnLXInLCBzdHIoc2VsZi5yZXYpXSArIGFyZ3MKKyAgICAgICAg
c2VsZi5fc3ZuY21kZXhlY2F1dGgoJ3N2biBleHBvcnQgJXMnICUgKCcgJy5qb2luKGFyZ3MpLCkp
CisgICAgICAgIHJldHVybiB0b3BhdGgKKworICAgIGRlZiBlbnN1cmUoc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKToKKyAgICAgICAgIiIiIGVuc3VyZSB0aGF0IGFuIGFyZ3Mtam9pbmVkIHBhdGggZXhp
c3RzIChieSBkZWZhdWx0IGFzCisgICAgICAgICAgICBhIGZpbGUpLiBJZiB5b3Ugc3BlY2lmeSBh
IGtleXdvcmQgYXJndW1lbnQgJ2Rpcj1UcnVlJworICAgICAgICAgICAgdGhlbiB0aGUgcGF0aCBp
cyBmb3JjZWQgdG8gYmUgYSBkaXJlY3RvcnkgcGF0aC4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IGdldGF0dHIoc2VsZiwgJ3JldicsIE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFp
c2UgcHkuZXJyb3IuRUlOVkFMKHNlbGYsICJyZXZpc2lvbnMgYXJlIGltbXV0YWJsZSIpCisgICAg
ICAgIHRhcmdldCA9IHNlbGYuam9pbigqYXJncykKKyAgICAgICAgZGlyID0ga3dhcmdzLmdldCgn
ZGlyJywgMCkKKyAgICAgICAgZm9yIHggaW4gdGFyZ2V0LnBhcnRzKHJldmVyc2U9VHJ1ZSk6Cisg
ICAgICAgICAgICBpZiB4LmNoZWNrKCk6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVCh0YXJnZXQsICJoYXMgbm90
IGFueSB2YWxpZCBiYXNlISIpCisgICAgICAgIGlmIHggPT0gdGFyZ2V0OgorICAgICAgICAgICAg
aWYgbm90IHguY2hlY2soZGlyPWRpcik6CisgICAgICAgICAgICAgICAgcmFpc2UgZGlyIGFuZCBw
eS5lcnJvci5FTk9URElSKHgpIG9yIHB5LmVycm9yLkVJU0RJUih4KQorICAgICAgICAgICAgcmV0
dXJuIHgKKyAgICAgICAgdG9jcmVhdGUgPSB0YXJnZXQucmVsdG8oeCkKKyAgICAgICAgYmFzZW5h
bWUgPSB0b2NyZWF0ZS5zcGxpdChzZWxmLnNlcCwgMSlbMF0KKyAgICAgICAgdGVtcGRpciA9IHB5
LnBhdGgubG9jYWwubWtkdGVtcCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlbXBkaXIu
ZW5zdXJlKHRvY3JlYXRlLCBkaXI9ZGlyKQorICAgICAgICAgICAgY21kID0gJ3N2biBpbXBvcnQg
LW0gIiVzIiAiJXMiICIlcyInICUgKAorICAgICAgICAgICAgICAgICAgICAiZW5zdXJlICVzIiAl
IHNlbGYuX2VzY2FwZSh0b2NyZWF0ZSksCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2VzY2Fw
ZSh0ZW1wZGlyLmpvaW4oYmFzZW5hbWUpKSwKKyAgICAgICAgICAgICAgICAgICAgeC5qb2luKGJh
c2VuYW1lKS5fZW5jb2RlZHVybCgpKQorICAgICAgICAgICAgc2VsZi5fc3ZuY21kZXhlY2F1dGgo
Y21kKQorICAgICAgICAgICAgc2VsZi5fbm9yZXZfZGVsZW50cnkoeCkKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIHRlbXBkaXIucmVtb3ZlKCkKKyAgICAgICAgcmV0dXJuIHRhcmdldAor
CisgICAgIyBlbmQgb2YgbW9kaWZ5aW5nIG1ldGhvZHMKKyAgICBkZWYgX3Byb3BnZXQoc2VsZiwg
bmFtZSk6CisgICAgICAgIHJlcyA9IHNlbGYuX3N2bndpdGhyZXYoJ3Byb3BnZXQnLCBuYW1lKQor
ICAgICAgICByZXR1cm4gcmVzWzotMV0gIyBzdHJpcCB0cmFpbGluZyBuZXdsaW5lCisKKyAgICBk
ZWYgX3Byb3BsaXN0KHNlbGYpOgorICAgICAgICByZXMgPSBzZWxmLl9zdm53aXRocmV2KCdwcm9w
bGlzdCcpCisgICAgICAgIGxpbmVzID0gcmVzLnNwbGl0KCdcbicpCisgICAgICAgIGxpbmVzID0g
W3guc3RyaXAoKSBmb3IgeCBpbiBsaW5lc1sxOl1dCisgICAgICAgIHJldHVybiBzdm5jb21tb24u
UHJvcExpc3REaWN0KHNlbGYsIGxpbmVzKQorCisgICAgZGVmIGluZm8oc2VsZik6CisgICAgICAg
ICIiIiByZXR1cm4gYW4gSW5mbyBzdHJ1Y3R1cmUgd2l0aCBzdm4tcHJvdmlkZWQgaW5mb3JtYXRp
b24uICIiIgorICAgICAgICBwYXJlbnQgPSBzZWxmLmRpcnBhdGgoKQorICAgICAgICBuYW1laW5m
b19zZXEgPSBwYXJlbnQuX2xpc3RkaXJfbmFtZWluZm8oKQorICAgICAgICBibiA9IHNlbGYuYmFz
ZW5hbWUKKyAgICAgICAgZm9yIG5hbWUsIGluZm8gaW4gbmFtZWluZm9fc2VxOgorICAgICAgICAg
ICAgaWYgbmFtZSA9PSBibjoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5mbworICAgICAgICBy
YWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZikKKworCisgICAgZGVmIF9saXN0ZGlyX25hbWVpbmZv
KHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIHNlcXVlbmNlIG9mIG5hbWUtaW5mbyBkaXJlY3Rv
cnkgZW50cmllcyBvZiBzZWxmICIiIgorICAgICAgICBkZWYgYnVpbGRlcigpOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlcyA9IHNlbGYuX3N2bndpdGhyZXYoJ2xzJywgJy12
JykKKyAgICAgICAgICAgIGV4Y2VwdCBwcm9jZXNzLmNtZGV4ZWMuRXJyb3I6CisgICAgICAgICAg
ICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAgICAgICAgICAgaWYgZS5lcnIuZmlu
ZCgnbm9uLWV4aXN0ZW50IGluIHRoYXQgcmV2aXNpb24nKSAhPSAtMToKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYsIGUuZXJyKQorICAgICAgICAgICAgICAg
IGVsaWYgZS5lcnIuZmluZCgiRTIwMDAwOToiKSAhPSAtMToKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYsIGUuZXJyKQorICAgICAgICAgICAgICAgIGVsaWYg
ZS5lcnIuZmluZCgnRmlsZSBub3QgZm91bmQnKSAhPSAtMToKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYsIGUuZXJyKQorICAgICAgICAgICAgICAgIGVsaWYg
ZS5lcnIuZmluZCgnbm90IHBhcnQgb2YgYSByZXBvc2l0b3J5JykhPS0xOgorICAgICAgICAgICAg
ICAgICAgICByYWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZiwgZS5lcnIpCisgICAgICAgICAgICAg
ICAgZWxpZiBlLmVyci5maW5kKCdVbmFibGUgdG8gb3BlbicpIT0tMToKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYsIGUuZXJyKQorICAgICAgICAgICAgICAg
IGVsaWYgZS5lcnIubG93ZXIoKS5maW5kKCdtZXRob2Qgbm90IGFsbG93ZWQnKSE9LTE6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVBQ0NFUyhzZWxmLCBlLmVycikKKyAgICAg
ICAgICAgICAgICByYWlzZSBweS5lcnJvci5FcnJvcihlLmVycikKKyAgICAgICAgICAgIGxpbmVz
ID0gcmVzLnNwbGl0KCdcbicpCisgICAgICAgICAgICBuYW1laW5mb19zZXEgPSBbXQorICAgICAg
ICAgICAgZm9yIGxzbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAgICAgICBpZiBsc2xpbmU6Cisg
ICAgICAgICAgICAgICAgICAgIGluZm8gPSBJbmZvU3ZuQ29tbWFuZChsc2xpbmUpCisgICAgICAg
ICAgICAgICAgICAgIGlmIGluZm8uX25hbWUgIT0gJy4nOiAgIyBzdm4gMS41IHByb2R1Y2VzICcu
JyBkaXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZWluZm9fc2VxLmFwcGVuZCgoaW5m
by5fbmFtZSwgaW5mbykpCisgICAgICAgICAgICBuYW1laW5mb19zZXEuc29ydCgpCisgICAgICAg
ICAgICByZXR1cm4gbmFtZWluZm9fc2VxCisgICAgICAgIGF1dGggPSBzZWxmLmF1dGggYW5kIHNl
bGYuYXV0aC5tYWtlY21kb3B0aW9ucygpIG9yIE5vbmUKKyAgICAgICAgaWYgc2VsZi5yZXYgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fbHNyZXZjYWNoZS5nZXRvcmJ1aWxk
KChzZWxmLnN0cnBhdGgsIHNlbGYucmV2LCBhdXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9sc25vcmV2Y2FjaGUuZ2V0b3JidWlsZCgoc2VsZi5zdHJwYXRoLCBh
dXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
dWlsZGVyKQorCisgICAgZGVmIGxpc3RkaXIoc2VsZiwgZmlsPU5vbmUsIHNvcnQ9Tm9uZSk6Cisg
ICAgICAgICIiIiBsaXN0IGRpcmVjdG9yeSBjb250ZW50cywgcG9zc2libHkgZmlsdGVyIGJ5IHRo
ZSBnaXZlbiBmaWwgZnVuYworICAgICAgICAgICAgYW5kIHBvc3NpYmx5IHNvcnRlZC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlsLCBzdHIpOgorICAgICAgICAgICAgZmls
ID0gY29tbW9uLkZOTWF0Y2hlcihmaWwpCisgICAgICAgIG5hbWVpbmZvX3NlcSA9IHNlbGYuX2xp
c3RkaXJfbmFtZWluZm8oKQorICAgICAgICBpZiBsZW4obmFtZWluZm9fc2VxKSA9PSAxOgorICAg
ICAgICAgICAgbmFtZSwgaW5mbyA9IG5hbWVpbmZvX3NlcVswXQorICAgICAgICAgICAgaWYgbmFt
ZSA9PSBzZWxmLmJhc2VuYW1lIGFuZCBpbmZvLmtpbmQgPT0gJ2ZpbGUnOgorICAgICAgICAgICAg
ICAgICNpZiBub3Qgc2VsZi5jaGVjayhkaXI9MSk6CisgICAgICAgICAgICAgICAgcmFpc2UgcHku
ZXJyb3IuRU5PVERJUihzZWxmKQorICAgICAgICBwYXRocyA9IFtzZWxmLmpvaW4obmFtZSkgZm9y
IChuYW1lLCBpbmZvKSBpbiBuYW1laW5mb19zZXFdCisgICAgICAgIGlmIGZpbDoKKyAgICAgICAg
ICAgIHBhdGhzID0gW3ggZm9yIHggaW4gcGF0aHMgaWYgZmlsKHgpXQorICAgICAgICBzZWxmLl9z
b3J0bGlzdChwYXRocywgc29ydCkKKyAgICAgICAgcmV0dXJuIHBhdGhzCisKKworICAgIGRlZiBs
b2coc2VsZiwgcmV2X3N0YXJ0PU5vbmUsIHJldl9lbmQ9MSwgdmVyYm9zZT1GYWxzZSk6CisgICAg
ICAgICIiIiByZXR1cm4gYSBsaXN0IG9mIExvZ0VudHJ5IGluc3RhbmNlcyBmb3IgdGhpcyBwYXRo
LgorcmV2X3N0YXJ0IGlzIHRoZSBzdGFydGluZyByZXZpc2lvbiAoZGVmYXVsdGluZyB0byB0aGUg
Zmlyc3Qgb25lKS4KK3Jldl9lbmQgaXMgdGhlIGxhc3QgcmV2aXNpb24gKGRlZmF1bHRpbmcgdG8g
SEVBRCkuCitpZiB2ZXJib3NlIGlzIFRydWUsIHRoZW4gdGhlIExvZ0VudHJ5IGluc3RhbmNlcyBh
bHNvIGtub3cgd2hpY2ggZmlsZXMgY2hhbmdlZC4KKyIiIgorICAgICAgICBhc3NlcnQgc2VsZi5j
aGVjaygpICNtYWtlIGl0IHNpbXBsZXIgZm9yIHRoZSBwaXBlCisgICAgICAgIHJldl9zdGFydCA9
IHJldl9zdGFydCBpcyBOb25lIGFuZCAiSEVBRCIgb3IgcmV2X3N0YXJ0CisgICAgICAgIHJldl9l
bmQgPSByZXZfZW5kIGlzIE5vbmUgYW5kICJIRUFEIiBvciByZXZfZW5kCisKKyAgICAgICAgaWYg
cmV2X3N0YXJ0ID09ICJIRUFEIiBhbmQgcmV2X2VuZCA9PSAxOgorICAgICAgICAgICAgcmV2X29w
dCA9ICIiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXZfb3B0ID0gIi1yICVzOiVzIiAl
IChyZXZfc3RhcnQsIHJldl9lbmQpCisgICAgICAgIHZlcmJvc2Vfb3B0ID0gdmVyYm9zZSBhbmQg
Ii12IiBvciAiIgorICAgICAgICB4bWxwaXBlID0gIHNlbGYuX3N2bnBvcGVuYXV0aCgnc3ZuIGxv
ZyAtLXhtbCAlcyAlcyAiJXMiJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChyZXZfb3B0LCB2ZXJib3NlX29wdCwgc2VsZi5zdHJwYXRoKSkKKyAgICAgICAgZnJvbSB4
bWwuZG9tIGltcG9ydCBtaW5pZG9tCisgICAgICAgIHRyZWUgPSBtaW5pZG9tLnBhcnNlKHhtbHBp
cGUpCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZvciBsb2dlbnRyeSBpbiBmaWx0ZXIo
Tm9uZSwgdHJlZS5maXJzdENoaWxkLmNoaWxkTm9kZXMpOgorICAgICAgICAgICAgaWYgbG9nZW50
cnkubm9kZVR5cGUgPT0gbG9nZW50cnkuRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoc3ZuY29tbW9uLkxvZ0VudHJ5KGxvZ2VudHJ5KSkKKyAgICAgICAgcmV0dXJu
IHJlc3VsdAorCisjMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NjcKKyMgICAyMjU2ICAgICAgaHBrICAgICAgICAxNjUgTm92IDI0IDE3OjU1IF9faW5pdF9fLnB5
CisjIFhYWCBzcG90dGVkIGJ5IEd1aWRvLCBTVk4gMS4zLjAgaGFzIGRpZmZlcmVudCBhbGlnbmlu
ZywgYnJlYWtzIHRoZSBjb2RlISEhCisjICAgMTMxMiBqb2hubnkgICAgICAgICAgIDE2MjcgTWF5
IDA1IDE0OjMyIHRlc3RfZGVjb3JhdG9ycy5weQorIworY2xhc3MgSW5mb1N2bkNvbW1hbmQ6Cisg
ICAgIyB0aGUgJzA/JyBwYXJ0IGluIHRoZSBtaWRkbGUgaXMgYW4gaW5kaWNhdGlvbiBvZiB3aGV0
aGVyIHRoZSByZXNvdXJjZSBpcworICAgICMgbG9ja2VkLCBzZWUgJ3N2biBoZWxwIGxzJworICAg
IGxzcGF0dGVybiA9IHJlLmNvbXBpbGUoCisgICAgICAgIHInXiAqKD9QPHJldj5cZCspICsoP1A8
YXV0aG9yPi4rPykgKygwPyAqKD9QPHNpemU+XGQrKSk/ICcKKyAgICAgICAgICAgIHInKig/UDxk
YXRlPlx3KyArXGR7Mn0gK1tcZDpdKykgKyg/UDxmaWxlPi4qKSQnKQorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsaW5lKToKKyAgICAgICAgIyB0aGlzIGlzIGEgdHlwaWNhbCBsaW5lIGZyb20gJ3N2
biBscyBodHRwOi8vLi4uJworICAgICAgICAjXyAgICAxMTI3ICAgICAganVtICAgICAgICAwIEp1
bCAxMyAxNToyOCBicmFuY2gvCisgICAgICAgIG1hdGNoID0gc2VsZi5sc3BhdHRlcm4ubWF0Y2go
bGluZSkKKyAgICAgICAgZGF0YSA9IG1hdGNoLmdyb3VwZGljdCgpCisgICAgICAgIHNlbGYuX25h
bWUgPSBkYXRhWydmaWxlJ10KKyAgICAgICAgaWYgc2VsZi5fbmFtZVstMV0gPT0gJy8nOgorICAg
ICAgICAgICAgc2VsZi5fbmFtZSA9IHNlbGYuX25hbWVbOi0xXQorICAgICAgICAgICAgc2VsZi5r
aW5kID0gJ2RpcicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYua2luZCA9ICdmaWxl
JworICAgICAgICAjc2VsZi5oYXNfcHJvcHMgPSBsLnBvcCgwKSA9PSAnUCcKKyAgICAgICAgc2Vs
Zi5jcmVhdGVkX3JldiA9IGludChkYXRhWydyZXYnXSkKKyAgICAgICAgc2VsZi5sYXN0X2F1dGhv
ciA9IGRhdGFbJ2F1dGhvciddCisgICAgICAgIHNlbGYuc2l6ZSA9IGRhdGFbJ3NpemUnXSBhbmQg
aW50KGRhdGFbJ3NpemUnXSkgb3IgMAorICAgICAgICBzZWxmLm10aW1lID0gcGFyc2VfdGltZV93
aXRoX21pc3NpbmdfeWVhcihkYXRhWydkYXRlJ10pCisgICAgICAgIHNlbGYudGltZSA9IHNlbGYu
bXRpbWUgKiAxMDAwMDAwCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX19kaWN0X18gPT0gb3RoZXIuX19kaWN0X18KKworCisjX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworIworIyBoZWxwZXIgZnVu
Y3Rpb25zCisjX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXworZGVmIHBhcnNlX3RpbWVfd2l0aF9taXNzaW5nX3llYXIodGltZXN0cik6CisgICAgIiIi
IGFuYWx5emUgdGhlIHRpbWUgcGFydCBmcm9tIGEgc2luZ2xlIGxpbmUgb2YgInN2biBscyAtdiIK
KyAgICB0aGUgc3ZuIG91dHB1dCBkb2Vzbid0IHNob3cgdGhlIHllYXIgbWFrZXMgdGhlICd0aW1l
c3RyJworICAgIGFtYmlnb3VzLgorICAgICIiIgorICAgIGltcG9ydCBjYWxlbmRhcgorICAgIHRf
bm93ID0gdGltZS5nbXRpbWUoKQorCisgICAgdHBhcnRzID0gdGltZXN0ci5zcGxpdCgpCisgICAg
bW9udGggPSB0aW1lLnN0cnB0aW1lKHRwYXJ0cy5wb3AoMCksICclYicpWzFdCisgICAgZGF5ID0g
dGltZS5zdHJwdGltZSh0cGFydHMucG9wKDApLCAnJWQnKVsyXQorICAgIGxhc3QgPSB0cGFydHMu
cG9wKDApICMgeWVhciBvciBob3VyOm1pbnV0ZQorICAgIHRyeToKKyAgICAgICAgaWYgIjoiIGlu
IGxhc3Q6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgeWVhciA9IHRp
bWUuc3RycHRpbWUobGFzdCwgJyVZJylbMF0KKyAgICAgICAgaG91ciA9IG1pbnV0ZSA9IDAKKyAg
ICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgaG91ciwgbWludXRlID0gdGltZS5zdHJwdGlt
ZShsYXN0LCAnJUg6JU0nKVszOjVdCisgICAgICAgIHllYXIgPSB0X25vd1swXQorCisgICAgICAg
IHRfcmVzdWx0ID0gKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgMCwwLDAsMCkKKyAg
ICAgICAgaWYgdF9yZXN1bHQgPiB0X25vdzoKKyAgICAgICAgICAgIHllYXIgLT0gMQorICAgIHRf
cmVzdWx0ID0gKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgMCwwLDAsMCkKKyAgICBy
ZXR1cm4gY2FsZW5kYXIudGltZWdtKHRfcmVzdWx0KQorCitjbGFzcyBQYXRoRW50cnk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBwYXJ0KToKKyAgICAgICAgc2VsZi5zdHJwYXRoID0gcHBhcnQu
Zmlyc3RDaGlsZC5ub2RlVmFsdWUuZW5jb2RlKCdVVEYtOCcpCisgICAgICAgIHNlbGYuYWN0aW9u
ID0gcHBhcnQuZ2V0QXR0cmlidXRlKCdhY3Rpb24nKS5lbmNvZGUoJ1VURi04JykKKyAgICAgICAg
aWYgc2VsZi5hY3Rpb24gPT0gJ0EnOgorICAgICAgICAgICAgc2VsZi5jb3B5ZnJvbV9wYXRoID0g
cHBhcnQuZ2V0QXR0cmlidXRlKCdjb3B5ZnJvbS1wYXRoJykuZW5jb2RlKCdVVEYtOCcpCisgICAg
ICAgICAgICBpZiBzZWxmLmNvcHlmcm9tX3BhdGg6CisgICAgICAgICAgICAgICAgc2VsZi5jb3B5
ZnJvbV9yZXYgPSBpbnQocHBhcnQuZ2V0QXR0cmlidXRlKCdjb3B5ZnJvbS1yZXYnKSkKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9zdm53Yy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3Zu
d2MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzEzOGRkODVkYTM5YjJkMmE2NWI4MTAxZjZiYTk2ZWVmOTZhMzJj
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3Zud2MucHkKQEAgLTAsMCAr
MSwxMjQwIEBACisiIiIKK3N2bi1Db21tYW5kIGJhc2VkIEltcGxlbWVudGF0aW9uIG9mIGEgU3Vi
dmVyc2lvbiBXb3JraW5nQ29weSBQYXRoLgorCisgIFN2bldDQ29tbWFuZFBhdGggIGlzIHRoZSBt
YWluIGNsYXNzLgorCisiIiIKKworaW1wb3J0IG9zLCBzeXMsIHRpbWUsIHJlLCBjYWxlbmRhcgor
aW1wb3J0IHB5CitpbXBvcnQgc3VicHJvY2VzcworZnJvbSBweS5fcGF0aCBpbXBvcnQgY29tbW9u
CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorIyBDYWNoaW5nIGxhdGVzdCByZXBvc2l0b3J5IHJldmlzaW9uIGFuZCByZXBvLXBh
dGhzCisjIChnZXR0aW5nIHRoZW0gaXMgc2xvdyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0
aW9ucykKKyMKKyMgWFhYIG1ha2UgbXQtc2FmZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIGNhY2hlOgorICAgIHBy
b3BsaXN0ID0ge30KKyAgICBpbmZvID0ge30KKyAgICBlbnRyaWVzID0ge30KKyAgICBwcm9wID0g
e30KKworY2xhc3MgUmVwb0VudHJ5OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIHJldiwg
dGltZXN0YW1wKToKKyAgICAgICAgc2VsZi51cmwgPSB1cmwKKyAgICAgICAgc2VsZi5yZXYgPSBy
ZXYKKyAgICAgICAgc2VsZi50aW1lc3RhbXAgPSB0aW1lc3RhbXAKKworICAgIGRlZiBfX3N0cl9f
KHNlbGYpOgorICAgICAgICByZXR1cm4gInJlcG86ICVzOyVzICAlcyIgJShzZWxmLnVybCwgc2Vs
Zi5yZXYsIHNlbGYudGltZXN0YW1wKQorCitjbGFzcyBSZXBvQ2FjaGU6CisgICAgIiIiIFRoZSBS
ZXBvY2FjaGUgbWFuYWdlcyBkaXNjb3ZlcmVkIHJlcG9zaXRvcnkgcGF0aHMKKyAgICBhbmQgdGhl
aXIgcmV2aXNpb25zLiAgSWYgaW5zaWRlIGEgdGltZW91dCB0aGUgY2FjaGUKKyAgICB3aWxsIGV2
ZW4gcmV0dXJuIHRoZSByZXZpc2lvbiBvZiB0aGUgcm9vdC4KKyAgICAiIiIKKyAgICB0aW1lb3V0
ID0gMjAgIyBzZWNvbmRzIGFmdGVyIHdoaWNoIHdlIGZvcmdldCB0aGF0IHdlIGtub3cgdGhlIGxh
c3QgcmV2aXNpb24KKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXBv
cyA9IFtdCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYucmVwb3MgPSBbXQor
CisgICAgZGVmIHB1dChzZWxmLCB1cmwsIHJldiwgdGltZXN0YW1wPU5vbmUpOgorICAgICAgICBp
ZiByZXYgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiB0aW1lc3RhbXAg
aXMgTm9uZToKKyAgICAgICAgICAgIHRpbWVzdGFtcCA9IHRpbWUudGltZSgpCisKKyAgICAgICAg
Zm9yIGVudHJ5IGluIHNlbGYucmVwb3M6CisgICAgICAgICAgICBpZiB1cmwgPT0gZW50cnkudXJs
OgorICAgICAgICAgICAgICAgIGVudHJ5LnRpbWVzdGFtcCA9IHRpbWVzdGFtcAorICAgICAgICAg
ICAgICAgIGVudHJ5LnJldiA9IHJldgorICAgICAgICAgICAgICAgICNwcmludCAic2V0IHJlcG8i
LCBlbnRyeQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBlbnRyeSA9IFJlcG9FbnRyeSh1cmwsIHJldiwgdGltZXN0YW1wKQorICAgICAgICAgICAgc2Vs
Zi5yZXBvcy5hcHBlbmQoZW50cnkpCisgICAgICAgICAgICAjcHJpbnQgImFwcGVuZGVkIHJlcG8i
LCBlbnRyeQorCisgICAgZGVmIGdldChzZWxmLCB1cmwpOgorICAgICAgICBub3cgPSB0aW1lLnRp
bWUoKQorICAgICAgICBmb3IgZW50cnkgaW4gc2VsZi5yZXBvczoKKyAgICAgICAgICAgIGlmIHVy
bC5zdGFydHN3aXRoKGVudHJ5LnVybCk6CisgICAgICAgICAgICAgICAgaWYgbm93IDwgZW50cnku
dGltZXN0YW1wICsgc2VsZi50aW1lb3V0OgorICAgICAgICAgICAgICAgICAgICAjcHJpbnQgInJl
dHVybmluZyBpbW1lZGlhdGUgRXRybnkiLCBlbnRyeQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZW50cnkudXJsLCBlbnRyeS5yZXYKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkudXJs
LCAtMQorICAgICAgICByZXR1cm4gdXJsLCAtMQorCityZXBvc2l0b3JpZXMgPSBSZXBvQ2FjaGUo
KQorCisKKyMgc3ZuIHN1cHBvcnQgY29kZQorCitBTExPV0VEX0NIQVJTID0gIl8gLS9cXD0kLn4r
JSIgI2FkZCBjaGFyYWN0ZXJzIGFzIG5lY2Vzc2FyeSB3aGVuIHRlc3RlZAoraWYgc3lzLnBsYXRm
b3JtID09ICJ3aW4zMiI6CisgICAgQUxMT1dFRF9DSEFSUyArPSAiOiIKK0FMTE9XRURfQ0hBUlNf
SE9TVCA9IEFMTE9XRURfQ0hBUlMgKyAnQDonCisKK2RlZiBfZ2V0c3ZudmVyc2lvbih2ZXI9W10p
OgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHZlclswXQorICAgIGV4Y2VwdCBJbmRleEVycm9y
OgorICAgICAgICB2ID0gcHkucHJvY2Vzcy5jbWRleGVjKCJzdm4gLXEgLS12ZXJzaW9uIikKKyAg
ICAgICAgdi5zdHJpcCgpCisgICAgICAgIHYgPSAnLicuam9pbih2LnNwbGl0KCcuJylbOjJdKQor
ICAgICAgICB2ZXIuYXBwZW5kKHYpCisgICAgICAgIHJldHVybiB2CisKK2RlZiBfZXNjYXBlX2hl
bHBlcih0ZXh0KToKKyAgICB0ZXh0ID0gc3RyKHRleHQpCisgICAgaWYgc3lzLnBsYXRmb3JtICE9
ICd3aW4zMic6CisgICAgICAgIHRleHQgPSBzdHIodGV4dCkucmVwbGFjZSgnJCcsICdcXCQnKQor
ICAgIHJldHVybiB0ZXh0CisKK2RlZiBfY2hlY2tfZm9yX2JhZF9jaGFycyh0ZXh0LCBhbGxvd2Vk
X2NoYXJzPUFMTE9XRURfQ0hBUlMpOgorICAgIGZvciBjIGluIHN0cih0ZXh0KToKKyAgICAgICAg
aWYgYy5pc2FsbnVtKCk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBjIGluIGFs
bG93ZWRfY2hhcnM6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgIHJldHVybiBGYWxzZQorCitkZWYgY2hlY2tiYWRjaGFycyh1cmwpOgorICAgICMgKGhwaykg
bm90IHF1aXRlIHN1cmUgYWJvdXQgdGhlIGV4YWN0IHB1cnBvc2UsIGd1aWRvIHcuPworICAgIHBy
b3RvLCB1cmkgPSB1cmwuc3BsaXQoIjovLyIsIDEpCisgICAgaWYgcHJvdG8gIT0gImZpbGUiOgor
ICAgICAgICBob3N0LCB1cmlwYXRoID0gdXJpLnNwbGl0KCcvJywgMSkKKyAgICAgICAgIyBvbmx5
IGNoZWNrIGZvciBiYWQgY2hhcnMgaW4gdGhlIG5vbi1wcm90b2NvbCBwYXJ0cworICAgICAgICBp
ZiAoX2NoZWNrX2Zvcl9iYWRfY2hhcnMoaG9zdCwgQUxMT1dFRF9DSEFSU19IT1NUKSBcCisgICAg
ICAgICAgICBvciBfY2hlY2tfZm9yX2JhZF9jaGFycyh1cmlwYXRoLCBBTExPV0VEX0NIQVJTKSk6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYWQgY2hhciBpbiAlciIgJSAodXJsLCAp
KQorCisKKyNfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KKworY2xhc3MgU3ZuUGF0aEJhc2UoY29tbW9uLlBhdGhCYXNlKToKKyAg
ICAiIiIgQmFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgU3ZuUGF0aCBpbXBsZW1lbnRhdGlvbnMuICIi
IgorICAgIHNlcCA9ICcvJworCisgICAgZGVmIF9nZXR1cmwoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLnN0cnBhdGgKKyAgICB1cmwgPSBwcm9wZXJ0eShfZ2V0dXJsLCBOb25lLCBOb25lLCAi
dXJsIG9mIHRoaXMgc3ZuLXBhdGguIikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAg
ICAiIiIgcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIChpbmNsdWRpbmcgcmV2LW51bWJl
cikgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnN0cnBhdGgKKworICAgIGRlZiBfX2hhc2hfXyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5zdHJwYXRoKQorCisgICAgZGVmIG5ldyhz
ZWxmLCAqKmt3KToKKyAgICAgICAgIiIiIGNyZWF0ZSBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhp
cyBwYXRoLiBBICdyZXYnIGFyZ3VtZW50CisgICAgICAgICAgICBpbmRpY2F0ZXMgYSBuZXcgcmV2
aXNpb24uCisgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGtleXdvcmQgYXJndW1lbnRzIG1vZGlm
eSB2YXJpb3VzIHBhdGggcGFydHM6OgorCisgICAgICAgICAgICAgIGh0dHA6Ly9ob3N0LmNvbS9y
ZXBvL3BhdGgvZmlsZS5leHQKKyAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
fCAgICAgICAgICBkaXJuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfC0tLS0tLXwgYmFzZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8LS18ICAgICBwdXJlYmFzZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfC0tfCBleHQKKyAgICAgICAgIiIiCisgICAgICAgIG9iaiA9IG9iamVj
dC5fX25ld19fKHNlbGYuX19jbGFzc19fKQorICAgICAgICBvYmoucmV2ID0ga3cuZ2V0KCdyZXYn
LCBzZWxmLnJldikKKyAgICAgICAgb2JqLmF1dGggPSBrdy5nZXQoJ2F1dGgnLCBzZWxmLmF1dGgp
CisgICAgICAgIGRpcm5hbWUsIGJhc2VuYW1lLCBwdXJlYmFzZW5hbWUsIGV4dCA9IHNlbGYuX2dl
dGJ5c3BlYygKKyAgICAgICAgICAgICAiZGlybmFtZSxiYXNlbmFtZSxwdXJlYmFzZW5hbWUsZXh0
IikKKyAgICAgICAgaWYgJ2Jhc2VuYW1lJyBpbiBrdzoKKyAgICAgICAgICAgIGlmICdwdXJlYmFz
ZW5hbWUnIGluIGt3IG9yICdleHQnIGluIGt3OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoImludmFsaWQgc3BlY2lmaWNhdGlvbiAlciIgJSBrdykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHBiID0ga3cuc2V0ZGVmYXVsdCgncHVyZWJhc2VuYW1lJywgcHVyZWJhc2VuYW1l
KQorICAgICAgICAgICAgZXh0ID0ga3cuc2V0ZGVmYXVsdCgnZXh0JywgZXh0KQorICAgICAgICAg
ICAgaWYgZXh0IGFuZCBub3QgZXh0LnN0YXJ0c3dpdGgoJy4nKToKKyAgICAgICAgICAgICAgICBl
eHQgPSAnLicgKyBleHQKKyAgICAgICAgICAgIGt3WydiYXNlbmFtZSddID0gcGIgKyBleHQKKwor
ICAgICAgICBrdy5zZXRkZWZhdWx0KCdkaXJuYW1lJywgZGlybmFtZSkKKyAgICAgICAga3cuc2V0
ZGVmYXVsdCgnc2VwJywgc2VsZi5zZXApCisgICAgICAgIGlmIGt3WydiYXNlbmFtZSddOgorICAg
ICAgICAgICAgb2JqLnN0cnBhdGggPSAiJShkaXJuYW1lKXMlKHNlcClzJShiYXNlbmFtZSlzIiAl
IGt3CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvYmouc3RycGF0aCA9ICIlKGRpcm5hbWUp
cyIgJSBrdworICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgX2dldGJ5c3BlYyhzZWxmLCBz
cGVjKToKKyAgICAgICAgIiIiIGdldCBzcGVjaWZpZWQgcGFydHMgb2YgdGhlIHBhdGguICAnYXJn
JyBpcyBhIHN0cmluZworICAgICAgICAgICAgd2l0aCBjb21tYSBzZXBhcmF0ZWQgcGF0aCBwYXJ0
cy4gVGhlIHBhcnRzIGFyZSByZXR1cm5lZAorICAgICAgICAgICAgaW4gZXhhY3RseSB0aGUgb3Jk
ZXIgb2YgdGhlIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgICAgIHlvdSBtYXkgc3BlY2lmeSB0
aGUgZm9sbG93aW5nIHBhcnRzOgorCisgICAgICAgICAgICBodHRwOi8vaG9zdC5jb20vcmVwby9w
YXRoL2ZpbGUuZXh0CisgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICAgICAg
ICAgIGRpcm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC0tLS0t
LXwgYmFzZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC0tfCAg
ICAgcHVyZWJhc2VuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8LS18IGV4dAorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgcGFydHMg
PSBzZWxmLnN0cnBhdGguc3BsaXQoc2VsZi5zZXApCisgICAgICAgIGZvciBuYW1lIGluIHNwZWMu
c3BsaXQoJywnKToKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN0cmlwKCkKKyAgICAgICAgICAg
IGlmIG5hbWUgPT0gJ2Rpcm5hbWUnOgorICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoc2VsZi5z
ZXAuam9pbihwYXJ0c1s6LTFdKSkKKyAgICAgICAgICAgIGVsaWYgbmFtZSA9PSAnYmFzZW5hbWUn
OgorICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQocGFydHNbLTFdKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBiYXNlbmFtZSA9IHBhcnRzWy0xXQorICAgICAgICAgICAgICAg
IGkgPSBiYXNlbmFtZS5yZmluZCgnLicpCisgICAgICAgICAgICAgICAgaWYgaSA9PSAtMToKKyAg
ICAgICAgICAgICAgICAgICAgcHVyZWJhc2VuYW1lLCBleHQgPSBiYXNlbmFtZSwgJycKKyAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwdXJlYmFzZW5hbWUsIGV4dCA9
IGJhc2VuYW1lWzppXSwgYmFzZW5hbWVbaTpdCisgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAn
cHVyZWJhc2VuYW1lJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChwdXJlYmFzZW5h
bWUpCisgICAgICAgICAgICAgICAgZWxpZiBuYW1lID09ICdleHQnOgorICAgICAgICAgICAgICAg
ICAgICByZXMuYXBwZW5kKGV4dCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICByYWlzZSBOYW1lRXJyb3IoIkRvbid0IGtub3cgcGFydCAlciIgJSBuYW1lKQorICAg
ICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAg
IiIiIHJldHVybiB0cnVlIGlmIHBhdGggYW5kIHJldiBhdHRyaWJ1dGVzIGVhY2ggbWF0Y2ggIiIi
CisgICAgICAgIHJldHVybiAoc3RyKHNlbGYpID09IHN0cihvdGhlcikgYW5kCisgICAgICAgICAg
ICAgICAoc2VsZi5yZXYgPT0gb3RoZXIucmV2IG9yIHNlbGYucmV2ID09IG90aGVyLnJldikpCisK
KyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmID09
IG90aGVyCisKKyAgICBkZWYgam9pbihzZWxmLCAqYXJncyk6CisgICAgICAgICIiIiByZXR1cm4g
YSBuZXcgUGF0aCAod2l0aCB0aGUgc2FtZSByZXZpc2lvbikgd2hpY2ggaXMgY29tcG9zZWQKKyAg
ICAgICAgICAgIG9mIHRoZSBzZWxmIFBhdGggZm9sbG93ZWQgYnkgJ2FyZ3MnIHBhdGggY29tcG9u
ZW50cy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYKKworICAgICAgICBhcmdzID0gdHVwbGUoW2FyZy5zdHJpcChzZWxmLnNlcCkgZm9y
IGFyZyBpbiBhcmdzXSkKKyAgICAgICAgcGFydHMgPSAoc2VsZi5zdHJwYXRoLCApICsgYXJncwor
ICAgICAgICBuZXdwYXRoID0gc2VsZi5fX2NsYXNzX18oc2VsZi5zZXAuam9pbihwYXJ0cyksIHNl
bGYucmV2LCBzZWxmLmF1dGgpCisgICAgICAgIHJldHVybiBuZXdwYXRoCisKKyAgICBkZWYgcHJv
cGdldChzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgY29udGVudCBvZiB0aGUg
Z2l2ZW4gcHJvcGVydHkuICIiIgorICAgICAgICB2YWx1ZSA9IHNlbGYuX3Byb3BnZXQobmFtZSkK
KyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgcHJvcGxpc3Qoc2VsZik6CisgICAgICAg
ICIiIiBsaXN0IGFsbCBwcm9wZXJ0eSBuYW1lcy4gIiIiCisgICAgICAgIGNvbnRlbnQgPSBzZWxm
Ll9wcm9wbGlzdCgpCisgICAgICAgIHJldHVybiBjb250ZW50CisKKyAgICBkZWYgc2l6ZShzZWxm
KToKKyAgICAgICAgIiIiIFJldHVybiB0aGUgc2l6ZSBvZiB0aGUgZmlsZSBjb250ZW50IG9mIHRo
ZSBQYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuaW5mbygpLnNpemUKKworICAgIGRlZiBt
dGltZShzZWxmKToKKyAgICAgICAgIiIiIFJldHVybiB0aGUgbGFzdCBtb2RpZmljYXRpb24gdGlt
ZSBvZiB0aGUgZmlsZS4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLmluZm8oKS5tdGltZQorCisg
ICAgIyBzaGFyZWQgaGVscCBtZXRob2RzCisKKyAgICBkZWYgX2VzY2FwZShzZWxmLCBjbWQpOgor
ICAgICAgICByZXR1cm4gX2VzY2FwZV9oZWxwZXIoY21kKQorCisKKyAgICAjZGVmIF9jaGlsZG1h
eHJldihzZWxmKToKKyAgICAjICAgICIiIiByZXR1cm4gbWF4aW11bSByZXZpc2lvbiBudW1iZXIg
b2YgY2hpbGRzIChvciBzZWxmLnJldiBpZiBubyBjaGlsZHMpICIiIgorICAgICMgICAgcmV2ID0g
c2VsZi5yZXYKKyAgICAjICAgIGZvciBuYW1lLCBpbmZvIGluIHNlbGYuX2xpc3RkaXJfbmFtZWlu
Zm8oKToKKyAgICAjICAgICAgICByZXYgPSBtYXgocmV2LCBpbmZvLmNyZWF0ZWRfcmV2KQorICAg
ICMgICAgcmV0dXJuIHJldgorCisgICAgI2RlZiBfZ2V0bGF0ZXN0cmV2aXNpb24oc2VsZik6Cisg
ICAgIyAgICAiIiIgcmV0dXJuIGxhdGVzdCByZXBvLXJldmlzaW9uIGZvciB0aGlzIHBhdGguICIi
IgorICAgICMgICAgdXJsID0gc2VsZi5zdHJwYXRoCisgICAgIyAgICBwYXRoID0gc2VsZi5fX2Ns
YXNzX18odXJsLCBOb25lKQorICAgICMKKyAgICAjICAgICMgd2UgbmVlZCBhIGxvbmcgd2FsayB0
byBmaW5kIHRoZSByb290LXJlcG8gYW5kIHJldmlzaW9uCisgICAgIyAgICB3aGlsZSAxOgorICAg
ICMgICAgICAgIHRyeToKKyAgICAjICAgICAgICAgICAgcmV2ID0gbWF4KHJldiwgcGF0aC5fY2hp
bGRtYXhyZXYoKSkKKyAgICAjICAgICAgICAgICAgcHJldmlvdXMgPSBwYXRoCisgICAgIyAgICAg
ICAgICAgIHBhdGggPSBwYXRoLmRpcnBhdGgoKQorICAgICMgICAgICAgIGV4Y2VwdCAoSU9FcnJv
ciwgcHJvY2Vzcy5jbWRleGVjLkVycm9yKToKKyAgICAjICAgICAgICAgICAgYnJlYWsKKyAgICAj
ICAgIGlmIHJldiBpcyBOb25lOgorICAgICMgICAgICAgIHJhaXNlIElPRXJyb3IsICJjb3VsZCBu
b3QgZGV0ZXJtaW5lIG5ld2VzdCByZXBvIHJldmlzaW9uIGZvciAlcyIgJSBzZWxmCisgICAgIyAg
ICByZXR1cm4gcmV2CisKKyAgICBjbGFzcyBDaGVja2Vycyhjb21tb24uQ2hlY2tlcnMpOgorICAg
ICAgICBkZWYgZGlyKHNlbGYpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJl
dHVybiBzZWxmLnBhdGguaW5mbygpLmtpbmQgPT0gJ2RpcicKKyAgICAgICAgICAgIGV4Y2VwdCBw
eS5lcnJvci5FcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbGlzdGRpcndvcmtz
KCkKKworICAgICAgICBkZWYgX2xpc3RkaXJ3b3JrcyhzZWxmKToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBzZWxmLnBhdGgubGlzdGRpcigpCisgICAgICAgICAgICBleGNlcHQg
cHkuZXJyb3IuRU5PRU5UOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGRlZiBmaWxl
KHNlbGYpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBh
dGguaW5mbygpLmtpbmQgPT0gJ2ZpbGUnCisgICAgICAgICAgICBleGNlcHQgcHkuZXJyb3IuRU5P
RU5UOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGRlZiBleGlzdHMo
c2VsZik6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGF0
aC5pbmZvKCkKKyAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9FTlQ6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX2xpc3RkaXJ3b3JrcygpCisKK2RlZiBwYXJzZV9hcHJfdGltZSh0
aW1lc3RyKToKKyAgICBpID0gdGltZXN0ci5yZmluZCgnLicpCisgICAgaWYgaSA9PSAtMToKKyAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90IHBhcnNlICVzIiAlIHRpbWVzdHIpCisg
ICAgdGltZXN0ciA9IHRpbWVzdHJbOmldCisgICAgcGFyc2VkdGltZSA9IHRpbWUuc3RycHRpbWUo
dGltZXN0ciwgIiVZLSVtLSVkVCVIOiVNOiVTIikKKyAgICByZXR1cm4gdGltZS5ta3RpbWUocGFy
c2VkdGltZSkKKworY2xhc3MgUHJvcExpc3REaWN0KGRpY3QpOgorICAgICIiIiBhIERpY3Rpb25h
cnkgd2hpY2ggZmV0Y2hlcyB2YWx1ZXMgKEluZm9Tdm5Db21tYW5kIGluc3RhbmNlcykgbGF6aWx5
IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGtleW5hbWVzKToKKyAgICAgICAgZGlj
dC5fX2luaXRfXyhzZWxmLCBbKHgsIE5vbmUpIGZvciB4IGluIGtleW5hbWVzXSkKKyAgICAgICAg
c2VsZi5wYXRoID0gcGF0aAorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAg
ICAgIHZhbHVlID0gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisgICAgICAgIGlmIHZhbHVl
IGlzIE5vbmU6CisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYucGF0aC5wcm9wZ2V0KGtleSkKKyAg
ICAgICAgICAgIGRpY3QuX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSkKKyAgICAgICAgcmV0
dXJuIHZhbHVlCisKK2RlZiBmaXhsb2NhbGUoKToKKyAgICBpZiBzeXMucGxhdGZvcm0gIT0gJ3dp
bjMyJzoKKyAgICAgICAgcmV0dXJuICdMQ19BTEw9QyAnCisgICAgcmV0dXJuICcnCisKKyMgc29t
ZSBuYXN0eSBjaHVuayBvZiBjb2RlIHRvIHNvbHZlIHBhdGggYW5kIHVybCBjb252ZXJzaW9uIGFu
ZCBxdW90aW5nIGlzc3VlcworSUxMRUdBTF9DSEFSUyA9ICcqIHwgXFwgLyA6IDwgPiA/IFx0IFxu
IFx4MGIgXHgwYyBccicuc3BsaXQoJyAnKQoraWYgb3Muc2VwIGluIElMTEVHQUxfQ0hBUlM6Cisg
ICAgSUxMRUdBTF9DSEFSUy5yZW1vdmUob3Muc2VwKQorSVNXSU5ET1dTID0gc3lzLnBsYXRmb3Jt
ID09ICd3aW4zMicKK19yZWdfYWxsb3dfZGlzayA9IHJlLmNvbXBpbGUocideKFthLXpdXDpcXCk/
W146XSskJywgcmUuSSkKK2RlZiBfY2hlY2tfcGF0aChwYXRoKToKKyAgICBpbGxlZ2FsID0gSUxM
RUdBTF9DSEFSU1s6XQorICAgIHNwID0gcGF0aC5zdHJwYXRoCisgICAgaWYgSVNXSU5ET1dTOgor
ICAgICAgICBpbGxlZ2FsLnJlbW92ZSgnOicpCisgICAgICAgIGlmIG5vdCBfcmVnX2FsbG93X2Rp
c2subWF0Y2goc3ApOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncGF0aCBtYXkgbm90
IGNvbnRhaW4gYSBjb2xvbiAoOiknKQorICAgIGZvciBjaGFyIGluIHNwOgorICAgICAgICBpZiBj
aGFyIG5vdCBpbiBzdHJpbmcucHJpbnRhYmxlIG9yIGNoYXIgaW4gaWxsZWdhbDoKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2lsbGVnYWwgY2hhcmFjdGVyICVyIGluIHBhdGgnICUgKGNo
YXIsKSkKKworZGVmIHBhdGhfdG9fZnNwYXRoKHBhdGgsIGFkZGF0PVRydWUpOgorICAgIF9jaGVj
a19wYXRoKHBhdGgpCisgICAgc3AgPSBwYXRoLnN0cnBhdGgKKyAgICBpZiBhZGRhdCBhbmQgcGF0
aC5yZXYgIT0gLTE6CisgICAgICAgIHNwID0gJyVzQCVzJyAlIChzcCwgcGF0aC5yZXYpCisgICAg
ZWxpZiBhZGRhdDoKKyAgICAgICAgc3AgPSAnJXNASEVBRCcgJSAoc3AsKQorICAgIHJldHVybiBz
cAorCitkZWYgdXJsX2Zyb21fcGF0aChwYXRoKToKKyAgICBmc3BhdGggPSBwYXRoX3RvX2ZzcGF0
aChwYXRoLCBGYWxzZSkKKyAgICBmcm9tIHVybGxpYiBpbXBvcnQgcXVvdGUKKyAgICBpZiBJU1dJ
TkRPV1M6CisgICAgICAgIG1hdGNoID0gX3JlZ19hbGxvd19kaXNrLm1hdGNoKGZzcGF0aCkKKyAg
ICAgICAgZnNwYXRoID0gZnNwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQorICAgICAgICBpZiBtYXRj
aC5ncm91cCgxKToKKyAgICAgICAgICAgIGZzcGF0aCA9ICcvJXMlcycgJSAobWF0Y2guZ3JvdXAo
MSkucmVwbGFjZSgnXFwnLCAnLycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBx
dW90ZShmc3BhdGhbbGVuKG1hdGNoLmdyb3VwKDEpKTpdKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGZzcGF0aCA9IHF1b3RlKGZzcGF0aCkKKyAgICBlbHNlOgorICAgICAgICBmc3BhdGgg
PSBxdW90ZShmc3BhdGgpCisgICAgaWYgcGF0aC5yZXYgIT0gLTE6CisgICAgICAgIGZzcGF0aCA9
ICclc0AlcycgJSAoZnNwYXRoLCBwYXRoLnJldikKKyAgICBlbHNlOgorICAgICAgICBmc3BhdGgg
PSAnJXNASEVBRCcgJSAoZnNwYXRoLCkKKyAgICByZXR1cm4gJ2ZpbGU6Ly8lcycgJSAoZnNwYXRo
LCkKKworY2xhc3MgU3ZuQXV0aChvYmplY3QpOgorICAgICIiIiBjb250YWluZXIgZm9yIGF1dGgg
aW5mb3JtYXRpb24gZm9yIFN1YnZlcnNpb24gIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVz
ZXJuYW1lLCBwYXNzd29yZCwgY2FjaGVfYXV0aD1UcnVlLCBpbnRlcmFjdGl2ZT1UcnVlKToKKyAg
ICAgICAgc2VsZi51c2VybmFtZSA9IHVzZXJuYW1lCisgICAgICAgIHNlbGYucGFzc3dvcmQgPSBw
YXNzd29yZAorICAgICAgICBzZWxmLmNhY2hlX2F1dGggPSBjYWNoZV9hdXRoCisgICAgICAgIHNl
bGYuaW50ZXJhY3RpdmUgPSBpbnRlcmFjdGl2ZQorCisgICAgZGVmIG1ha2VjbWRvcHRpb25zKHNl
bGYpOgorICAgICAgICB1bmFtZSA9IHNlbGYudXNlcm5hbWUucmVwbGFjZSgnIicsICdcXCInKQor
ICAgICAgICBwYXNzd2QgPSBzZWxmLnBhc3N3b3JkLnJlcGxhY2UoJyInLCAnXFwiJykKKyAgICAg
ICAgcmV0ID0gW10KKyAgICAgICAgaWYgdW5hbWU6CisgICAgICAgICAgICByZXQuYXBwZW5kKCct
LXVzZXJuYW1lPSIlcyInICUgKHVuYW1lLCkpCisgICAgICAgIGlmIHBhc3N3ZDoKKyAgICAgICAg
ICAgIHJldC5hcHBlbmQoJy0tcGFzc3dvcmQ9IiVzIicgJSAocGFzc3dkLCkpCisgICAgICAgIGlm
IG5vdCBzZWxmLmNhY2hlX2F1dGg6CisgICAgICAgICAgICByZXQuYXBwZW5kKCctLW5vLWF1dGgt
Y2FjaGUnKQorICAgICAgICBpZiBub3Qgc2VsZi5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHJl
dC5hcHBlbmQoJy0tbm9uLWludGVyYWN0aXZlJykKKyAgICAgICAgcmV0dXJuICcgJy5qb2luKHJl
dCkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxTdm5BdXRoIHVz
ZXJuYW1lPSVzIC4uLj4iICUoc2VsZi51c2VybmFtZSwpCisKK3JleF9ibGFtZSA9IHJlLmNvbXBp
bGUocidccyooXGQrKVxzKihcUyspICguKiknKQorCitjbGFzcyBTdm5XQ0NvbW1hbmRQYXRoKGNv
bW1vbi5QYXRoQmFzZSk6CisgICAgIiIiIHBhdGggaW1wbGVtZW50YXRpb24gb2ZmZXJpbmcgYWNj
ZXNzL21vZGlmaWNhdGlvbiB0byBzdm4gd29ya2luZyBjb3BpZXMuCisgICAgICAgIEl0IGhhcyBt
ZXRob2RzIHNpbWlsYXIgdG8gdGhlIGZ1bmN0aW9ucyBpbiBvcy5wYXRoIGFuZCBzaW1pbGFyIHRv
IHRoZQorICAgICAgICBjb21tYW5kcyBvZiB0aGUgc3ZuIGNsaWVudC4KKyAgICAiIiIKKyAgICBz
ZXAgPSBvcy5zZXAKKworICAgIGRlZiBfX25ld19fKGNscywgd2NwYXRoPU5vbmUsIGF1dGg9Tm9u
ZSk6CisgICAgICAgIHNlbGYgPSBvYmplY3QuX19uZXdfXyhjbHMpCisgICAgICAgIGlmIGlzaW5z
dGFuY2Uod2NwYXRoLCBjbHMpOgorICAgICAgICAgICAgaWYgd2NwYXRoLl9fY2xhc3NfXyA9PSBj
bHM6CisgICAgICAgICAgICAgICAgcmV0dXJuIHdjcGF0aAorICAgICAgICAgICAgd2NwYXRoID0g
d2NwYXRoLmxvY2FscGF0aAorICAgICAgICBpZiBfY2hlY2tfZm9yX2JhZF9jaGFycyhzdHIod2Nw
YXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMTE9XRURf
Q0hBUlMpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYmFkIGNoYXIgaW4gd2NwYXRo
ICVzIiAlICh3Y3BhdGgsICkpCisgICAgICAgIHNlbGYubG9jYWxwYXRoID0gcHkucGF0aC5sb2Nh
bCh3Y3BhdGgpCisgICAgICAgIHNlbGYuYXV0aCA9IGF1dGgKKyAgICAgICAgcmV0dXJuIHNlbGYK
KworICAgIHN0cnBhdGggPSBwcm9wZXJ0eShsYW1iZGEgeDogc3RyKHgubG9jYWxwYXRoKSwgTm9u
ZSwgTm9uZSwgInN0cmluZyBwYXRoIikKKyAgICByZXYgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5p
bmZvKHVzZWNhY2hlPTApLnJldiwgTm9uZSwgTm9uZSwgInJldmlzaW9uIikKKworICAgIGRlZiBf
X2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi5sb2NhbHBhdGggPT0gZ2V0
YXR0cihvdGhlciwgJ2xvY2FscGF0aCcsIE5vbmUpCisKKyAgICBkZWYgX2dldHVybChzZWxmKToK
KyAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX3VybCcsIE5vbmUpIGlzIE5vbmU6CisgICAgICAg
ICAgICBpbmZvID0gc2VsZi5pbmZvKCkKKyAgICAgICAgICAgIHNlbGYuX3VybCA9IGluZm8udXJs
ICNTdm5QYXRoKGluZm8udXJsLCBpbmZvLnJldikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
c2VsZi5fdXJsLCBweS5idWlsdGluLl9iYXNlc3RyaW5nKQorICAgICAgICByZXR1cm4gc2VsZi5f
dXJsCisKKyAgICB1cmwgPSBwcm9wZXJ0eShfZ2V0dXJsLCBOb25lLCBOb25lLCAidXJsIG9mIHRo
aXMgV0MgaXRlbSIpCisKKyAgICBkZWYgX2VzY2FwZShzZWxmLCBjbWQpOgorICAgICAgICByZXR1
cm4gX2VzY2FwZV9oZWxwZXIoY21kKQorCisgICAgZGVmIGR1bXAoc2VsZiwgb2JqKToKKyAgICAg
ICAgIiIiIHBpY2tsZSBvYmplY3QgaW50byBwYXRoIGxvY2F0aW9uIiIiCisgICAgICAgIHJldHVy
biBzZWxmLmxvY2FscGF0aC5kdW1wKG9iaikKKworICAgIGRlZiBzdm51cmwoc2VsZik6CisgICAg
ICAgICIiIiByZXR1cm4gY3VycmVudCBTdm5QYXRoIGZvciB0aGlzIFdDLWl0ZW0uICIiIgorICAg
ICAgICBpbmZvID0gc2VsZi5pbmZvKCkKKyAgICAgICAgcmV0dXJuIHB5LnBhdGguc3ZudXJsKGlu
Zm8udXJsKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gInN2bndj
KCVyKSIgJSAoc2VsZi5zdHJwYXRoKSAjICwgc2VsZi5fdXJsKQorCisgICAgZGVmIF9fc3RyX18o
c2VsZik6CisgICAgICAgIHJldHVybiBzdHIoc2VsZi5sb2NhbHBhdGgpCisKKyAgICBkZWYgX21h
a2VhdXRob3B0aW9ucyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5hdXRoIGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gJycKKyAgICAgICAgcmV0dXJuIHNlbGYuYXV0aC5tYWtlY21kb3B0aW9u
cygpCisKKyAgICBkZWYgX2F1dGhzdm4oc2VsZiwgY21kLCBhcmdzPU5vbmUpOgorICAgICAgICBh
cmdzID0gYXJncyBhbmQgbGlzdChhcmdzKSBvciBbXQorICAgICAgICBhcmdzLmFwcGVuZChzZWxm
Ll9tYWtlYXV0aG9wdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3N2bihjbWQsICphcmdz
KQorCisgICAgZGVmIF9zdm4oc2VsZiwgY21kLCAqYXJncyk6CisgICAgICAgIGwgPSBbJ3N2biAl
cycgJSBjbWRdCisgICAgICAgIGFyZ3MgPSBbc2VsZi5fZXNjYXBlKGl0ZW0pIGZvciBpdGVtIGlu
IGFyZ3NdCisgICAgICAgIGwuZXh0ZW5kKGFyZ3MpCisgICAgICAgIGwuYXBwZW5kKCciJXMiJyAl
IHNlbGYuX2VzY2FwZShzZWxmLnN0cnBhdGgpKQorICAgICAgICAjIHRyeSBmaXhpbmcgdGhlIGxv
Y2FsZSBiZWNhdXNlIHdlIGNhbid0IG90aGVyd2lzZSBwYXJzZQorICAgICAgICBzdHJpbmcgPSBm
aXhsb2NhbGUoKSArICIgIi5qb2luKGwpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBrZXkgPSAnTENfTUVTU0FHRVMnCisgICAgICAgICAgICAgICAgaG9s
ZCA9IG9zLmVudmlyb24uZ2V0KGtleSkKKyAgICAgICAgICAgICAgICBvcy5lbnZpcm9uW2tleV0g
PSAnQycKKyAgICAgICAgICAgICAgICBvdXQgPSBweS5wcm9jZXNzLmNtZGV4ZWMoc3RyaW5nKQor
ICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiBob2xkOgorICAgICAgICAg
ICAgICAgICAgICBvcy5lbnZpcm9uW2tleV0gPSBob2xkCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgZGVsIG9zLmVudmlyb25ba2V5XQorICAgICAgICBleGNlcHQg
cHkucHJvY2Vzcy5jbWRleGVjLkVycm9yOgorICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygp
WzFdCisgICAgICAgICAgICBzdHJlcnIgPSBlLmVyci5sb3dlcigpCisgICAgICAgICAgICBpZiBz
dHJlcnIuZmluZCgnbm90IGZvdW5kJykgIT0gLTE6CisgICAgICAgICAgICAgICAgcmFpc2UgcHku
ZXJyb3IuRU5PRU5UKHNlbGYpCisgICAgICAgICAgICBlbGlmIHN0cmVyci5maW5kKCJFMjAwMDA5
OiIpICE9IC0xOgorICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmKQor
ICAgICAgICAgICAgaWYgKHN0cmVyci5maW5kKCdmaWxlIGV4aXN0cycpICE9IC0xIG9yCisgICAg
ICAgICAgICAgICAgc3RyZXJyLmZpbmQoJ2ZpbGUgYWxyZWFkeSBleGlzdHMnKSAhPSAtMSBvcgor
ICAgICAgICAgICAgICAgIHN0cmVyci5maW5kKCd3MTUwMDAyOicpICE9IC0xIG9yCisgICAgICAg
ICAgICAgICAgc3RyZXJyLmZpbmQoImNhbid0IGNyZWF0ZSBkaXJlY3RvcnkiKSAhPSAtMSk6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRUVYSVNUKHN0cmVycikgI3NlbGYpCisgICAg
ICAgICAgICByYWlzZQorICAgICAgICByZXR1cm4gb3V0CisKKyAgICBkZWYgc3dpdGNoKHNlbGYs
IHVybCk6CisgICAgICAgICIiIiBzd2l0Y2ggdG8gZ2l2ZW4gVVJMLiAiIiIKKyAgICAgICAgc2Vs
Zi5fYXV0aHN2bignc3dpdGNoJywgW3VybF0pCisKKyAgICBkZWYgY2hlY2tvdXQoc2VsZiwgdXJs
PU5vbmUsIHJldj1Ob25lKToKKyAgICAgICAgIiIiIGNoZWNrb3V0IGZyb20gdXJsIHRvIGxvY2Fs
IHdjcGF0aC4gIiIiCisgICAgICAgIGFyZ3MgPSBbXQorICAgICAgICBpZiB1cmwgaXMgTm9uZToK
KyAgICAgICAgICAgIHVybCA9IHNlbGYudXJsCisgICAgICAgIGlmIHJldiBpcyBOb25lIG9yIHJl
diA9PSAtMToKKyAgICAgICAgICAgIGlmIChzeXMucGxhdGZvcm0gIT0gJ3dpbjMyJyBhbmQKKyAg
ICAgICAgICAgICAgICAgICAgX2dldHN2bnZlcnNpb24oKSA9PSAnMS4zJyk6CisgICAgICAgICAg
ICAgICAgdXJsICs9ICJASEVBRCIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIF9nZXRz
dm52ZXJzaW9uKCkgPT0gJzEuMyc6CisgICAgICAgICAgICAgICAgdXJsICs9ICJAJWQiICUgcmV2
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctcicgKyBz
dHIocmV2KSkKKyAgICAgICAgYXJncy5hcHBlbmQodXJsKQorICAgICAgICBzZWxmLl9hdXRoc3Zu
KCdjbycsIGFyZ3MpCisKKyAgICBkZWYgdXBkYXRlKHNlbGYsIHJldj0nSEVBRCcsIGludGVyYWN0
aXZlPVRydWUpOgorICAgICAgICAiIiIgdXBkYXRlIHdvcmtpbmcgY29weSBpdGVtIHRvIGdpdmVu
IHJldmlzaW9uLiAoTm9uZSAtPiBIRUFEKS4gIiIiCisgICAgICAgIG9wdHMgPSBbJy1yJywgcmV2
XQorICAgICAgICBpZiBub3QgaW50ZXJhY3RpdmU6CisgICAgICAgICAgICBvcHRzLmFwcGVuZCgi
LS1ub24taW50ZXJhY3RpdmUiKQorICAgICAgICBzZWxmLl9hdXRoc3ZuKCd1cCcsIG9wdHMpCisK
KyAgICBkZWYgd3JpdGUoc2VsZiwgY29udGVudCwgbW9kZT0ndycpOgorICAgICAgICAiIiIgd3Jp
dGUgY29udGVudCBpbnRvIGxvY2FsIGZpbGVzeXN0ZW0gd2MuICIiIgorICAgICAgICBzZWxmLmxv
Y2FscGF0aC53cml0ZShjb250ZW50LCBtb2RlKQorCisgICAgZGVmIGRpcnBhdGgoc2VsZiwgKmFy
Z3MpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBkaXJlY3RvcnkgUGF0aCBvZiB0aGUgY3VycmVu
dCBQYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYubG9jYWxwYXRo
LmRpcnBhdGgoKmFyZ3MpLCBhdXRoPXNlbGYuYXV0aCkKKworICAgIGRlZiBfZW5zdXJlZGlycyhz
ZWxmKToKKyAgICAgICAgcGFyZW50ID0gc2VsZi5kaXJwYXRoKCkKKyAgICAgICAgaWYgcGFyZW50
LmNoZWNrKGRpcj0wKToKKyAgICAgICAgICAgIHBhcmVudC5fZW5zdXJlZGlycygpCisgICAgICAg
IGlmIHNlbGYuY2hlY2soZGlyPTApOgorICAgICAgICAgICAgc2VsZi5ta2RpcigpCisgICAgICAg
IHJldHVybiBzZWxmCisKKyAgICBkZWYgZW5zdXJlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgICIiIiBlbnN1cmUgdGhhdCBhbiBhcmdzLWpvaW5lZCBwYXRoIGV4aXN0cyAoYnkgZGVm
YXVsdCBhcworICAgICAgICAgICAgYSBmaWxlKS4gaWYgeW91IHNwZWNpZnkgYSBrZXl3b3JkIGFy
Z3VtZW50ICdkaXJlY3Rvcnk9VHJ1ZScKKyAgICAgICAgICAgIHRoZW4gdGhlIHBhdGggaXMgZm9y
Y2VkICB0byBiZSBhIGRpcmVjdG9yeSBwYXRoLgorICAgICAgICAiIiIKKyAgICAgICAgcCA9IHNl
bGYuam9pbigqYXJncykKKyAgICAgICAgaWYgcC5jaGVjaygpOgorICAgICAgICAgICAgaWYgcC5j
aGVjayh2ZXJzaW9uZWQ9RmFsc2UpOgorICAgICAgICAgICAgICAgIHAuYWRkKCkKKyAgICAgICAg
ICAgIHJldHVybiBwCisgICAgICAgIGlmIGt3YXJncy5nZXQoJ2RpcicsIDApOgorICAgICAgICAg
ICAgcmV0dXJuIHAuX2Vuc3VyZWRpcnMoKQorICAgICAgICBwYXJlbnQgPSBwLmRpcnBhdGgoKQor
ICAgICAgICBwYXJlbnQuX2Vuc3VyZWRpcnMoKQorICAgICAgICBwLndyaXRlKCIiKQorICAgICAg
ICBwLmFkZCgpCisgICAgICAgIHJldHVybiBwCisKKyAgICBkZWYgbWtkaXIoc2VsZiwgKmFyZ3Mp
OgorICAgICAgICAiIiIgY3JlYXRlICYgcmV0dXJuIHRoZSBkaXJlY3Rvcnkgam9pbmVkIHdpdGgg
YXJncy4gIiIiCisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5qb2lu
KCphcmdzKS5ta2RpcigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9zdm4oJ21r
ZGlyJykKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgYWRkKHNlbGYpOgorICAg
ICAgICAiIiIgYWRkIG91cnNlbGYgdG8gc3ZuICIiIgorICAgICAgICBzZWxmLl9zdm4oJ2FkZCcp
CisKKyAgICBkZWYgcmVtb3ZlKHNlbGYsIHJlYz0xLCBmb3JjZT0xKToKKyAgICAgICAgIiIiIHJl
bW92ZSBhIGZpbGUgb3IgYSBkaXJlY3RvcnkgdHJlZS4gJ3JlYyd1cnNpdmUgaXMKKyAgICAgICAg
ICAgIGlnbm9yZWQgYW5kIGNvbnNpZGVyZWQgYWx3YXlzIHRydWUgKGJlY2F1c2Ugb2YKKyAgICAg
ICAgICAgIHVuZGVybHlpbmcgc3ZuIHNlbWFudGljcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFz
c2VydCByZWMsICJzdm4gY2Fubm90IHJlbW92ZSBub24tcmVjdXJzaXZlbHkiCisgICAgICAgIGlm
IG5vdCBzZWxmLmNoZWNrKHZlcnNpb25lZD1UcnVlKToKKyAgICAgICAgICAgICMgbm90IGFkZGVk
IHRvIHN2biAoYW55bW9yZT8pLCBqdXN0IHJlbW92ZQorICAgICAgICAgICAgcHkucGF0aC5sb2Nh
bChzZWxmKS5yZW1vdmUoKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGZsYWdzID0gW10K
KyAgICAgICAgaWYgZm9yY2U6CisgICAgICAgICAgICBmbGFncy5hcHBlbmQoJy0tZm9yY2UnKQor
ICAgICAgICBzZWxmLl9zdm4oJ3JlbW92ZScsICpmbGFncykKKworICAgIGRlZiBjb3B5KHNlbGYs
IHRhcmdldCk6CisgICAgICAgICIiIiBjb3B5IHBhdGggdG8gdGFyZ2V0LiIiIgorICAgICAgICBw
eS5wcm9jZXNzLmNtZGV4ZWMoInN2biBjb3B5ICVzICVzIiAlKHN0cihzZWxmKSwgc3RyKHRhcmdl
dCkpKQorCisgICAgZGVmIHJlbmFtZShzZWxmLCB0YXJnZXQpOgorICAgICAgICAiIiIgcmVuYW1l
IHRoaXMgcGF0aCB0byB0YXJnZXQuICIiIgorICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMoInN2
biBtb3ZlIC0tZm9yY2UgJXMgJXMiICUoc3RyKHNlbGYpLCBzdHIodGFyZ2V0KSkpCisKKyAgICBk
ZWYgbG9jayhzZWxmKToKKyAgICAgICAgIiIiIHNldCBhIGxvY2sgKGV4Y2x1c2l2ZSkgb24gdGhl
IHJlc291cmNlICIiIgorICAgICAgICBvdXQgPSBzZWxmLl9hdXRoc3ZuKCdsb2NrJykuc3RyaXAo
KQorICAgICAgICBpZiBub3Qgb3V0OgorICAgICAgICAgICAgIyB3YXJuaW5nIG9yIGVycm9yLCBy
YWlzZSBleGNlcHRpb24KKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gZXJy
b3IgaW4gc3ZuIGxvY2sgY29tbWFuZCIpCisKKyAgICBkZWYgdW5sb2NrKHNlbGYpOgorICAgICAg
ICAiIiIgdW5zZXQgYSBwcmV2aW91c2x5IHNldCBsb2NrICIiIgorICAgICAgICBvdXQgPSBzZWxm
Ll9hdXRoc3ZuKCd1bmxvY2snKS5zdHJpcCgpCisgICAgICAgIGlmIG91dC5zdGFydHN3aXRoKCdz
dm46Jyk6CisgICAgICAgICAgICAjIHdhcm5pbmcgb3IgZXJyb3IsIHJhaXNlIGV4Y2VwdGlvbgor
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKG91dFs0Ol0pCisKKyAgICBkZWYgY2xlYW51cChz
ZWxmKToKKyAgICAgICAgIiIiIHJlbW92ZSBhbnkgbG9ja3MgZnJvbSB0aGUgcmVzb3VyY2UgIiIi
CisgICAgICAgICMgWFhYIHNob3VsZCBiZSBmaXhlZCBwcm9wZXJseSEhIQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLnVubG9jaygpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAg
IHBhc3MKKworICAgIGRlZiBzdGF0dXMoc2VsZiwgdXBkYXRlcz0wLCByZWM9MCwgZXh0ZXJuYWxz
PTApOgorICAgICAgICAiIiIgcmV0dXJuIChjb2xsZWN0aXZlKSBTdGF0dXMgb2JqZWN0IGZvciB0
aGlzIGZpbGUuICIiIgorICAgICAgICAjIGh0dHA6Ly9zdm5ib29rLnJlZC1iZWFuLmNvbS9ib29r
Lmh0bWwjc3ZuLWNoLTMtc2VjdC00LjMuMQorICAgICAgICAjICAgICAgICAgICAgIDIyMDEgICAg
IDIxOTIgICAgICAgIGp1bSAgIHRlc3QKKyAgICAgICAgIyBYWFgKKyAgICAgICAgaWYgZXh0ZXJu
YWxzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiWFhYIGNhbm5vdCBwZXJmb3JtIHN0
YXR1cygpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uIGV4dGVybmFsIGl0ZW1z
IHlldCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjMS4yIHN1cHBvcnRzOiBleHRlcm5h
bHMgPSAnLS1pZ25vcmUtZXh0ZXJuYWxzJworICAgICAgICAgICAgZXh0ZXJuYWxzID0gJycKKyAg
ICAgICAgaWYgcmVjOgorICAgICAgICAgICAgcmVjPSAnJworICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmVjID0gJy0tbm9uLXJlY3Vyc2l2ZScKKworICAgICAgICAjIFhYWCBkb2VzIG5vdCB3
b3JrIG9uIGFsbCBzdWJ2ZXJzaW9uIHZlcnNpb25zCisgICAgICAgICNpZiBub3QgZXh0ZXJuYWxz
OgorICAgICAgICAjICAgIGV4dGVybmFscyA9ICctLWlnbm9yZS1leHRlcm5hbHMnCisKKyAgICAg
ICAgaWYgdXBkYXRlczoKKyAgICAgICAgICAgIHVwZGF0ZXMgPSAnLXUnCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICB1cGRhdGVzID0gJycKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBj
bWQgPSAnc3RhdHVzIC12IC0teG1sIC0tbm8taWdub3JlICVzICVzICVzJyAlICgKKyAgICAgICAg
ICAgICAgICAgICAgdXBkYXRlcywgcmVjLCBleHRlcm5hbHMpCisgICAgICAgICAgICBvdXQgPSBz
ZWxmLl9hdXRoc3ZuKGNtZCkKKyAgICAgICAgZXhjZXB0IHB5LnByb2Nlc3MuY21kZXhlYy5FcnJv
cjoKKyAgICAgICAgICAgIGNtZCA9ICdzdGF0dXMgLXYgLS1uby1pZ25vcmUgJXMgJXMgJXMnICUg
KAorICAgICAgICAgICAgICAgICAgICB1cGRhdGVzLCByZWMsIGV4dGVybmFscykKKyAgICAgICAg
ICAgIG91dCA9IHNlbGYuX2F1dGhzdm4oY21kKQorICAgICAgICAgICAgcm9vdHN0YXR1cyA9IFdD
U3RhdHVzKHNlbGYpLmZyb21zdHJpbmcob3V0LCBzZWxmKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcm9vdHN0YXR1cyA9IFhNTFdDU3RhdHVzKHNlbGYpLmZyb21zdHJpbmcob3V0LCBzZWxm
KQorICAgICAgICByZXR1cm4gcm9vdHN0YXR1cworCisgICAgZGVmIGRpZmYoc2VsZiwgcmV2PU5v
bmUpOgorICAgICAgICAiIiIgcmV0dXJuIGEgZGlmZiBvZiB0aGUgY3VycmVudCBwYXRoIGFnYWlu
c3QgcmV2aXNpb24gcmV2IChkZWZhdWx0aW5nCisgICAgICAgICAgICB0byB0aGUgbGFzdCBvbmUp
LgorICAgICAgICAiIiIKKyAgICAgICAgYXJncyA9IFtdCisgICAgICAgIGlmIHJldiBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItciAlZCIgJSByZXYpCisgICAgICAgIG91
dCA9IHNlbGYuX2F1dGhzdm4oJ2RpZmYnLCBhcmdzKQorICAgICAgICByZXR1cm4gb3V0CisKKyAg
ICBkZWYgYmxhbWUoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYSBsaXN0IG9mIHR1cGxlcyBv
ZiB0aHJlZSBlbGVtZW50czoKKyAgICAgICAgICAgIChyZXZpc2lvbiwgY29tbWl0ZXIsIGxpbmUp
CisgICAgICAgICIiIgorICAgICAgICBvdXQgPSBzZWxmLl9zdm4oJ2JsYW1lJykKKyAgICAgICAg
cmVzdWx0ID0gW10KKyAgICAgICAgYmxhbWVsaW5lcyA9IG91dC5zcGxpdGxpbmVzKCkKKyAgICAg
ICAgcmVhbGxpbmVzID0gcHkucGF0aC5zdm51cmwoc2VsZi51cmwpLnJlYWRsaW5lcygpCisgICAg
ICAgIGZvciBpLCAoYmxhbWVsaW5lLCBsaW5lKSBpbiBlbnVtZXJhdGUoCisgICAgICAgICAgICAg
ICAgemlwKGJsYW1lbGluZXMsIHJlYWxsaW5lcykpOgorICAgICAgICAgICAgbSA9IHJleF9ibGFt
ZS5tYXRjaChibGFtZWxpbmUpCisgICAgICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJvdXRwdXQgbGluZSAlciBvZiBzdm4gYmxhbWUgZG9lcyBub3Qg
bWF0Y2ggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZvcm1h
dCIgJSAobGluZSwgKSkKKyAgICAgICAgICAgIHJldiwgbmFtZSwgXyA9IG0uZ3JvdXBzKCkKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGludChyZXYpLCBuYW1lLCBsaW5lKSkKKyAgICAgICAg
cmV0dXJuIHJlc3VsdAorCisgICAgX3JleF9jb21taXQgPSByZS5jb21waWxlKHInLipDb21taXR0
ZWQgcmV2aXNpb24gKFxkKylcLiQnLCByZS5ET1RBTEwpCisgICAgZGVmIGNvbW1pdChzZWxmLCBt
c2c9JycsIHJlYz0xKToKKyAgICAgICAgIiIiIGNvbW1pdCB3aXRoIHN1cHBvcnQgZm9yIG5vbi1y
ZWN1cnNpdmUgY29tbWl0cyAiIiIKKyAgICAgICAgIyBYWFggaSBndWVzcyBlc2NhcGluZyBzaG91
bGQgYmUgZG9uZSBiZXR0ZXIgaGVyZT8hPworICAgICAgICBjbWQgPSAnY29tbWl0IC1tICIlcyIg
LS1mb3JjZS1sb2cnICUgKG1zZy5yZXBsYWNlKCciJywgJ1xcIicpLCkKKyAgICAgICAgaWYgbm90
IHJlYzoKKyAgICAgICAgICAgIGNtZCArPSAnIC1OJworICAgICAgICBvdXQgPSBzZWxmLl9hdXRo
c3ZuKGNtZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIGNhY2hlLmluZm9bc2VsZl0K
KyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBv
dXQ6CisgICAgICAgICAgICBtID0gc2VsZi5fcmV4X2NvbW1pdC5tYXRjaChvdXQpCisgICAgICAg
ICAgICByZXR1cm4gaW50KG0uZ3JvdXAoMSkpCisKKyAgICBkZWYgcHJvcHNldChzZWxmLCBuYW1l
LCB2YWx1ZSwgKmFyZ3MpOgorICAgICAgICAiIiIgc2V0IHByb3BlcnR5IG5hbWUgdG8gdmFsdWUg
b24gdGhpcyBwYXRoLiAiIiIKKyAgICAgICAgZCA9IHB5LnBhdGgubG9jYWwubWtkdGVtcCgpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHAgPSBkLmpvaW4oJ3ZhbHVlJykKKyAgICAgICAgICAg
IHAud3JpdGUodmFsdWUpCisgICAgICAgICAgICBzZWxmLl9zdm4oJ3Byb3BzZXQnLCBuYW1lLCAn
LS1maWxlJywgc3RyKHApLCAqYXJncykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGQu
cmVtb3ZlKCkKKworICAgIGRlZiBwcm9wZ2V0KHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIgZ2V0
IHByb3BlcnR5IG5hbWUgb24gdGhpcyBwYXRoLiAiIiIKKyAgICAgICAgcmVzID0gc2VsZi5fc3Zu
KCdwcm9wZ2V0JywgbmFtZSkKKyAgICAgICAgcmV0dXJuIHJlc1s6LTFdICMgc3RyaXAgdHJhaWxp
bmcgbmV3bGluZQorCisgICAgZGVmIHByb3BkZWwoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIiBk
ZWxldGUgcHJvcGVydHkgbmFtZSBvbiB0aGlzIHBhdGguICIiIgorICAgICAgICByZXMgPSBzZWxm
Ll9zdm4oJ3Byb3BkZWwnLCBuYW1lKQorICAgICAgICByZXR1cm4gcmVzWzotMV0gIyBzdHJpcCB0
cmFpbGluZyBuZXdsaW5lCisKKyAgICBkZWYgcHJvcGxpc3Qoc2VsZiwgcmVjPTApOgorICAgICAg
ICAiIiIgcmV0dXJuIGEgbWFwcGluZyBvZiBwcm9wZXJ0eSBuYW1lcyB0byBwcm9wZXJ0eSB2YWx1
ZXMuCitJZiByZWMgaXMgVHJ1ZSwgdGhlbiByZXR1cm4gYSBkaWN0aW9uYXJ5IG1hcHBpbmcgc3Vi
LXBhdGhzIHRvIHN1Y2ggbWFwcGluZ3MuCisiIiIKKyAgICAgICAgaWYgcmVjOgorICAgICAgICAg
ICAgcmVzID0gc2VsZi5fc3ZuKCdwcm9wbGlzdCAtUicpCisgICAgICAgICAgICByZXR1cm4gbWFr
ZV9yZWN1cnNpdmVfcHJvcGRpY3Qoc2VsZiwgcmVzKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmVzID0gc2VsZi5fc3ZuKCdwcm9wbGlzdCcpCisgICAgICAgICAgICBsaW5lcyA9IHJlcy5z
cGxpdCgnXG4nKQorICAgICAgICAgICAgbGluZXMgPSBbeC5zdHJpcCgpIGZvciB4IGluIGxpbmVz
WzE6XV0KKyAgICAgICAgICAgIHJldHVybiBQcm9wTGlzdERpY3Qoc2VsZiwgbGluZXMpCisKKyAg
ICBkZWYgcmV2ZXJ0KHNlbGYsIHJlYz0wKToKKyAgICAgICAgIiIiIHJldmVydCB0aGUgbG9jYWwg
Y2hhbmdlcyBvZiB0aGlzIHBhdGguIGlmIHJlYyBpcyBUcnVlLCBkbyBzbworcmVjdXJzaXZlbHku
ICIiIgorICAgICAgICBpZiByZWM6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9zdm4oJ3Jl
dmVydCAtUicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9zdm4o
J3JldmVydCcpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBuZXcoc2VsZiwgKipr
dyk6CisgICAgICAgICIiIiBjcmVhdGUgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoaXMgcGF0aC4g
QSAncmV2JyBhcmd1bWVudAorICAgICAgICAgICAgaW5kaWNhdGVzIGEgbmV3IHJldmlzaW9uLgor
ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBrZXl3b3JkIGFyZ3VtZW50cyBtb2RpZnkgdmFyaW91
cyBwYXRoIHBhcnRzOgorCisgICAgICAgICAgICAgIGh0dHA6Ly9ob3N0LmNvbS9yZXBvL3BhdGgv
ZmlsZS5leHQKKyAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAgICAgICAg
ICBkaXJuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC0tLS0t
LXwgYmFzZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8LS18
ICAgICBwdXJlYmFzZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfC0tfCBleHQKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGt3OgorICAgICAgICAgICAg
bG9jYWxwYXRoID0gc2VsZi5sb2NhbHBhdGgubmV3KCoqa3cpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBsb2NhbHBhdGggPSBzZWxmLmxvY2FscGF0aAorICAgICAgICByZXR1cm4gc2VsZi5f
X2NsYXNzX18obG9jYWxwYXRoLCBhdXRoPXNlbGYuYXV0aCkKKworICAgIGRlZiBqb2luKHNlbGYs
ICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiByZXR1cm4gYSBuZXcgUGF0aCAod2l0aCB0
aGUgc2FtZSByZXZpc2lvbikgd2hpY2ggaXMgY29tcG9zZWQKKyAgICAgICAgICAgIG9mIHRoZSBz
ZWxmIFBhdGggZm9sbG93ZWQgYnkgJ2FyZ3MnIHBhdGggY29tcG9uZW50cy4KKyAgICAgICAgIiIi
CisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAg
bG9jYWxwYXRoID0gc2VsZi5sb2NhbHBhdGguam9pbigqYXJncywgKiprd2FyZ3MpCisgICAgICAg
IHJldHVybiBzZWxmLl9fY2xhc3NfXyhsb2NhbHBhdGgsIGF1dGg9c2VsZi5hdXRoKQorCisgICAg
ZGVmIGluZm8oc2VsZiwgdXNlY2FjaGU9MSk6CisgICAgICAgICIiIiByZXR1cm4gYW4gSW5mbyBz
dHJ1Y3R1cmUgd2l0aCBzdm4tcHJvdmlkZWQgaW5mb3JtYXRpb24uICIiIgorICAgICAgICBpbmZv
ID0gdXNlY2FjaGUgYW5kIGNhY2hlLmluZm8uZ2V0KHNlbGYpCisgICAgICAgIGlmIG5vdCBpbmZv
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX3N2bign
aW5mbycpCisgICAgICAgICAgICBleGNlcHQgcHkucHJvY2Vzcy5jbWRleGVjLkVycm9yOgorICAg
ICAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgICAgIGlmIGUu
ZXJyLmZpbmQoJ1BhdGggaXMgbm90IGEgd29ya2luZyBjb3B5IGRpcmVjdG9yeScpICE9IC0xOgor
ICAgICAgICAgICAgICAgICAgICByYWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZiwgZS5lcnIpCisg
ICAgICAgICAgICAgICAgZWxpZiBlLmVyci5maW5kKCJpcyBub3QgdW5kZXIgdmVyc2lvbiBjb250
cm9sIikgIT0gLTE6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChz
ZWxmLCBlLmVycikKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgIyBYWFggU1ZO
IDEuMyBoYXMgb3V0cHV0IG9uIHN0ZGVyciBpbnN0ZWFkIG9mIHN0ZG91dCAod2hpbGUgaXQgZG9l
cworICAgICAgICAgICAgIyByZXR1cm4gMCEpLCBzbyBhIGJpdCBuYXN0eSwgYnV0IHdlIGFzc3Vt
ZSBubyBvdXRwdXQgaXMgb3V0cHV0CisgICAgICAgICAgICAjIHRvIHN0ZGVyci4uLgorICAgICAg
ICAgICAgaWYgKG91dHB1dC5zdHJpcCgpID09ICcnIG9yCisgICAgICAgICAgICAgICAgICAgIG91
dHB1dC5sb3dlcigpLmZpbmQoJ25vdCBhIHZlcnNpb25lZCByZXNvdXJjZScpICE9IC0xKToKKyAg
ICAgICAgICAgICAgICByYWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZiwgb3V0cHV0KQorICAgICAg
ICAgICAgaW5mbyA9IEluZm9Tdm5XQ0NvbW1hbmQob3V0cHV0KQorCisgICAgICAgICAgICAjIENh
bid0IHJlbGlhYmx5IGNvbXBhcmUgb24gV2luZG93cyB3aXRob3V0IGFjY2VzcyB0byB3aW4zMmFw
aQorICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6CisgICAgICAgICAgICAg
ICAgaWYgaW5mby5wYXRoICE9IHNlbGYubG9jYWxwYXRoOgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZiwgIm5vdCBhIHZlcnNpb25lZCByZXNvdXJjZToiICsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVzICE9ICVzIiAlIChpbmZvLnBhdGgsIHNl
bGYubG9jYWxwYXRoKSkKKyAgICAgICAgICAgIGNhY2hlLmluZm9bc2VsZl0gPSBpbmZvCisgICAg
ICAgIHJldHVybiBpbmZvCisKKyAgICBkZWYgbGlzdGRpcihzZWxmLCBmaWw9Tm9uZSwgc29ydD1O
b25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIHNlcXVlbmNlIG9mIFBhdGhzLgorCisgICAgICAg
IGxpc3RkaXIgd2lsbCByZXR1cm4gZWl0aGVyIGEgdHVwbGUgb3IgYSBsaXN0IG9mIHBhdGhzCisg
ICAgICAgIGRlcGVuZGluZyBvbiBpbXBsZW1lbnRhdGlvbiBjaG9pY2VzLgorICAgICAgICAiIiIK
KyAgICAgICAgaWYgaXNpbnN0YW5jZShmaWwsIHN0cik6CisgICAgICAgICAgICBmaWwgPSBjb21t
b24uRk5NYXRjaGVyKGZpbCkKKyAgICAgICAgIyBYWFggdW5pZnkgYXJndW1lbnQgbmFtaW5nIHdp
dGggTG9jYWxQYXRoLmxpc3RkaXIKKyAgICAgICAgZGVmIG5vdHN2bihwYXRoKToKKyAgICAgICAg
ICAgIHJldHVybiBwYXRoLmJhc2VuYW1lICE9ICcuc3ZuJworCisgICAgICAgIHBhdGhzID0gW10K
KyAgICAgICAgZm9yIGxvY2FscGF0aCBpbiBzZWxmLmxvY2FscGF0aC5saXN0ZGlyKG5vdHN2bik6
CisgICAgICAgICAgICBwID0gc2VsZi5fX2NsYXNzX18obG9jYWxwYXRoLCBhdXRoPXNlbGYuYXV0
aCkKKyAgICAgICAgICAgIGlmIG5vdHN2bihwKSBhbmQgKG5vdCBmaWwgb3IgZmlsKHApKToKKyAg
ICAgICAgICAgICAgICBwYXRocy5hcHBlbmQocCkKKyAgICAgICAgc2VsZi5fc29ydGxpc3QocGF0
aHMsIHNvcnQpCisgICAgICAgIHJldHVybiBwYXRocworCisgICAgZGVmIG9wZW4oc2VsZiwgbW9k
ZT0ncicpOgorICAgICAgICAiIiIgcmV0dXJuIGFuIG9wZW5lZCBmaWxlIHdpdGggdGhlIGdpdmVu
IG1vZGUuICIiIgorICAgICAgICByZXR1cm4gb3BlbihzZWxmLnN0cnBhdGgsIG1vZGUpCisKKyAg
ICBkZWYgX2dldGJ5c3BlYyhzZWxmLCBzcGVjKToKKyAgICAgICAgcmV0dXJuIHNlbGYubG9jYWxw
YXRoLl9nZXRieXNwZWMoc3BlYykKKworICAgIGNsYXNzIENoZWNrZXJzKHB5LnBhdGgubG9jYWwu
Q2hlY2tlcnMpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgICAgICAg
ICBzZWxmLnN2bndjcGF0aCA9IHBhdGgKKyAgICAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgubG9j
YWxwYXRoCisgICAgICAgIGRlZiB2ZXJzaW9uZWQoc2VsZik6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgcyA9IHNlbGYuc3Zud2NwYXRoLmluZm8oKQorICAgICAgICAgICAgZXhj
ZXB0IChweS5lcnJvci5FTk9FTlQsIHB5LmVycm9yLkVFWElTVCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNlcHQgcHkucHJvY2Vzcy5jbWRleGVjLkVycm9y
OgorICAgICAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgICAg
IGlmIGUuZXJyLmZpbmQoJ2lzIG5vdCBhIHdvcmtpbmcgY29weScpIT0tMToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgaWYgZS5lcnIubG93ZXIoKS5m
aW5kKCdub3QgYSB2ZXJzaW9uZWQgcmVzb3VyY2UnKSAhPSAtMToKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBsb2coc2VsZiwgcmV2X3N0
YXJ0PU5vbmUsIHJldl9lbmQ9MSwgdmVyYm9zZT1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4g
YSBsaXN0IG9mIExvZ0VudHJ5IGluc3RhbmNlcyBmb3IgdGhpcyBwYXRoLgorcmV2X3N0YXJ0IGlz
IHRoZSBzdGFydGluZyByZXZpc2lvbiAoZGVmYXVsdGluZyB0byB0aGUgZmlyc3Qgb25lKS4KK3Jl
dl9lbmQgaXMgdGhlIGxhc3QgcmV2aXNpb24gKGRlZmF1bHRpbmcgdG8gSEVBRCkuCitpZiB2ZXJi
b3NlIGlzIFRydWUsIHRoZW4gdGhlIExvZ0VudHJ5IGluc3RhbmNlcyBhbHNvIGtub3cgd2hpY2gg
ZmlsZXMgY2hhbmdlZC4KKyIiIgorICAgICAgICBhc3NlcnQgc2VsZi5jaGVjaygpICAgIyBtYWtl
IGl0IHNpbXBsZXIgZm9yIHRoZSBwaXBlCisgICAgICAgIHJldl9zdGFydCA9IHJldl9zdGFydCBp
cyBOb25lIGFuZCAiSEVBRCIgb3IgcmV2X3N0YXJ0CisgICAgICAgIHJldl9lbmQgPSByZXZfZW5k
IGlzIE5vbmUgYW5kICJIRUFEIiBvciByZXZfZW5kCisgICAgICAgIGlmIHJldl9zdGFydCA9PSAi
SEVBRCIgYW5kIHJldl9lbmQgPT0gMToKKyAgICAgICAgICAgICAgICByZXZfb3B0ID0gIiIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldl9vcHQgPSAiLXIgJXM6JXMiICUgKHJldl9zdGFy
dCwgcmV2X2VuZCkKKyAgICAgICAgdmVyYm9zZV9vcHQgPSB2ZXJib3NlIGFuZCAiLXYiIG9yICIi
CisgICAgICAgIGxvY2FsZV9lbnYgPSBmaXhsb2NhbGUoKQorICAgICAgICAjIHNvbWUgYmxhdGhl
ciBvbiBzdGRlcnIKKyAgICAgICAgYXV0aF9vcHQgPSBzZWxmLl9tYWtlYXV0aG9wdGlvbnMoKQor
ICAgICAgICAjc3RkaW4sIHN0ZG91dCwgc3RkZXJyICA9IG9zLnBvcGVuMyhsb2NhbGVfZW52ICsK
KyAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N2biBsb2cgLS14
bWwgJXMgJXMgJXMgIiVzIicgJSAoCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXZfb3B0LCB2ZXJib3NlX29wdCwgYXV0aF9vcHQsCisgICAgICAgICMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0cnBhdGgpKQorICAgICAgICBj
bWQgPSBsb2NhbGVfZW52ICsgJ3N2biBsb2cgLS14bWwgJXMgJXMgJXMgIiVzIicgJSAoCisgICAg
ICAgICAgICByZXZfb3B0LCB2ZXJib3NlX29wdCwgYXV0aF9vcHQsIHNlbGYuc3RycGF0aCkKKwor
ICAgICAgICBwb3BlbiA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLAorICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3Vi
cHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICBzaGVsbD1UcnVlLAorICAgICAgICAp
CisgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcG9wZW4uY29tbXVuaWNhdGUoKQorICAgICAgICBz
dGRvdXQgPSBweS5idWlsdGluLl90b3RleHQoc3Rkb3V0LCBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5n
KCkpCisgICAgICAgIG1pbmlkb20sRXhwYXRFcnJvciA9IGltcG9ydHhtbCgpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHRyZWUgPSBtaW5pZG9tLnBhcnNlU3RyaW5nKHN0ZG91dCkKKyAgICAg
ICAgZXhjZXB0IEV4cGF0RXJyb3I6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdubyBz
dWNoIHJldmlzaW9uJykKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgZm9yIGxvZ2VudHJ5
IGluIGZpbHRlcihOb25lLCB0cmVlLmZpcnN0Q2hpbGQuY2hpbGROb2Rlcyk6CisgICAgICAgICAg
ICBpZiBsb2dlbnRyeS5ub2RlVHlwZSA9PSBsb2dlbnRyeS5FTEVNRU5UX05PREU6CisgICAgICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZChMb2dFbnRyeShsb2dlbnRyeSkpCisgICAgICAgIHJldHVy
biByZXN1bHQKKworICAgIGRlZiBzaXplKHNlbGYpOgorICAgICAgICAiIiIgUmV0dXJuIHRoZSBz
aXplIG9mIHRoZSBmaWxlIGNvbnRlbnQgb2YgdGhlIFBhdGguICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5pbmZvKCkuc2l6ZQorCisgICAgZGVmIG10aW1lKHNlbGYpOgorICAgICAgICAiIiIgUmV0
dXJuIHRoZSBsYXN0IG1vZGlmaWNhdGlvbiB0aW1lIG9mIHRoZSBmaWxlLiAiIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuaW5mbygpLm10aW1lCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAg
ICAgIHJldHVybiBoYXNoKChzZWxmLnN0cnBhdGgsIHNlbGYuX19jbGFzc19fLCBzZWxmLmF1dGgp
KQorCisKK2NsYXNzIFdDU3RhdHVzOgorICAgIGF0dHJuYW1lcyA9ICgnbW9kaWZpZWQnLCdhZGRl
ZCcsICdjb25mbGljdCcsICd1bmNoYW5nZWQnLCAnZXh0ZXJuYWwnLAorICAgICAgICAgICAgICAg
ICdkZWxldGVkJywgJ3Byb3BfbW9kaWZpZWQnLCAndW5rbm93bicsICd1cGRhdGVfYXZhaWxhYmxl
JywKKyAgICAgICAgICAgICAgICAnaW5jb21wbGV0ZScsICdraW5kbWlzbWF0Y2gnLCAnaWdub3Jl
ZCcsICdsb2NrZWQnLCAncmVwbGFjZWQnCisgICAgICAgICAgICAgICAgKQorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHdjcGF0aCwgcmV2PU5vbmUsIG1vZHJldj1Ob25lLCBhdXRob3I9Tm9uZSk6
CisgICAgICAgIHNlbGYud2NwYXRoID0gd2NwYXRoCisgICAgICAgIHNlbGYucmV2ID0gcmV2Cisg
ICAgICAgIHNlbGYubW9kcmV2ID0gbW9kcmV2CisgICAgICAgIHNlbGYuYXV0aG9yID0gYXV0aG9y
CisKKyAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5hdHRybmFtZXM6CisgICAgICAgICAgICBzZXRh
dHRyKHNlbGYsIG5hbWUsIFtdKQorCisgICAgZGVmIGFsbHBhdGgoc2VsZiwgc29ydD1UcnVlLCAq
Kmt3KToKKyAgICAgICAgZCA9IHt9CisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuYXR0cm5hbWVz
OgorICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4ga3cgb3Iga3dbbmFtZV06CisgICAgICAgICAg
ICAgICAgZm9yIHBhdGggaW4gZ2V0YXR0cihzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgZFtwYXRoXSA9IDEKKyAgICAgICAgbCA9IGQua2V5cygpCisgICAgICAgIGlmIHNvcnQ6Cisg
ICAgICAgICAgICBsLnNvcnQoKQorICAgICAgICByZXR1cm4gbAorCisgICAgIyBYWFggYSBiaXQg
c2NhcnkgdG8gYXNzdW1lIHRoZXJlJ3MgYWx3YXlzIDIgc3BhY2VzIGJldHdlZW4gdXNlcm5hbWUg
YW5kCisgICAgIyBwYXRoLCBob3dldmVyIHdpdGggd2luMzIgYWxsb3dpbmcgc3BhY2VzIGluIHVz
ZXIgbmFtZXMgdGhlcmUgZG9lc24ndAorICAgICMgc2VlbSB0byBiZSBhIG1vcmUgc29saWQgYXBw
cm9hY2ggOigKKyAgICBfcmV4X3N0YXR1cyA9IHJlLmNvbXBpbGUocidccysoXGQrfC0pXHMrKFxT
KylccysoLis/KVxzezIsfSguKiknKQorCisgICAgZGVmIGZyb21zdHJpbmcoZGF0YSwgcm9vdHdj
cGF0aCwgcmV2PU5vbmUsIG1vZHJldj1Ob25lLCBhdXRob3I9Tm9uZSk6CisgICAgICAgICIiIiBy
ZXR1cm4gYSBuZXcgV0NTdGF0dXMgb2JqZWN0IGZyb20gZGF0YSAncycKKyAgICAgICAgIiIiCisg
ICAgICAgIHJvb3RzdGF0dXMgPSBXQ1N0YXR1cyhyb290d2NwYXRoLCByZXYsIG1vZHJldiwgYXV0
aG9yKQorICAgICAgICB1cGRhdGVfcmV2ID0gTm9uZQorICAgICAgICBmb3IgbGluZSBpbiBkYXRh
LnNwbGl0KCdcbicpOgorICAgICAgICAgICAgaWYgbm90IGxpbmUuc3RyaXAoKToKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgI3ByaW50ICJwcm9jZXNzaW5nICVyIiAlIGxp
bmUKKyAgICAgICAgICAgIGZsYWdzLCByZXN0ID0gbGluZVs6OF0sIGxpbmVbODpdCisgICAgICAg
ICAgICAjIGZpcnN0IGNvbHVtbgorICAgICAgICAgICAgYzAsYzEsYzIsYzMsYzQsYzUseDYsYzcg
PSBmbGFncworICAgICAgICAgICAgI2lmICcqJyBpbiBsaW5lOgorICAgICAgICAgICAgIyAgICBw
cmludCAiZmxhZ3MiLCByZXByKGZsYWdzKSwgInJlc3QiLCByZXByKHJlc3QpCisKKyAgICAgICAg
ICAgIGlmIGMwIGluICc/WEknOgorICAgICAgICAgICAgICAgIGZuID0gbGluZS5zcGxpdChOb25l
LCAxKVsxXQorICAgICAgICAgICAgICAgIGlmIGMwID09ICc/JzoKKyAgICAgICAgICAgICAgICAg
ICAgd2NwYXRoID0gcm9vdHdjcGF0aC5qb2luKGZuLCBhYnM9MSkKKyAgICAgICAgICAgICAgICAg
ICAgcm9vdHN0YXR1cy51bmtub3duLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICAgICAgZWxp
ZiBjMCA9PSAnWCc6CisgICAgICAgICAgICAgICAgICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguX19j
bGFzc19fKAorICAgICAgICAgICAgICAgICAgICAgICAgcm9vdHdjcGF0aC5sb2NhbHBhdGguam9p
bihmbiwgYWJzPTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgYXV0aD1yb290d2NwYXRoLmF1
dGgpCisgICAgICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuZXh0ZXJuYWwuYXBwZW5kKHdjcGF0
aCkKKyAgICAgICAgICAgICAgICBlbGlmIGMwID09ICdJJzoKKyAgICAgICAgICAgICAgICAgICAg
d2NwYXRoID0gcm9vdHdjcGF0aC5qb2luKGZuLCBhYnM9MSkKKyAgICAgICAgICAgICAgICAgICAg
cm9vdHN0YXR1cy5pZ25vcmVkLmFwcGVuZCh3Y3BhdGgpCisKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorCisgICAgICAgICAgICAjZWxpZiBjMCBpbiAnfiEnIG9yIGM0ID09ICdTJzoKKyAgICAg
ICAgICAgICMgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigicmVjZWl2ZWQgZmxhZyAlciIg
JSBjMCkKKworICAgICAgICAgICAgbSA9IFdDU3RhdHVzLl9yZXhfc3RhdHVzLm1hdGNoKHJlc3Qp
CisgICAgICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgICAgICBpZiBjNyA9PSAnKic6Cisg
ICAgICAgICAgICAgICAgICAgIGZuID0gcmVzdC5zdHJpcCgpCisgICAgICAgICAgICAgICAgICAg
IHdjcGF0aCA9IHJvb3R3Y3BhdGguam9pbihmbiwgYWJzPTEpCisgICAgICAgICAgICAgICAgICAg
IHJvb3RzdGF0dXMudXBkYXRlX2F2YWlsYWJsZS5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGxpbmUubG93ZXIoKS5maW5kKCdh
Z2FpbnN0IHJldmlzaW9uOicpIT0tMToKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3JldiA9
IGludChyZXN0LnNwbGl0KCc6JylbMV0uc3RyaXAoKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgICAgICBpZiBsaW5lLmxvd2VyKCkuZmluZCgnc3RhdHVzIG9uIGV4
dGVybmFsJykgPiAtMToKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggbm90IHN1cmUgd2hhdCB0
byBkbyBoZXJlLi4uIHBlcmhhcHMgd2Ugd2FudCB0bworICAgICAgICAgICAgICAgICAgICAjIHN0
b3JlIHNvbWUgc3RhdGUgaW5zdGVhZCBvZiBqdXN0IGNvbnRpbnVpbmcsIGFzIHJpZ2h0CisgICAg
ICAgICAgICAgICAgICAgICMgbm93IGl0IG1ha2VzIHRoZSB0b3AtbGV2ZWwgZXh0ZXJuYWwgZ2V0
IGFkZGVkIHR3aWNlCisgICAgICAgICAgICAgICAgICAgICMgKG9uY2UgYXMgZXh0ZXJuYWwsIG9u
Y2UgYXMgJ25vcm1hbCcgdW5jaGFuZ2VkIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICMgYmVj
YXVzZSBvZiB0aGUgd2F5IFNWTiBwcmVzZW50cyBleHRlcm5hbCBpdGVtcworICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICMga2VlcCB0cnlpbmcKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb3VsZCBub3QgcGFyc2UgbGluZSAlciIgJSBsaW5l
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXYsIG1vZHJldiwgYXV0aG9y
LCBmbiA9IG0uZ3JvdXBzKCkKKyAgICAgICAgICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguam9pbihm
biwgYWJzPTEpCisgICAgICAgICAgICAjYXNzZXJ0IHdjcGF0aC5jaGVjaygpCisgICAgICAgICAg
ICBpZiBjMCA9PSAnTSc6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHdjcGF0aC5jaGVjayhmaWxl
PTEpLCAiZGlkbid0IGV4cGVjdCBhIGRpcmVjdG9yeSB3aXRoIGNoYW5nZWQgY29udGVudCBoZXJl
IgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMubW9kaWZpZWQuYXBwZW5kKHdjcGF0aCkKKyAg
ICAgICAgICAgIGVsaWYgYzAgPT0gJ0EnIG9yIGMzID09ICcrJyA6CisgICAgICAgICAgICAgICAg
cm9vdHN0YXR1cy5hZGRlZC5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAgZWxpZiBjMCA9PSAn
RCc6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5kZWxldGVkLmFwcGVuZCh3Y3BhdGgpCisg
ICAgICAgICAgICBlbGlmIGMwID09ICdDJzoKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLmNv
bmZsaWN0LmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBlbGlmIGMwID09ICd+JzoKKyAgICAg
ICAgICAgICAgICByb290c3RhdHVzLmtpbmRtaXNtYXRjaC5hcHBlbmQod2NwYXRoKQorICAgICAg
ICAgICAgZWxpZiBjMCA9PSAnISc6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5pbmNvbXBs
ZXRlLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBlbGlmIGMwID09ICdSJzoKKyAgICAgICAg
ICAgICAgICByb290c3RhdHVzLnJlcGxhY2VkLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBl
bGlmIG5vdCBjMC5zdHJpcCgpOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMudW5jaGFuZ2Vk
LmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IoInJlY2VpdmVkIGZsYWcgJXIiICUgYzApCisKKyAgICAgICAg
ICAgIGlmIGMxID09ICdNJzoKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLnByb3BfbW9kaWZp
ZWQuYXBwZW5kKHdjcGF0aCkKKyAgICAgICAgICAgICMgWFhYIGRvIHdlIGNvdmVyIGFsbCBjbGll
bnQgdmVyc2lvbnMgaGVyZT8KKyAgICAgICAgICAgIGlmIGMyID09ICdMJyBvciBjNSA9PSAnSyc6
CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5sb2NrZWQuYXBwZW5kKHdjcGF0aCkKKyAgICAg
ICAgICAgIGlmIGM3ID09ICcqJzoKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLnVwZGF0ZV9h
dmFpbGFibGUuYXBwZW5kKHdjcGF0aCkKKworICAgICAgICAgICAgaWYgd2NwYXRoID09IHJvb3R3
Y3BhdGg6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5yZXYgPSByZXYKKyAgICAgICAgICAg
ICAgICByb290c3RhdHVzLm1vZHJldiA9IG1vZHJldgorICAgICAgICAgICAgICAgIHJvb3RzdGF0
dXMuYXV0aG9yID0gYXV0aG9yCisgICAgICAgICAgICAgICAgaWYgdXBkYXRlX3JldjoKKyAgICAg
ICAgICAgICAgICAgICAgcm9vdHN0YXR1cy51cGRhdGVfcmV2ID0gdXBkYXRlX3JldgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJldHVybiByb290c3RhdHVzCisgICAgZnJvbXN0
cmluZyA9IHN0YXRpY21ldGhvZChmcm9tc3RyaW5nKQorCitjbGFzcyBYTUxXQ1N0YXR1cyhXQ1N0
YXR1cyk6CisgICAgZGVmIGZyb21zdHJpbmcoZGF0YSwgcm9vdHdjcGF0aCwgcmV2PU5vbmUsIG1v
ZHJldj1Ob25lLCBhdXRob3I9Tm9uZSk6CisgICAgICAgICIiIiBwYXJzZSAnZGF0YScgKFhNTCBz
dHJpbmcgYXMgb3V0cHV0dGVkIGJ5IHN2biBzdCkgaW50byBhIHN0YXR1cyBvYmoKKyAgICAgICAg
IiIiCisgICAgICAgICMgWFhYIGZvciBleHRlcm5hbHMsIHRoZSBwYXRoIGlzIHNob3duIHR3aWNl
OiBvbmNlCisgICAgICAgICMgd2l0aCBleHRlcm5hbCBpbmZvcm1hdGlvbiwgYW5kIG9uY2Ugd2l0
aCBmdWxsIGluZm8gYXMgaWYKKyAgICAgICAgIyB0aGUgaXRlbSB3YXMgYSBub3JtYWwgbm9uLWV4
dGVybmFsLi4uIHRoZSBjdXJyZW50IHdheSBvZgorICAgICAgICAjIGRlYWxpbmcgd2l0aCB0aGlz
IGlzc3VlIGlzIGJ5IGlnbm9yaW5nIGl0IC0gdGhpcyBkb2VzIG1ha2UKKyAgICAgICAgIyBleHRl
cm5hbHMgYXBwZWFyIGFzIGV4dGVybmFsIGl0ZW1zIGFzIHdlbGwgYXMgJ25vcm1hbCcsCisgICAg
ICAgICMgdW5jaGFuZ2VkIG9uZXMgaW4gdGhlIHN0YXR1cyBvYmplY3Qgc28gdGhpcyBpcyBmYXIg
ZnJvbSBpZGVhbAorICAgICAgICByb290c3RhdHVzID0gV0NTdGF0dXMocm9vdHdjcGF0aCwgcmV2
LCBtb2RyZXYsIGF1dGhvcikKKyAgICAgICAgdXBkYXRlX3JldiA9IE5vbmUKKyAgICAgICAgbWlu
aWRvbSwgRXhwYXRFcnJvciA9IGltcG9ydHhtbCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGRvYyA9IG1pbmlkb20ucGFyc2VTdHJpbmcoZGF0YSkKKyAgICAgICAgZXhjZXB0IEV4cGF0RXJy
b3I6CisgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3Ioc3RyKGUpKQorICAgICAgICB1cmV2ZWxzID0gZG9jLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdhZ2FpbnN0JykKKyAgICAgICAgaWYgdXJldmVsczoKKyAgICAgICAgICAgIHJvb3Rz
dGF0dXMudXBkYXRlX3JldiA9IHVyZXZlbHNbLTFdLmdldEF0dHJpYnV0ZSgncmV2aXNpb24nKQor
ICAgICAgICBmb3IgZW50cnllbCBpbiBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2VudHJ5Jyk6
CisgICAgICAgICAgICBwYXRoID0gZW50cnllbC5nZXRBdHRyaWJ1dGUoJ3BhdGgnKQorICAgICAg
ICAgICAgc3RhdHVzZWwgPSBlbnRyeWVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd3Yy1zdGF0dXMn
KVswXQorICAgICAgICAgICAgaXRlbXN0YXR1cyA9IHN0YXR1c2VsLmdldEF0dHJpYnV0ZSgnaXRl
bScpCisKKyAgICAgICAgICAgIGlmIGl0ZW1zdGF0dXMgPT0gJ3VudmVyc2lvbmVkJzoKKyAgICAg
ICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRoLmpvaW4ocGF0aCwgYWJzPTEpCisgICAgICAg
ICAgICAgICAgcm9vdHN0YXR1cy51bmtub3duLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgIGVsaWYgaXRlbXN0YXR1cyA9PSAnZXh0ZXJuYWwnOgor
ICAgICAgICAgICAgICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguX19jbGFzc19fKAorICAgICAgICAg
ICAgICAgICAgICByb290d2NwYXRoLmxvY2FscGF0aC5qb2luKHBhdGgsIGFicz0xKSwKKyAgICAg
ICAgICAgICAgICAgICAgYXV0aD1yb290d2NwYXRoLmF1dGgpCisgICAgICAgICAgICAgICAgcm9v
dHN0YXR1cy5leHRlcm5hbC5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICBlbGlmIGl0ZW1zdGF0dXMgPT0gJ2lnbm9yZWQnOgorICAgICAgICAgICAg
ICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguam9pbihwYXRoLCBhYnM9MSkKKyAgICAgICAgICAgICAg
ICByb290c3RhdHVzLmlnbm9yZWQuYXBwZW5kKHdjcGF0aCkKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgZWxpZiBpdGVtc3RhdHVzID09ICdpbmNvbXBsZXRlJzoKKyAgICAg
ICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRoLmpvaW4ocGF0aCwgYWJzPTEpCisgICAgICAg
ICAgICAgICAgcm9vdHN0YXR1cy5pbmNvbXBsZXRlLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAg
ICAgICAgY29udGludWUKKworICAgICAgICAgICAgcmV2ID0gc3RhdHVzZWwuZ2V0QXR0cmlidXRl
KCdyZXZpc2lvbicpCisgICAgICAgICAgICBpZiBpdGVtc3RhdHVzID09ICdhZGRlZCcgb3IgaXRl
bXN0YXR1cyA9PSAnbm9uZSc6CisgICAgICAgICAgICAgICAgcmV2ID0gJzAnCisgICAgICAgICAg
ICAgICAgbW9kcmV2ID0gJz8nCisgICAgICAgICAgICAgICAgYXV0aG9yID0gJz8nCisgICAgICAg
ICAgICAgICAgZGF0ZSA9ICcnCisgICAgICAgICAgICBlbGlmIGl0ZW1zdGF0dXMgPT0gInJlcGxh
Y2VkIjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgICNwcmludCBlbnRyeWVsLnRveG1sKCkKKyAgICAgICAgICAgICAgICBjb21taXRlbCA9
IGVudHJ5ZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NvbW1pdCcpWzBdCisgICAgICAgICAgICAg
ICAgaWYgY29tbWl0ZWw6CisgICAgICAgICAgICAgICAgICAgIG1vZHJldiA9IGNvbW1pdGVsLmdl
dEF0dHJpYnV0ZSgncmV2aXNpb24nKQorICAgICAgICAgICAgICAgICAgICBhdXRob3IgPSAnJwor
ICAgICAgICAgICAgICAgICAgICBhdXRob3JfZWxzID0gY29tbWl0ZWwuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ2F1dGhvcicpCisgICAgICAgICAgICAgICAgICAgIGlmIGF1dGhvcl9lbHM6CisgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgYyBpbiBhdXRob3JfZWxzWzBdLmNoaWxkTm9kZXM6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yICs9IGMubm9kZVZhbHVlCisgICAgICAg
ICAgICAgICAgICAgIGRhdGUgPSAnJworICAgICAgICAgICAgICAgICAgICBmb3IgYyBpbiBjb21t
aXRlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGF0ZScpWzBdXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5jaGlsZE5vZGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSArPSBj
Lm5vZGVWYWx1ZQorCisgICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRoLmpvaW4ocGF0aCwg
YWJzPTEpCisKKyAgICAgICAgICAgIGFzc2VydCBpdGVtc3RhdHVzICE9ICdtb2RpZmllZCcgb3Ig
d2NwYXRoLmNoZWNrKGZpbGU9MSksICgKKyAgICAgICAgICAgICAgICAnZGlkXCd0IGV4cGVjdCBh
IGRpcmVjdG9yeSB3aXRoIGNoYW5nZWQgY29udGVudCBoZXJlJykKKworICAgICAgICAgICAgaXRl
bWF0dHJuYW1lID0geworICAgICAgICAgICAgICAgICdub3JtYWwnOiAndW5jaGFuZ2VkJywKKyAg
ICAgICAgICAgICAgICAndW52ZXJzaW9uZWQnOiAndW5rbm93bicsCisgICAgICAgICAgICAgICAg
J2NvbmZsaWN0ZWQnOiAnY29uZmxpY3QnLAorICAgICAgICAgICAgICAgICdub25lJzogJ2FkZGVk
JywKKyAgICAgICAgICAgIH0uZ2V0KGl0ZW1zdGF0dXMsIGl0ZW1zdGF0dXMpCisKKyAgICAgICAg
ICAgIGF0dHIgPSBnZXRhdHRyKHJvb3RzdGF0dXMsIGl0ZW1hdHRybmFtZSkKKyAgICAgICAgICAg
IGF0dHIuYXBwZW5kKHdjcGF0aCkKKworICAgICAgICAgICAgcHJvcHNzdGF0dXMgPSBzdGF0dXNl
bC5nZXRBdHRyaWJ1dGUoJ3Byb3BzJykKKyAgICAgICAgICAgIGlmIHByb3Bzc3RhdHVzIG5vdCBp
biAoJ25vbmUnLCAnbm9ybWFsJyk6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5wcm9wX21v
ZGlmaWVkLmFwcGVuZCh3Y3BhdGgpCisKKyAgICAgICAgICAgIGlmIHdjcGF0aCA9PSByb290d2Nw
YXRoOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMucmV2ID0gcmV2CisgICAgICAgICAgICAg
ICAgcm9vdHN0YXR1cy5tb2RyZXYgPSBtb2RyZXYKKyAgICAgICAgICAgICAgICByb290c3RhdHVz
LmF1dGhvciA9IGF1dGhvcgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuZGF0ZSA9IGRhdGUK
KworICAgICAgICAgICAgIyBoYW5kbGUgcmVwb3Mtc3RhdHVzIGVsZW1lbnQgKHJlbW90ZSBpbmZv
KQorICAgICAgICAgICAgcnN0YXR1c2VscyA9IGVudHJ5ZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3JlcG9zLXN0YXR1cycpCisgICAgICAgICAgICBpZiByc3RhdHVzZWxzOgorICAgICAgICAgICAg
ICAgIHJzdGF0dXNlbCA9IHJzdGF0dXNlbHNbMF0KKyAgICAgICAgICAgICAgICByaXRlbXN0YXR1
cyA9IHJzdGF0dXNlbC5nZXRBdHRyaWJ1dGUoJ2l0ZW0nKQorICAgICAgICAgICAgICAgIGlmIHJp
dGVtc3RhdHVzIGluICgnYWRkZWQnLCAnbW9kaWZpZWQnKToKKyAgICAgICAgICAgICAgICAgICAg
cm9vdHN0YXR1cy51cGRhdGVfYXZhaWxhYmxlLmFwcGVuZCh3Y3BhdGgpCisKKyAgICAgICAgICAg
IGxvY2tlbHMgPSBlbnRyeWVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsb2NrJykKKyAgICAgICAg
ICAgIGlmIGxlbihsb2NrZWxzKToKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLmxvY2tlZC5h
cHBlbmQod2NwYXRoKQorCisgICAgICAgIHJldHVybiByb290c3RhdHVzCisgICAgZnJvbXN0cmlu
ZyA9IHN0YXRpY21ldGhvZChmcm9tc3RyaW5nKQorCitjbGFzcyBJbmZvU3ZuV0NDb21tYW5kOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXRwdXQpOgorICAgICAgICAjIFBhdGg6IHRlc3QKKyAg
ICAgICAgIyBVUkw6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9zdGQucGF0aC90cnVuay9kaXN0
L3N0ZC5wYXRoL3Rlc3QKKyAgICAgICAgIyBSZXBvc2l0b3J5IFVVSUQ6IGZkMGQ3YmYyLWRmYjYt
MDMxMC04ZDMxLWI3ZWNmZTk2YWFkYQorICAgICAgICAjIFJldmlzaW9uOiAyMTUxCisgICAgICAg
ICMgTm9kZSBLaW5kOiBkaXJlY3RvcnkKKyAgICAgICAgIyBTY2hlZHVsZTogbm9ybWFsCisgICAg
ICAgICMgTGFzdCBDaGFuZ2VkIEF1dGhvcjogaHBrCisgICAgICAgICMgTGFzdCBDaGFuZ2VkIFJl
djogMjEwMAorICAgICAgICAjIExhc3QgQ2hhbmdlZCBEYXRlOiAyMDAzLTEwLTI3IDIwOjQzOjE0
ICswMTAwIChNb24sIDI3IE9jdCAyMDAzKQorICAgICAgICAjIFByb3BlcnRpZXMgTGFzdCBVcGRh
dGVkOiAyMDAzLTExLTAzIDE0OjQ3OjQ4ICswMTAwIChNb24sIDAzIE5vdiAyMDAzKQorCisgICAg
ICAgIGQgPSB7fQorICAgICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXQoJ1xuJyk6CisgICAg
ICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICBrZXksIHZhbHVlID0gbGluZS5zcGxpdCgnOicsIDEpCisgICAgICAgICAgICBr
ZXkgPSBrZXkubG93ZXIoKS5yZXBsYWNlKCcgJywgJycpCisgICAgICAgICAgICB2YWx1ZSA9IHZh
bHVlLnN0cmlwKCkKKyAgICAgICAgICAgIGRba2V5XSA9IHZhbHVlCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHNlbGYudXJsID0gZFsndXJsJ10KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgor
ICAgICAgICAgICAgcmFpc2UgIFZhbHVlRXJyb3IoIk5vdCBhIHZlcnNpb25lZCByZXNvdXJjZSIp
CisgICAgICAgICAgICAjcmFpc2UgVmFsdWVFcnJvciwgIk5vdCBhIHZlcnNpb25lZCByZXNvdXJj
ZSAlciIgJSBwYXRoCisgICAgICAgIHNlbGYua2luZCA9IGRbJ25vZGVraW5kJ10gPT0gJ2RpcmVj
dG9yeScgYW5kICdkaXInIG9yIGRbJ25vZGVraW5kJ10KKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgc2VsZi5yZXYgPSBpbnQoZFsncmV2aXNpb24nXSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9y
OgorICAgICAgICAgICAgc2VsZi5yZXYgPSBOb25lCisKKyAgICAgICAgc2VsZi5wYXRoID0gcHku
cGF0aC5sb2NhbChkWydwYXRoJ10pCisgICAgICAgIHNlbGYuc2l6ZSA9IHNlbGYucGF0aC5zaXpl
KCkKKyAgICAgICAgaWYgJ2xhc3RjaGFuZ2VkcmV2JyBpbiBkOgorICAgICAgICAgICAgc2VsZi5j
cmVhdGVkX3JldiA9IGludChkWydsYXN0Y2hhbmdlZHJldiddKQorICAgICAgICBpZiAnbGFzdGNo
YW5nZWRhdXRob3InIGluIGQ6CisgICAgICAgICAgICBzZWxmLmxhc3RfYXV0aG9yID0gZFsnbGFz
dGNoYW5nZWRhdXRob3InXQorICAgICAgICBpZiAnbGFzdGNoYW5nZWRkYXRlJyBpbiBkOgorICAg
ICAgICAgICAgc2VsZi5tdGltZSA9IHBhcnNlX3djaW5mb3RpbWUoZFsnbGFzdGNoYW5nZWRkYXRl
J10pCisgICAgICAgICAgICBzZWxmLnRpbWUgPSBzZWxmLm10aW1lICogMTAwMDAwMAorCisgICAg
ZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fID09
IG90aGVyLl9fZGljdF9fCisKK2RlZiBwYXJzZV93Y2luZm90aW1lKHRpbWVzdHIpOgorICAgICIi
IiBSZXR1cm5zIHNlY29uZHMgc2luY2UgZXBvY2gsIFVUQy4gIiIiCisgICAgIyBleGFtcGxlOiAy
MDAzLTEwLTI3IDIwOjQzOjE0ICswMTAwIChNb24sIDI3IE9jdCAyMDAzKQorICAgIG0gPSByZS5t
YXRjaChyJyhcZCstXGQrLVxkKyBcZCs6XGQrOlxkKykgKFsrLV1cZCspIC4qJywgdGltZXN0cikK
KyAgICBpZiBub3QgbToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGltZXN0cmluZyAlciBk
b2VzIG5vdCBtYXRjaCIgJSB0aW1lc3RyKQorICAgIHRpbWVzdHIsIHRpbWV6b25lID0gbS5ncm91
cHMoKQorICAgICMgZG8gbm90IGhhbmRsZSB0aW1lem9uZSBzcGVjaWFsbHksIHJldHVybiB2YWx1
ZSBzaG91bGQgYmUgVVRDCisgICAgcGFyc2VkdGltZSA9IHRpbWUuc3RycHRpbWUodGltZXN0ciwg
IiVZLSVtLSVkICVIOiVNOiVTIikKKyAgICByZXR1cm4gY2FsZW5kYXIudGltZWdtKHBhcnNlZHRp
bWUpCisKK2RlZiBtYWtlX3JlY3Vyc2l2ZV9wcm9wZGljdCh3Y3Jvb3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJleCA9
IHJlLmNvbXBpbGUoIlByb3BlcnRpZXMgb24gJyguKiknOiIpKToKKyAgICAiIiIgUmV0dXJuIGEg
ZGljdGlvbmFyeSBvZiBwYXRoLT5Qcm9wTGlzdERpY3QgbWFwcGluZ3MuICIiIgorICAgIGxpbmVz
ID0gW3ggZm9yIHggaW4gb3V0cHV0LnNwbGl0KCdcbicpIGlmIHhdCisgICAgcGRpY3QgPSB7fQor
ICAgIHdoaWxlIGxpbmVzOgorICAgICAgICBsaW5lID0gbGluZXMucG9wKDApCisgICAgICAgIG0g
PSByZXgubWF0Y2gobGluZSkKKyAgICAgICAgaWYgbm90IG06CisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJjb3VsZCBub3QgcGFyc2UgcHJvcGdldC1saW5lOiAlciIgJSBsaW5lKQorICAg
ICAgICBwYXRoID0gbS5ncm91cHMoKVswXQorICAgICAgICB3Y3BhdGggPSB3Y3Jvb3Quam9pbihw
YXRoLCBhYnM9MSkKKyAgICAgICAgcHJvcG5hbWVzID0gW10KKyAgICAgICAgd2hpbGUgbGluZXMg
YW5kIGxpbmVzWzBdLnN0YXJ0c3dpdGgoJyAgJyk6CisgICAgICAgICAgICBwcm9wbmFtZSA9IGxp
bmVzLnBvcCgwKS5zdHJpcCgpCisgICAgICAgICAgICBwcm9wbmFtZXMuYXBwZW5kKHByb3BuYW1l
KQorICAgICAgICBhc3NlcnQgcHJvcG5hbWVzLCAibXVzdCBoYXZlIGZvdW5kIHByb3BlcnRpZXMh
IgorICAgICAgICBwZGljdFt3Y3BhdGhdID0gUHJvcExpc3REaWN0KHdjcGF0aCwgcHJvcG5hbWVz
KQorICAgIHJldHVybiBwZGljdAorCisKK2RlZiBpbXBvcnR4bWwoY2FjaGU9W10pOgorICAgIGlm
IGNhY2hlOgorICAgICAgICByZXR1cm4gY2FjaGUKKyAgICBmcm9tIHhtbC5kb20gaW1wb3J0IG1p
bmlkb20KKyAgICBmcm9tIHhtbC5wYXJzZXJzLmV4cGF0IGltcG9ydCBFeHBhdEVycm9yCisgICAg
Y2FjaGUuZXh0ZW5kKFttaW5pZG9tLCBFeHBhdEVycm9yXSkKKyAgICByZXR1cm4gY2FjaGUKKwor
Y2xhc3MgTG9nRW50cnk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2VudHJ5KToKKyAgICAg
ICAgc2VsZi5yZXYgPSBpbnQobG9nZW50cnkuZ2V0QXR0cmlidXRlKCdyZXZpc2lvbicpKQorICAg
ICAgICBmb3IgbHBhcnQgaW4gZmlsdGVyKE5vbmUsIGxvZ2VudHJ5LmNoaWxkTm9kZXMpOgorICAg
ICAgICAgICAgaWYgbHBhcnQubm9kZVR5cGUgPT0gbHBhcnQuRUxFTUVOVF9OT0RFOgorICAgICAg
ICAgICAgICAgIGlmIGxwYXJ0Lm5vZGVOYW1lID09ICdhdXRob3InOgorICAgICAgICAgICAgICAg
ICAgICBzZWxmLmF1dGhvciA9IGxwYXJ0LmZpcnN0Q2hpbGQubm9kZVZhbHVlCisgICAgICAgICAg
ICAgICAgZWxpZiBscGFydC5ub2RlTmFtZSA9PSAnbXNnJzoKKyAgICAgICAgICAgICAgICAgICAg
aWYgbHBhcnQuZmlyc3RDaGlsZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubXNnID0g
bHBhcnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubXNnID0gJycKKyAgICAgICAgICAgICAgICBlbGlm
IGxwYXJ0Lm5vZGVOYW1lID09ICdkYXRlJzoKKyAgICAgICAgICAgICAgICAgICAgIzIwMDMtMDct
MjlUMjA6MDU6MTEuNTk4NjM3WgorICAgICAgICAgICAgICAgICAgICB0aW1lc3RyID0gbHBhcnQu
Zmlyc3RDaGlsZC5ub2RlVmFsdWUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRlID0gcGFy
c2VfYXByX3RpbWUodGltZXN0cikKKyAgICAgICAgICAgICAgICBlbGlmIGxwYXJ0Lm5vZGVOYW1l
ID09ICdwYXRocyc6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RycGF0aHMgPSBbXQorICAg
ICAgICAgICAgICAgICAgICBmb3IgcHBhcnQgaW4gZmlsdGVyKE5vbmUsIGxwYXJ0LmNoaWxkTm9k
ZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHBhcnQubm9kZVR5cGUgPT0gcHBhcnQu
RUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RycGF0aHMu
YXBwZW5kKFBhdGhFbnRyeShwcGFydCkpCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAg
ICByZXR1cm4gJzxMb2dlbnRyeSByZXY9JWQgYXV0aG9yPSVzIGRhdGU9JXM+JyAlICgKKyAgICAg
ICAgICAgIHNlbGYucmV2LCBzZWxmLmF1dGhvciwgc2VsZi5kYXRlKQorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3BhdGgvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Y2U0ZGY2NmFkZTNhZTFlNDMwMWM5YWI2NGNjZGQyOTZm
YTVjNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvX19pbml0X18ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19wYXRoL2NhY2hldXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvY29tbW9u
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9sb2NhbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3ZudXJs
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9zdm53Yy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
cHJvY2Vzcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvX19pbml0X18ucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODZjNzE0YWQxYWVkM2IxYjUxMWQ5MGMxZTFjZTZjYjIyZDY2MmVjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvX19pbml0X18ucHkKQEAgLTAsMCArMSBA
QAorIiIiIGhpZ2gtbGV2ZWwgc3ViLXByb2Nlc3MgaGFuZGxpbmcgIiIiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L19wcm9jZXNzL2NtZGV4ZWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2NtZGV4
ZWMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjgzYTI0OTQwMjk2ODcwMzgzNDNkZTI5MDBjYzJhYzdlMTljODc0
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvY21kZXhlYy5weQpAQCAt
MCwwICsxLDQ5IEBACitpbXBvcnQgc3lzCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHB5Citm
cm9tIHN1YnByb2Nlc3MgaW1wb3J0IFBvcGVuLCBQSVBFCisKK2RlZiBjbWRleGVjKGNtZCk6Cisg
ICAgIiIiIHJldHVybiB1bmljb2RlIG91dHB1dCBvZiBleGVjdXRpbmcgJ2NtZCcgaW4gYSBzZXBh
cmF0ZSBwcm9jZXNzLgorCisgICAgcmFpc2UgY21kZXhlYy5FcnJvciBleGVjZXB0aW9uIGlmIHRo
ZSBjb21tYW5kIGZhaWxlZC4KKyAgICB0aGUgZXhjZXB0aW9uIHdpbGwgcHJvdmlkZSBhbiAnZXJy
JyBhdHRyaWJ1dGUgY29udGFpbmluZworICAgIHRoZSBlcnJvci1vdXRwdXQgZnJvbSB0aGUgY29t
bWFuZC4KKyAgICBpZiB0aGUgc3VicHJvY2VzcyBtb2R1bGUgZG9lcyBub3QgcHJvdmlkZSBhIHBy
b3BlciBlbmNvZGluZy91bmljb2RlIHN0cmluZ3MKKyAgICBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5n
KCkgd2lsbCBiZSB1c2VkLCBpZiB0aGF0IGRvZXMgbm90IGV4aXN0LCAnVVRGLTgnLgorICAgICIi
IgorICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSwKKyAgICAg
ICAgICAgIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLAorICAgICAgICAgICAgc3Rkb3V0PXN1YnBy
b2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKKyAgICBvdXQsIGVyciA9IHByb2Nl
c3MuY29tbXVuaWNhdGUoKQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOiAjIG9uIHB5
MyB3ZSBnZXQgdW5pY29kZSBzdHJpbmdzLCBvbiBweTIgbm90CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIGRlZmF1bHRfZW5jb2RpbmcgPSBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkgIyBqeXRo
b24gbWF5IG5vdCBoYXZlIGl0CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAg
ICAgICAgIGRlZmF1bHRfZW5jb2RpbmcgPSBzeXMuc3Rkb3V0LmVuY29kaW5nIG9yICdVVEYtOCcK
KyAgICAgICAgb3V0ID0gdW5pY29kZShvdXQsIHByb2Nlc3Muc3Rkb3V0LmVuY29kaW5nIG9yIGRl
ZmF1bHRfZW5jb2RpbmcpCisgICAgICAgIGVyciA9IHVuaWNvZGUoZXJyLCBwcm9jZXNzLnN0ZGVy
ci5lbmNvZGluZyBvciBkZWZhdWx0X2VuY29kaW5nKQorICAgIHN0YXR1cyA9IHByb2Nlc3MucG9s
bCgpCisgICAgaWYgc3RhdHVzOgorICAgICAgICByYWlzZSBFeGVjdXRpb25GYWlsZWQoc3RhdHVz
LCBzdGF0dXMsIGNtZCwgb3V0LCBlcnIpCisgICAgcmV0dXJuIG91dAorCitjbGFzcyBFeGVjdXRp
b25GYWlsZWQocHkuZXJyb3IuRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMs
IHN5c3RlbXN0YXR1cywgY21kLCBvdXQsIGVycik6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRf
XyhzZWxmKQorICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLnN5c3Rl
bXN0YXR1cyA9IHN5c3RlbXN0YXR1cworICAgICAgICBzZWxmLmNtZCA9IGNtZAorICAgICAgICBz
ZWxmLmVyciA9IGVycgorICAgICAgICBzZWxmLm91dCA9IG91dAorCisgICAgZGVmIF9fc3RyX18o
c2VsZik6CisgICAgICAgIHJldHVybiAiRXhlY3V0aW9uRmFpbGVkOiAlZCAgJXNcbiVzIiAlKHNl
bGYuc3RhdHVzLCBzZWxmLmNtZCwgc2VsZi5lcnIpCisKKyMgZXhwb3J0IHRoZSBleGNlcHRpb24g
dW5kZXIgdGhlIG5hbWUgJ3B5LnByb2Nlc3MuY21kZXhlYy5FcnJvcicKK2NtZGV4ZWMuRXJyb3Ig
PSBFeGVjdXRpb25GYWlsZWQKK3RyeToKKyAgICBFeGVjdXRpb25GYWlsZWQuX19tb2R1bGVfXyA9
ICdweS5wcm9jZXNzLmNtZGV4ZWMnCisgICAgRXhlY3V0aW9uRmFpbGVkLl9fbmFtZV9fID0gJ0Vy
cm9yJworZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yKToKKyAgICBwYXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2ZvcmtlZGZ1bmMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
cm9jZXNzL2ZvcmtlZGZ1bmMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMyODUzMDY4ODRiZjJmMDMxMGQ4YjRm
OTRhNGFlMmY3NzJmZTA0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3Mv
Zm9ya2VkZnVuYy5weQpAQCAtMCwwICsxLDEyMCBAQAorCisiIiIKKyAgICBGb3JrZWRGdW5jIHBy
b3ZpZGVzIGEgd2F5IHRvIHJ1biBhIGZ1bmN0aW9uIGluIGEgZm9ya2VkIHByb2Nlc3MKKyAgICBh
bmQgZ2V0IGF0IGl0cyByZXR1cm4gdmFsdWUsIHN0ZG91dCBhbmQgc3RkZXJyIG91dHB1dCBhcyB3
ZWxsCisgICAgYXMgc2lnbmFscyBhbmQgZXhpdHN0YXR1c3VzLgorIiIiCisKK2ltcG9ydCBweQor
aW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgbWFyc2hhbAorCisKK2RlZiBnZXRfdW5idWZm
ZXJlZF9pbyhmZCwgZmlsZW5hbWUpOgorICAgIGYgPSBvcGVuKHN0cihmaWxlbmFtZSksICJ3IikK
KyAgICBpZiBmZCAhPSBmLmZpbGVubygpOgorICAgICAgICBvcy5kdXAyKGYuZmlsZW5vKCksIGZk
KQorICAgIGNsYXNzIEF1dG9GbHVzaDoKKyAgICAgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgor
ICAgICAgICAgICAgZi53cml0ZShkYXRhKQorICAgICAgICAgICAgZi5mbHVzaCgpCisgICAgICAg
IGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBnZXRhdHRy
KGYsIG5hbWUpCisgICAgcmV0dXJuIEF1dG9GbHVzaCgpCisKKworY2xhc3MgRm9ya2VkRnVuYzoK
KyAgICBFWElUU1RBVFVTX0VYQ0VQVElPTiA9IDMKKworCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGZ1biwgYXJncz1Ob25lLCBrd2FyZ3M9Tm9uZSwgbmljZV9sZXZlbD0wLAorICAgICAgICAgICAg
ICAgICBjaGlsZF9vbl9zdGFydD1Ob25lLCBjaGlsZF9vbl9leGl0PU5vbmUpOgorICAgICAgICBp
ZiBhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICBhcmdzID0gW10KKyAgICAgICAgaWYga3dhcmdz
IGlzIE5vbmU6CisgICAgICAgICAgICBrd2FyZ3MgPSB7fQorICAgICAgICBzZWxmLmZ1biA9IGZ1
bgorICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisgICAgICAgIHNlbGYua3dhcmdzID0ga3dhcmdz
CisgICAgICAgIHNlbGYudGVtcGRpciA9IHRlbXBkaXIgPSBweS5wYXRoLmxvY2FsLm1rZHRlbXAo
KQorICAgICAgICBzZWxmLlJFVFZBTCA9IHRlbXBkaXIuZW5zdXJlKCdyZXR2YWwnKQorICAgICAg
ICBzZWxmLlNURE9VVCA9IHRlbXBkaXIuZW5zdXJlKCdzdGRvdXQnKQorICAgICAgICBzZWxmLlNU
REVSUiA9IHRlbXBkaXIuZW5zdXJlKCdzdGRlcnInKQorCisgICAgICAgIHBpZCA9IG9zLmZvcmso
KQorICAgICAgICBpZiBwaWQ6ICAjIGluIHBhcmVudCBwcm9jZXNzCisgICAgICAgICAgICBzZWxm
LnBpZCA9IHBpZAorICAgICAgICBlbHNlOiAgIyBpbiBjaGlsZCBwcm9jZXNzCisgICAgICAgICAg
ICBzZWxmLnBpZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuX2NoaWxkKG5pY2VfbGV2ZWwsIGNo
aWxkX29uX3N0YXJ0LCBjaGlsZF9vbl9leGl0KQorCisgICAgZGVmIF9jaGlsZChzZWxmLCBuaWNl
X2xldmVsLCBjaGlsZF9vbl9zdGFydCwgY2hpbGRfb25fZXhpdCk6CisgICAgICAgICMgcmlnaHQg
bm93IHdlIG5lZWQgdG8gY2FsbCBhIGZ1bmN0aW9uLCBidXQgZmlyc3Qgd2UgbmVlZCB0bworICAg
ICAgICAjIG1hcCBhbGwgSU8gdGhhdCBtaWdodCBoYXBwZW4KKyAgICAgICAgc3lzLnN0ZG91dCA9
IHN0ZG91dCA9IGdldF91bmJ1ZmZlcmVkX2lvKDEsIHNlbGYuU1RET1VUKQorICAgICAgICBzeXMu
c3RkZXJyID0gc3RkZXJyID0gZ2V0X3VuYnVmZmVyZWRfaW8oMiwgc2VsZi5TVERFUlIpCisgICAg
ICAgIHJldHZhbGYgPSBzZWxmLlJFVFZBTC5vcGVuKCJ3YiIpCisgICAgICAgIEVYSVRTVEFUVVMg
PSAwCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5pY2VfbGV2ZWw6CisgICAgICAgICAg
ICAgICAgb3MubmljZShuaWNlX2xldmVsKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIGlmIGNoaWxkX29uX3N0YXJ0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBj
aGlsZF9vbl9zdGFydCgpCisgICAgICAgICAgICAgICAgcmV0dmFsID0gc2VsZi5mdW4oKnNlbGYu
YXJncywgKipzZWxmLmt3YXJncykKKyAgICAgICAgICAgICAgICByZXR2YWxmLndyaXRlKG1hcnNo
YWwuZHVtcHMocmV0dmFsKSkKKyAgICAgICAgICAgICAgICBpZiBjaGlsZF9vbl9leGl0IGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgICAgICBjaGlsZF9vbl9leGl0KCkKKyAgICAgICAgICAg
IGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZv
KCkKKyAgICAgICAgICAgICAgICBzdGRlcnIud3JpdGUoc3RyKGV4Y2luZm8uX2dldHJlcHJjcmFz
aCgpKSkKKyAgICAgICAgICAgICAgICBFWElUU1RBVFVTID0gc2VsZi5FWElUU1RBVFVTX0VYQ0VQ
VElPTgorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3Rkb3V0LmNsb3NlKCkKKyAgICAg
ICAgICAgIHN0ZGVyci5jbG9zZSgpCisgICAgICAgICAgICByZXR2YWxmLmNsb3NlKCkKKyAgICAg
ICAgb3MuY2xvc2UoMSkKKyAgICAgICAgb3MuY2xvc2UoMikKKyAgICAgICAgb3MuX2V4aXQoRVhJ
VFNUQVRVUykKKworICAgIGRlZiB3YWl0ZmluaXNoKHNlbGYsIHdhaXRlcj1vcy53YWl0cGlkKToK
KyAgICAgICAgcGlkLCBzeXN0ZW1zdGF0dXMgPSB3YWl0ZXIoc2VsZi5waWQsIDApCisgICAgICAg
IGlmIHN5c3RlbXN0YXR1czoKKyAgICAgICAgICAgIGlmIG9zLldJRlNJR05BTEVEKHN5c3RlbXN0
YXR1cyk6CisgICAgICAgICAgICAgICAgZXhpdHN0YXR1cyA9IG9zLldURVJNU0lHKHN5c3RlbXN0
YXR1cykgKyAxMjgKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhpdHN0YXR1
cyA9IG9zLldFWElUU1RBVFVTKHN5c3RlbXN0YXR1cykKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGV4aXRzdGF0dXMgPSAwCisgICAgICAgIHNpZ25hbCA9IHN5c3RlbXN0YXR1cyAmIDB4N2YK
KyAgICAgICAgaWYgbm90IGV4aXRzdGF0dXMgYW5kIG5vdCBzaWduYWw6CisgICAgICAgICAgICBy
ZXR2YWwgPSBzZWxmLlJFVFZBTC5vcGVuKCdyYicpCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgcmV0dmFsX2RhdGEgPSByZXR2YWwucmVhZCgpCisgICAgICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgICAgIHJldHZhbC5jbG9zZSgpCisgICAgICAgICAgICByZXR2YWwgPSBt
YXJzaGFsLmxvYWRzKHJldHZhbF9kYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0
dmFsID0gTm9uZQorICAgICAgICBzdGRvdXQgPSBzZWxmLlNURE9VVC5yZWFkKCkKKyAgICAgICAg
c3RkZXJyID0gc2VsZi5TVERFUlIucmVhZCgpCisgICAgICAgIHNlbGYuX3JlbW92ZXRlbXAoKQor
ICAgICAgICByZXR1cm4gUmVzdWx0KGV4aXRzdGF0dXMsIHNpZ25hbCwgcmV0dmFsLCBzdGRvdXQs
IHN0ZGVycikKKworICAgIGRlZiBfcmVtb3ZldGVtcChzZWxmKToKKyAgICAgICAgaWYgc2VsZi50
ZW1wZGlyLmNoZWNrKCk6CisgICAgICAgICAgICBzZWxmLnRlbXBkaXIucmVtb3ZlKCkKKworICAg
IGRlZiBfX2RlbF9fKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBpZCBpcyBub3QgTm9uZTogICMg
b25seSBjbGVhbiB1cCBpbiBtYWluIHByb2Nlc3MKKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZXRl
bXAoKQorCisKK2NsYXNzIFJlc3VsdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBl
eGl0c3RhdHVzLCBzaWduYWwsIHJldHZhbCwgc3Rkb3V0LCBzdGRlcnIpOgorICAgICAgICBzZWxm
LmV4aXRzdGF0dXMgPSBleGl0c3RhdHVzCisgICAgICAgIHNlbGYuc2lnbmFsID0gc2lnbmFsCisg
ICAgICAgIHNlbGYucmV0dmFsID0gcmV0dmFsCisgICAgICAgIHNlbGYub3V0ID0gc3Rkb3V0Cisg
ICAgICAgIHNlbGYuZXJyID0gc3RkZXJyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNz
L2tpbGxwcm9jLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9raWxscHJvYy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOGU4MzEwYjVmNmNhYWY4ODQ0NzNiYTExYzRjNGQzYjZmNzhjN2QzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9raWxscHJvYy5weQpAQCAtMCwwICsxLDIzIEBACitp
bXBvcnQgcHkKK2ltcG9ydCBvcywgc3lzCisKK2lmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiIG9y
IGdldGF0dHIob3MsICdfbmFtZScsICcnKSA9PSAnbnQnOgorICAgIHRyeToKKyAgICAgICAgaW1w
b3J0IGN0eXBlcworICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgZGVmIGRva2lsbChw
aWQpOgorICAgICAgICAgICAgcHkucHJvY2Vzcy5jbWRleGVjKCJ0YXNra2lsbCAvRiAvUElEICVk
IiAlKHBpZCwpKQorICAgIGVsc2U6CisgICAgICAgIGRlZiBkb2tpbGwocGlkKToKKyAgICAgICAg
ICAgIFBST0NFU1NfVEVSTUlOQVRFID0gMQorICAgICAgICAgICAgaGFuZGxlID0gY3R5cGVzLndp
bmRsbC5rZXJuZWwzMi5PcGVuUHJvY2VzcygKKyAgICAgICAgICAgICAgICAgICAgICAgIFBST0NF
U1NfVEVSTUlOQVRFLCBGYWxzZSwgcGlkKQorICAgICAgICAgICAgY3R5cGVzLndpbmRsbC5rZXJu
ZWwzMi5UZXJtaW5hdGVQcm9jZXNzKGhhbmRsZSwgLTEpCisgICAgICAgICAgICBjdHlwZXMud2lu
ZGxsLmtlcm5lbDMyLkNsb3NlSGFuZGxlKGhhbmRsZSkKK2Vsc2U6CisgICAgZGVmIGRva2lsbChw
aWQpOgorICAgICAgICBvcy5raWxsKHBpZCwgMTUpCisKK2RlZiBraWxsKHBpZCk6CisgICAgIiIi
IGtpbGwgcHJvY2VzcyBieSBpZC4gIiIiCisgICAgZG9raWxsKHBpZCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3Byb2Nlc3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMzI5MjkxMDViYzAyZWEzOTRiYzQ5ZmMwODFiMWJh
YzY0NmVlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvX19p
bml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2NtZGV4ZWMucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
cm9jZXNzL2ZvcmtlZGZ1bmMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2tpbGxwcm9jLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19zdGQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19zdGQucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzRkNDM2NzI2NTRlN2JjYTlhYTI2MTdkOGY2ZjE0YWUwYWQ4ZDhhOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3N0ZC5weQpAQCAtMCwwICsxLDI2IEBACitpbXBvcnQgc3lz
CitpbXBvcnQgd2FybmluZ3MKKworCitjbGFzcyBQeVN0ZElzRGVwcmVjYXRlZFdhcm5pbmcoRGVw
cmVjYXRpb25XYXJuaW5nKToKKyAgICBwYXNzCisKKworY2xhc3MgU3RkKG9iamVjdCk6CisgICAg
IiIiIG1ha2VzIHRvcC1sZXZlbCBweXRob24gbW9kdWxlcyBhdmFpbGFibGUgYXMgYW4gYXR0cmli
dXRlLAorICAgICAgICBpbXBvcnRpbmcgdGhlbSBvbiBmaXJzdCBhY2Nlc3MuCisgICAgIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuX19kaWN0X18gPSBzeXMubW9k
dWxlcworCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICB3YXJuaW5n
cy53YXJuKCJweS5zdGQgaXMgZGVwcmVjYXRlZCwgcGxhc2UgaW1wb3J0ICVzIGRpcmVjdGx5IiAl
IG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9UHlTdGRJc0RlcHJlY2F0ZWRX
YXJuaW5nKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtID0gX19pbXBvcnRfXyhuYW1lKQor
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVF
cnJvcigicHkuc3RkOiBjb3VsZCBub3QgaW1wb3J0ICVzIiAlIG5hbWUpCisgICAgICAgIHJldHVy
biBtCisKK3N0ZCA9IFN0ZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRf
Xy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRv
IHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ct
MS40LmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ4
MjIyMDA3ZmRlOTNmNTlmNzE1NTRlZDE3NDJhN2FiYWUzMWFlNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL0RFU0NS
SVBUSU9OLnJzdApAQCAtMCwwICsxLDg3IEBACitXZWxjb21lIHRvIGFwaXBrZyEKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitXaXRoIGFwaXBrZyB5b3UgY2FuIGNvbnRyb2wgdGhlIGV4cG9y
dGVkIG5hbWVzcGFjZSBvZiBhCitweXRob24gcGFja2FnZSBhbmQgZ3JlYXRseSByZWR1Y2UgdGhl
IG51bWJlciBvZiBpbXBvcnRzIGZvciB5b3VyIHVzZXJzLgorSXQgaXMgYSBgc21hbGwgcHVyZSBw
eXRob24gbW9kdWxlYF8gdGhhdCB3b3JrcyBvbiB2aXJ0dWFsbHkgYWxsIFB5dGhvbgordmVyc2lv
bnMsIGluY2x1ZGluZyBDUHl0aG9uMi4zIHRvIFB5dGhvbjMuMSwgSnl0aG9uIGFuZCBQeVB5LiAg
SXQgY28tb3BlcmF0ZXMKK3dlbGwgd2l0aCBQeXRob24ncyBgYGhlbHAoKWBgIHN5c3RlbSwgY3Vz
dG9tIGltcG9ydGVycyAoUEVQMzAyKSBhbmQgY29tbW9uCitjb21tYW5kIGxpbmUgY29tcGxldGlv
biB0b29scy4KKworVXNhZ2UgaXMgdmVyeSBzaW1wbGU6IHlvdSBjYW4gcmVxdWlyZSAnYXBpcGtn
JyBhcyBhIGRlcGVuZGVuY3kgb3IgeW91CitjYW4gY29weSBwYXN0ZSB0aGUgPDIwMCBMaW5lcyBv
ZiBjb2RlIGludG8geW91ciBwcm9qZWN0LgorCisKK1R1dG9yaWFsIGV4YW1wbGUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0KKworSGVyZSBpcyBhIHNpbXBsZSBgYG15cGtnYGAgcGFja2FnZSB0aGF0IHNw
ZWNpZmllcyBvbmUgbmFtZXNwYWNlCithbmQgZXhwb3J0cyB0d28gb2JqZWN0cyBpbXBvcnRlZCBm
cm9tIGRpZmZlcmVudCBtb2R1bGVzOjoKKworICAgICMgbXlwa2cvX19pbml0X18ucHkKKyAgICBp
bXBvcnQgYXBpcGtnCisgICAgYXBpcGtnLmluaXRwa2coX19uYW1lX18sIHsKKyAgICAgICAgJ3Bh
dGgnOiB7CisgICAgICAgICAgICAnQ2xhc3MxJzogIl9teXBrZy5zb21lbW9kdWxlOkNsYXNzMSIs
CisgICAgICAgICAgICAnY2xzYXR0cic6ICJfbXlwa2cub3RoZXJtb2R1bGU6Q2xhc3MyLmF0dHIi
LAorICAgICAgICB9CisgICAgfQorCitUaGUgcGFja2FnZSBpcyBpbml0aWFsaXplZCB3aXRoIGEg
ZGljdGlvbmFyeSBhcyBuYW1lc3BhY2UuCisKK1lvdSBuZWVkIHRvIGNyZWF0ZSBhIGBgX215cGtn
YGAgcGFja2FnZSB3aXRoIGEgYGBzb21lbW9kdWxlLnB5YGAKK2FuZCBgYG90aGVybW9kdWxlLnB5
YGAgY29udGFpbmluZyB0aGUgcmVzcGVjdGl2ZSBjbGFzc2VzLgorVGhlIGBgX215cGtnYGAgaXMg
bm90IHNwZWNpYWwgLSBpdCdzIGEgY29tcGxldGVseQorcmVndWxhciBweXRob24gcGFja2FnZS4K
KworTmFtZXNwYWNlIGRpY3Rpb25hcmllcyBjb250YWluIGBgbmFtZTogdmFsdWVgYCBtYXBwaW5n
cword2hlcmUgdGhlIHZhbHVlIG1heSBiZSBhbm90aGVyIG5hbWVzcGFjZSBkaWN0aW9uYXJ5IG9y
CithIHN0cmluZyBzcGVjaWZ5aW5nIGFuIGltcG9ydCBsb2NhdGlvbi4gIE9uIGFjY2Vzc2luZwor
YW4gbmFtZXNwYWNlIGF0dHJpYnV0ZSBhbiBpbXBvcnQgd2lsbCBiZSBwZXJmb3JtZWQ6OgorCisg
ICAgPj4+IGltcG9ydCBteXBrZworICAgID4+PiBteXBrZy5wYXRoCisgICAgPEFwaU1vZHVsZSAn
bXlwa2cucGF0aCc+CisgICAgPj4+IG15cGtnLnBhdGguQ2xhc3MxICAgIyAnX215cGtnLnNvbWVt
b2R1bGUnIGdldHMgaW1wb3J0ZWQgbm93CisgICAgPGNsYXNzIF9teXBrZy5zb21lbW9kdWxlLkNs
YXNzMSBhdCAweGI3ZDQyOGZjPgorICAgID4+PiBteXBrZy5wYXRoLmNsc2F0dHIgICMgJ19teXBr
Zy5vdGhlcm1vZHVsZScgZ2V0cyBpbXBvcnRlZCBub3cKKyAgICA0ICMgdGhlIHZhbHVlIG9mIF9t
eXBrZy5vdGhlcm1vZHVsZS5DbGFzczIuYXR0cgorCitUaGUgYGBteXBrZy5wYXRoYGAgbmFtZXNw
YWNlIGFuZCBpdHMgdHdvIGVudHJpZXMgYXJlCitsb2FkZWQgd2hlbiB0aGV5IGFyZSBhY2Nlc3Nl
ZC4gICBUaGlzIG1lYW5zOgorCisqIGxhenkgbG9hZGluZyAtIG9ubHkgd2hhdCBpcyBhY3R1YWxs
eSBuZWVkZWQgaXMgZXZlciBsb2FkZWQKKworKiBvbmx5IHRoZSByb290ICJteXBrZyIgZXZlciBu
ZWVkcyB0byBiZSBpbXBvcnRlZCB0byBnZXQKKyAgYWNjZXNzIHRvIHRoZSBjb21wbGV0ZSBmdW5j
dGlvbmFsaXR5LgorCisqIHRoZSB1bmRlcmx5aW5nIG1vZHVsZXMgYXJlIGFsc28gYWNjZXNzaWJs
ZSwgZm9yIGV4YW1wbGU6OgorCisgICAgZnJvbSBteXBrZy5zdWIgaW1wb3J0IENsYXNzMQorCisK
K0luY2x1ZGluZyBhcGlwa2cgaW4geW91ciBwYWNrYWdlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgZG9uJ3Qgd2FudCB0byBhZGQgYW4gYGBhcGlwa2dg
YCBkZXBlbmRlbmN5IHRvIHlvdXIgcGFja2FnZSB5b3UKK2NhbiBjb3B5IHRoZSBgYXBpcGtnLnB5
YF8gZmlsZSBzb21ld2hlcmUgdG8geW91ciBvd24gcGFja2FnZSwKK2ZvciBleGFtcGxlIGBgX215
cGtnL2FwaXBrZy5weWBgIGluIHRoZSBhYm92ZSBleGFtcGxlLiAgWW91Cit0aGVuIGltcG9ydCB0
aGUgYGBpbml0cGtnYGAgZnVuY3Rpb24gZnJvbSB0aGF0IG5ldyBwbGFjZSBhbmQKK2FyZSBnb29k
IHRvIGdvLgorCisuLiBfYHNtYWxsIHB1cmUgcHl0aG9uIG1vZHVsZWA6CisuLiBfYGFwaXBrZy5w
eWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL2FwaXBrZy9zcmMvdGlwL2FwaXBrZy5weQor
CitGZWVkYmFjaz8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSBoYXZlIHF1ZXN0
aW9ucyB5b3UgYXJlIHdlbGNvbWUgdG8KKworKiBqb2luIHRoZSAjcHlsaWIgY2hhbm5lbCBvbiBp
cmMuZnJlZW5vZGUubmV0CisqIHN1YnNjcmliZSB0byB0aGUgaHR0cDovL2NvZGVzcGVhay5uZXQv
bWFpbG1hbi9saXN0aW5mby9weS1kZXYgbGlzdC4KKyogY3JlYXRlIGFuIGlzc3VlIG9uIGh0dHA6
Ly9iaXRidWNrZXQub3JnL2hwazQyL2FwaXBrZy9pc3N1ZXMKKworaGF2ZSBmdW4sCitob2xnZXIg
a3Jla2VsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBp
cGtnLTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2Fn
ZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExYjU4OWUzOGEz
MjA0MWU0OTMzMmU1ZTgxYzJkMzYzZGM0MThkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9JTlNUQUxMRVIKQEAg
LTAsMCArMSBAQAorcGlwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdl
cy9hcGlwa2ctMS40LmRpc3QtaW5mby9NRVRBREFUQSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3Bh
Y2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL01FVEFEQVRBCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViN2U2MGFj
ZmZhZjYyMGQ0Zjg4OTVjMWQ4MzA1ZWM5MmUxZDkzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9NRVRBREFUQQpA
QCAtMCwwICsxLDEwOSBAQAorTWV0YWRhdGEtVmVyc2lvbjogMi4wCitOYW1lOiBhcGlwa2cKK1Zl
cnNpb246IDEuNAorU3VtbWFyeTogYXBpcGtnOiBuYW1lc3BhY2UgY29udHJvbCBhbmQgbGF6eS1p
bXBvcnQgbWVjaGFuaXNtCitIb21lLXBhZ2U6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL2Fw
aXBrZworQXV0aG9yOiBob2xnZXIga3Jla2VsCitBdXRob3ItZW1haWw6IGhvbGdlciBhdCBtZXJs
aW51eC5ldQorTGljZW5zZTogTUlUIExpY2Vuc2UKK1BsYXRmb3JtOiB1bml4CitQbGF0Zm9ybTog
bGludXgKK1BsYXRmb3JtOiBvc3gKK1BsYXRmb3JtOiBjeWd3aW4KK1BsYXRmb3JtOiB3aW4zMgor
Q2xhc3NpZmllcjogRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhCitDbGFzc2lmaWVyOiBJ
bnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCitDbGFzc2lmaWVyOiBMaWNlbnNlIDo6IE9T
SSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQorQ2xhc3NpZmllcjogT3BlcmF0aW5nIFN5c3RlbSA6
OiBQT1NJWAorQ2xhc3NpZmllcjogT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQgOjogV2lu
ZG93cworQ2xhc3NpZmllcjogT3BlcmF0aW5nIFN5c3RlbSA6OiBNYWNPUyA6OiBNYWNPUyBYCitD
bGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMKK0Ns
YXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbgorCitXZWxjb21lIHRvIGFw
aXBrZyEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaXRoIGFwaXBrZyB5b3UgY2FuIGNv
bnRyb2wgdGhlIGV4cG9ydGVkIG5hbWVzcGFjZSBvZiBhCitweXRob24gcGFja2FnZSBhbmQgZ3Jl
YXRseSByZWR1Y2UgdGhlIG51bWJlciBvZiBpbXBvcnRzIGZvciB5b3VyIHVzZXJzLgorSXQgaXMg
YSBgc21hbGwgcHVyZSBweXRob24gbW9kdWxlYF8gdGhhdCB3b3JrcyBvbiB2aXJ0dWFsbHkgYWxs
IFB5dGhvbgordmVyc2lvbnMsIGluY2x1ZGluZyBDUHl0aG9uMi4zIHRvIFB5dGhvbjMuMSwgSnl0
aG9uIGFuZCBQeVB5LiAgSXQgY28tb3BlcmF0ZXMKK3dlbGwgd2l0aCBQeXRob24ncyBgYGhlbHAo
KWBgIHN5c3RlbSwgY3VzdG9tIGltcG9ydGVycyAoUEVQMzAyKSBhbmQgY29tbW9uCitjb21tYW5k
IGxpbmUgY29tcGxldGlvbiB0b29scy4KKworVXNhZ2UgaXMgdmVyeSBzaW1wbGU6IHlvdSBjYW4g
cmVxdWlyZSAnYXBpcGtnJyBhcyBhIGRlcGVuZGVuY3kgb3IgeW91CitjYW4gY29weSBwYXN0ZSB0
aGUgPDIwMCBMaW5lcyBvZiBjb2RlIGludG8geW91ciBwcm9qZWN0LgorCisKK1R1dG9yaWFsIGV4
YW1wbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworSGVyZSBpcyBhIHNpbXBsZSBgYG15cGtnYGAg
cGFja2FnZSB0aGF0IHNwZWNpZmllcyBvbmUgbmFtZXNwYWNlCithbmQgZXhwb3J0cyB0d28gb2Jq
ZWN0cyBpbXBvcnRlZCBmcm9tIGRpZmZlcmVudCBtb2R1bGVzOjoKKworICAgICMgbXlwa2cvX19p
bml0X18ucHkKKyAgICBpbXBvcnQgYXBpcGtnCisgICAgYXBpcGtnLmluaXRwa2coX19uYW1lX18s
IHsKKyAgICAgICAgJ3BhdGgnOiB7CisgICAgICAgICAgICAnQ2xhc3MxJzogIl9teXBrZy5zb21l
bW9kdWxlOkNsYXNzMSIsCisgICAgICAgICAgICAnY2xzYXR0cic6ICJfbXlwa2cub3RoZXJtb2R1
bGU6Q2xhc3MyLmF0dHIiLAorICAgICAgICB9CisgICAgfQorCitUaGUgcGFja2FnZSBpcyBpbml0
aWFsaXplZCB3aXRoIGEgZGljdGlvbmFyeSBhcyBuYW1lc3BhY2UuCisKK1lvdSBuZWVkIHRvIGNy
ZWF0ZSBhIGBgX215cGtnYGAgcGFja2FnZSB3aXRoIGEgYGBzb21lbW9kdWxlLnB5YGAKK2FuZCBg
YG90aGVybW9kdWxlLnB5YGAgY29udGFpbmluZyB0aGUgcmVzcGVjdGl2ZSBjbGFzc2VzLgorVGhl
IGBgX215cGtnYGAgaXMgbm90IHNwZWNpYWwgLSBpdCdzIGEgY29tcGxldGVseQorcmVndWxhciBw
eXRob24gcGFja2FnZS4KKworTmFtZXNwYWNlIGRpY3Rpb25hcmllcyBjb250YWluIGBgbmFtZTog
dmFsdWVgYCBtYXBwaW5ncword2hlcmUgdGhlIHZhbHVlIG1heSBiZSBhbm90aGVyIG5hbWVzcGFj
ZSBkaWN0aW9uYXJ5IG9yCithIHN0cmluZyBzcGVjaWZ5aW5nIGFuIGltcG9ydCBsb2NhdGlvbi4g
IE9uIGFjY2Vzc2luZworYW4gbmFtZXNwYWNlIGF0dHJpYnV0ZSBhbiBpbXBvcnQgd2lsbCBiZSBw
ZXJmb3JtZWQ6OgorCisgICAgPj4+IGltcG9ydCBteXBrZworICAgID4+PiBteXBrZy5wYXRoCisg
ICAgPEFwaU1vZHVsZSAnbXlwa2cucGF0aCc+CisgICAgPj4+IG15cGtnLnBhdGguQ2xhc3MxICAg
IyAnX215cGtnLnNvbWVtb2R1bGUnIGdldHMgaW1wb3J0ZWQgbm93CisgICAgPGNsYXNzIF9teXBr
Zy5zb21lbW9kdWxlLkNsYXNzMSBhdCAweGI3ZDQyOGZjPgorICAgID4+PiBteXBrZy5wYXRoLmNs
c2F0dHIgICMgJ19teXBrZy5vdGhlcm1vZHVsZScgZ2V0cyBpbXBvcnRlZCBub3cKKyAgICA0ICMg
dGhlIHZhbHVlIG9mIF9teXBrZy5vdGhlcm1vZHVsZS5DbGFzczIuYXR0cgorCitUaGUgYGBteXBr
Zy5wYXRoYGAgbmFtZXNwYWNlIGFuZCBpdHMgdHdvIGVudHJpZXMgYXJlCitsb2FkZWQgd2hlbiB0
aGV5IGFyZSBhY2Nlc3NlZC4gICBUaGlzIG1lYW5zOgorCisqIGxhenkgbG9hZGluZyAtIG9ubHkg
d2hhdCBpcyBhY3R1YWxseSBuZWVkZWQgaXMgZXZlciBsb2FkZWQKKworKiBvbmx5IHRoZSByb290
ICJteXBrZyIgZXZlciBuZWVkcyB0byBiZSBpbXBvcnRlZCB0byBnZXQKKyAgYWNjZXNzIHRvIHRo
ZSBjb21wbGV0ZSBmdW5jdGlvbmFsaXR5LgorCisqIHRoZSB1bmRlcmx5aW5nIG1vZHVsZXMgYXJl
IGFsc28gYWNjZXNzaWJsZSwgZm9yIGV4YW1wbGU6OgorCisgICAgZnJvbSBteXBrZy5zdWIgaW1w
b3J0IENsYXNzMQorCisKK0luY2x1ZGluZyBhcGlwa2cgaW4geW91ciBwYWNrYWdlCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgZG9uJ3Qgd2FudCB0byBh
ZGQgYW4gYGBhcGlwa2dgYCBkZXBlbmRlbmN5IHRvIHlvdXIgcGFja2FnZSB5b3UKK2NhbiBjb3B5
IHRoZSBgYXBpcGtnLnB5YF8gZmlsZSBzb21ld2hlcmUgdG8geW91ciBvd24gcGFja2FnZSwKK2Zv
ciBleGFtcGxlIGBgX215cGtnL2FwaXBrZy5weWBgIGluIHRoZSBhYm92ZSBleGFtcGxlLiAgWW91
Cit0aGVuIGltcG9ydCB0aGUgYGBpbml0cGtnYGAgZnVuY3Rpb24gZnJvbSB0aGF0IG5ldyBwbGFj
ZSBhbmQKK2FyZSBnb29kIHRvIGdvLgorCisuLiBfYHNtYWxsIHB1cmUgcHl0aG9uIG1vZHVsZWA6
CisuLiBfYGFwaXBrZy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL2FwaXBrZy9zcmMv
dGlwL2FwaXBrZy5weQorCitGZWVkYmFjaz8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lm
IHlvdSBoYXZlIHF1ZXN0aW9ucyB5b3UgYXJlIHdlbGNvbWUgdG8KKworKiBqb2luIHRoZSAjcHls
aWIgY2hhbm5lbCBvbiBpcmMuZnJlZW5vZGUubmV0CisqIHN1YnNjcmliZSB0byB0aGUgaHR0cDov
L2NvZGVzcGVhay5uZXQvbWFpbG1hbi9saXN0aW5mby9weS1kZXYgbGlzdC4KKyogY3JlYXRlIGFu
IGlzc3VlIG9uIGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL2FwaXBrZy9pc3N1ZXMKKworaGF2
ZSBmdW4sCitob2xnZXIga3Jla2VsCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9y
ZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vUkVDT1JEIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vUkVDT1JECm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRj
NzI5NTlkZmUwMDAyOGYwZjBiNTlhZjMzNGE1MDVmNjA2ZDZmYTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9SRUNP
UkQKQEAgLTAsMCArMSw5IEBACithcGlwa2cucHksc2hhMjU2PUJObnZfcXZxOHpadmt1LXV1ZG9x
Z3AzWFRORmJ3c05VbXR6T0tyVkk3WDAsNjQyMA0KK2FwaXBrZy0xLjQuZGlzdC1pbmZvL3RvcF9s
ZXZlbC50eHQsc2hhMjU2PTNUR1M2bm1ON2tqeGhVSzRMcFBDQjNRa1FJMzRRWUdyVDBaUUdXYWpv
WjgsNw0KK2FwaXBrZy0xLjQuZGlzdC1pbmZvL01FVEFEQVRBLHNoYTI1Nj1Ga184QnJIeVhFLS1r
dkIzX1pCS2d3dlBhS3VzQVpVamNoSC1rcEI2M0hzLDM0OTENCithcGlwa2ctMS40LmRpc3QtaW5m
by9ERVNDUklQVElPTi5yc3Qsc2hhMjU2PVJrTVFxazVsamhHeTBEaVprUl9uYnBqcXZ3Q0lodUlF
SHN5dmtuM085NmssMjgwMw0KK2FwaXBrZy0xLjQuZGlzdC1pbmZvL21ldGFkYXRhLmpzb24sc2hh
MjU2PUdkc2hZckFfN2dBSUkzRTNFUU1ILTMxQkh6VS1rbFRaNmJQUXpsRG11eTQsNzc5DQorYXBp
cGtnLTEuNC5kaXN0LWluZm8vV0hFRUwsc2hhMjU2PUF2UjBXZVRwRGF4VDY0NWJsNUZReFVLNk5Q
c1RsczJ0dHBjR0pnM2oxWGcsMTEwDQorYXBpcGtnLTEuNC5kaXN0LWluZm8vUkVDT1JELCwNCith
cGlwa2ctMS40LmRpc3QtaW5mby9JTlNUQUxMRVIsc2hhMjU2PXp1dXVlNGtub3lKLVV3UFBYZzhm
ZXpTN1ZDclhKUXJBUDd6ZU51d3ZGUWcsNA0KK19fcHljYWNoZV9fL2FwaXBrZy5jcHl0aG9uLTM1
LnB5YywsDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtn
LTEuNC5kaXN0LWluZm8vV0hFRUwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlw
a2ctMS40LmRpc3QtaW5mby9XSEVFTApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGZmNjlkODYxMDJkMzYxNjljY2Y0
MmE5ZTcxODg1ZDNkYzE3MTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9y
ZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vV0hFRUwKQEAgLTAsMCArMSw2IEBACitX
aGVlbC1WZXJzaW9uOiAxLjAKK0dlbmVyYXRvcjogYmRpc3Rfd2hlZWwgKDAuMjQuMCkKK1Jvb3Qt
SXMtUHVyZWxpYjogdHJ1ZQorVGFnOiBweTItbm9uZS1hbnkKK1RhZzogcHkzLW5vbmUtYW55CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlz
dC1pbmZvL21ldGFkYXRhLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlw
a2ctMS40LmRpc3QtaW5mby9tZXRhZGF0YS5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NjA5Yjk5MzczYWM1
ZmI5YWQ2ZDkxOGQyNzkzYzg5M2ZkOWY0ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9tZXRhZGF0YS5qc29uCkBA
IC0wLDAgKzEgQEAKK3sibGljZW5zZSI6ICJNSVQgTGljZW5zZSIsICJuYW1lIjogImFwaXBrZyIs
ICJtZXRhZGF0YV92ZXJzaW9uIjogIjIuMCIsICJnZW5lcmF0b3IiOiAiYmRpc3Rfd2hlZWwgKDAu
MjQuMCkiLCAic3VtbWFyeSI6ICJhcGlwa2c6IG5hbWVzcGFjZSBjb250cm9sIGFuZCBsYXp5LWlt
cG9ydCBtZWNoYW5pc20iLCAicGxhdGZvcm0iOiAidW5peCIsICJ2ZXJzaW9uIjogIjEuNCIsICJl
eHRlbnNpb25zIjogeyJweXRob24uZGV0YWlscyI6IHsicHJvamVjdF91cmxzIjogeyJIb21lIjog
Imh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL2FwaXBrZyJ9LCAiZG9jdW1lbnRfbmFtZXMiOiB7
ImRlc2NyaXB0aW9uIjogIkRFU0NSSVBUSU9OLnJzdCJ9LCAiY29udGFjdHMiOiBbeyJyb2xlIjog
ImF1dGhvciIsICJlbWFpbCI6ICJob2xnZXIgYXQgbWVybGludXguZXUiLCAibmFtZSI6ICJob2xn
ZXIga3Jla2VsIn1dfX0sICJjbGFzc2lmaWVycyI6IFsiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQg
LSBCZXRhIiwgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLCAiTGljZW5zZSA6OiBP
U0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UiLCAiT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWCIs
ICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5kb3dzIiwgIk9wZXJhdGluZyBT
eXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCIsICJUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVu
dCA6OiBMaWJyYXJpZXMiLCAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIl19ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRf
cGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
X3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTIyMjFjOGY5ZTk2MzkyNDNkMmJjZTJlOTIzMGI0OWQ0MTNiNDUyMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlz
dC1pbmZvL3RvcF9sZXZlbC50eHQKQEAgLTAsMCArMSBAQAorYXBpcGtnCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1p
bmZvL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjOWYzZWU4YjEzOWU0MjIzODMwOWNmNGY5
NWQyNTY3ZmIwZTM0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIz
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRp
c3QtaW5mby9ERVNDUklQVElPTi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9h
cGlwa2ctMS40LmRpc3QtaW5mby9JTlNUQUxMRVIKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9NRVRBREFUQQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVk
X3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1JFQ09SRAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dIRUVMCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3RvcF9sZXZlbC50
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU2
ZTBiY2JhZTQ3N2M2OGUxN2E4MjgyYTEyNmEyYTI4Yzc4NzU2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLnB5CkBAIC0wLDAgKzEsMjA1IEBA
CisiIiIKK2FwaXBrZzogY29udHJvbCB0aGUgZXhwb3J0ZWQgbmFtZXNwYWNlIG9mIGEgcHl0aG9u
IHBhY2thZ2UuCisKK3NlZSBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYXBpcGtnCisKKyhj
KSBob2xnZXIga3Jla2VsLCAyMDA5IC0gTUlUIGxpY2Vuc2UKKyIiIgoraW1wb3J0IG9zCitpbXBv
cnQgc3lzCitmcm9tIHR5cGVzIGltcG9ydCBNb2R1bGVUeXBlCisKKworX192ZXJzaW9uX18gPSAn
MS40JworCisKK2RlZiBfcHlfYWJzcGF0aChwYXRoKToKKyAgICAiIiIKKyAgICBzcGVjaWFsIHZl
cnNpb24gb2YgYWJzcGF0aAorICAgIHRoYXQgd2lsbCBsZWF2ZSBwYXRocyBmcm9tIGp5dGhvbiBq
YXJzIGFsb25lCisgICAgIiIiCisgICAgaWYgcGF0aC5zdGFydHN3aXRoKCdfX3B5Y2xhc3NwYXRo
X18nKToKKworICAgICAgICByZXR1cm4gcGF0aAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBv
cy5wYXRoLmFic3BhdGgocGF0aCkKKworCitkZWYgZGlzdHJpYnV0aW9uX3ZlcnNpb24obmFtZSk6
CisgICAgIiIidHJ5IHRvIGdldCB0aGUgdmVyc2lvbiBvZiB0aGUgbmFtZWQgZGlzdHJpYnV0aW9u
LAorICAgIHJldHVycyBOb25lIG9uIGZhaWx1cmUiIiIKKyAgICBmcm9tIHBrZ19yZXNvdXJjZXMg
aW1wb3J0IGdldF9kaXN0cmlidXRpb24sIERpc3RyaWJ1dGlvbk5vdEZvdW5kCisgICAgdHJ5Ogor
ICAgICAgICBkaXN0ID0gZ2V0X2Rpc3RyaWJ1dGlvbihuYW1lKQorICAgIGV4Y2VwdCBEaXN0cmli
dXRpb25Ob3RGb3VuZDoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIHJldHVybiBk
aXN0LnZlcnNpb24KKworCitkZWYgaW5pdHBrZyhwa2duYW1lLCBleHBvcnRkZWZzLCBhdHRyPWRp
Y3QoKSwgZWFnZXI9RmFsc2UpOgorICAgICIiIiBpbml0aWFsaXplIGdpdmVuIHBhY2thZ2UgZnJv
bSB0aGUgZXhwb3J0IGRlZmluaXRpb25zLiAiIiIKKyAgICBvbGRtb2QgPSBzeXMubW9kdWxlcy5n
ZXQocGtnbmFtZSkKKyAgICBkID0ge30KKyAgICBmID0gZ2V0YXR0cihvbGRtb2QsICdfX2ZpbGVf
XycsIE5vbmUpCisgICAgaWYgZjoKKyAgICAgICAgZiA9IF9weV9hYnNwYXRoKGYpCisgICAgZFsn
X19maWxlX18nXSA9IGYKKyAgICBpZiBoYXNhdHRyKG9sZG1vZCwgJ19fdmVyc2lvbl9fJyk6Cisg
ICAgICAgIGRbJ19fdmVyc2lvbl9fJ10gPSBvbGRtb2QuX192ZXJzaW9uX18KKyAgICBpZiBoYXNh
dHRyKG9sZG1vZCwgJ19fbG9hZGVyX18nKToKKyAgICAgICAgZFsnX19sb2FkZXJfXyddID0gb2xk
bW9kLl9fbG9hZGVyX18KKyAgICBpZiBoYXNhdHRyKG9sZG1vZCwgJ19fcGF0aF9fJyk6CisgICAg
ICAgIGRbJ19fcGF0aF9fJ10gPSBbX3B5X2Fic3BhdGgocCkgZm9yIHAgaW4gb2xkbW9kLl9fcGF0
aF9fXQorICAgIGlmICdfX2RvY19fJyBub3QgaW4gZXhwb3J0ZGVmcyBhbmQgZ2V0YXR0cihvbGRt
b2QsICdfX2RvY19fJywgTm9uZSk6CisgICAgICAgIGRbJ19fZG9jX18nXSA9IG9sZG1vZC5fX2Rv
Y19fCisgICAgZC51cGRhdGUoYXR0cikKKyAgICBpZiBoYXNhdHRyKG9sZG1vZCwgIl9fZGljdF9f
Iik6CisgICAgICAgIG9sZG1vZC5fX2RpY3RfXy51cGRhdGUoZCkKKyAgICBtb2QgPSBBcGlNb2R1
bGUocGtnbmFtZSwgZXhwb3J0ZGVmcywgaW1wbHByZWZpeD1wa2duYW1lLCBhdHRyPWQpCisgICAg
c3lzLm1vZHVsZXNbcGtnbmFtZV0gPSBtb2QKKyAgICAjIGVhZ2VybG9hZCBpbiBieXB0aG9uIHRv
IGF2b2lkIHRoZWlyIG1vbmtleXBhdGNoaW5nIGJyZWFraW5nIHBhY2thZ2VzCisgICAgaWYgJ2Jw
eXRob24nIGluIHN5cy5tb2R1bGVzIG9yIGVhZ2VyOgorICAgICAgICBmb3IgbW9kdWxlIGluIHN5
cy5tb2R1bGVzLnZhbHVlcygpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShtb2R1bGUsIEFw
aU1vZHVsZSk6CisgICAgICAgICAgICAgICAgbW9kdWxlLl9fZGljdF9fCisKKworZGVmIGltcG9y
dG9iaihtb2RwYXRoLCBhdHRybmFtZSk6CisgICAgbW9kdWxlID0gX19pbXBvcnRfXyhtb2RwYXRo
LCBOb25lLCBOb25lLCBbJ19fZG9jX18nXSkKKyAgICBpZiBub3QgYXR0cm5hbWU6CisgICAgICAg
IHJldHVybiBtb2R1bGUKKworICAgIHJldHZhbCA9IG1vZHVsZQorICAgIG5hbWVzID0gYXR0cm5h
bWUuc3BsaXQoIi4iKQorICAgIGZvciB4IGluIG5hbWVzOgorICAgICAgICByZXR2YWwgPSBnZXRh
dHRyKHJldHZhbCwgeCkKKyAgICByZXR1cm4gcmV0dmFsCisKKworY2xhc3MgQXBpTW9kdWxlKE1v
ZHVsZVR5cGUpOgorICAgIGRlZiBfX2RvY2dldChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX19kb2MKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor
ICAgICAgICAgICAgaWYgJ19fZG9jX18nIGluIHNlbGYuX19tYXBfXzoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fX21ha2VhdHRyKCdfX2RvY19fJykKKworICAgIGRlZiBfX2RvY3NldChz
ZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX19kb2MgPSB2YWx1ZQorICAgIF9fZG9jX18gPSBw
cm9wZXJ0eShfX2RvY2dldCwgX19kb2NzZXQpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFt
ZSwgaW1wb3J0c3BlYywgaW1wbHByZWZpeD1Ob25lLCBhdHRyPU5vbmUpOgorICAgICAgICBzZWxm
Ll9fbmFtZV9fID0gbmFtZQorICAgICAgICBzZWxmLl9fYWxsX18gPSBbeCBmb3IgeCBpbiBpbXBv
cnRzcGVjIGlmIHggIT0gJ19fb25maXJzdGFjY2Vzc19fJ10KKyAgICAgICAgc2VsZi5fX21hcF9f
ID0ge30KKyAgICAgICAgc2VsZi5fX2ltcGxwcmVmaXhfXyA9IGltcGxwcmVmaXggb3IgbmFtZQor
ICAgICAgICBpZiBhdHRyOgorICAgICAgICAgICAgZm9yIG5hbWUsIHZhbCBpbiBhdHRyLml0ZW1z
KCk6CisgICAgICAgICAgICAgICAgIyBwcmludCAic2V0dGluZyIsIHNlbGYuX19uYW1lX18sIG5h
bWUsIHZhbAorICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgdmFsKQorICAgICAg
ICBmb3IgbmFtZSwgaW1wb3J0c3BlYyBpbiBpbXBvcnRzcGVjLml0ZW1zKCk6CisgICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKGltcG9ydHNwZWMsIGRpY3QpOgorICAgICAgICAgICAgICAgIHN1Ym5h
bWUgPSAnJXMuJXMnICUgKHNlbGYuX19uYW1lX18sIG5hbWUpCisgICAgICAgICAgICAgICAgYXBp
bW9kID0gQXBpTW9kdWxlKHN1Ym5hbWUsIGltcG9ydHNwZWMsIGltcGxwcmVmaXgpCisgICAgICAg
ICAgICAgICAgc3lzLm1vZHVsZXNbc3VibmFtZV0gPSBhcGltb2QKKyAgICAgICAgICAgICAgICBz
ZXRhdHRyKHNlbGYsIG5hbWUsIGFwaW1vZCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcGFydHMgPSBpbXBvcnRzcGVjLnNwbGl0KCc6JykKKyAgICAgICAgICAgICAgICBtb2Rw
YXRoID0gcGFydHMucG9wKDApCisgICAgICAgICAgICAgICAgYXR0cm5hbWUgPSBwYXJ0cyBhbmQg
cGFydHNbMF0gb3IgIiIKKyAgICAgICAgICAgICAgICBpZiBtb2RwYXRoWzBdID09ICcuJzoKKyAg
ICAgICAgICAgICAgICAgICAgbW9kcGF0aCA9IGltcGxwcmVmaXggKyBtb2RwYXRoCisKKyAgICAg
ICAgICAgICAgICBpZiBub3QgYXR0cm5hbWU6CisgICAgICAgICAgICAgICAgICAgIHN1Ym5hbWUg
PSAnJXMuJXMnICUgKHNlbGYuX19uYW1lX18sIG5hbWUpCisgICAgICAgICAgICAgICAgICAgIGFw
aW1vZCA9IEFsaWFzTW9kdWxlKHN1Ym5hbWUsIG1vZHBhdGgpCisgICAgICAgICAgICAgICAgICAg
IHN5cy5tb2R1bGVzW3N1Ym5hbWVdID0gYXBpbW9kCisgICAgICAgICAgICAgICAgICAgIGlmICcu
JyBub3QgaW4gbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgbmFt
ZSwgYXBpbW9kKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX19tYXBfX1tuYW1lXSA9IChtb2RwYXRoLCBhdHRybmFtZSkKKworICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fdmVy
c2lvbl9fJyk6CisgICAgICAgICAgICBsLmFwcGVuZCgidmVyc2lvbj0iICsgcmVwcihzZWxmLl9f
dmVyc2lvbl9fKSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19maWxlX18nKToKKyAgICAg
ICAgICAgIGwuYXBwZW5kKCdmcm9tICcgKyByZXByKHNlbGYuX19maWxlX18pKQorICAgICAgICBp
ZiBsOgorICAgICAgICAgICAgcmV0dXJuICc8QXBpTW9kdWxlICVyICVzPicgJSAoc2VsZi5fX25h
bWVfXywgIiAiLmpvaW4obCkpCisgICAgICAgIHJldHVybiAnPEFwaU1vZHVsZSAlcj4nICUgKHNl
bGYuX19uYW1lX18sKQorCisgICAgZGVmIF9fbWFrZWF0dHIoc2VsZiwgbmFtZSk6CisgICAgICAg
ICIiImxhemlseSBjb21wdXRlIHZhbHVlIGZvciBuYW1lIG9yIHJhaXNlIEF0dHJpYnV0ZUVycm9y
IGlmIHVua25vd24uIiIiCisgICAgICAgICMgcHJpbnQgIm1ha2VhdHRyIiwgc2VsZi5fX25hbWVf
XywgbmFtZQorICAgICAgICB0YXJnZXQgPSBOb25lCisgICAgICAgIGlmICdfX29uZmlyc3RhY2Nl
c3NfXycgaW4gc2VsZi5fX21hcF9fOgorICAgICAgICAgICAgdGFyZ2V0ID0gc2VsZi5fX21hcF9f
LnBvcCgnX19vbmZpcnN0YWNjZXNzX18nKQorICAgICAgICAgICAgaW1wb3J0b2JqKCp0YXJnZXQp
KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kcGF0aCwgYXR0cm5hbWUgPSBzZWxmLl9f
bWFwX19bbmFtZV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgaWYgdGFy
Z2V0IGlzIG5vdCBOb25lIGFuZCBuYW1lICE9ICdfX29uZmlyc3RhY2Nlc3NfXyc6CisgICAgICAg
ICAgICAgICAgIyByZXRyeSwgb25maXJzdGFjY2VzcyBtaWdodCBoYXZlIHNldCBhdHRycworICAg
ICAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsIG5hbWUpCisgICAgICAgICAgICByYWlz
ZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0
ID0gaW1wb3J0b2JqKG1vZHBhdGgsIGF0dHJuYW1lKQorICAgICAgICAgICAgc2V0YXR0cihzZWxm
LCBuYW1lLCByZXN1bHQpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGVsIHNl
bGYuX19tYXBfX1tuYW1lXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAg
ICAgICAgIHBhc3MgICMgaW4gYSByZWN1cnNpdmUtaW1wb3J0IHNpdHVhdGlvbiBhIGRvdWJsZS1k
ZWwgY2FuIGhhcHBlbgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgX19nZXRhdHRy
X18gPSBfX21ha2VhdHRyCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgX19kaWN0X18oc2VsZik6
CisgICAgICAgICMgZm9yY2UgYWxsIHRoZSBjb250ZW50IG9mIHRoZSBtb2R1bGUKKyAgICAgICAg
IyB0byBiZSBsb2FkZWQgd2hlbiBfX2RpY3RfXyBpcyByZWFkCisgICAgICAgIGRpY3RkZXNjciA9
IE1vZHVsZVR5cGUuX19kaWN0X19bJ19fZGljdF9fJ10KKyAgICAgICAgZGljdCA9IGRpY3RkZXNj
ci5fX2dldF9fKHNlbGYpCisgICAgICAgIGlmIGRpY3QgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBoYXNhdHRyKHNlbGYsICdzb21lJykKKyAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX19h
bGxfXzoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX19t
YWtlYXR0cihuYW1lKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg
ICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4gZGljdAorCisKK2RlZiBBbGlh
c01vZHVsZShtb2RuYW1lLCBtb2RwYXRoLCBhdHRybmFtZT1Ob25lKToKKyAgICBtb2QgPSBbXQor
CisgICAgZGVmIGdldG1vZCgpOgorICAgICAgICBpZiBub3QgbW9kOgorICAgICAgICAgICAgeCA9
IGltcG9ydG9iaihtb2RwYXRoLCBOb25lKQorICAgICAgICAgICAgaWYgYXR0cm5hbWUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgeCA9IGdldGF0dHIoeCwgYXR0cm5hbWUpCisgICAgICAg
ICAgICBtb2QuYXBwZW5kKHgpCisgICAgICAgIHJldHVybiBtb2RbMF0KKworICAgIGNsYXNzIEFs
aWFzTW9kdWxlKE1vZHVsZVR5cGUpOgorCisgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAg
ICAgICAgICAgIHggPSBtb2RwYXRoCisgICAgICAgICAgICBpZiBhdHRybmFtZToKKyAgICAgICAg
ICAgICAgICB4ICs9ICIuIiArIGF0dHJuYW1lCisgICAgICAgICAgICByZXR1cm4gJzxBbGlhc01v
ZHVsZSAlciBmb3IgJXI+JyAlIChtb2RuYW1lLCB4KQorCisgICAgICAgIGRlZiBfX2dldGF0dHJp
YnV0ZV9fKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJl
dHVybiBnZXRhdHRyKGdldG1vZCgpLCBuYW1lKQorICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVy
cm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgZGVmIF9fc2V0YXR0
cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgICAgIHNldGF0dHIoZ2V0bW9kKCksIG5h
bWUsIHZhbHVlKQorCisgICAgICAgIGRlZiBfX2RlbGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAg
ICAgICAgIGRlbGF0dHIoZ2V0bW9kKCksIG5hbWUpCisKKyAgICByZXR1cm4gQWxpYXNNb2R1bGUo
c3RyKG1vZG5hbWUpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMv
aW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192
ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZDU5YmMyMjJjY2U4NzA2MGQwZGJiYWM5Y2YxZjE3YjRhZDcxMzk1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmln
LTEuMC4wLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QKQEAgLTAsMCArMSw1MyBAQAoraW5pY29u
ZmlnOiBicmFpbi1kZWFkIHNpbXBsZSBwYXJzaW5nIG9mIGluaSBmaWxlcworPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitpbmljb25maWcg
aXMgYSBzbWFsbCBhbmQgc2ltcGxlIElOSS1maWxlIHBhcnNlciBtb2R1bGUKK2hhdmluZyBhIHVu
aXF1ZSBzZXQgb2YgZmVhdHVyZXM6CisKKyogdGVzdGVkIGFnYWluc3QgUHl0aG9uMi40IGFjcm9z
cyB0byBQeXRob24zLjIsIEp5dGhvbiwgUHlQeQorKiBtYWludGFpbnMgb3JkZXIgb2Ygc2VjdGlv
bnMgYW5kIGVudHJpZXMKKyogc3VwcG9ydHMgbXVsdGktbGluZSB2YWx1ZXMgd2l0aCBvciB3aXRo
b3V0IGxpbmUtY29udGludWF0aW9ucworKiBzdXBwb3J0cyAiIyIgY29tbWVudHMgZXZlcnl3aGVy
ZQorKiByYWlzZXMgZXJyb3JzIHdpdGggcHJvcGVyIGxpbmUtbnVtYmVycworKiBubyBiZWxscyBh
bmQgd2hpc3RsZXMgbGlrZSBhdXRvbWF0aWMgc3Vic3RpdHV0aW9ucworKiBpbmljb25maWcgcmFp
c2VzIGFuIEVycm9yIGlmIHR3byBzZWN0aW9ucyBoYXZlIHRoZSBzYW1lIG5hbWUuCisKK0lmIHlv
dSBlbmNvdW50ZXIgaXNzdWVzIG9yIGhhdmUgZmVhdHVyZSB3aXNoZXMgcGxlYXNlIHJlcG9ydCB0
aGVtIHRvOgorCisgICAgaHR0cDovL2dpdGh1Yi5vcmcvUm9ubnlQZmFubnNjaG1pZHQvaW5pY29u
ZmlnL2lzc3VlcworCitCYXNpYyBFeGFtcGxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitJZiB5b3UgaGF2ZSBhbiBpbmkgZmlsZSBsaWtlIHRoaXM6OgorCisgICAgIyBj
b250ZW50IG9mIGV4YW1wbGUuaW5pCisgICAgW3NlY3Rpb24xXSAjIGNvbW1lbnQKKyAgICBuYW1l
MT12YWx1ZTEgICMgY29tbWVudAorICAgIG5hbWUxYj12YWx1ZTEsdmFsdWUyICAjIGNvbW1lbnQK
KworICAgIFtzZWN0aW9uMl0KKyAgICBuYW1lMj0KKyAgICAgICAgbGluZTEKKyAgICAgICAgbGlu
ZTIKKwordGhlbiB5b3UgY2FuIGRvOjoKKworICAgID4+PiBpbXBvcnQgaW5pY29uZmlnCisgICAg
Pj4+IGluaSA9IGluaWNvbmZpZy5JbmlDb25maWcoImV4YW1wbGUuaW5pIikKKyAgICA+Pj4gaW5p
WydzZWN0aW9uMSddWyduYW1lMSddICMgcmFpc2VzIEtleUVycm9yIGlmIG5vdCBleGlzdHMKKyAg
ICAndmFsdWUxJworICAgID4+PiBpbmkuZ2V0KCdzZWN0aW9uMScsICduYW1lMWInLCBbXSwgbGFt
YmRhIHg6IHguc3BsaXQoIiwiKSkKKyAgICBbJ3ZhbHVlMScsICd2YWx1ZTInXQorICAgID4+PiBp
bmkuZ2V0KCdzZWN0aW9uMScsICdub3RleGlzdCcsIFtdLCBsYW1iZGEgeDogeC5zcGxpdCgiLCIp
KQorICAgIFtdCisgICAgPj4+IFt4Lm5hbWUgZm9yIHggaW4gbGlzdChpbmkpXQorICAgIFsnc2Vj
dGlvbjEnLCAnc2VjdGlvbjInXQorICAgID4+PiBsaXN0KGxpc3QoaW5pKVswXS5pdGVtcygpKQor
ICAgIFsoJ25hbWUxJywgJ3ZhbHVlMScpLCAoJ25hbWUxYicsICd2YWx1ZTEsdmFsdWUyJyldCisg
ICAgPj4+ICdzZWN0aW9uMScgaW4gaW5pCisgICAgVHJ1ZQorICAgID4+PiAnaW5leGlzdGVuZHNl
Y3Rpb24nIGluIGluaQorICAgIEZhbHNlCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9JTlNUQUxMRVIgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0lOU1RB
TExFUgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMWI1ODllMzhhMzIwNDFlNDkzMzJlNWU4MWMyZDM2M2RjNDE4ZDY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29u
ZmlnLTEuMC4wLmRpc3QtaW5mby9JTlNUQUxMRVIKQEAgLTAsMCArMSBAQAorcGlwCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1p
bmZvL01FVEFEQVRBIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEu
MC4wLmRpc3QtaW5mby9NRVRBREFUQQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWVhNjJkYzM0YzA4ZTIyZTM4Mjdm
ZjQyN2EwM2E0N2QwOTc1YzhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9y
ZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQQpAQCAtMCwwICsx
LDc4IEBACitNZXRhZGF0YS1WZXJzaW9uOiAyLjAKK05hbWU6IGluaWNvbmZpZworVmVyc2lvbjog
MS4wLjAKK1N1bW1hcnk6IGluaWNvbmZpZzogYnJhaW4tZGVhZCBzaW1wbGUgY29uZmlnLWluaSBw
YXJzaW5nCitIb21lLXBhZ2U6IGh0dHA6Ly9naXRodWIuY29tL1Jvbm55UGZhbm5zY2htaWR0L2lu
aWNvbmZpZworQXV0aG9yOiBSb25ueSBQZmFubnNjaG1pZHQsIEhvbGdlciBLcmVrZWwKK0F1dGhv
ci1lbWFpbDogb3BlbnNvdXJjZUByb25ueXBmYW5uc2NobWlkdC5kZSwgaG9sZ2VyLmtyZWtlbEBn
bWFpbC5jb20KK0xpY2Vuc2U6IE1JVCBMaWNlbnNlCitQbGF0Zm9ybTogdW5peAorUGxhdGZvcm06
IGxpbnV4CitQbGF0Zm9ybTogb3N4CitQbGF0Zm9ybTogY3lnd2luCitQbGF0Zm9ybTogd2luMzIK
K0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YQorQ2xhc3NpZmllcjog
SW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5zZSA6OiBP
U0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0g
OjogUE9TSVgKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0IDo6IFdp
bmRvd3MKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWAor
Q2xhc3NpZmllcjogVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzCitD
bGFzc2lmaWVyOiBUb3BpYyA6OiBVdGlsaXRpZXMKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExh
bmd1YWdlIDo6IFB5dGhvbgorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0
aG9uIDo6IDIKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAz
CisKK2luaWNvbmZpZzogYnJhaW4tZGVhZCBzaW1wbGUgcGFyc2luZyBvZiBpbmkgZmlsZXMKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
aW5pY29uZmlnIGlzIGEgc21hbGwgYW5kIHNpbXBsZSBJTkktZmlsZSBwYXJzZXIgbW9kdWxlCito
YXZpbmcgYSB1bmlxdWUgc2V0IG9mIGZlYXR1cmVzOgorCisqIHRlc3RlZCBhZ2FpbnN0IFB5dGhv
bjIuNCBhY3Jvc3MgdG8gUHl0aG9uMy4yLCBKeXRob24sIFB5UHkKKyogbWFpbnRhaW5zIG9yZGVy
IG9mIHNlY3Rpb25zIGFuZCBlbnRyaWVzCisqIHN1cHBvcnRzIG11bHRpLWxpbmUgdmFsdWVzIHdp
dGggb3Igd2l0aG91dCBsaW5lLWNvbnRpbnVhdGlvbnMKKyogc3VwcG9ydHMgIiMiIGNvbW1lbnRz
IGV2ZXJ5d2hlcmUKKyogcmFpc2VzIGVycm9ycyB3aXRoIHByb3BlciBsaW5lLW51bWJlcnMKKyog
bm8gYmVsbHMgYW5kIHdoaXN0bGVzIGxpa2UgYXV0b21hdGljIHN1YnN0aXR1dGlvbnMKKyogaW5p
Y29uZmlnIHJhaXNlcyBhbiBFcnJvciBpZiB0d28gc2VjdGlvbnMgaGF2ZSB0aGUgc2FtZSBuYW1l
LgorCitJZiB5b3UgZW5jb3VudGVyIGlzc3VlcyBvciBoYXZlIGZlYXR1cmUgd2lzaGVzIHBsZWFz
ZSByZXBvcnQgdGhlbSB0bzoKKworICAgIGh0dHA6Ly9naXRodWIub3JnL1Jvbm55UGZhbm5zY2ht
aWR0L2luaWNvbmZpZy9pc3N1ZXMKKworQmFzaWMgRXhhbXBsZQorPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworSWYgeW91IGhhdmUgYW4gaW5pIGZpbGUgbGlrZSB0aGlzOjoK
KworICAgICMgY29udGVudCBvZiBleGFtcGxlLmluaQorICAgIFtzZWN0aW9uMV0gIyBjb21tZW50
CisgICAgbmFtZTE9dmFsdWUxICAjIGNvbW1lbnQKKyAgICBuYW1lMWI9dmFsdWUxLHZhbHVlMiAg
IyBjb21tZW50CisKKyAgICBbc2VjdGlvbjJdCisgICAgbmFtZTI9CisgICAgICAgIGxpbmUxCisg
ICAgICAgIGxpbmUyCisKK3RoZW4geW91IGNhbiBkbzo6CisKKyAgICA+Pj4gaW1wb3J0IGluaWNv
bmZpZworICAgID4+PiBpbmkgPSBpbmljb25maWcuSW5pQ29uZmlnKCJleGFtcGxlLmluaSIpCisg
ICAgPj4+IGluaVsnc2VjdGlvbjEnXVsnbmFtZTEnXSAjIHJhaXNlcyBLZXlFcnJvciBpZiBub3Qg
ZXhpc3RzCisgICAgJ3ZhbHVlMScKKyAgICA+Pj4gaW5pLmdldCgnc2VjdGlvbjEnLCAnbmFtZTFi
JywgW10sIGxhbWJkYSB4OiB4LnNwbGl0KCIsIikpCisgICAgWyd2YWx1ZTEnLCAndmFsdWUyJ10K
KyAgICA+Pj4gaW5pLmdldCgnc2VjdGlvbjEnLCAnbm90ZXhpc3QnLCBbXSwgbGFtYmRhIHg6IHgu
c3BsaXQoIiwiKSkKKyAgICBbXQorICAgID4+PiBbeC5uYW1lIGZvciB4IGluIGxpc3QoaW5pKV0K
KyAgICBbJ3NlY3Rpb24xJywgJ3NlY3Rpb24yJ10KKyAgICA+Pj4gbGlzdChsaXN0KGluaSlbMF0u
aXRlbXMoKSkKKyAgICBbKCduYW1lMScsICd2YWx1ZTEnKSwgKCduYW1lMWInLCAndmFsdWUxLHZh
bHVlMicpXQorICAgID4+PiAnc2VjdGlvbjEnIGluIGluaQorICAgIFRydWUKKyAgICA+Pj4gJ2lu
ZXhpc3RlbmRzZWN0aW9uJyBpbiBpbmkKKyAgICBGYWxzZQorCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vUkVDT1JE
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5m
by9SRUNPUkQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMyZjVlMTc0ODdjMDE5ZWFiYjAwNzBiZDRlZDAxYzc0MmI2
YmMzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2lu
aWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vUkVDT1JECkBAIC0wLDAgKzEsOSBAQAoraW5pY29uZmln
LnB5LHNoYTI1Nj0tcEJlNUFGXzZhQXdvMUN4SlE4aV96SnE2ZWpjNkl4SHRhN3FrMnROSmhZLDUy
MDgNCitpbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdCxzaGEyNTY9QkRM
TXdXcWZqcHdaNXlxWFJ2ejF4NmJmOERudF9wWmhFbGVrQXd0TDE5bywxNTIyDQoraW5pY29uZmln
LTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQSxzaGEyNTY9YmIyVDhXVVNEWFhpVVZ4WjRXWGhiZmZx
NnN0aWtNVGxCMWp5clBiTGZ5VSwyNDA1DQoraW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9SRUNP
UkQsLA0KK2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vV0hFRUwsc2hhMjU2PTNYSzFaNEFJNDJH
dUpYY2lDcGlITU9rYmVoeFJWOFFEQlc4SVU0MWszWlUsOTYNCitpbmljb25maWctMS4wLjAuZGlz
dC1pbmZvL21ldGFkYXRhLmpzb24sc2hhMjU2PVVZWXdXMHA4MTVuVTRxejhJcTFnR3FJWWFBY3ND
eUdqdTNqWHZUT3lYU0ksOTUwDQoraW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby90b3BfbGV2ZWwu
dHh0LHNoYTI1Nj03S2ZNMGZ1Z2RsVG9qOVVXN2VuS1hrMkhZQUxRRDhxSGl5S3RqaFN6Z044LDEw
DQoraW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9JTlNUQUxMRVIsc2hhMjU2PXp1dXVlNGtub3lK
LVV3UFBYZzhmZXpTN1ZDclhKUXJBUDd6ZU51d3ZGUWcsNA0KK19fcHljYWNoZV9fL2luaWNvbmZp
Zy5jcHl0aG9uLTM1LnB5YywsDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFj
a2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9XSEVFTCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vV0hFRUwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTViOTZjOTljYWM5MjVhYjUxZDNhZjZlNWMxMzcwZTY3ZDdhMzlhMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWlu
Zm8vV0hFRUwKQEAgLTAsMCArMSw1IEBACitXaGVlbC1WZXJzaW9uOiAxLjAKK0dlbmVyYXRvcjog
YmRpc3Rfd2hlZWwgKDAuMzAuMC5hMCkKK1Jvb3QtSXMtUHVyZWxpYjogdHJ1ZQorVGFnOiBjcDM1
LW5vbmUtYW55CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2lu
aWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wODRkYWE2YzA2YjhiMDc0MzIwYTcwNDI0NDc1ZGYzNTAwZDU2NjRkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4w
LmRpc3QtaW5mby9tZXRhZGF0YS5qc29uCkBAIC0wLDAgKzEgQEAKK3siY2xhc3NpZmllcnMiOiBb
IkRldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YSIsICJJbnRlbmRlZCBBdWRpZW5jZSA6OiBE
ZXZlbG9wZXJzIiwgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlIiwgIk9w
ZXJhdGluZyBTeXN0ZW0gOjogUE9TSVgiLCAiT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQg
OjogV2luZG93cyIsICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgiLCAiVG9w
aWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIiwgIlRvcGljIDo6IFV0aWxp
dGllcyIsICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24iLCAiUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDIiLCAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6
IDMiXSwgImV4dGVuc2lvbnMiOiB7InB5dGhvbi5kZXRhaWxzIjogeyJjb250YWN0cyI6IFt7ImVt
YWlsIjogIm9wZW5zb3VyY2VAcm9ubnlwZmFubnNjaG1pZHQuZGUsIGhvbGdlci5rcmVrZWxAZ21h
aWwuY29tIiwgIm5hbWUiOiAiUm9ubnkgUGZhbm5zY2htaWR0LCBIb2xnZXIgS3Jla2VsIiwgInJv
bGUiOiAiYXV0aG9yIn1dLCAiZG9jdW1lbnRfbmFtZXMiOiB7ImRlc2NyaXB0aW9uIjogIkRFU0NS
SVBUSU9OLnJzdCJ9LCAicHJvamVjdF91cmxzIjogeyJIb21lIjogImh0dHA6Ly9naXRodWIuY29t
L1Jvbm55UGZhbm5zY2htaWR0L2luaWNvbmZpZyJ9fX0sICJnZW5lcmF0b3IiOiAiYmRpc3Rfd2hl
ZWwgKDAuMzAuMC5hMCkiLCAibGljZW5zZSI6ICJNSVQgTGljZW5zZSIsICJtZXRhZGF0YV92ZXJz
aW9uIjogIjIuMCIsICJuYW1lIjogImluaWNvbmZpZyIsICJwbGF0Zm9ybSI6ICJ1bml4IiwgInN1
bW1hcnkiOiAiaW5pY29uZmlnOiBicmFpbi1kZWFkIHNpbXBsZSBjb25maWctaW5pIHBhcnNpbmci
LCAidmVyc2lvbiI6ICIxLjAuMCJ9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3Qt
aW5mby90b3BfbGV2ZWwudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29u
ZmlnLTEuMC4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZGE1MzY5MmQy
ZjQ0YTk3MzkyY2FlODIzZjgxNjNkNTVhZDQ1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3RvcF9sZXZl
bC50eHQKQEAgLTAsMCArMSBAQAoraW5pY29uZmlnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192
ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5m
by93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDFlODc4NjQyNjYzMTU5ODFkZmJlMDQyOWU4
ZDYzMmYyODIyODg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFj
a2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDIzIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWct
MS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3Bh
Y2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vSU5TVEFMTEVSCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
dmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vUkVD
T1JECisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3Qt
aW5mby9XSEVFTAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAu
MC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZDllYWY4NjhiMDczYmIz
M2FhYzVlZTk4MTRlNGVmZTJlMTlkYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192
ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWcucHkKQEAgLTAsMCArMSwxNjUgQEAKKyIiIiBicmFp
bi1kZWFkIHNpbXBsZSBwYXJzZXIgZm9yIGluaS1zdHlsZSBmaWxlcy4KKyhDKSBSb25ueSBQZmFu
bnNjaG1pZHQsIEhvbGdlciBLcmVrZWwgLS0gTUlUIGxpY2Vuc2VkCisiIiIKK19fYWxsX18gPSBb
J0luaUNvbmZpZycsICdQYXJzZUVycm9yJ10KKworQ09NTUVOVENIQVJTID0gIiM7IgorCisKK2Ns
YXNzIFBhcnNlRXJyb3IoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwg
bGluZW5vLCBtc2cpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgcGF0aCwgbGlu
ZW5vLCBtc2cpCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5saW5lbm8g
PSBsaW5lbm8KKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKworICAgIGRlZiBfX3N0cl9fKHNlbGYp
OgorICAgICAgICByZXR1cm4gIiVzOiVzOiAlcyIgJSAoc2VsZi5wYXRoLCBzZWxmLmxpbmVubysx
LCBzZWxmLm1zZykKKworCitjbGFzcyBTZWN0aW9uV3JhcHBlcihvYmplY3QpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBjb25maWcsIG5hbWUpOgorICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZworICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisKKyAgICBkZWYgbGluZW9mKHNlbGYsIG5hbWUp
OgorICAgICAgICByZXR1cm4gc2VsZi5jb25maWcubGluZW9mKHNlbGYubmFtZSwgbmFtZSkKKwor
ICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUsIGNvbnZlcnQ9c3RyKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuY29uZmlnLmdldChzZWxmLm5hbWUsIGtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb252ZXJ0PWNvbnZlcnQsIGRlZmF1bHQ9ZGVmYXVsdCkKKworICAg
IGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gc2VsZi5jb25maWcu
c2VjdGlvbnNbc2VsZi5uYW1lXVtrZXldCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAg
ICAgIHNlY3Rpb24gPSBzZWxmLmNvbmZpZy5zZWN0aW9ucy5nZXQoc2VsZi5uYW1lLCBbXSkKKwor
ICAgICAgICBkZWYgbGluZW9mKGtleSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5jb25maWcu
bGluZW9mKHNlbGYubmFtZSwga2V5KQorICAgICAgICBmb3IgbmFtZSBpbiBzb3J0ZWQoc2VjdGlv
biwga2V5PWxpbmVvZik6CisgICAgICAgICAgICB5aWVsZCBuYW1lCisKKyAgICBkZWYgaXRlbXMo
c2VsZik6CisgICAgICAgIGZvciBuYW1lIGluIHNlbGY6CisgICAgICAgICAgICB5aWVsZCBuYW1l
LCBzZWxmW25hbWVdCisKKworY2xhc3MgSW5pQ29uZmlnKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBhdGgsIGRhdGE9Tm9uZSk6CisgICAgICAgIHNlbGYucGF0aCA9IHN0cihwYXRo
KSAgIyBjb252ZW5pZW5jZQorICAgICAgICBpZiBkYXRhIGlzIE5vbmU6CisgICAgICAgICAgICBm
ID0gb3BlbihzZWxmLnBhdGgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdG9r
ZW5zID0gc2VsZi5fcGFyc2UoaXRlcihmKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2tlbnMgPSBz
ZWxmLl9wYXJzZShkYXRhLnNwbGl0bGluZXMoVHJ1ZSkpCisKKyAgICAgICAgc2VsZi5fc291cmNl
cyA9IHt9CisgICAgICAgIHNlbGYuc2VjdGlvbnMgPSB7fQorCisgICAgICAgIGZvciBsaW5lbm8s
IHNlY3Rpb24sIG5hbWUsIHZhbHVlIGluIHRva2VuczoKKyAgICAgICAgICAgIGlmIHNlY3Rpb24g
aXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZShsaW5lbm8sICdubyBzZWN0aW9u
IGhlYWRlciBkZWZpbmVkJykKKyAgICAgICAgICAgIHNlbGYuX3NvdXJjZXNbc2VjdGlvbiwgbmFt
ZV0gPSBsaW5lbm8KKyAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICBpZiBzZWN0aW9uIGluIHNlbGYuc2VjdGlvbnM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3JhaXNlKGxpbmVubywgJ2R1cGxpY2F0ZSBzZWN0aW9uICVyJyAlIChzZWN0aW9uLCApKQorICAg
ICAgICAgICAgICAgIHNlbGYuc2VjdGlvbnNbc2VjdGlvbl0gPSB7fQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHNlbGYuc2VjdGlvbnNbc2VjdGlvbl06Cisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JhaXNlKGxpbmVubywgJ2R1cGxpY2F0ZSBuYW1lICVy
JyAlIChuYW1lLCApKQorICAgICAgICAgICAgICAgIHNlbGYuc2VjdGlvbnNbc2VjdGlvbl1bbmFt
ZV0gPSB2YWx1ZQorCisgICAgZGVmIF9yYWlzZShzZWxmLCBsaW5lbm8sIG1zZyk6CisgICAgICAg
IHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5wYXRoLCBsaW5lbm8sIG1zZykKKworICAgIGRlZiBfcGFy
c2Uoc2VsZiwgbGluZV9pdGVyKToKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgc2VjdGlv
biA9IE5vbmUKKyAgICAgICAgZm9yIGxpbmVubywgbGluZSBpbiBlbnVtZXJhdGUobGluZV9pdGVy
KToKKyAgICAgICAgICAgIG5hbWUsIGRhdGEgPSBzZWxmLl9wYXJzZWxpbmUobGluZSwgbGluZW5v
KQorICAgICAgICAgICAgIyBuZXcgdmFsdWUKKyAgICAgICAgICAgIGlmIG5hbWUgaXMgbm90IE5v
bmUgYW5kIGRhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgo
bGluZW5vLCBzZWN0aW9uLCBuYW1lLCBkYXRhKSkKKyAgICAgICAgICAgICMgbmV3IHNlY3Rpb24K
KyAgICAgICAgICAgIGVsaWYgbmFtZSBpcyBub3QgTm9uZSBhbmQgZGF0YSBpcyBOb25lOgorICAg
ICAgICAgICAgICAgIGlmIG5vdCBuYW1lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yYWlz
ZShsaW5lbm8sICdlbXB0eSBzZWN0aW9uIG5hbWUnKQorICAgICAgICAgICAgICAgIHNlY3Rpb24g
PSBuYW1lCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgobGluZW5vLCBzZWN0aW9uLCBO
b25lLCBOb25lKSkKKyAgICAgICAgICAgICMgY29udGludWF0aW9uCisgICAgICAgICAgICBlbGlm
IG5hbWUgaXMgTm9uZSBhbmQgZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBu
b3QgcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZShsaW5lbm8sICd1bmV4
cGVjdGVkIHZhbHVlIGNvbnRpbnVhdGlvbicpCisgICAgICAgICAgICAgICAgbGFzdCA9IHJlc3Vs
dC5wb3AoKQorICAgICAgICAgICAgICAgIGxhc3RfbmFtZSwgbGFzdF9kYXRhID0gbGFzdFstMjpd
CisgICAgICAgICAgICAgICAgaWYgbGFzdF9uYW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3JhaXNlKGxpbmVubywgJ3VuZXhwZWN0ZWQgdmFsdWUgY29udGludWF0aW9uJykK
KworICAgICAgICAgICAgICAgIGlmIGxhc3RfZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0
YSA9ICclc1xuJXMnICUgKGxhc3RfZGF0YSwgZGF0YSkKKyAgICAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKGxhc3RbOi0xXSArIChkYXRhLCkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAg
IGRlZiBfcGFyc2VsaW5lKHNlbGYsIGxpbmUsIGxpbmVubyk6CisgICAgICAgICMgYmxhbmsgbGlu
ZXMKKyAgICAgICAgaWYgaXNjb21tZW50bGluZShsaW5lKToKKyAgICAgICAgICAgIGxpbmUgPSAi
IgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZSA9IGxpbmUucnN0cmlwKCkKKyAgICAg
ICAgaWYgbm90IGxpbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgICAgICAj
IHNlY3Rpb24KKyAgICAgICAgaWYgbGluZVswXSA9PSAnWyc6CisgICAgICAgICAgICByZWFsbGlu
ZSA9IGxpbmUKKyAgICAgICAgICAgIGZvciBjIGluIENPTU1FTlRDSEFSUzoKKyAgICAgICAgICAg
ICAgICBsaW5lID0gbGluZS5zcGxpdChjKVswXS5yc3RyaXAoKQorICAgICAgICAgICAgaWYgbGlu
ZVstMV0gPT0gIl0iOgorICAgICAgICAgICAgICAgIHJldHVybiBsaW5lWzE6LTFdLCBOb25lCisg
ICAgICAgICAgICByZXR1cm4gTm9uZSwgcmVhbGxpbmUuc3RyaXAoKQorICAgICAgICAjIHZhbHVl
CisgICAgICAgIGVsaWYgbm90IGxpbmVbMF0uaXNzcGFjZSgpOgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIG5hbWUsIHZhbHVlID0gbGluZS5zcGxpdCgnPScsIDEpCisgICAgICAg
ICAgICAgICAgaWYgIjoiIGluIG5hbWU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgICAgICBuYW1lLCB2YWx1ZSA9IGxpbmUuc3BsaXQoIjoiLCAx
KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9yYWlzZShsaW5lbm8sICd1bmV4cGVjdGVkIGxpbmU6ICVyJyAlIGxpbmUpCisgICAg
ICAgICAgICByZXR1cm4gbmFtZS5zdHJpcCgpLCB2YWx1ZS5zdHJpcCgpCisgICAgICAgICMgY29u
dGludWF0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZSwgbGluZS5z
dHJpcCgpCisKKyAgICBkZWYgbGluZW9mKHNlbGYsIHNlY3Rpb24sIG5hbWU9Tm9uZSk6CisgICAg
ICAgIGxpbmVubyA9IHNlbGYuX3NvdXJjZXMuZ2V0KChzZWN0aW9uLCBuYW1lKSkKKyAgICAgICAg
aWYgbGluZW5vIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGxpbmVubyArIDEKKwor
ICAgIGRlZiBnZXQoc2VsZiwgc2VjdGlvbiwgbmFtZSwgZGVmYXVsdD1Ob25lLCBjb252ZXJ0PXN0
cik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0KHNlbGYuc2VjdGlv
bnNbc2VjdGlvbl1bbmFtZV0pCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IHJldHVybiBkZWZhdWx0CisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFtZSk6CisgICAg
ICAgIGlmIG5hbWUgbm90IGluIHNlbGYuc2VjdGlvbnM6CisgICAgICAgICAgICByYWlzZSBLZXlF
cnJvcihuYW1lKQorICAgICAgICByZXR1cm4gU2VjdGlvbldyYXBwZXIoc2VsZiwgbmFtZSkKKwor
ICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIG5hbWUgaW4gc29ydGVkKHNlbGYu
c2VjdGlvbnMsIGtleT1zZWxmLmxpbmVvZik6CisgICAgICAgICAgICB5aWVsZCBTZWN0aW9uV3Jh
cHBlcihzZWxmLCBuYW1lKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBhcmcpOgorICAg
ICAgICByZXR1cm4gYXJnIGluIHNlbGYuc2VjdGlvbnMKKworCitkZWYgaXNjb21tZW50bGluZShs
aW5lKToKKyAgICBjID0gbGluZS5sc3RyaXAoKVs6MV0KKyAgICByZXR1cm4gYyBpbiBDT01NRU5U
Q0hBUlMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGI0ZTZjZGZkMTY4ZTI5ZDRmNTg3N2MzYzBiMDFjMzM4YjkwYTRkMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L194bWxnZW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L194bWxnZW4ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWM4MzU0NTg4NDM5MGI3MjQwNzlkNGMwNTMyOTYzYTJhMDU0ZjliZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3htbGdlbi5weQpAQCAtMCwwICsxLDI1NSBAQAorIiIiCittb2R1bGUg
Zm9yIGdlbmVyYXRpbmcgYW5kIHNlcmlhbGl6aW5nIHhtbCBhbmQgaHRtbCBzdHJ1Y3R1cmVzCiti
eSB1c2luZyBzaW1wbGUgcHl0aG9uIG9iamVjdHMuCisKKyhjKSBob2xnZXIga3Jla2VsLCBob2xn
ZXIgYXQgbWVybGludXggZXUuIDIwMDkKKyIiIgoraW1wb3J0IHN5cywgcmUKKworaWYgc3lzLnZl
cnNpb25faW5mbyA+PSAoMywwKToKKyAgICBkZWYgdShzKToKKyAgICAgICAgcmV0dXJuIHMKKyAg
ICBkZWYgdW5pY29kZSh4LCBlcnJvcnM9Tm9uZSk6CisgICAgICAgIGlmIGhhc2F0dHIoeCwgJ19f
dW5pY29kZV9fJyk6CisgICAgICAgICAgICByZXR1cm4geC5fX3VuaWNvZGVfXygpCisgICAgICAg
IHJldHVybiBzdHIoeCkKK2Vsc2U6CisgICAgZGVmIHUocyk6CisgICAgICAgIHJldHVybiB1bmlj
b2RlKHMpCisgICAgdW5pY29kZSA9IHVuaWNvZGUKKworCitjbGFzcyBOYW1lc3BhY2VNZXRhY2xh
c3ModHlwZSk6CisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBu
YW1lWzoxXSA9PSAnXyc6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQor
ICAgICAgICBpZiBzZWxmID09IE5hbWVzcGFjZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIk5hbWVzcGFjZSBjbGFzcyBpcyBhYnN0cmFjdCIpCisgICAgICAgIHRhZ3NwZWMgPSBzZWxm
Ll9fdGFnc3BlY19fCisgICAgICAgIGlmIHRhZ3NwZWMgaXMgbm90IE5vbmUgYW5kIG5hbWUgbm90
IGluIHRhZ3NwZWM6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorICAg
ICAgICBjbGFzc2F0dHIgPSB7fQorICAgICAgICBpZiBzZWxmLl9fc3RpY2t5bmFtZV9fOgorICAg
ICAgICAgICAgY2xhc3NhdHRyWyd4bWxuYW1lJ10gPSBuYW1lCisgICAgICAgIGNscyA9IHR5cGUo
bmFtZSwgKHNlbGYuX190YWdjbGFzc19fLCksIGNsYXNzYXR0cikKKyAgICAgICAgc2V0YXR0cihz
ZWxmLCBuYW1lLCBjbHMpCisgICAgICAgIHJldHVybiBjbHMKKworY2xhc3MgVGFnKGxpc3QpOgor
ICAgIGNsYXNzIEF0dHIob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGt3YXJncykKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihUYWcsIHNl
bGYpLl9faW5pdF9fKGFyZ3MpCisgICAgICAgIHNlbGYuYXR0ciA9IHNlbGYuQXR0cigqKmt3YXJn
cykKKworICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudW5p
Y29kZShpbmRlbnQ9MCkKKyAgICBfX3N0cl9fID0gX191bmljb2RlX18KKworICAgIGRlZiB1bmlj
b2RlKHNlbGYsIGluZGVudD0yKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIFNpbXBsZVVuaWNv
ZGVWaXNpdG9yKGwuYXBwZW5kLCBpbmRlbnQpLnZpc2l0KHNlbGYpCisgICAgICAgIHJldHVybiB1
KCIiKS5qb2luKGwpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIG5hbWUgPSBz
ZWxmLl9fY2xhc3NfXy5fX25hbWVfXworICAgICAgICByZXR1cm4gIjwlciB0YWcgb2JqZWN0ICVk
PiIgJSAobmFtZSwgaWQoc2VsZikpCisKK05hbWVzcGFjZSA9IE5hbWVzcGFjZU1ldGFjbGFzcygn
TmFtZXNwYWNlJywgKG9iamVjdCwgKSwgeworICAgICdfX3RhZ3NwZWNfXyc6IE5vbmUsCisgICAg
J19fdGFnY2xhc3NfXyc6IFRhZywKKyAgICAnX19zdGlja3luYW1lX18nOiBGYWxzZSwKK30pCisK
K2NsYXNzIEh0bWxUYWcoVGFnKToKKyAgICBkZWYgdW5pY29kZShzZWxmLCBpbmRlbnQ9Mik6Cisg
ICAgICAgIGwgPSBbXQorICAgICAgICBIdG1sVmlzaXRvcihsLmFwcGVuZCwgaW5kZW50LCBzaG9y
dGVtcHR5PUZhbHNlKS52aXNpdChzZWxmKQorICAgICAgICByZXR1cm4gdSgiIikuam9pbihsKQor
CisjIGV4cG9ydGVkIHBsYWluIGh0bWwgbmFtZXNwYWNlCitjbGFzcyBodG1sKE5hbWVzcGFjZSk6
CisgICAgX190YWdjbGFzc19fID0gSHRtbFRhZworICAgIF9fc3RpY2t5bmFtZV9fID0gVHJ1ZQor
ICAgIF9fdGFnc3BlY19fID0gZGljdChbKHgsMSkgZm9yIHggaW4gKAorICAgICAgICAnYSxhYmJy
LGFjcm9ueW0sYWRkcmVzcyxhcHBsZXQsYXJlYSxhcnRpY2xlLGFzaWRlLGF1ZGlvLGIsJworICAg
ICAgICAnYmFzZSxiYXNlZm9udCxiZGksYmRvLGJpZyxibGluayxibG9ja3F1b3RlLGJvZHksYnIs
YnV0dG9uLCcKKyAgICAgICAgJ2NhbnZhcyxjYXB0aW9uLGNlbnRlcixjaXRlLGNvZGUsY29sLGNv
bGdyb3VwLGNvbW1hbmQsY29tbWVudCwnCisgICAgICAgICdkYXRhbGlzdCxkZCxkZWwsZGV0YWls
cyxkZm4sZGlyLGRpdixkbCxkdCxlbSxlbWJlZCwnCisgICAgICAgICdmaWVsZHNldCxmaWdjYXB0
aW9uLGZpZ3VyZSxmb290ZXIsZm9udCxmb3JtLGZyYW1lLGZyYW1lc2V0LGgxLCcKKyAgICAgICAg
J2gyLGgzLGg0LGg1LGg2LGhlYWQsaGVhZGVyLGhncm91cCxocixodG1sLGksaWZyYW1lLGltZyxp
bnB1dCwnCisgICAgICAgICdpbnMsaXNpbmRleCxrYmQsa2V5Z2VuLGxhYmVsLGxlZ2VuZCxsaSxs
aW5rLGxpc3RpbmcsbWFwLG1hcmssJworICAgICAgICAnbWFycXVlZSxtZW51LG1ldGEsbWV0ZXIs
bXVsdGljb2wsbmF2LG5vYnIsbm9lbWJlZCxub2ZyYW1lcywnCisgICAgICAgICdub3NjcmlwdCxv
YmplY3Qsb2wsb3B0Z3JvdXAsb3B0aW9uLG91dHB1dCxwLHBhcmFtLHByZSxwcm9ncmVzcywnCisg
ICAgICAgICdxLHJwLHJ0LHJ1YnkscyxzYW1wLHNjcmlwdCxzZWN0aW9uLHNlbGVjdCxzbWFsbCxz
b3VyY2Usc3BhbiwnCisgICAgICAgICdzdHJpa2Usc3Ryb25nLHN0eWxlLHN1YixzdW1tYXJ5LHN1
cCx0YWJsZSx0Ym9keSx0ZCx0ZXh0YXJlYSwnCisgICAgICAgICd0Zm9vdCx0aCx0aGVhZCx0aW1l
LHRpdGxlLHRyLHRyYWNrLHR0LHUsdWwseG1wLHZhcix2aWRlbyx3YnInCisgICAgKS5zcGxpdCgn
LCcpIGlmIHhdKQorCisgICAgY2xhc3MgU3R5bGUob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5p
dF9fKHNlbGYsICoqa3cpOgorICAgICAgICAgICAgZm9yIHgsIHkgaW4ga3cuaXRlbXMoKToKKyAg
ICAgICAgICAgICAgICB4ID0geC5yZXBsYWNlKCdfJywgJy0nKQorICAgICAgICAgICAgICAgIHNl
dGF0dHIoc2VsZiwgeCwgeSkKKworCitjbGFzcyByYXcob2JqZWN0KToKKyAgICAiIiJqdXN0IGEg
Ym94IHRoYXQgY2FuIGNvbnRhaW4gYSB1bmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUKKyAgICBp
bmNsdWRlZCBkaXJlY3RseSBpbiB0aGUgb3V0cHV0IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHVuaW9iaik6CisgICAgICAgIHNlbGYudW5pb2JqID0gdW5pb2JqCisKK2NsYXNzIFNpbXBsZVVu
aWNvZGVWaXNpdG9yKG9iamVjdCk6CisgICAgIiIiIHJlY3Vyc2l2ZSB2aXNpdG9yIHRvIHdyaXRl
IHVuaWNvZGUuICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3cml0ZSwgaW5kZW50PTAsIGN1
cmluZGVudD0wLCBzaG9ydGVtcHR5PVRydWUpOgorICAgICAgICBzZWxmLndyaXRlID0gd3JpdGUK
KyAgICAgICAgc2VsZi5jYWNoZSA9IHt9CisgICAgICAgIHNlbGYudmlzaXRlZCA9IHt9ICMgZm9y
IGRldGVjdGlvbiBvZiByZWN1cnNpb24KKyAgICAgICAgc2VsZi5pbmRlbnQgPSBpbmRlbnQKKyAg
ICAgICAgc2VsZi5jdXJpbmRlbnQgPSBjdXJpbmRlbnQKKyAgICAgICAgc2VsZi5wYXJlbnRzID0g
W10KKyAgICAgICAgc2VsZi5zaG9ydGVtcHR5ID0gc2hvcnRlbXB0eSAgIyBzaG9ydCBlbXB0eSB0
YWdzIG9yIG5vdAorCisgICAgZGVmIHZpc2l0KHNlbGYsIG5vZGUpOgorICAgICAgICAiIiIgZGlz
cGF0Y2hlciBvbiBub2RlJ3MgY2xhc3MvYmFzZXMgbmFtZS4gIiIiCisgICAgICAgIGNscyA9IG5v
ZGUuX19jbGFzc19fCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZpc2l0bWV0aG9kID0gc2Vs
Zi5jYWNoZVtjbHNdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIGZvciBz
dWJjbGFzcyBpbiBjbHMuX19tcm9fXzoKKyAgICAgICAgICAgICAgICB2aXNpdG1ldGhvZCA9IGdl
dGF0dHIoc2VsZiwgc3ViY2xhc3MuX19uYW1lX18sIE5vbmUpCisgICAgICAgICAgICAgICAgaWYg
dmlzaXRtZXRob2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZpc2l0bWV0aG9kID0gc2VsZi5fX29iamVj
dAorICAgICAgICAgICAgc2VsZi5jYWNoZVtjbHNdID0gdmlzaXRtZXRob2QKKyAgICAgICAgdmlz
aXRtZXRob2Qobm9kZSkKKworICAgICMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgaGFuZGxlciBpcyBt
YXJrZWQgcHJpdmF0ZQorICAgICMgdG8gYXZvaWQgY2xhc2hlcyB3aXRoIHRoZSB0YWcgbmFtZSBv
YmplY3QKKyAgICBkZWYgX19vYmplY3Qoc2VsZiwgb2JqKToKKyAgICAgICAgI3NlbGYud3JpdGUo
b2JqKQorICAgICAgICBzZWxmLndyaXRlKGVzY2FwZSh1bmljb2RlKG9iaikpKQorCisgICAgZGVm
IHJhdyhzZWxmLCBvYmopOgorICAgICAgICBzZWxmLndyaXRlKG9iai51bmlvYmopCisKKyAgICBk
ZWYgbGlzdChzZWxmLCBvYmopOgorICAgICAgICBhc3NlcnQgaWQob2JqKSBub3QgaW4gc2VsZi52
aXNpdGVkCisgICAgICAgIHNlbGYudmlzaXRlZFtpZChvYmopXSA9IDEKKyAgICAgICAgZm9yIGVs
ZW0gaW4gb2JqOgorICAgICAgICAgICAgc2VsZi52aXNpdChlbGVtKQorCisgICAgZGVmIFRhZyhz
ZWxmLCB0YWcpOgorICAgICAgICBhc3NlcnQgaWQodGFnKSBub3QgaW4gc2VsZi52aXNpdGVkCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHRhZy5wYXJlbnQgPSBzZWxmLnBhcmVudHNbLTFdCisg
ICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICAgICAgdGFnLnBhcmVudCA9IE5vbmUK
KyAgICAgICAgc2VsZi52aXNpdGVkW2lkKHRhZyldID0gMQorICAgICAgICB0YWduYW1lID0gZ2V0
YXR0cih0YWcsICd4bWxuYW1lJywgdGFnLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgaWYg
c2VsZi5jdXJpbmRlbnQgYW5kIG5vdCBzZWxmLl9pc2lubGluZSh0YWduYW1lKToKKyAgICAgICAg
ICAgIHNlbGYud3JpdGUoIlxuIiArIHUoJyAnKSAqIHNlbGYuY3VyaW5kZW50KQorICAgICAgICBp
ZiB0YWc6CisgICAgICAgICAgICBzZWxmLmN1cmluZGVudCArPSBzZWxmLmluZGVudAorICAgICAg
ICAgICAgc2VsZi53cml0ZSh1KCc8JXMlcz4nKSAlICh0YWduYW1lLCBzZWxmLmF0dHJpYnV0ZXMo
dGFnKSkpCisgICAgICAgICAgICBzZWxmLnBhcmVudHMuYXBwZW5kKHRhZykKKyAgICAgICAgICAg
IGZvciB4IGluIHRhZzoKKyAgICAgICAgICAgICAgICBzZWxmLnZpc2l0KHgpCisgICAgICAgICAg
ICBzZWxmLnBhcmVudHMucG9wKCkKKyAgICAgICAgICAgIHNlbGYud3JpdGUodSgnPC8lcz4nKSAl
IHRhZ25hbWUpCisgICAgICAgICAgICBzZWxmLmN1cmluZGVudCAtPSBzZWxmLmluZGVudAorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgbmFtZWF0dHIgPSB0YWduYW1lK3NlbGYuYXR0cmlidXRl
cyh0YWcpCisgICAgICAgICAgICBpZiBzZWxmLl9pc3NpbmdsZXRvbih0YWduYW1lKToKKyAgICAg
ICAgICAgICAgICBzZWxmLndyaXRlKHUoJzwlcy8+JykgJSAobmFtZWF0dHIsKSkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZSh1KCc8JXM+PC8lcz4nKSAlIChu
YW1lYXR0ciwgdGFnbmFtZSkpCisKKyAgICBkZWYgYXR0cmlidXRlcyhzZWxmLCB0YWcpOgorICAg
ICAgICAjIHNlcmlhbGl6ZSBhdHRyaWJ1dGVzCisgICAgICAgIGF0dHJsaXN0ID0gZGlyKHRhZy5h
dHRyKQorICAgICAgICBhdHRybGlzdC5zb3J0KCkKKyAgICAgICAgbCA9IFtdCisgICAgICAgIGZv
ciBuYW1lIGluIGF0dHJsaXN0OgorICAgICAgICAgICAgcmVzID0gc2VsZi5yZXByX2F0dHJpYnV0
ZSh0YWcuYXR0ciwgbmFtZSkKKyAgICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICAgICBsLmFwcGVuZChyZXMpCisgICAgICAgIGwuZXh0ZW5kKHNlbGYuZ2V0c3R5bGUo
dGFnKSkKKyAgICAgICAgcmV0dXJuIHUoIiIpLmpvaW4obCkKKworICAgIGRlZiByZXByX2F0dHJp
YnV0ZShzZWxmLCBhdHRycywgbmFtZSk6CisgICAgICAgIGlmIG5hbWVbOjJdICE9ICdfXyc6Cisg
ICAgICAgICAgICB2YWx1ZSA9IGdldGF0dHIoYXR0cnMsIG5hbWUpCisgICAgICAgICAgICBpZiBu
YW1lLmVuZHN3aXRoKCdfJyk6CisgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVbOi0xXQorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgcmF3KToKKyAgICAgICAgICAgICAgICBpbnNl
cnQgPSB2YWx1ZS51bmlvYmoKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaW5z
ZXJ0ID0gZXNjYXBlKHVuaWNvZGUodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuICcgJXM9IiVz
IicgJSAobmFtZSwgaW5zZXJ0KQorCisgICAgZGVmIGdldHN0eWxlKHNlbGYsIHRhZyk6CisgICAg
ICAgICIiIiByZXR1cm4gYXR0cmlidXRlIGxpc3Qgc3VpdGFibGUgZm9yIHN0eWxpbmcuICIiIgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzdHlsZWRpY3QgPSB0YWcuc3R5bGUuX19kaWN0X18K
KyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIFtdCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdHlsZWxpc3QgPSBbeCsnOiAnICsgeSBmb3IgeCx5
IGluIHN0eWxlZGljdC5pdGVtcygpXQorICAgICAgICAgICAgcmV0dXJuIFt1KCcgc3R5bGU9IiVz
IicpICUgdSgnOyAnKS5qb2luKHN0eWxlbGlzdCldCisKKyAgICBkZWYgX2lzc2luZ2xldG9uKHNl
bGYsIHRhZ25hbWUpOgorICAgICAgICAiIiJjYW4gKGFuZCB3aWxsKSBiZSBvdmVycmlkZGVuIGlu
IHN1YmNsYXNzZXMiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc2hvcnRlbXB0eQorCisgICAgZGVm
IF9pc2lubGluZShzZWxmLCB0YWduYW1lKToKKyAgICAgICAgIiIiY2FuIChhbmQgd2lsbCkgYmUg
b3ZlcnJpZGRlbiBpbiBzdWJjbGFzc2VzIiIiCisgICAgICAgIHJldHVybiBGYWxzZQorCitjbGFz
cyBIdG1sVmlzaXRvcihTaW1wbGVVbmljb2RlVmlzaXRvcik6CisKKyAgICBzaW5nbGUgPSBkaWN0
KFsoeCwgMSkgZm9yIHggaW4KKyAgICAgICAgICAgICAgICAoJ2JyLGltZyxhcmVhLHBhcmFtLGNv
bCxocixtZXRhLGxpbmssYmFzZSwnCisgICAgICAgICAgICAgICAgICAgICdpbnB1dCxmcmFtZScp
LnNwbGl0KCcsJyldKQorICAgIGlubGluZSA9IGRpY3QoWyh4LCAxKSBmb3IgeCBpbgorICAgICAg
ICAgICAgICAgICgnYSBhYmJyIGFjcm9ueW0gYiBiYXNlZm9udCBiZG8gYmlnIGJyIGNpdGUgY29k
ZSBkZm4gZW0gZm9udCAnCisgICAgICAgICAgICAgICAgICdpIGltZyBpbnB1dCBrYmQgbGFiZWwg
cSBzIHNhbXAgc2VsZWN0IHNtYWxsIHNwYW4gc3RyaWtlICcKKyAgICAgICAgICAgICAgICAgJ3N0
cm9uZyBzdWIgc3VwIHRleHRhcmVhIHR0IHUgdmFyJy5zcGxpdCgnICcpKV0pCisKKyAgICBkZWYg
cmVwcl9hdHRyaWJ1dGUoc2VsZiwgYXR0cnMsIG5hbWUpOgorICAgICAgICBpZiBuYW1lID09ICdj
bGFzc18nOgorICAgICAgICAgICAgdmFsdWUgPSBnZXRhdHRyKGF0dHJzLCBuYW1lKQorICAgICAg
ICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
cmV0dXJuIHN1cGVyKEh0bWxWaXNpdG9yLCBzZWxmKS5yZXByX2F0dHJpYnV0ZShhdHRycywgbmFt
ZSkKKworICAgIGRlZiBfaXNzaW5nbGV0b24oc2VsZiwgdGFnbmFtZSk6CisgICAgICAgIHJldHVy
biB0YWduYW1lIGluIHNlbGYuc2luZ2xlCisKKyAgICBkZWYgX2lzaW5saW5lKHNlbGYsIHRhZ25h
bWUpOgorICAgICAgICByZXR1cm4gdGFnbmFtZSBpbiBzZWxmLmlubGluZQorCisKK2NsYXNzIF9l
c2NhcGU6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmVzY2FwZSA9IHsK
KyAgICAgICAgICAgIHUoJyInKSA6IHUoJyZxdW90OycpLCB1KCc8JykgOiB1KCcmbHQ7JyksIHUo
Jz4nKSA6IHUoJyZndDsnKSwKKyAgICAgICAgICAgIHUoJyYnKSA6IHUoJyZhbXA7JyksIHUoIici
KSA6IHUoJyZhcG9zOycpLAorICAgICAgICAgICAgfQorICAgICAgICBzZWxmLmNoYXJlZl9yZXgg
PSByZS5jb21waWxlKHUoInwiKS5qb2luKHNlbGYuZXNjYXBlLmtleXMoKSkpCisKKyAgICBkZWYg
X3JlcGxhY2VyKHNlbGYsIG1hdGNoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZXNjYXBlW21hdGNo
Lmdyb3VwKDApXQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHVzdHJpbmcpOgorICAgICAgICAi
IiIgeG1sLWVzY2FwZSB0aGUgZ2l2ZW4gdW5pY29kZSBzdHJpbmcuICIiIgorICAgICAgICB0cnk6
CisgICAgICAgICAgICB1c3RyaW5nID0gdW5pY29kZSh1c3RyaW5nKQorICAgICAgICBleGNlcHQg
VW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgdXN0cmluZyA9IHVuaWNvZGUodXN0cmlu
ZywgJ3V0Zi04JywgZXJyb3JzPSdyZXBsYWNlJykKKyAgICAgICAgcmV0dXJuIHNlbGYuY2hhcmVm
X3JleC5zdWIoc2VsZi5fcmVwbGFjZXIsIHVzdHJpbmcpCisKK2VzY2FwZSA9IF9lc2NhcGUoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS90ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS90ZXN0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhNWJlYjE3ODlmMDU3NjA0ZDhmMTM0MzM5NTFlYTA5Mjg0OGMxZjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L3Rlc3QucHkKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IHN5
cworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgc3lz
LmV4aXQocHl0ZXN0Lm1haW4oKSkKK2Vsc2U6CisgICAgaW1wb3J0IHN5cywgcHl0ZXN0CisgICAg
c3lzLm1vZHVsZXNbJ3B5LnRlc3QnXSA9IHB5dGVzdAorCisjIGZvciBtb3JlIEFQSSBlbnRyeSBw
b2ludHMgc2VlIHRoZSAndGVzdHMnIGRlZmluaXRpb24KKyMgaW4gX19pbml0X18ucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZlNjk3ODczNmQ0NDVkZmRlNTMzYWVjOGYzZTMwM2RlZjZkMWRiYzIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MjMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19fbWV0
YWluZm8ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19idWlsdGluLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fZXJyb3IucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19zdGQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L194bWxnZW4ucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAuY2ZnIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9zZXR1cC5j
ZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWYyNWMyZmViZmQ5NGI2MmI1NmEyMjVmYTY0YWVhMzQyYjkzOTM3Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsOCBAQAorW3do
ZWVsXQordW5pdmVyc2FsID0gMQorCitbbWV0YWRhdGFdCitsaWNlbnNlX2ZpbGUgPSBMSUNFTlNF
CisKK1tkZXZwaTp1cGxvYWRdCitmb3JtYXRzPXNkaXN0LnRneixiZGlzdF93aGVlbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5
MzIzYjBjNzViOWViYWI3ZWIyN2Y5Y2EyMDkxOTJmOThiYzEzYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvc2V0dXAucHkKQEAgLTAsMCArMSw1MyBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lz
CisKK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMKKworCitkZWYg
Z2V0X3ZlcnNpb24oKToKKyAgICBwID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZSgKKyAg
ICAgICAgICAgICAgICAgICAgIG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLCAicHkiLCAiX19p
bml0X18ucHkiKQorICAgIHdpdGggb3BlbihwKSBhcyBmOgorICAgICAgICBmb3IgbGluZSBpbiBm
LnJlYWRsaW5lcygpOgorICAgICAgICAgICAgaWYgIl9fdmVyc2lvbl9fIiBpbiBsaW5lOgorICAg
ICAgICAgICAgICAgIHJldHVybiBsaW5lLnN0cmlwKCkuc3BsaXQoIj0iKVstMV0uc3RyaXAoIiAn
IikKKyAgICByYWlzZSBWYWx1ZUVycm9yKCJjb3VsZCBub3QgcmVhZCB2ZXJzaW9uIikKKworCitk
ZWYgbWFpbigpOgorICAgIHNldHVwKAorICAgICAgICBuYW1lPSdweScsCisgICAgICAgIGRlc2Ny
aXB0aW9uPSdsaWJyYXJ5IHdpdGggY3Jvc3MtcHl0aG9uIHBhdGgsIGluaS1wYXJzaW5nLCBpbywg
Y29kZSwgbG9nIGZhY2lsaXRpZXMnLAorICAgICAgICBsb25nX2Rlc2NyaXB0aW9uPW9wZW4oJ1JF
QURNRS5yc3QnKS5yZWFkKCksCisgICAgICAgIHZlcnNpb249Z2V0X3ZlcnNpb24oKSwKKyAgICAg
ICAgdXJsPSdodHRwOi8vcHkucmVhZHRoZWRvY3MuaW8vJywKKyAgICAgICAgbGljZW5zZT0nTUlU
IGxpY2Vuc2UnLAorICAgICAgICBwbGF0Zm9ybXM9Wyd1bml4JywgJ2xpbnV4JywgJ29zeCcsICdj
eWd3aW4nLCAnd2luMzInXSwKKyAgICAgICAgcHl0aG9uX3JlcXVpcmVzPSc+PTIuNywgIT0zLjAu
KiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0zLjMuKicsCisgICAgICAgIGF1dGhvcj0naG9sZ2VyIGty
ZWtlbCwgUm9ubnkgUGZhbm5zY2htaWR0LCBCZW5qYW1pbiBQZXRlcnNvbiBhbmQgb3RoZXJzJywK
KyAgICAgICAgYXV0aG9yX2VtYWlsPSdweXRlc3QtZGV2QHB5dGhvbi5vcmcnLAorICAgICAgICBj
bGFzc2lmaWVycz1bJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA2IC0gTWF0dXJlJywKKyAgICAgICAg
ICAgICAgICAgICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKKyAgICAgICAg
ICAgICAgICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZScsCisg
ICAgICAgICAgICAgICAgICAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWCcsCisgICAgICAg
ICAgICAgICAgICAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQgOjogV2luZG93cycs
CisgICAgICAgICAgICAgICAgICAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBNYWNPUyA6OiBNYWNP
UyBYJywKKyAgICAgICAgICAgICAgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVu
dCA6OiBUZXN0aW5nJywKKyAgICAgICAgICAgICAgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBE
ZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLAorICAgICAgICAgICAgICAgICAgICAgJ1RvcGljIDo6
IFV0aWxpdGllcycsCisgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ug
OjogUHl0aG9uJywKKyAgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMicsCisgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDIuNycsCisgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMnLAorICAgICAgICAgICAgICAgICAgICAgJ1Byb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjQnLAorICAgICAgICAgICAgICAgICAgICAgJ1By
b2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjUnLAorICAgICAgICAgICAgICAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYnLAorICAgICAgICAgICAg
ICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlv
biA6OiBDUHl0aG9uJywKKyAgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogUHlQeScsCisgICAgICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgIHBhY2thZ2VzPWZpbmRfcGFja2FnZXMoZXhjbHVkZT1bJ3Rhc2tzJywg
J3Rlc3RpbmcnXSksCisgICAgICAgIHppcF9zYWZlPUZhbHNlLAorICAgICkKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3Mv
X19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNzRi
NjQ5ZTExYTIzNWI0YzUwZTYzOWRmMzkyMDRiZDliMzdmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rhc2tzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTIgQEAKKyIiIgorSW52b2tlIHRh
c2tzIHRvIGhlbHAgd2l0aCBweXRlc3QgZGV2ZWxvcG1lbnQgYW5kIHJlbGVhc2UgcHJvY2Vzcy4K
KyIiIgorCitpbXBvcnQgaW52b2tlCisKK2Zyb20gLiBpbXBvcnQgdmVuZG9yaW5nCisKKworbnMg
PSBpbnZva2UuQ29sbGVjdGlvbigKKyAgICB2ZW5kb3JpbmcKKykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGFza3MvdmVuZG9yaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy92ZW5kb3JpbmcucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmJjMTcxYmMzZTBjZGI0ZjM0ZmZmODVmNDY3NTNiMWM4NTY2NGU3MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGFza3MvdmVuZG9yaW5nLnB5CkBAIC0wLDAgKzEsMjMgQEAKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBwcmludF9mdW5jdGlvbgoraW1w
b3J0IHB5CitpbXBvcnQgaW52b2tlCisKK1ZFTkRPUl9UQVJHRVQgPSBweS5wYXRoLmxvY2FsKCJw
eS9fdmVuZG9yZWRfcGFja2FnZXMiKQorR09PRF9GSUxFUyA9ICdSRUFETUUubWQnLCAnX19pbml0
X18ucHknCisKK0BpbnZva2UudGFzaygpCitkZWYgcmVtb3ZlX2xpYnMoY3R4KToKKyAgICBwcmlu
dCgicmVtb3ZpbmcgdmVuZG9yZWQgbGlicyIpCisgICAgZm9yIHBhdGggaW4gVkVORE9SX1RBUkdF
VC5saXN0ZGlyKCk6CisgICAgICAgIGlmIHBhdGguYmFzZW5hbWUgbm90IGluIEdPT0RfRklMRVM6
CisgICAgICAgICAgICBwcmludCgiICIsIHBhdGgpCisgICAgICAgICAgICBwYXRoLnJlbW92ZSgp
CisKK0BpbnZva2UudGFzayhwcmU9W3JlbW92ZV9saWJzXSkKK2RlZiB1cGRhdGVfbGlicyhjdHgp
OgorICAgIHByaW50KCJpbnN0YWxsaW5nIGxpYnMiKQorICAgIGN0eC5ydW4oInBpcCBpbnN0YWxs
IC10IHt0YXJnZXR9IGFwaXBrZyBpbmljb25maWciLmZvcm1hdCh0YXJnZXQ9VkVORE9SX1RBUkdF
VCkpCisgICAgY3R4LnJ1bigiZ2l0IGFkZCB7dGFyZ2V0fSIuZm9ybWF0KHRhcmdldD1WRU5ET1Jf
VEFSR0VUKSkKKyAgICBwcmludCgiUGxlYXNlIGNvbW1pdCB0byBmaW5pc2ggdGhlIHVwZGF0ZSBh
ZnRlciBydW5uaW5nIHRoZSB0ZXN0czoiKQorICAgIHByaW50KCkKKyAgICBwcmludCgnICAgIGdp
dCBjb21taXQgLWFtICJVcGRhdGVkIHZlbmRvcmVkIGxpYnMiJykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGFza3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNiY2RjMjVlYjg0ODI0Y2I1N2QxZGQyYThlOWNlMWRiMmJkYmNmNjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTgg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3MvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3Zl
bmRvcmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9hc3NlcnRp
b24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2Fzc2VydGlvbi5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMmE3ZjkwMzk5ODQ1MDA5ZTU2N2U5OGRhNWZjNjk4ZjgxNGFhMGQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9hc3NlcnRpb24ucHkKQEAgLTAsMCArMSwz
MDUgQEAKK2ltcG9ydCBweXRlc3QsIHB5CitpbXBvcnQgcmUKKworZGVmIGV4dmFsdWUoKToKKyAg
ICBpbXBvcnQgc3lzCisgICAgcmV0dXJuIHN5cy5leGNfaW5mbygpWzFdCisKK2RlZiBmKCk6Cisg
ICAgcmV0dXJuIDIKKworZGVmIHRlc3RfYXNzZXJ0KCk6CisgICAgdHJ5OgorICAgICAgICBhc3Nl
cnQgZigpID09IDMKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZh
bHVlKCkKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCdh
c3NlcnQgMiA9PSAzXG4nKQorCisKK2RlZiB0ZXN0X2Fzc2VydF93aXRoaW5fZmluYWxseSgpOgor
ICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgIiIiCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIDEvMAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
aSA9IDQyCisgICAgIiIiKQorICAgIHMgPSBleGNpbmZvLmV4Y29ubHkoKQorICAgIGFzc2VydCBy
ZS5zZWFyY2goIlplcm9EaXZpc2lvbkVycm9yOi4qZGl2aXNpb24iLCBzKSBpcyBub3QgTm9uZQor
CisKK2RlZiB0ZXN0X2Fzc2VydF9tdWx0aWxpbmVfMSgpOgorICAgIHRyeToKKyAgICAgICAgYXNz
ZXJ0IChmKCkgPT0KKyAgICAgICAgICAgICAgICAzKQorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJv
cjoKKyAgICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAgIGFz
c2VydCBzLnN0YXJ0c3dpdGgoJ2Fzc2VydCAyID09IDNcbicpCisKK2RlZiB0ZXN0X2Fzc2VydF9t
dWx0aWxpbmVfMigpOgorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0IChmKCkgPT0gKDQsCisgICAg
ICAgICAgICAgICAgICAgMylbLTFdKQorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAg
ICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAgIGFzc2VydCBzLnN0
YXJ0c3dpdGgoJ2Fzc2VydCAyID09JykKKworZGVmIHRlc3RfaW4oKToKKyAgICB0cnk6CisgICAg
ICAgIGFzc2VydCAiaGkiIGluIFsxLCAyXQorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAg
ICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAgIGFzc2VydCBz
LnN0YXJ0c3dpdGgoImFzc2VydCAnaGknIGluIikKKworZGVmIHRlc3RfaXMoKToKKyAgICB0cnk6
CisgICAgICAgIGFzc2VydCAxIGlzIDIKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAg
ICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgcy5z
dGFydHN3aXRoKCJhc3NlcnQgMSBpcyAyIikKKworCitkZWYgdGVzdF9hdHRyaWIoKToKKyAgICBj
bGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgYiA9IDEKKyAgICBpID0gRm9vKCkKKyAgICB0cnk6
CisgICAgICAgIGFzc2VydCBpLmIgPT0gMgorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAg
ICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAgIGFzc2VydCBz
LnN0YXJ0c3dpdGgoImFzc2VydCAxID09IDIiKQorCitkZWYgdGVzdF9hdHRyaWJfaW5zdCgpOgor
ICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICBiID0gMQorICAgIHRyeToKKyAgICAgICAg
YXNzZXJ0IEZvbygpLmIgPT0gMgorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAg
ZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAgIGFzc2VydCBzLnN0YXJ0
c3dpdGgoImFzc2VydCAxID09IDIiKQorCitkZWYgdGVzdF9sZW4oKToKKyAgICBsID0gbGlzdChy
YW5nZSg0MikpCisgICAgdHJ5OgorICAgICAgICBhc3NlcnQgbGVuKGwpID09IDEwMAorICAgIGV4
Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0g
c3RyKGUpCisgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoImFzc2VydCA0MiA9PSAxMDAiKQor
ICAgICAgICBhc3NlcnQgIndoZXJlIDQyID0gbGVuKFsiIGluIHMKKworCitkZWYgdGVzdF9hc3Nl
cnRfa2V5d29yZF9hcmcoKToKKyAgICBkZWYgZih4PTMpOgorICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICB0cnk6CisgICAgICAgIGFzc2VydCBmKHg9NSkKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJy
b3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgYXNzZXJ0ICJ4PTUiIGluIHN0cihl
KQorCisjIFRoZXNlIHRlc3RzIHNob3VsZCBib3RoIGZhaWwsIGJ1dCBzaG91bGQgZmFpbCBuaWNl
bHkuLi4KK2NsYXNzIFdlaXJkUmVwcjoKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
IHJldHVybiAnPFdlaXJkUmVwclxuc2Vjb25kIGxpbmU+JworCitkZWYgYnVnX3Rlc3RfYXNzZXJ0
X3JlcHIoKToKKyAgICB2ID0gV2VpcmRSZXByKCkKKyAgICB0cnk6CisgICAgICAgIGFzc2VydCB2
ID09IDEKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkK
KyAgICAgICAgYXNzZXJ0IHN0cihlKS5maW5kKCdXZWlyZFJlcHInKSAhPSAtMQorICAgICAgICBh
c3NlcnQgc3RyKGUpLmZpbmQoJ3NlY29uZCBsaW5lJykgIT0gLTEKKyAgICAgICAgYXNzZXJ0IDAK
KworZGVmIHRlc3RfYXNzZXJ0X25vbl9zdHJpbmcoKToKKyAgICB0cnk6CisgICAgICAgIGFzc2Vy
dCAwLCBbJ2xpc3QnXQorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgZSA9IGV4
dmFsdWUoKQorICAgICAgICBhc3NlcnQgc3RyKGUpLmZpbmQoImxpc3QiKSAhPSAtMQorCitkZWYg
dGVzdF9hc3NlcnRfaW1wbGljaXRfbXVsdGlsaW5lKCk6CisgICAgdHJ5OgorICAgICAgICB4ID0g
WzEsMiwzXQorICAgICAgICBhc3NlcnQgeCAhPSBbMSwKKyAgICAgICAgICAgMiwgM10KKyAgICBl
eGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgYXNz
ZXJ0IHN0cihlKS5maW5kKCdhc3NlcnQgWzEsIDIsIDNdICE9JykgIT0gLTEKKworQHB5LnRlc3Qu
bWFyay54ZmFpbChweS50ZXN0Ll9fdmVyc2lvbl9fWzBdICE9ICIyIiwKKyAgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSJicm9rZW4gb24gbW9kZXJuIHB5dGVzdCIsCisgICAgICAgICAgICAgICAg
ICAgIHJ1bj1GYWxzZQorKQorZGVmIHRlc3RfYXNzZXJ0X3dpdGhfYnJva2VucmVwcl9hcmcoKToK
KyAgICBjbGFzcyBCcm9rZW5SZXByOgorICAgICAgICBkZWYgX19yZXByX18oc2VsZik6IDAgLyAw
CisgICAgZSA9IEFzc2VydGlvbkVycm9yKEJyb2tlblJlcHIoKSkKKyAgICBpZiBlLm1zZy5maW5k
KCJicm9rZW4gX19yZXByX18iKSA9PSAtMToKKyAgICAgICAgcHkudGVzdC5mYWlsKCJicm9rZW4g
X19yZXByX18gbm90IGhhbmRsZSBjb3JyZWN0bHkiKQorCitkZWYgdGVzdF9tdWx0aXBsZV9zdGF0
ZW1lbnRzX3Blcl9saW5lKCk6CisgICAgdHJ5OgorICAgICAgICBhID0gMTsgYXNzZXJ0IGEgPT0g
MgorICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgZSA9IGV4dmFsdWUoKQorICAg
ICAgICBhc3NlcnQgImFzc2VydCAxID09IDIiIGluIHN0cihlKQorCitkZWYgdGVzdF9wb3dlcigp
OgorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0IDIqKjMgPT0gNworICAgIGV4Y2VwdCBBc3NlcnRp
b25FcnJvcjoKKyAgICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBhc3NlcnQgImFzc2VydCAo
MiAqKiAzKSA9PSA3IiBpbiBzdHIoZSkKKworCitjbGFzcyBUZXN0VmlldzoKKworICAgIGRlZiBz
ZXR1cF9jbGFzcyhjbHMpOgorICAgICAgICBjbHMuVmlldyA9IHB5LnRlc3QuaW1wb3J0b3Jza2lw
KCJweS5fY29kZS5fYXNzZXJ0aW9ub2xkIikuVmlldworCisgICAgZGVmIHRlc3RfY2xhc3NfZGlz
cGF0Y2goc2VsZik6CisgICAgICAgICMjIyBVc2UgYSBjdXN0b20gY2xhc3MgaGllcmFyY2h5IHdp
dGggZXhpc3RpbmcgaW5zdGFuY2VzCisKKyAgICAgICAgY2xhc3MgUGlja2xhYmxlKHNlbGYuVmll
dyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgU2ltcGxlKFBpY2tsYWJsZSk6
CisgICAgICAgICAgICBfX3ZpZXdfXyA9IG9iamVjdAorICAgICAgICAgICAgZGVmIHBpY2tsZShz
ZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwcihzZWxmLl9fb2JqX18pCisKKyAgICAg
ICAgY2xhc3MgU2VxKFBpY2tsYWJsZSk6CisgICAgICAgICAgICBfX3ZpZXdfXyA9IGxpc3QsIHR1
cGxlLCBkaWN0CisgICAgICAgICAgICBkZWYgcGlja2xlKHNlbGYpOgorICAgICAgICAgICAgICAg
IHJldHVybiAnOycuam9pbigKKyAgICAgICAgICAgICAgICAgICAgW1BpY2tsYWJsZShpdGVtKS5w
aWNrbGUoKSBmb3IgaXRlbSBpbiBzZWxmLl9fb2JqX19dKQorCisgICAgICAgIGNsYXNzIERpY3Qo
U2VxKToKKyAgICAgICAgICAgIF9fdmlld19fID0gZGljdAorICAgICAgICAgICAgZGVmIHBpY2ts
ZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VxLnBpY2tsZShzZWxmKSArICchJyAr
IFNlcShzZWxmLnZhbHVlcygpKS5waWNrbGUoKQorCisgICAgICAgIGFzc2VydCBQaWNrbGFibGUo
MTIzKS5waWNrbGUoKSA9PSAnMTIzJworICAgICAgICBhc3NlcnQgUGlja2xhYmxlKFsxLFsyLDNd
LDRdKS5waWNrbGUoKSA9PSAnMTsyOzM7NCcKKyAgICAgICAgYXNzZXJ0IFBpY2tsYWJsZSh7MToy
fSkucGlja2xlKCkgPT0gJzEhMicKKworICAgIGRlZiB0ZXN0X3ZpZXd0eXBlX2NsYXNzX2hpZXJh
cmNoeShzZWxmKToKKyAgICAgICAgIyBVc2UgYSBjdXN0b20gY2xhc3MgaGllcmFyY2h5IGJhc2Vk
IG9uIGF0dHJpYnV0ZXMgb2YgZXhpc3RpbmcgaW5zdGFuY2VzCisgICAgICAgIGNsYXNzIE9wZXJh
dGlvbjoKKyAgICAgICAgICAgICJFeGlzdGluZyBjbGFzcyB0aGF0IEkgZG9uJ3Qgd2FudCB0byBj
aGFuZ2UuIgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wbmFtZSwgKmFyZ3MpOgor
ICAgICAgICAgICAgICAgIHNlbGYub3BuYW1lID0gb3BuYW1lCisgICAgICAgICAgICAgICAgc2Vs
Zi5hcmdzID0gYXJncworCisgICAgICAgIGV4aXN0aW5nID0gW09wZXJhdGlvbignKycsIDQsIDUp
LAorICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24oJ2dldGl0ZW0nLCAnJywgJ2pvaW4nKSwK
KyAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uKCdzZXRhdHRyJywgJ3gnLCAneScsIDMpLAor
ICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24oJy0nLCAxMiwgMSldCisKKyAgICAgICAgY2xh
c3MgUHlPcChzZWxmLlZpZXcpOgorICAgICAgICAgICAgZGVmIF9fdmlld2tleV9fKHNlbGYpOgor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm9wbmFtZQorICAgICAgICAgICAgZGVmIGdlbmVy
YXRlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAnJXMoJXMpJyAlIChzZWxmLm9wbmFt
ZSwgJywgJy5qb2luKG1hcChyZXByLCBzZWxmLmFyZ3MpKSkKKworICAgICAgICBjbGFzcyBQeUJp
bmFyeU9wKFB5T3ApOgorICAgICAgICAgICAgX192aWV3X18gPSAoJysnLCAnLScsICcqJywgJy8n
KQorICAgICAgICAgICAgZGVmIGdlbmVyYXRlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVy
biAnJXMgJXMgJXMnICUgKHNlbGYuYXJnc1swXSwgc2VsZi5vcG5hbWUsIHNlbGYuYXJnc1sxXSkK
KworICAgICAgICBjb2RlbGluZXMgPSBbUHlPcChvcCkuZ2VuZXJhdGUoKSBmb3Igb3AgaW4gZXhp
c3RpbmddCisgICAgICAgIGFzc2VydCBjb2RlbGluZXMgPT0gWyI0ICsgNSIsICJnZXRpdGVtKCcn
LCAnam9pbicpIiwKKyAgICAgICAgICAgICJzZXRhdHRyKCd4JywgJ3knLCAzKSIsICIxMiAtIDEi
XQorCitkZWYgdGVzdF91bmRlcnNjb3JlX2FwaSgpOgorICAgIHB5LmNvZGUuX0Fzc2VydGlvbkVy
cm9yCisgICAgcHkuY29kZS5fcmVpbnRlcnByZXRfb2xkICMgdXNlZCBieSBweXB5CisgICAgcHku
Y29kZS5fcmVpbnRlcnByZXQKKworZGVmIHRlc3RfYXNzZXJ0X2N1c3RvbWl6YWJsZV9yZXByY29t
cGFyZShtb25rZXlwYXRjaCk6CisgICAgdXRpbCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIl9weXRl
c3QuYXNzZXJ0aW9uLnV0aWwiKQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIodXRpbCwgJ19yZXBy
Y29tcGFyZScsIGxhbWJkYSAqYXJnczogJ2hlbGxvJykKKyAgICB0cnk6CisgICAgICAgIGFzc2Vy
dCAzID09IDQKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVl
KCkKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgImhlbGxvIiBpbiBzCisKK2Rl
ZiB0ZXN0X2Fzc2VydF9sb25nX3NvdXJjZV8xKCk6CisgICAgdHJ5OgorICAgICAgICBhc3NlcnQg
bGVuID09IFsKKyAgICAgICAgICAgIChOb25lLCBbJ3NvbWV0IHRleHQnLCAnbW9yZSB0ZXh0J10p
LAorICAgICAgICBdCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAgICBlID0gZXh2
YWx1ZSgpCisgICAgICAgIHMgPSBzdHIoZSkKKyAgICAgICAgYXNzZXJ0ICdyZS1ydW4nIG5vdCBp
biBzCisgICAgICAgIGFzc2VydCAnc29tZXQgdGV4dCcgaW4gcworCitkZWYgdGVzdF9hc3NlcnRf
bG9uZ19zb3VyY2VfMigpOgorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0KGxlbiA9PSBbCisgICAg
ICAgICAgICAoTm9uZSwgWydzb21ldCB0ZXh0JywgJ21vcmUgdGV4dCddKSwKKyAgICAgICAgXSkK
KyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAg
ICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgJ3JlLXJ1bicgbm90IGluIHMKKyAgICAgICAg
YXNzZXJ0ICdzb21ldCB0ZXh0JyBpbiBzCisKK2RlZiB0ZXN0X2Fzc2VydF9yYWlzZV9hbGlhcyh0
ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgaW1wb3J0IHN5cworICAg
IEVYID0gQXNzZXJ0aW9uRXJyb3IKKyAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICByYWlz
ZSBFWCgiaGVsbG8iCisgICAgICAgICAgICAibXVsdGkiCisgICAgICAgICAgICAibGluZSIpCisg
ICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKmRlZiB0ZXN0X2hlbGxvKiIsCisgICAgICAg
ICIqcmFpc2UgRVgqIiwKKyAgICAgICAgIioxIGZhaWxlZCoiLAorICAgIF0pCisKK0BweS50ZXN0
Lm1hcmsueGZhaWwocHkudGVzdC5fX3ZlcnNpb25fX1swXSAhPSAiMiIsCisgICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0iYnJva2VuIG9uIG1vZGVybiBweXRlc3QiLAorICAgICAgICAgICAgICAg
ICAgICBydW49RmFsc2UpCitkZWYgdGVzdF9hc3NlcnRfcmFpc2Vfc3ViY2xhc3MoKToKKyAgICBj
bGFzcyBTb21lRXgoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
KmFyZ3MpOgorICAgICAgICAgICAgc3VwZXIoU29tZUV4LCBzZWxmKS5fX2luaXRfXygpCisgICAg
dHJ5OgorICAgICAgICByYWlzZSBTb21lRXgoImhlbGxvIikKKyAgICBleGNlcHQgQXNzZXJ0aW9u
RXJyb3IgYXMgZToKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgJ3JlLXJ1bicg
bm90IGluIHMKKyAgICAgICAgYXNzZXJ0ICdjb3VsZCBub3QgZGV0ZXJtaW5lJyBpbiBzCisKK2Rl
ZiB0ZXN0X2Fzc2VydF9yYWlzZXNfaW5fbm9uemVyb19vZl9vYmplY3RfcHl0ZXN0X2lzc3VlMTAo
KToKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAgICAgIGRlZiBfX2x0X18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICAgICAgcmV0dXJuIEEoKQorICAgICAgICBkZWYgX19yZXByX18o
c2VsZik6CisgICAgICAgICAgICByZXR1cm4gIjxNWTQyIG9iamVjdD4iCisgICAgZGVmIG15YW55
KHgpOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0IG5vdCht
eWFueShBKCkgPCAwKSkKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBl
eHZhbHVlKCkKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgIjxNWTQyIG9iamVj
dD4gPCAwIiBpbiBzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhlYzYy
OGIwMGQ0MzYxNWFkNmJkOWY4MWMyZmM5YzIwM2YwYWZiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfY29kZS5weQpAQCAtMCwwICsxLDE1OSBAQAoraW1wb3J0
IHB5CitpbXBvcnQgc3lzCisKK2RlZiB0ZXN0X25lKCk6CisgICAgY29kZTEgPSBweS5jb2RlLkNv
ZGUoY29tcGlsZSgnZm9vID0gImJhciInLCAnJywgJ2V4ZWMnKSkKKyAgICBhc3NlcnQgY29kZTEg
PT0gY29kZTEKKyAgICBjb2RlMiA9IHB5LmNvZGUuQ29kZShjb21waWxlKCdmb28gPSAiYmF6Iics
ICcnLCAnZXhlYycpKQorICAgIGFzc2VydCBjb2RlMiAhPSBjb2RlMQorCitkZWYgdGVzdF9jb2Rl
X2dpdmVzX2JhY2tfbmFtZV9mb3Jfbm90X2V4aXN0aW5nX2ZpbGUoKToKKyAgICBuYW1lID0gJ2Fi
Yy0xMjMnCisgICAgY29fY29kZSA9IGNvbXBpbGUoInBhc3NcbiIsIG5hbWUsICdleGVjJykKKyAg
ICBhc3NlcnQgY29fY29kZS5jb19maWxlbmFtZSA9PSBuYW1lCisgICAgY29kZSA9IHB5LmNvZGUu
Q29kZShjb19jb2RlKQorICAgIGFzc2VydCBzdHIoY29kZS5wYXRoKSA9PSBuYW1lCisgICAgYXNz
ZXJ0IGNvZGUuZnVsbHNvdXJjZSBpcyBOb25lCisKK2RlZiB0ZXN0X2NvZGVfd2l0aF9jbGFzcygp
OgorICAgIGNsYXNzIEE6CisgICAgICAgIHBhc3MKKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJy
b3IsICJweS5jb2RlLkNvZGUoQSkiKQorCitpZiBUcnVlOgorICAgIGRlZiB4KCk6CisgICAgICAg
IHBhc3MKKworZGVmIHRlc3RfY29kZV9mdWxsc291cmNlKCk6CisgICAgY29kZSA9IHB5LmNvZGUu
Q29kZSh4KQorICAgIGZ1bGwgPSBjb2RlLmZ1bGxzb3VyY2UKKyAgICBhc3NlcnQgJ3Rlc3RfY29k
ZV9mdWxsc291cmNlKCknIGluIHN0cihmdWxsKQorCitkZWYgdGVzdF9jb2RlX3NvdXJjZSgpOgor
ICAgIGNvZGUgPSBweS5jb2RlLkNvZGUoeCkKKyAgICBzcmMgPSBjb2RlLnNvdXJjZSgpCisgICAg
ZXhwZWN0ZWQgPSAiIiJkZWYgeCgpOgorICAgIHBhc3MiIiIKKyAgICBhc3NlcnQgc3RyKHNyYykg
PT0gZXhwZWN0ZWQKKworZGVmIHRlc3RfZnJhbWVfZ2V0c291cmNlbGluZW5vX215c2VsZigpOgor
ICAgIGRlZiBmdW5jKCk6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZiA9
IGZ1bmMoKQorICAgIGYgPSBweS5jb2RlLkZyYW1lKGYpCisgICAgc291cmNlLCBsaW5lbm8gPSBm
LmNvZGUuZnVsbHNvdXJjZSwgZi5saW5lbm8KKyAgICBhc3NlcnQgc291cmNlW2xpbmVub10uc3Rh
cnRzd2l0aCgiICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKSIpCisKK2RlZiB0ZXN0X2dl
dHN0YXRlbWVudF9lbXB0eV9mdWxsc291cmNlKCk6CisgICAgZGVmIGZ1bmMoKToKKyAgICAgICAg
cmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmID0gZnVuYygpCisgICAgZiA9IHB5LmNvZGUu
RnJhbWUoZikKKyAgICBwcm9wID0gZi5jb2RlLl9fY2xhc3NfXy5mdWxsc291cmNlCisgICAgdHJ5
OgorICAgICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2UgPSBOb25lCisgICAgICAgIGFz
c2VydCBmLnN0YXRlbWVudCA9PSBweS5jb2RlLlNvdXJjZSgiIikKKyAgICBmaW5hbGx5OgorICAg
ICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2UgPSBwcm9wCisKK2RlZiB0ZXN0X2NvZGVf
ZnJvbV9mdW5jKCk6CisgICAgY28gPSBweS5jb2RlLkNvZGUodGVzdF9mcmFtZV9nZXRzb3VyY2Vs
aW5lbm9fbXlzZWxmKQorICAgIGFzc2VydCBjby5maXJzdGxpbmVubworICAgIGFzc2VydCBjby5w
YXRoCisKKworCitkZWYgdGVzdF9idWlsdGluX3BhdGNoX3VucGF0Y2gobW9ua2V5cGF0Y2gpOgor
ICAgIGNweV9idWlsdGluID0gcHkuYnVpbHRpbi5idWlsdGlucworICAgIGNvbXAgPSBjcHlfYnVp
bHRpbi5jb21waWxlCisgICAgZGVmIG15Y29tcGlsZSgqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICByZXR1cm4gY29tcCgqYXJncywgKiprd2FyZ3MpCisgICAgY2xhc3MgU3ViKEFzc2VydGlvbkVy
cm9yKToKKyAgICAgICAgcGFzcworICAgIG1vbmtleXBhdGNoLnNldGF0dHIoY3B5X2J1aWx0aW4s
ICdBc3NlcnRpb25FcnJvcicsIFN1YikKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGNweV9idWls
dGluLCAnY29tcGlsZScsIG15Y29tcGlsZSkKKyAgICBweS5jb2RlLnBhdGNoX2J1aWx0aW5zKCkK
KyAgICBhc3NlcnQgY3B5X2J1aWx0aW4uQXNzZXJ0aW9uRXJyb3IgIT0gU3ViCisgICAgYXNzZXJ0
IGNweV9idWlsdGluLmNvbXBpbGUgIT0gbXljb21waWxlCisgICAgcHkuY29kZS51bnBhdGNoX2J1
aWx0aW5zKCkKKyAgICBhc3NlcnQgY3B5X2J1aWx0aW4uQXNzZXJ0aW9uRXJyb3IgaXMgU3ViCisg
ICAgYXNzZXJ0IGNweV9idWlsdGluLmNvbXBpbGUgPT0gbXljb21waWxlCisKKworZGVmIHRlc3Rf
dW5pY29kZV9oYW5kbGluZygpOgorICAgIHZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdceGM0
XHg4NVx4YzRceDg3XG4nLCAndXRmLTgnKS5lbmNvZGUoJ3V0ZjgnKQorICAgIGRlZiBmKCk6Cisg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbih2YWx1ZSkKKyAgICBleGNpbmZvID0gcHkudGVzdC5yYWlz
ZXMoRXhjZXB0aW9uLCBmKQorICAgIHMgPSBzdHIoZXhjaW5mbykKKyAgICBpZiBzeXMudmVyc2lv
bl9pbmZvWzBdIDwgMzoKKyAgICAgICAgdSA9IHVuaWNvZGUoZXhjaW5mbykKKworZGVmIHRlc3Rf
Y29kZV9nZXRhcmdzKCk6CisgICAgZGVmIGYxKHgpOgorICAgICAgICBwYXNzCisgICAgYzEgPSBw
eS5jb2RlLkNvZGUoZjEpCisgICAgYXNzZXJ0IGMxLmdldGFyZ3ModmFyPVRydWUpID09ICgneCcs
KQorCisgICAgZGVmIGYyKHgsICp5KToKKyAgICAgICAgcGFzcworICAgIGMyID0gcHkuY29kZS5D
b2RlKGYyKQorICAgIGFzc2VydCBjMi5nZXRhcmdzKHZhcj1UcnVlKSA9PSAoJ3gnLCAneScpCisK
KyAgICBkZWYgZjMoeCwgKip6KToKKyAgICAgICAgcGFzcworICAgIGMzID0gcHkuY29kZS5Db2Rl
KGYzKQorICAgIGFzc2VydCBjMy5nZXRhcmdzKHZhcj1UcnVlKSA9PSAoJ3gnLCAneicpCisKKyAg
ICBkZWYgZjQoeCwgKnksICoqeik6CisgICAgICAgIHBhc3MKKyAgICBjNCA9IHB5LmNvZGUuQ29k
ZShmNCkKKyAgICBhc3NlcnQgYzQuZ2V0YXJncyh2YXI9VHJ1ZSkgPT0gKCd4JywgJ3knLCAneicp
CisKKworZGVmIHRlc3RfZnJhbWVfZ2V0YXJncygpOgorICAgIGRlZiBmMSh4KToKKyAgICAgICAg
cmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmcjEgPSBweS5jb2RlLkZyYW1lKGYxKCdhJykp
CisgICAgYXNzZXJ0IGZyMS5nZXRhcmdzKHZhcj1UcnVlKSA9PSBbKCd4JywgJ2EnKV0KKworICAg
IGRlZiBmMih4LCAqeSk6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZnIy
ID0gcHkuY29kZS5GcmFtZShmMignYScsICdiJywgJ2MnKSkKKyAgICBhc3NlcnQgZnIyLmdldGFy
Z3ModmFyPVRydWUpID09IFsoJ3gnLCAnYScpLCAoJ3knLCAoJ2InLCAnYycpKV0KKworICAgIGRl
ZiBmMyh4LCAqKnopOgorICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQorICAgIGZyMyA9
IHB5LmNvZGUuRnJhbWUoZjMoJ2EnLCBiPSdjJykpCisgICAgYXNzZXJ0IGZyMy5nZXRhcmdzKHZh
cj1UcnVlKSA9PSBbKCd4JywgJ2EnKSwgKCd6JywgeydiJzogJ2MnfSldCisKKyAgICBkZWYgZjQo
eCwgKnksICoqeik6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZnI0ID0g
cHkuY29kZS5GcmFtZShmNCgnYScsICdiJywgYz0nZCcpKQorICAgIGFzc2VydCBmcjQuZ2V0YXJn
cyh2YXI9VHJ1ZSkgPT0gWygneCcsICdhJyksICgneScsICgnYicsKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCd6JywgeydjJzogJ2QnfSldCisKKworY2xhc3MgVGVz
dEV4Y2VwdGlvbkluZm86CisKKyAgICBkZWYgdGVzdF9iYWRfZ2V0c291cmNlKHNlbGYpOgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBpZiBGYWxzZTogcGFzcworICAgICAgICAgICAgZWxzZTog
YXNzZXJ0IEZhbHNlCisgICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAg
IGV4Y2kgPSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICBhc3NlcnQgZXhjaS5nZXRy
ZXByKCkKKworCitjbGFzcyBUZXN0VHJhY2ViYWNrRW50cnk6CisKKyAgICBkZWYgdGVzdF9nZXRz
b3VyY2Uoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIEZhbHNlOiBwYXNzCisg
ICAgICAgICAgICBlbHNlOiBhc3NlcnQgRmFsc2UKKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVy
cm9yOgorICAgICAgICAgICAgZXhjaSA9IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAg
IGVudHJ5ID0gZXhjaS50cmFjZWJhY2tbMF0KKyAgICAgICAgc291cmNlID0gZW50cnkuZ2V0c291
cmNlKCkKKyAgICAgICAgYXNzZXJ0IGxlbihzb3VyY2UpID09IDQKKyAgICAgICAgYXNzZXJ0ICdl
bHNlOiBhc3NlcnQgRmFsc2UnIGluIHNvdXJjZVszXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9leGNp
bmZvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMxNDhhYjhjZmJkMGIwZTAzNThjYWU4YzQyNTU4YWMxNDhjM2Vk
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8u
cHkKQEAgLTAsMCArMSw5NTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisKK2ltcG9ydCBw
eQoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cworZnJvbSB0ZXN0X3NvdXJjZSBpbXBvcnQgYXN0
b25seQorCitmcm9tIHB5Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRlZEV4Y2luZm8sIFJlcHJF
eGNlcHRpb25JbmZvCitxdWV1ZSA9IHB5LmJ1aWx0aW4uX3RyeWltcG9ydCgncXVldWUnLCAnUXVl
dWUnKQorCitmYWlsc29uanl0aG9uID0gcHkudGVzdC5tYXJrLnhmYWlsKCJzeXMucGxhdGZvcm0u
c3RhcnRzd2l0aCgnamF2YScpIikKKwordHJ5OgorICAgIGltcG9ydCBpbXBvcnRsaWIKK2V4Y2Vw
dCBJbXBvcnRFcnJvcjoKKyAgICBpbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMgPSBOb25lCitlbHNl
OgorICAgIGludmFsaWRhdGVfaW1wb3J0X2NhY2hlcyA9IGdldGF0dHIoaW1wb3J0bGliLCAiaW52
YWxpZGF0ZV9jYWNoZXMiLCBOb25lKQorCisKK3B5dGVzdF92ZXJzaW9uX2luZm8gPSB0dXBsZSht
YXAoaW50LCBweXRlc3QuX192ZXJzaW9uX18uc3BsaXQoIi4iKVs6M10pKQorCiticm9rZW5fb25f
bW9kZXJuX3B5dGVzdCA9IHB5dGVzdC5tYXJrLnhmYWlsKAorICAgIHB5dGVzdF92ZXJzaW9uX2lu
Zm9bMF0gIT0gMiwKKyAgICByZWFzb249InRoaXMgdGVzdCBoYXNuJ3QgYmVlbiBmaXhlZCBhZnRl
ciBtb3ZpbmcgcHkuY29kZSBpbnRvIHB5dGVzdCIsCisgICAgcnVuPUZhbHNlCisgICAgKQorCisK
K2NsYXNzIFRXTW9jazoKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYubGlu
ZXMgPSBbXQorCisgICAgZGVmIHNlcChzZWxmLCBzZXAsIGxpbmU9Tm9uZSk6CisgICAgICAgIHNl
bGYubGluZXMuYXBwZW5kKChzZXAsIGxpbmUpKQorCisgICAgZGVmIGxpbmUoc2VsZiwgbGluZSwg
Kiprdyk6CisgICAgICAgIHNlbGYubGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICBkZWYgbWFya3Vw
KHNlbGYsIHRleHQsICoqa3cpOgorICAgICAgICByZXR1cm4gdGV4dAorCisgICAgZnVsbHdpZHRo
ID0gODAKKworCitkZWYgdGVzdF9leGNpbmZvX3NpbXBsZSgpOgorICAgIHRyeToKKyAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcgorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBpbmZvID0g
cHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBhc3NlcnQgaW5mby50eXBlID09IFZhbHVlRXJy
b3IKKworCitkZWYgdGVzdF9leGNpbmZvX2dldHN0YXRlbWVudCgpOgorICAgIGRlZiBnKCk6Cisg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKworICAgIGRlZiBmKCk6CisgICAgICAgIGcoKQorICAg
IHRyeToKKyAgICAgICAgZigpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGV4Y2lu
Zm8gPSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIGxpbmVudW1iZXJzID0gWworICAgICAg
ICBweS5jb2RlLmdldHJhd2NvZGUoZikuY29fZmlyc3RsaW5lbm8tMSszLAorICAgICAgICBweS5j
b2RlLmdldHJhd2NvZGUoZikuY29fZmlyc3RsaW5lbm8tMSsxLAorICAgICAgICBweS5jb2RlLmdl
dHJhd2NvZGUoZykuY29fZmlyc3RsaW5lbm8tMSsxLAorICAgIF0KKyAgICBsID0gbGlzdChleGNp
bmZvLnRyYWNlYmFjaykKKyAgICBmb3VuZGxpbmVudW1iZXJzID0gW3gubGluZW5vIGZvciB4IGlu
IGxdCisgICAgYXNzZXJ0IGZvdW5kbGluZW51bWJlcnMgPT0gbGluZW51bWJlcnMKKyAgICAjZm9y
IHggaW4gaW5mbzoKKyAgICAjICAgIHByaW50ICIlczolZCAgJXMiICUoeC5wYXRoLnJlbHRvKHJv
b3QpLCB4LmxpbmVubywgeC5zdGF0ZW1lbnQpCisgICAgI3h4eAorCisjIHRlc3RjaGFpbiBmb3Ig
Z2V0ZW50cmllcyB0ZXN0IGJlbG93CitkZWYgZigpOgorICAgICMKKyAgICByYWlzZSBWYWx1ZUVy
cm9yCisgICAgIworZGVmIGcoKToKKyAgICAjCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
CisgICAgZigpCisgICAgIworZGVmIGgoKToKKyAgICAjCisgICAgZygpCisgICAgIworCitjbGFz
cyBUZXN0VHJhY2ViYWNrX2ZfZ19oOgorICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9k
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaCgpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVy
cm9yOgorICAgICAgICAgICAgc2VsZi5leGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkK
KworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19lbnRyaWVzKHNlbGYpOgorICAgICAgICB0YiA9IHNl
bGYuZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgZW50cmllcyA9IGxpc3QodGIpCisgICAgICAg
IGFzc2VydCBsZW4odGIpID09IDQgIyBtYXliZSBmcmFnaWxlIHRlc3QKKyAgICAgICAgYXNzZXJ0
IGxlbihlbnRyaWVzKSA9PSA0ICMgbWF5YmUgZnJhZ2lsZSB0ZXN0CisgICAgICAgIG5hbWVzID0g
WydmJywgJ2cnLCAnaCddCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIG5hbWVzLnJlbW92ZShlbnRyeS5mcmFtZS5jb2RlLm5h
bWUpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgIGFzc2VydCBub3QgbmFtZXMKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19lbnRy
eV9nZXRzb3VyY2Uoc2VsZik6CisgICAgICAgIHRiID0gc2VsZi5leGNpbmZvLnRyYWNlYmFjawor
ICAgICAgICBzID0gc3RyKHRiWy0xXS5nZXRzb3VyY2UoKSkKKyAgICAgICAgYXNzZXJ0IHMuc3Rh
cnRzd2l0aCgiZGVmIGYoKToiKQorICAgICAgICBhc3NlcnQgcy5lbmRzd2l0aCgicmFpc2UgVmFs
dWVFcnJvciIpCisKKyAgICBAYXN0b25seQorICAgIEBmYWlsc29uanl0aG9uCisgICAgZGVmIHRl
c3RfdHJhY2ViYWNrX2VudHJ5X2dldHNvdXJjZV9pbl9jb25zdHJ1Y3Qoc2VsZik6CisgICAgICAg
IHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKCIiIlwKKyAgICAgICAgICAgIGRlZiB4eXooKToKKyAg
ICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IK
KyAgICAgICAgICAgICAgICBleGNlcHQgc29tZW5vbmFtZToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgeHl6KCkKKyAgICAgICAgIiIiKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBleGVjIChzb3VyY2UuY29tcGlsZSgpKQorICAgICAgICBleGNlcHQgTmFtZUVycm9y
OgorICAgICAgICAgICAgdGIgPSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKS50cmFjZWJhY2sKKyAg
ICAgICAgICAgIHByaW50ICh0YlstMV0uZ2V0c291cmNlKCkpCisgICAgICAgICAgICBzID0gc3Ry
KHRiWy0xXS5nZXRzb3VyY2UoKSkKKyAgICAgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoImRl
ZiB4eXooKTpcbiAgICB0cnk6IikKKyAgICAgICAgICAgIGFzc2VydCBzLnN0cmlwKCkuZW5kc3dp
dGgoImV4Y2VwdCBzb21lbm9uYW1lOiIpCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfY3V0KHNl
bGYpOgorICAgICAgICBjbyA9IHB5LmNvZGUuQ29kZShmKQorICAgICAgICBwYXRoLCBmaXJzdGxp
bmVubyA9IGNvLnBhdGgsIGNvLmZpcnN0bGluZW5vCisgICAgICAgIHRyYWNlYmFjayA9IHNlbGYu
ZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgbmV3dHJhY2ViYWNrID0gdHJhY2ViYWNrLmN1dChw
YXRoPXBhdGgsIGZpcnN0bGluZW5vPWZpcnN0bGluZW5vKQorICAgICAgICBhc3NlcnQgbGVuKG5l
d3RyYWNlYmFjaykgPT0gMQorICAgICAgICBuZXd0cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBh
dGg9cGF0aCwgbGluZW5vPWZpcnN0bGluZW5vKzIpCisgICAgICAgIGFzc2VydCBsZW4obmV3dHJh
Y2ViYWNrKSA9PSAxCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfY3V0X2V4Y2x1ZGVwYXRoKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgZigpOiBy
YWlzZSBWYWx1ZUVycm9yIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsICJwLnB5aW1wb3J0KCkuZigpIikKKyAgICAgICAgYmFzZWRpciA9IHB5LnBhdGgubG9j
YWwocHkudGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpCisgICAgICAgIG5ld3RyYWNlYmFjayA9IGV4
Y2luZm8udHJhY2ViYWNrLmN1dChleGNsdWRlcGF0aD1iYXNlZGlyKQorICAgICAgICBmb3IgeCBp
biBuZXd0cmFjZWJhY2s6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHgsICdwYXRoJyk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBweS5wYXRoLmxvY2FsKHgucGF0aCkucmVsdG8oYmFzZWRp
cikKKyAgICAgICAgYXNzZXJ0IG5ld3RyYWNlYmFja1stMV0uZnJhbWUuY29kZS5wYXRoID09IHAK
KworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19maWx0ZXIoc2VsZik6CisgICAgICAgIHRyYWNlYmFj
ayA9IHNlbGYuZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNlYmFj
ay5maWx0ZXIoKQorICAgICAgICBhc3NlcnQgbGVuKG50cmFjZWJhY2spID09IGxlbih0cmFjZWJh
Y2spIC0gMQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX3JlY3Vyc2lvbl9pbmRleChzZWxmKToK
KyAgICAgICAgZGVmIGYobik6CisgICAgICAgICAgICBpZiBuIDwgMTA6CisgICAgICAgICAgICAg
ICAgbiArPSAxCisgICAgICAgICAgICBmKG4pCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJh
aXNlcyhSdW50aW1lRXJyb3IsIGYsIDgpCisgICAgICAgIHRyYWNlYmFjayA9IGV4Y2luZm8udHJh
Y2ViYWNrCisgICAgICAgIHJlY2luZGV4ID0gdHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4KCkKKyAg
ICAgICAgYXNzZXJ0IHJlY2luZGV4ID09IDMKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19vbmx5
X3NwZWNpZmljX3JlY3Vyc2lvbl9lcnJvcnMoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBk
ZWYgZihuKToKKyAgICAgICAgICAgIGlmIG4gPT0gMDoKKyAgICAgICAgICAgICAgICByYWlzZSBS
dW50aW1lRXJyb3IoImhlbGxvIikKKyAgICAgICAgICAgIGYobi0xKQorCisgICAgICAgIGV4Y2lu
Zm8gPSBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgZiwgMTAwKQorICAgICAgICBtb25rZXlw
YXRjaC5kZWxhdHRyKGV4Y2luZm8udHJhY2ViYWNrLl9fY2xhc3NfXywgInJlY3Vyc2lvbmluZGV4
IikKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisgICAgICAgIGFzc2VydCAiUnVu
dGltZUVycm9yOiBoZWxsbyIgaW4gc3RyKHJlcHIucmVwcmNyYXNoKQorCisgICAgZGVmIHRlc3Rf
dHJhY2ViYWNrX25vX3JlY3Vyc2lvbl9pbmRleChzZWxmKToKKyAgICAgICAgZGVmIGRvX3N0dWZm
KCk6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKKworICAgICAgICBkZWYgcmVyYWlz
ZV9tZSgpOgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgZXhjLCB2YWwsIHRi
ID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2UoZXhjLCB2
YWwsIHRiKQorCisgICAgICAgIGRlZiBmKG4pOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGRvX3N0dWZmKCkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBy
ZXJhaXNlX21lKCkKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFJ1bnRpbWVFcnJv
ciwgZiwgOCkKKyAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAg
cmVjaW5kZXggPSB0cmFjZWJhY2sucmVjdXJzaW9uaW5kZXgoKQorICAgICAgICBhc3NlcnQgcmVj
aW5kZXggaXMgTm9uZQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX21lc3N5X3JlY3Vyc2lvbihz
ZWxmKToKKyAgICAgICAgIyBYWFg6IHNpbXBsaWZpZWQgbG9jYWxseSB0ZXN0YWJsZSB2ZXJzaW9u
CisgICAgICAgIGRlY29yYXRvciA9IHB5LnRlc3QuaW1wb3J0b3Jza2lwKCdkZWNvcmF0b3InKS5k
ZWNvcmF0b3IKKworICAgICAgICBkZWYgbG9nKGYsICprLCAqKmt3KToKKyAgICAgICAgICAgIHBy
aW50KCclcyAlcycgJSAoaywga3cpKQorICAgICAgICAgICAgZigqaywgKiprdykKKyAgICAgICAg
bG9nID0gZGVjb3JhdG9yKGxvZykKKworICAgICAgICBkZWYgZmFpbCgpOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignJykKKworICAgICAgICBmYWlsID0gbG9nKGxvZyhmYWlsKSkKKwor
ICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgZmFpbCkKKyAgICAg
ICAgYXNzZXJ0IGV4Y2luZm8udHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4KCkgaXMgTm9uZQorCisg
ICAgZGVmIHRlc3RfdHJhY2ViYWNrX2dldGNyYXNoZW50cnkoc2VsZik6CisgICAgICAgIGRlZiBp
KCk6CisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IKKworICAgICAgICBkZWYgaCgpOgorICAgICAgICAgICAgaSgpCisKKyAg
ICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAg
ICAgICAgICAgaCgpCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGcoKQorCisgICAg
ICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmKQorICAgICAgICB0YiA9
IGV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIGVudHJ5ID0gdGIuZ2V0Y3Jhc2hlbnRyeSgpCisg
ICAgICAgIGNvID0gcHkuY29kZS5Db2RlKGgpCisgICAgICAgIGFzc2VydCBlbnRyeS5mcmFtZS5j
b2RlLnBhdGggPT0gY28ucGF0aAorICAgICAgICBhc3NlcnQgZW50cnkubGluZW5vID09IGNvLmZp
cnN0bGluZW5vICsgMQorICAgICAgICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5uYW1lID09ICdo
JworCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2dldGNyYXNoZW50cnlfZW1wdHkoc2VsZik6Cisg
ICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAgICBnKCkKKworICAgICAgICBl
eGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgZikKKyAgICAgICAgdGIgPSBleGNp
bmZvLnRyYWNlYmFjaworICAgICAgICBlbnRyeSA9IHRiLmdldGNyYXNoZW50cnkoKQorICAgICAg
ICBjbyA9IHB5LmNvZGUuQ29kZShnKQorICAgICAgICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5w
YXRoID09IGNvLnBhdGgKKyAgICAgICAgYXNzZXJ0IGVudHJ5LmxpbmVubyA9PSBjby5maXJzdGxp
bmVubyArIDIKKyAgICAgICAgYXNzZXJ0IGVudHJ5LmZyYW1lLmNvZGUubmFtZSA9PSAnZycKKwor
CitkZWYgaGVsbG8oeCk6CisgICAgeCArIDUKKworCitkZWYgdGVzdF90YmVudHJ5X3JlaW50ZXJw
cmV0KCk6CisgICAgdHJ5OgorICAgICAgICBoZWxsbygiaGVsbG8iKQorICAgIGV4Y2VwdCBUeXBl
RXJyb3I6CisgICAgICAgIGV4Y2luZm8gPSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIHRi
ZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAgICBtc2cgPSB0YmVudHJ5LnJlaW50ZXJw
cmV0KCkKKyAgICBhc3NlcnQgbXNnLnN0YXJ0c3dpdGgoIlR5cGVFcnJvcjogKCdoZWxsbycgKyA1
KSIpCisKKworZGVmIHRlc3RfZXhjaW5mb19leGNvbmx5KCk6CisgICAgZXhjaW5mbyA9IHB5LnRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisgICAgYXNzZXJ0IGV4Y2luZm8uZXhjb25seSgpLnN0
YXJ0c3dpdGgoJ1ZhbHVlRXJyb3InKQorICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yLAorICAgICAgICAicmFpc2UgVmFsdWVFcnJvcignaGVsbG9cXG53b3JsZCcpIikKKyAg
ICBtc2cgPSBleGNpbmZvLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkKKyAgICBhc3NlcnQgbXNnLnN0
YXJ0c3dpdGgoJ1ZhbHVlRXJyb3InKQorICAgIGFzc2VydCBtc2cuZW5kc3dpdGgoIndvcmxkIikK
KworCitkZWYgdGVzdF9leGNpbmZvX3JlcHIoKToKKyAgICBleGNpbmZvID0gcHkudGVzdC5yYWlz
ZXMoVmFsdWVFcnJvciwgaCkKKyAgICBzID0gcmVwcihleGNpbmZvKQorICAgIGFzc2VydCBzID09
ICI8RXhjZXB0aW9uSW5mbyBWYWx1ZUVycm9yIHRibGVuPTQ+IgorCisKK2RlZiB0ZXN0X2V4Y2lu
Zm9fc3RyKCk6CisgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisg
ICAgcyA9IHN0cihleGNpbmZvKQorICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoX19maWxlX19bOi05
XSkgIyBweWMgZmlsZSBhbmQgJHB5LmNsYXNzCisgICAgYXNzZXJ0IHMuZW5kc3dpdGgoIlZhbHVl
RXJyb3IiKQorICAgIGFzc2VydCBsZW4ocy5zcGxpdCgiOiIpKSA+PSAzICMgb24gd2luZG93cyBp
dCdzIDQKKworCitkZWYgdGVzdF9leGNpbmZvX2VycmlzaW5zdGFuY2UoKToKKyAgICBleGNpbmZv
ID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgaCkKKyAgICBhc3NlcnQgZXhjaW5mby5lcnJp
c2luc3RhbmNlKFZhbHVlRXJyb3IpCisKKworZGVmIHRlc3RfZXhjaW5mb19ub19zb3VyY2Vjb2Rl
KCk6CisgICAgdHJ5OgorICAgICAgICBleGVjICgicmFpc2UgVmFsdWVFcnJvcigpIikKKyAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgZXhjaW5mbyA9IHB5LmNvZGUuRXhjZXB0aW9uSW5m
bygpCisgICAgcyA9IHN0cihleGNpbmZvLnRyYWNlYmFja1stMV0pCisgICAgYXNzZXJ0IHMgPT0g
IiAgRmlsZSAnPHN0cmluZz4nOjEgaW4gPG1vZHVsZT5cbiAgPz8/XG4iCisKKworZGVmIHRlc3Rf
ZXhjaW5mb19ub19weXRob25fc291cmNlY29kZSh0bXBkaXIpOgorICAgICNYWFg6IHNpbXBsaWZp
ZWQgbG9jYWxseSB0ZXN0YWJsZSB2ZXJzaW9uCisgICAgdG1wZGlyLmpvaW4oJ3Rlc3QudHh0Jyku
d3JpdGUoInt7IGgoKX19OiIpCisKKyAgICBqaW5qYTIgPSBweS50ZXN0LmltcG9ydG9yc2tpcCgn
amluamEyJykKKyAgICBsb2FkZXIgPSBqaW5qYTIuRmlsZVN5c3RlbUxvYWRlcihzdHIodG1wZGly
KSkKKyAgICBlbnYgPSBqaW5qYTIuRW52aXJvbm1lbnQobG9hZGVyPWxvYWRlcikKKyAgICB0ZW1w
bGF0ZSA9IGVudi5nZXRfdGVtcGxhdGUoJ3Rlc3QudHh0JykKKyAgICBleGNpbmZvID0gcHkudGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxh
dGUucmVuZGVyLCBoPWgpCisgICAgZm9yIGl0ZW0gaW4gZXhjaW5mby50cmFjZWJhY2s6CisgICAg
ICAgIHByaW50KGl0ZW0pICMgWFhYOiBmb3Igc29tZSByZWFzb24gamluamEuVGVtcGxhdGUucmVu
ZGVyIGlzIHByaW50ZWQgaW4gZnVsbAorICAgICAgICBpdGVtLnNvdXJjZSAjIHNob3VsZG50IGZh
aWwKKyAgICAgICAgaWYgaXRlbS5wYXRoLmJhc2VuYW1lID09ICd0ZXN0LnR4dCc6CisgICAgICAg
ICAgICBhc3NlcnQgc3RyKGl0ZW0uc291cmNlKSA9PSAne3sgaCgpfX06JworCisKK2RlZiB0ZXN0
X2VudHJ5c291cmNlX1F1ZXVlX2V4YW1wbGUoKToKKyAgICB0cnk6CisgICAgICAgIHF1ZXVlLlF1
ZXVlKCkuZ2V0KHRpbWVvdXQ9MC4wMDEpCisgICAgZXhjZXB0IHF1ZXVlLkVtcHR5OgorICAgICAg
ICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBlbnRyeSA9IGV4Y2luZm8u
dHJhY2ViYWNrWy0xXQorICAgIHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZSgpCisgICAgYXNzZXJ0
IHNvdXJjZSBpcyBub3QgTm9uZQorICAgIHMgPSBzdHIoc291cmNlKS5zdHJpcCgpCisgICAgYXNz
ZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIGdldCIpCisKKworZGVmIHRlc3RfY29kZXBhdGhfUXVldWVf
ZXhhbXBsZSgpOgorICAgIHRyeToKKyAgICAgICAgcXVldWUuUXVldWUoKS5nZXQodGltZW91dD0w
LjAwMSkKKyAgICBleGNlcHQgcXVldWUuRW1wdHk6CisgICAgICAgIGV4Y2luZm8gPSBweS5jb2Rl
LkV4Y2VwdGlvbkluZm8oKQorICAgIGVudHJ5ID0gZXhjaW5mby50cmFjZWJhY2tbLTFdCisgICAg
cGF0aCA9IGVudHJ5LnBhdGgKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShwYXRoLCBweS5wYXRoLmxv
Y2FsKQorICAgIGFzc2VydCBwYXRoLmJhc2VuYW1lLmxvd2VyKCkgPT0gInF1ZXVlLnB5IgorICAg
IGFzc2VydCBwYXRoLmNoZWNrKCkKKworCitjbGFzcyBUZXN0Rm9ybWF0dGVkRXhjaW5mbzoKKyAg
ICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX2ltcG9ydGFzbW9kKHNlbGYsIHJlcXVlc3QpOgorICAgICAg
ICBkZWYgaW1wb3J0YXNtb2Qoc291cmNlKToKKyAgICAgICAgICAgIHNvdXJjZSA9IHB5LmNvZGUu
U291cmNlKHNvdXJjZSkKKyAgICAgICAgICAgIHRtcGRpciA9IHJlcXVlc3QuZ2V0ZnVuY2FyZ3Zh
bHVlKCJ0bXBkaXIiKQorICAgICAgICAgICAgbW9kcGF0aCA9IHRtcGRpci5qb2luKCJtb2QucHki
KQorICAgICAgICAgICAgdG1wZGlyLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgICAgICAgICAg
bW9kcGF0aC53cml0ZShzb3VyY2UpCisgICAgICAgICAgICBpZiBpbnZhbGlkYXRlX2ltcG9ydF9j
YWNoZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaW52YWxpZGF0ZV9pbXBvcnRfY2Fj
aGVzKCkKKyAgICAgICAgICAgIHJldHVybiBtb2RwYXRoLnB5aW1wb3J0KCkKKyAgICAgICAgcmV0
dXJuIGltcG9ydGFzbW9kCisKKyAgICBkZWYgZXhjaW5mb19mcm9tX2V4ZWMoc2VsZiwgc291cmNl
KToKKyAgICAgICAgc291cmNlID0gcHkuY29kZS5Tb3VyY2Uoc291cmNlKS5zdHJpcCgpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGV4ZWMgKHNvdXJjZS5jb21waWxlKCkpCisgICAgICAgIGV4
Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2Vw
dDoKKyAgICAgICAgICAgIHJldHVybiBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICBh
c3NlcnQgMCwgImRpZCBub3QgcmFpc2UiCisKKyAgICBkZWYgdGVzdF9yZXByX3NvdXJjZShzZWxm
KToKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgc291cmNlID0gcHku
Y29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikuc3RyaXAoKQorICAgICAgICBwci5mbG93X21hcmtlciA9ICJ8Igor
ICAgICAgICBsaW5lcyA9IHByLmdldF9zb3VyY2Uoc291cmNlLCAwKQorICAgICAgICBhc3NlcnQg
bGVuKGxpbmVzKSA9PSAyCisgICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAifCAgIGRlZiBmKHgp
OiIKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdID09ICIgICAgICAgIHBhc3MiCisKKyAgICBAYnJv
a2VuX29uX21vZGVybl9weXRlc3QKKyAgICBkZWYgdGVzdF9yZXByX3NvdXJjZV9leGNpbmZvKHNl
bGYpOgorICAgICAgICAiIiIgY2hlY2sgaWYgaW5kZW50YXRpb24gaXMgcmlnaHQgIiIiCisgICAg
ICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAgIGV4Y2luZm8gPSBzZWxmLmV4Y2lu
Zm9fZnJvbV9leGVjKCIiIgorICAgICAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICAgICAgZigpCisgICAgICAgICIiIikKKyAgICAg
ICAgcHIgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgc291cmNlID0gcHIuX2dldGVudHJ5
c291cmNlKGV4Y2luZm8udHJhY2ViYWNrWy0xXSkKKyAgICAgICAgbGluZXMgPSBwci5nZXRfc291
cmNlKHNvdXJjZSwgMSwgZXhjaW5mbykKKyAgICAgICAgYXNzZXJ0IGxpbmVzID09IFsKKyAgICAg
ICAgICAgICcgICAgZGVmIGYoKTonLAorICAgICAgICAgICAgJz4gICAgICAgYXNzZXJ0IDAnLAor
ICAgICAgICAgICAgJ0UgICAgICAgYXNzZXJ0IDAnCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0
X3JlcHJfc291cmNlX25vdF9leGlzdGluZyhzZWxmKToKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRF
eGNpbmZvKCkKKyAgICAgICAgY28gPSBjb21waWxlKCJyYWlzZSBWYWx1ZUVycm9yKCkiLCAiIiwg
ImV4ZWMiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBleGVjIChjbykKKyAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAgICAgICBh
c3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBdID09ICI+ICAg
Pz8/IgorCisgICAgZGVmIHRlc3RfcmVwcl9tYW55X2xpbmVfc291cmNlX25vdF9leGlzdGluZyhz
ZWxmKToKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgY28gPSBjb21w
aWxlKCIiIgorYSA9IDEKK3JhaXNlIFZhbHVlRXJyb3IoKQorIiIiLCAiIiwgImV4ZWMiKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBleGVjIChjbykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAg
ICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAgICAgICBhc3NlcnQgcmVwci5y
ZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBdID09ICI+ICAgPz8/IgorCisgICAg
ZGVmIHRlc3RfcmVwcl9zb3VyY2VfZmFpbGluZ19mdWxsc291cmNlKHNlbGYpOgorICAgICAgICBw
ciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorCisgICAgICAgIGNsYXNzIEZha2VDb2RlKG9iamVjdCk6
CisgICAgICAgICAgICBjbGFzcyByYXc6CisgICAgICAgICAgICAgICAgY29fZmlsZW5hbWUgPSAn
PycKKyAgICAgICAgICAgIHBhdGggPSAnPycKKyAgICAgICAgICAgIGZpcnN0bGluZW5vID0gNQor
CisgICAgICAgICAgICBkZWYgZnVsbHNvdXJjZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQorICAgICAgICAgICAgZnVsbHNvdXJjZSA9IHByb3BlcnR5KGZ1bGxzb3VyY2UpCisK
KyAgICAgICAgY2xhc3MgRmFrZUZyYW1lKG9iamVjdCk6CisgICAgICAgICAgICBjb2RlID0gRmFr
ZUNvZGUoKQorICAgICAgICAgICAgZl9sb2NhbHMgPSB7fQorICAgICAgICAgICAgZl9nbG9iYWxz
ID0ge30KKworICAgICAgICBjbGFzcyBGYWtlVHJhY2ViYWNrRW50cnkocHkuY29kZS5UcmFjZWJh
Y2suRW50cnkpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRiKToKKyAgICAgICAg
ICAgICAgICBzZWxmLmxpbmVubyA9IDUrMworCisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAg
ICAgICAgIGRlZiBmcmFtZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFrZUZyYW1l
KCkKKworICAgICAgICBjbGFzcyBUcmFjZWJhY2socHkuY29kZS5UcmFjZWJhY2spOgorICAgICAg
ICAgICAgRW50cnkgPSBGYWtlVHJhY2ViYWNrRW50cnkKKworICAgICAgICBjbGFzcyBGYWtlRXhj
aW5mbyhweS5jb2RlLkV4Y2VwdGlvbkluZm8pOgorICAgICAgICAgICAgdHlwZW5hbWUgPSAiRm9v
IgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MK
KworICAgICAgICAgICAgZGVmIGV4Y29ubHkoc2VsZiwgdHJ5c2hvcnQpOgorICAgICAgICAgICAg
ICAgIHJldHVybiAiRVhDIgorICAgICAgICAgICAgZGVmIGVycmlzaW5zdGFuY2Uoc2VsZiwgY2xz
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBleGNpbmZvID0gRmFr
ZUV4Y2luZm8oKQorICAgICAgICBjbGFzcyBGYWtlUmF3VEIob2JqZWN0KToKKyAgICAgICAgICAg
IHRiX25leHQgPSBOb25lCisgICAgICAgIHRiID0gRmFrZVJhd1RCKCkKKyAgICAgICAgZXhjaW5m
by50cmFjZWJhY2sgPSBUcmFjZWJhY2sodGIpCisKKyAgICAgICAgZmFpbCA9IElPRXJyb3IoKQor
ICAgICAgICByZXByID0gcHIucmVwcl9leGNpbmZvKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCBy
ZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXNbMF0ubGluZXNbMF0gPT0gIj4gICA/Pz8iCisK
KyAgICAgICAgZmFpbCA9IHB5LmVycm9yLkVOT0VOVAorICAgICAgICByZXByID0gcHIucmVwcl9l
eGNpbmZvKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVu
dHJpZXNbMF0ubGluZXNbMF0gPT0gIj4gICA/Pz8iCisKKworICAgIGRlZiB0ZXN0X3JlcHJfbG9j
YWwoc2VsZik6CisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9VHJ1ZSkK
KyAgICAgICAgbG9jID0geyd5JzogNSwgJ3onOiA3LCAneCc6IDMsICdAeCc6IDIsICdfX2J1aWx0
aW5zX18nOiB7fX0KKyAgICAgICAgcmVwcmxvY2FscyA9IHAucmVwcl9sb2NhbHMobG9jKQorICAg
ICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lcworICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5s
aW5lc1swXSA9PSAnX19idWlsdGluc19fID0gPGJ1aWx0aW5zPicKKyAgICAgICAgYXNzZXJ0IHJl
cHJsb2NhbHMubGluZXNbMV0gPT0gJ3ggICAgICAgICAgPSAzJworICAgICAgICBhc3NlcnQgcmVw
cmxvY2Fscy5saW5lc1syXSA9PSAneSAgICAgICAgICA9IDUnCisgICAgICAgIGFzc2VydCByZXBy
bG9jYWxzLmxpbmVzWzNdID09ICd6ICAgICAgICAgID0gNycKKworICAgIGRlZiB0ZXN0X3JlcHJf
dHJhY2ViYWNrZW50cnlfbGluZXMoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBp
bXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMSgpOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKQorICAgICAgICAiIiIpCisgICAgICAg
IGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZnVuYzEpCisgICAgICAg
IGV4Y2luZm8udHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAg
cCA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNr
X2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0xXSkKKworICAgICAgICAjIHRlc3QgYXMgaW50ZXJt
aXR0ZW50IGVudHJ5CisgICAgICAgIGxpbmVzID0gcmVwcnRiLmxpbmVzCisgICAgICAgIGFzc2Vy
dCBsaW5lc1swXSA9PSAnICAgIGRlZiBmdW5jMSgpOicKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFd
ID09ICc+ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKScKKworICAgICAg
ICAjIHRlc3QgYXMgbGFzdCBlbnRyeQorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzaG93
bG9jYWxzPVRydWUpCisgICAgICAgIHJlcHJfZW50cnkgPSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5
KGV4Y2luZm8udHJhY2ViYWNrWy0xXSwgZXhjaW5mbykKKyAgICAgICAgbGluZXMgPSByZXByX2Vu
dHJ5LmxpbmVzCisgICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAnICAgIGRlZiBmdW5jMSgpOicK
KyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdID09ICc+ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhl
bGxvXFxud29ybGQiKScKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzJdID09ICdFICAgICAgIFZhbHVl
RXJyb3I6IGhlbGxvJworICAgICAgICBhc3NlcnQgbGluZXNbM10gPT0gJ0UgICAgICAgd29ybGQn
CisgICAgICAgIGFzc2VydCBub3QgbGluZXNbNDpdCisKKyAgICAgICAgbG9jID0gcmVwcl9lbnRy
eS5yZXBybG9jYWxzIGlzIG5vdCBOb25lCisgICAgICAgIGxvYyA9IHJlcHJfZW50cnkucmVwcmZp
bGVsb2MKKyAgICAgICAgYXNzZXJ0IGxvYy5wYXRoID09IG1vZC5fX2ZpbGVfXworICAgICAgICBh
c3NlcnQgbG9jLmxpbmVubyA9PSAzCisgICAgICAgICNhc3NlcnQgbG9jLm1lc3NhZ2UgPT0gIlZh
bHVlRXJyb3I6IGhlbGxvIgorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tlbnRyeV9saW5l
cyhzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAg
ICAgICAgICAgZGVmIGZ1bmMxKG0sIHgsIHksIHopOgorICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImhlbGxvXFxud29ybGQiKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8g
PSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZnVuYzEsICJtIio5MCwgNSwgMTMsICJ6
IioxMjApCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmls
dGVyKCkKKyAgICAgICAgZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAgICAgICAgcCA9
IEZvcm1hdHRlZEV4Y2luZm8oZnVuY2FyZ3M9VHJ1ZSkKKyAgICAgICAgcmVwcmZ1bmNhcmdzID0g
cC5yZXByX2FyZ3MoZW50cnkpCisgICAgICAgIGFzc2VydCByZXByZnVuY2FyZ3MuYXJnc1swXSA9
PSAoJ20nLCByZXByKCJtIio5MCkpCisgICAgICAgIGFzc2VydCByZXByZnVuY2FyZ3MuYXJnc1sx
XSA9PSAoJ3gnLCAnNScpCisgICAgICAgIGFzc2VydCByZXByZnVuY2FyZ3MuYXJnc1syXSA9PSAo
J3knLCAnMTMnKQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNhcmdzLmFyZ3NbM10gPT0gKCd6Jywg
cmVwcigieiIgKiAxMjApKQorCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKGZ1bmNhcmdz
PVRydWUpCisgICAgICAgIHJlcHJfZW50cnkgPSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGVudHJ5
KQorICAgICAgICBhc3NlcnQgcmVwcl9lbnRyeS5yZXByZnVuY2FyZ3MuYXJncyA9PSByZXByZnVu
Y2FyZ3MuYXJncworICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHJlcHJfZW50cnkudG90
ZXJtaW5hbCh0dykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICJtID0gIiArIHJlcHIo
J20nICogOTApCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxXSA9PSAieCA9IDUsIHkgPSAxMyIK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICJ6ID0gIiArIHJlcHIoJ3onICogMTIwKQor
CisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tlbnRyeV9saW5lc192YXJfa3dfYXJncyhzZWxm
LCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAg
ICAgZGVmIGZ1bmMxKHgsICp5LCAqKnopOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImhlbGxvXFxud29ybGQiKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZnVuYzEsICdhJywgJ2InLCBjPSdkJykKKyAgICAg
ICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAg
ICBlbnRyeSA9IGV4Y2luZm8udHJhY2ViYWNrWy0xXQorICAgICAgICBwID0gRm9ybWF0dGVkRXhj
aW5mbyhmdW5jYXJncz1UcnVlKQorICAgICAgICByZXByZnVuY2FyZ3MgPSBwLnJlcHJfYXJncyhl
bnRyeSkKKyAgICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzBdID09ICgneCcsIHJlcHIo
J2EnKSkKKyAgICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzFdID09ICgneScsIHJlcHIo
KCdiJywpKSkKKyAgICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzJdID09ICgneicsIHJl
cHIoeydjJzogJ2QnfSkpCisKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oZnVuY2FyZ3M9
VHJ1ZSkKKyAgICAgICAgcmVwcl9lbnRyeSA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZW50cnkp
CisgICAgICAgIGFzc2VydCByZXByX2VudHJ5LnJlcHJmdW5jYXJncy5hcmdzID09IHJlcHJmdW5j
YXJncy5hcmdzCisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgcmVwcl9lbnRyeS50b3Rl
cm1pbmFsKHR3KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gInggPSAnYScsIHkgPSAo
J2InLCksIHogPSB7J2MnOiAnZCd9IgorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tlbnRy
eV9zaG9ydChzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIi
IgorICAgICAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiaGVsbG8iKQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAg
ZnVuYzEoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxl
PSJzaG9ydCIpCisgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5m
by50cmFjZWJhY2tbLTJdKQorICAgICAgICBsaW5lcyA9IHJlcHJ0Yi5saW5lcworICAgICAgICBi
YXNlbmFtZSA9IHB5LnBhdGgubG9jYWwobW9kLl9fZmlsZV9fKS5iYXNlbmFtZQorICAgICAgICBh
c3NlcnQgbGluZXNbMF0gPT0gJyAgICBmdW5jMSgpJworICAgICAgICBhc3NlcnQgYmFzZW5hbWUg
aW4gc3RyKHJlcHJ0Yi5yZXByZmlsZWxvYy5wYXRoKQorICAgICAgICBhc3NlcnQgcmVwcnRiLnJl
cHJmaWxlbG9jLmxpbmVubyA9PSA1CisKKyAgICAgICAgIyB0ZXN0IGxhc3QgZW50cnkKKyAgICAg
ICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAgICAgICAgcmVwcnRiID0g
cC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMV0sIGV4Y2luZm8pCisg
ICAgICAgIGxpbmVzID0gcmVwcnRiLmxpbmVzCisgICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAn
ICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIiknCisgICAgICAgIGFzc2VydCBsaW5lc1sxXSA9
PSAnRSAgIFZhbHVlRXJyb3I6IGhlbGxvJworICAgICAgICBhc3NlcnQgYmFzZW5hbWUgaW4gc3Ry
KHJlcHJ0Yi5yZXByZmlsZWxvYy5wYXRoKQorICAgICAgICBhc3NlcnQgcmVwcnRiLnJlcHJmaWxl
bG9jLmxpbmVubyA9PSAzCisKKyAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja2VudHJ5X25vKHNl
bGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAg
ICAgICBkZWYgZnVuYzEoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxs
byIpCisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICBmdW5jMSgpCisg
ICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
IG1vZC5lbnRyeSkKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9Im5vIikKKyAg
ICAgICAgcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMl0pCisKKyAg
ICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9Im5vIikKKyAgICAgICAgcmVwcmVudHJ5
ID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMV0sIGV4Y2luZm8p
CisgICAgICAgIGxpbmVzID0gcmVwcmVudHJ5LmxpbmVzCisgICAgICAgIGFzc2VydCBsaW5lc1sw
XSA9PSAnRSAgIFZhbHVlRXJyb3I6IGhlbGxvJworICAgICAgICBhc3NlcnQgbm90IGxpbmVzWzE6
XQorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfdGJmaWx0ZXIoc2VsZiwgaW1wb3J0YXNt
b2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKHgp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBl
bnRyeSgpOgorICAgICAgICAgICAgICAgIGYoMCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNp
bmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5KQorICAgICAgICBwID0g
Rm9ybWF0dGVkRXhjaW5mbyh0YmZpbHRlcj1UcnVlKQorICAgICAgICByZXBydGIgPSBwLnJlcHJf
dHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCBsZW4ocmVwcnRiLnJlcHJlbnRyaWVz
KSA9PSAyCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHRiZmlsdGVyPUZhbHNlKQorICAg
ICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCBs
ZW4ocmVwcnRiLnJlcHJlbnRyaWVzKSA9PSAzCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfc2hv
cnRfbm9fc291cmNlKHNlbGYsIGltcG9ydGFzbW9kLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1v
ZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaGVsbG8iKQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6
CisgICAgICAgICAgICAgICAgZnVuYzEoKQorICAgICAgICAiIiIpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIG1vZC5lbnRyeSgpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAg
ICAgICAgZXhjaW5mbyA9IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIGZyb20gcHku
X2NvZGUuY29kZSBpbXBvcnQgQ29kZQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKENvZGUs
ICdwYXRoJywgJ2JvZ3VzJykKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2tbMF0uZnJhbWUuY29k
ZS5wYXRoID0gImJvZ3VzIgorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hv
cnQiKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJh
Y2ViYWNrWy0yXSkKKyAgICAgICAgbGluZXMgPSByZXBydGIubGluZXMKKyAgICAgICAgbGFzdF9w
ID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAgICAgICBsYXN0X3JlcHJ0YiA9
IGxhc3RfcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMV0sIGV4Y2lu
Zm8pCisgICAgICAgIGxhc3RfbGluZXMgPSBsYXN0X3JlcHJ0Yi5saW5lcworICAgICAgICBtb25r
ZXlwYXRjaC51bmRvKCkKKyAgICAgICAgYmFzZW5hbWUgPSBweS5wYXRoLmxvY2FsKG1vZC5fX2Zp
bGVfXykuYmFzZW5hbWUKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcgICAgZnVuYzEoKScK
KworICAgICAgICBhc3NlcnQgbGFzdF9saW5lc1swXSA9PSAnICAgIHJhaXNlIFZhbHVlRXJyb3Io
ImhlbGxvIiknCisgICAgICAgIGFzc2VydCBsYXN0X2xpbmVzWzFdID09ICdFICAgVmFsdWVFcnJv
cjogaGVsbG8nCisKKyAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja19hbmRfZXhjaW5mbyhzZWxm
LCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAg
ICAgZGVmIGYoeCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4KQorICAgICAg
ICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgZigwKQorICAgICAgICAiIiIpCisg
ICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisK
KyAgICAgICAgZm9yIHN0eWxlIGluICgibG9uZyIsICJzaG9ydCIpOgorICAgICAgICAgICAgcCA9
IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9c3R5bGUpCisgICAgICAgICAgICByZXBydGIgPSBwLnJl
cHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgICAgICBhc3NlcnQgbGVuKHJlcHJ0Yi5yZXBy
ZW50cmllcykgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IHJlcHJ0Yi5zdHlsZSA9PSBzdHlsZQor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCByZXBydGIuZXh0cmFsaW5lCisgICAgICAgICAgICByZXBy
ID0gcC5yZXByX2V4Y2luZm8oZXhjaW5mbykKKyAgICAgICAgICAgIGFzc2VydCByZXByLnJlcHJ0
cmFjZWJhY2sKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocmVwci5yZXBydHJhY2ViYWNrLnJlcHJl
bnRyaWVzKSA9PSBsZW4ocmVwcnRiLnJlcHJlbnRyaWVzKQorICAgICAgICAgICAgYXNzZXJ0IHJl
cHIucmVwcmNyYXNoLnBhdGguZW5kc3dpdGgoIm1vZC5weSIpCisgICAgICAgICAgICBhc3NlcnQg
cmVwci5yZXByY3Jhc2gubWVzc2FnZSA9PSAiVmFsdWVFcnJvcjogMCIKKworICAgIGRlZiB0ZXN0
X3JlcHJfdHJhY2ViYWNrX3dpdGhfaW52YWxpZF9jd2Qoc2VsZiwgaW1wb3J0YXNtb2QsIG1vbmtl
eXBhdGNoKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYg
Zih4KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBk
ZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICBmKDApCisgICAgICAgICIiIikKKyAgICAgICAg
ZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5lbnRyeSkKKworICAgICAg
ICBwID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAgIGRlZiByYWlzZW9zKCk6CisgICAgICAg
ICAgICByYWlzZSBPU0Vycm9yKDIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoJ29zLmdl
dGN3ZCcsIHJhaXNlb3MpCisgICAgICAgIGFzc2VydCBwLl9tYWtlcGF0aChfX2ZpbGVfXykgPT0g
X19maWxlX18KKyAgICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorCisg
ICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3RfcmVwcl9leGNpbmZvX2Fk
ZG91dGVycihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIi
IgorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIG1vZC5lbnRyeSkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisg
ICAgICAgIHJlcHIuYWRkc2VjdGlvbigidGl0bGUiLCAiY29udGVudCIpCisgICAgICAgIHR3bW9j
ayA9IFRXTW9jaygpCisgICAgICAgIHJlcHIudG90ZXJtaW5hbCh0d21vY2spCisgICAgICAgIGFz
c2VydCB0d21vY2subGluZXNbLTFdID09ICJjb250ZW50IgorICAgICAgICBhc3NlcnQgdHdtb2Nr
LmxpbmVzWy0yXSA9PSAoIi0iLCAidGl0bGUiKQorCisgICAgZGVmIHRlc3RfcmVwcl9leGNpbmZv
X3JlcHJjcmFzaChzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9k
KCIiIgorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IsIG1vZC5lbnRyeSkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigp
CisgICAgICAgIGFzc2VydCByZXByLnJlcHJjcmFzaC5wYXRoLmVuZHN3aXRoKCJtb2QucHkiKQor
ICAgICAgICBhc3NlcnQgcmVwci5yZXByY3Jhc2gubGluZW5vID09IDMKKyAgICAgICAgYXNzZXJ0
IHJlcHIucmVwcmNyYXNoLm1lc3NhZ2UgPT0gIlZhbHVlRXJyb3IiCisgICAgICAgIGFzc2VydCBz
dHIocmVwci5yZXByY3Jhc2gpLmVuZHN3aXRoKCJtb2QucHk6MzogVmFsdWVFcnJvciIpCisKKyAg
ICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja19yZWN1cnNpb24oc2VsZiwgaW1wb3J0YXNtb2QpOgor
ICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiByZWMyKHgpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZWMxKHgrMSkKKyAgICAgICAgICAgIGRlZiByZWMxKHgp
OgorICAgICAgICAgICAgICAgIHJldHVybiByZWMyKHgtMSkKKyAgICAgICAgICAgIGRlZiBlbnRy
eSgpOgorICAgICAgICAgICAgICAgIHJlYzEoNDIpCisgICAgICAgICIiIikKKyAgICAgICAgZXhj
aW5mbyA9IHB5LnRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbW9kLmVudHJ5KQorCisgICAgICAg
IGZvciBzdHlsZSBpbiAoInNob3J0IiwgImxvbmciLCAibm8iKToKKyAgICAgICAgICAgIHAgPSBG
b3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJzaG9ydCIpCisgICAgICAgICAgICByZXBydGIgPSBwLnJl
cHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgICAgICBhc3NlcnQgcmVwcnRiLmV4dHJhbGlu
ZSA9PSAiISEhIFJlY3Vyc2lvbiBkZXRlY3RlZCAoc2FtZSBsb2NhbHMgJiBwb3NpdGlvbikiCisg
ICAgICAgICAgICBhc3NlcnQgc3RyKHJlcHJ0YikKKworICAgIEBicm9rZW5fb25fbW9kZXJuX3B5
dGVzdAorICAgIGRlZiB0ZXN0X3RiX2VudHJ5X0Fzc2VydGlvbkVycm9yKHNlbGYsIGltcG9ydGFz
bW9kKToKKyAgICAgICAgIyBwcm9iYWJseSB0aGlzIHRlc3QgaXMgYSBiaXQgcmVkdW5kYW50Cisg
ICAgICAgICMgYXMgcHkvbWFnaWMvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weQorICAgICAgICAj
IGFscmVhZHkgdGVzdHMgY29ycmVjdG5lc3Mgb2YKKyAgICAgICAgIyBhc3NlcnRpb24tcmVpbnRl
cnByZXRhdGlvbiAgbG9naWMKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAg
ICAgICBkZWYgc29tZWZ1bmMoKToKKyAgICAgICAgICAgICAgICB4ID0gMQorICAgICAgICAgICAg
ICAgIGFzc2VydCB4ID09IDIKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHkudGVz
dC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1vZC5zb21lZnVuYykKKworICAgICAgICBwID0gRm9y
bWF0dGVkRXhjaW5mbygpCisgICAgICAgIHJlcHJlbnRyeSA9IHAucmVwcl90cmFjZWJhY2tfZW50
cnkoZXhjaW5mby50cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsaW5lcyA9IHJlcHJl
bnRyeS5saW5lcworICAgICAgICBhc3NlcnQgbGluZXNbLTFdID09ICJFICAgICAgIGFzc2VydCAx
ID09IDIiCisKKyAgICBkZWYgdGVzdF9yZXByZXhjaW5mb19nZXRyZXByKHNlbGYsIGltcG9ydGFz
bW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZih4
KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYg
ZW50cnkoKToKKyAgICAgICAgICAgICAgICBmKDApCisgICAgICAgICIiIikKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgbW9kLmVudHJ5KCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Cisg
ICAgICAgICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKworICAgICAgICBm
b3Igc3R5bGUgaW4gKCJzaG9ydCIsICJsb25nIiwgIm5vIik6CisgICAgICAgICAgICBmb3Igc2hv
d2xvY2FscyBpbiAoVHJ1ZSwgRmFsc2UpOgorICAgICAgICAgICAgICAgIHJlcHIgPSBleGNpbmZv
LmdldHJlcHIoc3R5bGU9c3R5bGUsIHNob3dsb2NhbHM9c2hvd2xvY2FscykKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXByLCBSZXByRXhjZXB0aW9uSW5mbykKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnN0eWxlID09IHN0eWxlCisKKyAgICBk
ZWYgdGVzdF9yZXByZXhjaW5mb191bmljb2RlKHNlbGYpOgorICAgICAgICBmcm9tIHB5Ll9jb2Rl
LmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgorICAgICAgICBjbGFzcyBNeVJlcHIoVGVybWluYWxS
ZXByKToKKyAgICAgICAgICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAgICAg
ICAgICB0dy5saW5lKHB5LmJ1aWx0aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKSkKKyAgICAgICAg
eCA9IHB5LmJ1aWx0aW4uX3RvdGV4dChNeVJlcHIoKSkKKyAgICAgICAgYXNzZXJ0IHggPT0gcHku
YnVpbHRpbi5fdG90ZXh0KCLRjyIsICJ1dGYtOCIpCisKKyAgICBAYnJva2VuX29uX21vZGVybl9w
eXRlc3QKKyAgICBkZWYgdGVzdF90b3Rlcm1pbmFsX2xvbmcoc2VsZiwgaW1wb3J0YXNtb2QpOgor
ICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBnKHgpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBmKCk6Cisg
ICAgICAgICAgICAgICAgZygzKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sg
PSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRy
ZXByKCkKKyAgICAgICAgdHcgPSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHcp
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5lcy5wb3Ao
MCkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICIgICAgZGVmIGYoKToiCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1sxXSA9PSAiPiAgICAgICBnKDMpIgorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbMl0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzNdLmVuZHN3aXRoKCJtb2Qu
cHk6NTogIikKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09ICgiXyAiLCBOb25lKQorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzZd
ID09ICIgICAgZGVmIGcoeCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIj4gICAg
ICAgcmFpc2UgVmFsdWVFcnJvcih4KSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzhdID09ICJF
ICAgICAgIFZhbHVlRXJyb3I6IDMiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s5XSA9PSAiIgor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbMTBdLmVuZHN3aXRoKCJtb2QucHk6MzogVmFsdWVFcnJv
ciIpCisKKyAgICBAYnJva2VuX29uX21vZGVybl9weXRlc3QKKyAgICBkZWYgdGVzdF90b3Rlcm1p
bmFsX2xvbmdfbWlzc2luZ19zb3VyY2Uoc2VsZiwgaW1wb3J0YXNtb2QsIHRtcGRpcik6CisgICAg
ICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGcoeCk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4KQorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAg
ICAgICAgICAgICBnKDMpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3Qu
cmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mKQorICAgICAgICB0bXBkaXIuam9pbignbW9kLnB5Jyku
cmVtb3ZlKCkKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5m
aWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKCkKKyAgICAgICAgdHcgPSBU
V01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5lcy5wb3AoMCkKKyAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzBdID09ICI+ICAgPz8/IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIiIK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdLmVuZHN3aXRoKCJtb2QucHk6NTogIikKKyAgICAg
ICAgYXNzZXJ0IHR3LmxpbmVzWzNdID09ICgiXyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbNF0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzVdID09ICI+ICAgPz8/Igor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIkUgICBWYWx1ZUVycm9yOiAzIgorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzhdLmVu
ZHN3aXRoKCJtb2QucHk6MzogVmFsdWVFcnJvciIpCisKKyAgICBAYnJva2VuX29uX21vZGVybl9w
eXRlc3QKKyAgICBkZWYgdGVzdF90b3Rlcm1pbmFsX2xvbmdfaW5jb21wbGV0ZV9zb3VyY2Uoc2Vs
ZiwgaW1wb3J0YXNtb2QsIHRtcGRpcik6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgor
ICAgICAgICAgICAgZGVmIGcoeCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4
KQorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICBnKDMpCisgICAgICAgICIi
IikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mKQor
ICAgICAgICB0bXBkaXIuam9pbignbW9kLnB5Jykud3JpdGUoJ2FzZGYnKQorICAgICAgICBleGNp
bmZvLnRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIHJlcHIg
PSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHJlcHIu
dG90ZXJtaW5hbCh0dykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICIiCisgICAgICAg
IHR3LmxpbmVzLnBvcCgwKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIj4gICA/Pz8i
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxXSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbMl0uZW5kc3dpdGgoIm1vZC5weTo1OiAiKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbM10g
PT0gKCJfICIsIE5vbmUpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0XSA9PSAiIgorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbNV0gPT0gIj4gICA/Pz8iCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1s2XSA9PSAiRSAgIFZhbHVlRXJyb3I6IDMiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s3XSA9
PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbOF0uZW5kc3dpdGgoIm1vZC5weTozOiBWYWx1
ZUVycm9yIikKKworICAgIEBicm9rZW5fb25fbW9kZXJuX3B5dGVzdAorICAgIGRlZiB0ZXN0X3Rv
dGVybWluYWxfbG9uZ19maWxlbmFtZXMoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2Qg
PSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAg
ICAgIHBhdGggPSBweS5wYXRoLmxvY2FsKG1vZC5fX2ZpbGVfXykKKyAgICAgICAgb2xkID0gcGF0
aC5kaXJwYXRoKCkuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXByID0gZXhj
aW5mby5nZXRyZXByKGFic3BhdGg9RmFsc2UpCisgICAgICAgICAgICByZXByLnRvdGVybWluYWwo
dHcpCisgICAgICAgICAgICBsaW5lID0gdHcubGluZXNbLTFdCisgICAgICAgICAgICB4ID0gcHku
cGF0aC5sb2NhbCgpLmJlc3RyZWxwYXRoKHBhdGgpCisgICAgICAgICAgICBpZiBsZW4oeCkgPCBs
ZW4oc3RyKHBhdGgpKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGluZSA9PSAibW9kLnB5OjM6
IFZhbHVlRXJyb3IiCisKKyAgICAgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIoYWJzcGF0
aD1UcnVlKQorICAgICAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICAgICAgbGlu
ZSA9IHR3LmxpbmVzWy0xXQorICAgICAgICAgICAgYXNzZXJ0IGxpbmUgPT0gIiVzOjM6IFZhbHVl
RXJyb3IiICUocGF0aCwpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvbGQuY2hkaXIo
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzdHlsZScsICgibG9uZyIsICJzaG9y
dCIsICJubyIpKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc2hvd2xvY2FscycsIChU
cnVlLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcz1bJ2xvY2Fscycs
ICdub2xvY2FscyddKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgndGJmaWx0ZXInLCAo
VHJ1ZSwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9Wyd0YmZpbHRl
cicsICdub2ZpbHRlciddKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZnVuY2FyZ3Mn
LCAoVHJ1ZSwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WydmdW5j
YXJncycsICdub2Z1bmNhcmdzJ10pCisgICAgZGVmIHRlc3RfZm9ybWF0X2V4Y2luZm8oc2VsZiwg
aW1wb3J0YXNtb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUsIHNob3dsb2Nh
bHMsIHRiZmlsdGVyLCBmdW5jYXJncyk6CisgICAgICAgIAorICAgICAgICBtb2QgPSBpbXBvcnRh
c21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBnKHgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygzKQor
ICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
LCBtb2QuZikKKyAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihzdHJpbmdpbz1UcnVl
KQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKAorICAgICAgICAgICAgc3R5bGU9c3R5
bGUsCisgICAgICAgICAgICBzaG93bG9jYWxzPXNob3dsb2NhbHMsCisgICAgICAgICAgICBmdW5j
YXJncz1mdW5jYXJncywKKyAgICAgICAgICAgIHRiZmlsdGVyPXRiZmlsdGVyCisgICAgICAgICkK
KyAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICBhc3NlcnQgdHcuc3RyaW5naW8u
Z2V0dmFsdWUoKQorCisgICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3Rf
bmF0aXZlX3N0eWxlKHNlbGYpOgorICAgICAgICBleGNpbmZvID0gc2VsZi5leGNpbmZvX2Zyb21f
ZXhlYygiIiIKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVw
ciA9IGV4Y2luZm8uZ2V0cmVwcihzdHlsZT0nbmF0aXZlJykKKyAgICAgICAgYXNzZXJ0ICJhc3Nl
cnQgMCIgaW4gc3RyKHJlcHIucmVwcmNyYXNoKQorICAgICAgICBzID0gc3RyKHJlcHIpCisgICAg
ICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoJ1RyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0
KTpcbiAgRmlsZScpCisgICAgICAgIGFzc2VydCBzLmVuZHN3aXRoKCdcbkFzc2VydGlvbkVycm9y
OiBhc3NlcnQgMCcpCisgICAgICAgIGFzc2VydCAnZXhlYyAoc291cmNlLmNvbXBpbGUoKSknIGlu
IHMKKyAgICAgICAgYXNzZXJ0IHMuY291bnQoJ2Fzc2VydCAwJykgPT0gMgorCisgICAgQGJyb2tl
bl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX3JlcHJfc3R5bGUoc2Vs
ZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAg
ICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygpCisgICAgICAgICAgICBkZWYgZygpOgor
ICAgICAgICAgICAgICAgIGgoKQorICAgICAgICAgICAgZGVmIGgoKToKKyAgICAgICAgICAgICAg
ICBpKCkKKyAgICAgICAgICAgIGRlZiBpKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIG1vZC5mKQorICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IGV4Y2luZm8udHJh
Y2ViYWNrLmZpbHRlcigpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrWzFdLnNldF9yZXByX3N0
eWxlKCJzaG9ydCIpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrWzJdLnNldF9yZXByX3N0eWxl
KCJzaG9ydCIpCisgICAgICAgIHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9ImxvbmciKQorICAg
ICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHIudG90ZXJtaW5hbCh0dykKKyAgICAgICAgZm9y
IGxpbmUgaW4gdHcubGluZXM6IHByaW50IChsaW5lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNb
MF0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzFdID09ICIgICAgZGVmIGYoKToiCisg
ICAgICAgIGFzc2VydCB0dy5saW5lc1syXSA9PSAiPiAgICAgICBnKCkiCisgICAgICAgIGFzc2Vy
dCB0dy5saW5lc1szXSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNF0uZW5kc3dpdGgo
Im1vZC5weTozOiAiKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gKCJfICIsIE5vbmUp
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1s2XS5lbmRzd2l0aCgiaW4gZyIpCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1s3XSA9PSAiICAgIGgoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzhd
LmVuZHN3aXRoKCJpbiBoIikKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzldID09ICIgICAgaSgp
IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTBdID09ICgiXyAiLCBOb25lKQorICAgICAgICBh
c3NlcnQgdHcubGluZXNbMTFdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxMl0gPT0g
IiAgICBkZWYgaSgpOiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzEzXSA9PSAiPiAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCkiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxNF0gPT0gIkUgICAg
ICAgVmFsdWVFcnJvciIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE1XSA9PSAiIgorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbMTZdLmVuZHN3aXRoKCJtb2QucHk6OTogVmFsdWVFcnJvciIpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0OTI3NjFhNGU5ZTM0ZTFk
ZGYwMzdiM2Q3MzcyMDc1YzMwMzIzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rp
bmcvY29kZS90ZXN0X3NvdXJjZS5weQpAQCAtMCwwICsxLDY0OCBAQAorZnJvbSBweS5jb2RlIGlt
cG9ydCBTb3VyY2UKK2ltcG9ydCBweQoraW1wb3J0IHN5cworaW1wb3J0IGluc3BlY3QKKworZnJv
bSBweS5fY29kZS5zb3VyY2UgaW1wb3J0IF9hc3QKK2lmIF9hc3QgaXMgbm90IE5vbmU6CisgICAg
YXN0b25seSA9IHB5LnRlc3QubWFyay5ub3RoaW5nCitlbHNlOgorICAgIGFzdG9ubHkgPSBweS50
ZXN0Lm1hcmsueGZhaWwoIlRydWUiLCByZWFzb249Im9ubHkgd29ya3Mgd2l0aCBBU1QtY29tcGls
ZSIpCisKK2ZhaWxzb25qeXRob24gPSBweS50ZXN0Lm1hcmsueGZhaWwoInN5cy5wbGF0Zm9ybS5z
dGFydHN3aXRoKCdqYXZhJykiKQorCitkZWYgdGVzdF9zb3VyY2Vfc3RyX2Z1bmN0aW9uKCk6Cisg
ICAgeCA9IFNvdXJjZSgiMyIpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiMyIKKworICAgIHggPSBT
b3VyY2UoIiAgIDMiKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIjMiCisKKyAgICB4ID0gU291cmNl
KCIiIgorICAgICAgICAzCisgICAgIiIiLCByc3RyaXA9RmFsc2UpCisgICAgYXNzZXJ0IHN0cih4
KSA9PSAiXG4zXG4gICAgIgorCisgICAgeCA9IFNvdXJjZSgiIiIKKyAgICAgICAgMworICAgICIi
IiwgcnN0cmlwPVRydWUpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiXG4zIgorCitkZWYgdGVzdF91
bmljb2RlKCk6CisgICAgdHJ5OgorICAgICAgICB1bmljb2RlCisgICAgZXhjZXB0IE5hbWVFcnJv
cjoKKyAgICAgICAgcmV0dXJuCisgICAgeCA9IFNvdXJjZSh1bmljb2RlKCI0IikpCisgICAgYXNz
ZXJ0IHN0cih4KSA9PSAiNCIKKyAgICBjbyA9IHB5LmNvZGUuY29tcGlsZSh1bmljb2RlKCd1Ilx4
YzNceGE1IicsICd1dGY4JyksIG1vZGU9J2V2YWwnKQorICAgIHZhbCA9IGV2YWwoY28pCisgICAg
YXNzZXJ0IGlzaW5zdGFuY2UodmFsLCB1bmljb2RlKQorCitkZWYgdGVzdF9zb3VyY2VfZnJvbV9m
dW5jdGlvbigpOgorICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKHRlc3Rfc291cmNlX3N0cl9m
dW5jdGlvbikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RhcnRzd2l0aCgnZGVmIHRlc3Rfc291
cmNlX3N0cl9mdW5jdGlvbigpOicpCisKK2RlZiB0ZXN0X3NvdXJjZV9mcm9tX21ldGhvZCgpOgor
ICAgIGNsYXNzIFRlc3RDbGFzczoKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAg
ICAgICAgICAgcGFzcworICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKFRlc3RDbGFzcygpLnRl
c3RfbWV0aG9kKQorICAgIGFzc2VydCBzb3VyY2UubGluZXMgPT0gWyJkZWYgdGVzdF9tZXRob2Qo
c2VsZik6IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHBhc3MiXQorCitkZWYg
dGVzdF9zb3VyY2VfZnJvbV9saW5lcygpOgorICAgIGxpbmVzID0gWyJhIFxuIiwgImJcbiIsICJj
Il0KKyAgICBzb3VyY2UgPSBweS5jb2RlLlNvdXJjZShsaW5lcykKKyAgICBhc3NlcnQgc291cmNl
LmxpbmVzID09IFsnYSAnLCAnYicsICdjJ10KKworZGVmIHRlc3Rfc291cmNlX2Zyb21faW5uZXJf
ZnVuY3Rpb24oKToKKyAgICBkZWYgZigpOgorICAgICAgICBwYXNzCisgICAgc291cmNlID0gcHku
Y29kZS5Tb3VyY2UoZiwgZGVpbmRlbnQ9RmFsc2UpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0
YXJ0c3dpdGgoJyAgICBkZWYgZigpOicpCisgICAgc291cmNlID0gcHkuY29kZS5Tb3VyY2UoZikK
KyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RhcnRzd2l0aCgnZGVmIGYoKTonKQorCitkZWYgdGVz
dF9zb3VyY2VfcHV0YXJvdW5kX3NpbXBsZSgpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgicmFpc2Ug
VmFsdWVFcnJvciIpCisgICAgc291cmNlID0gc291cmNlLnB1dGFyb3VuZCgKKyAgICAgICAgInRy
eToiLCAiIiJcCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgeCA9IDQy
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB4ID0gMjMiIiIpCisgICAgYXNzZXJ0IHN0cihz
b3VyY2UpPT0iIiJcCit0cnk6CisgICAgcmFpc2UgVmFsdWVFcnJvcgorZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgeCA9IDQyCitlbHNlOgorICAgIHggPSAyMyIiIgorCitkZWYgdGVzdF9zb3VyY2Vf
cHV0YXJvdW5kKCk6CisgICAgc291cmNlID0gU291cmNlKCkKKyAgICBzb3VyY2UgPSBzb3VyY2Uu
cHV0YXJvdW5kKCIiIgorICAgICAgICBpZiAxOgorICAgICAgICAgICAgeD0xCisgICAgIiIiKQor
ICAgIGFzc2VydCBzdHIoc291cmNlKS5zdHJpcCgpID09ICJpZiAxOlxuICAgIHg9MSIKKworZGVm
IHRlc3Rfc291cmNlX3N0cmlwcygpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgiIikKKyAgICBhc3Nl
cnQgc291cmNlID09IFNvdXJjZSgpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICcnCisgICAg
YXNzZXJ0IHNvdXJjZS5zdHJpcCgpID09IHNvdXJjZQorCitkZWYgdGVzdF9zb3VyY2Vfc3RyaXBf
bXVsdGlsaW5lKCk6CisgICAgc291cmNlID0gU291cmNlKCkKKyAgICBzb3VyY2UubGluZXMgPSBb
IiIsICIgaGVsbG8iLCAiICAiXQorICAgIHNvdXJjZTIgPSBzb3VyY2Uuc3RyaXAoKQorICAgIGFz
c2VydCBzb3VyY2UyLmxpbmVzID09IFsiIGhlbGxvIl0KKworZGVmIHRlc3Rfc3ludGF4ZXJyb3Jf
cmVyZXByZXNlbnRhdGlvbigpOgorICAgIGV4ID0gcHkudGVzdC5yYWlzZXMoU3ludGF4RXJyb3Is
IHB5LmNvZGUuY29tcGlsZSwgJ3h5eiB4eXonKQorICAgIGFzc2VydCBleC52YWx1ZS5saW5lbm8g
PT0gMQorICAgIGFzc2VydCBleC52YWx1ZS5vZmZzZXQgaW4gKDQsNykgIyBYWFggcHlweS9qeXRo
b24gdmVyc3VzIGNweXRob24/CisgICAgYXNzZXJ0IGV4LnZhbHVlLnRleHQuc3RyaXAoKSwgJ3gg
eCcKKworZGVmIHRlc3RfaXNwYXJzZWFibGUoKToKKyAgICBhc3NlcnQgU291cmNlKCJoZWxsbyIp
LmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgU291cmNlKCJpZiAxOlxuICBwYXNzIikuaXNwYXJz
ZWFibGUoKQorICAgIGFzc2VydCBTb3VyY2UoIiBcbmlmIDE6XG4gIHBhc3MiKS5pc3BhcnNlYWJs
ZSgpCisgICAgYXNzZXJ0IG5vdCBTb3VyY2UoImlmIDE6XG4iKS5pc3BhcnNlYWJsZSgpCisgICAg
YXNzZXJ0IG5vdCBTb3VyY2UoIiBcbmlmIDE6XG5wYXNzIikuaXNwYXJzZWFibGUoKQorICAgIGFz
c2VydCBub3QgU291cmNlKGNocigwKSkuaXNwYXJzZWFibGUoKQorCitjbGFzcyBUZXN0QWNjZXNz
ZXM6CisgICAgc291cmNlID0gU291cmNlKCIiIlwKKyAgICAgICAgZGVmIGYoeCk6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIGRlZiBnKHgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikK
KyAgICBkZWYgdGVzdF9nZXRyYW5nZShzZWxmKToKKyAgICAgICAgeCA9IHNlbGYuc291cmNlWzA6
Ml0KKyAgICAgICAgYXNzZXJ0IHguaXNwYXJzZWFibGUoKQorICAgICAgICBhc3NlcnQgbGVuKHgu
bGluZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHN0cih4KSA9PSAiZGVmIGYoeCk6XG4gICAgcGFz
cyIKKworICAgIGRlZiB0ZXN0X2dldGxpbmUoc2VsZik6CisgICAgICAgIHggPSBzZWxmLnNvdXJj
ZVswXQorICAgICAgICBhc3NlcnQgeCA9PSAiZGVmIGYoeCk6IgorCisgICAgZGVmIHRlc3RfbGVu
KHNlbGYpOgorICAgICAgICBhc3NlcnQgbGVuKHNlbGYuc291cmNlKSA9PSA0CisKKyAgICBkZWYg
dGVzdF9pdGVyKHNlbGYpOgorICAgICAgICBsID0gW3ggZm9yIHggaW4gc2VsZi5zb3VyY2VdCisg
ICAgICAgIGFzc2VydCBsZW4obCkgPT0gNAorCitjbGFzcyBUZXN0U291cmNlUGFyc2luZ0FuZENv
bXBpbGluZzoKKyAgICBzb3VyY2UgPSBTb3VyY2UoIiIiXAorICAgICAgICBkZWYgZih4KToKKyAg
ICAgICAgICAgIGFzc2VydCAoeCA9PQorICAgICAgICAgICAgICAgICAgICAzICsKKyAgICAgICAg
ICAgICAgICAgICAgNCkKKyAgICAiIiIpLnN0cmlwKCkKKworICAgIGRlZiB0ZXN0X2NvbXBpbGUo
c2VsZik6CisgICAgICAgIGNvID0gcHkuY29kZS5jb21waWxlKCJ4PTMiKQorICAgICAgICBkID0g
e30KKyAgICAgICAgZXhlYyAoY28sIGQpCisgICAgICAgIGFzc2VydCBkWyd4J10gPT0gMworCisg
ICAgZGVmIHRlc3RfY29tcGlsZV9hbmRfZ2V0c291cmNlX3NpbXBsZShzZWxmKToKKyAgICAgICAg
Y28gPSBweS5jb2RlLmNvbXBpbGUoIng9MyIpCisgICAgICAgIGV4ZWMgKGNvKQorICAgICAgICBz
b3VyY2UgPSBweS5jb2RlLlNvdXJjZShjbykKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09
ICJ4PTMiCisKKyAgICBkZWYgdGVzdF9jb21waWxlX2FuZF9nZXRzb3VyY2VfdGhyb3VnaF9zYW1l
X2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICBkZWYgZ2Vuc291cmNlKHNvdXJjZSk6CisgICAgICAg
ICAgICByZXR1cm4gcHkuY29kZS5jb21waWxlKHNvdXJjZSkKKyAgICAgICAgY28xID0gZ2Vuc291
cmNlKCIiIgorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlF
cnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgY28yID0gZ2Vuc291cmNlKCIiIgorICAgICAg
ICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAg
ICAgIiIiKQorICAgICAgICBzb3VyY2UxID0gaW5zcGVjdC5nZXRzb3VyY2UoY28xKQorICAgICAg
ICBhc3NlcnQgJ0tleUVycm9yJyBpbiBzb3VyY2UxCisgICAgICAgIHNvdXJjZTIgPSBpbnNwZWN0
LmdldHNvdXJjZShjbzIpCisgICAgICAgIGFzc2VydCAnVmFsdWVFcnJvcicgaW4gc291cmNlMgor
CisgICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50KHNlbGYpOgorICAgICAgICAjcHJpbnQgc3RyKHNl
bGYuc291cmNlKQorICAgICAgICBhc3MgPSBzdHIoc2VsZi5zb3VyY2VbMTpdKQorICAgICAgICBm
b3IgaSBpbiByYW5nZSgxLCA0KToKKyAgICAgICAgICAgICNwcmludCAidHJ5aW5nIHN0YXJ0IGlu
IGxpbmUgJXIiICUgc2VsZi5zb3VyY2VbaV0KKyAgICAgICAgICAgIHMgPSBzZWxmLnNvdXJjZS5n
ZXRzdGF0ZW1lbnQoaSkKKyAgICAgICAgICAgICN4ID0gcy5kZWluZGVudCgpCisgICAgICAgICAg
ICBhc3NlcnQgc3RyKHMpID09IGFzcworCisgICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50cmFuZ2Vf
dHJpcGxlX3F1b3RlZChzZWxmKToKKyAgICAgICAgI3ByaW50IHN0cihzZWxmLnNvdXJjZSkKKyAg
ICAgICAgc291cmNlID0gU291cmNlKCIiImhlbGxvKCcnJworICAgICAgICAnJycpIiIiKQorICAg
ICAgICBzID0gc291cmNlLmdldHN0YXRlbWVudCgwKQorICAgICAgICBhc3NlcnQgcyA9PSBzdHIo
c291cmNlKQorICAgICAgICBzID0gc291cmNlLmdldHN0YXRlbWVudCgxKQorICAgICAgICBhc3Nl
cnQgcyA9PSBzdHIoc291cmNlKQorCisgICAgQGFzdG9ubHkKKyAgICBkZWYgdGVzdF9nZXRzdGF0
ZW1lbnRyYW5nZV93aXRoaW5fY29uc3RydWN0cyhzZWxmKToKKyAgICAgICAgc291cmNlID0gU291
cmNlKCIiIlwKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgICAgICBleGNlcHQgU29t
ZVRoaW5nOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgICAgIDQyCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGxlbihzb3Vy
Y2UpID09IDcKKyAgICAgICAgIyBjaGVjayBhbGwgbGluZW5vJ3MgdGhhdCBjb3VsZCBvY2N1ciBp
biBhIHRyYWNlYmFjaworICAgICAgICAjYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgw
KSA9PSAoMCwgNykKKyAgICAgICAgI2Fzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMSkg
PT0gKDEsIDUpCisgICAgICAgIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMikgPT0g
KDIsIDMpCisgICAgICAgIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMykgPT0gKDMs
IDQpCisgICAgICAgIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoNCkgPT0gKDQsIDUp
CisgICAgICAgICNhc3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDUpID09ICgwLCA3KQor
ICAgICAgICBhc3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDYpID09ICg2LCA3KQorCisg
ICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50cmFuZ2VfYnVnKHNlbGYpOgorICAgICAgICBzb3VyY2Ug
PSBTb3VyY2UoIiIiXAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHggPSAoCisg
ICAgICAgICAgICAgICAgICAgeSArCisgICAgICAgICAgICAgICAgICAgeikKKyAgICAgICAgICAg
IGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgYXNz
ZXJ0IGxlbihzb3VyY2UpID09IDYKKyAgICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRy
YW5nZSgyKSA9PSAoMSwgNCkKKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX2J1ZzIo
c2VsZik6CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAgICAgICBhc3NlcnQg
KAorICAgICAgICAgICAgICAgIDMzCisgICAgICAgICAgICAgICAgPT0KKyAgICAgICAgICAgICAg
ICBbCisgICAgICAgICAgICAgICAgICBYKDMsCisgICAgICAgICAgICAgICAgICAgICAgYj0xLCBj
PTIKKyAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
ICAgKQorICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9PSA5CisgICAg
ICAgIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoNSkgPT0gKDAsIDkpCisKKyAgICBk
ZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV9hc3RfaXNzdWU1OChzZWxmKToKKyAgICAgICAgc291
cmNlID0gU291cmNlKCIiIlwKKworICAgICAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgorICAgICAg
ICAgICAgICAgIGZvciBhIGluIFthIGZvciBhIGluCisgICAgICAgICAgICAgICAgICAgIENBVVNF
X0VSUk9SXTogcGFzcworCisgICAgICAgICAgICB4ID0gMworICAgICAgICAiIiIpCisgICAgICAg
IGFzc2VydCBnZXRzdGF0ZW1lbnQoMiwgc291cmNlKS5saW5lcyA9PSBzb3VyY2UubGluZXNbMjoz
XQorICAgICAgICBhc3NlcnQgZ2V0c3RhdGVtZW50KDMsIHNvdXJjZSkubGluZXMgPT0gc291cmNl
LmxpbmVzWzM6NF0KKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX291dF9vZl9ib3Vu
ZHNfcHkzKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoImlmIHh4eDpcbiAgIGZyb20g
LmNvbGxlY3Rpb25zIGltcG9ydCBzb21ldGhpbmciKQorICAgICAgICByID0gc291cmNlLmdldHN0
YXRlbWVudHJhbmdlKDEpCisgICAgICAgIGFzc2VydCByID09ICgxLDIpCisKKyAgICBkZWYgdGVz
dF9nZXRzdGF0ZW1lbnRyYW5nZV93aXRoX3N5bnRheGVycm9yX2lzc3VlNyhzZWxmKToKKyAgICAg
ICAgc291cmNlID0gU291cmNlKCI6IikKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoU3ludGF4RXJy
b3IsIGxhbWJkYTogc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDApKQorCisgICAgZGVmIHRlc3Rf
Y29tcGlsZV90b19hc3Qoc2VsZik6CisgICAgICAgIGltcG9ydCBhc3QKKyAgICAgICAgc291cmNl
ID0gU291cmNlKCJ4ID0gNCIpCisgICAgICAgIG1vZCA9IHNvdXJjZS5jb21waWxlKGZsYWc9YXN0
LlB5Q0ZfT05MWV9BU1QpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZCwgYXN0Lk1vZHVs
ZSkKKyAgICAgICAgY29tcGlsZShtb2QsICI8ZmlsZW5hbWU+IiwgImV4ZWMiKQorCisgICAgZGVm
IHRlc3RfY29tcGlsZV9hbmRfZ2V0c291cmNlKHNlbGYpOgorICAgICAgICBjbyA9IHNlbGYuc291
cmNlLmNvbXBpbGUoKQorICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvLCBnbG9iYWxzKCkpCisg
ICAgICAgIGYoNykKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKEFzc2VydGlvbkVy
cm9yLCAiZig2KSIpCisgICAgICAgIGZyYW1lID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLmZyYW1l
CisgICAgICAgIHN0bXQgPSBmcmFtZS5jb2RlLmZ1bGxzb3VyY2UuZ2V0c3RhdGVtZW50KGZyYW1l
LmxpbmVubykKKyAgICAgICAgI3ByaW50ICJibG9jayIsIHN0cihibG9jaykKKyAgICAgICAgYXNz
ZXJ0IHN0cihzdG10KS5zdHJpcCgpLnN0YXJ0c3dpdGgoJ2Fzc2VydCcpCisKKyAgICBkZWYgdGVz
dF9jb21waWxlZnVuY3NfYW5kX3BhdGhfc2FuaXR5KHNlbGYpOgorICAgICAgICBkZWYgY2hlY2so
Y29tcCwgbmFtZSk6CisgICAgICAgICAgICBjbyA9IGNvbXAoc2VsZi5zb3VyY2UsIG5hbWUpCisg
ICAgICAgICAgICBpZiBub3QgbmFtZToKKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJjb2Rl
Z2VuICVzOiVkPiIgJShteXBhdGgsIG15bGluZW5vKzIrMSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiY29kZWdlbiAlciAlczolZD4iICUgKG5hbWUsIG15
cGF0aCwgbXlsaW5lbm8rMisxKQorICAgICAgICAgICAgZm4gPSBjby5jb19maWxlbmFtZQorICAg
ICAgICAgICAgYXNzZXJ0IGZuLmVuZHN3aXRoKGV4cGVjdGVkKQorCisgICAgICAgIG15Y29kZSA9
IHB5LmNvZGUuQ29kZShzZWxmLnRlc3RfY29tcGlsZWZ1bmNzX2FuZF9wYXRoX3Nhbml0eSkKKyAg
ICAgICAgbXlsaW5lbm8gPSBteWNvZGUuZmlyc3RsaW5lbm8KKyAgICAgICAgbXlwYXRoID0gbXlj
b2RlLnBhdGgKKworICAgICAgICBmb3IgY29tcCBpbiBweS5jb2RlLmNvbXBpbGUsIHB5LmNvZGUu
U291cmNlLmNvbXBpbGU6CisgICAgICAgICAgICBmb3IgbmFtZSBpbiAnJywgTm9uZSwgJ215JzoK
KyAgICAgICAgICAgICAgICB5aWVsZCBjaGVjaywgY29tcCwgbmFtZQorCisgICAgZGVmIHRlc3Rf
b2Zmc2V0bGVzc19zeW5lcnIoc2VsZik6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKFN5bnRheEVy
cm9yLCBweS5jb2RlLmNvbXBpbGUsICJsYW1iZGEgYSxhOiAwIiwgbW9kZT0nZXZhbCcpCisKK2Rl
ZiB0ZXN0X2dldHN0YXJ0aW5nYmxvY2tfc2luZ2xlbGluZSgpOgorICAgIGNsYXNzIEE6CisgICAg
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgICAgICBmcmFtZSA9IHN5cy5f
Z2V0ZnJhbWUoMSkKKyAgICAgICAgICAgIHNlbGYuc291cmNlID0gcHkuY29kZS5GcmFtZShmcmFt
ZSkuc3RhdGVtZW50CisKKyAgICB4ID0gQSgneCcsICd5JykKKworICAgIGwgPSBbaSBmb3IgaSBp
biB4LnNvdXJjZS5saW5lcyBpZiBpLnN0cmlwKCldCisgICAgYXNzZXJ0IGxlbihsKSA9PSAxCisK
K2RlZiB0ZXN0X2dldHN0YXJ0aW5nYmxvY2tfbXVsdGlsaW5lKCk6CisgICAgY2xhc3MgQToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgIGZyYW1lID0gc3lz
Ll9nZXRmcmFtZSgxKQorICAgICAgICAgICAgc2VsZi5zb3VyY2UgPSBweS5jb2RlLkZyYW1lKGZy
YW1lKS5zdGF0ZW1lbnQKKworICAgIHggPSBBKCd4JywKKyAgICAgICAgICAneScgXAorICAgICAg
ICAgICwKKyAgICAgICAgICAneicpCisKKyAgICBsID0gW2kgZm9yIGkgaW4geC5zb3VyY2UubGlu
ZXMgaWYgaS5zdHJpcCgpXQorICAgIGFzc2VydCBsZW4obCkgPT0gNAorCitkZWYgdGVzdF9nZXRs
aW5lX2ZpbmFsbHkoKToKKyAgICBkZWYgYygpOiBwYXNzCisgICAgZXhjaW5mbyA9IHB5LnRlc3Qu
cmFpc2VzKFR5cGVFcnJvciwgIiIiCisgICAgICAgICAgIHRlYXJkb3duID0gTm9uZQorICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgYygxKQorICAgICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgICAgIGlmIHRlYXJkb3duOgorICAgICAgICAgICAgICAgICAgICB0ZWFyZG93bigp
CisgICAgIiIiKQorICAgIHNvdXJjZSA9IGV4Y2luZm8udHJhY2ViYWNrWy0xXS5zdGF0ZW1lbnQK
KyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RyaXAoKSA9PSAnYygxKScKKworZGVmIHRlc3RfZ2V0
ZnVuY3NvdXJjZV9keW5hbWljKCk6CisgICAgc291cmNlID0gIiIiCisgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAgICAgZGVmIGcoKTogcGFzcwor
ICAgICIiIgorICAgIGNvID0gcHkuY29kZS5jb21waWxlKHNvdXJjZSkKKyAgICBweS5idWlsdGlu
LmV4ZWNfKGNvLCBnbG9iYWxzKCkpCisgICAgYXNzZXJ0IHN0cihweS5jb2RlLlNvdXJjZShmKSku
c3RyaXAoKSA9PSAnZGVmIGYoKTpcbiAgICByYWlzZSBWYWx1ZUVycm9yJworICAgIGFzc2VydCBz
dHIocHkuY29kZS5Tb3VyY2UoZykpLnN0cmlwKCkgPT0gJ2RlZiBnKCk6IHBhc3MnCisKKworZGVm
IHRlc3RfZ2V0ZnVuY3NvdXJjZV93aXRoX211bHRpbmVfc3RyaW5nKCk6CisgICAgZGVmIGYoKToK
KyAgICAgICAgYyA9ICcnJ3doaWxlIFRydWU6CisgICAgcGFzcworJycnCisgICAgYXNzZXJ0IHN0
cihweS5jb2RlLlNvdXJjZShmKSkuc3RyaXAoKSA9PSAiZGVmIGYoKTpcbiAgICBjID0gJycnd2hp
bGUgVHJ1ZTpcbiAgICBwYXNzXG4nJyciCisKKworZGVmIHRlc3RfZGVpbmRlbnQoKToKKyAgICBm
cm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZGVpbmRlbnQgYXMgZGVpbmRlbnQKKyAgICBhc3Nl
cnQgZGVpbmRlbnQoWydcdGZvbycsICdcdGJhcicsIF0pID09IFsnZm9vJywgJ2JhciddCisKKyAg
ICBkZWYgZigpOgorICAgICAgICBjID0gJycnd2hpbGUgVHJ1ZToKKyAgICBwYXNzCisnJycKKyAg
ICBpbXBvcnQgaW5zcGVjdAorICAgIGxpbmVzID0gZGVpbmRlbnQoaW5zcGVjdC5nZXRzb3VyY2Uo
Zikuc3BsaXRsaW5lcygpKQorICAgIGFzc2VydCBsaW5lcyA9PSBbImRlZiBmKCk6IiwgIiAgICBj
ID0gJycnd2hpbGUgVHJ1ZToiLCAiICAgIHBhc3MiLCAiJycnIl0KKworICAgIHNvdXJjZSA9ICIi
IgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgIiIiCisgICAgbGluZXMgPSBkZWluZGVudChzb3VyY2Uuc3BsaXRsaW5lcygp
KQorICAgIGFzc2VydCBsaW5lcyA9PSBbJycsICdkZWYgZigpOicsICcgICAgZGVmIGcoKTonLCAn
ICAgICAgICBwYXNzJywgJyAgICAnXQorCitkZWYgdGVzdF9zb3VyY2Vfb2ZfY2xhc3NfYXRfZW9m
X3dpdGhvdXRfbmV3bGluZSh0bXBkaXIpOgorICAgICMgdGhpcyB0ZXN0IGZhaWxzIGJlY2F1c2Ug
dGhlIGltcGxpY2l0IGluc3BlY3QuZ2V0c291cmNlKEEpIGJlbG93CisgICAgIyBkb2VzIG5vdCBy
ZXR1cm4gdGhlICJ4ID0gMSIgbGFzdCBsaW5lLgorICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNl
KCcnJworICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgbWV0aG9kKHNl
bGYpOgorICAgICAgICAgICAgICAgIHggPSAxCisgICAgJycnKQorICAgIHBhdGggPSB0bXBkaXIu
am9pbigiYS5weSIpCisgICAgcGF0aC53cml0ZShzb3VyY2UpCisgICAgczIgPSBweS5jb2RlLlNv
dXJjZSh0bXBkaXIuam9pbigiYS5weSIpLnB5aW1wb3J0KCkuQSkKKyAgICBhc3NlcnQgc3RyKHNv
dXJjZSkuc3RyaXAoKSA9PSBzdHIoczIpLnN0cmlwKCkKKworaWYgVHJ1ZToKKyAgICBkZWYgeCgp
OgorICAgICAgICBwYXNzCisKK2RlZiB0ZXN0X2dldHNvdXJjZV9mYWxsYmFjaygpOgorICAgIGZy
b20gcHkuX2NvZGUuc291cmNlIGltcG9ydCBnZXRzb3VyY2UKKyAgICBleHBlY3RlZCA9ICIiImRl
ZiB4KCk6CisgICAgcGFzcyIiIgorICAgIHNyYyA9IGdldHNvdXJjZSh4KQorICAgIGFzc2VydCBz
cmMgPT0gZXhwZWN0ZWQKKworZGVmIHRlc3RfaWRlbV9jb21waWxlX2FuZF9nZXRzb3VyY2UoKToK
KyAgICBmcm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0c291cmNlCisgICAgZXhwZWN0ZWQg
PSAiZGVmIHgoKTogcGFzcyIKKyAgICBjbyA9IHB5LmNvZGUuY29tcGlsZShleHBlY3RlZCkKKyAg
ICBzcmMgPSBnZXRzb3VyY2UoY28pCisgICAgYXNzZXJ0IHNyYyA9PSBleHBlY3RlZAorCitkZWYg
dGVzdF9maW5kc291cmNlX2ZhbGxiYWNrKCk6CisgICAgZnJvbSBweS5fY29kZS5zb3VyY2UgaW1w
b3J0IGZpbmRzb3VyY2UKKyAgICBzcmMsIGxpbmVubyA9IGZpbmRzb3VyY2UoeCkKKyAgICBhc3Nl
cnQgJ3Rlc3RfZmluZHNvdXJjZV9zaW1wbGUnIGluIHN0cihzcmMpCisgICAgYXNzZXJ0IHNyY1ts
aW5lbm9dID09ICcgICAgZGVmIHgoKTonCisKK2RlZiB0ZXN0X2ZpbmRzb3VyY2UoKToKKyAgICBm
cm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZmluZHNvdXJjZQorICAgIGNvID0gcHkuY29kZS5j
b21waWxlKCIiImlmIDE6CisgICAgZGVmIHgoKToKKyAgICAgICAgcGFzcworIiIiKQorCisgICAg
c3JjLCBsaW5lbm8gPSBmaW5kc291cmNlKGNvKQorICAgIGFzc2VydCAnaWYgMTonIGluIHN0cihz
cmMpCisKKyAgICBkID0ge30KKyAgICBldmFsKGNvLCBkKQorICAgIHNyYywgbGluZW5vID0gZmlu
ZHNvdXJjZShkWyd4J10pCisgICAgYXNzZXJ0ICdpZiAxOicgaW4gc3RyKHNyYykKKyAgICBhc3Nl
cnQgc3JjW2xpbmVub10gPT0gIiAgICBkZWYgeCgpOiIKKworCitkZWYgdGVzdF9nZXRmc2xpbmVu
bygpOgorICAgIGZyb20gcHkuY29kZSBpbXBvcnQgZ2V0ZnNsaW5lbm8KKworICAgIGRlZiBmKHgp
OgorICAgICAgICBwYXNzCisKKyAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKGYpCisK
KyAgICBhc3NlcnQgZnNwYXRoLmJhc2VuYW1lID09ICJ0ZXN0X3NvdXJjZS5weSIKKyAgICBhc3Nl
cnQgbGluZW5vID09IHB5LmNvZGUuZ2V0cmF3Y29kZShmKS5jb19maXJzdGxpbmVuby0xICMgc2Vl
IGZpbmRzb3VyY2UKKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAg
ZnNwYXRoLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhBKQorCisgICAgXywgQV9saW5lbm8gPSBpbnNw
ZWN0LmZpbmRzb3VyY2UoQSkKKyAgICBhc3NlcnQgZnNwYXRoLmJhc2VuYW1lID09ICJ0ZXN0X3Nv
dXJjZS5weSIKKyAgICBhc3NlcnQgbGluZW5vID09IEFfbGluZW5vCisKKyAgICBhc3NlcnQgZ2V0
ZnNsaW5lbm8oMykgPT0gKCIiLCAtMSkKKyAgICBjbGFzcyBCOgorICAgICAgICBwYXNzCisgICAg
Qi5fX25hbWVfXyA9ICJCMiIKKyAgICBhc3NlcnQgZ2V0ZnNsaW5lbm8oQilbMV0gPT0gLTEKKwor
ZGVmIHRlc3RfY29kZV9vZl9vYmplY3RfaW5zdGFuY2Vfd2l0aF9jYWxsKCk6CisgICAgY2xhc3Mg
QToKKyAgICAgICAgcGFzcworICAgIHB5LnRlc3QucmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBw
eS5jb2RlLlNvdXJjZShBKCkpKQorICAgIGNsYXNzIFdpdGhDYWxsOgorICAgICAgICBkZWYgX19j
YWxsX18oc2VsZik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBjb2RlID0gcHkuY29kZS5Db2Rl
KFdpdGhDYWxsKCkpCisgICAgYXNzZXJ0ICdwYXNzJyBpbiBzdHIoY29kZS5zb3VyY2UoKSkKKwor
ICAgIGNsYXNzIEhlbGxvKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAg
ICAgICAgICAgIHBhc3MKKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogcHku
Y29kZS5Db2RlKEhlbGxvKSkKKworCitkZWYgZ2V0c3RhdGVtZW50KGxpbmVubywgc291cmNlKToK
KyAgICBmcm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0Cisg
ICAgc291cmNlID0gcHkuY29kZS5Tb3VyY2Uoc291cmNlLCBkZWluZGVudD1GYWxzZSkKKyAgICBh
c3QsIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzb3VyY2UpCisg
ICAgcmV0dXJuIHNvdXJjZVtzdGFydDplbmRdCisKK2RlZiB0ZXN0X29uZWxpbmUoKToKKyAgICBz
b3VyY2UgPSBnZXRzdGF0ZW1lbnQoMCwgInJhaXNlIFZhbHVlRXJyb3IiKQorICAgIGFzc2VydCBz
dHIoc291cmNlKSA9PSAicmFpc2UgVmFsdWVFcnJvciIKKworZGVmIHRlc3RfY29tbWVudF9hbmRf
bm9fbmV3bGluZV9hdF9lbmQoKToKKyAgICBmcm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0
c3RhdGVtZW50cmFuZ2VfYXN0CisgICAgc291cmNlID0gU291cmNlKFsnZGVmIHRlc3RfYmFzaWNf
Y29tcGxleCgpOicsCisgICAgICAgICAgICAgICAgICAgICAnICAgIGFzc2VydCAxID09IDInLAor
ICAgICAgICAgICAgICAgICAgICAgJyMgdmltOiBmaWxldHlwZT1weW9wZW5jbDpmZG09bWFya2Vy
J10pCisgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KDEsIHNvdXJj
ZSkKKyAgICBhc3NlcnQgZW5kID09IDIKKworZGVmIHRlc3Rfb25lbGluZV9hbmRfY29tbWVudCgp
OgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgwLCAicmFpc2UgVmFsdWVFcnJvclxuI2hlbGxv
IikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNlIFZhbHVlRXJyb3IiCisKK2RlZiB0
ZXN0X2NvbW1lbnRzKCk6CisgICAgc291cmNlID0gJycnZGVmIHRlc3QoKToKKyAgICAiY29tbWVu
dCAxIgorICAgIHggPSAxCisgICAgICAjIGNvbW1lbnQgMgorICAgICMgY29tbWVudCAzCisKKyAg
ICBhc3NlcnQgRmFsc2UKKworIiIiCitjb21tZW50IDQKKyIiIgorJycnCisgICAgZm9yIGxpbmUg
aW4gcmFuZ2UoMiw2KToKKyAgICAgICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQobGluZSwgc291
cmNlKSkgPT0gJyAgICB4ID0gMScKKyAgICBmb3IgbGluZSBpbiByYW5nZSg2LDEwKToKKyAgICAg
ICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQobGluZSwgc291cmNlKSkgPT0gJyAgICBhc3NlcnQg
RmFsc2UnCisgICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQoMTAsIHNvdXJjZSkpID09ICciIiIn
CisKK2RlZiB0ZXN0X2NvbW1lbnRfaW5fc3RhdGVtZW50KCk6CisgICAgc291cmNlID0gJycndGVz
dChmb289MSwKKyAgICAjIGNvbW1lbnQgMQorICAgIGJhcj0yKQorJycnCisgICAgZm9yIGxpbmUg
aW4gcmFuZ2UoMSwzKToKKyAgICAgICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQobGluZSwgc291
cmNlKSkgPT0gXAorICAgICAgICAgICAgICAgJ3Rlc3QoZm9vPTEsXG4gICAgIyBjb21tZW50IDFc
biAgICBiYXI9MiknCisKK2RlZiB0ZXN0X3NpbmdsZV9saW5lX2Vsc2UoKToKKyAgICBzb3VyY2Ug
PSBnZXRzdGF0ZW1lbnQoMSwgImlmIEZhbHNlOiAyXG5lbHNlOiAzIikKKyAgICBhc3NlcnQgc3Ry
KHNvdXJjZSkgPT0gImVsc2U6IDMiCisKK2RlZiB0ZXN0X3NpbmdsZV9saW5lX2ZpbmFsbHkoKToK
KyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMSwgInRyeTogMVxuZmluYWxseTogMyIpCisgICAg
YXNzZXJ0IHN0cihzb3VyY2UpID09ICJmaW5hbGx5OiAzIgorCitkZWYgdGVzdF9pc3N1ZTU1KCk6
CisgICAgc291cmNlID0gKCdkZWYgcm91bmRfdHJpcChkaW5wKTpcbiAgYXNzZXJ0IDEgPT0gZGlu
cFxuJworICAgICAgICAgICAgICAnZGVmIHRlc3RfcnQoKTpcbiAgcm91bmRfdHJpcCgiIiJcbiIi
IilcbicpCisgICAgcyA9IGdldHN0YXRlbWVudCgzLCBzb3VyY2UpCisgICAgYXNzZXJ0IHN0cihz
KSA9PSAnICByb3VuZF90cmlwKCIiIlxuIiIiKScKKworCitkZWYgWFhYdGVzdF9tdWx0aWxpbmUo
KToKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMCwgIiIiXAorcmFpc2UgVmFsdWVFcnJvcigK
KyAgICAyMworKQoreCA9IDMKKyIiIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNl
IFZhbHVlRXJyb3IoXG4gICAgMjNcbikiCisKK2NsYXNzIFRlc3RUcnk6CisgICAgcHl0ZXN0bWFy
ayA9IGFzdG9ubHkKKyAgICBzb3VyY2UgPSAiIiJcCit0cnk6CisgICAgcmFpc2UgVmFsdWVFcnJv
cgorZXhjZXB0IFNvbWV0aGluZzoKKyAgICByYWlzZSBJbmRleEVycm9yKDEpCitlbHNlOgorICAg
IHJhaXNlIEtleUVycm9yKCkKKyIiIgorCisgICAgZGVmIHRlc3RfYm9keShzZWxmKToKKyAgICAg
ICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQg
c3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBWYWx1ZUVycm9yIgorCisgICAgZGVmIHRlc3RfZXhj
ZXB0X2xpbmUoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgyLCBzZWxmLnNv
dXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJleGNlcHQgU29tZXRoaW5nOiIK
KworICAgIGRlZiB0ZXN0X2V4Y2VwdF9ib2R5KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBnZXRz
dGF0ZW1lbnQoMywgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAi
ICAgIHJhaXNlIEluZGV4RXJyb3IoMSkiCisKKyAgICBkZWYgdGVzdF9lbHNlKHNlbGYpOgorICAg
ICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoNSwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2Vy
dCBzdHIoc291cmNlKSA9PSAiICAgIHJhaXNlIEtleUVycm9yKCkiCisKK2NsYXNzIFRlc3RUcnlG
aW5hbGx5OgorICAgIHNvdXJjZSA9ICIiIlwKK3RyeToKKyAgICByYWlzZSBWYWx1ZUVycm9yCitm
aW5hbGx5OgorICAgIHJhaXNlIEluZGV4RXJyb3IoMSkKKyIiIgorCisgICAgZGVmIHRlc3RfYm9k
eShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsIHNlbGYuc291cmNlKQor
ICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBWYWx1ZUVycm9yIgorCisg
ICAgZGVmIHRlc3RfZmluYWxseShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50
KDMsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlz
ZSBJbmRleEVycm9yKDEpIgorCisKKworY2xhc3MgVGVzdElmOgorICAgIHB5dGVzdG1hcmsgPSBh
c3Rvbmx5CisgICAgc291cmNlID0gIiIiXAoraWYgMToKKyAgICB5ID0gMworZWxpZiBGYWxzZToK
KyAgICB5ID0gNQorZWxzZToKKyAgICB5ID0gNworIiIiCisKKyAgICBkZWYgdGVzdF9ib2R5KHNl
bGYpOgorICAgICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMSwgc2VsZi5zb3VyY2UpCisgICAg
ICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiICAgIHkgPSAzIgorCisgICAgZGVmIHRlc3RfZWxp
Zl9jbGF1c2Uoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgyLCBzZWxmLnNv
dXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJlbGlmIEZhbHNlOiIKKworICAg
IGRlZiB0ZXN0X2VsaWYoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgzLCBz
ZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAgeSA9IDUiCisK
KyAgICBkZWYgdGVzdF9lbHNlKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQo
NSwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiICAgIHkgPSA3
IgorCitkZWYgdGVzdF9zZW1pY29sb24oKToKKyAgICBzID0gIiIiXAoraGVsbG8gOyBweXRlc3Qu
c2tpcCgpCisiIiIKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMCwgcykKKyAgICBhc3NlcnQg
c3RyKHNvdXJjZSkgPT0gcy5zdHJpcCgpCisKK2RlZiB0ZXN0X2RlZl9vbmxpbmUoKToKKyAgICBz
ID0gIiIiXAorZGVmIGZ1bmMoKTogcmFpc2UgVmFsdWVFcnJvcig0MikKKworZGVmIHNvbWV0aGlu
ZygpOgorICAgIHBhc3MKKyIiIgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgwLCBzKQorICAg
IGFzc2VydCBzdHIoc291cmNlKSA9PSAiZGVmIGZ1bmMoKTogcmFpc2UgVmFsdWVFcnJvcig0Miki
CisKK2RlZiBYWFhfdGVzdF9leHByZXNzaW9uX211bHRpbGluZSgpOgorICAgIHNvdXJjZSA9ICIi
IlwKK3NvbWV0aGluZworJycnCisnJyciIiIKKyAgICByZXN1bHQgPSBnZXRzdGF0ZW1lbnQoMSwg
c291cmNlKQorICAgIGFzc2VydCBzdHIocmVzdWx0KSA9PSAiJycnXG4nJyciCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2NvZGUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlmNWIzOWI5M2U5NjdmNGExN2U1YjUz
ZTVlZjMzZWQyODUzNTI5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2Rl
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9jb2RlL3Rlc3RfYXNzZXJ0aW9uLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9jb2Rl
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb25m
dGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjk1NmIz
ZGQyNTNkOGIwMDNmZDFmYmNmOTIzYTY4MjZiOGYyMzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMyBAQAorCitweXRlc3RfcGx1Z2lu
cyA9ICJweXRlc3RlciIsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MmQ2
MDA1NDg5ZWJlZTYyY2RlMDIwNjZmMTljNTUyMWU2MjA0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3RpbmcvaW9fL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF9jYXB0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2lvXy90ZXN0X2NhcHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVmZWRkMGFiYzYyOWRjODA2MGE3NmFl
ZjdiNGJmOWY2NDg5ZWMxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18v
dGVzdF9jYXB0dXJlLnB5CkBAIC0wLDAgKzEsNTAxIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHdpdGhfc3RhdGVtZW50CisKK2ltcG9ydCBvcywgc3lzCitpbXBvcnQgcHkKKworbmVlZHNkdXAg
PSBweS50ZXN0Lm1hcmsuc2tpcGlmKCJub3QgaGFzYXR0cihvcywgJ2R1cCcpIikKKworZnJvbSBw
eS5idWlsdGluIGltcG9ydCBwcmludF8KKworaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToK
KyAgICBkZWYgdG9ieXRlcyhvYmopOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgc3RyKToK
KyAgICAgICAgICAgIG9iaiA9IG9iai5lbmNvZGUoJ1VURi04JykKKyAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2Uob2JqLCBieXRlcykKKyAgICAgICAgcmV0dXJuIG9iagorICAgIGRlZiB0b3RleHQo
b2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGJ5dGVzKToKKyAgICAgICAgICAgIG9i
aiA9IHN0cihvYmosICdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwgc3Ry
KQorICAgICAgICByZXR1cm4gb2JqCitlbHNlOgorICAgIGRlZiB0b2J5dGVzKG9iaik6CisgICAg
ICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB1bmljb2RlKToKKyAgICAgICAgICAgIG9iaiA9IG9iai5l
bmNvZGUoJ1VURi04JykKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob2JqLCBzdHIpCisgICAg
ICAgIHJldHVybiBvYmoKKyAgICBkZWYgdG90ZXh0KG9iaik6CisgICAgICAgIGlmIGlzaW5zdGFu
Y2Uob2JqLCBzdHIpOgorICAgICAgICAgICAgb2JqID0gdW5pY29kZShvYmosICdVVEYtOCcpCisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwgdW5pY29kZSkKKyAgICAgICAgcmV0dXJuIG9i
agorCitkZWYgb3N3cml0ZWJ5dGVzKGZkLCBvYmopOgorICAgIG9zLndyaXRlKGZkLCB0b2J5dGVz
KG9iaikpCisKK2NsYXNzIFRlc3RUZXh0SU86CisgICAgZGVmIHRlc3RfdGV4dChzZWxmKToKKyAg
ICAgICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgICAgIGYud3JpdGUoImhlbGxvIikKKyAgICAg
ICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG8iCisgICAgICAg
IGYuY2xvc2UoKQorCisgICAgZGVmIHRlc3RfdW5pY29kZV9hbmRfc3RyX21peHR1cmUoc2VsZik6
CisgICAgICAgIGYgPSBweS5pby5UZXh0SU8oKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv
ID49ICgzLDApOgorICAgICAgICAgICAgZi53cml0ZSgiXHUwMGY2IikKKyAgICAgICAgICAgIHB5
LnRlc3QucmFpc2VzKFR5cGVFcnJvciwgImYud3JpdGUoYnl0ZXMoJ2hlbGxvJywgJ1VURi04Jykp
IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGYud3JpdGUodW5pY29kZSgiXHUwMGY2Iiwg
J1VURi04JykpCisgICAgICAgICAgICBmLndyaXRlKCJoZWxsbyIpICMgYnl0ZXMKKyAgICAgICAg
ICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UocywgdW5pY29kZSkKKworZGVmIHRlc3RfYnl0ZXNfaW8oKToKKyAg
ICBmID0gcHkuaW8uQnl0ZXNJTygpCisgICAgZi53cml0ZSh0b2J5dGVzKCJoZWxsbyIpKQorICAg
IHB5LnRlc3QucmFpc2VzKFR5cGVFcnJvciwgImYud3JpdGUodG90ZXh0KCdoZWxsbycpKSIpCisg
ICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgIGFzc2VydCBzID09IHRvYnl0ZXMoImhlbGxvIikKKwor
ZGVmIHRlc3RfZG9udHJlYWRmcm9taW5wdXQoKToKKyAgICBmcm9tIHB5Ll9pby5jYXB0dXJlIGlt
cG9ydCBEb250UmVhZEZyb21JbnB1dAorICAgIGYgPSBEb250UmVhZEZyb21JbnB1dCgpCisgICAg
YXNzZXJ0IG5vdCBmLmlzYXR0eSgpCisgICAgcHkudGVzdC5yYWlzZXMoSU9FcnJvciwgZi5yZWFk
KQorICAgIHB5LnRlc3QucmFpc2VzKElPRXJyb3IsIGYucmVhZGxpbmVzKQorICAgIHB5LnRlc3Qu
cmFpc2VzKElPRXJyb3IsIGl0ZXIsIGYpCisgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwg
Zi5maWxlbm8pCisgICAgZi5jbG9zZSgpICMganVzdCBmb3IgY29tcGxldGVuZXNzCisKK2RlZiBw
eXRlc3RfZnVuY2FyZ19fdG1wZmlsZShyZXF1ZXN0KToKKyAgICB0ZXN0ZGlyID0gcmVxdWVzdC5n
ZXRmdW5jYXJndmFsdWUoInRlc3RkaXIiKQorICAgIGYgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIp
Lm9wZW4oJ3diKycpCisgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZi5jbG9zZSkKKyAgICByZXR1
cm4gZgorCitAbmVlZHNkdXAKK2RlZiB0ZXN0X2R1cGZpbGUodG1wZmlsZSk6CisgICAgZmxpc3Qg
PSBbXQorICAgIGZvciBpIGluIHJhbmdlKDUpOgorICAgICAgICBuZiA9IHB5LmlvLmR1cGZpbGUo
dG1wZmlsZSwgZW5jb2Rpbmc9InV0Zi04IikKKyAgICAgICAgYXNzZXJ0IG5mICE9IHRtcGZpbGUK
KyAgICAgICAgYXNzZXJ0IG5mLmZpbGVubygpICE9IHRtcGZpbGUuZmlsZW5vKCkKKyAgICAgICAg
YXNzZXJ0IG5mIG5vdCBpbiBmbGlzdAorICAgICAgICBwcmludF8oaSwgZW5kPSIiLCBmaWxlPW5m
KQorICAgICAgICBmbGlzdC5hcHBlbmQobmYpCisgICAgZm9yIGkgaW4gcmFuZ2UoNSk6CisgICAg
ICAgIGYgPSBmbGlzdFtpXQorICAgICAgICBmLmNsb3NlKCkKKyAgICB0bXBmaWxlLnNlZWsoMCkK
KyAgICBzID0gdG1wZmlsZS5yZWFkKCkKKyAgICBhc3NlcnQgIjAxMjM0IiBpbiByZXByKHMpCisg
ICAgdG1wZmlsZS5jbG9zZSgpCisKK2RlZiB0ZXN0X2R1cGZpbGVfbm9fbW9kZSgpOgorICAgICIi
IgorICAgIGR1cGZpbGUgc2hvdWxkIHRyYXAgYW4gQXR0cmlidXRlRXJyb3IgYW5kIHJldHVybiBm
IGlmIG5vIG1vZGUgaXMgc3VwcGxpZWQuCisgICAgIiIiCisgICAgY2xhc3MgU29tZUZpbGVXcmFw
cGVyKG9iamVjdCk6CisgICAgICAgICJBbiBvYmplY3Qgd2l0aCBhIGZpbGVubyBtZXRob2QgYnV0
IG5vIG1vZGUgYXR0cmlidXRlIgorICAgICAgICBkZWYgZmlsZW5vKHNlbGYpOgorICAgICAgICAg
ICAgcmV0dXJuIDEKKyAgICB0bXBmaWxlID0gU29tZUZpbGVXcmFwcGVyKCkKKyAgICBhc3NlcnQg
cHkuaW8uZHVwZmlsZSh0bXBmaWxlKSBpcyB0bXBmaWxlCisgICAgd2l0aCBweS50ZXN0LnJhaXNl
cyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgIHB5LmlvLmR1cGZpbGUodG1wZmlsZSwgcmFpc2lu
Zz1UcnVlKQorCitkZWYgbHNvZl9jaGVjayhmdW5jKToKKyAgICBwaWQgPSBvcy5nZXRwaWQoKQor
ICAgIHRyeToKKyAgICAgICAgb3V0ID0gcHkucHJvY2Vzcy5jbWRleGVjKCJsc29mIC1wICVkIiAl
IHBpZCkKKyAgICBleGNlcHQgcHkucHJvY2Vzcy5jbWRleGVjLkVycm9yOgorICAgICAgICBweS50
ZXN0LnNraXAoImNvdWxkIG5vdCBydW4gJ2xzb2YnIikKKyAgICBmdW5jKCkKKyAgICBvdXQyID0g
cHkucHJvY2Vzcy5jbWRleGVjKCJsc29mIC1wICVkIiAlIHBpZCkKKyAgICBsZW4xID0gbGVuKFt4
IGZvciB4IGluIG91dC5zcGxpdCgiXG4iKSBpZiAiUkVHIiBpbiB4XSkKKyAgICBsZW4yID0gbGVu
KFt4IGZvciB4IGluIG91dDIuc3BsaXQoIlxuIikgaWYgIlJFRyIgaW4geF0pCisgICAgYXNzZXJ0
IGxlbjIgPCBsZW4xICsgMywgb3V0MgorCitjbGFzcyBUZXN0RkRDYXB0dXJlOgorICAgIHB5dGVz
dG1hcmsgPSBuZWVkc2R1cAorCisgICAgZGVmIHRlc3Rfbm90X25vdyhzZWxmLCB0bXBmaWxlKToK
KyAgICAgICAgZmQgPSB0bXBmaWxlLmZpbGVubygpCisgICAgICAgIGNhcCA9IHB5LmlvLkZEQ2Fw
dHVyZShmZCwgbm93PUZhbHNlKQorICAgICAgICBkYXRhID0gdG9ieXRlcygiaGVsbG8iKQorICAg
ICAgICBvcy53cml0ZShmZCwgZGF0YSkKKyAgICAgICAgZiA9IGNhcC5kb25lKCkKKyAgICAgICAg
cyA9IGYucmVhZCgpCisgICAgICAgIGFzc2VydCBub3QgcworICAgICAgICBjYXAgPSBweS5pby5G
RENhcHR1cmUoZmQsIG5vdz1GYWxzZSkKKyAgICAgICAgY2FwLnN0YXJ0KCkKKyAgICAgICAgb3Mu
d3JpdGUoZmQsIGRhdGEpCisgICAgICAgIGYgPSBjYXAuZG9uZSgpCisgICAgICAgIHMgPSBmLnJl
YWQoKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG8iCisKKyAgICBkZWYgdGVzdF9zaW1wbGUo
c2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGZkID0gdG1wZmlsZS5maWxlbm8oKQorICAgICAgICBj
YXAgPSBweS5pby5GRENhcHR1cmUoZmQpCisgICAgICAgIGRhdGEgPSB0b2J5dGVzKCJoZWxsbyIp
CisgICAgICAgIG9zLndyaXRlKGZkLCBkYXRhKQorICAgICAgICBmID0gY2FwLmRvbmUoKQorICAg
ICAgICBzID0gZi5yZWFkKCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gImhlbGxvIgorICAgICAgICBm
LmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9tYW55KHNlbGYsIHRtcGZpbGUpOgorICAg
ICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CisgICAgICAgICAgICBzZWxmLnRlc3Rfc2ltcGxlKHRt
cGZpbGUpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfbWFueV9jaGVja19vcGVuX2ZpbGVzKHNlbGYs
IHRtcGZpbGUpOgorICAgICAgICBsc29mX2NoZWNrKGxhbWJkYTogc2VsZi50ZXN0X3NpbXBsZV9t
YW55KHRtcGZpbGUpKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2ZhaWxfc2Vjb25kX3N0YXJ0KHNl
bGYsIHRtcGZpbGUpOgorICAgICAgICBmZCA9IHRtcGZpbGUuZmlsZW5vKCkKKyAgICAgICAgY2Fw
ID0gcHkuaW8uRkRDYXB0dXJlKGZkKQorICAgICAgICBmID0gY2FwLmRvbmUoKQorICAgICAgICBw
eS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBjYXAuc3RhcnQpCisgICAgICAgIGYuY2xvc2UoKQor
CisgICAgZGVmIHRlc3Rfc3RkZXJyKHNlbGYpOgorICAgICAgICBjYXAgPSBweS5pby5GRENhcHR1
cmUoMiwgcGF0Y2hzeXM9VHJ1ZSkKKyAgICAgICAgcHJpbnRfKCJoZWxsbyIsIGZpbGU9c3lzLnN0
ZGVycikKKyAgICAgICAgZiA9IGNhcC5kb25lKCkKKyAgICAgICAgcyA9IGYucmVhZCgpCisgICAg
ICAgIGFzc2VydCBzID09ICJoZWxsb1xuIgorCisgICAgZGVmIHRlc3Rfc3RkaW4oc2VsZiwgdG1w
ZmlsZSk6CisgICAgICAgIHRtcGZpbGUud3JpdGUodG9ieXRlcygiMyIpKQorICAgICAgICB0bXBm
aWxlLnNlZWsoMCkKKyAgICAgICAgY2FwID0gcHkuaW8uRkRDYXB0dXJlKDAsIHRtcGZpbGU9dG1w
ZmlsZSkKKyAgICAgICAgIyBjaGVjayB3aXRoIG9zLnJlYWQoKSBkaXJlY3RseSBpbnN0ZWFkIG9m
IHJhd19pbnB1dCgpLCBiZWNhdXNlCisgICAgICAgICMgc3lzLnN0ZGluIGl0c2VsZiBtYXkgYmUg
cmVkaXJlY3RlZCAoYXMgcHkudGVzdCBub3cgZG9lcyBieSBkZWZhdWx0KQorICAgICAgICB4ID0g
b3MucmVhZCgwLCAxMDApLnN0cmlwKCkKKyAgICAgICAgZiA9IGNhcC5kb25lKCkKKyAgICAgICAg
YXNzZXJ0IHggPT0gdG9ieXRlcygiMyIpCisKKyAgICBkZWYgdGVzdF93cml0ZW9yZyhzZWxmLCB0
bXBmaWxlKToKKyAgICAgICAgZGF0YTEsIGRhdGEyID0gdG9ieXRlcygiZm9vIiksIHRvYnl0ZXMo
ImJhciIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNhcCA9IHB5LmlvLkZEQ2FwdHVyZSh0
bXBmaWxlLmZpbGVubygpKQorICAgICAgICAgICAgdG1wZmlsZS53cml0ZShkYXRhMSkKKyAgICAg
ICAgICAgIGNhcC53cml0ZW9yZyhkYXRhMikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHRtcGZpbGUuY2xvc2UoKQorICAgICAgICBmID0gY2FwLmRvbmUoKQorICAgICAgICBzY2FwID0g
Zi5yZWFkKCkKKyAgICAgICAgYXNzZXJ0IHNjYXAgPT0gdG90ZXh0KGRhdGExKQorICAgICAgICBz
dG1wID0gb3Blbih0bXBmaWxlLm5hbWUsICdyYicpLnJlYWQoKQorICAgICAgICBhc3NlcnQgc3Rt
cCA9PSBkYXRhMgorCisKK2NsYXNzIFRlc3RTdGRDYXB0dXJlOgorICAgIGRlZiBnZXRjYXB0dXJl
KHNlbGYsICoqa3cpOgorICAgICAgICByZXR1cm4gcHkuaW8uU3RkQ2FwdHVyZSgqKmt3KQorCisg
ICAgZGVmIHRlc3RfY2FwdHVyaW5nX2RvbmVfc2ltcGxlKHNlbGYpOgorICAgICAgICBjYXAgPSBz
ZWxmLmdldGNhcHR1cmUoKQorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJoZWxsbyIpCisgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAgICAgICAgb3V0ZmlsZSwgZXJyZmlsZSA9
IGNhcC5kb25lKCkKKyAgICAgICAgcyA9IG91dGZpbGUucmVhZCgpCisgICAgICAgIGFzc2VydCBz
ID09ICJoZWxsbyIKKyAgICAgICAgcyA9IGVycmZpbGUucmVhZCgpCisgICAgICAgIGFzc2VydCBz
ID09ICJ3b3JsZCIKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19yZXNldF9zaW1wbGUoc2VsZik6
CisgICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2FwdHVyZSgpCisgICAgICAgIHByaW50KCJoZWxsbyB3
b3JsZCIpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImhlbGxvIGVycm9yXG4iKQorICAgICAg
ICBvdXQsIGVyciA9IGNhcC5yZXNldCgpCisgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIHdv
cmxkXG4iCisgICAgICAgIGFzc2VydCBlcnIgPT0gImhlbGxvIGVycm9yXG4iCisKKyAgICBkZWYg
dGVzdF9jYXB0dXJpbmdfcmVhZG91dGVycihzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRj
YXB0dXJlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHJpbnQgKCJoZWxsbyB3b3JsZCIp
CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJoZWxsbyBlcnJvclxuIikKKyAgICAgICAg
ICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgYXNzZXJ0IG91dCA9
PSAiaGVsbG8gd29ybGRcbiIKKyAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gImhlbGxvIGVycm9y
XG4iCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJlcnJvcjIiKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQg
ZXJyID09ICJlcnJvcjIiCisKKyAgICBkZWYgdGVzdF9jYXB0dXJpbmdfcmVhZG91dGVycl91bmlj
b2RlKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAgICBwcmlu
dCAoImh4XHhjNFx4ODVceGM0XHg4NyIpCisgICAgICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRl
cnIoKQorICAgICAgICBhc3NlcnQgb3V0ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgiaHhceGM0XHg4
NVx4YzRceDg3XG4iLCAidXRmOCIpCisKKyAgICBAcHkudGVzdC5tYXJrLnNraXBpZignc3lzLnZl
cnNpb25faW5mbyA+PSAoMywpJywKKyAgICAgICAgICAgICAgICAgICAgICByZWFzb249J3RleHQg
b3V0cHV0IGRpZmZlcmVudCBmb3IgYnl0ZXMgb24gcHl0aG9uMycpCisgICAgZGVmIHRlc3RfY2Fw
dHVyaW5nX3JlYWRvdXRlcnJfZGVjb2RlX2Vycm9yX2hhbmRsaW5nKHNlbGYpOgorICAgICAgICBj
YXAgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAgICAjIHRyaWdnZXJlZCBhIGludGVybmFsIGVy
cm9yIGluIHB5dGVzdAorICAgICAgICBwcmludCgnXHhhNicpCisgICAgICAgIG91dCwgZXJyID0g
Y2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0ID09IHB5LmJ1aWx0aW4uX3RvdGV4
dCgnXHVmZmZkXG4nLCAndW5pY29kZS1lc2NhcGUnKQorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5n
X21peGVkKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUobWl4ZWQ9VHJ1ZSkK
KyAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8gIikKKyAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgid29ybGQiKQorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIuIikKKyAgICAgICAgb3V0
LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQgb3V0LnN0cmlwKCkgPT0gImhlbGxv
IHdvcmxkLiIKKyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKworICAgIGRlZiB0ZXN0X3Jlc2V0X3R3
aWNlX2Vycm9yKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAg
ICBwcmludCAoImhlbGxvIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAg
ICBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBjYXAucmVzZXQpCisgICAgICAgIGFzc2VydCBv
dXQgPT0gImhlbGxvXG4iCisgICAgICAgIGFzc2VydCBub3QgZXJyCisKKyAgICBkZWYgdGVzdF9j
YXB0dXJpbmdfbW9kaWZ5X3N5c291dGVycl9pbl9iZXR3ZWVuKHNlbGYpOgorICAgICAgICBvbGRv
dXQgPSBzeXMuc3Rkb3V0CisgICAgICAgIG9sZGVyciA9IHN5cy5zdGRlcnIKKyAgICAgICAgY2Fw
ID0gc2VsZi5nZXRjYXB0dXJlKCkKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQor
ICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgICAgICAgIHN5cy5zdGRvdXQgPSBw
eS5pby5UZXh0SU8oKQorICAgICAgICBzeXMuc3RkZXJyID0gcHkuaW8uVGV4dElPKCkKKyAgICAg
ICAgcHJpbnQgKCJub3Qgc2VlbiIpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIm5vdCBzZWVu
XG4iKQorICAgICAgICBvdXQsIGVyciA9IGNhcC5yZXNldCgpCisgICAgICAgIGFzc2VydCBvdXQg
PT0gImhlbGxvIgorICAgICAgICBhc3NlcnQgZXJyID09ICJ3b3JsZCIKKyAgICAgICAgYXNzZXJ0
IHN5cy5zdGRvdXQgPT0gb2xkb3V0CisgICAgICAgIGFzc2VydCBzeXMuc3RkZXJyID09IG9sZGVy
cgorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX2Vycm9yX3JlY3Vyc2l2ZShzZWxmKToKKyAgICAg
ICAgY2FwMSA9IHNlbGYuZ2V0Y2FwdHVyZSgpCisgICAgICAgIHByaW50ICgiY2FwMSIpCisgICAg
ICAgIGNhcDIgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAgICBwcmludCAoImNhcDIiKQorICAg
ICAgICBvdXQyLCBlcnIyID0gY2FwMi5yZXNldCgpCisgICAgICAgIG91dDEsIGVycjEgPSBjYXAx
LnJlc2V0KCkKKyAgICAgICAgYXNzZXJ0IG91dDEgPT0gImNhcDFcbiIKKyAgICAgICAgYXNzZXJ0
IG91dDIgPT0gImNhcDJcbiIKKworICAgIGRlZiB0ZXN0X2p1c3Rfb3V0X2NhcHR1cmUoc2VsZik6
CisgICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2FwdHVyZShvdXQ9VHJ1ZSwgZXJyPUZhbHNlKQorICAg
ICAgICBzeXMuc3Rkb3V0LndyaXRlKCJoZWxsbyIpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUo
IndvcmxkIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQg
b3V0ID09ICJoZWxsbyIKKyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKworICAgIGRlZiB0ZXN0X2p1
c3RfZXJyX2NhcHR1cmUoc2VsZik6CisgICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2FwdHVyZShvdXQ9
RmFsc2UsIGVycj1UcnVlKQorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJoZWxsbyIpCisgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVz
ZXQoKQorICAgICAgICBhc3NlcnQgZXJyID09ICJ3b3JsZCIKKyAgICAgICAgYXNzZXJ0IG5vdCBv
dXQKKworICAgIGRlZiB0ZXN0X3N0ZGluX3Jlc3RvcmVkKHNlbGYpOgorICAgICAgICBvbGQgPSBz
eXMuc3RkaW4KKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0dXJlKGluXz1UcnVlKQorICAgICAg
ICBuZXdzdGRpbiA9IHN5cy5zdGRpbgorICAgICAgICBvdXQsIGVyciA9IGNhcC5yZXNldCgpCisg
ICAgICAgIGFzc2VydCBuZXdzdGRpbiAhPSBzeXMuc3RkaW4KKyAgICAgICAgYXNzZXJ0IHN5cy5z
dGRpbiBpcyBvbGQKKworICAgIGRlZiB0ZXN0X3N0ZGluX251bGxlZF9ieV9kZWZhdWx0KHNlbGYp
OgorICAgICAgICBwcmludCAoIlhYWCB0aGlzIHRlc3QgbWF5IHdlbGwgaGFuZyBpbnN0ZWFkIG9m
IGNyYXNoaW5nIikKKyAgICAgICAgcHJpbnQgKCJYWFggd2hpY2ggaW5kaWNhdGVzIGFuIGVycm9y
IGluIHRoZSB1bmRlcmx5aW5nIGNhcHR1cmluZyIpCisgICAgICAgIHByaW50ICgiWFhYIG1lY2hh
bmlzbXMiKQorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAgICBweS50ZXN0
LnJhaXNlcyhJT0Vycm9yLCAic3lzLnN0ZGluLnJlYWQoKSIpCisgICAgICAgIG91dCwgZXJyID0g
Y2FwLnJlc2V0KCkKKworICAgIGRlZiB0ZXN0X3N1c3BlbmRfcmVzdW1lKHNlbGYpOgorICAgICAg
ICBjYXAgPSBzZWxmLmdldGNhcHR1cmUob3V0PVRydWUsIGVycj1GYWxzZSwgaW5fPUZhbHNlKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBwcmludCAoImhlbGxvIikKKyAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoImVycm9yXG4iKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAuc3Vz
cGVuZCgpCisgICAgICAgICAgICBhc3NlcnQgb3V0ID09ICJoZWxsb1xuIgorICAgICAgICAgICAg
YXNzZXJ0IG5vdCBlcnIKKyAgICAgICAgICAgIHByaW50ICgiaW4gYmV0d2VlbiIpCisgICAgICAg
ICAgICBzeXMuc3RkZXJyLndyaXRlKCJpbiBiZXR3ZWVuXG4iKQorICAgICAgICAgICAgY2FwLnJl
c3VtZSgpCisgICAgICAgICAgICBwcmludCAoImFmdGVyIikKKyAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoImVycm9yX2FmdGVyXG4iKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
b3V0LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQgb3V0ID09ICJhZnRlclxuIgor
ICAgICAgICBhc3NlcnQgbm90IGVycgorCitjbGFzcyBUZXN0U3RkQ2FwdHVyZU5vdE5vdyhUZXN0
U3RkQ2FwdHVyZSk6CisgICAgZGVmIGdldGNhcHR1cmUoc2VsZiwgKiprdyk6CisgICAgICAgIGt3
Wydub3cnXSA9IEZhbHNlCisgICAgICAgIGNhcCA9IHB5LmlvLlN0ZENhcHR1cmUoKiprdykKKyAg
ICAgICAgY2FwLnN0YXJ0YWxsKCkKKyAgICAgICAgcmV0dXJuIGNhcAorCitjbGFzcyBUZXN0U3Rk
Q2FwdHVyZUZEKFRlc3RTdGRDYXB0dXJlKToKKyAgICBweXRlc3RtYXJrID0gbmVlZHNkdXAKKwor
ICAgIGRlZiBnZXRjYXB0dXJlKHNlbGYsICoqa3cpOgorICAgICAgICByZXR1cm4gcHkuaW8uU3Rk
Q2FwdHVyZUZEKCoqa3cpCisKKyAgICBkZWYgdGVzdF9pbnRlcm1pbmdsaW5nKHNlbGYpOgorICAg
ICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAgICBvc3dyaXRlYnl0ZXMoMSwgIjEi
KQorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKHN0cigyKSkKKyAgICAgICAgc3lzLnN0ZG91dC5m
bHVzaCgpCisgICAgICAgIG9zd3JpdGVieXRlcygxLCAiMyIpCisgICAgICAgIG9zd3JpdGVieXRl
cygyLCAiYSIpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImIiKQorICAgICAgICBzeXMuc3Rk
ZXJyLmZsdXNoKCkKKyAgICAgICAgb3N3cml0ZWJ5dGVzKDIsICJjIikKKyAgICAgICAgb3V0LCBl
cnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQgb3V0ID09ICIxMjMiCisgICAgICAgIGFz
c2VydCBlcnIgPT0gImFiYyIKKworICAgIGRlZiB0ZXN0X2NhbGxjYXB0dXJlKHNlbGYpOgorICAg
ICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAgICAgIHByaW50ICh4KQorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZShzdHIoeSkpCisgICAgICAgICAgICByZXR1cm4gNDIKKworICAgICAg
ICByZXMsIG91dCwgZXJyID0gcHkuaW8uU3RkQ2FwdHVyZUZELmNhbGwoZnVuYywgMywgeT00KQor
ICAgICAgICBhc3NlcnQgcmVzID09IDQyCisgICAgICAgIGFzc2VydCBvdXQuc3RhcnRzd2l0aCgi
MyIpCisgICAgICAgIGFzc2VydCBlcnIuc3RhcnRzd2l0aCgiNCIpCisKKyAgICBkZWYgdGVzdF9t
YW55KHNlbGYsIGNhcGZkKToKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGZvciBpIGlu
IHJhbmdlKDEwKToKKyAgICAgICAgICAgICAgICBjYXAgPSBweS5pby5TdGRDYXB0dXJlRkQoKQor
ICAgICAgICAgICAgICAgIGNhcC5yZXNldCgpCisgICAgICAgIGxzb2ZfY2hlY2soZikKKworY2xh
c3MgVGVzdFN0ZENhcHR1cmVGRE5vdE5vdyhUZXN0U3RkQ2FwdHVyZUZEKToKKyAgICBweXRlc3Rt
YXJrID0gbmVlZHNkdXAKKworICAgIGRlZiBnZXRjYXB0dXJlKHNlbGYsICoqa3cpOgorICAgICAg
ICBrd1snbm93J10gPSBGYWxzZQorICAgICAgICBjYXAgPSBweS5pby5TdGRDYXB0dXJlRkQoKipr
dykKKyAgICAgICAgY2FwLnN0YXJ0YWxsKCkKKyAgICAgICAgcmV0dXJuIGNhcAorCitAbmVlZHNk
dXAKK2RlZiB0ZXN0X3N0ZGNhcHR1cmVfZmRfdG1wZmlsZSh0bXBmaWxlKToKKyAgICBjYXBmZCA9
IHB5LmlvLlN0ZENhcHR1cmVGRChvdXQ9dG1wZmlsZSkKKyAgICBvcy53cml0ZSgxLCAiaGVsbG8i
LmVuY29kZSgiYXNjaWkiKSkKKyAgICBvcy53cml0ZSgyLCAid29ybGQiLmVuY29kZSgiYXNjaWki
KSkKKyAgICBvdXRmLCBlcnJmID0gY2FwZmQuZG9uZSgpCisgICAgYXNzZXJ0IG91dGYgPT0gdG1w
ZmlsZQorCitjbGFzcyBUZXN0U3RkQ2FwdHVyZUZEaW52YWxpZEZEOgorICAgIHB5dGVzdG1hcmsg
PSBuZWVkc2R1cAorICAgIGRlZiB0ZXN0X3N0ZGNhcHR1cmVfZmRfaW52YWxpZF9mZChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5LCBvcworICAgICAgICAgICAgZGVmIHRlc3Rfc3Rkb3V0KCk6CisgICAgICAgICAgICAg
ICAgb3MuY2xvc2UoMSkKKyAgICAgICAgICAgICAgICBjYXAgPSBweS5pby5TdGRDYXB0dXJlRkQo
b3V0PVRydWUsIGVycj1GYWxzZSwgaW5fPUZhbHNlKQorICAgICAgICAgICAgICAgIGNhcC5kb25l
KCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3N0ZGVycigpOgorICAgICAgICAgICAgICAgIG9zLmNs
b3NlKDIpCisgICAgICAgICAgICAgICAgY2FwID0gcHkuaW8uU3RkQ2FwdHVyZUZEKG91dD1GYWxz
ZSwgZXJyPVRydWUsIGluXz1GYWxzZSkKKyAgICAgICAgICAgICAgICBjYXAuZG9uZSgpCisgICAg
ICAgICAgICBkZWYgdGVzdF9zdGRpbigpOgorICAgICAgICAgICAgICAgIG9zLmNsb3NlKDApCisg
ICAgICAgICAgICAgICAgY2FwID0gcHkuaW8uU3RkQ2FwdHVyZUZEKG91dD1GYWxzZSwgZXJyPUZh
bHNlLCBpbl89VHJ1ZSkKKyAgICAgICAgICAgICAgICBjYXAuZG9uZSgpCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY2FwdHVyZT1mZCIpCisgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5wYXJzZW91
dGNvbWVzKClbJ3Bhc3NlZCddID09IDMKKworZGVmIHRlc3RfY2FwdHVyZV9ub3Rfc3RhcnRlZF9i
dXRfcmVzZXQoKToKKyAgICBjYXBzeXMgPSBweS5pby5TdGRDYXB0dXJlKG5vdz1GYWxzZSkKKyAg
ICBjYXBzeXMuZG9uZSgpCisgICAgY2Fwc3lzLmRvbmUoKQorICAgIGNhcHN5cy5yZXNldCgpCisK
K0BuZWVkc2R1cAorZGVmIHRlc3RfY2FwdHVyZV9ub19zeXMoKToKKyAgICBjYXBzeXMgPSBweS5p
by5TdGRDYXB0dXJlKCkKKyAgICB0cnk6CisgICAgICAgIGNhcCA9IHB5LmlvLlN0ZENhcHR1cmVG
RChwYXRjaHN5cz1GYWxzZSkKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAg
ICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgICAgICAgIG9zd3JpdGVieXRlcygxLCAi
MSIpCisgICAgICAgIG9zd3JpdGVieXRlcygyLCAiMiIpCisgICAgICAgIG91dCwgZXJyID0gY2Fw
LnJlc2V0KCkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAiMSIKKyAgICAgICAgYXNzZXJ0IGVyciA9
PSAiMiIKKyAgICBmaW5hbGx5OgorICAgICAgICBjYXBzeXMucmVzZXQoKQorCitAbmVlZHNkdXAK
K2RlZiB0ZXN0X2NhbGxjYXB0dXJlX25vZmQoKToKKyAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAg
ICAgb3N3cml0ZWJ5dGVzKDEsICJoZWxsbyIpCisgICAgICAgIG9zd3JpdGVieXRlcygyLCAiaGVs
bG8iKQorICAgICAgICBwcmludCAoeCkKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZShzdHIoeSkp
CisgICAgICAgIHJldHVybiA0MgorCisgICAgY2FwZmQgPSBweS5pby5TdGRDYXB0dXJlRkQocGF0
Y2hzeXM9RmFsc2UpCisgICAgdHJ5OgorICAgICAgICByZXMsIG91dCwgZXJyID0gcHkuaW8uU3Rk
Q2FwdHVyZS5jYWxsKGZ1bmMsIDMsIHk9NCkKKyAgICBmaW5hbGx5OgorICAgICAgICBjYXBmZC5y
ZXNldCgpCisgICAgYXNzZXJ0IHJlcyA9PSA0MgorICAgIGFzc2VydCBvdXQuc3RhcnRzd2l0aCgi
MyIpCisgICAgYXNzZXJ0IGVyci5zdGFydHN3aXRoKCI0IikKKworQG5lZWRzZHVwCitAcHkudGVz
dC5tYXJrLnBhcmFtZXRyaXplKCd1c2UnLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3RfZmRjYXB0
dXJlX3RtcGZpbGVfcmVtYWluc190aGVfc2FtZSh0bXBmaWxlLCB1c2UpOgorICAgIGlmIG5vdCB1
c2U6CisgICAgICAgIHRtcGZpbGUgPSBUcnVlCisgICAgY2FwID0gcHkuaW8uU3RkQ2FwdHVyZUZE
KG91dD1GYWxzZSwgZXJyPXRtcGZpbGUsIG5vdz1GYWxzZSkKKyAgICBjYXAuc3RhcnRhbGwoKQor
ICAgIGNhcGZpbGUgPSBjYXAuZXJyLnRtcGZpbGUKKyAgICBjYXAuc3VzcGVuZCgpCisgICAgY2Fw
LnJlc3VtZSgpCisgICAgY2FwZmlsZTIgPSBjYXAuZXJyLnRtcGZpbGUKKyAgICBhc3NlcnQgY2Fw
ZmlsZTIgPT0gY2FwZmlsZQorCitAcHkudGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtZXRob2QnLCBb
J1N0ZENhcHR1cmUnLCAnU3RkQ2FwdHVyZUZEJ10pCitkZWYgdGVzdF9jYXB0dXJpbmdfYW5kX2xv
Z2dpbmdfZnVuZGFtZW50YWxzKHRlc3RkaXIsIG1ldGhvZCk6CisgICAgaWYgbWV0aG9kID09ICJT
dGRDYXB0dXJlRkQiIGFuZCBub3QgaGFzYXR0cihvcywgJ2R1cCcpOgorICAgICAgICBweS50ZXN0
LnNraXAoIm5lZWQgb3MuZHVwIikKKyAgICAjIGhlcmUgd2UgY2hlY2sgYSBmdW5kYW1lbnRhbCBm
ZWF0dXJlCisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHN5
cywgb3MKKyAgICAgICAgaW1wb3J0IHB5LCBsb2dnaW5nCisgICAgICAgIGNhcCA9IHB5LmlvLiVz
KG91dD1GYWxzZSwgaW5fPUZhbHNlKQorCisgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8xIikK
KyAgICAgICAgb3V0ZXJyID0gY2FwLnN1c3BlbmQoKQorICAgICAgICBwcmludCAoInN1c3BlbmQs
IGNhcHR1cmVkICUlcyIgJSUob3V0ZXJyLCkpCisgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8y
IikKKworICAgICAgICBjYXAucmVzdW1lKCkKKyAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzMi
KQorCisgICAgICAgIG91dGVyciA9IGNhcC5zdXNwZW5kKCkKKyAgICAgICAgcHJpbnQgKCJzdXNw
ZW5kMiwgY2FwdHVyZWQgJSVzIiAlJSAob3V0ZXJyLCkpCisgICAgIiIiICUgKG1ldGhvZCwpKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgInN1c3BlbmQsIGNhcHR1cmVkKmhlbGxvMSoiLAorICAgICAg
ICAic3VzcGVuZDIsIGNhcHR1cmVkKmhlbGxvMipXQVJOSU5HOnJvb3Q6aGVsbG8zKiIsCisgICAg
XSkKKyAgICBhc3NlcnQgImF0ZXhpdCIgbm90IGluIHJlc3VsdC5zdGRlcnIuc3RyKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF9zYWZlcmVwci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9pb18vdGVzdF9zYWZlcmVwci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2JlMTQxNmZlYzZiNDY3ODIy
ZjkyODEyOWE3YTJlMjY2MTRkMWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2lvXy90ZXN0X3NhZmVyZXByLnB5CkBAIC0wLDAgKzEsNzUgQEAKKyMgLSotIGNvZGluZzogdXRm
LTggLSotCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZ2VuZXJhdG9ycworaW1wb3J0IHB5Citp
bXBvcnQgc3lzCisKK3NhZmVyZXByID0gcHkuaW8uc2FmZXJlcHIKKworY2xhc3MgVGVzdFNhZmVS
ZXByOgorICAgIGRlZiB0ZXN0X3NpbXBsZV9yZXByKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2Fm
ZXJlcHIoMSkgPT0gJzEnCisgICAgICAgIGFzc2VydCBzYWZlcmVwcihOb25lKSA9PSAnTm9uZScK
KworICAgIGRlZiB0ZXN0X21heHNpemUoc2VsZik6CisgICAgICAgIHMgPSBzYWZlcmVwcigneCcq
NTAsIG1heHNpemU9MjUpCisgICAgICAgIGFzc2VydCBsZW4ocykgPT0gMjUKKyAgICAgICAgZXhw
ZWN0ZWQgPSByZXByKCd4JyoxMCArICcuLi4nICsgJ3gnKjEwKQorICAgICAgICBhc3NlcnQgcyA9
PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfbWF4c2l6ZV9lcnJvcl9vbl9pbnN0YW5jZShzZWxm
KToKKyAgICAgICAgY2xhc3MgQToKKyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCcuLi4nKQorCisgICAgICAgIHMgPSBzYWZl
cmVwcigoJyonKjUwLCBBKCkpLCBtYXhzaXplPTI1KQorICAgICAgICBhc3NlcnQgbGVuKHMpID09
IDI1CisgICAgICAgIGFzc2VydCBzWzBdID09ICcoJyBhbmQgc1stMV0gPT0gJyknCisKKyAgICBk
ZWYgdGVzdF9leGNlcHRpb25zKHNlbGYpOgorICAgICAgICBjbGFzcyBCcm9rZW5SZXByOgorICAg
ICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4KToKKyAgICAgICAgICAgICAgICBzZWxmLmV4
ID0gZXgKKyAgICAgICAgICAgICAgICBmb28gPSAwCisgICAgICAgICAgICBkZWYgX19yZXByX18o
c2VsZik6CisgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5leAorICAgICAgICBjbGFzcyBCcm9r
ZW5SZXByRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgICAgICAgICBfX3N0cl9fID0gTm9uZQor
ICAgICAgICAgICAgX19yZXByX18gPSBOb25lCisgICAgICAgIGFzc2VydCAnRXhjZXB0aW9uJyBp
biBzYWZlcmVwcihCcm9rZW5SZXByKEV4Y2VwdGlvbigiYnJva2VuIikpKQorICAgICAgICBzID0g
c2FmZXJlcHIoQnJva2VuUmVwckV4Y2VwdGlvbigicmVhbGx5IGJyb2tlbiIpKQorICAgICAgICBh
c3NlcnQgJ1R5cGVFcnJvcicgaW4gcworICAgICAgICBhc3NlcnQgJ1R5cGVFcnJvcicgaW4gc2Fm
ZXJlcHIoQnJva2VuUmVwcigic3RyaW5nIikpCisKKyAgICAgICAgczIgPSBzYWZlcmVwcihCcm9r
ZW5SZXByKEJyb2tlblJlcHJFeGNlcHRpb24oJ29tZyBldmVuIHdvcnNlJykpKQorICAgICAgICBh
c3NlcnQgJ05hbWVFcnJvcicgbm90IGluIHMyCisgICAgICAgIGFzc2VydCAndW5rbm93bicgaW4g
czIKKworICAgIGRlZiB0ZXN0X2JpZ19yZXByKHNlbGYpOgorICAgICAgICBmcm9tIHB5Ll9pby5z
YWZlcmVwciBpbXBvcnQgU2FmZVJlcHIKKyAgICAgICAgYXNzZXJ0IGxlbihzYWZlcmVwcihyYW5n
ZSgxMDAwKSkpIDw9IFwKKyAgICAgICAgICAgICAgIGxlbignWycgKyBTYWZlUmVwcigpLm1heGxp
c3QgKiAiMTAwMCIgKyAnXScpCisKKyAgICBkZWYgdGVzdF9yZXByX29uX25ld3N0eWxlKHNlbGYp
OgorICAgICAgICBjbGFzcyBGdW5jdGlvbihvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAiPCVzPiIgJShzZWxmLm5hbWUpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHMgPSBzYWZlcmVwcihGdW5jdGlvbigpKQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcHkudGVzdC5mYWlsKCJzYWZlcmVwciBm
YWlsZWQgZm9yIG5ld3N0eWxlIGNsYXNzIikKKworICAgIGRlZiB0ZXN0X3VuaWNvZGUoc2VsZik6
CisgICAgICAgIHZhbCA9IHB5LmJ1aWx0aW4uX3RvdGV4dCgnwqPigqwnLCAndXRmLTgnKQorICAg
ICAgICByZXBydmFsID0gcHkuYnVpbHRpbi5fdG90ZXh0KCInwqPigqwnIiwgJ3V0Zi04JykKKyAg
ICAgICAgYXNzZXJ0IHNhZmVyZXByKHZhbCkgPT0gcmVwcnZhbAorCitkZWYgdGVzdF91bmljb2Rl
X2hhbmRsaW5nKCk6CisgICAgdmFsdWUgPSBweS5idWlsdGluLl90b3RleHQoJ1x4YzRceDg1XHhj
NFx4ODdcbicsICd1dGYtOCcpLmVuY29kZSgndXRmOCcpCisgICAgZGVmIGYoKToKKyAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKHZhbHVlKQorICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhFeGNl
cHRpb24sIGYpCisgICAgcyA9IHN0cihleGNpbmZvKQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9b
MF0gPCAzOgorICAgICAgICB1ID0gdW5pY29kZShleGNpbmZvKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcv
aW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U5ZWJmNDA5ZWM2OGE5ZmEx
MTdhNjgyYjI5Y2YyMDIxMTU2OThmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9pb18vdGVzdF90ZXJtaW5hbHdyaXRlci5weQpAQCAtMCwwICsxLDI5MiBAQAorCitpbXBvcnQg
cHkKK2ltcG9ydCBvcywgc3lzCitmcm9tIHB5Ll9pbyBpbXBvcnQgdGVybWluYWx3cml0ZXIKK2lt
cG9ydCBjb2RlY3MKK2ltcG9ydCBweXRlc3QKKworZGVmIHRlc3RfZ2V0X3Rlcm1pbmFsX3dpZHRo
KCk6CisgICAgeCA9IHB5LmlvLmdldF90ZXJtaW5hbF93aWR0aAorICAgIGFzc2VydCB4ID09IHRl
cm1pbmFsd3JpdGVyLmdldF90ZXJtaW5hbF93aWR0aAorCitkZWYgdGVzdF9nZXRkaW1lbnNpb25z
KG1vbmtleXBhdGNoKToKKyAgICBmY250bCA9IHB5LnRlc3QuaW1wb3J0b3Jza2lwKCJmY250bCIp
CisgICAgaW1wb3J0IHN0cnVjdAorICAgIGwgPSBbXQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
ZmNudGwsICdpb2N0bCcsIGxhbWJkYSAqYXJnczogbC5hcHBlbmQoYXJncykpCisgICAgdHJ5Ogor
ICAgICAgICB0ZXJtaW5hbHdyaXRlci5fZ2V0ZGltZW5zaW9ucygpCisgICAgZXhjZXB0IChUeXBl
RXJyb3IsIHN0cnVjdC5lcnJvcik6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgbGVuKGwpID09
IDEKKyAgICBhc3NlcnQgbFswXVswXSA9PSAxCisKK2RlZiB0ZXN0X3Rlcm1pbmFsX3dpZHRoX0NP
TFVNTlMobW9ua2V5cGF0Y2gpOgorICAgICIiIiBEdW1teSB0ZXN0IGZvciBnZXRfdGVybWluYWxf
d2lkdGgKKyAgICAiIiIKKyAgICBmY250bCA9IHB5LnRlc3QuaW1wb3J0b3Jza2lwKCJmY250bCIp
CisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihmY250bCwgJ2lvY3RsJywgbGFtYmRhICphcmdzOiBp
bnQoJ3gnKSkKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0NPTFVNTlMnLCAnNDInKQorICAgIGFz
c2VydCB0ZXJtaW5hbHdyaXRlci5nZXRfdGVybWluYWxfd2lkdGgoKSA9PSA0MgorICAgIG1vbmtl
eXBhdGNoLmRlbGVudignQ09MVU1OUycsIHJhaXNpbmc9RmFsc2UpCisKK2RlZiB0ZXN0X3Rlcm1p
bmFsd3JpdGVyX2RlZmF1bHR3aWR0aF84MChtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0Y2gu
c2V0YXR0cih0ZXJtaW5hbHdyaXRlciwgJ19nZXRkaW1lbnNpb25zJywgbGFtYmRhOiAwLzApCisg
ICAgbW9ua2V5cGF0Y2guZGVsZW52KCdDT0xVTU5TJywgcmFpc2luZz1GYWxzZSkKKyAgICB0dyA9
IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKKyAgICBhc3NlcnQgdHcuZnVsbHdpZHRoID09IDgwCisK
K2RlZiB0ZXN0X3Rlcm1pbmFsd3JpdGVyX2dldGRpbWVuc2lvbnNfYm9ndXMobW9ua2V5cGF0Y2gp
OgorICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGVybWluYWx3cml0ZXIsICdfZ2V0ZGltZW5zaW9u
cycsIGxhbWJkYTogKDEwLDEwKSkKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYoJ0NPTFVNTlMnLCBy
YWlzaW5nPUZhbHNlKQorICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKQorICAgIGFzc2Vy
dCB0dy5mdWxsd2lkdGggPT0gODAKKworZGVmIHRlc3RfdGVybWluYWx3cml0ZXJfZ2V0ZGltZW5z
aW9uc19lbWFjcyhtb25rZXlwYXRjaCk6CisgICAgIyBlbWFjcyB0ZXJtaW5hbCByZXR1cm5zICgw
LDApIGJ1dCBzZXQgQ09MVU1OUyBwcm9wZXJseQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGVy
bWluYWx3cml0ZXIsICdfZ2V0ZGltZW5zaW9ucycsIGxhbWJkYTogKDAsMCkpCisgICAgbW9ua2V5
cGF0Y2guc2V0ZW52KCdDT0xVTU5TJywgJzQyJykKKyAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3Jp
dGVyKCkKKyAgICBhc3NlcnQgdHcuZnVsbHdpZHRoID09IDQyCisKK2RlZiB0ZXN0X3Rlcm1pbmFs
d3JpdGVyX2NvbXB1dGVzX3dpZHRoKG1vbmtleXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKHRlcm1pbmFsd3JpdGVyLCAnZ2V0X3Rlcm1pbmFsX3dpZHRoJywgbGFtYmRhOiA0MikKKyAg
ICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKKyAgICBhc3NlcnQgdHcuZnVsbHdpZHRoID09
IDQyCisKK2RlZiB0ZXN0X3Rlcm1pbmFsd3JpdGVyX2RlZmF1bHRfaW5zdGFudGlhdGlvbigpOgor
ICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1ZSkKKyAgICBhc3NlcnQg
aGFzYXR0cih0dywgJ3N0cmluZ2lvJykKKworZGVmIHRlc3RfdGVybWluYWx3cml0ZXJfZHVtYl90
ZXJtX25vX21hcmt1cChtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywg
J2Vudmlyb24nLCB7J1RFUk0nOiAnZHVtYicsICdQQVRIJzogJyd9KQorICAgIGNsYXNzIE15Rmls
ZToKKyAgICAgICAgY2xvc2VkID0gRmFsc2UKKyAgICAgICAgZGVmIGlzYXR0eShzZWxmKToKKyAg
ICAgICAgICAgIHJldHVybiBUcnVlCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICdzdGRv
dXQnLCBNeUZpbGUoKSkKKyAgICB0cnk6CisgICAgICAgIGFzc2VydCBzeXMuc3Rkb3V0LmlzYXR0
eSgpCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKQorICAgICAgICBhc3NlcnQg
bm90IHR3Lmhhc21hcmt1cAorICAgIGZpbmFsbHk6CisgICAgICAgIG1vbmtleXBhdGNoLnVuZG8o
KQorCitkZWYgdGVzdF90ZXJtaW5hbHdyaXRlcl9maWxlX3VuaWNvZGUodG1wZGlyKToKKyAgICBm
ID0gY29kZWNzLm9wZW4oc3RyKHRtcGRpci5qb2luKCJ4eXoiKSksICJ3YiIsICJ1dGY4IikKKyAg
ICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKGZpbGU9ZikKKyAgICBhc3NlcnQgdHcuZW5jb2Rp
bmcgPT0gInV0ZjgiCisKK2RlZiB0ZXN0X3VuaWNvZGVfZW5jb2RpbmcoKToKKyAgICBtc2cgPSBw
eS5idWlsdGluLl90b3RleHQoJ2JcdTAwZjZ5JywgJ3V0ZjgnKQorICAgIGZvciBlbmNvZGluZyBp
biAndXRmOCcsICdsYXRpbjEnOgorICAgICAgICBsID0gW10KKyAgICAgICAgdHcgPSBweS5pby5U
ZXJtaW5hbFdyaXRlcihsLmFwcGVuZCwgZW5jb2Rpbmc9ZW5jb2RpbmcpCisgICAgICAgIHR3Lmxp
bmUobXNnKQorICAgICAgICBhc3NlcnQgbFswXS5zdHJpcCgpID09IG1zZy5lbmNvZGUoZW5jb2Rp
bmcpCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZW5jb2RpbmciLCBbImFzY2lpIl0pCitk
ZWYgdGVzdF91bmljb2RlX29uX2ZpbGVfd2l0aF9hc2NpaV9lbmNvZGluZyh0bXBkaXIsIG1vbmtl
eXBhdGNoLCBlbmNvZGluZyk6CisgICAgbXNnID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdoZWxsXHhm
NicsICJsYXRpbjEiKQorICAgICNweXRlc3QucmFpc2VzKFVuaWNvZGVFbmNvZGVFcnJvciwgbGFt
YmRhOiBieXRlcyhtc2cpKQorICAgIGYgPSBjb2RlY3Mub3BlbihzdHIodG1wZGlyLmpvaW4oIngi
KSksICJ3IiwgZW5jb2RpbmcpCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihmKQorICAg
IHR3LmxpbmUobXNnKQorICAgIGYuY2xvc2UoKQorICAgIHMgPSB0bXBkaXIuam9pbigieCIpLm9w
ZW4oInJiIikucmVhZCgpLnN0cmlwKCkKKyAgICBhc3NlcnQgZW5jb2RpbmcgPT0gImFzY2lpIgor
ICAgIGFzc2VydCBzID09IG1zZy5lbmNvZGUoInVuaWNvZGUtZXNjYXBlIikKKworCit3aW4zMiA9
IGludChzeXMucGxhdGZvcm0gPT0gIndpbjMyIikKK2NsYXNzIFRlc3RUZXJtaW5hbFdyaXRlcjoK
KyAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKHNlbGYsIG1ldGFmdW5jKToKKyAgICAgICAg
aWYgInR3IiBpbiBtZXRhZnVuYy5mdW5jYXJnbmFtZXM6CisgICAgICAgICAgICBtZXRhZnVuYy5h
ZGRjYWxsKGlkPSJwYXRoIiwgcGFyYW09InBhdGgiKQorICAgICAgICAgICAgbWV0YWZ1bmMuYWRk
Y2FsbChpZD0ic3RyaW5naW8iLCBwYXJhbT0ic3RyaW5naW8iKQorICAgICAgICAgICAgbWV0YWZ1
bmMuYWRkY2FsbChpZD0iY2FsbGFibGUiLCBwYXJhbT0iY2FsbGFibGUiKQorICAgIGRlZiBweXRl
c3RfZnVuY2FyZ19fdHcoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0g
PT0gInBhdGgiOgorICAgICAgICAgICAgdG1wZGlyID0gcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUo
InRtcGRpciIpCisgICAgICAgICAgICBwID0gdG1wZGlyLmpvaW4oInRtcGZpbGUiKQorICAgICAg
ICAgICAgZiA9IGNvZGVjcy5vcGVuKHN0cihwKSwgJ3crJywgZW5jb2Rpbmc9J3V0ZjgnKQorICAg
ICAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihmKQorICAgICAgICAgICAgZGVmIGdl
dGxpbmVzKCk6CisgICAgICAgICAgICAgICAgdHcuX2ZpbGUuZmx1c2goKQorICAgICAgICAgICAg
ICAgIHJldHVybiBjb2RlY3Mub3BlbihzdHIocCksICdyJywKKyAgICAgICAgICAgICAgICAgICAg
ZW5jb2Rpbmc9J3V0ZjgnKS5yZWFkbGluZXMoKQorICAgICAgICBlbGlmIHJlcXVlc3QucGFyYW0g
PT0gInN0cmluZ2lvIjoKKyAgICAgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3Ry
aW5naW89VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBnZXRsaW5lcygpOgorICAgICAgICAgICAgICAg
IHR3LnN0cmluZ2lvLnNlZWsoMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHcuc3RyaW5naW8u
cmVhZGxpbmVzKCkKKyAgICAgICAgZWxpZiByZXF1ZXN0LnBhcmFtID09ICJjYWxsYWJsZSI6Cisg
ICAgICAgICAgICB3cml0ZXMgPSBbXQorICAgICAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdy
aXRlcih3cml0ZXMuYXBwZW5kKQorICAgICAgICAgICAgZGVmIGdldGxpbmVzKCk6CisgICAgICAg
ICAgICAgICAgaW8gPSBweS5pby5UZXh0SU8oKQorICAgICAgICAgICAgICAgIGlvLndyaXRlKCIi
LmpvaW4od3JpdGVzKSkKKyAgICAgICAgICAgICAgICBpby5zZWVrKDApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGlvLnJlYWRsaW5lcygpCisgICAgICAgIHR3LmdldGxpbmVzID0gZ2V0bGluZXMK
KyAgICAgICAgdHcuZ2V0dmFsdWUgPSBsYW1iZGE6ICIiLmpvaW4oZ2V0bGluZXMoKSkKKyAgICAg
ICAgcmV0dXJuIHR3CisKKyAgICBkZWYgdGVzdF9saW5lKHNlbGYsIHR3KToKKyAgICAgICAgdHcu
bGluZSgiaGVsbG8iKQorICAgICAgICBsID0gdHcuZ2V0bGluZXMoKQorICAgICAgICBhc3NlcnQg
bGVuKGwpID09IDEKKyAgICAgICAgYXNzZXJ0IGxbMF0gPT0gImhlbGxvXG4iCisKKyAgICBkZWYg
dGVzdF9saW5lX3VuaWNvZGUoc2VsZiwgdHcpOgorICAgICAgICBmb3IgZW5jb2RpbmcgaW4gJ3V0
ZjgnLCAnbGF0aW4xJzoKKyAgICAgICAgICAgIHR3Ll9lbmNvZGluZyA9IGVuY29kaW5nCisgICAg
ICAgICAgICBtc2cgPSBweS5idWlsdGluLl90b3RleHQoJ2JcdTAwZjZ5JywgJ3V0ZjgnKQorICAg
ICAgICAgICAgdHcubGluZShtc2cpCisgICAgICAgICAgICBsID0gdHcuZ2V0bGluZXMoKQorICAg
ICAgICAgICAgYXNzZXJ0IGxbMF0gPT0gbXNnICsgIlxuIgorCisgICAgZGVmIHRlc3Rfc2VwX25v
X3RpdGxlKHNlbGYsIHR3KToKKyAgICAgICAgdHcuc2VwKCItIiwgZnVsbHdpZHRoPTYwKQorICAg
ICAgICBsID0gdHcuZ2V0bGluZXMoKQorICAgICAgICBhc3NlcnQgbGVuKGwpID09IDEKKyAgICAg
ICAgYXNzZXJ0IGxbMF0gPT0gIi0iICogKDYwLXdpbjMyKSArICJcbiIKKworICAgIGRlZiB0ZXN0
X3NlcF93aXRoX3RpdGxlKHNlbGYsIHR3KToKKyAgICAgICAgdHcuc2VwKCItIiwgImhlbGxvIiwg
ZnVsbHdpZHRoPTYwKQorICAgICAgICBsID0gdHcuZ2V0bGluZXMoKQorICAgICAgICBhc3NlcnQg
bGVuKGwpID09IDEKKyAgICAgICAgYXNzZXJ0IGxbMF0gPT0gIi0iICogMjYgKyAiIGhlbGxvICIg
KyAiLSIgKiAoMjctd2luMzIpICsgIlxuIgorCisgICAgQHB5LnRlc3QubWFyay5za2lwaWYoInN5
cy5wbGF0Zm9ybSA9PSAnd2luMzInIikKKyAgICBkZWYgdGVzdF9fZXNjYXBlZChzZWxmLCB0dyk6
CisgICAgICAgIHRleHQyID0gdHcuX2VzY2FwZWQoImhlbGxvIiwgKDMxKSkKKyAgICAgICAgYXNz
ZXJ0IHRleHQyLmZpbmQoImhlbGxvIikgIT0gLTEKKworICAgIEBweS50ZXN0Lm1hcmsuc2tpcGlm
KCJzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyIpCisgICAgZGVmIHRlc3RfbWFya3VwKHNlbGYsIHR3
KToKKyAgICAgICAgZm9yIGJvbGQgaW4gKFRydWUsIEZhbHNlKToKKyAgICAgICAgICAgIGZvciBj
b2xvciBpbiAoInJlZCIsICJncmVlbiIpOgorICAgICAgICAgICAgICAgIHRleHQyID0gdHcubWFy
a3VwKCJoZWxsbyIsICoqe2NvbG9yOiBUcnVlLCAnYm9sZCc6IGJvbGR9KQorICAgICAgICAgICAg
ICAgIGFzc2VydCB0ZXh0Mi5maW5kKCJoZWxsbyIpICE9IC0xCisgICAgICAgIHB5LnRlc3QucmFp
c2VzKFZhbHVlRXJyb3IsICJ0dy5tYXJrdXAoJ3gnLCB3cm9ua3c9MykiKQorICAgICAgICBweS50
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAidHcubWFya3VwKCd4Jywgd3Jvbmt3PTApIikKKworICAg
IGRlZiB0ZXN0X2xpbmVfd3JpdGVfbWFya3VwKHNlbGYsIHR3KToKKyAgICAgICAgdHcuaGFzbWFy
a3VwID0gVHJ1ZQorICAgICAgICB0dy5saW5lKCJ4IiwgYm9sZD1UcnVlKQorICAgICAgICB0dy53
cml0ZSgieFxuIiwgcmVkPVRydWUpCisgICAgICAgIGwgPSB0dy5nZXRsaW5lcygpCisgICAgICAg
IGlmIHN5cy5wbGF0Zm9ybSAhPSAid2luMzIiOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihsWzBd
KSA+PSAyLCBsCisgICAgICAgICAgICBhc3NlcnQgbGVuKGxbMV0pID49IDIsIGwKKworICAgIGRl
ZiB0ZXN0X2F0dHJfZnVsbHdpZHRoKHNlbGYsIHR3KToKKyAgICAgICAgdHcuc2VwKCItIiwgImhl
bGxvIiwgZnVsbHdpZHRoPTcwKQorICAgICAgICB0dy5mdWxsd2lkdGggPSA3MAorICAgICAgICB0
dy5zZXAoIi0iLCAiaGVsbG8iKQorICAgICAgICBsID0gdHcuZ2V0bGluZXMoKQorICAgICAgICBh
c3NlcnQgbGVuKGxbMF0pID09IGxlbihsWzFdKQorCisgICAgZGVmIHRlc3RfcmVsaW5lKHNlbGYs
IHR3KToKKyAgICAgICAgdHcubGluZSgiaGVsbG8iKQorICAgICAgICB0dy5oYXNtYXJrdXAgPSBG
YWxzZQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJkYTogdHcucmVsaW5l
KCJ4IikpCisgICAgICAgIHR3Lmhhc21hcmt1cCA9IFRydWUKKyAgICAgICAgdHcucmVsaW5lKCIw
IDEgMiIpCisgICAgICAgIHR3LmdldGxpbmVzKCkKKyAgICAgICAgbCA9IHR3LmdldHZhbHVlKCku
c3BsaXQoIlxuIikKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9PSAyCisgICAgICAgIHR3LnJlbGlu
ZSgiMCAxIDMiKQorICAgICAgICBsID0gdHcuZ2V0dmFsdWUoKS5zcGxpdCgiXG4iKQorICAgICAg
ICBhc3NlcnQgbGVuKGwpID09IDIKKyAgICAgICAgYXNzZXJ0IGxbMV0uZW5kc3dpdGgoIjAgMSAz
XHIiKQorICAgICAgICB0dy5saW5lKCJzbyIpCisgICAgICAgIGwgPSB0dy5nZXR2YWx1ZSgpLnNw
bGl0KCJcbiIpCisgICAgICAgIGFzc2VydCBsZW4obCkgPT0gMworICAgICAgICBhc3NlcnQgbFst
MV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IGxbMV0gPT0gKCIwIDEgMlxyMCAxIDNccnNvICAgIikK
KyAgICAgICAgYXNzZXJ0IGxbMF0gPT0gImhlbGxvIgorCisKK2RlZiB0ZXN0X3Rlcm1pbmFsX3dp
dGhfY2FsbGFibGVfd3JpdGVfYW5kX2ZsdXNoKCk6CisgICAgbCA9IHNldCgpCisgICAgY2xhc3Mg
ZmlsOgorICAgICAgICBmbHVzaCA9IGxhbWJkYSBzZWxmOiBsLmFkZCgiMSIpCisgICAgICAgIHdy
aXRlID0gbGFtYmRhIHNlbGYsIHg6IGwuYWRkKCIxIikKKyAgICAgICAgX19jYWxsX18gPSBsYW1i
ZGEgc2VsZiwgeDogbC5hZGQoIjIiKQorCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihm
aWwoKSkKKyAgICB0dy5saW5lKCJoZWxsbyIpCisgICAgYXNzZXJ0IGwgPT0gc2V0KFsiMSJdKQor
ICAgIGRlbCBmaWwuZmx1c2gKKyAgICBsLmNsZWFyKCkKKyAgICB0dyA9IHB5LmlvLlRlcm1pbmFs
V3JpdGVyKGZpbCgpKQorICAgIHR3LmxpbmUoImhlbGxvIikKKyAgICBhc3NlcnQgbCA9PSBzZXQo
WyIyIl0pCisKKworZGVmIHRlc3RfY2hhcnNfb25fY3VycmVudF9saW5lKCk6CisgICAgdHcgPSBw
eS5pby5UZXJtaW5hbFdyaXRlcihzdHJpbmdpbz1UcnVlKQorCisgICAgd3JpdHRlbiA9IFtdCisK
KyAgICBkZWYgd3JpdGVfYW5kX2NoZWNrKHMsIGV4cGVjdGVkKToKKyAgICAgICAgdHcud3JpdGUo
cywgYm9sZD1UcnVlKQorICAgICAgICB3cml0dGVuLmFwcGVuZChzKQorICAgICAgICBhc3NlcnQg
dHcuY2hhcnNfb25fY3VycmVudF9saW5lID09IGV4cGVjdGVkCisgICAgICAgIGFzc2VydCB0dy5z
dHJpbmdpby5nZXR2YWx1ZSgpID09ICcnLmpvaW4od3JpdHRlbikKKworICAgIHdyaXRlX2FuZF9j
aGVjaygnZm9vJywgMykKKyAgICB3cml0ZV9hbmRfY2hlY2soJ2JhcicsIDYpCisgICAgd3JpdGVf
YW5kX2NoZWNrKCdcbicsIDApCisgICAgd3JpdGVfYW5kX2NoZWNrKCdcbicsIDApCisgICAgd3Jp
dGVfYW5kX2NoZWNrKCdcblxuXG4nLCAwKQorICAgIHdyaXRlX2FuZF9jaGVjaygnXG5mb28nLCAz
KQorICAgIHdyaXRlX2FuZF9jaGVjaygnXG5mYmFyXG5oZWxsbycsIDUpCisgICAgd3JpdGVfYW5k
X2NoZWNrKCcxMCcsIDcpCisKKworQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0g
IndpbjMyIiwgcmVhc29uPSJ3aW4zMiBoYXMgbm8gbmF0aXZlIGFuc2kiKQorZGVmIHRlc3RfYXR0
cl9oYXNtYXJrdXAoKToKKyAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRy
dWUpCisgICAgYXNzZXJ0IG5vdCB0dy5oYXNtYXJrdXAKKyAgICB0dy5oYXNtYXJrdXAgPSBUcnVl
CisgICAgdHcubGluZSgiaGVsbG8iLCBib2xkPVRydWUpCisgICAgcyA9IHR3LnN0cmluZ2lvLmdl
dHZhbHVlKCkKKyAgICBhc3NlcnQgbGVuKHMpID4gbGVuKCJoZWxsb1xuIikKKyAgICBhc3NlcnQg
J1x4MWJbMW0nIGluIHMKKyAgICBhc3NlcnQgJ1x4MWJbMG0nIGluIHMKKworQHB5dGVzdC5tYXJr
LnNraXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwgcmVhc29uPSJ3aW4zMiBoYXMgbm8gbmF0
aXZlIGFuc2kiKQorZGVmIHRlc3RfYW5zaV9wcmludCgpOgorICAgICMgd2UgaGF2ZSBubyBlYXN5
IHdheSB0byBjb25zdHJ1Y3QgYSBmaWxlIHRoYXQKKyAgICAjIHJlcHJlc2VudHMgYSB0ZXJtaW5h
bAorICAgIGYgPSBweS5pby5UZXh0SU8oKQorICAgIGYuaXNhdHR5ID0gbGFtYmRhOiBUcnVlCisg
ICAgcHkuaW8uYW5zaV9wcmludCgiaGVsbG8iLCAweDMyLCBmaWxlPWYpCisgICAgdGV4dDIgPSBm
LmdldHZhbHVlKCkKKyAgICBhc3NlcnQgdGV4dDIuZmluZCgiaGVsbG8iKSAhPSAtMQorICAgIGFz
c2VydCBsZW4odGV4dDIpID49IGxlbigiaGVsbG9cbiIpCisgICAgYXNzZXJ0ICdceDFiWzUwbScg
aW4gdGV4dDIKKyAgICBhc3NlcnQgJ1x4MWJbMG0nIGluIHRleHQyCisKK2RlZiB0ZXN0X3Nob3Vs
ZF9kb19tYXJrdXBfUFlfQ09MT1JTX2VxXzEobW9ua2V5cGF0Y2gpOgorICAgIG1vbmtleXBhdGNo
LnNldGl0ZW0ob3MuZW52aXJvbiwgJ1BZX0NPTE9SUycsICcxJykKKyAgICB0dyA9IHB5LmlvLlRl
cm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCisgICAgYXNzZXJ0IHR3Lmhhc21hcmt1cAorICAg
IHR3LmxpbmUoImhlbGxvIiwgYm9sZD1UcnVlKQorICAgIHMgPSB0dy5zdHJpbmdpby5nZXR2YWx1
ZSgpCisgICAgYXNzZXJ0IGxlbihzKSA+IGxlbigiaGVsbG9cbiIpCisgICAgYXNzZXJ0ICdceDFi
WzFtJyBpbiBzCisgICAgYXNzZXJ0ICdceDFiWzBtJyBpbiBzCisKK2RlZiB0ZXN0X3Nob3VsZF9k
b19tYXJrdXBfUFlfQ09MT1JTX2VxXzAobW9ua2V5cGF0Y2gpOgorICAgIG1vbmtleXBhdGNoLnNl
dGl0ZW0ob3MuZW52aXJvbiwgJ1BZX0NPTE9SUycsICcwJykKKyAgICBmID0gcHkuaW8uVGV4dElP
KCkKKyAgICBmLmlzYXR0eSA9IGxhbWJkYTogVHJ1ZQorICAgIHR3ID0gcHkuaW8uVGVybWluYWxX
cml0ZXIoZmlsZT1mKQorICAgIGFzc2VydCBub3QgdHcuaGFzbWFya3VwCisgICAgdHcubGluZSgi
aGVsbG8iLCBib2xkPVRydWUpCisgICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgIGFzc2VydCBzID09
ICJoZWxsb1xuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9pb18vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc4OTI0
MjBiODBjODk0NjBmOGE4NDVlYzQzYzE3OGFjZTEwNDE2OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9pb18vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18v
dGVzdF9jYXB0dXJlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0X3NhZmVyZXByLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0X3Rlcm1pbmFsd3JpdGVyLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3RpbmcvbG9nL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2lu
aXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJj
MjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2luaXRfXy5weQpA
QCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3RfbG9nLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
ZXN0aW5nL2xvZy90ZXN0X2xvZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzcwNmQ5YjZhZDM0ZGM3OTMxYzRj
MmVjZWIzYjgyY2IzOTVkYjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xv
Zy90ZXN0X2xvZy5weQpAQCAtMCwwICsxLDE5MSBAQAoraW1wb3J0IHB5CisKK2Zyb20gcHkuX2xv
Zy5sb2cgaW1wb3J0IGRlZmF1bHRfa2V5d29yZG1hcHBlcgorCitjYWxsY2FwdHVyZSA9IHB5Lmlv
LlN0ZENhcHR1cmUuY2FsbAorCisKK2RlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICBtb2QuX29s
ZHN0YXRlID0gZGVmYXVsdF9rZXl3b3JkbWFwcGVyLmdldHN0YXRlKCkKKworZGVmIHRlYXJkb3du
X21vZHVsZShtb2QpOgorICAgIGRlZmF1bHRfa2V5d29yZG1hcHBlci5zZXRzdGF0ZShtb2QuX29s
ZHN0YXRlKQorCitjbGFzcyBUZXN0TG9nUHJvZHVjZXI6CisgICAgZGVmIHNldHVwX21ldGhvZChz
ZWxmLCBtZXRoKToKKyAgICAgICAgZnJvbSBweS5fbG9nLmxvZyBpbXBvcnQgZGVmYXVsdF9rZXl3
b3JkbWFwcGVyCisgICAgICAgIGRlZmF1bHRfa2V5d29yZG1hcHBlci5zZXRzdGF0ZShfb2xkc3Rh
dGUpCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZV9zZXRzdGF0ZShzZWxmKToKKyAgICAgICAgc3Rh
dGUgPSBweS5sb2cuX2dldHN0YXRlKCkKKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCJoZWxs
byIsIFtdLmFwcGVuZCkKKyAgICAgICAgc3RhdGUyID0gcHkubG9nLl9nZXRzdGF0ZSgpCisgICAg
ICAgIGFzc2VydCBzdGF0ZTIgIT0gc3RhdGUKKyAgICAgICAgcHkubG9nLl9zZXRzdGF0ZShzdGF0
ZSkKKyAgICAgICAgc3RhdGUzID0gcHkubG9nLl9nZXRzdGF0ZSgpCisgICAgICAgIGFzc2VydCBz
dGF0ZTMgPT0gc3RhdGUKKworICAgIGRlZiB0ZXN0X3Byb2R1Y2VyX3JlcHIoc2VsZik6CisgICAg
ICAgIGQgPSBweS5sb2cuUHJvZHVjZXIoImRlZmF1bHQiKQorICAgICAgICBhc3NlcnQgcmVwcihk
KS5maW5kKCdkZWZhdWx0JykgIT0gLTEKKworICAgIGRlZiB0ZXN0X3Byb2R1Y2Vfb25lX2tleXdv
cmQoc2VsZik6CisgICAgICAgIGwgPSBbXQorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoJ3Mx
JywgbC5hcHBlbmQpCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcignczEnKSgiaGVsbG8gd29ybGQi
KQorICAgICAgICBhc3NlcnQgbGVuKGwpID09IDEKKyAgICAgICAgbXNnID0gbFswXQorICAgICAg
ICBhc3NlcnQgbXNnLmNvbnRlbnQoKS5zdGFydHN3aXRoKCdoZWxsbyB3b3JsZCcpCisgICAgICAg
IGFzc2VydCBtc2cucHJlZml4KCkgPT0gJ1tzMV0gJworICAgICAgICBhc3NlcnQgc3RyKG1zZykg
PT0gIltzMV0gaGVsbG8gd29ybGQiCisKKyAgICBkZWYgdGVzdF9wcm9kdWNlcl9jbGFzcyhzZWxm
KToKKyAgICAgICAgcCA9IHB5LmxvZy5Qcm9kdWNlcigneDEnKQorICAgICAgICBsID0gW10KKyAg
ICAgICAgcHkubG9nLnNldGNvbnN1bWVyKHAuX2tleXdvcmRzLCBsLmFwcGVuZCkKKyAgICAgICAg
cCgiaGVsbG8iKQorICAgICAgICBhc3NlcnQgbGVuKGwpID09IDEKKyAgICAgICAgYXNzZXJ0IGxl
bihsWzBdLmtleXdvcmRzKSA9PSAxCisgICAgICAgIGFzc2VydCAneDEnID09IGxbMF0ua2V5d29y
ZHNbMF0KKworICAgIGRlZiB0ZXN0X3Byb2R1Y2VyX2NhY2hpbmcoc2VsZik6CisgICAgICAgIHAg
PSBweS5sb2cuUHJvZHVjZXIoJ3gxJykKKyAgICAgICAgeDIgPSBwLngyCisgICAgICAgIGFzc2Vy
dCB4MiBpcyBwLngyCisKK2NsYXNzIFRlc3RMb2dDb25zdW1lcjoKKyAgICBkZWYgc2V0dXBfbWV0
aG9kKHNlbGYsIG1ldGgpOgorICAgICAgICBkZWZhdWx0X2tleXdvcmRtYXBwZXIuc2V0c3RhdGUo
X29sZHN0YXRlKQorICAgIGRlZiB0ZXN0X2xvZ19ub25lKHNlbGYpOgorICAgICAgICBsb2cgPSBw
eS5sb2cuUHJvZHVjZXIoIlhYWCIpCisgICAgICAgIGwgPSBbXQorICAgICAgICBweS5sb2cuc2V0
Y29uc3VtZXIoJ1hYWCcsIGwuYXBwZW5kKQorICAgICAgICBsb2coIjEiKQorICAgICAgICBhc3Nl
cnQgbAorICAgICAgICBsWzpdID0gW10KKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCdYWFgn
LCBOb25lKQorICAgICAgICBsb2coIjIiKQorICAgICAgICBhc3NlcnQgbm90IGwKKworICAgIGRl
ZiB0ZXN0X2xvZ19kZWZhdWx0X3N0ZGVycihzZWxmKToKKyAgICAgICAgcmVzLCBvdXQsIGVyciA9
IGNhbGxjYXB0dXJlKHB5LmxvZy5Qcm9kdWNlcigiZGVmYXVsdCIpLCAiaGVsbG8iKQorICAgICAg
ICBhc3NlcnQgZXJyLnN0cmlwKCkgPT0gIltkZWZhdWx0XSBoZWxsbyIKKworICAgIGRlZiB0ZXN0
X3NpbXBsZV9jb25zdW1lcl9tYXRjaChzZWxmKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIHB5
LmxvZy5zZXRjb25zdW1lcigieDEiLCBsLmFwcGVuZCkKKyAgICAgICAgcCA9IHB5LmxvZy5Qcm9k
dWNlcigieDEgeDIiKQorICAgICAgICBwKCJoZWxsbyIpCisgICAgICAgIGFzc2VydCBsCisgICAg
ICAgIGFzc2VydCBsWzBdLmNvbnRlbnQoKSA9PSAiaGVsbG8iCisKKyAgICBkZWYgdGVzdF9zaW1w
bGVfY29uc3VtZXJfbWF0Y2hfMihzZWxmKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIHAgPSBw
eS5sb2cuUHJvZHVjZXIoIngxIHgyIikKKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKHAuX2tl
eXdvcmRzLCBsLmFwcGVuZCkKKyAgICAgICAgcCgiNDIiKQorICAgICAgICBhc3NlcnQgbAorICAg
ICAgICBhc3NlcnQgbFswXS5jb250ZW50KCkgPT0gIjQyIgorCisgICAgZGVmIHRlc3Rfbm9fYXV0
b19wcm9kdWNlcihzZWxmKToKKyAgICAgICAgcCA9IHB5LmxvZy5Qcm9kdWNlcigneCcpCisgICAg
ICAgIHB5LnRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCAicC5feCIpCisgICAgICAgIHB5LnRl
c3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCAicC54X3kiKQorCisgICAgZGVmIHRlc3Rfc2V0Y29u
c3VtZXJfd2l0aF9wcm9kdWNlcihzZWxmKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIHAgPSBw
eS5sb2cuUHJvZHVjZXIoImhlbGxvIikKKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKHAsIGwu
YXBwZW5kKQorICAgICAgICBwKCJ3b3JsZCIpCisgICAgICAgIGFzc2VydCBzdHIobFswXSkgPT0g
IltoZWxsb10gd29ybGQiCisKKyAgICBkZWYgdGVzdF9tdWx0aV9jb25zdW1lcihzZWxmKToKKyAg
ICAgICAgbCA9IFtdCisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1lcigieDEiLCBsLmFwcGVuZCkK
KyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCJ4MSB4MiIsIE5vbmUpCisgICAgICAgIHAgPSBw
eS5sb2cuUHJvZHVjZXIoIngxIHgyIikKKyAgICAgICAgcCgiaGVsbG8iKQorICAgICAgICBhc3Nl
cnQgbm90IGwKKyAgICAgICAgcHkubG9nLlByb2R1Y2VyKCJ4MSIpKCJoZWxsbyIpCisgICAgICAg
IGFzc2VydCBsCisgICAgICAgIGFzc2VydCBsWzBdLmNvbnRlbnQoKSA9PSAiaGVsbG8iCisKKyAg
ICBkZWYgdGVzdF9sb2dfc3RkZXJyKHNlbGYpOgorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIo
Inh5eiIsIHB5LmxvZy5TVERPVVQpCisgICAgICAgIHJlcywgb3V0LCBlcnIgPSBjYWxsY2FwdHVy
ZShweS5sb2cuUHJvZHVjZXIoInh5eiIpLCAiaGVsbG8iKQorICAgICAgICBhc3NlcnQgbm90IGVy
cgorICAgICAgICBhc3NlcnQgb3V0LnN0cmlwKCkgPT0gJ1t4eXpdIGhlbGxvJworCisgICAgZGVm
IHRlc3RfbG9nX2ZpbGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgY3VzdG9tbG9nID0gdG1wZGly
LmpvaW4oJ2xvZy5vdXQnKQorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoImRlZmF1bHQiLCBv
cGVuKHN0cihjdXN0b21sb2cpLCAndycsIDEpKQorICAgICAgICBweS5sb2cuUHJvZHVjZXIoImRl
ZmF1bHQiKSgiaGVsbG8gd29ybGQgIzEiKQorICAgICAgICBhc3NlcnQgY3VzdG9tbG9nLnJlYWRs
aW5lcygpID09IFsnW2RlZmF1bHRdIGhlbGxvIHdvcmxkICMxXG4nXQorCisgICAgICAgIHB5Lmxv
Zy5zZXRjb25zdW1lcigiZGVmYXVsdCIsIHB5LmxvZy5QYXRoKGN1c3RvbWxvZywgYnVmZmVyaW5n
PUZhbHNlKSkKKyAgICAgICAgcHkubG9nLlByb2R1Y2VyKCJkZWZhdWx0IikoImhlbGxvIHdvcmxk
ICMyIikKKyAgICAgICAgcmVzID0gY3VzdG9tbG9nLnJlYWRsaW5lcygpCisgICAgICAgIGFzc2Vy
dCByZXMgPT0gWydbZGVmYXVsdF0gaGVsbG8gd29ybGQgIzJcbiddICMgbm8gYXBwZW5kIGJ5IGRl
ZmF1bHQhCisKKyAgICBkZWYgdGVzdF9sb2dfZmlsZV9hcHBlbmRfbW9kZShzZWxmLCB0bXBkaXIp
OgorICAgICAgICBsb2dmaWxlZm4gPSB0bXBkaXIuam9pbignbG9nX2FwcGVuZC5vdXQnKQorCisg
ICAgICAgICMgVGhlIGFwcGVuZCBtb2RlIGlzIG9uIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gc3BlY2lmeSBpdCBmb3IgRmlsZQorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoImRl
ZmF1bHQiLCBweS5sb2cuUGF0aChsb2dmaWxlZm4sIGFwcGVuZD1UcnVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcmluZz0wKSkKKyAg
ICAgICAgYXNzZXJ0IGxvZ2ZpbGVmbi5jaGVjaygpCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcigi
ZGVmYXVsdCIpKCJoZWxsbyB3b3JsZCAjMSIpCisgICAgICAgIGxpbmVzID0gbG9nZmlsZWZuLnJl
YWRsaW5lcygpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbJ1tkZWZhdWx0XSBoZWxsbyB3b3Js
ZCAjMVxuJ10KKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCJkZWZhdWx0IiwgcHkubG9nLlBh
dGgobG9nZmlsZWZuLCBhcHBlbmQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJpbmc9MCkpCisgICAgICAgIHB5LmxvZy5Qcm9k
dWNlcigiZGVmYXVsdCIpKCJoZWxsbyB3b3JsZCAjMSIpCisgICAgICAgIGxpbmVzID0gbG9nZmls
ZWZuLnJlYWRsaW5lcygpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbJ1tkZWZhdWx0XSBoZWxs
byB3b3JsZCAjMVxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnW2RlZmF1bHRdIGhlbGxv
IHdvcmxkICMxXG4nXQorCisgICAgZGVmIHRlc3RfbG9nX2ZpbGVfZGVsYXllZF9jcmVhdGUoc2Vs
ZiwgdG1wZGlyKToKKyAgICAgICAgbG9nZmlsZWZuID0gdG1wZGlyLmpvaW4oJ2xvZ19jcmVhdGUu
b3V0JykKKworICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoImRlZmF1bHQiLCBweS5sb2cuUGF0
aChsb2dmaWxlZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVs
YXllZF9jcmVhdGU9VHJ1ZSwgYnVmZmVyaW5nPTApKQorICAgICAgICBhc3NlcnQgbm90IGxvZ2Zp
bGVmbi5jaGVjaygpCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcigiZGVmYXVsdCIpKCJoZWxsbyB3
b3JsZCAjMSIpCisgICAgICAgIGxpbmVzID0gbG9nZmlsZWZuLnJlYWRsaW5lcygpCisgICAgICAg
IGFzc2VydCBsaW5lcyA9PSBbJ1tkZWZhdWx0XSBoZWxsbyB3b3JsZCAjMVxuJ10KKworICAgIGRl
ZiB0ZXN0X2tleXdvcmRfYmFzZWRfbG9nX2ZpbGVzKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxv
Z2ZpbGVzID0gW10KKyAgICAgICAga2V5d29yZHMgPSAnazEgazIgazMnLnNwbGl0KCkKKyAgICAg
ICAgZm9yIGtleSBpbiBrZXl3b3JkczoKKyAgICAgICAgICAgIHBhdGggPSB0bXBkaXIuam9pbihr
ZXkpCisgICAgICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoa2V5LCBweS5sb2cuUGF0aChwYXRo
LCBidWZmZXJpbmc9MCkpCisKKyAgICAgICAgcHkubG9nLlByb2R1Y2VyKCdrMScpKCcxJykKKyAg
ICAgICAgcHkubG9nLlByb2R1Y2VyKCdrMicpKCcyJykKKyAgICAgICAgcHkubG9nLlByb2R1Y2Vy
KCdrMycpKCczJykKKworICAgICAgICBmb3Iga2V5IGluIGtleXdvcmRzOgorICAgICAgICAgICAg
cGF0aCA9IHRtcGRpci5qb2luKGtleSkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoLnJlYWQoKS5z
dHJpcCgpID09ICdbJXNdICVzJyAlIChrZXksIGtleVstMV0pCisKKyAgICAjIGRpc2FibGVkIGZv
ciBub3c7IHRoZSBzeXNsb2cgbG9nIGZpbGUgY2FuIHVzdWFsbHkgYmUgcmVhZCBvbmx5IGJ5IHJv
b3QKKyAgICAjIEkgbWFudWFsbHkgaW5zcGVjdGVkIC92YXIvbG9nL21lc3NhZ2VzIGFuZCB0aGUg
ZW50cmllcyB3ZXJlIHRoZXJlCisgICAgZGVmIG5vX3Rlc3RfbG9nX3N5c2xvZyhzZWxmKToKKyAg
ICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCJkZWZhdWx0IiwgcHkubG9nLlN5c2xvZygpKQorICAg
ICAgICBweS5sb2cuZGVmYXVsdCgiaGVsbG8gd29ybGQgIzEiKQorCisgICAgIyBkaXNhYmxlZCBm
b3Igbm93IHVudGlsIEkgZmlndXJlIG91dCBob3cgdG8gcmVhZCBlbnRyaWVzIGluIHRoZQorICAg
ICMgRXZlbnQgTG9ncyBvbiBXaW5kb3dzCisgICAgIyBJIG1hbnVhbGx5IGluc3BlY3RlZCB0aGUg
QXBwbGljYXRpb24gTG9nIGFuZCB0aGUgZW50cmllcyB3ZXJlIHRoZXJlCisgICAgZGVmIG5vX3Rl
c3RfbG9nX3dpbmV2ZW50KHNlbGYpOgorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoImRlZmF1
bHQiLCBweS5sb2cuV2luRXZlbnQoKSkKKyAgICAgICAgcHkubG9nLmRlZmF1bHQoImhlbGxvIHdv
cmxkICMxIikKKworICAgICMgZGlzYWJsZWQgZm9yIG5vdyB1bnRpbCBJIGZpZ3VyZSBvdXQgaG93
IHRvIHByb3Blcmx5IHBhc3MgdGhlIHBhcmFtZXRlcnMKKyAgICBkZWYgbm9fdGVzdF9sb2dfZW1h
aWwoc2VsZik6CisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1lcigiZGVmYXVsdCIsIHB5LmxvZy5F
bWFpbChtYWlsaG9zdD0iZ2hlb3JnaGl1Lm5ldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tYWRkcj0iZ3JpZyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2FkZHJzPSJncmlnIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3Qg
PSAicHkubG9nIGVtYWlsIikpCisgICAgICAgIHB5LmxvZy5kZWZhdWx0KCJoZWxsbyB3b3JsZCAj
MSIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9sb2cvdGVzdF93YXJuaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NjBjMzE5ZTg3
MjdjNjkyY2ZjYjBiNTY3MTQxYmJkODgzYzI2ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weQpAQCAtMCwwICsxLDg2IEBACitpbXBvcnQgc3lz
Citmcm9tIGRpc3R1dGlscy52ZXJzaW9uIGltcG9ydCBMb29zZVZlcnNpb24KKworaW1wb3J0IHB5
dGVzdAorCitpbXBvcnQgcHkKKworbXlwYXRoID0gcHkucGF0aC5sb2NhbChfX2ZpbGVfXykubmV3
KGV4dD0iLnB5IikKKworCit3aW4gPSBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykKK3B5
dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lwaWYod2luIGFuZCBMb29zZVZlcnNpb24ocHl0ZXN0
Ll9fdmVyc2lvbl9fKSA+PSBMb29zZVZlcnNpb24oJzMuMScpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFzb249J2FwaXdhcm4gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBweXRl
c3QgPj0gMy4xICgjMTYyKScpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsCitkZWYgdGVzdF9mb3J3
YXJkaW5nX3RvX3dhcm5pbmdzX21vZHVsZSgpOgorICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwo
cHkubG9nLl9hcGl3YXJuLCAiMS4zIiwgIi4uIikKKworZGVmIHRlc3RfYXBpd2Fybl9mdW5jdGlv
bmFsKHJlY3dhcm4pOgorICAgIGNhcHR1cmUgPSBweS5pby5TdGRDYXB0dXJlKCkKKyAgICBweS5s
b2cuX2FwaXdhcm4oIngueS56IiwgInNvbWV0aGluZyIsIHN0YWNrbGV2ZWw9MSkKKyAgICBvdXQs
IGVyciA9IGNhcHR1cmUucmVzZXQoKQorICAgIHB5LmJ1aWx0aW4ucHJpbnRfKCJvdXQiLCBvdXQp
CisgICAgcHkuYnVpbHRpbi5wcmludF8oImVyciIsIGVycikKKyAgICBhc3NlcnQgZXJyLmZpbmQo
IngueS56IikgIT0gLTEKKyAgICBsbm8gPSBweS5jb2RlLmdldHJhd2NvZGUodGVzdF9hcGl3YXJu
X2Z1bmN0aW9uYWwpLmNvX2ZpcnN0bGluZW5vICsgMgorICAgIGV4cCA9ICIlczolcyIgJSAobXlw
YXRoLCBsbm8pCisgICAgYXNzZXJ0IGVyci5maW5kKGV4cCkgIT0gLTEKKworZGVmIHRlc3Rfc3Rh
Y2tsZXZlbChyZWN3YXJuKToKKyAgICBkZWYgZigpOgorICAgICAgICBweS5sb2cuX2FwaXdhcm4o
IngiLCAic29tZSIsIHN0YWNrbGV2ZWw9MikKKyAgICAjIDMKKyAgICAjIDQKKyAgICBjYXB0dXJl
ID0gcHkuaW8uU3RkQ2FwdHVyZSgpCisgICAgZigpCisgICAgb3V0LCBlcnIgPSBjYXB0dXJlLnJl
c2V0KCkKKyAgICBsbm8gPSBweS5jb2RlLmdldHJhd2NvZGUodGVzdF9zdGFja2xldmVsKS5jb19m
aXJzdGxpbmVubyArIDYKKyAgICB3YXJuaW5nID0gc3RyKGVycikKKyAgICBhc3NlcnQgd2Fybmlu
Zy5maW5kKCI6JXMiICUgbG5vKSAhPSAtMQorCitkZWYgdGVzdF9zdGFja2xldmVsX2luaXRwa2df
d2l0aF9yZXNvbHZlKHRlc3RkaXIsIHJlY3dhcm4pOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSht
b2RhYmM9IiIiCisgICAgICAgIGltcG9ydCBweQorICAgICAgICBkZWYgZigpOgorICAgICAgICAg
ICAgcHkubG9nLl9hcGl3YXJuKCJ4IiwgInNvbWUiLCBzdGFja2xldmVsPSJhcGlwa2cxMjMiKQor
ICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoYXBpcGtnMTIzPSIiIgorICAgICAgICBk
ZWYgX19nZXRhdHRyX18oKToKKyAgICAgICAgICAgIGltcG9ydCBtb2RhYmMKKyAgICAgICAgICAg
IG1vZGFiYy5mKCkKKyAgICAiIiIpCisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgaW1wb3J0IGFwaXBrZzEyMworICAgICAgICBhcGlwa2cxMjMuX19nZXRhdHRyX18oKQor
ICAgICIiIikKKyAgICBjYXB0dXJlID0gcHkuaW8uU3RkQ2FwdHVyZSgpCisgICAgcC5weWltcG9y
dCgpCisgICAgb3V0LCBlcnIgPSBjYXB0dXJlLnJlc2V0KCkKKyAgICB3YXJuaW5nID0gc3RyKGVy
cikKKyAgICBsb2MgPSAndGVzdF9zdGFja2xldmVsX2luaXRwa2dfd2l0aF9yZXNvbHZlLnB5OjIn
CisgICAgYXNzZXJ0IHdhcm5pbmcuZmluZChsb2MpICE9IC0xCisKK2RlZiB0ZXN0X3N0YWNrbGV2
ZWxfaW5pdHBrZ19ub19yZXNvbHZlKHJlY3dhcm4pOgorICAgIGRlZiBmKCk6CisgICAgICAgIHB5
LmxvZy5fYXBpd2FybigieCIsICJzb21lIiwgc3RhY2tsZXZlbD0iYXBpcGtnIikKKyAgICBjYXB0
dXJlID0gcHkuaW8uU3RkQ2FwdHVyZSgpCisgICAgZigpCisgICAgb3V0LCBlcnIgPSBjYXB0dXJl
LnJlc2V0KCkKKyAgICBsbm8gPSBweS5jb2RlLmdldHJhd2NvZGUodGVzdF9zdGFja2xldmVsX2lu
aXRwa2dfbm9fcmVzb2x2ZSkuY29fZmlyc3RsaW5lbm8gKyAyCisgICAgd2FybmluZyA9IHN0cihl
cnIpCisgICAgYXNzZXJ0IHdhcm5pbmcuZmluZCgiOiVzIiAlIGxubykgIT0gLTEKKworCitkZWYg
dGVzdF9mdW5jdGlvbihyZWN3YXJuKToKKyAgICBjYXB0dXJlID0gcHkuaW8uU3RkQ2FwdHVyZSgp
CisgICAgcHkubG9nLl9hcGl3YXJuKCJ4LnkueiIsICJzb21ldGhpbmciLCBmdW5jdGlvbj10ZXN0
X2Z1bmN0aW9uKQorICAgIG91dCwgZXJyID0gY2FwdHVyZS5yZXNldCgpCisgICAgcHkuYnVpbHRp
bi5wcmludF8oIm91dCIsIG91dCkKKyAgICBweS5idWlsdGluLnByaW50XygiZXJyIiwgZXJyKQor
ICAgIGFzc2VydCBlcnIuZmluZCgieC55LnoiKSAhPSAtMQorICAgIGxubyA9IHB5LmNvZGUuZ2V0
cmF3Y29kZSh0ZXN0X2Z1bmN0aW9uKS5jb19maXJzdGxpbmVubworICAgIGV4cCA9ICIlczolcyIg
JSAobXlwYXRoLCBsbm8pCisgICAgYXNzZXJ0IGVyci5maW5kKGV4cCkgIT0gLTEKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9sb2cvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVkNDNmYjU4YmFiNTY5MmQwOTYwYzJk
N2YwYzFmMGRmMzQxNWMwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2xvZy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvdGVzdF9sb2cucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL3BhdGgvY29tbW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvY29tbW9uLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ2OWExYzM5ZDA5OTAzNDYzOGEzN2UzNmJmNjI2MjkwMGMxMGVhZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC9jb21tb24ucHkKQEAgLTAsMCArMSw0OTIg
QEAKK2ltcG9ydCBweQoraW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2NsYXNzIENvbW1v
bkZTVGVzdHMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9jb25zdHJ1Y3Rvcl9lcXVhbGl0eShzZWxm
LCBwYXRoMSk6CisgICAgICAgIHAgPSBwYXRoMS5fX2NsYXNzX18ocGF0aDEpCisgICAgICAgIGFz
c2VydCBwID09IHBhdGgxCisKKyAgICBkZWYgdGVzdF9lcV9ub25zdHJpbmcoc2VsZiwgcGF0aDEp
OgorICAgICAgICBwMSA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIHAyID0gcGF0
aDEuam9pbignc2FtcGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IHAxID09IHAyCisKKyAgICBkZWYg
dGVzdF9uZXdfaWRlbnRpY2FsKHNlbGYsIHBhdGgxKToKKyAgICAgICAgYXNzZXJ0IHBhdGgxID09
IHBhdGgxLm5ldygpCisKKyAgICBkZWYgdGVzdF9qb2luKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
cCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIHN0cnAgPSBzdHIocCkKKyAgICAg
ICAgYXNzZXJ0IHN0cnAuZW5kc3dpdGgoJ3NhbXBsZWRpcicpCisgICAgICAgIGFzc2VydCBzdHJw
LnN0YXJ0c3dpdGgoc3RyKHBhdGgxKSkKKworICAgIGRlZiB0ZXN0X2pvaW5fbm9ybWFsaXplZChz
ZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5qb2luKHBhdGgxLnNlcCsnc2Ft
cGxlZGlyJykKKyAgICAgICAgc3RycCA9IHN0cihuZXdwYXRoKQorICAgICAgICBhc3NlcnQgc3Ry
cC5lbmRzd2l0aCgnc2FtcGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IHN0cnAuc3RhcnRzd2l0aChz
dHIocGF0aDEpKQorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbigocGF0aDEuc2VwKjIpICsg
J3NhbXBsZWRpcicpCisgICAgICAgIHN0cnAgPSBzdHIobmV3cGF0aCkKKyAgICAgICAgYXNzZXJ0
IHN0cnAuZW5kc3dpdGgoJ3NhbXBsZWRpcicpCisgICAgICAgIGFzc2VydCBzdHJwLnN0YXJ0c3dp
dGgoc3RyKHBhdGgxKSkKKworICAgIGRlZiB0ZXN0X2pvaW5fbm9hcmdzKHNlbGYsIHBhdGgxKToK
KyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4oKQorICAgICAgICBhc3NlcnQgcGF0aDEgPT0g
bmV3cGF0aAorCisgICAgZGVmIHRlc3RfYWRkX3NvbWV0aGluZyhzZWxmLCBwYXRoMSk6CisgICAg
ICAgIHAgPSBwYXRoMS5qb2luKCdzYW1wbGUnKQorICAgICAgICBwID0gcCArICdkaXInCisgICAg
ICAgIGFzc2VydCBwLmNoZWNrKCkKKyAgICAgICAgYXNzZXJ0IHAuZXhpc3RzKCkKKyAgICAgICAg
YXNzZXJ0IHAuaXNkaXIoKQorICAgICAgICBhc3NlcnQgbm90IHAuaXNmaWxlKCkKKworICAgIGRl
ZiB0ZXN0X3BhcnRzKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4o
J3NhbXBsZWRpcicsICdvdGhlcmZpbGUnKQorICAgICAgICBwYXIgPSBuZXdwYXRoLnBhcnRzKClb
LTM6XQorICAgICAgICBhc3NlcnQgcGFyID09IFtwYXRoMSwgcGF0aDEuam9pbignc2FtcGxlZGly
JyksIG5ld3BhdGhdCisKKyAgICAgICAgcmV2cGFyID0gbmV3cGF0aC5wYXJ0cyhyZXZlcnNlPVRy
dWUpWzozXQorICAgICAgICBhc3NlcnQgcmV2cGFyID09IFtuZXdwYXRoLCBwYXRoMS5qb2luKCdz
YW1wbGVkaXInKSwgcGF0aDFdCisKKyAgICBkZWYgdGVzdF9jb21tb24oc2VsZiwgcGF0aDEpOgor
ICAgICAgICBvdGhlciA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIHggPSBvdGhl
ci5jb21tb24ocGF0aDEpCisgICAgICAgIGFzc2VydCB4ID09IHBhdGgxCisKKyAgICAjZGVmIHRl
c3RfcGFyZW50c19ub25leGlzdGluZ19maWxlKHNlbGYsIHBhdGgxKToKKyAgICAjICAgIG5ld3Bh
dGggPSBwYXRoMSAvICdkaXJub2V4aXN0JyAvICdub25leGlzdGluZyBmaWxlJworICAgICMgICAg
cGFyID0gbGlzdChuZXdwYXRoLnBhcmVudHMoKSkKKyAgICAjICAgIGFzc2VydCBwYXJbOjJdID09
IFtwYXRoMSAvICdkaXJub2V4aXN0JywgcGF0aDFdCisKKyAgICBkZWYgdGVzdF9iYXNlbmFtZV9j
aGVja3Moc2VsZiwgcGF0aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxl
ZGlyJykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGguY2hlY2soYmFzZW5hbWU9J3NhbXBsZWRpcicp
CisgICAgICAgIGFzc2VydCBuZXdwYXRoLmNoZWNrKG5vdGJhc2VuYW1lPSd4eXonKQorICAgICAg
ICBhc3NlcnQgbmV3cGF0aC5iYXNlbmFtZSA9PSAnc2FtcGxlZGlyJworCisgICAgZGVmIHRlc3Rf
YmFzZW5hbWUoc2VsZiwgcGF0aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2Ft
cGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGguY2hlY2soYmFzZW5hbWU9J3NhbXBsZWRp
cicpCisgICAgICAgIGFzc2VydCBuZXdwYXRoLmJhc2VuYW1lLCAnc2FtcGxlZGlyJworCisgICAg
ZGVmIHRlc3RfZGlybmFtZShzZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5q
b2luKCdzYW1wbGVkaXInKQorICAgICAgICBhc3NlcnQgbmV3cGF0aC5kaXJuYW1lID09IHN0cihw
YXRoMSkKKworICAgIGRlZiB0ZXN0X2RpcnBhdGgoc2VsZiwgcGF0aDEpOgorICAgICAgICBuZXdw
YXRoID0gcGF0aDEuam9pbignc2FtcGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGguZGly
cGF0aCgpID09IHBhdGgxCisKKyAgICBkZWYgdGVzdF9kaXJwYXRoX3dpdGhfYXJncyhzZWxmLCBw
YXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAg
ICBhc3NlcnQgbmV3cGF0aC5kaXJwYXRoKCd4JykgPT0gcGF0aDEuam9pbigneCcpCisKKyAgICBk
ZWYgdGVzdF9uZXdiYXNlbmFtZShzZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRo
MS5qb2luKCdzYW1wbGVmaWxlJykKKyAgICAgICAgbmV3YmFzZSA9IG5ld3BhdGgubmV3KGJhc2Vu
YW1lPSJzYW1wbGVmaWxlMiIpCisgICAgICAgIGFzc2VydCBuZXdiYXNlLmJhc2VuYW1lID09ICJz
YW1wbGVmaWxlMiIKKyAgICAgICAgYXNzZXJ0IG5ld2Jhc2UuZGlycGF0aCgpID09IG5ld3BhdGgu
ZGlycGF0aCgpCisKKyAgICBkZWYgdGVzdF9ub3RfZXhpc3RzKHNlbGYsIHBhdGgxKToKKyAgICAg
ICAgYXNzZXJ0IG5vdCBwYXRoMS5qb2luKCdkb2VzX25vdF9leGlzdCcpLmNoZWNrKCkKKyAgICAg
ICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ2RvZXNfbm90X2V4aXN0JykuY2hlY2soZXhpc3RzPTApCisK
KyAgICBkZWYgdGVzdF9leGlzdHMoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEu
am9pbigic2FtcGxlZmlsZSIpLmNoZWNrKCkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNh
bXBsZWZpbGUiKS5jaGVjayhleGlzdHM9MSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNh
bXBsZWZpbGUiKS5leGlzdHMoKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbigic2FtcGxlZmls
ZSIpLmlzZmlsZSgpCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbigic2FtcGxlZmlsZSIp
LmlzZGlyKCkKKworICAgIGRlZiB0ZXN0X2RpcihzZWxmLCBwYXRoMSk6CisgICAgICAgICNwcmlu
dCByZXByKHBhdGgxLmpvaW4oInNhbXBsZWRpciIpKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9p
bigic2FtcGxlZGlyIikuY2hlY2soZGlyPTEpCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCdz
YW1wbGVmaWxlJykuY2hlY2sobm90ZGlyPTEpCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9p
bigic2FtcGxlZmlsZSIpLmNoZWNrKGRpcj0xKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbigi
c2FtcGxlZmlsZSIpLmV4aXN0cygpCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbigic2Ft
cGxlZmlsZSIpLmlzZGlyKCkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUi
KS5pc2ZpbGUoKQorCisgICAgZGVmIHRlc3RfZm5tYXRjaF9maWxlKHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5jaGVjayhmbm1hdGNoPSdzKmUn
KQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbigic2FtcGxlZmlsZSIpLmZubWF0Y2goJ3MqZScp
CisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbigic2FtcGxlZmlsZSIpLmZubWF0Y2goJ3Mq
eCcpCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbigic2FtcGxlZmlsZSIpLmNoZWNrKGZu
bWF0Y2g9J3MqeCcpCisKKyAgICAjZGVmIHRlc3RfZm5tYXRjaF9kaXIoc2VsZiwgcGF0aDEpOgor
CisgICAgIyAgICBwYXR0ZXJuID0gcGF0aDEuc2VwLmpvaW4oWydzKmZpbGUnXSkKKyAgICAjICAg
IHNmaWxlID0gcGF0aDEuam9pbigic2FtcGxlZmlsZSIpCisgICAgIyAgICBhc3NlcnQgc2ZpbGUu
Y2hlY2soZm5tYXRjaD1wYXR0ZXJuKQorCisgICAgZGVmIHRlc3RfcmVsdG8oc2VsZiwgcGF0aDEp
OgorICAgICAgICBsPXBhdGgxLmpvaW4oInNhbXBsZWRpciIsICJvdGhlcmZpbGUiKQorICAgICAg
ICBhc3NlcnQgbC5yZWx0byhwYXRoMSkgPT0gbC5zZXAuam9pbihbInNhbXBsZWRpciIsICJvdGhl
cmZpbGUiXSkKKyAgICAgICAgYXNzZXJ0IGwuY2hlY2socmVsdG89cGF0aDEpCisgICAgICAgIGFz
c2VydCBwYXRoMS5jaGVjayhub3RyZWx0bz1sKQorICAgICAgICBhc3NlcnQgbm90IHBhdGgxLmNo
ZWNrKHJlbHRvPWwpCisKKyAgICBkZWYgdGVzdF9iZXN0cmVscGF0aChzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIGN1cmRpciA9IHBhdGgxCisgICAgICAgIHNlcCA9IGN1cmRpci5zZXAKKyAgICAgICAg
cyA9IGN1cmRpci5iZXN0cmVscGF0aChjdXJkaXIpCisgICAgICAgIGFzc2VydCBzID09ICIuIgor
ICAgICAgICBzID0gY3VyZGlyLmJlc3RyZWxwYXRoKGN1cmRpci5qb2luKCJoZWxsbyIsICJ3b3Js
ZCIpKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG8iICsgc2VwICsgIndvcmxkIgorCisgICAg
ICAgIHMgPSBjdXJkaXIuYmVzdHJlbHBhdGgoY3VyZGlyLmRpcnBhdGgoKS5qb2luKCJzaXN0ZXIi
KSkKKyAgICAgICAgYXNzZXJ0IHMgPT0gIi4uIiArIHNlcCArICJzaXN0ZXIiCisgICAgICAgIGFz
c2VydCBjdXJkaXIuYmVzdHJlbHBhdGgoY3VyZGlyLmRpcnBhdGgoKSkgPT0gIi4uIgorCisgICAg
ICAgIGFzc2VydCBjdXJkaXIuYmVzdHJlbHBhdGgoImhlbGxvIikgPT0gImhlbGxvIgorCisgICAg
ZGVmIHRlc3RfcmVsdG9fbm90X3JlbGF0aXZlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbDE9cGF0
aDEuam9pbigiYmNkZSIpCisgICAgICAgIGwyPXBhdGgxLmpvaW4oImIiKQorICAgICAgICBhc3Nl
cnQgbm90IGwxLnJlbHRvKGwyKQorICAgICAgICBhc3NlcnQgbm90IGwyLnJlbHRvKGwxKQorCisg
ICAgQHB5LnRlc3QubWFyay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIp
CisgICAgZGVmIHRlc3RfbGlzdGRpcihzZWxmLCBwYXRoMSk6CisgICAgICAgIGwgPSBwYXRoMS5s
aXN0ZGlyKCkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpIGluIGwKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKSBpbiBsCisgICAgICAgIHB5LnRl
c3QucmFpc2VzKHB5LmVycm9yLkVOT1RESVIsCisgICAgICAgICAgICAgICAgICAgICAgICJwYXRo
MS5qb2luKCdzYW1wbGVmaWxlJykubGlzdGRpcigpIikKKworICAgIGRlZiB0ZXN0X2xpc3RkaXJf
Zm5tYXRjaHN0cmluZyhzZWxmLCBwYXRoMSk6CisgICAgICAgIGwgPSBwYXRoMS5saXN0ZGlyKCdz
KmRpcicpCisgICAgICAgIGFzc2VydCBsZW4obCkKKyAgICAgICAgYXNzZXJ0IGxbMF0sIHBhdGgx
LmpvaW4oJ3NhbXBsZWRpcicpCisKKyAgICBkZWYgdGVzdF9saXN0ZGlyX2ZpbHRlcihzZWxmLCBw
YXRoMSk6CisgICAgICAgIGwgPSBwYXRoMS5saXN0ZGlyKGxhbWJkYSB4OiB4LmNoZWNrKGRpcj0x
KSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpIGluIGwKKyAgICAgICAg
YXNzZXJ0IG5vdCBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykgaW4gbAorCisgICAgZGVmIHRlc3Rf
bGlzdGRpcl9zb3J0ZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICBsID0gcGF0aDEubGlzdGRpcihs
YW1iZGEgeDogeC5jaGVjayhiYXNlc3RhcnRzPSJzYW1wbGUiKSwgc29ydD1UcnVlKQorICAgICAg
ICBhc3NlcnQgcGF0aDEuam9pbignc2FtcGxlZGlyJykgPT0gbFswXQorICAgICAgICBhc3NlcnQg
cGF0aDEuam9pbignc2FtcGxlZmlsZScpID09IGxbMV0KKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpv
aW4oJ3NhbXBsZXBpY2tsZScpID09IGxbMl0KKworICAgIGRlZiB0ZXN0X3Zpc2l0X25vZmlsdGVy
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIGZvciBpIGluIHBhdGgxLnZp
c2l0KCk6CisgICAgICAgICAgICBsLmFwcGVuZChpLnJlbHRvKHBhdGgxKSkKKyAgICAgICAgYXNz
ZXJ0ICJzYW1wbGVkaXIiIGluIGwKKyAgICAgICAgYXNzZXJ0IHBhdGgxLnNlcC5qb2luKFsic2Ft
cGxlZGlyIiwgIm90aGVyZmlsZSJdKSBpbiBsCisKKyAgICBkZWYgdGVzdF92aXNpdF9ub3JlY3Vy
c2Uoc2VsZiwgcGF0aDEpOgorICAgICAgICBsID0gW10KKyAgICAgICAgZm9yIGkgaW4gcGF0aDEu
dmlzaXQoTm9uZSwgbGFtYmRhIHg6IHguYmFzZW5hbWUgIT0gInNhbXBsZWRpciIpOgorICAgICAg
ICAgICAgbC5hcHBlbmQoaS5yZWx0byhwYXRoMSkpCisgICAgICAgIGFzc2VydCAic2FtcGxlZGly
IiBpbiBsCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuc2VwLmpvaW4oWyJzYW1wbGVkaXIiLCAi
b3RoZXJmaWxlIl0pIGluIGwKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZmlsJywg
WycqZGlyJywgdScqZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0Lm1h
cmsuc2tpcCgic3lzLnZlcnNpb25faW5mbyA8IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgKDMsNikiKShiJypkaXInKV0pCisgICAgZGVmIHRlc3Rfdmlz
aXRfZmlsdGVyZnVuY19pc19zdHJpbmcoc2VsZiwgcGF0aDEsIGZpbCk6CisgICAgICAgIGwgPSBb
XQorICAgICAgICBmb3IgaSBpbiBwYXRoMS52aXNpdChmaWwpOgorICAgICAgICAgICAgbC5hcHBl
bmQoaS5yZWx0byhwYXRoMSkpCisgICAgICAgIGFzc2VydCBsZW4obCksIDIKKyAgICAgICAgYXNz
ZXJ0ICJzYW1wbGVkaXIiIGluIGwKKyAgICAgICAgYXNzZXJ0ICJvdGhlcmRpciIgaW4gbAorCisg
ICAgQHB5LnRlc3QubWFyay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIp
CisgICAgZGVmIHRlc3RfdmlzaXRfaWdub3JlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBh
dGgxLmpvaW4oJ25vbmV4aXN0aW5nJykKKyAgICAgICAgYXNzZXJ0IGxpc3QocC52aXNpdChpZ25v
cmU9cHkuZXJyb3IuRU5PRU5UKSkgPT0gW10KKworICAgIGRlZiB0ZXN0X3Zpc2l0X2VuZHN3aXRo
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbCA9IFtdCisgICAgICAgIGZvciBpIGluIHBhdGgxLnZp
c2l0KGxhbWJkYSB4OiB4LmNoZWNrKGVuZHN3aXRoPSJmaWxlIikpOgorICAgICAgICAgICAgbC5h
cHBlbmQoaS5yZWx0byhwYXRoMSkpCisgICAgICAgIGFzc2VydCBwYXRoMS5zZXAuam9pbihbInNh
bXBsZWRpciIsICJvdGhlcmZpbGUiXSkgaW4gbAorICAgICAgICBhc3NlcnQgInNhbXBsZWZpbGUi
IGluIGwKKworICAgIGRlZiB0ZXN0X2VuZHN3aXRoKHNlbGYsIHBhdGgxKToKKyAgICAgICAgYXNz
ZXJ0IHBhdGgxLmNoZWNrKG5vdGVuZHN3aXRoPScucHknKQorICAgICAgICB4ID0gcGF0aDEuam9p
bignc2FtcGxlZmlsZScpCisgICAgICAgIGFzc2VydCB4LmNoZWNrKGVuZHN3aXRoPSdmaWxlJykK
KworICAgIGRlZiB0ZXN0X2NtcChzZWxmLCBwYXRoMSk6CisgICAgICAgIHBhdGgxID0gcGF0aDEu
am9pbignc2FtcGxlZmlsZScpCisgICAgICAgIHBhdGgyID0gcGF0aDEuam9pbignc2FtcGxlZmls
ZTInKQorICAgICAgICBhc3NlcnQgKHBhdGgxIDwgcGF0aDIpID09ICgnc2FtcGxlZmlsZScgPCAn
c2FtcGxlZmlsZTInKQorICAgICAgICBhc3NlcnQgbm90IChwYXRoMSA8IHBhdGgxKQorCisgICAg
ZGVmIHRlc3Rfc2ltcGxlX3JlYWQoc2VsZiwgcGF0aDEpOgorICAgICAgICB4ID0gcGF0aDEuam9p
bignc2FtcGxlZmlsZScpLnJlYWQoJ3InKQorICAgICAgICBhc3NlcnQgeCA9PSAnc2FtcGxlZmls
ZVxuJworCisgICAgZGVmIHRlc3Rfam9pbl9kaXZfb3BlcmF0b3Ioc2VsZiwgcGF0aDEpOgorICAg
ICAgICBuZXdwYXRoID0gcGF0aDEgLyAnL3NhbXBsZWRpcicgLyAnL3Rlc3QvLycKKyAgICAgICAg
bmV3cGF0aDIgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInLCAndGVzdCcpCisgICAgICAgIGFzc2Vy
dCBuZXdwYXRoID09IG5ld3BhdGgyCisKKyAgICBkZWYgdGVzdF9leHQoc2VsZiwgcGF0aDEpOgor
ICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZGlyLmV4dCcpCisgICAgICAgIGFz
c2VydCBuZXdwYXRoLmV4dCA9PSAnLmV4dCcKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4o
J3NhbXBsZWRpcicpCisgICAgICAgIGFzc2VydCBub3QgbmV3cGF0aC5leHQKKworICAgIGRlZiB0
ZXN0X3B1cmViYXNlbmFtZShzZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5q
b2luKCdzYW1wbGVmaWxlLnB5JykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGgucHVyZWJhc2VuYW1l
ID09ICdzYW1wbGVmaWxlJworCisgICAgZGVmIHRlc3RfbXVsdGlwbGVfcGFydHMoc2VsZiwgcGF0
aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZmlsZS5weScpCisgICAg
ICAgIGRpcm5hbWUsIHB1cmViYXNlbmFtZSwgYmFzZW5hbWUsIGV4dCA9IG5ld3BhdGguX2dldGJ5
c3BlYygKKyAgICAgICAgICAgICdkaXJuYW1lLHB1cmViYXNlbmFtZSxiYXNlbmFtZSxleHQnKQor
ICAgICAgICBhc3NlcnQgc3RyKHBhdGgxKS5lbmRzd2l0aChkaXJuYW1lKSAjIGJlIGNhcmVmdWwg
d2l0aCB3aW4zMiAnZHJpdmUnCisgICAgICAgIGFzc2VydCBwdXJlYmFzZW5hbWUgPT0gJ3NhbXBs
ZWZpbGUnCisgICAgICAgIGFzc2VydCBiYXNlbmFtZSA9PSAnc2FtcGxlZmlsZS5weScKKyAgICAg
ICAgYXNzZXJ0IGV4dCA9PSAnLnB5JworCisgICAgZGVmIHRlc3RfZG90dGVkX25hbWVfZXh0KHNl
bGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4oJ2EuYi5jJykKKyAgICAg
ICAgZXh0ID0gbmV3cGF0aC5leHQKKyAgICAgICAgYXNzZXJ0IGV4dCA9PSAnLmMnCisgICAgICAg
IGFzc2VydCBuZXdwYXRoLmV4dCA9PSAnLmMnCisKKyAgICBkZWYgdGVzdF9uZXdleHQoc2VsZiwg
cGF0aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZmlsZS5weScpCisg
ICAgICAgIG5ld2V4dCA9IG5ld3BhdGgubmV3KGV4dD0nLnR4dCcpCisgICAgICAgIGFzc2VydCBu
ZXdleHQuYmFzZW5hbWUgPT0gInNhbXBsZWZpbGUudHh0IgorICAgICAgICBhc3NlcnQgbmV3ZXh0
LnB1cmViYXNlbmFtZSA9PSAic2FtcGxlZmlsZSIKKworICAgIGRlZiB0ZXN0X3JlYWRsaW5lcyhz
ZWxmLCBwYXRoMSk6CisgICAgICAgIGZuID0gcGF0aDEuam9pbignc2FtcGxlZmlsZScpCisgICAg
ICAgIGNvbnRlbnRzID0gZm4ucmVhZGxpbmVzKCkKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnRzID09
IFsnc2FtcGxlZmlsZVxuJ10KKworICAgIGRlZiB0ZXN0X3JlYWRsaW5lc19ub2NyKHNlbGYsIHBh
dGgxKToKKyAgICAgICAgZm4gPSBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykKKyAgICAgICAgY29u
dGVudHMgPSBmbi5yZWFkbGluZXMoY3I9MCkKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnRzID09IFsn
c2FtcGxlZmlsZScsICcnXQorCisgICAgZGVmIHRlc3RfZmlsZShzZWxmLCBwYXRoMSk6CisgICAg
ICAgIGFzc2VydCBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykuY2hlY2soZmlsZT0xKQorCisgICAg
ZGVmIHRlc3Rfbm90X2ZpbGUoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgbm90IHBhdGgx
LmpvaW4oInNhbXBsZWRpciIpLmNoZWNrKGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpv
aW4oInNhbXBsZWRpciIpLmNoZWNrKGZpbGU9MCkKKworICAgIGRlZiB0ZXN0X25vbl9leGlzdGVu
dChzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVkaXIubm90
aGVyZSIpLmNoZWNrKGRpcj0wKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbigic2FtcGxlZGly
Lm5vdGhlcmUiKS5jaGVjayhmaWxlPTApCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCJzYW1w
bGVkaXIubm90aGVyZSIpLmNoZWNrKG5vdGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpv
aW4oInNhbXBsZWRpci5ub3RoZXJlIikuY2hlY2sobm90ZGlyPTEpCisgICAgICAgIGFzc2VydCBw
YXRoMS5qb2luKCJzYW1wbGVkaXIubm90aGVyZSIpLmNoZWNrKG5vdGV4aXN0cz0xKQorICAgICAg
ICBhc3NlcnQgbm90IHBhdGgxLmpvaW4oInNhbXBsZWRpci5ub3RoZXJlIikuY2hlY2sobm90Zmls
ZT0wKQorCisgICAgIyAgICBwYXR0ZXJuID0gcGF0aDEuc2VwLmpvaW4oWydzKmZpbGUnXSkKKyAg
ICAjICAgIHNmaWxlID0gcGF0aDEuam9pbigic2FtcGxlZmlsZSIpCisgICAgIyAgICBhc3NlcnQg
c2ZpbGUuY2hlY2soZm5tYXRjaD1wYXR0ZXJuKQorCisgICAgZGVmIHRlc3Rfc2l6ZShzZWxmLCBw
YXRoMSk6CisgICAgICAgIHVybCA9IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKQorICAgICAgICBh
c3NlcnQgdXJsLnNpemUoKSA+IGxlbigic2FtcGxlZmlsZSIpCisKKyAgICBkZWYgdGVzdF9tdGlt
ZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHVybCA9IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKQor
ICAgICAgICBhc3NlcnQgdXJsLm10aW1lKCkgPiAwCisKKyAgICBkZWYgdGVzdF9yZWx0b193cm9u
Z190eXBlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoVHlwZUVycm9yLCAi
cGF0aDEucmVsdG8oNDIpIikKKworICAgIGRlZiB0ZXN0X2xvYWQoc2VsZiwgcGF0aDEpOgorICAg
ICAgICBwID0gcGF0aDEuam9pbignc2FtcGxlcGlja2xlJykKKyAgICAgICAgb2JqID0gcC5sb2Fk
KCkKKyAgICAgICAgYXNzZXJ0IHR5cGUob2JqKSBpcyBkaWN0CisgICAgICAgIGFzc2VydCBvYmou
Z2V0KCdhbnN3ZXInLE5vbmUpID09IDQyCisKKyAgICBkZWYgdGVzdF92aXNpdF9maWxlc29ubHko
c2VsZiwgcGF0aDEpOgorICAgICAgICBsID0gW10KKyAgICAgICAgZm9yIGkgaW4gcGF0aDEudmlz
aXQobGFtYmRhIHg6IHguY2hlY2soZmlsZT0xKSk6CisgICAgICAgICAgICBsLmFwcGVuZChpLnJl
bHRvKHBhdGgxKSkKKyAgICAgICAgYXNzZXJ0IG5vdCAic2FtcGxlZGlyIiBpbiBsCisgICAgICAg
IGFzc2VydCBwYXRoMS5zZXAuam9pbihbInNhbXBsZWRpciIsICJvdGhlcmZpbGUiXSkgaW4gbAor
CisgICAgZGVmIHRlc3RfdmlzaXRfbm9kb3RmaWxlcyhzZWxmLCBwYXRoMSk6CisgICAgICAgIGwg
PSBbXQorICAgICAgICBmb3IgaSBpbiBwYXRoMS52aXNpdChsYW1iZGEgeDogeC5jaGVjayhkb3Rm
aWxlPTApKToKKyAgICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAgICAgICBh
c3NlcnQgInNhbXBsZWRpciIgaW4gbAorICAgICAgICBhc3NlcnQgcGF0aDEuc2VwLmpvaW4oWyJz
YW1wbGVkaXIiLCAib3RoZXJmaWxlIl0pIGluIGwKKyAgICAgICAgYXNzZXJ0IG5vdCAiLmRvdGZp
bGUiIGluIGwKKworICAgIGRlZiB0ZXN0X3Zpc2l0X2JyZWFkdGhmaXJzdChzZWxmLCBwYXRoMSk6
CisgICAgICAgIGwgPSBbXQorICAgICAgICBmb3IgaSBpbiBwYXRoMS52aXNpdChiZj1UcnVlKToK
KyAgICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAgICAgICBmb3IgaSwgcCBp
biBlbnVtZXJhdGUobCk6CisgICAgICAgICAgICBpZiBwYXRoMS5zZXAgaW4gcDoKKyAgICAgICAg
ICAgICAgICBmb3IgaiBpbiByYW5nZShpLCBsZW4obCkpOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgcGF0aDEuc2VwIGluIGxbal0KKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcHkudGVzdC5mYWlsKCJodWgiKQorCisgICAgZGVmIHRlc3Rfdmlz
aXRfc29ydChzZWxmLCBwYXRoMSk6CisgICAgICAgIGwgPSBbXQorICAgICAgICBmb3IgaSBpbiBw
YXRoMS52aXNpdChiZj1UcnVlLCBzb3J0PVRydWUpOgorICAgICAgICAgICAgbC5hcHBlbmQoaS5y
ZWx0byhwYXRoMSkpCisgICAgICAgIGZvciBpLCBwIGluIGVudW1lcmF0ZShsKToKKyAgICAgICAg
ICAgIGlmIHBhdGgxLnNlcCBpbiBwOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGFz
c2VydCBsWzppXSA9PSBzb3J0ZWQobFs6aV0pCisgICAgICAgIGFzc2VydCBsW2k6XSA9PSBzb3J0
ZWQobFtpOl0pCisKKyAgICBkZWYgdGVzdF9lbmRzd2l0aChzZWxmLCBwYXRoMSk6CisgICAgICAg
IGRlZiBjaGsocCk6CisgICAgICAgICAgICByZXR1cm4gcC5jaGVjayhlbmRzd2l0aD0icGlja2xl
IikKKyAgICAgICAgYXNzZXJ0IG5vdCBjaGsocGF0aDEpCisgICAgICAgIGFzc2VydCBub3QgY2hr
KHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKSkKKyAgICAgICAgYXNzZXJ0IGNoayhwYXRoMS5qb2lu
KCdzb21lcGlja2xlJykpCisKKyAgICBkZWYgdGVzdF9jb3B5X2ZpbGUoc2VsZiwgcGF0aDEpOgor
ICAgICAgICBvdGhlcmRpciA9IHBhdGgxLmpvaW4oJ290aGVyZGlyJykKKyAgICAgICAgaW5pdHB5
ID0gb3RoZXJkaXIuam9pbignX19pbml0X18ucHknKQorICAgICAgICBjb3BpZWQgPSBvdGhlcmRp
ci5qb2luKCdjb3BpZWQnKQorICAgICAgICBpbml0cHkuY29weShjb3BpZWQpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGFzc2VydCBjb3BpZWQuY2hlY2soKQorICAgICAgICAgICAgczEgPSBp
bml0cHkucmVhZCgpCisgICAgICAgICAgICBzMiA9IGNvcGllZC5yZWFkKCkKKyAgICAgICAgICAg
IGFzc2VydCBzMSA9PSBzMgorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaWYgY29waWVk
LmNoZWNrKCk6CisgICAgICAgICAgICAgICAgY29waWVkLnJlbW92ZSgpCisKKyAgICBkZWYgdGVz
dF9jb3B5X2RpcihzZWxmLCBwYXRoMSk6CisgICAgICAgIG90aGVyZGlyID0gcGF0aDEuam9pbign
b3RoZXJkaXInKQorICAgICAgICBjb3BpZWQgPSBwYXRoMS5qb2luKCduZXdkaXInKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBvdGhlcmRpci5jb3B5KGNvcGllZCkKKyAgICAgICAgICAgIGFz
c2VydCBjb3BpZWQuY2hlY2soZGlyPTEpCisgICAgICAgICAgICBhc3NlcnQgY29waWVkLmpvaW4o
J19faW5pdF9fLnB5JykuY2hlY2soZmlsZT0xKQorICAgICAgICAgICAgczEgPSBvdGhlcmRpci5q
b2luKCdfX2luaXRfXy5weScpLnJlYWQoKQorICAgICAgICAgICAgczIgPSBjb3BpZWQuam9pbign
X19pbml0X18ucHknKS5yZWFkKCkKKyAgICAgICAgICAgIGFzc2VydCBzMSA9PSBzMgorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgaWYgY29waWVkLmNoZWNrKGRpcj0xKToKKyAgICAgICAg
ICAgICAgICBjb3BpZWQucmVtb3ZlKHJlYz0xKQorCisgICAgZGVmIHRlc3RfcmVtb3ZlX2ZpbGUo
c2VsZiwgcGF0aDEpOgorICAgICAgICBkID0gcGF0aDEuZW5zdXJlKCd0b2RlbGV0ZWQnKQorICAg
ICAgICBhc3NlcnQgZC5jaGVjaygpCisgICAgICAgIGQucmVtb3ZlKCkKKyAgICAgICAgYXNzZXJ0
IG5vdCBkLmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X3JlbW92ZV9kaXJfcmVjdXJzaXZlX2J5X2Rl
ZmF1bHQoc2VsZiwgcGF0aDEpOgorICAgICAgICBkID0gcGF0aDEuZW5zdXJlKCd0bycsICdiZScs
ICdkZWxldGVkJykKKyAgICAgICAgYXNzZXJ0IGQuY2hlY2soKQorICAgICAgICBwID0gcGF0aDEu
am9pbigndG8nKQorICAgICAgICBwLnJlbW92ZSgpCisgICAgICAgIGFzc2VydCBub3QgcC5jaGVj
aygpCisKKyAgICBkZWYgdGVzdF9lbnN1cmVfZGlyKHNlbGYsIHBhdGgxKToKKyAgICAgICAgYiA9
IHBhdGgxLmVuc3VyZV9kaXIoIjAwMSIsICIwMDIiKQorICAgICAgICBhc3NlcnQgYi5iYXNlbmFt
ZSA9PSAiMDAyIgorICAgICAgICBhc3NlcnQgYi5pc2RpcigpCisKKyAgICBkZWYgdGVzdF9ta2Rp
cl9hbmRfcmVtb3ZlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgdG1wZGlyID0gcGF0aDEKKyAgICAg
ICAgcHkudGVzdC5yYWlzZXMocHkuZXJyb3IuRUVYSVNULCB0bXBkaXIubWtkaXIsICdzYW1wbGVk
aXInKQorICAgICAgICBuZXcgPSB0bXBkaXIuam9pbignbWt0ZXN0MScpCisgICAgICAgIG5ldy5t
a2RpcigpCisgICAgICAgIGFzc2VydCBuZXcuY2hlY2soZGlyPTEpCisgICAgICAgIG5ldy5yZW1v
dmUoKQorCisgICAgICAgIG5ldyA9IHRtcGRpci5ta2RpcignbWt0ZXN0JykKKyAgICAgICAgYXNz
ZXJ0IG5ldy5jaGVjayhkaXI9MSkKKyAgICAgICAgbmV3LnJlbW92ZSgpCisgICAgICAgIGFzc2Vy
dCB0bXBkaXIuam9pbignbWt0ZXN0JykgPT0gbmV3CisKKyAgICBkZWYgdGVzdF9tb3ZlX2ZpbGUo
c2VsZiwgcGF0aDEpOgorICAgICAgICBwID0gcGF0aDEuam9pbignc2FtcGxlZmlsZScpCisgICAg
ICAgIG5ld3AgPSBwLmRpcnBhdGgoJ21vdmVkX3NhbXBsZWZpbGUnKQorICAgICAgICBwLm1vdmUo
bmV3cCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IG5ld3AuY2hlY2soZmlsZT0x
KQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBwLmNoZWNrKCkKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIGRwID0gbmV3cC5kaXJwYXRoKCkKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoZHAs
ICdyZXZlcnQnKToKKyAgICAgICAgICAgICAgICBkcC5yZXZlcnQoKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBuZXdwLm1vdmUocCkKKyAgICAgICAgICAgICAgICBhc3NlcnQg
cC5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9tb3ZlX2RpcihzZWxmLCBwYXRoMSk6CisgICAgICAg
IHNvdXJjZSA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIGRlc3QgPSBwYXRoMS5q
b2luKCdtb3ZlZGRpcicpCisgICAgICAgIHNvdXJjZS5tb3ZlKGRlc3QpCisgICAgICAgIGFzc2Vy
dCBkZXN0LmNoZWNrKGRpcj0xKQorICAgICAgICBhc3NlcnQgZGVzdC5qb2luKCdvdGhlcmZpbGUn
KS5jaGVjayhmaWxlPTEpCisgICAgICAgIGFzc2VydCBub3Qgc291cmNlLmpvaW4oJ3NhbXBsZWRp
cicpLmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X2ZzcGF0aF9wcm90b2NvbF9tYXRjaF9zdHJwYXRo
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgYXNzZXJ0IHBhdGgxLl9fZnNwYXRoX18oKSA9PSBwYXRo
MS5zdHJwYXRoCisKKyAgICBkZWYgdGVzdF9mc3BhdGhfZnVuY19tYXRjaF9zdHJwYXRoKHNlbGYs
IHBhdGgxKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnJvbSBvcyBpbXBvcnQgZnNwYXRo
CisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIGZyb20gcHkuX3BhdGgu
Y29tbW9uIGltcG9ydCBmc3BhdGgKKyAgICAgICAgYXNzZXJ0IGZzcGF0aChwYXRoMSkgPT0gcGF0
aDEuc3RycGF0aAorCisgICAgQHB5LnRlc3QubWFyay5za2lwKCJzeXMudmVyc2lvbl9pbmZvIDwg
KDMsNikiKQorICAgIGRlZiB0ZXN0X2ZzcGF0aF9vcGVuKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
ZiA9IHBhdGgxLmpvaW4oJ29wZW50ZXN0ZmlsZScpCisgICAgICAgIG9wZW4oZikKKworICAgIEBw
eS50ZXN0Lm1hcmsuc2tpcCgic3lzLnZlcnNpb25faW5mbyA8ICgzLDYpIikKKyAgICBkZWYgdGVz
dF9mc3BhdGhfZnNlbmNvZGUoc2VsZiwgcGF0aDEpOgorICAgICAgICBmcm9tIG9zIGltcG9ydCBm
c2VuY29kZQorICAgICAgICBhc3NlcnQgZnNlbmNvZGUocGF0aDEpID09IGZzZW5jb2RlKHBhdGgx
LnN0cnBhdGgpCisKK2RlZiBzZXR1cHRlc3RmcyhwYXRoKToKKyAgICBpZiBwYXRoLmpvaW4oJ3Nh
bXBsZWZpbGUnKS5jaGVjaygpOgorICAgICAgICByZXR1cm4KKyAgICAjcHJpbnQgInNldHRpbmcg
dXAgdGVzdCBmcyBmb3IiLCByZXByKHBhdGgpCisgICAgc2FtcGxlZmlsZSA9IHBhdGguZW5zdXJl
KCdzYW1wbGVmaWxlJykKKyAgICBzYW1wbGVmaWxlLndyaXRlKCdzYW1wbGVmaWxlXG4nKQorCisg
ICAgZXhlY2ZpbGUgPSBwYXRoLmVuc3VyZSgnZXhlY2ZpbGUnKQorICAgIGV4ZWNmaWxlLndyaXRl
KCd4PTQyJykKKworICAgIGV4ZWNmaWxlcHkgPSBwYXRoLmVuc3VyZSgnZXhlY2ZpbGUucHknKQor
ICAgIGV4ZWNmaWxlcHkud3JpdGUoJ3g9NDInKQorCisgICAgZCA9IHsxOjIsICdoZWxsbyc6ICd3
b3JsZCcsICdhbnN3ZXInOiA0Mn0KKyAgICBwYXRoLmVuc3VyZSgnc2FtcGxlcGlja2xlJykuZHVt
cChkKQorCisgICAgc2FtcGxlZGlyID0gcGF0aC5lbnN1cmUoJ3NhbXBsZWRpcicsIGRpcj0xKQor
ICAgIHNhbXBsZWRpci5lbnN1cmUoJ290aGVyZmlsZScpCisKKyAgICBvdGhlcmRpciA9IHBhdGgu
ZW5zdXJlKCdvdGhlcmRpcicsIGRpcj0xKQorICAgIG90aGVyZGlyLmVuc3VyZSgnX19pbml0X18u
cHknKQorCisgICAgbW9kdWxlX2EgPSBvdGhlcmRpci5lbnN1cmUoJ2EucHknKQorICAgIG1vZHVs
ZV9hLndyaXRlKCdmcm9tIC5iIGltcG9ydCBzdHVmZiBhcyByZXN1bHRcbicpCisgICAgbW9kdWxl
X2IgPSBvdGhlcmRpci5lbnN1cmUoJ2IucHknKQorICAgIG1vZHVsZV9iLndyaXRlKCdzdHVmZj0i
Z290IGl0IlxuJykKKyAgICBtb2R1bGVfYyA9IG90aGVyZGlyLmVuc3VyZSgnYy5weScpCisgICAg
bW9kdWxlX2Mud3JpdGUoJycnaW1wb3J0IHB5OworaW1wb3J0IG90aGVyZGlyLmEKK3ZhbHVlID0g
b3RoZXJkaXIuYS5yZXN1bHQKKycnJykKKyAgICBtb2R1bGVfZCA9IG90aGVyZGlyLmVuc3VyZSgn
ZC5weScpCisgICAgbW9kdWxlX2Qud3JpdGUoJycnaW1wb3J0IHB5OworZnJvbSBvdGhlcmRpciBp
bXBvcnQgYQordmFsdWUyID0gYS5yZXN1bHQKKycnJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9wYXRoL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvY29uZnRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODRmYjVjODI2OTQwNjdmZDE2MmE1OGYyYTA2ZDQ0ZmZiNjNhNmNkOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL2NvbmZ0ZXN0LnB5CkBAIC0wLDAg
KzEsODAgQEAKK2ltcG9ydCBweQoraW1wb3J0IHN5cworZnJvbSBweS5fcGF0aCBpbXBvcnQgc3Zu
d2MgYXMgc3ZuY29tbW9uCisKK3N2bmJpbiA9IHB5LnBhdGgubG9jYWwuc3lzZmluZCgnc3ZuJykK
K3JlcG9kdW1wID0gcHkucGF0aC5sb2NhbChfX2ZpbGVfXykuZGlycGF0aCgncmVwb3Rlc3QuZHVt
cCcpCitmcm9tIHB5LmJ1aWx0aW4gaW1wb3J0IHByaW50XworCitkZWYgcHl0ZXN0X2Z1bmNhcmdf
X3JlcG93YzEocmVxdWVzdCk6CisgICAgaWYgc3ZuYmluIGlzIE5vbmU6CisgICAgICAgIHB5LnRl
c3Quc2tpcCgic3ZuIGJpbmFyeSBub3QgZm91bmQiKQorCisgICAgdG1wZGlyID0gcmVxdWVzdC5n
ZXRmdW5jYXJndmFsdWUoInRtcGRpciIpCisgICAgcmVwbywgcmVwb3VybCwgd2MgPSByZXF1ZXN0
LmNhY2hlZF9zZXR1cCgKKyAgICAgICAgc2V0dXA9bGFtYmRhOiBnZXRyZXBvd2ModG1wZGlyLCAi
cGF0aDFyZXBvIiwgInBhdGgxd2MiKSwKKyAgICAgICAgc2NvcGU9Im1vZHVsZSIsCisgICAgKQor
ICAgIGZvciB4IGluICgndGVzdF9yZW1vdmUnLCAndGVzdF9tb3ZlJywgJ3Rlc3Rfc3RhdHVzX2Rl
bGV0ZWQnKToKKyAgICAgICAgaWYgcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXy5zdGFydHN3aXRo
KHgpOgorICAgICAgICAgICAgI3ByaW50ID4+c3lzLnN0ZGVyciwgKCJzYXZpbmcgcmVwbyIsIHJl
cG8sICJmb3IiLCByZXF1ZXN0LmZ1bmN0aW9uKQorICAgICAgICAgICAgX3NhdmVkcmVwb3djID0g
c2F2ZV9yZXBvd2MocmVwbywgd2MpCisgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihs
YW1iZGE6IHJlc3RvcmVfcmVwb3djKF9zYXZlZHJlcG93YykpCisgICAgcmV0dXJuIHJlcG8sIHJl
cG91cmwsIHdjCisKK2RlZiBweXRlc3RfZnVuY2FyZ19fcmVwb3djMihyZXF1ZXN0KToKKyAgICB0
bXBkaXIgPSByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgidG1wZGlyIikKKyAgICBuYW1lID0gcmVx
dWVzdC5mdW5jdGlvbi5fX25hbWVfXworICAgIHJlcG8sIHVybCwgd2MgPSBnZXRyZXBvd2ModG1w
ZGlyLCAiJXMtcmVwby0yIiAlIG5hbWUsICIlcy13Yy0yIiAlIG5hbWUpCisgICAgcmV0dXJuIHJl
cG8sIHVybCwgd2MKKworZGVmIGdldHN2bmJpbigpOgorICAgIGlmIHN2bmJpbiBpcyBOb25lOgor
ICAgICAgICBweS50ZXN0LnNraXAoInN2biBiaW5hcnkgbm90IGZvdW5kIikKKyAgICByZXR1cm4g
c3ZuYmluCisKKyMgbWFrZSBhIHdjIGRpcmVjdG9yeSBvdXQgb2YgYSBnaXZlbiByb290IHVybAor
IyBjYWNoZSBwcmV2aW91c2x5IG9idGFpbmVkIHdjcyEKKyMKK2RlZiBnZXRyZXBvd2ModG1wZGly
LCByZXBvbmFtZT0nYmFzZXRlc3RyZXBvJywgd2NuYW1lPSd3YycpOgorICAgIHJlcG8gPSB0bXBk
aXIubWtkaXIocmVwb25hbWUpCisgICAgd2NkaXIgPSB0bXBkaXIubWtkaXIod2NuYW1lKQorICAg
IHJlcG8uZW5zdXJlKGRpcj0xKQorICAgIHB5LnByb2Nlc3MuY21kZXhlYygnc3ZuYWRtaW4gY3Jl
YXRlICIlcyInICUKKyAgICAgICAgICAgIHN2bmNvbW1vbi5fZXNjYXBlX2hlbHBlcihyZXBvKSkK
KyAgICBweS5wcm9jZXNzLmNtZGV4ZWMoJ3N2bmFkbWluIGxvYWQgLXEgIiVzIiA8IiVzIicgJQor
ICAgICAgICAgICAgKHN2bmNvbW1vbi5fZXNjYXBlX2hlbHBlcihyZXBvKSwgcmVwb2R1bXApKQor
ICAgIHByaW50XygiY3JlYXRlZCBzdm4gcmVwb3NpdG9yeSIsIHJlcG8pCisgICAgd2NkaXIuZW5z
dXJlKGRpcj0xKQorICAgIHdjID0gcHkucGF0aC5zdm53Yyh3Y2RpcikKKyAgICBpZiBzeXMucGxh
dGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgcmVwb3VybCA9ICJmaWxlOi8vIiArICcvJyArIHN0
cihyZXBvKS5yZXBsYWNlKCdcXCcsICcvJykKKyAgICBlbHNlOgorICAgICAgICByZXBvdXJsID0g
ImZpbGU6Ly8lcyIgJSByZXBvCisgICAgd2MuY2hlY2tvdXQocmVwb3VybCkKKyAgICBwcmludF8o
ImNoZWNrZWQgb3V0IG5ldyByZXBvIGludG8iLCB3YykKKyAgICByZXR1cm4gKHJlcG8sIHJlcG91
cmwsIHdjKQorCisKK2RlZiBzYXZlX3JlcG93YyhyZXBvLCB3Yyk6CisgICAgYXNzZXJ0IG5vdCBz
dHIocmVwbykuc3RhcnRzd2l0aCgiZmlsZTovLyIpLCByZXBvCisgICAgYXNzZXJ0IHJlcG8uY2hl
Y2soKQorICAgIHNhdmVkcmVwbyA9IHJlcG8uZGlycGF0aChyZXBvLmJhc2VuYW1lKyIuMSIpCisg
ICAgc2F2ZWR3YyA9IHdjLmRpcnBhdGgod2MuYmFzZW5hbWUrIi4xIikKKyAgICByZXBvLmNvcHko
c2F2ZWRyZXBvKQorICAgIHdjLmxvY2FscGF0aC5jb3B5KHNhdmVkd2MubG9jYWxwYXRoKQorICAg
IHJldHVybiBzYXZlZHJlcG8sIHNhdmVkd2MKKworZGVmIHJlc3RvcmVfcmVwb3djKG9iaik6Cisg
ICAgc2F2ZWRyZXBvLCBzYXZlZHdjID0gb2JqCisgICAgI3ByaW50ID4+c3lzLnN0ZGVyciwgKCJy
ZXN0b3JpbmciLCBzYXZlZHJlcG8pCisgICAgcmVwbyA9IHNhdmVkcmVwby5uZXcoYmFzZW5hbWU9
c2F2ZWRyZXBvLmJhc2VuYW1lWzotMl0pCisgICAgYXNzZXJ0IHJlcG8uY2hlY2soKQorICAgIHdj
ID0gc2F2ZWR3Yy5uZXcoYmFzZW5hbWU9c2F2ZWR3Yy5iYXNlbmFtZVs6LTJdKQorICAgIGFzc2Vy
dCB3Yy5jaGVjaygpCisgICAgd2MubG9jYWxwYXRoLnJlbW92ZSgpCisgICAgcmVwby5yZW1vdmUo
KQorICAgIHNhdmVkcmVwby5tb3ZlKHJlcG8pCisgICAgc2F2ZWR3Yy5sb2NhbHBhdGgubW92ZSh3
Yy5sb2NhbHBhdGgpCisgICAgcHkucGF0aC5zdm51cmwuX2xzbm9yZXZjYWNoZS5jbGVhcigpCisg
ICAgcHkucGF0aC5zdm51cmwuX2xzcmV2Y2FjaGUuY2xlYXIoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL3BhdGgvcmVwb3Rlc3QuZHVtcCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3JlcG90
ZXN0LmR1bXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc4MTljYWQ3YTUzMWE3NzJmYjVlMzJiYTFmYTkyNTZhNDMz
MTRhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3JlcG90ZXN0LmR1
bXAKQEAgLTAsMCArMSwyMjggQEAKK1NWTi1mcy1kdW1wLWZvcm1hdC12ZXJzaW9uOiAyCisKK1VV
SUQ6IDg3NmEzMGY0LTFlZWQtMDMxMC1hZWI3LWFlMzE0ZDFlNTkzNAorCitSZXZpc2lvbi1udW1i
ZXI6IDAKK1Byb3AtY29udGVudC1sZW5ndGg6IDU2CitDb250ZW50LWxlbmd0aDogNTYKKworSyA4
Citzdm46ZGF0ZQorViAyNworMjAwNS0wMS0wN1QyMzo1NTozMS43NTU5ODlaCitQUk9QUy1FTkQK
KworUmV2aXNpb24tbnVtYmVyOiAxCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMTgKK0NvbnRlbnQt
bGVuZ3RoOiAxMTgKKworSyA3Citzdm46bG9nCitWIDIwCit0ZXN0cmVwbyBzZXR1cCByZXYgMQor
SyAxMAorc3ZuOmF1dGhvcgorViAzCitocGsKK0sgOAorc3ZuOmRhdGUKK1YgMjcKKzIwMDUtMDEt
MDdUMjM6NTU6MzcuODE1Mzg2WgorUFJPUFMtRU5ECisKK05vZGUtcGF0aDogZXhlY2ZpbGUKK05v
ZGUta2luZDogZmlsZQorTm9kZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAK
K1RleHQtY29udGVudC1sZW5ndGg6IDQKK1RleHQtY29udGVudC1tZDU6IGQ0YjViYzYxZTE2MzEw
ZjA4YzVkMTE4NjZlYmEwYTIyCitDb250ZW50LWxlbmd0aDogMTQKKworUFJPUFMtRU5ECit4PTQy
CisKK05vZGUtcGF0aDogb3RoZXJkaXIKK05vZGUta2luZDogZGlyCitOb2RlLWFjdGlvbjogYWRk
CitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMAorQ29udGVudC1sZW5ndGg6IDEwCisKK1BST1BTLUVO
RAorCisKK05vZGUtcGF0aDogb3RoZXJkaXIvX19pbml0X18ucHkKK05vZGUta2luZDogZmlsZQor
Tm9kZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK1RleHQtY29udGVudC1s
ZW5ndGg6IDAKK1RleHQtY29udGVudC1tZDU6IGQ0MWQ4Y2Q5OGYwMGIyMDRlOTgwMDk5OGVjZjg0
MjdlCitDb250ZW50LWxlbmd0aDogMTAKKworUFJPUFMtRU5ECisKKworTm9kZS1wYXRoOiBvdGhl
cmRpci9hLnB5CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVu
dC1sZW5ndGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiAzMAorVGV4dC1jb250ZW50LW1kNTog
MjQ3YzdkYWViMmVlNWRjYWIwYWJhN2JkMTJiYWQ2NjUKK0NvbnRlbnQtbGVuZ3RoOiA0MAorCitQ
Uk9QUy1FTkQKK2Zyb20gYiBpbXBvcnQgc3R1ZmYgYXMgcmVzdWx0CisKKworTm9kZS1wYXRoOiBv
dGhlcmRpci9iLnB5CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29u
dGVudC1sZW5ndGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiAxNQorVGV4dC1jb250ZW50LW1k
NTogYzFiMTM1MDM0NjlhNzcxMTMwNmQwM2E0YjA3MjFiYzYKK0NvbnRlbnQtbGVuZ3RoOiAyNQor
CitQUk9QUy1FTkQKK3N0dWZmPSJnb3QgaXQiCisKKworTm9kZS1wYXRoOiBvdGhlcmRpci9jLnB5
CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVudC1sZW5ndGg6
IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA3NQorVGV4dC1jb250ZW50LW1kNTogMjUwY2RiNmI1
ZGY2ODUzNjE1MmM2ODFmNDgyOTc1NjkKK0NvbnRlbnQtbGVuZ3RoOiA4NQorCitQUk9QUy1FTkQK
K2ltcG9ydCBweTsgcHkubWFnaWMuYXV0b3BhdGgoKQoraW1wb3J0IG90aGVyZGlyLmEKK3ZhbHVl
ID0gb3RoZXJkaXIuYS5yZXN1bHQKKworCitOb2RlLXBhdGg6IG90aGVyZGlyL2QucHkKK05vZGUt
a2luZDogZmlsZQorTm9kZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK1Rl
eHQtY29udGVudC1sZW5ndGg6IDcyCitUZXh0LWNvbnRlbnQtbWQ1OiA5NDBjOWM2MjFlN2IxOThl
MDgxNDU5NjQyYzM3ZjVhNworQ29udGVudC1sZW5ndGg6IDgyCisKK1BST1BTLUVORAoraW1wb3J0
IHB5OyBweS5tYWdpYy5hdXRvcGF0aCgpCitmcm9tIG90aGVyZGlyIGltcG9ydCBhCit2YWx1ZTIg
PSBhLnJlc3VsdAorCisKK05vZGUtcGF0aDogc2FtcGxlZGlyCitOb2RlLWtpbmQ6IGRpcgorTm9k
ZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK0NvbnRlbnQtbGVuZ3RoOiAx
MAorCitQUk9QUy1FTkQKKworCitOb2RlLXBhdGg6IHNhbXBsZWRpci9vdGhlcmZpbGUKK05vZGUt
a2luZDogZmlsZQorTm9kZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK1Rl
eHQtY29udGVudC1sZW5ndGg6IDAKK1RleHQtY29udGVudC1tZDU6IGQ0MWQ4Y2Q5OGYwMGIyMDRl
OTgwMDk5OGVjZjg0MjdlCitDb250ZW50LWxlbmd0aDogMTAKKworUFJPUFMtRU5ECisKKworTm9k
ZS1wYXRoOiBzYW1wbGVmaWxlCitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1By
b3AtY29udGVudC1sZW5ndGg6IDQwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiAxMQorVGV4dC1jb250
ZW50LW1kNTogOTIyNWFjMjhiMzIxNTY5NzlhYjY0ODJiOGJiNWZiOGMKK0NvbnRlbnQtbGVuZ3Ro
OiA1MQorCitLIDEzCitzdm46ZW9sLXN0eWxlCitWIDYKK25hdGl2ZQorUFJPUFMtRU5ECitzYW1w
bGVmaWxlCisKKworTm9kZS1wYXRoOiBzYW1wbGVwaWNrbGUKK05vZGUta2luZDogZmlsZQorTm9k
ZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK1RleHQtY29udGVudC1sZW5n
dGg6IDU2CitUZXh0LWNvbnRlbnQtbWQ1OiA3MTlkODVjMTMyOWEzMzEzNGJiOThmNTZiNzU2YzU0
NQorQ29udGVudC1sZW5ndGg6IDY2CisKK1BST1BTLUVORAorKGRwMQorUydhbnN3ZXInCitwMgor
STQyCitzSTEKK0kyCitzUydoZWxsbycKK3AzCitTJ3dvcmxkJworcDQKK3MuCisKK1JldmlzaW9u
LW51bWJlcjogMgorUHJvcC1jb250ZW50LWxlbmd0aDogMTA4CitDb250ZW50LWxlbmd0aDogMTA4
CisKK0sgNworc3ZuOmxvZworViAxMAorc2Vjb25kIHJldgorSyAxMAorc3ZuOmF1dGhvcgorViAz
CitocGsKK0sgOAorc3ZuOmRhdGUKK1YgMjcKKzIwMDUtMDEtMDdUMjM6NTU6MzkuMjIzMjAyWgor
UFJPUFMtRU5ECisKK05vZGUtcGF0aDogYW5vdGhlcmZpbGUKK05vZGUta2luZDogZmlsZQorTm9k
ZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK1RleHQtY29udGVudC1sZW5n
dGg6IDUKK1RleHQtY29udGVudC1tZDU6IDVkNDE0MDJhYmM0YjJhNzZiOTcxOWQ5MTEwMTdjNTky
CitDb250ZW50LWxlbmd0aDogMTUKKworUFJPUFMtRU5ECitoZWxsbworCitSZXZpc2lvbi1udW1i
ZXI6IDMKK1Byb3AtY29udGVudC1sZW5ndGg6IDEwNgorQ29udGVudC1sZW5ndGg6IDEwNgorCitL
IDcKK3N2bjpsb2cKK1YgOQordGhpcmQgcmV2CitLIDEwCitzdm46YXV0aG9yCitWIDMKK2hwawor
SyA4Citzdm46ZGF0ZQorViAyNworMjAwNS0wMS0wN1QyMzo1NTo0MS41NTY2NDJaCitQUk9QUy1F
TkQKKworTm9kZS1wYXRoOiBhbm90aGVyZmlsZQorTm9kZS1raW5kOiBmaWxlCitOb2RlLWFjdGlv
bjogY2hhbmdlCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA1CitUZXh0LWNvbnRlbnQtbWQ1OiA3ZDc5
MzAzN2EwNzYwMTg2NTc0YjAyODJmMmY0MzVlNworQ29udGVudC1sZW5ndGg6IDUKKword29ybGQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvc3ZudGVzdGJhc2UucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvcGF0aC9zdm50ZXN0YmFzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDk0YTljYTY0OWNk
MzEzOWMwNGU0YWRhZWNkMjY1NTA0MzZmOWEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
ZXN0aW5nL3BhdGgvc3ZudGVzdGJhc2UucHkKQEAgLTAsMCArMSwzMSBAQAoraW1wb3J0IHN5cwor
aW1wb3J0IHB5Citmcm9tIHB5Ll9wYXRoIGltcG9ydCBzdm53YyBhcyBzdm5jb21tb24KK2Zyb20g
Y29tbW9uIGltcG9ydCBDb21tb25GU1Rlc3RzCisKK2NsYXNzIENvbW1vblN2blRlc3RzKENvbW1v
bkZTVGVzdHMpOgorCisgICAgZGVmIHRlc3RfcHJvcGdldChzZWxmLCBwYXRoMSk6CisgICAgICAg
IHVybCA9IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKQorICAgICAgICB2YWx1ZSA9IHVybC5wcm9w
Z2V0KCdzdm46ZW9sLXN0eWxlJykKKyAgICAgICAgYXNzZXJ0IHZhbHVlID09ICduYXRpdmUnCisK
KyAgICBkZWYgdGVzdF9wcm9wbGlzdChzZWxmLCBwYXRoMSk6CisgICAgICAgIHVybCA9IHBhdGgx
LmpvaW4oInNhbXBsZWZpbGUiKQorICAgICAgICByZXMgPSB1cmwucHJvcGxpc3QoKQorICAgICAg
ICBhc3NlcnQgcmVzWydzdm46ZW9sLXN0eWxlJ10gPT0gJ25hdGl2ZScKKworICAgIGRlZiB0ZXN0
X2luZm8oc2VsZiwgcGF0aDEpOgorICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCJzYW1wbGVmaWxl
IikKKyAgICAgICAgcmVzID0gdXJsLmluZm8oKQorICAgICAgICBhc3NlcnQgcmVzLnNpemUgPiBs
ZW4oInNhbXBsZWZpbGUiKSBhbmQgcmVzLmNyZWF0ZWRfcmV2ID49IDAKKworICAgIGRlZiB0ZXN0
X2xvZ19zaW1wbGUoc2VsZiwgcGF0aDEpOgorICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCJzYW1w
bGVmaWxlIikKKyAgICAgICAgbG9nZW50cmllcyA9IHVybC5sb2coKQorICAgICAgICBmb3IgbG9n
ZW50cnkgaW4gbG9nZW50cmllczoKKyAgICAgICAgICAgIGFzc2VydCBsb2dlbnRyeS5yZXYgPT0g
MQorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIobG9nZW50cnksICdhdXRob3InKQorICAgICAg
ICAgICAgYXNzZXJ0IGhhc2F0dHIobG9nZW50cnksICdkYXRlJykKKworI2NhY2hlLnJlcG9zaXRv
cmllcy5wdXQoc3ZucmVwb3VybCwgMTIwMCwgMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9wYXRoL3Rlc3RfY2FjaGV1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9jYWNo
ZXV0aWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlmYzA3NDYzYTcyNmEzMTM4ZDJlYmQwMzNiNTBlMTRkYzBj
ZWEzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rlc3RfY2FjaGV1
dGlsLnB5CkBAIC0wLDAgKzEsODkgQEAKK2ltcG9ydCBweXRlc3QKK2Zyb20gcHkuX3BhdGggaW1w
b3J0IGNhY2hldXRpbAorCitpbXBvcnQgdGltZQorCitjbGFzcyBCYXNpY0NhY2hlQVBJVGVzdDoK
KyAgICBjYWNoZSA9IE5vbmUKKyAgICBkZWYgdGVzdF9nZXRvcmJ1aWxkKHNlbGYpOgorICAgICAg
ICB2YWwgPSBzZWxmLmNhY2hlLmdldG9yYnVpbGQoLTQyLCBsYW1iZGE6IDQyKQorICAgICAgICBh
c3NlcnQgdmFsID09IDQyCisgICAgICAgIHZhbCA9IHNlbGYuY2FjaGUuZ2V0b3JidWlsZCgtNDIs
IGxhbWJkYTogMjMpCisgICAgICAgIGFzc2VydCB2YWwgPT0gNDIKKworICAgIGRlZiB0ZXN0X2Nh
Y2hlX2dldF9rZXlfZXJyb3Ioc2VsZik6CisgICAgICAgIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3Is
ICJzZWxmLmNhY2hlLl9nZXRlbnRyeSgtMjMpIikKKworICAgIGRlZiB0ZXN0X2RlbGVudHJ5X25v
bl9yYWlzaW5nKHNlbGYpOgorICAgICAgICBzZWxmLmNhY2hlLmdldG9yYnVpbGQoMTAwLCBsYW1i
ZGE6IDEwMCkKKyAgICAgICAgc2VsZi5jYWNoZS5kZWxlbnRyeSgxMDApCisgICAgICAgIHB5dGVz
dC5yYWlzZXMoS2V5RXJyb3IsICJzZWxmLmNhY2hlLl9nZXRlbnRyeSgxMDApIikKKworICAgIGRl
ZiB0ZXN0X2RlbGVudHJ5X3JhaXNpbmcoc2VsZik6CisgICAgICAgIHNlbGYuY2FjaGUuZ2V0b3Ji
dWlsZCgxMDAsIGxhbWJkYTogMTAwKQorICAgICAgICBzZWxmLmNhY2hlLmRlbGVudHJ5KDEwMCkK
KyAgICAgICAgcHl0ZXN0LnJhaXNlcyhLZXlFcnJvciwgc2VsZi5jYWNoZS5kZWxlbnRyeSwgMTAw
LCByYWlzaW5nPVRydWUpCisKKyAgICBkZWYgdGVzdF9jbGVhcihzZWxmKToKKyAgICAgICAgc2Vs
Zi5jYWNoZS5jbGVhcigpCisKKworY2xhc3MgVGVzdEJ1aWxkY29zdEFjY2VzcyhCYXNpY0NhY2hl
QVBJVGVzdCk6CisgICAgY2FjaGUgPSBjYWNoZXV0aWwuQnVpbGRjb3N0QWNjZXNzQ2FjaGUobWF4
ZW50cmllcz0xMjgpCisKKyAgICBkZWYgdGVzdF9jYWNoZV93b3Jrc19zb21ld2hhdF9zaW1wbGUo
c2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBjYWNoZSA9IGNhY2hldXRpbC5CdWlsZGNvc3RB
Y2Nlc3NDYWNoZSgpCisgICAgICAgICMgdGhlIGRlZmF1bHQgZ2V0dGltZQorICAgICAgICAjIEJ1
aWxkY29zdEFjY2Vzc0NhY2hlLmJ1aWxkIGNhbgorICAgICAgICAjIHJlc3VsdCBpbnRvIHRpbWUo
KS10aW1lKCkgPT0gMCB3aGljaCBtYWtlcyB0aGUgYmVsb3cKKyAgICAgICAgIyB0ZXN0IGZhaWwg
cmFuZG9tbHkuICBMZXQncyByYXRoZXIgdXNlIGluY3JlbWVudGluZworICAgICAgICAjIG51bWJl
cnMgaW5zdGVhZC4KKyAgICAgICAgbCA9IFswXQorCisgICAgICAgIGRlZiBjb3VudGVyKCk6Cisg
ICAgICAgICAgICBsWzBdID0gbFswXSArIDEKKyAgICAgICAgICAgIHJldHVybiBsWzBdCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoY2FjaGV1dGlsLCAnZ2V0dGltZScsIGNvdW50ZXIpCisg
ICAgICAgIGZvciB4IGluIHJhbmdlKGNhY2hlLm1heGVudHJpZXMpOgorICAgICAgICAgICAgeSA9
IGNhY2hlLmdldG9yYnVpbGQoeCwgbGFtYmRhOiB4KQorICAgICAgICAgICAgYXNzZXJ0IHggPT0g
eQorICAgICAgICBmb3IgeCBpbiByYW5nZShjYWNoZS5tYXhlbnRyaWVzKToKKyAgICAgICAgICAg
IGFzc2VydCBjYWNoZS5nZXRvcmJ1aWxkKHgsIE5vbmUpID09IHgKKyAgICAgICAgaGFsZmVudHJp
ZXMgPSBpbnQoY2FjaGUubWF4ZW50cmllcyAvIDIpCisgICAgICAgIGZvciB4IGluIHJhbmdlKGhh
bGZlbnRyaWVzKToKKyAgICAgICAgICAgIGFzc2VydCBjYWNoZS5nZXRvcmJ1aWxkKHgsIE5vbmUp
ID09IHgKKyAgICAgICAgICAgIGFzc2VydCBjYWNoZS5nZXRvcmJ1aWxkKHgsIE5vbmUpID09IHgK
KyAgICAgICAgIyBldmljdCBvbmUgZW50cnkKKyAgICAgICAgdmFsID0gY2FjaGUuZ2V0b3JidWls
ZCgtMSwgbGFtYmRhOiA0MikKKyAgICAgICAgYXNzZXJ0IHZhbCA9PSA0MgorICAgICAgICAjIGNo
ZWNrIHRoYXQgcmVjZW50bHkgdXNlZCBvbmVzIGFyZSBzdGlsbCB0aGVyZQorICAgICAgICAjIGFu
ZCBhcmUgbm90IGJ1aWxkIGFnYWluCisgICAgICAgIGZvciB4IGluIHJhbmdlKGhhbGZlbnRyaWVz
KToKKyAgICAgICAgICAgIGFzc2VydCBjYWNoZS5nZXRvcmJ1aWxkKHgsIE5vbmUpID09IHgKKyAg
ICAgICAgYXNzZXJ0IGNhY2hlLmdldG9yYnVpbGQoLTEsIE5vbmUpID09IDQyCisKKworY2xhc3Mg
VGVzdEFnaW5nKEJhc2ljQ2FjaGVBUElUZXN0KToKKyAgICBtYXhzZWNzID0gMC4xMAorICAgIGNh
Y2hlID0gY2FjaGV1dGlsLkFnaW5nQ2FjaGUobWF4ZW50cmllcz0xMjgsIG1heHNlY29uZHM9bWF4
c2VjcykKKworICAgIGRlZiB0ZXN0X2NhY2hlX2V2aWN0aW9uKHNlbGYpOgorICAgICAgICBzZWxm
LmNhY2hlLmdldG9yYnVpbGQoMTcsIGxhbWJkYTogMTcpCisgICAgICAgIGVuZHRpbWUgPSB0aW1l
LnRpbWUoKSArIHNlbGYubWF4c2VjcyAqIDEwCisgICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwg
ZW5kdGltZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmNhY2hlLl9n
ZXRlbnRyeSgxNykKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLm1heHNlY3MqMC4zKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoIndhaXRpbmcgZm9yIGNhY2hlIGV2aWN0
aW9uIGZhaWxlZCIpCisKKworZGVmIHRlc3RfcHJ1bmVfbG93ZXN0d2VpZ2h0KCk6CisgICAgbWF4
c2VjcyA9IDAuMDUKKyAgICBjYWNoZSA9IGNhY2hldXRpbC5BZ2luZ0NhY2hlKG1heGVudHJpZXM9
MTAsIG1heHNlY29uZHM9bWF4c2VjcykKKyAgICBmb3IgeCBpbiByYW5nZShjYWNoZS5tYXhlbnRy
aWVzKToKKyAgICAgICAgY2FjaGUuZ2V0b3JidWlsZCh4LCBsYW1iZGE6IHgpCisgICAgdGltZS5z
bGVlcChtYXhzZWNzKjEuMSkKKyAgICBjYWNoZS5nZXRvcmJ1aWxkKGNhY2hlLm1heGVudHJpZXMr
MSwgbGFtYmRhOiA0MikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rlc3RfbG9j
YWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2xvY2FsLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5
MDc1ZDZmYmI0MjY4ZDhhODBhM2E4OWMwZTcxNmIzMTExZTQ5YjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2xvY2FsLnB5CkBAIC0wLDAgKzEsOTc3IEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3Rh
dGVtZW50CitpbXBvcnQgdGltZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgb3MK
K2ltcG9ydCBzeXMKK2ltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2Zyb20gcHkucGF0aCBpbXBvcnQg
bG9jYWwKK2ltcG9ydCBjb21tb24KKworZmFpbHNvbmp5dGhvbiA9IHB5LnRlc3QubWFyay54ZmFp
bCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCitmYWlsc29uanl3aW4zMiA9IHB5
LnRlc3QubWFyay54ZmFpbCgKKyAgICAic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSAi
CisgICAgImFuZCBnZXRhdHRyKG9zLCAnX25hbWUnLCBOb25lKSA9PSAnbnQnIikKK3dpbjMyb25s
eSA9IHB5LnRlc3QubWFyay5za2lwaWYoCisgICAgICAgICJub3QgKHN5cy5wbGF0Zm9ybSA9PSAn
d2luMzInIG9yIGdldGF0dHIob3MsICdfbmFtZScsIE5vbmUpID09ICdudCcpIikKK3NraXBvbndp
bjMyID0gcHkudGVzdC5tYXJrLnNraXBpZigKKyAgICAgICAgInN5cy5wbGF0Zm9ybSA9PSAnd2lu
MzInIG9yIGdldGF0dHIob3MsICdfbmFtZScsIE5vbmUpID09ICdudCciKQorCitBVElNRV9SRVNP
TFVUSU9OID0gMC4wMQorCisKK0BweXRlc3QueWllbGRfZml4dHVyZShzY29wZT0ic2Vzc2lvbiIp
CitkZWYgcGF0aDEodG1wZGlyX2ZhY3RvcnkpOgorICAgIHBhdGggPSB0bXBkaXJfZmFjdG9yeS5t
a3RlbXAoJ3BhdGgnKQorICAgIGNvbW1vbi5zZXR1cHRlc3RmcyhwYXRoKQorICAgIHlpZWxkIHBh
dGgKKyAgICBhc3NlcnQgcGF0aC5qb2luKCJzYW1wbGVmaWxlIikuY2hlY2soKQorCisKK0BweXRl
c3QuZml4dHVyZQorZGVmIGZha2VfZnNwYXRoX29iaihyZXF1ZXN0KToKKyAgICBjbGFzcyBGYWtl
RlNQYXRoQ2xhc3Mob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgor
ICAgICAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgKKworICAgICAgICBkZWYgX19mc3BhdGhfXyhz
ZWxmKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoCisKKyAgICByZXR1cm4gRmFrZUZT
UGF0aENsYXNzKG9zLnBhdGguam9pbigidGhpcyIsICJpcyIsICJhIiwgImZha2UiLCAicGF0aCIp
KQorCisKK2RlZiBiYXRjaF9tYWtlX251bWJlcmVkX2RpcnMocm9vdGRpciwgcmVwZWF0cyk6Cisg
ICAgdHJ5OgorICAgICAgICBmb3IgaSBpbiByYW5nZShyZXBlYXRzKToKKyAgICAgICAgICAgIGRp
cl8gPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0ncmVwcm8tJywgcm9v
dGRpcj1yb290ZGlyKQorICAgICAgICAgICAgZmlsZV8gPSBkaXJfLmpvaW4oJ2ZvbycpCisgICAg
ICAgICAgICBmaWxlXy53cml0ZSgnJXMnICUgaSkKKyAgICAgICAgICAgIGFjdHVhbCA9IGludChm
aWxlXy5yZWFkKCkpCisgICAgICAgICAgICBhc3NlcnQgYWN0dWFsID09IGksICdpbnQoZmlsZV8u
cmVhZCgpKSBpcyAlcyBpbnN0ZWFkIG9mICVzJyAlIChhY3R1YWwsIGkpCisgICAgICAgICAgICBk
aXJfLmpvaW4oJy5sb2NrJykucmVtb3ZlKGlnbm9yZV9lcnJvcnM9VHJ1ZSkKKyAgICAgICAgcmV0
dXJuIFRydWUKKyAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICMgbWFrZXMg
c3VyZSB0aGF0IGludGVycnVwdGluZyB0ZXN0IHNlc3Npb24gd29uJ3QgaGFuZyBpdAorICAgICAg
ICBvcy5leGl0KDIpCisKKworY2xhc3MgVGVzdExvY2FsUGF0aChjb21tb24uQ29tbW9uRlNUZXN0
cyk6CisgICAgZGVmIHRlc3Rfam9pbl9ub3JtcGF0aChzZWxmLCB0bXBkaXIpOgorICAgICAgICBh
c3NlcnQgdG1wZGlyLmpvaW4oIi4iKSA9PSB0bXBkaXIKKyAgICAgICAgcCA9IHRtcGRpci5qb2lu
KCIuLi8lcyIgJSB0bXBkaXIuYmFzZW5hbWUpCisgICAgICAgIGFzc2VydCBwID09IHRtcGRpcgor
ICAgICAgICBwID0gdG1wZGlyLmpvaW4oIi4uLy8lcy8iICUgdG1wZGlyLmJhc2VuYW1lKQorICAg
ICAgICBhc3NlcnQgcCA9PSB0bXBkaXIKKworICAgIEBza2lwb253aW4zMgorICAgIGRlZiB0ZXN0
X2RpcnBhdGhfYWJzX25vX2FicyhzZWxmLCB0bXBkaXIpOgorICAgICAgICBwID0gdG1wZGlyLmpv
aW4oJ2ZvbycpCisgICAgICAgIGFzc2VydCBwLmRpcnBhdGgoJy9iYXInKSA9PSB0bXBkaXIuam9p
bignYmFyJykKKyAgICAgICAgYXNzZXJ0IHRtcGRpci5kaXJwYXRoKCcvYmFyJywgYWJzPVRydWUp
ID09IGxvY2FsKCcvYmFyJykKKworICAgIGRlZiB0ZXN0X2dldGhhc2goc2VsZiwgdG1wZGlyKToK
KyAgICAgICAgbWQ1ID0gcHkuYnVpbHRpbi5fdHJ5aW1wb3J0KCdtZDUnLCAnaGFzaGxpYicpLm1k
NQorICAgICAgICBsaWIgPSBweS5idWlsdGluLl90cnlpbXBvcnQoJ3NoYScsICdoYXNobGliJykK
KyAgICAgICAgc2hhID0gZ2V0YXR0cihsaWIsICdzaGExJywgZ2V0YXR0cihsaWIsICdzaGEnLCBO
b25lKSkKKyAgICAgICAgZm4gPSB0bXBkaXIuam9pbigidGVzdGhhc2hmaWxlIikKKyAgICAgICAg
ZGF0YSA9ICdoZWxsbycuZW5jb2RlKCdhc2NpaScpCisgICAgICAgIGZuLndyaXRlKGRhdGEsIG1v
ZGU9IndiIikKKyAgICAgICAgYXNzZXJ0IGZuLmNvbXB1dGVoYXNoKCJtZDUiKSA9PSBtZDUoZGF0
YSkuaGV4ZGlnZXN0KCkKKyAgICAgICAgYXNzZXJ0IGZuLmNvbXB1dGVoYXNoKCJzaGExIikgPT0g
c2hhKGRhdGEpLmhleGRpZ2VzdCgpCisgICAgICAgIHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
IGZuLmNvbXB1dGVoYXNoLCAiYXNkYXNkIikKKworICAgIGRlZiB0ZXN0X3JlbW92ZV9yZW1vdmVz
X3JlYWRvbmx5X2ZpbGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgcmVhZG9ubHlfZmlsZSA9IHRt
cGRpci5qb2luKCdyZWFkb25seScpLmVuc3VyZSgpCisgICAgICAgIHJlYWRvbmx5X2ZpbGUuY2ht
b2QoMCkKKyAgICAgICAgcmVhZG9ubHlfZmlsZS5yZW1vdmUoKQorICAgICAgICBhc3NlcnQgbm90
IHJlYWRvbmx5X2ZpbGUuY2hlY2soZXhpc3RzPTEpCisKKyAgICBkZWYgdGVzdF9yZW1vdmVfcmVt
b3Zlc19yZWFkb25seV9kaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgcmVhZG9ubHlfZGlyID0g
dG1wZGlyLmpvaW4oJ3JlYWRvbmx5ZGlyJykuZW5zdXJlKGRpcj0xKQorICAgICAgICByZWFkb25s
eV9kaXIuY2htb2QoaW50KCI1MDAiLCA4KSkKKyAgICAgICAgcmVhZG9ubHlfZGlyLnJlbW92ZSgp
CisgICAgICAgIGFzc2VydCBub3QgcmVhZG9ubHlfZGlyLmNoZWNrKGV4aXN0cz0xKQorCisgICAg
ZGVmIHRlc3RfcmVtb3ZlX3JlbW92ZXNfZGlyX2FuZF9yZWFkb25seV9maWxlKHNlbGYsIHRtcGRp
cik6CisgICAgICAgIHJlYWRvbmx5X2RpciA9IHRtcGRpci5qb2luKCdyZWFkb25seWRpcicpLmVu
c3VyZShkaXI9MSkKKyAgICAgICAgcmVhZG9ubHlfZmlsZSA9IHJlYWRvbmx5X2Rpci5qb2luKCdy
ZWFkb25seWZpbGUnKS5lbnN1cmUoKQorICAgICAgICByZWFkb25seV9maWxlLmNobW9kKDApCisg
ICAgICAgIHJlYWRvbmx5X2Rpci5yZW1vdmUoKQorICAgICAgICBhc3NlcnQgbm90IHJlYWRvbmx5
X2Rpci5jaGVjayhleGlzdHM9MSkKKworICAgIGRlZiB0ZXN0X3JlbW92ZV9yb3V0ZXNfaWdub3Jl
X2Vycm9ycyhzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbCA9IFtdCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCisgICAgICAgICAgICAnc2h1dGlsLnJtdHJlZScsCisg
ICAgICAgICAgICBsYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBsLmFwcGVuZChrd2FyZ3MpKQorICAg
ICAgICB0bXBkaXIucmVtb3ZlKCkKKyAgICAgICAgYXNzZXJ0IG5vdCBsWzBdWydpZ25vcmVfZXJy
b3JzJ10KKyAgICAgICAgZm9yIHZhbCBpbiAoVHJ1ZSwgRmFsc2UpOgorICAgICAgICAgICAgbFs6
XSA9IFtdCisgICAgICAgICAgICB0bXBkaXIucmVtb3ZlKGlnbm9yZV9lcnJvcnM9dmFsKQorICAg
ICAgICAgICAgYXNzZXJ0IGxbMF1bJ2lnbm9yZV9lcnJvcnMnXSA9PSB2YWwKKworICAgIGRlZiB0
ZXN0X2luaXRpYWxpemVfY3VyZGlyKHNlbGYpOgorICAgICAgICBhc3NlcnQgc3RyKGxvY2FsKCkp
ID09IG9zLmdldGN3ZCgpCisKKyAgICBAc2tpcG9ud2luMzIKKyAgICBkZWYgdGVzdF9jaGRpcl9n
b25lKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgxLmVuc3VyZSgiZGlyX3RvX2JlX3Jl
bW92ZWQiLCBkaXI9MSkKKyAgICAgICAgcC5jaGRpcigpCisgICAgICAgIHAucmVtb3ZlKCkKKyAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhweS5lcnJvci5FTk9FTlQsIHB5LnBhdGgubG9jYWwpCisgICAg
ICAgIGFzc2VydCBwYXRoMS5jaGRpcigpIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IG9zLmdldGN3
ZCgpID09IHN0cihwYXRoMSkKKworICAgIGRlZiB0ZXN0X2FzX2N3ZChzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIGRpciA9IHBhdGgxLmVuc3VyZSgic3ViZGlyIiwgZGlyPTEpCisgICAgICAgIG9sZCA9
IHB5LnBhdGgubG9jYWwoKQorICAgICAgICB3aXRoIGRpci5hc19jd2QoKSBhcyB4OgorICAgICAg
ICAgICAgYXNzZXJ0IHggPT0gb2xkCisgICAgICAgICAgICBhc3NlcnQgcHkucGF0aC5sb2NhbCgp
ID09IGRpcgorICAgICAgICBhc3NlcnQgb3MuZ2V0Y3dkKCkgPT0gc3RyKG9sZCkKKworICAgIGRl
ZiB0ZXN0X2FzX2N3ZF9leGNlcHRpb24oc2VsZiwgcGF0aDEpOgorICAgICAgICBvbGQgPSBweS5w
YXRoLmxvY2FsKCkKKyAgICAgICAgZGlyID0gcGF0aDEuZW5zdXJlKCJzdWJkaXIiLCBkaXI9MSkK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgd2l0
aCBkaXIuYXNfY3dkKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAg
ICAgIGFzc2VydCBvbGQgPT0gcHkucGF0aC5sb2NhbCgpCisKKyAgICBkZWYgdGVzdF9pbml0aWFs
aXplX3JlbGRpcihzZWxmLCBwYXRoMSk6CisgICAgICAgIHdpdGggcGF0aDEuYXNfY3dkKCk6Cisg
ICAgICAgICAgICBwID0gbG9jYWwoJ3NhbXBsZWZpbGUnKQorICAgICAgICAgICAgYXNzZXJ0IHAu
Y2hlY2soKQorCisgICAgZGVmIHRlc3RfdGlsZGVfZXhwYW5zaW9uKHNlbGYsIG1vbmtleXBhdGNo
LCB0bXBkaXIpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkhPTUUiLCBzdHIodG1wZGly
KSkKKyAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwoIn4iLCBleHBhbmR1c2VyPVRydWUpCisgICAg
ICAgIGFzc2VydCBwID09IG9zLnBhdGguZXhwYW5kdXNlcigifiIpCisKKyAgICBkZWYgdGVzdF9l
cV93aXRoX3N0cmluZ3Moc2VsZiwgcGF0aDEpOgorICAgICAgICBwYXRoMSA9IHBhdGgxLmpvaW4o
J3NhbXBsZWRpcicpCisgICAgICAgIHBhdGgyID0gc3RyKHBhdGgxKQorICAgICAgICBhc3NlcnQg
cGF0aDEgPT0gcGF0aDIKKyAgICAgICAgYXNzZXJ0IHBhdGgyID09IHBhdGgxCisgICAgICAgIHBh
dGgzID0gcGF0aDEuam9pbignc2FtcGxlZmlsZScpCisgICAgICAgIGFzc2VydCBwYXRoMyAhPSBw
YXRoMgorICAgICAgICBhc3NlcnQgcGF0aDIgIT0gcGF0aDMKKworICAgIGRlZiB0ZXN0X2VxX3dp
dGhfbm9uZShzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRoMSAhPSBOb25lICAjIG5v
cWEKKworICAgIGRlZiB0ZXN0X2VxX25vbl9hc2NpaV91bmljb2RlKHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgcGF0aDIgPSBwYXRoMS5qb2luKHUndGVtcCcpCisgICAgICAgIHBhdGgzID0gcGF0aDEu
am9pbih1J2HDp8OjbycpCisgICAgICAgIHBhdGg0ID0gcGF0aDEuam9pbih1J+ODh+OCo+ODrOOC
r+ODiOODqicpCisKKyAgICAgICAgYXNzZXJ0IHBhdGgyICE9IHBhdGgzCisgICAgICAgIGFzc2Vy
dCBwYXRoMiAhPSBwYXRoNAorICAgICAgICBhc3NlcnQgcGF0aDQgIT0gcGF0aDMKKworICAgIGRl
ZiB0ZXN0X2d0X3dpdGhfc3RyaW5ncyhzZWxmLCBwYXRoMSk6CisgICAgICAgIHBhdGgyID0gcGF0
aDEuam9pbignc2FtcGxlZGlyJykKKyAgICAgICAgcGF0aDMgPSBzdHIocGF0aDEuam9pbigidHR0
IikpCisgICAgICAgIGFzc2VydCBwYXRoMyA+IHBhdGgyCisgICAgICAgIGFzc2VydCBwYXRoMiA8
IHBhdGgzCisgICAgICAgIGFzc2VydCBwYXRoMiA8ICJ0dHQiCisgICAgICAgIGFzc2VydCAidHR0
IiA+IHBhdGgyCisgICAgICAgIHBhdGg0ID0gcGF0aDEuam9pbigiYWFhIikKKyAgICAgICAgbCA9
IFtwYXRoMiwgcGF0aDQsIHBhdGgzXQorICAgICAgICBhc3NlcnQgc29ydGVkKGwpID09IFtwYXRo
NCwgcGF0aDIsIHBhdGgzXQorCisgICAgZGVmIHRlc3Rfb3Blbl9hbmRfZW5zdXJlKHNlbGYsIHBh
dGgxKToKKyAgICAgICAgcCA9IHBhdGgxLmpvaW4oInN1YjEiLCAic3ViMiIsICJmaWxlIikKKyAg
ICAgICAgd2l0aCBwLm9wZW4oInciLCBlbnN1cmU9MSkgYXMgZjoKKyAgICAgICAgICAgIGYud3Jp
dGUoImhlbGxvIikKKyAgICAgICAgYXNzZXJ0IHAucmVhZCgpID09ICJoZWxsbyIKKworICAgIGRl
ZiB0ZXN0X3dyaXRlX2FuZF9lbnN1cmUoc2VsZiwgcGF0aDEpOgorICAgICAgICBwID0gcGF0aDEu
am9pbigic3ViMSIsICJzdWIyIiwgImZpbGUiKQorICAgICAgICBwLndyaXRlKCJoZWxsbyIsIGVu
c3VyZT0xKQorICAgICAgICBhc3NlcnQgcC5yZWFkKCkgPT0gImhlbGxvIgorCisgICAgQHB5LnRl
c3QubWFyay5wYXJhbWV0cml6ZSgnYmluJywgKEZhbHNlLCBUcnVlKSkKKyAgICBkZWYgdGVzdF9k
dW1wKHNlbGYsIHRtcGRpciwgYmluKToKKyAgICAgICAgcGF0aCA9IHRtcGRpci5qb2luKCJkdW1w
ZmlsZSVzIiAlIGludChiaW4pKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkID0geydhbnN3
ZXInOiA0Mn0KKyAgICAgICAgICAgIHBhdGguZHVtcChkLCBiaW49YmluKQorICAgICAgICAgICAg
ZiA9IHBhdGgub3BlbigncmIrJykKKyAgICAgICAgICAgIGltcG9ydCBwaWNrbGUKKyAgICAgICAg
ICAgIGRuZXcgPSBwaWNrbGUubG9hZChmKQorICAgICAgICAgICAgYXNzZXJ0IGQgPT0gZG5ldwor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisKKyAgICBAZmFpbHNvbmp5
d2luMzIKKyAgICBkZWYgdGVzdF9zZXRtdGltZShzZWxmKToKKyAgICAgICAgaW1wb3J0IHRlbXBm
aWxlCisgICAgICAgIGltcG9ydCB0aW1lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZkLCBu
YW1lID0gdGVtcGZpbGUubWtzdGVtcCgpCisgICAgICAgICAgICBvcy5jbG9zZShmZCkKKyAgICAg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgbmFtZSA9IHRlbXBmaWxlLm1r
dGVtcCgpCisgICAgICAgICAgICBvcGVuKG5hbWUsICd3JykuY2xvc2UoKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBtdGltZSA9IGludCh0aW1lLnRpbWUoKSktMTAwCisgICAgICAgICAgICBw
YXRoID0gbG9jYWwobmFtZSkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoLm10aW1lKCkgIT0gbXRp
bWUKKyAgICAgICAgICAgIHBhdGguc2V0bXRpbWUobXRpbWUpCisgICAgICAgICAgICBhc3NlcnQg
cGF0aC5tdGltZSgpID09IG10aW1lCisgICAgICAgICAgICBwYXRoLnNldG10aW1lKCkKKyAgICAg
ICAgICAgIGFzc2VydCBwYXRoLm10aW1lKCkgIT0gbXRpbWUKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIG9zLnJlbW92ZShuYW1lKQorCisgICAgZGVmIHRlc3Rfbm9ybXBhdGgoc2VsZiwg
cGF0aDEpOgorICAgICAgICBuZXcxID0gcGF0aDEuam9pbigiL290aGVyZGlyIikKKyAgICAgICAg
bmV3MiA9IHBhdGgxLmpvaW4oIm90aGVyZGlyIikKKyAgICAgICAgYXNzZXJ0IHN0cihuZXcxKSA9
PSBzdHIobmV3MikKKworICAgIGRlZiB0ZXN0X21rZHRlbXBfY3JlYXRpb24oc2VsZik6CisgICAg
ICAgIGQgPSBsb2NhbC5ta2R0ZW1wKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0
IGQuY2hlY2soZGlyPTEpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkLnJlbW92ZShy
ZWM9MSkKKworICAgIGRlZiB0ZXN0X3RtcHJvb3Qoc2VsZik6CisgICAgICAgIGQgPSBsb2NhbC5t
a2R0ZW1wKCkKKyAgICAgICAgdG1wcm9vdCA9IGxvY2FsLmdldF90ZW1wcm9vdCgpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGFzc2VydCBkLmNoZWNrKGRpcj0xKQorICAgICAgICAgICAgYXNz
ZXJ0IGQuZGlycGF0aCgpID09IHRtcHJvb3QKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IGQucmVtb3ZlKHJlYz0xKQorCisgICAgZGVmIHRlc3RfY2hkaXIoc2VsZiwgdG1wZGlyKToKKyAg
ICAgICAgb2xkID0gbG9jYWwoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXMgPSB0bXBk
aXIuY2hkaXIoKQorICAgICAgICAgICAgYXNzZXJ0IHN0cihyZXMpID09IHN0cihvbGQpCisgICAg
ICAgICAgICBhc3NlcnQgb3MuZ2V0Y3dkKCkgPT0gc3RyKHRtcGRpcikKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIG9sZC5jaGRpcigpCisKKyAgICBkZWYgdGVzdF9lbnN1cmVfZmlsZXBh
dGhfd2l0aGRpcihzZWxmLCB0bXBkaXIpOgorICAgICAgICBuZXdmaWxlID0gdG1wZGlyLmpvaW4o
J3Rlc3QxJywgJ3Rlc3QnKQorICAgICAgICBuZXdmaWxlLmVuc3VyZSgpCisgICAgICAgIGFzc2Vy
dCBuZXdmaWxlLmNoZWNrKGZpbGU9MSkKKyAgICAgICAgbmV3ZmlsZS53cml0ZSgiNDIiKQorICAg
ICAgICBuZXdmaWxlLmVuc3VyZSgpCisgICAgICAgIHMgPSBuZXdmaWxlLnJlYWQoKQorICAgICAg
ICBhc3NlcnQgcyA9PSAiNDIiCisKKyAgICBkZWYgdGVzdF9lbnN1cmVfZmlsZXBhdGhfd2l0aG91
dGRpcihzZWxmLCB0bXBkaXIpOgorICAgICAgICBuZXdmaWxlID0gdG1wZGlyLmpvaW4oJ3Rlc3Qx
ZmlsZScpCisgICAgICAgIHQgPSBuZXdmaWxlLmVuc3VyZSgpCisgICAgICAgIGFzc2VydCB0ID09
IG5ld2ZpbGUKKyAgICAgICAgYXNzZXJ0IG5ld2ZpbGUuY2hlY2soZmlsZT0xKQorCisgICAgZGVm
IHRlc3RfZW5zdXJlX2RpcnBhdGgoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbmV3ZmlsZSA9IHRt
cGRpci5qb2luKCd0ZXN0MScsICd0ZXN0ZmlsZScpCisgICAgICAgIHQgPSBuZXdmaWxlLmVuc3Vy
ZShkaXI9MSkKKyAgICAgICAgYXNzZXJ0IHQgPT0gbmV3ZmlsZQorICAgICAgICBhc3NlcnQgbmV3
ZmlsZS5jaGVjayhkaXI9MSkKKworICAgIGRlZiB0ZXN0X2Vuc3VyZV9ub25fYXNjaWlfdW5pY29k
ZShzZWxmLCB0bXBkaXIpOgorICAgICAgICBuZXdmaWxlID0gdG1wZGlyLmpvaW4odSdhw6fDo28n
LHUn44OH44Kj44Os44Kv44OI44OqJykKKyAgICAgICAgdCA9IG5ld2ZpbGUuZW5zdXJlKGRpcj0x
KQorICAgICAgICBhc3NlcnQgdCA9PSBuZXdmaWxlCisgICAgICAgIGFzc2VydCBuZXdmaWxlLmNo
ZWNrKGRpcj0xKQorCisgICAgZGVmIHRlc3RfaW5pdF9mcm9tX3BhdGgoc2VsZiwgdG1wZGlyKToK
KyAgICAgICAgbCA9IGxvY2FsKCkKKyAgICAgICAgbDIgPSBsb2NhbChsKQorICAgICAgICBhc3Nl
cnQgbDIgPT0gbAorCisgICAgICAgIHdjID0gcHkucGF0aC5zdm53YygnLicpCisgICAgICAgIGwz
ID0gbG9jYWwod2MpCisgICAgICAgIGFzc2VydCBsMyBpcyBub3Qgd2MKKyAgICAgICAgYXNzZXJ0
IGwzLnN0cnBhdGggPT0gd2Muc3RycGF0aAorICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIobDMs
ICdjb21taXQnKQorCisgICAgQHB5LnRlc3QubWFyay54ZmFpbChydW49RmFsc2UsIHJlYXNvbj0i
dW5yZWxpYWJsZSBlc3QgZm9yIGxvbmcgZmlsZW5hbWVzIikKKyAgICBkZWYgdGVzdF9sb25nX2Zp
bGVuYW1lcyhzZWxmLCB0bXBkaXIpOgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMy
IjoKKyAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgid2luMzI6IHdvcmsgYXJvdW5kIG5lZWRlZCBm
b3IgcGF0aCBsZW5ndGggbGltaXQiKQorICAgICAgICAjIHNlZSBodHRwOi8vY29kZXNwZWFrLm5l
dC9waXBlcm1haWwvcHktZGV2LzIwMDhxMi8wMDA5MjIuaHRtbAorCisgICAgICAgICMgdGVzdGlu
ZyBwYXRocyA+IDI2MCBjaGFycyAod2hpY2ggaXMgV2luZG93cycgbGltaXRhdGlvbiwgYnV0Cisg
ICAgICAgICMgZGVwZW5kaW5nIG9uIGhvdyB0aGUgcGF0aHMgYXJlIHVzZWQpLCBidXQgPiA0MDk2
ICh3aGljaCBpcyB0aGUKKyAgICAgICAgIyBMaW51eCcgbGltaXRhdGlvbikgLSB0aGUgYmVoYXZp
b3VyIG9mIHBhdGhzIHdpdGggbmFtZXMgPiA0MDk2IGNoYXJzCisgICAgICAgICMgaXMgdW5kZXRl
cm1pbmVkCisgICAgICAgIG5ld2ZpbGVuYW1lID0gJy90ZXN0JyAqIDYwCisgICAgICAgIGwgPSB0
bXBkaXIuam9pbihuZXdmaWxlbmFtZSkKKyAgICAgICAgbC5lbnN1cmUoZmlsZT1UcnVlKQorICAg
ICAgICBsLndyaXRlKCdmb28nKQorICAgICAgICBsMiA9IHRtcGRpci5qb2luKG5ld2ZpbGVuYW1l
KQorICAgICAgICBhc3NlcnQgbDIucmVhZCgpID09ICdmb28nCisKKyAgICBkZWYgdGVzdF92aXNp
dF9kZXB0aF9maXJzdChzZWxmLCB0bXBkaXIpOgorICAgICAgICB0bXBkaXIuZW5zdXJlKCJhIiwg
IjEiKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJiIiwgIjIiKQorICAgICAgICBwMyA9IHRtcGRp
ci5lbnN1cmUoImJyZWFkdGgiKQorICAgICAgICBsID0gbGlzdCh0bXBkaXIudmlzaXQobGFtYmRh
IHg6IHguY2hlY2soZmlsZT0xKSkpCisgICAgICAgIGFzc2VydCBsZW4obCkgPT0gMworICAgICAg
ICAjIGNoZWNrIHRoYXQgYnJlYWR0aCBjb21lcyBsYXN0CisgICAgICAgIGFzc2VydCBsWzJdID09
IHAzCisKKyAgICBkZWYgdGVzdF92aXNpdF9yZWNfZm5tYXRjaChzZWxmLCB0bXBkaXIpOgorICAg
ICAgICBwMSA9IHRtcGRpci5lbnN1cmUoImEiLCAiMTIzIikKKyAgICAgICAgdG1wZGlyLmVuc3Vy
ZSgiLmIiLCAiMzQ1IikKKyAgICAgICAgbCA9IGxpc3QodG1wZGlyLnZpc2l0KCI/Pz8iLCByZWM9
IlshLl0qIikpCisgICAgICAgIGFzc2VydCBsZW4obCkgPT0gMQorICAgICAgICAjIGNoZWNrIHRo
YXQgYnJlYWR0aCBjb21lcyBsYXN0CisgICAgICAgIGFzc2VydCBsWzBdID09IHAxCisKKyAgICBk
ZWYgdGVzdF9mbm1hdGNoX2ZpbGVfYWJzcGF0aChzZWxmLCB0bXBkaXIpOgorICAgICAgICBiID0g
dG1wZGlyLmpvaW4oImEiLCAiYiIpCisgICAgICAgIGFzc2VydCBiLmZubWF0Y2gob3Muc2VwLmpv
aW4oImFiIikpCisgICAgICAgIHBhdHRlcm4gPSBvcy5zZXAuam9pbihbc3RyKHRtcGRpciksICIq
IiwgImIiXSkKKyAgICAgICAgYXNzZXJ0IGIuZm5tYXRjaChwYXR0ZXJuKQorCisgICAgZGVmIHRl
c3Rfc3lzZmluZChzZWxmKToKKyAgICAgICAgbmFtZSA9IHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
IGFuZCAiY21kIiBvciAidGVzdCIKKyAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwuc3lzZmluZChu
YW1lKQorICAgICAgICBhc3NlcnQgeC5jaGVjayhmaWxlPTEpCisgICAgICAgIGFzc2VydCBweS5w
YXRoLmxvY2FsLnN5c2ZpbmQoJ2pha3Nka2FzbGRxd2UnKSBpcyBOb25lCisgICAgICAgIGFzc2Vy
dCBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSwgcGF0aHM9W10pIGlzIE5vbmUKKyAgICAgICAg
eDIgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSwgcGF0aHM9W3guZGlycGF0aCgpXSkKKyAg
ICAgICAgYXNzZXJ0IHgyID09IHgKKworICAgIGRlZiB0ZXN0X2ZzcGF0aF9wcm90b2NvbF9vdGhl
cl9jbGFzcyhzZWxmLCBmYWtlX2ZzcGF0aF9vYmopOgorICAgICAgICAjIHB5LnBhdGggaXMgYWx3
YXlzIGFic29sdXRlCisgICAgICAgIHB5X3BhdGggPSBweS5wYXRoLmxvY2FsKGZha2VfZnNwYXRo
X29iaikKKyAgICAgICAgc3RyX3BhdGggPSBmYWtlX2ZzcGF0aF9vYmouX19mc3BhdGhfXygpCisg
ICAgICAgIGFzc2VydCBweV9wYXRoLmNoZWNrKGVuZHN3aXRoPXN0cl9wYXRoKQorICAgICAgICBh
c3NlcnQgcHlfcGF0aC5qb2luKGZha2VfZnNwYXRoX29iaikuc3RycGF0aCA9PSBvcy5wYXRoLmpv
aW4oCisgICAgICAgICAgICAgICAgcHlfcGF0aC5zdHJwYXRoLCBzdHJfcGF0aCkKKworICAgIGRl
ZiB0ZXN0X21ha2VfbnVtYmVyZWRfZGlyX211bHRpcHJvY2Vzc19zYWZlKHNlbGYsIHRtcGRpcik6
CisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzMwCisg
ICAgICAgIHBvb2wgPSBtdWx0aXByb2Nlc3NpbmcuUG9vbCgpCisgICAgICAgIHJlc3VsdHMgPSBb
cG9vbC5hcHBseV9hc3luYyhiYXRjaF9tYWtlX251bWJlcmVkX2RpcnMsIFt0bXBkaXIsIDEwMF0p
IGZvciBfIGluIHJhbmdlKDIwKV0KKyAgICAgICAgZm9yIHIgaW4gcmVzdWx0czoKKyAgICAgICAg
ICAgIGFzc2VydCByLmdldCgpCisKKworY2xhc3MgVGVzdEV4ZWN1dGlvbk9uV2luZG93czoKKyAg
ICBweXRlc3RtYXJrID0gd2luMzJvbmx5CisKKyAgICBkZWYgdGVzdF9zeXNmaW5kX2JhdF9leGVf
YmVmb3JlKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIlBBVEgiLCBzdHIodG1wZGlyKSwgcHJlcGVuZD1vcy5wYXRoc2VwKQorICAgICAgICB0
bXBkaXIuZW5zdXJlKCJoZWxsbyIpCisgICAgICAgIGggPSB0bXBkaXIuZW5zdXJlKCJoZWxsby5i
YXQiKQorICAgICAgICB4ID0gcHkucGF0aC5sb2NhbC5zeXNmaW5kKCJoZWxsbyIpCisgICAgICAg
IGFzc2VydCB4ID09IGgKKworCitjbGFzcyBUZXN0RXhlY3V0aW9uOgorICAgIHB5dGVzdG1hcmsg
PSBza2lwb253aW4zMgorCisgICAgZGVmIHRlc3Rfc3lzZmluZF9ub19wZXJtaXNzb25faWdub3Jl
ZChzZWxmLCBtb25rZXlwYXRjaCwgdG1wZGlyKToKKyAgICAgICAgbm9wZXJtID0gdG1wZGlyLmVu
c3VyZSgnbm9wZXJtJywgZGlyPVRydWUpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUEFU
SCIsIG5vcGVybSwgcHJlcGVuZD0iOiIpCisgICAgICAgIG5vcGVybS5jaG1vZCgwKQorICAgICAg
ICBhc3NlcnQgcHkucGF0aC5sb2NhbC5zeXNmaW5kKCdqYWtzZGthc2xkcXdlJykgaXMgTm9uZQor
CisgICAgZGVmIHRlc3Rfc3lzZmluZF9hYnNvbHV0ZShzZWxmKToKKyAgICAgICAgeCA9IHB5LnBh
dGgubG9jYWwuc3lzZmluZCgndGVzdCcpCisgICAgICAgIGFzc2VydCB4LmNoZWNrKGZpbGU9MSkK
KyAgICAgICAgeSA9IHB5LnBhdGgubG9jYWwuc3lzZmluZChzdHIoeCkpCisgICAgICAgIGFzc2Vy
dCB5LmNoZWNrKGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0IHkgPT0geAorCisgICAgZGVmIHRlc3Rf
c3lzZmluZF9tdWx0aXBsZShzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0ZW52KCdQQVRIJywgIiVzOiVzIiAlICgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0bXBkaXIuZW5zdXJlKCdhJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG1wZGlyLmpvaW4oJ2InKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwZW5kPSI6
IikKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgnYicsICdhJykKKyAgICAgICAgeCA9IHB5LnBhdGgu
bG9jYWwuc3lzZmluZCgKKyAgICAgICAgICAgICdhJywgY2hlY2tlcj1sYW1iZGEgeDogeC5kaXJw
YXRoKCkuYmFzZW5hbWUgPT0gJ2InKQorICAgICAgICBhc3NlcnQgeC5iYXNlbmFtZSA9PSAnYScK
KyAgICAgICAgYXNzZXJ0IHguZGlycGF0aCgpLmJhc2VuYW1lID09ICdiJworICAgICAgICBhc3Nl
cnQgcHkucGF0aC5sb2NhbC5zeXNmaW5kKCdhJywgY2hlY2tlcj1sYW1iZGEgeDogTm9uZSkgaXMg
Tm9uZQorCisgICAgZGVmIHRlc3Rfc3lzZXhlYyhzZWxmKToKKyAgICAgICAgeCA9IHB5LnBhdGgu
bG9jYWwuc3lzZmluZCgnbHMnKQorICAgICAgICBvdXQgPSB4LnN5c2V4ZWMoJy1hJykKKyAgICAg
ICAgZm9yIHggaW4gcHkucGF0aC5sb2NhbCgpLmxpc3RkaXIoKToKKyAgICAgICAgICAgIGFzc2Vy
dCBvdXQuZmluZCh4LmJhc2VuYW1lKSAhPSAtMQorCisgICAgZGVmIHRlc3Rfc3lzZXhlY19mYWls
aW5nKHNlbGYpOgorICAgICAgICB4ID0gcHkucGF0aC5sb2NhbC5zeXNmaW5kKCdmYWxzZScpCisg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3IpOgorICAg
ICAgICAgICAgeC5zeXNleGVjKCdha3NqZGthc2pkJykKKworICAgIGRlZiB0ZXN0X21ha2VfbnVt
YmVyZWRfZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAgIHRtcGRpci5lbnN1cmUoJ2Jhc2Uubm90
X2FuX2ludCcsIGRpcj0xKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CisgICAgICAgICAg
ICBudW1kaXIgPSBsb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J2Jhc2UuJywgcm9vdGRp
cj10bXBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
ZWVwPTIsIGxvY2tfdGltZW91dD0wKQorICAgICAgICAgICAgYXNzZXJ0IG51bWRpci5jaGVjaygp
CisgICAgICAgICAgICBhc3NlcnQgbnVtZGlyLmJhc2VuYW1lID09ICdiYXNlLiVkJyAlIGkKKyAg
ICAgICAgICAgIGlmIGkgPj0gMToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbnVtZGlyLm5ldyhl
eHQ9c3RyKGktMSkpLmNoZWNrKCkKKyAgICAgICAgICAgIGlmIGkgPj0gMjoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgbnVtZGlyLm5ldyhleHQ9c3RyKGktMikpLmNoZWNrKCkKKyAgICAgICAgICAg
IGlmIGkgPj0gMzoKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IG51bWRpci5uZXcoZXh0PXN0
cihpLTMpKS5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9tYWtlX251bWJlcmVkX2Rpcl9jYXNlX2lu
c2Vuc2l0aXZlKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAjIGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNzA4CisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIocHkuX3BhdGgubG9jYWwsICdub3JtY2FzZScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGFtYmRhIHBhdGg6IHBhdGgubG93ZXIoKSkKKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cih0bXBkaXIsICdsaXN0ZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsYW1iZGE6IFt0bXBkaXIuX2Zhc3Rqb2luKCdjYXNlLjAnKV0pCisgICAgICAgIG51bWRpciA9
IGxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0nQ0FzZS4nLCByb290ZGlyPXRtcGRpciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcD0yLCBsb2NrX3Rp
bWVvdXQ9MCkKKyAgICAgICAgYXNzZXJ0IG51bWRpci5iYXNlbmFtZS5lbmRzd2l0aCgnLjEnKQor
CisgICAgZGVmIHRlc3RfbWFrZV9udW1iZXJlZF9kaXJfY2FzZV9zZW5zaXRpdmUoc2VsZiwgdG1w
ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy83MDgKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihweS5fcGF0
aC5sb2NhbCwgJ25vcm1jYXNlJywgbGFtYmRhIHBhdGg6IHBhdGgpCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIodG1wZGlyLCAnbGlzdGRpcicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFtYmRhOiBbdG1wZGlyLl9mYXN0am9pbignY2FzZS4wJyldKQorICAgICAgICBudW1kaXIg
PSBsb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J0NBc2UuJywgcm9vdGRpcj10bXBkaXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXA9MiwgbG9ja190
aW1lb3V0PTApCisgICAgICAgIGFzc2VydCBudW1kaXIuYmFzZW5hbWUuZW5kc3dpdGgoJy4wJykK
KworICAgIGRlZiB0ZXN0X21ha2VfbnVtYmVyZWRfZGlyX05vdEltcGxlbWVudGVkX0Vycm9yKHNl
bGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBkZWYgbm90aW1wbCh4LCB5KToKKyAg
ICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoNDIpCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIob3MsICdzeW1saW5rJywgbm90aW1wbCkKKyAgICAgICAgeCA9IHRtcGRpci5t
YWtlX251bWJlcmVkX2Rpcihyb290ZGlyPXRtcGRpciwgbG9ja190aW1lb3V0PTApCisgICAgICAg
IGFzc2VydCB4LnJlbHRvKHRtcGRpcikKKyAgICAgICAgYXNzZXJ0IHguY2hlY2soKQorCisgICAg
ZGVmIHRlc3RfbG9ja2VkX21ha2VfbnVtYmVyZWRfZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAg
IGZvciBpIGluIHJhbmdlKDEwKToKKyAgICAgICAgICAgIG51bWRpciA9IGxvY2FsLm1ha2VfbnVt
YmVyZWRfZGlyKHByZWZpeD0nYmFzZTIuJywgcm9vdGRpcj10bXBkaXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwPTIpCisgICAgICAgICAgICBhc3Nl
cnQgbnVtZGlyLmNoZWNrKCkKKyAgICAgICAgICAgIGFzc2VydCBudW1kaXIuYmFzZW5hbWUgPT0g
J2Jhc2UyLiVkJyAlIGkKKyAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGkpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBudW1kaXIubmV3KGV4dD1zdHIoaikpLmNoZWNrKCkKKworICAgIGRlZiB0
ZXN0X2Vycm9yX3ByZXNlcnZhdGlvbihzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnRlc3QucmFp
c2VzKEVudmlyb25tZW50RXJyb3IsIHBhdGgxLmpvaW4oJ3F3b2VxaXdlJykubXRpbWUpCisgICAg
ICAgIHB5LnRlc3QucmFpc2VzKEVudmlyb25tZW50RXJyb3IsIHBhdGgxLmpvaW4oJ3F3b2VxaXdl
JykucmVhZCkKKworICAgICMgZGVmIHRlc3RfcGFyZW50ZGlybWF0Y2goc2VsZik6CisgICAgIyAg
ICBsb2NhbC5wYXJlbnRkaXJtYXRjaCgnc3RkJywgc3RhcnRtb2R1bGU9X19uYW1lX18pCisgICAg
IworCisKK2NsYXNzIFRlc3RJbXBvcnQ6CisgICAgZGVmIHRlc3RfcHlpbXBvcnQoc2VsZiwgcGF0
aDEpOgorICAgICAgICBvYmogPSBwYXRoMS5qb2luKCdleGVjZmlsZS5weScpLnB5aW1wb3J0KCkK
KyAgICAgICAgYXNzZXJ0IG9iai54ID09IDQyCisgICAgICAgIGFzc2VydCBvYmouX19uYW1lX18g
PT0gJ2V4ZWNmaWxlJworCisgICAgZGVmIHRlc3RfcHlpbXBvcnRfcmVuYW1lZF9kaXJfY3JlYXRl
c19taXNtYXRjaChzZWxmLCB0bXBkaXIpOgorICAgICAgICBwID0gdG1wZGlyLmVuc3VyZSgiYSIs
ICJ0ZXN0X3gxMjMucHkiKQorICAgICAgICBwLnB5aW1wb3J0KCkKKyAgICAgICAgdG1wZGlyLmpv
aW4oImEiKS5tb3ZlKHRtcGRpci5qb2luKCJiIikpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyh0bXBkaXIuSW1wb3J0TWlzbWF0Y2hFcnJvcik6CisgICAgICAgICAgICB0bXBkaXIuam9pbigi
YiIsICJ0ZXN0X3gxMjMucHkiKS5weWltcG9ydCgpCisKKyAgICBkZWYgdGVzdF9weWltcG9ydF9t
ZXNzeV9uYW1lKHNlbGYsIHRtcGRpcik6CisgICAgICAgICMgaHR0cDovL2JpdGJ1Y2tldC5vcmcv
aHBrNDIvcHktdHJ1bmsvaXNzdWUvMTI5CisgICAgICAgIHBhdGggPSB0bXBkaXIuZW5zdXJlKCdm
b29fX2luaXRfXy5weScpCisgICAgICAgIHBhdGgucHlpbXBvcnQoKQorCisgICAgZGVmIHRlc3Rf
cHlpbXBvcnRfZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAgIHAgPSB0bXBkaXIuam9pbigiaGVs
bG9fMTIzIikKKyAgICAgICAgcF9pbml0ID0gcC5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICAg
ICAgbSA9IHAucHlpbXBvcnQoKQorICAgICAgICBhc3NlcnQgbS5fX25hbWVfXyA9PSAiaGVsbG9f
MTIzIgorICAgICAgICBtID0gcF9pbml0LnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0IG0uX19u
YW1lX18gPT0gImhlbGxvXzEyMyIKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2V4ZWNmaWxlX2Rp
ZmZlcmVudF9uYW1lKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb2JqID0gcGF0aDEuam9pbignZXhl
Y2ZpbGUucHknKS5weWltcG9ydChtb2RuYW1lPSIweC55LnoiKQorICAgICAgICBhc3NlcnQgb2Jq
LnggPT0gNDIKKyAgICAgICAgYXNzZXJ0IG9iai5fX25hbWVfXyA9PSAnMHgueS56JworCisgICAg
ZGVmIHRlc3RfcHlpbXBvcnRfYShzZWxmLCBwYXRoMSk6CisgICAgICAgIG90aGVyZGlyID0gcGF0
aDEuam9pbignb3RoZXJkaXInKQorICAgICAgICBtb2QgPSBvdGhlcmRpci5qb2luKCdhLnB5Jyku
cHlpbXBvcnQoKQorICAgICAgICBhc3NlcnQgbW9kLnJlc3VsdCA9PSAiZ290IGl0IgorICAgICAg
ICBhc3NlcnQgbW9kLl9fbmFtZV9fID09ICdvdGhlcmRpci5hJworCisgICAgZGVmIHRlc3RfcHlp
bXBvcnRfYihzZWxmLCBwYXRoMSk6CisgICAgICAgIG90aGVyZGlyID0gcGF0aDEuam9pbignb3Ro
ZXJkaXInKQorICAgICAgICBtb2QgPSBvdGhlcmRpci5qb2luKCdiLnB5JykucHlpbXBvcnQoKQor
ICAgICAgICBhc3NlcnQgbW9kLnN0dWZmID09ICJnb3QgaXQiCisgICAgICAgIGFzc2VydCBtb2Qu
X19uYW1lX18gPT0gJ290aGVyZGlyLmInCisKKyAgICBkZWYgdGVzdF9weWltcG9ydF9jKHNlbGYs
IHBhdGgxKToKKyAgICAgICAgb3RoZXJkaXIgPSBwYXRoMS5qb2luKCdvdGhlcmRpcicpCisgICAg
ICAgIG1vZCA9IG90aGVyZGlyLmpvaW4oJ2MucHknKS5weWltcG9ydCgpCisgICAgICAgIGFzc2Vy
dCBtb2QudmFsdWUgPT0gImdvdCBpdCIKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2Qoc2VsZiwg
cGF0aDEpOgorICAgICAgICBvdGhlcmRpciA9IHBhdGgxLmpvaW4oJ290aGVyZGlyJykKKyAgICAg
ICAgbW9kID0gb3RoZXJkaXIuam9pbignZC5weScpLnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0
IG1vZC52YWx1ZTIgPT0gImdvdCBpdCIKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2FuZF9pbXBv
cnQoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgneHh4cGFja2FnZScsICdf
X2luaXRfXy5weScpCisgICAgICAgIG1vZDFwYXRoID0gdG1wZGlyLmVuc3VyZSgneHh4cGFja2Fn
ZScsICdtb2R1bGUxLnB5JykKKyAgICAgICAgbW9kMSA9IG1vZDFwYXRoLnB5aW1wb3J0KCkKKyAg
ICAgICAgYXNzZXJ0IG1vZDEuX19uYW1lX18gPT0gJ3h4eHBhY2thZ2UubW9kdWxlMScKKyAgICAg
ICAgZnJvbSB4eHhwYWNrYWdlIGltcG9ydCBtb2R1bGUxCisgICAgICAgIGFzc2VydCBtb2R1bGUx
IGlzIG1vZDEKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2NoZWNrX2ZpbGVwYXRoX2NvbnNpc3Rl
bmN5KHNlbGYsIG1vbmtleXBhdGNoLCB0bXBkaXIpOgorICAgICAgICBuYW1lID0gJ3BvaW50c2Jh
Y2sxMjMnCisgICAgICAgIE1vZHVsZVR5cGUgPSB0eXBlKG9zKQorICAgICAgICBwID0gdG1wZGly
LmVuc3VyZShuYW1lICsgJy5weScpCisgICAgICAgIGZvciBlbmRpbmcgaW4gKCcucHljJywgJyRw
eS5jbGFzcycsICcucHlvJyk6CisgICAgICAgICAgICBtb2QgPSBNb2R1bGVUeXBlKG5hbWUpCisg
ICAgICAgICAgICBwc2V1ZG9wYXRoID0gdG1wZGlyLmVuc3VyZShuYW1lK2VuZGluZykKKyAgICAg
ICAgICAgIG1vZC5fX2ZpbGVfXyA9IHN0cihwc2V1ZG9wYXRoKQorICAgICAgICAgICAgbW9ua2V5
cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgbmFtZSwgbW9kKQorICAgICAgICAgICAgbmV3bW9k
ID0gcC5weWltcG9ydCgpCisgICAgICAgICAgICBhc3NlcnQgbW9kID09IG5ld21vZAorICAgICAg
ICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICAgICAgbW9kID0gTW9kdWxlVHlwZShuYW1lKQorICAg
ICAgICBwc2V1ZG9wYXRoID0gdG1wZGlyLmVuc3VyZShuYW1lKyIxMjMucHkiKQorICAgICAgICBt
b2QuX19maWxlX18gPSBzdHIocHNldWRvcGF0aCkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRl
bShzeXMubW9kdWxlcywgbmFtZSwgbW9kKQorICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlz
ZXMocHNldWRvcGF0aC5JbXBvcnRNaXNtYXRjaEVycm9yLCBwLnB5aW1wb3J0KQorICAgICAgICBt
b2RuYW1lLCBtb2RmaWxlLCBvcmlnID0gZXhjaW5mby52YWx1ZS5hcmdzCisgICAgICAgIGFzc2Vy
dCBtb2RuYW1lID09IG5hbWUKKyAgICAgICAgYXNzZXJ0IG1vZGZpbGUgPT0gcHNldWRvcGF0aAor
ICAgICAgICBhc3NlcnQgb3JpZyA9PSBwCisgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHBzZXVk
b3BhdGguSW1wb3J0TWlzbWF0Y2hFcnJvciwgSW1wb3J0RXJyb3IpCisKKyAgICBkZWYgdGVzdF9p
c3N1ZTEzMV9weWltcG9ydF9vbl9faW5pdF9fKHNlbGYsIHRtcGRpcik6CisgICAgICAgICMgX19p
bml0X18ucHkgZmlsZXMgbWF5IGJlIG5hbWVzcGFjZSBwYWNrYWdlcywgYW5kIHRodXMgdGhlCisg
ICAgICAgICMgX19maWxlX18gb2YgYW4gaW1wb3J0ZWQgbW9kdWxlIG1heSBub3QgYmUgb3Vyc2Vs
dmVzCisgICAgICAgICMgc2VlIGlzc3VlCisgICAgICAgIHAxID0gdG1wZGlyLmVuc3VyZSgicHJv
amEiLCAiX19pbml0X18ucHkiKQorICAgICAgICBwMiA9IHRtcGRpci5lbnN1cmUoInN1YiIsICJw
cm9qYSIsICJfX2luaXRfXy5weSIpCisgICAgICAgIG0xID0gcDEucHlpbXBvcnQoKQorICAgICAg
ICBtMiA9IHAyLnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0IG0xID09IG0yCisKKyAgICBkZWYg
dGVzdF9lbnN1cmVzeXNwYXRoX2FwcGVuZChzZWxmLCB0bXBkaXIpOgorICAgICAgICByb290MSA9
IHRtcGRpci5ta2Rpcigicm9vdDEiKQorICAgICAgICBmaWxlMSA9IHJvb3QxLmVuc3VyZSgieDEy
My5weSIpCisgICAgICAgIGFzc2VydCBzdHIocm9vdDEpIG5vdCBpbiBzeXMucGF0aAorICAgICAg
ICBmaWxlMS5weWltcG9ydChlbnN1cmVzeXNwYXRoPSJhcHBlbmQiKQorICAgICAgICBhc3NlcnQg
c3RyKHJvb3QxKSA9PSBzeXMucGF0aFstMV0KKyAgICAgICAgYXNzZXJ0IHN0cihyb290MSkgbm90
IGluIHN5cy5wYXRoWzotMV0KKworCitkZWYgdGVzdF9weXBrZ2Rpcih0bXBkaXIpOgorICAgIHBr
ZyA9IHRtcGRpci5lbnN1cmUoJ3BrZzEnLCBkaXI9MSkKKyAgICBwa2cuZW5zdXJlKCJfX2luaXRf
Xy5weSIpCisgICAgcGtnLmVuc3VyZSgic3ViZGlyL19faW5pdF9fLnB5IikKKyAgICBhc3NlcnQg
cGtnLnB5cGtncGF0aCgpID09IHBrZworICAgIGFzc2VydCBwa2cuam9pbignc3ViZGlyJywgJ19f
aW5pdF9fLnB5JykucHlwa2dwYXRoKCkgPT0gcGtnCisKKworZGVmIHRlc3RfcHlwa2dkaXJfdW5p
bXBvcnRhYmxlKHRtcGRpcik6CisgICAgcGtnID0gdG1wZGlyLmVuc3VyZSgncGtnMS0xJywgZGly
PTEpICAjIHVuaW1wb3J0YWJsZQorICAgIHBrZy5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICBz
dWJkaXIgPSBwa2cuZW5zdXJlKCJzdWJkaXIvX19pbml0X18ucHkiKS5kaXJwYXRoKCkKKyAgICBh
c3NlcnQgc3ViZGlyLnB5cGtncGF0aCgpID09IHN1YmRpcgorICAgIGFzc2VydCBzdWJkaXIuZW5z
dXJlKCJ4eXoucHkiKS5weXBrZ3BhdGgoKSA9PSBzdWJkaXIKKyAgICBhc3NlcnQgbm90IHBrZy5w
eXBrZ3BhdGgoKQorCisKK2RlZiB0ZXN0X2lzaW1wb3J0YWJsZSgpOgorICAgIGZyb20gcHkuX3Bh
dGgubG9jYWwgaW1wb3J0IGlzaW1wb3J0YWJsZQorICAgIGFzc2VydCBub3QgaXNpbXBvcnRhYmxl
KCIiKQorICAgIGFzc2VydCBpc2ltcG9ydGFibGUoIngiKQorICAgIGFzc2VydCBpc2ltcG9ydGFi
bGUoIngxIikKKyAgICBhc3NlcnQgaXNpbXBvcnRhYmxlKCJ4XzEiKQorICAgIGFzc2VydCBpc2lt
cG9ydGFibGUoIl8iKQorICAgIGFzc2VydCBpc2ltcG9ydGFibGUoIl8xIikKKyAgICBhc3NlcnQg
bm90IGlzaW1wb3J0YWJsZSgieC0xIikKKyAgICBhc3NlcnQgbm90IGlzaW1wb3J0YWJsZSgieDox
IikKKworCitkZWYgdGVzdF9ob21lZGlyX2Zyb21fSE9NRShtb25rZXlwYXRjaCk6CisgICAgcGF0
aCA9IG9zLmdldGN3ZCgpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJIT01FIiwgcGF0aCkKKyAg
ICBhc3NlcnQgcHkucGF0aC5sb2NhbC5fZ2V0aG9tZWRpcigpID09IHB5LnBhdGgubG9jYWwocGF0
aCkKKworCitkZWYgdGVzdF9ob21lZGlyX25vdF9leGlzdHMobW9ua2V5cGF0Y2gpOgorICAgIG1v
bmtleXBhdGNoLmRlbGVudigiSE9NRSIsIHJhaXNpbmc9RmFsc2UpCisgICAgbW9ua2V5cGF0Y2gu
ZGVsZW52KCJIT01FRFJJVkUiLCByYWlzaW5nPUZhbHNlKQorICAgIGhvbWVkaXIgPSBweS5wYXRo
LmxvY2FsLl9nZXRob21lZGlyKCkKKyAgICBhc3NlcnQgaG9tZWRpciBpcyBOb25lCisKKworZGVm
IHRlc3Rfc2FtZWZpbGUodG1wZGlyKToKKyAgICBhc3NlcnQgdG1wZGlyLnNhbWVmaWxlKHRtcGRp
cikKKyAgICBwID0gdG1wZGlyLmVuc3VyZSgiaGVsbG8iKQorICAgIGFzc2VydCBwLnNhbWVmaWxl
KHApCisgICAgd2l0aCBwLmRpcnBhdGgoKS5hc19jd2QoKToKKyAgICAgICAgYXNzZXJ0IHAuc2Ft
ZWZpbGUocC5iYXNlbmFtZSkKKyAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKyAgICAg
ICAgcDEgPSBwLl9fY2xhc3NfXyhzdHIocCkubG93ZXIoKSkKKyAgICAgICAgcDIgPSBwLl9fY2xh
c3NfXyhzdHIocCkudXBwZXIoKSkKKyAgICAgICAgYXNzZXJ0IHAxLnNhbWVmaWxlKHAyKQorCisK
K2RlZiB0ZXN0X2xpc3RkaXJfc2luZ2xlX2FyZyh0bXBkaXIpOgorICAgIHRtcGRpci5lbnN1cmUo
ImhlbGxvIikKKyAgICBhc3NlcnQgdG1wZGlyLmxpc3RkaXIoImhlbGxvIilbMF0uYmFzZW5hbWUg
PT0gImhlbGxvIgorCisKK2RlZiB0ZXN0X21rZHRlbXBfcm9vdGRpcih0bXBkaXIpOgorICAgIGR0
bXAgPSBsb2NhbC5ta2R0ZW1wKHJvb3RkaXI9dG1wZGlyKQorICAgIGFzc2VydCB0bXBkaXIubGlz
dGRpcigpID09IFtkdG1wXQorCisKK2NsYXNzIFRlc3RXSU5Mb2NhbFBhdGg6CisgICAgcHl0ZXN0
bWFyayA9IHdpbjMyb25seQorCisgICAgZGVmIHRlc3Rfb3duZXJfZ3JvdXBfbm90X2ltcGxlbWVu
dGVkKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoTm90SW1wbGVtZW50ZWRF
cnJvciwgInBhdGgxLnN0YXQoKS5vd25lciIpCisgICAgICAgIHB5LnRlc3QucmFpc2VzKE5vdElt
cGxlbWVudGVkRXJyb3IsICJwYXRoMS5zdGF0KCkuZ3JvdXAiKQorCisgICAgZGVmIHRlc3RfY2ht
b2Rfc2ltcGxlX2ludChzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LmJ1aWx0aW4ucHJpbnRfKCJw
YXRoMSBpcyIsIHBhdGgxKQorICAgICAgICBtb2RlID0gcGF0aDEuc3RhdCgpLm1vZGUKKyAgICAg
ICAgIyBFbnN1cmUgdGhhdCB3ZSBhY3R1YWxseSBjaGFuZ2UgdGhlIG1vZGUgdG8gc29tZXRoaW5n
IGRpZmZlcmVudC4KKyAgICAgICAgcGF0aDEuY2htb2QobW9kZSA9PSAwIGFuZCAxIG9yIDApCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHByaW50KHBhdGgxLnN0YXQoKS5tb2RlKQorICAgICAg
ICAgICAgcHJpbnQobW9kZSkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoMS5zdGF0KCkubW9kZSAh
PSBtb2RlCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRoMS5jaG1vZChtb2RlKQor
ICAgICAgICAgICAgYXNzZXJ0IHBhdGgxLnN0YXQoKS5tb2RlID09IG1vZGUKKworICAgIGRlZiB0
ZXN0X3BhdGhfY29tcGFyaXNvbl9sb3dlcmNhc2VfbWl4ZWQoc2VsZiwgcGF0aDEpOgorICAgICAg
ICB0MSA9IHBhdGgxLmpvaW4oImFfcGF0aCIpCisgICAgICAgIHQyID0gcGF0aDEuam9pbigiQV9w
YXRoIikKKyAgICAgICAgYXNzZXJ0IHQxID09IHQxCisgICAgICAgIGFzc2VydCB0MSA9PSB0Mgor
CisgICAgZGVmIHRlc3RfcmVsdG9fd2l0aF9taXhlZF9jYXNlKHNlbGYsIHBhdGgxKToKKyAgICAg
ICAgdDEgPSBwYXRoMS5qb2luKCJhX3BhdGgiLCAiZmlMZSIpCisgICAgICAgIHQyID0gcGF0aDEu
am9pbigiQV9wYXRoIikKKyAgICAgICAgYXNzZXJ0IHQxLnJlbHRvKHQyKSA9PSAiZmlMZSIKKwor
ICAgIGRlZiB0ZXN0X2FsbG93X3VuaXhfc3R5bGVfcGF0aHMoc2VsZiwgcGF0aDEpOgorICAgICAg
ICB0MSA9IHBhdGgxLmpvaW4oJ2FfcGF0aCcpCisgICAgICAgIGFzc2VydCB0MSA9PSBzdHIocGF0
aDEpICsgJ1xcYV9wYXRoJworICAgICAgICB0MSA9IHBhdGgxLmpvaW4oJ2FfcGF0aC8nKQorICAg
ICAgICBhc3NlcnQgdDEgPT0gc3RyKHBhdGgxKSArICdcXGFfcGF0aCcKKyAgICAgICAgdDEgPSBw
YXRoMS5qb2luKCdkaXIvYV9wYXRoJykKKyAgICAgICAgYXNzZXJ0IHQxID09IHN0cihwYXRoMSkg
KyAnXFxkaXJcXGFfcGF0aCcKKworICAgIGRlZiB0ZXN0X3N5c2ZpbmRfaW5fY3VycmVudGRpcihz
ZWxmLCBwYXRoMSk6CisgICAgICAgIGNtZCA9IHB5LnBhdGgubG9jYWwuc3lzZmluZCgnY21kJykK
KyAgICAgICAgcm9vdCA9IGNtZC5uZXcoZGlybmFtZT0nJywgYmFzZW5hbWU9JycpICAjIGM6XCBp
biBtb3N0IGluc3RhbGxhdGlvbnMKKyAgICAgICAgd2l0aCByb290LmFzX2N3ZCgpOgorICAgICAg
ICAgICAgeCA9IHB5LnBhdGgubG9jYWwuc3lzZmluZChjbWQucmVsdG8ocm9vdCkpCisgICAgICAg
ICAgICBhc3NlcnQgeC5jaGVjayhmaWxlPTEpCisKKyAgICBkZWYgdGVzdF9mbm1hdGNoX2ZpbGVf
YWJzcGF0aF9wb3NpeF9wYXR0ZXJuX29uX3dpbjMyKHNlbGYsIHRtcGRpcik6CisgICAgICAgICMg
cGF0aC1tYXRjaGluZyBwYXR0ZXJucyBtaWdodCBjb250YWluIGEgcG9zaXggcGF0aCBzZXBhcmF0
b3IgJy8nCisgICAgICAgICMgVGVzdCB0aGF0IHdlIGNhbiBtYXRjaCB0aGF0IHBhdHRlcm4gb24g
d2luZG93cy4KKyAgICAgICAgaW1wb3J0IHBvc2l4cGF0aAorICAgICAgICBiID0gdG1wZGlyLmpv
aW4oImEiLCAiYiIpCisgICAgICAgIGFzc2VydCBiLmZubWF0Y2gocG9zaXhwYXRoLnNlcC5qb2lu
KCJhYiIpKQorICAgICAgICBwYXR0ZXJuID0gcG9zaXhwYXRoLnNlcC5qb2luKFtzdHIodG1wZGly
KSwgIioiLCAiYiJdKQorICAgICAgICBhc3NlcnQgYi5mbm1hdGNoKHBhdHRlcm4pCisKKworY2xh
c3MgVGVzdFBPU0lYTG9jYWxQYXRoOgorICAgIHB5dGVzdG1hcmsgPSBza2lwb253aW4zMgorCisg
ICAgZGVmIHRlc3RfaGFyZGxpbmsoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbGlua3BhdGggPSB0
bXBkaXIuam9pbigndGVzdCcpCisgICAgICAgIGZpbGVwYXRoID0gdG1wZGlyLmpvaW4oJ2ZpbGUn
KQorICAgICAgICBmaWxlcGF0aC53cml0ZSgiSGVsbG8iKQorICAgICAgICBubGluayA9IGZpbGVw
YXRoLnN0YXQoKS5ubGluaworICAgICAgICBsaW5rcGF0aC5ta2xpbmt0byhmaWxlcGF0aCkKKyAg
ICAgICAgYXNzZXJ0IGZpbGVwYXRoLnN0YXQoKS5ubGluayA9PSBubGluayArIDEKKworICAgIGRl
ZiB0ZXN0X3N5bWxpbmtfYXJlX2lkZW50aWNhbChzZWxmLCB0bXBkaXIpOgorICAgICAgICBmaWxl
cGF0aCA9IHRtcGRpci5qb2luKCdmaWxlJykKKyAgICAgICAgZmlsZXBhdGgud3JpdGUoIkhlbGxv
IikKKyAgICAgICAgbGlua3BhdGggPSB0bXBkaXIuam9pbigndGVzdCcpCisgICAgICAgIGxpbmtw
YXRoLm1rc3ltbGlua3RvKGZpbGVwYXRoKQorICAgICAgICBhc3NlcnQgbGlua3BhdGgucmVhZGxp
bmsoKSA9PSBzdHIoZmlsZXBhdGgpCisKKyAgICBkZWYgdGVzdF9zeW1saW5rX2lzZmlsZShzZWxm
LCB0bXBkaXIpOgorICAgICAgICBsaW5rcGF0aCA9IHRtcGRpci5qb2luKCd0ZXN0JykKKyAgICAg
ICAgZmlsZXBhdGggPSB0bXBkaXIuam9pbignZmlsZScpCisgICAgICAgIGZpbGVwYXRoLndyaXRl
KCIiKQorICAgICAgICBsaW5rcGF0aC5ta3N5bWxpbmt0byhmaWxlcGF0aCkKKyAgICAgICAgYXNz
ZXJ0IGxpbmtwYXRoLmNoZWNrKGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0IG5vdCBsaW5rcGF0aC5j
aGVjayhsaW5rPTAsIGZpbGU9MSkKKyAgICAgICAgYXNzZXJ0IGxpbmtwYXRoLmlzbGluaygpCisK
KyAgICBkZWYgdGVzdF9zeW1saW5rX3JlbGF0aXZlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxp
bmtwYXRoID0gdG1wZGlyLmpvaW4oJ3Rlc3QnKQorICAgICAgICBmaWxlcGF0aCA9IHRtcGRpci5q
b2luKCdmaWxlJykKKyAgICAgICAgZmlsZXBhdGgud3JpdGUoIkhlbGxvIikKKyAgICAgICAgbGlu
a3BhdGgubWtzeW1saW5rdG8oZmlsZXBhdGgsIGFic29sdXRlPUZhbHNlKQorICAgICAgICBhc3Nl
cnQgbGlua3BhdGgucmVhZGxpbmsoKSA9PSAiZmlsZSIKKyAgICAgICAgYXNzZXJ0IGZpbGVwYXRo
LnJlYWQoKSA9PSBsaW5rcGF0aC5yZWFkKCkKKworICAgIGRlZiB0ZXN0X3N5bWxpbmtfbm90X2V4
aXN0aW5nKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4oJ3Rl
c3Rub3RleGlzdGluZycpCisgICAgICAgIGFzc2VydCBub3QgbGlua3BhdGguY2hlY2sobGluaz0x
KQorICAgICAgICBhc3NlcnQgbGlua3BhdGguY2hlY2sobGluaz0wKQorCisgICAgZGVmIHRlc3Rf
cmVsdG9fd2l0aF9yb290KHNlbGYsIHBhdGgxLCB0bXBkaXIpOgorICAgICAgICB5ID0gcGF0aDEu
am9pbigneCcpLnJlbHRvKHB5LnBhdGgubG9jYWwoJy8nKSkKKyAgICAgICAgYXNzZXJ0IHlbMF0g
PT0gc3RyKHBhdGgxKVsxXQorCisgICAgZGVmIHRlc3RfdmlzaXRfcmVjdXJzaXZlX3N5bWxpbmso
c2VsZiwgdG1wZGlyKToKKyAgICAgICAgbGlua3BhdGggPSB0bXBkaXIuam9pbigndGVzdCcpCisg
ICAgICAgIGxpbmtwYXRoLm1rc3ltbGlua3RvKHRtcGRpcikKKyAgICAgICAgdmlzaXRvciA9IHRt
cGRpci52aXNpdChOb25lLCBsYW1iZGEgeDogeC5jaGVjayhsaW5rPTApKQorICAgICAgICBhc3Nl
cnQgbGlzdCh2aXNpdG9yKSA9PSBbbGlua3BhdGhdCisKKyAgICBkZWYgdGVzdF9zeW1saW5rX2lz
ZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4oJ3Rlc3Qn
KQorICAgICAgICBsaW5rcGF0aC5ta3N5bWxpbmt0byh0bXBkaXIpCisgICAgICAgIGFzc2VydCBs
aW5rcGF0aC5jaGVjayhkaXI9MSkKKyAgICAgICAgYXNzZXJ0IG5vdCBsaW5rcGF0aC5jaGVjayhs
aW5rPTAsIGRpcj0xKQorCisgICAgZGVmIHRlc3Rfc3ltbGlua19yZW1vdmUoc2VsZiwgdG1wZGly
KToKKyAgICAgICAgbGlua3BhdGggPSB0bXBkaXIuam9pbigndGVzdCcpCisgICAgICAgIGxpbmtw
YXRoLm1rc3ltbGlua3RvKGxpbmtwYXRoKSAgIyBwb2ludCB0byBpdHNlbGYKKyAgICAgICAgYXNz
ZXJ0IGxpbmtwYXRoLmNoZWNrKGxpbms9MSkKKyAgICAgICAgbGlua3BhdGgucmVtb3ZlKCkKKyAg
ICAgICAgYXNzZXJ0IG5vdCBsaW5rcGF0aC5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9yZWFscGF0
aF9maWxlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4oJ3Rl
c3QnKQorICAgICAgICBmaWxlcGF0aCA9IHRtcGRpci5qb2luKCdmaWxlJykKKyAgICAgICAgZmls
ZXBhdGgud3JpdGUoIiIpCisgICAgICAgIGxpbmtwYXRoLm1rc3ltbGlua3RvKGZpbGVwYXRoKQor
ICAgICAgICByZWFscGF0aCA9IGxpbmtwYXRoLnJlYWxwYXRoKCkKKyAgICAgICAgYXNzZXJ0IHJl
YWxwYXRoLmJhc2VuYW1lID09ICdmaWxlJworCisgICAgZGVmIHRlc3Rfb3duZXIoc2VsZiwgcGF0
aDEsIHRtcGRpcik6CisgICAgICAgIGZyb20gcHdkIGltcG9ydCBnZXRwd3VpZAorICAgICAgICBm
cm9tIGdycCBpbXBvcnQgZ2V0Z3JnaWQKKyAgICAgICAgc3RhdCA9IHBhdGgxLnN0YXQoKQorICAg
ICAgICBhc3NlcnQgc3RhdC5wYXRoID09IHBhdGgxCisKKyAgICAgICAgdWlkID0gc3RhdC51aWQK
KyAgICAgICAgZ2lkID0gc3RhdC5naWQKKyAgICAgICAgb3duZXIgPSBnZXRwd3VpZCh1aWQpWzBd
CisgICAgICAgIGdyb3VwID0gZ2V0Z3JnaWQoZ2lkKVswXQorCisgICAgICAgIGFzc2VydCB1aWQg
PT0gc3RhdC51aWQKKyAgICAgICAgYXNzZXJ0IG93bmVyID09IHN0YXQub3duZXIKKyAgICAgICAg
YXNzZXJ0IGdpZCA9PSBzdGF0LmdpZAorICAgICAgICBhc3NlcnQgZ3JvdXAgPT0gc3RhdC5ncm91
cAorCisgICAgZGVmIHRlc3Rfc3RhdF9oZWxwZXJzKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gp
OgorICAgICAgICBwYXRoMSA9IHRtcGRpci5lbnN1cmUoImZpbGUiKQorICAgICAgICBzdGF0MSA9
IHBhdGgxLnN0YXQoKQorICAgICAgICBzdGF0MiA9IHRtcGRpci5zdGF0KCkKKyAgICAgICAgYXNz
ZXJ0IHN0YXQxLmlzZmlsZSgpCisgICAgICAgIGFzc2VydCBzdGF0Mi5pc2RpcigpCisgICAgICAg
IGFzc2VydCBub3Qgc3RhdDEuaXNsaW5rKCkKKyAgICAgICAgYXNzZXJ0IG5vdCBzdGF0Mi5pc2xp
bmsoKQorCisgICAgZGVmIHRlc3Rfc3RhdF9ub25fcmFpc2luZyhzZWxmLCB0bXBkaXIpOgorICAg
ICAgICBwYXRoMSA9IHRtcGRpci5qb2luKCJmaWxlIikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhw
eS5lcnJvci5FTk9FTlQsIGxhbWJkYTogcGF0aDEuc3RhdCgpKQorICAgICAgICByZXMgPSBwYXRo
MS5zdGF0KHJhaXNpbmc9RmFsc2UpCisgICAgICAgIGFzc2VydCByZXMgaXMgTm9uZQorCisgICAg
ZGVmIHRlc3RfYXRpbWUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgaW1wb3J0IHRpbWUKKyAgICAg
ICAgcGF0aCA9IHRtcGRpci5lbnN1cmUoJ3NhbXBsZWZpbGUnKQorICAgICAgICBub3cgPSB0aW1l
LnRpbWUoKQorICAgICAgICBhdGltZTEgPSBwYXRoLmF0aW1lKCkKKyAgICAgICAgIyB3ZSBjb3Vs
ZCB3YWl0IGhlcmUgYnV0IHRpbWVyIHJlc29sdXRpb24gaXMgdmVyeQorICAgICAgICAjIHN5c3Rl
bSBkZXBlbmRlbnQKKyAgICAgICAgcGF0aC5yZWFkKCkKKyAgICAgICAgdGltZS5zbGVlcChBVElN
RV9SRVNPTFVUSU9OKQorICAgICAgICBhdGltZTIgPSBwYXRoLmF0aW1lKCkKKyAgICAgICAgdGlt
ZS5zbGVlcChBVElNRV9SRVNPTFVUSU9OKQorICAgICAgICBkdXJhdGlvbiA9IHRpbWUudGltZSgp
IC0gbm93CisgICAgICAgIGFzc2VydCAoYXRpbWUyLWF0aW1lMSkgPD0gZHVyYXRpb24KKworICAg
IGRlZiB0ZXN0X2NvbW1vbmRpcihzZWxmLCBwYXRoMSk6CisgICAgICAgICMgWFhYIFRoaXMgaXMg
aGVyZSBpbiBsb2NhbCB1bnRpbCB3ZSBmaW5kIGEgd2F5IHRvIGltcGxlbWVudCB0aGlzCisgICAg
ICAgICMgICAgIHVzaW5nIHRoZSBzdWJ2ZXJzaW9uIGNvbW1hbmQgbGluZSBhcGkuCisgICAgICAg
IHAxID0gcGF0aDEuam9pbignc29tZXRoaW5nJykKKyAgICAgICAgcDIgPSBwYXRoMS5qb2luKCdv
dGhlcnRoaW5nJykKKyAgICAgICAgYXNzZXJ0IHAxLmNvbW1vbihwMikgPT0gcGF0aDEKKyAgICAg
ICAgYXNzZXJ0IHAyLmNvbW1vbihwMSkgPT0gcGF0aDEKKworICAgIGRlZiB0ZXN0X2NvbW1vbmRp
cl9ub2NvbW1vbihzZWxmLCBwYXRoMSk6CisgICAgICAgICMgWFhYIFRoaXMgaXMgaGVyZSBpbiBs
b2NhbCB1bnRpbCB3ZSBmaW5kIGEgd2F5IHRvIGltcGxlbWVudCB0aGlzCisgICAgICAgICMgICAg
IHVzaW5nIHRoZSBzdWJ2ZXJzaW9uIGNvbW1hbmQgbGluZSBhcGkuCisgICAgICAgIHAxID0gcGF0
aDEuam9pbignc29tZXRoaW5nJykKKyAgICAgICAgcDIgPSBweS5wYXRoLmxvY2FsKHBhdGgxLnNl
cCsnYmxhYmxhJykKKyAgICAgICAgYXNzZXJ0IHAxLmNvbW1vbihwMikgPT0gJy8nCisKKyAgICBk
ZWYgdGVzdF9qb2luX3RvX3Jvb3Qoc2VsZiwgcGF0aDEpOgorICAgICAgICByb290ID0gcGF0aDEu
cGFydHMoKVswXQorICAgICAgICBhc3NlcnQgbGVuKHN0cihyb290KSkgPT0gMQorICAgICAgICBh
c3NlcnQgc3RyKHJvb3Quam9pbignYScpKSA9PSAnL2EnCisKKyAgICBkZWYgdGVzdF9qb2luX3Jv
b3RfdG9fcm9vdF93aXRoX25vX2FicyhzZWxmLCBwYXRoMSk6CisgICAgICAgIG5yb290ID0gcGF0
aDEuam9pbignLycpCisgICAgICAgIGFzc2VydCBzdHIocGF0aDEpID09IHN0cihucm9vdCkKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxID09IG5yb290CisKKyAgICBkZWYgdGVzdF9jaG1vZF9zaW1wbGVf
aW50KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbW9kZSA9IHBhdGgxLnN0YXQoKS5tb2RlCisgICAg
ICAgIHBhdGgxLmNobW9kKGludChtb2RlLzIpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBh
c3NlcnQgcGF0aDEuc3RhdCgpLm1vZGUgIT0gbW9kZQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgcGF0aDEuY2htb2QobW9kZSkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoMS5zdGF0KCku
bW9kZSA9PSBtb2RlCisKKyAgICBkZWYgdGVzdF9jaG1vZF9yZWNfaW50KHNlbGYsIHBhdGgxKToK
KyAgICAgICAgIyBYWFggZnJhZ2lsZSB0ZXN0CisgICAgICAgIGRlZiByZWNmaWx0ZXIoeCk6IHJl
dHVybiB4LmNoZWNrKGRvdGZpbGU9MCwgbGluaz0wKQorICAgICAgICBvbGRtb2RlcyA9IHt9Cisg
ICAgICAgIGZvciB4IGluIHBhdGgxLnZpc2l0KHJlYz1yZWNmaWx0ZXIpOgorICAgICAgICAgICAg
b2xkbW9kZXNbeF0gPSB4LnN0YXQoKS5tb2RlCisgICAgICAgIHBhdGgxLmNobW9kKGludCgiNzcy
IiwgOCksIHJlYz1yZWNmaWx0ZXIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciB4IGlu
IHBhdGgxLnZpc2l0KHJlYz1yZWNmaWx0ZXIpOgorICAgICAgICAgICAgICAgIGFzc2VydCB4LnN0
YXQoKS5tb2RlICYgaW50KCI3NzciLCA4KSA9PSBpbnQoIjc3MiIsIDgpCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBmb3IgeCwgeSBpbiBvbGRtb2Rlcy5pdGVtcygpOgorICAgICAgICAg
ICAgICAgIHguY2htb2QoeSkKKworICAgIGRlZiB0ZXN0X2NvcHlfYXJjaGl2aW5nKHNlbGYsIHRt
cGRpcik6CisgICAgICAgIHVuaWNvZGVfZm4gPSB1InNvbWV0aGluZy1cMzQyXDIwMFwyMjMudHh0
IgorICAgICAgICBmID0gdG1wZGlyLmVuc3VyZSgiYSIsIHVuaWNvZGVfZm4pCisgICAgICAgIGEg
PSBmLmRpcnBhdGgoKQorICAgICAgICBvbGRtb2RlID0gZi5zdGF0KCkubW9kZQorICAgICAgICBu
ZXdtb2RlID0gb2xkbW9kZSBeIDEKKyAgICAgICAgZi5jaG1vZChuZXdtb2RlKQorICAgICAgICBi
ID0gdG1wZGlyLmpvaW4oImIiKQorICAgICAgICBhLmNvcHkoYiwgbW9kZT1UcnVlKQorICAgICAg
ICBhc3NlcnQgYi5qb2luKGYuYmFzZW5hbWUpLnN0YXQoKS5tb2RlID09IG5ld21vZGUKKworICAg
IGRlZiB0ZXN0X2NvcHlfc3RhdF9maWxlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIHNyYyA9IHRt
cGRpci5lbnN1cmUoJ3NyYycpCisgICAgICAgIGRzdCA9IHRtcGRpci5qb2luKCdkc3QnKQorICAg
ICAgICAjIGEgc21hbGwgZGVsYXkgYmVmb3JlIHRoZSBjb3B5CisgICAgICAgIHRpbWUuc2xlZXAo
QVRJTUVfUkVTT0xVVElPTikKKyAgICAgICAgc3JjLmNvcHkoZHN0LCBzdGF0PVRydWUpCisgICAg
ICAgIG9sZHN0YXQgPSBzcmMuc3RhdCgpCisgICAgICAgIG5ld3N0YXQgPSBkc3Quc3RhdCgpCisg
ICAgICAgIGFzc2VydCBvbGRzdGF0Lm1vZGUgPT0gbmV3c3RhdC5tb2RlCisgICAgICAgIGFzc2Vy
dCAoZHN0LmF0aW1lKCkgLSBzcmMuYXRpbWUoKSkgPCBBVElNRV9SRVNPTFVUSU9OCisgICAgICAg
IGFzc2VydCAoZHN0Lm10aW1lKCkgLSBzcmMubXRpbWUoKSkgPCBBVElNRV9SRVNPTFVUSU9OCisK
KyAgICBkZWYgdGVzdF9jb3B5X3N0YXRfZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAgIHRlc3Rf
ZmlsZXMgPSBbJ2EnLCAnYicsICdjJ10KKyAgICAgICAgc3JjID0gdG1wZGlyLmpvaW4oJ3NyYycp
CisgICAgICAgIGZvciBmIGluIHRlc3RfZmlsZXM6CisgICAgICAgICAgICBzcmMuam9pbihmKS53
cml0ZShmLCBlbnN1cmU9VHJ1ZSkKKyAgICAgICAgZHN0ID0gdG1wZGlyLmpvaW4oJ2RzdCcpCisg
ICAgICAgICMgYSBzbWFsbCBkZWxheSBiZWZvcmUgdGhlIGNvcHkKKyAgICAgICAgdGltZS5zbGVl
cChBVElNRV9SRVNPTFVUSU9OKQorICAgICAgICBzcmMuY29weShkc3QsIHN0YXQ9VHJ1ZSkKKyAg
ICAgICAgZm9yIGYgaW4gdGVzdF9maWxlczoKKyAgICAgICAgICAgIG9sZHN0YXQgPSBzcmMuam9p
bihmKS5zdGF0KCkKKyAgICAgICAgICAgIG5ld3N0YXQgPSBkc3Quam9pbihmKS5zdGF0KCkKKyAg
ICAgICAgICAgIGFzc2VydCAobmV3c3RhdC5hdGltZSAtIG9sZHN0YXQuYXRpbWUpIDwgQVRJTUVf
UkVTT0xVVElPTgorICAgICAgICAgICAgYXNzZXJ0IChuZXdzdGF0Lm10aW1lIC0gb2xkc3RhdC5t
dGltZSkgPCBBVElNRV9SRVNPTFVUSU9OCisgICAgICAgICAgICBhc3NlcnQgb2xkc3RhdC5tb2Rl
ID09IG5ld3N0YXQubW9kZQorCisgICAgQGZhaWxzb25qeXRob24KKyAgICBkZWYgdGVzdF9jaG93
bl9pZGVudGl0eShzZWxmLCBwYXRoMSk6CisgICAgICAgIG93bmVyID0gcGF0aDEuc3RhdCgpLm93
bmVyCisgICAgICAgIGdyb3VwID0gcGF0aDEuc3RhdCgpLmdyb3VwCisgICAgICAgIHBhdGgxLmNo
b3duKG93bmVyLCBncm91cCkKKworICAgIEBmYWlsc29uanl0aG9uCisgICAgZGVmIHRlc3RfY2hv
d25fZGFuZ2xpbmdfbGluayhzZWxmLCBwYXRoMSk6CisgICAgICAgIG93bmVyID0gcGF0aDEuc3Rh
dCgpLm93bmVyCisgICAgICAgIGdyb3VwID0gcGF0aDEuc3RhdCgpLmdyb3VwCisgICAgICAgIHgg
PSBwYXRoMS5qb2luKCdoZWxsbycpCisgICAgICAgIHgubWtzeW1saW5rdG8oJ3Fsd2tlanF3bGVr
JykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGF0aDEuY2hvd24ob3duZXIsIGdyb3VwLCBy
ZWM9MSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHgucmVtb3ZlKHJlYz0wKQorCisg
ICAgQGZhaWxzb25qeXRob24KKyAgICBkZWYgdGVzdF9jaG93bl9pZGVudGl0eV9yZWNfbWF5ZmFp
bChzZWxmLCBwYXRoMSk6CisgICAgICAgIG93bmVyID0gcGF0aDEuc3RhdCgpLm93bmVyCisgICAg
ICAgIGdyb3VwID0gcGF0aDEuc3RhdCgpLmdyb3VwCisgICAgICAgIHBhdGgxLmNob3duKG93bmVy
LCBncm91cCkKKworCitjbGFzcyBUZXN0VW5pY29kZVB5MlB5MzoKKyAgICBkZWYgdGVzdF9qb2lu
X2Vuc3VyZShzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgaWYgc3lzLnZlcnNp
b25faW5mbyA+PSAoMywgMCkgYW5kICJMQU5HIiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAg
ICAgIHB5dGVzdC5za2lwKCJjYW5ub3QgcnVuIHRlc3Qgd2l0aG91dCBsb2NhbGUiKQorICAgICAg
ICB4ID0gcHkucGF0aC5sb2NhbCh0bXBkaXIuc3RycGF0aCkKKyAgICAgICAgcGFydCA9ICJow6Rs
bG8iCisgICAgICAgIHkgPSB4LmVuc3VyZShwYXJ0KQorICAgICAgICBhc3NlcnQgeC5qb2luKHBh
cnQpID09IHkKKworICAgIGRlZiB0ZXN0X2xpc3RkaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAg
aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkgYW5kICJMQU5HIiBub3QgaW4gb3MuZW52aXJv
bjoKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJjYW5ub3QgcnVuIHRlc3Qgd2l0aG91dCBsb2Nh
bGUiKQorICAgICAgICB4ID0gcHkucGF0aC5sb2NhbCh0bXBkaXIuc3RycGF0aCkKKyAgICAgICAg
cGFydCA9ICJow6RsbG8iCisgICAgICAgIHkgPSB4LmVuc3VyZShwYXJ0KQorICAgICAgICBhc3Nl
cnQgeC5saXN0ZGlyKHBhcnQpWzBdID09IHkKKworICAgIEBweXRlc3QubWFyay54ZmFpbCgKKyAg
ICAgICAgcmVhc29uPSJjaGFuZ2luZyByZWFkL3dyaXRlIG1pZ2h0IGJyZWFrIGV4aXN0aW5nIHVz
YWdlcyIpCisgICAgZGVmIHRlc3RfcmVhZF93cml0ZShzZWxmLCB0bXBkaXIpOgorICAgICAgICB4
ID0gdG1wZGlyLmpvaW4oImhlbGxvIikKKyAgICAgICAgcGFydCA9IHB5LmJ1aWx0aW4uX3RvdGV4
dCgiaMOkbGxvIiwgInV0ZjgiKQorICAgICAgICB4LndyaXRlKHBhcnQpCisgICAgICAgIGFzc2Vy
dCB4LnJlYWQoKSA9PSBwYXJ0CisgICAgICAgIHgud3JpdGUocGFydC5lbmNvZGUoc3lzLmdldGRl
ZmF1bHRlbmNvZGluZygpKSkKKyAgICAgICAgYXNzZXJ0IHgucmVhZCgpID09IHBhcnQuZW5jb2Rl
KHN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKSkKKworCitjbGFzcyBUZXN0QmluYXJ5QW5kVGV4dE1l
dGhvZHM6CisgICAgZGVmIHRlc3RfcmVhZF9iaW53cml0ZShzZWxmLCB0bXBkaXIpOgorICAgICAg
ICB4ID0gdG1wZGlyLmpvaW4oImhlbGxvIikKKyAgICAgICAgcGFydCA9IHB5LmJ1aWx0aW4uX3Rv
dGV4dCgiaMOkbGxvIiwgInV0ZjgiKQorICAgICAgICBwYXJ0X3V0ZjggPSBwYXJ0LmVuY29kZSgi
dXRmOCIpCisgICAgICAgIHgud3JpdGVfYmluYXJ5KHBhcnRfdXRmOCkKKyAgICAgICAgYXNzZXJ0
IHgucmVhZF9iaW5hcnkoKSA9PSBwYXJ0X3V0ZjgKKyAgICAgICAgcyA9IHgucmVhZF90ZXh0KGVu
Y29kaW5nPSJ1dGY4IikKKyAgICAgICAgYXNzZXJ0IHMgPT0gcGFydAorICAgICAgICBhc3NlcnQg
cHkuYnVpbHRpbi5faXN0ZXh0KHMpCisKKyAgICBkZWYgdGVzdF9yZWFkX3RleHR3cml0ZShzZWxm
LCB0bXBkaXIpOgorICAgICAgICB4ID0gdG1wZGlyLmpvaW4oImhlbGxvIikKKyAgICAgICAgcGFy
dCA9IHB5LmJ1aWx0aW4uX3RvdGV4dCgiaMOkbGxvIiwgInV0ZjgiKQorICAgICAgICBwYXJ0X3V0
ZjggPSBwYXJ0LmVuY29kZSgidXRmOCIpCisgICAgICAgIHgud3JpdGVfdGV4dChwYXJ0LCBlbmNv
ZGluZz0idXRmOCIpCisgICAgICAgIGFzc2VydCB4LnJlYWRfYmluYXJ5KCkgPT0gcGFydF91dGY4
CisgICAgICAgIGFzc2VydCB4LnJlYWRfdGV4dChlbmNvZGluZz0idXRmOCIpID09IHBhcnQKKwor
ICAgIGRlZiB0ZXN0X2RlZmF1bHRfZW5jb2Rpbmcoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgeCA9
IHRtcGRpci5qb2luKCJoZWxsbyIpCisgICAgICAgICMgQ2FuJ3QgdXNlIFVURjggYXMgdGhlIGRl
ZmF1bHQgZW5jb2RpbmcgKEFTQ0lJKSBkb2Vzbid0IHN1cHBvcnQgaXQKKyAgICAgICAgcGFydCA9
IHB5LmJ1aWx0aW4uX3RvdGV4dCgiaGVsbG8iLCAiYXNjaWkiKQorICAgICAgICB4LndyaXRlX3Rl
eHQocGFydCwgImFzY2lpIikKKyAgICAgICAgcyA9IHgucmVhZF90ZXh0KCJhc2NpaSIpCisgICAg
ICAgIGFzc2VydCBzID09IHBhcnQKKyAgICAgICAgYXNzZXJ0IHR5cGUocykgPT0gdHlwZShwYXJ0
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm5hdXRoLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm5hdXRoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NGYwMzMyMjRm
YmQ0M2ZlMWQxNjAyZGZjYWIxOWQzMTEyMDExODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bmF1dGgucHkKQEAgLTAsMCArMSw0NjAgQEAKK2ltcG9ydCBw
eQorZnJvbSBweS5wYXRoIGltcG9ydCBTdm5BdXRoCitpbXBvcnQgdGltZQoraW1wb3J0IHN5cwor
Citzdm5iaW4gPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoJ3N2bicpCisKKworZGVmIG1ha2VfcmVw
b19hdXRoKHJlcG8sIHVzZXJkYXRhKToKKyAgICAiIiIgd3JpdGUgY29uZmlnIHRvIHJlcG8KKwor
ICAgICAgICB1c2VyIGluZm9ybWF0aW9uIGluIHVzZXJkYXRhIGlzIHVzZWQgZm9yIGF1dGgKKyAg
ICAgICAgdXNlcmRhdGEgaGFzIHVzZXIgbmFtZXMgYXMga2V5cywgYW5kIGEgdHVwbGUgKHBhc3N3
b3JkLCByZWFkd3JpdGUpIGFzCisgICAgICAgIHZhbHVlcywgd2hlcmUgJ3JlYWR3cml0ZScgaXMg
ZWl0aGVyICdyJyBvciAncncnCisgICAgIiIiCisgICAgY29uZmRpciA9IHB5LnBhdGgubG9jYWwo
cmVwbykuam9pbignY29uZicpCisgICAgY29uZmRpci5qb2luKCdzdm5zZXJ2ZS5jb25mJykud3Jp
dGUoJycnXAorW2dlbmVyYWxdCithbm9uLWFjY2VzcyA9IG5vbmUKK3Bhc3N3b3JkLWRiID0gcGFz
c3dkCithdXRoei1kYiA9IGF1dGh6CityZWFsbSA9IFRlc3RSZXBvCisnJycpCisgICAgYXV0aHpk
YXRhID0gJ1svXVxuJworICAgIHBhc3N3ZGRhdGEgPSAnW3VzZXJzXVxuJworICAgIGZvciB1c2Vy
IGluIHVzZXJkYXRhOgorICAgICAgICBhdXRoemRhdGEgKz0gJyVzID0gJXNcbicgJSAodXNlciwg
dXNlcmRhdGFbdXNlcl1bMV0pCisgICAgICAgIHBhc3N3ZGRhdGEgKz0gJyVzID0gJXNcbicgJSAo
dXNlciwgdXNlcmRhdGFbdXNlcl1bMF0pCisgICAgY29uZmRpci5qb2luKCdhdXRoeicpLndyaXRl
KGF1dGh6ZGF0YSkKKyAgICBjb25mZGlyLmpvaW4oJ3Bhc3N3ZCcpLndyaXRlKHBhc3N3ZGRhdGEp
CisKK2RlZiBzZXJ2ZV9iZyhyZXBvcGF0aCk6CisgICAgcGlkZmlsZSA9IHB5LnBhdGgubG9jYWwo
cmVwb3BhdGgpLmpvaW4oJ3BpZCcpCisgICAgcG9ydCA9IDEwMDAwCisgICAgZSA9IE5vbmUKKyAg
ICB3aGlsZSBwb3J0IDwgMTAwMTA6CisgICAgICAgIGNtZCA9ICdzdm5zZXJ2ZSAtZCAtVCAtLWxp
c3Rlbi1wb3J0PSVkIC0tcGlkLWZpbGU9JXMgLXIgJXMnICUgKAorICAgICAgICAgICAgICAgcG9y
dCwgcGlkZmlsZSwgcmVwb3BhdGgpCisgICAgICAgIHByaW50KGNtZCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcHkucHJvY2Vzcy5jbWRleGVjKGNtZCkKKyAgICAgICAgZXhjZXB0IHB5LnBy
b2Nlc3MuY21kZXhlYy5FcnJvcjoKKyAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBYWFggd2UgYXNzdW1lIGhlcmUgdGhhdCB0aGUg
cGlkIGZpbGUgZ2V0cyB3cml0dGVuIHNvbWV3aGVyZSwgSQorICAgICAgICAgICAgIyBndWVzcyB0
aGlzIHNob3VsZCBiZSByZWxhdGl2ZWx5IHNhZmUuLi4gKEkgaG9wZSwgYXQgbGVhc3Q/KQorICAg
ICAgICAgICAgY291bnRlciA9IHBpZCA9IDAKKyAgICAgICAgICAgIHdoaWxlIGNvdW50ZXIgPCAx
MDoKKyAgICAgICAgICAgICAgICBjb3VudGVyICs9IDEKKyAgICAgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgICAgIHBpZCA9IHBpZGZpbGUucmVhZCgpCisgICAgICAgICAgICAgICAg
ZXhjZXB0IHB5LmVycm9yLkVOT0VOVDoKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAgICAgICAgIGlmIHBpZDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDAuMikKKyAgICAgICAgICAgIHJldHVybiBwb3J0LCBpbnQocGlkKQor
ICAgICAgICBwb3J0ICs9IDEKKyAgICByYWlzZSBJT0Vycm9yKCdjb3VsZCBub3Qgc3RhcnQgc3Zu
c2VydmU6ICVzJyAlIChlLCkpCisKK2NsYXNzIFRlc3RTdm5BdXRoKG9iamVjdCk6CisgICAgZGVm
IHRlc3RfYmFzaWMoc2VsZik6CisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJykK
KyAgICAgICAgYXNzZXJ0IGF1dGgudXNlcm5hbWUgPT0gJ2ZvbycKKyAgICAgICAgYXNzZXJ0IGF1
dGgucGFzc3dvcmQgPT0gJ2JhcicKKyAgICAgICAgYXNzZXJ0IHN0cihhdXRoKQorCisgICAgZGVm
IHRlc3RfbWFrZWNtZG9wdGlvbnNfdW5hbWVfcHdfbWFrZXN0cihzZWxmKToKKyAgICAgICAgYXV0
aCA9IFN2bkF1dGgoJ2ZvbycsICdiYXInKQorICAgICAgICBhc3NlcnQgYXV0aC5tYWtlY21kb3B0
aW9ucygpID09ICctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dvcmQ9ImJhciInCisKKyAgICBkZWYg
dGVzdF9tYWtlY21kb3B0aW9uc19xdW90ZV9lc2NhcGUoc2VsZik6CisgICAgICAgIGF1dGggPSBT
dm5BdXRoKCdmbyJvJywgJyJiYVwnciInKQorICAgICAgICBhc3NlcnQgYXV0aC5tYWtlY21kb3B0
aW9ucygpID09ICctLXVzZXJuYW1lPSJmb1xcIm8iIC0tcGFzc3dvcmQ9IlxcImJhXCdyXFwiIicK
KworICAgIGRlZiB0ZXN0X21ha2VjbWRvcHRpb25zX25vX2NhY2hlX2F1dGgoc2VsZik6CisgICAg
ICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJywgY2FjaGVfYXV0aD1GYWxzZSkKKyAgICAg
ICAgYXNzZXJ0IGF1dGgubWFrZWNtZG9wdGlvbnMoKSA9PSAoJy0tdXNlcm5hbWU9ImZvbyIgLS1w
YXNzd29yZD0iYmFyIiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICctLW5vLWF1dGgtY2FjaGUnKQorCisgICAgZGVmIHRlc3RfbWFrZWNtZG9wdGlvbnNfbm9faW50
ZXJhY3RpdmUoc2VsZik6CisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJywgaW50
ZXJhY3RpdmU9RmFsc2UpCisgICAgICAgIGFzc2VydCBhdXRoLm1ha2VjbWRvcHRpb25zKCkgPT0g
KCctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dvcmQ9ImJhciIgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnLS1ub24taW50ZXJhY3RpdmUnKQorCisgICAgZGVmIHRl
c3RfbWFrZWNtZG9wdGlvbnNfbm9faW50ZXJhY3RpdmVfbm9fY2FjaGVfYXV0aChzZWxmKToKKyAg
ICAgICAgYXV0aCA9IFN2bkF1dGgoJ2ZvbycsICdiYXInLCBjYWNoZV9hdXRoPUZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlPUZhbHNlKQorICAgICAgICBh
c3NlcnQgYXV0aC5tYWtlY21kb3B0aW9ucygpID09ICgnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3
b3JkPSJiYXIiICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0t
bm8tYXV0aC1jYWNoZSAtLW5vbi1pbnRlcmFjdGl2ZScpCisKK2NsYXNzIHN2bndjX25vX3N2bihw
eS5wYXRoLnN2bndjKToKKyAgICBkZWYgX19uZXdfXyhjbHMsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgIHNlbGYgPSBzdXBlcihzdm53Y19ub19zdm4sIGNscykuX19uZXdfXyhjbHMsICphcmdz
LCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCisgICAgICAgIHJldHVybiBz
ZWxmCisKKyAgICBkZWYgX3N2bihzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYuY29tbWFuZHMu
YXBwZW5kKGFyZ3MpCisKK2NsYXNzIFRlc3RTdm5XQ0F1dGgob2JqZWN0KToKKyAgICBkZWYgc2V0
dXBfbWV0aG9kKHNlbGYsIG1ldGgpOgorICAgICAgICBpZiBub3Qgc3ZuYmluOgorICAgICAgICAg
ICAgcHkudGVzdC5za2lwKCJzdm4gYmluYXJ5IHJlcXVpcmVkIikKKyAgICAgICAgc2VsZi5hdXRo
ID0gU3ZuQXV0aCgndXNlcicsICdwYXNzJywgY2FjaGVfYXV0aD1GYWxzZSkKKworICAgIGRlZiB0
ZXN0X2NoZWNrb3V0KHNlbGYpOgorICAgICAgICB3YyA9IHN2bndjX25vX3N2bignZm9vJywgYXV0
aD1zZWxmLmF1dGgpCisgICAgICAgIHdjLmNoZWNrb3V0KCd1cmwnKQorICAgICAgICBhc3NlcnQg
d2MuY29tbWFuZHNbMF1bLTFdID09ICgnLS11c2VybmFtZT0idXNlciIgLS1wYXNzd29yZD0icGFz
cyIgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1uby1hdXRoLWNh
Y2hlJykKKworICAgIGRlZiB0ZXN0X2NvbW1pdChzZWxmKToKKyAgICAgICAgd2MgPSBzdm53Y19u
b19zdm4oJ2ZvbycsIGF1dGg9c2VsZi5hdXRoKQorICAgICAgICB3Yy5jb21taXQoJ21zZycpCisg
ICAgICAgIGFzc2VydCB3Yy5jb21tYW5kc1swXVstMV0gPT0gKCctLXVzZXJuYW1lPSJ1c2VyIiAt
LXBhc3N3b3JkPSJwYXNzIiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICctLW5vLWF1dGgtY2FjaGUnKQorCisgICAgZGVmIHRlc3RfY2hlY2tvdXRfbm9fY2FjaGVfYXV0
aChzZWxmKToKKyAgICAgICAgd2MgPSBzdm53Y19ub19zdm4oJ2ZvbycsIGF1dGg9c2VsZi5hdXRo
KQorICAgICAgICB3Yy5jaGVja291dCgndXJsJykKKyAgICAgICAgYXNzZXJ0IHdjLmNvbW1hbmRz
WzBdWy0xXSA9PSAoJy0tdXNlcm5hbWU9InVzZXIiIC0tcGFzc3dvcmQ9InBhc3MiICcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbm8tYXV0aC1jYWNoZScpCisKKyAg
ICBkZWYgdGVzdF9jaGVja291dF9hdXRoX2Zyb21fY29uc3RydWN0b3Ioc2VsZik6CisgICAgICAg
IHdjID0gc3Zud2Nfbm9fc3ZuKCdmb28nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgd2MuY2hl
Y2tvdXQoJ3VybCcpCisgICAgICAgIGFzc2VydCB3Yy5jb21tYW5kc1swXVstMV0gPT0gKCctLXVz
ZXJuYW1lPSJ1c2VyIiAtLXBhc3N3b3JkPSJwYXNzIiAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICctLW5vLWF1dGgtY2FjaGUnKQorCitjbGFzcyBzdm51cmxfbm9fc3Zu
KHB5LnBhdGguc3ZudXJsKToKKyAgICBjbWRleGVjX291dHB1dCA9ICd0ZXN0JworICAgIHBvcGVu
X291dHB1dCA9ICd0ZXN0JworICAgIGRlZiBfX25ld19fKGNscywgKmFyZ3MsICoqa3dhcmdzKToK
KyAgICAgICAgc2VsZiA9IHN1cGVyKHN2bnVybF9ub19zdm4sIGNscykuX19uZXdfXyhjbHMsICph
cmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgX2NtZGV4ZWMoc2VsZiwgY21kKToKKyAgICAgICAgc2VsZi5jb21t
YW5kcy5hcHBlbmQoY21kKQorICAgICAgICByZXR1cm4gc2VsZi5jbWRleGVjX291dHB1dAorCisg
ICAgZGVmIF9wb3BlbihzZWxmLCBjbWQpOgorICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVuZChj
bWQpCisgICAgICAgIHJldHVybiBzZWxmLnBvcGVuX291dHB1dAorCitjbGFzcyBUZXN0U3ZuVVJM
QXV0aChvYmplY3QpOgorICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aCk6CisgICAgICAg
IHNlbGYuYXV0aCA9IFN2bkF1dGgoJ2ZvbycsICdiYXInKQorCisgICAgZGVmIHRlc3RfaW5pdChz
ZWxmKToKKyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bicpCisg
ICAgICAgIGFzc2VydCB1LmF1dGggaXMgTm9uZQorCisgICAgICAgIHUgPSBzdm51cmxfbm9fc3Zu
KCdodHRwOi8vZm9vLmJhci9zdm4nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgYXNzZXJ0IHUu
YXV0aCBpcyBzZWxmLmF1dGgKKworICAgIGRlZiB0ZXN0X25ldyhzZWxmKToKKyAgICAgICAgdSA9
IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bi9mb28nLCBhdXRoPXNlbGYuYXV0aCkK
KyAgICAgICAgbmV3ID0gdS5uZXcoYmFzZW5hbWU9J2JhcicpCisgICAgICAgIGFzc2VydCBuZXcu
YXV0aCBpcyBzZWxmLmF1dGgKKyAgICAgICAgYXNzZXJ0IG5ldy51cmwgPT0gJ2h0dHA6Ly9mb28u
YmFyL3N2bi9iYXInCisKKyAgICBkZWYgdGVzdF9qb2luKHNlbGYpOgorICAgICAgICB1ID0gc3Zu
dXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAg
IG5ldyA9IHUuam9pbignZm9vJykKKyAgICAgICAgYXNzZXJ0IG5ldy5hdXRoIGlzIHNlbGYuYXV0
aAorICAgICAgICBhc3NlcnQgbmV3LnVybCA9PSAnaHR0cDovL2Zvby5iYXIvc3ZuL2ZvbycKKwor
ICAgIGRlZiB0ZXN0X2xpc3RkaXIoc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdo
dHRwOi8vZm9vLmJhci9zdm4nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgdS5jbWRleGVjX291
dHB1dCA9ICcnJ1wKKyAgIDE3MTcgam9obm55ICAgICAgICAgICAxNTI5IE5vdiAwNCAxNDozMiBM
SUNFTlNFLnR4dAorICAgMTcxNiBqb2hubnkgICAgICAgICAgIDUzNTIgTm92IDA0IDE0OjI4IFJF
QURNRS50eHQKKycnJworICAgICAgICBwYXRocyA9IHUubGlzdGRpcigpCisgICAgICAgIGFzc2Vy
dCBwYXRoc1swXS5hdXRoIGlzIHNlbGYuYXV0aAorICAgICAgICBhc3NlcnQgcGF0aHNbMV0uYXV0
aCBpcyBzZWxmLmF1dGgKKyAgICAgICAgYXNzZXJ0IHBhdGhzWzBdLmJhc2VuYW1lID09ICdMSUNF
TlNFLnR4dCcKKworICAgIGRlZiB0ZXN0X2luZm8oc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxf
bm9fc3ZuKCdodHRwOi8vZm9vLmJhci9zdm4vTElDRU5TRS50eHQnLCBhdXRoPXNlbGYuYXV0aCkK
KyAgICAgICAgZGVmIGRpcnBhdGgoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAg
ICAgICB1LmNtZGV4ZWNfb3V0cHV0ID0gJycnXAorICAgMTcxNyBqb2hubnkgICAgICAgICAgIDE1
MjkgTm92IDA0IDE0OjMyIExJQ0VOU0UudHh0CisgICAxNzE2IGpvaG5ueSAgICAgICAgICAgNTM1
MiBOb3YgMDQgMTQ6MjggUkVBRE1FLnR4dAorJycnCisgICAgICAgIG9yZ19kcCA9IHUuX19jbGFz
c19fLmRpcnBhdGgKKyAgICAgICAgdS5fX2NsYXNzX18uZGlycGF0aCA9IGRpcnBhdGgKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgaW5mbyA9IHUuaW5mbygpCisgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICB1LmRpcnBhdGggPSBvcmdfZHAKKyAgICAgICAgYXNzZXJ0IGluZm8uc2l6ZSA9
PSAxNTI5CisKKyAgICBkZWYgdGVzdF9vcGVuKHNlbGYpOgorICAgICAgICB1ID0gc3ZudXJsX25v
X3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIGZvbyA9
IHUuam9pbignZm9vJykKKyAgICAgICAgZm9vLmNoZWNrID0gbGFtYmRhICphcmdzLCAqKmt3YXJn
czogVHJ1ZQorICAgICAgICByZXQgPSBmb28ub3BlbigpCisgICAgICAgIGFzc2VydCByZXQgPT0g
J3Rlc3QnCisgICAgICAgIGFzc2VydCAnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3b3JkPSJiYXIi
JyBpbiBmb28uY29tbWFuZHNbMF0KKworICAgIGRlZiB0ZXN0X2RpcnBhdGgoc2VsZik6CisgICAg
ICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdodHRwOi8vZm9vLmJhci9zdm4vZm9vJywgYXV0aD1zZWxm
LmF1dGgpCisgICAgICAgIHBhcmVudCA9IHUuZGlycGF0aCgpCisgICAgICAgIGFzc2VydCBwYXJl
bnQuYXV0aCBpcyBzZWxmLmF1dGgKKworICAgIGRlZiB0ZXN0X21rZGlyKHNlbGYpOgorICAgICAg
ICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuL3F3ZXF3ZScsIGF1dGg9c2Vs
Zi5hdXRoKQorICAgICAgICBhc3NlcnQgbm90IHUuY29tbWFuZHMKKyAgICAgICAgdS5ta2Rpciht
c2c9J2NyZWF0ZWQgZGlyIGZvbycpCisgICAgICAgIGFzc2VydCB1LmNvbW1hbmRzCisgICAgICAg
IGFzc2VydCAnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3b3JkPSJiYXIiJyBpbiB1LmNvbW1hbmRz
WzBdCisKKyAgICBkZWYgdGVzdF9jb3B5KHNlbGYpOgorICAgICAgICB1ID0gc3ZudXJsX25vX3N2
bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIHUyID0gc3Zu
dXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuMicpCisgICAgICAgIHUuY29weSh1MiwgJ2Nv
cGllZCBkaXInKQorICAgICAgICBhc3NlcnQgJy0tdXNlcm5hbWU9ImZvbyIgLS1wYXNzd29yZD0i
YmFyIicgaW4gdS5jb21tYW5kc1swXQorCisgICAgZGVmIHRlc3RfcmVuYW1lKHNlbGYpOgorICAg
ICAgICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuL2ZvbycsIGF1dGg9c2Vs
Zi5hdXRoKQorICAgICAgICB1LnJlbmFtZSgnaHR0cDovL2Zvby5iYXIvc3ZuL2JhcicsICdtb3Zl
ZCBmb28gdG8gYmFyJykKKyAgICAgICAgYXNzZXJ0ICctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dv
cmQ9ImJhciInIGluIHUuY29tbWFuZHNbMF0KKworICAgIGRlZiB0ZXN0X3JlbW92ZShzZWxmKToK
KyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bi9mb28nLCBhdXRo
PXNlbGYuYXV0aCkKKyAgICAgICAgdS5yZW1vdmUobXNnPSdyZW1vdmluZyBmb28nKQorICAgICAg
ICBhc3NlcnQgJy0tdXNlcm5hbWU9ImZvbyIgLS1wYXNzd29yZD0iYmFyIicgaW4gdS5jb21tYW5k
c1swXQorCisgICAgZGVmIHRlc3RfZXhwb3J0KHNlbGYpOgorICAgICAgICB1ID0gc3ZudXJsX25v
X3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIHRhcmdl
dCA9IHB5LnBhdGgubG9jYWwoJy9mb28nKQorICAgICAgICB1LmV4cG9ydCh0YXJnZXQpCisgICAg
ICAgIGFzc2VydCAnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3b3JkPSJiYXIiJyBpbiB1LmNvbW1h
bmRzWzBdCisKKyAgICBkZWYgdGVzdF9sb2coc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9f
c3ZuKCdodHRwOi8vZm9vLmJhci9zdm4vZm9vJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIHUu
cG9wZW5fb3V0cHV0ID0gcHkuaW8uVGV4dElPKHB5LmJ1aWx0aW4uX3RvdGV4dCgnJydcCis8P3ht
bCB2ZXJzaW9uPSIxLjAiPz4KKzxsb2c+Cis8bG9nZW50cnkgcmV2aXNpb249IjUxMzgxIj4KKzxh
dXRob3I+Z3VpZG88L2F1dGhvcj4KKzxkYXRlPjIwMDgtMDItMTFUMTI6MTI6MTguNDc2NDgxWjwv
ZGF0ZT4KKzxtc2c+Q3JlYXRpbmcgYnJhbmNoIHRvIHdvcmsgb24gYXV0aCBzdXBwb3J0IGZvciBw
eS5wYXRoLnN2biouCis8L21zZz4KKzwvbG9nZW50cnk+Cis8L2xvZz4KKycnJywgJ2FzY2lpJykp
CisgICAgICAgIHUuY2hlY2sgPSBsYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBUcnVlCisgICAgICAg
IHJldCA9IHUubG9nKDEwLCAyMCwgdmVyYm9zZT1UcnVlKQorICAgICAgICBhc3NlcnQgJy0tdXNl
cm5hbWU9ImZvbyIgLS1wYXNzd29yZD0iYmFyIicgaW4gdS5jb21tYW5kc1swXQorICAgICAgICBh
c3NlcnQgbGVuKHJldCkgPT0gMQorICAgICAgICBhc3NlcnQgaW50KHJldFswXS5yZXYpID09IDUx
MzgxCisgICAgICAgIGFzc2VydCByZXRbMF0uYXV0aG9yID09ICdndWlkbycKKworICAgIGRlZiB0
ZXN0X3Byb3BnZXQoc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdodHRwOi8vZm9v
LmJhci9zdm4nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgdS5wcm9wZ2V0KCdmb28nKQorICAg
ICAgICBhc3NlcnQgJy0tdXNlcm5hbWU9ImZvbyIgLS1wYXNzd29yZD0iYmFyIicgaW4gdS5jb21t
YW5kc1swXQorCitkZWYgcHl0ZXN0X2Z1bmNhcmdfX3NldHVwKHJlcXVlc3QpOgorICAgIHJldHVy
biBTZXR1cChyZXF1ZXN0KQorCitjbGFzcyBTZXR1cDoKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVxdWVzdCk6CisgICAgICAgIGlmIG5vdCBzdm5iaW46CisgICAgICAgICAgICBweS50ZXN0LnNr
aXAoInN2biBiaW5hcnkgcmVxdWlyZWQiKQorICAgICAgICBpZiBub3QgcmVxdWVzdC5jb25maWcu
b3B0aW9uLnJ1bnNsb3d0ZXN0czoKKyAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgndXNlIC0tcnVu
c2xvd3Rlc3RzIHRvIHJ1biB0aGVzZSB0ZXN0cycpCisKKyAgICAgICAgdG1wZGlyID0gcmVxdWVz
dC5nZXRmdW5jYXJndmFsdWUoInRtcGRpciIpCisgICAgICAgIHJlcG9kaXIgPSB0bXBkaXIuam9p
bigicmVwbyIpCisgICAgICAgIHB5LnByb2Nlc3MuY21kZXhlYygnc3ZuYWRtaW4gY3JlYXRlICVz
JyAlIHJlcG9kaXIpCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAg
ICAgICAgcmVwb2RpciA9ICcvJyArIHN0cihyZXBvZGlyKS5yZXBsYWNlKCdcXCcsICcvJykKKyAg
ICAgICAgc2VsZi5yZXBvID0gcHkucGF0aC5zdm51cmwoImZpbGU6Ly8lcyIgJSByZXBvZGlyKQor
ICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgICMgcmVtb3Zl
IHRyYWlsaW5nIHNsYXNoLi4uCisgICAgICAgICAgICByZXBvZGlyID0gcmVwb2RpclsxOl0KKyAg
ICAgICAgc2VsZi5yZXBvcGF0aCA9IHB5LnBhdGgubG9jYWwocmVwb2RpcikKKyAgICAgICAgc2Vs
Zi50ZW1wcGF0aCA9IHRtcGRpci5ta2RpcigidGVtcHBhdGgiKQorICAgICAgICBzZWxmLmF1dGgg
PSBTdm5BdXRoKCdqb2hubnknLCAnZm9vJywgY2FjaGVfYXV0aD1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlPUZhbHNlKQorICAgICAgICBtYWtl
X3JlcG9fYXV0aChzZWxmLnJlcG9wYXRoLCB7J2pvaG5ueSc6ICgnZm9vJywgJ3J3Jyl9KQorICAg
ICAgICBzZWxmLnBvcnQsIHNlbGYucGlkID0gc2VydmVfYmcoc2VsZi5yZXBvcGF0aC5kaXJwYXRo
KCkpCisgICAgICAgICMgWFhYIGNhY2hpbmcgaXMgdG9vIGdsb2JhbAorICAgICAgICBweS5wYXRo
LnN2bnVybC5fbHNub3JldmNhY2hlLl9kaWN0LmNsZWFyKCkKKyAgICAgICAgcmVxdWVzdC5hZGRm
aW5hbGl6ZXIobGFtYmRhOiBweS5wcm9jZXNzLmtpbGwoc2VsZi5waWQpKQorCitjbGFzcyBUZXN0
U3ZuV0NBdXRoRnVuY3Rpb25hbDoKKyAgICBkZWYgdGVzdF9jaGVja291dF9jb25zdHJ1Y3Rvcl9h
cmcoc2VsZiwgc2V0dXApOgorICAgICAgICB3YyA9IHB5LnBhdGguc3Zud2Moc2V0dXAudGVtcHBh
dGgsIGF1dGg9c2V0dXAuYXV0aCkKKyAgICAgICAgd2MuY2hlY2tvdXQoCisgICAgICAgICAgICAn
c3ZuOi8vbG9jYWxob3N0OiVzLyVzJyAlIChzZXR1cC5wb3J0LCBzZXR1cC5yZXBvcGF0aC5iYXNl
bmFtZSkpCisgICAgICAgIGFzc2VydCB3Yy5qb2luKCcuc3ZuJykuY2hlY2soKQorCisgICAgZGVm
IHRlc3RfY2hlY2tvdXRfZnVuY3Rpb25fYXJnKHNlbGYsIHNldHVwKToKKyAgICAgICAgd2MgPSBw
eS5wYXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLCBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIHdj
LmNoZWNrb3V0KAorICAgICAgICAgICAgJ3N2bjovL2xvY2FsaG9zdDolcy8lcycgJSAoc2V0dXAu
cG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUpKQorICAgICAgICBhc3NlcnQgd2Muam9pbign
LnN2bicpLmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X2NoZWNrb3V0X2ZhaWxpbmdfbm9uX2ludGVy
YWN0aXZlKHNlbGYsIHNldHVwKToKKyAgICAgICAgYXV0aCA9IFN2bkF1dGgoJ2pvaG5ueScsICdi
YXInLCBjYWNoZV9hdXRoPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dGVyYWN0aXZlPUZhbHNlKQorICAgICAgICB3YyA9IHB5LnBhdGguc3Zud2Moc2V0dXAudGVtcHBh
dGgsIGF1dGgpCisgICAgICAgIHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwKKyAgICAgICAgICAg
KCJ3Yy5jaGVja291dCgnc3ZuOi8vbG9jYWxob3N0OiUocG9ydClzLyUocmVwb3BhdGgpcycpIiAl
CisgICAgICAgICAgICAgc2V0dXAuX19kaWN0X18pKQorCisgICAgZGVmIHRlc3RfbG9nKHNlbGYs
IHNldHVwKToKKyAgICAgICAgd2MgPSBweS5wYXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLCBzZXR1
cC5hdXRoKQorICAgICAgICB3Yy5jaGVja291dCgKKyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhv
c3Q6JXMvJXMnICUgKHNldHVwLnBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2VuYW1lKSkKKyAgICAg
ICAgZm9vID0gd2MuZW5zdXJlKCdmb28udHh0JykKKyAgICAgICAgd2MuY29tbWl0KCdhZGRlZCBm
b28udHh0JykKKyAgICAgICAgbG9nID0gZm9vLmxvZygpCisgICAgICAgIGFzc2VydCBsZW4obG9n
KSA9PSAxCisgICAgICAgIGFzc2VydCBsb2dbMF0ubXNnID09ICdhZGRlZCBmb28udHh0JworCisg
ICAgZGVmIHRlc3Rfc3dpdGNoKHNlbGYsIHNldHVwKToKKyAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgeGRpc3QKKyAgICAgICAgICAgIHB5dGVz
dC5za2lwKCcjMTYwOiBmYWlscyB1bmRlciB4ZGlzdCcpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgd2MgPSBweS5wYXRoLnN2bndjKHNldHVw
LnRlbXBwYXRoLCBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIHN2bnVybCA9ICdzdm46Ly9sb2Nh
bGhvc3Q6JXMvJXMnICUgKHNldHVwLnBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2VuYW1lKQorICAg
ICAgICB3Yy5jaGVja291dChzdm51cmwpCisgICAgICAgIHdjLmVuc3VyZSgnZm9vJywgZGlyPVRy
dWUpLmVuc3VyZSgnZm9vLnR4dCcpLndyaXRlKCdmb28nKQorICAgICAgICB3Yy5jb21taXQoJ2Fk
ZGVkIGZvbyBkaXIgd2l0aCBmb28udHh0IGZpbGUnKQorICAgICAgICB3Yy5lbnN1cmUoJ2Jhcics
IGRpcj1UcnVlKQorICAgICAgICB3Yy5jb21taXQoJ2FkZGVkIGJhciBkaXInKQorICAgICAgICBi
YXIgPSB3Yy5qb2luKCdiYXInKQorICAgICAgICBiYXIuc3dpdGNoKHN2bnVybCArICcvZm9vJykK
KyAgICAgICAgYXNzZXJ0IGJhci5qb2luKCdmb28udHh0JykKKworICAgIGRlZiB0ZXN0X3VwZGF0
ZShzZWxmLCBzZXR1cCk6CisgICAgICAgIHdjMSA9IHB5LnBhdGguc3Zud2Moc2V0dXAudGVtcHBh
dGguZW5zdXJlKCd3YzEnLCBkaXI9VHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXV0aD1zZXR1cC5hdXRoKQorICAgICAgICB3YzIgPSBweS5wYXRoLnN2bndjKHNldHVwLnRlbXBw
YXRoLmVuc3VyZSgnd2MyJywgZGlyPVRydWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dGg9c2V0dXAuYXV0aCkKKyAgICAgICAgd2MxLmNoZWNrb3V0KAorICAgICAgICAgICAgJ3N2
bjovL2xvY2FsaG9zdDolcy8lcycgJSAoc2V0dXAucG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5h
bWUpKQorICAgICAgICB3YzIuY2hlY2tvdXQoCisgICAgICAgICAgICAnc3ZuOi8vbG9jYWxob3N0
OiVzLyVzJyAlIChzZXR1cC5wb3J0LCBzZXR1cC5yZXBvcGF0aC5iYXNlbmFtZSkpCisgICAgICAg
IHdjMS5lbnN1cmUoJ2ZvbycsIGRpcj1UcnVlKQorICAgICAgICB3YzEuY29tbWl0KCdhZGRlZCBm
b28gZGlyJykKKyAgICAgICAgd2MyLnVwZGF0ZSgpCisgICAgICAgIGFzc2VydCB3YzIuam9pbign
Zm9vJykuY2hlY2soKQorCisgICAgICAgIGF1dGggPSBTdm5BdXRoKCd1bmtub3duJywgJ3Vua25v
d24nLCBpbnRlcmFjdGl2ZT1GYWxzZSkKKyAgICAgICAgd2MyLmF1dGggPSBhdXRoCisgICAgICAg
IHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ3djMi51cGRhdGUoKScpCisKKyAgICBkZWYgdGVz
dF9sb2NrX3VubG9ja19zdGF0dXMoc2VsZiwgc2V0dXApOgorICAgICAgICBwb3J0ID0gc2V0dXAu
cG9ydAorICAgICAgICB3YyA9IHB5LnBhdGguc3Zud2Moc2V0dXAudGVtcHBhdGgsIGF1dGg9c2V0
dXAuYXV0aCkKKyAgICAgICAgd2MuY2hlY2tvdXQoCisgICAgICAgICAgICAnc3ZuOi8vbG9jYWxo
b3N0OiVzLyVzJyAlIChwb3J0LCBzZXR1cC5yZXBvcGF0aC5iYXNlbmFtZSwpKQorICAgICAgICB3
Yy5lbnN1cmUoJ2ZvbycsIGZpbGU9VHJ1ZSkKKyAgICAgICAgd2MuY29tbWl0KCdhZGRlZCBmb28g
ZmlsZScpCisgICAgICAgIGZvbyA9IHdjLmpvaW4oJ2ZvbycpCisgICAgICAgIGZvby5sb2NrKCkK
KyAgICAgICAgc3RhdHVzID0gZm9vLnN0YXR1cygpCisgICAgICAgIGFzc2VydCBzdGF0dXMubG9j
a2VkCisgICAgICAgIGZvby51bmxvY2soKQorICAgICAgICBzdGF0dXMgPSBmb28uc3RhdHVzKCkK
KyAgICAgICAgYXNzZXJ0IG5vdCBzdGF0dXMubG9ja2VkCisKKyAgICAgICAgYXV0aCA9IFN2bkF1
dGgoJ3Vua25vd24nLCAndW5rbm93bicsIGludGVyYWN0aXZlPUZhbHNlKQorICAgICAgICBmb28u
YXV0aCA9IGF1dGgKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAnZm9vLmxvY2so
KScpCisgICAgICAgIHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ2Zvby51bmxvY2soKScpCisK
KyAgICBkZWYgdGVzdF9kaWZmKHNlbGYsIHNldHVwKToKKyAgICAgICAgcG9ydCA9IHNldHVwLnBv
cnQKKyAgICAgICAgd2MgPSBweS5wYXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLCBhdXRoPXNldHVw
LmF1dGgpCisgICAgICAgIHdjLmNoZWNrb3V0KAorICAgICAgICAgICAgJ3N2bjovL2xvY2FsaG9z
dDolcy8lcycgJSAocG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUsKSkKKyAgICAgICAgd2Mu
ZW5zdXJlKCdmb28nLCBmaWxlPVRydWUpCisgICAgICAgIHdjLmNvbW1pdCgnYWRkZWQgZm9vIGZp
bGUnKQorICAgICAgICB3Yy51cGRhdGUoKQorICAgICAgICByZXYgPSBpbnQod2Muc3RhdHVzKCku
cmV2KQorICAgICAgICBmb28gPSB3Yy5qb2luKCdmb28nKQorICAgICAgICBmb28ud3JpdGUoJ2Jh
cicpCisgICAgICAgIGRpZmYgPSBmb28uZGlmZigpCisgICAgICAgIGFzc2VydCAnXG4rYmFyXG4n
IGluIGRpZmYKKyAgICAgICAgZm9vLmNvbW1pdCgnYWRkZWQgc29tZSBjb250ZW50JykKKyAgICAg
ICAgZGlmZiA9IGZvby5kaWZmKCkKKyAgICAgICAgYXNzZXJ0IG5vdCBkaWZmCisgICAgICAgIGRp
ZmYgPSBmb28uZGlmZihyZXY9cmV2KQorICAgICAgICBhc3NlcnQgJ1xuK2JhclxuJyBpbiBkaWZm
CisKKyAgICAgICAgYXV0aCA9IFN2bkF1dGgoJ3Vua25vd24nLCAndW5rbm93bicsIGludGVyYWN0
aXZlPUZhbHNlKQorICAgICAgICBmb28uYXV0aCA9IGF1dGgKKyAgICAgICAgcHkudGVzdC5yYWlz
ZXMoRXhjZXB0aW9uLCAnZm9vLmRpZmYocmV2PXJldiknKQorCitjbGFzcyBUZXN0U3ZuVVJMQXV0
aEZ1bmN0aW9uYWw6CisgICAgZGVmIHRlc3RfbGlzdGRpcihzZWxmLCBzZXR1cCk6CisgICAgICAg
IHBvcnQgPSBzZXR1cC5wb3J0CisgICAgICAgIHUgPSBweS5wYXRoLnN2bnVybCgKKyAgICAgICAg
ICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2Vu
YW1lKSwKKyAgICAgICAgICAgIGF1dGg9c2V0dXAuYXV0aCkKKyAgICAgICAgdS5lbnN1cmUoJ2Zv
bycpCisgICAgICAgIHBhdGhzID0gdS5saXN0ZGlyKCkKKyAgICAgICAgYXNzZXJ0IGxlbihwYXRo
cykgPT0gMQorICAgICAgICBhc3NlcnQgcGF0aHNbMF0uYXV0aCBpcyBzZXR1cC5hdXRoCisKKyAg
ICAgICAgYXV0aCA9IFN2bkF1dGgoJ2ZvbycsICdiYXInLCBpbnRlcmFjdGl2ZT1GYWxzZSkKKyAg
ICAgICAgdSA9IHB5LnBhdGguc3ZudXJsKAorICAgICAgICAgICAgJ3N2bjovL2xvY2FsaG9zdDol
cy8lcycgJSAocG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUpLAorICAgICAgICAgICAgYXV0
aD1hdXRoKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNlcHRpb24sICd1Lmxpc3RkaXIoKScp
CisKKyAgICBkZWYgdGVzdF9jb3B5KHNlbGYsIHNldHVwKToKKyAgICAgICAgcG9ydCA9IHNldHVw
LnBvcnQKKyAgICAgICAgdSA9IHB5LnBhdGguc3ZudXJsKAorICAgICAgICAgICAgJ3N2bjovL2xv
Y2FsaG9zdDolcy8lcycgJSAocG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUpLAorICAgICAg
ICAgICAgYXV0aD1zZXR1cC5hdXRoKQorICAgICAgICBmb28gPSB1Lm1rZGlyKCdmb28nKQorICAg
ICAgICBhc3NlcnQgZm9vLmNoZWNrKCkKKyAgICAgICAgYmFyID0gdS5qb2luKCdiYXInKQorICAg
ICAgICBmb28uY29weShiYXIpCisgICAgICAgIGFzc2VydCBiYXIuY2hlY2soKQorICAgICAgICBh
c3NlcnQgYmFyLmF1dGggaXMgc2V0dXAuYXV0aAorCisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdm
b28nLCAnYmFyJywgaW50ZXJhY3RpdmU9RmFsc2UpCisgICAgICAgIHUgPSBweS5wYXRoLnN2bnVy
bCgKKyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJl
cG9wYXRoLmJhc2VuYW1lKSwKKyAgICAgICAgICAgIGF1dGg9YXV0aCkKKyAgICAgICAgZm9vID0g
dS5qb2luKCdmb28nKQorICAgICAgICBiYXIgPSB1LmpvaW4oJ2JhcicpCisgICAgICAgIHB5LnRl
c3QucmFpc2VzKEV4Y2VwdGlvbiwgJ2Zvby5jb3B5KGJhciknKQorCisgICAgZGVmIHRlc3Rfd3Jp
dGVfcmVhZChzZWxmLCBzZXR1cCk6CisgICAgICAgIHBvcnQgPSBzZXR1cC5wb3J0CisgICAgICAg
IHUgPSBweS5wYXRoLnN2bnVybCgKKyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMn
ICUgKHBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2VuYW1lKSwKKyAgICAgICAgICAgIGF1dGg9c2V0
dXAuYXV0aCkKKyAgICAgICAgZm9vID0gdS5lbnN1cmUoJ2ZvbycpCisgICAgICAgIGZwID0gZm9v
Lm9wZW4oKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkYXRhID0gZnAucmVhZCgpCisgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgIGFzc2VydCBkYXRh
ID09ICcnCisKKyAgICAgICAgYXV0aCA9IFN2bkF1dGgoJ2ZvbycsICdiYXInLCBpbnRlcmFjdGl2
ZT1GYWxzZSkKKyAgICAgICAgdSA9IHB5LnBhdGguc3ZudXJsKAorICAgICAgICAgICAgJ3N2bjov
L2xvY2FsaG9zdDolcy8lcycgJSAocG9ydCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUpLAorICAg
ICAgICAgICAgYXV0aD1hdXRoKQorICAgICAgICBmb28gPSB1LmpvaW4oJ2ZvbycpCisgICAgICAg
IHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ2Zvby5vcGVuKCknKQorCisgICAgIyBYWFggcmlu
c2UsIHJlcGVhdC4uLiA6fApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9z
dm51cmwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bnVybC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNWZiZWE1MDQ3ZGE0Zjc3ZmRhOWZiMTRlMzRkMDllYjdhNmZhYjI1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm51cmwucHkKQEAgLTAsMCArMSw5NSBA
QAoraW1wb3J0IHB5Citmcm9tIHB5Ll9wYXRoLnN2bnVybCBpbXBvcnQgSW5mb1N2bkNvbW1hbmQK
K2ltcG9ydCBkYXRldGltZQoraW1wb3J0IHRpbWUKK2Zyb20gc3ZudGVzdGJhc2UgaW1wb3J0IENv
bW1vblN2blRlc3RzCisKK2RlZiBweXRlc3RfZnVuY2FyZ19fcGF0aDEocmVxdWVzdCk6CisgICAg
cmVwbywgcmVwb3VybCwgd2MgPSByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgicmVwb3djMSIpCisg
ICAgcmV0dXJuIHB5LnBhdGguc3ZudXJsKHJlcG91cmwpCisKK2NsYXNzIFRlc3RTdm5VUkxDb21t
YW5kUGF0aChDb21tb25Tdm5UZXN0cyk6CisgICAgQHB5LnRlc3QubWFyay54ZmFpbAorICAgIGRl
ZiB0ZXN0X2xvYWQoc2VsZiwgcGF0aDEpOgorICAgICAgICBzdXBlcihUZXN0U3ZuVVJMQ29tbWFu
ZFBhdGgsIHNlbGYpLnRlc3RfbG9hZChwYXRoMSkKKworICAgICMgdGhlIGZvbGxvd2luZyB0d28g
d29yayBvbiBqeXRob24gYnV0IG5vdCBpbiBsb2NhbC9zdm53YworICAgIGRlZiB0ZXN0X2xpc3Rk
aXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBzdXBlcihUZXN0U3ZuVVJMQ29tbWFuZFBhdGgsIHNl
bGYpLnRlc3RfbGlzdGRpcihwYXRoMSkKKyAgICBkZWYgdGVzdF92aXNpdF9pZ25vcmUoc2VsZiwg
cGF0aDEpOgorICAgICAgICBzdXBlcihUZXN0U3ZuVVJMQ29tbWFuZFBhdGgsIHNlbGYpLnRlc3Rf
dmlzaXRfaWdub3JlKHBhdGgxKQorCisgICAgZGVmIHRlc3Rfc3ZudXJsX25lZWRzX2FyZyhzZWxm
LCBwYXRoMSk6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKFR5cGVFcnJvciwgInB5LnBhdGguc3Zu
dXJsKCkiKQorCisgICAgZGVmIHRlc3Rfc3ZudXJsX2RvZXNfbm90X2FjY2VwdF9Ob25lX2VpdGhl
cihzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgInB5LnBh
dGguc3ZudXJsKE5vbmUpIikKKworICAgIGRlZiB0ZXN0X3N2bnVybF9jaGFyYWN0ZXJzX3NpbXBs
ZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnBhdGguc3ZudXJsKCJzdm4rc3NoOi8vaGVsbG8v
d29ybGQiKQorCisgICAgZGVmIHRlc3Rfc3ZudXJsX2NoYXJhY3RlcnNfYXRfdXNlcihzZWxmLCBw
YXRoMSk6CisgICAgICAgIHB5LnBhdGguc3ZudXJsKCJodHRwOi8vdXNlckBob3N0LmNvbS9zb21l
L2RpciIpCisKKyAgICBkZWYgdGVzdF9zdm51cmxfY2hhcmFjdGVyc19hdF9wYXRoKHNlbGYsIHBh
dGgxKToKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgJ3B5LnBhdGguc3ZudXJs
KCJodHRwOi8vaG9zdC5jb20vZm9vQGJhciIpJykKKworICAgIGRlZiB0ZXN0X3N2bnVybF9jaGFy
YWN0ZXJzX2NvbG9uX3BvcnQoc2VsZiwgcGF0aDEpOgorICAgICAgICBweS5wYXRoLnN2bnVybCgi
aHR0cDovL2hvc3QuY29tOjgwODAvc29tZS9kaXIiKQorCisgICAgZGVmIHRlc3Rfc3ZudXJsX2No
YXJhY3RlcnNfdGlsZGVfZW5kKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcHkucGF0aC5zdm51cmwo
Imh0dHA6Ly9ob3N0LmNvbS9zb21lL2ZpbGV+IikKKworICAgIEBweS50ZXN0Lm1hcmsueGZhaWwo
InN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIikKKyAgICBkZWYgdGVzdF9zdm51cmxfY2hhcmFjdGVy
c19jb2xvbl9wYXRoKHNlbGYsIHBhdGgxKToKKyAgICAgICAgIyBjb2xvbnMgYXJlIGFsbG93ZWQg
b24gd2luMzIsIGJlY2F1c2UgdGhleSdyZSBwYXJ0IG9mIHRoZSBkcml2ZQorICAgICAgICAjIHBh
cnQgb2YgYW4gYWJzb2x1dGUgcGF0aC4uLiBob3dldmVyLCB0aGV5IHNob3VsZG4ndCBiZSBhbGxv
d2VkIGluCisgICAgICAgICMgb3RoZXIgcGFydHMsIEkgdGhpbmsKKyAgICAgICAgcHkudGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgJ3B5LnBhdGguc3ZudXJsKCJodHRwOi8vaG9zdC5jb20vZm9vOmJh
ciIpJykKKworICAgIGRlZiB0ZXN0X2V4cG9ydChzZWxmLCBwYXRoMSwgdG1wZGlyKToKKyAgICAg
ICAgdG1wZGlyID0gdG1wZGlyLmpvaW4oImVtcHR5IikKKyAgICAgICAgcCA9IHBhdGgxLmV4cG9y
dCh0bXBkaXIpCisgICAgICAgIGFzc2VydCBwID09IHRtcGRpciAjIFhYWCBzaG91bGQgcmV0dXJu
IE5vbmUKKyAgICAgICAgbjEgPSBbeC5iYXNlbmFtZSBmb3IgeCBpbiB0bXBkaXIubGlzdGRpcigp
XQorICAgICAgICBuMiA9IFt4LmJhc2VuYW1lIGZvciB4IGluIHBhdGgxLmxpc3RkaXIoKV0KKyAg
ICAgICAgbjEuc29ydCgpCisgICAgICAgIG4yLnNvcnQoKQorICAgICAgICBhc3NlcnQgbjEgPT0g
bjIKKyAgICAgICAgYXNzZXJ0IG5vdCBwLmpvaW4oJy5zdm4nKS5jaGVjaygpCisgICAgICAgIHJl
diA9IHBhdGgxLm1rZGlyKCJuZXdkaXIiKQorICAgICAgICB0bXBkaXIucmVtb3ZlKCkKKyAgICAg
ICAgYXNzZXJ0IG5vdCB0bXBkaXIuY2hlY2soKQorICAgICAgICBwYXRoMS5uZXcocmV2PTEpLmV4
cG9ydCh0bXBkaXIpCisgICAgICAgIGZvciBwIGluIHRtcGRpci5saXN0ZGlyKCk6CisgICAgICAg
ICAgICBhc3NlcnQgcC5iYXNlbmFtZSBpbiBuMgorCitjbGFzcyBUZXN0U3ZuSW5mb0NvbW1hbmQ6
CisKKyAgICBkZWYgdGVzdF9zdm5fMV8yKHNlbGYpOgorICAgICAgICBsaW5lID0gIiAgIDIyNTYg
ICAgICBocGsgICAgICAgIDE2NSBOb3YgMjQgMTc6NTUgX19pbml0X18ucHkiCisgICAgICAgIGlu
Zm8gPSBJbmZvU3ZuQ29tbWFuZChsaW5lKQorICAgICAgICBub3cgPSBkYXRldGltZS5kYXRldGlt
ZS5ub3coKQorICAgICAgICBhc3NlcnQgaW5mby5sYXN0X2F1dGhvciA9PSAnaHBrJworICAgICAg
ICBhc3NlcnQgaW5mby5jcmVhdGVkX3JldiA9PSAyMjU2CisgICAgICAgIGFzc2VydCBpbmZvLmtp
bmQgPT0gJ2ZpbGUnCisgICAgICAgICMgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSB5ZWFyICgyMDA2
KSwgYmVjYXVzZSB0aGF0IGRlcGVuZHMKKyAgICAgICAgIyBvbiB0aGUgY2xvY2sgY29ycmVjdGx5
IGJlaW5nIHNldHVwCisgICAgICAgIGFzc2VydCB0aW1lLmdtdGltZShpbmZvLm10aW1lKVsxOjZd
ID09ICgxMSwgMjQsIDE3LCA1NSwgMCkKKyAgICAgICAgYXNzZXJ0IGluZm8uc2l6ZSA9PSAgMTY1
CisgICAgICAgIGFzc2VydCBpbmZvLnRpbWUgPT0gaW5mby5tdGltZSAqIDEwMDAwMDAKKworICAg
IGRlZiB0ZXN0X3N2bl8xXzMoc2VsZik6CisgICAgICAgIGxpbmUgPSIgICAgNDc4NCBocGsgICAg
ICAgICAgICAgICAgIDIgSnVuIDAxICAyMDA0IF9faW5pdF9fLnB5IgorICAgICAgICBpbmZvID0g
SW5mb1N2bkNvbW1hbmQobGluZSkKKyAgICAgICAgYXNzZXJ0IGluZm8ubGFzdF9hdXRob3IgPT0g
J2hwaycKKyAgICAgICAgYXNzZXJ0IGluZm8ua2luZCA9PSAnZmlsZScKKworICAgIGRlZiB0ZXN0
X3N2bl8xXzNfYihzZWxmKToKKyAgICAgICAgbGluZSA9IiAgICAgNzQgYXV0b2FkbWkgICAgICAg
ICAgICAgIE9jdCAwNiAyMzo1OSBwbG9uZXNvbHV0aW9ucy5jb20vIgorICAgICAgICBpbmZvID0g
SW5mb1N2bkNvbW1hbmQobGluZSkKKyAgICAgICAgYXNzZXJ0IGluZm8ubGFzdF9hdXRob3IgPT0g
J2F1dG9hZG1pJworICAgICAgICBhc3NlcnQgaW5mby5raW5kID09ICdkaXInCisKK2RlZiB0ZXN0
X2JhZGNoYXJzKCk6CisgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInB5LnBhdGguc3Zu
dXJsKCdodHRwOi8vaG9zdC90bXAvQEBAOicpIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9wYXRoL3Rlc3Rfc3Zud2MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM2NDNkOTk4M2ZiNGRiNmVjM2IwYjg1ZGQ4NzMyNjgyNzRiYjI0YmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5CkBAIC0w
LDAgKzEsNTU3IEBACitpbXBvcnQgcHkKK2ltcG9ydCBvcywgc3lzCitpbXBvcnQgcHl0ZXN0Citm
cm9tIHB5Ll9wYXRoLnN2bndjIGltcG9ydCBJbmZvU3ZuV0NDb21tYW5kLCBYTUxXQ1N0YXR1cywg
cGFyc2Vfd2NpbmZvdGltZQorZnJvbSBweS5fcGF0aCBpbXBvcnQgc3Zud2MgYXMgc3ZuY29tbW9u
Citmcm9tIHN2bnRlc3RiYXNlIGltcG9ydCBDb21tb25Tdm5UZXN0cworCisKK3B5dGVzdG1hcmsg
PSBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPScjMTYxIGFsbCB0ZXN0cyBpbiB0aGlz
IGZpbGUgYXJlIGZhaWxpbmcgb24gV2luZG93cycsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuPUZhbHNlKQorCisKK2RlZiB0ZXN0X21ha2VfcmVwbyhwYXRoMSwgdG1wZGlyKToK
KyAgICByZXBvID0gdG1wZGlyLmpvaW4oInJlcG8iKQorICAgIHB5LnByb2Nlc3MuY21kZXhlYygn
c3ZuYWRtaW4gY3JlYXRlICVzJyAlIHJlcG8pCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4z
Mic6CisgICAgICAgIHJlcG8gPSAnLycgKyBzdHIocmVwbykucmVwbGFjZSgnXFwnLCAnLycpCisg
ICAgcmVwbyA9IHB5LnBhdGguc3ZudXJsKCJmaWxlOi8vJXMiICUgcmVwbykKKyAgICB3YyA9IHB5
LnBhdGguc3Zud2ModG1wZGlyLmpvaW4oIndjIikpCisgICAgd2MuY2hlY2tvdXQocmVwbykKKyAg
ICBhc3NlcnQgd2MucmV2ID09IDAKKyAgICBhc3NlcnQgbGVuKHdjLmxpc3RkaXIoKSkgPT0gMAor
ICAgIHAgPSB3Yy5qb2luKCJhX2ZpbGUiKQorICAgIHAud3JpdGUoInRlc3QgZmlsZSIpCisgICAg
cC5hZGQoKQorICAgIHJldiA9IHdjLmNvbW1pdCgic29tZSB0ZXN0IikKKyAgICBhc3NlcnQgcC5p
bmZvKCkucmV2ID09IDEKKyAgICBhc3NlcnQgcmV2ID09IDEKKyAgICByZXYgPSB3Yy5jb21taXQo
KQorICAgIGFzc2VydCByZXYgaXMgTm9uZQorCitkZWYgcHl0ZXN0X2Z1bmNhcmdfX3BhdGgxKHJl
cXVlc3QpOgorICAgIHJlcG8sIHJlcG91cmwsIHdjID0gcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUo
InJlcG93YzEiKQorICAgIHJldHVybiB3YworCitjbGFzcyBUZXN0V0NTdm5Db21tYW5kUGF0aChD
b21tb25Tdm5UZXN0cyk6CisgICAgZGVmIHRlc3Rfc3RhdHVzX2F0dHJpYnV0ZXNfc2ltcGxlKHNl
bGYsIHBhdGgxKToKKyAgICAgICAgZGVmIGFzc2VydF9ub2NoYW5nZShwKToKKyAgICAgICAgICAg
IHMgPSBwLnN0YXR1cygpCisgICAgICAgICAgICBhc3NlcnQgbm90IHMubW9kaWZpZWQKKyAgICAg
ICAgICAgIGFzc2VydCBub3Qgcy5wcm9wX21vZGlmaWVkCisgICAgICAgICAgICBhc3NlcnQgbm90
IHMuYWRkZWQKKyAgICAgICAgICAgIGFzc2VydCBub3Qgcy5kZWxldGVkCisgICAgICAgICAgICBh
c3NlcnQgbm90IHMucmVwbGFjZWQKKworICAgICAgICBkcGF0aCA9IHBhdGgxLmpvaW4oJ3NhbXBs
ZWRpcicpCisgICAgICAgIGFzc2VydF9ub2NoYW5nZShwYXRoMS5qb2luKCdzYW1wbGVkaXInKSkK
KyAgICAgICAgYXNzZXJ0X25vY2hhbmdlKHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKSkKKworICAg
IGRlZiB0ZXN0X3N0YXR1c19hZGRlZChzZWxmLCBwYXRoMSk6CisgICAgICAgIG5mID0gcGF0aDEu
am9pbignbmV3ZmlsZScpCisgICAgICAgIG5mLndyaXRlKCdoZWxsbycpCisgICAgICAgIG5mLmFk
ZCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMgPSBuZi5zdGF0dXMoKQorICAgICAgICAg
ICAgYXNzZXJ0IHMuYWRkZWQKKyAgICAgICAgICAgIGFzc2VydCBub3Qgcy5tb2RpZmllZAorICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBzLnByb3BfbW9kaWZpZWQKKyAgICAgICAgICAgIGFzc2VydCBu
b3Qgcy5yZXBsYWNlZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgbmYucmV2ZXJ0KCkK
KworICAgIGRlZiB0ZXN0X3N0YXR1c19jaGFuZ2Uoc2VsZiwgcGF0aDEpOgorICAgICAgICBuZiA9
IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBuZi53
cml0ZShuZi5yZWFkKCkgKyAnY2hhbmdlJykKKyAgICAgICAgICAgIHMgPSBuZi5zdGF0dXMoKQor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBzLmFkZGVkCisgICAgICAgICAgICBhc3NlcnQgcy5tb2Rp
ZmllZAorICAgICAgICAgICAgYXNzZXJ0IG5vdCBzLnByb3BfbW9kaWZpZWQKKyAgICAgICAgICAg
IGFzc2VydCBub3Qgcy5yZXBsYWNlZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgbmYu
cmV2ZXJ0KCkKKworICAgIGRlZiB0ZXN0X3N0YXR1c19hZGRlZF9vbmRpcmVjdG9yeShzZWxmLCBw
YXRoMSk6CisgICAgICAgIHNhbXBsZWRpciA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHQyID0gc2FtcGxlZGlyLm1rZGlyKCd0MicpCisgICAgICAg
ICAgICB0MSA9IHQyLmpvaW4oJ3QxJykKKyAgICAgICAgICAgIHQxLndyaXRlKCd0ZXN0JykKKyAg
ICAgICAgICAgIHQxLmFkZCgpCisgICAgICAgICAgICBzID0gc2FtcGxlZGlyLnN0YXR1cyhyZWM9
MSkKKyAgICAgICAgICAgICMgQ29tcGFyaW5nIGp1c3QgdGhlIGZpbGUgbmFtZXMsIGJlY2F1c2Ug
cGF0aHMgYXJlIHVucHJlZGljdGFibGUKKyAgICAgICAgICAgICMgb24gV2luZG93cy4gKGxvbmcg
dnMuIDguMyBwYXRocykKKyAgICAgICAgICAgIGFzc2VydCB0MS5iYXNlbmFtZSBpbiBbaXRlbS5i
YXNlbmFtZSBmb3IgaXRlbSBpbiBzLmFkZGVkXQorICAgICAgICAgICAgYXNzZXJ0IHQyLmJhc2Vu
YW1lIGluIFtpdGVtLmJhc2VuYW1lIGZvciBpdGVtIGluIHMuYWRkZWRdCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICB0Mi5yZXZlcnQocmVjPTEpCisgICAgICAgICAgICB0Mi5sb2NhbHBh
dGgucmVtb3ZlKHJlYz0xKQorCisgICAgZGVmIHRlc3Rfc3RhdHVzX3Vua25vd24oc2VsZiwgcGF0
aDEpOgorICAgICAgICB0MSA9IHBhdGgxLmpvaW4oJ3VuMScpCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHQxLndyaXRlKCd0ZXN0JykKKyAgICAgICAgICAgIHMgPSBwYXRoMS5zdGF0dXMoKQor
ICAgICAgICAgICAgIyBDb21wYXJpbmcganVzdCB0aGUgZmlsZSBuYW1lcywgYmVjYXVzZSBwYXRo
cyBhcmUgdW5wcmVkaWN0YWJsZQorICAgICAgICAgICAgIyBvbiBXaW5kb3dzLiAobG9uZyB2cy4g
OC4zIHBhdGhzKQorICAgICAgICAgICAgYXNzZXJ0IHQxLmJhc2VuYW1lIGluIFtpdGVtLmJhc2Vu
YW1lIGZvciBpdGVtIGluIHMudW5rbm93bl0KKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHQxLmxvY2FscGF0aC5yZW1vdmUoKQorCisgICAgZGVmIHRlc3Rfc3RhdHVzX3VuY2hhbmdlZChz
ZWxmLCBwYXRoMSk6CisgICAgICAgIHIgPSBwYXRoMQorICAgICAgICBzID0gcGF0aDEuc3RhdHVz
KHJlYz0xKQorICAgICAgICAjIENvbXBhcmluZyBqdXN0IHRoZSBmaWxlIG5hbWVzLCBiZWNhdXNl
IHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlCisgICAgICAgICMgb24gV2luZG93cy4gKGxvbmcgdnMu
IDguMyBwYXRocykKKyAgICAgICAgYXNzZXJ0IHIuam9pbignc2FtcGxlZmlsZScpLmJhc2VuYW1l
IGluIFtpdGVtLmJhc2VuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcy51bmNoYW5nZWRdCisgICAgICAgIGFzc2VydCBy
LmpvaW4oJ3NhbXBsZWRpcicpLmJhc2VuYW1lIGluIFtpdGVtLmJhc2VuYW1lCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcy51
bmNoYW5nZWRdCisgICAgICAgIGFzc2VydCByLmpvaW4oJ3NhbXBsZWRpci9vdGhlcmZpbGUnKS5i
YXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHMudW5jaGFuZ2VkXQorCisgICAgZGVm
IHRlc3Rfc3RhdHVzX3VwZGF0ZShzZWxmLCBwYXRoMSk6CisgICAgICAgICMgbm90IGEgbWFyayBi
ZWNhdXNlIHRoZSBnbG9iYWwgInB5dGVzdG1hcmsiIHdpbGwgZW5kIHVwIG92ZXJ3cml0aW5nIGEg
bWFyayBoZXJlCisgICAgICAgIHB5dGVzdC54ZmFpbCgic3ZuLTEuNyBoYXMgYnVnZ3kgJ3N0YXR1
cyAtLXhtbCcgb3V0cHV0IikKKyAgICAgICAgciA9IHBhdGgxCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHIudXBkYXRlKHJldj0xKQorICAgICAgICAgICAgcyA9IHIuc3RhdHVzKHVwZGF0ZXM9
MSwgcmVjPTEpCisgICAgICAgICAgICAjIENvbXBhcmluZyBqdXN0IHRoZSBmaWxlIG5hbWVzLCBi
ZWNhdXNlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlCisgICAgICAgICAgICAjIG9uIFdpbmRvd3Mu
IChsb25nIHZzLiA4LjMgcGF0aHMpCisgICAgICAgICAgICBpbXBvcnQgcHByaW50CisgICAgICAg
ICAgICBwcHJpbnQucHByaW50KHMuYWxscGF0aCgpKQorICAgICAgICAgICAgYXNzZXJ0IHIuam9p
bignYW5vdGhlcmZpbGUnKS5iYXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZSBmb3IKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtIGluIHMudXBk
YXRlX2F2YWlsYWJsZV0KKyAgICAgICAgICAgICNhc3NlcnQgbGVuKHMudXBkYXRlX2F2YWlsYWJs
ZSkgPT0gMQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgci51cGRhdGUoKQorCisgICAg
ZGVmIHRlc3Rfc3RhdHVzX3JlcGxhY2VkKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgx
LmpvaW4oInNhbXBsZWZpbGUiKQorICAgICAgICBwLnJlbW92ZSgpCisgICAgICAgIHAuZW5zdXJl
KGRpcj0wKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0gcGF0aDEuc3RhdHVzKCkKKyAg
ICAgICAgICAgIGFzc2VydCBwLmJhc2VuYW1lIGluIFtpdGVtLmJhc2VuYW1lIGZvciBpdGVtIGlu
IHMucmVwbGFjZWRdCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRoMS5yZXZlcnQo
cmVjPTEpCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfaWdub3JlZChzZWxmLCBwYXRoMSk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGQgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwoZCkuam9pbignaWdub3JlZGZpbGUnKQorICAgICAgICAg
ICAgcC5lbnN1cmUoZmlsZT1UcnVlKQorICAgICAgICAgICAgcyA9IGQuc3RhdHVzKCkKKyAgICAg
ICAgICAgIGFzc2VydCBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLnVua25vd25dID09IFsnaWdub3Jl
ZGZpbGUnXQorICAgICAgICAgICAgYXNzZXJ0IFt4LmJhc2VuYW1lIGZvciB4IGluIHMuaWdub3Jl
ZF0gPT0gW10KKyAgICAgICAgICAgIGQucHJvcHNldCgnc3ZuOmlnbm9yZScsICdpZ25vcmVkZmls
ZScpCisgICAgICAgICAgICBzID0gZC5zdGF0dXMoKQorICAgICAgICAgICAgYXNzZXJ0IFt4LmJh
c2VuYW1lIGZvciB4IGluIHMudW5rbm93bl0gPT0gW10KKyAgICAgICAgICAgIGFzc2VydCBbeC5i
YXNlbmFtZSBmb3IgeCBpbiBzLmlnbm9yZWRdID09IFsnaWdub3JlZGZpbGUnXQorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgcGF0aDEucmV2ZXJ0KHJlYz0xKQorCisgICAgZGVmIHRlc3Rf
c3RhdHVzX2NvbmZsaWN0KHNlbGYsIHBhdGgxLCB0bXBkaXIpOgorICAgICAgICB3YyA9IHBhdGgx
CisgICAgICAgIHdjY29weSA9IHB5LnBhdGguc3Zud2ModG1wZGlyLmpvaW4oImNvbmZsaWN0X2Nv
cHkiKSkKKyAgICAgICAgd2Njb3B5LmNoZWNrb3V0KHdjLnVybCkKKyAgICAgICAgcCA9IHdjLmVu
c3VyZSgnY29uZmxpY3RzYW1wbGVmaWxlJywgZmlsZT0xKQorICAgICAgICBwLndyaXRlKCdmb28n
KQorICAgICAgICB3Yy5jb21taXQoJ2FkZGVkIGNvbmZsaWN0c2FtcGxlZmlsZScpCisgICAgICAg
IHdjY29weS51cGRhdGUoKQorICAgICAgICBhc3NlcnQgd2Njb3B5LmpvaW4oJ2NvbmZsaWN0c2Ft
cGxlZmlsZScpLmNoZWNrKCkKKyAgICAgICAgcC53cml0ZSgnYmFyJykKKyAgICAgICAgd2MuY29t
bWl0KCd3cm90ZSBzb21lIGRhdGEnKQorICAgICAgICB3Y2NvcHkuam9pbignY29uZmxpY3RzYW1w
bGVmaWxlJykud3JpdGUoJ2JheicpCisgICAgICAgIHdjY29weS51cGRhdGUoaW50ZXJhY3RpdmU9
RmFsc2UpCisgICAgICAgIHMgPSB3Y2NvcHkuc3RhdHVzKCkKKyAgICAgICAgYXNzZXJ0IFt4LmJh
c2VuYW1lIGZvciB4IGluIHMuY29uZmxpY3RdID09IFsnY29uZmxpY3RzYW1wbGVmaWxlJ10KKwor
ICAgIGRlZiB0ZXN0X3N0YXR1c19leHRlcm5hbChzZWxmLCBwYXRoMSwgcmVwb3djMik6CisgICAg
ICAgIG90aGVycmVwbywgb3RoZXJyZXBvdXJsLCBvdGhlcndjID0gcmVwb3djMgorICAgICAgICBk
ID0gcGF0aDEuZW5zdXJlKCdzYW1wbGVkaXInLCBkaXI9MSkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgZC51cGRhdGUoKQorICAgICAgICAgICAgZC5wcm9wc2V0KCdzdm46ZXh0ZXJuYWxzJywg
J290aGVyd2MgJXMnICUgKG90aGVyd2MudXJsLCkpCisgICAgICAgICAgICBkLnVwZGF0ZSgpCisg
ICAgICAgICAgICBzID0gZC5zdGF0dXMoKQorICAgICAgICAgICAgYXNzZXJ0IFt4LmJhc2VuYW1l
IGZvciB4IGluIHMuZXh0ZXJuYWxdID09IFsnb3RoZXJ3YyddCisgICAgICAgICAgICBhc3NlcnQg
J290aGVyd2MnIG5vdCBpbiBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLnVuY2hhbmdlZF0KKyAgICAg
ICAgICAgIHMgPSBkLnN0YXR1cyhyZWM9MSkKKyAgICAgICAgICAgIGFzc2VydCBbeC5iYXNlbmFt
ZSBmb3IgeCBpbiBzLmV4dGVybmFsXSA9PSBbJ290aGVyd2MnXQorICAgICAgICAgICAgYXNzZXJ0
ICdvdGhlcndjJyBpbiBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLnVuY2hhbmdlZF0KKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIHBhdGgxLnJldmVydChyZWM9MSkKKworICAgIGRlZiB0ZXN0
X3N0YXR1c19kZWxldGVkKHNlbGYsIHBhdGgxKToKKyAgICAgICAgZCA9IHBhdGgxLmVuc3VyZSgn
c2FtcGxlZGlyJywgZGlyPTEpCisgICAgICAgIGQucmVtb3ZlKCkKKyAgICAgICAgZC5lbnN1cmUo
ZGlyPTEpCisgICAgICAgIHBhdGgxLmNvbW1pdCgpCisgICAgICAgIGQuZW5zdXJlKCdkZWxldGVm
aWxlJywgZGlyPTApCisgICAgICAgIGQuY29tbWl0KCkKKyAgICAgICAgcyA9IGQuc3RhdHVzKCkK
KyAgICAgICAgYXNzZXJ0ICdkZWxldGVmaWxlJyBpbiBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLnVu
Y2hhbmdlZF0KKyAgICAgICAgYXNzZXJ0IG5vdCBzLmRlbGV0ZWQKKyAgICAgICAgcCA9IGQuam9p
bignZGVsZXRlZmlsZScpCisgICAgICAgIHAucmVtb3ZlKCkKKyAgICAgICAgcyA9IGQuc3RhdHVz
KCkKKyAgICAgICAgYXNzZXJ0ICdkZWxldGVmaWxlJyBub3QgaW4gcy51bmNoYW5nZWQKKyAgICAg
ICAgYXNzZXJ0IFt4LmJhc2VuYW1lIGZvciB4IGluIHMuZGVsZXRlZF0gPT0gWydkZWxldGVmaWxl
J10KKworICAgIGRlZiB0ZXN0X3N0YXR1c19ub2F1dGhvcihzZWxmLCBwYXRoMSk6CisgICAgICAg
ICMgdGVzdGluZyBmb3IgWE1MIHdpdGhvdXQgYXV0aG9yIC0gdGhpcyB1c2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbgorICAgICAgICB4bWwgPSAnJydcCisgICAgICAgIDxlbnRyeSBwYXRoPSIvdG1w
L3B5dGVzdC0yMy93YyI+CisgICAgICAgIDx3Yy1zdGF0dXMgaXRlbT0ibm9ybWFsIiBwcm9wcz0i
bm9uZSIgcmV2aXNpb249IjAiPgorICAgICAgICA8Y29tbWl0IHJldmlzaW9uPSIwIj4KKyAgICAg
ICAgPGRhdGU+MjAwOC0wOC0xOVQxNjo1MDo1My40MDAxOThaPC9kYXRlPgorICAgICAgICA8L2Nv
bW1pdD4KKyAgICAgICAgPC93Yy1zdGF0dXM+CisgICAgICAgIDwvZW50cnk+CisgICAgICAgICcn
JworICAgICAgICBYTUxXQ1N0YXR1cy5mcm9tc3RyaW5nKHhtbCwgcGF0aDEpCisKKyAgICBkZWYg
dGVzdF9zdGF0dXNfd3JvbmdfeG1sKHNlbGYsIHBhdGgxKToKKyAgICAgICAgIyB0ZXN0aW5nIGZv
ciBYTUwgd2l0aG91dCBhdXRob3IgLSB0aGlzIHVzZWQgdG8gcmFpc2UgYW4gZXhjZXB0aW9uCisg
ICAgICAgIHhtbCA9ICc8ZW50cnkgcGF0aD0iL2hvbWUvamVhbi96b3BlL3ZlbnYvcHJvamVjdGRi
L3BhcnRzL2RldmVsb3BtZW50LXByb2R1Y3RzL0RhdGFHcmlkRmllbGQiPlxuPHdjLXN0YXR1cyBp
dGVtPSJpbmNvbXBsZXRlIiBwcm9wcz0ibm9uZSIgcmV2aXNpb249Ijc4NCI+XG48L3djLXN0YXR1
cz5cbjwvZW50cnk+JworICAgICAgICBzdCA9IFhNTFdDU3RhdHVzLmZyb21zdHJpbmcoeG1sLCBw
YXRoMSkKKyAgICAgICAgYXNzZXJ0IGxlbihzdC5pbmNvbXBsZXRlKSA9PSAxCisKKyAgICBkZWYg
dGVzdF9kaWZmKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgxIC8gJ2Fub3RoZXJmaWxl
JworICAgICAgICBvdXQgPSBwLmRpZmYocmV2PTIpCisgICAgICAgIGFzc2VydCBvdXQuZmluZCgn
aGVsbG8nKSAhPSAtMQorCisgICAgZGVmIHRlc3RfYmxhbWUoc2VsZiwgcGF0aDEpOgorICAgICAg
ICBwID0gcGF0aDEuam9pbignc2FtcGxlcGlja2xlJykKKyAgICAgICAgbGluZXMgPSBwLmJsYW1l
KCkKKyAgICAgICAgYXNzZXJ0IHN1bShbbFswXSBmb3IgbCBpbiBsaW5lc10pID09IGxlbihsaW5l
cykKKyAgICAgICAgZm9yIGwxLCBsMiBpbiB6aXAocC5yZWFkbGluZXMoKSwgW2xbMl0gZm9yIGwg
aW4gbGluZXNdKToKKyAgICAgICAgICAgIGFzc2VydCBsMSA9PSBsMgorICAgICAgICBhc3NlcnQg
W2xbMV0gZm9yIGwgaW4gbGluZXNdID09IFsnaHBrJ10gKiBsZW4obGluZXMpCisgICAgICAgIHAg
PSBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykKKyAgICAgICAgbGluZXMgPSBwLmJsYW1lKCkKKyAg
ICAgICAgYXNzZXJ0IHN1bShbbFswXSBmb3IgbCBpbiBsaW5lc10pID09IGxlbihsaW5lcykKKyAg
ICAgICAgZm9yIGwxLCBsMiBpbiB6aXAocC5yZWFkbGluZXMoKSwgW2xbMl0gZm9yIGwgaW4gbGlu
ZXNdKToKKyAgICAgICAgICAgIGFzc2VydCBsMSA9PSBsMgorICAgICAgICBhc3NlcnQgW2xbMV0g
Zm9yIGwgaW4gbGluZXNdID09IFsnaHBrJ10gKiBsZW4obGluZXMpCisKKyAgICBkZWYgdGVzdF9q
b2luX2FicyhzZWxmLCBwYXRoMSk6CisgICAgICAgIHMgPSBzdHIocGF0aDEubG9jYWxwYXRoKQor
ICAgICAgICBuID0gcGF0aDEuam9pbihzLCBhYnM9MSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxID09
IG4KKworICAgIGRlZiB0ZXN0X2pvaW5fYWJzMihzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2Vy
dCBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJywgYWJzPTEpID09IHBhdGgxLmpvaW4oJ3NhbXBsZWZp
bGUnKQorCisgICAgZGVmIHRlc3Rfc3RyX2dpdmVzX2xvY2FscGF0aChzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIGFzc2VydCBzdHIocGF0aDEpID09IHN0cihwYXRoMS5sb2NhbHBhdGgpCisKKyAgICBk
ZWYgdGVzdF92ZXJzaW9uZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEuY2hl
Y2sodmVyc2lvbmVkPTEpCisgICAgICAgICMgVE9ETzogV2h5IGRvZXMgbXkgY29weSBvZiBzdm4g
dGhpbmsgLnN2biBpcyB2ZXJzaW9uZWQ/CisgICAgICAgICNhc3NlcnQgcGF0aDEuam9pbignLnN2
bicpLmNoZWNrKHZlcnNpb25lZD0wKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbignc2FtcGxl
ZmlsZScpLmNoZWNrKHZlcnNpb25lZD0xKQorICAgICAgICBhc3NlcnQgbm90IHBhdGgxLmpvaW4o
J25vdGV4aXN0aW5nJykuY2hlY2sodmVyc2lvbmVkPTEpCisgICAgICAgIG5vdGV4aXN0aW5nID0g
cGF0aDEuam9pbignaGVsbG8nKS5sb2NhbHBhdGgKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
bm90ZXhpc3Rpbmcud3JpdGUoIiIpCisgICAgICAgICAgICBhc3NlcnQgcGF0aDEuam9pbignaGVs
bG8nKS5jaGVjayh2ZXJzaW9uZWQ9MCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG5v
dGV4aXN0aW5nLnJlbW92ZSgpCisKKyAgICBkZWYgdGVzdF9saXN0ZGlyX3ZlcnNpb25lZChzZWxm
LCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRoMS5jaGVjayh2ZXJzaW9uZWQ9MSkKKyAgICAg
ICAgcCA9IHBhdGgxLmxvY2FscGF0aC5lbnN1cmUoIm5vdF9hX3ZlcnNpb25lZF9maWxlIikKKyAg
ICAgICAgbCA9IFt4LmxvY2FscGF0aAorICAgICAgICAgICAgICAgIGZvciB4IGluIHBhdGgxLmxp
c3RkaXIobGFtYmRhIHg6IHguY2hlY2sodmVyc2lvbmVkPVRydWUpKV0KKyAgICAgICAgYXNzZXJ0
IHAgbm90IGluIGwKKworICAgIGRlZiB0ZXN0X25vbnZlcnNpb25lZF9yZW1vdmUoc2VsZiwgcGF0
aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEuY2hlY2sodmVyc2lvbmVkPTEpCisgICAgICAgIHNv
bWVmaWxlID0gcGF0aDEuam9pbignbm9udmVyc2lvbmVkL3NvbWVmaWxlJykKKyAgICAgICAgbm9u
d2MgPSBweS5wYXRoLmxvY2FsKHNvbWVmaWxlKQorICAgICAgICBub253Yy5lbnN1cmUoKQorICAg
ICAgICBhc3NlcnQgc29tZWZpbGUuY2hlY2soKQorICAgICAgICBhc3NlcnQgbm90IHNvbWVmaWxl
LmNoZWNrKHZlcnNpb25lZD1UcnVlKQorICAgICAgICBzb21lZmlsZS5yZW1vdmUoKSAjIHRoaXMg
dXNlZCB0byBmYWlsIGJlY2F1c2UgaXQgdHJpZWQgdG8gJ3N2biBybScKKworICAgIGRlZiB0ZXN0
X3Byb3BlcnRpZXMoc2VsZiwgcGF0aDEpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXRo
MS5wcm9wc2V0KCdnYWdhJywgJ3RoaXMnKQorICAgICAgICAgICAgYXNzZXJ0IHBhdGgxLnByb3Bn
ZXQoJ2dhZ2EnKSA9PSAndGhpcycKKyAgICAgICAgICAgICMgQ29tcGFyaW5nIGp1c3QgdGhlIGZp
bGUgbmFtZXMsIGJlY2F1c2UgcGF0aHMgYXJlIHVucHJlZGljdGFibGUKKyAgICAgICAgICAgICMg
b24gV2luZG93cy4gKGxvbmcgdnMuIDguMyBwYXRocykKKyAgICAgICAgICAgIGFzc2VydCBwYXRo
MS5iYXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZSBmb3IgaXRlbSBpbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgxLnN0YXR1cygpLnByb3BfbW9kaWZpZWRdCisg
ICAgICAgICAgICBhc3NlcnQgJ2dhZ2EnIGluIHBhdGgxLnByb3BsaXN0KCkKKyAgICAgICAgICAg
IGFzc2VydCBwYXRoMS5wcm9wbGlzdCgpWydnYWdhJ10gPT0gJ3RoaXMnCisKKyAgICAgICAgZmlu
YWxseToKKyAgICAgICAgICAgIHBhdGgxLnByb3BkZWwoJ2dhZ2EnKQorCisgICAgZGVmIHRlc3Rf
cHJvcGxpc3RfcmVjdXJzaXZlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcyA9IHBhdGgxLmpvaW4o
J3NhbXBsZWZpbGUnKQorICAgICAgICBzLnByb3BzZXQoJ2d1Z3UnLCAndGhhdCcpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHAgPSBwYXRoMS5wcm9wbGlzdChyZWM9MSkKKyAgICAgICAgICAg
ICMgQ29tcGFyaW5nIGp1c3QgdGhlIGZpbGUgbmFtZXMsIGJlY2F1c2UgcGF0aHMgYXJlIHVucHJl
ZGljdGFibGUKKyAgICAgICAgICAgICMgb24gV2luZG93cy4gKGxvbmcgdnMuIDguMyBwYXRocykK
KyAgICAgICAgICAgIGFzc2VydCAocGF0aDEgLyAnc2FtcGxlZmlsZScpLmJhc2VuYW1lIGluIFtp
dGVtLmJhc2VuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcF0KKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIHMucHJvcGRlbCgnZ3VndScpCisKKyAgICBkZWYgdGVzdF9sb25nX3Byb3BlcnRp
ZXMoc2VsZiwgcGF0aDEpOgorICAgICAgICB2YWx1ZSA9ICIiIgorICAgICAgICB2YWRtOnBvc2l4
IDogcm9vdCByb290IDAxMDA3NTUKKyAgICAgICAgUHJvcGVydGllcyBvbiAnY2hyb290L2Rucy92
YXIvYmluZC9kYi5uZXQueG90cyc6CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHBhdGgxLnByb3BzZXQoJ2dhZ2EnLCB2YWx1ZSkKKyAgICAgICAgICAgIGJh
Y2t2YWx1ZSA9IHBhdGgxLnByb3BnZXQoJ2dhZ2EnKQorICAgICAgICAgICAgYXNzZXJ0IGJhY2t2
YWx1ZSA9PSB2YWx1ZQorICAgICAgICAgICAgI2Fzc2VydCBsZW4oYmFja3ZhbHVlLnNwbGl0KCdc
bicpKSA9PSAxCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRoMS5wcm9wZGVsKCdn
YWdhJykKKworCisgICAgZGVmIHRlc3RfZW5zdXJlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3
cGF0aCA9IHBhdGgxLmVuc3VyZSgnYScsICdiJywgJ2MnKQorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBhc3NlcnQgbmV3cGF0aC5jaGVjayhleGlzdHM9MSwgdmVyc2lvbmVkPTEpCisgICAgICAg
ICAgICBuZXdwYXRoLndyaXRlKCJoZWxsbyIpCisgICAgICAgICAgICBuZXdwYXRoLmVuc3VyZSgp
CisgICAgICAgICAgICBhc3NlcnQgbmV3cGF0aC5yZWFkKCkgPT0gImhlbGxvIgorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgcGF0aDEuam9pbignYScpLnJlbW92ZShmb3JjZT0xKQorCisg
ICAgZGVmIHRlc3Rfbm90X3ZlcnNpb25lZChzZWxmLCBwYXRoMSk6CisgICAgICAgIHAgPSBwYXRo
MS5sb2NhbHBhdGgubWtkaXIoJ3doYXRldmVyJykKKyAgICAgICAgZiA9IHBhdGgxLmxvY2FscGF0
aC5lbnN1cmUoJ3Rlc3RjcmVhdGVkZmlsZScpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFz
c2VydCBwYXRoMS5qb2luKCd3aGF0ZXZlcicpLmNoZWNrKHZlcnNpb25lZD0wKQorICAgICAgICAg
ICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3Rlc3RjcmVhdGVkZmlsZScpLmNoZWNrKHZlcnNpb25lZD0w
KQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBwYXRoMS5qb2luKCd0ZXN0Y3JlYXRlZGZpbGUnKS5j
aGVjayh2ZXJzaW9uZWQ9MSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHAucmVtb3Zl
KHJlYz0xKQorICAgICAgICAgICAgZi5yZW1vdmUoKQorCisgICAgZGVmIHRlc3RfbG9ja191bmxv
Y2soc2VsZiwgcGF0aDEpOgorICAgICAgICByb290ID0gcGF0aDEKKyAgICAgICAgc29tZWZpbGUg
PSByb290LmpvaW4oJ3NvbWVmaWxlJykKKyAgICAgICAgc29tZWZpbGUuZW5zdXJlKGZpbGU9VHJ1
ZSkKKyAgICAgICAgIyBub3QgeWV0IGFkZGVkIHRvIHJlcG8KKyAgICAgICAgcHkudGVzdC5yYWlz
ZXMoRXhjZXB0aW9uLCAnc29tZWZpbGUubG9jaygpJykKKyAgICAgICAgc29tZWZpbGUud3JpdGUo
J2ZvbycpCisgICAgICAgIHNvbWVmaWxlLmNvbW1pdCgndGVzdCcpCisgICAgICAgIGFzc2VydCBz
b21lZmlsZS5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSkKKyAgICAgICAgc29tZWZpbGUubG9jaygpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGxvY2tlZCA9IHJvb3Quc3RhdHVzKCkubG9ja2VkCisg
ICAgICAgICAgICBhc3NlcnQgbGVuKGxvY2tlZCkgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IGxv
Y2tlZFswXS5iYXNlbmFtZSA9PSBzb21lZmlsZS5iYXNlbmFtZQorICAgICAgICAgICAgYXNzZXJ0
IGxvY2tlZFswXS5kaXJwYXRoKCkuYmFzZW5hbWUgPT0gc29tZWZpbGUuZGlycGF0aCgpLmJhc2Vu
YW1lCisgICAgICAgICAgICAjYXNzZXJ0IHNvbWVmaWxlLmxvY2tlZCgpCisgICAgICAgICAgICBw
eS50ZXN0LnJhaXNlcyhFeGNlcHRpb24sICdzb21lZmlsZS5sb2NrKCknKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgc29tZWZpbGUudW5sb2NrKCkKKyAgICAgICAgI2Fzc2VydCBub3Qg
c29tZWZpbGUubG9ja2VkKCkKKyAgICAgICAgbG9ja2VkID0gcm9vdC5zdGF0dXMoKS5sb2NrZWQK
KyAgICAgICAgYXNzZXJ0IGxvY2tlZCA9PSBbXQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNl
cHRpb24sICdzb21lZmlsZSx1bmxvY2soKScpCisgICAgICAgIHNvbWVmaWxlLnJlbW92ZSgpCisK
KyAgICBkZWYgdGVzdF9jb21taXRfbm9ucmVjdXJzaXZlKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
c29tZWRpciA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIHNvbWVkaXIubWtkaXIo
InN1YnN1YmRpciIpCisgICAgICAgIHNvbWVkaXIucHJvcHNldCgnZm9vJywgJ2JhcicpCisgICAg
ICAgIHN0YXR1cyA9IHNvbWVkaXIuc3RhdHVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihzdGF0dXMu
cHJvcF9tb2RpZmllZCkgPT0gMQorICAgICAgICBhc3NlcnQgbGVuKHN0YXR1cy5hZGRlZCkgPT0g
MQorCisgICAgICAgIHNvbWVkaXIuY29tbWl0KCdub24tcmVjdXJzaXZlIGNvbW1pdCcsIHJlYz0w
KQorICAgICAgICBzdGF0dXMgPSBzb21lZGlyLnN0YXR1cygpCisgICAgICAgIGFzc2VydCBsZW4o
c3RhdHVzLnByb3BfbW9kaWZpZWQpID09IDAKKyAgICAgICAgYXNzZXJ0IGxlbihzdGF0dXMuYWRk
ZWQpID09IDEKKworICAgICAgICBzb21lZGlyLmNvbW1pdCgncmVjdXJzaXZlIGNvbW1pdCcpCisg
ICAgICAgIHN0YXR1cyA9IHNvbWVkaXIuc3RhdHVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihzdGF0
dXMucHJvcF9tb2RpZmllZCkgPT0gMAorICAgICAgICBhc3NlcnQgbGVuKHN0YXR1cy5hZGRlZCkg
PT0gMAorCisgICAgZGVmIHRlc3RfY29tbWl0X3JldHVybl92YWx1ZShzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIHRlc3RmaWxlID0gcGF0aDEuam9pbigndGVzdC50eHQnKS5lbnN1cmUoZmlsZT1UcnVl
KQorICAgICAgICB0ZXN0ZmlsZS53cml0ZSgndGVzdCcpCisgICAgICAgIHJldiA9IHBhdGgxLmNv
bW1pdCgndGVzdGluZycpCisgICAgICAgIGFzc2VydCB0eXBlKHJldikgPT0gaW50CisKKyAgICAg
ICAgYW5vdGhlcmZpbGUgPSBwYXRoMS5qb2luKCdhbm90aGVyLnR4dCcpLmVuc3VyZShmaWxlPVRy
dWUpCisgICAgICAgIGFub3RoZXJmaWxlLndyaXRlKCd0ZXN0JykKKyAgICAgICAgcmV2MiA9IHBh
dGgxLmNvbW1pdCgndGVzdGluZyBtb3JlJykKKyAgICAgICAgYXNzZXJ0IHR5cGUocmV2MikgPT0g
aW50CisgICAgICAgIGFzc2VydCByZXYyID09IHJldiArIDEKKworICAgICNkZWYgdGVzdF9sb2co
c2VsZiwgcGF0aDEpOgorICAgICMgICBsID0gcGF0aDEubG9nKCkKKyAgICAjICAgYXNzZXJ0IGxl
bihsKSA9PSAzICAjIG1pZ2h0IG5lZWQgdG8gYmUgdXBwZWQgaWYgbW9yZSB0ZXN0cyBhcmUgYWRk
ZWQKKworY2xhc3MgWFRlc3RXQ1N2bkNvbW1hbmRQYXRoU3BlY2lhbDoKKworICAgIHJvb3R1cmwg
PSAnaHR0cDovL2NvZGVzcGVhay5uZXQvc3ZuL3B5LnBhdGgvdHJ1bmsvZGlzdC9weS5wYXRoL3Rl
c3QvZGF0YScKKyAgICAjZGVmIHRlc3RfdXBkYXRlX25vbmVfcmV2KHNlbGYsIHBhdGgxKToKKyAg
ICAjICAgIHBhdGggPSB0bXBkaXIuam9pbignY2hlY2tvdXR0ZXN0JykKKyAgICAjICAgIHdjcGF0
aCA9IG5ld3BhdGgoeHN2bndjPXN0cihwYXRoKSwgdXJsPXBhdGgxdXJsKQorICAgICMgICAgdHJ5
OgorICAgICMgICAgICAgIHdjcGF0aC5jaGVja291dChyZXY9MjEwMCkKKyAgICAjICAgICAgICB3
Y3BhdGgudXBkYXRlKCkKKyAgICAjICAgICAgICBhc3NlcnQgd2NwYXRoLmluZm8oKS5yZXYgPiAy
MTAwCisgICAgIyAgICBmaW5hbGx5OgorICAgICMgICAgICAgIHdjcGF0aC5sb2NhbHBhdGgucmVt
b3ZlKHJlYz0xKQorCitkZWYgdGVzdF9wYXJzZV93Y2luZm90aW1lKCk6CisgICAgYXNzZXJ0IChw
YXJzZV93Y2luZm90aW1lKCcyMDA2LTA1LTMwIDIwOjQ1OjI2ICswMjAwIChUdWUsIDMwIE1heSAy
MDA2KScpID09CisgICAgICAgICAgICAxMTQ5MDIxOTI2KQorICAgIGFzc2VydCAocGFyc2Vfd2Np
bmZvdGltZSgnMjAwMy0xMC0yNyAyMDo0MzoxNCArMDEwMCAoTW9uLCAyNyBPY3QgMjAwMyknKSA9
PQorICAgICAgICAgICAgMTA2NzI4NzM5NCkKKworY2xhc3MgVGVzdEluZm9Tdm5XQ0NvbW1hbmQ6
CisKKyAgICBkZWYgdGVzdF9zdm5fMV8yKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb3V0cHV0ID0g
IiIiCisgICAgICAgIFBhdGg6IHRlc3Rfc3Zud2MucHkKKyAgICAgICAgTmFtZTogdGVzdF9zdm53
Yy5weQorICAgICAgICBVUkw6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weS9kaXN0L3B5L3Bh
dGgvc3ZuL3djY29tbWFuZC5weQorICAgICAgICBSZXBvc2l0b3J5IFVVSUQ6IGZkMGQ3YmYyLWRm
YjYtMDMxMC04ZDMxLWI3ZWNmZTk2YWFkYQorICAgICAgICBSZXZpc2lvbjogMjgxMzcKKyAgICAg
ICAgTm9kZSBLaW5kOiBmaWxlCisgICAgICAgIFNjaGVkdWxlOiBub3JtYWwKKyAgICAgICAgTGFz
dCBDaGFuZ2VkIEF1dGhvcjogamFuCisgICAgICAgIExhc3QgQ2hhbmdlZCBSZXY6IDI3OTM5Cisg
ICAgICAgIExhc3QgQ2hhbmdlZCBEYXRlOiAyMDA2LTA1LTMwIDIwOjQ1OjI2ICswMjAwIChUdWUs
IDMwIE1heSAyMDA2KQorICAgICAgICBUZXh0IExhc3QgVXBkYXRlZDogMjAwNi0wNi0wMSAwMDo0
Mjo1MyArMDIwMCAoVGh1LCAwMSBKdW4gMjAwNikKKyAgICAgICAgUHJvcGVydGllcyBMYXN0IFVw
ZGF0ZWQ6IDIwMDYtMDUtMjMgMTE6NTQ6NTkgKzAyMDAgKFR1ZSwgMjMgTWF5IDIwMDYpCisgICAg
ICAgIENoZWNrc3VtOiAzNTdlNDQ4ODBlNWQ4MDE1N2NjNWZiYzNjZTk4MjJlMworICAgICAgICAi
IiIKKyAgICAgICAgcGF0aCA9IHB5LnBhdGgubG9jYWwoX19maWxlX18pLmRpcnBhdGgoKS5jaGRp
cigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluZm8gPSBJbmZvU3ZuV0NDb21tYW5kKG91
dHB1dCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGguY2hkaXIoKQorICAgICAg
ICBhc3NlcnQgaW5mby5sYXN0X2F1dGhvciA9PSAnamFuJworICAgICAgICBhc3NlcnQgaW5mby5r
aW5kID09ICdmaWxlJworICAgICAgICBhc3NlcnQgaW5mby5tdGltZSA9PSAxMTQ5MDIxOTI2LjAK
KyAgICAgICAgYXNzZXJ0IGluZm8udXJsID09ICdodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4vcHkv
ZGlzdC9weS9wYXRoL3N2bi93Y2NvbW1hbmQucHknCisgICAgICAgIGFzc2VydCBpbmZvLnRpbWUg
PT0gMTE0OTAyMTkyNjAwMDAwMC4wCisgICAgICAgIGFzc2VydCBpbmZvLnJldiA9PSAyODEzNwor
CisKKyAgICBkZWYgdGVzdF9zdm5fMV8zKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb3V0cHV0ID0g
IiIiCisgICAgICAgIFBhdGg6IHRlc3Rfc3Zud2MucHkKKyAgICAgICAgTmFtZTogdGVzdF9zdm53
Yy5weQorICAgICAgICBVUkw6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weS9kaXN0L3B5L3Bh
dGgvc3ZuL3djY29tbWFuZC5weQorICAgICAgICBSZXBvc2l0b3J5IFJvb3Q6IGh0dHA6Ly9jb2Rl
c3BlYWsubmV0L3N2bgorICAgICAgICBSZXBvc2l0b3J5IFVVSUQ6IGZkMGQ3YmYyLWRmYjYtMDMx
MC04ZDMxLWI3ZWNmZTk2YWFkYQorICAgICAgICBSZXZpc2lvbjogMjgxMjQKKyAgICAgICAgTm9k
ZSBLaW5kOiBmaWxlCisgICAgICAgIFNjaGVkdWxlOiBub3JtYWwKKyAgICAgICAgTGFzdCBDaGFu
Z2VkIEF1dGhvcjogamFuCisgICAgICAgIExhc3QgQ2hhbmdlZCBSZXY6IDI3OTM5CisgICAgICAg
IExhc3QgQ2hhbmdlZCBEYXRlOiAyMDA2LTA1LTMwIDIwOjQ1OjI2ICswMjAwIChUdWUsIDMwIE1h
eSAyMDA2KQorICAgICAgICBUZXh0IExhc3QgVXBkYXRlZDogMjAwNi0wNi0wMiAyMzo0NjoxMSAr
MDIwMCAoRnJpLCAwMiBKdW4gMjAwNikKKyAgICAgICAgUHJvcGVydGllcyBMYXN0IFVwZGF0ZWQ6
IDIwMDYtMDYtMDIgMjM6NDU6MjggKzAyMDAgKEZyaSwgMDIgSnVuIDIwMDYpCisgICAgICAgIENo
ZWNrc3VtOiAzNTdlNDQ4ODBlNWQ4MDE1N2NjNWZiYzNjZTk4MjJlMworICAgICAgICAiIiIKKyAg
ICAgICAgcGF0aCA9IHB5LnBhdGgubG9jYWwoX19maWxlX18pLmRpcnBhdGgoKS5jaGRpcigpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGluZm8gPSBJbmZvU3ZuV0NDb21tYW5kKG91dHB1dCkK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGguY2hkaXIoKQorICAgICAgICBhc3Nl
cnQgaW5mby5sYXN0X2F1dGhvciA9PSAnamFuJworICAgICAgICBhc3NlcnQgaW5mby5raW5kID09
ICdmaWxlJworICAgICAgICBhc3NlcnQgaW5mby5tdGltZSA9PSAxMTQ5MDIxOTI2LjAKKyAgICAg
ICAgYXNzZXJ0IGluZm8udXJsID09ICdodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4vcHkvZGlzdC9w
eS9wYXRoL3N2bi93Y2NvbW1hbmQucHknCisgICAgICAgIGFzc2VydCBpbmZvLnJldiA9PSAyODEy
NAorICAgICAgICBhc3NlcnQgaW5mby50aW1lID09IDExNDkwMjE5MjYwMDAwMDAuMAorCisKK2Rl
ZiB0ZXN0X2NoYXJhY3RlcnNfYXQoKToKKyAgICBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAi
cHkucGF0aC5zdm53YygnL3RtcC9AQEA6JykiKQorCitkZWYgdGVzdF9jaGFyYWN0ZXJzX3RpbGRl
KCk6CisgICAgcHkucGF0aC5zdm53YygnL3RtcC90ZXN0ficpCisKKworY2xhc3MgVGVzdFJlcG86
CisgICAgZGVmIHRlc3RfdHJhaWxpbmdfc2xhc2hfaXNfc3RyaXBwZWQoc2VsZiwgcGF0aDEpOgor
ICAgICAgICAjIFhYWCB3ZSBuZWVkIHRvIHRlc3QgbW9yZSBub3JtYWxpemluZyBwcm9wZXJ0aWVz
CisgICAgICAgIHVybCA9IHBhdGgxLmpvaW4oIi8iKQorICAgICAgICBhc3NlcnQgcGF0aDEgPT0g
dXJsCisKKyAgICAjZGVmIHRlc3RfZGlmZmVyZW50X3JldnNfY29tcGFyZV91bmVxdWFsKHNlbGYs
IHBhdGgxKToKKyAgICAjICAgIG5ld3BhdGggPSBwYXRoMS5uZXcocmV2PTExOTkpCisgICAgIyAg
ICBhc3NlcnQgbmV3cGF0aCAhPSBwYXRoMQorCisgICAgZGVmIHRlc3RfZXhpc3RzX3N2bl9yb290
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmNoZWNrKCkKKworICAgICNkZWYg
dGVzdF9ub3RfZXhpc3RzX3JldihzZWxmLCBwYXRoMSk6CisgICAgIyAgICB1cmwgPSBwYXRoMS5f
X2NsYXNzX18ocGF0aDF1cmwsIHJldj01MDApCisgICAgIyAgICBhc3NlcnQgdXJsLmNoZWNrKGV4
aXN0cz0wKQorCisgICAgI2RlZiB0ZXN0X25vbmV4aXN0aW5nX2xpc3RkaXJfcmV2KHNlbGYsIHBh
dGgxKToKKyAgICAjICAgIHVybCA9IHBhdGgxLl9fY2xhc3NfXyhwYXRoMXVybCwgcmV2PTUwMCkK
KyAgICAjICAgIHJhaXNlcyhweS5lcnJvci5FTk9FTlQsIHVybC5saXN0ZGlyKQorCisgICAgI2Rl
ZiB0ZXN0X25ld3JldihzZWxmLCBwYXRoMSk6CisgICAgIyAgICB1cmwgPSBwYXRoMS5uZXcocmV2
PU5vbmUpCisgICAgIyAgICBhc3NlcnQgdXJsLnJldiA9PSBOb25lCisgICAgIyAgICBhc3NlcnQg
dXJsLnN0cnBhdGggPT0gcGF0aDEuc3RycGF0aAorICAgICMgICAgdXJsID0gcGF0aDEubmV3KHJl
dj0xMCkKKyAgICAjICAgIGFzc2VydCB1cmwucmV2ID09IDEwCisKKyAgICAjZGVmIHRlc3RfaW5m
b19yZXYoc2VsZiwgcGF0aDEpOgorICAgICMgICAgdXJsID0gcGF0aDEuX19jbGFzc19fKHBhdGgx
dXJsLCByZXY9MTE1NSkKKyAgICAjICAgIHVybCA9IHVybC5qb2luKCJzYW1wbGVmaWxlIikKKyAg
ICAjICAgIHJlcyA9IHVybC5pbmZvKCkKKyAgICAjICAgIGFzc2VydCByZXMuc2l6ZSA+IGxlbigi
c2FtcGxlZmlsZSIpIGFuZCByZXMuY3JlYXRlZF9yZXYgPT0gMTE1NQorCisgICAgIyB0aGUgZm9s
bG93aW5nIHRlc3RzIGFyZSBlYXNpZXIgaWYgd2UgaGF2ZSBhIHBhdGggY2xhc3MKKyAgICBkZWYg
dGVzdF9yZXBvY2FjaGVfc2ltcGxlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcmVwb2NhY2hlID0g
c3ZuY29tbW9uLlJlcG9DYWNoZSgpCisgICAgICAgIHJlcG9jYWNoZS5wdXQocGF0aDEuc3RycGF0
aCwgNDIpCisgICAgICAgIHVybCwgcmV2ID0gcmVwb2NhY2hlLmdldChwYXRoMS5qb2luKCd0ZXN0
Jykuc3RycGF0aCkKKyAgICAgICAgYXNzZXJ0IHJldiA9PSA0MgorICAgICAgICBhc3NlcnQgdXJs
ID09IHBhdGgxLnN0cnBhdGgKKworICAgIGRlZiB0ZXN0X3JlcG9jYWNoZV9ub3RpbWVvdXQoc2Vs
ZiwgcGF0aDEpOgorICAgICAgICByZXBvY2FjaGUgPSBzdm5jb21tb24uUmVwb0NhY2hlKCkKKyAg
ICAgICAgcmVwb2NhY2hlLnRpbWVvdXQgPSAwCisgICAgICAgIHJlcG9jYWNoZS5wdXQocGF0aDEu
c3RycGF0aCwgcGF0aDEucmV2KQorICAgICAgICB1cmwsIHJldiA9IHJlcG9jYWNoZS5nZXQocGF0
aDEuc3RycGF0aCkKKyAgICAgICAgYXNzZXJ0IHJldiA9PSAtMQorICAgICAgICBhc3NlcnQgdXJs
ID09IHBhdGgxLnN0cnBhdGgKKworICAgIGRlZiB0ZXN0X3JlcG9jYWNoZV9vdXRkYXRlZChzZWxm
LCBwYXRoMSk6CisgICAgICAgIHJlcG9jYWNoZSA9IHN2bmNvbW1vbi5SZXBvQ2FjaGUoKQorICAg
ICAgICByZXBvY2FjaGUucHV0KHBhdGgxLnN0cnBhdGgsIDQyLCB0aW1lc3RhbXA9MCkKKyAgICAg
ICAgdXJsLCByZXYgPSByZXBvY2FjaGUuZ2V0KHBhdGgxLmpvaW4oJ3Rlc3QnKS5zdHJwYXRoKQor
ICAgICAgICBhc3NlcnQgcmV2ID09IC0xCisgICAgICAgIGFzc2VydCB1cmwgPT0gcGF0aDEuc3Ry
cGF0aAorCisgICAgZGVmIF90ZXN0X2dldHJlcG9yZXYoc2VsZik6CisgICAgICAgICIiIiB0aGlz
IHRlc3QgcnVucyBzbyBzbG93IGl0J3MgdXN1YWxseSBkaXNhYmxlZCAiIiIKKyAgICAgICAgb2xk
ID0gc3ZuY29tbW9uLnJlcG9zaXRvcmllcy5yZXBvcworICAgICAgICB0cnk6CisgICAgICAgICAg
ICBfcmVwb2NhY2hlLmNsZWFyKCkKKyAgICAgICAgICAgIHJvb3QgPSBwYXRoMS5uZXcocmV2PS0x
KQorICAgICAgICAgICAgdXJsLCByZXYgPSBjYWNoZS5yZXBvY2FjaGUuZ2V0KHJvb3Quc3RycGF0
aCkKKyAgICAgICAgICAgIGFzc2VydCByZXY+PTAKKyAgICAgICAgICAgIGFzc2VydCB1cmwgPT0g
c3ZucmVwb3VybAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcmVwb3NpdG9yaWVzLnJl
cG9zID0gb2xkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MTEx
ZDY3MWY2OGE4MGZlZDIxYmFhODVhODkxMjQ1OTQxNmY4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3RpbmcvcGF0aC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC9jb21tb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0
aC9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3JlcG90ZXN0LmR1bXAKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvcGF0aC9zdm50ZXN0YmFzZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rl
c3RfY2FjaGV1dGlsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9sb2NhbC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9wYXRoL3Rlc3Rfc3ZuYXV0aC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRo
L3Rlc3Rfc3ZudXJsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm53Yy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcHJvY2Vzcy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTJkNjAwNTQ4OWViZWU2MmNk
ZTAyMDY2ZjE5YzU1MjFlNjIwNDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3Byb2Nlc3MvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9jbWRleGVjLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nl
c3MvdGVzdF9jbWRleGVjLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NDYzZDkwNmQxNTFiMGI4ZDM3NWY1YmJj
ZGIyYzAyNzgzMzUxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vz
cy90ZXN0X2NtZGV4ZWMucHkKQEAgLTAsMCArMSw0MSBAQAoraW1wb3J0IHB5Citmcm9tIHB5LnBy
b2Nlc3MgaW1wb3J0IGNtZGV4ZWMKKworZGVmIGV4dmFsdWUoKToKKyAgICBpbXBvcnQgc3lzCisg
ICAgcmV0dXJuIHN5cy5leGNfaW5mbygpWzFdCisKKworY2xhc3MgVGVzdF9leGVjX2NtZDoKKyAg
ICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIG91dCA9IGNtZGV4ZWMoJ2VjaG8gaGFs
bG8nKQorICAgICAgICBhc3NlcnQgb3V0LnN0cmlwKCkgPT0gJ2hhbGxvJworICAgICAgICBhc3Nl
cnQgcHkuYnVpbHRpbi5faXN0ZXh0KG91dCkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9uZXdsaW5l
KHNlbGYpOgorICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIG91dCA9IGNtZGV4ZWMociIiIiVz
IC1jICJwcmludCAoJ2hlbGxvJykiICIiIiAlIHN5cy5leGVjdXRhYmxlKQorICAgICAgICBhc3Nl
cnQgb3V0ID09ICdoZWxsb1xuJworICAgICAgICBhc3NlcnQgcHkuYnVpbHRpbi5faXN0ZXh0KG91
dCkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9lcnJvcihzZWxmKToKKyAgICAgICAgcHkudGVzdC5y
YWlzZXMoY21kZXhlYy5FcnJvciwgY21kZXhlYywgJ2V4aXQgMScpCisKKyAgICBkZWYgdGVzdF9z
aW1wbGVfZXJyb3JfZXhhY3Rfc3RhdHVzKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBjbWRleGVjKCdleGl0IDEnKQorICAgICAgICBleGNlcHQgY21kZXhlYy5FcnJvcjoKKyAgICAg
ICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgICAgIGFzc2VydCBlLnN0YXR1cyA9PSAxCisg
ICAgICAgICAgICBhc3NlcnQgcHkuYnVpbHRpbi5faXN0ZXh0KGUub3V0KQorICAgICAgICAgICAg
YXNzZXJ0IHB5LmJ1aWx0aW4uX2lzdGV4dChlLmVycikKKworICAgIGRlZiB0ZXN0X2VycihzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY21kZXhlYygnZWNob3F3ZXF3ZTEyMyBoYWxs
bycpCisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiY29tbWFuZCBzdWNjZWVkZWQg
YnV0IHNob3VsZG4ndCIpCisgICAgICAgIGV4Y2VwdCBjbWRleGVjLkVycm9yOgorICAgICAgICAg
ICAgZSA9IGV4dmFsdWUoKQorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIoZSwgJ2VycicpCisg
ICAgICAgICAgICBhc3NlcnQgaGFzYXR0cihlLCAnb3V0JykKKyAgICAgICAgICAgIGFzc2VydCBl
LmVyciBvciBlLm91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9m
b3JrZWRmdW5jLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9mb3JrZWRmdW5jLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFlMGQ5YWI3ZTZkNzQ5NDg1MGI4MTE3YWYxOTJmMGU4NDQ1MzExZWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2ZvcmtlZGZ1bmMu
cHkKQEAgLTAsMCArMSwxNzMgQEAKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBweSwgc3lzLCBvcwor
CitweXRlc3RtYXJrID0gcHkudGVzdC5tYXJrLnNraXBpZigibm90IGhhc2F0dHIob3MsICdmb3Jr
JykiKQorCisKK2RlZiB0ZXN0X3dhaXRmaW5pc2hfcmVtb3Zlc190ZW1wZGlyKCk6CisgICAgZmYg
PSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94ZjEpCisgICAgYXNzZXJ0IGZmLnRlbXBkaXIuY2hl
Y2soKQorICAgIGZmLndhaXRmaW5pc2goKQorICAgIGFzc2VydCBub3QgZmYudGVtcGRpci5jaGVj
aygpCisKK2RlZiB0ZXN0X3RlbXBkaXJfZ2V0c19nY19jb2xsZWN0ZWQobW9ua2V5cGF0Y2gpOgor
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIob3MsICdmb3JrJywgbGFtYmRhOiBvcy5nZXRwaWQoKSkK
KyAgICBmZiA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hmMSkKKyAgICBhc3NlcnQgZmYudGVt
cGRpci5jaGVjaygpCisgICAgZmYuX19kZWxfXygpCisgICAgYXNzZXJ0IG5vdCBmZi50ZW1wZGly
LmNoZWNrKCkKKworZGVmIHRlc3RfYmFzaWNfZm9ya2VkZnVuYygpOgorICAgIHJlc3VsdCA9IHB5
LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hmMSkud2FpdGZpbmlzaCgpCisgICAgYXNzZXJ0IHJlc3Vs
dC5vdXQgPT0gInNvbWUgb3V0XG4iCisgICAgYXNzZXJ0IHJlc3VsdC5lcnIgPT0gInNvbWUgZXJy
XG4iCisgICAgYXNzZXJ0IHJlc3VsdC5leGl0c3RhdHVzID09IDAKKyAgICBhc3NlcnQgcmVzdWx0
LnNpZ25hbCA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5yZXR2YWwgPT0gMQorCitkZWYgdGVzdF9l
eGl0c3RhdHVzKCk6CisgICAgZGVmIGZ1bmMoKToKKyAgICAgICAgb3MuX2V4aXQoNCkKKyAgICBy
ZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoZnVuYykud2FpdGZpbmlzaCgpCisgICAgYXNz
ZXJ0IHJlc3VsdC5leGl0c3RhdHVzID09IDQKKyAgICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAw
CisgICAgYXNzZXJ0IG5vdCByZXN1bHQub3V0CisgICAgYXNzZXJ0IG5vdCByZXN1bHQuZXJyCisK
K2RlZiB0ZXN0X2V4ZWNwdGlvbl9pbl9mdW5jKCk6CisgICAgZGVmIGZ1bigpOgorICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKDQyKQorICAgIGZmID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5jKGZ1bikK
KyAgICByZXN1bHQgPSBmZi53YWl0ZmluaXNoKCkKKyAgICBhc3NlcnQgcmVzdWx0LmV4aXRzdGF0
dXMgPT0gZmYuRVhJVFNUQVRVU19FWENFUFRJT04KKyAgICBhc3NlcnQgcmVzdWx0LmVyci5maW5k
KCJWYWx1ZUVycm9yOiA0MiIpICE9IC0xCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAor
ICAgIGFzc2VydCBub3QgcmVzdWx0LnJldHZhbAorCitkZWYgdGVzdF9mb3JrZWRmdW5jX29uX2Zk
cygpOgorICAgIHJlc3VsdCA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hmMikud2FpdGZpbmlz
aCgpCisgICAgYXNzZXJ0IHJlc3VsdC5vdXQgPT0gInNvbWVvdXQiCisgICAgYXNzZXJ0IHJlc3Vs
dC5lcnIgPT0gInNvbWVlcnIiCisgICAgYXNzZXJ0IHJlc3VsdC5leGl0c3RhdHVzID09IDAKKyAg
ICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5yZXR2YWwgPT0g
MgorCitkZWYgdGVzdF9mb3JrZWRmdW5jX29uX2Zkc19vdXRwdXQoKToKKyAgICByZXN1bHQgPSBw
eS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94ZjMpLndhaXRmaW5pc2goKQorICAgIGFzc2VydCByZXN1
bHQuc2lnbmFsID09IDExCisgICAgYXNzZXJ0IHJlc3VsdC5vdXQgPT0gInMiCisKKworZGVmIHRl
c3RfZm9ya2VkZnVuY19vbl9zdGRvdXQoKToKKyAgICBkZWYgYm94ZjMoKToKKyAgICAgICAgaW1w
b3J0IHN5cworICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJoZWxsb1xuIikKKyAgICAgICAgb3Mu
a2lsbChvcy5nZXRwaWQoKSwgMTEpCisgICAgcmVzdWx0ID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5j
KGJveGYzKS53YWl0ZmluaXNoKCkKKyAgICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAxMQorICAg
IGFzc2VydCByZXN1bHQub3V0ID09ICJoZWxsb1xuIgorCitkZWYgdGVzdF9mb3JrZWRmdW5jX3Np
Z25hbCgpOgorICAgIHJlc3VsdCA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hzZWcpLndhaXRm
aW5pc2goKQorICAgIGFzc2VydCByZXN1bHQucmV0dmFsIGlzIE5vbmUKKyAgICBhc3NlcnQgcmVz
dWx0LnNpZ25hbCA9PSAxMQorCitkZWYgdGVzdF9mb3JrZWRmdW5jX2h1Z2VfZGF0YSgpOgorICAg
IHJlc3VsdCA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hodWdlKS53YWl0ZmluaXNoKCkKKyAg
ICBhc3NlcnQgcmVzdWx0Lm91dAorICAgIGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9PSAwCisg
ICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAorICAgIGFzc2VydCByZXN1bHQucmV0dmFsID09
IDMKKworZGVmIHRlc3RfYm94X3NlcSgpOgorICAgICMgd2UgcnVuIG1hbnkgYm94ZXMgd2l0aCBo
dWdlIGRhdGEsIGp1c3Qgb25lIGFmdGVyIGFub3RoZXIKKyAgICBmb3IgaSBpbiByYW5nZSg1MCk6
CisgICAgICAgIHJlc3VsdCA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hodWdlKS53YWl0Zmlu
aXNoKCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5vdXQKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5l
eGl0c3RhdHVzID09IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAorICAgICAg
ICBhc3NlcnQgcmVzdWx0LnJldHZhbCA9PSAzCisKK2RlZiB0ZXN0X2JveF9pbl9hX2JveCgpOgor
ICAgIGRlZiBib3hmdW4oKToKKyAgICAgICAgcmVzdWx0ID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5j
KGJveGYyKS53YWl0ZmluaXNoKCkKKyAgICAgICAgcHJpbnQgKHJlc3VsdC5vdXQpCisgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUocmVzdWx0LmVyciArICJcbiIpCisgICAgICAgIHJldHVybiByZXN1
bHQucmV0dmFsCisKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94ZnVuKS53
YWl0ZmluaXNoKCkKKyAgICBhc3NlcnQgcmVzdWx0Lm91dCA9PSAic29tZW91dFxuIgorICAgIGFz
c2VydCByZXN1bHQuZXJyID09ICJzb21lZXJyXG4iCisgICAgYXNzZXJ0IHJlc3VsdC5leGl0c3Rh
dHVzID09IDAKKyAgICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAwCisgICAgYXNzZXJ0IHJlc3Vs
dC5yZXR2YWwgPT0gMgorCitkZWYgdGVzdF9raWxsX2Z1bmNfZm9ya2VkKCk6CisgICAgY2xhc3Mg
QToKKyAgICAgICAgcGFzcworICAgIGluZm8gPSBBKCkKKyAgICBpbXBvcnQgdGltZQorCisgICAg
ZGVmIGJveF9mdW4oKToKKyAgICAgICAgdGltZS5zbGVlcCgxMCkgIyB3ZSBkb24ndCB3YW50IHRv
IGxhc3QgZm9yZXZlciBoZXJlCisKKyAgICBmZiA9IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hf
ZnVuKQorICAgIG9zLmtpbGwoZmYucGlkLCAxNSkKKyAgICByZXN1bHQgPSBmZi53YWl0ZmluaXNo
KCkKKyAgICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAxNQorCisKK2RlZiB0ZXN0X2hvb2tzKG1v
bmtleXBhdGNoKToKKyAgICBkZWYgX2JveGVkKCk6CisgICAgICAgIHJldHVybiAxCisKKyAgICBk
ZWYgX29uX3N0YXJ0KCk6CisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoInNvbWUgb3V0XG4iKQor
ICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKworICAgIGRlZiBfb25fZXhpdCgpOgorICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCJzb21lIGVyclxuIikKKyAgICAgICAgc3lzLnN0ZGVyci5mbHVz
aCgpCisKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoX2JveGVkLCBjaGlsZF9v
bl9zdGFydD1fb25fc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
aWxkX29uX2V4aXQ9X29uX2V4aXQpLndhaXRmaW5pc2goKQorICAgIGFzc2VydCByZXN1bHQub3V0
ID09ICJzb21lIG91dFxuIgorICAgIGFzc2VydCByZXN1bHQuZXJyID09ICJzb21lIGVyclxuIgor
ICAgIGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5zaWdu
YWwgPT0gMAorICAgIGFzc2VydCByZXN1bHQucmV0dmFsID09IDEKKworCisjID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyMgZXhhbXBsZXMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworCitkZWYgYm94ZjEoKToKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKCJzb21lIG91dFxuIikKKyAgICBzeXMuc3RkZXJyLndyaXRlKCJzb21l
IGVyclxuIikKKyAgICByZXR1cm4gMQorCitkZWYgYm94ZjIoKToKKyAgICBvcy53cml0ZSgxLCAi
c29tZW91dCIuZW5jb2RlKCdhc2NpaScpKQorICAgIG9zLndyaXRlKDIsICJzb21lZXJyIi5lbmNv
ZGUoJ2FzY2lpJykpCisgICAgcmV0dXJuIDIKKworZGVmIGJveGYzKCk6CisgICAgb3Mud3JpdGUo
MSwgInMiLmVuY29kZSgnYXNjaWknKSkKKyAgICBvcy5raWxsKG9zLmdldHBpZCgpLCAxMSkKKwor
ZGVmIGJveHNlZygpOgorICAgIG9zLmtpbGwob3MuZ2V0cGlkKCksIDExKQorCitkZWYgYm94aHVn
ZSgpOgorICAgIHMgPSAiICIuZW5jb2RlKCdhc2NpaScpCisgICAgb3Mud3JpdGUoMSwgcyAqIDEw
MDAwKQorICAgIG9zLndyaXRlKDIsIHMgKiAxMDAwMCkKKyAgICBvcy53cml0ZSgxLCBzICogMTAw
MDApCisKKyAgICBvcy53cml0ZSgxLCBzICogMTAwMDApCisgICAgb3Mud3JpdGUoMiwgcyAqIDEw
MDAwKQorICAgIG9zLndyaXRlKDIsIHMgKiAxMDAwMCkKKyAgICBvcy53cml0ZSgxLCBzICogMTAw
MDApCisgICAgcmV0dXJuIDMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3Rl
c3Rfa2lsbHByb2MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2tpbGxwcm9jLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwZDZlMmY1MTUzMWUwYjZhYTAzYjE3Njg3NDUxYTkzNWJjMTI0NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2tpbGxwcm9jLnB5
CkBAIC0wLDAgKzEsMTggQEAKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKK2ltcG9ydCBweQor
CisKK0BweXRlc3QubWFyay5za2lwaWYoInN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJyki
KQorZGVmIHRlc3Rfa2lsbCh0bXBkaXIpOgorICAgIHN1YnByb2Nlc3MgPSBweXRlc3QuaW1wb3J0
b3Jza2lwKCJzdWJwcm9jZXNzIikKKyAgICB0ID0gdG1wZGlyLmpvaW4oInQucHkiKQorICAgIHQu
d3JpdGUoImltcG9ydCB0aW1lIDsgdGltZS5zbGVlcCgxMDApIikKKyAgICBwcm9jID0gc3VicHJv
Y2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsIHN0cih0KV0pCisgICAgYXNzZXJ0IHByb2MucG9s
bCgpIGlzIE5vbmUgICMgbm8gcmV0dXJuIHZhbHVlIHlldAorICAgIHB5LnByb2Nlc3Mua2lsbChw
cm9jLnBpZCkKKyAgICByZXQgPSBwcm9jLndhaXQoKQorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAi
d2luMzIiIGFuZCByZXQgPT0gMDoKKyAgICAgICAgcHl0ZXN0LnNraXAoIlhYWCBvbiB3aW4zMiwg
c3VicHJvY2Vzcy5Qb3BlbigpLndhaXQoKSBvbiBhIGtpbGxlZCAiCisgICAgICAgICAgICAgICAg
ICAgICJwcm9jZXNzIGRvZXMgbm90IHlpZWxkIHJldHVybiB2YWx1ZSAhPSAwIikKKyAgICBhc3Nl
cnQgcmV0ICE9IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjU0ODcyYzgxM2MyY2MzN2Y0ZjcxOTBhZmY0YzdjYzQzMjIxNjgzYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL19faW5pdF9fLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9jbWRleGVjLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3By
b2Nlc3MvdGVzdF9mb3JrZWRmdW5jLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9r
aWxscHJvYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTJkNjAwNTQ4
OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL3Jvb3QvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9idWlsdGluLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jv
b3QvdGVzdF9idWlsdGluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZjFhM2M3Mzk5NDM1ZDc0M2I2Mjg4ZDE3
ZWJhMmI5OGE5OTQxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90
ZXN0X2J1aWx0aW4ucHkKQEAgLTAsMCArMSwxNzkgQEAKK2ltcG9ydCBzeXMKK2ltcG9ydCB0eXBl
cworaW1wb3J0IHB5Citmcm9tIHB5LmJ1aWx0aW4gaW1wb3J0IHNldCwgZnJvemVuc2V0LCByZXZl
cnNlZCwgc29ydGVkCisKK2RlZiB0ZXN0X2VudW1lcmF0ZSgpOgorICAgIGwgPSBbMCwxLDJdCisg
ICAgZm9yIGkseCBpbiBlbnVtZXJhdGUobCk6CisgICAgICAgIGFzc2VydCBpID09IHgKKworZGVm
IHRlc3RfYW55KCk6CisgICAgYXNzZXJ0IG5vdCBweS5idWlsdGluLmFueShbMCxGYWxzZSwgTm9u
ZV0pCisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uYW55KFswLEZhbHNlLCBOb25lLDFdKQorCitkZWYg
dGVzdF9hbGwoKToKKyAgICBhc3NlcnQgbm90IHB5LmJ1aWx0aW4uYWxsKFtUcnVlLCAxLCBGYWxz
ZV0pCisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uYWxsKFtUcnVlLCAxLCBvYmplY3RdKQorCitkZWYg
dGVzdF9CYXNlRXhjZXB0aW9uKCk6CisgICAgYXNzZXJ0IGlzc3ViY2xhc3MoSW5kZXhFcnJvciwg
cHkuYnVpbHRpbi5CYXNlRXhjZXB0aW9uKQorICAgIGFzc2VydCBpc3N1YmNsYXNzKEV4Y2VwdGlv
biwgcHkuYnVpbHRpbi5CYXNlRXhjZXB0aW9uKQorICAgIGFzc2VydCBpc3N1YmNsYXNzKEtleWJv
YXJkSW50ZXJydXB0LCBweS5idWlsdGluLkJhc2VFeGNlcHRpb24pCisKKyAgICBjbGFzcyBNeVJh
bmRvbUNsYXNzKG9iamVjdCk6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgbm90IGlzc3ViY2xh
c3MoTXlSYW5kb21DbGFzcywgcHkuYnVpbHRpbi5CYXNlRXhjZXB0aW9uKQorCisgICAgYXNzZXJ0
IHB5LmJ1aWx0aW4uQmFzZUV4Y2VwdGlvbi5fX21vZHVsZV9fIGluICgnZXhjZXB0aW9ucycsICdi
dWlsdGlucycpCisgICAgYXNzZXJ0IEV4Y2VwdGlvbi5fX25hbWVfXyA9PSAnRXhjZXB0aW9uJwor
CisKK2RlZiB0ZXN0X0dlbmVyYXRvckV4aXQoKToKKyAgICBhc3NlcnQgcHkuYnVpbHRpbi5HZW5l
cmF0b3JFeGl0Ll9fbW9kdWxlX18gaW4gKCdleGNlcHRpb25zJywgJ2J1aWx0aW5zJykKKyAgICBh
c3NlcnQgaXNzdWJjbGFzcyhweS5idWlsdGluLkdlbmVyYXRvckV4aXQsIHB5LmJ1aWx0aW4uQmFz
ZUV4Y2VwdGlvbikKKworZGVmIHRlc3RfcmV2ZXJzZWQoKToKKyAgICByZXZlcnNlZCA9IHB5LmJ1
aWx0aW4ucmV2ZXJzZWQKKyAgICByID0gcmV2ZXJzZWQoImhlbGxvIikKKyAgICBhc3NlcnQgaXRl
cihyKSBpcyByCisgICAgcyA9ICIiLmpvaW4obGlzdChyKSkKKyAgICBhc3NlcnQgcyA9PSAib2xs
ZWgiCisgICAgYXNzZXJ0IGxpc3QocmV2ZXJzZWQobGlzdChyZXZlcnNlZCgiaGVsbG8iKSkpKSA9
PSBbJ2gnLCdlJywnbCcsJ2wnLCdvJ10KKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIHJl
dmVyc2VkLCByZXZlcnNlZCgiaGVsbG8iKSkKKworZGVmIHRlc3Rfc2ltcGxlKCk6CisgICAgcyA9
IHNldChbMSwgMiwgMywgNF0pCisgICAgYXNzZXJ0IHMgPT0gc2V0KFszLCA0LCAyLCAxXSkKKyAg
ICBzMSA9IHMudW5pb24oc2V0KFs1LCA2XSkpCisgICAgYXNzZXJ0IDUgaW4gczEKKyAgICBhc3Nl
cnQgMSBpbiBzMQorCitkZWYgdGVzdF9mcm96ZW5zZXQoKToKKyAgICBzID0gc2V0KFtmcm96ZW5z
ZXQoWzAsIDFdKSwgZnJvemVuc2V0KFsxLCAwXSldKQorICAgIGFzc2VydCBsZW4ocykgPT0gMQor
CitkZWYgdGVzdF9zb3J0ZWQoKToKKyAgICBpZiBzb3J0ZWQgPT0gcHkuYnVpbHRpbi5zb3J0ZWQ6
CisgICAgICAgIHJldHVybiAjIGRvbid0IHRlc3QgYSByZWFsIGJ1aWx0aW4KKyAgICBmb3IgcyBp
biBbcHkuYnVpbHRpbi5zb3J0ZWRdOgorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAg
YXNzZXJ0IHMoWzMsIDIsIDFdKSA9PSBbMSwgMiwgM10KKyAgICAgICAgICAgIGFzc2VydCBzKFsx
LCAyLCAzXSwgcmV2ZXJzZT1UcnVlKSA9PSBbMywgMiwgMV0KKyAgICAgICAgICAgIGwgPSBzKFsx
LCAyLCAzLCA0LCA1LCA2XSwga2V5PWxhbWJkYSB4OiB4ICUgMikKKyAgICAgICAgICAgIGFzc2Vy
dCBsID09IFsyLCA0LCA2LCAxLCAzLCA1XQorICAgICAgICAgICAgbCA9IHMoWzEsIDIsIDMsIDRd
LCBjbXA9bGFtYmRhIHgsIHk6IC1jbXAoeCwgeSkpCisgICAgICAgICAgICBhc3NlcnQgbCA9PSBb
NCwgMywgMiwgMV0KKyAgICAgICAgICAgIGwgPSBzKFsxLCAyLCAzLCA0XSwgY21wPWxhbWJkYSB4
LCB5OiAtY21wKHgsIHkpLAorICAgICAgICAgICAgICAgICAgICAgICAga2V5PWxhbWJkYSB4OiB4
ICUgMikKKyAgICAgICAgICAgIGFzc2VydCBsID09IFsxLCAzLCAyLCA0XQorCisgICAgICAgICAg
ICBkZWYgY29tcGFyZSh4LCB5KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdHlwZSh4KSA9PSBz
dHIKKyAgICAgICAgICAgICAgICBhc3NlcnQgdHlwZSh5KSA9PSBzdHIKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY21wKHgsIHkpCisgICAgICAgICAgICBkYXRhID0gJ1RoZSBxdWljayBCcm93biBm
b3ggSnVtcGVkIG92ZXIgVGhlIGxhenkgRG9nJy5zcGxpdCgpCisgICAgICAgICAgICBzKGRhdGEs
IGNtcD1jb21wYXJlLCBrZXk9c3RyLmxvd2VyKQorICAgICAgICB5aWVsZCB0ZXN0CisKKworZGVm
IHRlc3RfcHJpbnRfc2ltcGxlKCk6CisgICAgZnJvbSBweS5idWlsdGluIGltcG9ydCBwcmludF8K
KyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJwcmludF8oaGVsbG89MykiKQorICAgIGYg
PSBweS5pby5UZXh0SU8oKQorICAgIHByaW50XygiaGVsbG8iLCAid29ybGQiLCBmaWxlPWYpCisg
ICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgIGFzc2VydCBzID09ICJoZWxsbyB3b3JsZFxuIgorCisg
ICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgcHJpbnRfKCJoZWxsbyIsIGVuZD0iIiwgZmlsZT1m
KQorICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICBhc3NlcnQgcyA9PSAiaGVsbG8iCisKKyAgICBm
ID0gcHkuaW8uVGV4dElPKCkKKyAgICBwcmludF8oInh5eiIsICJhYmMiLCBzZXA9IiIsIGVuZD0i
IiwgZmlsZT1mKQorICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICBhc3NlcnQgcyA9PSAieHl6YWJj
IgorCisgICAgY2xhc3MgWDoKKyAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOiByZXR1cm4gInJl
cCIKKyAgICBmID0gcHkuaW8uVGV4dElPKCkKKyAgICBwcmludF8oWCgpLCBmaWxlPWYpCisgICAg
YXNzZXJ0IGYuZ2V0dmFsdWUoKSA9PSAicmVwXG4iCisKK2RlZiB0ZXN0X2V4ZWNmaWxlKHRtcGRp
cik6CisgICAgdGVzdF9maWxlID0gdG1wZGlyLmpvaW4oInRlc3QucHkiKQorICAgIHRlc3RfZmls
ZS53cml0ZSgieCA9IHlcbmRlZiBmKCk6IHBhc3MiKQorICAgIG5zID0geyJ5IiA6IDQyfQorICAg
IHB5LmJ1aWx0aW4uZXhlY2ZpbGUoc3RyKHRlc3RfZmlsZSksIG5zKQorICAgIGFzc2VydCBuc1si
eCJdID09IDQyCisgICAgYXNzZXJ0IHB5LmNvZGUuZ2V0cmF3Y29kZShuc1siZiJdKS5jb19maWxl
bmFtZSA9PSBzdHIodGVzdF9maWxlKQorICAgIGNsYXNzIEE6CisgICAgICAgIHkgPSAzCisgICAg
ICAgIHggPSA0CisgICAgICAgIHB5LmJ1aWx0aW4uZXhlY2ZpbGUoc3RyKHRlc3RfZmlsZSkpCisg
ICAgYXNzZXJ0IEEueCA9PSAzCisKK2RlZiB0ZXN0X2dldGZ1bmNkaWN0KCk6CisgICAgZGVmIGYo
KToKKyAgICAgICAgcGFzcworICAgIGYueCA9IDQKKyAgICBhc3NlcnQgcHkuYnVpbHRpbi5fZ2V0
ZnVuY2RpY3QoZilbIngiXSA9PSA0CisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uX2dldGZ1bmNkaWN0
KDIpIGlzIE5vbmUKKworZGVmIHRlc3RfY2FsbGFibGUoKToKKyAgICBjbGFzcyBBOiBwYXNzCisg
ICAgYXNzZXJ0IHB5LmJ1aWx0aW4uY2FsbGFibGUodGVzdF9jYWxsYWJsZSkKKyAgICBhc3NlcnQg
cHkuYnVpbHRpbi5jYWxsYWJsZShBKQorICAgIGFzc2VydCBweS5idWlsdGluLmNhbGxhYmxlKGxp
c3QpCisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uY2FsbGFibGUoaWQpCisgICAgYXNzZXJ0IG5vdCBw
eS5idWlsdGluLmNhbGxhYmxlKDQpCisgICAgYXNzZXJ0IG5vdCBweS5idWlsdGluLmNhbGxhYmxl
KCJoaSIpCisKK2RlZiB0ZXN0X3RvdGV4dCgpOgorICAgIHB5LmJ1aWx0aW4uX3RvdGV4dCgiaGVs
bG8iLCAiVVRGLTgiKQorCitkZWYgdGVzdF9ieXRlc190ZXh0KCk6CisgICAgaWYgc3lzLnZlcnNp
b25faW5mb1swXSA8IDM6CisgICAgICAgIGFzc2VydCBweS5idWlsdGluLnRleHQgPT0gdW5pY29k
ZQorICAgICAgICBhc3NlcnQgcHkuYnVpbHRpbi5ieXRlcyA9PSBzdHIKKyAgICBlbHNlOgorICAg
ICAgICBhc3NlcnQgcHkuYnVpbHRpbi50ZXh0ID09IHN0cgorICAgICAgICBhc3NlcnQgcHkuYnVp
bHRpbi5ieXRlcyA9PSBieXRlcworCitkZWYgdGVzdF90b3RleHRfYmFkdXRmOCgpOgorICAgICMg
dGhpcyB3YXMgaW4gcHJpbnRvdXRzIHdpdGhpbiB0aGUgcHl0ZXN0IHRlc3RzdWl0ZQorICAgICMg
dG90ZXh0IHdvdWxkIGZhaWwKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCk6CisgICAg
ICAgIGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUnCisgICAgZWxzZTogIyBvbGQgcHl0aG9uIGhh
cyBjcmFwcHkgZXJyb3IgaGFuZGxlcnMKKyAgICAgICAgZXJyb3JzID0gJ3JlcGxhY2UnCisgICAg
cHkuYnVpbHRpbi5fdG90ZXh0KCJceGE2IiwgIlVURi04IiwgZXJyb3JzKQorCitkZWYgdGVzdF9y
ZXJhaXNlKCk6CisgICAgZnJvbSBweS5idWlsdGluIGltcG9ydCBfcmVyYWlzZQorICAgIHRyeToK
KyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg
ICBjbHMsIHZhbCwgdGIgPSBzeXMuZXhjX2luZm8oKQorICAgIGV4Y2luZm8gPSBweS50ZXN0LnJh
aXNlcyhFeGNlcHRpb24sICJfcmVyYWlzZShjbHMsIHZhbCwgdGIpIikKKworZGVmIHRlc3RfZXhl
YygpOgorICAgIGwgPSBbXQorICAgIHB5LmJ1aWx0aW4uZXhlY18oImwuYXBwZW5kKDEpIikKKyAg
ICBhc3NlcnQgbCA9PSBbMV0KKyAgICBkID0ge30KKyAgICBweS5idWlsdGluLmV4ZWNfKCJ4PTQi
LCBkKQorICAgIGFzc2VydCBkWyd4J10gPT0gNAorCitkZWYgdGVzdF90cnlpbXBvcnQoKToKKyAg
ICBweS50ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgcHkuYnVpbHRpbi5fdHJ5aW1wb3J0LCAneHF3
ZTEyMycpCisgICAgeCA9IHB5LmJ1aWx0aW4uX3RyeWltcG9ydCgnYXNsZGthanNkbCcsICdweScp
CisgICAgYXNzZXJ0IHggPT0gcHkKKyAgICB4ID0gcHkuYnVpbHRpbi5fdHJ5aW1wb3J0KCdhc2xk
a2Fqc2RsJywgJ3B5LnBhdGgnKQorICAgIGFzc2VydCB4ID09IHB5LnBhdGgKKworZGVmIHRlc3Rf
Z2V0Y29kZSgpOgorICAgIGNvZGUgPSBweS5idWlsdGluLl9nZXRjb2RlKHRlc3RfZ2V0Y29kZSkK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCB0eXBlcy5Db2RlVHlwZSkKKyAgICBhc3NlcnQg
cHkuYnVpbHRpbi5fZ2V0Y29kZSg0KSBpcyBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rp
bmcvcm9vdC90ZXN0X2Vycm9yLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9lcnJvci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMTE4NWYzM2RjOTQwZDcyMjlkNGI5ODU2ODY4YmEzNGUzNDY2Zjc3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9lcnJvci5weQpAQCAt
MCwwICsxLDY4IEBACisKK2ltcG9ydCBweQorCitpbXBvcnQgZXJybm8KKworCitkZWYgdGVzdF9l
cnJvcl9jbGFzc2VzKCk6CisgICAgZm9yIG5hbWUgaW4gZXJybm8uZXJyb3Jjb2RlLnZhbHVlcygp
OgorICAgICAgICB4ID0gZ2V0YXR0cihweS5lcnJvciwgbmFtZSkKKyAgICAgICAgYXNzZXJ0IGlz
c3ViY2xhc3MoeCwgcHkuZXJyb3IuRXJyb3IpCisgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHgs
IEVudmlyb25tZW50RXJyb3IpCisKKworZGVmIHRlc3RfaGFzX25hbWUoKToKKyAgICBhc3NlcnQg
cHkuZXJyb3IuX19uYW1lX18gPT0gJ3B5LmVycm9yJworCisKK2RlZiB0ZXN0X3BpY2tsYWJpbGl0
eV9pc3N1ZTEoKToKKyAgICBpbXBvcnQgcGlja2xlCisgICAgZTEgPSBweS5lcnJvci5FTk9FTlQo
KQorICAgIHMgPSBwaWNrbGUuZHVtcHMoZTEpCisgICAgZTIgPSBwaWNrbGUubG9hZHMocykKKyAg
ICBhc3NlcnQgaXNpbnN0YW5jZShlMiwgcHkuZXJyb3IuRU5PRU5UKQorCisKK2RlZiB0ZXN0X3Vu
a25vd25fZXJyb3IoKToKKyAgICBudW0gPSAzOTk5CisgICAgY2xzID0gcHkuZXJyb3IuX2dldGVy
cm5vY2xhc3MobnVtKQorICAgIGFzc2VydCBjbHMuX19uYW1lX18gPT0gJ1Vua25vd25FcnJubyVk
JyAlIChudW0sKQorICAgIGFzc2VydCBpc3N1YmNsYXNzKGNscywgcHkuZXJyb3IuRXJyb3IpCisg
ICAgYXNzZXJ0IGlzc3ViY2xhc3MoY2xzLCBFbnZpcm9ubWVudEVycm9yKQorICAgIGNsczIgPSBw
eS5lcnJvci5fZ2V0ZXJybm9jbGFzcyhudW0pCisgICAgYXNzZXJ0IGNscyBpcyBjbHMyCisKKwor
ZGVmIHRlc3RfZXJyb3JfY29udmVyc2lvbl9FTk9URElSKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIpCisgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKHB5LmVycm9y
LkVycm9yLCBweS5lcnJvci5jaGVja2VkX2NhbGwsIHAubGlzdGRpcikKKyAgICBhc3NlcnQgaXNp
bnN0YW5jZShleGNpbmZvLnZhbHVlLCBFbnZpcm9ubWVudEVycm9yKQorICAgIGFzc2VydCBpc2lu
c3RhbmNlKGV4Y2luZm8udmFsdWUsIHB5LmVycm9yLkVycm9yKQorICAgIGFzc2VydCAiRU5PVERJ
UiIgaW4gcmVwcihleGNpbmZvLnZhbHVlKQorCisKK2RlZiB0ZXN0X2NoZWNrZWRfY2FsbF9zdXBw
b3J0c19rd2FyZ3ModG1wZGlyKToKKyAgICBpbXBvcnQgdGVtcGZpbGUKKyAgICBweS5lcnJvci5j
aGVja2VkX2NhbGwodGVtcGZpbGUubWtkdGVtcCwgZGlyPXN0cih0bXBkaXIpKQorCisKK3RyeToK
KyAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRXYXJucwor
ZXhjZXB0IChJbXBvcnRFcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgIHBhc3MgICMgcmVxdWly
ZWQgaW50ZXJmYWNlIG5vdCBhdmFpbGFibGUKK2Vsc2U6CisgICAgaW1wb3J0IHN5cworICAgIGlt
cG9ydCB3YXJuaW5ncworCisgICAgY2xhc3MgQ2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ICAgIGRlZiB0ZXN0X2Fzc2VydFdhcm5zKHNlbGYpOgorICAgICAgICAgICAgIyBDbGVhciBldmVy
eXRoaW5nICJweS4qIiBmcm9tIHN5cy5tb2R1bGVzIGFuZCByZS1pbXBvcnQgcHkKKyAgICAgICAg
ICAgICMgYXMgYSBmcmVzaCBzdGFydAorICAgICAgICAgICAgZm9yIG1vZCBpbiB0dXBsZShzeXMu
bW9kdWxlcy5rZXlzKCkpOgorICAgICAgICAgICAgICAgIGlmIG1vZCBhbmQgKG1vZCA9PSAncHkn
IG9yIG1vZC5zdGFydHN3aXRoKCdweS4nKSk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBzeXMu
bW9kdWxlc1ttb2RdCisgICAgICAgICAgICBpbXBvcnQgcHkKKworICAgICAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFdhcm5zKFVzZXJXYXJuaW5nKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKCd0aGlzIHNob3VsZCB3b3JrJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290
L3Rlc3RfcHlfaW1wb3J0cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfcHlfaW1wb3J0
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMWZlNmVhZDgxMGNlMGNjNGY5MzY5NWFkNmU3MTZmOGVhMWRhZWI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9weV9pbXBvcnRz
LnB5CkBAIC0wLDAgKzEsNzEgQEAKK2ltcG9ydCBweQoraW1wb3J0IHN5cworCisKK0BweS50ZXN0
Lm1hcmsucGFyYW1ldHJpemUoJ25hbWUnLCBbeCBmb3IgeCBpbiBkaXIocHkpIGlmIHhbMF0gIT0g
J18nXSkKK2RlZiB0ZXN0X2RpcihuYW1lKToKKyAgICBvYmogPSBnZXRhdHRyKHB5LCBuYW1lKQor
ICAgIGlmIGhhc2F0dHIob2JqLCAnX19tYXBfXycpOiAgIyBpc2luc3RhbmNlKG9iaiwgTW9kdWxl
KToKKyAgICAgICAga2V5cyA9IGRpcihvYmopCisgICAgICAgIGFzc2VydCBsZW4oa2V5cykgPiAw
CisgICAgICAgIHByaW50IChvYmouX19tYXBfXykKKyAgICAgICAgZm9yIG5hbWUgaW4gbGlzdChv
YmouX19tYXBfXyk6CisgICAgICAgICAgICBhc3NlcnQgaGFzYXR0cihvYmosIG5hbWUpLCAob2Jq
LCBuYW1lKQorCisKK2RlZiB0ZXN0X3ZpcnR1YWxfbW9kdWxlX2lkZW50aXR5KCk6CisgICAgZnJv
bSBweSBpbXBvcnQgcGF0aCBhcyBwYXRoMQorICAgIGZyb20gcHkgaW1wb3J0IHBhdGggYXMgcGF0
aDIKKyAgICBhc3NlcnQgcGF0aDEgaXMgcGF0aDIKKyAgICBmcm9tIHB5LnBhdGggaW1wb3J0IGxv
Y2FsIGFzIGxvY2FsMQorICAgIGZyb20gcHkucGF0aCBpbXBvcnQgbG9jYWwgYXMgbG9jYWwyCisg
ICAgYXNzZXJ0IGxvY2FsMSBpcyBsb2NhbDIKKworCitkZWYgdGVzdF9pbXBvcnRhbGwoKToKKyAg
ICBiYXNlID0gcHkuX3B5ZGlyCisgICAgbm9kaXJzID0gWworICAgIF0KKyAgICBpZiBzeXMudmVy
c2lvbl9pbmZvID49ICgzLCAwKToKKyAgICAgICAgbm9kaXJzLmFwcGVuZChiYXNlLmpvaW4oJ19j
b2RlJywgJ19hc3NlcnRpb25vbGQucHknKSkKKyAgICBlbHNlOgorICAgICAgICBub2RpcnMuYXBw
ZW5kKGJhc2Uuam9pbignX2NvZGUnLCAnX2Fzc2VydGlvbm5ldy5weScpKQorCisgICAgZGVmIHJl
Y3Vyc2UocCk6CisgICAgICAgIHJldHVybiBwLmNoZWNrKGRvdGZpbGU9MCkgYW5kIHAuYmFzZW5h
bWUgIT0gImF0dGljIgorCisgICAgZm9yIHAgaW4gYmFzZS52aXNpdCgnKi5weScsIHJlY3Vyc2Up
OgorICAgICAgICBpZiBwLmJhc2VuYW1lID09ICdfX2luaXRfXy5weSc6CisgICAgICAgICAgICBj
b250aW51ZQorICAgICAgICByZWxwYXRoID0gcC5uZXcoZXh0PScnKS5yZWx0byhiYXNlKQorICAg
ICAgICBpZiBiYXNlLnNlcCBpbiByZWxwYXRoOiAgIyBub3QgcHkvKi5weSBpdHNlbGYKKyAgICAg
ICAgICAgIGZvciB4IGluIG5vZGlyczoKKyAgICAgICAgICAgICAgICBpZiBwID09IHggb3IgcC5y
ZWx0byh4KToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgcmVscGF0aCA9IHJlbHBhdGgucmVwbGFjZShiYXNlLnNlcCwgJy4nKQor
ICAgICAgICAgICAgICAgIG1vZHBhdGggPSAncHkuJXMnICUgcmVscGF0aAorICAgICAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfaW1wb3J0KG1vZHBhdGgpCisgICAg
ICAgICAgICAgICAgZXhjZXB0IHB5LnRlc3Quc2tpcC5FeGNlcHRpb246CisgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKworCitkZWYgY2hlY2tfaW1wb3J0KG1vZHBhdGgpOgorICAgIHB5LmJ1aWx0
aW4ucHJpbnRfKCJjaGVja2luZyBpbXBvcnQiLCBtb2RwYXRoKQorICAgIGFzc2VydCBfX2ltcG9y
dF9fKG1vZHBhdGgpCisKKworZGVmIHRlc3Rfc3Rhcl9pbXBvcnQoKToKKyAgICBleGVjKCJmcm9t
IHB5IGltcG9ydCAqIikKKworCitkZWYgdGVzdF9hbGxfcmVzb2x2ZXMoKToKKyAgICBzZWVuID0g
cHkuYnVpbHRpbi5zZXQoW3B5XSkKKyAgICBsYXN0bGVuZ3RoID0gTm9uZQorICAgIHdoaWxlIGxl
bihzZWVuKSAhPSBsYXN0bGVuZ3RoOgorICAgICAgICBsYXN0bGVuZ3RoID0gbGVuKHNlZW4pCisg
ICAgICAgIGZvciBpdGVtIGluIHB5LmJ1aWx0aW4uZnJvemVuc2V0KHNlZW4pOgorICAgICAgICAg
ICAgZm9yIHZhbHVlIGluIGl0ZW0uX19kaWN0X18udmFsdWVzKCk6CisgICAgICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZSh2YWx1ZSwgdHlwZShweS50ZXN0KSk6CisgICAgICAgICAgICAgICAgICAg
IHNlZW4uYWRkKHZhbHVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9z
dGQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3N0ZC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDM1
NTZhMDU1N2Y3ZDhkZDExYWViZDhjYmY0ZjVhNjc1YzE2OGMyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9zdGQucHkKQEAgLTAsMCArMSwxMyBAQAorCitpbXBv
cnQgcHkKKworZGVmIHRlc3Rfb3MoKToKKyAgICBpbXBvcnQgb3MKKyAgICBhc3NlcnQgcHkuc3Rk
Lm9zIGlzIG9zCisKK2RlZiB0ZXN0X2ltcG9ydF9lcnJvcl9jb252ZXJ0c190b19hdHRyaWJ1dGVl
cnJvcigpOgorICAgIHB5LnRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCAicHkuc3RkLnh5emFs
c2tkaiIpCisKK2RlZiB0ZXN0X3N0ZF9nZXRzX2l0KCk6CisgICAgZm9yIHggaW4gcHkuc3RkLnN5
cy5tb2R1bGVzOgorICAgICAgICBhc3NlcnQgeCBpbiBweS5zdGQuX19kaWN0X18KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfeG1sZ2VuLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3Jvb3QvdGVzdF94bWxnZW4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMwZTgyNjY1ZjdlZTliZmQ4OTRjOTA2
ODdiODBjOTdkZDZkNzJhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290
L3Rlc3RfeG1sZ2VuLnB5CkBAIC0wLDAgKzEsMTQ2IEBACisKK2ltcG9ydCBweQorZnJvbSBweS5f
eG1sZ2VuIGltcG9ydCB1bmljb2RlLCBodG1sLCByYXcKK2ltcG9ydCBzeXMKKworY2xhc3MgbnMo
cHkueG1sLk5hbWVzcGFjZSk6CisgICAgcGFzcworCitkZWYgdGVzdF9lc2NhcGUoKToKKyAgICB1
dmFsdWUgPSBweS5idWlsdGluLl90b3RleHQoJ1x4YzRceDg1XHhjNFx4ODdcblx4ZTJceDgyXHhh
Y1xuJywgJ3V0Zi04JykKKyAgICBjbGFzcyBBOgorICAgICAgICBkZWYgX191bmljb2RlX18oc2Vs
Zik6CisgICAgICAgICAgICByZXR1cm4gdXZhbHVlCisgICAgICAgIGRlZiBfX3N0cl9fKHNlbGYp
OgorICAgICAgICAgICAgeCA9IHNlbGYuX191bmljb2RlX18oKQorICAgICAgICAgICAgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA8IDM6CisgICAgICAgICAgICAgICAgcmV0dXJuIHguZW5jb2RlKCd1
dGYtOCcpCisgICAgICAgICAgICByZXR1cm4geAorICAgIHkgPSBweS54bWwuZXNjYXBlKHV2YWx1
ZSkKKyAgICBhc3NlcnQgeSA9PSB1dmFsdWUKKyAgICB4ID0gcHkueG1sLmVzY2FwZShBKCkpCisg
ICAgYXNzZXJ0IHggPT0gdXZhbHVlCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6Cisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHgsIHVuaWNvZGUpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHksIHVuaWNvZGUpCisgICAgICAgIHkgPSBweS54bWwuZXNjYXBlKHV2YWx1ZS5lbmNv
ZGUoJ3V0Zi04JykpCisgICAgICAgIGFzc2VydCB5ID09IHV2YWx1ZQorCisKK2RlZiB0ZXN0X3Rh
Z193aXRoX3RleHQoKToKKyAgICB4ID0gbnMuaGVsbG8oIndvcmxkIikKKyAgICB1ID0gdW5pY29k
ZSh4KQorICAgIGFzc2VydCB1ID09ICI8aGVsbG8+d29ybGQ8L2hlbGxvPiIKKworZGVmIHRlc3Rf
Y2xhc3NfaWRlbnRpdHkoKToKKyAgICBhc3NlcnQgbnMuaGVsbG8gaXMgbnMuaGVsbG8KKworZGVm
IHRlc3RfdGFnX3dpdGhfdGV4dF9hbmRfYXR0cmlidXRlcygpOgorICAgIHggPSBucy5zb21lKG5h
bWU9ImhlbGxvIiwgdmFsdWU9IndvcmxkIikKKyAgICBhc3NlcnQgeC5hdHRyLm5hbWUgPT0gJ2hl
bGxvJworICAgIGFzc2VydCB4LmF0dHIudmFsdWUgPT0gJ3dvcmxkJworICAgIHUgPSB1bmljb2Rl
KHgpCisgICAgYXNzZXJ0IHUgPT0gJzxzb21lIG5hbWU9ImhlbGxvIiB2YWx1ZT0id29ybGQiLz4n
CisKK2RlZiB0ZXN0X3RhZ193aXRoX3N1YmNsYXNzZWRfYXR0cl9zaW1wbGUoKToKKyAgICBjbGFz
cyBteShucy5oZWxsbyk6CisgICAgICAgIGNsYXNzIEF0dHIobnMuaGVsbG8uQXR0cik6CisgICAg
ICAgICAgICBoZWxsbz0id29ybGQiCisgICAgeCA9IG15KCkKKyAgICBhc3NlcnQgeC5hdHRyLmhl
bGxvID09ICd3b3JsZCcKKyAgICBhc3NlcnQgdW5pY29kZSh4KSA9PSAnPG15IGhlbGxvPSJ3b3Js
ZCIvPicKKworZGVmIHRlc3RfdGFnX3dpdGhfcmF3X2F0dHIoKToKKyAgICB4ID0gaHRtbC5vYmpl
Y3QoZGF0YT1yYXcoJyYnKSkKKyAgICBhc3NlcnQgdW5pY29kZSh4KSA9PSAnPG9iamVjdCBkYXRh
PSImIj48L29iamVjdD4nCisKK2RlZiB0ZXN0X3RhZ19uZXN0ZWQoKToKKyAgICB4ID0gbnMuaGVs
bG8obnMud29ybGQoKSkKKyAgICB1bmljb2RlKHgpICMgdHJpZ2dlcnMgcGFyZW50aWZ5aW5nCisg
ICAgYXNzZXJ0IHhbMF0ucGFyZW50IGlzIHgKKyAgICB1ID0gdW5pY29kZSh4KQorICAgIGFzc2Vy
dCB1ID09ICc8aGVsbG8+PHdvcmxkLz48L2hlbGxvPicKKworZGVmIHRlc3RfbGlzdF9uZXN0ZWQo
KToKKyAgICB4ID0gbnMuaGVsbG8oW25zLndvcmxkKCldKSAjcGFzcyBpbiBhIGxpc3QgaGVyZQor
ICAgIHUgPSB1bmljb2RlKHgpCisgICAgYXNzZXJ0IHUgPT0gJzxoZWxsbz48d29ybGQvPjwvaGVs
bG8+JworCitkZWYgdGVzdF90YWdfeG1sbmFtZSgpOgorICAgIGNsYXNzIG15KG5zLmhlbGxvKToK
KyAgICAgICAgeG1sbmFtZSA9ICd3b3JsZCcKKyAgICB1ID0gdW5pY29kZShteSgpKQorICAgIGFz
c2VydCB1ID09ICc8d29ybGQvPicKKworZGVmIHRlc3RfdGFnX3dpdGhfdGV4dF9lbnRpdHkoKToK
KyAgICB4ID0gbnMuaGVsbG8oJ3dvcmxkICYgcmVzdCcpCisgICAgdSA9IHVuaWNvZGUoeCkKKyAg
ICBhc3NlcnQgdSA9PSAiPGhlbGxvPndvcmxkICZhbXA7IHJlc3Q8L2hlbGxvPiIKKworZGVmIHRl
c3RfdGFnX3dpdGhfdGV4dF9hbmRfYXR0cmlidXRlc19lbnRpdHkoKToKKyAgICB4ID0gbnMuc29t
ZShuYW1lPSJoZWxsbyAmIHdvcmxkIikKKyAgICBhc3NlcnQgeC5hdHRyLm5hbWUgPT0gImhlbGxv
ICYgd29ybGQiCisgICAgdSA9IHVuaWNvZGUoeCkKKyAgICBhc3NlcnQgdSA9PSAnPHNvbWUgbmFt
ZT0iaGVsbG8gJmFtcDsgd29ybGQiLz4nCisKK2RlZiB0ZXN0X3JhdygpOgorICAgIHggPSBucy5z
b21lKHB5LnhtbC5yYXcoIjxwPmxpdGVyYWw8L3A+IikpCisgICAgdSA9IHVuaWNvZGUoeCkKKyAg
ICBhc3NlcnQgdSA9PSAiPHNvbWU+PHA+bGl0ZXJhbDwvcD48L3NvbWU+IgorCisKK2RlZiB0ZXN0
X2h0bWxfbmFtZV9zdGlja3luZXNzKCk6CisgICAgY2xhc3MgbXkoaHRtbC5wKToKKyAgICAgICAg
cGFzcworICAgIHggPSBteSgiaGVsbG8iKQorICAgIGFzc2VydCB1bmljb2RlKHgpID09ICc8cD5o
ZWxsbzwvcD4nCisKK2RlZiB0ZXN0X3N0eWxlbmFtZXMoKToKKyAgICBjbGFzcyBteToKKyAgICAg
ICAgY2xhc3MgYm9keShodG1sLmJvZHkpOgorICAgICAgICAgICAgc3R5bGUgPSBodG1sLlN0eWxl
KGZvbnRfc2l6ZSA9ICIxMnB0IikKKyAgICB1ID0gdW5pY29kZShteS5ib2R5KCkpCisgICAgYXNz
ZXJ0IHUgPT0gJzxib2R5IHN0eWxlPSJmb250LXNpemU6IDEycHQiPjwvYm9keT4nCisKK2RlZiB0
ZXN0X2NsYXNzX05vbmUoKToKKyAgICB0ID0gaHRtbC5ib2R5KGNsYXNzXz1Ob25lKQorICAgIHUg
PSB1bmljb2RlKHQpCisgICAgYXNzZXJ0IHUgPT0gJzxib2R5PjwvYm9keT4nCisKK2RlZiB0ZXN0
X2FsdGVybmF0aW5nX3N0eWxlKCk6CisgICAgYWx0ZXJuYXRpbmcgPSAoCisgICAgICAgIGh0bWwu
U3R5bGUoYmFja2dyb3VuZD0id2hpdGUiKSwKKyAgICAgICAgaHRtbC5TdHlsZShiYWNrZ3JvdW5k
PSJncmV5IiksCisgICAgKQorICAgIGNsYXNzIG15KGh0bWwpOgorICAgICAgICBjbGFzcyBsaSho
dG1sLmxpKToKKyAgICAgICAgICAgIGRlZiBzdHlsZShzZWxmKToKKyAgICAgICAgICAgICAgICBp
ID0gc2VsZi5wYXJlbnQuaW5kZXgoc2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm4gYWx0ZXJu
YXRpbmdbaSUyXQorICAgICAgICAgICAgc3R5bGUgPSBwcm9wZXJ0eShzdHlsZSkKKworICAgIHgg
PSBteS51bCgKKyAgICAgICAgICAgIG15LmxpKCJoZWxsbyIpLAorICAgICAgICAgICAgbXkubGko
IndvcmxkIiksCisgICAgICAgICAgICBteS5saSgiNDIiKSkKKyAgICB1ID0gdW5pY29kZSh4KQor
ICAgIGFzc2VydCB1ID09ICgnPHVsPjxsaSBzdHlsZT0iYmFja2dyb3VuZDogd2hpdGUiPmhlbGxv
PC9saT4nCisgICAgICAgICAgICAgICAgICAgICAnPGxpIHN0eWxlPSJiYWNrZ3JvdW5kOiBncmV5
Ij53b3JsZDwvbGk+JworICAgICAgICAgICAgICAgICAgICAgJzxsaSBzdHlsZT0iYmFja2dyb3Vu
ZDogd2hpdGUiPjQyPC9saT4nCisgICAgICAgICAgICAgICAgICc8L3VsPicpCisKK2RlZiB0ZXN0
X3NpbmdsZXRvbigpOgorICAgIGggPSBodG1sLmhlYWQoaHRtbC5saW5rKGhyZWY9ImZvbyIpKQor
ICAgIGFzc2VydCB1bmljb2RlKGgpID09ICc8aGVhZD48bGluayBocmVmPSJmb28iLz48L2hlYWQ+
JworCisgICAgaCA9IGh0bWwuaGVhZChodG1sLnNjcmlwdChzcmM9ImZvbyIpKQorICAgIGFzc2Vy
dCB1bmljb2RlKGgpID09ICc8aGVhZD48c2NyaXB0IHNyYz0iZm9vIj48L3NjcmlwdD48L2hlYWQ+
JworCitkZWYgdGVzdF9pbmxpbmUoKToKKyAgICBoID0gaHRtbC5kaXYoaHRtbC5zcGFuKCdmb28n
KSwgaHRtbC5zcGFuKCdiYXInKSkKKyAgICBhc3NlcnQgKGgudW5pY29kZShpbmRlbnQ9MikgPT0K
KyAgICAgICAgICAgICc8ZGl2PjxzcGFuPmZvbzwvc3Bhbj48c3Bhbj5iYXI8L3NwYW4+PC9kaXY+
JykKKworZGVmIHRlc3Rfb2JqZWN0X3RhZ3MoKToKKyAgICBvID0gaHRtbC5vYmplY3QoaHRtbC5v
YmplY3QoKSkKKyAgICBhc3NlcnQgby51bmljb2RlKGluZGVudD0wKSA9PSAnPG9iamVjdD48b2Jq
ZWN0Pjwvb2JqZWN0Pjwvb2JqZWN0PicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTU3YThlYTE5MmY1MGUyNWJlYTQ3MTRmMTFkYmZhNjNlOGIxYzcyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L19faW5pdF9fLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9idWlsdGluLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3Qv
dGVzdF9lcnJvci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfcHlfaW1wb3J0cy5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3Rfc3RkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3Qv
dGVzdF94bWxnZW4ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWMyYmYyZmFj
Y2MyYTg1NjVhZGU5NjdhM2ZhNzMxYmQ2ZDhmNmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGVzdGluZy9jb25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90b3guaW5pIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwMTY2MWNmOGUyMjcyNDdhN2QwZTU0Y2UwNmFlMGM1
OTFiNGJkMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3RveC5pbmkKQEAgLTAsMCArMSwz
MyBAQAorW3RveF0KK2Vudmxpc3Q9cHl7MjcsMzQsMzUsMzZ9LXB5dGVzdHsyOSwzMCwzMX0KKwor
W3Rlc3RlbnZdCitjaGFuZ2VkaXI9dGVzdGluZworY29tbWFuZHM9CisgICAgcGlwIGluc3RhbGwg
LVUgLi4gIyBoYW5kZSB0aGUgaW5zdGFsbCBvcmRlciBmYWxsb3V0IHNpbmNlIHB5dGVzdCBkZXBl
bmRzIG9uIHBpcAorCQorCXB5LnRlc3QgLS1jb25mY3V0ZGlyPS4uIC1yZnN4WCAtLWp1bml0eG1s
PXtlbnZsb2dkaXJ9L2p1bml0LXtlbnZuYW1lfS54bWwgW10KK2RlcHM9CisJcHl0ZXN0Mjk6IHB5
dGVzdH49Mi45LjAKKwlweXRlc3QzMDogcHl0ZXN0fj0zLjAuMAorCXB5dGVzdDMxOiBweXRlc3R+
PTMuMS4wCisKK1t0ZXN0ZW52OnB5MjcteGRpc3RdCitiYXNlcHl0aG9uPXB5dGhvbjIuNworZGVw
cz0KKyAgICBweXRlc3R+PTIuOS4wCisgICAgcHl0ZXN0LXhkaXN0PD0xLjE2LjAKK2NvbW1hbmRz
PQorICBwaXAgaW5zdGFsbCAtVSAuLiAjIGhhbmRlIHRoZSBpbnN0YWxsIG9yZGVyIGZhbGxvdXQg
c2luY2UgcHl0ZXN0IGRlcGVuZHMgb24gcGlwCisgIHB5LnRlc3QgLW4zIC1yZnN4WCAtLWNvbmZj
dXRkaXI9Li4gLS1ydW5zbG93dGVzdHMgXAorICAgICAgICAtLWp1bml0eG1sPXtlbnZsb2dkaXJ9
L2p1bml0LXtlbnZuYW1lfS54bWwgW10KKworW3Rlc3RlbnY6anl0aG9uXQorY2hhbmdlZGlyPXRl
c3RpbmcKK2NvbW1hbmRzPQorICAgIHtlbnZweXRob259IC1tIHBpcCBpbnN0YWxsIC1VIC4uICMg
aGFuZGUgdGhlIGluc3RhbGwgb3JkZXIgZmFsbG91dCBzaW5jZSBweXRlc3QgZGVwZW5kcyBvbiBw
aXAKKyAgICB7ZW52cHl0aG9ufSAtbSBweXRlc3QgLS1jb25mY3V0ZGlyPS4uIC1yZnN4WCAtLWp1
bml0eG1sPXtlbnZsb2dkaXJ9L2p1bml0LXtlbnZuYW1lfTAueG1sIHtwb3NhcmdzOmlvXyBjb2Rl
fQorCitbcHl0ZXN0XQorcnN5bmNkaXJzID0gY29uZnRlc3QucHkgcHkgZG9jIHRlc3RpbmcKK2Fk
ZG9wdHMgPSAtcmEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NjdiM2Y0ZjdkOTI5YzgwNjI4ZGJiY2EzNzEy
NTBkYTIxMmI1NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3czYy1pbXBvcnQubG9nCkBA
IC0wLDAgKzEsMjYgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKwor
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1By
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQVVUSE9SUworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdF
TE9HCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9NQU5JRkVTVC5pbgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvUkVB
RE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvYXBwdmV5b3IueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9jb25mdGVzdC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvc2V0dXAuY2ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9zZXR1cC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdG94LmluaQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExBVEUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJjYmIxNmZjMzUxZGU3
YjdjZTcyYzI4YzBlN2IzMzZlYWRjNGM5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
Ly5naXRodWIvSVNTVUVfVEVNUExBVEUubWQKQEAgLTAsMCArMSw4IEBACitUaGFua3MgZm9yIHN1
Ym1pdHRpbmcgYW4gaXNzdWUhCisKK0hlcmUncyBhIHF1aWNrIGNoZWNrbGlzdCBpbiB3aGF0IHRv
IGluY2x1ZGU6CisKKy0gWyBdIEluY2x1ZGUgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUg
YnVnIG9yIHN1Z2dlc3Rpb24KKy0gWyBdIGBwaXAgbGlzdGAgb2YgdGhlIHZpcnR1YWwgZW52aXJv
bm1lbnQgeW91IGFyZSB1c2luZworLSBbIF0gcHl0ZXN0IGFuZCBvcGVyYXRpbmcgc3lzdGVtIHZl
cnNpb25zCistIFsgXSBNaW5pbWFsIGV4YW1wbGUgaWYgcG9zc2libGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
LmdpdGh1Yi9QVUxMX1JFUVVFU1RfVEVNUExBVEUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY5ZmMxOTlmNTlm
ZGU4OTU0YjBhZmU2NDg2NGUzMTRhZTRkNjU4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCkBAIC0wLDAgKzEsMTUgQEAKK1Ro
YW5rcyBmb3Igc3VibWl0dGluZyBhIFBSLCB5b3VyIGNvbnRyaWJ1dGlvbiBpcyByZWFsbHkgYXBw
cmVjaWF0ZWQhCisKK0hlcmUncyBhIHF1aWNrIGNoZWNrbGlzdCB0aGF0IHNob3VsZCBiZSBwcmVz
ZW50IGluIFBSczoKKworLSBbIF0gQWRkIGEgbmV3IG5ld3MgZnJhZ21lbnQgaW50byB0aGUgY2hh
bmdlbG9nIGZvbGRlcgorICAqIG5hbWUgaXQgYCRpc3N1ZV9pZC4kdHlwZWAgZm9yIGV4YW1wbGUg
KDU4OC5idWcpCisgICogaWYgeW91IGRvbid0IGhhdmUgYW4gaXNzdWVfaWQgY2hhbmdlIGl0IHRv
IHRoZSBwciBpZCBhZnRlciBjcmVhdGluZyB0aGUgcHIKKyAgKiBlbnN1cmUgdHlwZSBpcyBvbmUg
b2YgYHJlbW92YWxgLCBgZmVhdHVyZWAsIGBidWdmaXhgLCBgdmVuZG9yYCwgYGRvY2Agb3IgYHRy
aXZpYWxgCisgICogTWFrZSBzdXJlIHRvIHVzZSBmdWxsIHNlbnRlbmNlcyB3aXRoIGNvcnJlY3Qg
Y2FzZSBhbmQgcHVuY3R1YXRpb24sIGZvciBleGFtcGxlOiAiRml4IGlzc3VlIHdpdGggbm9uLWFz
Y2lpIGNvbnRlbnRzIGluIGRvY3Rlc3QgdGV4dCBmaWxlcy4iCistIFsgXSBUYXJnZXQ6IGZvciBg
YnVnZml4YCwgYHZlbmRvcmAsIGBkb2NgIG9yIGB0cml2aWFsYCBmaXhlcywgdGFyZ2V0IGBtYXN0
ZXJgOyBmb3IgcmVtb3ZhbHMgb3IgZmVhdHVyZXMgdGFyZ2V0IGBmZWF0dXJlc2A7CistIFsgXSBN
YWtlIHN1cmUgdG8gaW5jbHVkZSByZWFzb25hYmxlIHRlc3RzIGZvciB5b3VyIGNoYW5nZSBpZiBu
ZWNlc3NhcnkKKworVW5sZXNzIHlvdXIgY2hhbmdlIGlzIGEgdHJpdmlhbCBvciBhIGRvY3VtZW50
YXRpb24gZml4IChlLmcuLCAgYSB0eXBvIG9yIHJld29yZCBvZiBhIHNtYWxsIHNlY3Rpb24pIHBs
ZWFzZToKKworLSBbIF0gQWRkIHlvdXJzZWxmIHRvIGBBVVRIT1JTYCwgaW4gYWxwaGFiZXRpY2Fs
IG9yZGVyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FkODZjZTA3
MDNhNjg0NDZkNTkwMDg1Mjk4MTI4NzA4OTUwZjFkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRo
dWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9BVVRI
T1JTIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvQVVUSE9SUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGFlNmFhNDNhYjA3M2RiMjEy
NjBlNWQzMDRlNDA3NDYwOTc2Yjk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVU
SE9SUwpAQCAtMCwwICsxLDE4OSBAQAorSG9sZ2VyIEtyZWtlbCwgaG9sZ2VyIGF0IG1lcmxpbnV4
IGV1CittZXJsaW51eCBHbWJILCBHZXJtYW55LCBvZmZpY2UgYXQgbWVybGludXggZXUKKworQ29u
dHJpYnV0b3JzIGluY2x1ZGU6OgorCitBYmRlYWxpIEpLCitBYmhpamVldCBLYXN1cmRlCitBaG4g
S2ktV29vaworQWxleGFuZGVyIEpvaG5zb24KK0FsZXhlaSBLb3psZW5vaworQW5hdG9seSBCdWJl
bmtvZmYKK0FuZHJhcyBUaW0KK0FuZHJlYXMgWmVpZGxlcgorQW5kcnplaiBPc3Ryb3dza2kKK0Fu
ZHkgRnJlZWxhbmQKK0FudGhvbiB2YW4gZGVyIE5ldXQKK0FudGhvbnkgU290dGlsZQorQW50b255
IExlZQorQXJtaW4gUmlnbworQXJvbiBDdXJ6b24KK0F2aXYgUGFsaXZvZGEKK0Jhcm5leSBHYWxl
CitCZW4gV2ViYgorQmVuamFtaW4gUGV0ZXJzb24KK0Jlcm5hcmQgUHJhdHoKK0JvYiBJcHBvbGl0
bworQnJpYW4gRG9yc2V5CitCcmlhbiBPa2tlbgorQnJpYW5uYSBMYXVnaGVyCitCcnVubyBPbGl2
ZWlyYQorQ2FsIExlZW1pbmcKK0NhcmwgRnJpZWRyaWNoIEJvbHoKK0Nlcmlkd2VuCitDaGFybGVz
IENsb3VkCitDaGFybmppdCBTaU5HSCAoQ0NTSikKK0NocmlzIExhbWIKK0NocmlzdGlhbiBCb2Vs
c2VuCitDaHJpc3RpYW4gVGhldW5lcnQKK0NocmlzdGlhbiBUaXNtZXIKK0NocmlzdG9waGVyIEdp
bGxpbmcKK0RhbmllbCBHcmFuYQorRGFuaWVsIEhhaGxlcgorRGFuaWVsIE51cmkKK0RhbmllbCBX
YW5kc2NobmVpZGVyCitEYW5pZWxsZSBKZW5raW5zCitEYXZlIEh1bnQKK0RhdmlkIETDrWF6LUJh
cnF1ZXJvCitEYXZpZCBNb2hyCitEYXZpZCBWaWVycmEKK0Rhdy1SYW4gTGlvdQorRGVuaXMgS2ly
aXNvdgorRGllZ28gUnVzc28KK0RtaXRyeSBEeWdhbG8KK0RtaXRyeSBQcmlieXNoCitEdW5jYW4g
QmV0dHMKK0VkaXNvbiBHdXN0YXZvIE11ZW56CitFZG9hcmRvIEJhdGluaQorRWR1YXJkbyBTY2hl
dHRpbm8KK0VsaSBCb3lhcnNraQorRWxpemF2ZXRhIFNoYXNoa292YQorRW5kcmUgR2FsYWN6aQor
RXJpYyBIdW5zYmVyZ2VyCitFcmljIFNpZWdlcm1hbgorRXJpayBNLiBCcmF5CitGZW5nIE1hCitG
bG9yaWFuIEJydWhpbgorRmxvcmlzIEJydXlub29naGUKK0dhYnJpZWwgUmVpcworR2VvcmdlIEt1
c3N1bW90bworR2Vvcmd5IER5dWxkaW4KK0dyYWhhbSBIb3JsZXIKK0dyZWcgUHJpY2UKK0dyaWcg
R2hlb3JnaGl1CitHcmlnb3JpaSBFcmVtZWV2IChidWR1bGlhbmluKQorR3VpZG8gV2VzZG9ycAor
SGFyYWxkIEFybWluIE1hc3NhCitIdWdvIHZhbiBLZW1lbmFkZQorSHVpIFdhbmcgKGNvbGRuaWdo
dCkKK0lhbiBCaWNraW5nCitKYWFwIEJyb2VraHVpemVuCitKYW4gQmFsc3RlcgorSmFubmUgVmFu
aGFsYQorSmFzb24gUi4gQ29vbWJzCitKYXZpZXIgRG9taW5nbyBDYW5zaW5vCitKYXZpZXIgUm9t
ZXJvCitKZWZmIFdpZG1hbgorSm9obiBFZGRpZSBBeXNvbgorSm9obiBUb3dsZXIKK0pvbiBTb25l
c2VuCitKb25hcyBPYnJpc3QKK0pvcmRhbiBHdXltb24KK0pvcmRhbiBNb2xkb3cKK0pvc2h1YSBC
cm9uc29uCitKdXJrbyBHb3Nwb2RuZXRpxIcKK0p1c3R5bmEgSmFuY3p5c3p5bgorS2FsZSBLdW5k
ZXJ0CitLYXRhcnp5bmEgSmFjaGltCitLZXZpbiBDb3gKK0tvZGkgQi4gQXJmZXIKK0xhd3JlbmNl
IE1pdGNoZWxsCitMZWUgS2FtZW50c2t5CitMZXYgTWF4aW1vdgorTGxhbmR5IFJpdmVyb24gRGVs
IFJpc2NvCitMb2ljIEVzdGV2ZQorTHVrYXMgQmVkbmFyCitMdWtlIE11cnBoeQorTWFjaWVrIEZp
amFsa293c2tpCitNYWhvCitNYWlrIEZpZ3VyYQorTWFuZGVlcCBCaHV0YW5pCitNYW51ZWwgS3Jl
YmJlcgorTWFyYyBTY2hsYWljaAorTWFyY2luIEJhY2hyeQorTWFyayBBYnJhbW93aXR6CitNYXJr
dXMgVW50ZXJ3YWRpdHplcgorTWFydGlqbiBGYWFzc2VuCitNYXJ0aW4gQWx0bWF5ZXIKK01hcnRp
biBLLiBTY2hlcmVyCitNYXJ0aW4gUHJ1c3NlCitNYXRoaWV1IENsYWJhdXQKK01hdHQgQmFjaG1h
bm4KK01hdHQgRHVjaworTWF0dCBXaWxsaWFtcworTWF0dGhpYXMgSGFmbmVyCitNYXhpbSBGaWxp
cGVua28KK21ieXQKK01pY2hhZWwgQXF1aWxpbmEKK01pY2hhZWwgQmlydHdlbGwKK01pY2hhZWwg
RHJvZXR0Ym9vbQorTWljaGFlbCBTZWlmZXJ0CitNaWNoYWwgV2Fqc3pjenVrCitNaWhhaSBDYXBv
dMSDCitNaWtlIEx1bmR5CitOYXRoYW5pZWwgV2Fpc2Jyb3QKK05lZCBCYXRjaGVsZGVyCitOZXZl
biBNdW5kYXIKK05pY29sYXMgRGVsYWJ5CitPbGVnIFBpZHNhZG55aQorT2xpdmVyIEJlc3R3YWx0
ZXIKK09tYXIgS29obAorT21lciBIYWRhcmkKK1BhdHJpY2sgSGF5ZXMKK1Bhd2XFgiBBZGFtY3ph
aworUGlldGVyIE11bGRlcgorUGlvdHIgQmFuYXN6a2lld2ljegorUHVueWFzaGxva2EgQmlzd2Fs
CitRdWVudGluIFByYWRldAorUmFsZiBTY2htaXR0CitSYW4gQmVuaXRhCitSYXBoYWVsIFBpZXJ6
aW5hCitSYXF1ZWwgQWxlZ3JlCitSYXZpIENoYW5kcmEKK1JvYmVydG8gUG9sbGkKK1JvbWFpbiBE
b3JndWVpbAorUm9tYW4gQm9sc2hha292CitSb25ueSBQZmFubnNjaG1pZHQKK1Jvc3MgTGF3bGV5
CitSdXNzZWwgV2luZGVyCitSeWFuIFdvb2RlbgorU2FtdWVsIERpb24tR2lyYXJkZWF1CitTYW11
ZWxlIFBlZHJvbmkKK1NlZ2V2IEZpbmVyCitTaW1vbiBHb21pemVsagorU2t5bGFyIERvd25lcwor
U3Jpbml2YXMgUmVkZHkgVGhhdGlwYXJ0aHkKK1N0ZWZhbiBGYXJtYmF1ZXIKK1N0ZWZhbiBaaW1t
ZXJtYW5uCitTdGVmYW5vIFRhc2NoaW5pCitTdGVmZmVuIEFsbG5lcgorU3RlcGhhbiBPYmVybWFu
bgorVGFyY2lzaW8gRmlzY2hlcgorVGFyZXEgQWxheWFuCitUZWQgWGlhbworVGhvbWFzIEdyYWlu
Z2VyCitUaG9tYXMgSGlzY2gKK1RvbSBEYWx0b24KK1RvbSBWaW5lcgorVHJldm9yIEJla29sYXkK
K1R5bGVyIEdvb2RsZXQKK1Zhc2lseSBLdXpuZXRzb3YKK1ZpY3RvciBVcmlhcnRlCitWaWRhciBU
LiBGYXVza2UKK1ZpdGFseSBMYXNobWFub3YKK1ZsYWQgRHJhZ29zCitXb3V0ZXIgdmFuIEFja29v
eQorWHVhbiBMdW9uZworWHVlY29uZyBMaWFvCitab2x0w6FuIE3DoXTDqQorUm9sYW5kIFB1bnRh
aWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSEFOR0VMT0cucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Q0hBTkdFTE9HLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTdiZmFmMDQ0MTVkODM1YjNhZjI5MDliMmFjYjA2
MWZhMDA0MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdFTE9HLnJzdApA
QCAtMCwwICsxLDQxOTQgQEAKKy4uIAorICAgIFlvdSBzaG91bGQgKk5PVCogYmUgYWRkaW5nIG5l
dyBjaGFuZ2UgbG9nIGVudHJpZXMgdG8gdGhpcyBmaWxlLCB0aGlzCisgICAgZmlsZSBpcyBtYW5h
Z2VkIGJ5IHRvd25jcmllci4gWW91ICptYXkqIGVkaXQgcHJldmlvdXMgY2hhbmdlIGxvZ3MgdG8K
KyAgICBmaXggcHJvYmxlbXMgbGlrZSB0eXBvIGNvcnJlY3Rpb25zIG9yIHN1Y2guCisgICAgVG8g
YWRkIGEgbmV3IGNoYW5nZSBsb2cgZW50cnksIHBsZWFzZSBzZWUKKyAgICBodHRwczovL3BpcC5w
eXBhLmlvL2VuL2xhdGVzdC9kZXZlbG9wbWVudC8jYWRkaW5nLWEtbmV3cy1lbnRyeQorICAgIHdl
IG5hbWVkIHRoZSBuZXdzIGZvbGRlciBjaGFuZ2Vsb2cKKworLi4gdG93bmNyaWVyIHJlbGVhc2Ug
bm90ZXMgc3RhcnQKKworUHl0ZXN0IDMuMy4wICgyMDE3LTExLTIzKQorPT09PT09PT09PT09PT09
PT09PT09PT09PQorCitEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy0gUHl0ZXN0IG5vIGxvbmdlciBzdXBwb3J0cyBQeXRob24gKioyLjYqKiBh
bmQgKiozLjMqKi4gVGhvc2UgUHl0aG9uIHZlcnNpb25zCisgIGFyZSBFT0wgZm9yIHNvbWUgdGlt
ZSBub3cgYW5kIGluY3VyIG1haW50ZW5hbmNlIGFuZCBjb21wYXRpYmlsaXR5IGNvc3RzIG9uCisg
IHRoZSBweXRlc3QgY29yZSB0ZWFtLCBhbmQgZm9sbG93aW5nIHVwIHdpdGggdGhlIHJlc3Qgb2Yg
dGhlIGNvbW11bml0eSB3ZQorICBkZWNpZGVkIHRoYXQgdGhleSB3aWxsIG5vIGxvbmdlciBiZSBz
dXBwb3J0ZWQgc3RhcnRpbmcgb24gdGhpcyB2ZXJzaW9uLiBVc2VycworICB3aGljaCBzdGlsbCBy
ZXF1aXJlIHRob3NlIHZlcnNpb25zIHNob3VsZCBwaW4gcHl0ZXN0IHRvIGBgPDMuM2BgLiAoYCMy
ODEyCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MTI+
YF8pCisKKy0gUmVtb3ZlIGludGVybmFsIGBgX3ByZWxvYWRwbHVnaW5zKClgYCBmdW5jdGlvbi4g
VGhpcyByZW1vdmFsIGlzIHBhcnQgb2YgdGhlCisgIGBgcHl0ZXN0X25hbWVzcGFjZSgpYGAgaG9v
ayBkZXByZWNhdGlvbi4gKGAjMjYzNgorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yNjM2PmBfKQorCistIEludGVybmFsbHkgY2hhbmdlIGBgQ2FsbFNwZWMy
YGAgdG8gaGF2ZSBhIGxpc3Qgb2YgbWFya3MgaW5zdGVhZCBvZiBhIGJyb2tlbgorICBtYXBwaW5n
IG9mIGtleXdvcmRzLiBUaGlzIHJlbW92ZXMgdGhlIGtleXdvcmRzIGF0dHJpYnV0ZSBvZiB0aGUg
aW50ZXJuYWwKKyAgYGBDYWxsU3BlYzJgYCBjbGFzcy4gKGAjMjY3MgorICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjcyPmBfKQorCistIFJlbW92ZSBQYXJh
bWV0ZXJTZXQuZGVwcmVjYXRlZF9hcmdfZGljdCAtIGl0cyBub3QgYSBwdWJsaWMgYXBpIGFuZCB0
aGUgbGFjaworICBvZiB0aGUgdW5kZXJzY29yZSB3YXMgYSBuYW1pbmcgZXJyb3IuIChgIzI2NzUK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjY3NT5gXykK
KworLSBSZW1vdmUgdGhlIGludGVybmFsIG11bHRpLXR5cGVkIGF0dHJpYnV0ZSBgYE5vZGUuX2V2
YWxza2lwYGAgYW5kIHJlcGxhY2UgaXQKKyAgd2l0aCB0aGUgYm9vbGVhbiBgYE5vZGUuX3NraXBw
ZWRfYnlfbWFya2BgLiAoYCMyNzY3CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI3Njc+YF8pCisKKy0gVGhlIGBgcGFyYW1zYGAgbGlzdCBwYXNzZWQgdG8g
YGBweXRlc3QuZml4dHVyZWBgIGlzIG5vdyBmb3IKKyAgYWxsIGVmZmVjdHMgY29uc2lkZXJlZCBp
bW11dGFibGUgYW5kIGZyb3plbiBhdCB0aGUgbW9tZW50IG9mIHRoZSBgYHB5dGVzdC5maXh0dXJl
YGAKKyAgY2FsbC4gUHJldmlvdXNseSB0aGUgbGlzdCBjb3VsZCBiZSBjaGFuZ2VkIGJlZm9yZSB0
aGUgZmlyc3QgaW52b2NhdGlvbiBvZiB0aGUgZml4dHVyZQorICBhbGxvd2luZyBmb3IgYSBmb3Jt
IG9mIGR5bmFtaWMgcGFyYW1ldHJpemF0aW9uIChmb3IgZXhhbXBsZSwgdXBkYXRlZCBmcm9tIGNv
bW1hbmQtbGluZSBvcHRpb25zKSwKKyAgYnV0IHRoaXMgd2FzIGFuIHVud2FudGVkIGltcGxlbWVu
dGF0aW9uIGRldGFpbCB3aGljaCBjb21wbGljYXRlZCB0aGUgaW50ZXJuYWxzIGFuZCBwcmV2ZW50
ZWQKKyAgc29tZSBpbnRlcm5hbCBjbGVhbnVwLiBTZWUgaXNzdWUgYCMyOTU5IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI5NTk+YF8KKyAgZm9yIGRldGFpbHMg
YW5kIGEgcmVjb21tZW5kZWQgd29ya2Fyb3VuZC4KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0g
YGBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcmBgIGhvb2sgY2FuIG5vdyByZWNlaXZlIGEg
YGByZXF1ZXN0YGAKKyAgYXJndW1lbnQuIChgIzIxMjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjEyND5gXykKKworLSBSZXBsYWNlIHRoZSBvbGQgaW50cm9z
cGVjdGlvbiBjb2RlIGluIGNvbXBhdC5weSB0aGF0IGRldGVybWluZXMgdGhlIGF2YWlsYWJsZQor
ICBhcmd1bWVudHMgb2YgZml4dHVyZXMgd2l0aCBpbnNwZWN0LnNpZ25hdHVyZSBvbiBQeXRob24g
MyBhbmQKKyAgZnVuY3NpZ3Muc2lnbmF0dXJlIG9uIFB5dGhvbiAyLiBUaGlzIHNob3VsZCByZXNw
ZWN0IGBgX19zaWduYXR1cmVfX2BgCisgIGRlY2xhcmF0aW9ucyBvbiBmdW5jdGlvbnMuIChgIzIy
NjcKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjI2Nz5g
XykKKworLSBSZXBvcnQgdGVzdHMgd2l0aCBnbG9iYWwgYGBweXRlc3RtYXJrYGAgdmFyaWFibGUg
b25seSBvbmNlLiAoYCMyNTQ5CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzI1NDk+YF8pCisKKy0gTm93IHB5dGVzdCBkaXNwbGF5cyB0aGUgdG90YWwgcHJv
Z3Jlc3MgcGVyY2VudGFnZSB3aGlsZSBydW5uaW5nIHRlc3RzLiBUaGUKKyAgcHJldmlvdXMgb3V0
cHV0IHN0eWxlIGNhbiBiZSBzZXQgYnkgY29uZmlndXJpbmcgdGhlIGBgY29uc29sZV9vdXRwdXRf
c3R5bGVgYAorICBzZXR0aW5nIHRvIGBgY2xhc3NpY2BgLiAoYCMyNjU3IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NTc+YF8pCisKKy0gTWF0Y2ggYGB3YXJu
c2BgIHNpZ25hdHVyZSB0byBgYHJhaXNlc2BgIGJ5IGFkZGluZyBgYG1hdGNoYGAga2V5d29yZC4g
KGAjMjcwOAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
NzA4PmBfKQorCistIFB5dGVzdCBub3cgY2FwdHVyZXMgYW5kIGRpc3BsYXlzIG91dHB1dCBmcm9t
IHRoZSBzdGFuZGFyZCBgbG9nZ2luZ2AgbW9kdWxlLgorICBUaGUgdXNlciBjYW4gY29udHJvbCB0
aGUgbG9nZ2luZyBsZXZlbCB0byBiZSBjYXB0dXJlZCBieSBzcGVjaWZ5aW5nIG9wdGlvbnMKKyAg
aW4gYGBweXRlc3QuaW5pYGAsIHRoZSBjb21tYW5kIGxpbmUgYW5kIGFsc28gZHVyaW5nIGluZGl2
aWR1YWwgdGVzdHMgdXNpbmcKKyAgbWFya2Vycy4gQWxzbywgYSBgYGNhcGxvZ2BgIGZpeHR1cmUg
aXMgYXZhaWxhYmxlIHRoYXQgZW5hYmxlcyB1c2VycyB0byB0ZXN0CisgIHRoZSBjYXB0dXJlZCBs
b2cgZHVyaW5nIHNwZWNpZmljIHRlc3RzIChzaW1pbGFyIHRvIGBgY2Fwc3lzYGAgZm9yIGV4YW1w
bGUpLgorICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgYGxvZ2dpbmcgZG9j
cworICA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2xvZ2dpbmcuaHRtbD5gXy4g
VGhpcyBmZWF0dXJlIHdhcworICBpbnRyb2R1Y2VkIGJ5IG1lcmdpbmcgdGhlIHBvcHVsYXIgYHB5
dGVzdC1jYXRjaGxvZworICA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC1jYXRjaGxv
Zy8+YF8gcGx1Z2luLCB0aGFua3MgdG8gYFRob21hcyBIaXNjaAorICA8aHR0cHM6Ly9naXRodWIu
Y29tL3RoaXNjaD5gXy4gQmUgYWR2aXNlZCB0aGF0IGR1cmluZyB0aGUgbWVyZ2luZyB0aGUKKyAg
YmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbnRlcmZhY2Ugd2l0aCB0aGUgZGVmdW5jdCBgYHB5dGVz
dC1jYXB0dXJlbG9nYGAgaGFzCisgIGJlZW4gZHJvcHBlZC4gKGAjMjc5NCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzk0PmBfKQorCistIEFkZCBgYGFsbG93
X21vZHVsZV9sZXZlbGBgIGt3YXJnIHRvIGBgcHl0ZXN0LnNraXAoKWBgLCBlbmFibGluZyB0byBz
a2lwIHRoZQorICB3aG9sZSBtb2R1bGUuIChgIzI4MDggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjgwOD5gXykKKworLSBBbGxvdyBzZXR0aW5nIGBgZmlsZV9v
cl9kaXJgYCwgYGAtY2BgLCBhbmQgYGAtb2BgIGluIFBZVEVTVF9BRERPUFRTLiAoYCMyODI0Cisg
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MjQ+YF8pCisK
Ky0gUmV0dXJuIHN0ZG91dC9zdGRlcnIgY2FwdHVyZSByZXN1bHRzIGFzIGEgYGBuYW1lZHR1cGxl
YGAsIHNvIGBgb3V0YGAgYW5kCisgIGBgZXJyYGAgY2FuIGJlIGFjY2Vzc2VkIGJ5IGF0dHJpYnV0
ZS4gKGAjMjg3OQorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yODc5PmBfKQorCistIEFkZCBgYGNhcGZkYmluYXJ5YGAsIGEgdmVyc2lvbiBvZiBgYGNhcGZk
YGAgd2hpY2ggcmV0dXJucyBieXRlcyBmcm9tCisgIGBgcmVhZG91dGVycigpYGAuIChgIzI5MjMK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkyMz5gXykK
KworLSBBZGQgYGBjYXBzeXNiaW5hcnlgYCBhIHZlcnNpb24gb2YgYGBjYXBzeXNgYCB3aGljaCBy
ZXR1cm5zIGJ5dGVzIGZyb20KKyAgYGByZWFkb3V0ZXJyKClgYC4gKGAjMjkzNAorICA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yOTM0PmBfKQorCistIEltcGxl
bWVudCBmZWF0dXJlIHRvIHNraXAgYGBzZXR1cC5weWBgIGZpbGVzIHdoZW4gcnVuIHdpdGgKKyAg
YGAtLWRvY3Rlc3QtbW9kdWxlc2BgLiAoYCM1MDIKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTAyPmBfKQorCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisK
Ky0gUmVzdW1lIG91dHB1dCBjYXB0dXJpbmcgYWZ0ZXIgYGBjYXBzeXMvY2FwZmQuZGlzYWJsZWQo
KWBgIGNvbnRleHQgbWFuYWdlci4KKyAgKGAjMTk5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8xOTkzPmBfKQorCistIGBgcHl0ZXN0X2ZpeHR1cmVfc2V0dXBg
YCBhbmQgYGBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcmBgIGhvb2tzIGFyZSBub3cKKyAg
Y2FsbGVkIGZvciBhbGwgYGBjb25mdGVzdC5weWBgIGZpbGVzLiAoYCMyMTI0CisgIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxMjQ+YF8pCisKKy0gSWYgYW4g
ZXhjZXB0aW9uIGhhcHBlbnMgd2hpbGUgbG9hZGluZyBhIHBsdWdpbiwgcHl0ZXN0IG5vIGxvbmdl
ciBoaWRlcyB0aGUKKyAgb3JpZ2luYWwgdHJhY2ViYWNrLiBJbiBweXRob24yIGl0IHdpbGwgc2hv
dyB0aGUgb3JpZ2luYWwgdHJhY2ViYWNrIHdpdGggYSBuZXcKKyAgbWVzc2FnZSB0aGF0IGV4cGxh
aW5zIGluIHdoaWNoIHBsdWdpbi4gSW4gcHl0aG9uMyBpdCB3aWxsIHNob3cgMiBjYW5vbml6ZWQK
KyAgZXhjZXB0aW9ucywgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiB3aGlsZSBsb2FkaW5nIHRoZSBw
bHVnaW4gaW4gYWRkaXRpb24gdG8gYW4KKyAgZXhjZXB0aW9uIHRoYXQgUHlUZXN0IHRocm93cyBh
Ym91dCBsb2FkaW5nIGEgcGx1Z2luLiAoYCMyNDkxCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0OTE+YF8pCisKKy0gYGBjYXBzeXNgYCBhbmQgYGBjYXBm
ZGBgIGNhbiBub3cgYmUgdXNlZCBieSBvdGhlciBmaXh0dXJlcy4gKGAjMjcwOQorICA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzA5PmBfKQorCistIEludGVy
bmFsIGBgcHl0ZXN0ZXJgYCBwbHVnaW4gcHJvcGVybHkgZW5jb2RlcyBgYGJ5dGVzYGAgYXJndW1l
bnRzIHRvCisgIGBgdXRmLThgYC4gKGAjMjczOCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yNzM4PmBfKQorCistIGBgdGVzdGRpcmBgIG5vdyB1c2VzIHVzZSB0
aGUgc2FtZSBtZXRob2QgdXNlZCBieSBgYHRtcGRpcmBgIHRvIGNyZWF0ZSBpdHMKKyAgdGVtcG9y
YXJ5IGRpcmVjdG9yeS4gVGhpcyBjaGFuZ2VzIHRoZSBmaW5hbCBzdHJ1Y3R1cmUgb2YgdGhlIGBg
dGVzdGRpcmBgCisgIGRpcmVjdG9yeSBzbGlnaHRseSwgYnV0IHNob3VsZCBub3QgYWZmZWN0IHVz
YWdlIGluIG5vcm1hbCBzY2VuYXJpb3MgYW5kCisgIGF2b2lkcyBhIG51bWJlciBvZiBwb3RlbnRp
YWwgcHJvYmxlbXMuIChgIzI3NTEKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMjc1MT5gXykKKworLSBQeXRlc3Qgbm8gbG9uZ2VyIGNvbXBsYWlucyBhYm91
dCB3YXJuaW5ncyB3aXRoIHVuaWNvZGUgbWVzc2FnZXMgYmVpbmcKKyAgbm9uLWFzY2lpIGNvbXBh
dGlibGUgZXZlbiBmb3IgYXNjaWktY29tcGF0aWJsZSBtZXNzYWdlcy4gQXMgYSByZXN1bHQgb2Yg
dGhpcywKKyAgd2FybmluZ3Mgd2l0aCB1bmljb2RlIG1lc3NhZ2VzIGFyZSBjb252ZXJ0ZWQgZmly
c3QgdG8gYW4gYXNjaWkgcmVwcmVzZW50YXRpb24KKyAgZm9yIHNhZmV0eS4gKGAjMjgwOSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODA5PmBfKQorCistIENo
YW5nZSByZXR1cm4gdmFsdWUgb2YgcHl0ZXN0IGNvbW1hbmQgd2hlbiBgYC0tbWF4ZmFpbGBgIGlz
IHJlYWNoZWQgZnJvbQorICBgYDJgYCAoaW50ZXJydXB0ZWQpIHRvIGBgMWBgIChmYWlsZWQpLiAo
YCMyODQ1CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4
NDU+YF8pCisKKy0gRml4IGlzc3VlIGluIGFzc2VydGlvbiByZXdyaXRpbmcgd2hpY2ggY291bGQg
bGVhZCBpdCB0byByZXdyaXRlIG1vZHVsZXMgd2hpY2gKKyAgc2hvdWxkIG5vdCBiZSByZXdyaXR0
ZW4uIChgIzI5MzkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjkzOT5gXykKKworLSBIYW5kbGUgbWFya3Mgd2l0aG91dCBkZXNjcmlwdGlvbiBpbiBgYHB5
dGVzdC5pbmlgYC4gKGAjMjk0MgorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8yOTQyPmBfKQorCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gcHl0ZXN0IG5vdyBkZXBlbmRzIG9uIGBhdHRycyA8aHR0
cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2F0dHJzLz5gXyBmb3IgaW50ZXJuYWwKKyAgc3RydWN0dXJl
cyB0byBlYXNlIGNvZGUgbWFpbnRhaW5hYmlsaXR5LiAoYCMyNjQxCisgIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NDE+YF8pCisKKy0gUmVmYWN0b3JlZCBp
bnRlcm5hbCBQeXRob24gMi8zIGNvbXBhdGliaWxpdHkgY29kZSB0byB1c2UgYGBzaXhgYC4gKGAj
MjY0MgorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjQy
PmBfKQorCistIFN0b3AgdmVuZG9yaW5nIGBgcGx1Z2d5YGAgLSB3ZSdyZSBtaXNzaW5nIG91dCBv
biBpdHMgbGF0ZXN0IGNoYW5nZXMgZm9yIG5vdAorICBtdWNoIGJlbmVmaXQgKGAjMjcxOSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzE5PmBfKQorCistIElu
dGVybmFsIHJlZmFjdG9yOiBzaW1wbGlmeSBhc2NpaSBzdHJpbmcgZXNjYXBpbmcgYnkgdXNpbmcg
dGhlCisgIGJhY2tzbGFzaHJlcGxhY2UgZXJyb3IgaGFuZGxlciBpbiBuZXdlciBQeXRob24gMyB2
ZXJzaW9ucy4gKGAjMjczNAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8yNzM0PmBfKQorCistIFJlbW92ZSB1bm5lY2Vzc2FyeSBtYXJrIGV2YWx1YXRvciBp
biB1bml0dGVzdCBwbHVnaW4gKGAjMjc2NworICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yNzY3PmBfKQorCistIENhbGxzIHRvIGBgTWV0YWZ1bmMuYWRkY2Fs
bGBgIG5vdyBlbWl0IGEgZGVwcmVjYXRpb24gd2FybmluZy4gVGhpcyBmdW5jdGlvbgorICBpcyBz
Y2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBgYHB5dGVzdC00LjBgYC4gKGAjMjg3NgorICA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODc2PmBfKQorCistIElu
dGVybmFsIG1vdmUgb2YgdGhlIHBhcmFtZXRlcnNldCBleHRyYWN0aW9uIHRvIGEgbW9yZSBtYWlu
dGFpbmFibGUgcGxhY2UuCisgIChgIzI4NzcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMjg3Nz5gXykKKworLSBJbnRlcm5hbCByZWZhY3RvcmluZyB0byBzaW1w
bGlmeSBzY29wZSBub2RlIGxvb2t1cC4gKGAjMjkxMAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yOTEwPmBfKQorCistIENvbmZpZ3VyZSBgYHB5dGVzdGBg
IHRvIHByZXZlbnQgcGlwIGZyb20gaW5zdGFsbGluZyBweXRlc3QgaW4gdW5zdXBwb3J0ZWQKKyAg
UHl0aG9uIHZlcnNpb25zLiAoYCMyOTIyCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzI5MjI+YF8pCisKKworUHl0ZXN0IDMuMi41ICgyMDE3LTExLTE1KQor
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIFJl
bW92ZSBgYHB5PDEuNWBgIHJlc3RyaWN0aW9uIGZyb20gYGBweXRlc3RgYCBhcyB0aGlzIGNhbiBj
YXVzZSB2ZXJzaW9uCisgIGNvbmZsaWN0cyBpbiBzb21lIGluc3RhbGxhdGlvbnMuIChgIzI5MjYK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkyNj5gXykK
KworCitQeXRlc3QgMy4yLjQgKDIwMTctMTEtMTMpCis9PT09PT09PT09PT09PT09PT09PT09PT09
CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gRml4IHRoZSBidWcgd2hlcmUgcnVubmluZyB3
aXRoIGBgLS1weWFyZ3NgYCB3aWxsIHJlc3VsdCBpbiBpdGVtcyB3aXRoCisgIGVtcHR5IGBgcGFy
ZW50Lm5vZGVpZGBgIGlmIHJ1biBmcm9tIGEgZGlmZmVyZW50IHJvb3QgZGlyZWN0b3J5LiAoYCMy
Nzc1CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3NzU+
YF8pCisKKy0gRml4IGlzc3VlIHdpdGggYGBAcHl0ZXN0LnBhcmFtZXRyaXplYGAgaWYgYXJnbmFt
ZXMgd2FzIHNwZWNpZmllZCBhcyBrZXl3b3JkIGFyZ3VtZW50cy4KKyAgKGAjMjgxOSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODE5PmBfKQorCistIFN0cmlw
IHdoaXRlc3BhY2UgZnJvbSBtYXJrZXIgbmFtZXMgd2hlbiByZWFkaW5nIHRoZW0gZnJvbSBJTkkg
Y29uZmlnLiAoYCMyODU2CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI4NTY+YF8pCisKKy0gU2hvdyBmdWxsIGNvbnRleHQgb2YgZG9jdGVzdCBzb3VyY2Ug
aW4gdGhlIHB5dGVzdCBvdXRwdXQsIGlmIHRoZSBsaW5lIG51bWJlciBvZgorICBmYWlsZWQgZXhh
bXBsZSBpbiB0aGUgZG9jc3RyaW5nIGlzIDwgOS4gKGAjMjg4MgorICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODgyPmBfKQorCistIE1hdGNoIGZpeHR1cmUg
cGF0aHMgYWdhaW5zdCBhY3R1YWwgcGF0aCBzZWdtZW50cyBpbiBvcmRlciB0byBhdm9pZCBtYXRj
aGluZyBmb2xkZXJzIHdoaWNoIHNoYXJlIGEgcHJlZml4LgorICAoYCMyODM2IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MzY+YF8pCisKK0ltcHJvdmVkIERv
Y3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJbnRyb2R1Y2UgYSBkZWRp
Y2F0ZWQgc2VjdGlvbiBhYm91dCBjb25mdGVzdC5weS4gKGAjMTUwNQorICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTA1PmBfKQorCistIEV4cGxpY2l0bHkg
bWVudGlvbiBgYHhwYXNzYGAgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgYGB4ZmFpbGBgLiAoYCMx
OTk3CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE5OTc+
YF8pCisKKy0gQXBwZW5kIGV4YW1wbGUgZm9yIHB5dGVzdC5wYXJhbSBpbiB0aGUgZXhhbXBsZS9w
YXJhbWV0cml6ZSBkb2N1bWVudC4gKGAjMjY1OAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjU4PmBfKQorCistIENsYXJpZnkgbGFuZ3VhZ2Ugb2YgcHJv
cG9zYWwgZm9yIGZpeHR1cmVzIHBhcmFtZXRlcnMgKGAjMjg5MworICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODkzPmBfKQorCistIExpc3QgcHl0aG9uIDMu
NiBpbiB0aGUgZG9jdW1lbnRlZCBzdXBwb3J0ZWQgdmVyc2lvbnMgaW4gdGhlIGdldHRpbmcgc3Rh
cnRlZAorICBkb2N1bWVudC4gKGAjMjkwMyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yOTAzPmBfKQorCistIENsYXJpZnkgdGhlIGRvY3VtZW50YXRpb24gb2Yg
YXZhaWxhYmxlIGZpeHR1cmUgc2NvcGVzLiAoYCM1MzgKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTM4PmBfKQorCistIEFkZCBkb2N1bWVudGF0aW9uIGFi
b3V0IHRoZSBgYHB5dGhvbiAtbSBweXRlc3RgYCBpbnZvY2F0aW9uIGFkZGluZyB0aGUKKyAgY3Vy
cmVudCBkaXJlY3RvcnkgdG8gc3lzLnBhdGguIChgIzkxMQorICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy85MTE+YF8pCisKKworUHl0ZXN0IDMuMi4zICgyMDE3
LTEwLTAzKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0t
LQorCistIEZpeCBjcmFzaCBpbiB0YWIgY29tcGxldGlvbiB3aGVuIG5vIHByZWZpeCBpcyBnaXZl
bi4gKGAjMjc0OAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yNzQ4PmBfKQorCistIFRoZSBlcXVhbGl0eSBjaGVja2luZyBmdW5jdGlvbiAoYGBfX2VxX19g
YCkgb2YgYGBNYXJrRGVjb3JhdG9yYGAgcmV0dXJucworICBgYEZhbHNlYGAgaWYgb25lIG9iamVj
dCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYGBNYXJrRGVjb3JhdG9yYGAuIChgIzI3NTgKKyAgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjc1OD5gXykKKworLSBX
aGVuIHJ1bm5pbmcgYGBweXRlc3QgLS1maXh0dXJlcy1wZXItdGVzdGBgOiBkb24ndCBjcmFzaCBp
ZiBhbiBpdGVtIGhhcyBubworICBfZml4dHVyZWluZm8gYXR0cmlidXRlIChlLmcuIGRvY3Rlc3Rz
KSAoYCMyNzg4CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzI3ODg+YF8pCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIEluIGhlbHAgdGV4dCBvZiBgYC1rYGAgb3B0aW9uLCBhZGQgZXhhbXBsZSBvZiB1
c2luZyBgYG5vdGBgIHRvIG5vdCBzZWxlY3QKKyAgY2VydGFpbiB0ZXN0cyB3aG9zZSBuYW1lcyBt
YXRjaCB0aGUgcHJvdmlkZWQgZXhwcmVzc2lvbi4gKGAjMTQ0MgorICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDQyPmBfKQorCistIEFkZCBub3RlIGluIGBg
cGFyYW1ldHJpemUucnN0YGAgYWJvdXQgY2FsbGluZyBgYG1ldGFmdW5jLnBhcmFtZXRyaXplYGAK
KyAgbXVsdGlwbGUgdGltZXMuIChgIzE1NDggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMTU0OD5gXykKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIFNldCBgYHhmYWlsX3N0cmljdD1UcnVlYGAgaW4g
cHl0ZXN0J3Mgb3duIHRlc3Qgc3VpdGUgdG8gY2F0Y2ggZXhwZWN0ZWQKKyAgZmFpbHVyZXMgYXMg
c29vbiBhcyB0aGV5IHN0YXJ0IHRvIHBhc3MuIChgIzI3MjIKKyAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjcyMj5gXykKKworLSBGaXggdHlwbyBpbiBleGFt
cGxlIG9mIHBhc3NpbmcgYSBjYWxsYWJsZSB0byBtYXJrZXJzIChpbiBleGFtcGxlL21hcmtlcnMu
cnN0KQorICAoYCMyNzY1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI3NjU+YF8pCisKKworUHl0ZXN0IDMuMi4yICgyMDE3LTA5LTA2KQorPT09PT09PT09PT09
PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIENhbGxpbmcgdGhlIGRl
cHJlY2F0ZWQgYHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKClgIG5vdyBzaG93cyB0aGUgc291cmNl
IG9mCisgIHRoZSBjYWxsLiAoYCMyNjgxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI2ODE+YF8pCisKKy0gQWxsb3cgdGVzdHMgZGVjbGFyZWQgYXMgYGBAc3Rh
dGljbWV0aG9kYGAgdG8gdXNlIGZpeHR1cmVzLiAoYCMyNjk5CisgIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2OTk+YF8pCisKKy0gRml4ZWQgZWRnZS1jYXNl
IGR1cmluZyBjb2xsZWN0aW9uOiBhdHRyaWJ1dGVzIHdoaWNoIHJhaXNlZCBgYHB5dGVzdC5mYWls
YGAKKyAgd2hlbiBhY2Nlc3NlZCB3b3VsZCBhYm9ydCB0aGUgZW50aXJlIGNvbGxlY3Rpb24uIChg
IzI3MDcKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjcw
Nz5gXykKKworLSBGaXggYGBSZXByRnVuY0FyZ3NgYCB3aXRoIG1peGVkIHVuaWNvZGUgYW5kIFVU
Ri04IGFyZ3MuIChgIzI3MzEKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMjczMT5gXykKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gSW4gZXhhbXBsZXMgb24gd29ya2luZyB3aXRoIGN1c3RvbSBtYXJr
ZXJzLCBhZGQgZXhhbXBsZXMgZGVtb25zdHJhdGluZyB0aGUKKyAgdXNhZ2Ugb2YgYGBweXRlc3Qu
bWFyay5NQVJLRVJfTkFNRS53aXRoX2FyZ3NgYCBpbiBjb21wYXJpc29uIHdpdGgKKyAgYGBweXRl
c3QubWFyay5NQVJLRVJfTkFNRS5fX2NhbGxfX2BgIChgIzI2MDQKKyAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYwND5gXykKKworLSBJbiBvbmUgb2YgdGhl
IHNpbXBsZSBleGFtcGxlcywgdXNlIGBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcygpYCB0
byBza2lwCisgIHRlc3RzIGJhc2VkIG9uIGEgY29tbWFuZC1saW5lIG9wdGlvbiwgYWxsb3dpbmcg
aXRzIHNoYXJpbmcgd2hpbGUgcHJldmVudGluZyBhCisgIHVzZXIgZXJyb3Igd2hlbiBhY2Vzc2lu
ZyBgcHl0ZXN0LmNvbmZpZ2AgYmVmb3JlIHRoZSBhcmd1bWVudCBwYXJzaW5nLiAoYCMyNjUzCisg
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NTM+YF8pCisK
KworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBGaXhlZCBtaW5vciBlcnJvciBpbiAnR29vZCBQcmFjdGljZXMvTWFudWFsIEludGVncmF0aW9u
JyBjb2RlIHNuaXBwZXQuCisgIChgIzI2OTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMjY5MT5gXykKKworLSBGaXhlZCB0eXBvIGluIGdvb2RwcmFjdGljZXMu
cnN0LiAoYCMyNzIxCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI3MjE+YF8pCisKKy0gSW1wcm92ZSB1c2VyIGd1aWRhbmNlIHJlZ2FyZGluZyBgYC0tcmVz
dWx0bG9nYGAgZGVwcmVjYXRpb24uIChgIzI3MzkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjczOT5gXykKKworCitQeXRlc3QgMy4yLjEgKDIwMTctMDgt
MDgpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisK
Ky0gRml4ZWQgc21hbGwgdGVybWluYWwgZ2xpdGNoIHdoZW4gY29sbGVjdGluZyBhIHNpbmdsZSB0
ZXN0IGl0ZW0uIChgIzI1NzkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMjU3OT5gXykKKworLSBDb3JyZWN0bHkgY29uc2lkZXIgYGAvYGAgYXMgdGhlIGZp
bGUgc2VwYXJhdG9yIHRvIGF1dG9tYXRpY2FsbHkgbWFyayBwbHVnaW4KKyAgZmlsZXMgZm9yIHJl
d3JpdGUgb24gV2luZG93cy4gKGAjMjU5MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC0KKyAg
ZGV2L3B5dGVzdC9pc3N1ZXMvMjU5MT5gXykKKworLSBQcm9wZXJseSBlc2NhcGUgdGVzdCBuYW1l
cyB3aGVuIHNldHRpbmcgYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgZW52aXJvbm1lbnQKKyAgdmFy
aWFibGUuIChgIzI2NDQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjY0ND5gXykKKworLSBGaXggZXJyb3Igb24gV2luZG93cyBhbmQgUHl0aG9uIDMuNisgd2hl
biBgYHN5cy5zdGRvdXRgYCBoYXMgYmVlbiByZXBsYWNlZAorICB3aXRoIGEgc3RyZWFtLWxpa2Ug
b2JqZWN0IHdoaWNoIGRvZXMgbm90IGltcGxlbWVudCB0aGUgZnVsbCBgYGlvYGAgbW9kdWxlCisg
IGJ1ZmZlciBwcm90b2NvbC4gSW4gcGFydGljdWxhciB0aGlzIGFmZmVjdHMgYGBweXRlc3QteGRp
c3RgYCB1c2VycyBvbiB0aGUKKyAgYWZvcmVtZW50aW9uZWQgcGxhdGZvcm0uIChgIzI2NjYgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI2NjY+YF8pCisK
KworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIEV4
cGxpY2l0bHkgZG9jdW1lbnQgd2hpY2ggcHl0ZXN0IGZlYXR1cmVzIHdvcmsgd2l0aCBgYHVuaXR0
ZXN0YGAuIChgIzI2MjYKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjYyNj5gXykKKworCitQeXRlc3QgMy4yLjAgKDIwMTctMDctMzApCis9PT09PT09PT09
PT09PT09PT09PT09PT09CisKK0RlcHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLSBgYHB5dGVzdC5hcHByb3hgYCBubyBsb25nZXIgc3VwcG9ydHMg
YGA+YGAsIGBgPj1gYCwgYGA8YGAgYW5kIGBgPD1gYAorICBvcGVyYXRvcnMgdG8gYXZvaWQgc3Vy
cHJpc2luZy9pbmNvbnNpc3RlbnQgYmVoYXZpb3IuIFNlZSBgdGhlIGFwcHJveCBkb2NzCisgIDxo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvYnVpbHRpbi5odG1sI3B5dGVzdC5hcHBy
b3g+YF8gZm9yIG1vcmUKKyAgaW5mb3JtYXRpb24uIChgIzIwMDMgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAwMz5gXykKKworLSBBbGwgb2xkLXN0eWxlIHNw
ZWNpZmljIGJlaGF2aW9yIGluIGN1cnJlbnQgY2xhc3NlcyBpbiB0aGUgcHl0ZXN0J3MgQVBJIGlz
CisgIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBhdCB0aGlzIHBvaW50IGFuZCB3aWxsIGJlIHJlbW92
ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgVGhpcyBhZmZlY3RzIFB5dGhvbiAyIHVzZXJzIG9u
bHkgYW5kIGluIHJhcmUgc2l0dWF0aW9ucy4gKGAjMjE0NworICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTQ3PmBfKQorCistIEEgZGVwcmVjYXRpb24gd2Fy
bmluZyBpcyBub3cgcmFpc2VkIHdoZW4gdXNpbmcgbWFya3MgZm9yIHBhcmFtZXRlcnMKKyAgaW4g
YGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgLiBVc2UgYGBweXRlc3QucGFyYW1gYCB0byBhcHBs
eSBtYXJrcyB0bworICBwYXJhbWV0ZXJzIGluc3RlYWQuIChgIzI0MjcgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQyNz5gXykKKworCitGZWF0dXJlcworLS0t
LS0tLS0KKworLSBBZGQgc3VwcG9ydCBmb3IgbnVtcHkgYXJyYXlzIChhbmQgZGljdHMpIHRvIGFw
cHJveC4gKGAjMTk5NAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8xOTk0PmBfKQorCistIE5vdyB0ZXN0IGZ1bmN0aW9uIG9iamVjdHMgaGF2ZSBhIGBgcHl0
ZXN0bWFya2BgIGF0dHJpYnV0ZSBjb250YWluaW5nIGEgbGlzdAorICBvZiBtYXJrcyBhcHBsaWVk
IGRpcmVjdGx5IHRvIHRoZSB0ZXN0IGZ1bmN0aW9uLCBhcyBvcHBvc2VkIHRvIG1hcmtzIGluaGVy
aXRlZAorICBmcm9tIHBhcmVudCBjbGFzc2VzIG9yIG1vZHVsZXMuIChgIzI1MTYgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1MTY+YF8pCisKKy0gQ29s
bGVjdGlvbiBpZ25vcmVzIGxvY2FsIHZpcnR1YWxlbnZzIGJ5IGRlZmF1bHQ7IGAtLWNvbGxlY3Qt
aW4tdmlydHVhbGVudmAKKyAgb3ZlcnJpZGVzIHRoaXMgYmVoYXZpb3IuIChgIzI1MTggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1MTg+YF8pCisKKy0g
QWxsb3cgY2xhc3MgbWV0aG9kcyBkZWNvcmF0ZWQgYXMgYGBAc3RhdGljbWV0aG9kYGAgdG8gYmUg
Y2FuZGlkYXRlcyBmb3IKKyAgY29sbGVjdGlvbiBhcyBhIHRlc3QgZnVuY3Rpb24uIChPbmx5IGZv
ciBQeXRob24gMi43IGFuZCBhYm92ZS4gUHl0aG9uIDIuNgorICB3aWxsIHN0aWxsIGlnbm9yZSBz
dGF0aWMgbWV0aG9kcy4pIChgIzI1MjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRl
di9weXRlc3QvaXNzdWVzLzI1Mjg+YF8pCisKKy0gSW50cm9kdWNlIGBgbWFyay53aXRoX2FyZ3Ng
YCBpbiBvcmRlciB0byBhbGxvdyBwYXNzaW5nIGZ1bmN0aW9ucy9jbGFzc2VzIGFzCisgIHNvbGUg
YXJndW1lbnQgdG8gbWFya3MuIChgIzI1NDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisg
IGRldi9weXRlc3QvaXNzdWVzLzI1NDA+YF8pCisKKy0gTmV3IGBgY2FjaGVfZGlyYGAgaW5pIG9w
dGlvbjogc2V0cyB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBjb250ZW50cyBvZiB0aGUKKyAgY2Fj
aGUgcGx1Z2luIGFyZSBzdG9yZWQuIERpcmVjdG9yeSBtYXkgYmUgcmVsYXRpdmUgb3IgYWJzb2x1
dGUgcGF0aDogaWYgcmVsYXRpdmUgcGF0aCwgdGhlbgorICBkaXJlY3RvcnkgaXMgY3JlYXRlZCBy
ZWxhdGl2ZSB0byBgYHJvb3RkaXJgYCwgb3RoZXJ3aXNlIGl0IGlzIHVzZWQgYXMgaXMuCisgIEFk
ZGl0aW9uYWxseSBwYXRoIG1heSBjb250YWluIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aGljaCBh
cmUgZXhwYW5kZWQgZHVyaW5nCisgIHJ1bnRpbWUuIChgIzI1NDMgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjU0Mz5gXykKKworLSBJbnRyb2R1Y2UgdGhlIGBg
UFlURVNUX0NVUlJFTlRfVEVTVGBgIGVudmlyb25tZW50IHZhcmlhYmxlIHRoYXQgaXMgc2V0IHdp
dGgKKyAgdGhlIGBgbm9kZWlkYGAgYW5kIHN0YWdlIChgYHNldHVwYGAsIGBgY2FsbGBgIGFuZCBg
YHRlYXJkb3duYGApIG9mIHRoZSB0ZXN0CisgIGJlaW5nIGN1cnJlbnRseSBleGVjdXRlZC4gU2Vl
IHRoZSBgZG9jdW1lbnRhdGlvbgorICA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L2V4YW1wbGUvc2ltcGxlLmh0bWwjcHl0ZXN0LWN1cnJlbnQtdGVzdC0KKyAgZW52aXJvbm1lbnQt
dmFyaWFibGU+YF8gZm9yIG1vcmUgaW5mby4gKGAjMjU4MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvMjU4Mz5gXykKKworLSBJbnRyb2R1Y2VkIGBgQHB5
dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzYGAgbWFyayB3aGljaCBhbGxvd3Mgb3ZlcndyaXRpbmcg
dGhlCisgIHdhcm5pbmdzIGZpbHRlciBvbiBhIHBlciB0ZXN0LCBjbGFzcyBvciBtb2R1bGUgbGV2
ZWwuIFNlZSB0aGUgYGRvY3MKKyAgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC93
YXJuaW5ncy5odG1sI3B5dGVzdC1tYXJrLQorICBmaWx0ZXJ3YXJuaW5ncz5gXyBmb3IgbW9yZSBp
bmZvcm1hdGlvbi4gKGAjMjU5OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC0KKyAgZGV2L3B5
dGVzdC9pc3N1ZXMvMjU5OD5gXykKKworLSBgYC0tbGFzdC1mYWlsZWRgYCBub3cgcmVtZW1iZXJz
IGZvcmV2ZXIgd2hlbiBhIHRlc3QgaGFzIGZhaWxlZCBhbmQgb25seQorICBmb3JnZXRzIGl0IGlm
IGl0IHBhc3NlcyBhZ2Fpbi4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGZpeCBhIHRlc3Qgc3VpdGUg
YnkKKyAgc2VsZWN0aXZlbHkgcnVubmluZyBmaWxlcyBhbmQgZml4aW5nIHRlc3RzIGluY3JlbWVu
dGFsbHkuIChgIzI2MjEKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjYyMT5gXykKKworLSBOZXcgYGBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2hg
YCBob29rIHdoaWNoIGFsbG93cyBwbHVnaW5zIHRvIGFkZAorICBtZXNzYWdlcyB0byB0aGUgdGVy
bWluYWwgcmVwb3J0aW5nIGFmdGVyIGNvbGxlY3Rpb24gaGFzIGJlZW4gZmluaXNoZWQKKyAgc3Vj
Y2Vzc2Z1bGx5LiAoYCMyNjIyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI2MjI+YF8pCisKKy0gQWRkZWQgc3VwcG9ydCBmb3IgYFBFUC00MTUncyA8aHR0cHM6
Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQxNS8+YF8KKyAgYGBFeGNlcHRpb24uX19z
dXBwcmVzc19jb250ZXh0X19gYC4gTm93IGlmIGEgYGByYWlzZSBleGNlcHRpb24gZnJvbSBOb25l
YGAgaXMKKyAgY2F1Z2h0IGJ5IHB5dGVzdCwgcHl0ZXN0IHdpbGwgbm8gbG9uZ2VyIGNoYWluIHRo
ZSBjb250ZXh0IGluIHRoZSB0ZXN0IHJlcG9ydC4KKyAgVGhlIGJlaGF2aW9yIG5vdyBtYXRjaGVz
IFB5dGhvbidzIHRyYWNlYmFjayBiZWhhdmlvci4gKGAjMjYzMQorICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjMxPmBfKQorCistIEV4Y2VwdGlvbnMgcmFp
c2VkIGJ5IGBgcHl0ZXN0LmZhaWxgYCwgYGBweXRlc3Quc2tpcGBgIGFuZCBgYHB5dGVzdC54ZmFp
bGBgCisgIG5vdyBzdWJjbGFzcyBCYXNlRXhjZXB0aW9uLCBtYWtpbmcgdGhlbSBoYXJkZXIgdG8g
YmUgY2F1Z2h0IHVuaW50ZW50aW9uYWxseQorICBieSBub3JtYWwgY29kZS4gKGAjNTgwIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU4MD5gXykKKworCitCdWcg
Rml4ZXMKKy0tLS0tLS0tLQorCistIFNldCBgYHN0ZGluYGAgdG8gYSBjbG9zZWQgYGBQSVBFYGAg
aW4gYGBweXRlc3Rlci5weS5UZXN0ZGlyLnBvcGVuKClgYCBmb3IKKyAgYXZvaWQgdW53YW50ZWQg
aW50ZXJhY3RpdmUgYGBwZGJgYCAoYCMyMDIzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQor
ICBkZXYvcHl0ZXN0L2lzc3Vlcy8yMDIzPmBfKQorCistIEFkZCBtaXNzaW5nIGBgZW5jb2Rpbmdg
YCBhdHRyaWJ1dGUgdG8gYGBzeXMuc3RkKmBgIHN0cmVhbXMgd2hlbiB1c2luZworICBgYGNhcHN5
c2BgIGNhcHR1cmUgbW9kZS4gKGAjMjM3NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC0KKyAg
ZGV2L3B5dGVzdC9pc3N1ZXMvMjM3NT5gXykKKworLSBGaXggdGVybWluYWwgY29sb3IgY2hhbmdp
bmcgdG8gYmxhY2sgb24gV2luZG93cyBpZiBgYGNvbG9yYW1hYGAgaXMgaW1wb3J0ZWQKKyAgaW4g
YSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZS4gKGAjMjUxMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvMjUxMD5gXykKKworLSBGaXggbGluZSBudW1iZXIgd2hl
biByZXBvcnRpbmcgc3VtbWFyeSBvZiBza2lwcGVkIHRlc3RzLiAoYCMyNTQ4CisgIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1NDg+YF8pCisKKy0gY2FwdHVy
ZTogZW5zdXJlIHRoYXQgRW5jb2RlZEZpbGUubmFtZSBpcyBhIHN0cmluZy4gKGAjMjU1NQorICA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTU1PmBfKQorCist
IFRoZSBvcHRpb25zIGBgLS1maXh0dXJlc2BgIGFuZCBgYC0tZml4dHVyZXMtcGVyLXRlc3RgYCB3
aWxsIG5vdyBrZWVwCisgIGluZGVudGF0aW9uIHdpdGhpbiBkb2NzdHJpbmdzLiAoYCMyNTc0IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTc0PmBfKQor
CistIGRvY3Rlc3RzIGxpbmUgbnVtYmVycyBhcmUgbm93IHJlcG9ydGVkIGNvcnJlY3RseSwgZml4
aW5nIGBweXRlc3Qtc3VnYXIjMTIyCisgIDxodHRwczovL2dpdGh1Yi5jb20vRnJvemVuYmFsbC9w
eXRlc3Qtc3VnYXIvaXNzdWVzLzEyMj5gXy4gKGAjMjYxMAorICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjEwPmBfKQorCistIEZpeCBub24tZGV0ZXJtaW5p
c20gaW4gb3JkZXIgb2YgZml4dHVyZSBjb2xsZWN0aW9uLiBBZGRzIG5ldyBkZXBlbmRlbmN5Cisg
IChvcmRlcmVkZGljdCkgZm9yIFB5dGhvbiAyLjYuIChgIzkyMCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvOTIwPmBfKQorCisKK0ltcHJvdmVkIERvY3Vt
ZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBDbGFyaWZ5IGBgcHl0ZXN0X2Nv
bmZpZ3VyZWBgIGhvb2sgY2FsbCBvcmRlci4gKGAjMjUzOQorICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTM5PmBfKQorCistIEV4dGVuZCBkb2N1bWVudGF0
aW9uIGZvciB0ZXN0aW5nIHBsdWdpbiBjb2RlIHdpdGggdGhlIGBgcHl0ZXN0ZXJgYCBwbHVnaW4u
CisgIChgIzk3MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy85
NzE+YF8pCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLSBVcGRhdGUgaGVscCBtZXNzYWdlIGZvciBgYC0tc3RyaWN0YGAgdG8gbWFrZSBp
dCBjbGVhciBpdCBvbmx5IGRlYWxzIHdpdGgKKyAgdW5yZWdpc3RlcmVkIG1hcmtlcnMsIG5vdCB3
YXJuaW5ncy4gKGAjMjQ0NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC0KKyAgZGV2L3B5dGVz
dC9pc3N1ZXMvMjQ0ND5gXykKKworLSBJbnRlcm5hbCBjb2RlIG1vdmU6IG1vdmUgY29kZSBmb3Ig
cHl0ZXN0LmFwcHJveC9weXRlc3QucmFpc2VzIHRvIG93biBmaWxlcyBpbgorICBvcmRlciB0byBj
dXQgZG93biB0aGUgc2l6ZSBvZiBweXRob24ucHkgKGAjMjQ4OSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvMjQ4OT5gXykKKworLSBSZW5hbWVkIHRoZSB1
dGlsaXR5IGZ1bmN0aW9uIGBgX3B5dGVzdC5jb21wYXQuX2VzY2FwZV9zdHJpbmdzYGAgdG8KKyAg
YGBfYXNjaWlfZXNjYXBlZGBgIHRvIGJldHRlciBjb21tdW5pY2F0ZSB0aGUgZnVuY3Rpb24ncyBw
dXJwb3NlLiAoYCMyNTMzCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI1MzM+YF8pCisKKy0gSW1wcm92ZSBlcnJvciBtZXNzYWdlIGZvciBDb2xsZWN0RXJy
b3Igd2l0aCBza2lwL3NraXBpZi4gKGAjMjU0NgorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTQ2PmBfKQorCistIEVtaXQgd2FybmluZyBhYm91dCBgYHlp
ZWxkYGAgdGVzdHMgYmVpbmcgZGVwcmVjYXRlZCBvbmx5IG9uY2UgcGVyIGdlbmVyYXRvci4KKyAg
KGAjMjU2MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTYy
PmBfKQorCistIEVuc3VyZSBmaW5hbCBjb2xsZWN0ZWQgbGluZSBkb2Vzbid0IGluY2x1ZGUgYXJ0
aWZhY3RzIG9mIHByZXZpb3VzIHdyaXRlLgorICAoYCMyNTcxIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1NzE+YF8pCisKKy0gRml4ZWQgYWxsIGZsYWtlOCBl
cnJvcnMgYW5kIHdhcm5pbmdzLiAoYCMyNTgxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQor
ICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTgxPmBfKQorCistIEFkZGVkIGBgZml4LWxpbnRgYCB0b3gg
ZW52aXJvbm1lbnQgdG8gcnVuIGF1dG9tYXRpYyBwZXA4IGZpeGVzIG9uIHRoZSBjb2RlLgorICAo
YCMyNTgyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1ODI+
YF8pCisKKy0gVHVybiB3YXJuaW5ncyBpbnRvIGVycm9ycyBpbiBweXRlc3QncyBvd24gdGVzdCBz
dWl0ZSBpbiBvcmRlciB0byBjYXRjaAorICByZWdyZXNzaW9ucyBkdWUgdG8gZGVwcmVjYXRpb25z
IG1vcmUgcHJvbXB0bHkuIChgIzI1ODgKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMjU4OD5gXykKKworLSBTaG93IG11bHRpcGxlIGlzc3VlIGxpbmtzIGlu
IENIQU5HRUxPRyBlbnRyaWVzLiAoYCMyNjIwCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzI2MjA+YF8pCisKKworUHl0ZXN0IDMuMS4zICgyMDE3LTA3LTAz
KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCist
IEZpeCBkZWNvZGUgZXJyb3IgaW4gUHl0aG9uIDIgZm9yIGRvY3Rlc3RzIGluIGRvY3N0cmluZ3Mu
IChgIzI0MzQKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MjQzND5gXykKKworLSBFeGNlcHRpb25zIHJhaXNlZCBkdXJpbmcgdGVhcmRvd24gYnkgZmluYWxp
emVycyBhcmUgbm93IHN1cHByZXNzZWQgdW50aWwgYWxsCisgIGZpbmFsaXplcnMgYXJlIGNhbGxl
ZCwgd2l0aCB0aGUgaW5pdGlhbCBleGNlcHRpb24gcmVyYWlzZWQuIChgIzI0NDAKKyAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ0MD5gXykKKworLSBGaXgg
aW5jb3JyZWN0ICJjb2xsZWN0ZWQgaXRlbXMiIHJlcG9ydCB3aGVuIHNwZWNpZnlpbmcgdGVzdHMg
b24gdGhlIGNvbW1hbmQtCisgIGxpbmUuIChgIzI0NjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ2ND5gXykKKworLSBgYGRlcHJlY2F0ZWRfY2FsbGBgIGlu
IGNvbnRleHQtbWFuYWdlciBmb3JtIG5vdyBjYXB0dXJlcyBkZXByZWNhdGlvbiB3YXJuaW5ncwor
ICBldmVuIGlmIHRoZSBzYW1lIHdhcm5pbmcgaGFzIGFscmVhZHkgYmVlbiByYWlzZWQuIEFsc28s
IGBgZGVwcmVjYXRlZF9jYWxsYGAKKyAgd2lsbCBhbHdheXMgcHJvZHVjZSB0aGUgc2FtZSBlcnJv
ciBtZXNzYWdlIChwcmV2aW91c2x5IGl0IHdvdWxkIHByb2R1Y2UKKyAgZGlmZmVyZW50IG1lc3Nh
Z2VzIGluIGNvbnRleHQtbWFuYWdlciB2cy4gZnVuY3Rpb24tY2FsbCBtb2RlKS4gKGAjMjQ2OQor
ICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDY5PmBfKQor
CistIEZpeCBpc3N1ZSB3aGVyZSBwYXRocyBjb2xsZWN0ZWQgYnkgcHl0ZXN0IGNvdWxkIGhhdmUg
dHJpcGxlIGxlYWRpbmcgYGAvYGAKKyAgY2hhcmFjdGVycy4gKGAjMjQ3NSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDc1PmBfKQorCistIEZpeCBpbnRlcm5h
bCBlcnJvciB3aGVuIHRyeWluZyB0byBkZXRlY3QgdGhlIHN0YXJ0IG9mIGEgcmVjdXJzaXZlIHRy
YWNlYmFjay4KKyAgKGAjMjQ4NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8yNDg2PmBfKQorCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLSBFeHBsaWNpdGx5IHN0YXRlIGZvciB3aGljaCBob29rcyB0aGUgY2Fs
bHMgc3RvcCBhZnRlciB0aGUgZmlyc3Qgbm9uLU5vbmUKKyAgcmVzdWx0LiAoYCMyNDkzIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0OTM+YF8pCisKKworVHJp
dmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBDcmVh
dGUgaW52b2tlIHRhc2tzIGZvciB1cGRhdGluZyB0aGUgdmVuZG9yZWQgcGFja2FnZXMuIChgIzI0
NzQKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ3ND5g
XykKKworLSBVcGRhdGUgY29weXJpZ2h0IGRhdGVzIGluIExJQ0VOU0UsIFJFQURNRS5yc3QgYW5k
IGluIHRoZSBkb2N1bWVudGF0aW9uLgorICAoYCMyNDk5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0OTk+YF8pCisKKworUHl0ZXN0IDMuMS4yICgyMDE3LTA2
LTA4KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQor
CistIFJlcXVpcmVkIG9wdGlvbnMgYWRkZWQgdmlhIGBgcHl0ZXN0X2FkZG9wdGlvbmBgIHdpbGwg
bm8gbG9uZ2VyIHByZXZlbnQgdXNpbmcKKyAgLS1oZWxwIHdpdGhvdXQgcGFzc2luZyB0aGVtLiAo
IzE5OTkpCisKKy0gUmVzcGVjdCBgYHB5dGhvbl9maWxlc2BgIGluIGFzc2VydGlvbiByZXdyaXRp
bmcuICgjMjEyMSkKKworLSBGaXggcmVjdXJzaW9uIGVycm9yIGRldGVjdGlvbiB3aGVuIGZyYW1l
cyBpbiB0aGUgdHJhY2ViYWNrIGNvbnRhaW4gb2JqZWN0cworICB0aGF0IGNhbid0IGJlIGNvbXBh
cmVkIChsaWtlIGBgbnVtcHlgYCBhcnJheXMpLiAoIzI0NTkpCisKKy0gYGBVbmljb2RlV2Fybmlu
Z2BgIGlzIGlzc3VlZCBmcm9tIHRoZSBpbnRlcm5hbCBweXRlc3Qgd2FybmluZ3MgcGx1Z2luIG9u
bHkKKyAgd2hlbiB0aGUgbWVzc2FnZSBjb250YWlucyBub24tYXNjaWkgdW5pY29kZSAoUHl0aG9u
IDIgb25seSkuICgjMjQ2MykKKworLSBBZGRlZCBhIHdvcmthcm91bmQgZm9yIFB5dGhvbiAzLjYg
YGBXaW5kb3dzQ29uc29sZUlPYGAgYnJlYWtpbmcgZHVlIHRvIFB5dGVzdHMncworICBgYEZEQ2Fw
dHVyZWBgLiBPdGhlciBjb2RlIHVzaW5nIGNvbnNvbGUgaGFuZGxlcyBtaWdodCBzdGlsbCBiZSBh
ZmZlY3RlZCBieSB0aGUKKyAgdmVyeSBzYW1lIGlzc3VlIGFuZCBtaWdodCByZXF1aXJlIGZ1cnRo
ZXIgd29ya2Fyb3VuZHMvZml4ZXMsIGkuZS4gYGBjb2xvcmFtYWBgLgorICAoIzI0NjcpCisKKwor
SW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIEZpeCBp
bnRlcm5hbCBBUEkgbGlua3MgdG8gYGBwbHVnZ3lgYCBvYmplY3RzLiAoIzIzMzEpCisKKy0gTWFr
ZSBpdCBjbGVhciB0aGF0IGBgcHl0ZXN0LnhmYWlsYGAgc3RvcHMgdGVzdCBleGVjdXRpb24gYXQg
dGhlIGNhbGxpbmcgcG9pbnQKKyAgYW5kIGltcHJvdmUgb3ZlcmFsbCBmbG93IG9mIHRoZSBgYHNr
aXBwaW5nYGAgZG9jcy4gKCM4MTApCisKKworUHl0ZXN0IDMuMS4xICgyMDE3LTA1LTMwKQorPT09
PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIHB5dGVz
dCB3YXJuaW5nIGNhcHR1cmUgbm8gbG9uZ2VyIG92ZXJyaWRlcyBleGlzdGluZyB3YXJuaW5nIGZp
bHRlcnMuIFRoZQorICBwcmV2aW91cyBiZWhhdmlvdXIgd291bGQgb3ZlcnJpZGUgYWxsIGZpbHRl
cnMgYW5kIGNhdXNlZCByZWdyZXNzaW9ucyBpbiB0ZXN0CisgIHN1aXRlcyB3aGljaCBjb25maWd1
cmUgd2FybmluZyBmaWx0ZXJzIHRvIG1hdGNoIHRoZWlyIG5lZWRzLiBOb3RlIHRoYXQgYXMgYQor
ICBzaWRlLWVmZmVjdCBvZiB0aGlzIGlzIHRoYXQgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBhbmQK
KyAgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgYXJlIG5vIGxvbmdlciBzaG93biBieSBk
ZWZhdWx0LiAoIzI0MzApCisKKy0gRml4IGlzc3VlIHdpdGggbm9uLWFzY2lpIGNvbnRlbnRzIGlu
IGRvY3Rlc3QgdGV4dCBmaWxlcy4gKCMyNDM0KQorCistIEZpeCBlbmNvZGluZyBlcnJvcnMgZm9y
IHVuaWNvZGUgd2FybmluZ3MgaW4gUHl0aG9uIDIuICgjMjQzNikKKworLSBgYHB5dGVzdC5kZXBy
ZWNhdGVkX2NhbGxgYCBub3cgY2FwdHVyZXMgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAg
aW4KKyAgY29udGV4dCBtYW5hZ2VyIGZvcm0uICgjMjQ0MSkKKworCitJbXByb3ZlZCBEb2N1bWVu
dGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gQWRkaXRpb24gb2YgdG93bmNyaWVy
IGZvciBjaGFuZ2Vsb2cgbWFuYWdlbWVudC4gKCMyMzkwKQorCisKKzMuMS4wICgyMDE3LTA1LTIy
KQorPT09PT09PT09PT09PT09PT09CisKKworTmV3IEZlYXR1cmVzCistLS0tLS0tLS0tLS0KKwor
KiBUaGUgYGBweXRlc3Qtd2FybmluZ3NgYCBwbHVnaW4gaGFzIGJlZW4gaW50ZWdyYXRlZCBpbnRv
IHRoZSBjb3JlIGFuZCBub3cgYGBweXRlc3RgYCBhdXRvbWF0aWNhbGx5CisgIGNhcHR1cmVzIGFu
ZCBkaXNwbGF5cyB3YXJuaW5ncyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNlc3Npb24uCisKKyAg
Li4gd2FybmluZzo6CisKKyAgICBUaGlzIGZlYXR1cmUgbWF5IGRpc3J1cHQgdGVzdCBzdWl0ZXMg
d2hpY2ggYXBwbHkgYW5kIHRyZWF0IHdhcm5pbmdzIHRoZW1zZWx2ZXMsIGFuZCBjYW4gYmUKKyAg
ICBkaXNhYmxlZCBpbiB5b3VyIGBgcHl0ZXN0LmluaWBgOgorCisgICAgLi4gY29kZS1ibG9jazo6
IGluaQorCisgICAgICBbcHl0ZXN0XQorICAgICAgYWRkb3B0cyA9IC1wIG5vOndhcm5pbmdzCisK
KyAgICBTZWUgdGhlIGB3YXJuaW5ncyBkb2N1bWVudGF0aW9uIHBhZ2UgPGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sPmBfIGZvciBtb3JlCisgICAgaW5mb3Jt
YXRpb24uCisKKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogQWRkZWQg
YGBqdW5pdF9zdWl0ZV9uYW1lYGAgaW5pIG9wdGlvbiB0byBzcGVjaWZ5IHJvb3QgYGA8dGVzdHN1
aXRlPmBgIG5hbWUgZm9yIEpVbml0IFhNTCByZXBvcnRzIChgIzUzM2BfKS4KKworKiBBZGRlZCBh
biBpbmkgb3B0aW9uIGBgZG9jdGVzdF9lbmNvZGluZ2BgIHRvIHNwZWNpZnkgd2hpY2ggZW5jb2Rp
bmcgdG8gdXNlIGZvciBkb2N0ZXN0IGZpbGVzLgorICBUaGFua3MgYEB3aGVlcmRgXyBmb3IgdGhl
IFBSIChgIzIxMDFgXykuCisKKyogYGBweXRlc3Qud2FybnNgYCBub3cgY2hlY2tzIGZvciBzdWJj
bGFzcyByZWxhdGlvbnNoaXAgcmF0aGVyIHRoYW4KKyAgY2xhc3MgZXF1YWxpdHkuIFRoYW5rcyBg
QGxlc3RldmVgXyBmb3IgdGhlIFBSIChgIzIxNjZgXykKKworKiBgYHB5dGVzdC5yYWlzZXNgYCBu
b3cgYXNzZXJ0cyB0aGF0IHRoZSBlcnJvciBtZXNzYWdlIG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4
CisgIHdpdGggdGhlIGBgbWF0Y2hgYCBrZXl3b3JkIGFyZ3VtZW50LiBUaGFua3MgYEBLcmllY2hp
YF8gZm9yIHRoZSBQUi4KKworKiBgYHB5dGVzdC5wYXJhbWBgIGNhbiBiZSB1c2VkIHRvIGRlY2xh
cmUgdGVzdCBwYXJhbWV0ZXIgc2V0cyB3aXRoIG1hcmtzIGFuZCB0ZXN0IGlkcy4KKyAgVGhhbmtz
IGBAUm9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSLgorCisKK0NoYW5nZXMKKy0tLS0tLS0K
KworKiByZW1vdmUgYWxsIGludGVybmFsIHVzZXMgb2YgcHl0ZXN0X25hbWVzcGFjZSBob29rcywK
KyAgdGhpcyBpcyB0byBwcmVwYXJlIHRoZSByZW1vdmFsIG9mIHByZWxvYWRjb25maWcgaW4gcHl0
ZXN0IDQuMAorICBUaGFua3MgdG8gYEBSb25ueVBmYW5uc2NobWlkdGBfIGZvciB0aGUgUFIuCisK
KyogcHl0ZXN0IG5vdyB3YXJucyB3aGVuIGEgY2FsbGFibGUgaWRzIHJhaXNlcyBpbiBhIHBhcmFt
ZXRyaXplZCB0ZXN0LiBUaGFua3MgYEBmb2dvYF8gZm9yIHRoZSBQUi4KKworKiBJdCBpcyBub3cg
cG9zc2libGUgdG8gc2tpcCB0ZXN0IGNsYXNzZXMgZnJvbSBiZWluZyBjb2xsZWN0ZWQgYnkgc2V0
dGluZyBhCisgIGBgX190ZXN0X19gYCBhdHRyaWJ1dGUgdG8gYGBGYWxzZWBgIGluIHRoZSBjbGFz
cyBib2R5IChgIzIwMDdgXykuIFRoYW5rcworICB0byBgQHN5cmVgXyBmb3IgdGhlIHJlcG9ydCBh
bmQgYEBsd21gXyBmb3IgdGhlIFBSLgorCisqIENoYW5nZSBqdW5pdHhtbC5weSB0byBwcm9kdWNl
IHJlcG9ydHMgdGhhdCBjb21wbHkgd2l0aCBKdW5pdHhtbCBzY2hlbWEuCisgIElmIHRoZSBzYW1l
IHRlc3QgZmFpbHMgd2l0aCBmYWlsdXJlIGluIGNhbGwgYW5kIHRoZW4gZXJyb3JzIGluIHRlYXJk
b3duCisgIHdlIHNwbGl0IHRlc3RjYXNlIGVsZW1lbnQgaW50byB0d28sIG9uZSBjb250YWluaW5n
IHRoZSBlcnJvciBhbmQgdGhlIG90aGVyCisgIHRoZSBmYWlsdXJlLiAoYCMyMjI4YF8pIFRoYW5r
cyB0byBgQGtrb3VraW91YF8gZm9yIHRoZSBQUi4KKworKiBUZXN0Y2FzZSByZXBvcnRzIHdpdGgg
YSBgYHVybGBgIGF0dHJpYnV0ZSB3aWxsIG5vdyBwcm9wZXJseSB3cml0ZSB0aGlzIHRvIGp1bml0
eG1sLgorICBUaGFua3MgYEBmdXNoaWBfIGZvciB0aGUgUFIgKGAjMTg3NGBfKS4KKworKiBSZW1v
dmUgY29tbW9uIGl0ZW1zIGZyb20gZGljdCBjb21wYXJpc2lvbiBvdXRwdXQgd2hlbiB2ZXJib3Np
dHk9MS4gQWxzbyB1cGRhdGUKKyAgdGhlIHRydW5jYXRpb24gbWVzc2FnZSB0byBtYWtlIGl0IGNs
ZWFyZXIgdGhhdCBweXRlc3QgdHJ1bmNhdGVzIGFsbAorICBhc3NlcnRpb24gbWVzc2FnZXMgaWYg
dmVyYm9zaXR5IDwgMiAoYCMxNTEyYF8pLgorICBUaGFua3MgYEBtYXR0ZHVja2BfIGZvciB0aGUg
UFIKKworKiBgYC0tcGRiY2xzYGAgbm8gbG9uZ2VyIGltcGxpZXMgYGAtLXBkYmBgLiBUaGlzIG1h
a2VzIGl0IHBvc3NpYmxlIHRvIHVzZQorICBgYGFkZG9wdHM9LS1wZGJjbHM9bW9kdWxlLlNvbWVD
bGFzc2BgIG9uIGBgcHl0ZXN0LmluaWBgLiBUaGFua3MgYEBkYXZpZHN6b3R0ZW5gXyBmb3IKKyAg
dGhlIFBSIChgIzE5NTJgXykuCisKKyogZml4IGAjMjAxM2BfOiB0dXJuIFJlY29yZGVkV2Fybmlu
ZyBpbnRvIGBgbmFtZWR0dXBsZWBgLAorICB0byBnaXZlIGl0IGEgY29tcHJlaGVuc2libGUgcmVw
ciB3aGlsZSBwcmV2ZW50aW5nIHVud2FycmFudGVkIG1vZGlmaWNhdGlvbi4KKworKiBmaXggYCMy
MjA4YF86IGVuc3VyZSBhIGl0ZXJhdGlvbiBsaW1pdCBmb3IgX3B5dGVzdC5jb21wYXQuZ2V0X3Jl
YWxfZnVuYy4KKyAgVGhhbmtzIGBAUm9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIHJlcG9ydCBh
bmQgUFIuCisKKyogSG9va3MgYXJlIG5vdyB2ZXJpZmllZCBhZnRlciBjb2xsZWN0aW9uIGlzIGNv
bXBsZXRlLCByYXRoZXIgdGhhbiByaWdodCBhZnRlciBsb2FkaW5nIGluc3RhbGxlZCBwbHVnaW5z
LiBUaGlzCisgIG1ha2VzIGl0IGVhc3kgdG8gd3JpdGUgaG9va3MgZm9yIHBsdWdpbnMgd2hpY2gg
d2lsbCBiZSBsb2FkZWQgZHVyaW5nIGNvbGxlY3Rpb24sIGZvciBleGFtcGxlIHVzaW5nIHRoZQor
ICBgYHB5dGVzdF9wbHVnaW5zYGAgc3BlY2lhbCB2YXJpYWJsZSAoYCMxODIxYF8pLgorICBUaGFu
a3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBNb2RpZnkgYGBweXRlc3RfbWFrZV9w
YXJhbWV0cml6ZV9pZCgpYGAgaG9vayB0byBhY2NlcHQgYGBhcmduYW1lYGAgYXMgYW4KKyAgYWRk
aXRpb25hbCBwYXJhbWV0ZXIuCisgIFRoYW5rcyBgQHVuc2lnbmVkaW50YF8gZm9yIHRoZSBQUi4K
KworKiBBZGQgYGB2ZW52YGAgdG8gdGhlIGRlZmF1bHQgYGBub3JlY3Vyc2VkaXJzYGAgc2V0dGlu
Zy4KKyAgVGhhbmtzIGBAVGhlLUNvbXBpbGVyYF8gZm9yIHRoZSBQUi4KKworKiBgYFBsdWdpbk1h
bmFnZXIuaW1wb3J0X3BsdWdpbmBgIG5vdyBhY2NlcHRzIHVuaWNvZGUgcGx1Z2luIG5hbWVzIGlu
IFB5dGhvbiAyLgorICBUaGFua3MgYEByZXV0c2hhcmFiYW5pYF8gZm9yIHRoZSBQUi4KKworKiBm
aXggYCMyMzA4YF86IFdoZW4gdXNpbmcgYm90aCBgYC0tbGZgYCBhbmQgYGAtLWZmYGAsIG9ubHkg
dGhlIGxhc3QgZmFpbGVkIHRlc3RzIGFyZSBydW4uCisgIFRoYW5rcyBgQG9qaWlgXyBmb3IgdGhl
IFBSLgorCisqIFJlcGxhY2UgbWlub3IvcGF0Y2ggbGV2ZWwgdmVyc2lvbiBudW1iZXJzIGluIHRo
ZSBkb2N1bWVudGF0aW9uIHdpdGggcGxhY2Vob2xkZXJzLgorICBUaGlzIHNpZ25pZmljYW50bHkg
cmVkdWNlcyBjaGFuZ2Utbm9pc2UgYXMgZGlmZmVyZW50IGNvbnRyaWJ1dG9ycyByZWduZXJhdGUK
KyAgdGhlIGRvY3VtZW50YXRpb24gb24gZGlmZmVyZW50IHBsYXRmb3Jtcy4KKyAgVGhhbmtzIGBA
Um9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSLgorCisqIGZpeCBgIzIzOTFgXzogY29uc2lk
ZXIgcHl0ZXN0X3BsdWdpbnMgb24gYWxsIHBsdWdpbiBtb2R1bGVzCisgIFRoYW5rcyBgQFJvbm55
UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUi4KKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCisq
IEZpeCBgYEF0dHJpYnV0ZUVycm9yYGAgb24gYGBzeXMuc3Rkb3V0LmJ1ZmZlcmBgIC8gYGBzeXMu
c3RkZXJyLmJ1ZmZlcmBgCisgIHdoaWxlIHVzaW5nIGBgY2Fwc3lzYGAgZml4dHVyZSBpbiBweXRo
b24gMy4gKGAjMTQwN2BfKS4KKyAgVGhhbmtzIHRvIGBAYXNvdHRpbGVgXy4KKworKiBDaGFuZ2Ug
Y2FwdHVyZS5weSdzIGBgRG9udFJlYWRGcm9tSW5wdXRgYCBjbGFzcyB0byB0aHJvdyBgYGlvLlVu
c3VwcG9ydGVkT3BlcmF0aW9uYGAgZXJyb3JzIHJhdGhlcgorICB0aGFuIFZhbHVlRXJyb3JzIGlu
IHRoZSBgYGZpbGVub2BgIG1ldGhvZCAoYCMyMjc2YF8pLgorICBUaGFua3MgYEBtZXRhc3luYF8g
YW5kIGBAdmxhZC1kcmFnb3NgXyBmb3IgdGhlIFBSLgorCisqIEZpeCBleGNlcHRpb24gZm9ybWF0
dGluZyB3aGlsZSBpbXBvcnRpbmcgbW9kdWxlcyB3aGVuIHRoZSBleGNlcHRpb24gbWVzc2FnZQor
ICBjb250YWlucyBub24tYXNjaWkgY2hhcmFjdGVycyAoYCMyMzM2YF8pLgorICBUaGFua3MgYEBm
YWJpb3pgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKwor
KiBBZGRlZCBkb2N1bWVudGF0aW9uIHJlbGF0ZWQgdG8gaXNzdWUgKGAjMTkzN2BfKQorICBUaGFu
a3MgYEBza3lsYXJqaGRvd25lc2BfIGZvciB0aGUgUFIuCisKKyogQWxsb3cgY29sbGVjdGluZyBm
aWxlcyB3aXRoIGFueSBmaWxlIGV4dGVuc2lvbiBhcyBQeXRob24gbW9kdWxlcyAoYCMyMzY5YF8p
LgorICBUaGFua3MgYEBLb2Rpb2xvZ2lzdGBfIGZvciB0aGUgUFIuCisKKyogU2hvdyB0aGUgY29y
cmVjdCBlcnJvciBtZXNzYWdlIHdoZW4gY29sbGVjdCAicGFyYW1ldHJpemUiIGZ1bmMgd2l0aCB3
cm9uZyBhcmdzIChgIzIzODNgXykuCisgIFRoYW5rcyBgQFRoZS1Db21waWxlcmBfIGZvciB0aGUg
cmVwb3J0IGFuZCBgQHJvYmluMDM3MWBfIGZvciB0aGUgUFIuCisKKworLi4gX0BkYXZpZHN6b3R0
ZW46IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZHN6b3R0ZW4KKy4uIF9AZmFiaW96OiBodHRwczov
L2dpdGh1Yi5jb20vZmFiaW96CisuLiBfQGZvZ286IGh0dHBzOi8vZ2l0aHViLmNvbS9mb2dvCisu
LiBfQGZ1c2hpOiBodHRwczovL2dpdGh1Yi5jb20vZnVzaGkKKy4uIF9AS29kaW9sb2dpc3Q6IGh0
dHBzOi8vZ2l0aHViLmNvbS9Lb2Rpb2xvZ2lzdAorLi4gX0BLcmllY2hpOiBodHRwczovL2dpdGh1
Yi5jb20vS3JpZWNoaQorLi4gX0BtYW5kZWVwOiBodHRwczovL2dpdGh1Yi5jb20vbWFuZGVlcAor
Li4gX0BtYXR0ZHVjazogaHR0cHM6Ly9naXRodWIuY29tL21hdHRkdWNrCisuLiBfQG1ldGFzeW46
IGh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhc3luCisuLiBfQE1pY2hhbFRIRURVREU6IGh0dHBzOi8v
Z2l0aHViLmNvbS9NaWNoYWxUSEVEVURFCisuLiBfQG9qaWk6IGh0dHBzOi8vZ2l0aHViLmNvbS9v
amlpCisuLiBfQHJldXRzaGFyYWJhbmk6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZXV0c2hhcmFiYW5p
CisuLiBfQHJvYmluMDM3MTogaHR0cHM6Ly9naXRodWIuY29tL3JvYmluMDM3MQorLi4gX0Bza3ls
YXJqaGRvd25lczogaHR0cHM6Ly9naXRodWIuY29tL3NreWxhcmpoZG93bmVzCisuLiBfQHVuc2ln
bmVkaW50OiBodHRwczovL2dpdGh1Yi5jb20vdW5zaWduZWRpbnQKKy4uIF9Ad2hlZXJkOiBodHRw
czovL2dpdGh1Yi5jb20vd2hlZXJkCisKKworLi4gXyMxNDA3OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MDcKKy4uIF8jMTUxMjogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTEyCisuLiBfIzE4MjE6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTgyMQorLi4gXyMxODc0OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xODc0CisuLiBfIzE5Mzc6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTkzNworLi4gXyMxOTUyOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xOTUyCisuLiBfIzIwMDc6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAwNworLi4gXyMy
MDEzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIwMTMKKy4u
IF8jMjEwMTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMjEwMQor
Li4gXyMyMTY2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8yMTY2
CisuLiBfIzIyMDg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MjIwOAorLi4gXyMyMjI4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzIyMjgKKy4uIF8jMjI3NjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8yMjc2CisuLiBfIzIzMDg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMjMwOAorLi4gXyMyMzM2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzIzMzYKKy4uIF8jMjM2OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzY5CisuLiBfIzIzODM6IGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjM4MworLi4gXyMyMzkxOiBodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIzOTEKKy4uIF8jNTMzOiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzMworCisKKworMy4wLjcgKDIwMTctMDMt
MTQpCis9PT09PT09PT09PT09PT09PT0KKworCisqIEZpeCBpc3N1ZSBpbiBhc3NlcnRpb24gcmV3
cml0aW5nIGJyZWFraW5nIGR1ZSB0byBtb2R1bGVzIHNpbGVudGx5IGRpc2NhcmRpbmcKKyAgb3Ro
ZXIgbW9kdWxlcyB3aGVuIGltcG9ydGluZyBmYWlscworICBOb3RhYmx5LCBpbXBvcnRpbmcgdGhl
IGBgYW55ZGJtYGAgbW9kdWxlIGlzIGZpeGVkLiAoYCMyMjQ4YF8pLgorICBUaGFua3MgYEBwZmhh
eWVzYF8gZm9yIHRoZSBQUi4KKworKiBqdW5pdHhtbDogRml4IHByb2JsZW1hdGljIGNhc2Ugd2hl
cmUgc3lzdGVtLW91dCB0YWcgb2NjdXJlZCB0d2ljZSBwZXIgdGVzdGNhc2UKKyAgZWxlbWVudCBp
biB0aGUgWE1MIHJlcG9ydC4gVGhhbmtzIGBAa2tvdWtpb3VgXyBmb3IgdGhlIFBSLgorCisqIEZp
eCByZWdyZXNzaW9uLCBweXRlc3Qgbm93IHNraXBzIHVuaXR0ZXN0IGNvcnJlY3RseSBpZiBydW4g
d2l0aCBgYC0tcGRiYGAKKyAgKGAjMjEzN2BfKS4gVGhhbmtzIHRvIGBAZ3N0YF8gZm9yIHRoZSBy
ZXBvcnQgYW5kIGBAbWJ5dGBfIGZvciB0aGUgUFIuCisKKyogSWdub3JlIGV4Y2VwdGlvbnMgcmFp
c2VkIGZyb20gZGVzY3JpcHRvcnMgKGUuZy4gcHJvcGVydGllcykgZHVyaW5nIFB5dGhvbiB0ZXN0
IGNvbGxlY3Rpb24gKGAjMjIzNGBfKS4KKyAgVGhhbmtzIHRvIGBAYmx1ZXRlY2hgXy4KKworKiBg
YC0tb3ZlcnJpZGUtaW5pYGAgbm93IGNvcnJlY3RseSBvdmVycmlkZXMgc29tZSBmdW5kYW1lbnRh
bCBvcHRpb25zIGxpa2UgYGBweXRob25fZmlsZXNgYCAoYCMyMjM4YF8pLgorICBUaGFua3MgYEBz
aXJleGBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisq
IFJlcGxhY2UgYGByYWlzZSBTdG9wSXRlcmF0aW9uYGAgdXNhZ2VzIGluIHRoZSBjb2RlIGJ5IHNp
bXBsZSBgYHJldHVybnNgYCB0byBmaW5pc2ggZ2VuZXJhdG9ycywgaW4gYWNjb3JkYW5jZSB0byBg
UEVQLTQ3OWBfIChgIzIxNjBgXykuCisgIFRoYW5rcyBgQHRnb29kbGV0YF8gZm9yIHRoZSByZXBv
cnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4IGludGVybmFsIGVycm9y
cyB3aGVuIGFuIHVucHJpbnRhYmxlIGBgQXNzZXJ0aW9uRXJyb3JgYCBpcyByYWlzZWQgaW5zaWRl
IGEgdGVzdC4KKyAgVGhhbmtzIGBAb21lcmhhZGFyaWBfIGZvciB0aGUgUFIuCisKKyogU2tpcHBp
bmcgcGx1Z2luIG5vdyBhbHNvIHdvcmtzIHdpdGggdGVzdCBpdGVtcyBnZW5lcmF0ZWQgYnkgY3Vz
dG9tIGNvbGxlY3RvcnMgKGAjMjIzMWBfKS4KKyAgVGhhbmtzIHRvIGBAdmlkYXJ0ZmBfLgorCisq
IEZpeCB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGNvbnNvbGUgb3V0cHV0IGlmIG5vIC5pbmkgZmls
ZSBwcmVzZW50ZWQgKGAjMjI4MWBfKS4gVGhhbmtzIGBAZmJqb3JuYF8gZm9yIHRoZSBQUi4KKwor
KiBDb25kaXRpb25sZXNzIGBgeGZhaWxgYCBtYXJrZXJzIG5vIGxvbmdlciByZWx5IG9uIHRoZSB1
bmRlcmx5aW5nIHRlc3QgaXRlbQorICBiZWluZyBhbiBpbnN0YW5jZSBvZiBgYFB5b2JqTWl4aW5g
YCwgYW5kIGNhbiB0aGVyZWZvcmUgYXBwbHkgdG8gdGVzdHMgbm90CisgIGNvbGxlY3RlZCBieSB0
aGUgYnVpbHQtaW4gcHl0aG9uIHRlc3QgY29sbGVjdG9yLiBUaGFua3MgYEBiYXJuZXlnYWxlYF8g
Zm9yIHRoZQorICBQUi4KKworCisuLiBfQHBmaGF5ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9wZmhh
eWVzCisuLiBfQGJsdWV0ZWNoOiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZXRlY2gKKy4uIF9AZ3N0
OiBodHRwczovL2dpdGh1Yi5jb20vZ3N0CisuLiBfQHNpcmV4OiBodHRwczovL2dpdGh1Yi5jb20v
c2lyZXgKKy4uIF9AdmlkYXJ0ZjogaHR0cHM6Ly9naXRodWIuY29tL3ZpZGFydGYKKy4uIF9Aa2tv
dWtpb3U6IGh0dHBzOi8vZ2l0aHViLmNvbS9LS291a2lvdQorLi4gX0BvbWVyaGFkYXJpOiBodHRw
czovL2dpdGh1Yi5jb20vb21lcmhhZGFyaQorLi4gX0BmYmpvcm46IGh0dHBzOi8vZ2l0aHViLmNv
bS9mYmpvcm4KKworLi4gXyMyMjQ4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzIyNDgKKy4uIF8jMjEzNzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yMTM3CisuLiBfIzIxNjA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMjE2MAorLi4gXyMyMjMxOiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyMzEKKy4uIF8jMjIzNDogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjM0CisuLiBfIzIyMzg6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjIzOAorLi4gXyMyMjgxOiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyODEKKworLi4gX1BFUC00Nzk6IGh0
dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0NzkvCisKKworMy4wLjYgKDIwMTct
MDEtMjIpCis9PT09PT09PT09PT09PT09PT0KKworKiBweXRlc3Qgbm8gbG9uZ2VyIGdlbmVyYXRl
cyBgYFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmdgYCBmcm9tIGl0cyBvd24gb3BlcmF0aW9ucywg
d2hpY2ggd2FzIGludHJvZHVjZWQgYnkgbWlzdGFrZSBpbiB2ZXJzaW9uIGBgMy4wLjVgYCAoYCMy
MTE4YF8pLgorICBUaGFua3MgdG8gYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBA
Um9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSLgorCisKKyogcHl0ZXN0IG5vIGxvbmdlciBy
ZWNvZ25pemVzIGNvcm91dGluZSBmdW5jdGlvbnMgYXMgeWllbGQgdGVzdHMgKGAjMjEyOWBfKS4K
KyAgVGhhbmtzIHRvIGBAbWFsaW5vZmZgXyBmb3IgdGhlIFBSLgorCisqIFBsdWdpbnMgbG9hZGVk
IGJ5IHRoZSBgYFBZVEVTVF9QTFVHSU5TYGAgZW52aXJvbm1lbnQgdmFyaWFibGUgYXJlIG5vdyBh
dXRvbWF0aWNhbGx5CisgIGNvbnNpZGVyZWQgZm9yIGFzc2VydGlvbiByZXdyaXRpbmcgKGAjMjE4
NWBfKS4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogSW1wcm92ZSBl
cnJvciBtZXNzYWdlIHdoZW4gcHl0ZXN0Lndhcm5zIGZhaWxzIChgIzIxNTBgXykuIFRoZSB0eXBl
KHMpIG9mIHRoZQorICBleHBlY3RlZCB3YXJuaW5ncyBhbmQgdGhlIGxpc3Qgb2YgY2F1Z2h0IHdh
cm5pbmdzIGlzIGFkZGVkIHRvIHRoZQorICBlcnJvciBtZXNzYWdlLiBUaGFua3MgYEBsZXN0ZXZl
YF8gZm9yIHRoZSBQUi4KKworKiBGaXggYGBweXRlc3RlcmBgIGludGVybmFsIHBsdWdpbiB0byB3
b3JrIGNvcnJlY3RseSB3aXRoIGxhdGVzdCB2ZXJzaW9ucyBvZgorICBgYHpvcGUuaW50ZXJmYWNl
YGAgKGAjMTk4OWBfKS4gVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogQXNz
ZXJ0IHN0YXRlbWVudHMgb2YgdGhlIGBgcHl0ZXN0ZXJgYCBwbHVnaW4gYWdhaW4gYmVuZWZpdCBm
cm9tIGFzc2VydGlvbiByZXdyaXRpbmcgKGAjMTkyMGBfKS4KKyAgVGhhbmtzIGBAUm9ubnlQZmFu
bnNjaG1pZHRgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4K
KworKiBTcGVjaWZ5aW5nIHRlc3RzIHdpdGggY29sb25zIGxpa2UgYGB0ZXN0X2Zvby5weTo6dGVz
dF9iYXJgYCBmb3IgdGVzdHMgaW4KKyAgc3ViZGlyZWN0b3JpZXMgd2l0aCBpbmkgY29uZmlndXJh
dGlvbiBmaWxlcyBub3cgdXNlcyB0aGUgY29ycmVjdCBpbmkgZmlsZQorICAoYCMyMTQ4YF8pLiAg
VGhhbmtzIGBAcGVsbWVgXy4KKworKiBGYWlsIGBgdGVzdGRpci5ydW5weXRlc3QoKS5hc3NlcnRf
b3V0Y29tZXMoKWBgIGV4cGxpY2l0bHkgaWYgdGhlIHB5dGVzdAorICB0ZXJtaW5hbCBvdXRwdXQg
aXQgcmVsaWVzIG9uIGlzIG1pc3NpbmcuIFRoYW5rcyB0byBgQGVsaS1iYF8gZm9yIHRoZSBQUi4K
KworCisuLiBfQGJhcm5leWdhbGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYXJuZXlnYWxlCisuLiBf
QGxlc3RldmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9sZXN0ZXZlCisuLiBfQG1hbGlub2ZmOiBodHRw
czovL2dpdGh1Yi5jb20vbWFsaW5vZmYKKy4uIF9AcGVsbWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9w
ZWxtZQorLi4gX0BlbGktYjogaHR0cHM6Ly9naXRodWIuY29tL2VsaS1iCisKKy4uIF8jMjExODog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTE4CisKKy4uIF8j
MTk4OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xOTg5Cisu
LiBfIzE5MjA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTky
MAorLi4gXyMyMTI5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzIxMjkKKy4uIF8jMjE0ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8yMTQ4CisuLiBfIzIxNTA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMjE1MAorLi4gXyMyMTg1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzIxODUKKworCiszLjAuNSAoMjAxNi0xMi0wNSkKKz09PT09PT09PT09PT09
PT09PQorCisqIEFkZCB3YXJuaW5nIHdoZW4gbm90IHBhc3NpbmcgYGBvcHRpb249dmFsdWVgYCBj
b3JyZWN0bHkgdG8gYGAtby8tLW92ZXJyaWRlLWluaWBgIChgIzIxMDVgXykuCisgIEFsc28gaW1w
cm92ZWQgdGhlIGhlbHAgZG9jdW1lbnRhdGlvbi4gVGhhbmtzIHRvIGBAbWJ1a2F0b3ZgXyBmb3Ig
dGhlIHJlcG9ydCBhbmQKKyAgYEBsd21gXyBmb3IgdGhlIFBSLgorCisqIE5vdyBgYC0tY29uZmN1
dGRpcmBgIGFuZCBgYC0tanVuaXQteG1sYGAgYXJlIHByb3Blcmx5IHZhbGlkYXRlZCBpZiB0aGV5
IGFyZSBkaXJlY3RvcmllcworICBhbmQgZmlsZW5hbWVzLCByZXNwZWN0aXZlbHkgKGAjMjA4OWBf
IGFuZCBgIzIwNzhgXykuIFRoYW5rcyB0byBgQGx3bWBfIGZvciB0aGUgUFIuCisKKyogQWRkIGhp
bnQgdG8gZXJyb3IgbWVzc2FnZSBoaW50aW5nIHBvc3NpYmxlIG1pc3NpbmcgYGBfX2luaXRfXy5w
eWBgIChgIzQ3OGBfKS4gVGhhbmtzIGBARHVuY2FuQmV0dHNgXy4KKworKiBNb3JlIGFjY3VyYXRl
bHkgZGVzY3JpYmUgd2hlbiBmaXh0dXJlIGZpbmFsaXphdGlvbiBvY2N1cnMgaW4gZG9jdW1lbnRh
dGlvbiAoYCM2ODdgXykuIFRoYW5rcyBgQER1bmNhbkJldHRzYF8uCisKKyogUHJvdmlkZSBgYDpy
ZWY6YGAgdGFyZ2V0cyBmb3IgYGByZWN3YXJuLnJzdGBgIHNvIHdlIGNhbiB1c2UgaW50ZXJzcGhp
bnggcmVmZXJlbmNpbmcuCisgIFRoYW5rcyB0byBgQGR1cHV5YF8gZm9yIHRoZSByZXBvcnQgYW5k
IGBAbHdtYF8gZm9yIHRoZSBQUi4KKworKiBJbiBQeXRob24gMiwgdXNlIGEgc2ltcGxlIGBgKy1g
YCBBU0NJSSBzdHJpbmcgaW4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBgYHB5dGVzdC5h
cHByb3hgYCAoZm9yIGV4YW1wbGUgYGAiNCArLSA0LjBlLTA2ImBgKQorICBiZWNhdXNlIGl0IGlz
IGJyaXR0bGUgdG8gaGFuZGxlIHRoYXQgaW4gZGlmZmVyZW50IGNvbnRleHRzIGFuZCByZXByZXNl
bnRhdGlvbnMgaW50ZXJuYWxseSBpbiBweXRlc3QKKyAgd2hpY2ggY2FuIHJlc3VsdCBpbiBidWdz
IHN1Y2ggYXMgYCMyMTExYF8uIEluIFB5dGhvbiAzLCB0aGUgcmVwcmVzZW50YXRpb24gc3RpbGwg
dXNlcyBgYMKxYGAgKGZvciBleGFtcGxlIGBgNCDCsSA0LjBlLTA2YGApLgorICBUaGFua3MgYEBr
ZXJyaWNrLWx5ZnRgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQ
Ui4KKworKiBVc2luZyBgYGl0ZW0uRnVuY3Rpb25gYCwgYGBpdGVtLk1vZHVsZWBgLCBldGMuLCBp
cyBub3cgaXNzdWluZyBkZXByZWNhdGlvbiB3YXJuaW5ncywgcHJlZmVyCisgIGBgcHl0ZXN0LkZ1
bmN0aW9uYGAsIGBgcHl0ZXN0Lk1vZHVsZWBgLCBldGMuLCBpbnN0ZWFkIChgIzIwMzRgXykuCisg
IFRoYW5rcyBgQG5tdW5kYXJgXyBmb3IgdGhlIFBSLgorCisqIEZpeCBlcnJvciBtZXNzYWdlIHVz
aW5nIGBgYXBwcm94YGAgd2l0aCBjb21wbGV4IG51bWJlcnMgKGAjMjA4MmBfKS4KKyAgVGhhbmtz
IGBAYWRsZXItamBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBS
LgorCisqIEZpeGVkIGZhbHNlLXBvc2l0aXZlcyB3YXJuaW5ncyBmcm9tIGFzc2VydGlvbiByZXdy
aXRlIGhvb2sgZm9yIG1vZHVsZXMgaW1wb3J0ZWQgbW9yZSB0aGFuCisgIG9uY2UgYnkgdGhlIGBg
cHl0ZXN0X3BsdWdpbnNgYCBtZWNoYW5pc20uCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3Ig
dGhlIFBSLgorCisqIFJlbW92ZSBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBjb3VsZCBjYXVzZSBo
b29rcyBmcm9tIGBgY29uZnRlc3QucHlgYCBmaWxlcyBpbgorICBzdWItZGlyZWN0b3JpZXMgdG8g
YmUgY2FsbGVkIGluIG90aGVyIGRpcmVjdG9yaWVzIGluY29ycmVjdGx5IChgIzIwMTZgXykuCisg
IFRoYW5rcyBgQGQtYi13YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0
aGUgUFIuCisKKyogUmVtb3ZlIGludGVybmFsIGNvZGUgbWVhbnQgdG8gc3VwcG9ydCBlYXJsaWVy
IFB5dGhvbiAzIHZlcnNpb25zIHRoYXQgcHJvZHVjZWQgdGhlIHNpZGUgZWZmZWN0CisgIG9mIGxl
YXZpbmcgYGBOb25lYGAgaW4gYGBzeXMubW9kdWxlc2BgIHdoZW4gZXhwcmVzc2lvbnMgd2VyZSBl
dmFsdWF0ZWQgYnkgcHl0ZXN0IChmb3IgZXhhbXBsZSBwYXNzaW5nIGEgY29uZGl0aW9uCisgIGFz
IGEgc3RyaW5nIHRvIGBgcHl0ZXN0Lm1hcmsuc2tpcGlmYGApKGAjMjEwM2BfKS4KKyAgVGhhbmtz
IGBAamFyYWNvYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIu
CisKKyogQ29wZSBncmFjZWZ1bGx5IHdpdGggYSAucHljIGZpbGUgd2l0aCBubyBtYXRjaGluZyAu
cHkgZmlsZSAoYCMyMDM4YF8pLiBUaGFua3MKKyAgYEBuZWRiYXRgXy4KKworLi4gX0BzeXJlOiBo
dHRwczovL2dpdGh1Yi5jb20vc3lyZQorLi4gX0BhZGxlci1qOiBodHRwczovL2dpdGh1Yi5jb20v
YWRsZXItagorLi4gX0BkLWItdzogaHR0cHM6Ly9iaXRidWNrZXQub3JnL2QtYi13LworLi4gX0BE
dW5jYW5CZXR0czogaHR0cHM6Ly9naXRodWIuY29tL0R1bmNhbkJldHRzCisuLiBfQGR1cHV5OiBo
dHRwczovL2JpdGJ1Y2tldC5vcmcvZHVwdXkvCisuLiBfQGtlcnJpY2stbHlmdDogaHR0cHM6Ly9n
aXRodWIuY29tL2tlcnJpY2stbHlmdAorLi4gX0Bsd206IGh0dHBzOi8vZ2l0aHViLmNvbS9sd20K
Ky4uIF9AbWJ1a2F0b3Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYnVrYXRvdgorLi4gX0BuZWRiYXQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9uZWRiYXQKKy4uIF9Abm11bmRhcjogaHR0cHM6Ly9naXRodWIu
Y29tL25tdW5kYXIKKworLi4gXyMyMDE2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzIwMTYKKy4uIF8jMjAzNDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yMDM0CisuLiBfIzIwMzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAzOAorLi4gXyMyMDc4OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIwNzgKKy4uIF8jMjA4MjogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMDgyCisuLiBfIzIwODk6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjA4OQorLi4gXyMyMTAzOiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxMDMKKy4uIF8jMjEwNTogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTA1CisuLiBfIzIxMTE6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjExMQorLi4gXyM0
Nzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDc4CisuLiBf
IzY4NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82ODcKKwor
CiszLjAuNCAoMjAxNi0xMS0wOSkKKz09PT09PT09PT09PT09PT09PQorCisqIEltcG9ydCBlcnJv
cnMgd2hlbiBjb2xsZWN0aW5nIHRlc3QgbW9kdWxlcyBub3cgZGlzcGxheSB0aGUgZnVsbCB0cmFj
ZWJhY2sgKGAjMTk3NmBfKS4KKyAgVGhhbmtzIGBAY3dpdHR5YF8gZm9yIHRoZSByZXBvcnQgYW5k
IGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4IGNvbmZ1c2luZyBjb21tYW5kLWxp
bmUgaGVscCBtZXNzYWdlIGZvciBjdXN0b20gb3B0aW9ucyB3aXRoIHR3byBvciBtb3JlIGBgbWV0
YXZhcmBgIHByb3BlcnRpZXMgKGAjMjAwNGBfKS4KKyAgVGhhbmtzIGBAb2t1bHlueWFrYF8gYW5k
IGBAZGF2ZWh1bnRgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQ
Ui4KKworKiBXaGVuIGxvYWRpbmcgcGx1Z2lucywgaW1wb3J0IGVycm9ycyB3aGljaCBjb250YWlu
IG5vbi1hc2NpaSBtZXNzYWdlcyBhcmUgbm93IHByb3Blcmx5IGhhbmRsZWQgaW4gUHl0aG9uIDIg
KGAjMTk5OGBfKS4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4
ZWQgY3ljbGljIHJlZmVyZW5jZSB3aGVuIGBgcHl0ZXN0LnJhaXNlc2BgIGlzIHVzZWQgaW4gY29u
dGV4dC1tYW5hZ2VyIGZvcm0gKGAjMTk2NWBfKS4gQWxzbyBhcyBhCisgIHJlc3VsdCBvZiB0aGlz
IGZpeCwgYGBzeXMuZXhjX2luZm8oKWBgIGlzIGxlZnQgZW1wdHkgaW4gYm90aCBjb250ZXh0LW1h
bmFnZXIgYW5kIGZ1bmN0aW9uIGNhbGwgdXNhZ2VzLgorICBQcmV2aW91c2x5LCBgYHN5cy5leGNf
aW5mb2BgIHdvdWxkIGNvbnRhaW4gdGhlIGV4Y2VwdGlvbiBjYXVnaHQgYnkgdGhlIGNvbnRleHQg
bWFuYWdlciwKKyAgZXZlbiB3aGVuIHRoZSBleHBlY3RlZCBleGNlcHRpb24gb2NjdXJyZWQuCisg
IFRoYW5rcyBgQE1TZWlmZXJ0MDRgXyBmb3IgdGhlIHJlcG9ydCBhbmQgdGhlIFBSLgorCisqIEZp
eGVkIGZhbHNlLXBvc2l0aXZlcyB3YXJuaW5ncyBmcm9tIGFzc2VydGlvbiByZXdyaXRlIGhvb2sg
Zm9yIG1vZHVsZXMgdGhhdCB3ZXJlIHJld3JpdHRlbiBidXQKKyAgd2VyZSBsYXRlciBtYXJrZWQg
ZXhwbGljaXRseSBieSBgYHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZWBgCisgIG9yIGlt
cGxpY2l0bHkgYXMgYSBwbHVnaW4gKGAjMjAwNWBfKS4KKyAgVGhhbmtzIGBAUm9ubnlQZmFubnNj
aG1pZHRgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKwor
KiBSZXBvcnQgdGVhcmRvd24gb3V0cHV0IG9uIHRlc3QgZmFpbHVyZSAoYCM0NDJgXykuCisgIFRo
YW5rcyBgQG1hdGNsYWJgXyBmb3IgdGhlIFBSLgorCisqIEZpeCB0ZWFyZG93biBlcnJvciBtZXNz
YWdlIGluIGdlbmVyYXRlZCB4VW5pdCBYTUwuCisgIFRoYW5rcyBgQGdkeXVsZGluYF8gZm9yIHRo
ZSBQUi4KKworKiBQcm9wZXJseSBoYW5kbGUgZXhjZXB0aW9ucyBpbiBgYG11bHRpcHJvY2Vzc2lu
Z2BgIHRhc2tzIChgIzE5ODRgXykuCisgIFRoYW5rcyBgQGFkYm9yZGVuYF8gZm9yIHRoZSByZXBv
cnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogQ2xlYW4gdXAgdW5pdHRlc3Qg
VGVzdENhc2Ugb2JqZWN0cyBhZnRlciB0ZXN0cyBhcmUgY29tcGxldGUgKGAjMTY0OWBfKS4KKyAg
VGhhbmtzIGBAZF9iX3dgXyBmb3IgdGhlIHJlcG9ydCBhbmQgUFIuCisKKworLi4gX0BhZGJvcmRl
bjogaHR0cHM6Ly9naXRodWIuY29tL2FkYm9yZGVuCisuLiBfQGN3aXR0eTogaHR0cHM6Ly9naXRo
dWIuY29tL2N3aXR0eQorLi4gX0BkX2JfdzogaHR0cHM6Ly9naXRodWIuY29tL2RfYl93CisuLiBf
QGdkeXVsZGluOiBodHRwczovL2dpdGh1Yi5jb20vZ2R5dWxkaW4KKy4uIF9AbWF0Y2xhYjogaHR0
cHM6Ly9naXRodWIuY29tL21hdGNsYWIKKy4uIF9ATVNlaWZlcnQwNDogaHR0cHM6Ly9naXRodWIu
Y29tL01TZWlmZXJ0MDQKKy4uIF9Ab2t1bHlueWFrOiBodHRwczovL2dpdGh1Yi5jb20vb2t1bHlu
eWFrCisKKy4uIF8jNDQyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQ0MgorLi4gXyMxOTY1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzE5NjUKKy4uIF8jMTk3NjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8xOTc2CisuLiBfIzE5ODQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMTk4NAorLi4gXyMxOTk4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzE5OTgKKy4uIF8jMjAwNDogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMDA0CisuLiBfIzIwMDU6IGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAwNQorLi4gXyMxNjQ5OiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2NDkKKworCiszLjAuMyAoMjAxNi0wOS0y
OCkKKz09PT09PT09PT09PT09PT09PQorCisqIFRoZSBgYGlkc2BgIGFyZ3VtZW50IHRvIGBgcGFy
YW1ldHJpemVgYCBhZ2FpbiBhY2NlcHRzIGBgdW5pY29kZWBgIHN0cmluZ3MKKyAgaW4gUHl0aG9u
IDIgKGAjMTkwNWBfKS4KKyAgVGhhbmtzIGBAcGhpbHBlcGBfIGZvciB0aGUgcmVwb3J0IGFuZCBg
QG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEFzc2VydGlvbnMgYXJlIG5vdyBiZWluZyBy
ZXdyaXR0ZW4gZm9yIHBsdWdpbnMgaW4gZGV2ZWxvcG1lbnQgbW9kZQorICAoYGBwaXAgaW5zdGFs
bCAtZWBgKSAoYCMxOTM0YF8pLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4K
KworKiBGaXggcGtnX3Jlc291cmNlcyBpbXBvcnQgZXJyb3IgaW4gSnl0aG9uIHByb2plY3RzIChg
IzE4NTNgXykuCisgIFRoYW5rcyBgQHJhcXVlbC11Y2xgXyBmb3IgdGhlIFBSLgorCisqIEdvdCBy
aWQgb2YgYGBBdHRyaWJ1dGVFcnJvcjogJ01vZHVsZScgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUg
J19vYmonYGAgZXhjZXB0aW9uCisgIGluIFB5dGhvbiAzIChgIzE5NDRgXykuCisgIFRoYW5rcyBg
QGF4aWxgXyBmb3IgdGhlIFBSLgorCisqIEV4cGxhaW4gYSBiYWQgc2NvcGUgdmFsdWUgcGFzc2Vk
IHRvIGBgQGZpeHR1cmVgYCBkZWNsYXJhdGlvbnMgb3IKKyAgYSBgYE1ldGFGdW5jLnBhcmFtZXRy
aXplKClgYCBjYWxsLiBUaGFua3MgYEB0Z29vZGxldGBfIGZvciB0aGUgUFIuCisKKyogVGhpcyB2
ZXJzaW9uIGluY2x1ZGVzIGBgcGx1Z2d5LTAuNC4wYGAsIHdoaWNoIGNvcnJlY3RseSBoYW5kbGVz
CisgIGBgVmVyc2lvbkNvbmZsaWN0YGAgZXJyb3JzIGluIHBsdWdpbnMgKGAjNzA0YF8pLgorICBU
aGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworCisuLiBfQHBoaWxwZXA6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9waGlscGVwCisuLiBfQHJhcXVlbC11Y2w6IGh0dHBzOi8vZ2l0aHViLmNv
bS9yYXF1ZWwtdWNsCisuLiBfQGF4aWw6IGh0dHBzOi8vZ2l0aHViLmNvbS9heGlsCisuLiBfQHRn
b29kbGV0OiBodHRwczovL2dpdGh1Yi5jb20vdGdvb2RsZXQKKy4uIF9AdmxhZC1kcmFnb3M6IGh0
dHBzOi8vZ2l0aHViLmNvbS92bGFkLWRyYWdvcworCisuLiBfIzE4NTM6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTg1MworLi4gXyMxOTA1OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE5MDUKKy4uIF8jMTkzNDogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xOTM0CisuLiBfIzE5NDQ6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTk0NAorLi4gXyM3MDQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNzA0CisKKworCisK
KzMuMC4yICgyMDE2LTA5LTAxKQorPT09PT09PT09PT09PT09PT09CisKKyogSW1wcm92ZSBlcnJv
ciBtZXNzYWdlIHdoZW4gcGFzc2luZyBub24tc3RyaW5nIGlkcyB0byBgYHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplYGAgKGAjMTg1N2BfKS4KKyAgVGhhbmtzIGBAb2trZW5gXyBmb3IgdGhlIHJlcG9y
dCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBBZGQgYGBidWZmZXJgYCBhdHRy
aWJ1dGUgdG8gc3RkaW4gc3R1YiBjbGFzcyBgYHB5dGVzdC5jYXB0dXJlLkRvbnRSZWFkRnJvbUlu
cHV0YGAKKyAgVGhhbmtzIGBAam9ndVNEYF8gZm9yIHRoZSBQUi4KKworKiBGaXggYGBVbmljb2Rl
RW5jb2RlRXJyb3JgYCB3aGVuIHN0cmluZyBjb21wYXJpc29uIHdpdGggdW5pY29kZSBoYXMgZmFp
bGVkLiAoYCMxODY0YF8pCisgIFRoYW5rcyBgQEFpT09gXyBmb3IgdGhlIFBSLgorCisqIGBgcHl0
ZXN0X3BsdWdpbnNgYCBpcyBub3cgaGFuZGxlZCBjb3JyZWN0bHkgaWYgZGVmaW5lZCBhcyBhIHN0
cmluZyAoYXMgb3Bwb3NlZCBhcworICBhIHNlcXVlbmNlIG9mIHN0cmluZ3MpIHdoZW4gbW9kdWxl
cyBhcmUgY29uc2lkZXJlZCBmb3IgYXNzZXJ0aW9uIHJld3JpdGluZy4KKyAgRHVlIHRvIHRoaXMg
YnVnLCBtdWNoIG1vcmUgbW9kdWxlcyB3ZXJlIGJlaW5nIHJld3JpdHRlbiB0aGFuIG5lY2Vzc2Fy
eQorICBpZiBhIHRlc3Qgc3VpdGUgdXNlcyBgYHB5dGVzdF9wbHVnaW5zYGAgdG8gbG9hZCBpbnRl
cm5hbCBwbHVnaW5zIChgIzE4ODhgXykuCisgIFRoYW5rcyBgQGphcmFjb2BfIGZvciB0aGUgcmVw
b3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzE4OTFgXykuCisKKyogRG8gbm90
IGNhbGwgdGVhckRvd24gYW5kIGNsZWFudXBzIHdoZW4gcnVubmluZyB0ZXN0cyBmcm9tCisgIGBg
dW5pdHRlc3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzIHdpdGggYGAtLXBkYmBgCisgIGVuYWJsZWQu
IFRoaXMgYWxsb3dzIHByb3BlciBwb3N0IG1vcnRlbSBkZWJ1Z2dpbmcgZm9yIGFsbCBhcHBsaWNh
dGlvbnMKKyAgd2hpY2ggaGF2ZSBzaWduaWZpY2FudCBsb2dpYyBpbiB0aGVpciB0ZWFyRG93biBt
YWNoaW5lcnkgKGAjMTg5MGBfKS4gVGhhbmtzCisgIGBAbWJ5dGBfIGZvciB0aGUgUFIuCisKKyog
Rml4IHVzZSBvZiBkZXByZWNhdGVkIGBgZ2V0ZnVuY2FyZ3ZhbHVlYGAgbWV0aG9kIGluIHRoZSBp
bnRlcm5hbCBkb2N0ZXN0IHBsdWdpbi4KKyAgVGhhbmtzIGBAVml2aUNvZGVyYF8gZm9yIHRoZSBy
ZXBvcnQgKGAjMTg5OGBfKS4KKworLi4gX0Bqb2d1U0Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb2d1
U0QKKy4uIF9AQWlPTzogaHR0cHM6Ly9naXRodWIuY29tL0FpT08KKy4uIF9AbWJ5dDogaHR0cHM6
Ly9naXRodWIuY29tL21ieXQKKy4uIF9AVml2aUNvZGVyOiBodHRwczovL2dpdGh1Yi5jb20vVml2
aUNvZGVyCisKKy4uIF8jMTg1NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8xODU3CisuLiBfIzE4NjQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMTg2NAorLi4gXyMxODg4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzE4ODgKKy4uIF8jMTg5MTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L3B1bGwvMTg5MQorLi4gXyMxODkwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE4OTAKKy4uIF8jMTg5ODogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xODk4CisKKworMy4wLjEgKDIwMTYtMDgtMjMpCis9
PT09PT09PT09PT09PT09PT0KKworKiBGaXggcmVncmVzc2lvbiB3aGVuIGBgaW1wb3J0b3Jza2lw
YGAgaXMgdXNlZCBhdCBtb2R1bGUgbGV2ZWwgKGAjMTgyMmBfKS4KKyAgVGhhbmtzIGBAamFyYWNv
YF8gYW5kIGBAVGhlLUNvbXBpbGVyYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2Bf
IGZvciB0aGUgUFIuCisKKyogRml4IHBhcmFtZXRyaXphdGlvbiBzY29wZSB3aGVuIHNlc3Npb24g
Zml4dHVyZXMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb24KKyAgd2l0aCBub3JtYWwgcGFyYW1ldGVy
cyBpbiB0aGUgc2FtZSBjYWxsIChgIzE4MzJgXykuCisgIFRoYW5rcyBgQFRoZS1Db21waWxlcmBf
IGZvciB0aGUgcmVwb3J0LCBgQEtpbmdkcmVhZGBfIGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhl
IFBSLgorCisqIEZpeCBpbnRlcm5hbCBlcnJvciB3aGVuIHBhcmFtZXRyaXppbmcgdGVzdHMgb3Ig
Zml4dHVyZXMgdXNpbmcgYW4gZW1wdHkgYGBpZHNgYCBhcmd1bWVudCAoYCMxODQ5YF8pLgorICBU
aGFua3MgYEBPUHB1b2xpdGFpdmFsYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2Bf
IGZvciB0aGUgUFIuCisKKyogRml4IGxvYWRlciBlcnJvciB3aGVuIHJ1bm5pbmcgYGBweXRlc3Rg
YCBlbWJlZGRlZCBpbiBhIHppcGZpbGUuCisgIFRoYW5rcyBgQG1iYWNocnlgXyBmb3IgdGhlIFBS
LgorCisKKy4uIF9AS2luZ2RyZWFkOiBodHRwczovL2dpdGh1Yi5jb20vS2luZ2RyZWFkCisuLiBf
QG1iYWNocnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYmFjaHJ5CisuLiBfQE9QcHVvbGl0YWl2YWw6
IGh0dHBzOi8vZ2l0aHViLmNvbS9PUHB1b2xpdGFpdmFsCisKKy4uIF8jMTgyMjogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xODIyCisuLiBfIzE4MzI6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTgzMgorLi4gXyMxODQ5OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE4NDkKKworCiszLjAu
MCAoMjAxNi0wOC0xOCkKKz09PT09PT09PT09PT09PT09PQorCisqKkluY29tcGF0aWJsZSBjaGFu
Z2VzKioKKworCitBIG51bWJlciBvZiBpbmNvbXBhdGlibGUgY2hhbmdlcyB3ZXJlIG1hZGUgaW4g
dGhpcyByZWxlYXNlLCB3aXRoIHRoZSBpbnRlbnQgb2YgcmVtb3ZpbmcgZmVhdHVyZXMgZGVwcmVj
YXRlZCBmb3IgYSBsb25nCit0aW1lIG9yIGNoYW5nZSBleGlzdGluZyBiZWhhdmlvcnMgaW4gb3Jk
ZXIgdG8gbWFrZSB0aGVtIGxlc3Mgc3VycHJpc2luZy9tb3JlIHVzZWZ1bC4KKworKiBSZWludGVy
cHJldGF0aW9uIG1vZGUgaGFzIG5vdyBiZWVuIHJlbW92ZWQuICBPbmx5IHBsYWluIGFuZCByZXdy
aXRlCisgIG1vZGUgYXJlIGF2YWlsYWJsZSwgY29uc2VxdWVudGx5IHRoZSBgYC0tYXNzZXJ0PXJl
aW50ZXJwYGAgb3B0aW9uIGlzCisgIG5vIGxvbmdlciBhdmFpbGFibGUuICBUaGlzIGFsc28gbWVh
bnMgZmlsZXMgaW1wb3J0ZWQgZnJvbSBwbHVnaW5zIG9yCisgIGBgY29uZnRlc3QucHlgYCB3aWxs
IG5vdCBiZW5lZml0IGZyb20gaW1wcm92ZWQgYXNzZXJ0aW9ucyBieQorICBkZWZhdWx0LCB5b3Ug
c2hvdWxkIHVzZSBgYHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZSgpYGAgdG8KKyAgZXhw
bGljaXRseSB0dXJuIG9uIGFzc2VydGlvbiByZXdyaXRpbmcgZm9yIHRob3NlIGZpbGVzLiAgVGhh
bmtzCisgIGBAZmx1YmBfIGZvciB0aGUgUFIuCisKKyogVGhlIGZvbGxvd2luZyBkZXByZWNhdGVk
IGNvbW1hbmRsaW5lIG9wdGlvbnMgd2VyZSByZW1vdmVkOgorCisgICogYGAtLWdlbnNjcmlwdGBg
OiBubyBsb25nZXIgc3VwcG9ydGVkOworICAqIGBgLS1uby1hc3NlcnRgYDogdXNlIGBgLS1hc3Nl
cnQ9cGxhaW5gYCBpbnN0ZWFkOworICAqIGBgLS1ub21hZ2ljYGA6IHVzZSBgYC0tYXNzZXJ0PXBs
YWluYGAgaW5zdGVhZDsKKyAgKiBgYC0tcmVwb3J0YGA6IHVzZSBgYC1yYGAgaW5zdGVhZDsKKwor
ICBUaGFua3MgdG8gYEBSZWRCZWFyZENvZGVgXyBmb3IgdGhlIFBSIChgIzE2NjRgXykuCisKKyog
SW1wb3J0RXJyb3JzIGluIHBsdWdpbnMgbm93IGFyZSBhIGZhdGFsIGVycm9yIGluc3RlYWQgb2Yg
aXNzdWluZyBhCisgIHB5dGVzdCB3YXJuaW5nIChgIzE0NzlgXykuIFRoYW5rcyB0byBgQFRoZS1D
b21waWxlcmBfIGZvciB0aGUgUFIuCisKKyogUmVtb3ZlZCBzdXBwb3J0IGNvZGUgZm9yIFB5dGhv
biAzIHZlcnNpb25zIDwgMy4zIChgIzE2MjdgXykuCisKKyogUmVtb3ZlZCBhbGwgYGBweS50ZXN0
LVgqYGAgZW50cnkgcG9pbnRzLiBUaGUgdmVyc2lvbmVkLCBzdWZmaXhlZCBlbnRyeSBwb2ludHMK
KyAgd2VyZSBuZXZlciBkb2N1bWVudGVkIGFuZCBhIGxlZnRvdmVyIGZyb20gYSBwcmUtdmlydHVh
bGVudiBlcmEuIFRoZXNlIGVudHJ5CisgIHBvaW50cyBhbHNvIGNyZWF0ZWQgYnJva2VuIGVudHJ5
IHBvaW50cyBpbiB3aGVlbHMsIHNvIHJlbW92aW5nIHRoZW0gYWxzbworICByZW1vdmVzIGEgc291
cmNlIG9mIGNvbmZ1c2lvbiBmb3IgdXNlcnMgKGAjMTYzMmBfKS4KKyAgVGhhbmtzIGBAb2Jlc3R3
YWx0ZXJgXyBmb3IgdGhlIFBSLgorCisqIGBgcHl0ZXN0LnNraXAoKWBgIG5vdyByYWlzZXMgYW4g
ZXJyb3Igd2hlbiB1c2VkIHRvIGRlY29yYXRlIGEgdGVzdCBmdW5jdGlvbiwKKyAgYXMgb3Bwb3Nl
ZCB0byBpdHMgb3JpZ2luYWwgaW50ZW50ICh0byBpbXBlcmF0aXZlbHkgc2tpcCBhIHRlc3QgaW5z
aWRlIGEgdGVzdCBmdW5jdGlvbikuIFByZXZpb3VzbHkKKyAgdGhpcyB1c2FnZSB3b3VsZCBjYXVz
ZSB0aGUgZW50aXJlIG1vZHVsZSB0byBiZSBza2lwcGVkIChgIzYwN2BfKS4KKyAgVGhhbmtzIGBA
b21hcmtvaGxgXyBmb3IgdGhlIGNvbXBsZXRlIFBSIChgIzE1MTlgXykuCisKKyogRXhpdCB0ZXN0
cyBpZiBhIGNvbGxlY3Rpb24gZXJyb3Igb2NjdXJzLiBBIHBvbGwgaW5kaWNhdGVkIG1vc3QgdXNl
cnMgd2lsbCBoaXQgQ1RSTC1DCisgIGFueXdheSBhcyBzb29uIGFzIHRoZXkgc2VlIGNvbGxlY3Rp
b24gZXJyb3JzLCBzbyBweXRlc3QgbWlnaHQgYXMgd2VsbCBtYWtlIHRoYXQgdGhlIGRlZmF1bHQg
YmVoYXZpb3IgKGAjMTQyMWBfKS4KKyAgQSBgYC0tY29udGludWUtb24tY29sbGVjdGlvbi1lcnJv
cnNgYCBvcHRpb24gaGFzIGJlZW4gYWRkZWQgdG8gcmVzdG9yZSB0aGUgcHJldmlvdXMgYmVoYXZp
b3VyLgorICBUaGFua3MgYEBvbGVncGlkc2FkbnlpYF8gYW5kIGBAb21hcmtvaGxgXyBmb3IgdGhl
IGNvbXBsZXRlIFBSIChgIzE2MjhgXykuCisKKyogUmVuYW1lZCB0aGUgcHl0ZXN0IGBgcGRiYGAg
bW9kdWxlIChwbHVnaW4pIGludG8gYGBkZWJ1Z2dpbmdgYCB0byBhdm9pZCBjbGFzaGVzIHdpdGgg
dGhlIGJ1aWx0aW4gYGBwZGJgYCBtb2R1bGUuCisKKyogUmFpc2UgYSBoZWxwZnVsIGZhaWx1cmUg
bWVzc2FnZSB3aGVuIHJlcXVlc3RpbmcgYSBwYXJhbWV0cml6ZWQgZml4dHVyZSBhdCBydW50aW1l
LAorICBlLmcuIHdpdGggYGByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZWBgLiBQcmV2aW91c2x5IHRo
ZXNlIHBhcmFtZXRlcnMgd2VyZSBzaW1wbHkKKyAgbmV2ZXIgZGVmaW5lZCwgc28gYSBmaXh0dXJl
IGRlY29yYXRlZCBsaWtlIGBgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pYGAKKyAg
b25seSByYW4gb25jZSAoYCM0NjBgXykuCisgIFRoYW5rcyB0byBgQG5pa3JhdGlvYF8gZm9yIHRo
ZSBidWcgcmVwb3J0LCBgQFJlZEJlYXJkQ29kZWBfIGFuZCBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQ
Ui4KKworKiBgYF9weXRlc3QubW9ua2V5cGF0Y2gubW9ua2V5cGF0Y2hgYCBjbGFzcyBoYXMgYmVl
biByZW5hbWVkIHRvIGBgX3B5dGVzdC5tb25rZXlwYXRjaC5Nb25rZXlQYXRjaGBgCisgIHNvIGl0
IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUuCisKKyog
YGAtLWV4aXRmaXJzdCAvIC14YGAgY2FuIG5vdyBiZSBvdmVycmlkZGVuIGJ5IGEgZm9sbG93aW5n
IGBgLS1tYXhmYWlsPU5gYAorICBhbmQgaXMganVzdCBhIHN5bm9ueW0gZm9yIGBgLS1tYXhmYWls
PTFgYC4KKworCisqKk5ldyBGZWF0dXJlcyoqCisKKyogU3VwcG9ydCBub3NlLXN0eWxlIGBgX190
ZXN0X19gYCBhdHRyaWJ1dGUgb24gbWV0aG9kcyBvZiBjbGFzc2VzLAorICBpbmNsdWRpbmcgdW5p
dHRlc3Qtc3R5bGUgQ2xhc3Nlcy4gSWYgc2V0IHRvIGBgRmFsc2VgYCwgdGhlIHRlc3Qgd2lsbCBu
b3QgYmUKKyAgY29sbGVjdGVkLgorCisqIE5ldyBgYGRvY3Rlc3RfbmFtZXNwYWNlYGAgZml4dHVy
ZSBmb3IgaW5qZWN0aW5nIG5hbWVzIGludG8gdGhlCisgIG5hbWVzcGFjZSBpbiB3aGljaCBkb2N0
ZXN0cyBydW4uCisgIFRoYW5rcyBgQG1pbGxpYW1zYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMx
NDI4YF8pLgorCisqIE5ldyBgYC0tZG9jdGVzdC1yZXBvcnRgYCBvcHRpb24gYXZhaWxhYmxlIHRv
IGNoYW5nZSB0aGUgb3V0cHV0IGZvcm1hdCBvZiBkaWZmcworICB3aGVuIHJ1bm5pbmcgKGZhaWxp
bmcpIGRvY3Rlc3RzIChpbXBsZW1lbnRzIGAjMTc0OWBfKS4KKyAgVGhhbmtzIGBAaGFydHltYF8g
Zm9yIHRoZSBQUi4KKworKiBOZXcgYGBuYW1lYGAgYXJndW1lbnQgdG8gYGBweXRlc3QuZml4dHVy
ZWBgIGRlY29yYXRvciB3aGljaCBhbGxvd3MgYSBjdXN0b20gbmFtZQorICBmb3IgYSBmaXh0dXJl
ICh0byBzb2x2ZSB0aGUgZnVuY2FyZy1zaGFkb3dpbmctZml4dHVyZSBwcm9ibGVtKS4KKyAgVGhh
bmtzIGBAbm92YXMweDJhYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxNDQ0YF8pLgorCisqIE5l
dyBgYGFwcHJveCgpYGAgZnVuY3Rpb24gZm9yIGVhc2lseSBjb21wYXJpbmcgZmxvYXRpbmctcG9p
bnQgbnVtYmVycyBpbgorICB0ZXN0cy4KKyAgVGhhbmtzIGBAa2FsZWt1bmRlcnRgXyBmb3IgdGhl
IGNvbXBsZXRlIFBSIChgIzE0NDFgXykuCisKKyogQWJpbGl0eSB0byBhZGQgZ2xvYmFsIHByb3Bl
cnRpZXMgaW4gdGhlIGZpbmFsIHh1bml0IG91dHB1dCBmaWxlIGJ5IGFjY2Vzc2luZworICB0aGUg
aW50ZXJuYWwgYGBqdW5pdHhtbGBgIHBsdWdpbiAoZXhwZXJpbWVudGFsKS4KKyAgVGhhbmtzIGBA
dGFyZXFhbGF5YW5gXyBmb3IgdGhlIGNvbXBsZXRlIFBSIGAjMTQ1NGBfKS4KKworKiBOZXcgYGBF
eGNlcHRpb25JbmZvLm1hdGNoKClgYCBtZXRob2QgdG8gbWF0Y2ggYSByZWd1bGFyIGV4cHJlc3Np
b24gb24gdGhlCisgIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBleGNlcHRpb24gKGAjMzcy
YF8pLgorICBUaGFua3MgYEBvbWFya29obGBfIGZvciB0aGUgY29tcGxldGUgUFIgKGAjMTUwMmBf
KS4KKworKiBgYF9fdHJhY2ViYWNraGlkZV9fYGAgY2FuIG5vdyBhbHNvIGJlIHNldCB0byBhIGNh
bGxhYmxlIHdoaWNoIHRoZW4gY2FuIGRlY2lkZQorICB3aGV0aGVyIHRvIGZpbHRlciB0aGUgdHJh
Y2ViYWNrIGJhc2VkIG9uIHRoZSBgYEV4Y2VwdGlvbkluZm9gYCBvYmplY3QgcGFzc2VkCisgIHRv
IGl0LiBUaGFua3MgYEBUaGUtQ29tcGlsZXJgXyBmb3IgdGhlIGNvbXBsZXRlIFBSIChgIzE1MjZg
XykuCisKKyogTmV3IGBgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2YWwpYGAg
aG9vayB3aGljaCBjYW4gYmUgdXNlZCBieSBwbHVnaW5zIHRvIHByb3ZpZGUKKyAgZnJpZW5kbHkg
c3RyaW5ncyBmb3IgY3VzdG9tIHR5cGVzLgorICBUaGFua3MgYEBwYWxhdml2YF8gZm9yIHRoZSBQ
Ui4KKworKiBgYGNhcHN5c2BgIGFuZCBgYGNhcGZkYGAgbm93IGhhdmUgYSBgYGRpc2FibGVkKClg
YCBjb250ZXh0LW1hbmFnZXIgbWV0aG9kLCB3aGljaAorICBjYW4gYmUgdXNlZCB0byB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGNhcHR1cmUgd2l0aGluIGEgdGVzdC4KKyAgVGhhbmtzIGBAbmljb2RkZW11
c2BfIGZvciB0aGUgUFIuCisKKyogTmV3IGNsaSBmbGFnIGBgLS1maXh0dXJlcy1wZXItdGVzdGBg
OiBzaG93cyB3aGljaCBmaXh0dXJlcyBhcmUgYmVpbmcgdXNlZAorICBmb3IgZWFjaCBzZWxlY3Rl
ZCB0ZXN0IGl0ZW0uIEZlYXR1cmVzIGRvYyBzdHJpbmdzIG9mIGZpeHR1cmVzIGJ5IGRlZmF1bHQu
CisgIENhbiBhbHNvIHNob3cgd2hlcmUgZml4dHVyZXMgYXJlIGRlZmluZWQgaWYgY29tYmluZWQg
d2l0aCBgYC12YGAuCisgIFRoYW5rcyBgQGhhY2tlYnJvdGBfIGZvciB0aGUgUFIuCisKKyogSW50
cm9kdWNlIGBgcHl0ZXN0YGAgY29tbWFuZCBhcyByZWNvbW1lbmRlZCBlbnRyeSBwb2ludC4gTm90
ZSB0aGF0IGBgcHkudGVzdGBgCisgIHN0aWxsIHdvcmtzIGFuZCBpcyBub3Qgc2NoZWR1bGVkIGZv
ciByZW1vdmFsLiBDbG9zZXMgcHJvcG9zYWwKKyAgYCMxNjI5YF8uIFRoYW5rcyBgQG9iZXN0d2Fs
dGVyYF8gYW5kIGBAZGF2ZWh1bnRgXyBmb3IgdGhlIGNvbXBsZXRlIFBSCisgIChgIzE2MzNgXyku
CisKKyogTmV3IGNsaSBmbGFnczoKKworICArIGBgLS1zZXR1cC1wbGFuYGA6IHBlcmZvcm1zIG5v
cm1hbCBjb2xsZWN0aW9uIGFuZCByZXBvcnRzCisgICAgdGhlIHBvdGVudGlhbCBzZXR1cCBhbmQg
dGVhcmRvd24gYW5kIGRvZXMgbm90IGV4ZWN1dGUgYW55IGZpeHR1cmVzIGFuZCB0ZXN0czsKKyAg
KyBgYC0tc2V0dXAtb25seWBgOiBwZXJmb3JtcyBub3JtYWwgY29sbGVjdGlvbiwgZXhlY3V0ZXMg
c2V0dXAgYW5kIHRlYXJkb3duIG9mCisgICAgZml4dHVyZXMgYW5kIHJlcG9ydHMgdGhlbTsKKyAg
KyBgYC0tc2V0dXAtc2hvd2BgOiBwZXJmb3JtcyBub3JtYWwgdGVzdCBleGVjdXRpb24gYW5kIGFk
ZGl0aW9uYWxseSBzaG93cworICAgIHNldHVwIGFuZCB0ZWFyZG93biBvZiBmaXh0dXJlczsKKyAg
KyBgYC0ta2VlcC1kdXBsaWNhdGVzYGA6IHB5LnRlc3Qgbm93IGlnbm9yZXMgZHVwbGljYXRlZCBw
YXRocyBnaXZlbiBpbiB0aGUgY29tbWFuZAorICAgIGxpbmUuIFRvIHJldGFpbiB0aGUgcHJldmlv
dXMgYmVoYXZpb3Igd2hlcmUgdGhlIHNhbWUgdGVzdCBjb3VsZCBiZSBydW4gbXVsdGlwbGUKKyAg
ICB0aW1lcyBieSBzcGVjaWZ5aW5nIGl0IGluIHRoZSBjb21tYW5kLWxpbmUgbXVsdGlwbGUgdGlt
ZXMsIHBhc3MgdGhlIGBgLS1rZWVwLWR1cGxpY2F0ZXNgYAorICAgIGFyZ3VtZW50IChgIzE2MDlg
Xyk7CisKKyAgVGhhbmtzIGBAZDZlYF8sIGBAa3Zhcy1pdGBfLCBgQHNhbGxuZXJgXywgYEBpb2dn
c3RyZWFtYF8gYW5kIGBAb21hcmtvaGxgXyBmb3IgdGhlIFBScy4KKworKiBOZXcgQ0xJIGZsYWcg
YGAtLW92ZXJyaWRlLWluaWBgL2BgLW9gYDogb3ZlcnJpZGVzIHZhbHVlcyBmcm9tIHRoZSBpbmkg
ZmlsZS4KKyAgRm9yIGV4YW1wbGU6IGBgIi1vIHhmYWlsX3N0cmljdD1UcnVlImBgJy4KKyAgVGhh
bmtzIGBAYmx1ZXllZGBfIGFuZCBgQGZlbmd4eGBfIGZvciB0aGUgUFIuCisKKyogTmV3IGhvb2tz
OgorCisgICsgYGBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KWBgOiBl
eGVjdXRlcyBmaXh0dXJlIHNldHVwOworICArIGBgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6
ZXIoZml4dHVyZWRlZilgYDogY2FsbGVkIGFmdGVyIHRoZSBmaXh0dXJlJ3MKKyAgICBmaW5hbGl6
ZXIgYW5kIGhhcyBhY2Nlc3MgdG8gdGhlIGZpeHR1cmUncyByZXN1bHQgY2FjaGUuCisKKyAgVGhh
bmtzIGBAZDZlYF8sIGBAc2FsbG5lcmBfLgorCisqIElzc3VlIHdhcm5pbmdzIGZvciBhc3NlcnRz
IHdob3NlIHRlc3QgaXMgYSB0dXBsZSBsaXRlcmFsLiBTdWNoIGFzc2VydHMgd2lsbAorICBuZXZl
ciBmYWlsIGJlY2F1c2UgdHVwbGVzIGFyZSBhbHdheXMgdHJ1dGh5IGFuZCBhcmUgdXN1YWxseSBh
IG1pc3Rha2UKKyAgKHNlZSBgIzE1NjJgXykuIFRoYW5rcyBgQGt2YXMtaXRgXywgZm9yIHRoZSBQ
Ui4KKworKiBBbGxvdyBwYXNzaW5nIGEgY3VzdG9tIGRlYnVnZ2VyIGNsYXNzIChlLmcuIGBgLS1w
ZGJjbHM9SVB5dGhvbi5jb3JlLmRlYnVnZ2VyOlBkYmBgKS4KKyAgVGhhbmtzIHRvIGBAYW5udHpl
cmBfIGZvciB0aGUgUFIuCisKKworKipDaGFuZ2VzKioKKworKiBQbHVnaW5zIG5vdyBiZW5lZml0
IGZyb20gYXNzZXJ0aW9uIHJld3JpdGluZy4gIFRoYW5rcworICBgQHNvYmVyN2BfLCBgQG5pY29k
ZGVtdXNgXyBhbmQgYEBmbHViYF8gZm9yIHRoZSBQUi4KKworKiBDaGFuZ2UgYGByZXBvcnQub3V0
Y29tZWBgIGZvciBgYHhwYXNzZWRgYCB0ZXN0cyB0byBgYCJwYXNzZWQiYGAgaW4gbm9uLXN0cmlj
dAorICBtb2RlIGFuZCBgYCJmYWlsZWQiYGAgaW4gc3RyaWN0IG1vZGUuIFRoYW5rcyB0byBgQGhh
Y2tlYnJvdGBfIGZvciB0aGUgUFIKKyAgKGAjMTc5NWBfKSBhbmQgYEBncHJhc2FkODRgXyBmb3Ig
cmVwb3J0IChgIzE1NDZgXykuCisKKyogVGVzdHMgbWFya2VkIHdpdGggYGB4ZmFpbChzdHJpY3Q9
RmFsc2UpYGAgKHRoZSBkZWZhdWx0KSBub3cgYXBwZWFyIGluCisgIEpVbml0WE1MIHJlcG9ydHMg
YXMgcGFzc2luZyB0ZXN0cyBpbnN0ZWFkIG9mIHNraXBwZWQuCisgIFRoYW5rcyB0byBgQGhhY2tl
YnJvdGBfIGZvciB0aGUgUFIgKGAjMTc5NWBfKS4KKworKiBIaWdobGlnaHQgcGF0aCBvZiB0aGUg
ZmlsZSBsb2NhdGlvbiBpbiB0aGUgZXJyb3IgcmVwb3J0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNv
cHkvcGFzdGUuCisgIFRoYW5rcyBgQHN1emFrdWBfIGZvciB0aGUgUFIgKGAjMTc3OGBfKS4KKwor
KiBGaXh0dXJlcyBtYXJrZWQgd2l0aCBgYEBweXRlc3QuZml4dHVyZWBgIGNhbiBub3cgdXNlIGBg
eWllbGRgYCBzdGF0ZW1lbnRzIGV4YWN0bHkgbGlrZQorICB0aG9zZSBtYXJrZWQgd2l0aCB0aGUg
YGBAcHl0ZXN0LnlpZWxkX2ZpeHR1cmVgYCBkZWNvcmF0b3IuIFRoaXMgY2hhbmdlIHJlbmRlcnMK
KyAgYGBAcHl0ZXN0LnlpZWxkX2ZpeHR1cmVgYCBkZXByZWNhdGVkIGFuZCBtYWtlcyBgYEBweXRl
c3QuZml4dHVyZWBgIHdpdGggYGB5aWVsZGBgIHN0YXRlbWVudHMKKyAgdGhlIHByZWZlcnJlZCB3
YXkgdG8gd3JpdGUgdGVhcmRvd24gY29kZSAoYCMxNDYxYF8pLgorICBUaGFua3MgYEBjc2FmdG9p
dWBfIGZvciBicmluZ2luZyB0aGlzIHRvIGF0dGVudGlvbiBhbmQgYEBuaWNvZGRlbXVzYF8gZm9y
IHRoZSBQUi4KKworKiBFeHBsaWNpdGx5IHBhc3NlZCBwYXJhbWV0cml6ZSBpZHMgZG8gbm90IGdl
dCBlc2NhcGVkIHRvIGFzY2lpIChgIzEzNTFgXykuCisgIFRoYW5rcyBgQGNlcmlkd2VuYF8gZm9y
IHRoZSBQUi4KKworKiBGaXh0dXJlcyBhcmUgbm93IHNvcnRlZCBpbiB0aGUgZXJyb3IgbWVzc2Fn
ZSBkaXNwbGF5ZWQgd2hlbiBhbiB1bmtub3duCisgIGZpeHR1cmUgaXMgZGVjbGFyZWQgaW4gYSB0
ZXN0IGZ1bmN0aW9uLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBg
YHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5YGAgaG9vayBub3cgcmVjZWl2ZXMgdGhlIGBgZXhpdHN0
YXR1c2BgCisgIG9mIHRoZSB0ZXN0IHNlc3Npb24gYXMgYXJndW1lbnQuIFRoYW5rcyBgQGJsdWV5
ZWRgXyBmb3IgdGhlIFBSIChgIzE4MDlgXykuCisKKyogUGFyYW1ldHJpemUgaWRzIGNhbiBhY2Nl
cHQgYGBOb25lYGAgYXMgc3BlY2lmaWMgdGVzdCBpZCwgaW4gd2hpY2ggY2FzZSB0aGUKKyAgYXV0
b21hdGljYWxseSBnZW5lcmF0ZWQgaWQgZm9yIHRoYXQgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgor
ICBUaGFua3MgYEBwYWxhdml2YF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxNDY4YF8pLgorCisq
IFRoZSBwYXJhbWV0ZXIgdG8geHVuaXQtc3R5bGUgc2V0dXAvdGVhcmRvd24gbWV0aG9kcyAoYGBz
ZXR1cF9tZXRob2RgYCwKKyAgYGBzZXR1cF9tb2R1bGVgYCwgZXRjLikgaXMgbm93IG9wdGlvbmFs
IGFuZCBtYXkgYmUgb21pdHRlZC4KKyAgVGhhbmtzIGBAb2trZW5gXyBmb3IgYnJpbmdpbmcgdGhp
cyB0byBhdHRlbnRpb24gYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogSW1wcm92
ZWQgYXV0b21hdGljIGlkIGdlbmVyYXRpb24gc2VsZWN0aW9uIGluIGNhc2Ugb2YgZHVwbGljYXRl
IGlkcyBpbgorICBwYXJhbWV0cml6ZS4KKyAgVGhhbmtzIGBAcGFsYXZpdmBfIGZvciB0aGUgY29t
cGxldGUgUFIgKGAjMTQ3NGBfKS4KKworKiBOb3cgcHl0ZXN0IHdhcm5pbmdzIHN1bW1hcnkgaXMg
c2hvd24gdXAgYnkgZGVmYXVsdC4gQWRkZWQgYSBuZXcgZmxhZworICBgYC0tZGlzYWJsZS1weXRl
c3Qtd2FybmluZ3NgYCB0byBleHBsaWNpdGx5IGRpc2FibGUgdGhlIHdhcm5pbmdzIHN1bW1hcnkg
KGAjMTY2OGBfKS4KKworKiBNYWtlIEltcG9ydEVycm9yIGR1cmluZyBjb2xsZWN0aW9uIG1vcmUg
ZXhwbGljaXQgYnkgcmVtaW5kaW5nCisgIHRoZSB1c2VyIHRvIGNoZWNrIHRoZSBuYW1lIG9mIHRo
ZSB0ZXN0IG1vZHVsZS9wYWNrYWdlKHMpIChgIzE0MjZgXykuCisgIFRoYW5rcyBgQG9tYXJrb2hs
YF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxNTIwYF8pLgorCisqIEFkZCBgYGJ1aWxkL2BgIGFu
ZCBgYGRpc3QvYGAgdG8gdGhlIGRlZmF1bHQgYGAtLW5vcmVjdXJzZWRpcnNgYCBsaXN0LiBUaGFu
a3MKKyAgYEBtaWtvZnNraWBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQHRvbXZpbmVyYF8gZm9yIHRo
ZSBQUiAoYCMxNTQ0YF8pLgorCisqIGBgcHl0ZXN0LnJhaXNlc2BgIGluIHRoZSBjb250ZXh0IG1h
bmFnZXIgZm9ybSBhY2NlcHRzIGEgY3VzdG9tCisgIGBgbWVzc2FnZWBgIHRvIHJhaXNlIHdoZW4g
bm8gZXhjZXB0aW9uIG9jY3VycmVkLgorICBUaGFua3MgYEBwYWxhdml2YF8gZm9yIHRoZSBjb21w
bGV0ZSBQUiAoYCMxNjE2YF8pLgorCisqIGBgY29uZnRlc3QucHlgYCBmaWxlcyBub3cgYmVuZWZp
dCBmcm9tIGFzc2VydGlvbiByZXdyaXRpbmc7IHByZXZpb3VzbHkgaXQKKyAgd2FzIG9ubHkgYXZh
aWxhYmxlIGZvciB0ZXN0IG1vZHVsZXMuIFRoYW5rcyBgQGZsdWJgXywgYEBzb2JlcjdgXyBhbmQK
KyAgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUiAoYCMxNjE5YF8pLgorCisqIFRleHQgZG9jdW1l
bnRzIHdpdGhvdXQgYW55IGRvY3Rlc3RzIG5vIGxvbmdlciBhcHBlYXIgYXMgInNraXBwZWQiLgor
ICBUaGFua3MgYEBncmFpbmdlcnRgXyBmb3IgcmVwb3J0aW5nIGFuZCBwcm92aWRpbmcgYSBmdWxs
IFBSIChgIzE1ODBgXykuCisKKyogRW5zdXJlIHRoYXQgYSBtb2R1bGUgd2l0aGluIGEgbmFtZXNw
YWNlIHBhY2thZ2UgY2FuIGJlIGZvdW5kIHdoZW4gaXQKKyAgaXMgc3BlY2lmaWVkIG9uIHRoZSBj
b21tYW5kIGxpbmUgdG9nZXRoZXIgd2l0aCB0aGUgYGAtLXB5YXJnc2BgCisgIG9wdGlvbi4gIFRo
YW5rcyB0byBgQHRhc2NoaW5pYF8gZm9yIHRoZSBQUiAoYCMxNTk3YF8pLgorCisqIEFsd2F5cyBp
bmNsdWRlIGZ1bGwgYXNzZXJ0aW9uIGV4cGxhbmF0aW9uIGR1cmluZyBhc3NlcnRpb24gcmV3cml0
aW5nLiBUaGUgcHJldmlvdXMgYmVoYXZpb3VyIHdhcyBoaWRpbmcKKyAgc3ViLWV4cHJlc3Npb25z
IHRoYXQgaGFwcGVuZWQgdG8gYmUgYGBGYWxzZWBgLCBhc3N1bWluZyB0aGlzIHdhcyByZWR1bmRh
bnQgaW5mb3JtYXRpb24uCisgIFRoYW5rcyBgQGJhZ2VyYXJkYF8gZm9yIHJlcG9ydGluZyAoYCMx
NTAzYF8pLiBUaGFua3MgdG8gYEBkYXZlaHVudGBfIGFuZAorICBgQHRvbXZpbmVyYF8gZm9yIHRo
ZSBQUi4KKworKiBgYE9wdGlvbkdyb3VwLmFkZG9wdGlvbigpYGAgbm93IGNoZWNrcyBpZiBvcHRp
b24gbmFtZXMgd2VyZSBhbHJlYWR5CisgIGFkZGVkIGJlZm9yZSwgdG8gbWFrZSBpdCBlYXNpZXIg
dG8gdHJhY2sgZG93biBpc3N1ZXMgbGlrZSBgIzE2MThgXy4KKyAgQmVmb3JlLCB5b3Ugb25seSBn
b3QgZXhjZXB0aW9ucyBsYXRlciBmcm9tIGBgYXJncGFyc2VgYCBsaWJyYXJ5LAorICBnaXZpbmcg
bm8gY2x1ZSBhYm91dCB0aGUgYWN0dWFsIHJlYXNvbiBmb3IgZG91YmxlLWFkZGVkIG9wdGlvbnMu
CisKKyogYGB5aWVsZGBgLWJhc2VkIHRlc3RzIGFyZSBjb25zaWRlcmVkIGRlcHJlY2F0ZWQgYW5k
IHdpbGwgYmUgcmVtb3ZlZCBpbiBweXRlc3QtNC4wLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8g
Zm9yIHRoZSBQUi4KKworKiBgYFtweXRlc3RdYGAgc2VjdGlvbnMgaW4gYGBzZXR1cC5jZmdgYCBm
aWxlcyBzaG91bGQgbm93IGJlIG5hbWVkIGBgW3Rvb2w6cHl0ZXN0XWBgCisgIHRvIGF2b2lkIGNv
bmZsaWN0cyB3aXRoIG90aGVyIGRpc3R1dGlscyBjb21tYW5kcyAoc2VlIGAjNTY3YF8pLiBgYFtw
eXRlc3RdYGAgc2VjdGlvbnMgaW4KKyAgYGBweXRlc3QuaW5pYGAgb3IgYGB0b3guaW5pYGAgZmls
ZXMgYXJlIHN1cHBvcnRlZCBhbmQgdW5jaGFuZ2VkLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8g
Zm9yIHRoZSBQUi4KKworKiBVc2luZyBgYHB5dGVzdF9mdW5jYXJnX19gYCBwcmVmaXggdG8gZGVj
bGFyZSBmaXh0dXJlcyBpcyBjb25zaWRlcmVkIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUKKyAgcmVt
b3ZlZCBpbiBweXRlc3QtNC4wIChgIzE2ODRgXykuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBm
b3IgdGhlIFBSLgorCisqIFBhc3NpbmcgYSBjb21tYW5kLWxpbmUgc3RyaW5nIHRvIGBgcHl0ZXN0
Lm1haW4oKWBgIGlzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBhbmQgc2NoZWR1bGVkCisgIGZvciBy
ZW1vdmFsIGluIHB5dGVzdC00LjAuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHBhc3MgYSBsaXN0IG9m
IGFyZ3VtZW50cyBpbnN0ZWFkIChgIzE3MjNgXykuCisKKyogUmVuYW1lIGBgZ2V0ZnVuY2FyZ3Zh
bHVlYGAgdG8gYGBnZXRmaXh0dXJldmFsdWVgYC4gYGBnZXRmdW5jYXJndmFsdWVgYCBpcworICBz
dGlsbCBwcmVzZW50IGJ1dCBpcyBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkLiBUaGFua3MgdG8g
YEBSZWRCZWFyZENvZGVgXyBhbmQgYEB0b212aW5lcmBfCisgIGZvciB0aGUgUFIgKGAjMTYyNmBf
KS4KKworKiBgYG9wdHBhcnNlYGAgdHlwZSB1c2FnZSBub3cgdHJpZ2dlcnMgRGVwcmVjYXRpb25X
YXJuaW5ncyAoYCMxNzQwYF8pLgorCisKKyogYGBvcHRwYXJzZWBgIGJhY2t3YXJkIGNvbXBhdGli
aWxpdHkgc3VwcG9ydHMgZmxvYXQvY29tcGxleCB0eXBlcyAoYCM0NTdgXykuCisKKyogUmVmaW5l
ZCBsb2dpYyBmb3IgZGV0ZXJtaW5pbmcgdGhlIGBgcm9vdGRpcmBgLCBjb25zaWRlcmluZyBvbmx5
IHZhbGlkCisgIHBhdGhzIHdoaWNoIGZpeGVzIGEgbnVtYmVyIG9mIGlzc3VlczogYCMxNTk0YF8s
IGAjMTQzNWBfIGFuZCBgIzE0NzFgXy4KKyAgVXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiBhY2Nv
cmRpbmcgdG8gY3VycmVudCBiZWhhdmlvci4gVGhhbmtzIHRvCisgIGBAYmx1ZXllZGBfLCBgQGRh
dmVodW50YF8gYW5kIGBAbWF0dGhpYXNoYWBfIGZvciB0aGUgUFIuCisKKyogQWx3YXlzIGluY2x1
ZGUgZnVsbCBhc3NlcnRpb24gZXhwbGFuYXRpb24uIFRoZSBwcmV2aW91cyBiZWhhdmlvdXIgd2Fz
IGhpZGluZworICBzdWItZXhwcmVzc2lvbnMgdGhhdCBoYXBwZW5lZCB0byBiZSBGYWxzZSwgYXNz
dW1pbmcgdGhpcyB3YXMgcmVkdW5kYW50IGluZm9ybWF0aW9uLgorICBUaGFua3MgYEBiYWdlcmFy
ZGBfIGZvciByZXBvcnRpbmcgKGAjMTUwM2BfKS4gVGhhbmtzIHRvIGBAZGF2ZWh1bnRgXyBhbmQK
KyAgYEB0b212aW5lcmBfIGZvciBQUi4KKworKiBCZXR0ZXIgbWVzc2FnZSBpbiBjYXNlIG9mIG5v
dCB1c2luZyBwYXJhbWV0cml6ZWQgdmFyaWFibGUgKHNlZSBgIzE1MzlgXykuCisgIFRoYW5rcyB0
byBgQHRyYW13YWoyOWBfIGZvciB0aGUgUFIuCisKKyogVXBkYXRlZCBkb2NzdHJpbmdzIHdpdGgg
YSBtb3JlIHVuaWZvcm0gc3R5bGUuCisKKyogQWRkIHN0ZGVyciB3cml0ZSBmb3IgYGBweXRlc3Qu
ZXhpdChtc2cpYGAgZHVyaW5nIHN0YXJ0dXAuIFByZXZpb3VzbHkgdGhlIG1lc3NhZ2Ugd2FzIG5l
dmVyIHNob3duLgorICBUaGFua3MgYEBCZXlvbmRFdmlsYF8gZm9yIHJlcG9ydGluZyBgIzEyMTBg
Xy4gVGhhbmtzIHRvIGBASm9uYXRob25Tb25lc2VuYF8gYW5kCisgIGBAdG9tdmluZXJgXyBmb3Ig
dGhlIFBSLgorCisqIE5vIGxvbmdlciBkaXNwbGF5IHRoZSBpbmNvcnJlY3QgdGVzdCBkZXNlbGVj
dGlvbiByZWFzb24gKGAjMTM3MmBfKS4KKyAgVGhhbmtzIGBAcm9ubnlwZmFubnNjaG1pZHRgXyBm
b3IgdGhlIFBSLgorCisqIFRoZSBgYC0tcmVzdWx0bG9nYGAgY29tbWFuZCBsaW5lIG9wdGlvbiBo
YXMgYmVlbiBkZXByZWNhdGVkOiBpdCBpcyBsaXR0bGUgdXNlZAorICBhbmQgdGhlcmUgYXJlIG1v
cmUgbW9kZXJuIGFuZCBiZXR0ZXIgYWx0ZXJuYXRpdmVzIChzZWUgYCM4MzBgXykuCisgIFRoYW5r
cyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3
aXRoIGZpeHR1cmUgbG9va3VwIGVycm9yczogYWRkIGFuICdFJyB0byB0aGUgZmlyc3QKKyAgbGlu
ZSBhbmQgJz4nIHRvIHRoZSByZXN0LiBGaXhlcyBgIzcxN2BfLiBUaGFua3MgYEBibHVleWVkYF8g
Zm9yIHJlcG9ydGluZyBhbmQKKyAgYSBQUiwgYEBlb2xvOTk5YF8gZm9yIHRoZSBpbml0aWFsIFBS
IGFuZCBgQHRvbXZpbmVyYF8gZm9yIGhpcyBndWlkYW5jZSBkdXJpbmcKKyAgRXVyb1B5dGhvbjIw
MTYgc3ByaW50LgorCisKKyoqQnVnIEZpeGVzKioKKworKiBQYXJhbWV0cml6ZSBub3cgY29ycmVj
dGx5IGhhbmRsZXMgZHVwbGljYXRlZCB0ZXN0IGlkcy4KKworKiBGaXggaW50ZXJuYWwgZXJyb3Ig
aXNzdWUgd2hlbiB0aGUgYGBtZXRob2RgYCBhcmd1bWVudCBpcyBtaXNzaW5nIGZvcgorICBgYHRl
YXJkb3duX21ldGhvZCgpYGAgKGAjMTYwNWBfKS4KKworKiBGaXggZXhjZXB0aW9uIHZpc3VhbGl6
YXRpb24gaW4gY2FzZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSAoQ1dEKSBnZXRzCisg
IGRlbGV0ZWQgZHVyaW5nIHRlc3RpbmcgKGAjMTIzNWBfKS4gVGhhbmtzIGBAYnVrem9yYF8gZm9y
IHJlcG9ydGluZy4gUFIgYnkKKyAgYEBtYXJzY2hlcmBfLgorCisqIEltcHJvdmUgdGVzdCBvdXRw
dXQgZm9yIGxvZ2ljYWwgZXhwcmVzc2lvbiB3aXRoIGJyYWNrZXRzIChgIzkyNWBfKS4KKyAgVGhh
bmtzIGBARFJNYWNJdmVyYF8gZm9yIHJlcG9ydGluZyBhbmQgYEBSZWRCZWFyZENvZGVgXyBmb3Ig
dGhlIFBSLgorCisqIENyZWF0ZSBjb3JyZWN0IGRpZmYgZm9yIHN0cmluZ3MgZW5kaW5nIHdpdGgg
bmV3bGluZXMgKGAjMTU1M2BfKS4KKyAgVGhhbmtzIGBAVm9ndGluYXRvcmBfIGZvciByZXBvcnRp
bmcgYW5kIGBAUmVkQmVhcmRDb2RlYF8gYW5kCisgIGBAdG9tdmluZXJgXyBmb3IgdGhlIFBSLgor
CisqIGBgQ29uZnRlc3RJbXBvcnRGYWlsdXJlYGAgbm93IHNob3dzIHRoZSB0cmFjZWJhY2sgbWFr
aW5nIGl0IGVhc2llciB0bworICBpZGVudGlmeSBidWdzIGluIGBgY29uZnRlc3QucHlgYCBmaWxl
cyAoYCMxNTE2YF8pLiBUaGFua3MgYEB0eG9tb25gXyBmb3IKKyAgdGhlIFBSLgorCisqIFRleHQg
ZG9jdW1lbnRzIHdpdGhvdXQgYW55IGRvY3Rlc3RzIG5vIGxvbmdlciBhcHBlYXIgYXMgInNraXBw
ZWQiLgorICBUaGFua3MgYEBncmFpbmdlcnRgXyBmb3IgcmVwb3J0aW5nIGFuZCBwcm92aWRpbmcg
YSBmdWxsIFBSIChgIzE1ODBgXykuCisKKyogRml4ZWQgY29sbGVjdGlvbiBvZiBjbGFzc2VzIHdp
dGggY3VzdG9tIGBgX19uZXdfX2BgIG1ldGhvZC4KKyAgRml4ZXMgYCMxNTc5YF8uIFRoYW5rcyB0
byBgQFN0cmFuZ2VyNjY2N2BfIGZvciB0aGUgUFIuCisKKyogRml4ZWQgc2NvcGUgb3ZlcnJpZGlu
ZyBpbnNpZGUgbWV0YWZ1bmMucGFyYW1ldHJpemUgKGAjNjM0YF8pLgorICBUaGFua3MgdG8gYEBT
dHJhbmdlcjY2NjdgXyBmb3IgdGhlIFBSLgorCisqIEZpeGVkIHRoZSB0b3RhbCB0ZXN0cyB0YWxs
eSBpbiBqdW5pdCB4bWwgb3V0cHV0IChgIzE3OThgXykuCisgIFRoYW5rcyB0byBgQGNyeXBvcmNo
aWxkYF8gZm9yIHRoZSBQUi4KKworKiBGaXhlZCBvZmYtYnktb25lIGVycm9yIHdpdGggbGluZXMg
ZnJvbSBgYHJlcXVlc3Qubm9kZS53YXJuYGAuCisgIFRoYW5rcyB0byBgQGJsdWV5ZWRgXyBmb3Ig
dGhlIFBSLgorCisKKy4uIF8jMTIxMDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8xMjEwCisuLiBfIzEyMzU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMTIzNQorLi4gXyMxMzUxOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzEzNTEKKy4uIF8jMTM3MjogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzcyCisuLiBfIzE0MjE6IGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTQyMQorLi4gXyMxNDI2OiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MjYKKy4uIF8jMTQyODogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTQyOAorLi4gXyMxNDM1OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MzUKKy4uIF8jMTQ0MTogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTQ0MQorLi4gXyMxNDQ0OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNDQ0CisuLiBfIzE0NTQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE0NTQKKy4uIF8jMTQ2
MTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTQ2MQorLi4gXyMx
NDY4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNDY4CisuLiBf
IzE0NzE6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTQ3MQor
Li4gXyMxNDc0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNDc0
CisuLiBfIzE0Nzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MTQ3OQorLi4gXyMxNTAyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVs
bC8xNTAyCisuLiBfIzE1MDM6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMTUwMworLi4gXyMxNTE2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvcHVsbC8xNTE2CisuLiBfIzE1MTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9wdWxsLzE1MTkKKy4uIF8jMTUyMDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L3B1bGwvMTUyMAorLi4gXyMxNTI2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvcHVsbC8xNTI2CisuLiBfIzE1Mzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMTUzOQorLi4gXyMxNTQ0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1NDQKKy4uIF8jMTU0NjogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTQ2CisuLiBfIzE1NTM6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTU1MworLi4gXyMxNTYyOiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1NjIKKy4uIF8jMTU3OTogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTc5CisuLiBfIzE1ODA6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE1ODAKKy4uIF8jMTU5NDog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTk0CisuLiBfIzE1
OTc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE1OTcKKy4uIF8j
MTYwNTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjA1Cisu
LiBfIzE2MTY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE2MTYK
Ky4uIF8jMTYxODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8x
NjE4CisuLiBfIzE2MTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTYxOQorLi4gXyMxNjI2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
cHVsbC8xNjI2CisuLiBfIzE2Mjc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9wdWxsLzE2MjcKKy4uIF8jMTYyODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L3B1bGwvMTYyOAorLi4gXyMxNjI5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzE2MjkKKy4uIF8jMTYzMjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8xNjMyCisuLiBfIzE2MzM6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9wdWxsLzE2MzMKKy4uIF8jMTY2NDogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTY2NAorLi4gXyMxNjY4OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2NjgKKy4uIF8jMTY4NDogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTY4NAorLi4gXyMxNzIzOiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNzIzCisuLiBfIzE3NDA6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTc0MAorLi4gXyMxNzQ5OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE3NDkKKy4uIF8jMTc3ODogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTc3OAorLi4gXyMxNzk1OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNzk1CisuLiBfIzE3OTg6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE3OTgKKy4uIF8jMTgw
OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTgwOQorLi4gXyMz
NzI6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzcyCisuLiBf
IzQ1NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTcKKy4u
IF8jNDYwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC80NjAKKy4u
IF8jNTY3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC81NjcKKy4u
IF8jNjA3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzYwNwor
Li4gXyM2MzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjM0
CisuLiBfIzcxNzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy83
MTcKKy4uIF8jODMwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzgzMAorLi4gXyM5MjU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvOTI1CisKKworLi4gX0Bhbm50emVyOiBodHRwczovL2dpdGh1Yi5jb20vYW5udHplcgorLi4g
X0BiYWdlcmFyZDogaHR0cHM6Ly9naXRodWIuY29tL2JhZ2VyYXJkCisuLiBfQEJleW9uZEV2aWw6
IGh0dHBzOi8vZ2l0aHViLmNvbS9CZXlvbmRFdmlsCisuLiBfQGJsdWV5ZWQ6IGh0dHBzOi8vZ2l0
aHViLmNvbS9ibHVleWVkCisuLiBfQGNlcmlkd2VuOiBodHRwczovL2dpdGh1Yi5jb20vY2VyaWR3
ZW4KKy4uIF9AY3J5cG9yY2hpbGQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcnlwb3JjaGlsZAorLi4g
X0Bjc2FmdG9pdTogaHR0cHM6Ly9naXRodWIuY29tL2NzYWZ0b2l1CisuLiBfQGQ2ZTogaHR0cHM6
Ly9naXRodWIuY29tL2Q2ZQorLi4gX0BkYXZlaHVudDogaHR0cHM6Ly9naXRodWIuY29tL2RhdmVo
dW50CisuLiBfQERSTWFjSXZlcjogaHR0cHM6Ly9naXRodWIuY29tL0RSTWFjSXZlcgorLi4gX0Bl
b2xvOTk5OiBodHRwczovL2dpdGh1Yi5jb20vZW9sbzk5OQorLi4gX0BmZW5neHg6IGh0dHBzOi8v
Z2l0aHViLmNvbS9mZW5neHgKKy4uIF9AZmx1YjogaHR0cHM6Ly9naXRodWIuY29tL2ZsdWIKKy4u
IF9AZ3ByYXNhZDg0OiBodHRwczovL2dpdGh1Yi5jb20vZ3ByYXNhZDg0CisuLiBfQGdyYWluZ2Vy
dDogaHR0cHM6Ly9naXRodWIuY29tL2dyYWluZ2VydAorLi4gX0BoYXJ0eW06IGh0dHBzOi8vZ2l0
aHViLmNvbS9oYXJ0eW0KKy4uIF9ASm9uYXRob25Tb25lc2VuOiBodHRwczovL2dpdGh1Yi5jb20v
Sm9uYXRob25Tb25lc2VuCisuLiBfQGthbGVrdW5kZXJ0OiBodHRwczovL2dpdGh1Yi5jb20va2Fs
ZWt1bmRlcnQKKy4uIF9Aa3Zhcy1pdDogaHR0cHM6Ly9naXRodWIuY29tL2t2YXMtaXQKKy4uIF9A
bWFyc2NoZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzY2hlcgorLi4gX0BtaWtvZnNraTogaHR0
cHM6Ly9naXRodWIuY29tL21pa29mc2tpCisuLiBfQG1pbGxpYW1zOiBodHRwczovL2dpdGh1Yi5j
b20vbWlsbGlhbXMKKy4uIF9AbmlrcmF0aW86IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWtyYXRpbwor
Li4gX0Bub3ZhczB4MmE6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub3ZhczB4MmEKKy4uIF9Ab2Jlc3R3
YWx0ZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9vYmVzdHdhbHRlcgorLi4gX0Bva2tlbjogaHR0cHM6
Ly9naXRodWIuY29tL29ra2VuCisuLiBfQG9sZWdwaWRzYWRueWk6IGh0dHBzOi8vZ2l0aHViLmNv
bS9vbGVncGlkc2FkbnlpCisuLiBfQG9tYXJrb2hsOiBodHRwczovL2dpdGh1Yi5jb20vb21hcmtv
aGwKKy4uIF9AcGFsYXZpdjogaHR0cHM6Ly9naXRodWIuY29tL3BhbGF2aXYKKy4uIF9AUmVkQmVh
cmRDb2RlOiBodHRwczovL2dpdGh1Yi5jb20vUmVkQmVhcmRDb2RlCisuLiBfQHNhbGxuZXI6IGh0
dHBzOi8vZ2l0aHViLmNvbS9zYWxsbmVyCisuLiBfQHNvYmVyNzogaHR0cHM6Ly9naXRodWIuY29t
L3NvYmVyNworLi4gX0BTdHJhbmdlcjY2Njc6IGh0dHBzOi8vZ2l0aHViLmNvbS9TdHJhbmdlcjY2
NjcKKy4uIF9Ac3V6YWt1OiBodHRwczovL2dpdGh1Yi5jb20vc3V6YWt1CisuLiBfQHRhcmVxYWxh
eWFuOiBodHRwczovL2dpdGh1Yi5jb20vdGFyZXFhbGF5YW4KKy4uIF9AdGFzY2hpbmk6IGh0dHBz
Oi8vZ2l0aHViLmNvbS90YXNjaGluaQorLi4gX0B0cmFtd2FqMjk6IGh0dHBzOi8vZ2l0aHViLmNv
bS90cmFtd2FqMjkKKy4uIF9AdHhvbW9uOiBodHRwczovL2dpdGh1Yi5jb20vdHhvbW9uCisuLiBf
QFZvZ3RpbmF0b3I6IGh0dHBzOi8vZ2l0aHViLmNvbS9Wb2d0aW5hdG9yCisuLiBfQG1hdHRoaWFz
aGE6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc2hhCisKKworMi45LjIgKDIwMTYtMDUtMzEp
Cis9PT09PT09PT09PT09PT09PT0KKworKipCdWcgRml4ZXMqKgorCisqIGZpeCBgIzUxMGBfOiBz
a2lwIHRlc3RzIHdoZXJlIG9uZSBwYXJhbWV0ZXJpemUgZGltZW5zaW9uIHdhcyBlbXB0eQorICB0
aGFua3MgQWxleCBTdGFwbGV0b24gZm9yIHRoZSBSZXBvcnQgYW5kIGBAUm9ubnlQZmFubnNjaG1p
ZHRgXyBmb3IgdGhlIFBSCisKKyogRml4IFhmYWlsIGRvZXMgbm90IHdvcmsgd2l0aCBjb25kaXRp
b24ga2V5d29yZCBhcmd1bWVudC4KKyAgVGhhbmtzIGBAYXN0cmF3MzhgXyBmb3IgcmVwb3J0aW5n
IHRoZSBpc3N1ZSAoYCMxNDk2YF8pIGFuZCBgQHRvbXZpbmVyYF8KKyAgZm9yIFBSIHRoZSAoYCMx
NTI0YF8pLgorCisqIEZpeCB3aW4zMiBwYXRoIGlzc3VlIHdoZW4gcHV0dGluZyBjdXN0b20gY29u
ZmlnIGZpbGUgd2l0aCBhYnNvbHV0ZSBwYXRoCisgIGluIGBgcHl0ZXN0Lm1haW4oIi1jIHlvdXJf
YWJzb2x1dGVfcGF0aCIpYGAuCisKKyogRml4IG1heGltdW0gcmVjdXJzaW9uIGRlcHRoIGRldGVj
dGlvbiB3aGVuIHJhaXNlZCBlcnJvciBjbGFzcyBpcyBub3QgYXdhcmUKKyAgb2YgdW5pY29kZS9l
bmNvZGVkIGJ5dGVzLgorICBUaGFua3MgYEBwcnVzc2UtbWFydGluYF8gZm9yIHRoZSBQUiAoYCMx
NTA2YF8pLgorCisqIEZpeCBgYHB5dGVzdC5tYXJrLnNraXBgYCBtYXJrIHdoZW4gdXNlZCBpbiBz
dHJpY3QgbW9kZS4KKyAgVGhhbmtzIGBAcHF1ZW50aW5gXyBmb3IgdGhlIFBSIGFuZCBgQFJvbm55
UGZhbm5zY2htaWR0YF8gZm9yCisgIHNob3dpbmcgaG93IHRvIGZpeCB0aGUgYnVnLgorCisqIE1p
bm9yIGltcHJvdmVtZW50cyBhbmQgZml4ZXMgdG8gdGhlIGRvY3VtZW50YXRpb24uCisgIFRoYW5r
cyBgQG9tYXJrb2hsYF8gZm9yIHRoZSBQUi4KKworKiBGaXggYGAtLWZpeHR1cmVzYGAgdG8gc2hv
dyBhbGwgZml4dHVyZSBkZWZpbml0aW9ucyBhcyBvcHBvc2VkIHRvIGp1c3QKKyAgb25lIHBlciBm
aXh0dXJlIG5hbWUuCisgIFRoYW5rcyB0byBgQGhhY2tlYnJvdGBfIGZvciB0aGUgUFIuCisKKy4u
IF8jNTEwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxMAor
Li4gXyMxNTA2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNTA2
CisuLiBfIzE0OTY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MTQ5NgorLi4gXyMxNTI0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVs
bC8xNTI0CisKKy4uIF9AcHJ1c3NlLW1hcnRpbjogaHR0cHM6Ly9naXRodWIuY29tL3BydXNzZS1t
YXJ0aW4KKy4uIF9AYXN0cmF3Mzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc3RyYXczOAorCisKKzIu
OS4xICgyMDE2LTAzLTE3KQorPT09PT09PT09PT09PT09PT09CisKKyoqQnVnIEZpeGVzKioKKwor
KiBJbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIHBsdWdpbiBmYWlscyB0byBsb2FkLgorICBU
aGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBGaXggKGAjMTE3OCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMTc4PmBfKToKKyAgYGBweXRl
c3QuZmFpbGBgIHdpdGggbm9uLWFzY2lpIGNoYXJhY3RlcnMgcmFpc2VzIGFuIGludGVybmFsIHB5
dGVzdCBlcnJvci4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4
IChgIzQ2OWBfKToganVuaXQgcGFyc2VzIHJlcG9ydC5ub2RlaWQgaW5jb3JyZWN0bHksIHdoZW4g
cGFyYW1zIElEcworICBjb250YWluIGBgOjpgYC4gVGhhbmtzIGBAdG9tdmluZXJgXyBmb3IgdGhl
IFBSIChgIzE0MzFgXykuCisKKyogRml4IChgIzU3OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy81Nzg+YF8pOiBTeW50YXhFcnJvcnMKKyAgY29udGFpbmluZyBu
b24tYXNjaWkgbGluZXMgYXQgdGhlIHBvaW50IG9mIGZhaWx1cmUgZ2VuZXJhdGVkIGFuIGludGVy
bmFsCisgIHB5LnRlc3QgZXJyb3IuCisgIFRoYW5rcyBgQGFzb3R0aWxlYF8gZm9yIHRoZSByZXBv
cnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4IChgIzE0MzdgXyk6IFdo
ZW4gcGFzc2luZyBpbiBhIGJ5dGVzdHJpbmcgcmVnZXggcGF0dGVybiB0byBwYXJhbWV0ZXJpemUK
KyAgYXR0ZW1wdCB0byBkZWNvZGUgaXQgYXMgdXRmLTggaWdub3JpbmcgZXJyb3JzLgorCisqIEZp
eCAoYCM2NDlgXyk6IHBhcmFtZXRyaXplZCB0ZXN0IG5vZGVzIGNhbm5vdCBiZSBzcGVjaWZpZWQg
dG8gcnVuIG9uIHRoZSBjb21tYW5kIGxpbmUuCisKKyogRml4IChgIzEzOGBfKTogYmV0dGVyIHJl
cG9ydGluZyBmb3IgcHl0aG9uIDMuMysgY2hhaW5lZCBleGNlcHRpb25zCisKKy4uIF8jMTQzNzog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDM3CisuLiBfIzQ2
OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjkKKy4uIF8j
MTQzMTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTQzMQorLi4g
XyM2NDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjQ5Cisu
LiBfIzEzODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzgK
KworLi4gX0Bhc290dGlsZTogaHR0cHM6Ly9naXRodWIuY29tL2Fzb3R0aWxlCisKKworMi45LjAg
KDIwMTYtMDItMjkpCis9PT09PT09PT09PT09PT09PT0KKworKipOZXcgRmVhdHVyZXMqKgorCisq
IE5ldyBgYHB5dGVzdC5tYXJrLnNraXBgYCBtYXJrLCB3aGljaCB1bmNvbmRpdGlvbmFsbHkgc2tp
cHMgbWFya2VkIHRlc3RzLgorICBUaGFua3MgYEBNaWNoYWVsQXF1aWxpbmFgXyBmb3IgdGhlIGNv
bXBsZXRlIFBSIChgIzEwNDBgXykuCisKKyogYGAtLWRvY3Rlc3QtZ2xvYmBgIG1heSBub3cgYmUg
cGFzc2VkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBjb21tYW5kLWxpbmUuCisgIFRoYW5rcyBgQGph
YmBfIGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIE5ldyBgYC1ycGBgIGFuZCBg
YC1yUGBgIHJlcG9ydGluZyBvcHRpb25zIGdpdmUgdGhlIHN1bW1hcnkgYW5kIGZ1bGwgb3V0cHV0
CisgIG9mIHBhc3NpbmcgdGVzdHMsIHJlc3BlY3RpdmVseS4gVGhhbmtzIHRvIGBAY29kZXdhcnJp
b3IwYF8gZm9yIHRoZSBQUi4KKworKiBgYHB5dGVzdC5tYXJrLnhmYWlsYGAgbm93IGhhcyBhIGBg
c3RyaWN0YGAgb3B0aW9uLCB3aGljaCBtYWtlcyBgYFhQQVNTYGAKKyAgdGVzdHMgdG8gZmFpbCB0
aGUgdGVzdCBzdWl0ZSAoZGVmYXVsdGluZyB0byBgYEZhbHNlYGApLiBUaGVyZSdzIGFsc28gYQor
ICBgYHhmYWlsX3N0cmljdGBgIGluaSBvcHRpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBjb25maWd1
cmUgaXQgcHJvamVjdC13aXNlLgorICBUaGFua3MgYEByYWJiYml0YF8gZm9yIHRoZSByZXF1ZXN0
IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzEzNTVgXykuCisKKyogYGBQYXJzZXIu
YWRkaW5pYGAgbm93IHN1cHBvcnRzIG9wdGlvbnMgb2YgdHlwZSBgYGJvb2xgYC4KKyAgVGhhbmtz
IGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogTmV3IGBgQUxMT1dfQllURVNgYCBkb2N0
ZXN0IG9wdGlvbi4gVGhpcyBzdHJpcHMgYGBiYGAgcHJlZml4ZXMgZnJvbSBieXRlIHN0cmluZ3MK
KyAgaW4gZG9jdGVzdCBvdXRwdXQgKHNpbWlsYXIgdG8gYGBBTExPV19VTklDT0RFYGApLgorICBU
aGFua3MgYEBqYXJhY29gXyBmb3IgdGhlIHJlcXVlc3QgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0
aGUgUFIgKGAjMTI4N2BfKS4KKworKiBHaXZlIGEgaGludCBvbiBgYEtleWJvYXJkSW50ZXJydXB0
YGAgdG8gdXNlIHRoZSBgYC0tZnVsbHRyYWNlYGAgb3B0aW9uIHRvIHNob3cgdGhlIGVycm9ycy4K
KyAgRml4ZXMgYCMxMzY2YF8uCisgIFRoYW5rcyB0byBgQGhwazQyYF8gZm9yIHRoZSByZXBvcnQg
YW5kIGBAUm9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSLgorCisqIENhdGNoIGBgSW5kZXhF
cnJvcmBgIGV4Y2VwdGlvbnMgd2hlbiBnZXR0aW5nIGV4Y2VwdGlvbiBzb3VyY2UgbG9jYXRpb24u
CisgIEZpeGVzIGEgcHl0ZXN0IGludGVybmFsIGVycm9yIGZvciBkeW5hbWljYWxseSBnZW5lcmF0
ZWQgY29kZSAoZml4dHVyZXMgYW5kIHRlc3RzKQorICB3aGVyZSBzb3VyY2UgbGluZXMgYXJlIGZh
a2UgYnkgaW50ZW50aW9uLgorCisqKkNoYW5nZXMqKgorCisqICoqSW1wb3J0YW50Kio6IGBweS5j
b2RlIDxodHRwczovL3B5bGliLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9jb2RlLmh0bWw+YF8g
aGFzIGJlZW4KKyAgbWVyZ2VkIGludG8gdGhlIGBgcHl0ZXN0YGAgcmVwb3NpdG9yeSBhcyBgYHB5
dGVzdC5fY29kZWBgLiBUaGlzIGRlY2lzaW9uCisgIHdhcyBtYWRlIGJlY2F1c2UgYGBweS5jb2Rl
YGAgaGFkIHZlcnkgZmV3IHVzZXMgb3V0c2lkZSBgYHB5dGVzdGBgIGFuZCB0aGUKKyAgZmFjdCB0
aGF0IGl0IHdhcyBpbiBhIGRpZmZlcmVudCByZXBvc2l0b3J5IG1hZGUgaXQgZGlmZmljdWx0IHRv
IGZpeCBidWdzIG9uCisgIGl0cyBjb2RlIGluIGEgdGltZWx5IG1hbm5lci4gVGhlIHRlYW0gaG9w
ZXMgd2l0aCB0aGlzIHRvIGJlIGFibGUgdG8gYmV0dGVyCisgIHJlZmFjdG9yIG91dCBhbmQgaW1w
cm92ZSB0aGF0IGNvZGUuCisgIFRoaXMgY2hhbmdlIHNob3VsZG4ndCBhZmZlY3QgdXNlcnMsIGJ1
dCBpdCBpcyB1c2VmdWwgdG8gbGV0IHVzZXJzIGF3YXJlCisgIGlmIHRoZXkgZW5jb3VudGVyIGFu
eSBzdHJhbmdlIGJlaGF2aW9yLgorCisgIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBjb2RlIGZvciBg
YHB5dGVzdC5fY29kZWBgIGlzICoqcHJpdmF0ZSoqIGFuZAorICAqKmV4cGVyaW1lbnRhbCoqLCBz
byB5b3UgZGVmaW5pdGVseSBzaG91bGQgbm90IGltcG9ydCBpdCBleHBsaWNpdGx5IQorCisgIFBs
ZWFzZSBub3RlIHRoYXQgdGhlIG9yaWdpbmFsIGBgcHkuY29kZWBgIGlzIHN0aWxsIGF2YWlsYWJs
ZSBpbgorICBgcHlsaWIgPGh0dHBzOi8vcHlsaWIucmVhZHRoZWRvY3MuaW8+YF8uCisKKyogYGBw
eXRlc3RfZW50ZXJfcGRiYGAgbm93IG9wdGlvbmFsbHkgcmVjZWl2ZXMgdGhlIHB5dGVzdCBjb25m
aWcgb2JqZWN0LgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBSZW1v
dmVkIGNvZGUgYW5kIGRvY3VtZW50YXRpb24gZm9yIFB5dGhvbiAyLjUgb3IgbG93ZXIgdmVyc2lv
bnMsCisgIGluY2x1ZGluZyByZW1vdmFsIG9mIHRoZSBvYnNvbGV0ZSBgYF9weXRlc3QuYXNzZXJ0
aW9uLm9sZGludGVycHJldGBgIG1vZHVsZS4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0
aGUgUFIgKGAjMTIyNmBfKS4KKworKiBDb21wYXJpc29ucyBub3cgYWx3YXlzIHNob3cgdXAgaW4g
ZnVsbCB3aGVuIGBgQ0lgYCBvciBgYEJVSUxEX05VTUJFUmBgIGlzCisgIGZvdW5kIGluIHRoZSBl
bnZpcm9ubWVudCwgZXZlbiB3aGVuIGBgLXZ2YGAgaXNuJ3QgdXNlZC4KKyAgVGhhbmtzIGBAVGhl
LUNvbXBpbGVyYF8gZm9yIHRoZSBQUi4KKworKiBgYC0tbGZgYCBhbmQgYGAtLWZmYGAgbm93IHN1
cHBvcnQgbG9uZyBuYW1lczogYGAtLWxhc3QtZmFpbGVkYGAgYW5kCisgIGBgLS1mYWlsZWQtZmly
c3RgYCByZXNwZWN0aXZlbHkuCisgIFRoYW5rcyBgQE1pY2hhZWxBcXVpbGluYWBfIGZvciB0aGUg
UFIuCisKKyogQWRkZWQgZXhwZWN0ZWQgZXhjZXB0aW9ucyB0byBgYHB5dGVzdC5yYWlzZXNgYCBm
YWlsIG1lc3NhZ2UuCisKKyogQ29sbGVjdGlvbiBvbmx5IGRpc3BsYXlzIHByb2dyZXNzICgiY29s
bGVjdGluZyBYIGl0ZW1zIikgd2hlbiBpbiBhIHRlcm1pbmFsLgorICBUaGlzIGF2b2lkcyBjbHV0
dGVyaW5nIHRoZSBvdXRwdXQgd2hlbiB1c2luZyBgYC0tY29sb3I9eWVzYGAgdG8gb2J0YWluCisg
IGNvbG9ycyBpbiBDSSBpbnRlZ3JhdGlvbnMgc3lzdGVtcyAoYCMxMzk3YF8pLgorCisqKkJ1ZyBG
aXhlcyoqCisKKyogVGhlIGBgLXNgYCBhbmQgYGAtY2BgIG9wdGlvbnMgc2hvdWxkIG5vdyB3b3Jr
IHVuZGVyIGBgeGRpc3RgYDsKKyAgYGBDb25maWcuZnJvbWRpY3RhcmdzYGAgbm93IHJlcHJlc2Vu
dHMgaXRzIGlucHV0IG11Y2ggbW9yZSBmYWl0aGZ1bGx5LgorICBUaGFua3MgdG8gYEBidWt6b3Jg
XyBmb3IgdGhlIGNvbXBsZXRlIFBSIChgIzY4MGBfKS4KKworKiBGaXggKGAjMTI5MGBfKTogc3Vw
cG9ydCBQeXRob24gMy41J3MgYGBAYGAgb3BlcmF0b3IgaW4gYXNzZXJ0aW9uIHJld3JpdGluZy4K
KyAgVGhhbmtzIGBAU2hpbmtlbmpvZWBfIGZvciByZXBvcnQgd2l0aCB0ZXN0IGNhc2UgYW5kIGBA
dG9tdmluZXJgXyBmb3IgdGhlIFBSLgorCisqIEZpeCBmb3JtYXR0aW5nIHV0Zi04IGV4cGxhbmF0
aW9uIG1lc3NhZ2VzIChgIzEzNzlgXykuCisgIFRoYW5rcyBgQGJpZXJuYF8gZm9yIHRoZSBQUi4K
KworKiBGaXggYHRyYWNlYmFjayBzdHlsZSBkb2NzYF8gdG8gZGVzY3JpYmUgYWxsIG9mIHRoZSBh
dmFpbGFibGUgb3B0aW9ucworICAoYXV0by9sb25nL3Nob3J0L2xpbmUvbmF0aXZlL25vKSwgd2l0
aCBgYGF1dG9gYCBiZWluZyB0aGUgZGVmYXVsdCBzaW5jZSB2Mi42LgorICBUaGFua3MgYEBoYWNr
ZWJyb3RgXyBmb3IgdGhlIFBSLgorCisqIEZpeCAoYCMxNDIyYF8pOiBqdW5pdCByZWNvcmRfeG1s
X3Byb3BlcnR5IGRvZXNuJ3QgYWxsb3cgbXVsdGlwbGUgcmVjb3JkcworICB3aXRoIHNhbWUgbmFt
ZS4KKworLi4gX2B0cmFjZWJhY2sgc3R5bGUgZG9jc2A6IGh0dHBzOi8vcHl0ZXN0Lm9yZy9sYXRl
c3QvdXNhZ2UuaHRtbCNtb2RpZnlpbmctcHl0aG9uLXRyYWNlYmFjay1wcmludGluZworCisuLiBf
IzE2MDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTYwOQor
Li4gXyMxNDIyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0
MjIKKy4uIF8jMTM3OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xMzc5CisuLiBfIzEzNjY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMTM2NgorLi4gXyMxMDQwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvcHVsbC8xMDQwCisuLiBfIzY4MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy82ODAKKy4uIF8jMTI4NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L3B1bGwvMTI4NworLi4gXyMxMjI2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvcHVsbC8xMjI2CisuLiBfIzEyOTA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9wdWxsLzEyOTAKKy4uIF8jMTM1NTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L3B1bGwvMTM1NQorLi4gXyMxMzk3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEzOTcKKy4uIF9AYmllcm46IGh0dHBzOi8vZ2l0aHViLmNv
bS9iaWVybgorLi4gX0BNaWNoYWVsQXF1aWxpbmE6IGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWVs
QXF1aWxpbmEKKy4uIF9AYnVrem9yOiBodHRwczovL2dpdGh1Yi5jb20vYnVrem9yCisuLiBfQGhw
azQyOiBodHRwczovL2dpdGh1Yi5jb20vaHBrNDIKKy4uIF9Abmljb2RkZW11czogaHR0cHM6Ly9n
aXRodWIuY29tL25pY29kZGVtdXMKKy4uIF9AamFiOiBodHRwczovL2dpdGh1Yi5jb20vamFiCisu
LiBfQGNvZGV3YXJyaW9yMDogaHR0cHM6Ly9naXRodWIuY29tL2NvZGV3YXJyaW9yMAorLi4gX0Bq
YXJhY286IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJhY28KKy4uIF9AVGhlLUNvbXBpbGVyOiBodHRw
czovL2dpdGh1Yi5jb20vVGhlLUNvbXBpbGVyCisuLiBfQFNoaW5rZW5qb2U6IGh0dHBzOi8vZ2l0
aHViLmNvbS9TaGlua2Vuam9lCisuLiBfQHRvbXZpbmVyOiBodHRwczovL2dpdGh1Yi5jb20vdG9t
dmluZXIKKy4uIF9AUm9ubnlQZmFubnNjaG1pZHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9Sb25ueVBm
YW5uc2NobWlkdAorLi4gX0ByYWJiYml0OiBodHRwczovL2dpdGh1Yi5jb20vcmFiYmJpdAorLi4g
X0BoYWNrZWJyb3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWNrZWJyb3QKKy4uIF9AcHF1ZW50aW46
IGh0dHBzOi8vZ2l0aHViLmNvbS9wcXVlbnRpbgorLi4gX0Bpb2dnc3RyZWFtOiBodHRwczovL2dp
dGh1Yi5jb20vaW9nZ3N0cmVhbQorCisyLjguNyAoMjAxNi0wMS0yNCkKKz09PT09PT09PT09PT09
PT09PQorCistIGZpeCAjMTMzODogdXNlIHByZWRpY3RhYmxlIG9iamVjdCByZXNvbHV0aW9uIGZv
ciBtb25rZXlwYXRjaAorCisyLjguNiAoMjAxNi0wMS0yMSkKKz09PT09PT09PT09PT09PT09PQor
CistIGZpeCAjMTI1OTogYWxsb3cgZm9yIGRvdWJsZSBub2RlaWRzIGluIGp1bml0eG1sLAorICB0
aGlzIHdhcyBhIHJlZ3Jlc3Npb24gZmFpbGluZyBwbHVnaW5zIGNvbWJpbmF0aW9ucworICBsaWtl
IHB5dGVzdC1wZXA4ICsgcHl0ZXN0LWZsYWtlcworCistIFdvcmthcm91bmQgZm9yIGV4Y2VwdGlv
biB0aGF0IG9jY3VycyBpbiBweXJlYWRsaW5lIHdoZW4gdXNpbmcKKyAgYGAtLXBkYmBgIHdpdGgg
c3RhbmRhcmQgSS9PIGNhcHR1cmUgZW5hYmxlZC4KKyAgVGhhbmtzIEVyaWsgTS4gQnJheSBmb3Ig
dGhlIFBSLgorCistIGZpeCAjOTAwOiBCZXR0ZXIgZXJyb3IgbWVzc2FnZSBpbiBjYXNlIHRoZSB0
YXJnZXQgb2YgYSBgYG1vbmtleXBhdGNoYGAgY2FsbAorICByYWlzZXMgYW4gYGBJbXBvcnRFcnJv
cmBgLgorCistIGZpeCAjMTI5MjogbW9ua2V5cGF0Y2ggY2FsbHMgKHNldGF0dHIsIHNldGVudiwg
ZXRjLikgYXJlIG5vdyBPKDEpLgorICBUaGFua3MgRGF2aWQgUi4gTWFjSXZlciBmb3IgdGhlIHJl
cG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggIzEyMjM6IGNhcHR1
cmVkIHN0ZG91dCBhbmQgc3RkZXJyIGFyZSBub3cgcHJvcGVybHkgZGlzcGxheWVkIGJlZm9yZQor
ICBlbnRlcmluZyBwZGIgd2hlbiBgYC0tcGRiYGAgaXMgdXNlZCBpbnN0ZWFkIG9mIGJlaW5nIHRo
cm93biBhd2F5LgorICBUaGFua3MgQ2FsIExlZW1pbmcgZm9yIHRoZSBQUi4KKworLSBmaXggIzEz
MDU6IHB5dGVzdCB3YXJuaW5ncyBlbWl0dGVkIGR1cmluZyBgYHB5dGVzdF90ZXJtaW5hbF9zdW1t
YXJ5YGAgYXJlIG5vdworICBwcm9wZXJseSBkaXNwbGF5ZWQuCisgIFRoYW5rcyBJb25lbCBNYXJp
ZXMgQ3Jpc3RpYW4gZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIu
CisKKy0gZml4ICM2Mjg6IGZpeGVkIGludGVybmFsIFVuaWNvZGVEZWNvZGVFcnJvciB3aGVuIGRv
Y3Rlc3RzIGNvbnRhaW4gdW5pY29kZS4KKyAgVGhhbmtzIEphc29uIFIuIENvb21icyBmb3IgdGhl
IHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggIzEzMzQ6IEFk
ZCBjYXB0dXJlZCBzdGRvdXQgdG8galVuaXQgWE1MIHJlcG9ydCBvbiBzZXR1cCBlcnJvci4KKyAg
VGhhbmtzIEdlb3JneSBEeXVsZGluIGZvciB0aGUgUFIuCisKKworMi44LjUgKDIwMTUtMTItMTEp
Cis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzEyNDM6IGZpeGVkIGlzc3VlIHdoZXJlIGNs
YXNzIGF0dHJpYnV0ZXMgaW5qZWN0ZWQgZHVyaW5nIGNvbGxlY3Rpb24gY291bGQgYnJlYWsgcHl0
ZXN0LgorICBQUiBieSBBbGV4ZWkgS296bGVub2ssIHRoYW5rcyBSb25ueSBQZmFubnNjaG1pZHQg
YW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgcmV2aWV3IGFuZCBoZWxwLgorCistIGZpeCAjMTA3
NDogcHJlY29tcHV0ZSBqdW5pdHhtbCBjaHVua3MgaW5zdGVhZCBvZiBzdG9yaW5nIHRoZSB3aG9s
ZSB0cmVlIGluIG9iamVjdHMKKyAgVGhhbmtzIEJydW5vIE9saXZlaXJhIGZvciB0aGUgcmVwb3J0
IGFuZCBSb25ueSBQZmFubnNjaG1pZHQgZm9yIHRoZSBQUgorCistIGZpeCAjMTIzODogZml4IGBg
cHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpYGAgcmVjZWl2aW5nIG11bHRpcGxlIGFyZ3VtZW50cwor
ICAoUmVncmVzc2lvbiBpbnRyb2R1Y2VkIGluIDIuOC40KS4gVGhhbmtzIEFsZXggR2F5bm9yIGZv
ciB0aGUgcmVwb3J0IGFuZAorICBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCisKKzIuOC40
ICgyMDE1LTEyLTA2KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4ICMxMTkwOiBgYGRlcHJl
Y2F0ZWRfY2FsbCgpYGAgbm93IHdvcmtzIHdoZW4gdGhlIGRlcHJlY2F0ZWQKKyAgZnVuY3Rpb24g
aGFzIGJlZW4gYWxyZWFkeSBjYWxsZWQgYnkgYW5vdGhlciB0ZXN0IGluIHRoZSBzYW1lCisgIG1v
ZHVsZS4gVGhhbmtzIE1pa2hhaWwgQ2hlcm55a2ggZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9s
aXZlaXJhIGZvciB0aGUKKyAgUFIuCisKKy0gZml4ICMxMTk4OiBgYC0tcGFzdGViaW5gYCBvcHRp
b24gbm93IHdvcmtzIG9uIFB5dGhvbiAzLiBUaGFua3MKKyAgTWVoZHkgS2hvc2hub29keSBmb3Ig
dGhlIFBSLgorCistIGZpeCAjMTIxOTogYGAtLXBhc3RlYmluYGAgbm93IHdvcmtzIGNvcnJlY3Rs
eSB3aGVuIGNhcHR1cmVkIG91dHB1dCBjb250YWlucworICBub24tYXNjaWkgY2hhcmFjdGVycy4g
VGhhbmtzIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4ICMxMjA0OiBhbm90aGVy
IGVycm9yIHdoZW4gY29sbGVjdGluZyB3aXRoIGEgbmFzdHkgX19nZXRhdHRyX18oKS4KKyAgVGhh
bmtzIEZsb3JpYW4gQnJ1aGluIGZvciB0aGUgUFIuCisKKy0gZml4IHRoZSBzdW1tYXJ5IHByaW50
ZWQgd2hlbiBubyB0ZXN0cyBkaWQgcnVuLgorICBUaGFua3MgRmxvcmlhbiBCcnVoaW4gZm9yIHRo
ZSBQUi4KKy0gZml4ICMxMTg1IC0gZW5zdXJlIE1BTklGRVNULmluIGV4YWN0bHkgbWF0Y2hlcyB3
aGF0IHNob3VsZCBnbyB0byBhIHNkaXN0CisKKy0gYSBudW1iZXIgb2YgZG9jdW1lbnRhdGlvbiBt
b2Rlcm5pemF0aW9ucyB3cnQgZ29vZCBwcmFjdGljZXMuCisgIFRoYW5rcyBCcnVubyBPbGl2ZWly
YSBmb3IgdGhlIFBSLgorCisyLjguMyAoMjAxNS0xMS0xOCkKKz09PT09PT09PT09PT09PT09PQor
CistIGZpeCAjMTE2OTogYWRkIF9fbmFtZV9fIGF0dHJpYnV0ZSB0byB0ZXN0Y2FzZXMgaW4gVGVz
dENhc2VGdW5jdGlvbiB0bworICBzdXBwb3J0IHRoZSBAdW5pdHRlc3Quc2tpcCBkZWNvcmF0b3Ig
b24gZnVuY3Rpb25zIGFuZCBtZXRob2RzLgorICBUaGFua3MgTGVlIEthbWVudHNreSBmb3IgdGhl
IFBSLgorCistIGZpeCAjMTAzNTogY29sbGVjdGluZyB0ZXN0cyBpZiB0ZXN0IG1vZHVsZSBsZXZl
bCBvYmogaGFzIF9fZ2V0YXR0cl9fKCkuCisgIFRoYW5rcyBTdW9yIGZvciB0aGUgcmVwb3J0IGFu
ZCBCcnVubyBPbGl2ZWlyYSAvIFRvbSBWaW5lciBmb3IgdGhlIFBSLgorCistIGZpeCAjMzMxOiBk
b24ndCBjb2xsZWN0IHRlc3RzIGlmIHRoZWlyIGZhaWx1cmUgY2Fubm90IGJlIHJlcG9ydGVkIGNv
cnJlY3RseQorICBlLmcuIHRoZXkgYXJlIGEgY2FsbGFibGUgaW5zdGFuY2Ugb2YgYSBjbGFzcy4K
KworLSBmaXggIzExMzM6IGZpeGVkIGludGVybmFsIGVycm9yIHdoZW4gZmlsdGVyaW5nIHRyYWNl
YmFja3Mgd2hlcmUgb25lIGVudHJ5CisgIGJlbG9uZ3MgdG8gYSBmaWxlIHdoaWNoIGlzIG5vIGxv
bmdlciBhdmFpbGFibGUuCisgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCist
IGVuaGFuY2VtZW50IG1hZGUgdG8gaGlnaGxpZ2h0IGluIHJlZCB0aGUgbmFtZSBvZiB0aGUgZmFp
bGluZyB0ZXN0cyBzbworICB0aGV5IHN0YW5kIG91dCBpbiB0aGUgb3V0cHV0LgorICBUaGFua3Mg
R2FicmllbCBSZWlzIGZvciB0aGUgUFIuCisKKy0gYWRkIG1vcmUgdGFsa3MgdG8gdGhlIGRvY3Vt
ZW50YXRpb24KKy0gZXh0ZW5kIGRvY3VtZW50YXRpb24gb24gdGhlIC0taWdub3JlIGNsaSBvcHRp
b24KKy0gdXNlIHB5dGVzdC1ydW5uZXIgZm9yIHNldHVwdG9vbHMgaW50ZWdyYXRpb24KKy0gbWlu
b3IgZml4ZXMgZm9yIGludGVyYWN0aW9uIHdpdGggT1MgWCBFbCBDYXBpdGFuCisgIHN5c3RlbSBp
bnRlZ3JpdHkgcHJvdGVjdGlvbiAodGhhbmtzIEZsb3JpYW4pCisKKworMi44LjIgKDIwMTUtMTAt
MDcpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzEwODU6IHByb3BlciBoYW5kbGluZyBv
ZiBlbmNvZGluZyBlcnJvcnMgd2hlbiBwYXNzaW5nIGVuY29kZWQgYnl0ZQorICBzdHJpbmdzIHRv
IHB5dGVzdC5wYXJhbWV0cml6ZSBpbiBQeXRob24gMi4KKyAgVGhhbmtzIFRoZW1hbndpdGhvdXRh
cGxhbiBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBm
aXggIzEwODc6IGhhbmRsaW5nIFN5c3RlbUVycm9yIHdoZW4gcGFzc2luZyBlbXB0eSBieXRlIHN0
cmluZ3MgdG8KKyAgcHl0ZXN0LnBhcmFtZXRyaXplIGluIFB5dGhvbiAzLgorICBUaGFua3MgUGF1
bCBLZWhyZXIgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisK
Ky0gZml4ICM5OTU6IGZpeGVkIGludGVybmFsIGVycm9yIHdoZW4gZmlsdGVyaW5nIHRyYWNlYmFj
a3Mgd2hlcmUgb25lIGVudHJ5CisgIHdhcyBnZW5lcmF0ZWQgYnkgYW4gZXhlYygpIHN0YXRlbWVu
dC4KKyAgVGhhbmtzIERhbmllbCBIYWhsZXIsIEFzaGxleSBDIFN0cmF3LCBQaGlsaXBwZSBHYXV0
aGllciBhbmQgUGF2ZWwgU2F2Y2hlbmtvCisgIGZvciBjb250cmlidXRpbmcgYW5kIEJydW5vIE9s
aXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4ICMxMTAwIGFuZCAjMTA1NzogZXJyb3JzIHdoZW4g
dXNpbmcgYXV0b3VzZSBmaXh0dXJlcyBhbmQgZG9jdGVzdCBtb2R1bGVzLgorICBUaGFua3MgU2Vy
Z2V5IEIgS2lycGljaGV2IGFuZCBWaXRhbCBLdWR6ZWxrYSBmb3IgY29udHJpYnV0aW5nIGFuZCBC
cnVubworICBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCisyLjguMSAoMjAxNS0wOS0yOSkKKz09PT09
PT09PT09PT09PT09PQorCistIGZpeCAjMTAzNDogQWRkIG1pc3Npbmcgbm9kZWlkIG9uIHB5dGVz
dF9sb2d3YXJuaW5nIGNhbGwgaW4KKyAgYWRkaG9vay4gIFRoYW5rcyBTaW1vbiBHb21pemVsaiBm
b3IgdGhlIFBSLgorCistICdkZXByZWNhdGVkX2NhbGwnIGlzIG5vdyBvbmx5IHNhdGlzZmllZCB3
aXRoIGEgRGVwcmVjYXRpb25XYXJuaW5nIG9yCisgIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcu
IEJlZm9yZSAyLjguMCwgaXQgYWNjZXB0ZWQgYW55IHdhcm5pbmcsIGFuZCAyLjguMAorICBtYWRl
IGl0IGFjY2VwdCBvbmx5IERlcHJlY2F0aW9uV2FybmluZyAoYnV0IG5vdCBQZW5kaW5nRGVwcmVj
YXRpb25XYXJuaW5nKS4KKyAgVGhhbmtzIEFsZXggR2F5bm9yIGZvciB0aGUgaXNzdWUgYW5kIEVy
aWMgSHVuc2JlcmdlciBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZSAjMTA3MzogYXZvaWQgY2Fs
bGluZyBfX2dldGF0dHJfXyBvbiBwb3RlbnRpYWwgcGx1Z2luIG9iamVjdHMuCisgIFRoaXMgZml4
ZXMgYW4gaW5jb21wYXRpYmlsaXR5IHdpdGggcHl0ZXN0LWRqYW5nby4gIFRoYW5rcyBBbmRyZWFz
IFBlbG1lLAorICBCcnVubyBPbGl2ZWlyYSBhbmQgUm9ubnkgUGZhbm5zY2htaWR0IGZvciBjb250
cmlidXRpbmcgYW5kIEhvbGdlciBLcmVrZWwKKyAgZm9yIHRoZSBmaXguCisKKy0gRml4IGlzc3Vl
ICM3MDQ6IGhhbmRsZSB2ZXJzaW9uY29uZmxpY3QgZHVyaW5nIHBsdWdpbiBsb2FkaW5nIG1vcmUK
KyAgZ3JhY2VmdWxseS4gIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIEZp
eCBpc3N1ZSAjMTA2NDogIiItLWp1bml0eG1sIiByZWdyZXNzaW9uIHdoZW4gdXNlZCB3aXRoIHRo
ZQorICAicHl0ZXN0LXhkaXN0IiBwbHVnaW4sIHdpdGggdGVzdCByZXBvcnRzIGJlaW5nIGFzc2ln
bmVkIHRvIHRoZSB3cm9uZyB0ZXN0cy4KKyAgVGhhbmtzIERhbmllbCBHcnVud2FsZCBmb3IgdGhl
IHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSAoZXhwZXJpbWVudGFs
KSBhZGFwdCBtb3JlIFNFTVZFUiBzdHlsZSB2ZXJzaW9uaW5nIGFuZCBjaGFuZ2UgbWVhbmluZyBv
ZgorICBtYXN0ZXIgYnJhbmNoIGluIGdpdCByZXBvOiAibWFzdGVyIiBicmFuY2ggbm93IGtlZXBz
IHRoZSBidWdmaXhlcywgY2hhbmdlcworICBhaW1lZCBmb3IgbWljcm8gcmVsZWFzZXMuICAiZmVh
dHVyZXMiIGJyYW5jaCB3aWxsIG9ubHkgYmUgcmVsZWFzZWQKKyAgd2l0aCBtaW5vciBvciBtYWpv
ciBweXRlc3QgcmVsZWFzZXMuCisKKy0gRml4IGlzc3VlICM3NjYgYnkgcmVtb3ZpbmcgZG9jdW1l
bnRhdGlvbiByZWZlcmVuY2VzIHRvIGRpc3R1dGlscy4KKyAgVGhhbmtzIFJ1c3NlbCBXaW5kZXIu
CisKKy0gRml4IGlzc3VlICMxMDMwOiBub3cgYnl0ZS1zdHJpbmdzIGFyZSBlc2NhcGVkIHRvIHBy
b2R1Y2UgaXRlbSBub2RlIGlkcworICB0byBtYWtlIHRoZW0gYWx3YXlzIHNlcmlhbGl6YWJsZS4K
KyAgVGhhbmtzIEFuZHkgRnJlZWxhbmQgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJh
IGZvciB0aGUgUFIuCisKKy0gUHl0aG9uIDI6IGlmIHVuaWNvZGUgcGFyYW1ldHJpemVkIHZhbHVl
cyBhcmUgY29udmVydGlibGUgdG8gYXNjaWksIHRoZWlyCisgIGFzY2lpIHJlcHJlc2VudGF0aW9u
IGlzIHVzZWQgZm9yIHRoZSBub2RlIGlkLgorCistIEZpeCBpc3N1ZSAjNDExOiBBZGQgX19lcV9f
IG1ldGhvZCB0byBhc3NlcnRpb24gY29tcGFyaXNvbiBleGFtcGxlLgorICBUaGFua3MgQmVuIFdl
YmIuCistIEZpeCBpc3N1ZSAjNjUzOiBkZXByZWNhdGVkX2NhbGwgY2FuIGJlIHVzZWQgYXMgY29u
dGV4dCBtYW5hZ2VyLgorCistIGZpeCBpc3N1ZSA4Nzc6IHByb3Blcmx5IGhhbmRsZSBhc3NlcnRp
b24gZXhwbGFuYXRpb25zIHdpdGggbm9uLWFzY2lpIHJlcHIKKyAgVGhhbmtzIE1hdGhpZXUgQWdv
cGlhbiBmb3IgdGhlIHJlcG9ydCBhbmQgUm9ubnkgUGZhbm5zY2htaWR0IGZvciB0aGUgUFIuCisK
Ky0gZml4IGlzc3VlIDEwMjk6IHRyYW5zZm9ybSBlcnJvcnMgd2hlbiB3cml0aW5nIGNhY2hlIHZh
bHVlcyBpbnRvIHB5dGVzdC13YXJuaW5ncworCisyLjguMCAoMjAxNS0wOS0xOCkKKz09PT09PT09
PT09PT09PT09PQorCistIG5ldyBgYC0tbGZgYCBhbmQgYGAtZmZgYCBvcHRpb25zIHRvIHJ1biBv
bmx5IHRoZSBsYXN0IGZhaWxpbmcgdGVzdHMgb3IKKyAgImZhaWxpbmcgdGVzdHMgZmlyc3QiIGZy
b20gdGhlIGxhc3QgcnVuLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByb3ZpZGVkCisgIHRocm91
Z2ggcG9ydGluZyB0aGUgZm9ybWVybHkgZXh0ZXJuYWwgcHl0ZXN0LWNhY2hlIHBsdWdpbiBpbnRv
IHB5dGVzdCBjb3JlLgorICBCQUNLV0FSRCBJTkNPTVBBVDogaWYgeW91IHVzZWQgcHl0ZXN0LWNh
Y2hlJ3MgZnVuY3Rpb25hbGl0eSB0byBwZXJzaXN0CisgIGRhdGEgYmV0d2VlbiB0ZXN0IHJ1bnMg
YmUgYXdhcmUgdGhhdCB3ZSBkb24ndCBzZXJpYWxpemUgc2V0cyBhbnltb3JlLgorICBUaGFua3Mg
Um9ubnkgUGZhbm5zY2htaWR0IGZvciBtb3N0IG9mIHRoZSBtZXJnaW5nIHdvcmsuCisKKy0gIi1y
IiBvcHRpb24gbm93IGFjY2VwdHMgImEiIHRvIGluY2x1ZGUgYWxsIHBvc3NpYmxlIHJlcG9ydHMs
IHNpbWlsYXIKKyAgdG8gcGFzc2luZyAiZkVzeFh3IiBleHBsaWNpdGx5IChpc3NlOTYwKS4KKyAg
VGhhbmtzIEFiaGlqZWV0IEthc3VyZGUgZm9yIHRoZSBQUi4KKworLSBhdm9pZCBweXRob24zLjUg
ZGVwcmVjYXRpb24gd2FybmluZ3MgYnkgaW50cm9kdWNpbmcgdmVyc2lvbgorICBzcGVjaWZpYyBp
bnNwZWN0aW9uIGhlbHBlcnMsIHRoYW5rcyBNaWNoYWVsIERyb2V0dGJvb20uCisKKy0gZml4IGlz
c3VlNTYyOiBAbm9zZS50b29scy5pc3Rlc3Qgbm93IGZ1bGx5IHJlc3BlY3RlZC4KKworLSBmaXgg
aXNzdWU5MzQ6IHdoZW4gc3RyaW5nIGNvbXBhcmlzb24gZmFpbHMgYW5kIGEgZGlmZiBpcyB0b28g
bGFyZ2UgdG8gZGlzcGxheQorICB3aXRob3V0IHBhc3NpbmcgLXZ2LCBzdGlsbCBzaG93IGEgZmV3
IGxpbmVzIG9mIHRoZSBkaWZmLgorICBUaGFua3MgRmxvcmlhbiBCcnVoaW4gZm9yIHRoZSByZXBv
cnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlNzM2OiBGaXgg
YSBidWcgd2hlcmUgZml4dHVyZSBwYXJhbXMgd291bGQgYmUgZGlzY2FyZGVkIHdoZW4gY29tYmlu
ZWQKKyAgd2l0aCBwYXJhbWV0cml6YXRpb24gbWFya2Vycy4KKyAgVGhhbmtzIHRvIE1hcmt1cyBV
bnRlcndhZGl0emVyIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlNzEwOiBpbnRyb2R1Y2UgQUxM
T1dfVU5JQ09ERSBkb2N0ZXN0IG9wdGlvbjogd2hlbiBlbmFibGVkLCB0aGUKKyAgYGB1YGAgcHJl
Zml4IGlzIHN0cmlwcGVkIGZyb20gdW5pY29kZSBzdHJpbmdzIGluIGV4cGVjdGVkIGRvY3Rlc3Qg
b3V0cHV0LiBUaGlzCisgIGFsbG93cyBkb2N0ZXN0cyB3aGljaCB1c2UgdW5pY29kZSB0byBydW4g
aW4gUHl0aG9uIDIgYW5kIDMgdW5jaGFuZ2VkLgorICBUaGFua3MgSmFzb24gUi4gQ29vbWJzIGZv
ciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIHBhcmFtZXRy
aXplIG5vdyBhbHNvIGdlbmVyYXRlcyBtZWFuaW5nZnVsIHRlc3QgSURzIGZvciBlbnVtLCByZWdl
eCBhbmQgY2xhc3MKKyAgb2JqZWN0cyAoYXMgb3Bwb3NlZCB0byBjbGFzcyBpbnN0YW5jZXMpLgor
ICBUaGFua3MgdG8gRmxvcmlhbiBCcnVoaW4gZm9yIHRoZSBQUi4KKworLSBBZGQgJ3dhcm5zJyB0
byBhc3NlcnQgdGhhdCB3YXJuaW5ncyBhcmUgdGhyb3duIChsaWtlICdyYWlzZXMnKS4KKyAgVGhh
bmtzIHRvIEVyaWMgSHVuc2JlcmdlciBmb3IgdGhlIFBSLgorCistIEZpeCBpc3N1ZTY4MzogRG8g
bm90IGFwcGx5IGFuIGFscmVhZHkgYXBwbGllZCBtYXJrLiAgVGhhbmtzIG9qYWtlIGZvciB0aGUg
UFIuCisKKy0gRGVhbCB3aXRoIGNhcHR1cmluZyBmYWlsdXJlcyBiZXR0ZXIgc28gZmV3ZXIgZXhj
ZXB0aW9ucyBnZXQgbG9zdCB0bworICAvZGV2L251bGwuICBUaGFua3MgRGF2aWQgU3pvdHRlbiBm
b3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTczMDogZGVwcmVjYXRlIGFuZCB3YXJuIGFib3V0IHRo
ZSAtLWdlbnNjcmlwdCBvcHRpb24uCisgIFRoYW5rcyBSb25ueSBQZmFubnNjaG1pZHQgZm9yIHRo
ZSByZXBvcnQgYW5kIENocmlzdGlhbiBQb21tcmFueiBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1
ZTc1MTogbXVsdGlwbGUgcGFyYW1ldHJpemUgd2l0aCBpZHMgYnVnIGlmIGl0IHBhcmFtZXRyaXpl
cyBjbGFzcyB3aXRoCisgIHR3byBvciBtb3JlIHRlc3QgbWV0aG9kcy4gVGhhbmtzIFNlcmdleSBD
aGlwaWdhIGZvciByZXBvcnRpbmcgYW5kIEphbgorICBCZWRuYXJpayBmb3IgUFIuCisKKy0gZml4
IGlzc3VlODI6IGF2b2lkIGxvYWRpbmcgY29uZnRlc3QgZmlsZXMgZnJvbSBzZXR1cC5jZmcvcHl0
ZXN0LmluaS90b3guaW5pCisgIGZpbGVzIGFuZCB1cHdhcmRzIGJ5IGRlZmF1bHQgKC0tY29uZmN1
dGRpciBjYW4gc3RpbGwgYmUgc2V0IHRvIG92ZXJyaWRlIHRoaXMpLgorICBUaGFua3MgQnJ1bm8g
T2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU3Njg6IGRvY3N0cmluZ3MgZm91bmQg
aW4gcHl0aG9uIG1vZHVsZXMgd2VyZSBub3Qgc2V0dGluZyB1cCBzZXNzaW9uCisgIGZpeHR1cmVz
LiBUaGFua3MgSmFzb24gUi4gQ29vbWJzIGZvciByZXBvcnRpbmcgYW5kIEJydW5vIE9saXZlaXJh
IGZvciB0aGUgUFIuCisKKy0gYWRkZWQgYGB0bXBkaXJfZmFjdG9yeWBgLCBhIHNlc3Npb24tc2Nv
cGVkIGZpeHR1cmUgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUKKyAgZGlyZWN0b3JpZXMgdW5k
ZXIgdGhlIGJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeS4gUHJldmlvdXNseSB0aGlzIG9iamVjdCB3
YXMKKyAgaW5zdGFsbGVkIGFzIGEgYGBfdG1wZGlyaGFuZGxlcmBgIGF0dHJpYnV0ZSBvZiB0aGUg
YGBjb25maWdgYCBvYmplY3QsIGJ1dCBub3cgaXQKKyAgaXMgcGFydCBvZiB0aGUgb2ZmaWNpYWwg
QVBJIGFuZCB1c2luZyBgYGNvbmZpZy5fdG1wZGlyaGFuZGxlcmBgIGlzCisgIGRlcHJlY2F0ZWQu
CisgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTgwODog
cHl0ZXN0J3MgaW50ZXJuYWwgYXNzZXJ0aW9uIHJld3JpdGUgaG9vayBub3cgaW1wbGVtZW50cyB0
aGUKKyAgb3B0aW9uYWwgUEVQMzAyIGdldF9kYXRhIEFQSSBzbyB0ZXN0cyBjYW4gYWNjZXNzIGRh
dGEgZmlsZXMgbmV4dCB0byB0aGVtLgorICBUaGFua3MgeG1vLW9kb28gZm9yIHJlcXVlc3QgYW5k
IGV4YW1wbGUgYW5kIEJydW5vIE9saXZlaXJhIGZvcgorICB0aGUgUFIuCisKKy0gcm9vdGRpciBh
bmQgaW5pZmlsZSBhcmUgbm93IGRpc3BsYXllZCBkdXJpbmcgdXNhZ2UgZXJyb3JzIHRvIGhlbHAK
KyAgdXNlcnMgZGlhZ25vc2UgcHJvYmxlbXMgc3VjaCBhcyB1bmV4cGVjdGVkIGluaSBmaWxlcyB3
aGljaCBhZGQKKyAgdW5rbm93biBvcHRpb25zIGJlaW5nIHBpY2tlZCB1cCBieSBweXRlc3QuIFRo
YW5rcyB0byBQYXZlbCBTYXZjaGVua28gZm9yCisgIGJyaW5naW5nIHRoZSBwcm9ibGVtIHRvIGF0
dGVudGlvbiBpbiAjODIxIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIFN1bW1h
cnkgYmFyIG5vdyBpcyBjb2xvcmVkIHllbGxvdyBmb3Igd2FybmluZworICBzaXR1YXRpb25zIHN1
Y2ggYXM6IGFsbCB0ZXN0cyBlaXRoZXIgd2VyZSBza2lwcGVkIG9yIHhwYXNzL3hmYWlsZWQsCisg
IG9yIG5vIHRlc3RzIHdlcmUgcnVuIGF0IGFsbCAodGhpcyBpcyBhIHBhcnRpYWwgZml4IGZvciBp
c3N1ZTUwMCkuCisKKy0gZml4IGlzc3VlODEyOiBweXRlc3Qgbm93IGV4aXRzIHdpdGggc3RhdHVz
IGNvZGUgNSBpbiBzaXR1YXRpb25zIHdoZXJlIG5vCisgIHRlc3RzIHdlcmUgcnVuIGF0IGFsbCwg
c3VjaCBhcyB0aGUgZGlyZWN0b3J5IGdpdmVuIGluIHRoZSBjb21tYW5kIGxpbmUgZG9lcworICBu
b3QgY29udGFpbiBhbnkgdGVzdHMgb3IgYXMgcmVzdWx0IG9mIGEgY29tbWFuZCBsaW5lIG9wdGlv
biBmaWx0ZXJzCisgIGFsbCBvdXQgYWxsIHRlc3RzICgtayBmb3IgZXhhbXBsZSkuCisgIFRoYW5r
cyBFcmljIFNpZWdlcm1hbiAoaXNzdWU4MTIpIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBS
LgorCistIFN1bW1hcnkgYmFyIG5vdyBpcyBjb2xvcmVkIHllbGxvdyBmb3Igd2FybmluZworICBz
aXR1YXRpb25zIHN1Y2ggYXM6IGFsbCB0ZXN0cyBlaXRoZXIgd2VyZSBza2lwcGVkIG9yIHhwYXNz
L3hmYWlsZWQsCisgIG9yIG5vIHRlc3RzIHdlcmUgcnVuIGF0IGFsbCAocmVsYXRlZCB0byBpc3N1
ZTUwMCkuCisgIFRoYW5rcyBFcmljIFNpZWdlcm1hbi4KKworLSBOZXcgYGB0ZXN0cGF0aHNgYCBp
bmkgb3B0aW9uOiBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgdGVzdHMKKyAgd2hl
biBleGVjdXRpbmcgcHl0ZXN0IGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LiBUaGlzIGNhbiBiZSB1
c2VkCisgIHRvIHNwZWVkIHVwIHRlc3QgY29sbGVjdGlvbiB3aGVuIGEgcHJvamVjdCBoYXMgd2Vs
bCBzcGVjaWZpZWQgZGlyZWN0b3JpZXMKKyAgZm9yIHRlc3RzLCBiZWluZyB1c3VhbGx5IG1vcmUg
cHJhY3RpY2FsIHRoYW4gY29uZmlndXJpbmcgbm9yZWN1cnNlZGlycyBmb3IKKyAgYWxsIGRpcmVj
dG9yaWVzIHRoYXQgZG8gbm90IGNvbnRhaW4gdGVzdHMuCisgIFRoYW5rcyB0byBBZHJpYW4gZm9y
IGlkZWEgKCM2OTQpIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1
ZTcxMzogSlVuaXQgWE1MIHJlcG9ydHMgZm9yIGRvY3Rlc3QgZmFpbHVyZXMuCisgIFRoYW5rcyBQ
dW55YXNobG9rYSBCaXN3YWwuCisKKy0gZml4IGlzc3VlOTcwOiBpbnRlcm5hbCBweXRlc3Qgd2Fy
bmluZ3Mgbm93IGFwcGVhciBhcyAicHl0ZXN0LXdhcm5pbmdzIiBpbgorICB0aGUgdGVybWluYWwg
aW5zdGVhZCBvZiAid2FybmluZ3MiLCBzbyBpdCBpcyBjbGVhciBmb3IgdXNlcnMgdGhhdCB0aG9z
ZQorICB3YXJuaW5ncyBhcmUgZnJvbSBweXRlc3QgYW5kIG5vdCBmcm9tIHRoZSBidWlsdGluICJ3
YXJuaW5ncyIgbW9kdWxlLgorICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEuCisKKy0gSW5jbHVkZSBz
ZXR1cCBhbmQgdGVhcmRvd24gaW4ganVuaXR4bWwgdGVzdCBkdXJhdGlvbnMuCisgIFRoYW5rcyBK
YW5uZSBWYW5oYWxhLgorCistIGZpeCBpc3N1ZTczNTogYXNzZXJ0aW9uIGZhaWx1cmVzIG9uIGRl
YnVnIHZlcnNpb25zIG9mIFB5dGhvbiAzLjQrCisKKy0gbmV3IG9wdGlvbiBgYC0taW1wb3J0LW1v
ZGVgYCB0byBhbGxvdyB0byBjaGFuZ2UgdGVzdCBtb2R1bGUgaW1wb3J0aW5nCisgIGJlaGF2aW91
ciB0byBhcHBlbmQgdG8gc3lzLnBhdGggaW5zdGVhZCBvZiBwcmVwZW5kaW5nLiAgVGhpcyBiZXR0
ZXIgYWxsb3dzCisgIHRvIHJ1biB0ZXN0IG1vZHVsZXMgYWdhaW5zdCBpbnN0YWxsZWQgdmVyc2lv
bnMgb2YgYSBwYWNrYWdlIGV2ZW4gaWYgdGhlCisgIHBhY2thZ2UgdW5kZXIgdGVzdCBoYXMgdGhl
IHNhbWUgaW1wb3J0IHJvb3QuICBJbiB0aGlzIGV4YW1wbGU6OgorCisgICAgICAgIHRlc3Rpbmcv
X19pbml0X18ucHkKKyAgICAgICAgdGVzdGluZy90ZXN0X3BrZ191bmRlcl90ZXN0LnB5CisgICAg
ICAgIHBrZ191bmRlcl90ZXN0LworCisgIHRoZSB0ZXN0cyB3aWxsIHJ1biBhZ2FpbnN0IHRoZSBp
bnN0YWxsZWQgdmVyc2lvbgorICBvZiBwa2dfdW5kZXJfdGVzdCB3aGVuIGBgLS1pbXBvcnQtbW9k
ZT1hcHBlbmRgYCBpcyB1c2VkIHdoZXJlYXMKKyAgYnkgZGVmYXVsdCB0aGV5IHdvdWxkIGFsd2F5
cyBwaWNrIHVwIHRoZSBsb2NhbCB2ZXJzaW9uLiAgVGhhbmtzIEhvbGdlciBLcmVrZWwuCisKKy0g
cHl0ZXN0ZXI6IGFkZCBtZXRob2QgYGBUbXBUZXN0ZGlyLmRlbGV0ZV9sb2FkZWRfbW9kdWxlcygp
YGAsIGFuZCBjYWxsIGl0CisgIGZyb20gYGBpbmxpbmVfcnVuKClgYCB0byBhbGxvdyB0ZW1wb3Jh
cnkgbW9kdWxlcyB0byBiZSByZWxvYWRlZC4KKyAgVGhhbmtzIEVkdWFyZG8gU2NoZXR0aW5vLgor
CistIGludGVybmFsbHkgcmVmYWN0b3IgcGx1Z2lubWFuYWdlciBBUEkgYW5kIGNvZGUgc28gdGhh
dCB0aGVyZQorICBpcyBhIGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gYSBweXRlc3QtYWdub3N0
aWMgcmF0aGVyIHNpbXBsZQorICBwbHVnaW5tYW5hZ2VyIGFuZCB0aGUgUHl0ZXN0UGx1Z2luTWFu
YWdlciB3aGljaCBhZGRzIGEgbG90IG9mCisgIGJlaGF2aW91ciwgYW1vbmcgaXQgaGFuZGxpbmcg
b2YgdGhlIGxvY2FsIGNvbmZ0ZXN0IGZpbGVzLgorICBJbiB0ZXJtcyBvZiBkb2N1bWVudGVkIG1l
dGhvZHMgdGhpcyBpcyBhIGJhY2t3YXJkIGNvbXBhdGlibGUKKyAgY2hhbmdlIGJ1dCBpdCBtaWdo
dCBzdGlsbCBicmVhayAzcmQgcGFydHkgcGx1Z2lucyB3aGljaCByZWxpZWQgb24KKyAgZGV0YWls
cyBsaWtlIGVzcGVjaWFsbHkgdGhlIHBsdWdpbm1hbmFnZXIuYWRkX3NodXRkb3duKCkgQVBJLgor
ICBUaGFua3MgSG9sZ2VyIEtyZWtlbC4KKworLSBwbHVnaW5tYW5hZ2VtZW50OiBpbnRyb2R1Y2Ug
YGBweXRlc3QuaG9va2ltcGxgYCBhbmQKKyAgYGBweXRlc3QuaG9va3NwZWNgYCBkZWNvcmF0b3Jz
IGZvciBzZXR0aW5nIGltcGwvc3BlYworICBzcGVjaWZpYyBwYXJhbWV0ZXJzLiAgVGhpcyBzdWJz
dGl0dXRlcyB0aGUgcHJldmlvdXMKKyAgbm93IGRlcHJlY2F0ZWQgdXNlIG9mIGBgcHl0ZXN0Lm1h
cmtgYCB3aGljaCBpcyBtZWFudCB0bworICBjb250YWluIG1hcmtlcnMgZm9yIHRlc3QgZnVuY3Rp
b25zIG9ubHkuCisKKy0gd3JpdGUvcmVmaW5lIGRvY3MgZm9yICJ3cml0aW5nIHBsdWdpbnMiIHdo
aWNoIG5vdyBoYXZlIHRoZWlyCisgIG93biBwYWdlIGFuZCBhcmUgc2VwYXJhdGUgZnJvbSB0aGUg
InVzaW5nL2luc3RhbGxpbmcgcGx1Z2luc2BgIHBhZ2UuCisKKy0gZml4IGlzc3VlNzMyOiBwcm9w
ZXJseSB1bnJlZ2lzdGVyIHBsdWdpbnMgZnJvbSBhbnkgaG9vayBjYWxsaW5nCisgIHNpdGVzIGFs
bG93aW5nIHRvIGhhdmUgdGVtcG9yYXJ5IHBsdWdpbnMgZHVyaW5nIHRlc3QgZXhlY3V0aW9uLgor
CistIGRlcHJlY2F0ZSBhbmQgd2FybiBhYm91dCBgYF9fbXVsdGljYWxsX19gYCBhcmd1bWVudCBp
biBob29rCisgIGltcGxlbWVudGF0aW9ucy4gIFVzZSB0aGUgYGBob29rd3JhcHBlcmBgIG1lY2hh
bmlzbSBpbnN0ZWFkIGFscmVhZHkKKyAgaW50cm9kdWNlZCB3aXRoIHB5dGVzdC0yLjcuCisKKy0g
c3BlZWQgdXAgcHl0ZXN0J3Mgb3duIHRlc3Qgc3VpdGUgY29uc2lkZXJhYmx5IGJ5IHVzaW5nIGlu
cHJvY2VzcworICB0ZXN0cyBieSBkZWZhdWx0ICh0ZXN0cnVuIGNhbiBiZSBtb2RpZmllZCB3aXRo
IC0tcnVucHl0ZXN0PXN1YnByb2Nlc3MKKyAgdG8gY3JlYXRlIHN1YnByb2Nlc3NlcyBpbiBtYW55
IHBsYWNlcyBpbnN0ZWFkKS4gIFRoZSBtYWluCisgIEFQSXMgdG8gcnVuIHB5dGVzdCBpbiBhIHRl
c3QgaXMgInJ1bnB5dGVzdCgpIiBvciAicnVucHl0ZXN0X3N1YnByb2Nlc3MiCisgIGFuZCAicnVu
cHl0ZXN0X2lucHJvY2VzcyIgaWYgeW91IG5lZWQgYSBwYXJ0aWN1bGFyIHdheSBvZiBydW5uaW5n
CisgIHRoZSB0ZXN0LiAgSW4gYWxsIGNhc2VzIHlvdSBnZXQgYmFjayBhIFJ1blJlc3VsdCBidXQg
dGhlIGlucHJvY2VzcworICBvbmUgd2lsbCBhbHNvIGhhdmUgYSAicmVwcmVjIiBhdHRyaWJ1dGUg
d2l0aCB0aGUgcmVjb3JkZWQgZXZlbnRzL3JlcG9ydHMuCisKKy0gZml4IG1vbmtleXBhdGNoLnNl
dGF0dHIoIngueSIsIHJhaXNpbmc9RmFsc2UpIHRvIGFjdHVhbGx5IG5vdCByYWlzZQorICBpZiAi
eSIgaXMgbm90IGEgcHJlLWV4aXN0aW5nIGF0dHJpYnV0ZS4gVGhhbmtzIEZsb3JpYW4gQnJ1aGlu
LgorCistIGZpeCBpc3N1ZTc0MTogbWFrZSBydW5uaW5nIG91dHB1dCBmcm9tIHRlc3RkaXIucnVu
IGNvcHkvcGFzdGVhYmxlCisgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYS4KKworLSBhZGQgYSBuZXcg
YGAtLW5vY29uZnRlc3RgYCBhcmd1bWVudCB3aGljaCBpZ25vcmVzIGFsbCBgYGNvbmZ0ZXN0LnB5
YGAgZmlsZXMuCisKKy0gYWRkIGBgZmlsZWBgIGFuZCBgYGxpbmVgYCBhdHRyaWJ1dGVzIHRvIEpV
bml0LVhNTCBvdXRwdXQuCisKKy0gZml4IGlzc3VlODkwOiBjaGFuZ2VkIGV4dGVuc2lvbiBvZiBh
bGwgZG9jdW1lbnRhdGlvbiBmaWxlcyBmcm9tIGBgdHh0YGAgdG8KKyAgYGByc3RgYC4gVGhhbmtz
IHRvIEFiaGlqZWV0IGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlNzE0OiBhZGQgYWJpbGl0eSB0
byBhcHBseSBpbmRpcmVjdD1UcnVlIHBhcmFtZXRlciBvbiBwYXJ0aWN1bGFyIGFyZ25hbWVzLgor
ICBUaGFua3MgRWxpemF2ZXRhMjM5LgorCistIGZpeCBpc3N1ZTg5MDogY2hhbmdlZCBleHRlbnNp
b24gb2YgYWxsIGRvY3VtZW50YXRpb24gZmlsZXMgZnJvbSBgYHR4dGBgIHRvCisgIGBgcnN0YGAu
IFRoYW5rcyB0byBBYmhpamVldCBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTk1NzogIiMgZG9j
dGVzdDogU0tJUCIgb3B0aW9uIHdpbGwgbm93IHJlZ2lzdGVyIGRvY3Rlc3RzIGFzIFNLSVBQRUQK
KyAgcmF0aGVyIHRoYW4gUEFTU0VELgorICBUaGFua3MgVGhvbWFzIEdyYWluZ2VyIGZvciB0aGUg
cmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGlzc3VlOTUxOiBhZGQg
bmV3IHJlY29yZF94bWxfcHJvcGVydHkgZml4dHVyZSwgdGhhdCBzdXBwb3J0cyBsb2dnaW5nCisg
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24geG1sIG91dHB1dC4gVGhhbmtzIERhdmlkIERpYXog
Zm9yIHRoZSBQUi4KKworLSBpc3N1ZTk0OTogcGF0aHMgYWZ0ZXIgbm9ybWFsIG9wdGlvbnMgKGZv
ciBleGFtcGxlIGBgLXNgYCwgYGAtdmBgLCBldGMpIGFyZSBub3cKKyAgcHJvcGVybHkgdXNlZCB0
byBkaXNjb3ZlciBgYHJvb3RkaXJgYCBhbmQgYGBpbmlgYCBmaWxlcy4KKyAgVGhhbmtzIFBldGVy
IExhdXJpIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCisy
LjcuMyAoMjAxNS0wOS0xNSkKKz09PT09PT09PT09PT09PT09PQorCistIEFsbG93ICdkZXYnLCAn
cmMnLCBvciBvdGhlciBub24taW50ZWdlciB2ZXJzaW9uIHN0cmluZ3MgaW4gYGBpbXBvcnRvcnNr
aXBgYC4KKyAgVGhhbmtzIHRvIEVyaWMgSHVuc2JlcmdlciBmb3IgdGhlIFBSLgorCistIGZpeCBp
c3N1ZTg1NjogY29uc2lkZXIgLS1jb2xvciBwYXJhbWV0ZXIgaW4gYWxsIG91dHB1dHMgKGZvciBl
eGFtcGxlCisgIC0tZml4dHVyZXMpLiBUaGFua3MgQmFybmV5IEdhbGUgZm9yIHRoZSByZXBvcnQg
YW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlODU1OiBwYXNzaW5n
IHN0ciBvYmplY3RzIGFzIGBgcGx1Z2luc2BgIGFyZ3VtZW50IHRvIHB5dGVzdC5tYWluCisgIGlz
IG5vdyBpbnRlcnByZXRlZCBhcyBhIG1vZHVsZSBuYW1lIHRvIGJlIGltcG9ydGVkIGFuZCByZWdp
c3RlcmVkIGFzIGEKKyAgcGx1Z2luLCBpbnN0ZWFkIG9mIHNpbGVudGx5IGhhdmluZyBubyBlZmZl
Y3QuCisgIFRoYW5rcyB4bW8tb2RvbyBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEg
Zm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU3NDQ6IGZpeCBmb3IgYXN0LkNhbGwgY2hhbmdlcyBp
biBQeXRob24gMy41Ky4gIFRoYW5rcworICBHdWlkbyB2YW4gUm9zc3VtLCBNYXR0aGlhcyBCdXNz
b25uaWVyLCBTdGVmYW4gWmltbWVybWFubiBhbmQKKyAgVGhvbWFzIEtsdXl2ZXIuCisKKy0gZml4
IGlzc3VlODQyOiBhcHBseWluZyBtYXJrZXJzIGluIGNsYXNzZXMgbm8gbG9uZ2VyIHByb3BhZ2F0
ZSB0aGlzIG1hcmtlcnMKKyAgdG8gc3VwZXJjbGFzc2VzIHdoaWNoIGFsc28gaGF2ZSBtYXJrZXJz
LgorICBUaGFua3MgeG1vLW9kb28gZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZv
ciB0aGUgUFIuCisKKy0gcHJlc2VydmUgd2FybmluZyBmdW5jdGlvbnMgYWZ0ZXIgY2FsbCB0byBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsLiBUaGFua3MKKyAgUGlldGVyIE11bGRlciBmb3IgUFIuCisK
Ky0gZml4IGlzc3VlODU0OiBhdXRvdXNlIHlpZWxkX2ZpeHR1cmVzIGRlZmluZWQgYXMgY2xhc3Mg
bWVtYmVycyBvZgorICB1bml0dGVzdC5UZXN0Q2FzZSBzdWJjbGFzc2VzIG5vdyB3b3JrIGFzIGV4
cGVjdGVkLgorICBUaGFubmtzIHhtby1vZG9vIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2
ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTgzMzogLS1maXh0dXJlcyBub3cgc2hvd3Mg
YWxsIGZpeHR1cmVzIG9mIGNvbGxlY3RlZCB0ZXN0IGZpbGVzLCBpbnN0ZWFkIG9mIGp1c3QgdGhl
CisgIGZpeHR1cmVzIGRlY2xhcmVkIG9uIHRoZSBmaXJzdCBvbmUuCisgIFRoYW5rcyBGbG9yaWFu
IEJydWhpbiBmb3IgcmVwb3J0aW5nIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCist
IGZpeCBpc3N1ZTg2Mzogc2tpcHBlZCB0ZXN0cyBub3cgcmVwb3J0IHRoZSBjb3JyZWN0IHJlYXNv
biB3aGVuIGEgc2tpcC94ZmFpbAorICBjb25kaXRpb24gaXMgbWV0IHdoZW4gdXNpbmcgbXVsdGlw
bGUgbWFya2Vycy4KKyAgVGhhbmtzIFJhcGhhZWwgUGllcnppbmEgZm9yIHJlcG9ydGluZyBhbmQg
QnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBvcHRpbWl6ZWQgdG1wZGlyIGZpeHR1cmUg
aW5pdGlhbGl6YXRpb24sIHdoaWNoIHNob3VsZCBtYWtlIHRlc3Qgc2Vzc2lvbnMKKyAgZmFzdGVy
IChzcGVjaWFsbHkgd2hlbiB1c2luZyBweXRlc3QteGRpc3QpLiBUaGUgb25seSB2aXNpYmxlIGVm
ZmVjdAorICBpcyB0aGF0IG5vdyBweXRlc3QgdXNlcyBhIHN1YmRpcmVjdG9yeSBpbiB0aGUgJFRF
TVAgZGlyZWN0b3J5IGZvciBhbGwKKyAgZGlyZWN0b3JpZXMgY3JlYXRlZCBieSB0aGlzIGZpeHR1
cmUgKGRlZmF1bHRzIHRvICRURU1QL3B5dGVzdC0kVVNFUikuCisgIFRoYW5rcyBCcnVubyBPbGl2
ZWlyYSBmb3IgdGhlIFBSLgorCisyLjcuMiAoMjAxNS0wNi0yMykKKz09PT09PT09PT09PT09PT09
PQorCistIGZpeCBpc3N1ZTc2NzogcHl0ZXN0LnJhaXNlcyB2YWx1ZSBhdHRyaWJ1dGUgZG9lcyBu
b3QgY29udGFpbiB0aGUgZXhjZXB0aW9uCisgIGluc3RhbmNlIG9uIFB5dGhvbiAyLjYuIFRoYW5r
cyBFcmljIFNpZWdlcm1hbiBmb3IgcHJvdmlkaW5nIHRoZSB0ZXN0CisgIGNhc2UgYW5kIEJydW5v
IE9saXZlaXJhIGZvciBQUi4KKworLSBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBkaXJlY3RvcnkgZm9y
IGp1bml0eG1sIGFuZCByZXN1bHRzIGxvZy4KKyAgVGhhbmtzIEFyb24gQ3Vyem9uLgorCistIGZp
eCBpc3N1ZTcxMzogSlVuaXQgWE1MIHJlcG9ydHMgZm9yIGRvY3Rlc3QgZmFpbHVyZXMuCisgIFRo
YW5rcyBQdW55YXNobG9rYSBCaXN3YWwuCisKKy0gZml4IGlzc3VlNzM1OiBhc3NlcnRpb24gZmFp
bHVyZXMgb24gZGVidWcgdmVyc2lvbnMgb2YgUHl0aG9uIDMuNCsKKyAgVGhhbmtzIEJlbmphbWlu
IFBldGVyc29uLgorCistIGZpeCBpc3N1ZTExNDogc2tpcGlmIG1hcmtlciByZXBvcnRzIHRvIGlu
dGVybmFsIHNraXBwaW5nIHBsdWdpbjsKKyAgVGhhbmtzIEZsb3JpcyBCcnV5bm9vZ2hlIGZvciBy
ZXBvcnRpbmcgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlNzQ4
OiB1bml0dGVzdC5Ta2lwVGVzdCByZXBvcnRzIHRvIGludGVybmFsIHB5dGVzdCB1bml0dGVzdCBw
bHVnaW4uCisgIFRoYW5rcyBUaG9tYXMgRGUgU2NoYW1waGVsZWlyZSBmb3IgcmVwb3J0aW5nIGFu
ZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTcxODogZmFpbGVkIHRv
IGNyZWF0ZSByZXByZXNlbnRhdGlvbiBvZiBzZXRzIGNvbnRhaW5pbmcgdW5zb3J0YWJsZQorICBl
bGVtZW50cyBpbiBweXRob24gMi4gVGhhbmtzIEVkaXNvbiBHdXN0YXZvIE11ZW56LgorCistIGZp
eCBpc3N1ZTc1NiwgZml4IGlzc3VlNzUyIChhbmQgc2ltaWxhciBpc3N1ZXMpOiBkZXBlbmQgb24g
cHktMS40LjI5CisgIHdoaWNoIGhhcyBhIHJlZmluZWQgYWxnb3JpdGhtIGZvciB0cmFjZWJhY2sg
Z2VuZXJhdGlvbi4KKworCisyLjcuMSAoMjAxNS0wNS0xOSkKKz09PT09PT09PT09PT09PT09PQor
CistIGZpeCBpc3N1ZTczMTogZG8gbm90IGdldCBjb25mdXNlZCBieSB0aGUgYnJhY2VzIHdoaWNo
IG1heSBiZSBwcmVzZW50CisgIGFuZCB1bmJhbGFuY2VkIGluIGFuIG9iamVjdCdzIHJlcHIgd2hp
bGUgY29sbGFwc2luZyBGYWxzZQorICBleHBsYW5hdGlvbnMuICBUaGFua3MgQ2FybCBNZXllciBm
b3IgdGhlIHJlcG9ydCBhbmQgdGVzdCBjYXNlLgorCistIGZpeCBpc3N1ZTU1MzogcHJvcGVybHkg
aGFuZGxpbmcgaW5zcGVjdC5nZXRzb3VyY2VsaW5lcyBmYWlsdXJlcyBpbgorICBGaXh0dXJlTG9v
a3VwRXJyb3Igd2hpY2ggd291bGQgbGVhZCB0byBhbiBpbnRlcm5hbCBlcnJvciwKKyAgb2JmdXNj
YXRpbmcgdGhlIG9yaWdpbmFsIHByb2JsZW0uIFRoYW5rcyB0YWxsam9zaCBmb3IgaW5pdGlhbAor
ICBkaWFnbm9zZS9wYXRjaCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIGZpbmFsIHBhdGNoLgorCist
IGZpeCBpc3N1ZTY2MDogcHJvcGVybHkgcmVwb3J0IHNjb3BlLW1pc21hdGNoLWFjY2VzcyBlcnJv
cnMKKyAgaW5kZXBlbmRlbnRseSBmcm9tIG9yZGVyaW5nIG9mIGZpeHR1cmUgYXJndW1lbnRzLiAg
QWxzbworICBhdm9pZCB0aGUgcHl0ZXN0IGludGVybmFsIHRyYWNlYmFjayB3aGljaCBkb2VzIG5v
dCBwcm92aWRlCisgIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLiBUaGFua3MgSG9sZ2VyIEtyZWtl
bC4KKworLSBzdHJlYW1saW5lZCBhbmQgZG9jdW1lbnRlZCByZWxlYXNlIHByb2Nlc3MuICBBbHNv
IGFsbCB2ZXJzaW9ucworICAoaW4gc2V0dXAucHkgYW5kIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlv
bikgYXJlIG5vdyByZWFkCisgIGZyb20gX3B5dGVzdC9fX2luaXRfXy5weS4gVGhhbmtzIEhvbGdl
ciBLcmVrZWwuCisKKy0gZml4ZWQgZG9jcyB0byByZW1vdmUgdGhlIG5vdGlvbiB0aGF0IHlpZWxk
LWZpeHR1cmVzIGFyZSBleHBlcmltZW50YWwuCisgIFRoZXkgYXJlIGhlcmUgdG8gc3RheSA6KSAg
VGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIFN1cHBvcnQgYnVpbGRpbmcgd2hlZWxzIGJ5IHVz
aW5nIGVudmlyb25tZW50IG1hcmtlcnMgZm9yIHRoZQorICByZXF1aXJlbWVudHMuICBUaGFua3Mg
SW9uZWwgTWFyaWVzIENyaXN0aWFuLgorCistIGZpeGVkIHJlZ3Jlc3Npb24gdG8gMi42LjQgd2hp
Y2ggc3VyZmFjZWQgZS5nLiBpbiBsb3N0IHN0ZG91dCBjYXB0dXJlIHByaW50aW5nCisgIHdoZW4g
dGVzdHMgcmFpc2VkIFN5c3RlbUV4aXQuIFRoYW5rcyBIb2xnZXIgS3Jla2VsLgorCistIHJlaW50
cm9kdWNlZCBfcHl0ZXN0IGZpeHR1cmUgb2YgdGhlIHB5dGVzdGVyIHBsdWdpbiB3aGljaCBpcyB1
c2VkCisgIGF0IGxlYXN0IGJ5IHB5dGVzdC14ZGlzdC4KKworMi43LjAgKDIwMTUtMDMtMjYpCis9
PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWU0MzU6IG1ha2UgcmVsb2FkKCkgd29yayB3
aGVuIGFzc2VydCByZXdyaXRpbmcgaXMgYWN0aXZlLgorICBUaGFua3MgRGFuaWVsIEhhaGxlci4K
KworLSBmaXggaXNzdWU2MTY6IGNvbmZ0ZXN0LnB5IGZpbGVzIGFuZCB0aGVpciBjb250YWluZWQg
Zml4dXRyZXMgYXJlIG5vdworICBwcm9wZXJseSBjb25zaWRlcmVkIGZvciB2aXNpYmlsaXR5LCBp
bmRlcGVuZGVudGx5IGZyb20gdGhlIGV4YWN0CisgIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkg
YW5kIHRlc3QgYXJndW1lbnRzIHRoYXQgYXJlIHVzZWQuCisgIE1hbnkgdGhhbmtzIHRvIEVyaWMg
U2llZ2VybWFuIGFuZCBoaXMgUFIyMzUgd2hpY2ggY29udGFpbnMKKyAgc3lzdGVtYXRpYyB0ZXN0
cyBmb3IgY29uZnRlc3QgdmlzaWJpbGl0eSBhbmQgbm93IHBhc3Nlcy4KKyAgVGhpcyBjaGFuZ2Ug
YWxzbyBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIGEgYGByb290ZGlyYGAgd2hpY2gKKyAgaXMg
cHJpbnRlZCBhcyBhIG5ldyBweXRlc3QgaGVhZGVyIGFuZCBkb2N1bWVudGVkIGluIHRoZSBweXRl
c3QKKyAgY3VzdG9taXplIHdlYiBwYWdlLgorCistIGNoYW5nZSByZXBvcnRpbmcgb2YgImRpdmVy
dGVkIiB0ZXN0cywgaS5lLiB0ZXN0cyB0aGF0IGFyZSBjb2xsZWN0ZWQKKyAgaW4gb25lIGZpbGUg
YnV0IGFjdHVhbGx5IGNvbWUgZnJvbSBhbm90aGVyIChlLmcuIHdoZW4gdGVzdHMgaW4gYSB0ZXN0
IGNsYXNzCisgIGNvbWUgZnJvbSBhIGJhc2UgY2xhc3MgaW4gYSBkaWZmZXJlbnQgZmlsZSkuICBX
ZSBub3cgc2hvdyB0aGUgbm9kZWlkCisgIGFuZCBpbmRpY2F0ZSB2aWEgYSBwb3N0Zml4IHRoZSBv
dGhlciBmaWxlLgorCistIGFkZCBhYmlsaXR5IHRvIHNldCBjb21tYW5kIGxpbmUgb3B0aW9ucyBi
eSBlbnZpcm9ubWVudCB2YXJpYWJsZSBQWVRFU1RfQURET1BUUy4KKworLSBhZGRlZCBkb2N1bWVu
dGF0aW9uIG9uIHRoZSBuZXcgcHl0ZXN0LWRldiB0ZWFtcyBvbiBiaXRidWNrZXQgYW5kCisgIGdp
dGh1Yi4gIFNlZSBodHRwczovL3B5dGVzdC5vcmcvbGF0ZXN0L2NvbnRyaWJ1dGluZy5odG1sIC4K
KyAgVGhhbmtzIHRvIEFuYXRvbHkgZm9yIHB1c2hpbmcgYW5kIGluaXRpYWwgd29yayBvbiB0aGlz
LgorCistIGZpeCBpc3N1ZTY1MDogbmV3IG9wdGlvbiBgYC0tZG9jdHRlc3QtaWdub3JlLWltcG9y
dC1lcnJvcnNgYCB3aGljaAorICB3aWxsIHR1cm4gaW1wb3J0IGVycm9ycyBpbiBkb2N0ZXN0cyBp
bnRvIHNraXBzLiAgVGhhbmtzIENoYXJsZXMgQ2xvdWQKKyAgZm9yIHRoZSBjb21wbGV0ZSBQUi4K
KworLSBmaXggaXNzdWU2NTU6IHdvcmsgYXJvdW5kIGRpZmZlcmVudCB3YXlzIHRoYXQgY2F1c2Ug
cHl0aG9uMi8zCisgIHRvIGxlYWsgc3lzLmV4Y19pbmZvIGludG8gZml4dHVyZXMvdGVzdHMgY2F1
c2luZyBmYWlsdXJlcyBpbiAzcmQgcGFydHkgY29kZQorCistIGZpeCBpc3N1ZTYxNTogYXNzZXJ0
aW9uIHJld3JpdGluZyBkaWQgbm90IGNvcnJlY3RseSBlc2NhcGUgJSBzaWducworICB3aGVuIGZv
cm1hdHRpbmcgYm9vbGVhbiBvcGVyYXRpb25zLCB3aGljaCB0cmlwcGVkIG92ZXIgbWl4aW5nCisg
IGJvb2xlYW5zIHdpdGggbW9kdWxvIG9wZXJhdG9ycy4gIFRoYW5rcyB0byBUb20gVmluZXIgZm9y
IHRoZSByZXBvcnQsCisgIHRyaWFnaW5nIGFuZCBmaXguCisKKy0gaW1wbGVtZW50IGlzc3VlMzUx
OiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IHBhcmFtZXRyaXplIGlkcyBhcyBhIGNhbGxhYmxlCisg
IHRvIGdlbmVyYXRlIGN1c3RvbSB0ZXN0IGlkcy4gIFRoYW5rcyBCcmlhbm5hIExhdWdoZXIgZm9y
IHRoZSBpZGVhIGFuZAorICBpbXBsZW1lbnRhdGlvbi4KKworLSBpbnRyb2R1Y2UgYW5kIGRvY3Vt
ZW50IG5ldyBob29rd3JhcHBlciBtZWNoYW5pc20gdXNlZnVsIGZvciBwbHVnaW5zCisgIHdoaWNo
IHdhbnQgdG8gd3JhcCB0aGUgZXhlY3V0aW9uIG9mIGNlcnRhaW4gaG9va3MgZm9yIHRoZWlyIHB1
cnBvc2VzLgorICBUaGlzIHN1cGVyc2VkZXMgdGhlIHVuZG9jdW1lbnRlZCBgYF9fbXVsdGljYWxs
X19gYCBwcm90b2NvbCB3aGljaAorICBweXRlc3QgaXRzZWxmIGFuZCBzb21lIGV4dGVybmFsIHBs
dWdpbnMgdXNlLiAgTm90ZSB0aGF0IHB5dGVzdC0yLjgKKyAgaXMgc2NoZWR1bGVkIHRvIGRyb3Ag
c3VwcG9ydGluZyB0aGUgb2xkIGBgX19tdWx0aWNhbGxfX2BgCisgIGFuZCBvbmx5IHN1cHBvcnQg
dGhlIGhvb2t3cmFwcGVyIHByb3RvY29sLgorCistIG1ham9ybHkgc3BlZWQgdXAgaW52b2NhdGlv
biBvZiBwbHVnaW4gaG9va3MKKworLSB1c2UgaG9va3dyYXBwZXIgbWVjaGFuaXNtIGluIGJ1aWx0
aW4gcHl0ZXN0IHBsdWdpbnMuCisKKy0gYWRkIGEgZG9jdGVzdCBpbmkgb3B0aW9uIGZvciBkb2N0
ZXN0IGZsYWdzLCB0aGFua3MgSG9sZ2VyIFBldGVycy4KKworLSBhZGQgbm90ZSB0byBkb2NzIHRo
YXQgaWYgeW91IHdhbnQgdG8gbWFyayBhIHBhcmFtZXRlciBhbmQgdGhlCisgIHBhcmFtZXRlciBp
cyBhIGNhbGxhYmxlLCB5b3UgYWxzbyBuZWVkIHRvIHBhc3MgaW4gYSByZWFzb24gdG8gZGlzYW1i
aWd1YXRlCisgIGl0IGZyb20gdGhlICJkZWNvcmF0b3IiIGNhc2UuICBUaGFua3MgVG9tIFZpbmVy
LgorCistICJweXRob25fY2xhc3NlcyIgYW5kICJweXRob25fZnVuY3Rpb25zIiBvcHRpb25zIG5v
dyBzdXBwb3J0IGdsb2ItcGF0dGVybnMKKyAgZm9yIHRlc3QgZGlzY292ZXJ5LCBhcyBkaXNjdXNz
ZWQgaW4gaXNzdWU2MDAuIFRoYW5rcyBMZGlhcnkgVHJhbnNsYXRpb25zLgorCistIGFsbG93IHRv
IG92ZXJyaWRlIHBhcmFtZXRyaXplZCBmaXh0dXJlcyB3aXRoIG5vbi1wYXJhbWV0cml6ZWQgb25l
cyBhbmQgdmljZSB2ZXJzYSAoYnViZW5rb2ZmKS4KKworLSBmaXggaXNzdWU0NjM6IHJhaXNlIHNw
ZWNpZmljIGVycm9yIGZvciAncGFyYW1ldGVyaXplJyBtaXNzcGVsbGluZyAocGZjdGRheWVsaXNl
KS4KKworLSBPbiBmYWlsdXJlLCB0aGUgYGBzeXMubGFzdF92YWx1ZWBgLCBgYHN5cy5sYXN0X3R5
cGVgYCBhbmQKKyAgYGBzeXMubGFzdF90cmFjZWJhY2tgYCBhcmUgc2V0LCBzbyB0aGF0IGEgdXNl
ciBjYW4gaW5zcGVjdCB0aGUgZXJyb3IKKyAgdmlhIHBvc3Rtb3J0ZW0gZGVidWdnaW5nIChhbG1h
cmtsZWluKS4KKworMi42LjQgKDIwMTQtMTAtMjQpCis9PT09PT09PT09PT09PT09PT0KKworLSBJ
bXByb3ZlIGFzc2VydGlvbiBmYWlsdXJlIHJlcG9ydGluZyBvbiBpdGVyYWJsZXMsIGJ5IHVzaW5n
IG5kaWZmIGFuZAorICBwcHJpbnQuCisKKy0gcmVtb3ZlZCBvdXRkYXRlZCBqYXBhbmVzZSBkb2Nz
IGZyb20gc291cmNlIHRyZWUuCisKKy0gZG9jcyBmb3IgInB5dGVzdF9hZGRob29rcyIgaG9vay4g
IFRoYW5rcyBCcnVubyBPbGl2ZWlyYS4KKworLSB1cGRhdGVkIHBsdWdpbiBpbmRleCBkb2NzLiAg
VGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIGZpeCBpc3N1ZTU1Nzogd2l0aCAiLWsiIHdlIG9u
bHkgYWxsb3cgdGhlIG9sZCBzdHlsZSAiLSIgZm9yIG5lZ2F0aW9uCisgIGF0IHRoZSBiZWdpbm5p
bmcgb2Ygc3RyaW5ncyBhbmQgZXZlbiB0aGF0IGlzIGRlcHJlY2F0ZWQuICBVc2UgIm5vdCIgaW5z
dGVhZC4KKyAgVGhpcyBzaG91bGQgYWxsb3cgdG8gcGljayBwYXJhbWV0cml6ZWQgdGVzdHMgd2hl
cmUgIi0iIGFwcGVhcmVkIGluIHRoZSBwYXJhbWV0ZXIuCisKKy0gZml4IGlzc3VlNjA0OiBFc2Nh
cGUgJSBjaGFyYWN0ZXIgaW4gdGhlIGFzc2VydGlvbiBtZXNzYWdlLgorCistIGZpeCBpc3N1ZTYy
MDogYWRkIGV4cGxhbmF0aW9uIGluIHRoZSAtLWdlbnNjcmlwdCB0YXJnZXQgYWJvdXQgd2hhdAor
ICB0aGUgYmluYXJ5IGJsb2IgbWVhbnMuIFRoYW5rcyBEaW51IEdoZXJtYW4uCisKKy0gZml4IGlz
c3VlNjE0OiBmaXhlZCBwYXN0ZWJpbiBzdXBwb3J0LgorCisKKy0gZml4IGlzc3VlNjIwOiBhZGQg
ZXhwbGFuYXRpb24gaW4gdGhlIC0tZ2Vuc2NyaXB0IHRhcmdldCBhYm91dCB3aGF0CisgIHRoZSBi
aW5hcnkgYmxvYiBtZWFucy4gVGhhbmtzIERpbnUgR2hlcm1hbi4KKworLSBmaXggaXNzdWU2MTQ6
IGZpeGVkIHBhc3RlYmluIHN1cHBvcnQuCisKKzIuNi4zICgyMDE0LTA5LTI0KQorPT09PT09PT09
PT09PT09PT09CisKKy0gZml4IGlzc3VlNTc1OiB4dW5pdC14bWwgd2FzIHJlcG9ydGluZyBjb2xs
ZWN0aW9uIGVycm9ycyBhcyBmYWlsdXJlcworICBpbnN0ZWFkIG9mIGVycm9ycywgdGhhbmtzIE9s
ZWcgU2lueWF2c2tpeS4KKworLSBmaXggaXNzdWU1ODI6IGZpeCBzZXR1cHRvb2xzIGV4YW1wbGUs
IHRoYW5rcyBMYXN6bG8gUGFwcCBhbmQgUm9ubnkKKyAgUGZhbm5zY2htaWR0LgorCistIEZpeCBp
bmZpbml0ZSByZWN1cnNpb24gYnVnIHdoZW4gcGlja2xpbmcgY2FwdHVyZS5FbmNvZGVkRmlsZSwg
dGhhbmtzCisgIFV3ZSBTY2htaXR0LgorCistIGZpeCBpc3N1ZTU4OTogZml4IGJhZCBpbnRlcmFj
dGlvbiB3aXRoIG51bXB5IGFuZCBvdGhlcnMgd2hlbiBzaG93aW5nCisgIGV4Y2VwdGlvbnMuICBD
aGVjayBmb3IgcHJlY2lzZSAibWF4aW11bSByZWN1cnNpb24gZGVwdGggZXhjZWVkIiBleGNlcHRp
b24KKyAgaW5zdGVhZCBvZiBwcmVzdW1pbmcgYW55IFJ1bnRpbWVFcnJvciBpcyB0aGF0IG9uZSAo
aW1wbGVtZW50ZWQgaW4gcHkKKyAgZGVwKS4gIFRoYW5rcyBDaGFybGVzIENsb3VkIGZvciBhbmFs
eXNpbmcgdGhlIGlzc3VlLgorCistIGZpeCBjb25mdGVzdCByZWxhdGVkIGZpeHR1cmUgdmlzaWJp
bGl0eSBpc3N1ZTogd2hlbiBydW5uaW5nIHdpdGggYQorICBDV0Qgb3V0c2lkZSBvZiBhIHRlc3Qg
cGFja2FnZSBweXRlc3Qgd291bGQgZ2V0IGZpeHR1cmUgZGlzY292ZXJ5IHdyb25nLgorICBUaGFu
a3MgdG8gV29sZmdhbmcgU2NobmVycmluZyBmb3IgZmlndXJpbmcgb3V0IGEgcmVwcm9kdWNpYmxl
IGV4YW1wbGUuCisKKy0gSW50cm9kdWNlIHB5dGVzdF9lbnRlcl9wZGIgaG9vayAobmVlZGVkIGUu
Zy4gYnkgcHl0ZXN0X3RpbWVvdXQgdG8gY2FuY2VsIHRoZQorICB0aW1lb3V0IHdoZW4gaW50ZXJh
Y3RpdmVseSBlbnRlcmluZyBwZGIpLiAgVGhhbmtzIFdvbGZnYW5nIFNjaG5lcnJpbmcuCisKKy0g
Y2hlY2sgeGZhaWwvc2tpcCBhbHNvIHdpdGggbm9uLXB5dGhvbiBmdW5jdGlvbiB0ZXN0IGl0ZW1z
LiBUaGFua3MKKyAgRmxvcmlzIEJydXlub29naGUuCisKKzIuNi4yICgyMDE0LTA5LTA1KQorPT09
PT09PT09PT09PT09PT09CisKKy0gQWRkZWQgZnVuY3Rpb24gcHl0ZXN0LmZyZWV6ZV9pbmNsdWRl
cygpLCB3aGljaCBtYWtlcyBpdCBlYXN5IHRvIGVtYmVkCisgIHB5dGVzdCBpbnRvIGV4ZWN1dGFi
bGVzIHVzaW5nIHRvb2xzIGxpa2UgY3hfZnJlZXplLgorICBTZWUgZG9jcyBmb3IgZXhhbXBsZXMg
YW5kIHJhdGlvbmFsZS4gVGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIEltcHJvdmUgYXNzZXJ0
aW9uIHJld3JpdGluZyBjYWNoZSBpbnZhbGlkYXRpb24gcHJlY2lzaW9uLgorCistIGZpeGVkIGlz
c3VlNTYxOiBhZGFwdCBhdXRvdXNlIGZpeHR1cmUgZXhhbXBsZSBmb3IgcHl0aG9uMy4KKworLSBm
aXhlZCBpc3N1ZTQ1MzogYXNzZXJ0aW9uIHJld3JpdGluZyBpc3N1ZSB3aXRoIF9fcmVwcl9fIGNv
bnRhaW5pbmcKKyAgIlxueyIsICJcbn0iIGFuZCAiXG5+Ii4KKworLSBmaXggaXNzdWU1NjA6IGNv
cnJlY3RseSBkaXNwbGF5IGNvZGUgaWYgYW4gImVsc2U6IiBvciAiZmluYWxseToiIGlzCisgIGZv
bGxvd2VkIGJ5IHN0YXRlbWVudHMgb24gdGhlIHNhbWUgbGluZS4KKworLSBGaXggZXhhbXBsZSBp
biBtb25rZXlwYXRjaCBkb2N1bWVudGF0aW9uLCB0aGFua3MgdC04Y2guCisKKy0gZml4IGlzc3Vl
NTcyOiBjb3JyZWN0IHRtcGRpciBkb2MgZXhhbXBsZSBmb3IgcHl0aG9uMy4KKworLSBEbyBub3Qg
bWFyayBhcyB1bml2ZXJzYWwgd2hlZWwgYmVjYXVzZSBQeXRob24gMi42IGlzIGRpZmZlcmVudCBm
cm9tCisgIG90aGVyIGJ1aWxkcyBkdWUgdG8gdGhlIGV4dHJhIGFyZ3BhcnNlIGRlcGVuZGVuY3ku
ICBGaXhlcyBpc3N1ZTU2Ni4KKyAgVGhhbmtzIHNvbnRlay4KKworLSBJbXBsZW1lbnQgaXNzdWU1
NDk6IHVzZXItcHJvdmlkZWQgYXNzZXJ0aW9uIG1lc3NhZ2VzIG5vdyBubyBsb25nZXIKKyAgcmVw
bGFjZSB0aGUgcHkudGVzdCBpbnRyb3NwZWN0aW9uIG1lc3NhZ2UgYnV0IGFyZSBzaG93biBpbiBh
ZGRpdGlvbgorICB0byB0aGVtLgorCisyLjYuMSAoMjAxNC0wOC0wNykKKz09PT09PT09PT09PT09
PT09PQorCistIE5vIGxvbmdlciBzaG93IGxpbmUgbnVtYmVycyBpbiB0aGUgLS12ZXJib3NlIG91
dHB1dCwgdGhlIG91dHB1dCBpcyBub3cKKyAgcHVyZWx5IHRoZSBub2RlaWQuICBUaGUgbGluZSBu
dW1iZXIgaXMgc3RpbGwgc2hvd24gaW4gZmFpbHVyZSByZXBvcnRzLgorICBUaGFua3MgRmxvcmlz
IEJydXlub29naGUuCisKKy0gZml4IGlzc3VlNDM3IHdoZXJlIGFzc2VydGlvbiByZXdyaXRpbmcg
Y291bGQgY2F1c2UgcHl0ZXN0LXhkaXN0IHNsYXZlcworICB0byBjb2xsZWN0IGRpZmZlcmVudCB0
ZXN0cy4gVGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIGZpeCBpc3N1ZTU1NTogYWRkICJlcnJv
cnMiIGF0dHJpYnV0ZSB0byBjYXB0dXJlLXN0cmVhbXMgdG8gc2F0aXNmeQorICBzb21lIGRpc3R1
dGlscyBhbmQgcG9zc2libHkgb3RoZXIgY29kZSBhY2Nlc3Npbmcgc3lzLnN0ZG91dC5lcnJvcnMu
CisKKy0gZml4IGlzc3VlNTQ3IGNhcHN5cy9jYXBmZCBhbHNvIHdvcmsgd2hlbiBvdXRwdXQgY2Fw
dHVyaW5nICgiLXMiKSBpcyBkaXNhYmxlZC4KKworLSBhZGRyZXNzIGlzc3VlMTcwOiBhbGxvdyBw
eXRlc3QubWFyay54ZmFpbCguLi4pIHRvIHNwZWNpZnkgZXhwZWN0ZWQgZXhjZXB0aW9ucyB2aWEK
KyAgYW4gb3B0aW9uYWwgInJhaXNlcz1FWEMiIGFyZ3VtZW50IHdoZXJlIEVYQyBjYW4gYmUgYSBz
aW5nbGUgZXhjZXB0aW9uCisgIG9yIGEgdHVwbGUgb2YgZXhjZXB0aW9uIGNsYXNzZXMuICBUaGFu
a3MgRGF2aWQgTW9ociBmb3IgdGhlIGNvbXBsZXRlCisgIFBSLgorCistIGZpeCBpbnRlZ3JhdGlv
biBvZiBweXRlc3Qgd2l0aCB1bml0dGVzdC5tb2NrLnBhdGNoIGRlY29yYXRvciB3aGVuCisgIGl0
IHVzZXMgdGhlICJuZXciIGFyZ3VtZW50LiAgVGhhbmtzIE5pY29sYXMgRGVsYWJ5IGZvciB0ZXN0
IGFuZCBQUi4KKworLSBmaXggaXNzdWUgd2l0aCBkZXRlY3RpbmcgY29uZnRlc3QgZmlsZXMgaWYg
dGhlIGFyZ3VtZW50cyBjb250YWluCisgICI6OiIgbm9kZSBpZCBzcGVjaWZpY2F0aW9ucyAoY29w
eSBwYXN0ZWQgZnJvbSAiLXYiIG91dHB1dCkKKworLSBmaXggaXNzdWU1NDQgYnkgb25seSByZW1v
dmluZyAiQE5VTSIgYXQgdGhlIGVuZCBvZiAiOjoiIHNlcGFyYXRlZCBwYXJ0cworICBhbmQgaWYg
dGhlIHBhcnQgaGFzIGFuICIucHkiIGV4dGVuc2lvbgorCistIGRvbid0IHVzZSBweS5zdGQgaW1w
b3J0IGhlbHBlciwgcmF0aGVyIGltcG9ydCB0aGluZ3MgZGlyZWN0bHkuCisgIFRoYW5rcyBCcnVu
byBPbGl2ZWlyYS4KKworMi42Cis9PT0KKworLSBDYWNoZSBleGNlcHRpb25zIGZyb20gZml4dHVy
ZXMgYWNjb3JkaW5nIHRvIHRoZWlyIHNjb3BlIChpc3N1ZSA0NjcpLgorCistIGZpeCBpc3N1ZTUz
NzogQXZvaWQgaW1wb3J0aW5nIG9sZCBhc3NlcnRpb24gcmVpbnRlcnByZXRhdGlvbiBjb2RlIGJ5
IGRlZmF1bHQuCisKKy0gZml4IGlzc3VlMzY0OiBzaG9ydGVuIGFuZCBlbmhhbmNlIHRyYWNlYmFj
a3MgcmVwcmVzZW50YXRpb24gYnkgZGVmYXVsdC4KKyAgVGhlIG5ldyAiLS10Yj1hdXRvIiBvcHRp
b24gKGRlZmF1bHQpIHdpbGwgb25seSBkaXNwbGF5IGxvbmcgdHJhY2ViYWNrcworICBmb3IgdGhl
IGZpcnN0IGFuZCBsYXN0IGVudHJ5LiAgWW91IGNhbiBnZXQgdGhlIG9sZCBiZWhhdmlvdXIgb2Yg
cHJpbnRpbmcKKyAgYWxsIGVudHJpZXMgYXMgbG9uZyBlbnRyaWVzIHdpdGggIi0tdGI9bG9uZyIu
ICBBbHNvIHNob3J0IGVudHJpZXMgYnkKKyAgZGVmYXVsdCBhcmUgbm93IHByaW50ZWQgdmVyeSBz
aW1pbGFybHkgdG8gIi0tdGI9bmF0aXZlIiBvbmVzLgorCistIGZpeCBpc3N1ZTUxNDogdGVhY2gg
YXNzZXJ0aW9uIHJlaW50ZXJwcmV0YXRpb24gYWJvdXQgcHJpdmF0ZSBjbGFzcyBhdHRyaWJ1dGVz
CisKKy0gY2hhbmdlIC12IG91dHB1dCB0byBpbmNsdWRlIGZ1bGwgbm9kZSBJRHMgb2YgdGVzdHMu
ICBVc2VycyBjYW4gY29weQorICBhIG5vZGUgSUQgZnJvbSBhIHRlc3QgcnVuLCBpbmNsdWRpbmcg
bGluZSBudW1iZXIsIGFuZCB1c2UgaXQgYXMgYQorICBwb3NpdGlvbmFsIGFyZ3VtZW50IGluIG9y
ZGVyIHRvIHJ1biBvbmx5IGEgc2luZ2xlIHRlc3QuCisKKy0gZml4IGlzc3VlIDQ3NTogZmFpbCBl
YXJseSBhbmQgY29tcHJlaGVuc2libGUgaWYgY2FsbGluZworICBweXRlc3QucmFpc2VzIHdpdGgg
d3JvbmcgZXhjZXB0aW9uIHR5cGUuCisKKy0gZml4IGlzc3VlNTE2OiB0ZWxsIGluIGdldHRpbmct
c3RhcnRlZCBhYm91dCBjdXJyZW50IGRlcGVuZGVuY2llcy4KKworLSBjbGVhbnVwIHNldHVwLnB5
IGEgYml0IGFuZCBzcGVjaWZ5IHN1cHBvcnRlZCB2ZXJzaW9ucy4gVGhhbmtzIEp1cmtvCisgIEdv
c3BvZG5ldGljIGZvciB0aGUgUFIuCisKKy0gY2hhbmdlIFhQQVNTIGNvbG91ciB0byB5ZWxsb3cg
cmF0aGVyIHRoZW4gcmVkIHdoZW4gdGVzdHMgYXJlIHJ1bgorICB3aXRoIC12LgorCistIGZpeCBp
c3N1ZTQ3Mzogd29yayBhcm91bmQgbW9jayBwdXR0aW5nIGFuIHVuYm91bmQgbWV0aG9kIGludG8g
YSBjbGFzcworICBkaWN0IHdoZW4gZG91YmxlLXBhdGNoaW5nLgorCistIGZpeCBpc3N1ZTQ5ODog
aWYgYSBmaXh0dXJlIGZpbmFsaXplciBmYWlscywgbWFrZSBzdXJlIHRoYXQKKyAgdGhlIGZpeHR1
cmUgaXMgc3RpbGwgaW52YWxpZGF0ZWQuCisKKy0gZml4IGlzc3VlNDUzOiB0aGUgcmVzdWx0IG9m
IHRoZSBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sgbm93IGdldHMKKyAgaXQncyBuZXds
aW5lcyBlc2NhcGVkIHNvIHRoYXQgZm9ybWF0X2V4Y2VwdGlvbiBkb2VzIG5vdCBibG93IHVwLgor
CistIGludGVybmFsIG5ldyB3YXJuaW5nIHN5c3RlbTogcHl0ZXN0IHdpbGwgbm93IHByb2R1Y2Ug
d2FybmluZ3Mgd2hlbgorICBpdCBkZXRlY3RzIG9kZGl0aWVzIGluIHlvdXIgdGVzdCBjb2xsZWN0
aW9uIG9yIGV4ZWN1dGlvbi4KKyAgV2FybmluZ3MgYXJlIHVsdGltYXRlbHkgc2VudCB0byBhIG5l
dyBweXRlc3RfbG9nd2FybmluZyBob29rIHdoaWNoIGlzCisgIGN1cnJlbnRseSBvbmx5IGltcGxl
bWVudGVkIGJ5IHRoZSB0ZXJtaW5hbCBwbHVnaW4gd2hpY2ggZGlzcGxheXMKKyAgd2FybmluZ3Mg
aW4gdGhlIHN1bW1hcnkgbGluZSBhbmQgc2hvd3MgbW9yZSBkZXRhaWxzIHdoZW4gLXJ3IChyZXBv
cnQgb24KKyAgd2FybmluZ3MpIGlzIHNwZWNpZmllZC4KKworLSBjaGFuZ2Ugc2tpcHMgaW50byB3
YXJuaW5ncyBmb3IgdGVzdCBjbGFzc2VzIHdpdGggYW4gX19pbml0X18gYW5kCisgIGNhbGxhYmxl
cyBpbiB0ZXN0IG1vZHVsZXMgd2hpY2ggbG9vayBsaWtlIGEgdGVzdCBidXQgYXJlIG5vdCBmdW5j
dGlvbnMuCisKKy0gZml4IGlzc3VlNDM2OiBpbXByb3ZlZCBmaW5kaW5nIG9mIGluaXRpYWwgY29u
ZnRlc3QgZmlsZXMgZnJvbSBjb21tYW5kCisgIGxpbmUgYXJndW1lbnRzIGJ5IHVzaW5nIHRoZSBy
ZXN1bHQgb2YgcGFyc2Vfa25vd25fYXJncyByYXRoZXIgdGhhbgorICB0aGUgcHJldmlvdXMgZmxh
a3kgaGV1cmlzdGljcy4gIFRoYW5rcyBNYXJjIEFicmFtb3dpdHogZm9yIHRlc3RzCisgIGFuZCBp
bml0aWFsIGZpeGluZyBhcHByb2FjaGVzIGluIHRoaXMgYXJlYS4KKworLSBmaXggaXNzdWUgIzQ3
OTogcHJvcGVybHkgaGFuZGxlIG5vc2UvdW5pdHRlc3QoMikgU2tpcFRlc3QgZXhjZXB0aW9ucwor
ICBkdXJpbmcgY29sbGVjdGlvbi9sb2FkaW5nIG9mIHRlc3QgbW9kdWxlcy4gIFRoYW5rcyB0byBN
YXJjIFNjaGxhaWNoCisgIGZvciB0aGUgY29tcGxldGUgUFIuCisKKy0gZml4IGlzc3VlNDkwOiBp
bmNsdWRlIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzIGluIGRvY3VtZW50YXRpb24KKyAg
YW5kIGltcHJvdmUgZG9jc3RyaW5nLgorCistIGZpeCBpc3N1ZTQ3MjogY2xhcmlmeSB0aGF0IGBg
cHl0ZXN0LmNvbmZpZy5nZXR2YWx1ZSgpYGAgY2Fubm90IHdvcmsKKyAgaWYgaXQncyB0cmlnZ2Vy
ZWQgYWhlYWQgb2YgY29tbWFuZCBsaW5lIHBhcnNpbmcuCisKKy0gbWVyZ2UgUFIxMjM6IGltcHJv
dmVkIGludGVncmF0aW9uIHdpdGggbW9jay5wYXRjaCBkZWNvcmF0b3Igb24gdGVzdHMuCisKKy0g
Zml4IGlzc3VlNDEyOiBtZXNzaW5nIHdpdGggc3Rkb3V0L3N0ZGVyciBGRC1sZXZlbCBzdHJlYW1z
IGlzIG5vdworICBjYXB0dXJlZCB3aXRob3V0IGNyYXNoZXMuCisKKy0gZml4IGlzc3VlNDgzOiB0
cmlhbC9weTMzIHdvcmtzIG5vdyBwcm9wZXJseS4gIFRoYW5rcyBEYW5pZWwgR3JhbmEgZm9yIFBS
LgorCistIGltcHJvdmUgZXhhbXBsZSBmb3IgcHl0ZXN0IGludGVncmF0aW9uIHdpdGggInB5dGhv
biBzZXR1cC5weSB0ZXN0IgorICB3aGljaCBub3cgaGFzIGEgZ2VuZXJpYyAiLWEiIG9yICItLXB5
dGVzdC1hcmdzIiBvcHRpb24gd2hlcmUgeW91CisgIGNhbiBwYXNzIGFkZGl0aW9uYWwgb3B0aW9u
cyBhcyBhIHF1b3RlZCBzdHJpbmcuICBUaGFua3MgVHJldm9yIEJla29sYXkuCisKKy0gc2ltcGxp
ZmllZCBpbnRlcm5hbCBjYXB0dXJpbmcgbWVjaGFuaXNtIGFuZCBtYWRlIGl0IG1vcmUgcm9idXN0
CisgIGFnYWluc3QgdGVzdHMgb3Igc2V0dXBzIGNoYW5naW5nIEZEMS9GRDIsIGFsc28gYmV0dGVy
IGludGVncmF0ZWQKKyAgbm93IHdpdGggcHl0ZXN0LnBkYigpIGluIHNpbmdsZSB0ZXN0cy4KKwor
LSBpbXByb3ZlbWVudHMgdG8gcHl0ZXN0J3Mgb3duIHRlc3Qtc3VpdGUgbGVha2FnZSBkZXRlY3Rp
b24sIGNvdXJ0ZXN5IG9mIFBScworICBmcm9tIE1hcmMgQWJyYW1vd2l0egorCistIGZpeCBpc3N1
ZTQ5MjogYXZvaWQgbGVhayBpbiB0ZXN0X3dyaXRlb3JnLiAgVGhhbmtzIE1hcmMgQWJyYW1vd2l0
ei4KKworLSBmaXggaXNzdWU0OTM6IGRvbid0IHJ1biB0ZXN0cyBpbiBkb2MgZGlyZWN0b3J5IHdp
dGggYGBweXRob24gc2V0dXAucHkgdGVzdGBgCisgICh1c2UgdG94IC1lIGRvY3Rlc3RpbmcgZm9y
IHRoYXQpCisKKy0gZml4IGlzc3VlNDg2OiBiZXR0ZXIgcmVwb3J0aW5nIGFuZCBoYW5kbGluZyBv
ZiBlYXJseSBjb25mdGVzdCBsb2FkaW5nIGZhaWx1cmVzCisKKy0gc29tZSBjbGVhbnVwIGFuZCBz
aW1wbGlmaWNhdGlvbiBvZiBpbnRlcm5hbCBjb25mdGVzdCBoYW5kbGluZy4KKworLSB3b3JrIGEg
Yml0IGhhcmRlciB0byBicmVhayByZWZlcmVuY2UgY3ljbGVzIHdoZW4gY2F0Y2hpbmcgZXhjZXB0
aW9ucy4KKyAgVGhhbmtzIEp1cmtvIEdvc3BvZG5ldGljLgorCistIGZpeCBpc3N1ZTQ0MzogZml4
IHNraXAgZXhhbXBsZXMgdG8gdXNlIHByb3BlciBjb21wYXJpc29uLiAgVGhhbmtzIEFsZXgKKyAg
R3JvZW5ob2xtLgorCistIHN1cHBvcnQgbm9zZS1zdHlsZSBgYF9fdGVzdF9fYGAgYXR0cmlidXRl
IG9uIG1vZHVsZXMsIGNsYXNzZXMgYW5kCisgIGZ1bmN0aW9ucywgaW5jbHVkaW5nIHVuaXR0ZXN0
LXN0eWxlIENsYXNzZXMuICBJZiBzZXQgdG8gRmFsc2UsIHRoZQorICB0ZXN0IHdpbGwgbm90IGJl
IGNvbGxlY3RlZC4KKworLSBmaXggaXNzdWU1MTI6IHNob3cgIjxub3RzZXQ+IiBmb3IgYXJndW1l
bnRzIHdoaWNoIG1pZ2h0IG5vdCBiZSBzZXQKKyAgaW4gbW9ua2V5cGF0Y2ggcGx1Z2luLiAgSW1w
cm92ZXMgb3V0cHV0IGluIGRvY3VtZW50YXRpb24uCisKKworMi41LjIgKDIwMTQtMDEtMjkpCis9
PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWU0MDkgLS0gYmV0dGVyIGludGVyb3BlcmF0
ZSB3aXRoIGN4X2ZyZWV6ZSBieSBub3QKKyAgdHJ5aW5nIHRvIGltcG9ydCBmcm9tIGNvbGxlY3Rp
b25zLmFiYyB3aGljaCBjYXVzZXMgcHJvYmxlbXMKKyAgZm9yIHB5MjcvY3hfZnJlZXplLiAgVGhh
bmtzIFdvbGZnYW5nIEwuIGZvciByZXBvcnRpbmcgYW5kIHRyYWNraW5nIGl0IGRvd24uCisKKy0g
Zml4ZWQgZG9jcyBhbmQgY29kZSB0byB1c2UgInB5dGVzdCIgaW5zdGVhZCBvZiAicHkudGVzdCIg
YWxtb3N0IGV2ZXJ5d2hlcmUuCisgIFRoYW5rcyBKdXJrbyBHb3Nwb2RuZXRpYyBmb3IgdGhlIGNv
bXBsZXRlIFBSLgorCistIGZpeCBpc3N1ZTQyNTogbWVudGlvbiBhdCBlbmQgb2YgInB5LnRlc3Qg
LWgiIHRoYXQgLS1tYXJrZXJzCisgIGFuZCAtLWZpeHR1cmVzIHdvcmsgYWNjb3JkaW5nIHRvIHNw
ZWNpZmllZCB0ZXN0IHBhdGggKG9yIGN1cnJlbnQgZGlyKQorCistIGZpeCBpc3N1ZTQxMzogZXhj
ZXB0aW9ucyB3aXRoIHVuaWNvZGUgYXR0cmlidXRlcyBhcmUgbm93IHByaW50ZWQKKyAgY29ycmVj
dGx5IGFsc28gb24gcHl0aG9uMiBhbmQgd2l0aCBweXRlc3QteGRpc3QgcnVucy4gKHRoZSBmaXgK
KyAgcmVxdWlyZXMgcHktMS40LjIwKQorCistIGNvcHksIGNsZWFudXAgYW5kIGludGVncmF0ZSBw
eS5pbyBjYXB0dXJlCisgIGZyb20gcHlsaWIgMS40LjIwLmRldjIgKHJldiAxM2Q5YWY5NTU0N2Up
CisKKy0gYWRkcmVzcyBpc3N1ZTQxNjogY2xhcmlmeSBkb2NzIGFzIHRvIGNvbmZ0ZXN0LnB5IGxv
YWRpbmcgc2VtYW50aWNzCisKKy0gZml4IGlzc3VlNDI5OiBjb21wYXJpbmcgYnl0ZSBzdHJpbmdz
IHdpdGggbm9uLWFzY2lpIGNoYXJzIGluIGFzc2VydAorICBleHByZXNzaW9ucyBub3cgd29yayBi
ZXR0ZXIuICBUaGFua3MgRmxvcmlzIEJydXlub29naGUuCisKKy0gbWFrZSBjYXBmZC9jYXBzeXMu
Y2FwdHVyZSBwcml2YXRlLCBpdHMgdW51c2VkIGFuZCBzaG91bGRuJ3QgYmUgZXhwb3NlZAorCisK
KzIuNS4xICgyMDEzLTEyLTE3KQorPT09PT09PT09PT09PT09PT09CisKKy0gbWVyZ2UgbmV3IGRv
Y3VtZW50YXRpb24gc3R5bGluZyBQUiBmcm9tIFRvYmlhcyBCaWVuaWVrLgorCistIGZpeCBpc3N1
ZTQwMzogYWxsb3cgcGFyYW1ldHJpemUgb2YgbXVsdGlwbGUgc2FtZS1uYW1lIGZ1bmN0aW9ucyB3
aXRoaW4KKyAgYSBjb2xsZWN0aW9uIG5vZGUuICBUaGFua3MgQW5kcmVhcyBLbG9lY2tuZXIgYW5k
IEFsZXggR2F5bm9yIGZvciByZXBvcnRpbmcKKyAgYW5kIGFuYWx5c2lzLgorCistIEFsbG93IHBh
cmFtZXRlcml6ZWQgZml4dHVyZXMgdG8gc3BlY2lmeSB0aGUgSUQgb2YgdGhlIHBhcmFtZXRlcnMg
YnkKKyAgYWRkaW5nIGFuIGlkcyBhcmd1bWVudCB0byBweXRlc3QuZml4dHVyZSgpIGFuZCBweXRl
c3QueWllbGRfZml4dHVyZSgpLgorICBUaGFua3MgRmxvcmlzIEJydXlub29naGUuCisKKy0gZml4
IGlzc3VlNDA0IGJ5IGFsd2F5cyB1c2luZyB0aGUgYmluYXJ5IHhtbCBlc2NhcGUgaW4gdGhlIGp1
bml0eG1sCisgIHBsdWdpbi4gIFRoYW5rcyBSb25ueSBQZmFubnNjaG1pZHQuCisKKy0gZml4IGlz
c3VlNDA3OiBmaXggYWRkb3B0aW9uIGRvY3N0cmluZyB0byBwb2ludCB0byBhcmdwYXJzZSBpbnN0
ZWFkIG9mCisgIG9wdHBhcnNlLiBUaGFua3MgRGFuaWVsIEQuIFdyaWdodC4KKworCisKKzIuNS4w
ICgyMDEzLTEyLTEyKQorPT09PT09PT09PT09PT09PT09CisKKy0gZHJvcHBlZCBweXRob24yLjUg
ZnJvbSBhdXRvbWF0ZWQgcmVsZWFzZSB0ZXN0aW5nIG9mIHB5dGVzdCBpdHNlbGYKKyAgd2hpY2gg
bWVhbnMgaXQncyBwcm9iYWJseSBnb2luZyB0byBicmVhayBzb29uIChidXQgc3RpbGwgd29ya3MK
KyAgd2l0aCB0aGlzIHJlbGVhc2Ugd2UgYmVsaWV2ZSkuCisKKy0gc2ltcGxpZmllZCBhbmQgZml4
ZWQgaW1wbGVtZW50YXRpb24gZm9yIGNhbGxpbmcgZmluYWxpemVycyB3aGVuCisgIHBhcmFtZXRy
aXplZCBmaXh0dXJlcyBvciBmdW5jdGlvbiBhcmd1bWVudHMgYXJlIGludm9sdmVkLiAgZmluYWxp
emF0aW9uCisgIGlzIG5vdyBwZXJmb3JtZWQgbGF6aWx5IGF0IHNldHVwIHRpbWUgaW5zdGVhZCBv
ZiBpbiB0aGUgInRlYXJkb3duIHBoYXNlIi4KKyAgV2hpbGUgdGhpcyBtaWdodCBzb3VuZCBvZGQg
YXQgZmlyc3QsIGl0IGhlbHBzIHRvIGVuc3VyZSB0aGF0IHdlIGFyZQorICBjb3JyZWN0bHkgaGFu
ZGxpbmcgc2V0dXAvdGVhcmRvd24gZXZlbiBpbiBjb21wbGV4IGNvZGUuICBVc2VyLWxldmVsIGNv
ZGUKKyAgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCB1bmxlc3MgaXQncyBpbXBsZW1lbnRpbmcgdGhl
IHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duCisgIGhvb2sgYW5kIGV4cGVjdGluZyBjZXJ0YWluIGZp
eHR1cmUgaW5zdGFuY2VzIGFyZSB0b3JuIGRvd24gd2l0aGluICh2ZXJ5CisgIHVubGlrZWx5IGFu
ZCB3b3VsZCBoYXZlIGJlZW4gdW5yZWxpYWJsZSBhbnl3YXkpLgorCistIFBSOTA6IGFkZCAtLWNv
bG9yPXllc3xub3xhdXRvIG9wdGlvbiB0byBmb3JjZSB0ZXJtaW5hbCBjb2xvcmluZworICBtb2Rl
ICgiYXV0byIgaXMgZGVmYXVsdCkuICBUaGFua3MgTWFyYyBBYnJhbW93aXR6LgorCistIGZpeCBp
c3N1ZTMxOSAtIGNvcnJlY3RseSBzaG93IHVuaWNvZGUgaW4gYXNzZXJ0aW9uIGVycm9ycy4gIE1h
bnkKKyAgdGhhbmtzIHRvIEZsb3JpcyBCcnV5bm9vZ2hlIGZvciB0aGUgY29tcGxldGUgUFIuICBB
bHNvIG1lYW5zCisgIHdlIGRlcGVuZCBvbiBweT49MS40LjE5IG5vdy4KKworLSBmaXggaXNzdWUz
OTYgLSBjb3JyZWN0bHkgc29ydCBhbmQgZmluYWxpemUgY2xhc3Mtc2NvcGVkIHBhcmFtZXRyaXpl
ZAorICB0ZXN0cyBpbmRlcGVuZGVudGx5IGZyb20gbnVtYmVyIG9mIG1ldGhvZHMgb24gdGhlIGNs
YXNzLgorCistIHJlZml4IGlzc3VlMzIzIGluIGEgYmV0dGVyIHdheSAtLSBwYXJhbWV0cml6YXRp
b24gc2hvdWxkIG5vdyBuZXZlcgorICBjYXVzZSBSdW50aW1lIFJlY3Vyc2lvbiBlcnJvcnMgYmVj
YXVzZSB0aGUgdW5kZXJseWluZyBhbGdvcml0aG0KKyAgZm9yIHJlLW9yZGVyaW5nIHRlc3RzIHBl
ci1zY29wZS9wZXItZml4dHVyZSBpcyBub3QgcmVjdXJzaXZlCisgIGFueW1vcmUgKGl0IHdhcyB0
YWlsLWNhbGwgcmVjdXJzaXZlIGJlZm9yZSB3aGljaCBjb3VsZCBsZWFkCisgIHRvIHByb2JsZW1z
IGZvciBtb3JlIHRoYW4gPjk2NiBub24tZnVuY3Rpb24gc2NvcGVkIHBhcmFtZXRlcnMpLgorCist
IGZpeCBpc3N1ZTI5MCAtIHRoZXJlIGlzIHByZWxpbWluYXJ5IHN1cHBvcnQgbm93IGZvciBwYXJh
bWV0cml6aW5nCisgIHdpdGggcmVwZWF0ZWQgc2FtZSB2YWx1ZXMgKHNvbWV0aW1lcyB1c2VmdWwg
dG8gdGVzdCBpZiBjYWxsaW5nCisgIGEgc2Vjb25kIHRpbWUgd29ya3MgYXMgd2l0aCB0aGUgZmly
c3QgdGltZSkuCisKKy0gY2xvc2UgaXNzdWUyNDAgLSBkb2N1bWVudCBwcmVjaXNlbHkgaG93IHB5
dGVzdCBtb2R1bGUgaW1wb3J0aW5nCisgIHdvcmtzLCBkaXNjdXNzIHRoZSB0d28gY29tbW9uIHRl
c3QgZGlyZWN0b3J5IGxheW91dHMsIGFuZCBob3cgaXQKKyAgaW50ZXJhY3RzIHdpdGggUEVQNDIw
LW5hbWVzcGFjZSBwYWNrYWdlcy4KKworLSBmaXggaXNzdWUyNDYgZml4IGZpbmFsaXplciBvcmRl
ciB0byBiZSBMSUZPIG9uIGluZGVwZW5kZW50IGZpeHR1cmVzCisgIGRlcGVuZGluZyBvbiBhIHBh
cmFtZXRyaXplZCBoaWdoZXItdGhhbi1mdW5jdGlvbiBzY29wZWQgZml4dHVyZS4KKyAgKHdhcyBx
dWl0ZSBzb21lIGVmZm9ydCBzbyBwbGVhc2UgYmVhciB3aXRoIHRoZSBjb21wbGV4aXR5IG9mIHRo
aXMgc2VudGVuY2UgOikKKyAgVGhhbmtzIFJhbHBoIFNjaG1pdHQgZm9yIHRoZSBwcmVjaXNlIGZh
aWx1cmUgZXhhbXBsZS4KKworLSBmaXggaXNzdWUyNDQgYnkgaW1wbGVtZW50aW5nIHNwZWNpYWwg
aW5kZXggZm9yIHBhcmFtZXRlcnMgdG8gb25seSB1c2UKKyAgaW5kaWNlcyBmb3IgcGFyYW1lbnRy
aXplZCB0ZXN0IGlkcworCistIGZpeCBpc3N1ZTI4NyBieSBydW5uaW5nIGFsbCBmaW5hbGl6ZXJz
IGJ1dCBzYXZpbmcgdGhlIGV4Y2VwdGlvbgorICBmcm9tIHRoZSBmaXJzdCBmYWlsaW5nIGZpbmFs
aXplciBhbmQgcmUtcmFpc2luZyBpdCBzbyB0ZWFyZG93biB3aWxsCisgIHN0aWxsIGhhdmUgZmFp
bGVkLiAgV2UgcmVyYWlzZSB0aGUgZmlyc3QgZmFpbGluZyBleGNlcHRpb24gYmVjYXVzZQorICBp
dCBtaWdodCBiZSB0aGUgY2F1c2UgZm9yIG90aGVyIGZpbmFsaXplcnMgdG8gZmFpbC4KKworLSBm
aXggb3JkZXJpbmcgd2hlbiBtb2NrLnBhdGNoIG9yIG90aGVyIHN0YW5kYXJkIGRlY29yYXRvci13
cmFwcGluZ3MKKyAgYXJlIHVzZWQgd2l0aCB0ZXN0IG1ldGhvZHMuICBUaGlzIGZpeHVlcyBpc3N1
ZTM0NiBhbmQgc2hvdWxkCisgIGhlbHAgd2l0aCByYW5kb20gInhkaXN0IiBjb2xsZWN0aW9uIGZh
aWx1cmVzLiAgVGhhbmtzIHRvCisgIFJvbm55IFBmYW5uc2NobWlkdCBhbmQgRG9uYWxkIFN0dWZm
dCBmb3IgaGVscGluZyB0byBpc29sYXRlIGl0LgorCistIGZpeCBpc3N1ZTM1NyAtIHNwZWNpYWwg
Y2FzZSAiLWsiIGV4cHJlc3Npb25zIHRvIGFsbG93IGZvcgorICBmaWx0ZXJpbmcgd2l0aCBzaW1w
bGUgc3RyaW5ncyB0aGF0IGFyZSBub3QgdmFsaWQgcHl0aG9uIGV4cHJlc3Npb25zLgorICBFeGFt
cGxlczogIi1rIDEuMyIgbWF0Y2hlcyBhbGwgdGVzdHMgcGFyYW1ldHJpemVkIHdpdGggMS4zLgor
ICAiLWsgTm9uZSIgZmlsdGVycyBhbGwgdGVzdHMgdGhhdCBoYXZlICJOb25lIiBpbiB0aGVpciBu
YW1lCisgIGFuZCBjb252ZXJzZWx5ICItayAnbm90IE5vbmUnIi4KKyAgUHJldmlvdXNseSB0aGVz
ZSBleGFtcGxlcyB3b3VsZCByYWlzZSBzeW50YXggZXJyb3JzLgorCistIGZpeCBpc3N1ZTM4NCBi
eSByZW1vdmluZyB0aGUgdHJpYWwgc3VwcG9ydCBjb2RlCisgIHNpbmNlIHRoZSB1bml0dGVzdCBj
b21wYXQgZW5oYW5jZW1lbnRzIGFsbG93CisgIHRyaWFsIHRvIGhhbmRsZSBpdCBvbiBpdHMgb3du
CisKKy0gZG9uJ3QgaGlkZSBhbiBJbXBvcnRFcnJvciB3aGVuIGltcG9ydGluZyBhIHBsdWdpbiBw
cm9kdWNlcyBvbmUuCisgIGZpeGVzIGlzc3VlMzc1LgorCistIGZpeCBpc3N1ZTI3NSAtIGFsbG93
IHVzZWZpeHR1cmVzIGFuZCBhdXRvdXNlIGZpeHR1cmVzCisgIGZvciBydW5uaW5nIGRvY3Rlc3Qg
dGV4dCBmaWxlcy4KKworLSBmaXggaXNzdWUzODAgYnkgbWFraW5nIC0tcmVzdWx0bG9nIG9ubHkg
cmVseSBvbiBsb25ncmVwciBpbnN0ZWFkCisgIG9mIHRoZSAicmVwcmNyYXNoIiBhdHRyaWJ1dGUg
d2hpY2ggb25seSBleGlzdHMgc29tZXRpbWVzLgorCistIGFkZHJlc3MgaXNzdWUxMjI6IGFsbG93
IEBweXRlc3QuZml4dHVyZShwYXJhbXM9aXRlcmF0b3IpIGJ5IGV4cGxvZGluZworICBpbnRvIGEg
bGlzdCBlYXJseSBvbi4KKworLSBmaXggcGV4cGVjdC0zLjAgY29tcGF0aWJpbGl0eSBmb3IgcHl0
ZXN0J3Mgb3duIHRlc3RzLgorICAoZml4ZXMgaXNzdWUzODYpCisKKy0gYWxsb3cgbmVzdGVkIHBh
cmFtZXRyaXplLXZhbHVlIG1hcmtlcnMsIHRoYW5rcyBKYW1lcyBMYW4gZm9yIHRoZSBQUi4KKwor
LSBmaXggdW5pY29kZSBoYW5kbGluZyB3aXRoIG5ldyBtb25rZXlwYXRjaC5zZXRhdHRyKGltcG9y
dF9wYXRoLCB2YWx1ZSkKKyAgQVBJLiAgVGhhbmtzIFJvYiBEZW5uaXMuICBGaXhlcyBpc3N1ZTM3
MS4KKworLSBmaXggdW5pY29kZSBoYW5kbGluZyB3aXRoIGp1bml0eG1sLCBmaXhlcyBpc3N1ZTM2
OC4KKworLSBJbiBhc3NlcnRpb24gcmV3cml0aW5nIG1vZGUgb24gUHl0aG9uIDIsIGZpeCB0aGUg
ZGV0ZWN0aW9uIG9mIGNvZGluZworICBjb29raWVzLiBTZWUgaXNzdWUgIzMzMC4KKworLSBtYWtl
ICItLXJ1bnhmYWlsIiB0dXJuIGltcGVyYXRpdmUgcHl0ZXN0LnhmYWlsIGNhbGxzIGludG8gbm8g
b3BzCisgIChpdCBhbHJlYWR5IGRpZCBuZXV0cmFsaXplIHB5dGVzdC5tYXJrLnhmYWlsIG1hcmtl
cnMpCisKKy0gcmVmaW5lIHB5dGVzdCAvIHBrZ19yZXNvdXJjZXMgaW50ZXJhY3Rpb25zOiBUaGUg
QXNzZXJ0aW9uUmV3cml0aW5nSG9vaworICBQRVAzMDIgY29tcGxpYW50IGxvYWRlciBub3cgcmVn
aXN0ZXJzIGl0c2VsZiB3aXRoIHNldHVwdG9vbHMvcGtnX3Jlc291cmNlcworICBwcm9wZXJseSBz
byB0aGF0IHRoZSBwa2dfcmVzb3VyY2VzLnJlc291cmNlX3N0cmVhbSBtZXRob2Qgd29ya3MgcHJv
cGVybHkuCisgIEZpeGVzIGlzc3VlMzY2LiAgVGhhbmtzIGZvciB0aGUgaW52ZXN0aWdhdGlvbnMg
YW5kIGZ1bGwgUFIgdG8gSmFzb24gUi4gQ29vbWJzLgorCistIHB5dGVzdGNvbmZpZyBmaXh0dXJl
IGlzIG5vdyBzZXNzaW9uLXNjb3BlZCBhcyBpdCBpcyB0aGUgc2FtZSBvYmplY3QgZHVyaW5nIHRo
ZQorICB3aG9sZSB0ZXN0IHJ1bi4gIEZpeGVzIGlzc3VlMzcwLgorCistIGF2b2lkIG9uZSBzdXJw
cmlzaW5nIGNhc2Ugb2YgbWFya2VyIG1hbGZ1bmN0aW9uL2NvbmZ1c2lvbjo6CisKKyAgICAgIEBw
eXRlc3QubWFyay5zb21lKGxhbWJkYSBhcmc6IC4uLikKKyAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KCk6CisKKyAgd291bGQgbm90IHdvcmsgY29ycmVjdGx5IGJlY2F1c2UgcHl0ZXN0IGFzc3VtZXMg
QHB5dGVzdC5tYXJrLnNvbWUKKyAgZ2V0cyBhIGZ1bmN0aW9uIHRvIGJlIGRlY29yYXRlZCBhbHJl
YWR5LiAgV2Ugbm93IGF0IGxlYXN0IGRldGVjdCBpZiB0aGlzCisgIGFyZyBpcyBhbiBsYW1iZGEg
YW5kIHRodXMgdGhlIGV4YW1wbGUgd2lsbCB3b3JrLiAgVGhhbmtzIEFsZXggR2F5bm9yCisgIGZv
ciBicmluZ2luZyBpdCB1cC4KKworLSB4ZmFpbCBhIHRlc3Qgb24gcHlweSB0aGF0IGNoZWNrcyB3
cm9uZyBlbmNvZGluZy9hc2NpaSAocHlweSBkb2VzCisgIG5vdCBlcnJvciBvdXQpLiBmaXhlcyBp
c3N1ZTM4NS4KKworLSBpbnRlcm5hbGx5IG1ha2UgdmFybmFtZXMoKSBkZWFsIHdpdGggY2xhc3Nl
cydzIF9faW5pdF9fLAorICBhbHRob3VnaCBpdCdzIG5vdCBuZWVkZWQgYnkgcHl0ZXN0IGl0c2Vs
ZiBhdG0uICBBbHNvCisgIGZpeCBjYWNoaW5nLiAgRml4ZXMgaXNzdWUzNzYuCisKKy0gZml4IGlz
c3VlMjIxIC0gaGFuZGxlIGltcG9ydGluZyBvZiBuYW1lc3BhY2UtcGFja2FnZSB3aXRoIG5vCisg
IF9faW5pdF9fLnB5IHByb3Blcmx5LgorCistIHJlZmFjdG9yIGludGVybmFsIEZpeHR1cmVSZXF1
ZXN0IGhhbmRsaW5nIHRvIGF2b2lkIG1vbmtleXBhdGNoaW5nLgorICBPbmUgb2YgdGhlIHBvc2l0
aXZlIHVzZXItZmFjaW5nIGVmZmVjdHMgaXMgdGhhdCB0aGUgInJlcXVlc3QiIG9iamVjdAorICBj
YW4gbm93IGJlIHVzZWQgaW4gY2xvc3VyZXMuCisKKy0gZml4ZWQgdmVyc2lvbiBjb21wYXJpc29u
IGluIHB5dGVzdC5pbXBvcnRza2lwKG1vZG5hbWUsIG1pbnZlcnN0cmluZykKKworLSBmaXggaXNz
dWUzNzcgYnkgY2xhcmlmeWluZyBpbiB0aGUgbm9zZS1jb21wYXQgZG9jcyB0aGF0IHB5dGVzdAor
ICBkb2VzIG5vdCBkdXBsaWNhdGUgdGhlIHVuaXR0ZXN0LUFQSSBpbnRvIHRoZSAicGxhaW4iIG5h
bWVzcGFjZS4KKworLSBmaXggdmVyYm9zZSByZXBvcnRpbmcgZm9yIEBtb2NrJ2QgdGVzdCBmdW5j
dGlvbnMKKworMi40LjIgKDIwMTMtMTAtMDQpCis9PT09PT09PT09PT09PT09PT0KKworLSBvbiBX
aW5kb3dzIHJlcXVpcmUgY29sb3JhbWEgYW5kIGEgbmV3ZXIgcHkgbGliIHNvIHRoYXQgcHkuaW8u
VGVybWluYWxXcml0ZXIoKQorICBub3cgdXNlcyBjb2xvcmFtYSBpbnN0ZWFkIG9mIGl0cyBvd24g
Y3R5cGVzIGhhY2tzLiAoZml4ZXMgaXNzdWUzNjUpCisgIHRoYW5rcyBQYXVsIE1vb3JlIGZvciBi
cmluZ2luZyBpdCB1cC4KKworLSBmaXggIi1rIiBtYXRjaGluZyBvZiB0ZXN0cyB3aGVyZSAicmVw
ciIgYW5kICJhdHRyIiBhbmQgb3RoZXIgbmFtZXMgd291bGQKKyAgY2F1c2Ugd3JvbmcgbWF0Y2hl
cyBiZWNhdXNlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIHF1aXJrCisgIChkb24ndCBh
c2spIHdoaWNoIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZC4gZml4ZXMgaXNzdWUzNDUuCisK
Ky0gYXZvaWQgdG1wZGlyIGZpeHR1cmUgdG8gY3JlYXRlIHRvbyBsb25nIGZpbGVuYW1lcyBlc3Bl
Y2lhbGx5CisgIHdoZW4gcGFyYW1ldHJpemF0aW9uIGlzIHVzZWQgKGlzc3VlMzU0KQorCistIGZp
eCBweXRlc3QtcGVwOCBhbmQgcHl0ZXN0LWZsYWtlcyAvIHB5dGVzdCBpbnRlcmFjdGlvbnMKKyAg
KGNvbGxlY3Rpb24gbmFtZXMgaW4gbWFyayBwbHVnaW4gd2FzIGFzc3VtaW5nIGFuIGl0ZW0gYWx3
YXlzCisgIGhhcyBhIGZ1bmN0aW9uIHdoaWNoIGlzIG5vdCB0cnVlIGZvciB0aG9zZSBwbHVnaW5z
IGV0Yy4pCisgIFRoYW5rcyBBbmRpIFplaWRsZXIuCisKKy0gaW50cm9kdWNlIG5vZGUuZ2V0X21h
cmtlci9ub2RlLmFkZF9tYXJrZXIgQVBJIGZvciBwbHVnaW5zCisgIGxpa2UgcHl0ZXN0LXBlcDgg
YW5kIHB5dGVzdC1mbGFrZXMgdG8gYXZvaWQgdGhlIG1lc3N5CisgIGRldGFpbHMgb2YgdGhlIG5v
ZGUua2V5d29yZHMgIHBzZXVkby1kaWN0cy4gIEFkYXB0ZWQKKyAgZG9jcy4KKworLSByZW1vdmUg
YXR0ZW1wdCB0byAiZHVwIiBzdGRvdXQgYXQgc3RhcnR1cCBhcyBpdCdzIGlja3kuCisgIHRoZSBu
b3JtYWwgY2FwdHVyaW5nIHNob3VsZCBjYXRjaCBlbm91Z2ggcG9zc2liaWxpdGllcworICBvZiB0
ZXN0cyBtZXNzaW5nIHVwIHN0YW5kYXJkIEZEcy4KKworLSBhZGQgcGx1Z2lubWFuYWdlci5kb19j
b25maWd1cmUoY29uZmlnKSBhcyBhIGxpbmsgdG8KKyAgY29uZmlnLmRvX2NvbmZpZ3VyZSgpIGZv
ciBwbHVnaW4tY29tcGF0aWJpbGl0eQorCisyLjQuMSAoMjAxMy0xMC0wMikKKz09PT09PT09PT09
PT09PT09PQorCistIFdoZW4gdXNpbmcgcGFyc2VyLmFkZG9wdGlvbigpIHVuaWNvZGUgYXJndW1l
bnRzIHRvIHRoZQorICAidHlwZSIga2V5d29yZCBzaG91bGQgYWxzbyBiZSBjb252ZXJ0ZWQgdG8g
dGhlIHJlc3BlY3RpdmUgdHlwZXMuCisgIHRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZSwgQGRub3ph
eS4gKGZpeGVzIGlzc3VlMzYwIGFuZCBpc3N1ZTM2MikKKworLSBmaXggZG90dGVkIGZpbGVuYW1l
IGNvbXBsZXRpb24gd2hlbiB1c2luZyBhcmdjb21wbGV0ZQorICB0aGFua3MgQW50aG9uIHZhbiBk
ZXIgTmV1dGguIChmaXhlcyBpc3N1ZTM2MSkKKworLSBmaXggcmVncmVzc2lvbiB3aGVuIGEgMS10
dXBsZSAoImFyZyIsKSBpcyB1c2VkIGZvciBzcGVjaWZ5aW5nCisgIHBhcmFtZXRyaXphdGlvbiAo
dGhlIHZhbHVlcyBvZiB0aGUgcGFyYW1ldHJpemF0aW9uIHdlcmUgcGFzc2VkCisgIG5lc3RlZCBp
biBhIHR1cGxlKS4gIFRoYW5rcyBEb25hbGQgU3R1ZmZ0LgorCistIG1lcmdlIGRvYyB0eXBvIGZp
eGVzLCB0aGFua3MgQW5keSBEaXJuYmVyZ2VyCisKKzIuNAorPT09CisKK2tub3duIGluY29tcGF0
aWJpbGl0aWVzOgorCistIGlmIGNhbGxpbmcgLS1nZW5zY3JpcHQgZnJvbSBweXRob24yLjcgb3Ig
YWJvdmUsIHlvdSBvbmx5IGdldCBhCisgIHN0YW5kYWxvbmUgc2NyaXB0IHdoaWNoIHdvcmtzIG9u
IHB5dGhvbjIuNyBvciBhYm92ZS4gIFVzZSBQeXRob24yLjYKKyAgdG8gYWxzbyBnZXQgYSBweXRo
b24yLjUgY29tcGF0aWJsZSB2ZXJzaW9uLgorCistIGFsbCB4dW5pdC1zdHlsZSB0ZWFyZG93biBt
ZXRob2RzIChub3NlLXN0eWxlLCBweXRlc3Qtc3R5bGUsCisgIHVuaXR0ZXN0LXN0eWxlKSB3aWxs
IG5vdCBiZSBjYWxsZWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgc2V0dXAgbWV0aG9kIGZhaWxlZCwK
KyAgc2VlIGlzc3VlMzIyIGJlbG93LgorCistIHRoZSBweXRlc3RfcGx1Z2luX3VucmVnaXN0ZXIg
aG9vayB3YXNuJ3QgZXZlciBwcm9wZXJseSBjYWxsZWQKKyAgYW5kIHRoZXJlIGlzIG5vIGtub3du
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBob29rIC0gc28gaXQgZ290IHJlbW92ZWQuCisKKy0gcHl0
ZXN0LmZpeHR1cmUtZGVjb3JhdGVkIGZ1bmN0aW9ucyBjYW5ub3QgYmUgZ2VuZXJhdG9ycyAoaS5l
LiB1c2UKKyAgeWllbGQpIGFueW1vcmUuICBUaGlzIGNoYW5nZSBtaWdodCBiZSByZXZlcnNlZCBp
biAyLjQuMSBpZiBpdCBjYXVzZXMKKyAgdW5mb3Jlc2VlbiByZWFsLWxpZmUgaXNzdWVzLiAgSG93
ZXZlciwgeW91IGNhbiBhbHdheXMgd3JpdGUgYW5kIHJldHVybgorICBhbiBpbm5lciBmdW5jdGlv
bi9nZW5lcmF0b3IgYW5kIGNoYW5nZSB0aGUgZml4dHVyZSBjb25zdW1lciB0byBpdGVyYXRlCisg
IG92ZXIgdGhlIHJldHVybmVkIGdlbmVyYXRvci4gIFRoaXMgY2hhbmdlIHdhcyBkb25lIGluIGxp
ZXUgb2YgdGhlIG5ldworICBgYHB5dGVzdC55aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yLCBzZWUg
YmVsb3cuCisKK25ldyBmZWF0dXJlczoKKworLSBleHBlcmltZW50YWxseSBpbnRyb2R1Y2UgYSBu
ZXcgYGBweXRlc3QueWllbGRfZml4dHVyZWBgIGRlY29yYXRvcgorICB3aGljaCBhY2NlcHRzIGV4
YWN0bHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyBweXRlc3QuZml4dHVyZSBidXQKKyAgbWFuZGF0
ZXMgYSBgYHlpZWxkYGAgc3RhdGVtZW50IGluc3RlYWQgb2YgYSBgYHJldHVybiBzdGF0ZW1lbnRg
YCBmcm9tCisgIGZpeHR1cmUgZnVuY3Rpb25zLiAgVGhpcyBhbGxvd3MgZGlyZWN0IGludGVncmF0
aW9uIHdpdGggIndpdGgtc3R5bGUiCisgIGNvbnRleHQgbWFuYWdlcnMgaW4gZml4dHVyZSBmdW5j
dGlvbnMgYW5kIGdlbmVyYWxseSBhdm9pZHMgcmVnaXN0ZXJpbmcKKyAgb2YgZmluYWxpemF0aW9u
IGNhbGxiYWNrcyBpbiBmYXZvdXIgb2YgdHJlYXRpbmcgdGhlICJhZnRlci15aWVsZCIgYXMKKyAg
dGVhcmRvd24gY29kZS4gIFRoYW5rcyBBbmRyZWFzIFBlbG1lLCBWbGFkaW1pciBLZWxlc2hldiwg
RmxvcmlzCisgIEJydXlub29naGUsIFJvbm55IFBmYW5uc2NobWlkdCBhbmQgbWFueSBvdGhlcnMg
Zm9yIGRpc2N1c3Npb25zLgorCistIGFsbG93IGJvb2xlYW4gZXhwcmVzc2lvbiBkaXJlY3RseSB3
aXRoIHNraXBpZi94ZmFpbAorICBpZiBhICJyZWFzb24iIGlzIGFsc28gc3BlY2lmaWVkLiAgUmV3
b3JrIHNraXBwaW5nIGRvY3VtZW50YXRpb24KKyAgdG8gcmVjb21tZW5kICJjb25kaXRpb24gYXMg
Ym9vbGVhbnMiIGJlY2F1c2UgaXQgcHJldmVudHMgc3VycHJpc2VzCisgIHdoZW4gaW1wb3J0aW5n
IG1hcmtlcnMgYmV0d2VlbiBtb2R1bGVzLiAgU3BlY2lmeWluZyBjb25kaXRpb25zCisgIGFzIHN0
cmluZ3Mgd2lsbCByZW1haW4gZnVsbHkgc3VwcG9ydGVkLgorCistIHJlcG9ydGluZzogY29sb3Ig
dGhlIGxhc3QgbGluZSByZWQgb3IgZ3JlZW4gZGVwZW5kaW5nIGlmCisgIGZhaWx1cmVzL2Vycm9y
cyBvY2N1cnJlZCBvciBldmVyeXRoaW5nIHBhc3NlZC4gIHRoYW5rcyBDaHJpc3RpYW4KKyAgVGhl
dW5lcnQuCisKKy0gbWFrZSAiaW1wb3J0IHBkYiA7IHBkYi5zZXRfdHJhY2UoKSIgd29yayBuYXRp
dmVseSB3cnQgY2FwdHVyaW5nIChubworICAiLXMiIG5lZWRlZCBhbnltb3JlKSwgbWFraW5nIGBg
cHl0ZXN0LnNldF90cmFjZSgpYGAgYSBtZXJlIHNob3J0Y3V0LgorCistIGZpeCBpc3N1ZTE4MTog
LS1wZGIgbm93IGFsc28gd29ya3Mgb24gY29sbGVjdCBlcnJvcnMgKGFuZAorICBvbiBpbnRlcm5h
bCBlcnJvcnMpIC4gIFRoaXMgd2FzIGltcGxlbWVudGVkIGJ5IGEgc2xpZ2h0IGludGVybmFsCisg
IHJlZmFjdG9yaW5nIGFuZCB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IGhvb2sKKyAgYGBweXRl
c3RfZXhjZXB0aW9uX2ludGVyYWN0YGAgaG9vayAoc2VlIG5leHQgaXRlbSkuCisKKy0gZml4IGlz
c3VlMzQxOiBpbnRyb2R1Y2UgbmV3IGV4cGVyaW1lbnRhbCBob29rIGZvciBJREVzL3Rlcm1pbmFs
cyB0bworICBpbnRlcmNlcHQgZGVidWdnaW5nOiBgYHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qo
bm9kZSwgY2FsbCwgcmVwb3J0KWBgLgorCistIG5ldyBtb25rZXlwYXRjaC5zZXRhdHRyKCkgdmFy
aWFudCB0byBwcm92aWRlIGEgc2hvcnRlcgorICBpbnZvY2F0aW9uIGZvciBwYXRjaGluZyBvdXQg
Y2xhc3Nlcy9mdW5jdGlvbnMgZnJvbSBtb2R1bGVzOgorCisgICAgIG1vbmtleXBhdGNoLnNldGF0
dHIoInJlcXVlc3RzLmdldCIsIG15ZnVuYykKKworICB3aWxsIHJlcGxhY2UgdGhlICJnZXQiIGZ1
bmN0aW9uIG9mIHRoZSAicmVxdWVzdHMiIG1vZHVsZSB3aXRoIGBgbXlmdW5jYGAuCisKKy0gZml4
IGlzc3VlMzIyOiB0ZWFyRG93bkNsYXNzIGlzIG5vdCBydW4gaWYgc2V0VXBDbGFzcyBmYWlsZWQu
IFRoYW5rcworICBNYXRoaWV1IEFnb3BpYW4gZm9yIHRoZSBpbml0aWFsIGZpeC4gIEFsc28gbWFr
ZSBhbGwgb2YgcHl0ZXN0L25vc2UKKyAgZmluYWxpemVyIG1pbWljIHRoZSBzYW1lIGdlbmVyaWMg
YmVoYXZpb3VyOiBpZiBhIHNldHVwWCBleGlzdHMgYW5kCisgIGZhaWxzLCBkb24ndCBydW4gdGVh
cmRvd25YLiAgVGhpcyBpbnRlcm5hbGx5IGludHJvZHVjZXMgYSBuZXcgbWV0aG9kCisgICJub2Rl
LmFkZGZpbmFsaXplcigpIiBoZWxwZXIgd2hpY2ggY2FuIG9ubHkgYmUgY2FsbGVkIGR1cmluZyB0
aGUgc2V0dXAKKyAgcGhhc2Ugb2YgYSBub2RlLgorCistIHNpbXBsaWZ5IHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCkgc2lnbmF0dXJlOiBhbGxvdyB0byBwYXNzIGEKKyAgQ1NWLXNlcGFyYXRlZCBz
dHJpbmcgdG8gc3BlY2lmeSBhcmduYW1lcy4gIEZvciBleGFtcGxlOgorICBgYHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJpbnB1dCxleHBlY3RlZCIsICBbKDEsMiksICgyLDMpXSlgYAorICB3b3Jr
cyBhcyB3ZWxsIGFzIHRoZSBwcmV2aW91czoKKyAgYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgo
ImlucHV0IiwgImV4cGVjdGVkIiksIC4uLilgYC4KKworLSBhZGQgc3VwcG9ydCBmb3Igc2V0VXBN
b2R1bGUvdGVhckRvd25Nb2R1bGUgZGV0ZWN0aW9uLCB0aGFua3MgQnJpYW4gT2trZW4uCisKKy0g
aW50ZWdyYXRlIHRhYi1jb21wbGV0aW9uIG9uIG9wdGlvbnMgdGhyb3VnaCB1c2Ugb2YgImFyZ2Nv
bXBsZXRlIi4KKyAgVGhhbmtzIEFudGhvbiB2YW4gZGVyIE5ldXQgZm9yIHRoZSBQUi4KKworLSBj
aGFuZ2Ugb3B0aW9uIG5hbWVzIHRvIGJlIGh5cGhlbi1zZXBhcmF0ZWQgbG9uZyBvcHRpb25zIGJ1
dCBrZWVwIHRoZQorICBvbGQgc3BlbGxpbmcgYmFja3dhcmQgY29tcGF0aWJsZS4gIHB5LnRlc3Qg
LWggd2lsbCBvbmx5IHNob3cgdGhlCisgIGh5cGhlbmF0ZWQgdmVyc2lvbiwgZm9yIGV4YW1wbGUg
Ii0tY29sbGVjdC1vbmx5IiBidXQgIi0tY29sbGVjdG9ubHkiCisgIHdpbGwgcmVtYWluIHZhbGlk
IGFzIHdlbGwgKGZvciBiYWNrd2FyZC1jb21wYXQgcmVhc29ucykuICBNYW55IHRoYW5rcyB0bwor
ICBBbnRob24gdmFuIGRlciBOZXV0IGZvciB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRvIEh5bmVr
IFNjaGxhd2FjayBmb3IKKyAgcHVzaGluZyB1cy4KKworLSBmaXggaXNzdWUgMzA4IC0gYWxsb3cg
dG8gbWFyay94ZmFpbC9za2lwIGluZGl2aWR1YWwgcGFyYW1ldGVyIHNldHMKKyAgd2hlbiBwYXJh
bWV0cml6aW5nLiAgVGhhbmtzIEJyaWFubmEgTGF1Z2hlci4KKworLSBjYWxsIG5ldyBleHBlcmlt
ZW50YWwgcHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMgaG9vayB0byBhbGxvdworICAzcmQg
cGFydHkgcGx1Z2lucyB0byBkbyBzb21ldGhpbmcgYmVmb3JlIGEgY29uZnRlc3QgaXMgbG9hZGVk
LgorCitCdWcgZml4ZXM6CisKKy0gZml4IGlzc3VlMzU4IC0gY2FwdHVyaW5nIG9wdGlvbnMgYXJl
IG5vdyBwYXJzZWQgbW9yZSBwcm9wZXJseQorICBieSB1c2luZyBhIG5ldyBwYXJzZXIucGFyc2Vf
a25vd25fYXJncyBtZXRob2QuCisKKy0gcHl0ZXN0IG5vdyB1c2VzIGFyZ3BhcnNlIGluc3RlYWQg
b2Ygb3B0cGFyc2UgKHRoYW5rcyBBbnRob24pIHdoaWNoCisgIG1lYW5zIHRoYXQgImFyZ3BhcnNl
IiBpcyBhZGRlZCBhcyBhIGRlcGVuZGVuY3kgaWYgaW5zdGFsbGluZyBpbnRvIHB5dGhvbjIuNgor
ICBlbnZpcm9ubWVudHMgb3IgYmVsb3cuCisKKy0gZml4IGlzc3VlMzMzOiBmaXggYSBjYXNlIG9m
IGJhZCB1bml0dGVzdC9weXRlc3QgaG9vayBpbnRlcmFjdGlvbi4KKworLSBQUjI3OiBjb3JyZWN0
bHkgaGFuZGxlIG5vc2UuU2tpcFRlc3QgZHVyaW5nIGNvbGxlY3Rpb24uICBUaGFua3MKKyAgQW50
b25pbyBDdW5pLCBSb25ueSBQZmFubnNjaG1pZHQuCisKKy0gZml4IGlzc3VlMzU1OiBqdW5pdHht
bCBwdXRzIG5hbWU9InB5dGVzdCIgYXR0cmlidXRlIHRvIHRlc3RzdWl0ZSB0YWcuCisKKy0gZml4
IGlzc3VlMzM2OiBhdXRvdXNlIGZpeHR1cmUgaW4gcGx1Z2lucyBzaG91bGQgd29yayBhZ2Fpbi4K
KworLSBmaXggaXNzdWUyNzk6IGltcHJvdmUgb2JqZWN0IGNvbXBhcmlzb25zIG9uIGFzc2VydGlv
biBmYWlsdXJlCisgIGZvciBzdGFuZGFyZCBkYXRhdHlwZXMgYW5kIHJlY29nbmlzZSBjb2xsZWN0
aW9ucy5hYmMuICBUaGFua3MgdG8KKyAgQnJpYW5uYSBMYXVnaGVyIGFuZCBNYXRoaWV1IEFnb3Bp
YW4uCisKKy0gZml4IGlzc3VlMzE3OiBhc3NlcnRpb24gcmV3cml0ZXIgc3VwcG9ydCBmb3IgdGhl
IGlzX3BhY2thZ2UgbWV0aG9kCisKKy0gZml4IGlzc3VlMzM1OiBkb2N1bWVudCBweS5jb2RlLkV4
Y2VwdGlvbkluZm8oKSBvYmplY3QgcmV0dXJuZWQKKyAgZnJvbSBweXRlc3QucmFpc2VzKCksIHRo
YW5rcyBNYXRoaWV1IEFnb3BpYW4uCisKKy0gcmVtb3ZlIGltcGxpY2l0IGRpc3RyaWJ1dGVfc2V0
dXAgc3VwcG9ydCBmcm9tIHNldHVwLnB5LgorCistIGZpeCBpc3N1ZTMwNTogaWdub3JlIGFueSBw
cm9ibGVtcyB3aGVuIHdyaXRpbmcgcHljIGZpbGVzLgorCistIFNPLTE3NjY0NzAyOiBjYWxsIGZp
eHR1cmUgZmluYWxpemVycyBldmVuIGlmIHRoZSBmaXh0dXJlIGZ1bmN0aW9uCisgIHBhcnRpYWxs
eSBmYWlsZWQgKGZpbmFsaXplcnMgd291bGQgbm90IGFsd2F5cyBiZSBjYWxsZWQgYmVmb3JlKQor
CistIGZpeCBpc3N1ZTMyMCAtIGZpeCBjbGFzcyBzY29wZSBmb3IgZml4dHVyZXMgd2hlbiBtaXhl
ZCB3aXRoCisgIG1vZHVsZS1sZXZlbCBmdW5jdGlvbnMuICBUaGFua3MgQW5hdGxveSBCdWJlbmtv
ZmYuCisKKy0geW91IGNhbiBzcGVjaWZ5ICItcSIgb3IgIi1xcSIgdG8gZ2V0IGRpZmZlcmVudCBs
ZXZlbHMgb2YgInF1aWV0ZXIiCisgIHJlcG9ydGluZyAodGhhbmtzIEthdGFyenluYSBKYWNoaW0p
CisKKy0gZml4IGlzc3VlMzAwIC0gRml4IG9yZGVyIG9mIGNvbmZ0ZXN0IGxvYWRpbmcgd2hlbiBz
dGFydGluZyBweS50ZXN0CisgIGluIGEgc3ViZGlyZWN0b3J5LgorCistIGZpeCBpc3N1ZTMyMyAt
IHNvcnRpbmcgb2YgbWFueSBtb2R1bGUtc2NvcGVkIGFyZyBwYXJhbWV0cml6YXRpb25zCisKKy0g
bWFrZSBzZXNzaW9uZmluaXNoIGhvb2tzIGV4ZWN1dGUgd2l0aCB0aGUgc2FtZSBjd2QtY29udGV4
dCBhcyBhdAorICBzZXNzaW9uIHN0YXJ0IChoZWxwcyBmaXggcGx1Z2luIGJlaGF2aW91ciB3aGlj
aCB3cml0ZSBvdXRwdXQgZmlsZXMKKyAgd2l0aCByZWxhdGl2ZSBwYXRoIHN1Y2ggYXMgcHl0ZXN0
LWNvdikKKworLSBmaXggaXNzdWUzMTYgLSBwcm9wZXJseSByZWZlcmVuY2UgY29sbGVjdGlvbiBo
b29rcyBpbiBkb2NzCisKKy0gZml4IGlzc3VlIDMwNiAtIGNsZWFudXAgb2YgLWsvLW0gb3B0aW9u
cyB0byBvbmx5IG1hdGNoIG1hcmtlcnMvdGVzdAorICBuYW1lcy9rZXl3b3JkcyByZXNwZWN0aXZl
bHkuICBUaGFua3MgV291dGVyIHZhbiBBY2tvb3kuCisKKy0gaW1wcm92ZWQgZG9jdGVzdCBjb3Vu
dGluZyBmb3IgZG9jdGVzdHMgaW4gcHl0aG9uIG1vZHVsZXMgLS0KKyAgZmlsZXMgd2l0aG91dCBh
bnkgZG9jdGVzdCBpdGVtcyB3aWxsIG5vdCBzaG93IHVwIGFueW1vcmUKKyAgYW5kIGRvY3Rlc3Qg
ZXhhbXBsZXMgYXJlIGNvdW50ZWQgYXMgc2VwYXJhdGUgdGVzdCBpdGVtcy4KKyAgdGhhbmtzIERh
bmlsbyBCZWxsaW5pLgorCistIGZpeCBpc3N1ZTI0NSBieSBkZXBlbmRpbmcgb24gdGhlIHJlbGVh
c2VkIHB5LTEuNC4xNAorICB3aGljaCBmaXhlcyBweS5pby5kdXBmaWxlIHRvIHdvcmsgd2l0aCBm
aWxlcyB3aXRoIG5vCisgIG1vZGUuIFRoYW5rcyBKYXNvbiBSLiBDb29tYnMuCisKKy0gZml4IGp1
bml0eG1sIGdlbmVyYXRpb24gd2hlbiB0ZXN0IG91dHB1dCBjb250YWlucyBjb250cm9sIGNoYXJh
Y3RlcnMsCisgIGFkZHJlc3NpbmcgaXNzdWUyNjcsIHRoYW5rcyBKYWFwIEJyb2VraHVpemVuCisK
Ky0gZml4IGlzc3VlMzM4OiBob25vciAtLXRiIHN0eWxlIGZvciBzZXR1cC90ZWFyZG93biBlcnJv
cnMgYXMgd2VsbC4gIFRoYW5rcyBNYWhvLgorCistIGZpeCBpc3N1ZTMwNyAtIHVzZSB5YW1sLnNh
ZmVfbG9hZCBpbiBleGFtcGxlLCB0aGFua3MgTWFyayBFaWNoaW4uCisKKy0gYmV0dGVyIHBhcmFt
ZXRyaXplIGVycm9yIG1lc3NhZ2VzLCB0aGFua3MgQnJpYW5uYSBMYXVnaGVyCisKKy0gcHl0ZXN0
X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcikgaG9va3MgY2FuIG5vdyB1c2UKKyAg
Ii5zZWN0aW9uKHRpdGxlKSIgYW5kICIubGluZShtc2cpIiBtZXRob2RzIHRvIHByaW50IGV4dHJh
CisgIGluZm9ybWF0aW9uIGF0IHRoZSBlbmQgb2YgYSB0ZXN0IHJ1bi4KKworMi4zLjUgKDIwMTMt
MDQtMzApCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxNjk6IHJlc3BlY3QgLS10
Yj1zdHlsZSB3aXRoIHNldHVwL3RlYXJkb3duIGVycm9ycyBhcyB3ZWxsLgorCistIG5ldmVyIGNv
bnNpZGVyIGEgZml4dHVyZSBmdW5jdGlvbiBmb3IgdGVzdCBmdW5jdGlvbiBjb2xsZWN0aW9uCisK
Ky0gYWxsb3cgcmUtcnVubmluZyBvZiB0ZXN0IGl0ZW1zIC8gaGVscHMgdG8gZml4IHB5dGVzdC1y
ZXJ1bnRlc3RzIHBsdWdpbgorICBhbmQgYWxzbyBoZWxwIHRvIGtlZXAgbGVzcyBmaXh0dXJlL3Jl
c291cmNlIHJlZmVyZW5jZXMgYWxpdmUKKworLSBwdXQgY2FwdHVyZWQgc3Rkb3V0L3N0ZGVyciBp
bnRvIGp1bml0eG1sIG91dHB1dCBldmVuIGZvciBwYXNzaW5nIHRlc3RzCisgICh0aGFua3MgQWRh
bSBHb3VjaGVyKQorCistIElzc3VlIDI2NSAtIGludGVncmF0ZSBub3NlIHNldHVwL3RlYXJkb3du
IHdpdGggc2V0dXBzdGF0ZQorICBzbyBpdCBkb2Vzbid0IHRyeSB0byB0ZWFyZG93biBpZiBpdCBk
aWQgbm90IHNldHVwCisKKy0gaXNzdWUgMjcxIC0gZG9uJ3Qgd3JpdGUganVuaXR4bWwgb24gc2xh
dmUgbm9kZXMKKworLSBJc3N1ZSAyNzQgLSBkb24ndCB0cnkgdG8gc2hvdyBmdWxsIGRvY3Rlc3Qg
ZXhhbXBsZQorICB3aGVuIGRvY3Rlc3QgZG9lcyBub3Qga25vdyB0aGUgZXhhbXBsZSBsb2NhdGlv
bgorCistIGlzc3VlIDI4MCAtIGRpc2FibGUgYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBidWdneSBD
UHl0aG9uIDIuNi4wCisKKy0gaW5qZWN0ICJnZXRmaXh0dXJlKCkiIGhlbHBlciB0byByZXRyaWV2
ZSBmaXh0dXJlcyBmcm9tIGRvY3Rlc3RzLAorICB0aGFua3MgQW5kcmVhcyBaZWlkbGVyCisKKy0g
aXNzdWUgMjU5IC0gd2hlbiBhc3NlcnRpb24gcmV3cml0aW5nLCBiZSBjb25zaXN0ZW50IHdpdGgg
dGhlIGRlZmF1bHQKKyAgc291cmNlIGVuY29kaW5nIG9mIEFTQ0lJIG9uIFB5dGhvbiAyCisKKy0g
aXNzdWUgMjUxIC0gcmVwb3J0IGEgc2tpcCBpbnN0ZWFkIG9mIGlnbm9yaW5nIGNsYXNzZXMgd2l0
aCBpbml0CisKKy0gaXNzdWUyNTAgdW5pY29kZS9zdHIgbWl4ZXMgaW4gcGFyYW1ldHJpemF0aW9u
IG5hbWVzIGFuZCB2YWx1ZXMgbm93IHdvcmtzCisKKy0gaXNzdWUyNTcsIGFzc2VydGlvbi10cmln
Z2VyZWQgY29tcGlsYXRpb24gb2Ygc291cmNlIGVuZGluZyBpbiBhCisgIGNvbW1lbnQgbGluZSBk
b2Vzbid0IGJsb3cgdXAgaW4gcHl0aG9uMi41IChmaXhlZCB0aHJvdWdoIHB5Pj0xLjQuMTMuZGV2
NikKKworLSBmaXggLS1nZW5zY3JpcHQgb3B0aW9uIHRvIGdlbmVyYXRlIHN0YW5kYWxvbmUgc2Ny
aXB0cyB0aGF0IGFsc28KKyAgd29yayB3aXRoIHB5dGhvbjMuMyAoaW1wb3J0ZXIgb3JkZXJpbmcp
CisKKy0gaXNzdWUxNzEgLSBpbiBhc3NlcnRpb24gcmV3cml0aW5nLCBzaG93IHRoZSByZXByIG9m
IHNvbWUKKyAgZ2xvYmFsIHZhcmlhYmxlcworCistIGZpeCBvcHRpb24gaGVscCBmb3IgIi1rIgor
CistIG1vdmUgbG9uZyBkZXNjcmlwdGlvbiBvZiBkaXN0cmlidXRpb24gaW50byBSRUFETUUucnN0
CisKKy0gaW1wcm92ZSBkb2NzdHJpbmcgZm9yIG1ldGFmdW5jLnBhcmFtZXRyaXplKCkKKworLSBm
aXggYnVnIHdoZXJlIHVzaW5nIGNhcHN5cyB3aXRoIHB5dGVzdC5zZXRfdHJhY2UoKSBpbiBhIHRl
c3QKKyAgZnVuY3Rpb24gd291bGQgYnJlYWsgd2hlbiBsb29raW5nIGF0IGNhcHN5cy5yZWFkb3V0
ZXJyKCkKKworLSBhbGxvdyB0byBzcGVjaWZ5IHByZWZpeGVzIHN0YXJ0aW5nIHdpdGggIl8iIHdo
ZW4KKyAgY3VzdG9taXppbmcgcHl0aG9uX2Z1bmN0aW9ucyB0ZXN0IGRpc2NvdmVyeS4gKHRoYW5r
cyBHcmFoYW0gSG9ybGVyKQorCistIGltcHJvdmUgUFlURVNUX0RFQlVHIHRyYWNpbmcgb3V0cHV0
IGJ5IHB1dHRpbmcKKyAgZXh0cmEgZGF0YSBvbiBhIG5ldyBsaW5lcyB3aXRoIGFkZGl0aW9uYWwg
aW5kZW50CisKKy0gZW5zdXJlIE91dGNvbWVFeGNlcHRpb25zIGxpa2Ugc2tpcC9mYWlsIGhhdmUg
aW5pdGlhbGl6ZWQgZXhjZXB0aW9uIGF0dHJpYnV0ZXMKKworLSBpc3N1ZSAyNjAgLSBkb24ndCB1
c2Ugbm9zZSBzcGVjaWFsIHNldHVwIG9uIHBsYWluIHVuaXR0ZXN0IGNhc2VzCisKKy0gZml4IGlz
c3VlMTM0IC0gcHJpbnQgdGhlIGNvbGxlY3QgZXJyb3JzIHRoYXQgcHJldmVudCBydW5uaW5nIHNw
ZWNpZmllZCB0ZXN0IGl0ZW1zCisKKy0gZml4IGlzc3VlMjY2IC0gYWNjZXB0IHVuaWNvZGUgaW4g
TWFya0V2YWx1YXRvciBleHByZXNzaW9ucworCisyLjMuNCAoMjAxMi0xMS0yMCkKKz09PT09PT09
PT09PT09PT09PQorCistIHlpZWxkZWQgdGVzdCBmdW5jdGlvbnMgd2lsbCBub3cgaGF2ZSBhdXRv
dXNlLWZpeHR1cmVzIGFjdGl2ZSBidXQKKyAgY2Fubm90IGFjY2VwdCBmaXh0dXJlcyBhcyBmdW5j
YXJncyAtIGl0J3MgYW55d2F5IHJlY29tbWVuZGVkIHRvCisgIHJhdGhlciB1c2UgdGhlIHBvc3Qt
Mi4wIHBhcmFtZXRyaXplIGZlYXR1cmVzIGluc3RlYWQgb2YgeWllbGQsIHNlZToKKyAgaHR0cDov
L3B5dGVzdC5vcmcvbGF0ZXN0L2V4YW1wbGUvcGFyYW1ldHJpemUuaHRtbAorLSBmaXggYXV0b3Vz
ZS1pc3N1ZSB3aGVyZSBhdXRvdXNlLWZpeHR1cmVzIHdvdWxkIG5vdCBiZSBkaXNjb3ZlcmVkCisg
IGlmIGRlZmluZWQgaW4gYSBhL2NvbmZ0ZXN0LnB5IGZpbGUgYW5kIHRlc3RzIGluIGEvdGVzdHMv
dGVzdF9zb21lLnB5CistIGZpeCBpc3N1ZTIyNiAtIExJRk8gb3JkZXJpbmcgZm9yIGZpeHR1cmUg
dGVhcmRvd25zCistIGZpeCBpc3N1ZTIyNCAtIGludm9jYXRpb25zIHdpdGggPjI1NiBjaGFyIGFy
Z3VtZW50cyBub3cgd29yaworLSBmaXggaXNzdWU5MSAtIGFkZC9kaXNjdXNzIHBhY2thZ2UvZGly
ZWN0b3J5IGxldmVsIHNldHVwcyBpbiBleGFtcGxlCistIGFsbG93IHRvIGR5bmFtaWNhbGx5IGRl
ZmluZSBtYXJrZXJzIHZpYQorICBpdGVtLmtleXdvcmRzWy4uLl09YXNzaWdubWVudCBpbnRlZ3Jh
dGluZyB3aXRoICItbSIgb3B0aW9uCistIG1ha2UgIi1rIiBhY2NlcHQgYW4gZXhwcmVzc2lvbnMg
dGhlIHNhbWUgYXMgd2l0aCAiLW0iIHNvIHRoYXQgb25lCisgIGNhbiB3cml0ZTogLWsgIm5hbWUx
IG9yIG5hbWUyIiBldGMuICBUaGlzIGlzIGEgc2xpZ2h0IGluY29tcGF0aWJpbGl0eQorICBpZiB5
b3UgdXNlZCBzcGVjaWFsIHN5bnRheCBsaWtlICJUZXN0Q2xhc3MudGVzdF9tZXRob2QiIHdoaWNo
IHlvdSBub3cKKyAgbmVlZCB0byB3cml0ZSBhcyAtayAiVGVzdENsYXNzIGFuZCB0ZXN0X21ldGhv
ZCIgdG8gbWF0Y2ggYSBjZXJ0YWluCisgIG1ldGhvZCBpbiBhIGNlcnRhaW4gdGVzdCBjbGFzcy4K
KworMi4zLjMgKDIwMTItMTEtMDYpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUy
MTQgLSBwYXJzZSBtb2R1bGVzIHRoYXQgY29udGFpbiBzcGVjaWFsIG9iamVjdHMgbGlrZSBlLiBn
LgorICBmbGFzaydzIHJlcXVlc3Qgb2JqZWN0IHdoaWNoIGJsb3dzIHVwIG9uIGdldGF0dHIgYWNj
ZXNzIGlmIG5vIHJlcXVlc3QKKyAgaXMgYWN0aXZlLiB0aGFua3MgVGhvbWFzIFdhbGRtYW5uLgor
CistIGZpeCBpc3N1ZTIxMyAtIGFsbG93IHRvIHBhcmFtZXRyaXplIHdpdGggdmFsdWVzIGxpa2Ug
bnVtcHkgYXJyYXlzIHRoYXQKKyAgZG8gbm90IHN1cHBvcnQgYW4gX19lcV9fIG9wZXJhdG9yCisK
Ky0gZml4IGlzc3VlMjE1IC0gc3BsaXQgdGVzdF9weXRob24ub3JnIGludG8gbXVsdGlwbGUgZmls
ZXMKKworLSBmaXggaXNzdWUxNDggLSBAdW5pdHRlc3Quc2tpcCBvbiBjbGFzc2VzIGlzIG5vdyBy
ZWNvZ25pemVkIGFuZCBhdm9pZHMKKyAgY2FsbGluZyBzZXRVcENsYXNzL3RlYXJEb3duQ2xhc3Ms
IHRoYW5rcyBQYXZlbCBSZXBpbgorCistIGZpeCBpc3N1ZTIwOSAtIHJlaW50cm9kdWNlIHB5dGhv
bjIuNCBzdXBwb3J0IGJ5IGRlcGVuZGluZyBvbiBuZXdlcgorICBweWxpYiB3aGljaCByZS1pbnRy
b2R1Y2VkIHN0YXRlbWVudC1maW5kaW5nIGZvciBwcmUtQVNUIGludGVycHJldGVycworCistIG5v
c2Ugc3VwcG9ydDogb25seSBjYWxsIHNldHVwIGlmIGl0J3MgYSBjYWxsYWJsZSwgdGhhbmtzIEFu
ZHJldworICBUYXVtb2Vmb2xhdQorCistIGZpeCBpc3N1ZTIxOSAtIGFkZCBweTIuNC0zLjMgY2xh
c3NpZmllcnMgdG8gVFJPVkUgbGlzdAorCistIGluIHRyYWNlYmFja3MgKiwqKiBhcmcgdmFsdWVz
IGFyZSBub3cgc2hvd24gbmV4dCB0byBub3JtYWwgYXJndW1lbnRzCisgICh0aGFua3MgTWFudWVs
IEphY29iKQorCistIGZpeCBpc3N1ZTIxNyAtIHN1cHBvcnQgbW9jay5wYXRjaCB3aXRoIHB5dGVz
dCdzIGZpeHR1cmVzIC0gbm90ZSB0aGF0CisgIHlvdSBuZWVkIGVpdGhlciBtb2NrLTEuMC4xIG9y
IHRoZSBweXRob24zLjMgYnVpbHRpbiB1bml0dGVzdC5tb2NrLgorCistIGZpeCBpc3N1ZTEyNyAt
IGltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgcHl0ZXN0X2FkZG9wdGlvbigpIGFuZAorICBhZGQg
YSBgYGNvbmZpZy5nZXRvcHRpb24obmFtZSlgYCBoZWxwZXIgZnVuY3Rpb24gZm9yIGNvbnNpc3Rl
bmN5LgorCisyLjMuMiAoMjAxMi0xMC0yNSkKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBp
c3N1ZTIwOCBhbmQgZml4IGlzc3VlMjkgdXNlIG5ldyBweSB2ZXJzaW9uIHRvIGF2b2lkIGxvbmcg
cGF1c2VzCisgIHdoZW4gcHJpbnRpbmcgdHJhY2ViYWNrcyBpbiBsb25nIG1vZHVsZXMKKworLSBm
aXggaXNzdWUyMDUgLSBjb25mdGVzdHMgaW4gc3ViZGlycyBjdXN0b21pemluZworICBweXRlc3Rf
cHljb2xsZWN0X21ha2Vtb2R1bGUgYW5kIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0KKyAgbm93
IHdvcmsgcHJvcGVybHkKKworLSBmaXggdGVhcmRvd24tb3JkZXJpbmcgZm9yIHBhcmFtZXRyaXpl
ZCBzZXR1cHMKKworLSBmaXggaXNzdWUxMjcgLSBiZXR0ZXIgZG9jdW1lbnRhdGlvbiBmb3IgcHl0
ZXN0X2FkZG9wdGlvbgorICBhbmQgcmVsYXRlZCBvYmplY3RzLgorCistIGZpeCB1bml0dGVzdCBi
ZWhhdmlvdXI6IFRlc3RDYXNlLnJ1bnRlc3Qgb25seSBjYWxsZWQgaWYgdGhlcmUgYXJlCisgIHRl
c3QgbWV0aG9kcyBkZWZpbmVkCisKKy0gaW1wcm92ZSB0cmlhbCBzdXBwb3J0OiBkb24ndCBjb2xs
ZWN0IGl0cyBlbXB0eQorICB1bml0dGVzdC5UZXN0Q2FzZS5ydW5UZXN0KCkgbWV0aG9kCisKKy0g
InB5dGhvbiBzZXR1cC5weSB0ZXN0IiBub3cgd29ya3Mgd2l0aCBweXRlc3QgaXRzZWxmCisKKy0g
Zml4L2ltcHJvdmUgaW50ZXJuYWwvcGFja2FnaW5nIHJlbGF0ZWQgYml0czoKKworICAtIGV4Y2Vw
dGlvbiBtZXNzYWdlIGNoZWNrIG9mIHRlc3Rfbm9zZS5weSBub3cgcGFzc2VzIG9uIHB5dGhvbjMz
IGFzIHdlbGwKKworICAtIGlzc3VlMjA2IC0gZml4IHRlc3RfYXNzZXJ0cmV3cml0ZS5weSB0byB3
b3JrIHdoZW4gYSBnbG9iYWwKKyAgICBQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0xIGlzIHByZXNl
bnQKKworICAtIGFkZCB0b3guaW5pIHRvIHB5dGVzdCBkaXN0cmlidXRpb24gc28gdGhhdCBpZ25v
cmUtZGlycyBhbmQgb3RoZXJzIGNvbmZpZworICAgIGJpdHMgYXJlIHByb3Blcmx5IGRpc3RyaWJ1
dGVkIGZvciBtYWludGFpbmVycyB3aG8gcnVuIHB5dGVzdC1vd24gdGVzdHMKKworMi4zLjEgKDIw
MTItMTAtMjApCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUyMDIgLSBmaXggcmVn
cmVzc2lvbjogdXNpbmcgInNlbGYiIGZyb20gZml4dHVyZSBmdW5jdGlvbnMgbm93CisgIHdvcmtz
IGFzIGV4cGVjdGVkIChpdCdzIHRoZSBzYW1lICJzZWxmIiBpbnN0YW5jZSB0aGF0IGEgdGVzdCBt
ZXRob2QKKyAgd2hpY2ggdXNlcyB0aGUgZml4dHVyZSBzZWVzKQorCistIHNraXAgcGV4cGVjdCB1
c2luZyB0ZXN0cyAodGVzdF9wZGIucHkgbW9zdGx5KSBvbiBmcmVlYnNkKiBzeXN0ZW1zCisgIGR1
ZSB0byBwZXhwZWN0IG5vdCBzdXBwb3J0aW5nIGl0IHByb3Blcmx5IChoYW5naW5nKQorCistIGxp
bmsgdG8gd2ViIHBhZ2VzIGZyb20gLS1tYXJrZXJzIG91dHB1dCB3aGljaCBwcm92aWRlcyBoZWxw
IGZvcgorICBweXRlc3QubWFyay4qIHVzYWdlLgorCisyLjMuMCAoMjAxMi0xMC0xOSkKKz09PT09
PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTIwMiAtIGJldHRlciBhdXRvbWF0aWMgbmFtZXMg
Zm9yIHBhcmFtZXRyaXplZCB0ZXN0IGZ1bmN0aW9ucworLSBmaXggaXNzdWUxMzkgLSBpbnRyb2R1
Y2UgQHB5dGVzdC5maXh0dXJlIHdoaWNoIGFsbG93cyBkaXJlY3Qgc2NvcGluZworICBhbmQgcGFy
YW1ldHJpemF0aW9uIG9mIGZ1bmNhcmcgZmFjdG9yaWVzLgorLSBmaXggaXNzdWUxOTggLSBjb25m
dGVzdCBmaXh0dXJlcyB3ZXJlIG5vdCBmb3VuZCBvbiB3aW5kb3dzMzIgaW4gc29tZQorICBjaXJj
dW1zdGFuY2VzIHdpdGggbmVzdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzIGR1ZSB0byBwYXRoIG1h
bmlwdWxhdGlvbiBpc3N1ZXMKKy0gZml4IGlzc3VlMTkzIHNraXAgdGVzdCBmdW5jdGlvbnMgd2l0
aCB3ZXJlIHBhcmFtZXRyaXplZCB3aXRoIGVtcHR5CisgIHBhcmFtZXRlciBzZXRzCistIGZpeCBw
eXRob24zLjMgY29tcGF0LCBtb3N0bHkgcmVwb3J0aW5nIGJpdHMgdGhhdCBwcmV2aW91c2x5IGRl
cGVuZGVkCisgIG9uIGRpY3Qgb3JkZXJpbmcKKy0gaW50cm9kdWNlIHJlLW9yZGVyaW5nIG9mIHRl
c3RzIGJ5IHJlc291cmNlIGFuZCBwYXJhbWV0cml6YXRpb24gc2V0dXAKKyAgd2hpY2ggdGFrZXMg
cHJlY2VkZW5jZSB0byB0aGUgdXN1YWwgZmlsZS1vcmRlcmluZworLSBmaXggaXNzdWUxODUgbW9u
a2V5cGF0Y2hpbmcgdGltZS50aW1lIGRvZXMgbm90IGNhdXNlIHB5dGVzdCB0byBmYWlsCistIGZp
eCBpc3N1ZTE3MiBkdXBsaWNhdGUgY2FsbCBvZiBweXRlc3QuZml4dHVyZSBkZWNvcmF0b3JlZCBz
ZXR1cF9tb2R1bGUKKyAgZnVuY3Rpb25zCistIGZpeCBqdW5pdHhtbD1wYXRoIGNvbnN0cnVjdGlv
biBzbyB0aGF0IGlmIHRlc3RzIGNoYW5nZSB0aGUKKyAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9y
eSBhbmQgdGhlIHBhdGggaXMgYSByZWxhdGl2ZSBwYXRoCisgIGl0IGlzIGNvbnN0cnVjdGVkIGNv
cnJlY3RseSBmcm9tIHRoZSBvcmlnaW5hbCBjdXJyZW50IHdvcmtpbmcgZGlyLgorLSBmaXggInB5
dGhvbiBzZXR1cC5weSB0ZXN0IiBleGFtcGxlIHRvIGNhdXNlIGEgcHJvcGVyICJlcnJubyIgcmV0
dXJuCistIGZpeCBpc3N1ZTE2NSAtIGZpeCBicm9rZW4gZG9jIGxpbmtzIGFuZCBtZW50aW9uIHN0
YWNrb3ZlcmZsb3cgZm9yIEZBUQorLSBjYXRjaCB1bmljb2RlLWlzc3VlcyB3aGVuIHdyaXRpbmcg
ZmFpbHVyZSByZXByZXNlbnRhdGlvbnMKKyAgdG8gdGVybWluYWwgdG8gcHJldmVudCB0aGUgd2hv
bGUgc2Vzc2lvbiBmcm9tIGNyYXNoaW5nCistIGZpeCB4ZmFpbC9za2lwIGNvbmZ1c2lvbjogYSBz
a2lwLW1hcmsgb3IgYW4gaW1wZXJhdGl2ZSBweXRlc3Quc2tpcAorICB3aWxsIG5vdyB0YWtlIHBy
ZWNlZGVuY2UgYmVmb3JlIHhmYWlsLW1hcmtlcnMgYmVjYXVzZSB3ZQorICBjYW4ndCBkZXRlcm1p
bmUgeGZhaWwveHBhc3Mgc3RhdHVzIGluIGNhc2Ugb2YgYSBza2lwLiBzZWUgYWxzbzoKKyAgaHR0
cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTEwNTgyOC9pbi1weS10ZXN0LXdoZW4t
aS1leHBsaWNpdGx5LXNraXAtYS10ZXN0LXRoYXQtaXMtbWFya2VkLWFzLXhmYWlsLWhvdy1jYW4t
aS1nZXQKKworLSBhbHdheXMgcmVwb3J0IGluc3RhbGxlZCAzcmQgcGFydHkgcGx1Z2lucyBpbiB0
aGUgaGVhZGVyIG9mIGEgdGVzdCBydW4KKworLSBmaXggaXNzdWUxNjA6IGEgZmFpbGluZyBzZXR1
cCBvZiBhbiB4ZmFpbC1tYXJrZWQgdGVzdHMgc2hvdWxkCisgIGJlIHJlcG9ydGVkIGFzIHhmYWls
IChub3QgeHBhc3MpCisKKy0gZml4IGlzc3VlMTI4OiBzaG93IGNhcHR1cmVkIG91dHB1dCB3aGVu
IGNhcHN5cy9jYXBmZCBhcmUgdXNlZAorCistIGZpeCBpc3N1ZTE3OTogcHJvcGVybHkgc2hvdyB0
aGUgZGVwZW5kZW5jeSBjaGFpbiBvZiBmYWN0b3JpZXMKKworLSBwbHVnaW5tYW5hZ2VyLnJlZ2lz
dGVyKC4uLikgbm93IHJhaXNlcyBWYWx1ZUVycm9yIGlmIHRoZQorICBwbHVnaW4gaGFzIGJlZW4g
YWxyZWFkeSByZWdpc3RlcmVkIG9yIHRoZSBuYW1lIGlzIHRha2VuCisKKy0gZml4IGlzc3VlMTU5
OiBpbXByb3ZlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9mYXEuaHRtbAorICBlc3BlY2lhbGx5
IHdpdGggcmVzcGVjdCB0byB0aGUgIm1hZ2ljIiBoaXN0b3J5LCBhbHNvIG1lbnRpb24KKyAgcHl0
ZXN0LWRqYW5nbywgdHJpYWwgYW5kIHVuaXR0ZXN0IGludGVncmF0aW9uLgorCistIG1ha2UgcmVx
dWVzdC5rZXl3b3JkcyBhbmQgbm9kZS5rZXl3b3JkcyB3cml0YWJsZS4gIEFsbCBkZXNjZW5kYW50
CisgIGNvbGxlY3Rpb24gbm9kZXMgd2lsbCBzZWUga2V5d29yZCB2YWx1ZXMuICBLZXl3b3JkcyBh
cmUgZGljdGlvbmFyaWVzCisgIGNvbnRhaW5pbmcgbWFya2VycyBhbmQgb3RoZXIgaW5mby4KKwor
LSBmaXggaXNzdWUgMTc4OiB4bWwgYmluYXJ5IGVzY2FwZXMgYXJlIG5vdyB3cmFwcGVkIGluIHB5
LnhtbC5yYXcKKworLSBmaXggaXNzdWUgMTc2OiBjb3JyZWN0bHkgY2F0Y2ggdGhlIGJ1aWx0aW4g
QXNzZXJ0aW9uRXJyb3IKKyAgZXZlbiB3aGVuIHdlIHJlcGxhY2VkIEFzc2VydGlvbkVycm9yIHdp
dGggYSBzdWJjbGFzcyBvbiB0aGUKKyAgcHl0aG9uIGxldmVsCisKKy0gZmFjdG9yeSBkaXNjb3Zl
cnkgbm8gbG9uZ2VyIGZhaWxzIHdpdGggbWFnaWMgZ2xvYmFsIGNhbGxhYmxlcworICB0aGF0IHBy
b3ZpZGUgbm8gc2FuZSBfX2NvZGVfXyBvYmplY3QgKG1vY2suY2FsbCBmb3IgZXhhbXBsZSkKKwor
LSBmaXggaXNzdWUgMTgyOiB0ZXN0ZGlyLmlucHJvY2Vzc19ydW4gbm93IGNvbnNpZGVycyBwYXNz
ZWQgcGx1Z2lucworCistIGZpeCBpc3N1ZSAxODg6IGVuc3VyZSBzeXMuZXhjX2luZm8gaXMgY2xl
YXIgb24gcHl0aG9uMgorICAgICAgICAgICAgICAgICBiZWZvcmUgY2FsbGluZyBpbnRvIGEgdGVz
dAorCistIGZpeCBpc3N1ZSAxOTE6IGFkZCB1bml0dGVzdCBUZXN0Q2FzZSBydW5UZXN0IG1ldGhv
ZCBzdXBwb3J0CistIGZpeCBpc3N1ZSAxNTY6IG1vbmtleXBhdGNoIGNvcnJlY3RseSBoYW5kbGVz
IGNsYXNzIGxldmVsIGRlc2NyaXB0b3JzCisKKy0gcmVwb3J0aW5nIHJlZmluZW1lbnRzOgorCisg
IC0gcHl0ZXN0X3JlcG9ydF9oZWFkZXIgbm93IHJlY2VpdmVzIGEgInN0YXJ0ZGlyIiBzbyB0aGF0
CisgICAgeW91IGNhbiB1c2Ugc3RhcnRkaXIuYmVzdHJlbHBhdGgoeW91cnBhdGgpIHRvIHNob3cK
KyAgICBuaWNlIHJlbGF0aXZlIHBhdGgKKworICAtIGFsbG93IHBsdWdpbnMgdG8gaW1wbGVtZW50
IGJvdGggcHl0ZXN0X3JlcG9ydF9oZWFkZXIgYW5kCisgICAgcHl0ZXN0X3Nlc3Npb25zdGFydCAo
c2Vzc2lvbnN0YXJ0IGlzIGludm9rZWQgZmlyc3QpLgorCisgIC0gZG9uJ3Qgc2hvdyBkZXNlbGVj
dGVkIHJlYXNvbiBsaW5lIGlmIHRoZXJlIGlzIG5vbmUKKworICAtIHB5LnRlc3QgLXZ2IHdpbGwg
c2hvdyBhbGwgb2YgYXNzZXJ0IGNvbXBhcmlzb25zIGluc3RlYWQgb2YgdHJ1bmNhdGluZworCisy
LjIuNCAoMjAxMi0wNS0yMikKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBlcnJvciBtZXNz
YWdlIGZvciByZXdyaXR0ZW4gYXNzZXJ0aW9ucyBpbnZvbHZpbmcgdGhlICUgb3BlcmF0b3IKKy0g
Zml4IGlzc3VlIDEyNjogY29ycmVjdGx5IG1hdGNoIGFsbCBpbnZhbGlkIHhtbCBjaGFyYWN0ZXJz
IGZvciBqdW5pdHhtbAorICBiaW5hcnkgZXNjYXBlCistIGZpeCBpc3N1ZSB3aXRoIHVuaXR0ZXN0
OiBub3cgQHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZSBtYXJrZXJzIHNob3VsZAorICBiZSBwcm9j
ZXNzZWQgY29ycmVjdGx5ICh5b3UgY2FuIGFsc28gdXNlIEBweXRlc3QubWFyayBtYXJrZXJzKQor
LSBkb2N1bWVudCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBleHRlbmRlZCBkaXN0cmlidXRlL3NldHVw
dG9vbHMgdGVzdCBjb21tYW5kcworLSBmaXggaXNzdWUgMTQwOiBwcm9wZXJseSBnZXQgdGhlIHJl
YWwgZnVuY3Rpb25zCisgIG9mIGJvdW5kIGNsYXNzbWV0aG9kcyBmb3Igc2V0dXAvdGVhcmRvd25f
Y2xhc3MKKy0gZml4IGlzc3VlICMxNDE6IHN3aXRjaCBmcm9tIHRoZSBkZWNlYXNlZCBwYXN0ZS5w
b2Nvby5vcmcgdG8gYnBhc3RlLm5ldAorLSBmaXggaXNzdWUgIzE0MzogY2FsbCB1bmNvbmZpZ3Vy
ZS9zZXNzaW9uZmluaXNoIGFsd2F5cyB3aGVuCisgIGNvbmZpZ3VyZS9zZXNzaW9uc3RhcnQgd2hl
cmUgY2FsbGVkCistIGZpeCBpc3N1ZSAjMTQ0OiBiZXR0ZXIgbWFuZ2xlIHRlc3QgaWRzIHRvIGp1
bml0eG1sIGNsYXNzbmFtZXMKKy0gdXBncmFkZSBkaXN0cmlidXRlX3NldHVwLnB5IHRvIDAuNi4y
NworCisyLjIuMyAoMjAxMi0wMi0wNSkKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCB1cGxv
YWRlZCBwYWNrYWdlIHRvIG9ubHkgaW5jbHVkZSBuZWNlc3NhcnkgZmlsZXMKKworMi4yLjIgKDIw
MTItMDItMDUpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxMDE6IHdyb25nIGFy
Z3MgdG8gdW5pdHRlc3QuVGVzdENhc2UgdGVzdCBmdW5jdGlvbiBub3cKKyAgcHJvZHVjZSBiZXR0
ZXIgb3V0cHV0CistIGZpeCBpc3N1ZTEwMjogcmVwb3J0IG1vcmUgdXNlZnVsIGVycm9ycyBhbmQg
aGludHMgZm9yIHdoZW4gYQorICB0ZXN0IGRpcmVjdG9yeSB3YXMgcmVuYW1lZCBhbmQgc29tZSBw
eWMvX19weWNhY2hlX18gcmVtYWluCistIGZpeCBpc3N1ZTEwNjogYWxsb3cgcGFyYW1ldHJpemUg
dG8gYmUgYXBwbGllZCBtdWx0aXBsZSB0aW1lcworICBlLmcuIGZyb20gbW9kdWxlLCBjbGFzcyBh
bmQgYXQgZnVuY3Rpb24gbGV2ZWwuCistIGZpeCBpc3N1ZTEwNzogYWN0dWFsbHkgcGVyZm9ybSBz
ZXNzaW9uIHNjb3BlIGZpbmFsaXphdGlvbgorLSBkb24ndCBjaGVjayBpbiBwYXJhbWV0cml6ZSBp
ZiBpbmRpcmVjdCBwYXJhbWV0ZXJzIGFyZSBmdW5jYXJnIG5hbWVzCistIGFkZCBjaGRpciBtZXRo
b2QgdG8gbW9ua2V5cGF0Y2ggZnVuY2FyZworLSBmaXggY3Jhc2ggcmVzdWx0aW5nIGZyb20gY2Fs
bGluZyBtb25rZXlwYXRjaCB1bmRvIGEgc2Vjb25kIHRpbWUKKy0gZml4IGlzc3VlMTE1OiBtYWtl
IC0tY29sbGVjdG9ubHkgcm9idXN0IGFnYWluc3QgZWFybHkgZmFpbHVyZQorICAobWlzc2luZyBm
aWxlcy9kaXJlY3RvcmllcykKKy0gIi1xcSAtLWNvbGxlY3Rvbmx5IiBub3cgc2hvd3Mgb25seSBm
aWxlcyBhbmQgdGhlIG51bWJlciBvZiB0ZXN0cyBpbiB0aGVtCistICItcSAtLWNvbGxlY3Rvbmx5
IiBub3cgc2hvd3MgdGVzdCBpZHMKKy0gYWxsb3cgYWRkaW5nIG9mIGF0dHJpYnV0ZXMgdG8gdGVz
dCByZXBvcnRzIHN1Y2ggdGhhdCBpdCBhbHNvIHdvcmtzCisgIHdpdGggZGlzdHJpYnV0ZWQgdGVz
dGluZyAobm8gdXBncmFkZSBvZiBweXRlc3QteGRpc3QgbmVlZGVkKQorCisyLjIuMSAoMjAxMS0x
Mi0xNikKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTk5IChpbiBweXRlc3QgYW5k
IHB5KSBpbnRlcm5hbGxlcnJvcnMgd2l0aCByZXN1bHRsb2cgbm93CisgIHByb2R1Y2UgYmV0dGVy
IG91dHB1dCAtIGZpeGVkIGJ5IG5vcm1hbGl6aW5nIHB5dGVzdF9pbnRlcm5hbGVycm9yCisgIGlu
cHV0IGFyZ3VtZW50cy4KKy0gZml4IGlzc3VlOTcgLyB0cmFjZWJhY2sgaXNzdWVzIChpbiBweXRl
c3QgYW5kIHB5KSBpbXByb3ZlIHRyYWNlYmFjayBvdXRwdXQKKyAgaW4gY29uanVuY3Rpb24gd2l0
aCBqaW5qYTIgYW5kIGN5dGhvbiB3aGljaCBoYWNrIHRyYWNlYmFja3MKKy0gZml4IGlzc3VlOTMg
KGluIHB5dGVzdCBhbmQgcHl0ZXN0LXhkaXN0KSBhdm9pZCAiZGVsYXllZCB0ZWFyZG93bnMiOgor
ICB0aGUgZmluYWwgdGVzdCBpbiBhIHRlc3Qgbm9kZSB3aWxsIG5vdyBydW4gaXRzIHRlYXJkb3du
IGRpcmVjdGx5CisgIGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgdGhlIGVuZCBvZiB0aGUgc2Vzc2lv
bi4gVGhhbmtzIERhdmUgSHVudCBmb3IKKyAgdGhlIGdvb2QgcmVwb3J0aW5nIGFuZCBmZWVkYmFj
ay4gIFRoZSBweXRlc3RfcnVudGVzdF9wcm90b2NvbCBhcyB3ZWxsCisgIGFzIHRoZSBweXRlc3Rf
cnVudGVzdF90ZWFyZG93biBob29rcyBub3cgaGF2ZSAibmV4dGl0ZW0iIGF2YWlsYWJsZQorICB3
aGljaCB3aWxsIGJlIE5vbmUgaW5kaWNhdGluZyB0aGUgZW5kIG9mIHRoZSB0ZXN0IHJ1bi4KKy0g
Zml4IGNvbGxlY3Rpb24gY3Jhc2ggZHVlIHRvIHVua25vd24tc291cmNlIGNvbGxlY3RlZCBpdGVt
cywgdGhhbmtzCisgIHRvIFJhbGYgU2NobWl0dCAoZml4ZWQgYnkgZGVwZW5kaW5nIG9uIGEgbW9y
ZSByZWNlbnQgcHlsaWIpCisKKzIuMi4wICgyMDExLTExLTE4KQorPT09PT09PT09PT09PT09PT09
CisKKy0gZml4IGlzc3VlOTA6IGludHJvZHVjZSBlYWdlciB0ZWFyaW5nIGRvd24gb2YgdGVzdCBp
dGVtcyBzbyB0aGF0CisgIHRlYXJkb3duIGZ1bmN0aW9uIGFyZSBjYWxsZWQgZWFybGllci4KKy0g
YWRkIGFuIGFsbC1wb3dlcmZ1bCBtZXRhZnVuYy5wYXJhbWV0cml6ZSBmdW5jdGlvbiB3aGljaCBh
bGxvd3MgdG8KKyAgcGFyYW1ldHJpemUgdGVzdCBmdW5jdGlvbiBhcmd1bWVudHMgaW4gbXVsdGlw
bGUgc3RlcHMgYW5kIHRoZXJlZm9yZQorICBmcm9tIGluZGVwZW5kZW50IHBsdWdpbnMgYW5kIHBs
YWNlcy4KKy0gYWRkIGEgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIGhlbHBlciB3aGljaCBhbGxv
d3MgdG8gZWFzaWx5CisgIGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIHdpdGggZGlmZmVyZW50IGFyZ3Vt
ZW50IHZhbHVlcworLSBBZGQgZXhhbXBsZXMgdG8gdGhlICJwYXJhbWV0cml6ZSIgZXhhbXBsZSBw
YWdlLCBpbmNsdWRpbmcgYSBxdWljayBwb3J0CisgIG9mIFRlc3Qgc2NlbmFyaW9zIGFuZCB0aGUg
bmV3IHBhcmFtZXRyaXplIGZ1bmN0aW9uIGFuZCBkZWNvcmF0b3IuCistIGludHJvZHVjZSByZWdp
c3RyYXRpb24gZm9yICJweXRlc3QubWFyay4qIiBoZWxwZXJzIHZpYSBpbmktZmlsZXMKKyAgb3Ig
dGhyb3VnaCBwbHVnaW4gaG9va3MuICBBbHNvIGludHJvZHVjZSBhICItLXN0cmljdCIgb3B0aW9u
IHdoaWNoCisgIHdpbGwgdHJlYXQgdW5yZWdpc3RlcmVkIG1hcmtlcnMgYXMgZXJyb3JzCisgIGFs
bG93aW5nIHRvIGF2b2lkIHR5cG9zIGFuZCBtYWludGFpbiBhIHdlbGwgZGVzY3JpYmVkIHNldCBv
ZiBtYXJrZXJzCisgIGZvciB5b3VyIHRlc3Qgc3VpdGUuICBTZWUgZXhhcGxlcyBhdCBodHRwOi8v
cHl0ZXN0Lm9yZy9sYXRlc3QvbWFyay5odG1sCisgIGFuZCBpdHMgbGlua3MuCistIGlzc3VlNTA6
IGludHJvZHVjZSAiLW0gbWFya2VyIiBvcHRpb24gdG8gc2VsZWN0IHRlc3RzIGJhc2VkIG9uIG1h
cmtlcnMKKyAgKHRoaXMgaXMgYSBzdHJpY3RlciBhbmQgbW9yZSBwcmVkaWN0YWJsZSB2ZXJzaW9u
IG9mICctaycgaW4gdGhhdCAiLW0iCisgIG9ubHkgbWF0Y2hlcyBjb21wbGV0ZSBtYXJrZXJzIGFu
ZCBoYXMgbW9yZSBvYnZpb3VzIHJ1bGVzIGZvciBhbmQvb3IKKyAgc2VtYW50aWNzLgorLSBuZXcg
ZmVhdHVyZSB0byBoZWxwIG9wdGltaXppbmcgdGhlIHNwZWVkIG9mIHlvdXIgdGVzdHM6CisgIC0t
ZHVyYXRpb25zPU4gb3B0aW9uIGZvciBkaXNwbGF5aW5nIE4gc2xvd2VzdCB0ZXN0IGNhbGxzCisg
IGFuZCBzZXR1cC90ZWFyZG93biBtZXRob2RzLgorLSBmaXggaXNzdWU4NzogLS1wYXN0ZWJpbiBu
b3cgd29ya3Mgd2l0aCBweXRob24zCistIGZpeCBpc3N1ZTg5OiAtLXBkYiB3aXRoIHVuZXhwZWN0
ZWQgZXhjZXB0aW9ucyBpbiBkb2N0ZXN0IHdvcmsgbW9yZSBzZW5zaWJseQorLSBmaXggYW5kIGNs
ZWFudXAgcHl0ZXN0J3Mgb3duIHRlc3Qgc3VpdGUgdG8gbm90IGxlYWsgRkRzCistIGZpeCBpc3N1
ZTgzOiBsaW5rIHRvIGdlbmVyYXRlZCBmdW5jYXJnIGxpc3QKKy0gZml4IGlzc3VlNzQ6IHB5YXJn
IG1vZHVsZSBuYW1lcyBhcmUgbm93IGNoZWNrZWQgYWdhaW5zdCBpbXAuZmluZF9tb2R1bGUgZmFs
c2UgcG9zaXRpdmVzCistIGZpeCBjb21wYXRpYmlsaXR5IHdpdGggdHdpc3RlZC90cmlhbC0xMS4x
LjAgdXNlIGNhc2VzCistIHNpbXBsaWZ5IE5vZGUubGlzdGNoYWluCistIHNpbXBsaWZ5IGp1bml0
eG1sIG91dHB1dCBjb2RlIGJ5IHJlbHlpbmcgb24gcHkueG1sCistIGFkZCBzdXBwb3J0IGZvciBz
a2lwIHByb3BlcnRpZXMgb24gdW5pdHRlc3QgY2xhc3NlcyBhbmQgZnVuY3Rpb25zCisKKzIuMS4z
ICgyMDExLTEwLTE4KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNzk6IGFzc2Vy
dGlvbiByZXdyaXRpbmcgZmFpbGVkIG9uIHNvbWUgY29tcGFyaXNvbnMgaW4gYm9vbG9wcworLSBj
b3JyZWN0bHkgaGFuZGxlIHplcm8gbGVuZ3RoIGFyZ3VtZW50cyAoYSBsYSBweXRlc3QgJycpCist
IGZpeCBpc3N1ZTY3IC8ganVuaXR4bWwgbm93IGNvbnRhaW5zIGNvcnJlY3QgdGVzdCBkdXJhdGlv
bnMsIHRoYW5rcyByb25ueQorLSBmaXggaXNzdWU3NSAvIHNraXBwaW5nIHRlc3QgZmFpbHVyZSBv
biBqeXRob24KKy0gZml4IGlzc3VlNzcgLyBBbGxvdyBhc3NlcnRyZXByX2NvbXBhcmUgaG9vayB0
byBhcHBseSB0byBhIHN1YnNldCBvZiB0ZXN0cworCisyLjEuMiAoMjAxMS0wOS0yNCkKKz09PT09
PT09PT09PT09PT09PQorCistIGZpeCBhc3NlcnRpb24gcmV3cml0aW5nIG9uIGZpbGVzIHdpdGgg
d2luZG93cyBuZXdsaW5lcyBvbiBzb21lIFB5dGhvbiB2ZXJzaW9ucworLSByZWZpbmUgdGVzdCBk
aXNjb3ZlcnkgYnkgcGFja2FnZS9tb2R1bGUgbmFtZSAoLS1weWFyZ3MpLCB0aGFua3MgRmxvcmlh
biBNYXllcgorLSBmaXggaXNzdWU2OSAvIGFzc2VydGlvbiByZXdyaXRpbmcgZml4ZWQgb24gc29t
ZSBib29sZWFuIG9wZXJhdGlvbnMKKy0gZml4IGlzc3VlNjggLyBwYWNrYWdlcyBub3cgd29yayB3
aXRoIGFzc2VydGlvbiByZXdyaXRpbmcKKy0gZml4IGlzc3VlNjY6IHVzZSBkaWZmZXJlbnQgYXNz
ZXJ0aW9uIHJld3JpdGluZyBjYWNoZXMgd2hlbiB0aGUgLU8gb3B0aW9uIGlzIHBhc3NlZAorLSBk
b24ndCB0cnkgYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBKeXRob24sIHVzZSByZWludGVycAorCisy
LjEuMQorPT09PT0KKworLSBmaXggaXNzdWU2NCAvIHB5dGVzdC5zZXRfdHJhY2Ugbm93IHdvcmtz
IHdpdGhpbiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMgaG9va3MKKy0gZml4IGlzc3VlNjAgLyBmaXgg
ZXJyb3IgY29uZGl0aW9ucyBpbnZvbHZpbmcgdGhlIGNyZWF0aW9uIG9mIF9fcHljYWNoZV9fCist
IGZpeCBpc3N1ZTYzIC8gYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBpbnNlcnRzIGludm9sdmluZyBz
dHJpbmdzIGNvbnRhaW5pbmcgJyUnCistIGZpeCBhc3NlcnRpb24gcmV3cml0aW5nIG9uIGNhbGxz
IHdpdGggYSAqKiBhcmcKKy0gZG9uJ3QgY2FjaGUgcmV3cml0dGVuIG1vZHVsZXMgaWYgYnl0ZWNv
ZGUgZ2VuZXJhdGlvbiBpcyBkaXNhYmxlZAorLSBmaXggYXNzZXJ0aW9uIHJld3JpdGluZyBpbiBy
ZWFkLW9ubHkgZGlyZWN0b3JpZXMKKy0gZml4IGlzc3VlNTk6IHByb3ZpZGUgc3lzdGVtLW91dC9l
cnIgdGFncyBmb3IganVuaXR4bWwgb3V0cHV0CistIGZpeCBpc3N1ZTYxOiBhc3NlcnRpb24gcmV3
cml0aW5nIG9uIGJvb2xlYW4gb3BlcmF0aW9ucyB3aXRoIDMgb3IgbW9yZSBvcGVyYW5kcworLSB5
b3UgY2FuIG5vdyBidWlsZCBhIG1hbiBwYWdlIHdpdGggImNkIGRvYyA7IG1ha2UgbWFuIgorCisy
LjEuMCAoMjAxMS0wNy0wOSkKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTUzIGNh
bGwgbm9zZXN0eWxlIHNldHVwIGZ1bmN0aW9ucyB3aXRoIGNvcnJlY3Qgb3JkZXJpbmcKKy0gZml4
IGlzc3VlNTggYW5kIGlzc3VlNTk6IG5ldyBhc3NlcnRpb24gY29kZSBmaXhlcworLSBtZXJnZSBC
ZW5qYW1pbidzIGFzc2VydGlvbnJld3JpdGUgYnJhbmNoOiBub3cgYXNzZXJ0aW9ucworICBmb3Ig
dGVzdCBtb2R1bGVzIG9uIHB5dGhvbiAyLjYgYW5kIGFib3ZlIGFyZSBkb25lIGJ5IHJld3JpdGlu
ZworICB0aGUgQVNUIGFuZCBzYXZpbmcgdGhlIHB5YyBmaWxlIGJlZm9yZSB0aGUgdGVzdCBtb2R1
bGUgaXMgaW1wb3J0ZWQuCisgIHNlZSBkb2MvYXNzZXJ0LnR4dCBmb3IgbW9yZSBpbmZvLgorLSBm
aXggaXNzdWU0MzogaW1wcm92ZSBkb2N0ZXN0cyB3aXRoIGJldHRlciB0cmFjZWJhY2sgcmVwb3J0
aW5nIG9uCisgIHVuZXhwZWN0ZWQgZXhjZXB0aW9ucworLSBmaXggaXNzdWU0NzogdGltaW5nIG91
dHB1dCBpbiBqdW5pdHhtbCBmb3IgdGVzdCBjYXNlcyBpcyBub3cgY29ycmVjdAorLSBmaXggaXNz
dWU0ODogdHlwbyBpbiBNYXJrSW5mbyByZXByIGxlYWRpbmcgdG8gZXhjZXB0aW9uCistIGZpeCBp
c3N1ZTQ5OiBhdm9pZCBjb25mdXNpbmcgZXJyb3Igd2hlbiBpbml0aXphbGlhdGlvbiBwYXJ0aWFs
bHkgZmFpbHMKKy0gZml4IGlzc3VlNDQ6IGVudi91c2VybmFtZSBleHBhbnNpb24gZm9yIGp1bml0
eG1sIGZpbGUgcGF0aAorLSBzaG93IHJlbGVhc2VsZXZlbCBpbmZvcm1hdGlvbiBpbiB0ZXN0IHJ1
bnMgZm9yIHB5cHkKKy0gcmV3b3JrZWQgZG9jIHBhZ2VzIGZvciBiZXR0ZXIgbmF2aWdhdGlvbiBh
bmQgUERGIGdlbmVyYXRpb24KKy0gcmVwb3J0IEtleWJvYXJkSW50ZXJydXB0IGV2ZW4gaWYgaW50
ZXJydXB0ZWQgZHVyaW5nIHNlc3Npb24gc3RhcnR1cAorLSBmaXggaXNzdWUgMzUgLSBwcm92aWRl
IFBERiBkb2MgdmVyc2lvbiBhbmQgZG93bmxvYWQgbGluayBmcm9tIGluZGV4IHBhZ2UKKworMi4w
LjMgKDIwMTEtMDUtMTEpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUzODogbmlj
ZXIgdHJhY2ViYWNrcyBvbiBjYWxscyB0byBob29rcywgcGFydGljdWxhcmx5IGVhcmx5CisgIGNv
bmZpZ3VyZS9zZXNzaW9uc3RhcnQgb25lcworCistIGZpeCBtaXNzaW5nIHNraXAgcmVhc29uL21l
dGEgaW5mb3JtYXRpb24gaW4ganVuaXR4bWwgZmlsZXMsIHJlcG9ydGVkCisgIHZpYSBodHRwOi8v
bGlzdHMuaWR5bGwub3JnL3BpcGVybWFpbC90ZXN0aW5nLWluLXB5dGhvbi8yMDExLU1hcmNoLzAw
MzkyOC5odG1sCisKKy0gZml4IGlzc3VlMzQ6IGF2b2lkIGNvbGxlY3Rpb24gZmFpbHVyZSB3aXRo
ICJ0ZXN0IiBwcmVmaXhlZCBjbGFzc2VzCisgIGRlcml2aW5nIGZyb20gb2JqZWN0LgorCistIGRv
bid0IHJlcXVpcmUgemxpYiAoYW5kIG90aGVyIGxpYnMpIGZvciBnZW5zY3JpcHQgcGx1Z2luIHdp
dGhvdXQKKyAgLS1nZW5zY3JpcHQgYWN0dWFsbHkgYmVpbmcgdXNlZC4KKworLSBzcGVlZCB1cCBz
a2lwcyAoYnkgbm90IGRvaW5nIGEgZnVsbCB0cmFjZWJhY2sgcmVwcmVzZW50YXRpb24KKyAgaW50
ZXJuYWxseSkKKworLSBmaXggaXNzdWUzNzogYXZvaWQgaW52YWxpZCBjaGFyYWN0ZXJzIGluIGp1
bml0eG1sJ3Mgb3V0cHV0CisKKzIuMC4yICgyMDExLTAzLTA5KQorPT09PT09PT09PT09PT09PT09
CisKKy0gdGFja2xlIGlzc3VlMzIgLSBzcGVlZCB1cCB0ZXN0IHJ1bnMgb2YgdmVyeSBxdWljayB0
ZXN0IGZ1bmN0aW9ucworICBieSByZWR1Y2luZyB0aGUgcmVsYXRpdmUgb3ZlcmhlYWQKKworLSBm
aXggaXNzdWUzMCAtIGV4dGVuZGVkIHhmYWlsL3NraXBpZiBoYW5kbGluZyBhbmQgaW1wcm92ZWQg
cmVwb3J0aW5nLgorICBJZiB5b3UgaGF2ZSBhIHN5bnRheCBlcnJvciBpbiB5b3VyIHNraXAveGZh
aWwKKyAgZXhwcmVzc2lvbnMgeW91IG5vdyBnZXQgbmljZSBlcnJvciByZXBvcnRzLgorCisgIEFs
c28geW91IGNhbiBub3cgYWNjZXNzIG1vZHVsZSBnbG9iYWxzIGZyb20geGZhaWwvc2tpcGlmCisg
IGV4cHJlc3Npb25zIHNvIHRoYXQgdGhpcyBmb3IgZXhhbXBsZSB3b3JrcyBub3c6OgorCisgICAg
aW1wb3J0IHB5dGVzdAorICAgIGltcG9ydCBteW1vZHVsZQorICAgIEBweXRlc3QubWFyay5za2lw
aWYoIm15bW9kdWxlLl9fdmVyc2lvbl9fWzBdID09ICIxIikKKyAgICBkZWYgdGVzdF9mdW5jdGlv
bigpOgorICAgICAgICBwYXNzCisKKyAgVGhpcyB3aWxsIG5vdCBydW4gdGhlIHRlc3QgZnVuY3Rp
b24gaWYgdGhlIG1vZHVsZSdzIHZlcnNpb24gc3RyaW5nCisgIGRvZXMgbm90IHN0YXJ0IHdpdGgg
YSAiMSIuICBOb3RlIHRoYXQgc3BlY2lmeWluZyBhIHN0cmluZyBpbnN0ZWFkCisgIG9mIGEgYm9v
bGVhbiBleHByZXNzaW9ucyBhbGxvd3MgcHkudGVzdCB0byByZXBvcnQgbWVhbmluZ2Z1bCBpbmZv
cm1hdGlvbgorICB3aGVuIHN1bW1hcml6aW5nIGEgdGVzdCBydW4gYXMgdG8gd2hhdCBjb25kaXRp
b25zIGxlYWQgdG8gc2tpcHBpbmcKKyAgKG9yIHhmYWlsLWluZykgdGVzdHMuCisKKy0gZml4IGlz
c3VlMjggLSBzZXR1cF9tZXRob2QgYW5kIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyB3b3JrIHRvZ2V0
aGVyCisgIFRoZSBzZXR1cF9tZXRob2QgZml4dHVyZSBtZXRob2Qgbm93IGdldHMgY2FsbGVkIGFs
c28gZm9yCisgIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbnMgZ2VuZXJhdGVkIGZyb20gdGhlIHB5
dGVzdF9nZW5lcmF0ZV90ZXN0cworICBob29rLgorCistIGZpeCBpc3N1ZTI3IC0gY29sbGVjdG9u
bHkgYW5kIGtleXdvcmQtc2VsZWN0aW9uICgtaykgbm93IHdvcmsgdG9nZXRoZXIKKyAgQWxzbywg
aWYgeW91IGRvICJweS50ZXN0IC0tY29sbGVjdG9ubHkgLXEiIHlvdSBub3cgZ2V0IGEgZmxhdCBs
aXN0CisgIG9mIHRlc3QgaWRzIHRoYXQgeW91IGNhbiB1c2UgdG8gcGFzdGUgdG8gdGhlIHB5LnRl
c3QgY29tbWFuZGxpbmUKKyAgaW4gb3JkZXIgdG8gZXhlY3V0ZSBhIHBhcnRpY3VsYXIgdGVzdC4K
KworLSBmaXggaXNzdWUyNSBhdm9pZCByZXBvcnRlZCBwcm9ibGVtcyB3aXRoIC0tcGRiIGFuZCBw
eXRob24zLjIvZW5jb2RpbmdzIG91dHB1dAorCistIGZpeCBpc3N1ZTIzIC0gdG1wZGlyIGFyZ3Vt
ZW50IG5vdyB3b3JrcyBvbiBQeXRob24zLjIgYW5kIFdpbmRvd3NYUAorICBTdGFydGluZyB3aXRo
IFB5dGhvbjMuMiBvcy5zeW1saW5rIG1heSBiZSBzdXBwb3J0ZWQuIEJ5IHJlcXVpcmluZworICBh
IG5ld2VyIHB5IGxpYiB2ZXJzaW9uIHRoZSBweS5wYXRoLmxvY2FsKCkgaW1wbGVtZW50YXRpb24g
YWNrbm93bGVkZ2VzCisgIHRoaXMuCisKKy0gZml4ZWQgdHlwb3MgaW4gdGhlIGRvY3MgKHRoYW5r
cyBWaWN0b3IgR2FyY2lhLCBCcmlhbm5hIExhdWdoZXIpIGFuZCBwYXJ0aWN1bGFyCisgIHRoYW5r
cyB0byBMYXVyYSBDcmVpZ2h0b24gd2hvIGFsc28gcmV2aWV3ZWQgcGFydHMgb2YgdGhlIGRvY3Vt
ZW50YXRpb24uCisKKy0gZml4IHNsaWdodGx5IHdyb25nIG91dHB1dCBvZiB2ZXJib3NlIHByb2dy
ZXNzIHJlcG9ydGluZyBmb3IgY2xhc3NlcworICAodGhhbmtzIEFtYXVyeSkKKworLSBtb3JlIHBy
ZWNpc2UgKGF2b2lkaW5nIG9mKSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3Igbm9kZS5DbGFzc3xG
dW5jdGlvbiBhY2Nlc3NlcworCistIGF2b2lkIHN0ZCB1bml0dGVzdCBhc3NlcnRpb24gaGVscGVy
IGNvZGUgaW4gdHJhY2ViYWNrcyAodGhhbmtzIFJvbm55KQorCisyLjAuMSAoMjAxMS0wMi0wNykK
Kz09PT09PT09PT09PT09PT09PQorCistIHJlZmluZSBhbmQgdW5pZnkgaW5pdGlhbCBjYXB0dXJp
bmcgc28gdGhhdCBpdCB3b3JrcyBuaWNlbHkKKyAgZXZlbiBpZiB0aGUgbG9nZ2luZyBtb2R1bGUg
aXMgdXNlZCBvbiBhbiBlYXJseS1sb2FkZWQgY29uZnRlc3QucHkKKyAgZmlsZSBvciBwbHVnaW4u
CistIGFsbG93IHRvIG9taXQgIigpIiBpbiB0ZXN0IGlkcyB0byBhbGxvdyBmb3IgdW5pZm9ybSB0
ZXN0IGlkcworICBhcyBwcm9kdWNlZCBieSBBbGZyZWRvJ3MgbmljZSBweXRlc3QudmltIHBsdWdp
bi4KKy0gZml4IGlzc3VlMTIgLSBzaG93IHBsdWdpbiB2ZXJzaW9ucyB3aXRoICItLXZlcnNpb24i
IGFuZAorICAiLS10cmFjZWNvbmZpZyIgYW5kIGFsc28gZG9jdW1lbnQgaG93IHRvIGFkZCBleHRy
YSBpbmZvcm1hdGlvbgorICB0byByZXBvcnRpbmcgdGVzdCBoZWFkZXIKKy0gZml4IGlzc3VlMTcg
KGltcG9ydC0qIHJlcG9ydGluZyBpc3N1ZSBvbiBweXRob24zKSBieQorICByZXF1aXJpbmcgcHk+
MS40LjAgKDEuNC4xIGlzIGdvaW5nIHRvIGluY2x1ZGUgaXQpCistIGZpeCBpc3N1ZTEwIChudW1w
eSBhcnJheXMgdHJ1dGggY2hlY2tpbmcpIGJ5IHJlZmluaW5nCisgIGFzc2VydGlvbiBpbnRlcnBy
ZXRhdGlvbiBpbiBweSBsaWIKKy0gZml4IGlzc3VlMTU6IG1ha2Ugbm9zZSBjb21wYXRpYmlsaXR5
IHRlc3RzIGNvbXBhdGlibGUKKyAgd2l0aCBweXRob24zIChub3cgdGhhdCBub3NlLTEuMCBzdXBw
b3J0cyBweXRob24zKQorLSByZW1vdmUgc29tZXdoYXQgc3VycHJpc2luZyAic2FtZS1jb25mdGVz
dCIgZGV0ZWN0aW9uIGJlY2F1c2UKKyAgaXQgaWdub3JlcyBjb25mdGVzdC5weSB3aGVuIHRoZXkg
YXBwZWFyIGluIHNldmVyYWwgc3ViZGlycy4KKy0gaW1wcm92ZSBhc3NlcnRpb25zICgibm90IGlu
IiksIHRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZQorLSBpbXByb3ZlIGJlaGF2aW91ci93YXJuaW5n
cyB3aGVuIHJ1bm5pbmcgb24gdG9wIG9mICJweXRob24gLU9PIgorICAoYXNzZXJ0aW9ucyBhbmQg
ZG9jc3RyaW5ncyBhcmUgdHVybmVkIG9mZiwgbGVhZGluZyB0byBwb3RlbnRpYWwKKyAgZmFsc2Ug
cG9zaXRpdmVzKQorLSBpbnRyb2R1Y2UgYSBweXRlc3RfY21kbGluZV9wcm9jZXNzYXJncyhhcmdz
KSBob29rCisgIHRvIGFsbG93IGR5bmFtaWMgY29tcHV0YXRpb24gb2YgY29tbWFuZCBsaW5lIGFy
Z3VtZW50cy4KKyAgVGhpcyBmaXhlcyBhIHJlZ3Jlc3Npb24gYmVjYXVzZSBweS50ZXN0IHByaW9y
IHRvIDIuMAorICBhbGxvd2VkIHRvIHNldCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmcm9tIGNvbmZ0
ZXN0LnB5CisgIGZpbGVzIHdoaWNoIHNvIGZhciBweXRlc3QtMi4wIG9ubHkgYWxsb3dlZCBmcm9t
IGluaS1maWxlcyBub3cuCistIGZpeCBpc3N1ZTc6IGFzc2VydCBmYWlsdXJlcyBpbiBkb2N0ZXN0
IG1vZHVsZXMuCisgIHVuZXhwZWN0ZWQgZmFpbHVyZXMgaW4gZG9jdGVzdHMgd2lsbCBub3QgZ2Vu
ZXJhbGx5CisgIHNob3cgbmljZXIsIGkuZS4gd2l0aGluIHRoZSBkb2N0ZXN0IGZhaWxpbmcgY29u
dGV4dC4KKy0gZml4IGlzc3VlOTogc2V0dXAvdGVhcmRvd24gZnVuY3Rpb25zIGZvciBhbiB4ZmFp
bC1tYXJrZWQKKyAgdGVzdCB3aWxsIHJlcG9ydCBhcyB4ZmFpbCBpZiB0aGV5IGZhaWwgYnV0IHJl
cG9ydCBhcyBub3JtYWxseQorICBwYXNzaW5nIChub3QgeHBhc3NpbmcpIGlmIHRoZXkgc3VjY2Vl
ZC4gIFRoaXMgb25seSBpcyB0cnVlCisgIGZvciAiZGlyZWN0IiBzZXR1cC90ZWFyZG93biBpbnZv
Y2F0aW9ucyBiZWNhdXNlIHRlYXJkb3duX2NsYXNzLworICB0ZWFyZG93bl9tb2R1bGUgY2Fubm90
IGNsb3NlbHkgcmVsYXRlIHRvIGEgc2luZ2xlIHRlc3QuCistIGZpeCBpc3N1ZTE0OiBubyBsb2dn
aW5nIGVycm9ycyBhdCBwcm9jZXNzIGV4aXQKKy0gcmVmaW5lbWVudHMgdG8gImNvbGxlY3Rpbmci
IG91dHB1dCBvbiBub24tdHR5cworLSByZWZpbmUgaW50ZXJuYWwgcGx1Z2luIHJlZ2lzdHJhdGlv
biBhbmQgLS10cmFjZWNvbmZpZyBvdXRwdXQKKy0gaW50cm9kdWNlIGEgbWVjaGFuaXNtIHRvIHBy
ZXZlbnQvdW5yZWdpc3RlciBwbHVnaW5zIGZyb20gdGhlCisgIGNvbW1hbmQgbGluZSwgc2VlIGh0
dHA6Ly9weXRlc3Qub3JnL3BsdWdpbnMuaHRtbCNjbWR1bnJlZ2lzdGVyCistIGFjdGl2YXRlIHJl
c3VsdGxvZyBwbHVnaW4gYnkgZGVmYXVsdAorLSBmaXggcmVncmVzc2lvbiB3cnQgeWllbGRlZCB0
ZXN0cyB3aGljaCBkdWUgdG8gdGhlCisgIGNvbGxlY3Rpb24tYmVmb3JlLXJ1bm5pbmcgc2VtYW50
aWNzIHdlcmUgbm90CisgIHNldHVwIGFzIHdpdGggcHl0ZXN0IDEuMy40LiAgTm90ZSwgaG93ZXZl
ciwgdGhhdAorICB0aGUgcmVjb21tZW5kZWQgYW5kIG11Y2ggY2xlYW5lciB3YXkgdG8gZG8gdGVz
dAorICBwYXJhbWV0cmFpemF0aW9uIHJlbWFpbnMgdGhlICJweXRlc3RfZ2VuZXJhdGVfdGVzdHMi
CisgIG1lY2hhbmlzbSwgc2VlIHRoZSBkb2NzLgorCisyLjAuMCAoMjAxMC0xMS0yNSkKKz09PT09
PT09PT09PT09PT09PQorCistIHB5dGVzdC0yLjAgaXMgbm93IGl0cyBvd24gcGFja2FnZSBhbmQg
ZGVwZW5kcyBvbiBweWxpYi0yLjAKKy0gbmV3IGFiaWxpdHk6IHB5dGhvbiAtbSBweXRlc3QgLyBw
eXRob24gLW0gcHl0ZXN0Lm1haW4gYWJpbGl0eQorLSBuZXcgcHl0aG9uIGludm9jYXRpb246IHB5
dGVzdC5tYWluKGFyZ3MsIHBsdWdpbnMpIHRvIGxvYWQKKyAgc29tZSBjdXN0b20gcGx1Z2lucyBl
YXJseS4KKy0gdHJ5IGhhcmRlciB0byBydW4gdW5pdHRlc3QgdGVzdCBzdWl0ZXMgaW4gYSBtb3Jl
IGNvbXBhdGlibGUgbWFubmVyCisgIGJ5IGRlZmVycmluZyBzZXR1cC90ZWFyZG93biBzZW1hbnRp
Y3MgdG8gdGhlIHVuaXR0ZXN0IHBhY2thZ2UuCisgIGFsc28gd29yayBoYXJkZXIgdG8gcnVuIHR3
aXN0ZWQvdHJpYWwgYW5kIERqYW5nbyB0ZXN0cyB3aGljaAorICBzaG91bGQgbm93IGJhc2ljYWxs
eSB3b3JrIGJ5IGRlZmF1bHQuCistIGludHJvZHVjZSBhIG5ldyB3YXkgdG8gc2V0IGNvbmZpZyBv
cHRpb25zIHZpYSBpbmktc3R5bGUgZmlsZXMsCisgIGJ5IGRlZmF1bHQgc2V0dXAuY2ZnIGFuZCB0
b3guaW5pIGZpbGVzIGFyZSBzZWFyY2hlZC4gIFRoZSBvbGQKKyAgd2F5cyAoY2VydGFpbiBlbnZp
cm9ubWVudCB2YXJpYWJsZXMsIGR5bmFtaWMgY29uZnRlc3QucHkgcmVhZGluZworICBpcyByZW1v
dmVkKS4KKy0gYWRkIGEgbmV3ICItcSIgb3B0aW9uIHdoaWNoIGRlY3JlYXNlcyB2ZXJib3NpdHkg
YW5kIHByaW50cyBhIG1vcmUKKyAgbm9zZS91bml0dGVzdC1zdHlsZSAiZG90IiBvdXRwdXQuCist
IGZpeCBpc3N1ZTEzNSAtIG1hcmtzIG5vdyB3b3JrIHdpdGggdW5pdHRlc3QgdGVzdCBjYXNlcyBh
cyB3ZWxsCistIGZpeCBpc3N1ZTEyNiAtIGludHJvZHVjZSBweS50ZXN0LnNldF90cmFjZSgpIHRv
IHRyYWNlIGV4ZWN1dGlvbiB2aWEKKyAgUERCIGR1cmluZyB0aGUgcnVubmluZyBvZiB0ZXN0cyBl
dmVuIGlmIGNhcHR1cmluZyBpcyBvbmdvaW5nLgorLSBmaXggaXNzdWUxMjMgLSBuZXcgInB5dGhv
biAtbSBweS50ZXN0IiBpbnZvY2F0aW9uIGZvciBweS50ZXN0CisgIChyZXF1aXJlcyBQeXRob24g
Mi41IG9yIGFib3ZlKQorLSBmaXggaXNzdWUxMjQgLSBtYWtlIHJlcG9ydGluZyBtb3JlIHJlc2ls
aWVudCBhZ2FpbnN0IHRlc3RzIG9wZW5pbmcKKyAgZmlsZXMgb24gZmlsZWRlc2NyaXB0b3IgMSAo
c3Rkb3V0KS4KKy0gZml4IGlzc3VlMTA5IC0gc2libGluZyBjb25mdGVzdC5weSBmaWxlcyB3aWxs
IG5vdCBiZSBsb2FkZWQuCisgIChhbmQgRGlyZWN0b3J5IGNvbGxlY3RvcnMgY2Fubm90IGJlIGN1
c3RvbWl6ZWQgYW55bW9yZSBmcm9tIGEgRGlyZWN0b3J5J3MKKyAgY29uZnRlc3QucHkgLSB0aGlz
IG5lZWRzIHRvIGhhcHBlbiBhdCBsZWFzdCBvbmUgbGV2ZWwgdXApLgorLSBpbnRyb2R1Y2UgKGN1
c3RvbWl6YWJsZSkgYXNzZXJ0aW9uIGZhaWx1cmUgcmVwcmVzZW50YXRpb25zIGFuZCBlbmhhbmNl
CisgIG91dHB1dCBvbiBhc3NlcnRpb24gZmFpbHVyZXMgZm9yIGNvbXBhcmlzb25zIGFuZCBvdGhl
ciBjYXNlcyAoRmxvcmlzIEJydXlub29naGUpCistIG5vc2UtcGx1Z2luOiBwYXNzIHRocm91Z2gg
dHlwZS1zaWduYXR1cmUgZmFpbHVyZXMgaW4gc2V0dXAvdGVhcmRvd24KKyAgZnVuY3Rpb25zIGlu
c3RlYWQgb2Ygbm90IGNhbGxpbmcgdGhlbSAoRWQgU2luZ2xldG9uKQorLSByZW1vdmUgcHkudGVz
dC5jb2xsZWN0LkRpcmVjdG9yeSAoZm9sbG93cyBmcm9tIGEgbWFqb3IgcmVmYWN0b3JpbmcKKyAg
YW5kIHNpbXBsaWZpY2F0aW9uIG9mIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3MpCistIG1ham9ybHkg
cmVkdWNlIHB5LnRlc3QgY29yZSBjb2RlLCBzaGlmdCBmdW5jdGlvbi9weXRob24gdGVzdGluZyB0
byBvd24gcGx1Z2luCistIGZpeCBpc3N1ZTg4IChmaW5kaW5nIGN1c3RvbSB0ZXN0IG5vZGVzIGZy
b20gY29tbWFuZCBsaW5lIGFyZykKKy0gcmVmaW5lICd0bXBkaXInIGNyZWF0aW9uLCB3aWxsIG5v
dyBjcmVhdGUgYmFzZW5hbWVzIGJldHRlciBhc3NvY2lhdGVkCisgIHdpdGggdGVzdCBuYW1lcyAo
dGhhbmtzIFJvbm55KQorLSAieHBhc3MiICh1bmV4cGVjdGVkIHBhc3MpIHRlc3RzIGRvbid0IGNh
dXNlIGV4aXRjb2RlIT0wCistIGZpeCBpc3N1ZTEzMSAvIGlzc3VlNjAgLSBpbXBvcnRpbmcgZG9j
dGVzdHMgaW4gX19pbml0X18gZmlsZXMgdXNlZCBhcyBuYW1lc3BhY2UgcGFja2FnZXMKKy0gZml4
IGlzc3VlOTMgc3Rkb3V0L3N0ZGVyciBpcyBjYXB0dXJlZCB3aGlsZSBpbXBvcnRpbmcgY29uZnRl
c3QucHkKKy0gZml4IGJ1ZzogdW5pdHRlc3QgY29sbGVjdGVkIGZ1bmN0aW9ucyBub3cgYWxzbyBj
YW4gaGF2ZSAicHl0ZXN0bWFyayIKKyAgYXBwbGllZCBhdCBjbGFzcy9tb2R1bGUgbGV2ZWwKKy0g
YWRkIGFiaWxpdHkgdG8gdXNlICJjbGFzcyIgbGV2ZWwgZm9yIGNhY2hlZF9zZXR1cCBoZWxwZXIK
Ky0gZml4IHN0cmFuZ2VuZXNzOiBtYXJrLiogb2JqZWN0cyBhcmUgbm93IGltbXV0YWJsZSwgY3Jl
YXRlIG5ldyBpbnN0YW5jZXMKKworMS4zLjQgKDIwMTAtMDktMTQpCis9PT09PT09PT09PT09PT09
PT0KKworLSBmaXggaXNzdWUxMTE6IGltcHJvdmUgaW5zdGFsbCBkb2N1bWVudGF0aW9uIGZvciB3
aW5kb3dzCistIGZpeCBpc3N1ZTExOTogZml4IGN1c3RvbSBjb2xsZWN0YWJpbGl0eSBvZiBfX2lu
aXRfXy5weSBhcyBhIG1vZHVsZQorLSBmaXggaXNzdWUxMTY6IC0tZG9jdGVzdG1vZHVsZXMgd29y
ayB3aXRoIF9faW5pdF9fLnB5IGZpbGVzIGFzIHdlbGwKKy0gZml4IGlzc3VlMTE1OiB1bmlmeSBp
bnRlcm5hbCBleGNlcHRpb24gcGFzc3Rocm91Z2gvY2F0Y2hpbmcvR2VuZXJhdG9yRXhpdAorLSBm
aXggaXNzdWUxMTg6IG5ldyAtLXRiPW5hdGl2ZSBmb3IgcHJlc2VudGluZyBjcHl0aG9uLXN0YW5k
YXJkIGV4Y2VwdGlvbnMKKworMS4zLjMgKDIwMTAtMDctMzApCis9PT09PT09PT09PT09PT09PT0K
KworLSBmaXggaXNzdWUxMTM6IGFzc2VydGlvbiByZXByZXNlbnRhdGlvbiBwcm9ibGVtIHdpdGgg
dHJpcGxlLXF1b3RlZCBzdHJpbmdzCisgIChhbmQgcG9zc2libHkgb3RoZXIgY2FzZXMpCistIG1h
a2UgY29uZnRlc3QgbG9hZGluZyBkZXRlY3QgdGhhdCBhIGNvbmZ0ZXN0IGZpbGUgd2l0aCB0aGUg
c2FtZQorICBjb250ZW50IHdhcyBhbHJlYWR5IGxvYWRlZCwgYXZvaWRzIHN1cnByaXNlcyBpbiBu
ZXN0ZWQgZGlyZWN0b3J5IHN0cnVjdHVyZXMKKyAgd2hpY2ggY2FuIGJlIHByb2R1Y2VkIGUuZy4g
YnkgSHVkc29uLiBJdCBwcm9iYWJseSByZW1vdmVzIHRoZSBuZWVkIHRvIHVzZQorICAtLWNvbmZj
dXRkaXIgaW4gbW9zdCBjYXNlcy4KKy0gZml4IHRlcm1pbmFsIGNvbG9yaW5nIGZvciB3aW4zMgor
ICAodGhhbmtzIE1pY2hhZWwgRm9vcmQgZm9yIHJlcG9ydGluZykKKy0gZml4IHdlaXJkbmVzczog
bWFrZSB0ZXJtaW5hbCB3aWR0aCBkZXRlY3Rpb24gd29yayBvbiBzdGRvdXQgaW5zdGVhZCBvZiBz
dGRpbgorICAodGhhbmtzIEFybWluIFJvbmFjaGVyIGZvciByZXBvcnRpbmcpCistIHJlbW92ZSB0
cmFpbGluZyB3aGl0ZXNwYWNlIGluIGFsbCBweS90ZXh0IGRpc3RyaWJ1dGlvbiBmaWxlcworCisx
LjMuMiAoMjAxMC0wNy0wOCkKKz09PT09PT09PT09PT09PT09PQorCisqKk5ldyBmZWF0dXJlcyoq
CisKKy0gZml4IGlzc3VlMTAzOiAgaW50cm9kdWNlIHB5LnRlc3QucmFpc2VzIGFzIGNvbnRleHQg
bWFuYWdlciwgZXhhbXBsZXM6OgorCisgICAgd2l0aCBweS50ZXN0LnJhaXNlcyhaZXJvRGl2aXNp
b25FcnJvcik6CisgICAgICAgIHggPSAwCisgICAgICAgIDEgLyB4CisKKyAgICB3aXRoIHB5LnRl
c3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgY2FsbF9zb21ldGhp
bmcoKQorCisgICAgIyB5b3UgbWF5IGRvIGV4dHJhIGNoZWNrcyBvbiBleGNpbmZvLnZhbHVlfHR5
cGV8dHJhY2ViYWNrIGhlcmUKKworICAodGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdCkKKworLSBG
dW5jYXJnIGZhY3RvcmllcyBjYW4gbm93IGR5bmFtaWNhbGx5IGFwcGx5IGEgbWFya2VyIHRvIGEK
KyAgdGVzdCBpbnZvY2F0aW9uLiAgVGhpcyBpcyBmb3IgZXhhbXBsZSB1c2VmdWwgaWYgYSBmYWN0
b3J5CisgIHByb3ZpZGVzIHBhcmFtZXRlcnMgdG8gYSB0ZXN0IHdoaWNoIGFyZSBleHBlY3RlZC10
by1mYWlsOjoKKworICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fYXJnKHJlcXVlc3QpOgorICAgICAg
ICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5LnRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IGNv
bmZpZyIpKQorICAgICAgICAuLi4KKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAg
ICAgIC4uLgorCistIGltcHJvdmVkIGVycm9yIHJlcG9ydGluZyBvbiBjb2xsZWN0aW9uIGFuZCBp
bXBvcnQgZXJyb3JzLiBUaGlzIG1ha2VzCisgIHVzZSBvZiBhIG1vcmUgZ2VuZXJhbCBtZWNoYW5p
c20sIG5hbWVseSB0aGF0IGZvciBjdXN0b20gdGVzdCBpdGVtL2NvbGxlY3QKKyAgbm9kZXMgYGBu
b2RlLnJlcHJfZmFpbHVyZShleGNpbmZvKWBgIGlzIG5vdyB1bmlmb3JtbHkgY2FsbGVkIHNvIHRo
YXQgeW91IGNhbgorICBvdmVycmlkZSBpdCB0byByZXR1cm4gYSBzdHJpbmcgZXJyb3IgcmVwcmVz
ZW50YXRpb24gb2YgeW91ciBjaG9pY2UKKyAgd2hpY2ggaXMgZ29pbmcgdG8gYmUgcmVwb3J0ZWQg
YXMgYSAocmVkKSBzdHJpbmcuCisKKy0gaW50cm9kdWNlICctLWp1bml0cHJlZml4PVNUUicgb3B0
aW9uIHRvIHByZXBlbmQgYSBwcmVmaXgKKyAgdG8gYWxsIHJlcG9ydHMgaW4gdGhlIGp1bml0eG1s
IGZpbGUuCisKKyoqQnVnIGZpeGVzKioKKworLSBtYWtlIHRlc3RzIGFuZCB0aGUgYGBweXRlc3Rf
cmVjd2FybmBgIHBsdWdpbiBpbiBwYXJ0aWN1bGFyIGZ1bGx5IGNvbXBhdGlibGUKKyAgdG8gUHl0
aG9uMi43IChpZiB5b3UgdXNlIHRoZSBgYHJlY3dhcm5gYCBmdW5jYXJnIHdhcm5pbmdzIHdpbGwg
YmUgZW5hYmxlZCBzbyB0aGF0CisgIHlvdSBjYW4gcHJvcGVybHkgY2hlY2sgZm9yIHRoZWlyIGV4
aXN0ZW5jZSBpbiBhIGNyb3NzLXB5dGhvbiBtYW5uZXIpLgorLSByZWZpbmUgLS1wZGI6IGlnbm9y
ZSB4ZmFpbGVkIHRlc3RzLCB1bmlmeSBpdHMgVEItcmVwb3J0aW5nIGFuZAorICBkb24ndCBkaXNw
bGF5IGZhaWx1cmVzIGFnYWluIGF0IHRoZSBlbmQuCistIGZpeCBhc3NlcnRpb24gaW50ZXJwcmV0
YXRpb24gd2l0aCB0aGUgKiogb3BlcmF0b3IgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKy0g
Zml4IGlzc3VlMTA1IGFzc2lnbm1lbnQgb24gdGhlIHNhbWUgbGluZSBhcyBhIGZhaWxpbmcgYXNz
ZXJ0aW9uICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCistIGZpeCBpc3N1ZTEwNCBwcm9wZXIg
ZXNjYXBpbmcgZm9yIHRlc3QgbmFtZXMgaW4ganVuaXR4bWwgcGx1Z2luICh0aGFua3MgYW5vbnlt
b3VzKQorLSBmaXggaXNzdWU1NyAtZnwtLWxvb3BvbmZhaWwgdG8gd29yayB3aXRoIHhwYXNzaW5n
IHRlc3RzICh0aGFua3MgUm9ubnkpCistIGZpeCBpc3N1ZTkyIGNvbGxlY3Rvbmx5IHJlcG9ydGVy
IGFuZCAtLXBhc3RlYmluICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCistIGZpeCBweS5jb2Rl
LmNvbXBpbGUoc291cmNlKSB0byBnZW5lcmF0ZSB1bmlxdWUgZmlsZW5hbWVzCistIGZpeCBhc3Nl
cnRpb24gcmUtaW50ZXJwIHByb2JsZW1zIG9uIFB5UHksIGJ5IGRlZmVyaW5nIGNvZGUKKyAgY29t
cGlsYXRpb24gdG8gdGhlIChvdmVycmlkYWJsZSkgRnJhbWUuZXZhbCBjbGFzcy4gKHRoYW5rcyBB
bWF1cnkgRm9yZ2VvdCkKKy0gZml4IHB5LnBhdGgubG9jYWwucHlpbXBvcnQoKSB0byB3b3JrIHdp
dGggZGlyZWN0b3JpZXMKKy0gc3RyZWFtbGluZSBweS5wYXRoLmxvY2FsLm1rZHRlbXAgaW1wbGVt
ZW50YXRpb24gYW5kIHVzYWdlCistIGRvbid0IHByaW50IGVtcHR5IGxpbmVzIHdoZW4gc2hvd2lu
ZyBqdW5pdHhtbC1maWxlbmFtZQorLSBhZGQgb3B0aW9uYWwgYm9vbGVhbiBpZ25vcmVfZXJyb3Jz
IHBhcmFtZXRlciB0byBweS5wYXRoLmxvY2FsLnJlbW92ZQorLSBmaXggdGVybWluYWwgd3JpdGlu
ZyBvbiB3aW4zMi9weXRob24yLjQKKy0gcHkucHJvY2Vzcy5jbWRleGVjKCkgbm93IHRyaWVzIGhh
cmRlciB0byByZXR1cm4gcHJvcGVybHkgZW5jb2RlZCB1bmljb2RlIG9iamVjdHMKKyAgb24gYWxs
IHB5dGhvbiB2ZXJzaW9ucworLSBpbnN0YWxsIHBsYWluIHB5LnRlc3QvcHkud2hpY2ggc2NyaXB0
cyBhbHNvIGZvciBKeXRob24sIHRoaXMgaGVscHMgdG8KKyAgZ2V0IGNhbm9uaWNhbCBzY3JpcHQg
cGF0aHMgaW4gdmlydHVhbGVudiBzaXR1YXRpb25zCistIG1ha2UgcGF0aC5iZXN0cmVscGF0aChw
YXRoKSByZXR1cm4gIi4iLCBub3RlIHRoYXQgd2hlbiBjYWxsaW5nCisgIFguYmVzdHJlbHBhdGgg
dGhlIGFzc3VtcHRpb24gaXMgdGhhdCBYIGlzIGEgZGlyZWN0b3J5LgorLSBtYWtlIGluaXRpYWwg
Y29uZnRlc3QgZGlzY292ZXJ5IGlnbm9yZSAiLS0iIHByZWZpeGVkIGFyZ3VtZW50cworLSBmaXgg
cmVzdWx0bG9nIHBsdWdpbiB3aGVuIHVzZWQgaW4gYW4gbXVsdGljcHUvbXVsdGlob3N0IHhkaXN0
IHNpdHVhdGlvbgorICAodGhhbmtzIEpha3ViIEd1c3RhaykKKy0gcGVyZm9ybSBkaXN0cmlidXRl
ZCB0ZXN0aW5nIHJlbGF0ZWQgcmVwb3J0aW5nIGluIHRoZSB4ZGlzdC1wbHVnaW4KKyAgcmF0aGVy
IHRoYW4gaGF2aW5nIGRpc3QtcmVsYXRlZCBjb2RlIGluIHRoZSBnZW5lcmljIHB5LnRlc3QKKyAg
ZGlzdHJpYnV0aW9uCistIGZpeCBob21lZGlyIGRldGVjdGlvbiBvbiBXaW5kb3dzCistIHNoaXAg
ZGlzdHJpYnV0ZV9zZXR1cC5weSB2ZXJzaW9uIDAuNi4xMworCisxLjMuMSAoMjAxMC0wNS0yNSkK
Kz09PT09PT09PT09PT09PT09PQorCisqKk5ldyBmZWF0dXJlcyoqCisKKy0gaXNzdWU5MTogaW50
cm9kdWNlIG5ldyBweS50ZXN0LnhmYWlsKHJlYXNvbikgaGVscGVyCisgIHRvIGltcGVyYXRpdmVs
eSBtYXJrIGEgdGVzdCBhcyBleHBlY3RlZCB0byBmYWlsLiBDYW4KKyAgYmUgdXNlZCBmcm9tIHdp
dGhpbiBzZXR1cCBhbmQgdGVzdCBmdW5jdGlvbnMuIFRoaXMgaXMKKyAgdXNlZnVsIGVzcGVjaWFs
bHkgZm9yIHBhcmFtZXRyaXplZCB0ZXN0cyB3aGVuIGNlcnRhaW4KKyAgY29uZmlndXJhdGlvbnMg
YXJlIGV4cGVjdGVkLXRvLWZhaWwuICBJbiB0aGlzIGNhc2UgdGhlCisgIGRlY2xhcmF0aXZlIGFw
cHJvYWNoIHdpdGggdGhlIEBweS50ZXN0Lm1hcmsueGZhaWwgY2Fubm90CisgIGJlIHVzZWQgYXMg
aXQgd291bGQgbWFyayBhbGwgY29uZmlndXJhdGlvbnMgYXMgeGZhaWwuCisKKy0gaXNzdWUxMDI6
IGludHJvZHVjZSBuZXcgLS1tYXhmYWlsPU5VTSBvcHRpb24gdG8gc3RvcAorICB0ZXN0IHJ1bnMg
YWZ0ZXIgTlVNIGZhaWx1cmVzLiAgVGhpcyBpcyBhIGdlbmVyYWxpemF0aW9uCisgIG9mIHRoZSAn
LXgnIG9yICctLWV4aXRmaXJzdCcgb3B0aW9uIHdoaWNoIGlzIG5vdyBlcXVpdmFsZW50CisgIHRv
ICctLW1heGZhaWw9MScuICBCb3RoICcteCcgYW5kICctLW1heGZhaWwnIHdpbGwKKyAgbm93IGFs
c28gcHJpbnQgYSBsaW5lIG5lYXIgdGhlIGVuZCBpbmRpY2F0aW5nIHRoZSBJbnRlcnJ1cHRpb24u
CisKKy0gaXNzdWU4OTogYWxsb3cgcHkudGVzdC5tYXJrIGRlY29yYXRvcnMgdG8gYmUgdXNlZCBv
biBjbGFzc2VzCisgIChjbGFzcyBkZWNvcmF0b3JzIHdlcmUgaW50cm9kdWNlZCB3aXRoIHB5dGhv
bjIuNikgYW5kCisgIGFsc28gYWxsb3cgdG8gaGF2ZSBtdWx0aXBsZSBtYXJrZXJzIGFwcGxpZWQg
YXQgY2xhc3MvbW9kdWxlIGxldmVsCisgIGJ5IHNwZWNpZnlpbmcgYSBsaXN0LgorCistIGltcHJv
dmUgYW5kIHJlZmluZSBsZXR0ZXIgcmVwb3J0aW5nIGluIHRoZSBwcm9ncmVzcyBiYXI6CisgIC4g
IHBhc3MKKyAgZiAgZmFpbGVkIHRlc3QKKyAgcyAgc2tpcHBlZCB0ZXN0cyAocmVtaW5kZXI6IHVz
ZSBmb3IgZGVwZW5kZW5jeS9wbGF0Zm9ybSBtaXNtYXRjaCBvbmx5KQorICB4ICB4ZmFpbGVkIHRl
c3QgKHRlc3QgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gZmFpbCkKKyAgWCAgeHBhc3NlZCB0ZXN0ICh0
ZXN0IHRoYXQgd2FzIGV4cGVjdGVkIHRvIGZhaWwgYnV0IHBhc3NlZCkKKworICBZb3UgY2FuIHVz
ZSBhbnkgY29tYmluYXRpb24gb2YgJ2ZzeFgnIHdpdGggdGhlICctcicgZXh0ZW5kZWQKKyAgcmVw
b3J0aW5nIG9wdGlvbi4gVGhlIHhmYWlsL3hwYXNzIHJlc3VsdHMgd2lsbCBzaG93IHVwIGFzCisg
IHNraXBwZWQgdGVzdHMgaW4gdGhlIGp1bml0eG1sIG91dHB1dCAtIHdoaWNoIGFsc28gZml4ZXMK
KyAgaXNzdWU5OS4KKworLSBtYWtlIHB5LnRlc3QuY21kbGluZS5tYWluKCkgcmV0dXJuIHRoZSBl
eGl0c3RhdHVzIGluc3RlYWQgb2YgcmFpc2luZworICBTeXN0ZW1FeGl0IGFuZCBhbHNvIGFsbG93
IGl0IHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4gIFRoaXMgb2YKKyAgY291cnNlIHJlcXVp
cmVzIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBhbmQgdGVzdHMgYXJlIHByb3Blcmx5IHRlYXJlZAor
ICBkb3duIGFuZCBkb24ndCBoYXZlIGdsb2JhbCBzdGF0ZS4KKworKipCdWcgRml4ZXMqKgorCist
IGltcHJvdmVkIHRyYWNlYmFjayBwcmVzZW50YXRpb246CisgIC0gaW1wcm92ZWQgYW5kIHVuaWZp
ZWQgcmVwb3J0aW5nIGZvciAiLS10Yj1zaG9ydCIgb3B0aW9uCisgIC0gRXJyb3JzIGR1cmluZyB0
ZXN0IG1vZHVsZSBpbXBvcnRzIGFyZSBtdWNoIHNob3J0ZXIsICh1c2luZyAtLXRiPXNob3J0IHN0
eWxlKQorICAtIHJhaXNlcyBzaG93cyBzaG9ydGVyIG1vcmUgcmVsZXZhbnQgdHJhY2ViYWNrcwor
ICAtIC0tZnVsbHRyYWNlIG5vdyBtb3JlIHN5c3RlbWF0aWNhbGx5IG1ha2VzIHRyYWNlcyBsb25n
ZXIgLyBpbmhpYml0cyBjdXR0aW5nCisKKy0gaW1wcm92ZSBzdXBwb3J0IGZvciByYWlzZXMgYW5k
IG90aGVyIGR5bmFtaWNhbGx5IGNvbXBpbGVkIGNvZGUgYnkKKyAgbWFuaXB1bGF0aW5nIHB5dGhv
bidzIGxpbmVjYWNoZS5jYWNoZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cworICByYXRoZXIgaGFj
a3kgd2F5IG9mIGNyZWF0aW5nIGN1c3RvbSBjb2RlIG9iamVjdHMuICBUaGlzIG1ha2VzCisgIGl0
IHNlZW1sZXNzbHkgd29yayBvbiBKeXRob24gYW5kIFB5UHkgd2hlcmUgaXQgcHJldmlvdXNseSBk
aWRuJ3QuCisKKy0gZml4IGlzc3VlOTY6IG1ha2UgY2FwdHVyaW5nIG1vcmUgcmVzaWxpZW50IGFn
YWluc3QgQ29udHJvbC1DCisgIGludGVycnVwdGlvbnMgKGludm9sdmVkIHNvbWV3aGF0IHN1YnN0
YW50aWFsIHJlZmFjdG9yaW5nCisgIHRvIHRoZSB1bmRlcmx5aW5nIGNhcHR1cmluZyBmdW5jdGlv
bmFsaXR5IHRvIGF2b2lkIHJhY2UKKyAgY29uZGl0aW9ucykuCisKKy0gZml4IGNoYWluaW5nIG9m
IGNvbmRpdGlvbmFsIHNraXBpZi94ZmFpbCBkZWNvcmF0b3JzIC0gc28gaXQgd29ya3Mgbm93Cisg
IGFzIGV4cGVjdGVkIHRvIHVzZSBtdWx0aXBsZSBAcHkudGVzdC5tYXJrLnNraXBpZihjb25kaXRp
b24pIGRlY29yYXRvcnMsCisgIGluY2x1ZGluZyBzcGVjaWZpYyByZXBvcnRpbmcgd2hpY2ggb2Yg
dGhlIGNvbmRpdGlvbnMgbGVhZCB0byBza2lwcGluZy4KKworLSBmaXggaXNzdWU5NTogbGF0ZS1p
bXBvcnQgemxpYiBzbyB0aGF0IGl0J3Mgbm90IHJlcXVpcmVkCisgIGZvciBnZW5lcmFsIHB5LnRl
c3Qgc3RhcnR1cC4KKworLSBmaXggaXNzdWU5NDogbWFrZSByZXBvcnRpbmcgbW9yZSByb2J1c3Qg
YWdhaW5zdCBib2d1cyBzb3VyY2UgY29kZQorICAoYW5kIGludGVybmFsbHkgYmUgbW9yZSBjYXJl
ZnVsIHdoZW4gcHJlc2VudGluZyB1bmV4cGVjdGVkIGJ5dGUgc2VxdWVuY2VzKQorCisKKzEuMy4w
ICgyMDEwLTA1LTA1KQorPT09PT09PT09PT09PT09PT09CisKKy0gZGVwcmVjYXRlIC0tcmVwb3J0
IG9wdGlvbiBpbiBmYXZvdXIgb2YgYSBuZXcgc2hvcnRlciBhbmQgZWFzaWVyIHRvCisgIHJlbWVt
YmVyIC1yIG9wdGlvbjogaXQgdGFrZXMgYSBzdHJpbmcgYXJndW1lbnQgY29uc2lzdGluZyBvZiBh
bnkKKyAgY29tYmluYXRpb24gb2YgJ3hmc1gnIGNoYXJhY3RlcnMuICBUaGV5IHJlbGF0ZSB0byB0
aGUgc2luZ2xlIGNoYXJzCisgIHlvdSBzZWUgZHVyaW5nIHRoZSBkb3R0ZWQgcHJvZ3Jlc3MgcHJp
bnRpbmcgYW5kIHdpbGwgcHJpbnQgYW4gZXh0cmEgbGluZQorICBwZXIgdGVzdCBhdCB0aGUgZW5k
IG9mIHRoZSB0ZXN0IHJ1bi4gIFRoaXMgZXh0cmEgbGluZSBpbmRpY2F0ZXMgdGhlIGV4YWN0Cisg
IHBvc2l0aW9uIG9yIHRlc3QgSUQgdGhhdCB5b3UgZGlyZWN0bHkgcGFzdGUgdG8gdGhlIHB5LnRl
c3QgY21kbGluZSBpbiBvcmRlcgorICB0byByZS1ydW4gYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0g
YWxsb3cgZXh0ZXJuYWwgcGx1Z2lucyB0byByZWdpc3RlciBuZXcgaG9va3MgdmlhIHRoZSBuZXcK
KyAgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpIGhvb2suICBUaGUgbmV3IHJlbGVhc2Ug
b2YKKyAgdGhlIHB5dGVzdC14ZGlzdCBwbHVnaW4gZm9yIGRpc3RyaWJ1dGVkIGFuZCBsb29wb25m
YWlsaW5nCisgIHRlc3RpbmcgcmVxdWlyZXMgdGhpcyBmZWF0dXJlLgorCistIGFkZCBhIG5ldyBw
eXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKSBob29rIHRvIGFsbG93IHByb2plY3Rz
IGFuZAorICBwbHVnaW5zIHRvIGRlZmluZSBleGNsdXNpb24gYmVoYXZpb3VyIGZvciB0aGVpciBk
aXJlY3Rvcnkgc3RydWN0dXJlIC0KKyAgZm9yIGV4YW1wbGUgeW91IG1heSBkZWZpbmUgaW4gYSBj
b25mdGVzdC5weSB0aGlzIG1ldGhvZDo6CisKKyAgICAgICAgZGVmIHB5dGVzdF9pZ25vcmVfY29s
bGVjdChwYXRoKToKKyAgICAgICAgICAgIHJldHVybiBwYXRoLmNoZWNrKGxpbms9MSkKKworICB0
byBwcmV2ZW50IGV2ZW4gYSBjb2xsZWN0aW9uIHRyeSBvZiBhbnkgdGVzdHMgaW4gc3ltbGlua2Vk
IGRpcnMuCisKKy0gbmV3IHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQp
IGhvb2sgZm9yCisgIGFsbG93aW5nIGN1c3RvbWl6YXRpb24gb2YgdGhlIE1vZHVsZSBjb2xsZWN0
aW9uIG9iamVjdCBmb3IgYQorICBtYXRjaGluZyB0ZXN0IG1vZHVsZS4KKworLSBleHRlbmQgYW5k
IHJlZmluZSB4ZmFpbCBtZWNoYW5pc206CisgIGBgQHB5LnRlc3QubWFyay54ZmFpbChydW49RmFs
c2UpYGAgZG8gbm90IHJ1biB0aGUgZGVjb3JhdGVkIHRlc3QKKyAgYGBAcHkudGVzdC5tYXJrLnhm
YWlsKHJlYXNvbj0iLi4uIilgYCBwcmludHMgdGhlIHJlYXNvbiBzdHJpbmcgaW4geGZhaWwgc3Vt
bWFyaWVzCisgIHNwZWNpZnlpbmcgYGAtLXJ1bnhmYWlsYGAgb24gY29tbWFuZCBsaW5lIHZpcnR1
YWxseSBpZ25vcmVzIHhmYWlsIG1hcmtlcnMKKworLSBleHBvc2UgKHByZXZpb3VzbHkgaW50ZXJu
YWwpIGNvbW1vbmx5IHVzZWZ1bCBtZXRob2RzOgorICBweS5pby5nZXRfdGVybWluYWxfd2l0aCgp
IC0+IHJldHVybiB0ZXJtaW5hbCB3aWR0aAorICBweS5pby5hbnNpX3ByaW50KC4uLikgLT4gcHJp
bnQgY29sb3JlZC9ib2xkIHRleHQgb24gbGludXgvd2luMzIKKyAgcHkuaW8uc2FmZXJlcHIob2Jq
KSAtPiByZXR1cm4gbGltaXRlZCByZXByZXNlbnRhdGlvbiBzdHJpbmcKKworLSBleHBvc2UgdGVz
dCBvdXRjb21lIHJlbGF0ZWQgZXhjZXB0aW9ucyBhcyBweS50ZXN0LnNraXAuRXhjZXB0aW9uLAor
ICBweS50ZXN0LnJhaXNlcy5FeGNlcHRpb24gZXRjLiwgdXNlZnVsIG1vc3RseSBmb3IgcGx1Z2lu
cworICBkb2luZyBzcGVjaWFsIG91dGNvbWUgaW50ZXJwcmV0YXRpb24vdHdlYWtpbmcKKworLSAo
aXNzdWU4NSkgZml4IGp1bml0eG1sIHBsdWdpbiB0byBoYW5kbGUgdGVzdHMgd2l0aCBub24tYXNj
aWkgb3V0cHV0CisKKy0gZml4L3JlZmluZSBweXRob24zIGNvbXBhdGliaWxpdHkgKHRoYW5rcyBC
ZW5qYW1pbiBQZXRlcnNvbikKKworLSBmaXhlcyBmb3IgbWFraW5nIHRoZSBqeXRob24vd2luMzIg
Y29tYmluYXRpb24gd29yaywgbm90ZSBob3dldmVyOgorICBqeXRob24yLjUuMS93aW4zMiBkb2Vz
IG5vdCBwcm92aWRlIGEgY29tbWFuZCBsaW5lIGxhdW5jaGVyLCBzZWUKKyAgaHR0cDovL2J1Z3Mu
anl0aG9uLm9yZy9pc3N1ZTE0OTEgLiBTZWUgcHlsaWIgaW5zdGFsbCBkb2N1bWVudGF0aW9uCisg
IGZvciBob3cgdG8gd29yayBhcm91bmQuCisKKy0gZml4ZXMgZm9yIGhhbmRsaW5nIG9mIHVuaWNv
ZGUgZXhjZXB0aW9uIHZhbHVlcyBhbmQgdW5wcmludGFibGUgb2JqZWN0cworCistIChpc3N1ZTg3
KSBmaXggdW5ib3VuZGxvY2FsIGVycm9yIGluIGFzc2VydGlvbm9sZCBjb2RlCisKKy0gKGlzc3Vl
ODYpIGltcHJvdmUgZG9jdW1lbnRhdGlvbiBmb3IgbG9vcG9uZmFpbGluZworCistIHJlZmluZSBJ
TyBjYXB0dXJpbmc6IHN0ZGluLXJlZGlyZWN0IHBzZXVkby1maWxlIG5vdyBoYXMgYSBOT1AgY2xv
c2UoKSBtZXRob2QKKworLSBzaGlwIGRpc3RyaWJ1dGVfc2V0dXAucHkgdmVyc2lvbiAwLjYuMTAK
KworLSBhZGRlZCBsaW5rcyB0byB0aGUgbmV3IGNhcHR1cmVsb2cgYW5kIGNvdmVyYWdlIHBsdWdp
bnMKKworCisxLjIuMCAoMjAxMC0wMS0xOCkKKz09PT09PT09PT09PT09PT09PQorCistIHJlZmlu
ZWQgdXNhZ2UgYW5kIG9wdGlvbnMgZm9yICJweS5jbGVhbnVwIjo6CisKKyAgICBweS5jbGVhbnVw
ICAgICAjIHJlbW92ZSAiKi5weWMiIGFuZCAiKiRweS5jbGFzcyIgKGp5dGhvbikgZmlsZXMKKyAg
ICBweS5jbGVhbnVwIC1lIC5zd3AgLWUgLmNhY2hlICMgYWxzbyByZW1vdmUgZmlsZXMgd2l0aCB0
aGVzZSBleHRlbnNpb25zCisgICAgcHkuY2xlYW51cCAtcyAgIyByZW1vdmUgImJ1aWxkIiBhbmQg
ImRpc3QiIGRpcmVjdG9yeSBuZXh0IHRvIHNldHVwLnB5IGZpbGVzCisgICAgcHkuY2xlYW51cCAt
ZCAgIyBhbHNvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworICAgIHB5LmNsZWFudXAgLWEgICMg
c3lub255bSBmb3IgIi1zIC1kIC1lICdwaXAtbG9nLnR4dCciCisgICAgcHkuY2xlYW51cCAtbiAg
IyBkcnkgcnVuLCBvbmx5IHNob3cgd2hhdCB3b3VsZCBiZSByZW1vdmVkCisKKy0gYWRkIGEgbmV3
IG9wdGlvbiAicHkudGVzdCAtLWZ1bmNhcmdzIiB3aGljaCBzaG93cyBhdmFpbGFibGUgZnVuY2Fy
Z3MKKyAgYW5kIHRoZWlyIGhlbHAgc3RyaW5ncyAoZG9jc3RyaW5ncyBvbiB0aGVpciByZXNwZWN0
aXZlIGZhY3RvcnkgZnVuY3Rpb24pCisgIGZvciBhIGdpdmVuIHRlc3QgcGF0aAorCistIGRpc3Bs
YXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sgaWYgYSBmdW5jYXJnIGxvb2t1cCBmYWls
cworCistIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBmaWxlcyBpbiBub24tZG90IGZpcnN0LWxl
dmVsIHN1YiBkaXJlY3Rvcmllcy4KKyAgYWxsb3dzIHRvIGNvbnZlbmllbnRseSBrZWVwIGFuZCBh
Y2Nlc3MgdGVzdC1yZWxhdGVkIG9wdGlvbnMgaW4gYSBgYHRlc3RgYAorICBzdWJkaXIgYW5kIHN0
aWxsIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKworLSBmaXggaXNzdWU2NzogbmV3IHN1cGVy
LXNob3J0IHRyYWNlYmFjay1wcmludGluZyBvcHRpb246ICItLXRiPWxpbmUiIHdpbGwgcHJpbnQg
YSBzaW5nbGUgbGluZSBmb3IgZWFjaCBmYWlsaW5nIChweXRob24pIHRlc3QgaW5kaWNhdGluZyBp
dHMgZmlsZW5hbWUsIGxpbmVubyBhbmQgdGhlIGZhaWx1cmUgdmFsdWUKKworLSBmaXggaXNzdWU3
ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVsIHRlYXJkb3duIGZ1bmN0aW9ucyBldmVuIGlmIHRo
ZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVkLiAgVGhpcyBpbmNsdWRlcyByZWZpbmVtZW50cyBm
b3IgY2FsbGluZyBzZXR1cF9tb2R1bGUvY2xhc3MgZnVuY3Rpb25zCisgIHdoaWNoIHdpbGwgbm93
IG9ubHkgYmUgY2FsbGVkIG9uY2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIHdo
ZXJlIHRoZXknZCBiZSBjYWxsZWQKKyAgbXVsdGlwbGUgdGltZXMgaWYgdGhleSByYWlzZSBhbiBl
eGNlcHRpb24gKGluY2x1ZGluZyBhIFNraXBwZWQgZXhjZXB0aW9uKS4gIEFueSBleGNlcHRpb24K
KyAgd2lsbCBiZSByZS1jb3JkZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCBhbGwgdGVzdHMgaW4gdGhl
IGFjY29yZGluZyBtb2R1bGUvY2xhc3Mgc2NvcGUuCisKKy0gZml4IGlzc3VlNjM6IGFzc3VtZSA8
NDAgY29sdW1ucyB0byBiZSBhIGJvZ3VzIHRlcm1pbmFsIHdpZHRoLCBkZWZhdWx0IHRvIDgwCisK
Ky0gZml4IHBkYiBkZWJ1Z2dpbmcgdG8gYmUgaW4gdGhlIGNvcnJlY3QgZnJhbWUgb24gcmFpc2Vz
LXJlbGF0ZWQgZXJyb3JzCisKKy0gdXBkYXRlIGFwaXBrZy5weSB0byBmaXggYW4gaXNzdWUgd2hl
cmUgcmVjdXJzaXZlIGltcG9ydHMgbWlnaHQKKyAgdW5uZWNlc3NhcmlseSBicmVhayBpbXBvcnRp
bmcKKworLSBmaXggcGx1Z2luIGxpbmtzCisKKzEuMS4xICgyMDA5LTExLTI0KQorPT09PT09PT09
PT09PT09PT09CisKKy0gbW92ZWQgZGlzdC9sb29wb25mYWlsaW5nIGZyb20gcHkudGVzdCBjb3Jl
IGludG8gYSBuZXcKKyAgc2VwYXJhdGVseSByZWxlYXNlZCBweXRlc3QteGRpc3QgcGx1Z2luLgor
CistIG5ldyBqdW5pdHhtbCBwbHVnaW46IC0tanVuaXR4bWw9cGF0aCB3aWxsIGdlbmVyYXRlIGEg
anVuaXQgc3R5bGUgeG1sIGZpbGUKKyAgd2hpY2ggaXMgcHJvY2Vzc2FibGUgZS5nLiBieSB0aGUg
SHVkc29uIENJIHN5c3RlbS4KKworLSBuZXcgb3B0aW9uOiAtLWdlbnNjcmlwdD1wYXRoIHdpbGwg
Z2VuZXJhdGUgYSBzdGFuZGFsb25lIHB5LnRlc3Qgc2NyaXB0CisgIHdoaWNoIHdpbGwgbm90IG5l
ZWQgYW55IGxpYnJhcmllcyBpbnN0YWxsZWQuICB0aGFua3MgdG8gUmFsZiBTY2htaXR0LgorCist
IG5ldyBvcHRpb246IC0taWdub3JlIHdpbGwgcHJldmVudCBzcGVjaWZpZWQgcGF0aCBmcm9tIGNv
bGxlY3Rpb24uCisgIENhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMuCisKKy0gbmV3IG9w
dGlvbjogLS1jb25mY3V0ZGlyPWRpciB3aWxsIG1ha2UgcHkudGVzdCBvbmx5IGNvbnNpZGVyIGNv
bmZ0ZXN0CisgIGZpbGVzIHRoYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgZGlyLgor
CistIG5ldyBmdW5jYXJnOiAicHl0ZXN0Y29uZmlnIiBpcyB0aGUgcHl0ZXN0IGNvbmZpZyBvYmpl
Y3QgZm9yIGFjY2VzcworICB0byBjb21tYW5kIGxpbmUgYXJncyBhbmQgY2FuIG5vdyBiZSBlYXNp
bHkgdXNlZCBpbiBhIHRlc3QuCisKKy0gaW5zdGFsbCBgYHB5LnRlc3RgYCBhbmQgYGBweS53aGlj
aGBgIHdpdGggYSBgYC0kVkVSU0lPTmBgIHN1ZmZpeCB0bworICBkaXNhbWJpZ3VhdGUgYmV0d2Vl
biBQeXRob24zLCBweXRob24yLlgsIEp5dGhvbiBhbmQgUHlQeSBpbnN0YWxsZWQgdmVyc2lvbnMu
CisKKy0gbmV3ICJweXRlc3Rjb25maWciIGZ1bmNhcmcgYWxsb3dzIGFjY2VzcyB0byB0ZXN0IGNv
bmZpZyBvYmplY3QKKworLSBuZXcgInB5dGVzdF9yZXBvcnRfaGVhZGVyIiBob29rIGNhbiByZXR1
cm4gYWRkaXRpb25hbCBsaW5lcworICB0byBiZSBkaXNwbGF5ZWQgYXQgdGhlIGhlYWRlciBvZiBh
IHRlc3QgcnVuLgorCistIChleHBlcmltZW50YWwpIGFsbG93ICJweS50ZXN0IHBhdGg6Om5hbWUx
OjpuYW1lMjo6Li4uIiBmb3IgcG9pbnRpbmcKKyAgdG8gYSB0ZXN0IHdpdGhpbiBhIHRlc3QgY29s
bGVjdGlvbiBkaXJlY3RseS4gIFRoaXMgbWlnaHQgZXZlbnR1YWxseQorICBldm9sdmUgYXMgYSBm
dWxsIHN1YnN0aXR1dGUgdG8gIi1rIiBzcGVjaWZpY2F0aW9ucy4KKworLSBzdHJlYW1saW5lZCBw
bHVnaW4gbG9hZGluZzogb3JkZXIgaXMgbm93IGFzIGRvY3VtZW50ZWQgaW4KKyAgY3VzdG9taXpl
Lmh0bWw6IHNldHVwdG9vbHMsIEVOViwgY29tbWFuZGxpbmUsIGNvbmZ0ZXN0LgorICBhbHNvIHNl
dHVwdG9vbHMgZW50cnkgcG9pbnQgbmFtZXMgYXJlIHR1cm5lZCB0byBjYW5vbmljYWwgbmFtZWVz
ICgicHl0ZXN0XyoiKQorCistIGF1dG9tYXRpY2FsbHkgc2tpcCB0ZXN0cyB0aGF0IG5lZWQgJ2Nh
cGZkJyBidXQgaGF2ZSBubyBvcy5kdXAKKworLSBhbGxvdyBweXRlc3RfZ2VuZXJhdGVfdGVzdHMg
dG8gYmUgZGVmaW5lZCBpbiBjbGFzc2VzIGFzIHdlbGwKKworLSBkZXByZWNhdGUgdXNhZ2Ugb2Yg
J2Rpc2FibGVkJyBhdHRyaWJ1dGUgaW4gZmF2b3VyIG9mIHB5dGVzdG1hcmsKKy0gZGVwcmVjYXRl
IGRlZmluaXRpb24gb2YgRGlyZWN0b3J5LCBNb2R1bGUsIENsYXNzIGFuZCBGdW5jdGlvbiBub2Rl
cworICBpbiBjb25mdGVzdC5weSBmaWxlcy4gIFVzZSBweXRlc3QgY29sbGVjdCBob29rcyBpbnN0
ZWFkLgorCistIGNvbGxlY3Rpb24vaXRlbSBub2RlIHNwZWNpZmljIHJ1bnRlc3QvY29sbGVjdCBo
b29rcyBhcmUgb25seSBjYWxsZWQgZXhhY3RseQorICBvbiBtYXRjaGluZyBjb25mdGVzdC5weSBm
aWxlcywgaS5lLiBvbmVzIHdoaWNoIGFyZSBleGFjdGx5IGJlbG93CisgIHRoZSBmaWxlc3lzdGVt
IHBhdGggb2YgYW4gaXRlbQorCistIGNoYW5nZTogdGhlIGZpcnN0IHB5dGVzdF9jb2xsZWN0X2Rp
cmVjdG9yeSBob29rIHRvIHJldHVybiBzb21ldGhpbmcKKyAgd2lsbCBub3cgcHJldmVudCBmdXJ0
aGVyIGhvb2tzIHRvIGJlIGNhbGxlZC4KKworLSBjaGFuZ2U6IGZpZ2xlYWYgcGx1Z2luIG5vdyBy
ZXF1aXJlcyAtLWZpZ2xlYWYgdG8gcnVuLiAgQWxzbworICBjaGFuZ2UgaXRzIGxvbmcgY29tbWFu
ZCBsaW5lIG9wdGlvbnMgdG8gYmUgYSBiaXQgc2hvcnRlciAoc2VlIHB5LnRlc3QgLWgpLgorCist
IGNoYW5nZTogcHl0ZXN0IGRvY3Rlc3QgcGx1Z2luIGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1bHQg
YW5kIGhhcyBhCisgIG5ldyBvcHRpb24gLS1kb2N0ZXN0LWdsb2IgdG8gc2V0IGEgcGF0dGVybiBm
b3IgZmlsZSBtYXRjaGVzLgorCistIGNoYW5nZTogcmVtb3ZlIGludGVybmFsIHB5Ll8qIGhlbHBl
ciB2YXJzLCBvbmx5IGtlZXAgcHkuX3B5ZGlyCisKKy0gcm9idXN0aWZ5IGNhcHR1cmluZyB0byBz
dXJ2aXZlIGlmIGN1c3RvbSBweXRlc3RfcnVudGVzdF9zZXR1cAorICBjb2RlIGZhaWxlZCBhbmQg
cHJldmVudGVkIHRoZSBjYXB0dXJpbmcgc2V0dXAgY29kZSBmcm9tIHJ1bm5pbmcuCisKKy0gbWFr
ZSBweS50ZXN0LiogaGVscGVycyBwcm92aWRlZCBieSBkZWZhdWx0IHBsdWdpbnMgdmlzaWJsZSBl
YXJseSAtCisgIHdvcmtzIHRyYW5zcGFyZW50bHkgYm90aCBmb3IgcHlkb2MgYW5kIGZvciBpbnRl
cmFjdGl2ZSBzZXNzaW9ucworICB3aGljaCB3aWxsIHJlZ3VsYXJseSBzZWUgZS5nLiBweS50ZXN0
Lm1hcmsgYW5kIHB5LnRlc3QuaW1wb3J0b3Jza2lwLgorCistIHNpbXBsaWZ5IGludGVybmFsIHBs
dWdpbiBtYW5hZ2VyIG1hY2hpbmVyeQorLSBzaW1wbGlmeSBpbnRlcm5hbCBjb2xsZWN0aW9uIHRy
ZWUgYnkgaW50cm9kdWNpbmcgYSBSb290Q29sbGVjdG9yIG5vZGUKKworLSBmaXggYXNzZXJ0IHJl
aW50ZXJwcmVhdGlvbiB0aGF0IHNlZXMgYSBjYWxsIGNvbnRhaW5pbmcgImtleXdvcmQ9Li4uIgor
CistIGZpeCBpc3N1ZTY2OiBpbnZva2UgcHl0ZXN0X3Nlc3Npb25zdGFydCBhbmQgcHl0ZXN0X3Nl
c3Npb25maW5pc2gKKyAgaG9va3Mgb24gc2xhdmVzIGR1cmluZyBkaXN0LXRlc3RpbmcsIHJlcG9y
dCBtb2R1bGUvc2Vzc2lvbiB0ZWFyZG93bgorICBob29rcyBjb3JyZWN0bHkuCisKKy0gZml4IGlz
c3VlNjU6IHByb3Blcmx5IGhhbmRsZSBkaXN0LXRlc3RpbmcgaWYgbm8KKyAgZXhlY25ldC9weSBs
aWIgaW5zdGFsbGVkIHJlbW90ZWx5LgorCistIHNraXAgc29tZSBpbnN0YWxsLXRlc3RzIGlmIG5v
IGV4ZWNuZXQgaXMgYXZhaWxhYmxlCisKKy0gZml4IGRvY3MsIGZpeCBpbnRlcm5hbCBiaW4vIHNj
cmlwdCBnZW5lcmF0aW9uCisKKworMS4xLjAgKDIwMDktMTEtMDUpCis9PT09PT09PT09PT09PT09
PT0KKworLSBpbnRyb2R1Y2UgYXV0b21hdGljIHBsdWdpbiByZWdpc3RyYXRpb24gdmlhICdweXRl
c3QxMScKKyAgZW50cnlwb2ludHMgdmlhIHNldHVwdG9vbHMnIHBrZ19yZXNvdXJjZXMuaXRlcl9l
bnRyeV9wb2ludHMKKworLSBmaXggcHkudGVzdCBkaXN0LXRlc3RpbmcgdG8gd29yayB3aXRoIGV4
ZWNuZXQgPj0gMS4wLjBiNAorCistIHJlLWludHJvZHVjZSBweS50ZXN0LmNtZGxpbmUubWFpbigp
IGZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorCistIHN2biBwYXRoczogZml4IGEg
YnVnIHdpdGggcGF0aC5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSkgZm9yIHN2biBwYXRocywKKyAgYWxs
b3cgJyUnIGluIHN2biBwYXRocywgbWFrZSBzdm53Yy51cGRhdGUoKSBkZWZhdWx0IHRvIGludGVy
YWN0aXZlIG1vZGUKKyAgbGlrZSBpbiAxLjAueCBhbmQgYWRkIHN2bndjLnVwZGF0ZShpbnRlcmFj
dGl2ZT1GYWxzZSkgdG8gaW5oaWJpdCBpbnRlcmFjdGlvbi4KKworLSByZWZpbmUgZGlzdHJpYnV0
ZWQgdGFyYmFsbCB0byBjb250YWluIHRlc3QgYW5kIG5vIHB5YyBmaWxlcworCistIHRyeSBoYXJk
ZXIgdG8gaGF2ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgcHkuY29tcGF0LiogYWNjZXNzZXMK
KyAgcmVwb3J0IGEgY29ycmVjdCBsb2NhdGlvbgorCisxLjAuMworPT09PT0KKworKiBhZGp1c3Qg
YW5kIGltcHJvdmUgZG9jcworCisqIHJlbW92ZSBweS5yZXN0IHRvb2wgYW5kIGludGVybmFsIG5h
bWVzcGFjZSAtIGl0IHdhcworICBuZXZlciByZWFsbHkgYWR2ZXJ0aXNlZCBhbmQgY2FuIHN0aWxs
IGJlIHVzZWQgd2l0aAorICB0aGUgb2xkIHJlbGVhc2UgaWYgbmVlZGVkLiAgSWYgdGhlcmUgaXMg
aW50ZXJlc3QKKyAgaXQgY291bGQgYmUgcmV2aXZlZCBpbnRvIGl0cyBvd24gdG9vbCBpIGd1ZXNz
LgorCisqIGZpeCBpc3N1ZTQ4IGFuZCBpc3N1ZTU5OiByYWlzZSBhbiBFcnJvciBpZiB0aGUgbW9k
dWxlCisgIGZyb20gYW4gaW1wb3J0ZWQgdGVzdCBmaWxlIGRvZXMgbm90IHNlZW0gdG8gY29tZSBm
cm9tCisgIHRoZSBmaWxlcGF0aCAtIGF2b2lkcyAic2FtZS1uYW1lIiBjb25mdXNpb24gdGhhdCBo
YXMKKyAgYmVlbiByZXBvcnRlZCByZXBlYXRlZGx5CisKKyogbWVyZ2VkIFJvbm55J3Mgbm9zZS1j
b21wYXRpYmlsaXR5IGhhY2tzOiBub3cKKyAgbm9zZS1zdHlsZSBzZXR1cF9tb2R1bGUoKSBhbmQg
c2V0dXAoKSBmdW5jdGlvbnMgYXJlCisgIHN1cHBvcnRlZAorCisqIGludHJvZHVjZSBnZW5lcmFs
aXplZCBweS50ZXN0Lm1hcmsgZnVuY3Rpb24gbWFya2luZworCisqIHJlc2h1ZmZsZSAvIHJlZmlu
ZSBjb21tYW5kIGxpbmUgZ3JvdXBpbmcKKworKiBkZXByZWNhdGUgcGFyc2VyLmFkZGdyb3VwIGlu
IGZhdm91ciBvZiBnZXRncm91cCB3aGljaCBjcmVhdGVzIG9wdGlvbiBncm91cAorCisqIGFkZCAt
LXJlcG9ydCBjb21tYW5kIGxpbmUgb3B0aW9uIHRoYXQgYWxsb3dzIHRvIGNvbnRyb2wgc2hvd2lu
ZyBvZiBza2lwcGVkL3hmYWlsZWQgc2VjdGlvbnMKKworKiBnZW5lcmFsaXplZCBza2lwcGluZzog
YSBuZXcgd2F5IHRvIG1hcmsgcHl0aG9uIGZ1bmN0aW9ucyB3aXRoIHNraXBpZiBvciB4ZmFpbAor
ICBhdCBmdW5jdGlvbiwgY2xhc3MgYW5kIG1vZHVsZXMgbGV2ZWwgYmFzZWQgb24gcGxhdGZvcm0g
b3Igc3lzLW1vZHVsZSBhdHRyaWJ1dGVzLgorCisqIGV4dGVuZCBweS50ZXN0Lm1hcmsgZGVjb3Jh
dG9yIHRvIGFsbG93IGZvciBwb3NpdGlvbmFsIGFyZ3MKKworKiBpbnRyb2R1Y2UgYW5kIHRlc3Qg
InB5LmNsZWFudXAgLWQiIHRvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworCisqIGZpeCBpc3N1
ZSAjNTkgLSByb2J1c3RpZnkgdW5pdHRlc3QgdGVzdCBjb2xsZWN0aW9uCisKKyogbWFrZSBicHl0
aG9uL2hlbHAgaW50ZXJhY3Rpb24gd29yayBieSBhZGRpbmcgYW4gX19hbGxfXyBhdHRyaWJ1dGUK
KyAgdG8gQXBpTW9kdWxlLCBjbGVhbnVwIGluaXRwa2cKKworKiB1c2UgTUlUIGxpY2Vuc2UgZm9y
IHB5bGliLCBhZGQgc29tZSBjb250cmlidXRvcnMKKworKiByZW1vdmUgcHkuZXhlY25ldCBjb2Rl
IGFuZCBzdWJzdGl0dXRlIGFsbCB1c2FnZXMgd2l0aCAnZXhlY25ldCcgcHJvcGVyCisKKyogZml4
IGlzc3VlNTAgLSBjYWNoZWRfc2V0dXAgbm93IGNhY2hlcyBtb3JlIHRvIGV4cGVjdGF0aW9ucwor
ICBmb3IgdGVzdCBmdW5jdGlvbnMgd2l0aCBtdWx0aXBsZSBhcmd1bWVudHMuCisKKyogbWVyZ2Ug
SmFya28ncyBmaXhlcywgaXNzdWUgIzQ1IGFuZCAjNDYKKworKiBhZGQgdGhlIGFiaWxpdHkgdG8g
c3BlY2lmeSBhIHBhdGggZm9yIHB5Lmxvb2t1cCB0byBzZWFyY2ggaW4KKworKiBmaXggYSBmdW5j
YXJnIGNhY2hlZF9zZXR1cCBidWcgcHJvYmFibHkgb25seSBvY2N1cnJpbmcKKyAgaW4gZGlzdHJp
YnV0ZWQgdGVzdGluZyBhbmQgIm1vZHVsZSIgc2NvcGUgd2l0aCB0ZWFyZG93bi4KKworKiBtYW55
IGZpeGVzIGFuZCBjaGFuZ2VzIGZvciBtYWtpbmcgdGhlIGNvZGUgYmFzZSBweXRob24zIGNvbXBh
dGlibGUsCisgIG1hbnkgdGhhbmtzIHRvIEJlbmphbWluIFBldGVyc29uIGZvciBoZWxwaW5nIHdp
dGggdGhpcy4KKworKiBjb25zb2xpZGF0ZSBidWlsdGlucyBpbXBsZW1lbnRhdGlvbiB0byBiZSBj
b21wYXRpYmxlIHdpdGggPj0yLjMsCisgIGFkZCBoZWxwZXJzIHRvIGVhc2Uga2VlcGluZyAyIGFu
ZCAzayBjb21wYXRpYmxlIGNvZGUKKworKiBkZXByZWNhdGUgcHkuY29tcGF0LmRvY3Rlc3R8c3Vi
cHJvY2Vzc3x0ZXh0d3JhcHxvcHRwYXJzZQorCisqIGRlcHJlY2F0ZSBweS5tYWdpYy5hdXRvcGF0
aCwgcmVtb3ZlIHB5L21hZ2ljIGRpcmVjdG9yeQorCisqIG1vdmUgcHl0ZXN0IGFzc2VydGlvbiBo
YW5kbGluZyB0byBweS9jb2RlIGFuZCBhIHB5dGVzdF9hc3NlcnRpb24KKyAgcGx1Z2luLCBhZGQg
Ii0tbm8tYXNzZXJ0IiBvcHRpb24sIGRlcHJlY2F0ZSBweS5tYWdpYyBuYW1lc3BhY2VzCisgIGlu
IGZhdm91ciBvZiAobGVzcykgcHkuY29kZSBvbmVzLgorCisqIGNvbnNvbGlkYXRlIGFuZCBjbGVh
bnVwIHB5L2NvZGUgY2xhc3NlcyBhbmQgZmlsZXMKKworKiBjbGVhbnVwIHB5L21pc2MsIG1vdmUg
dGVzdHMgdG8gYmluLWZvci1kaXN0CisKKyogaW50cm9kdWNlIGRlbGF0dHIvZGVsaXRlbS9kZWxl
bnYgbWV0aG9kcyB0byBweS50ZXN0J3MgbW9ua2V5cGF0Y2ggZnVuY2FyZworCisqIGNvbnNvbGlk
YXRlIHB5LmxvZyBpbXBsZW1lbnRhdGlvbiwgcmVtb3ZlIG9sZCBhcHByb2FjaC4KKworKiBpbnRy
b2R1Y2UgcHkuaW8uVGV4dElPIGFuZCBweS5pby5CeXRlc0lPIGZvciBkaXN0aW5ndWlzaGluZyBi
ZXR3ZWVuCisgIHRleHQvdW5pY29kZSBhbmQgYnl0ZS1zdHJlYW1zICh1c2VzIHVuZGVybHlpbmcg
c3RhbmRhcmQgbGliIGlvLioKKyAgaWYgYXZhaWxhYmxlKQorCisqIG1ha2UgcHkudW5pdHRlc3Rf
Y29udmVydCBoZWxwZXIgc2NyaXB0IGF2YWlsYWJsZSB3aGljaCBjb252ZXJ0cyAidW5pdHRlc3Qu
cHkiCisgIHN0eWxlIGZpbGVzIGludG8gdGhlIHNpbXBsZXIgYXNzZXJ0L2RpcmVjdC10ZXN0LWNs
YXNzZXMgcHkudGVzdC9ub3NldGVzdHMKKyAgc3R5bGUuICBUaGUgc2NyaXB0IHdhcyB3cml0dGVu
IGJ5IExhdXJhIENyZWlnaHRvbi4KKworKiBzaW1wbGlmaWVkIGludGVybmFsIGxvY2FscGF0aCBp
bXBsZW1lbnRhdGlvbgorCisxLjAuMiAoMjAwOS0wOC0yNykKKz09PT09PT09PT09PT09PT09PQor
CisqIGZpeGluZyBwYWNrYWdpbmcgaXNzdWVzLCB0cmlnZ2VyZWQgYnkgZmVkb3JhIHJlZGhhdCBw
YWNrYWdpbmcsCisgIGFsc28gYWRkZWQgZG9jLCBleGFtcGxlcyBhbmQgY29udHJpYiBkaXJzIHRv
IHRoZSB0YXJiYWxsLgorCisqIGFkZGVkIGEgZG9jdW1lbnRhdGlvbiBsaW5rIHRvIHRoZSBuZXcg
ZGphbmdvIHBsdWdpbi4KKworMS4wLjEgKDIwMDktMDgtMTkpCis9PT09PT09PT09PT09PT09PT0K
KworKiBhZGRlZCBhICdweXRlc3Rfbm9zZScgcGx1Z2luIHdoaWNoIGhhbmRsZXMgbm9zZS5Ta2lw
VGVzdCwKKyAgbm9zZS1zdHlsZSBmdW5jdGlvbi9tZXRob2QvZ2VuZXJhdG9yIHNldHVwL3RlYXJk
b3duIGFuZAorICB0cmllcyB0byByZXBvcnQgZnVuY3Rpb25zIGNvcnJlY3RseS4KKworKiBjYXB0
dXJpbmcgb2YgdW5pY29kZSB3cml0ZXMgb3IgZW5jb2RlZCBzdHJpbmdzIHRvIHN5cy5zdGRvdXQv
ZXJyCisgIHdvcmsgYmV0dGVyLCBhbHNvIHRlcm1pbmFsd3JpdGluZyB3YXMgYWRhcHRlZCBhbmQg
c29tZXdoYXQKKyAgdW5pZmllZCBiZXR3ZWVuIHdpbmRvd3MgYW5kIGxpbnV4LgorCisqIGltcHJv
dmVkIGRvY3VtZW50YXRpb24gbGF5b3V0IGFuZCBjb250ZW50IGEgbG90CisKKyogYWRkZWQgYSAi
LS1oZWxwLWNvbmZpZyIgb3B0aW9uIHRvIHNob3cgY29uZnRlc3QucHkgLyBFTlYtdmFyIG5hbWVz
IGZvcgorICBhbGwgbG9uZ29wdCBjbWRsaW5lIG9wdGlvbnMsIGFuZCBzb21lIHNwZWNpYWwgY29u
ZnRlc3QucHkgdmFyaWFibGVzLgorICByZW5hbWVkICdjb25mX2NhcHR1cmUnIGNvbmZ0ZXN0IHNl
dHRpbmcgdG8gJ29wdGlvbl9jYXB0dXJlJyBhY2NvcmRpbmdseS4KKworKiBmaXggaXNzdWUgIzI3
OiBiZXR0ZXIgcmVwb3J0aW5nIG9uIG5vbi1jb2xsZWN0YWJsZSBpdGVtcyBnaXZlbiBvbiBjb21t
YW5kbGluZQorICAoZS5nLiBweWMgZmlsZXMpCisKKyogZml4IGlzc3VlICMzMzogYWRkZWQgLS12
ZXJzaW9uIGZsYWcgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKworKiBmaXggaXNzdWUgIzMy
OiBhZGRpbmcgc3VwcG9ydCBmb3IgImluY29tcGxldGUiIHBhdGhzIHRvIHdjcGF0aC5zdGF0dXMo
KQorCisqICJUZXN0IiBwcmVmaXhlZCBjbGFzc2VzIGFyZSAqbm90KiBjb2xsZWN0ZWQgYnkgZGVm
YXVsdCBhbnltb3JlIGlmIHRoZXkKKyAgaGF2ZSBhbiBfX2luaXRfXyBtZXRob2QKKworKiBtb25r
ZXlwYXRjaCBzZXRlbnYoKSBub3cgYWNjZXB0cyBhICJwcmVwZW5kIiBwYXJhbWV0ZXIKKworKiBp
bXByb3ZlZCByZXBvcnRpbmcgb2YgY29sbGVjdGlvbiBlcnJvciB0cmFjZWJhY2tzCisKKyogc2lt
cGxpZmllZCBtdWx0aWNhbGwgbWVjaGFuaXNtIGFuZCBwbHVnaW4gYXJjaGl0ZWN0dXJlLAorICBy
ZW5hbWVkIHNvbWUgaW50ZXJuYWwgbWV0aG9kcyBhbmQgYXJnbmFtZXMKKworMS4wLjAgKDIwMDkt
MDgtMDQpCis9PT09PT09PT09PT09PT09PT0KKworKiBtb3JlIHRlcnNlIHJlcG9ydGluZyB0cnkg
dG8gc2hvdyBmaWxlc3lzdGVtIHBhdGggcmVsYXRpdmVseSB0byBjdXJyZW50IGRpcgorKiBpbXBy
b3ZlIHhmYWlsIG91dHB1dCBhIGJpdAorCisxLjAuMGI5ICgyMDA5LTA3LTMxKQorPT09PT09PT09
PT09PT09PT09PT0KKworKiBjbGVhbmx5IGhhbmRsZSBhbmQgcmVwb3J0IGZpbmFsIHRlYXJkb3du
IG9mIHRlc3Qgc2V0dXAKKworKiBmaXggc3ZuLTEuNiBjb21wYXQgaXNzdWUgd2l0aCBweS5wYXRo
LnN2bndjKCkudmVyc2lvbmVkKCkKKyAgKHRoYW5rcyBXb3V0ZXIgVmFuZGVuIEhvdmUpCisKKyog
c2V0dXAvdGVhcmRvd24gb3IgY29sbGVjdGlvbiBwcm9ibGVtcyBub3cgc2hvdyBhcyBFUlJPUnMK
KyAgb3Igd2l0aCBiaWcgIkUiJ3MgaW4gdGhlIHByb2dyZXNzIGxpbmVzLiAgdGhleSBhcmUgcmVw
b3J0ZWQKKyAgYW5kIGNvdW50ZWQgc2VwYXJhdGVseS4KKworKiBkaXN0LXRlc3Rpbmc6IHByb3Bl
cmx5IGhhbmRsZSB0ZXN0IGl0ZW1zIHRoYXQgZ2V0IGxvY2FsbHkKKyAgY29sbGVjdGVkIGJ1dCBj
YW5ub3QgYmUgY29sbGVjdGVkIG9uIHRoZSByZW1vdGUgc2lkZSAtIG9mdGVuCisgIGR1ZSB0byBw
bGF0Zm9ybS9kZXBlbmRlbmN5IHJlYXNvbnMKKworKiBzaW1wbGlmaWVkIHB5LnRlc3QubWFyayBB
UEkgLSBzZWUga2V5d29yZCBwbHVnaW4gZG9jdW1lbnRhdGlvbgorCisqIGludGVncmF0ZSBiZXR0
ZXIgd2l0aCBsb2dnaW5nOiBjYXB0dXJpbmcgbm93IGJ5IGRlZmF1bHQgY2FwdHVyZXMKKyAgdGVz
dCBmdW5jdGlvbnMgYW5kIHRoZWlyIGltbWVkaWF0ZSBzZXR1cC90ZWFyZG93biBpbiBhIHNpbmds
ZSBzdHJlYW0KKworKiBjYXBzeXMgYW5kIGNhcGZkIGZ1bmNhcmdzIG5vdyBoYXZlIGEgcmVhZG91
dGVycigpIGFuZCBhIGNsb3NlKCkgbWV0aG9kCisgICh1bmRlcmx5aW5nbHkgcHkuaW8uU3RkQ2Fw
dHVyZS9GRCBvYmplY3RzIGFyZSB1c2VkIHdoaWNoIGdyZXcgYQorICByZWFkb3V0ZXJyKCkgbWV0
aG9kIGFzIHdlbGwgdG8gcmV0dXJuIHNuYXBzaG90cyBvZiBjYXB0dXJlZCBvdXQvZXJyKQorCisq
IG1ha2UgYXNzZXJ0LXJlaW50ZXJwcmV0YXRpb24gd29yayBiZXR0ZXIgd2l0aCBjb21wYXJpc29u
cyBub3QKKyAgcmV0dXJuaW5nIGJvb2xzIChyZXBvcnRlZCB3aXRoIG51bXB5IGZyb20gdGhhbmtz
IG1hY2llaiBmaWphbGtvd3NraSkKKworKiByZXdvcmtlZCBwZXItdGVzdCBvdXRwdXQgY2FwdHVy
aW5nIGludG8gdGhlIHB5dGVzdF9pb2NhcHR1cmUucHkgcGx1Z2luCisgIGFuZCB0aHVzIHJlbW92
ZWQgY2FwdHVyaW5nIGNvZGUgZnJvbSBjb25maWcgb2JqZWN0CisKKyogaXRlbS5yZXByX2ZhaWx1
cmUoZXhjaW5mbykgaW5zdGVhZCBvZiBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvLCBvdXRlcnIp
CisKKworMS4wLjBiOCAoMjAwOS0wNy0yMikKKz09PT09PT09PT09PT09PT09PT09CisKKyogcHl0
ZXN0X3VuaXR0ZXN0LXBsdWdpbiBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0CisKKyogaW50cm9k
dWNlZCBweXRlc3Rfa2V5Ym9hcmRpbnRlcnJ1cHQgaG9vayBhbmQKKyAgcmVmaW5lZCBweXRlc3Rf
c2Vzc2lvbmZpbmlzaCBob29rZWQsIGFkZGVkIHRlc3RzLgorCisqIHdvcmthcm91bmQgYSBidWdn
eSBsb2dnaW5nIG1vZHVsZSBpbnRlcmFjdGlvbiAoImNsb3NpbmcgYWxyZWFkeSBjbG9zZWQKKyAg
ZmlsZXMiKS4gIFRoYW5rcyB0byBTcmlkaGFyIFJhdG5ha3VtYXIgZm9yIHRyaWdnZXJpbmcuCisK
KyogaWYgcGx1Z2lucyB1c2UgInB5LnRlc3QuaW1wb3J0b3Jza2lwIiBmb3IgaW1wb3J0aW5nCisg
IGEgZGVwZW5kZW5jeSBvbmx5IGEgd2FybmluZyB3aWxsIGJlIGlzc3VlZCBpbnN0ZWFkCisgIG9m
IGV4aXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4KKworKiBtYW55IGltcHJvdmVtZW50cyB0byBk
b2NzOgorICAtIHJlZmluZWQgZnVuY2FyZ3MgZG9jICwgdXNlIHRoZSB0ZXJtICJmYWN0b3J5IiBp
bnN0ZWFkIG9mICJwcm92aWRlciIKKyAgLSBhZGRlZCBhIG5ldyB0YWxrL3R1dG9yaWFsIGRvYyBw
YWdlCisgIC0gYmV0dGVyIGRvd25sb2FkIHBhZ2UKKyAgLSBiZXR0ZXIgcGx1Z2luIGRvY3N0cmlu
Z3MKKyAgLSBhZGRlZCBuZXcgcGx1Z2lucyBwYWdlIGFuZCBhdXRvbWF0aWMgZG9jIGdlbmVyYXRp
b24gc2NyaXB0CisKKyogZml4ZWQgdGVhcmRvd24gcHJvYmxlbSByZWxhdGVkIHRvIHBhcnRpYWxs
eSBmYWlsaW5nIGZ1bmNhcmcgc2V0dXBzCisgICh0aGFua3MgTXJUb3BmIGZvciByZXBvcnRpbmcp
LCAicHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24iIGlzIG5vdworICBhbHdheXMgaW52b2tlZCBldmVu
IGlmIHRoZSAicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiIGZhaWxlZC4KKworKiB0d2Vha2VkIGRvY3Rl
c3Qgb3V0cHV0IGZvciBkb2NzdHJpbmdzIGluIHB5IG1vZHVsZXMsCisgIHRoYW5rcyBSYWRvbWly
LgorCisxLjAuMGI3Cis9PT09PT09CisKKyogcmVuYW1lZCBweS50ZXN0LnhmYWlsIGJhY2sgdG8g
cHkudGVzdC5tYXJrLnhmYWlsIHRvIGF2b2lkCisgIHR3byB3YXlzIHRvIGRlY29yYXRlIGZvciB4
ZmFpbAorCisqIHJlLWFkZGVkIHB5LnRlc3QubWFyayBkZWNvcmF0b3IgZm9yIHNldHRpbmcga2V5
d29yZHMgb24gZnVuY3Rpb25zCisgIChpdCB3YXMgYWN0dWFsbHkgZG9jdW1lbnRlZCBzbyByZW1v
dmluZyBpdCB3YXMgbm90IG5pY2UpCisKKyogcmVtb3ZlIHNjb3BlLWFyZ3VtZW50IGZyb20gcmVx
dWVzdC5hZGRmaW5hbGl6ZXIoKSBiZWNhdXNlCisgIHJlcXVlc3QuY2FjaGVkX3NldHVwIGhhcyB0
aGUgc2NvcGUgYXJnLiBUT09XVERJLgorCisqIHBlcmZvcm0gc2V0dXAgZmluYWxpemF0aW9uIGJl
Zm9yZSByZXBvcnRpbmcgZmFpbHVyZXMKKworKiBhcHBseSBtb2RpZmllZCBwYXRjaGVzIGZyb20g
QW5kcmVhcyBLbG9lY2tuZXIgdG8gYWxsb3cKKyAgdGVzdCBmdW5jdGlvbnMgdG8gaGF2ZSBubyBm
dW5jX2NvZGUgKCMyMikgYW5kIHRvIG1ha2UKKyAgIi1rIiBhbmQgZnVuY3Rpb24ga2V5d29yZHMg
d29yayAgKCMyMCkKKworKiBhcHBseSBwYXRjaCBmcm9tIERhbmllbCBQZW9semxlaXRobmVyIChp
c3N1ZSAjMjMpCisKKyogcmVzb2x2ZSBpc3N1ZSAjMTgsIG11bHRpcHJvY2Vzc2luZy5NYW5hZ2Vy
KCkgYW5kCisgIHJlZGlyZWN0aW9uIGNsYXNoCisKKyogbWFrZSBfX25hbWVfXyA9PSAiX19jaGFu
bmVsZXhlY19fIiBmb3IgcmVtb3RlX2V4ZWMgY29kZQorCisxLjAuMGIzICgyMDA5LTA2LTE5KQor
PT09PT09PT09PT09PT09PT09PT0KKworKiBwbHVnaW4gY2xhc3NlcyBhcmUgcmVtb3ZlZDogb25l
IG5vdyBkZWZpbmVzCisgIGhvb2tzIGRpcmVjdGx5IGluIGNvbmZ0ZXN0LnB5IG9yIGdsb2JhbCBw
eXRlc3RfKi5weQorICBmaWxlcy4KKworKiBhZGRlZCBuZXcgcHl0ZXN0X25hbWVzcGFjZShjb25m
aWcpIGhvb2sgdGhhdCBhbGxvd3MKKyAgdG8gaW5qZWN0IGhlbHBlcnMgZGlyZWN0bHkgdG8gdGhl
IHB5LnRlc3QuKiBuYW1lc3BhY2UuCisKKyogZG9jdW1lbnRlZCBhbmQgcmVmaW5lZCBtYW55IGhv
b2tzCisKKyogYWRkZWQgbmV3IHN0eWxlIG9mIGdlbmVyYXRpdmUgdGVzdHMgdmlhCisgIHB5dGVz
dF9nZW5lcmF0ZV90ZXN0cyBob29rIHRoYXQgaW50ZWdyYXRlcworICB3ZWxsIHdpdGggZnVuY3Rp
b24gYXJndW1lbnRzLgorCisKKzEuMC4wYjEKKz09PT09PT0KKworKiBpbnRyb2R1Y2VkIG5ldyAi
ZnVuY2FyZyIgc2V0dXAgbWV0aG9kLAorICBzZWUgZG9jL3Rlc3QvZnVuY2FyZy50eHQKKworKiBp
bnRyb2R1Y2VkIHBsdWdpbiBhcmNoaXRlY3R1cmUgYW5kIG1hbnkKKyAgbmV3IHB5LnRlc3QgcGx1
Z2lucywgc2VlCisgIGRvYy90ZXN0L3BsdWdpbnMudHh0CisKKyogdGVhcmRvd25fbWV0aG9kIGlz
IG5vdyBndWFyYW50ZWVkIHRvIGdldAorICBjYWxsZWQgYWZ0ZXIgYSB0ZXN0IG1ldGhvZCBoYXMg
cnVuLgorCisqIG5ldyBtZXRob2Q6IHB5LnRlc3QuaW1wb3J0b3Jza2lwKG1vZCxtaW52ZXJzaW9u
KQorICB3aWxsIGVpdGhlciBpbXBvcnQgb3IgY2FsbCBweS50ZXN0LnNraXAoKQorCisqIGNvbXBs
ZXRlbHkgcmV2aXNlZCBpbnRlcm5hbCBweS50ZXN0IGFyY2hpdGVjdHVyZQorCisqIG5ldyBweS5w
cm9jZXNzLkZvcmtlZEZ1bmMgb2JqZWN0IGFsbG93aW5nIHRvCisgIGZvcmsgZXhlY3V0aW9uIG9m
IGEgZnVuY3Rpb24gdG8gYSBzdWIgcHJvY2VzcworICBhbmQgZ2V0dGluZyBhIHJlc3VsdCBiYWNr
LgorCitYWFggbG90cyBvZiB0aGluZ3MgbWlzc2luZyBoZXJlIFhYWAorCiswLjkuMgorPT09PT0K
KworKiByZWZpbmVkIGluc3RhbGxhdGlvbiBhbmQgbWV0YWRhdGEsIGNyZWF0ZWQgbmV3IHNldHVw
LnB5LAorICBub3cgYmFzZWQgb24gc2V0dXB0b29scy9lel9zZXR1cCAodGhhbmtzIHRvIFJhbGYg
U2NobWl0dAorICBmb3IgaGlzIHN1cHBvcnQpLgorCisqIGltcHJvdmVkIHRoZSB3YXkgb2YgbWFr
aW5nIHB5Liogc2NyaXB0cyBhdmFpbGFibGUgaW4KKyAgd2luZG93cyBlbnZpcm9ubWVudHMsIHRo
ZXkgYXJlIG5vdyBhZGRlZCB0byB0aGUKKyAgU2NyaXB0cyBkaXJlY3RvcnkgYXMgIi5jbWQiIGZp
bGVzLgorCisqIHB5LnBhdGguc3Zud2Muc3RhdHVzKCkgbm93IGlzIG1vcmUgY29tcGxldGUgYW5k
CisgIHVzZXMgeG1sIG91dHB1dCBmcm9tIHRoZSAnc3ZuJyBjb21tYW5kIGlmIGF2YWlsYWJsZQor
ICAoR3VpZG8gV2VzZG9ycCkKKworKiBmaXggZm9yIHB5LnBhdGguc3ZuKiB0byB3b3JrIHdpdGgg
c3ZuIDEuNQorICAoQ2hyaXMgTGFtYikKKworKiBmaXggcGF0aC5yZWx0byhvdGhlcnBhdGgpIG1l
dGhvZCBvbiB3aW5kb3dzIHRvCisgIHVzZSBub3JtY2FzZSBmb3IgY2hlY2tpbmcgaWYgYSBwYXRo
IGlzIHJlbGF0aXZlLgorCisqIHB5LnRlc3QncyB0cmFjZWJhY2sgaXMgYmV0dGVyIHBhcnNlYWJs
ZSBmcm9tIGVkaXRvcnMKKyAgKGZvbGxvd3MgdGhlIGZpbGVuYW1lczpMSU5FTk86IE1TRyBjb252
ZW50aW9uKQorICAodGhhbmtzIHRvIE9zbW8gU2Fsb21hYSkKKworKiBmaXggdG8gamF2YXNjcmlw
dC1nZW5lcmF0aW9uLCAicHkudGVzdCAtLXJ1bmJyb3dzZXIiCisgIHNob3VsZCB3b3JrIG1vcmUg
cmVsaWFibHkgbm93CisKKyogcmVtb3ZlZCBwcmV2aW91c2x5IGFjY2lkZW50YWxseSBhZGRlZAor
ICBweS50ZXN0LmJyb2tlbiBhbmQgcHkudGVzdC5ub3RpbXBsZW1lbnRlZCBoZWxwZXJzLgorCisq
IHRoZXJlIG5vdyBpcyBhIHB5Ll9fdmVyc2lvbl9fIGF0dHJpYnV0ZQorCiswLjkuMQorPT09PT0K
KworVGhpcyBpcyBhIGZhaXJseSBjb21wbGV0ZSBsaXN0IG9mIHYwLjkuMSwgd2hpY2ggY2FuCitz
ZXJ2ZSBhcyBhIHJlZmVyZW5jZSBmb3IgZGV2ZWxvcGVycy4KKworKiBhbGxvd2luZyArIHNpZ25z
IGluIHB5LnBhdGguc3ZuIHVybHMgWzM5MTA2XQorKiBmaXhlZCBzdXBwb3J0IGZvciBGYWlsZWQg
ZXhjZXB0aW9ucyB3aXRob3V0IGV4Y2luZm8gaW4gcHkudGVzdCBbMzkzNDBdCisqIGFkZGVkIHN1
cHBvcnQgZm9yIGtpbGxpbmcgcHJvY2Vzc2VzIGZvciBXaW5kb3dzIChhcyB3ZWxsIGFzIHBsYXRm
b3JtcyB0aGF0CisgIHN1cHBvcnQgb3Mua2lsbCkgaW4gcHkubWlzYy5raWxscHJvYyBbMzk2NTVd
CisqIGFkZGVkIHNldHVwL3RlYXJkb3duIGZvciBnZW5lcmF0aXZlIHRlc3RzIHRvIHB5LnRlc3Qg
WzQwNzAyXQorKiBhZGRlZCBkZXRlY3Rpb24gb2YgRkFJTEVEIFRPIExPQUQgTU9EVUxFIHRvIHB5
LnRlc3QgWzQwNzAzLCA0MDczOCwgNDA3MzldCisqIGZpeGVkIHByb2JsZW0gd2l0aCBjYWxsaW5n
IC5yZW1vdmUoKSBvbiB3Y3BhdGhzIG9mIG5vbi12ZXJzaW9uZWQgZmlsZXMgaW4KKyAgcHkucGF0
aCBbNDQyNDhdCisqIGZpeGVkIHNvbWUgaW1wb3J0IGFuZCBpbmhlcml0YW5jZSBpc3N1ZXMgaW4g
cHkudGVzdCBbNDE0ODAsIDQ0NjQ4LCA0NDY1NV0KKyogZmFpbCB0byBydW4gZ3JlZW5sZXQgdGVz
dHMgd2hlbiBweXB5IGlzIGF2YWlsYWJsZSwgYnV0IHdpdGhvdXQgc3RhY2tsZXNzCisgIFs0NTI5
NF0KKyogc21hbGwgZml4ZXMgaW4gcnNlc3Npb24gdGVzdHMgWzQ1Mjk1XQorKiBmaXhlZCBpc3N1
ZSB3aXRoIDIuNSB0eXBlIHJlcHJlc2VudGF0aW9ucyBpbiBweS50ZXN0IFs0NTQ4MywgNDU0ODRd
CisqIG1hZGUgdGhhdCBpbnRlcm5hbCByZXBvcnRpbmcgaXNzdWVzIGRpc3BsYXlpbmcgaXMgZG9u
ZSBhdG9taWNhbGx5IGluIHB5LnRlc3QKKyAgWzQ1NTE4XQorKiBtYWRlIHRoYXQgbm9uLWV4aXN0
aW5nIGZpbGVzIGFyZSBpZ25vcmVkIGJ5IHRoZSBweS5sb29rdXAgc2NyaXB0IFs0NTUxOV0KKyog
aW1wcm92ZWQgZXhjZXB0aW9uIG5hbWUgY3JlYXRpb24gaW4gcHkudGVzdCBbNDU1MzVdCisqIG1h
ZGUgdGhhdCBsZXNzIHRocmVhZHMgYXJlIHVzZWQgaW4gZXhlY25ldCBbbWVyZ2UgaW4gNDU1Mzld
CisqIHJlbW92ZWQgbG9jayByZXF1aXJlZCBmb3IgYXRvbWljIHJlcG9ydGluZyBpc3N1ZSBkaXNw
bGF5aW5nIGluIHB5LnRlc3QKKyAgWzQ1NTQ1XQorKiByZW1vdmVkIGdsb2JhbHMgZnJvbSBleGVj
bmV0IFs0NTU0MSwgNDU1NDddCisqIHJlZmFjdG9yZWQgY2xlYW51cCBtZWNoYW5pY3MsIG1hZGUg
dGhhdCBzZXREYWVtb24gaXMgc2V0IHRvIDEgdG8gbWFrZSBhdGV4aXQKKyAgZ2V0IGNhbGxlZCBp
biAyLjUgKHB5LmV4ZWNuZXQpIFs0NTU0OF0KKyogZml4ZWQgYnVnIGluIGpvaW5pbmcgdGhyZWFk
cyBpbiBweS5leGVjbmV0J3Mgc2VydmVtYWluIFs0NTU0OV0KKyogcmVmYWN0b3JlZCBweS50ZXN0
LnJzZXNzaW9uIHRlc3RzIHRvIG5vdCByZWx5IG9uIGV4YWN0IG91dHB1dCBmb3JtYXQgYW55bW9y
ZQorICBbNDU2NDZdCisqIHVzaW5nIHJlcHIoKSBvbiB0ZXN0IG91dGNvbWUgWzQ1NjQ3XQorKiBh
ZGRlZCAnUmVhc29uJyBjbGFzc2VzIGZvciBweS50ZXN0LnNraXAoKSBbNDU2NDgsIDQ1NjQ5XQor
KiBraWxsZWQgc29tZSB1bm5lY2Vzc2FyeSBzYW5pdHkgY2hlY2sgaW4gcHkudGVzdC5jb2xsZWN0
IFs0NTY1NV0KKyogYXZvaWQgdXNpbmcgb3MudG1wZmlsZSgpIGluIHB5LmlvLmZkY2FwdHVyZSBi
ZWNhdXNlIG9uIFdpbmRvd3MgaXQncyBvbmx5CisgIHVzYWJsZSBieSBBZG1pbmlzdHJhdG9ycyBb
NDU5MDFdCisqIGFkZGVkIHN1cHBvcnQgZm9yIGxvY2tpbmcgYW5kIG5vbi1yZWN1cnNpdmUgY29t
bWl0cyB0byBweS5wYXRoLnN2bndjIFs0NTk5NF0KKyogbG9ja2luZyBmaWxlcyBpbiBweS5leGVj
bmV0IHRvIHByZXZlbnQgQ1B5dGhvbiBmcm9tIHNlZ2ZhdWx0aW5nIFs0NjAxMF0KKyogYWRkZWQg
ZXhwb3J0KCkgbWV0aG9kIHRvIHB5LnBhdGguc3ZudXJsCisqIGZpeGVkIC1kIC14IGluIHB5LnRl
c3QgWzQ3Mjc3XQorKiBmaXhlZCBhcmd1bWVudCBjb25jYXRlbmF0aW9uIHByb2JsZW0gaW4gcHku
cGF0aC5zdm53YyBbNDk0MjNdCisqIHJlc3RvcmUgcHkudGVzdCBiZWhhdmlvdXIgdGhhdCBpdCBl
eGl0cyB3aXRoIGNvZGUgMSB3aGVuIHRoZXJlIGFyZSBmYWlsdXJlcworICBbNDk5NzRdCisqIGRv
bid0IGZhaWwgb24gaHRtbCBmaWxlcyB0aGF0IGRvbid0IGhhdmUgYW4gYWNjb21wYW55aW5nIC50
eHQgZmlsZSBbNTA2MDZdCisqIGZpeGVkICd1dGVzdGNvbnZlcnQucHkgPCBpbnB1dCcgWzUwNjQ1
XQorKiBzbWFsbCBmaXggZm9yIGNvZGUgaW5kZW50YXRpb24gaW4gcHkuY29kZS5zb3VyY2UgWzUw
NzU1XQorKiBmaXggX2RvY2dlbi5weSBkb2N1bWVudGF0aW9uIGJ1aWxkaW5nIFs1MTI4NV0KKyog
aW1wcm92ZWQgY2hlY2tzIGZvciBzb3VyY2UgcmVwcmVzZW50YXRpb24gb2YgY29kZSBibG9ja3Mg
aW4gcHkudGVzdCBbNTEyOTJdCisqIGFkZGVkIHN1cHBvcnQgZm9yIHBhc3NpbmcgYXV0aGVudGlj
YXRpb24gdG8gcHkucGF0aC5zdm4qIG9iamVjdHMgWzUyMDAwLAorICA1MjAwMV0KKyogcmVtb3Zl
ZCBzb3J0ZWQoKSBjYWxsIGZvciBweS5hcGlnZW4gdGVzdHMgaW4gZmF2b3VyIG9mIFtdLnNvcnQo
KSB0byBzdXBwb3J0CisgIFB5dGhvbiAyLjMgWzUyNDgxXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvQ09OVFJJQlVUSU5HLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDg1YTg5NGI5MTA3NzdlYzcxMjgwN2Y4YzYzNTA5ZDEyOTQyOWE5ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKQEAgLTAsMCArMSwyNzggQEAK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NvbnRyaWJ1dGlvbiBnZXR0aW5nIHN0YXJ0
ZWQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQ29udHJpYnV0aW9ucyBhcmUgaGln
aGx5IHdlbGNvbWVkIGFuZCBhcHByZWNpYXRlZC4gIEV2ZXJ5IGxpdHRsZSBoZWxwIGNvdW50cywK
K3NvIGRvIG5vdCBoZXNpdGF0ZSEKKworLi4gY29udGVudHM6OiBDb250cmlidXRpb24gbGlua3MK
KyAgIDpkZXB0aDogMgorCisKKy4uIF9zdWJtaXRmZWVkYmFjazoKKworRmVhdHVyZSByZXF1ZXN0
cyBhbmQgZmVlZGJhY2sKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RvIHlvdSBs
aWtlIHB5dGVzdD8gIFNoYXJlIHNvbWUgbG92ZSBvbiBUd2l0dGVyIG9yIGluIHlvdXIgYmxvZyBw
b3N0cyEKKworV2UnZCBhbHNvIGxpa2UgdG8gaGVhciBhYm91dCB5b3VyIHByb3Bvc2l0aW9ucyBh
bmQgc3VnZ2VzdGlvbnMuICBGZWVsIGZyZWUgdG8KK2BzdWJtaXQgdGhlbSBhcyBpc3N1ZXMgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM+YF8gYW5kOgorCisqIEV4
cGxhaW4gaW4gZGV0YWlsIGhvdyB0aGV5IHNob3VsZCB3b3JrLgorKiBLZWVwIHRoZSBzY29wZSBh
cyBuYXJyb3cgYXMgcG9zc2libGUuICBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gaW1wbGVt
ZW50LgorCisKKy4uIF9yZXBvcnRidWdzOgorCitSZXBvcnQgYnVncworLS0tLS0tLS0tLS0KKwor
UmVwb3J0IGJ1Z3MgZm9yIHB5dGVzdCBpbiB0aGUgYGlzc3VlIHRyYWNrZXIgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM+YF8uCisKK0lmIHlvdSBhcmUgcmVwb3J0
aW5nIGEgYnVnLCBwbGVhc2UgaW5jbHVkZToKKworKiBZb3VyIG9wZXJhdGluZyBzeXN0ZW0gbmFt
ZSBhbmQgdmVyc2lvbi4KKyogQW55IGRldGFpbHMgYWJvdXQgeW91ciBsb2NhbCBzZXR1cCB0aGF0
IG1pZ2h0IGJlIGhlbHBmdWwgaW4gdHJvdWJsZXNob290aW5nLAorICBzcGVjaWZpY2FsbHkgdGhl
IFB5dGhvbiBpbnRlcnByZXRlciB2ZXJzaW9uLCBpbnN0YWxsZWQgbGlicmFyaWVzLCBhbmQgcHl0
ZXN0CisgIHZlcnNpb24uCisqIERldGFpbGVkIHN0ZXBzIHRvIHJlcHJvZHVjZSB0aGUgYnVnLgor
CitJZiB5b3UgY2FuIHdyaXRlIGEgZGVtb25zdHJhdGlvbiB0ZXN0IHRoYXQgY3VycmVudGx5IGZh
aWxzIGJ1dCBzaG91bGQgcGFzcworKHhmYWlsKSwgdGhhdCBpcyBhIHZlcnkgdXNlZnVsIGNvbW1p
dCB0byBtYWtlIGFzIHdlbGwsIGV2ZW4gaWYgeW91IGNhbm5vdAorZml4IHRoZSBidWcgaXRzZWxm
LgorCisKKy4uIF9maXhidWdzOgorCitGaXggYnVncworLS0tLS0tLS0KKworTG9vayB0aHJvdWdo
IHRoZSBHaXRIdWIgaXNzdWVzIGZvciBidWdzLiAgSGVyZSBpcyBhIGZpbHRlciB5b3UgY2FuIHVz
ZToKK2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9sYWJlbHMvdHlwZSUzQSUy
MGJ1ZworCis6cmVmOmBUYWxrIDxjb250YWN0PmAgdG8gZGV2ZWxvcGVycyB0byBmaW5kIG91dCBo
b3cgeW91IGNhbiBmaXggc3BlY2lmaWMgYnVncy4KKworRG9uJ3QgZm9yZ2V0IHRvIGNoZWNrIHRo
ZSBpc3N1ZSB0cmFja2VycyBvZiB5b3VyIGZhdm91cml0ZSBwbHVnaW5zLCB0b28hCisKKy4uIF93
cml0ZXBsdWdpbnM6CisKK0ltcGxlbWVudCBmZWF0dXJlcworLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0xvb2sgdGhyb3VnaCB0aGUgR2l0SHViIGlzc3VlcyBmb3IgZW5oYW5jZW1lbnRzLiAgSGVyZSBp
cyBhIGZpbHRlciB5b3UgY2FuIHVzZToKK2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9sYWJlbHMvZW5oYW5jZW1lbnQKKworOnJlZjpgVGFsayA8Y29udGFjdD5gIHRvIGRldmVs
b3BlcnMgdG8gZmluZCBvdXQgaG93IHlvdSBjYW4gaW1wbGVtZW50IHNwZWNpZmljCitmZWF0dXJl
cy4KKworV3JpdGUgZG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitQeXRlc3Qg
Y291bGQgYWx3YXlzIHVzZSBtb3JlIGRvY3VtZW50YXRpb24uICBXaGF0IGV4YWN0bHkgaXMgbmVl
ZGVkPworCisqIE1vcmUgY29tcGxlbWVudGFyeSBkb2N1bWVudGF0aW9uLiAgSGF2ZSB5b3UgcGVy
aGFwcyBmb3VuZCBzb21ldGhpbmcgdW5jbGVhcj8KKyogRG9jdW1lbnRhdGlvbiB0cmFuc2xhdGlv
bnMuICBXZSBjdXJyZW50bHkgaGF2ZSBvbmx5IEVuZ2xpc2guCisqIERvY3N0cmluZ3MuICBUaGVy
ZSBjYW4gbmV2ZXIgYmUgdG9vIG1hbnkgb2YgdGhlbS4KKyogQmxvZyBwb3N0cywgYXJ0aWNsZXMg
YW5kIHN1Y2ggLS0gdGhleSdyZSBhbGwgdmVyeSBhcHByZWNpYXRlZC4KKworWW91IGNhbiBhbHNv
IGVkaXQgZG9jdW1lbnRhdGlvbiBmaWxlcyBkaXJlY3RseSBpbiB0aGUgR2l0SHViIHdlYiBpbnRl
cmZhY2UsCit3aXRob3V0IHVzaW5nIGEgbG9jYWwgY29weS4gIFRoaXMgY2FuIGJlIGNvbnZlbmll
bnQgZm9yIHNtYWxsIGZpeGVzLgorCisuLiBub3RlOjoKKyAgICBCdWlsZCB0aGUgZG9jdW1lbnRh
dGlvbiBsb2NhbGx5IHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOgorCisgICAgLi4gY29kZTo6
IGJhc2gKKworICAgICAgICAkIHRveCAtZSBkb2NzCisKKyAgICBUaGUgYnVpbHQgZG9jdW1lbnRh
dGlvbiBzaG91bGQgYmUgYXZhaWxhYmxlIGluIHRoZSBgYGRvYy9lbi9fYnVpbGQvYGAuCisKKyAg
ICBXaGVyZSAnZW4nIHJlZmVycyB0byB0aGUgZG9jdW1lbnRhdGlvbiBsYW5ndWFnZS4KKworLi4g
X3N1Ym1pdHBsdWdpbjoKKworU3VibWl0dGluZyBQbHVnaW5zIHRvIHB5dGVzdC1kZXYKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1B5dGVzdCBkZXZlbG9wbWVudCBvZiB0aGUg
Y29yZSwgc29tZSBwbHVnaW5zIGFuZCBzdXBwb3J0IGNvZGUgaGFwcGVucworaW4gcmVwb3NpdG9y
aWVzIGxpdmluZyB1bmRlciB0aGUgYGBweXRlc3QtZGV2YGAgb3JnYW5pc2F0aW9uczoKKworLSBg
cHl0ZXN0LWRldiBvbiBHaXRIdWIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2PmBfCisK
Ky0gYHB5dGVzdC1kZXYgb24gQml0YnVja2V0IDxodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0
LWRldj5gXworCitBbGwgcHl0ZXN0LWRldiBDb250cmlidXRvcnMgdGVhbSBtZW1iZXJzIGhhdmUg
d3JpdGUgYWNjZXNzIHRvIGFsbCBjb250YWluZWQKK3JlcG9zaXRvcmllcy4gIFB5dGVzdCBjb3Jl
IGFuZCBwbHVnaW5zIGFyZSBnZW5lcmFsbHkgZGV2ZWxvcGVkCit1c2luZyBgcHVsbCByZXF1ZXN0
c2BfIHRvIHJlc3BlY3RpdmUgcmVwb3NpdG9yaWVzLgorCitUaGUgb2JqZWN0aXZlcyBvZiB0aGUg
YGBweXRlc3QtZGV2YGAgb3JnYW5pc2F0aW9uIGFyZToKKworKiBIYXZpbmcgYSBjZW50cmFsIGxv
Y2F0aW9uIGZvciBwb3B1bGFyIHB5dGVzdCBwbHVnaW5zCisqIFNoYXJpbmcgc29tZSBvZiB0aGUg
bWFpbnRlbmFuY2UgcmVzcG9uc2liaWxpdHkgKGluIGNhc2UgYSBtYWludGFpbmVyIG5vCisgIGxv
bmdlciB3aXNoZXMgdG8gbWFpbnRhaW4gYSBwbHVnaW4pCisKK1lvdSBjYW4gc3VibWl0IHlvdXIg
cGx1Z2luIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBgcHl0ZXN0LWRldiBtYWlsIGxpc3QKKzxodHRw
czovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGVzdC1kZXY+YF8gYW5kIHdy
aXRpbmcgYQorbWFpbCBwb2ludGluZyB0byB5b3VyIGV4aXN0aW5nIHB5dGVzdCBwbHVnaW4gcmVw
b3NpdG9yeSB3aGljaCBtdXN0IGhhdmUKK3RoZSBmb2xsb3dpbmc6CisKKy0gUHlQSSBwcmVzZW5j
ZSB3aXRoIGEgYGBzZXR1cC5weWBgIHRoYXQgY29udGFpbnMgYSBsaWNlbnNlLCBgYHB5dGVzdC1g
YAorICBwcmVmaXhlZCBuYW1lLCB2ZXJzaW9uIG51bWJlciwgYXV0aG9ycywgc2hvcnQgYW5kIGxv
bmcgZGVzY3JpcHRpb24uCisKKy0gYSBgYHRveC5pbmlgYCBmb3IgcnVubmluZyB0ZXN0cyB1c2lu
ZyBgdG94IDxodHRwczovL3RveC5yZWFkdGhlZG9jcy5pbz5gXy4KKworLSBhIGBgUkVBRE1FLnR4
dGBgIGRlc2NyaWJpbmcgaG93IHRvIHVzZSB0aGUgcGx1Z2luIGFuZCBvbiB3aGljaAorICBwbGF0
Zm9ybXMgaXQgcnVucy4KKworLSBhIGBgTElDRU5TRS50eHRgYCBmaWxlIG9yIGVxdWl2YWxlbnQg
Y29udGFpbmluZyB0aGUgbGljZW5zaW5nCisgIGluZm9ybWF0aW9uLCB3aXRoIG1hdGNoaW5nIGlu
Zm8gaW4gYGBzZXR1cC5weWBgLgorCistIGFuIGlzc3VlIHRyYWNrZXIgZm9yIGJ1ZyByZXBvcnRz
IGFuZCBlbmhhbmNlbWVudCByZXF1ZXN0cy4KKworLSBhIGBjaGFuZ2Vsb2cgPGh0dHA6Ly9rZWVw
YWNoYW5nZWxvZy5jb20vPmBfCisKK0lmIG5vIGNvbnRyaWJ1dG9yIHN0cm9uZ2x5IG9iamVjdHMg
YW5kIHR3byBhZ3JlZSwgdGhlIHJlcG9zaXRvcnkgY2FuIHRoZW4gYmUKK3RyYW5zZmVycmVkIHRv
IHRoZSBgYHB5dGVzdC1kZXZgYCBvcmdhbmlzYXRpb24uCisKK0hlcmUncyBhIHJ1bmRvd24gb2Yg
aG93IGEgcmVwb3NpdG9yeSB0cmFuc2ZlciB1c3VhbGx5IHByb2NlZWRzCisodXNpbmcgYSByZXBv
c2l0b3J5IG5hbWVkIGBgam9lZG9lL3B5dGVzdC14eXpgYCBhcyBleGFtcGxlKToKKworKiBgYGpv
ZWRvZWBgIHRyYW5zZmVycyByZXBvc2l0b3J5IG93bmVyc2hpcCB0byBgYHB5dGVzdC1kZXZgYCBh
ZG1pbmlzdHJhdG9yIGBgY2FsdmluYGAuCisqIGBgY2FsdmluYGAgY3JlYXRlcyBgYHB5dGVzdC14
eXotYWRtaW5gYCBhbmQgYGBweXRlc3QteHl6LWRldmVsb3BlcnNgYCB0ZWFtcywgaW52aXRpbmcg
YGBqb2Vkb2VgYCB0byBib3RoIGFzICoqbWFpbnRhaW5lcioqLgorKiBgYGNhbHZpbmBgIHRyYW5z
ZmVycyByZXBvc2l0b3J5IHRvIGBgcHl0ZXN0LWRldmBgIGFuZCBjb25maWd1cmVzIHRlYW0gYWNj
ZXNzOgorICAKKyAgLSBgYHB5dGVzdC14eXotYWRtaW5gYCAqKmFkbWluKiogYWNjZXNzOworICAt
IGBgcHl0ZXN0LXh5ei1kZXZlbG9wZXJzYGAgKip3cml0ZSoqIGFjY2VzczsKKworVGhlIGBgcHl0
ZXN0LWRldi9Db250cmlidXRvcnNgYCB0ZWFtIGhhcyB3cml0ZSBhY2Nlc3MgdG8gYWxsIHByb2pl
Y3RzLCBhbmQKK2V2ZXJ5IHByb2plY3QgYWRtaW5pc3RyYXRvciBpcyBpbiBpdC4gV2UgcmVjb21t
ZW5kIHRoYXQgZWFjaCBwbHVnaW4gaGFzIGF0IGxlYXN0IHRocmVlCitwZW9wbGUgd2hvIGhhdmUg
dGhlIHJpZ2h0IHRvIHJlbGVhc2UgdG8gUHlQSS4KKworUmVwb3NpdG9yeSBvd25lcnMgY2FuIHJl
c3QgYXNzdXJlZCB0aGF0IG5vIGBgcHl0ZXN0LWRldmBgIGFkbWluaXN0cmF0b3Igd2lsbCBldmVy
IG1ha2UKK3JlbGVhc2VzIG9mIHlvdXIgcmVwb3NpdG9yeSBvciB0YWtlIG93bmVyc2hpcCBpbiBh
bnkgd2F5LCBleGNlcHQgaW4gcmFyZSBjYXNlcword2hlcmUgc29tZW9uZSBiZWNvbWVzIHVucmVz
cG9uc2l2ZSBhZnRlciBtb250aHMgb2YgY29udGFjdCBhdHRlbXB0cy4KK0FzIHN0YXRlZCwgdGhl
IG9iamVjdGl2ZSBpcyB0byBzaGFyZSBtYWludGVuYW5jZSBhbmQgYXZvaWQgInBsdWdpbi1hYmFu
ZG9uIi4KKworCisuLiBfYHB1bGwgcmVxdWVzdHNgOgorLi4gX3B1bGwtcmVxdWVzdHM6CisKK1By
ZXBhcmluZyBQdWxsIFJlcXVlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTaG9ydCB2
ZXJzaW9uCit+fn5+fn5+fn5+fn5+CisKKyMuIEZvcmsgdGhlIHJlcG9zaXRvcnk7CisjLiBUYXJn
ZXQgYGBtYXN0ZXJgYCBmb3IgYnVnZml4ZXMgYW5kIGRvYyBjaGFuZ2VzOworIy4gVGFyZ2V0IGBg
ZmVhdHVyZXNgYCBmb3IgbmV3IGZlYXR1cmVzIG9yIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcy4KKyMu
IEZvbGxvdyAqKlBFUC04KiouIFRoZXJlJ3MgYSBgYHRveGBgIGNvbW1hbmQgdG8gaGVscCBmaXhp
bmcgaXQ6IGBgdG94IC1lIGZpeC1saW50YGAuCisjLiBUZXN0cyBhcmUgcnVuIHVzaW5nIGBgdG94
YGA6OgorCisgICAgdG94IC1lIGxpbnRpbmcscHkyNyxweTM2CisKKyAgIFRoZSB0ZXN0IGVudmly
b25tZW50cyBhYm92ZSBhcmUgdXN1YWxseSBlbm91Z2ggdG8gY292ZXIgbW9zdCBjYXNlcyBsb2Nh
bGx5LgorCisjLiBXcml0ZSBhIGBgY2hhbmdlbG9nYGAgZW50cnk6IGBgY2hhbmdlbG9nLzI1NzQu
YnVnZml4YGAsIHVzZSBpc3N1ZSBpZCBudW1iZXIKKyAgIGFuZCBvbmUgb2YgYGBidWdmaXhgYCwg
YGByZW1vdmFsYGAsIGBgZmVhdHVyZWBgLCBgYHZlbmRvcmBgLCBgYGRvY2BgIG9yCisgICBgYHRy
aXZpYWxgYCBmb3IgdGhlIGlzc3VlIHR5cGUuCisjLiBVbmxlc3MgeW91ciBjaGFuZ2UgaXMgYSB0
cml2aWFsIG9yIGEgZG9jdW1lbnRhdGlvbiBmaXggKGUuZy4sIGEgdHlwbyBvciByZXdvcmQgb2Yg
YSBzbWFsbCBzZWN0aW9uKSBwbGVhc2UKKyAgIGFkZCB5b3Vyc2VsZiB0byB0aGUgYGBBVVRIT1JT
YGAgZmlsZSwgaW4gYWxwaGFiZXRpY2FsIG9yZGVyOworCisKK0xvbmcgdmVyc2lvbgorfn5+fn5+
fn5+fn5+CisKK1doYXQgaXMgYSAicHVsbCByZXF1ZXN0Ij8gIEl0IGluZm9ybXMgdGhlIHByb2pl
Y3QncyBjb3JlIGRldmVsb3BlcnMgYWJvdXQgdGhlCitjaGFuZ2VzIHlvdSB3YW50IHRvIHJldmll
dyBhbmQgbWVyZ2UuICBQdWxsIHJlcXVlc3RzIGFyZSBzdG9yZWQgb24KK2BHaXRIdWIgc2VydmVy
cyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGxzPmBfLgorT25jZSB5
b3Ugc2VuZCBhIHB1bGwgcmVxdWVzdCwgd2UgY2FuIGRpc2N1c3MgaXRzIHBvdGVudGlhbCBtb2Rp
ZmljYXRpb25zIGFuZAorZXZlbiBhZGQgbW9yZSBjb21taXRzIHRvIGl0IGxhdGVyIG9uLiBUaGVy
ZSdzIGFuIGV4Y2VsbGVudCB0dXRvcmlhbCBvbiBob3cgUHVsbAorUmVxdWVzdHMgd29yayBpbiB0
aGUKK2BHaXRIdWIgSGVscCBDZW50ZXIgPGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVz
L3VzaW5nLXB1bGwtcmVxdWVzdHMvPmBfLgorCitIZXJlIGlzIGEgc2ltcGxlIG92ZXJ2aWV3LCB3
aXRoIHB5dGVzdC1zcGVjaWZpYyBiaXRzOgorCisjLiBGb3JrIHRoZQorICAgYHB5dGVzdCBHaXRI
dWIgcmVwb3NpdG9yeSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0PmBfXy4g
IEl0J3MKKyAgIGZpbmUgdG8gdXNlIGBgcHl0ZXN0YGAgYXMgeW91ciBmb3JrIHJlcG9zaXRvcnkg
bmFtZSBiZWNhdXNlIGl0IHdpbGwgbGl2ZQorICAgdW5kZXIgeW91ciB1c2VyLgorCisjLiBDbG9u
ZSB5b3VyIGZvcmsgbG9jYWxseSB1c2luZyBgZ2l0IDxodHRwczovL2dpdC1zY20uY29tLz5gXyBh
bmQgY3JlYXRlIGEgYnJhbmNoOjoKKworICAgICQgZ2l0IGNsb25lIGdpdEBnaXRodWIuY29tOllP
VVJfR0lUSFVCX1VTRVJOQU1FL3B5dGVzdC5naXQKKyAgICAkIGNkIHB5dGVzdAorICAgICMgbm93
LCB0byBmaXggYSBidWcgY3JlYXRlIHlvdXIgb3duIGJyYW5jaCBvZmYgIm1hc3RlciI6CisgICAg
CisgICAgICAgICQgZ2l0IGNoZWNrb3V0IC1iIHlvdXItYnVnZml4LWJyYW5jaC1uYW1lIG1hc3Rl
cgorCisgICAgIyBvciB0byBpbnN0ZWFkIGFkZCBhIGZlYXR1cmUgY3JlYXRlIHlvdXIgb3duIGJy
YW5jaCBvZmYgImZlYXR1cmVzIjoKKyAgICAKKyAgICAgICAgJCBnaXQgY2hlY2tvdXQgLWIgeW91
ci1mZWF0dXJlLWJyYW5jaC1uYW1lIGZlYXR1cmVzCisKKyAgIEdpdmVuIHdlIGhhdmUgIm1ham9y
Lm1pbm9yLm1pY3JvIiB2ZXJzaW9uIG51bWJlcnMsIGJ1Z2ZpeGVzIHdpbGwgdXN1YWxseSAKKyAg
IGJlIHJlbGVhc2VkIGluIG1pY3JvIHJlbGVhc2VzIHdoZXJlYXMgZmVhdHVyZXMgd2lsbCBiZSBy
ZWxlYXNlZCBpbiAKKyAgIG1pbm9yIHJlbGVhc2VzIGFuZCBpbmNvbXBhdGlibGUgY2hhbmdlcyBp
biBtYWpvciByZWxlYXNlcy4KKworICAgSWYgeW91IG5lZWQgc29tZSBoZWxwIHdpdGggR2l0LCBm
b2xsb3cgdGhpcyBxdWljayBzdGFydAorICAgZ3VpZGU6IGh0dHBzOi8vZ2l0Lndpa2kua2VybmVs
Lm9yZy9pbmRleC5waHAvUXVpY2tTdGFydAorCisjLiBJbnN0YWxsIHRveAorCisgICBUb3ggaXMg
dXNlZCB0byBydW4gYWxsIHRoZSB0ZXN0cyBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHNldHVwIHZp
cnR1YWxlbnZzCisgICB0byBydW4gdGhlIHRlc3RzIGluLgorICAgKHdpbGwgaW1wbGljaXRseSB1
c2UgaHR0cDovL3d3dy52aXJ0dWFsZW52Lm9yZy9lbi9sYXRlc3QvKTo6CisKKyAgICAkIHBpcCBp
bnN0YWxsIHRveAorCisjLiBSdW4gYWxsIHRoZSB0ZXN0cworCisgICBZb3UgbmVlZCB0byBoYXZl
IFB5dGhvbiAyLjcgYW5kIDMuNiBhdmFpbGFibGUgaW4geW91ciBzeXN0ZW0uICBOb3cKKyAgIHJ1
bm5pbmcgdGVzdHMgaXMgYXMgc2ltcGxlIGFzIGlzc3VpbmcgdGhpcyBjb21tYW5kOjoKKworICAg
ICQgdG94IC1lIGxpbnRpbmcscHkyNyxweTM2CisKKyAgIFRoaXMgY29tbWFuZCB3aWxsIHJ1biB0
ZXN0cyB2aWEgdGhlICJ0b3giIHRvb2wgYWdhaW5zdCBQeXRob24gMi43IGFuZCAzLjYKKyAgIGFu
ZCBhbHNvIHBlcmZvcm0gImxpbnQiIGNvZGluZy1zdHlsZSBjaGVja3MuCisKKyMuIFlvdSBjYW4g
bm93IGVkaXQgeW91ciBsb2NhbCB3b3JraW5nIGNvcHkuIFBsZWFzZSBmb2xsb3cgUEVQLTguCisK
KyAgIFlvdSBjYW4gbm93IG1ha2UgdGhlIGNoYW5nZXMgeW91IHdhbnQgYW5kIHJ1biB0aGUgdGVz
dHMgYWdhaW4gYXMgbmVjZXNzYXJ5LgorCisgICBJZiB5b3UgaGF2ZSB0b28gbXVjaCBsaW50aW5n
IGVycm9ycywgdHJ5IHJ1bm5pbmc6OgorCisgICAgJCB0b3ggLWUgZml4LWxpbnQKKworICAgVG8g
Zml4IHBlcDggcmVsYXRlZCBlcnJvcnMuCisKKyAgIFlvdSBjYW4gcGFzcyBkaWZmZXJlbnQgb3B0
aW9ucyB0byBgYHRveGBgLiBGb3IgZXhhbXBsZSwgdG8gcnVuIHRlc3RzIG9uIFB5dGhvbiAyLjcg
YW5kIHBhc3Mgb3B0aW9ucyB0byBweXRlc3QKKyAgIChlLmcuIGVudGVyIHBkYiBvbiBmYWlsdXJl
KSB0byBweXRlc3QgeW91IGNhbiBkbzo6CisKKyAgICAkIHRveCAtZSBweTI3IC0tIC0tcGRiCisK
KyAgIE9yIHRvIG9ubHkgcnVuIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0IG1vZHVsZSBvbiBQ
eXRob24gMy42OjoKKworICAgICQgdG94IC1lIHB5MzYgLS0gdGVzdGluZy90ZXN0X2NvbmZpZy5w
eQorCisjLiBDb21taXQgYW5kIHB1c2ggb25jZSB5b3VyIHRlc3RzIHBhc3MgYW5kIHlvdSBhcmUg
aGFwcHkgd2l0aCB5b3VyIGNoYW5nZShzKTo6CisKKyAgICAkIGdpdCBjb21taXQgLWEgLW0gIjxj
b21taXQgbWVzc2FnZT4iCisgICAgJCBnaXQgcHVzaCAtdQorCisjLiBDcmVhdGUgYSBuZXcgY2hh
bmdlbG9nIGVudHJ5IGluIGBgY2hhbmdlbG9nYGAuIFRoZSBmaWxlIHNob3VsZCBiZSBuYW1lZCBg
YDxpc3N1ZWlkPi48dHlwZT5gYCwKKyAgIHdoZXJlICppc3N1ZWlkKiBpcyB0aGUgbnVtYmVyIG9m
IHRoZSBpc3N1ZSByZWxhdGVkIHRvIHRoZSBjaGFuZ2UgYW5kICp0eXBlKiBpcyBvbmUgb2YKKyAg
IGBgYnVnZml4YGAsIGBgcmVtb3ZhbGBgLCBgYGZlYXR1cmVgYCwgYGB2ZW5kb3JgYCwgYGBkb2Ng
YCBvciBgYHRyaXZpYWxgYC4KKworIy4gQWRkIHlvdXJzZWxmIHRvIGBgQVVUSE9SU2BgIGZpbGUg
aWYgbm90IHRoZXJlIHlldCwgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLgorCisjLiBGaW5hbGx5LCBz
dWJtaXQgYSBwdWxsIHJlcXVlc3QgdGhyb3VnaCB0aGUgR2l0SHViIHdlYnNpdGUgdXNpbmcgdGhp
cyBkYXRhOjoKKworICAgIGhlYWQtZm9yazogWU9VUl9HSVRIVUJfVVNFUk5BTUUvcHl0ZXN0Cisg
ICAgY29tcGFyZTogeW91ci1icmFuY2gtbmFtZQorCisgICAgYmFzZS1mb3JrOiBweXRlc3QtZGV2
L3B5dGVzdAorICAgIGJhc2U6IG1hc3RlciAgICAgICAgICAjIGlmIGl0J3MgYSBidWdmaXgKKyAg
ICBiYXNlOiBmZWF0dXJlcyAgICAgICAgIyBpZiBpdCdzIGEgZmVhdHVyZQorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L0hPV1RPUkVMRUFTRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVB
U0UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ4YTM0NjFkNGJjOTIwNjNiOTlkZDRmMzZlMzVhZmI4OWJlN2Zl
MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0CkBAIC0w
LDAgKzEsNjUgQEAKK1JlbGVhc2UgUHJvY2VkdXJlCistLS0tLS0tLS0tLS0tLS0tLQorCitPdXIg
Y3VycmVudCBwb2xpY3kgZm9yIHJlbGVhc2luZyBpcyB0byBhaW0gZm9yIGEgYnVnZml4IGV2ZXJ5
IGZldyB3ZWVrcyBhbmQgYSBtaW5vciByZWxlYXNlIGV2ZXJ5IDItMyBtb250aHMuIFRoZSBpZGVh
CitpcyB0byBnZXQgZml4ZXMgYW5kIG5ldyBmZWF0dXJlcyBvdXQgaW5zdGVhZCBvZiB0cnlpbmcg
dG8gY3JhbSBhIHRvbiBvZiBmZWF0dXJlcyBpbnRvIGEgcmVsZWFzZSBhbmQgYnkgY29uc2VxdWVu
Y2UKK3Rha2luZyBhIGxvdCBvZiB0aW1lIHRvIG1ha2UgYSBuZXcgb25lLgorCisuLiBpbXBvcnRh
bnQ6OgorCisgICAgcHl0ZXN0IHJlbGVhc2VzIG11c3QgYmUgcHJlcGFyZWQgb24gKipMaW51eCoq
IGJlY2F1c2UgdGhlIGRvY3MgYW5kIGV4YW1wbGVzIGV4cGVjdAorICAgIHRvIGJlIGV4ZWN1dGVk
IGluIHRoYXQgcGxhdGZvcm0uCisKKyMuIEluc3RhbGwgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVz
IGluIGEgdmlydHVhbCBlbnZpcm9ubWVudCB3aXRoOjoKKworICAgIHBpcDMgaW5zdGFsbCAtciB0
YXNrcy9yZXF1aXJlbWVudHMudHh0CisKKyMuIENyZWF0ZSBhIGJyYW5jaCBgYHJlbGVhc2UtWC5Z
LlpgYCB3aXRoIHRoZSB2ZXJzaW9uIGZvciB0aGUgcmVsZWFzZS4KKworICAgKiAqKnBhdGNoIHJl
bGVhc2VzKio6IGZyb20gdGhlIGxhdGVzdCBgYG1hc3RlcmBgOworCisgICAqICoqbWlub3IgcmVs
ZWFzZXMqKjogZnJvbSB0aGUgbGF0ZXN0IGBgZmVhdHVyZXNgYDsgdGhlbiBtZXJnZSB3aXRoIHRo
ZSBsYXRlc3QgYGBtYXN0ZXJgYDsKKworICAgRW5zdXJlIHlvdXIgYXJlIGluIGEgY2xlYW4gd29y
ayB0cmVlLgorCisjLiBHZW5lcmF0ZSBkb2NzLCBjaGFuZ2Vsb2csIGFubm91bmNlbWVudHMgYW5k
IHVwbG9hZCBhIHBhY2thZ2UgdG8KKyAgIHlvdXIgYGBkZXZwaWBgIHN0YWdpbmcgc2VydmVyOjoK
KworICAgICBpbnZva2UgZ2VuZXJhdGUucHJlLXJlbGVhc2UgPFZFUlNJT04+IDxERVZQSSBVU0VS
PiAtLXBhc3N3b3JkIDxERVZQSSBQQVNTV09SRD4KKworICAgSWYgYGAtLXBhc3N3b3JkYGAgaXMg
bm90IGdpdmVuLCBpdCBpcyBhc3N1bWVkIHRoZSB1c2VyIGlzIGFscmVhZHkgbG9nZ2VkIGluIGBg
ZGV2cGlgYC4KKyAgIElmIHlvdSBkb24ndCBoYXZlIGFuIGFjY291bnQsIHBsZWFzZSBhc2sgZm9y
IG9uZS4KKworIy4gT3BlbiBhIFBSIGZvciB0aGlzIGJyYW5jaCB0YXJnZXRpbmcgYGBtYXN0ZXJg
YC4KKworIy4gVGVzdCB0aGUgcGFja2FnZQorCisgICAqICoqTWFudWFsIG1ldGhvZCoqCisKKyAg
ICAgUnVuIGZyb20gbXVsdGlwbGUgbWFjaGluZXM6OgorCisgICAgICAgZGV2cGkgdXNlIGh0dHBz
Oi8vZGV2cGkubmV0L1VTRVIvZGV2CisgICAgICAgZGV2cGkgdGVzdCBweXRlc3Q9PVZFUlNJT04K
KworICAgICBDaGVjayB0aGF0IHRlc3RzIHBhc3MgZm9yIHJlbGV2YW50IGNvbWJpbmF0aW9ucyB3
aXRoOjoKKworICAgICAgIGRldnBpIGxpc3QgcHl0ZXN0CisKKyAgICogKipDSSBzZXJ2ZXJzKioK
KworICAgICBDb25maWd1cmUgYSByZXBvc2l0b3J5IGFzIHBlci1pbnN0cnVjdGlvbnMgb24KKyAg
ICAgZGV2cGktY2xvdWQtdGVzdF8gdG8gdGVzdCB0aGUgcGFja2FnZSBvbiBUcmF2aXNfIGFuZCBB
cHBWZXlvcl8uCisgICAgIEFsbCB0ZXN0IGVudmlyb25tZW50cyBzaG91bGQgcGFzcy4KKworIy4g
UHVibGlzaCB0byBQeVBJOjoKKworICAgICAgaW52b2tlIGdlbmVyYXRlLnB1Ymxpc2gtcmVsZWFz
ZSA8VkVSU0lPTj4gPERFVlBJIFVTRVI+IDxQWVBJX05BTUU+CisKKyAgIHdoZXJlIFBZUElfTkFN
RSBpcyB0aGUgbmFtZSBvZiBweXBpLnB5dGhvbi5vcmcgYXMgY29uZmlndXJlZCBpbiB5b3VyIGBg
fi8ucHlwaXJjYGAKKyAgIGZpbGUgYGZvciBkZXZwaSA8aHR0cDovL2RvYy5kZXZwaS5uZXQvbGF0
ZXN0L3F1aWNrc3RhcnQtcmVsZWFzZXByb2Nlc3MuaHRtbD9oaWdobGlnaHQ9cHlwaXJjI2RldnBp
LXB1c2gtcmVsZWFzaW5nLXRvLWFuLWV4dGVybmFsLWluZGV4PmBfLgorCisjLiBBZnRlciBhIG1p
bm9yL21ham9yIHJlbGVhc2UsIG1lcmdlIGBgcmVsZWFzZS1YLlkuWmBgIGludG8gYGBtYXN0ZXJg
YCBhbmQgcHVzaCAob3Igb3BlbiBhIFBSKS4KKworLi4gX2RldnBpLWNsb3VkLXRlc3Q6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9vYmVzdHdhbHRlci9kZXZwaS1jbG91ZC10ZXN0CisuLiBfQXBwVmV5b3I6
IGh0dHBzOi8vd3d3LmFwcHZleW9yLmNvbS8KKy4uIF9UcmF2aXM6IGh0dHBzOi8vdHJhdmlzLWNp
Lm9yZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0xJQ0VO
U0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjI5ZGY0NWFjNDA1NTMyYzEwN2ViMjMzMjE3YmMyYWMxYWQ3MGM4OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0xJQ0VOU0UKQEAgLTAsMCArMSwyMSBAQAor
VGhlIE1JVCBMaWNlbnNlIChNSVQpCisKK0NvcHlyaWdodCAoYykgMjAwNC0yMDE3IEhvbGdlciBL
cmVrZWwgYW5kIG90aGVycworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m
IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mCit0aGlzIHNvZnR3YXJl
IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g
ZGVhbCBpbgordGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo
b3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0bwordXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw
dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKK29mIHRo
ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlz
IGZ1cm5pc2hlZCB0byBkbworc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
OgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj
ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u
cyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX
SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJ
TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK
K0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC
TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwK
K09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2MzBkZDRj
NjJhYTIyODIyNTcwM2RkNDU4OTk1ODQ3OGNlMjg3MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9SRUFETUUucnN0CkBAIC0wLDAgKzEsMTA5IEBACisuLiBpbWFnZTo6IGh0dHA6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L19zdGF0aWMvcHl0ZXN0MS5wbmcKKyAgIDp0YXJnZXQ6
IGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcKKyAgIDphbGlnbjogY2VudGVyCisgICA6YWx0OiBweXRl
c3QKKworLS0tLS0tCisKKy4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yv
cHl0ZXN0LnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0
ZXN0CisKKy4uIGltYWdlOjogaHR0cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9yZ2UvcHl0ZXN0
L2JhZGdlcy92ZXJzaW9uLnN2ZworICAgIDp0YXJnZXQ6IGh0dHBzOi8vYW5hY29uZGEub3JnL2Nv
bmRhLWZvcmdlL3B5dGVzdAorCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlw
aS9weXZlcnNpb25zL3B5dGVzdC5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9u
Lm9yZy9weXBpL3B5dGVzdAorCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY292
ZXJhbGxzL3B5dGVzdC1kZXYvcHl0ZXN0L21hc3Rlci5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczov
L2NvdmVyYWxscy5pby9yL3B5dGVzdC1kZXYvcHl0ZXN0CisKKy4uIGltYWdlOjogaHR0cHM6Ly90
cmF2aXMtY2kub3JnL3B5dGVzdC1kZXYvcHl0ZXN0LnN2Zz9icmFuY2g9bWFzdGVyCisgICAgOnRh
cmdldDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3B5dGVzdC1kZXYvcHl0ZXN0CisKKy4uIGltYWdl
OjogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9tcmdiamF1YTd0
MzNwZzZiP3N2Zz10cnVlCisgICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJv
amVjdC9weXRlc3Rib3QvcHl0ZXN0CisKK1RoZSBgYHB5dGVzdGBgIGZyYW1ld29yayBtYWtlcyBp
dCBlYXN5IHRvIHdyaXRlIHNtYWxsIHRlc3RzLCB5ZXQKK3NjYWxlcyB0byBzdXBwb3J0IGNvbXBs
ZXggZnVuY3Rpb25hbCB0ZXN0aW5nIGZvciBhcHBsaWNhdGlvbnMgYW5kIGxpYnJhcmllcy4KKwor
QW4gZXhhbXBsZSBvZiBhIHNpbXBsZSB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisK
KyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zYW1wbGUucHkKKyAgICBkZWYgaW5jKHgpOgorICAgICAg
ICByZXR1cm4geCArIDEKKworICAgIGRlZiB0ZXN0X2Fuc3dlcigpOgorICAgICAgICBhc3NlcnQg
aW5jKDMpID09IDUKKworCitUbyBleGVjdXRlIGl0OjoKKworICAgICQgcHl0ZXN0CisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIGNvbGxlY3RlZCAxIGl0ZW1zCisKKyAgICB0ZXN0X3Nh
bXBsZS5weSBGCisKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxV
UkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fIHRlc3RfYW5zd2VyIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXworCisgICAgICAgIGRlZiB0ZXN0X2Fuc3dlcigpOgorICAgID4gICAgICAgYXNz
ZXJ0IGluYygzKSA9PSA1CisgICAgRSAgICAgICBhc3NlcnQgNCA9PSA1CisgICAgRSAgICAgICAg
KyAgd2hlcmUgNCA9IGluYygzKQorCisgICAgdGVzdF9zYW1wbGUucHk6NTogQXNzZXJ0aW9uRXJy
b3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCBpbiAwLjA0IHNlY29u
ZHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworRHVlIHRvIGBgcHl0ZXN0YGAncyBk
ZXRhaWxlZCBhc3NlcnRpb24gaW50cm9zcGVjdGlvbiwgb25seSBwbGFpbiBgYGFzc2VydGBgIHN0
YXRlbWVudHMgYXJlIHVzZWQuIFNlZSBgZ2V0dGluZy1zdGFydGVkIDxodHRwOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQuaHRtbCNvdXItZmlyc3QtdGVzdC1ydW4+
YF8gZm9yIG1vcmUgZXhhbXBsZXMuCisKKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gRGV0YWls
ZWQgaW5mbyBvbiBmYWlsaW5nIGBhc3NlcnQgc3RhdGVtZW50cyA8aHR0cDovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvYXNzZXJ0Lmh0bWw+YF8gKG5vIG5lZWQgdG8gcmVtZW1iZXIgYGBzZWxm
LmFzc2VydCpgYCBuYW1lcyk7CisKKy0gYEF1dG8tZGlzY292ZXJ5CisgIDxodHRwOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9nb29kcHJhY3RpY2VzLmh0bWwjcHl0aG9uLXRlc3QtZGlzY292
ZXJ5PmBfCisgIG9mIHRlc3QgbW9kdWxlcyBhbmQgZnVuY3Rpb25zOworCistIGBNb2R1bGFyIGZp
eHR1cmVzIDxodHRwOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9maXh0dXJlLmh0bWw+YF8g
Zm9yCisgIG1hbmFnaW5nIHNtYWxsIG9yIHBhcmFtZXRyaXplZCBsb25nLWxpdmVkIHRlc3QgcmVz
b3VyY2VzOworCistIENhbiBydW4gYHVuaXR0ZXN0IDxodHRwOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC91bml0dGVzdC5odG1sPmBfIChvciB0cmlhbCksCisgIGBub3NlIDxodHRwOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9ub3NlLmh0bWw+YF8gdGVzdCBzdWl0ZXMgb3V0IG9mIHRo
ZSBib3g7CisKKy0gUHl0aG9uIDIuNywgUHl0aG9uIDMuNCssIFB5UHkgMi4zLCBKeXRob24gMi41
ICh1bnRlc3RlZCk7CisKKy0gUmljaCBwbHVnaW4gYXJjaGl0ZWN0dXJlLCB3aXRoIG92ZXIgMzE1
KyBgZXh0ZXJuYWwgcGx1Z2lucyA8aHR0cDovL3BsdWdpbmNvbXBhdC5oZXJva3VhcHAuY29tPmBf
IGFuZCB0aHJpdmluZyBjb21tdW5pdHk7CisKKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0t
LQorCitGb3IgZnVsbCBkb2N1bWVudGF0aW9uLCBpbmNsdWRpbmcgaW5zdGFsbGF0aW9uLCB0dXRv
cmlhbHMgYW5kIFBERiBkb2N1bWVudHMsIHBsZWFzZSBzZWUgaHR0cDovL2RvY3MucHl0ZXN0Lm9y
Zy4KKworCitCdWdzL1JlcXVlc3RzCistLS0tLS0tLS0tLS0tCisKK1BsZWFzZSB1c2UgdGhlIGBH
aXRIdWIgaXNzdWUgdHJhY2tlciA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcz5gXyB0byBzdWJtaXQgYnVncyBvciByZXF1ZXN0IGZlYXR1cmVzLgorCisKK0NoYW5n
ZWxvZworLS0tLS0tLS0tCisKK0NvbnN1bHQgdGhlIGBDaGFuZ2Vsb2cgPGh0dHA6Ly9kb2NzLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sPmBfXyBwYWdlIGZvciBmaXhlcyBhbmQg
ZW5oYW5jZW1lbnRzIG9mIGVhY2ggdmVyc2lvbi4KKworCitMaWNlbnNlCistLS0tLS0tCisKK0Nv
cHlyaWdodCBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIwMDQtMjAxNy4KKworRGlzdHJpYnV0
ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgTUlUYF8gbGljZW5zZSwgcHl0ZXN0IGlzIGZyZWUg
YW5kIG9wZW4gc291cmNlIHNvZnR3YXJlLgorCisuLiBfYE1JVGA6IGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9MSUNFTlNFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZTQxZjA1MDRlNDcwNjQyOGY4YmMyNDFkNWQyZDEwZWRiYTAxMzhi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQpAQCAt
MCwwICsxLDggQEAKK19fYWxsX18gPSBbJ19fdmVyc2lvbl9fJ10KKwordHJ5OgorICAgIGZyb20g
Ll92ZXJzaW9uIGltcG9ydCB2ZXJzaW9uIGFzIF9fdmVyc2lvbl9fCitleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgIyBicm9rZW4gaW5zdGFsbGF0aW9uLCB3ZSBkb24ndCBldmVuIHRyeQorICAgICMg
dW5rbm93biBvbmx5IHdvcmtzIGJlY2F1c2Ugd2UgZG8gcG9vciBtYW5zIHZlcnNpb24gY29tcGFy
ZQorICAgIF9fdmVyc2lvbl9fID0gJ3Vua25vd24nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L19hcmdjb21wbGV0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA2MjVhNzVmOWYxYjcwNTBkMzhmMzY1YzQxMzVkZDQ4YWE3MWIxZDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQpA
QCAtMCwwICsxLDEwMyBAQAorCisiIiJhbGxvdyBiYXNoLWNvbXBsZXRpb24gZm9yIGFyZ3BhcnNl
IHdpdGggYXJnY29tcGxldGUgaWYgaW5zdGFsbGVkCituZWVkcyBhcmdjb21wbGV0ZT49MC41LjYg
Zm9yIHB5dGhvbiAzLjIvMy4zIChvbGRlciB2ZXJzaW9ucyBmYWlsCit0byBmaW5kIHRoZSBtYWdp
YyBzdHJpbmcsIHNvIF9BUkdDT01QTEVURSBlbnYuIHZhciBpcyBuZXZlciBzZXQsIGFuZAordGhp
cyBkb2VzIG5vdCBuZWVkIHNwZWNpYWwgY29kZS4KKworRnVuY3Rpb24gdHJ5X2FyZ2NvbXBsZXRl
KHBhcnNlcikgc2hvdWxkIGJlIGNhbGxlZCBkaXJlY3RseSBiZWZvcmUKK3RoZSBjYWxsIHRvIEFy
Z3VtZW50UGFyc2VyLnBhcnNlX2FyZ3MoKS4KKworVGhlIGZpbGVzY29tcGxldGVyIGlzIHdoYXQg
eW91IG5vcm1hbGx5IHdvdWxkIHVzZSBvbiB0aGUgcG9zaXRpb25hbAorYXJndW1lbnRzIHNwZWNp
ZmljYXRpb24sIGluIG9yZGVyIHRvIGdldCAiZGlybmFtZS8iIGFmdGVyICJkaXJuPFRBQj4iCitp
bnN0ZWFkIG9mIHRoZSBkZWZhdWx0ICJkaXJuYW1lICI6CisKKyAgIG9wdHBhcnNlci5hZGRfYXJn
dW1lbnQoQ29uZmlnLl9maWxlX29yX2RpciwgbmFyZ3M9JyonCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKS5jb21wbGV0ZXI9ZmlsZXNjb21wbGV0ZXIKKworT3RoZXIsIGFwcGxpY2F0
aW9uIHNwZWNpZmljLCBjb21wbGV0ZXJzIHNob3VsZCBnbyBpbiB0aGUgZmlsZQorZG9pbmcgdGhl
IGFkZF9hcmd1bWVudCBjYWxscyBhcyB0aGV5IG5lZWQgdG8gYmUgc3BlY2lmaWVkIGFzIC5jb21w
bGV0ZXIKK2F0dHJpYnV0ZXMgYXMgd2VsbC4gKElmIGFyZ2NvbXBsZXRlIGlzIG5vdCBpbnN0YWxs
ZWQsIHRoZSBmdW5jdGlvbiB0aGUKK2F0dHJpYnV0ZSBwb2ludHMgdG8gd2lsbCBub3QgYmUgdXNl
ZCkuCisKK1NQRUVEVVAKKz09PT09PT0KK1RoZSBnZW5lcmljIGFyZ2NvbXBsZXRlIHNjcmlwdCBm
b3IgYmFzaC1jb21wbGV0aW9uCisoL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC9weXRob24tYXJnY29t
cGxldGUuc2ggKQordXNlcyBhIHB5dGhvbiBwcm9ncmFtIHRvIGRldGVybWluZSBzdGFydHVwIHNj
cmlwdCBnZW5lcmF0ZWQgYnkgcGlwLgorWW91IGNhbiBzcGVlZCB1cCBjb21wbGV0aW9uIHNvbWV3
aGF0IGJ5IGNoYW5naW5nIHRoaXMgc2NyaXB0IHRvIGluY2x1ZGUKKyAgIyBQWVRIT05fQVJHQ09N
UExFVEVfT0sKK3NvIHRoZSB0aGUgcHl0aG9uLWFyZ2NvbXBsZXRlLWNoZWNrLWVhc3ktaW5zdGFs
bC1zY3JpcHQgZG9lcyBub3QKK25lZWQgdG8gYmUgY2FsbGVkIHRvIGZpbmQgdGhlIGVudHJ5IHBv
aW50IG9mIHRoZSBjb2RlIGFuZCBzZWUgaWYgdGhhdCBpcworbWFya2VkICB3aXRoIFBZVEhPTl9B
UkdDT01QTEVURV9PSworCitJTlNUQUxML0RFQlVHR0lORworPT09PT09PT09PT09PT09PT0KK1Rv
IGluY2x1ZGUgdGhpcyBzdXBwb3J0IGluIGFub3RoZXIgYXBwbGljYXRpb24gdGhhdCBoYXMgc2V0
dXAucHkgZ2VuZXJhdGVkCitzY3JpcHRzOgorLSBhZGQgdGhlIGxpbmU6CisgICAgIyBQWVRIT05f
QVJHQ09NUExFVEVfT0sKKyAgbmVhciB0aGUgdG9wIG9mIHRoZSBtYWluIHB5dGhvbiBlbnRyeSBw
b2ludAorLSBpbmNsdWRlIGluIHRoZSBmaWxlIGNhbGxpbmcgcGFyc2VfYXJncygpOgorICAgIGZy
b20gX2FyZ2NvbXBsZXRlIGltcG9ydCB0cnlfYXJnY29tcGxldGUsIGZpbGVzY29tcGxldGVyCisg
ICAsIGNhbGwgdHJ5X2FyZ2NvbXBsZXRlIGp1c3QgYmVmb3JlIHBhcnNlX2FyZ3MoKSwgYW5kIG9w
dGlvbmFsbHkgYWRkCisgICBmaWxlc2NvbXBsZXRlciB0byB0aGUgcG9zaXRpb25hbCBhcmd1bWVu
dHMnIGFkZF9hcmd1bWVudCgpCitJZiB0aGluZ3MgZG8gbm90IHdvcmsgcmlnaHQgYXdheToKKy0g
c3dpdGNoIG9uIGFyZ2NvbXBsZXRlIGRlYnVnZ2luZyB3aXRoIChhbHNvIGhlbHBmdWwgd2hlbiBk
b2luZyBjdXN0b20KKyAgY29tcGxldGVycyk6CisgICAgZXhwb3J0IF9BUkNfREVCVUc9MQorLSBy
dW46CisgICAgcHl0aG9uLWFyZ2NvbXBsZXRlLWNoZWNrLWVhc3ktaW5zdGFsbC1zY3JpcHQgJCh3
aGljaCBhcHBuYW1lKQorICAgIGVjaG8gJD8KKyAgd2lsbCBlY2hvIDAgaWYgdGhlIG1hZ2ljIGxp
bmUgaGFzIGJlZW4gZm91bmQsIDEgaWYgbm90CistIHNvbWV0aW1lcyBpdCBoZWxwcyB0byBmaW5k
IGVhcmx5IG9uIGVycm9ycyB1c2luZzoKKyAgICBfQVJHQ09NUExFVEU9MSBfQVJDX0RFQlVHPTEg
YXBwbmFtZQorICB3aGljaCBzaG91bGQgdGhyb3cgYSBLZXlFcnJvcjogJ0NPTVBMSU5FJyAod2hp
Y2ggaXMgcHJvcGVybHkgc2V0IGJ5IHRoZQorICBnbG9iYWwgYXJnY29tcGxldGUgc2NyaXB0KS4K
KyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0IG9zCitmcm9tIGdsb2IgaW1wb3J0IGds
b2IKKworCitjbGFzcyBGYXN0RmlsZXNDb21wbGV0ZXI6CisgICAgJ0Zhc3QgZmlsZSBjb21wbGV0
ZXIgY2xhc3MnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGlyZWN0b3JpZXM9VHJ1ZSk6Cisg
ICAgICAgIHNlbGYuZGlyZWN0b3JpZXMgPSBkaXJlY3RvcmllcworCisgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIHByZWZpeCwgKiprd2FyZ3MpOgorICAgICAgICAiIiJvbmx5IGNhbGxlZCBvbiBub24g
b3B0aW9uIGNvbXBsZXRpb25zIiIiCisgICAgICAgIGlmIG9zLnBhdGguc2VwIGluIHByZWZpeFsx
Ol06CisgICAgICAgICAgICBwcmVmaXhfZGlyID0gbGVuKG9zLnBhdGguZGlybmFtZShwcmVmaXgp
ICsgb3MucGF0aC5zZXApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmVmaXhfZGlyID0g
MAorICAgICAgICBjb21wbGV0aW9uID0gW10KKyAgICAgICAgZ2xvYmJlZCA9IFtdCisgICAgICAg
IGlmICcqJyBub3QgaW4gcHJlZml4IGFuZCAnPycgbm90IGluIHByZWZpeDoKKyAgICAgICAgICAg
ICMgd2UgYXJlIG9uIHVuaXgsIG90aGVyd2lzZSBubyBiYXNoCisgICAgICAgICAgICBpZiBub3Qg
cHJlZml4IG9yIHByZWZpeFstMV0gPT0gb3MucGF0aC5zZXA6CisgICAgICAgICAgICAgICAgZ2xv
YmJlZC5leHRlbmQoZ2xvYihwcmVmaXggKyAnLionKSkKKyAgICAgICAgICAgIHByZWZpeCArPSAn
KicKKyAgICAgICAgZ2xvYmJlZC5leHRlbmQoZ2xvYihwcmVmaXgpKQorICAgICAgICBmb3IgeCBp
biBzb3J0ZWQoZ2xvYmJlZCk6CisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKHgpOgorICAg
ICAgICAgICAgICAgIHggKz0gJy8nCisgICAgICAgICAgICAjIGFwcGVuZCBzdHJpcHBpbmcgdGhl
IHByZWZpeCAobGlrZSBiYXNoLCBub3QgbGlrZSBjb21wZ2VuKQorICAgICAgICAgICAgY29tcGxl
dGlvbi5hcHBlbmQoeFtwcmVmaXhfZGlyOl0pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uCisK
KworaWYgb3MuZW52aXJvbi5nZXQoJ19BUkdDT01QTEVURScpOgorICAgIHRyeToKKyAgICAgICAg
aW1wb3J0IGFyZ2NvbXBsZXRlLmNvbXBsZXRlcnMKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6Cisg
ICAgICAgIHN5cy5leGl0KC0xKQorICAgIGZpbGVzY29tcGxldGVyID0gRmFzdEZpbGVzQ29tcGxl
dGVyKCkKKworICAgIGRlZiB0cnlfYXJnY29tcGxldGUocGFyc2VyKToKKyAgICAgICAgYXJnY29t
cGxldGUuYXV0b2NvbXBsZXRlKHBhcnNlciwgYWx3YXlzX2NvbXBsZXRlX29wdGlvbnM9RmFsc2Up
CitlbHNlOgorICAgIGRlZiB0cnlfYXJnY29tcGxldGUocGFyc2VyKToKKyAgICAgICAgcGFzcwor
ICAgIGZpbGVzY29tcGxldGVyID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9fY29kZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODE1YzEzYjQyYzI1YmQzMTQ5ODhkYmFhN2ZmOWY0ZTNkMWQyZTVjMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX19pbml0X18ucHkK
QEAgLTAsMCArMSwxMCBAQAorIiIiIHB5dGhvbiBpbnNwZWN0aW9uL2NvZGUgZ2VuZXJhdGlvbiBB
UEkgIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCitmcm9tIC5jb2RlIGltcG9ydCBDb2RlICAjIG5vcWEKK2Zyb20gLmNv
ZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8gICMgbm9xYQorZnJvbSAuY29kZSBpbXBvcnQgRnJhbWUg
ICMgbm9xYQorZnJvbSAuY29kZSBpbXBvcnQgVHJhY2ViYWNrICAjIG5vcWEKK2Zyb20gLmNvZGUg
aW1wb3J0IGdldHJhd2NvZGUgICMgbm9xYQorZnJvbSAuc291cmNlIGltcG9ydCBTb3VyY2UgICMg
bm9xYQorZnJvbSAuc291cmNlIGltcG9ydCBjb21waWxlXyBhcyBjb21waWxlICAjIG5vcWEKK2Zy
b20gLnNvdXJjZSBpbXBvcnQgZ2V0ZnNsaW5lbm8gICMgbm9xYQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9fY29kZS9fcHkydHJhY2ViYWNrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYWNmMGE0MjhkODgwNjkxZmUw
MzBhODM1YmMyNThkMDc4NTA2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkKQEAgLTAsMCArMSw4NSBAQAorIyBjb3BpZWQgZnJv
bSBweXRob24tMi43LjMncyB0cmFjZWJhY2sucHkKKyMgQ0hBTkdFUzoKKyMgLSBzb21lX3N0ciBp
cyByZXBsYWNlZCwgdHJ5aW5nIHRvIGNyZWF0ZSB1bmljb2RlIHN0cmluZ3MKKyMKK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
K2ltcG9ydCB0eXBlcworCisKK2RlZiBmb3JtYXRfZXhjZXB0aW9uX29ubHkoZXR5cGUsIHZhbHVl
KToKKyAgICAiIiJGb3JtYXQgdGhlIGV4Y2VwdGlvbiBwYXJ0IG9mIGEgdHJhY2ViYWNrLgorCisg
ICAgVGhlIGFyZ3VtZW50cyBhcmUgdGhlIGV4Y2VwdGlvbiB0eXBlIGFuZCB2YWx1ZSBzdWNoIGFz
IGdpdmVuIGJ5CisgICAgc3lzLmxhc3RfdHlwZSBhbmQgc3lzLmxhc3RfdmFsdWUuIFRoZSByZXR1
cm4gdmFsdWUgaXMgYSBsaXN0IG9mCisgICAgc3RyaW5ncywgZWFjaCBlbmRpbmcgaW4gYSBuZXds
aW5lLgorCisgICAgTm9ybWFsbHksIHRoZSBsaXN0IGNvbnRhaW5zIGEgc2luZ2xlIHN0cmluZzsg
aG93ZXZlciwgZm9yCisgICAgU3ludGF4RXJyb3IgZXhjZXB0aW9ucywgaXQgY29udGFpbnMgc2V2
ZXJhbCBsaW5lcyB0aGF0ICh3aGVuCisgICAgcHJpbnRlZCkgZGlzcGxheSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiBhYm91dCB3aGVyZSB0aGUgc3ludGF4CisgICAgZXJyb3Igb2NjdXJyZWQuCisKKyAg
ICBUaGUgbWVzc2FnZSBpbmRpY2F0aW5nIHdoaWNoIGV4Y2VwdGlvbiBvY2N1cnJlZCBpcyBhbHdh
eXMgdGhlIGxhc3QKKyAgICBzdHJpbmcgaW4gdGhlIGxpc3QuCisKKyAgICAiIiIKKworICAgICMg
QW4gaW5zdGFuY2Ugc2hvdWxkIG5vdCBoYXZlIGEgbWVhbmluZ2Z1bCB2YWx1ZSBwYXJhbWV0ZXIs
IGJ1dAorICAgICMgc29tZXRpbWVzIGRvZXMsIHBhcnRpY3VsYXJseSBmb3Igc3RyaW5nIGV4Y2Vw
dGlvbnMsIHN1Y2ggYXMKKyAgICAjID4+PiByYWlzZSBzdHJpbmcxLCBzdHJpbmcyICAjIGRlcHJl
Y2F0ZWQKKyAgICAjCisgICAgIyBDbGVhciB0aGVzZSBvdXQgZmlyc3QgYmVjYXVzZSBpc3N1YnR5
cGUoc3RyaW5nMSwgU3ludGF4RXJyb3IpCisgICAgIyB3b3VsZCB0aHJvdyBhbm90aGVyIGV4Y2Vw
dGlvbiBhbmQgbWFzayB0aGUgb3JpZ2luYWwgcHJvYmxlbS4KKyAgICBpZiAoaXNpbnN0YW5jZShl
dHlwZSwgQmFzZUV4Y2VwdGlvbikgb3IKKyAgICAgICAgaXNpbnN0YW5jZShldHlwZSwgdHlwZXMu
SW5zdGFuY2VUeXBlKSBvcgorICAgICAgICAgICAgZXR5cGUgaXMgTm9uZSBvciB0eXBlKGV0eXBl
KSBpcyBzdHIpOgorICAgICAgICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUs
IHZhbHVlKV0KKworICAgIHN0eXBlID0gZXR5cGUuX19uYW1lX18KKworICAgIGlmIG5vdCBpc3N1
YmNsYXNzKGV0eXBlLCBTeW50YXhFcnJvcik6CisgICAgICAgIHJldHVybiBbX2Zvcm1hdF9maW5h
bF9leGNfbGluZShzdHlwZSwgdmFsdWUpXQorCisgICAgIyBJdCB3YXMgYSBzeW50YXggZXJyb3I7
IHNob3cgZXhhY3RseSB3aGVyZSB0aGUgcHJvYmxlbSB3YXMgZm91bmQuCisgICAgbGluZXMgPSBb
XQorICAgIHRyeToKKyAgICAgICAgbXNnLCAoZmlsZW5hbWUsIGxpbmVubywgb2Zmc2V0LCBiYWRs
aW5lKSA9IHZhbHVlLmFyZ3MKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBwYXNzCisg
ICAgZWxzZToKKyAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZSBvciAiPHN0cmluZz4iCisgICAg
ICAgIGxpbmVzLmFwcGVuZCgnICBGaWxlICIlcyIsIGxpbmUgJWRcbicgJSAoZmlsZW5hbWUsIGxp
bmVubykpCisgICAgICAgIGlmIGJhZGxpbmUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGJhZGxpbmUsIGJ5dGVzKTogICMgcHl0aG9uIDIgb25seQorICAgICAgICAgICAg
ICAgIGJhZGxpbmUgPSBiYWRsaW5lLmRlY29kZSgndXRmLTgnLCAncmVwbGFjZScpCisgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQodScgICAgJXNcbicgJSBiYWRsaW5lLnN0cmlwKCkpCisgICAgICAg
ICAgICBpZiBvZmZzZXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9
IGJhZGxpbmUucnN0cmlwKCdcbicpWzpvZmZzZXRdLmxzdHJpcCgpCisgICAgICAgICAgICAgICAg
IyBub24tc3BhY2Ugd2hpdGVzcGFjZSAobGlrZXMgdGFicykgbXVzdCBiZSBrZXB0IGZvciBhbGln
bm1lbnQKKyAgICAgICAgICAgICAgICBjYXJldHNwYWNlID0gKChjLmlzc3BhY2UoKSBhbmQgYyBv
ciAnICcpIGZvciBjIGluIGNhcmV0c3BhY2UpCisgICAgICAgICAgICAgICAgIyBvbmx5IHRocmVl
IHNwYWNlcyB0byBhY2NvdW50IGZvciBvZmZzZXQxID09IHBvcyAwCisgICAgICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCcgICAlc15cbicgJSAnJy5qb2luKGNhcmV0c3BhY2UpKQorICAgICAgICB2
YWx1ZSA9IG1zZworCisgICAgbGluZXMuYXBwZW5kKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5
cGUsIHZhbHVlKSkKKyAgICByZXR1cm4gbGluZXMKKworCitkZWYgX2Zvcm1hdF9maW5hbF9leGNf
bGluZShldHlwZSwgdmFsdWUpOgorICAgICIiIlJldHVybiBhIGxpc3Qgb2YgYSBzaW5nbGUgbGlu
ZSAtLSBub3JtYWwgY2FzZSBmb3IgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5IiIiCisgICAgdmFsdWVz
dHIgPSBfc29tZV9zdHIodmFsdWUpCisgICAgaWYgdmFsdWUgaXMgTm9uZSBvciBub3QgdmFsdWVz
dHI6CisgICAgICAgIGxpbmUgPSAiJXNcbiIgJSBldHlwZQorICAgIGVsc2U6CisgICAgICAgIGxp
bmUgPSAiJXM6ICVzXG4iICUgKGV0eXBlLCB2YWx1ZXN0cikKKyAgICByZXR1cm4gbGluZQorCisK
K2RlZiBfc29tZV9zdHIodmFsdWUpOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHVuaWNvZGUo
dmFsdWUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cmV0dXJuIHN0cih2YWx1ZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHBhc3MKKyAgICByZXR1cm4gJzx1bnByaW50YWJsZSAlcyBvYmplY3Q+JyAlIHR5cGUodmFsdWUp
Ll9fbmFtZV9fCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZiMjMyYmQ0
MzBlOWI0ZjhhZDc2OWUzMDU3ZGRlZmVjMjgxYTY3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQpAQCAtMCwwICsxLDkwNiBAQAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
aW1wb3J0IHN5cworZnJvbSBpbnNwZWN0IGltcG9ydCBDT19WQVJBUkdTLCBDT19WQVJLRVlXT1JE
UworaW1wb3J0IHJlCitmcm9tIHdlYWtyZWYgaW1wb3J0IHJlZgorZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgX1BZMiwgX1BZMywgUFkzNSwgc2FmZV9zdHIKKworaW1wb3J0IHB5CitidWlsdGlu
X3JlcHIgPSByZXByCisKK2lmIF9QWTM6CisgICAgZnJvbSB0cmFjZWJhY2sgaW1wb3J0IGZvcm1h
dF9leGNlcHRpb25fb25seQorZWxzZToKKyAgICBmcm9tIC5fcHkydHJhY2ViYWNrIGltcG9ydCBm
b3JtYXRfZXhjZXB0aW9uX29ubHkKKworCitjbGFzcyBDb2RlKG9iamVjdCk6CisgICAgIiIiIHdy
YXBwZXIgYXJvdW5kIFB5dGhvbiBjb2RlIG9iamVjdHMgIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcmF3Y29kZSk6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJhd2NvZGUsICJjb19maWxl
bmFtZSIpOgorICAgICAgICAgICAgcmF3Y29kZSA9IGdldHJhd2NvZGUocmF3Y29kZSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5maWxlbmFtZSA9IHJhd2NvZGUuY29fZmlsZW5hbWUK
KyAgICAgICAgICAgIHNlbGYuZmlyc3RsaW5lbm8gPSByYXdjb2RlLmNvX2ZpcnN0bGluZW5vIC0g
MQorICAgICAgICAgICAgc2VsZi5uYW1lID0gcmF3Y29kZS5jb19uYW1lCisgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigibm90IGEgY29k
ZSBvYmplY3Q6ICVyIiAlIChyYXdjb2RlLCkpCisgICAgICAgIHNlbGYucmF3ID0gcmF3Y29kZQor
CisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLnJhdyA9
PSBvdGhlci5yYXcKKworICAgIF9faGFzaF9fID0gTm9uZQorCisgICAgZGVmIF9fbmVfXyhzZWxm
LCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHBhdGgoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYSBwYXRoIG9iamVj
dCBwb2ludGluZyB0byBzb3VyY2UgY29kZSAobm90ZSB0aGF0IGl0CisgICAgICAgIG1pZ2h0IG5v
dCBwb2ludCB0byBhbiBhY3R1YWxseSBleGlzdGluZyBmaWxlKS4gIiIiCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHNlbGYucmF3LmNvX2ZpbGVuYW1lKQorICAg
ICAgICAgICAgIyBtYXliZSBkb24ndCB0cnkgdGhpcyBjaGVja2luZworICAgICAgICAgICAgaWYg
bm90IHAuY2hlY2soKToKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJweS5wYXRoIGNo
ZWNrIGZhaWxlZC4iKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICMgWFhY
IG1heWJlIHRyeSBoYXJkZXIgbGlrZSB0aGUgd2VpcmQgbG9naWMKKyAgICAgICAgICAgICMgaW4g
dGhlIHN0YW5kYXJkIGxpYiBbbGluZWNhY2hlLnVwZGF0ZWNhY2hlXSBkb2VzPworICAgICAgICAg
ICAgcCA9IHNlbGYucmF3LmNvX2ZpbGVuYW1lCisKKyAgICAgICAgcmV0dXJuIHAKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBmdWxsc291cmNlKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGEg
X3B5dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0aGUgZnVsbCBzb3VyY2UgZmlsZSBvZiB0
aGUgY29kZQorICAgICAgICAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlIGltcG9ydCBz
b3VyY2UKKyAgICAgICAgZnVsbCwgXyA9IHNvdXJjZS5maW5kc291cmNlKHNlbGYucmF3KQorICAg
ICAgICByZXR1cm4gZnVsbAorCisgICAgZGVmIHNvdXJjZShzZWxmKToKKyAgICAgICAgIiIiIHJl
dHVybiBhIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVjdCBmb3IgdGhlIGNvZGUgb2JqZWN0J3Mg
c291cmNlIG9ubHkKKyAgICAgICAgIiIiCisgICAgICAgICMgcmV0dXJuIHNvdXJjZSBvbmx5IGZv
ciB0aGF0IHBhcnQgb2YgY29kZQorICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQorICAgICAg
ICByZXR1cm4gX3B5dGVzdC5fY29kZS5Tb3VyY2Uoc2VsZi5yYXcpCisKKyAgICBkZWYgZ2V0YXJn
cyhzZWxmLCB2YXI9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIGEgdHVwbGUgd2l0aCB0aGUg
YXJndW1lbnQgbmFtZXMgZm9yIHRoZSBjb2RlIG9iamVjdAorCisgICAgICAgICAgICBpZiAndmFy
JyBpcyBzZXQgVHJ1ZSBhbHNvIHJldHVybiB0aGUgbmFtZXMgb2YgdGhlIHZhcmlhYmxlIGFuZAor
ICAgICAgICAgICAga2V5d29yZCBhcmd1bWVudHMgd2hlbiBwcmVzZW50CisgICAgICAgICIiIgor
ICAgICAgICAjIGhhbmRmdWxsIHNob3J0Y3V0IGZvciBnZXR0aW5nIGFyZ3MKKyAgICAgICAgcmF3
ID0gc2VsZi5yYXcKKyAgICAgICAgYXJnY291bnQgPSByYXcuY29fYXJnY291bnQKKyAgICAgICAg
aWYgdmFyOgorICAgICAgICAgICAgYXJnY291bnQgKz0gcmF3LmNvX2ZsYWdzICYgQ09fVkFSQVJH
UworICAgICAgICAgICAgYXJnY291bnQgKz0gcmF3LmNvX2ZsYWdzICYgQ09fVkFSS0VZV09SRFMK
KyAgICAgICAgcmV0dXJuIHJhdy5jb192YXJuYW1lc1s6YXJnY291bnRdCisKKworY2xhc3MgRnJh
bWUob2JqZWN0KToKKyAgICAiIiJXcmFwcGVyIGFyb3VuZCBhIFB5dGhvbiBmcmFtZSBob2xkaW5n
IGZfbG9jYWxzIGFuZCBmX2dsb2JhbHMKKyAgICBpbiB3aGljaCBleHByZXNzaW9ucyBjYW4gYmUg
ZXZhbHVhdGVkLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZyYW1lKToKKyAgICAgICAg
c2VsZi5saW5lbm8gPSBmcmFtZS5mX2xpbmVubyAtIDEKKyAgICAgICAgc2VsZi5mX2dsb2JhbHMg
PSBmcmFtZS5mX2dsb2JhbHMKKyAgICAgICAgc2VsZi5mX2xvY2FscyA9IGZyYW1lLmZfbG9jYWxz
CisgICAgICAgIHNlbGYucmF3ID0gZnJhbWUKKyAgICAgICAgc2VsZi5jb2RlID0gQ29kZShmcmFt
ZS5mX2NvZGUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3RhdGVtZW50KHNlbGYpOgorICAg
ICAgICAiIiIgc3RhdGVtZW50IHRoaXMgZnJhbWUgaXMgYXQgIiIiCisgICAgICAgIGltcG9ydCBf
cHl0ZXN0Ll9jb2RlCisgICAgICAgIGlmIHNlbGYuY29kZS5mdWxsc291cmNlIGlzIE5vbmU6Cisg
ICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIpCisgICAgICAgIHJldHVy
biBzZWxmLmNvZGUuZnVsbHNvdXJjZS5nZXRzdGF0ZW1lbnQoc2VsZi5saW5lbm8pCisKKyAgICBk
ZWYgZXZhbChzZWxmLCBjb2RlLCAqKnZhcnMpOgorICAgICAgICAiIiIgZXZhbHVhdGUgJ2NvZGUn
IGluIHRoZSBmcmFtZQorCisgICAgICAgICAgICAndmFycycgYXJlIG9wdGlvbmFsIGFkZGl0aW9u
YWwgbG9jYWwgdmFyaWFibGVzCisKKyAgICAgICAgICAgIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0
aGUgZXZhbHVhdGlvbgorICAgICAgICAiIiIKKyAgICAgICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9j
YWxzLmNvcHkoKQorICAgICAgICBmX2xvY2Fscy51cGRhdGUodmFycykKKyAgICAgICAgcmV0dXJu
IGV2YWwoY29kZSwgc2VsZi5mX2dsb2JhbHMsIGZfbG9jYWxzKQorCisgICAgZGVmIGV4ZWNfKHNl
bGYsIGNvZGUsICoqdmFycyk6CisgICAgICAgICIiIiBleGVjICdjb2RlJyBpbiB0aGUgZnJhbWUK
KworICAgICAgICAgICAgJ3ZhcnMnIGFyZSBvcHRpb25hOyBhZGRpdGlvbmFsIGxvY2FsIHZhcmlh
YmxlcworICAgICAgICAiIiIKKyAgICAgICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9jYWxzLmNvcHko
KQorICAgICAgICBmX2xvY2Fscy51cGRhdGUodmFycykKKyAgICAgICAgcHkuYnVpbHRpbi5leGVj
Xyhjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCisKKyAgICBkZWYgcmVwcihzZWxmLCBv
YmplY3QpOgorICAgICAgICAiIiIgcmV0dXJuIGEgJ3NhZmUnIChub24tcmVjdXJzaXZlLCBvbmUt
bGluZSkgc3RyaW5nIHJlcHIgZm9yICdvYmplY3QnCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gcHkuaW8uc2FmZXJlcHIob2JqZWN0KQorCisgICAgZGVmIGlzX3RydWUoc2VsZiwgb2JqZWN0
KToKKyAgICAgICAgcmV0dXJuIG9iamVjdAorCisgICAgZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZh
bHNlKToKKyAgICAgICAgIiIiIHJldHVybiBhIGxpc3Qgb2YgdHVwbGVzIChuYW1lLCB2YWx1ZSkg
Zm9yIGFsbCBhcmd1bWVudHMKKworICAgICAgICAgICAgaWYgJ3ZhcicgaXMgc2V0IFRydWUgYWxz
byBpbmNsdWRlIHRoZSB2YXJpYWJsZSBhbmQga2V5d29yZAorICAgICAgICAgICAgYXJndW1lbnRz
IHdoZW4gcHJlc2VudAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dmFsID0gW10KKyAgICAgICAg
Zm9yIGFyZyBpbiBzZWxmLmNvZGUuZ2V0YXJncyh2YXIpOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHJldHZhbC5hcHBlbmQoKGFyZywgc2VsZi5mX2xvY2Fsc1thcmddKSkKKyAg
ICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzICAgICAjIHRo
aXMgY2FuIG9jY3VyIHdoZW4gdXNpbmcgUHN5Y28KKyAgICAgICAgcmV0dXJuIHJldHZhbAorCisK
K2NsYXNzIFRyYWNlYmFja0VudHJ5KG9iamVjdCk6CisgICAgIiIiIGEgc2luZ2xlIGVudHJ5IGlu
IGEgdHJhY2ViYWNrICIiIgorCisgICAgX3JlcHJfc3R5bGUgPSBOb25lCisgICAgZXhwcmluZm8g
PSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3ZW50cnksIGV4Y2luZm89Tm9uZSk6
CisgICAgICAgIHNlbGYuX2V4Y2luZm8gPSBleGNpbmZvCisgICAgICAgIHNlbGYuX3Jhd2VudHJ5
ID0gcmF3ZW50cnkKKyAgICAgICAgc2VsZi5saW5lbm8gPSByYXdlbnRyeS50Yl9saW5lbm8gLSAx
CisKKyAgICBkZWYgc2V0X3JlcHJfc3R5bGUoc2VsZiwgbW9kZSk6CisgICAgICAgIGFzc2VydCBt
b2RlIGluICgic2hvcnQiLCAibG9uZyIpCisgICAgICAgIHNlbGYuX3JlcHJfc3R5bGUgPSBtb2Rl
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnJhbWUoc2VsZik6CisgICAgICAgIGltcG9ydCBf
cHl0ZXN0Ll9jb2RlCisgICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLkZyYW1lKHNlbGYuX3Jh
d2VudHJ5LnRiX2ZyYW1lKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlbGxpbmUoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLmxpbmVubyAtIHNlbGYuZnJhbWUuY29kZS5maXJzdGxpbmVu
bworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxUcmFjZWJhY2tF
bnRyeSAlczolZD4iICUgKHNlbGYuZnJhbWUuY29kZS5wYXRoLCBzZWxmLmxpbmVubyArIDEpCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3RhdGVtZW50KHNlbGYpOgorICAgICAgICAiIiIgX3B5
dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0aGUgY3VycmVudCBzdGF0ZW1lbnQgIiIiCisg
ICAgICAgIHNvdXJjZSA9IHNlbGYuZnJhbWUuY29kZS5mdWxsc291cmNlCisgICAgICAgIHJldHVy
biBzb3VyY2UuZ2V0c3RhdGVtZW50KHNlbGYubGluZW5vKQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIHBhdGgoc2VsZik6CisgICAgICAgICIiIiBwYXRoIHRvIHRoZSBzb3VyY2UgY29kZSAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuY29kZS5wYXRoCisKKyAgICBkZWYgZ2V0bG9jYWxz
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5mX2xvY2FscworICAgIGxvY2FscyA9
IHByb3BlcnR5KGdldGxvY2FscywgTm9uZSwgTm9uZSwgImxvY2FscyBvZiB1bmRlcmxheWluZyBm
cmFtZSIpCisKKyAgICBkZWYgZ2V0Zmlyc3RsaW5lc291cmNlKHNlbGYpOgorICAgICAgICAjIG9u
IEp5dGhvbiB0aGlzIGZpcnN0bGluZW5vIGNhbiBiZSAtMSBhcHBhcmVudGx5CisgICAgICAgIHJl
dHVybiBtYXgoc2VsZi5mcmFtZS5jb2RlLmZpcnN0bGluZW5vLCAwKQorCisgICAgZGVmIGdldHNv
dXJjZShzZWxmLCBhc3RjYWNoZT1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBmYWlsaW5nIHNv
dXJjZSBjb2RlLiAiIiIKKyAgICAgICAgIyB3ZSB1c2UgdGhlIHBhc3NlZCBpbiBhc3RjYWNoZSB0
byBub3QgcmVwYXJzZSBhc3R0cmVlcworICAgICAgICAjIHdpdGhpbiBleGNlcHRpb24gaW5mbyBw
cmludGluZworICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuc291cmNlIGltcG9ydCBnZXRzdGF0
ZW1lbnRyYW5nZV9hc3QKKyAgICAgICAgc291cmNlID0gc2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3Vy
Y2UKKyAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICBrZXkgPSBhc3Rub2RlID0gTm9uZQorICAgICAgICBpZiBhc3RjYWNoZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGtleSA9IHNlbGYuZnJhbWUuY29kZS5wYXRoCisgICAgICAgICAg
ICBpZiBrZXkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgYXN0bm9kZSA9IGFzdGNhY2hl
LmdldChrZXksIE5vbmUpCisgICAgICAgIHN0YXJ0ID0gc2VsZi5nZXRmaXJzdGxpbmVzb3VyY2Uo
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3Rub2RlLCBfLCBlbmQgPSBnZXRzdGF0ZW1l
bnRyYW5nZV9hc3Qoc2VsZi5saW5lbm8sIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Rub2RlPWFzdG5vZGUpCisgICAgICAgIGV4
Y2VwdCBTeW50YXhFcnJvcjoKKyAgICAgICAgICAgIGVuZCA9IHNlbGYubGluZW5vICsgMQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgaWYga2V5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIGFzdGNhY2hlW2tleV0gPSBhc3Rub2RlCisgICAgICAgIHJldHVybiBzb3VyY2Vbc3RhcnQ6
ZW5kXQorCisgICAgc291cmNlID0gcHJvcGVydHkoZ2V0c291cmNlKQorCisgICAgZGVmIGlzaGlk
ZGVuKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIGN1cnJlbnQgZnJhbWUg
aGFzIGEgdmFyIF9fdHJhY2ViYWNraGlkZV9fCisgICAgICAgICAgICByZXNvbHZpbmcgdG8gVHJ1
ZQorCisgICAgICAgICAgICBJZiBfX3RyYWNlYmFja2hpZGVfXyBpcyBhIGNhbGxhYmxlLCBpdCBn
ZXRzIGNhbGxlZCB3aXRoIHRoZQorICAgICAgICAgICAgRXhjZXB0aW9uSW5mbyBpbnN0YW5jZSBh
bmQgY2FuIGRlY2lkZSB3aGV0aGVyIHRvIGhpZGUgdGhlIHRyYWNlYmFjay4KKworICAgICAgICAg
ICAgbW9zdGx5IGZvciBpbnRlcm5hbCB1c2UKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHRiaCA9IHNlbGYuZnJhbWUuZl9sb2NhbHNbJ19fdHJhY2ViYWNraGlkZV9fJ10K
KyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHRiaCA9IHNlbGYuZnJhbWUuZl9nbG9iYWxzWydfX3RyYWNlYmFja2hpZGVfXyddCisgICAg
ICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgaWYgY2FsbGFibGUodGJoKToKKyAgICAgICAgICAgIHJldHVybiB0YmgoTm9uZSBp
ZiBzZWxmLl9leGNpbmZvIGlzIE5vbmUgZWxzZSBzZWxmLl9leGNpbmZvKCkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4gdGJoCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgZm4gPSBzdHIoc2VsZi5wYXRoKQorICAgICAgICBleGNl
cHQgcHkuZXJyb3IuRXJyb3I6CisgICAgICAgICAgICBmbiA9ICc/Pz8nCisgICAgICAgIG5hbWUg
PSBzZWxmLmZyYW1lLmNvZGUubmFtZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBsaW5lID0g
c3RyKHNlbGYuc3RhdGVtZW50KS5sc3RyaXAoKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRl
cnJ1cHQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6ICAjIG5vcWEKKyAgICAg
ICAgICAgIGxpbmUgPSAiPz8/IgorICAgICAgICByZXR1cm4gIiAgRmlsZSAlcjolZCBpbiAlc1xu
ICAlc1xuIiAlIChmbiwgc2VsZi5saW5lbm8gKyAxLCBuYW1lLCBsaW5lKQorCisgICAgZGVmIG5h
bWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmNvZGUucmF3LmNvX25hbWUKKyAg
ICBuYW1lID0gcHJvcGVydHkobmFtZSwgTm9uZSwgTm9uZSwgImNvX25hbWUgb2YgdW5kZXJsYXlp
bmcgY29kZSIpCisKKworY2xhc3MgVHJhY2ViYWNrKGxpc3QpOgorICAgICIiIiBUcmFjZWJhY2sg
b2JqZWN0cyBlbmNhcHN1bGF0ZSBhbmQgb2ZmZXIgaGlnaGVyIGxldmVsCisgICAgICAgIGFjY2Vz
cyB0byBUcmFjZWJhY2sgZW50cmllcy4KKyAgICAiIiIKKyAgICBFbnRyeSA9IFRyYWNlYmFja0Vu
dHJ5CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGIsIGV4Y2luZm89Tm9uZSk6CisgICAgICAg
ICIiIiBpbml0aWFsaXplIGZyb20gZ2l2ZW4gcHl0aG9uIHRyYWNlYmFjayBvYmplY3QgYW5kIEV4
Y2VwdGlvbkluZm8gIiIiCisgICAgICAgIHNlbGYuX2V4Y2luZm8gPSBleGNpbmZvCisgICAgICAg
IGlmIGhhc2F0dHIodGIsICd0Yl9uZXh0Jyk6CisgICAgICAgICAgICBkZWYgZihjdXIpOgorICAg
ICAgICAgICAgICAgIHdoaWxlIGN1ciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAg
eWllbGQgc2VsZi5FbnRyeShjdXIsIGV4Y2luZm89ZXhjaW5mbykKKyAgICAgICAgICAgICAgICAg
ICAgY3VyID0gY3VyLnRiX25leHQKKyAgICAgICAgICAgIGxpc3QuX19pbml0X18oc2VsZiwgZih0
YikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaXN0Ll9faW5pdF9fKHNlbGYsIHRiKQor
CisgICAgZGVmIGN1dChzZWxmLCBwYXRoPU5vbmUsIGxpbmVubz1Ob25lLCBmaXJzdGxpbmVubz1O
b25lLCBleGNsdWRlcGF0aD1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIFRyYWNlYmFjayBp
bnN0YW5jZSB3cmFwcGluZyBwYXJ0IG9mIHRoaXMgVHJhY2ViYWNrCisKKyAgICAgICAgICAgIGJ5
IHByb3ZkaW5nIGFueSBjb21iaW5hdGlvbiBvZiBwYXRoLCBsaW5lbm8gYW5kIGZpcnN0bGluZW5v
LCB0aGUKKyAgICAgICAgICAgIGZpcnN0IGZyYW1lIHRvIHN0YXJ0IHRoZSB0by1iZS1yZXR1cm5l
ZCB0cmFjZWJhY2sgaXMgZGV0ZXJtaW5lZAorCisgICAgICAgICAgICB0aGlzIGFsbG93cyBjdXR0
aW5nIHRoZSBmaXJzdCBwYXJ0IG9mIGEgVHJhY2ViYWNrIGluc3RhbmNlIGUuZy4KKyAgICAgICAg
ICAgIGZvciBmb3JtYXR0aW5nIHJlYXNvbnMgKHJlbW92aW5nIHNvbWUgdW5pbnRlcmVzdGluZyBi
aXRzIHRoYXQgZGVhbAorICAgICAgICAgICAgd2l0aCBoYW5kbGluZyBvZiB0aGUgZXhjZXB0aW9u
L3RyYWNlYmFjaykKKyAgICAgICAgIiIiCisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAg
ICAgICBjb2RlID0geC5mcmFtZS5jb2RlCisgICAgICAgICAgICBjb2RlcGF0aCA9IGNvZGUucGF0
aAorICAgICAgICAgICAgaWYgKChwYXRoIGlzIE5vbmUgb3IgY29kZXBhdGggPT0gcGF0aCkgYW5k
CisgICAgICAgICAgICAgICAgKGV4Y2x1ZGVwYXRoIGlzIE5vbmUgb3Igbm90IGhhc2F0dHIoY29k
ZXBhdGgsICdyZWx0bycpIG9yCisgICAgICAgICAgICAgICAgIG5vdCBjb2RlcGF0aC5yZWx0byhl
eGNsdWRlcGF0aCkpIGFuZAorICAgICAgICAgICAgICAgIChsaW5lbm8gaXMgTm9uZSBvciB4Lmxp
bmVubyA9PSBsaW5lbm8pIGFuZAorICAgICAgICAgICAgICAgICAgICAoZmlyc3RsaW5lbm8gaXMg
Tm9uZSBvciB4LmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8gPT0gZmlyc3RsaW5lbm8pKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVHJhY2ViYWNrKHguX3Jhd2VudHJ5LCBzZWxmLl9leGNpbmZvKQor
ICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Cisg
ICAgICAgIHZhbCA9IHN1cGVyKFRyYWNlYmFjaywgc2VsZikuX19nZXRpdGVtX18oa2V5KQorICAg
ICAgICBpZiBpc2luc3RhbmNlKGtleSwgdHlwZShzbGljZSgwKSkpOgorICAgICAgICAgICAgdmFs
ID0gc2VsZi5fX2NsYXNzX18odmFsKQorICAgICAgICByZXR1cm4gdmFsCisKKyAgICBkZWYgZmls
dGVyKHNlbGYsIGZuPWxhbWJkYSB4OiBub3QgeC5pc2hpZGRlbigpKToKKyAgICAgICAgIiIiIHJl
dHVybiBhIFRyYWNlYmFjayBpbnN0YW5jZSB3aXRoIGNlcnRhaW4gaXRlbXMgcmVtb3ZlZAorCisg
ICAgICAgICAgICBmbiBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2V0cyBhIHNpbmdsZSBhcmd1bWVudCwg
YSBUcmFjZWJhY2tFbnRyeQorICAgICAgICAgICAgaW5zdGFuY2UsIGFuZCBzaG91bGQgcmV0dXJu
IFRydWUgd2hlbiB0aGUgaXRlbSBzaG91bGQgYmUgYWRkZWQKKyAgICAgICAgICAgIHRvIHRoZSBU
cmFjZWJhY2ssIEZhbHNlIHdoZW4gbm90CisKKyAgICAgICAgICAgIGJ5IGRlZmF1bHQgdGhpcyBy
ZW1vdmVzIGFsbCB0aGUgVHJhY2ViYWNrRW50cmllcyB3aGljaCBhcmUgaGlkZGVuCisgICAgICAg
ICAgICAoc2VlIGlzaGlkZGVuKCkgYWJvdmUpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
VHJhY2ViYWNrKGZpbHRlcihmbiwgc2VsZiksIHNlbGYuX2V4Y2luZm8pCisKKyAgICBkZWYgZ2V0
Y3Jhc2hlbnRyeShzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBsYXN0IG5vbi1oaWRkZW4gdHJh
Y2ViYWNrIGVudHJ5IHRoYXQgbGVhZAorICAgICAgICB0byB0aGUgZXhjZXB0aW9uIG9mIGEgdHJh
Y2ViYWNrLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTEsIC1sZW4oc2Vs
ZikgLSAxLCAtMSk6CisgICAgICAgICAgICBlbnRyeSA9IHNlbGZbaV0KKyAgICAgICAgICAgIGlm
IG5vdCBlbnRyeS5pc2hpZGRlbigpOgorICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeQorICAg
ICAgICByZXR1cm4gc2VsZlstMV0KKworICAgIGRlZiByZWN1cnNpb25pbmRleChzZWxmKToKKyAg
ICAgICAgIiIiIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZyYW1lL1RyYWNlYmFja0VudHJ5IHdo
ZXJlIHJlY3Vyc2lvbgorICAgICAgICAgICAgb3JpZ2luYXRlcyBpZiBhcHByb3ByaWF0ZSwgTm9u
ZSBpZiBubyByZWN1cnNpb24gb2NjdXJyZWQKKyAgICAgICAgIiIiCisgICAgICAgIGNhY2hlID0g
e30KKyAgICAgICAgZm9yIGksIGVudHJ5IGluIGVudW1lcmF0ZShzZWxmKToKKyAgICAgICAgICAg
ICMgaWQgZm9yIHRoZSBjb2RlLnJhdyBpcyBuZWVkZWQgdG8gd29yayBhcm91bmQKKyAgICAgICAg
ICAgICMgdGhlIHN0cmFuZ2UgbWV0YXByb2dyYW1taW5nIGluIHRoZSBkZWNvcmF0b3IgbGliIGZy
b20gcHlwaQorICAgICAgICAgICAgIyB3aGljaCBnZW5lcmF0ZXMgY29kZSBvYmplY3RzIHRoYXQg
aGF2ZSBoYXNoL3ZhbHVlIGVxdWFsaXR5CisgICAgICAgICAgICAjIFhYWCBuZWVkcyBhIHRlc3QK
KyAgICAgICAgICAgIGtleSA9IGVudHJ5LmZyYW1lLmNvZGUucGF0aCwgaWQoZW50cnkuZnJhbWUu
Y29kZS5yYXcpLCBlbnRyeS5saW5lbm8KKyAgICAgICAgICAgICMgcHJpbnQgImNoZWNraW5nIGZv
ciByZWN1cnNpb24gYXQiLCBrZXkKKyAgICAgICAgICAgIHZhbHVlcyA9IGNhY2hlLnNldGRlZmF1
bHQoa2V5LCBbXSkKKyAgICAgICAgICAgIGlmIHZhbHVlczoKKyAgICAgICAgICAgICAgICBmID0g
ZW50cnkuZnJhbWUKKyAgICAgICAgICAgICAgICBsb2MgPSBmLmZfbG9jYWxzCisgICAgICAgICAg
ICAgICAgZm9yIG90aGVybG9jIGluIHZhbHVlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZi5p
c190cnVlKGYuZXZhbChjb19lcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18xPWxvYywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18yPW90aGVybG9j
KSk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaQorICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZChlbnRyeS5mcmFtZS5mX2xvY2FscykKKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitj
b19lcXVhbCA9IGNvbXBpbGUoJ19fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzEgPT0gX19yZWN1cnNp
b25jYWNoZV9sb2NhbHNfMicsCisgICAgICAgICAgICAgICAgICAgJz8nLCAnZXZhbCcpCisKKwor
Y2xhc3MgRXhjZXB0aW9uSW5mbyhvYmplY3QpOgorICAgICIiIiB3cmFwcyBzeXMuZXhjX2luZm8o
KSBvYmplY3RzIGFuZCBvZmZlcnMKKyAgICAgICAgaGVscCBmb3IgbmF2aWdhdGluZyB0aGUgdHJh
Y2ViYWNrLgorICAgICIiIgorICAgIF9zdHJpcHRleHQgPSAnJworICAgIF9hc3NlcnRfc3RhcnRf
cmVwciA9ICJBc3NlcnRpb25FcnJvcih1XCdhc3NlcnQgIiBpZiBfUFkyIGVsc2UgIkFzc2VydGlv
bkVycm9yKFwnYXNzZXJ0ICIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0dXA9Tm9uZSwgZXhw
cmluZm89Tm9uZSk6CisgICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCisgICAgICAgIGlmIHR1
cCBpcyBOb25lOgorICAgICAgICAgICAgdHVwID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAg
IGlmIGV4cHJpbmZvIGlzIE5vbmUgYW5kIGlzaW5zdGFuY2UodHVwWzFdLCBBc3NlcnRpb25FcnJv
cik6CisgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBnZXRhdHRyKHR1cFsxXSwgJ21zZycsIE5v
bmUpCisgICAgICAgICAgICAgICAgaWYgZXhwcmluZm8gaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgZXhwcmluZm8gPSBweS5pby5zYWZlcmVwcih0dXBbMV0pCisgICAgICAgICAgICAgICAg
aWYgZXhwcmluZm8gYW5kIGV4cHJpbmZvLnN0YXJ0c3dpdGgoc2VsZi5fYXNzZXJ0X3N0YXJ0X3Jl
cHIpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdHJpcHRleHQgPSAnQXNzZXJ0aW9uRXJy
b3I6ICcKKyAgICAgICAgc2VsZi5fZXhjaW5mbyA9IHR1cAorICAgICAgICAjOiB0aGUgZXhjZXB0
aW9uIGNsYXNzCisgICAgICAgIHNlbGYudHlwZSA9IHR1cFswXQorICAgICAgICAjOiB0aGUgZXhj
ZXB0aW9uIGluc3RhbmNlCisgICAgICAgIHNlbGYudmFsdWUgPSB0dXBbMV0KKyAgICAgICAgIzog
dGhlIGV4Y2VwdGlvbiByYXcgdHJhY2ViYWNrCisgICAgICAgIHNlbGYudGIgPSB0dXBbMl0KKyAg
ICAgICAgIzogdGhlIGV4Y2VwdGlvbiB0eXBlIG5hbWUKKyAgICAgICAgc2VsZi50eXBlbmFtZSA9
IHNlbGYudHlwZS5fX25hbWVfXworICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHRyYWNlYmFjayAo
X3B5dGVzdC5fY29kZS5UcmFjZWJhY2sgaW5zdGFuY2UpCisgICAgICAgIHNlbGYudHJhY2ViYWNr
ID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soc2VsZi50YiwgZXhjaW5mbz1yZWYoc2VsZikpCisK
KyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPEV4Y2VwdGlvbkluZm8g
JXMgdGJsZW49JWQ+IiAlIChzZWxmLnR5cGVuYW1lLCBsZW4oc2VsZi50cmFjZWJhY2spKQorCisg
ICAgZGVmIGV4Y29ubHkoc2VsZiwgdHJ5c2hvcnQ9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJu
IHRoZSBleGNlcHRpb24gYXMgYSBzdHJpbmcKKworICAgICAgICAgICAgd2hlbiAndHJ5c2hvcnQn
IHJlc29sdmVzIHRvIFRydWUsIGFuZCB0aGUgZXhjZXB0aW9uIGlzIGEKKyAgICAgICAgICAgIF9w
eXRlc3QuX2NvZGUuX0Fzc2VydGlvbkVycm9yLCBvbmx5IHRoZSBhY3R1YWwgZXhjZXB0aW9uIHBh
cnQgb2YKKyAgICAgICAgICAgIHRoZSBleGNlcHRpb24gcmVwcmVzZW50YXRpb24gaXMgcmV0dXJu
ZWQgKHNvICdBc3NlcnRpb25FcnJvcjogJyBpcworICAgICAgICAgICAgcmVtb3ZlZCBmcm9tIHRo
ZSBiZWdpbm5pbmcpCisgICAgICAgICIiIgorICAgICAgICBsaW5lcyA9IGZvcm1hdF9leGNlcHRp
b25fb25seShzZWxmLnR5cGUsIHNlbGYudmFsdWUpCisgICAgICAgIHRleHQgPSAnJy5qb2luKGxp
bmVzKQorICAgICAgICB0ZXh0ID0gdGV4dC5yc3RyaXAoKQorICAgICAgICBpZiB0cnlzaG9ydDoK
KyAgICAgICAgICAgIGlmIHRleHQuc3RhcnRzd2l0aChzZWxmLl9zdHJpcHRleHQpOgorICAgICAg
ICAgICAgICAgIHRleHQgPSB0ZXh0W2xlbihzZWxmLl9zdHJpcHRleHQpOl0KKyAgICAgICAgcmV0
dXJuIHRleHQKKworICAgIGRlZiBlcnJpc2luc3RhbmNlKHNlbGYsIGV4Yyk6CisgICAgICAgICIi
IiByZXR1cm4gVHJ1ZSBpZiB0aGUgZXhjZXB0aW9uIGlzIGFuIGluc3RhbmNlIG9mIGV4YyAiIiIK
KyAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uoc2VsZi52YWx1ZSwgZXhjKQorCisgICAgZGVmIF9n
ZXRyZXByY3Jhc2goc2VsZik6CisgICAgICAgIGV4Y29ubHkgPSBzZWxmLmV4Y29ubHkodHJ5c2hv
cnQ9VHJ1ZSkKKyAgICAgICAgZW50cnkgPSBzZWxmLnRyYWNlYmFjay5nZXRjcmFzaGVudHJ5KCkK
KyAgICAgICAgcGF0aCwgbGluZW5vID0gZW50cnkuZnJhbWUuY29kZS5yYXcuY29fZmlsZW5hbWUs
IGVudHJ5LmxpbmVubworICAgICAgICByZXR1cm4gUmVwckZpbGVMb2NhdGlvbihwYXRoLCBsaW5l
bm8gKyAxLCBleGNvbmx5KQorCisgICAgZGVmIGdldHJlcHIoc2VsZiwgc2hvd2xvY2Fscz1GYWxz
ZSwgc3R5bGU9ImxvbmciLAorICAgICAgICAgICAgICAgIGFic3BhdGg9RmFsc2UsIHRiZmlsdGVy
PVRydWUsIGZ1bmNhcmdzPUZhbHNlKToKKyAgICAgICAgIiIiIHJldHVybiBzdHIoKWFibGUgcmVw
cmVzZW50YXRpb24gb2YgdGhpcyBleGNlcHRpb24gaW5mby4KKyAgICAgICAgICAgIHNob3dsb2Nh
bHM6IHNob3cgbG9jYWxzIHBlciB0cmFjZWJhY2sgZW50cnkKKyAgICAgICAgICAgIHN0eWxlOiBs
b25nfHNob3J0fG5vfG5hdGl2ZSB0cmFjZWJhY2sgc3R5bGUKKyAgICAgICAgICAgIHRiZmlsdGVy
OiBoaWRlIGVudHJpZXMgKHdoZXJlIF9fdHJhY2ViYWNraGlkZV9fIGlzIHRydWUpCisKKyAgICAg
ICAgICAgIGluIGNhc2Ugb2Ygc3R5bGU9PW5hdGl2ZSwgdGJmaWx0ZXIgYW5kIHNob3dsb2NhbHMg
aXMgaWdub3JlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN0eWxlID09ICduYXRpdmUnOgor
ICAgICAgICAgICAgcmV0dXJuIFJlcHJFeGNlcHRpb25JbmZvKFJlcHJUcmFjZWJhY2tOYXRpdmUo
CisgICAgICAgICAgICAgICAgcHkuc3RkLnRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKAorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnR5cGUsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudmFs
dWUsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhY2ViYWNrWzBdLl9yYXdlbnRyeSwKKyAg
ICAgICAgICAgICAgICApKSwgc2VsZi5fZ2V0cmVwcmNyYXNoKCkpCisKKyAgICAgICAgZm10ID0g
Rm9ybWF0dGVkRXhjaW5mbyhzaG93bG9jYWxzPXNob3dsb2NhbHMsIHN0eWxlPXN0eWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3BhdGg9YWJzcGF0aCwgdGJmaWx0ZXI9dGJm
aWx0ZXIsIGZ1bmNhcmdzPWZ1bmNhcmdzKQorICAgICAgICByZXR1cm4gZm10LnJlcHJfZXhjaW5m
byhzZWxmKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIGVudHJ5ID0gc2VsZi50
cmFjZWJhY2tbLTFdCisgICAgICAgIGxvYyA9IFJlcHJGaWxlTG9jYXRpb24oZW50cnkucGF0aCwg
ZW50cnkubGluZW5vICsgMSwgc2VsZi5leGNvbmx5KCkpCisgICAgICAgIHJldHVybiBzdHIobG9j
KQorCisgICAgZGVmIF9fdW5pY29kZV9fKHNlbGYpOgorICAgICAgICBlbnRyeSA9IHNlbGYudHJh
Y2ViYWNrWy0xXQorICAgICAgICBsb2MgPSBSZXByRmlsZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVu
dHJ5LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgpKQorICAgICAgICByZXR1cm4gdW5pY29kZShs
b2MpCisKKyAgICBkZWYgbWF0Y2goc2VsZiwgcmVnZXhwKToKKyAgICAgICAgIiIiCisgICAgICAg
IE1hdGNoIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gJ3JlZ2V4cCcgb24gdGhlIHN0cmluZyByZXBy
ZXNlbnRhdGlvbiBvZgorICAgICAgICB0aGUgZXhjZXB0aW9uLiBJZiBpdCBtYXRjaGVzIHRoZW4g
VHJ1ZSBpcyByZXR1cm5lZCAoc28gdGhhdCBpdCBpcworICAgICAgICBwb3NzaWJsZSB0byB3cml0
ZSAnYXNzZXJ0IGV4Y2luZm8ubWF0Y2goKScpLiBJZiBpdCBkb2Vzbid0IG1hdGNoIGFuCisgICAg
ICAgIEFzc2VydGlvbkVycm9yIGlzIHJhaXNlZC4KKyAgICAgICAgIiIiCisgICAgICAgIF9fdHJh
Y2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBub3QgcmUuc2VhcmNoKHJlZ2V4cCwgc3Ry
KHNlbGYudmFsdWUpKToKKyAgICAgICAgICAgIGFzc2VydCAwLCAiUGF0dGVybiAnezAhc30nIG5v
dCBmb3VuZCBpbiAnezEhc30nIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgcmVnZXhwLCBzZWxm
LnZhbHVlKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2NsYXNzIEZvcm1hdHRlZEV4Y2luZm8o
b2JqZWN0KToKKyAgICAiIiIgcHJlc2VudGluZyBpbmZvcm1hdGlvbiBhYm91dCBmYWlsaW5nIEZ1
bmN0aW9ucyBhbmQgR2VuZXJhdG9ycy4gIiIiCisgICAgIyBmb3IgdHJhY2ViYWNrIGVudHJpZXMK
KyAgICBmbG93X21hcmtlciA9ICI+IgorICAgIGZhaWxfbWFya2VyID0gIkUiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc2hvd2xvY2Fscz1GYWxzZSwgc3R5bGU9ImxvbmciLCBhYnNwYXRoPVRy
dWUsIHRiZmlsdGVyPVRydWUsIGZ1bmNhcmdzPUZhbHNlKToKKyAgICAgICAgc2VsZi5zaG93bG9j
YWxzID0gc2hvd2xvY2FscworICAgICAgICBzZWxmLnN0eWxlID0gc3R5bGUKKyAgICAgICAgc2Vs
Zi50YmZpbHRlciA9IHRiZmlsdGVyCisgICAgICAgIHNlbGYuZnVuY2FyZ3MgPSBmdW5jYXJncwor
ICAgICAgICBzZWxmLmFic3BhdGggPSBhYnNwYXRoCisgICAgICAgIHNlbGYuYXN0Y2FjaGUgPSB7
fQorCisgICAgZGVmIF9nZXRpbmRlbnQoc2VsZiwgc291cmNlKToKKyAgICAgICAgIyBmaWd1cmUg
b3V0IGluZGVudCBmb3IgZ2l2ZW4gc291cmNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMg
PSBzdHIoc291cmNlLmdldHN0YXRlbWVudChsZW4oc291cmNlKSAtIDEpKQorICAgICAgICBleGNl
cHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6
ICAjIG5vcWEKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzID0gc3RyKHNvdXJj
ZVstMV0pCisgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAgICAgICAgICAgICAg
IHJldHVybiAwCisgICAgICAgIHJldHVybiA0ICsgKGxlbihzKSAtIGxlbihzLmxzdHJpcCgpKSkK
KworICAgIGRlZiBfZ2V0ZW50cnlzb3VyY2Uoc2VsZiwgZW50cnkpOgorICAgICAgICBzb3VyY2Ug
PSBlbnRyeS5nZXRzb3VyY2Uoc2VsZi5hc3RjYWNoZSkKKyAgICAgICAgaWYgc291cmNlIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgc291cmNlID0gc291cmNlLmRlaW5kZW50KCkKKyAgICAgICAg
cmV0dXJuIHNvdXJjZQorCisgICAgZGVmIF9zYWZlcmVwcihzZWxmLCBvYmopOgorICAgICAgICBy
ZXR1cm4gcHkuaW8uc2FmZXJlcHIob2JqKQorCisgICAgZGVmIHJlcHJfYXJncyhzZWxmLCBlbnRy
eSk6CisgICAgICAgIGlmIHNlbGYuZnVuY2FyZ3M6CisgICAgICAgICAgICBhcmdzID0gW10KKyAg
ICAgICAgICAgIGZvciBhcmduYW1lLCBhcmd2YWx1ZSBpbiBlbnRyeS5mcmFtZS5nZXRhcmdzKHZh
cj1UcnVlKToKKyAgICAgICAgICAgICAgICBhcmdzLmFwcGVuZCgoYXJnbmFtZSwgc2VsZi5fc2Fm
ZXJlcHIoYXJndmFsdWUpKSkKKyAgICAgICAgICAgIHJldHVybiBSZXByRnVuY0FyZ3MoYXJncykK
KworICAgIGRlZiBnZXRfc291cmNlKHNlbGYsIHNvdXJjZSwgbGluZV9pbmRleD0tMSwgZXhjaW5m
bz1Ob25lLCBzaG9ydD1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gZm9ybWF0dGVkIGFuZCBt
YXJrZWQgdXAgc291cmNlIGxpbmVzLiAiIiIKKyAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUK
KyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZSBvciBsaW5lX2lu
ZGV4ID49IGxlbihzb3VyY2UubGluZXMpOgorICAgICAgICAgICAgc291cmNlID0gX3B5dGVzdC5f
Y29kZS5Tb3VyY2UoIj8/PyIpCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gMAorICAgICAgICBp
ZiBsaW5lX2luZGV4IDwgMDoKKyAgICAgICAgICAgIGxpbmVfaW5kZXggKz0gbGVuKHNvdXJjZSkK
KyAgICAgICAgc3BhY2VfcHJlZml4ID0gIiAgICAiCisgICAgICAgIGlmIHNob3J0OgorICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4
XS5zdHJpcCgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNl
LmxpbmVzWzpsaW5lX2luZGV4XToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2Vf
cHJlZml4ICsgbGluZSkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLmZsb3dfbWFya2Vy
ICsgIiAgICIgKyBzb3VyY2UubGluZXNbbGluZV9pbmRleF0pCisgICAgICAgICAgICBmb3IgbGlu
ZSBpbiBzb3VyY2UubGluZXNbbGluZV9pbmRleCArIDE6XToKKyAgICAgICAgICAgICAgICBsaW5l
cy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgbGluZSkKKyAgICAgICAgaWYgZXhjaW5mbyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGluZGVudCA9IDQgaWYgc2hvcnQgZWxzZSBzZWxmLl9nZXRpbmRl
bnQoc291cmNlKQorICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2V0X2V4Y29ubHkoZXhj
aW5mbywgaW5kZW50PWluZGVudCwgbWFya2FsbD1UcnVlKSkKKyAgICAgICAgcmV0dXJuIGxpbmVz
CisKKyAgICBkZWYgZ2V0X2V4Y29ubHkoc2VsZiwgZXhjaW5mbywgaW5kZW50PTQsIG1hcmthbGw9
RmFsc2UpOgorICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGluZGVudCA9ICIgIiAqIGluZGVu
dAorICAgICAgICAjIGdldCB0aGUgcmVhbCBleGNlcHRpb24gaW5mb3JtYXRpb24gb3V0CisgICAg
ICAgIGV4bGluZXMgPSBleGNpbmZvLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkuc3BsaXQoJ1xuJykK
KyAgICAgICAgZmFpbGluZGVudCA9IHNlbGYuZmFpbF9tYXJrZXIgKyBpbmRlbnRbMTpdCisgICAg
ICAgIGZvciBsaW5lIGluIGV4bGluZXM6CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZmFpbGlu
ZGVudCArIGxpbmUpCisgICAgICAgICAgICBpZiBub3QgbWFya2FsbDoKKyAgICAgICAgICAgICAg
ICBmYWlsaW5kZW50ID0gaW5kZW50CisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIHJl
cHJfbG9jYWxzKHNlbGYsIGxvY2Fscyk6CisgICAgICAgIGlmIHNlbGYuc2hvd2xvY2FsczoKKyAg
ICAgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgICAgIGtleXMgPSBbbG9jIGZvciBsb2MgaW4g
bG9jYWxzIGlmIGxvY1swXSAhPSAiQCJdCisgICAgICAgICAgICBrZXlzLnNvcnQoKQorICAgICAg
ICAgICAgZm9yIG5hbWUgaW4ga2V5czoKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvY2Fsc1tu
YW1lXQorICAgICAgICAgICAgICAgIGlmIG5hbWUgPT0gJ19fYnVpbHRpbnNfXyc6CisgICAgICAg
ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiX19idWlsdGluc19fID0gPGJ1aWx0aW5zPiIpCisg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGZvcm1hdHRp
bmcgY291bGQgYWxsIGJlIGhhbmRsZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICAgICMgX3Jl
cHIoKSBmdW5jdGlvbiwgd2hpY2ggaXMgb25seSByZXBybGliLlJlcHIgaW4KKyAgICAgICAgICAg
ICAgICAgICAgIyBkaXNndWlzZSwgc28gaXMgdmVyeSBjb25maWd1cmFibGUuCisgICAgICAgICAg
ICAgICAgICAgIHN0cl9yZXByID0gc2VsZi5fc2FmZXJlcHIodmFsdWUpCisgICAgICAgICAgICAg
ICAgICAgICMgaWYgbGVuKHN0cl9yZXByKSA8IDcwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0LCB0
dXBsZSwgZGljdCkpOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiUtMTBzID0g
JXMiICUgKG5hbWUsIHN0cl9yZXByKSkKKyAgICAgICAgICAgICAgICAgICAgIyBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICAjICAgIHNlbGYuX2xpbmUoIiUtMTBzID1cXCIgJSAobmFtZSwpKQor
ICAgICAgICAgICAgICAgICAgICAjICAgICMgWFhYCisgICAgICAgICAgICAgICAgICAgICMgICAg
cHkuc3RkLnBwcmludC5wcHJpbnQodmFsdWUsIHN0cmVhbT1zZWxmLmV4Y2luZm93cml0ZXIpCisg
ICAgICAgICAgICByZXR1cm4gUmVwckxvY2FscyhsaW5lcykKKworICAgIGRlZiByZXByX3RyYWNl
YmFja19lbnRyeShzZWxmLCBlbnRyeSwgZXhjaW5mbz1Ob25lKToKKyAgICAgICAgaW1wb3J0IF9w
eXRlc3QuX2NvZGUKKyAgICAgICAgc291cmNlID0gc2VsZi5fZ2V0ZW50cnlzb3VyY2UoZW50cnkp
CisgICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgorICAgICAgICAgICAgc291cmNlID0gX3B5dGVz
dC5fY29kZS5Tb3VyY2UoIj8/PyIpCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gMAorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgIyBlbnRyeS5nZXRmaXJzdGxpbmVzb3VyY2UoKSBjYW4gYmUg
LTEsIHNob3VsZCBiZSAwIG9uIGp5dGhvbgorICAgICAgICAgICAgbGluZV9pbmRleCA9IGVudHJ5
LmxpbmVubyAtIG1heChlbnRyeS5nZXRmaXJzdGxpbmVzb3VyY2UoKSwgMCkKKworICAgICAgICBs
aW5lcyA9IFtdCisgICAgICAgIHN0eWxlID0gZW50cnkuX3JlcHJfc3R5bGUKKyAgICAgICAgaWYg
c3R5bGUgaXMgTm9uZToKKyAgICAgICAgICAgIHN0eWxlID0gc2VsZi5zdHlsZQorICAgICAgICBp
ZiBzdHlsZSBpbiAoInNob3J0IiwgImxvbmciKToKKyAgICAgICAgICAgIHNob3J0ID0gc3R5bGUg
PT0gInNob3J0IgorICAgICAgICAgICAgcmVwcmFyZ3MgPSBzZWxmLnJlcHJfYXJncyhlbnRyeSkg
aWYgbm90IHNob3J0IGVsc2UgTm9uZQorICAgICAgICAgICAgcyA9IHNlbGYuZ2V0X3NvdXJjZShz
b3VyY2UsIGxpbmVfaW5kZXgsIGV4Y2luZm8sIHNob3J0PXNob3J0KQorICAgICAgICAgICAgbGlu
ZXMuZXh0ZW5kKHMpCisgICAgICAgICAgICBpZiBzaG9ydDoKKyAgICAgICAgICAgICAgICBtZXNz
YWdlID0gImluICVzIiAlIChlbnRyeS5uYW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gZXhjaW5mbyBhbmQgZXhjaW5mby50eXBlbmFtZSBvciAiIgorICAg
ICAgICAgICAgcGF0aCA9IHNlbGYuX21ha2VwYXRoKGVudHJ5LnBhdGgpCisgICAgICAgICAgICBm
aWxlbG9jcmVwciA9IFJlcHJGaWxlTG9jYXRpb24ocGF0aCwgZW50cnkubGluZW5vICsgMSwgbWVz
c2FnZSkKKyAgICAgICAgICAgIGxvY2Fsc3JlcHIgPSBOb25lCisgICAgICAgICAgICBpZiBub3Qg
c2hvcnQ6CisgICAgICAgICAgICAgICAgbG9jYWxzcmVwciA9IHNlbGYucmVwcl9sb2NhbHMoZW50
cnkubG9jYWxzKQorICAgICAgICAgICAgcmV0dXJuIFJlcHJFbnRyeShsaW5lcywgcmVwcmFyZ3Ms
IGxvY2Fsc3JlcHIsIGZpbGVsb2NyZXByLCBzdHlsZSkKKyAgICAgICAgaWYgZXhjaW5mbzoKKyAg
ICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdldF9leGNvbmx5KGV4Y2luZm8sIGluZGVudD00
KSkKKyAgICAgICAgcmV0dXJuIFJlcHJFbnRyeShsaW5lcywgTm9uZSwgTm9uZSwgTm9uZSwgc3R5
bGUpCisKKyAgICBkZWYgX21ha2VwYXRoKHNlbGYsIHBhdGgpOgorICAgICAgICBpZiBub3Qgc2Vs
Zi5hYnNwYXRoOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5wID0gcHkucGF0
aC5sb2NhbCgpLmJlc3RyZWxwYXRoKHBhdGgpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoK
KyAgICAgICAgICAgICAgICByZXR1cm4gcGF0aAorICAgICAgICAgICAgaWYgbGVuKG5wKSA8IGxl
bihzdHIocGF0aCkpOgorICAgICAgICAgICAgICAgIHBhdGggPSBucAorICAgICAgICByZXR1cm4g
cGF0aAorCisgICAgZGVmIHJlcHJfdHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICB0
cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjaworICAgICAgICBpZiBzZWxmLnRiZmlsdGVyOgor
ICAgICAgICAgICAgdHJhY2ViYWNrID0gdHJhY2ViYWNrLmZpbHRlcigpCisKKyAgICAgICAgaWYg
aXNfcmVjdXJzaW9uX2Vycm9yKGV4Y2luZm8pOgorICAgICAgICAgICAgdHJhY2ViYWNrLCBleHRy
YWxpbmUgPSBzZWxmLl90cnVuY2F0ZV9yZWN1cnNpdmVfdHJhY2ViYWNrKHRyYWNlYmFjaykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4dHJhbGluZSA9IE5vbmUKKworICAgICAgICBsYXN0
ID0gdHJhY2ViYWNrWy0xXQorICAgICAgICBlbnRyaWVzID0gW10KKyAgICAgICAgZm9yIGluZGV4
LCBlbnRyeSBpbiBlbnVtZXJhdGUodHJhY2ViYWNrKToKKyAgICAgICAgICAgIGVpbmZvID0gKGxh
c3QgPT0gZW50cnkpIGFuZCBleGNpbmZvIG9yIE5vbmUKKyAgICAgICAgICAgIHJlcHJlbnRyeSA9
IHNlbGYucmVwcl90cmFjZWJhY2tfZW50cnkoZW50cnksIGVpbmZvKQorICAgICAgICAgICAgZW50
cmllcy5hcHBlbmQocmVwcmVudHJ5KQorICAgICAgICByZXR1cm4gUmVwclRyYWNlYmFjayhlbnRy
aWVzLCBleHRyYWxpbmUsIHN0eWxlPXNlbGYuc3R5bGUpCisKKyAgICBkZWYgX3RydW5jYXRlX3Jl
Y3Vyc2l2ZV90cmFjZWJhY2soc2VsZiwgdHJhY2ViYWNrKToKKyAgICAgICAgIiIiCisgICAgICAg
IFRydW5jYXRlIHRoZSBnaXZlbiByZWN1cnNpdmUgdHJhY2ViYWNrIHRyeWluZyB0byBmaW5kIHRo
ZSBzdGFydGluZyBwb2ludAorICAgICAgICBvZiB0aGUgcmVjdXJzaW9uLgorCisgICAgICAgIFRo
ZSBkZXRlY3Rpb24gaXMgZG9uZSBieSBnb2luZyB0aHJvdWdoIGVhY2ggdHJhY2ViYWNrIGVudHJ5
IGFuZCBmaW5kaW5nIHRoZQorICAgICAgICBwb2ludCBpbiB3aGljaCB0aGUgbG9jYWxzIG9mIHRo
ZSBmcmFtZSBhcmUgZXF1YWwgdG8gdGhlIGxvY2FscyBvZiBhIHByZXZpb3VzIGZyYW1lIChzZWUg
YGByZWN1cnNpb25pbmRleCgpYGAuCisKKyAgICAgICAgSGFuZGxlIHRoZSBzaXR1YXRpb24gd2hl
cmUgdGhlIHJlY3Vyc2lvbiBwcm9jZXNzIG1pZ2h0IHJhaXNlIGFuIGV4Y2VwdGlvbiAoZm9yIGV4
YW1wbGUKKyAgICAgICAgY29tcGFyaW5nIG51bXB5IGFycmF5cyB1c2luZyBlcXVhbGl0eSByYWlz
ZXMgYSBUeXBlRXJyb3IpLCBpbiB3aGljaCBjYXNlIHdlIGRvIG91ciBiZXN0IHRvCisgICAgICAg
IHdhcm4gdGhlIHVzZXIgb2YgdGhlIGVycm9yIGFuZCBzaG93IGEgbGltaXRlZCB0cmFjZWJhY2su
CisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZWN1cnNpb25pbmRleCA9
IHRyYWNlYmFjay5yZWN1cnNpb25pbmRleCgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg
ZToKKyAgICAgICAgICAgIG1heF9mcmFtZXMgPSAxMAorICAgICAgICAgICAgZXh0cmFsaW5lID0g
KAorICAgICAgICAgICAgICAgICchISEgUmVjdXJzaW9uIGVycm9yIGRldGVjdGVkLCBidXQgYW4g
ZXJyb3Igb2NjdXJyZWQgbG9jYXRpbmcgdGhlIG9yaWdpbiBvZiByZWN1cnNpb24uXG4nCisgICAg
ICAgICAgICAgICAgJyAgVGhlIGZvbGxvd2luZyBleGNlcHRpb24gaGFwcGVuZWQgd2hlbiBjb21w
YXJpbmcgbG9jYWxzIGluIHRoZSBzdGFjayBmcmFtZTpcbicKKyAgICAgICAgICAgICAgICAnICAg
IHtleGNfdHlwZX06IHtleGNfbXNnfVxuJworICAgICAgICAgICAgICAgICcgIERpc3BsYXlpbmcg
Zmlyc3QgYW5kIGxhc3Qge21heF9mcmFtZXN9IHN0YWNrIGZyYW1lcyBvdXQgb2Yge3RvdGFsfS4n
CisgICAgICAgICAgICApLmZvcm1hdChleGNfdHlwZT10eXBlKGUpLl9fbmFtZV9fLCBleGNfbXNn
PXNhZmVfc3RyKGUpLCBtYXhfZnJhbWVzPW1heF9mcmFtZXMsIHRvdGFsPWxlbih0cmFjZWJhY2sp
KQorICAgICAgICAgICAgdHJhY2ViYWNrID0gdHJhY2ViYWNrWzptYXhfZnJhbWVzXSArIHRyYWNl
YmFja1stbWF4X2ZyYW1lczpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiByZWN1cnNp
b25pbmRleCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBleHRyYWxpbmUgPSAiISEhIFJl
Y3Vyc2lvbiBkZXRlY3RlZCAoc2FtZSBsb2NhbHMgJiBwb3NpdGlvbikiCisgICAgICAgICAgICAg
ICAgdHJhY2ViYWNrID0gdHJhY2ViYWNrWzpyZWN1cnNpb25pbmRleCArIDFdCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIGV4dHJhbGluZSA9IE5vbmUKKworICAgICAgICByZXR1
cm4gdHJhY2ViYWNrLCBleHRyYWxpbmUKKworICAgIGRlZiByZXByX2V4Y2luZm8oc2VsZiwgZXhj
aW5mbyk6CisgICAgICAgIGlmIF9QWTI6CisgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gc2Vs
Zi5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorICAgICAgICAgICAgcmVwcmNyYXNoID0gZXhjaW5m
by5fZ2V0cmVwcmNyYXNoKCkKKworICAgICAgICAgICAgcmV0dXJuIFJlcHJFeGNlcHRpb25JbmZv
KHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
cHJfY2hhaW4gPSBbXQorICAgICAgICAgICAgZSA9IGV4Y2luZm8udmFsdWUKKyAgICAgICAgICAg
IGRlc2NyID0gTm9uZQorICAgICAgICAgICAgd2hpbGUgZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICBpZiBleGNpbmZvOgorICAgICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrID0g
c2VsZi5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorICAgICAgICAgICAgICAgICAgICByZXByY3Jh
c2ggPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgICMgZmFsbGJhY2sgdG8gbmF0aXZlIHJlcHIgaWYgdGhlIGV4Y2VwdGlv
biBkb2Vzbid0IGhhdmUgYSB0cmFjZWJhY2s6CisgICAgICAgICAgICAgICAgICAgICMgRXhjZXB0
aW9uSW5mbyBvYmplY3RzIHJlcXVpcmUgYSBmdWxsIHRyYWNlYmFjayB0byB3b3JrCisgICAgICAg
ICAgICAgICAgICAgIHJlcHJ0cmFjZWJhY2sgPSBSZXByVHJhY2ViYWNrTmF0aXZlKHB5LnN0ZC50
cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbih0eXBlKGUpLCBlLCBOb25lKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmVwcmNyYXNoID0gTm9uZQorCisgICAgICAgICAgICAgICAgcmVwcl9jaGFpbiAr
PSBbKHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCwgZGVzY3IpXQorICAgICAgICAgICAgICAgIGlm
IGUuX19jYXVzZV9fIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBlID0gZS5fX2Nh
dXNlX18KKyAgICAgICAgICAgICAgICAgICAgZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oKHR5cGUo
ZSksIGUsIGUuX190cmFjZWJhY2tfXykpIGlmIGUuX190cmFjZWJhY2tfXyBlbHNlIE5vbmUKKyAg
ICAgICAgICAgICAgICAgICAgZGVzY3IgPSAnVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjonCisgICAgICAgICAgICAgICAg
ZWxpZiAoZS5fX2NvbnRleHRfXyBpcyBub3QgTm9uZSBhbmQgbm90IGUuX19zdXBwcmVzc19jb250
ZXh0X18pOgorICAgICAgICAgICAgICAgICAgICBlID0gZS5fX2NvbnRleHRfXworICAgICAgICAg
ICAgICAgICAgICBleGNpbmZvID0gRXhjZXB0aW9uSW5mbygodHlwZShlKSwgZSwgZS5fX3RyYWNl
YmFja19fKSkgaWYgZS5fX3RyYWNlYmFja19fIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgICAg
ICBkZXNjciA9ICdEdXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4Y2VwdGlvbiwgYW5vdGhl
ciBleGNlcHRpb24gb2NjdXJyZWQ6JworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGUgPSBOb25lCisgICAgICAgICAgICByZXByX2NoYWluLnJldmVyc2UoKQorICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkNoYWluUmVwcihyZXByX2NoYWluKQorCisKK2NsYXNz
IFRlcm1pbmFsUmVwcihvYmplY3QpOgorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBz
ID0gc2VsZi5fX3VuaWNvZGVfXygpCisgICAgICAgIGlmIF9QWTI6CisgICAgICAgICAgICBzID0g
cy5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgcmV0dXJuIHMKKworICAgIGRlZiBfX3VuaWNvZGVf
XyhzZWxmKToKKyAgICAgICAgIyBGWUkgdGhpcyBpcyBjYWxsZWQgZnJvbSBweXRlc3QteGRpc3Qn
cyBzZXJpYWxpemF0aW9uIG9mIGV4Y2VwdGlvbgorICAgICAgICAjIGluZm9ybWF0aW9uLgorICAg
ICAgICBpbyA9IHB5LmlvLlRleHRJTygpCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0
ZXIoZmlsZT1pbykKKyAgICAgICAgc2VsZi50b3Rlcm1pbmFsKHR3KQorICAgICAgICByZXR1cm4g
aW8uZ2V0dmFsdWUoKS5zdHJpcCgpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
IHJldHVybiAiPCVzIGluc3RhbmNlIGF0ICUweD4iICUgKHNlbGYuX19jbGFzc19fLCBpZChzZWxm
KSkKKworCitjbGFzcyBFeGNlcHRpb25SZXByKFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBzZWxmLnNlY3Rpb25zID0gW10KKworICAgIGRlZiBhZGRzZWN0
aW9uKHNlbGYsIG5hbWUsIGNvbnRlbnQsIHNlcD0iLSIpOgorICAgICAgICBzZWxmLnNlY3Rpb25z
LmFwcGVuZCgobmFtZSwgY29udGVudCwgc2VwKSkKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYs
IHR3KToKKyAgICAgICAgZm9yIG5hbWUsIGNvbnRlbnQsIHNlcCBpbiBzZWxmLnNlY3Rpb25zOgor
ICAgICAgICAgICAgdHcuc2VwKHNlcCwgbmFtZSkKKyAgICAgICAgICAgIHR3LmxpbmUoY29udGVu
dCkKKworCitjbGFzcyBFeGNlcHRpb25DaGFpblJlcHIoRXhjZXB0aW9uUmVwcik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGNoYWluKToKKyAgICAgICAgc3VwZXIoRXhjZXB0aW9uQ2hhaW5SZXBy
LCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNlbGYuY2hhaW4gPSBjaGFpbgorICAgICAgICAj
IHJlcHJjcmFzaCBhbmQgcmVwcnRyYWNlYmFjayBvZiB0aGUgb3V0ZXJtb3N0ICh0aGUgbmV3ZXN0
KSBleGNlcHRpb24KKyAgICAgICAgIyBpbiB0aGUgY2hhaW4KKyAgICAgICAgc2VsZi5yZXBydHJh
Y2ViYWNrID0gY2hhaW5bLTFdWzBdCisgICAgICAgIHNlbGYucmVwcmNyYXNoID0gY2hhaW5bLTFd
WzFdCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIGZvciBlbGVtZW50
IGluIHNlbGYuY2hhaW46CisgICAgICAgICAgICBlbGVtZW50WzBdLnRvdGVybWluYWwodHcpCisg
ICAgICAgICAgICBpZiBlbGVtZW50WzJdIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHR3
LmxpbmUoIiIpCisgICAgICAgICAgICAgICAgdHcubGluZShlbGVtZW50WzJdLCB5ZWxsb3c9VHJ1
ZSkKKyAgICAgICAgc3VwZXIoRXhjZXB0aW9uQ2hhaW5SZXByLCBzZWxmKS50b3Rlcm1pbmFsKHR3
KQorCisKK2NsYXNzIFJlcHJFeGNlcHRpb25JbmZvKEV4Y2VwdGlvblJlcHIpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXBydHJhY2ViYWNrLCByZXByY3Jhc2gpOgorICAgICAgICBzdXBlcihS
ZXByRXhjZXB0aW9uSW5mbywgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLnJlcHJ0cmFj
ZWJhY2sgPSByZXBydHJhY2ViYWNrCisgICAgICAgIHNlbGYucmVwcmNyYXNoID0gcmVwcmNyYXNo
CisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIHNlbGYucmVwcnRyYWNl
YmFjay50b3Rlcm1pbmFsKHR3KQorICAgICAgICBzdXBlcihSZXByRXhjZXB0aW9uSW5mbywgc2Vs
ZikudG90ZXJtaW5hbCh0dykKKworCitjbGFzcyBSZXByVHJhY2ViYWNrKFRlcm1pbmFsUmVwcik6
CisgICAgZW50cnlzZXAgPSAiXyAiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcmVudHJp
ZXMsIGV4dHJhbGluZSwgc3R5bGUpOgorICAgICAgICBzZWxmLnJlcHJlbnRyaWVzID0gcmVwcmVu
dHJpZXMKKyAgICAgICAgc2VsZi5leHRyYWxpbmUgPSBleHRyYWxpbmUKKyAgICAgICAgc2VsZi5z
dHlsZSA9IHN0eWxlCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgICMg
dGhlIGVudHJpZXMgbWlnaHQgaGF2ZSBkaWZmZXJlbnQgc3R5bGVzCisgICAgICAgIGZvciBpLCBl
bnRyeSBpbiBlbnVtZXJhdGUoc2VsZi5yZXByZW50cmllcyk6CisgICAgICAgICAgICBpZiBlbnRy
eS5zdHlsZSA9PSAibG9uZyI6CisgICAgICAgICAgICAgICAgdHcubGluZSgiIikKKyAgICAgICAg
ICAgIGVudHJ5LnRvdGVybWluYWwodHcpCisgICAgICAgICAgICBpZiBpIDwgbGVuKHNlbGYucmVw
cmVudHJpZXMpIC0gMToKKyAgICAgICAgICAgICAgICBuZXh0X2VudHJ5ID0gc2VsZi5yZXByZW50
cmllc1tpICsgMV0KKyAgICAgICAgICAgICAgICBpZiBlbnRyeS5zdHlsZSA9PSAibG9uZyIgb3Ig
XAorICAgICAgICAgICAgICAgICAgIGVudHJ5LnN0eWxlID09ICJzaG9ydCIgYW5kIG5leHRfZW50
cnkuc3R5bGUgPT0gImxvbmciOgorICAgICAgICAgICAgICAgICAgICB0dy5zZXAoc2VsZi5lbnRy
eXNlcCkKKworICAgICAgICBpZiBzZWxmLmV4dHJhbGluZToKKyAgICAgICAgICAgIHR3LmxpbmUo
c2VsZi5leHRyYWxpbmUpCisKKworY2xhc3MgUmVwclRyYWNlYmFja05hdGl2ZShSZXByVHJhY2Vi
YWNrKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGJsaW5lcyk6CisgICAgICAgIHNlbGYuc3R5
bGUgPSAibmF0aXZlIgorICAgICAgICBzZWxmLnJlcHJlbnRyaWVzID0gW1JlcHJFbnRyeU5hdGl2
ZSh0YmxpbmVzKV0KKyAgICAgICAgc2VsZi5leHRyYWxpbmUgPSBOb25lCisKKworY2xhc3MgUmVw
ckVudHJ5TmF0aXZlKFRlcm1pbmFsUmVwcik6CisgICAgc3R5bGUgPSAibmF0aXZlIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgorICAgICAgICBzZWxmLmxpbmVzID0gdGJsaW5l
cworCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAgICB0dy53cml0ZSgiIi5q
b2luKHNlbGYubGluZXMpKQorCisKK2NsYXNzIFJlcHJFbnRyeShUZXJtaW5hbFJlcHIpOgorICAg
IGxvY2Fsc3NlcCA9ICJfICIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcywgcmVwcmZ1
bmNhcmdzLCByZXBybG9jYWxzLCBmaWxlbG9jcmVwciwgc3R5bGUpOgorICAgICAgICBzZWxmLmxp
bmVzID0gbGluZXMKKyAgICAgICAgc2VsZi5yZXByZnVuY2FyZ3MgPSByZXByZnVuY2FyZ3MKKyAg
ICAgICAgc2VsZi5yZXBybG9jYWxzID0gcmVwcmxvY2FscworICAgICAgICBzZWxmLnJlcHJmaWxl
bG9jID0gZmlsZWxvY3JlcHIKKyAgICAgICAgc2VsZi5zdHlsZSA9IHN0eWxlCisKKyAgICBkZWYg
dG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIGlmIHNlbGYuc3R5bGUgPT0gInNob3J0IjoK
KyAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2MudG90ZXJtaW5hbCh0dykKKyAgICAgICAgICAg
IGZvciBsaW5lIGluIHNlbGYubGluZXM6CisgICAgICAgICAgICAgICAgcmVkID0gbGluZS5zdGFy
dHN3aXRoKCJFICAgIikKKyAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmUsIGJvbGQ9VHJ1ZSwg
cmVkPXJlZCkKKyAgICAgICAgICAgICMgdHcubGluZSgiIikKKyAgICAgICAgICAgIHJldHVybgor
ICAgICAgICBpZiBzZWxmLnJlcHJmdW5jYXJnczoKKyAgICAgICAgICAgIHNlbGYucmVwcmZ1bmNh
cmdzLnRvdGVybWluYWwodHcpCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6CisgICAg
ICAgICAgICByZWQgPSBsaW5lLnN0YXJ0c3dpdGgoIkUgICAiKQorICAgICAgICAgICAgdHcubGlu
ZShsaW5lLCBib2xkPVRydWUsIHJlZD1yZWQpCisgICAgICAgIGlmIHNlbGYucmVwcmxvY2FsczoK
KyAgICAgICAgICAgICMgdHcuc2VwKHNlbGYubG9jYWxzc2VwLCAiTG9jYWxzIikKKyAgICAgICAg
ICAgIHR3LmxpbmUoIiIpCisgICAgICAgICAgICBzZWxmLnJlcHJsb2NhbHMudG90ZXJtaW5hbCh0
dykKKyAgICAgICAgaWYgc2VsZi5yZXByZmlsZWxvYzoKKyAgICAgICAgICAgIGlmIHNlbGYubGlu
ZXM6CisgICAgICAgICAgICAgICAgdHcubGluZSgiIikKKyAgICAgICAgICAgIHNlbGYucmVwcmZp
bGVsb2MudG90ZXJtaW5hbCh0dykKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gIiVzXG4lc1xuJXMiICUgKCJcbiIuam9pbihzZWxmLmxpbmVzKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcHJsb2NhbHMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5yZXByZmlsZWxvYykKKworCitjbGFzcyBSZXByRmlsZUxvY2F0aW9u
KFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywgbWVz
c2FnZSk6CisgICAgICAgIHNlbGYucGF0aCA9IHN0cihwYXRoKQorICAgICAgICBzZWxmLmxpbmVu
byA9IGxpbmVubworICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKyAgICBkZWYgdG90
ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgICMgZmlsZW5hbWUgYW5kIGxpbmVubyBvdXRwdXQg
Zm9yIGVhY2ggZW50cnksCisgICAgICAgICMgdXNpbmcgYW4gb3V0cHV0IGZvcm1hdCB0aGF0IG1v
c3QgZWRpdG9ycyB1bnRlcnN0YW5kCisgICAgICAgIG1zZyA9IHNlbGYubWVzc2FnZQorICAgICAg
ICBpID0gbXNnLmZpbmQoIlxuIikKKyAgICAgICAgaWYgaSAhPSAtMToKKyAgICAgICAgICAgIG1z
ZyA9IG1zZ1s6aV0KKyAgICAgICAgdHcud3JpdGUoc2VsZi5wYXRoLCBib2xkPVRydWUsIHJlZD1U
cnVlKQorICAgICAgICB0dy5saW5lKCI6JXM6ICVzIiAlIChzZWxmLmxpbmVubywgbXNnKSkKKwor
CitjbGFzcyBSZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxpbmVzKToKKyAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCisKKyAgICBkZWYgdG90ZXJtaW5h
bChzZWxmLCB0dyk6CisgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6CisgICAgICAgICAg
ICB0dy5saW5lKGxpbmUpCisKKworY2xhc3MgUmVwckZ1bmNBcmdzKFRlcm1pbmFsUmVwcik6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ3MpOgorICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisK
KyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIGlmIHNlbGYuYXJnczoKKyAg
ICAgICAgICAgIGxpbmVzb2ZhciA9ICIiCisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4g
c2VsZi5hcmdzOgorICAgICAgICAgICAgICAgIG5zID0gIiVzID0gJXMiICUgKHNhZmVfc3RyKG5h
bWUpLCBzYWZlX3N0cih2YWx1ZSkpCisgICAgICAgICAgICAgICAgaWYgbGVuKG5zKSArIGxlbihs
aW5lc29mYXIpICsgMiA+IHR3LmZ1bGx3aWR0aDoKKyAgICAgICAgICAgICAgICAgICAgaWYgbGlu
ZXNvZmFyOgorICAgICAgICAgICAgICAgICAgICAgICAgdHcubGluZShsaW5lc29mYXIpCisgICAg
ICAgICAgICAgICAgICAgIGxpbmVzb2ZhciA9IG5zCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgaWYgbGluZXNvZmFyOgorICAgICAgICAgICAgICAgICAgICAgICAg
bGluZXNvZmFyICs9ICIsICIgKyBucworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZXNvZmFyID0gbnMKKyAgICAgICAgICAgIGlmIGxpbmVzb2Zh
cjoKKyAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmVzb2ZhcikKKyAgICAgICAgICAgIHR3Lmxp
bmUoIiIpCisKKworZGVmIGdldHJhd2NvZGUob2JqLCB0cnljYWxsPVRydWUpOgorICAgICIiIiBy
ZXR1cm4gY29kZSBvYmplY3QgZm9yIGdpdmVuIGZ1bmN0aW9uLiAiIiIKKyAgICB0cnk6CisgICAg
ICAgIHJldHVybiBvYmouX19jb2RlX18KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAg
ICAgIG9iaiA9IGdldGF0dHIob2JqLCAnaW1fZnVuYycsIG9iaikKKyAgICAgICAgb2JqID0gZ2V0
YXR0cihvYmosICdmdW5jX2NvZGUnLCBvYmopCisgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAn
Zl9jb2RlJywgb2JqKQorICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ19fY29kZV9fJywgb2Jq
KQorICAgICAgICBpZiB0cnljYWxsIGFuZCBub3QgaGFzYXR0cihvYmosICdjb19maXJzdGxpbmVu
bycpOgorICAgICAgICAgICAgaWYgaGFzYXR0cihvYmosICdfX2NhbGxfXycpIGFuZCBub3QgcHku
c3RkLmluc3BlY3QuaXNjbGFzcyhvYmopOgorICAgICAgICAgICAgICAgIHggPSBnZXRyYXdjb2Rl
KG9iai5fX2NhbGxfXywgdHJ5Y2FsbD1GYWxzZSkKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRy
KHgsICdjb19maXJzdGxpbmVubycpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4geAorICAg
ICAgICByZXR1cm4gb2JqCisKKworaWYgUFkzNTogICMgUmVjdXJzaW9uRXJyb3IgaW50cm9kdWNl
ZCBpbiAzLjUKKyAgICBkZWYgaXNfcmVjdXJzaW9uX2Vycm9yKGV4Y2luZm8pOgorICAgICAgICBy
ZXR1cm4gZXhjaW5mby5lcnJpc2luc3RhbmNlKFJlY3Vyc2lvbkVycm9yKSAgIyBub3FhCitlbHNl
OgorICAgIGRlZiBpc19yZWN1cnNpb25fZXJyb3IoZXhjaW5mbyk6CisgICAgICAgIGlmIG5vdCBl
eGNpbmZvLmVycmlzaW5zdGFuY2UoUnVudGltZUVycm9yKToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gIm1heGltdW0gcmVjdXJzaW9u
IGRlcHRoIGV4Y2VlZGVkIiBpbiBzdHIoZXhjaW5mby52YWx1ZSkKKyAgICAgICAgZXhjZXB0IFVu
aWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2Rl
L3NvdXJjZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjM4YzU5OGI3NDlkYjI4ODYxZDIwMDA2ZTdkZmE4Zjkw
ZTU1NGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3Vy
Y2UucHkKQEAgLTAsMCArMSw0MTUgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgZ2VuZXJhdG9ycywgcHJpbnRfZnVuY3Rpb24KKworZnJvbSBiaXNl
Y3QgaW1wb3J0IGJpc2VjdF9yaWdodAoraW1wb3J0IHN5cworaW1wb3J0IHNpeAoraW1wb3J0IGlu
c3BlY3QKK2ltcG9ydCB0b2tlbml6ZQoraW1wb3J0IHB5CitjcHlfY29tcGlsZSA9IGNvbXBpbGUK
KwordHJ5OgorICAgIGltcG9ydCBfYXN0CisgICAgZnJvbSBfYXN0IGltcG9ydCBQeUNGX09OTFlf
QVNUIGFzIF9BU1RfRkxBRworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIF9BU1RfRkxBRyA9IDAK
KyAgICBfYXN0ID0gTm9uZQorCisKK2NsYXNzIFNvdXJjZShvYmplY3QpOgorICAgICIiIiBhIGlt
bXV0YWJsZSBvYmplY3QgaG9sZGluZyBhIHNvdXJjZSBjb2RlIGZyYWdtZW50LAorICAgICAgICBw
b3NzaWJseSBkZWluZGVudGluZyBpdC4KKyAgICAiIiIKKyAgICBfY29tcGlsZWNvdW50ZXIgPSAw
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKnBhcnRzLCAqKmt3YXJncyk6CisgICAgICAgIHNl
bGYubGluZXMgPSBsaW5lcyA9IFtdCisgICAgICAgIGRlID0ga3dhcmdzLmdldCgnZGVpbmRlbnQn
LCBUcnVlKQorICAgICAgICByc3RyaXAgPSBrd2FyZ3MuZ2V0KCdyc3RyaXAnLCBUcnVlKQorICAg
ICAgICBmb3IgcGFydCBpbiBwYXJ0czoKKyAgICAgICAgICAgIGlmIG5vdCBwYXJ0OgorICAgICAg
ICAgICAgICAgIHBhcnRsaW5lcyA9IFtdCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBhcnQs
IFNvdXJjZSk6CisgICAgICAgICAgICAgICAgcGFydGxpbmVzID0gcGFydC5saW5lcworICAgICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsICh0dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAg
ICAgIHBhcnRsaW5lcyA9IFt4LnJzdHJpcCgiXG4iKSBmb3IgeCBpbiBwYXJ0XQorICAgICAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAg
ICAgIHBhcnRsaW5lcyA9IHBhcnQuc3BsaXQoJ1xuJykKKyAgICAgICAgICAgICAgICBpZiByc3Ry
aXA6CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIHBhcnRsaW5lczoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIHBhcnRsaW5lc1stMV0uc3RyaXAoKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgcGFydGxpbmVzLnBvcCgpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGdldHNvdXJjZShw
YXJ0LCBkZWluZGVudD1kZSkubGluZXMKKyAgICAgICAgICAgIGlmIGRlOgorICAgICAgICAgICAg
ICAgIHBhcnRsaW5lcyA9IGRlaW5kZW50KHBhcnRsaW5lcykKKyAgICAgICAgICAgIGxpbmVzLmV4
dGVuZChwYXJ0bGluZXMpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXMgPT0gb3RoZXIubGluZXMKKyAgICAg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhl
ciwgc3RyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYpID09IG90aGVyCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIF9faGFzaF9fID0gTm9uZQorCisgICAgZGVmIF9f
Z2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCBpbnQpOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNba2V5XQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaWYga2V5LnN0ZXAgbm90IGluIChOb25lLCAxKToKKyAgICAgICAgICAgICAgICByYWlz
ZSBJbmRleEVycm9yKCJjYW5ub3Qgc2xpY2UgYSBTb3VyY2Ugd2l0aCBhIHN0ZXAiKQorICAgICAg
ICAgICAgbmV3c291cmNlID0gU291cmNlKCkKKyAgICAgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9
IHNlbGYubGluZXNba2V5LnN0YXJ0OmtleS5zdG9wXQorICAgICAgICAgICAgcmV0dXJuIG5ld3Nv
dXJjZQorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5s
aW5lcykKKworICAgIGRlZiBzdHJpcChzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBuZXcgc291
cmNlIG9iamVjdCB3aXRoIHRyYWlsaW5nCisgICAgICAgICAgICBhbmQgbGVhZGluZyBibGFuayBs
aW5lcyByZW1vdmVkLgorICAgICAgICAiIiIKKyAgICAgICAgc3RhcnQsIGVuZCA9IDAsIGxlbihz
ZWxmKQorICAgICAgICB3aGlsZSBzdGFydCA8IGVuZCBhbmQgbm90IHNlbGYubGluZXNbc3RhcnRd
LnN0cmlwKCk6CisgICAgICAgICAgICBzdGFydCArPSAxCisgICAgICAgIHdoaWxlIGVuZCA+IHN0
YXJ0IGFuZCBub3Qgc2VsZi5saW5lc1tlbmQgLSAxXS5zdHJpcCgpOgorICAgICAgICAgICAgZW5k
IC09IDEKKyAgICAgICAgc291cmNlID0gU291cmNlKCkKKyAgICAgICAgc291cmNlLmxpbmVzWzpd
ID0gc2VsZi5saW5lc1tzdGFydDplbmRdCisgICAgICAgIHJldHVybiBzb3VyY2UKKworICAgIGRl
ZiBwdXRhcm91bmQoc2VsZiwgYmVmb3JlPScnLCBhZnRlcj0nJywgaW5kZW50PScgJyAqIDQpOgor
ICAgICAgICAiIiIgcmV0dXJuIGEgY29weSBvZiB0aGUgc291cmNlIG9iamVjdCB3aXRoCisgICAg
ICAgICAgICAnYmVmb3JlJyBhbmQgJ2FmdGVyJyB3cmFwcGVkIGFyb3VuZCBpdC4KKyAgICAgICAg
IiIiCisgICAgICAgIGJlZm9yZSA9IFNvdXJjZShiZWZvcmUpCisgICAgICAgIGFmdGVyID0gU291
cmNlKGFmdGVyKQorICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2UoKQorICAgICAgICBsaW5lcyA9
IFsoaW5kZW50ICsgbGluZSkgZm9yIGxpbmUgaW4gc2VsZi5saW5lc10KKyAgICAgICAgbmV3c291
cmNlLmxpbmVzID0gYmVmb3JlLmxpbmVzICsgbGluZXMgKyBhZnRlci5saW5lcworICAgICAgICBy
ZXR1cm4gbmV3c291cmNlCisKKyAgICBkZWYgaW5kZW50KHNlbGYsIGluZGVudD0nICcgKiA0KToK
KyAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNvdXJjZSBvYmplY3Qgd2l0aAorICAg
ICAgICAgICAgYWxsIGxpbmVzIGluZGVudGVkIGJ5IHRoZSBnaXZlbiBpbmRlbnQtc3RyaW5nLgor
ICAgICAgICAiIiIKKyAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKKyAgICAgICAgbmV3c291
cmNlLmxpbmVzID0gWyhpbmRlbnQgKyBsaW5lKSBmb3IgbGluZSBpbiBzZWxmLmxpbmVzXQorICAg
ICAgICByZXR1cm4gbmV3c291cmNlCisKKyAgICBkZWYgZ2V0c3RhdGVtZW50KHNlbGYsIGxpbmVu
bywgYXNzZXJ0aW9uPUZhbHNlKToKKyAgICAgICAgIiIiIHJldHVybiBTb3VyY2Ugc3RhdGVtZW50
IHdoaWNoIGNvbnRhaW5zIHRoZQorICAgICAgICAgICAgZ2l2ZW4gbGluZW51bWJlciAoY291bnRl
ZCBmcm9tIDApLgorICAgICAgICAiIiIKKyAgICAgICAgc3RhcnQsIGVuZCA9IHNlbGYuZ2V0c3Rh
dGVtZW50cmFuZ2UobGluZW5vLCBhc3NlcnRpb24pCisgICAgICAgIHJldHVybiBzZWxmW3N0YXJ0
OmVuZF0KKworICAgIGRlZiBnZXRzdGF0ZW1lbnRyYW5nZShzZWxmLCBsaW5lbm8sIGFzc2VydGlv
bj1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gKHN0YXJ0LCBlbmQpIHR1cGxlIHdoaWNoIHNw
YW5zIHRoZSBtaW5pbWFsCisgICAgICAgICAgICBzdGF0ZW1lbnQgcmVnaW9uIHdoaWNoIGNvbnRh
aW5pbmcgdGhlIGdpdmVuIGxpbmVuby4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCAoMCA8
PSBsaW5lbm8gPCBsZW4oc2VsZikpOgorICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibGlu
ZW5vIG91dCBvZiByYW5nZSIpCisgICAgICAgIGFzdCwgc3RhcnQsIGVuZCA9IGdldHN0YXRlbWVu
dHJhbmdlX2FzdChsaW5lbm8sIHNlbGYpCisgICAgICAgIHJldHVybiBzdGFydCwgZW5kCisKKyAg
ICBkZWYgZGVpbmRlbnQoc2VsZiwgb2Zmc2V0PU5vbmUpOgorICAgICAgICAiIiIgcmV0dXJuIGEg
bmV3IHNvdXJjZSBvYmplY3QgZGVpbmRlbnRlZCBieSBvZmZzZXQuCisgICAgICAgICAgICBJZiBv
ZmZzZXQgaXMgTm9uZSB0aGVuIGd1ZXNzIGFuIGluZGVudGF0aW9uIG9mZnNldCBmcm9tCisgICAg
ICAgICAgICB0aGUgZmlyc3Qgbm9uLWJsYW5rIGxpbmUuICBTdWJzZXF1ZW50IGxpbmVzIHdoaWNo
IGhhdmUgYQorICAgICAgICAgICAgbG93ZXIgaW5kZW50YXRpb24gb2Zmc2V0IHdpbGwgYmUgY29w
aWVkIHZlcmJhdGltIGFzCisgICAgICAgICAgICB0aGV5IGFyZSBhc3N1bWVkIHRvIGJlIHBhcnQg
b2YgbXVsdGlsaW5lcy4KKyAgICAgICAgIiIiCisgICAgICAgICMgWFhYIG1heWJlIHVzZSB0aGUg
dG9rZW5pemVyIHRvIHByb3Blcmx5IGhhbmRsZSBtdWx0aWxpbmUKKyAgICAgICAgIyAgICAgc3Ry
aW5ncyBldGMucHA/CisgICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCisgICAgICAgIG5ld3Nv
dXJjZS5saW5lc1s6XSA9IGRlaW5kZW50KHNlbGYubGluZXMsIG9mZnNldCkKKyAgICAgICAgcmV0
dXJuIG5ld3NvdXJjZQorCisgICAgZGVmIGlzcGFyc2VhYmxlKHNlbGYsIGRlaW5kZW50PVRydWUp
OgorICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgc291cmNlIGlzIHBhcnNlYWJsZSwgaGV1cmlz
dGljYWxseQorICAgICAgICAgICAgZGVpbmRlbnRpbmcgaXQgYnkgZGVmYXVsdC4KKyAgICAgICAg
IiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCBwYXJzZXIKKyAgICAgICAgZXhj
ZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgZGVmIHN5bnRheF9jaGVja2VyKHgpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBjb21waWxlKHgsICdhc2QnLCAnZXhlYycpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzeW50YXhfY2hlY2tlciA9IHBhcnNlci5zdWl0ZQorCisgICAgICAg
IGlmIGRlaW5kZW50OgorICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYuZGVpbmRlbnQoKSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNvdXJjZSA9IHN0cihzZWxmKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICAjIGNvbXBpbGUoc291cmNlKydcbicsICJ4IiwgImV4ZWMiKQorICAg
ICAgICAgICAgc3ludGF4X2NoZWNrZXIoc291cmNlICsgJ1xuJykKKyAgICAgICAgZXhjZXB0IEtl
eWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4g
IlxuIi5qb2luKHNlbGYubGluZXMpCisKKyAgICBkZWYgY29tcGlsZShzZWxmLCBmaWxlbmFtZT1O
b25lLCBtb2RlPSdleGVjJywKKyAgICAgICAgICAgICAgICBmbGFnPWdlbmVyYXRvcnMuY29tcGls
ZXJfZmxhZywKKyAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9MCwgX2dlbmZyYW1lPU5vbmUp
OgorICAgICAgICAiIiIgcmV0dXJuIGNvbXBpbGVkIGNvZGUgb2JqZWN0LiBpZiBmaWxlbmFtZSBp
cyBOb25lCisgICAgICAgICAgICBpbnZlbnQgYW4gYXJ0aWZpY2lhbCBmaWxlbmFtZSB3aGljaCBk
aXNwbGF5cworICAgICAgICAgICAgdGhlIHNvdXJjZS9saW5lIHBvc2l0aW9uIG9mIHRoZSBjYWxs
ZXIgZnJhbWUuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgZmlsZW5hbWUgb3IgcHkucGF0
aC5sb2NhbChmaWxlbmFtZSkuY2hlY2soZmlsZT0wKToKKyAgICAgICAgICAgIGlmIF9nZW5mcmFt
ZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkg
ICMgdGhlIGNhbGxlcgorICAgICAgICAgICAgZm4sIGxpbmVubyA9IF9nZW5mcmFtZS5mX2NvZGUu
Y29fZmlsZW5hbWUsIF9nZW5mcmFtZS5mX2xpbmVubworICAgICAgICAgICAgYmFzZSA9ICI8JWQt
Y29kZWdlbiAiICUgc2VsZi5fY29tcGlsZWNvdW50ZXIKKyAgICAgICAgICAgIHNlbGYuX19jbGFz
c19fLl9jb21waWxlY291bnRlciArPSAxCisgICAgICAgICAgICBpZiBub3QgZmlsZW5hbWU6Cisg
ICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsgJyVzOiVkPicgJSAoZm4sIGxpbmVubykK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsgJyVy
ICVzOiVkPicgJSAoZmlsZW5hbWUsIGZuLCBsaW5lbm8pCisgICAgICAgIHNvdXJjZSA9ICJcbiIu
am9pbihzZWxmLmxpbmVzKSArICdcbicKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY28gPSBj
cHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFnKQorICAgICAgICBleGNlcHQg
U3ludGF4RXJyb3I6CisgICAgICAgICAgICBleCA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAg
ICAgICAjIHJlLXJlcHJlc2VudCBzeW50YXggZXJyb3JzIGZyb20gcGFyc2luZyBweXRob24gc3Ry
aW5ncworICAgICAgICAgICAgbXNnbGluZXMgPSBzZWxmLmxpbmVzWzpleC5saW5lbm9dCisgICAg
ICAgICAgICBpZiBleC5vZmZzZXQ6CisgICAgICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5kKCIg
IiAqIGV4Lm9mZnNldCArICdeJykKKyAgICAgICAgICAgIG1zZ2xpbmVzLmFwcGVuZCgiKGNvZGUg
d2FzIGNvbXBpbGVkIHByb2JhYmx5IGZyb20gaGVyZTogJXMpIiAlIGZpbGVuYW1lKQorICAgICAg
ICAgICAgbmV3ZXggPSBTeW50YXhFcnJvcignXG4nLmpvaW4obXNnbGluZXMpKQorICAgICAgICAg
ICAgbmV3ZXgub2Zmc2V0ID0gZXgub2Zmc2V0CisgICAgICAgICAgICBuZXdleC5saW5lbm8gPSBl
eC5saW5lbm8KKyAgICAgICAgICAgIG5ld2V4LnRleHQgPSBleC50ZXh0CisgICAgICAgICAgICBy
YWlzZSBuZXdleAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgZmxhZyAmIF9BU1RfRkxB
RzoKKyAgICAgICAgICAgICAgICByZXR1cm4gY28KKyAgICAgICAgICAgIGxpbmVzID0gWyh4ICsg
IlxuIikgZm9yIHggaW4gc2VsZi5saW5lc10KKyAgICAgICAgICAgIHB5LnN0ZC5saW5lY2FjaGUu
Y2FjaGVbZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBmaWxlbmFtZSkKKyAgICAgICAgICAg
IHJldHVybiBjbworCisjCisjIHB1YmxpYyBBUEkgc2hvcnRjdXQgZnVuY3Rpb25zCisjCisKKwor
ZGVmIGNvbXBpbGVfKHNvdXJjZSwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0nZXhlYycsIGZsYWdzPWdl
bmVyYXRvcnMuY29tcGlsZXJfZmxhZywgZG9udF9pbmhlcml0PTApOgorICAgICIiIiBjb21waWxl
IHRoZSBnaXZlbiBzb3VyY2UgdG8gYSByYXcgY29kZSBvYmplY3QsCisgICAgICAgIGFuZCBtYWlu
dGFpbiBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBhbGxvd3MgbGF0ZXIKKyAgICAgICAgcmV0cmll
dmFsIG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGNvZGUgb2JqZWN0CisgICAgICAgIGFuZCBh
bnkgcmVjdXJzaXZlbHkgY3JlYXRlZCBjb2RlIG9iamVjdHMuCisgICAgIiIiCisgICAgaWYgX2Fz
dCBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZShzb3VyY2UsIF9hc3QuQVNUKToKKyAgICAgICAg
IyBYWFggc2hvdWxkIFNvdXJjZSBzdXBwb3J0IGhhdmluZyBBU1Q/CisgICAgICAgIHJldHVybiBj
cHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFncywgZG9udF9pbmhlcml0KQor
ICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkgICMgdGhlIGNhbGxlcgorICAgIHMgPSBT
b3VyY2Uoc291cmNlKQorICAgIGNvID0gcy5jb21waWxlKGZpbGVuYW1lLCBtb2RlLCBmbGFncywg
X2dlbmZyYW1lPV9nZW5mcmFtZSkKKyAgICByZXR1cm4gY28KKworCitkZWYgZ2V0ZnNsaW5lbm8o
b2JqKToKKyAgICAiIiIgUmV0dXJuIHNvdXJjZSBsb2NhdGlvbiAocGF0aCwgbGluZW5vKSBmb3Ig
dGhlIGdpdmVuIG9iamVjdC4KKyAgICBJZiB0aGUgc291cmNlIGNhbm5vdCBiZSBkZXRlcm1pbmVk
IHJldHVybiAoIiIsIC0xKQorICAgICIiIgorICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCisgICAg
dHJ5OgorICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKG9iaikKKyAgICBleGNlcHQg
VHlwZUVycm9yOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmbiA9IChweS5zdGQuaW5zcGVj
dC5nZXRzb3VyY2VmaWxlKG9iaikgb3IKKyAgICAgICAgICAgICAgICAgIHB5LnN0ZC5pbnNwZWN0
LmdldGZpbGUob2JqKSkKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgIHJl
dHVybiAiIiwgLTEKKworICAgICAgICBmc3BhdGggPSBmbiBhbmQgcHkucGF0aC5sb2NhbChmbikg
b3IgTm9uZQorICAgICAgICBsaW5lbm8gPSAtMQorICAgICAgICBpZiBmc3BhdGg6CisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgXywgbGluZW5vID0gZmluZHNvdXJjZShvYmopCisg
ICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgZWxz
ZToKKyAgICAgICAgZnNwYXRoID0gY29kZS5wYXRoCisgICAgICAgIGxpbmVubyA9IGNvZGUuZmly
c3RsaW5lbm8KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lbm8sIGludCkKKyAgICByZXR1cm4g
ZnNwYXRoLCBsaW5lbm8KKworIworIyBoZWxwZXIgZnVuY3Rpb25zCisjCisKKworZGVmIGZpbmRz
b3VyY2Uob2JqKToKKyAgICB0cnk6CisgICAgICAgIHNvdXJjZWxpbmVzLCBsaW5lbm8gPSBweS5z
dGQuaW5zcGVjdC5maW5kc291cmNlKG9iaikKKyAgICBleGNlcHQgcHkuYnVpbHRpbi5fc3lzZXg6
CisgICAgICAgIHJhaXNlCisgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgIHJldHVybiBOb25l
LCAtMQorICAgIHNvdXJjZSA9IFNvdXJjZSgpCisgICAgc291cmNlLmxpbmVzID0gW2xpbmUucnN0
cmlwKCkgZm9yIGxpbmUgaW4gc291cmNlbGluZXNdCisgICAgcmV0dXJuIHNvdXJjZSwgbGluZW5v
CisKKworZGVmIGdldHNvdXJjZShvYmosICoqa3dhcmdzKToKKyAgICBpbXBvcnQgX3B5dGVzdC5f
Y29kZQorICAgIG9iaiA9IF9weXRlc3QuX2NvZGUuZ2V0cmF3Y29kZShvYmopCisgICAgdHJ5Ogor
ICAgICAgICBzdHJzcmMgPSBpbnNwZWN0LmdldHNvdXJjZShvYmopCisgICAgZXhjZXB0IEluZGVu
dGF0aW9uRXJyb3I6CisgICAgICAgIHN0cnNyYyA9ICJcIkJ1Z2d5IHB5dGhvbiB2ZXJzaW9uIGNv
bnNpZGVyIHVwZ3JhZGluZywgY2Fubm90IGdldCBzb3VyY2VcIiIKKyAgICBhc3NlcnQgaXNpbnN0
YW5jZShzdHJzcmMsIHN0cikKKyAgICByZXR1cm4gU291cmNlKHN0cnNyYywgKiprd2FyZ3MpCisK
KworZGVmIGRlaW5kZW50KGxpbmVzLCBvZmZzZXQ9Tm9uZSk6CisgICAgaWYgb2Zmc2V0IGlzIE5v
bmU6CisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgbGluZSA9IGxpbmUu
ZXhwYW5kdGFicygpCisgICAgICAgICAgICBzID0gbGluZS5sc3RyaXAoKQorICAgICAgICAgICAg
aWYgczoKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBsZW4obGluZSkgLSBsZW4ocykKKyAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgb2Zmc2V0ID0gMAor
ICAgIGlmIG9mZnNldCA9PSAwOgorICAgICAgICByZXR1cm4gbGlzdChsaW5lcykKKyAgICBuZXds
aW5lcyA9IFtdCisKKyAgICBkZWYgcmVhZGxpbmVfZ2VuZXJhdG9yKGxpbmVzKToKKyAgICAgICAg
Zm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICB5aWVsZCBsaW5lICsgJ1xuJworICAgICAg
ICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgeWllbGQgJycKKworICAgIGl0ID0gcmVhZGxpbmVf
Z2VuZXJhdG9yKGxpbmVzKQorCisgICAgdHJ5OgorICAgICAgICBmb3IgXywgXywgKHNsaW5lLCBf
KSwgKGVsaW5lLCBfKSwgXyBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMobGFtYmRhOiBuZXh0
KGl0KSk6CisgICAgICAgICAgICBpZiBzbGluZSA+IGxlbihsaW5lcyk6CisgICAgICAgICAgICAg
ICAgYnJlYWsgICMgRW5kIG9mIGlucHV0IHJlYWNoZWQKKyAgICAgICAgICAgIGlmIHNsaW5lID4g
bGVuKG5ld2xpbmVzKToKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZXNbc2xpbmUgLSAxXS5l
eHBhbmR0YWJzKCkKKyAgICAgICAgICAgICAgICBpZiBsaW5lLmxzdHJpcCgpIGFuZCBsaW5lWzpv
ZmZzZXRdLmlzc3BhY2UoKToKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbb2Zmc2V0
Ol0gICMgRGVpbmRlbnQKKyAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZSkKKwor
ICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2xpbmUsIGVsaW5lKToKKyAgICAgICAgICAgICAg
ICAjIERvbid0IGRlaW5kZW50IGNvbnRpbnVpbmcgbGluZXMgb2YKKyAgICAgICAgICAgICAgICAj
IG11bHRpbGluZSB0b2tlbnMgKGkuZS4gbXVsdGlsaW5lIHN0cmluZ3MpCisgICAgICAgICAgICAg
ICAgbmV3bGluZXMuYXBwZW5kKGxpbmVzW2ldKQorICAgIGV4Y2VwdCAoSW5kZW50YXRpb25FcnJv
ciwgdG9rZW5pemUuVG9rZW5FcnJvcik6CisgICAgICAgIHBhc3MKKyAgICAjIEFkZCBhbnkgbGlu
ZXMgd2UgZGlkbid0IHNlZS4gRS5nLiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZC4KKyAgICBu
ZXdsaW5lcy5leHRlbmQobGluZXNbbGVuKG5ld2xpbmVzKTpdKQorICAgIHJldHVybiBuZXdsaW5l
cworCisKK2RlZiBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIG5vZGUpOgorICAgIGlt
cG9ydCBhc3QKKyAgICAjIGZsYXR0ZW4gYWxsIHN0YXRlbWVudHMgYW5kIGV4Y2VwdCBoYW5kbGVy
cyBpbnRvIG9uZSBsaW5lbm8tbGlzdAorICAgICMgQVNUJ3MgbGluZSBudW1iZXJzIHN0YXJ0IGlu
ZGV4aW5nIGF0IDEKKyAgICB2YWx1ZXMgPSBbXQorICAgIGZvciB4IGluIGFzdC53YWxrKG5vZGUp
OgorICAgICAgICBpZiBpc2luc3RhbmNlKHgsIF9hc3Quc3RtdCkgb3IgaXNpbnN0YW5jZSh4LCBf
YXN0LkV4Y2VwdEhhbmRsZXIpOgorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh4LmxpbmVubyAt
IDEpCisgICAgICAgICAgICBmb3IgbmFtZSBpbiAiZmluYWxib2R5IiwgIm9yZWxzZSI6CisgICAg
ICAgICAgICAgICAgdmFsID0gZ2V0YXR0cih4LCBuYW1lLCBOb25lKQorICAgICAgICAgICAgICAg
IGlmIHZhbDoKKyAgICAgICAgICAgICAgICAgICAgIyB0cmVhdCB0aGUgZmluYWxseS9vcmVsc2Ug
cGFydCBhcyBpdHMgb3duIHN0YXRlbWVudAorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKHZhbFswXS5saW5lbm8gLSAxIC0gMSkKKyAgICB2YWx1ZXMuc29ydCgpCisgICAgaW5zZXJ0
X2luZGV4ID0gYmlzZWN0X3JpZ2h0KHZhbHVlcywgbGluZW5vKQorICAgIHN0YXJ0ID0gdmFsdWVz
W2luc2VydF9pbmRleCAtIDFdCisgICAgaWYgaW5zZXJ0X2luZGV4ID49IGxlbih2YWx1ZXMpOgor
ICAgICAgICBlbmQgPSBOb25lCisgICAgZWxzZToKKyAgICAgICAgZW5kID0gdmFsdWVzW2luc2Vy
dF9pbmRleF0KKyAgICByZXR1cm4gc3RhcnQsIGVuZAorCisKK2RlZiBnZXRzdGF0ZW1lbnRyYW5n
ZV9hc3QobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSwgYXN0bm9kZT1Ob25lKToKKyAg
ICBpZiBhc3Rub2RlIGlzIE5vbmU6CisgICAgICAgIGNvbnRlbnQgPSBzdHIoc291cmNlKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBhc3Rub2RlID0gY29tcGlsZShjb250ZW50LCAic291cmNl
IiwgImV4ZWMiLCAxMDI0KSAgIyAxMDI0IGZvciBBU1QKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgICAgICBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2Vfb2xkKGxpbmVu
bywgc291cmNlLCBhc3NlcnRpb24pCisgICAgICAgICAgICByZXR1cm4gTm9uZSwgc3RhcnQsIGVu
ZAorICAgIHN0YXJ0LCBlbmQgPSBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIGFzdG5v
ZGUpCisgICAgIyB3ZSBuZWVkIHRvIGNvcnJlY3QgdGhlIGVuZDoKKyAgICAjIC0gYXN0LXBhcnNp
bmcgc3RyaXBzIGNvbW1lbnRzCisgICAgIyAtIHRoZXJlIG1pZ2h0IGJlIGVtcHR5IGxpbmVzCisg
ICAgIyAtIHdlIG1pZ2h0IGhhdmUgbGVzc2VyIGluZGVudGVkIGNvZGUgYmxvY2tzIGF0IHRoZSBl
bmQKKyAgICBpZiBlbmQgaXMgTm9uZToKKyAgICAgICAgZW5kID0gbGVuKHNvdXJjZS5saW5lcykK
KworICAgIGlmIGVuZCA+IHN0YXJ0ICsgMToKKyAgICAgICAgIyBtYWtlIHN1cmUgd2UgZG9uJ3Qg
c3BhbiBkaWZmZXJlbnRseSBpbmRlbnRlZCBjb2RlIGJsb2NrcworICAgICAgICAjIGJ5IHVzaW5n
IHRoZSBCbG9ja0ZpbmRlciBoZWxwZXIgdXNlZCB3aGljaCBpbnNwZWN0LmdldHNvdXJjZSgpIHVz
ZXMgaXRzZWxmCisgICAgICAgIGJsb2NrX2ZpbmRlciA9IGluc3BlY3QuQmxvY2tGaW5kZXIoKQor
ICAgICAgICAjIGlmIHdlIHN0YXJ0IHdpdGggYW4gaW5kZW50ZWQgbGluZSwgcHV0IGJsb2NrZmlu
ZGVyIHRvICJzdGFydGVkIiBtb2RlCisgICAgICAgIGJsb2NrX2ZpbmRlci5zdGFydGVkID0gc291
cmNlLmxpbmVzW3N0YXJ0XVswXS5pc3NwYWNlKCkKKyAgICAgICAgaXQgPSAoKHggKyAiXG4iKSBm
b3IgeCBpbiBzb3VyY2UubGluZXNbc3RhcnQ6ZW5kXSkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgZm9yIHRvayBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMobGFtYmRhOiBuZXh0KGl0KSk6
CisgICAgICAgICAgICAgICAgYmxvY2tfZmluZGVyLnRva2VuZWF0ZXIoKnRvaykKKyAgICAgICAg
ZXhjZXB0IChpbnNwZWN0LkVuZE9mQmxvY2ssIEluZGVudGF0aW9uRXJyb3IpOgorICAgICAgICAg
ICAgZW5kID0gYmxvY2tfZmluZGVyLmxhc3QgKyBzdGFydAorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgcGFzcworCisgICAgIyB0aGUgZW5kIG1pZ2h0IHN0aWxsIHBvaW50
IHRvIGEgY29tbWVudCBvciBlbXB0eSBsaW5lLCBjb3JyZWN0IGl0CisgICAgd2hpbGUgZW5kOgor
ICAgICAgICBsaW5lID0gc291cmNlLmxpbmVzW2VuZCAtIDFdLmxzdHJpcCgpCisgICAgICAgIGlm
IGxpbmUuc3RhcnRzd2l0aCgiIyIpIG9yIG5vdCBsaW5lOgorICAgICAgICAgICAgZW5kIC09IDEK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgcmV0dXJuIGFzdG5vZGUsIHN0
YXJ0LCBlbmQKKworCitkZWYgZ2V0c3RhdGVtZW50cmFuZ2Vfb2xkKGxpbmVubywgc291cmNlLCBh
c3NlcnRpb249RmFsc2UpOgorICAgICIiIiByZXR1cm4gKHN0YXJ0LCBlbmQpIHR1cGxlIHdoaWNo
IHNwYW5zIHRoZSBtaW5pbWFsCisgICAgICAgIHN0YXRlbWVudCByZWdpb24gd2hpY2ggY29udGFp
bmluZyB0aGUgZ2l2ZW4gbGluZW5vLgorICAgICAgICByYWlzZSBhbiBJbmRleEVycm9yIGlmIG5v
IHN1Y2ggc3RhdGVtZW50cmFuZ2UgY2FuIGJlIGZvdW5kLgorICAgICIiIgorICAgICMgWFhYIHRo
aXMgbG9naWMgaXMgb25seSB1c2VkIG9uIHB5dGhvbjIuNCBhbmQgYmVsb3cKKyAgICAjIDEuIGZp
bmQgdGhlIHN0YXJ0IG9mIHRoZSBzdGF0ZW1lbnQKKyAgICBmcm9tIGNvZGVvcCBpbXBvcnQgY29t
cGlsZV9jb21tYW5kCisgICAgZm9yIHN0YXJ0IGluIHJhbmdlKGxpbmVubywgLTEsIC0xKToKKyAg
ICAgICAgaWYgYXNzZXJ0aW9uOgorICAgICAgICAgICAgbGluZSA9IHNvdXJjZS5saW5lc1tzdGFy
dF0KKyAgICAgICAgICAgICMgdGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgbm90IGZ1bGx5IHRlc3Rl
ZCwgY2hhbmdlIHdpdGggY2FyZQorICAgICAgICAgICAgaWYgJ3N1cGVyJyBpbiBsaW5lIGFuZCAn
c2VsZicgaW4gbGluZSBhbmQgJ19faW5pdF9fJyBpbiBsaW5lOgorICAgICAgICAgICAgICAgIHJh
aXNlIEluZGV4RXJyb3IoImxpa2VseSBhIHN1YmNsYXNzIikKKyAgICAgICAgICAgIGlmICJhc3Nl
cnQiIG5vdCBpbiBsaW5lIGFuZCAicmFpc2UiIG5vdCBpbiBsaW5lOgorICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgICAgIHRyeWxpbmVzID0gc291cmNlLmxpbmVzW3N0YXJ0OmxpbmVubyAr
IDFdCisgICAgICAgICMgcXVpY2sgaGFjayB0byBwcmVwYXJlIHBhcnNpbmcgYW4gaW5kZW50ZWQg
bGluZSB3aXRoCisgICAgICAgICMgY29tcGlsZV9jb21tYW5kKCkgKHdoaWNoIGVycm9ycyBvbiAi
cmV0dXJuIiBvdXRzaWRlIGRlZnMpCisgICAgICAgIHRyeWxpbmVzLmluc2VydCgwLCAnZGVmIHh4
eCgpOicpCisgICAgICAgIHRyeXNvdXJjZSA9ICdcbiAnLmpvaW4odHJ5bGluZXMpCisgICAgICAg
ICMgICAgICAgICAgICAgIF4gc3BhY2UgaGVyZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBj
b21waWxlX2NvbW1hbmQodHJ5c291cmNlKQorICAgICAgICBleGNlcHQgKFN5bnRheEVycm9yLCBP
dmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAg
ICAgIyAyLiBmaW5kIHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAorICAgICAgICBmb3IgZW5kIGlu
IHJhbmdlKGxpbmVubyArIDEsIGxlbihzb3VyY2UpICsgMSk6CisgICAgICAgICAgICB0cnlzb3Vy
Y2UgPSBzb3VyY2Vbc3RhcnQ6ZW5kXQorICAgICAgICAgICAgaWYgdHJ5c291cmNlLmlzcGFyc2Vh
YmxlKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0LCBlbmQKKyAgICByYWlzZSBTeW50
YXhFcnJvcigibm8gdmFsaWQgc291cmNlIHJhbmdlIGFyb3VuZCBsaW5lICVkICIgJSAobGluZW5v
LCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MjIzMzRmM2Y4ZWRhOTY2YTJkMThkZWRhNzJlOWQ5MDJmODdkNzFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIw
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9fY29kZS9jb2RlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ4
ZTk4Yzg1YWEyYmJkZThkZjVjMDczYmE5YjY0NWZjYzMyNTdiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTQ2
IEBACisiIiIKK3N1cHBvcnQgZm9yIHByZXNlbnRpbmcgZGV0YWlsZWQgaW5mb3JtYXRpb24gaW4g
ZmFpbGluZyBhc3NlcnRpb25zLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBvcnQgc2l4
CisKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHV0aWwKK2Zyb20gX3B5dGVzdC5hc3Nl
cnRpb24gaW1wb3J0IHJld3JpdGUKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHRydW5j
YXRlCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNl
ci5nZXRncm91cCgiZGVidWdjb25maWciKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS1hc3NlcnQn
LAorICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAg
ICAgZGVzdD0iYXNzZXJ0bW9kZSIsCisgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9KCJyZXdy
aXRlIiwgInBsYWluIiwpLAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PSJyZXdyaXRlIiwK
KyAgICAgICAgICAgICAgICAgICAgbWV0YXZhcj0iTU9ERSIsCisgICAgICAgICAgICAgICAgICAg
IGhlbHA9IiIiQ29udHJvbCBhc3NlcnRpb24gZGVidWdnaW5nIHRvb2xzLiAgJ3BsYWluJworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1zIG5vIGFzc2VydGlvbiBkZWJ1Z2dpbmcu
ICAncmV3cml0ZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhlIGRlZmF1bHQpIHJl
d3JpdGVzIGFzc2VydCBzdGF0ZW1lbnRzIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdCBtb2R1bGVzIG9uIGltcG9ydCB0byBwcm92aWRlIGFzc2VydAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cHJlc3Npb24gaW5mb3JtYXRpb24uIiIiKQorCisKK2RlZiByZWdpc3Rl
cl9hc3NlcnRfcmV3cml0ZSgqbmFtZXMpOgorICAgICIiIlJlZ2lzdGVyIG9uZSBvciBtb3JlIG1v
ZHVsZSBuYW1lcyB0byBiZSByZXdyaXR0ZW4gb24gaW1wb3J0LgorCisgICAgVGhpcyBmdW5jdGlv
biB3aWxsIG1ha2Ugc3VyZSB0aGF0IHRoaXMgbW9kdWxlIG9yIGFsbCBtb2R1bGVzIGluc2lkZQor
ICAgIHRoZSBwYWNrYWdlIHdpbGwgZ2V0IHRoZWlyIGFzc2VydCBzdGF0ZW1lbnRzIHJld3JpdHRl
bi4KKyAgICBUaHVzIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRvIGNhbGwgdGhpcyBiZWZvcmUgdGhl
IG1vZHVsZSBpcworICAgIGFjdHVhbGx5IGltcG9ydGVkLCB1c3VhbGx5IGluIHlvdXIgX19pbml0
X18ucHkgaWYgeW91IGFyZSBhIHBsdWdpbgorICAgIHVzaW5nIGEgcGFja2FnZS4KKworICAgIDpy
YWlzZSBUeXBlRXJyb3I6IGlmIHRoZSBnaXZlbiBtb2R1bGUgbmFtZXMgYXJlIG5vdCBzdHJpbmdz
LgorICAgICIiIgorICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShuYW1lLCBzdHIpOgorICAgICAgICAgICAgbXNnID0gJ2V4cGVjdGVkIG1vZHVsZSBuYW1l
cyBhcyAqYXJncywgZ290IHswfSBpbnN0ZWFkJworICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KG1zZy5mb3JtYXQocmVwcihuYW1lcykpKQorICAgIGZvciBob29rIGluIHN5cy5tZXRhX3BhdGg6
CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaG9vaywgcmV3cml0ZS5Bc3NlcnRpb25SZXdyaXRpbmdI
b29rKToKKyAgICAgICAgICAgIGltcG9ydGhvb2sgPSBob29rCisgICAgICAgICAgICBicmVhawor
ICAgIGVsc2U6CisgICAgICAgIGltcG9ydGhvb2sgPSBEdW1teVJld3JpdGVIb29rKCkKKyAgICBp
bXBvcnRob29rLm1hcmtfcmV3cml0ZSgqbmFtZXMpCisKKworY2xhc3MgRHVtbXlSZXdyaXRlSG9v
ayhvYmplY3QpOgorICAgICIiIkEgbm8tb3AgaW1wb3J0IGhvb2sgZm9yIHdoZW4gcmV3cml0aW5n
IGlzIGRpc2FibGVkLiIiIgorCisgICAgZGVmIG1hcmtfcmV3cml0ZShzZWxmLCAqbmFtZXMpOgor
ICAgICAgICBwYXNzCisKKworY2xhc3MgQXNzZXJ0aW9uU3RhdGU6CisgICAgIiIiU3RhdGUgZm9y
IHRoZSBhc3NlcnRpb24gcGx1Z2luLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZp
ZywgbW9kZSk6CisgICAgICAgIHNlbGYubW9kZSA9IG1vZGUKKyAgICAgICAgc2VsZi50cmFjZSA9
IGNvbmZpZy50cmFjZS5yb290LmdldCgiYXNzZXJ0aW9uIikKKyAgICAgICAgc2VsZi5ob29rID0g
Tm9uZQorCisKK2RlZiBpbnN0YWxsX2ltcG9ydGhvb2soY29uZmlnKToKKyAgICAiIiJUcnkgdG8g
aW5zdGFsbCB0aGUgcmV3cml0ZSBob29rLCByYWlzZSBTeXN0ZW1FcnJvciBpZiBpdCBmYWlscy4i
IiIKKyAgICAjIEp5dGhvbiBoYXMgYW4gQVNUIGJ1ZyB0aGF0IG1ha2UgdGhlIGFzc2VydGlvbiBy
ZXdyaXRpbmcgaG9vayBtYWxmdW5jdGlvbi4KKyAgICBpZiAoc3lzLnBsYXRmb3JtLnN0YXJ0c3dp
dGgoJ2phdmEnKSk6CisgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKCdyZXdyaXRlIG5vdCBzdXBw
b3J0ZWQnKQorCisgICAgY29uZmlnLl9hc3NlcnRzdGF0ZSA9IEFzc2VydGlvblN0YXRlKGNvbmZp
ZywgJ3Jld3JpdGUnKQorICAgIGNvbmZpZy5fYXNzZXJ0c3RhdGUuaG9vayA9IGhvb2sgPSByZXdy
aXRlLkFzc2VydGlvblJld3JpdGluZ0hvb2soY29uZmlnKQorICAgIHN5cy5tZXRhX3BhdGguaW5z
ZXJ0KDAsIGhvb2spCisgICAgY29uZmlnLl9hc3NlcnRzdGF0ZS50cmFjZSgnaW5zdGFsbGVkIHJl
d3JpdGUgaW1wb3J0IGhvb2snKQorCisgICAgZGVmIHVuZG8oKToKKyAgICAgICAgaG9vayA9IGNv
bmZpZy5fYXNzZXJ0c3RhdGUuaG9vaworICAgICAgICBpZiBob29rIGlzIG5vdCBOb25lIGFuZCBo
b29rIGluIHN5cy5tZXRhX3BhdGg6CisgICAgICAgICAgICBzeXMubWV0YV9wYXRoLnJlbW92ZSho
b29rKQorCisgICAgY29uZmlnLmFkZF9jbGVhbnVwKHVuZG8pCisgICAgcmV0dXJuIGhvb2sKKwor
CitkZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6CisgICAgIyB0aGlzIGhvb2sgaXMgb25s
eSBjYWxsZWQgd2hlbiB0ZXN0IG1vZHVsZXMgYXJlIGNvbGxlY3RlZAorICAgICMgc28gZm9yIGV4
YW1wbGUgbm90IGluIHRoZSBtYXN0ZXIgcHJvY2VzcyBvZiBweXRlc3QteGRpc3QKKyAgICAjICh3
aGljaCBkb2VzIG5vdCBjb2xsZWN0IHRlc3QgbW9kdWxlcykKKyAgICBhc3NlcnRzdGF0ZSA9IGdl
dGF0dHIoc2Vzc2lvbi5jb25maWcsICdfYXNzZXJ0c3RhdGUnLCBOb25lKQorICAgIGlmIGFzc2Vy
dHN0YXRlOgorICAgICAgICBpZiBhc3NlcnRzdGF0ZS5ob29rIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgYXNzZXJ0c3RhdGUuaG9vay5zZXRfc2Vzc2lvbihzZXNzaW9uKQorCisKK2RlZiBweXRl
c3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAiIiJTZXR1cCB0aGUgcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZSBob29rCisKKyAgICBUaGUgbmV3aW50ZXJwcmV0IGFuZCByZXdyaXRlIG1vZHVs
ZXMgd2lsbCB1c2UgdXRpbC5fcmVwcmNvbXBhcmUgaWYKKyAgICBpdCBleGlzdHMgdG8gdXNlIGN1
c3RvbSByZXBvcnRpbmcgdmlhIHRoZQorICAgIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9v
ay4gIFRoaXMgc2V0cyB1cCB0aGlzIGN1c3RvbQorICAgIGNvbXBhcmlzb24gZm9yIHRoZSB0ZXN0
LgorICAgICIiIgorICAgIGRlZiBjYWxsYmlucmVwcihvcCwgbGVmdCwgcmlnaHQpOgorICAgICAg
ICAiIiJDYWxsIHRoZSBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sgYW5kIHByZXBhcmUg
dGhlIHJlc3VsdAorCisgICAgICAgIFRoaXMgdXNlcyB0aGUgZmlyc3QgcmVzdWx0IGZyb20gdGhl
IGhvb2sgYW5kIHRoZW4gZW5zdXJlcyB0aGUKKyAgICAgICAgZm9sbG93aW5nOgorICAgICAgICAq
IE92ZXJseSB2ZXJib3NlIGV4cGxhbmF0aW9ucyBhcmUgdHJ1bmNhdGVkIHVubGVzcyBjb25maWd1
cmVkIG90aGVyd2lzZQorICAgICAgICAgIChlZy4gaWYgcnVubmluZyBpbiB2ZXJib3NlIG1vZGUp
LgorICAgICAgICAqIEVtYmVkZGVkIG5ld2xpbmVzIGFyZSBlc2NhcGVkIHRvIGhlbHAgdXRpbC5m
b3JtYXRfZXhwbGFuYXRpb24oKQorICAgICAgICAgIGxhdGVyLgorICAgICAgICAqIElmIHRoZSBy
ZXdyaXRlIG1vZGUgaXMgdXNlZCBlbWJlZGRlZCAlLWNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkCisg
ICAgICAgICAgdG8gcHJvdGVjdCBsYXRlciAlIGZvcm1hdHRpbmcuCisKKyAgICAgICAgVGhlIHJl
c3VsdCBjYW4gYmUgZm9ybWF0dGVkIGJ5IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgZm9yCisg
ICAgICAgIHByZXR0eSBwcmludGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIGhvb2tfcmVzdWx0
ID0gaXRlbS5paG9vay5weXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlKAorICAgICAgICAgICAgY29u
ZmlnPWl0ZW0uY29uZmlnLCBvcD1vcCwgbGVmdD1sZWZ0LCByaWdodD1yaWdodCkKKyAgICAgICAg
Zm9yIG5ld19leHBsIGluIGhvb2tfcmVzdWx0OgorICAgICAgICAgICAgaWYgbmV3X2V4cGw6Cisg
ICAgICAgICAgICAgICAgbmV3X2V4cGwgPSB0cnVuY2F0ZS50cnVuY2F0ZV9pZl9yZXF1aXJlZChu
ZXdfZXhwbCwgaXRlbSkKKyAgICAgICAgICAgICAgICBuZXdfZXhwbCA9IFtsaW5lLnJlcGxhY2Uo
IlxuIiwgIlxcbiIpIGZvciBsaW5lIGluIG5ld19leHBsXQorICAgICAgICAgICAgICAgIHJlcyA9
IHNpeC50ZXh0X3R5cGUoIlxufiIpLmpvaW4obmV3X2V4cGwpCisgICAgICAgICAgICAgICAgaWYg
aXRlbS5jb25maWcuZ2V0dmFsdWUoImFzc2VydG1vZGUiKSA9PSAicmV3cml0ZSI6CisgICAgICAg
ICAgICAgICAgICAgIHJlcyA9IHJlcy5yZXBsYWNlKCIlIiwgIiUlIikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzCisgICAgdXRpbC5fcmVwcmNvbXBhcmUgPSBjYWxsYmlucmVwcgorCisKK2Rl
ZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtKToKKyAgICB1dGlsLl9yZXByY29tcGFyZSA9
IE5vbmUKKworCitkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbik6CisgICAgYXNzZXJ0
c3RhdGUgPSBnZXRhdHRyKHNlc3Npb24uY29uZmlnLCAnX2Fzc2VydHN0YXRlJywgTm9uZSkKKyAg
ICBpZiBhc3NlcnRzdGF0ZToKKyAgICAgICAgaWYgYXNzZXJ0c3RhdGUuaG9vayBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGFzc2VydHN0YXRlLmhvb2suc2V0X3Nlc3Npb24oTm9uZSkKKworCisj
IEV4cG9zZSB0aGlzIHBsdWdpbidzIGltcGxlbWVudGF0aW9uIGZvciB0aGUgcHl0ZXN0X2Fzc2Vy
dHJlcHJfY29tcGFyZSBob29rCitweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlID0gdXRpbC5hc3Nl
cnRyZXByX2NvbXBhcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9u
L3Jld3JpdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY2NDM1OGY0OTBiYzkxYWY5YTVlYzUyNjUyYjZlOGIyYmUwYWNjNjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5CkBA
IC0wLDAgKzEsOTQ4IEBACisiIiJSZXdyaXRlIGFzc2VydGlvbiBBU1QgdG8gcHJvZHVjZSBuaWNl
IGVycm9yIG1lc3NhZ2VzIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgYXN0CitpbXBvcnQgX2FzdAoraW1w
b3J0IGVycm5vCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgaW1wCitpbXBvcnQgbWFyc2hhbAor
aW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzaXgKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCBz
eXMKK2ltcG9ydCB0eXBlcworCitpbXBvcnQgcHkKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1w
b3J0IHV0aWwKKworCisjIHB5dGVzdCBjYWNoZXMgcmV3cml0dGVuIHB5Y3MgaW4gX19weWNhY2hl
X18uCitpZiBoYXNhdHRyKGltcCwgImdldF90YWciKToKKyAgICBQWVRFU1RfVEFHID0gaW1wLmdl
dF90YWcoKSArICItUFlURVNUIgorZWxzZToKKyAgICBpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVy
c2lvbl9pbmZvIik6CisgICAgICAgIGltcGwgPSAicHlweSIKKyAgICBlbGlmIHN5cy5wbGF0Zm9y
bSA9PSAiamF2YSI6CisgICAgICAgIGltcGwgPSAianl0aG9uIgorICAgIGVsc2U6CisgICAgICAg
IGltcGwgPSAiY3B5dGhvbiIKKyAgICB2ZXIgPSBzeXMudmVyc2lvbl9pbmZvCisgICAgUFlURVNU
X1RBRyA9ICIlcy0lcyVzLVBZVEVTVCIgJSAoaW1wbCwgdmVyWzBdLCB2ZXJbMV0pCisgICAgZGVs
IHZlciwgaW1wbAorCitQWUNfRVhUID0gIi5weSIgKyAoX19kZWJ1Z19fIGFuZCAiYyIgb3IgIm8i
KQorUFlDX1RBSUwgPSAiLiIgKyBQWVRFU1RfVEFHICsgUFlDX0VYVAorCitBU0NJSV9JU19ERUZB
VUxUX0VOQ09ESU5HID0gc3lzLnZlcnNpb25faW5mb1swXSA8IDMKKworaWYgc3lzLnZlcnNpb25f
aW5mbyA+PSAoMywgNSk6CisgICAgYXN0X0NhbGwgPSBhc3QuQ2FsbAorZWxzZToKKyAgICBkZWYg
YXN0X0NhbGwoYSwgYiwgYyk6CisgICAgICAgIHJldHVybiBhc3QuQ2FsbChhLCBiLCBjLCBOb25l
LCBOb25lKQorCisKK2NsYXNzIEFzc2VydGlvblJld3JpdGluZ0hvb2sob2JqZWN0KToKKyAgICAi
IiJQRVAzMDIgSW1wb3J0IGhvb2sgd2hpY2ggcmV3cml0ZXMgYXNzZXJ0cy4iIiIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgorICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwor
ICAgICAgICBzZWxmLmZucGF0cyA9IGNvbmZpZy5nZXRpbmkoInB5dGhvbl9maWxlcyIpCisgICAg
ICAgIHNlbGYuc2Vzc2lvbiA9IE5vbmUKKyAgICAgICAgc2VsZi5tb2R1bGVzID0ge30KKyAgICAg
ICAgc2VsZi5fcmV3cml0dGVuX25hbWVzID0gc2V0KCkKKyAgICAgICAgc2VsZi5fcmVnaXN0ZXJf
d2l0aF9wa2dfcmVzb3VyY2VzKCkKKyAgICAgICAgc2VsZi5fbXVzdF9yZXdyaXRlID0gc2V0KCkK
KworICAgIGRlZiBzZXRfc2Vzc2lvbihzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNz
aW9uID0gc2Vzc2lvbgorCisgICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9u
ZSk6CisgICAgICAgIHN0YXRlID0gc2VsZi5jb25maWcuX2Fzc2VydHN0YXRlCisgICAgICAgIHN0
YXRlLnRyYWNlKCJmaW5kX21vZHVsZSBjYWxsZWQgZm9yOiAlcyIgJSBuYW1lKQorICAgICAgICBu
YW1lcyA9IG5hbWUucnNwbGl0KCIuIiwgMSkKKyAgICAgICAgbGFzdG5hbWUgPSBuYW1lc1stMV0K
KyAgICAgICAgcHRoID0gTm9uZQorICAgICAgICBpZiBwYXRoIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgIyBTdGFydGluZyB3aXRoIFB5dGhvbiAzLjMsIHBhdGggaXMgYSBfTmFtZXNwYWNlUGF0
aCgpLCB3aGljaAorICAgICAgICAgICAgIyBjYXVzZXMgcHJvYmxlbXMgaWYgbm90IGNvbnZlcnRl
ZCB0byBsaXN0LgorICAgICAgICAgICAgcGF0aCA9IGxpc3QocGF0aCkKKyAgICAgICAgICAgIGlm
IGxlbihwYXRoKSA9PSAxOgorICAgICAgICAgICAgICAgIHB0aCA9IHBhdGhbMF0KKyAgICAgICAg
aWYgcHRoIGlzIE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmQsIGZu
LCBkZXNjID0gaW1wLmZpbmRfbW9kdWxlKGxhc3RuYW1lLCBwYXRoKQorICAgICAgICAgICAgZXhj
ZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAg
ICBpZiBmZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBmZC5jbG9zZSgpCisgICAgICAg
ICAgICB0cCA9IGRlc2NbMl0KKyAgICAgICAgICAgIGlmIHRwID09IGltcC5QWV9DT01QSUxFRDoK
KyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGltcCwgInNvdXJjZV9mcm9tX2NhY2hlIik6Cisg
ICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZuID0gaW1w
LnNvdXJjZV9mcm9tX2NhY2hlKGZuKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVF
cnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgUHl0aG9uIDMgZG9lc24ndCBsaWtlIG9y
cGhhbmVkIGJ1dCBzdGlsbC1pbXBvcnRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAjIC5w
eWMgZmlsZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBmbiA9IGZuWzotMV0KKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmbiA9IGZuWzotMV0KKyAgICAgICAg
ICAgIGVsaWYgdHAgIT0gaW1wLlBZX1NPVVJDRToKKyAgICAgICAgICAgICAgICAjIERvbid0IGtu
b3cgd2hhdCB0aGlzIGlzLgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBmbiA9IG9zLnBhdGguam9pbihwdGgsIG5hbWUucnBhcnRpdGlvbigi
LiIpWzJdICsgIi5weSIpCisKKyAgICAgICAgZm5fcHlwYXRoID0gcHkucGF0aC5sb2NhbChmbikK
KyAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9yZXdyaXRlKG5hbWUsIGZuX3B5cGF0aCwgc3Rh
dGUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBzZWxmLl9yZXdyaXR0ZW5f
bmFtZXMuYWRkKG5hbWUpCisKKyAgICAgICAgIyBUaGUgcmVxdWVzdGVkIG1vZHVsZSBsb29rcyBs
aWtlIGEgdGVzdCBmaWxlLCBzbyByZXdyaXRlIGl0LiBUaGlzIGlzCisgICAgICAgICMgdGhlIG1v
c3QgbWFnaWNhbCBwYXJ0IG9mIHRoZSBwcm9jZXNzOiBsb2FkIHRoZSBzb3VyY2UsIHJld3JpdGUg
dGhlCisgICAgICAgICMgYXNzZXJ0cywgYW5kIGxvYWQgdGhlIHJld3JpdHRlbiBzb3VyY2UuIFdl
IGFsc28gY2FjaGUgdGhlIHJld3JpdHRlbgorICAgICAgICAjIG1vZHVsZSBjb2RlIGluIGEgc3Bl
Y2lhbCBweWMuIFdlIG11c3QgYmUgYXdhcmUgb2YgdGhlIHBvc3NpYmlsaXR5IG9mCisgICAgICAg
ICMgY29uY3VycmVudCBweXRlc3QgcHJvY2Vzc2VzIHJld3JpdGluZyBhbmQgbG9hZGluZyBweWNz
LiBUbyBhdm9pZAorICAgICAgICAjIHRyaWNreSByYWNlIGNvbmRpdGlvbnMsIHdlIG1haW50YWlu
IHRoZSBmb2xsb3dpbmcgaW52YXJpYW50OiBUaGUKKyAgICAgICAgIyBjYWNoZWQgcHljIGlzIGFs
d2F5cyBhIGNvbXBsZXRlLCB2YWxpZCBweWMuIE9wZXJhdGlvbnMgb24gaXQgbXVzdCBiZQorICAg
ICAgICAjIGF0b21pYy4gUE9TSVgncyBhdG9taWMgcmVuYW1lIGNvbWVzIGluIGhhbmR5LgorICAg
ICAgICB3cml0ZSA9IG5vdCBzeXMuZG9udF93cml0ZV9ieXRlY29kZQorICAgICAgICBjYWNoZV9k
aXIgPSBvcy5wYXRoLmpvaW4oZm5fcHlwYXRoLmRpcm5hbWUsICJfX3B5Y2FjaGVfXyIpCisgICAg
ICAgIGlmIHdyaXRlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLm1rZGly
KGNhY2hlX2RpcikKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAg
IGUgPSBzeXMuZXhjX2luZm8oKVsxXS5lcnJubworICAgICAgICAgICAgICAgIGlmIGUgPT0gZXJy
bm8uRUVYSVNUOgorICAgICAgICAgICAgICAgICAgICAjIEVpdGhlciB0aGUgX19weWNhY2hlX18g
ZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzICh0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBjb21t
b24gY2FzZSkgb3IgaXQncyBibG9ja2VkIGJ5IGEgbm9uLWRpciBub2RlLiBJbiB0aGUKKyAgICAg
ICAgICAgICAgICAgICAgIyBsYXR0ZXIgY2FzZSwgd2UnbGwgaWdub3JlIGl0IGluIF93cml0ZV9w
eWMuCisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBlbGlmIGUgaW4g
W2Vycm5vLkVOT0VOVCwgZXJybm8uRU5PVERJUl06CisgICAgICAgICAgICAgICAgICAgICMgT25l
IG9mIHRoZSBwYXRoIGNvbXBvbmVudHMgd2FzIG5vdCBhIGRpcmVjdG9yeSwgbGlrZWx5CisgICAg
ICAgICAgICAgICAgICAgICMgYmVjYXVzZSB3ZSdyZSBpbiBhIHppcCBmaWxlLgorICAgICAgICAg
ICAgICAgICAgICB3cml0ZSA9IEZhbHNlCisgICAgICAgICAgICAgICAgZWxpZiBlIGluIFtlcnJu
by5FQUNDRVMsIGVycm5vLkVST0ZTLCBlcnJuby5FUEVSTV06CisgICAgICAgICAgICAgICAgICAg
IHN0YXRlLnRyYWNlKCJyZWFkIG9ubHkgZGlyZWN0b3J5OiAlciIgJSBmbl9weXBhdGguZGlybmFt
ZSkKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUgPSBGYWxzZQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGNhY2hlX25hbWUgPSBmbl9w
eXBhdGguYmFzZW5hbWVbOi0zXSArIFBZQ19UQUlMCisgICAgICAgIHB5YyA9IG9zLnBhdGguam9p
bihjYWNoZV9kaXIsIGNhY2hlX25hbWUpCisgICAgICAgICMgTm90aWNlIHRoYXQgZXZlbiBpZiB3
ZSdyZSBpbiBhIHJlYWQtb25seSBkaXJlY3RvcnksIEknbSBnb2luZworICAgICAgICAjIHRvIGNo
ZWNrIGZvciBhIGNhY2hlZCBweWMuIFRoaXMgbWF5IG5vdCBiZSBvcHRpbWFsLi4uCisgICAgICAg
IGNvID0gX3JlYWRfcHljKGZuX3B5cGF0aCwgcHljLCBzdGF0ZS50cmFjZSkKKyAgICAgICAgaWYg
Y28gaXMgTm9uZToKKyAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZXdyaXRpbmcgJXIiICUgKGZu
LCkpCisgICAgICAgICAgICBzb3VyY2Vfc3RhdCwgY28gPSBfcmV3cml0ZV90ZXN0KHNlbGYuY29u
ZmlnLCBmbl9weXBhdGgpCisgICAgICAgICAgICBpZiBjbyBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICMgUHJvYmFibHkgYSBTeW50YXhFcnJvciBpbiB0aGUgdGVzdC4KKyAgICAgICAgICAgICAg
ICByZXR1cm4gTm9uZQorICAgICAgICAgICAgaWYgd3JpdGU6CisgICAgICAgICAgICAgICAgX21h
a2VfcmV3cml0dGVuX3B5YyhzdGF0ZSwgc291cmNlX3N0YXQsIHB5YywgY28pCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzdGF0ZS50cmFjZSgiZm91bmQgY2FjaGVkIHJld3JpdHRlbiBweWMg
Zm9yICVyIiAlIChmbiwpKQorICAgICAgICBzZWxmLm1vZHVsZXNbbmFtZV0gPSBjbywgcHljCisg
ICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX3Nob3VsZF9yZXdyaXRlKHNlbGYsIG5hbWUs
IGZuX3B5cGF0aCwgc3RhdGUpOgorICAgICAgICAjIGFsd2F5cyByZXdyaXRlIGNvbmZ0ZXN0IGZp
bGVzCisgICAgICAgIGZuID0gc3RyKGZuX3B5cGF0aCkKKyAgICAgICAgaWYgZm5fcHlwYXRoLmJh
c2VuYW1lID09ICdjb25mdGVzdC5weSc6CisgICAgICAgICAgICBzdGF0ZS50cmFjZSgicmV3cml0
aW5nIGNvbmZ0ZXN0IGZpbGU6ICVyIiAlIChmbiwpKQorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KworICAgICAgICBpZiBzZWxmLnNlc3Npb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBz
ZWxmLnNlc3Npb24uaXNpbml0cGF0aChmbik6CisgICAgICAgICAgICAgICAgc3RhdGUudHJhY2Uo
Im1hdGNoZWQgdGVzdCBmaWxlICh3YXMgc3BlY2lmaWVkIG9uIGNtZGxpbmUpOiAlciIgJQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmbiwpKQorICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgIyBtb2R1bGVzIG5vdCBwYXNzZWQgZXhwbGljaXRseSBvbiB0aGUgY29t
bWFuZCBsaW5lIGFyZSBvbmx5CisgICAgICAgICMgcmV3cml0dGVuIGlmIHRoZXkgbWF0Y2ggdGhl
IG5hbWluZyBjb252ZW50aW9uIGZvciB0ZXN0IGZpbGVzCisgICAgICAgIGZvciBwYXQgaW4gc2Vs
Zi5mbnBhdHM6CisgICAgICAgICAgICBpZiBmbl9weXBhdGguZm5tYXRjaChwYXQpOgorICAgICAg
ICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIHRlc3QgZmlsZSAlciIgJSAoZm4sKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGZvciBtYXJrZWQgaW4gc2VsZi5f
bXVzdF9yZXdyaXRlOgorICAgICAgICAgICAgaWYgbmFtZSA9PSBtYXJrZWQgb3IgbmFtZS5zdGFy
dHN3aXRoKG1hcmtlZCArICcuJyk6CisgICAgICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNo
ZWQgbWFya2VkIGZpbGUgJXIgKGZyb20gJXIpIiAlIChuYW1lLCBtYXJrZWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgbWFy
a19yZXdyaXRlKHNlbGYsICpuYW1lcyk6CisgICAgICAgICIiIk1hcmsgaW1wb3J0IG5hbWVzIGFz
IG5lZWRpbmcgdG8gYmUgcmV3cml0dGVuLgorCisgICAgICAgIFRoZSBuYW1lZCBtb2R1bGUgb3Ig
cGFja2FnZSBhcyB3ZWxsIGFzIGFueSBuZXN0ZWQgbW9kdWxlcyB3aWxsCisgICAgICAgIGJlIHJl
d3JpdHRlbiBvbiBpbXBvcnQuCisgICAgICAgICIiIgorICAgICAgICBhbHJlYWR5X2ltcG9ydGVk
ID0gc2V0KG5hbWVzKS5pbnRlcnNlY3Rpb24oc2V0KHN5cy5tb2R1bGVzKSkKKyAgICAgICAgaWYg
YWxyZWFkeV9pbXBvcnRlZDoKKyAgICAgICAgICAgIGZvciBuYW1lIGluIGFscmVhZHlfaW1wb3J0
ZWQ6CisgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fcmV3cml0dGVuX25hbWVz
OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl93YXJuX2FscmVhZHlfaW1wb3J0ZWQobmFtZSkK
KyAgICAgICAgc2VsZi5fbXVzdF9yZXdyaXRlLnVwZGF0ZShuYW1lcykKKworICAgIGRlZiBfd2Fy
bl9hbHJlYWR5X2ltcG9ydGVkKHNlbGYsIG5hbWUpOgorICAgICAgICBzZWxmLmNvbmZpZy53YXJu
KAorICAgICAgICAgICAgJ1AxJywKKyAgICAgICAgICAgICdNb2R1bGUgYWxyZWFkeSBpbXBvcnRl
ZCBzbyBjYW5ub3QgYmUgcmV3cml0dGVuOiAlcycgJSBuYW1lKQorCisgICAgZGVmIGxvYWRfbW9k
dWxlKHNlbGYsIG5hbWUpOgorICAgICAgICAjIElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIG1vZHVs
ZSBvYmplY3QgbmFtZWQgJ2Z1bGxuYW1lJyBpbgorICAgICAgICAjIHN5cy5tb2R1bGVzLCB0aGUg
bG9hZGVyIG11c3QgdXNlIHRoYXQgZXhpc3RpbmcgbW9kdWxlLiAoT3RoZXJ3aXNlLAorICAgICAg
ICAjIHRoZSByZWxvYWQoKSBidWlsdGluIHdpbGwgbm90IHdvcmsgY29ycmVjdGx5LikKKyAgICAg
ICAgaWYgbmFtZSBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgICAgIHJldHVybiBzeXMubW9kdWxl
c1tuYW1lXQorCisgICAgICAgIGNvLCBweWMgPSBzZWxmLm1vZHVsZXMucG9wKG5hbWUpCisgICAg
ICAgICMgSSB3aXNoIEkgY291bGQganVzdCBjYWxsIGltcC5sb2FkX2NvbXBpbGVkIGhlcmUsIGJ1
dCBfX2ZpbGVfXyBoYXMgdG8KKyAgICAgICAgIyBiZSBzZXQgcHJvcGVybHkuIEluIFB5dGhvbiAz
LjIrLCB0aGlzIGFsbCB3b3VsZCBiZSBoYW5kbGVkIGNvcnJlY3RseQorICAgICAgICAjIGJ5IGxv
YWRfY29tcGlsZWQuCisgICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzW25hbWVdID0gaW1wLm5ld19t
b2R1bGUobmFtZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kLl9fZmlsZV9fID0gY28u
Y29fZmlsZW5hbWUKKyAgICAgICAgICAgICMgTm9ybWFsbHksIHRoaXMgYXR0cmlidXRlIGlzIDMu
MisuCisgICAgICAgICAgICBtb2QuX19jYWNoZWRfXyA9IHB5YworICAgICAgICAgICAgbW9kLl9f
bG9hZGVyX18gPSBzZWxmCisgICAgICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvLCBtb2QuX19k
aWN0X18pCisgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAgICAgICAgICAgaWYgbmFtZSBpbiBz
eXMubW9kdWxlczoKKyAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0KKyAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgIHJldHVybiBzeXMubW9kdWxlc1tuYW1lXQorCisgICAgZGVm
IGlzX3BhY2thZ2Uoc2VsZiwgbmFtZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZkLCBm
biwgZGVzYyA9IGltcC5maW5kX21vZHVsZShuYW1lKQorICAgICAgICBleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgZmQgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBmZC5jbG9zZSgpCisgICAgICAgIHRwID0gZGVzY1syXQorICAgICAgICBy
ZXR1cm4gdHAgPT0gaW1wLlBLR19ESVJFQ1RPUlkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiBfcmVnaXN0ZXJfd2l0aF9wa2dfcmVzb3VyY2VzKGNscyk6CisgICAgICAgICIiIgorICAgICAg
ICBFbnN1cmUgcGFja2FnZSByZXNvdXJjZXMgY2FuIGJlIGxvYWRlZCBmcm9tIHRoaXMgbG9hZGVy
LiBNYXkgYmUgY2FsbGVkCisgICAgICAgIG11bHRpcGxlIHRpbWVzLCBhcyB0aGUgb3BlcmF0aW9u
IGlzIGlkZW1wb3RlbnQuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBp
bXBvcnQgcGtnX3Jlc291cmNlcworICAgICAgICAgICAgIyBhY2Nlc3MgYW4gYXR0cmlidXRlIGlu
IGNhc2UgYSBkZWZlcnJlZCBpbXBvcnRlciBpcyBwcmVzZW50CisgICAgICAgICAgICBwa2dfcmVz
b3VyY2VzLl9fbmFtZV9fCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgICMgU2luY2UgcHl0ZXN0IHRlc3RzIGFyZSBhbHdheXMgbG9jYXRl
ZCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHRoZQorICAgICAgICAjICBEZWZhdWx0UHJvdmlkZXIgaXMg
YXBwcm9wcmlhdGUuCisgICAgICAgIHBrZ19yZXNvdXJjZXMucmVnaXN0ZXJfbG9hZGVyX3R5cGUo
Y2xzLCBwa2dfcmVzb3VyY2VzLkRlZmF1bHRQcm92aWRlcikKKworICAgIGRlZiBnZXRfZGF0YShz
ZWxmLCBwYXRobmFtZSk6CisgICAgICAgICIiIk9wdGlvbmFsIFBFUDMwMiBnZXRfZGF0YSBBUEku
CisgICAgICAgICIiIgorICAgICAgICB3aXRoIG9wZW4ocGF0aG5hbWUsICdyYicpIGFzIGY6Cisg
ICAgICAgICAgICByZXR1cm4gZi5yZWFkKCkKKworCitkZWYgX3dyaXRlX3B5YyhzdGF0ZSwgY28s
IHNvdXJjZV9zdGF0LCBweWMpOgorICAgICMgVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8g
aGF2ZSB0aGUgc2FtZSBweWMgZm9ybWF0IGFzCisgICAgIyAoQylQeXRob24sIHNpbmNlIHRoZXNl
ICJweWNzIiBzaG91bGQgbmV2ZXIgYmUgc2VlbiBieSBidWlsdGluCisgICAgIyBpbXBvcnQuIEhv
d2V2ZXIsIHRoZXJlJ3MgbGl0dGxlIHJlYXNvbiBkZXZpYXRlLCBhbmQgSSBob3BlCisgICAgIyBz
b21ldGltZSB0byBiZSBhYmxlIHRvIHVzZSBpbXAubG9hZF9jb21waWxlZCB0byBsb2FkIHRoZW0u
IChTZWUKKyAgICAjIHRoZSBjb21tZW50IGluIGxvYWRfbW9kdWxlIGFib3ZlLikKKyAgICB0cnk6
CisgICAgICAgIGZwID0gb3BlbihweWMsICJ3YiIpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAg
ICAgIGVyciA9IHN5cy5leGNfaW5mbygpWzFdLmVycm5vCisgICAgICAgIHN0YXRlLnRyYWNlKCJl
cnJvciB3cml0aW5nIHB5YyBmaWxlIGF0ICVzOiBlcnJubz0lcyIgJSAocHljLCBlcnIpKQorICAg
ICAgICAjIHdlIGlnbm9yZSBhbnkgZmFpbHVyZSB0byB3cml0ZSB0aGUgY2FjaGUgZmlsZQorICAg
ICAgICAjIHRoZXJlIGFyZSBtYW55IHJlYXNvbnMsIHBlcm1pc3Npb24tZGVuaWVkLCBfX3B5Y2Fj
aGVfXyBiZWluZyBhCisgICAgICAgICMgZmlsZSBldGMuCisgICAgICAgIHJldHVybiBGYWxzZQor
ICAgIHRyeToKKyAgICAgICAgZnAud3JpdGUoaW1wLmdldF9tYWdpYygpKQorICAgICAgICBtdGlt
ZSA9IGludChzb3VyY2Vfc3RhdC5tdGltZSkKKyAgICAgICAgc2l6ZSA9IHNvdXJjZV9zdGF0LnNp
emUgJiAweEZGRkZGRkZGCisgICAgICAgIGZwLndyaXRlKHN0cnVjdC5wYWNrKCI8bGwiLCBtdGlt
ZSwgc2l6ZSkpCisgICAgICAgIG1hcnNoYWwuZHVtcChjbywgZnApCisgICAgZmluYWxseToKKyAg
ICAgICAgZnAuY2xvc2UoKQorICAgIHJldHVybiBUcnVlCisKKworUk4gPSAiXHJcbiIuZW5jb2Rl
KCJ1dGYtOCIpCitOID0gIlxuIi5lbmNvZGUoInV0Zi04IikKKworY29va2llX3JlID0gcmUuY29t
cGlsZShyIl5bIFx0XGZdKiMuKmNvZGluZ1s6PV1bIFx0XSpbLVx3Ll0rIikKK0JPTV9VVEY4ID0g
J1x4ZWZceGJiXHhiZicKKworCitkZWYgX3Jld3JpdGVfdGVzdChjb25maWcsIGZuKToKKyAgICAi
IiJUcnkgdG8gcmVhZCBhbmQgcmV3cml0ZSAqZm4qIGFuZCByZXR1cm4gdGhlIGNvZGUgb2JqZWN0
LiIiIgorICAgIHN0YXRlID0gY29uZmlnLl9hc3NlcnRzdGF0ZQorICAgIHRyeToKKyAgICAgICAg
c3RhdCA9IGZuLnN0YXQoKQorICAgICAgICBzb3VyY2UgPSBmbi5yZWFkKCJyYiIpCisgICAgZXhj
ZXB0IEVudmlyb25tZW50RXJyb3I6CisgICAgICAgIHJldHVybiBOb25lLCBOb25lCisgICAgaWYg
QVNDSUlfSVNfREVGQVVMVF9FTkNPRElORzoKKyAgICAgICAgIyBBU0NJSSBpcyB0aGUgZGVmYXVs
dCBlbmNvZGluZyBpbiBQeXRob24gMi4gV2l0aG91dCBhIGNvZGluZworICAgICAgICAjIGRlY2xh
cmF0aW9uLCBQeXRob24gMiB3aWxsIGNvbXBsYWluIGFib3V0IGFueSBieXRlcyBpbiB0aGUgZmls
ZQorICAgICAgICAjIG91dHNpZGUgdGhlIEFTQ0lJIHJhbmdlLiBTYWRseSwgdGhpcyBiZWhhdmlv
ciBkb2VzIG5vdCBleHRlbmQgdG8KKyAgICAgICAgIyBjb21waWxlKCkgb3IgYXN0LnBhcnNlKCks
IHdoaWNoIHByZWZlciB0byBpbnRlcnByZXQgdGhlIGJ5dGVzIGFzCisgICAgICAgICMgbGF0aW4t
MS4gKEF0IGxlYXN0IHRoZXkgcHJvcGVybHkgaGFuZGxlIGV4cGxpY2l0IGNvZGluZyBjb29raWVz
LikgVG8KKyAgICAgICAgIyBwcmVzZXJ2ZSB0aGlzIGVycm9yIGJlaGF2aW9yLCB3ZSBjb3VsZCBm
b3JjZSBhc3QucGFyc2UoKSB0byB1c2UgQVNDSUkKKyAgICAgICAgIyBhcyB0aGUgZW5jb2Rpbmcg
YnkgaW5zZXJ0aW5nIGEgY29kaW5nIGNvb2tpZS4gVW5mb3J0dW5hdGVseSwgdGhhdAorICAgICAg
ICAjIG1lc3NlcyB1cCBsaW5lIG51bWJlcnMuIFRodXMsIHdlIGhhdmUgdG8gY2hlY2sgb3Vyc2Vs
dmVzIGlmIGFueXRoaW5nCisgICAgICAgICMgaXMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UgaW4g
dGhlIGNhc2Ugbm8gZW5jb2RpbmcgaXMgZXhwbGljaXRseQorICAgICAgICAjIGRlY2xhcmVkLiBG
b3IgbW9yZSBjb250ZXh0LCBzZWUgaXNzdWUgIzI2OS4gWWF5IGZvciBQeXRob24gMyB3aGljaAor
ICAgICAgICAjIGdldHMgdGhpcyByaWdodC4KKyAgICAgICAgZW5kMSA9IHNvdXJjZS5maW5kKCJc
biIpCisgICAgICAgIGVuZDIgPSBzb3VyY2UuZmluZCgiXG4iLCBlbmQxICsgMSkKKyAgICAgICAg
aWYgKG5vdCBzb3VyY2Uuc3RhcnRzd2l0aChCT01fVVRGOCkgYW5kCisgICAgICAgICAgICBjb29r
aWVfcmUubWF0Y2goc291cmNlWzA6ZW5kMV0pIGlzIE5vbmUgYW5kCisgICAgICAgICAgICAgICAg
Y29va2llX3JlLm1hdGNoKHNvdXJjZVtlbmQxICsgMTplbmQyXSkgaXMgTm9uZSk6CisgICAgICAg
ICAgICBpZiBoYXNhdHRyKHN0YXRlLCAiX2luZGVjb2RlIik6CisgICAgICAgICAgICAgICAgIyBl
bmNvZGluZ3MgaW1wb3J0ZWQgdXMgYWdhaW4sIHNvIGRvbid0IHJld3JpdGUuCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKKyAgICAgICAgICAgIHN0YXRlLl9pbmRlY29kZSA9IFRy
dWUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgICAgICAgICBleGNlcHQgVW5p
Y29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAjIExldCBpdCBmYWlsIGluIHJl
YWwgaW1wb3J0LgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgICAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBkZWwgc3RhdGUuX2luZGVjb2RlCisgICAg
dHJ5OgorICAgICAgICB0cmVlID0gYXN0LnBhcnNlKHNvdXJjZSkKKyAgICBleGNlcHQgU3ludGF4
RXJyb3I6CisgICAgICAgICMgTGV0IHRoaXMgcG9wIHVwIGFnYWluIGluIHRoZSByZWFsIGltcG9y
dC4KKyAgICAgICAgc3RhdGUudHJhY2UoImZhaWxlZCB0byBwYXJzZTogJXIiICUgKGZuLCkpCisg
ICAgICAgIHJldHVybiBOb25lLCBOb25lCisgICAgcmV3cml0ZV9hc3NlcnRzKHRyZWUsIGZuLCBj
b25maWcpCisgICAgdHJ5OgorICAgICAgICBjbyA9IGNvbXBpbGUodHJlZSwgZm4uc3RycGF0aCwg
ImV4ZWMiLCBkb250X2luaGVyaXQ9VHJ1ZSkKKyAgICBleGNlcHQgU3ludGF4RXJyb3I6CisgICAg
ICAgICMgSXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgZXJyb3IgaXMgZnJvbSBzb21lIGJ1ZyBpbiB0
aGUKKyAgICAgICAgIyBhc3NlcnRpb24gcmV3cml0aW5nLCBidXQgSSBkb24ndCBrbm93IG9mIGEg
ZmFzdCB3YXkgdG8gdGVsbC4KKyAgICAgICAgc3RhdGUudHJhY2UoImZhaWxlZCB0byBjb21waWxl
OiAlciIgJSAoZm4sKSkKKyAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKKyAgICByZXR1cm4gc3Rh
dCwgY28KKworCitkZWYgX21ha2VfcmV3cml0dGVuX3B5YyhzdGF0ZSwgc291cmNlX3N0YXQsIHB5
YywgY28pOgorICAgICIiIlRyeSB0byBkdW1wIHJld3JpdHRlbiBjb2RlIHRvICpweWMqLiIiIgor
ICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKKyAgICAgICAgIyBXaW5kb3dz
IGdyYW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIG9wZW4gZmlsZXMgYW5kIGRvZXNuJ3QgaGF2ZSBh
dG9taWMKKyAgICAgICAgIyByZW5hbWUsIHNvIGp1c3Qgd3JpdGUgaW50byB0aGUgZmluYWwgZmls
ZS4KKyAgICAgICAgX3dyaXRlX3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBweWMpCisgICAg
ZWxzZToKKyAgICAgICAgIyBXaGVuIG5vdCBvbiB3aW5kb3dzLCBhc3N1bWUgcmVuYW1lIGlzIGF0
b21pYy4gRHVtcCB0aGUgY29kZSBvYmplY3QKKyAgICAgICAgIyBpbnRvIGEgZmlsZSBzcGVjaWZp
YyB0byB0aGlzIHByb2Nlc3MgYW5kIGF0b21pY2FsbHkgcmVwbGFjZSBpdC4KKyAgICAgICAgcHJv
Y19weWMgPSBweWMgKyAiLiIgKyBzdHIob3MuZ2V0cGlkKCkpCisgICAgICAgIGlmIF93cml0ZV9w
eWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHJvY19weWMpOgorICAgICAgICAgICAgb3MucmVu
YW1lKHByb2NfcHljLCBweWMpCisKKworZGVmIF9yZWFkX3B5Yyhzb3VyY2UsIHB5YywgdHJhY2U9
bGFtYmRhIHg6IE5vbmUpOgorICAgICIiIlBvc3NpYmx5IHJlYWQgYSBweXRlc3QgcHljIGNvbnRh
aW5pbmcgcmV3cml0dGVuIGNvZGUuCisKKyAgICBSZXR1cm4gcmV3cml0dGVuIGNvZGUgaWYgc3Vj
Y2Vzc2Z1bCBvciBOb25lIGlmIG5vdC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGZwID0g
b3BlbihweWMsICJyYiIpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJldHVybiBOb25l
CisgICAgd2l0aCBmcDoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbXRpbWUgPSBpbnQoc291
cmNlLm10aW1lKCkpCisgICAgICAgICAgICBzaXplID0gc291cmNlLnNpemUoKQorICAgICAgICAg
ICAgZGF0YSA9IGZwLnJlYWQoMTIpCisgICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFz
IGU6CisgICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTogRW52aXJvbm1lbnRFcnJvciAl
cycgJSAoc291cmNlLCBlKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICMgQ2hl
Y2sgZm9yIGludmFsaWQgb3Igb3V0IG9mIGRhdGUgcHljIGZpbGUuCisgICAgICAgIGlmIChsZW4o
ZGF0YSkgIT0gMTIgb3IgZGF0YVs6NF0gIT0gaW1wLmdldF9tYWdpYygpIG9yCisgICAgICAgICAg
ICAgICAgc3RydWN0LnVucGFjaygiPGxsIiwgZGF0YVs0Ol0pICE9IChtdGltZSwgc2l6ZSkpOgor
ICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5Yyglcyk6IGludmFsaWQgb3Igb3V0IG9mIGRhdGUg
cHljJyAlIHNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGNvID0gbWFyc2hhbC5sb2FkKGZwKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6CisgICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTogbWFyc2hhbC5sb2FkIGVy
cm9yICVzJyAlIChzb3VyY2UsIGUpKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UoY28sIHR5cGVzLkNvZGVUeXBlKToKKyAgICAgICAgICAgIHRyYWNl
KCdfcmVhZF9weWMoJXMpOiBub3QgYSBjb2RlIG9iamVjdCcgJSBzb3VyY2UpCisgICAgICAgICAg
ICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gY28KKworCitkZWYgcmV3cml0ZV9hc3NlcnRz
KG1vZCwgbW9kdWxlX3BhdGg9Tm9uZSwgY29uZmlnPU5vbmUpOgorICAgICIiIlJld3JpdGUgdGhl
IGFzc2VydCBzdGF0ZW1lbnRzIGluIG1vZC4iIiIKKyAgICBBc3NlcnRpb25SZXdyaXRlcihtb2R1
bGVfcGF0aCwgY29uZmlnKS5ydW4obW9kKQorCisKK2RlZiBfc2FmZXJlcHIob2JqKToKKyAgICAi
IiJHZXQgYSBzYWZlIHJlcHIgb2YgYW4gb2JqZWN0IGZvciBhc3NlcnRpb24gZXJyb3IgbWVzc2Fn
ZXMuCisKKyAgICBUaGUgYXNzZXJ0aW9uIGZvcm1hdHRpbmcgKHV0aWwuZm9ybWF0X2V4cGxhbmF0
aW9uKCkpIHJlcXVpcmVzCisgICAgbmV3bGluZXMgdG8gYmUgZXNjYXBlZCBzaW5jZSB0aGV5IGFy
ZSBhIHNwZWNpYWwgY2hhcmFjdGVyIGZvciBpdC4KKyAgICBOb3JtYWxseSBhc3NlcnRpb24udXRp
bC5mb3JtYXRfZXhwbGFuYXRpb24oKSBkb2VzIHRoaXMgYnV0IGZvciBhCisgICAgY3VzdG9tIHJl
cHIgaXQgaXMgcG9zc2libGUgdG8gY29udGFpbiBvbmUgb2YgdGhlIHNwZWNpYWwgZXNjYXBlCisg
ICAgc2VxdWVuY2VzLCBlc3BlY2lhbGx5ICdcbnsnIGFuZCAnXG59JyBhcmUgbGlrZWx5IHRvIGJl
IHByZXNlbnQgaW4KKyAgICBKU09OIHJlcHJzLgorCisgICAgIiIiCisgICAgcmVwciA9IHB5Lmlv
LnNhZmVyZXByKG9iaikKKyAgICBpZiBpc2luc3RhbmNlKHJlcHIsIHNpeC50ZXh0X3R5cGUpOgor
ICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQorICAgIGVsc2U6CisgICAgICAgIHQgPSBzaXguYmlu
YXJ5X3R5cGUKKyAgICByZXR1cm4gcmVwci5yZXBsYWNlKHQoIlxuIiksIHQoIlxcbiIpKQorCisK
K2Zyb20gX3B5dGVzdC5hc3NlcnRpb24udXRpbCBpbXBvcnQgZm9ybWF0X2V4cGxhbmF0aW9uIGFz
IF9mb3JtYXRfZXhwbGFuYXRpb24gICMgbm9xYQorCisKK2RlZiBfZm9ybWF0X2Fzc2VydG1zZyhv
YmopOgorICAgICIiIkZvcm1hdCB0aGUgY3VzdG9tIGFzc2VydGlvbiBtZXNzYWdlIGdpdmVuLgor
CisgICAgRm9yIHN0cmluZ3MgdGhpcyBzaW1wbHkgcmVwbGFjZXMgbmV3bGluZXMgd2l0aCAnXG5+
JyBzbyB0aGF0CisgICAgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKSB3aWxsIHByZXNlcnZlIHRo
ZW0gaW5zdGVhZCBvZiBlc2NhcGluZworICAgIG5ld2xpbmVzLiAgRm9yIG90aGVyIG9iamVjdHMg
cHkuaW8uc2FmZXJlcHIoKSBpcyB1c2VkIGZpcnN0LgorCisgICAgIiIiCisgICAgIyByZXBybGli
IGFwcGVhcnMgdG8gaGF2ZSBhIGJ1ZyB3aGljaCBtZWFucyB0aGF0IGlmIGEgc3RyaW5nCisgICAg
IyBjb250YWlucyBhIG5ld2xpbmUgaXQgZ2V0cyBlc2NhcGVkLCBob3dldmVyIGlmIGFuIG9iamVj
dCBoYXMgYQorICAgICMgLl9fcmVwcl9fKCkgd2hpY2ggY29udGFpbnMgbmV3bGluZXMgaXQgZG9l
cyBub3QgZ2V0IGVzY2FwZWQuCisgICAgIyBIb3dldmVyIGluIGVpdGhlciBjYXNlIHdlIHdhbnQg
dG8gcHJlc2VydmUgdGhlIG5ld2xpbmUuCisgICAgaWYgaXNpbnN0YW5jZShvYmosIHNpeC50ZXh0
X3R5cGUpIG9yIGlzaW5zdGFuY2Uob2JqLCBzaXguYmluYXJ5X3R5cGUpOgorICAgICAgICBzID0g
b2JqCisgICAgICAgIGlzX3JlcHIgPSBGYWxzZQorICAgIGVsc2U6CisgICAgICAgIHMgPSBweS5p
by5zYWZlcmVwcihvYmopCisgICAgICAgIGlzX3JlcHIgPSBUcnVlCisgICAgaWYgaXNpbnN0YW5j
ZShzLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgdCA9IHNpeC50ZXh0X3R5cGUKKyAgICBlbHNl
OgorICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCisgICAgcyA9IHMucmVwbGFjZSh0KCJcbiIp
LCB0KCJcbn4iKSkucmVwbGFjZSh0KCIlIiksIHQoIiUlIikpCisgICAgaWYgaXNfcmVwcjoKKyAg
ICAgICAgcyA9IHMucmVwbGFjZSh0KCJcXG4iKSwgdCgiXG5+IikpCisgICAgcmV0dXJuIHMKKwor
CitkZWYgX3Nob3VsZF9yZXByX2dsb2JhbF9uYW1lKG9iaik6CisgICAgcmV0dXJuIG5vdCBoYXNh
dHRyKG9iaiwgIl9fbmFtZV9fIikgYW5kIG5vdCBjYWxsYWJsZShvYmopCisKKworZGVmIF9mb3Jt
YXRfYm9vbG9wKGV4cGxhbmF0aW9ucywgaXNfb3IpOgorICAgIGV4cGxhbmF0aW9uID0gIigiICsg
KGlzX29yIGFuZCAiIG9yICIgb3IgIiBhbmQgIikuam9pbihleHBsYW5hdGlvbnMpICsgIikiCisg
ICAgaWYgaXNpbnN0YW5jZShleHBsYW5hdGlvbiwgc2l4LnRleHRfdHlwZSk6CisgICAgICAgIHQg
PSBzaXgudGV4dF90eXBlCisgICAgZWxzZToKKyAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQor
ICAgIHJldHVybiBleHBsYW5hdGlvbi5yZXBsYWNlKHQoJyUnKSwgdCgnJSUnKSkKKworCitkZWYg
X2NhbGxfcmVwcmNvbXBhcmUob3BzLCByZXN1bHRzLCBleHBscywgZWFjaF9vYmopOgorICAgIGZv
ciBpLCByZXMsIGV4cGwgaW4gemlwKHJhbmdlKGxlbihvcHMpKSwgcmVzdWx0cywgZXhwbHMpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBkb25lID0gbm90IHJlcworICAgICAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICAgICAgZG9uZSA9IFRydWUKKyAgICAgICAgaWYgZG9uZToKKyAg
ICAgICAgICAgIGJyZWFrCisgICAgaWYgdXRpbC5fcmVwcmNvbXBhcmUgaXMgbm90IE5vbmU6Cisg
ICAgICAgIGN1c3RvbSA9IHV0aWwuX3JlcHJjb21wYXJlKG9wc1tpXSwgZWFjaF9vYmpbaV0sIGVh
Y2hfb2JqW2kgKyAxXSkKKyAgICAgICAgaWYgY3VzdG9tIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgcmV0dXJuIGN1c3RvbQorICAgIHJldHVybiBleHBsCisKKwordW5hcnlfbWFwID0geworICAg
IGFzdC5Ob3Q6ICJub3QgJXMiLAorICAgIGFzdC5JbnZlcnQ6ICJ+JXMiLAorICAgIGFzdC5VU3Vi
OiAiLSVzIiwKKyAgICBhc3QuVUFkZDogIislcyIKK30KKworYmlub3BfbWFwID0geworICAgIGFz
dC5CaXRPcjogInwiLAorICAgIGFzdC5CaXRYb3I6ICJeIiwKKyAgICBhc3QuQml0QW5kOiAiJiIs
CisgICAgYXN0LkxTaGlmdDogIjw8IiwKKyAgICBhc3QuUlNoaWZ0OiAiPj4iLAorICAgIGFzdC5B
ZGQ6ICIrIiwKKyAgICBhc3QuU3ViOiAiLSIsCisgICAgYXN0Lk11bHQ6ICIqIiwKKyAgICBhc3Qu
RGl2OiAiLyIsCisgICAgYXN0LkZsb29yRGl2OiAiLy8iLAorICAgIGFzdC5Nb2Q6ICIlJSIsICAj
IGVzY2FwZWQgZm9yIHN0cmluZyBmb3JtYXR0aW5nCisgICAgYXN0LkVxOiAiPT0iLAorICAgIGFz
dC5Ob3RFcTogIiE9IiwKKyAgICBhc3QuTHQ6ICI8IiwKKyAgICBhc3QuTHRFOiAiPD0iLAorICAg
IGFzdC5HdDogIj4iLAorICAgIGFzdC5HdEU6ICI+PSIsCisgICAgYXN0LlBvdzogIioqIiwKKyAg
ICBhc3QuSXM6ICJpcyIsCisgICAgYXN0LklzTm90OiAiaXMgbm90IiwKKyAgICBhc3QuSW46ICJp
biIsCisgICAgYXN0Lk5vdEluOiAibm90IGluIgorfQorIyBQeXRob24gMy41KyBjb21wYXRpYmls
aXR5Cit0cnk6CisgICAgYmlub3BfbWFwW2FzdC5NYXRNdWx0XSA9ICJAIgorZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgorICAgIHBhc3MKKworIyBQeXRob24gMy40KyBjb21wYXRpYmlsaXR5CitpZiBo
YXNhdHRyKGFzdCwgIk5hbWVDb25zdGFudCIpOgorICAgIF9OYW1lQ29uc3RhbnQgPSBhc3QuTmFt
ZUNvbnN0YW50CitlbHNlOgorICAgIGRlZiBfTmFtZUNvbnN0YW50KGMpOgorICAgICAgICByZXR1
cm4gYXN0Lk5hbWUoc3RyKGMpLCBhc3QuTG9hZCgpKQorCisKK2RlZiBzZXRfbG9jYXRpb24obm9k
ZSwgbGluZW5vLCBjb2xfb2Zmc2V0KToKKyAgICAiIiJTZXQgbm9kZSBsb2NhdGlvbiBpbmZvcm1h
dGlvbiByZWN1cnNpdmVseS4iIiIKKyAgICBkZWYgX2ZpeChub2RlLCBsaW5lbm8sIGNvbF9vZmZz
ZXQpOgorICAgICAgICBpZiAibGluZW5vIiBpbiBub2RlLl9hdHRyaWJ1dGVzOgorICAgICAgICAg
ICAgbm9kZS5saW5lbm8gPSBsaW5lbm8KKyAgICAgICAgaWYgImNvbF9vZmZzZXQiIGluIG5vZGUu
X2F0dHJpYnV0ZXM6CisgICAgICAgICAgICBub2RlLmNvbF9vZmZzZXQgPSBjb2xfb2Zmc2V0Cisg
ICAgICAgIGZvciBjaGlsZCBpbiBhc3QuaXRlcl9jaGlsZF9ub2Rlcyhub2RlKToKKyAgICAgICAg
ICAgIF9maXgoY2hpbGQsIGxpbmVubywgY29sX29mZnNldCkKKyAgICBfZml4KG5vZGUsIGxpbmVu
bywgY29sX29mZnNldCkKKyAgICByZXR1cm4gbm9kZQorCisKK2NsYXNzIEFzc2VydGlvblJld3Jp
dGVyKGFzdC5Ob2RlVmlzaXRvcik6CisgICAgIiIiQXNzZXJ0aW9uIHJld3JpdGluZyBpbXBsZW1l
bnRhdGlvbi4KKworICAgIFRoZSBtYWluIGVudHJ5cG9pbnQgaXMgdG8gY2FsbCAucnVuKCkgd2l0
aCBhbiBhc3QuTW9kdWxlIGluc3RhbmNlLAorICAgIHRoaXMgd2lsbCB0aGVuIGZpbmQgYWxsIHRo
ZSBhc3NlcnQgc3RhdGVtZW50cyBhbmQgcmV3cml0ZSB0aGVtIHRvCisgICAgcHJvdmlkZSBpbnRl
cm1lZGlhdGUgdmFsdWVzIGFuZCBhIGRldGFpbGVkIGFzc2VydGlvbiBlcnJvci4gIFNlZQorICAg
IGh0dHA6Ly9weWJpdGVzLmJsb2dzcG90LmJlLzIwMTEvMDcvYmVoaW5kLXNjZW5lcy1vZi1weXRl
c3RzLW5ldy1hc3NlcnRpb24uaHRtbAorICAgIGZvciBhbiBvdmVydmlldyBvZiBob3cgdGhpcyB3
b3Jrcy4KKworICAgIFRoZSBlbnRyeSBwb2ludCBoZXJlIGlzIC5ydW4oKSB3aGljaCB3aWxsIGl0
ZXJhdGUgb3ZlciBhbGwgdGhlCisgICAgc3RhdGVtZW50cyBpbiBhbiBhc3QuTW9kdWxlIGFuZCBm
b3IgZWFjaCBhc3QuQXNzZXJ0IHN0YXRlbWVudCBpdAorICAgIGZpbmRzIGNhbGwgLnZpc2l0KCkg
d2l0aCBpdC4gIFRoZW4gLnZpc2l0X0Fzc2VydCgpIHRha2VzIG92ZXIgYW5kCisgICAgaXMgcmVz
cG9uc2libGUgZm9yIGNyZWF0aW5nIG5ldyBhc3Qgc3RhdGVtZW50cyB0byByZXBsYWNlIHRoZQor
ICAgIG9yaWdpbmFsIGFzc2VydCBzdGF0ZW1lbnQ6IGl0IHJld3JpdGVzIHRoZSB0ZXN0IG9mIGFu
IGFzc2VydGlvbgorICAgIHRvIHByb3ZpZGUgaW50ZXJtZWRpYXRlIHZhbHVlcyBhbmQgcmVwbGFj
ZSBpdCB3aXRoIGFuIGlmIHN0YXRlbWVudAorICAgIHdoaWNoIHJhaXNlcyBhbiBhc3NlcnRpb24g
ZXJyb3Igd2l0aCBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIGluCisgICAgY2FzZSB0aGUgZXhwcmVz
c2lvbiBpcyBmYWxzZS4KKworICAgIEZvciB0aGlzIC52aXNpdF9Bc3NlcnQoKSB1c2VzIHRoZSB2
aXNpdG9yIHBhdHRlcm4gdG8gdmlzaXQgYWxsIHRoZQorICAgIEFTVCBub2RlcyBvZiB0aGUgYXN0
LkFzc2VydC50ZXN0IGZpZWxkLCBlYWNoIHZpc2l0IGNhbGwgcmV0dXJuaW5nCisgICAgYW4gQVNU
IG5vZGUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGV4cGxhbmF0aW9uIHN0cmluZy4gIER1cmluZyB0
aGlzCisgICAgc3RhdGUgaXMga2VwdCBpbiBzZXZlcmFsIGluc3RhbmNlIGF0dHJpYnV0ZXM6CisK
KyAgICA6c3RhdGVtZW50czogQWxsIHRoZSBBU1Qgc3RhdGVtZW50cyB3aGljaCB3aWxsIHJlcGxh
Y2UgdGhlIGFzc2VydAorICAgICAgIHN0YXRlbWVudC4KKworICAgIDp2YXJpYWJsZXM6IFRoaXMg
aXMgcG9wdWxhdGVkIGJ5IC52YXJpYWJsZSgpIHdpdGggZWFjaCB2YXJpYWJsZQorICAgICAgIHVz
ZWQgYnkgdGhlIHN0YXRlbWVudHMgc28gdGhhdCB0aGV5IGNhbiBhbGwgYmUgc2V0IHRvIE5vbmUg
YXQKKyAgICAgICB0aGUgZW5kIG9mIHRoZSBzdGF0ZW1lbnRzLgorCisgICAgOnZhcmlhYmxlX2Nv
dW50ZXI6IENvdW50ZXIgdG8gY3JlYXRlIG5ldyB1bmlxdWUgdmFyaWFibGVzIG5lZWRlZAorICAg
ICAgIGJ5IHN0YXRlbWVudHMuICBWYXJpYWJsZXMgYXJlIGNyZWF0ZWQgdXNpbmcgLnZhcmlhYmxl
KCkgYW5kCisgICAgICAgaGF2ZSB0aGUgZm9ybSBvZiAiQHB5X2Fzc2VydDAiLgorCisgICAgOm9u
X2ZhaWx1cmU6IFRoZSBBU1Qgc3RhdGVtZW50cyB3aGljaCB3aWxsIGJlIGV4ZWN1dGVkIGlmIHRo
ZQorICAgICAgIGFzc2VydGlvbiB0ZXN0IGZhaWxzLiAgVGhpcyBpcyB0aGUgY29kZSB3aGljaCB3
aWxsIGNvbnN0cnVjdAorICAgICAgIHRoZSBmYWlsdXJlIG1lc3NhZ2UgYW5kIHJhaXNlcyB0aGUg
QXNzZXJ0aW9uRXJyb3IuCisKKyAgICA6ZXhwbGFuYXRpb25fc3BlY2lmaWVyczogQSBkaWN0IGZp
bGxlZCBieSAuZXhwbGFuYXRpb25fcGFyYW0oKQorICAgICAgIHdpdGggJS1mb3JtYXR0aW5nIHBs
YWNlaG9sZGVycyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZworICAgICAgIGV4cHJlc3Npb25zIHRv
IHVzZSBpbiB0aGUgYnVpbGRpbmcgb2YgYW4gYXNzZXJ0aW9uIG1lc3NhZ2UuCisgICAgICAgVGhp
cyBpcyB1c2VkIGJ5IC5wb3BfZm9ybWF0X2NvbnRleHQoKSB0byBidWlsZCBhIG1lc3NhZ2UuCisK
KyAgICA6c3RhY2s6IEEgc3RhY2sgb2YgdGhlIGV4cGxhbmF0aW9uX3NwZWNpZmllcnMgZGljdHMg
bWFpbnRhaW5lZCBieQorICAgICAgIC5wdXNoX2Zvcm1hdF9jb250ZXh0KCkgYW5kIC5wb3BfZm9y
bWF0X2NvbnRleHQoKSB3aGljaCBhbGxvd3MKKyAgICAgICB0byBidWlsZCBhbm90aGVyICUtZm9y
bWF0dGVkIHN0cmluZyB3aGlsZSBhbHJlYWR5IGJ1aWxkaW5nIG9uZS4KKworICAgIFRoaXMgc3Rh
dGUgaXMgcmVzZXQgb24gZXZlcnkgbmV3IGFzc2VydCBzdGF0ZW1lbnQgdmlzaXRlZCBhbmQgdXNl
ZAorICAgIGJ5IHRoZSBvdGhlciB2aXNpdG9ycy4KKworICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG1vZHVsZV9wYXRoLCBjb25maWcpOgorICAgICAgICBzdXBlcihBc3NlcnRpb25S
ZXdyaXRlciwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLm1vZHVsZV9wYXRoID0gbW9k
dWxlX3BhdGgKKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKKworICAgIGRlZiBydW4oc2Vs
ZiwgbW9kKToKKyAgICAgICAgIiIiRmluZCBhbGwgYXNzZXJ0IHN0YXRlbWVudHMgaW4gKm1vZCog
YW5kIHJld3JpdGUgdGhlbS4iIiIKKyAgICAgICAgaWYgbm90IG1vZC5ib2R5OgorICAgICAgICAg
ICAgIyBOb3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgSW5zZXJ0
IHNvbWUgc3BlY2lhbCBpbXBvcnRzIGF0IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSBidXQgYWZ0ZXIg
YW55CisgICAgICAgICMgZG9jc3RyaW5ncyBhbmQgX19mdXR1cmVfXyBpbXBvcnRzLgorICAgICAg
ICBhbGlhc2VzID0gW2FzdC5hbGlhcyhweS5idWlsdGluLmJ1aWx0aW5zLl9fbmFtZV9fLCAiQHB5
X2J1aWx0aW5zIiksCisgICAgICAgICAgICAgICAgICAgYXN0LmFsaWFzKCJfcHl0ZXN0LmFzc2Vy
dGlvbi5yZXdyaXRlIiwgIkBweXRlc3RfYXIiKV0KKyAgICAgICAgZG9jID0gZ2V0YXR0cihtb2Qs
ICJkb2NzdHJpbmciLCBOb25lKQorICAgICAgICBleHBlY3RfZG9jc3RyaW5nID0gZG9jIGlzIE5v
bmUKKyAgICAgICAgaWYgZG9jIGlzIG5vdCBOb25lIGFuZCBzZWxmLmlzX3Jld3JpdGVfZGlzYWJs
ZWQoZG9jKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBwb3MgPSAwCisgICAgICAgIGxp
bmVubyA9IDEKKyAgICAgICAgZm9yIGl0ZW0gaW4gbW9kLmJvZHk6CisgICAgICAgICAgICBpZiAo
ZXhwZWN0X2RvY3N0cmluZyBhbmQgaXNpbnN0YW5jZShpdGVtLCBhc3QuRXhwcikgYW5kCisgICAg
ICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoaXRlbS52YWx1ZSwgYXN0LlN0cikpOgorICAgICAg
ICAgICAgICAgIGRvYyA9IGl0ZW0udmFsdWUucworICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNf
cmV3cml0ZV9kaXNhYmxlZChkb2MpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgICAgICAgICBleHBlY3RfZG9jc3RyaW5nID0gRmFsc2UKKyAgICAgICAgICAgIGVsaWYgKG5v
dCBpc2luc3RhbmNlKGl0ZW0sIGFzdC5JbXBvcnRGcm9tKSBvciBpdGVtLmxldmVsID4gMCBvcgor
ICAgICAgICAgICAgICAgICAgaXRlbS5tb2R1bGUgIT0gIl9fZnV0dXJlX18iKToKKyAgICAgICAg
ICAgICAgICBsaW5lbm8gPSBpdGVtLmxpbmVubworICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgICAgICBwb3MgKz0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZW5vID0gaXRl
bS5saW5lbm8KKyAgICAgICAgaW1wb3J0cyA9IFthc3QuSW1wb3J0KFthbGlhc10sIGxpbmVubz1s
aW5lbm8sIGNvbF9vZmZzZXQ9MCkKKyAgICAgICAgICAgICAgICAgICBmb3IgYWxpYXMgaW4gYWxp
YXNlc10KKyAgICAgICAgbW9kLmJvZHlbcG9zOnBvc10gPSBpbXBvcnRzCisgICAgICAgICMgQ29s
bGVjdCBhc3NlcnRzLgorICAgICAgICBub2RlcyA9IFttb2RdCisgICAgICAgIHdoaWxlIG5vZGVz
OgorICAgICAgICAgICAgbm9kZSA9IG5vZGVzLnBvcCgpCisgICAgICAgICAgICBmb3IgbmFtZSwg
ZmllbGQgaW4gYXN0Lml0ZXJfZmllbGRzKG5vZGUpOgorICAgICAgICAgICAgICAgIGlmIGlzaW5z
dGFuY2UoZmllbGQsIGxpc3QpOgorICAgICAgICAgICAgICAgICAgICBuZXcgPSBbXQorICAgICAg
ICAgICAgICAgICAgICBmb3IgaSwgY2hpbGQgaW4gZW51bWVyYXRlKGZpZWxkKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY2hpbGQsIGFzdC5Bc3NlcnQpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgVHJhbnNmb3JtIGFzc2VydC4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuZXcuZXh0ZW5kKHNlbGYudmlzaXQoY2hpbGQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcuYXBwZW5k
KGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY2hpbGQs
IGFzdC5BU1QpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlcy5hcHBlbmQo
Y2hpbGQpCisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIobm9kZSwgbmFtZSwgbmV3KQorICAg
ICAgICAgICAgICAgIGVsaWYgKGlzaW5zdGFuY2UoZmllbGQsIGFzdC5BU1QpIGFuZAorICAgICAg
ICAgICAgICAgICAgICAgICMgRG9uJ3QgcmVjdXJzZSBpbnRvIGV4cHJlc3Npb25zIGFzIHRoZXkg
Y2FuJ3QgY29udGFpbgorICAgICAgICAgICAgICAgICAgICAgICMgYXNzZXJ0cy4KKyAgICAgICAg
ICAgICAgICAgICAgICBub3QgaXNpbnN0YW5jZShmaWVsZCwgYXN0LmV4cHIpKToKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZXMuYXBwZW5kKGZpZWxkKQorCisgICAgZGVmIGlzX3Jld3JpdGVfZGlz
YWJsZWQoc2VsZiwgZG9jc3RyaW5nKToKKyAgICAgICAgcmV0dXJuICJQWVRFU1RfRE9OVF9SRVdS
SVRFIiBpbiBkb2NzdHJpbmcKKworICAgIGRlZiB2YXJpYWJsZShzZWxmKToKKyAgICAgICAgIiIi
R2V0IGEgbmV3IHZhcmlhYmxlLiIiIgorICAgICAgICAjIFVzZSBhIGNoYXJhY3RlciBpbnZhbGlk
IGluIHB5dGhvbiBpZGVudGlmaWVycyB0byBhdm9pZCBjbGFzaGluZy4KKyAgICAgICAgbmFtZSA9
ICJAcHlfYXNzZXJ0IiArIHN0cihuZXh0KHNlbGYudmFyaWFibGVfY291bnRlcikpCisgICAgICAg
IHNlbGYudmFyaWFibGVzLmFwcGVuZChuYW1lKQorICAgICAgICByZXR1cm4gbmFtZQorCisgICAg
ZGVmIGFzc2lnbihzZWxmLCBleHByKToKKyAgICAgICAgIiIiR2l2ZSAqZXhwciogYSBuYW1lLiIi
IgorICAgICAgICBuYW1lID0gc2VsZi52YXJpYWJsZSgpCisgICAgICAgIHNlbGYuc3RhdGVtZW50
cy5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5hbWUobmFtZSwgYXN0LlN0b3JlKCkpXSwgZXhwcikp
CisgICAgICAgIHJldHVybiBhc3QuTmFtZShuYW1lLCBhc3QuTG9hZCgpKQorCisgICAgZGVmIGRp
c3BsYXkoc2VsZiwgZXhwcik6CisgICAgICAgICIiIkNhbGwgcHkuaW8uc2FmZXJlcHIgb24gdGhl
IGV4cHJlc3Npb24uIiIiCisgICAgICAgIHJldHVybiBzZWxmLmhlbHBlcigic2FmZXJlcHIiLCBl
eHByKQorCisgICAgZGVmIGhlbHBlcihzZWxmLCBuYW1lLCAqYXJncyk6CisgICAgICAgICIiIkNh
bGwgYSBoZWxwZXIgaW4gdGhpcyBtb2R1bGUuIiIiCisgICAgICAgIHB5X25hbWUgPSBhc3QuTmFt
ZSgiQHB5dGVzdF9hciIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGF0dHIgPSBhc3QuQXR0cmlidXRl
KHB5X25hbWUsICJfIiArIG5hbWUsIGFzdC5Mb2FkKCkpCisgICAgICAgIHJldHVybiBhc3RfQ2Fs
bChhdHRyLCBsaXN0KGFyZ3MpLCBbXSkKKworICAgIGRlZiBidWlsdGluKHNlbGYsIG5hbWUpOgor
ICAgICAgICAiIiJSZXR1cm4gdGhlIGJ1aWx0aW4gY2FsbGVkICpuYW1lKi4iIiIKKyAgICAgICAg
YnVpbHRpbl9uYW1lID0gYXN0Lk5hbWUoIkBweV9idWlsdGlucyIsIGFzdC5Mb2FkKCkpCisgICAg
ICAgIHJldHVybiBhc3QuQXR0cmlidXRlKGJ1aWx0aW5fbmFtZSwgbmFtZSwgYXN0LkxvYWQoKSkK
KworICAgIGRlZiBleHBsYW5hdGlvbl9wYXJhbShzZWxmLCBleHByKToKKyAgICAgICAgIiIiUmV0
dXJuIGEgbmV3IG5hbWVkICUtZm9ybWF0dGluZyBwbGFjZWhvbGRlciBmb3IgZXhwci4KKworICAg
ICAgICBUaGlzIGNyZWF0ZXMgYSAlLWZvcm1hdHRpbmcgcGxhY2Vob2xkZXIgZm9yIGV4cHIgaW4g
dGhlCisgICAgICAgIGN1cnJlbnQgZm9ybWF0dGluZyBjb250ZXh0LCBlLmcuIGBgJShweTApc2Bg
LiAgVGhlIHBsYWNlaG9sZGVyCisgICAgICAgIGFuZCBleHByIGFyZSBwbGFjZWQgaW4gdGhlIGN1
cnJlbnQgZm9ybWF0IGNvbnRleHQgc28gdGhhdCBpdAorICAgICAgICBjYW4gYmUgdXNlZCBvbiB0
aGUgbmV4dCBjYWxsIHRvIC5wb3BfZm9ybWF0X2NvbnRleHQoKS4KKworICAgICAgICAiIiIKKyAg
ICAgICAgc3BlY2lmaWVyID0gInB5IiArIHN0cihuZXh0KHNlbGYudmFyaWFibGVfY291bnRlcikp
CisgICAgICAgIHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVyc1tzcGVjaWZpZXJdID0gZXhwcgor
ICAgICAgICByZXR1cm4gIiUoIiArIHNwZWNpZmllciArICIpcyIKKworICAgIGRlZiBwdXNoX2Zv
cm1hdF9jb250ZXh0KHNlbGYpOgorICAgICAgICAiIiJDcmVhdGUgYSBuZXcgZm9ybWF0dGluZyBj
b250ZXh0LgorCisgICAgICAgIFRoZSBmb3JtYXQgY29udGV4dCBpcyB1c2VkIGZvciB3aGVuIGFu
IGV4cGxhbmF0aW9uIHdhbnRzIHRvCisgICAgICAgIGhhdmUgYSB2YXJpYWJsZSB2YWx1ZSBmb3Jt
YXR0ZWQgaW4gdGhlIGFzc2VydGlvbiBtZXNzYWdlLiAgSW4KKyAgICAgICAgdGhpcyBjYXNlIHRo
ZSB2YWx1ZSByZXF1aXJlZCBjYW4gYmUgYWRkZWQgdXNpbmcKKyAgICAgICAgLmV4cGxhbmF0aW9u
X3BhcmFtKCkuICBGaW5hbGx5IC5wb3BfZm9ybWF0X2NvbnRleHQoKSBpcyB1c2VkCisgICAgICAg
IHRvIGZvcm1hdCBhIHN0cmluZyBvZiAlLWZvcm1hdHRlZCB2YWx1ZXMgYXMgYWRkZWQgYnkKKyAg
ICAgICAgLmV4cGxhbmF0aW9uX3BhcmFtKCkuCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
ZXhwbGFuYXRpb25fc3BlY2lmaWVycyA9IHt9CisgICAgICAgIHNlbGYuc3RhY2suYXBwZW5kKHNl
bGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycykKKworICAgIGRlZiBwb3BfZm9ybWF0X2NvbnRleHQo
c2VsZiwgZXhwbF9leHByKToKKyAgICAgICAgIiIiRm9ybWF0IHRoZSAlLWZvcm1hdHRlZCBzdHJp
bmcgd2l0aCBjdXJyZW50IGZvcm1hdCBjb250ZXh0LgorCisgICAgICAgIFRoZSBleHBsX2V4cHIg
c2hvdWxkIGJlIGFuIGFzdC5TdHIgaW5zdGFuY2UgY29uc3RydWN0ZWQgZnJvbQorICAgICAgICB0
aGUgJS1wbGFjZWhvbGRlcnMgY3JlYXRlZCBieSAuZXhwbGFuYXRpb25fcGFyYW0oKS4gIFRoaXMg
d2lsbAorICAgICAgICBhZGQgdGhlIHJlcXVpcmVkIGNvZGUgdG8gZm9ybWF0IHNhaWQgc3RyaW5n
IHRvIC5vbl9mYWlsdXJlIGFuZAorICAgICAgICByZXR1cm4gdGhlIGFzdC5OYW1lIGluc3RhbmNl
IG9mIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLgorCisgICAgICAgICIiIgorICAgICAgICBjdXJyZW50
ID0gc2VsZi5zdGFjay5wb3AoKQorICAgICAgICBpZiBzZWxmLnN0YWNrOgorICAgICAgICAgICAg
c2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzID0gc2VsZi5zdGFja1stMV0KKyAgICAgICAga2V5
cyA9IFthc3QuU3RyKGtleSkgZm9yIGtleSBpbiBjdXJyZW50LmtleXMoKV0KKyAgICAgICAgZm9y
bWF0X2RpY3QgPSBhc3QuRGljdChrZXlzLCBsaXN0KGN1cnJlbnQudmFsdWVzKCkpKQorICAgICAg
ICBmb3JtID0gYXN0LkJpbk9wKGV4cGxfZXhwciwgYXN0Lk1vZCgpLCBmb3JtYXRfZGljdCkKKyAg
ICAgICAgbmFtZSA9ICJAcHlfZm9ybWF0IiArIHN0cihuZXh0KHNlbGYudmFyaWFibGVfY291bnRl
cikpCisgICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5hbWUo
bmFtZSwgYXN0LlN0b3JlKCkpXSwgZm9ybSkpCisgICAgICAgIHJldHVybiBhc3QuTmFtZShuYW1l
LCBhc3QuTG9hZCgpKQorCisgICAgZGVmIGdlbmVyaWNfdmlzaXQoc2VsZiwgbm9kZSk6CisgICAg
ICAgICIiIkhhbmRsZSBleHByZXNzaW9ucyB3ZSBkb24ndCBoYXZlIGN1c3RvbSBjb2RlIGZvci4i
IiIKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgYXN0LmV4cHIpCisgICAgICAgIHJl
cyA9IHNlbGYuYXNzaWduKG5vZGUpCisgICAgICAgIHJldHVybiByZXMsIHNlbGYuZXhwbGFuYXRp
b25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykpCisKKyAgICBkZWYgdmlzaXRfQXNzZXJ0KHNlbGYs
IGFzc2VydF8pOgorICAgICAgICAiIiJSZXR1cm4gdGhlIEFTVCBzdGF0ZW1lbnRzIHRvIHJlcGxh
Y2UgdGhlIGFzdC5Bc3NlcnQgaW5zdGFuY2UuCisKKyAgICAgICAgVGhpcyByZXdyaXRlcyB0aGUg
dGVzdCBvZiBhbiBhc3NlcnRpb24gdG8gcHJvdmlkZQorICAgICAgICBpbnRlcm1lZGlhdGUgdmFs
dWVzIGFuZCByZXBsYWNlIGl0IHdpdGggYW4gaWYgc3RhdGVtZW50IHdoaWNoCisgICAgICAgIHJh
aXNlcyBhbiBhc3NlcnRpb24gZXJyb3Igd2l0aCBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIGluIGNh
c2UKKyAgICAgICAgdGhlIGV4cHJlc3Npb24gaXMgZmFsc2UuCisKKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIGlzaW5zdGFuY2UoYXNzZXJ0Xy50ZXN0LCBhc3QuVHVwbGUpIGFuZCBzZWxmLmNvbmZp
ZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZzbG9jYXRpb24gPSAoc2VsZi5tb2R1bGVfcGF0
aCwgYXNzZXJ0Xy5saW5lbm8pCisgICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKCdSMScsICdh
c3NlcnRpb24gaXMgYWx3YXlzIHRydWUsIHBlcmhhcHMgJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncmVtb3ZlIHBhcmVudGhlc2VzPycsIGZzbG9jYXRpb249ZnNsb2NhdGlvbikKKyAg
ICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gW10KKyAgICAgICAgc2VsZi52YXJpYWJsZXMgPSBbXQor
ICAgICAgICBzZWxmLnZhcmlhYmxlX2NvdW50ZXIgPSBpdGVydG9vbHMuY291bnQoKQorICAgICAg
ICBzZWxmLnN0YWNrID0gW10KKyAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0gW10KKyAgICAgICAg
c2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKKyAgICAgICAgIyBSZXdyaXRlIGFzc2VydCBpbnRv
IGEgYnVuY2ggb2Ygc3RhdGVtZW50cy4KKyAgICAgICAgdG9wX2NvbmRpdGlvbiwgZXhwbGFuYXRp
b24gPSBzZWxmLnZpc2l0KGFzc2VydF8udGVzdCkKKyAgICAgICAgIyBDcmVhdGUgZmFpbHVyZSBt
ZXNzYWdlLgorICAgICAgICBib2R5ID0gc2VsZi5vbl9mYWlsdXJlCisgICAgICAgIG5lZ2F0aW9u
ID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCB0b3BfY29uZGl0aW9uKQorICAgICAgICBzZWxmLnN0
YXRlbWVudHMuYXBwZW5kKGFzdC5JZihuZWdhdGlvbiwgYm9keSwgW10pKQorICAgICAgICBpZiBh
c3NlcnRfLm1zZzoKKyAgICAgICAgICAgIGFzc2VydG1zZyA9IHNlbGYuaGVscGVyKCdmb3JtYXRf
YXNzZXJ0bXNnJywgYXNzZXJ0Xy5tc2cpCisgICAgICAgICAgICBleHBsYW5hdGlvbiA9ICJcbj5h
c3NlcnQgIiArIGV4cGxhbmF0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnRt
c2cgPSBhc3QuU3RyKCIiKQorICAgICAgICAgICAgZXhwbGFuYXRpb24gPSAiYXNzZXJ0ICIgKyBl
eHBsYW5hdGlvbgorICAgICAgICB0ZW1wbGF0ZSA9IGFzdC5CaW5PcChhc3NlcnRtc2csIGFzdC5B
ZGQoKSwgYXN0LlN0cihleHBsYW5hdGlvbikpCisgICAgICAgIG1zZyA9IHNlbGYucG9wX2Zvcm1h
dF9jb250ZXh0KHRlbXBsYXRlKQorICAgICAgICBmbXQgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2V4
cGxhbmF0aW9uIiwgbXNnKQorICAgICAgICBlcnJfbmFtZSA9IGFzdC5OYW1lKCJBc3NlcnRpb25F
cnJvciIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGV4YyA9IGFzdF9DYWxsKGVycl9uYW1lLCBbZm10
XSwgW10pCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAg
IHJhaXNlXyA9IGFzdC5SYWlzZShleGMsIE5vbmUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZV8gPSBhc3QuUmFpc2UoZXhjLCBOb25lLCBOb25lKQorICAgICAgICBib2R5LmFwcGVu
ZChyYWlzZV8pCisgICAgICAgICMgQ2xlYXIgdGVtcG9yYXJ5IHZhcmlhYmxlcyBieSBzZXR0aW5n
IHRoZW0gdG8gTm9uZS4KKyAgICAgICAgaWYgc2VsZi52YXJpYWJsZXM6CisgICAgICAgICAgICB2
YXJpYWJsZXMgPSBbYXN0Lk5hbWUobmFtZSwgYXN0LlN0b3JlKCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYWJsZXNdCisgICAgICAgICAgICBjbGVhciA9
IGFzdC5Bc3NpZ24odmFyaWFibGVzLCBfTmFtZUNvbnN0YW50KE5vbmUpKQorICAgICAgICAgICAg
c2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChjbGVhcikKKyAgICAgICAgIyBGaXggbGluZSBudW1iZXJz
LgorICAgICAgICBmb3Igc3RtdCBpbiBzZWxmLnN0YXRlbWVudHM6CisgICAgICAgICAgICBzZXRf
bG9jYXRpb24oc3RtdCwgYXNzZXJ0Xy5saW5lbm8sIGFzc2VydF8uY29sX29mZnNldCkKKyAgICAg
ICAgcmV0dXJuIHNlbGYuc3RhdGVtZW50cworCisgICAgZGVmIHZpc2l0X05hbWUoc2VsZiwgbmFt
ZSk6CisgICAgICAgICMgRGlzcGxheSB0aGUgcmVwciBvZiB0aGUgbmFtZSBpZiBpdCdzIGEgbG9j
YWwgdmFyaWFibGUgb3IKKyAgICAgICAgIyBfc2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUoKSB0aGlu
a3MgaXQncyBhY2NlcHRhYmxlLgorICAgICAgICBsb2NzID0gYXN0X0NhbGwoc2VsZi5idWlsdGlu
KCJsb2NhbHMiKSwgW10sIFtdKQorICAgICAgICBpbmxvY3MgPSBhc3QuQ29tcGFyZShhc3QuU3Ry
KG5hbWUuaWQpLCBbYXN0LkluKCldLCBbbG9jc10pCisgICAgICAgIGRvcmVwciA9IHNlbGYuaGVs
cGVyKCJzaG91bGRfcmVwcl9nbG9iYWxfbmFtZSIsIG5hbWUpCisgICAgICAgIHRlc3QgPSBhc3Qu
Qm9vbE9wKGFzdC5PcigpLCBbaW5sb2NzLCBkb3JlcHJdKQorICAgICAgICBleHByID0gYXN0Lklm
RXhwKHRlc3QsIHNlbGYuZGlzcGxheShuYW1lKSwgYXN0LlN0cihuYW1lLmlkKSkKKyAgICAgICAg
cmV0dXJuIG5hbWUsIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oZXhwcikKKworICAgIGRlZiB2aXNp
dF9Cb29sT3Aoc2VsZiwgYm9vbG9wKToKKyAgICAgICAgcmVzX3ZhciA9IHNlbGYudmFyaWFibGUo
KQorICAgICAgICBleHBsX2xpc3QgPSBzZWxmLmFzc2lnbihhc3QuTGlzdChbXSwgYXN0LkxvYWQo
KSkpCisgICAgICAgIGFwcCA9IGFzdC5BdHRyaWJ1dGUoZXhwbF9saXN0LCAiYXBwZW5kIiwgYXN0
LkxvYWQoKSkKKyAgICAgICAgaXNfb3IgPSBpbnQoaXNpbnN0YW5jZShib29sb3Aub3AsIGFzdC5P
cikpCisgICAgICAgIGJvZHkgPSBzYXZlID0gc2VsZi5zdGF0ZW1lbnRzCisgICAgICAgIGZhaWxf
c2F2ZSA9IHNlbGYub25fZmFpbHVyZQorICAgICAgICBsZXZlbHMgPSBsZW4oYm9vbG9wLnZhbHVl
cykgLSAxCisgICAgICAgIHNlbGYucHVzaF9mb3JtYXRfY29udGV4dCgpCisgICAgICAgICMgUHJv
Y2VzcyBlYWNoIG9wZXJhbmQsIHNob3J0LWNpcmN1dGluZyBpZiBuZWVkZWQuCisgICAgICAgIGZv
ciBpLCB2IGluIGVudW1lcmF0ZShib29sb3AudmFsdWVzKToKKyAgICAgICAgICAgIGlmIGk6Cisg
ICAgICAgICAgICAgICAgZmFpbF9pbm5lciA9IFtdCisgICAgICAgICAgICAgICAgIyBjb25kIGlz
IHNldCBpbiBhIHByaW9yIGxvb3AgaXRlcmF0aW9uIGJlbG93CisgICAgICAgICAgICAgICAgc2Vs
Zi5vbl9mYWlsdXJlLmFwcGVuZChhc3QuSWYoY29uZCwgZmFpbF9pbm5lciwgW10pKSAgIyBub3Fh
CisgICAgICAgICAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0gZmFpbF9pbm5lcgorICAgICAgICAg
ICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKKyAgICAgICAgICAgIHJlcywgZXhwbCA9IHNl
bGYudmlzaXQodikKKyAgICAgICAgICAgIGJvZHkuYXBwZW5kKGFzdC5Bc3NpZ24oW2FzdC5OYW1l
KHJlc192YXIsIGFzdC5TdG9yZSgpKV0sIHJlcykpCisgICAgICAgICAgICBleHBsX2Zvcm1hdCA9
IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGFzdC5TdHIoZXhwbCkpCisgICAgICAgICAgICBjYWxs
ID0gYXN0X0NhbGwoYXBwLCBbZXhwbF9mb3JtYXRdLCBbXSkKKyAgICAgICAgICAgIHNlbGYub25f
ZmFpbHVyZS5hcHBlbmQoYXN0LkV4cHIoY2FsbCkpCisgICAgICAgICAgICBpZiBpIDwgbGV2ZWxz
OgorICAgICAgICAgICAgICAgIGNvbmQgPSByZXMKKyAgICAgICAgICAgICAgICBpZiBpc19vcjoK
KyAgICAgICAgICAgICAgICAgICAgY29uZCA9IGFzdC5VbmFyeU9wKGFzdC5Ob3QoKSwgY29uZCkK
KyAgICAgICAgICAgICAgICBpbm5lciA9IFtdCisgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZW1l
bnRzLmFwcGVuZChhc3QuSWYoY29uZCwgaW5uZXIsIFtdKSkKKyAgICAgICAgICAgICAgICBzZWxm
LnN0YXRlbWVudHMgPSBib2R5ID0gaW5uZXIKKyAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gc2F2
ZQorICAgICAgICBzZWxmLm9uX2ZhaWx1cmUgPSBmYWlsX3NhdmUKKyAgICAgICAgZXhwbF90ZW1w
bGF0ZSA9IHNlbGYuaGVscGVyKCJmb3JtYXRfYm9vbG9wIiwgZXhwbF9saXN0LCBhc3QuTnVtKGlz
X29yKSkKKyAgICAgICAgZXhwbCA9IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGV4cGxfdGVtcGxh
dGUpCisgICAgICAgIHJldHVybiBhc3QuTmFtZShyZXNfdmFyLCBhc3QuTG9hZCgpKSwgc2VsZi5l
eHBsYW5hdGlvbl9wYXJhbShleHBsKQorCisgICAgZGVmIHZpc2l0X1VuYXJ5T3Aoc2VsZiwgdW5h
cnkpOgorICAgICAgICBwYXR0ZXJuID0gdW5hcnlfbWFwW3VuYXJ5Lm9wLl9fY2xhc3NfX10KKyAg
ICAgICAgb3BlcmFuZF9yZXMsIG9wZXJhbmRfZXhwbCA9IHNlbGYudmlzaXQodW5hcnkub3BlcmFu
ZCkKKyAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LlVuYXJ5T3AodW5hcnkub3AsIG9wZXJh
bmRfcmVzKSkKKyAgICAgICAgcmV0dXJuIHJlcywgcGF0dGVybiAlIChvcGVyYW5kX2V4cGwsKQor
CisgICAgZGVmIHZpc2l0X0Jpbk9wKHNlbGYsIGJpbm9wKToKKyAgICAgICAgc3ltYm9sID0gYmlu
b3BfbWFwW2Jpbm9wLm9wLl9fY2xhc3NfX10KKyAgICAgICAgbGVmdF9leHByLCBsZWZ0X2V4cGwg
PSBzZWxmLnZpc2l0KGJpbm9wLmxlZnQpCisgICAgICAgIHJpZ2h0X2V4cHIsIHJpZ2h0X2V4cGwg
PSBzZWxmLnZpc2l0KGJpbm9wLnJpZ2h0KQorICAgICAgICBleHBsYW5hdGlvbiA9ICIoJXMgJXMg
JXMpIiAlIChsZWZ0X2V4cGwsIHN5bWJvbCwgcmlnaHRfZXhwbCkKKyAgICAgICAgcmVzID0gc2Vs
Zi5hc3NpZ24oYXN0LkJpbk9wKGxlZnRfZXhwciwgYmlub3Aub3AsIHJpZ2h0X2V4cHIpKQorICAg
ICAgICByZXR1cm4gcmVzLCBleHBsYW5hdGlvbgorCisgICAgZGVmIHZpc2l0X0NhbGxfMzUoc2Vs
ZiwgY2FsbCk6CisgICAgICAgICIiIgorICAgICAgICB2aXNpdCBgYXN0LkNhbGxgIG5vZGVzIG9u
IFB5dGhvbjMuNSBhbmQgYWZ0ZXIKKyAgICAgICAgIiIiCisgICAgICAgIG5ld19mdW5jLCBmdW5j
X2V4cGwgPSBzZWxmLnZpc2l0KGNhbGwuZnVuYykKKyAgICAgICAgYXJnX2V4cGxzID0gW10KKyAg
ICAgICAgbmV3X2FyZ3MgPSBbXQorICAgICAgICBuZXdfa3dhcmdzID0gW10KKyAgICAgICAgZm9y
IGFyZyBpbiBjYWxsLmFyZ3M6CisgICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGFy
ZykKKyAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoZXhwbCkKKyAgICAgICAgICAgIG5ld19h
cmdzLmFwcGVuZChyZXMpCisgICAgICAgIGZvciBrZXl3b3JkIGluIGNhbGwua2V5d29yZHM6Cisg
ICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGtleXdvcmQudmFsdWUpCisgICAgICAg
ICAgICBuZXdfa3dhcmdzLmFwcGVuZChhc3Qua2V5d29yZChrZXl3b3JkLmFyZywgcmVzKSkKKyAg
ICAgICAgICAgIGlmIGtleXdvcmQuYXJnOgorICAgICAgICAgICAgICAgIGFyZ19leHBscy5hcHBl
bmQoa2V5d29yZC5hcmcgKyAiPSIgKyBleHBsKQorICAgICAgICAgICAgZWxzZTogICMgKiphcmdz
IGhhdmUgYGFyZ2Aga2V5d29yZHMgd2l0aCBhbiAuYXJnIG9mIE5vbmUKKyAgICAgICAgICAgICAg
ICBhcmdfZXhwbHMuYXBwZW5kKCIqKiIgKyBleHBsKQorCisgICAgICAgIGV4cGwgPSAiJXMoJXMp
IiAlIChmdW5jX2V4cGwsICcsICcuam9pbihhcmdfZXhwbHMpKQorICAgICAgICBuZXdfY2FsbCA9
IGFzdC5DYWxsKG5ld19mdW5jLCBuZXdfYXJncywgbmV3X2t3YXJncykKKyAgICAgICAgcmVzID0g
c2VsZi5hc3NpZ24obmV3X2NhbGwpCisgICAgICAgIHJlc19leHBsID0gc2VsZi5leHBsYW5hdGlv
bl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkKKyAgICAgICAgb3V0ZXJfZXhwbCA9ICIlc1xueyVz
ID0gJXNcbn0iICUgKHJlc19leHBsLCByZXNfZXhwbCwgZXhwbCkKKyAgICAgICAgcmV0dXJuIHJl
cywgb3V0ZXJfZXhwbAorCisgICAgZGVmIHZpc2l0X1N0YXJyZWQoc2VsZiwgc3RhcnJlZCk6Cisg
ICAgICAgICMgRnJvbSBQeXRob24gMy41LCBhIFN0YXJyZWQgbm9kZSBjYW4gYXBwZWFyIGluIGEg
ZnVuY3Rpb24gY2FsbAorICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KHN0YXJyZWQudmFs
dWUpCisgICAgICAgIHJldHVybiBzdGFycmVkLCAnKicgKyBleHBsCisKKyAgICBkZWYgdmlzaXRf
Q2FsbF9sZWdhY3koc2VsZiwgY2FsbCk6CisgICAgICAgICIiIgorICAgICAgICB2aXNpdCBgYXN0
LkNhbGwgbm9kZXMgb24gMy40IGFuZCBiZWxvd2AKKyAgICAgICAgIiIiCisgICAgICAgIG5ld19m
dW5jLCBmdW5jX2V4cGwgPSBzZWxmLnZpc2l0KGNhbGwuZnVuYykKKyAgICAgICAgYXJnX2V4cGxz
ID0gW10KKyAgICAgICAgbmV3X2FyZ3MgPSBbXQorICAgICAgICBuZXdfa3dhcmdzID0gW10KKyAg
ICAgICAgbmV3X3N0YXIgPSBuZXdfa3dhcmcgPSBOb25lCisgICAgICAgIGZvciBhcmcgaW4gY2Fs
bC5hcmdzOgorICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChhcmcpCisgICAgICAg
ICAgICBuZXdfYXJncy5hcHBlbmQocmVzKQorICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChl
eHBsKQorICAgICAgICBmb3Iga2V5d29yZCBpbiBjYWxsLmtleXdvcmRzOgorICAgICAgICAgICAg
cmVzLCBleHBsID0gc2VsZi52aXNpdChrZXl3b3JkLnZhbHVlKQorICAgICAgICAgICAgbmV3X2t3
YXJncy5hcHBlbmQoYXN0LmtleXdvcmQoa2V5d29yZC5hcmcsIHJlcykpCisgICAgICAgICAgICBh
cmdfZXhwbHMuYXBwZW5kKGtleXdvcmQuYXJnICsgIj0iICsgZXhwbCkKKyAgICAgICAgaWYgY2Fs
bC5zdGFyYXJnczoKKyAgICAgICAgICAgIG5ld19zdGFyLCBleHBsID0gc2VsZi52aXNpdChjYWxs
LnN0YXJhcmdzKQorICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZCgiKiIgKyBleHBsKQorICAg
ICAgICBpZiBjYWxsLmt3YXJnczoKKyAgICAgICAgICAgIG5ld19rd2FyZywgZXhwbCA9IHNlbGYu
dmlzaXQoY2FsbC5rd2FyZ3MpCisgICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKCIqKiIgKyBl
eHBsKQorICAgICAgICBleHBsID0gIiVzKCVzKSIgJSAoZnVuY19leHBsLCAnLCAnLmpvaW4oYXJn
X2V4cGxzKSkKKyAgICAgICAgbmV3X2NhbGwgPSBhc3QuQ2FsbChuZXdfZnVuYywgbmV3X2FyZ3Ms
IG5ld19rd2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3N0YXIsIG5ld19r
d2FyZykKKyAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24obmV3X2NhbGwpCisgICAgICAgIHJlc19l
eHBsID0gc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkKKyAgICAgICAg
b3V0ZXJfZXhwbCA9ICIlc1xueyVzID0gJXNcbn0iICUgKHJlc19leHBsLCByZXNfZXhwbCwgZXhw
bCkKKyAgICAgICAgcmV0dXJuIHJlcywgb3V0ZXJfZXhwbAorCisgICAgIyBhc3QuQ2FsbCBzaWdu
YXR1cmUgY2hhbmdlZCBvbiAzLjUsCisgICAgIyBjb25kaXRpb25hbGx5IGNoYW5nZSAgd2hpY2gg
bWV0aG9kcyBpcyBuYW1lZAorICAgICMgdmlzaXRfQ2FsbCBkZXBlbmRpbmcgb24gUHl0aG9uIHZl
cnNpb24KKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA1KToKKyAgICAgICAgdmlzaXRf
Q2FsbCA9IHZpc2l0X0NhbGxfMzUKKyAgICBlbHNlOgorICAgICAgICB2aXNpdF9DYWxsID0gdmlz
aXRfQ2FsbF9sZWdhY3kKKworICAgIGRlZiB2aXNpdF9BdHRyaWJ1dGUoc2VsZiwgYXR0cik6Cisg
ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGF0dHIuY3R4LCBhc3QuTG9hZCk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5nZW5lcmljX3Zpc2l0KGF0dHIpCisgICAgICAgIHZhbHVlLCB2YWx1ZV9l
eHBsID0gc2VsZi52aXNpdChhdHRyLnZhbHVlKQorICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihh
c3QuQXR0cmlidXRlKHZhbHVlLCBhdHRyLmF0dHIsIGFzdC5Mb2FkKCkpKQorICAgICAgICByZXNf
ZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykpCisgICAgICAg
IHBhdCA9ICIlc1xueyVzID0gJXMuJXNcbn0iCisgICAgICAgIGV4cGwgPSBwYXQgJSAocmVzX2V4
cGwsIHJlc19leHBsLCB2YWx1ZV9leHBsLCBhdHRyLmF0dHIpCisgICAgICAgIHJldHVybiByZXMs
IGV4cGwKKworICAgIGRlZiB2aXNpdF9Db21wYXJlKHNlbGYsIGNvbXApOgorICAgICAgICBzZWxm
LnB1c2hfZm9ybWF0X2NvbnRleHQoKQorICAgICAgICBsZWZ0X3JlcywgbGVmdF9leHBsID0gc2Vs
Zi52aXNpdChjb21wLmxlZnQpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoY29tcC5sZWZ0LCAoX2Fz
dC5Db21wYXJlLCBfYXN0LkJvb2xPcCkpOgorICAgICAgICAgICAgbGVmdF9leHBsID0gIih7MH0p
Ii5mb3JtYXQobGVmdF9leHBsKQorICAgICAgICByZXNfdmFyaWFibGVzID0gW3NlbGYudmFyaWFi
bGUoKSBmb3IgaSBpbiByYW5nZShsZW4oY29tcC5vcHMpKV0KKyAgICAgICAgbG9hZF9uYW1lcyA9
IFthc3QuTmFtZSh2LCBhc3QuTG9hZCgpKSBmb3IgdiBpbiByZXNfdmFyaWFibGVzXQorICAgICAg
ICBzdG9yZV9uYW1lcyA9IFthc3QuTmFtZSh2LCBhc3QuU3RvcmUoKSkgZm9yIHYgaW4gcmVzX3Zh
cmlhYmxlc10KKyAgICAgICAgaXQgPSB6aXAocmFuZ2UobGVuKGNvbXAub3BzKSksIGNvbXAub3Bz
LCBjb21wLmNvbXBhcmF0b3JzKQorICAgICAgICBleHBscyA9IFtdCisgICAgICAgIHN5bXMgPSBb
XQorICAgICAgICByZXN1bHRzID0gW2xlZnRfcmVzXQorICAgICAgICBmb3IgaSwgb3AsIG5leHRf
b3BlcmFuZCBpbiBpdDoKKyAgICAgICAgICAgIG5leHRfcmVzLCBuZXh0X2V4cGwgPSBzZWxmLnZp
c2l0KG5leHRfb3BlcmFuZCkKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UobmV4dF9vcGVyYW5k
LCAoX2FzdC5Db21wYXJlLCBfYXN0LkJvb2xPcCkpOgorICAgICAgICAgICAgICAgIG5leHRfZXhw
bCA9ICIoezB9KSIuZm9ybWF0KG5leHRfZXhwbCkKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KG5leHRfcmVzKQorICAgICAgICAgICAgc3ltID0gYmlub3BfbWFwW29wLl9fY2xhc3NfX10KKyAg
ICAgICAgICAgIHN5bXMuYXBwZW5kKGFzdC5TdHIoc3ltKSkKKyAgICAgICAgICAgIGV4cGwgPSAi
JXMgJXMgJXMiICUgKGxlZnRfZXhwbCwgc3ltLCBuZXh0X2V4cGwpCisgICAgICAgICAgICBleHBs
cy5hcHBlbmQoYXN0LlN0cihleHBsKSkKKyAgICAgICAgICAgIHJlc19leHByID0gYXN0LkNvbXBh
cmUobGVmdF9yZXMsIFtvcF0sIFtuZXh0X3Jlc10pCisgICAgICAgICAgICBzZWxmLnN0YXRlbWVu
dHMuYXBwZW5kKGFzdC5Bc3NpZ24oW3N0b3JlX25hbWVzW2ldXSwgcmVzX2V4cHIpKQorICAgICAg
ICAgICAgbGVmdF9yZXMsIGxlZnRfZXhwbCA9IG5leHRfcmVzLCBuZXh0X2V4cGwKKyAgICAgICAg
IyBVc2UgcHl0ZXN0LmFzc2VydGlvbi51dGlsLl9yZXByY29tcGFyZSBpZiB0aGF0J3MgYXZhaWxh
YmxlLgorICAgICAgICBleHBsX2NhbGwgPSBzZWxmLmhlbHBlcigiY2FsbF9yZXByY29tcGFyZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5UdXBsZShzeW1zLCBhc3QuTG9h
ZCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LlR1cGxlKGxvYWRfbmFt
ZXMsIGFzdC5Mb2FkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3QuVHVw
bGUoZXhwbHMsIGFzdC5Mb2FkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3QuVHVwbGUocmVzdWx0cywgYXN0LkxvYWQoKSkpCisgICAgICAgIGlmIGxlbihjb21wLm9wcykg
PiAxOgorICAgICAgICAgICAgcmVzID0gYXN0LkJvb2xPcChhc3QuQW5kKCksIGxvYWRfbmFtZXMp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXMgPSBsb2FkX25hbWVzWzBdCisgICAgICAg
IHJldHVybiByZXMsIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5wb3BfZm9ybWF0X2NvbnRl
eHQoZXhwbF9jYWxsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9u
L3RydW5jYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmVkMTJlMmU1YTk2MGNhNjBkOTk4NjhlMTk4OTdhMjdkZGE2ZDgzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5
CkBAIC0wLDAgKzEsMTAyIEBACisiIiIKK1V0aWxpdGllcyBmb3IgdHJ1bmNhdGluZyBhc3NlcnRp
b24gb3V0cHV0LgorCitDdXJyZW50IGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIHRydW5jYXRlIGFz
c2VydGlvbiBleHBsYW5hdGlvbnMgYXQKK344IHRlcm1pbmFsIGxpbmVzLCB1bmxlc3MgcnVubmlu
ZyBpbiAiLXZ2IiBtb2RlIG9yIHJ1bm5pbmcgb24gQ0kuCisiIiIKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBv
cworCitpbXBvcnQgc2l4CisKKworREVGQVVMVF9NQVhfTElORVMgPSA4CitERUZBVUxUX01BWF9D
SEFSUyA9IDggKiA4MAorVVNBR0VfTVNHID0gInVzZSAnLXZ2JyB0byBzaG93IgorCisKK2RlZiB0
cnVuY2F0ZV9pZl9yZXF1aXJlZChleHBsYW5hdGlvbiwgaXRlbSwgbWF4X2xlbmd0aD1Ob25lKToK
KyAgICAiIiIKKyAgICBUcnVuY2F0ZSB0aGlzIGFzc2VydGlvbiBleHBsYW5hdGlvbiBpZiB0aGUg
Z2l2ZW4gdGVzdCBpdGVtIGlzIGVsaWdpYmxlLgorICAgICIiIgorICAgIGlmIF9zaG91bGRfdHJ1
bmNhdGVfaXRlbShpdGVtKToKKyAgICAgICAgcmV0dXJuIF90cnVuY2F0ZV9leHBsYW5hdGlvbihl
eHBsYW5hdGlvbikKKyAgICByZXR1cm4gZXhwbGFuYXRpb24KKworCitkZWYgX3Nob3VsZF90cnVu
Y2F0ZV9pdGVtKGl0ZW0pOgorICAgICIiIgorICAgIFdoZXRoZXIgb3Igbm90IHRoaXMgdGVzdCBp
dGVtIGlzIGVsaWdpYmxlIGZvciB0cnVuY2F0aW9uLgorICAgICIiIgorICAgIHZlcmJvc2UgPSBp
dGVtLmNvbmZpZy5vcHRpb24udmVyYm9zZQorICAgIHJldHVybiB2ZXJib3NlIDwgMiBhbmQgbm90
IF9ydW5uaW5nX29uX2NpKCkKKworCitkZWYgX3J1bm5pbmdfb25fY2koKToKKyAgICAiIiJDaGVj
ayBpZiB3ZSdyZSBjdXJyZW50bHkgcnVubmluZyBvbiBhIENJIHN5c3RlbS4iIiIKKyAgICBlbnZf
dmFycyA9IFsnQ0knLCAnQlVJTERfTlVNQkVSJ10KKyAgICByZXR1cm4gYW55KHZhciBpbiBvcy5l
bnZpcm9uIGZvciB2YXIgaW4gZW52X3ZhcnMpCisKKworZGVmIF90cnVuY2F0ZV9leHBsYW5hdGlv
bihpbnB1dF9saW5lcywgbWF4X2xpbmVzPU5vbmUsIG1heF9jaGFycz1Ob25lKToKKyAgICAiIiIK
KyAgICBUcnVuY2F0ZSBnaXZlbiBsaXN0IG9mIHN0cmluZ3MgdGhhdCBtYWtlcyB1cCB0aGUgYXNz
ZXJ0aW9uIGV4cGxhbmF0aW9uLgorCisgICAgVHJ1bmNhdGVzIHRvIGVpdGhlciA4IGxpbmVzLCBv
ciA2NDAgY2hhcmFjdGVycyAtIHdoaWNoZXZlciB0aGUgaW5wdXQgcmVhY2hlcworICAgIGZpcnN0
LiBUaGUgcmVtYWluaW5nIGxpbmVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgYSB1c2FnZSBtZXNzYWdl
LgorICAgICIiIgorCisgICAgaWYgbWF4X2xpbmVzIGlzIE5vbmU6CisgICAgICAgIG1heF9saW5l
cyA9IERFRkFVTFRfTUFYX0xJTkVTCisgICAgaWYgbWF4X2NoYXJzIGlzIE5vbmU6CisgICAgICAg
IG1heF9jaGFycyA9IERFRkFVTFRfTUFYX0NIQVJTCisKKyAgICAjIENoZWNrIGlmIHRydW5jYXRp
b24gcmVxdWlyZWQKKyAgICBpbnB1dF9jaGFyX2NvdW50ID0gbGVuKCIiLmpvaW4oaW5wdXRfbGlu
ZXMpKQorICAgIGlmIGxlbihpbnB1dF9saW5lcykgPD0gbWF4X2xpbmVzIGFuZCBpbnB1dF9jaGFy
X2NvdW50IDw9IG1heF9jaGFyczoKKyAgICAgICAgcmV0dXJuIGlucHV0X2xpbmVzCisKKyAgICAj
IFRydW5jYXRlIGZpcnN0IHRvIG1heF9saW5lcywgYW5kIHRoZW4gdHJ1bmNhdGUgdG8gbWF4X2No
YXJzIGlmIG1heF9jaGFycworICAgICMgaXMgZXhjZWVkZWQuCisgICAgdHJ1bmNhdGVkX2V4cGxh
bmF0aW9uID0gaW5wdXRfbGluZXNbOm1heF9saW5lc10KKyAgICB0cnVuY2F0ZWRfZXhwbGFuYXRp
b24gPSBfdHJ1bmNhdGVfYnlfY2hhcl9jb3VudCh0cnVuY2F0ZWRfZXhwbGFuYXRpb24sIG1heF9j
aGFycykKKworICAgICMgQWRkIGVsbGlwc2lzIHRvIGZpbmFsIGxpbmUKKyAgICB0cnVuY2F0ZWRf
ZXhwbGFuYXRpb25bLTFdID0gdHJ1bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSArICIuLi4iCisKKyAg
ICAjIEFwcGVuZCB1c2VmdWwgbWVzc2FnZSB0byBleHBsYW5hdGlvbgorICAgIHRydW5jYXRlZF9s
aW5lX2NvdW50ID0gbGVuKGlucHV0X2xpbmVzKSAtIGxlbih0cnVuY2F0ZWRfZXhwbGFuYXRpb24p
CisgICAgdHJ1bmNhdGVkX2xpbmVfY291bnQgKz0gMSAgIyBBY2NvdW50IGZvciB0aGUgcGFydC10
cnVuY2F0ZWQgZmluYWwgbGluZQorICAgIG1zZyA9ICcuLi5GdWxsIG91dHB1dCB0cnVuY2F0ZWQn
CisgICAgaWYgdHJ1bmNhdGVkX2xpbmVfY291bnQgPT0gMToKKyAgICAgICAgbXNnICs9ICcgKHsw
fSBsaW5lIGhpZGRlbiknLmZvcm1hdCh0cnVuY2F0ZWRfbGluZV9jb3VudCkKKyAgICBlbHNlOgor
ICAgICAgICBtc2cgKz0gJyAoezB9IGxpbmVzIGhpZGRlbiknLmZvcm1hdCh0cnVuY2F0ZWRfbGlu
ZV9jb3VudCkKKyAgICBtc2cgKz0gIiwgezB9IiAuZm9ybWF0KFVTQUdFX01TRykKKyAgICB0cnVu
Y2F0ZWRfZXhwbGFuYXRpb24uZXh0ZW5kKFsKKyAgICAgICAgc2l4LnRleHRfdHlwZSgiIiksCisg
ICAgICAgIHNpeC50ZXh0X3R5cGUobXNnKSwKKyAgICBdKQorICAgIHJldHVybiB0cnVuY2F0ZWRf
ZXhwbGFuYXRpb24KKworCitkZWYgX3RydW5jYXRlX2J5X2NoYXJfY291bnQoaW5wdXRfbGluZXMs
IG1heF9jaGFycyk6CisgICAgIyBDaGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCisgICAgaWYg
bGVuKCIiLmpvaW4oaW5wdXRfbGluZXMpKSA8PSBtYXhfY2hhcnM6CisgICAgICAgIHJldHVybiBp
bnB1dF9saW5lcworCisgICAgIyBGaW5kIHBvaW50IGF0IHdoaWNoIGlucHV0IGxlbmd0aCBleGNl
ZWRzIHRvdGFsIGFsbG93ZWQgbGVuZ3RoCisgICAgaXRlcmF0ZWRfY2hhcl9jb3VudCA9IDAKKyAg
ICBmb3IgaXRlcmF0ZWRfaW5kZXgsIGlucHV0X2xpbmUgaW4gZW51bWVyYXRlKGlucHV0X2xpbmVz
KToKKyAgICAgICAgaWYgaXRlcmF0ZWRfY2hhcl9jb3VudCArIGxlbihpbnB1dF9saW5lKSA+IG1h
eF9jaGFyczoKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGl0ZXJhdGVkX2NoYXJfY291bnQg
Kz0gbGVuKGlucHV0X2xpbmUpCisKKyAgICAjIENyZWF0ZSB0cnVuY2F0ZWQgZXhwbGFuYXRpb24g
d2l0aCBtb2RpZmllZCBmaW5hbCBsaW5lCisgICAgdHJ1bmNhdGVkX3Jlc3VsdCA9IGlucHV0X2xp
bmVzWzppdGVyYXRlZF9pbmRleF0KKyAgICBmaW5hbF9saW5lID0gaW5wdXRfbGluZXNbaXRlcmF0
ZWRfaW5kZXhdCisgICAgaWYgZmluYWxfbGluZToKKyAgICAgICAgZmluYWxfbGluZV90cnVuY2F0
ZV9wb2ludCA9IG1heF9jaGFycyAtIGl0ZXJhdGVkX2NoYXJfY291bnQKKyAgICAgICAgZmluYWxf
bGluZSA9IGZpbmFsX2xpbmVbOmZpbmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnRdCisgICAgdHJ1bmNh
dGVkX3Jlc3VsdC5hcHBlbmQoZmluYWxfbGluZSkKKyAgICByZXR1cm4gdHJ1bmNhdGVkX3Jlc3Vs
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTExZDk4ZWYx
ZmRmMTk2NDNkMmFjNmI4ODY0OGU4OGM2N2JkOWRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKQEAgLTAsMCArMSwzMDggQEAKKyIiIlV0
aWxpdGllcyBmb3IgYXNzZXJ0aW9uIGRlYnVnZ2luZyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHBwcmlu
dAorCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQgc2l4Cit0cnk6Cisg
ICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgU2VxdWVuY2UKK2V4Y2VwdCBJbXBvcnRFcnJvcjoK
KyAgICBTZXF1ZW5jZSA9IGxpc3QKKworCit1ID0gc2l4LnRleHRfdHlwZQorCisjIFRoZSBfcmVw
cmNvbXBhcmUgYXR0cmlidXRlIG9uIHRoZSB1dGlsIG1vZHVsZSBpcyB1c2VkIGJ5IHRoZSBuZXcg
YXNzZXJ0aW9uCisjIGludGVycHJldGF0aW9uIGNvZGUgYW5kIGFzc2VydGlvbiByZXdyaXRlciB0
byBkZXRlY3QgdGhpcyBwbHVnaW4gd2FzCisjIGxvYWRlZCBhbmQgaW4gdHVybiBjYWxsIHRoZSBo
b29rcyBkZWZpbmVkIGhlcmUgYXMgcGFydCBvZiB0aGUKKyMgRGVidWdJbnRlcnByZXRlci4KK19y
ZXByY29tcGFyZSA9IE5vbmUKKworCisjIHRoZSByZS1lbmNvZGluZyBpcyBuZWVkZWQgZm9yIHB5
dGhvbjIgcmVwcgorIyB3aXRoIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIChzZWUgaXNzdWUgODc3IGFu
ZCAxMzc5KQorZGVmIGVjdShzKToKKyAgICB0cnk6CisgICAgICAgIHJldHVybiB1KHMsICd1dGYt
OCcsICdyZXBsYWNlJykKKyAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICByZXR1cm4gcwor
CisKK2RlZiBmb3JtYXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pOgorICAgICIiIlRoaXMgZm9y
bWF0cyBhbiBleHBsYW5hdGlvbgorCisgICAgTm9ybWFsbHkgYWxsIGVtYmVkZGVkIG5ld2xpbmVz
IGFyZSBlc2NhcGVkLCBob3dldmVyIHRoZXJlIGFyZQorICAgIHRocmVlIGV4Y2VwdGlvbnM6IFxu
eywgXG59IGFuZCBcbn4uICBUaGUgZmlyc3QgdHdvIGFyZSBpbnRlbmRlZAorICAgIGNvdmVyIG5l
c3RlZCBleHBsYW5hdGlvbnMsIHNlZSBmdW5jdGlvbiBhbmQgYXR0cmlidXRlIGV4cGxhbmF0aW9u
cworICAgIGZvciBleGFtcGxlcyAoLnZpc2l0X0NhbGwoKSwgdmlzaXRfQXR0cmlidXRlKCkpLiAg
VGhlIGxhc3Qgb25lIGlzCisgICAgZm9yIHdoZW4gb25lIGV4cGxhbmF0aW9uIG5lZWRzIHRvIHNw
YW4gbXVsdGlwbGUgbGluZXMsIGUuZy4gd2hlbgorICAgIGRpc3BsYXlpbmcgZGlmZnMuCisgICAg
IiIiCisgICAgZXhwbGFuYXRpb24gPSBlY3UoZXhwbGFuYXRpb24pCisgICAgbGluZXMgPSBfc3Bs
aXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pCisgICAgcmVzdWx0ID0gX2Zvcm1hdF9saW5lcyhs
aW5lcykKKyAgICByZXR1cm4gdSgnXG4nKS5qb2luKHJlc3VsdCkKKworCitkZWYgX3NwbGl0X2V4
cGxhbmF0aW9uKGV4cGxhbmF0aW9uKToKKyAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGluZGl2aWR1
YWwgbGluZXMgaW4gdGhlIGV4cGxhbmF0aW9uCisKKyAgICBUaGlzIHdpbGwgcmV0dXJuIGEgbGlz
dCBvZiBsaW5lcyBzcGxpdCBvbiAnXG57JywgJ1xufScgYW5kICdcbn4nLgorICAgIEFueSBvdGhl
ciBuZXdsaW5lcyB3aWxsIGJlIGVzY2FwZWQgYW5kIGFwcGVhciBpbiB0aGUgbGluZSBhcyB0aGUK
KyAgICBsaXRlcmFsICdcbicgY2hhcmFjdGVycy4KKyAgICAiIiIKKyAgICByYXdfbGluZXMgPSAo
ZXhwbGFuYXRpb24gb3IgdSgnJykpLnNwbGl0KCdcbicpCisgICAgbGluZXMgPSBbcmF3X2xpbmVz
WzBdXQorICAgIGZvciB2YWx1ZXMgaW4gcmF3X2xpbmVzWzE6XToKKyAgICAgICAgaWYgdmFsdWVz
IGFuZCB2YWx1ZXNbMF0gaW4gWyd7JywgJ30nLCAnficsICc+J106CisgICAgICAgICAgICBsaW5l
cy5hcHBlbmQodmFsdWVzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZXNbLTFdICs9
ICdcXG4nICsgdmFsdWVzCisgICAgcmV0dXJuIGxpbmVzCisKKworZGVmIF9mb3JtYXRfbGluZXMo
bGluZXMpOgorICAgICIiIkZvcm1hdCB0aGUgaW5kaXZpZHVhbCBsaW5lcworCisgICAgVGhpcyB3
aWxsIHJlcGxhY2UgdGhlICd7JywgJ30nIGFuZCAnficgY2hhcmFjdGVycyBvZiBvdXIgbWluaQor
ICAgIGZvcm1hdHRpbmcgbGFuZ3VhZ2Ugd2l0aCB0aGUgcHJvcGVyICd3aGVyZSAuLi4nLCAnYW5k
IC4uLicgYW5kICcgKworICAgIC4uLicgdGV4dCwgdGFraW5nIGNhcmUgb2YgaW5kZW50YXRpb24g
YWxvbmcgdGhlIHdheS4KKworICAgIFJldHVybiBhIGxpc3Qgb2YgZm9ybWF0dGVkIGxpbmVzLgor
ICAgICIiIgorICAgIHJlc3VsdCA9IGxpbmVzWzoxXQorICAgIHN0YWNrID0gWzBdCisgICAgc3Rh
Y2tjbnQgPSBbMF0KKyAgICBmb3IgbGluZSBpbiBsaW5lc1sxOl06CisgICAgICAgIGlmIGxpbmUu
c3RhcnRzd2l0aCgneycpOgorICAgICAgICAgICAgaWYgc3RhY2tjbnRbLTFdOgorICAgICAgICAg
ICAgICAgIHMgPSB1KCdhbmQgICAnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBzID0gdSgnd2hlcmUgJykKKyAgICAgICAgICAgIHN0YWNrLmFwcGVuZChsZW4ocmVzdWx0KSkK
KyAgICAgICAgICAgIHN0YWNrY250Wy0xXSArPSAxCisgICAgICAgICAgICBzdGFja2NudC5hcHBl
bmQoMCkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSgnICsnKSArIHUoJyAgJykgKiAobGVu
KHN0YWNrKSAtIDEpICsgcyArIGxpbmVbMTpdKQorICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0
aCgnfScpOgorICAgICAgICAgICAgc3RhY2sucG9wKCkKKyAgICAgICAgICAgIHN0YWNrY250LnBv
cCgpCisgICAgICAgICAgICByZXN1bHRbc3RhY2tbLTFdXSArPSBsaW5lWzE6XQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgYXNzZXJ0IGxpbmVbMF0gaW4gWyd+JywgJz4nXQorICAgICAgICAg
ICAgc3RhY2tbLTFdICs9IDEKKyAgICAgICAgICAgIGluZGVudCA9IGxlbihzdGFjaykgaWYgbGlu
ZS5zdGFydHN3aXRoKCd+JykgZWxzZSBsZW4oc3RhY2spIC0gMQorICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCh1KCcgICcpICogaW5kZW50ICsgbGluZVsxOl0pCisgICAgYXNzZXJ0IGxlbihzdGFj
aykgPT0gMQorICAgIHJldHVybiByZXN1bHQKKworCisjIFByb3ZpZGUgYmFzZXN0cmluZyBpbiBw
eXRob24zCit0cnk6CisgICAgYmFzZXN0cmluZyA9IGJhc2VzdHJpbmcKK2V4Y2VwdCBOYW1lRXJy
b3I6CisgICAgYmFzZXN0cmluZyA9IHN0cgorCisKK2RlZiBhc3NlcnRyZXByX2NvbXBhcmUoY29u
ZmlnLCBvcCwgbGVmdCwgcmlnaHQpOgorICAgICIiIlJldHVybiBzcGVjaWFsaXNlZCBleHBsYW5h
dGlvbnMgZm9yIHNvbWUgb3BlcmF0b3JzL29wZXJhbmRzIiIiCisgICAgd2lkdGggPSA4MCAtIDE1
IC0gbGVuKG9wKSAtIDIgICMgMTUgY2hhcnMgaW5kZW50YXRpb24sIDEgc3BhY2UgYXJvdW5kIG9w
CisgICAgbGVmdF9yZXByID0gcHkuaW8uc2FmZXJlcHIobGVmdCwgbWF4c2l6ZT1pbnQod2lkdGgg
Ly8gMikpCisgICAgcmlnaHRfcmVwciA9IHB5LmlvLnNhZmVyZXByKHJpZ2h0LCBtYXhzaXplPXdp
ZHRoIC0gbGVuKGxlZnRfcmVwcikpCisKKyAgICBzdW1tYXJ5ID0gdSgnJXMgJXMgJXMnKSAlIChl
Y3UobGVmdF9yZXByKSwgb3AsIGVjdShyaWdodF9yZXByKSkKKworICAgIGRlZiBpc3NlcXVlbmNl
KHgpOgorICAgICAgICByZXR1cm4gKGlzaW5zdGFuY2UoeCwgKGxpc3QsIHR1cGxlLCBTZXF1ZW5j
ZSkpIGFuZCBub3QgaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKSkKKworICAgIGRlZiBpc3RleHQo
eCk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHgsIGJhc2VzdHJpbmcpCisKKyAgICBkZWYg
aXNkaWN0KHgpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBkaWN0KQorCisgICAgZGVm
IGlzc2V0KHgpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCAoc2V0LCBmcm96ZW5zZXQp
KQorCisgICAgZGVmIGlzaXRlcmFibGUob2JqKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
aXRlcihvYmopCisgICAgICAgICAgICByZXR1cm4gbm90IGlzdGV4dChvYmopCisgICAgICAgIGV4
Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHZlcmJvc2Ug
PSBjb25maWcuZ2V0b3B0aW9uKCd2ZXJib3NlJykKKyAgICBleHBsYW5hdGlvbiA9IE5vbmUKKyAg
ICB0cnk6CisgICAgICAgIGlmIG9wID09ICc9PSc6CisgICAgICAgICAgICBpZiBpc3RleHQobGVm
dCkgYW5kIGlzdGV4dChyaWdodCk6CisgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfZGlm
Zl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBpZiBpc3NlcXVlbmNlKGxlZnQpIGFuZCBpc3NlcXVlbmNlKHJpZ2h0KToKKyAgICAg
ICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCBy
aWdodCwgdmVyYm9zZSkKKyAgICAgICAgICAgICAgICBlbGlmIGlzc2V0KGxlZnQpIGFuZCBpc3Nl
dChyaWdodCk6CisgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFf
c2V0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQorICAgICAgICAgICAgICAgIGVsaWYgaXNkaWN0KGxl
ZnQpIGFuZCBpc2RpY3QocmlnaHQpOgorICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9
IF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAgICAgICAgICAgICAg
aWYgaXNpdGVyYWJsZShsZWZ0KSBhbmQgaXNpdGVyYWJsZShyaWdodCk6CisgICAgICAgICAgICAg
ICAgICAgIGV4cGwgPSBfY29tcGFyZV9lcV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9zZSkK
KyAgICAgICAgICAgICAgICAgICAgaWYgZXhwbGFuYXRpb24gaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbi5leHRlbmQoZXhwbCkKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXhwbAor
ICAgICAgICBlbGlmIG9wID09ICdub3QgaW4nOgorICAgICAgICAgICAgaWYgaXN0ZXh0KGxlZnQp
IGFuZCBpc3RleHQocmlnaHQpOgorICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX25vdGlu
X3RleHQobGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgZXhwbGFuYXRpb24gPSBbCisgICAgICAgICAgICB1KCcocHl0ZXN0X2Fzc2VydGlvbiBwbHVn
aW46IHJlcHJlc2VudGF0aW9uIG9mIGRldGFpbHMgZmFpbGVkLiAgJworICAgICAgICAgICAgICAn
UHJvYmFibHkgYW4gb2JqZWN0IGhhcyBhIGZhdWx0eSBfX3JlcHJfXy4pJyksCisgICAgICAgICAg
ICB1KF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKV0KKworICAgIGlmIG5vdCBleHBsYW5h
dGlvbjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJldHVybiBbc3VtbWFyeV0gKyBleHBs
YW5hdGlvbgorCisKK2RlZiBfZGlmZl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToK
KyAgICAiIiJSZXR1cm4gdGhlIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlmZiBiZXR3ZWVuIHRleHQg
b3IgYnl0ZXMKKworICAgIFVubGVzcyAtLXZlcmJvc2UgaXMgdXNlZCB0aGlzIHdpbGwgc2tpcCBs
ZWFkaW5nIGFuZCB0cmFpbGluZworICAgIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGlkZW50aWNhbCB0
byBrZWVwIHRoZSBkaWZmIG1pbmltYWwuCisKKyAgICBJZiB0aGUgaW5wdXQgYXJlIGJ5dGVzIHRo
ZXkgd2lsbCBiZSBzYWZlbHkgY29udmVydGVkIHRvIHRleHQuCisgICAgIiIiCisgICAgZnJvbSBk
aWZmbGliIGltcG9ydCBuZGlmZgorICAgIGV4cGxhbmF0aW9uID0gW10KKyAgICBpZiBpc2luc3Rh
bmNlKGxlZnQsIHNpeC5iaW5hcnlfdHlwZSk6CisgICAgICAgIGxlZnQgPSB1KHJlcHIobGVmdClb
MTotMV0pLnJlcGxhY2UocidcbicsICdcbicpCisgICAgaWYgaXNpbnN0YW5jZShyaWdodCwgc2l4
LmJpbmFyeV90eXBlKToKKyAgICAgICAgcmlnaHQgPSB1KHJlcHIocmlnaHQpWzE6LTFdKS5yZXBs
YWNlKHInXG4nLCAnXG4nKQorICAgIGlmIG5vdCB2ZXJib3NlOgorICAgICAgICBpID0gMCAgIyBq
dXN0IGluIGNhc2UgbGVmdCBvciByaWdodCBoYXMgemVybyBsZW5ndGgKKyAgICAgICAgZm9yIGkg
aW4gcmFuZ2UobWluKGxlbihsZWZ0KSwgbGVuKHJpZ2h0KSkpOgorICAgICAgICAgICAgaWYgbGVm
dFtpXSAhPSByaWdodFtpXToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBpID4g
NDI6CisgICAgICAgICAgICBpIC09IDEwICAgICAgICAgICAgICAgICAjIFByb3ZpZGUgc29tZSBj
b250ZXh0CisgICAgICAgICAgICBleHBsYW5hdGlvbiA9IFt1KCdTa2lwcGluZyAlcyBpZGVudGlj
YWwgbGVhZGluZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFyYWN0ZXJzIGlu
IGRpZmYsIHVzZSAtdiB0byBzaG93JykgJSBpXQorICAgICAgICAgICAgbGVmdCA9IGxlZnRbaTpd
CisgICAgICAgICAgICByaWdodCA9IHJpZ2h0W2k6XQorICAgICAgICBpZiBsZW4obGVmdCkgPT0g
bGVuKHJpZ2h0KToKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihsZWZ0KSk6CisgICAg
ICAgICAgICAgICAgaWYgbGVmdFstaV0gIT0gcmlnaHRbLWldOgorICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgaWYgaSA+IDQyOgorICAgICAgICAgICAgICAgIGkgLT0gMTAg
ICAgICMgUHJvdmlkZSBzb21lIGNvbnRleHQKKyAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiAr
PSBbdSgnU2tpcHBpbmcgJXMgaWRlbnRpY2FsIHRyYWlsaW5nICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdycpICUg
aV0KKyAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdFs6LWldCisgICAgICAgICAgICAgICAgcmln
aHQgPSByaWdodFs6LWldCisgICAga2VlcGVuZHMgPSBUcnVlCisgICAgZXhwbGFuYXRpb24gKz0g
W2xpbmUuc3RyaXAoJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gbmRpZmYo
bGVmdC5zcGxpdGxpbmVzKGtlZXBlbmRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmlnaHQuc3BsaXRsaW5lcyhrZWVwZW5kcykpXQorICAgIHJldHVybiBleHBsYW5h
dGlvbgorCisKK2RlZiBfY29tcGFyZV9lcV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9zZT1G
YWxzZSk6CisgICAgaWYgbm90IHZlcmJvc2U6CisgICAgICAgIHJldHVybiBbdSgnVXNlIC12IHRv
IGdldCB0aGUgZnVsbCBkaWZmJyldCisgICAgIyBkeW5hbWljIGltcG9ydCB0byBzcGVlZHVwIHB5
dGVzdAorICAgIGltcG9ydCBkaWZmbGliCisKKyAgICB0cnk6CisgICAgICAgIGxlZnRfZm9ybWF0
dGluZyA9IHBwcmludC5wZm9ybWF0KGxlZnQpLnNwbGl0bGluZXMoKQorICAgICAgICByaWdodF9m
b3JtYXR0aW5nID0gcHByaW50LnBmb3JtYXQocmlnaHQpLnNwbGl0bGluZXMoKQorICAgICAgICBl
eHBsYW5hdGlvbiA9IFt1KCdGdWxsIGRpZmY6JyldCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAg
ICAgICAgIyBoYWNrOiBQcmV0dHlQcmludGVyLnBmb3JtYXQoKSBpbiBweXRob24gMiBmYWlscyB3
aGVuIGZvcm1hdHRpbmcgaXRlbXMgdGhhdCBjYW4ndCBiZSBzb3J0ZWQoKSwgaWUsIGNhbGxpbmcK
KyAgICAgICAgIyBzb3J0ZWQoKSBvbiBhIGxpc3Qgd291bGQgcmFpc2UuIFNlZSBpc3N1ZSAjNzE4
LgorICAgICAgICAjIEFzIGEgd29ya2Fyb3VuZCwgdGhlIGZ1bGwgZGlmZiBpcyBnZW5lcmF0ZWQg
YnkgdXNpbmcgdGhlIHJlcHIoKSBzdHJpbmcgb2YgZWFjaCBpdGVtIG9mIGVhY2ggY29udGFpbmVy
LgorICAgICAgICBsZWZ0X2Zvcm1hdHRpbmcgPSBzb3J0ZWQocmVwcih4KSBmb3IgeCBpbiBsZWZ0
KQorICAgICAgICByaWdodF9mb3JtYXR0aW5nID0gc29ydGVkKHJlcHIoeCkgZm9yIHggaW4gcmln
aHQpCisgICAgICAgIGV4cGxhbmF0aW9uID0gW3UoJ0Z1bGwgZGlmZiAoZmFsbGJhY2sgdG8gY2Fs
bGluZyByZXByIG9uIGVhY2ggaXRlbSk6JyldCisgICAgZXhwbGFuYXRpb24uZXh0ZW5kKGxpbmUu
c3RyaXAoKSBmb3IgbGluZSBpbiBkaWZmbGliLm5kaWZmKGxlZnRfZm9ybWF0dGluZywgcmlnaHRf
Zm9ybWF0dGluZykpCisgICAgcmV0dXJuIGV4cGxhbmF0aW9uCisKKworZGVmIF9jb21wYXJlX2Vx
X3NlcXVlbmNlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKKyAgICBleHBsYW5hdGlvbiA9
IFtdCisgICAgZm9yIGkgaW4gcmFuZ2UobWluKGxlbihsZWZ0KSwgbGVuKHJpZ2h0KSkpOgorICAg
ICAgICBpZiBsZWZ0W2ldICE9IHJpZ2h0W2ldOgorICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0g
W3UoJ0F0IGluZGV4ICVzIGRpZmY6ICVyICE9ICVyJykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAlIChpLCBsZWZ0W2ldLCByaWdodFtpXSldCisgICAgICAgICAgICBicmVhaworICAgIGlm
IGxlbihsZWZ0KSA+IGxlbihyaWdodCk6CisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdMZWZ0
IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06ICVzJykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICUgcHkuaW8uc2FmZXJlcHIobGVmdFtsZW4ocmlnaHQpXSwpXQorICAgIGVs
aWYgbGVuKGxlZnQpIDwgbGVuKHJpZ2h0KToKKyAgICAgICAgZXhwbGFuYXRpb24gKz0gWworICAg
ICAgICAgICAgdSgnUmlnaHQgY29udGFpbnMgbW9yZSBpdGVtcywgZmlyc3QgZXh0cmEgaXRlbTog
JXMnKSAlCisgICAgICAgICAgICBweS5pby5zYWZlcmVwcihyaWdodFtsZW4obGVmdCldLCldCisg
ICAgcmV0dXJuIGV4cGxhbmF0aW9uCisKKworZGVmIF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdo
dCwgdmVyYm9zZT1GYWxzZSk6CisgICAgZXhwbGFuYXRpb24gPSBbXQorICAgIGRpZmZfbGVmdCA9
IGxlZnQgLSByaWdodAorICAgIGRpZmZfcmlnaHQgPSByaWdodCAtIGxlZnQKKyAgICBpZiBkaWZm
X2xlZnQ6CisgICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdFeHRyYSBpdGVtcyBpbiB0aGUg
bGVmdCBzZXQ6JykpCisgICAgICAgIGZvciBpdGVtIGluIGRpZmZfbGVmdDoKKyAgICAgICAgICAg
IGV4cGxhbmF0aW9uLmFwcGVuZChweS5pby5zYWZlcmVwcihpdGVtKSkKKyAgICBpZiBkaWZmX3Jp
Z2h0OgorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgnRXh0cmEgaXRlbXMgaW4gdGhlIHJp
Z2h0IHNldDonKSkKKyAgICAgICAgZm9yIGl0ZW0gaW4gZGlmZl9yaWdodDoKKyAgICAgICAgICAg
IGV4cGxhbmF0aW9uLmFwcGVuZChweS5pby5zYWZlcmVwcihpdGVtKSkKKyAgICByZXR1cm4gZXhw
bGFuYXRpb24KKworCitkZWYgX2NvbXBhcmVfZXFfZGljdChsZWZ0LCByaWdodCwgdmVyYm9zZT1G
YWxzZSk6CisgICAgZXhwbGFuYXRpb24gPSBbXQorICAgIGNvbW1vbiA9IHNldChsZWZ0KS5pbnRl
cnNlY3Rpb24oc2V0KHJpZ2h0KSkKKyAgICBzYW1lID0gZGljdCgoaywgbGVmdFtrXSkgZm9yIGsg
aW4gY29tbW9uIGlmIGxlZnRba10gPT0gcmlnaHRba10pCisgICAgaWYgc2FtZSBhbmQgdmVyYm9z
ZSA8IDI6CisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdPbWl0dGluZyAlcyBpZGVudGljYWwg
aXRlbXMsIHVzZSAtdnYgdG8gc2hvdycpICUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbihz
YW1lKV0KKyAgICBlbGlmIHNhbWU6CisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdDb21tb24g
aXRlbXM6JyldCisgICAgICAgIGV4cGxhbmF0aW9uICs9IHBwcmludC5wZm9ybWF0KHNhbWUpLnNw
bGl0bGluZXMoKQorICAgIGRpZmYgPSBzZXQoayBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtrXSAh
PSByaWdodFtrXSkKKyAgICBpZiBkaWZmOgorICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnRGlm
ZmVyaW5nIGl0ZW1zOicpXQorICAgICAgICBmb3IgayBpbiBkaWZmOgorICAgICAgICAgICAgZXhw
bGFuYXRpb24gKz0gW3B5LmlvLnNhZmVyZXByKHtrOiBsZWZ0W2tdfSkgKyAnICE9ICcgKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB5LmlvLnNhZmVyZXByKHtrOiByaWdodFtrXX0pXQor
ICAgIGV4dHJhX2xlZnQgPSBzZXQobGVmdCkgLSBzZXQocmlnaHQpCisgICAgaWYgZXh0cmFfbGVm
dDoKKyAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHUoJ0xlZnQgY29udGFpbnMgbW9yZSBpdGVt
czonKSkKKyAgICAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKHBwcmludC5wZm9ybWF0KAorICAgICAg
ICAgICAgZGljdCgoaywgbGVmdFtrXSkgZm9yIGsgaW4gZXh0cmFfbGVmdCkpLnNwbGl0bGluZXMo
KSkKKyAgICBleHRyYV9yaWdodCA9IHNldChyaWdodCkgLSBzZXQobGVmdCkKKyAgICBpZiBleHRy
YV9yaWdodDoKKyAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHUoJ1JpZ2h0IGNvbnRhaW5zIG1v
cmUgaXRlbXM6JykpCisgICAgICAgIGV4cGxhbmF0aW9uLmV4dGVuZChwcHJpbnQucGZvcm1hdCgK
KyAgICAgICAgICAgIGRpY3QoKGssIHJpZ2h0W2tdKSBmb3IgayBpbiBleHRyYV9yaWdodCkpLnNw
bGl0bGluZXMoKSkKKyAgICByZXR1cm4gZXhwbGFuYXRpb24KKworCitkZWYgX25vdGluX3RleHQo
dGVybSwgdGV4dCwgdmVyYm9zZT1GYWxzZSk6CisgICAgaW5kZXggPSB0ZXh0LmZpbmQodGVybSkK
KyAgICBoZWFkID0gdGV4dFs6aW5kZXhdCisgICAgdGFpbCA9IHRleHRbaW5kZXggKyBsZW4odGVy
bSk6XQorICAgIGNvcnJlY3RfdGV4dCA9IGhlYWQgKyB0YWlsCisgICAgZGlmZiA9IF9kaWZmX3Rl
eHQoY29ycmVjdF90ZXh0LCB0ZXh0LCB2ZXJib3NlKQorICAgIG5ld2RpZmYgPSBbdSgnJXMgaXMg
Y29udGFpbmVkIGhlcmU6JykgJSBweS5pby5zYWZlcmVwcih0ZXJtLCBtYXhzaXplPTQyKV0KKyAg
ICBmb3IgbGluZSBpbiBkaWZmOgorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgodSgnU2tpcHBp
bmcnKSk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgo
dSgnLSAnKSk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dp
dGgodSgnKyAnKSk6CisgICAgICAgICAgICBuZXdkaWZmLmFwcGVuZCh1KCcgICcpICsgbGluZVsy
Ol0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXdkaWZmLmFwcGVuZChsaW5lKQorICAg
IHJldHVybiBuZXdkaWZmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlv
bi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQxMzA3ZDNhYmM3MjE1OGY0MWQ2NDQyY2ZkNTkxZTFiMDVmOWNh
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2Fzc2VydGlvbi9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Jl
d3JpdGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVw
cm92aWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTM3YzE0NDcyYjFjZTkxNjljZmU3NjI5MDE1ODg0YjBl
NGUzZTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXByb3Zp
ZGVyLnB5CkBAIC0wLDAgKzEsMjYwIEBACisiIiIKK21lcmdlZCBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgY2FjaGUgcHJvdmlkZXIKKwordGhlIG5hbWUgY2FjaGUgd2FzIG5vdCBjaG9zZW4gdG8gZW5z
dXJlIHBsdWdneSBhdXRvbWF0aWNhbGx5CitpZ25vcmVzIHRoZSBleHRlcm5hbCBweXRlc3QtY2Fj
aGUKKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQganNvbgor
aW1wb3J0IG9zCitmcm9tIG9zLnBhdGggaW1wb3J0IHNlcCBhcyBfc2VwLCBhbHRzZXAgYXMgX2Fs
dHNlcAorCisKK2NsYXNzIENhY2hlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNv
bmZpZyk6CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisgICAgICAgIHNlbGYuX2NhY2hl
ZGlyID0gQ2FjaGUuY2FjaGVfZGlyX2Zyb21fY29uZmlnKGNvbmZpZykKKyAgICAgICAgc2VsZi50
cmFjZSA9IGNvbmZpZy50cmFjZS5yb290LmdldCgiY2FjaGUiKQorICAgICAgICBpZiBjb25maWcu
Z2V0dmFsdWUoImNhY2hlY2xlYXIiKToKKyAgICAgICAgICAgIHNlbGYudHJhY2UoImNsZWFyaW5n
IGNhY2hlZGlyIikKKyAgICAgICAgICAgIGlmIHNlbGYuX2NhY2hlZGlyLmNoZWNrKCk6CisgICAg
ICAgICAgICAgICAgc2VsZi5fY2FjaGVkaXIucmVtb3ZlKCkKKyAgICAgICAgICAgIHNlbGYuX2Nh
Y2hlZGlyLm1rZGlyKCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY2FjaGVfZGlyX2Zy
b21fY29uZmlnKGNvbmZpZyk6CisgICAgICAgIGNhY2hlX2RpciA9IGNvbmZpZy5nZXRpbmkoImNh
Y2hlX2RpciIpCisgICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGguZXhwYW5kdXNlcihjYWNoZV9k
aXIpCisgICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGguZXhwYW5kdmFycyhjYWNoZV9kaXIpCisg
ICAgICAgIGlmIG9zLnBhdGguaXNhYnMoY2FjaGVfZGlyKToKKyAgICAgICAgICAgIHJldHVybiBw
eS5wYXRoLmxvY2FsKGNhY2hlX2RpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVy
biBjb25maWcucm9vdGRpci5qb2luKGNhY2hlX2RpcikKKworICAgIGRlZiBtYWtlZGlyKHNlbGYs
IG5hbWUpOgorICAgICAgICAiIiIgcmV0dXJuIGEgZGlyZWN0b3J5IHBhdGggb2JqZWN0IHdpdGgg
dGhlIGdpdmVuIG5hbWUuICBJZiB0aGUKKyAgICAgICAgZGlyZWN0b3J5IGRvZXMgbm90IHlldCBl
eGlzdCwgaXQgd2lsbCBiZSBjcmVhdGVkLiAgWW91IGNhbiB1c2UgaXQKKyAgICAgICAgdG8gbWFu
YWdlIGZpbGVzIGxpa2VzIGUuIGcuIHN0b3JlL3JldHJpZXZlIGRhdGFiYXNlCisgICAgICAgIGR1
bXBzIGFjcm9zcyB0ZXN0IHNlc3Npb25zLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBtdXN0IGJl
IGEgc3RyaW5nIG5vdCBjb250YWluaW5nIGEgYGAvYGAgc2VwYXJhdG9yLgorICAgICAgICAgICAg
IE1ha2Ugc3VyZSB0aGUgbmFtZSBjb250YWlucyB5b3VyIHBsdWdpbiBvciBhcHBsaWNhdGlvbgor
ICAgICAgICAgICAgIGlkZW50aWZpZXJzIHRvIHByZXZlbnQgY2xhc2hlcyB3aXRoIG90aGVyIGNh
Y2hlIHVzZXJzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgX3NlcCBpbiBuYW1lIG9yIF9hbHRz
ZXAgaXMgbm90IE5vbmUgYW5kIF9hbHRzZXAgaW4gbmFtZToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIm5hbWUgaXMgbm90IGFsbG93ZWQgdG8gY29udGFpbiBwYXRoIHNlcGFyYXRvcnMi
KQorICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkaXIuZW5zdXJlX2RpcigiZCIsIG5hbWUpCisK
KyAgICBkZWYgX2dldHZhbHVlcGF0aChzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gc2VsZi5f
Y2FjaGVkaXIuam9pbigndicsICprZXkuc3BsaXQoJy8nKSkKKworICAgIGRlZiBnZXQoc2VsZiwg
a2V5LCBkZWZhdWx0KToKKyAgICAgICAgIiIiIHJldHVybiBjYWNoZWQgdmFsdWUgZm9yIHRoZSBn
aXZlbiBrZXkuICBJZiBubyB2YWx1ZQorICAgICAgICB3YXMgeWV0IGNhY2hlZCBvciB0aGUgdmFs
dWUgY2Fubm90IGJlIHJlYWQsIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgZGVmYXVsdCBpcyByZXR1
cm5lZC4KKworICAgICAgICA6cGFyYW0ga2V5OiBtdXN0IGJlIGEgYGAvYGAgc2VwYXJhdGVkIHZh
bHVlLiBVc3VhbGx5IHRoZSBmaXJzdAorICAgICAgICAgICAgIG5hbWUgaXMgdGhlIG5hbWUgb2Yg
eW91ciBwbHVnaW4gb3IgeW91ciBhcHBsaWNhdGlvbi4KKyAgICAgICAgOnBhcmFtIGRlZmF1bHQ6
IG11c3QgYmUgcHJvdmlkZWQgaW4gY2FzZSBvZiBhIGNhY2hlLW1pc3Mgb3IKKyAgICAgICAgICAg
ICBpbnZhbGlkIGNhY2hlIHZhbHVlcy4KKworICAgICAgICAiIiIKKyAgICAgICAgcGF0aCA9IHNl
bGYuX2dldHZhbHVlcGF0aChrZXkpCisgICAgICAgIGlmIHBhdGguY2hlY2soKToKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGgub3BlbigiciIpIGFzIGY6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKKyAgICAgICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHNlbGYudHJhY2UoImNhY2hlLWludmFsaWQgYXQg
JXMiICUgKHBhdGgsKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBzZXQoc2Vs
Ziwga2V5LCB2YWx1ZSk6CisgICAgICAgICIiIiBzYXZlIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5
LgorCisgICAgICAgIDpwYXJhbSBrZXk6IG11c3QgYmUgYSBgYC9gYCBzZXBhcmF0ZWQgdmFsdWUu
IFVzdWFsbHkgdGhlIGZpcnN0CisgICAgICAgICAgICAgbmFtZSBpcyB0aGUgbmFtZSBvZiB5b3Vy
IHBsdWdpbiBvciB5b3VyIGFwcGxpY2F0aW9uLgorICAgICAgICA6cGFyYW0gdmFsdWU6IG11c3Qg
YmUgb2YgYW55IGNvbWJpbmF0aW9uIG9mIGJhc2ljCisgICAgICAgICAgICAgICBweXRob24gdHlw
ZXMsIGluY2x1ZGluZyBuZXN0ZWQgdHlwZXMKKyAgICAgICAgICAgICAgIGxpa2UgZS4gZy4gbGlz
dHMgb2YgZGljdGlvbmFyaWVzLgorICAgICAgICAiIiIKKyAgICAgICAgcGF0aCA9IHNlbGYuX2dl
dHZhbHVlcGF0aChrZXkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhdGguZGlycGF0aCgp
LmVuc3VyZV9kaXIoKQorICAgICAgICBleGNlcHQgKHB5LmVycm9yLkVFWElTVCwgcHkuZXJyb3Iu
RUFDQ0VTKToKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCisgICAgICAgICAgICAgICAg
Y29kZT0nSTknLCBtZXNzYWdlPSdjb3VsZCBub3QgY3JlYXRlIGNhY2hlIHBhdGggJXMnICUgKHBh
dGgsKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGYgPSBwYXRoLm9wZW4oJ3cnKQorICAgICAgICBleGNlcHQgcHkuZXJyb3IuRU5P
VERJUjoKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCisgICAgICAgICAgICAgICAgY29k
ZT0nSTknLCBtZXNzYWdlPSdjYWNoZSBjb3VsZCBub3Qgd3JpdGUgcGF0aCAlcycgJSAocGF0aCwp
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBmOgorICAgICAgICAgICAgICAgIHNl
bGYudHJhY2UoImNhY2hlLXdyaXRlICVzOiAlciIgJSAoa2V5LCB2YWx1ZSwpKQorICAgICAgICAg
ICAgICAgIGpzb24uZHVtcCh2YWx1ZSwgZiwgaW5kZW50PTIsIHNvcnRfa2V5cz1UcnVlKQorCisK
K2NsYXNzIExGUGx1Z2luOgorICAgICIiIiBQbHVnaW4gd2hpY2ggaW1wbGVtZW50cyB0aGUgLS1s
ZiAocnVuIGxhc3QtZmFpbGluZykgb3B0aW9uICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNvbmZpZyk6CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisgICAgICAgIGFjdGl2ZV9r
ZXlzID0gJ2xmJywgJ2ZhaWxlZGZpcnN0JworICAgICAgICBzZWxmLmFjdGl2ZSA9IGFueShjb25m
aWcuZ2V0dmFsdWUoa2V5KSBmb3Iga2V5IGluIGFjdGl2ZV9rZXlzKQorICAgICAgICBzZWxmLmxh
c3RmYWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwge30pCisgICAg
ICAgIHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID0gTm9uZQorCisgICAgZGVmIHB5dGVz
dF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5hY3RpdmU6
CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQ6CisgICAg
ICAgICAgICAgICAgbW9kZSA9ICJydW4gYWxsIChubyByZWNvcmRlZCBmYWlsdXJlcykiCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG5vdW4gPSAnZmFpbHVyZScgaWYgc2VsZi5f
cHJldmlvdXNseV9mYWlsZWRfY291bnQgPT0gMSBlbHNlICdmYWlsdXJlcycKKyAgICAgICAgICAg
ICAgICBzdWZmaXggPSAiIGZpcnN0IiBpZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgiZmFpbGVkZmly
c3QiKSBlbHNlICIiCisgICAgICAgICAgICAgICAgbW9kZSA9ICJyZXJ1biBwcmV2aW91cyB7Y291
bnR9IHtub3VufXtzdWZmaXh9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGNvdW50PXNl
bGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50LCBzdWZmaXg9c3VmZml4LCBub3VuPW5vdW4KKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4gInJ1bi1sYXN0LWZhaWx1cmU6ICVz
IiAlIG1vZGUKKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0
KToKKyAgICAgICAgaWYgKHJlcG9ydC53aGVuID09ICdjYWxsJyBhbmQgcmVwb3J0LnBhc3NlZCkg
b3IgcmVwb3J0LnNraXBwZWQ6CisgICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWQucG9wKHJlcG9y
dC5ub2RlaWQsIE5vbmUpCisgICAgICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKKyAgICAgICAgICAg
IHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9IFRydWUKKworICAgIGRlZiBweXRlc3Rf
Y29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICBwYXNzZWQgPSByZXBvcnQub3V0
Y29tZSBpbiAoJ3Bhc3NlZCcsICdza2lwcGVkJykKKyAgICAgICAgaWYgcGFzc2VkOgorICAgICAg
ICAgICAgaWYgcmVwb3J0Lm5vZGVpZCBpbiBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICAg
ICAgc2VsZi5sYXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkKQorICAgICAgICAgICAgICAgIHNl
bGYubGFzdGZhaWxlZC51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgIChpdGVtLm5vZGVpZCwg
VHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVwb3J0LnJlc3VsdCkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9
IFRydWUKKworICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmLCBzZXNz
aW9uLCBjb25maWcsIGl0ZW1zKToKKyAgICAgICAgaWYgc2VsZi5hY3RpdmUgYW5kIHNlbGYubGFz
dGZhaWxlZDoKKyAgICAgICAgICAgIHByZXZpb3VzbHlfZmFpbGVkID0gW10KKyAgICAgICAgICAg
IHByZXZpb3VzbHlfcGFzc2VkID0gW10KKyAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgor
ICAgICAgICAgICAgICAgIGlmIGl0ZW0ubm9kZWlkIGluIHNlbGYubGFzdGZhaWxlZDoKKyAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNseV9mYWlsZWQuYXBwZW5kKGl0ZW0pCisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseV9wYXNzZWQuYXBwZW5k
KGl0ZW0pCisgICAgICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9IGxlbihw
cmV2aW91c2x5X2ZhaWxlZCkKKyAgICAgICAgICAgIGlmIG5vdCBwcmV2aW91c2x5X2ZhaWxlZDoK
KyAgICAgICAgICAgICAgICAjIHJ1bm5pbmcgYSBzdWJzZXQgb2YgYWxsIHRlc3RzIHdpdGggcmVj
b3JkZWQgZmFpbHVyZXMgb3V0c2lkZQorICAgICAgICAgICAgICAgICMgb2YgdGhlIHNldCBvZiB0
ZXN0cyBjdXJyZW50bHkgZXhlY3V0aW5nCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgibGYiKToKKyAgICAgICAgICAgICAgICBpdGVt
c1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkCisgICAgICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0
ZXN0X2Rlc2VsZWN0ZWQoaXRlbXM9cHJldmlvdXNseV9wYXNzZWQpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGl0ZW1zWzpdID0gcHJldmlvdXNseV9mYWlsZWQgKyBwcmV2aW91
c2x5X3Bhc3NlZAorCisgICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlbGYsIHNlc3Npb24p
OgorICAgICAgICBjb25maWcgPSBzZWxmLmNvbmZpZworICAgICAgICBpZiBjb25maWcuZ2V0dmFs
dWUoImNhY2hlc2hvdyIpIG9yIGhhc2F0dHIoY29uZmlnLCAic2xhdmVpbnB1dCIpOgorICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgc2F2ZWRfbGFzdGZhaWxlZCA9IGNvbmZpZy5jYWNoZS5n
ZXQoImNhY2hlL2xhc3RmYWlsZWQiLCB7fSkKKyAgICAgICAgaWYgc2F2ZWRfbGFzdGZhaWxlZCAh
PSBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICBjb25maWcuY2FjaGUuc2V0KCJjYWNoZS9s
YXN0ZmFpbGVkIiwgc2VsZi5sYXN0ZmFpbGVkKQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgIGdyb3Vw
LmFkZG9wdGlvbigKKyAgICAgICAgJy0tbGYnLCAnLS1sYXN0LWZhaWxlZCcsIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlc3Q9ImxmIiwKKyAgICAgICAgaGVscD0icmVydW4gb25seSB0aGUgdGVzdHMg
dGhhdCBmYWlsZWQgIgorICAgICAgICAgICAgICJhdCB0aGUgbGFzdCBydW4gKG9yIGFsbCBpZiBu
b25lIGZhaWxlZCkiKQorICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgJy0tZmYnLCAnLS1m
YWlsZWQtZmlyc3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJmYWlsZWRmaXJzdCIsCisg
ICAgICAgIGhlbHA9InJ1biBhbGwgdGVzdHMgYnV0IHJ1biB0aGUgbGFzdCBmYWlsdXJlcyBmaXJz
dC4gICIKKyAgICAgICAgICAgICAiVGhpcyBtYXkgcmUtb3JkZXIgdGVzdHMgYW5kIHRodXMgbGVh
ZCB0byAiCisgICAgICAgICAgICAgInJlcGVhdGVkIGZpeHR1cmUgc2V0dXAvdGVhcmRvd24iKQor
ICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgJy0tY2FjaGUtc2hvdycsIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlc3Q9ImNhY2hlc2hvdyIsCisgICAgICAgIGhlbHA9InNob3cgY2FjaGUgY29u
dGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVjdGlvbiBvciB0ZXN0cyIpCisgICAgZ3JvdXAuYWRk
b3B0aW9uKAorICAgICAgICAnLS1jYWNoZS1jbGVhcicsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRl
c3Q9ImNhY2hlY2xlYXIiLAorICAgICAgICBoZWxwPSJyZW1vdmUgYWxsIGNhY2hlIGNvbnRlbnRz
IGF0IHN0YXJ0IG9mIHRlc3QgcnVuLiIpCisgICAgcGFyc2VyLmFkZGluaSgKKyAgICAgICAgImNh
Y2hlX2RpciIsIGRlZmF1bHQ9Jy5jYWNoZScsCisgICAgICAgIGhlbHA9ImNhY2hlIGRpcmVjdG9y
eSBwYXRoLiIpCisKKworZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKKyAgICBpZiBj
b25maWcub3B0aW9uLmNhY2hlc2hvdzoKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0
IHdyYXBfc2Vzc2lvbgorICAgICAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgY2FjaGVz
aG93KQorCisKK0BweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKK2RlZiBweXRlc3RfY29u
ZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLmNhY2hlID0gQ2FjaGUoY29uZmlnKQorICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKExGUGx1Z2luKGNvbmZpZyksICJsZnBsdWdpbiIp
CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2FjaGUocmVxdWVzdCk6CisgICAgIiIiCisgICAg
UmV0dXJuIGEgY2FjaGUgb2JqZWN0IHRoYXQgY2FuIHBlcnNpc3Qgc3RhdGUgYmV0d2VlbiB0ZXN0
aW5nIHNlc3Npb25zLgorCisgICAgY2FjaGUuZ2V0KGtleSwgZGVmYXVsdCkKKyAgICBjYWNoZS5z
ZXQoa2V5LCB2YWx1ZSkKKworICAgIEtleXMgbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1
ZSwgd2hlcmUgdGhlIGZpcnN0IHBhcnQgaXMgdXN1YWxseSB0aGUKKyAgICBuYW1lIG9mIHlvdXIg
cGx1Z2luIG9yIGFwcGxpY2F0aW9uIHRvIGF2b2lkIGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1
c2Vycy4KKworICAgIFZhbHVlcyBjYW4gYmUgYW55IG9iamVjdCBoYW5kbGVkIGJ5IHRoZSBqc29u
IHN0ZGxpYiBtb2R1bGUuCisgICAgIiIiCisgICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLmNhY2hl
CisKKworZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZyk6CisgICAgaWYgY29uZmlnLm9w
dGlvbi52ZXJib3NlOgorICAgICAgICByZWxwYXRoID0gcHkucGF0aC5sb2NhbCgpLmJlc3RyZWxw
YXRoKGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIpCisgICAgICAgIHJldHVybiAiY2FjaGVkaXI6ICVz
IiAlIHJlbHBhdGgKKworCitkZWYgY2FjaGVzaG93KGNvbmZpZywgc2Vzc2lvbik6CisgICAgZnJv
bSBwcHJpbnQgaW1wb3J0IHBwcmludAorICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKQor
ICAgIHR3LmxpbmUoImNhY2hlZGlyOiAiICsgc3RyKGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIpKQor
ICAgIGlmIG5vdCBjb25maWcuY2FjaGUuX2NhY2hlZGlyLmNoZWNrKCk6CisgICAgICAgIHR3Lmxp
bmUoImNhY2hlIGlzIGVtcHR5IikKKyAgICAgICAgcmV0dXJuIDAKKyAgICBkdW1teSA9IG9iamVj
dCgpCisgICAgYmFzZWRpciA9IGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIKKyAgICB2ZGlyID0gYmFz
ZWRpci5qb2luKCJ2IikKKyAgICB0dy5zZXAoIi0iLCAiY2FjaGUgdmFsdWVzIikKKyAgICBmb3Ig
dmFscGF0aCBpbiBzb3J0ZWQodmRpci52aXNpdChsYW1iZGEgeDogeC5pc2ZpbGUoKSkpOgorICAg
ICAgICBrZXkgPSB2YWxwYXRoLnJlbHRvKHZkaXIpLnJlcGxhY2UodmFscGF0aC5zZXAsICIvIikK
KyAgICAgICAgdmFsID0gY29uZmlnLmNhY2hlLmdldChrZXksIGR1bW15KQorICAgICAgICBpZiB2
YWwgaXMgZHVtbXk6CisgICAgICAgICAgICB0dy5saW5lKCIlcyBjb250YWlucyB1bnJlYWRhYmxl
IGNvbnRlbnQsICIKKyAgICAgICAgICAgICAgICAgICAgIndpbGwgYmUgaWdub3JlZCIgJSBrZXkp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0dy5saW5lKCIlcyBjb250YWluczoiICUga2V5
KQorICAgICAgICAgICAgc3RyZWFtID0gcHkuaW8uVGV4dElPKCkKKyAgICAgICAgICAgIHBwcmlu
dCh2YWwsIHN0cmVhbT1zdHJlYW0pCisgICAgICAgICAgICBmb3IgbGluZSBpbiBzdHJlYW0uZ2V0
dmFsdWUoKS5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICAgICAgdHcubGluZSgiICAiICsgbGlu
ZSkKKworICAgIGRkaXIgPSBiYXNlZGlyLmpvaW4oImQiKQorICAgIGlmIGRkaXIuaXNkaXIoKSBh
bmQgZGRpci5saXN0ZGlyKCk6CisgICAgICAgIHR3LnNlcCgiLSIsICJjYWNoZSBkaXJlY3Rvcmll
cyIpCisgICAgICAgIGZvciBwIGluIHNvcnRlZChiYXNlZGlyLmpvaW4oImQiKS52aXNpdCgpKToK
KyAgICAgICAgICAgICMgaWYgcC5jaGVjayhkaXI9MSk6CisgICAgICAgICAgICAjICAgIHByaW50
KCIlcy8iICUgcC5yZWx0byhiYXNlZGlyKSkKKyAgICAgICAgICAgIGlmIHAuaXNmaWxlKCk6Cisg
ICAgICAgICAgICAgICAga2V5ID0gcC5yZWx0byhiYXNlZGlyKQorICAgICAgICAgICAgICAgIHR3
LmxpbmUoIiVzIGlzIGEgZmlsZSBvZiBsZW5ndGggJWQiICUgKAorICAgICAgICAgICAgICAgICAg
ICAgICAga2V5LCBwLnNpemUoKSkpCisgICAgcmV0dXJuIDAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvY2FwdHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMmViZTM4YzhjMDkwMjg2Yjc3YzczOWIzMmI2MjAzMDI5NGM3NTI0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYXB0dXJlLnB5CkBAIC0wLDAgKzEs
NjgzIEBACisiIiIKK3Blci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nIG1lY2hhbmlzbS4K
KworIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IGNvbnRleHRsaWIK
K2ltcG9ydCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IGlvCitmcm9tIGlvIGltcG9ydCBVbnN1cHBv
cnRlZE9wZXJhdGlvbgorZnJvbSB0ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5RmlsZQorCitpbXBv
cnQgc2l4CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBDYXB0dXJl
SU8KKworCitwYXRjaHN5c2RpY3QgPSB7MDogJ3N0ZGluJywgMTogJ3N0ZG91dCcsIDI6ICdzdGRl
cnInfQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgIGdyb3VwLl9hZGRvcHRpb24oCisgICAgICAgICct
LWNhcHR1cmUnLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgZGVmYXVsdD0iZmQiIGlmIGhhc2F0
dHIob3MsICJkdXAiKSBlbHNlICJzeXMiLAorICAgICAgICBtZXRhdmFyPSJtZXRob2QiLCBjaG9p
Y2VzPVsnZmQnLCAnc3lzJywgJ25vJ10sCisgICAgICAgIGhlbHA9InBlci10ZXN0IGNhcHR1cmlu
ZyBtZXRob2Q6IG9uZSBvZiBmZHxzeXN8bm8uIikKKyAgICBncm91cC5fYWRkb3B0aW9uKAorICAg
ICAgICAnLXMnLCBhY3Rpb249InN0b3JlX2NvbnN0IiwgY29uc3Q9Im5vIiwgZGVzdD0iY2FwdHVy
ZSIsCisgICAgICAgIGhlbHA9InNob3J0Y3V0IGZvciAtLWNhcHR1cmU9bm8uIikKKworCitAcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgcHl0ZXN0X2xvYWRfaW5pdGlhbF9j
b25mdGVzdHMoZWFybHlfY29uZmlnLCBwYXJzZXIsIGFyZ3MpOgorICAgIG5zID0gZWFybHlfY29u
ZmlnLmtub3duX2FyZ3NfbmFtZXNwYWNlCisgICAgaWYgbnMuY2FwdHVyZSA9PSAiZmQiOgorICAg
ICAgICBfcHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3lzLnN0ZG91dCkKKyAgICBf
Y29sb3JhbWFfd29ya2Fyb3VuZCgpCisgICAgX3JlYWRsaW5lX3dvcmthcm91bmQoKQorICAgIHBs
dWdpbm1hbmFnZXIgPSBlYXJseV9jb25maWcucGx1Z2lubWFuYWdlcgorICAgIGNhcG1hbiA9IENh
cHR1cmVNYW5hZ2VyKG5zLmNhcHR1cmUpCisgICAgcGx1Z2lubWFuYWdlci5yZWdpc3RlcihjYXBt
YW4sICJjYXB0dXJlbWFuYWdlciIpCisKKyAgICAjIG1ha2Ugc3VyZSB0aGF0IGNhcHR1cmVtYW5h
Z2VyIGlzIHByb3Blcmx5IHJlc2V0IGF0IGZpbmFsIHNodXRkb3duCisgICAgZWFybHlfY29uZmln
LmFkZF9jbGVhbnVwKGNhcG1hbi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcpCisKKyAgICAjIG1ha2Ug
c3VyZSBsb2dnaW5nIGRvZXMgbm90IHJhaXNlIGV4Y2VwdGlvbnMgYXQgdGhlIGVuZAorICAgIGRl
ZiBzaWxlbmNlX2xvZ2dpbmdfYXRfc2h1dGRvd24oKToKKyAgICAgICAgaWYgImxvZ2dpbmciIGlu
IHN5cy5tb2R1bGVzOgorICAgICAgICAgICAgc3lzLm1vZHVsZXNbImxvZ2dpbmciXS5yYWlzZUV4
Y2VwdGlvbnMgPSBGYWxzZQorICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChzaWxlbmNlX2xv
Z2dpbmdfYXRfc2h1dGRvd24pCisKKyAgICAjIGZpbmFsbHkgdHJpZ2dlciBjb25mdGVzdCBsb2Fk
aW5nIGJ1dCB3aGlsZSBjYXB0dXJpbmcgKGlzc3VlOTMpCisgICAgY2FwbWFuLnN0YXJ0X2dsb2Jh
bF9jYXB0dXJpbmcoKQorICAgIG91dGNvbWUgPSB5aWVsZAorICAgIG91dCwgZXJyID0gY2FwbWFu
LnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgIGlmIG91dGNvbWUuZXhjaW5mbyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCisgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoZXJyKQorCisKK2NsYXNzIENhcHR1cmVNYW5hZ2VyOgorICAgICIiIgorICAgIENhcHR1
cmUgcGx1Z2luLCBtYW5hZ2VzIHRoYXQgdGhlIGFwcHJvcHJpYXRlIGNhcHR1cmUgbWV0aG9kIGlz
IGVuYWJsZWQvZGlzYWJsZWQgZHVyaW5nIGNvbGxlY3Rpb24gYW5kIGVhY2gKKyAgICB0ZXN0IHBo
YXNlIChzZXR1cCwgY2FsbCwgdGVhcmRvd24pLiBBZnRlciBlYWNoIG9mIHRob3NlIHBvaW50cywg
dGhlIGNhcHR1cmVkIG91dHB1dCBpcyBvYnRhaW5lZCBhbmQKKyAgICBhdHRhY2hlZCB0byB0aGUg
Y29sbGVjdGlvbi9ydW50ZXN0IHJlcG9ydC4KKworICAgIFRoZXJlIGFyZSB0d28gbGV2ZWxzIG9m
IGNhcHR1cmU6CisgICAgKiBnbG9iYWw6IHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQg
Y2FuIGJlIHN1cHByZXNzZWQgYnkgdGhlIGBgLXNgYCBvcHRpb24uIFRoaXMgaXMgYWx3YXlzIGVu
YWJsZWQvZGlzYWJsZWQKKyAgICAgIGR1cmluZyBjb2xsZWN0aW9uIGFuZCBlYWNoIHRlc3QgcGhh
c2UuCisgICAgKiBmaXh0dXJlOiB3aGVuIGEgdGVzdCBmdW5jdGlvbiBvciBvbmUgb2YgaXRzIGZp
eHR1cmUgZGVwZW5kIG9uIHRoZSBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCBmaXh0dXJlcy4gSW4g
dGhpcworICAgICAgY2FzZSBzcGVjaWFsIGhhbmRsaW5nIGlzIG5lZWRlZCB0byBlbnN1cmUgdGhl
IGZpeHR1cmVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBnbG9iYWwgY2FwdHVyZS4KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2QpOgorICAgICAgICBzZWxmLl9tZXRo
b2QgPSBtZXRob2QKKyAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IE5vbmUKKworICAg
IGRlZiBfZ2V0Y2FwdHVyZShzZWxmLCBtZXRob2QpOgorICAgICAgICBpZiBtZXRob2QgPT0gImZk
IjoKKyAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBD
YXB0dXJlPUZEQ2FwdHVyZSkKKyAgICAgICAgZWxpZiBtZXRob2QgPT0gInN5cyI6CisgICAgICAg
ICAgICByZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1UcnVlLCBlcnI9VHJ1ZSwgQ2FwdHVyZT1TeXND
YXB0dXJlKQorICAgICAgICBlbGlmIG1ldGhvZCA9PSAibm8iOgorICAgICAgICAgICAgcmV0dXJu
IE11bHRpQ2FwdHVyZShvdXQ9RmFsc2UsIGVycj1GYWxzZSwgaW5fPUZhbHNlKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBjYXB0dXJpbmcgbWV0
aG9kOiAlciIgJSBtZXRob2QpCisKKyAgICBkZWYgc3RhcnRfZ2xvYmFsX2NhcHR1cmluZyhzZWxm
KToKKyAgICAgICAgYXNzZXJ0IHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcgaXMgTm9uZQorICAgICAg
ICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gc2VsZi5fZ2V0Y2FwdHVyZShzZWxmLl9tZXRob2Qp
CisgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcuc3RhcnRfY2FwdHVyaW5nKCkKKworICAg
IGRlZiBzdG9wX2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2dsb2Jh
bF9jYXB0dXJpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVy
aW5nLnBvcF9vdXRlcnJfdG9fb3JpZygpCisgICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVy
aW5nLnN0b3BfY2FwdHVyaW5nKCkKKyAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcg
PSBOb25lCisKKyAgICBkZWYgcmVzdW1lX2dsb2JhbF9jYXB0dXJlKHNlbGYpOgorICAgICAgICBz
ZWxmLl9nbG9iYWxfY2FwdHVyaW5nLnJlc3VtZV9jYXB0dXJpbmcoKQorCisgICAgZGVmIHN1c3Bl
bmRfZ2xvYmFsX2NhcHR1cmUoc2VsZiwgaXRlbT1Ob25lLCBpbl89RmFsc2UpOgorICAgICAgICBp
ZiBpdGVtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5kZWFjdGl2YXRlX2ZpeHR1cmUo
aXRlbSkKKyAgICAgICAgY2FwID0gZ2V0YXR0cihzZWxmLCAiX2dsb2JhbF9jYXB0dXJpbmciLCBO
b25lKQorICAgICAgICBpZiBjYXAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgb3V0ZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgICAgICBjYXAuc3VzcGVuZF9jYXB0dXJpbmcoaW5fPWluXykKKyAgICAg
ICAgICAgIHJldHVybiBvdXRlcnIKKworICAgIGRlZiBhY3RpdmF0ZV9maXh0dXJlKHNlbGYsIGl0
ZW0pOgorICAgICAgICAiIiJJZiB0aGUgY3VycmVudCBpdGVtIGlzIHVzaW5nIGBgY2Fwc3lzYGAg
b3IgYGBjYXBmZGBgLCBhY3RpdmF0ZSB0aGVtIHNvIHRoZXkgdGFrZSBwcmVjZWRlbmNlIG92ZXIK
KyAgICAgICAgdGhlIGdsb2JhbCBjYXB0dXJlLgorICAgICAgICAiIiIKKyAgICAgICAgZml4dHVy
ZSA9IGdldGF0dHIoaXRlbSwgIl9jYXB0dXJlX2ZpeHR1cmUiLCBOb25lKQorICAgICAgICBpZiBm
aXh0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZml4dHVyZS5fc3RhcnQoKQorCisgICAg
ZGVmIGRlYWN0aXZhdGVfZml4dHVyZShzZWxmLCBpdGVtKToKKyAgICAgICAgIiIiRGVhY3RpdmF0
ZXMgdGhlIGBgY2Fwc3lzYGAgb3IgYGBjYXBmZGBgIGZpeHR1cmUgb2YgdGhpcyBpdGVtLCBpZiBh
bnkuIiIiCisgICAgICAgIGZpeHR1cmUgPSBnZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0dXJl
IiwgTm9uZSkKKyAgICAgICAgaWYgZml4dHVyZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZp
eHR1cmUuY2xvc2UoKQorCisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQor
ICAgIGRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChzZWxmLCBjb2xsZWN0b3IpOgorICAg
ICAgICBpZiBpc2luc3RhbmNlKGNvbGxlY3RvciwgcHl0ZXN0LkZpbGUpOgorICAgICAgICAgICAg
c2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxk
CisgICAgICAgICAgICBvdXQsIGVyciA9IHNlbGYuc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisg
ICAgICAgICAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgICAgICAgICAgaWYgb3V0
OgorICAgICAgICAgICAgICAgIHJlcC5zZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCBzdGRvdXQi
LCBvdXQpKQorICAgICAgICAgICAgaWYgZXJyOgorICAgICAgICAgICAgICAgIHJlcC5zZWN0aW9u
cy5hcHBlbmQoKCJDYXB0dXJlZCBzdGRlcnIiLCBlcnIpKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgeWllbGQKKworICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAg
ICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoc2VsZiwgaXRlbSk6CisgICAgICAgIHNlbGYucmVz
dW1lX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgIyBubyBuZWVkIHRvIGFjdGl2YXRlIGEgY2Fw
dHVyZSBmaXh0dXJlIGJlY2F1c2UgdGhleSBhY3RpdmF0ZSB0aGVtc2VsdmVzIGR1cmluZyBjcmVh
dGlvbjsgdGhpcworICAgICAgICAjIG9ubHkgbWFrZXMgc2Vuc2Ugd2hlbiBhIGZpeHR1cmUgdXNl
cyBhIGNhcHR1cmUgZml4dHVyZSwgb3RoZXJ3aXNlIHRoZSBjYXB0dXJlIGZpeHR1cmUgd2lsbAor
ICAgICAgICAjIGJlIGFjdGl2YXRlZCBkdXJpbmcgcHl0ZXN0X3J1bnRlc3RfY2FsbAorICAgICAg
ICB5aWVsZAorICAgICAgICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJzZXR1cCIp
CisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVz
dF9ydW50ZXN0X2NhbGwoc2VsZiwgaXRlbSk6CisgICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9j
YXB0dXJlKCkKKyAgICAgICAgIyBpdCBpcyBpbXBvcnRhbnQgdG8gYWN0aXZhdGUgdGhpcyBmaXh0
dXJlIGR1cmluZyB0aGUgY2FsbCBwaGFzZSBzbyBpdCBvdmVyd3JpdGVzIHRoZSAiZ2xvYmFsIgor
ICAgICAgICAjIGNhcHR1cmUKKyAgICAgICAgc2VsZi5hY3RpdmF0ZV9maXh0dXJlKGl0ZW0pCisg
ICAgICAgIHlpZWxkCisgICAgICAgIHNlbGYuc3VzcGVuZF9jYXB0dXJlX2l0ZW0oaXRlbSwgImNh
bGwiKQorCisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBw
eXRlc3RfcnVudGVzdF90ZWFyZG93bihzZWxmLCBpdGVtKToKKyAgICAgICAgc2VsZi5yZXN1bWVf
Z2xvYmFsX2NhcHR1cmUoKQorICAgICAgICBzZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkKKyAg
ICAgICAgeWllbGQKKyAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAidGVh
cmRvd24iKQorCisgICAgQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBw
eXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIGV4Y2luZm8pOgorICAgICAgICBzZWxmLnN0
b3BfZ2xvYmFsX2NhcHR1cmluZygpCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRy
dWUpCisgICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y2luZm8pOgorICAgICAg
ICBzZWxmLnN0b3BfZ2xvYmFsX2NhcHR1cmluZygpCisKKyAgICBkZWYgc3VzcGVuZF9jYXB0dXJl
X2l0ZW0oc2VsZiwgaXRlbSwgd2hlbiwgaW5fPUZhbHNlKToKKyAgICAgICAgb3V0LCBlcnIgPSBz
ZWxmLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaXRlbSwgaW5fPWluXykKKyAgICAgICAgaXRlbS5h
ZGRfcmVwb3J0X3NlY3Rpb24od2hlbiwgInN0ZG91dCIsIG91dCkKKyAgICAgICAgaXRlbS5hZGRf
cmVwb3J0X3NlY3Rpb24od2hlbiwgInN0ZGVyciIsIGVycikKKworCitjYXB0dXJlX2ZpeHR1cmVz
ID0geydjYXBmZCcsICdjYXBmZGJpbmFyeScsICdjYXBzeXMnLCAnY2Fwc3lzYmluYXJ5J30KKwor
CitkZWYgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgbmFtZSk6Cisg
ICAgZml4dHVyZXMgPSBzZXQocmVxdWVzdC5maXh0dXJlbmFtZXMpICYgY2FwdHVyZV9maXh0dXJl
cyAtIHNldCgobmFtZSwpKQorICAgIGlmIGZpeHR1cmVzOgorICAgICAgICBmaXh0dXJlcyA9IHNv
cnRlZChmaXh0dXJlcykKKyAgICAgICAgZml4dHVyZXMgPSBmaXh0dXJlc1swXSBpZiBsZW4oZml4
dHVyZXMpID09IDEgZWxzZSBmaXh0dXJlcworICAgICAgICByYWlzZSByZXF1ZXN0LnJhaXNlZXJy
b3IoCisgICAgICAgICAgICAiY2Fubm90IHVzZSB7MH0gYW5kIHsxfSBhdCB0aGUgc2FtZSB0aW1l
Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgZml4dHVyZXMsIG5hbWUsCisgICAgICAgICAgICAp
LAorICAgICAgICApCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2Fwc3lzKHJlcXVlc3QpOgor
ICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5zdGRvdXQvc3lzLnN0ZGVy
ciBhbmQgbWFrZQorICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJl
YWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscworICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJy
KWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCisgICAgb2Jq
ZWN0cy4KKyAgICAiIiIKKyAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1
ZXN0LCAnY2Fwc3lzJykKKyAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVt
KHJlcXVlc3QsIFN5c0NhcHR1cmUpIGFzIGZpeHR1cmU6CisgICAgICAgIHlpZWxkIGZpeHR1cmUK
KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjYXBzeXNiaW5hcnkocmVxdWVzdCk6CisgICAgIiIi
RW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gc3lzLnN0ZG91dC9zeXMuc3RkZXJyIGFuZCBt
YWtlCisgICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91dGVy
cigpYGAgbWV0aG9kIGNhbGxzCisgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVw
bGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGBieXRlc2BgCisgICAgb2JqZWN0cy4K
KyAgICAiIiIKKyAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCAn
Y2Fwc3lzYmluYXJ5JykKKyAgICAjIEN1cnJlbnRseSwgdGhlIGltcGxlbWVudGF0aW9uIHVzZXMg
dGhlIHB5dGhvbjMgc3BlY2lmaWMgYC5idWZmZXJgCisgICAgIyBwcm9wZXJ0eSBvZiBDYXB0dXJl
SU8uCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6CisgICAgICAgIHJhaXNlIHJlcXVl
c3QucmFpc2VlcnJvcignY2Fwc3lzYmluYXJ5IGlzIG9ubHkgc3VwcG9ydGVkIG9uIHB5dGhvbiAz
JykKKyAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVtKHJlcXVlc3QsIFN5
c0NhcHR1cmVCaW5hcnkpIGFzIGZpeHR1cmU6CisgICAgICAgIHlpZWxkIGZpeHR1cmUKKworCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBjYXBmZChyZXF1ZXN0KToKKyAgICAiIiJFbmFibGUgY2FwdHVy
aW5nIG9mIHdyaXRlcyB0byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKKyAgICBj
YXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZkLnJlYWRvdXRlcnIoKWBgIG1ldGhv
ZCBjYWxscworICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRg
YCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCisgICAgb2JqZWN0cy4KKyAgICAiIiIKKyAg
ICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCAnY2FwZmQnKQorICAg
IGlmIG5vdCBoYXNhdHRyKG9zLCAnZHVwJyk6CisgICAgICAgIHB5dGVzdC5za2lwKCJjYXBmZCBm
aXh0dXJlIG5lZWRzIG9zLmR1cCBmdW5jdGlvbiB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIHRo
aXMgc3lzdGVtIikKKyAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVtKHJl
cXVlc3QsIEZEQ2FwdHVyZSkgYXMgZml4dHVyZToKKyAgICAgICAgeWllbGQgZml4dHVyZQorCisK
K0BweXRlc3QuZml4dHVyZQorZGVmIGNhcGZkYmluYXJ5KHJlcXVlc3QpOgorICAgICIiIkVuYWJs
ZSBjYXB0dXJpbmcgb2Ygd3JpdGUgdG8gZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBtYWtl
CisgICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZGJpbmFyeS5yZWFkb3V0
ZXJyYGAgbWV0aG9kIGNhbGxzCisgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVw
bGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUKKyAgICBgYGJ5dGVzYGAgb2JqZWN0cy4K
KyAgICAiIiIKKyAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCAn
Y2FwZmRiaW5hcnknKQorICAgIGlmIG5vdCBoYXNhdHRyKG9zLCAnZHVwJyk6CisgICAgICAgIHB5
dGVzdC5za2lwKCJjYXBmZGJpbmFyeSBmaXh0dXJlIG5lZWRzIG9zLmR1cCBmdW5jdGlvbiB3aGlj
aCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgc3lzdGVtIikKKyAgICB3aXRoIF9pbnN0YWxsX2Nh
cHR1cmVfZml4dHVyZV9vbl9pdGVtKHJlcXVlc3QsIEZEQ2FwdHVyZUJpbmFyeSkgYXMgZml4dHVy
ZToKKyAgICAgICAgeWllbGQgZml4dHVyZQorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2Vy
CitkZWYgX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgY2FwdHVyZV9j
bGFzcyk6CisgICAgIiIiCisgICAgQ29udGV4dCBtYW5hZ2VyIHdoaWNoIGNyZWF0ZXMgYSBgYENh
cHR1cmVGaXh0dXJlYGAgaW5zdGFuY2UgYW5kICJpbnN0YWxscyIgaXQgb24KKyAgICB0aGUgaXRl
bS9ub2RlIG9mIHRoZSBnaXZlbiByZXF1ZXN0LiBVc2VkIGJ5IGBgY2Fwc3lzYGAgYW5kIGBgY2Fw
ZmRgYC4KKworICAgIFRoZSBDYXB0dXJlRml4dHVyZSBpcyBhZGRlZCBhcyBhdHRyaWJ1dGUgb2Yg
dGhlIGl0ZW0gYmVjYXVzZSBpdCBuZWVkcyB0byBhY2Nlc3NlZAorICAgIGJ5IGBgQ2FwdHVyZU1h
bmFnZXJgYCBkdXJpbmcgaXRzIGBgcHl0ZXN0X3J1bnRlc3RfKmBgIGhvb2tzLgorICAgICIiIgor
ICAgIHJlcXVlc3Qubm9kZS5fY2FwdHVyZV9maXh0dXJlID0gZml4dHVyZSA9IENhcHR1cmVGaXh0
dXJlKGNhcHR1cmVfY2xhc3MsIHJlcXVlc3QpCisgICAgY2FwbWFuYWdlciA9IHJlcXVlc3QuY29u
ZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdjYXB0dXJlbWFuYWdlcicpCisgICAgIyBuZWVk
IHRvIGFjdGl2ZSB0aGlzIGZpeHR1cmUgcmlnaHQgYXdheSBpbiBjYXNlIGl0IGlzIGJlaW5nIHVz
ZWQgYnkgYW5vdGhlciBmaXh0dXJlIChzZXR1cCBwaGFzZSkKKyAgICAjIGlmIHRoaXMgZml4dHVy
ZSBpcyBiZWluZyB1c2VkIG9ubHkgYnkgYSB0ZXN0IGZ1bmN0aW9uIChjYWxsIHBoYXNlKSwgdGhl
biB3ZSB3b3VsZG4ndCBuZWVkIHRoaXMKKyAgICAjIGFjdGl2YXRpb24sIGJ1dCBpdCBkb2Vzbid0
IGh1cnQKKyAgICBjYXBtYW5hZ2VyLmFjdGl2YXRlX2ZpeHR1cmUocmVxdWVzdC5ub2RlKQorICAg
IHlpZWxkIGZpeHR1cmUKKyAgICBmaXh0dXJlLmNsb3NlKCkKKyAgICBkZWwgcmVxdWVzdC5ub2Rl
Ll9jYXB0dXJlX2ZpeHR1cmUKKworCitjbGFzcyBDYXB0dXJlRml4dHVyZToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgY2FwdHVyZWNsYXNzLCByZXF1ZXN0KToKKyAgICAgICAgc2VsZi5jYXB0dXJl
Y2xhc3MgPSBjYXB0dXJlY2xhc3MKKyAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAorCisg
ICAgZGVmIF9zdGFydChzZWxmKToKKyAgICAgICAgc2VsZi5fY2FwdHVyZSA9IE11bHRpQ2FwdHVy
ZShvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDYXB0dXJlPXNlbGYuY2FwdHVyZWNsYXNzKQorICAgICAgICBzZWxmLl9j
YXB0dXJlLnN0YXJ0X2NhcHR1cmluZygpCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAg
IGNhcCA9IHNlbGYuX19kaWN0X18ucG9wKCJfY2FwdHVyZSIsIE5vbmUpCisgICAgICAgIGlmIGNh
cCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX291dGVyciA9IGNhcC5wb3Bfb3V0ZXJy
X3RvX29yaWcoKQorICAgICAgICAgICAgY2FwLnN0b3BfY2FwdHVyaW5nKCkKKworICAgIGRlZiBy
ZWFkb3V0ZXJyKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5f
Y2FwdHVyZS5yZWFkb3V0ZXJyKCkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX291dGVycgorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1h
bmFnZXIKKyAgICBkZWYgZGlzYWJsZWQoc2VsZik6CisgICAgICAgIHNlbGYuX2NhcHR1cmUuc3Vz
cGVuZF9jYXB0dXJpbmcoKQorICAgICAgICBjYXBtYW5hZ2VyID0gc2VsZi5yZXF1ZXN0LmNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVyZW1hbmFnZXInKQorICAgICAgICBjYXBt
YW5hZ2VyLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaXRlbT1Ob25lLCBpbl89RmFsc2UpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBjYXBtYW5hZ2VyLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBzZWxmLl9j
YXB0dXJlLnJlc3VtZV9jYXB0dXJpbmcoKQorCisKK2RlZiBzYWZlX3RleHRfZHVwZmlsZShmLCBt
b2RlLCBkZWZhdWx0X2VuY29kaW5nPSJVVEY4Iik6CisgICAgIiIiIHJldHVybiBhIG9wZW4gdGV4
dCBmaWxlIG9iamVjdCB0aGF0J3MgYSBkdXBsaWNhdGUgb2YgZiBvbiB0aGUKKyAgICAgICAgRkQt
bGV2ZWwgaWYgcG9zc2libGUuCisgICAgIiIiCisgICAgZW5jb2RpbmcgPSBnZXRhdHRyKGYsICJl
bmNvZGluZyIsIE5vbmUpCisgICAgdHJ5OgorICAgICAgICBmZCA9IGYuZmlsZW5vKCkKKyAgICBl
eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBpZiAiYiIgbm90IGluIGdldGF0dHIoZiwgIm1vZGUi
LCAiIikgYW5kIGhhc2F0dHIoZiwgImVuY29kaW5nIik6CisgICAgICAgICAgICAjIHdlIHNlZW0g
dG8gaGF2ZSBhIHRleHQgc3RyZWFtLCBsZXQncyBqdXN0IHVzZSBpdAorICAgICAgICAgICAgcmV0
dXJuIGYKKyAgICBlbHNlOgorICAgICAgICBuZXdmZCA9IG9zLmR1cChmZCkKKyAgICAgICAgaWYg
ImIiIG5vdCBpbiBtb2RlOgorICAgICAgICAgICAgbW9kZSArPSAiYiIKKyAgICAgICAgZiA9IG9z
LmZkb3BlbihuZXdmZCwgbW9kZSwgMCkgICMgbm8gYnVmZmVyaW5nCisgICAgcmV0dXJuIEVuY29k
ZWRGaWxlKGYsIGVuY29kaW5nIG9yIGRlZmF1bHRfZW5jb2RpbmcpCisKKworY2xhc3MgRW5jb2Rl
ZEZpbGUob2JqZWN0KToKKyAgICBlcnJvcnMgPSAic3RyaWN0IiAgIyBwb3NzaWJseSBuZWVkZWQg
YnkgcHkzIGNvZGUgKGlzc3VlNTU1KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJ1ZmZlciwg
ZW5jb2RpbmcpOgorICAgICAgICBzZWxmLmJ1ZmZlciA9IGJ1ZmZlcgorICAgICAgICBzZWxmLmVu
Y29kaW5nID0gZW5jb2RpbmcKKworICAgIGRlZiB3cml0ZShzZWxmLCBvYmopOgorICAgICAgICBp
ZiBpc2luc3RhbmNlKG9iaiwgc2l4LnRleHRfdHlwZSk6CisgICAgICAgICAgICBvYmogPSBvYmou
ZW5jb2RlKHNlbGYuZW5jb2RpbmcsICJyZXBsYWNlIikKKyAgICAgICAgc2VsZi5idWZmZXIud3Jp
dGUob2JqKQorCisgICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZWxpc3QpOgorICAgICAgICBk
YXRhID0gJycuam9pbihsaW5lbGlzdCkKKyAgICAgICAgc2VsZi53cml0ZShkYXRhKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgICIiIkVuc3VyZSB0aGF0IGZp
bGUubmFtZSBpcyBhIHN0cmluZy4iIiIKKyAgICAgICAgcmV0dXJuIHJlcHIoc2VsZi5idWZmZXIp
CisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBnZXRh
dHRyKG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsICJidWZmZXIiKSwgbmFtZSkKKworCitD
YXB0dXJlUmVzdWx0ID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiQ2FwdHVyZVJlc3VsdCIsIFsi
b3V0IiwgImVyciJdKQorCisKK2NsYXNzIE11bHRpQ2FwdHVyZShvYmplY3QpOgorICAgIG91dCA9
IGVyciA9IGluXyA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXQ9VHJ1ZSwgZXJy
PVRydWUsIGluXz1UcnVlLCBDYXB0dXJlPU5vbmUpOgorICAgICAgICBpZiBpbl86CisgICAgICAg
ICAgICBzZWxmLmluXyA9IENhcHR1cmUoMCkKKyAgICAgICAgaWYgb3V0OgorICAgICAgICAgICAg
c2VsZi5vdXQgPSBDYXB0dXJlKDEpCisgICAgICAgIGlmIGVycjoKKyAgICAgICAgICAgIHNlbGYu
ZXJyID0gQ2FwdHVyZSgyKQorCisgICAgZGVmIHN0YXJ0X2NhcHR1cmluZyhzZWxmKToKKyAgICAg
ICAgaWYgc2VsZi5pbl86CisgICAgICAgICAgICBzZWxmLmluXy5zdGFydCgpCisgICAgICAgIGlm
IHNlbGYub3V0OgorICAgICAgICAgICAgc2VsZi5vdXQuc3RhcnQoKQorICAgICAgICBpZiBzZWxm
LmVycjoKKyAgICAgICAgICAgIHNlbGYuZXJyLnN0YXJ0KCkKKworICAgIGRlZiBwb3Bfb3V0ZXJy
X3RvX29yaWcoc2VsZik6CisgICAgICAgICIiIiBwb3AgY3VycmVudCBzbmFwc2hvdCBvdXQvZXJy
IGNhcHR1cmUgYW5kIGZsdXNoIHRvIG9yaWcgc3RyZWFtcy4gIiIiCisgICAgICAgIG91dCwgZXJy
ID0gc2VsZi5yZWFkb3V0ZXJyKCkKKyAgICAgICAgaWYgb3V0OgorICAgICAgICAgICAgc2VsZi5v
dXQud3JpdGVvcmcob3V0KQorICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICBzZWxmLmVyci53
cml0ZW9yZyhlcnIpCisgICAgICAgIHJldHVybiBvdXQsIGVycgorCisgICAgZGVmIHN1c3BlbmRf
Y2FwdHVyaW5nKHNlbGYsIGluXz1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYub3V0OgorICAgICAg
ICAgICAgc2VsZi5vdXQuc3VzcGVuZCgpCisgICAgICAgIGlmIHNlbGYuZXJyOgorICAgICAgICAg
ICAgc2VsZi5lcnIuc3VzcGVuZCgpCisgICAgICAgIGlmIGluXyBhbmQgc2VsZi5pbl86CisgICAg
ICAgICAgICBzZWxmLmluXy5zdXNwZW5kKCkKKyAgICAgICAgICAgIHNlbGYuX2luX3N1c3BlbmRl
ZCA9IFRydWUKKworICAgIGRlZiByZXN1bWVfY2FwdHVyaW5nKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLm91dDoKKyAgICAgICAgICAgIHNlbGYub3V0LnJlc3VtZSgpCisgICAgICAgIGlmIHNlbGYu
ZXJyOgorICAgICAgICAgICAgc2VsZi5lcnIucmVzdW1lKCkKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAiX2luX3N1c3BlbmRlZCIpOgorICAgICAgICAgICAgc2VsZi5pbl8ucmVzdW1lKCkKKyAg
ICAgICAgICAgIGRlbCBzZWxmLl9pbl9zdXNwZW5kZWQKKworICAgIGRlZiBzdG9wX2NhcHR1cmlu
ZyhzZWxmKToKKyAgICAgICAgIiIiIHN0b3AgY2FwdHVyaW5nIGFuZCByZXNldCBjYXB0dXJpbmcg
c3RyZWFtcyAiIiIKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX3Jlc2V0Jyk6CisgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3YXMgYWxyZWFkeSBzdG9wcGVkIikKKyAgICAgICAgc2Vs
Zi5fcmVzZXQgPSBUcnVlCisgICAgICAgIGlmIHNlbGYub3V0OgorICAgICAgICAgICAgc2VsZi5v
dXQuZG9uZSgpCisgICAgICAgIGlmIHNlbGYuZXJyOgorICAgICAgICAgICAgc2VsZi5lcnIuZG9u
ZSgpCisgICAgICAgIGlmIHNlbGYuaW5fOgorICAgICAgICAgICAgc2VsZi5pbl8uZG9uZSgpCisK
KyAgICBkZWYgcmVhZG91dGVycihzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBzbmFwc2hvdCB1
bmljb2RlIHZhbHVlIG9mIHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5ncy4gIiIiCisgICAgICAgIHJl
dHVybiBDYXB0dXJlUmVzdWx0KHNlbGYub3V0LnNuYXAoKSBpZiBzZWxmLm91dCBpcyBub3QgTm9u
ZSBlbHNlICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmVyci5zbmFwKCkg
aWYgc2VsZi5lcnIgaXMgbm90IE5vbmUgZWxzZSAiIikKKworCitjbGFzcyBOb0NhcHR1cmU6Cisg
ICAgX19pbml0X18gPSBzdGFydCA9IGRvbmUgPSBzdXNwZW5kID0gcmVzdW1lID0gbGFtYmRhICph
cmdzOiBOb25lCisKKworY2xhc3MgRkRDYXB0dXJlQmluYXJ5OgorICAgICIiIkNhcHR1cmUgSU8g
dG8vZnJvbSBhIGdpdmVuIG9zLWxldmVsIGZpbGVkZXNjcmlwdG9yLgorCisgICAgc25hcCgpIHBy
b2R1Y2VzIGBieXRlc2AKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJnZXRm
ZCwgdG1wZmlsZT1Ob25lKToKKyAgICAgICAgc2VsZi50YXJnZXRmZCA9IHRhcmdldGZkCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYudGFyZ2V0ZmRfc2F2ZSA9IG9zLmR1cChzZWxmLnRh
cmdldGZkKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc3RhcnQg
PSBsYW1iZGE6IE5vbmUKKyAgICAgICAgICAgIHNlbGYuZG9uZSA9IGxhbWJkYTogTm9uZQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgaWYgdGFyZ2V0ZmQgPT0gMDoKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgbm90IHRtcGZpbGUsICJjYW5ub3Qgc2V0IHRtcGZpbGUgd2l0aCBzdGRpbiIKKyAg
ICAgICAgICAgICAgICB0bXBmaWxlID0gb3Blbihvcy5kZXZudWxsLCAiciIpCisgICAgICAgICAg
ICAgICAgc2VsZi5zeXNjYXB0dXJlID0gU3lzQ2FwdHVyZSh0YXJnZXRmZCkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgaWYgdG1wZmlsZSBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICBmID0gVGVtcG9yYXJ5RmlsZSgpCisgICAgICAgICAgICAgICAgICAgIHdpdGggZjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRtcGZpbGUgPSBzYWZlX3RleHRfZHVwZmlsZShmLCBt
b2RlPSJ3YisiKQorICAgICAgICAgICAgICAgIGlmIHRhcmdldGZkIGluIHBhdGNoc3lzZGljdDoK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zeXNjYXB0dXJlID0gU3lzQ2FwdHVyZSh0YXJnZXRm
ZCwgdG1wZmlsZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBz
ZWxmLnN5c2NhcHR1cmUgPSBOb0NhcHR1cmUoKQorICAgICAgICAgICAgc2VsZi50bXBmaWxlID0g
dG1wZmlsZQorICAgICAgICAgICAgc2VsZi50bXBmaWxlX2ZkID0gdG1wZmlsZS5maWxlbm8oKQor
CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxGRENhcHR1cmUgJXMg
b2xkZmQ9JXM+IiAlIChzZWxmLnRhcmdldGZkLCBzZWxmLnRhcmdldGZkX3NhdmUpCisKKyAgICBk
ZWYgc3RhcnQoc2VsZik6CisgICAgICAgICIiIiBTdGFydCBjYXB0dXJpbmcgb24gdGFyZ2V0ZmQg
dXNpbmcgbWVtb3JpemVkIHRtcGZpbGUuICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBv
cy5mc3RhdChzZWxmLnRhcmdldGZkX3NhdmUpCisgICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJy
b3IsIE9TRXJyb3IpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic2F2ZWQgZmlsZWRl
c2NyaXB0b3Igbm90IHZhbGlkIGFueW1vcmUiKQorICAgICAgICBvcy5kdXAyKHNlbGYudG1wZmls
ZV9mZCwgc2VsZi50YXJnZXRmZCkKKyAgICAgICAgc2VsZi5zeXNjYXB0dXJlLnN0YXJ0KCkKKwor
ICAgIGRlZiBzbmFwKHNlbGYpOgorICAgICAgICBzZWxmLnRtcGZpbGUuc2VlaygwKQorICAgICAg
ICByZXMgPSBzZWxmLnRtcGZpbGUucmVhZCgpCisgICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDAp
CisgICAgICAgIHNlbGYudG1wZmlsZS50cnVuY2F0ZSgpCisgICAgICAgIHJldHVybiByZXMKKwor
ICAgIGRlZiBkb25lKHNlbGYpOgorICAgICAgICAiIiIgc3RvcCBjYXB0dXJpbmcsIHJlc3RvcmUg
c3RyZWFtcywgcmV0dXJuIG9yaWdpbmFsIGNhcHR1cmUgZmlsZSwKKyAgICAgICAgc2Vla2VkIHRv
IHBvc2l0aW9uIHplcm8uICIiIgorICAgICAgICB0YXJnZXRmZF9zYXZlID0gc2VsZi5fX2RpY3Rf
Xy5wb3AoInRhcmdldGZkX3NhdmUiKQorICAgICAgICBvcy5kdXAyKHRhcmdldGZkX3NhdmUsIHNl
bGYudGFyZ2V0ZmQpCisgICAgICAgIG9zLmNsb3NlKHRhcmdldGZkX3NhdmUpCisgICAgICAgIHNl
bGYuc3lzY2FwdHVyZS5kb25lKCkKKyAgICAgICAgc2VsZi50bXBmaWxlLmNsb3NlKCkKKworICAg
IGRlZiBzdXNwZW5kKHNlbGYpOgorICAgICAgICBzZWxmLnN5c2NhcHR1cmUuc3VzcGVuZCgpCisg
ICAgICAgIG9zLmR1cDIoc2VsZi50YXJnZXRmZF9zYXZlLCBzZWxmLnRhcmdldGZkKQorCisgICAg
ZGVmIHJlc3VtZShzZWxmKToKKyAgICAgICAgc2VsZi5zeXNjYXB0dXJlLnJlc3VtZSgpCisgICAg
ICAgIG9zLmR1cDIoc2VsZi50bXBmaWxlX2ZkLCBzZWxmLnRhcmdldGZkKQorCisgICAgZGVmIHdy
aXRlb3JnKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiIgd3JpdGUgdG8gb3JpZ2luYWwgZmlsZSBk
ZXNjcmlwdG9yLiAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzaXgudGV4dF90eXBl
KToKKyAgICAgICAgICAgIGRhdGEgPSBkYXRhLmVuY29kZSgidXRmOCIpICAjIFhYWCB1c2UgZW5j
b2Rpbmcgb2Ygb3JpZ2luYWwgc3RyZWFtCisgICAgICAgIG9zLndyaXRlKHNlbGYudGFyZ2V0ZmRf
c2F2ZSwgZGF0YSkKKworCitjbGFzcyBGRENhcHR1cmUoRkRDYXB0dXJlQmluYXJ5KToKKyAgICAi
IiJDYXB0dXJlIElPIHRvL2Zyb20gYSBnaXZlbiBvcy1sZXZlbCBmaWxlZGVzY3JpcHRvci4KKwor
ICAgIHNuYXAoKSBwcm9kdWNlcyB0ZXh0CisgICAgIiIiCisgICAgZGVmIHNuYXAoc2VsZik6Cisg
ICAgICAgIHJlcyA9IEZEQ2FwdHVyZUJpbmFyeS5zbmFwKHNlbGYpCisgICAgICAgIGVuYyA9IGdl
dGF0dHIoc2VsZi50bXBmaWxlLCAiZW5jb2RpbmciLCBOb25lKQorICAgICAgICBpZiBlbmMgYW5k
IGlzaW5zdGFuY2UocmVzLCBieXRlcyk6CisgICAgICAgICAgICByZXMgPSBzaXgudGV4dF90eXBl
KHJlcywgZW5jLCAicmVwbGFjZSIpCisgICAgICAgIHJldHVybiByZXMKKworCitjbGFzcyBTeXND
YXB0dXJlOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmZCwgdG1wZmlsZT1Ob25lKToKKyAgICAg
ICAgbmFtZSA9IHBhdGNoc3lzZGljdFtmZF0KKyAgICAgICAgc2VsZi5fb2xkID0gZ2V0YXR0cihz
eXMsIG5hbWUpCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgaWYgdG1wZmlsZSBp
cyBOb25lOgorICAgICAgICAgICAgaWYgbmFtZSA9PSAic3RkaW4iOgorICAgICAgICAgICAgICAg
IHRtcGZpbGUgPSBEb250UmVhZEZyb21JbnB1dCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHRtcGZpbGUgPSBDYXB0dXJlSU8oKQorICAgICAgICBzZWxmLnRtcGZpbGUgPSB0
bXBmaWxlCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIHNldGF0dHIoc3lzLCBzZWxm
Lm5hbWUsIHNlbGYudG1wZmlsZSkKKworICAgIGRlZiBzbmFwKHNlbGYpOgorICAgICAgICByZXMg
PSBzZWxmLnRtcGZpbGUuZ2V0dmFsdWUoKQorICAgICAgICBzZWxmLnRtcGZpbGUuc2VlaygwKQor
ICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQorICAgICAgICByZXR1cm4gcmVzCisKKyAg
ICBkZWYgZG9uZShzZWxmKToKKyAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYubmFtZSwgc2VsZi5f
b2xkKQorICAgICAgICBkZWwgc2VsZi5fb2xkCisgICAgICAgIHNlbGYudG1wZmlsZS5jbG9zZSgp
CisKKyAgICBkZWYgc3VzcGVuZChzZWxmKToKKyAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYubmFt
ZSwgc2VsZi5fb2xkKQorCisgICAgZGVmIHJlc3VtZShzZWxmKToKKyAgICAgICAgc2V0YXR0cihz
eXMsIHNlbGYubmFtZSwgc2VsZi50bXBmaWxlKQorCisgICAgZGVmIHdyaXRlb3JnKHNlbGYsIGRh
dGEpOgorICAgICAgICBzZWxmLl9vbGQud3JpdGUoZGF0YSkKKyAgICAgICAgc2VsZi5fb2xkLmZs
dXNoKCkKKworCitjbGFzcyBTeXNDYXB0dXJlQmluYXJ5KFN5c0NhcHR1cmUpOgorICAgIGRlZiBz
bmFwKHNlbGYpOgorICAgICAgICByZXMgPSBzZWxmLnRtcGZpbGUuYnVmZmVyLmdldHZhbHVlKCkK
KyAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKKyAgICAgICAgc2VsZi50bXBmaWxlLnRydW5j
YXRlKCkKKyAgICAgICAgcmV0dXJuIHJlcworCisKK2NsYXNzIERvbnRSZWFkRnJvbUlucHV0Ogor
ICAgICIiIlRlbXBvcmFyeSBzdHViIGNsYXNzLiAgSWRlYWxseSB3aGVuIHN0ZGluIGlzIGFjY2Vz
c2VkLCB0aGUKKyAgICBjYXB0dXJpbmcgc2hvdWxkIGJlIHR1cm5lZCBvZmYsIHdpdGggcG9zc2li
bHkgYWxsIGRhdGEgY2FwdHVyZWQKKyAgICBzbyBmYXIgc2VudCB0byB0aGUgc2NyZWVuLiAgVGhp
cyBzaG91bGQgYmUgY29uZmlndXJhYmxlLCB0aG91Z2gsCisgICAgYmVjYXVzZSBpbiBhdXRvbWF0
ZWQgdGVzdCBydW5zIGl0IGlzIGJldHRlciB0byBjcmFzaCB0aGFuCisgICAgaGFuZyBpbmRlZmlu
aXRlbHkuCisgICAgIiIiCisKKyAgICBlbmNvZGluZyA9IE5vbmUKKworICAgIGRlZiByZWFkKHNl
bGYsICphcmdzKToKKyAgICAgICAgcmFpc2UgSU9FcnJvcigicmVhZGluZyBmcm9tIHN0ZGluIHdo
aWxlIG91dHB1dCBpcyBjYXB0dXJlZCIpCisgICAgcmVhZGxpbmUgPSByZWFkCisgICAgcmVhZGxp
bmVzID0gcmVhZAorICAgIF9faXRlcl9fID0gcmVhZAorCisgICAgZGVmIGZpbGVubyhzZWxmKToK
KyAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRPcGVyYXRpb24oInJlZGlyZWN0ZWQgc3RkaW4gaXMg
cHNldWRvZmlsZSwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFzIG5v
IGZpbGVubygpIikKKworICAgIGRlZiBpc2F0dHkoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxz
ZQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgYnVmZmVyKHNlbGYpOgorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz
LCAwKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcigncmVkaXJlY3RlZCBzdGRpbiBoYXMgbm8gYXR0cmlidXRl
IGJ1ZmZlcicpCisKKworZGVmIF9jb2xvcmFtYV93b3JrYXJvdW5kKCk6CisgICAgIiIiCisgICAg
RW5zdXJlIGNvbG9yYW1hIGlzIGltcG9ydGVkIHNvIHRoYXQgaXQgYXR0YWNoZXMgdG8gdGhlIGNv
cnJlY3Qgc3RkaW8KKyAgICBoYW5kbGVzIG9uIFdpbmRvd3MuCisKKyAgICBjb2xvcmFtYSB1c2Vz
IHRoZSB0ZXJtaW5hbCBvbiBpbXBvcnQgdGltZS4gU28gaWYgc29tZXRoaW5nIGRvZXMgdGhlCisg
ICAgZmlyc3QgaW1wb3J0IG9mIGNvbG9yYW1hIHdoaWxlIEkvTyBjYXB0dXJlIGlzIGFjdGl2ZSwg
Y29sb3JhbWEgd2lsbAorICAgIGZhaWwgaW4gdmFyaW91cyB3YXlzLgorICAgICIiIgorCisgICAg
aWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpOgorICAgICAgICByZXR1cm4K
KyAgICB0cnk6CisgICAgICAgIGltcG9ydCBjb2xvcmFtYSAgIyBub3FhCisgICAgZXhjZXB0IElt
cG9ydEVycm9yOgorICAgICAgICBwYXNzCisKKworZGVmIF9yZWFkbGluZV93b3JrYXJvdW5kKCk6
CisgICAgIiIiCisgICAgRW5zdXJlIHJlYWRsaW5lIGlzIGltcG9ydGVkIHNvIHRoYXQgaXQgYXR0
YWNoZXMgdG8gdGhlIGNvcnJlY3Qgc3RkaW8KKyAgICBoYW5kbGVzIG9uIFdpbmRvd3MuCisKKyAg
ICBQZGIgdXNlcyByZWFkbGluZSBzdXBwb3J0IHdoZXJlIGF2YWlsYWJsZS0td2hlbiBub3QgcnVu
bmluZyBmcm9tIHRoZSBQeXRob24KKyAgICBwcm9tcHQsIHRoZSByZWFkbGluZSBtb2R1bGUgaXMg
bm90IGltcG9ydGVkIHVudGlsIHJ1bm5pbmcgdGhlIHBkYiBSRVBMLiAgSWYKKyAgICBydW5uaW5n
IHB5dGVzdCB3aXRoIHRoZSAtLXBkYiBvcHRpb24gdGhpcyBtZWFucyB0aGUgcmVhZGxpbmUgbW9k
dWxlIGlzIG5vdAorICAgIGltcG9ydGVkIHVudGlsIGFmdGVyIEkvTyBjYXB0dXJlIGhhcyBiZWVu
IHN0YXJ0ZWQuCisKKyAgICBUaGlzIGlzIGEgcHJvYmxlbSBmb3IgcHlyZWFkbGluZSwgd2hpY2gg
aXMgb2Z0ZW4gdXNlZCB0byBpbXBsZW1lbnQgcmVhZGxpbmUKKyAgICBzdXBwb3J0IG9uIFdpbmRv
d3MsIGFzIGl0IGRvZXMgbm90IGF0dGFjaCB0byB0aGUgY29ycmVjdCBoYW5kbGVzIGZvciBzdGRv
dXQKKyAgICBhbmQvb3Igc3RkaW4gaWYgdGhleSBoYXZlIGJlZW4gcmVkaXJlY3RlZCBieSB0aGUg
RkRDYXB0dXJlIG1lY2hhbmlzbS4gIFRoaXMKKyAgICB3b3JrYXJvdW5kIGVuc3VyZXMgdGhhdCBy
ZWFkbGluZSBpcyBpbXBvcnRlZCBiZWZvcmUgSS9PIGNhcHR1cmUgaXMgc2V0dXAgc28KKyAgICB0
aGF0IGl0IGNhbiBhdHRhY2ggdG8gdGhlIGFjdHVhbCBzdGRpbi9vdXQgZm9yIHRoZSBjb25zb2xl
LgorCisgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEy
ODEKKyAgICAiIiIKKworICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luMzIn
KToKKyAgICAgICAgcmV0dXJuCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgcmVhZGxpbmUgICMg
bm9xYQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworCisKK2RlZiBfcHkz
Nl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3RyZWFtKToKKyAgICAiIiIKKyAgICBQeXRo
b24gMy42IGltcGxlbWVudGVkIHVuaWNvZGUgY29uc29sZSBoYW5kbGluZyBmb3IgV2luZG93cy4g
VGhpcyB3b3JrcworICAgIGJ5IHJlYWRpbmcvd3JpdGluZyB0byB0aGUgcmF3IGNvbnNvbGUgaGFu
ZGxlIHVzaW5nCisgICAgYGB7UmVhZCxXcml0ZX1Db25zb2xlV2BgLgorCisgICAgVGhlIHByb2Js
ZW0gaXMgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gYGBkdXAyYGAgb3ZlciB0aGUgc3RkaW8gZmlsZQor
ICAgIGRlc2NyaXB0b3JzIHdoZW4gZG9pbmcgYGBGRENhcHR1cmVgYCBhbmQgdGhpcyB3aWxsIGBg
Q2xvc2VIYW5kbGVgYCB0aGUKKyAgICBoYW5kbGVzIHVzZWQgYnkgUHl0aG9uIHRvIHdyaXRlIHRv
IHRoZSBjb25zb2xlLiBUaG91Z2ggdGhlcmUgaXMgc3RpbGwgc29tZQorICAgIHdlaXJkbmVzcyBh
bmQgdGhlIGNvbnNvbGUgaGFuZGxlIHNlZW1zIHRvIG9ubHkgYmUgY2xvc2VkIHJhbmRvbWx5IGFu
ZCBub3QKKyAgICBvbiB0aGUgZmlyc3QgY2FsbCB0byBgYENsb3NlSGFuZGxlYGAsIG9yIG1heWJl
IGl0IGdldHMgcmVvcGVuZWQgd2l0aCB0aGUKKyAgICBzYW1lIGhhbmRsZSB2YWx1ZSB3aGVuIHdl
IHN1c3BlbmQgY2FwdHVyaW5nLgorCisgICAgVGhlIHdvcmthcm91bmQgaW4gdGhpcyBjYXNlIHdp
bGwgcmVvcGVuIHN0ZGlvIHdpdGggYSBkaWZmZXJlbnQgZmQgd2hpY2gKKyAgICBhbHNvIG1lYW5z
IGEgZGlmZmVyZW50IGhhbmRsZSBieSByZXBsaWNhdGluZyB0aGUgbG9naWMgaW4KKyAgICAiUHlf
bGlmZWN5Y2xlLmM6aW5pdHN0ZGlvL2NyZWF0ZV9zdGRpbyIuCisKKyAgICA6cGFyYW0gc3RyZWFt
OiBpbiBwcmFjdGljZSBgYHN5cy5zdGRvdXRgYCBvciBgYHN5cy5zdGRlcnJgYCwgYnV0IGdpdmVu
CisgICAgICAgIGhlcmUgYXMgcGFyYW1ldGVyIGZvciB1bml0dGVzdGluZyBwdXJwb3Nlcy4KKwor
ICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weS9pc3N1ZXMvMTAzCisgICAg
IiIiCisgICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpIG9yIHN5cy52
ZXJzaW9uX2luZm9bOjJdIDwgKDMsIDYpOgorICAgICAgICByZXR1cm4KKworICAgICMgYmFpbCBv
dXQgaWYgYGBzdHJlYW1gYCBkb2Vzbid0IHNlZW0gbGlrZSBhIHByb3BlciBgYGlvYGAgc3RyZWFt
ICgjMjY2NikKKyAgICBpZiBub3QgaGFzYXR0cihzdHJlYW0sICdidWZmZXInKToKKyAgICAgICAg
cmV0dXJuCisKKyAgICBidWZmZXJlZCA9IGhhc2F0dHIoc3RyZWFtLmJ1ZmZlciwgJ3JhdycpCisg
ICAgcmF3X3N0ZG91dCA9IHN0cmVhbS5idWZmZXIucmF3IGlmIGJ1ZmZlcmVkIGVsc2Ugc3RyZWFt
LmJ1ZmZlcgorCisgICAgaWYgbm90IGlzaW5zdGFuY2UocmF3X3N0ZG91dCwgaW8uX1dpbmRvd3ND
b25zb2xlSU8pOgorICAgICAgICByZXR1cm4KKworICAgIGRlZiBfcmVvcGVuX3N0ZGlvKGYsIG1v
ZGUpOgorICAgICAgICBpZiBub3QgYnVmZmVyZWQgYW5kIG1vZGVbMF0gPT0gJ3cnOgorICAgICAg
ICAgICAgYnVmZmVyaW5nID0gMAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVmZmVyaW5n
ID0gLTEKKworICAgICAgICByZXR1cm4gaW8uVGV4dElPV3JhcHBlcigKKyAgICAgICAgICAgIG9w
ZW4ob3MuZHVwKGYuZmlsZW5vKCkpLCBtb2RlLCBidWZmZXJpbmcpLAorICAgICAgICAgICAgZi5l
bmNvZGluZywKKyAgICAgICAgICAgIGYuZXJyb3JzLAorICAgICAgICAgICAgZi5uZXdsaW5lcywK
KyAgICAgICAgICAgIGYubGluZV9idWZmZXJpbmcpCisKKyAgICBzeXMuX19zdGRpbl9fID0gc3lz
LnN0ZGluID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3RkaW4sICdyYicpCisgICAgc3lzLl9fc3Rkb3V0
X18gPSBzeXMuc3Rkb3V0ID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3Rkb3V0LCAnd2InKQorICAgIHN5
cy5fX3N0ZGVycl9fID0gc3lzLnN0ZGVyciA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGVyciwgJ3di
JykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9jb21wYXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU2MGZiZWMzOTc1NTU3NDdmYzE0YTNh
YWUyMzg2ODY2ODc4YzE4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
Y29tcGF0LnB5CkBAIC0wLDAgKzEsMzIyIEBACisiIiIKK3B5dGhvbiB2ZXJzaW9uIGNvbXBhdGli
aWxpdHkgY29kZQorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBmdW5jdG9v
bHMKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKworaW1wb3J0IHB5CisK
K2ltcG9ydCBfcHl0ZXN0Citmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09N
RQorCit0cnk6CisgICAgaW1wb3J0IGVudW0KK2V4Y2VwdCBJbXBvcnRFcnJvcjogICMgcHJhZ21h
OiBubyBjb3ZlcgorICAgICMgT25seSBhdmFpbGFibGUgaW4gUHl0aG9uIDMuNCsgb3IgYXMgYSBi
YWNrcG9ydAorICAgIGVudW0gPSBOb25lCisKKworX1BZMyA9IHN5cy52ZXJzaW9uX2luZm8gPiAo
MywgMCkKK19QWTIgPSBub3QgX1BZMworCisKK2lmIF9QWTM6CisgICAgZnJvbSBpbnNwZWN0IGlt
cG9ydCBzaWduYXR1cmUsIFBhcmFtZXRlciBhcyBQYXJhbWV0ZXIKK2Vsc2U6CisgICAgZnJvbSBm
dW5jc2lncyBpbXBvcnQgc2lnbmF0dXJlLCBQYXJhbWV0ZXIgYXMgUGFyYW1ldGVyCisKKworTm9u
ZVR5cGUgPSB0eXBlKE5vbmUpCitOT1RTRVQgPSBvYmplY3QoKQorCitQWTM1ID0gc3lzLnZlcnNp
b25faW5mb1s6Ml0gPj0gKDMsIDUpCitQWTM2ID0gc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDMs
IDYpCitNT0RVTEVfTk9UX0ZPVU5EX0VSUk9SID0gJ01vZHVsZU5vdEZvdW5kRXJyb3InIGlmIFBZ
MzYgZWxzZSAnSW1wb3J0RXJyb3InCisKKworZGVmIF9mb3JtYXRfYXJncyhmdW5jKToKKyAgICBy
ZXR1cm4gc3RyKHNpZ25hdHVyZShmdW5jKSkKKworCitpc2Z1bmN0aW9uID0gaW5zcGVjdC5pc2Z1
bmN0aW9uCitpc2NsYXNzID0gaW5zcGVjdC5pc2NsYXNzCisjIHVzZWQgdG8gd29yayBhcm91bmQg
YSBweXRob24yIGV4Y2VwdGlvbiBpbmZvIGxlYWsKK2V4Y19jbGVhciA9IGdldGF0dHIoc3lzLCAn
ZXhjX2NsZWFyJywgbGFtYmRhOiBOb25lKQorIyBUaGUgdHlwZSBvZiByZS5jb21waWxlIG9iamVj
dHMgaXMgbm90IGV4cG9zZWQgaW4gUHl0aG9uLgorUkVHRVhfVFlQRSA9IHR5cGUocmUuY29tcGls
ZSgnJykpCisKKworZGVmIGlzX2dlbmVyYXRvcihmdW5jKToKKyAgICBnZW5mdW5jID0gaW5zcGVj
dC5pc2dlbmVyYXRvcmZ1bmN0aW9uKGZ1bmMpCisgICAgcmV0dXJuIGdlbmZ1bmMgYW5kIG5vdCBp
c2Nvcm91dGluZWZ1bmN0aW9uKGZ1bmMpCisKKworZGVmIGlzY29yb3V0aW5lZnVuY3Rpb24oZnVu
Yyk6CisgICAgIiIiUmV0dXJuIFRydWUgaWYgZnVuYyBpcyBhIGRlY29yYXRlZCBjb3JvdXRpbmUg
ZnVuY3Rpb24uCisKKyAgICBOb3RlOiBjb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gUHl0aG9uIDMu
NSdzIGJ1aWx0aW4gY291cm91dGluZXMucHkgdG8gYXZvaWQgaW1wb3J0IGFzeW5jaW8gZGlyZWN0
bHksCisgICAgd2hpY2ggaW4gdHVybnMgYWxzbyBpbml0aWFsaXplcyB0aGUgImxvZ2dpbmciIG1v
ZHVsZSBhcyBzaWRlLWVmZmVjdCAoc2VlIGlzc3VlICM4KS4KKyAgICAiIiIKKyAgICByZXR1cm4g
KGdldGF0dHIoZnVuYywgJ19pc19jb3JvdXRpbmUnLCBGYWxzZSkgb3IKKyAgICAgICAgICAgICho
YXNhdHRyKGluc3BlY3QsICdpc2Nvcm91dGluZWZ1bmN0aW9uJykgYW5kIGluc3BlY3QuaXNjb3Jv
dXRpbmVmdW5jdGlvbihmdW5jKSkpCisKKworZGVmIGdldGxvY2F0aW9uKGZ1bmN0aW9uLCBjdXJk
aXIpOgorICAgIGZuID0gcHkucGF0aC5sb2NhbChpbnNwZWN0LmdldGZpbGUoZnVuY3Rpb24pKQor
ICAgIGxpbmVubyA9IHB5LmJ1aWx0aW4uX2dldGNvZGUoZnVuY3Rpb24pLmNvX2ZpcnN0bGluZW5v
CisgICAgaWYgZm4ucmVsdG8oY3VyZGlyKToKKyAgICAgICAgZm4gPSBmbi5yZWx0byhjdXJkaXIp
CisgICAgcmV0dXJuICIlczolZCIgJSAoZm4sIGxpbmVubyArIDEpCisKKworZGVmIG51bV9tb2Nr
X3BhdGNoX2FyZ3MoZnVuY3Rpb24pOgorICAgICIiIiByZXR1cm4gbnVtYmVyIG9mIGFyZ3VtZW50
cyB1c2VkIHVwIGJ5IG1vY2sgYXJndW1lbnRzIChpZiBhbnkpICIiIgorICAgIHBhdGNoaW5ncyA9
IGdldGF0dHIoZnVuY3Rpb24sICJwYXRjaGluZ3MiLCBOb25lKQorICAgIGlmIG5vdCBwYXRjaGlu
Z3M6CisgICAgICAgIHJldHVybiAwCisgICAgbW9jayA9IHN5cy5tb2R1bGVzLmdldCgibW9jayIs
IHN5cy5tb2R1bGVzLmdldCgidW5pdHRlc3QubW9jayIsIE5vbmUpKQorICAgIGlmIG1vY2sgaXMg
bm90IE5vbmU6CisgICAgICAgIHJldHVybiBsZW4oW3AgZm9yIHAgaW4gcGF0Y2hpbmdzCisgICAg
ICAgICAgICAgICAgICAgIGlmIG5vdCBwLmF0dHJpYnV0ZV9uYW1lIGFuZCBwLm5ldyBpcyBtb2Nr
LkRFRkFVTFRdKQorICAgIHJldHVybiBsZW4ocGF0Y2hpbmdzKQorCisKK2RlZiBnZXRmdW5jYXJn
bmFtZXMoZnVuY3Rpb24sIGlzX21ldGhvZD1GYWxzZSwgY2xzPU5vbmUpOgorICAgICIiIlJldHVy
bnMgdGhlIG5hbWVzIG9mIGEgZnVuY3Rpb24ncyBtYW5kYXRvcnkgYXJndW1lbnRzLgorCisgICAg
VGhpcyBzaG91bGQgcmV0dXJuIHRoZSBuYW1lcyBvZiBhbGwgZnVuY3Rpb24gYXJndW1lbnRzIHRo
YXQ6CisgICAgICAgICogQXJlbid0IGJvdW5kIHRvIGFuIGluc3RhbmNlIG9yIHR5cGUgYXMgaW4g
aW5zdGFuY2Ugb3IgY2xhc3MgbWV0aG9kcy4KKyAgICAgICAgKiBEb24ndCBoYXZlIGRlZmF1bHQg
dmFsdWVzLgorICAgICAgICAqIEFyZW4ndCBib3VuZCB3aXRoIGZ1bmN0b29scy5wYXJ0aWFsLgor
ICAgICAgICAqIEFyZW4ndCByZXBsYWNlZCB3aXRoIG1vY2tzLgorCisgICAgVGhlIGlzX21ldGhv
ZCBhbmQgY2xzIGFyZ3VtZW50cyBpbmRpY2F0ZSB0aGF0IHRoZSBmdW5jdGlvbiBzaG91bGQKKyAg
ICBiZSB0cmVhdGVkIGFzIGEgYm91bmQgbWV0aG9kIGV2ZW4gdGhvdWdoIGl0J3Mgbm90IHVubGVz
cywgb25seSBpbgorICAgIHRoZSBjYXNlIG9mIGNscywgdGhlIGZ1bmN0aW9uIGlzIGEgc3RhdGlj
IG1ldGhvZC4KKworICAgIEBSb25ueVBmYW5uc2NobWlkdDogVGhpcyBmdW5jdGlvbiBzaG91bGQg
YmUgcmVmYWN0b3JlZCB3aGVuIHdlCisgICAgcmV2aXNpdCBmaXh0dXJlcy4gVGhlIGZpeHR1cmUg
bWVjaGFuaXNtIHNob3VsZCBhc2sgdGhlIG5vZGUgZm9yCisgICAgdGhlIGZpeHR1cmUgbmFtZXMs
IGFuZCBub3QgdHJ5IHRvIG9idGFpbiBkaXJlY3RseSBmcm9tIHRoZQorICAgIGZ1bmN0aW9uIG9i
amVjdCB3ZWxsIGFmdGVyIGNvbGxlY3Rpb24gaGFzIG9jY3VycmVkLgorCisgICAgIiIiCisgICAg
IyBUaGUgcGFyYW1ldGVycyBhdHRyaWJ1dGUgb2YgYSBTaWduYXR1cmUgb2JqZWN0IGNvbnRhaW5z
IGFuCisgICAgIyBvcmRlcmVkIG1hcHBpbmcgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIFBhcmFtZXRl
ciBpbnN0YW5jZXMuICBUaGlzCisgICAgIyBjcmVhdGVzIGEgdHVwbGUgb2YgdGhlIG5hbWVzIG9m
IHRoZSBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgaGF2ZQorICAgICMgZGVmYXVsdHMuCisgICAgYXJn
X25hbWVzID0gdHVwbGUocC5uYW1lIGZvciBwIGluIHNpZ25hdHVyZShmdW5jdGlvbikucGFyYW1l
dGVycy52YWx1ZXMoKQorICAgICAgICAgICAgICAgICAgICAgIGlmIChwLmtpbmQgaXMgUGFyYW1l
dGVyLlBPU0lUSU9OQUxfT1JfS0VZV09SRCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICBw
LmtpbmQgaXMgUGFyYW1ldGVyLktFWVdPUkRfT05MWSkgYW5kCisgICAgICAgICAgICAgICAgICAg
ICAgcC5kZWZhdWx0IGlzIFBhcmFtZXRlci5lbXB0eSkKKyAgICAjIElmIHRoaXMgZnVuY3Rpb24g
c2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBib3VuZCBtZXRob2QgZXZlbiB0aG91Z2gKKyAgICAjIGl0
J3MgcGFzc2VkIGFzIGFuIHVuYm91bmQgbWV0aG9kIG9yIGZ1bmN0aW9uLCByZW1vdmUgdGhlIGZp
cnN0CisgICAgIyBwYXJhbWV0ZXIgbmFtZS4KKyAgICBpZiAoaXNfbWV0aG9kIG9yCisgICAgICAg
IChjbHMgYW5kIG5vdCBpc2luc3RhbmNlKGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24uX19uYW1l
X18sIE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNtZXRob2Qp
KSk6CisgICAgICAgIGFyZ19uYW1lcyA9IGFyZ19uYW1lc1sxOl0KKyAgICAjIFJlbW92ZSBhbnkg
bmFtZXMgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbW9ja3MuCisgICAgaWYgaGFzYXR0cihm
dW5jdGlvbiwgIl9fd3JhcHBlZF9fIik6CisgICAgICAgIGFyZ19uYW1lcyA9IGFyZ19uYW1lc1tu
dW1fbW9ja19wYXRjaF9hcmdzKGZ1bmN0aW9uKTpdCisgICAgcmV0dXJuIGFyZ19uYW1lcworCisK
K2lmIF9QWTM6CisgICAgU1RSSU5HX1RZUEVTID0gYnl0ZXMsIHN0cgorICAgIFVOSUNPREVfVFlQ
RVMgPSBzdHIsCisKKyAgICBpZiBQWTM1OgorICAgICAgICBkZWYgX2J5dGVzX3RvX2FzY2lpKHZh
bCk6CisgICAgICAgICAgICByZXR1cm4gdmFsLmRlY29kZSgnYXNjaWknLCAnYmFja3NsYXNocmVw
bGFjZScpCisgICAgZWxzZToKKyAgICAgICAgZGVmIF9ieXRlc190b19hc2NpaSh2YWwpOgorICAg
ICAgICAgICAgaWYgdmFsOgorICAgICAgICAgICAgICAgICMgc291cmNlOiBodHRwOi8vZ29vLmds
L2JHc253QworICAgICAgICAgICAgICAgIGVuY29kZWRfYnl0ZXMsIF8gPSBjb2RlY3MuZXNjYXBl
X2VuY29kZSh2YWwpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZWRfYnl0ZXMuZGVjb2Rl
KCdhc2NpaScpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgZW1wdHkgYnl0
ZXMgY3Jhc2hlcyBjb2RlY3MuZXNjYXBlX2VuY29kZSAoIzEwODcpCisgICAgICAgICAgICAgICAg
cmV0dXJuICcnCisKKyAgICBkZWYgYXNjaWlfZXNjYXBlZCh2YWwpOgorICAgICAgICAiIiJJZiB2
YWwgaXMgcHVyZSBhc2NpaSwgcmV0dXJucyBpdCBhcyBhIHN0cigpLiAgT3RoZXJ3aXNlLCBlc2Nh
cGVzCisgICAgICAgIGJ5dGVzIG9iamVjdHMgaW50byBhIHNlcXVlbmNlIG9mIGVzY2FwZWQgYnl0
ZXM6CisKKyAgICAgICAgYidceGMzXHhiNFx4YzVceGQ2JyAtPiB1J1xceGMzXFx4YjRcXHhjNVxc
eGQ2JworCisgICAgICAgIGFuZCBlc2NhcGVzIHVuaWNvZGUgb2JqZWN0cyBpbnRvIGEgc2VxdWVu
Y2Ugb2YgZXNjYXBlZCB1bmljb2RlCisgICAgICAgIGlkcywgZS5nLjoKKworICAgICAgICAnNFxc
blZcXFUwMDA0M2VmYVxceDBlTVhXQlxceDFlXFx1MzAyOFxcdTE1ZmRcXHhjZFxcVTAwMDdkOTQ0
JworCisgICAgICAgIG5vdGU6CisgICAgICAgICAgIHRoZSBvYnZpb3VzICJ2LmRlY29kZSgndW5p
Y29kZS1lc2NhcGUnKSIgd2lsbCByZXR1cm4KKyAgICAgICAgICAgdmFsaWQgdXRmLTggdW5pY29k
ZSBpZiBpdCBmaW5kcyB0aGVtIGluIGJ5dGVzLCBidXQgd2UKKyAgICAgICAgICAgd2FudCB0byBy
ZXR1cm4gZXNjYXBlZCBieXRlcyBmb3IgYW55IGJ5dGUsIGV2ZW4gaWYgdGhleSBtYXRjaAorICAg
ICAgICAgICBhIHV0Zi04IHN0cmluZy4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0
YW5jZSh2YWwsIGJ5dGVzKToKKyAgICAgICAgICAgIHJldHVybiBfYnl0ZXNfdG9fYXNjaWkodmFs
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNvZGVf
ZXNjYXBlJykuZGVjb2RlKCdhc2NpaScpCitlbHNlOgorICAgIFNUUklOR19UWVBFUyA9IGJ5dGVz
LCBzdHIsIHVuaWNvZGUKKyAgICBVTklDT0RFX1RZUEVTID0gdW5pY29kZSwKKworICAgIGRlZiBh
c2NpaV9lc2NhcGVkKHZhbCk6CisgICAgICAgICIiIkluIHB5MiBieXRlcyBhbmQgc3RyIGFyZSB0
aGUgc2FtZSB0eXBlLCBzbyByZXR1cm4gaWYgaXQncyBhIGJ5dGVzCisgICAgICAgIG9iamVjdCwg
cmV0dXJuIGl0IHVuY2hhbmdlZCBpZiBpdCBpcyBhIGZ1bGwgYXNjaWkgc3RyaW5nLAorICAgICAg
ICBvdGhlcndpc2UgZXNjYXBlIGl0IGludG8gaXRzIGJpbmFyeSBmb3JtLgorCisgICAgICAgIElm
IGl0J3MgYSB1bmljb2RlIHN0cmluZywgY2hhbmdlIHRoZSB1bmljb2RlIGNoYXJhY3RlcnMgaW50
bworICAgICAgICB1bmljb2RlIGVzY2FwZXMuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlz
aW5zdGFuY2UodmFsLCBieXRlcyk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHZhbC5lbmNvZGUoJ2FzY2lpJykKKyAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVj
b2RlRXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3N0cmluZy1lc2Nh
cGUnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNv
ZGUtZXNjYXBlJykKKworCitkZWYgZ2V0X3JlYWxfZnVuYyhvYmopOgorICAgICIiIiBnZXRzIHRo
ZSByZWFsIGZ1bmN0aW9uIG9iamVjdCBvZiB0aGUgKHBvc3NpYmx5KSB3cmFwcGVkIG9iamVjdCBi
eQorICAgIGZ1bmN0b29scy53cmFwcyBvciBmdW5jdG9vbHMucGFydGlhbC4KKyAgICAiIiIKKyAg
ICBzdGFydF9vYmogPSBvYmoKKyAgICBmb3IgaSBpbiByYW5nZSgxMDApOgorICAgICAgICBuZXdf
b2JqID0gZ2V0YXR0cihvYmosICdfX3dyYXBwZWRfXycsIE5vbmUpCisgICAgICAgIGlmIG5ld19v
YmogaXMgTm9uZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIG9iaiA9IG5ld19vYmoKKyAg
ICBlbHNlOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgKCJjb3VsZCBu
b3QgZmluZCByZWFsIGZ1bmN0aW9uIG9mIHtzdGFydH0iCisgICAgICAgICAgICAgIlxuc3RvcHBl
ZCBhdCB7Y3VycmVudH0iKS5mb3JtYXQoCisgICAgICAgICAgICAgICAgc3RhcnQ9cHkuaW8uc2Fm
ZXJlcHIoc3RhcnRfb2JqKSwKKyAgICAgICAgICAgICAgICBjdXJyZW50PXB5LmlvLnNhZmVyZXBy
KG9iaikpKQorICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBmdW5jdG9vbHMucGFydGlhbCk6CisgICAg
ICAgIG9iaiA9IG9iai5mdW5jCisgICAgcmV0dXJuIG9iagorCisKK2RlZiBnZXRmc2xpbmVubyhv
YmopOgorICAgICMgeHh4IGxldCBkZWNvcmF0b3JzIGV0YyBzcGVjaWZ5IGEgc2FuZSBvcmRlcmlu
ZworICAgIG9iaiA9IGdldF9yZWFsX2Z1bmMob2JqKQorICAgIGlmIGhhc2F0dHIob2JqLCAncGxh
Y2VfYXMnKToKKyAgICAgICAgb2JqID0gb2JqLnBsYWNlX2FzCisgICAgZnNsaW5lbm8gPSBfcHl0
ZXN0Ll9jb2RlLmdldGZzbGluZW5vKG9iaikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShmc2xpbmVu
b1sxXSwgaW50KSwgb2JqCisgICAgcmV0dXJuIGZzbGluZW5vCisKKworZGVmIGdldGltZnVuYyhm
dW5jKToKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBmdW5jLl9fZnVuY19fCisgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByZXR1cm4gZnVuYworCisKK2RlZiBzYWZlX2dldGF0
dHIob2JqZWN0LCBuYW1lLCBkZWZhdWx0KToKKyAgICAiIiIgTGlrZSBnZXRhdHRyIGJ1dCByZXR1
cm4gZGVmYXVsdCB1cG9uIGFueSBFeGNlcHRpb24gb3IgYW55IE91dGNvbWVFeGNlcHRpb24uCisK
KyAgICBBdHRyaWJ1dGUgYWNjZXNzIGNhbiBwb3RlbnRpYWxseSBmYWlsIGZvciAnZXZpbCcgUHl0
aG9uIG9iamVjdHMuCisgICAgU2VlIGlzc3VlICMyMTQuCisgICAgSXQgY2F0Y2hlcyBPdXRjb21l
RXhjZXB0aW9uIGJlY2F1c2Ugb2YgIzI0OTAgKGlzc3VlICM1ODApLCBuZXcgb3V0Y29tZXMgYXJl
IGRlcml2ZWQgZnJvbSBCYXNlRXhjZXB0aW9uCisgICAgaW5zdGVhZCBvZiBFeGNlcHRpb24gKGZv
ciBtb3JlIGRldGFpbHMgY2hlY2sgIzI3MDcpCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBy
ZXR1cm4gZ2V0YXR0cihvYmplY3QsIG5hbWUsIGRlZmF1bHQpCisgICAgZXhjZXB0IFRFU1RfT1VU
Q09NRToKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworCitkZWYgX2lzX3VuaXR0ZXN0X3VuZXhw
ZWN0ZWRfc3VjY2Vzc19hX2ZhaWx1cmUoKToKKyAgICAiIiJSZXR1cm4gaWYgdGhlIHRlc3Qgc3Vp
dGUgc2hvdWxkIGZhaWwgaWYgYSBAZXhwZWN0ZWRGYWlsdXJlIHVuaXR0ZXN0IHRlc3QgUEFTU0VT
LgorCisgICAgRnJvbSBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3Qu
aHRtbD9oaWdobGlnaHQ9dW5pdHRlc3QjdW5pdHRlc3QuVGVzdFJlc3VsdC53YXNTdWNjZXNzZnVs
OgorICAgICAgICBDaGFuZ2VkIGluIHZlcnNpb24gMy40OiBSZXR1cm5zIEZhbHNlIGlmIHRoZXJl
IHdlcmUgYW55CisgICAgICAgIHVuZXhwZWN0ZWRTdWNjZXNzZXMgZnJvbSB0ZXN0cyBtYXJrZWQg
d2l0aCB0aGUgZXhwZWN0ZWRGYWlsdXJlKCkgZGVjb3JhdG9yLgorICAgICIiIgorICAgIHJldHVy
biBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA0KQorCisKK2lmIF9QWTM6CisgICAgZGVmIHNhZmVf
c3RyKHYpOgorICAgICAgICAiIiJyZXR1cm5zIHYgYXMgc3RyaW5nIiIiCisgICAgICAgIHJldHVy
biBzdHIodikKK2Vsc2U6CisgICAgZGVmIHNhZmVfc3RyKHYpOgorICAgICAgICAiIiJyZXR1cm5z
IHYgYXMgc3RyaW5nLCBjb252ZXJ0aW5nIHRvIGFzY2lpIGlmIG5lY2Vzc2FyeSIiIgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc3RyKHYpCisgICAgICAgIGV4Y2VwdCBVbmljb2Rl
RXJyb3I6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKKyAgICAg
ICAgICAgICAgICB2ID0gdW5pY29kZSh2KQorICAgICAgICAgICAgZXJyb3JzID0gJ3JlcGxhY2Un
CisgICAgICAgICAgICByZXR1cm4gdi5lbmNvZGUoJ3V0Zi04JywgZXJyb3JzKQorCisKK0NPTExF
Q1RfRkFLRU1PRFVMRV9BVFRSSUJVVEVTID0gKAorICAgICdDb2xsZWN0b3InLAorICAgICdNb2R1
bGUnLAorICAgICdHZW5lcmF0b3InLAorICAgICdGdW5jdGlvbicsCisgICAgJ0luc3RhbmNlJywK
KyAgICAnU2Vzc2lvbicsCisgICAgJ0l0ZW0nLAorICAgICdDbGFzcycsCisgICAgJ0ZpbGUnLAor
ICAgICdfZmlsbGZ1bmNhcmdzJywKKykKKworCitkZWYgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVs
ZSgpOgorICAgIGZyb20gdHlwZXMgaW1wb3J0IE1vZHVsZVR5cGUKKyAgICBpbXBvcnQgcHl0ZXN0
CisgICAgcHl0ZXN0LmNvbGxlY3QgPSBNb2R1bGVUeXBlKCdweXRlc3QuY29sbGVjdCcpCisgICAg
cHl0ZXN0LmNvbGxlY3QuX19hbGxfXyA9IFtdICAjIHVzZWQgZm9yIHNldG5zCisgICAgZm9yIGF0
dHIgaW4gQ09MTEVDVF9GQUtFTU9EVUxFX0FUVFJJQlVURVM6CisgICAgICAgIHNldGF0dHIocHl0
ZXN0LmNvbGxlY3QsIGF0dHIsIGdldGF0dHIocHl0ZXN0LCBhdHRyKSkKKworCitpZiBfUFkyOgor
ICAgICMgV2l0aG91dCB0aGlzIHRoZSB0ZXN0X2R1cGZpbGVfb25fdGV4dGlvIHdpbGwgZmFpbCwg
b3RoZXJ3aXNlIENhcHR1cmVJTyBjb3VsZCBkaXJlY3RseSBpbmhlcml0IGZyb20gU3RyaW5nSU8u
CisgICAgZnJvbSBweS5pbyBpbXBvcnQgVGV4dElPCisKKyAgICBjbGFzcyBDYXB0dXJlSU8oVGV4
dElPKToKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIGVuY29kaW5nKHNlbGYpOgor
ICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgJ19lbmNvZGluZycsICdVVEYtOCcpCisK
K2Vsc2U6CisgICAgaW1wb3J0IGlvCisKKyAgICBjbGFzcyBDYXB0dXJlSU8oaW8uVGV4dElPV3Jh
cHBlcik6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIHN1cGVyKENh
cHR1cmVJTywgc2VsZikuX19pbml0X18oCisgICAgICAgICAgICAgICAgaW8uQnl0ZXNJTygpLAor
ICAgICAgICAgICAgICAgIGVuY29kaW5nPSdVVEYtOCcsIG5ld2xpbmU9JycsIHdyaXRlX3Rocm91
Z2g9VHJ1ZSwKKyAgICAgICAgICAgICkKKworICAgICAgICBkZWYgZ2V0dmFsdWUoc2VsZik6Cisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5idWZmZXIuZ2V0dmFsdWUoKS5kZWNvZGUoJ1VURi04JykK
KworCitjbGFzcyBGdW5jYXJnbmFtZXNDb21wYXRBdHRyKG9iamVjdCk6CisgICAgIiIiIGhlbHBl
ciBjbGFzcyBzbyB0aGF0IE1ldGFmdW5jLCBGdW5jdGlvbiBhbmQgRml4dHVyZVJlcXVlc3QKKyAg
ICBkb24ndCBuZWVkIHRvIGVhY2ggZGVmaW5lIHRoZSAiZnVuY2FyZ25hbWVzIiBjb21wYXRpYmls
aXR5IGF0dHJpYnV0ZS4KKyAgICAiIiIKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnVuY2FyZ25h
bWVzKHNlbGYpOgorICAgICAgICAiIiIgYWxpYXMgYXR0cmlidXRlIGZvciBgYGZpeHR1cmVuYW1l
c2BgIGZvciBwcmUtMi4zIGNvbXBhdGliaWxpdHkiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZml4
dHVyZW5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5OWM4MDc5ZDQxNTk4NmMx
OGIxZjNmZjY0ZDIwNzU0MmU1ZTQzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2NvbmZpZy5weQpAQCAtMCwwICsxLDE0MDAgQEAKKyIiIiBjb21tYW5kIGxpbmUgb3B0
aW9ucywgaW5pLWZpbGUgYW5kIGNvbmZ0ZXN0LnB5IHByb2Nlc3NpbmcuICIiIgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
aW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgc2hsZXgKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB0
eXBlcworaW1wb3J0IHdhcm5pbmdzCisKK2ltcG9ydCBzaXgKK2ltcG9ydCBweQorIyBET04ndCBp
bXBvcnQgcHl0ZXN0IGhlcmUgYmVjYXVzZSBpdCBjYXVzZXMgaW1wb3J0IGN5Y2xlIHRyb3VibGVz
CitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitpbXBvcnQgX3B5
dGVzdC5ob29rc3BlYyAgIyB0aGUgZXh0ZW5zaW9uIHBvaW50IGRlZmluaXRpb25zCitpbXBvcnQg
X3B5dGVzdC5hc3NlcnRpb24KK2Zyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29r
aW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IHNh
ZmVfc3RyCisKK2hvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoInB5dGVzdCIpCitob29rc3BlYyA9
IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQorCisjIHB5dGVzdCBzdGFydHVwCisjCisKKworY2xh
c3MgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBhdGgsIGV4Y2luZm8pOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgcGF0
aCwgZXhjaW5mbykKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAgICBzZWxmLmV4Y2lu
Zm8gPSBleGNpbmZvCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgZXR5cGUsIGV2
YWx1ZSwgZXRiID0gc2VsZi5leGNpbmZvCisgICAgICAgIGZvcm1hdHRlZCA9IHRyYWNlYmFjay5m
b3JtYXRfdGIoZXRiKQorICAgICAgICAjIFRoZSBsZXZlbCBvZiB0aGUgdHJhY2ViYWNrcyB3ZSB3
YW50IHRvIHByaW50IGlzIGhhbmQgY3JhZnRlZCA6KAorICAgICAgICByZXR1cm4gcmVwcihldmFs
dWUpICsgJ1xuJyArICcnLmpvaW4oZm9ybWF0dGVkWzI6XSkKKworCitkZWYgbWFpbihhcmdzPU5v
bmUsIHBsdWdpbnM9Tm9uZSk6CisgICAgIiIiIHJldHVybiBleGl0IGNvZGUsIGFmdGVyIHBlcmZv
cm1pbmcgYW4gaW4tcHJvY2VzcyB0ZXN0IHJ1bi4KKworICAgIDphcmcgYXJnczogbGlzdCBvZiBj
b21tYW5kIGxpbmUgYXJndW1lbnRzLgorCisgICAgOmFyZyBwbHVnaW5zOiBsaXN0IG9mIHBsdWdp
biBvYmplY3RzIHRvIGJlIGF1dG8tcmVnaXN0ZXJlZCBkdXJpbmcKKyAgICAgICAgICAgICAgICAg
IGluaXRpYWxpemF0aW9uLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgY29uZmlnID0gX3ByZXBhcmVjb25maWcoYXJncywgcGx1Z2lucykKKyAgICAgICAgZXhj
ZXB0IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZSBhcyBlOgorICAgICAgICAgICAgdHcgPSBweS5pby5U
ZXJtaW5hbFdyaXRlcihzeXMuc3RkZXJyKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gdHJhY2Vi
YWNrLmZvcm1hdF9leGNlcHRpb24oKmUuZXhjaW5mbyk6CisgICAgICAgICAgICAgICAgdHcubGlu
ZShsaW5lLnJzdHJpcCgpLCByZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHR3LmxpbmUoIkVSUk9SOiBj
b3VsZCBub3QgbG9hZCAlc1xuIiAlIChlLnBhdGgpLCByZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHJl
dHVybiA0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbmZpZy5ob29rLnB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnPWNvbmZpZykKKyAg
ICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25m
aWd1cmUoKQorICAgIGV4Y2VwdCBVc2FnZUVycm9yIGFzIGU6CisgICAgICAgIGZvciBtc2cgaW4g
ZS5hcmdzOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRVJST1I6ICVzXG4iICUgKG1z
ZywpKQorICAgICAgICByZXR1cm4gNAorCisKK2NsYXNzIGNtZGxpbmU6ICAjIGNvbXBhdGliaWxp
dHkgbmFtZXNwYWNlCisgICAgbWFpbiA9IHN0YXRpY21ldGhvZChtYWluKQorCisKK2NsYXNzIFVz
YWdlRXJyb3IoRXhjZXB0aW9uKToKKyAgICAiIiIgZXJyb3IgaW4gcHl0ZXN0IHVzYWdlIG9yIGlu
dm9jYXRpb24iIiIKKworCitjbGFzcyBQcmludEhlbHAoRXhjZXB0aW9uKToKKyAgICAiIiJSYWlz
ZWQgd2hlbiBweXRlc3Qgc2hvdWxkIHByaW50IGl0J3MgaGVscCB0byBza2lwIHRoZSByZXN0IG9m
IHRoZQorICAgIGFyZ3VtZW50IHBhcnNpbmcgYW5kIHZhbGlkYXRpb24uIiIiCisgICAgcGFzcwor
CisKK2RlZiBmaWxlbmFtZV9hcmcocGF0aCwgb3B0bmFtZSk6CisgICAgIiIiIEFyZ3BhcnNlIHR5
cGUgdmFsaWRhdG9yIGZvciBmaWxlbmFtZSBhcmd1bWVudHMuCisKKyAgICA6cGF0aDogcGF0aCBv
ZiBmaWxlbmFtZQorICAgIDpvcHRuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24KKyAgICAiIiIKKyAg
ICBpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJ7MH0g
bXVzdCBiZSBhIGZpbGVuYW1lLCBnaXZlbjogezF9Ii5mb3JtYXQob3B0bmFtZSwgcGF0aCkpCisg
ICAgcmV0dXJuIHBhdGgKKworCitkZWYgZGlyZWN0b3J5X2FyZyhwYXRoLCBvcHRuYW1lKToKKyAg
ICAiIiJBcmdwYXJzZSB0eXBlIHZhbGlkYXRvciBmb3IgZGlyZWN0b3J5IGFyZ3VtZW50cy4KKwor
ICAgIDpwYXRoOiBwYXRoIG9mIGRpcmVjdG9yeQorICAgIDpvcHRuYW1lOiBuYW1lIG9mIHRoZSBv
cHRpb24KKyAgICAiIiIKKyAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAg
cmFpc2UgVXNhZ2VFcnJvcigiezB9IG11c3QgYmUgYSBkaXJlY3RvcnksIGdpdmVuOiB7MX0iLmZv
cm1hdChvcHRuYW1lLCBwYXRoKSkKKyAgICByZXR1cm4gcGF0aAorCisKK2RlZmF1bHRfcGx1Z2lu
cyA9ICgKKyAgICAibWFyayBtYWluIHRlcm1pbmFsIHJ1bm5lciBweXRob24gZml4dHVyZXMgZGVi
dWdnaW5nIHVuaXR0ZXN0IGNhcHR1cmUgc2tpcHBpbmcgIgorICAgICJ0bXBkaXIgbW9ua2V5cGF0
Y2ggcmVjd2FybiBwYXN0ZWJpbiBoZWxwY29uZmlnIG5vc2UgYXNzZXJ0aW9uICIKKyAgICAianVu
aXR4bWwgcmVzdWx0bG9nIGRvY3Rlc3QgY2FjaGVwcm92aWRlciBmcmVlemVfc3VwcG9ydCAiCisg
ICAgInNldHVwb25seSBzZXR1cHBsYW4gd2FybmluZ3MgbG9nZ2luZyIpLnNwbGl0KCkKKworCiti
dWlsdGluX3BsdWdpbnMgPSBzZXQoZGVmYXVsdF9wbHVnaW5zKQorYnVpbHRpbl9wbHVnaW5zLmFk
ZCgicHl0ZXN0ZXIiKQorCisKK2RlZiBnZXRfY29uZmlnKCk6CisgICAgIyBzdWJzZXF1ZW50IGNh
bGxzIHRvIG1haW4gd2lsbCBjcmVhdGUgYSBmcmVzaCBpbnN0YW5jZQorICAgIHBsdWdpbm1hbmFn
ZXIgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICBjb25maWcgPSBDb25maWcocGx1Z2lubWFu
YWdlcikKKyAgICBmb3Igc3BlYyBpbiBkZWZhdWx0X3BsdWdpbnM6CisgICAgICAgIHBsdWdpbm1h
bmFnZXIuaW1wb3J0X3BsdWdpbihzcGVjKQorICAgIHJldHVybiBjb25maWcKKworCitkZWYgZ2V0
X3BsdWdpbl9tYW5hZ2VyKCk6CisgICAgIiIiCisgICAgT2J0YWluIGEgbmV3IGluc3RhbmNlIG9m
IHRoZQorICAgIDpweTpjbGFzczpgX3B5dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdlcmAs
IHdpdGggZGVmYXVsdCBwbHVnaW5zCisgICAgYWxyZWFkeSBsb2FkZWQuCisKKyAgICBUaGlzIGZ1
bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IGludGVncmF0aW9uIHdpdGggb3RoZXIgdG9vbHMsIGxpa2Ug
aG9va2luZworICAgIGludG8gcHl0ZXN0IHRvIHJ1biB0ZXN0cyBpbnRvIGFuIElERS4KKyAgICAi
IiIKKyAgICByZXR1cm4gZ2V0X2NvbmZpZygpLnBsdWdpbm1hbmFnZXIKKworCitkZWYgX3ByZXBh
cmVjb25maWcoYXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgorICAgIHdhcm5pbmcgPSBOb25lCisg
ICAgaWYgYXJncyBpcyBOb25lOgorICAgICAgICBhcmdzID0gc3lzLmFyZ3ZbMTpdCisgICAgZWxp
ZiBpc2luc3RhbmNlKGFyZ3MsIHB5LnBhdGgubG9jYWwpOgorICAgICAgICBhcmdzID0gW3N0cihh
cmdzKV0KKyAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGFyZ3MsICh0dXBsZSwgbGlzdCkpOgorICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmdzLCBzdHIpOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigibm90IGEgc3RyaW5nIG9yIGFyZ3VtZW50IGxpc3Q6ICVyIiAlIChhcmdzLCkpCisg
ICAgICAgIGFyZ3MgPSBzaGxleC5zcGxpdChhcmdzLCBwb3NpeD1zeXMucGxhdGZvcm0gIT0gIndp
bjMyIikKKyAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCisgICAgICAgIHdh
cm5pbmcgPSBkZXByZWNhdGVkLk1BSU5fU1RSX0FSR1MKKyAgICBjb25maWcgPSBnZXRfY29uZmln
KCkKKyAgICBwbHVnaW5tYW5hZ2VyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIKKyAgICB0cnk6Cisg
ICAgICAgIGlmIHBsdWdpbnM6CisgICAgICAgICAgICBmb3IgcGx1Z2luIGluIHBsdWdpbnM6Cisg
ICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwbHVnaW4sIHNpeC5zdHJpbmdfdHlwZXMpOgor
ICAgICAgICAgICAgICAgICAgICBwbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3BsdWdpbmFyZyhwbHVn
aW4pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcGx1Z2lubWFu
YWdlci5yZWdpc3RlcihwbHVnaW4pCisgICAgICAgIGlmIHdhcm5pbmc6CisgICAgICAgICAgICBj
b25maWcud2FybignQzEnLCB3YXJuaW5nKQorICAgICAgICByZXR1cm4gcGx1Z2lubWFuYWdlci5o
b29rLnB5dGVzdF9jbWRsaW5lX3BhcnNlKAorICAgICAgICAgICAgcGx1Z2lubWFuYWdlcj1wbHVn
aW5tYW5hZ2VyLCBhcmdzPWFyZ3MpCisgICAgZXhjZXB0IEJhc2VFeGNlcHRpb246CisgICAgICAg
IGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKKyAgICAgICAgcmFpc2UKKworCitjbGFzcyBQ
eXRlc3RQbHVnaW5NYW5hZ2VyKFBsdWdpbk1hbmFnZXIpOgorICAgICIiIgorICAgIE92ZXJ3cml0
ZXMgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlciA8cGx1Z2d5LlBsdWdpbk1hbmFnZXI+
YCB0byBhZGQgcHl0ZXN0LXNwZWNpZmljCisgICAgZnVuY3Rpb25hbGl0eToKKworICAgICogbG9h
ZGluZyBwbHVnaW5zIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYGBQWVRFU1RfUExVR0lOYGAgZW52
IHZhcmlhYmxlIGFuZAorICAgICAgYGBweXRlc3RfcGx1Z2luc2BgIGdsb2JhbCB2YXJpYWJsZXMg
Zm91bmQgaW4gcGx1Z2lucyBiZWluZyBsb2FkZWQ7CisgICAgKiBgYGNvbmZ0ZXN0LnB5YGAgbG9h
ZGluZyBkdXJpbmcgc3RhcnQtdXA7CisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6
CisgICAgICAgIHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLl9faW5pdF9fKCJweXRl
c3QiLCBpbXBscHJlZml4PSJweXRlc3RfIikKKyAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lu
cyA9IHNldCgpCisKKyAgICAgICAgIyBzdGF0ZSByZWxhdGVkIHRvIGxvY2FsIGNvbmZ0ZXN0IHBs
dWdpbnMKKyAgICAgICAgc2VsZi5fcGF0aDJjb25mbW9kcyA9IHt9CisgICAgICAgIHNlbGYuX2Nv
bmZ0ZXN0cGF0aDJtb2QgPSB7fQorICAgICAgICBzZWxmLl9jb25mY3V0ZGlyID0gTm9uZQorICAg
ICAgICBzZWxmLl9ub2NvbmZ0ZXN0ID0gRmFsc2UKKyAgICAgICAgc2VsZi5fZHVwbGljYXRlcGF0
aHMgPSBzZXQoKQorCisgICAgICAgIHNlbGYuYWRkX2hvb2tzcGVjcyhfcHl0ZXN0Lmhvb2tzcGVj
KQorICAgICAgICBzZWxmLnJlZ2lzdGVyKHNlbGYpCisgICAgICAgIGlmIG9zLmVudmlyb24uZ2V0
KCdQWVRFU1RfREVCVUcnKToKKyAgICAgICAgICAgIGVyciA9IHN5cy5zdGRlcnIKKyAgICAgICAg
ICAgIGVuY29kaW5nID0gZ2V0YXR0cihlcnIsICdlbmNvZGluZycsICd1dGY4JykKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBlcnIgPSBweS5pby5kdXBmaWxlKGVyciwgZW5jb2Rp
bmc9ZW5jb2RpbmcpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5zZXR3cml0ZXIoZXJyLndyaXRl
KQorICAgICAgICAgICAgc2VsZi5lbmFibGVfdHJhY2luZygpCisKKyAgICAgICAgIyBDb25maWcu
X2NvbnNpZGVyX2ltcG9ydGhvb2sgd2lsbCBzZXQgYSByZWFsIG9iamVjdCBpZiByZXF1aXJlZC4K
KyAgICAgICAgc2VsZi5yZXdyaXRlX2hvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5EdW1teVJld3Jp
dGVIb29rKCkKKworICAgIGRlZiBhZGRob29rcyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MpOgorICAg
ICAgICAiIiIKKyAgICAgICAgLi4gZGVwcmVjYXRlZDo6IDIuOAorCisgICAgICAgIFVzZSA6cHk6
bWV0aDpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcyA8UGx1Z2luTWFuYWdlci5h
ZGRfaG9va3NwZWNzPmAKKyAgICAgICAgaW5zdGVhZC4KKyAgICAgICAgIiIiCisgICAgICAgIHdh
cm5pbmcgPSBkaWN0KGNvZGU9IkkyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZnNsb2NhdGlv
bj1fcHl0ZXN0Ll9jb2RlLmdldGZzbGluZW5vKHN5cy5fZ2V0ZnJhbWUoMSkpLAorICAgICAgICAg
ICAgICAgICAgICAgICBub2RlaWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT0idXNlIHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tzcGVjcyBpbnN0ZWFkIG9mICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCBhZGRob29rcygpIG1ldGhvZC4iKQor
ICAgICAgICBzZWxmLl93YXJuKHdhcm5pbmcpCisgICAgICAgIHJldHVybiBzZWxmLmFkZF9ob29r
c3BlY3MobW9kdWxlX29yX2NsYXNzKQorCisgICAgZGVmIHBhcnNlX2hvb2tpbXBsX29wdHMoc2Vs
ZiwgcGx1Z2luLCBuYW1lKToKKyAgICAgICAgIyBweXRlc3QgaG9va3MgYXJlIGFsd2F5cyBwcmVm
aXhlZCB3aXRoIHB5dGVzdF8KKyAgICAgICAgIyBzbyB3ZSBhdm9pZCBhY2Nlc3NpbmcgcG9zc2li
bHkgbm9uLXJlYWRhYmxlIGF0dHJpYnV0ZXMKKyAgICAgICAgIyAoc2VlIGlzc3VlICMxMDczKQor
ICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6CisgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgIyBpZ25vcmUgc29tZSBoaXN0b3JpYyBzcGVjaWFsIG5hbWVzIHdoaWNo
IGNhbiBub3QgYmUgaG9va3MgYW55d2F5CisgICAgICAgIGlmIG5hbWUgPT0gInB5dGVzdF9wbHVn
aW5zIiBvciBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF9mdW5jYXJnX18iKToKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2luLCBuYW1lKQorICAgICAg
ICBvcHRzID0gc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwgc2VsZikucGFyc2VfaG9va2ltcGxf
b3B0cyhwbHVnaW4sIG5hbWUpCisgICAgICAgIGlmIG9wdHMgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBmb3IgbmFtZSBpbiAoInRyeWZpcnN0IiwgInRyeWxhc3QiLCAib3B0aW9uYWxob29rIiwg
Imhvb2t3cmFwcGVyIik6CisgICAgICAgICAgICAgICAgb3B0cy5zZXRkZWZhdWx0KG5hbWUsIGhh
c2F0dHIobWV0aG9kLCBuYW1lKSkKKyAgICAgICAgcmV0dXJuIG9wdHMKKworICAgIGRlZiBwYXJz
ZV9ob29rc3BlY19vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6CisgICAgICAgIG9w
dHMgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5wYXJzZV9ob29rc3BlY19vcHRz
KAorICAgICAgICAgICAgbW9kdWxlX29yX2NsYXNzLCBuYW1lKQorICAgICAgICBpZiBvcHRzIGlz
IE5vbmU6CisgICAgICAgICAgICBtZXRob2QgPSBnZXRhdHRyKG1vZHVsZV9vcl9jbGFzcywgbmFt
ZSkKKyAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgorICAgICAgICAg
ICAgICAgIG9wdHMgPSB7ImZpcnN0cmVzdWx0IjogaGFzYXR0cihtZXRob2QsICJmaXJzdHJlc3Vs
dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRob2Qs
ICJoaXN0b3JpYyIpfQorICAgICAgICByZXR1cm4gb3B0cworCisgICAgZGVmIHJlZ2lzdGVyKHNl
bGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKKyAgICAgICAgaWYgbmFtZSA9PSAncHl0ZXN0X2NhdGNo
bG9nJzoKKyAgICAgICAgICAgIHNlbGYuX3dhcm4oJ3B5dGVzdC1jYXRjaGxvZyBwbHVnaW4gaGFz
IGJlZW4gbWVyZ2VkIGludG8gdGhlIGNvcmUsICcKKyAgICAgICAgICAgICAgICAgICAgICAgJ3Bs
ZWFzZSByZW1vdmUgaXQgZnJvbSB5b3VyIHJlcXVpcmVtZW50cy4nKQorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIHJldCA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnJlZ2lz
dGVyKHBsdWdpbiwgbmFtZSkKKyAgICAgICAgaWYgcmV0OgorICAgICAgICAgICAgc2VsZi5ob29r
LnB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZC5jYWxsX2hpc3RvcmljKAorICAgICAgICAgICAgICAg
IGt3YXJncz1kaWN0KHBsdWdpbj1wbHVnaW4sIG1hbmFnZXI9c2VsZikpCisKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UocGx1Z2luLCB0eXBlcy5Nb2R1bGVUeXBlKToKKyAgICAgICAgICAgICAg
ICBzZWxmLmNvbnNpZGVyX21vZHVsZShwbHVnaW4pCisgICAgICAgIHJldHVybiByZXQKKworICAg
IGRlZiBnZXRwbHVnaW4oc2VsZiwgbmFtZSk6CisgICAgICAgICMgc3VwcG9ydCBkZXByZWNhdGVk
IG5hbWluZyBiZWNhdXNlIHBsdWdpbnMgKHhkaXN0IGUuZy4pIHVzZSBpdAorICAgICAgICByZXR1
cm4gc2VsZi5nZXRfcGx1Z2luKG5hbWUpCisKKyAgICBkZWYgaGFzcGx1Z2luKHNlbGYsIG5hbWUp
OgorICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB0aGUgcGx1Z2luIHdpdGggdGhlIGdpdmVuIG5h
bWUgaXMgcmVnaXN0ZXJlZC4iIiIKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5nZXRfcGx1Z2lu
KG5hbWUpKQorCisgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoc2VsZiwgY29uZmlnKToKKyAgICAg
ICAgIyBYWFggbm93IHRoYXQgdGhlIHBsdWdpbm1hbmFnZXIgZXhwb3NlcyBob29raW1wbCh0cnlm
aXJzdC4uLikKKyAgICAgICAgIyB3ZSBzaG91bGQgcmVtb3ZlIHRyeWZpcnN0L3RyeWxhc3QgYXMg
bWFya2VycworICAgICAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cnlmaXJzdDogbWFyayBhIGhvb2sgaW1wbGVt
ZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMg
ZWFybHkgYXMgcG9zc2libGUuIikKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1h
cmtlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ5bGFzdDogbWFyayBh
IGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSAiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwg
aXQgbGFzdC9hcyBsYXRlIGFzIHBvc3NpYmxlLiIpCisKKyAgICBkZWYgX3dhcm4oc2VsZiwgbWVz
c2FnZSk6CisgICAgICAgIGt3YXJncyA9IG1lc3NhZ2UgaWYgaXNpbnN0YW5jZShtZXNzYWdlLCBk
aWN0KSBlbHNlIHsKKyAgICAgICAgICAgICdjb2RlJzogJ0kxJywKKyAgICAgICAgICAgICdtZXNz
YWdlJzogbWVzc2FnZSwKKyAgICAgICAgICAgICdmc2xvY2F0aW9uJzogTm9uZSwKKyAgICAgICAg
ICAgICdub2RlaWQnOiBOb25lLAorICAgICAgICB9CisgICAgICAgIHNlbGYuaG9vay5weXRlc3Rf
bG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1rd2FyZ3MpCisKKyAgICAjCisgICAgIyBp
bnRlcm5hbCBBUEkgZm9yIGxvY2FsIGNvbmZ0ZXN0IHBsdWdpbiBoYW5kbGluZworICAgICMKKyAg
ICBkZWYgX3NldF9pbml0aWFsX2NvbmZ0ZXN0cyhzZWxmLCBuYW1lc3BhY2UpOgorICAgICAgICAi
IiIgbG9hZCBpbml0aWFsIGNvbmZ0ZXN0IGZpbGVzIGdpdmVuIGEgcHJlcGFyc2VkICJuYW1lc3Bh
Y2UiLgorICAgICAgICAgICAgQXMgY29uZnRlc3QgZmlsZXMgbWF5IGFkZCB0aGVpciBvd24gY29t
bWFuZCBsaW5lIG9wdGlvbnMKKyAgICAgICAgICAgIHdoaWNoIGhhdmUgYXJndW1lbnRzICgnLS1t
eS1vcHQgc29tZXBhdGgnKSB3ZSBtaWdodCBnZXQgc29tZQorICAgICAgICAgICAgZmFsc2UgcG9z
aXRpdmVzLiAgQWxsIGJ1aWx0aW4gYW5kIDNyZCBwYXJ0eSBwbHVnaW5zIHdpbGwgaGF2ZQorICAg
ICAgICAgICAgYmVlbiBsb2FkZWQsIGhvd2V2ZXIsIHNvIGNvbW1vbiBvcHRpb25zIHdpbGwgbm90
IGNvbmZ1c2Ugb3VyIGxvZ2ljCisgICAgICAgICAgICBoZXJlLgorICAgICAgICAiIiIKKyAgICAg
ICAgY3VycmVudCA9IHB5LnBhdGgubG9jYWwoKQorICAgICAgICBzZWxmLl9jb25mY3V0ZGlyID0g
Y3VycmVudC5qb2luKG5hbWVzcGFjZS5jb25mY3V0ZGlyLCBhYnM9VHJ1ZSkgXAorICAgICAgICAg
ICAgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIgZWxzZSBOb25lCisgICAgICAgIHNlbGYuX25vY29u
ZnRlc3QgPSBuYW1lc3BhY2Uubm9jb25mdGVzdAorICAgICAgICB0ZXN0cGF0aHMgPSBuYW1lc3Bh
Y2UuZmlsZV9vcl9kaXIKKyAgICAgICAgZm91bmRhbmNob3IgPSBGYWxzZQorICAgICAgICBmb3Ig
cGF0aCBpbiB0ZXN0cGF0aHM6CisgICAgICAgICAgICBwYXRoID0gc3RyKHBhdGgpCisgICAgICAg
ICAgICAjIHJlbW92ZSBub2RlLWlkIHN5bnRheAorICAgICAgICAgICAgaSA9IHBhdGguZmluZCgi
OjoiKQorICAgICAgICAgICAgaWYgaSAhPSAtMToKKyAgICAgICAgICAgICAgICBwYXRoID0gcGF0
aFs6aV0KKyAgICAgICAgICAgIGFuY2hvciA9IGN1cnJlbnQuam9pbihwYXRoLCBhYnM9MSkKKyAg
ICAgICAgICAgIGlmIGV4aXN0cyhhbmNob3IpOiAgIyB3ZSBmb3VuZCBzb21lIGZpbGUgb2JqZWN0
CisgICAgICAgICAgICAgICAgc2VsZi5fdHJ5X2xvYWRfY29uZnRlc3QoYW5jaG9yKQorICAgICAg
ICAgICAgICAgIGZvdW5kYW5jaG9yID0gVHJ1ZQorICAgICAgICBpZiBub3QgZm91bmRhbmNob3I6
CisgICAgICAgICAgICBzZWxmLl90cnlfbG9hZF9jb25mdGVzdChjdXJyZW50KQorCisgICAgZGVm
IF90cnlfbG9hZF9jb25mdGVzdChzZWxmLCBhbmNob3IpOgorICAgICAgICBzZWxmLl9nZXRjb25m
dGVzdG1vZHVsZXMoYW5jaG9yKQorICAgICAgICAjIGxldCdzIGFsc28gY29uc2lkZXIgdGVzdCog
c3ViZGlycworICAgICAgICBpZiBhbmNob3IuY2hlY2soZGlyPTEpOgorICAgICAgICAgICAgZm9y
IHggaW4gYW5jaG9yLmxpc3RkaXIoInRlc3QqIik6CisgICAgICAgICAgICAgICAgaWYgeC5jaGVj
ayhkaXI9MSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyh4
KQorCisgICAgZGVmIF9nZXRjb25mdGVzdG1vZHVsZXMoc2VsZiwgcGF0aCk6CisgICAgICAgIGlm
IHNlbGYuX25vY29uZnRlc3Q6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgyY29uZm1vZHNbcGF0aF0KKyAgICAgICAgZXhj
ZXB0IEtleUVycm9yOgorICAgICAgICAgICAgaWYgcGF0aC5pc2ZpbGUoKToKKyAgICAgICAgICAg
ICAgICBjbGlzdCA9IHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwYXRoLmRpcnBhdGgoKSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBYWFggdGhlc2UgZGF5cyB3ZSBtYXkg
cmF0aGVyIHdhbnQgdG8gdXNlIGNvbmZpZy5yb290ZGlyCisgICAgICAgICAgICAgICAgIyBhbmQg
YWxsb3cgdXNlcnMgdG8gb3B0IGludG8gbG9va2luZyBpbnRvIHRoZSByb290ZGlyIHBhcmVudAor
ICAgICAgICAgICAgICAgICMgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiByZXF1aXJpbmcgdG8gc3Bl
Y2lmeSBjb25mY3V0ZGlyCisgICAgICAgICAgICAgICAgY2xpc3QgPSBbXQorICAgICAgICAgICAg
ICAgIGZvciBwYXJlbnQgaW4gcGF0aC5wYXJ0cygpOgorICAgICAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9jb25mY3V0ZGlyIGFuZCBzZWxmLl9jb25mY3V0ZGlyLnJlbHRvKHBhcmVudCk6CisgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBjb25mdGVz
dHBhdGggPSBwYXJlbnQuam9pbigiY29uZnRlc3QucHkiKQorICAgICAgICAgICAgICAgICAgICBp
ZiBjb25mdGVzdHBhdGguaXNmaWxlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBz
ZWxmLl9pbXBvcnRjb25mdGVzdChjb25mdGVzdHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAg
ICBjbGlzdC5hcHBlbmQobW9kKQorCisgICAgICAgICAgICBzZWxmLl9wYXRoMmNvbmZtb2RzW3Bh
dGhdID0gY2xpc3QKKyAgICAgICAgICAgIHJldHVybiBjbGlzdAorCisgICAgZGVmIF9yZ2V0X3dp
dGhfY29uZm1vZChzZWxmLCBuYW1lLCBwYXRoKToKKyAgICAgICAgbW9kdWxlcyA9IHNlbGYuX2dl
dGNvbmZ0ZXN0bW9kdWxlcyhwYXRoKQorICAgICAgICBmb3IgbW9kIGluIHJldmVyc2VkKG1vZHVs
ZXMpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBtb2QsIGdldGF0
dHIobW9kLCBuYW1lKQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJhaXNlIEtleUVycm9yKG5hbWUpCisKKyAgICBk
ZWYgX2ltcG9ydGNvbmZ0ZXN0KHNlbGYsIGNvbmZ0ZXN0cGF0aCk6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9jb25mdGVzdHBhdGgybW9kW2NvbmZ0ZXN0cGF0aF0KKyAg
ICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGtncGF0aCA9IGNvbmZ0ZXN0cGF0
aC5weXBrZ3BhdGgoKQorICAgICAgICAgICAgaWYgcGtncGF0aCBpcyBOb25lOgorICAgICAgICAg
ICAgICAgIF9lbnN1cmVfcmVtb3ZlZF9zeXNtb2R1bGUoY29uZnRlc3RwYXRoLnB1cmViYXNlbmFt
ZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtb2QgPSBjb25mdGVzdHBhdGgu
cHlpbXBvcnQoKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAg
ICByYWlzZSBDb25mdGVzdEltcG9ydEZhaWx1cmUoY29uZnRlc3RwYXRoLCBzeXMuZXhjX2luZm8o
KSkKKworICAgICAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lucy5hZGQobW9kKQorICAgICAg
ICAgICAgc2VsZi5fY29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBhdGhdID0gbW9kCisgICAgICAg
ICAgICBkaXJwYXRoID0gY29uZnRlc3RwYXRoLmRpcnBhdGgoKQorICAgICAgICAgICAgaWYgZGly
cGF0aCBpbiBzZWxmLl9wYXRoMmNvbmZtb2RzOgorICAgICAgICAgICAgICAgIGZvciBwYXRoLCBt
b2RzIGluIHNlbGYuX3BhdGgyY29uZm1vZHMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAg
aWYgcGF0aCBhbmQgcGF0aC5yZWx0byhkaXJwYXRoKSBvciBwYXRoID09IGRpcnBhdGg6CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbW9kIG5vdCBpbiBtb2RzCisgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RzLmFwcGVuZChtb2QpCisgICAgICAgICAgICBzZWxmLnRyYWNlKCJsb2Fk
ZWQgY29uZnRlc3Rtb2R1bGUgJXIiICUgKG1vZCkpCisgICAgICAgICAgICBzZWxmLmNvbnNpZGVy
X2NvbmZ0ZXN0KG1vZCkKKyAgICAgICAgICAgIHJldHVybiBtb2QKKworICAgICMKKyAgICAjIEFQ
SSBmb3IgYm9vdHN0cmFwcGluZyBwbHVnaW4gbG9hZGluZworICAgICMKKyAgICAjCisKKyAgICBk
ZWYgY29uc2lkZXJfcHJlcGFyc2Uoc2VsZiwgYXJncyk6CisgICAgICAgIGZvciBvcHQxLCBvcHQy
IGluIHppcChhcmdzLCBhcmdzWzE6XSk6CisgICAgICAgICAgICBpZiBvcHQxID09ICItcCI6Cisg
ICAgICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9wbHVnaW5hcmcob3B0MikKKworICAgIGRlZiBj
b25zaWRlcl9wbHVnaW5hcmcoc2VsZiwgYXJnKToKKyAgICAgICAgaWYgYXJnLnN0YXJ0c3dpdGgo
Im5vOiIpOgorICAgICAgICAgICAgbmFtZSA9IGFyZ1szOl0KKyAgICAgICAgICAgIHNlbGYuc2V0
X2Jsb2NrZWQobmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVz
dF8iKToKKyAgICAgICAgICAgICAgICBzZWxmLnNldF9ibG9ja2VkKCJweXRlc3RfIiArIG5hbWUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oYXJnKQorCisg
ICAgZGVmIGNvbnNpZGVyX2NvbmZ0ZXN0KHNlbGYsIGNvbmZ0ZXN0bW9kdWxlKToKKyAgICAgICAg
c2VsZi5yZWdpc3Rlcihjb25mdGVzdG1vZHVsZSwgbmFtZT1jb25mdGVzdG1vZHVsZS5fX2ZpbGVf
XykKKworICAgIGRlZiBjb25zaWRlcl9lbnYoc2VsZik6CisgICAgICAgIHNlbGYuX2ltcG9ydF9w
bHVnaW5fc3BlY3Mob3MuZW52aXJvbi5nZXQoIlBZVEVTVF9QTFVHSU5TIikpCisKKyAgICBkZWYg
Y29uc2lkZXJfbW9kdWxlKHNlbGYsIG1vZCk6CisgICAgICAgIHNlbGYuX2ltcG9ydF9wbHVnaW5f
c3BlY3MoZ2V0YXR0cihtb2QsICdweXRlc3RfcGx1Z2lucycsIFtdKSkKKworICAgIGRlZiBfaW1w
b3J0X3BsdWdpbl9zcGVjcyhzZWxmLCBzcGVjKToKKyAgICAgICAgcGx1Z2lucyA9IF9nZXRfcGx1
Z2luX3NwZWNzX2FzX2xpc3Qoc3BlYykKKyAgICAgICAgZm9yIGltcG9ydF9zcGVjIGluIHBsdWdp
bnM6CisgICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oaW1wb3J0X3NwZWMpCisKKyAgICBk
ZWYgaW1wb3J0X3BsdWdpbihzZWxmLCBtb2RuYW1lKToKKyAgICAgICAgIyBtb3N0IG9mdGVuIG1v
ZG5hbWUgcmVmZXJzIHRvIGJ1aWx0aW4gbW9kdWxlcywgZS5nLiAicHl0ZXN0ZXIiLAorICAgICAg
ICAjICJ0ZXJtaW5hbCIgb3IgImNhcHR1cmUiLiAgVGhvc2UgcGx1Z2lucyBhcmUgcmVnaXN0ZXJl
ZCB1bmRlciB0aGVpcgorICAgICAgICAjIGJhc2VuYW1lIGZvciBoaXN0b3JpYyBwdXJwb3NlcyBi
dXQgbXVzdCBiZSBpbXBvcnRlZCB3aXRoIHRoZQorICAgICAgICAjIF9weXRlc3QgcHJlZml4Lgor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtb2RuYW1lLCAoc2l4LnRleHRfdHlwZSwgc3RyKSks
ICJtb2R1bGUgbmFtZSBhcyB0ZXh0IHJlcXVpcmVkLCBnb3QgJXIiICUgbW9kbmFtZQorICAgICAg
ICBtb2RuYW1lID0gc3RyKG1vZG5hbWUpCisgICAgICAgIGlmIHNlbGYuaXNfYmxvY2tlZChtb2Ru
YW1lKSBvciBzZWxmLmdldF9wbHVnaW4obW9kbmFtZSkgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgaWYgbW9kbmFtZSBpbiBidWlsdGluX3BsdWdpbnM6CisgICAgICAg
ICAgICBpbXBvcnRzcGVjID0gIl9weXRlc3QuIiArIG1vZG5hbWUKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGltcG9ydHNwZWMgPSBtb2RuYW1lCisgICAgICAgIHNlbGYucmV3cml0ZV9ob29r
Lm1hcmtfcmV3cml0ZShpbXBvcnRzcGVjKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBfX2lt
cG9ydF9fKGltcG9ydHNwZWMpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgorICAg
ICAgICAgICAgbmV3X2V4Y190eXBlID0gSW1wb3J0RXJyb3IKKyAgICAgICAgICAgIG5ld19leGNf
bWVzc2FnZSA9ICdFcnJvciBpbXBvcnRpbmcgcGx1Z2luICIlcyI6ICVzJyAlIChtb2RuYW1lLCBz
YWZlX3N0cihlLmFyZ3NbMF0pKQorICAgICAgICAgICAgbmV3X2V4YyA9IG5ld19leGNfdHlwZShu
ZXdfZXhjX21lc3NhZ2UpCisKKyAgICAgICAgICAgIHNpeC5yZXJhaXNlKG5ld19leGNfdHlwZSwg
bmV3X2V4Yywgc3lzLmV4Y19pbmZvKClbMl0pCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgaWYgbm90IGhhc2F0
dHIocHl0ZXN0LCAnc2tpcCcpIG9yIG5vdCBpc2luc3RhbmNlKGUsIHB5dGVzdC5za2lwLkV4Y2Vw
dGlvbik6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHNlbGYuX3dhcm4oInNr
aXBwZWQgcGx1Z2luICVyOiAlcyIgJSAoKG1vZG5hbWUsIGUubXNnKSkpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1tpbXBvcnRzcGVjXQorICAgICAgICAgICAg
c2VsZi5yZWdpc3Rlcihtb2QsIG1vZG5hbWUpCisKKworZGVmIF9nZXRfcGx1Z2luX3NwZWNzX2Fz
X2xpc3Qoc3BlY3MpOgorICAgICIiIgorICAgIFBhcnNlcyBhIGxpc3Qgb2YgInBsdWdpbiBzcGVj
cyIgYW5kIHJldHVybnMgYSBsaXN0IG9mIHBsdWdpbiBuYW1lcy4KKworICAgIFBsdWdpbiBzcGVj
cyBjYW4gYmUgZ2l2ZW4gYXMgYSBsaXN0IG9mIHN0cmluZ3Mgc2VwYXJhdGVkIGJ5ICIsIiBvciBh
bHJlYWR5IGFzIGEgbGlzdC90dXBsZSBpbgorICAgIHdoaWNoIGNhc2UgaXQgaXMgcmV0dXJuZWQg
YXMgYSBsaXN0LiBTcGVjcyBjYW4gYWxzbyBiZSBgTm9uZWAgaW4gd2hpY2ggY2FzZSBhbgorICAg
IGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQuCisgICAgIiIiCisgICAgaWYgc3BlY3MgaXMgbm90IE5v
bmU6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3BlY3MsIHN0cik6CisgICAgICAgICAgICBzcGVj
cyA9IHNwZWNzLnNwbGl0KCcsJykgaWYgc3BlY3MgZWxzZSBbXQorICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShzcGVjcywgKGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICByYWlzZSBVc2FnZUVy
cm9yKCJQbHVnaW4gc3BlY3MgbXVzdCBiZSBhICcsJy1zZXBhcmF0ZWQgc3RyaW5nIG9yIGEgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlzdC90dXBsZSBvZiBzdHJpbmdzIGZvciBw
bHVnaW4gbmFtZXMuIEdpdmVuOiAlciIgJSBzcGVjcykKKyAgICAgICAgcmV0dXJuIGxpc3Qoc3Bl
Y3MpCisgICAgcmV0dXJuIFtdCisKKworY2xhc3MgUGFyc2VyOgorICAgICIiIiBQYXJzZXIgZm9y
IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYW5kIGluaS1maWxlIHZhbHVlcy4KKworICAgIDppdmFy
IGV4dHJhX2luZm86IGRpY3Qgb2YgZ2VuZXJpYyBwYXJhbSAtPiB2YWx1ZSB0byBkaXNwbGF5IGlu
IGNhc2UKKyAgICAgICAgdGhlcmUncyBhbiBlcnJvciBwcm9jZXNzaW5nIHRoZSBjb21tYW5kIGxp
bmUgYXJndW1lbnRzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVzYWdlPU5v
bmUsIHByb2Nlc3NvcHQ9Tm9uZSk6CisgICAgICAgIHNlbGYuX2Fub255bW91cyA9IE9wdGlvbkdy
b3VwKCJjdXN0b20gb3B0aW9ucyIsIHBhcnNlcj1zZWxmKQorICAgICAgICBzZWxmLl9ncm91cHMg
PSBbXQorICAgICAgICBzZWxmLl9wcm9jZXNzb3B0ID0gcHJvY2Vzc29wdAorICAgICAgICBzZWxm
Ll91c2FnZSA9IHVzYWdlCisgICAgICAgIHNlbGYuX2luaWRpY3QgPSB7fQorICAgICAgICBzZWxm
Ll9pbmluYW1lcyA9IFtdCisgICAgICAgIHNlbGYuZXh0cmFfaW5mbyA9IHt9CisKKyAgICBkZWYg
cHJvY2Vzc29wdGlvbihzZWxmLCBvcHRpb24pOgorICAgICAgICBpZiBzZWxmLl9wcm9jZXNzb3B0
OgorICAgICAgICAgICAgaWYgb3B0aW9uLmRlc3Q6CisgICAgICAgICAgICAgICAgc2VsZi5fcHJv
Y2Vzc29wdChvcHRpb24pCisKKyAgICBkZWYgZ2V0Z3JvdXAoc2VsZiwgbmFtZSwgZGVzY3JpcHRp
b249IiIsIGFmdGVyPU5vbmUpOgorICAgICAgICAiIiIgZ2V0IChvciBjcmVhdGUpIGEgbmFtZWQg
b3B0aW9uIEdyb3VwLgorCisgICAgICAgIDpuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24gZ3JvdXAu
CisgICAgICAgIDpkZXNjcmlwdGlvbjogbG9uZyBkZXNjcmlwdGlvbiBmb3IgLS1oZWxwIG91dHB1
dC4KKyAgICAgICAgOmFmdGVyOiBuYW1lIG9mIG90aGVyIGdyb3VwLCB1c2VkIGZvciBvcmRlcmlu
ZyAtLWhlbHAgb3V0cHV0LgorCisgICAgICAgIFRoZSByZXR1cm5lZCBncm91cCBvYmplY3QgaGFz
IGFuIGBgYWRkb3B0aW9uYGAgbWV0aG9kIHdpdGggdGhlIHNhbWUKKyAgICAgICAgc2lnbmF0dXJl
IGFzIDpweTpmdW5jOmBwYXJzZXIuYWRkb3B0aW9uCisgICAgICAgIDxfcHl0ZXN0LmNvbmZpZy5Q
YXJzZXIuYWRkb3B0aW9uPmAgYnV0IHdpbGwgYmUgc2hvd24gaW4gdGhlCisgICAgICAgIHJlc3Bl
Y3RpdmUgZ3JvdXAgaW4gdGhlIG91dHB1dCBvZiBgYHB5dGVzdC4gLS1oZWxwYGAuCisgICAgICAg
ICIiIgorICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBzOgorICAgICAgICAgICAgaWYg
Z3JvdXAubmFtZSA9PSBuYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiBncm91cAorICAgICAg
ICBncm91cCA9IE9wdGlvbkdyb3VwKG5hbWUsIGRlc2NyaXB0aW9uLCBwYXJzZXI9c2VsZikKKyAg
ICAgICAgaSA9IDAKKyAgICAgICAgZm9yIGksIGdycCBpbiBlbnVtZXJhdGUoc2VsZi5fZ3JvdXBz
KToKKyAgICAgICAgICAgIGlmIGdycC5uYW1lID09IGFmdGVyOgorICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgIHNlbGYuX2dyb3Vwcy5pbnNlcnQoaSArIDEsIGdyb3VwKQorICAgICAgICBy
ZXR1cm4gZ3JvdXAKKworICAgIGRlZiBhZGRvcHRpb24oc2VsZiwgKm9wdHMsICoqYXR0cnMpOgor
ICAgICAgICAiIiIgcmVnaXN0ZXIgYSBjb21tYW5kIGxpbmUgb3B0aW9uLgorCisgICAgICAgIDpv
cHRzOiBvcHRpb24gbmFtZXMsIGNhbiBiZSBzaG9ydCBvciBsb25nIG9wdGlvbnMuCisgICAgICAg
IDphdHRyczogc2FtZSBhdHRyaWJ1dGVzIHdoaWNoIHRoZSBgYGFkZF9vcHRpb24oKWBgIGZ1bmN0
aW9uIG9mIHRoZQorICAgICAgICAgICBgYXJncGFyc2UgbGlicmFyeQorICAgICAgICAgICA8aHR0
cDovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvYXJncGFyc2UuaHRtbD5gXworICAgICAgICAg
ICBhY2NlcHRzLgorCisgICAgICAgIEFmdGVyIGNvbW1hbmQgbGluZSBwYXJzaW5nIG9wdGlvbnMg
YXJlIGF2YWlsYWJsZSBvbiB0aGUgcHl0ZXN0IGNvbmZpZworICAgICAgICBvYmplY3QgdmlhIGBg
Y29uZmlnLm9wdGlvbi5OQU1FYGAgd2hlcmUgYGBOQU1FYGAgaXMgdXN1YWxseSBzZXQKKyAgICAg
ICAgYnkgcGFzc2luZyBhIGBgZGVzdGBgIGF0dHJpYnV0ZSwgZm9yIGV4YW1wbGUKKyAgICAgICAg
YGBhZGRvcHRpb24oIi0tbG9uZyIsIGRlc3Q9Ik5BTUUiLCAuLi4pYGAuCisgICAgICAgICIiIgor
ICAgICAgICBzZWxmLl9hbm9ueW1vdXMuYWRkb3B0aW9uKCpvcHRzLCAqKmF0dHJzKQorCisgICAg
ZGVmIHBhcnNlKHNlbGYsIGFyZ3MsIG5hbWVzcGFjZT1Ob25lKToKKyAgICAgICAgZnJvbSBfcHl0
ZXN0Ll9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5X2FyZ2NvbXBsZXRlCisgICAgICAgIHNlbGYub3B0
cGFyc2VyID0gc2VsZi5fZ2V0cGFyc2VyKCkKKyAgICAgICAgdHJ5X2FyZ2NvbXBsZXRlKHNlbGYu
b3B0cGFyc2VyKQorICAgICAgICByZXR1cm4gc2VsZi5vcHRwYXJzZXIucGFyc2VfYXJncyhbc3Ry
KHgpIGZvciB4IGluIGFyZ3NdLCBuYW1lc3BhY2U9bmFtZXNwYWNlKQorCisgICAgZGVmIF9nZXRw
YXJzZXIoc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0IGZp
bGVzY29tcGxldGVyCisgICAgICAgIG9wdHBhcnNlciA9IE15T3B0aW9uUGFyc2VyKHNlbGYsIHNl
bGYuZXh0cmFfaW5mbykKKyAgICAgICAgZ3JvdXBzID0gc2VsZi5fZ3JvdXBzICsgW3NlbGYuX2Fu
b255bW91c10KKyAgICAgICAgZm9yIGdyb3VwIGluIGdyb3VwczoKKyAgICAgICAgICAgIGlmIGdy
b3VwLm9wdGlvbnM6CisgICAgICAgICAgICAgICAgZGVzYyA9IGdyb3VwLmRlc2NyaXB0aW9uIG9y
IGdyb3VwLm5hbWUKKyAgICAgICAgICAgICAgICBhcmdncm91cCA9IG9wdHBhcnNlci5hZGRfYXJn
dW1lbnRfZ3JvdXAoZGVzYykKKyAgICAgICAgICAgICAgICBmb3Igb3B0aW9uIGluIGdyb3VwLm9w
dGlvbnM6CisgICAgICAgICAgICAgICAgICAgIG4gPSBvcHRpb24ubmFtZXMoKQorICAgICAgICAg
ICAgICAgICAgICBhID0gb3B0aW9uLmF0dHJzKCkKKyAgICAgICAgICAgICAgICAgICAgYXJnZ3Jv
dXAuYWRkX2FyZ3VtZW50KCpuLCAqKmEpCisgICAgICAgICMgYmFzaCBsaWtlIGF1dG9jb21wbGV0
aW9uIGZvciBkaXJzIChhcHBlbmRpbmcgJy8nKQorICAgICAgICBvcHRwYXJzZXIuYWRkX2FyZ3Vt
ZW50KEZJTEVfT1JfRElSLCBuYXJncz0nKicpLmNvbXBsZXRlciA9IGZpbGVzY29tcGxldGVyCisg
ICAgICAgIHJldHVybiBvcHRwYXJzZXIKKworICAgIGRlZiBwYXJzZV9zZXRvcHRpb24oc2VsZiwg
YXJncywgb3B0aW9uLCBuYW1lc3BhY2U9Tm9uZSk6CisgICAgICAgIHBhcnNlZG9wdGlvbiA9IHNl
bGYucGFyc2UoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkKKyAgICAgICAgZm9yIG5hbWUsIHZh
bHVlIGluIHBhcnNlZG9wdGlvbi5fX2RpY3RfXy5pdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0
cihvcHRpb24sIG5hbWUsIHZhbHVlKQorICAgICAgICByZXR1cm4gZ2V0YXR0cihwYXJzZWRvcHRp
b24sIEZJTEVfT1JfRElSKQorCisgICAgZGVmIHBhcnNlX2tub3duX2FyZ3Moc2VsZiwgYXJncywg
bmFtZXNwYWNlPU5vbmUpOgorICAgICAgICAiIiJwYXJzZXMgYW5kIHJldHVybnMgYSBuYW1lc3Bh
Y2Ugb2JqZWN0IHdpdGgga25vd24gYXJndW1lbnRzIGF0IHRoaXMKKyAgICAgICAgcG9pbnQuCisg
ICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9h
cmdzKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2UpWzBdCisKKyAgICBkZWYgcGFyc2Vfa25vd25f
YW5kX3Vua25vd25fYXJncyhzZWxmLCBhcmdzLCBuYW1lc3BhY2U9Tm9uZSk6CisgICAgICAgICIi
InBhcnNlcyBhbmQgcmV0dXJucyBhIG5hbWVzcGFjZSBvYmplY3Qgd2l0aCBrbm93biBhcmd1bWVu
dHMsIGFuZAorICAgICAgICB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyB1bmtub3duIGF0IHRoaXMg
cG9pbnQuCisgICAgICAgICIiIgorICAgICAgICBvcHRwYXJzZXIgPSBzZWxmLl9nZXRwYXJzZXIo
KQorICAgICAgICBhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBhcmdzXQorICAgICAgICByZXR1cm4g
b3B0cGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkKKwor
ICAgIGRlZiBhZGRpbmkoc2VsZiwgbmFtZSwgaGVscCwgdHlwZT1Ob25lLCBkZWZhdWx0PU5vbmUp
OgorICAgICAgICAiIiIgcmVnaXN0ZXIgYW4gaW5pLWZpbGUgb3B0aW9uLgorCisgICAgICAgIDpu
YW1lOiBuYW1lIG9mIHRoZSBpbmktdmFyaWFibGUKKyAgICAgICAgOnR5cGU6IHR5cGUgb2YgdGhl
IHZhcmlhYmxlLCBjYW4gYmUgYGBwYXRobGlzdGBgLCBgYGFyZ3NgYCwgYGBsaW5lbGlzdGBgCisg
ICAgICAgICAgICAgICBvciBgYGJvb2xgYC4KKyAgICAgICAgOmRlZmF1bHQ6IGRlZmF1bHQgdmFs
dWUgaWYgbm8gaW5pLWZpbGUgb3B0aW9uIGV4aXN0cyBidXQgaXMgcXVlcmllZC4KKworICAgICAg
ICBUaGUgdmFsdWUgb2YgaW5pLXZhcmlhYmxlcyBjYW4gYmUgcmV0cmlldmVkIHZpYSBhIGNhbGwg
dG8KKyAgICAgICAgOnB5OmZ1bmM6YGNvbmZpZy5nZXRpbmkobmFtZSkgPF9weXRlc3QuY29uZmln
LkNvbmZpZy5nZXRpbmk+YC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB0eXBlIGluIChO
b25lLCAicGF0aGxpc3QiLCAiYXJncyIsICJsaW5lbGlzdCIsICJib29sIikKKyAgICAgICAgc2Vs
Zi5faW5pZGljdFtuYW1lXSA9IChoZWxwLCB0eXBlLCBkZWZhdWx0KQorICAgICAgICBzZWxmLl9p
bmluYW1lcy5hcHBlbmQobmFtZSkKKworCitjbGFzcyBBcmd1bWVudEVycm9yKEV4Y2VwdGlvbik6
CisgICAgIiIiCisgICAgUmFpc2VkIGlmIGFuIEFyZ3VtZW50IGluc3RhbmNlIGlzIGNyZWF0ZWQg
d2l0aCBpbnZhbGlkIG9yCisgICAgaW5jb25zaXN0ZW50IGFyZ3VtZW50cy4KKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2csIG9wdGlvbik6CisgICAgICAgIHNlbGYubXNnID0g
bXNnCisgICAgICAgIHNlbGYub3B0aW9uX2lkID0gc3RyKG9wdGlvbikKKworICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgorICAgICAgICBpZiBzZWxmLm9wdGlvbl9pZDoKKyAgICAgICAgICAgIHJldHVy
biAib3B0aW9uICVzOiAlcyIgJSAoc2VsZi5vcHRpb25faWQsIHNlbGYubXNnKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubXNnCisKKworY2xhc3MgQXJndW1lbnQ6Cisg
ICAgIiIiY2xhc3MgdGhhdCBtaW1pY3MgdGhlIG5lY2Vzc2FyeSBiZWhhdmlvdXIgb2Ygb3B0cGFy
c2UuT3B0aW9uCisKKyAgICBpdHMgY3VycmVudGx5IGEgbGVhc3QgZWZmb3J0IGltcGxlbWVudGF0
aW9uCisgICAgYW5kIGlnbm9yaW5nIGNob2ljZXMgYW5kIGludGVnZXIgcHJlZml4ZXMKKyAgICBo
dHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvb3B0cGFyc2UuaHRtbCNvcHRwYXJzZS1z
dGFuZGFyZC1vcHRpb24tdHlwZXMKKyAgICAiIiIKKyAgICBfdHlwX21hcCA9IHsKKyAgICAgICAg
J2ludCc6IGludCwKKyAgICAgICAgJ3N0cmluZyc6IHN0ciwKKyAgICAgICAgJ2Zsb2F0JzogZmxv
YXQsCisgICAgICAgICdjb21wbGV4JzogY29tcGxleCwKKyAgICB9CisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgKm5hbWVzLCAqKmF0dHJzKToKKyAgICAgICAgIiIic3RvcmUgcGFybXMgaW4gcHJp
dmF0ZSB2YXJzIGZvciB1c2UgaW4gYWRkX2FyZ3VtZW50IiIiCisgICAgICAgIHNlbGYuX2F0dHJz
ID0gYXR0cnMKKyAgICAgICAgc2VsZi5fc2hvcnRfb3B0cyA9IFtdCisgICAgICAgIHNlbGYuX2xv
bmdfb3B0cyA9IFtdCisgICAgICAgIHNlbGYuZGVzdCA9IGF0dHJzLmdldCgnZGVzdCcpCisgICAg
ICAgIGlmICclZGVmYXVsdCcgaW4gKGF0dHJzLmdldCgnaGVscCcpIG9yICcnKToKKyAgICAgICAg
ICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgJ3B5dGVzdCBub3cgdXNlcyBhcmdw
YXJzZS4gIiVkZWZhdWx0IiBzaG91bGQgYmUnCisgICAgICAgICAgICAgICAgJyBjaGFuZ2VkIHRv
ICIlKGRlZmF1bHQpcyIgJywKKyAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCisg
ICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0zKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0
eXAgPSBhdHRyc1sndHlwZSddCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgdGhpcyBtaWdodCByYWlzZSBhIGtl
eWVycm9yIGFzIHdlbGwsIGRvbid0IHdhbnQgdG8gY2F0Y2ggdGhhdAorICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZSh0eXAsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgICAgIGlmIHR5
cCA9PSAnY2hvaWNlJzoKKyAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAg
ICAgICAgICAgICAgICAgICAgICd0eXBlIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigpIGlzIGEgc3Ry
aW5nICVyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICcgRm9yIHBhcnNlYXJnIHRoaXMgaXMg
b3B0aW9uYWwgYW5kIHdoZW4gc3VwcGxpZWQnCisgICAgICAgICAgICAgICAgICAgICAgICAnIHNo
b3VsZCBiZSBhIHR5cGUuJworICAgICAgICAgICAgICAgICAgICAgICAgJyAob3B0aW9uczogJXMp
JyAlICh0eXAsIG5hbWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2Fy
bmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKKyAgICAgICAgICAg
ICAgICAgICAgIyBhcmdwYXJzZSBleHBlY3RzIGEgdHlwZSBoZXJlIHRha2UgaXQgZnJvbQorICAg
ICAgICAgICAgICAgICAgICAjIHRoZSB0eXBlIG9mIHRoZSBmaXJzdCBlbGVtZW50CisgICAgICAg
ICAgICAgICAgICAgIGF0dHJzWyd0eXBlJ10gPSB0eXBlKGF0dHJzWydjaG9pY2VzJ11bMF0pCisg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigK
KyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigpIGlz
IGEgc3RyaW5nICVyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICcgRm9yIHBhcnNlYXJnIHRo
aXMgc2hvdWxkIGJlIGEgdHlwZS4nCisgICAgICAgICAgICAgICAgICAgICAgICAnIChvcHRpb25z
OiAlcyknICUgKHR5cCwgbmFtZXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRp
b25XYXJuaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0zKQorICAgICAg
ICAgICAgICAgICAgICBhdHRyc1sndHlwZSddID0gQXJndW1lbnQuX3R5cF9tYXBbdHlwXQorICAg
ICAgICAgICAgICAgICMgdXNlZCBpbiB0ZXN0X3BhcnNlb3B0IC0+IHRlc3RfcGFyc2VfZGVmYXVs
dGdldHRlcgorICAgICAgICAgICAgICAgIHNlbGYudHlwZSA9IGF0dHJzWyd0eXBlJ10KKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi50eXBlID0gdHlwCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgICMgYXR0cmlidXRlIGV4aXN0ZW5jZSBpcyB0ZXN0ZWQgaW4gQ29uZmln
Ll9wcm9jZXNzb3B0CisgICAgICAgICAgICBzZWxmLmRlZmF1bHQgPSBhdHRyc1snZGVmYXVsdCdd
CisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2Vs
Zi5fc2V0X29wdF9zdHJpbmdzKG5hbWVzKQorICAgICAgICBpZiBub3Qgc2VsZi5kZXN0OgorICAg
ICAgICAgICAgaWYgc2VsZi5fbG9uZ19vcHRzOgorICAgICAgICAgICAgICAgIHNlbGYuZGVzdCA9
IHNlbGYuX2xvbmdfb3B0c1swXVsyOl0ucmVwbGFjZSgnLScsICdfJykKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLmRlc3Qg
PSBzZWxmLl9zaG9ydF9vcHRzWzBdWzE6XQorICAgICAgICAgICAgICAgIGV4Y2VwdCBJbmRleEVy
cm9yOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVycm9yKAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ25lZWQgYSBsb25nIG9yIHNob3J0IG9wdGlvbicsIHNlbGYpCisKKyAg
ICBkZWYgbmFtZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9zaG9ydF9vcHRzICsgc2Vs
Zi5fbG9uZ19vcHRzCisKKyAgICBkZWYgYXR0cnMoc2VsZik6CisgICAgICAgICMgdXBkYXRlIGFu
eSBhdHRyaWJ1dGVzIHNldCBieSBwcm9jZXNzb3B0CisgICAgICAgIGF0dHJzID0gJ2RlZmF1bHQg
ZGVzdCBoZWxwJy5zcGxpdCgpCisgICAgICAgIGlmIHNlbGYuZGVzdDoKKyAgICAgICAgICAgIGF0
dHJzLmFwcGVuZChzZWxmLmRlc3QpCisgICAgICAgIGZvciBhdHRyIGluIGF0dHJzOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2F0dHJzW2F0dHJdID0gZ2V0YXR0cihz
ZWxmLCBhdHRyKQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMuZ2V0KCdoZWxwJyk6CisgICAgICAg
ICAgICBhID0gc2VsZi5fYXR0cnNbJ2hlbHAnXQorICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgn
JWRlZmF1bHQnLCAnJShkZWZhdWx0KXMnKQorICAgICAgICAgICAgIyBhID0gYS5yZXBsYWNlKCcl
cHJvZycsICclKHByb2cpcycpCisgICAgICAgICAgICBzZWxmLl9hdHRyc1snaGVscCddID0gYQor
ICAgICAgICByZXR1cm4gc2VsZi5fYXR0cnMKKworICAgIGRlZiBfc2V0X29wdF9zdHJpbmdzKHNl
bGYsIG9wdHMpOgorICAgICAgICAiIiJkaXJlY3RseSBmcm9tIG9wdHBhcnNlCisKKyAgICAgICAg
bWlnaHQgbm90IGJlIG5lY2Vzc2FyeSBhcyB0aGlzIGlzIHBhc3NlZCB0byBhcmdwYXJzZSBsYXRl
ciBvbiIiIgorICAgICAgICBmb3Igb3B0IGluIG9wdHM6CisgICAgICAgICAgICBpZiBsZW4ob3B0
KSA8IDI6CisgICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgImludmFsaWQgb3B0aW9uIHN0cmluZyAlcjogIgorICAgICAgICAgICAgICAgICAg
ICAibXVzdCBiZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBsb25nIiAlIG9wdCwgc2VsZikKKyAg
ICAgICAgICAgIGVsaWYgbGVuKG9wdCkgPT0gMjoKKyAgICAgICAgICAgICAgICBpZiBub3QgKG9w
dFswXSA9PSAiLSIgYW5kIG9wdFsxXSAhPSAiLSIpOgorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBBcmd1bWVudEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgc2hvcnQg
b3B0aW9uIHN0cmluZyAlcjogIgorICAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgYmUgb2Yg
dGhlIGZvcm0gLXgsICh4IGFueSBub24tZGFzaCBjaGFyKSIgJSBvcHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmKQorICAgICAgICAgICAgICAgIHNlbGYuX3Nob3J0X29wdHMuYXBwZW5k
KG9wdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbm90IChvcHRbMDoy
XSA9PSAiLS0iIGFuZCBvcHRbMl0gIT0gIi0iKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
QXJndW1lbnRFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIGxvbmcgb3B0
aW9uIHN0cmluZyAlcjogIgorICAgICAgICAgICAgICAgICAgICAgICAgIm11c3Qgc3RhcnQgd2l0
aCAtLSwgZm9sbG93ZWQgYnkgbm9uLWRhc2giICUgb3B0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZikKKyAgICAgICAgICAgICAgICBzZWxmLl9sb25nX29wdHMuYXBwZW5kKG9wdCkKKwor
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgYXJncyA9IFtdCisgICAgICAgIGlmIHNl
bGYuX3Nob3J0X29wdHM6CisgICAgICAgICAgICBhcmdzICs9IFsnX3Nob3J0X29wdHM6ICcgKyBy
ZXByKHNlbGYuX3Nob3J0X29wdHMpXQorICAgICAgICBpZiBzZWxmLl9sb25nX29wdHM6CisgICAg
ICAgICAgICBhcmdzICs9IFsnX2xvbmdfb3B0czogJyArIHJlcHIoc2VsZi5fbG9uZ19vcHRzKV0K
KyAgICAgICAgYXJncyArPSBbJ2Rlc3Q6ICcgKyByZXByKHNlbGYuZGVzdCldCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgJ3R5cGUnKToKKyAgICAgICAgICAgIGFyZ3MgKz0gWyd0eXBlOiAnICsg
cmVwcihzZWxmLnR5cGUpXQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdkZWZhdWx0Jyk6Cisg
ICAgICAgICAgICBhcmdzICs9IFsnZGVmYXVsdDogJyArIHJlcHIoc2VsZi5kZWZhdWx0KV0KKyAg
ICAgICAgcmV0dXJuICdBcmd1bWVudCh7MH0pJy5mb3JtYXQoJywgJy5qb2luKGFyZ3MpKQorCisK
K2NsYXNzIE9wdGlvbkdyb3VwOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkZXNjcmlw
dGlvbj0iIiwgcGFyc2VyPU5vbmUpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAg
IHNlbGYuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbgorICAgICAgICBzZWxmLm9wdGlvbnMgPSBb
XQorICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcgorCisgICAgZGVmIGFkZG9wdGlvbihzZWxm
LCAqb3B0bmFtZXMsICoqYXR0cnMpOgorICAgICAgICAiIiIgYWRkIGFuIG9wdGlvbiB0byB0aGlz
IGdyb3VwLgorCisgICAgICAgIGlmIGEgc2hvcnRlbmVkIHZlcnNpb24gb2YgYSBsb25nIG9wdGlv
biBpcyBzcGVjaWZpZWQgaXQgd2lsbAorICAgICAgICBiZSBzdXBwcmVzc2VkIGluIHRoZSBoZWxw
LiBhZGRvcHRpb24oJy0tdHdvd29yZHMnLCAnLS10d28td29yZHMnKQorICAgICAgICByZXN1bHRz
IGluIGhlbHAgc2hvd2luZyAnLS10d28td29yZHMnIG9ubHksIGJ1dCAtLXR3b3dvcmRzIGdldHMK
KyAgICAgICAgYWNjZXB0ZWQgKiphbmQqKiB0aGUgYXV0b21hdGljIGRlc3RpbmF0aW9uIGlzIGlu
IGFyZ3MudHdvd29yZHMKKyAgICAgICAgIiIiCisgICAgICAgIGNvbmZsaWN0ID0gc2V0KG9wdG5h
bWVzKS5pbnRlcnNlY3Rpb24oCisgICAgICAgICAgICBuYW1lIGZvciBvcHQgaW4gc2VsZi5vcHRp
b25zIGZvciBuYW1lIGluIG9wdC5uYW1lcygpKQorICAgICAgICBpZiBjb25mbGljdDoKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9wdGlvbiBuYW1lcyAlcyBhbHJlYWR5IGFkZGVkIiAl
IGNvbmZsaWN0KQorICAgICAgICBvcHRpb24gPSBBcmd1bWVudCgqb3B0bmFtZXMsICoqYXR0cnMp
CisgICAgICAgIHNlbGYuX2FkZG9wdGlvbl9pbnN0YW5jZShvcHRpb24sIHNob3J0dXBwZXI9RmFs
c2UpCisKKyAgICBkZWYgX2FkZG9wdGlvbihzZWxmLCAqb3B0bmFtZXMsICoqYXR0cnMpOgorICAg
ICAgICBvcHRpb24gPSBBcmd1bWVudCgqb3B0bmFtZXMsICoqYXR0cnMpCisgICAgICAgIHNlbGYu
X2FkZG9wdGlvbl9pbnN0YW5jZShvcHRpb24sIHNob3J0dXBwZXI9VHJ1ZSkKKworICAgIGRlZiBf
YWRkb3B0aW9uX2luc3RhbmNlKHNlbGYsIG9wdGlvbiwgc2hvcnR1cHBlcj1GYWxzZSk6CisgICAg
ICAgIGlmIG5vdCBzaG9ydHVwcGVyOgorICAgICAgICAgICAgZm9yIG9wdCBpbiBvcHRpb24uX3No
b3J0X29wdHM6CisgICAgICAgICAgICAgICAgaWYgb3B0WzBdID09ICctJyBhbmQgb3B0WzFdLmlz
bG93ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibG93ZXJjYXNl
IHNob3J0b3B0aW9ucyByZXNlcnZlZCIpCisgICAgICAgIGlmIHNlbGYucGFyc2VyOgorICAgICAg
ICAgICAgc2VsZi5wYXJzZXIucHJvY2Vzc29wdGlvbihvcHRpb24pCisgICAgICAgIHNlbGYub3B0
aW9ucy5hcHBlbmQob3B0aW9uKQorCisKK2NsYXNzIE15T3B0aW9uUGFyc2VyKGFyZ3BhcnNlLkFy
Z3VtZW50UGFyc2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBleHRyYV9pbmZv
PU5vbmUpOgorICAgICAgICBpZiBub3QgZXh0cmFfaW5mbzoKKyAgICAgICAgICAgIGV4dHJhX2lu
Zm8gPSB7fQorICAgICAgICBzZWxmLl9wYXJzZXIgPSBwYXJzZXIKKyAgICAgICAgYXJncGFyc2Uu
QXJndW1lbnRQYXJzZXIuX19pbml0X18oc2VsZiwgdXNhZ2U9cGFyc2VyLl91c2FnZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2hlbHA9RmFsc2UsIGZvcm1h
dHRlcl9jbGFzcz1Ecm9wU2hvcnRlckxvbmdIZWxwRm9ybWF0dGVyKQorICAgICAgICAjIGV4dHJh
X2luZm8gaXMgYSBkaWN0IG9mIChwYXJhbSAtPiB2YWx1ZSkgdG8gZGlzcGxheSBpZiB0aGVyZSdz
CisgICAgICAgICMgYW4gdXNhZ2UgZXJyb3IgdG8gcHJvdmlkZSBtb3JlIGNvbnRleHR1YWwgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIKKyAgICAgICAgc2VsZi5leHRyYV9pbmZvID0gZXh0cmFfaW5m
bworCisgICAgZGVmIHBhcnNlX2FyZ3Moc2VsZiwgYXJncz1Ob25lLCBuYW1lc3BhY2U9Tm9uZSk6
CisgICAgICAgICIiImFsbG93IHNwbGl0dGluZyBvZiBwb3NpdGlvbmFsIGFyZ3VtZW50cyIiIgor
ICAgICAgICBhcmdzLCBhcmd2ID0gc2VsZi5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFj
ZSkKKyAgICAgICAgaWYgYXJndjoKKyAgICAgICAgICAgIGZvciBhcmcgaW4gYXJndjoKKyAgICAg
ICAgICAgICAgICBpZiBhcmcgYW5kIGFyZ1swXSA9PSAnLSc6CisgICAgICAgICAgICAgICAgICAg
IGxpbmVzID0gWyd1bnJlY29nbml6ZWQgYXJndW1lbnRzOiAlcycgJSAoJyAnLmpvaW4oYXJndikp
XQorICAgICAgICAgICAgICAgICAgICBmb3IgaywgdiBpbiBzb3J0ZWQoc2VsZi5leHRyYV9pbmZv
Lml0ZW1zKCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICVzOiAl
cycgJSAoaywgdikpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3IoJ1xuJy5qb2luKGxp
bmVzKSkKKyAgICAgICAgICAgIGdldGF0dHIoYXJncywgRklMRV9PUl9ESVIpLmV4dGVuZChhcmd2
KQorICAgICAgICByZXR1cm4gYXJncworCisKK2NsYXNzIERyb3BTaG9ydGVyTG9uZ0hlbHBGb3Jt
YXR0ZXIoYXJncGFyc2UuSGVscEZvcm1hdHRlcik6CisgICAgIiIic2hvcnRlbiBoZWxwIGZvciBs
b25nIG9wdGlvbnMgdGhhdCBkaWZmZXIgb25seSBpbiBleHRyYSBoeXBoZW5zCisKKyAgICAtIGNv
bGxhcHNlICoqbG9uZyoqIG9wdGlvbnMgdGhhdCBhcmUgdGhlIHNhbWUgZXhjZXB0IGZvciBleHRy
YSBoeXBoZW5zCisgICAgLSBzcGVjaWFsIGFjdGlvbiBhdHRyaWJ1dGUgbWFwX2xvbmdfb3B0aW9u
IGFsbG93cyBzdXJwcmVzc2luZyBhZGRpdGlvbmFsCisgICAgICBsb25nIG9wdGlvbnMKKyAgICAt
IHNob3J0Y3V0IGlmIHRoZXJlIGFyZSBvbmx5IHR3byBvcHRpb25zIGFuZCBvbmUgb2YgdGhlbSBp
cyBhIHNob3J0IG9uZQorICAgIC0gY2FjaGUgcmVzdWx0IG9uIGFjdGlvbiBvYmplY3QgYXMgdGhp
cyBpcyBjYWxsZWQgYXQgbGVhc3QgMiB0aW1lcworICAgICIiIgorCisgICAgZGVmIF9mb3JtYXRf
YWN0aW9uX2ludm9jYXRpb24oc2VsZiwgYWN0aW9uKToKKyAgICAgICAgb3Jnc3RyID0gYXJncGFy
c2UuSGVscEZvcm1hdHRlci5fZm9ybWF0X2FjdGlvbl9pbnZvY2F0aW9uKHNlbGYsIGFjdGlvbikK
KyAgICAgICAgaWYgb3Jnc3RyIGFuZCBvcmdzdHJbMF0gIT0gJy0nOiAgIyBvbmx5IG9wdGlvbmFs
IGFyZ3VtZW50cworICAgICAgICAgICAgcmV0dXJuIG9yZ3N0cgorICAgICAgICByZXMgPSBnZXRh
dHRyKGFjdGlvbiwgJ19mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24nLCBOb25lKQorICAgICAg
ICBpZiByZXM6CisgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgIG9wdGlvbnMgPSBvcmdz
dHIuc3BsaXQoJywgJykKKyAgICAgICAgaWYgbGVuKG9wdGlvbnMpID09IDIgYW5kIChsZW4ob3B0
aW9uc1swXSkgPT0gMiBvciBsZW4ob3B0aW9uc1sxXSkgPT0gMik6CisgICAgICAgICAgICAjIGEg
c2hvcnRjdXQgZm9yICctaCwgLS1oZWxwJyBvciAnLS1hYmMnLCAnLWEnCisgICAgICAgICAgICBh
Y3Rpb24uX2Zvcm1hdHRlZF9hY3Rpb25faW52b2NhdGlvbiA9IG9yZ3N0cgorICAgICAgICAgICAg
cmV0dXJuIG9yZ3N0cgorICAgICAgICByZXR1cm5fbGlzdCA9IFtdCisgICAgICAgIG9wdGlvbl9t
YXAgPSBnZXRhdHRyKGFjdGlvbiwgJ21hcF9sb25nX29wdGlvbicsIHt9KQorICAgICAgICBpZiBv
cHRpb25fbWFwIGlzIE5vbmU6CisgICAgICAgICAgICBvcHRpb25fbWFwID0ge30KKyAgICAgICAg
c2hvcnRfbG9uZyA9IHt9CisgICAgICAgIGZvciBvcHRpb24gaW4gb3B0aW9uczoKKyAgICAgICAg
ICAgIGlmIGxlbihvcHRpb24pID09IDIgb3Igb3B0aW9uWzJdID09ICcgJzoKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbm90IG9wdGlvbi5zdGFydHN3aXRoKCctLScp
OgorICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoJ2xvbmcgb3B0aW9uYWwgYXJn
dW1lbnQgd2l0aG91dCAiLS0iOiBbJXNdJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJSAob3B0aW9uKSwgc2VsZikKKyAgICAgICAgICAgIHh4b3B0aW9uID0gb3B0aW9uWzI6
XQorICAgICAgICAgICAgaWYgeHhvcHRpb24uc3BsaXQoKVswXSBub3QgaW4gb3B0aW9uX21hcDoK
KyAgICAgICAgICAgICAgICBzaG9ydGVuZWQgPSB4eG9wdGlvbi5yZXBsYWNlKCctJywgJycpCisg
ICAgICAgICAgICAgICAgaWYgc2hvcnRlbmVkIG5vdCBpbiBzaG9ydF9sb25nIG9yIFwKKyAgICAg
ICAgICAgICAgICAgICBsZW4oc2hvcnRfbG9uZ1tzaG9ydGVuZWRdKSA8IGxlbih4eG9wdGlvbik6
CisgICAgICAgICAgICAgICAgICAgIHNob3J0X2xvbmdbc2hvcnRlbmVkXSA9IHh4b3B0aW9uCisg
ICAgICAgICMgbm93IHNob3J0X2xvbmcgaGFzIGJlZW4gZmlsbGVkIG91dCB0byB0aGUgbG9uZ2Vz
dCB3aXRoIGRhc2hlcworICAgICAgICAjICoqYW5kKiogd2Uga2VlcCB0aGUgcmlnaHQgb3B0aW9u
IG9yZGVyaW5nIGZyb20gYWRkX2FyZ3VtZW50CisgICAgICAgIGZvciBvcHRpb24gaW4gb3B0aW9u
czoKKyAgICAgICAgICAgIGlmIGxlbihvcHRpb24pID09IDIgb3Igb3B0aW9uWzJdID09ICcgJzoK
KyAgICAgICAgICAgICAgICByZXR1cm5fbGlzdC5hcHBlbmQob3B0aW9uKQorICAgICAgICAgICAg
aWYgb3B0aW9uWzI6XSA9PSBzaG9ydF9sb25nLmdldChvcHRpb24ucmVwbGFjZSgnLScsICcnKSk6
CisgICAgICAgICAgICAgICAgcmV0dXJuX2xpc3QuYXBwZW5kKG9wdGlvbi5yZXBsYWNlKCcgJywg
Jz0nLCAxKSkKKyAgICAgICAgYWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24gPSAn
LCAnLmpvaW4ocmV0dXJuX2xpc3QpCisgICAgICAgIHJldHVybiBhY3Rpb24uX2Zvcm1hdHRlZF9h
Y3Rpb25faW52b2NhdGlvbgorCisKK2RlZiBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKG1vZG5h
bWUpOgorICAgIHRyeToKKyAgICAgICAgZGVsIHN5cy5tb2R1bGVzW21vZG5hbWVdCisgICAgZXhj
ZXB0IEtleUVycm9yOgorICAgICAgICBwYXNzCisKKworY2xhc3MgQ21kT3B0aW9ucyhvYmplY3Qp
OgorICAgICIiIiBob2xkcyBjbWRsaW5lIG9wdGlvbnMgYXMgYXR0cmlidXRlcy4iIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZXM9KCkpOgorICAgICAgICBzZWxmLl9fZGljdF9fLnVw
ZGF0ZSh2YWx1ZXMpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAi
PENtZE9wdGlvbnMgJXI+IiAlIChzZWxmLl9fZGljdF9fLCkKKworICAgIGRlZiBjb3B5KHNlbGYp
OgorICAgICAgICByZXR1cm4gQ21kT3B0aW9ucyhzZWxmLl9fZGljdF9fKQorCisKK2NsYXNzIE5v
dHNldDoKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPE5PVFNFVD4i
CisKKworbm90c2V0ID0gTm90c2V0KCkKK0ZJTEVfT1JfRElSID0gJ2ZpbGVfb3JfZGlyJworCisK
K2RlZiBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMocGFja2FnZV9maWxlcyk6CisgICAgZm9yIGZu
IGluIHBhY2thZ2VfZmlsZXM6CisgICAgICAgIGlzX3NpbXBsZV9tb2R1bGUgPSAnLycgbm90IGlu
IGZuIGFuZCBmbi5lbmRzd2l0aCgnLnB5JykKKyAgICAgICAgaXNfcGFja2FnZSA9IGZuLmNvdW50
KCcvJykgPT0gMSBhbmQgZm4uZW5kc3dpdGgoJ19faW5pdF9fLnB5JykKKyAgICAgICAgaWYgaXNf
c2ltcGxlX21vZHVsZToKKyAgICAgICAgICAgIG1vZHVsZV9uYW1lLCBfID0gb3MucGF0aC5zcGxp
dGV4dChmbikKKyAgICAgICAgICAgIHlpZWxkIG1vZHVsZV9uYW1lCisgICAgICAgIGVsaWYgaXNf
cGFja2FnZToKKyAgICAgICAgICAgIHBhY2thZ2VfbmFtZSA9IG9zLnBhdGguZGlybmFtZShmbikK
KyAgICAgICAgICAgIHlpZWxkIHBhY2thZ2VfbmFtZQorCisKK2NsYXNzIENvbmZpZyhvYmplY3Qp
OgorICAgICIiIiBhY2Nlc3MgdG8gY29uZmlndXJhdGlvbiB2YWx1ZXMsIHBsdWdpbm1hbmFnZXIg
YW5kIHBsdWdpbiBob29rcy4gICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbm1h
bmFnZXIpOgorICAgICAgICAjOiBhY2Nlc3MgdG8gY29tbWFuZCBsaW5lIG9wdGlvbiBhcyBhdHRy
aWJ1dGVzLgorICAgICAgICAjOiAoZGVwcmVjYXRlZCksIHVzZSA6cHk6ZnVuYzpgZ2V0b3B0aW9u
KCkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRpb24+YCBpbnN0ZWFkCisgICAgICAgIHNl
bGYub3B0aW9uID0gQ21kT3B0aW9ucygpCisgICAgICAgIF9hID0gRklMRV9PUl9ESVIKKyAgICAg
ICAgc2VsZi5fcGFyc2VyID0gUGFyc2VyKAorICAgICAgICAgICAgdXNhZ2U9IiUlKHByb2cpcyBb
b3B0aW9uc10gWyVzXSBbJXNdIFsuLi5dIiAlIChfYSwgX2EpLAorICAgICAgICAgICAgcHJvY2Vz
c29wdD1zZWxmLl9wcm9jZXNzb3B0LAorICAgICAgICApCisgICAgICAgICM6IGEgcGx1Z2lubWFu
YWdlciBpbnN0YW5jZQorICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5hZ2Vy
CisgICAgICAgIHNlbGYudHJhY2UgPSBzZWxmLnBsdWdpbm1hbmFnZXIudHJhY2Uucm9vdC5nZXQo
ImNvbmZpZyIpCisgICAgICAgIHNlbGYuaG9vayA9IHNlbGYucGx1Z2lubWFuYWdlci5ob29rCisg
ICAgICAgIHNlbGYuX2luaWNhY2hlID0ge30KKyAgICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5pID0g
KCkKKyAgICAgICAgc2VsZi5fb3B0MmRlc3QgPSB7fQorICAgICAgICBzZWxmLl9jbGVhbnVwID0g
W10KKyAgICAgICAgc2VsZi5fd2FybiA9IHNlbGYucGx1Z2lubWFuYWdlci5fd2FybgorICAgICAg
ICBzZWxmLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoc2VsZiwgInB5dGVzdGNvbmZpZyIpCisgICAg
ICAgIHNlbGYuX2NvbmZpZ3VyZWQgPSBGYWxzZQorCisgICAgICAgIGRlZiBkb19zZXRucyhkaWMp
OgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgc2V0bnMocHl0ZXN0LCBk
aWMpCisKKyAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9uYW1lc3BhY2UuY2FsbF9oaXN0b3JpYyhk
b19zZXRucywge30pCisgICAgICAgIHNlbGYuaG9vay5weXRlc3RfYWRkb3B0aW9uLmNhbGxfaGlz
dG9yaWMoa3dhcmdzPWRpY3QocGFyc2VyPXNlbGYuX3BhcnNlcikpCisKKyAgICBkZWYgYWRkX2Ns
ZWFudXAoc2VsZiwgZnVuYyk6CisgICAgICAgICIiIiBBZGQgYSBmdW5jdGlvbiB0byBiZSBjYWxs
ZWQgd2hlbiB0aGUgY29uZmlnIG9iamVjdCBnZXRzIG91dCBvZgorICAgICAgICB1c2UgKHVzdWFs
bHkgY29uaW5jaWRpbmcgd2l0aCBweXRlc3RfdW5jb25maWd1cmUpLiIiIgorICAgICAgICBzZWxm
Ll9jbGVhbnVwLmFwcGVuZChmdW5jKQorCisgICAgZGVmIF9kb19jb25maWd1cmUoc2VsZik6Cisg
ICAgICAgIGFzc2VydCBub3Qgc2VsZi5fY29uZmlndXJlZAorICAgICAgICBzZWxmLl9jb25maWd1
cmVkID0gVHJ1ZQorICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2NvbmZpZ3VyZS5jYWxsX2hpc3Rv
cmljKGt3YXJncz1kaWN0KGNvbmZpZz1zZWxmKSkKKworICAgIGRlZiBfZW5zdXJlX3VuY29uZmln
dXJlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9jb25maWd1cmVkOgorICAgICAgICAgICAgc2Vs
Zi5fY29uZmlndXJlZCA9IEZhbHNlCisgICAgICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X3VuY29u
ZmlndXJlKGNvbmZpZz1zZWxmKQorICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9jb25maWd1
cmUuX2NhbGxfaGlzdG9yeSA9IFtdCisgICAgICAgIHdoaWxlIHNlbGYuX2NsZWFudXA6CisgICAg
ICAgICAgICBmaW4gPSBzZWxmLl9jbGVhbnVwLnBvcCgpCisgICAgICAgICAgICBmaW4oKQorCisg
ICAgZGVmIHdhcm4oc2VsZiwgY29kZSwgbWVzc2FnZSwgZnNsb2NhdGlvbj1Ob25lLCBub2RlaWQ9
Tm9uZSk6CisgICAgICAgICIiIiBnZW5lcmF0ZSBhIHdhcm5pbmcgZm9yIHRoaXMgdGVzdCBzZXNz
aW9uLiAiIiIKKyAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9y
aWMoa3dhcmdzPWRpY3QoCisgICAgICAgICAgICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2FnZSwK
KyAgICAgICAgICAgIGZzbG9jYXRpb249ZnNsb2NhdGlvbiwgbm9kZWlkPW5vZGVpZCkpCisKKyAg
ICBkZWYgZ2V0X3Rlcm1pbmFsX3dyaXRlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGx1
Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ0ZXJtaW5hbHJlcG9ydGVyIikuX3R3CisKKyAgICBkZWYg
cHl0ZXN0X2NtZGxpbmVfcGFyc2Uoc2VsZiwgcGx1Z2lubWFuYWdlciwgYXJncyk6CisgICAgICAg
ICMgUkVGMSBhc3NlcnQgc2VsZiA9PSBwbHVnaW5tYW5hZ2VyLmNvbmZpZywgKHNlbGYsIHBsdWdp
bm1hbmFnZXIuY29uZmlnKQorICAgICAgICBzZWxmLnBhcnNlKGFyZ3MpCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgbm90aWZ5X2V4Y2VwdGlvbihzZWxmLCBleGNpbmZvLCBvcHRpb249
Tm9uZSk6CisgICAgICAgIGlmIG9wdGlvbiBhbmQgb3B0aW9uLmZ1bGx0cmFjZToKKyAgICAgICAg
ICAgIHN0eWxlID0gImxvbmciCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdHlsZSA9ICJu
YXRpdmUiCisgICAgICAgIGV4Y3JlcHIgPSBleGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jYWxzPWdldGF0dHIob3B0
aW9uLCAnc2hvd2xvY2FscycsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHlsZT1zdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgIHJlcyA9IHNlbGYuaG9vay5weXRlc3RfaW50ZXJuYWxlcnJvcihleGNyZXByPWV4Y3Jl
cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNpbmZv
PWV4Y2luZm8pCisgICAgICAgIGlmIG5vdCBhbnkocmVzKToKKyAgICAgICAgICAgIGZvciBsaW5l
IGluIHN0cihleGNyZXByKS5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCJJTlRFUk5BTEVSUk9SPiAlc1xuIiAlIGxpbmUpCisgICAgICAgICAgICAgICAgc3lz
LnN0ZGVyci5mbHVzaCgpCisKKyAgICBkZWYgY3dkX3JlbGF0aXZlX25vZGVpZChzZWxmLCBub2Rl
aWQpOgorICAgICAgICAjIG5vZGVpZCdzIGFyZSByZWxhdGl2ZSB0byB0aGUgcm9vdHBhdGgsIGNv
bXB1dGUgcmVsYXRpdmUgdG8gY3dkCisgICAgICAgIGlmIHNlbGYuaW52b2NhdGlvbl9kaXIgIT0g
c2VsZi5yb290ZGlyOgorICAgICAgICAgICAgZnVsbHBhdGggPSBzZWxmLnJvb3RkaXIuam9pbihu
b2RlaWQpCisgICAgICAgICAgICBub2RlaWQgPSBzZWxmLmludm9jYXRpb25fZGlyLmJlc3RyZWxw
YXRoKGZ1bGxwYXRoKQorICAgICAgICByZXR1cm4gbm9kZWlkCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgZnJvbWRpY3RhcmdzKGNscywgb3B0aW9uX2RpY3QsIGFyZ3MpOgorICAgICAgICAi
IiIgY29uc3RydWN0b3IgdXNlYWJsZSBmb3Igc3VicHJvY2Vzc2VzLiAiIiIKKyAgICAgICAgY29u
ZmlnID0gZ2V0X2NvbmZpZygpCisgICAgICAgIGNvbmZpZy5vcHRpb24uX19kaWN0X18udXBkYXRl
KG9wdGlvbl9kaWN0KQorICAgICAgICBjb25maWcucGFyc2UoYXJncywgYWRkb3B0cz1GYWxzZSkK
KyAgICAgICAgZm9yIHggaW4gY29uZmlnLm9wdGlvbi5wbHVnaW5zOgorICAgICAgICAgICAgY29u
ZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfcGx1Z2luYXJnKHgpCisgICAgICAgIHJldHVybiBj
b25maWcKKworICAgIGRlZiBfcHJvY2Vzc29wdChzZWxmLCBvcHQpOgorICAgICAgICBmb3IgbmFt
ZSBpbiBvcHQuX3Nob3J0X29wdHMgKyBvcHQuX2xvbmdfb3B0czoKKyAgICAgICAgICAgIHNlbGYu
X29wdDJkZXN0W25hbWVdID0gb3B0LmRlc3QKKworICAgICAgICBpZiBoYXNhdHRyKG9wdCwgJ2Rl
ZmF1bHQnKSBhbmQgb3B0LmRlc3Q6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLm9w
dGlvbiwgb3B0LmRlc3QpOgorICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZi5vcHRpb24sIG9w
dC5kZXN0LCBvcHQuZGVmYXVsdCkKKworICAgIEBob29raW1wbCh0cnlsYXN0PVRydWUpCisgICAg
ZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKHNlbGYsIGVhcmx5X2NvbmZpZyk6Cisg
ICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5fc2V0X2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2Nv
bmZpZy5rbm93bl9hcmdzX25hbWVzcGFjZSkKKworICAgIGRlZiBfaW5pdGluaShzZWxmLCBhcmdz
KToKKyAgICAgICAgbnMsIHVua25vd25fYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9h
bmRfdW5rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1zZWxmLm9wdGlvbi5jb3B5KCkpCisgICAg
ICAgIHIgPSBkZXRlcm1pbmVfc2V0dXAobnMuaW5pZmlsZW5hbWUsIG5zLmZpbGVfb3JfZGlyICsg
dW5rbm93bl9hcmdzLCB3YXJuZnVuYz1zZWxmLndhcm4pCisgICAgICAgIHNlbGYucm9vdGRpciwg
c2VsZi5pbmlmaWxlLCBzZWxmLmluaWNmZyA9IHIKKyAgICAgICAgc2VsZi5fcGFyc2VyLmV4dHJh
X2luZm9bJ3Jvb3RkaXInXSA9IHNlbGYucm9vdGRpcgorICAgICAgICBzZWxmLl9wYXJzZXIuZXh0
cmFfaW5mb1snaW5pZmlsZSddID0gc2VsZi5pbmlmaWxlCisgICAgICAgIHNlbGYuaW52b2NhdGlv
bl9kaXIgPSBweS5wYXRoLmxvY2FsKCkKKyAgICAgICAgc2VsZi5fcGFyc2VyLmFkZGluaSgnYWRk
b3B0cycsICdleHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucycsICdhcmdzJykKKyAgICAgICAgc2Vs
Zi5fcGFyc2VyLmFkZGluaSgnbWludmVyc2lvbicsICdtaW5pbWFsbHkgcmVxdWlyZWQgcHl0ZXN0
IHZlcnNpb24nKQorICAgICAgICBzZWxmLl9vdmVycmlkZV9pbmkgPSBucy5vdmVycmlkZV9pbmkg
b3IgKCkKKworICAgIGRlZiBfY29uc2lkZXJfaW1wb3J0aG9vayhzZWxmLCBhcmdzKToKKyAgICAg
ICAgIiIiSW5zdGFsbCB0aGUgUEVQIDMwMiBpbXBvcnQgaG9vayBpZiB1c2luZyBhc3NlcnRpb24g
cmV3cml0aW5nLgorCisgICAgICAgIE5lZWRzIHRvIHBhcnNlIHRoZSAtLWFzc2VydD08bW9kZT4g
b3B0aW9uIGZyb20gdGhlIGNvbW1hbmRsaW5lCisgICAgICAgIGFuZCBmaW5kIGFsbCB0aGUgaW5z
dGFsbGVkIHBsdWdpbnMgdG8gbWFyayB0aGVtIGZvciByZXdyaXRpbmcKKyAgICAgICAgYnkgdGhl
IGltcG9ydGhvb2suCisgICAgICAgICIiIgorICAgICAgICBucywgdW5rbm93bl9hcmdzID0gc2Vs
Zi5fcGFyc2VyLnBhcnNlX2tub3duX2FuZF91bmtub3duX2FyZ3MoYXJncykKKyAgICAgICAgbW9k
ZSA9IG5zLmFzc2VydG1vZGUKKyAgICAgICAgaWYgbW9kZSA9PSAncmV3cml0ZSc6CisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgaG9vayA9IF9weXRlc3QuYXNzZXJ0aW9uLmluc3Rh
bGxfaW1wb3J0aG9vayhzZWxmKQorICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUVycm9yOgorICAg
ICAgICAgICAgICAgIG1vZGUgPSAncGxhaW4nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHNlbGYuX21hcmtfcGx1Z2luc19mb3JfcmV3cml0ZShob29rKQorICAgICAgICBzZWxm
Ll93YXJuX2Fib3V0X21pc3NpbmdfYXNzZXJ0aW9uKG1vZGUpCisKKyAgICBkZWYgX21hcmtfcGx1
Z2luc19mb3JfcmV3cml0ZShzZWxmLCBob29rKToKKyAgICAgICAgIiIiCisgICAgICAgIEdpdmVu
IGFuIGltcG9ydGhvb2ssIG1hcmsgZm9yIHJld3JpdGUgYW55IHRvcC1sZXZlbAorICAgICAgICBt
b2R1bGVzIG9yIHBhY2thZ2VzIGluIHRoZSBkaXN0cmlidXRpb24gcGFja2FnZSBmb3IKKyAgICAg
ICAgYWxsIHB5dGVzdCBwbHVnaW5zLgorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHBrZ19y
ZXNvdXJjZXMKKyAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLnJld3JpdGVfaG9vayA9IGhvb2sK
KworICAgICAgICAjICdSRUNPUkQnIGF2YWlsYWJsZSBmb3IgcGx1Z2lucyBpbnN0YWxsZWQgbm9y
bWFsbHkgKHBpcCBpbnN0YWxsKQorICAgICAgICAjICdTT1VSQ0VTLnR4dCcgYXZhaWxhYmxlIGZv
ciBwbHVnaW5zIGluc3RhbGxlZCBpbiBkZXYgbW9kZSAocGlwIGluc3RhbGwgLWUpCisgICAgICAg
ICMgZm9yIGluc3RhbGxlZCBwbHVnaW5zICdTT1VSQ0VTLnR4dCcgcmV0dXJucyBhbiBlbXB0eSBs
aXN0LCBhbmQgdmljZS12ZXJzYQorICAgICAgICAjIHNvIGl0IHNob3VsZG4ndCBiZSBhbiBpc3N1
ZQorICAgICAgICBtZXRhZGF0YV9maWxlcyA9ICdSRUNPUkQnLCAnU09VUkNFUy50eHQnCisKKyAg
ICAgICAgcGFja2FnZV9maWxlcyA9ICgKKyAgICAgICAgICAgIGVudHJ5LnNwbGl0KCcsJylbMF0K
KyAgICAgICAgICAgIGZvciBlbnRyeXBvaW50IGluIHBrZ19yZXNvdXJjZXMuaXRlcl9lbnRyeV9w
b2ludHMoJ3B5dGVzdDExJykKKyAgICAgICAgICAgIGZvciBtZXRhZGF0YSBpbiBtZXRhZGF0YV9m
aWxlcworICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJ5cG9pbnQuZGlzdC5fZ2V0X21ldGFk
YXRhKG1ldGFkYXRhKQorICAgICAgICApCisKKyAgICAgICAgZm9yIG5hbWUgaW4gX2l0ZXJfcmV3
cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmlsZXMpOgorICAgICAgICAgICAgaG9vay5tYXJrX3Jl
d3JpdGUobmFtZSkKKworICAgIGRlZiBfd2Fybl9hYm91dF9taXNzaW5nX2Fzc2VydGlvbihzZWxm
LCBtb2RlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAg
IGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGlmIG1vZGUgPT0gJ3BsYWluJzoKKyAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJXQVJOSU5HOiBBU1NFUlRJT05TIEFSRSBOT1QgRVhFQ1VURUQiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBGQUlMSU5HIFRFU1RTIFdJTEwgUEFTUy4g
IEFyZSB5b3UiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHVzaW5nIHB5dGhv
biAtTz8iKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJXQVJOSU5HOiBhc3NlcnRpb25zIG5vdCBpbiB0ZXN0IG1vZHVsZXMgb3IiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiIHBsdWdpbnMgd2lsbCBiZSBpZ25vcmVkIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBiZWNhdXNlIGFzc2VydCBzdGF0ZW1lbnRz
IGFyZSBub3QgZXhlY3V0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5
IHRoZSB1bmRlcmx5aW5nIFB5dGhvbiBpbnRlcnByZXRlciAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiKGFyZSB5b3UgdXNpbmcgcHl0aG9uIC1PPylcbiIpCisKKyAgICBkZWYg
X3ByZXBhcnNlKHNlbGYsIGFyZ3MsIGFkZG9wdHM9VHJ1ZSk6CisgICAgICAgIGlmIGFkZG9wdHM6
CisgICAgICAgICAgICBhcmdzWzpdID0gc2hsZXguc3BsaXQob3MuZW52aXJvbi5nZXQoJ1BZVEVT
VF9BRERPUFRTJywgJycpKSArIGFyZ3MKKyAgICAgICAgc2VsZi5faW5pdGluaShhcmdzKQorICAg
ICAgICBpZiBhZGRvcHRzOgorICAgICAgICAgICAgYXJnc1s6XSA9IHNlbGYuZ2V0aW5pKCJhZGRv
cHRzIikgKyBhcmdzCisgICAgICAgIHNlbGYuX2NoZWNrdmVyc2lvbigpCisgICAgICAgIHNlbGYu
X2NvbnNpZGVyX2ltcG9ydGhvb2soYXJncykKKyAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLmNv
bnNpZGVyX3ByZXBhcnNlKGFyZ3MpCisgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5sb2FkX3Nl
dHVwdG9vbHNfZW50cnlwb2ludHMoJ3B5dGVzdDExJykKKyAgICAgICAgc2VsZi5wbHVnaW5tYW5h
Z2VyLmNvbnNpZGVyX2VudigpCisgICAgICAgIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UgPSBu
cyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1zZWxmLm9w
dGlvbi5jb3B5KCkpCisgICAgICAgIGlmIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UuY29uZmN1
dGRpciBpcyBOb25lIGFuZCBzZWxmLmluaWZpbGU6CisgICAgICAgICAgICBjb25mY3V0ZGlyID0g
cHkucGF0aC5sb2NhbChzZWxmLmluaWZpbGUpLmRpcm5hbWUKKyAgICAgICAgICAgIHNlbGYua25v
d25fYXJnc19uYW1lc3BhY2UuY29uZmN1dGRpciA9IGNvbmZjdXRkaXIKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVhcmx5
X2NvbmZpZz1zZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3M9YXJncywgcGFyc2VyPXNlbGYuX3BhcnNlcikKKyAgICAgICAgZXhjZXB0
IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZToKKyAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsx
XQorICAgICAgICAgICAgaWYgbnMuaGVscCBvciBucy52ZXJzaW9uOgorICAgICAgICAgICAgICAg
ICMgd2UgZG9uJ3Qgd2FudCB0byBwcmV2ZW50IC0taGVscC8tLXZlcnNpb24gdG8gd29yaworICAg
ICAgICAgICAgICAgICMgc28ganVzdCBsZXQgaXMgcGFzcyBhbmQgcHJpbnQgYSB3YXJuaW5nIGF0
IHRoZSBlbmQKKyAgICAgICAgICAgICAgICBzZWxmLl93YXJuKCJjb3VsZCBub3QgbG9hZCBpbml0
aWFsIGNvbmZ0ZXN0cyAoJXMpXG4iICUgZS5wYXRoKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICByYWlzZQorCisgICAgZGVmIF9jaGVja3ZlcnNpb24oc2VsZik6CisgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgbWludmVyID0gc2VsZi5pbmljZmcuZ2V0KCdtaW52ZXJz
aW9uJywgTm9uZSkKKyAgICAgICAgaWYgbWludmVyOgorICAgICAgICAgICAgdmVyID0gbWludmVy
LnNwbGl0KCIuIikKKyAgICAgICAgICAgIG15dmVyID0gcHl0ZXN0Ll9fdmVyc2lvbl9fLnNwbGl0
KCIuIikKKyAgICAgICAgICAgIGlmIG15dmVyIDwgdmVyOgorICAgICAgICAgICAgICAgIHJhaXNl
IHB5dGVzdC5Vc2FnZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IHJlcXVpcmVz
IHB5dGVzdC0lcywgYWN0dWFsIHB5dGVzdC0lcyciICUgKAorICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5pbmljZmcuY29uZmlnLnBhdGgsIHNlbGYuaW5pY2ZnLmxpbmVvZignbWludmVyc2lv
bicpLAorICAgICAgICAgICAgICAgICAgICAgICAgbWludmVyLCBweXRlc3QuX192ZXJzaW9uX18p
KQorCisgICAgZGVmIHBhcnNlKHNlbGYsIGFyZ3MsIGFkZG9wdHM9VHJ1ZSk6CisgICAgICAgICMg
cGFyc2UgZ2l2ZW4gY21kbGluZSBhcmd1bWVudHMgaW50byB0aGlzIGNvbmZpZyBvYmplY3QuCisg
ICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAnYXJncycpLCAoCisgICAgICAgICAgICAi
Y2FuIG9ubHkgcGFyc2UgY21kbGluZSBhcmdzIGF0IG1vc3Qgb25jZSBwZXIgQ29uZmlnIG9iamVj
dCIpCisgICAgICAgIHNlbGYuX29yaWdhcmdzID0gYXJncworICAgICAgICBzZWxmLmhvb2sucHl0
ZXN0X2FkZGhvb2tzLmNhbGxfaGlzdG9yaWMoCisgICAgICAgICAgICBrd2FyZ3M9ZGljdChwbHVn
aW5tYW5hZ2VyPXNlbGYucGx1Z2lubWFuYWdlcikpCisgICAgICAgIHNlbGYuX3ByZXBhcnNlKGFy
Z3MsIGFkZG9wdHM9YWRkb3B0cykKKyAgICAgICAgIyBYWFggZGVwcmVjYXRlZCBob29rOgorICAg
ICAgICBzZWxmLmhvb2sucHl0ZXN0X2NtZGxpbmVfcHJlcGFyc2UoY29uZmlnPXNlbGYsIGFyZ3M9
YXJncykKKyAgICAgICAgc2VsZi5fcGFyc2VyLmFmdGVyX3ByZXBhcnNlID0gVHJ1ZQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBhcmdzID0gc2VsZi5fcGFyc2VyLnBhcnNlX3NldG9wdGlvbihh
cmdzLCBzZWxmLm9wdGlvbiwgbmFtZXNwYWNlPXNlbGYub3B0aW9uKQorICAgICAgICAgICAgaWYg
bm90IGFyZ3M6CisgICAgICAgICAgICAgICAgY3dkID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgICAg
ICAgICBpZiBjd2QgPT0gc2VsZi5yb290ZGlyOgorICAgICAgICAgICAgICAgICAgICBhcmdzID0g
c2VsZi5nZXRpbmkoJ3Rlc3RwYXRocycpCisgICAgICAgICAgICAgICAgaWYgbm90IGFyZ3M6Cisg
ICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbY3dkXQorICAgICAgICAgICAgc2VsZi5hcmdzID0g
YXJncworICAgICAgICBleGNlcHQgUHJpbnRIZWxwOgorICAgICAgICAgICAgcGFzcworCisgICAg
ZGVmIGFkZGluaXZhbHVlX2xpbmUoc2VsZiwgbmFtZSwgbGluZSk6CisgICAgICAgICIiIiBhZGQg
YSBsaW5lIHRvIGFuIGluaS1maWxlIG9wdGlvbi4gVGhlIG9wdGlvbiBtdXN0IGhhdmUgYmVlbgor
ICAgICAgICBkZWNsYXJlZCBidXQgbWlnaHQgbm90IHlldCBiZSBzZXQgaW4gd2hpY2ggY2FzZSB0
aGUgbGluZSBiZWNvbWVzIHRoZQorICAgICAgICB0aGUgZmlyc3QgbGluZSBpbiBpdHMgdmFsdWUu
ICIiIgorICAgICAgICB4ID0gc2VsZi5nZXRpbmkobmFtZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoeCwgbGlzdCkKKyAgICAgICAgeC5hcHBlbmQobGluZSkgICMgbW9kaWZpZXMgdGhlIGNh
Y2hlZCBsaXN0IGlubGluZQorCisgICAgZGVmIGdldGluaShzZWxmLCBuYW1lKToKKyAgICAgICAg
IiIiIHJldHVybiBjb25maWd1cmF0aW9uIHZhbHVlIGZyb20gYW4gOnJlZjpgaW5pIGZpbGUgPGlu
aWZpbGVzPmAuIElmIHRoZQorICAgICAgICBzcGVjaWZpZWQgbmFtZSBoYXNuJ3QgYmVlbiByZWdp
c3RlcmVkIHRocm91Z2ggYSBwcmlvcgorICAgICAgICA6cHk6ZnVuYzpgcGFyc2VyLmFkZGluaSA8
X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZGluaT5gCisgICAgICAgIGNhbGwgKHVzdWFsbHkgZnJv
bSBhIHBsdWdpbiksIGEgVmFsdWVFcnJvciBpcyByYWlzZWQuICIiIgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5faW5pY2FjaGVbbmFtZV0KKyAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgorICAgICAgICAgICAgc2VsZi5faW5pY2FjaGVbbmFtZV0gPSB2YWwgPSBzZWxmLl9n
ZXRpbmkobmFtZSkKKyAgICAgICAgICAgIHJldHVybiB2YWwKKworICAgIGRlZiBfZ2V0aW5pKHNl
bGYsIG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZXNjcmlwdGlvbiwgdHlwZSwg
ZGVmYXVsdCA9IHNlbGYuX3BhcnNlci5faW5pZGljdFtuYW1lXQorICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIGNvbmZpZ3VyYXRp
b24gdmFsdWU6ICVyIiAlIChuYW1lLCkpCisgICAgICAgIHZhbHVlID0gc2VsZi5fZ2V0X292ZXJy
aWRlX2luaV92YWx1ZShuYW1lKQorICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5pbmljZmdbbmFtZV0KKyAgICAg
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBkZWZhdWx0IGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICAgICAg
ICAgIGlmIHR5cGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGlmIHR5cGUgPT0gInBhdGhsaXN0IjoKKyAg
ICAgICAgICAgIGRwID0gcHkucGF0aC5sb2NhbChzZWxmLmluaWNmZy5jb25maWcucGF0aCkuZGly
cGF0aCgpCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZm9yIHJlbHBhdGgg
aW4gc2hsZXguc3BsaXQodmFsdWUpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZHAu
am9pbihyZWxwYXRoLCBhYnM9VHJ1ZSkpCisgICAgICAgICAgICByZXR1cm4gdmFsdWVzCisgICAg
ICAgIGVsaWYgdHlwZSA9PSAiYXJncyI6CisgICAgICAgICAgICByZXR1cm4gc2hsZXguc3BsaXQo
dmFsdWUpCisgICAgICAgIGVsaWYgdHlwZSA9PSAibGluZWxpc3QiOgorICAgICAgICAgICAgcmV0
dXJuIFt0IGZvciB0IGluIG1hcChsYW1iZGEgeDogeC5zdHJpcCgpLCB2YWx1ZS5zcGxpdCgiXG4i
KSkgaWYgdF0KKyAgICAgICAgZWxpZiB0eXBlID09ICJib29sIjoKKyAgICAgICAgICAgIHJldHVy
biBib29sKF9zdHJ0b2Jvb2wodmFsdWUuc3RyaXAoKSkpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBhc3NlcnQgdHlwZSBpcyBOb25lCisgICAgICAgICAgICByZXR1cm4gdmFsdWUKKworICAg
IGRlZiBfZ2V0Y29uZnRlc3RfcGF0aGxpc3Qoc2VsZiwgbmFtZSwgcGF0aCk6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIG1vZCwgcmVscm9vdHMgPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3JnZXRf
d2l0aF9jb25mbW9kKG5hbWUsIHBhdGgpCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG1vZHBhdGggPSBweS5wYXRoLmxvY2FsKG1vZC5f
X2ZpbGVfXykuZGlycGF0aCgpCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIGZvciByZWxy
b290IGluIHJlbHJvb3RzOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVscm9vdCwg
cHkucGF0aC5sb2NhbCk6CisgICAgICAgICAgICAgICAgcmVscm9vdCA9IHJlbHJvb3QucmVwbGFj
ZSgiLyIsIHB5LnBhdGgubG9jYWwuc2VwKQorICAgICAgICAgICAgICAgIHJlbHJvb3QgPSBtb2Rw
YXRoLmpvaW4ocmVscm9vdCwgYWJzPVRydWUpCisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHJl
bHJvb3QpCisgICAgICAgIHJldHVybiB2YWx1ZXMKKworICAgIGRlZiBfZ2V0X292ZXJyaWRlX2lu
aV92YWx1ZShzZWxmLCBuYW1lKToKKyAgICAgICAgdmFsdWUgPSBOb25lCisgICAgICAgICMgb3Zl
cnJpZGVfaW5pIGlzIGEgbGlzdCBvZiBsaXN0LCB0byBzdXBwb3J0IGJvdGggLW8gZm9vMT1iYXIx
IGZvbzI9YmFyMiBhbmQKKyAgICAgICAgIyBhbmQgLW8gZm9vMT1iYXIxIC1vIGZvbzI9YmFyMiBv
cHRpb25zCisgICAgICAgICMgYWx3YXlzIHVzZSB0aGUgbGFzdCBpdGVtIGlmIG11bHRpcGxlIHZh
bHVlIHNldCBmb3Igc2FtZSBpbmktbmFtZSwKKyAgICAgICAgIyBlLmcuIC1vIGZvbz1iYXIxIC1v
IGZvbz1iYXIyIHdpbGwgc2V0IGZvbyB0byBiYXIyCisgICAgICAgIGZvciBpbmlfY29uZmlnX2xp
c3QgaW4gc2VsZi5fb3ZlcnJpZGVfaW5pOgorICAgICAgICAgICAgZm9yIGluaV9jb25maWcgaW4g
aW5pX2NvbmZpZ19saXN0OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAg
ICAgKGtleSwgdXNlcl9pbmlfdmFsdWUpID0gaW5pX2NvbmZpZy5zcGxpdCgiPSIsIDEpCisgICAg
ICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
IFVzYWdlRXJyb3IoIi1vLy0tb3ZlcnJpZGUtaW5pIGV4cGVjdHMgb3B0aW9uPXZhbHVlIHN0eWxl
LiIpCisgICAgICAgICAgICAgICAgaWYga2V5ID09IG5hbWU6CisgICAgICAgICAgICAgICAgICAg
IHZhbHVlID0gdXNlcl9pbmlfdmFsdWUKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYg
Z2V0b3B0aW9uKHNlbGYsIG5hbWUsIGRlZmF1bHQ9bm90c2V0LCBza2lwPUZhbHNlKToKKyAgICAg
ICAgIiIiIHJldHVybiBjb21tYW5kIGxpbmUgb3B0aW9uIHZhbHVlLgorCisgICAgICAgIDphcmcg
bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uLiAgWW91IG1heSBhbHNvIHNwZWNpZnkKKyAgICAgICAg
ICAgIHRoZSBsaXRlcmFsIGBgLS1PUFRgYCBvcHRpb24gaW5zdGVhZCBvZiB0aGUgImRlc3QiIG9w
dGlvbiBuYW1lLgorICAgICAgICA6YXJnIGRlZmF1bHQ6IGRlZmF1bHQgdmFsdWUgaWYgbm8gb3B0
aW9uIG9mIHRoYXQgbmFtZSBleGlzdHMuCisgICAgICAgIDphcmcgc2tpcDogaWYgVHJ1ZSByYWlz
ZSBweXRlc3Quc2tpcCBpZiBvcHRpb24gZG9lcyBub3QgZXhpc3RzCisgICAgICAgICAgICBvciBo
YXMgYSBOb25lIHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgbmFtZSA9IHNlbGYuX29wdDJk
ZXN0LmdldChuYW1lLCBuYW1lKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB2YWwgPSBnZXRh
dHRyKHNlbGYub3B0aW9uLCBuYW1lKQorICAgICAgICAgICAgaWYgdmFsIGlzIE5vbmUgYW5kIHNr
aXA6CisgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAg
ICAgIHJldHVybiB2YWwKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAg
ICAgaWYgZGVmYXVsdCBpcyBub3Qgbm90c2V0OgorICAgICAgICAgICAgICAgIHJldHVybiBkZWZh
dWx0CisgICAgICAgICAgICBpZiBza2lwOgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgibm8gJXIgb3B0aW9uIGZvdW5kIiAlIChuYW1l
LCkpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJubyBvcHRpb24gbmFtZWQgJXIiICUg
KG5hbWUsKSkKKworICAgIGRlZiBnZXR2YWx1ZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgorICAg
ICAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBnZXRvcHRpb24oKSkgIiIiCisgICAgICAgIHJldHVy
biBzZWxmLmdldG9wdGlvbihuYW1lKQorCisgICAgZGVmIGdldHZhbHVlb3Jza2lwKHNlbGYsIG5h
bWUsIHBhdGg9Tm9uZSk6CisgICAgICAgICIiIiAoZGVwcmVjYXRlZCwgdXNlIGdldG9wdGlvbihz
a2lwPVRydWUpKSAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0b3B0aW9uKG5hbWUsIHNraXA9
VHJ1ZSkKKworCitkZWYgZXhpc3RzKHBhdGgsIGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToKKyAg
ICB0cnk6CisgICAgICAgIHJldHVybiBwYXRoLmNoZWNrKCkKKyAgICBleGNlcHQgaWdub3JlOgor
ICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYgZ2V0Y2ZnKGFyZ3MsIHdhcm5mdW5jPU5vbmUp
OgorICAgICIiIgorICAgIFNlYXJjaCB0aGUgbGlzdCBvZiBhcmd1bWVudHMgZm9yIGEgdmFsaWQg
aW5pLWZpbGUgZm9yIHB5dGVzdCwKKyAgICBhbmQgcmV0dXJuIGEgdHVwbGUgb2YgKHJvb3RkaXIs
IGluaWZpbGUsIGNmZy1kaWN0KS4KKworICAgIG5vdGU6IHdhcm5mdW5jIGlzIGFuIG9wdGlvbmFs
IGZ1bmN0aW9uIHVzZWQgdG8gd2FybgorICAgICAgICBhYm91dCBpbmktZmlsZXMgdGhhdCB1c2Ug
ZGVwcmVjYXRlZCBmZWF0dXJlcy4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJl
bW92ZWQgd2hlbiBweXRlc3QKKyAgICAgICAgYWRvcHRzIHN0YW5kYXJkIGRlcHJlY2F0aW9uIHdh
cm5pbmdzICgjMTgwNCkuCisgICAgIiIiCisgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1w
b3J0IFNFVFVQX0NGR19QWVRFU1QKKyAgICBpbmliYXNlbmFtZXMgPSBbInB5dGVzdC5pbmkiLCAi
dG94LmluaSIsICJzZXR1cC5jZmciXQorICAgIGFyZ3MgPSBbeCBmb3IgeCBpbiBhcmdzIGlmIG5v
dCBzdHIoeCkuc3RhcnRzd2l0aCgiLSIpXQorICAgIGlmIG5vdCBhcmdzOgorICAgICAgICBhcmdz
ID0gW3B5LnBhdGgubG9jYWwoKV0KKyAgICBmb3IgYXJnIGluIGFyZ3M6CisgICAgICAgIGFyZyA9
IHB5LnBhdGgubG9jYWwoYXJnKQorICAgICAgICBmb3IgYmFzZSBpbiBhcmcucGFydHMocmV2ZXJz
ZT1UcnVlKToKKyAgICAgICAgICAgIGZvciBpbmliYXNlbmFtZSBpbiBpbmliYXNlbmFtZXM6Cisg
ICAgICAgICAgICAgICAgcCA9IGJhc2Uuam9pbihpbmliYXNlbmFtZSkKKyAgICAgICAgICAgICAg
ICBpZiBleGlzdHMocCk6CisgICAgICAgICAgICAgICAgICAgIGluaWNvbmZpZyA9IHB5LmluaWNv
bmZpZy5JbmlDb25maWcocCkKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3B5dGVzdCcgaW4gaW5p
Y29uZmlnLnNlY3Rpb25zOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5pYmFzZW5hbWUg
PT0gJ3NldHVwLmNmZycgYW5kIHdhcm5mdW5jOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdhcm5mdW5jKCdDMScsIFNFVFVQX0NGR19QWVRFU1QpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYmFzZSwgcCwgaW5pY29uZmlnWydweXRlc3QnXQorICAgICAgICAgICAgICAgICAg
ICBpZiBpbmliYXNlbmFtZSA9PSAnc2V0dXAuY2ZnJyBhbmQgJ3Rvb2w6cHl0ZXN0JyBpbiBpbmlj
b25maWcuc2VjdGlvbnM6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwg
aW5pY29uZmlnWyd0b29sOnB5dGVzdCddCisgICAgICAgICAgICAgICAgICAgIGVsaWYgaW5pYmFz
ZW5hbWUgPT0gInB5dGVzdC5pbmkiOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGxvd2Vk
IHRvIGJlIGVtcHR5CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwge30K
KyAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQorCisKK2RlZiBnZXRfY29tbW9uX2FuY2VzdG9y
KHBhdGhzKToKKyAgICBjb21tb25fYW5jZXN0b3IgPSBOb25lCisgICAgZm9yIHBhdGggaW4gcGF0
aHM6CisgICAgICAgIGlmIG5vdCBwYXRoLmV4aXN0cygpOgorICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgaWYgY29tbW9uX2FuY2VzdG9yIGlzIE5vbmU6CisgICAgICAgICAgICBjb21tb25f
YW5jZXN0b3IgPSBwYXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBwYXRoLnJlbHRv
KGNvbW1vbl9hbmNlc3Rvcikgb3IgcGF0aCA9PSBjb21tb25fYW5jZXN0b3I6CisgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVsaWYgY29tbW9uX2FuY2VzdG9yLnJlbHRvKHBh
dGgpOgorICAgICAgICAgICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHBhdGgKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc2hhcmVkID0gcGF0aC5jb21tb24oY29tbW9uX2FuY2Vz
dG9yKQorICAgICAgICAgICAgICAgIGlmIHNoYXJlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gc2hhcmVkCisgICAgaWYgY29tbW9uX2FuY2VzdG9y
IGlzIE5vbmU6CisgICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHB5LnBhdGgubG9jYWwoKQorICAg
IGVsaWYgY29tbW9uX2FuY2VzdG9yLmlzZmlsZSgpOgorICAgICAgICBjb21tb25fYW5jZXN0b3Ig
PSBjb21tb25fYW5jZXN0b3IuZGlycGF0aCgpCisgICAgcmV0dXJuIGNvbW1vbl9hbmNlc3Rvcgor
CisKK2RlZiBnZXRfZGlyc19mcm9tX2FyZ3MoYXJncyk6CisgICAgZGVmIGlzX29wdGlvbih4KToK
KyAgICAgICAgcmV0dXJuIHN0cih4KS5zdGFydHN3aXRoKCctJykKKworICAgIGRlZiBnZXRfZmls
ZV9wYXJ0X2Zyb21fbm9kZV9pZCh4KToKKyAgICAgICAgcmV0dXJuIHN0cih4KS5zcGxpdCgnOjon
KVswXQorCisgICAgZGVmIGdldF9kaXJfZnJvbV9wYXRoKHBhdGgpOgorICAgICAgICBpZiBwYXRo
LmlzZGlyKCk6CisgICAgICAgICAgICByZXR1cm4gcGF0aAorICAgICAgICByZXR1cm4gcHkucGF0
aC5sb2NhbChwYXRoLmRpcm5hbWUpCisKKyAgICAjIFRoZXNlIGxvb2sgbGlrZSBwYXRocyBidXQg
bWF5IG5vdCBleGlzdAorICAgIHBvc3NpYmxlX3BhdGhzID0gKAorICAgICAgICBweS5wYXRoLmxv
Y2FsKGdldF9maWxlX3BhcnRfZnJvbV9ub2RlX2lkKGFyZykpCisgICAgICAgIGZvciBhcmcgaW4g
YXJncworICAgICAgICBpZiBub3QgaXNfb3B0aW9uKGFyZykKKyAgICApCisKKyAgICByZXR1cm4g
WworICAgICAgICBnZXRfZGlyX2Zyb21fcGF0aChwYXRoKQorICAgICAgICBmb3IgcGF0aCBpbiBw
b3NzaWJsZV9wYXRocworICAgICAgICBpZiBwYXRoLmV4aXN0cygpCisgICAgXQorCisKK2RlZiBk
ZXRlcm1pbmVfc2V0dXAoaW5pZmlsZSwgYXJncywgd2FybmZ1bmM9Tm9uZSk6CisgICAgZGlycyA9
IGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKQorICAgIGlmIGluaWZpbGU6CisgICAgICAgIGluaWNv
bmZpZyA9IHB5LmluaWNvbmZpZy5JbmlDb25maWcoaW5pZmlsZSkKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaW5pY2ZnID0gaW5pY29uZmlnWyJweXRlc3QiXQorICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICBpbmljZmcgPSBOb25lCisgICAgICAgIHJvb3RkaXIgPSBnZXRf
Y29tbW9uX2FuY2VzdG9yKGRpcnMpCisgICAgZWxzZToKKyAgICAgICAgYW5jZXN0b3IgPSBnZXRf
Y29tbW9uX2FuY2VzdG9yKGRpcnMpCisgICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9
IGdldGNmZyhbYW5jZXN0b3JdLCB3YXJuZnVuYz13YXJuZnVuYykKKyAgICAgICAgaWYgcm9vdGRp
ciBpcyBOb25lOgorICAgICAgICAgICAgZm9yIHJvb3RkaXIgaW4gYW5jZXN0b3IucGFydHMocmV2
ZXJzZT1UcnVlKToKKyAgICAgICAgICAgICAgICBpZiByb290ZGlyLmpvaW4oInNldHVwLnB5Iiku
ZXhpc3RzKCk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9IGdldGNmZyhkaXJzLCB3
YXJuZnVuYz13YXJuZnVuYykKKyAgICAgICAgICAgICAgICBpZiByb290ZGlyIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2FuY2VzdG9yKFtweS5wYXRo
LmxvY2FsKCksIGFuY2VzdG9yXSkKKyAgICAgICAgICAgICAgICAgICAgaXNfZnNfcm9vdCA9IG9z
LnBhdGguc3BsaXRkcml2ZShzdHIocm9vdGRpcikpWzFdID09ICcvJworICAgICAgICAgICAgICAg
ICAgICBpZiBpc19mc19yb290OgorICAgICAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IGFu
Y2VzdG9yCisgICAgcmV0dXJuIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyBvciB7fQorCisKK2Rl
ZiBzZXRucyhvYmosIGRpYyk6CisgICAgaW1wb3J0IHB5dGVzdAorICAgIGZvciBuYW1lLCB2YWx1
ZSBpbiBkaWMuaXRlbXMoKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCk6Cisg
ICAgICAgICAgICBtb2QgPSBnZXRhdHRyKG9iaiwgbmFtZSwgTm9uZSkKKyAgICAgICAgICAgIGlm
IG1vZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIG1vZG5hbWUgPSAicHl0ZXN0LiVzIiAlIG5h
bWUKKyAgICAgICAgICAgICAgICBtb2QgPSB0eXBlcy5Nb2R1bGVUeXBlKG1vZG5hbWUpCisgICAg
ICAgICAgICAgICAgc3lzLm1vZHVsZXNbbW9kbmFtZV0gPSBtb2QKKyAgICAgICAgICAgICAgICBt
b2QuX19hbGxfXyA9IFtdCisgICAgICAgICAgICAgICAgc2V0YXR0cihvYmosIG5hbWUsIG1vZCkK
KyAgICAgICAgICAgIG9iai5fX2FsbF9fLmFwcGVuZChuYW1lKQorICAgICAgICAgICAgc2V0bnMo
bW9kLCB2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNldGF0dHIob2JqLCBuYW1l
LCB2YWx1ZSkKKyAgICAgICAgICAgIG9iai5fX2FsbF9fLmFwcGVuZChuYW1lKQorICAgICAgICAg
ICAgIyBpZiBvYmogIT0gcHl0ZXN0OgorICAgICAgICAgICAgIyAgICBweXRlc3QuX19hbGxfXy5h
cHBlbmQobmFtZSkKKyAgICAgICAgICAgIHNldGF0dHIocHl0ZXN0LCBuYW1lLCB2YWx1ZSkKKwor
CitkZWYgY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgIiIiQ3JlYXRlIGEgVGVybWluYWxXcml0ZXIgaW5zdGFuY2UgY29uZmlndXJlZCBhY2NvcmRp
bmcgdG8gdGhlIG9wdGlvbnMKKyAgICBpbiB0aGUgY29uZmlnIG9iamVjdC4gRXZlcnkgY29kZSB3
aGljaCByZXF1aXJlcyBhIFRlcm1pbmFsV3JpdGVyIG9iamVjdAorICAgIGFuZCBoYXMgYWNjZXNz
IHRvIGEgY29uZmlnIG9iamVjdCBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24uCisgICAgIiIiCisg
ICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigqYXJncywgKiprd2FyZ3MpCisgICAgaWYgY29u
ZmlnLm9wdGlvbi5jb2xvciA9PSAneWVzJzoKKyAgICAgICAgdHcuaGFzbWFya3VwID0gVHJ1ZQor
ICAgIGlmIGNvbmZpZy5vcHRpb24uY29sb3IgPT0gJ25vJzoKKyAgICAgICAgdHcuaGFzbWFya3Vw
ID0gRmFsc2UKKyAgICByZXR1cm4gdHcKKworCitkZWYgX3N0cnRvYm9vbCh2YWwpOgorICAgICIi
IkNvbnZlcnQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdHJ1dGggdG8gdHJ1ZSAoMSkgb3Ig
ZmFsc2UgKDApLgorCisgICAgVHJ1ZSB2YWx1ZXMgYXJlICd5JywgJ3llcycsICd0JywgJ3RydWUn
LCAnb24nLCBhbmQgJzEnOyBmYWxzZSB2YWx1ZXMKKyAgICBhcmUgJ24nLCAnbm8nLCAnZicsICdm
YWxzZScsICdvZmYnLCBhbmQgJzAnLiAgUmFpc2VzIFZhbHVlRXJyb3IgaWYKKyAgICAndmFsJyBp
cyBhbnl0aGluZyBlbHNlLgorCisgICAgLi4gbm90ZTo6IGNvcGllZCBmcm9tIGRpc3R1dGlscy51
dGlsCisgICAgIiIiCisgICAgdmFsID0gdmFsLmxvd2VyKCkKKyAgICBpZiB2YWwgaW4gKCd5Jywg
J3llcycsICd0JywgJ3RydWUnLCAnb24nLCAnMScpOgorICAgICAgICByZXR1cm4gMQorICAgIGVs
aWYgdmFsIGluICgnbicsICdubycsICdmJywgJ2ZhbHNlJywgJ29mZicsICcwJyk6CisgICAgICAg
IHJldHVybiAwCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCB0
cnV0aCB2YWx1ZSAlciIgJSAodmFsLCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2RlYnVnZ2luZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVidWdnaW5nLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3ZGNhNzgwOTU2ZWMzOTc2MmQwNGNhYTE3ZjlkMGZiM2JkZWZmYzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weQpAQCAtMCwwICsxLDEyMyBA
QAorIiIiIGludGVyYWN0aXZlIGRlYnVnZ2luZyB3aXRoIFBEQiwgdGhlIFB5dGhvbiBEZWJ1Z2dl
ci4gIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCitpbXBvcnQgcGRiCitpbXBvcnQgc3lzCisKKworZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIp
CisgICAgZ3JvdXAuX2FkZG9wdGlvbigKKyAgICAgICAgJy0tcGRiJywgZGVzdD0idXNlcGRiIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgaGVscD0ic3RhcnQgdGhlIGludGVyYWN0aXZl
IFB5dGhvbiBkZWJ1Z2dlciBvbiBlcnJvcnMuIikKKyAgICBncm91cC5fYWRkb3B0aW9uKAorICAg
ICAgICAnLS1wZGJjbHMnLCBkZXN0PSJ1c2VwZGJfY2xzIiwgbWV0YXZhcj0ibW9kdWxlbmFtZTpj
bGFzc25hbWUiLAorICAgICAgICBoZWxwPSJzdGFydCBhIGN1c3RvbSBpbnRlcmFjdGl2ZSBQeXRo
b24gZGVidWdnZXIgb24gZXJyb3JzLiAiCisgICAgICAgICAgICAgIkZvciBleGFtcGxlOiAtLXBk
YmNscz1JUHl0aG9uLnRlcm1pbmFsLmRlYnVnZ2VyOlRlcm1pbmFsUGRiIikKKworCitkZWYgcHl0
ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiX2Ns
cyIpOgorICAgICAgICBtb2RuYW1lLCBjbGFzc25hbWUgPSBjb25maWcuZ2V0dmFsdWUoInVzZXBk
Yl9jbHMiKS5zcGxpdCgiOiIpCisgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKKyAgICAgICAg
cGRiX2NscyA9IGdldGF0dHIoc3lzLm1vZHVsZXNbbW9kbmFtZV0sIGNsYXNzbmFtZSkKKyAgICBl
bHNlOgorICAgICAgICBwZGJfY2xzID0gcGRiLlBkYgorCisgICAgaWYgY29uZmlnLmdldHZhbHVl
KCJ1c2VwZGIiKToKKyAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoUGRiSW52
b2tlKCksICdwZGJpbnZva2UnKQorCisgICAgb2xkID0gKHBkYi5zZXRfdHJhY2UsIHB5dGVzdFBE
Qi5fcGx1Z2lubWFuYWdlcikKKworICAgIGRlZiBmaW4oKToKKyAgICAgICAgcGRiLnNldF90cmFj
ZSwgcHl0ZXN0UERCLl9wbHVnaW5tYW5hZ2VyID0gb2xkCisgICAgICAgIHB5dGVzdFBEQi5fY29u
ZmlnID0gTm9uZQorICAgICAgICBweXRlc3RQREIuX3BkYl9jbHMgPSBwZGIuUGRiCisKKyAgICBw
ZGIuc2V0X3RyYWNlID0gcHl0ZXN0UERCLnNldF90cmFjZQorICAgIHB5dGVzdFBEQi5fcGx1Z2lu
bWFuYWdlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCisgICAgcHl0ZXN0UERCLl9jb25maWcgPSBj
b25maWcKKyAgICBweXRlc3RQREIuX3BkYl9jbHMgPSBwZGJfY2xzCisgICAgY29uZmlnLl9jbGVh
bnVwLmFwcGVuZChmaW4pCisKKworY2xhc3MgcHl0ZXN0UERCOgorICAgICIiIiBQc2V1ZG8gUERC
IHRoYXQgZGVmZXJzIHRvIHRoZSByZWFsIHBkYi4gIiIiCisgICAgX3BsdWdpbm1hbmFnZXIgPSBO
b25lCisgICAgX2NvbmZpZyA9IE5vbmUKKyAgICBfcGRiX2NscyA9IHBkYi5QZGIKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBzZXRfdHJhY2UoY2xzKToKKyAgICAgICAgIiIiIGludm9rZSBQ
REIgc2V0X3RyYWNlIGRlYnVnZ2luZywgZHJvcHBpbmcgYW55IElPIGNhcHR1cmluZy4gIiIiCisg
ICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZworICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJh
bWUoKS5mX2JhY2sKKyAgICAgICAgaWYgY2xzLl9wbHVnaW5tYW5hZ2VyIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgY2FwbWFuID0gY2xzLl9wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigiY2FwdHVy
ZW1hbmFnZXIiKQorICAgICAgICAgICAgaWYgY2FwbWFuOgorICAgICAgICAgICAgICAgIGNhcG1h
bi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVlKQorICAgICAgICAgICAgdHcgPSBfcHl0
ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNscy5fY29uZmlnKQorICAgICAgICAg
ICAgdHcubGluZSgpCisgICAgICAgICAgICB0dy5zZXAoIj4iLCAiUERCIHNldF90cmFjZSAoSU8t
Y2FwdHVyaW5nIHR1cm5lZCBvZmYpIikKKyAgICAgICAgICAgIGNscy5fcGx1Z2lubWFuYWdlci5o
b29rLnB5dGVzdF9lbnRlcl9wZGIoY29uZmlnPWNscy5fY29uZmlnKQorICAgICAgICBjbHMuX3Bk
Yl9jbHMoKS5zZXRfdHJhY2UoZnJhbWUpCisKKworY2xhc3MgUGRiSW52b2tlOgorICAgIGRlZiBw
eXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KHNlbGYsIG5vZGUsIGNhbGwsIHJlcG9ydCk6CisgICAg
ICAgIGNhcG1hbiA9IG5vZGUuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJjYXB0dXJl
bWFuYWdlciIpCisgICAgICAgIGlmIGNhcG1hbjoKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2Fw
bWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCisgICAgICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKG91dCkKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoZXJyKQorICAgICAg
ICBfZW50ZXJfcGRiKG5vZGUsIGNhbGwuZXhjaW5mbywgcmVwb3J0KQorCisgICAgZGVmIHB5dGVz
dF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIsIGV4Y2luZm8pOgorICAgICAgICBmb3IgbGlu
ZSBpbiBzdHIoZXhjcmVwcikuc3BsaXQoIlxuIik6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJJTlRFUk5BTEVSUk9SPiAlc1xuIiAlIGxpbmUpCisgICAgICAgICAgICBzeXMuc3RkZXJy
LmZsdXNoKCkKKyAgICAgICAgdGIgPSBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbykKKyAg
ICAgICAgcG9zdF9tb3J0ZW0odGIpCisKKworZGVmIF9lbnRlcl9wZGIobm9kZSwgZXhjaW5mbywg
cmVwKToKKyAgICAjIFhYWCB3ZSByZS11c2UgdGhlIFRlcm1pbmFsUmVwb3J0ZXIncyB0ZXJtaW5h
bHdyaXRlcgorICAgICMgYmVjYXVzZSB0aGlzIHNlZW1zIHRvIGF2b2lkIHNvbWUgZW5jb2Rpbmcg
cmVsYXRlZCB0cm91YmxlcworICAgICMgZm9yIG5vdCBjb21wbGV0ZWx5IGNsZWFyIHJlYXNvbnMu
CisgICAgdHcgPSBub2RlLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigidGVybWluYWxy
ZXBvcnRlciIpLl90dworICAgIHR3LmxpbmUoKQorICAgIHR3LnNlcCgiPiIsICJ0cmFjZWJhY2si
KQorICAgIHJlcC50b3Rlcm1pbmFsKHR3KQorICAgIHR3LnNlcCgiPiIsICJlbnRlcmluZyBQREIi
KQorICAgIHRiID0gX3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgcG9zdF9tb3J0
ZW0odGIpCisgICAgcmVwLl9wZGJzaG93biA9IFRydWUKKyAgICByZXR1cm4gcmVwCisKKworZGVm
IF9wb3N0bW9ydGVtX3RyYWNlYmFjayhleGNpbmZvKToKKyAgICAjIEEgZG9jdGVzdC5VbmV4cGVj
dGVkRXhjZXB0aW9uIGlzIG5vdCB1c2VmdWwgZm9yIHBvc3RfbW9ydGVtLgorICAgICMgVXNlIHRo
ZSB1bmRlcmx5aW5nIGV4Y2VwdGlvbiBpbnN0ZWFkOgorICAgIGZyb20gZG9jdGVzdCBpbXBvcnQg
VW5leHBlY3RlZEV4Y2VwdGlvbgorICAgIGlmIGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgVW5l
eHBlY3RlZEV4Y2VwdGlvbik6CisgICAgICAgIHJldHVybiBleGNpbmZvLnZhbHVlLmV4Y19pbmZv
WzJdCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGV4Y2luZm8uX2V4Y2luZm9bMl0KKworCitk
ZWYgX2ZpbmRfbGFzdF9ub25faGlkZGVuX2ZyYW1lKHN0YWNrKToKKyAgICBpID0gbWF4KDAsIGxl
bihzdGFjaykgLSAxKQorICAgIHdoaWxlIGkgYW5kIHN0YWNrW2ldWzBdLmZfbG9jYWxzLmdldCgi
X190cmFjZWJhY2toaWRlX18iLCBGYWxzZSk6CisgICAgICAgIGkgLT0gMQorICAgIHJldHVybiBp
CisKKworZGVmIHBvc3RfbW9ydGVtKHQpOgorICAgIGNsYXNzIFBkYihweXRlc3RQREIuX3BkYl9j
bHMpOgorICAgICAgICBkZWYgZ2V0X3N0YWNrKHNlbGYsIGYsIHQpOgorICAgICAgICAgICAgc3Rh
Y2ssIGkgPSBwZGIuUGRiLmdldF9zdGFjayhzZWxmLCBmLCB0KQorICAgICAgICAgICAgaWYgZiBp
cyBOb25lOgorICAgICAgICAgICAgICAgIGkgPSBfZmluZF9sYXN0X25vbl9oaWRkZW5fZnJhbWUo
c3RhY2spCisgICAgICAgICAgICByZXR1cm4gc3RhY2ssIGkKKyAgICBwID0gUGRiKCkKKyAgICBw
LnJlc2V0KCkKKyAgICBwLmludGVyYWN0aW9uKE5vbmUsIHQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0
ZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWMwZmJlY2E3YmM5ZTk3NDE3MGE5ZWNlYWMzMjc2NzdmNTYxZjEy
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVwcmVjYXRlZC5weQpA
QCAtMCwwICsxLDUyIEBACisiIiIKK1RoaXMgbW9kdWxlIGNvbnRhaW5zIGRlcHJlY2F0aW9uIG1l
c3NhZ2VzIGFuZCBiaXRzIG9mIGNvZGUgdXNlZCBlbHNld2hlcmUgaW4gdGhlIGNvZGViYXNlCit0
aGF0IGlzIHBsYW5uZWQgdG8gYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBweXRlc3QgcmVsZWFzZS4K
KworS2VlcGluZyBpdCBpbiBhIGNlbnRyYWwgbG9jYXRpb24gbWFrZXMgaXQgZWFzeSB0byB0cmFj
ayB3aGF0IGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZAorYmUgcmVtb3ZlZCB3aGVuIHRoZSB0aW1l
IGNvbWVzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisKKworY2xhc3MgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmco
RGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAiIiJ3YXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyBy
ZW1vdmVkIGluIHB5dGVzdCA0LjAiIiIKKworCitNQUlOX1NUUl9BUkdTID0gJ3Bhc3NpbmcgYSBz
dHJpbmcgdG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAnIFwKKyAgICAncGFzcyBhIGxp
c3Qgb2YgYXJndW1lbnRzIGluc3RlYWQuJworCitZSUVMRF9URVNUUyA9ICd5aWVsZCB0ZXN0cyBh
cmUgZGVwcmVjYXRlZCwgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAn
CisKK0ZVTkNBUkdfUFJFRklYID0gKAorICAgICd7bmFtZX06IGRlY2xhcmluZyBmaXh0dXJlcyB1
c2luZyAicHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4IGlzIGRlcHJlY2F0ZWQgJworICAgICdhbmQg
c2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMC4gICcKKyAgICAnUGxlYXNlIHJl
bW92ZSB0aGUgcHJlZml4IGFuZCB1c2UgdGhlIEBweXRlc3QuZml4dHVyZSBkZWNvcmF0b3IgaW5z
dGVhZC4nKQorCitTRVRVUF9DRkdfUFlURVNUID0gJ1tweXRlc3RdIHNlY3Rpb24gaW4gc2V0dXAu
Y2ZnIGZpbGVzIGlzIGRlcHJlY2F0ZWQsIHVzZSBbdG9vbDpweXRlc3RdIGluc3RlYWQuJworCitH
RVRGVU5DQVJHVkFMVUUgPSAidXNlIG9mIGdldGZ1bmNhcmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1
c2UgZ2V0Zml4dHVyZXZhbHVlIgorCitSRVNVTFRfTE9HID0gKAorICAgICctLXJlc3VsdC1sb2cg
aXMgZGVwcmVjYXRlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIHB5dGVzdCA0LjAuXG4n
CisgICAgJ1NlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvdXNhZ2UuaHRtbCNj
cmVhdGluZy1yZXN1bHRsb2ctZm9ybWF0LWZpbGVzIGZvciBtb3JlIGluZm9ybWF0aW9uLicKKykK
KworTUFSS19JTkZPX0FUVFJJQlVURSA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKAorICAgICJN
YXJrSW5mbyBvYmplY3RzIGFyZSBkZXByZWNhdGVkIGFzIHRoZXkgY29udGFpbiB0aGUgbWVyZ2Vk
IG1hcmtzIgorKQorCitNQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcgPSBSZW1vdmVkSW5QeXRl
c3Q0V2FybmluZygKKyAgICAiQXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycyBp
cyBkZXByZWNhdGVkLCIKKyAgICAiIHBsZWFzZSB1c2UgcHl0ZXN0LnBhcmFtKC4uLiwgbWFya3M9
Li4uKSBpbnN0ZWFkLlxuIgorICAgICJGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIgorKQorCitDT0xMRUNUT1Jf
TUFLRUlURU0gPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKKyAgICAicHljb2xsZWN0b3IgbWFr
ZWl0ZW0gd2FzIHJlbW92ZWQgIgorICAgICJhcyBpdCBpcyBhbiBhY2NpZGVudGlhbGx5IGxlYWtl
ZCBpbnRlcm5hbCBhcGkiCispCisKK01FVEFGVU5DX0FERF9DQUxMID0gKAorICAgICJNZXRhZnVu
Yy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5
dGVzdCA0LjAuXG4iCisgICAgIlBsZWFzZSB1c2UgTWV0YWZ1bmMucGFyYW1ldHJpemUgaW5zdGVh
ZC4iCispCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJhOTBlNTUxYzUwNWFlZDk5
M2E3OTkxOWRkMDM5OTk4NjEwYTZkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvZG9jdGVzdC5weQpAQCAtMCwwICsxLDM2OSBAQAorIiIiIGRpc2NvdmVyIGFuZCBydW4g
ZG9jdGVzdHMgaW4gbW9kdWxlcyBhbmQgdGVzdCBmaWxlcy4iIiIKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0
IHRyYWNlYmFjaworCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBv
cnQgRXhjZXB0aW9uSW5mbywgUmVwckZpbGVMb2NhdGlvbiwgVGVybWluYWxSZXByCitmcm9tIF9w
eXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1cmVSZXF1ZXN0CisKKworRE9DVEVTVF9SRVBPUlRf
Q0hPSUNFX05PTkUgPSAnbm9uZScKK0RPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRiA9ICdjZGlm
ZicKK0RPQ1RFU1RfUkVQT1JUX0NIT0lDRV9ORElGRiA9ICduZGlmZicKK0RPQ1RFU1RfUkVQT1JU
X0NIT0lDRV9VRElGRiA9ICd1ZGlmZicKK0RPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNU
X0ZBSUxVUkUgPSAnb25seV9maXJzdF9mYWlsdXJlJworCitET0NURVNUX1JFUE9SVF9DSE9JQ0VT
ID0gKAorICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9OT05FLAorICAgIERPQ1RFU1RfUkVQT1JU
X0NIT0lDRV9DRElGRiwKKyAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkYsCisgICAgRE9D
VEVTVF9SRVBPUlRfQ0hPSUNFX1VESUZGLAorICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZ
X0ZJUlNUX0ZBSUxVUkUsCispCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAg
ICBwYXJzZXIuYWRkaW5pKCdkb2N0ZXN0X29wdGlvbmZsYWdzJywgJ29wdGlvbiBmbGFncyBmb3Ig
ZG9jdGVzdHMnLAorICAgICAgICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJFTExJ
UFNJUyJdKQorICAgIHBhcnNlci5hZGRpbmkoImRvY3Rlc3RfZW5jb2RpbmciLCAnZW5jb2Rpbmcg
dXNlZCBmb3IgZG9jdGVzdCBmaWxlcycsIGRlZmF1bHQ9InV0Zi04IikKKyAgICBncm91cCA9IHBh
cnNlci5nZXRncm91cCgiY29sbGVjdCIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3Qt
bW9kdWxlcyIsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1
bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biBkb2N0ZXN0cyBpbiBhbGwg
LnB5IG1vZHVsZXMiLAorICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0bW9kdWxlcyIp
CisgICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtcmVwb3J0IiwKKyAgICAgICAgICAgICAg
ICAgICAgdHlwZT1zdHIubG93ZXIsIGRlZmF1bHQ9InVkaWZmIiwKKyAgICAgICAgICAgICAgICAg
ICAgaGVscD0iY2hvb3NlIGFub3RoZXIgb3V0cHV0IGZvcm1hdCBmb3IgZGlmZnMgb24gZG9jdGVz
dCBmYWlsdXJlIiwKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1ET0NURVNUX1JFUE9SVF9D
SE9JQ0VTLAorICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0cmVwb3J0IikKKyAgICBn
cm91cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1nbG9iIiwKKyAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSJhcHBlbmQiLCBkZWZhdWx0PVtdLCBtZXRhdmFyPSJwYXQiLAorICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJkb2N0ZXN0cyBmaWxlIG1hdGNoaW5nIHBhdHRlcm4sIGRlZmF1bHQ6IHRlc3Qq
LnR4dCIsCisgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImRvY3Rlc3RnbG9iIikKKyAgICBncm91
cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1pZ25vcmUtaW1wb3J0LWVycm9ycyIsCisgICAgICAgICAg
ICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgIGhlbHA9Imlnbm9yZSBkb2N0ZXN0IEltcG9ydEVycm9ycyIsCisgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9ImRvY3Rlc3RfaWdub3JlX2ltcG9ydF9lcnJvcnMiKQorCisKK2RlZiBw
eXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CisgICAgY29uZmlnID0gcGFyZW50LmNv
bmZpZworICAgIGlmIHBhdGguZXh0ID09ICIucHkiOgorICAgICAgICBpZiBjb25maWcub3B0aW9u
LmRvY3Rlc3Rtb2R1bGVzIGFuZCBub3QgX2lzX3NldHVwX3B5KGNvbmZpZywgcGF0aCwgcGFyZW50
KToKKyAgICAgICAgICAgIHJldHVybiBEb2N0ZXN0TW9kdWxlKHBhdGgsIHBhcmVudCkKKyAgICBl
bGlmIF9pc19kb2N0ZXN0KGNvbmZpZywgcGF0aCwgcGFyZW50KToKKyAgICAgICAgcmV0dXJuIERv
Y3Rlc3RUZXh0ZmlsZShwYXRoLCBwYXJlbnQpCisKKworZGVmIF9pc19zZXR1cF9weShjb25maWcs
IHBhdGgsIHBhcmVudCk6CisgICAgaWYgcGF0aC5iYXNlbmFtZSAhPSAic2V0dXAucHkiOgorICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICBjb250ZW50cyA9IHBhdGgucmVhZCgpCisgICAgcmV0dXJu
ICdzZXR1cHRvb2xzJyBpbiBjb250ZW50cyBvciAnZGlzdHV0aWxzJyBpbiBjb250ZW50cworCisK
K2RlZiBfaXNfZG9jdGVzdChjb25maWcsIHBhdGgsIHBhcmVudCk6CisgICAgaWYgcGF0aC5leHQg
aW4gKCcudHh0JywgJy5yc3QnKSBhbmQgcGFyZW50LnNlc3Npb24uaXNpbml0cGF0aChwYXRoKToK
KyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBnbG9icyA9IGNvbmZpZy5nZXRvcHRpb24oImRvY3Rl
c3RnbG9iIikgb3IgWyd0ZXN0Ki50eHQnXQorICAgIGZvciBnbG9iIGluIGdsb2JzOgorICAgICAg
ICBpZiBwYXRoLmNoZWNrKGZubWF0Y2g9Z2xvYik6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIFJlcHJGYWlsRG9jdGVzdChUZXJtaW5hbFJlcHIp
OgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJsb2NhdGlvbiwgbGluZXMpOgorICAgICAg
ICBzZWxmLnJlcHJsb2NhdGlvbiA9IHJlcHJsb2NhdGlvbgorICAgICAgICBzZWxmLmxpbmVzID0g
bGluZXMKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAgZm9yIGxpbmUg
aW4gc2VsZi5saW5lczoKKyAgICAgICAgICAgIHR3LmxpbmUobGluZSkKKyAgICAgICAgc2VsZi5y
ZXBybG9jYXRpb24udG90ZXJtaW5hbCh0dykKKworCitjbGFzcyBEb2N0ZXN0SXRlbShweXRlc3Qu
SXRlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudCwgcnVubmVyPU5vbmUs
IGR0ZXN0PU5vbmUpOgorICAgICAgICBzdXBlcihEb2N0ZXN0SXRlbSwgc2VsZikuX19pbml0X18o
bmFtZSwgcGFyZW50KQorICAgICAgICBzZWxmLnJ1bm5lciA9IHJ1bm5lcgorICAgICAgICBzZWxm
LmR0ZXN0ID0gZHRlc3QKKyAgICAgICAgc2VsZi5vYmogPSBOb25lCisgICAgICAgIHNlbGYuZml4
dHVyZV9yZXF1ZXN0ID0gTm9uZQorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLmR0ZXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5maXh0dXJlX3JlcXVlc3Qg
PSBfc2V0dXBfZml4dHVyZXMoc2VsZikKKyAgICAgICAgICAgIGdsb2JzID0gZGljdChnZXRmaXh0
dXJlPXNlbGYuZml4dHVyZV9yZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSkKKyAgICAgICAgICAgIGZv
ciBuYW1lLCB2YWx1ZSBpbiBzZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2Rv
Y3Rlc3RfbmFtZXNwYWNlJykuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBnbG9ic1tuYW1lXSA9
IHZhbHVlCisgICAgICAgICAgICBzZWxmLmR0ZXN0Lmdsb2JzLnVwZGF0ZShnbG9icykKKworICAg
IGRlZiBydW50ZXN0KHNlbGYpOgorICAgICAgICBfY2hlY2tfYWxsX3NraXBwZWQoc2VsZi5kdGVz
dCkKKyAgICAgICAgc2VsZi5ydW5uZXIucnVuKHNlbGYuZHRlc3QpCisKKyAgICBkZWYgcmVwcl9m
YWlsdXJlKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICBpbXBvcnQgZG9jdGVzdAorICAgICAgICBp
ZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoKGRvY3Rlc3QuRG9jVGVzdEZhaWx1cmUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdGVzdC5VbmV4cGVjdGVkRXhjZXB0aW9uKSk6
CisgICAgICAgICAgICBkb2N0ZXN0ZmFpbHVyZSA9IGV4Y2luZm8udmFsdWUKKyAgICAgICAgICAg
IGV4YW1wbGUgPSBkb2N0ZXN0ZmFpbHVyZS5leGFtcGxlCisgICAgICAgICAgICB0ZXN0ID0gZG9j
dGVzdGZhaWx1cmUudGVzdAorICAgICAgICAgICAgZmlsZW5hbWUgPSB0ZXN0LmZpbGVuYW1lCisg
ICAgICAgICAgICBpZiB0ZXN0LmxpbmVubyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGxpbmVu
byA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZW5vID0gdGVz
dC5saW5lbm8gKyBleGFtcGxlLmxpbmVubyArIDEKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBleGNp
bmZvLnR5cGUuX19uYW1lX18KKyAgICAgICAgICAgIHJlcHJsb2NhdGlvbiA9IFJlcHJGaWxlTG9j
YXRpb24oZmlsZW5hbWUsIGxpbmVubywgbWVzc2FnZSkKKyAgICAgICAgICAgIGNoZWNrZXIgPSBf
Z2V0X2NoZWNrZXIoKQorICAgICAgICAgICAgcmVwb3J0X2Nob2ljZSA9IF9nZXRfcmVwb3J0X2No
b2ljZShzZWxmLmNvbmZpZy5nZXRvcHRpb24oImRvY3Rlc3RyZXBvcnQiKSkKKyAgICAgICAgICAg
IGlmIGxpbmVubyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcyA9IGRvY3Rlc3Rm
YWlsdXJlLnRlc3QuZG9jc3RyaW5nLnNwbGl0bGluZXMoRmFsc2UpCisgICAgICAgICAgICAgICAg
IyBhZGQgbGluZSBudW1iZXJzIHRvIHRoZSBsZWZ0IG9mIHRoZSBlcnJvciBtZXNzYWdlCisgICAg
ICAgICAgICAgICAgbGluZXMgPSBbIiUwM2QgJXMiICUgKGkgKyB0ZXN0LmxpbmVubyArIDEsIHgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpLCB4KSBpbiBlbnVtZXJhdGUobGluZXMp
XQorICAgICAgICAgICAgICAgICMgdHJpbSBkb2NzdHJpbmcgZXJyb3IgbGluZXMgdG8gMTAKKyAg
ICAgICAgICAgICAgICBsaW5lcyA9IGxpbmVzW21heChleGFtcGxlLmxpbmVubyAtIDksIDApOmV4
YW1wbGUubGluZW5vICsgMV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGlu
ZXMgPSBbJ0VYQU1QTEUgTE9DQVRJT04gVU5LTk9XTiwgbm90IHNob3dpbmcgYWxsIHRlc3RzIG9m
IHRoYXQgZXhhbXBsZSddCisgICAgICAgICAgICAgICAgaW5kZW50ID0gJz4+PicKKyAgICAgICAg
ICAgICAgICBmb3IgbGluZSBpbiBleGFtcGxlLnNvdXJjZS5zcGxpdGxpbmVzKCk6CisgICAgICAg
ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnPz8/ICVzICVzJyAlIChpbmRlbnQsIGxpbmUpKQor
ICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAnLi4uJworICAgICAgICAgICAgaWYgZXhjaW5m
by5lcnJpc2luc3RhbmNlKGRvY3Rlc3QuRG9jVGVzdEZhaWx1cmUpOgorICAgICAgICAgICAgICAg
IGxpbmVzICs9IGNoZWNrZXIub3V0cHV0X2RpZmZlcmVuY2UoZXhhbXBsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Rlc3RmYWlsdXJlLmdv
dCwgcmVwb3J0X2Nob2ljZSkuc3BsaXQoIlxuIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgaW5uZXJfZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oZXhjaW5mby52YWx1ZS5leGNf
aW5mbykKKyAgICAgICAgICAgICAgICBsaW5lcyArPSBbIlVORVhQRUNURUQgRVhDRVBUSU9OOiAl
cyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGlubmVyX2V4Y2luZm8udmFsdWUp
XQorICAgICAgICAgICAgICAgIGxpbmVzICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCpl
eGNpbmZvLnZhbHVlLmV4Y19pbmZvKQorICAgICAgICAgICAgcmV0dXJuIFJlcHJGYWlsRG9jdGVz
dChyZXBybG9jYXRpb24sIGxpbmVzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IHN1cGVyKERvY3Rlc3RJdGVtLCBzZWxmKS5yZXByX2ZhaWx1cmUoZXhjaW5mbykKKworICAgIGRl
ZiByZXBvcnRpbmZvKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIHNlbGYuZHRl
c3QubGluZW5vLCAiW2RvY3Rlc3RdICVzIiAlIHNlbGYubmFtZQorCisKK2RlZiBfZ2V0X2ZsYWdf
bG9va3VwKCk6CisgICAgaW1wb3J0IGRvY3Rlc3QKKyAgICByZXR1cm4gZGljdChET05UX0FDQ0VQ
VF9UUlVFX0ZPUl8xPWRvY3Rlc3QuRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMSwKKyAgICAgICAgICAg
ICAgICBET05UX0FDQ0VQVF9CTEFOS0xJTkU9ZG9jdGVzdC5ET05UX0FDQ0VQVF9CTEFOS0xJTkUs
CisgICAgICAgICAgICAgICAgTk9STUFMSVpFX1dISVRFU1BBQ0U9ZG9jdGVzdC5OT1JNQUxJWkVf
V0hJVEVTUEFDRSwKKyAgICAgICAgICAgICAgICBFTExJUFNJUz1kb2N0ZXN0LkVMTElQU0lTLAor
ICAgICAgICAgICAgICAgIElHTk9SRV9FWENFUFRJT05fREVUQUlMPWRvY3Rlc3QuSUdOT1JFX0VY
Q0VQVElPTl9ERVRBSUwsCisgICAgICAgICAgICAgICAgQ09NUEFSSVNPTl9GTEFHUz1kb2N0ZXN0
LkNPTVBBUklTT05fRkxBR1MsCisgICAgICAgICAgICAgICAgQUxMT1dfVU5JQ09ERT1fZ2V0X2Fs
bG93X3VuaWNvZGVfZmxhZygpLAorICAgICAgICAgICAgICAgIEFMTE9XX0JZVEVTPV9nZXRfYWxs
b3dfYnl0ZXNfZmxhZygpLAorICAgICAgICAgICAgICAgICkKKworCitkZWYgZ2V0X29wdGlvbmZs
YWdzKHBhcmVudCk6CisgICAgb3B0aW9uZmxhZ3Nfc3RyID0gcGFyZW50LmNvbmZpZy5nZXRpbmko
ImRvY3Rlc3Rfb3B0aW9uZmxhZ3MiKQorICAgIGZsYWdfbG9va3VwX3RhYmxlID0gX2dldF9mbGFn
X2xvb2t1cCgpCisgICAgZmxhZ19hY2MgPSAwCisgICAgZm9yIGZsYWcgaW4gb3B0aW9uZmxhZ3Nf
c3RyOgorICAgICAgICBmbGFnX2FjYyB8PSBmbGFnX2xvb2t1cF90YWJsZVtmbGFnXQorICAgIHJl
dHVybiBmbGFnX2FjYworCisKK2NsYXNzIERvY3Rlc3RUZXh0ZmlsZShweXRlc3QuTW9kdWxlKToK
KyAgICBvYmogPSBOb25lCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgaW1wb3J0
IGRvY3Rlc3QKKworICAgICAgICAjIGluc3BpcmVkIGJ5IGRvY3Rlc3QudGVzdGZpbGU7IGlkZWFs
bHkgd2Ugd291bGQgdXNlIGl0IGRpcmVjdGx5LAorICAgICAgICAjIGJ1dCBpdCBkb2Vzbid0IHN1
cHBvcnQgcGFzc2luZyBhIGN1c3RvbSBjaGVja2VyCisgICAgICAgIGVuY29kaW5nID0gc2VsZi5j
b25maWcuZ2V0aW5pKCJkb2N0ZXN0X2VuY29kaW5nIikKKyAgICAgICAgdGV4dCA9IHNlbGYuZnNw
YXRoLnJlYWRfdGV4dChlbmNvZGluZykKKyAgICAgICAgZmlsZW5hbWUgPSBzdHIoc2VsZi5mc3Bh
dGgpCisgICAgICAgIG5hbWUgPSBzZWxmLmZzcGF0aC5iYXNlbmFtZQorICAgICAgICBnbG9icyA9
IHsnX19uYW1lX18nOiAnX19tYWluX18nfQorCisgICAgICAgIG9wdGlvbmZsYWdzID0gZ2V0X29w
dGlvbmZsYWdzKHNlbGYpCisgICAgICAgIHJ1bm5lciA9IGRvY3Rlc3QuRGVidWdSdW5uZXIodmVy
Ym9zZT0wLCBvcHRpb25mbGFncz1vcHRpb25mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja2VyPV9nZXRfY2hlY2tlcigpKQorICAgICAgICBfZml4X3Nwb29m
X3B5dGhvbjIocnVubmVyLCBlbmNvZGluZykKKworICAgICAgICBwYXJzZXIgPSBkb2N0ZXN0LkRv
Y1Rlc3RQYXJzZXIoKQorICAgICAgICB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KHRleHQsIGds
b2JzLCBuYW1lLCBmaWxlbmFtZSwgMCkKKyAgICAgICAgaWYgdGVzdC5leGFtcGxlczoKKyAgICAg
ICAgICAgIHlpZWxkIERvY3Rlc3RJdGVtKHRlc3QubmFtZSwgc2VsZiwgcnVubmVyLCB0ZXN0KQor
CisKK2RlZiBfY2hlY2tfYWxsX3NraXBwZWQodGVzdCk6CisgICAgIiIicmFpc2VzIHB5dGVzdC5z
a2lwKCkgaWYgYWxsIGV4YW1wbGVzIGluIHRoZSBnaXZlbiBEb2NUZXN0IGhhdmUgdGhlIFNLSVAK
KyAgICBvcHRpb24gc2V0LgorICAgICIiIgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgYWxsX3Nr
aXBwZWQgPSBhbGwoeC5vcHRpb25zLmdldChkb2N0ZXN0LlNLSVAsIEZhbHNlKSBmb3IgeCBpbiB0
ZXN0LmV4YW1wbGVzKQorICAgIGlmIGFsbF9za2lwcGVkOgorICAgICAgICBweXRlc3Quc2tpcCgn
YWxsIHRlc3RzIHNraXBwZWQgYnkgK1NLSVAgb3B0aW9uJykKKworCitjbGFzcyBEb2N0ZXN0TW9k
dWxlKHB5dGVzdC5Nb2R1bGUpOgorICAgIGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICBpbXBv
cnQgZG9jdGVzdAorICAgICAgICBpZiBzZWxmLmZzcGF0aC5iYXNlbmFtZSA9PSAiY29uZnRlc3Qu
cHkiOgorICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5faW1w
b3J0Y29uZnRlc3Qoc2VsZi5mc3BhdGgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5mc3BhdGgucHlpbXBvcnQoKQorICAgICAg
ICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuY29uZmln
LmdldHZhbHVlKCdkb2N0ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3JzJyk6CisgICAgICAgICAgICAg
ICAgICAgIHB5dGVzdC5za2lwKCd1bmFibGUgdG8gaW1wb3J0IG1vZHVsZSAlcicgJSBzZWxmLmZz
cGF0aCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAjIHVzZXMgaW50ZXJuYWwgZG9jdGVzdCBtb2R1bGUgcGFyc2luZyBtZWNoYW5pc20K
KyAgICAgICAgZmluZGVyID0gZG9jdGVzdC5Eb2NUZXN0RmluZGVyKCkKKyAgICAgICAgb3B0aW9u
ZmxhZ3MgPSBnZXRfb3B0aW9uZmxhZ3Moc2VsZikKKyAgICAgICAgcnVubmVyID0gZG9jdGVzdC5E
ZWJ1Z1J1bm5lcih2ZXJib3NlPTAsIG9wdGlvbmZsYWdzPW9wdGlvbmZsYWdzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZXI9X2dldF9jaGVja2VyKCkpCisKKyAg
ICAgICAgZm9yIHRlc3QgaW4gZmluZGVyLmZpbmQobW9kdWxlLCBtb2R1bGUuX19uYW1lX18pOgor
ICAgICAgICAgICAgaWYgdGVzdC5leGFtcGxlczogICMgc2tpcCBlbXB0eSBkb2N0ZXN0cworICAg
ICAgICAgICAgICAgIHlpZWxkIERvY3Rlc3RJdGVtKHRlc3QubmFtZSwgc2VsZiwgcnVubmVyLCB0
ZXN0KQorCisKK2RlZiBfc2V0dXBfZml4dHVyZXMoZG9jdGVzdF9pdGVtKToKKyAgICAiIiIKKyAg
ICBVc2VkIGJ5IERvY3Rlc3RUZXh0ZmlsZSBhbmQgRG9jdGVzdEl0ZW0gdG8gc2V0dXAgZml4dHVy
ZSBpbmZvcm1hdGlvbi4KKyAgICAiIiIKKyAgICBkZWYgZnVuYygpOgorICAgICAgICBwYXNzCisK
KyAgICBkb2N0ZXN0X2l0ZW0uZnVuY2FyZ3MgPSB7fQorICAgIGZtID0gZG9jdGVzdF9pdGVtLnNl
c3Npb24uX2ZpeHR1cmVtYW5hZ2VyCisgICAgZG9jdGVzdF9pdGVtLl9maXh0dXJlaW5mbyA9IGZt
LmdldGZpeHR1cmVpbmZvKG5vZGU9ZG9jdGVzdF9pdGVtLCBmdW5jPWZ1bmMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscz1Ob25lLCBmdW5jYXJn
cz1GYWxzZSkKKyAgICBmaXh0dXJlX3JlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChkb2N0ZXN0X2l0
ZW0pCisgICAgZml4dHVyZV9yZXF1ZXN0Ll9maWxsZml4dHVyZXMoKQorICAgIHJldHVybiBmaXh0
dXJlX3JlcXVlc3QKKworCitkZWYgX2dldF9jaGVja2VyKCk6CisgICAgIiIiCisgICAgUmV0dXJu
cyBhIGRvY3Rlc3QuT3V0cHV0Q2hlY2tlciBzdWJjbGFzcyB0aGF0IHRha2VzIGluIGFjY291bnQg
dGhlCisgICAgQUxMT1dfVU5JQ09ERSBvcHRpb24gdG8gaWdub3JlIHUnJyBwcmVmaXhlcyBpbiBz
dHJpbmdzIGFuZCBBTExPV19CWVRFUworICAgIHRvIHN0cmlwIGInJyBwcmVmaXhlcy4KKyAgICBV
c2VmdWwgd2hlbiB0aGUgc2FtZSBkb2N0ZXN0IHNob3VsZCBydW4gaW4gUHl0aG9uIDIgYW5kIFB5
dGhvbiAzLgorCisgICAgQW4gaW5uZXIgY2xhc3MgaXMgdXNlZCB0byBhdm9pZCBpbXBvcnRpbmcg
ImRvY3Rlc3QiIGF0IHRoZSBtb2R1bGUKKyAgICBsZXZlbC4KKyAgICAiIiIKKyAgICBpZiBoYXNh
dHRyKF9nZXRfY2hlY2tlciwgJ0xpdGVyYWxzT3V0cHV0Q2hlY2tlcicpOgorICAgICAgICByZXR1
cm4gX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0Q2hlY2tlcigpCisKKyAgICBpbXBvcnQgZG9j
dGVzdAorICAgIGltcG9ydCByZQorCisgICAgY2xhc3MgTGl0ZXJhbHNPdXRwdXRDaGVja2VyKGRv
Y3Rlc3QuT3V0cHV0Q2hlY2tlcik6CisgICAgICAgICIiIgorICAgICAgICBDb3BpZWQgZnJvbSBk
b2N0ZXN0X25vc2VfcGx1Z2luLnB5IGZyb20gdGhlIG5sdGsgcHJvamVjdDoKKyAgICAgICAgICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS9ubHRrL25sdGsKKworICAgICAgICBGdXJ0aGVyIGV4dGVuZGVk
IHRvIGFsc28gc3VwcG9ydCBieXRlIGxpdGVyYWxzLgorICAgICAgICAiIiIKKworICAgICAgICBf
dW5pY29kZV9saXRlcmFsX3JlID0gcmUuY29tcGlsZShyIihcV3xeKVt1VV0oW3JSXT9bXCdcIl0p
IiwgcmUuVU5JQ09ERSkKKyAgICAgICAgX2J5dGVzX2xpdGVyYWxfcmUgPSByZS5jb21waWxlKHIi
KFxXfF4pW2JCXShbclJdP1tcJ1wiXSkiLCByZS5VTklDT0RFKQorCisgICAgICAgIGRlZiBjaGVj
a19vdXRwdXQoc2VsZiwgd2FudCwgZ290LCBvcHRpb25mbGFncyk6CisgICAgICAgICAgICByZXMg
PSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIuY2hlY2tfb3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
ZmxhZ3MpCisgICAgICAgICAgICBpZiByZXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK
KworICAgICAgICAgICAgYWxsb3dfdW5pY29kZSA9IG9wdGlvbmZsYWdzICYgX2dldF9hbGxvd191
bmljb2RlX2ZsYWcoKQorICAgICAgICAgICAgYWxsb3dfYnl0ZXMgPSBvcHRpb25mbGFncyAmIF9n
ZXRfYWxsb3dfYnl0ZXNfZmxhZygpCisgICAgICAgICAgICBpZiBub3QgYWxsb3dfdW5pY29kZSBh
bmQgbm90IGFsbG93X2J5dGVzOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICAgICBlbHNlOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICAgICAgZGVmIHJl
bW92ZV9wcmVmaXhlcyhyZWdleCwgdHh0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
LnN1YihyZWdleCwgcidcMVwyJywgdHh0KQorCisgICAgICAgICAgICAgICAgaWYgYWxsb3dfdW5p
Y29kZToKKyAgICAgICAgICAgICAgICAgICAgd2FudCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl91
bmljb2RlX2xpdGVyYWxfcmUsIHdhbnQpCisgICAgICAgICAgICAgICAgICAgIGdvdCA9IHJlbW92
ZV9wcmVmaXhlcyhzZWxmLl91bmljb2RlX2xpdGVyYWxfcmUsIGdvdCkKKyAgICAgICAgICAgICAg
ICBpZiBhbGxvd19ieXRlczoKKyAgICAgICAgICAgICAgICAgICAgd2FudCA9IHJlbW92ZV9wcmVm
aXhlcyhzZWxmLl9ieXRlc19saXRlcmFsX3JlLCB3YW50KQorICAgICAgICAgICAgICAgICAgICBn
b3QgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9yZSwgZ290KQorICAgICAg
ICAgICAgICAgIHJlcyA9IGRvY3Rlc3QuT3V0cHV0Q2hlY2tlci5jaGVja19vdXRwdXQoc2VsZiwg
d2FudCwgZ290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uZmxhZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworCisg
ICAgX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0Q2hlY2tlciA9IExpdGVyYWxzT3V0cHV0Q2hl
Y2tlcgorICAgIHJldHVybiBfZ2V0X2NoZWNrZXIuTGl0ZXJhbHNPdXRwdXRDaGVja2VyKCkKKwor
CitkZWYgX2dldF9hbGxvd191bmljb2RlX2ZsYWcoKToKKyAgICAiIiIKKyAgICBSZWdpc3RlcnMg
YW5kIHJldHVybnMgdGhlIEFMTE9XX1VOSUNPREUgZmxhZy4KKyAgICAiIiIKKyAgICBpbXBvcnQg
ZG9jdGVzdAorICAgIHJldHVybiBkb2N0ZXN0LnJlZ2lzdGVyX29wdGlvbmZsYWcoJ0FMTE9XX1VO
SUNPREUnKQorCisKK2RlZiBfZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKToKKyAgICAiIiIKKyAgICBS
ZWdpc3RlcnMgYW5kIHJldHVybnMgdGhlIEFMTE9XX0JZVEVTIGZsYWcuCisgICAgIiIiCisgICAg
aW1wb3J0IGRvY3Rlc3QKKyAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rlcl9vcHRpb25mbGFnKCdB
TExPV19CWVRFUycpCisKKworZGVmIF9nZXRfcmVwb3J0X2Nob2ljZShrZXkpOgorICAgICIiIgor
ICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWN0dWFsIGBkb2N0ZXN0YCBtb2R1bGUgZmxh
ZyB2YWx1ZSwgd2Ugd2FudCB0byBkbyBpdCBhcyBsYXRlIGFzIHBvc3NpYmxlIHRvIGF2b2lkCisg
ICAgaW1wb3J0aW5nIGBkb2N0ZXN0YCBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgd2hlbiBwYXJz
aW5nIG9wdGlvbnMsIGFzIGl0IGFkZHMgb3ZlcmhlYWQgYW5kIGJyZWFrcyB0ZXN0cy4KKyAgICAi
IiIKKyAgICBpbXBvcnQgZG9jdGVzdAorCisgICAgcmV0dXJuIHsKKyAgICAgICAgRE9DVEVTVF9S
RVBPUlRfQ0hPSUNFX1VESUZGOiBkb2N0ZXN0LlJFUE9SVF9VRElGRiwKKyAgICAgICAgRE9DVEVT
VF9SRVBPUlRfQ0hPSUNFX0NESUZGOiBkb2N0ZXN0LlJFUE9SVF9DRElGRiwKKyAgICAgICAgRE9D
VEVTVF9SRVBPUlRfQ0hPSUNFX05ESUZGOiBkb2N0ZXN0LlJFUE9SVF9ORElGRiwKKyAgICAgICAg
RE9DVEVTVF9SRVBPUlRfQ0hPSUNFX09OTFlfRklSU1RfRkFJTFVSRTogZG9jdGVzdC5SRVBPUlRf
T05MWV9GSVJTVF9GQUlMVVJFLAorICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9ORTog
MCwKKyAgICB9W2tleV0KKworCitkZWYgX2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwgZW5jb2Rp
bmcpOgorICAgICIiIgorICAgIEluc3RhbGxzIGEgIlNwb29mT3V0IiBpbnRvIHRoZSBnaXZlbiBE
ZWJ1Z1J1bm5lciBzbyBpdCBwcm9wZXJseSBkZWFscyB3aXRoIHVuaWNvZGUgb3V0cHV0LiBUaGlz
CisgICAgc2hvdWxkIHBhdGNoIG9ubHkgZG9jdGVzdHMgZm9yIHRleHQgZmlsZXMgYmVjYXVzZSB0
aGV5IGRvbid0IGhhdmUgYSB3YXkgdG8gZGVjbGFyZSB0aGVpcgorICAgIGVuY29kaW5nLiBEb2N0
ZXN0cyBpbiBkb2NzdHJpbmdzIGZyb20gUHl0aG9uIG1vZHVsZXMgZG9uJ3QgaGF2ZSB0aGUgc2Ft
ZSBwcm9ibGVtIGdpdmVuIHRoYXQKKyAgICBQeXRob24gYWxyZWFkeSBkZWNvZGVkIHRoZSBzdHJp
bmdzLgorCisgICAgVGhpcyBmaXhlcyB0aGUgcHJvYmxlbSByZWxhdGVkIGluIGlzc3VlICMyNDM0
LgorICAgICIiIgorICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTIKKyAgICBpZiBu
b3QgX1BZMjoKKyAgICAgICAgcmV0dXJuCisKKyAgICBmcm9tIGRvY3Rlc3QgaW1wb3J0IF9TcG9v
Zk91dAorCisgICAgY2xhc3MgVW5pY29kZVNwb29mKF9TcG9vZk91dCk6CisKKyAgICAgICAgZGVm
IGdldHZhbHVlKHNlbGYpOgorICAgICAgICAgICAgcmVzdWx0ID0gX1Nwb29mT3V0LmdldHZhbHVl
KHNlbGYpCisgICAgICAgICAgICBpZiBlbmNvZGluZzoKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSByZXN1bHQuZGVjb2RlKGVuY29kaW5nKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisg
ICAgcnVubmVyLl9mYWtlb3V0ID0gVW5pY29kZVNwb29mKCkKKworCitAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9J3Nlc3Npb24nKQorZGVmIGRvY3Rlc3RfbmFtZXNwYWNlKCk6CisgICAgIiIiCisgICAg
SW5qZWN0IG5hbWVzIGludG8gdGhlIGRvY3Rlc3QgbmFtZXNwYWNlLgorICAgICIiIgorICAgIHJl
dHVybiBkaWN0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwOWZmYWRkYmE3
M2ZmODRiMjM5ZDRmNGFhMjllOTZkMDU2YzVkOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5CkBAIC0wLDAgKzEsMTE0NyBAQAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5p
bmdzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAorCitpbXBvcnQgYXR0cgor
aW1wb3J0IHB5Citmcm9tIHB5Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRlZEV4Y2luZm8KKwor
aW1wb3J0IF9weXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKK2Zyb20gX3B5dGVzdC5f
Y29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0
ICgKKyAgICBOT1RTRVQsIGV4Y19jbGVhciwgX2Zvcm1hdF9hcmdzLAorICAgIGdldGZzbGluZW5v
LCBnZXRfcmVhbF9mdW5jLAorICAgIGlzX2dlbmVyYXRvciwgaXNjbGFzcywgZ2V0aW1mdW5jLAor
ICAgIGdldGxvY2F0aW9uLCBnZXRmdW5jYXJnbmFtZXMsCisgICAgc2FmZV9nZXRhdHRyLAorICAg
IEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIsCispCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0
IGZhaWwsIFRFU1RfT1VUQ09NRQorCisKK2RlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24p
OgorICAgIGltcG9ydCBfcHl0ZXN0LnB5dGhvbgorCisgICAgc2NvcGVuYW1lMmNsYXNzLnVwZGF0
ZSh7CisgICAgICAgICdjbGFzcyc6IF9weXRlc3QucHl0aG9uLkNsYXNzLAorICAgICAgICAnbW9k
dWxlJzogX3B5dGVzdC5weXRob24uTW9kdWxlLAorICAgICAgICAnZnVuY3Rpb24nOiBfcHl0ZXN0
Lm1haW4uSXRlbSwKKyAgICAgICAgJ3Nlc3Npb24nOiBfcHl0ZXN0Lm1haW4uU2Vzc2lvbiwKKyAg
ICB9KQorICAgIHNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyID0gRml4dHVyZU1hbmFnZXIoc2Vzc2lv
bikKKworCitzY29wZW5hbWUyY2xhc3MgPSB7fQorCisKK3Njb3BlMnByb3BzID0gZGljdChzZXNz
aW9uPSgpKQorc2NvcGUycHJvcHNbIm1vZHVsZSJdID0gKCJmc3BhdGgiLCAibW9kdWxlIikKK3Nj
b3BlMnByb3BzWyJjbGFzcyJdID0gc2NvcGUycHJvcHNbIm1vZHVsZSJdICsgKCJjbHMiLCkKK3Nj
b3BlMnByb3BzWyJpbnN0YW5jZSJdID0gc2NvcGUycHJvcHNbImNsYXNzIl0gKyAoImluc3RhbmNl
IiwgKQorc2NvcGUycHJvcHNbImZ1bmN0aW9uIl0gPSBzY29wZTJwcm9wc1siaW5zdGFuY2UiXSAr
ICgiZnVuY3Rpb24iLCAia2V5d29yZHMiKQorCisKK2RlZiBzY29wZXByb3BlcnR5KG5hbWU9Tm9u
ZSwgZG9jPU5vbmUpOgorICAgIGRlZiBkZWNvcmF0ZXNjb3BlKGZ1bmMpOgorICAgICAgICBzY29w
ZW5hbWUgPSBuYW1lIG9yIGZ1bmMuX19uYW1lX18KKworICAgICAgICBkZWYgcHJvdmlkZShzZWxm
KToKKyAgICAgICAgICAgIGlmIGZ1bmMuX19uYW1lX18gaW4gc2NvcGUycHJvcHNbc2VsZi5zY29w
ZV06CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMoc2VsZikKKyAgICAgICAgICAgIHJhaXNl
IEF0dHJpYnV0ZUVycm9yKCIlcyBub3QgYXZhaWxhYmxlIGluICVzLXNjb3BlZCBjb250ZXh0IiAl
ICgKKyAgICAgICAgICAgICAgICBzY29wZW5hbWUsIHNlbGYuc2NvcGUpKQorCisgICAgICAgIHJl
dHVybiBwcm9wZXJ0eShwcm92aWRlLCBOb25lLCBOb25lLCBmdW5jLl9fZG9jX18pCisgICAgcmV0
dXJuIGRlY29yYXRlc2NvcGUKKworCitkZWYgZ2V0X3Njb3BlX25vZGUobm9kZSwgc2NvcGUpOgor
ICAgIGNscyA9IHNjb3BlbmFtZTJjbGFzcy5nZXQoc2NvcGUpCisgICAgaWYgY2xzIGlzIE5vbmU6
CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gc2NvcGUiKQorICAgIHJldHVybiBu
b2RlLmdldHBhcmVudChjbHMpCisKKworZGVmIGFkZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2Rl
Zihjb2xsZWN0b3IsIG1ldGFmdW5jLCBmaXh0dXJlbWFuYWdlcik6CisgICAgIyB0aGlzIGZ1bmN0
aW9uIHdpbGwgdHJhbnNmb3JtIGFsbCBjb2xsZWN0ZWQgY2FsbHMgdG8gYSBmdW5jdGlvbnMKKyAg
ICAjIGlmIHRoZXkgdXNlIGRpcmVjdCBmdW5jYXJncyAoaS5lLiBkaXJlY3QgcGFyYW1ldHJpemF0
aW9uKQorICAgICMgYmVjYXVzZSB3ZSB3YW50IGxhdGVyIHRlc3QgZXhlY3V0aW9uIHRvIGJlIGFi
bGUgdG8gcmVseSBvbgorICAgICMgYW4gZXhpc3RpbmcgRml4dHVyZURlZiBzdHJ1Y3R1cmUgZm9y
IGFsbCBhcmd1bWVudHMuCisgICAgIyBYWFggd2UgY2FuIHByb2JhYmx5IGF2b2lkIHRoaXMgYWxn
b3JpdGhtICBpZiB3ZSBtb2RpZnkgQ2FsbFNwZWMyCisgICAgIyB0byBkaXJlY3RseSBjYXJlIGZv
ciBjcmVhdGluZyB0aGUgZml4dHVyZWRlZnMgd2l0aGluIGl0cyBtZXRob2RzLgorICAgIGlmIG5v
dCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3M6CisgICAgICAgIHJldHVybiAgIyB0aGlzIGZ1
bmN0aW9uIGNhbGwgZG9lcyBub3QgaGF2ZSBkaXJlY3QgcGFyYW1ldHJpemF0aW9uCisgICAgIyBj
b2xsZWN0IGZ1bmNhcmdzIG9mIGFsbCBjYWxsc3BlY3MgaW50byBhIGxpc3Qgb2YgdmFsdWVzCisg
ICAgYXJnMnBhcmFtcyA9IHt9CisgICAgYXJnMnNjb3BlID0ge30KKyAgICBmb3IgY2FsbHNwZWMg
aW4gbWV0YWZ1bmMuX2NhbGxzOgorICAgICAgICBmb3IgYXJnbmFtZSwgYXJndmFsdWUgaW4gY2Fs
bHNwZWMuZnVuY2FyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIGFzc2VydCBhcmduYW1lIG5vdCBp
biBjYWxsc3BlYy5wYXJhbXMKKyAgICAgICAgICAgIGNhbGxzcGVjLnBhcmFtc1thcmduYW1lXSA9
IGFyZ3ZhbHVlCisgICAgICAgICAgICBhcmcycGFyYW1zX2xpc3QgPSBhcmcycGFyYW1zLnNldGRl
ZmF1bHQoYXJnbmFtZSwgW10pCisgICAgICAgICAgICBjYWxsc3BlYy5pbmRpY2VzW2FyZ25hbWVd
ID0gbGVuKGFyZzJwYXJhbXNfbGlzdCkKKyAgICAgICAgICAgIGFyZzJwYXJhbXNfbGlzdC5hcHBl
bmQoYXJndmFsdWUpCisgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBhcmcyc2NvcGU6Cisg
ICAgICAgICAgICAgICAgc2NvcGVudW0gPSBjYWxsc3BlYy5fYXJnMnNjb3BlbnVtLmdldChhcmdu
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2NvcGVudW1fZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgYXJnMnNjb3BlW2FyZ25hbWVd
ID0gc2NvcGVzW3Njb3BlbnVtXQorICAgICAgICBjYWxsc3BlYy5mdW5jYXJncy5jbGVhcigpCisK
KyAgICAjIHJlZ2lzdGVyIGFydGlmaWNpYWwgRml4dHVyZURlZidzIHNvIHRoYXQgbGF0ZXIgYXQg
dGVzdCBleGVjdXRpb24KKyAgICAjIHRpbWUgd2UgY2FuIHJlbHkgb24gYSBwcm9wZXIgRml4dHVy
ZURlZiB0byBleGlzdCBmb3IgZml4dHVyZSBzZXR1cC4KKyAgICBhcmcyZml4dHVyZWRlZnMgPSBt
ZXRhZnVuYy5fYXJnMmZpeHR1cmVkZWZzCisgICAgZm9yIGFyZ25hbWUsIHZhbHVlbGlzdCBpbiBh
cmcycGFyYW1zLml0ZW1zKCk6CisgICAgICAgICMgaWYgd2UgaGF2ZSBhIHNjb3BlIHRoYXQgaXMg
aGlnaGVyIHRoYW4gZnVuY3Rpb24gd2UgbmVlZAorICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3ZSBv
bmx5IGV2ZXIgY3JlYXRlIGFuIGFjY29yZGluZyBmaXh0dXJlZGVmIG9uCisgICAgICAgICMgYSBw
ZXItc2NvcGUgYmFzaXMuIFdlIHRodXMgc3RvcmUgYW5kIGNhY2hlIHRoZSBmaXh0dXJlZGVmIG9u
IHRoZQorICAgICAgICAjIG5vZGUgcmVsYXRlZCB0byB0aGUgc2NvcGUuCisgICAgICAgIHNjb3Bl
ID0gYXJnMnNjb3BlW2FyZ25hbWVdCisgICAgICAgIG5vZGUgPSBOb25lCisgICAgICAgIGlmIHNj
b3BlICE9ICJmdW5jdGlvbiI6CisgICAgICAgICAgICBub2RlID0gZ2V0X3Njb3BlX25vZGUoY29s
bGVjdG9yLCBzY29wZSkKKyAgICAgICAgICAgIGlmIG5vZGUgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgc2NvcGUgPT0gImNsYXNzIiBhbmQgaXNpbnN0YW5jZShjb2xsZWN0b3IsIF9w
eXRlc3QucHl0aG9uLk1vZHVsZSkKKyAgICAgICAgICAgICAgICAjIHVzZSBtb2R1bGUtbGV2ZWwg
Y29sbGVjdG9yIGZvciBjbGFzcy1zY29wZSAoZm9yIG5vdykKKyAgICAgICAgICAgICAgICBub2Rl
ID0gY29sbGVjdG9yCisgICAgICAgIGlmIG5vZGUgYW5kIGFyZ25hbWUgaW4gbm9kZS5fbmFtZTJw
c2V1ZG9maXh0dXJlZGVmOgorICAgICAgICAgICAgYXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0g
W25vZGUuX25hbWUycHNldWRvZml4dHVyZWRlZlthcmduYW1lXV0KKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGZpeHR1cmVkZWYgPSBGaXh0dXJlRGVmKGZpeHR1cmVtYW5hZ2VyLCAnJywgYXJn
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9kaXJlY3RfcGFy
YW1fZml4dHVyZV9mdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn
MnNjb3BlW2FyZ25hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWVsaXN0LCBGYWxzZSwgRmFsc2UpCisgICAgICAgICAgICBhcmcyZml4dHVyZWRlZnNbYXJnbmFt
ZV0gPSBbZml4dHVyZWRlZl0KKyAgICAgICAgICAgIGlmIG5vZGUgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgbm9kZS5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmW2FyZ25hbWVdID0gZml4dHVy
ZWRlZgorCisKK2RlZiBnZXRmaXh0dXJlbWFya2VyKG9iaik6CisgICAgIiIiIHJldHVybiBmaXh0
dXJlbWFya2VyIG9yIE5vbmUgaWYgaXQgZG9lc24ndCBleGlzdCBvciByYWlzZWQKKyAgICBleGNl
cHRpb25zLiIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIob2JqLCAiX3B5dGVz
dGZpeHR1cmVmdW5jdGlvbiIsIE5vbmUpCisgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKKyAgICAg
ICAgIyBzb21lIG9iamVjdHMgcmFpc2UgZXJyb3JzIGxpa2UgcmVxdWVzdCAoZnJvbSBmbGFzayBp
bXBvcnQgcmVxdWVzdCkKKyAgICAgICAgIyB3ZSBkb24ndCBleHBlY3QgdGhlbSB0byBiZSBmaXh0
dXJlIGZ1bmN0aW9ucworICAgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiBnZXRfcGFyYW1ldHJp
emVkX2ZpeHR1cmVfa2V5cyhpdGVtLCBzY29wZW51bSk6CisgICAgIiIiIHJldHVybiBsaXN0IG9m
IGtleXMgZm9yIGFsbCBwYXJhbWV0cml6ZWQgYXJndW1lbnRzIHdoaWNoIG1hdGNoCisgICAgdGhl
IHNwZWNpZmllZCBzY29wZS4gIiIiCisgICAgYXNzZXJ0IHNjb3BlbnVtIDwgc2NvcGVudW1fZnVu
Y3Rpb24gICMgZnVuY3Rpb24KKyAgICB0cnk6CisgICAgICAgIGNzID0gaXRlbS5jYWxsc3BlYwor
ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAg
ICAgICMgY3MuaW5kaWNlcy5pdGVtcygpIGlzIHJhbmRvbSBvcmRlciBvZiBhcmduYW1lcy4gIE5l
ZWQgdG8KKyAgICAgICAgIyBzb3J0IHRoaXMgc28gdGhhdCBkaWZmZXJlbnQgY2FsbHMgdG8KKyAg
ICAgICAgIyBnZXRfcGFyYW1ldHJpemVkX2ZpeHR1cmVfa2V5cyB3aWxsIGJlIGRldGVybWluaXN0
aWMuCisgICAgICAgIGZvciBhcmduYW1lLCBwYXJhbV9pbmRleCBpbiBzb3J0ZWQoY3MuaW5kaWNl
cy5pdGVtcygpKToKKyAgICAgICAgICAgIGlmIGNzLl9hcmcyc2NvcGVudW1bYXJnbmFtZV0gIT0g
c2NvcGVudW06CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHNjb3Bl
bnVtID09IDA6ICAgICMgc2Vzc2lvbgorICAgICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBw
YXJhbV9pbmRleCkKKyAgICAgICAgICAgIGVsaWYgc2NvcGVudW0gPT0gMTogICMgbW9kdWxlCisg
ICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aCkK
KyAgICAgICAgICAgIGVsaWYgc2NvcGVudW0gPT0gMjogICMgY2xhc3MKKyAgICAgICAgICAgICAg
ICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgsIGl0ZW0uZnNwYXRoLCBpdGVtLmNscykKKyAg
ICAgICAgICAgIHlpZWxkIGtleQorCisKKyMgYWxnb3JpdGhtIGZvciBzb3J0aW5nIG9uIGEgcGVy
LXBhcmFtZXRyaXplZCByZXNvdXJjZSBzZXR1cCBiYXNpcworIyBpdCBpcyBjYWxsZWQgZm9yIHNj
b3BlbnVtPT0wIChzZXNzaW9uKSBmaXJzdCBhbmQgcGVyZm9ybXMgc29ydGluZworIyBkb3duIHRv
IHRoZSBsb3dlciBzY29wZXMgc3VjaCBhcyB0byBtaW5pbWl6ZSBudW1iZXIgb2YgImhpZ2ggc2Nv
cGUiCisjIHNldHVwcyBhbmQgdGVhcmRvd25zCisKK2RlZiByZW9yZGVyX2l0ZW1zKGl0ZW1zKToK
KyAgICBhcmdrZXlzX2NhY2hlID0ge30KKyAgICBmb3Igc2NvcGVudW0gaW4gcmFuZ2UoMCwgc2Nv
cGVudW1fZnVuY3Rpb24pOgorICAgICAgICBhcmdrZXlzX2NhY2hlW3Njb3BlbnVtXSA9IGQgPSB7
fQorICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgIGtleXMgPSBPcmRlcmVk
RGljdC5mcm9ta2V5cyhnZXRfcGFyYW1ldHJpemVkX2ZpeHR1cmVfa2V5cyhpdGVtLCBzY29wZW51
bSkpCisgICAgICAgICAgICBpZiBrZXlzOgorICAgICAgICAgICAgICAgIGRbaXRlbV0gPSBrZXlz
CisgICAgcmV0dXJuIHJlb3JkZXJfaXRlbXNfYXRzY29wZShpdGVtcywgc2V0KCksIGFyZ2tleXNf
Y2FjaGUsIDApCisKKworZGVmIHJlb3JkZXJfaXRlbXNfYXRzY29wZShpdGVtcywgaWdub3JlLCBh
cmdrZXlzX2NhY2hlLCBzY29wZW51bSk6CisgICAgaWYgc2NvcGVudW0gPj0gc2NvcGVudW1fZnVu
Y3Rpb24gb3IgbGVuKGl0ZW1zKSA8IDM6CisgICAgICAgIHJldHVybiBpdGVtcworICAgIGl0ZW1z
X2RvbmUgPSBbXQorICAgIHdoaWxlIDE6CisgICAgICAgIGl0ZW1zX2JlZm9yZSwgaXRlbXNfc2Ft
ZSwgaXRlbXNfb3RoZXIsIG5ld2lnbm9yZSA9IFwKKyAgICAgICAgICAgIHNsaWNlX2l0ZW1zKGl0
ZW1zLCBpZ25vcmUsIGFyZ2tleXNfY2FjaGVbc2NvcGVudW1dKQorICAgICAgICBpdGVtc19iZWZv
cmUgPSByZW9yZGVyX2l0ZW1zX2F0c2NvcGUoCisgICAgICAgICAgICBpdGVtc19iZWZvcmUsIGln
bm9yZSwgYXJna2V5c19jYWNoZSwgc2NvcGVudW0gKyAxKQorICAgICAgICBpZiBpdGVtc19zYW1l
IGlzIE5vbmU6CisgICAgICAgICAgICAjIG5vdGhpbmcgdG8gcmVvcmRlciBpbiB0aGlzIHNjb3Bl
CisgICAgICAgICAgICBhc3NlcnQgaXRlbXNfb3RoZXIgaXMgTm9uZQorICAgICAgICAgICAgcmV0
dXJuIGl0ZW1zX2RvbmUgKyBpdGVtc19iZWZvcmUKKyAgICAgICAgaXRlbXNfZG9uZS5leHRlbmQo
aXRlbXNfYmVmb3JlKQorICAgICAgICBpdGVtcyA9IGl0ZW1zX3NhbWUgKyBpdGVtc19vdGhlcgor
ICAgICAgICBpZ25vcmUgPSBuZXdpZ25vcmUKKworCitkZWYgc2xpY2VfaXRlbXMoaXRlbXMsIGln
bm9yZSwgc2NvcGVkX2FyZ2tleXNfY2FjaGUpOgorICAgICMgd2UgcGljayB0aGUgZmlyc3QgaXRl
bSB3aGljaCB1c2VzIGEgZml4dHVyZSBpbnN0YW5jZSBpbiB0aGUKKyAgICAjIHJlcXVlc3RlZCBz
Y29wZSBhbmQgd2hpY2ggd2UgaGF2ZW4ndCBzZWVuIHlldC4gIFdlIHNsaWNlIHRoZSBpbnB1dAor
ICAgICMgaXRlbXMgbGlzdCBpbnRvIGEgbGlzdCBvZiBpdGVtc19ub21hdGNoLCBpdGVtc19zYW1l
IGFuZAorICAgICMgaXRlbXNfb3RoZXIKKyAgICBpZiBzY29wZWRfYXJna2V5c19jYWNoZTogICMg
ZG8gd2UgbmVlZCB0byBkbyB3b3JrIGF0IGFsbD8KKyAgICAgICAgaXQgPSBpdGVyKGl0ZW1zKQor
ICAgICAgICAjIGZpcnN0IGZpbmQgYSBzbGljaW5nIGtleQorICAgICAgICBmb3IgaSwgaXRlbSBp
biBlbnVtZXJhdGUoaXQpOgorICAgICAgICAgICAgYXJna2V5cyA9IHNjb3BlZF9hcmdrZXlzX2Nh
Y2hlLmdldChpdGVtKQorICAgICAgICAgICAgaWYgYXJna2V5cyBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICAgICBuZXdhcmdrZXlzID0gT3JkZXJlZERpY3QuZnJvbWtleXMoayBmb3IgayBpbiBh
cmdrZXlzIGlmIGsgbm90IGluIGlnbm9yZSkKKyAgICAgICAgICAgICAgICBpZiBuZXdhcmdrZXlz
OiAgIyBmb3VuZCBhIHNsaWNpbmcga2V5CisgICAgICAgICAgICAgICAgICAgIHNsaWNpbmdfYXJn
a2V5LCBfID0gbmV3YXJna2V5cy5wb3BpdGVtKCkKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNf
YmVmb3JlID0gaXRlbXNbOmldCisgICAgICAgICAgICAgICAgICAgIGl0ZW1zX3NhbWUgPSBbaXRl
bV0KKyAgICAgICAgICAgICAgICAgICAgaXRlbXNfb3RoZXIgPSBbXQorICAgICAgICAgICAgICAg
ICAgICAjIG5vdyBzbGljZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBsaXN0CisgICAgICAgICAgICAg
ICAgICAgIGZvciBpdGVtIGluIGl0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXJna2V5cyA9
IHNjb3BlZF9hcmdrZXlzX2NhY2hlLmdldChpdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgYXJna2V5cyBhbmQgc2xpY2luZ19hcmdrZXkgaW4gYXJna2V5cyBhbmQgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzbGljaW5nX2FyZ2tleSBub3QgaW4gaWdub3JlOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zX3NhbWUuYXBwZW5kKGl0ZW0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1z
X290aGVyLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAgICAgICBuZXdpZ25vcmUgPSBpZ25v
cmUuY29weSgpCisgICAgICAgICAgICAgICAgICAgIG5ld2lnbm9yZS5hZGQoc2xpY2luZ19hcmdr
ZXkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXRlbXNfYmVmb3JlLCBpdGVtc19zYW1l
LCBpdGVtc19vdGhlciwgbmV3aWdub3JlKQorICAgIHJldHVybiBpdGVtcywgTm9uZSwgTm9uZSwg
Tm9uZQorCisKK2RlZiBmaWxsZml4dHVyZXMoZnVuY3Rpb24pOgorICAgICIiIiBmaWxsIG1pc3Np
bmcgZnVuY2FyZ3MgZm9yIGEgdGVzdCBmdW5jdGlvbi4gIiIiCisgICAgdHJ5OgorICAgICAgICBy
ZXF1ZXN0ID0gZnVuY3Rpb24uX3JlcXVlc3QKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Cisg
ICAgICAgICMgWFhYIHRoaXMgc3BlY2lhbCBjb2RlIHBhdGggaXMgb25seSBleHBlY3RlZCB0byBl
eGVjdXRlCisgICAgICAgICMgd2l0aCB0aGUgb2Vqc2tpdCBwbHVnaW4uICBJdCB1c2VzIGNsYXNz
ZXMgd2l0aCBmdW5jYXJncworICAgICAgICAjIGFuZCB3ZSB0aHVzIGhhdmUgdG8gd29yayBhIGJp
dCB0byBhbGxvdyB0aGlzLgorICAgICAgICBmbSA9IGZ1bmN0aW9uLnNlc3Npb24uX2ZpeHR1cmVt
YW5hZ2VyCisgICAgICAgIGZpID0gZm0uZ2V0Zml4dHVyZWluZm8oZnVuY3Rpb24ucGFyZW50LCBm
dW5jdGlvbi5vYmosIE5vbmUpCisgICAgICAgIGZ1bmN0aW9uLl9maXh0dXJlaW5mbyA9IGZpCisg
ICAgICAgIHJlcXVlc3QgPSBmdW5jdGlvbi5fcmVxdWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGZ1bmN0
aW9uKQorICAgICAgICByZXF1ZXN0Ll9maWxsZml4dHVyZXMoKQorICAgICAgICAjIHBydW5lIG91
dCBmdW5jYXJncyBmb3IganN0ZXN0cworICAgICAgICBuZXdmdW5jYXJncyA9IHt9CisgICAgICAg
IGZvciBuYW1lIGluIGZpLmFyZ25hbWVzOgorICAgICAgICAgICAgbmV3ZnVuY2FyZ3NbbmFtZV0g
PSBmdW5jdGlvbi5mdW5jYXJnc1tuYW1lXQorICAgICAgICBmdW5jdGlvbi5mdW5jYXJncyA9IG5l
d2Z1bmNhcmdzCisgICAgZWxzZToKKyAgICAgICAgcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKKwor
CitkZWYgZ2V0X2RpcmVjdF9wYXJhbV9maXh0dXJlX2Z1bmMocmVxdWVzdCk6CisgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KKworCitjbGFzcyBGdW5jRml4dHVyZUluZm86CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGFyZ25hbWVzLCBuYW1lc19jbG9zdXJlLCBuYW1lMmZpeHR1cmVkZWZzKToKKyAg
ICAgICAgc2VsZi5hcmduYW1lcyA9IGFyZ25hbWVzCisgICAgICAgIHNlbGYubmFtZXNfY2xvc3Vy
ZSA9IG5hbWVzX2Nsb3N1cmUKKyAgICAgICAgc2VsZi5uYW1lMmZpeHR1cmVkZWZzID0gbmFtZTJm
aXh0dXJlZGVmcworCisKK2NsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0
dHIpOgorICAgICIiIiBBIHJlcXVlc3QgZm9yIGEgZml4dHVyZSBmcm9tIGEgdGVzdCBvciBmaXh0
dXJlIGZ1bmN0aW9uLgorCisgICAgQSByZXF1ZXN0IG9iamVjdCBnaXZlcyBhY2Nlc3MgdG8gdGhl
IHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0CisgICAgYW5kIGhhcyBhbiBvcHRpb25hbCBgYHBhcmFt
YGAgYXR0cmlidXRlIGluIGNhc2UKKyAgICB0aGUgZml4dHVyZSBpcyBwYXJhbWV0cml6ZWQgaW5k
aXJlY3RseS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBweWZ1bmNpdGVtKToK
KyAgICAgICAgc2VsZi5fcHlmdW5jaXRlbSA9IHB5ZnVuY2l0ZW0KKyAgICAgICAgIzogZml4dHVy
ZSBmb3Igd2hpY2ggdGhpcyByZXF1ZXN0IGlzIGJlaW5nIHBlcmZvcm1lZAorICAgICAgICBzZWxm
LmZpeHR1cmVuYW1lID0gTm9uZQorICAgICAgICAjOiBTY29wZSBzdHJpbmcsIG9uZSBvZiAiZnVu
Y3Rpb24iLCAiY2xhc3MiLCAibW9kdWxlIiwgInNlc3Npb24iCisgICAgICAgIHNlbGYuc2NvcGUg
PSAiZnVuY3Rpb24iCisgICAgICAgIHNlbGYuX2ZpeHR1cmVfdmFsdWVzID0ge30gICMgYXJnbmFt
ZSAtPiBmaXh0dXJlIHZhbHVlCisgICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVmcyA9IHt9ICAjIGFy
Z25hbWUgLT4gRml4dHVyZURlZgorICAgICAgICBmaXh0dXJlaW5mbyA9IHB5ZnVuY2l0ZW0uX2Zp
eHR1cmVpbmZvCisgICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmcyA9IGZpeHR1cmVpbmZvLm5h
bWUyZml4dHVyZWRlZnMuY29weSgpCisgICAgICAgIHNlbGYuX2FyZzJpbmRleCA9IHt9CisgICAg
ICAgIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyID0gcHlmdW5jaXRlbS5zZXNzaW9uLl9maXh0dXJlbWFu
YWdlcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZpeHR1cmVuYW1lcyhzZWxmKToKKyAgICAg
ICAgIyBiYWNrd2FyZCBpbmNvbXBhdGlibGUgbm90ZTogbm93IGEgcmVhZG9ubHkgcHJvcGVydHkK
KyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fcHlmdW5jaXRlbS5fZml4dHVyZWluZm8ubmFtZXNf
Y2xvc3VyZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlKHNlbGYpOgorICAgICAgICAi
IiIgdW5kZXJseWluZyBjb2xsZWN0aW9uIG5vZGUgKGRlcGVuZHMgb24gY3VycmVudCByZXF1ZXN0
IHNjb3BlKSIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0c2NvcGVpdGVtKHNlbGYuc2NvcGUp
CisKKyAgICBkZWYgX2dldG5leHRmaXh0dXJlZGVmKHNlbGYsIGFyZ25hbWUpOgorICAgICAgICBm
aXh0dXJlZGVmcyA9IHNlbGYuX2FyZzJmaXh0dXJlZGVmcy5nZXQoYXJnbmFtZSwgTm9uZSkKKyAg
ICAgICAgaWYgZml4dHVyZWRlZnMgaXMgTm9uZToKKyAgICAgICAgICAgICMgd2UgYXJyaXZlIGhl
cmUgYmVjYXVzZSBvZiBhICBhIGR5bmFtaWMgY2FsbCB0bworICAgICAgICAgICAgIyBnZXRmaXh0
dXJldmFsdWUoYXJnbmFtZSkgdXNhZ2Ugd2hpY2ggd2FzIG5hdHVyYWxseQorICAgICAgICAgICAg
IyBub3Qga25vd24gYXQgcGFyc2luZy9jb2xsZWN0aW9uIHRpbWUKKyAgICAgICAgICAgIHBhcmVu
dGlkID0gc2VsZi5fcHlmdW5jaXRlbS5wYXJlbnQubm9kZWlkCisgICAgICAgICAgICBmaXh0dXJl
ZGVmcyA9IHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLmdldGZpeHR1cmVkZWZzKGFyZ25hbWUsIHBhcmVu
dGlkKQorICAgICAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gZml4dHVy
ZWRlZnMKKyAgICAgICAgIyBmaXh0dXJlZGVmcyBsaXN0IGlzIGltbXV0YWJsZSBzbyB3ZSBtYWlu
dGFpbiBhIGRlY3JlYXNpbmcgaW5kZXgKKyAgICAgICAgaW5kZXggPSBzZWxmLl9hcmcyaW5kZXgu
Z2V0KGFyZ25hbWUsIDApIC0gMQorICAgICAgICBpZiBmaXh0dXJlZGVmcyBpcyBOb25lIG9yICgt
aW5kZXggPiBsZW4oZml4dHVyZWRlZnMpKToKKyAgICAgICAgICAgIHJhaXNlIEZpeHR1cmVMb29r
dXBFcnJvcihhcmduYW1lLCBzZWxmKQorICAgICAgICBzZWxmLl9hcmcyaW5kZXhbYXJnbmFtZV0g
PSBpbmRleAorICAgICAgICByZXR1cm4gZml4dHVyZWRlZnNbaW5kZXhdCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgY29uZmlnKHNlbGYpOgorICAgICAgICAiIiIgdGhlIHB5dGVzdCBjb25maWcg
b2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QuICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5fcHlmdW5jaXRlbS5jb25maWcKKworICAgIEBzY29wZXByb3BlcnR5KCkKKyAgICBkZWYg
ZnVuY3Rpb24oc2VsZik6CisgICAgICAgICIiIiB0ZXN0IGZ1bmN0aW9uIG9iamVjdCBpZiB0aGUg
cmVxdWVzdCBoYXMgYSBwZXItZnVuY3Rpb24gc2NvcGUuICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fcHlmdW5jaXRlbS5vYmoKKworICAgIEBzY29wZXByb3BlcnR5KCJjbGFzcyIpCisgICAgZGVm
IGNscyhzZWxmKToKKyAgICAgICAgIiIiIGNsYXNzIChjYW4gYmUgTm9uZSkgd2hlcmUgdGhlIHRl
c3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIiCisgICAgICAgIGNsc2NvbCA9IHNlbGYuX3B5
ZnVuY2l0ZW0uZ2V0cGFyZW50KF9weXRlc3QucHl0aG9uLkNsYXNzKQorICAgICAgICBpZiBjbHNj
b2w6CisgICAgICAgICAgICByZXR1cm4gY2xzY29sLm9iagorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGluc3RhbmNlKHNlbGYpOgorICAgICAgICAiIiIgaW5zdGFuY2UgKGNhbiBiZSBOb25lKSBv
biB3aGljaCB0ZXN0IGZ1bmN0aW9uIHdhcyBjb2xsZWN0ZWQuICIiIgorICAgICAgICAjIHVuaXR0
ZXN0IHN1cHBvcnQgaGFjaywgc2VlIF9weXRlc3QudW5pdHRlc3QuVGVzdENhc2VGdW5jdGlvbgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5fdGVzdGNh
c2UKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgZnVuY3Rpb24g
PSBnZXRhdHRyKHNlbGYsICJmdW5jdGlvbiIsIE5vbmUpCisgICAgICAgICAgICBpZiBmdW5jdGlv
biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHkuYnVpbHRpbi5fZ2V0aW1z
ZWxmKGZ1bmN0aW9uKQorCisgICAgQHNjb3BlcHJvcGVydHkoKQorICAgIGRlZiBtb2R1bGUoc2Vs
Zik6CisgICAgICAgICIiIiBweXRob24gbW9kdWxlIG9iamVjdCB3aGVyZSB0aGUgdGVzdCBmdW5j
dGlvbiB3YXMgY29sbGVjdGVkLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0u
Z2V0cGFyZW50KF9weXRlc3QucHl0aG9uLk1vZHVsZSkub2JqCisKKyAgICBAc2NvcGVwcm9wZXJ0
eSgpCisgICAgZGVmIGZzcGF0aChzZWxmKToKKyAgICAgICAgIiIiIHRoZSBmaWxlIHN5c3RlbSBw
YXRoIG9mIHRoZSB0ZXN0IG1vZHVsZSB3aGljaCBjb2xsZWN0ZWQgdGhpcyB0ZXN0LiAiIiIKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uZnNwYXRoCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYga2V5d29yZHMoc2VsZik6CisgICAgICAgICIiIiBrZXl3b3Jkcy9tYXJrZXJzIGRpY3Rp
b25hcnkgZm9yIHRoZSB1bmRlcmx5aW5nIG5vZGUuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5u
b2RlLmtleXdvcmRzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2Vzc2lvbihzZWxmKToKKyAg
ICAgICAgIiIiIHB5dGVzdCBzZXNzaW9uIG9iamVjdC4gIiIiCisgICAgICAgIHJldHVybiBzZWxm
Ll9weWZ1bmNpdGVtLnNlc3Npb24KKworICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxp
emVyKToKKyAgICAgICAgIiIiIGFkZCBmaW5hbGl6ZXIvdGVhcmRvd24gZnVuY3Rpb24gdG8gYmUg
Y2FsbGVkIGFmdGVyIHRoZQorICAgICAgICBsYXN0IHRlc3Qgd2l0aGluIHRoZSByZXF1ZXN0aW5n
IHRlc3QgY29udGV4dCBmaW5pc2hlZAorICAgICAgICBleGVjdXRpb24uICIiIgorICAgICAgICAj
IFhYWCB1c3VhbGx5IHRoaXMgbWV0aG9kIGlzIHNoYWRvd2VkIGJ5IGZpeHR1cmVkZWYgc3BlY2lm
aWMgb25lcworICAgICAgICBzZWxmLl9hZGRmaW5hbGl6ZXIoZmluYWxpemVyLCBzY29wZT1zZWxm
LnNjb3BlKQorCisgICAgZGVmIF9hZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyLCBzY29wZSk6
CisgICAgICAgIGNvbGl0ZW0gPSBzZWxmLl9nZXRzY29wZWl0ZW0oc2NvcGUpCisgICAgICAgIHNl
bGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoCisgICAgICAg
ICAgICBmaW5hbGl6ZXI9ZmluYWxpemVyLCBjb2xpdGVtPWNvbGl0ZW0pCisKKyAgICBkZWYgYXBw
bHltYXJrZXIoc2VsZiwgbWFya2VyKToKKyAgICAgICAgIiIiIEFwcGx5IGEgbWFya2VyIHRvIGEg
c2luZ2xlIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbi4KKyAgICAgICAgVGhpcyBtZXRob2QgaXMg
dXNlZnVsIGlmIHlvdSBkb24ndCB3YW50IHRvIGhhdmUgYSBrZXl3b3JkL21hcmtlcgorICAgICAg
ICBvbiBhbGwgZnVuY3Rpb24gaW52b2NhdGlvbnMuCisKKyAgICAgICAgOmFyZyBtYXJrZXI6IGEg
OnB5OmNsYXNzOmBfcHl0ZXN0Lm1hcmsuTWFya0RlY29yYXRvcmAgb2JqZWN0CisgICAgICAgICAg
ICBjcmVhdGVkIGJ5IGEgY2FsbCB0byBgYHB5dGVzdC5tYXJrLk5BTUUoLi4uKWBgLgorICAgICAg
ICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5ub2RlLmtleXdvcmRzW21hcmtl
ci5tYXJrbmFtZV0gPSBtYXJrZXIKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtYXJrZXIpCisKKyAgICBkZWYgcmFpc2VlcnJvcihz
ZWxmLCBtc2cpOgorICAgICAgICAiIiIgcmFpc2UgYSBGaXh0dXJlTG9va3VwRXJyb3Igd2l0aCB0
aGUgZ2l2ZW4gbWVzc2FnZS4gIiIiCisgICAgICAgIHJhaXNlIHNlbGYuX2ZpeHR1cmVtYW5hZ2Vy
LkZpeHR1cmVMb29rdXBFcnJvcihOb25lLCBzZWxmLCBtc2cpCisKKyAgICBkZWYgX2ZpbGxmaXh0
dXJlcyhzZWxmKToKKyAgICAgICAgaXRlbSA9IHNlbGYuX3B5ZnVuY2l0ZW0KKyAgICAgICAgZml4
dHVyZW5hbWVzID0gZ2V0YXR0cihpdGVtLCAiZml4dHVyZW5hbWVzIiwgc2VsZi5maXh0dXJlbmFt
ZXMpCisgICAgICAgIGZvciBhcmduYW1lIGluIGZpeHR1cmVuYW1lczoKKyAgICAgICAgICAgIGlm
IGFyZ25hbWUgbm90IGluIGl0ZW0uZnVuY2FyZ3M6CisgICAgICAgICAgICAgICAgaXRlbS5mdW5j
YXJnc1thcmduYW1lXSA9IHNlbGYuZ2V0Zml4dHVyZXZhbHVlKGFyZ25hbWUpCisKKyAgICBkZWYg
Y2FjaGVkX3NldHVwKHNlbGYsIHNldHVwLCB0ZWFyZG93bj1Ob25lLCBzY29wZT0ibW9kdWxlIiwg
ZXh0cmFrZXk9Tm9uZSk6CisgICAgICAgICIiIiAoZGVwcmVjYXRlZCkgUmV0dXJuIGEgdGVzdGlu
ZyByZXNvdXJjZSBtYW5hZ2VkIGJ5IGBgc2V0dXBgYCAmCisgICAgICAgIGBgdGVhcmRvd25gYCBj
YWxscy4gIGBgc2NvcGVgYCBhbmQgYGBleHRyYWtleWBgIGRldGVybWluZSB3aGVuIHRoZQorICAg
ICAgICBgYHRlYXJkb3duYGAgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgc28gdGhhdCBzdWJzZXF1
ZW50IGNhbGxzIHRvCisgICAgICAgIGBgc2V0dXBgYCB3b3VsZCByZWNyZWF0ZSB0aGUgcmVzb3Vy
Y2UuICBXaXRoIHB5dGVzdC0yLjMgeW91IG9mdGVuCisgICAgICAgIGRvIG5vdCBuZWVkIGBgY2Fj
aGVkX3NldHVwKClgYCBhcyB5b3UgY2FuIGRpcmVjdGx5IGRlY2xhcmUgYSBzY29wZQorICAgICAg
ICBvbiBhIGZpeHR1cmUgZnVuY3Rpb24gYW5kIHJlZ2lzdGVyIGEgZmluYWxpemVyIHRocm91Z2gK
KyAgICAgICAgYGByZXF1ZXN0LmFkZGZpbmFsaXplcigpYGAuCisKKyAgICAgICAgOmFyZyB0ZWFy
ZG93bjogZnVuY3Rpb24gcmVjZWl2aW5nIGEgcHJldmlvdXNseSBzZXR1cCByZXNvdXJjZS4KKyAg
ICAgICAgOmFyZyBzZXR1cDogYSBuby1hcmd1bWVudCBmdW5jdGlvbiBjcmVhdGluZyBhIHJlc291
cmNlLgorICAgICAgICA6YXJnIHNjb3BlOiBhIHN0cmluZyB2YWx1ZSBvdXQgb2YgYGBmdW5jdGlv
bmBgLCBgYGNsYXNzYGAsIGBgbW9kdWxlYGAKKyAgICAgICAgICAgIG9yIGBgc2Vzc2lvbmBgIGlu
ZGljYXRpbmcgdGhlIGNhY2hpbmcgbGlmZWN5Y2xlIG9mIHRoZSByZXNvdXJjZS4KKyAgICAgICAg
OmFyZyBleHRyYWtleTogYWRkZWQgdG8gaW50ZXJuYWwgY2FjaGluZyBrZXkgb2YgKGZ1bmNhcmdu
YW1lLCBzY29wZSkuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLmNv
bmZpZywgJ19zZXR1cGNhY2hlJyk6CisgICAgICAgICAgICBzZWxmLmNvbmZpZy5fc2V0dXBjYWNo
ZSA9IHt9ICAjIFhYWCB3ZWFrcmVmPworICAgICAgICBjYWNoZWtleSA9IChzZWxmLmZpeHR1cmVu
YW1lLCBzZWxmLl9nZXRzY29wZWl0ZW0oc2NvcGUpLCBleHRyYWtleSkKKyAgICAgICAgY2FjaGUg
PSBzZWxmLmNvbmZpZy5fc2V0dXBjYWNoZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB2YWwg
PSBjYWNoZVtjYWNoZWtleV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAg
c2VsZi5fY2hlY2tfc2NvcGUoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5zY29wZSwgc2NvcGUpCisg
ICAgICAgICAgICB2YWwgPSBzZXR1cCgpCisgICAgICAgICAgICBjYWNoZVtjYWNoZWtleV0gPSB2
YWwKKyAgICAgICAgICAgIGlmIHRlYXJkb3duIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
IGRlZiBmaW5hbGl6ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgZGVsIGNhY2hlW2NhY2hla2V5
XQorICAgICAgICAgICAgICAgICAgICB0ZWFyZG93bih2YWwpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fYWRkZmluYWxpemVyKGZpbmFsaXplciwgc2NvcGU9c2NvcGUpCisgICAgICAgIHJldHVybiB2
YWwKKworICAgIGRlZiBnZXRmaXh0dXJldmFsdWUoc2VsZiwgYXJnbmFtZSk6CisgICAgICAgICIi
IiBEeW5hbWljYWxseSBydW4gYSBuYW1lZCBmaXh0dXJlIGZ1bmN0aW9uLgorCisgICAgICAgIERl
Y2xhcmluZyBmaXh0dXJlcyB2aWEgZnVuY3Rpb24gYXJndW1lbnQgaXMgcmVjb21tZW5kZWQgd2hl
cmUgcG9zc2libGUuCisgICAgICAgIEJ1dCBpZiB5b3UgY2FuIG9ubHkgZGVjaWRlIHdoZXRoZXIg
dG8gdXNlIGFub3RoZXIgZml4dHVyZSBhdCB0ZXN0CisgICAgICAgIHNldHVwIHRpbWUsIHlvdSBt
YXkgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcmV0cmlldmUgaXQgaW5zaWRlIGEgZml4dHVyZQorICAg
ICAgICBvciB0ZXN0IGZ1bmN0aW9uIGJvZHkuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFyZ25hbWUpLmNhY2hlZF9yZXN1bHRbMF0KKwor
ICAgIGRlZiBnZXRmdW5jYXJndmFsdWUoc2VsZiwgYXJnbmFtZSk6CisgICAgICAgICIiIiBEZXBy
ZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlLiAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0IGlt
cG9ydCBkZXByZWNhdGVkCisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICBkZXBy
ZWNhdGVkLkdFVEZVTkNBUkdWQUxVRSwKKyAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywK
KyAgICAgICAgICAgIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0Zml4dHVy
ZXZhbHVlKGFyZ25hbWUpCisKKyAgICBkZWYgX2dldF9hY3RpdmVfZml4dHVyZWRlZihzZWxmLCBh
cmduYW1lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpeHR1cmVf
ZGVmc1thcmduYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgZml4dHVyZWRlZiA9IHNlbGYuX2dldG5leHRmaXh0dXJlZGVmKGFy
Z25hbWUpCisgICAgICAgICAgICBleGNlcHQgRml4dHVyZUxvb2t1cEVycm9yOgorICAgICAgICAg
ICAgICAgIGlmIGFyZ25hbWUgPT0gInJlcXVlc3QiOgorICAgICAgICAgICAgICAgICAgICBjbGFz
cyBQc2V1ZG9GaXh0dXJlRGVmOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkX3Jlc3Vs
dCA9IChzZWxmLCBbMF0sIE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBzY29wZSA9ICJm
dW5jdGlvbiIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBzZXVkb0ZpeHR1cmVEZWYKKyAg
ICAgICAgICAgICAgICByYWlzZQorICAgICAgICAjIHJlbW92ZSBpbmRlbnQgdG8gcHJldmVudCB0
aGUgcHl0aG9uMyBleGNlcHRpb24KKyAgICAgICAgIyBmcm9tIGxlYWtpbmcgaW50byB0aGUgY2Fs
bAorICAgICAgICByZXN1bHQgPSBzZWxmLl9nZXRmaXh0dXJldmFsdWUoZml4dHVyZWRlZikKKyAg
ICAgICAgc2VsZi5fZml4dHVyZV92YWx1ZXNbYXJnbmFtZV0gPSByZXN1bHQKKyAgICAgICAgc2Vs
Zi5fZml4dHVyZV9kZWZzW2FyZ25hbWVdID0gZml4dHVyZWRlZgorICAgICAgICByZXR1cm4gZml4
dHVyZWRlZgorCisgICAgZGVmIF9nZXRfZml4dHVyZXN0YWNrKHNlbGYpOgorICAgICAgICBjdXJy
ZW50ID0gc2VsZgorICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICB3aGlsZSAxOgorICAgICAg
ICAgICAgZml4dHVyZWRlZiA9IGdldGF0dHIoY3VycmVudCwgIl9maXh0dXJlZGVmIiwgTm9uZSkK
KyAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMucmV2ZXJzZSgpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlcworICAgICAgICAgICAg
dmFsdWVzLmFwcGVuZChmaXh0dXJlZGVmKQorICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQu
X3BhcmVudF9yZXF1ZXN0CisKKyAgICBkZWYgX2dldGZpeHR1cmV2YWx1ZShzZWxmLCBmaXh0dXJl
ZGVmKToKKyAgICAgICAgIyBwcmVwYXJlIGEgc3VicmVxdWVzdCBvYmplY3QgYmVmb3JlIGNhbGxp
bmcgZml4dHVyZSBmdW5jdGlvbgorICAgICAgICAjIChsYXR0ZXIgbWFuYWdlZCBieSBmaXh0dXJl
ZGVmKQorICAgICAgICBhcmduYW1lID0gZml4dHVyZWRlZi5hcmduYW1lCisgICAgICAgIGZ1bmNp
dGVtID0gc2VsZi5fcHlmdW5jaXRlbQorICAgICAgICBzY29wZSA9IGZpeHR1cmVkZWYuc2NvcGUK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyYW0gPSBmdW5jaXRlbS5jYWxsc3BlYy5nZXRw
YXJhbShhcmduYW1lKQorICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBWYWx1ZUVycm9y
KToKKyAgICAgICAgICAgIHBhcmFtID0gTk9UU0VUCisgICAgICAgICAgICBwYXJhbV9pbmRleCA9
IDAKKyAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIGZyYW1lID0gaW5zcGVjdC5zdGFjaygpWzNdCisgICAgICAgICAgICAgICAgZnJh
bWVpbmZvID0gaW5zcGVjdC5nZXRmcmFtZWluZm8oZnJhbWVbMF0pCisgICAgICAgICAgICAgICAg
c291cmNlX3BhdGggPSBmcmFtZWluZm8uZmlsZW5hbWUKKyAgICAgICAgICAgICAgICBzb3VyY2Vf
bGluZW5vID0gZnJhbWVpbmZvLmxpbmVubworICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0g
cHkucGF0aC5sb2NhbChzb3VyY2VfcGF0aCkKKyAgICAgICAgICAgICAgICBpZiBzb3VyY2VfcGF0
aC5yZWx0byhmdW5jaXRlbS5jb25maWcucm9vdGRpcik6CisgICAgICAgICAgICAgICAgICAgIHNv
dXJjZV9wYXRoID0gc291cmNlX3BhdGgucmVsdG8oZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpCisg
ICAgICAgICAgICAgICAgbXNnID0gKAorICAgICAgICAgICAgICAgICAgICAiVGhlIHJlcXVlc3Rl
ZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGhlICIKKyAgICAgICAgICAg
ICAgICAgICAgImN1cnJlbnQgdGVzdC5cblxuUmVxdWVzdGVkIGZpeHR1cmUgJ3swfScgZGVmaW5l
ZCBpbjpcbnsxfSIKKyAgICAgICAgICAgICAgICAgICAgIlxuXG5SZXF1ZXN0ZWQgaGVyZTpcbnsy
fTp7M30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuYXJnbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywg
ZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfbGluZW5vLAorICAgICAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGZhaWwobXNn
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBpbmRpY2VzIG1pZ2h0IG5vdCBiZSBzZXQg
aWYgb2xkLXN0eWxlIG1ldGFmdW5jLmFkZGNhbGwoKSB3YXMgdXNlZAorICAgICAgICAgICAgcGFy
YW1faW5kZXggPSBmdW5jaXRlbS5jYWxsc3BlYy5pbmRpY2VzLmdldChhcmduYW1lLCAwKQorICAg
ICAgICAgICAgIyBpZiBhIHBhcmFtZXRyaXplIGludm9jYXRpb24gc2V0IGEgc2NvcGUgaXQgd2ls
bCBvdmVycmlkZQorICAgICAgICAgICAgIyB0aGUgc3RhdGljIHNjb3BlIGRlZmluZWQgd2l0aCB0
aGUgZml4dHVyZSBmdW5jdGlvbgorICAgICAgICAgICAgcGFyYW1zY29wZW51bSA9IGZ1bmNpdGVt
LmNhbGxzcGVjLl9hcmcyc2NvcGVudW0uZ2V0KGFyZ25hbWUpCisgICAgICAgICAgICBpZiBwYXJh
bXNjb3BlbnVtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNjb3BlID0gc2NvcGVzW3Bh
cmFtc2NvcGVudW1dCisKKyAgICAgICAgc3VicmVxdWVzdCA9IFN1YlJlcXVlc3Qoc2VsZiwgc2Nv
cGUsIHBhcmFtLCBwYXJhbV9pbmRleCwgZml4dHVyZWRlZikKKworICAgICAgICAjIGNoZWNrIGlm
IGEgaGlnaGVyLWxldmVsIHNjb3BlZCBmaXh0dXJlIGFjY2Vzc2VzIGEgbG93ZXIgbGV2ZWwgb25l
CisgICAgICAgIHN1YnJlcXVlc3QuX2NoZWNrX3Njb3BlKGFyZ25hbWUsIHNlbGYuc2NvcGUsIHNj
b3BlKQorCisgICAgICAgICMgY2xlYXIgc3lzLmV4Y19pbmZvIGJlZm9yZSBpbnZva2luZyB0aGUg
Zml4dHVyZSAocHl0aG9uIGJ1Zz8pCisgICAgICAgICMgaWYgaXRzIG5vdCBleHBsaWNpdGx5IGNs
ZWFyZWQgaXQgd2lsbCBsZWFrIGludG8gdGhlIGNhbGwKKyAgICAgICAgZXhjX2NsZWFyKCkKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgIyBjYWxsIHRoZSBmaXh0dXJlIGZ1bmN0aW9uCisgICAg
ICAgICAgICB2YWwgPSBmaXh0dXJlZGVmLmV4ZWN1dGUocmVxdWVzdD1zdWJyZXF1ZXN0KQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIyBpZiBmaXh0dXJlIGZ1bmN0aW9uIGZhaWxlZCBp
dCBtaWdodCBoYXZlIHJlZ2lzdGVyZWQgZmluYWxpemVycworICAgICAgICAgICAgc2VsZi5zZXNz
aW9uLl9zZXR1cHN0YXRlLmFkZGZpbmFsaXplcihmdW5jdG9vbHMucGFydGlhbChmaXh0dXJlZGVm
LmZpbmlzaCwgcmVxdWVzdD1zdWJyZXF1ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VicmVxdWVzdC5ub2RlKQorICAgICAgICByZXR1cm4g
dmFsCisKKyAgICBkZWYgX2NoZWNrX3Njb3BlKHNlbGYsIGFyZ25hbWUsIGludm9raW5nX3Njb3Bl
LCByZXF1ZXN0ZWRfc2NvcGUpOgorICAgICAgICBpZiBhcmduYW1lID09ICJyZXF1ZXN0IjoKKyAg
ICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBzY29wZW1pc21hdGNoKGludm9raW5nX3Njb3Bl
LCByZXF1ZXN0ZWRfc2NvcGUpOgorICAgICAgICAgICAgIyB0cnkgdG8gcmVwb3J0IHNvbWV0aGlu
ZyBoZWxwZnVsCisgICAgICAgICAgICBsaW5lcyA9IHNlbGYuX2ZhY3Rvcnl0cmFjZWJhY2soKQor
ICAgICAgICAgICAgZmFpbCgiU2NvcGVNaXNtYXRjaDogWW91IHRyaWVkIHRvIGFjY2VzcyB0aGUg
JXIgc2NvcGVkICIKKyAgICAgICAgICAgICAgICAgImZpeHR1cmUgJXIgd2l0aCBhICVyIHNjb3Bl
ZCByZXF1ZXN0IG9iamVjdCwgIgorICAgICAgICAgICAgICAgICAiaW52b2x2ZWQgZmFjdG9yaWVz
XG4lcyIgJSAoCisgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdGVkX3Njb3BlLCBhcmduYW1l
LCBpbnZva2luZ19zY29wZSwgIlxuIi5qb2luKGxpbmVzKSkpLAorICAgICAgICAgICAgICAgICBw
eXRyYWNlPUZhbHNlKQorCisgICAgZGVmIF9mYWN0b3J5dHJhY2ViYWNrKHNlbGYpOgorICAgICAg
ICBsaW5lcyA9IFtdCisgICAgICAgIGZvciBmaXh0dXJlZGVmIGluIHNlbGYuX2dldF9maXh0dXJl
c3RhY2soKToKKyAgICAgICAgICAgIGZhY3RvcnkgPSBmaXh0dXJlZGVmLmZ1bmMKKyAgICAgICAg
ICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmYWN0b3J5KQorICAgICAgICAgICAgcCA9IHNl
bGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgoZnMpCisgICAgICAgICAg
ICBhcmdzID0gX2Zvcm1hdF9hcmdzKGZhY3RvcnkpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiVzOiVkOiAgZGVmICVzJXMiICUgKAorICAgICAgICAgICAgICAgIHAsIGxpbmVubywgZmFjdG9y
eS5fX25hbWVfXywgYXJncykpCisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIF9nZXRz
Y29wZWl0ZW0oc2VsZiwgc2NvcGUpOgorICAgICAgICBpZiBzY29wZSA9PSAiZnVuY3Rpb24iOgor
ICAgICAgICAgICAgIyB0aGlzIG1pZ2h0IGFsc28gYmUgYSBub24tZnVuY3Rpb24gSXRlbSBkZXNw
aXRlIGl0cyBhdHRyaWJ1dGUgbmFtZQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0
ZW0KKyAgICAgICAgbm9kZSA9IGdldF9zY29wZV9ub2RlKHNlbGYuX3B5ZnVuY2l0ZW0sIHNjb3Bl
KQorICAgICAgICBpZiBub2RlIGlzIE5vbmUgYW5kIHNjb3BlID09ICJjbGFzcyI6CisgICAgICAg
ICAgICAjIGZhbGxiYWNrIHRvIGZ1bmN0aW9uIGl0ZW0gaXRzZWxmCisgICAgICAgICAgICBub2Rl
ID0gc2VsZi5fcHlmdW5jaXRlbQorICAgICAgICBhc3NlcnQgbm9kZSwgJ0NvdWxkIG5vdCBvYnRh
aW4gYSBub2RlIGZvciBzY29wZSAie30iIGZvciBmdW5jdGlvbiB7IXJ9Jy5mb3JtYXQoc2NvcGUs
IHNlbGYuX3B5ZnVuY2l0ZW0pCisgICAgICAgIHJldHVybiBub2RlCisKKyAgICBkZWYgX19yZXBy
X18oc2VsZik6CisgICAgICAgIHJldHVybiAiPEZpeHR1cmVSZXF1ZXN0IGZvciAlcj4iICUgKHNl
bGYubm9kZSkKKworCitjbGFzcyBTdWJSZXF1ZXN0KEZpeHR1cmVSZXF1ZXN0KToKKyAgICAiIiIg
YSBzdWIgcmVxdWVzdCBmb3IgaGFuZGxpbmcgZ2V0dGluZyBhIGZpeHR1cmUgZnJvbSBhCisgICAg
dGVzdCBmdW5jdGlvbi9maXh0dXJlLiAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0LCBzY29wZSwgcGFyYW0sIHBhcmFtX2luZGV4LCBmaXh0dXJlZGVmKToKKyAgICAgICAgc2Vs
Zi5fcGFyZW50X3JlcXVlc3QgPSByZXF1ZXN0CisgICAgICAgIHNlbGYuZml4dHVyZW5hbWUgPSBm
aXh0dXJlZGVmLmFyZ25hbWUKKyAgICAgICAgaWYgcGFyYW0gaXMgbm90IE5PVFNFVDoKKyAgICAg
ICAgICAgIHNlbGYucGFyYW0gPSBwYXJhbQorICAgICAgICBzZWxmLnBhcmFtX2luZGV4ID0gcGFy
YW1faW5kZXgKKyAgICAgICAgc2VsZi5zY29wZSA9IHNjb3BlCisgICAgICAgIHNlbGYuX2ZpeHR1
cmVkZWYgPSBmaXh0dXJlZGVmCisgICAgICAgIHNlbGYuX3B5ZnVuY2l0ZW0gPSByZXF1ZXN0Ll9w
eWZ1bmNpdGVtCisgICAgICAgIHNlbGYuX2ZpeHR1cmVfdmFsdWVzID0gcmVxdWVzdC5fZml4dHVy
ZV92YWx1ZXMKKyAgICAgICAgc2VsZi5fZml4dHVyZV9kZWZzID0gcmVxdWVzdC5fZml4dHVyZV9k
ZWZzCisgICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmcyA9IHJlcXVlc3QuX2FyZzJmaXh0dXJl
ZGVmcworICAgICAgICBzZWxmLl9hcmcyaW5kZXggPSByZXF1ZXN0Ll9hcmcyaW5kZXgKKyAgICAg
ICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSByZXF1ZXN0Ll9maXh0dXJlbWFuYWdlcgorCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxTdWJSZXF1ZXN0ICVyIGZvciAl
cj4iICUgKHNlbGYuZml4dHVyZW5hbWUsIHNlbGYuX3B5ZnVuY2l0ZW0pCisKKyAgICBkZWYgYWRk
ZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6CisgICAgICAgIHNlbGYuX2ZpeHR1cmVkZWYuYWRk
ZmluYWxpemVyKGZpbmFsaXplcikKKworCitjbGFzcyBTY29wZU1pc21hdGNoRXJyb3IoRXhjZXB0
aW9uKToKKyAgICAiIiIgQSBmaXh0dXJlIGZ1bmN0aW9uIHRyaWVzIHRvIHVzZSBhIGRpZmZlcmVu
dCBmaXh0dXJlIGZ1bmN0aW9uIHdoaWNoCisgICAgd2hpY2ggaGFzIGEgbG93ZXIgc2NvcGUgKGUu
Zy4gYSBTZXNzaW9uIG9uZSBjYWxscyBhIGZ1bmN0aW9uIG9uZSkKKyAgICAiIiIKKworCitzY29w
ZXMgPSAic2Vzc2lvbiBtb2R1bGUgY2xhc3MgZnVuY3Rpb24iLnNwbGl0KCkKK3Njb3BlbnVtX2Z1
bmN0aW9uID0gc2NvcGVzLmluZGV4KCJmdW5jdGlvbiIpCisKKworZGVmIHNjb3BlbWlzbWF0Y2go
Y3VycmVudHNjb3BlLCBuZXdzY29wZSk6CisgICAgcmV0dXJuIHNjb3Blcy5pbmRleChuZXdzY29w
ZSkgPiBzY29wZXMuaW5kZXgoY3VycmVudHNjb3BlKQorCisKK2RlZiBzY29wZTJpbmRleChzY29w
ZSwgZGVzY3IsIHdoZXJlPU5vbmUpOgorICAgICIiIkxvb2sgdXAgdGhlIGluZGV4IG9mIGBgc2Nv
cGVgYCBhbmQgcmFpc2UgYSBkZXNjcmlwdGl2ZSB2YWx1ZSBlcnJvcgorICAgIGlmIG5vdCBkZWZp
bmVkLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHNjb3Blcy5pbmRleChzY29w
ZSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAg
ICAgICAgICAgICJ7MH0gezF9aGFzIGFuIHVuc3VwcG9ydGVkIHNjb3BlIHZhbHVlICd7Mn0nIi5m
b3JtYXQoCisgICAgICAgICAgICAgICAgZGVzY3IsICdmcm9tIHswfSAnLmZvcm1hdCh3aGVyZSkg
aWYgd2hlcmUgZWxzZSAnJywKKyAgICAgICAgICAgICAgICBzY29wZSkKKyAgICAgICAgKQorCisK
K2NsYXNzIEZpeHR1cmVMb29rdXBFcnJvcihMb29rdXBFcnJvcik6CisgICAgIiIiIGNvdWxkIG5v
dCByZXR1cm4gYSByZXF1ZXN0ZWQgRml4dHVyZSAobWlzc2luZyBvciBpbnZhbGlkKS4gIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgYXJnbmFtZSwgcmVxdWVzdCwgbXNnPU5vbmUpOgorICAg
ICAgICBzZWxmLmFyZ25hbWUgPSBhcmduYW1lCisgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVl
c3QKKyAgICAgICAgc2VsZi5maXh0dXJlc3RhY2sgPSByZXF1ZXN0Ll9nZXRfZml4dHVyZXN0YWNr
KCkKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKworICAgIGRlZiBmb3JtYXRyZXByKHNlbGYpOgor
ICAgICAgICB0YmxpbmVzID0gW10KKyAgICAgICAgYWRkbGluZSA9IHRibGluZXMuYXBwZW5kCisg
ICAgICAgIHN0YWNrID0gW3NlbGYucmVxdWVzdC5fcHlmdW5jaXRlbS5vYmpdCisgICAgICAgIHN0
YWNrLmV4dGVuZChtYXAobGFtYmRhIHg6IHguZnVuYywgc2VsZi5maXh0dXJlc3RhY2spKQorICAg
ICAgICBtc2cgPSBzZWxmLm1zZworICAgICAgICBpZiBtc2cgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAjIHRoZSBsYXN0IGZpeHR1cmUgcmFpc2UgYW4gZXJyb3IsIGxldCdzIHByZXNlbnQKKyAg
ICAgICAgICAgICMgaXQgYXQgdGhlIHJlcXVlc3Rpbmcgc2lkZQorICAgICAgICAgICAgc3RhY2sg
PSBzdGFja1s6LTFdCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBzdGFjazoKKyAgICAgICAgICAg
IGZzcGF0aCwgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZnVuY3Rpb24pCisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgbGluZXMsIF8gPSBpbnNwZWN0LmdldHNvdXJjZWxpbmVzKGdldF9y
ZWFsX2Z1bmMoZnVuY3Rpb24pKQorICAgICAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBJbmRleEVy
cm9yLCBUeXBlRXJyb3IpOgorICAgICAgICAgICAgICAgIGVycm9yX21zZyA9ICJmaWxlICVzLCBs
aW5lICVzOiBzb3VyY2UgY29kZSBub3QgYXZhaWxhYmxlIgorICAgICAgICAgICAgICAgIGFkZGxp
bmUoZXJyb3JfbXNnICUgKGZzcGF0aCwgbGluZW5vICsgMSkpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIGFkZGxpbmUoImZpbGUgJXMsIGxpbmUgJXMiICUgKGZzcGF0aCwgbGlu
ZW5vICsgMSkpCisgICAgICAgICAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVz
KToKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucnN0cmlwKCkKKyAgICAgICAgICAg
ICAgICAgICAgYWRkbGluZSgiICAiICsgbGluZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGlu
ZS5sc3RyaXAoKS5zdGFydHN3aXRoKCdkZWYnKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisKKyAgICAgICAgaWYgbXNnIGlzIE5vbmU6CisgICAgICAgICAgICBmbSA9IHNlbGYucmVx
dWVzdC5fZml4dHVyZW1hbmFnZXIKKyAgICAgICAgICAgIGF2YWlsYWJsZSA9IFtdCisgICAgICAg
ICAgICBwYXJlbnRpZCA9IHNlbGYucmVxdWVzdC5fcHlmdW5jaXRlbS5wYXJlbnQubm9kZWlkCisg
ICAgICAgICAgICBmb3IgbmFtZSwgZml4dHVyZWRlZnMgaW4gZm0uX2FyZzJmaXh0dXJlZGVmcy5p
dGVtcygpOgorICAgICAgICAgICAgICAgIGZhY2xpc3QgPSBsaXN0KGZtLl9tYXRjaGZhY3Rvcmll
cyhmaXh0dXJlZGVmcywgcGFyZW50aWQpKQorICAgICAgICAgICAgICAgIGlmIGZhY2xpc3QgYW5k
IG5hbWUgbm90IGluIGF2YWlsYWJsZToKKyAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLmFw
cGVuZChuYW1lKQorICAgICAgICAgICAgbXNnID0gImZpeHR1cmUgJXIgbm90IGZvdW5kIiAlIChz
ZWxmLmFyZ25hbWUsKQorICAgICAgICAgICAgbXNnICs9ICJcbiBhdmFpbGFibGUgZml4dHVyZXM6
ICVzIiAlICgiLCAiLmpvaW4oc29ydGVkKGF2YWlsYWJsZSkpLCkKKyAgICAgICAgICAgIG1zZyAr
PSAiXG4gdXNlICdweXRlc3QgLS1maXh0dXJlcyBbdGVzdHBhdGhdJyBmb3IgaGVscCBvbiB0aGVt
LiIKKworICAgICAgICByZXR1cm4gRml4dHVyZUxvb2t1cEVycm9yUmVwcihmc3BhdGgsIGxpbmVu
bywgdGJsaW5lcywgbXNnLCBzZWxmLmFyZ25hbWUpCisKKworY2xhc3MgRml4dHVyZUxvb2t1cEVy
cm9yUmVwcihUZXJtaW5hbFJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwg
Zmlyc3RsaW5lbm8sIHRibGluZXMsIGVycm9yc3RyaW5nLCBhcmduYW1lKToKKyAgICAgICAgc2Vs
Zi50YmxpbmVzID0gdGJsaW5lcworICAgICAgICBzZWxmLmVycm9yc3RyaW5nID0gZXJyb3JzdHJp
bmcKKyAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lCisgICAgICAgIHNlbGYuZmlyc3Rs
aW5lbm8gPSBmaXJzdGxpbmVubworICAgICAgICBzZWxmLmFyZ25hbWUgPSBhcmduYW1lCisKKyAg
ICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgICMgdHcubGluZSgiRml4dHVyZUxv
b2t1cEVycm9yOiAlcyIgJShzZWxmLmFyZ25hbWUpLCByZWQ9VHJ1ZSkKKyAgICAgICAgZm9yIHRi
bGluZSBpbiBzZWxmLnRibGluZXM6CisgICAgICAgICAgICB0dy5saW5lKHRibGluZS5yc3RyaXAo
KSkKKyAgICAgICAgbGluZXMgPSBzZWxmLmVycm9yc3RyaW5nLnNwbGl0KCJcbiIpCisgICAgICAg
IGlmIGxpbmVzOgorICAgICAgICAgICAgdHcubGluZSgnezB9ICAgICAgIHsxfScuZm9ybWF0KEZv
cm1hdHRlZEV4Y2luZm8uZmFpbF9tYXJrZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGluZXNbMF0uc3RyaXAoKSksIHJlZD1UcnVlKQorICAgICAgICAgICAg
Zm9yIGxpbmUgaW4gbGluZXNbMTpdOgorICAgICAgICAgICAgICAgIHR3LmxpbmUoJ3swfSAgICAg
ICB7MX0nLmZvcm1hdChGb3JtYXR0ZWRFeGNpbmZvLmZsb3dfbWFya2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLnN0cmlwKCkpLCByZWQ9VHJ1
ZSkKKyAgICAgICAgdHcubGluZSgpCisgICAgICAgIHR3LmxpbmUoIiVzOiVkIiAlIChzZWxmLmZp
bGVuYW1lLCBzZWxmLmZpcnN0bGluZW5vICsgMSkpCisKKworZGVmIGZhaWxfZml4dHVyZWZ1bmMo
Zml4dHVyZWZ1bmMsIG1zZyk6CisgICAgZnMsIGxpbmVubyA9IGdldGZzbGluZW5vKGZpeHR1cmVm
dW5jKQorICAgIGxvY2F0aW9uID0gIiVzOiVzIiAlIChmcywgbGluZW5vICsgMSkKKyAgICBzb3Vy
Y2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShmaXh0dXJlZnVuYykKKyAgICBmYWlsKG1zZyArICI6
XG5cbiIgKyBzdHIoc291cmNlLmluZGVudCgpKSArICJcbiIgKyBsb2NhdGlvbiwKKyAgICAgICAg
IHB5dHJhY2U9RmFsc2UpCisKKworZGVmIGNhbGxfZml4dHVyZV9mdW5jKGZpeHR1cmVmdW5jLCBy
ZXF1ZXN0LCBrd2FyZ3MpOgorICAgIHlpZWxkY3R4ID0gaXNfZ2VuZXJhdG9yKGZpeHR1cmVmdW5j
KQorICAgIGlmIHlpZWxkY3R4OgorICAgICAgICBpdCA9IGZpeHR1cmVmdW5jKCoqa3dhcmdzKQor
ICAgICAgICByZXMgPSBuZXh0KGl0KQorCisgICAgICAgIGRlZiB0ZWFyZG93bigpOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5leHQoaXQpCisgICAgICAgICAgICBleGNlcHQg
U3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIGZhaWxfZml4dHVyZWZ1bmMoZml4dHVyZWZ1bmMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAieWllbGRfZml4dHVyZSBmdW5jdGlvbiBoYXMgbW9yZSB0
aGFuIG9uZSAneWllbGQnIikKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih0ZWFyZG93
bikKKyAgICBlbHNlOgorICAgICAgICByZXMgPSBmaXh0dXJlZnVuYygqKmt3YXJncykKKyAgICBy
ZXR1cm4gcmVzCisKKworY2xhc3MgRml4dHVyZURlZjoKKyAgICAiIiIgQSBjb250YWluZXIgZm9y
IGEgZmFjdG9yeSBkZWZpbml0aW9uLiAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXh0
dXJlbWFuYWdlciwgYmFzZWlkLCBhcmduYW1lLCBmdW5jLCBzY29wZSwgcGFyYW1zLAorICAgICAg
ICAgICAgICAgICB1bml0dGVzdD1GYWxzZSwgaWRzPU5vbmUpOgorICAgICAgICBzZWxmLl9maXh0
dXJlbWFuYWdlciA9IGZpeHR1cmVtYW5hZ2VyCisgICAgICAgIHNlbGYuYmFzZWlkID0gYmFzZWlk
IG9yICcnCisgICAgICAgIHNlbGYuaGFzX2xvY2F0aW9uID0gYmFzZWlkIGlzIG5vdCBOb25lCisg
ICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5hcmduYW1lID0gYXJnbmFtZQor
ICAgICAgICBzZWxmLnNjb3BlID0gc2NvcGUKKyAgICAgICAgc2VsZi5zY29wZW51bSA9IHNjb3Bl
MmluZGV4KAorICAgICAgICAgICAgc2NvcGUgb3IgImZ1bmN0aW9uIiwKKyAgICAgICAgICAgIGRl
c2NyPSdmaXh0dXJlIHswfScuZm9ybWF0KGZ1bmMuX19uYW1lX18pLAorICAgICAgICAgICAgd2hl
cmU9YmFzZWlkCisgICAgICAgICkKKyAgICAgICAgc2VsZi5wYXJhbXMgPSBwYXJhbXMKKyAgICAg
ICAgc2VsZi5hcmduYW1lcyA9IGdldGZ1bmNhcmduYW1lcyhmdW5jLCBpc19tZXRob2Q9dW5pdHRl
c3QpCisgICAgICAgIHNlbGYudW5pdHRlc3QgPSB1bml0dGVzdAorICAgICAgICBzZWxmLmlkcyA9
IGlkcworICAgICAgICBzZWxmLl9maW5hbGl6ZXJzID0gW10KKworICAgIGRlZiBhZGRmaW5hbGl6
ZXIoc2VsZiwgZmluYWxpemVyKToKKyAgICAgICAgc2VsZi5fZmluYWxpemVycy5hcHBlbmQoZmlu
YWxpemVyKQorCisgICAgZGVmIGZpbmlzaChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgZXhjZXB0
aW9ucyA9IFtdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdoaWxlIHNlbGYuX2ZpbmFsaXpl
cnM6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBmdW5jID0gc2Vs
Zi5fZmluYWxpemVycy5wb3AoKQorICAgICAgICAgICAgICAgICAgICBmdW5jKCkKKyAgICAgICAg
ICAgICAgICBleGNlcHQ6ICAjIG5vcWEKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5h
cHBlbmQoc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICBpZiBleGNlcHRpb25zOgorICAgICAg
ICAgICAgICAgIGUgPSBleGNlcHRpb25zWzBdCisgICAgICAgICAgICAgICAgZGVsIGV4Y2VwdGlv
bnMgICMgZW5zdXJlIHdlIGRvbid0IGtlZXAgYWxsIGZyYW1lcyBhbGl2ZSBiZWNhdXNlIG9mIHRo
ZSB0cmFjZWJhY2sKKyAgICAgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCplKQorCisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBob29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIu
c2Vzc2lvbi5nZXRob29rcHJveHkocmVxdWVzdC5ub2RlLmZzcGF0aCkKKyAgICAgICAgICAgIGhv
b2sucHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0
PXJlcXVlc3QpCisgICAgICAgICAgICAjIGV2ZW4gaWYgZmluYWxpemF0aW9uIGZhaWxzLCB3ZSBp
bnZhbGlkYXRlCisgICAgICAgICAgICAjIHRoZSBjYWNoZWQgZml4dHVyZSB2YWx1ZSBhbmQgcmVt
b3ZlCisgICAgICAgICAgICAjIGFsbCBmaW5hbGl6ZXJzIGJlY2F1c2UgdGhleSBtYXkgYmUgYm91
bmQgbWV0aG9kcyB3aGljaCB3aWxsCisgICAgICAgICAgICAjIGtlZXAgaW5zdGFuY2VzIGFsaXZl
CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJjYWNoZWRfcmVzdWx0Iik6CisgICAgICAg
ICAgICAgICAgZGVsIHNlbGYuY2FjaGVkX3Jlc3VsdAorICAgICAgICAgICAgc2VsZi5fZmluYWxp
emVycyA9IFtdCisKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIyBn
ZXQgcmVxdWlyZWQgYXJndW1lbnRzIGFuZCByZWdpc3RlciBvdXIgb3duIGZpbmlzaCgpCisgICAg
ICAgICMgd2l0aCB0aGVpciBmaW5hbGl6YXRpb24KKyAgICAgICAgZm9yIGFyZ25hbWUgaW4gc2Vs
Zi5hcmduYW1lczoKKyAgICAgICAgICAgIGZpeHR1cmVkZWYgPSByZXF1ZXN0Ll9nZXRfYWN0aXZl
X2ZpeHR1cmVkZWYoYXJnbmFtZSkKKyAgICAgICAgICAgIGlmIGFyZ25hbWUgIT0gInJlcXVlc3Qi
OgorICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuYWRkZmluYWxpemVyKGZ1bmN0b29scy5wYXJ0
aWFsKHNlbGYuZmluaXNoLCByZXF1ZXN0PXJlcXVlc3QpKQorCisgICAgICAgIG15X2NhY2hlX2tl
eSA9IHJlcXVlc3QucGFyYW1faW5kZXgKKyAgICAgICAgY2FjaGVkX3Jlc3VsdCA9IGdldGF0dHIo
c2VsZiwgImNhY2hlZF9yZXN1bHQiLCBOb25lKQorICAgICAgICBpZiBjYWNoZWRfcmVzdWx0IGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgcmVzdWx0LCBjYWNoZV9rZXksIGVyciA9IGNhY2hlZF9y
ZXN1bHQKKyAgICAgICAgICAgIGlmIG15X2NhY2hlX2tleSA9PSBjYWNoZV9rZXk6CisgICAgICAg
ICAgICAgICAgaWYgZXJyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBweS5idWls
dGluLl9yZXJhaXNlKCplcnIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICAgICAgIyB3ZSBoYXZlIGEgcHJldmlvdXMgYnV0
IGRpZmZlcmVudGx5IHBhcmFtZXRyaXplZCBmaXh0dXJlIGluc3RhbmNlCisgICAgICAgICAgICAj
IHNvIHdlIG5lZWQgdG8gdGVhciBpdCBkb3duIGJlZm9yZSBjcmVhdGluZyBhIG5ldyBvbmUKKyAg
ICAgICAgICAgIHNlbGYuZmluaXNoKHJlcXVlc3QpCisgICAgICAgICAgICBhc3NlcnQgbm90IGhh
c2F0dHIoc2VsZiwgImNhY2hlZF9yZXN1bHQiKQorCisgICAgICAgIGhvb2sgPSBzZWxmLl9maXh0
dXJlbWFuYWdlci5zZXNzaW9uLmdldGhvb2twcm94eShyZXF1ZXN0Lm5vZGUuZnNwYXRoKQorICAg
ICAgICByZXR1cm4gaG9vay5weXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmPXNlbGYsIHJl
cXVlc3Q9cmVxdWVzdCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICgiPEZpeHR1cmVEZWYgbmFtZT0lciBzY29wZT0lciBiYXNlaWQ9JXIgPiIgJQorICAgICAgICAg
ICAgICAgIChzZWxmLmFyZ25hbWUsIHNlbGYuc2NvcGUsIHNlbGYuYmFzZWlkKSkKKworCitkZWYg
cHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgIiIiIEV4ZWN1
dGlvbiBvZiBmaXh0dXJlIHNldHVwLiAiIiIKKyAgICBrd2FyZ3MgPSB7fQorICAgIGZvciBhcmdu
YW1lIGluIGZpeHR1cmVkZWYuYXJnbmFtZXM6CisgICAgICAgIGZpeGRlZiA9IHJlcXVlc3QuX2dl
dF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQorICAgICAgICByZXN1bHQsIGFyZ19jYWNoZV9r
ZXksIGV4YyA9IGZpeGRlZi5jYWNoZWRfcmVzdWx0CisgICAgICAgIHJlcXVlc3QuX2NoZWNrX3Nj
b3BlKGFyZ25hbWUsIHJlcXVlc3Quc2NvcGUsIGZpeGRlZi5zY29wZSkKKyAgICAgICAga3dhcmdz
W2FyZ25hbWVdID0gcmVzdWx0CisKKyAgICBmaXh0dXJlZnVuYyA9IGZpeHR1cmVkZWYuZnVuYwor
ICAgIGlmIGZpeHR1cmVkZWYudW5pdHRlc3Q6CisgICAgICAgIGlmIHJlcXVlc3QuaW5zdGFuY2Ug
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIGJpbmQgdGhlIHVuYm91bmQgbWV0aG9kIHRvIHRo
ZSBUZXN0Q2FzZSBpbnN0YW5jZQorICAgICAgICAgICAgZml4dHVyZWZ1bmMgPSBmaXh0dXJlZGVm
LmZ1bmMuX19nZXRfXyhyZXF1ZXN0Lmluc3RhbmNlKQorICAgIGVsc2U6CisgICAgICAgICMgdGhl
IGZpeHR1cmUgZnVuY3Rpb24gbmVlZHMgdG8gYmUgYm91bmQgdG8gdGhlIGFjdHVhbAorICAgICAg
ICAjIHJlcXVlc3QuaW5zdGFuY2Ugc28gdGhhdCBjb2RlIHdvcmtpbmcgd2l0aCAiZml4dHVyZWRl
ZiIgYmVoYXZlcworICAgICAgICAjIGFzIGV4cGVjdGVkLgorICAgICAgICBpZiByZXF1ZXN0Lmlu
c3RhbmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZml4dHVyZWZ1bmMgPSBnZXRpbWZ1bmMo
Zml4dHVyZWRlZi5mdW5jKQorICAgICAgICAgICAgaWYgZml4dHVyZWZ1bmMgIT0gZml4dHVyZWRl
Zi5mdW5jOgorICAgICAgICAgICAgICAgIGZpeHR1cmVmdW5jID0gZml4dHVyZWZ1bmMuX19nZXRf
XyhyZXF1ZXN0Lmluc3RhbmNlKQorICAgIG15X2NhY2hlX2tleSA9IHJlcXVlc3QucGFyYW1faW5k
ZXgKKyAgICB0cnk6CisgICAgICAgIHJlc3VsdCA9IGNhbGxfZml4dHVyZV9mdW5jKGZpeHR1cmVm
dW5jLCByZXF1ZXN0LCBrd2FyZ3MpCisgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKKyAgICAgICAg
Zml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0ID0gKE5vbmUsIG15X2NhY2hlX2tleSwgc3lzLmV4Y19p
bmZvKCkpCisgICAgICAgIHJhaXNlCisgICAgZml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0ID0gKHJl
c3VsdCwgbXlfY2FjaGVfa2V5LCBOb25lKQorICAgIHJldHVybiByZXN1bHQKKworCitkZWYgX2Vu
c3VyZV9pbW11dGFibGVfaWRzKGlkcyk6CisgICAgaWYgaWRzIGlzIE5vbmU6CisgICAgICAgIHJl
dHVybgorICAgIGlmIGNhbGxhYmxlKGlkcyk6CisgICAgICAgIHJldHVybiBpZHMKKyAgICByZXR1
cm4gdHVwbGUoaWRzKQorCisKK0BhdHRyLnMoZnJvemVuPVRydWUpCitjbGFzcyBGaXh0dXJlRnVu
Y3Rpb25NYXJrZXIob2JqZWN0KToKKyAgICBzY29wZSA9IGF0dHIuaWIoKQorICAgIHBhcmFtcyA9
IGF0dHIuaWIoY29udmVydD1hdHRyLmNvbnZlcnRlcnMub3B0aW9uYWwodHVwbGUpKQorICAgIGF1
dG91c2UgPSBhdHRyLmliKGRlZmF1bHQ9RmFsc2UpCisgICAgaWRzID0gYXR0ci5pYihkZWZhdWx0
PU5vbmUsIGNvbnZlcnQ9X2Vuc3VyZV9pbW11dGFibGVfaWRzKQorICAgIG5hbWUgPSBhdHRyLmli
KGRlZmF1bHQ9Tm9uZSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBmdW5jdGlvbik6CisgICAg
ICAgIGlmIGlzY2xhc3MoZnVuY3Rpb24pOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigK
KyAgICAgICAgICAgICAgICAiY2xhc3MgZml4dHVyZXMgbm90IHN1cHBvcnRlZCAobWF5IGJlIGlu
IHRoZSBmdXR1cmUpIikKKyAgICAgICAgZnVuY3Rpb24uX3B5dGVzdGZpeHR1cmVmdW5jdGlvbiA9
IHNlbGYKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uCisKKworZGVmIGZpeHR1cmUoc2NvcGU9ImZ1
bmN0aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU5vbmUp
OgorICAgICIiIiAocmV0dXJuIGEpIGRlY29yYXRvciB0byBtYXJrIGEgZml4dHVyZSBmYWN0b3J5
IGZ1bmN0aW9uLgorCisgICAgVGhpcyBkZWNvcmF0b3IgY2FuIGJlIHVzZWQgKHdpdGggb3Igd2l0
aG91dCBwYXJhbWV0ZXJzKSB0byBkZWZpbmUgYQorICAgIGZpeHR1cmUgZnVuY3Rpb24uICBUaGUg
bmFtZSBvZiB0aGUgZml4dHVyZSBmdW5jdGlvbiBjYW4gbGF0ZXIgYmUKKyAgICByZWZlcmVuY2Vk
IHRvIGNhdXNlIGl0cyBpbnZvY2F0aW9uIGFoZWFkIG9mIHJ1bm5pbmcgdGVzdHM6IHRlc3QKKyAg
ICBtb2R1bGVzIG9yIGNsYXNzZXMgY2FuIHVzZSB0aGUgcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo
Zml4dHVyZW5hbWUpCisgICAgbWFya2VyLiAgVGVzdCBmdW5jdGlvbnMgY2FuIGRpcmVjdGx5IHVz
ZSBmaXh0dXJlIG5hbWVzIGFzIGlucHV0CisgICAgYXJndW1lbnRzIGluIHdoaWNoIGNhc2UgdGhl
IGZpeHR1cmUgaW5zdGFuY2UgcmV0dXJuZWQgZnJvbSB0aGUgZml4dHVyZQorICAgIGZ1bmN0aW9u
IHdpbGwgYmUgaW5qZWN0ZWQuCisKKyAgICA6YXJnIHNjb3BlOiB0aGUgc2NvcGUgZm9yIHdoaWNo
IHRoaXMgZml4dHVyZSBpcyBzaGFyZWQsIG9uZSBvZgorICAgICAgICAgICAgICAgICJmdW5jdGlv
biIgKGRlZmF1bHQpLCAiY2xhc3MiLCAibW9kdWxlIiBvciAic2Vzc2lvbiIuCisKKyAgICA6YXJn
IHBhcmFtczogYW4gb3B0aW9uYWwgbGlzdCBvZiBwYXJhbWV0ZXJzIHdoaWNoIHdpbGwgY2F1c2Ug
bXVsdGlwbGUKKyAgICAgICAgICAgICAgICBpbnZvY2F0aW9ucyBvZiB0aGUgZml4dHVyZSBmdW5j
dGlvbiBhbmQgYWxsIG9mIHRoZSB0ZXN0cworICAgICAgICAgICAgICAgIHVzaW5nIGl0LgorCisg
ICAgOmFyZyBhdXRvdXNlOiBpZiBUcnVlLCB0aGUgZml4dHVyZSBmdW5jIGlzIGFjdGl2YXRlZCBm
b3IgYWxsIHRlc3RzIHRoYXQKKyAgICAgICAgICAgICAgICBjYW4gc2VlIGl0LiAgSWYgRmFsc2Ug
KHRoZSBkZWZhdWx0KSB0aGVuIGFuIGV4cGxpY2l0CisgICAgICAgICAgICAgICAgcmVmZXJlbmNl
IGlzIG5lZWRlZCB0byBhY3RpdmF0ZSB0aGUgZml4dHVyZS4KKworICAgIDphcmcgaWRzOiBsaXN0
IG9mIHN0cmluZyBpZHMgZWFjaCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbXMKKyAgICAgICAg
ICAgICAgICBzbyB0aGF0IHRoZXkgYXJlIHBhcnQgb2YgdGhlIHRlc3QgaWQuIElmIG5vIGlkcyBh
cmUgcHJvdmlkZWQKKyAgICAgICAgICAgICAgICB0aGV5IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9t
YXRpY2FsbHkgZnJvbSB0aGUgcGFyYW1zLgorCisgICAgOmFyZyBuYW1lOiB0aGUgbmFtZSBvZiB0
aGUgZml4dHVyZS4gVGhpcyBkZWZhdWx0cyB0byB0aGUgbmFtZSBvZiB0aGUKKyAgICAgICAgICAg
ICAgICBkZWNvcmF0ZWQgZnVuY3Rpb24uIElmIGEgZml4dHVyZSBpcyB1c2VkIGluIHRoZSBzYW1l
IG1vZHVsZSBpbgorICAgICAgICAgICAgICAgIHdoaWNoIGl0IGlzIGRlZmluZWQsIHRoZSBmdW5j
dGlvbiBuYW1lIG9mIHRoZSBmaXh0dXJlIHdpbGwgYmUKKyAgICAgICAgICAgICAgICBzaGFkb3dl
ZCBieSB0aGUgZnVuY3Rpb24gYXJnIHRoYXQgcmVxdWVzdHMgdGhlIGZpeHR1cmU7IG9uZSB3YXkK
KyAgICAgICAgICAgICAgICB0byByZXNvbHZlIHRoaXMgaXMgdG8gbmFtZSB0aGUgZGVjb3JhdGVk
IGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgYGBmaXh0dXJlXzxmaXh0dXJlbmFtZT5gYCBhbmQg
dGhlbiB1c2UKKyAgICAgICAgICAgICAgICBgYEBweXRlc3QuZml4dHVyZShuYW1lPSc8Zml4dHVy
ZW5hbWU+JylgYC4KKworICAgIEZpeHR1cmVzIGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgdGhlaXIg
dmFsdWVzIHRvIHRlc3QgZnVuY3Rpb25zIHVzaW5nIGEgYGB5aWVsZGBgIHN0YXRlbWVudCwKKyAg
ICBpbnN0ZWFkIG9mIGBgcmV0dXJuYGAuIEluIHRoaXMgY2FzZSwgdGhlIGNvZGUgYmxvY2sgYWZ0
ZXIgdGhlIGBgeWllbGRgYCBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQKKyAgICBhcyB0ZWFyZG93biBj
b2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIHRlc3Qgb3V0Y29tZS4gQSBmaXh0dXJlIGZ1bmN0aW9uIG11
c3QgeWllbGQgZXhhY3RseSBvbmNlLgorICAgICIiIgorICAgIGlmIGNhbGxhYmxlKHNjb3BlKSBh
bmQgcGFyYW1zIGlzIE5vbmUgYW5kIGF1dG91c2UgaXMgRmFsc2U6CisgICAgICAgICMgZGlyZWN0
IGRlY29yYXRpb24KKyAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcigKKyAgICAg
ICAgICAgICJmdW5jdGlvbiIsIHBhcmFtcywgYXV0b3VzZSwgbmFtZT1uYW1lKShzY29wZSkKKyAg
ICBpZiBwYXJhbXMgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKHBhcmFtcywgKGxpc3Qs
IHR1cGxlKSk6CisgICAgICAgIHBhcmFtcyA9IGxpc3QocGFyYW1zKQorICAgIHJldHVybiBGaXh0
dXJlRnVuY3Rpb25NYXJrZXIoc2NvcGUsIHBhcmFtcywgYXV0b3VzZSwgaWRzPWlkcywgbmFtZT1u
YW1lKQorCisKK2RlZiB5aWVsZF9maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1Ob25l
LCBhdXRvdXNlPUZhbHNlLCBpZHM9Tm9uZSwgbmFtZT1Ob25lKToKKyAgICAiIiIgKHJldHVybiBh
KSBkZWNvcmF0b3IgdG8gbWFyayBhIHlpZWxkLWZpeHR1cmUgZmFjdG9yeSBmdW5jdGlvbi4KKwor
ICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjAKKyAgICAgICAgVXNlIDpweTpmdW5jOmBweXRlc3QuZml4
dHVyZWAgZGlyZWN0bHkgaW5zdGVhZC4KKyAgICAiIiIKKyAgICBpZiBjYWxsYWJsZShzY29wZSkg
YW5kIHBhcmFtcyBpcyBOb25lIGFuZCBub3QgYXV0b3VzZToKKyAgICAgICAgIyBkaXJlY3QgZGVj
b3JhdGlvbgorICAgICAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9uTWFya2VyKAorICAgICAgICAg
ICAgImZ1bmN0aW9uIiwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9aWRzLCBuYW1lPW5hbWUpKHNjb3Bl
KQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBGaXh0dXJlRnVuY3Rpb25NYXJrZXIoc2NvcGUs
IHBhcmFtcywgYXV0b3VzZSwgaWRzPWlkcywgbmFtZT1uYW1lKQorCisKK2RlZmF1bHRmdW5jYXJn
cHJlZml4bWFya2VyID0gZml4dHVyZSgpCisKKworQGZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQor
ZGVmIHB5dGVzdGNvbmZpZyhyZXF1ZXN0KToKKyAgICAiIiIgdGhlIHB5dGVzdCBjb25maWcgb2Jq
ZWN0IHdpdGggYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBvcHRzLiIiIgorICAgIHJldHVybiByZXF1
ZXN0LmNvbmZpZworCisKK2NsYXNzIEZpeHR1cmVNYW5hZ2VyOgorICAgICIiIgorICAgIHB5dGVz
dCBmaXh0dXJlcyBkZWZpbml0aW9ucyBhbmQgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGFuZCBtYW5h
Z2VkCisgICAgZnJvbSB0aGlzIGNsYXNzLgorCisgICAgRHVyaW5nIGNvbGxlY3Rpb24gZm0ucGFy
c2VmYWN0b3JpZXMoKSBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gcGFyc2UKKyAgICBmaXh0
dXJlIGZ1bmN0aW9uIGRlZmluaXRpb25zIGludG8gRml4dHVyZURlZiBvYmplY3RzIGFuZCBpbnRl
cm5hbAorICAgIGRhdGEgc3RydWN0dXJlcy4KKworICAgIER1cmluZyBjb2xsZWN0aW9uIG9mIHRl
c3QgZnVuY3Rpb25zLCBtZXRhZnVuYy1tZWNoYW5pY3MgaW5zdGFudGlhdGUKKyAgICBhIEZ1bmNG
aXh0dXJlSW5mbyBvYmplY3Qgd2hpY2ggaXMgY2FjaGVkIHBlciBub2RlL2Z1bmMtbmFtZS4KKyAg
ICBUaGlzIEZ1bmNGaXh0dXJlSW5mbyBvYmplY3QgaXMgbGF0ZXIgcmV0cmlldmVkIGJ5IEZ1bmN0
aW9uIG5vZGVzCisgICAgd2hpY2ggdGhlbXNlbHZlcyBvZmZlciBhIGZpeHR1cmVuYW1lcyBhdHRy
aWJ1dGUuCisKKyAgICBUaGUgRnVuY0ZpeHR1cmVJbmZvIG9iamVjdCBob2xkcyBpbmZvcm1hdGlv
biBhYm91dCBmaXh0dXJlcyBhbmQgRml4dHVyZURlZnMKKyAgICByZWxldmFudCBmb3IgYSBwYXJ0
aWN1bGFyIGZ1bmN0aW9uLiAgQW4gaW5pdGlhbCBsaXN0IG9mIGZpeHR1cmVzIGlzCisgICAgYXNz
ZW1ibGVkIGxpa2UgdGhpczoKKworICAgIC0gaW5pLWRlZmluZWQgdXNlZml4dHVyZXMKKyAgICAt
IGF1dG91c2UtbWFya2VkIGZpeHR1cmVzIGFsb25nIHRoZSBjb2xsZWN0aW9uIGNoYWluIHVwIGZy
b20gdGhlIGZ1bmN0aW9uCisgICAgLSB1c2VmaXh0dXJlcyBtYXJrZXJzIGF0IG1vZHVsZS9jbGFz
cy9mdW5jdGlvbiBsZXZlbAorICAgIC0gdGVzdCBmdW5jdGlvbiBmdW5jYXJncworCisgICAgU3Vi
c2VxdWVudGx5IHRoZSBmdW5jZml4dHVyZWluZm8uZml4dHVyZW5hbWVzIGF0dHJpYnV0ZSBpcyBj
b21wdXRlZAorICAgIGFzIHRoZSBjbG9zdXJlIG9mIHRoZSBmaXh0dXJlcyBuZWVkZWQgdG8gc2V0
dXAgdGhlIGluaXRpYWwgZml4dHVyZXMsCisgICAgaS4gZS4gZml4dHVyZXMgbmVlZGVkIGJ5IGZp
eHR1cmUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJlIGFwcGVuZGVkCisgICAgdG8gdGhlIGZpeHR1
cmVuYW1lcyBsaXN0LgorCisgICAgVXBvbiB0aGUgdGVzdC1zZXR1cCBwaGFzZXMgYWxsIGZpeHR1
cmVuYW1lcyBhcmUgaW5zdGFudGlhdGVkLCByZXRyaWV2ZWQKKyAgICBieSBhIGxvb2t1cCBvZiB0
aGVpciBGdW5jRml4dHVyZUluZm8uCisgICAgIiIiCisKKyAgICBfYXJncHJlZml4ID0gInB5dGVz
dF9mdW5jYXJnX18iCisgICAgRml4dHVyZUxvb2t1cEVycm9yID0gRml4dHVyZUxvb2t1cEVycm9y
CisgICAgRml4dHVyZUxvb2t1cEVycm9yUmVwciA9IEZpeHR1cmVMb29rdXBFcnJvclJlcHIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbgorICAgICAgICBzZWxmLmNvbmZpZyA9IHNlc3Npb24uY29uZmlnCisgICAgICAgIHNl
bGYuX2FyZzJmaXh0dXJlZGVmcyA9IHt9CisgICAgICAgIHNlbGYuX2hvbGRlcm9ianNlZW4gPSBz
ZXQoKQorICAgICAgICBzZWxmLl9hcmcyZmluaXNoID0ge30KKyAgICAgICAgc2VsZi5fbm9kZWlk
X2FuZF9hdXRvdXNlbmFtZXMgPSBbKCIiLCBzZWxmLmNvbmZpZy5nZXRpbmkoInVzZWZpeHR1cmVz
IikpXQorICAgICAgICBzZXNzaW9uLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYs
ICJmdW5jbWFuYWdlIikKKworICAgIGRlZiBnZXRmaXh0dXJlaW5mbyhzZWxmLCBub2RlLCBmdW5j
LCBjbHMsIGZ1bmNhcmdzPVRydWUpOgorICAgICAgICBpZiBmdW5jYXJncyBhbmQgbm90IGhhc2F0
dHIobm9kZSwgIm5vZnVuY2FyZ3MiKToKKyAgICAgICAgICAgIGFyZ25hbWVzID0gZ2V0ZnVuY2Fy
Z25hbWVzKGZ1bmMsIGNscz1jbHMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmduYW1l
cyA9ICgpCisgICAgICAgIHVzZWZpeHR1cmVzID0gZ2V0YXR0cihmdW5jLCAidXNlZml4dHVyZXMi
LCBOb25lKQorICAgICAgICBpbml0aWFsbmFtZXMgPSBhcmduYW1lcworICAgICAgICBpZiB1c2Vm
aXh0dXJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGluaXRpYWxuYW1lcyA9IHVzZWZpeHR1
cmVzLmFyZ3MgKyBpbml0aWFsbmFtZXMKKyAgICAgICAgZm0gPSBub2RlLnNlc3Npb24uX2ZpeHR1
cmVtYW5hZ2VyCisgICAgICAgIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcyA9IGZtLmdl
dGZpeHR1cmVjbG9zdXJlKGluaXRpYWxuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSkKKyAgICAgICAgcmV0dXJu
IEZ1bmNGaXh0dXJlSW5mbyhhcmduYW1lcywgbmFtZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZz
KQorCisgICAgZGVmIHB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZChzZWxmLCBwbHVnaW4pOgorICAg
ICAgICBub2RlaWQgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHAgPSBweS5wYXRo
LmxvY2FsKHBsdWdpbi5fX2ZpbGVfXykKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor
ICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBjb25zdHJ1Y3Qg
dGhlIGJhc2Ugbm9kZWlkIHdoaWNoIGlzIGxhdGVyIHVzZWQgdG8gY2hlY2sKKyAgICAgICAgICAg
ICMgd2hhdCBmaXh0dXJlcyBhcmUgdmlzaWJsZSBmb3IgcGFydGljdWxhciB0ZXN0cyAoYXMgZGVu
b3RlZAorICAgICAgICAgICAgIyBieSB0aGVpciB0ZXN0IGlkKQorICAgICAgICAgICAgaWYgcC5i
YXNlbmFtZS5zdGFydHN3aXRoKCJjb25mdGVzdC5weSIpOgorICAgICAgICAgICAgICAgIG5vZGVp
ZCA9IHAuZGlycGF0aCgpLnJlbHRvKHNlbGYuY29uZmlnLnJvb3RkaXIpCisgICAgICAgICAgICAg
ICAgaWYgcC5zZXAgIT0gbm9kZXMuU0VQOgorICAgICAgICAgICAgICAgICAgICBub2RlaWQgPSBu
b2RlaWQucmVwbGFjZShwLnNlcCwgbm9kZXMuU0VQKQorICAgICAgICBzZWxmLnBhcnNlZmFjdG9y
aWVzKHBsdWdpbiwgbm9kZWlkKQorCisgICAgZGVmIF9nZXRhdXRvdXNlbmFtZXMoc2VsZiwgbm9k
ZWlkKToKKyAgICAgICAgIiIiIHJldHVybiBhIHR1cGxlIG9mIGZpeHR1cmUgbmFtZXMgdG8gYmUg
dXNlZC4gIiIiCisgICAgICAgIGF1dG91c2VuYW1lcyA9IFtdCisgICAgICAgIGZvciBiYXNlaWQs
IGJhc2VuYW1lcyBpbiBzZWxmLl9ub2RlaWRfYW5kX2F1dG91c2VuYW1lczoKKyAgICAgICAgICAg
IGlmIG5vZGVpZC5zdGFydHN3aXRoKGJhc2VpZCk6CisgICAgICAgICAgICAgICAgaWYgYmFzZWlk
OgorICAgICAgICAgICAgICAgICAgICBpID0gbGVuKGJhc2VpZCkKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dGNoYXIgPSBub2RlaWRbaTppICsgMV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbmV4
dGNoYXIgYW5kIG5leHRjaGFyIG5vdCBpbiAiOi8iOgorICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgICAgICBhdXRvdXNlbmFtZXMuZXh0ZW5kKGJhc2VuYW1lcykK
KyAgICAgICAgIyBtYWtlIHN1cmUgYXV0b3VzZW5hbWVzIGFyZSBzb3J0ZWQgYnkgc2NvcGUsIHNj
b3BlbnVtIDAgaXMgc2Vzc2lvbgorICAgICAgICBhdXRvdXNlbmFtZXMuc29ydCgKKyAgICAgICAg
ICAgIGtleT1sYW1iZGEgeDogc2VsZi5fYXJnMmZpeHR1cmVkZWZzW3hdWy0xXS5zY29wZW51bSkK
KyAgICAgICAgcmV0dXJuIGF1dG91c2VuYW1lcworCisgICAgZGVmIGdldGZpeHR1cmVjbG9zdXJl
KHNlbGYsIGZpeHR1cmVuYW1lcywgcGFyZW50bm9kZSk6CisgICAgICAgICMgY29sbGVjdCB0aGUg
Y2xvc3VyZSBvZiBhbGwgZml4dHVyZXMgLCBzdGFydGluZyB3aXRoIHRoZSBnaXZlbgorICAgICAg
ICAjIGZpeHR1cmVuYW1lcyBhcyB0aGUgaW5pdGlhbCBzZXQuICBBcyB3ZSBoYXZlIHRvIHZpc2l0
IGFsbAorICAgICAgICAjIGZhY3RvcnkgZGVmaW5pdGlvbnMgYW55d2F5LCB3ZSBhbHNvIHJldHVy
biBhIGFyZzJmaXh0dXJlZGVmcworICAgICAgICAjIG1hcHBpbmcgc28gdGhhdCB0aGUgY2FsbGVy
IGNhbiByZXVzZSBpdCBhbmQgZG9lcyBub3QgaGF2ZQorICAgICAgICAjIHRvIHJlLWRpc2NvdmVy
IGZpeHR1cmVkZWZzIGFnYWluIGZvciBlYWNoIGZpeHR1cmVuYW1lCisgICAgICAgICMgKGRpc2Nv
dmVyaW5nIG1hdGNoaW5nIGZpeHR1cmVzIGZvciBhIGdpdmVuIG5hbWUvbm9kZSBpcyBleHBlbnNp
dmUpCisKKyAgICAgICAgcGFyZW50aWQgPSBwYXJlbnRub2RlLm5vZGVpZAorICAgICAgICBmaXh0
dXJlbmFtZXNfY2xvc3VyZSA9IHNlbGYuX2dldGF1dG91c2VuYW1lcyhwYXJlbnRpZCkKKworICAg
ICAgICBkZWYgbWVyZ2Uob3RoZXJsaXN0KToKKyAgICAgICAgICAgIGZvciBhcmcgaW4gb3RoZXJs
aXN0OgorICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZml4dHVyZW5hbWVzX2Nsb3N1cmU6
CisgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVuYW1lc19jbG9zdXJlLmFwcGVuZChhcmcpCisK
KyAgICAgICAgbWVyZ2UoZml4dHVyZW5hbWVzKQorICAgICAgICBhcmcyZml4dHVyZWRlZnMgPSB7
fQorICAgICAgICBsYXN0bGVuID0gLTEKKyAgICAgICAgd2hpbGUgbGFzdGxlbiAhPSBsZW4oZml4
dHVyZW5hbWVzX2Nsb3N1cmUpOgorICAgICAgICAgICAgbGFzdGxlbiA9IGxlbihmaXh0dXJlbmFt
ZXNfY2xvc3VyZSkKKyAgICAgICAgICAgIGZvciBhcmduYW1lIGluIGZpeHR1cmVuYW1lc19jbG9z
dXJlOgorICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUgaW4gYXJnMmZpeHR1cmVkZWZzOgorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGZpeHR1cmVkZWZzID0g
c2VsZi5nZXRmaXh0dXJlZGVmcyhhcmduYW1lLCBwYXJlbnRpZCkKKyAgICAgICAgICAgICAgICBp
ZiBmaXh0dXJlZGVmczoKKyAgICAgICAgICAgICAgICAgICAgYXJnMmZpeHR1cmVkZWZzW2FyZ25h
bWVdID0gZml4dHVyZWRlZnMKKyAgICAgICAgICAgICAgICAgICAgbWVyZ2UoZml4dHVyZWRlZnNb
LTFdLmFyZ25hbWVzKQorICAgICAgICByZXR1cm4gZml4dHVyZW5hbWVzX2Nsb3N1cmUsIGFyZzJm
aXh0dXJlZGVmcworCisgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhzZWxmLCBtZXRhZnVu
Yyk6CisgICAgICAgIGZvciBhcmduYW1lIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoKKyAgICAg
ICAgICAgIGZhY2xpc3QgPSBtZXRhZnVuYy5fYXJnMmZpeHR1cmVkZWZzLmdldChhcmduYW1lKQor
ICAgICAgICAgICAgaWYgZmFjbGlzdDoKKyAgICAgICAgICAgICAgICBmaXh0dXJlZGVmID0gZmFj
bGlzdFstMV0KKyAgICAgICAgICAgICAgICBpZiBmaXh0dXJlZGVmLnBhcmFtcyBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1ldHJpemVfZnVuYyA9IGdldGF0dHIobWV0YWZ1
bmMuZnVuY3Rpb24sICdwYXJhbWV0cml6ZScsIE5vbmUpCisgICAgICAgICAgICAgICAgICAgIGZ1
bmNfcGFyYW1zID0gZ2V0YXR0cihwYXJhbWV0cml6ZV9mdW5jLCAnYXJncycsIFtbTm9uZV1dKQor
ICAgICAgICAgICAgICAgICAgICBmdW5jX2t3YXJncyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVu
YywgJ2t3YXJncycsIHt9KQorICAgICAgICAgICAgICAgICAgICAjIHNraXAgZGlyZWN0bHkgcGFy
YW1ldHJpemVkIGFyZ3VtZW50cworICAgICAgICAgICAgICAgICAgICBpZiAiYXJnbmFtZXMiIGlu
IGZ1bmNfa3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMgPSBwYXJhbWV0
cml6ZV9mdW5jLmt3YXJnc1siYXJnbmFtZXMiXQorICAgICAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMgPSBmdW5jX3BhcmFtc1swXQorICAgICAg
ICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmduYW1lcywgKHR1cGxlLCBsaXN0KSk6
CisgICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1lcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4g
YXJnbmFtZXMuc3BsaXQoIiwiKSBpZiB4LnN0cmlwKCldCisgICAgICAgICAgICAgICAgICAgIGlm
IGFyZ25hbWUgbm90IGluIGZ1bmNfcGFyYW1zIGFuZCBhcmduYW1lIG5vdCBpbiBhcmduYW1lczoK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKGFyZ25hbWUsIGZp
eHR1cmVkZWYucGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5kaXJlY3Q9VHJ1ZSwgc2NvcGU9Zml4dHVyZWRlZi5zY29wZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcz1maXh0dXJlZGVmLmlkcykKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29udGludWUgICMgd2lsbCByYWlzZSBG
aXh0dXJlTG9va3VwRXJyb3IgYXQgc2V0dXAgdGltZQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0
aW9uX21vZGlmeWl0ZW1zKHNlbGYsIGl0ZW1zKToKKyAgICAgICAgIyBzZXBhcmF0ZSBwYXJhbWV0
cml6ZWQgc2V0dXBzCisgICAgICAgIGl0ZW1zWzpdID0gcmVvcmRlcl9pdGVtcyhpdGVtcykKKwor
ICAgIGRlZiBwYXJzZWZhY3RvcmllcyhzZWxmLCBub2RlX29yX29iaiwgbm9kZWlkPU5PVFNFVCwg
dW5pdHRlc3Q9RmFsc2UpOgorICAgICAgICBpZiBub2RlaWQgaXMgbm90IE5PVFNFVDoKKyAgICAg
ICAgICAgIGhvbGRlcm9iaiA9IG5vZGVfb3Jfb2JqCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBob2xkZXJvYmogPSBub2RlX29yX29iai5vYmoKKyAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVf
b3Jfb2JqLm5vZGVpZAorICAgICAgICBpZiBob2xkZXJvYmogaW4gc2VsZi5faG9sZGVyb2Jqc2Vl
bjoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9ob2xkZXJvYmpzZWVuLmFkZCho
b2xkZXJvYmopCisgICAgICAgIGF1dG91c2VuYW1lcyA9IFtdCisgICAgICAgIGZvciBuYW1lIGlu
IGRpcihob2xkZXJvYmopOgorICAgICAgICAgICAgIyBUaGUgYXR0cmlidXRlIGNhbiBiZSBhbiBh
cmJpdHJhcnkgZGVzY3JpcHRvciwgc28gdGhlIGF0dHJpYnV0ZQorICAgICAgICAgICAgIyBhY2Nl
c3MgYmVsb3cgY2FuIHJhaXNlLiBzYWZlX2dldGF0dCgpIGlnbm9yZXMgc3VjaCBleGNlcHRpb25z
LgorICAgICAgICAgICAgb2JqID0gc2FmZV9nZXRhdHRyKGhvbGRlcm9iaiwgbmFtZSwgTm9uZSkK
KyAgICAgICAgICAgICMgZml4dHVyZSBmdW5jdGlvbnMgaGF2ZSBhIHB5dGVzdF9mdW5jYXJnX18g
cHJlZml4IChwcmUtMi4zIHN0eWxlKQorICAgICAgICAgICAgIyBvciBhcmUgIkBweXRlc3QuZml4
dHVyZSIgbWFya2VkCisgICAgICAgICAgICBtYXJrZXIgPSBnZXRmaXh0dXJlbWFya2VyKG9iaikK
KyAgICAgICAgICAgIGlmIG1hcmtlciBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIG5vdCBu
YW1lLnN0YXJ0c3dpdGgoc2VsZi5fYXJncHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgICAgICBpZiBub3QgY2FsbGFibGUob2JqKToKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBtYXJrZXIgPSBkZWZhdWx0ZnVuY2Fy
Z3ByZWZpeG1hcmtlcgorICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVj
YXRlZAorICAgICAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oJ0MxJywgZGVwcmVjYXRlZC5G
VU5DQVJHX1BSRUZJWC5mb3JtYXQobmFtZT1uYW1lKSwgbm9kZWlkPW5vZGVpZCkKKyAgICAgICAg
ICAgICAgICBuYW1lID0gbmFtZVtsZW4oc2VsZi5fYXJncHJlZml4KTpdCisgICAgICAgICAgICBl
bGlmIG5vdCBpc2luc3RhbmNlKG1hcmtlciwgRml4dHVyZUZ1bmN0aW9uTWFya2VyKToKKyAgICAg
ICAgICAgICAgICAjIG1hZ2ljIGdsb2JhbHMgIHdpdGggX19nZXRhdHRyX18gbWlnaHQgaGF2ZSBn
b3QgdXMgYSB3cm9uZworICAgICAgICAgICAgICAgICMgZml4dHVyZSBhdHRyaWJ1dGUKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBp
ZiBtYXJrZXIubmFtZToKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG1hcmtlci5uYW1lCisg
ICAgICAgICAgICAgICAgbXNnID0gJ2ZpeHR1cmVzIGNhbm5vdCBoYXZlICJweXRlc3RfZnVuY2Fy
Z19fIiBwcmVmaXggJyBcCisgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBiZSBkZWNvcmF0ZWQg
d2l0aCBAcHl0ZXN0LmZpeHR1cmU6XG4lcycgJSBuYW1lCisgICAgICAgICAgICAgICAgYXNzZXJ0
IG5vdCBuYW1lLnN0YXJ0c3dpdGgoc2VsZi5fYXJncHJlZml4KSwgbXNnCisKKyAgICAgICAgICAg
IGZpeHR1cmVfZGVmID0gRml4dHVyZURlZihzZWxmLCBub2RlaWQsIG5hbWUsIG9iaiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXIuc2NvcGUsIG1hcmtlci5wYXJh
bXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3Q9dW5pdHRl
c3QsIGlkcz1tYXJrZXIuaWRzKQorCisgICAgICAgICAgICBmYWNsaXN0ID0gc2VsZi5fYXJnMmZp
eHR1cmVkZWZzLnNldGRlZmF1bHQobmFtZSwgW10pCisgICAgICAgICAgICBpZiBmaXh0dXJlX2Rl
Zi5oYXNfbG9jYXRpb246CisgICAgICAgICAgICAgICAgZmFjbGlzdC5hcHBlbmQoZml4dHVyZV9k
ZWYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgZml4dHVyZWRlZnMgd2l0
aCBubyBsb2NhdGlvbiBhcmUgYXQgdGhlIGZyb250CisgICAgICAgICAgICAgICAgIyBzbyB0aGlz
IGluc2VydHMgdGhlIGN1cnJlbnQgZml4dHVyZWRlZiBhZnRlciB0aGUKKyAgICAgICAgICAgICAg
ICAjIGV4aXN0aW5nIGZpeHR1cmVkZWZzIGZyb20gZXh0ZXJuYWwgcGx1Z2lucyBidXQKKyAgICAg
ICAgICAgICAgICAjIGJlZm9yZSB0aGUgZml4dHVyZWRlZnMgcHJvdmlkZWQgaW4gY29uZnRlc3Rz
LgorICAgICAgICAgICAgICAgIGkgPSBsZW4oW2YgZm9yIGYgaW4gZmFjbGlzdCBpZiBub3QgZi5o
YXNfbG9jYXRpb25dKQorICAgICAgICAgICAgICAgIGZhY2xpc3QuaW5zZXJ0KGksIGZpeHR1cmVf
ZGVmKQorICAgICAgICAgICAgaWYgbWFya2VyLmF1dG91c2U6CisgICAgICAgICAgICAgICAgYXV0
b3VzZW5hbWVzLmFwcGVuZChuYW1lKQorCisgICAgICAgIGlmIGF1dG91c2VuYW1lczoKKyAgICAg
ICAgICAgIHNlbGYuX25vZGVpZF9hbmRfYXV0b3VzZW5hbWVzLmFwcGVuZCgobm9kZWlkIG9yICcn
LCBhdXRvdXNlbmFtZXMpKQorCisgICAgZGVmIGdldGZpeHR1cmVkZWZzKHNlbGYsIGFyZ25hbWUs
IG5vZGVpZCk6CisgICAgICAgICIiIgorICAgICAgICBHZXRzIGEgbGlzdCBvZiBmaXh0dXJlcyB3
aGljaCBhcmUgYXBwbGljYWJsZSB0byB0aGUgZ2l2ZW4gbm9kZSBpZC4KKworICAgICAgICA6cGFy
YW0gc3RyIGFyZ25hbWU6IG5hbWUgb2YgdGhlIGZpeHR1cmUgdG8gc2VhcmNoIGZvcgorICAgICAg
ICA6cGFyYW0gc3RyIG5vZGVpZDogZnVsbCBub2RlIGlkIG9mIHRoZSByZXF1ZXN0aW5nIHRlc3Qu
CisgICAgICAgIDpyZXR1cm46IGxpc3RbRml4dHVyZURlZl0KKyAgICAgICAgIiIiCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGZpeHR1cmVkZWZzID0gc2VsZi5fYXJnMmZpeHR1cmVkZWZzW2Fy
Z25hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gdHVwbGUoc2VsZi5fbWF0Y2hmYWN0
b3JpZXMoZml4dHVyZWRlZnMsIG5vZGVpZCkpCisKKyAgICBkZWYgX21hdGNoZmFjdG9yaWVzKHNl
bGYsIGZpeHR1cmVkZWZzLCBub2RlaWQpOgorICAgICAgICBmb3IgZml4dHVyZWRlZiBpbiBmaXh0
dXJlZGVmczoKKyAgICAgICAgICAgIGlmIG5vZGVzLmlzY2hpbGRub2RlKGZpeHR1cmVkZWYuYmFz
ZWlkLCBub2RlaWQpOgorICAgICAgICAgICAgICAgIHlpZWxkIGZpeHR1cmVkZWYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MTQ3YTg4MjUwYTM1NTNjODVj
NDRiMTgyODIzZTU0MmI5Zjc0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CkBAIC0wLDAgKzEsNDMgQEAKKyIiIgorUHJvdmlkZXMgYSBm
dW5jdGlvbiB0byByZXBvcnQgYWxsIGludGVybmFsIG1vZHVsZXMgZm9yIHVzaW5nIGZyZWV6aW5n
IHRvb2xzCitweXRlc3QKKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCisKK2RlZiBmcmVlemVfaW5jbHVkZXMoKToK
KyAgICAiIiIKKyAgICBSZXR1cm5zIGEgbGlzdCBvZiBtb2R1bGUgbmFtZXMgdXNlZCBieSBweS50
ZXN0IHRoYXQgc2hvdWxkIGJlCisgICAgaW5jbHVkZWQgYnkgY3hfZnJlZXplLgorICAgICIiIgor
ICAgIGltcG9ydCBweQorICAgIGltcG9ydCBfcHl0ZXN0CisgICAgcmVzdWx0ID0gbGlzdChfaXRl
cl9hbGxfbW9kdWxlcyhweSkpCisgICAgcmVzdWx0ICs9IGxpc3QoX2l0ZXJfYWxsX21vZHVsZXMo
X3B5dGVzdCkpCisgICAgcmV0dXJuIHJlc3VsdAorCisKK2RlZiBfaXRlcl9hbGxfbW9kdWxlcyhw
YWNrYWdlLCBwcmVmaXg9JycpOgorICAgICIiIgorICAgIEl0ZXJhdGVzIG92ZXIgdGhlIG5hbWVz
IG9mIGFsbCBtb2R1bGVzIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBnaXZlbgorICAgIHBhY2th
Z2UsIHJlY3Vyc2l2ZWx5LgorICAgIEV4YW1wbGU6CisgICAgICAgIF9pdGVyX2FsbF9tb2R1bGVz
KF9weXRlc3QpIC0+CisgICAgICAgICAgICBbJ19weXRlc3QuYXNzZXJ0aW9uLm5ld2ludGVycHJl
dCcsCisgICAgICAgICAgICAgJ19weXRlc3QuY2FwdHVyZScsCisgICAgICAgICAgICAgJ19weXRl
c3QuY29yZScsCisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBdCisgICAgIiIiCisgICAg
aW1wb3J0IG9zCisgICAgaW1wb3J0IHBrZ3V0aWwKKyAgICBpZiB0eXBlKHBhY2thZ2UpIGlzIG5v
dCBzdHI6CisgICAgICAgIHBhdGgsIHByZWZpeCA9IHBhY2thZ2UuX19wYXRoX19bMF0sIHBhY2th
Z2UuX19uYW1lX18gKyAnLicKKyAgICBlbHNlOgorICAgICAgICBwYXRoID0gcGFja2FnZQorICAg
IGZvciBfLCBuYW1lLCBpc19wYWNrYWdlIGluIHBrZ3V0aWwuaXRlcl9tb2R1bGVzKFtwYXRoXSk6
CisgICAgICAgIGlmIGlzX3BhY2thZ2U6CisgICAgICAgICAgICBmb3IgbSBpbiBfaXRlcl9hbGxf
bW9kdWxlcyhvcy5wYXRoLmpvaW4ocGF0aCwgbmFtZSksIHByZWZpeD1uYW1lICsgJy4nKToKKyAg
ICAgICAgICAgICAgICB5aWVsZCBwcmVmaXggKyBtCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICB5aWVsZCBwcmVmaXggKyBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hl
bHBjb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTc0NDYzN2Y4NjYwZjI3MmM0ODhhMmFiMGM2OGVlNGU4NTcxOGJiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZpZy5weQpAQCAtMCwwICsxLDE4NCBA
QAorIiIiIHZlcnNpb24gaW5mbywgaGVscCBtZXNzYWdlcywgdHJhY2luZyBjb25maWd1cmF0aW9u
LiAgIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0
LmNvbmZpZyBpbXBvcnQgUHJpbnRIZWxwCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2Zyb20gYXJn
cGFyc2UgaW1wb3J0IEFjdGlvbgorCisKK2NsYXNzIEhlbHBBY3Rpb24oQWN0aW9uKToKKyAgICAi
IiJUaGlzIGlzIGFuIGFyZ3BhcnNlIEFjdGlvbiB0aGF0IHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9u
IGluCisgICAgb3JkZXIgdG8gc2tpcCB0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnQgcGFyc2luZyB3
aGVuIC0taGVscCBpcyBwYXNzZWQuCisgICAgVGhpcyBwcmV2ZW50cyBhcmdwYXJzZSBmcm9tIHF1
aXR0aW5nIGR1ZSB0byBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50cworICAgIHdoZW4gYW55IGFy
ZSBkZWZpbmVkLCBmb3IgZXhhbXBsZSBieSBgYHB5dGVzdF9hZGRvcHRpb25gYC4KKyAgICBUaGlz
IGlzIHNpbWlsYXIgdG8gdGhlIHdheSB0aGF0IHRoZSBidWlsdGluIGFyZ3BhcnNlIC0taGVscCBv
cHRpb24gaXMKKyAgICBpbXBsZW1lbnRlZCBieSByYWlzaW5nIFN5c3RlbUV4aXQuCisgICAgIiIi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgb3B0aW9uX3N0cmlu
Z3MsCisgICAgICAgICAgICAgICAgIGRlc3Q9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZGVmYXVs
dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgaGVscD1Ob25lKToKKyAgICAgICAgc3VwZXIoSGVs
cEFjdGlvbiwgc2VsZikuX19pbml0X18oCisgICAgICAgICAgICBvcHRpb25fc3RyaW5ncz1vcHRp
b25fc3RyaW5ncywKKyAgICAgICAgICAgIGRlc3Q9ZGVzdCwKKyAgICAgICAgICAgIGNvbnN0PVRy
dWUsCisgICAgICAgICAgICBkZWZhdWx0PWRlZmF1bHQsCisgICAgICAgICAgICBuYXJncz0wLAor
ICAgICAgICAgICAgaGVscD1oZWxwKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhcnNlciwg
bmFtZXNwYWNlLCB2YWx1ZXMsIG9wdGlvbl9zdHJpbmc9Tm9uZSk6CisgICAgICAgIHNldGF0dHIo
bmFtZXNwYWNlLCBzZWxmLmRlc3QsIHNlbGYuY29uc3QpCisKKyAgICAgICAgIyBXZSBzaG91bGQg
b25seSBza2lwIHRoZSByZXN0IG9mIHRoZSBwYXJzaW5nIGFmdGVyIHByZXBhcnNlIGlzIGRvbmUK
KyAgICAgICAgaWYgZ2V0YXR0cihwYXJzZXIuX3BhcnNlciwgJ2FmdGVyX3ByZXBhcnNlJywgRmFs
c2UpOgorICAgICAgICAgICAgcmFpc2UgUHJpbnRIZWxwCisKKworZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgnZGVidWdjb25maWcnKQor
ICAgIGdyb3VwLmFkZG9wdGlvbignLS12ZXJzaW9uJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAg
ICAgICAgICAgICAgICAgICAgaGVscD0iZGlzcGxheSBweXRlc3QgbGliIHZlcnNpb24gYW5kIGlt
cG9ydCBpbmZvcm1hdGlvbi4iKQorICAgIGdyb3VwLl9hZGRvcHRpb24oIi1oIiwgIi0taGVscCIs
IGFjdGlvbj1IZWxwQWN0aW9uLCBkZXN0PSJoZWxwIiwKKyAgICAgICAgICAgICAgICAgICAgIGhl
bHA9InNob3cgaGVscCBtZXNzYWdlIGFuZCBjb25maWd1cmF0aW9uIGluZm8iKQorICAgIGdyb3Vw
Ll9hZGRvcHRpb24oJy1wJywgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJwbHVnaW5zIiwgZGVmYXVs
dD1bXSwKKyAgICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9Im5hbWUiLAorICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iZWFybHktbG9hZCBnaXZlbiBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLiAi
CisgICAgICAgICAgICAgICAgICAgICAiVG8gYXZvaWQgbG9hZGluZyBvZiBwbHVnaW5zLCB1c2Ug
dGhlIGBubzpgIHByZWZpeCwgZS5nLiAiCisgICAgICAgICAgICAgICAgICAgICAiYG5vOmRvY3Rl
c3RgLiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLXRyYWNlY29uZmlnJywgJy0tdHJhY2UtY29u
ZmlnJywKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0idHJhY2UgY29uc2lkZXJhdGlvbnMgb2Yg
Y29uZnRlc3QucHkgZmlsZXMuIiksCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWRlYnVnJywKKyAg
ICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iZGVidWciLCBkZWZh
dWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJzdG9yZSBpbnRlcm5hbCB0cmFj
aW5nIGRlYnVnIGluZm9ybWF0aW9uIGluICdweXRlc3RkZWJ1Zy5sb2cnLiIpCisgICAgZ3JvdXAu
X2FkZG9wdGlvbigKKyAgICAgICAgJy1vJywgJy0tb3ZlcnJpZGUtaW5pJywgbmFyZ3M9JyonLCBk
ZXN0PSJvdmVycmlkZV9pbmkiLAorICAgICAgICBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgIGhl
bHA9Im92ZXJyaWRlIGNvbmZpZyBvcHRpb24gd2l0aCBvcHRpb249dmFsdWUgc3R5bGUsIGUuZy4g
YC1vIHhmYWlsX3N0cmljdD1UcnVlYC4iKQorCisKK0BweXRlc3QuaG9va2ltcGwoaG9va3dyYXBw
ZXI9VHJ1ZSkKK2RlZiBweXRlc3RfY21kbGluZV9wYXJzZSgpOgorICAgIG91dGNvbWUgPSB5aWVs
ZAorICAgIGNvbmZpZyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgaWYgY29uZmlnLm9wdGlv
bi5kZWJ1ZzoKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aCgicHl0ZXN0ZGVidWcubG9n
IikKKyAgICAgICAgZGVidWdmaWxlID0gb3BlbihwYXRoLCAndycpCisgICAgICAgIGRlYnVnZmls
ZS53cml0ZSgidmVyc2lvbnMgcHl0ZXN0LSVzLCBweS0lcywgIgorICAgICAgICAgICAgICAgICAg
ICAgICAgInB5dGhvbi0lc1xuY3dkPSVzXG5hcmdzPSVzXG5cbiIgJSAoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLiIuam9pbihtYXAoc3RyLCBzeXMudmVyc2lvbl9pbmZv
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuZ2V0Y3dkKCksIGNvbmZpZy5fb3Jp
Z2FyZ3MpKQorICAgICAgICBjb25maWcudHJhY2Uucm9vdC5zZXR3cml0ZXIoZGVidWdmaWxlLndy
aXRlKQorICAgICAgICB1bmRvX3RyYWNpbmcgPSBjb25maWcucGx1Z2lubWFuYWdlci5lbmFibGVf
dHJhY2luZygpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndyaXRpbmcgcHl0ZXN0ZGVidWcg
aW5mb3JtYXRpb24gdG8gJXNcbiIgJSBwYXRoKQorCisgICAgICAgIGRlZiB1bnNldF90cmFjaW5n
KCk6CisgICAgICAgICAgICBkZWJ1Z2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgid3JvdGUgcHl0ZXN0ZGVidWcgaW5mb3JtYXRpb24gdG8gJXNcbiIgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2ZpbGUubmFtZSkKKyAgICAgICAgICAgIGNvbmZp
Zy50cmFjZS5yb290LnNldHdyaXRlcihOb25lKQorICAgICAgICAgICAgdW5kb190cmFjaW5nKCkK
KworICAgICAgICBjb25maWcuYWRkX2NsZWFudXAodW5zZXRfdHJhY2luZykKKworCitkZWYgcHl0
ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgorICAgIGlmIGNvbmZpZy5vcHRpb24udmVyc2lvbjoK
KyAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9fKQorICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJUaGlzIGlzIHB5dGVzdCB2ZXJzaW9uICVzLCBpbXBvcnRlZCBmcm9tICVz
XG4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBwKSkK
KyAgICAgICAgcGx1Z2luaW5mbyA9IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZykKKyAgICAg
ICAgaWYgcGx1Z2luaW5mbzoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHBsdWdpbmluZm86Cisg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShsaW5lICsgIlxuIikKKyAgICAgICAgcmV0
dXJuIDAKKyAgICBlbGlmIGNvbmZpZy5vcHRpb24uaGVscDoKKyAgICAgICAgY29uZmlnLl9kb19j
b25maWd1cmUoKQorICAgICAgICBzaG93aGVscChjb25maWcpCisgICAgICAgIGNvbmZpZy5fZW5z
dXJlX3VuY29uZmlndXJlKCkKKyAgICAgICAgcmV0dXJuIDAKKworCitkZWYgc2hvd2hlbHAoY29u
ZmlnKToKKyAgICByZXBvcnRlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oJ3Rl
cm1pbmFscmVwb3J0ZXInKQorICAgIHR3ID0gcmVwb3J0ZXIuX3R3CisgICAgdHcud3JpdGUoY29u
ZmlnLl9wYXJzZXIub3B0cGFyc2VyLmZvcm1hdF9oZWxwKCkpCisgICAgdHcubGluZSgpCisgICAg
dHcubGluZSgpCisgICAgdHcubGluZSgiW3B5dGVzdF0gaW5pLW9wdGlvbnMgaW4gdGhlIGZpcnN0
ICIKKyAgICAgICAgICAgICJweXRlc3QuaW5pfHRveC5pbml8c2V0dXAuY2ZnIGZpbGUgZm91bmQ6
IikKKyAgICB0dy5saW5lKCkKKworICAgIGZvciBuYW1lIGluIGNvbmZpZy5fcGFyc2VyLl9pbmlu
YW1lczoKKyAgICAgICAgaGVscCwgdHlwZSwgZGVmYXVsdCA9IGNvbmZpZy5fcGFyc2VyLl9pbmlk
aWN0W25hbWVdCisgICAgICAgIGlmIHR5cGUgaXMgTm9uZToKKyAgICAgICAgICAgIHR5cGUgPSAi
c3RyaW5nIgorICAgICAgICBzcGVjID0gIiVzICglcykiICUgKG5hbWUsIHR5cGUpCisgICAgICAg
IGxpbmUgPSAiICAlLTI0cyAlcyIgJSAoc3BlYywgaGVscCkKKyAgICAgICAgdHcubGluZShsaW5l
Wzp0dy5mdWxsd2lkdGhdKQorCisgICAgdHcubGluZSgpCisgICAgdHcubGluZSgiZW52aXJvbm1l
bnQgdmFyaWFibGVzOiIpCisgICAgdmFycyA9IFsKKyAgICAgICAgKCJQWVRFU1RfQURET1BUUyIs
ICJleHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucyIpLAorICAgICAgICAoIlBZVEVTVF9QTFVHSU5T
IiwgImNvbW1hLXNlcGFyYXRlZCBwbHVnaW5zIHRvIGxvYWQgZHVyaW5nIHN0YXJ0dXAiKSwKKyAg
ICAgICAgKCJQWVRFU1RfREVCVUciLCAic2V0IHRvIGVuYWJsZSBkZWJ1ZyB0cmFjaW5nIG9mIHB5
dGVzdCdzIGludGVybmFscyIpCisgICAgXQorICAgIGZvciBuYW1lLCBoZWxwIGluIHZhcnM6Cisg
ICAgICAgIHR3LmxpbmUoIiAgJS0yNHMgJXMiICUgKG5hbWUsIGhlbHApKQorICAgIHR3LmxpbmUo
KQorICAgIHR3LmxpbmUoKQorCisgICAgdHcubGluZSgidG8gc2VlIGF2YWlsYWJsZSBtYXJrZXJz
IHR5cGU6IHB5dGVzdCAtLW1hcmtlcnMiKQorICAgIHR3LmxpbmUoInRvIHNlZSBhdmFpbGFibGUg
Zml4dHVyZXMgdHlwZTogcHl0ZXN0IC0tZml4dHVyZXMiKQorICAgIHR3LmxpbmUoIihzaG93biBh
Y2NvcmRpbmcgdG8gc3BlY2lmaWVkIGZpbGVfb3JfZGlyIG9yIGN1cnJlbnQgZGlyICIKKyAgICAg
ICAgICAgICJpZiBub3Qgc3BlY2lmaWVkKSIpCisKKyAgICBmb3Igd2FybmluZ3JlcG9ydCBpbiBy
ZXBvcnRlci5zdGF0cy5nZXQoJ3dhcm5pbmdzJywgW10pOgorICAgICAgICB0dy5saW5lKCJ3YXJu
aW5nIDogIiArIHdhcm5pbmdyZXBvcnQubWVzc2FnZSwgcmVkPVRydWUpCisgICAgcmV0dXJuCisK
KworY29uZnRlc3Rfb3B0aW9ucyA9IFsKKyAgICAoJ3B5dGVzdF9wbHVnaW5zJywgJ2xpc3Qgb2Yg
cGx1Z2luIG5hbWVzIHRvIGxvYWQnKSwKK10KKworCitkZWYgZ2V0cGx1Z2ludmVyc2lvbmluZm8o
Y29uZmlnKToKKyAgICBsaW5lcyA9IFtdCisgICAgcGx1Z2luaW5mbyA9IGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLmxpc3RfcGx1Z2luX2Rpc3RpbmZvKCkKKyAgICBpZiBwbHVnaW5pbmZvOgorICAgICAg
ICBsaW5lcy5hcHBlbmQoInNldHVwdG9vbHMgcmVnaXN0ZXJlZCBwbHVnaW5zOiIpCisgICAgICAg
IGZvciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5mbzoKKyAgICAgICAgICAgIGxvYyA9IGdldGF0
dHIocGx1Z2luLCAnX19maWxlX18nLCByZXByKHBsdWdpbikpCisgICAgICAgICAgICBjb250ZW50
ID0gIiVzLSVzIGF0ICVzIiAlIChkaXN0LnByb2plY3RfbmFtZSwgZGlzdC52ZXJzaW9uLCBsb2Mp
CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgIiArIGNvbnRlbnQpCisgICAgcmV0dXJuIGxp
bmVzCisKKworZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZyk6CisgICAgbGluZXMgPSBb
XQorICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWcgb3IgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZp
ZzoKKyAgICAgICAgbGluZXMuYXBwZW5kKCJ1c2luZzogcHl0ZXN0LSVzIHB5bGliLSVzIiAlCisg
ICAgICAgICAgICAgICAgICAgICAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXykp
CisKKyAgICAgICAgdmVyaW5mbyA9IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZykKKyAgICAg
ICAgaWYgdmVyaW5mbzoKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZCh2ZXJpbmZvKQorCisgICAg
aWYgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKKyAgICAgICAgbGluZXMuYXBwZW5kKCJhY3Rp
dmUgcGx1Z2luczoiKQorICAgICAgICBpdGVtcyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3Rf
bmFtZV9wbHVnaW4oKQorICAgICAgICBmb3IgbmFtZSwgcGx1Z2luIGluIGl0ZW1zOgorICAgICAg
ICAgICAgaWYgaGFzYXR0cihwbHVnaW4sICdfX2ZpbGVfXycpOgorICAgICAgICAgICAgICAgIHIg
PSBwbHVnaW4uX19maWxlX18KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgciA9
IHJlcHIocGx1Z2luKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgJS0yMHM6ICVzIiAl
IChuYW1lLCByKSkKKyAgICByZXR1cm4gbGluZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvaG9va3NwZWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ0MGJmOTlkMzc1YWE2Yzc1ZWU3NDNmZTY5ZWNmNzk3MDIyMzIyY2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5CkBAIC0wLDAgKzEsNDIz
IEBACisiIiIgaG9vayBzcGVjaWZpY2F0aW9ucyBmb3IgcHl0ZXN0IHBsdWdpbnMsIGludm9rZWQg
ZnJvbSBtYWluLnB5IGFuZCBidWlsdGluIHBsdWdpbnMuICAiIiIKKworZnJvbSBwbHVnZ3kgaW1w
b3J0IEhvb2tzcGVjTWFya2VyCisKK2hvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoInB5dGVzdCIp
CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBJbml0aWFsaXphdGlvbiBob29rcyBjYWxsZWQgZm9y
IGV2ZXJ5IHBsdWdpbgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworQGhvb2tzcGVjKGhpc3Rvcmlj
PVRydWUpCitkZWYgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpOgorICAgICIiImNhbGxl
ZCBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uIHRpbWUgdG8gYWxsb3cgYWRkaW5nIG5ldyBob29rcyB2
aWEgYSBjYWxsIHRvCisgICAgcGx1Z2lubWFuYWdlci5hZGRfaG9va3NwZWNzKG1vZHVsZV9vcl9j
bGFzcywgcHJlZml4KS4iIiIKKworCitAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKK2RlZiBweXRl
c3RfbmFtZXNwYWNlKCk6CisgICAgIiIiCisgICAgREVQUkVDQVRFRDogdGhpcyBob29rIGNhdXNl
cyBkaXJlY3QgbW9ua2V5cGF0Y2hpbmcgb24gcHl0ZXN0LCBpdHMgdXNlIGlzIHN0cm9uZ2x5IGRp
c2NvdXJhZ2VkCisgICAgcmV0dXJuIGRpY3Qgb2YgbmFtZS0+b2JqZWN0IHRvIGJlIG1hZGUgZ2xv
YmFsbHkgYXZhaWxhYmxlIGluCisgICAgdGhlIHB5dGVzdCBuYW1lc3BhY2UuICBUaGlzIGhvb2sg
aXMgY2FsbGVkIGF0IHBsdWdpbiByZWdpc3RyYXRpb24KKyAgICB0aW1lLgorICAgICIiIgorCisK
K0Bob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorZGVmIHB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZChw
bHVnaW4sIG1hbmFnZXIpOgorICAgICIiIiBhIG5ldyBweXRlc3QgcGx1Z2luIGdvdCByZWdpc3Rl
cmVkLiAiIiIKKworCitAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKK2RlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6CisgICAgIiIicmVnaXN0ZXIgYXJncGFyc2Utc3R5bGUgb3B0aW9ucyBhbmQg
aW5pLXN0eWxlIGNvbmZpZyB2YWx1ZXMsCisgICAgY2FsbGVkIG9uY2UgYXQgdGhlIGJlZ2lubmlu
ZyBvZiBhIHRlc3QgcnVuLgorCisgICAgLi4gbm90ZTo6CisKKyAgICAgICAgVGhpcyBmdW5jdGlv
biBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb25seSBpbiBwbHVnaW5zIG9yIGBgY29uZnRlc3QucHlg
YAorICAgICAgICBmaWxlcyBzaXR1YXRlZCBhdCB0aGUgdGVzdHMgcm9vdCBkaXJlY3RvcnkgZHVl
IHRvIGhvdyBweXRlc3QKKyAgICAgICAgOnJlZjpgZGlzY292ZXJzIHBsdWdpbnMgZHVyaW5nIHN0
YXJ0dXAgPHBsdWdpbm9yZGVyPmAuCisKKyAgICA6YXJnIHBhcnNlcjogVG8gYWRkIGNvbW1hbmQg
bGluZSBvcHRpb25zLCBjYWxsCisgICAgICAgIDpweTpmdW5jOmBwYXJzZXIuYWRkb3B0aW9uKC4u
LikgPF9weXRlc3QuY29uZmlnLlBhcnNlci5hZGRvcHRpb24+YC4KKyAgICAgICAgVG8gYWRkIGlu
aS1maWxlIHZhbHVlcyBjYWxsIDpweTpmdW5jOmBwYXJzZXIuYWRkaW5pKC4uLikKKyAgICAgICAg
PF9weXRlc3QuY29uZmlnLlBhcnNlci5hZGRpbmk+YC4KKworICAgIE9wdGlvbnMgY2FuIGxhdGVy
IGJlIGFjY2Vzc2VkIHRocm91Z2ggdGhlCisgICAgOnB5OmNsYXNzOmBjb25maWcgPF9weXRlc3Qu
Y29uZmlnLkNvbmZpZz5gIG9iamVjdCwgcmVzcGVjdGl2ZWx5OgorCisgICAgLSA6cHk6ZnVuYzpg
Y29uZmlnLmdldG9wdGlvbihuYW1lKSA8X3B5dGVzdC5jb25maWcuQ29uZmlnLmdldG9wdGlvbj5g
IHRvCisgICAgICByZXRyaWV2ZSB0aGUgdmFsdWUgb2YgYSBjb21tYW5kIGxpbmUgb3B0aW9uLgor
CisgICAgLSA6cHk6ZnVuYzpgY29uZmlnLmdldGluaShuYW1lKSA8X3B5dGVzdC5jb25maWcuQ29u
ZmlnLmdldGluaT5gIHRvIHJldHJpZXZlCisgICAgICBhIHZhbHVlIHJlYWQgZnJvbSBhbiBpbmkt
c3R5bGUgZmlsZS4KKworICAgIFRoZSBjb25maWcgb2JqZWN0IGlzIHBhc3NlZCBhcm91bmQgb24g
bWFueSBpbnRlcm5hbCBvYmplY3RzIHZpYSB0aGUgYGAuY29uZmlnYGAKKyAgICBhdHRyaWJ1dGUg
b3IgY2FuIGJlIHJldHJpZXZlZCBhcyB0aGUgYGBweXRlc3Rjb25maWdgYCBmaXh0dXJlIG9yIGFj
Y2Vzc2VkCisgICAgdmlhIChkZXByZWNhdGVkKSBgYHB5dGVzdC5jb25maWdgYC4KKyAgICAiIiIK
KworCitAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgIiIiCisgICAgQWxsb3dzIHBsdWdpbnMgYW5kIGNvbmZ0ZXN0IGZpbGVzIHRvIHBl
cmZvcm0gaW5pdGlhbCBjb25maWd1cmF0aW9uLgorCisgICAgVGhpcyBob29rIGlzIGNhbGxlZCBm
b3IgZXZlcnkgcGx1Z2luIGFuZCBpbml0aWFsIGNvbmZ0ZXN0IGZpbGUKKyAgICBhZnRlciBjb21t
YW5kIGxpbmUgb3B0aW9ucyBoYXZlIGJlZW4gcGFyc2VkLgorCisgICAgQWZ0ZXIgdGhhdCwgdGhl
IGhvb2sgaXMgY2FsbGVkIGZvciBvdGhlciBjb25mdGVzdCBmaWxlcyBhcyB0aGV5IGFyZQorICAg
IGltcG9ydGVkLgorCisgICAgOmFyZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0CisgICAg
OnR5cGUgY29uZmlnOiBfcHl0ZXN0LmNvbmZpZy5Db25maWcKKyAgICAiIiIKKworIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisjIEJvb3RzdHJhcHBpbmcgaG9va3MgY2FsbGVkIGZvciBwbHVnaW5zIHJlZ2lz
dGVyZWQgZWFybHkgZW5vdWdoOgorIyBpbnRlcm5hbCBhbmQgM3JkIHBhcnR5IHBsdWdpbnMgYXMg
d2VsbCBhcyBkaXJlY3RseQorIyBkaXNjb3ZlcmFibGUgY29uZnRlc3QucHkgbG9jYWwgcGx1Z2lu
cy4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQor
ZGVmIHB5dGVzdF9jbWRsaW5lX3BhcnNlKHBsdWdpbm1hbmFnZXIsIGFyZ3MpOgorICAgICIiInJl
dHVybiBpbml0aWFsaXplZCBjb25maWcgb2JqZWN0LCBwYXJzaW5nIHRoZSBzcGVjaWZpZWQgYXJn
cy4KKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0
cmVzdWx0YCAiIiIKKworCitkZWYgcHl0ZXN0X2NtZGxpbmVfcHJlcGFyc2UoY29uZmlnLCBhcmdz
KToKKyAgICAiIiIoZGVwcmVjYXRlZCkgbW9kaWZ5IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYmVm
b3JlIG9wdGlvbiBwYXJzaW5nLiAiIiIKKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkK
K2RlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6CisgICAgIiIiIGNhbGxlZCBmb3IgcGVy
Zm9ybWluZyB0aGUgbWFpbiBjb21tYW5kIGxpbmUgYWN0aW9uLiBUaGUgZGVmYXVsdAorICAgIGlt
cGxlbWVudGF0aW9uIHdpbGwgaW52b2tlIHRoZSBjb25maWd1cmUgaG9va3MgYW5kIHJ1bnRlc3Rf
bWFpbmxvb3AuCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVm
OmBmaXJzdHJlc3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3Rz
KGVhcmx5X2NvbmZpZywgcGFyc2VyLCBhcmdzKToKKyAgICAiIiIgaW1wbGVtZW50cyB0aGUgbG9h
ZGluZyBvZiBpbml0aWFsIGNvbmZ0ZXN0IGZpbGVzIGFoZWFkCisgICAgb2YgY29tbWFuZCBsaW5l
IG9wdGlvbiBwYXJzaW5nLiAiIiIKKworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgY29sbGVjdGlv
biBob29rcworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVl
KQorZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Npb24pOgorICAgICIiIiBwZXJmb3JtIHRoZSBj
b2xsZWN0aW9uIHByb3RvY29sIGZvciB0aGUgZ2l2ZW4gc2Vzc2lvbi4KKworICAgIFN0b3BzIGF0
IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworCitk
ZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2Vzc2lvbiwgY29uZmlnLCBpdGVtcyk6
CisgICAgIiIiIGNhbGxlZCBhZnRlciBjb2xsZWN0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZCwgbWF5
IGZpbHRlciBvciByZS1vcmRlcgorICAgIHRoZSBpdGVtcyBpbi1wbGFjZS4iIiIKKworCitkZWYg
cHl0ZXN0X2NvbGxlY3Rpb25fZmluaXNoKHNlc3Npb24pOgorICAgICIiIiBjYWxsZWQgYWZ0ZXIg
Y29sbGVjdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQgYW5kIG1vZGlmaWVkLiAiIiIKKworCitAaG9v
a3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwg
Y29uZmlnKToKKyAgICAiIiIgcmV0dXJuIFRydWUgdG8gcHJldmVudCBjb25zaWRlcmluZyB0aGlz
IHBhdGggZm9yIGNvbGxlY3Rpb24uCisgICAgVGhpcyBob29rIGlzIGNvbnN1bHRlZCBmb3IgYWxs
IGZpbGVzIGFuZCBkaXJlY3RvcmllcyBwcmlvciB0byBjYWxsaW5nCisgICAgbW9yZSBzcGVjaWZp
YyBob29rcy4KKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6
YGZpcnN0cmVzdWx0YAorICAgICIiIgorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQor
ZGVmIHB5dGVzdF9jb2xsZWN0X2RpcmVjdG9yeShwYXRoLCBwYXJlbnQpOgorICAgICIiIiBjYWxs
ZWQgYmVmb3JlIHRyYXZlcnNpbmcgYSBkaXJlY3RvcnkgZm9yIGNvbGxlY3Rpb24gZmlsZXMuCisK
KyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3Vs
dGAgIiIiCisKKworZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAi
IiIgcmV0dXJuIGNvbGxlY3Rpb24gTm9kZSBvciBOb25lIGZvciB0aGUgZ2l2ZW4gcGF0aC4gQW55
IG5ldyBub2RlCisgICAgbmVlZHMgdG8gaGF2ZSB0aGUgc3BlY2lmaWVkIGBgcGFyZW50YGAgYXMg
YSBwYXJlbnQuIiIiCisKKyMgbG9nZ2luZyBob29rcyBmb3IgY29sbGVjdGlvbgorCisKK2RlZiBw
eXRlc3RfY29sbGVjdHN0YXJ0KGNvbGxlY3Rvcik6CisgICAgIiIiIGNvbGxlY3RvciBzdGFydHMg
Y29sbGVjdGluZy4gIiIiCisKKworZGVmIHB5dGVzdF9pdGVtY29sbGVjdGVkKGl0ZW0pOgorICAg
ICIiIiB3ZSBqdXN0IGNvbGxlY3RlZCBhIHRlc3QgaXRlbS4gIiIiCisKKworZGVmIHB5dGVzdF9j
b2xsZWN0cmVwb3J0KHJlcG9ydCk6CisgICAgIiIiIGNvbGxlY3RvciBmaW5pc2hlZCBjb2xsZWN0
aW5nLiAiIiIKKworCitkZWYgcHl0ZXN0X2Rlc2VsZWN0ZWQoaXRlbXMpOgorICAgICIiIiBjYWxs
ZWQgZm9yIHRlc3QgaXRlbXMgZGVzZWxlY3RlZCBieSBrZXl3b3JkLiAiIiIKKworCitAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xs
ZWN0b3IpOgorICAgICIiIiBwZXJmb3JtIGBgY29sbGVjdG9yLmNvbGxlY3QoKWBgIGFuZCByZXR1
cm4gYSBDb2xsZWN0UmVwb3J0LgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0
LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUHl0
aG9uIHRlc3QgZnVuY3Rpb24gcmVsYXRlZCBob29rcworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKwor
QGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9k
dWxlKHBhdGgsIHBhcmVudCk6CisgICAgIiIiIHJldHVybiBhIE1vZHVsZSBjb2xsZWN0b3Igb3Ig
Tm9uZSBmb3IgdGhlIGdpdmVuIHBhdGguCisgICAgVGhpcyBob29rIHdpbGwgYmUgY2FsbGVkIGZv
ciBlYWNoIG1hdGNoaW5nIHRlc3QgbW9kdWxlIHBhdGguCisgICAgVGhlIHB5dGVzdF9jb2xsZWN0
X2ZpbGUgaG9vayBuZWVkcyB0byBiZSB1c2VkIGlmIHlvdSB3YW50IHRvCisgICAgY3JlYXRlIHRl
c3QgbW9kdWxlcyBmb3IgZmlsZXMgdGhhdCBkbyBub3QgbWF0Y2ggYXMgYSB0ZXN0IG1vZHVsZS4K
KworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVz
dWx0YCAiIiIKKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcHlj
b2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToKKyAgICAiIiIgcmV0dXJuIGN1
c3RvbSBpdGVtL2NvbGxlY3RvciBmb3IgYSBweXRob24gb2JqZWN0IGluIGEgbW9kdWxlLCBvciBO
b25lLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmly
c3RyZXN1bHRgICIiIgorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5dGVz
dF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtKToKKyAgICAiIiIgY2FsbCB1bmRlcmx5aW5nIHRlc3Qg
ZnVuY3Rpb24uCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVm
OmBmaXJzdHJlc3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVu
Yyk6CisgICAgIiIiIGdlbmVyYXRlIChtdWx0aXBsZSkgcGFyYW1ldHJpemVkIGNhbGxzIHRvIGEg
dGVzdCBmdW5jdGlvbi4iIiIKKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBw
eXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChjb25maWcsIHZhbCwgYXJnbmFtZSk6CisgICAgIiIi
UmV0dXJuIGEgdXNlci1mcmllbmRseSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVu
IGBgdmFsYGAgdGhhdCB3aWxsIGJlIHVzZWQKKyAgICBieSBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUgY2FsbHMuIFJldHVybiBOb25lIGlmIHRoZSBob29rIGRvZXNuJ3Qga25vdyBhYm91dCBgYHZh
bGBgLgorICAgIFRoZSBwYXJhbWV0ZXIgbmFtZSBpcyBhdmFpbGFibGUgYXMgYGBhcmduYW1lYGAs
IGlmIHJlcXVpcmVkLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUg
OnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZ2VuZXJpYyBy
dW50ZXN0IHJlbGF0ZWQgaG9va3MKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK0Bob29rc3BlYyhm
aXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uKToKKyAgICAi
IiIgY2FsbGVkIGZvciBwZXJmb3JtaW5nIHRoZSBtYWluIHJ1bnRlc3QgbG9vcAorICAgIChhZnRl
ciBjb2xsZWN0aW9uIGZpbmlzaGVkKS4KKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJl
c3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworCitkZWYgcHl0ZXN0X2l0ZW1zdGFy
dChpdGVtLCBub2RlKToKKyAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBweXRlc3RfcnVudGVzdF9s
b2dzdGFydCkuICIiIgorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5dGVz
dF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0sIG5leHRpdGVtKToKKyAgICAiIiIgaW1wbGVtZW50cyB0
aGUgcnVudGVzdF9zZXR1cC9jYWxsL3RlYXJkb3duIHByb3RvY29sIGZvcgorICAgIHRoZSBnaXZl
biB0ZXN0IGl0ZW0sIGluY2x1ZGluZyBjYXB0dXJpbmcgZXhjZXB0aW9ucyBhbmQgY2FsbGluZwor
ICAgIHJlcG9ydGluZyBob29rcy4KKworICAgIDphcmcgaXRlbTogdGVzdCBpdGVtIGZvciB3aGlj
aCB0aGUgcnVudGVzdCBwcm90b2NvbCBpcyBwZXJmb3JtZWQuCisKKyAgICA6YXJnIG5leHRpdGVt
OiB0aGUgc2NoZWR1bGVkLXRvLWJlLW5leHQgdGVzdCBpdGVtIChvciBOb25lIGlmIHRoaXMKKyAg
ICAgICAgICAgICAgICAgICBpcyB0aGUgZW5kIG15IGZyaWVuZCkuICBUaGlzIGFyZ3VtZW50IGlz
IHBhc3NlZCBvbiB0bworICAgICAgICAgICAgICAgICAgIDpweTpmdW5jOmBweXRlc3RfcnVudGVz
dF90ZWFyZG93bmAuCisKKyAgICA6cmV0dXJuIGJvb2xlYW46IFRydWUgaWYgbm8gZnVydGhlciBo
b29rIGltcGxlbWVudGF0aW9ucyBzaG91bGQgYmUgaW52b2tlZC4KKworCisgICAgU3RvcHMgYXQg
Zmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisKK2Rl
ZiBweXRlc3RfcnVudGVzdF9sb2dzdGFydChub2RlaWQsIGxvY2F0aW9uKToKKyAgICAiIiIgc2ln
bmFsIHRoZSBzdGFydCBvZiBydW5uaW5nIGEgc2luZ2xlIHRlc3QgaXRlbS4gIiIiCisKKworZGVm
IHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICIiIiBjYWxsZWQgYmVmb3JlIGBgcHl0
ZXN0X3J1bnRlc3RfY2FsbChpdGVtKWBgLiAiIiIKKworCitkZWYgcHl0ZXN0X3J1bnRlc3RfY2Fs
bChpdGVtKToKKyAgICAiIiIgY2FsbGVkIHRvIGV4ZWN1dGUgdGhlIHRlc3QgYGBpdGVtYGAuICIi
IgorCisKK2RlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtLCBuZXh0aXRlbSk6CisgICAg
IiIiIGNhbGxlZCBhZnRlciBgYHB5dGVzdF9ydW50ZXN0X2NhbGxgYC4KKworICAgIDphcmcgbmV4
dGl0ZW06IHRoZSBzY2hlZHVsZWQtdG8tYmUtbmV4dCB0ZXN0IGl0ZW0gKE5vbmUgaWYgbm8gZnVy
dGhlcgorICAgICAgICAgICAgICAgICAgIHRlc3QgaXRlbSBpcyBzY2hlZHVsZWQpLiAgVGhpcyBh
cmd1bWVudCBjYW4gYmUgdXNlZCB0bworICAgICAgICAgICAgICAgICAgIHBlcmZvcm0gZXhhY3Qg
dGVhcmRvd25zLCBpLmUuIGNhbGxpbmcganVzdCBlbm91Z2ggZmluYWxpemVycworICAgICAgICAg
ICAgICAgICAgIHNvIHRoYXQgbmV4dGl0ZW0gb25seSBuZWVkcyB0byBjYWxsIHNldHVwLWZ1bmN0
aW9ucy4KKyAgICAiIiIKKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRl
c3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgICIiIiByZXR1cm4gYSA6cHk6
Y2xhc3M6YF9weXRlc3QucnVubmVyLlRlc3RSZXBvcnRgIG9iamVjdAorICAgIGZvciB0aGUgZ2l2
ZW4gOnB5OmNsYXNzOmBweXRlc3QuSXRlbSA8X3B5dGVzdC5tYWluLkl0ZW0+YCBhbmQKKyAgICA6
cHk6Y2xhc3M6YF9weXRlc3QucnVubmVyLkNhbGxJbmZvYC4KKworICAgIFN0b3BzIGF0IGZpcnN0
IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworCitkZWYgcHl0
ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9ydCk6CisgICAgIiIiIHByb2Nlc3MgYSB0ZXN0IHNl
dHVwL2NhbGwvdGVhcmRvd24gcmVwb3J0IHJlbGF0aW5nIHRvCisgICAgdGhlIHJlc3BlY3RpdmUg
cGhhc2Ugb2YgZXhlY3V0aW5nIGEgdGVzdC4gIiIiCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBG
aXh0dXJlIHJlbGF0ZWQgaG9va3MKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK0Bob29rc3BlYyhm
aXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJl
cXVlc3QpOgorICAgICIiIiBwZXJmb3JtcyBmaXh0dXJlIHNldHVwIGV4ZWN1dGlvbi4KKworICAg
IFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAi
IiIKKworCitkZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZiwgcmVx
dWVzdCk6CisgICAgIiIiIGNhbGxlZCBhZnRlciBmaXh0dXJlIHRlYXJkb3duLCBidXQgYmVmb3Jl
IHRoZSBjYWNoZSBpcyBjbGVhcmVkIHNvCisgICAgdGhlIGZpeHR1cmUgcmVzdWx0IGNhY2hlIGBg
Zml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0YGAgY2FuCisgICAgc3RpbGwgYmUgYWNjZXNzZWQuIiIi
CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyB0ZXN0IHNlc3Npb24gcmVsYXRlZCBob29rcworIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKworZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbik6Cisg
ICAgIiIiIGJlZm9yZSBzZXNzaW9uLm1haW4oKSBpcyBjYWxsZWQuICIiIgorCisKK2RlZiBweXRl
c3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uLCBleGl0c3RhdHVzKToKKyAgICAiIiIgd2hvbGUgdGVz
dCBydW4gZmluaXNoZXMuICIiIgorCisKK2RlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToK
KyAgICAiIiIgY2FsbGVkIGJlZm9yZSB0ZXN0IHByb2Nlc3MgaXMgZXhpdGVkLiAgIiIiCisKKwor
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisjIGhvb2tzIGZvciBjdXN0b21pemluZyB0aGUgYXNzZXJ0IG1l
dGhvZHMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFy
ZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6CisgICAgIiIicmV0dXJuIGV4cGxhbmF0aW9uIGZv
ciBjb21wYXJpc29ucyBpbiBmYWlsaW5nIGFzc2VydCBleHByZXNzaW9ucy4KKworICAgIFJldHVy
biBOb25lIGZvciBubyBjdXN0b20gZXhwbGFuYXRpb24sIG90aGVyd2lzZSByZXR1cm4gYSBsaXN0
CisgICAgb2Ygc3RyaW5ncy4gIFRoZSBzdHJpbmdzIHdpbGwgYmUgam9pbmVkIGJ5IG5ld2xpbmVz
IGJ1dCBhbnkgbmV3bGluZXMKKyAgICAqaW4qIGEgc3RyaW5nIHdpbGwgYmUgZXNjYXBlZC4gIE5v
dGUgdGhhdCBhbGwgYnV0IHRoZSBmaXJzdCBsaW5lIHdpbGwKKyAgICBiZSBpbmRlbnRlZCBzbGln
aHRseSwgdGhlIGludGVudGlvbiBpcyBmb3IgdGhlIGZpcnN0IGxpbmUgdG8gYmUgYSBzdW1tYXJ5
LgorICAgICIiIgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgaG9va3MgZm9yIGluZmx1ZW5jaW5n
IHJlcG9ydGluZyAoaW52b2tlZCBmcm9tIF9weXRlc3RfdGVybWluYWwpCisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworCitkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnLCBzdGFydGRpcik6Cisg
ICAgIiIiIHJldHVybiBhIHN0cmluZyBvciBsaXN0IG9mIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVk
IGFzIGhlYWRlciBpbmZvIGZvciB0ZXJtaW5hbCByZXBvcnRpbmcuCisKKyAgICA6cGFyYW0gY29u
ZmlnOiB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QuCisgICAgOnBhcmFtIHN0YXJ0ZGlyOiBweS5w
YXRoIG9iamVjdCB3aXRoIHRoZSBzdGFydGluZyBkaXIKKworICAgIC4uIG5vdGU6OgorCisgICAg
ICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIG9ubHkgaW4gcGx1Z2lucyBv
ciBgYGNvbmZ0ZXN0LnB5YGAKKyAgICAgICAgZmlsZXMgc2l0dWF0ZWQgYXQgdGhlIHRlc3RzIHJv
b3QgZGlyZWN0b3J5IGR1ZSB0byBob3cgcHl0ZXN0CisgICAgICAgIDpyZWY6YGRpc2NvdmVycyBw
bHVnaW5zIGR1cmluZyBzdGFydHVwIDxwbHVnaW5vcmRlcj5gLgorICAgICIiIgorCisKK2RlZiBw
eXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2goY29uZmlnLCBzdGFydGRpciwgaXRlbXMpOgor
ICAgICIiIgorICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorCisgICAgcmV0dXJuIGEgc3RyaW5n
IG9yIGxpc3Qgb2Ygc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgYWZ0ZXIgY29sbGVjdGlvbiBoYXMg
ZmluaXNoZWQgc3VjY2Vzc2Z1bGx5LgorCisgICAgVGhpcyBzdHJpbmdzIHdpbGwgYmUgZGlzcGxh
eWVkIGFmdGVyIHRoZSBzdGFuZGFyZCAiY29sbGVjdGVkIFggaXRlbXMiIG1lc3NhZ2UuCisKKyAg
ICA6cGFyYW0gY29uZmlnOiB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QuCisgICAgOnBhcmFtIHN0
YXJ0ZGlyOiBweS5wYXRoIG9iamVjdCB3aXRoIHRoZSBzdGFydGluZyBkaXIKKyAgICA6cGFyYW0g
aXRlbXM6IGxpc3Qgb2YgcHl0ZXN0IGl0ZW1zIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGV4ZWN1dGVk
OyB0aGlzIGxpc3Qgc2hvdWxkIG5vdCBiZSBtb2RpZmllZC4KKyAgICAiIiIKKworCitAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0
KToKKyAgICAiIiIgcmV0dXJuIHJlc3VsdC1jYXRlZ29yeSwgc2hvcnRsZXR0ZXIgYW5kIHZlcmJv
c2Ugd29yZCBmb3IgcmVwb3J0aW5nLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVz
dWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisKK2RlZiBweXRlc3RfdGVybWluYWxf
c3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyLCBleGl0c3RhdHVzKToKKyAgICAiIiIgYWRkIGFkZGl0
aW9uYWwgc2VjdGlvbiBpbiB0ZXJtaW5hbCBzdW1tYXJ5IHJlcG9ydGluZy4gICIiIgorCisKK0Bo
b29rc3BlYyhoaXN0b3JpYz1UcnVlKQorZGVmIHB5dGVzdF9sb2d3YXJuaW5nKG1lc3NhZ2UsIGNv
ZGUsIG5vZGVpZCwgZnNsb2NhdGlvbik6CisgICAgIiIiIHByb2Nlc3MgYSB3YXJuaW5nIHNwZWNp
ZmllZCBieSBhIG1lc3NhZ2UsIGEgY29kZSBzdHJpbmcsCisgICAgYSBub2RlaWQgYW5kIGZzbG9j
YXRpb24gKGJvdGggb2Ygd2hpY2ggbWF5IGJlIE5vbmUKKyAgICBpZiB0aGUgd2FybmluZyBpcyBu
b3QgdGllZCB0byBhIHBhcnRpbGFyIG5vZGUvbG9jYXRpb24pLiIiIgorCisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyMgZG9jdGVzdCBob29rcworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworQGhvb2tzcGVj
KGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X2RvY3Rlc3RfcHJlcGFyZV9jb250ZW50KGNv
bnRlbnQpOgorICAgICIiIiByZXR1cm4gcHJvY2Vzc2VkIGNvbnRlbnQgZm9yIGEgZ2l2ZW4gZG9j
dGVzdAorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmly
c3RyZXN1bHRgICIiIgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZXJyb3IgaGFuZGxpbmcgYW5k
IGludGVybmFsIGRlYnVnZ2luZyBob29rcworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworZGVmIHB5
dGVzdF9pbnRlcm5hbGVycm9yKGV4Y3JlcHIsIGV4Y2luZm8pOgorICAgICIiIiBjYWxsZWQgZm9y
IGludGVybmFsIGVycm9ycy4gIiIiCisKKworZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQo
ZXhjaW5mbyk6CisgICAgIiIiIGNhbGxlZCBmb3Iga2V5Ym9hcmQgaW50ZXJydXB0LiAiIiIKKwor
CitkZWYgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdChub2RlLCBjYWxsLCByZXBvcnQpOgorICAg
ICIiImNhbGxlZCB3aGVuIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIHdoaWNoIGNhbiBwb3RlbnRp
YWxseSBiZQorICAgIGludGVyYWN0aXZlbHkgaGFuZGxlZC4KKworICAgIFRoaXMgaG9vayBpcyBv
bmx5IGNhbGxlZCBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZAorICAgIHRoYXQgaXMgbm90IGFu
IGludGVybmFsIGV4Y2VwdGlvbiBsaWtlIGBgc2tpcC5FeGNlcHRpb25gYC4KKyAgICAiIiIKKwor
CitkZWYgcHl0ZXN0X2VudGVyX3BkYihjb25maWcpOgorICAgICIiIiBjYWxsZWQgdXBvbiBwZGIu
c2V0X3RyYWNlKCksIGNhbiBiZSB1c2VkIGJ5IHBsdWdpbnMgdG8gdGFrZSBzcGVjaWFsCisgICAg
YWN0aW9uIGp1c3QgYmVmb3JlIHRoZSBweXRob24gZGVidWdnZXIgZW50ZXJzIGluIGludGVyYWN0
aXZlIG1vZGUuCisKKyAgICA6YXJnIGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QKKyAgICA6
dHlwZSBjb25maWc6IF9weXRlc3QuY29uZmlnLkNvbmZpZworICAgICIiIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9qdW5pdHhtbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVu
aXR4bWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZiNDBkYzM1NDg3NGYwMzY0ZGUwYzgzYWM5ZmY2NjFiY2E3
NzlmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkK
QEAgLTAsMCArMSw0NTMgQEAKKyIiIgorICAgIHJlcG9ydCB0ZXN0IHJlc3VsdHMgaW4gSlVuaXQt
WE1MIGZvcm1hdCwKKyAgICBmb3IgdXNlIHdpdGggSmVua2lucyBhbmQgYnVpbGQgaW50ZWdyYXRp
b24gc2VydmVycy4KKworCitCYXNlZCBvbiBpbml0aWFsIGNvZGUgZnJvbSBSb3NzIExhd2xleS4K
KworT3V0cHV0IGNvbmZvcm1zIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kveHVuaXQt
cGx1Z2luL2Jsb2IvbWFzdGVyLworc3JjL21haW4vcmVzb3VyY2VzL29yZy9qZW5raW5zY2kvcGx1
Z2lucy94dW5pdC90eXBlcy9tb2RlbC94c2QvanVuaXQtMTAueHNkCisiIiIKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKwor
aW1wb3J0IGZ1bmN0b29scworaW1wb3J0IHB5CitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0
IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQgbm9k
ZXMKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGZpbGVuYW1lX2FyZworCisjIFB5dGhvbiAy
LlggYW5kIDMuWCBjb21wYXRpYmlsaXR5CitpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKKyAg
ICBmcm9tIGNvZGVjcyBpbXBvcnQgb3BlbgorZWxzZToKKyAgICB1bmljaHIgPSBjaHIKKyAgICB1
bmljb2RlID0gc3RyCisgICAgbG9uZyA9IGludAorCisKK2NsYXNzIEp1bml0KHB5LnhtbC5OYW1l
c3BhY2UpOgorICAgIHBhc3MKKworCisjIFdlIG5lZWQgdG8gZ2V0IHRoZSBzdWJzZXQgb2YgdGhl
IGludmFsaWQgdW5pY29kZSByYW5nZXMgYWNjb3JkaW5nIHRvCisjIFhNTCAxLjAgd2hpY2ggYXJl
IHZhbGlkIGluIHRoaXMgcHl0aG9uIGJ1aWxkLiAgSGVuY2Ugd2UgY2FsY3VsYXRlCisjIHRoaXMg
ZHluYW1pY2FsbHkgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGl0LiAgVGhlIHNwZWMgcmFuZ2Ugb2Yg
dmFsaWQKKyMgY2hhcnMgaXM6IENoYXIgOjo9ICN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdG
Rl0gfCBbI3hFMDAwLSN4RkZGRF0KKyMgICAgICAgICAgICAgICAgICAgIHwgWyN4MTAwMDAtI3gx
MEZGRkZdCitfbGVnYWxfY2hhcnMgPSAoMHgwOSwgMHgwQSwgMHgwZCkKK19sZWdhbF9yYW5nZXMg
PSAoCisgICAgKDB4MjAsIDB4N0UpLCAoMHg4MCwgMHhEN0ZGKSwgKDB4RTAwMCwgMHhGRkZEKSwg
KDB4MTAwMDAsIDB4MTBGRkZGKSwKKykKK19sZWdhbF94bWxfcmUgPSBbCisgICAgdW5pY29kZSgi
JXMtJXMiKSAlICh1bmljaHIobG93KSwgdW5pY2hyKGhpZ2gpKQorICAgIGZvciAobG93LCBoaWdo
KSBpbiBfbGVnYWxfcmFuZ2VzIGlmIGxvdyA8IHN5cy5tYXh1bmljb2RlCitdCitfbGVnYWxfeG1s
X3JlID0gW3VuaWNocih4KSBmb3IgeCBpbiBfbGVnYWxfY2hhcnNdICsgX2xlZ2FsX3htbF9yZQor
aWxsZWdhbF94bWxfcmUgPSByZS5jb21waWxlKHVuaWNvZGUoJ1teJXNdJykgJSB1bmljb2RlKCcn
KS5qb2luKF9sZWdhbF94bWxfcmUpKQorZGVsIF9sZWdhbF9jaGFycworZGVsIF9sZWdhbF9yYW5n
ZXMKK2RlbCBfbGVnYWxfeG1sX3JlCisKK19weV9leHRfcmUgPSByZS5jb21waWxlKHIiXC5weSQi
KQorCisKK2RlZiBiaW5feG1sX2VzY2FwZShhcmcpOgorICAgIGRlZiByZXBsKG1hdGNob2JqKToK
KyAgICAgICAgaSA9IG9yZChtYXRjaG9iai5ncm91cCgpKQorICAgICAgICBpZiBpIDw9IDB4RkY6
CisgICAgICAgICAgICByZXR1cm4gdW5pY29kZSgnI3glMDJYJykgJSBpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByZXR1cm4gdW5pY29kZSgnI3glMDRYJykgJSBpCisKKyAgICByZXR1cm4g
cHkueG1sLnJhdyhpbGxlZ2FsX3htbF9yZS5zdWIocmVwbCwgcHkueG1sLmVzY2FwZShhcmcpKSkK
KworCitjbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5vZGVpZCwgeG1sKToKKworICAgICAgICBzZWxmLmlkID0gbm9kZWlkCisgICAgICAgIHNlbGYu
eG1sID0geG1sCisgICAgICAgIHNlbGYuYWRkX3N0YXRzID0gc2VsZi54bWwuYWRkX3N0YXRzCisg
ICAgICAgIHNlbGYuZHVyYXRpb24gPSAwCisgICAgICAgIHNlbGYucHJvcGVydGllcyA9IFtdCisg
ICAgICAgIHNlbGYubm9kZXMgPSBbXQorICAgICAgICBzZWxmLnRlc3RjYXNlID0gTm9uZQorICAg
ICAgICBzZWxmLmF0dHJzID0ge30KKworICAgIGRlZiBhcHBlbmQoc2VsZiwgbm9kZSk6CisgICAg
ICAgIHNlbGYueG1sLmFkZF9zdGF0cyh0eXBlKG5vZGUpLl9fbmFtZV9fKQorICAgICAgICBzZWxm
Lm5vZGVzLmFwcGVuZChub2RlKQorCisgICAgZGVmIGFkZF9wcm9wZXJ0eShzZWxmLCBuYW1lLCB2
YWx1ZSk6CisgICAgICAgIHNlbGYucHJvcGVydGllcy5hcHBlbmQoKHN0cihuYW1lKSwgYmluX3ht
bF9lc2NhcGUodmFsdWUpKSkKKworICAgIGRlZiBtYWtlX3Byb3BlcnRpZXNfbm9kZShzZWxmKToK
KyAgICAgICAgIiIiUmV0dXJuIGEgSnVuaXQgbm9kZSBjb250YWluaW5nIGN1c3RvbSBwcm9wZXJ0
aWVzLCBpZiBhbnkuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnByb3BlcnRpZXM6Cisg
ICAgICAgICAgICByZXR1cm4gSnVuaXQucHJvcGVydGllcyhbCisgICAgICAgICAgICAgICAgSnVu
aXQucHJvcGVydHkobmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSkKKyAgICAgICAgICAgICAgICBmb3Ig
bmFtZSwgdmFsdWUgaW4gc2VsZi5wcm9wZXJ0aWVzCisgICAgICAgICAgICBdKQorICAgICAgICBy
ZXR1cm4gJycKKworICAgIGRlZiByZWNvcmRfdGVzdHJlcG9ydChzZWxmLCB0ZXN0cmVwb3J0KToK
KyAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLnRlc3RjYXNlCisgICAgICAgIG5hbWVzID0gbWFuZ2xl
X3Rlc3RfYWRkcmVzcyh0ZXN0cmVwb3J0Lm5vZGVpZCkKKyAgICAgICAgY2xhc3NuYW1lcyA9IG5h
bWVzWzotMV0KKyAgICAgICAgaWYgc2VsZi54bWwucHJlZml4OgorICAgICAgICAgICAgY2xhc3Nu
YW1lcy5pbnNlcnQoMCwgc2VsZi54bWwucHJlZml4KQorICAgICAgICBhdHRycyA9IHsKKyAgICAg
ICAgICAgICJjbGFzc25hbWUiOiAiLiIuam9pbihjbGFzc25hbWVzKSwKKyAgICAgICAgICAgICJu
YW1lIjogYmluX3htbF9lc2NhcGUobmFtZXNbLTFdKSwKKyAgICAgICAgICAgICJmaWxlIjogdGVz
dHJlcG9ydC5sb2NhdGlvblswXSwKKyAgICAgICAgfQorICAgICAgICBpZiB0ZXN0cmVwb3J0Lmxv
Y2F0aW9uWzFdIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXR0cnNbImxpbmUiXSA9IHRlc3Ry
ZXBvcnQubG9jYXRpb25bMV0KKyAgICAgICAgaWYgaGFzYXR0cih0ZXN0cmVwb3J0LCAidXJsIik6
CisgICAgICAgICAgICBhdHRyc1sidXJsIl0gPSB0ZXN0cmVwb3J0LnVybAorICAgICAgICBzZWxm
LmF0dHJzID0gYXR0cnMKKworICAgIGRlZiB0b194bWwoc2VsZik6CisgICAgICAgIHRlc3RjYXNl
ID0gSnVuaXQudGVzdGNhc2UodGltZT1zZWxmLmR1cmF0aW9uLCAqKnNlbGYuYXR0cnMpCisgICAg
ICAgIHRlc3RjYXNlLmFwcGVuZChzZWxmLm1ha2VfcHJvcGVydGllc19ub2RlKCkpCisgICAgICAg
IGZvciBub2RlIGluIHNlbGYubm9kZXM6CisgICAgICAgICAgICB0ZXN0Y2FzZS5hcHBlbmQobm9k
ZSkKKyAgICAgICAgcmV0dXJuIHRlc3RjYXNlCisKKyAgICBkZWYgX2FkZF9zaW1wbGUoc2VsZiwg
a2luZCwgbWVzc2FnZSwgZGF0YT1Ob25lKToKKyAgICAgICAgZGF0YSA9IGJpbl94bWxfZXNjYXBl
KGRhdGEpCisgICAgICAgIG5vZGUgPSBraW5kKGRhdGEsIG1lc3NhZ2U9bWVzc2FnZSkKKyAgICAg
ICAgc2VsZi5hcHBlbmQobm9kZSkKKworICAgIGRlZiB3cml0ZV9jYXB0dXJlZF9vdXRwdXQoc2Vs
ZiwgcmVwb3J0KToKKyAgICAgICAgZm9yIGNhcG5hbWUgaW4gKCdvdXQnLCAnZXJyJyk6CisgICAg
ICAgICAgICBjb250ZW50ID0gZ2V0YXR0cihyZXBvcnQsICdjYXBzdGQnICsgY2FwbmFtZSkKKyAg
ICAgICAgICAgIGlmIGNvbnRlbnQ6CisgICAgICAgICAgICAgICAgdGFnID0gZ2V0YXR0cihKdW5p
dCwgJ3N5c3RlbS0nICsgY2FwbmFtZSkKKyAgICAgICAgICAgICAgICBzZWxmLmFwcGVuZCh0YWco
YmluX3htbF9lc2NhcGUoY29udGVudCkpKQorCisgICAgZGVmIGFwcGVuZF9wYXNzKHNlbGYsIHJl
cG9ydCk6CisgICAgICAgIHNlbGYuYWRkX3N0YXRzKCdwYXNzZWQnKQorCisgICAgZGVmIGFwcGVu
ZF9mYWlsdXJlKHNlbGYsIHJlcG9ydCk6CisgICAgICAgICMgbXNnID0gc3RyKHJlcG9ydC5sb25n
cmVwci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSkKKyAgICAgICAgaWYgaGFzYXR0cihyZXBvcnQs
ICJ3YXN4ZmFpbCIpOgorICAgICAgICAgICAgc2VsZi5fYWRkX3NpbXBsZSgKKyAgICAgICAgICAg
ICAgICBKdW5pdC5za2lwcGVkLAorICAgICAgICAgICAgICAgICJ4ZmFpbC1tYXJrZWQgdGVzdCBw
YXNzZXMgdW5leHBlY3RlZGx5IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGhhc2F0
dHIocmVwb3J0LmxvbmdyZXByLCAicmVwcmNyYXNoIik6CisgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9IHJlcG9ydC5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAgICAgICAgICAgZWxpZiBp
c2luc3RhbmNlKHJlcG9ydC5sb25ncmVwciwgKHVuaWNvZGUsIHN0cikpOgorICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCisgICAgICAgICAgICBtZXNz
YWdlID0gYmluX3htbF9lc2NhcGUobWVzc2FnZSkKKyAgICAgICAgICAgIGZhaWwgPSBKdW5pdC5m
YWlsdXJlKG1lc3NhZ2U9bWVzc2FnZSkKKyAgICAgICAgICAgIGZhaWwuYXBwZW5kKGJpbl94bWxf
ZXNjYXBlKHJlcG9ydC5sb25ncmVwcikpCisgICAgICAgICAgICBzZWxmLmFwcGVuZChmYWlsKQor
CisgICAgZGVmIGFwcGVuZF9jb2xsZWN0X2Vycm9yKHNlbGYsIHJlcG9ydCk6CisgICAgICAgICMg
bXNnID0gc3RyKHJlcG9ydC5sb25ncmVwci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSkKKyAgICAg
ICAgc2VsZi5hcHBlbmQoSnVuaXQuZXJyb3IoYmluX3htbF9lc2NhcGUocmVwb3J0LmxvbmdyZXBy
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0iY29sbGVjdGlvbiBm
YWlsdXJlIikpCisKKyAgICBkZWYgYXBwZW5kX2NvbGxlY3Rfc2tpcHBlZChzZWxmLCByZXBvcnQp
OgorICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAorICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCwg
ImNvbGxlY3Rpb24gc2tpcHBlZCIsIHJlcG9ydC5sb25ncmVwcikKKworICAgIGRlZiBhcHBlbmRf
ZXJyb3Ioc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgZ2V0YXR0cihyZXBvcnQsICd3aGVuJywg
Tm9uZSkgPT0gJ3RlYXJkb3duJzoKKyAgICAgICAgICAgIG1zZyA9ICJ0ZXN0IHRlYXJkb3duIGZh
aWx1cmUiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtc2cgPSAidGVzdCBzZXR1cCBmYWls
dXJlIgorICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAorICAgICAgICAgICAgSnVuaXQuZXJyb3Is
IG1zZywgcmVwb3J0LmxvbmdyZXByKQorCisgICAgZGVmIGFwcGVuZF9za2lwcGVkKHNlbGYsIHJl
cG9ydCk6CisgICAgICAgIGlmIGhhc2F0dHIocmVwb3J0LCAid2FzeGZhaWwiKToKKyAgICAgICAg
ICAgIHNlbGYuX2FkZF9zaW1wbGUoCisgICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCwgImV4
cGVjdGVkIHRlc3QgZmFpbHVyZSIsIHJlcG9ydC53YXN4ZmFpbAorICAgICAgICAgICAgKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbiA9IHJl
cG9ydC5sb25ncmVwcgorICAgICAgICAgICAgaWYgc2tpcHJlYXNvbi5zdGFydHN3aXRoKCJTa2lw
cGVkOiAiKToKKyAgICAgICAgICAgICAgICBza2lwcmVhc29uID0gYmluX3htbF9lc2NhcGUoc2tp
cHJlYXNvbls5Ol0pCisgICAgICAgICAgICBzZWxmLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBK
dW5pdC5za2lwcGVkKCIlczolczogJXMiICUgKGZpbGVuYW1lLCBsaW5lbm8sIHNraXByZWFzb24p
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHl0ZXN0LnNraXAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1za2lwcmVhc29uKSkKKyAgICAgICAg
c2VsZi53cml0ZV9jYXB0dXJlZF9vdXRwdXQocmVwb3J0KQorCisgICAgZGVmIGZpbmFsaXplKHNl
bGYpOgorICAgICAgICBkYXRhID0gc2VsZi50b194bWwoKS51bmljb2RlKGluZGVudD0wKQorICAg
ICAgICBzZWxmLl9fZGljdF9fLmNsZWFyKCkKKyAgICAgICAgc2VsZi50b194bWwgPSBsYW1iZGE6
IHB5LnhtbC5yYXcoZGF0YSkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiByZWNvcmRfeG1sX3By
b3BlcnR5KHJlcXVlc3QpOgorICAgICIiIkFkZCBleHRyYSB4bWwgcHJvcGVydGllcyB0byB0aGUg
dGFnIGZvciB0aGUgY2FsbGluZyB0ZXN0LgorICAgIFRoZSBmaXh0dXJlIGlzIGNhbGxhYmxlIHdp
dGggYGAobmFtZSwgdmFsdWUpYGAsIHdpdGggdmFsdWUgYmVpbmcgYXV0b21hdGljYWxseQorICAg
IHhtbC1lbmNvZGVkLgorICAgICIiIgorICAgIHJlcXVlc3Qubm9kZS53YXJuKAorICAgICAgICBj
b2RlPSdDMycsCisgICAgICAgIG1lc3NhZ2U9J3JlY29yZF94bWxfcHJvcGVydHkgaXMgYW4gZXhw
ZXJpbWVudGFsIGZlYXR1cmUnLAorICAgICkKKyAgICB4bWwgPSBnZXRhdHRyKHJlcXVlc3QuY29u
ZmlnLCAiX3htbCIsIE5vbmUpCisgICAgaWYgeG1sIGlzIG5vdCBOb25lOgorICAgICAgICBub2Rl
X3JlcG9ydGVyID0geG1sLm5vZGVfcmVwb3J0ZXIocmVxdWVzdC5ub2RlLm5vZGVpZCkKKyAgICAg
ICAgcmV0dXJuIG5vZGVfcmVwb3J0ZXIuYWRkX3Byb3BlcnR5CisgICAgZWxzZToKKyAgICAgICAg
ZGVmIGFkZF9wcm9wZXJ0eV9ub29wKG5hbWUsIHZhbHVlKToKKyAgICAgICAgICAgIHBhc3MKKwor
ICAgICAgICByZXR1cm4gYWRkX3Byb3BlcnR5X25vb3AKKworCitkZWYgcHl0ZXN0X2FkZG9wdGlv
bihwYXJzZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRp
bmciKQorICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgJy0tanVuaXR4bWwnLCAnLS1qdW5p
dC14bWwnLAorICAgICAgICBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgZGVzdD0ieG1scGF0aCIs
CisgICAgICAgIG1ldGF2YXI9InBhdGgiLAorICAgICAgICB0eXBlPWZ1bmN0b29scy5wYXJ0aWFs
KGZpbGVuYW1lX2FyZywgb3B0bmFtZT0iLS1qdW5pdHhtbCIpLAorICAgICAgICBkZWZhdWx0PU5v
bmUsCisgICAgICAgIGhlbHA9ImNyZWF0ZSBqdW5pdC14bWwgc3R5bGUgcmVwb3J0IGZpbGUgYXQg
Z2l2ZW4gcGF0aC4iKQorICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgJy0tanVuaXRwcmVm
aXgnLCAnLS1qdW5pdC1wcmVmaXgnLAorICAgICAgICBhY3Rpb249InN0b3JlIiwKKyAgICAgICAg
bWV0YXZhcj0ic3RyIiwKKyAgICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSJwcmVw
ZW5kIHByZWZpeCB0byBjbGFzc25hbWVzIGluIGp1bml0LXhtbCBvdXRwdXQiKQorICAgIHBhcnNl
ci5hZGRpbmkoImp1bml0X3N1aXRlX25hbWUiLCAiVGVzdCBzdWl0ZSBuYW1lIGZvciBKVW5pdCBy
ZXBvcnQiLCBkZWZhdWx0PSJweXRlc3QiKQorCisKK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgeG1scGF0aCA9IGNvbmZpZy5vcHRpb24ueG1scGF0aAorICAgICMgcHJldmVudCBv
cGVuaW5nIHhtbGxvZyBvbiBzbGF2ZSBub2RlcyAoeGRpc3QpCisgICAgaWYgeG1scGF0aCBhbmQg
bm90IGhhc2F0dHIoY29uZmlnLCAnc2xhdmVpbnB1dCcpOgorICAgICAgICBjb25maWcuX3htbCA9
IExvZ1hNTCh4bWxwYXRoLCBjb25maWcub3B0aW9uLmp1bml0cHJlZml4LCBjb25maWcuZ2V0aW5p
KCJqdW5pdF9zdWl0ZV9uYW1lIikpCisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lz
dGVyKGNvbmZpZy5feG1sKQorCisKK2RlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKKyAg
ICB4bWwgPSBnZXRhdHRyKGNvbmZpZywgJ194bWwnLCBOb25lKQorICAgIGlmIHhtbDoKKyAgICAg
ICAgZGVsIGNvbmZpZy5feG1sCisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnVucmVnaXN0
ZXIoeG1sKQorCisKK2RlZiBtYW5nbGVfdGVzdF9hZGRyZXNzKGFkZHJlc3MpOgorICAgIHBhdGgs
IHBvc3NpYmxlX29wZW5fYnJhY2tldCwgcGFyYW1zID0gYWRkcmVzcy5wYXJ0aXRpb24oJ1snKQor
ICAgIG5hbWVzID0gcGF0aC5zcGxpdCgiOjoiKQorICAgIHRyeToKKyAgICAgICAgbmFtZXMucmVt
b3ZlKCcoKScpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICAjIGNv
bnZlcnQgZmlsZSBwYXRoIHRvIGRvdHRlZCBwYXRoCisgICAgbmFtZXNbMF0gPSBuYW1lc1swXS5y
ZXBsYWNlKG5vZGVzLlNFUCwgJy4nKQorICAgIG5hbWVzWzBdID0gX3B5X2V4dF9yZS5zdWIoIiIs
IG5hbWVzWzBdKQorICAgICMgcHV0IGFueSBwYXJhbXMgYmFjaworICAgIG5hbWVzWy0xXSArPSBw
b3NzaWJsZV9vcGVuX2JyYWNrZXQgKyBwYXJhbXMKKyAgICByZXR1cm4gbmFtZXMKKworCitjbGFz
cyBMb2dYTUwob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZmlsZSwgcHJlZml4
LCBzdWl0ZV9uYW1lPSJweXRlc3QiKToKKyAgICAgICAgbG9nZmlsZSA9IG9zLnBhdGguZXhwYW5k
dXNlcihvcy5wYXRoLmV4cGFuZHZhcnMobG9nZmlsZSkpCisgICAgICAgIHNlbGYubG9nZmlsZSA9
IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKGxvZ2ZpbGUpKQorICAgICAgICBzZWxm
LnByZWZpeCA9IHByZWZpeAorICAgICAgICBzZWxmLnN1aXRlX25hbWUgPSBzdWl0ZV9uYW1lCisg
ICAgICAgIHNlbGYuc3RhdHMgPSBkaWN0LmZyb21rZXlzKFsKKyAgICAgICAgICAgICdlcnJvcics
CisgICAgICAgICAgICAncGFzc2VkJywKKyAgICAgICAgICAgICdmYWlsdXJlJywKKyAgICAgICAg
ICAgICdza2lwcGVkJywKKyAgICAgICAgXSwgMCkKKyAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVy
cyA9IHt9ICAjIG5vZGVpZCAtPiBfTm9kZVJlcG9ydGVyCisgICAgICAgIHNlbGYubm9kZV9yZXBv
cnRlcnNfb3JkZXJlZCA9IFtdCisgICAgICAgIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXMgPSBbXQor
ICAgICAgICAjIExpc3Qgb2YgcmVwb3J0cyB0aGF0IGZhaWxlZCBvbiBjYWxsIGJ1dCB0ZWFyZG93
biBpcyBwZW5kaW5nLgorICAgICAgICBzZWxmLm9wZW5fcmVwb3J0cyA9IFtdCisgICAgICAgIHNl
bGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzID0gMAorCisgICAgZGVmIGZpbmFsaXplKHNlbGYsIHJl
cG9ydCk6CisgICAgICAgIG5vZGVpZCA9IGdldGF0dHIocmVwb3J0LCAnbm9kZWlkJywgcmVwb3J0
KQorICAgICAgICAjIGxvY2FsIGhhY2sgdG8gaGFuZGxlIHhkaXN0IHJlcG9ydCBvcmRlcgorICAg
ICAgICBzbGF2ZW5vZGUgPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGUnLCBOb25lKQorICAgICAgICBy
ZXBvcnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcnMucG9wKChub2RlaWQsIHNsYXZlbm9kZSkpCisg
ICAgICAgIGlmIHJlcG9ydGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVwb3J0ZXIuZmlu
YWxpemUoKQorCisgICAgZGVmIG5vZGVfcmVwb3J0ZXIoc2VsZiwgcmVwb3J0KToKKyAgICAgICAg
bm9kZWlkID0gZ2V0YXR0cihyZXBvcnQsICdub2RlaWQnLCByZXBvcnQpCisgICAgICAgICMgbG9j
YWwgaGFjayB0byBoYW5kbGUgeGRpc3QgcmVwb3J0IG9yZGVyCisgICAgICAgIHNsYXZlbm9kZSA9
IGdldGF0dHIocmVwb3J0LCAnbm9kZScsIE5vbmUpCisKKyAgICAgICAga2V5ID0gbm9kZWlkLCBz
bGF2ZW5vZGUKKworICAgICAgICBpZiBrZXkgaW4gc2VsZi5ub2RlX3JlcG9ydGVyczoKKyAgICAg
ICAgICAgICMgVE9ETzogYnJlYXNrcyBmb3IgLS1kaXN0PWVhY2gKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLm5vZGVfcmVwb3J0ZXJzW2tleV0KKworICAgICAgICByZXBvcnRlciA9IF9Ob2RlUmVw
b3J0ZXIobm9kZWlkLCBzZWxmKQorCisgICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnNba2V5XSA9
IHJlcG9ydGVyCisgICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnNfb3JkZXJlZC5hcHBlbmQocmVw
b3J0ZXIpCisKKyAgICAgICAgcmV0dXJuIHJlcG9ydGVyCisKKyAgICBkZWYgYWRkX3N0YXRzKHNl
bGYsIGtleSk6CisgICAgICAgIGlmIGtleSBpbiBzZWxmLnN0YXRzOgorICAgICAgICAgICAgc2Vs
Zi5zdGF0c1trZXldICs9IDEKKworICAgIGRlZiBfb3BlbnRlc3RjYXNlKHNlbGYsIHJlcG9ydCk6
CisgICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVyKHJlcG9ydCkKKyAgICAgICAg
cmVwb3J0ZXIucmVjb3JkX3Rlc3RyZXBvcnQocmVwb3J0KQorICAgICAgICByZXR1cm4gcmVwb3J0
ZXIKKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAg
ICAgICAgIiIiaGFuZGxlIGEgc2V0dXAvY2FsbC90ZWFyZG93biByZXBvcnQsIGdlbmVyYXRpbmcg
dGhlIGFwcHJvcHJpYXRlCisgICAgICAgIHhtbCB0YWdzIGFzIG5lY2Vzc2FyeS4KKworICAgICAg
ICBub3RlOiBkdWUgdG8gcGx1Z2lucyBsaWtlIHhkaXN0LCB0aGlzIGhvb2sgbWF5IGJlIGNhbGxl
ZCBpbiBpbnRlcmxhY2VkCisgICAgICAgIG9yZGVyIHdpdGggcmVwb3J0cyBmcm9tIG90aGVyIG5v
ZGVzLiBmb3IgZXhhbXBsZToKKworICAgICAgICB1c3VhbCBjYWxsIG9yZGVyOgorICAgICAgICAg
ICAgLT4gc2V0dXAgbm9kZTEKKyAgICAgICAgICAgIC0+IGNhbGwgbm9kZTEKKyAgICAgICAgICAg
IC0+IHRlYXJkb3duIG5vZGUxCisgICAgICAgICAgICAtPiBzZXR1cCBub2RlMgorICAgICAgICAg
ICAgLT4gY2FsbCBub2RlMgorICAgICAgICAgICAgLT4gdGVhcmRvd24gbm9kZTIKKworICAgICAg
ICBwb3NzaWJsZSBjYWxsIG9yZGVyIGluIHhkaXN0OgorICAgICAgICAgICAgLT4gc2V0dXAgbm9k
ZTEKKyAgICAgICAgICAgIC0+IGNhbGwgbm9kZTEKKyAgICAgICAgICAgIC0+IHNldHVwIG5vZGUy
CisgICAgICAgICAgICAtPiBjYWxsIG5vZGUyCisgICAgICAgICAgICAtPiB0ZWFyZG93biBub2Rl
MgorICAgICAgICAgICAgLT4gdGVhcmRvd24gbm9kZTEKKyAgICAgICAgIiIiCisgICAgICAgIGNs
b3NlX3JlcG9ydCA9IE5vbmUKKyAgICAgICAgaWYgcmVwb3J0LnBhc3NlZDoKKyAgICAgICAgICAg
IGlmIHJlcG9ydC53aGVuID09ICJjYWxsIjogICMgaWdub3JlIHNldHVwL3RlYXJkb3duCisgICAg
ICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQorICAgICAg
ICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9wYXNzKHJlcG9ydCkKKyAgICAgICAgZWxpZiByZXBv
cnQuZmFpbGVkOgorICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0gInRlYXJkb3duIjoKKyAg
ICAgICAgICAgICAgICAjIFRoZSBmb2xsb3dpbmcgdmFycyBhcmUgbmVlZGVkIHdoZW4geGRpc3Qg
cGx1Z2luIGlzIHVzZWQKKyAgICAgICAgICAgICAgICByZXBvcnRfd2lkID0gZ2V0YXR0cihyZXBv
cnQsICJ3b3JrZXJfaWQiLCBOb25lKQorICAgICAgICAgICAgICAgIHJlcG9ydF9paSA9IGdldGF0
dHIocmVwb3J0LCAiaXRlbV9pbmRleCIsIE5vbmUpCisgICAgICAgICAgICAgICAgY2xvc2VfcmVw
b3J0ID0gbmV4dCgKKyAgICAgICAgICAgICAgICAgICAgKHJlcCBmb3IgcmVwIGluIHNlbGYub3Bl
bl9yZXBvcnRzCisgICAgICAgICAgICAgICAgICAgICBpZiAocmVwLm5vZGVpZCA9PSByZXBvcnQu
bm9kZWlkIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAiaXRlbV9p
bmRleCIsIE5vbmUpID09IHJlcG9ydF9paSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRhdHRyKHJlcCwgIndvcmtlcl9pZCIsIE5vbmUpID09IHJlcG9ydF93aWQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICApLCBOb25lKQorICAgICAgICAg
ICAgICAgIGlmIGNsb3NlX3JlcG9ydDoKKyAgICAgICAgICAgICAgICAgICAgIyBXZSBuZWVkIHRv
IG9wZW4gbmV3IHRlc3RjYXNlIGluIGNhc2Ugd2UgaGF2ZSBmYWlsdXJlIGluCisgICAgICAgICAg
ICAgICAgICAgICMgY2FsbCBhbmQgZXJyb3IgaW4gdGVhcmRvd24gaW4gb3JkZXIgdG8gZm9sbG93
IGp1bml0CisgICAgICAgICAgICAgICAgICAgICMgc2NoZW1hCisgICAgICAgICAgICAgICAgICAg
IHNlbGYuZmluYWxpemUoY2xvc2VfcmVwb3J0KQorICAgICAgICAgICAgICAgICAgICBzZWxmLmNu
dF9kb3VibGVfZmFpbF90ZXN0cyArPSAxCisgICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29w
ZW50ZXN0Y2FzZShyZXBvcnQpCisgICAgICAgICAgICBpZiByZXBvcnQud2hlbiA9PSAiY2FsbCI6
CisgICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX2ZhaWx1cmUocmVwb3J0KQorICAgICAg
ICAgICAgICAgIHNlbGYub3Blbl9yZXBvcnRzLmFwcGVuZChyZXBvcnQpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9lcnJvcihyZXBvcnQpCisgICAg
ICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6CisgICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29w
ZW50ZXN0Y2FzZShyZXBvcnQpCisgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfc2tpcHBlZChy
ZXBvcnQpCisgICAgICAgIHNlbGYudXBkYXRlX3Rlc3RjYXNlX2R1cmF0aW9uKHJlcG9ydCkKKyAg
ICAgICAgaWYgcmVwb3J0LndoZW4gPT0gInRlYXJkb3duIjoKKyAgICAgICAgICAgIHJlcG9ydGVy
ID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKKyAgICAgICAgICAgIHJlcG9ydGVyLndyaXRl
X2NhcHR1cmVkX291dHB1dChyZXBvcnQpCisgICAgICAgICAgICBzZWxmLmZpbmFsaXplKHJlcG9y
dCkKKyAgICAgICAgICAgIHJlcG9ydF93aWQgPSBnZXRhdHRyKHJlcG9ydCwgIndvcmtlcl9pZCIs
IE5vbmUpCisgICAgICAgICAgICByZXBvcnRfaWkgPSBnZXRhdHRyKHJlcG9ydCwgIml0ZW1faW5k
ZXgiLCBOb25lKQorICAgICAgICAgICAgY2xvc2VfcmVwb3J0ID0gbmV4dCgKKyAgICAgICAgICAg
ICAgICAocmVwIGZvciByZXAgaW4gc2VsZi5vcGVuX3JlcG9ydHMKKyAgICAgICAgICAgICAgICAg
aWYgKHJlcC5ub2RlaWQgPT0gcmVwb3J0Lm5vZGVpZCBhbmQKKyAgICAgICAgICAgICAgICAgICAg
IGdldGF0dHIocmVwLCAiaXRlbV9pbmRleCIsIE5vbmUpID09IHJlcG9ydF9paSBhbmQKKyAgICAg
ICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAid29ya2VyX2lkIiwgTm9uZSkgPT0gcmVwb3J0
X3dpZAorICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICApLCBOb25lKQor
ICAgICAgICAgICAgaWYgY2xvc2VfcmVwb3J0OgorICAgICAgICAgICAgICAgIHNlbGYub3Blbl9y
ZXBvcnRzLnJlbW92ZShjbG9zZV9yZXBvcnQpCisKKyAgICBkZWYgdXBkYXRlX3Rlc3RjYXNlX2R1
cmF0aW9uKHNlbGYsIHJlcG9ydCk6CisgICAgICAgICIiImFjY3VtdWxhdGVzIHRvdGFsIGR1cmF0
aW9uIGZvciBub2RlaWQgZnJvbSBnaXZlbiByZXBvcnQgYW5kIHVwZGF0ZXMKKyAgICAgICAgdGhl
IEp1bml0LnRlc3RjYXNlIHdpdGggdGhlIG5ldyB0b3RhbCBpZiBhbHJlYWR5IGNyZWF0ZWQuCisg
ICAgICAgICIiIgorICAgICAgICByZXBvcnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcihyZXBvcnQp
CisgICAgICAgIHJlcG9ydGVyLmR1cmF0aW9uICs9IGdldGF0dHIocmVwb3J0LCAnZHVyYXRpb24n
LCAwLjApCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAg
ICAgICAgaWYgbm90IHJlcG9ydC5wYXNzZWQ6CisgICAgICAgICAgICByZXBvcnRlciA9IHNlbGYu
X29wZW50ZXN0Y2FzZShyZXBvcnQpCisgICAgICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgorICAg
ICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9jb2xsZWN0X2Vycm9yKHJlcG9ydCkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX2NvbGxlY3Rfc2tp
cHBlZChyZXBvcnQpCisKKyAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVw
cik6CisgICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVyKCdpbnRlcm5hbCcpCisg
ICAgICAgIHJlcG9ydGVyLmF0dHJzLnVwZGF0ZShjbGFzc25hbWU9InB5dGVzdCIsIG5hbWU9J2lu
dGVybmFsJykKKyAgICAgICAgcmVwb3J0ZXIuX2FkZF9zaW1wbGUoSnVuaXQuZXJyb3IsICdpbnRl
cm5hbCBlcnJvcicsIGV4Y3JlcHIpCisKKyAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZWxm
KToKKyAgICAgICAgc2VsZi5zdWl0ZV9zdGFydF90aW1lID0gdGltZS50aW1lKCkKKworICAgIGRl
ZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmKToKKyAgICAgICAgZGlybmFtZSA9IG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmFic3BhdGgoc2VsZi5sb2dmaWxlKSkKKyAgICAgICAgaWYgbm90IG9z
LnBhdGguaXNkaXIoZGlybmFtZSk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQor
ICAgICAgICBsb2dmaWxlID0gb3BlbihzZWxmLmxvZ2ZpbGUsICd3JywgZW5jb2Rpbmc9J3V0Zi04
JykKKyAgICAgICAgc3VpdGVfc3RvcF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgc3VpdGVf
dGltZV9kZWx0YSA9IHN1aXRlX3N0b3BfdGltZSAtIHNlbGYuc3VpdGVfc3RhcnRfdGltZQorCisg
ICAgICAgIG51bXRlc3RzID0gKHNlbGYuc3RhdHNbJ3Bhc3NlZCddICsgc2VsZi5zdGF0c1snZmFp
bHVyZSddICsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0c1snc2tpcHBlZCddICsgc2Vs
Zi5zdGF0c1snZXJyb3InXSAtCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY250X2RvdWJsZV9m
YWlsX3Rlc3RzKQorICAgICAgICBsb2dmaWxlLndyaXRlKCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PicpCisKKyAgICAgICAgbG9nZmlsZS53cml0ZShKdW5pdC50ZXN0c3Vp
dGUoCisgICAgICAgICAgICBzZWxmLl9nZXRfZ2xvYmFsX3Byb3BlcnRpZXNfbm9kZSgpLAorICAg
ICAgICAgICAgW3gudG9feG1sKCkgZm9yIHggaW4gc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVk
XSwKKyAgICAgICAgICAgIG5hbWU9c2VsZi5zdWl0ZV9uYW1lLAorICAgICAgICAgICAgZXJyb3Jz
PXNlbGYuc3RhdHNbJ2Vycm9yJ10sCisgICAgICAgICAgICBmYWlsdXJlcz1zZWxmLnN0YXRzWydm
YWlsdXJlJ10sCisgICAgICAgICAgICBza2lwcz1zZWxmLnN0YXRzWydza2lwcGVkJ10sCisgICAg
ICAgICAgICB0ZXN0cz1udW10ZXN0cywKKyAgICAgICAgICAgIHRpbWU9IiUuM2YiICUgc3VpdGVf
dGltZV9kZWx0YSwgKS51bmljb2RlKGluZGVudD0wKSkKKyAgICAgICAgbG9nZmlsZS5jbG9zZSgp
CisKKyAgICBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkoc2VsZiwgdGVybWluYWxyZXBvcnRl
cik6CisgICAgICAgIHRlcm1pbmFscmVwb3J0ZXIud3JpdGVfc2VwKCItIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImdlbmVyYXRlZCB4bWwgZmlsZTogJXMiICUgKHNlbGYu
bG9nZmlsZSkpCisKKyAgICBkZWYgYWRkX2dsb2JhbF9wcm9wZXJ0eShzZWxmLCBuYW1lLCB2YWx1
ZSk6CisgICAgICAgIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXMuYXBwZW5kKChzdHIobmFtZSksIGJp
bl94bWxfZXNjYXBlKHZhbHVlKSkpCisKKyAgICBkZWYgX2dldF9nbG9iYWxfcHJvcGVydGllc19u
b2RlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBKdW5pdCBub2RlIGNvbnRhaW5pbmcgY3Vz
dG9tIHByb3BlcnRpZXMsIGlmIGFueS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuZ2xv
YmFsX3Byb3BlcnRpZXM6CisgICAgICAgICAgICByZXR1cm4gSnVuaXQucHJvcGVydGllcygKKyAg
ICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgIEp1bml0LnByb3BlcnR5KG5hbWU9
bmFtZSwgdmFsdWU9dmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBp
biBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
KQorICAgICAgICByZXR1cm4gJycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9n
Z2luZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDRk
YjI1YWQ0NDMxZWZiMTc0ZmNhNWY4YWQ0ODFiZDM5OWU0Y2NkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5nLnB5CkBAIC0wLDAgKzEsMzM3IEBACitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
CisKK2ltcG9ydCBsb2dnaW5nCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3NpbmcsIGNvbnRl
eHRtYW5hZ2VyCitpbXBvcnQgc3lzCitpbXBvcnQgc2l4CisKK2ltcG9ydCBweXRlc3QKK2ltcG9y
dCBweQorCisKK0RFRkFVTFRfTE9HX0ZPUk1BVCA9ICclKGZpbGVuYW1lKS0yNXMgJShsaW5lbm8p
NGQgJShsZXZlbG5hbWUpLThzICUobWVzc2FnZSlzJworREVGQVVMVF9MT0dfREFURV9GT1JNQVQg
PSAnJUg6JU06JVMnCisKKworZGVmIGdldF9vcHRpb25faW5pKGNvbmZpZywgKm5hbWVzKToKKyAg
ICBmb3IgbmFtZSBpbiBuYW1lczoKKyAgICAgICAgcmV0ID0gY29uZmlnLmdldG9wdGlvbihuYW1l
KSAgIyAnZGVmYXVsdCcgYXJnIHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQKKyAgICAgICAgaWYgcmV0
IGlzIE5vbmU6CisgICAgICAgICAgICByZXQgPSBjb25maWcuZ2V0aW5pKG5hbWUpCisgICAgICAg
IGlmIHJldDoKKyAgICAgICAgICAgIHJldHVybiByZXQKKworCitkZWYgcHl0ZXN0X2FkZG9wdGlv
bihwYXJzZXIpOgorICAgICIiIkFkZCBvcHRpb25zIHRvIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4i
IiIKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgnbG9nZ2luZycpCisKKyAgICBkZWYgYWRk
X29wdGlvbl9pbmkob3B0aW9uLCBkZXN0LCBkZWZhdWx0PU5vbmUsIHR5cGU9Tm9uZSwgKiprd2Fy
Z3MpOgorICAgICAgICBwYXJzZXIuYWRkaW5pKGRlc3QsIGRlZmF1bHQ9ZGVmYXVsdCwgdHlwZT10
eXBlLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2RlZmF1bHQgdmFsdWUgZm9yICcgKyBv
cHRpb24pCisgICAgICAgIGdyb3VwLmFkZG9wdGlvbihvcHRpb24sIGRlc3Q9ZGVzdCwgKiprd2Fy
Z3MpCisKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbm8tcHJpbnQtbG9ncycsCisg
ICAgICAgIGRlc3Q9J2xvZ19wcmludCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBjb25zdD1GYWxz
ZSwgZGVmYXVsdD1UcnVlLAorICAgICAgICB0eXBlPSdib29sJywKKyAgICAgICAgaGVscD0nZGlz
YWJsZSBwcmludGluZyBjYXVnaHQgbG9ncyBvbiBmYWlsZWQgdGVzdHMuJykKKyAgICBhZGRfb3B0
aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWxldmVsJywKKyAgICAgICAgZGVzdD0nbG9nX2xldmVs
JywgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSdsb2dnaW5nIGxldmVsIHVzZWQgYnkgdGhl
IGxvZ2dpbmcgbW9kdWxlJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWZv
cm1hdCcsCisgICAgICAgIGRlc3Q9J2xvZ19mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0ZP
Uk1BVCwKKyAgICAgICAgaGVscD0nbG9nIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1v
ZHVsZS4nKQorICAgIGFkZF9vcHRpb25faW5pKAorICAgICAgICAnLS1sb2ctZGF0ZS1mb3JtYXQn
LAorICAgICAgICBkZXN0PSdsb2dfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0RB
VEVfRk9STUFULAorICAgICAgICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUg
bG9nZ2luZyBtb2R1bGUuJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWNs
aS1sZXZlbCcsCisgICAgICAgIGRlc3Q9J2xvZ19jbGlfbGV2ZWwnLCBkZWZhdWx0PU5vbmUsCisg
ICAgICAgIGhlbHA9J2NsaSBsb2dnaW5nIGxldmVsLicpCisgICAgYWRkX29wdGlvbl9pbmkoCisg
ICAgICAgICctLWxvZy1jbGktZm9ybWF0JywKKyAgICAgICAgZGVzdD0nbG9nX2NsaV9mb3JtYXQn
LCBkZWZhdWx0PU5vbmUsCisgICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNlZCBieSB0aGUg
bG9nZ2luZyBtb2R1bGUuJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWNs
aS1kYXRlLWZvcm1hdCcsCisgICAgICAgIGRlc3Q9J2xvZ19jbGlfZGF0ZV9mb3JtYXQnLCBkZWZh
dWx0PU5vbmUsCisgICAgICAgIGhlbHA9J2xvZyBkYXRlIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBs
b2dnaW5nIG1vZHVsZS4nKQorICAgIGFkZF9vcHRpb25faW5pKAorICAgICAgICAnLS1sb2ctZmls
ZScsCisgICAgICAgIGRlc3Q9J2xvZ19maWxlJywgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxw
PSdwYXRoIHRvIGEgZmlsZSB3aGVuIGxvZ2dpbmcgd2lsbCBiZSB3cml0dGVuIHRvLicpCisgICAg
YWRkX29wdGlvbl9pbmkoCisgICAgICAgICctLWxvZy1maWxlLWxldmVsJywKKyAgICAgICAgZGVz
dD0nbG9nX2ZpbGVfbGV2ZWwnLCBkZWZhdWx0PU5vbmUsCisgICAgICAgIGhlbHA9J2xvZyBmaWxl
IGxvZ2dpbmcgbGV2ZWwuJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWZp
bGUtZm9ybWF0JywKKyAgICAgICAgZGVzdD0nbG9nX2ZpbGVfZm9ybWF0JywgZGVmYXVsdD1ERUZB
VUxUX0xPR19GT1JNQVQsCisgICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNlZCBieSB0aGUg
bG9nZ2luZyBtb2R1bGUuJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAgICAgJy0tbG9nLWZp
bGUtZGF0ZS1mb3JtYXQnLAorICAgICAgICBkZXN0PSdsb2dfZmlsZV9kYXRlX2Zvcm1hdCcsIGRl
ZmF1bHQ9REVGQVVMVF9MT0dfREFURV9GT1JNQVQsCisgICAgICAgIGhlbHA9J2xvZyBkYXRlIGZv
cm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZS4nKQorCisKK0Bjb250ZXh0bWFuYWdl
cgorZGVmIGxvZ2dpbmdfdXNpbmdfaGFuZGxlcihoYW5kbGVyLCBsb2dnZXI9Tm9uZSk6CisgICAg
IiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQgc2FmZWx5IHJlZ2lzdGVycyBhIGdpdmVuIGhhbmRsZXIu
IiIiCisgICAgbG9nZ2VyID0gbG9nZ2VyIG9yIGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKKwor
ICAgIGlmIGhhbmRsZXIgaW4gbG9nZ2VyLmhhbmRsZXJzOiAgIyByZWVudHJhbmN5CisgICAgICAg
ICMgQWRkaW5nIHRoZSBzYW1lIGhhbmRsZXIgdHdpY2Ugd291bGQgY29uZnVzZSBsb2dnaW5nIHN5
c3RlbS4KKyAgICAgICAgIyBKdXN0IGRvbid0IGRvIHRoYXQuCisgICAgICAgIHlpZWxkCisgICAg
ZWxzZToKKyAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgeWllbGQKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGxvZ2dlci5y
ZW1vdmVIYW5kbGVyKGhhbmRsZXIpCisKKworQGNvbnRleHRtYW5hZ2VyCitkZWYgY2F0Y2hpbmdf
bG9ncyhoYW5kbGVyLCBmb3JtYXR0ZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgIGxldmVsPWxv
Z2dpbmcuTk9UU0VULCBsb2dnZXI9Tm9uZSk6CisgICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQg
cHJlcGFyZXMgdGhlIHdob2xlIGxvZ2dpbmcgbWFjaGluZXJ5IHByb3Blcmx5LiIiIgorICAgIGxv
Z2dlciA9IGxvZ2dlciBvciBsb2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCisKKyAgICBpZiBmb3Jt
YXR0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRl
cikKKyAgICBoYW5kbGVyLnNldExldmVsKGxldmVsKQorCisgICAgd2l0aCBsb2dnaW5nX3VzaW5n
X2hhbmRsZXIoaGFuZGxlciwgbG9nZ2VyKToKKyAgICAgICAgb3JpZ19sZXZlbCA9IGxvZ2dlci5s
ZXZlbAorICAgICAgICBsb2dnZXIuc2V0TGV2ZWwobWluKG9yaWdfbGV2ZWwsIGxldmVsKSkKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgeWllbGQgaGFuZGxlcgorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKG9yaWdfbGV2ZWwpCisKKworY2xhc3MgTG9nQ2Fw
dHVyZUhhbmRsZXIobG9nZ2luZy5TdHJlYW1IYW5kbGVyKToKKyAgICAiIiJBIGxvZ2dpbmcgaGFu
ZGxlciB0aGF0IHN0b3JlcyBsb2cgcmVjb3JkcyBhbmQgdGhlIGxvZyB0ZXh0LiIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGxvZyBoYW5kbGVy
LiIiIgorICAgICAgICBsb2dnaW5nLlN0cmVhbUhhbmRsZXIuX19pbml0X18oc2VsZiwgcHkuaW8u
VGV4dElPKCkpCisgICAgICAgIHNlbGYucmVjb3JkcyA9IFtdCisKKyAgICBkZWYgZW1pdChzZWxm
LCByZWNvcmQpOgorICAgICAgICAiIiJLZWVwIHRoZSBsb2cgcmVjb3JkcyBpbiBhIGxpc3QgaW4g
YWRkaXRpb24gdG8gdGhlIGxvZyB0ZXh0LiIiIgorICAgICAgICBzZWxmLnJlY29yZHMuYXBwZW5k
KHJlY29yZCkKKyAgICAgICAgbG9nZ2luZy5TdHJlYW1IYW5kbGVyLmVtaXQoc2VsZiwgcmVjb3Jk
KQorCisKK2NsYXNzIExvZ0NhcHR1cmVGaXh0dXJlKG9iamVjdCk6CisgICAgIiIiUHJvdmlkZXMg
YWNjZXNzIGFuZCBjb250cm9sIG9mIGxvZyBjYXB0dXJpbmcuIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgaXRlbSk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgZnVuY2FyZy4iIiIKKyAg
ICAgICAgc2VsZi5faXRlbSA9IGl0ZW0KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBoYW5kbGVy
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faXRlbS5jYXRjaF9sb2dfaGFuZGxlcgorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIHRleHQoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhl
IGxvZyB0ZXh0LiIiIgorICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVyLnN0cmVhbS5nZXR2YWx1
ZSgpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVjb3JkcyhzZWxmKToKKyAgICAgICAgIiIi
UmV0dXJucyB0aGUgbGlzdCBvZiBsb2cgcmVjb3Jkcy4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
aGFuZGxlci5yZWNvcmRzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVjb3JkX3R1cGxlcyhz
ZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgYSBzdHJpcGVkIGRvd24gdmVyc2lv
biBvZiBsb2cgcmVjb3JkcyBpbnRlbmRlZAorICAgICAgICBmb3IgdXNlIGluIGFzc2VydGlvbiBj
b21wYXJpc29uLgorCisgICAgICAgIFRoZSBmb3JtYXQgb2YgdGhlIHR1cGxlIGlzOgorCisgICAg
ICAgICAgICAobG9nZ2VyX25hbWUsIGxvZ19sZXZlbCwgbWVzc2FnZSkKKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBbKHIubmFtZSwgci5sZXZlbG5vLCByLmdldE1lc3NhZ2UoKSkgZm9yIHIg
aW4gc2VsZi5yZWNvcmRzXQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICAiIiJSZXNl
dCB0aGUgbGlzdCBvZiBsb2cgcmVjb3Jkcy4iIiIKKyAgICAgICAgc2VsZi5oYW5kbGVyLnJlY29y
ZHMgPSBbXQorCisgICAgZGVmIHNldF9sZXZlbChzZWxmLCBsZXZlbCwgbG9nZ2VyPU5vbmUpOgor
ICAgICAgICAiIiJTZXRzIHRoZSBsZXZlbCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3MuCisKKyAgICAg
ICAgQnkgZGVmYXVsdCwgdGhlIGxldmVsIGlzIHNldCBvbiB0aGUgaGFuZGxlciB1c2VkIHRvIGNh
cHR1cmUKKyAgICAgICAgbG9ncy4gU3BlY2lmeSBhIGxvZ2dlciBuYW1lIHRvIGluc3RlYWQgc2V0
IHRoZSBsZXZlbCBvZiBhbnkKKyAgICAgICAgbG9nZ2VyLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgICAgICBsb2dnZXIgPSBzZWxmLmhhbmRsZXIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dl
cikKKyAgICAgICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQorCisgICAgQGNvbnRleHRtYW5hZ2Vy
CisgICAgZGVmIGF0X2xldmVsKHNlbGYsIGxldmVsLCBsb2dnZXI9Tm9uZSk6CisgICAgICAgICIi
IkNvbnRleHQgbWFuYWdlciB0aGF0IHNldHMgdGhlIGxldmVsIGZvciBjYXB0dXJpbmcgb2YgbG9n
cy4KKworICAgICAgICBCeSBkZWZhdWx0LCB0aGUgbGV2ZWwgaXMgc2V0IG9uIHRoZSBoYW5kbGVy
IHVzZWQgdG8gY2FwdHVyZQorICAgICAgICBsb2dzLiBTcGVjaWZ5IGEgbG9nZ2VyIG5hbWUgdG8g
aW5zdGVhZCBzZXQgdGhlIGxldmVsIG9mIGFueQorICAgICAgICBsb2dnZXIuCisgICAgICAgICIi
IgorICAgICAgICBpZiBsb2dnZXIgaXMgTm9uZToKKyAgICAgICAgICAgIGxvZ2dlciA9IHNlbGYu
aGFuZGxlcgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRM
b2dnZXIobG9nZ2VyKQorCisgICAgICAgIG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKKyAgICAg
ICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVs
ZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKG9yaWdfbGV2
ZWwpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2FwbG9nKHJlcXVlc3QpOgorICAgICIiIkFj
Y2VzcyBhbmQgY29udHJvbCBsb2cgY2FwdHVyaW5nLgorCisgICAgQ2FwdHVyZWQgbG9ncyBhcmUg
YXZhaWxhYmxlIHRocm91Z2ggdGhlIGZvbGxvd2luZyBtZXRob2RzOjoKKworICAgICogY2FwbG9n
LnRleHQoKSAgICAgICAgICAtPiBzdHJpbmcgY29udGFpbmluZyBmb3JtYXR0ZWQgbG9nIG91dHB1
dAorICAgICogY2FwbG9nLnJlY29yZHMoKSAgICAgICAtPiBsaXN0IG9mIGxvZ2dpbmcuTG9nUmVj
b3JkIGluc3RhbmNlcworICAgICogY2FwbG9nLnJlY29yZF90dXBsZXMoKSAtPiBsaXN0IG9mIChs
b2dnZXJfbmFtZSwgbGV2ZWwsIG1lc3NhZ2UpIHR1cGxlcworICAgICIiIgorICAgIHJldHVybiBM
b2dDYXB0dXJlRml4dHVyZShyZXF1ZXN0Lm5vZGUpCisKKworZGVmIGdldF9hY3R1YWxfbG9nX2xl
dmVsKGNvbmZpZywgKnNldHRpbmdfbmFtZXMpOgorICAgICIiIlJldHVybiB0aGUgYWN0dWFsIGxv
Z2dpbmcgbGV2ZWwuIiIiCisKKyAgICBmb3Igc2V0dGluZ19uYW1lIGluIHNldHRpbmdfbmFtZXM6
CisgICAgICAgIGxvZ19sZXZlbCA9IGNvbmZpZy5nZXRvcHRpb24oc2V0dGluZ19uYW1lKQorICAg
ICAgICBpZiBsb2dfbGV2ZWwgaXMgTm9uZToKKyAgICAgICAgICAgIGxvZ19sZXZlbCA9IGNvbmZp
Zy5nZXRpbmkoc2V0dGluZ19uYW1lKQorICAgICAgICBpZiBsb2dfbGV2ZWw6CisgICAgICAgICAg
ICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHJldHVybgorCisgICAgaWYgaXNpbnN0YW5jZShs
b2dfbGV2ZWwsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICBsb2dfbGV2ZWwgPSBsb2dfbGV2
ZWwudXBwZXIoKQorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGludChnZXRhdHRyKGxvZ2dpbmcs
IGxvZ19sZXZlbCwgbG9nX2xldmVsKSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAg
IyBQeXRob24gbG9nZ2luZyBkb2VzIG5vdCByZWNvZ25pc2UgdGhpcyBhcyBhIGxvZ2dpbmcgbGV2
ZWwKKyAgICAgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3IoCisgICAgICAgICAgICAiJ3swfScg
aXMgbm90IHJlY29nbml6ZWQgYXMgYSBsb2dnaW5nIGxldmVsIG5hbWUgZm9yICIKKyAgICAgICAg
ICAgICInezF9Jy4gUGxlYXNlIGNvbnNpZGVyIHBhc3NpbmcgdGhlICIKKyAgICAgICAgICAgICJs
b2dnaW5nIGxldmVsIG51bSBpbnN0ZWFkLiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGxvZ19s
ZXZlbCwKKyAgICAgICAgICAgICAgICBzZXR0aW5nX25hbWUpKQorCisKK2RlZiBweXRlc3RfY29u
ZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTG9nZ2lu
Z1BsdWdpbihjb25maWcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2dn
aW5nLXBsdWdpbicpCisKKworY2xhc3MgTG9nZ2luZ1BsdWdpbihvYmplY3QpOgorICAgICIiIkF0
dGFjaGVzIHRvIHRoZSBsb2dnaW5nIG1vZHVsZSBhbmQgY2FwdHVyZXMgbG9nIG1lc3NhZ2VzIGZv
ciBlYWNoIHRlc3QuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToK
KyAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBwbHVnaW4gdG8gY2FwdHVyZSBsb2cgbWVzc2FnZXMu
CisKKyAgICAgICAgVGhlIGZvcm1hdHRlciBjYW4gYmUgc2FmZWx5IHNoYXJlZCBhY3Jvc3MgYWxs
IGhhbmRsZXJzIHNvCisgICAgICAgIGNyZWF0ZSBhIHNpbmdsZSBvbmUgZm9yIHRoZSBlbnRpcmUg
dGVzdCBzZXNzaW9uIGhlcmUuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmxvZ19jbGlfbGV2
ZWwgPSBnZXRfYWN0dWFsX2xvZ19sZXZlbCgKKyAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19jbGlf
bGV2ZWwnLCAnbG9nX2xldmVsJykgb3IgbG9nZ2luZy5XQVJOSU5HCisKKyAgICAgICAgc2VsZi5w
cmludF9sb2dzID0gZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAnbG9nX3ByaW50JykKKyAgICAgICAg
c2VsZi5mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKKyAgICAgICAgICAgIGdldF9vcHRp
b25faW5pKGNvbmZpZywgJ2xvZ19mb3JtYXQnKSwKKyAgICAgICAgICAgIGdldF9vcHRpb25faW5p
KGNvbmZpZywgJ2xvZ19kYXRlX2Zvcm1hdCcpKQorCisgICAgICAgIGxvZ19jbGlfaGFuZGxlciA9
IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMuc3RkZXJyKQorICAgICAgICBsb2dfY2xpX2Zvcm1h
dCA9IGdldF9vcHRpb25faW5pKAorICAgICAgICAgICAgY29uZmlnLCAnbG9nX2NsaV9mb3JtYXQn
LCAnbG9nX2Zvcm1hdCcpCisgICAgICAgIGxvZ19jbGlfZGF0ZV9mb3JtYXQgPSBnZXRfb3B0aW9u
X2luaSgKKyAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19jbGlfZGF0ZV9mb3JtYXQnLCAnbG9nX2Rh
dGVfZm9ybWF0JykKKyAgICAgICAgbG9nX2NsaV9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRl
cigKKyAgICAgICAgICAgIGxvZ19jbGlfZm9ybWF0LAorICAgICAgICAgICAgZGF0ZWZtdD1sb2df
Y2xpX2RhdGVfZm9ybWF0KQorICAgICAgICBzZWxmLmxvZ19jbGlfaGFuZGxlciA9IGxvZ19jbGlf
aGFuZGxlciAgIyBuZWVkZWQgZm9yIGEgc2luZ2xlIHVuaXR0ZXN0CisgICAgICAgIHNlbGYubGl2
ZV9sb2dzID0gY2F0Y2hpbmdfbG9ncyhsb2dfY2xpX2hhbmRsZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXI9bG9nX2NsaV9mb3JtYXR0ZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD1zZWxmLmxvZ19jbGlfbGV2
ZWwpCisKKyAgICAgICAgbG9nX2ZpbGUgPSBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZmls
ZScpCisgICAgICAgIGlmIGxvZ19maWxlOgorICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9sZXZl
bCA9IGdldF9hY3R1YWxfbG9nX2xldmVsKAorICAgICAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19m
aWxlX2xldmVsJykgb3IgbG9nZ2luZy5XQVJOSU5HCisKKyAgICAgICAgICAgIGxvZ19maWxlX2Zv
cm1hdCA9IGdldF9vcHRpb25faW5pKAorICAgICAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19maWxl
X2Zvcm1hdCcsICdsb2dfZm9ybWF0JykKKyAgICAgICAgICAgIGxvZ19maWxlX2RhdGVfZm9ybWF0
ID0gZ2V0X29wdGlvbl9pbmkoCisgICAgICAgICAgICAgICAgY29uZmlnLCAnbG9nX2ZpbGVfZGF0
ZV9mb3JtYXQnLCAnbG9nX2RhdGVfZm9ybWF0JykKKyAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVf
aGFuZGxlciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoCisgICAgICAgICAgICAgICAgbG9nX2ZpbGUs
CisgICAgICAgICAgICAgICAgIyBFYWNoIHB5dGVzdCBydW50ZXN0cyBzZXNzaW9uIHdpbGwgd3Jp
dGUgdG8gYSBjbGVhbiBsb2dmaWxlCisgICAgICAgICAgICAgICAgbW9kZT0ndycpCisgICAgICAg
ICAgICBsb2dfZmlsZV9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKKyAgICAgICAgICAg
ICAgICBsb2dfZmlsZV9mb3JtYXQsCisgICAgICAgICAgICAgICAgZGF0ZWZtdD1sb2dfZmlsZV9k
YXRlX2Zvcm1hdCkKKyAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlci5zZXRGb3JtYXR0
ZXIobG9nX2ZpbGVfZm9ybWF0dGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5s
b2dfZmlsZV9oYW5kbGVyID0gTm9uZQorCisgICAgQGNvbnRleHRtYW5hZ2VyCisgICAgZGVmIF9y
dW50ZXN0X2ZvcihzZWxmLCBpdGVtLCB3aGVuKToKKyAgICAgICAgIiIiSW1wbGVtZW50cyB0aGUg
aW50ZXJuYWxzIG9mIHB5dGVzdF9ydW50ZXN0X3h4eCgpIGhvb2suIiIiCisgICAgICAgIHdpdGgg
Y2F0Y2hpbmdfbG9ncyhMb2dDYXB0dXJlSGFuZGxlcigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9ybWF0dGVyPXNlbGYuZm9ybWF0dGVyKSBhcyBsb2dfaGFuZGxlcjoKKyAgICAgICAg
ICAgIGl0ZW0uY2F0Y2hfbG9nX2hhbmRsZXIgPSBsb2dfaGFuZGxlcgorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIHlpZWxkICAjIHJ1biB0ZXN0CisgICAgICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgICAgIGRlbCBpdGVtLmNhdGNoX2xvZ19oYW5kbGVyCisKKyAgICAgICAg
ICAgIGlmIHNlbGYucHJpbnRfbG9nczoKKyAgICAgICAgICAgICAgICAjIEFkZCBhIGNhcHR1cmVk
IGxvZyBzZWN0aW9uIHRvIHRoZSByZXBvcnQuCisgICAgICAgICAgICAgICAgbG9nID0gbG9nX2hh
bmRsZXIuc3RyZWFtLmdldHZhbHVlKCkuc3RyaXAoKQorICAgICAgICAgICAgICAgIGl0ZW0uYWRk
X3JlcG9ydF9zZWN0aW9uKHdoZW4sICdsb2cnLCBsb2cpCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0
ZW0pOgorICAgICAgICB3aXRoIHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICdzZXR1cCcpOgorICAg
ICAgICAgICAgeWllbGQKKworICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkK
KyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChzZWxmLCBpdGVtKToKKyAgICAgICAgd2l0aCBz
ZWxmLl9ydW50ZXN0X2ZvcihpdGVtLCAnY2FsbCcpOgorICAgICAgICAgICAgeWllbGQKKworICAg
IEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRl
c3RfdGVhcmRvd24oc2VsZiwgaXRlbSk6CisgICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3Io
aXRlbSwgJ3RlYXJkb3duJyk6CisgICAgICAgICAgICB5aWVsZAorCisgICAgQHB5dGVzdC5ob29r
aW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBweXRlc3RfcnVudGVzdGxvb3Aoc2VsZiwg
c2Vzc2lvbik6CisgICAgICAgICIiIlJ1bnMgYWxsIGNvbGxlY3RlZCB0ZXN0IGl0ZW1zLiIiIgor
ICAgICAgICB3aXRoIHNlbGYubGl2ZV9sb2dzOgorICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmls
ZV9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHdpdGggY2xvc2luZyhzZWxm
LmxvZ19maWxlX2hhbmRsZXIpOgorICAgICAgICAgICAgICAgICAgICB3aXRoIGNhdGNoaW5nX2xv
Z3Moc2VsZi5sb2dfZmlsZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV2ZWw9c2VsZi5sb2dfZmlsZV9sZXZlbCk6CisgICAgICAgICAgICAgICAgICAg
ICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cworICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9tYWluLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWluLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI1NTU0MDk4ZGFjMjk5ZjZkOWM3MWQyYmYxOTM5ZjhhZWE0MzMxMTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21haW4ucHkKQEAgLTAsMCArMSw4MjEgQEAK
KyIiIiBjb3JlIGltcGxlbWVudGF0aW9uIG9mIHRlc3RpbmcgcHJvY2VzczogaW5pdCwgc2Vzc2lv
biwgcnVudGVzdCBsb29wLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0
IG9zCitpbXBvcnQgc2l4CitpbXBvcnQgc3lzCisKK2ltcG9ydCBfcHl0ZXN0Citmcm9tIF9weXRl
c3QgaW1wb3J0IG5vZGVzCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5Cit0cnk6Cisg
ICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcgYXMgTWFwcGluZ01peGlu
CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBVc2VyRGljdCBpbXBvcnQgRGljdE1peGlu
IGFzIE1hcHBpbmdNaXhpbgorCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBkaXJlY3Rvcnlf
YXJnLCBVc2FnZUVycm9yLCBob29raW1wbAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBl
eGl0Citmcm9tIF9weXRlc3QucnVubmVyIGltcG9ydCBjb2xsZWN0X29uZV9ub2RlCisKK3RyYWNl
YmFja2N1dGRpciA9IHB5LnBhdGgubG9jYWwoX3B5dGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpCisK
KyMgZXhpdGNvZGVzIGZvciB0aGUgY29tbWFuZCBsaW5lCitFWElUX09LID0gMAorRVhJVF9URVNU
U0ZBSUxFRCA9IDEKK0VYSVRfSU5URVJSVVBURUQgPSAyCitFWElUX0lOVEVSTkFMRVJST1IgPSAz
CitFWElUX1VTQUdFRVJST1IgPSA0CitFWElUX05PVEVTVFNDT0xMRUNURUQgPSA1CisKKworZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBwYXJzZXIuYWRkaW5pKCJub3JlY3Vyc2Vk
aXJzIiwgImRpcmVjdG9yeSBwYXR0ZXJucyB0byBhdm9pZCBmb3IgcmVjdXJzaW9uIiwKKyAgICAg
ICAgICAgICAgICAgIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsnLionLCAnYnVpbGQnLCAnZGlzdCcs
ICdDVlMnLCAnX2RhcmNzJywgJ3thcmNofScsICcqLmVnZycsICd2ZW52J10pCisgICAgcGFyc2Vy
LmFkZGluaSgidGVzdHBhdGhzIiwgImRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgdGVzdHMgd2hl
biBubyBmaWxlcyBvciBkaXJlY3RvcmllcyBhcmUgZ2l2ZW4gaW4gdGhlICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY29tbWFuZCBsaW5lLiIsCisgICAgICAgICAgICAgICAgICB0
eXBlPSJhcmdzIiwgZGVmYXVsdD1bXSkKKyAgICAjIHBhcnNlci5hZGRpbmkoImRpcnBhdHRlcm5z
IiwKKyAgICAjICAgICJwYXR0ZXJucyBzcGVjaWZ5aW5nIHBvc3NpYmxlIGxvY2F0aW9ucyBvZiB0
ZXN0IGZpbGVzIiwKKyAgICAjICAgIHR5cGU9ImxpbmVsaXN0IiwgZGVmYXVsdD1bIioqL3Rlc3Rf
Ki50eHQiLAorICAgICMgICAgICAgICAgICAiKiovdGVzdF8qLnB5IiwgIioqLypfdGVzdC5weSJd
CisgICAgIyApCisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiLCAicnVubmlu
ZyBhbmQgc2VsZWN0aW9uIG9wdGlvbnMiKQorICAgIGdyb3VwLl9hZGRvcHRpb24oJy14JywgJy0t
ZXhpdGZpcnN0JywgYWN0aW9uPSJzdG9yZV9jb25zdCIsCisgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSJtYXhmYWlsIiwgY29uc3Q9MSwKKyAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImV4aXQg
aW5zdGFudGx5IG9uIGZpcnN0IGVycm9yIG9yIGZhaWxlZCB0ZXN0LiIpLAorICAgIGdyb3VwLl9h
ZGRvcHRpb24oJy0tbWF4ZmFpbCcsIG1ldGF2YXI9Im51bSIsCisgICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlc3Q9Im1heGZhaWwiLCBkZWZhdWx0PTAsCisg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJleGl0IGFmdGVyIGZpcnN0IG51bSBmYWlsdXJlcyBv
ciBlcnJvcnMuIikKKyAgICBncm91cC5fYWRkb3B0aW9uKCctLXN0cmljdCcsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJtYXJrcyBub3QgcmVnaXN0ZXJl
ZCBpbiBjb25maWd1cmF0aW9uIGZpbGUgcmFpc2UgZXJyb3JzLiIpCisgICAgZ3JvdXAuX2FkZG9w
dGlvbigiLWMiLCBtZXRhdmFyPSJmaWxlIiwgdHlwZT1zdHIsIGRlc3Q9ImluaWZpbGVuYW1lIiwK
KyAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImxvYWQgY29uZmlndXJhdGlvbiBmcm9tIGBmaWxl
YCBpbnN0ZWFkIG9mIHRyeWluZyB0byBsb2NhdGUgb25lIG9mIHRoZSBpbXBsaWNpdCAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb25maWd1cmF0aW9uIGZpbGVzLiIpCisgICAgZ3JvdXAu
X2FkZG9wdGlvbigiLS1jb250aW51ZS1vbi1jb2xsZWN0aW9uLWVycm9ycyIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBkZXN0PSJjb250
aW51ZV9vbl9jb2xsZWN0aW9uX2Vycm9ycyIsCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJG
b3JjZSB0ZXN0IGV4ZWN1dGlvbiBldmVuIGlmIGNvbGxlY3Rpb24gZXJyb3JzIG9jY3VyLiIpCisK
KyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiY29sbGVjdCIsICJjb2xsZWN0aW9uIikKKyAg
ICBncm91cC5hZGRvcHRpb24oJy0tY29sbGVjdG9ubHknLCAnLS1jb2xsZWN0LW9ubHknLCBhY3Rp
b249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IGNvbGxlY3Qg
dGVzdHMsIGRvbid0IGV4ZWN1dGUgdGhlbS4iKSwKKyAgICBncm91cC5hZGRvcHRpb24oJy0tcHlh
cmdzJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0idHJ5
IHRvIGludGVycHJldCBhbGwgYXJndW1lbnRzIGFzIHB5dGhvbiBwYWNrYWdlcy4iKQorICAgIGdy
b3VwLmFkZG9wdGlvbigiLS1pZ25vcmUiLCBhY3Rpb249ImFwcGVuZCIsIG1ldGF2YXI9InBhdGgi
LAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJpZ25vcmUgcGF0aCBkdXJpbmcgY29sbGVjdGlv
biAobXVsdGktYWxsb3dlZCkuIikKKyAgICAjIHdoZW4gY2hhbmdpbmcgdGhpcyB0byAtLWNvbmYt
Y3V0LWRpciwgY29uZmlnLnB5IENvbmZ0ZXN0LnNldGluaXRpYWwKKyAgICAjIG5lZWRzIHVwZ3Jh
ZGluZyBhcyB3ZWxsCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbmZjdXRkaXInLCBkZXN0PSJj
b25mY3V0ZGlyIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJk
aXIiLCB0eXBlPWZ1bmN0b29scy5wYXJ0aWFsKGRpcmVjdG9yeV9hcmcsIG9wdG5hbWU9Ii0tY29u
ZmN1dGRpciIpLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IGxvYWQgY29uZnRlc3Qu
cHkncyByZWxhdGl2ZSB0byBzcGVjaWZpZWQgZGlyLiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCct
LW5vY29uZnRlc3QnLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICBk
ZXN0PSJub2NvbmZ0ZXN0IiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgaGVs
cD0iRG9uJ3QgbG9hZCBhbnkgY29uZnRlc3QucHkgZmlsZXMuIikKKyAgICBncm91cC5hZGRvcHRp
b24oJy0ta2VlcGR1cGxpY2F0ZXMnLCAnLS1rZWVwLWR1cGxpY2F0ZXMnLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICAgICAgICAgICAgICBkZXN0PSJrZWVwZHVwbGljYXRlcyIsIGRlZmF1
bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IktlZXAgZHVwbGljYXRlIHRlc3Rz
LiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbGxlY3QtaW4tdmlydHVhbGVudicsIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2NvbGxlY3RfaW5fdmly
dHVhbGVudicsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0
IGlnbm9yZSB0ZXN0cyBpbiBhIGxvY2FsIHZpcnR1YWxlbnYgZGlyZWN0b3J5IikKKworICAgIGdy
b3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3Qgc2Vzc2lvbiBkZWJ1Z2dpbmcgYW5kIGNvbmZpZ3VyYXRpb24iKQorICAg
IGdyb3VwLmFkZG9wdGlvbignLS1iYXNldGVtcCcsIGRlc3Q9ImJhc2V0ZW1wIiwgZGVmYXVsdD1O
b25lLCBtZXRhdmFyPSJkaXIiLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJiYXNlIHRlbXBv
cmFyeSBkaXJlY3RvcnkgZm9yIHRoaXMgdGVzdCBydW4uIikKKworCitkZWYgcHl0ZXN0X2NvbmZp
Z3VyZShjb25maWcpOgorICAgIF9faW1wb3J0X18oJ3B5dGVzdCcpLmNvbmZpZyA9IGNvbmZpZyAg
IyBjb21wYXRpYmlsdGl5CisKKworZGVmIHdyYXBfc2Vzc2lvbihjb25maWcsIGRvaXQpOgorICAg
ICIiIlNrZWxldG9uIGNvbW1hbmQgbGluZSBwcm9ncmFtIiIiCisgICAgc2Vzc2lvbiA9IFNlc3Np
b24oY29uZmlnKQorICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfT0sKKyAgICBpbml0c3Rh
dGUgPSAwCisgICAgdHJ5OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb25maWcuX2RvX2Nv
bmZpZ3VyZSgpCisgICAgICAgICAgICBpbml0c3RhdGUgPSAxCisgICAgICAgICAgICBjb25maWcu
aG9vay5weXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb249c2Vzc2lvbikKKyAgICAgICAgICAgIGlu
aXRzdGF0ZSA9IDIKKyAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IGRvaXQoY29uZmln
LCBzZXNzaW9uKSBvciAwCisgICAgICAgIGV4Y2VwdCBVc2FnZUVycm9yOgorICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgZXhjZXB0IEZhaWxlZDoKKyAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0
YXR1cyA9IEVYSVRfVEVTVFNGQUlMRUQKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0
OgorICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisg
ICAgICAgICAgICBpZiBpbml0c3RhdGUgPCAyIGFuZCBpc2luc3RhbmNlKGV4Y2luZm8udmFsdWUs
IGV4aXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCd7MH06
IHsxfVxuJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGV4Y2luZm8udHlwZW5hbWUsIGV4
Y2luZm8udmFsdWUubXNnKSkKKyAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9rZXlib2Fy
ZF9pbnRlcnJ1cHQoZXhjaW5mbz1leGNpbmZvKQorICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3Rh
dHVzID0gRVhJVF9JTlRFUlJVUFRFRAorICAgICAgICBleGNlcHQ6ICAjIG5vcWEKKyAgICAgICAg
ICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAg
Y29uZmlnLm5vdGlmeV9leGNlcHRpb24oZXhjaW5mbywgY29uZmlnLm9wdGlvbikKKyAgICAgICAg
ICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5URVJOQUxFUlJPUgorICAgICAgICAgICAg
aWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKFN5c3RlbUV4aXQpOgorICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoIm1haW5sb29wOiBjYXVnaHQgU3B1cmlvdXMgU3lzdGVtRXhpdCFcbiIp
CisKKyAgICBmaW5hbGx5OgorICAgICAgICBleGNpbmZvID0gTm9uZSAgIyBFeHBsaWNpdGx5IGJy
ZWFrIHJlZmVyZW5jZSBjeWNsZS4KKyAgICAgICAgc2Vzc2lvbi5zdGFydGRpci5jaGRpcigpCisg
ICAgICAgIGlmIGluaXRzdGF0ZSA+PSAyOgorICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0
X3Nlc3Npb25maW5pc2goCisgICAgICAgICAgICAgICAgc2Vzc2lvbj1zZXNzaW9uLAorICAgICAg
ICAgICAgICAgIGV4aXRzdGF0dXM9c2Vzc2lvbi5leGl0c3RhdHVzKQorICAgICAgICBjb25maWcu
X2Vuc3VyZV91bmNvbmZpZ3VyZSgpCisgICAgcmV0dXJuIHNlc3Npb24uZXhpdHN0YXR1cworCisK
K2RlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6CisgICAgcmV0dXJuIHdyYXBfc2Vzc2lv
bihjb25maWcsIF9tYWluKQorCisKK2RlZiBfbWFpbihjb25maWcsIHNlc3Npb24pOgorICAgICIi
IiBkZWZhdWx0IGNvbW1hbmQgbGluZSBwcm90b2NvbCBmb3IgaW5pdGlhbGl6YXRpb24sIHNlc3Np
b24sCisgICAgcnVubmluZyB0ZXN0cyBhbmQgcmVwb3J0aW5nLiAiIiIKKyAgICBjb25maWcuaG9v
ay5weXRlc3RfY29sbGVjdGlvbihzZXNzaW9uPXNlc3Npb24pCisgICAgY29uZmlnLmhvb2sucHl0
ZXN0X3J1bnRlc3Rsb29wKHNlc3Npb249c2Vzc2lvbikKKworICAgIGlmIHNlc3Npb24udGVzdHNm
YWlsZWQ6CisgICAgICAgIHJldHVybiBFWElUX1RFU1RTRkFJTEVECisgICAgZWxpZiBzZXNzaW9u
LnRlc3RzY29sbGVjdGVkID09IDA6CisgICAgICAgIHJldHVybiBFWElUX05PVEVTVFNDT0xMRUNU
RUQKKworCitkZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6CisgICAgcmV0dXJuIHNlc3Np
b24ucGVyZm9ybV9jb2xsZWN0KCkKKworCitkZWYgcHl0ZXN0X3J1bnRlc3Rsb29wKHNlc3Npb24p
OgorICAgIGlmIChzZXNzaW9uLnRlc3RzZmFpbGVkIGFuZAorICAgICAgICAgICAgbm90IHNlc3Np
b24uY29uZmlnLm9wdGlvbi5jb250aW51ZV9vbl9jb2xsZWN0aW9uX2Vycm9ycyk6CisgICAgICAg
IHJhaXNlIHNlc3Npb24uSW50ZXJydXB0ZWQoCisgICAgICAgICAgICAiJWQgZXJyb3JzIGR1cmlu
ZyBjb2xsZWN0aW9uIiAlIHNlc3Npb24udGVzdHNmYWlsZWQpCisKKyAgICBpZiBzZXNzaW9uLmNv
bmZpZy5vcHRpb24uY29sbGVjdG9ubHk6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBmb3Ig
aSwgaXRlbSBpbiBlbnVtZXJhdGUoc2Vzc2lvbi5pdGVtcyk6CisgICAgICAgIG5leHRpdGVtID0g
c2Vzc2lvbi5pdGVtc1tpICsgMV0gaWYgaSArIDEgPCBsZW4oc2Vzc2lvbi5pdGVtcykgZWxzZSBO
b25lCisgICAgICAgIGl0ZW0uY29uZmlnLmhvb2sucHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRl
bT1pdGVtLCBuZXh0aXRlbT1uZXh0aXRlbSkKKyAgICAgICAgaWYgc2Vzc2lvbi5zaG91bGRmYWls
OgorICAgICAgICAgICAgcmFpc2Ugc2Vzc2lvbi5GYWlsZWQoc2Vzc2lvbi5zaG91bGRmYWlsKQor
ICAgICAgICBpZiBzZXNzaW9uLnNob3VsZHN0b3A6CisgICAgICAgICAgICByYWlzZSBzZXNzaW9u
LkludGVycnVwdGVkKHNlc3Npb24uc2hvdWxkc3RvcCkKKyAgICByZXR1cm4gVHJ1ZQorCisKK2Rl
ZiBfaW5fdmVudihwYXRoKToKKyAgICAiIiJBdHRlbXB0cyB0byBkZXRlY3QgaWYgYGBwYXRoYGAg
aXMgdGhlIHJvb3Qgb2YgYSBWaXJ0dWFsIEVudmlyb25tZW50IGJ5CisgICAgY2hlY2tpbmcgZm9y
IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGFjdGl2YXRlIHNjcmlwdCIiIgorICAg
IGJpbmRpciA9IHBhdGguam9pbignU2NyaXB0cycgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgo
J3dpbicpIGVsc2UgJ2JpbicpCisgICAgaWYgbm90IGJpbmRpci5leGlzdHMoKToKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgYWN0aXZhdGVzID0gKCdhY3RpdmF0ZScsICdhY3RpdmF0ZS5jc2gn
LCAnYWN0aXZhdGUuZmlzaCcsCisgICAgICAgICAgICAgICAgICdBY3RpdmF0ZScsICdBY3RpdmF0
ZS5iYXQnLCAnQWN0aXZhdGUucHMxJykKKyAgICByZXR1cm4gYW55KFtmbmFtZS5iYXNlbmFtZSBp
biBhY3RpdmF0ZXMgZm9yIGZuYW1lIGluIGJpbmRpci5saXN0ZGlyKCldKQorCisKK2RlZiBweXRl
c3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToKKyAgICBpZ25vcmVfcGF0aHMgPSBjb25m
aWcuX2dldGNvbmZ0ZXN0X3BhdGhsaXN0KCJjb2xsZWN0X2lnbm9yZSIsIHBhdGg9cGF0aC5kaXJw
YXRoKCkpCisgICAgaWdub3JlX3BhdGhzID0gaWdub3JlX3BhdGhzIG9yIFtdCisgICAgZXhjbHVk
ZW9wdCA9IGNvbmZpZy5nZXRvcHRpb24oImlnbm9yZSIpCisgICAgaWYgZXhjbHVkZW9wdDoKKyAg
ICAgICAgaWdub3JlX3BhdGhzLmV4dGVuZChbcHkucGF0aC5sb2NhbCh4KSBmb3IgeCBpbiBleGNs
dWRlb3B0XSkKKworICAgIGlmIHB5LnBhdGgubG9jYWwocGF0aCkgaW4gaWdub3JlX3BhdGhzOgor
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgYWxsb3dfaW5fdmVudiA9IGNvbmZpZy5nZXRvcHRp
b24oImNvbGxlY3RfaW5fdmlydHVhbGVudiIpCisgICAgaWYgX2luX3ZlbnYocGF0aCkgYW5kIG5v
dCBhbGxvd19pbl92ZW52OgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgIyBTa2lwIGR1cGxp
Y2F0ZSBwYXRocy4KKyAgICBrZWVwZHVwbGljYXRlcyA9IGNvbmZpZy5nZXRvcHRpb24oImtlZXBk
dXBsaWNhdGVzIikKKyAgICBkdXBsaWNhdGVfcGF0aHMgPSBjb25maWcucGx1Z2lubWFuYWdlci5f
ZHVwbGljYXRlcGF0aHMKKyAgICBpZiBub3Qga2VlcGR1cGxpY2F0ZXM6CisgICAgICAgIGlmIHBh
dGggaW4gZHVwbGljYXRlX3BhdGhzOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRocy5hZGQocGF0aCkKKworICAgIHJldHVy
biBGYWxzZQorCisKK2NsYXNzIEZTSG9va1Byb3h5OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
c3BhdGgsIHBtLCByZW1vdmVfbW9kcyk6CisgICAgICAgIHNlbGYuZnNwYXRoID0gZnNwYXRoCisg
ICAgICAgIHNlbGYucG0gPSBwbQorICAgICAgICBzZWxmLnJlbW92ZV9tb2RzID0gcmVtb3ZlX21v
ZHMKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgeCA9IHNlbGYu
cG0uc3Vic2V0X2hvb2tfY2FsbGVyKG5hbWUsIHJlbW92ZV9wbHVnaW5zPXNlbGYucmVtb3ZlX21v
ZHMpCisgICAgICAgIHNlbGYuX19kaWN0X19bbmFtZV0gPSB4CisgICAgICAgIHJldHVybiB4CisK
KworY2xhc3MgX0NvbXBhdFByb3BlcnR5KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5hbWUpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisKKyAgICBkZWYgX19nZXRfXyhzZWxm
LCBvYmosIG93bmVyKToKKyAgICAgICAgaWYgb2JqIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1
cm4gc2VsZgorCisgICAgICAgICMgVE9ETzogcmVlbmFibGUgaW4gdGhlIGZlYXR1cmVzIGJyYW5j
aAorICAgICAgICAjIHdhcm5pbmdzLndhcm4oCisgICAgICAgICMgICAgICJ1c2FnZSBvZiB7b3du
ZXIhcn0ue25hbWV9IGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgcHl0ZXN0LntuYW1lfSBpbnN0
ZWFkIi5mb3JtYXQoCisgICAgICAgICMgICAgICAgICBuYW1lPXNlbGYubmFtZSwgb3duZXI9dHlw
ZShvd25lcikuX19uYW1lX18pLAorICAgICAgICAjICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJu
aW5nLCBzdGFja2xldmVsPTIpCisgICAgICAgIHJldHVybiBnZXRhdHRyKF9faW1wb3J0X18oJ3B5
dGVzdCcpLCBzZWxmLm5hbWUpCisKKworY2xhc3MgTm9kZUtleXdvcmRzKE1hcHBpbmdNaXhpbik6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgorICAgICAgICBzZWxmLm5vZGUgPSBub2Rl
CisgICAgICAgIHNlbGYucGFyZW50ID0gbm9kZS5wYXJlbnQKKyAgICAgICAgc2VsZi5fbWFya2Vy
cyA9IHtub2RlLm5hbWU6IFRydWV9CisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21hcmtlcnNba2V5XQorICAg
ICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBpZiBzZWxmLnBhcmVudCBpcyBOb25l
OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQu
a2V5d29yZHNba2V5XQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgor
ICAgICAgICBzZWxmLl9tYXJrZXJzW2tleV0gPSB2YWx1ZQorCisgICAgZGVmIF9fZGVsaXRlbV9f
KHNlbGYsIGtleSk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBkZWxldGUga2V5
IGluIGtleXdvcmRzIGRpY3QiKQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBz
ZWVuID0gc2V0KHNlbGYuX21hcmtlcnMpCisgICAgICAgIGlmIHNlbGYucGFyZW50IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgc2Vlbi51cGRhdGUoc2VsZi5wYXJlbnQua2V5d29yZHMpCisgICAg
ICAgIHJldHVybiBpdGVyKHNlZW4pCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIGxlbihzZWxmLl9faXRlcl9fKCkpCisKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGxpc3Qoc2VsZikKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAg
cmV0dXJuICI8Tm9kZUtleXdvcmRzIGZvciBub2RlICVzPiIgJSAoc2VsZi5ub2RlLCApCisKKwor
Y2xhc3MgTm9kZShvYmplY3QpOgorICAgICIiIiBiYXNlIGNsYXNzIGZvciBDb2xsZWN0b3IgYW5k
IEl0ZW0gdGhlIHRlc3QgY29sbGVjdGlvbiB0cmVlLgorICAgIENvbGxlY3RvciBzdWJjbGFzc2Vz
IGhhdmUgY2hpbGRyZW4sIEl0ZW1zIGFyZSB0ZXJtaW5hbCBub2Rlcy4iIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5vbmUsIHNlc3Npb249Tm9u
ZSk6CisgICAgICAgICM6IGEgdW5pcXVlIG5hbWUgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgcGFy
ZW50IG5vZGUKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorCisgICAgICAgICM6IHRoZSBwYXJl
bnQgY29sbGVjdG9yIG5vZGUuCisgICAgICAgIHNlbGYucGFyZW50ID0gcGFyZW50CisKKyAgICAg
ICAgIzogdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0CisgICAgICAgIHNlbGYuY29uZmlnID0gY29u
ZmlnIG9yIHBhcmVudC5jb25maWcKKworICAgICAgICAjOiB0aGUgc2Vzc2lvbiB0aGlzIG5vZGUg
aXMgcGFydCBvZgorICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uIG9yIHBhcmVudC5zZXNz
aW9uCisKKyAgICAgICAgIzogZmlsZXN5c3RlbSBwYXRoIHdoZXJlIHRoaXMgbm9kZSB3YXMgY29s
bGVjdGVkIGZyb20gKGNhbiBiZSBOb25lKQorICAgICAgICBzZWxmLmZzcGF0aCA9IGdldGF0dHIo
cGFyZW50LCAnZnNwYXRoJywgTm9uZSkKKworICAgICAgICAjOiBrZXl3b3Jkcy9tYXJrZXJzIGNv
bGxlY3RlZCBmcm9tIGFsbCBzY29wZXMKKyAgICAgICAgc2VsZi5rZXl3b3JkcyA9IE5vZGVLZXl3
b3JkcyhzZWxmKQorCisgICAgICAgICM6IGFsbG93IGFkZGluZyBvZiBleHRyYSBrZXl3b3JkcyB0
byB1c2UgZm9yIG1hdGNoaW5nCisgICAgICAgIHNlbGYuZXh0cmFfa2V5d29yZF9tYXRjaGVzID0g
c2V0KCkKKworICAgICAgICAjIHVzZWQgZm9yIHN0b3JpbmcgYXJ0aWZpY2lhbCBmaXh0dXJlZGVm
cyBmb3IgZGlyZWN0IHBhcmFtZXRyaXphdGlvbgorICAgICAgICBzZWxmLl9uYW1lMnBzZXVkb2Zp
eHR1cmVkZWYgPSB7fQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlob29rKHNlbGYpOgorICAg
ICAgICAiIiIgZnNwYXRoIHNlbnNpdGl2ZSBob29rIHByb3h5IHVzZWQgdG8gY2FsbCBweXRlc3Qg
aG9va3MiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5nZXRob29rcHJveHkoc2VsZi5m
c3BhdGgpCisKKyAgICBNb2R1bGUgPSBfQ29tcGF0UHJvcGVydHkoIk1vZHVsZSIpCisgICAgQ2xh
c3MgPSBfQ29tcGF0UHJvcGVydHkoIkNsYXNzIikKKyAgICBJbnN0YW5jZSA9IF9Db21wYXRQcm9w
ZXJ0eSgiSW5zdGFuY2UiKQorICAgIEZ1bmN0aW9uID0gX0NvbXBhdFByb3BlcnR5KCJGdW5jdGlv
biIpCisgICAgRmlsZSA9IF9Db21wYXRQcm9wZXJ0eSgiRmlsZSIpCisgICAgSXRlbSA9IF9Db21w
YXRQcm9wZXJ0eSgiSXRlbSIpCisKKyAgICBkZWYgX2dldGN1c3RvbWNsYXNzKHNlbGYsIG5hbWUp
OgorICAgICAgICBtYXliZV9jb21wYXRwcm9wID0gZ2V0YXR0cih0eXBlKHNlbGYpLCBuYW1lKQor
ICAgICAgICBpZiBpc2luc3RhbmNlKG1heWJlX2NvbXBhdHByb3AsIF9Db21wYXRQcm9wZXJ0eSk6
CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihfX2ltcG9ydF9fKCdweXRlc3QnKSwgbmFtZSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNscyA9IGdldGF0dHIoc2VsZiwgbmFtZSkKKyAg
ICAgICAgICAgICMgVE9ETzogcmVlbmFibGUgaW4gdGhlIGZlYXR1cmVzIGJyYW5jaAorICAgICAg
ICAgICAgIyB3YXJuaW5ncy53YXJuKCJ1c2Ugb2Ygbm9kZS4lcyBpcyBkZXByZWNhdGVkLCAiCisg
ICAgICAgICAgICAjICAgICJ1c2UgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbSguLi4pIHRvIGNy
ZWF0ZSBjdXN0b20gIgorICAgICAgICAgICAgIyAgICAiY29sbGVjdGlvbiBub2RlcyIgJSBuYW1l
LCBjYXRlZ29yeT1EZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIHJldHVybiBjbHMKKworICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8JXMgJXI+IiAlIChzZWxmLl9f
Y2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHNl
bGYsICduYW1lJywgTm9uZSkpCisKKyAgICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNzYWdlKToK
KyAgICAgICAgIiIiIGdlbmVyYXRlIGEgd2FybmluZyB3aXRoIHRoZSBnaXZlbiBjb2RlIGFuZCBt
ZXNzYWdlIGZvciB0aGlzCisgICAgICAgIGl0ZW0uICIiIgorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb2RlLCBzdHIpCisgICAgICAgIGZzbG9jYXRpb24gPSBnZXRhdHRyKHNlbGYsICJsb2Nh
dGlvbiIsIE5vbmUpCisgICAgICAgIGlmIGZzbG9jYXRpb24gaXMgTm9uZToKKyAgICAgICAgICAg
IGZzbG9jYXRpb24gPSBnZXRhdHRyKHNlbGYsICJmc3BhdGgiLCBOb25lKQorICAgICAgICBzZWxm
Lmlob29rLnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QoCisgICAg
ICAgICAgICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2FnZSwKKyAgICAgICAgICAgIG5vZGVpZD1z
ZWxmLm5vZGVpZCwgZnNsb2NhdGlvbj1mc2xvY2F0aW9uKSkKKworICAgICMgbWV0aG9kcyBmb3Ig
b3JkZXJpbmcgbm9kZXMKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZWlkKHNlbGYpOgorICAg
ICAgICAiIiIgYSA6Oi1zZXBhcmF0ZWQgc3RyaW5nIGRlbm90aW5nIGl0cyBjb2xsZWN0aW9uIHRy
ZWUgYWRkcmVzcy4gIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9u
b2RlaWQKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgc2VsZi5f
bm9kZWlkID0geCA9IHNlbGYuX21ha2VpZCgpCisgICAgICAgICAgICByZXR1cm4geAorCisgICAg
ZGVmIF9tYWtlaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5ub2RlaWQgKyAi
OjoiICsgc2VsZi5uYW1lCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVy
biBoYXNoKHNlbGYubm9kZWlkKQorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBsaXN0
Y2hhaW4oc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGlzdCBvZiBhbGwgcGFyZW50IGNvbGxl
Y3RvcnMgdXAgdG8gc2VsZiwKKyAgICAgICAgICAgIHN0YXJ0aW5nIGZyb20gcm9vdCBvZiBjb2xs
ZWN0aW9uIHRyZWUuICIiIgorICAgICAgICBjaGFpbiA9IFtdCisgICAgICAgIGl0ZW0gPSBzZWxm
CisgICAgICAgIHdoaWxlIGl0ZW0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBjaGFpbi5hcHBl
bmQoaXRlbSkKKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnBhcmVudAorICAgICAgICBjaGFpbi5y
ZXZlcnNlKCkKKyAgICAgICAgcmV0dXJuIGNoYWluCisKKyAgICBkZWYgYWRkX21hcmtlcihzZWxm
LCBtYXJrZXIpOgorICAgICAgICAiIiIgZHluYW1pY2FsbHkgYWRkIGEgbWFya2VyIG9iamVjdCB0
byB0aGUgbm9kZS4KKworICAgICAgICBgYG1hcmtlcmBgIGNhbiBiZSBhIHN0cmluZyBvciBweXRl
c3QubWFyay4qIGluc3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lm1h
cmsgaW1wb3J0IE1hcmtEZWNvcmF0b3IsIE1BUktfR0VOCisgICAgICAgIGlmIGlzaW5zdGFuY2Uo
bWFya2VyLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIG1hcmtlciA9IGdldGF0dHIo
TUFSS19HRU4sIG1hcmtlcikKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShtYXJrZXIsIE1h
cmtEZWNvcmF0b3IpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaXMgbm90IGEgc3Ry
aW5nIG9yIHB5dGVzdC5tYXJrLiogTWFya2VyIikKKyAgICAgICAgc2VsZi5rZXl3b3Jkc1ttYXJr
ZXIubmFtZV0gPSBtYXJrZXIKKworICAgIGRlZiBnZXRfbWFya2VyKHNlbGYsIG5hbWUpOgorICAg
ICAgICAiIiIgZ2V0IGEgbWFya2VyIG9iamVjdCBmcm9tIHRoaXMgbm9kZSBvciBOb25lIGlmCisg
ICAgICAgIHRoZSBub2RlIGRvZXNuJ3QgaGF2ZSBhIG1hcmtlciB3aXRoIHRoYXQgbmFtZS4gIiIi
CisgICAgICAgIHZhbCA9IHNlbGYua2V5d29yZHMuZ2V0KG5hbWUsIE5vbmUpCisgICAgICAgIGlm
IHZhbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBN
YXJrSW5mbywgTWFya0RlY29yYXRvcgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIChN
YXJrRGVjb3JhdG9yLCBNYXJrSW5mbykpOgorICAgICAgICAgICAgICAgIHJldHVybiB2YWwKKwor
ICAgIGRlZiBsaXN0ZXh0cmFrZXl3b3JkcyhzZWxmKToKKyAgICAgICAgIiIiIFJldHVybiBhIHNl
dCBvZiBhbGwgZXh0cmEga2V5d29yZHMgaW4gc2VsZiBhbmQgYW55IHBhcmVudHMuIiIiCisgICAg
ICAgIGV4dHJhX2tleXdvcmRzID0gc2V0KCkKKyAgICAgICAgaXRlbSA9IHNlbGYKKyAgICAgICAg
Zm9yIGl0ZW0gaW4gc2VsZi5saXN0Y2hhaW4oKToKKyAgICAgICAgICAgIGV4dHJhX2tleXdvcmRz
LnVwZGF0ZShpdGVtLmV4dHJhX2tleXdvcmRfbWF0Y2hlcykKKyAgICAgICAgcmV0dXJuIGV4dHJh
X2tleXdvcmRzCisKKyAgICBkZWYgbGlzdG5hbWVzKHNlbGYpOgorICAgICAgICByZXR1cm4gW3gu
bmFtZSBmb3IgeCBpbiBzZWxmLmxpc3RjaGFpbigpXQorCisgICAgZGVmIGFkZGZpbmFsaXplcihz
ZWxmLCBmaW4pOgorICAgICAgICAiIiIgcmVnaXN0ZXIgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQg
d2hlbiB0aGlzIG5vZGUgaXMgZmluYWxpemVkLgorCisgICAgICAgIFRoaXMgbWV0aG9kIGNhbiBv
bmx5IGJlIGNhbGxlZCB3aGVuIHRoaXMgbm9kZSBpcyBhY3RpdmUKKyAgICAgICAgaW4gYSBzZXR1
cCBjaGFpbiwgZm9yIGV4YW1wbGUgZHVyaW5nIHNlbGYuc2V0dXAoKS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoZmluLCBzZWxmKQor
CisgICAgZGVmIGdldHBhcmVudChzZWxmLCBjbHMpOgorICAgICAgICAiIiIgZ2V0IHRoZSBuZXh0
IHBhcmVudCBub2RlIChpbmNsdWRpbmcgb3Vyc2VsZikKKyAgICAgICAgd2hpY2ggaXMgYW4gaW5z
dGFuY2Ugb2YgdGhlIGdpdmVuIGNsYXNzIiIiCisgICAgICAgIGN1cnJlbnQgPSBzZWxmCisgICAg
ICAgIHdoaWxlIGN1cnJlbnQgYW5kIG5vdCBpc2luc3RhbmNlKGN1cnJlbnQsIGNscyk6CisgICAg
ICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQK
KworICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6CisgICAgICAgIHBhc3MK
KworICAgIGRlZiBfcmVwcl9mYWlsdXJlX3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPU5vbmUpOgor
ICAgICAgICBmbSA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKKyAgICAgICAgaWYgZXhj
aW5mby5lcnJpc2luc3RhbmNlKGZtLkZpeHR1cmVMb29rdXBFcnJvcik6CisgICAgICAgICAgICBy
ZXR1cm4gZXhjaW5mby52YWx1ZS5mb3JtYXRyZXByKCkKKyAgICAgICAgdGJmaWx0ZXIgPSBUcnVl
CisgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6CisgICAgICAgICAgICBz
dHlsZSA9ICJsb25nIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGIgPSBfcHl0ZXN0Ll9j
b2RlLlRyYWNlYmFjayhbZXhjaW5mby50cmFjZWJhY2tbLTFdXSkKKyAgICAgICAgICAgIHNlbGYu
X3BydW5ldHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgICAgICBpZiBsZW4oZXhjaW5mby50cmFj
ZWJhY2spID09IDA6CisgICAgICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSB0YgorICAg
ICAgICAgICAgdGJmaWx0ZXIgPSBGYWxzZSAgIyBwcnVuZXRyYWNlYmFjayBhbHJlYWR5IGRvZXMg
aXQKKyAgICAgICAgICAgIGlmIHN0eWxlID09ICJhdXRvIjoKKyAgICAgICAgICAgICAgICBzdHls
ZSA9ICJsb25nIgorICAgICAgICAjIFhYWCBzaG91bGQgZXhjaW5mby5nZXRyZXByIHJlY29yZCBh
bGwgZGF0YSBhbmQgdG90ZXJtaW5hbCgpIHByb2Nlc3MgaXQ/CisgICAgICAgIGlmIHN0eWxlIGlz
IE5vbmU6CisgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9PSAic2hv
cnQiOgorICAgICAgICAgICAgICAgIHN0eWxlID0gInNob3J0IgorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBzdHlsZSA9ICJsb25nIgorCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIG9zLmdldGN3ZCgpCisgICAgICAgICAgICBhYnNwYXRoID0gRmFsc2UKKyAgICAgICAgZXhj
ZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBhYnNwYXRoID0gVHJ1ZQorCisgICAgICAgIHJldHVy
biBleGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSwgYWJzcGF0aD1hYnNwYXRoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NhbHM9c2VsZi5jb25maWcub3B0aW9uLnNo
b3dsb2NhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9c3R5bGUsIHRi
ZmlsdGVyPXRiZmlsdGVyKQorCisgICAgcmVwcl9mYWlsdXJlID0gX3JlcHJfZmFpbHVyZV9weQor
CisKK2NsYXNzIENvbGxlY3RvcihOb2RlKToKKyAgICAiIiIgQ29sbGVjdG9yIGluc3RhbmNlcyBj
cmVhdGUgY2hpbGRyZW4gdGhyb3VnaCBjb2xsZWN0KCkKKyAgICAgICAgYW5kIHRodXMgaXRlcmF0
aXZlbHkgYnVpbGQgYSB0cmVlLgorICAgICIiIgorCisgICAgY2xhc3MgQ29sbGVjdEVycm9yKEV4
Y2VwdGlvbik6CisgICAgICAgICIiIiBhbiBlcnJvciBkdXJpbmcgY29sbGVjdGlvbiwgY29udGFp
bnMgYSBjdXN0b20gbWVzc2FnZS4gIiIiCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAg
ICAgIiIiIHJldHVybnMgYSBsaXN0IG9mIGNoaWxkcmVuIChpdGVtcyBhbmQgY29sbGVjdG9ycykK
KyAgICAgICAgICAgIGZvciB0aGlzIGNvbGxlY3Rpb24gbm9kZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImFic3RyYWN0IikKKworICAgIGRlZiByZXBy
X2ZhaWx1cmUoc2VsZiwgZXhjaW5mbyk6CisgICAgICAgICIiIiByZXByZXNlbnQgYSBjb2xsZWN0
aW9uIGZhaWx1cmUuICIiIgorICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2VsZi5D
b2xsZWN0RXJyb3IpOgorICAgICAgICAgICAgZXhjID0gZXhjaW5mby52YWx1ZQorICAgICAgICAg
ICAgcmV0dXJuIHN0cihleGMuYXJnc1swXSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfZmFp
bHVyZV9weShleGNpbmZvLCBzdHlsZT0ic2hvcnQiKQorCisgICAgZGVmIF9wcnVuZXRyYWNlYmFj
ayhzZWxmLCBleGNpbmZvKToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZnNwYXRoJyk6Cisg
ICAgICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjaworICAgICAgICAgICAgbnRy
YWNlYmFjayA9IHRyYWNlYmFjay5jdXQocGF0aD1zZWxmLmZzcGF0aCkKKyAgICAgICAgICAgIGlm
IG50cmFjZWJhY2sgPT0gdHJhY2ViYWNrOgorICAgICAgICAgICAgICAgIG50cmFjZWJhY2sgPSBu
dHJhY2ViYWNrLmN1dChleGNsdWRlcGF0aD10cmFjZWJhY2tjdXRkaXIpCisgICAgICAgICAgICBl
eGNpbmZvLnRyYWNlYmFjayA9IG50cmFjZWJhY2suZmlsdGVyKCkKKworCitjbGFzcyBGU0NvbGxl
Y3RvcihDb2xsZWN0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmc3BhdGgsIHBhcmVudD1O
b25lLCBjb25maWc9Tm9uZSwgc2Vzc2lvbj1Ob25lKToKKyAgICAgICAgZnNwYXRoID0gcHkucGF0
aC5sb2NhbChmc3BhdGgpICAjIHh4eCBvbmx5IGZvciB0ZXN0X3Jlc3VsdGxvZy5weT8KKyAgICAg
ICAgbmFtZSA9IGZzcGF0aC5iYXNlbmFtZQorICAgICAgICBpZiBwYXJlbnQgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICByZWwgPSBmc3BhdGgucmVsdG8ocGFyZW50LmZzcGF0aCkKKyAgICAgICAg
ICAgIGlmIHJlbDoKKyAgICAgICAgICAgICAgICBuYW1lID0gcmVsCisgICAgICAgICAgICBuYW1l
ID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgbm9kZXMuU0VQKQorICAgICAgICBzdXBlcihGU0NvbGxl
Y3Rvciwgc2VsZikuX19pbml0X18obmFtZSwgcGFyZW50LCBjb25maWcsIHNlc3Npb24pCisgICAg
ICAgIHNlbGYuZnNwYXRoID0gZnNwYXRoCisKKyAgICBkZWYgX2NoZWNrX2luaXRpYWxwYXRoc19m
b3JfcmVscGF0aChzZWxmKToKKyAgICAgICAgZm9yIGluaXRpYWxwYXRoIGluIHNlbGYuc2Vzc2lv
bi5faW5pdGlhbHBhdGhzOgorICAgICAgICAgICAgaWYgc2VsZi5mc3BhdGguY29tbW9uKGluaXRp
YWxwYXRoKSA9PSBpbml0aWFscGF0aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5mc3Bh
dGgucmVsdG8oaW5pdGlhbHBhdGguZGlybmFtZSkKKworICAgIGRlZiBfbWFrZWlkKHNlbGYpOgor
ICAgICAgICByZWxwYXRoID0gc2VsZi5mc3BhdGgucmVsdG8oc2VsZi5jb25maWcucm9vdGRpcikK
KworICAgICAgICBpZiBub3QgcmVscGF0aDoKKyAgICAgICAgICAgIHJlbHBhdGggPSBzZWxmLl9j
aGVja19pbml0aWFscGF0aHNfZm9yX3JlbHBhdGgoKQorICAgICAgICBpZiBvcy5zZXAgIT0gbm9k
ZXMuU0VQOgorICAgICAgICAgICAgcmVscGF0aCA9IHJlbHBhdGgucmVwbGFjZShvcy5zZXAsIG5v
ZGVzLlNFUCkKKyAgICAgICAgcmV0dXJuIHJlbHBhdGgKKworCitjbGFzcyBGaWxlKEZTQ29sbGVj
dG9yKToKKyAgICAiIiIgYmFzZSBjbGFzcyBmb3IgY29sbGVjdGluZyB0ZXN0cyBmcm9tIGEgZmls
ZS4gIiIiCisKKworY2xhc3MgSXRlbShOb2RlKToKKyAgICAiIiIgYSBiYXNpYyB0ZXN0IGludm9j
YXRpb24gaXRlbS4gTm90ZSB0aGF0IGZvciBhIHNpbmdsZSBmdW5jdGlvbgorICAgIHRoZXJlIG1p
Z2h0IGJlIG11bHRpcGxlIHRlc3QgaW52b2NhdGlvbiBpdGVtcy4KKyAgICAiIiIKKyAgICBuZXh0
aXRlbSA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQ9Tm9uZSwg
Y29uZmlnPU5vbmUsIHNlc3Npb249Tm9uZSk6CisgICAgICAgIHN1cGVyKEl0ZW0sIHNlbGYpLl9f
aW5pdF9fKG5hbWUsIHBhcmVudCwgY29uZmlnLCBzZXNzaW9uKQorICAgICAgICBzZWxmLl9yZXBv
cnRfc2VjdGlvbnMgPSBbXQorCisgICAgZGVmIGFkZF9yZXBvcnRfc2VjdGlvbihzZWxmLCB3aGVu
LCBrZXksIGNvbnRlbnQpOgorICAgICAgICAiIiIKKyAgICAgICAgQWRkcyBhIG5ldyByZXBvcnQg
c2VjdGlvbiwgc2ltaWxhciB0byB3aGF0J3MgZG9uZSBpbnRlcm5hbGx5IHRvIGFkZCBzdGRvdXQg
YW5kCisgICAgICAgIHN0ZGVyciBjYXB0dXJlZCBvdXRwdXQ6OgorCisgICAgICAgICAgICBpdGVt
LmFkZF9yZXBvcnRfc2VjdGlvbigiY2FsbCIsICJzdGRvdXQiLCAicmVwb3J0IHNlY3Rpb24gY29u
dGVudHMiKQorCisgICAgICAgIDpwYXJhbSBzdHIgd2hlbjoKKyAgICAgICAgICAgIE9uZSBvZiB0
aGUgcG9zc2libGUgY2FwdHVyZSBzdGF0ZXMsIGBgInNldHVwImBgLCBgYCJjYWxsImBgLCBgYCJ0
ZWFyZG93biJgYC4KKyAgICAgICAgOnBhcmFtIHN0ciBrZXk6CisgICAgICAgICAgICBOYW1lIG9m
IHRoZSBzZWN0aW9uLCBjYW4gYmUgY3VzdG9taXplZCBhdCB3aWxsLiBQeXRlc3QgdXNlcyBgYCJz
dGRvdXQiYGAgYW5kCisgICAgICAgICAgICBgYCJzdGRlcnIiYGAgaW50ZXJuYWxseS4KKworICAg
ICAgICA6cGFyYW0gc3RyIGNvbnRlbnQ6CisgICAgICAgICAgICBUaGUgZnVsbCBjb250ZW50cyBh
cyBhIHN0cmluZy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGNvbnRlbnQ6CisgICAgICAgICAg
ICBzZWxmLl9yZXBvcnRfc2VjdGlvbnMuYXBwZW5kKCh3aGVuLCBrZXksIGNvbnRlbnQpKQorCisg
ICAgZGVmIHJlcG9ydGluZm8oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZzcGF0aCwgTm9u
ZSwgIiIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhdGlvbihzZWxmKToKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xvY2F0aW9uCisgICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIGxvY2F0aW9uID0gc2VsZi5yZXBvcnRpbmZvKCkK
KyAgICAgICAgICAgICMgYmVzdHJlbHBhdGggaXMgYSBxdWl0ZSBzbG93IGZ1bmN0aW9uCisgICAg
ICAgICAgICBjYWNoZSA9IHNlbGYuY29uZmlnLl9fZGljdF9fLnNldGRlZmF1bHQoIl9iZXN0cmVs
cGF0aGNhY2hlIiwge30pCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZnNwYXRo
ID0gY2FjaGVbbG9jYXRpb25bMF1dCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAg
ICAgICAgICAgICAgZnNwYXRoID0gc2VsZi5zZXNzaW9uLmZzcGF0aC5iZXN0cmVscGF0aChsb2Nh
dGlvblswXSkKKyAgICAgICAgICAgICAgICBjYWNoZVtsb2NhdGlvblswXV0gPSBmc3BhdGgKKyAg
ICAgICAgICAgIGxvY2F0aW9uID0gKGZzcGF0aCwgbG9jYXRpb25bMV0sIHN0cihsb2NhdGlvblsy
XSkpCisgICAgICAgICAgICBzZWxmLl9sb2NhdGlvbiA9IGxvY2F0aW9uCisgICAgICAgICAgICBy
ZXR1cm4gbG9jYXRpb24KKworCitjbGFzcyBOb01hdGNoKEV4Y2VwdGlvbik6CisgICAgIiIiIHJh
aXNlZCBpZiBtYXRjaGluZyBjYW5ub3QgbG9jYXRlIGEgbWF0Y2hpbmcgbmFtZXMuICIiIgorCisK
K2NsYXNzIEludGVycnVwdGVkKEtleWJvYXJkSW50ZXJydXB0KToKKyAgICAiIiIgc2lnbmFscyBh
biBpbnRlcnJ1cHRlZCB0ZXN0IHJ1bi4gIiIiCisgICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycg
ICMgZm9yIHB5MworCisKK2NsYXNzIEZhaWxlZChFeGNlcHRpb24pOgorICAgICIiIiBzaWduYWxz
IGFuIHN0b3AgYXMgZmFpbGVkIHRlc3QgcnVuLiAiIiIKKworCitjbGFzcyBTZXNzaW9uKEZTQ29s
bGVjdG9yKToKKyAgICBJbnRlcnJ1cHRlZCA9IEludGVycnVwdGVkCisgICAgRmFpbGVkID0gRmFp
bGVkCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgRlNDb2xsZWN0
b3IuX19pbml0X18oc2VsZiwgY29uZmlnLnJvb3RkaXIsIHBhcmVudD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25maWc9Y29uZmlnLCBzZXNzaW9uPXNlbGYpCisgICAgICAg
IHNlbGYudGVzdHNmYWlsZWQgPSAwCisgICAgICAgIHNlbGYudGVzdHNjb2xsZWN0ZWQgPSAwCisg
ICAgICAgIHNlbGYuc2hvdWxkc3RvcCA9IEZhbHNlCisgICAgICAgIHNlbGYuc2hvdWxkZmFpbCA9
IEZhbHNlCisgICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImNvbGxl
Y3Rpb24iKQorICAgICAgICBzZWxmLl9ub3JlY3Vyc2VwYXR0ZXJucyA9IGNvbmZpZy5nZXRpbmko
Im5vcmVjdXJzZWRpcnMiKQorICAgICAgICBzZWxmLnN0YXJ0ZGlyID0gcHkucGF0aC5sb2NhbCgp
CisgICAgICAgIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoc2VsZiwgbmFtZT0i
c2Vzc2lvbiIpCisKKyAgICBkZWYgX21ha2VpZChzZWxmKToKKyAgICAgICAgcmV0dXJuICIiCisK
KyAgICBAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3RzdGFy
dChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zaG91bGRmYWlsOgorICAgICAgICAgICAgcmFpc2Ug
c2VsZi5GYWlsZWQoc2VsZi5zaG91bGRmYWlsKQorICAgICAgICBpZiBzZWxmLnNob3VsZHN0b3A6
CisgICAgICAgICAgICByYWlzZSBzZWxmLkludGVycnVwdGVkKHNlbGYuc2hvdWxkc3RvcCkKKwor
ICAgIEBob29raW1wbCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgcmVwb3J0LmZhaWxlZCBhbmQgbm90IGhh
c2F0dHIocmVwb3J0LCAnd2FzeGZhaWwnKToKKyAgICAgICAgICAgIHNlbGYudGVzdHNmYWlsZWQg
Kz0gMQorICAgICAgICAgICAgbWF4ZmFpbCA9IHNlbGYuY29uZmlnLmdldHZhbHVlKCJtYXhmYWls
IikKKyAgICAgICAgICAgIGlmIG1heGZhaWwgYW5kIHNlbGYudGVzdHNmYWlsZWQgPj0gbWF4ZmFp
bDoKKyAgICAgICAgICAgICAgICBzZWxmLnNob3VsZGZhaWwgPSAic3RvcHBpbmcgYWZ0ZXIgJWQg
ZmFpbHVyZXMiICUgKAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzZmFpbGVkKQorICAg
IHB5dGVzdF9jb2xsZWN0cmVwb3J0ID0gcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0CisKKyAgICBk
ZWYgaXNpbml0cGF0aChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIHBhdGggaW4gc2VsZi5f
aW5pdGlhbHBhdGhzCisKKyAgICBkZWYgZ2V0aG9va3Byb3h5KHNlbGYsIGZzcGF0aCk6CisgICAg
ICAgICMgY2hlY2sgaWYgd2UgaGF2ZSB0aGUgY29tbW9uIGNhc2Ugb2YgcnVubmluZworICAgICAg
ICAjIGhvb2tzIHdpdGggYWxsIGNvbmZ0ZXN0LnB5IGZpbGVzYWxsIGNvbmZ0ZXN0LnB5CisgICAg
ICAgIHBtID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlcgorICAgICAgICBteV9jb25mdGVzdG1v
ZHVsZXMgPSBwbS5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGZzcGF0aCkKKyAgICAgICAgcmVtb3ZlX21v
ZHMgPSBwbS5fY29uZnRlc3RfcGx1Z2lucy5kaWZmZXJlbmNlKG15X2NvbmZ0ZXN0bW9kdWxlcykK
KyAgICAgICAgaWYgcmVtb3ZlX21vZHM6CisgICAgICAgICAgICAjIG9uZSBvciBtb3JlIGNvbmZ0
ZXN0cyBhcmUgbm90IGluIHVzZSBhdCB0aGlzIGZzcGF0aAorICAgICAgICAgICAgcHJveHkgPSBG
U0hvb2tQcm94eShmc3BhdGgsIHBtLCByZW1vdmVfbW9kcykKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgYWxsIHBsdWdpcyBhcmUgYWN0aXZlIGZvciB0aGlzIGZzcGF0aAorICAgICAgICAg
ICAgcHJveHkgPSBzZWxmLmNvbmZpZy5ob29rCisgICAgICAgIHJldHVybiBwcm94eQorCisgICAg
ZGVmIHBlcmZvcm1fY29sbGVjdChzZWxmLCBhcmdzPU5vbmUsIGdlbml0ZW1zPVRydWUpOgorICAg
ICAgICBob29rID0gc2VsZi5jb25maWcuaG9vaworICAgICAgICB0cnk6CisgICAgICAgICAgICBp
dGVtcyA9IHNlbGYuX3BlcmZvcm1fY29sbGVjdChhcmdzLCBnZW5pdGVtcykKKyAgICAgICAgICAg
IHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuY2hlY2tfcGVuZGluZygpCisgICAgICAgICAgICBo
b29rLnB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlc3Npb249c2VsZiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXNlbGYuY29uZmln
LCBpdGVtcz1pdGVtcykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGhvb2sucHl0ZXN0
X2NvbGxlY3Rpb25fZmluaXNoKHNlc3Npb249c2VsZikKKyAgICAgICAgc2VsZi50ZXN0c2NvbGxl
Y3RlZCA9IGxlbihpdGVtcykKKyAgICAgICAgcmV0dXJuIGl0ZW1zCisKKyAgICBkZWYgX3BlcmZv
cm1fY29sbGVjdChzZWxmLCBhcmdzLCBnZW5pdGVtcyk6CisgICAgICAgIGlmIGFyZ3MgaXMgTm9u
ZToKKyAgICAgICAgICAgIGFyZ3MgPSBzZWxmLmNvbmZpZy5hcmdzCisgICAgICAgIHNlbGYudHJh
Y2UoInBlcmZvcm1fY29sbGVjdCIsIHNlbGYsIGFyZ3MpCisgICAgICAgIHNlbGYudHJhY2Uucm9v
dC5pbmRlbnQgKz0gMQorICAgICAgICBzZWxmLl9ub3Rmb3VuZCA9IFtdCisgICAgICAgIHNlbGYu
X2luaXRpYWxwYXRocyA9IHNldCgpCisgICAgICAgIHNlbGYuX2luaXRpYWxwYXJ0cyA9IFtdCisg
ICAgICAgIHNlbGYuaXRlbXMgPSBpdGVtcyA9IFtdCisgICAgICAgIGZvciBhcmcgaW4gYXJnczoK
KyAgICAgICAgICAgIHBhcnRzID0gc2VsZi5fcGFyc2VhcmcoYXJnKQorICAgICAgICAgICAgc2Vs
Zi5faW5pdGlhbHBhcnRzLmFwcGVuZChwYXJ0cykKKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxw
YXRocy5hZGQocGFydHNbMF0pCisgICAgICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUoc2VsZikK
KyAgICAgICAgc2VsZi5paG9vay5weXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQorICAg
ICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEKKyAgICAgICAgaWYgc2VsZi5fbm90Zm91
bmQ6CisgICAgICAgICAgICBlcnJvcnMgPSBbXQorICAgICAgICAgICAgZm9yIGFyZywgZXhjIGlu
IHNlbGYuX25vdGZvdW5kOgorICAgICAgICAgICAgICAgIGxpbmUgPSAiKG5vIG5hbWUgJXIgaW4g
YW55IG9mICVyKSIgJSAoYXJnLCBleGMuYXJnc1swXSkKKyAgICAgICAgICAgICAgICBlcnJvcnMu
YXBwZW5kKCJub3QgZm91bmQ6ICVzXG4lcyIgJSAoYXJnLCBsaW5lKSkKKyAgICAgICAgICAgICAg
ICAjIFhYWDogdGVzdCB0aGlzCisgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCplcnJvcnMp
CisgICAgICAgIGlmIG5vdCBnZW5pdGVtczoKKyAgICAgICAgICAgIHJldHVybiByZXAucmVzdWx0
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiByZXAucGFzc2VkOgorICAgICAgICAgICAg
ICAgIGZvciBub2RlIGluIHJlcC5yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuaXRl
bXMuZXh0ZW5kKHNlbGYuZ2VuaXRlbXMobm9kZSkpCisgICAgICAgICAgICByZXR1cm4gaXRlbXMK
KworICAgIGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICBmb3IgcGFydHMgaW4gc2VsZi5faW5p
dGlhbHBhcnRzOgorICAgICAgICAgICAgYXJnID0gIjo6Ii5qb2luKG1hcChzdHIsIHBhcnRzKSkK
KyAgICAgICAgICAgIHNlbGYudHJhY2UoInByb2Nlc3NpbmcgYXJndW1lbnQiLCBhcmcpCisgICAg
ICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0KGFyZyk6CisgICAgICAgICAgICAg
ICAgICAgIHlpZWxkIHgKKyAgICAgICAgICAgIGV4Y2VwdCBOb01hdGNoOgorICAgICAgICAgICAg
ICAgICMgd2UgYXJlIGluc2lkZSBhIG1ha2VfcmVwb3J0IGhvb2sgc28KKyAgICAgICAgICAgICAg
ICAjIHdlIGNhbm5vdCBkaXJlY3RseSBwYXNzIHRocm91Z2ggdGhlIGV4Y2VwdGlvbgorICAgICAg
ICAgICAgICAgIHNlbGYuX25vdGZvdW5kLmFwcGVuZCgoYXJnLCBzeXMuZXhjX2luZm8oKVsxXSkp
CisKKyAgICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQgLT0gMQorCisgICAgZGVmIF9j
b2xsZWN0KHNlbGYsIGFyZyk6CisgICAgICAgIG5hbWVzID0gc2VsZi5fcGFyc2VhcmcoYXJnKQor
ICAgICAgICBwYXRoID0gbmFtZXMucG9wKDApCisgICAgICAgIGlmIHBhdGguY2hlY2soZGlyPTEp
OgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBuYW1lcywgImludmFsaWQgYXJnICVyIiAlIChhcmcs
KQorICAgICAgICAgICAgZm9yIHBhdGggaW4gcGF0aC52aXNpdChmaWw9bGFtYmRhIHg6IHguY2hl
Y2soZmlsZT0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjPXNlbGYu
X3JlY3Vyc2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZSk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4g
c2VsZi5fY29sbGVjdGZpbGUocGF0aCk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBwYXRoLmNoZWNrKGZpbGU9MSkKKyAgICAg
ICAgICAgIGZvciB4IGluIHNlbGYubWF0Y2hub2RlcyhzZWxmLl9jb2xsZWN0ZmlsZShwYXRoKSwg
bmFtZXMpOgorICAgICAgICAgICAgICAgIHlpZWxkIHgKKworICAgIGRlZiBfY29sbGVjdGZpbGUo
c2VsZiwgcGF0aCk6CisgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aCkKKyAg
ICAgICAgaWYgbm90IHNlbGYuaXNpbml0cGF0aChwYXRoKToKKyAgICAgICAgICAgIGlmIGlob29r
LnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPXBhdGgsIGNvbmZpZz1zZWxmLmNvbmZpZyk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICgpCisgICAgICAgIHJldHVybiBpaG9vay5weXRlc3RfY29s
bGVjdF9maWxlKHBhdGg9cGF0aCwgcGFyZW50PXNlbGYpCisKKyAgICBkZWYgX3JlY3Vyc2Uoc2Vs
ZiwgcGF0aCk6CisgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aC5kaXJwYXRo
KCkpCisgICAgICAgIGlmIGlob29rLnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPXBhdGgsIGNv
bmZpZz1zZWxmLmNvbmZpZyk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZm9yIHBhdCBp
biBzZWxmLl9ub3JlY3Vyc2VwYXR0ZXJuczoKKyAgICAgICAgICAgIGlmIHBhdGguY2hlY2soZm5t
YXRjaD1wYXQpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpaG9vayA9
IHNlbGYuZ2V0aG9va3Byb3h5KHBhdGgpCisgICAgICAgIGlob29rLnB5dGVzdF9jb2xsZWN0X2Rp
cmVjdG9yeShwYXRoPXBhdGgsIHBhcmVudD1zZWxmKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisg
ICAgZGVmIF90cnljb252ZXJ0cHlhcmcoc2VsZiwgeCk6CisgICAgICAgICIiIkNvbnZlcnQgYSBk
b3R0ZWQgbW9kdWxlIG5hbWUgdG8gcGF0aC4KKworICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0
IHBrZ3V0aWwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9hZGVyID0gcGtndXRpbC5maW5k
X2xvYWRlcih4KQorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICByZXR1
cm4geAorICAgICAgICBpZiBsb2FkZXIgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiB4Cisg
ICAgICAgICMgVGhpcyBtZXRob2QgaXMgc29tZXRpbWVzIGludm9rZWQgd2hlbiBBc3NlcnRpb25S
ZXdyaXRpbmdIb29rLCB3aGljaAorICAgICAgICAjIGRvZXMgbm90IGRlZmluZSBhIGdldF9maWxl
bmFtZSBtZXRob2QsIGlzIGFscmVhZHkgaW4gcGxhY2U6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHBhdGggPSBsb2FkZXIuZ2V0X2ZpbGVuYW1lKHgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKKyAgICAgICAgICAgICMgUmV0cmlldmUgcGF0aCBmcm9tIEFzc2VydGlvblJld3Jp
dGluZ0hvb2s6CisgICAgICAgICAgICBwYXRoID0gbG9hZGVyLm1vZHVsZXNbeF1bMF0uY29fZmls
ZW5hbWUKKyAgICAgICAgaWYgbG9hZGVyLmlzX3BhY2thZ2UoeCk6CisgICAgICAgICAgICBwYXRo
ID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCisgICAgICAgIHJldHVybiBwYXRoCisKKyAgICBkZWYg
X3BhcnNlYXJnKHNlbGYsIGFyZyk6CisgICAgICAgICIiIiByZXR1cm4gKGZzcGF0aCwgbmFtZXMp
IHR1cGxlIGFmdGVyIGNoZWNraW5nIHRoZSBmaWxlIGV4aXN0cy4gIiIiCisgICAgICAgIHBhcnRz
ID0gc3RyKGFyZykuc3BsaXQoIjo6IikKKyAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnB5
YXJnczoKKyAgICAgICAgICAgIHBhcnRzWzBdID0gc2VsZi5fdHJ5Y29udmVydHB5YXJnKHBhcnRz
WzBdKQorICAgICAgICByZWxwYXRoID0gcGFydHNbMF0ucmVwbGFjZSgiLyIsIG9zLnNlcCkKKyAg
ICAgICAgcGF0aCA9IHNlbGYuY29uZmlnLmludm9jYXRpb25fZGlyLmpvaW4ocmVscGF0aCwgYWJz
PVRydWUpCisgICAgICAgIGlmIG5vdCBwYXRoLmNoZWNrKCk6CisgICAgICAgICAgICBpZiBzZWxm
LmNvbmZpZy5vcHRpb24ucHlhcmdzOgorICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3Io
CisgICAgICAgICAgICAgICAgICAgICJmaWxlIG9yIHBhY2thZ2Ugbm90IGZvdW5kOiAiICsgYXJn
ICsKKyAgICAgICAgICAgICAgICAgICAgIiAobWlzc2luZyBfX2luaXRfXy5weT8pIikKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiZmlsZSBub3Qg
Zm91bmQ6ICIgKyBhcmcpCisgICAgICAgIHBhcnRzWzBdID0gcGF0aAorICAgICAgICByZXR1cm4g
cGFydHMKKworICAgIGRlZiBtYXRjaG5vZGVzKHNlbGYsIG1hdGNoaW5nLCBuYW1lcyk6CisgICAg
ICAgIHNlbGYudHJhY2UoIm1hdGNobm9kZXMiLCBtYXRjaGluZywgbmFtZXMpCisgICAgICAgIHNl
bGYudHJhY2Uucm9vdC5pbmRlbnQgKz0gMQorICAgICAgICBub2RlcyA9IHNlbGYuX21hdGNobm9k
ZXMobWF0Y2hpbmcsIG5hbWVzKQorICAgICAgICBudW0gPSBsZW4obm9kZXMpCisgICAgICAgIHNl
bGYudHJhY2UoIm1hdGNobm9kZXMgZmluaXNoZWQgLT4gIiwgbnVtLCAibm9kZXMiKQorICAgICAg
ICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEKKyAgICAgICAgaWYgbnVtID09IDA6CisgICAg
ICAgICAgICByYWlzZSBOb01hdGNoKG1hdGNoaW5nLCBuYW1lc1s6MV0pCisgICAgICAgIHJldHVy
biBub2RlcworCisgICAgZGVmIF9tYXRjaG5vZGVzKHNlbGYsIG1hdGNoaW5nLCBuYW1lcyk6Cisg
ICAgICAgIGlmIG5vdCBtYXRjaGluZyBvciBub3QgbmFtZXM6CisgICAgICAgICAgICByZXR1cm4g
bWF0Y2hpbmcKKyAgICAgICAgbmFtZSA9IG5hbWVzWzBdCisgICAgICAgIGFzc2VydCBuYW1lCisg
ICAgICAgIG5leHRuYW1lcyA9IG5hbWVzWzE6XQorICAgICAgICByZXN1bHRub2RlcyA9IFtdCisg
ICAgICAgIGZvciBub2RlIGluIG1hdGNoaW5nOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShu
b2RlLCBJdGVtKToKKyAgICAgICAgICAgICAgICBpZiBub3QgbmFtZXM6CisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdG5vZGVzLmFwcGVuZChub2RlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCBDb2xsZWN0b3IpCisgICAgICAg
ICAgICByZXAgPSBjb2xsZWN0X29uZV9ub2RlKG5vZGUpCisgICAgICAgICAgICBpZiByZXAucGFz
c2VkOgorICAgICAgICAgICAgICAgIGhhc19tYXRjaGVkID0gRmFsc2UKKyAgICAgICAgICAgICAg
ICBmb3IgeCBpbiByZXAucmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAjIFRPRE86IHJlbW92
ZSBwYXJhbWV0cml6ZWQgd29ya2Fyb3VuZCBvbmNlIGNvbGxlY3Rpb24gc3RydWN0dXJlIGNvbnRh
aW5zIHBhcmFtZXRyaXphdGlvbgorICAgICAgICAgICAgICAgICAgICBpZiB4Lm5hbWUgPT0gbmFt
ZSBvciB4Lm5hbWUuc3BsaXQoIlsiKVswXSA9PSBuYW1lOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0bm9kZXMuZXh0ZW5kKHNlbGYubWF0Y2hub2RlcyhbeF0sIG5leHRuYW1lcykpCisg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNfbWF0Y2hlZCA9IFRydWUKKyAgICAgICAgICAgICAg
ICAjIFhYWCBhY2NlcHQgSURzIHRoYXQgZG9uJ3QgaGF2ZSAiKCkiIGZvciBjbGFzcyBpbnN0YW5j
ZXMKKyAgICAgICAgICAgICAgICBpZiBub3QgaGFzX21hdGNoZWQgYW5kIGxlbihyZXAucmVzdWx0
KSA9PSAxIGFuZCB4Lm5hbWUgPT0gIigpIjoKKyAgICAgICAgICAgICAgICAgICAgbmV4dG5hbWVz
Lmluc2VydCgwLCBuYW1lKQorICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5leHRlbmQo
c2VsZi5tYXRjaG5vZGVzKFt4XSwgbmV4dG5hbWVzKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgIyByZXBvcnQgY29sbGVjdGlvbiBmYWlsdXJlcyBoZXJlIHRvIGF2b2lkIGZh
aWxpbmcgdG8gcnVuIHNvbWUgdGVzdAorICAgICAgICAgICAgICAgICMgc3BlY2lmaWVkIGluIHRo
ZSBjb21tYW5kIGxpbmUgYmVjYXVzZSB0aGUgbW9kdWxlIGNvdWxkIG5vdCBiZQorICAgICAgICAg
ICAgICAgICMgaW1wb3J0ZWQgKCMxMzQpCisgICAgICAgICAgICAgICAgbm9kZS5paG9vay5weXRl
c3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQorICAgICAgICByZXR1cm4gcmVzdWx0bm9kZXMK
KworICAgIGRlZiBnZW5pdGVtcyhzZWxmLCBub2RlKToKKyAgICAgICAgc2VsZi50cmFjZSgiZ2Vu
aXRlbXMiLCBub2RlKQorICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIEl0ZW0pOgorICAgICAg
ICAgICAgbm9kZS5paG9vay5weXRlc3RfaXRlbWNvbGxlY3RlZChpdGVtPW5vZGUpCisgICAgICAg
ICAgICB5aWVsZCBub2RlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShub2RlLCBDb2xsZWN0b3IpCisgICAgICAgICAgICByZXAgPSBjb2xsZWN0X29uZV9ub2Rl
KG5vZGUpCisgICAgICAgICAgICBpZiByZXAucGFzc2VkOgorICAgICAgICAgICAgICAgIGZvciBz
dWJub2RlIGluIHJlcC5yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHNlbGYu
Z2VuaXRlbXMoc3Vibm9kZSk6CisgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB4CisgICAg
ICAgICAgICBub2RlLmlob29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydD1yZXApCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21hcmsucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L21hcmsucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2YxZjAxYjFhMmUzNGRiMzVjYjI2MWEzZmI0OTBmMWM0NjU3
ZDRkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQpAQCAt
MCwwICsxLDQ5NiBAQAorIiIiIGdlbmVyaWMgbWVjaGFuaXNtIGZvciBtYXJraW5nIGFuZCBzZWxl
Y3RpbmcgcHl0aG9uIGZ1bmN0aW9ucy4gIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBpbnNwZWN0Citp
bXBvcnQgd2FybmluZ3MKK2ltcG9ydCBhdHRyCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1l
ZHR1cGxlCitmcm9tIG9wZXJhdG9yIGltcG9ydCBhdHRyZ2V0dGVyCitmcm9tIHNpeC5tb3ZlcyBp
bXBvcnQgbWFwCitmcm9tIC5kZXByZWNhdGVkIGltcG9ydCBNQVJLX1BBUkFNRVRFUlNFVF9VTlBB
Q0tJTkcKK2Zyb20gLmNvbXBhdCBpbXBvcnQgTk9UU0VULCBnZXRmc2xpbmVubworCisKK2RlZiBh
bGlhcyhuYW1lLCB3YXJuaW5nPU5vbmUpOgorICAgIGdldHRlciA9IGF0dHJnZXR0ZXIobmFtZSkK
KworICAgIGRlZiB3YXJuZWQoc2VsZik6CisgICAgICAgIHdhcm5pbmdzLndhcm4od2FybmluZywg
c3RhY2tsZXZlbD0yKQorICAgICAgICByZXR1cm4gZ2V0dGVyKHNlbGYpCisKKyAgICByZXR1cm4g
cHJvcGVydHkoZ2V0dGVyIGlmIHdhcm5pbmcgaXMgTm9uZSBlbHNlIHdhcm5lZCwgZG9jPSdhbGlh
cyBmb3IgJyArIG5hbWUpCisKKworY2xhc3MgUGFyYW1ldGVyU2V0KG5hbWVkdHVwbGUoJ1BhcmFt
ZXRlclNldCcsICd2YWx1ZXMsIG1hcmtzLCBpZCcpKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgcGFyYW0oY2xzLCAqdmFsdWVzLCAqKmt3KToKKyAgICAgICAgbWFya3MgPSBrdy5wb3AoJ21h
cmtzJywgKCkpCisgICAgICAgIGlmIGlzaW5zdGFuY2UobWFya3MsIE1hcmtEZWNvcmF0b3IpOgor
ICAgICAgICAgICAgbWFya3MgPSBtYXJrcywKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKG1hcmtzLCAodHVwbGUsIGxpc3QsIHNldCkpCisKKyAgICAgICAgZGVm
IHBhcmFtX2V4dHJhY3RfaWQoaWQ9Tm9uZSk6CisgICAgICAgICAgICByZXR1cm4gaWQKKworICAg
ICAgICBpZCA9IHBhcmFtX2V4dHJhY3RfaWQoKiprdykKKyAgICAgICAgcmV0dXJuIGNscyh2YWx1
ZXMsIG1hcmtzLCBpZCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBleHRyYWN0X2Zyb20o
Y2xzLCBwYXJhbWV0ZXJzZXQsIGxlZ2FjeV9mb3JjZV90dXBsZT1GYWxzZSk6CisgICAgICAgICIi
IgorICAgICAgICA6cGFyYW0gcGFyYW1ldGVyc2V0OgorICAgICAgICAgICAgYSBsZWdhY3kgc3R5
bGUgcGFyYW1ldGVyc2V0IHRoYXQgbWF5IG9yIG1heSBub3QgYmUgYSB0dXBsZSwKKyAgICAgICAg
ICAgIGFuZCBtYXkgb3IgbWF5IG5vdCBiZSB3cmFwcGVkIGludG8gYSBtZXNzIG9mIG1hcmsgb2Jq
ZWN0cworCisgICAgICAgIDpwYXJhbSBsZWdhY3lfZm9yY2VfdHVwbGU6CisgICAgICAgICAgICBl
bmZvcmNlIHR1cGxlIHdyYXBwaW5nIHNvIHNpbmdsZSBhcmd1bWVudCB0dXBsZSB2YWx1ZXMKKyAg
ICAgICAgICAgIGRvbid0IGdldCBkZWNvbXBvc2VkIGFuZCBicmVhayB0ZXN0cworCisgICAgICAg
ICIiIgorCisgICAgICAgIGlmIGlzaW5zdGFuY2UocGFyYW1ldGVyc2V0LCBjbHMpOgorICAgICAg
ICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldAorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJh
bWV0ZXJzZXQsIE1hcmtEZWNvcmF0b3IpIGFuZCBsZWdhY3lfZm9yY2VfdHVwbGU6CisgICAgICAg
ICAgICByZXR1cm4gY2xzLnBhcmFtKHBhcmFtZXRlcnNldCkKKworICAgICAgICBuZXdtYXJrcyA9
IFtdCisgICAgICAgIGFyZ3ZhbCA9IHBhcmFtZXRlcnNldAorICAgICAgICB3aGlsZSBpc2luc3Rh
bmNlKGFyZ3ZhbCwgTWFya0RlY29yYXRvcik6CisgICAgICAgICAgICBuZXdtYXJrcy5hcHBlbmQo
TWFya0RlY29yYXRvcihNYXJrKAorICAgICAgICAgICAgICAgIGFyZ3ZhbC5tYXJrbmFtZSwgYXJn
dmFsLmFyZ3NbOi0xXSwgYXJndmFsLmt3YXJncykpKQorICAgICAgICAgICAgYXJndmFsID0gYXJn
dmFsLmFyZ3NbLTFdCisgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShhcmd2YWwsIFBhcmFt
ZXRlclNldCkKKyAgICAgICAgaWYgbGVnYWN5X2ZvcmNlX3R1cGxlOgorICAgICAgICAgICAgYXJn
dmFsID0gYXJndmFsLAorCisgICAgICAgIGlmIG5ld21hcmtzOgorICAgICAgICAgICAgd2Fybmlu
Z3Mud2FybihNQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcpCisKKyAgICAgICAgcmV0dXJuIGNs
cyhhcmd2YWwsIG1hcmtzPW5ld21hcmtzLCBpZD1Ob25lKQorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIF9mb3JfcGFyYW1ldGVyaXplKGNscywgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgZnVuY3Rp
b24pOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmduYW1lcywgKHR1cGxlLCBsaXN0KSk6
CisgICAgICAgICAgICBhcmduYW1lcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFtZXMuc3Bs
aXQoIiwiKSBpZiB4LnN0cmlwKCldCisgICAgICAgICAgICBmb3JjZV90dXBsZSA9IGxlbihhcmdu
YW1lcykgPT0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yY2VfdHVwbGUgPSBGYWxz
ZQorICAgICAgICBwYXJhbWV0ZXJzID0gWworICAgICAgICAgICAgUGFyYW1ldGVyU2V0LmV4dHJh
Y3RfZnJvbSh4LCBsZWdhY3lfZm9yY2VfdHVwbGU9Zm9yY2VfdHVwbGUpCisgICAgICAgICAgICBm
b3IgeCBpbiBhcmd2YWx1ZXNdCisgICAgICAgIGRlbCBhcmd2YWx1ZXMKKworICAgICAgICBpZiBu
b3QgcGFyYW1ldGVyczoKKyAgICAgICAgICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5j
dGlvbikKKyAgICAgICAgICAgIHJlYXNvbiA9ICJnb3QgZW1wdHkgcGFyYW1ldGVyIHNldCAlciwg
ZnVuY3Rpb24gJXMgYXQgJXM6JWQiICUgKAorICAgICAgICAgICAgICAgIGFyZ25hbWVzLCBmdW5j
dGlvbi5fX25hbWVfXywgZnMsIGxpbmVubykKKyAgICAgICAgICAgIG1hcmsgPSBNQVJLX0dFTi5z
a2lwKHJlYXNvbj1yZWFzb24pCisgICAgICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChQYXJhbWV0
ZXJTZXQoCisgICAgICAgICAgICAgICAgdmFsdWVzPShOT1RTRVQsKSAqIGxlbihhcmduYW1lcyks
CisgICAgICAgICAgICAgICAgbWFya3M9W21hcmtdLAorICAgICAgICAgICAgICAgIGlkPU5vbmUs
CisgICAgICAgICAgICApKQorICAgICAgICByZXR1cm4gYXJnbmFtZXMsIHBhcmFtZXRlcnMKKwor
CitjbGFzcyBNYXJrZXJFcnJvcihFeGNlcHRpb24pOgorCisgICAgIiIiRXJyb3IgaW4gdXNlIG9m
IGEgcHl0ZXN0IG1hcmtlci9hdHRyaWJ1dGUuIiIiCisKKworZGVmIHBhcmFtKCp2YWx1ZXMsICoq
a3cpOgorICAgIHJldHVybiBQYXJhbWV0ZXJTZXQucGFyYW0oKnZhbHVlcywgKiprdykKKworCitk
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJnZW5lcmFsIikKKyAgICBncm91cC5fYWRkb3B0aW9uKAorICAgICAgICAnLWsnLAorICAgICAg
ICBhY3Rpb249InN0b3JlIiwgZGVzdD0ia2V5d29yZCIsIGRlZmF1bHQ9JycsIG1ldGF2YXI9IkVY
UFJFU1NJT04iLAorICAgICAgICBoZWxwPSJvbmx5IHJ1biB0ZXN0cyB3aGljaCBtYXRjaCB0aGUg
Z2l2ZW4gc3Vic3RyaW5nIGV4cHJlc3Npb24uICIKKyAgICAgICAgICAgICAiQW4gZXhwcmVzc2lv
biBpcyBhIHB5dGhvbiBldmFsdWF0YWJsZSBleHByZXNzaW9uICIKKyAgICAgICAgICAgICAid2hl
cmUgYWxsIG5hbWVzIGFyZSBzdWJzdHJpbmctbWF0Y2hlZCBhZ2FpbnN0IHRlc3QgbmFtZXMgIgor
ICAgICAgICAgICAgICJhbmQgdGhlaXIgcGFyZW50IGNsYXNzZXMuIEV4YW1wbGU6IC1rICd0ZXN0
X21ldGhvZCBvciB0ZXN0XyIKKyAgICAgICAgICAgICAib3RoZXInIG1hdGNoZXMgYWxsIHRlc3Qg
ZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHdob3NlIG5hbWUgIgorICAgICAgICAgICAgICJjb250YWlu
cyAndGVzdF9tZXRob2QnIG9yICd0ZXN0X290aGVyJywgd2hpbGUgLWsgJ25vdCB0ZXN0X21ldGhv
ZCcgIgorICAgICAgICAgICAgICJtYXRjaGVzIHRob3NlIHRoYXQgZG9uJ3QgY29udGFpbiAndGVz
dF9tZXRob2QnIGluIHRoZWlyIG5hbWVzLiAiCisgICAgICAgICAgICAgIkFkZGl0aW9uYWxseSBr
ZXl3b3JkcyBhcmUgbWF0Y2hlZCB0byBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgIgorICAgICAgICAg
ICAgICJjb250YWluaW5nIGV4dHJhIG5hbWVzIGluIHRoZWlyICdleHRyYV9rZXl3b3JkX21hdGNo
ZXMnIHNldCwgIgorICAgICAgICAgICAgICJhcyB3ZWxsIGFzIGZ1bmN0aW9ucyB3aGljaCBoYXZl
IG5hbWVzIGFzc2lnbmVkIGRpcmVjdGx5IHRvIHRoZW0uIgorICAgICkKKworICAgIGdyb3VwLl9h
ZGRvcHRpb24oCisgICAgICAgICItbSIsCisgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJt
YXJrZXhwciIsIGRlZmF1bHQ9IiIsIG1ldGF2YXI9Ik1BUktFWFBSIiwKKyAgICAgICAgaGVscD0i
b25seSBydW4gdGVzdHMgbWF0Y2hpbmcgZ2l2ZW4gbWFyayBleHByZXNzaW9uLiAgIgorICAgICAg
ICAgICAgICJleGFtcGxlOiAtbSAnbWFyazEgYW5kIG5vdCBtYXJrMicuIgorICAgICkKKworICAg
IGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgIi0tbWFya2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCisgICAgICAgIGhlbHA9InNob3cgbWFya2VycyAoYnVpbHRpbiwgcGx1Z2luIGFuZCBwZXIt
cHJvamVjdCBvbmVzKS4iCisgICAgKQorCisgICAgcGFyc2VyLmFkZGluaSgibWFya2VycyIsICJt
YXJrZXJzIGZvciB0ZXN0IGZ1bmN0aW9ucyIsICdsaW5lbGlzdCcpCisKKworZGVmIHB5dGVzdF9j
bWRsaW5lX21haW4oY29uZmlnKToKKyAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKKyAgICBpZiBj
b25maWcub3B0aW9uLm1hcmtlcnM6CisgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKKyAg
ICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykK
KyAgICAgICAgZm9yIGxpbmUgaW4gY29uZmlnLmdldGluaSgibWFya2VycyIpOgorICAgICAgICAg
ICAgcGFydHMgPSBsaW5lLnNwbGl0KCI6IiwgMSkKKyAgICAgICAgICAgIG5hbWUgPSBwYXJ0c1sw
XQorICAgICAgICAgICAgcmVzdCA9IHBhcnRzWzFdIGlmIGxlbihwYXJ0cykgPT0gMiBlbHNlICcn
CisgICAgICAgICAgICB0dy53cml0ZSgiQHB5dGVzdC5tYXJrLiVzOiIgJSBuYW1lLCBib2xkPVRy
dWUpCisgICAgICAgICAgICB0dy5saW5lKHJlc3QpCisgICAgICAgICAgICB0dy5saW5lKCkKKyAg
ICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQorICAgICAgICByZXR1cm4gMAorCisK
K3B5dGVzdF9jbWRsaW5lX21haW4udHJ5Zmlyc3QgPSBUcnVlCisKKworZGVmIHB5dGVzdF9jb2xs
ZWN0aW9uX21vZGlmeWl0ZW1zKGl0ZW1zLCBjb25maWcpOgorICAgIGtleXdvcmRleHByID0gY29u
ZmlnLm9wdGlvbi5rZXl3b3JkLmxzdHJpcCgpCisgICAgbWF0Y2hleHByID0gY29uZmlnLm9wdGlv
bi5tYXJrZXhwcgorICAgIGlmIG5vdCBrZXl3b3JkZXhwciBhbmQgbm90IG1hdGNoZXhwcjoKKyAg
ICAgICAgcmV0dXJuCisgICAgIyBweXRlc3QgdXNlZCB0byBhbGxvdyAiLSIgZm9yIG5lZ2F0aW5n
CisgICAgIyBidXQgdG9kYXkgd2UganVzdCBhbGxvdyAiLSIgYXQgdGhlIGJlZ2lubmluZywgdXNl
ICJub3QiIGluc3RlYWQKKyAgICAjIHdlIHByb2JhYmx5IHJlbW92ZSAiLSIgYWx0b2dldGhlciBz
b29uCisgICAgaWYga2V5d29yZGV4cHIuc3RhcnRzd2l0aCgiLSIpOgorICAgICAgICBrZXl3b3Jk
ZXhwciA9ICJub3QgIiArIGtleXdvcmRleHByWzE6XQorICAgIHNlbGVjdHVudGlsID0gRmFsc2UK
KyAgICBpZiBrZXl3b3JkZXhwclstMTpdID09ICI6IjoKKyAgICAgICAgc2VsZWN0dW50aWwgPSBU
cnVlCisgICAgICAgIGtleXdvcmRleHByID0ga2V5d29yZGV4cHJbOi0xXQorCisgICAgcmVtYWlu
aW5nID0gW10KKyAgICBkZXNlbGVjdGVkID0gW10KKyAgICBmb3IgY29saXRlbSBpbiBpdGVtczoK
KyAgICAgICAgaWYga2V5d29yZGV4cHIgYW5kIG5vdCBtYXRjaGtleXdvcmQoY29saXRlbSwga2V5
d29yZGV4cHIpOgorICAgICAgICAgICAgZGVzZWxlY3RlZC5hcHBlbmQoY29saXRlbSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlbGVjdHVudGlsOgorICAgICAgICAgICAgICAgIGtl
eXdvcmRleHByID0gTm9uZQorICAgICAgICAgICAgaWYgbWF0Y2hleHByOgorICAgICAgICAgICAg
ICAgIGlmIG5vdCBtYXRjaG1hcmsoY29saXRlbSwgbWF0Y2hleHByKToKKyAgICAgICAgICAgICAg
ICAgICAgZGVzZWxlY3RlZC5hcHBlbmQoY29saXRlbSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgIHJlbWFpbmluZy5hcHBlbmQoY29saXRlbSkKKworICAgIGlmIGRl
c2VsZWN0ZWQ6CisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWRl
c2VsZWN0ZWQpCisgICAgICAgIGl0ZW1zWzpdID0gcmVtYWluaW5nCisKKworQGF0dHIucworY2xh
c3MgTWFya01hcHBpbmcob2JqZWN0KToKKyAgICAiIiJQcm92aWRlcyBhIGxvY2FsIG1hcHBpbmcg
Zm9yIG1hcmtlcnMgd2hlcmUgaXRlbSBhY2Nlc3MKKyAgICByZXNvbHZlcyB0byBUcnVlIGlmIHRo
ZSBtYXJrZXIgaXMgcHJlc2VudC4gIiIiCisKKyAgICBvd25fbWFya19uYW1lcyA9IGF0dHIuaWIo
KQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fa2V5d29yZHMoY2xzLCBrZXl3b3Jk
cyk6CisgICAgICAgIG1hcmtfbmFtZXMgPSBzZXQoKQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biBrZXl3b3Jkcy5pdGVtcygpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgTWFy
a0luZm8pIG9yIGlzaW5zdGFuY2UodmFsdWUsIE1hcmtEZWNvcmF0b3IpOgorICAgICAgICAgICAg
ICAgIG1hcmtfbmFtZXMuYWRkKGtleSkKKyAgICAgICAgcmV0dXJuIGNscyhtYXJrX25hbWVzKQor
CisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gbmFtZSBp
biBzZWxmLm93bl9tYXJrX25hbWVzCisKKworY2xhc3MgS2V5d29yZE1hcHBpbmcob2JqZWN0KToK
KyAgICAiIiJQcm92aWRlcyBhIGxvY2FsIG1hcHBpbmcgZm9yIGtleXdvcmRzLgorICAgIEdpdmVu
IGEgbGlzdCBvZiBuYW1lcywgbWFwIGFueSBzdWJzdHJpbmcgb2Ygb25lIG9mIHRoZXNlIG5hbWVz
IHRvIFRydWUuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZXMpOgorICAg
ICAgICBzZWxmLl9uYW1lcyA9IG5hbWVzCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgc3Vi
bmFtZSk6CisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX25hbWVzOgorICAgICAgICAgICAgaWYg
c3VibmFtZSBpbiBuYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJl
dHVybiBGYWxzZQorCisKK2RlZiBtYXRjaG1hcmsoY29saXRlbSwgbWFya2V4cHIpOgorICAgICIi
IlRyaWVzIHRvIG1hdGNoIG9uIGFueSBtYXJrZXIgbmFtZXMsIGF0dGFjaGVkIHRvIHRoZSBnaXZl
biBjb2xpdGVtLiIiIgorICAgIHJldHVybiBldmFsKG1hcmtleHByLCB7fSwgTWFya01hcHBpbmcu
ZnJvbV9rZXl3b3Jkcyhjb2xpdGVtLmtleXdvcmRzKSkKKworCitkZWYgbWF0Y2hrZXl3b3JkKGNv
bGl0ZW0sIGtleXdvcmRleHByKToKKyAgICAiIiJUcmllcyB0byBtYXRjaCBnaXZlbiBrZXl3b3Jk
IGV4cHJlc3Npb24gdG8gZ2l2ZW4gY29sbGVjdG9yIGl0ZW0uCisKKyAgICBXaWxsIG1hdGNoIG9u
IHRoZSBuYW1lIG9mIGNvbGl0ZW0sIGluY2x1ZGluZyB0aGUgbmFtZXMgb2YgaXRzIHBhcmVudHMu
CisgICAgT25seSBtYXRjaGVzIG5hbWVzIG9mIGl0ZW1zIHdoaWNoIGFyZSBlaXRoZXIgYSA6Y2xh
c3M6YENsYXNzYCBvciBhCisgICAgOmNsYXNzOmBGdW5jdGlvbmAuCisgICAgQWRkaXRpb25hbGx5
LCBtYXRjaGVzIG9uIG5hbWVzIGluIHRoZSAnZXh0cmFfa2V5d29yZF9tYXRjaGVzJyBzZXQgb2YK
KyAgICBhbnkgaXRlbSwgYXMgd2VsbCBhcyBuYW1lcyBkaXJlY3RseSBhc3NpZ25lZCB0byB0ZXN0
IGZ1bmN0aW9ucy4KKyAgICAiIiIKKyAgICBtYXBwZWRfbmFtZXMgPSBzZXQoKQorCisgICAgIyBB
ZGQgdGhlIG5hbWVzIG9mIHRoZSBjdXJyZW50IGl0ZW0gYW5kIGFueSBwYXJlbnQgaXRlbXMKKyAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgZm9yIGl0ZW0gaW4gY29saXRlbS5saXN0Y2hhaW4oKToKKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgcHl0ZXN0Lkluc3RhbmNlKToKKyAgICAgICAg
ICAgIG1hcHBlZF9uYW1lcy5hZGQoaXRlbS5uYW1lKQorCisgICAgIyBBZGQgdGhlIG5hbWVzIGFk
ZGVkIGFzIGV4dHJhIGtleXdvcmRzIHRvIGN1cnJlbnQgb3IgcGFyZW50IGl0ZW1zCisgICAgZm9y
IG5hbWUgaW4gY29saXRlbS5saXN0ZXh0cmFrZXl3b3JkcygpOgorICAgICAgICBtYXBwZWRfbmFt
ZXMuYWRkKG5hbWUpCisKKyAgICAjIEFkZCB0aGUgbmFtZXMgYXR0YWNoZWQgdG8gdGhlIGN1cnJl
bnQgZnVuY3Rpb24gdGhyb3VnaCBkaXJlY3QgYXNzaWdubWVudAorICAgIGlmIGhhc2F0dHIoY29s
aXRlbSwgJ2Z1bmN0aW9uJyk6CisgICAgICAgIGZvciBuYW1lIGluIGNvbGl0ZW0uZnVuY3Rpb24u
X19kaWN0X186CisgICAgICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5hbWUpCisKKyAgICBtYXBw
aW5nID0gS2V5d29yZE1hcHBpbmcobWFwcGVkX25hbWVzKQorICAgIGlmICIgIiBub3QgaW4ga2V5
d29yZGV4cHI6CisgICAgICAgICMgc3BlY2lhbCBjYXNlIHRvIGFsbG93IGZvciBzaW1wbGUgIi1r
IHBhc3MiIGFuZCAiLWsgMS4zIgorICAgICAgICByZXR1cm4gbWFwcGluZ1trZXl3b3JkZXhwcl0K
KyAgICBlbGlmIGtleXdvcmRleHByLnN0YXJ0c3dpdGgoIm5vdCAiKSBhbmQgIiAiIG5vdCBpbiBr
ZXl3b3JkZXhwcls0Ol06CisgICAgICAgIHJldHVybiBub3QgbWFwcGluZ1trZXl3b3JkZXhwcls0
Ol1dCisgICAgcmV0dXJuIGV2YWwoa2V5d29yZGV4cHIsIHt9LCBtYXBwaW5nKQorCisKK2RlZiBw
eXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLl9vbGRfbWFya19jb25maWcgPSBN
QVJLX0dFTi5fY29uZmlnCisgICAgaWYgY29uZmlnLm9wdGlvbi5zdHJpY3Q6CisgICAgICAgIE1B
UktfR0VOLl9jb25maWcgPSBjb25maWcKKworCitkZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgTUFSS19HRU4uX2NvbmZpZyA9IGdldGF0dHIoY29uZmlnLCAnX29sZF9tYXJrX2Nv
bmZpZycsIE5vbmUpCisKKworY2xhc3MgTWFya0dlbmVyYXRvcjoKKyAgICAiIiIgRmFjdG9yeSBm
b3IgOmNsYXNzOmBNYXJrRGVjb3JhdG9yYCBvYmplY3RzIC0gZXhwb3NlZCBhcworICAgIGEgYGBw
eXRlc3QubWFya2BgIHNpbmdsZXRvbiBpbnN0YW5jZS4gIEV4YW1wbGU6OgorCisgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2xvd3Rlc3QKKyAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICB3aWxsIHNldCBhICdz
bG93dGVzdCcgOmNsYXNzOmBNYXJrSW5mb2Agb2JqZWN0CisgICAgb24gdGhlIGBgdGVzdF9mdW5j
dGlvbmBgIG9iamVjdC4gIiIiCisgICAgX2NvbmZpZyA9IE5vbmUKKworICAgIGRlZiBfX2dldGF0
dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZVswXSA9PSAiXyI6CisgICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTWFya2VyIG5hbWUgbXVzdCBOT1Qgc3RhcnQgd2l0aCB1
bmRlcnNjb3JlIikKKyAgICAgICAgaWYgc2VsZi5fY29uZmlnIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgc2VsZi5fY2hlY2sobmFtZSkKKyAgICAgICAgcmV0dXJuIE1hcmtEZWNvcmF0b3IoTWFy
ayhuYW1lLCAoKSwge30pKQorCisgICAgZGVmIF9jaGVjayhzZWxmLCBuYW1lKToKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWxmLl9tYXJrZXJzOgorICAgICAgICAgICAg
ICAgIHJldHVybgorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIHNlbGYuX21hcmtlcnMgPSB2YWx1ZXMgPSBzZXQoKQorICAgICAgICBmb3Ig
bGluZSBpbiBzZWxmLl9jb25maWcuZ2V0aW5pKCJtYXJrZXJzIik6CisgICAgICAgICAgICBtYXJr
ZXIgPSBsaW5lLnNwbGl0KCI6IiwgMSlbMF0KKyAgICAgICAgICAgIG1hcmtlciA9IG1hcmtlci5y
c3RyaXAoKQorICAgICAgICAgICAgeCA9IG1hcmtlci5zcGxpdCgiKCIsIDEpWzBdCisgICAgICAg
ICAgICB2YWx1ZXMuYWRkKHgpCisgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuX21hcmtlcnM6
CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXIgbm90IGEgcmVnaXN0ZXJlZCBt
YXJrZXIiICUgKG5hbWUsKSkKKworCitkZWYgaXN0ZXN0ZnVuYyhmdW5jKToKKyAgICByZXR1cm4g
aGFzYXR0cihmdW5jLCAiX19jYWxsX18iKSBhbmQgXAorICAgICAgICBnZXRhdHRyKGZ1bmMsICJf
X25hbWVfXyIsICI8bGFtYmRhPiIpICE9ICI8bGFtYmRhPiIKKworCitAYXR0ci5zKGZyb3plbj1U
cnVlKQorY2xhc3MgTWFyayhvYmplY3QpOgorICAgIG5hbWUgPSBhdHRyLmliKCkKKyAgICBhcmdz
ID0gYXR0ci5pYigpCisgICAga3dhcmdzID0gYXR0ci5pYigpCisKKyAgICBkZWYgY29tYmluZWRf
d2l0aChzZWxmLCBvdGhlcik6CisgICAgICAgIGFzc2VydCBzZWxmLm5hbWUgPT0gb3RoZXIubmFt
ZQorICAgICAgICByZXR1cm4gTWFyaygKKyAgICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5hcmdz
ICsgb3RoZXIuYXJncywKKyAgICAgICAgICAgIGRpY3Qoc2VsZi5rd2FyZ3MsICoqb3RoZXIua3dh
cmdzKSkKKworCitAYXR0ci5zCitjbGFzcyBNYXJrRGVjb3JhdG9yKG9iamVjdCk6CisgICAgIiIi
IEEgZGVjb3JhdG9yIGZvciB0ZXN0IGZ1bmN0aW9ucyBhbmQgdGVzdCBjbGFzc2VzLiAgV2hlbiBh
cHBsaWVkCisgICAgaXQgd2lsbCBjcmVhdGUgOmNsYXNzOmBNYXJrSW5mb2Agb2JqZWN0cyB3aGlj
aCBtYXkgYmUKKyAgICA6cmVmOmByZXRyaWV2ZWQgYnkgaG9va3MgYXMgaXRlbSBrZXl3b3JkcyA8
ZXhjb250cm9sc2tpcD5gLgorICAgIE1hcmtEZWNvcmF0b3IgaW5zdGFuY2VzIGFyZSBvZnRlbiBj
cmVhdGVkIGxpa2UgdGhpczo6CisKKyAgICAgICAgbWFyazEgPSBweXRlc3QubWFyay5OQU1FICAg
ICAgICAgICAgICAjIHNpbXBsZSBNYXJrRGVjb3JhdG9yCisgICAgICAgIG1hcmsyID0gcHl0ZXN0
Lm1hcmsuTkFNRShuYW1lMT12YWx1ZSkgIyBwYXJhbWV0cml6ZWQgTWFya0RlY29yYXRvcgorCisg
ICAgYW5kIGNhbiB0aGVuIGJlIGFwcGxpZWQgYXMgZGVjb3JhdG9ycyB0byB0ZXN0IGZ1bmN0aW9u
czo6CisKKyAgICAgICAgQG1hcmsyCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBXaGVuIGEgTWFya0RlY29yYXRvciBpbnN0YW5jZSBpcyBjYWxs
ZWQgaXQgZG9lcyB0aGUgZm9sbG93aW5nOgorICAgICAgMS4gSWYgY2FsbGVkIHdpdGggYSBzaW5n
bGUgY2xhc3MgYXMgaXRzIG9ubHkgcG9zaXRpb25hbCBhcmd1bWVudCBhbmQgbm8KKyAgICAgICAg
IGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudHMsIGl0IGF0dGFjaGVzIGl0c2VsZiB0byB0aGUg
Y2xhc3Mgc28gaXQKKyAgICAgICAgIGdldHMgYXBwbGllZCBhdXRvbWF0aWNhbGx5IHRvIGFsbCB0
ZXN0IGNhc2VzIGZvdW5kIGluIHRoYXQgY2xhc3MuCisgICAgICAyLiBJZiBjYWxsZWQgd2l0aCBh
IHNpbmdsZSBmdW5jdGlvbiBhcyBpdHMgb25seSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZAorICAg
ICAgICAgbm8gYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cywgaXQgYXR0YWNoZXMgYSBNYXJr
SW5mbyBvYmplY3QgdG8gdGhlCisgICAgICAgICBmdW5jdGlvbiwgY29udGFpbmluZyBhbGwgdGhl
IGFyZ3VtZW50cyBhbHJlYWR5IHN0b3JlZCBpbnRlcm5hbGx5IGluCisgICAgICAgICB0aGUgTWFy
a0RlY29yYXRvci4KKyAgICAgIDMuIFdoZW4gY2FsbGVkIGluIGFueSBvdGhlciBjYXNlLCBpdCBw
ZXJmb3JtcyBhICdmYWtlIGNvbnN0cnVjdGlvbicgY2FsbCwKKyAgICAgICAgIGkuZS4gaXQgcmV0
dXJucyBhIG5ldyBNYXJrRGVjb3JhdG9yIGluc3RhbmNlIHdpdGggdGhlIG9yaWdpbmFsCisgICAg
ICAgICBNYXJrRGVjb3JhdG9yJ3MgY29udGVudCB1cGRhdGVkIHdpdGggdGhlIGFyZ3VtZW50cyBw
YXNzZWQgdG8gdGhpcworICAgICAgICAgY2FsbC4KKworICAgIE5vdGU6IFRoZSBydWxlcyBhYm92
ZSBwcmV2ZW50IE1hcmtEZWNvcmF0b3Igb2JqZWN0cyBmcm9tIHN0b3Jpbmcgb25seSBhCisgICAg
c2luZ2xlIGZ1bmN0aW9uIG9yIGNsYXNzIHJlZmVyZW5jZSBhcyB0aGVpciBwb3NpdGlvbmFsIGFy
Z3VtZW50IHdpdGggbm8KKyAgICBhZGRpdGlvbmFsIGtleXdvcmQgb3IgcG9zaXRpb25hbCBhcmd1
bWVudHMuCisKKyAgICAiIiIKKworICAgIG1hcmsgPSBhdHRyLmliKHZhbGlkYXRvcj1hdHRyLnZh
bGlkYXRvcnMuaW5zdGFuY2Vfb2YoTWFyaykpCisKKyAgICBuYW1lID0gYWxpYXMoJ21hcmsubmFt
ZScpCisgICAgYXJncyA9IGFsaWFzKCdtYXJrLmFyZ3MnKQorICAgIGt3YXJncyA9IGFsaWFzKCdt
YXJrLmt3YXJncycpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWFya25hbWUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLm5hbWUgICMgZm9yIGJhY2t3YXJkLWNvbXBhdCAoMi40LjEgaGFk
IHRoaXMgYXR0cikKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gc2VsZi5tYXJrID09IG90aGVyLm1hcmsgaWYgaXNpbnN0YW5jZShvdGhlciwgTWFya0RlY29y
YXRvcikgZWxzZSBGYWxzZQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1
cm4gIjxNYXJrRGVjb3JhdG9yICVyPiIgJSAoc2VsZi5tYXJrLCkKKworICAgIGRlZiB3aXRoX2Fy
Z3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIHJldHVybiBhIE1hcmtEZWNv
cmF0b3Igd2l0aCBleHRyYSBhcmd1bWVudHMgYWRkZWQKKworICAgICAgICB1bmxpa2UgY2FsbCB0
aGlzIGNhbiBiZSB1c2VkIGV2ZW4gaWYgdGhlIHNvbGUgYXJndW1lbnQgaXMgYSBjYWxsYWJsZS9j
bGFzcworCisgICAgICAgIDpyZXR1cm46IE1hcmtEZWNvcmF0b3IKKyAgICAgICAgIiIiCisKKyAg
ICAgICAgbWFyayA9IE1hcmsoc2VsZi5uYW1lLCBhcmdzLCBrd2FyZ3MpCisgICAgICAgIHJldHVy
biBzZWxmLl9fY2xhc3NfXyhzZWxmLm1hcmsuY29tYmluZWRfd2l0aChtYXJrKSkKKworICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgaWYgcGFzc2Vk
IGEgc2luZ2xlIGNhbGxhYmxlIGFyZ3VtZW50OiBkZWNvcmF0ZSBpdCB3aXRoIG1hcmsgaW5mby4K
KyAgICAgICAgICAgIG90aGVyd2lzZSBhZGQgKmFyZ3MvKiprd2FyZ3MgaW4tcGxhY2UgdG8gbWFy
ayBpbmZvcm1hdGlvbi4gIiIiCisgICAgICAgIGlmIGFyZ3MgYW5kIG5vdCBrd2FyZ3M6CisgICAg
ICAgICAgICBmdW5jID0gYXJnc1swXQorICAgICAgICAgICAgaXNfY2xhc3MgPSBpbnNwZWN0Lmlz
Y2xhc3MoZnVuYykKKyAgICAgICAgICAgIGlmIGxlbihhcmdzKSA9PSAxIGFuZCAoaXN0ZXN0ZnVu
YyhmdW5jKSBvciBpc19jbGFzcyk6CisgICAgICAgICAgICAgICAgaWYgaXNfY2xhc3M6CisgICAg
ICAgICAgICAgICAgICAgIHN0b3JlX21hcmsoZnVuYywgc2VsZi5tYXJrKQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5j
LCBzZWxmLm1hcmspCisgICAgICAgICAgICAgICAgICAgIHN0b3JlX21hcmsoZnVuYywgc2VsZi5t
YXJrKQorICAgICAgICAgICAgICAgIHJldHVybiBmdW5jCisgICAgICAgIHJldHVybiBzZWxmLndp
dGhfYXJncygqYXJncywgKiprd2FyZ3MpCisKKworZGVmIGdldF91bnBhY2tlZF9tYXJrcyhvYmop
OgorICAgICIiIgorICAgIG9idGFpbiB0aGUgdW5wYWNrZWQgbWFya3MgdGhhdCBhcmUgc3RvcmVk
IG9uIGEgb2JqZWN0CisgICAgIiIiCisgICAgbWFya19saXN0ID0gZ2V0YXR0cihvYmosICdweXRl
c3RtYXJrJywgW10pCisKKyAgICBpZiBub3QgaXNpbnN0YW5jZShtYXJrX2xpc3QsIGxpc3QpOgor
ICAgICAgICBtYXJrX2xpc3QgPSBbbWFya19saXN0XQorICAgIHJldHVybiBbCisgICAgICAgIGdl
dGF0dHIobWFyaywgJ21hcmsnLCBtYXJrKSAgIyB1bnBhY2sgTWFya0RlY29yYXRvcgorICAgICAg
ICBmb3IgbWFyayBpbiBtYXJrX2xpc3QKKyAgICBdCisKKworZGVmIHN0b3JlX21hcmsob2JqLCBt
YXJrKToKKyAgICAiIiJzdG9yZSBhIE1hcmsgb24gYSBvYmplY3QKKyAgICB0aGlzIGlzIHVzZWQg
dG8gaW1wbGVtZW50IHRoZSBNYXJrIGRlY2xhcmF0aW9ucy9kZWNvcmF0b3JzIGNvcnJlY3RseQor
ICAgICIiIgorICAgIGFzc2VydCBpc2luc3RhbmNlKG1hcmssIE1hcmspLCBtYXJrCisgICAgIyBh
bHdheXMgcmVhc3NpZ24gbmFtZSB0byBhdm9pZCB1cGRhdGluZyBweXRlc3RtYXJrCisgICAgIyBp
biBhIHJlZmVyZW5jZSB0aGF0IHdhcyBvbmx5IGJvcnJvd2VkCisgICAgb2JqLnB5dGVzdG1hcmsg
PSBnZXRfdW5wYWNrZWRfbWFya3Mob2JqKSArIFttYXJrXQorCisKK2RlZiBzdG9yZV9sZWdhY3lf
bWFya2luZm8oZnVuYywgbWFyayk6CisgICAgIiIiY3JlYXRlIHRoZSBsZWdhY3kgTWFya0luZm8g
b2JqZWN0cyBhbmQgcHV0IHRoZW0gb250byB0aGUgZnVuY3Rpb24KKyAgICAiIiIKKyAgICBpZiBu
b3QgaXNpbnN0YW5jZShtYXJrLCBNYXJrKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJnb3Qg
e21hcmshcn0gaW5zdGVhZCBvZiBhIE1hcmsiLmZvcm1hdChtYXJrPW1hcmspKQorICAgIGhvbGRl
ciA9IGdldGF0dHIoZnVuYywgbWFyay5uYW1lLCBOb25lKQorICAgIGlmIGhvbGRlciBpcyBOb25l
OgorICAgICAgICBob2xkZXIgPSBNYXJrSW5mbyhtYXJrKQorICAgICAgICBzZXRhdHRyKGZ1bmMs
IG1hcmsubmFtZSwgaG9sZGVyKQorICAgIGVsc2U6CisgICAgICAgIGhvbGRlci5hZGRfbWFyayht
YXJrKQorCisKK2NsYXNzIE1hcmtJbmZvKG9iamVjdCk6CisgICAgIiIiIE1hcmtpbmcgb2JqZWN0
IGNyZWF0ZWQgYnkgOmNsYXNzOmBNYXJrRGVjb3JhdG9yYCBpbnN0YW5jZXMuICIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG1hcmspOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJr
LCBNYXJrKSwgcmVwcihtYXJrKQorICAgICAgICBzZWxmLmNvbWJpbmVkID0gbWFyaworICAgICAg
ICBzZWxmLl9tYXJrcyA9IFttYXJrXQorCisgICAgbmFtZSA9IGFsaWFzKCdjb21iaW5lZC5uYW1l
JykKKyAgICBhcmdzID0gYWxpYXMoJ2NvbWJpbmVkLmFyZ3MnKQorICAgIGt3YXJncyA9IGFsaWFz
KCdjb21iaW5lZC5rd2FyZ3MnKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gIjxNYXJrSW5mbyB7MCFyfT4iLmZvcm1hdChzZWxmLmNvbWJpbmVkKQorCisgICAgZGVm
IGFkZF9tYXJrKHNlbGYsIG1hcmspOgorICAgICAgICAiIiIgYWRkIGEgTWFya0luZm8gd2l0aCB0
aGUgZ2l2ZW4gYXJncyBhbmQga3dhcmdzLiAiIiIKKyAgICAgICAgc2VsZi5fbWFya3MuYXBwZW5k
KG1hcmspCisgICAgICAgIHNlbGYuY29tYmluZWQgPSBzZWxmLmNvbWJpbmVkLmNvbWJpbmVkX3dp
dGgobWFyaykKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIiIiIHlpZWxkIE1h
cmtJbmZvIG9iamVjdHMgZWFjaCByZWxhdGluZyB0byBhIG1hcmtpbmctY2FsbC4gIiIiCisgICAg
ICAgIHJldHVybiBtYXAoTWFya0luZm8sIHNlbGYuX21hcmtzKQorCisKK01BUktfR0VOID0gTWFy
a0dlbmVyYXRvcigpCisKKworZGVmIF9tYXJrZWQoZnVuYywgbWFyayk6CisgICAgIiIiIFJldHVy
bnMgVHJ1ZSBpZiA6ZnVuYzogaXMgYWxyZWFkeSBtYXJrZWQgd2l0aCA6bWFyazosIEZhbHNlIG90
aGVyd2lzZS4KKyAgICBUaGlzIGNhbiBoYXBwZW4gaWYgbWFya2VyIGlzIGFwcGxpZWQgdG8gY2xh
c3MgYW5kIHRoZSB0ZXN0IGZpbGUgaXMKKyAgICBpbnZva2VkIG1vcmUgdGhhbiBvbmNlLgorICAg
ICIiIgorICAgIHRyeToKKyAgICAgICAgZnVuY19tYXJrID0gZ2V0YXR0cihmdW5jLCBtYXJrLm5h
bWUpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICByZXR1cm4gbWFyay5hcmdzID09IGZ1bmNfbWFyay5hcmdzIGFuZCBtYXJrLmt3YXJncyA9PSBm
dW5jX21hcmsua3dhcmdzCisKKworZGVmIHRyYW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBt
b2QpOgorICAgICIiIgorICAgIHRoaXMgZnVuY3Rpb24gdHJhbnNmZXJzIGNsYXNzIGxldmVsIG1h
cmtlcnMgYW5kIG1vZHVsZSBsZXZlbCBtYXJrZXJzCisgICAgaW50byBmdW5jdGlvbiBsZXZlbCBt
YXJraW5mbyBvYmplY3RzCisKKyAgICB0aGlzIGlzIHRoZSBtYWluIHJlYXNvbiB3aHkgbWFya3Mg
YXJlIHNvIGJyb2tlbgorICAgIHRoZSByZXNvbHV0aW9uIHdpbGwgaW52b2x2ZSBwaGFzaW5nIG91
dCBmdW5jdGlvbiBsZXZlbCBNYXJrSW5mbyBvYmplY3RzCisKKyAgICAiIiIKKyAgICBmb3Igb2Jq
IGluIChjbHMsIG1vZCk6CisgICAgICAgIGZvciBtYXJrIGluIGdldF91bnBhY2tlZF9tYXJrcyhv
YmopOgorICAgICAgICAgICAgaWYgbm90IF9tYXJrZWQoZnVuY29iaiwgbWFyayk6CisgICAgICAg
ICAgICAgICAgc3RvcmVfbGVnYWN5X21hcmtpbmZvKGZ1bmNvYmosIG1hcmspCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9tb25rZXlwYXRjaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGFlNTYwZjA3MDJiMTM2MGEzMDlkOTE0NzMw
MjkwM2IxMTc0ZTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25r
ZXlwYXRjaC5weQpAQCAtMCwwICsxLDI1OCBAQAorIiIiIG1vbmtleXBhdGNoaW5nIGFuZCBtb2Nr
aW5nIGZ1bmN0aW9uYWxpdHkuICAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IG9zCitpbXBvcnQgc3lz
CitpbXBvcnQgcmUKK2ltcG9ydCBzaXgKK2Zyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgZml4
dHVyZQorCitSRV9JTVBPUlRfRVJST1JfTkFNRSA9IHJlLmNvbXBpbGUoIl5ObyBtb2R1bGUgbmFt
ZWQgKC4qKSQiKQorCisKK0BmaXh0dXJlCitkZWYgbW9ua2V5cGF0Y2goKToKKyAgICAiIiJUaGUg
cmV0dXJuZWQgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUgcHJvdmlkZXMgdGhlc2UKKyAgICBoZWxw
ZXIgbWV0aG9kcyB0byBtb2RpZnkgb2JqZWN0cywgZGljdGlvbmFyaWVzIG9yIG9zLmVudmlyb246
OgorCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIob2JqLCBuYW1lLCB2YWx1ZSwgcmFpc2lu
Zz1UcnVlKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxhdHRyKG9iaiwgbmFtZSwgcmFpc2luZz1U
cnVlKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG1hcHBpbmcsIG5hbWUsIHZhbHVlKQor
ICAgICAgICBtb25rZXlwYXRjaC5kZWxpdGVtKG9iaiwgbmFtZSwgcmFpc2luZz1UcnVlKQorICAg
ICAgICBtb25rZXlwYXRjaC5zZXRlbnYobmFtZSwgdmFsdWUsIHByZXBlbmQ9RmFsc2UpCisgICAg
ICAgIG1vbmtleXBhdGNoLmRlbGVudihuYW1lLCB2YWx1ZSwgcmFpc2luZz1UcnVlKQorICAgICAg
ICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQocGF0aCkKKyAgICAgICAgbW9ua2V5cGF0Y2gu
Y2hkaXIocGF0aCkKKworICAgIEFsbCBtb2RpZmljYXRpb25zIHdpbGwgYmUgdW5kb25lIGFmdGVy
IHRoZSByZXF1ZXN0aW5nCisgICAgdGVzdCBmdW5jdGlvbiBvciBmaXh0dXJlIGhhcyBmaW5pc2hl
ZC4gVGhlIGBgcmFpc2luZ2BgCisgICAgcGFyYW1ldGVyIGRldGVybWluZXMgaWYgYSBLZXlFcnJv
ciBvciBBdHRyaWJ1dGVFcnJvcgorICAgIHdpbGwgYmUgcmFpc2VkIGlmIHRoZSBzZXQvZGVsZXRp
b24gb3BlcmF0aW9uIGhhcyBubyB0YXJnZXQuCisgICAgIiIiCisgICAgbXBhdGNoID0gTW9ua2V5
UGF0Y2goKQorICAgIHlpZWxkIG1wYXRjaAorICAgIG1wYXRjaC51bmRvKCkKKworCitkZWYgcmVz
b2x2ZShuYW1lKToKKyAgICAjIHNpbXBsaWZpZWQgZnJvbSB6b3BlLmRvdHRlZG5hbWUKKyAgICBw
YXJ0cyA9IG5hbWUuc3BsaXQoJy4nKQorCisgICAgdXNlZCA9IHBhcnRzLnBvcCgwKQorICAgIGZv
dW5kID0gX19pbXBvcnRfXyh1c2VkKQorICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICB1
c2VkICs9ICcuJyArIHBhcnQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm91bmQgPSBnZXRh
dHRyKGZvdW5kLCBwYXJ0KQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAj
IHdlIHVzZSBleHBsaWNpdCB1bi1uZXN0aW5nIG9mIHRoZSBoYW5kbGluZyBibG9jayBpbiBvcmRl
cgorICAgICAgICAjIHRvIGF2b2lkIG5lc3RlZCBleGNlcHRpb25zIG9uIHB5dGhvbiAzCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIF9faW1wb3J0X18odXNlZCkKKyAgICAgICAgZXhjZXB0IElt
cG9ydEVycm9yIGFzIGV4OgorICAgICAgICAgICAgIyBzdHIgaXMgdXNlZCBmb3IgcHkyIHZzIHB5
MworICAgICAgICAgICAgZXhwZWN0ZWQgPSBzdHIoZXgpLnNwbGl0KClbLTFdCisgICAgICAgICAg
ICBpZiBleHBlY3RlZCA9PSB1c2VkOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKAorICAgICAgICAgICAg
ICAgICAgICAnaW1wb3J0IGVycm9yIGluICVzOiAlcycgJSAodXNlZCwgZXgpCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICBmb3VuZCA9IGFubm90YXRlZF9nZXRhdHRyKGZvdW5kLCBwYXJ0LCB1
c2VkKQorICAgIHJldHVybiBmb3VuZAorCisKK2RlZiBhbm5vdGF0ZWRfZ2V0YXR0cihvYmosIG5h
bWUsIGFubik6CisgICAgdHJ5OgorICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgbmFtZSkKKyAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAor
ICAgICAgICAgICAgJyVyIG9iamVjdCBhdCAlcyBoYXMgbm8gYXR0cmlidXRlICVyJyAlICgKKyAg
ICAgICAgICAgICAgICB0eXBlKG9iaikuX19uYW1lX18sIGFubiwgbmFtZQorICAgICAgICAgICAg
KQorICAgICAgICApCisgICAgcmV0dXJuIG9iagorCisKK2RlZiBkZXJpdmVfaW1wb3J0cGF0aChp
bXBvcnRfcGF0aCwgcmFpc2luZyk6CisgICAgaWYgbm90IGlzaW5zdGFuY2UoaW1wb3J0X3BhdGgs
IHNpeC5zdHJpbmdfdHlwZXMpIG9yICIuIiBub3QgaW4gaW1wb3J0X3BhdGg6CisgICAgICAgIHJh
aXNlIFR5cGVFcnJvcigibXVzdCBiZSBhYnNvbHV0ZSBpbXBvcnQgcGF0aCBzdHJpbmcsIG5vdCAl
ciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKGltcG9ydF9wYXRoLCkpCisgICAgbW9kdWxl
LCBhdHRyID0gaW1wb3J0X3BhdGgucnNwbGl0KCcuJywgMSkKKyAgICB0YXJnZXQgPSByZXNvbHZl
KG1vZHVsZSkKKyAgICBpZiByYWlzaW5nOgorICAgICAgICBhbm5vdGF0ZWRfZ2V0YXR0cih0YXJn
ZXQsIGF0dHIsIGFubj1tb2R1bGUpCisgICAgcmV0dXJuIGF0dHIsIHRhcmdldAorCisKK2NsYXNz
IE5vdHNldDoKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPG5vdHNl
dD4iCisKKworbm90c2V0ID0gTm90c2V0KCkKKworCitjbGFzcyBNb25rZXlQYXRjaDoKKyAgICAi
IiIgT2JqZWN0IHJldHVybmVkIGJ5IHRoZSBgYG1vbmtleXBhdGNoYGAgZml4dHVyZSBrZWVwaW5n
IGEgcmVjb3JkIG9mIHNldGF0dHIvaXRlbS9lbnYvc3lzcGF0aCBjaGFuZ2VzLgorICAgICIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9zZXRhdHRyID0gW10KKyAg
ICAgICAgc2VsZi5fc2V0aXRlbSA9IFtdCisgICAgICAgIHNlbGYuX2N3ZCA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fc2F2ZXN5c3BhdGggPSBOb25lCisKKyAgICBkZWYgc2V0YXR0cihzZWxmLCB0YXJn
ZXQsIG5hbWUsIHZhbHVlPW5vdHNldCwgcmFpc2luZz1UcnVlKToKKyAgICAgICAgIiIiIFNldCBh
dHRyaWJ1dGUgdmFsdWUgb24gdGFyZ2V0LCBtZW1vcml6aW5nIHRoZSBvbGQgdmFsdWUuCisgICAg
ICAgIEJ5IGRlZmF1bHQgcmFpc2UgQXR0cmlidXRlRXJyb3IgaWYgdGhlIGF0dHJpYnV0ZSBkaWQg
bm90IGV4aXN0LgorCisgICAgICAgIEZvciBjb252ZW5pZW5jZSB5b3UgY2FuIHNwZWNpZnkgYSBz
dHJpbmcgYXMgYGB0YXJnZXRgYCB3aGljaAorICAgICAgICB3aWxsIGJlIGludGVycHJldGVkIGFz
IGEgZG90dGVkIGltcG9ydCBwYXRoLCB3aXRoIHRoZSBsYXN0IHBhcnQKKyAgICAgICAgYmVpbmcg
dGhlIGF0dHJpYnV0ZSBuYW1lLiAgRXhhbXBsZToKKyAgICAgICAgYGBtb25rZXlwYXRjaC5zZXRh
dHRyKCJvcy5nZXRjd2QiLCBsYW1iZGEgeDogIi8iKWBgCisgICAgICAgIHdvdWxkIHNldCB0aGUg
YGBnZXRjd2RgYCBmdW5jdGlvbiBvZiB0aGUgYGBvc2BgIG1vZHVsZS4KKworICAgICAgICBUaGUg
YGByYWlzaW5nYGAgdmFsdWUgZGV0ZXJtaW5lcyBpZiB0aGUgc2V0YXR0ciBzaG91bGQgZmFpbAor
ICAgICAgICBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBhbHJlYWR5IHByZXNlbnQgKGRlZmF1bHRz
IHRvIFRydWUKKyAgICAgICAgd2hpY2ggbWVhbnMgaXQgd2lsbCByYWlzZSkuCisgICAgICAgICIi
IgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgaW1wb3J0IGluc3Bl
Y3QKKworICAgICAgICBpZiB2YWx1ZSBpcyBub3RzZXQ6CisgICAgICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFR5cGVFcnJvcigidXNlIHNldGF0dHIodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgb3IgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0YXR0cih0YXJnZXQsIHZhbHVlKSB3aXRoIHRh
cmdldCBiZWluZyBhIGRvdHRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bXBvcnQgc3RyaW5nIikKKyAgICAgICAgICAgIHZhbHVlID0gbmFtZQorICAgICAgICAgICAgbmFt
ZSwgdGFyZ2V0ID0gZGVyaXZlX2ltcG9ydHBhdGgodGFyZ2V0LCByYWlzaW5nKQorCisgICAgICAg
IG9sZHZhbCA9IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpCisgICAgICAgIGlmIHJhaXNp
bmcgYW5kIG9sZHZhbCBpcyBub3RzZXQ6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJv
cigiJXIgaGFzIG5vIGF0dHJpYnV0ZSAlciIgJSAodGFyZ2V0LCBuYW1lKSkKKworICAgICAgICAj
IGF2b2lkIGNsYXNzIGRlc2NyaXB0b3JzIGxpa2Ugc3RhdGljbWV0aG9kL2NsYXNzbWV0aG9kCisg
ICAgICAgIGlmIGluc3BlY3QuaXNjbGFzcyh0YXJnZXQpOgorICAgICAgICAgICAgb2xkdmFsID0g
dGFyZ2V0Ll9fZGljdF9fLmdldChuYW1lLCBub3RzZXQpCisgICAgICAgIHNlbGYuX3NldGF0dHIu
YXBwZW5kKCh0YXJnZXQsIG5hbWUsIG9sZHZhbCkpCisgICAgICAgIHNldGF0dHIodGFyZ2V0LCBu
YW1lLCB2YWx1ZSkKKworICAgIGRlZiBkZWxhdHRyKHNlbGYsIHRhcmdldCwgbmFtZT1ub3RzZXQs
IHJhaXNpbmc9VHJ1ZSk6CisgICAgICAgICIiIiBEZWxldGUgYXR0cmlidXRlIGBgbmFtZWBgIGZy
b20gYGB0YXJnZXRgYCwgYnkgZGVmYXVsdCByYWlzZQorICAgICAgICBBdHRyaWJ1dGVFcnJvciBp
dCB0aGUgYXR0cmlidXRlIGRpZCBub3QgcHJldmlvdXNseSBleGlzdC4KKworICAgICAgICBJZiBu
byBgYG5hbWVgYCBpcyBzcGVjaWZpZWQgYW5kIGBgdGFyZ2V0YGAgaXMgYSBzdHJpbmcKKyAgICAg
ICAgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRlZCBpbXBvcnQgcGF0aCB3aXRoIHRo
ZQorICAgICAgICBsYXN0IHBhcnQgYmVpbmcgdGhlIGF0dHJpYnV0ZSBuYW1lLgorCisgICAgICAg
IElmIGBgcmFpc2luZ2BgIGlzIHNldCB0byBGYWxzZSwgbm8gZXhjZXB0aW9uIHdpbGwgYmUgcmFp
c2VkIGlmIHRoZQorICAgICAgICBhdHRyaWJ1dGUgaXMgbWlzc2luZy4KKyAgICAgICAgIiIiCisg
ICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBuYW1lIGlzIG5vdHNl
dDoKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHRhcmdldCwgc2l4LnN0cmluZ190eXBl
cyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1c2UgZGVsYXR0cih0YXJnZXQs
IG5hbWUpIG9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGF0dHIodGFy
Z2V0KSB3aXRoIHRhcmdldCBiZWluZyBhIGRvdHRlZCAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpbXBvcnQgc3RyaW5nIikKKyAgICAgICAgICAgIG5hbWUsIHRhcmdldCA9IGRl
cml2ZV9pbXBvcnRwYXRoKHRhcmdldCwgcmFpc2luZykKKworICAgICAgICBpZiBub3QgaGFzYXR0
cih0YXJnZXQsIG5hbWUpOgorICAgICAgICAgICAgaWYgcmFpc2luZzoKKyAgICAgICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5fc2V0YXR0ci5hcHBlbmQoKHRhcmdldCwgbmFtZSwgZ2V0YXR0cih0YXJnZXQsIG5hbWUs
IG5vdHNldCkpKQorICAgICAgICAgICAgZGVsYXR0cih0YXJnZXQsIG5hbWUpCisKKyAgICBkZWYg
c2V0aXRlbShzZWxmLCBkaWMsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiIFNldCBkaWN0aW9u
YXJ5IGVudHJ5IGBgbmFtZWBgIHRvIHZhbHVlLiAiIiIKKyAgICAgICAgc2VsZi5fc2V0aXRlbS5h
cHBlbmQoKGRpYywgbmFtZSwgZGljLmdldChuYW1lLCBub3RzZXQpKSkKKyAgICAgICAgZGljW25h
bWVdID0gdmFsdWUKKworICAgIGRlZiBkZWxpdGVtKHNlbGYsIGRpYywgbmFtZSwgcmFpc2luZz1U
cnVlKToKKyAgICAgICAgIiIiIERlbGV0ZSBgYG5hbWVgYCBmcm9tIGRpY3QuIFJhaXNlIEtleUVy
cm9yIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCisKKyAgICAgICAgSWYgYGByYWlzaW5nYGAgaXMgc2V0
IHRvIEZhbHNlLCBubyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgaWYgdGhlCisgICAgICAgIGtl
eSBpcyBtaXNzaW5nLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbmFtZSBub3QgaW4gZGljOgor
ICAgICAgICAgICAgaWYgcmFpc2luZzoKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihu
YW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2V0aXRlbS5hcHBlbmQoKGRp
YywgbmFtZSwgZGljLmdldChuYW1lLCBub3RzZXQpKSkKKyAgICAgICAgICAgIGRlbCBkaWNbbmFt
ZV0KKworICAgIGRlZiBzZXRlbnYoc2VsZiwgbmFtZSwgdmFsdWUsIHByZXBlbmQ9Tm9uZSk6Cisg
ICAgICAgICIiIiBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGUgYGBuYW1lYGAgdG8gYGB2YWx1ZWBg
LiAgSWYgYGBwcmVwZW5kYGAKKyAgICAgICAgaXMgYSBjaGFyYWN0ZXIsIHJlYWQgdGhlIGN1cnJl
bnQgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFsdWUKKyAgICAgICAgYW5kIHByZXBlbmQgdGhlIGBg
dmFsdWVgYCBhZGpvaW5lZCB3aXRoIHRoZSBgYHByZXBlbmRgYCBjaGFyYWN0ZXIuIiIiCisgICAg
ICAgIHZhbHVlID0gc3RyKHZhbHVlKQorICAgICAgICBpZiBwcmVwZW5kIGFuZCBuYW1lIGluIG9z
LmVudmlyb246CisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICsgcHJlcGVuZCArIG9zLmVudmly
b25bbmFtZV0KKyAgICAgICAgc2VsZi5zZXRpdGVtKG9zLmVudmlyb24sIG5hbWUsIHZhbHVlKQor
CisgICAgZGVmIGRlbGVudihzZWxmLCBuYW1lLCByYWlzaW5nPVRydWUpOgorICAgICAgICAiIiIg
RGVsZXRlIGBgbmFtZWBgIGZyb20gdGhlIGVudmlyb25tZW50LiBSYWlzZSBLZXlFcnJvciBpdCBk
b2VzIG5vdAorICAgICAgICBleGlzdC4KKworICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQg
dG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKKyAgICAgICAgZW52
aXJvbm1lbnQgdmFyaWFibGUgaXMgbWlzc2luZy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
ZGVsaXRlbShvcy5lbnZpcm9uLCBuYW1lLCByYWlzaW5nPXJhaXNpbmcpCisKKyAgICBkZWYgc3lz
cGF0aF9wcmVwZW5kKHNlbGYsIHBhdGgpOgorICAgICAgICAiIiIgUHJlcGVuZCBgYHBhdGhgYCB0
byBgYHN5cy5wYXRoYGAgbGlzdCBvZiBpbXBvcnQgbG9jYXRpb25zLiAiIiIKKyAgICAgICAgaWYg
c2VsZi5fc2F2ZXN5c3BhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3NhdmVzeXNwYXRo
ID0gc3lzLnBhdGhbOl0KKyAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihwYXRoKSkKKwor
ICAgIGRlZiBjaGRpcihzZWxmLCBwYXRoKToKKyAgICAgICAgIiIiIENoYW5nZSB0aGUgY3VycmVu
dCB3b3JraW5nIGRpcmVjdG9yeSB0byB0aGUgc3BlY2lmaWVkIHBhdGguCisgICAgICAgIFBhdGgg
Y2FuIGJlIGEgc3RyaW5nIG9yIGEgcHkucGF0aC5sb2NhbCBvYmplY3QuCisgICAgICAgICIiIgor
ICAgICAgICBpZiBzZWxmLl9jd2QgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2N3ZCA9IG9z
LmdldGN3ZCgpCisgICAgICAgIGlmIGhhc2F0dHIocGF0aCwgImNoZGlyIik6CisgICAgICAgICAg
ICBwYXRoLmNoZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9zLmNoZGlyKHBhdGgp
CisKKyAgICBkZWYgdW5kbyhzZWxmKToKKyAgICAgICAgIiIiIFVuZG8gcHJldmlvdXMgY2hhbmdl
cy4gIFRoaXMgY2FsbCBjb25zdW1lcyB0aGUKKyAgICAgICAgdW5kbyBzdGFjay4gQ2FsbGluZyBp
dCBhIHNlY29uZCB0aW1lIGhhcyBubyBlZmZlY3QgdW5sZXNzCisgICAgICAgIHlvdSBkbyBtb3Jl
IG1vbmtleXBhdGNoaW5nIGFmdGVyIHRoZSB1bmRvIGNhbGwuCisKKyAgICAgICAgVGhlcmUgaXMg
Z2VuZXJhbGx5IG5vIG5lZWQgdG8gY2FsbCBgdW5kbygpYCwgc2luY2UgaXQgaXMKKyAgICAgICAg
Y2FsbGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRlYXItZG93bi4KKworICAgICAgICBOb3RlIHRo
YXQgdGhlIHNhbWUgYG1vbmtleXBhdGNoYCBmaXh0dXJlIGlzIHVzZWQgYWNyb3NzIGEKKyAgICAg
ICAgc2luZ2xlIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbi4gSWYgYG1vbmtleXBhdGNoYCBpcyB1
c2VkIGJvdGggYnkKKyAgICAgICAgdGhlIHRlc3QgZnVuY3Rpb24gaXRzZWxmIGFuZCBvbmUgb2Yg
dGhlIHRlc3QgZml4dHVyZXMsCisgICAgICAgIGNhbGxpbmcgYHVuZG8oKWAgd2lsbCB1bmRvIGFs
bCBvZiB0aGUgY2hhbmdlcyBtYWRlIGluCisgICAgICAgIGJvdGggZnVuY3Rpb25zLgorICAgICAg
ICAiIiIKKyAgICAgICAgZm9yIG9iaiwgbmFtZSwgdmFsdWUgaW4gcmV2ZXJzZWQoc2VsZi5fc2V0
YXR0cik6CisgICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3Qgbm90c2V0OgorICAgICAgICAgICAg
ICAgIHNldGF0dHIob2JqLCBuYW1lLCB2YWx1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgZGVsYXR0cihvYmosIG5hbWUpCisgICAgICAgIHNlbGYuX3NldGF0dHJbOl0gPSBb
XQorICAgICAgICBmb3IgZGljdGlvbmFyeSwgbmFtZSwgdmFsdWUgaW4gcmV2ZXJzZWQoc2VsZi5f
c2V0aXRlbSk6CisgICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3RzZXQ6CisgICAgICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBkZWwgZGljdGlvbmFyeVtuYW1lXQorICAgICAg
ICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcGFzcyAgIyB3
YXMgYWxyZWFkeSBkZWxldGVkLCBzbyB3ZSBoYXZlIHRoZSBkZXNpcmVkIHN0YXRlCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlbbmFtZV0gPSB2YWx1ZQorICAg
ICAgICBzZWxmLl9zZXRpdGVtWzpdID0gW10KKyAgICAgICAgaWYgc2VsZi5fc2F2ZXN5c3BhdGgg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBzeXMucGF0aFs6XSA9IHNlbGYuX3NhdmVzeXNwYXRo
CisgICAgICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IE5vbmUKKworICAgICAgICBpZiBzZWxm
Ll9jd2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBvcy5jaGRpcihzZWxmLl9jd2QpCisgICAg
ICAgICAgICBzZWxmLl9jd2QgPSBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L25vZGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDNh
ZjJjZTY3Yzg5NThmOTUzMzUyOTQ0NGViMmJmMmIxYjc3OTk4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weQpAQCAtMCwwICsxLDM3IEBACitTRVAgPSAiLyIK
KworCitkZWYgX3NwbGl0bm9kZShub2RlaWQpOgorICAgICIiIlNwbGl0IGEgbm9kZWlkIGludG8g
Y29uc3RpdHVlbnQgJ3BhcnRzJy4KKworICAgIE5vZGUgSURzIGFyZSBzdHJpbmdzLCBhbmQgY2Fu
IGJlIHRoaW5ncyBsaWtlOgorICAgICAgICAnJworICAgICAgICAndGVzdGluZy9jb2RlJworICAg
ICAgICAndGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weScKKyAgICAgICAgJ3Rlc3RpbmcvY29k
ZS90ZXN0X2V4Y2luZm8ucHk6OlRlc3RGb3JtYXR0ZWRFeGNpbmZvOjooKScKKworICAgIFJldHVy
biB2YWx1ZXMgYXJlIGxpc3RzIGUuZy4KKyAgICAgICAgW10KKyAgICAgICAgWyd0ZXN0aW5nJywg
J2NvZGUnXQorICAgICAgICBbJ3Rlc3RpbmcnLCAnY29kZScsICd0ZXN0X2V4Y2luZm8ucHknXQor
ICAgICAgICBbJ3Rlc3RpbmcnLCAnY29kZScsICd0ZXN0X2V4Y2luZm8ucHknLCAnVGVzdEZvcm1h
dHRlZEV4Y2luZm8nLCAnKCknXQorICAgICIiIgorICAgIGlmIG5vZGVpZCA9PSAnJzoKKyAgICAg
ICAgIyBJZiB0aGVyZSBpcyBubyByb290IG5vZGUgYXQgYWxsLCByZXR1cm4gYW4gZW1wdHkgbGlz
dCBzbyB0aGUgY2FsbGVyJ3MgbG9naWMgY2FuIHJlbWFpbiBzYW5lCisgICAgICAgIHJldHVybiBb
XQorICAgIHBhcnRzID0gbm9kZWlkLnNwbGl0KFNFUCkKKyAgICAjIFJlcGxhY2Ugc2luZ2xlIGxh
c3QgZWxlbWVudCAndGVzdF9mb28ucHk6OkJhcjo6KCknIHdpdGggbXVsdGlwbGUgZWxlbWVudHMg
J3Rlc3RfZm9vLnB5JywgJ0JhcicsICcoKScKKyAgICBwYXJ0c1stMTpdID0gcGFydHNbLTFdLnNw
bGl0KCI6OiIpCisgICAgcmV0dXJuIHBhcnRzCisKKworZGVmIGlzY2hpbGRub2RlKGJhc2VpZCwg
bm9kZWlkKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB0aGUgbm9kZWlkIGlzIGEgY2hpbGQgbm9k
ZSBvZiB0aGUgYmFzZWlkLgorCisgICAgRS5nLiAnZm9vL2Jhcjo6QmF6OjooKScgaXMgYSBjaGls
ZCBvZiAnZm9vJywgJ2Zvby9iYXInIGFuZCAnZm9vL2Jhcjo6QmF6JywgYnV0IG5vdCBvZiAnZm9v
L2Jsb3JwJworICAgICIiIgorICAgIGJhc2VfcGFydHMgPSBfc3BsaXRub2RlKGJhc2VpZCkKKyAg
ICBub2RlX3BhcnRzID0gX3NwbGl0bm9kZShub2RlaWQpCisgICAgaWYgbGVuKG5vZGVfcGFydHMp
IDwgbGVuKGJhc2VfcGFydHMpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICByZXR1cm4gbm9k
ZV9wYXJ0c1s6bGVuKGJhc2VfcGFydHMpXSA9PSBiYXNlX3BhcnRzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzgxNTQyZWFkZjM3N2QxZDNhZGRmYWFmZWE1ZDY0YTg4MzI5OGEwMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQpAQCAtMCwwICsxLDcyIEBA
CisiIiIgcnVuIHRlc3Qgc3VpdGVzIHdyaXR0ZW4gZm9yIG5vc2UuICIiIgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgc3lzCisKK2Zyb20gX3B5dGVzdCBpbXBvcnQgdW5pdHRlc3QsIHJ1bm5lciwgcHl0aG9u
Citmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAorCisKK2RlZiBnZXRfc2tpcF9l
eGNlcHRpb25zKCk6CisgICAgc2tpcF9jbGFzc2VzID0gc2V0KCkKKyAgICBmb3IgbW9kdWxlX25h
bWUgaW4gKCd1bml0dGVzdCcsICd1bml0dGVzdDInLCAnbm9zZScpOgorICAgICAgICBtb2QgPSBz
eXMubW9kdWxlcy5nZXQobW9kdWxlX25hbWUpCisgICAgICAgIGlmIGhhc2F0dHIobW9kLCAnU2tp
cFRlc3QnKToKKyAgICAgICAgICAgIHNraXBfY2xhc3Nlcy5hZGQobW9kLlNraXBUZXN0KQorICAg
IHJldHVybiB0dXBsZShza2lwX2NsYXNzZXMpCisKKworZGVmIHB5dGVzdF9ydW50ZXN0X21ha2Vy
ZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8u
ZXJyaXNpbnN0YW5jZShnZXRfc2tpcF9leGNlcHRpb25zKCkpOgorICAgICAgICAjIGxldCdzIHN1
YnN0aXR1dGUgdGhlIGV4Y2luZm8gd2l0aCBhIHB5dGVzdC5za2lwIG9uZQorICAgICAgICBjYWxs
MiA9IGNhbGwuX19jbGFzc19fKAorICAgICAgICAgICAgbGFtYmRhOiBydW5uZXIuc2tpcChzdHIo
Y2FsbC5leGNpbmZvLnZhbHVlKSksIGNhbGwud2hlbikKKyAgICAgICAgY2FsbC5leGNpbmZvID0g
Y2FsbDIuZXhjaW5mbworCisKK0Bob29raW1wbCh0cnlsYXN0PVRydWUpCitkZWYgcHl0ZXN0X3J1
bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgaWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgor
ICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0ucGFyZW50LCBweXRob24uR2VuZXJhdG9yKToKKyAg
ICAgICAgICAgIGdlbiA9IGl0ZW0ucGFyZW50CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihn
ZW4sICdfbm9zZWdlbnNldHVwJyk6CisgICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4u
b2JqLCAnc2V0dXAnKQorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZ2VuLnBhcmVudCwg
cHl0aG9uLkluc3RhbmNlKToKKyAgICAgICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4u
cGFyZW50Lm9iaiwgJ3NldHVwJykKKyAgICAgICAgICAgICAgICBnZW4uX25vc2VnZW5zZXR1cCA9
IFRydWUKKyAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICdzZXR1cCcpOgor
ICAgICAgICAgICAgIyBjYWxsIG1vZHVsZSBsZXZlbCBzZXR1cCBpZiB0aGVyZSBpcyBubyBvYmpl
Y3QgbGV2ZWwgb25lCisgICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwg
J3NldHVwJykKKyAgICAgICAgIyBYWFggdGhpcyBpbXBsaWVzIHdlIG9ubHkgY2FsbCB0ZWFyZG93
biB3aGVuIHNldHVwIHdvcmtlZAorICAgICAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUuYWRk
ZmluYWxpemVyKChsYW1iZGE6IHRlYXJkb3duX25vc2UoaXRlbSkpLCBpdGVtKQorCisKK2RlZiB0
ZWFyZG93bl9ub3NlKGl0ZW0pOgorICAgIGlmIGlzX3BvdGVudGlhbF9ub3NldGVzdChpdGVtKToK
KyAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICd0ZWFyZG93bicpOgorICAg
ICAgICAgICAgY2FsbF9vcHRpb25hbChpdGVtLnBhcmVudC5vYmosICd0ZWFyZG93bicpCisgICAg
ICAgICMgaWYgaGFzYXR0cihpdGVtLnBhcmVudCwgJ19ub3NlZ2Vuc2V0dXAnKToKKyAgICAgICAg
IyAgICAjY2FsbF9vcHRpb25hbChpdGVtLl9ub3NlZ2Vuc2V0dXAsICd0ZWFyZG93bicpCisgICAg
ICAgICMgICAgZGVsIGl0ZW0ucGFyZW50Ll9ub3NlZ2Vuc2V0dXAKKworCitkZWYgcHl0ZXN0X21h
a2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKKyAgICBpZiBpc2luc3RhbmNlKGNvbGxlY3Rv
ciwgcHl0aG9uLkdlbmVyYXRvcik6CisgICAgICAgIGNhbGxfb3B0aW9uYWwoY29sbGVjdG9yLm9i
aiwgJ3NldHVwJykKKworCitkZWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgorICAgICMg
ZXh0cmEgY2hlY2sgbmVlZGVkIHNpbmNlIHdlIGRvIG5vdCBkbyBub3NlIHN0eWxlIHNldHVwL3Rl
YXJkb3duCisgICAgIyBvbiBkaXJlY3QgdW5pdHRlc3Qgc3R5bGUgY2xhc3NlcworICAgIHJldHVy
biBpc2luc3RhbmNlKGl0ZW0sIHB5dGhvbi5GdW5jdGlvbikgYW5kIFwKKyAgICAgICAgbm90IGlz
aW5zdGFuY2UoaXRlbSwgdW5pdHRlc3QuVGVzdENhc2VGdW5jdGlvbikKKworCitkZWYgY2FsbF9v
cHRpb25hbChvYmosIG5hbWUpOgorICAgIG1ldGhvZCA9IGdldGF0dHIob2JqLCBuYW1lLCBOb25l
KQorICAgIGlzZml4dHVyZSA9IGhhc2F0dHIobWV0aG9kLCAiX3B5dGVzdGZpeHR1cmVmdW5jdGlv
biIpCisgICAgaWYgbWV0aG9kIGlzIG5vdCBOb25lIGFuZCBub3QgaXNmaXh0dXJlIGFuZCBjYWxs
YWJsZShtZXRob2QpOgorICAgICAgICAjIElmIHRoZXJlJ3MgYW55IHByb2JsZW1zIGFsbG93IHRo
ZSBleGNlcHRpb24gdG8gcmFpc2UgcmF0aGVyIHRoYW4KKyAgICAgICAgIyBzaWxlbnRseSBpZ25v
cmluZyB0aGVtCisgICAgICAgIG1ldGhvZCgpCisgICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9vdXRjb21lcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjBjMThmYTZjMWI0ODc4M2EzYTlkM2E2NDVkM2Uy
NDRkNjczYzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21l
cy5weQpAQCAtMCwwICsxLDE0NyBAQAorIiIiCitleGNlcHRpb24gY2xhc3NlcyBhbmQgY29uc3Rh
bnRzIGhhbmRsaW5nIHRlc3Qgb3V0Y29tZXMKK2FzIHdlbGwgYXMgZnVuY3Rpb25zIGNyZWF0aW5n
IHRoZW0KKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5CitpbXBvcnQgc3lzCisKKworY2xhc3MgT3V0
Y29tZUV4Y2VwdGlvbihCYXNlRXhjZXB0aW9uKToKKyAgICAiIiIgT3V0Y29tZUV4Y2VwdGlvbiBh
bmQgaXRzIHN1YmNsYXNzIGluc3RhbmNlcyBpbmRpY2F0ZSBhbmQKKyAgICAgICAgY29udGFpbiBp
bmZvIGFib3V0IHRlc3QgYW5kIGNvbGxlY3Rpb24gb3V0Y29tZXMuCisgICAgIiIiCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1zZz1Ob25lLCBweXRyYWNlPVRydWUpOgorICAgICAgICBCYXNlRXhj
ZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1zZykKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICAg
ICAgc2VsZi5weXRyYWNlID0gcHl0cmFjZQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAg
ICAgICBpZiBzZWxmLm1zZzoKKyAgICAgICAgICAgIHZhbCA9IHNlbGYubXNnCisgICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgorICAgICAgICAgICAgICAgIHZhbCA9IHB5Ll9i
dWlsdGluLl90b3RleHQodmFsLCBlcnJvcnM9J3JlcGxhY2UnKQorICAgICAgICAgICAgcmV0dXJu
IHZhbAorICAgICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZT4iICUgKHNlbGYuX19jbGFzc19fLl9f
bmFtZV9fLCkKKyAgICBfX3N0cl9fID0gX19yZXByX18KKworCitURVNUX09VVENPTUUgPSAoT3V0
Y29tZUV4Y2VwdGlvbiwgRXhjZXB0aW9uKQorCisKK2NsYXNzIFNraXBwZWQoT3V0Y29tZUV4Y2Vw
dGlvbik6CisgICAgIyBYWFggaGFja2lzaDogb24gM2sgd2UgZmFrZSB0byBsaXZlIGluIHRoZSBi
dWlsdGlucworICAgICMgaW4gb3JkZXIgdG8gaGF2ZSBTa2lwcGVkIGV4Y2VwdGlvbiBwcmludGlu
ZyBzaG9ydGVyL25pY2VyCisgICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgcHl0cmFjZT1UcnVlLCBhbGxvd19tb2R1bGVfbGV2ZWw9
RmFsc2UpOgorICAgICAgICBPdXRjb21lRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1zZz1tc2cs
IHB5dHJhY2U9cHl0cmFjZSkKKyAgICAgICAgc2VsZi5hbGxvd19tb2R1bGVfbGV2ZWwgPSBhbGxv
d19tb2R1bGVfbGV2ZWwKKworCitjbGFzcyBGYWlsZWQoT3V0Y29tZUV4Y2VwdGlvbik6CisgICAg
IiIiIHJhaXNlZCBmcm9tIGFuIGV4cGxpY2l0IGNhbGwgdG8gcHl0ZXN0LmZhaWwoKSAiIiIKKyAg
ICBfX21vZHVsZV9fID0gJ2J1aWx0aW5zJworCisKK2NsYXNzIEV4aXQoS2V5Ym9hcmRJbnRlcnJ1
cHQpOgorICAgICIiIiByYWlzZWQgZm9yIGltbWVkaWF0ZSBwcm9ncmFtIGV4aXRzIChubyB0cmFj
ZWJhY2tzL3N1bW1hcmllcykiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPSJ1bmtub3du
IHJlYXNvbiIpOgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBLZXlib2FyZEludGVy
cnVwdC5fX2luaXRfXyhzZWxmLCBtc2cpCisKKyMgZXhwb3NlZCBoZWxwZXIgbWV0aG9kcworCisK
K2RlZiBleGl0KG1zZyk6CisgICAgIiIiIGV4aXQgdGVzdGluZyBwcm9jZXNzIGFzIGlmIEtleWJv
YXJkSW50ZXJydXB0IHdhcyB0cmlnZ2VyZWQuICIiIgorICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQorICAgIHJhaXNlIEV4aXQobXNnKQorCisKK2V4aXQuRXhjZXB0aW9uID0gRXhpdAorCisK
K2RlZiBza2lwKG1zZz0iIiwgKiprd2FyZ3MpOgorICAgICIiIiBza2lwIGFuIGV4ZWN1dGluZyB0
ZXN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuICBOb3RlOiBpdCdzIHVzdWFsbHkKKyAgICBiZXR0
ZXIgdG8gdXNlIHRoZSBweXRlc3QubWFyay5za2lwaWYgbWFya2VyIHRvIGRlY2xhcmUgYSB0ZXN0
IHRvIGJlCisgICAgc2tpcHBlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgbGlrZSBtaXNtYXRj
aGluZyBwbGF0Zm9ybXMgb3IKKyAgICBkZXBlbmRlbmNpZXMuICBTZWUgdGhlIHB5dGVzdF9za2lw
cGluZyBwbHVnaW4gZm9yIGRldGFpbHMuCisKKyAgICA6a3dhcmcgYm9vbCBhbGxvd19tb2R1bGVf
bGV2ZWw6IGFsbG93cyB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhdAorICAgICAgICBtb2R1
bGUgbGV2ZWwsIHNraXBwaW5nIHRoZSByZXN0IG9mIHRoZSBtb2R1bGUuIERlZmF1bHQgdG8gRmFs
c2UuCisgICAgIiIiCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgYWxsb3dfbW9k
dWxlX2xldmVsID0ga3dhcmdzLnBvcCgnYWxsb3dfbW9kdWxlX2xldmVsJywgRmFsc2UpCisgICAg
aWYga3dhcmdzOgorICAgICAgICBrZXlzID0gW2sgZm9yIGsgaW4ga3dhcmdzLmtleXMoKV0KKyAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKCd1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnRzOiB7MH0n
LmZvcm1hdChrZXlzKSkKKyAgICByYWlzZSBTa2lwcGVkKG1zZz1tc2csIGFsbG93X21vZHVsZV9s
ZXZlbD1hbGxvd19tb2R1bGVfbGV2ZWwpCisKKworc2tpcC5FeGNlcHRpb24gPSBTa2lwcGVkCisK
KworZGVmIGZhaWwobXNnPSIiLCBweXRyYWNlPVRydWUpOgorICAgICIiIiBleHBsaWNpdGx5IGZh
aWwgYW4gY3VycmVudGx5LWV4ZWN1dGluZyB0ZXN0IHdpdGggdGhlIGdpdmVuIE1lc3NhZ2UuCisK
KyAgICA6YXJnIHB5dHJhY2U6IGlmIGZhbHNlIHRoZSBtc2cgcmVwcmVzZW50cyB0aGUgZnVsbCBm
YWlsdXJlIGluZm9ybWF0aW9uCisgICAgICAgICAgICAgICAgICBhbmQgbm8gcHl0aG9uIHRyYWNl
YmFjayB3aWxsIGJlIHJlcG9ydGVkLgorICAgICIiIgorICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQorICAgIHJhaXNlIEZhaWxlZChtc2c9bXNnLCBweXRyYWNlPXB5dHJhY2UpCisKKworZmFp
bC5FeGNlcHRpb24gPSBGYWlsZWQKKworCitjbGFzcyBYRmFpbGVkKGZhaWwuRXhjZXB0aW9uKToK
KyAgICAiIiIgcmFpc2VkIGZyb20gYW4gZXhwbGljaXQgY2FsbCB0byBweXRlc3QueGZhaWwoKSAi
IiIKKworCitkZWYgeGZhaWwocmVhc29uPSIiKToKKyAgICAiIiIgeGZhaWwgYW4gZXhlY3V0aW5n
IHRlc3Qgb3Igc2V0dXAgZnVuY3Rpb25zIHdpdGggdGhlIGdpdmVuIHJlYXNvbi4iIiIKKyAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICByYWlzZSBYRmFpbGVkKHJlYXNvbikKKworCit4
ZmFpbC5FeGNlcHRpb24gPSBYRmFpbGVkCisKKworZGVmIGltcG9ydG9yc2tpcChtb2RuYW1lLCBt
aW52ZXJzaW9uPU5vbmUpOgorICAgICIiIiByZXR1cm4gaW1wb3J0ZWQgbW9kdWxlIGlmIGl0IGhh
cyBhdCBsZWFzdCAibWludmVyc2lvbiIgYXMgaXRzCisgICAgX192ZXJzaW9uX18gYXR0cmlidXRl
LiAgSWYgbm8gbWludmVyc2lvbiBpcyBzcGVjaWZpZWQgdGhlIGEgc2tpcAorICAgIGlzIG9ubHkg
dHJpZ2dlcmVkIGlmIHRoZSBtb2R1bGUgY2FuIG5vdCBiZSBpbXBvcnRlZC4KKyAgICAiIiIKKyAg
ICBpbXBvcnQgd2FybmluZ3MKKyAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICBjb21w
aWxlKG1vZG5hbWUsICcnLCAnZXZhbCcpICAjIHRvIGNhdGNoIHN5bnRheGVycm9ycworICAgIHNo
b3VsZF9za2lwID0gRmFsc2UKKworICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToK
KyAgICAgICAgIyBtYWtlIHN1cmUgdG8gaWdub3JlIEltcG9ydFdhcm5pbmdzIHRoYXQgbWlnaHQg
aGFwcGVuIGJlY2F1c2UKKyAgICAgICAgIyBvZiBleGlzdGluZyBkaXJlY3RvcmllcyB3aXRoIHRo
ZSBzYW1lIG5hbWUgd2UncmUgdHJ5aW5nIHRvCisgICAgICAgICMgaW1wb3J0IGJ1dCB3aXRob3V0
IGEgX19pbml0X18ucHkgZmlsZQorICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2lnbm9y
ZScpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKKyAgICAg
ICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgIyBEbyBub3QgcmFpc2UgY2hhaW5l
ZCBleGNlcHRpb24gaGVyZSgjMTQ4NSkKKyAgICAgICAgICAgIHNob3VsZF9za2lwID0gVHJ1ZQor
ICAgIGlmIHNob3VsZF9za2lwOgorICAgICAgICByYWlzZSBTa2lwcGVkKCJjb3VsZCBub3QgaW1w
b3J0ICVyIiAlIChtb2RuYW1lLCksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQorICAgIG1vZCA9
IHN5cy5tb2R1bGVzW21vZG5hbWVdCisgICAgaWYgbWludmVyc2lvbiBpcyBOb25lOgorICAgICAg
ICByZXR1cm4gbW9kCisgICAgdmVyYXR0ciA9IGdldGF0dHIobW9kLCAnX192ZXJzaW9uX18nLCBO
b25lKQorICAgIGlmIG1pbnZlcnNpb24gaXMgbm90IE5vbmU6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIGZyb20gcGtnX3Jlc291cmNlcyBpbXBvcnQgcGFyc2VfdmVyc2lvbiBhcyBwdgorICAg
ICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICByYWlzZSBTa2lwcGVkKCJ3ZSBo
YXZlIGEgcmVxdWlyZWQgdmVyc2lvbiBmb3IgJXIgYnV0IGNhbiBub3QgaW1wb3J0ICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBrZ19yZXNvdXJjZXMgdG8gcGFyc2UgdmVyc2lvbiBzdHJp
bmdzLiIgJSAobW9kbmFtZSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19tb2R1
bGVfbGV2ZWw9VHJ1ZSkKKyAgICAgICAgaWYgdmVyYXR0ciBpcyBOb25lIG9yIHB2KHZlcmF0dHIp
IDwgcHYobWludmVyc2lvbik6CisgICAgICAgICAgICByYWlzZSBTa2lwcGVkKCJtb2R1bGUgJXIg
aGFzIF9fdmVyc2lvbl9fICVyLCByZXF1aXJlZCBpczogJXIiICUgKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RuYW1lLCB2ZXJhdHRyLCBtaW52ZXJzaW9uKSwgYWxsb3dfbW9kdWxlX2xl
dmVsPVRydWUpCisgICAgcmV0dXJuIG1vZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9wYXN0ZWJpbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjU4OGIwMjFiMTI0MjJmNTUwN2M5YmRmYTUxMWY2MWYzZDAyODFmOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4ucHkKQEAgLTAsMCArMSwxMDAgQEAK
KyIiIiBzdWJtaXQgZmFpbHVyZSBvciB0ZXN0IHNlc3Npb24gaW5mb3JtYXRpb24gdG8gYSBwYXN0
ZWJpbiBzZXJ2aWNlLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAor
aW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIikK
KyAgICBncm91cC5fYWRkb3B0aW9uKCctLXBhc3RlYmluJywgbWV0YXZhcj0ibW9kZSIsCisgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlJywgZGVzdD0icGFzdGViaW4iLCBkZWZhdWx0
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZmFpbGVkJywgJ2FsbCddLAor
ICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2VuZCBmYWlsZWR8YWxsIGluZm8gdG8gYnBhc3Rl
Lm5ldCBwYXN0ZWJpbiBzZXJ2aWNlLiIpCisKKworQHB5dGVzdC5ob29raW1wbCh0cnlsYXN0PVRy
dWUpCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGlmIGNvbmZpZy5vcHRpb24u
cGFzdGViaW4gPT0gImFsbCI6CisgICAgICAgIHRyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0
cGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKKyAgICAgICAgIyBpZiBubyB0ZXJtaW5hbCByZXBv
cnRlciBwbHVnaW4gaXMgcHJlc2VudCwgbm90aGluZyB3ZSBjYW4gZG8gaGVyZTsKKyAgICAgICAg
IyB0aGlzIGNhbiBoYXBwZW4gd2hlbiB0aGlzIGZ1bmN0aW9uIGV4ZWN1dGVzIGluIGEgc2xhdmUg
bm9kZQorICAgICAgICAjIHdoZW4gdXNpbmcgcHl0ZXN0LXhkaXN0LCBmb3IgZXhhbXBsZQorICAg
ICAgICBpZiB0ciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgcGFzdGViaW4gZmlsZSB3aWxs
IGJlIHV0Zi04IGVuY29kZWQgYmluYXJ5IGZpbGUKKyAgICAgICAgICAgIGNvbmZpZy5fcGFzdGVi
aW5maWxlID0gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgndytiJykKKyAgICAgICAgICAgIG9sZHdy
aXRlID0gdHIuX3R3LndyaXRlCisKKyAgICAgICAgICAgIGRlZiB0ZWVfd3JpdGUocywgKiprd2Fy
Z3MpOgorICAgICAgICAgICAgICAgIG9sZHdyaXRlKHMsICoqa3dhcmdzKQorICAgICAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlwZSk6CisgICAgICAgICAgICAgICAgICAg
IHMgPSBzLmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgICAgIGNvbmZpZy5fcGFzdGViaW5m
aWxlLndyaXRlKHMpCisKKyAgICAgICAgICAgIHRyLl90dy53cml0ZSA9IHRlZV93cml0ZQorCisK
K2RlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKKyAgICBpZiBoYXNhdHRyKGNvbmZpZywg
J19wYXN0ZWJpbmZpbGUnKToKKyAgICAgICAgIyBnZXQgdGVybWluYWwgY29udGVudHMgYW5kIGRl
bGV0ZSBmaWxlCisgICAgICAgIGNvbmZpZy5fcGFzdGViaW5maWxlLnNlZWsoMCkKKyAgICAgICAg
c2Vzc2lvbmxvZyA9IGNvbmZpZy5fcGFzdGViaW5maWxlLnJlYWQoKQorICAgICAgICBjb25maWcu
X3Bhc3RlYmluZmlsZS5jbG9zZSgpCisgICAgICAgIGRlbCBjb25maWcuX3Bhc3RlYmluZmlsZQor
ICAgICAgICAjIHVuZG8gb3VyIHBhdGNoaW5nIGluIHRoZSB0ZXJtaW5hbCByZXBvcnRlcgorICAg
ICAgICB0ciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigndGVybWluYWxyZXBvcnRl
cicpCisgICAgICAgIGRlbCB0ci5fdHcuX19kaWN0X19bJ3dyaXRlJ10KKyAgICAgICAgIyB3cml0
ZSBzdW1tYXJ5CisgICAgICAgIHRyLndyaXRlX3NlcCgiPSIsICJTZW5kaW5nIGluZm9ybWF0aW9u
IHRvIFBhc3RlIFNlcnZpY2UiKQorICAgICAgICBwYXN0ZWJpbnVybCA9IGNyZWF0ZV9uZXdfcGFz
dGUoc2Vzc2lvbmxvZykKKyAgICAgICAgdHIud3JpdGVfbGluZSgicGFzdGViaW4gc2Vzc2lvbi1s
b2c6ICVzXG4iICUgcGFzdGViaW51cmwpCisKKworZGVmIGNyZWF0ZV9uZXdfcGFzdGUoY29udGVu
dHMpOgorICAgICIiIgorICAgIENyZWF0ZXMgYSBuZXcgcGFzdGUgdXNpbmcgYnBhc3RlLm5ldCBz
ZXJ2aWNlLgorCisgICAgOmNvbnRlbnRzOiBwYXN0ZSBjb250ZW50cyBhcyB1dGYtOCBlbmNvZGVk
IGJ5dGVzCisgICAgOnJldHVybnM6IHVybCB0byB0aGUgcGFzdGVkIGNvbnRlbnRzCisgICAgIiIi
CisgICAgaW1wb3J0IHJlCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAg
ICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybG9wZW4sIHVybGVuY29kZQorICAgIGVsc2U6CisgICAg
ICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KKyAgICAgICAgZnJvbSB1cmxs
aWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQorCisgICAgcGFyYW1zID0geworICAgICAgICAnY29k
ZSc6IGNvbnRlbnRzLAorICAgICAgICAnbGV4ZXInOiAncHl0aG9uMycgaWYgc3lzLnZlcnNpb25f
aW5mb1swXSA9PSAzIGVsc2UgJ3B5dGhvbicsCisgICAgICAgICdleHBpcnknOiAnMXdlZWsnLAor
ICAgIH0KKyAgICB1cmwgPSAnaHR0cHM6Ly9icGFzdGUubmV0JworICAgIHJlc3BvbnNlID0gdXJs
b3Blbih1cmwsIGRhdGE9dXJsZW5jb2RlKHBhcmFtcykuZW5jb2RlKCdhc2NpaScpKS5yZWFkKCkK
KyAgICBtID0gcmUuc2VhcmNoKHInaHJlZj0iL3Jhdy8oXHcrKSInLCByZXNwb25zZS5kZWNvZGUo
J3V0Zi04JykpCisgICAgaWYgbToKKyAgICAgICAgcmV0dXJuICclcy9zaG93LyVzJyAlICh1cmws
IG0uZ3JvdXAoMSkpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICdiYWQgcmVzcG9uc2U6ICcg
KyByZXNwb25zZQorCisKK2RlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9y
dGVyKToKKyAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKKyAgICBpZiB0ZXJtaW5hbHJlcG9ydGVy
LmNvbmZpZy5vcHRpb24ucGFzdGViaW4gIT0gImZhaWxlZCI6CisgICAgICAgIHJldHVybgorICAg
IHRyID0gdGVybWluYWxyZXBvcnRlcgorICAgIGlmICdmYWlsZWQnIGluIHRyLnN0YXRzOgorICAg
ICAgICB0ZXJtaW5hbHJlcG9ydGVyLndyaXRlX3NlcCgiPSIsICJTZW5kaW5nIGluZm9ybWF0aW9u
IHRvIFBhc3RlIFNlcnZpY2UiKQorICAgICAgICBmb3IgcmVwIGluIHRlcm1pbmFscmVwb3J0ZXIu
c3RhdHMuZ2V0KCdmYWlsZWQnKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBt
c2cgPSByZXAubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllc1stMV0ucmVwcmZpbGVs
b2MKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBt
c2cgPSB0ci5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKKyAgICAgICAgICAgIHR3ID0gX3B5dGVz
dC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcih0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZywg
c3RyaW5naW89VHJ1ZSkKKyAgICAgICAgICAgIHJlcC50b3Rlcm1pbmFsKHR3KQorICAgICAgICAg
ICAgcyA9IHR3LnN0cmluZ2lvLmdldHZhbHVlKCkKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocykK
KyAgICAgICAgICAgIHBhc3RlYmludXJsID0gY3JlYXRlX25ld19wYXN0ZShzKQorICAgICAgICAg
ICAgdHIud3JpdGVfbGluZSgiJXMgLS0+ICVzIiAlIChtc2csIHBhc3RlYmludXJsKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0ZXN0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3B5dGVzdGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZGQ1OTk0ZjFiYmZiNGRkNmI0MjlkODZlZjc0
OGNiZDU3OGQ1N2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVz
dGVyLnB5CkBAIC0wLDAgKzEsMTE4NyBAQAorIiIiIChkaXNhYmxlZCBieSBkZWZhdWx0KSBzdXBw
b3J0IGZvciB0ZXN0aW5nIHB5dGVzdCBhbmQgcHl0ZXN0IHBsdWdpbnMuICIiIgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
CitpbXBvcnQgY29kZWNzCitpbXBvcnQgZ2MKK2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitp
bXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc2l4CitpbXBvcnQgc3lzCitpbXBv
cnQgdGltZQoraW1wb3J0IHRyYWNlYmFjaworZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1hdGNoCisK
K2Zyb20gd2Vha3JlZiBpbXBvcnQgV2Vha0tleURpY3Rpb25hcnkKKworZnJvbSBfcHl0ZXN0LmNh
cHR1cmUgaW1wb3J0IE11bHRpQ2FwdHVyZSwgU3lzQ2FwdHVyZQorZnJvbSBfcHl0ZXN0Ll9jb2Rl
IGltcG9ydCBTb3VyY2UKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lm1h
aW4gaW1wb3J0IFNlc3Npb24sIEVYSVRfT0sKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0
ZSBpbXBvcnQgQXNzZXJ0aW9uUmV3cml0aW5nSG9vaworCisKK1BZVEVTVF9GVUxMUEFUSCA9IG9z
LnBhdGguYWJzcGF0aChweXRlc3QuX19maWxlX18ucnN0cmlwKCJvYyIpKS5yZXBsYWNlKCIkcHku
Y2xhc3MiLCAiLnB5IikKKworCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICMg
Z3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInB5dGVzdGVyIiwgInB5dGVzdGVyIChzZWxmLXRlc3Rz
KSBvcHRpb25zIikKKyAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWxzb2YnLAorICAgICAgICAgICAg
ICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibHNvZiIsIGRlZmF1bHQ9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICBoZWxwPSgicnVuIEZEIGNoZWNrcyBpZiBsc29mIGlzIGF2
YWlsYWJsZSIpKQorCisgICAgcGFyc2VyLmFkZG9wdGlvbignLS1ydW5weXRlc3QnLCBkZWZhdWx0
PSJpbnByb2Nlc3MiLCBkZXN0PSJydW5weXRlc3QiLAorICAgICAgICAgICAgICAgICAgICAgY2hv
aWNlcz0oImlucHJvY2VzcyIsICJzdWJwcm9jZXNzIiwgKSwKKyAgICAgICAgICAgICAgICAgICAg
IGhlbHA9KCJydW4gcHl0ZXN0IHN1YiBydW5zIGluIHRlc3RzIHVzaW5nIGFuICdpbnByb2Nlc3Mn
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciAnc3VicHJvY2VzcycgKHB5dGhvbiAt
bSBtYWluKSBtZXRob2QiKSkKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAg
IGlmIGNvbmZpZy5nZXR2YWx1ZSgibHNvZiIpOgorICAgICAgICBjaGVja2VyID0gTHNvZkZkTGVh
a0NoZWNrZXIoKQorICAgICAgICBpZiBjaGVja2VyLm1hdGNoaW5nX3BsYXRmb3JtKCk6CisgICAg
ICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihjaGVja2VyKQorCisKK2NsYXNz
IExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6CisgICAgZGVmIGdldF9vcGVuX2ZpbGVzKHNlbGYp
OgorICAgICAgICBvdXQgPSBzZWxmLl9leGVjX2xzb2YoKQorICAgICAgICBvcGVuX2ZpbGVzID0g
c2VsZi5fcGFyc2VfbHNvZl9vdXRwdXQob3V0KQorICAgICAgICByZXR1cm4gb3Blbl9maWxlcwor
CisgICAgZGVmIF9leGVjX2xzb2Yoc2VsZik6CisgICAgICAgIHBpZCA9IG9zLmdldHBpZCgpCisg
ICAgICAgIHJldHVybiBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLUZmbjAgLXAgJWQiICUgcGlk
KQorCisgICAgZGVmIF9wYXJzZV9sc29mX291dHB1dChzZWxmLCBvdXQpOgorICAgICAgICBkZWYg
aXNvcGVuKGxpbmUpOgorICAgICAgICAgICAgcmV0dXJuIGxpbmUuc3RhcnRzd2l0aCgnZicpIGFu
ZCAoImRlbGV0ZWQiIG5vdCBpbiBsaW5lIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ21lbScgbm90IGluIGxpbmUgYW5kICJ0eHQiIG5vdCBpbiBsaW5l
IGFuZCAnY3dkJyBub3QgaW4gbGluZSkKKworICAgICAgICBvcGVuX2ZpbGVzID0gW10KKworICAg
ICAgICBmb3IgbGluZSBpbiBvdXQuc3BsaXQoIlxuIik6CisgICAgICAgICAgICBpZiBpc29wZW4o
bGluZSk6CisgICAgICAgICAgICAgICAgZmllbGRzID0gbGluZS5zcGxpdCgnXDAnKQorICAgICAg
ICAgICAgICAgIGZkID0gZmllbGRzWzBdWzE6XQorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0g
ZmllbGRzWzFdWzE6XQorICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLnN0YXJ0c3dpdGgoJy8n
KToKKyAgICAgICAgICAgICAgICAgICAgb3Blbl9maWxlcy5hcHBlbmQoKGZkLCBmaWxlbmFtZSkp
CisKKyAgICAgICAgcmV0dXJuIG9wZW5fZmlsZXMKKworICAgIGRlZiBtYXRjaGluZ19wbGF0Zm9y
bShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHkucHJvY2Vzcy5jbWRleGVjKCJs
c29mIC12IikKKyAgICAgICAgZXhjZXB0IChweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3IsIFVuaWNv
ZGVEZWNvZGVFcnJvcik6CisgICAgICAgICAgICAjIGNtZGV4ZWMgbWF5IHJhaXNlIFVuaWNvZGVE
ZWNvZGVFcnJvciBvbiBXaW5kb3dzIHN5c3RlbXMKKyAgICAgICAgICAgICMgd2l0aCBsb2NhbGUg
b3RoZXIgdGhhbiBlbmdsaXNoOgorICAgICAgICAgICAgIyBodHRwczovL2JpdGJ1Y2tldC5vcmcv
cHl0ZXN0LWRldi9weS9pc3N1ZXMvNjYKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgIEBweXRlc3QuaG9va2ltcGwo
aG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rf
cHJvdG9jb2woc2VsZiwgaXRlbSk6CisgICAgICAgIGxpbmVzMSA9IHNlbGYuZ2V0X29wZW5fZmls
ZXMoKQorICAgICAgICB5aWVsZAorICAgICAgICBpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lv
bl9pbmZvIik6CisgICAgICAgICAgICBnYy5jb2xsZWN0KCkKKyAgICAgICAgbGluZXMyID0gc2Vs
Zi5nZXRfb3Blbl9maWxlcygpCisKKyAgICAgICAgbmV3X2ZkcyA9IHNldChbdFswXSBmb3IgdCBp
biBsaW5lczJdKSAtIHNldChbdFswXSBmb3IgdCBpbiBsaW5lczFdKQorICAgICAgICBsZWFrZWRf
ZmlsZXMgPSBbdCBmb3IgdCBpbiBsaW5lczIgaWYgdFswXSBpbiBuZXdfZmRzXQorICAgICAgICBp
ZiBsZWFrZWRfZmlsZXM6CisgICAgICAgICAgICBlcnJvciA9IFtdCisgICAgICAgICAgICBlcnJv
ci5hcHBlbmQoIioqKioqICVzIEZEIGxlYWthZ2UgZGV0ZWN0ZWQiICUgbGVuKGxlYWtlZF9maWxl
cykpCisgICAgICAgICAgICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsZWFrZWRfZmls
ZXNdKQorICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogQmVmb3JlOiIpCisgICAgICAgICAg
ICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsaW5lczFdKQorICAgICAgICAgICAgZXJy
b3IuYXBwZW5kKCIqKiogQWZ0ZXI6IikKKyAgICAgICAgICAgIGVycm9yLmV4dGVuZChbc3RyKGYp
IGZvciBmIGluIGxpbmVzMl0pCisgICAgICAgICAgICBlcnJvci5hcHBlbmQoZXJyb3JbMF0pCisg
ICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBmdW5jdGlvbiAlczolczogJXMgIiAlIGl0ZW0u
bG9jYXRpb24pCisgICAgICAgICAgICBlcnJvci5hcHBlbmQoIlNlZSBpc3N1ZSAjMjM2NiIpCisg
ICAgICAgICAgICBpdGVtLndhcm4oJycsICJcbiIuam9pbihlcnJvcikpCisKKworIyBYWFggY29w
aWVkIGZyb20gZXhlY25ldCdzIGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUgbWVyZ2VkCit3aW5w
eW1hcCA9IHsKKyAgICAncHl0aG9uMi43JzogcidDOlxQeXRob24yN1xweXRob24uZXhlJywKKyAg
ICAncHl0aG9uMy40JzogcidDOlxQeXRob24zNFxweXRob24uZXhlJywKKyAgICAncHl0aG9uMy41
JzogcidDOlxQeXRob24zNVxweXRob24uZXhlJywKKyAgICAncHl0aG9uMy42JzogcidDOlxQeXRo
b24zNlxweXRob24uZXhlJywKK30KKworCitkZWYgZ2V0ZXhlY3V0YWJsZShuYW1lLCBjYWNoZT17
fSk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gY2FjaGVbbmFtZV0KKyAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkK
KyAgICAgICAgaWYgZXhlY3V0YWJsZToKKyAgICAgICAgICAgIGltcG9ydCBzdWJwcm9jZXNzCisg
ICAgICAgICAgICBwb3BlbiA9IHN1YnByb2Nlc3MuUG9wZW4oW3N0cihleGVjdXRhYmxlKSwgIi0t
dmVyc2lvbiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNh
bF9uZXdsaW5lcz1UcnVlLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICAgICAgb3V0
LCBlcnIgPSBwb3Blbi5jb21tdW5pY2F0ZSgpCisgICAgICAgICAgICBpZiBuYW1lID09ICJqeXRo
b24iOgorICAgICAgICAgICAgICAgIGlmIG5vdCBlcnIgb3IgIjIuNSIgbm90IGluIGVycjoKKyAg
ICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiAi
Mi41LjIiIGluIGVycjoKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUgICMg
aHR0cDovL2J1Z3Muanl0aG9uLm9yZy9pc3N1ZTE3OTAKKyAgICAgICAgICAgIGVsaWYgcG9wZW4u
cmV0dXJuY29kZSAhPSAwOgorICAgICAgICAgICAgICAgICMgSGFuZGxlIHB5ZW52J3MgMTI3Lgor
ICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lCisgICAgICAgIGNhY2hlW25hbWVdID0g
ZXhlY3V0YWJsZQorICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQorCisKK0BweXRlc3QuZml4dHVy
ZShwYXJhbXM9WydweXRob24yLjcnLCAncHl0aG9uMy40JywgJ3B5cHknLCAncHlweTMnXSkKK2Rl
ZiBhbnlweXRob24ocmVxdWVzdCk6CisgICAgbmFtZSA9IHJlcXVlc3QucGFyYW0KKyAgICBleGVj
dXRhYmxlID0gZ2V0ZXhlY3V0YWJsZShuYW1lKQorICAgIGlmIGV4ZWN1dGFibGUgaXMgTm9uZToK
KyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6CisgICAgICAgICAgICBleGVjdXRh
YmxlID0gd2lucHltYXAuZ2V0KG5hbWUsIE5vbmUpCisgICAgICAgICAgICBpZiBleGVjdXRhYmxl
OgorICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsKGV4ZWN1dGFibGUp
CisgICAgICAgICAgICAgICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZQorICAgICAgICBweXRlc3Quc2tpcCgibm8gc3VpdGFibGUg
JXMgZm91bmQiICUgKG5hbWUsKSkKKyAgICByZXR1cm4gZXhlY3V0YWJsZQorCisjIHVzZWQgYXQg
bGVhc3QgYnkgcHl0ZXN0LXhkaXN0IHBsdWdpbgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIF9w
eXRlc3QocmVxdWVzdCk6CisgICAgIiIiIFJldHVybiBhIGhlbHBlciB3aGljaCBvZmZlcnMgYSBn
ZXRob29rcmVjb3JkZXIoaG9vaykKKyAgICBtZXRob2Qgd2hpY2ggcmV0dXJucyBhIEhvb2tSZWNv
cmRlciBpbnN0YW5jZSB3aGljaCBoZWxwcworICAgIHRvIG1ha2UgYXNzZXJ0aW9ucyBhYm91dCBj
YWxsZWQgaG9va3MuCisgICAgIiIiCisgICAgcmV0dXJuIFB5dGVzdEFyZyhyZXF1ZXN0KQorCisK
K2NsYXNzIFB5dGVzdEFyZzoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6CisgICAg
ICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKworICAgIGRlZiBnZXRob29rcmVjb3JkZXIoc2Vs
ZiwgaG9vayk6CisgICAgICAgIGhvb2tyZWNvcmRlciA9IEhvb2tSZWNvcmRlcihob29rLl9wbSkK
KyAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihob29rcmVjb3JkZXIuZmluaXNoX3Jl
Y29yZGluZykKKyAgICAgICAgcmV0dXJuIGhvb2tyZWNvcmRlcgorCisKK2RlZiBnZXRfcHVibGlj
X25hbWVzKHZhbHVlcyk6CisgICAgIiIiT25seSByZXR1cm4gbmFtZXMgZnJvbSBpdGVyYXRvciB2
YWx1ZXMgd2l0aG91dCBhIGxlYWRpbmcgdW5kZXJzY29yZS4iIiIKKyAgICByZXR1cm4gW3ggZm9y
IHggaW4gdmFsdWVzIGlmIHhbMF0gIT0gIl8iXQorCisKK2NsYXNzIFBhcnNlZENhbGw6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGt3YXJncyk6CisgICAgICAgIHNlbGYuX19kaWN0X18u
dXBkYXRlKGt3YXJncykKKyAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKKworICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgZCA9IHNlbGYuX19kaWN0X18uY29weSgpCisgICAgICAgIGRl
bCBkWydfbmFtZSddCisgICAgICAgIHJldHVybiAiPFBhcnNlZENhbGwgJXIoKiolcik+IiAlIChz
ZWxmLl9uYW1lLCBkKQorCisKK2NsYXNzIEhvb2tSZWNvcmRlcjoKKyAgICAiIiJSZWNvcmQgYWxs
IGhvb2tzIGNhbGxlZCBpbiBhIHBsdWdpbiBtYW5hZ2VyLgorCisgICAgVGhpcyB3cmFwcyBhbGwg
dGhlIGhvb2sgY2FsbHMgaW4gdGhlIHBsdWdpbiBtYW5hZ2VyLCByZWNvcmRpbmcKKyAgICBlYWNo
IGNhbGwgYmVmb3JlIHByb3BhZ2F0aW5nIHRoZSBub3JtYWwgY2FsbHMuCisKKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyKToKKyAgICAgICAgc2VsZi5fcGx1
Z2lubWFuYWdlciA9IHBsdWdpbm1hbmFnZXIKKyAgICAgICAgc2VsZi5jYWxscyA9IFtdCisKKyAg
ICAgICAgZGVmIGJlZm9yZShob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncyk6CisgICAgICAg
ICAgICBzZWxmLmNhbGxzLmFwcGVuZChQYXJzZWRDYWxsKGhvb2tfbmFtZSwga3dhcmdzKSkKKwor
ICAgICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3Mp
OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuX3VuZG9fd3JhcHBpbmcgPSBwbHVn
aW5tYW5hZ2VyLmFkZF9ob29rY2FsbF9tb25pdG9yaW5nKGJlZm9yZSwgYWZ0ZXIpCisKKyAgICBk
ZWYgZmluaXNoX3JlY29yZGluZyhzZWxmKToKKyAgICAgICAgc2VsZi5fdW5kb193cmFwcGluZygp
CisKKyAgICBkZWYgZ2V0Y2FsbHMoc2VsZiwgbmFtZXMpOgorICAgICAgICBpZiBpc2luc3RhbmNl
KG5hbWVzLCBzdHIpOgorICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5zcGxpdCgpCisgICAgICAg
IHJldHVybiBbY2FsbCBmb3IgY2FsbCBpbiBzZWxmLmNhbGxzIGlmIGNhbGwuX25hbWUgaW4gbmFt
ZXNdCisKKyAgICBkZWYgYXNzZXJ0X2NvbnRhaW5zKHNlbGYsIGVudHJpZXMpOgorICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgaSA9IDAKKyAgICAgICAgZW50cmllcyA9
IGxpc3QoZW50cmllcykKKyAgICAgICAgYmFja2xvY2FscyA9IHN5cy5fZ2V0ZnJhbWUoMSkuZl9s
b2NhbHMKKyAgICAgICAgd2hpbGUgZW50cmllczoKKyAgICAgICAgICAgIG5hbWUsIGNoZWNrID0g
ZW50cmllcy5wb3AoMCkKKyAgICAgICAgICAgIGZvciBpbmQsIGNhbGwgaW4gZW51bWVyYXRlKHNl
bGYuY2FsbHNbaTpdKToKKyAgICAgICAgICAgICAgICBpZiBjYWxsLl9uYW1lID09IG5hbWU6Cisg
ICAgICAgICAgICAgICAgICAgIHByaW50KCJOQU1FTUFUQ0giLCBuYW1lLCBjYWxsKQorICAgICAg
ICAgICAgICAgICAgICBpZiBldmFsKGNoZWNrLCBiYWNrbG9jYWxzLCBjYWxsLl9fZGljdF9fKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJDSEVDS0VSTUFUQ0giLCByZXByKGNoZWNr
KSwgIi0+IiwgY2FsbCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50KCJOT0NIRUNLRVJNQVRDSCIsIHJlcHIoY2hlY2spLCAiLSIsIGNhbGwp
CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBp
ICs9IGluZCArIDEKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBw
cmludCgiTk9OQU1FTUFUQ0giLCBuYW1lLCAid2l0aCIsIGNhbGwpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJjb3VsZCBub3QgZmluZCAlciBjaGVjayAl
ciIgJSAobmFtZSwgY2hlY2spKQorCisgICAgZGVmIHBvcGNhbGwoc2VsZiwgbmFtZSk6CisgICAg
ICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3IgaSwgY2FsbCBpbiBlbnVt
ZXJhdGUoc2VsZi5jYWxscyk6CisgICAgICAgICAgICBpZiBjYWxsLl9uYW1lID09IG5hbWU6Cisg
ICAgICAgICAgICAgICAgZGVsIHNlbGYuY2FsbHNbaV0KKyAgICAgICAgICAgICAgICByZXR1cm4g
Y2FsbAorICAgICAgICBsaW5lcyA9IFsiY291bGQgbm90IGZpbmQgY2FsbCAlciwgaW46IiAlIChu
YW1lLCldCisgICAgICAgIGxpbmVzLmV4dGVuZChbIiAgJXMiICUgc3RyKHgpIGZvciB4IGluIHNl
bGYuY2FsbHNdKQorICAgICAgICBweXRlc3QuZmFpbCgiXG4iLmpvaW4obGluZXMpKQorCisgICAg
ZGVmIGdldGNhbGwoc2VsZiwgbmFtZSk6CisgICAgICAgIHZhbHVlcyA9IHNlbGYuZ2V0Y2FsbHMo
bmFtZSkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEsIChuYW1lLCB2YWx1ZXMpCisg
ICAgICAgIHJldHVybiB2YWx1ZXNbMF0KKworICAgICMgZnVuY3Rpb25hbGl0eSBmb3IgdGVzdCBy
ZXBvcnRzCisKKyAgICBkZWYgZ2V0cmVwb3J0cyhzZWxmLAorICAgICAgICAgICAgICAgICAgIG5h
bWVzPSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2NvbGxlY3RyZXBvcnQiKToKKyAg
ICAgICAgcmV0dXJuIFt4LnJlcG9ydCBmb3IgeCBpbiBzZWxmLmdldGNhbGxzKG5hbWVzKV0KKwor
ICAgIGRlZiBtYXRjaHJlcG9ydChzZWxmLCBpbmFtZXBhcnQ9IiIsCisgICAgICAgICAgICAgICAg
ICAgIG5hbWVzPSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2NvbGxlY3RyZXBvcnQi
LCB3aGVuPU5vbmUpOgorICAgICAgICAiIiIgcmV0dXJuIGEgdGVzdHJlcG9ydCB3aG9zZSBkb3R0
ZWQgaW1wb3J0IHBhdGggbWF0Y2hlcyAiIiIKKyAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
Zm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMobmFtZXM9bmFtZXMpOgorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIGlmIG5vdCB3aGVuIGFuZCByZXAud2hlbiAhPSAiY2FsbCIgYW5k
IHJlcC5wYXNzZWQ6CisgICAgICAgICAgICAgICAgICAgICMgc2V0dXAvdGVhcmRvd24gcGFzc2lu
ZyByZXBvcnRzIC0gbGV0J3MgaWdub3JlIHRob3NlCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgaWYgd2hlbiBhbmQgZ2V0YXR0cihyZXAsICd3aGVuJywgTm9uZSkg
IT0gd2hlbjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbm90IGlu
YW1lcGFydCBvciBpbmFtZXBhcnQgaW4gcmVwLm5vZGVpZC5zcGxpdCgiOjoiKToKKyAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKHJlcCkKKyAgICAgICAgaWYgbm90IHZhbHVlczoKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvdWxkIG5vdCBmaW5kIHRlc3QgcmVwb3J0IG1hdGNo
aW5nICVyOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJubyB0ZXN0IHJlcG9ydHMg
YXQgYWxsISIgJSAoaW5hbWVwYXJ0LCkpCisgICAgICAgIGlmIGxlbih2YWx1ZXMpID4gMToKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgImZvdW5kIDIgb3Ig
bW9yZSB0ZXN0cmVwb3J0cyBtYXRjaGluZyAlcjogJXMiICUgKGluYW1lcGFydCwgdmFsdWVzKSkK
KyAgICAgICAgcmV0dXJuIHZhbHVlc1swXQorCisgICAgZGVmIGdldGZhaWx1cmVzKHNlbGYsCisg
ICAgICAgICAgICAgICAgICAgIG5hbWVzPSdweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0
X2NvbGxlY3RyZXBvcnQnKToKKyAgICAgICAgcmV0dXJuIFtyZXAgZm9yIHJlcCBpbiBzZWxmLmdl
dHJlcG9ydHMobmFtZXMpIGlmIHJlcC5mYWlsZWRdCisKKyAgICBkZWYgZ2V0ZmFpbGVkY29sbGVj
dGlvbnMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmdldGZhaWx1cmVzKCdweXRlc3RfY29s
bGVjdHJlcG9ydCcpCisKKyAgICBkZWYgbGlzdG91dGNvbWVzKHNlbGYpOgorICAgICAgICBwYXNz
ZWQgPSBbXQorICAgICAgICBza2lwcGVkID0gW10KKyAgICAgICAgZmFpbGVkID0gW10KKyAgICAg
ICAgZm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMoCisgICAgICAgICAgICAgICAgInB5dGVzdF9j
b2xsZWN0cmVwb3J0IHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpOgorICAgICAgICAgICAgaWYg
cmVwLnBhc3NlZDoKKyAgICAgICAgICAgICAgICBpZiBnZXRhdHRyKHJlcCwgIndoZW4iLCBOb25l
KSA9PSAiY2FsbCI6CisgICAgICAgICAgICAgICAgICAgIHBhc3NlZC5hcHBlbmQocmVwKQorICAg
ICAgICAgICAgZWxpZiByZXAuc2tpcHBlZDoKKyAgICAgICAgICAgICAgICBza2lwcGVkLmFwcGVu
ZChyZXApCisgICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgZmFp
bGVkLmFwcGVuZChyZXApCisgICAgICAgIHJldHVybiBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZAor
CisgICAgZGVmIGNvdW50b3V0Y29tZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbbGVuKHgpIGZv
ciB4IGluIHNlbGYubGlzdG91dGNvbWVzKCldCisKKyAgICBkZWYgYXNzZXJ0b3V0Y29tZShzZWxm
LCBwYXNzZWQ9MCwgc2tpcHBlZD0wLCBmYWlsZWQ9MCk6CisgICAgICAgIHJlYWxwYXNzZWQsIHJl
YWxza2lwcGVkLCByZWFsZmFpbGVkID0gc2VsZi5saXN0b3V0Y29tZXMoKQorICAgICAgICBhc3Nl
cnQgcGFzc2VkID09IGxlbihyZWFscGFzc2VkKQorICAgICAgICBhc3NlcnQgc2tpcHBlZCA9PSBs
ZW4ocmVhbHNraXBwZWQpCisgICAgICAgIGFzc2VydCBmYWlsZWQgPT0gbGVuKHJlYWxmYWlsZWQp
CisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYuY2FsbHNbOl0gPSBbXQorCisK
K0BweXRlc3QuZml4dHVyZQorZGVmIGxpbmVjb21wKHJlcXVlc3QpOgorICAgIHJldHVybiBMaW5l
Q29tcCgpCisKKworQHB5dGVzdC5maXh0dXJlKG5hbWU9J0xpbmVNYXRjaGVyJykKK2RlZiBMaW5l
TWF0Y2hlcl9maXh0dXJlKHJlcXVlc3QpOgorICAgIHJldHVybiBMaW5lTWF0Y2hlcgorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIHRlc3RkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgorICAg
IHJldHVybiBUZXN0ZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KQorCisKK3JleF9vdXRjb21l
ID0gcmUuY29tcGlsZShyIihcZCspIChbXHctXSspIikKKworCitjbGFzcyBSdW5SZXN1bHQ6Cisg
ICAgIiIiVGhlIHJlc3VsdCBvZiBydW5uaW5nIGEgY29tbWFuZC4KKworICAgIEF0dHJpYnV0ZXM6
CisKKyAgICA6cmV0OiBUaGUgcmV0dXJuIHZhbHVlLgorICAgIDpvdXRsaW5lczogTGlzdCBvZiBs
aW5lcyBjYXB0dXJlZCBmcm9tIHN0ZG91dC4KKyAgICA6ZXJybGluZXM6IExpc3Qgb2YgbGluZXMg
Y2FwdHVyZXMgZnJvbSBzdGRlcnIuCisgICAgOnN0ZG91dDogOnB5OmNsYXNzOmBMaW5lTWF0Y2hl
cmAgb2Ygc3Rkb3V0LCB1c2UgYGBzdGRvdXQuc3RyKClgYCB0bworICAgICAgIHJlY29uc3RydWN0
IHN0ZG91dCBvciB0aGUgY29tbW9ubHkgdXNlZAorICAgICAgIGBgc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoKWBgIG1ldGhvZC4KKyAgICA6c3RkZXJycjogOnB5OmNsYXNzOmBMaW5lTWF0Y2hlcmAgb2Yg
c3RkZXJyLgorICAgIDpkdXJhdGlvbjogRHVyYXRpb24gaW4gc2Vjb25kcy4KKworICAgICIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldCwgb3V0bGluZXMsIGVycmxpbmVzLCBkdXJhdGlv
bik6CisgICAgICAgIHNlbGYucmV0ID0gcmV0CisgICAgICAgIHNlbGYub3V0bGluZXMgPSBvdXRs
aW5lcworICAgICAgICBzZWxmLmVycmxpbmVzID0gZXJybGluZXMKKyAgICAgICAgc2VsZi5zdGRv
dXQgPSBMaW5lTWF0Y2hlcihvdXRsaW5lcykKKyAgICAgICAgc2VsZi5zdGRlcnIgPSBMaW5lTWF0
Y2hlcihlcnJsaW5lcykKKyAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCisKKyAgICBk
ZWYgcGFyc2VvdXRjb21lcyhzZWxmKToKKyAgICAgICAgIiIiIFJldHVybiBhIGRpY3Rpb25hcnkg
b2Ygb3V0Y29tZXN0cmluZy0+bnVtIGZyb20gcGFyc2luZworICAgICAgICB0aGUgdGVybWluYWwg
b3V0cHV0IHRoYXQgdGhlIHRlc3QgcHJvY2VzcyBwcm9kdWNlZC4iIiIKKyAgICAgICAgZm9yIGxp
bmUgaW4gcmV2ZXJzZWQoc2VsZi5vdXRsaW5lcyk6CisgICAgICAgICAgICBpZiAnc2Vjb25kcycg
aW4gbGluZToKKyAgICAgICAgICAgICAgICBvdXRjb21lcyA9IHJleF9vdXRjb21lLmZpbmRhbGwo
bGluZSkKKyAgICAgICAgICAgICAgICBpZiBvdXRjb21lczoKKyAgICAgICAgICAgICAgICAgICAg
ZCA9IHt9CisgICAgICAgICAgICAgICAgICAgIGZvciBudW0sIGNhdCBpbiBvdXRjb21lczoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRbY2F0XSA9IGludChudW0pCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBkCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlB5dGVzdCB0ZXJtaW5hbCBy
ZXBvcnQgbm90IGZvdW5kIikKKworICAgIGRlZiBhc3NlcnRfb3V0Y29tZXMoc2VsZiwgcGFzc2Vk
PTAsIHNraXBwZWQ9MCwgZmFpbGVkPTAsIGVycm9yPTApOgorICAgICAgICAiIiIgYXNzZXJ0IHRo
YXQgdGhlIHNwZWNpZmllZCBvdXRjb21lcyBhcHBlYXIgd2l0aCB0aGUgcmVzcGVjdGl2ZQorICAg
ICAgICBudW1iZXJzICgwIG1lYW5zIGl0IGRpZG4ndCBvY2N1cikgaW4gdGhlIHRleHQgb3V0cHV0
IGZyb20gYSB0ZXN0IHJ1bi4iIiIKKyAgICAgICAgZCA9IHNlbGYucGFyc2VvdXRjb21lcygpCisg
ICAgICAgIG9idGFpbmVkID0geworICAgICAgICAgICAgJ3Bhc3NlZCc6IGQuZ2V0KCdwYXNzZWQn
LCAwKSwKKyAgICAgICAgICAgICdza2lwcGVkJzogZC5nZXQoJ3NraXBwZWQnLCAwKSwKKyAgICAg
ICAgICAgICdmYWlsZWQnOiBkLmdldCgnZmFpbGVkJywgMCksCisgICAgICAgICAgICAnZXJyb3In
OiBkLmdldCgnZXJyb3InLCAwKSwKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQgb2J0YWluZWQg
PT0gZGljdChwYXNzZWQ9cGFzc2VkLCBza2lwcGVkPXNraXBwZWQsIGZhaWxlZD1mYWlsZWQsIGVy
cm9yPWVycm9yKQorCisKK2NsYXNzIFRlc3RkaXI6CisgICAgIiIiVGVtcG9yYXJ5IHRlc3QgZGly
ZWN0b3J5IHdpdGggdG9vbHMgdG8gdGVzdC9ydW4gcHl0ZXN0IGl0c2VsZi4KKworICAgIFRoaXMg
aXMgYmFzZWQgb24gdGhlIGBgdG1wZGlyYGAgZml4dHVyZSBidXQgcHJvdmlkZXMgYSBudW1iZXIg
b2YKKyAgICBtZXRob2RzIHdoaWNoIGFpZCB3aXRoIHRlc3RpbmcgcHl0ZXN0IGl0c2VsZi4gIFVu
bGVzcworICAgIDpweTptZXRoOmBjaGRpcmAgaXMgdXNlZCBhbGwgbWV0aG9kcyB3aWxsIHVzZSA6
cHk6YXR0cjpgdG1wZGlyYCBhcworICAgIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuCisKKyAg
ICBBdHRyaWJ1dGVzOgorCisgICAgOnRtcGRpcjogVGhlIDpweTpjbGFzczpgcHkucGF0aC5sb2Nh
bGAgaW5zdGFuY2Ugb2YgdGhlIHRlbXBvcmFyeQorICAgICAgIGRpcmVjdG9yeS4KKworICAgIDpw
bHVnaW5zOiBBIGxpc3Qgb2YgcGx1Z2lucyB0byB1c2Ugd2l0aCA6cHk6bWV0aDpgcGFyc2Vjb25m
aWdgIGFuZAorICAgICAgIDpweTptZXRoOmBydW5weXRlc3RgLiAgSW5pdGlhbGx5IHRoaXMgaXMg
YW4gZW1wdHkgbGlzdCBidXQKKyAgICAgICBwbHVnaW5zIGNhbiBiZSBhZGRlZCB0byB0aGUgbGlz
dC4gIFRoZSB0eXBlIG9mIGl0ZW1zIHRvIGFkZCB0bworICAgICAgIHRoZSBsaXN0IGRlcGVuZCBv
biB0aGUgbWV0aG9kIHdoaWNoIHVzZXMgdGhlbSBzbyByZWZlciB0byB0aGVtCisgICAgICAgZm9y
IGRldGFpbHMuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCB0
bXBkaXJfZmFjdG9yeSk6CisgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAg
c2VsZi5fbW9kX2NvbGxlY3Rpb25zID0gV2Vha0tleURpY3Rpb25hcnkoKQorICAgICAgICBuYW1l
ID0gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworICAgICAgICBzZWxmLnRtcGRpciA9IHRtcGRp
cl9mYWN0b3J5Lm1rdGVtcChuYW1lLCBudW1iZXJlZD1UcnVlKQorICAgICAgICBzZWxmLnBsdWdp
bnMgPSBbXQorICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IChsaXN0KHN5cy5wYXRoKSwgbGlz
dChzeXMubWV0YV9wYXRoKSkKKyAgICAgICAgc2VsZi5fc2F2ZW1vZHVsZWtleXMgPSBzZXQoc3lz
Lm1vZHVsZXMpCisgICAgICAgIHNlbGYuY2hkaXIoKSAgIyBhbHdheXMgY2hkaXIKKyAgICAgICAg
c2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLmZpbmFsaXplKQorICAgICAgICBtZXRob2Qg
PSBzZWxmLnJlcXVlc3QuY29uZmlnLmdldG9wdGlvbigiLS1ydW5weXRlc3QiKQorICAgICAgICBp
ZiBtZXRob2QgPT0gImlucHJvY2VzcyI6CisgICAgICAgICAgICBzZWxmLl9ydW5weXRlc3RfbWV0
aG9kID0gc2VsZi5ydW5weXRlc3RfaW5wcm9jZXNzCisgICAgICAgIGVsaWYgbWV0aG9kID09ICJz
dWJwcm9jZXNzIjoKKyAgICAgICAgICAgIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QgPSBzZWxmLnJ1
bnB5dGVzdF9zdWJwcm9jZXNzCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJl
dHVybiAiPFRlc3RkaXIgJXI+IiAlIChzZWxmLnRtcGRpciwpCisKKyAgICBkZWYgZmluYWxpemUo
c2VsZik6CisgICAgICAgICIiIkNsZWFuIHVwIGdsb2JhbCBzdGF0ZSBhcnRpZmFjdHMuCisKKyAg
ICAgICAgU29tZSBtZXRob2RzIG1vZGlmeSB0aGUgZ2xvYmFsIGludGVycHJldGVyIHN0YXRlIGFu
ZCB0aGlzCisgICAgICAgIHRyaWVzIHRvIGNsZWFuIHRoaXMgdXAuICBJdCBkb2VzIG5vdCByZW1v
dmUgdGhlIHRlbXBvcmFyeQorICAgICAgICBkaXJlY3RvcnkgaG93ZXZlciBzbyBpdCBjYW4gYmUg
bG9va2VkIGF0IGFmdGVyIHRoZSB0ZXN0IHJ1bgorICAgICAgICBoYXMgZmluaXNoZWQuCisKKyAg
ICAgICAgIiIiCisgICAgICAgIHN5cy5wYXRoWzpdLCBzeXMubWV0YV9wYXRoWzpdID0gc2VsZi5f
c2F2ZXN5c3BhdGgKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29sZGRpcicpOgorICAgICAg
ICAgICAgc2VsZi5fb2xkZGlyLmNoZGlyKCkKKyAgICAgICAgc2VsZi5kZWxldGVfbG9hZGVkX21v
ZHVsZXMoKQorCisgICAgZGVmIGRlbGV0ZV9sb2FkZWRfbW9kdWxlcyhzZWxmKToKKyAgICAgICAg
IiIiRGVsZXRlIG1vZHVsZXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkIGR1cmluZyBhIHRlc3QuCisK
KyAgICAgICAgVGhpcyBhbGxvd3MgdGhlIGludGVycHJldGVyIHRvIGNhdGNoIG1vZHVsZSBjaGFu
Z2VzIGluIGNhc2UKKyAgICAgICAgdGhlIG1vZHVsZSBpcyByZS1pbXBvcnRlZC4KKyAgICAgICAg
IiIiCisgICAgICAgIGZvciBuYW1lIGluIHNldChzeXMubW9kdWxlcykuZGlmZmVyZW5jZShzZWxm
Ll9zYXZlbW9kdWxla2V5cyk6CisgICAgICAgICAgICAjIHNvbWUgem9wZSBtb2R1bGVzIHVzZWQg
YnkgdHdpc3RlZC1yZWxhdGVkIHRlc3RzIGtlZXBzIGludGVybmFsCisgICAgICAgICAgICAjIHN0
YXRlIGFuZCBjYW4ndCBiZSBkZWxldGVkOyB3ZSBoYWQgc29tZSB0cm91YmxlIGluIHRoZSBwYXN0
CisgICAgICAgICAgICAjIHdpdGggem9wZS5pbnRlcmZhY2UgZm9yIGV4YW1wbGUKKyAgICAgICAg
ICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInpvcGUiKToKKyAgICAgICAgICAgICAgICBkZWwg
c3lzLm1vZHVsZXNbbmFtZV0KKworICAgIGRlZiBtYWtlX2hvb2tfcmVjb3JkZXIoc2VsZiwgcGx1
Z2lubWFuYWdlcik6CisgICAgICAgICIiIkNyZWF0ZSBhIG5ldyA6cHk6Y2xhc3M6YEhvb2tSZWNv
cmRlcmAgZm9yIGEgUGx1Z2luTWFuYWdlci4iIiIKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRy
KHBsdWdpbm1hbmFnZXIsICJyZXByZWMiKQorICAgICAgICBwbHVnaW5tYW5hZ2VyLnJlcHJlYyA9
IHJlcHJlYyA9IEhvb2tSZWNvcmRlcihwbHVnaW5tYW5hZ2VyKQorICAgICAgICBzZWxmLnJlcXVl
c3QuYWRkZmluYWxpemVyKHJlcHJlYy5maW5pc2hfcmVjb3JkaW5nKQorICAgICAgICByZXR1cm4g
cmVwcmVjCisKKyAgICBkZWYgY2hkaXIoc2VsZik6CisgICAgICAgICIiIkNkIGludG8gdGhlIHRl
bXBvcmFyeSBkaXJlY3RvcnkuCisKKyAgICAgICAgVGhpcyBpcyBkb25lIGF1dG9tYXRpY2FsbHkg
dXBvbiBpbnN0YW50aWF0aW9uLgorCisgICAgICAgICIiIgorICAgICAgICBvbGQgPSBzZWxmLnRt
cGRpci5jaGRpcigpCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb2xkZGlyJyk6Cisg
ICAgICAgICAgICBzZWxmLl9vbGRkaXIgPSBvbGQKKworICAgIGRlZiBfbWFrZWZpbGUoc2VsZiwg
ZXh0LCBhcmdzLCBrd2FyZ3MsIGVuY29kaW5nPSd1dGYtOCcpOgorICAgICAgICBpdGVtcyA9IGxp
c3Qoa3dhcmdzLml0ZW1zKCkpCisKKyAgICAgICAgZGVmIHRvX3RleHQocyk6CisgICAgICAgICAg
ICByZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcpIGlmIGlzaW5zdGFuY2UocywgYnl0ZXMpIGVsc2Ug
c2l4LnRleHRfdHlwZShzKQorCisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICBzb3VyY2Ug
PSB1IlxuIi5qb2luKHRvX3RleHQoeCkgZm9yIHggaW4gYXJncykKKyAgICAgICAgICAgIGJhc2Vu
YW1lID0gc2VsZi5yZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAgICAgICBpdGVtcy5p
bnNlcnQoMCwgKGJhc2VuYW1lLCBzb3VyY2UpKQorCisgICAgICAgIHJldCA9IE5vbmUKKyAgICAg
ICAgZm9yIGJhc2VuYW1lLCB2YWx1ZSBpbiBpdGVtczoKKyAgICAgICAgICAgIHAgPSBzZWxmLnRt
cGRpci5qb2luKGJhc2VuYW1lKS5uZXcoZXh0PWV4dCkKKyAgICAgICAgICAgIHAuZGlycGF0aCgp
LmVuc3VyZV9kaXIoKQorICAgICAgICAgICAgc291cmNlID0gU291cmNlKHZhbHVlKQorICAgICAg
ICAgICAgc291cmNlID0gdSJcbiIuam9pbih0b190ZXh0KGxpbmUpIGZvciBsaW5lIGluIHNvdXJj
ZS5saW5lcykKKyAgICAgICAgICAgIHAud3JpdGUoc291cmNlLnN0cmlwKCkuZW5jb2RlKGVuY29k
aW5nKSwgIndiIikKKyAgICAgICAgICAgIGlmIHJldCBpcyBOb25lOgorICAgICAgICAgICAgICAg
IHJldCA9IHAKKyAgICAgICAgcmV0dXJuIHJldAorCisgICAgZGVmIG1ha2VmaWxlKHNlbGYsIGV4
dCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhl
IHRlc3RkaXIuCisKKyAgICAgICAgZXh0OiBUaGUgZXh0ZW5zaW9uIHRoZSBmaWxlIHNob3VsZCB1
c2UsIGluY2x1ZGluZyB0aGUgZG90LgorICAgICAgICAgICBFLmcuICIucHkiLgorCisgICAgICAg
IGFyZ3M6IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFuZCBqb2luZWQgdXNp
bmcKKyAgICAgICAgICAgbmV3bGluZXMuICBUaGUgcmVzdWx0IHdpbGwgYmUgd3JpdHRlbiBhcyBj
b250ZW50cyB0byB0aGUKKyAgICAgICAgICAgZmlsZS4gIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHdp
bGwgYmUgYmFzZWQgb24gdGhlIHRlc3QKKyAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdGluZyB0
aGlzIGZpeHR1cmUuCisgICAgICAgICAgIEUuZy4gInRlc3RkaXIubWFrZWZpbGUoJy50eHQnLCAn
bGluZTEnLCAnbGluZTInKSIKKworICAgICAgICBrd2FyZ3M6IEVhY2gga2V5d29yZCBpcyB0aGUg
bmFtZSBvZiBhIGZpbGUsIHdoaWxlIHRoZSB2YWx1ZSBvZgorICAgICAgICAgICBpdCB3aWxsIGJl
IHdyaXR0ZW4gYXMgY29udGVudHMgb2YgdGhlIGZpbGUuCisgICAgICAgICAgIEUuZy4gInRlc3Rk
aXIubWFrZWZpbGUoJy5pbmknLCBweXRlc3Q9J1tweXRlc3RdXG5hZGRvcHRzPS1yc1xuJykiCisK
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZShleHQsIGFyZ3MsIGt3
YXJncykKKworICAgIGRlZiBtYWtlY29uZnRlc3Qoc2VsZiwgc291cmNlKToKKyAgICAgICAgIiIi
V3JpdGUgYSBjb250ZXN0LnB5IGZpbGUgd2l0aCAnc291cmNlJyBhcyBjb250ZW50cy4iIiIKKyAg
ICAgICAgcmV0dXJuIHNlbGYubWFrZXB5ZmlsZShjb25mdGVzdD1zb3VyY2UpCisKKyAgICBkZWYg
bWFrZWluaShzZWxmLCBzb3VyY2UpOgorICAgICAgICAiIiJXcml0ZSBhIHRveC5pbmkgZmlsZSB3
aXRoICdzb3VyY2UnIGFzIGNvbnRlbnRzLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5tYWtlZmls
ZSgnLmluaScsIHRveD1zb3VyY2UpCisKKyAgICBkZWYgZ2V0aW5pY2ZnKHNlbGYsIHNvdXJjZSk6
CisgICAgICAgICIiIlJldHVybiB0aGUgcHl0ZXN0IHNlY3Rpb24gZnJvbSB0aGUgdG94LmluaSBj
b25maWcgZmlsZS4iIiIKKyAgICAgICAgcCA9IHNlbGYubWFrZWluaShzb3VyY2UpCisgICAgICAg
IHJldHVybiBweS5pbmljb25maWcuSW5pQ29uZmlnKHApWydweXRlc3QnXQorCisgICAgZGVmIG1h
a2VweWZpbGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiU2hvcnRjdXQgZm9y
IC5tYWtlZmlsZSgpIHdpdGggYSAucHkgZXh0ZW5zaW9uLiIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fbWFrZWZpbGUoJy5weScsIGFyZ3MsIGt3YXJncykKKworICAgIGRlZiBtYWtldHh0ZmlsZShz
ZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJTaG9ydGN1dCBmb3IgLm1ha2VmaWxl
KCkgd2l0aCBhIC50eHQgZXh0ZW5zaW9uLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbWFrZWZp
bGUoJy50eHQnLCBhcmdzLCBrd2FyZ3MpCisKKyAgICBkZWYgc3lzcGF0aGluc2VydChzZWxmLCBw
YXRoPU5vbmUpOgorICAgICAgICAiIiJQcmVwZW5kIGEgZGlyZWN0b3J5IHRvIHN5cy5wYXRoLCBk
ZWZhdWx0cyB0byA6cHk6YXR0cjpgdG1wZGlyYC4KKworICAgICAgICBUaGlzIGlzIHVuZG9uZSBh
dXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB0ZXN0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgcGF0
aCBpcyBOb25lOgorICAgICAgICAgICAgcGF0aCA9IHNlbGYudG1wZGlyCisgICAgICAgIHN5cy5w
YXRoLmluc2VydCgwLCBzdHIocGF0aCkpCisgICAgICAgICMgYSBjYWxsIHRvIHN5c3BhdGhpbnNl
cnQoKSB1c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlcgorICAgICAgICAjIHdhbnRzIHRvIGlt
cG9ydCBzb21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMuCisgICAgICAgICMgd2l0aCBweXRo
b24zIHdlIHRodXMgaW52YWxpZGF0ZSBpbXBvcnQgY2FjaGVzLgorICAgICAgICBzZWxmLl9wb3Nz
aWJseV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoKQorCisgICAgZGVmIF9wb3NzaWJseV9pbnZh
bGlkYXRlX2ltcG9ydF9jYWNoZXMoc2VsZik6CisgICAgICAgICMgaW52YWxpZGF0ZSBjYWNoZXMg
aWYgd2UgY2FuIChweTMzIGFuZCBhYm92ZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1w
b3J0IGltcG9ydGxpYgorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBoYXNhdHRyKGltcG9ydGxpYiwgImlu
dmFsaWRhdGVfY2FjaGVzIik6CisgICAgICAgICAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVf
Y2FjaGVzKCkKKworICAgIGRlZiBta2RpcihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiQ3JlYXRl
IGEgbmV3IChzdWIpZGlyZWN0b3J5LiIiIgorICAgICAgICByZXR1cm4gc2VsZi50bXBkaXIubWtk
aXIobmFtZSkKKworICAgIGRlZiBta3B5ZGlyKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJDcmVh
dGUgYSBuZXcgcHl0aG9uIHBhY2thZ2UuCisKKyAgICAgICAgVGhpcyBjcmVhdGVzIGEgKHN1Yilk
aXJlY3Rvcnkgd2l0aCBhbiBlbXB0eSBgYF9faW5pdF9fLnB5YGAKKyAgICAgICAgZmlsZSBzbyB0
aGF0IGlzIHJlY29nbmlzZWQgYXMgYSBweXRob24gcGFja2FnZS4KKworICAgICAgICAiIiIKKyAg
ICAgICAgcCA9IHNlbGYubWtkaXIobmFtZSkKKyAgICAgICAgcC5lbnN1cmUoIl9faW5pdF9fLnB5
IikKKyAgICAgICAgcmV0dXJuIHAKKworICAgIFNlc3Npb24gPSBTZXNzaW9uCisKKyAgICBkZWYg
Z2V0bm9kZShzZWxmLCBjb25maWcsIGFyZyk6CisgICAgICAgICIiIlJldHVybiB0aGUgY29sbGVj
dGlvbiBub2RlIG9mIGEgZmlsZS4KKworICAgICAgICA6cGFyYW0gY29uZmlnOiA6cHk6Y2xhc3M6
YF9weXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UsIHNlZQorICAgICAgICAgICA6cHk6bWV0
aDpgcGFyc2Vjb25maWdgIGFuZCA6cHk6bWV0aDpgcGFyc2Vjb25maWd1cmVgIHRvCisgICAgICAg
ICAgIGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KKworICAgICAgICA6cGFyYW0gYXJnOiBBIDpw
eTpjbGFzczpgcHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ugb2YgdGhlIGZpbGUuCisKKyAgICAgICAg
IiIiCisgICAgICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKKyAgICAgICAgYXNzZXJ0ICc6
Oicgbm90IGluIHN0cihhcmcpCisgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKGFyZykKKyAgICAg
ICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCisgICAg
ICAgIHJlcyA9IHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KFtzdHIocCldLCBnZW5pdGVtcz1GYWxz
ZSlbMF0KKyAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbj1z
ZXNzaW9uLCBleGl0c3RhdHVzPUVYSVRfT0spCisgICAgICAgIHJldHVybiByZXMKKworICAgIGRl
ZiBnZXRwYXRobm9kZShzZWxmLCBwYXRoKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0
aW9uIG5vZGUgb2YgYSBmaWxlLgorCisgICAgICAgIFRoaXMgaXMgbGlrZSA6cHk6bWV0aDpgZ2V0
bm9kZWAgYnV0IHVzZXMKKyAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlndXJlYCB0byBjcmVh
dGUgdGhlIChjb25maWd1cmVkKSBweXRlc3QKKyAgICAgICAgQ29uZmlnIGluc3RhbmNlLgorCisg
ICAgICAgIDpwYXJhbSBwYXRoOiBBIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ug
b2YgdGhlIGZpbGUuCisKKyAgICAgICAgIiIiCisgICAgICAgIGNvbmZpZyA9IHNlbGYucGFyc2Vj
b25maWd1cmUocGF0aCkKKyAgICAgICAgc2Vzc2lvbiA9IFNlc3Npb24oY29uZmlnKQorICAgICAg
ICB4ID0gc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgocGF0aCkKKyAgICAgICAgY29uZmlnLmhv
b2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCisgICAgICAgIHJlcyA9IHNl
c3Npb24ucGVyZm9ybV9jb2xsZWN0KFt4XSwgZ2VuaXRlbXM9RmFsc2UpWzBdCisgICAgICAgIGNv
bmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb249c2Vzc2lvbiwgZXhpdHN0YXR1
cz1FWElUX09LKQorICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgZ2VuaXRlbXMoc2VsZiwg
Y29saXRlbXMpOgorICAgICAgICAiIiJHZW5lcmF0ZSBhbGwgdGVzdCBpdGVtcyBmcm9tIGEgY29s
bGVjdGlvbiBub2RlLgorCisgICAgICAgIFRoaXMgcmVjdXJzZXMgaW50byB0aGUgY29sbGVjdGlv
biBub2RlIGFuZCByZXR1cm5zIGEgbGlzdCBvZgorICAgICAgICBhbGwgdGhlIHRlc3QgaXRlbXMg
Y29udGFpbmVkIHdpdGhpbi4KKworICAgICAgICAiIiIKKyAgICAgICAgc2Vzc2lvbiA9IGNvbGl0
ZW1zWzBdLnNlc3Npb24KKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgZm9yIGNvbGl0ZW0g
aW4gY29saXRlbXM6CisgICAgICAgICAgICByZXN1bHQuZXh0ZW5kKHNlc3Npb24uZ2VuaXRlbXMo
Y29saXRlbSkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBydW5pdGVtKHNlbGYs
IHNvdXJjZSk6CisgICAgICAgICIiIlJ1biB0aGUgInRlc3RfZnVuYyIgSXRlbS4KKworICAgICAg
ICBUaGUgY2FsbGluZyB0ZXN0IGluc3RhbmNlICh0aGUgY2xhc3Mgd2hpY2ggY29udGFpbnMgdGhl
IHRlc3QKKyAgICAgICAgbWV0aG9kKSBtdXN0IHByb3ZpZGUgYSBgYC5nZXRydW5uZXIoKWBgIG1l
dGhvZCB3aGljaCBzaG91bGQKKyAgICAgICAgcmV0dXJuIGEgcnVubmVyIHdoaWNoIGNhbiBydW4g
dGhlIHRlc3QgcHJvdG9jb2wgZm9yIGEgc2luZ2xlCisgICAgICAgIGl0ZW0sIGxpa2UgZS5nLiA6
cHk6ZnVuYzpgX3B5dGVzdC5ydW5uZXIucnVudGVzdHByb3RvY29sYC4KKworICAgICAgICAiIiIK
KyAgICAgICAgIyB1c2VkIGZyb20gcnVubmVyIGZ1bmN0aW9uYWwgdGVzdHMKKyAgICAgICAgaXRl
bSA9IHNlbGYuZ2V0aXRlbShzb3VyY2UpCisgICAgICAgICMgdGhlIHRlc3QgY2xhc3Mgd2hlcmUg
d2UgYXJlIGNhbGxlZCBmcm9tIHdhbnRzIHRvIHByb3ZpZGUgdGhlIHJ1bm5lcgorICAgICAgICB0
ZXN0Y2xhc3NpbnN0YW5jZSA9IHNlbGYucmVxdWVzdC5pbnN0YW5jZQorICAgICAgICBydW5uZXIg
PSB0ZXN0Y2xhc3NpbnN0YW5jZS5nZXRydW5uZXIoKQorICAgICAgICByZXR1cm4gcnVubmVyKGl0
ZW0pCisKKyAgICBkZWYgaW5saW5lX3J1bnNvdXJjZShzZWxmLCBzb3VyY2UsICpjbWRsaW5lYXJn
cyk6CisgICAgICAgICIiIlJ1biBhIHRlc3QgbW9kdWxlIGluIHByb2Nlc3MgdXNpbmcgYGBweXRl
c3QubWFpbigpYGAuCisKKyAgICAgICAgVGhpcyBydW4gd3JpdGVzICJzb3VyY2UiIGludG8gYSB0
ZW1wb3JhcnkgZmlsZSBhbmQgcnVucworICAgICAgICBgYHB5dGVzdC5tYWluKClgYCBvbiBpdCwg
cmV0dXJuaW5nIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgCisgICAgICAgIGluc3RhbmNlIGZv
ciB0aGUgcmVzdWx0LgorCisgICAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBzb3VyY2UgY29kZSBv
ZiB0aGUgdGVzdCBtb2R1bGUuCisKKyAgICAgICAgOnBhcmFtIGNtZGxpbmVhcmdzOiBBbnkgZXh0
cmEgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byB1c2UuCisKKyAgICAgICAgOnJldHVybjogOnB5
OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlIG9mIHRoZSByZXN1bHQuCisKKyAgICAgICAg
IiIiCisgICAgICAgIHAgPSBzZWxmLm1ha2VweWZpbGUoc291cmNlKQorICAgICAgICB2YWx1ZXMg
PSBsaXN0KGNtZGxpbmVhcmdzKSArIFtwXQorICAgICAgICByZXR1cm4gc2VsZi5pbmxpbmVfcnVu
KCp2YWx1ZXMpCisKKyAgICBkZWYgaW5saW5lX2dlbml0ZW1zKHNlbGYsICphcmdzKToKKyAgICAg
ICAgIiIiUnVuIGBgcHl0ZXN0Lm1haW4oWyctLWNvbGxlY3Rvbmx5J10pYGAgaW4tcHJvY2Vzcy4K
KworICAgICAgICBSZXR1cm5zIGEgdHVwbGUgb2YgdGhlIGNvbGxlY3RlZCBpdGVtcyBhbmQgYQor
ICAgICAgICA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2UuCisKKyAgICAgICAgVGhp
cyBydW5zIHRoZSA6cHk6ZnVuYzpgcHl0ZXN0Lm1haW5gIGZ1bmN0aW9uIHRvIHJ1biBhbGwgb2YK
KyAgICAgICAgcHl0ZXN0IGluc2lkZSB0aGUgdGVzdCBwcm9jZXNzIGl0c2VsZiBsaWtlCisgICAg
ICAgIDpweTptZXRoOmBpbmxpbmVfcnVuYC4gIEhvd2V2ZXIgdGhlIHJldHVybiB2YWx1ZSBpcyBh
IHR1cGxlIG9mCisgICAgICAgIHRoZSBjb2xsZWN0aW9uIGl0ZW1zIGFuZCBhIDpweTpjbGFzczpg
SG9va1JlY29yZGVyYCBpbnN0YW5jZS4KKworICAgICAgICAiIiIKKyAgICAgICAgcmVjID0gc2Vs
Zi5pbmxpbmVfcnVuKCItLWNvbGxlY3Qtb25seSIsICphcmdzKQorICAgICAgICBpdGVtcyA9IFt4
Lml0ZW0gZm9yIHggaW4gcmVjLmdldGNhbGxzKCJweXRlc3RfaXRlbWNvbGxlY3RlZCIpXQorICAg
ICAgICByZXR1cm4gaXRlbXMsIHJlYworCisgICAgZGVmIGlubGluZV9ydW4oc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgIiIiUnVuIGBgcHl0ZXN0Lm1haW4oKWBgIGluLXByb2Nlc3Ms
IHJldHVybmluZyBhIEhvb2tSZWNvcmRlci4KKworICAgICAgICBUaGlzIHJ1bnMgdGhlIDpweTpm
dW5jOmBweXRlc3QubWFpbmAgZnVuY3Rpb24gdG8gcnVuIGFsbCBvZgorICAgICAgICBweXRlc3Qg
aW5zaWRlIHRoZSB0ZXN0IHByb2Nlc3MgaXRzZWxmLiAgVGhpcyBtZWFucyBpdCBjYW4KKyAgICAg
ICAgcmV0dXJuIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlIHdoaWNoIGdpdmVz
IG1vcmUKKyAgICAgICAgZGV0YWlsZWQgcmVzdWx0cyBmcm9tIHRoZW4gcnVuIHRoZW4gY2FuIGJl
IGRvbmUgYnkgbWF0Y2hpbmcKKyAgICAgICAgc3Rkb3V0L3N0ZGVyciBmcm9tIDpweTptZXRoOmBy
dW5weXRlc3RgLgorCisgICAgICAgIDpwYXJhbSBhcmdzOiBBbnkgY29tbWFuZCBsaW5lIGFyZ3Vt
ZW50cyB0byBwYXNzIHRvCisgICAgICAgICAgIDpweTpmdW5jOmBweXRlc3QubWFpbmAuCisKKyAg
ICAgICAgOnBhcmFtIHBsdWdpbjogKGtleXdvcmQtb25seSkgRXh0cmEgcGx1Z2luIGluc3RhbmNl
cyB0aGUKKyAgICAgICAgICAgYGBweXRlc3QubWFpbigpYGAgaW5zdGFuY2Ugc2hvdWxkIHVzZS4K
KworICAgICAgICA6cmV0dXJuOiBBIDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZS4K
KyAgICAgICAgIiIiCisgICAgICAgICMgV2hlbiBydW5uaW5nIHB5LnRlc3QgaW5saW5lIGFueSBw
bHVnaW5zIGFjdGl2ZSBpbiB0aGUgbWFpbgorICAgICAgICAjIHRlc3QgcHJvY2VzcyBhcmUgYWxy
ZWFkeSBpbXBvcnRlZC4gIFNvIHRoaXMgZGlzYWJsZXMgdGhlCisgICAgICAgICMgd2FybmluZyB3
aGljaCB3aWxsIHRyaWdnZXIgdG8gc2F5IHRoZXkgY2FuIG5vIGxvbmdlciBiZQorICAgICAgICAj
IHJld3JpdHRlbiwgd2hpY2ggaXMgZmluZSBhcyB0aGV5IGFyZSBhbHJlYWR5IHJld3JpdHRlbi4K
KyAgICAgICAgb3JpZ193YXJuID0gQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5
X2ltcG9ydGVkCisKKyAgICAgICAgZGVmIHJldmVydCgpOgorICAgICAgICAgICAgQXNzZXJ0aW9u
UmV3cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5X2ltcG9ydGVkID0gb3JpZ193YXJuCisKKyAgICAg
ICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihyZXZlcnQpCisgICAgICAgIEFzc2VydGlvblJl
d3JpdGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRlZCA9IGxhbWJkYSAqYTogTm9uZQorCisg
ICAgICAgIHJlYyA9IFtdCisKKyAgICAgICAgY2xhc3MgQ29sbGVjdDoKKyAgICAgICAgICAgIGRl
ZiBweXRlc3RfY29uZmlndXJlKHgsIGNvbmZpZyk6CisgICAgICAgICAgICAgICAgcmVjLmFwcGVu
ZChzZWxmLm1ha2VfaG9va19yZWNvcmRlcihjb25maWcucGx1Z2lubWFuYWdlcikpCisKKyAgICAg
ICAgcGx1Z2lucyA9IGt3YXJncy5nZXQoInBsdWdpbnMiKSBvciBbXQorICAgICAgICBwbHVnaW5z
LmFwcGVuZChDb2xsZWN0KCkpCisgICAgICAgIHJldCA9IHB5dGVzdC5tYWluKGxpc3QoYXJncyks
IHBsdWdpbnM9cGx1Z2lucykKKyAgICAgICAgc2VsZi5kZWxldGVfbG9hZGVkX21vZHVsZXMoKQor
ICAgICAgICBpZiBsZW4ocmVjKSA9PSAxOgorICAgICAgICAgICAgcmVwcmVjID0gcmVjLnBvcCgp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjbGFzcyByZXByZWM6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICByZXByZWMucmV0ID0gcmV0CisKKyAgICAgICAgIyB0eXBpY2FsbHkg
d2UgcmVyYWlzZSBrZXlib2FyZCBpbnRlcnJ1cHRzIGZyb20gdGhlIGNoaWxkIHJ1bgorICAgICAg
ICAjIGJlY2F1c2UgaXQncyBvdXIgdXNlciByZXF1ZXN0aW5nIGludGVycnVwdGlvbiBvZiB0aGUg
dGVzdGluZworICAgICAgICBpZiByZXQgPT0gMiBhbmQgbm90IGt3YXJncy5nZXQoIm5vX3JlcmFp
c2VfY3RybGMiKToKKyAgICAgICAgICAgIGNhbGxzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3Rf
a2V5Ym9hcmRfaW50ZXJydXB0IikKKyAgICAgICAgICAgIGlmIGNhbGxzIGFuZCBjYWxsc1stMV0u
ZXhjaW5mby50eXBlID09IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAgIHJhaXNl
IEtleWJvYXJkSW50ZXJydXB0KCkKKyAgICAgICAgcmV0dXJuIHJlcHJlYworCisgICAgZGVmIHJ1
bnB5dGVzdF9pbnByb2Nlc3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIFJl
dHVybiByZXN1bHQgb2YgcnVubmluZyBweXRlc3QgaW4tcHJvY2VzcywgcHJvdmlkaW5nIGEgc2lt
aWxhcgorICAgICAgICBpbnRlcmZhY2UgdG8gd2hhdCBzZWxmLnJ1bnB5dGVzdCgpIHByb3ZpZGVz
LiAiIiIKKyAgICAgICAgaWYga3dhcmdzLmdldCgic3lzcGF0aGluc2VydCIpOgorICAgICAgICAg
ICAgc2VsZi5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAg
ICAgY2FwdHVyZSA9IE11bHRpQ2FwdHVyZShDYXB0dXJlPVN5c0NhcHR1cmUpCisgICAgICAgIGNh
cHR1cmUuc3RhcnRfY2FwdHVyaW5nKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIHJlcHJlYyA9IHNlbGYuaW5saW5lX3J1bigqYXJncywgKiprd2FyZ3Mp
CisgICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdCBhcyBlOgorCisgICAgICAgICAgICAgICAg
Y2xhc3MgcmVwcmVjOgorICAgICAgICAgICAgICAgICAgICByZXQgPSBlLmFyZ3NbMF0KKworICAg
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJp
bnRfZXhjKCkKKworICAgICAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0ID0gMworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3V0LCBlcnIgPSBj
YXB0dXJlLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgY2FwdHVyZS5zdG9wX2NhcHR1cmluZygp
CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKKyAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoZXJyKQorCisgICAgICAgIHJlcyA9IFJ1blJlc3VsdChyZXByZWMucmV0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnNwbGl0KCJcbiIpLCBlcnIuc3BsaXQoIlxuIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnRpbWUoKSAtIG5vdykKKyAgICAgICAgcmVzLnJl
cHJlYyA9IHJlcHJlYworICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgcnVucHl0ZXN0KHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiBSdW4gcHl0ZXN0IGlubGluZSBvciBp
biBhIHN1YnByb2Nlc3MsIGRlcGVuZGluZyBvbiB0aGUgY29tbWFuZCBsaW5lCisgICAgICAgIG9w
dGlvbiAiLS1ydW5weXRlc3QiIGFuZCByZXR1cm4gYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCisK
KyAgICAgICAgIiIiCisgICAgICAgIGFyZ3MgPSBzZWxmLl9lbnN1cmVfYmFzZXRlbXAoYXJncykK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QoKmFyZ3MsICoqa3dhcmdzKQor
CisgICAgZGVmIF9lbnN1cmVfYmFzZXRlbXAoc2VsZiwgYXJncyk6CisgICAgICAgIGFyZ3MgPSBb
c3RyKHgpIGZvciB4IGluIGFyZ3NdCisgICAgICAgIGZvciB4IGluIGFyZ3M6CisgICAgICAgICAg
ICBpZiBzdHIoeCkuc3RhcnRzd2l0aCgnLS1iYXNldGVtcCcpOgorICAgICAgICAgICAgICAgICMg
cHJpbnQoImJhc2VkdGVtcCBleGlzdHM6ICVzIiAlKGFyZ3MsKSkKKyAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tYmFzZXRlbXA9
JXMiICUgc2VsZi50bXBkaXIuZGlycGF0aCgnYmFzZXRlbXAnKSkKKyAgICAgICAgICAgICMgcHJp
bnQoImFkZGVkIGJhc2V0ZW1wOiAlcyIgJShhcmdzLCkpCisgICAgICAgIHJldHVybiBhcmdzCisK
KyAgICBkZWYgcGFyc2Vjb25maWcoc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJSZXR1cm4gYSBu
ZXcgcHl0ZXN0IENvbmZpZyBpbnN0YW5jZSBmcm9tIGdpdmVuIGNvbW1hbmRsaW5lIGFyZ3MuCisK
KyAgICAgICAgVGhpcyBpbnZva2VzIHRoZSBweXRlc3QgYm9vdHN0cmFwcGluZyBjb2RlIGluIF9w
eXRlc3QuY29uZmlnCisgICAgICAgIHRvIGNyZWF0ZSBhIG5ldyA6cHk6Y2xhc3M6YF9weXRlc3Qu
Y29yZS5QbHVnaW5NYW5hZ2VyYCBhbmQKKyAgICAgICAgY2FsbCB0aGUgcHl0ZXN0X2NtZGxpbmVf
cGFyc2UgaG9vayB0byBjcmVhdGUgbmV3CisgICAgICAgIDpweTpjbGFzczpgX3B5dGVzdC5jb25m
aWcuQ29uZmlnYCBpbnN0YW5jZS4KKworICAgICAgICBJZiA6cHk6YXR0cjpgcGx1Z2luc2AgaGFz
IGJlZW4gcG9wdWxhdGVkIHRoZXkgc2hvdWxkIGJlIHBsdWdpbgorICAgICAgICBtb2R1bGVzIHdo
aWNoIHdpbGwgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQbHVnaW5NYW5hZ2VyLgorCisgICAgICAg
ICIiIgorICAgICAgICBhcmdzID0gc2VsZi5fZW5zdXJlX2Jhc2V0ZW1wKGFyZ3MpCisKKyAgICAg
ICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCisgICAgICAgIGNvbmZpZyA9IF9weXRlc3QuY29uZmln
Ll9wcmVwYXJlY29uZmlnKGFyZ3MsIHNlbGYucGx1Z2lucykKKyAgICAgICAgIyB3ZSBkb24ndCBr
bm93IHdoYXQgdGhlIHRlc3Qgd2lsbCBkbyB3aXRoIHRoaXMgaGFsZi1zZXR1cCBjb25maWcKKyAg
ICAgICAgIyBvYmplY3QgYW5kIHRodXMgd2UgbWFrZSBzdXJlIGl0IGdldHMgdW5jb25maWd1cmVk
IHByb3Blcmx5IGluIGFueQorICAgICAgICAjIGNhc2UgKG90aGVyd2lzZSBjYXB0dXJpbmcgY291
bGQgc3RpbGwgYmUgYWN0aXZlLCBmb3IgZXhhbXBsZSkKKyAgICAgICAgc2VsZi5yZXF1ZXN0LmFk
ZGZpbmFsaXplcihjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSkKKyAgICAgICAgcmV0dXJuIGNv
bmZpZworCisgICAgZGVmIHBhcnNlY29uZmlndXJlKHNlbGYsICphcmdzKToKKyAgICAgICAgIiIi
UmV0dXJuIGEgbmV3IHB5dGVzdCBjb25maWd1cmVkIENvbmZpZyBpbnN0YW5jZS4KKworICAgICAg
ICBUaGlzIHJldHVybnMgYSBuZXcgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGlu
c3RhbmNlCisgICAgICAgIGxpa2UgOnB5Om1ldGg6YHBhcnNlY29uZmlnYCwgYnV0IGFsc28gY2Fs
bHMgdGhlCisgICAgICAgIHB5dGVzdF9jb25maWd1cmUgaG9vay4KKworICAgICAgICAiIiIKKyAg
ICAgICAgY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZygqYXJncykKKyAgICAgICAgY29uZmlnLl9k
b19jb25maWd1cmUoKQorICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGNvbmZpZy5f
ZW5zdXJlX3VuY29uZmlndXJlKQorICAgICAgICByZXR1cm4gY29uZmlnCisKKyAgICBkZWYgZ2V0
aXRlbShzZWxmLCBzb3VyY2UsIGZ1bmNuYW1lPSJ0ZXN0X2Z1bmMiKToKKyAgICAgICAgIiIiUmV0
dXJuIHRoZSB0ZXN0IGl0ZW0gZm9yIGEgdGVzdCBmdW5jdGlvbi4KKworICAgICAgICBUaGlzIHdy
aXRlcyB0aGUgc291cmNlIHRvIGEgcHl0aG9uIGZpbGUgYW5kIHJ1bnMgcHl0ZXN0J3MKKyAgICAg
ICAgY29sbGVjdGlvbiBvbiB0aGUgcmVzdWx0aW5nIG1vZHVsZSwgcmV0dXJuaW5nIHRoZSB0ZXN0
IGl0ZW0KKyAgICAgICAgZm9yIHRoZSByZXF1ZXN0ZWQgZnVuY3Rpb24gbmFtZS4KKworICAgICAg
ICA6cGFyYW0gc291cmNlOiBUaGUgbW9kdWxlIHNvdXJjZS4KKworICAgICAgICA6cGFyYW0gZnVu
Y25hbWU6IFRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZ1bmN0aW9uIGZvciB3aGljaCB0aGUKKyAgICAg
ICAgICAgSXRlbSBtdXN0IGJlIHJldHVybmVkLgorCisgICAgICAgICIiIgorICAgICAgICBpdGVt
cyA9IHNlbGYuZ2V0aXRlbXMoc291cmNlKQorICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAg
ICAgICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBmdW5jbmFtZToKKyAgICAgICAgICAgICAgICByZXR1
cm4gaXRlbQorICAgICAgICBhc3NlcnQgMCwgIiVyIGl0ZW0gbm90IGZvdW5kIGluIG1vZHVsZTpc
biVzXG5pdGVtczogJXMiICUgKAorICAgICAgICAgICAgICAgICAgZnVuY25hbWUsIHNvdXJjZSwg
aXRlbXMpCisKKyAgICBkZWYgZ2V0aXRlbXMoc2VsZiwgc291cmNlKToKKyAgICAgICAgIiIiUmV0
dXJuIGFsbCB0ZXN0IGl0ZW1zIGNvbGxlY3RlZCBmcm9tIHRoZSBtb2R1bGUuCisKKyAgICAgICAg
VGhpcyB3cml0ZXMgdGhlIHNvdXJjZSB0byBhIHB5dGhvbiBmaWxlIGFuZCBydW5zIHB5dGVzdCdz
CisgICAgICAgIGNvbGxlY3Rpb24gb24gdGhlIHJlc3VsdGluZyBtb2R1bGUsIHJldHVybmluZyBh
bGwgdGVzdCBpdGVtcworICAgICAgICBjb250YWluZWQgd2l0aGluLgorCisgICAgICAgICIiIgor
ICAgICAgICBtb2Rjb2wgPSBzZWxmLmdldG1vZHVsZWNvbChzb3VyY2UpCisgICAgICAgIHJldHVy
biBzZWxmLmdlbml0ZW1zKFttb2Rjb2xdKQorCisgICAgZGVmIGdldG1vZHVsZWNvbChzZWxmLCBz
b3VyY2UsIGNvbmZpZ2FyZ3M9KCksIHdpdGhpbml0PUZhbHNlKToKKyAgICAgICAgIiIiUmV0dXJu
IHRoZSBtb2R1bGUgY29sbGVjdGlvbiBub2RlIGZvciBgYHNvdXJjZWBgLgorCisgICAgICAgIFRo
aXMgd3JpdGVzIGBgc291cmNlYGAgdG8gYSBmaWxlIHVzaW5nIDpweTptZXRoOmBtYWtlcHlmaWxl
YAorICAgICAgICBhbmQgdGhlbiBydW5zIHRoZSBweXRlc3QgY29sbGVjdGlvbiBvbiBpdCwgcmV0
dXJuaW5nIHRoZQorICAgICAgICBjb2xsZWN0aW9uIG5vZGUgZm9yIHRoZSB0ZXN0IG1vZHVsZS4K
KworICAgICAgICA6cGFyYW0gc291cmNlOiBUaGUgc291cmNlIGNvZGUgb2YgdGhlIG1vZHVsZSB0
byBjb2xsZWN0LgorCisgICAgICAgIDpwYXJhbSBjb25maWdhcmdzOiBBbnkgZXh0cmEgYXJndW1l
bnRzIHRvIHBhc3MgdG8KKyAgICAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlndXJlYC4KKwor
ICAgICAgICA6cGFyYW0gd2l0aGluaXQ6IFdoZXRoZXIgdG8gYWxzbyB3cml0ZSBhIGBgX19pbml0
X18ucHlgYCBmaWxlCisgICAgICAgICAgIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIGVu
c3VyZSBpdCBpcyBhIHBhY2thZ2UuCisKKyAgICAgICAgIiIiCisgICAgICAgIGt3ID0ge3NlbGYu
cmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291cmNlKHNvdXJjZSkuc3RyaXAoKX0KKyAgICAg
ICAgcGF0aCA9IHNlbGYubWFrZXB5ZmlsZSgqKmt3KQorICAgICAgICBpZiB3aXRoaW5pdDoKKyAg
ICAgICAgICAgIHNlbGYubWFrZXB5ZmlsZShfX2luaXRfXz0iIyIpCisgICAgICAgIHNlbGYuY29u
ZmlnID0gY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZ3VyZShwYXRoLCAqY29uZmlnYXJncykKKyAg
ICAgICAgbm9kZSA9IHNlbGYuZ2V0bm9kZShjb25maWcsIHBhdGgpCisKKyAgICAgICAgcmV0dXJu
IG5vZGUKKworICAgIGRlZiBjb2xsZWN0X2J5X25hbWUoc2VsZiwgbW9kY29sLCBuYW1lKToKKyAg
ICAgICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG5vZGUgZm9yIG5hbWUgZnJvbSB0aGUgbW9k
dWxlIGNvbGxlY3Rpb24uCisKKyAgICAgICAgVGhpcyB3aWxsIHNlYXJjaCBhIG1vZHVsZSBjb2xs
ZWN0aW9uIG5vZGUgZm9yIGEgY29sbGVjdGlvbgorICAgICAgICBub2RlIG1hdGNoaW5nIHRoZSBn
aXZlbiBuYW1lLgorCisgICAgICAgIDpwYXJhbSBtb2Rjb2w6IEEgbW9kdWxlIGNvbGxlY3Rpb24g
bm9kZSwgc2VlCisgICAgICAgICAgIDpweTptZXRoOmBnZXRtb2R1bGVjb2xgLgorCisgICAgICAg
IDpwYXJhbSBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byByZXR1cm4uCisKKyAgICAgICAg
IiIiCisgICAgICAgIGlmIG1vZGNvbCBub3QgaW4gc2VsZi5fbW9kX2NvbGxlY3Rpb25zOgorICAg
ICAgICAgICAgc2VsZi5fbW9kX2NvbGxlY3Rpb25zW21vZGNvbF0gPSBsaXN0KG1vZGNvbC5jb2xs
ZWN0KCkpCisgICAgICAgIGZvciBjb2xpdGVtIGluIHNlbGYuX21vZF9jb2xsZWN0aW9uc1ttb2Rj
b2xdOgorICAgICAgICAgICAgaWYgY29saXRlbS5uYW1lID09IG5hbWU6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbGl0ZW0KKworICAgIGRlZiBwb3BlbihzZWxmLCBjbWRhcmdzLCBzdGRvdXQs
IHN0ZGVyciwgKiprdyk6CisgICAgICAgICIiIkludm9rZSBzdWJwcm9jZXNzLlBvcGVuLgorCisg
ICAgICAgIFRoaXMgY2FsbHMgc3VicHJvY2Vzcy5Qb3BlbiBtYWtpbmcgc3VyZSB0aGUgY3VycmVu
dCB3b3JraW5nCisgICAgICAgIGRpcmVjdG9yeSBpcyB0aGUgUFlUSE9OUEFUSC4KKworICAgICAg
ICBZb3UgcHJvYmFibHkgd2FudCB0byB1c2UgOnB5Om1ldGg6YHJ1bmAgaW5zdGVhZC4KKworICAg
ICAgICAiIiIKKyAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgZW52WydQ
WVRIT05QQVRIJ10gPSBvcy5wYXRoc2VwLmpvaW4oZmlsdGVyKE5vbmUsIFsKKyAgICAgICAgICAg
IHN0cihvcy5nZXRjd2QoKSksIGVudi5nZXQoJ1BZVEhPTlBBVEgnLCAnJyldKSkKKyAgICAgICAg
a3dbJ2VudiddID0gZW52CisKKyAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuKGNtZGFy
Z3MsIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0PXN0ZG91dCwgc3RkZXJyPXN0ZGVyciwg
KiprdykKKyAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2UoKQorCisgICAgICAgIHJldHVybiBwb3Bl
bgorCisgICAgZGVmIHJ1bihzZWxmLCAqY21kYXJncyk6CisgICAgICAgICIiIlJ1biBhIGNvbW1h
bmQgd2l0aCBhcmd1bWVudHMuCisKKyAgICAgICAgUnVuIGEgcHJvY2VzcyB1c2luZyBzdWJwcm9j
ZXNzLlBvcGVuIHNhdmluZyB0aGUgc3Rkb3V0IGFuZAorICAgICAgICBzdGRlcnIuCisKKyAgICAg
ICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KKworICAgICAgICAiIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX3J1bigqY21kYXJncykKKworICAgIGRlZiBfcnVuKHNlbGYsICpjbWRh
cmdzKToKKyAgICAgICAgY21kYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gY21kYXJnc10KKyAgICAg
ICAgcDEgPSBzZWxmLnRtcGRpci5qb2luKCJzdGRvdXQiKQorICAgICAgICBwMiA9IHNlbGYudG1w
ZGlyLmpvaW4oInN0ZGVyciIpCisgICAgICAgIHByaW50KCJydW5uaW5nOiIsICcgJy5qb2luKGNt
ZGFyZ3MpKQorICAgICAgICBwcmludCgiICAgICBpbjoiLCBzdHIocHkucGF0aC5sb2NhbCgpKSkK
KyAgICAgICAgZjEgPSBjb2RlY3Mub3BlbihzdHIocDEpLCAidyIsIGVuY29kaW5nPSJ1dGY4IikK
KyAgICAgICAgZjIgPSBjb2RlY3Mub3BlbihzdHIocDIpLCAidyIsIGVuY29kaW5nPSJ1dGY4IikK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgICAg
IHBvcGVuID0gc2VsZi5wb3BlbihjbWRhcmdzLCBzdGRvdXQ9ZjEsIHN0ZGVycj1mMiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9KHN5cy5wbGF0Zm9ybSAhPSAid2lu
MzIiKSkKKyAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgZjEuY2xvc2UoKQorICAgICAgICAgICAgZjIuY2xvc2UoKQorICAgICAgICBm
MSA9IGNvZGVjcy5vcGVuKHN0cihwMSksICJyIiwgZW5jb2Rpbmc9InV0ZjgiKQorICAgICAgICBm
MiA9IGNvZGVjcy5vcGVuKHN0cihwMiksICJyIiwgZW5jb2Rpbmc9InV0ZjgiKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBvdXQgPSBmMS5yZWFkKCkuc3BsaXRsaW5lcygpCisgICAgICAgICAg
ICBlcnIgPSBmMi5yZWFkKCkuc3BsaXRsaW5lcygpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICBmMS5jbG9zZSgpCisgICAgICAgICAgICBmMi5jbG9zZSgpCisgICAgICAgIHNlbGYuX2R1
bXBfbGluZXMob3V0LCBzeXMuc3Rkb3V0KQorICAgICAgICBzZWxmLl9kdW1wX2xpbmVzKGVyciwg
c3lzLnN0ZGVycikKKyAgICAgICAgcmV0dXJuIFJ1blJlc3VsdChyZXQsIG91dCwgZXJyLCB0aW1l
LnRpbWUoKSAtIG5vdykKKworICAgIGRlZiBfZHVtcF9saW5lcyhzZWxmLCBsaW5lcywgZnApOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAg
ICAgICBwcmludChsaW5lLCBmaWxlPWZwKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVy
cm9yOgorICAgICAgICAgICAgcHJpbnQoImNvdWxkbid0IHByaW50IHRvICVzIGJlY2F1c2Ugb2Yg
ZW5jb2RpbmciICUgKGZwLCkpCisKKyAgICBkZWYgX2dldHB5dGVzdGFyZ3Moc2VsZik6CisgICAg
ICAgICMgd2UgY2Fubm90IHVzZSAiKHN5cy5leGVjdXRhYmxlLHNjcmlwdCkiCisgICAgICAgICMg
YmVjYXVzZSBvbiB3aW5kb3dzIHRoZSBzY3JpcHQgaXMgZS5nLiBhIHB5dGVzdC5leGUKKyAgICAg
ICAgcmV0dXJuIChzeXMuZXhlY3V0YWJsZSwgUFlURVNUX0ZVTExQQVRIKSAjIG5vcWEKKworICAg
IGRlZiBydW5weXRob24oc2VsZiwgc2NyaXB0KToKKyAgICAgICAgIiIiUnVuIGEgcHl0aG9uIHNj
cmlwdCB1c2luZyBzeXMuZXhlY3V0YWJsZSBhcyBpbnRlcnByZXRlci4KKworICAgICAgICBSZXR1
cm5zIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu
IHNlbGYucnVuKHN5cy5leGVjdXRhYmxlLCBzY3JpcHQpCisKKyAgICBkZWYgcnVucHl0aG9uX2Mo
c2VsZiwgY29tbWFuZCk6CisgICAgICAgICIiIlJ1biBweXRob24gLWMgImNvbW1hbmQiLCByZXR1
cm4gYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuIiIiCisgICAgICAgIHJldHVybiBzZWxmLnJ1bihz
eXMuZXhlY3V0YWJsZSwgIi1jIiwgY29tbWFuZCkKKworICAgIGRlZiBydW5weXRlc3Rfc3VicHJv
Y2VzcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJSdW4gcHl0ZXN0IGFzIGEg
c3VicHJvY2VzcyB3aXRoIGdpdmVuIGFyZ3VtZW50cy4KKworICAgICAgICBBbnkgcGx1Z2lucyBh
ZGRlZCB0byB0aGUgOnB5OmF0dHI6YHBsdWdpbnNgIGxpc3Qgd2lsbCBhZGRlZAorICAgICAgICB1
c2luZyB0aGUgYGAtcGBgIGNvbW1hbmQgbGluZSBvcHRpb24uICBBZGR0aW9uYWxseQorICAgICAg
ICBgYC0tYmFzZXRlbXBgYCBpcyB1c2VkIHB1dCBhbnkgdGVtcG9yYXJ5IGZpbGVzIGFuZCBkaXJl
Y3RvcmllcworICAgICAgICBpbiBhIG51bWJlcmVkIGRpcmVjdG9yeSBwcmVmaXhlZCB3aXRoICJy
dW5weXRlc3QtIiBzbyB0aGV5IGRvCisgICAgICAgIG5vdCBjb25mbGljdCB3aXRoIHRoZSBub3Jt
YWwgbnVtYmVyZCBweXRlc3QgbG9jYXRpb24gZm9yCisgICAgICAgIHRlbXBvcmFyeSBmaWxlcyBh
bmQgZGlyZWN0b3JpZXMuCisKKyAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0
YC4KKworICAgICAgICAiIiIKKyAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJl
ZF9kaXIocHJlZml4PSJydW5weXRlc3QtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga2VlcD1Ob25lLCByb290ZGlyPXNlbGYudG1wZGlyKQorICAgICAgICBh
cmdzID0gKCctLWJhc2V0ZW1wPSVzJyAlIHAsICkgKyBhcmdzCisgICAgICAgICMgZm9yIHggaW4g
YXJnczoKKyAgICAgICAgIyAgICBpZiAnLS1jb25mY3V0ZGlyJyBpbiBzdHIoeCk6CisgICAgICAg
ICMgICAgICAgIGJyZWFrCisgICAgICAgICMgZWxzZToKKyAgICAgICAgIyAgICBwYXNzCisgICAg
ICAgICMgICAgYXJncyA9ICgnLS1jb25mY3V0ZGlyPS4nLCkgKyBhcmdzCisgICAgICAgIHBsdWdp
bnMgPSBbeCBmb3IgeCBpbiBzZWxmLnBsdWdpbnMgaWYgaXNpbnN0YW5jZSh4LCBzdHIpXQorICAg
ICAgICBpZiBwbHVnaW5zOgorICAgICAgICAgICAgYXJncyA9ICgnLXAnLCBwbHVnaW5zWzBdKSAr
IGFyZ3MKKyAgICAgICAgYXJncyA9IHNlbGYuX2dldHB5dGVzdGFyZ3MoKSArIGFyZ3MKKyAgICAg
ICAgcmV0dXJuIHNlbGYucnVuKCphcmdzKQorCisgICAgZGVmIHNwYXduX3B5dGVzdChzZWxmLCBz
dHJpbmcsIGV4cGVjdF90aW1lb3V0PTEwLjApOgorICAgICAgICAiIiJSdW4gcHl0ZXN0IHVzaW5n
IHBleHBlY3QuCisKKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHRvIHVzZSB0aGUgcmlnaHQgcHl0
ZXN0IGFuZCBzZXRzIHVwIHRoZQorICAgICAgICB0ZW1wb3JhcnkgZGlyZWN0b3J5IGxvY2F0aW9u
cy4KKworICAgICAgICBUaGUgcGV4cGVjdCBjaGlsZCBpcyByZXR1cm5lZC4KKworICAgICAgICAi
IiIKKyAgICAgICAgYmFzZXRlbXAgPSBzZWxmLnRtcGRpci5ta2RpcigidGVtcC1wZXhwZWN0IikK
KyAgICAgICAgaW52b2tlID0gIiAiLmpvaW4obWFwKHN0ciwgc2VsZi5fZ2V0cHl0ZXN0YXJncygp
KSkKKyAgICAgICAgY21kID0gIiVzIC0tYmFzZXRlbXA9JXMgJXMiICUgKGludm9rZSwgYmFzZXRl
bXAsIHN0cmluZykKKyAgICAgICAgcmV0dXJuIHNlbGYuc3Bhd24oY21kLCBleHBlY3RfdGltZW91
dD1leHBlY3RfdGltZW91dCkKKworICAgIGRlZiBzcGF3bihzZWxmLCBjbWQsIGV4cGVjdF90aW1l
b3V0PTEwLjApOgorICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHVzaW5nIHBleHBlY3QuCisKKyAg
ICAgICAgVGhlIHBleHBlY3QgY2hpbGQgaXMgcmV0dXJuZWQuCisgICAgICAgICIiIgorICAgICAg
ICBwZXhwZWN0ID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGV4cGVjdCIsICIzLjAiKQorICAgICAg
ICBpZiBoYXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJykgYW5kICc2NCcgaW4gcGxhdGZv
cm0ubWFjaGluZSgpOgorICAgICAgICAgICAgcHl0ZXN0LnNraXAoInB5cHktNjQgYml0IG5vdCBz
dXBwb3J0ZWQiKQorICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgiZnJlZWJzZCIp
OgorICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJwZXhwZWN0IGRvZXMgbm90IHdvcmsgcmVsaWFi
bHkgb24gZnJlZWJzZCIpCisgICAgICAgIGxvZ2ZpbGUgPSBzZWxmLnRtcGRpci5qb2luKCJzcGF3
bi5vdXQiKS5vcGVuKCJ3YiIpCisgICAgICAgIGNoaWxkID0gcGV4cGVjdC5zcGF3bihjbWQsIGxv
Z2ZpbGU9bG9nZmlsZSkKKyAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihsb2dmaWxl
LmNsb3NlKQorICAgICAgICBjaGlsZC50aW1lb3V0ID0gZXhwZWN0X3RpbWVvdXQKKyAgICAgICAg
cmV0dXJuIGNoaWxkCisKKworZGVmIGdldGRlY29kZWQob3V0KToKKyAgICB0cnk6CisgICAgICAg
IHJldHVybiBvdXQuZGVjb2RlKCJ1dGYtOCIpCisgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJv
cjoKKyAgICAgICAgcmV0dXJuICJJTlRFUk5BTCBub3QtdXRmOC1kZWNvZGVhYmxlLCB0cnVuY2F0
ZWQgc3RyaW5nOlxuJXMiICUgKAorICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIob3V0KSwpCisK
KworY2xhc3MgTGluZUNvbXA6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxm
LnN0cmluZ2lvID0gcHkuaW8uVGV4dElPKCkKKworICAgIGRlZiBhc3NlcnRfY29udGFpbnNfbGlu
ZXMoc2VsZiwgbGluZXMyKToKKyAgICAgICAgIiIiIGFzc2VydCB0aGF0IGxpbmVzMiBhcmUgY29u
dGFpbmVkIChsaW5lYXJseSkgaW4gbGluZXMxLgorICAgICAgICAgICAgcmV0dXJuIGEgbGlzdCBv
ZiBleHRyYWxpbmVzIGZvdW5kLgorICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRl
X18gPSBUcnVlCisgICAgICAgIHZhbCA9IHNlbGYuc3RyaW5naW8uZ2V0dmFsdWUoKQorICAgICAg
ICBzZWxmLnN0cmluZ2lvLnRydW5jYXRlKDApCisgICAgICAgIHNlbGYuc3RyaW5naW8uc2Vlaygw
KQorICAgICAgICBsaW5lczEgPSB2YWwuc3BsaXQoIlxuIikKKyAgICAgICAgcmV0dXJuIExpbmVN
YXRjaGVyKGxpbmVzMSkuZm5tYXRjaF9saW5lcyhsaW5lczIpCisKKworY2xhc3MgTGluZU1hdGNo
ZXI6CisgICAgIiIiRmxleGlibGUgbWF0Y2hpbmcgb2YgdGV4dC4KKworICAgIFRoaXMgaXMgYSBj
b252ZW5pZW5jZSBjbGFzcyB0byB0ZXN0IGxhcmdlIHRleHRzIGxpa2UgdGhlIG91dHB1dCBvZgor
ICAgIGNvbW1hbmRzLgorCisgICAgVGhlIGNvbnN0cnVjdG9yIHRha2VzIGEgbGlzdCBvZiBsaW5l
cyB3aXRob3V0IHRoZWlyIHRyYWlsaW5nCisgICAgbmV3bGluZXMsIGkuZS4gYGB0ZXh0LnNwbGl0
bGluZXMoKWBgLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMpOgor
ICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKKyAgICAgICAgc2VsZi5fbG9nX291dHB1dCA9IFtd
CisKKyAgICBkZWYgc3RyKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGVudGlyZSBvcmln
aW5hbCB0ZXh0LiIiIgorICAgICAgICByZXR1cm4gIlxuIi5qb2luKHNlbGYubGluZXMpCisKKyAg
ICBkZWYgX2dldGxpbmVzKHNlbGYsIGxpbmVzMik6CisgICAgICAgIGlmIGlzaW5zdGFuY2UobGlu
ZXMyLCBzdHIpOgorICAgICAgICAgICAgbGluZXMyID0gU291cmNlKGxpbmVzMikKKyAgICAgICAg
aWYgaXNpbnN0YW5jZShsaW5lczIsIFNvdXJjZSk6CisgICAgICAgICAgICBsaW5lczIgPSBsaW5l
czIuc3RyaXAoKS5saW5lcworICAgICAgICByZXR1cm4gbGluZXMyCisKKyAgICBkZWYgZm5tYXRj
aF9saW5lc19yYW5kb20oc2VsZiwgbGluZXMyKToKKyAgICAgICAgIiIiQ2hlY2sgbGluZXMgZXhp
c3QgaW4gdGhlIG91dHB1dCB1c2luZyBgYGZubWF0Y2guZm5tYXRjaGBgLCBpbiBhbnkgb3JkZXIu
CisKKyAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBoYXZlIHRv
IG9jY3VyIGluIHRoZQorICAgICAgICBvdXRwdXQsIGluIGFueSBvcmRlci4KKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuX21hdGNoX2xpbmVzX3JhbmRvbShsaW5lczIsIGZubWF0Y2gpCisKKyAg
ICBkZWYgcmVfbWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMik6CisgICAgICAgICIiIkNo
ZWNrIGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQgdXNpbmcgYGByZS5tYXRjaGBgLCBpbiBhbnkg
b3JkZXIuCisKKyAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBo
YXZlIHRvIG9jY3VyIGluIHRoZQorICAgICAgICBvdXRwdXQsIGluIGFueSBvcmRlci4KKworICAg
ICAgICAiIiIKKyAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXNfcmFuZG9tKGxpbmVzMiwgbGFtYmRh
IG5hbWUsIHBhdDogcmUubWF0Y2gocGF0LCBuYW1lKSkKKworICAgIGRlZiBfbWF0Y2hfbGluZXNf
cmFuZG9tKHNlbGYsIGxpbmVzMiwgbWF0Y2hfZnVuYyk6CisgICAgICAgICIiIkNoZWNrIGxpbmVz
IGV4aXN0IGluIHRoZSBvdXRwdXQuCisKKyAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBv
ZiBsaW5lcyB3aGljaCBoYXZlIHRvIG9jY3VyIGluIHRoZQorICAgICAgICBvdXRwdXQsIGluIGFu
eSBvcmRlci4gIEVhY2ggbGluZSBjYW4gY29udGFpbiBnbG9iIHdoaWxkY2FyZHMuCisKKyAgICAg
ICAgIiIiCisgICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKKyAgICAgICAg
Zm9yIGxpbmUgaW4gbGluZXMyOgorICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5saW5lczoKKyAg
ICAgICAgICAgICAgICBpZiBsaW5lID09IHggb3IgbWF0Y2hfZnVuYyh4LCBsaW5lKToKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJtYXRjaGVkOiAiLCByZXByKGxpbmUpKQorICAgICAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9sb2coImxpbmUgJXIgbm90IGZvdW5kIGluIG91dHB1dCIgJSBsaW5lKQorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3Ioc2VsZi5fbG9nX3RleHQpCisKKyAgICBkZWYgZ2V0X2xp
bmVzX2FmdGVyKHNlbGYsIGZubGluZSk6CisgICAgICAgICIiIlJldHVybiBhbGwgbGluZXMgZm9s
bG93aW5nIHRoZSBnaXZlbiBsaW5lIGluIHRoZSB0ZXh0LgorCisgICAgICAgIFRoZSBnaXZlbiBs
aW5lIGNhbiBjb250YWluIGdsb2Igd2lsZGNhcmRzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9y
IGksIGxpbmUgaW4gZW51bWVyYXRlKHNlbGYubGluZXMpOgorICAgICAgICAgICAgaWYgZm5saW5l
ID09IGxpbmUgb3IgZm5tYXRjaChsaW5lLCBmbmxpbmUpOgorICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLmxpbmVzW2kgKyAxOl0KKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibGluZSAlciBu
b3QgZm91bmQgaW4gb3V0cHV0IiAlIGZubGluZSkKKworICAgIGRlZiBfbG9nKHNlbGYsICphcmdz
KToKKyAgICAgICAgc2VsZi5fbG9nX291dHB1dC5hcHBlbmQoJyAnLmpvaW4oKHN0cih4KSBmb3Ig
eCBpbiBhcmdzKSkpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgX2xvZ190ZXh0KHNlbGYpOgor
ICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuX2xvZ19vdXRwdXQpCisKKyAgICBkZWYgZm5t
YXRjaF9saW5lcyhzZWxmLCBsaW5lczIpOgorICAgICAgICAiIiJTZWFyY2ggY2FwdHVyZWQgdGV4
dCBmb3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGBmbm1hdGNoLmZubWF0Y2hgYC4KKworICAgICAg
ICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUgdG8gbWF0Y2ggYW5k
IGNhbgorICAgICAgICB1c2UgZ2xvYiB3aWxkY2FyZHMuICBJZiB0aGV5IGRvIG5vdCBtYXRjaCBh
IHB5dGVzdC5mYWlsKCkgaXMKKyAgICAgICAgY2FsbGVkLiAgVGhlIG1hdGNoZXMgYW5kIG5vbi1t
YXRjaGVzIGFyZSBhbHNvIHByaW50ZWQgb24KKyAgICAgICAgc3Rkb3V0LgorCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGZubWF0Y2gsICdmbm1hdGNoJykK
KworICAgIGRlZiByZV9tYXRjaF9saW5lcyhzZWxmLCBsaW5lczIpOgorICAgICAgICAiIiJTZWFy
Y2ggY2FwdHVyZWQgdGV4dCBmb3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGByZS5tYXRjaGBgLgor
CisgICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBt
YXRjaCB1c2luZyBgYHJlLm1hdGNoYGAuCisgICAgICAgIElmIHRoZXkgZG8gbm90IG1hdGNoIGEg
cHl0ZXN0LmZhaWwoKSBpcyBjYWxsZWQuCisKKyAgICAgICAgVGhlIG1hdGNoZXMgYW5kIG5vbi1t
YXRjaGVzIGFyZSBhbHNvIHByaW50ZWQgb24KKyAgICAgICAgc3Rkb3V0LgorICAgICAgICAiIiIK
KyAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXMobGluZXMyLCBsYW1iZGEgbmFtZSwgcGF0OiByZS5t
YXRjaChwYXQsIG5hbWUpLCAncmUubWF0Y2gnKQorCisgICAgZGVmIF9tYXRjaF9saW5lcyhzZWxm
LCBsaW5lczIsIG1hdGNoX2Z1bmMsIG1hdGNoX25pY2tuYW1lKToKKyAgICAgICAgIiIiVW5kZXJs
eWluZyBpbXBsZW1lbnRhdGlvbiBvZiBgYGZubWF0Y2hfbGluZXNgYCBhbmQgYGByZV9tYXRjaF9s
aW5lc2BgLgorCisgICAgICAgIDpwYXJhbSBsaXN0W3N0cl0gbGluZXMyOiBsaXN0IG9mIHN0cmlu
ZyBwYXR0ZXJucyB0byBtYXRjaC4gVGhlIGFjdHVhbCBmb3JtYXQgZGVwZW5kcyBvbgorICAgICAg
ICAgICAgYGBtYXRjaF9mdW5jYGAuCisgICAgICAgIDpwYXJhbSBtYXRjaF9mdW5jOiBhIGNhbGxh
YmxlIGBgbWF0Y2hfZnVuYyhsaW5lLCBwYXR0ZXJuKWBgIHdoZXJlIGxpbmUgaXMgdGhlIGNhcHR1
cmVkCisgICAgICAgICAgICBsaW5lIGZyb20gc3Rkb3V0L3N0ZGVyciBhbmQgcGF0dGVybiBpcyB0
aGUgbWF0Y2hpbmcgcGF0dGVybi4KKworICAgICAgICA6cGFyYW0gc3RyIG1hdGNoX25pY2tuYW1l
OiB0aGUgbmlja25hbWUgZm9yIHRoZSBtYXRjaCBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgbG9nZ2Vk
CisgICAgICAgICAgICB0byBzdGRvdXQgd2hlbiBhIG1hdGNoIG9jY3Vycy4KKyAgICAgICAgIiIi
CisgICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKKyAgICAgICAgbGluZXMx
ID0gc2VsZi5saW5lc1s6XQorICAgICAgICBuZXh0bGluZSA9IE5vbmUKKyAgICAgICAgZXh0cmFs
aW5lcyA9IFtdCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3Ig
bGluZSBpbiBsaW5lczI6CisgICAgICAgICAgICBub21hdGNocHJpbnRlZCA9IEZhbHNlCisgICAg
ICAgICAgICB3aGlsZSBsaW5lczE6CisgICAgICAgICAgICAgICAgbmV4dGxpbmUgPSBsaW5lczEu
cG9wKDApCisgICAgICAgICAgICAgICAgaWYgbGluZSA9PSBuZXh0bGluZToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fbG9nKCJleGFjdCBtYXRjaDoiLCByZXByKGxpbmUpKQorICAgICAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGVsaWYgbWF0Y2hfZnVuYyhuZXh0bGlu
ZSwgbGluZSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiJXM6IiAlIG1hdGNoX25p
Y2tuYW1lLCByZXByKGxpbmUpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coIiAgIHdp
dGg6IiwgcmVwcihuZXh0bGluZSkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IG5vbWF0Y2hwcmludGVk
OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJub21hdGNoOiIsIHJlcHIobGlu
ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBub21hdGNocHJpbnRlZCA9IFRydWUKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nKCIgICAgYW5kOiIsIHJlcHIobmV4dGxpbmUpKQorICAg
ICAgICAgICAgICAgIGV4dHJhbGluZXMuYXBwZW5kKG5leHRsaW5lKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2coInJlbWFpbnMgdW5tYXRjaGVkOiAlciIgJSAo
bGluZSwpKQorICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKHNlbGYuX2xvZ190ZXh0KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3B5dGhvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTAxNzFhOWU5YzkwOTA5ZGEzY2UyN2JhNTk2Mzhh
NWZjOWIxNjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24u
cHkKQEAgLTAsMCArMSwxMTc1IEBACisiIiIgUHl0aG9uIHRlc3QgZGlzY292ZXJ5LCBzZXR1cCBh
bmQgcnVuIG9mIHRlc3QgZnVuY3Rpb25zLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGZubWF0Y2gK
K2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBjb2xsZWN0aW9u
cworaW1wb3J0IHdhcm5pbmdzCitmcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKK2Zyb20gaXRl
cnRvb2xzIGltcG9ydCBjb3VudAorCisKK2ltcG9ydCBweQoraW1wb3J0IHNpeAorZnJvbSBfcHl0
ZXN0Lm1hcmsgaW1wb3J0IE1hcmtlckVycm9yCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBo
b29raW1wbAorCitpbXBvcnQgX3B5dGVzdAoraW1wb3J0IHBsdWdneQorZnJvbSBfcHl0ZXN0IGlt
cG9ydCBmaXh0dXJlcworZnJvbSBfcHl0ZXN0IGltcG9ydCBtYWluCitmcm9tIF9weXRlc3QgaW1w
b3J0IGRlcHJlY2F0ZWQKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0ICgKKyAgICBpc2NsYXNz
LCBpc2Z1bmN0aW9uLCBpc19nZW5lcmF0b3IsIGFzY2lpX2VzY2FwZWQsCisgICAgUkVHRVhfVFlQ
RSwgU1RSSU5HX1RZUEVTLCBOb25lVHlwZSwgTk9UU0VULAorICAgIGdldF9yZWFsX2Z1bmMsIGdl
dGZzbGluZW5vLCBzYWZlX2dldGF0dHIsCisgICAgc2FmZV9zdHIsIGdldGxvY2F0aW9uLCBlbnVt
LAorKQorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCitmcm9tIF9weXRlc3QubWFy
ayBpbXBvcnQgdHJhbnNmZXJfbWFya2VycworCitjdXRkaXIxID0gcHkucGF0aC5sb2NhbChwbHVn
Z3kuX19maWxlX18ucnN0cmlwKCJvYyIpKQorY3V0ZGlyMiA9IHB5LnBhdGgubG9jYWwoX3B5dGVz
dC5fX2ZpbGVfXykuZGlycGF0aCgpCitjdXRkaXIzID0gcHkucGF0aC5sb2NhbChweS5fX2ZpbGVf
XykuZGlycGF0aCgpCisKKworZGVmIGZpbHRlcl90cmFjZWJhY2soZW50cnkpOgorICAgICIiIlJl
dHVybiBUcnVlIGlmIGEgVHJhY2ViYWNrRW50cnkgaW5zdGFuY2Ugc2hvdWxkIGJlIHJlbW92ZWQg
ZnJvbSB0cmFjZWJhY2tzOgorICAgICogZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUgKG5vIGNv
ZGUgdG8gc2hvdyB1cCBmb3IgaXQpOworICAgICogaW50ZXJuYWwgdHJhY2ViYWNrIGZyb20gcHl0
ZXN0IG9yIGl0cyBpbnRlcm5hbCBsaWJyYXJpZXMsIHB5IGFuZCBwbHVnZ3kuCisgICAgIiIiCisg
ICAgIyBlbnRyeS5wYXRoIG1pZ2h0IHNvbWV0aW1lcyByZXR1cm4gYSBzdHIgb2JqZWN0IHdoZW4g
dGhlIGVudHJ5CisgICAgIyBwb2ludHMgdG8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUKKyAg
ICAjIHNlZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9pc3N1ZXMvNzEKKyAg
ICByYXdfZmlsZW5hbWUgPSBlbnRyeS5mcmFtZS5jb2RlLnJhdy5jb19maWxlbmFtZQorICAgIGlz
X2dlbmVyYXRlZCA9ICc8JyBpbiByYXdfZmlsZW5hbWUgYW5kICc+JyBpbiByYXdfZmlsZW5hbWUK
KyAgICBpZiBpc19nZW5lcmF0ZWQ6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgICMgZW50cnku
cGF0aCBtaWdodCBwb2ludCB0byBhbiBpbmV4aXN0aW5nIGZpbGUsIGluIHdoaWNoIGNhc2UgaXQg
d2lsbAorICAgICMgYWxzc28gcmV0dXJuIGEgc3RyIG9iamVjdC4gc2VlICMxMTMzCisgICAgcCA9
IHB5LnBhdGgubG9jYWwoZW50cnkucGF0aCkKKyAgICByZXR1cm4gcCAhPSBjdXRkaXIxIGFuZCBu
b3QgcC5yZWx0byhjdXRkaXIyKSBhbmQgbm90IHAucmVsdG8oY3V0ZGlyMykKKworCitkZWYgcHlv
YmpfcHJvcGVydHkobmFtZSk6CisgICAgZGVmIGdldChzZWxmKToKKyAgICAgICAgbm9kZSA9IHNl
bGYuZ2V0cGFyZW50KGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0JyksIG5hbWUpKQorICAgICAg
ICBpZiBub2RlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIG5vZGUub2JqCisgICAg
ZG9jID0gInB5dGhvbiAlcyBvYmplY3QgdGhpcyBub2RlIHdhcyBjb2xsZWN0ZWQgZnJvbSAoY2Fu
IGJlIE5vbmUpLiIgJSAoCisgICAgICAgICAgbmFtZS5sb3dlcigpLCkKKyAgICByZXR1cm4gcHJv
cGVydHkoZ2V0LCBOb25lLCBOb25lLCBkb2MpCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCisgICAgZ3JvdXAu
YWRkb3B0aW9uKCctLWZpeHR1cmVzJywgJy0tZnVuY2FyZ3MnLAorICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJzaG93Zml4dHVyZXMiLCBkZWZhdWx0PUZhbHNl
LAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGF2YWlsYWJsZSBmaXh0dXJlcywgc29y
dGVkIGJ5IHBsdWdpbiBhcHBlYXJhbmNlIikKKyAgICBncm91cC5hZGRvcHRpb24oCisgICAgICAg
ICctLWZpeHR1cmVzLXBlci10ZXN0JywKKyAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAg
ICAgICAgZGVzdD0ic2hvd19maXh0dXJlc19wZXJfdGVzdCIsCisgICAgICAgIGRlZmF1bHQ9RmFs
c2UsCisgICAgICAgIGhlbHA9InNob3cgZml4dHVyZXMgcGVyIHRlc3QiLAorICAgICkKKyAgICBw
YXJzZXIuYWRkaW5pKCJ1c2VmaXh0dXJlcyIsIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVtdLAorICAg
ICAgICAgICAgICAgICAgaGVscD0ibGlzdCBvZiBkZWZhdWx0IGZpeHR1cmVzIHRvIGJlIHVzZWQg
d2l0aCB0aGlzIHByb2plY3QiKQorICAgIHBhcnNlci5hZGRpbmkoInB5dGhvbl9maWxlcyIsIHR5
cGU9ImFyZ3MiLAorICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bJ3Rlc3RfKi5weScsICcqX3Rl
c3QucHknXSwKKyAgICAgICAgICAgICAgICAgIGhlbHA9Imdsb2Itc3R5bGUgZmlsZSBwYXR0ZXJu
cyBmb3IgUHl0aG9uIHRlc3QgbW9kdWxlIGRpc2NvdmVyeSIpCisgICAgcGFyc2VyLmFkZGluaSgi
cHl0aG9uX2NsYXNzZXMiLCB0eXBlPSJhcmdzIiwgZGVmYXVsdD1bIlRlc3QiLCBdLAorICAgICAg
ICAgICAgICAgICAgaGVscD0icHJlZml4ZXMgb3IgZ2xvYiBuYW1lcyBmb3IgUHl0aG9uIHRlc3Qg
Y2xhc3MgZGlzY292ZXJ5IikKKyAgICBwYXJzZXIuYWRkaW5pKCJweXRob25fZnVuY3Rpb25zIiwg
dHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJ0ZXN0IiwgXSwKKyAgICAgICAgICAgICAgICAgIGhlbHA9
InByZWZpeGVzIG9yIGdsb2IgbmFtZXMgZm9yIFB5dGhvbiB0ZXN0IGZ1bmN0aW9uIGFuZCAiCisg
ICAgICAgICAgICAgICAgICAibWV0aG9kIGRpc2NvdmVyeSIpCisKKyAgICBncm91cC5hZGRvcHRp
b24oIi0taW1wb3J0LW1vZGUiLCBkZWZhdWx0PSJwcmVwZW5kIiwKKyAgICAgICAgICAgICAgICAg
ICAgY2hvaWNlcz1bInByZXBlbmQiLCAiYXBwZW5kIl0sIGRlc3Q9ImltcG9ydG1vZGUiLAorICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJwcmVwZW5kL2FwcGVuZCB0byBzeXMucGF0aCB3aGVuIGlt
cG9ydGluZyB0ZXN0IG1vZHVsZXMsICIKKyAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQgaXMg
dG8gcHJlcGVuZC4iKQorCisKK2RlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6CisgICAg
aWYgY29uZmlnLm9wdGlvbi5zaG93Zml4dHVyZXM6CisgICAgICAgIHNob3dmaXh0dXJlcyhjb25m
aWcpCisgICAgICAgIHJldHVybiAwCisgICAgaWYgY29uZmlnLm9wdGlvbi5zaG93X2ZpeHR1cmVz
X3Blcl90ZXN0OgorICAgICAgICBzaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZykKKyAgICAg
ICAgcmV0dXJuIDAKKworCitkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAg
ICAjIHRob3NlIGFsdGVybmF0aXZlIHNwZWxsaW5ncyBhcmUgY29tbW9uIC0gcmFpc2UgYSBzcGVj
aWZpYyBlcnJvciB0byBhbGVydAorICAgICMgdGhlIHVzZXIKKyAgICBhbHRfc3BlbGxpbmdzID0g
WydwYXJhbWV0ZXJpemUnLCAncGFyYW1ldHJpc2UnLCAncGFyYW1ldGVyaXNlJ10KKyAgICBmb3Ig
YXR0ciBpbiBhbHRfc3BlbGxpbmdzOgorICAgICAgICBpZiBoYXNhdHRyKG1ldGFmdW5jLmZ1bmN0
aW9uLCBhdHRyKToKKyAgICAgICAgICAgIG1zZyA9ICJ7MH0gaGFzICd7MX0nLCBzcGVsbGluZyBz
aG91bGQgYmUgJ3BhcmFtZXRyaXplJyIKKyAgICAgICAgICAgIHJhaXNlIE1hcmtlckVycm9yKG1z
Zy5mb3JtYXQobWV0YWZ1bmMuZnVuY3Rpb24uX19uYW1lX18sIGF0dHIpKQorICAgIHRyeToKKyAg
ICAgICAgbWFya2VycyA9IG1ldGFmdW5jLmZ1bmN0aW9uLnBhcmFtZXRyaXplCisgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByZXR1cm4KKyAgICBmb3IgbWFya2VyIGluIG1hcmtl
cnM6CisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCptYXJrZXIuYXJncywgKiptYXJrZXIu
a3dhcmdzKQorCisKK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLmFk
ZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRlc3QgZnVuY3Rpb24gbXVs
dGlwbGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lcyBwYXNzaW5nIGluIGRp
ZmZlcmVudCBhcmd1bWVudHMgaW4gdHVybi4gYXJndmFsdWVzIGdlbmVyYWxseSAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMgaWYgYXJn
bmFtZXMgc3BlY2lmaWVzIG9ubHkgb25lIG5hbWUgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJvciBhIGxpc3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMg
bXVsdGlwbGUgbmFtZXMuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTog
QHBhcmFtZXRyaXplKCdhcmcxJywgWzEsMl0pIHdvdWxkIGxlYWQgdG8gdHdvIGNhbGxzIG9mIHRo
ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9u
LCBvbmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcxPTIuIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3BhcmFtZXRyaXpl
Lmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eGFtcGxlcy4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgIGNvbmZpZy5hZGRp
bml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXNl
Zml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMg
bmVlZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbCBvZiB0aGUgc3BlY2lm
aWVkIGZpeHR1cmVzLiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRtbCN1
c2VmaXh0dXJlcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKK0Bob29raW1w
bCh0cnlsYXN0PVRydWUpCitkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgorICAg
IHRlc3RmdW5jdGlvbiA9IHB5ZnVuY2l0ZW0ub2JqCisgICAgaWYgcHlmdW5jaXRlbS5faXN5aWVs
ZGVkZnVuY3Rpb24oKToKKyAgICAgICAgdGVzdGZ1bmN0aW9uKCpweWZ1bmNpdGVtLl9hcmdzKQor
ICAgIGVsc2U6CisgICAgICAgIGZ1bmNhcmdzID0gcHlmdW5jaXRlbS5mdW5jYXJncworICAgICAg
ICB0ZXN0YXJncyA9IHt9CisgICAgICAgIGZvciBhcmcgaW4gcHlmdW5jaXRlbS5fZml4dHVyZWlu
Zm8uYXJnbmFtZXM6CisgICAgICAgICAgICB0ZXN0YXJnc1thcmddID0gZnVuY2FyZ3NbYXJnXQor
ICAgICAgICB0ZXN0ZnVuY3Rpb24oKip0ZXN0YXJncykKKyAgICByZXR1cm4gVHJ1ZQorCisKK2Rl
ZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CisgICAgZXh0ID0gcGF0aC5leHQK
KyAgICBpZiBleHQgPT0gIi5weSI6CisgICAgICAgIGlmIG5vdCBwYXJlbnQuc2Vzc2lvbi5pc2lu
aXRwYXRoKHBhdGgpOgorICAgICAgICAgICAgZm9yIHBhdCBpbiBwYXJlbnQuY29uZmlnLmdldGlu
aSgncHl0aG9uX2ZpbGVzJyk6CisgICAgICAgICAgICAgICAgaWYgcGF0aC5mbm1hdGNoKHBhdCk6
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICBpaG9vayA9IHBhcmVudC5zZXNzaW9uLmdldGhvb2twcm94
eShwYXRoKQorICAgICAgICByZXR1cm4gaWhvb2sucHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxl
KHBhdGg9cGF0aCwgcGFyZW50PXBhcmVudCkKKworCitkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtl
bW9kdWxlKHBhdGgsIHBhcmVudCk6CisgICAgcmV0dXJuIE1vZHVsZShwYXRoLCBwYXJlbnQpCisK
KworQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtl
aXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CisgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgcmVz
ID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKKyAgICBpZiByZXMgaXMgbm90IE5vbmU6CisgICAgICAg
IHJldHVybgorICAgICMgbm90aGluZyB3YXMgY29sbGVjdGVkIGVsc2V3aGVyZSwgbGV0J3MgZG8g
aXQgaGVyZQorICAgIGlmIGlzY2xhc3Mob2JqKToKKyAgICAgICAgaWYgY29sbGVjdG9yLmlzdGVz
dGNsYXNzKG9iaiwgbmFtZSk6CisgICAgICAgICAgICBDbGFzcyA9IGNvbGxlY3Rvci5fZ2V0Y3Vz
dG9tY2xhc3MoIkNsYXNzIikKKyAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KENsYXNz
KG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpKQorICAgIGVsaWYgY29sbGVjdG9yLmlzdGVzdGZ1bmN0
aW9uKG9iaiwgbmFtZSk6CisgICAgICAgICMgbW9jayBzZWVtcyB0byBzdG9yZSB1bmJvdW5kIG1l
dGhvZHMgKGlzc3VlNDczKSwgbm9ybWFsaXplIGl0CisgICAgICAgIG9iaiA9IGdldGF0dHIob2Jq
LCAiX19mdW5jX18iLCBvYmopCisgICAgICAgICMgV2UgbmVlZCB0byB0cnkgYW5kIHVud3JhcCB0
aGUgZnVuY3Rpb24gaWYgaXQncyBhIGZ1bmN0b29scy5wYXJ0aWFsCisgICAgICAgICMgb3IgYSBm
dW50b29scy53cmFwcGVkLgorICAgICAgICAjIFdlIG11c24ndCBpZiBpdCdzIGJlZW4gd3JhcHBl
ZCB3aXRoIG1vY2sucGF0Y2ggKHB5dGhvbiAyIG9ubHkpCisgICAgICAgIGlmIG5vdCAoaXNmdW5j
dGlvbihvYmopIG9yIGlzZnVuY3Rpb24oZ2V0X3JlYWxfZnVuYyhvYmopKSk6CisgICAgICAgICAg
ICBjb2xsZWN0b3Iud2Fybihjb2RlPSJDMiIsIG1lc3NhZ2U9ImNhbm5vdCBjb2xsZWN0ICVyIGJl
Y2F1c2UgaXQgaXMgbm90IGEgZnVuY3Rpb24uIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
JSBuYW1lLCApCisgICAgICAgIGVsaWYgZ2V0YXR0cihvYmosICJfX3Rlc3RfXyIsIFRydWUpOgor
ICAgICAgICAgICAgaWYgaXNfZ2VuZXJhdG9yKG9iaik6CisgICAgICAgICAgICAgICAgcmVzID0g
R2VuZXJhdG9yKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJlcyA9IGxpc3QoY29sbGVjdG9yLl9nZW5mdW5jdGlvbnMobmFtZSwgb2Jq
KSkKKyAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KHJlcykKKworCitkZWYgcHl0ZXN0
X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2YWwsIGFyZ25hbWU9Tm9uZSk6CisgICAgcmV0
dXJuIE5vbmUKKworCitjbGFzcyBQeW9iakNvbnRleHQob2JqZWN0KToKKyAgICBtb2R1bGUgPSBw
eW9ial9wcm9wZXJ0eSgiTW9kdWxlIikKKyAgICBjbHMgPSBweW9ial9wcm9wZXJ0eSgiQ2xhc3Mi
KQorICAgIGluc3RhbmNlID0gcHlvYmpfcHJvcGVydHkoIkluc3RhbmNlIikKKworCitjbGFzcyBQ
eW9iak1peGluKFB5b2JqQ29udGV4dCk6CisgICAgZGVmIG9iaigpOgorICAgICAgICBkZWYgZmdl
dChzZWxmKToKKyAgICAgICAgICAgIG9iaiA9IGdldGF0dHIoc2VsZiwgJ19vYmonLCBOb25lKQor
ICAgICAgICAgICAgaWYgb2JqIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5fb2JqID0g
b2JqID0gc2VsZi5fZ2V0b2JqKCkKKyAgICAgICAgICAgIHJldHVybiBvYmoKKworICAgICAgICBk
ZWYgZnNldChzZWxmLCB2YWx1ZSk6CisgICAgICAgICAgICBzZWxmLl9vYmogPSB2YWx1ZQorCisg
ICAgICAgIHJldHVybiBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBOb25lLCAidW5kZXJseWluZyBweXRo
b24gb2JqZWN0IikKKworICAgIG9iaiA9IG9iaigpCisKKyAgICBkZWYgX2dldG9iaihzZWxmKToK
KyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2JqLCBzZWxmLm5hbWUpCisKKyAg
ICBkZWYgZ2V0bW9kcGF0aChzZWxmLCBzdG9wYXRtb2R1bGU9VHJ1ZSwgaW5jbHVkZW1vZHVsZT1G
YWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gcHl0aG9uIHBhdGggcmVsYXRpdmUgdG8gdGhlIGNv
bnRhaW5pbmcgbW9kdWxlLiAiIiIKKyAgICAgICAgY2hhaW4gPSBzZWxmLmxpc3RjaGFpbigpCisg
ICAgICAgIGNoYWluLnJldmVyc2UoKQorICAgICAgICBwYXJ0cyA9IFtdCisgICAgICAgIGZvciBu
b2RlIGluIGNoYWluOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBJbnN0YW5jZSk6
CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIG5hbWUgPSBub2RlLm5hbWUK
KyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgTW9kdWxlKToKKyAgICAgICAgICAgICAg
ICBuYW1lID0gb3MucGF0aC5zcGxpdGV4dChuYW1lKVswXQorICAgICAgICAgICAgICAgIGlmIHN0
b3BhdG1vZHVsZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaW5jbHVkZW1vZHVsZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChuYW1lKQorICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgcGFydHMuYXBwZW5kKG5hbWUpCisgICAgICAgIHBhcnRzLnJl
dmVyc2UoKQorICAgICAgICBzID0gIi4iLmpvaW4ocGFydHMpCisgICAgICAgIHJldHVybiBzLnJl
cGxhY2UoIi5bIiwgIlsiKQorCisgICAgZGVmIF9nZXRmc2xpbmVubyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIGdldGZzbGluZW5vKHNlbGYub2JqKQorCisgICAgZGVmIHJlcG9ydGluZm8oc2VsZik6
CisgICAgICAgICMgWFhYIGNhY2hpbmc/CisgICAgICAgIG9iaiA9IHNlbGYub2JqCisgICAgICAg
IGNvbXBhdF9jb19maXJzdGxpbmVubyA9IGdldGF0dHIob2JqLCAnY29tcGF0X2NvX2ZpcnN0bGlu
ZW5vJywgTm9uZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShjb21wYXRfY29fZmlyc3RsaW5lbm8s
IGludCk6CisgICAgICAgICAgICAjIG5vc2UgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgZnNw
YXRoID0gc3lzLm1vZHVsZXNbb2JqLl9fbW9kdWxlX19dLl9fZmlsZV9fCisgICAgICAgICAgICBp
ZiBmc3BhdGguZW5kc3dpdGgoIi5weWMiKToKKyAgICAgICAgICAgICAgICBmc3BhdGggPSBmc3Bh
dGhbOi0xXQorICAgICAgICAgICAgbGluZW5vID0gY29tcGF0X2NvX2ZpcnN0bGluZW5vCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKG9iaikK
KyAgICAgICAgbW9kcGF0aCA9IHNlbGYuZ2V0bW9kcGF0aCgpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKGxpbmVubywgaW50KQorICAgICAgICByZXR1cm4gZnNwYXRoLCBsaW5lbm8sIG1vZHBh
dGgKKworCitjbGFzcyBQeUNvbGxlY3RvcihQeW9iak1peGluLCBtYWluLkNvbGxlY3Rvcik6CisK
KyAgICBkZWYgZnVuY25hbWVmaWx0ZXIoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxm
Ll9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbigncHl0aG9uX2Z1bmN0aW9ucycsIG5hbWUp
CisKKyAgICBkZWYgaXNub3NldGVzdChzZWxmLCBvYmopOgorICAgICAgICAiIiIgTG9vayBmb3Ig
dGhlIF9fdGVzdF9fIGF0dHJpYnV0ZSwgd2hpY2ggaXMgYXBwbGllZCBieSB0aGUKKyAgICAgICAg
QG5vc2UudG9vbHMuaXN0ZXN0IGRlY29yYXRvcgorICAgICAgICAiIiIKKyAgICAgICAgIyBXZSBl
eHBsaWNpdGx5IGNoZWNrIGZvciAiaXMgVHJ1ZSIgaGVyZSB0byBub3QgbWlzdGFrZW5seSB0cmVh
dAorICAgICAgICAjIGNsYXNzZXMgd2l0aCBhIGN1c3RvbSBfX2dldGF0dHJfXyByZXR1cm5pbmcg
c29tZXRoaW5nIHRydXRoeSAobGlrZSBhCisgICAgICAgICMgZnVuY3Rpb24pIGFzIHRlc3QgY2xh
c3Nlcy4KKyAgICAgICAgcmV0dXJuIHNhZmVfZ2V0YXR0cihvYmosICdfX3Rlc3RfXycsIEZhbHNl
KSBpcyBUcnVlCisKKyAgICBkZWYgY2xhc3NuYW1lZmlsdGVyKHNlbGYsIG5hbWUpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRpb24oJ3B5dGhvbl9jbGFz
c2VzJywgbmFtZSkKKworICAgIGRlZiBpc3Rlc3RmdW5jdGlvbihzZWxmLCBvYmosIG5hbWUpOgor
ICAgICAgICBpZiBzZWxmLmZ1bmNuYW1lZmlsdGVyKG5hbWUpIG9yIHNlbGYuaXNub3NldGVzdChv
YmopOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHN0YXRpY21ldGhvZCk6CisgICAg
ICAgICAgICAgICAgIyBzdGF0aWMgbWV0aG9kcyBuZWVkIHRvIGJlIHVud3JhcHBlZAorICAgICAg
ICAgICAgICAgIG9iaiA9IHNhZmVfZ2V0YXR0cihvYmosICdfX2Z1bmNfXycsIEZhbHNlKQorICAg
ICAgICAgICAgICAgIGlmIG9iaiBpcyBGYWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBQeXRo
b24gMi42IHdyYXBzIGluIGEgZGlmZmVyZW50IHdheSB0aGF0IHdlIHdvbid0IHRyeSB0byBoYW5k
bGUKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gImNhbm5vdCBjb2xsZWN0IHN0YXRpYyBtZXRo
b2QgJXIgYmVjYXVzZSAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIml0IGlzIG5vdCBh
IGZ1bmN0aW9uIChhbHdheXMgdGhlIGNhc2UgaW4gUHl0aG9uIDIuNikiCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYud2FybigKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9IkMyIiwgbWVz
c2FnZT1tc2cgJSBuYW1lKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg
ICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAgICAgc2FmZV9nZXRhdHRyKG9iaiwgIl9fY2Fs
bF9fIiwgRmFsc2UpIGFuZCBmaXh0dXJlcy5nZXRmaXh0dXJlbWFya2VyKG9iaikgaXMgTm9uZQor
ICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBkZWYgaXN0ZXN0Y2xhc3Moc2VsZiwgb2JqLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuY2xhc3NuYW1lZmlsdGVyKG5hbWUpIG9yIHNlbGYuaXNub3NldGVzdChvYmopCisKKyAgICBk
ZWYgX21hdGNoZXNfcHJlZml4X29yX2dsb2Jfb3B0aW9uKHNlbGYsIG9wdGlvbl9uYW1lLCBuYW1l
KToKKyAgICAgICAgIiIiCisgICAgICAgIGNoZWNrcyBpZiB0aGUgZ2l2ZW4gbmFtZSBtYXRjaGVz
IHRoZSBwcmVmaXggb3IgZ2xvYi1wYXR0ZXJuIGRlZmluZWQKKyAgICAgICAgaW4gaW5pIGNvbmZp
Z3VyYXRpb24uCisgICAgICAgICIiIgorICAgICAgICBmb3Igb3B0aW9uIGluIHNlbGYuY29uZmln
LmdldGluaShvcHRpb25fbmFtZSk6CisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgob3B0
aW9uKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgIyBjaGVjayB0
aGF0IG5hbWUgbG9va3MgbGlrZSBhIGdsb2Itc3RyaW5nIGJlZm9yZSBjYWxsaW5nIGZubWF0Y2gK
KyAgICAgICAgICAgICMgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZCBmb3IgZXZlcnkgbmFtZSBpbiBl
YWNoIGNvbGxlY3RlZCBtb2R1bGUsCisgICAgICAgICAgICAjIGFuZCBmbm1hdGNoIGlzIHNvbWV3
aGF0IGV4cGVuc2l2ZSB0byBjYWxsCisgICAgICAgICAgICBlbGlmICgnKicgaW4gb3B0aW9uIG9y
ICc/JyBpbiBvcHRpb24gb3IgJ1snIGluIG9wdGlvbikgYW5kIFwKKyAgICAgICAgICAgICAgICAg
ICAgZm5tYXRjaC5mbm1hdGNoKG5hbWUsIG9wdGlvbik6CisgICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAg
ICAgICAgaWYgbm90IGdldGF0dHIoc2VsZi5vYmosICJfX3Rlc3RfXyIsIFRydWUpOgorICAgICAg
ICAgICAgcmV0dXJuIFtdCisKKyAgICAgICAgIyBOQi4gd2UgYXZvaWQgcmFuZG9tIGdldGF0dHJz
IGFuZCBwZWVrIGluIHRoZSBfX2RpY3RfXyBpbnN0ZWFkCisgICAgICAgICMgKFhYWCBvcmlnaW5h
bGx5IGludHJvZHVjZWQgZnJvbSBhIFB5UHkgbmVlZCwgc3RpbGwgdHJ1ZT8pCisgICAgICAgIGRp
Y3RzID0gW2dldGF0dHIoc2VsZi5vYmosICdfX2RpY3RfXycsIHt9KV0KKyAgICAgICAgZm9yIGJh
c2VjbHMgaW4gaW5zcGVjdC5nZXRtcm8oc2VsZi5vYmouX19jbGFzc19fKToKKyAgICAgICAgICAg
IGRpY3RzLmFwcGVuZChiYXNlY2xzLl9fZGljdF9fKQorICAgICAgICBzZWVuID0ge30KKyAgICAg
ICAgdmFsdWVzID0gW10KKyAgICAgICAgZm9yIGRpYyBpbiBkaWN0czoKKyAgICAgICAgICAgIGZv
ciBuYW1lLCBvYmogaW4gbGlzdChkaWMuaXRlbXMoKSk6CisgICAgICAgICAgICAgICAgaWYgbmFt
ZSBpbiBzZWVuOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAg
IHNlZW5bbmFtZV0gPSBUcnVlCisgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fbWFrZWl0ZW0o
bmFtZSwgb2JqKQorICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlcywg
bGlzdCk6CisgICAgICAgICAgICAgICAgICAgIHJlcyA9IFtyZXNdCisgICAgICAgICAgICAgICAg
dmFsdWVzLmV4dGVuZChyZXMpCisgICAgICAgIHZhbHVlcy5zb3J0KGtleT1sYW1iZGEgaXRlbTog
aXRlbS5yZXBvcnRpbmZvKClbOjJdKQorICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAgICBkZWYg
bWFrZWl0ZW0oc2VsZiwgbmFtZSwgb2JqKToKKyAgICAgICAgd2FybmluZ3Mud2FybihkZXByZWNh
dGVkLkNPTExFQ1RPUl9NQUtFSVRFTSwgc3RhY2tsZXZlbD0yKQorICAgICAgICBzZWxmLl9tYWtl
aXRlbShuYW1lLCBvYmopCisKKyAgICBkZWYgX21ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6Cisg
ICAgICAgICMgYXNzZXJ0IHNlbGYuaWhvb2suZnNwYXRoID09IHNlbGYuZnNwYXRoLCBzZWxmCisg
ICAgICAgIHJldHVybiBzZWxmLmlob29rLnB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oCisgICAg
ICAgICAgICBjb2xsZWN0b3I9c2VsZiwgbmFtZT1uYW1lLCBvYmo9b2JqKQorCisgICAgZGVmIF9n
ZW5mdW5jdGlvbnMoc2VsZiwgbmFtZSwgZnVuY29iaik6CisgICAgICAgIG1vZHVsZSA9IHNlbGYu
Z2V0cGFyZW50KE1vZHVsZSkub2JqCisgICAgICAgIGNsc2NvbCA9IHNlbGYuZ2V0cGFyZW50KENs
YXNzKQorICAgICAgICBjbHMgPSBjbHNjb2wgYW5kIGNsc2NvbC5vYmogb3IgTm9uZQorICAgICAg
ICB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmosIGNscywgbW9kdWxlKQorICAgICAgICBmbSA9IHNl
bGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKKyAgICAgICAgZml4dHVyZWluZm8gPSBmbS5nZXRm
aXh0dXJlaW5mbyhzZWxmLCBmdW5jb2JqLCBjbHMpCisgICAgICAgIG1ldGFmdW5jID0gTWV0YWZ1
bmMoZnVuY29iaiwgZml4dHVyZWluZm8sIHNlbGYuY29uZmlnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNscz1jbHMsIG1vZHVsZT1tb2R1bGUpCisgICAgICAgIG1ldGhvZHMgPSBbXQor
ICAgICAgICBpZiBoYXNhdHRyKG1vZHVsZSwgInB5dGVzdF9nZW5lcmF0ZV90ZXN0cyIpOgorICAg
ICAgICAgICAgbWV0aG9kcy5hcHBlbmQobW9kdWxlLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cykKKyAg
ICAgICAgaWYgaGFzYXR0cihjbHMsICJweXRlc3RfZ2VuZXJhdGVfdGVzdHMiKToKKyAgICAgICAg
ICAgIG1ldGhvZHMuYXBwZW5kKGNscygpLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cykKKyAgICAgICAg
aWYgbWV0aG9kczoKKyAgICAgICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2dlbmVyYXRlX3Rlc3Rz
LmNhbGxfZXh0cmEobWV0aG9kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGljdChtZXRhZnVuYz1tZXRhZnVuYykpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVu
Yz1tZXRhZnVuYykKKworICAgICAgICBGdW5jdGlvbiA9IHNlbGYuX2dldGN1c3RvbWNsYXNzKCJG
dW5jdGlvbiIpCisgICAgICAgIGlmIG5vdCBtZXRhZnVuYy5fY2FsbHM6CisgICAgICAgICAgICB5
aWVsZCBGdW5jdGlvbihuYW1lLCBwYXJlbnQ9c2VsZiwgZml4dHVyZWluZm89Zml4dHVyZWluZm8p
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGFkZCBmdW5jYXJncygpIGFzIGZpeHR1cmVk
ZWZzIHRvIGZpeHR1cmVpbmZvLmFyZzJmaXh0dXJlZGVmcworICAgICAgICAgICAgZml4dHVyZXMu
YWRkX2Z1bmNhcmdfcHNldWRvX2ZpeHR1cmVfZGVmKHNlbGYsIG1ldGFmdW5jLCBmbSkKKworICAg
ICAgICAgICAgZm9yIGNhbGxzcGVjIGluIG1ldGFmdW5jLl9jYWxsczoKKyAgICAgICAgICAgICAg
ICBzdWJuYW1lID0gIiVzWyVzXSIgJSAobmFtZSwgY2FsbHNwZWMuaWQpCisgICAgICAgICAgICAg
ICAgeWllbGQgRnVuY3Rpb24obmFtZT1zdWJuYW1lLCBwYXJlbnQ9c2VsZiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYWxsc3BlYz1jYWxsc3BlYywgY2FsbG9iaj1mdW5jb2JqLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVpbmZvPWZpeHR1cmVpbmZvLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzPXtjYWxsc3BlYy5pZDogVHJ1
ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxuYW1lPW5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKK2NsYXNzIE1vZHVsZShtYWluLkZp
bGUsIFB5Q29sbGVjdG9yKToKKyAgICAiIiIgQ29sbGVjdG9yIGZvciB0ZXN0IGNsYXNzZXMgYW5k
IGZ1bmN0aW9ucy4gIiIiCisKKyAgICBkZWYgX2dldG9iaihzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2ltcG9ydHRlc3Rtb2R1bGUoKQorCisgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAg
ICAgIHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIucGFyc2VmYWN0b3JpZXMoc2VsZikKKyAg
ICAgICAgcmV0dXJuIHN1cGVyKE1vZHVsZSwgc2VsZikuY29sbGVjdCgpCisKKyAgICBkZWYgX2lt
cG9ydHRlc3Rtb2R1bGUoc2VsZik6CisgICAgICAgICMgd2UgYXNzdW1lIHdlIGFyZSBvbmx5IGNh
bGxlZCBvbmNlIHBlciBtb2R1bGUKKyAgICAgICAgaW1wb3J0bW9kZSA9IHNlbGYuY29uZmlnLmdl
dG9wdGlvbigiLS1pbXBvcnQtbW9kZSIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1vZCA9
IHNlbGYuZnNwYXRoLnB5aW1wb3J0KGVuc3VyZXN5c3BhdGg9aW1wb3J0bW9kZSkKKyAgICAgICAg
ZXhjZXB0IFN5bnRheEVycm9yOgorICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3Io
CisgICAgICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkuZ2V0cmVwcihz
dHlsZT0ic2hvcnQiKSkKKyAgICAgICAgZXhjZXB0IHNlbGYuZnNwYXRoLkltcG9ydE1pc21hdGNo
RXJyb3I6CisgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgICAgIHJh
aXNlIHNlbGYuQ29sbGVjdEVycm9yKAorICAgICAgICAgICAgICAgICJpbXBvcnQgZmlsZSBtaXNt
YXRjaDpcbiIKKyAgICAgICAgICAgICAgICAiaW1wb3J0ZWQgbW9kdWxlICVyIGhhcyB0aGlzIF9f
ZmlsZV9fIGF0dHJpYnV0ZTpcbiIKKyAgICAgICAgICAgICAgICAiICAlc1xuIgorICAgICAgICAg
ICAgICAgICJ3aGljaCBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHRlc3QgZmlsZSB3ZSB3YW50IHRv
IGNvbGxlY3Q6XG4iCisgICAgICAgICAgICAgICAgIiAgJXNcbiIKKyAgICAgICAgICAgICAgICAi
SElOVDogcmVtb3ZlIF9fcHljYWNoZV9fIC8gLnB5YyBmaWxlcyBhbmQvb3IgdXNlIGEgIgorICAg
ICAgICAgICAgICAgICJ1bmlxdWUgYmFzZW5hbWUgZm9yIHlvdXIgdGVzdCBmaWxlIG1vZHVsZXMi
CisgICAgICAgICAgICAgICAgJSBlLmFyZ3MKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0
IEltcG9ydEVycm9yOgorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0
IEV4Y2VwdGlvbkluZm8KKyAgICAgICAgICAgIGV4Y19pbmZvID0gRXhjZXB0aW9uSW5mbygpCisg
ICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oJ3ZlcmJvc2UnKSA8IDI6CisgICAg
ICAgICAgICAgICAgZXhjX2luZm8udHJhY2ViYWNrID0gZXhjX2luZm8udHJhY2ViYWNrLmZpbHRl
cihmaWx0ZXJfdHJhY2ViYWNrKQorICAgICAgICAgICAgZXhjX3JlcHIgPSBleGNfaW5mby5nZXRy
ZXByKHN0eWxlPSdzaG9ydCcpIGlmIGV4Y19pbmZvLnRyYWNlYmFjayBlbHNlIGV4Y19pbmZvLmV4
Y29ubHkoKQorICAgICAgICAgICAgZm9ybWF0dGVkX3RiID0gc2FmZV9zdHIoZXhjX3JlcHIpCisg
ICAgICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKKyAgICAgICAgICAgICAgICAiSW1w
b3J0RXJyb3Igd2hpbGUgaW1wb3J0aW5nIHRlc3QgbW9kdWxlICd7ZnNwYXRofScuXG4iCisgICAg
ICAgICAgICAgICAgIkhpbnQ6IG1ha2Ugc3VyZSB5b3VyIHRlc3QgbW9kdWxlcy9wYWNrYWdlcyBo
YXZlIHZhbGlkIFB5dGhvbiBuYW1lcy5cbiIKKyAgICAgICAgICAgICAgICAiVHJhY2ViYWNrOlxu
IgorICAgICAgICAgICAgICAgICJ7dHJhY2ViYWNrfSIuZm9ybWF0KGZzcGF0aD1zZWxmLmZzcGF0
aCwgdHJhY2ViYWNrPWZvcm1hdHRlZF90YikKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0
IF9weXRlc3QucnVubmVyLlNraXBwZWQgYXMgZToKKyAgICAgICAgICAgIGlmIGUuYWxsb3dfbW9k
dWxlX2xldmVsOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICByYWlzZSBzZWxm
LkNvbGxlY3RFcnJvcigKKyAgICAgICAgICAgICAgICAiVXNpbmcgcHl0ZXN0LnNraXAgb3V0c2lk
ZSBvZiBhIHRlc3QgaXMgbm90IGFsbG93ZWQuICIKKyAgICAgICAgICAgICAgICAiVG8gZGVjb3Jh
dGUgYSB0ZXN0IGZ1bmN0aW9uLCB1c2UgdGhlIEBweXRlc3QubWFyay5za2lwICIKKyAgICAgICAg
ICAgICAgICAib3IgQHB5dGVzdC5tYXJrLnNraXBpZiBkZWNvcmF0b3JzIGluc3RlYWQsIGFuZCB0
byBza2lwIGEgIgorICAgICAgICAgICAgICAgICJtb2R1bGUgdXNlIGBweXRlc3RtYXJrID0gcHl0
ZXN0Lm1hcmsue3NraXAsc2tpcGlmfS4iCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYuY29u
ZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfbW9kdWxlKG1vZCkKKyAgICAgICAgcmV0dXJuIG1v
ZAorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X3h1
bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAic2V0VXBNb2R1bGUiKQorICAgICAgICBpZiBz
ZXR1cF9tb2R1bGUgaXMgTm9uZToKKyAgICAgICAgICAgIHNldHVwX21vZHVsZSA9IF9nZXRfeHVu
aXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICJzZXR1cF9tb2R1bGUiKQorICAgICAgICBpZiBz
ZXR1cF9tb2R1bGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZXR1cF9tb2R1bGUoKQorCisg
ICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5v
YmosICd0ZWFyRG93bk1vZHVsZScpCisgICAgICAgIGlmIHRlYXJkb3duX21vZHVsZSBpcyBOb25l
OgorICAgICAgICAgICAgdGVhcmRvd25fbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93
bihzZWxmLm9iaiwgJ3RlYXJkb3duX21vZHVsZScpCisgICAgICAgIGlmIHRlYXJkb3duX21vZHVs
ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duX21v
ZHVsZSkKKworCitkZWYgX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihob2xkZXIsIGF0dHJfbmFt
ZSwgcGFyYW1fb2JqPU5vbmUpOgorICAgICIiIgorICAgIFJldHVybiBhIGNhbGxhYmxlIHRvIHBl
cmZvcm0geHVuaXQtc3R5bGUgc2V0dXAgb3IgdGVhcmRvd24gaWYKKyAgICB0aGUgZnVuY3Rpb24g
ZXhpc3RzIGluIHRoZSBgYGhvbGRlcmBgIG9iamVjdC4KKyAgICBUaGUgYGBwYXJhbV9vYmpgYCBw
YXJhbWV0ZXIgaXMgdGhlIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgZnVu
Y3Rpb24KKyAgICB3aGVuIHRoZSBjYWxsYWJsZSBpcyBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMs
IGRlZmF1bHRzIHRvIHRoZSBgYGhvbGRlcmBgIG9iamVjdC4KKyAgICBSZXR1cm4gYGBOb25lYGAg
aWYgYSBzdWl0YWJsZSBjYWxsYWJsZSBpcyBub3QgZm91bmQuCisgICAgIiIiCisgICAgcGFyYW1f
b2JqID0gcGFyYW1fb2JqIGlmIHBhcmFtX29iaiBpcyBub3QgTm9uZSBlbHNlIGhvbGRlcgorICAg
IHJlc3VsdCA9IF9nZXRfeHVuaXRfZnVuYyhob2xkZXIsIGF0dHJfbmFtZSkKKyAgICBpZiByZXN1
bHQgaXMgbm90IE5vbmU6CisgICAgICAgIGFyZ19jb3VudCA9IHJlc3VsdC5fX2NvZGVfXy5jb19h
cmdjb3VudAorICAgICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHJlc3VsdCk6CisgICAgICAgICAg
ICBhcmdfY291bnQgLT0gMQorICAgICAgICBpZiBhcmdfY291bnQ6CisgICAgICAgICAgICByZXR1
cm4gbGFtYmRhOiByZXN1bHQocGFyYW1fb2JqKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdAorCisKK2RlZiBfZ2V0X3h1bml0X2Z1bmMob2JqLCBuYW1lKToKKyAgICAi
IiJSZXR1cm4gdGhlIGF0dHJpYnV0ZSBmcm9tIHRoZSBnaXZlbiBvYmplY3QgdG8gYmUgdXNlZCBh
cyBhIHNldHVwL3RlYXJkb3duCisgICAgeHVuaXQtc3R5bGUgZnVuY3Rpb24sIGJ1dCBvbmx5IGlm
IG5vdCBtYXJrZWQgYXMgYSBmaXh0dXJlIHRvCisgICAgYXZvaWQgY2FsbGluZyBpdCB0d2ljZS4K
KyAgICAiIiIKKyAgICBtZXRoID0gZ2V0YXR0cihvYmosIG5hbWUsIE5vbmUpCisgICAgaWYgZml4
dHVyZXMuZ2V0Zml4dHVyZW1hcmtlcihtZXRoKSBpcyBOb25lOgorICAgICAgICByZXR1cm4gbWV0
aAorCisKK2NsYXNzIENsYXNzKFB5Q29sbGVjdG9yKToKKyAgICAiIiIgQ29sbGVjdG9yIGZvciB0
ZXN0IG1ldGhvZHMuICIiIgorCisgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgIGlmIG5v
dCBzYWZlX2dldGF0dHIoc2VsZi5vYmosICJfX3Rlc3RfXyIsIFRydWUpOgorICAgICAgICAgICAg
cmV0dXJuIFtdCisgICAgICAgIGlmIGhhc2luaXQoc2VsZi5vYmopOgorICAgICAgICAgICAgc2Vs
Zi53YXJuKCJDMSIsICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFz
IGEgIgorICAgICAgICAgICAgICAgICAgICAgICJfX2luaXRfXyBjb25zdHJ1Y3RvciIgJSBzZWxm
Lm9iai5fX25hbWVfXykKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBlbGlmIGhhc25l
dyhzZWxmLm9iaik6CisgICAgICAgICAgICBzZWxmLndhcm4oIkMxIiwgImNhbm5vdCBjb2xsZWN0
IHRlc3QgY2xhc3MgJXIgYmVjYXVzZSBpdCBoYXMgYSAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIl9fbmV3X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18pCisgICAgICAg
ICAgICByZXR1cm4gW10KKyAgICAgICAgcmV0dXJuIFtzZWxmLl9nZXRjdXN0b21jbGFzcygiSW5z
dGFuY2UiKShuYW1lPSIoKSIsIHBhcmVudD1zZWxmKV0KKworICAgIGRlZiBzZXR1cChzZWxmKToK
KyAgICAgICAgc2V0dXBfY2xhc3MgPSBfZ2V0X3h1bml0X2Z1bmMoc2VsZi5vYmosICdzZXR1cF9j
bGFzcycpCisgICAgICAgIGlmIHNldHVwX2NsYXNzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2V0dXBfY2xhc3MgPSBnZXRhdHRyKHNldHVwX2NsYXNzLCAnaW1fZnVuYycsIHNldHVwX2NsYXNz
KQorICAgICAgICAgICAgc2V0dXBfY2xhc3MgPSBnZXRhdHRyKHNldHVwX2NsYXNzLCAnX19mdW5j
X18nLCBzZXR1cF9jbGFzcykKKyAgICAgICAgICAgIHNldHVwX2NsYXNzKHNlbGYub2JqKQorCisg
ICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoc2VsZi5vYmosICd0ZWFyZG93bl9jbGFzcycsIE5v
bmUpCisgICAgICAgIGlmIGZpbl9jbGFzcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZpbl9j
bGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAnaW1fZnVuYycsIGZpbl9jbGFzcykKKyAgICAgICAg
ICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAnX19mdW5jX18nLCBmaW5fY2xhc3Mp
CisgICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcihsYW1iZGE6IGZpbl9jbGFzcyhzZWxmLm9i
aikpCisKKworY2xhc3MgSW5zdGFuY2UoUHlDb2xsZWN0b3IpOgorICAgIGRlZiBfZ2V0b2JqKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQub2JqKCkKKworICAgIGRlZiBjb2xsZWN0
KHNlbGYpOgorICAgICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFjdG9y
aWVzKHNlbGYpCisgICAgICAgIHJldHVybiBzdXBlcihJbnN0YW5jZSwgc2VsZikuY29sbGVjdCgp
CisKKyAgICBkZWYgbmV3aW5zdGFuY2Uoc2VsZik6CisgICAgICAgIHNlbGYub2JqID0gc2VsZi5f
Z2V0b2JqKCkKKyAgICAgICAgcmV0dXJuIHNlbGYub2JqCisKKworY2xhc3MgRnVuY3Rpb25NaXhp
bihQeW9iak1peGluKToKKyAgICAiIiIgbWl4aW4gZm9yIHRoZSBjb2RlIGNvbW1vbiB0byBGdW5j
dGlvbiBhbmQgR2VuZXJhdG9yLgorICAgICIiIgorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAg
ICAgICAiIiIgcGVyZm9ybSBzZXR1cCBmb3IgdGhpcyB0ZXN0IGZ1bmN0aW9uLiAiIiIKKyAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAnX3ByZXNlcnZlZHBhcmVudCcpOgorICAgICAgICAgICAgb2Jq
ID0gc2VsZi5fcHJlc2VydmVkcGFyZW50CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzZWxmLnBh
cmVudCwgSW5zdGFuY2UpOgorICAgICAgICAgICAgb2JqID0gc2VsZi5wYXJlbnQubmV3aW5zdGFu
Y2UoKQorICAgICAgICAgICAgc2VsZi5vYmogPSBzZWxmLl9nZXRvYmooKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgb2JqID0gc2VsZi5wYXJlbnQub2JqCisgICAgICAgIGlmIGluc3BlY3Qu
aXNtZXRob2Qoc2VsZi5vYmopOgorICAgICAgICAgICAgc2V0dXBfbmFtZSA9ICdzZXR1cF9tZXRo
b2QnCisgICAgICAgICAgICB0ZWFyZG93bl9uYW1lID0gJ3RlYXJkb3duX21ldGhvZCcKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNldHVwX25hbWUgPSAnc2V0dXBfZnVuY3Rpb24nCisgICAg
ICAgICAgICB0ZWFyZG93bl9uYW1lID0gJ3RlYXJkb3duX2Z1bmN0aW9uJworICAgICAgICBzZXR1
cF9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24ob2JqLCBzZXR1cF9u
YW1lLCBwYXJhbV9vYmo9c2VsZi5vYmopCisgICAgICAgIGlmIHNldHVwX2Z1bmNfb3JfbWV0aG9k
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2QoKQorICAgICAg
ICB0ZWFyZG93bl9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24ob2Jq
LCB0ZWFyZG93bl9uYW1lLCBwYXJhbV9vYmo9c2VsZi5vYmopCisgICAgICAgIGlmIHRlYXJkb3du
X2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6
ZXIodGVhcmRvd25fZnVuY19vcl9tZXRob2QpCisKKyAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNl
bGYsIGV4Y2luZm8pOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfb2JqJykgYW5kIG5vdCBz
ZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgorICAgICAgICAgICAgY29kZSA9IF9weXRlc3Qu
X2NvZGUuQ29kZShnZXRfcmVhbF9mdW5jKHNlbGYub2JqKSkKKyAgICAgICAgICAgIHBhdGgsIGZp
cnN0bGluZW5vID0gY29kZS5wYXRoLCBjb2RlLmZpcnN0bGluZW5vCisgICAgICAgICAgICB0cmFj
ZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjaworICAgICAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNl
YmFjay5jdXQocGF0aD1wYXRoLCBmaXJzdGxpbmVubz1maXJzdGxpbmVubykKKyAgICAgICAgICAg
IGlmIG50cmFjZWJhY2sgPT0gdHJhY2ViYWNrOgorICAgICAgICAgICAgICAgIG50cmFjZWJhY2sg
PSBudHJhY2ViYWNrLmN1dChwYXRoPXBhdGgpCisgICAgICAgICAgICAgICAgaWYgbnRyYWNlYmFj
ayA9PSB0cmFjZWJhY2s6CisgICAgICAgICAgICAgICAgICAgICMgbnRyYWNlYmFjayA9IG50cmFj
ZWJhY2suY3V0KGV4Y2x1ZGVwYXRoPWN1dGRpcjIpCisgICAgICAgICAgICAgICAgICAgIG50cmFj
ZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2ViYWNrKQorICAgICAgICAgICAg
ICAgICAgICBpZiBub3QgbnRyYWNlYmFjazoKKyAgICAgICAgICAgICAgICAgICAgICAgIG50cmFj
ZWJhY2sgPSB0cmFjZWJhY2sKKworICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBudHJh
Y2ViYWNrLmZpbHRlcigpCisgICAgICAgICAgICAjIGlzc3VlMzY0OiBtYXJrIGFsbCBidXQgZmly
c3QgYW5kIGxhc3QgZnJhbWVzIHRvCisgICAgICAgICAgICAjIG9ubHkgc2hvdyBhIHNpbmdsZS1s
aW5lIG1lc3NhZ2UgZm9yIGVhY2ggZnJhbWUKKyAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9w
dGlvbi50YnN0eWxlID09ICJhdXRvIjoKKyAgICAgICAgICAgICAgICBpZiBsZW4oZXhjaW5mby50
cmFjZWJhY2spID4gMjoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGVudHJ5IGluIGV4Y2luZm8u
dHJhY2ViYWNrWzE6LTFdOgorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuc2V0X3JlcHJf
c3R5bGUoJ3Nob3J0JykKKworICAgIGRlZiBfcmVwcl9mYWlsdXJlX3B5KHNlbGYsIGV4Y2luZm8s
IHN0eWxlPSJsb25nIik6CisgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShmYWlsLkV4
Y2VwdGlvbik6CisgICAgICAgICAgICBpZiBub3QgZXhjaW5mby52YWx1ZS5weXRyYWNlOgorICAg
ICAgICAgICAgICAgIHJldHVybiBweS5fYnVpbHRpbi5fdG90ZXh0KGV4Y2luZm8udmFsdWUpCisg
ICAgICAgIHJldHVybiBzdXBlcihGdW5jdGlvbk1peGluLCBzZWxmKS5fcmVwcl9mYWlsdXJlX3B5
KGV4Y2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0eWxlPXN0eWxlKQorCisgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBl
eGNpbmZvLCBvdXRlcnI9Tm9uZSk6CisgICAgICAgIGFzc2VydCBvdXRlcnIgaXMgTm9uZSwgIlhY
WCBvdXRlcnIgdXNhZ2UgaXMgZGVwcmVjYXRlZCIKKyAgICAgICAgc3R5bGUgPSBzZWxmLmNvbmZp
Zy5vcHRpb24udGJzdHlsZQorICAgICAgICBpZiBzdHlsZSA9PSAiYXV0byI6CisgICAgICAgICAg
ICBzdHlsZSA9ICJsb25nIgorICAgICAgICByZXR1cm4gc2VsZi5fcmVwcl9mYWlsdXJlX3B5KGV4
Y2luZm8sIHN0eWxlPXN0eWxlKQorCisKK2NsYXNzIEdlbmVyYXRvcihGdW5jdGlvbk1peGluLCBQ
eUNvbGxlY3Rvcik6CisgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgICMgdGVzdCBnZW5l
cmF0b3JzIGFyZSBzZWVuIGFzIGNvbGxlY3RvcnMgYnV0IHRoZXkgYWxzbworICAgICAgICAjIGlu
dm9rZSBzZXR1cC90ZWFyZG93biBvbiBwb3B1bGFyIHJlcXVlc3QKKyAgICAgICAgIyAoaW5kdWNl
ZCBieSB0aGUgY29tbW9uICJ0ZXN0XyoiIG5hbWluZyBzaGFyZWQgd2l0aCBub3JtYWwgdGVzdHMp
CisgICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAorICAgICAgICBzZWxmLnNl
c3Npb24uX3NldHVwc3RhdGUucHJlcGFyZShzZWxmKQorICAgICAgICAjIHNlZSBGdW5jdGlvbk1p
eGluLnNldHVwIGFuZCB0ZXN0X3NldHVwc3RhdGVfaXNfcHJlc2VydmVkXzEzNAorICAgICAgICBz
ZWxmLl9wcmVzZXJ2ZWRwYXJlbnQgPSBzZWxmLnBhcmVudC5vYmoKKyAgICAgICAgdmFsdWVzID0g
W10KKyAgICAgICAgc2VlbiA9IHt9CisgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShzZWxm
Lm9iaigpKToKKyAgICAgICAgICAgIG5hbWUsIGNhbGwsIGFyZ3MgPSBzZWxmLmdldGNhbGxhcmdz
KHgpCisgICAgICAgICAgICBpZiBub3QgY2FsbGFibGUoY2FsbCk6CisgICAgICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCIlciB5aWVsZGVkIG5vbiBjYWxsYWJsZSB0ZXN0ICVyIiAlIChzZWxm
Lm9iaiwgY2FsbCwpKQorICAgICAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAg
ICAgIG5hbWUgPSAiWyVkXSIgJSBpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IG5hbWUgPSAiWyclcyddIiAlIG5hbWUKKyAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VlbjoKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIlciBnZW5lcmF0ZWQgdGVzdHMgd2l0aCBu
b24tdW5pcXVlIG5hbWUgJXIiICUgKHNlbGYsIG5hbWUpKQorICAgICAgICAgICAgc2VlbltuYW1l
XSA9IFRydWUKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2VsZi5GdW5jdGlvbihuYW1lLCBz
ZWxmLCBhcmdzPWFyZ3MsIGNhbGxvYmo9Y2FsbCkpCisgICAgICAgIHNlbGYud2FybignQzEnLCBk
ZXByZWNhdGVkLllJRUxEX1RFU1RTKQorICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAgICBkZWYg
Z2V0Y2FsbGFyZ3Moc2VsZiwgb2JqKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCAo
dHVwbGUsIGxpc3QpKToKKyAgICAgICAgICAgIG9iaiA9IChvYmosKQorICAgICAgICAjIGV4cGxp
Y2l0IG5hbWluZworICAgICAgICBpZiBpc2luc3RhbmNlKG9ialswXSwgc2l4LnN0cmluZ190eXBl
cyk6CisgICAgICAgICAgICBuYW1lID0gb2JqWzBdCisgICAgICAgICAgICBvYmogPSBvYmpbMTpd
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gTm9uZQorICAgICAgICBjYWxsLCBh
cmdzID0gb2JqWzBdLCBvYmpbMTpdCisgICAgICAgIHJldHVybiBuYW1lLCBjYWxsLCBhcmdzCisK
KworZGVmIGhhc2luaXQob2JqKToKKyAgICBpbml0ID0gZ2V0YXR0cihvYmosICdfX2luaXRfXycs
IE5vbmUpCisgICAgaWYgaW5pdDoKKyAgICAgICAgcmV0dXJuIGluaXQgIT0gb2JqZWN0Ll9faW5p
dF9fCisKKworZGVmIGhhc25ldyhvYmopOgorICAgIG5ldyA9IGdldGF0dHIob2JqLCAnX19uZXdf
XycsIE5vbmUpCisgICAgaWYgbmV3OgorICAgICAgICByZXR1cm4gbmV3ICE9IG9iamVjdC5fX25l
d19fCisKKworY2xhc3MgQ2FsbFNwZWMyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG1ldGFmdW5jKToKKyAgICAgICAgc2VsZi5tZXRhZnVuYyA9IG1ldGFmdW5jCisgICAgICAgIHNl
bGYuZnVuY2FyZ3MgPSB7fQorICAgICAgICBzZWxmLl9pZGxpc3QgPSBbXQorICAgICAgICBzZWxm
LnBhcmFtcyA9IHt9CisgICAgICAgIHNlbGYuX2dsb2JhbGlkID0gTk9UU0VUCisgICAgICAgIHNl
bGYuX2dsb2JhbGlkX2FyZ3MgPSBzZXQoKQorICAgICAgICBzZWxmLl9nbG9iYWxwYXJhbSA9IE5P
VFNFVAorICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW0gPSB7fSAgIyB1c2VkIGZvciBzb3J0aW5n
IHBhcmFtZXRyaXplZCByZXNvdXJjZXMKKyAgICAgICAgc2VsZi5tYXJrcyA9IFtdCisgICAgICAg
IHNlbGYuaW5kaWNlcyA9IHt9CisKKyAgICBkZWYgY29weShzZWxmLCBtZXRhZnVuYyk6CisgICAg
ICAgIGNzID0gQ2FsbFNwZWMyKHNlbGYubWV0YWZ1bmMpCisgICAgICAgIGNzLmZ1bmNhcmdzLnVw
ZGF0ZShzZWxmLmZ1bmNhcmdzKQorICAgICAgICBjcy5wYXJhbXMudXBkYXRlKHNlbGYucGFyYW1z
KQorICAgICAgICBjcy5tYXJrcy5leHRlbmQoc2VsZi5tYXJrcykKKyAgICAgICAgY3MuaW5kaWNl
cy51cGRhdGUoc2VsZi5pbmRpY2VzKQorICAgICAgICBjcy5fYXJnMnNjb3BlbnVtLnVwZGF0ZShz
ZWxmLl9hcmcyc2NvcGVudW0pCisgICAgICAgIGNzLl9pZGxpc3QgPSBsaXN0KHNlbGYuX2lkbGlz
dCkKKyAgICAgICAgY3MuX2dsb2JhbGlkID0gc2VsZi5fZ2xvYmFsaWQKKyAgICAgICAgY3MuX2ds
b2JhbGlkX2FyZ3MgPSBzZWxmLl9nbG9iYWxpZF9hcmdzCisgICAgICAgIGNzLl9nbG9iYWxwYXJh
bSA9IHNlbGYuX2dsb2JhbHBhcmFtCisgICAgICAgIHJldHVybiBjcworCisgICAgZGVmIF9jaGVj
a2FyZ25vdGNvbnRhaW5lZChzZWxmLCBhcmcpOgorICAgICAgICBpZiBhcmcgaW4gc2VsZi5wYXJh
bXMgb3IgYXJnIGluIHNlbGYuZnVuY2FyZ3M6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJkdXBsaWNhdGUgJXIiICUgKGFyZywpKQorCisgICAgZGVmIGdldHBhcmFtKHNlbGYsIG5hbWUp
OgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJhbXNbbmFtZV0KKyAg
ICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgaWYgc2VsZi5fZ2xvYmFscGFyYW0g
aXMgTk9UU0VUOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobmFtZSkKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9nbG9iYWxwYXJhbQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gIi0iLmpvaW4obWFwKHN0ciwgZmlsdGVyKE5vbmUs
IHNlbGYuX2lkbGlzdCkpKQorCisgICAgZGVmIHNldG11bHRpMihzZWxmLCB2YWx0eXBlcywgYXJn
bmFtZXMsIHZhbHNldCwgaWQsIG1hcmtzLCBzY29wZW51bSwKKyAgICAgICAgICAgICAgICAgIHBh
cmFtX2luZGV4KToKKyAgICAgICAgZm9yIGFyZywgdmFsIGluIHppcChhcmduYW1lcywgdmFsc2V0
KToKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrYXJnbm90Y29udGFpbmVkKGFyZykKKyAgICAgICAg
ICAgIHZhbHR5cGVfZm9yX2FyZyA9IHZhbHR5cGVzW2FyZ10KKyAgICAgICAgICAgIGdldGF0dHIo
c2VsZiwgdmFsdHlwZV9mb3JfYXJnKVthcmddID0gdmFsCisgICAgICAgICAgICBzZWxmLmluZGlj
ZXNbYXJnXSA9IHBhcmFtX2luZGV4CisgICAgICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW1bYXJn
XSA9IHNjb3BlbnVtCisgICAgICAgIHNlbGYuX2lkbGlzdC5hcHBlbmQoaWQpCisgICAgICAgIHNl
bGYubWFya3MuZXh0ZW5kKG1hcmtzKQorCisgICAgZGVmIHNldGFsbChzZWxmLCBmdW5jYXJncywg
aWQsIHBhcmFtKToKKyAgICAgICAgZm9yIHggaW4gZnVuY2FyZ3M6CisgICAgICAgICAgICBzZWxm
Ll9jaGVja2FyZ25vdGNvbnRhaW5lZCh4KQorICAgICAgICBzZWxmLmZ1bmNhcmdzLnVwZGF0ZShm
dW5jYXJncykKKyAgICAgICAgaWYgaWQgaXMgbm90IE5PVFNFVDoKKyAgICAgICAgICAgIHNlbGYu
X2lkbGlzdC5hcHBlbmQoaWQpCisgICAgICAgIGlmIHBhcmFtIGlzIG5vdCBOT1RTRVQ6CisgICAg
ICAgICAgICBhc3NlcnQgc2VsZi5fZ2xvYmFscGFyYW0gaXMgTk9UU0VUCisgICAgICAgICAgICBz
ZWxmLl9nbG9iYWxwYXJhbSA9IHBhcmFtCisgICAgICAgIGZvciBhcmcgaW4gZnVuY2FyZ3M6Cisg
ICAgICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW1bYXJnXSA9IGZpeHR1cmVzLnNjb3BlbnVtX2Z1
bmN0aW9uCisKKworY2xhc3MgTWV0YWZ1bmMoZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0
cik6CisgICAgIiIiCisgICAgTWV0YWZ1bmMgb2JqZWN0cyBhcmUgcGFzc2VkIHRvIHRoZSBgYHB5
dGVzdF9nZW5lcmF0ZV90ZXN0c2BgIGhvb2suCisgICAgVGhleSBoZWxwIHRvIGluc3BlY3QgYSB0
ZXN0IGZ1bmN0aW9uIGFuZCB0byBnZW5lcmF0ZSB0ZXN0cyBhY2NvcmRpbmcgdG8KKyAgICB0ZXN0
IGNvbmZpZ3VyYXRpb24gb3IgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgY2xhc3Mgb3IgbW9kdWxl
IHdoZXJlIGEKKyAgICB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQuCisgICAgIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb24sIGZpeHR1cmVpbmZvLCBjb25maWcsIGNscz1Ob25l
LCBtb2R1bGU9Tm9uZSk6CisgICAgICAgICM6IGFjY2VzcyB0byB0aGUgOmNsYXNzOmBfcHl0ZXN0
LmNvbmZpZy5Db25maWdgIG9iamVjdCBmb3IgdGhlIHRlc3Qgc2Vzc2lvbgorICAgICAgICBzZWxm
LmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgICM6IHRoZSBtb2R1bGUgb2JqZWN0IHdoZXJlIHRo
ZSB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4uCisgICAgICAgIHNlbGYubW9kdWxlID0gbW9k
dWxlCisKKyAgICAgICAgIzogdW5kZXJseWluZyBweXRob24gdGVzdCBmdW5jdGlvbgorICAgICAg
ICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24KKworICAgICAgICAjOiBzZXQgb2YgZml4dHVyZSBu
YW1lcyByZXF1aXJlZCBieSB0aGUgdGVzdCBmdW5jdGlvbgorICAgICAgICBzZWxmLmZpeHR1cmVu
YW1lcyA9IGZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUKKworICAgICAgICAjOiBjbGFzcyBvYmpl
Y3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbiBvciBgYE5vbmVgYC4KKyAg
ICAgICAgc2VsZi5jbHMgPSBjbHMKKworICAgICAgICBzZWxmLl9jYWxscyA9IFtdCisgICAgICAg
IHNlbGYuX2lkcyA9IHNldCgpCisgICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmcyA9IGZpeHR1
cmVpbmZvLm5hbWUyZml4dHVyZWRlZnMKKworICAgIGRlZiBwYXJhbWV0cml6ZShzZWxmLCBhcmdu
YW1lcywgYXJndmFsdWVzLCBpbmRpcmVjdD1GYWxzZSwgaWRzPU5vbmUsCisgICAgICAgICAgICAg
ICAgICAgIHNjb3BlPU5vbmUpOgorICAgICAgICAiIiIgQWRkIG5ldyBpbnZvY2F0aW9ucyB0byB0
aGUgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uIHVzaW5nIHRoZSBsaXN0CisgICAgICAgIG9mIGFy
Z3ZhbHVlcyBmb3IgdGhlIGdpdmVuIGFyZ25hbWVzLiAgUGFyYW1ldHJpemF0aW9uIGlzIHBlcmZv
cm1lZAorICAgICAgICBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhhc2UuICBJZiB5b3UgbmVlZCB0
byBzZXR1cCBleHBlbnNpdmUgcmVzb3VyY2VzCisgICAgICAgIHNlZSBhYm91dCBzZXR0aW5nIGlu
ZGlyZWN0IHRvIGRvIGl0IHJhdGhlciBhdCB0ZXN0IHNldHVwIHRpbWUuCisKKyAgICAgICAgOmFy
ZyBhcmduYW1lczogYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIGRlbm90aW5nIG9uZSBvciBtb3Jl
IGFyZ3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLCBvciBhIGxpc3QvdHVwbGUg
b2YgYXJndW1lbnQgc3RyaW5ncy4KKworICAgICAgICA6YXJnIGFyZ3ZhbHVlczogVGhlIGxpc3Qg
b2YgYXJndmFsdWVzIGRldGVybWluZXMgaG93IG9mdGVuIGEKKyAgICAgICAgICAgIHRlc3QgaXMg
aW52b2tlZCB3aXRoIGRpZmZlcmVudCBhcmd1bWVudCB2YWx1ZXMuICBJZiBvbmx5IG9uZQorICAg
ICAgICAgICAgYXJnbmFtZSB3YXMgc3BlY2lmaWVkIGFyZ3ZhbHVlcyBpcyBhIGxpc3Qgb2YgdmFs
dWVzLiAgSWYgTgorICAgICAgICAgICAgYXJnbmFtZXMgd2VyZSBzcGVjaWZpZWQsIGFyZ3ZhbHVl
cyBtdXN0IGJlIGEgbGlzdCBvZiBOLXR1cGxlcywKKyAgICAgICAgICAgIHdoZXJlIGVhY2ggdHVw
bGUtZWxlbWVudCBzcGVjaWZpZXMgYSB2YWx1ZSBmb3IgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAg
ICAgIGFyZ25hbWUuCisKKyAgICAgICAgOmFyZyBpbmRpcmVjdDogVGhlIGxpc3Qgb2YgYXJnbmFt
ZXMgb3IgYm9vbGVhbi4gQSBsaXN0IG9mIGFyZ3VtZW50cycKKyAgICAgICAgICAgIG5hbWVzIChz
dWJzZXQgb2YgYXJnbmFtZXMpLiBJZiBUcnVlIHRoZSBsaXN0IGNvbnRhaW5zIGFsbCBuYW1lcyBm
cm9tCisgICAgICAgICAgICB0aGUgYXJnbmFtZXMuIEVhY2ggYXJndmFsdWUgY29ycmVzcG9uZGlu
ZyB0byBhbiBhcmduYW1lIGluIHRoaXMgbGlzdCB3aWxsCisgICAgICAgICAgICBiZSBwYXNzZWQg
YXMgcmVxdWVzdC5wYXJhbSB0byBpdHMgcmVzcGVjdGl2ZSBhcmduYW1lIGZpeHR1cmUKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHNvIHRoYXQgaXQgY2FuIHBlcmZvcm0gbW9yZSBleHBlbnNpdmUgc2V0
dXBzIGR1cmluZyB0aGUKKyAgICAgICAgICAgIHNldHVwIHBoYXNlIG9mIGEgdGVzdCByYXRoZXIg
dGhhbiBhdCBjb2xsZWN0aW9uIHRpbWUuCisKKyAgICAgICAgOmFyZyBpZHM6IGxpc3Qgb2Ygc3Ry
aW5nIGlkcywgb3IgYSBjYWxsYWJsZS4KKyAgICAgICAgICAgIElmIHN0cmluZ3MsIGVhY2ggaXMg
Y29ycmVzcG9uZGluZyB0byB0aGUgYXJndmFsdWVzIHNvIHRoYXQgdGhleSBhcmUKKyAgICAgICAg
ICAgIHBhcnQgb2YgdGhlIHRlc3QgaWQuIElmIE5vbmUgaXMgZ2l2ZW4gYXMgaWQgb2Ygc3BlY2lm
aWMgdGVzdCwgdGhlCisgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZCBmb3Ig
dGhhdCBhcmd1bWVudCB3aWxsIGJlIHVzZWQuCisgICAgICAgICAgICBJZiBjYWxsYWJsZSwgaXQg
c2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50IChhIHNpbmdsZSBhcmd2YWx1ZSkgYW5kIHJldHVybgor
ICAgICAgICAgICAgYSBzdHJpbmcgb3IgcmV0dXJuIE5vbmUuIElmIE5vbmUsIHRoZSBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlZCBpZCBmb3IgdGhhdAorICAgICAgICAgICAgYXJndW1lbnQgd2lsbCBi
ZSB1c2VkLgorICAgICAgICAgICAgSWYgbm8gaWRzIGFyZSBwcm92aWRlZCB0aGV5IHdpbGwgYmUg
Z2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbQorICAgICAgICAgICAgdGhlIGFyZ3ZhbHVlcy4K
KworICAgICAgICA6YXJnIHNjb3BlOiBpZiBzcGVjaWZpZWQgaXQgZGVub3RlcyB0aGUgc2NvcGUg
b2YgdGhlIHBhcmFtZXRlcnMuCisgICAgICAgICAgICBUaGUgc2NvcGUgaXMgdXNlZCBmb3IgZ3Jv
dXBpbmcgdGVzdHMgYnkgcGFyYW1ldGVyIGluc3RhbmNlcy4KKyAgICAgICAgICAgIEl0IHdpbGwg
YWxzbyBvdmVycmlkZSBhbnkgZml4dHVyZS1mdW5jdGlvbiBkZWZpbmVkIHNjb3BlLCBhbGxvd2lu
ZworICAgICAgICAgICAgdG8gc2V0IGEgZHluYW1pYyBzY29wZSB1c2luZyB0ZXN0IGNvbnRleHQg
b3IgY29uZmlndXJhdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5maXh0
dXJlcyBpbXBvcnQgc2NvcGUyaW5kZXgKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0
IFBhcmFtZXRlclNldAorICAgICAgICBmcm9tIHB5LmlvIGltcG9ydCBzYWZlcmVwcgorICAgICAg
ICBhcmduYW1lcywgcGFyYW1ldGVycyA9IFBhcmFtZXRlclNldC5fZm9yX3BhcmFtZXRlcml6ZSgK
KyAgICAgICAgICAgIGFyZ25hbWVzLCBhcmd2YWx1ZXMsIHNlbGYuZnVuY3Rpb24pCisgICAgICAg
IGRlbCBhcmd2YWx1ZXMKKworICAgICAgICBpZiBzY29wZSBpcyBOb25lOgorICAgICAgICAgICAg
c2NvcGUgPSBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUoYXJnbmFtZXMsIHNlbGYuX2FyZzJmaXh0
dXJlZGVmcywgaW5kaXJlY3QpCisKKyAgICAgICAgc2NvcGVudW0gPSBzY29wZTJpbmRleChzY29w
ZSwgZGVzY3I9J2NhbGwgdG8gezB9Jy5mb3JtYXQoc2VsZi5wYXJhbWV0cml6ZSkpCisgICAgICAg
IHZhbHR5cGVzID0ge30KKyAgICAgICAgZm9yIGFyZyBpbiBhcmduYW1lczoKKyAgICAgICAgICAg
IGlmIGFyZyBub3QgaW4gc2VsZi5maXh0dXJlbmFtZXM6CisgICAgICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAgICAgICAgICAgICAgIG5h
bWUgPSAnZml4dHVyZScgaWYgYXJnIGluIGluZGlyZWN0IGVsc2UgJ2FyZ3VtZW50JworICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnZml4dHVyZScgaWYg
aW5kaXJlY3QgZWxzZSAnYXJndW1lbnQnCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigKKyAgICAgICAgICAgICAgICAgICAgIiVyIHVzZXMgbm8gJXMgJXIiICUgKAorICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiwgbmFtZSwgYXJnKSkKKworICAgICAgICBpZiBp
bmRpcmVjdCBpcyBUcnVlOgorICAgICAgICAgICAgdmFsdHlwZXMgPSBkaWN0LmZyb21rZXlzKGFy
Z25hbWVzLCAicGFyYW1zIikKKyAgICAgICAgZWxpZiBpbmRpcmVjdCBpcyBGYWxzZToKKyAgICAg
ICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKKyAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxpc3QpKToKKyAgICAgICAg
ICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKKyAgICAg
ICAgICAgIGZvciBhcmcgaW4gaW5kaXJlY3Q6CisgICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBp
biBhcmduYW1lczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW5kaXJl
Y3QgZ2l2ZW4gdG8gJXI6IGZpeHR1cmUgJXIgZG9lc24ndCBleGlzdCIgJSAoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiwgYXJnKSkKKyAgICAgICAg
ICAgICAgICB2YWx0eXBlc1thcmddID0gInBhcmFtcyIKKyAgICAgICAgaWRmbiA9IE5vbmUKKyAg
ICAgICAgaWYgY2FsbGFibGUoaWRzKToKKyAgICAgICAgICAgIGlkZm4gPSBpZHMKKyAgICAgICAg
ICAgIGlkcyA9IE5vbmUKKyAgICAgICAgaWYgaWRzOgorICAgICAgICAgICAgaWYgbGVuKGlkcykg
IT0gbGVuKHBhcmFtZXRlcnMpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJyVk
IHRlc3RzIHNwZWNpZmllZCB3aXRoICVkIGlkcycgJSAoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKSkKKyAgICAgICAgICAgIGZvciBp
ZF92YWx1ZSBpbiBpZHM6CisgICAgICAgICAgICAgICAgaWYgaWRfdmFsdWUgaXMgbm90IE5vbmUg
YW5kIG5vdCBpc2luc3RhbmNlKGlkX3ZhbHVlLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAg
ICAgICAgICAgICAgbXNnID0gJ2lkcyBtdXN0IGJlIGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6ICVz
ICh0eXBlOiAlcyknCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnICUg
KHNhZmVyZXByKGlkX3ZhbHVlKSwgdHlwZShpZF92YWx1ZSkuX19uYW1lX18pKQorICAgICAgICBp
ZHMgPSBpZG1ha2VyKGFyZ25hbWVzLCBwYXJhbWV0ZXJzLCBpZGZuLCBpZHMsIHNlbGYuY29uZmln
KQorICAgICAgICBuZXdjYWxscyA9IFtdCisgICAgICAgIGZvciBjYWxsc3BlYyBpbiBzZWxmLl9j
YWxscyBvciBbQ2FsbFNwZWMyKHNlbGYpXToKKyAgICAgICAgICAgIGVsZW1lbnRzID0gemlwKGlk
cywgcGFyYW1ldGVycywgY291bnQoKSkKKyAgICAgICAgICAgIGZvciBhX2lkLCBwYXJhbSwgcGFy
YW1faW5kZXggaW4gZWxlbWVudHM6CisgICAgICAgICAgICAgICAgaWYgbGVuKHBhcmFtLnZhbHVl
cykgIT0gbGVuKGFyZ25hbWVzKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigKKyAgICAgICAgICAgICAgICAgICAgICAgICdJbiAicGFyYW1ldHJpemUiIHRoZSBudW1iZXIg
b2YgdmFsdWVzICh7MH0pIG11c3QgYmUgJworICAgICAgICAgICAgICAgICAgICAgICAgJ2VxdWFs
IHRvIHRoZSBudW1iZXIgb2YgbmFtZXMgKHsxfSknLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXJhbS52YWx1ZXMsIGFyZ25hbWVzKSkKKyAgICAgICAgICAgICAgICBuZXdj
YWxsc3BlYyA9IGNhbGxzcGVjLmNvcHkoc2VsZikKKyAgICAgICAgICAgICAgICBuZXdjYWxsc3Bl
Yy5zZXRtdWx0aTIodmFsdHlwZXMsIGFyZ25hbWVzLCBwYXJhbS52YWx1ZXMsIGFfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLm1hcmtzLCBzY29wZW51bSwg
cGFyYW1faW5kZXgpCisgICAgICAgICAgICAgICAgbmV3Y2FsbHMuYXBwZW5kKG5ld2NhbGxzcGVj
KQorICAgICAgICBzZWxmLl9jYWxscyA9IG5ld2NhbGxzCisKKyAgICBkZWYgYWRkY2FsbChzZWxm
LCBmdW5jYXJncz1Ob25lLCBpZD1OT1RTRVQsIHBhcmFtPU5PVFNFVCk6CisgICAgICAgICIiIiBB
ZGQgYSBuZXcgY2FsbCB0byB0aGUgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uIGR1cmluZyB0aGUg
Y29sbGVjdGlvbiBwaGFzZSBvZiBhIHRlc3QgcnVuLgorCisgICAgICAgIC4uIGRlcHJlY2F0ZWQ6
OiAzLjMKKworICAgICAgICAgICAgVXNlIDptZXRoOmBwYXJhbWV0cml6ZWAgaW5zdGVhZC4KKwor
ICAgICAgICBOb3RlIHRoYXQgcmVxdWVzdC5hZGRjYWxsKCkgaXMgY2FsbGVkIGR1cmluZyB0aGUg
dGVzdCBjb2xsZWN0aW9uIHBoYXNlIHByaW9yIGFuZAorICAgICAgICBpbmRlcGVuZGVudGx5IHRv
IGFjdHVhbCB0ZXN0IGV4ZWN1dGlvbi4gIFlvdSBzaG91bGQgb25seSB1c2UgYWRkY2FsbCgpCisg
ICAgICAgIGlmIHlvdSBuZWVkIHRvIHNwZWNpZnkgbXVsdGlwbGUgYXJndW1lbnRzIG9mIGEgdGVz
dCBmdW5jdGlvbi4KKworICAgICAgICA6YXJnIGZ1bmNhcmdzOiBhcmd1bWVudCBrZXl3b3JkIGRp
Y3Rpb25hcnkgdXNlZCB3aGVuIGludm9raW5nCisgICAgICAgICAgICB0aGUgdGVzdCBmdW5jdGlv
bi4KKworICAgICAgICA6YXJnIGlkOiB1c2VkIGZvciByZXBvcnRpbmcgYW5kIGlkZW50aWZpY2F0
aW9uIHB1cnBvc2VzLiAgSWYgeW91CisgICAgICAgICAgICBkb24ndCBzdXBwbHkgYW4gYGlkYCBh
biBhdXRvbWF0aWMgdW5pcXVlIGlkIHdpbGwgYmUgZ2VuZXJhdGVkLgorCisgICAgICAgIDphcmcg
cGFyYW06IGEgcGFyYW1ldGVyIHdoaWNoIHdpbGwgYmUgZXhwb3NlZCB0byBhIGxhdGVyIGZpeHR1
cmUgZnVuY3Rpb24KKyAgICAgICAgICAgIGludm9jYXRpb24gdGhyb3VnaCB0aGUgYGByZXF1ZXN0
LnBhcmFtYGAgYXR0cmlidXRlLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5jb25maWc6
CisgICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKCdDMScsIG1lc3NhZ2U9ZGVwcmVjYXRlZC5N
RVRBRlVOQ19BRERfQ0FMTCwgZnNsb2NhdGlvbj1Ob25lKQorICAgICAgICBhc3NlcnQgZnVuY2Fy
Z3MgaXMgTm9uZSBvciBpc2luc3RhbmNlKGZ1bmNhcmdzLCBkaWN0KQorICAgICAgICBpZiBmdW5j
YXJncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciBuYW1lIGluIGZ1bmNhcmdzOgorICAg
ICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgorICAgICAgICAg
ICAgICAgICAgICBmYWlsKCJmdW5jYXJnICVyIG5vdCB1c2VkIGluIHRoaXMgZnVuY3Rpb24uIiAl
IG5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmdW5jYXJncyA9IHt9CisgICAgICAg
IGlmIGlkIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpZD1Ob25lIG5v
dCBhbGxvd2VkIikKKyAgICAgICAgaWYgaWQgaXMgTk9UU0VUOgorICAgICAgICAgICAgaWQgPSBs
ZW4oc2VsZi5fY2FsbHMpCisgICAgICAgIGlkID0gc3RyKGlkKQorICAgICAgICBpZiBpZCBpbiBz
ZWxmLl9pZHM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkdXBsaWNhdGUgaWQgJXIi
ICUgaWQpCisgICAgICAgIHNlbGYuX2lkcy5hZGQoaWQpCisKKyAgICAgICAgY3MgPSBDYWxsU3Bl
YzIoc2VsZikKKyAgICAgICAgY3Muc2V0YWxsKGZ1bmNhcmdzLCBpZCwgcGFyYW0pCisgICAgICAg
IHNlbGYuX2NhbGxzLmFwcGVuZChjcykKKworCitkZWYgX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3Bl
KGFyZ25hbWVzLCBhcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KToKKyAgICAiIiJGaW5kIHRoZSBt
b3N0IGFwcHJvcHJpYXRlIHNjb3BlIGZvciBhIHBhcmFtZXRyaXplZCBjYWxsIGJhc2VkIG9uIGl0
cyBhcmd1bWVudHMuCisKKyAgICBXaGVuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGRpcmVjdCBhcmd1
bWVudCwgYWx3YXlzIHVzZSAiZnVuY3Rpb24iIHNjb3BlLgorCisgICAgV2hlbiBhIHRlc3QgZnVu
Y3Rpb24gaXMgcGFyYW1ldHJpemVkIGFuZCBhbGwgaXRzIGFyZ3VtZW50cyBhcmUgaW5kaXJlY3QK
KyAgICAoZS5nLiBmaXh0dXJlcyksIHJldHVybiB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgYmFzZWQg
b24gdGhlIGZpeHR1cmVzIHVzZWQuCisKKyAgICBSZWxhdGVkIHRvIGlzc3VlICMxODMyLCBiYXNl
ZCBvbiBjb2RlIHBvc3RlZCBieSBAS2luZ2RyZWFkLgorICAgICIiIgorICAgIGZyb20gX3B5dGVz
dC5maXh0dXJlcyBpbXBvcnQgc2NvcGVzCisgICAgaW5kaXJlY3RfYXNfbGlzdCA9IGlzaW5zdGFu
Y2UoaW5kaXJlY3QsIChsaXN0LCB0dXBsZSkpCisgICAgYWxsX2FyZ3VtZW50c19hcmVfZml4dHVy
ZXMgPSBpbmRpcmVjdCBpcyBUcnVlIG9yIFwKKyAgICAgICAgaW5kaXJlY3RfYXNfbGlzdCBhbmQg
bGVuKGluZGlyZWN0KSA9PSBhcmduYW1lcworICAgIGlmIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1
cmVzOgorICAgICAgICBmaXh0dXJlZGVmcyA9IGFyZzJmaXh0dXJlZGVmcyBvciB7fQorICAgICAg
ICB1c2VkX3Njb3BlcyA9IFtmaXh0dXJlZGVmWzBdLnNjb3BlIGZvciBuYW1lLCBmaXh0dXJlZGVm
IGluIGZpeHR1cmVkZWZzLml0ZW1zKCldCisgICAgICAgIGlmIHVzZWRfc2NvcGVzOgorICAgICAg
ICAgICAgIyBUYWtlcyB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgZnJvbSB1c2VkIGZpeHR1cmVzCisg
ICAgICAgICAgICBmb3Igc2NvcGUgaW4gcmV2ZXJzZWQoc2NvcGVzKToKKyAgICAgICAgICAgICAg
ICBpZiBzY29wZSBpbiB1c2VkX3Njb3BlczoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNj
b3BlCisKKyAgICByZXR1cm4gJ2Z1bmN0aW9uJworCisKK2RlZiBfaWR2YWwodmFsLCBhcmduYW1l
LCBpZHgsIGlkZm4sIGNvbmZpZz1Ob25lKToKKyAgICBpZiBpZGZuOgorICAgICAgICBzID0gTm9u
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0gaWRmbih2YWwpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICAjIFNlZSBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxNjkKKyAgICAgICAgICAgIGltcG9ydCB3YXJuaW5n
cworICAgICAgICAgICAgbXNnID0gIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlk
IG9mIHBhcmFtZXRlciAlcyBhdCBwb3NpdGlvbiAlZC4iICUgKGFyZ25hbWUsIGlkeCkKKyAgICAg
ICAgICAgIG1zZyArPSAnXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBl
cnJvciBpbiBweXRlc3QtNC4wLicKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXBy
ZWNhdGlvbldhcm5pbmcpCisgICAgICAgIGlmIHM6CisgICAgICAgICAgICByZXR1cm4gYXNjaWlf
ZXNjYXBlZChzKQorCisgICAgaWYgY29uZmlnOgorICAgICAgICBob29rX2lkID0gY29uZmlnLmhv
b2sucHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoCisgICAgICAgICAgICBjb25maWc9Y29uZmln
LCB2YWw9dmFsLCBhcmduYW1lPWFyZ25hbWUpCisgICAgICAgIGlmIGhvb2tfaWQ6CisgICAgICAg
ICAgICByZXR1cm4gaG9va19pZAorCisgICAgaWYgaXNpbnN0YW5jZSh2YWwsIFNUUklOR19UWVBF
Uyk6CisgICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKHZhbCkKKyAgICBlbGlmIGlzaW5zdGFu
Y2UodmFsLCAoZmxvYXQsIGludCwgYm9vbCwgTm9uZVR5cGUpKToKKyAgICAgICAgcmV0dXJuIHN0
cih2YWwpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbCwgUkVHRVhfVFlQRSk6CisgICAgICAgIHJl
dHVybiBhc2NpaV9lc2NhcGVkKHZhbC5wYXR0ZXJuKQorICAgIGVsaWYgZW51bSBpcyBub3QgTm9u
ZSBhbmQgaXNpbnN0YW5jZSh2YWwsIGVudW0uRW51bSk6CisgICAgICAgIHJldHVybiBzdHIodmFs
KQorICAgIGVsaWYgaXNjbGFzcyh2YWwpIGFuZCBoYXNhdHRyKHZhbCwgJ19fbmFtZV9fJyk6Cisg
ICAgICAgIHJldHVybiB2YWwuX19uYW1lX18KKyAgICByZXR1cm4gc3RyKGFyZ25hbWUpICsgc3Ry
KGlkeCkKKworCitkZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRm
biwgaWRzLCBjb25maWc9Tm9uZSk6CisgICAgaWYgcGFyYW1ldGVyc2V0LmlkIGlzIG5vdCBOb25l
OgorICAgICAgICByZXR1cm4gcGFyYW1ldGVyc2V0LmlkCisgICAgaWYgaWRzIGlzIE5vbmUgb3Ig
KGlkeCA+PSBsZW4oaWRzKSBvciBpZHNbaWR4XSBpcyBOb25lKToKKyAgICAgICAgdGhpc19pZCA9
IFtfaWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZykKKyAgICAgICAgICAgICAg
ICAgICBmb3IgdmFsLCBhcmduYW1lIGluIHppcChwYXJhbWV0ZXJzZXQudmFsdWVzLCBhcmduYW1l
cyldCisgICAgICAgIHJldHVybiAiLSIuam9pbih0aGlzX2lkKQorICAgIGVsc2U6CisgICAgICAg
IHJldHVybiBhc2NpaV9lc2NhcGVkKGlkc1tpZHhdKQorCisKK2RlZiBpZG1ha2VyKGFyZ25hbWVz
LCBwYXJhbWV0ZXJzZXRzLCBpZGZuPU5vbmUsIGlkcz1Ob25lLCBjb25maWc9Tm9uZSk6CisgICAg
aWRzID0gW19pZHZhbHNldCh2YWxpbmRleCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRmbiwg
aWRzLCBjb25maWcpCisgICAgICAgICAgIGZvciB2YWxpbmRleCwgcGFyYW1ldGVyc2V0IGluIGVu
dW1lcmF0ZShwYXJhbWV0ZXJzZXRzKV0KKyAgICBpZiBsZW4oc2V0KGlkcykpICE9IGxlbihpZHMp
OgorICAgICAgICAjIFRoZSBpZHMgYXJlIG5vdCB1bmlxdWUKKyAgICAgICAgZHVwbGljYXRlcyA9
IFt0ZXN0aWQgZm9yIHRlc3RpZCBpbiBpZHMgaWYgaWRzLmNvdW50KHRlc3RpZCkgPiAxXQorICAg
ICAgICBjb3VudGVycyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxhbWJkYTogMCkKKyAgICAg
ICAgZm9yIGluZGV4LCB0ZXN0aWQgaW4gZW51bWVyYXRlKGlkcyk6CisgICAgICAgICAgICBpZiB0
ZXN0aWQgaW4gZHVwbGljYXRlczoKKyAgICAgICAgICAgICAgICBpZHNbaW5kZXhdID0gdGVzdGlk
ICsgc3RyKGNvdW50ZXJzW3Rlc3RpZF0pCisgICAgICAgICAgICAgICAgY291bnRlcnNbdGVzdGlk
XSArPSAxCisgICAgcmV0dXJuIGlkcworCisKK2RlZiBzaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNv
bmZpZyk6CisgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vzc2lvbgorICAgIHJl
dHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfc2hvd19maXh0dXJlc19wZXJfdGVzdCkKKworCitk
ZWYgX3Nob3dfZml4dHVyZXNfcGVyX3Rlc3QoY29uZmlnLCBzZXNzaW9uKToKKyAgICBpbXBvcnQg
X3B5dGVzdC5jb25maWcKKyAgICBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdCgpCisgICAgY3VyZGly
ID0gcHkucGF0aC5sb2NhbCgpCisgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWlu
YWxfd3JpdGVyKGNvbmZpZykKKyAgICB2ZXJib3NlID0gY29uZmlnLmdldHZhbHVlKCJ2ZXJib3Nl
IikKKworICAgIGRlZiBnZXRfYmVzdF9yZWxwYXRoKGZ1bmMpOgorICAgICAgICBsb2MgPSBnZXRs
b2NhdGlvbihmdW5jLCBjdXJkaXIpCisgICAgICAgIHJldHVybiBjdXJkaXIuYmVzdHJlbHBhdGgo
bG9jKQorCisgICAgZGVmIHdyaXRlX2ZpeHR1cmUoZml4dHVyZV9kZWYpOgorICAgICAgICBhcmdu
YW1lID0gZml4dHVyZV9kZWYuYXJnbmFtZQorICAgICAgICBpZiB2ZXJib3NlIDw9IDAgYW5kIGFy
Z25hbWUuc3RhcnRzd2l0aCgiXyIpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHZl
cmJvc2UgPiAwOgorICAgICAgICAgICAgYmVzdHJlbCA9IGdldF9iZXN0X3JlbHBhdGgoZml4dHVy
ZV9kZWYuZnVuYykKKyAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0gInswfSAtLSB7MX0iLmZvcm1h
dChhcmduYW1lLCBiZXN0cmVsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZnVuY2FyZ3Nw
ZWMgPSBhcmduYW1lCisgICAgICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUpCisg
ICAgICAgIGZpeHR1cmVfZG9jID0gZml4dHVyZV9kZWYuZnVuYy5fX2RvY19fCisgICAgICAgIGlm
IGZpeHR1cmVfZG9jOgorICAgICAgICAgICAgd3JpdGVfZG9jc3RyaW5nKHR3LCBmaXh0dXJlX2Rv
YykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHR3LmxpbmUoJyAgICBubyBkb2NzdHJpbmcg
YXZhaWxhYmxlJywgcmVkPVRydWUpCisKKyAgICBkZWYgd3JpdGVfaXRlbShpdGVtKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgaW5mbyA9IGl0ZW0uX2ZpeHR1cmVpbmZvCisgICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgZG9jdGVzdHMgaXRlbXMgaGF2ZSBu
byBfZml4dHVyZWluZm8gYXR0cmlidXRlCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYg
bm90IGluZm8ubmFtZTJmaXh0dXJlZGVmczoKKyAgICAgICAgICAgICMgdGhpcyB0ZXN0IGl0ZW0g
ZG9lcyBub3QgdXNlIGFueSBmaXh0dXJlcworICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHR3
LmxpbmUoKQorICAgICAgICB0dy5zZXAoJy0nLCAnZml4dHVyZXMgdXNlZCBieSB7MH0nLmZvcm1h
dChpdGVtLm5hbWUpKQorICAgICAgICB0dy5zZXAoJy0nLCAnKHswfSknLmZvcm1hdChnZXRfYmVz
dF9yZWxwYXRoKGl0ZW0uZnVuY3Rpb24pKSkKKyAgICAgICAgIyBkaWN0IGtleSBub3QgdXNlZCBp
biBsb29wIGJ1dCBuZWVkZWQgZm9yIHNvcnRpbmcKKyAgICAgICAgZm9yIF8sIGZpeHR1cmVkZWZz
IGluIHNvcnRlZChpbmZvLm5hbWUyZml4dHVyZWRlZnMuaXRlbXMoKSk6CisgICAgICAgICAgICBh
c3NlcnQgZml4dHVyZWRlZnMgaXMgbm90IE5vbmUKKyAgICAgICAgICAgIGlmIG5vdCBmaXh0dXJl
ZGVmczoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgIyBsYXN0IGl0ZW0g
aXMgZXhwZWN0ZWQgdG8gYmUgdGhlIG9uZSB1c2VkIGJ5IHRoZSB0ZXN0IGl0ZW0KKyAgICAgICAg
ICAgIHdyaXRlX2ZpeHR1cmUoZml4dHVyZWRlZnNbLTFdKQorCisgICAgZm9yIHNlc3Npb25faXRl
bSBpbiBzZXNzaW9uLml0ZW1zOgorICAgICAgICB3cml0ZV9pdGVtKHNlc3Npb25faXRlbSkKKwor
CitkZWYgc2hvd2ZpeHR1cmVzKGNvbmZpZyk6CisgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0
IHdyYXBfc2Vzc2lvbgorICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfc2hvd2ZpeHR1
cmVzX21haW4pCisKKworZGVmIF9zaG93Zml4dHVyZXNfbWFpbihjb25maWcsIHNlc3Npb24pOgor
ICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZworICAgIHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KCkK
KyAgICBjdXJkaXIgPSBweS5wYXRoLmxvY2FsKCkKKyAgICB0dyA9IF9weXRlc3QuY29uZmlnLmNy
ZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnKQorICAgIHZlcmJvc2UgPSBjb25maWcuZ2V0dmFs
dWUoInZlcmJvc2UiKQorCisgICAgZm0gPSBzZXNzaW9uLl9maXh0dXJlbWFuYWdlcgorCisgICAg
YXZhaWxhYmxlID0gW10KKyAgICBzZWVuID0gc2V0KCkKKworICAgIGZvciBhcmduYW1lLCBmaXh0
dXJlZGVmcyBpbiBmbS5fYXJnMmZpeHR1cmVkZWZzLml0ZW1zKCk6CisgICAgICAgIGFzc2VydCBm
aXh0dXJlZGVmcyBpcyBub3QgTm9uZQorICAgICAgICBpZiBub3QgZml4dHVyZWRlZnM6CisgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICBmb3IgZml4dHVyZWRlZiBpbiBmaXh0dXJlZGVmczoK
KyAgICAgICAgICAgIGxvYyA9IGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgY3VyZGlyKQor
ICAgICAgICAgICAgaWYgKGZpeHR1cmVkZWYuYXJnbmFtZSwgbG9jKSBpbiBzZWVuOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZWVuLmFkZCgoZml4dHVyZWRlZi5hcmdu
YW1lLCBsb2MpKQorICAgICAgICAgICAgYXZhaWxhYmxlLmFwcGVuZCgobGVuKGZpeHR1cmVkZWYu
YmFzZWlkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuZnVuYy5f
X21vZHVsZV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyZGlyLmJlc3RyZWxw
YXRoKGxvYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmFyZ25h
bWUsIGZpeHR1cmVkZWYpKQorCisgICAgYXZhaWxhYmxlLnNvcnQoKQorICAgIGN1cnJlbnRtb2R1
bGUgPSBOb25lCisgICAgZm9yIGJhc2VpZCwgbW9kdWxlLCBiZXN0cmVsLCBhcmduYW1lLCBmaXh0
dXJlZGVmIGluIGF2YWlsYWJsZToKKyAgICAgICAgaWYgY3VycmVudG1vZHVsZSAhPSBtb2R1bGU6
CisgICAgICAgICAgICBpZiBub3QgbW9kdWxlLnN0YXJ0c3dpdGgoIl9weXRlc3QuIik6CisgICAg
ICAgICAgICAgICAgdHcubGluZSgpCisgICAgICAgICAgICAgICAgdHcuc2VwKCItIiwgImZpeHR1
cmVzIGRlZmluZWQgZnJvbSAlcyIgJSAobW9kdWxlLCkpCisgICAgICAgICAgICAgICAgY3VycmVu
dG1vZHVsZSA9IG1vZHVsZQorICAgICAgICBpZiB2ZXJib3NlIDw9IDAgYW5kIGFyZ25hbWVbMF0g
PT0gIl8iOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgdmVyYm9zZSA+IDA6Cisg
ICAgICAgICAgICBmdW5jYXJnc3BlYyA9ICIlcyAtLSAlcyIgJSAoYXJnbmFtZSwgYmVzdHJlbCwp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmdW5jYXJnc3BlYyA9IGFyZ25hbWUKKyAgICAg
ICAgdHcubGluZShmdW5jYXJnc3BlYywgZ3JlZW49VHJ1ZSkKKyAgICAgICAgbG9jID0gZ2V0bG9j
YXRpb24oZml4dHVyZWRlZi5mdW5jLCBjdXJkaXIpCisgICAgICAgIGRvYyA9IGZpeHR1cmVkZWYu
ZnVuYy5fX2RvY19fIG9yICIiCisgICAgICAgIGlmIGRvYzoKKyAgICAgICAgICAgIHdyaXRlX2Rv
Y3N0cmluZyh0dywgZG9jKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHcubGluZSgiICAg
ICVzOiBubyBkb2NzdHJpbmcgYXZhaWxhYmxlIiAlIChsb2MsKSwKKyAgICAgICAgICAgICAgICAg
ICAgcmVkPVRydWUpCisKKworZGVmIHdyaXRlX2RvY3N0cmluZyh0dywgZG9jKToKKyAgICBJTkRF
TlQgPSAiICAgICIKKyAgICBkb2MgPSBkb2MucnN0cmlwKCkKKyAgICBpZiAiXG4iIGluIGRvYzoK
KyAgICAgICAgZmlyc3RsaW5lLCByZXN0ID0gZG9jLnNwbGl0KCJcbiIsIDEpCisgICAgZWxzZToK
KyAgICAgICAgZmlyc3RsaW5lLCByZXN0ID0gZG9jLCAiIgorCisgICAgaWYgZmlyc3RsaW5lLnN0
cmlwKCk6CisgICAgICAgIHR3LmxpbmUoSU5ERU5UICsgZmlyc3RsaW5lLnN0cmlwKCkpCisKKyAg
ICBpZiByZXN0OgorICAgICAgICBmb3IgbGluZSBpbiBkZWRlbnQocmVzdCkuc3BsaXQoIlxuIik6
CisgICAgICAgICAgICB0dy53cml0ZShJTkRFTlQgKyBsaW5lICsgIlxuIikKKworCitjbGFzcyBG
dW5jdGlvbihGdW5jdGlvbk1peGluLCBtYWluLkl0ZW0sIGZpeHR1cmVzLkZ1bmNhcmduYW1lc0Nv
bXBhdEF0dHIpOgorICAgICIiIiBhIEZ1bmN0aW9uIEl0ZW0gaXMgcmVzcG9uc2libGUgZm9yIHNl
dHRpbmcgdXAgYW5kIGV4ZWN1dGluZyBhCisgICAgUHl0aG9uIHRlc3QgZnVuY3Rpb24uCisgICAg
IiIiCisgICAgX2dlbmlkID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBh
cmVudCwgYXJncz1Ob25lLCBjb25maWc9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2FsbHNwZWM9
Tm9uZSwgY2FsbG9iaj1OT1RTRVQsIGtleXdvcmRzPU5vbmUsIHNlc3Npb249Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgZml4dHVyZWluZm89Tm9uZSwgb3JpZ2luYWxuYW1lPU5vbmUpOgorICAgICAg
ICBzdXBlcihGdW5jdGlvbiwgc2VsZikuX19pbml0X18obmFtZSwgcGFyZW50LCBjb25maWc9Y29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbj1zZXNz
aW9uKQorICAgICAgICBzZWxmLl9hcmdzID0gYXJncworICAgICAgICBpZiBjYWxsb2JqIGlzIG5v
dCBOT1RTRVQ6CisgICAgICAgICAgICBzZWxmLm9iaiA9IGNhbGxvYmoKKworICAgICAgICBzZWxm
LmtleXdvcmRzLnVwZGF0ZShzZWxmLm9iai5fX2RpY3RfXykKKyAgICAgICAgaWYgY2FsbHNwZWM6
CisgICAgICAgICAgICBzZWxmLmNhbGxzcGVjID0gY2FsbHNwZWMKKyAgICAgICAgICAgICMgdGhp
cyBpcyB0b3RhbCBob3N0aWxlIGFuZCBhIG1lc3MKKyAgICAgICAgICAgICMga2V5d29yZHMgYXJl
IGJyb2tlbiBieSBkZXNpZ24gYnkgbm93CisgICAgICAgICAgICAjIHRoaXMgd2lsbCBiZSByZWRl
ZW1lZCBsYXRlcgorICAgICAgICAgICAgZm9yIG1hcmsgaW4gY2FsbHNwZWMubWFya3M6CisgICAg
ICAgICAgICAgICAgIyBmZWVsIGZyZWUgdG8gY3J5LCB0aGlzIHdhcyBicm9rZW4gZm9yIHllYXJz
IGJlZm9yZQorICAgICAgICAgICAgICAgICMgYW5kIGtleXdvcmRzIGNhbnQgZml4IGl0IHBlciBk
ZXNpZ24KKyAgICAgICAgICAgICAgICBzZWxmLmtleXdvcmRzW21hcmsubmFtZV0gPSBtYXJrCisg
ICAgICAgIGlmIGtleXdvcmRzOgorICAgICAgICAgICAgc2VsZi5rZXl3b3Jkcy51cGRhdGUoa2V5
d29yZHMpCisKKyAgICAgICAgaWYgZml4dHVyZWluZm8gaXMgTm9uZToKKyAgICAgICAgICAgIGZp
eHR1cmVpbmZvID0gc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5nZXRmaXh0dXJlaW5mbygK
KyAgICAgICAgICAgICAgICBzZWxmLnBhcmVudCwgc2VsZi5vYmosIHNlbGYuY2xzLAorICAgICAg
ICAgICAgICAgIGZ1bmNhcmdzPW5vdCBzZWxmLl9pc3lpZWxkZWRmdW5jdGlvbigpKQorICAgICAg
ICBzZWxmLl9maXh0dXJlaW5mbyA9IGZpeHR1cmVpbmZvCisgICAgICAgIHNlbGYuZml4dHVyZW5h
bWVzID0gZml4dHVyZWluZm8ubmFtZXNfY2xvc3VyZQorICAgICAgICBzZWxmLl9pbml0cmVxdWVz
dCgpCisKKyAgICAgICAgIzogb3JpZ2luYWwgZnVuY3Rpb24gbmFtZSwgd2l0aG91dCBhbnkgZGVj
b3JhdGlvbnMgKGZvciBleGFtcGxlCisgICAgICAgICM6IHBhcmFtZXRyaXphdGlvbiBhZGRzIGEg
YGAiWy4uLl0iYGAgc3VmZml4IHRvIGZ1bmN0aW9uIG5hbWVzKS4KKyAgICAgICAgIzoKKyAgICAg
ICAgIzogLi4gdmVyc2lvbmFkZGVkOjogMy4wCisgICAgICAgIHNlbGYub3JpZ2luYWxuYW1lID0g
b3JpZ2luYWxuYW1lCisKKyAgICBkZWYgX2luaXRyZXF1ZXN0KHNlbGYpOgorICAgICAgICBzZWxm
LmZ1bmNhcmdzID0ge30KKyAgICAgICAgaWYgc2VsZi5faXN5aWVsZGVkZnVuY3Rpb24oKToKKyAg
ICAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAiY2FsbHNwZWMiKSwgKAorICAgICAg
ICAgICAgICAgICJ5aWVsZGVkIGZ1bmN0aW9ucyAoZGVwcmVjYXRlZCkgY2Fubm90IGhhdmUgZnVu
Y2FyZ3MiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiY2Fs
bHNwZWMiKToKKyAgICAgICAgICAgICAgICBjYWxsc3BlYyA9IHNlbGYuY2FsbHNwZWMKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgbm90IGNhbGxzcGVjLmZ1bmNhcmdzCisgICAgICAgICAgICAgICAg
c2VsZi5fZ2VuaWQgPSBjYWxsc3BlYy5pZAorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoY2Fs
bHNwZWMsICJwYXJhbSIpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtID0gY2FsbHNw
ZWMucGFyYW0KKyAgICAgICAgc2VsZi5fcmVxdWVzdCA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1ZXN0
KHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnVuY3Rpb24oc2VsZik6CisgICAgICAg
ICJ1bmRlcmx5aW5nIHB5dGhvbiAnZnVuY3Rpb24nIG9iamVjdCIKKyAgICAgICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5vYmosICdpbV9mdW5jJywgc2VsZi5vYmopCisKKyAgICBkZWYgX2dldG9iaihz
ZWxmKToKKyAgICAgICAgbmFtZSA9IHNlbGYubmFtZQorICAgICAgICBpID0gbmFtZS5maW5kKCJb
IikgICMgcGFyYW1ldHJpemF0aW9uCisgICAgICAgIGlmIGkgIT0gLTE6CisgICAgICAgICAgICBu
YW1lID0gbmFtZVs6aV0KKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2JqLCBu
YW1lKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIF9weWZ1bmNpdGVtKHNlbGYpOgorICAgICAg
ICAiKGNvbXBhdG9ubHkpIGZvciBjb2RlIGV4cGVjdGluZyBweXRlc3QtMi4yIHN0eWxlIHJlcXVl
c3Qgb2JqZWN0cyIKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfaXN5aWVsZGVkZnVu
Y3Rpb24oc2VsZik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICJfYXJncyIsIE5vbmUp
IGlzIG5vdCBOb25lCisKKyAgICBkZWYgcnVudGVzdChzZWxmKToKKyAgICAgICAgIiIiIGV4ZWN1
dGUgdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbi4gIiIiCisgICAgICAgIHNlbGYuaWhvb2su
cHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW09c2VsZikKKworICAgIGRlZiBzZXR1cChzZWxm
KToKKyAgICAgICAgc3VwZXIoRnVuY3Rpb24sIHNlbGYpLnNldHVwKCkKKyAgICAgICAgZml4dHVy
ZXMuZmlsbGZpeHR1cmVzKHNlbGYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5
dGhvbl9hcGkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODE5NjAyOTViMzgxYmQwZTk5MjNmN2ZiM2QwMWFlMTExMjE0MmY5ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQpAQCAtMCwwICsxLDYxOSBA
QAoraW1wb3J0IG1hdGgKK2ltcG9ydCBzeXMKKworaW1wb3J0IHB5Citmcm9tIHNpeC5tb3ZlcyBp
bXBvcnQgemlwCisKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlzY2xhc3MKK2Zyb20gX3B5
dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAoraW1wb3J0IF9weXRlc3QuX2NvZGUKKworCitkZWYg
X2NtcF9yYWlzZXNfdHlwZV9lcnJvcihzZWxmLCBvdGhlcik6CisgICAgIiIiX19jbXBfXyBpbXBs
ZW1lbnRhdGlvbiB3aGljaCByYWlzZXMgVHlwZUVycm9yLiBVc2VkCisgICAgYnkgQXBwcm94IGJh
c2UgY2xhc3NlcyB0byBpbXBsZW1lbnQgb25seSA9PSBhbmQgIT0gYW5kIHJhaXNlIGEKKyAgICBU
eXBlRXJyb3IgZm9yIG90aGVyIGNvbXBhcmlzb25zLgorCisgICAgTmVlZGVkIGluIFB5dGhvbiAy
IG9ubHksIFB5dGhvbiAzIGFsbCBpdCB0YWtlcyBpcyBub3QgaW1wbGVtZW50aW5nIHRoZQorICAg
IG90aGVyIG9wZXJhdG9ycyBhdCBhbGwuCisgICAgIiIiCisgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCisgICAgcmFpc2UgVHlwZUVycm9yKCdDb21wYXJpc29uIG9wZXJhdG9ycyBvdGhlciB0
aGFuID09IGFuZCAhPSBub3Qgc3VwcG9ydGVkIGJ5IGFwcHJveCBvYmplY3RzJykKKworCisjIGJ1
aWx0aW4gcHl0ZXN0LmFwcHJveCBoZWxwZXIKKworCitjbGFzcyBBcHByb3hCYXNlKG9iamVjdCk6
CisgICAgIiIiCisgICAgUHJvdmlkZSBzaGFyZWQgdXRpbGl0aWVzIGZvciBtYWtpbmcgYXBwcm94
aW1hdGUgY29tcGFyaXNvbnMgYmV0d2VlbiBudW1iZXJzCisgICAgb3Igc2VxdWVuY2VzIG9mIG51
bWJlcnMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwZWN0ZWQsIHJlbD1O
b25lLCBhYnM9Tm9uZSwgbmFuX29rPUZhbHNlKToKKyAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4
cGVjdGVkCisgICAgICAgIHNlbGYuYWJzID0gYWJzCisgICAgICAgIHNlbGYucmVsID0gcmVsCisg
ICAgICAgIHNlbGYubmFuX29rID0gbmFuX29rCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6Cisg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBfX2VxX18oc2VsZiwg
YWN0dWFsKToKKyAgICAgICAgcmV0dXJuIGFsbCgKKyAgICAgICAgICAgIGEgPT0gc2VsZi5fYXBw
cm94X3NjYWxhcih4KQorICAgICAgICAgICAgZm9yIGEsIHggaW4gc2VsZi5feWllbGRfY29tcGFy
aXNvbnMoYWN0dWFsKSkKKworICAgIF9faGFzaF9fID0gTm9uZQorCisgICAgZGVmIF9fbmVfXyhz
ZWxmLCBhY3R1YWwpOgorICAgICAgICByZXR1cm4gbm90IChhY3R1YWwgPT0gc2VsZikKKworICAg
IGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKKyAgICAgICAgX19jbXBfXyA9IF9jbXBfcmFp
c2VzX3R5cGVfZXJyb3IKKworICAgIGRlZiBfYXBwcm94X3NjYWxhcihzZWxmLCB4KToKKyAgICAg
ICAgcmV0dXJuIEFwcHJveFNjYWxhcih4LCByZWw9c2VsZi5yZWwsIGFicz1zZWxmLmFicywgbmFu
X29rPXNlbGYubmFuX29rKQorCisgICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1
YWwpOgorICAgICAgICAiIiIKKyAgICAgICAgWWllbGQgYWxsIHRoZSBwYWlycyBvZiBudW1iZXJz
IHRvIGJlIGNvbXBhcmVkLiAgVGhpcyBpcyB1c2VkIHRvCisgICAgICAgIGltcGxlbWVudCB0aGUg
YF9fZXFfX2AgbWV0aG9kLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgorCisKK2NsYXNzIEFwcHJveE51bXB5KEFwcHJveEJhc2UpOgorICAgICIiIgorICAg
IFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIG51bXB5IGFycmF5cy4KKyAgICAi
IiIKKworICAgICMgVGVsbCBudW1weSB0byB1c2Ugb3VyIGBfX2VxX19gIG9wZXJhdG9yIGluc3Rl
YWQgb2YgaXRzLgorICAgIF9fYXJyYXlfcHJpb3JpdHlfXyA9IDEwMAorCisgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgICAgICAjIEl0IG1pZ2h0IGJlIG5pY2UgdG8gcmV3cml0ZSB0aGlzIGZ1
bmN0aW9uIHRvIGFjY291bnQgZm9yIHRoZQorICAgICAgICAjIHNoYXBlIG9mIHRoZSBhcnJheS4u
LgorICAgICAgICByZXR1cm4gImFwcHJveCh7MCFyfSkiLmZvcm1hdChsaXN0KAorICAgICAgICAg
ICAgc2VsZi5fYXBwcm94X3NjYWxhcih4KSBmb3IgeCBpbiBzZWxmLmV4cGVjdGVkKSkKKworICAg
IGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKKyAgICAgICAgX19jbXBfXyA9IF9jbXBfcmFp
c2VzX3R5cGVfZXJyb3IKKworICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFsKToKKyAgICAgICAg
aW1wb3J0IG51bXB5IGFzIG5wCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYWN0dWFsID0g
bnAuYXNhcnJheShhY3R1YWwpCisgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCJjYW5ub3QgY29tcGFyZSAnezB9JyB0byBudW1weS5uZGFycmF5Ii5m
b3JtYXQoYWN0dWFsKSkKKworICAgICAgICBpZiBhY3R1YWwuc2hhcGUgIT0gc2VsZi5leHBlY3Rl
ZC5zaGFwZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBBcHBy
b3hCYXNlLl9fZXFfXyhzZWxmLCBhY3R1YWwpCisKKyAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25z
KHNlbGYsIGFjdHVhbCk6CisgICAgICAgIGltcG9ydCBudW1weSBhcyBucAorCisgICAgICAgICMg
V2UgY2FuIGJlIHN1cmUgdGhhdCBgYWN0dWFsYCBpcyBhIG51bXB5IGFycmF5LCBiZWNhdXNlIGl0
J3MKKyAgICAgICAgIyBjYXN0ZWQgaW4gYF9fZXFfX2AgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byBg
QXBwcm94QmFzZS5fX2VxX19gLAorICAgICAgICAjIHdoaWNoIGlzIHRoZSBvbmx5IG1ldGhvZCB0
aGF0IGNhbGxzIHRoaXMgb25lLgorICAgICAgICBmb3IgaSBpbiBucC5uZGluZGV4KHNlbGYuZXhw
ZWN0ZWQuc2hhcGUpOgorICAgICAgICAgICAgeWllbGQgYWN0dWFsW2ldLCBzZWxmLmV4cGVjdGVk
W2ldCisKKworY2xhc3MgQXBwcm94TWFwcGluZyhBcHByb3hCYXNlKToKKyAgICAiIiIKKyAgICBQ
ZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZvciBtYXBwaW5ncyB3aGVyZSB0aGUgdmFs
dWVzIGFyZSBudW1iZXJzCisgICAgKHRoZSBrZXlzIGNhbiBiZSBhbnl0aGluZykuCisgICAgIiIi
CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiYXBwcm94KHswIXJ9
KSIuZm9ybWF0KGRpY3QoCisgICAgICAgICAgICAoaywgc2VsZi5fYXBwcm94X3NjYWxhcih2KSkK
KyAgICAgICAgICAgIGZvciBrLCB2IGluIHNlbGYuZXhwZWN0ZWQuaXRlbXMoKSkpCisKKyAgICBk
ZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6CisgICAgICAgIGlmIHNldChhY3R1YWwua2V5cygpKSAh
PSBzZXQoc2VsZi5leHBlY3RlZC5rZXlzKCkpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgcmV0dXJuIEFwcHJveEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKKworICAgIGRl
ZiBfeWllbGRfY29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKKyAgICAgICAgZm9yIGsgaW4gc2Vs
Zi5leHBlY3RlZC5rZXlzKCk6CisgICAgICAgICAgICB5aWVsZCBhY3R1YWxba10sIHNlbGYuZXhw
ZWN0ZWRba10KKworCitjbGFzcyBBcHByb3hTZXF1ZW5jZShBcHByb3hCYXNlKToKKyAgICAiIiIK
KyAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZvciBzZXF1ZW5jZXMgb2YgbnVt
YmVycy4KKyAgICAiIiIKKworICAgICMgVGVsbCBudW1weSB0byB1c2Ugb3VyIGBfX2VxX19gIG9w
ZXJhdG9yIGluc3RlYWQgb2YgaXRzLgorICAgIF9fYXJyYXlfcHJpb3JpdHlfXyA9IDEwMAorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBzZXFfdHlwZSA9IHR5cGUoc2VsZi5leHBl
Y3RlZCkKKyAgICAgICAgaWYgc2VxX3R5cGUgbm90IGluICh0dXBsZSwgbGlzdCwgc2V0KToKKyAg
ICAgICAgICAgIHNlcV90eXBlID0gbGlzdAorICAgICAgICByZXR1cm4gImFwcHJveCh7MCFyfSki
LmZvcm1hdChzZXFfdHlwZSgKKyAgICAgICAgICAgIHNlbGYuX2FwcHJveF9zY2FsYXIoeCkgZm9y
IHggaW4gc2VsZi5leHBlY3RlZCkpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Cisg
ICAgICAgIGlmIGxlbihhY3R1YWwpICE9IGxlbihzZWxmLmV4cGVjdGVkKToKKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5fX2VxX18oc2VsZiwgYWN0
dWFsKQorCisgICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgorICAgICAg
ICByZXR1cm4gemlwKGFjdHVhbCwgc2VsZi5leHBlY3RlZCkKKworCitjbGFzcyBBcHByb3hTY2Fs
YXIoQXBwcm94QmFzZSk6CisgICAgIiIiCisgICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJp
c29ucyBmb3Igc2luZ2xlIG51bWJlcnMgb25seS4KKyAgICAiIiIKKworICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIHN0cmluZyBjb21tdW5pY2F0
aW5nIGJvdGggdGhlIGV4cGVjdGVkIHZhbHVlIGFuZCB0aGUgdG9sZXJhbmNlCisgICAgICAgIGZv
ciB0aGUgY29tcGFyaXNvbiBiZWluZyBtYWRlLCBlLmcuICcxLjAgKy0gMWUtNicuICBVc2UgdGhl
IHVuaWNvZGUKKyAgICAgICAgcGx1cy9taW51cyBzeW1ib2wgaWYgdGhpcyBpcyBweXRob24zIChp
dCdzIHRvbyBoYXJkIHRvIGdldCByaWdodCBmb3IKKyAgICAgICAgcHl0aG9uMikuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZXhwZWN0ZWQsIGNvbXBsZXgpOgorICAg
ICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmV4cGVjdGVkKQorCisgICAgICAgICMgSW5maW5pdGll
cyBhcmVuJ3QgY29tcGFyZWQgdXNpbmcgdG9sZXJhbmNlcywgc28gZG9uJ3Qgc2hvdyBhCisgICAg
ICAgICMgdG9sZXJhbmNlLgorICAgICAgICBpZiBtYXRoLmlzaW5mKHNlbGYuZXhwZWN0ZWQpOgor
ICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmV4cGVjdGVkKQorCisgICAgICAgICMgSWYgYSBz
ZW5zaWJsZSB0b2xlcmFuY2UgY2FuJ3QgYmUgY2FsY3VsYXRlZCwgc2VsZi50b2xlcmFuY2Ugd2ls
bAorICAgICAgICAjIHJhaXNlIGEgVmFsdWVFcnJvci4gIEluIHRoaXMgY2FzZSwgZGlzcGxheSAn
Pz8/Jy4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmV0dGVkX3RvbGVyYW5jZSA9ICd7Oi4x
ZX0nLmZvcm1hdChzZWxmLnRvbGVyYW5jZSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Cisg
ICAgICAgICAgICB2ZXR0ZWRfdG9sZXJhbmNlID0gJz8/PycKKworICAgICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvWzBdID09IDI6CisgICAgICAgICAgICByZXR1cm4gJ3swfSArLSB7MX0nLmZvcm1h
dChzZWxmLmV4cGVjdGVkLCB2ZXR0ZWRfdG9sZXJhbmNlKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmV0dXJuIHUnezB9IFx1MDBiMSB7MX0nLmZvcm1hdChzZWxmLmV4cGVjdGVkLCB2ZXR0
ZWRfdG9sZXJhbmNlKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGVxdWFsIHRvIHRo
ZSBleHBlY3RlZCB2YWx1ZSB3aXRoaW4KKyAgICAgICAgdGhlIHByZS1zcGVjaWZpZWQgdG9sZXJh
bmNlLgorICAgICAgICAiIiIKKworICAgICAgICAjIFNob3J0LWNpcmN1aXQgZXhhY3QgZXF1YWxp
dHkuCisgICAgICAgIGlmIGFjdHVhbCA9PSBzZWxmLmV4cGVjdGVkOgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKworICAgICAgICAjIEFsbG93IHRoZSB1c2VyIHRvIGNvbnRyb2wgd2hldGhlciBO
YU5zIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIGVhY2gKKyAgICAgICAgIyBvdGhlciBvciBub3Qu
ICBUaGUgYWJzKCkgY2FsbHMgYXJlIGZvciBjb21wYXRpYmlsaXR5IHdpdGggY29tcGxleAorICAg
ICAgICAjIG51bWJlcnMuCisgICAgICAgIGlmIG1hdGguaXNuYW4oYWJzKHNlbGYuZXhwZWN0ZWQp
KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5hbl9vayBhbmQgbWF0aC5pc25hbihhYnMoYWN0
dWFsKSkKKworICAgICAgICAjIEluZmluaXR5IHNob3VsZG4ndCBiZSBhcHByb3hpbWF0ZWx5IGVx
dWFsIHRvIGFueXRoaW5nIGJ1dCBpdHNlbGYsIGJ1dAorICAgICAgICAjIGlmIHRoZXJlJ3MgYSBy
ZWxhdGl2ZSB0b2xlcmFuY2UsIGl0IHdpbGwgYmUgaW5maW5pdGUgYW5kIGluZmluaXR5CisgICAg
ICAgICMgd2lsbCBzZWVtIGFwcHJveGltYXRlbHkgZXF1YWwgdG8gZXZlcnl0aGluZy4gIFRoZSBl
cXVhbC10by1pdHNlbGYKKyAgICAgICAgIyBjYXNlIHdvdWxkIGhhdmUgYmVlbiBzaG9ydCBjaXJj
dWl0ZWQgYWJvdmUsIHNvIGhlcmUgd2UgY2FuIGp1c3QKKyAgICAgICAgIyByZXR1cm4gZmFsc2Ug
aWYgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGluZmluaXRlLiAgVGhlIGFicygpIGNhbGwgaXMKKyAg
ICAgICAgIyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGNvbXBsZXggbnVtYmVycy4KKyAgICAgICAg
aWYgbWF0aC5pc2luZihhYnMoc2VsZi5leHBlY3RlZCkpOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgIyBSZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIG51bWJlcnMgYXJlIHdpdGhp
biB0aGUgdG9sZXJhbmNlLgorICAgICAgICByZXR1cm4gYWJzKHNlbGYuZXhwZWN0ZWQgLSBhY3R1
YWwpIDw9IHNlbGYudG9sZXJhbmNlCisKKyAgICBfX2hhc2hfXyA9IE5vbmUKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiB0b2xlcmFuY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm4gdGhlIHRvbGVyYW5jZSBmb3IgdGhlIGNvbXBhcmlzb24uICBUaGlzIGNvdWxkIGJlIGVpdGhl
ciBhbgorICAgICAgICBhYnNvbHV0ZSB0b2xlcmFuY2Ugb3IgYSByZWxhdGl2ZSB0b2xlcmFuY2Us
IGRlcGVuZGluZyBvbiB3aGF0IHRoZSB1c2VyCisgICAgICAgIHNwZWNpZmllZCBvciB3aGljaCB3
b3VsZCBiZSBsYXJnZXIuCisgICAgICAgICIiIgorICAgICAgICBkZWYgc2V0X2RlZmF1bHQoeCwg
ZGVmYXVsdCk6CisgICAgICAgICAgICByZXR1cm4geCBpZiB4IGlzIG5vdCBOb25lIGVsc2UgZGVm
YXVsdAorCisgICAgICAgICMgRmlndXJlIG91dCB3aGF0IHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2Ug
c2hvdWxkIGJlLiAgYGBzZWxmLmFic2BgIGlzCisgICAgICAgICMgZWl0aGVyIE5vbmUgb3IgYSB2
YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCisgICAgICAgIGFic29sdXRlX3RvbGVyYW5jZSA9
IHNldF9kZWZhdWx0KHNlbGYuYWJzLCAxZS0xMikKKworICAgICAgICBpZiBhYnNvbHV0ZV90b2xl
cmFuY2UgPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYWJzb2x1dGUgdG9sZXJh
bmNlIGNhbid0IGJlIG5lZ2F0aXZlOiB7fSIuZm9ybWF0KGFic29sdXRlX3RvbGVyYW5jZSkpCisg
ICAgICAgIGlmIG1hdGguaXNuYW4oYWJzb2x1dGVfdG9sZXJhbmNlKToKKyAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImFic29sdXRlIHRvbGVyYW5jZSBjYW4ndCBiZSBOYU4uIikKKworICAg
ICAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbiBhYnNvbHV0ZSB0b2xlcmFuY2UgYnV0IG5v
dCBhIHJlbGF0aXZlIG9uZSwKKyAgICAgICAgIyBqdXN0IHJldHVybiB0aGUgYWJzb2x1dGUgdG9s
ZXJhbmNlLgorICAgICAgICBpZiBzZWxmLnJlbCBpcyBOb25lOgorICAgICAgICAgICAgaWYgc2Vs
Zi5hYnMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGFic29sdXRlX3RvbGVy
YW5jZQorCisgICAgICAgICMgRmlndXJlIG91dCB3aGF0IHRoZSByZWxhdGl2ZSB0b2xlcmFuY2Ug
c2hvdWxkIGJlLiAgYGBzZWxmLnJlbGBgIGlzCisgICAgICAgICMgZWl0aGVyIE5vbmUgb3IgYSB2
YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuICBUaGlzIGlzIGRvbmUgYWZ0ZXIKKyAgICAgICAg
IyB3ZSd2ZSBtYWRlIHN1cmUgdGhlIHVzZXIgZGlkbid0IGFzayBmb3IgYW4gYWJzb2x1dGUgdG9s
ZXJhbmNlIG9ubHksCisgICAgICAgICMgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIHJhaXNlIGVy
cm9ycyBhYm91dCB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlIGlmCisgICAgICAgICMgd2UgYXJlbid0
IGV2ZW4gZ29pbmcgdG8gdXNlIGl0LgorICAgICAgICByZWxhdGl2ZV90b2xlcmFuY2UgPSBzZXRf
ZGVmYXVsdChzZWxmLnJlbCwgMWUtNikgKiBhYnMoc2VsZi5leHBlY3RlZCkKKworICAgICAgICBp
ZiByZWxhdGl2ZV90b2xlcmFuY2UgPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
cmVsYXRpdmUgdG9sZXJhbmNlIGNhbid0IGJlIG5lZ2F0aXZlOiB7fSIuZm9ybWF0KGFic29sdXRl
X3RvbGVyYW5jZSkpCisgICAgICAgIGlmIG1hdGguaXNuYW4ocmVsYXRpdmVfdG9sZXJhbmNlKToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlbGF0aXZlIHRvbGVyYW5jZSBjYW4ndCBi
ZSBOYU4uIikKKworICAgICAgICAjIFJldHVybiB0aGUgbGFyZ2VyIG9mIHRoZSByZWxhdGl2ZSBh
bmQgYWJzb2x1dGUgdG9sZXJhbmNlcy4KKyAgICAgICAgcmV0dXJuIG1heChyZWxhdGl2ZV90b2xl
cmFuY2UsIGFic29sdXRlX3RvbGVyYW5jZSkKKworCitkZWYgYXBwcm94KGV4cGVjdGVkLCByZWw9
Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1GYWxzZSk6CisgICAgIiIiCisgICAgQXNzZXJ0IHRoYXQg
dHdvIG51bWJlcnMgKG9yIHR3byBzZXRzIG9mIG51bWJlcnMpIGFyZSBlcXVhbCB0byBlYWNoIG90
aGVyCisgICAgd2l0aGluIHNvbWUgdG9sZXJhbmNlLgorCisgICAgRHVlIHRvIHRoZSBgaW50cmlj
YWNpZXMgb2YgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpY2BfXywgbnVtYmVycyB0aGF0IHdlCisg
ICAgd291bGQgaW50dWl0aXZlbHkgZXhwZWN0IHRvIGJlIGVxdWFsIGFyZSBub3QgYWx3YXlzIHNv
OjoKKworICAgICAgICA+Pj4gMC4xICsgMC4yID09IDAuMworICAgICAgICBGYWxzZQorCisgICAg
X18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy90dXRvcmlhbC9mbG9hdGluZ3BvaW50Lmh0bWwK
KworICAgIFRoaXMgcHJvYmxlbSBpcyBjb21tb25seSBlbmNvdW50ZXJlZCB3aGVuIHdyaXRpbmcg
dGVzdHMsIGUuZy4gd2hlbiBtYWtpbmcKKyAgICBzdXJlIHRoYXQgZmxvYXRpbmctcG9pbnQgdmFs
dWVzIGFyZSB3aGF0IHlvdSBleHBlY3QgdGhlbSB0byBiZS4gIE9uZSB3YXkgdG8KKyAgICBkZWFs
IHdpdGggdGhpcyBwcm9ibGVtIGlzIHRvIGFzc2VydCB0aGF0IHR3byBmbG9hdGluZy1wb2ludCBu
dW1iZXJzIGFyZQorICAgIGVxdWFsIHRvIHdpdGhpbiBzb21lIGFwcHJvcHJpYXRlIHRvbGVyYW5j
ZTo6CisKKyAgICAgICAgPj4+IGFicygoMC4xICsgMC4yKSAtIDAuMykgPCAxZS02CisgICAgICAg
IFRydWUKKworICAgIEhvd2V2ZXIsIGNvbXBhcmlzb25zIGxpa2UgdGhpcyBhcmUgdGVkaW91cyB0
byB3cml0ZSBhbmQgZGlmZmljdWx0IHRvCisgICAgdW5kZXJzdGFuZC4gIEZ1cnRoZXJtb3JlLCBh
YnNvbHV0ZSBjb21wYXJpc29ucyBsaWtlIHRoZSBvbmUgYWJvdmUgYXJlCisgICAgdXN1YWxseSBk
aXNjb3VyYWdlZCBiZWNhdXNlIHRoZXJlJ3Mgbm8gdG9sZXJhbmNlIHRoYXQgd29ya3Mgd2VsbCBm
b3IgYWxsCisgICAgc2l0dWF0aW9ucy4gIGBgMWUtNmBgIGlzIGdvb2QgZm9yIG51bWJlcnMgYXJv
dW5kIGBgMWBgLCBidXQgdG9vIHNtYWxsIGZvcgorICAgIHZlcnkgYmlnIG51bWJlcnMgYW5kIHRv
byBiaWcgZm9yIHZlcnkgc21hbGwgb25lcy4gIEl0J3MgYmV0dGVyIHRvIGV4cHJlc3MKKyAgICB0
aGUgdG9sZXJhbmNlIGFzIGEgZnJhY3Rpb24gb2YgdGhlIGV4cGVjdGVkIHZhbHVlLCBidXQgcmVs
YXRpdmUgY29tcGFyaXNvbnMKKyAgICBsaWtlIHRoYXQgYXJlIGV2ZW4gbW9yZSBkaWZmaWN1bHQg
dG8gd3JpdGUgY29ycmVjdGx5IGFuZCBjb25jaXNlbHkuCisKKyAgICBUaGUgYGBhcHByb3hgYCBj
bGFzcyBwZXJmb3JtcyBmbG9hdGluZy1wb2ludCBjb21wYXJpc29ucyB1c2luZyBhIHN5bnRheAor
ICAgIHRoYXQncyBhcyBpbnR1aXRpdmUgYXMgcG9zc2libGU6OgorCisgICAgICAgID4+PiBmcm9t
IHB5dGVzdCBpbXBvcnQgYXBwcm94CisgICAgICAgID4+PiAwLjEgKyAwLjIgPT0gYXBwcm94KDAu
MykKKyAgICAgICAgVHJ1ZQorCisgICAgVGhlIHNhbWUgc3ludGF4IGFsc28gd29ya3MgZm9yIHNl
cXVlbmNlcyBvZiBudW1iZXJzOjoKKworICAgICAgICA+Pj4gKDAuMSArIDAuMiwgMC4yICsgMC40
KSA9PSBhcHByb3goKDAuMywgMC42KSkKKyAgICAgICAgVHJ1ZQorCisgICAgRGljdGlvbmFyeSAq
dmFsdWVzKjo6CisKKyAgICAgICAgPj4+IHsnYSc6IDAuMSArIDAuMiwgJ2InOiAwLjIgKyAwLjR9
ID09IGFwcHJveCh7J2EnOiAwLjMsICdiJzogMC42fSkKKyAgICAgICAgVHJ1ZQorCisgICAgQW5k
IGBgbnVtcHlgYCBhcnJheXM6OgorCisgICAgICAgID4+PiBpbXBvcnQgbnVtcHkgYXMgbnAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBk
b2N0ZXN0OiArU0tJUAorICAgICAgICA+Pj4gbnAuYXJyYXkoWzAuMSwgMC4yXSkgKyBucC5hcnJh
eShbMC4yLCAwLjRdKSA9PSBhcHByb3gobnAuYXJyYXkoWzAuMywgMC42XSkpICMgZG9jdGVzdDog
K1NLSVAKKyAgICAgICAgVHJ1ZQorCisgICAgQnkgZGVmYXVsdCwgYGBhcHByb3hgYCBjb25zaWRl
cnMgbnVtYmVycyB3aXRoaW4gYSByZWxhdGl2ZSB0b2xlcmFuY2Ugb2YKKyAgICBgYDFlLTZgYCAo
aS5lLiBvbmUgcGFydCBpbiBhIG1pbGxpb24pIG9mIGl0cyBleHBlY3RlZCB2YWx1ZSB0byBiZSBl
cXVhbC4KKyAgICBUaGlzIHRyZWF0bWVudCB3b3VsZCBsZWFkIHRvIHN1cnByaXNpbmcgcmVzdWx0
cyBpZiB0aGUgZXhwZWN0ZWQgdmFsdWUgd2FzCisgICAgYGAwLjBgYCwgYmVjYXVzZSBub3RoaW5n
IGJ1dCBgYDAuMGBgIGl0c2VsZiBpcyByZWxhdGl2ZWx5IGNsb3NlIHRvIGBgMC4wYGAuCisgICAg
VG8gaGFuZGxlIHRoaXMgY2FzZSBsZXNzIHN1cnByaXNpbmdseSwgYGBhcHByb3hgYCBhbHNvIGNv
bnNpZGVycyBudW1iZXJzCisgICAgd2l0aGluIGFuIGFic29sdXRlIHRvbGVyYW5jZSBvZiBgYDFl
LTEyYGAgb2YgaXRzIGV4cGVjdGVkIHZhbHVlIHRvIGJlCisgICAgZXF1YWwuICBJbmZpbml0eSBh
bmQgTmFOIGFyZSBzcGVjaWFsIGNhc2VzLiAgSW5maW5pdHkgaXMgb25seSBjb25zaWRlcmVkCisg
ICAgZXF1YWwgdG8gaXRzZWxmLCByZWdhcmRsZXNzIG9mIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2Uu
ICBOYU4gaXMgbm90CisgICAgY29uc2lkZXJlZCBlcXVhbCB0byBhbnl0aGluZyBieSBkZWZhdWx0
LCBidXQgeW91IGNhbiBtYWtlIGl0IGJlIGVxdWFsIHRvCisgICAgaXRzZWxmIGJ5IHNldHRpbmcg
dGhlIGBgbmFuX29rYGAgYXJndW1lbnQgdG8gVHJ1ZS4gIChUaGlzIGlzIG1lYW50IHRvCisgICAg
ZmFjaWxpdGF0ZSBjb21wYXJpbmcgYXJyYXlzIHRoYXQgdXNlIE5hTiB0byBtZWFuICJubyBkYXRh
Ii4pCisKKyAgICBCb3RoIHRoZSByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcyBjYW4g
YmUgY2hhbmdlZCBieSBwYXNzaW5nCisgICAgYXJndW1lbnRzIHRvIHRoZSBgYGFwcHJveGBgIGNv
bnN0cnVjdG9yOjoKKworICAgICAgICA+Pj4gMS4wMDAxID09IGFwcHJveCgxKQorICAgICAgICBG
YWxzZQorICAgICAgICA+Pj4gMS4wMDAxID09IGFwcHJveCgxLCByZWw9MWUtMykKKyAgICAgICAg
VHJ1ZQorICAgICAgICA+Pj4gMS4wMDAxID09IGFwcHJveCgxLCBhYnM9MWUtMykKKyAgICAgICAg
VHJ1ZQorCisgICAgSWYgeW91IHNwZWNpZnkgYGBhYnNgYCBidXQgbm90IGBgcmVsYGAsIHRoZSBj
b21wYXJpc29uIHdpbGwgbm90IGNvbnNpZGVyCisgICAgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBh
dCBhbGwuICBJbiBvdGhlciB3b3JkcywgdHdvIG51bWJlcnMgdGhhdCBhcmUgd2l0aGluCisgICAg
dGhlIGRlZmF1bHQgcmVsYXRpdmUgdG9sZXJhbmNlIG9mIGBgMWUtNmBgIHdpbGwgc3RpbGwgYmUg
Y29uc2lkZXJlZCB1bmVxdWFsCisgICAgaWYgdGhleSBleGNlZWQgdGhlIHNwZWNpZmllZCBhYnNv
bHV0ZSB0b2xlcmFuY2UuICBJZiB5b3Ugc3BlY2lmeSBib3RoCisgICAgYGBhYnNgYCBhbmQgYGBy
ZWxgYCwgdGhlIG51bWJlcnMgd2lsbCBiZSBjb25zaWRlcmVkIGVxdWFsIGlmIGVpdGhlcgorICAg
IHRvbGVyYW5jZSBpcyBtZXQ6OgorCisgICAgICAgID4+PiAxICsgMWUtOCA9PSBhcHByb3goMSkK
KyAgICAgICAgVHJ1ZQorICAgICAgICA+Pj4gMSArIDFlLTggPT0gYXBwcm94KDEsIGFicz0xZS0x
MikKKyAgICAgICAgRmFsc2UKKyAgICAgICAgPj4+IDEgKyAxZS04ID09IGFwcHJveCgxLCByZWw9
MWUtNiwgYWJzPTFlLTEyKQorICAgICAgICBUcnVlCisKKyAgICBJZiB5b3UncmUgdGhpbmtpbmcg
YWJvdXQgdXNpbmcgYGBhcHByb3hgYCwgdGhlbiB5b3UgbWlnaHQgd2FudCB0byBrbm93IGhvdwor
ICAgIGl0IGNvbXBhcmVzIHRvIG90aGVyIGdvb2Qgd2F5cyBvZiBjb21wYXJpbmcgZmxvYXRpbmct
cG9pbnQgbnVtYmVycy4gIEFsbCBvZgorICAgIHRoZXNlIGFsZ29yaXRobXMgYXJlIGJhc2VkIG9u
IHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSB0b2xlcmFuY2VzIGFuZCBzaG91bGQKKyAgICBhZ3JlZSBm
b3IgdGhlIG1vc3QgcGFydCwgYnV0IHRoZXkgZG8gaGF2ZSBtZWFuaW5nZnVsIGRpZmZlcmVuY2Vz
OgorCisgICAgLSBgYG1hdGguaXNjbG9zZShhLCBiLCByZWxfdG9sPTFlLTksIGFic190b2w9MC4w
KWBgOiAgVHJ1ZSBpZiB0aGUgcmVsYXRpdmUKKyAgICAgIHRvbGVyYW5jZSBpcyBtZXQgdy5yLnQu
IGVpdGhlciBgYGFgYCBvciBgYGJgYCBvciBpZiB0aGUgYWJzb2x1dGUKKyAgICAgIHRvbGVyYW5j
ZSBpcyBtZXQuICBCZWNhdXNlIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgaXMgY2FsY3VsYXRlZCB3
LnIudC4KKyAgICAgIGJvdGggYGBhYGAgYW5kIGBgYmBgLCB0aGlzIHRlc3QgaXMgc3ltbWV0cmlj
IChpLmUuICBuZWl0aGVyIGBgYWBgIG5vcgorICAgICAgYGBiYGAgaXMgYSAicmVmZXJlbmNlIHZh
bHVlIikuICBZb3UgaGF2ZSB0byBzcGVjaWZ5IGFuIGFic29sdXRlIHRvbGVyYW5jZQorICAgICAg
aWYgeW91IHdhbnQgdG8gY29tcGFyZSB0byBgYDAuMGBgIGJlY2F1c2UgdGhlcmUgaXMgbm8gdG9s
ZXJhbmNlIGJ5CisgICAgICBkZWZhdWx0LiAgT25seSBhdmFpbGFibGUgaW4gcHl0aG9uPj0zLjUu
ICBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXworCisgICAgICBfXyBodHRwczovL2RvY3MucHl0aG9u
Lm9yZy8zL2xpYnJhcnkvbWF0aC5odG1sI21hdGguaXNjbG9zZQorCisgICAgLSBgYG51bXB5Lmlz
Y2xvc2UoYSwgYiwgcnRvbD0xZS01LCBhdG9sPTFlLTgpYGA6IFRydWUgaWYgdGhlIGRpZmZlcmVu
Y2UKKyAgICAgIGJldHdlZW4gYGBhYGAgYW5kIGBgYmBgIGlzIGxlc3MgdGhhdCB0aGUgc3VtIG9m
IHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UKKyAgICAgIHcuci50LiBgYGJgYCBhbmQgdGhlIGFic29s
dXRlIHRvbGVyYW5jZS4gIEJlY2F1c2UgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZQorICAgICAgaXMg
b25seSBjYWxjdWxhdGVkIHcuci50LiBgYGJgYCwgdGhpcyB0ZXN0IGlzIGFzeW1tZXRyaWMgYW5k
IHlvdSBjYW4KKyAgICAgIHRoaW5rIG9mIGBgYmBgIGFzIHRoZSByZWZlcmVuY2UgdmFsdWUuICBT
dXBwb3J0IGZvciBjb21wYXJpbmcgc2VxdWVuY2VzCisgICAgICBpcyBwcm92aWRlZCBieSBgYG51
bXB5LmFsbGNsb3NlYGAuICBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXworCisgICAgICBfXyBodHRw
Oi8vZG9jcy5zY2lweS5vcmcvZG9jL251bXB5LTEuMTAuMC9yZWZlcmVuY2UvZ2VuZXJhdGVkL251
bXB5LmlzY2xvc2UuaHRtbAorCisgICAgLSBgYHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEFsbW9z
dEVxdWFsKGEsIGIpYGA6IFRydWUgaWYgYGBhYGAgYW5kIGBgYmBgCisgICAgICBhcmUgd2l0aGlu
IGFuIGFic29sdXRlIHRvbGVyYW5jZSBvZiBgYDFlLTdgYC4gIE5vIHJlbGF0aXZlIHRvbGVyYW5j
ZSBpcworICAgICAgY29uc2lkZXJlZCBhbmQgdGhlIGFic29sdXRlIHRvbGVyYW5jZSBjYW5ub3Qg
YmUgY2hhbmdlZCwgc28gdGhpcyBmdW5jdGlvbgorICAgICAgaXMgbm90IGFwcHJvcHJpYXRlIGZv
ciB2ZXJ5IGxhcmdlIG9yIHZlcnkgc21hbGwgbnVtYmVycy4gIEFsc28sIGl0J3Mgb25seQorICAg
ICAgYXZhaWxhYmxlIGluIHN1YmNsYXNzZXMgb2YgYGB1bml0dGVzdC5UZXN0Q2FzZWBgIGFuZCBp
dCdzIHVnbHkgYmVjYXVzZSBpdAorICAgICAgZG9lc24ndCBmb2xsb3cgUEVQOC4gIGBNb3JlIGlu
Zm9ybWF0aW9uLi4uYF9fCisKKyAgICAgIF9fIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGli
cmFyeS91bml0dGVzdC5odG1sI3VuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEFsbW9zdEVxdWFsCisK
KyAgICAtIGBgYSA9PSBweXRlc3QuYXBwcm94KGIsIHJlbD0xZS02LCBhYnM9MWUtMTIpYGA6IFRy
dWUgaWYgdGhlIHJlbGF0aXZlCisgICAgICB0b2xlcmFuY2UgaXMgbWV0IHcuci50LiBgYGJgYCBv
ciBpZiB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlIGlzIG1ldC4KKyAgICAgIEJlY2F1c2UgdGhlIHJl
bGF0aXZlIHRvbGVyYW5jZSBpcyBvbmx5IGNhbGN1bGF0ZWQgdy5yLnQuIGBgYmBgLCB0aGlzIHRl
c3QKKyAgICAgIGlzIGFzeW1tZXRyaWMgYW5kIHlvdSBjYW4gdGhpbmsgb2YgYGBiYGAgYXMgdGhl
IHJlZmVyZW5jZSB2YWx1ZS4gIEluIHRoZQorICAgICAgc3BlY2lhbCBjYXNlIHRoYXQgeW91IGV4
cGxpY2l0bHkgc3BlY2lmeSBhbiBhYnNvbHV0ZSB0b2xlcmFuY2UgYnV0IG5vdCBhCisgICAgICBy
ZWxhdGl2ZSB0b2xlcmFuY2UsIG9ubHkgdGhlIGFic29sdXRlIHRvbGVyYW5jZSBpcyBjb25zaWRl
cmVkLgorCisgICAgLi4gd2FybmluZzo6CisKKyAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMu
MgorCisgICAgICAgSW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW50IGJlaGF2aW9yLCBgYFR5
cGVFcnJvcmBgIGlzCisgICAgICAgcmFpc2VkIGZvciBgYD5gYCwgYGA+PWBgLCBgYDxgYCBhbmQg
YGA8PWBgIGNvbXBhcmlzb25zLgorICAgICAgIFRoZSBleGFtcGxlIGJlbG93IGlsbHVzdHJhdGVz
IHRoZSBwcm9ibGVtOjoKKworICAgICAgICAgICBhc3NlcnQgYXBwcm94KDAuMSkgPiAwLjEgKyAx
ZS0xMCAgIyBjYWxscyBhcHByb3goMC4xKS5fX2d0X18oMC4xICsgMWUtMTApCisgICAgICAgICAg
IGFzc2VydCAwLjEgKyAxZS0xMCA+IGFwcHJveCgwLjEpICAjIGNhbGxzIGFwcHJveCgwLjEpLl9f
bHRfXygwLjEgKyAxZS0xMCkKKworICAgICAgIEluIHRoZSBzZWNvbmQgZXhhbXBsZSBvbmUgZXhw
ZWN0cyBgYGFwcHJveCgwLjEpLl9fbGVfXygwLjEgKyAxZS0xMClgYAorICAgICAgIHRvIGJlIGNh
bGxlZC4gQnV0IGluc3RlYWQsIGBgYXBwcm94KDAuMSkuX19sdF9fKDAuMSArIDFlLTEwKWBgIGlz
IHVzZWQgdG8KKyAgICAgICBjb21wYXJpc29uLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGNhbGwgaGll
cmFyY2h5IG9mIHJpY2ggY29tcGFyaXNvbnMKKyAgICAgICBmb2xsb3dzIGEgZml4ZWQgYmVoYXZp
b3IuIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9fCisKKyAgICAgICBfXyBodHRwczovL2RvY3MucHl0
aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNvYmplY3QuX19nZV9fCisgICAgIiIi
CisKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNYXBwaW5nLCBTZXF1ZW5jZQorICAgIGZy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IFNUUklOR19UWVBFUyBhcyBTdHJpbmcKKworICAgICMg
RGVsZWdhdGUgdGhlIGNvbXBhcmlzb24gdG8gYSBjbGFzcyB0aGF0IGtub3dzIGhvdyB0byBkZWFs
IHdpdGggdGhlIHR5cGUKKyAgICAjIG9mIHRoZSBleHBlY3RlZCB2YWx1ZSAoZS5nLiBpbnQsIGZs
b2F0LCBsaXN0LCBkaWN0LCBudW1weS5hcnJheSwgZXRjKS4KKyAgICAjCisgICAgIyBUaGlzIGFy
Y2hpdGVjdHVyZSBpcyByZWFsbHkgZHJpdmVuIGJ5IHRoZSBuZWVkIHRvIHN1cHBvcnQgbnVtcHkg
YXJyYXlzLgorICAgICMgVGhlIG9ubHkgd2F5IHRvIG92ZXJyaWRlIGA9PWAgZm9yIGFycmF5cyB3
aXRob3V0IHJlcXVpcmluZyB0aGF0IGFwcHJveCBiZQorICAgICMgdGhlIGxlZnQgb3BlcmFuZCBp
cyB0byBpbmhlcml0IHRoZSBhcHByb3ggb2JqZWN0IGZyb20gYG51bXB5Lm5kYXJyYXlgLgorICAg
ICMgQnV0IHRoYXQgY2FuJ3QgYmUgYSBnZW5lcmFsIHNvbHV0aW9uLCBiZWNhdXNlIGl0IHJlcXVp
cmVzICgxKSBudW1weSB0byBiZQorICAgICMgaW5zdGFsbGVkIGFuZCAoMikgdGhlIGV4cGVjdGVk
IHZhbHVlIHRvIGJlIGEgbnVtcHkgYXJyYXkuICBTbyB0aGUgZ2VuZXJhbAorICAgICMgc29sdXRp
b24gaXMgdG8gZGVsZWdhdGUgZWFjaCB0eXBlIG9mIGV4cGVjdGVkIHZhbHVlIHRvIGEgZGlmZmVy
ZW50IGNsYXNzLgorICAgICMKKyAgICAjIFRoaXMgaGFzIHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCBt
YWRlIGl0IGVhc3kgdG8gc3VwcG9ydCBtYXBwaW5nIHR5cGVzCisgICAgIyAoaS5lLiBkaWN0KS4g
IFRoZSBvbGQgY29kZSBhY2NlcHRlZCBtYXBwaW5nIHR5cGVzLCBidXQgd291bGQgb25seSBjb21w
YXJlCisgICAgIyB0aGVpciBrZXlzLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCBtb3N0IHBl
b3BsZSB3b3VsZCBleHBlY3QuCisKKyAgICBpZiBfaXNfbnVtcHlfYXJyYXkoZXhwZWN0ZWQpOgor
ICAgICAgICBjbHMgPSBBcHByb3hOdW1weQorICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwg
TWFwcGluZyk6CisgICAgICAgIGNscyA9IEFwcHJveE1hcHBpbmcKKyAgICBlbGlmIGlzaW5zdGFu
Y2UoZXhwZWN0ZWQsIFNlcXVlbmNlKSBhbmQgbm90IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFN0cmlu
Zyk6CisgICAgICAgIGNscyA9IEFwcHJveFNlcXVlbmNlCisgICAgZWxzZToKKyAgICAgICAgY2xz
ID0gQXBwcm94U2NhbGFyCisKKyAgICByZXR1cm4gY2xzKGV4cGVjdGVkLCByZWwsIGFicywgbmFu
X29rKQorCisKK2RlZiBfaXNfbnVtcHlfYXJyYXkob2JqKToKKyAgICAiIiIKKyAgICBSZXR1cm4g
dHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgbnVtcHkgYXJyYXkuICBNYWtlIGEgc3BlY2lh
bCBlZmZvcnQgdG8KKyAgICBhdm9pZCBpbXBvcnRpbmcgbnVtcHkgdW5sZXNzIGl0J3MgcmVhbGx5
IG5lY2Vzc2FyeS4KKyAgICAiIiIKKyAgICBpbXBvcnQgaW5zcGVjdAorCisgICAgZm9yIGNscyBp
biBpbnNwZWN0LmdldG1ybyh0eXBlKG9iaikpOgorICAgICAgICBpZiBjbHMuX19tb2R1bGVfXyA9
PSAnbnVtcHknOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGltcG9ydCBudW1w
eSBhcyBucAorICAgICAgICAgICAgICAgIHJldHVybiBpc2luc3RhbmNlKG9iaiwgbnAubmRhcnJh
eSkKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICByZXR1cm4gRmFsc2UKKworCisjIGJ1aWx0aW4gcHl0ZXN0LnJhaXNlcyBoZWxwZXIK
KworZGVmIHJhaXNlcyhleHBlY3RlZF9leGNlcHRpb24sICphcmdzLCAqKmt3YXJncyk6CisgICAg
IiIiCisgICAgQXNzZXJ0IHRoYXQgYSBjb2RlIGJsb2NrL2Z1bmN0aW9uIGNhbGwgcmFpc2VzIGBg
ZXhwZWN0ZWRfZXhjZXB0aW9uYGAKKyAgICBhbmQgcmFpc2UgYSBmYWlsdXJlIGV4Y2VwdGlvbiBv
dGhlcndpc2UuCisKKyAgICBUaGlzIGhlbHBlciBwcm9kdWNlcyBhIGBgRXhjZXB0aW9uSW5mbygp
YGAgb2JqZWN0IChzZWUgYmVsb3cpLgorCisgICAgWW91IG1heSB1c2UgdGhpcyBmdW5jdGlvbiBh
cyBhIGNvbnRleHQgbWFuYWdlcjo6CisKKyAgICAgICAgPj4+IHdpdGggcmFpc2VzKFplcm9EaXZp
c2lvbkVycm9yKToKKyAgICAgICAgLi4uICAgIDEvMAorCisgICAgLi4gdmVyc2lvbmNoYW5nZWQ6
OiAyLjEwCisKKyAgICBJbiB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0geW91IG1heSB1c2UgdGhl
IGtleXdvcmQgYXJndW1lbnQKKyAgICBgYG1lc3NhZ2VgYCB0byBzcGVjaWZ5IGEgY3VzdG9tIGZh
aWx1cmUgbWVzc2FnZTo6CisKKyAgICAgICAgPj4+IHdpdGggcmFpc2VzKFplcm9EaXZpc2lvbkVy
cm9yLCBtZXNzYWdlPSJFeHBlY3RpbmcgWmVyb0RpdmlzaW9uRXJyb3IiKToKKyAgICAgICAgLi4u
ICAgIHBhc3MKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAg
ICAgICAgIC4uLgorICAgICAgICBGYWlsZWQ6IEV4cGVjdGluZyBaZXJvRGl2aXNpb25FcnJvcgor
CisgICAgLi4gbm90ZTo6CisKKyAgICAgICBXaGVuIHVzaW5nIGBgcHl0ZXN0LnJhaXNlc2BgIGFz
IGEgY29udGV4dCBtYW5hZ2VyLCBpdCdzIHdvcnRod2hpbGUgdG8KKyAgICAgICBub3RlIHRoYXQg
bm9ybWFsIGNvbnRleHQgbWFuYWdlciBydWxlcyBhcHBseSBhbmQgdGhhdCB0aGUgZXhjZXB0aW9u
CisgICAgICAgcmFpc2VkICptdXN0KiBiZSB0aGUgZmluYWwgbGluZSBpbiB0aGUgc2NvcGUgb2Yg
dGhlIGNvbnRleHQgbWFuYWdlci4KKyAgICAgICBMaW5lcyBvZiBjb2RlIGFmdGVyIHRoYXQsIHdp
dGhpbiB0aGUgc2NvcGUgb2YgdGhlIGNvbnRleHQgbWFuYWdlciB3aWxsCisgICAgICAgbm90IGJl
IGV4ZWN1dGVkLiBGb3IgZXhhbXBsZTo6CisKKyAgICAgICAgICAgPj4+IHZhbHVlID0gMTUKKyAg
ICAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y19pbmZvOgorICAgICAg
ICAgICAuLi4gICAgIGlmIHZhbHVlID4gMTA6CisgICAgICAgICAgIC4uLiAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgPD0gMTAiKQorICAgICAgICAgICAuLi4gICAgIGFz
c2VydCBleGNfaW5mby50eXBlID09IFZhbHVlRXJyb3IgICMgdGhpcyB3aWxsIG5vdCBleGVjdXRl
CisKKyAgICAgICBJbnN0ZWFkLCB0aGUgZm9sbG93aW5nIGFwcHJvYWNoIG11c3QgYmUgdGFrZW4g
KG5vdGUgdGhlIGRpZmZlcmVuY2UgaW4KKyAgICAgICBzY29wZSk6OgorCisgICAgICAgICAgID4+
PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGNfaW5mbzoKKyAgICAgICAgICAgLi4uICAg
ICBpZiB2YWx1ZSA+IDEwOgorICAgICAgICAgICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikKKyAgICAgICAgICAgLi4uCisgICAgICAgICAgID4+PiBh
c3NlcnQgZXhjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCisKKworICAgIFNpbmNlIHZlcnNpb24g
YGAzLjFgYCB5b3UgY2FuIHVzZSB0aGUga2V5d29yZCBhcmd1bWVudCBgYG1hdGNoYGAgdG8gYXNz
ZXJ0IHRoYXQgdGhlCisgICAgZXhjZXB0aW9uIG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKKwor
ICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9J211c3QgYmUgMCBvciBO
b25lJyk6CisgICAgICAgIC4uLiAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSAw
IG9yIE5vbmUiKQorCisgICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD1y
J211c3QgYmUgXGQrJCcpOgorICAgICAgICAuLi4gICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVl
IG11c3QgYmUgNDIiKQorCisgICAgKipMZWdhY3kgZm9ybXMqKgorCisgICAgVGhlIGZvcm1zIGJl
bG93IGFyZSBmdWxseSBzdXBwb3J0ZWQgYnV0IGFyZSBkaXNjb3VyYWdlZCBmb3IgbmV3IGNvZGUg
YmVjYXVzZSB0aGUKKyAgICBjb250ZXh0IG1hbmFnZXIgZm9ybSBpcyByZWdhcmRlZCBhcyBtb3Jl
IHJlYWRhYmxlIGFuZCBsZXNzIGVycm9yLXByb25lLgorCisgICAgSXQgaXMgcG9zc2libGUgdG8g
c3BlY2lmeSBhIGNhbGxhYmxlIGJ5IHBhc3NpbmcgYSB0by1iZS1jYWxsZWQgbGFtYmRhOjoKKwor
ICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBsYW1iZGE6IDEvMCkKKyAgICAg
ICAgPEV4Y2VwdGlvbkluZm8gLi4uPgorCisgICAgb3IgeW91IGNhbiBzcGVjaWZ5IGFuIGFyYml0
cmFyeSBjYWxsYWJsZSB3aXRoIGFyZ3VtZW50czo6CisKKyAgICAgICAgPj4+IGRlZiBmKHgpOiBy
ZXR1cm4gMS94CisgICAgICAgIC4uLgorICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVy
cm9yLCBmLCAwKQorICAgICAgICA8RXhjZXB0aW9uSW5mbyAuLi4+CisgICAgICAgID4+PiByYWlz
ZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGYsIHg9MCkKKyAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4u
PgorCisgICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBwYXNzIGEgc3RyaW5nIHRvIGJlIGV2YWx1
YXRlZCBhdCBydW50aW1lOjoKKworICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9y
LCAiZigwKSIpCisgICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KKworICAgIFRoZSBzdHJpbmcg
d2lsbCBiZSBldmFsdWF0ZWQgdXNpbmcgdGhlIHNhbWUgYGBsb2NhbHMoKWBgIGFuZCBgYGdsb2Jh
bHMoKWBgCisgICAgYXQgdGhlIG1vbWVudCBvZiB0aGUgYGByYWlzZXNgYCBjYWxsLgorCisgICAg
Li4gYXV0b2NsYXNzOjogX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvCisgICAgICAgIDptZW1i
ZXJzOgorCisgICAgLi4gbm90ZTo6CisgICAgICAgIFNpbWlsYXIgdG8gY2F1Z2h0IGV4Y2VwdGlv
biBvYmplY3RzIGluIFB5dGhvbiwgZXhwbGljaXRseSBjbGVhcmluZworICAgICAgICBsb2NhbCBy
ZWZlcmVuY2VzIHRvIHJldHVybmVkIGBgRXhjZXB0aW9uSW5mb2BgIG9iamVjdHMgY2FuCisgICAg
ICAgIGhlbHAgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBzcGVlZCB1cCBpdHMgZ2FyYmFnZSBjb2xs
ZWN0aW9uLgorCisgICAgICAgIENsZWFyaW5nIHRob3NlIHJlZmVyZW5jZXMgYnJlYWtzIGEgcmVm
ZXJlbmNlIGN5Y2xlCisgICAgICAgIChgYEV4Y2VwdGlvbkluZm9gYCAtLT4gY2F1Z2h0IGV4Y2Vw
dGlvbiAtLT4gZnJhbWUgc3RhY2sgcmFpc2luZworICAgICAgICB0aGUgZXhjZXB0aW9uIC0tPiBj
dXJyZW50IGZyYW1lIHN0YWNrIC0tPiBsb2NhbCB2YXJpYWJsZXMgLS0+CisgICAgICAgIGBgRXhj
ZXB0aW9uSW5mb2BgKSB3aGljaCBtYWtlcyBQeXRob24ga2VlcCBhbGwgb2JqZWN0cyByZWZlcmVu
Y2VkCisgICAgICAgIGZyb20gdGhhdCBjeWNsZSAoaW5jbHVkaW5nIGFsbCBsb2NhbCB2YXJpYWJs
ZXMgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgZnJhbWUpIGFsaXZlIHVudGlsIHRoZSBuZXh0IGN5
Y2xpYyBnYXJiYWdlIGNvbGxlY3Rpb24gcnVuLiBTZWUgdGhlCisgICAgICAgIG9mZmljaWFsIFB5
dGhvbiBgYHRyeWBgIHN0YXRlbWVudCBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbGVkCisg
ICAgICAgIGluZm9ybWF0aW9uLgorCisgICAgIiIiCisgICAgX190cmFjZWJhY2toaWRlX18gPSBU
cnVlCisgICAgbXNnID0gKCJleGNlcHRpb25zIG11c3QgYmUgb2xkLXN0eWxlIGNsYXNzZXMgb3Ii
CisgICAgICAgICAgICIgZGVyaXZlZCBmcm9tIEJhc2VFeGNlcHRpb24sIG5vdCAlcyIpCisgICAg
aWYgaXNpbnN0YW5jZShleHBlY3RlZF9leGNlcHRpb24sIHR1cGxlKToKKyAgICAgICAgZm9yIGV4
YyBpbiBleHBlY3RlZF9leGNlcHRpb246CisgICAgICAgICAgICBpZiBub3QgaXNjbGFzcyhleGMp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBlKGV4YykpCisgICAg
ZWxpZiBub3QgaXNjbGFzcyhleHBlY3RlZF9leGNlcHRpb24pOgorICAgICAgICByYWlzZSBUeXBl
RXJyb3IobXNnICUgdHlwZShleHBlY3RlZF9leGNlcHRpb24pKQorCisgICAgbWVzc2FnZSA9ICJE
SUQgTk9UIFJBSVNFIHswfSIuZm9ybWF0KGV4cGVjdGVkX2V4Y2VwdGlvbikKKyAgICBtYXRjaF9l
eHByID0gTm9uZQorCisgICAgaWYgbm90IGFyZ3M6CisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBr
d2FyZ3M6CisgICAgICAgICAgICBtZXNzYWdlID0ga3dhcmdzLnBvcCgibWVzc2FnZSIpCisgICAg
ICAgIGlmICJtYXRjaCIgaW4ga3dhcmdzOgorICAgICAgICAgICAgbWF0Y2hfZXhwciA9IGt3YXJn
cy5wb3AoIm1hdGNoIikKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiBtYXRjaGluZyAnezB9JyIu
Zm9ybWF0KG1hdGNoX2V4cHIpCisgICAgICAgIHJldHVybiBSYWlzZXNDb250ZXh0KGV4cGVjdGVk
X2V4Y2VwdGlvbiwgbWVzc2FnZSwgbWF0Y2hfZXhwcikKKyAgICBlbGlmIGlzaW5zdGFuY2UoYXJn
c1swXSwgc3RyKToKKyAgICAgICAgY29kZSwgPSBhcmdzCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGNvZGUsIHN0cikKKyAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAg
IGxvYyA9IGZyYW1lLmZfbG9jYWxzLmNvcHkoKQorICAgICAgICBsb2MudXBkYXRlKGt3YXJncykK
KyAgICAgICAgIyBwcmludCAicmFpc2VzIGZyYW1lIHNjb3BlOiAlciIgJSBmcmFtZS5mX2xvY2Fs
cworICAgICAgICB0cnk6CisgICAgICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2Uo
Y29kZSkuY29tcGlsZSgpCisgICAgICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIGZyYW1l
LmZfZ2xvYmFscywgbG9jKQorICAgICAgICAgICAgIyBYWFggZGlkbidUIG1lYW4gZl9nbG9iYWxz
ID09IGZfbG9jYWxzIHNvbWV0aGluZyBzcGVjaWFsPworICAgICAgICAgICAgIyAgICAgdGhpcyBp
cyBkZXN0cm95ZWQgaGVyZSAuLi4KKyAgICAgICAgZXhjZXB0IGV4cGVjdGVkX2V4Y2VwdGlvbjoK
KyAgICAgICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIGVs
c2U6CisgICAgICAgIGZ1bmMgPSBhcmdzWzBdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZ1
bmMoKmFyZ3NbMTpdLCAqKmt3YXJncykKKyAgICAgICAgZXhjZXB0IGV4cGVjdGVkX2V4Y2VwdGlv
bjoKKyAgICAgICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAg
IGZhaWwobWVzc2FnZSkKKworCityYWlzZXMuRXhjZXB0aW9uID0gZmFpbC5FeGNlcHRpb24KKwor
CitjbGFzcyBSYWlzZXNDb250ZXh0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4
cGVjdGVkX2V4Y2VwdGlvbiwgbWVzc2FnZSwgbWF0Y2hfZXhwcik6CisgICAgICAgIHNlbGYuZXhw
ZWN0ZWRfZXhjZXB0aW9uID0gZXhwZWN0ZWRfZXhjZXB0aW9uCisgICAgICAgIHNlbGYubWVzc2Fn
ZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5tYXRjaF9leHByID0gbWF0Y2hfZXhwcgorICAgICAg
ICBzZWxmLmV4Y2luZm8gPSBOb25lCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAg
ICBzZWxmLmV4Y2luZm8gPSBvYmplY3QuX19uZXdfXyhfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbklu
Zm8pCisgICAgICAgIHJldHVybiBzZWxmLmV4Y2luZm8KKworICAgIGRlZiBfX2V4aXRfXyhzZWxm
LCAqdHApOgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgaWYgdHBb
MF0gaXMgTm9uZToKKyAgICAgICAgICAgIGZhaWwoc2VsZi5tZXNzYWdlKQorICAgICAgICBzZWxm
LmV4Y2luZm8uX19pbml0X18odHApCisgICAgICAgIHN1cHByZXNzX2V4Y2VwdGlvbiA9IGlzc3Vi
Y2xhc3Moc2VsZi5leGNpbmZvLnR5cGUsIHNlbGYuZXhwZWN0ZWRfZXhjZXB0aW9uKQorICAgICAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDIgYW5kIHN1cHByZXNzX2V4Y2VwdGlvbjoKKyAg
ICAgICAgICAgIHN5cy5leGNfY2xlYXIoKQorICAgICAgICBpZiBzZWxmLm1hdGNoX2V4cHI6Cisg
ICAgICAgICAgICBzZWxmLmV4Y2luZm8ubWF0Y2goc2VsZi5tYXRjaF9leHByKQorICAgICAgICBy
ZXR1cm4gc3VwcHJlc3NfZXhjZXB0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3JlY3dhcm4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGZjZWIxMGE3ZjM0MDQzZjQwZGM0Mzk2MDg5MWNhZGMyZmU0MWEyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVjd2Fybi5weQpAQCAtMCwwICsxLDIzNiBAQAorIiIi
IHJlY29yZGluZyB3YXJuaW5ncyBkdXJpbmcgdGVzdCBmdW5jdGlvbiBleGVjdXRpb24uICIiIgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgorCitpbXBvcnQgaW5zcGVjdAorCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0
IHB5CitpbXBvcnQgc3lzCitpbXBvcnQgd2FybmluZ3MKKworaW1wb3J0IHJlCisKK2Zyb20gX3B5
dGVzdC5maXh0dXJlcyBpbXBvcnQgeWllbGRfZml4dHVyZQorZnJvbSBfcHl0ZXN0Lm91dGNvbWVz
IGltcG9ydCBmYWlsCisKKworQHlpZWxkX2ZpeHR1cmUKK2RlZiByZWN3YXJuKCk6CisgICAgIiIi
UmV0dXJuIGEgV2FybmluZ3NSZWNvcmRlciBpbnN0YW5jZSB0aGF0IHByb3ZpZGVzIHRoZXNlIG1l
dGhvZHM6CisKKyAgICAqIGBgcG9wKGNhdGVnb3J5PU5vbmUpYGA6IHJldHVybiBsYXN0IHdhcm5p
bmcgbWF0Y2hpbmcgdGhlIGNhdGVnb3J5LgorICAgICogYGBjbGVhcigpYGA6IGNsZWFyIGxpc3Qg
b2Ygd2FybmluZ3MKKworICAgIFNlZSBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvd2Fy
bmluZ3MuaHRtbCBmb3IgaW5mb3JtYXRpb24KKyAgICBvbiB3YXJuaW5nIGNhdGVnb3JpZXMuCisg
ICAgIiIiCisgICAgd3JlYyA9IFdhcm5pbmdzUmVjb3JkZXIoKQorICAgIHdpdGggd3JlYzoKKyAg
ICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdkZWZhdWx0JykKKyAgICAgICAgeWllbGQgd3Jl
YworCisKK2RlZiBkZXByZWNhdGVkX2NhbGwoZnVuYz1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgor
ICAgICIiImNvbnRleHQgbWFuYWdlciB0aGF0IGNhbiBiZSB1c2VkIHRvIGVuc3VyZSBhIGJsb2Nr
IG9mIGNvZGUgdHJpZ2dlcnMgYQorICAgIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgb3IgYGBQZW5k
aW5nRGVwcmVjYXRpb25XYXJuaW5nYGA6OgorCisgICAgICAgID4+PiBpbXBvcnQgd2FybmluZ3MK
KyAgICAgICAgPj4+IGRlZiBhcGlfY2FsbF92MigpOgorICAgICAgICAuLi4gICAgIHdhcm5pbmdz
Lndhcm4oJ3VzZSB2MyBvZiB0aGlzIGFwaScsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAg
Li4uICAgICByZXR1cm4gMjAwCisKKyAgICAgICAgPj4+IHdpdGggZGVwcmVjYXRlZF9jYWxsKCk6
CisgICAgICAgIC4uLiAgICBhc3NlcnQgYXBpX2NhbGxfdjIoKSA9PSAyMDAKKworICAgIGBgZGVw
cmVjYXRlZF9jYWxsYGAgY2FuIGFsc28gYmUgdXNlZCBieSBwYXNzaW5nIGEgZnVuY3Rpb24gYW5k
IGBgKmFyZ3NgYCBhbmQgYGAqa3dhcmdzYGAsCisgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGVu
c3VyZSBjYWxsaW5nIGBgZnVuYygqYXJncywgKiprd2FyZ3MpYGAgcHJvZHVjZXMgb25lIG9mIHRo
ZSB3YXJuaW5ncworICAgIHR5cGVzIGFib3ZlLgorICAgICIiIgorICAgIGlmIG5vdCBmdW5jOgor
ICAgICAgICByZXR1cm4gX0RlcHJlY2F0ZWRDYWxsQ29udGV4dCgpCisgICAgZWxzZToKKyAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIHdpdGggX0RlcHJlY2F0ZWRDYWxs
Q29udGV4dCgpOgorICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorCisK
K2NsYXNzIF9EZXByZWNhdGVkQ2FsbENvbnRleHQob2JqZWN0KToKKyAgICAiIiJJbXBsZW1lbnRz
IHRoZSBsb2dpYyB0byBjYXB0dXJlIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGFzIGEgY29udGV4dCBt
YW5hZ2VyLiIiIgorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fY2Fw
dHVyZWRfY2F0ZWdvcmllcyA9IFtdCisgICAgICAgIHNlbGYuX29sZF93YXJuID0gd2FybmluZ3Mu
d2FybgorICAgICAgICBzZWxmLl9vbGRfd2Fybl9leHBsaWNpdCA9IHdhcm5pbmdzLndhcm5fZXhw
bGljaXQKKyAgICAgICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCA9IHNlbGYuX3dhcm5fZXhwbGlj
aXQKKyAgICAgICAgd2FybmluZ3Mud2FybiA9IHNlbGYuX3dhcm4KKworICAgIGRlZiBfd2Fybl9l
eHBsaWNpdChzZWxmLCBtZXNzYWdlLCBjYXRlZ29yeSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg
ICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBlbmQoY2F0ZWdvcnkpCisKKyAgICBkZWYg
X3dhcm4oc2VsZiwgbWVzc2FnZSwgY2F0ZWdvcnk9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAgICAgaWYgaXNpbnN0YW5jZShtZXNzYWdlLCBXYXJuaW5nKToKKyAgICAgICAgICAgIHNlbGYu
X2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKG1lc3NhZ2UuX19jbGFzc19fKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBlbmQoY2F0ZWdv
cnkpCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6
CisgICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQgPSBzZWxmLl9vbGRfd2Fybl9leHBsaWNp
dAorICAgICAgICB3YXJuaW5ncy53YXJuID0gc2VsZi5fb2xkX3dhcm4KKworICAgICAgICBpZiBl
eGNfdHlwZSBpcyBOb25lOgorICAgICAgICAgICAgZGVwcmVjYXRpb25fY2F0ZWdvcmllcyA9IChE
ZXByZWNhdGlvbldhcm5pbmcsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgICAg
ICBpZiBub3QgYW55KGlzc3ViY2xhc3MoYywgZGVwcmVjYXRpb25fY2F0ZWdvcmllcykgZm9yIGMg
aW4gc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcyk6CisgICAgICAgICAgICAgICAgX190cmFjZWJh
Y2toaWRlX18gPSBUcnVlCisgICAgICAgICAgICAgICAgbXNnID0gIkRpZCBub3QgcHJvZHVjZSBE
ZXByZWNhdGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIKKyAgICAgICAg
ICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cpCisKKworZGVmIHdhcm5zKGV4cGVjdGVk
X3dhcm5pbmcsICphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiQXNzZXJ0IHRoYXQgY29kZSByYWlz
ZXMgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHdhcm5pbmcuCisKKyAgICBTcGVjaWZpY2FsbHksIHRo
ZSBpbnB1dCBAZXhwZWN0ZWRfd2FybmluZyBjYW4gYmUgYSB3YXJuaW5nIGNsYXNzIG9yCisgICAg
dHVwbGUgb2Ygd2FybmluZyBjbGFzc2VzLCBhbmQgdGhlIGNvZGUgbXVzdCByZXR1cm4gdGhhdCB3
YXJuaW5nCisgICAgKGlmIGEgc2luZ2xlIGNsYXNzKSBvciBvbmUgb2YgdGhvc2Ugd2FybmluZ3Mg
KGlmIGEgdHVwbGUpLgorCisgICAgVGhpcyBoZWxwZXIgcHJvZHVjZXMgYSBsaXN0IG9mIGBgd2Fy
bmluZ3MuV2FybmluZ01lc3NhZ2VgYCBvYmplY3RzLAorICAgIG9uZSBmb3IgZWFjaCB3YXJuaW5n
IHJhaXNlZC4KKworICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgYSBjb250ZXh0IG1h
bmFnZXIsIG9yIGFueSBvZiB0aGUgb3RoZXIgd2F5cworICAgIGBgcHl0ZXN0LnJhaXNlc2BgIGNh
biBiZSB1c2VkOjoKKworICAgICAgICA+Pj4gd2l0aCB3YXJucyhSdW50aW1lV2FybmluZyk6Cisg
ICAgICAgIC4uLiAgICB3YXJuaW5ncy53YXJuKCJteSB3YXJuaW5nIiwgUnVudGltZVdhcm5pbmcp
CisKKyAgICBJbiB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0geW91IG1heSB1c2UgdGhlIGtleXdv
cmQgYXJndW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydAorICAgIHRoYXQgdGhlIGV4Y2VwdGlvbiBt
YXRjaGVzIGEgdGV4dCBvciByZWdleDo6CisKKyAgICAgICAgPj4+IHdpdGggd2FybnMoVXNlcldh
cm5pbmcsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgorICAgICAgICAuLi4gICAgIHdhcm5p
bmdzLndhcm4oInZhbHVlIG11c3QgYmUgMCBvciBOb25lIiwgVXNlcldhcm5pbmcpCisKKyAgICAg
ICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6Cisg
ICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigidmFsdWUgbXVzdCBiZSA0MiIsIFVzZXJXYXJu
aW5nKQorCisgICAgICAgID4+PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD1yJ211c3Qg
YmUgXGQrJCcpOgorICAgICAgICAuLi4gICAgIHdhcm5pbmdzLndhcm4oInRoaXMgaXMgbm90IGhl
cmUiLCBVc2VyV2FybmluZykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxh
c3QpOgorICAgICAgICAgIC4uLgorICAgICAgICBGYWlsZWQ6IERJRCBOT1QgV0FSTi4gTm8gd2Fy
bmluZ3Mgb2YgdHlwZSAuLi5Vc2VyV2FybmluZy4uLiB3YXMgZW1pdHRlZC4uLgorCisgICAgIiIi
CisgICAgbWF0Y2hfZXhwciA9IE5vbmUKKyAgICBpZiBub3QgYXJnczoKKyAgICAgICAgaWYgIm1h
dGNoIiBpbiBrd2FyZ3M6CisgICAgICAgICAgICBtYXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0
Y2giKQorICAgICAgICByZXR1cm4gV2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dhcm5pbmcsIG1h
dGNoX2V4cHI9bWF0Y2hfZXhwcikKKyAgICBlbGlmIGlzaW5zdGFuY2UoYXJnc1swXSwgc3RyKToK
KyAgICAgICAgY29kZSwgPSBhcmdzCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGNvZGUsIHN0
cikKKyAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgIGxvYyA9IGZyYW1l
LmZfbG9jYWxzLmNvcHkoKQorICAgICAgICBsb2MudXBkYXRlKGt3YXJncykKKworICAgICAgICB3
aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNoX2V4
cHIpOgorICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGNvZGUpLmNvbXBp
bGUoKQorICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMs
IGxvYykKKyAgICBlbHNlOgorICAgICAgICBmdW5jID0gYXJnc1swXQorICAgICAgICB3aXRoIFdh
cm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNoX2V4cHIpOgor
ICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3NbMTpdLCAqKmt3YXJncykKKworCitjbGFzcyBX
YXJuaW5nc1JlY29yZGVyKHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKToKKyAgICAiIiJBIGNvbnRl
eHQgbWFuYWdlciB0byByZWNvcmQgcmFpc2VkIHdhcm5pbmdzLgorCisgICAgQWRhcHRlZCBmcm9t
IGB3YXJuaW5ncy5jYXRjaF93YXJuaW5nc2AuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZik6CisgICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9faW5pdF9fKHJl
Y29yZD1UcnVlKQorICAgICAgICBzZWxmLl9lbnRlcmVkID0gRmFsc2UKKyAgICAgICAgc2VsZi5f
bGlzdCA9IFtdCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGlzdChzZWxmKToKKyAgICAgICAg
IiIiVGhlIGxpc3Qgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCisgICAgICAgIHJldHVybiBzZWxm
Ll9saXN0CisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaSk6CisgICAgICAgICIiIkdldCBh
IHJlY29yZGVkIHdhcm5pbmcgYnkgaW5kZXguIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9saXN0
W2ldCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICIiIkl0ZXJhdGUgdGhyb3Vn
aCB0aGUgcmVjb3JkZWQgd2FybmluZ3MuIiIiCisgICAgICAgIHJldHVybiBpdGVyKHNlbGYuX2xp
c3QpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgIiIiVGhlIG51bWJlciBvZiBy
ZWNvcmRlZCB3YXJuaW5ncy4iIiIKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9saXN0KQorCisg
ICAgZGVmIHBvcChzZWxmLCBjbHM9V2FybmluZyk6CisgICAgICAgICIiIlBvcCB0aGUgZmlyc3Qg
cmVjb3JkZWQgd2FybmluZywgcmFpc2UgZXhjZXB0aW9uIGlmIG5vdCBleGlzdHMuIiIiCisgICAg
ICAgIGZvciBpLCB3IGluIGVudW1lcmF0ZShzZWxmLl9saXN0KToKKyAgICAgICAgICAgIGlmIGlz
c3ViY2xhc3Mody5jYXRlZ29yeSwgY2xzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5f
bGlzdC5wb3AoaSkKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIHJh
aXNlIEFzc2VydGlvbkVycm9yKCIlciBub3QgZm91bmQgaW4gd2FybmluZyBsaXN0IiAlIGNscykK
KworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgIiIiQ2xlYXIgdGhlIGxpc3Qgb2YgcmVj
b3JkZWQgd2FybmluZ3MuIiIiCisgICAgICAgIHNlbGYuX2xpc3RbOl0gPSBbXQorCisgICAgZGVm
IF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fZW50ZXJlZDoKKyAgICAgICAgICAg
IF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9y
KCJDYW5ub3QgZW50ZXIgJXIgdHdpY2UiICUgc2VsZikKKyAgICAgICAgc2VsZi5fbGlzdCA9IHN1
cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZW50ZXJfXygpCisgICAgICAgIHdhcm5pbmdz
LnNpbXBsZWZpbHRlcignYWx3YXlzJykKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgorICAgICAgICBpZiBub3Qgc2VsZi5fZW50ZXJlZDoK
KyAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICAgICAgcmFpc2Ug
UnVudGltZUVycm9yKCJDYW5ub3QgZXhpdCAlciB3aXRob3V0IGVudGVyaW5nIGZpcnN0IiAlIHNl
bGYpCisgICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZXhpdF9fKCpleGNf
aW5mbykKKworCitjbGFzcyBXYXJuaW5nc0NoZWNrZXIoV2FybmluZ3NSZWNvcmRlcik6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkX3dhcm5pbmc9Tm9uZSwgbWF0Y2hfZXhwcj1Ob25l
KToKKyAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2VyLCBzZWxmKS5fX2luaXRfXygpCisKKyAg
ICAgICAgbXNnID0gKCJleGNlcHRpb25zIG11c3QgYmUgb2xkLXN0eWxlIGNsYXNzZXMgb3IgIgor
ICAgICAgICAgICAgICAgImRlcml2ZWQgZnJvbSBXYXJuaW5nLCBub3QgJXMiKQorICAgICAgICBp
ZiBpc2luc3RhbmNlKGV4cGVjdGVkX3dhcm5pbmcsIHR1cGxlKToKKyAgICAgICAgICAgIGZvciBl
eGMgaW4gZXhwZWN0ZWRfd2FybmluZzoKKyAgICAgICAgICAgICAgICBpZiBub3QgaW5zcGVjdC5p
c2NsYXNzKGV4Yyk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0
eXBlKGV4YykpCisgICAgICAgIGVsaWYgaW5zcGVjdC5pc2NsYXNzKGV4cGVjdGVkX3dhcm5pbmcp
OgorICAgICAgICAgICAgZXhwZWN0ZWRfd2FybmluZyA9IChleHBlY3RlZF93YXJuaW5nLCkKKyAg
ICAgICAgZWxpZiBleHBlY3RlZF93YXJuaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhwZWN0ZWRfd2FybmluZykpCisKKyAgICAgICAgc2Vs
Zi5leHBlY3RlZF93YXJuaW5nID0gZXhwZWN0ZWRfd2FybmluZworICAgICAgICBzZWxmLm1hdGNo
X2V4cHIgPSBtYXRjaF9leHByCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19pbmZvKToK
KyAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2VyLCBzZWxmKS5fX2V4aXRfXygqZXhjX2luZm8p
CisKKyAgICAgICAgIyBvbmx5IGNoZWNrIGlmIHdlJ3JlIG5vdCBjdXJyZW50bHkgaGFuZGxpbmcg
YW4gZXhjZXB0aW9uCisgICAgICAgIGlmIGFsbChhIGlzIE5vbmUgZm9yIGEgaW4gZXhjX2luZm8p
OgorICAgICAgICAgICAgaWYgc2VsZi5leHBlY3RlZF93YXJuaW5nIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgIGlmIG5vdCBhbnkoaXNzdWJjbGFzcyhyLmNhdGVnb3J5LCBzZWxmLmV4cGVj
dGVkX3dhcm5pbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgciBpbiBzZWxmKToK
KyAgICAgICAgICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAg
ICAgICAgICAgIGZhaWwoIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSB7MH0gd2Fz
IGVtaXR0ZWQuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxpc3Qgb2YgZW1pdHRl
ZCB3YXJuaW5ncyBpczogezF9LiIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmV4cGVjdGVkX3dhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtl
YWNoLm1lc3NhZ2UgZm9yIGVhY2ggaW4gc2VsZl0pKQorICAgICAgICAgICAgICAgIGVsaWYgc2Vs
Zi5tYXRjaF9leHByIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBmb3IgciBpbiBz
ZWxmOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyhyLmNhdGVnb3J5LCBz
ZWxmLmV4cGVjdGVkX3dhcm5pbmcpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJl
LmNvbXBpbGUoc2VsZi5tYXRjaF9leHByKS5zZWFyY2goc3RyKHIubWVzc2FnZSkpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgiRElEIE5PVCBXQVJOLiBObyB3YXJuaW5n
cyBvZiB0eXBlIHswfSBtYXRjaGluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAo
J3sxfScpIHdhcyBlbWl0dGVkLiBUaGUgbGlzdCBvZiBlbWl0dGVkIHdhcm5pbmdzIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiIGlzOiB7Mn0uIi5mb3JtYXQoc2VsZi5leHBlY3RlZF93
YXJuaW5nLCBzZWxmLm1hdGNoX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZvciBlYWNoIGluIHNlbGZdKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9yZXN1bHRsb2cucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY5YzJkMWY2NTM2MGYzOGQwZDY0MTIzZDY0
NjU3YzA3MjZhMjY2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVz
dWx0bG9nLnB5CkBAIC0wLDAgKzEsMTEzIEBACisiIiIgbG9nIG1hY2hpbmUtcGFyc2VhYmxlIHRl
c3Qgc2Vzc2lvbiByZXN1bHQgaW5mb3JtYXRpb24gaW4gYSBwbGFpbgordGV4dCBmaWxlLgorIiIi
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCisKK2ltcG9ydCBweQoraW1wb3J0IG9zCisKKworZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0
aW5nIiwgInJlc3VsdGxvZyBwbHVnaW4gb3B0aW9ucyIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCct
LXJlc3VsdGxvZycsICctLXJlc3VsdC1sb2cnLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAg
ICAgICAgICAgbWV0YXZhcj0icGF0aCIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgaGVscD0iREVQUkVDQVRFRCBwYXRoIGZvciBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBsb2cu
IikKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIHJlc3VsdGxvZyA9IGNv
bmZpZy5vcHRpb24ucmVzdWx0bG9nCisgICAgIyBwcmV2ZW50IG9wZW5pbmcgcmVzdWx0bG9nIG9u
IHNsYXZlIG5vZGVzICh4ZGlzdCkKKyAgICBpZiByZXN1bHRsb2cgYW5kIG5vdCBoYXNhdHRyKGNv
bmZpZywgJ3NsYXZlaW5wdXQnKToKKyAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShv
cy5wYXRoLmFic3BhdGgocmVzdWx0bG9nKSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIo
ZGlybmFtZSk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQorICAgICAgICBsb2dm
aWxlID0gb3BlbihyZXN1bHRsb2csICd3JywgMSkgICMgbGluZSBidWZmZXJlZAorICAgICAgICBj
b25maWcuX3Jlc3VsdGxvZyA9IFJlc3VsdExvZyhjb25maWcsIGxvZ2ZpbGUpCisgICAgICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNvbmZpZy5fcmVzdWx0bG9nKQorCisgICAgICAg
IGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBSRVNVTFRfTE9HCisgICAgICAgIGNvbmZp
Zy53YXJuKCdDMScsIFJFU1VMVF9MT0cpCisKKworZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25m
aWcpOgorICAgIHJlc3VsdGxvZyA9IGdldGF0dHIoY29uZmlnLCAnX3Jlc3VsdGxvZycsIE5vbmUp
CisgICAgaWYgcmVzdWx0bG9nOgorICAgICAgICByZXN1bHRsb2cubG9nZmlsZS5jbG9zZSgpCisg
ICAgICAgIGRlbCBjb25maWcuX3Jlc3VsdGxvZworICAgICAgICBjb25maWcucGx1Z2lubWFuYWdl
ci51bnJlZ2lzdGVyKHJlc3VsdGxvZykKKworCitkZWYgZ2VuZXJpY19wYXRoKGl0ZW0pOgorICAg
IGNoYWluID0gaXRlbS5saXN0Y2hhaW4oKQorICAgIGdwYXRoID0gW2NoYWluWzBdLm5hbWVdCisg
ICAgZnNwYXRoID0gY2hhaW5bMF0uZnNwYXRoCisgICAgZnNwYXJ0ID0gRmFsc2UKKyAgICBmb3Ig
bm9kZSBpbiBjaGFpblsxOl06CisgICAgICAgIG5ld2ZzcGF0aCA9IG5vZGUuZnNwYXRoCisgICAg
ICAgIGlmIG5ld2ZzcGF0aCA9PSBmc3BhdGg6CisgICAgICAgICAgICBpZiBmc3BhcnQ6CisgICAg
ICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCc6JykKKyAgICAgICAgICAgICAgICBmc3BhcnQgPSBG
YWxzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBncGF0aC5hcHBlbmQoJy4n
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCcvJykKKyAgICAgICAg
ICAgIGZzcGFydCA9IFRydWUKKyAgICAgICAgbmFtZSA9IG5vZGUubmFtZQorICAgICAgICBpZiBu
YW1lWzBdIGluICcoWyc6CisgICAgICAgICAgICBncGF0aC5wb3AoKQorICAgICAgICBncGF0aC5h
cHBlbmQobmFtZSkKKyAgICAgICAgZnNwYXRoID0gbmV3ZnNwYXRoCisgICAgcmV0dXJuICcnLmpv
aW4oZ3BhdGgpCisKKworY2xhc3MgUmVzdWx0TG9nKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNvbmZpZywgbG9nZmlsZSk6CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisg
ICAgICAgIHNlbGYubG9nZmlsZSA9IGxvZ2ZpbGUgICMgcHJlZmVyYWJseSBsaW5lIGJ1ZmZlcmVk
CisKKyAgICBkZWYgd3JpdGVfbG9nX2VudHJ5KHNlbGYsIHRlc3RwYXRoLCBsZXR0ZXJjb2RlLCBs
b25ncmVwcik6CisgICAgICAgIHByaW50KCIlcyAlcyIgJSAobGV0dGVyY29kZSwgdGVzdHBhdGgp
LCBmaWxlPXNlbGYubG9nZmlsZSkKKyAgICAgICAgZm9yIGxpbmUgaW4gbG9uZ3JlcHIuc3BsaXRs
aW5lcygpOgorICAgICAgICAgICAgcHJpbnQoIiAlcyIgJSBsaW5lLCBmaWxlPXNlbGYubG9nZmls
ZSkKKworICAgIGRlZiBsb2dfb3V0Y29tZShzZWxmLCByZXBvcnQsIGxldHRlcmNvZGUsIGxvbmdy
ZXByKToKKyAgICAgICAgdGVzdHBhdGggPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGVpZCcsIE5vbmUp
CisgICAgICAgIGlmIHRlc3RwYXRoIGlzIE5vbmU6CisgICAgICAgICAgICB0ZXN0cGF0aCA9IHJl
cG9ydC5mc3BhdGgKKyAgICAgICAgc2VsZi53cml0ZV9sb2dfZW50cnkodGVzdHBhdGgsIGxldHRl
cmNvZGUsIGxvbmdyZXByKQorCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxm
LCByZXBvcnQpOgorICAgICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCIgYW5kIHJlcG9ydC5w
YXNzZWQ6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9v
ay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcG9ydCkKKyAgICAgICAgY29kZSA9
IHJlc1sxXQorICAgICAgICBpZiBjb2RlID09ICd4JzoKKyAgICAgICAgICAgIGxvbmdyZXByID0g
c3RyKHJlcG9ydC5sb25ncmVwcikKKyAgICAgICAgZWxpZiBjb2RlID09ICdYJzoKKyAgICAgICAg
ICAgIGxvbmdyZXByID0gJycKKyAgICAgICAgZWxpZiByZXBvcnQucGFzc2VkOgorICAgICAgICAg
ICAgbG9uZ3JlcHIgPSAiIgorICAgICAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgICAg
ICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCisgICAgICAgIGVsaWYgcmVwb3J0LnNr
aXBwZWQ6CisgICAgICAgICAgICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHJbMl0pCisg
ICAgICAgIHNlbGYubG9nX291dGNvbWUocmVwb3J0LCBjb2RlLCBsb25ncmVwcikKKworICAgIGRl
ZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICBpZiBub3QgcmVw
b3J0LnBhc3NlZDoKKyAgICAgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgICAgICAg
ICAgY29kZSA9ICJGIgorICAgICAgICAgICAgICAgIGxvbmdyZXByID0gc3RyKHJlcG9ydC5sb25n
cmVwcikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcG9ydC5z
a2lwcGVkCisgICAgICAgICAgICAgICAgY29kZSA9ICJTIgorICAgICAgICAgICAgICAgIGxvbmdy
ZXByID0gIiVzOiVkOiAlcyIgJSByZXBvcnQubG9uZ3JlcHIKKyAgICAgICAgICAgIHNlbGYubG9n
X291dGNvbWUocmVwb3J0LCBjb2RlLCBsb25ncmVwcikKKworICAgIGRlZiBweXRlc3RfaW50ZXJu
YWxlcnJvcihzZWxmLCBleGNyZXByKToKKyAgICAgICAgcmVwcmNyYXNoID0gZ2V0YXR0cihleGNy
ZXByLCAncmVwcmNyYXNoJywgTm9uZSkKKyAgICAgICAgcGF0aCA9IGdldGF0dHIocmVwcmNyYXNo
LCAicGF0aCIsIE5vbmUpCisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHBh
dGggPSAiY3dkOiVzIiAlIHB5LnBhdGgubG9jYWwoKQorICAgICAgICBzZWxmLndyaXRlX2xvZ19l
bnRyeShwYXRoLCAnIScsIHN0cihleGNyZXByKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTA3ZWQyYTI0OGIzMjIzOWUwNTczNjIzNDA3MThiNDUyMTdkN2NmMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5CkBAIC0wLDAgKzEsNTA2IEBACisi
IiIgYmFzaWMgY29sbGVjdCBhbmQgcnVudGVzdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbnMgIiIi
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCisKK2ltcG9ydCBiZGIKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSB0aW1l
IGltcG9ydCB0aW1lCisKK2ltcG9ydCBweQorZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0
IFRlcm1pbmFsUmVwciwgRXhjZXB0aW9uSW5mbworZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9y
dCBza2lwLCBTa2lwcGVkLCBURVNUX09VVENPTUUKKworIworIyBweXRlc3QgcGx1Z2luIGhvb2tz
CisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5n
ZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIiwgInJlcG9ydGluZyIsIGFmdGVyPSJnZW5lcmFs
IikKKyAgICBncm91cC5hZGRvcHRpb24oJy0tZHVyYXRpb25zJywKKyAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0PU5vbmUsIG1ldGF2YXI9Ik4iLAor
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IE4gc2xvd2VzdCBzZXR1cC90ZXN0IGR1cmF0
aW9ucyAoTj0wIGZvciBhbGwpLiIpLAorCisKK2RlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0
ZXJtaW5hbHJlcG9ydGVyKToKKyAgICBkdXJhdGlvbnMgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZp
Zy5vcHRpb24uZHVyYXRpb25zCisgICAgaWYgZHVyYXRpb25zIGlzIE5vbmU6CisgICAgICAgIHJl
dHVybgorICAgIHRyID0gdGVybWluYWxyZXBvcnRlcgorICAgIGRsaXN0ID0gW10KKyAgICBmb3Ig
cmVwbGlzdCBpbiB0ci5zdGF0cy52YWx1ZXMoKToKKyAgICAgICAgZm9yIHJlcCBpbiByZXBsaXN0
OgorICAgICAgICAgICAgaWYgaGFzYXR0cihyZXAsICdkdXJhdGlvbicpOgorICAgICAgICAgICAg
ICAgIGRsaXN0LmFwcGVuZChyZXApCisgICAgaWYgbm90IGRsaXN0OgorICAgICAgICByZXR1cm4K
KyAgICBkbGlzdC5zb3J0KGtleT1sYW1iZGEgeDogeC5kdXJhdGlvbikKKyAgICBkbGlzdC5yZXZl
cnNlKCkKKyAgICBpZiBub3QgZHVyYXRpb25zOgorICAgICAgICB0ci53cml0ZV9zZXAoIj0iLCAi
c2xvd2VzdCB0ZXN0IGR1cmF0aW9ucyIpCisgICAgZWxzZToKKyAgICAgICAgdHIud3JpdGVfc2Vw
KCI9IiwgInNsb3dlc3QgJXMgdGVzdCBkdXJhdGlvbnMiICUgZHVyYXRpb25zKQorICAgICAgICBk
bGlzdCA9IGRsaXN0WzpkdXJhdGlvbnNdCisKKyAgICBmb3IgcmVwIGluIGRsaXN0OgorICAgICAg
ICBub2RlaWQgPSByZXAubm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCisgICAgICAgIHRy
LndyaXRlX2xpbmUoIiUwMi4yZnMgJS04cyAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgIChy
ZXAuZHVyYXRpb24sIHJlcC53aGVuLCBub2RlaWQpKQorCisKK2RlZiBweXRlc3Rfc2Vzc2lvbnN0
YXJ0KHNlc3Npb24pOgorICAgIHNlc3Npb24uX3NldHVwc3RhdGUgPSBTZXR1cFN0YXRlKCkKKwor
CitkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbik6CisgICAgc2Vzc2lvbi5fc2V0dXBz
dGF0ZS50ZWFyZG93bl9hbGwoKQorCisKK2RlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVt
LCBuZXh0aXRlbSk6CisgICAgaXRlbS5paG9vay5weXRlc3RfcnVudGVzdF9sb2dzdGFydCgKKyAg
ICAgICAgbm9kZWlkPWl0ZW0ubm9kZWlkLCBsb2NhdGlvbj1pdGVtLmxvY2F0aW9uLAorICAgICkK
KyAgICBydW50ZXN0cHJvdG9jb2woaXRlbSwgbmV4dGl0ZW09bmV4dGl0ZW0pCisgICAgcmV0dXJu
IFRydWUKKworCitkZWYgcnVudGVzdHByb3RvY29sKGl0ZW0sIGxvZz1UcnVlLCBuZXh0aXRlbT1O
b25lKToKKyAgICBoYXNyZXF1ZXN0ID0gaGFzYXR0cihpdGVtLCAiX3JlcXVlc3QiKQorICAgIGlm
IGhhc3JlcXVlc3QgYW5kIG5vdCBpdGVtLl9yZXF1ZXN0OgorICAgICAgICBpdGVtLl9pbml0cmVx
dWVzdCgpCisgICAgcmVwID0gY2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJzZXR1cCIsIGxvZykKKyAg
ICByZXBvcnRzID0gW3JlcF0KKyAgICBpZiByZXAucGFzc2VkOgorICAgICAgICBpZiBpdGVtLmNv
bmZpZy5vcHRpb24uc2V0dXBzaG93OgorICAgICAgICAgICAgc2hvd190ZXN0X2l0ZW0oaXRlbSkK
KyAgICAgICAgaWYgbm90IGl0ZW0uY29uZmlnLm9wdGlvbi5zZXR1cG9ubHk6CisgICAgICAgICAg
ICByZXBvcnRzLmFwcGVuZChjYWxsX2FuZF9yZXBvcnQoaXRlbSwgImNhbGwiLCBsb2cpKQorICAg
IHJlcG9ydHMuYXBwZW5kKGNhbGxfYW5kX3JlcG9ydChpdGVtLCAidGVhcmRvd24iLCBsb2csCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRpdGVtPW5leHRpdGVtKSkKKyAg
ICAjIGFmdGVyIGFsbCB0ZWFyZG93biBob29rcyBoYXZlIGJlZW4gY2FsbGVkCisgICAgIyB3YW50
IGZ1bmNhcmdzIGFuZCByZXF1ZXN0IGluZm8gdG8gZ28gYXdheQorICAgIGlmIGhhc3JlcXVlc3Q6
CisgICAgICAgIGl0ZW0uX3JlcXVlc3QgPSBGYWxzZQorICAgICAgICBpdGVtLmZ1bmNhcmdzID0g
Tm9uZQorICAgIHJldHVybiByZXBvcnRzCisKKworZGVmIHNob3dfdGVzdF9pdGVtKGl0ZW0pOgor
ICAgICIiIlNob3cgdGVzdCBmdW5jdGlvbiwgcGFyYW1ldGVycyBhbmQgdGhlIGZpeHR1cmVzIG9m
IHRoZSB0ZXN0IGl0ZW0uIiIiCisgICAgdHcgPSBpdGVtLmNvbmZpZy5nZXRfdGVybWluYWxfd3Jp
dGVyKCkKKyAgICB0dy5saW5lKCkKKyAgICB0dy53cml0ZSgnICcgKiA4KQorICAgIHR3LndyaXRl
KGl0ZW0uX25vZGVpZCkKKyAgICB1c2VkX2ZpeHR1cmVzID0gc29ydGVkKGl0ZW0uX2ZpeHR1cmVp
bmZvLm5hbWUyZml4dHVyZWRlZnMua2V5cygpKQorICAgIGlmIHVzZWRfZml4dHVyZXM6CisgICAg
ICAgIHR3LndyaXRlKCcgKGZpeHR1cmVzIHVzZWQ6IHswfSknLmZvcm1hdCgnLCAnLmpvaW4odXNl
ZF9maXh0dXJlcykpKQorCisKK2RlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICBf
dXBkYXRlX2N1cnJlbnRfdGVzdF92YXIoaXRlbSwgJ3NldHVwJykKKyAgICBpdGVtLnNlc3Npb24u
X3NldHVwc3RhdGUucHJlcGFyZShpdGVtKQorCisKK2RlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0
ZW0pOgorICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCAnY2FsbCcpCisgICAgdHJ5
OgorICAgICAgICBpdGVtLnJ1bnRlc3QoKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
ICMgU3RvcmUgdHJhY2UgaW5mbyB0byBhbGxvdyBwb3N0bW9ydGVtIGRlYnVnZ2luZworICAgICAg
ICB0eXBlLCB2YWx1ZSwgdGIgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICB0YiA9IHRiLnRiX25l
eHQgICMgU2tpcCAqdGhpcyogZnJhbWUKKyAgICAgICAgc3lzLmxhc3RfdHlwZSA9IHR5cGUKKyAg
ICAgICAgc3lzLmxhc3RfdmFsdWUgPSB2YWx1ZQorICAgICAgICBzeXMubGFzdF90cmFjZWJhY2sg
PSB0YgorICAgICAgICBkZWwgdGIgICMgR2V0IHJpZCBvZiBpdCBpbiB0aGlzIG5hbWVzcGFjZQor
ICAgICAgICByYWlzZQorCisKK2RlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtLCBuZXh0
aXRlbSk6CisgICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sICd0ZWFyZG93bicpCisg
ICAgaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLnRlYXJkb3duX2V4YWN0KGl0ZW0sIG5leHRpdGVt
KQorICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCBOb25lKQorCisKK2RlZiBfdXBk
YXRlX2N1cnJlbnRfdGVzdF92YXIoaXRlbSwgd2hlbik6CisgICAgIiIiCisgICAgVXBkYXRlIFBZ
VEVTVF9DVVJSRU5UX1RFU1QgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBpdGVtIGFuZCBzdGFnZS4K
KworICAgIElmIGBgd2hlbmBgIGlzIE5vbmUsIGRlbGV0ZSBQWVRFU1RfQ1VSUkVOVF9URVNUIGZy
b20gdGhlIGVudmlyb25tZW50LgorICAgICIiIgorICAgIHZhcl9uYW1lID0gJ1BZVEVTVF9DVVJS
RU5UX1RFU1QnCisgICAgaWYgd2hlbjoKKyAgICAgICAgdmFsdWUgPSAnezB9ICh7MX0pJy5mb3Jt
YXQoaXRlbS5ub2RlaWQsIHdoZW4pCisgICAgICAgICMgZG9uJ3QgYWxsb3cgbnVsbCBieXRlcyBv
biBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKHNlZSAjMjY0NCwgIzI5NTcpCisgICAgICAgIHZhbHVl
ID0gdmFsdWUucmVwbGFjZSgnXHgwMCcsICcobnVsbCknKQorICAgICAgICBvcy5lbnZpcm9uW3Zh
cl9uYW1lXSA9IHZhbHVlCisgICAgZWxzZToKKyAgICAgICAgb3MuZW52aXJvbi5wb3AodmFyX25h
bWUpCisKKworZGVmIHB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgorICAgIGlmIHJl
cG9ydC53aGVuIGluICgic2V0dXAiLCAidGVhcmRvd24iKToKKyAgICAgICAgaWYgcmVwb3J0LmZh
aWxlZDoKKyAgICAgICAgICAgICMgICAgICBjYXRlZ29yeSwgc2hvcnRsZXR0ZXIsIHZlcmJvc2Ut
d29yZAorICAgICAgICAgICAgcmV0dXJuICJlcnJvciIsICJFIiwgIkVSUk9SIgorICAgICAgICBl
bGlmIHJlcG9ydC5za2lwcGVkOgorICAgICAgICAgICAgcmV0dXJuICJza2lwcGVkIiwgInMiLCAi
U0tJUFBFRCIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAiIiwgIiIsICIiCisK
KworIworIyBJbXBsZW1lbnRhdGlvbgorCitkZWYgY2FsbF9hbmRfcmVwb3J0KGl0ZW0sIHdoZW4s
IGxvZz1UcnVlLCAqKmt3ZHMpOgorICAgIGNhbGwgPSBjYWxsX3J1bnRlc3RfaG9vayhpdGVtLCB3
aGVuLCAqKmt3ZHMpCisgICAgaG9vayA9IGl0ZW0uaWhvb2sKKyAgICByZXBvcnQgPSBob29rLnB5
dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbT1pdGVtLCBjYWxsPWNhbGwpCisgICAgaWYgbG9n
OgorICAgICAgICBob29rLnB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQ9cmVwb3J0KQor
ICAgIGlmIGNoZWNrX2ludGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxsLCByZXBvcnQpOgorICAgICAg
ICBob29rLnB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZT1pdGVtLCBjYWxsPWNhbGwsIHJl
cG9ydD1yZXBvcnQpCisgICAgcmV0dXJuIHJlcG9ydAorCisKK2RlZiBjaGVja19pbnRlcmFjdGl2
ZV9leGNlcHRpb24oY2FsbCwgcmVwb3J0KToKKyAgICByZXR1cm4gY2FsbC5leGNpbmZvIGFuZCBu
b3QgKAorICAgICAgICBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIikgb3IKKyAgICAgICAgY2Fs
bC5leGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pIG9yCisgICAgICAgIGNhbGwu
ZXhjaW5mby5lcnJpc2luc3RhbmNlKGJkYi5CZGJRdWl0KSkKKworCitkZWYgY2FsbF9ydW50ZXN0
X2hvb2soaXRlbSwgd2hlbiwgKiprd2RzKToKKyAgICBob29rbmFtZSA9ICJweXRlc3RfcnVudGVz
dF8iICsgd2hlbgorICAgIGlob29rID0gZ2V0YXR0cihpdGVtLmlob29rLCBob29rbmFtZSkKKyAg
ICByZXR1cm4gQ2FsbEluZm8obGFtYmRhOiBpaG9vayhpdGVtPWl0ZW0sICoqa3dkcyksIHdoZW49
d2hlbikKKworCitjbGFzcyBDYWxsSW5mbzoKKyAgICAiIiIgUmVzdWx0L0V4Y2VwdGlvbiBpbmZv
IGEgZnVuY3Rpb24gaW52b2NhdGlvbi4gIiIiCisgICAgIzogTm9uZSBvciBFeGNlcHRpb25JbmZv
IG9iamVjdC4KKyAgICBleGNpbmZvID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1
bmMsIHdoZW4pOgorICAgICAgICAjOiBjb250ZXh0IG9mIGludm9jYXRpb246IG9uZSBvZiAic2V0
dXAiLCAiY2FsbCIsCisgICAgICAgICM6ICJ0ZWFyZG93biIsICJtZW1vY29sbGVjdCIKKyAgICAg
ICAgc2VsZi53aGVuID0gd2hlbgorICAgICAgICBzZWxmLnN0YXJ0ID0gdGltZSgpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gZnVuYygpCisgICAgICAgIGV4Y2VwdCBL
ZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHNlbGYuc3RvcCA9IHRpbWUoKQorICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAgICBzZWxmLmV4
Y2luZm8gPSBFeGNlcHRpb25JbmZvKCkKKyAgICAgICAgc2VsZi5zdG9wID0gdGltZSgpCisKKyAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuZXhjaW5mbzoKKyAgICAgICAg
ICAgIHN0YXR1cyA9ICJleGNlcHRpb246ICVzIiAlIHN0cihzZWxmLmV4Y2luZm8udmFsdWUpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGF0dXMgPSAicmVzdWx0OiAlciIgJSAoc2VsZi5y
ZXN1bHQsKQorICAgICAgICByZXR1cm4gIjxDYWxsSW5mbyB3aGVuPSVyICVzPiIgJSAoc2VsZi53
aGVuLCBzdGF0dXMpCisKKworZGVmIGdldHNsYXZlaW5mb2xpbmUobm9kZSk6CisgICAgdHJ5Ogor
ICAgICAgICByZXR1cm4gbm9kZS5fc2xhdmVpbmZvY2FjaGUKKyAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6CisgICAgICAgIGQgPSBub2RlLnNsYXZlaW5mbworICAgICAgICB2ZXIgPSAiJXMuJXMu
JXMiICUgZFsndmVyc2lvbl9pbmZvJ11bOjNdCisgICAgICAgIG5vZGUuX3NsYXZlaW5mb2NhY2hl
ID0gcyA9ICJbJXNdICVzIC0tIFB5dGhvbiAlcyAlcyIgJSAoCisgICAgICAgICAgICBkWydpZCdd
LCBkWydzeXNwbGF0Zm9ybSddLCB2ZXIsIGRbJ2V4ZWN1dGFibGUnXSkKKyAgICAgICAgcmV0dXJu
IHMKKworCitjbGFzcyBCYXNlUmVwb3J0KG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKiprdyk6CisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGt3KQorCisgICAgZGVmIHRv
dGVybWluYWwoc2VsZiwgb3V0KToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnbm9kZScpOgor
ICAgICAgICAgICAgb3V0LmxpbmUoZ2V0c2xhdmVpbmZvbGluZShzZWxmLm5vZGUpKQorCisgICAg
ICAgIGxvbmdyZXByID0gc2VsZi5sb25ncmVwcgorICAgICAgICBpZiBsb25ncmVwciBpcyBOb25l
OgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgaGFzYXR0cihsb25ncmVwciwgJ3Rv
dGVybWluYWwnKToKKyAgICAgICAgICAgIGxvbmdyZXByLnRvdGVybWluYWwob3V0KQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG91dC5saW5lKGxvbmdy
ZXByKQorICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAg
ICAgICBvdXQubGluZSgiPHVucHJpbnRhYmxlIGxvbmdyZXByPiIpCisKKyAgICBkZWYgZ2V0X3Nl
Y3Rpb25zKHNlbGYsIHByZWZpeCk6CisgICAgICAgIGZvciBuYW1lLCBjb250ZW50IGluIHNlbGYu
c2VjdGlvbnM6CisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAg
ICAgICAgICAgICB5aWVsZCBwcmVmaXgsIGNvbnRlbnQKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBsb25ncmVwcnRleHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZWFkLW9ubHkgcHJv
cGVydHkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHN0cmluZyByZXByZXNlbnRhdGlvbgorICAgICAg
ICBvZiBgYGxvbmdyZXByYGAuCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4wCisgICAg
ICAgICIiIgorICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRydWUp
CisgICAgICAgIHR3Lmhhc21hcmt1cCA9IEZhbHNlCisgICAgICAgIHNlbGYudG90ZXJtaW5hbCh0
dykKKyAgICAgICAgZXhjID0gdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQorICAgICAgICByZXR1cm4g
ZXhjLnN0cmlwKCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjYXBzdGRvdXQoc2VsZik6Cisg
ICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20gc3Rkb3V0LCBpZiBjYXB0dXJpbmcg
aXMgZW5hYmxlZAorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuICcnLmpvaW4oY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4g
c2VsZi5nZXRfc2VjdGlvbnMoJ0NhcHR1cmVkIHN0ZG91dCcpKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGNhcHN0ZGVycihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVkIHRleHQg
ZnJvbSBzdGRlcnIsIGlmIGNhcHR1cmluZyBpcyBlbmFibGVkCisKKyAgICAgICAgLi4gdmVyc2lv
bmFkZGVkOjogMy4wCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gJycuam9pbihjb250ZW50
IGZvciAocHJlZml4LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygnQ2FwdHVyZWQgc3Rk
ZXJyJykpCisKKyAgICBwYXNzZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09ICJw
YXNzZWQiKQorICAgIGZhaWxlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gImZh
aWxlZCIpCisgICAgc2tpcHBlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gInNr
aXBwZWQiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZzcGF0aChzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYubm9kZWlkLnNwbGl0KCI6OiIpWzBdCisKKworZGVmIHB5dGVzdF9ydW50ZXN0
X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgd2hlbiA9IGNhbGwud2hlbgorICAgIGR1cmF0
aW9uID0gY2FsbC5zdG9wIC0gY2FsbC5zdGFydAorICAgIGtleXdvcmRzID0gZGljdChbKHgsIDEp
IGZvciB4IGluIGl0ZW0ua2V5d29yZHNdKQorICAgIGV4Y2luZm8gPSBjYWxsLmV4Y2luZm8KKyAg
ICBzZWN0aW9ucyA9IFtdCisgICAgaWYgbm90IGNhbGwuZXhjaW5mbzoKKyAgICAgICAgb3V0Y29t
ZSA9ICJwYXNzZWQiCisgICAgICAgIGxvbmdyZXByID0gTm9uZQorICAgIGVsc2U6CisgICAgICAg
IGlmIG5vdCBpc2luc3RhbmNlKGV4Y2luZm8sIEV4Y2VwdGlvbkluZm8pOgorICAgICAgICAgICAg
b3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAgICAgICBsb25ncmVwciA9IGV4Y2luZm8KKyAgICAg
ICAgZWxpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pOgorICAgICAgICAg
ICAgb3V0Y29tZSA9ICJza2lwcGVkIgorICAgICAgICAgICAgciA9IGV4Y2luZm8uX2dldHJlcHJj
cmFzaCgpCisgICAgICAgICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIu
bWVzc2FnZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgor
ICAgICAgICAgICAgaWYgY2FsbC53aGVuID09ICJjYWxsIjoKKyAgICAgICAgICAgICAgICBsb25n
cmVwciA9IGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8pCisgICAgICAgICAgICBlbHNlOiAgIyBl
eGNlcHRpb24gaW4gc2V0dXAgb3IgdGVhcmRvd24KKyAgICAgICAgICAgICAgICBsb25ncmVwciA9
IGl0ZW0uX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPWl0ZW0uY29uZmlnLm9wdGlvbi50YnN0eWxl
KQorICAgIGZvciByd2hlbiwga2V5LCBjb250ZW50IGluIGl0ZW0uX3JlcG9ydF9zZWN0aW9uczoK
KyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCgiQ2FwdHVyZWQgJXMgJXMiICUgKGtleSwgcndoZW4p
LCBjb250ZW50KSkKKyAgICByZXR1cm4gVGVzdFJlcG9ydChpdGVtLm5vZGVpZCwgaXRlbS5sb2Nh
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcywgb3V0Y29tZSwgbG9uZ3JlcHIs
IHdoZW4sCisgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMsIGR1cmF0aW9uKQorCisKK2Ns
YXNzIFRlc3RSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAgIiIiIEJhc2ljIHRlc3QgcmVwb3J0IG9i
amVjdCAoYWxzbyB1c2VkIGZvciBzZXR1cCBhbmQgdGVhcmRvd24gY2FsbHMgaWYKKyAgICB0aGV5
IGZhaWwpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgbG9jYXRp
b24sIGtleXdvcmRzLCBvdXRjb21lLAorICAgICAgICAgICAgICAgICBsb25ncmVwciwgd2hlbiwg
c2VjdGlvbnM9KCksIGR1cmF0aW9uPTAsICoqZXh0cmEpOgorICAgICAgICAjOiBub3JtYWxpemVk
IGNvbGxlY3Rpb24gbm9kZSBpZAorICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAorCisgICAg
ICAgICM6IGEgKGZpbGVzeXN0ZW1wYXRoLCBsaW5lbm8sIGRvbWFpbmluZm8pIHR1cGxlIGluZGlj
YXRpbmcgdGhlCisgICAgICAgICM6IGFjdHVhbCBsb2NhdGlvbiBvZiBhIHRlc3QgaXRlbSAtIGl0
IG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHRoZQorICAgICAgICAjOiBjb2xsZWN0ZWQgb25lIGUu
Zy4gaWYgYSBtZXRob2QgaXMgaW5oZXJpdGVkIGZyb20gYSBkaWZmZXJlbnQgbW9kdWxlLgorICAg
ICAgICBzZWxmLmxvY2F0aW9uID0gbG9jYXRpb24KKworICAgICAgICAjOiBhIG5hbWUgLT4gdmFs
dWUgZGljdGlvbmFyeSBjb250YWluaW5nIGFsbCBrZXl3b3JkcyBhbmQKKyAgICAgICAgIzogbWFy
a2VycyBhc3NvY2lhdGVkIHdpdGggYSB0ZXN0IGludm9jYXRpb24uCisgICAgICAgIHNlbGYua2V5
d29yZHMgPSBrZXl3b3JkcworCisgICAgICAgICM6IHRlc3Qgb3V0Y29tZSwgYWx3YXlzIG9uZSBv
ZiAicGFzc2VkIiwgImZhaWxlZCIsICJza2lwcGVkIi4KKyAgICAgICAgc2VsZi5vdXRjb21lID0g
b3V0Y29tZQorCisgICAgICAgICM6IE5vbmUgb3IgYSBmYWlsdXJlIHJlcHJlc2VudGF0aW9uLgor
ICAgICAgICBzZWxmLmxvbmdyZXByID0gbG9uZ3JlcHIKKworICAgICAgICAjOiBvbmUgb2YgJ3Nl
dHVwJywgJ2NhbGwnLCAndGVhcmRvd24nIHRvIGluZGljYXRlIHJ1bnRlc3QgcGhhc2UuCisgICAg
ICAgIHNlbGYud2hlbiA9IHdoZW4KKworICAgICAgICAjOiBsaXN0IG9mIHBhaXJzIGBgKHN0ciwg
c3RyKWBgIG9mIGV4dHJhIGluZm9ybWF0aW9uIHdoaWNoIG5lZWRzIHRvCisgICAgICAgICM6IG1h
cnNoYWxsYWJsZS4gVXNlZCBieSBweXRlc3QgdG8gYWRkIGNhcHR1cmVkIHRleHQKKyAgICAgICAg
IzogZnJvbSBgYHN0ZG91dGBgIGFuZCBgYHN0ZGVycmBgLCBidXQgbWF5IGJlIHVzZWQgYnkgb3Ro
ZXIgcGx1Z2lucworICAgICAgICAjOiB0byBhZGQgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIHRvIHJl
cG9ydHMuCisgICAgICAgIHNlbGYuc2VjdGlvbnMgPSBsaXN0KHNlY3Rpb25zKQorCisgICAgICAg
ICM6IHRpbWUgaXQgdG9vayB0byBydW4ganVzdCB0aGUgdGVzdAorICAgICAgICBzZWxmLmR1cmF0
aW9uID0gZHVyYXRpb24KKworICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRyYSkKKwor
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8VGVzdFJlcG9ydCAlciB3
aGVuPSVyIG91dGNvbWU9JXI+IiAlICgKKyAgICAgICAgICAgIHNlbGYubm9kZWlkLCBzZWxmLndo
ZW4sIHNlbGYub3V0Y29tZSkKKworCitjbGFzcyBUZWFyZG93bkVycm9yUmVwb3J0KEJhc2VSZXBv
cnQpOgorICAgIG91dGNvbWUgPSAiZmFpbGVkIgorICAgIHdoZW4gPSAidGVhcmRvd24iCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9uZ3JlcHIsICoqZXh0cmEpOgorICAgICAgICBzZWxmLmxv
bmdyZXByID0gbG9uZ3JlcHIKKyAgICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCisgICAgICAgIHNl
bGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQorCisKK2RlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3Jl
cG9ydChjb2xsZWN0b3IpOgorICAgIGNhbGwgPSBDYWxsSW5mbygKKyAgICAgICAgbGFtYmRhOiBs
aXN0KGNvbGxlY3Rvci5jb2xsZWN0KCkpLAorICAgICAgICAnY29sbGVjdCcpCisgICAgbG9uZ3Jl
cHIgPSBOb25lCisgICAgaWYgbm90IGNhbGwuZXhjaW5mbzoKKyAgICAgICAgb3V0Y29tZSA9ICJw
YXNzZWQiCisgICAgZWxzZToKKyAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBub3NlCisgICAg
ICAgIHNraXBfZXhjZXB0aW9ucyA9IChTa2lwcGVkLCkgKyBub3NlLmdldF9za2lwX2V4Y2VwdGlv
bnMoKQorICAgICAgICBpZiBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShza2lwX2V4Y2VwdGlv
bnMpOgorICAgICAgICAgICAgb3V0Y29tZSA9ICJza2lwcGVkIgorICAgICAgICAgICAgciA9IGNv
bGxlY3Rvci5fcmVwcl9mYWlsdXJlX3B5KGNhbGwuZXhjaW5mbywgImxpbmUiKS5yZXByY3Jhc2gK
KyAgICAgICAgICAgIGxvbmdyZXByID0gKHN0cihyLnBhdGgpLCByLmxpbmVubywgci5tZXNzYWdl
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAg
ICAgICBlcnJvcmluZm8gPSBjb2xsZWN0b3IucmVwcl9mYWlsdXJlKGNhbGwuZXhjaW5mbykKKyAg
ICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGVycm9yaW5mbywgInRvdGVybWluYWwiKToKKyAgICAg
ICAgICAgICAgICBlcnJvcmluZm8gPSBDb2xsZWN0RXJyb3JSZXByKGVycm9yaW5mbykKKyAgICAg
ICAgICAgIGxvbmdyZXByID0gZXJyb3JpbmZvCisgICAgcmVwID0gQ29sbGVjdFJlcG9ydChjb2xs
ZWN0b3Iubm9kZWlkLCBvdXRjb21lLCBsb25ncmVwciwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGdldGF0dHIoY2FsbCwgJ3Jlc3VsdCcsIE5vbmUpKQorICAgIHJlcC5jYWxsID0gY2FsbCAgIyBz
ZWUgY29sbGVjdF9vbmVfbm9kZQorICAgIHJldHVybiByZXAKKworCitjbGFzcyBDb2xsZWN0UmVw
b3J0KEJhc2VSZXBvcnQpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIG91dGNvbWUs
IGxvbmdyZXByLCByZXN1bHQsCisgICAgICAgICAgICAgICAgIHNlY3Rpb25zPSgpLCAqKmV4dHJh
KToKKyAgICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQKKyAgICAgICAgc2VsZi5vdXRjb21lID0g
b3V0Y29tZQorICAgICAgICBzZWxmLmxvbmdyZXByID0gbG9uZ3JlcHIKKyAgICAgICAgc2VsZi5y
ZXN1bHQgPSByZXN1bHQgb3IgW10KKyAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlv
bnMpCisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGxvY2F0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gKHNlbGYuZnNwYXRoLCBO
b25lLCBzZWxmLmZzcGF0aCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuICI8Q29sbGVjdFJlcG9ydCAlciBsZW5yZXN1bHQ9JXMgb3V0Y29tZT0lcj4iICUgKAorICAg
ICAgICAgICAgc2VsZi5ub2RlaWQsIGxlbihzZWxmLnJlc3VsdCksIHNlbGYub3V0Y29tZSkKKwor
CitjbGFzcyBDb2xsZWN0RXJyb3JSZXByKFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG1zZyk6CisgICAgICAgIHNlbGYubG9uZ3JlcHIgPSBtc2cKKworICAgIGRlZiB0b3Rl
cm1pbmFsKHNlbGYsIG91dCk6CisgICAgICAgIG91dC5saW5lKHNlbGYubG9uZ3JlcHIsIHJlZD1U
cnVlKQorCisKK2NsYXNzIFNldHVwU3RhdGUob2JqZWN0KToKKyAgICAiIiIgc2hhcmVkIHN0YXRl
IGZvciBzZXR0aW5nIHVwL3RlYXJpbmcgZG93biB0ZXN0IGl0ZW1zIG9yIGNvbGxlY3RvcnMuICIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnN0YWNrID0gW10KKyAg
ICAgICAgc2VsZi5fZmluYWxpemVycyA9IHt9CisKKyAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYs
IGZpbmFsaXplciwgY29saXRlbSk6CisgICAgICAgICIiIiBhdHRhY2ggYSBmaW5hbGl6ZXIgdG8g
dGhlIGdpdmVuIGNvbGl0ZW0uCisgICAgICAgIGlmIGNvbGl0ZW0gaXMgTm9uZSwgdGhpcyB3aWxs
IGFkZCBhIGZpbmFsaXplciB0aGF0CisgICAgICAgIGlzIGNhbGxlZCBhdCB0aGUgZW5kIG9mIHRl
YXJkb3duX2FsbCgpLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IGNvbGl0ZW0gYW5kIG5v
dCBpc2luc3RhbmNlKGNvbGl0ZW0sIHR1cGxlKQorICAgICAgICBhc3NlcnQgY2FsbGFibGUoZmlu
YWxpemVyKQorICAgICAgICAjIGFzc2VydCBjb2xpdGVtIGluIHNlbGYuc3RhY2sgICMgc29tZSB1
bml0IHRlc3RzIGRvbid0IHNldHVwIHN0YWNrIDovCisgICAgICAgIHNlbGYuX2ZpbmFsaXplcnMu
c2V0ZGVmYXVsdChjb2xpdGVtLCBbXSkuYXBwZW5kKGZpbmFsaXplcikKKworICAgIGRlZiBfcG9w
X2FuZF90ZWFyZG93bihzZWxmKToKKyAgICAgICAgY29saXRlbSA9IHNlbGYuc3RhY2sucG9wKCkK
KyAgICAgICAgc2VsZi5fdGVhcmRvd25fd2l0aF9maW5hbGl6YXRpb24oY29saXRlbSkKKworICAg
IGRlZiBfY2FsbGZpbmFsaXplcnMoc2VsZiwgY29saXRlbSk6CisgICAgICAgIGZpbmFsaXplcnMg
PSBzZWxmLl9maW5hbGl6ZXJzLnBvcChjb2xpdGVtLCBOb25lKQorICAgICAgICBleGMgPSBOb25l
CisgICAgICAgIHdoaWxlIGZpbmFsaXplcnM6CisgICAgICAgICAgICBmaW4gPSBmaW5hbGl6ZXJz
LnBvcCgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmluKCkKKyAgICAgICAg
ICAgIGV4Y2VwdCBURVNUX09VVENPTUU6CisgICAgICAgICAgICAgICAgIyBYWFggT25seSBmaXJz
dCBleGNlcHRpb24gd2lsbCBiZSBzZWVuIGJ5IHVzZXIsCisgICAgICAgICAgICAgICAgIyAgICAg
aWRlYWxseSBhbGwgc2hvdWxkIGJlIHJlcG9ydGVkLgorICAgICAgICAgICAgICAgIGlmIGV4YyBp
cyBOb25lOgorICAgICAgICAgICAgICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8oKQorICAgICAg
ICBpZiBleGM6CisgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpleGMpCisKKyAgICBk
ZWYgX3RlYXJkb3duX3dpdGhfZmluYWxpemF0aW9uKHNlbGYsIGNvbGl0ZW0pOgorICAgICAgICBz
ZWxmLl9jYWxsZmluYWxpemVycyhjb2xpdGVtKQorICAgICAgICBpZiBoYXNhdHRyKGNvbGl0ZW0s
ICJ0ZWFyZG93biIpOgorICAgICAgICAgICAgY29saXRlbS50ZWFyZG93bigpCisgICAgICAgIGZv
ciBjb2xpdGVtIGluIHNlbGYuX2ZpbmFsaXplcnM6CisgICAgICAgICAgICBhc3NlcnQgY29saXRl
bSBpcyBOb25lIG9yIGNvbGl0ZW0gaW4gc2VsZi5zdGFjayBcCisgICAgICAgICAgICAgICAgb3Ig
aXNpbnN0YW5jZShjb2xpdGVtLCB0dXBsZSkKKworICAgIGRlZiB0ZWFyZG93bl9hbGwoc2VsZik6
CisgICAgICAgIHdoaWxlIHNlbGYuc3RhY2s6CisgICAgICAgICAgICBzZWxmLl9wb3BfYW5kX3Rl
YXJkb3duKCkKKyAgICAgICAgZm9yIGtleSBpbiBsaXN0KHNlbGYuX2ZpbmFsaXplcnMpOgorICAg
ICAgICAgICAgc2VsZi5fdGVhcmRvd25fd2l0aF9maW5hbGl6YXRpb24oa2V5KQorICAgICAgICBh
c3NlcnQgbm90IHNlbGYuX2ZpbmFsaXplcnMKKworICAgIGRlZiB0ZWFyZG93bl9leGFjdChzZWxm
LCBpdGVtLCBuZXh0aXRlbSk6CisgICAgICAgIG5lZWRlZF9jb2xsZWN0b3JzID0gbmV4dGl0ZW0g
YW5kIG5leHRpdGVtLmxpc3RjaGFpbigpIG9yIFtdCisgICAgICAgIHNlbGYuX3RlYXJkb3duX3Rv
d2FyZHMobmVlZGVkX2NvbGxlY3RvcnMpCisKKyAgICBkZWYgX3RlYXJkb3duX3Rvd2FyZHMoc2Vs
ZiwgbmVlZGVkX2NvbGxlY3RvcnMpOgorICAgICAgICB3aGlsZSBzZWxmLnN0YWNrOgorICAgICAg
ICAgICAgaWYgc2VsZi5zdGFjayA9PSBuZWVkZWRfY29sbGVjdG9yc1s6bGVuKHNlbGYuc3RhY2sp
XToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgc2VsZi5fcG9wX2FuZF90ZWFy
ZG93bigpCisKKyAgICBkZWYgcHJlcGFyZShzZWxmLCBjb2xpdGVtKToKKyAgICAgICAgIiIiIHNl
dHVwIG9iamVjdHMgYWxvbmcgdGhlIGNvbGxlY3RvciBjaGFpbiB0byB0aGUgdGVzdC1tZXRob2QK
KyAgICAgICAgICAgIGFuZCB0ZWFyZG93biBwcmV2aW91c2x5IHNldHVwIG9iamVjdHMuIiIiCisg
ICAgICAgIG5lZWRlZF9jb2xsZWN0b3JzID0gY29saXRlbS5saXN0Y2hhaW4oKQorICAgICAgICBz
ZWxmLl90ZWFyZG93bl90b3dhcmRzKG5lZWRlZF9jb2xsZWN0b3JzKQorCisgICAgICAgICMgY2hl
Y2sgaWYgdGhlIGxhc3QgY29sbGVjdGlvbiBub2RlIGhhcyByYWlzZWQgYW4gZXJyb3IKKyAgICAg
ICAgZm9yIGNvbCBpbiBzZWxmLnN0YWNrOgorICAgICAgICAgICAgaWYgaGFzYXR0cihjb2wsICdf
cHJlcGFyZV9leGMnKToKKyAgICAgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpjb2wu
X3ByZXBhcmVfZXhjKQorICAgICAgICBmb3IgY29sIGluIG5lZWRlZF9jb2xsZWN0b3JzW2xlbihz
ZWxmLnN0YWNrKTpdOgorICAgICAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQoY29sKQorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNvbC5zZXR1cCgpCisgICAgICAgICAgICBleGNl
cHQgVEVTVF9PVVRDT01FOgorICAgICAgICAgICAgICAgIGNvbC5fcHJlcGFyZV9leGMgPSBzeXMu
ZXhjX2luZm8oKQorICAgICAgICAgICAgICAgIHJhaXNlCisKKworZGVmIGNvbGxlY3Rfb25lX25v
ZGUoY29sbGVjdG9yKToKKyAgICBpaG9vayA9IGNvbGxlY3Rvci5paG9vaworICAgIGlob29rLnB5
dGVzdF9jb2xsZWN0c3RhcnQoY29sbGVjdG9yPWNvbGxlY3RvcikKKyAgICByZXAgPSBpaG9vay5w
eXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3I9Y29sbGVjdG9yKQorICAgIGNhbGwg
PSByZXAuX19kaWN0X18ucG9wKCJjYWxsIiwgTm9uZSkKKyAgICBpZiBjYWxsIGFuZCBjaGVja19p
bnRlcmFjdGl2ZV9leGNlcHRpb24oY2FsbCwgcmVwKToKKyAgICAgICAgaWhvb2sucHl0ZXN0X2V4
Y2VwdGlvbl9pbnRlcmFjdChub2RlPWNvbGxlY3RvciwgY2FsbD1jYWxsLCByZXBvcnQ9cmVwKQor
ICAgIHJldHVybiByZXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cG9ubHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFjNzQ1
N2Q3ZTUwNmMwN2I3YzE3NWViOGM5NDcwZWI2MWI1ZmQ3YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5CkBAIC0wLDAgKzEsNzQgQEAKK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
KworaW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cworCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29uZmlnIikKKyAgICBn
cm91cC5hZGRvcHRpb24oJy0tc2V0dXBvbmx5JywgJy0tc2V0dXAtb25seScsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9Im9ubHkgc2V0dXAgZml4dHVyZXMs
IGRvIG5vdCBleGVjdXRlIHRlc3RzLiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLXNldHVwc2hv
dycsICctLXNldHVwLXNob3cnLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJzaG93IHNldHVwIG9mIGZpeHR1cmVzIHdoaWxlIGV4ZWN1dGluZyB0ZXN0cy4i
KQorCisKK0BweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3RfZml4
dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKKyAgICB5aWVsZAorICAgIGNvbmZpZyA9
IHJlcXVlc3QuY29uZmlnCisgICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6CisgICAgICAg
IGlmIGhhc2F0dHIocmVxdWVzdCwgJ3BhcmFtJyk6CisgICAgICAgICAgICAjIFNhdmUgdGhlIGZp
eHR1cmUgcGFyYW1ldGVyIHNvIC5fc2hvd19maXh0dXJlX2FjdGlvbigpIGNhbgorICAgICAgICAg
ICAgIyBkaXNwbGF5IGl0IG5vdyBhbmQgZHVyaW5nIHRoZSB0ZWFyZG93biAoaW4gLmZpbmlzaCgp
KS4KKyAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYuaWRzOgorICAgICAgICAgICAgICAgIGlmIGNh
bGxhYmxlKGZpeHR1cmVkZWYuaWRzKToKKyAgICAgICAgICAgICAgICAgICAgZml4dHVyZWRlZi5j
YWNoZWRfcGFyYW0gPSBmaXh0dXJlZGVmLmlkcyhyZXF1ZXN0LnBhcmFtKQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtID0g
Zml4dHVyZWRlZi5pZHNbCisgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnBhcmFtX2lu
ZGV4XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmNhY2hl
ZF9wYXJhbSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgX3Nob3dfZml4dHVyZV9hY3Rpb24oZml4
dHVyZWRlZiwgJ1NFVFVQJykKKworCitkZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIo
Zml4dHVyZWRlZik6CisgICAgaWYgaGFzYXR0cihmaXh0dXJlZGVmLCAiY2FjaGVkX3Jlc3VsdCIp
OgorICAgICAgICBjb25maWcgPSBmaXh0dXJlZGVmLl9maXh0dXJlbWFuYWdlci5jb25maWcKKyAg
ICAgICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6CisgICAgICAgICAgICBfc2hvd19maXh0
dXJlX2FjdGlvbihmaXh0dXJlZGVmLCAnVEVBUkRPV04nKQorICAgICAgICAgICAgaWYgaGFzYXR0
cihmaXh0dXJlZGVmLCAiY2FjaGVkX3BhcmFtIik6CisgICAgICAgICAgICAgICAgZGVsIGZpeHR1
cmVkZWYuY2FjaGVkX3BhcmFtCisKKworZGVmIF9zaG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVk
ZWYsIG1zZyk6CisgICAgY29uZmlnID0gZml4dHVyZWRlZi5fZml4dHVyZW1hbmFnZXIuY29uZmln
CisgICAgY2FwbWFuID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdjYXB0dXJlbWFu
YWdlcicpCisgICAgaWYgY2FwbWFuOgorICAgICAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5k
X2dsb2JhbF9jYXB0dXJlKCkKKworICAgIHR3ID0gY29uZmlnLmdldF90ZXJtaW5hbF93cml0ZXIo
KQorICAgIHR3LmxpbmUoKQorICAgIHR3LndyaXRlKCcgJyAqIDIgKiBmaXh0dXJlZGVmLnNjb3Bl
bnVtKQorICAgIHR3LndyaXRlKCd7c3RlcH0ge3Njb3BlfSB7Zml4dHVyZX0nLmZvcm1hdCgKKyAg
ICAgICAgc3RlcD1tc2cubGp1c3QoOCksICAjIGFsaWduIHRoZSBvdXRwdXQgdG8gVEVBUkRPV04K
KyAgICAgICAgc2NvcGU9Zml4dHVyZWRlZi5zY29wZVswXS51cHBlcigpLAorICAgICAgICBmaXh0
dXJlPWZpeHR1cmVkZWYuYXJnbmFtZSkpCisKKyAgICBpZiBtc2cgPT0gJ1NFVFVQJzoKKyAgICAg
ICAgZGVwcyA9IHNvcnRlZChhcmcgZm9yIGFyZyBpbiBmaXh0dXJlZGVmLmFyZ25hbWVzIGlmIGFy
ZyAhPSAncmVxdWVzdCcpCisgICAgICAgIGlmIGRlcHM6CisgICAgICAgICAgICB0dy53cml0ZSgn
IChmaXh0dXJlcyB1c2VkOiB7MH0pJy5mb3JtYXQoJywgJy5qb2luKGRlcHMpKSkKKworICAgIGlm
IGhhc2F0dHIoZml4dHVyZWRlZiwgJ2NhY2hlZF9wYXJhbScpOgorICAgICAgICB0dy53cml0ZSgn
W3swfV0nLmZvcm1hdChmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbSkpCisKKyAgICBpZiBjYXBtYW46
CisgICAgICAgIGNhcG1hbi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKG91dCkKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCisKKworQHB5dGVz
dC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQorZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmln
KToKKyAgICBpZiBjb25maWcub3B0aW9uLnNldHVwb25seToKKyAgICAgICAgY29uZmlnLm9wdGlv
bi5zZXR1cHNob3cgPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVw
cGxhbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
MWJkNDA2OThiNzcyYjA2YTM3Mjk3Y2ZjMzRlMGE3OGJkMTE2NDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwcGxhbi5weQpAQCAtMCwwICsxLDI1IEBACitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCisKK2ltcG9ydCBweXRlc3QKKworCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgor
ICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCisgICAgZ3JvdXAuYWRk
b3B0aW9uKCctLXNldHVwcGxhbicsICctLXNldHVwLXBsYW4nLCBhY3Rpb249InN0b3JlX3RydWUi
LAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IHdoYXQgZml4dHVyZXMgYW5kIHRlc3Rz
IHdvdWxkIGJlIGV4ZWN1dGVkIGJ1dCAiCisgICAgICAgICAgICAgICAgICAgICJkb24ndCBleGVj
dXRlIGFueXRoaW5nLiIpCisKKworQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQorZGVm
IHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgorICAgICMgV2lsbCBy
ZXR1cm4gYSBkdW1teSBmaXh0dXJlIGlmIHRoZSBzZXR1cG9ubHkgb3B0aW9uIGlzIHByb3ZpZGVk
LgorICAgIGlmIHJlcXVlc3QuY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46CisgICAgICAgIGZpeHR1
cmVkZWYuY2FjaGVkX3Jlc3VsdCA9IChOb25lLCBOb25lLCBOb25lKQorICAgICAgICByZXR1cm4g
Zml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0CisKKworQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1U
cnVlKQorZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKKyAgICBpZiBjb25maWcub3B0
aW9uLnNldHVwcGxhbjoKKyAgICAgICAgY29uZmlnLm9wdGlvbi5zZXR1cG9ubHkgPSBUcnVlCisg
ICAgICAgIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9za2lwcGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTFlNWI0MzgwMGI1NGY4YzhhMjkwNTQwYjEzZGEzYTAyODIwZDdmNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkKQEAgLTAs
MCArMSwzOTcgQEAKKyIiIiBzdXBwb3J0IGZvciBza2lwL3hmYWlsIGZ1bmN0aW9ucyBhbmQgbWFy
a2Vycy4gIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBvcworaW1wb3J0IHNpeAoraW1wb3J0IHN5cwor
aW1wb3J0IHRyYWNlYmFjaworCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAor
ZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yCitmcm9tIF9w
eXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwsIHNraXAsIHhmYWlsLCBURVNUX09VVENPTUUKKwor
CitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdy
b3VwKCJnZW5lcmFsIikKKyAgICBncm91cC5hZGRvcHRpb24oJy0tcnVueGZhaWwnLAorICAgICAg
ICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJydW54ZmFpbCIsIGRlZmF1
bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biB0ZXN0cyBldmVuIGlmIHRo
ZXkgYXJlIG1hcmtlZCB4ZmFpbCIpCisKKyAgICBwYXJzZXIuYWRkaW5pKCJ4ZmFpbF9zdHJpY3Qi
LCAiZGVmYXVsdCBmb3IgdGhlIHN0cmljdCBwYXJhbWV0ZXIgb2YgeGZhaWwgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtYXJrZXJzIHdoZW4gbm90IGdpdmVuIGV4cGxpY2l0
bHkgKGRlZmF1bHQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFsc2Up
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImJvb2wiKQorCisKK2RlZiBweXRl
c3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgaWYgY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKKyAg
ICAgICAgIyB5YXkgYSBoYWNrCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgb2xkID0g
cHl0ZXN0LnhmYWlsCisgICAgICAgIGNvbmZpZy5fY2xlYW51cC5hcHBlbmQobGFtYmRhOiBzZXRh
dHRyKHB5dGVzdCwgInhmYWlsIiwgb2xkKSkKKworICAgICAgICBkZWYgbm9wKCphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbm9wLkV4Y2VwdGlvbiA9IHhmYWls
LkV4Y2VwdGlvbgorICAgICAgICBzZXRhdHRyKHB5dGVzdCwgInhmYWlsIiwgbm9wKQorCisgICAg
Y29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJza2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiB3
aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF
eGFtcGxlOiBza2lwKHJlYXNvbj1cIm5vIHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzXCIp
IHNraXBzIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QuIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICkKKyAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFy
a2VycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNraXBpZihjb25kaXRpb24pOiBz
a2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9uKSAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlv
biBoYXBwZW5zIHdpdGhpbiB0aGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1
bGUgZ2xvYmFsIGNvbnRleHQuIEV4YW1wbGU6IHNraXBpZignc3lzLnBsYXRmb3JtID09IFwid2lu
MzJcIicpICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2tpcHMgdGhlIHRlc3QgaWYg
d2UgYXJlIG9uIHRoZSB3aW4zMiBwbGF0Zm9ybS4gc2VlICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQorICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJr
ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAieGZhaWwoY29uZGl0aW9uLCByZWFz
b249Tm9uZSwgcnVuPVRydWUsIHJhaXNlcz1Ob25lLCBzdHJpY3Q9RmFsc2UpOiAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm1hcmsgdGhlIHRlc3QgZnVuY3Rpb24gYXMgYW4gZXhwZWN0
ZWQgZmFpbHVyZSBpZiBldmFsKGNvbmRpdGlvbikgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJl
dHRlciByZXBvcnRpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgcnVuPUZh
bHNlIGlmIHlvdSBkb24ndCBldmVuIHdhbnQgdG8gZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbi4g
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJZiBvbmx5IHNwZWNpZmljIGV4Y2VwdGlv
bihzKSBhcmUgZXhwZWN0ZWQsIHlvdSBjYW4gbGlzdCB0aGVtIGluICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5
cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImEgdHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0
bWwiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKK2NsYXNzIE1hcmtFdmFsdWF0
b3Iob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaXRlbSwgbmFtZSk6CisgICAgICAg
IHNlbGYuaXRlbSA9IGl0ZW0KKyAgICAgICAgc2VsZi5fbWFya3MgPSBOb25lCisgICAgICAgIHNl
bGYuX21hcmsgPSBOb25lCisgICAgICAgIHNlbGYuX21hcmtfbmFtZSA9IG5hbWUKKworICAgIGRl
ZiBfX2Jvb2xfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fbWFya3MgPSBzZWxmLl9nZXRfbWFya3Mo
KQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9tYXJrcykKKyAgICBfX25vbnplcm9fXyA9IF9f
Ym9vbF9fCisKKyAgICBkZWYgd2FzdmFsaWQoc2VsZik6CisgICAgICAgIHJldHVybiBub3QgaGFz
YXR0cihzZWxmLCAnZXhjJykKKworICAgIGRlZiBfZ2V0X21hcmtzKHNlbGYpOgorCisgICAgICAg
IGtleXdvcmQgPSBzZWxmLml0ZW0ua2V5d29yZHMuZ2V0KHNlbGYuX21hcmtfbmFtZSkKKyAgICAg
ICAgaWYgaXNpbnN0YW5jZShrZXl3b3JkLCBNYXJrRGVjb3JhdG9yKToKKyAgICAgICAgICAgIHJl
dHVybiBba2V5d29yZC5tYXJrXQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5d29yZCwgTWFy
a0luZm8pOgorICAgICAgICAgICAgcmV0dXJuIFt4LmNvbWJpbmVkIGZvciB4IGluIGtleXdvcmRd
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gW10KKworICAgIGRlZiBpbnZhbGlk
cmFpc2Uoc2VsZiwgZXhjKToKKyAgICAgICAgcmFpc2VzID0gc2VsZi5nZXQoJ3JhaXNlcycpCisg
ICAgICAgIGlmIG5vdCByYWlzZXM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcmV0dXJu
IG5vdCBpc2luc3RhbmNlKGV4YywgcmFpc2VzKQorCisgICAgZGVmIGlzdHJ1ZShzZWxmKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lzdHJ1ZSgpCisgICAgICAgIGV4
Y2VwdCBURVNUX09VVENPTUU6CisgICAgICAgICAgICBzZWxmLmV4YyA9IHN5cy5leGNfaW5mbygp
CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZXhjWzFdLCBTeW50YXhFcnJvcik6Cisg
ICAgICAgICAgICAgICAgbXNnID0gWyIgIiAqIChzZWxmLmV4Y1sxXS5vZmZzZXQgKyA0KSArICJe
IiwgXQorICAgICAgICAgICAgICAgIG1zZy5hcHBlbmQoIlN5bnRheEVycm9yOiBpbnZhbGlkIHN5
bnRheCIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1zZyA9IHRyYWNlYmFj
ay5mb3JtYXRfZXhjZXB0aW9uX29ubHkoKnNlbGYuZXhjWzoyXSkKKyAgICAgICAgICAgIGZhaWwo
IkVycm9yIGV2YWx1YXRpbmcgJXIgZXhwcmVzc2lvblxuIgorICAgICAgICAgICAgICAgICAiICAg
ICVzXG4iCisgICAgICAgICAgICAgICAgICIlcyIKKyAgICAgICAgICAgICAgICAgJSAoc2VsZi5f
bWFya19uYW1lLCBzZWxmLmV4cHIsICJcbiIuam9pbihtc2cpKSwKKyAgICAgICAgICAgICAgICAg
cHl0cmFjZT1GYWxzZSkKKworICAgIGRlZiBfZ2V0Z2xvYmFscyhzZWxmKToKKyAgICAgICAgZCA9
IHsnb3MnOiBvcywgJ3N5cyc6IHN5cywgJ2NvbmZpZyc6IHNlbGYuaXRlbS5jb25maWd9CisgICAg
ICAgIGlmIGhhc2F0dHIoc2VsZi5pdGVtLCAnb2JqJyk6CisgICAgICAgICAgICBkLnVwZGF0ZShz
ZWxmLml0ZW0ub2JqLl9fZ2xvYmFsc19fKQorICAgICAgICByZXR1cm4gZAorCisgICAgZGVmIF9p
c3RydWUoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3Jlc3VsdCcpOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisgICAgICAgIHNlbGYuX21hcmtzID0gc2VsZi5fZ2V0
X21hcmtzKCkKKworICAgICAgICBpZiBzZWxmLl9tYXJrczoKKyAgICAgICAgICAgIHNlbGYucmVz
dWx0ID0gRmFsc2UKKyAgICAgICAgICAgIGZvciBtYXJrIGluIHNlbGYuX21hcmtzOgorICAgICAg
ICAgICAgICAgIHNlbGYuX21hcmsgPSBtYXJrCisgICAgICAgICAgICAgICAgaWYgJ2NvbmRpdGlv
bicgaW4gbWFyay5rd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAobWFyay5rd2Fy
Z3NbJ2NvbmRpdGlvbiddLCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICBhcmdzID0gbWFyay5hcmdzCisKKyAgICAgICAgICAgICAgICBmb3IgZXhwciBpbiBhcmdz
OgorICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cHIgPSBleHByCisgICAgICAgICAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UoZXhwciwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICAg
ICAgICAgICAgICBkID0gc2VsZi5fZ2V0Z2xvYmFscygpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQgPSBjYWNoZWRfZXZhbChzZWxmLml0ZW0uY29uZmlnLCBleHByLCBkKQorICAgICAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgInJlYXNvbiIg
bm90IGluIG1hcmsua3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIGJl
dHRlciBiZSBjaGVja2VkIGF0IGNvbGxlY3Rpb24gdGltZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1zZyA9ICJ5b3UgbmVlZCB0byBzcGVjaWZ5IHJlYXNvbj1TVFJJTkcgIiBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gdXNpbmcgYm9vbGVhbnMgYXMgY29u
ZGl0aW9ucy4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChtc2cpCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXN1bHQgPSBib29sKGV4cHIpCisgICAgICAgICAgICAgICAgICAg
IGlmIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZQor
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFzb24gPSBtYXJrLmt3YXJncy5nZXQoJ3Jl
YXNvbicsIE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cHIgPSBleHByCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKKworICAgICAgICAgICAg
ICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFzb24gPSBtYXJrLmt3YXJncy5nZXQoJ3JlYXNv
bicsIE5vbmUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAorICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBnZXQoc2VsZiwgYXR0ciwgZGVmYXVsdD1Ob25lKToK
KyAgICAgICAgaWYgc2VsZi5fbWFyayBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHQKKyAgICAgICAgcmV0dXJuIHNlbGYuX21hcmsua3dhcmdzLmdldChhdHRyLCBkZWZhdWx0KQor
CisgICAgZGVmIGdldGV4cGxhbmF0aW9uKHNlbGYpOgorICAgICAgICBleHBsID0gZ2V0YXR0cihz
ZWxmLCAncmVhc29uJywgTm9uZSkgb3Igc2VsZi5nZXQoJ3JlYXNvbicsIE5vbmUpCisgICAgICAg
IGlmIG5vdCBleHBsOgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2V4cHInKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gIiIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmV0dXJuICJjb25kaXRpb246ICIgKyBzdHIoc2VsZi5leHByKQorICAgICAgICByZXR1
cm4gZXhwbAorCisKK0Bob29raW1wbCh0cnlmaXJzdD1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0
X3NldHVwKGl0ZW0pOgorICAgICMgQ2hlY2sgaWYgc2tpcCBvciBza2lwaWYgYXJlIHNwZWNpZmll
ZCBhcyBweXRlc3QgbWFya3MKKyAgICBpdGVtLl9za2lwcGVkX2J5X21hcmsgPSBGYWxzZQorICAg
IHNraXBpZl9pbmZvID0gaXRlbS5rZXl3b3Jkcy5nZXQoJ3NraXBpZicpCisgICAgaWYgaXNpbnN0
YW5jZShza2lwaWZfaW5mbywgKE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yKSk6CisgICAgICAgIGV2
YWxfc2tpcGlmID0gTWFya0V2YWx1YXRvcihpdGVtLCAnc2tpcGlmJykKKyAgICAgICAgaWYgZXZh
bF9za2lwaWYuaXN0cnVlKCk6CisgICAgICAgICAgICBpdGVtLl9za2lwcGVkX2J5X21hcmsgPSBU
cnVlCisgICAgICAgICAgICBza2lwKGV2YWxfc2tpcGlmLmdldGV4cGxhbmF0aW9uKCkpCisKKyAg
ICBza2lwX2luZm8gPSBpdGVtLmtleXdvcmRzLmdldCgnc2tpcCcpCisgICAgaWYgaXNpbnN0YW5j
ZShza2lwX2luZm8sIChNYXJrSW5mbywgTWFya0RlY29yYXRvcikpOgorICAgICAgICBpdGVtLl9z
a2lwcGVkX2J5X21hcmsgPSBUcnVlCisgICAgICAgIGlmICdyZWFzb24nIGluIHNraXBfaW5mby5r
d2FyZ3M6CisgICAgICAgICAgICBza2lwKHNraXBfaW5mby5rd2FyZ3NbJ3JlYXNvbiddKQorICAg
ICAgICBlbGlmIHNraXBfaW5mby5hcmdzOgorICAgICAgICAgICAgc2tpcChza2lwX2luZm8uYXJn
c1swXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNraXAoInVuY29uZGl0aW9uYWwgc2tp
cCIpCisKKyAgICBpdGVtLl9ldmFseGZhaWwgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICd4ZmFpbCcp
CisgICAgY2hlY2tfeGZhaWxfbm9fcnVuKGl0ZW0pCisKKworQGhvb2tpbXBsKGhvb2t3cmFwcGVy
PVRydWUpCitkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgorICAgIGNoZWNrX3hm
YWlsX25vX3J1bihweWZ1bmNpdGVtKQorICAgIG91dGNvbWUgPSB5aWVsZAorICAgIHBhc3NlZCA9
IG91dGNvbWUuZXhjaW5mbyBpcyBOb25lCisgICAgaWYgcGFzc2VkOgorICAgICAgICBjaGVja19z
dHJpY3RfeGZhaWwocHlmdW5jaXRlbSkKKworCitkZWYgY2hlY2tfeGZhaWxfbm9fcnVuKGl0ZW0p
OgorICAgICIiImNoZWNrIHhmYWlsKHJ1bj1GYWxzZSkiIiIKKyAgICBpZiBub3QgaXRlbS5jb25m
aWcub3B0aW9uLnJ1bnhmYWlsOgorICAgICAgICBldmFseGZhaWwgPSBpdGVtLl9ldmFseGZhaWwK
KyAgICAgICAgaWYgZXZhbHhmYWlsLmlzdHJ1ZSgpOgorICAgICAgICAgICAgaWYgbm90IGV2YWx4
ZmFpbC5nZXQoJ3J1bicsIFRydWUpOgorICAgICAgICAgICAgICAgIHhmYWlsKCJbTk9UUlVOXSAi
ICsgZXZhbHhmYWlsLmdldGV4cGxhbmF0aW9uKCkpCisKKworZGVmIGNoZWNrX3N0cmljdF94ZmFp
bChweWZ1bmNpdGVtKToKKyAgICAiIiJjaGVjayB4ZmFpbChzdHJpY3Q9VHJ1ZSkgZm9yIHRoZSBn
aXZlbiBQQVNTSU5HIHRlc3QiIiIKKyAgICBldmFseGZhaWwgPSBweWZ1bmNpdGVtLl9ldmFseGZh
aWwKKyAgICBpZiBldmFseGZhaWwuaXN0cnVlKCk6CisgICAgICAgIHN0cmljdF9kZWZhdWx0ID0g
cHlmdW5jaXRlbS5jb25maWcuZ2V0aW5pKCd4ZmFpbF9zdHJpY3QnKQorICAgICAgICBpc19zdHJp
Y3RfeGZhaWwgPSBldmFseGZhaWwuZ2V0KCdzdHJpY3QnLCBzdHJpY3RfZGVmYXVsdCkKKyAgICAg
ICAgaWYgaXNfc3RyaWN0X3hmYWlsOgorICAgICAgICAgICAgZGVsIHB5ZnVuY2l0ZW0uX2V2YWx4
ZmFpbAorICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24o
KQorICAgICAgICAgICAgZmFpbCgnW1hQQVNTKHN0cmljdCldICcgKyBleHBsYW5hdGlvbiwgcHl0
cmFjZT1GYWxzZSkKKworCitAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3Rf
cnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgIG91dGNvbWUgPSB5aWVsZAorICAg
IHJlcCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgZXZhbHhmYWlsID0gZ2V0YXR0cihpdGVt
LCAnX2V2YWx4ZmFpbCcsIE5vbmUpCisgICAgIyB1bml0dHRlc3Qgc3BlY2lhbCBjYXNlLCBzZWUg
c2V0dGluZyBvZiBfdW5leHBlY3RlZHN1Y2Nlc3MKKyAgICBpZiBoYXNhdHRyKGl0ZW0sICdfdW5l
eHBlY3RlZHN1Y2Nlc3MnKSBhbmQgcmVwLndoZW4gPT0gImNhbGwiOgorICAgICAgICBmcm9tIF9w
eXRlc3QuY29tcGF0IGltcG9ydCBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFp
bHVyZQorICAgICAgICBpZiBpdGVtLl91bmV4cGVjdGVkc3VjY2VzczoKKyAgICAgICAgICAgIHJl
cC5sb25ncmVwciA9ICJVbmV4cGVjdGVkIHN1Y2Nlc3M6IHswfSIuZm9ybWF0KGl0ZW0uX3VuZXhw
ZWN0ZWRzdWNjZXNzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVwLmxvbmdyZXByID0g
IlVuZXhwZWN0ZWQgc3VjY2VzcyIKKyAgICAgICAgaWYgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0ZWRf
c3VjY2Vzc19hX2ZhaWx1cmUoKToKKyAgICAgICAgICAgIHJlcC5vdXRjb21lID0gImZhaWxlZCIK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlcC5vdXRjb21lID0gInBhc3NlZCIKKyAgICAg
ICAgICAgIHJlcC53YXN4ZmFpbCA9IHJlcC5sb25ncmVwcgorICAgIGVsaWYgaXRlbS5jb25maWcu
b3B0aW9uLnJ1bnhmYWlsOgorICAgICAgICBwYXNzICAgIyBkb24ndCBpbnRlcmVmZXJlCisgICAg
ZWxpZiBjYWxsLmV4Y2luZm8gYW5kIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKHhmYWlsLkV4
Y2VwdGlvbik6CisgICAgICAgIHJlcC53YXN4ZmFpbCA9ICJyZWFzb246ICIgKyBjYWxsLmV4Y2lu
Zm8udmFsdWUubXNnCisgICAgICAgIHJlcC5vdXRjb21lID0gInNraXBwZWQiCisgICAgZWxpZiBl
dmFseGZhaWwgYW5kIG5vdCByZXAuc2tpcHBlZCBhbmQgZXZhbHhmYWlsLndhc3ZhbGlkKCkgYW5k
IFwKKyAgICAgICAgICAgIGV2YWx4ZmFpbC5pc3RydWUoKToKKyAgICAgICAgaWYgY2FsbC5leGNp
bmZvOgorICAgICAgICAgICAgaWYgZXZhbHhmYWlsLmludmFsaWRyYWlzZShjYWxsLmV4Y2luZm8u
dmFsdWUpOgorICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0gImZhaWxlZCIKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAic2tpcHBlZCIKKyAgICAg
ICAgICAgICAgICByZXAud2FzeGZhaWwgPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24oKQorICAg
ICAgICBlbGlmIGNhbGwud2hlbiA9PSAiY2FsbCI6CisgICAgICAgICAgICBzdHJpY3RfZGVmYXVs
dCA9IGl0ZW0uY29uZmlnLmdldGluaSgneGZhaWxfc3RyaWN0JykKKyAgICAgICAgICAgIGlzX3N0
cmljdF94ZmFpbCA9IGV2YWx4ZmFpbC5nZXQoJ3N0cmljdCcsIHN0cmljdF9kZWZhdWx0KQorICAg
ICAgICAgICAgZXhwbGFuYXRpb24gPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAg
ICAgICAgaWYgaXNfc3RyaWN0X3hmYWlsOgorICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0g
ImZhaWxlZCIKKyAgICAgICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiW1hQQVNTKHN0cmljdCld
IHswfSIuZm9ybWF0KGV4cGxhbmF0aW9uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICByZXAub3V0Y29tZSA9ICJwYXNzZWQiCisgICAgICAgICAgICAgICAgcmVwLndhc3hmYWls
ID0gZXhwbGFuYXRpb24KKyAgICBlbGlmIGl0ZW0uX3NraXBwZWRfYnlfbWFyayBhbmQgcmVwLnNr
aXBwZWQgYW5kIHR5cGUocmVwLmxvbmdyZXByKSBpcyB0dXBsZToKKyAgICAgICAgIyBza2lwcGVk
IGJ5IG1hcmsuc2tpcGlmOyBjaGFuZ2UgdGhlIGxvY2F0aW9uIG9mIHRoZSBmYWlsdXJlCisgICAg
ICAgICMgdG8gcG9pbnQgdG8gdGhlIGl0ZW0gZGVmaW5pdGlvbiwgb3RoZXJ3aXNlIGl0IHdpbGwg
ZGlzcGxheQorICAgICAgICAjIHRoZSBsb2NhdGlvbiBvZiB3aGVyZSB0aGUgc2tpcCBleGNlcHRp
b24gd2FzIHJhaXNlZCB3aXRoaW4gcHl0ZXN0CisgICAgICAgIGZpbGVuYW1lLCBsaW5lLCByZWFz
b24gPSByZXAubG9uZ3JlcHIKKyAgICAgICAgZmlsZW5hbWUsIGxpbmUgPSBpdGVtLmxvY2F0aW9u
WzoyXQorICAgICAgICByZXAubG9uZ3JlcHIgPSBmaWxlbmFtZSwgbGluZSwgcmVhc29uCisKKyMg
Y2FsbGVkIGJ5IHRlcm1pbmFscmVwb3J0ZXIgcHJvZ3Jlc3MgcmVwb3J0aW5nCisKKworZGVmIHB5
dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgorICAgIGlmIGhhc2F0dHIocmVwb3J0LCAi
d2FzeGZhaWwiKToKKyAgICAgICAgaWYgcmVwb3J0LnNraXBwZWQ6CisgICAgICAgICAgICByZXR1
cm4gInhmYWlsZWQiLCAieCIsICJ4ZmFpbCIKKyAgICAgICAgZWxpZiByZXBvcnQucGFzc2VkOgor
ICAgICAgICAgICAgcmV0dXJuICJ4cGFzc2VkIiwgIlgiLCAoIlhQQVNTIiwgeyd5ZWxsb3cnOiBU
cnVlfSkKKworIyBjYWxsZWQgYnkgdGhlIHRlcm1pbmFscmVwb3J0ZXIgaW5zdGFuY2UvcGx1Z2lu
CisKKworZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgorICAg
IHRyID0gdGVybWluYWxyZXBvcnRlcgorICAgIGlmIG5vdCB0ci5yZXBvcnRjaGFyczoKKyAgICAg
ICAgIyBmb3IgbmFtZSBpbiAieGZhaWxlZCBza2lwcGVkIGZhaWxlZCB4cGFzc2VkIjoKKyAgICAg
ICAgIyAgICBpZiBub3QgdHIuc3RhdHMuZ2V0KG5hbWUsIDApOgorICAgICAgICAjICAgICAgICB0
ci53cml0ZV9saW5lKCJISU5UOiB1c2UgJy1yJyBvcHRpb24gdG8gc2VlIGV4dHJhICIKKyAgICAg
ICAgIyAgICAgICAgICAgICAgInN1bW1hcnkgaW5mbyBhYm91dCB0ZXN0cyIpCisgICAgICAgICMg
ICAgICAgIGJyZWFrCisgICAgICAgIHJldHVybgorCisgICAgbGluZXMgPSBbXQorICAgIGZvciBj
aGFyIGluIHRyLnJlcG9ydGNoYXJzOgorICAgICAgICBpZiBjaGFyID09ICJ4IjoKKyAgICAgICAg
ICAgIHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcykKKyAgICAgICAgZWxpZiBj
aGFyID09ICJYIjoKKyAgICAgICAgICAgIHNob3dfeHBhc3NlZCh0ZXJtaW5hbHJlcG9ydGVyLCBs
aW5lcykKKyAgICAgICAgZWxpZiBjaGFyIGluICJmRiI6CisgICAgICAgICAgICBzaG93X3NpbXBs
ZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ2ZhaWxlZCcsICJGQUlMICVzIikKKyAgICAgICAg
ZWxpZiBjaGFyIGluICJzUyI6CisgICAgICAgICAgICBzaG93X3NraXBwZWQodGVybWluYWxyZXBv
cnRlciwgbGluZXMpCisgICAgICAgIGVsaWYgY2hhciA9PSAiRSI6CisgICAgICAgICAgICBzaG93
X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ2Vycm9yJywgIkVSUk9SICVzIikKKyAg
ICAgICAgZWxpZiBjaGFyID09ICdwJzoKKyAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1pbmFs
cmVwb3J0ZXIsIGxpbmVzLCAncGFzc2VkJywgIlBBU1NFRCAlcyIpCisKKyAgICBpZiBsaW5lczoK
KyAgICAgICAgdHIuX3R3LnNlcCgiPSIsICJzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyIpCisgICAg
ICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgdHIuX3R3LmxpbmUobGluZSkKKwor
CitkZWYgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsIHN0YXQsIGZvcm1hdCk6
CisgICAgZmFpbGVkID0gdGVybWluYWxyZXBvcnRlci5zdGF0cy5nZXQoc3RhdCkKKyAgICBpZiBm
YWlsZWQ6CisgICAgICAgIGZvciByZXAgaW4gZmFpbGVkOgorICAgICAgICAgICAgcG9zID0gdGVy
bWluYWxyZXBvcnRlci5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9kZWlkKQorICAg
ICAgICAgICAgbGluZXMuYXBwZW5kKGZvcm1hdCAlIChwb3MsKSkKKworCitkZWYgc2hvd194ZmFp
bGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKToKKyAgICB4ZmFpbGVkID0gdGVybWluYWxyZXBv
cnRlci5zdGF0cy5nZXQoInhmYWlsZWQiKQorICAgIGlmIHhmYWlsZWQ6CisgICAgICAgIGZvciBy
ZXAgaW4geGZhaWxlZDoKKyAgICAgICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmln
LmN3ZF9yZWxhdGl2ZV9ub2RlaWQocmVwLm5vZGVpZCkKKyAgICAgICAgICAgIHJlYXNvbiA9IHJl
cC53YXN4ZmFpbAorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJYRkFJTCAlcyIgJSAocG9zLCkp
CisgICAgICAgICAgICBpZiByZWFzb246CisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIg
ICIgKyBzdHIocmVhc29uKSkKKworCitkZWYgc2hvd194cGFzc2VkKHRlcm1pbmFscmVwb3J0ZXIs
IGxpbmVzKToKKyAgICB4cGFzc2VkID0gdGVybWluYWxyZXBvcnRlci5zdGF0cy5nZXQoInhwYXNz
ZWQiKQorICAgIGlmIHhwYXNzZWQ6CisgICAgICAgIGZvciByZXAgaW4geHBhc3NlZDoKKyAgICAg
ICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQo
cmVwLm5vZGVpZCkKKyAgICAgICAgICAgIHJlYXNvbiA9IHJlcC53YXN4ZmFpbAorICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKCJYUEFTUyAlcyAlcyIgJSAocG9zLCByZWFzb24pKQorCisKK2RlZiBj
YWNoZWRfZXZhbChjb25maWcsIGV4cHIsIGQpOgorICAgIGlmIG5vdCBoYXNhdHRyKGNvbmZpZywg
J19ldmFsY2FjaGUnKToKKyAgICAgICAgY29uZmlnLl9ldmFsY2FjaGUgPSB7fQorICAgIHRyeToK
KyAgICAgICAgcmV0dXJuIGNvbmZpZy5fZXZhbGNhY2hlW2V4cHJdCisgICAgZXhjZXB0IEtleUVy
cm9yOgorICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQorICAgICAgICBleHByY29kZSA9IF9w
eXRlc3QuX2NvZGUuY29tcGlsZShleHByLCBtb2RlPSJldmFsIikKKyAgICAgICAgY29uZmlnLl9l
dmFsY2FjaGVbZXhwcl0gPSB4ID0gZXZhbChleHByY29kZSwgZCkKKyAgICAgICAgcmV0dXJuIHgK
KworCitkZWYgZm9sZGVkX3NraXBzKHNraXBwZWQpOgorICAgIGQgPSB7fQorICAgIGZvciBldmVu
dCBpbiBza2lwcGVkOgorICAgICAgICBrZXkgPSBldmVudC5sb25ncmVwcgorICAgICAgICBhc3Nl
cnQgbGVuKGtleSkgPT0gMywgKGV2ZW50LCBrZXkpCisgICAgICAgIGtleXdvcmRzID0gZ2V0YXR0
cihldmVudCwgJ2tleXdvcmRzJywge30pCisgICAgICAgICMgZm9sZGluZyByZXBvcnRzIHdpdGgg
Z2xvYmFsIHB5dGVzdG1hcmsgdmFyaWFibGUKKyAgICAgICAgIyB0aGlzIGlzIHdvcmthcm91bmQs
IGJlY2F1c2UgZm9yIG5vdyB3ZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHNjb3BlIG9mIGEgc2tpcCBt
YXJrZXIKKyAgICAgICAgIyBUT0RPOiByZXZpc2l0IGFmdGVyIG1hcmtzIHNjb3BlIHdvdWxkIGJl
IGZpeGVkCisgICAgICAgIHdoZW4gPSBnZXRhdHRyKGV2ZW50LCAnd2hlbicsIE5vbmUpCisgICAg
ICAgIGlmIHdoZW4gPT0gJ3NldHVwJyBhbmQgJ3NraXAnIGluIGtleXdvcmRzIGFuZCAncHl0ZXN0
bWFyaycgbm90IGluIGtleXdvcmRzOgorICAgICAgICAgICAga2V5ID0gKGtleVswXSwgTm9uZSwg
a2V5WzJdLCApCisgICAgICAgIGQuc2V0ZGVmYXVsdChrZXksIFtdKS5hcHBlbmQoZXZlbnQpCisg
ICAgdmFsdWVzID0gW10KKyAgICBmb3Iga2V5LCBldmVudHMgaW4gZC5pdGVtcygpOgorICAgICAg
ICB2YWx1ZXMuYXBwZW5kKChsZW4oZXZlbnRzKSwpICsga2V5KQorICAgIHJldHVybiB2YWx1ZXMK
KworCitkZWYgc2hvd19za2lwcGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKToKKyAgICB0ciA9
IHRlcm1pbmFscmVwb3J0ZXIKKyAgICBza2lwcGVkID0gdHIuc3RhdHMuZ2V0KCdza2lwcGVkJywg
W10pCisgICAgaWYgc2tpcHBlZDoKKyAgICAgICAgIyBpZiBub3QgdHIuaGFzb3B0KCdza2lwcGVk
Jyk6CisgICAgICAgICMgICAgdHIud3JpdGVfbGluZSgKKyAgICAgICAgIyAgICAgICAgIiVkIHNr
aXBwZWQgdGVzdHMsIHNwZWNpZnkgLXJzIGZvciBtb3JlIGluZm8iICUKKyAgICAgICAgIyAgICAg
ICAgbGVuKHNraXBwZWQpKQorICAgICAgICAjICAgIHJldHVybgorICAgICAgICBmc2tpcHMgPSBm
b2xkZWRfc2tpcHMoc2tpcHBlZCkKKyAgICAgICAgaWYgZnNraXBzOgorICAgICAgICAgICAgIyB0
ci53cml0ZV9zZXAoIl8iLCAic2tpcHBlZCB0ZXN0IHN1bW1hcnkiKQorICAgICAgICAgICAgZm9y
IG51bSwgZnNwYXRoLCBsaW5lbm8sIHJlYXNvbiBpbiBmc2tpcHM6CisgICAgICAgICAgICAgICAg
aWYgcmVhc29uLnN0YXJ0c3dpdGgoIlNraXBwZWQ6ICIpOgorICAgICAgICAgICAgICAgICAgICBy
ZWFzb24gPSByZWFzb25bOTpdCisgICAgICAgICAgICAgICAgaWYgbGluZW5vIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAg
ICAgICAiU0tJUCBbJWRdICVzOiVkOiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKG51
bSwgZnNwYXRoLCBsaW5lbm8gKyAxLCByZWFzb24pKQorICAgICAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJTS0lQIFslZF0gJXM6ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAobnVtLCBmc3Bh
dGgsIHJlYXNvbikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Rlcm1pbmFsLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWJhNWU4NDVl
NTE5MGFmNDZiZGY0NGEwMzUyZjljZDQwNzY5YjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weQpAQCAtMCwwICsxLDcwMyBAQAorIiIiIHRlcm1pbmFs
IHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0ZXN0aW5nIHByb2Nlc3MuCisKK1RoaXMgaXMgYSBnb29k
IHNvdXJjZSBmb3IgbG9va2luZyBhdCB0aGUgdmFyaW91cyByZXBvcnRpbmcgaG9va3MuCisiIiIK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKworaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc3lz
CitpbXBvcnQgdGltZQorCitpbXBvcnQgcGx1Z2d5CitpbXBvcnQgcHkKK2ltcG9ydCBzaXgKKwor
aW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcworZnJvbSBfcHl0ZXN0Lm1h
aW4gaW1wb3J0IEVYSVRfT0ssIEVYSVRfVEVTVFNGQUlMRUQsIEVYSVRfSU5URVJSVVBURUQsIFwK
KyAgICBFWElUX1VTQUdFRVJST1IsIEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2RlZiBweXRl
c3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1p
bmFsIHJlcG9ydGluZyIsICJyZXBvcnRpbmciLCBhZnRlcj0iZ2VuZXJhbCIpCisgICAgZ3JvdXAu
X2FkZG9wdGlvbignLXYnLCAnLS12ZXJib3NlJywgYWN0aW9uPSJjb3VudCIsCisgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSJ2ZXJib3NlIiwgZGVmYXVsdD0wLCBoZWxwPSJpbmNyZWFzZSB2ZXJi
b3NpdHkuIiksCisgICAgZ3JvdXAuX2FkZG9wdGlvbignLXEnLCAnLS1xdWlldCcsIGFjdGlvbj0i
Y291bnQiLAorICAgICAgICAgICAgICAgICAgICAgZGVzdD0icXVpZXQiLCBkZWZhdWx0PTAsIGhl
bHA9ImRlY3JlYXNlIHZlcmJvc2l0eS4iKSwKKyAgICBncm91cC5fYWRkb3B0aW9uKCctcicsCisg
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0icmVwb3J0Y2hhcnMiLCBk
ZWZhdWx0PScnLCBtZXRhdmFyPSJjaGFycyIsCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJz
aG93IGV4dHJhIHRlc3Qgc3VtbWFyeSBpbmZvIGFzIHNwZWNpZmllZCBieSBjaGFycyAoZilhaWxl
ZCwgIgorICAgICAgICAgICAgICAgICAgICAgIihFKWVycm9yLCAocylza2lwcGVkLCAoeClmYWls
ZWQsIChYKXBhc3NlZCwgIgorICAgICAgICAgICAgICAgICAgICAgIihwKXBhc3NlZCwgKFApcGFz
c2VkIHdpdGggb3V0cHV0LCAoYSlhbGwgZXhjZXB0IHBQLiAiCisgICAgICAgICAgICAgICAgICAg
ICAiV2FybmluZ3MgYXJlIGRpc3BsYXllZCBhdCBhbGwgdGltZXMgZXhjZXB0IHdoZW4gIgorICAg
ICAgICAgICAgICAgICAgICAgIi0tZGlzYWJsZS13YXJuaW5ncyBpcyBzZXQiKQorICAgIGdyb3Vw
Ll9hZGRvcHRpb24oJy0tZGlzYWJsZS13YXJuaW5ncycsICctLWRpc2FibGUtcHl0ZXN0LXdhcm5p
bmdzJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rpc2FibGVf
d2FybmluZ3MnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nZGlzYWJsZSB3YXJuaW5ncyBzdW1tYXJ5JykKKyAgICBncm91cC5fYWRkb3B0aW9uKCctbCcs
ICctLXNob3dsb2NhbHMnLAorICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVzdD0ic2hvd2xvY2FscyIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJzaG93IGxvY2FscyBpbiB0cmFjZWJhY2tzIChkaXNhYmxlZCBieSBkZWZhdWx0KS4i
KQorICAgIGdyb3VwLl9hZGRvcHRpb24oJy0tdGInLCBtZXRhdmFyPSJzdHlsZSIsCisgICAgICAg
ICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0idGJzdHlsZSIsIGRlZmF1bHQ9J2F1
dG8nLAorICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2F1dG8nLCAnbG9uZycsICdzaG9y
dCcsICdubycsICdsaW5lJywgJ25hdGl2ZSddLAorICAgICAgICAgICAgICAgICAgICAgaGVscD0i
dHJhY2ViYWNrIHByaW50IG1vZGUgKGF1dG8vbG9uZy9zaG9ydC9saW5lL25hdGl2ZS9ubykuIikK
KyAgICBncm91cC5fYWRkb3B0aW9uKCctLWZ1bGx0cmFjZScsICctLWZ1bGwtdHJhY2UnLAorICAg
ICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9ImRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVmYXVs
dCBpcyB0byBjdXQpLiIpCisgICAgZ3JvdXAuX2FkZG9wdGlvbignLS1jb2xvcicsIG1ldGF2YXI9
ImNvbG9yIiwKKyAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJjb2xv
ciIsIGRlZmF1bHQ9J2F1dG8nLAorICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ3llcycs
ICdubycsICdhdXRvJ10sCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJjb2xvciB0ZXJtaW5h
bCBvdXRwdXQgKHllcy9uby9hdXRvKS4iKQorCisgICAgcGFyc2VyLmFkZGluaSgiY29uc29sZV9v
dXRwdXRfc3R5bGUiLAorICAgICAgICAgICAgICAgICAgaGVscD0iY29uc29sZSBvdXRwdXQ6IGNs
YXNzaWMgb3Igd2l0aCBhZGRpdGlvbmFsIHByb2dyZXNzIGluZm9ybWF0aW9uIChjbGFzc2ljfHBy
b2dyZXNzKS4iLAorICAgICAgICAgICAgICAgICAgZGVmYXVsdD0ncHJvZ3Jlc3MnKQorCisKK2Rl
ZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLm9wdGlvbi52ZXJib3NlIC09
IGNvbmZpZy5vcHRpb24ucXVpZXQKKyAgICByZXBvcnRlciA9IFRlcm1pbmFsUmVwb3J0ZXIoY29u
ZmlnLCBzeXMuc3Rkb3V0KQorICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHJlcG9y
dGVyLCAndGVybWluYWxyZXBvcnRlcicpCisgICAgaWYgY29uZmlnLm9wdGlvbi5kZWJ1ZyBvciBj
b25maWcub3B0aW9uLnRyYWNlY29uZmlnOgorICAgICAgICBkZWYgbXl3cml0ZXIodGFncywgYXJn
cyk6CisgICAgICAgICAgICBtc2cgPSAiICIuam9pbihtYXAoc3RyLCBhcmdzKSkKKyAgICAgICAg
ICAgIHJlcG9ydGVyLndyaXRlX2xpbmUoIlt0cmFjZWNvbmZpZ10gIiArIG1zZykKKyAgICAgICAg
Y29uZmlnLnRyYWNlLnJvb3Quc2V0cHJvY2Vzc29yKCJweXRlc3Q6Y29uZmlnIiwgbXl3cml0ZXIp
CisKKworZGVmIGdldHJlcG9ydG9wdChjb25maWcpOgorICAgIHJlcG9ydG9wdHMgPSAiIgorICAg
IHJlcG9ydGNoYXJzID0gY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycworICAgIGlmIG5vdCBjb25m
aWcub3B0aW9uLmRpc2FibGVfd2FybmluZ3MgYW5kICd3JyBub3QgaW4gcmVwb3J0Y2hhcnM6Cisg
ICAgICAgIHJlcG9ydGNoYXJzICs9ICd3JworICAgIGVsaWYgY29uZmlnLm9wdGlvbi5kaXNhYmxl
X3dhcm5pbmdzIGFuZCAndycgaW4gcmVwb3J0Y2hhcnM6CisgICAgICAgIHJlcG9ydGNoYXJzID0g
cmVwb3J0Y2hhcnMucmVwbGFjZSgndycsICcnKQorICAgIGlmIHJlcG9ydGNoYXJzOgorICAgICAg
ICBmb3IgY2hhciBpbiByZXBvcnRjaGFyczoKKyAgICAgICAgICAgIGlmIGNoYXIgbm90IGluIHJl
cG9ydG9wdHMgYW5kIGNoYXIgIT0gJ2EnOgorICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMgKz0g
Y2hhcgorICAgICAgICAgICAgZWxpZiBjaGFyID09ICdhJzoKKyAgICAgICAgICAgICAgICByZXBv
cnRvcHRzID0gJ2ZFc3hYdycKKyAgICByZXR1cm4gcmVwb3J0b3B0cworCisKK2RlZiBweXRlc3Rf
cmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKKyAgICBpZiByZXBvcnQucGFzc2VkOgorICAgICAg
ICBsZXR0ZXIgPSAiLiIKKyAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgorICAgICAgICBsZXR0ZXIg
PSAicyIKKyAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgIGxldHRlciA9ICJGIgorICAg
ICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCI6CisgICAgICAgICAgICBsZXR0ZXIgPSAiZiIK
KyAgICByZXR1cm4gcmVwb3J0Lm91dGNvbWUsIGxldHRlciwgcmVwb3J0Lm91dGNvbWUudXBwZXIo
KQorCisKK2NsYXNzIFdhcm5pbmdSZXBvcnQ6CisgICAgIiIiCisgICAgU2ltcGxlIHN0cnVjdHVy
ZSB0byBob2xkIHdhcm5pbmdzIGluZm9ybWF0aW9uIGNhcHR1cmVkIGJ5IGBgcHl0ZXN0X2xvZ3dh
cm5pbmdgYC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb2RlLCBtZXNzYWdl
LCBub2RlaWQ9Tm9uZSwgZnNsb2NhdGlvbj1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIDpw
YXJhbSBjb2RlOiB1bnVzZWQKKyAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB1c2VyIGZyaWVu
ZGx5IG1lc3NhZ2UgYWJvdXQgdGhlIHdhcm5pbmcKKyAgICAgICAgOnBhcmFtIHN0cnxOb25lIG5v
ZGVpZDogbm9kZSBpZCB0aGF0IGdlbmVyYXRlZCB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0
aW9uYGApLgorICAgICAgICA6cGFyYW0gdHVwbGV8cHkucGF0aC5sb2NhbCBmc2xvY2F0aW9uOgor
ICAgICAgICAgICAgZmlsZSBzeXN0ZW0gbG9jYXRpb24gb2YgdGhlIHNvdXJjZSBvZiB0aGUgd2Fy
bmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5j
b2RlID0gY29kZQorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisgICAgICAgIHNlbGYu
bm9kZWlkID0gbm9kZWlkCisgICAgICAgIHNlbGYuZnNsb2NhdGlvbiA9IGZzbG9jYXRpb24KKwor
ICAgIGRlZiBnZXRfbG9jYXRpb24oc2VsZiwgY29uZmlnKToKKyAgICAgICAgIiIiCisgICAgICAg
IFJldHVybnMgdGhlIG1vcmUgdXNlci1mcmllbmRseSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9j
YXRpb24KKyAgICAgICAgb2YgYSB3YXJuaW5nLCBvciBOb25lLgorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgc2VsZi5ub2RlaWQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQKKyAgICAg
ICAgaWYgc2VsZi5mc2xvY2F0aW9uOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmZz
bG9jYXRpb24sIHR1cGxlKSBhbmQgbGVuKHNlbGYuZnNsb2NhdGlvbikgPj0gMjoKKyAgICAgICAg
ICAgICAgICBmaWxlbmFtZSwgbGluZW51bSA9IHNlbGYuZnNsb2NhdGlvbls6Ml0KKyAgICAgICAg
ICAgICAgICByZWxwYXRoID0gcHkucGF0aC5sb2NhbChmaWxlbmFtZSkucmVsdG8oY29uZmlnLmlu
dm9jYXRpb25fZGlyKQorICAgICAgICAgICAgICAgIHJldHVybiAnJXM6JXMnICUgKHJlbHBhdGgs
IGxpbmVudW0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzdHIo
c2VsZi5mc2xvY2F0aW9uKQorICAgICAgICByZXR1cm4gTm9uZQorCisKK2NsYXNzIFRlcm1pbmFs
UmVwb3J0ZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgZmlsZT1Ob25lKToKKyAg
ICAgICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmln
CisgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UKKyAg
ICAgICAgc2VsZi5zaG93aGVhZGVyID0gc2VsZi52ZXJib3NpdHkgPj0gMAorICAgICAgICBzZWxm
LnNob3dmc3BhdGggPSBzZWxmLnZlcmJvc2l0eSA+PSAwCisgICAgICAgIHNlbGYuc2hvd2xvbmd0
ZXN0aW5mbyA9IHNlbGYudmVyYm9zaXR5ID4gMAorICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQg
PSAwCisgICAgICAgIHNlbGYuX3Nlc3Npb24gPSBOb25lCisKKyAgICAgICAgc2VsZi5zdGF0cyA9
IHt9CisgICAgICAgIHNlbGYuc3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkKKyAgICAgICAgaWYg
ZmlsZSBpcyBOb25lOgorICAgICAgICAgICAgZmlsZSA9IHN5cy5zdGRvdXQKKyAgICAgICAgc2Vs
Zi5fdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZywgZmls
ZSkKKyAgICAgICAgIyBzZWxmLndyaXRlciB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gcHl0ZXN0LTMu
NAorICAgICAgICBzZWxmLndyaXRlciA9IHNlbGYuX3R3CisgICAgICAgIHNlbGYuX3NjcmVlbl93
aWR0aCA9IHNlbGYuX3R3LmZ1bGx3aWR0aAorICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBO
b25lCisgICAgICAgIHNlbGYucmVwb3J0Y2hhcnMgPSBnZXRyZXBvcnRvcHQoY29uZmlnKQorICAg
ICAgICBzZWxmLmhhc21hcmt1cCA9IHNlbGYuX3R3Lmhhc21hcmt1cAorICAgICAgICBzZWxmLmlz
YXR0eSA9IGZpbGUuaXNhdHR5KCkKKyAgICAgICAgc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0
ZWQgPSAwCisgICAgICAgIHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbyA9IHNlbGYuY29uZmlnLmdl
dGluaSgnY29uc29sZV9vdXRwdXRfc3R5bGUnKSA9PSAncHJvZ3Jlc3MnCisKKyAgICBkZWYgaGFz
b3B0KHNlbGYsIGNoYXIpOgorICAgICAgICBjaGFyID0geyd4ZmFpbGVkJzogJ3gnLCAnc2tpcHBl
ZCc6ICdzJ30uZ2V0KGNoYXIsIGNoYXIpCisgICAgICAgIHJldHVybiBjaGFyIGluIHNlbGYucmVw
b3J0Y2hhcnMKKworICAgIGRlZiB3cml0ZV9mc3BhdGhfcmVzdWx0KHNlbGYsIG5vZGVpZCwgcmVz
KToKKyAgICAgICAgZnNwYXRoID0gc2VsZi5jb25maWcucm9vdGRpci5qb2luKG5vZGVpZC5zcGxp
dCgiOjoiKVswXSkKKyAgICAgICAgaWYgZnNwYXRoICE9IHNlbGYuY3VycmVudGZzcGF0aDoKKyAg
ICAgICAgICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKKyAg
ICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IGZzcGF0aAorICAgICAgICAgICAgZnNwYXRo
ID0gc2VsZi5zdGFydGRpci5iZXN0cmVscGF0aChmc3BhdGgpCisgICAgICAgICAgICBzZWxmLl90
dy5saW5lKCkKKyAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGZzcGF0aCArICIgIikKKyAgICAg
ICAgc2VsZi5fdHcud3JpdGUocmVzKQorCisgICAgZGVmIHdyaXRlX2Vuc3VyZV9wcmVmaXgoc2Vs
ZiwgcHJlZml4LCBleHRyYT0iIiwgKiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLmN1cnJlbnRm
c3BhdGggIT0gcHJlZml4OgorICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCisgICAgICAgICAg
ICBzZWxmLmN1cnJlbnRmc3BhdGggPSBwcmVmaXgKKyAgICAgICAgICAgIHNlbGYuX3R3LndyaXRl
KHByZWZpeCkKKyAgICAgICAgaWYgZXh0cmE6CisgICAgICAgICAgICBzZWxmLl90dy53cml0ZShl
eHRyYSwgKiprd2FyZ3MpCisgICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSAtMgorICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgp
CisKKyAgICBkZWYgZW5zdXJlX25ld2xpbmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY3VycmVu
dGZzcGF0aDoKKyAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoKQorICAgICAgICAgICAgc2VsZi5j
dXJyZW50ZnNwYXRoID0gTm9uZQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGNvbnRlbnQsICoqbWFy
a3VwKToKKyAgICAgICAgc2VsZi5fdHcud3JpdGUoY29udGVudCwgKiptYXJrdXApCisKKyAgICBk
ZWYgd3JpdGVfbGluZShzZWxmLCBsaW5lLCAqKm1hcmt1cCk6CisgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKGxpbmUsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICAgICAgbGluZSA9IHNpeC50ZXh0
X3R5cGUobGluZSwgZXJyb3JzPSJyZXBsYWNlIikKKyAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGlu
ZSgpCisgICAgICAgIHNlbGYuX3R3LmxpbmUobGluZSwgKiptYXJrdXApCisKKyAgICBkZWYgcmV3
cml0ZShzZWxmLCBsaW5lLCAqKm1hcmt1cCk6CisgICAgICAgICIiIgorICAgICAgICBSZXdpbmRz
IHRoZSB0ZXJtaW5hbCBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZyBhbmQgd3JpdGVzIHRoZSBnaXZl
biBsaW5lLgorCisgICAgICAgIDprd2FyZyBlcmFzZTogaWYgVHJ1ZSwgd2lsbCBhbHNvIGFkZCBz
cGFjZXMgdW50aWwgdGhlIGZ1bGwgdGVybWluYWwgd2lkdGggdG8gZW5zdXJlCisgICAgICAgICAg
ICBwcmV2aW91cyBsaW5lcyBhcmUgcHJvcGVybHkgZXJhc2VkLgorCisgICAgICAgIFRoZSByZXN0
IG9mIHRoZSBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgbWFya3VwIGluc3RydWN0aW9ucy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGVyYXNlID0gbWFya3VwLnBvcCgnZXJhc2UnLCBGYWxzZSkKKyAgICAg
ICAgaWYgZXJhc2U6CisgICAgICAgICAgICBmaWxsX2NvdW50ID0gc2VsZi5fdHcuZnVsbHdpZHRo
IC0gbGVuKGxpbmUpIC0gMQorICAgICAgICAgICAgZmlsbCA9ICcgJyAqIGZpbGxfY291bnQKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpbGwgPSAnJworICAgICAgICBsaW5lID0gc3RyKGxp
bmUpCisgICAgICAgIHNlbGYuX3R3LndyaXRlKCJcciIgKyBsaW5lICsgZmlsbCwgKiptYXJrdXAp
CisKKyAgICBkZWYgd3JpdGVfc2VwKHNlbGYsIHNlcCwgdGl0bGU9Tm9uZSwgKiptYXJrdXApOgor
ICAgICAgICBzZWxmLmVuc3VyZV9uZXdsaW5lKCkKKyAgICAgICAgc2VsZi5fdHcuc2VwKHNlcCwg
dGl0bGUsICoqbWFya3VwKQorCisgICAgZGVmIHNlY3Rpb24oc2VsZiwgdGl0bGUsIHNlcD0iPSIs
ICoqa3cpOgorICAgICAgICBzZWxmLl90dy5zZXAoc2VwLCB0aXRsZSwgKiprdykKKworICAgIGRl
ZiBsaW5lKHNlbGYsIG1zZywgKiprdyk6CisgICAgICAgIHNlbGYuX3R3LmxpbmUobXNnLCAqKmt3
KQorCisgICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgorICAgICAg
ICBmb3IgbGluZSBpbiBzaXgudGV4dF90eXBlKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgorICAgICAg
ICAgICAgc2VsZi53cml0ZV9saW5lKCJJTlRFUk5BTEVSUk9SPiAiICsgbGluZSkKKyAgICAgICAg
cmV0dXJuIDEKKworICAgIGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxmLCBjb2RlLCBmc2xvY2F0
aW9uLCBtZXNzYWdlLCBub2RlaWQpOgorICAgICAgICB3YXJuaW5ncyA9IHNlbGYuc3RhdHMuc2V0
ZGVmYXVsdCgid2FybmluZ3MiLCBbXSkKKyAgICAgICAgd2FybmluZyA9IFdhcm5pbmdSZXBvcnQo
Y29kZT1jb2RlLCBmc2xvY2F0aW9uPWZzbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPW5vZGVpZCkKKyAgICAgICAgd2Fybmlu
Z3MuYXBwZW5kKHdhcm5pbmcpCisKKyAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNl
bGYsIHBsdWdpbik6CisgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoK
KyAgICAgICAgICAgIG1zZyA9ICJQTFVHSU4gcmVnaXN0ZXJlZDogJXMiICUgKHBsdWdpbiwpCisg
ICAgICAgICAgICAjIFhYWCB0aGlzIGV2ZW50IG1heSBoYXBwZW4gZHVyaW5nIHNldHVwL3RlYXJk
b3duIHRpbWUKKyAgICAgICAgICAgICMgICAgIHdoaWNoIHVuZm9ydHVuYXRlbHkgY2FwdHVyZXMg
b3VyIG91dHB1dCBoZXJlCisgICAgICAgICAgICAjICAgICB3aGljaCBnYXJibGVzIG91ciBvdXRw
dXQgaWYgd2UgdXNlIHNlbGYud3JpdGVfbGluZQorICAgICAgICAgICAgc2VsZi53cml0ZV9saW5l
KG1zZykKKworICAgIGRlZiBweXRlc3RfZGVzZWxlY3RlZChzZWxmLCBpdGVtcyk6CisgICAgICAg
IHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgnZGVzZWxlY3RlZCcsIFtdKS5leHRlbmQoaXRlbXMpCisK
KyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQoc2VsZiwgbm9kZWlkLCBsb2NhdGlvbik6
CisgICAgICAgICMgZW5zdXJlIHRoYXQgdGhlIHBhdGggaXMgcHJpbnRlZCBiZWZvcmUgdGhlCisg
ICAgICAgICMgMXN0IHRlc3Qgb2YgYSBtb2R1bGUgc3RhcnRzIHJ1bm5pbmcKKyAgICAgICAgaWYg
c2VsZi5zaG93bG9uZ3Rlc3RpbmZvOgorICAgICAgICAgICAgbGluZSA9IHNlbGYuX2xvY2F0aW9u
bGluZShub2RlaWQsICpsb2NhdGlvbikKKyAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJlX3By
ZWZpeChsaW5lLCAiIikKKyAgICAgICAgZWxpZiBzZWxmLnNob3dmc3BhdGg6CisgICAgICAgICAg
ICBmc2lkID0gbm9kZWlkLnNwbGl0KCI6OiIpWzBdCisgICAgICAgICAgICBzZWxmLndyaXRlX2Zz
cGF0aF9yZXN1bHQoZnNpZCwgIiIpCisKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0
KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIHJlcCA9IHJlcG9ydAorICAgICAgICByZXMgPSBzZWxm
LmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQ9cmVwKQorICAgICAg
ICBjYXQsIGxldHRlciwgd29yZCA9IHJlcworICAgICAgICBpZiBpc2luc3RhbmNlKHdvcmQsIHR1
cGxlKToKKyAgICAgICAgICAgIHdvcmQsIG1hcmt1cCA9IHdvcmQKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIG1hcmt1cCA9IE5vbmUKKyAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KGNh
dCwgW10pLmFwcGVuZChyZXApCisgICAgICAgIHNlbGYuX3Rlc3RzX3JhbiA9IFRydWUKKyAgICAg
ICAgaWYgbm90IGxldHRlciBhbmQgbm90IHdvcmQ6CisgICAgICAgICAgICAjIHByb2JhYmx5IHBh
c3NlZCBzZXR1cC90ZWFyZG93bgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJ1bm5pbmdf
eGRpc3QgPSBoYXNhdHRyKHJlcCwgJ25vZGUnKQorICAgICAgICBzZWxmLl9wcm9ncmVzc19pdGVt
c19yZXBvcnRlZCArPSAxCisgICAgICAgIGlmIHNlbGYudmVyYm9zaXR5IDw9IDA6CisgICAgICAg
ICAgICBpZiBub3QgcnVubmluZ194ZGlzdCBhbmQgc2VsZi5zaG93ZnNwYXRoOgorICAgICAgICAg
ICAgICAgIHNlbGYud3JpdGVfZnNwYXRoX3Jlc3VsdChyZXAubm9kZWlkLCBsZXR0ZXIpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGxldHRlcikKKyAg
ICAgICAgICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2lmX3Bhc3RfZWRnZSgpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBpZiBtYXJrdXAgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBy
ZXAucGFzc2VkOgorICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7J2dyZWVuJzogVHJ1ZX0K
KyAgICAgICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIG1h
cmt1cCA9IHsncmVkJzogVHJ1ZX0KKyAgICAgICAgICAgICAgICBlbGlmIHJlcC5za2lwcGVkOgor
ICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7J3llbGxvdyc6IFRydWV9CisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbWFya3VwID0ge30KKyAgICAgICAgICAg
IGxpbmUgPSBzZWxmLl9sb2NhdGlvbmxpbmUocmVwLm5vZGVpZCwgKnJlcC5sb2NhdGlvbikKKyAg
ICAgICAgICAgIGlmIG5vdCBydW5uaW5nX3hkaXN0OgorICAgICAgICAgICAgICAgIHNlbGYud3Jp
dGVfZW5zdXJlX3ByZWZpeChsaW5lLCB3b3JkLCAqKm1hcmt1cCkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCisgICAgICAgICAgICAgICAg
c2VsZi5fdHcud3JpdGUoIlslc10iICUgcmVwLm5vZGUuZ2F0ZXdheS5pZCkKKyAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9zaG93X3Byb2dyZXNzX2luZm86CisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX3R3LndyaXRlKHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkgKyAi
ICIsIGN5YW49VHJ1ZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl90dy53cml0ZSgnICcpCisgICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUod29y
ZCwgKiptYXJrdXApCisgICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoIiAiICsgbGluZSkK
KyAgICAgICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSAtMgorCisgICAgZGVmIF93cml0
ZV9wcm9ncmVzc19pZl9wYXN0X2VkZ2Uoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9zaG93
X3Byb2dyZXNzX2luZm86CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgbGFzdF9pdGVtID0g
c2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0ZWQgPT0gc2VsZi5fc2Vzc2lvbi50ZXN0c2NvbGxl
Y3RlZAorICAgICAgICBpZiBsYXN0X2l0ZW06CisgICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9n
cmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKKyAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgIHBhc3RfZWRnZSA9IHNlbGYuX3R3LmNoYXJzX29uX2N1cnJlbnRfbGluZSArIHNlbGYu
X1BST0dSRVNTX0xFTkdUSCArIDEgPj0gc2VsZi5fc2NyZWVuX3dpZHRoCisgICAgICAgIGlmIHBh
c3RfZWRnZToKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlv
bl9tZXNzYWdlKCkKKyAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKG1zZyArICdcbicsIGN5YW49
VHJ1ZSkKKworICAgIF9QUk9HUkVTU19MRU5HVEggPSBsZW4oJyBbMTAwJV0nKQorCisgICAgZGVm
IF9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZShzZWxmKToKKyAgICAgICAgY29sbGVj
dGVkID0gc2VsZi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAorICAgICAgICBpZiBjb2xsZWN0ZWQ6
CisgICAgICAgICAgICBwcm9ncmVzcyA9IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkICog
MTAwIC8vIGNvbGxlY3RlZAorICAgICAgICAgICAgcmV0dXJuICcgW3s6M2R9JV0nLmZvcm1hdChw
cm9ncmVzcykKKyAgICAgICAgcmV0dXJuICcgWzEwMCVdJworCisgICAgZGVmIF93cml0ZV9wcm9n
cmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2Vs
Zi5fc2hvd19wcm9ncmVzc19pbmZvOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1zZyA9
IHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkKKyAgICAgICAgZmlsbCA9
ICcgJyAqIChzZWxmLl90dy5mdWxsd2lkdGggLSBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50X2xp
bmUgLSBsZW4obXNnKSAtIDEpCisgICAgICAgIHNlbGYud3JpdGUoZmlsbCArIG1zZywgY3lhbj1U
cnVlKQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlbGYpOgorICAgICAgICBpZiBub3Qg
c2VsZi5pc2F0dHkgYW5kIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlID49IDE6CisgICAgICAg
ICAgICBzZWxmLndyaXRlKCJjb2xsZWN0aW5nIC4uLiAiLCBib2xkPVRydWUpCisKKyAgICBkZWYg
cHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgcmVwb3J0LmZh
aWxlZDoKKyAgICAgICAgICAgIHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgiZXJyb3IiLCBbXSkuYXBw
ZW5kKHJlcG9ydCkKKyAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKKyAgICAgICAgICAgIHNl
bGYuc3RhdHMuc2V0ZGVmYXVsdCgic2tpcHBlZCIsIFtdKS5hcHBlbmQocmVwb3J0KQorICAgICAg
ICBpdGVtcyA9IFt4IGZvciB4IGluIHJlcG9ydC5yZXN1bHQgaWYgaXNpbnN0YW5jZSh4LCBweXRl
c3QuSXRlbSldCisgICAgICAgIHNlbGYuX251bWNvbGxlY3RlZCArPSBsZW4oaXRlbXMpCisgICAg
ICAgIGlmIHNlbGYuaXNhdHR5OgorICAgICAgICAgICAgIyBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1
bHQocmVwb3J0Lm5vZGVpZCwgJ0UnKQorICAgICAgICAgICAgc2VsZi5yZXBvcnRfY29sbGVjdCgp
CisKKyAgICBkZWYgcmVwb3J0X2NvbGxlY3Qoc2VsZiwgZmluYWw9RmFsc2UpOgorICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZSA8IDA6CisgICAgICAgICAgICByZXR1cm4KKwor
ICAgICAgICBlcnJvcnMgPSBsZW4oc2VsZi5zdGF0cy5nZXQoJ2Vycm9yJywgW10pKQorICAgICAg
ICBza2lwcGVkID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCdza2lwcGVkJywgW10pKQorICAgICAgICBp
ZiBmaW5hbDoKKyAgICAgICAgICAgIGxpbmUgPSAiY29sbGVjdGVkICIKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGxpbmUgPSAiY29sbGVjdGluZyAiCisgICAgICAgIGxpbmUgKz0gc3RyKHNl
bGYuX251bWNvbGxlY3RlZCkgKyAiIGl0ZW0iICsgKCcnIGlmIHNlbGYuX251bWNvbGxlY3RlZCA9
PSAxIGVsc2UgJ3MnKQorICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICBsaW5lICs9ICIg
LyAlZCBlcnJvcnMiICUgZXJyb3JzCisgICAgICAgIGlmIHNraXBwZWQ6CisgICAgICAgICAgICBs
aW5lICs9ICIgLyAlZCBza2lwcGVkIiAlIHNraXBwZWQKKyAgICAgICAgaWYgc2VsZi5pc2F0dHk6
CisgICAgICAgICAgICBzZWxmLnJld3JpdGUobGluZSwgYm9sZD1UcnVlLCBlcmFzZT1UcnVlKQor
ICAgICAgICAgICAgaWYgZmluYWw6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZSgnXG4nKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCisKKyAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZik6CisgICAgICAgIHNlbGYucmVw
b3J0X2NvbGxlY3QoVHJ1ZSkKKworICAgIEBweXRlc3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQor
ICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlbGYsIHNlc3Npb24pOgorICAgICAgICBzZWxm
Ll9zZXNzaW9uID0gc2Vzc2lvbgorICAgICAgICBzZWxmLl9zZXNzaW9uc3RhcnR0aW1lID0gdGlt
ZS50aW1lKCkKKyAgICAgICAgaWYgbm90IHNlbGYuc2hvd2hlYWRlcjoKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJ0ZXN0IHNlc3Npb24gc3RhcnRzIiwg
Ym9sZD1UcnVlKQorICAgICAgICB2ZXJpbmZvID0gcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKQor
ICAgICAgICBtc2cgPSAicGxhdGZvcm0gJXMgLS0gUHl0aG9uICVzIiAlIChzeXMucGxhdGZvcm0s
IHZlcmluZm8pCisgICAgICAgIGlmIGhhc2F0dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKToK
KyAgICAgICAgICAgIHZlcmluZm8gPSAiLiIuam9pbihtYXAoc3RyLCBzeXMucHlweV92ZXJzaW9u
X2luZm9bOjNdKSkKKyAgICAgICAgICAgIG1zZyArPSAiW3B5cHktJXMtJXNdIiAlICh2ZXJpbmZv
LCBzeXMucHlweV92ZXJzaW9uX2luZm9bM10pCisgICAgICAgIG1zZyArPSAiLCBweXRlc3QtJXMs
IHB5LSVzLCBwbHVnZ3ktJXMiICUgKAorICAgICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9f
LCBweS5fX3ZlcnNpb25fXywgcGx1Z2d5Ll9fdmVyc2lvbl9fKQorICAgICAgICBpZiBzZWxmLnZl
cmJvc2l0eSA+IDAgb3Igc2VsZi5jb25maWcub3B0aW9uLmRlYnVnIG9yIFwKKyAgICAgICAgICAg
Z2V0YXR0cihzZWxmLmNvbmZpZy5vcHRpb24sICdwYXN0ZWJpbicsIE5vbmUpOgorICAgICAgICAg
ICAgbXNnICs9ICIgLS0gIiArIHN0cihzeXMuZXhlY3V0YWJsZSkKKyAgICAgICAgc2VsZi53cml0
ZV9saW5lKG1zZykKKyAgICAgICAgbGluZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBv
cnRfaGVhZGVyKAorICAgICAgICAgICAgY29uZmlnPXNlbGYuY29uZmlnLCBzdGFydGRpcj1zZWxm
LnN0YXJ0ZGlyKQorICAgICAgICBzZWxmLl93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9ob29rcyhs
aW5lcykKKworICAgIGRlZiBfd3JpdGVfcmVwb3J0X2xpbmVzX2Zyb21faG9va3Moc2VsZiwgbGlu
ZXMpOgorICAgICAgICBsaW5lcy5yZXZlcnNlKCkKKyAgICAgICAgZm9yIGxpbmUgaW4gZmxhdHRl
bihsaW5lcyk6CisgICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKKworICAgIGRlZiBw
eXRlc3RfcmVwb3J0X2hlYWRlcihzZWxmLCBjb25maWcpOgorICAgICAgICBpbmlmaWxlID0gIiIK
KyAgICAgICAgaWYgY29uZmlnLmluaWZpbGU6CisgICAgICAgICAgICBpbmlmaWxlID0gIiAiICsg
Y29uZmlnLnJvb3RkaXIuYmVzdHJlbHBhdGgoY29uZmlnLmluaWZpbGUpCisgICAgICAgIGxpbmVz
ID0gWyJyb290ZGlyOiAlcywgaW5pZmlsZTolcyIgJSAoY29uZmlnLnJvb3RkaXIsIGluaWZpbGUp
XQorCisgICAgICAgIHBsdWdpbmluZm8gPSBjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdp
bl9kaXN0aW5mbygpCisgICAgICAgIGlmIHBsdWdpbmluZm86CisKKyAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgKKyAgICAgICAgICAgICAgICAicGx1Z2luczogJXMiICUgIiwgIi5qb2luKF9wbHVn
aW5fbmFtZXZlcnNpb25zKHBsdWdpbmluZm8pKSkKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKyAg
ICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fZmluaXNoKHNlbGYsIHNlc3Npb24pOgorICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5vcHRpb24uY29sbGVjdG9ubHk6CisgICAgICAgICAgICBzZWxmLl9wcmlu
dGNvbGxlY3RlZGl0ZW1zKHNlc3Npb24uaXRlbXMpCisgICAgICAgICAgICBpZiBzZWxmLnN0YXRz
LmdldCgnZmFpbGVkJyk6CisgICAgICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCIhIiwgImNvbGxl
Y3Rpb24gZmFpbHVyZXMiKQorICAgICAgICAgICAgICAgIGZvciByZXAgaW4gc2VsZi5zdGF0cy5n
ZXQoJ2ZhaWxlZCcpOgorICAgICAgICAgICAgICAgICAgICByZXAudG90ZXJtaW5hbChzZWxmLl90
dykKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAg
ICAgbGluZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlz
aCgKKyAgICAgICAgICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFydGRp
ciwgaXRlbXM9c2Vzc2lvbi5pdGVtcykKKyAgICAgICAgc2VsZi5fd3JpdGVfcmVwb3J0X2xpbmVz
X2Zyb21faG9va3MobGluZXMpCisKKyAgICBkZWYgX3ByaW50Y29sbGVjdGVkaXRlbXMoc2VsZiwg
aXRlbXMpOgorICAgICAgICAjIHRvIHByaW50IG91dCBpdGVtcyBhbmQgdGhlaXIgcGFyZW50IGNv
bGxlY3RvcnMKKyAgICAgICAgIyB3ZSB0YWtlIGNhcmUgdG8gbGVhdmUgb3V0IEluc3RhbmNlcyBh
a2EgKCkKKyAgICAgICAgIyBiZWNhdXNlIGxhdGVyIHZlcnNpb25zIGFyZSBnb2luZyB0byBnZXQg
cmlkIG9mIHRoZW0gYW55d2F5CisgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3Nl
IDwgMDoKKyAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgLTE6Cisg
ICAgICAgICAgICAgICAgY291bnRzID0ge30KKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBp
dGVtczoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGl0ZW0ubm9kZWlkLnNwbGl0KCc6Oics
IDEpWzBdCisgICAgICAgICAgICAgICAgICAgIGNvdW50c1tuYW1lXSA9IGNvdW50cy5nZXQobmFt
ZSwgMCkgKyAxCisgICAgICAgICAgICAgICAgZm9yIG5hbWUsIGNvdW50IGluIHNvcnRlZChjb3Vu
dHMuaXRlbXMoKSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzOiAlZCIg
JSAobmFtZSwgY291bnQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3Ig
aXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gaXRlbS5ub2RlaWQK
KyAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6
OiIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUobm9kZWlkKQorICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgIHN0YWNrID0gW10KKyAgICAgICAgaW5kZW50ID0gIiIKKyAgICAg
ICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGl0
ZW0ubGlzdGNoYWluKClbMTpdICAjIHN0cmlwIHJvb3Qgbm9kZQorICAgICAgICAgICAgd2hpbGUg
c3RhY2s6CisgICAgICAgICAgICAgICAgaWYgc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOmxl
bihzdGFjayldOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHN0
YWNrLnBvcCgpCisgICAgICAgICAgICBmb3IgY29sIGluIG5lZWRlZF9jb2xsZWN0b3JzW2xlbihz
dGFjayk6XToKKyAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoY29sKQorICAgICAgICAgICAg
ICAgICMgaWYgY29sLm5hbWUgPT0gIigpIjoKKyAgICAgICAgICAgICAgICAjICAgIGNvbnRpbnVl
CisgICAgICAgICAgICAgICAgaW5kZW50ID0gKGxlbihzdGFjaykgLSAxKSAqICIgICIKKyAgICAg
ICAgICAgICAgICBzZWxmLl90dy5saW5lKCIlcyVzIiAlIChpbmRlbnQsIGNvbCkpCisKKyAgICBA
cHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9zZXNzaW9u
ZmluaXNoKHNlbGYsIGV4aXRzdGF0dXMpOgorICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAg
ICAgb3V0Y29tZS5nZXRfcmVzdWx0KCkKKyAgICAgICAgc2VsZi5fdHcubGluZSgiIikKKyAgICAg
ICAgc3VtbWFyeV9leGl0X2NvZGVzID0gKAorICAgICAgICAgICAgRVhJVF9PSywgRVhJVF9URVNU
U0ZBSUxFRCwgRVhJVF9JTlRFUlJVUFRFRCwgRVhJVF9VU0FHRUVSUk9SLAorICAgICAgICAgICAg
RVhJVF9OT1RFU1RTQ09MTEVDVEVEKQorICAgICAgICBpZiBleGl0c3RhdHVzIGluIHN1bW1hcnlf
ZXhpdF9jb2RlczoKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3Rlcm1pbmFs
X3N1bW1hcnkodGVybWluYWxyZXBvcnRlcj1zZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0c3RhdHVzPWV4aXRzdGF0dXMpCisgICAg
ICAgICAgICBzZWxmLnN1bW1hcnlfZXJyb3JzKCkKKyAgICAgICAgICAgIHNlbGYuc3VtbWFyeV9m
YWlsdXJlcygpCisgICAgICAgICAgICBzZWxmLnN1bW1hcnlfd2FybmluZ3MoKQorICAgICAgICAg
ICAgc2VsZi5zdW1tYXJ5X3Bhc3NlcygpCisgICAgICAgIGlmIGV4aXRzdGF0dXMgPT0gRVhJVF9J
TlRFUlJVUFRFRDoKKyAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9rZXlib2FyZGludGVycnVwdCgp
CisgICAgICAgICAgICBkZWwgc2VsZi5fa2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbworICAgICAgICBz
ZWxmLnN1bW1hcnlfZGVzZWxlY3RlZCgpCisgICAgICAgIHNlbGYuc3VtbWFyeV9zdGF0cygpCisK
KyAgICBkZWYgcHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChzZWxmLCBleGNpbmZvKToKKyAgICAg
ICAgc2VsZi5fa2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbyA9IGV4Y2luZm8uZ2V0cmVwcihmdW5jYXJn
cz1UcnVlKQorCisgICAgZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShzZWxmKToKKyAgICAgICAgaWYg
aGFzYXR0cihzZWxmLCAnX2tleWJvYXJkaW50ZXJydXB0X21lbW8nKToKKyAgICAgICAgICAgIHNl
bGYuX3JlcG9ydF9rZXlib2FyZGludGVycnVwdCgpCisKKyAgICBkZWYgX3JlcG9ydF9rZXlib2Fy
ZGludGVycnVwdChzZWxmKToKKyAgICAgICAgZXhjcmVwciA9IHNlbGYuX2tleWJvYXJkaW50ZXJy
dXB0X21lbW8KKyAgICAgICAgbXNnID0gZXhjcmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAgICAg
ICBzZWxmLndyaXRlX3NlcCgiISIsIG1zZykKKyAgICAgICAgaWYgIktleWJvYXJkSW50ZXJydXB0
IiBpbiBtc2c6CisgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgor
ICAgICAgICAgICAgICAgIGV4Y3JlcHIudG90ZXJtaW5hbChzZWxmLl90dykKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgidG8gc2hvdyBhIGZ1bGwgdHJh
Y2ViYWNrIG9uIEtleWJvYXJkSW50ZXJydXB0IHVzZSAtLWZ1bGx0cmFjZSIsIHllbGxvdz1UcnVl
KQorICAgICAgICAgICAgICAgIGV4Y3JlcHIucmVwcmNyYXNoLnRvdGVybWluYWwoc2VsZi5fdHcp
CisKKyAgICBkZWYgX2xvY2F0aW9ubGluZShzZWxmLCBub2RlaWQsIGZzcGF0aCwgbGluZW5vLCBk
b21haW4pOgorICAgICAgICBkZWYgbWtyZWwobm9kZWlkKToKKyAgICAgICAgICAgIGxpbmUgPSBz
ZWxmLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKG5vZGVpZCkKKyAgICAgICAgICAgIGlmIGRv
bWFpbiBhbmQgbGluZS5lbmRzd2l0aChkb21haW4pOgorICAgICAgICAgICAgICAgIGxpbmUgPSBs
aW5lWzotbGVuKGRvbWFpbildCisgICAgICAgICAgICAgICAgdmFsdWVzID0gZG9tYWluLnNwbGl0
KCJbIikKKyAgICAgICAgICAgICAgICB2YWx1ZXNbMF0gPSB2YWx1ZXNbMF0ucmVwbGFjZSgnLics
ICc6OicpICAjIGRvbid0IHJlcGxhY2UgJy4nIGluIHBhcmFtcworICAgICAgICAgICAgICAgIGxp
bmUgKz0gIlsiLmpvaW4odmFsdWVzKQorICAgICAgICAgICAgcmV0dXJuIGxpbmUKKyAgICAgICAg
IyBjb2xsZWN0X2ZzcGF0aCBjb21lcyBmcm9tIHRlc3RpZCB3aGljaCBoYXMgYSAiLyItbm9ybWFs
aXplZCBwYXRoCisKKyAgICAgICAgaWYgZnNwYXRoOgorICAgICAgICAgICAgcmVzID0gbWtyZWwo
bm9kZWlkKS5yZXBsYWNlKCI6OigpIiwgIiIpICAjIHBhcmVucy1ub3JtYWxpemF0aW9uCisgICAg
ICAgICAgICBpZiBub2RlaWQuc3BsaXQoIjo6IilbMF0gIT0gZnNwYXRoLnJlcGxhY2UoIlxcIiwg
bm9kZXMuU0VQKToKKyAgICAgICAgICAgICAgICByZXMgKz0gIiA8LSAiICsgc2VsZi5zdGFydGRp
ci5iZXN0cmVscGF0aChmc3BhdGgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXMgPSAi
W2xvY2F0aW9uXSIKKyAgICAgICAgcmV0dXJuIHJlcyArICIgIgorCisgICAgZGVmIF9nZXRmYWls
dXJlaGVhZGxpbmUoc2VsZiwgcmVwKToKKyAgICAgICAgaWYgaGFzYXR0cihyZXAsICdsb2NhdGlv
bicpOgorICAgICAgICAgICAgZnNwYXRoLCBsaW5lbm8sIGRvbWFpbiA9IHJlcC5sb2NhdGlvbgor
ICAgICAgICAgICAgcmV0dXJuIGRvbWFpbgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0
dXJuICJ0ZXN0IHNlc3Npb24iICAjIFhYWD8KKworICAgIGRlZiBfZ2V0Y3Jhc2hsaW5lKHNlbGYs
IHJlcCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdHIocmVwLmxvbmdyZXBy
LnJlcHJjcmFzaCkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBzdHIocmVwLmxvbmdyZXByKVs6NTBdCisgICAg
ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuICIi
CisKKyAgICAjCisgICAgIyBzdW1tYXJpZXMgZm9yIHNlc3Npb25maW5pc2gKKyAgICAjCisgICAg
ZGVmIGdldHJlcG9ydHMoc2VsZiwgbmFtZSk6CisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAg
IGZvciB4IGluIHNlbGYuc3RhdHMuZ2V0KG5hbWUsIFtdKToKKyAgICAgICAgICAgIGlmIG5vdCBo
YXNhdHRyKHgsICdfcGRic2hvd24nKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHgp
CisgICAgICAgIHJldHVybiB2YWx1ZXMKKworICAgIGRlZiBzdW1tYXJ5X3dhcm5pbmdzKHNlbGYp
OgorICAgICAgICBpZiBzZWxmLmhhc29wdCgidyIpOgorICAgICAgICAgICAgYWxsX3dhcm5pbmdz
ID0gc2VsZi5zdGF0cy5nZXQoIndhcm5pbmdzIikKKyAgICAgICAgICAgIGlmIG5vdCBhbGxfd2Fy
bmluZ3M6CisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIGdyb3VwZWQgPSBp
dGVydG9vbHMuZ3JvdXBieShhbGxfd2FybmluZ3MsIGtleT1sYW1iZGEgd3I6IHdyLmdldF9sb2Nh
dGlvbihzZWxmLmNvbmZpZykpCisKKyAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIndh
cm5pbmdzIHN1bW1hcnkiLCB5ZWxsb3c9VHJ1ZSwgYm9sZD1GYWxzZSkKKyAgICAgICAgICAgIGZv
ciBsb2NhdGlvbiwgd2FybmluZ19yZWNvcmRzIGluIGdyb3VwZWQ6CisgICAgICAgICAgICAgICAg
c2VsZi5fdHcubGluZShzdHIobG9jYXRpb24pIG9yICc8dW5kZXRlcm1pbmVkIGxvY2F0aW9uPicp
CisgICAgICAgICAgICAgICAgZm9yIHcgaW4gd2FybmluZ19yZWNvcmRzOgorICAgICAgICAgICAg
ICAgICAgICBsaW5lcyA9IHcubWVzc2FnZS5zcGxpdGxpbmVzKCkKKyAgICAgICAgICAgICAgICAg
ICAgaW5kZW50ZWQgPSAnXG4nLmpvaW4oJyAgJyArIHggZm9yIHggaW4gbGluZXMpCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoaW5kZW50ZWQpCisgICAgICAgICAgICAgICAgc2Vs
Zi5fdHcubGluZSgpCisgICAgICAgICAgICBzZWxmLl90dy5saW5lKCctLSBEb2NzOiBodHRwOi8v
ZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwnKQorCisgICAgZGVmIHN1bW1h
cnlfcGFzc2VzKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAh
PSAibm8iOgorICAgICAgICAgICAgaWYgc2VsZi5oYXNvcHQoIlAiKToKKyAgICAgICAgICAgICAg
ICByZXBvcnRzID0gc2VsZi5nZXRyZXBvcnRzKCdwYXNzZWQnKQorICAgICAgICAgICAgICAgIGlm
IG5vdCByZXBvcnRzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAg
ICBzZWxmLndyaXRlX3NlcCgiPSIsICJQQVNTRVMiKQorICAgICAgICAgICAgICAgIGZvciByZXAg
aW4gcmVwb3J0czoKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhl
YWRsaW5lKHJlcCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2cp
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKKworICAgIGRl
ZiBwcmludF90ZWFyZG93bl9zZWN0aW9ucyhzZWxmLCByZXApOgorICAgICAgICBmb3Igc2VjbmFt
ZSwgY29udGVudCBpbiByZXAuc2VjdGlvbnM6CisgICAgICAgICAgICBpZiAndGVhcmRvd24nIGlu
IHNlY25hbWU6CisgICAgICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCctJywgc2VjbmFtZSkKKyAg
ICAgICAgICAgICAgICBpZiBjb250ZW50Wy0xOl0gPT0gIlxuIjoKKyAgICAgICAgICAgICAgICAg
ICAgY29udGVudCA9IGNvbnRlbnRbOi0xXQorICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUo
Y29udGVudCkKKworICAgIGRlZiBzdW1tYXJ5X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgorICAgICAgICAgICAgcmVwb3J0cyA9
IHNlbGYuZ2V0cmVwb3J0cygnZmFpbGVkJykKKyAgICAgICAgICAgIGlmIG5vdCByZXBvcnRzOgor
ICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAi
RkFJTFVSRVMiKQorICAgICAgICAgICAgZm9yIHJlcCBpbiByZXBvcnRzOgorICAgICAgICAgICAg
ICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlID09ICJsaW5lIjoKKyAgICAgICAgICAg
ICAgICAgICAgbGluZSA9IHNlbGYuX2dldGNyYXNobGluZShyZXApCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCisgICAgICAg
ICAgICAgICAgICAgIG1hcmt1cCA9IHsncmVkJzogVHJ1ZSwgJ2JvbGQnOiBUcnVlfQorICAgICAg
ICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZywgKiptYXJrdXApCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIHJlcG9ydCBpbiBzZWxmLmdldHJlcG9ydHMoJycpOgorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgcmVwb3J0Lm5vZGVpZCA9PSByZXAubm9kZWlkIGFuZCByZXBvcnQud2hlbiA9PSAn
dGVhcmRvd24nOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfdGVhcmRv
d25fc2VjdGlvbnMocmVwb3J0KQorCisgICAgZGVmIHN1bW1hcnlfZXJyb3JzKHNlbGYpOgorICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgorICAgICAgICAgICAg
cmVwb3J0cyA9IHNlbGYuZ2V0cmVwb3J0cygnZXJyb3InKQorICAgICAgICAgICAgaWYgbm90IHJl
cG9ydHM6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBzZWxmLndyaXRlX3Nl
cCgiPSIsICJFUlJPUlMiKQorICAgICAgICAgICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzWydlcnJv
ciddOgorICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXAp
CisgICAgICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIocmVwLCAnd2hlbicpOgorICAgICAgICAg
ICAgICAgICAgICAjIGNvbGxlY3QKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGNv
bGxlY3RpbmcgIiArIG1zZworICAgICAgICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInNldHVw
IjoKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGF0IHNldHVwIG9mICIgKyBtc2cK
KyAgICAgICAgICAgICAgICBlbGlmIHJlcC53aGVuID09ICJ0ZWFyZG93biI6CisgICAgICAgICAg
ICAgICAgICAgIG1zZyA9ICJFUlJPUiBhdCB0ZWFyZG93biBvZiAiICsgbXNnCisgICAgICAgICAg
ICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2cpCisgICAgICAgICAgICAgICAgc2VsZi5fb3V0
cmVwX3N1bW1hcnkocmVwKQorCisgICAgZGVmIF9vdXRyZXBfc3VtbWFyeShzZWxmLCByZXApOgor
ICAgICAgICByZXAudG90ZXJtaW5hbChzZWxmLl90dykKKyAgICAgICAgZm9yIHNlY25hbWUsIGNv
bnRlbnQgaW4gcmVwLnNlY3Rpb25zOgorICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCItIiwgc2Vj
bmFtZSkKKyAgICAgICAgICAgIGlmIGNvbnRlbnRbLTE6XSA9PSAiXG4iOgorICAgICAgICAgICAg
ICAgIGNvbnRlbnQgPSBjb250ZW50WzotMV0KKyAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoY29u
dGVudCkKKworICAgIGRlZiBzdW1tYXJ5X3N0YXRzKHNlbGYpOgorICAgICAgICBzZXNzaW9uX2R1
cmF0aW9uID0gdGltZS50aW1lKCkgLSBzZWxmLl9zZXNzaW9uc3RhcnR0aW1lCisgICAgICAgIChs
aW5lLCBjb2xvcikgPSBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUoc2VsZi5zdGF0cykKKyAgICAg
ICAgbXNnID0gIiVzIGluICUuMmYgc2Vjb25kcyIgJSAobGluZSwgc2Vzc2lvbl9kdXJhdGlvbikK
KyAgICAgICAgbWFya3VwID0ge2NvbG9yOiBUcnVlLCAnYm9sZCc6IFRydWV9CisKKyAgICAgICAg
aWYgc2VsZi52ZXJib3NpdHkgPj0gMDoKKyAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9Iiwg
bXNnLCAqKm1hcmt1cCkKKyAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPT0gLTE6CisgICAgICAg
ICAgICBzZWxmLndyaXRlX2xpbmUobXNnLCAqKm1hcmt1cCkKKworICAgIGRlZiBzdW1tYXJ5X2Rl
c2VsZWN0ZWQoc2VsZik6CisgICAgICAgIGlmICdkZXNlbGVjdGVkJyBpbiBzZWxmLnN0YXRzOgor
ICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiJWQgdGVzdHMgZGVzZWxlY3RlZCIgJSAo
CisgICAgICAgICAgICAgICAgbGVuKHNlbGYuc3RhdHNbJ2Rlc2VsZWN0ZWQnXSkpLCBib2xkPVRy
dWUpCisKKworZGVmIHJlcHJfcHl0aG9udmVyc2lvbih2PU5vbmUpOgorICAgIGlmIHYgaXMgTm9u
ZToKKyAgICAgICAgdiA9IHN5cy52ZXJzaW9uX2luZm8KKyAgICB0cnk6CisgICAgICAgIHJldHVy
biAiJXMuJXMuJXMtJXMtJXMiICUgdgorICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9y
KToKKyAgICAgICAgcmV0dXJuIHN0cih2KQorCisKK2RlZiBmbGF0dGVuKHZhbHVlcyk6CisgICAg
Zm9yIHggaW4gdmFsdWVzOgorICAgICAgICBpZiBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkp
OgorICAgICAgICAgICAgZm9yIHkgaW4gZmxhdHRlbih4KToKKyAgICAgICAgICAgICAgICB5aWVs
ZCB5CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCB4CisKKworZGVmIGJ1aWxkX3N1
bW1hcnlfc3RhdHNfbGluZShzdGF0cyk6CisgICAga2V5cyA9ICgiZmFpbGVkIHBhc3NlZCBza2lw
cGVkIGRlc2VsZWN0ZWQgIgorICAgICAgICAgICAgInhmYWlsZWQgeHBhc3NlZCB3YXJuaW5ncyBl
cnJvciIpLnNwbGl0KCkKKyAgICB1bmtub3duX2tleV9zZWVuID0gRmFsc2UKKyAgICBmb3Iga2V5
IGluIHN0YXRzLmtleXMoKToKKyAgICAgICAgaWYga2V5IG5vdCBpbiBrZXlzOgorICAgICAgICAg
ICAgaWYga2V5OiAgIyBzZXR1cC90ZWFyZG93biByZXBvcnRzIGhhdmUgYW4gZW1wdHkga2V5LCBp
Z25vcmUgdGhlbQorICAgICAgICAgICAgICAgIGtleXMuYXBwZW5kKGtleSkKKyAgICAgICAgICAg
ICAgICB1bmtub3duX2tleV9zZWVuID0gVHJ1ZQorICAgIHBhcnRzID0gW10KKyAgICBmb3Iga2V5
IGluIGtleXM6CisgICAgICAgIHZhbCA9IHN0YXRzLmdldChrZXksIE5vbmUpCisgICAgICAgIGlm
IHZhbDoKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiJWQgJXMiICUgKGxlbih2YWwpLCBrZXkp
KQorCisgICAgaWYgcGFydHM6CisgICAgICAgIGxpbmUgPSAiLCAiLmpvaW4ocGFydHMpCisgICAg
ZWxzZToKKyAgICAgICAgbGluZSA9ICJubyB0ZXN0cyByYW4iCisKKyAgICBpZiAnZmFpbGVkJyBp
biBzdGF0cyBvciAnZXJyb3InIGluIHN0YXRzOgorICAgICAgICBjb2xvciA9ICdyZWQnCisgICAg
ZWxpZiAnd2FybmluZ3MnIGluIHN0YXRzIG9yIHVua25vd25fa2V5X3NlZW46CisgICAgICAgIGNv
bG9yID0gJ3llbGxvdycKKyAgICBlbGlmICdwYXNzZWQnIGluIHN0YXRzOgorICAgICAgICBjb2xv
ciA9ICdncmVlbicKKyAgICBlbHNlOgorICAgICAgICBjb2xvciA9ICd5ZWxsb3cnCisKKyAgICBy
ZXR1cm4gKGxpbmUsIGNvbG9yKQorCisKK2RlZiBfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5p
bmZvKToKKyAgICB2YWx1ZXMgPSBbXQorICAgIGZvciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5m
bzoKKyAgICAgICAgIyBnZXRzIHVzIG5hbWUgYW5kIHZlcnNpb24hCisgICAgICAgIG5hbWUgPSAn
e2Rpc3QucHJvamVjdF9uYW1lfS17ZGlzdC52ZXJzaW9ufScuZm9ybWF0KGRpc3Q9ZGlzdCkKKyAg
ICAgICAgIyBxdWVzdGlvbmFibGUgY29udmVuaWVuY2UsIGJ1dCBpdCBrZWVwcyB0aGluZ3Mgc2hv
cnQKKyAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCJweXRlc3QtIik6CisgICAgICAgICAgICBu
YW1lID0gbmFtZVs3Ol0KKyAgICAgICAgIyB3ZSBkZWNpZGVkIHRvIHByaW50IHB5dGhvbiBwYWNr
YWdlIG5hbWVzCisgICAgICAgICMgdGhleSBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHBsdWdpbgor
ICAgICAgICBpZiBuYW1lIG5vdCBpbiB2YWx1ZXM6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KG5hbWUpCisgICAgcmV0dXJuIHZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC90bXBkaXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YTFiMDMyMjM3YWZiZjQ2OGNjMGUzNDlkMmIyNjJiOTI4M2U5NzgzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIucHkKQEAgLTAsMCArMSwxMjYgQEAKKyIiIiBz
dXBwb3J0IGZvciBwcm92aWRpbmcgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rp
b25zLiAgIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCByZQorCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQg
cHkKK2Zyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKKworCitjbGFz
cyBUZW1wZGlyRmFjdG9yeToKKyAgICAiIiJGYWN0b3J5IGZvciB0ZW1wb3JhcnkgZGlyZWN0b3Jp
ZXMgdW5kZXIgdGhlIGNvbW1vbiBiYXNlIHRlbXAgZGlyZWN0b3J5LgorCisgICAgVGhlIGJhc2Ug
ZGlyZWN0b3J5IGNhbiBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgYC0tYmFzZXRlbXBgYCBvcHRp
b24uCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAg
c2VsZi5jb25maWcgPSBjb25maWcKKyAgICAgICAgc2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5n
ZXQoInRtcGRpciIpCisKKyAgICBkZWYgZW5zdXJldGVtcChzZWxmLCBzdHJpbmcsIGRpcj0xKToK
KyAgICAgICAgIiIiIChkZXByZWNhdGVkKSByZXR1cm4gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRo
IHdpdGgKKyAgICAgICAgICAgIHRoZSBnaXZlbiBzdHJpbmcgYXMgdGhlIHRyYWlsaW5nIHBhcnQu
ICBJdCBpcyB1c3VhbGx5CisgICAgICAgICAgICBiZXR0ZXIgdG8gdXNlIHRoZSAndG1wZGlyJyBm
dW5jdGlvbiBhcmd1bWVudCB3aGljaAorICAgICAgICAgICAgcHJvdmlkZXMgYW4gZW1wdHkgdW5p
cXVlLXBlci10ZXN0LWludm9jYXRpb24gZGlyZWN0b3J5CisgICAgICAgICAgICBhbmQgaXMgZ3Vh
cmFudGVlZCB0byBiZSBlbXB0eS4KKyAgICAgICAgIiIiCisgICAgICAgICMgcHkubG9nLl9hcGl3
YXJuKCI+MS4xIiwgInVzZSB0bXBkaXIgZnVuY3Rpb24gYXJndW1lbnQiKQorICAgICAgICByZXR1
cm4gc2VsZi5nZXRiYXNldGVtcCgpLmVuc3VyZShzdHJpbmcsIGRpcj1kaXIpCisKKyAgICBkZWYg
bWt0ZW1wKHNlbGYsIGJhc2VuYW1lLCBudW1iZXJlZD1UcnVlKToKKyAgICAgICAgIiIiQ3JlYXRl
IGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnkgYW5kIHJldHVy
biBpdC4KKyAgICAgICAgSWYgYGBudW1iZXJlZGBgLCBlbnN1cmUgdGhlIGRpcmVjdG9yeSBpcyB1
bmlxdWUgYnkgYWRkaW5nIGEgbnVtYmVyCisgICAgICAgIHByZWZpeCBncmVhdGVyIHRoYW4gYW55
IGV4aXN0aW5nIG9uZS4KKyAgICAgICAgIiIiCisgICAgICAgIGJhc2V0ZW1wID0gc2VsZi5nZXRi
YXNldGVtcCgpCisgICAgICAgIGlmIG5vdCBudW1iZXJlZDoKKyAgICAgICAgICAgIHAgPSBiYXNl
dGVtcC5ta2RpcihiYXNlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHAgPSBweS5w
YXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD1iYXNlbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXA9MCwgcm9vdGRpcj1iYXNl
dGVtcCwgbG9ja190aW1lb3V0PU5vbmUpCisgICAgICAgIHNlbGYudHJhY2UoIm1rdGVtcCIsIHAp
CisgICAgICAgIHJldHVybiBwCisKKyAgICBkZWYgZ2V0YmFzZXRlbXAoc2VsZik6CisgICAgICAg
ICIiIiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAiIiIKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2V0ZW1wCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKKyAgICAgICAgICAgIGJhc2V0ZW1wID0gc2VsZi5jb25maWcub3B0aW9uLmJhc2V0
ZW1wCisgICAgICAgICAgICBpZiBiYXNldGVtcDoKKyAgICAgICAgICAgICAgICBiYXNldGVtcCA9
IHB5LnBhdGgubG9jYWwoYmFzZXRlbXApCisgICAgICAgICAgICAgICAgaWYgYmFzZXRlbXAuY2hl
Y2soKToKKyAgICAgICAgICAgICAgICAgICAgYmFzZXRlbXAucmVtb3ZlKCkKKyAgICAgICAgICAg
ICAgICBiYXNldGVtcC5ta2RpcigpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHRlbXByb290ID0gcHkucGF0aC5sb2NhbC5nZXRfdGVtcHJvb3QoKQorICAgICAgICAgICAgICAg
IHVzZXIgPSBnZXRfdXNlcigpCisgICAgICAgICAgICAgICAgaWYgdXNlcjoKKyAgICAgICAgICAg
ICAgICAgICAgIyB1c2UgYSBzdWItZGlyZWN0b3J5IGluIHRoZSB0ZW1wcm9vdCB0byBzcGVlZC11
cAorICAgICAgICAgICAgICAgICAgICAjIG1ha2VfbnVtYmVyZWRfZGlyKCkgY2FsbAorICAgICAg
ICAgICAgICAgICAgICByb290ZGlyID0gdGVtcHJvb3Quam9pbigncHl0ZXN0LW9mLSVzJyAlIHVz
ZXIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9
IHRlbXByb290CisgICAgICAgICAgICAgICAgcm9vdGRpci5lbnN1cmUoZGlyPTEpCisgICAgICAg
ICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZp
eD0ncHl0ZXN0LScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJvb3RkaXI9cm9vdGRpcikKKyAgICAgICAgICAgIHNlbGYuX2Jhc2V0
ZW1wID0gdCA9IGJhc2V0ZW1wLnJlYWxwYXRoKCkKKyAgICAgICAgICAgIHNlbGYudHJhY2UoIm5l
dyBiYXNldGVtcCIsIHQpCisgICAgICAgICAgICByZXR1cm4gdAorCisgICAgZGVmIGZpbmlzaChz
ZWxmKToKKyAgICAgICAgc2VsZi50cmFjZSgiZmluaXNoIikKKworCitkZWYgZ2V0X3VzZXIoKToK
KyAgICAiIiJSZXR1cm4gdGhlIGN1cnJlbnQgdXNlciBuYW1lLCBvciBOb25lIGlmIGdldHVzZXIo
KSBkb2VzIG5vdCB3b3JrCisgICAgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgKHNlZSAjMTAx
MCkuCisgICAgIiIiCisgICAgaW1wb3J0IGdldHBhc3MKKyAgICB0cnk6CisgICAgICAgIHJldHVy
biBnZXRwYXNzLmdldHVzZXIoKQorICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIEtleUVycm9yKToK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworCisjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKK1RlbXBk
aXJIYW5kbGVyID0gVGVtcGRpckZhY3RvcnkKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25m
aWcpOgorICAgICIiIkNyZWF0ZSBhIFRlbXBkaXJGYWN0b3J5IGFuZCBhdHRhY2ggaXQgdG8gdGhl
IGNvbmZpZyBvYmplY3QuCisKKyAgICBUaGlzIGlzIHRvIGNvbXBseSB3aXRoIGV4aXN0aW5nIHBs
dWdpbnMgd2hpY2ggZXhwZWN0IHRoZSBoYW5kbGVyIHRvIGJlCisgICAgYXZhaWxhYmxlIGF0IHB5
dGVzdF9jb25maWd1cmUgdGltZSwgYnV0IGlkZWFsbHkgc2hvdWxkIGJlIG1vdmVkIGVudGlyZWx5
CisgICAgdG8gdGhlIHRtcGRpcl9mYWN0b3J5IHNlc3Npb24gZml4dHVyZS4KKyAgICAiIiIKKyAg
ICBtcCA9IE1vbmtleVBhdGNoKCkKKyAgICB0ID0gVGVtcGRpckZhY3RvcnkoY29uZmlnKQorICAg
IGNvbmZpZy5fY2xlYW51cC5leHRlbmQoW21wLnVuZG8sIHQuZmluaXNoXSkKKyAgICBtcC5zZXRh
dHRyKGNvbmZpZywgJ190bXBkaXJoYW5kbGVyJywgdCwgcmFpc2luZz1GYWxzZSkKKyAgICBtcC5z
ZXRhdHRyKHB5dGVzdCwgJ2Vuc3VyZXRlbXAnLCB0LmVuc3VyZXRlbXAsIHJhaXNpbmc9RmFsc2Up
CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKK2RlZiB0bXBkaXJfZmFjdG9y
eShyZXF1ZXN0KToKKyAgICAiIiJSZXR1cm4gYSBUZW1wZGlyRmFjdG9yeSBpbnN0YW5jZSBmb3Ig
dGhlIHRlc3Qgc2Vzc2lvbi4KKyAgICAiIiIKKyAgICByZXR1cm4gcmVxdWVzdC5jb25maWcuX3Rt
cGRpcmhhbmRsZXIKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0bXBkaXIocmVxdWVzdCwgdG1w
ZGlyX2ZhY3RvcnkpOgorICAgICIiIlJldHVybiBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCBv
YmplY3QKKyAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRp
b24sCisgICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5
CisgICAgZGlyZWN0b3J5LiAgVGhlIHJldHVybmVkIG9iamVjdCBpcyBhIGBweS5wYXRoLmxvY2Fs
YF8KKyAgICBwYXRoIG9iamVjdC4KKyAgICAiIiIKKyAgICBuYW1lID0gcmVxdWVzdC5ub2RlLm5h
bWUKKyAgICBuYW1lID0gcmUuc3ViKHIiW1xXXSIsICJfIiwgbmFtZSkKKyAgICBNQVhWQUwgPSAz
MAorICAgIGlmIGxlbihuYW1lKSA+IE1BWFZBTDoKKyAgICAgICAgbmFtZSA9IG5hbWVbOk1BWFZB
TF0KKyAgICB4ID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1wKG5hbWUsIG51bWJlcmVkPVRydWUpCisg
ICAgcmV0dXJuIHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZGIzOTQ5NWUz
OTcwMzQ0YjRhNmQ4ZjkyYTg2ODA4N2I1ZmVmMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjM3IEBACisiIiIgZGlzY292ZXJ5
IGFuZCBydW5uaW5nIG9mIHN0ZC1saWJyYXJ5ICJ1bml0dGVzdCIgc3R5bGUgdGVzdHMuICIiIgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgorCitpbXBvcnQgc3lzCitpbXBvcnQgdHJhY2ViYWNrCisKKyMgZm9yIHRyYW5zZmVy
cmluZyBtYXJrZXJzCitpbXBvcnQgX3B5dGVzdC5fY29kZQorZnJvbSBfcHl0ZXN0LmNvbmZpZyBp
bXBvcnQgaG9va2ltcGwKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbCwgc2tpcCwg
eGZhaWwKK2Zyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IHRyYW5zZmVyX21hcmtlcnMsIENsYXNz
LCBNb2R1bGUsIEZ1bmN0aW9uCisKKworZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29s
bGVjdG9yLCBuYW1lLCBvYmopOgorICAgICMgaGFzIHVuaXR0ZXN0IGJlZW4gaW1wb3J0ZWQgYW5k
IGlzIG9iaiBhIHN1YmNsYXNzIG9mIGl0cyBUZXN0Q2FzZT8KKyAgICB0cnk6CisgICAgICAgIGlm
IG5vdCBpc3N1YmNsYXNzKG9iaiwgc3lzLm1vZHVsZXNbInVuaXR0ZXN0Il0uVGVzdENhc2UpOgor
ICAgICAgICAgICAgcmV0dXJuCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJu
CisgICAgIyB5ZXMsIHNvIGxldCdzIGNvbGxlY3QgaXQKKyAgICByZXR1cm4gVW5pdFRlc3RDYXNl
KG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpCisKKworY2xhc3MgVW5pdFRlc3RDYXNlKENsYXNzKToK
KyAgICAjIG1hcmtlciBmb3IgZml4dHVyZW1hbmdlci5nZXRmaXh0dXJlaW5mbygpCisgICAgIyB0
byBkZWNsYXJlIHRoYXQgb3VyIGNoaWxkcmVuIGRvIG5vdCBzdXBwb3J0IGZ1bmNhcmdzCisgICAg
bm9mdW5jYXJncyA9IFRydWUKKworICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgY2xzID0g
c2VsZi5vYmoKKyAgICAgICAgaWYgZ2V0YXR0cihjbHMsICdfX3VuaXR0ZXN0X3NraXBfXycsIEZh
bHNlKToKKyAgICAgICAgICAgIHJldHVybiAgIyBza2lwcGVkCisgICAgICAgIHNldHVwID0gZ2V0
YXR0cihjbHMsICdzZXRVcENsYXNzJywgTm9uZSkKKyAgICAgICAgaWYgc2V0dXAgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBzZXR1cCgpCisgICAgICAgIHRlYXJkb3duID0gZ2V0YXR0cihjbHMs
ICd0ZWFyRG93bkNsYXNzJywgTm9uZSkKKyAgICAgICAgaWYgdGVhcmRvd24gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93bikKKyAgICAgICAgc3VwZXIo
VW5pdFRlc3RDYXNlLCBzZWxmKS5zZXR1cCgpCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAg
ICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdExvYWRlcgorICAgICAgICBjbHMgPSBzZWxm
Lm9iagorICAgICAgICBpZiBub3QgZ2V0YXR0cihjbHMsICJfX3Rlc3RfXyIsIFRydWUpOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIucGFy
c2VmYWN0b3JpZXMoc2VsZiwgdW5pdHRlc3Q9VHJ1ZSkKKyAgICAgICAgbG9hZGVyID0gVGVzdExv
YWRlcigpCisgICAgICAgIG1vZHVsZSA9IHNlbGYuZ2V0cGFyZW50KE1vZHVsZSkub2JqCisgICAg
ICAgIGZvdW5kc29tZXRoaW5nID0gRmFsc2UKKyAgICAgICAgZm9yIG5hbWUgaW4gbG9hZGVyLmdl
dFRlc3RDYXNlTmFtZXMoc2VsZi5vYmopOgorICAgICAgICAgICAgeCA9IGdldGF0dHIoc2VsZi5v
YmosIG5hbWUpCisgICAgICAgICAgICBpZiBub3QgZ2V0YXR0cih4LCAnX190ZXN0X18nLCBUcnVl
KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZnVuY29iaiA9IGdldGF0
dHIoeCwgJ2ltX2Z1bmMnLCB4KQorICAgICAgICAgICAgdHJhbnNmZXJfbWFya2VycyhmdW5jb2Jq
LCBjbHMsIG1vZHVsZSkKKyAgICAgICAgICAgIHlpZWxkIFRlc3RDYXNlRnVuY3Rpb24obmFtZSwg
cGFyZW50PXNlbGYpCisgICAgICAgICAgICBmb3VuZHNvbWV0aGluZyA9IFRydWUKKworICAgICAg
ICBpZiBub3QgZm91bmRzb21ldGhpbmc6CisgICAgICAgICAgICBydW50ZXN0ID0gZ2V0YXR0cihz
ZWxmLm9iaiwgJ3J1blRlc3QnLCBOb25lKQorICAgICAgICAgICAgaWYgcnVudGVzdCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICB1dCA9IHN5cy5tb2R1bGVzLmdldCgidHdpc3RlZC50cmlh
bC51bml0dGVzdCIsIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgdXQgaXMgTm9uZSBvciBydW50
ZXN0ICE9IHV0LlRlc3RDYXNlLnJ1blRlc3Q6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIFRl
c3RDYXNlRnVuY3Rpb24oJ3J1blRlc3QnLCBwYXJlbnQ9c2VsZikKKworCitjbGFzcyBUZXN0Q2Fz
ZUZ1bmN0aW9uKEZ1bmN0aW9uKToKKyAgICBfZXhjaW5mbyA9IE5vbmUKKworICAgIGRlZiBzZXR1
cChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdGNhc2UgPSBzZWxmLnBhcmVudC5vYmooc2VsZi5u
YW1lKQorICAgICAgICBzZWxmLl9maXhfdW5pdHRlc3Rfc2tpcF9kZWNvcmF0b3IoKQorICAgICAg
ICBzZWxmLl9vYmogPSBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCBzZWxmLm5hbWUpCisgICAgICAg
IGlmIGhhc2F0dHIoc2VsZi5fdGVzdGNhc2UsICdzZXR1cF9tZXRob2QnKToKKyAgICAgICAgICAg
IHNlbGYuX3Rlc3RjYXNlLnNldHVwX21ldGhvZChzZWxmLl9vYmopCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgIl9yZXF1ZXN0Iik6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Ll9maWxsZml4
dHVyZXMoKQorCisgICAgZGVmIF9maXhfdW5pdHRlc3Rfc2tpcF9kZWNvcmF0b3Ioc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBUaGUgQHVuaXR0ZXN0LnNraXAgZGVjb3JhdG9yIGNhbGxzIGZ1
bmN0b29scy53cmFwcyhzZWxmLl90ZXN0Y2FzZSkKKyAgICAgICAgVGhlIGNhbGwgdG8gZnVuY3Rv
b2xzLndyYXBzKCkgZmFpbHMgdW5sZXNzIHNlbGYuX3Rlc3RjYXNlCisgICAgICAgIGhhcyBhIF9f
bmFtZV9fIGF0dHJpYnV0ZS4gVGhpcyBpcyB1c3VhbGx5IGF1dG9tYXRpY2FsbHkgc3VwcGxpZWQK
KyAgICAgICAgaWYgdGhlIHRlc3QgaXMgYSBmdW5jdGlvbiBvciBtZXRob2QsIGJ1dCB3ZSBuZWVk
IHRvIGFkZCBtYW51YWxseQorICAgICAgICBoZXJlLgorCisgICAgICAgIFNlZSBpc3N1ZSAjMTE2
OQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgorICAg
ICAgICAgICAgc2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgIl9fbmFtZV9fIiwgc2VsZi5uYW1lKQor
CisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3Rlc3Rj
YXNlLCAndGVhcmRvd25fbWV0aG9kJyk6CisgICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS50ZWFy
ZG93bl9tZXRob2Qoc2VsZi5fb2JqKQorICAgICAgICAjIEFsbG93IGdhcmJhZ2UgY29sbGVjdGlv
biBvbiBUZXN0Q2FzZSBpbnN0YW5jZSBhdHRyaWJ1dGVzLgorICAgICAgICBzZWxmLl90ZXN0Y2Fz
ZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fb2JqID0gTm9uZQorCisgICAgZGVmIHN0YXJ0VGVzdChz
ZWxmLCB0ZXN0Y2FzZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBfYWRkZXhjaW5mbyhzZWxm
LCByYXdleGNpbmZvKToKKyAgICAgICAgIyB1bndyYXAgcG90ZW50aWFsIGV4Y2VwdGlvbiBpbmZv
IChzZWUgdHdpc3RlZCB0cmlhbCBzdXBwb3J0IGJlbG93KQorICAgICAgICByYXdleGNpbmZvID0g
Z2V0YXR0cihyYXdleGNpbmZvLCAnX3Jhd2V4Y2luZm8nLCByYXdleGNpbmZvKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKHJh
d2V4Y2luZm8pCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSB0cmFjZWJh
Y2suZm9ybWF0X2V4Y2VwdGlvbigqcmF3ZXhjaW5mbykKKyAgICAgICAgICAgICAgICAgICAgdmFs
dWVzLmluc2VydCgwLCAiTk9URTogSW5jb21wYXRpYmxlIEV4Y2VwdGlvbiBSZXByZXNlbnRhdGlv
biwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNwbGF5aW5nIG5hdGl2
ZWx5OlxuXG4iKQorICAgICAgICAgICAgICAgICAgICBmYWlsKCIiLmpvaW4odmFsdWVzKSwgcHl0
cmFjZT1GYWxzZSkKKyAgICAgICAgICAgICAgICBleGNlcHQgKGZhaWwuRXhjZXB0aW9uLCBLZXli
b2FyZEludGVycnVwdCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAg
ICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkVSUk9SOiBVbmtu
b3duIEluY29tcGF0aWJsZSBFeGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZXByZXNlbnRhdGlvbjpcbiVyIiAlIChyYXdleGNpbmZvLCksIHB5dHJhY2U9RmFsc2UpCisgICAg
ICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgIGV4Y2VwdCBmYWlsLkV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBleGNp
bmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgc2VsZi5fX2RpY3Rf
Xy5zZXRkZWZhdWx0KCdfZXhjaW5mbycsIFtdKS5hcHBlbmQoZXhjaW5mbykKKworICAgIGRlZiBh
ZGRFcnJvcihzZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbyk6CisgICAgICAgIHNlbGYuX2FkZGV4
Y2luZm8ocmF3ZXhjaW5mbykKKworICAgIGRlZiBhZGRGYWlsdXJlKHNlbGYsIHRlc3RjYXNlLCBy
YXdleGNpbmZvKToKKyAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhyYXdleGNpbmZvKQorCisgICAg
ZGVmIGFkZFNraXAoc2VsZiwgdGVzdGNhc2UsIHJlYXNvbik6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHNraXAocmVhc29uKQorICAgICAgICBleGNlcHQgc2tpcC5FeGNlcHRpb246CisgICAg
ICAgICAgICBzZWxmLl9za2lwcGVkX2J5X21hcmsgPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9h
ZGRleGNpbmZvKHN5cy5leGNfaW5mbygpKQorCisgICAgZGVmIGFkZEV4cGVjdGVkRmFpbHVyZShz
ZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbywgcmVhc29uPSIiKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgeGZhaWwoc3RyKHJlYXNvbikpCisgICAgICAgIGV4Y2VwdCB4ZmFpbC5FeGNlcHRp
b246CisgICAgICAgICAgICBzZWxmLl9hZGRleGNpbmZvKHN5cy5leGNfaW5mbygpKQorCisgICAg
ZGVmIGFkZFVuZXhwZWN0ZWRTdWNjZXNzKHNlbGYsIHRlc3RjYXNlLCByZWFzb249IiIpOgorICAg
ICAgICBzZWxmLl91bmV4cGVjdGVkc3VjY2VzcyA9IHJlYXNvbgorCisgICAgZGVmIGFkZFN1Y2Nl
c3Moc2VsZiwgdGVzdGNhc2UpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc3RvcFRlc3Qoc2Vs
ZiwgdGVzdGNhc2UpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgX2hhbmRsZV9za2lwKHNlbGYp
OgorICAgICAgICAjIGltcGxlbWVudHMgdGhlIHNraXBwaW5nIG1hY2hpbmVyeSAoc2VlICMyMTM3
KQorICAgICAgICAjIGFuYWxvZyB0byBweXRob25zIExpYi91bml0dGVzdC9jYXNlLnB5OnJ1bgor
ICAgICAgICB0ZXN0TWV0aG9kID0gZ2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgc2VsZi5fdGVzdGNh
c2UuX3Rlc3RNZXRob2ROYW1lKQorICAgICAgICBpZiAoZ2V0YXR0cihzZWxmLl90ZXN0Y2FzZS5f
X2NsYXNzX18sICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlKSBvcgorICAgICAgICAgICAgICAg
IGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF9fIiwgRmFsc2UpKToKKyAgICAg
ICAgICAgICMgSWYgdGhlIGNsYXNzIG9yIG1ldGhvZCB3YXMgc2tpcHBlZC4KKyAgICAgICAgICAg
IHNraXBfd2h5ID0gKGdldGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAnX191bml0dGVz
dF9za2lwX3doeV9fJywgJycpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHRl
c3RNZXRob2QsICdfX3VuaXR0ZXN0X3NraXBfd2h5X18nLCAnJykpCisgICAgICAgICAgICB0cnk6
ICAjIFBZMywgdW5pdHRlc3QyIG9uIFBZMgorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNl
Ll9hZGRTa2lwKHNlbGYsIHNlbGYuX3Rlc3RjYXNlLCBza2lwX3doeSkKKyAgICAgICAgICAgIGV4
Y2VwdCBUeXBlRXJyb3I6ICAjIFBZMgorICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2lu
Zm9bMF0gIT0gMjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBz
ZWxmLl90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBza2lwX3doeSkKKyAgICAgICAgICAgIHJldHVy
biBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIHJ1bnRlc3Qoc2VsZik6Cisg
ICAgICAgIGlmIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigicGRiaW52b2tl
IikgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlKHJlc3VsdD1zZWxmKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgIyBkaXNhYmxlcyB0ZWFyRG93biBhbmQgY2xlYW51cHMg
Zm9yIHBvc3QgbW9ydGVtIGRlYnVnZ2luZyAoc2VlICMxODkwKQorICAgICAgICAgICAgaWYgc2Vs
Zi5faGFuZGxlX3NraXAoKToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHNl
bGYuX3Rlc3RjYXNlLmRlYnVnKCkKKworICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhj
aW5mbyk6CisgICAgICAgIEZ1bmN0aW9uLl9wcnVuZXRyYWNlYmFjayhzZWxmLCBleGNpbmZvKQor
ICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoCisgICAgICAgICAg
ICBsYW1iZGEgeDogbm90IHguZnJhbWUuZl9nbG9iYWxzLmdldCgnX191bml0dGVzdCcpKQorICAg
ICAgICBpZiB0cmFjZWJhY2s6CisgICAgICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IHRyYWNl
YmFjaworCisKK0Bob29raW1wbCh0cnlmaXJzdD1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X21h
a2VyZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgaWYgaXNpbnN0YW5jZShpdGVtLCBUZXN0Q2FzZUZ1
bmN0aW9uKToKKyAgICAgICAgaWYgaXRlbS5fZXhjaW5mbzoKKyAgICAgICAgICAgIGNhbGwuZXhj
aW5mbyA9IGl0ZW0uX2V4Y2luZm8ucG9wKDApCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgZGVsIGNhbGwucmVzdWx0CisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
CisgICAgICAgICAgICAgICAgcGFzcworCisjIHR3aXN0ZWQgdHJpYWwgc3VwcG9ydAorCisKK0Bo
b29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0
ZW0pOgorICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgVGVzdENhc2VGdW5jdGlvbikgYW5kIFwKKyAg
ICAgICAndHdpc3RlZC50cmlhbC51bml0dGVzdCcgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgIHV0
ID0gc3lzLm1vZHVsZXNbJ3R3aXN0ZWQucHl0aG9uLmZhaWx1cmUnXQorICAgICAgICBGYWlsdXJl
X19pbml0X18gPSB1dC5GYWlsdXJlLl9faW5pdF9fCisgICAgICAgIGNoZWNrX3Rlc3RjYXNlX2lt
cGxlbWVudHNfdHJpYWxfcmVwb3J0ZXIoKQorCisgICAgICAgIGRlZiBleGNzdG9yZShzZWxmLCBl
eGNfdmFsdWU9Tm9uZSwgZXhjX3R5cGU9Tm9uZSwgZXhjX3RiPU5vbmUsCisgICAgICAgICAgICAg
ICAgICAgICBjYXB0dXJlVmFycz1Ob25lKToKKyAgICAgICAgICAgIGlmIGV4Y192YWx1ZSBpcyBO
b25lOgorICAgICAgICAgICAgICAgIHNlbGYuX3Jhd2V4Y2luZm8gPSBzeXMuZXhjX2luZm8oKQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBleGNfdHlwZSBpcyBOb25lOgor
ICAgICAgICAgICAgICAgICAgICBleGNfdHlwZSA9IHR5cGUoZXhjX3ZhbHVlKQorICAgICAgICAg
ICAgICAgIHNlbGYuX3Jhd2V4Y2luZm8gPSAoZXhjX3R5cGUsIGV4Y192YWx1ZSwgZXhjX3RiKQor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIEZhaWx1cmVfX2luaXRfXyhzZWxmLCBl
eGNfdmFsdWUsIGV4Y190eXBlLCBleGNfdGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhcHR1cmVWYXJzPWNhcHR1cmVWYXJzKQorICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJv
cjoKKyAgICAgICAgICAgICAgICBGYWlsdXJlX19pbml0X18oc2VsZiwgZXhjX3ZhbHVlLCBleGNf
dHlwZSwgZXhjX3RiKQorCisgICAgICAgIHV0LkZhaWx1cmUuX19pbml0X18gPSBleGNzdG9yZQor
ICAgICAgICB5aWVsZAorICAgICAgICB1dC5GYWlsdXJlLl9faW5pdF9fID0gRmFpbHVyZV9faW5p
dF9fCisgICAgZWxzZToKKyAgICAgICAgeWllbGQKKworCitkZWYgY2hlY2tfdGVzdGNhc2VfaW1w
bGVtZW50c190cmlhbF9yZXBvcnRlcihkb25lPVtdKToKKyAgICBpZiBkb25lOgorICAgICAgICBy
ZXR1cm4KKyAgICBmcm9tIHpvcGUuaW50ZXJmYWNlIGltcG9ydCBjbGFzc0ltcGxlbWVudHMKKyAg
ICBmcm9tIHR3aXN0ZWQudHJpYWwuaXRyaWFsIGltcG9ydCBJUmVwb3J0ZXIKKyAgICBjbGFzc0lt
cGxlbWVudHMoVGVzdENhc2VGdW5jdGlvbiwgSVJlcG9ydGVyKQorICAgIGRvbmUuYXBwZW5kKDEp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODBlZmMwYzkxMGZkMDc2
MmVmNjAxM2Y0OGVmZDMzNDYzZjQzOThlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDUxIEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29tcGxl
dGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2NhcHR1cmUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvY29uZmlnLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dp
bmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2RvY3Rlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
aGVscGNvbmZpZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2p1bml0eG1sLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5nLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWluLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJr
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3Qvbm9kZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L291dGNvbWVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJpbi5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvcHl0ZXN0ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5
dGhvbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvcmVjd2Fybi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVw
b25seS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9za2lwcGluZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRl
c3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5n
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYzJiMTkxNGZiNjkxNjRiMzgwZjFmNTI5NGY1NzQ5ZWQzZTQ5Mjlk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weQpAQCAt
MCwwICsxLDk2IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCB3YXJuaW5ncworZnJvbSBjb250ZXh0bGli
IGltcG9ydCBjb250ZXh0bWFuYWdlcgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gX3B5dGVzdCBp
bXBvcnQgY29tcGF0CisKKworZGVmIF9zZXRvcHRpb24od21vZCwgYXJnKToKKyAgICAiIiIKKyAg
ICBDb3B5IG9mIHRoZSB3YXJuaW5nLl9zZXRvcHRpb24gZnVuY3Rpb24gYnV0IGRvZXMgbm90IGVz
Y2FwZSBhcmd1bWVudHMuCisgICAgIiIiCisgICAgcGFydHMgPSBhcmcuc3BsaXQoJzonKQorICAg
IGlmIGxlbihwYXJ0cykgPiA1OgorICAgICAgICByYWlzZSB3bW9kLl9PcHRpb25FcnJvcigidG9v
IG1hbnkgZmllbGRzIChtYXggNSk6ICVyIiAlIChhcmcsKSkKKyAgICB3aGlsZSBsZW4ocGFydHMp
IDwgNToKKyAgICAgICAgcGFydHMuYXBwZW5kKCcnKQorICAgIGFjdGlvbiwgbWVzc2FnZSwgY2F0
ZWdvcnksIG1vZHVsZSwgbGluZW5vID0gW3Muc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBzIGluIHBhcnRzXQorICAgIGFjdGlvbiA9
IHdtb2QuX2dldGFjdGlvbihhY3Rpb24pCisgICAgY2F0ZWdvcnkgPSB3bW9kLl9nZXRjYXRlZ29y
eShjYXRlZ29yeSkKKyAgICBpZiBsaW5lbm86CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGxp
bmVubyA9IGludChsaW5lbm8pCisgICAgICAgICAgICBpZiBsaW5lbm8gPCAwOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBPdmVy
Zmxvd0Vycm9yKToKKyAgICAgICAgICAgIHJhaXNlIHdtb2QuX09wdGlvbkVycm9yKCJpbnZhbGlk
IGxpbmVubyAlciIgJSAobGluZW5vLCkpCisgICAgZWxzZToKKyAgICAgICAgbGluZW5vID0gMAor
ICAgIHdtb2QuZmlsdGVyd2FybmluZ3MoYWN0aW9uLCBtZXNzYWdlLCBjYXRlZ29yeSwgbW9kdWxl
LCBsaW5lbm8pCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9
IHBhcnNlci5nZXRncm91cCgicHl0ZXN0LXdhcm5pbmdzIikKKyAgICBncm91cC5hZGRvcHRpb24o
CisgICAgICAgICctVycsICctLXB5dGhvbndhcm5pbmdzJywgYWN0aW9uPSdhcHBlbmQnLAorICAg
ICAgICBoZWxwPSJzZXQgd2hpY2ggd2FybmluZ3MgdG8gcmVwb3J0LCBzZWUgLVcgb3B0aW9uIG9m
IHB5dGhvbiBpdHNlbGYuIikKKyAgICBwYXJzZXIuYWRkaW5pKCJmaWx0ZXJ3YXJuaW5ncyIsIHR5
cGU9ImxpbmVsaXN0IiwKKyAgICAgICAgICAgICAgICAgIGhlbHA9IkVhY2ggbGluZSBzcGVjaWZp
ZXMgYSBwYXR0ZXJuIGZvciAiCisgICAgICAgICAgICAgICAgICAid2FybmluZ3MuZmlsdGVyd2Fy
bmluZ3MuICIKKyAgICAgICAgICAgICAgICAgICJQcm9jZXNzZWQgYWZ0ZXIgLVcgYW5kIC0tcHl0
aG9ud2FybmluZ3MuIikKKworCitAY29udGV4dG1hbmFnZXIKK2RlZiBjYXRjaF93YXJuaW5nc19m
b3JfaXRlbShpdGVtKToKKyAgICAiIiIKKyAgICBjYXRjaGVzIHRoZSB3YXJuaW5ncyBnZW5lcmF0
ZWQgZHVyaW5nIHNldHVwL2NhbGwvdGVhcmRvd24gZXhlY3V0aW9uCisgICAgb2YgdGhlIGdpdmVu
IGl0ZW0gYW5kIGFmdGVyIGl0IGlzIGRvbmUgcG9zdHMgdGhlbSBhcyB3YXJuaW5ncyB0byB0aGlz
CisgICAgaXRlbS4KKyAgICAiIiIKKyAgICBhcmdzID0gaXRlbS5jb25maWcuZ2V0b3B0aW9uKCdw
eXRob253YXJuaW5ncycpIG9yIFtdCisgICAgaW5pZmlsdGVycyA9IGl0ZW0uY29uZmlnLmdldGlu
aSgiZmlsdGVyd2FybmluZ3MiKQorICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVj
b3JkPVRydWUpIGFzIGxvZzoKKyAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgorICAgICAgICAgICAg
d2FybmluZ3MuX3NldG9wdGlvbihhcmcpCisKKyAgICAgICAgZm9yIGFyZyBpbiBpbmlmaWx0ZXJz
OgorICAgICAgICAgICAgX3NldG9wdGlvbih3YXJuaW5ncywgYXJnKQorCisgICAgICAgIG1hcmsg
PSBpdGVtLmdldF9tYXJrZXIoJ2ZpbHRlcndhcm5pbmdzJykKKyAgICAgICAgaWYgbWFyazoKKyAg
ICAgICAgICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgorICAgICAgICAgICAgICAgIHdhcm5pbmdz
Ll9zZXRvcHRpb24oYXJnKQorCisgICAgICAgIHlpZWxkCisKKyAgICAgICAgZm9yIHdhcm5pbmcg
aW4gbG9nOgorICAgICAgICAgICAgd2Fybl9tc2cgPSB3YXJuaW5nLm1lc3NhZ2UKKyAgICAgICAg
ICAgIHVuaWNvZGVfd2FybmluZyA9IEZhbHNlCisKKyAgICAgICAgICAgIGlmIGNvbXBhdC5fUFky
IGFuZCBhbnkoaXNpbnN0YW5jZShtLCBjb21wYXQuVU5JQ09ERV9UWVBFUykgZm9yIG0gaW4gd2Fy
bl9tc2cuYXJncyk6CisgICAgICAgICAgICAgICAgbmV3X2FyZ3MgPSBbXQorICAgICAgICAgICAg
ICAgIGZvciBtIGluIHdhcm5fbXNnLmFyZ3M6CisgICAgICAgICAgICAgICAgICAgIG5ld19hcmdz
LmFwcGVuZChjb21wYXQuYXNjaWlfZXNjYXBlZChtKSBpZiBpc2luc3RhbmNlKG0sIGNvbXBhdC5V
TklDT0RFX1RZUEVTKSBlbHNlIG0pCisgICAgICAgICAgICAgICAgdW5pY29kZV93YXJuaW5nID0g
bGlzdCh3YXJuX21zZy5hcmdzKSAhPSBuZXdfYXJncworICAgICAgICAgICAgICAgIHdhcm5fbXNn
LmFyZ3MgPSBuZXdfYXJncworCisgICAgICAgICAgICBtc2cgPSB3YXJuaW5ncy5mb3JtYXR3YXJu
aW5nKAorICAgICAgICAgICAgICAgIHdhcm5fbXNnLCB3YXJuaW5nLmNhdGVnb3J5LAorICAgICAg
ICAgICAgICAgIHdhcm5pbmcuZmlsZW5hbWUsIHdhcm5pbmcubGluZW5vLCB3YXJuaW5nLmxpbmUp
CisgICAgICAgICAgICBpdGVtLndhcm4oInVudXNlZCIsIG1zZykKKworICAgICAgICAgICAgaWYg
dW5pY29kZV93YXJuaW5nOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAg
ICAgICAgICAgICAgICJXYXJuaW5nIGlzIHVzaW5nIHVuaWNvZGUgbm9uIGNvbnZlcnRpYmxlIHRv
IGFzY2lpLCAiCisgICAgICAgICAgICAgICAgICAgICJjb252ZXJ0aW5nIHRvIGEgc2FmZSByZXBy
ZXNlbnRhdGlvbjpcbiAgJXMiICUgbXNnLAorICAgICAgICAgICAgICAgICAgICBVbmljb2RlV2Fy
bmluZykKKworCitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgcHl0ZXN0
X3J1bnRlc3RfcHJvdG9jb2woaXRlbSk6CisgICAgd2l0aCBjYXRjaF93YXJuaW5nc19mb3JfaXRl
bShpdGVtKToKKyAgICAgICAgeWllbGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZleW9y
LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjRhZmUxNWMzODMz
NGU3NDMyYjVhYjY2NWFmMjdhZTVmMTViMzlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvYXBwdmV5b3IueW1sCkBAIC0wLDAgKzEsNDQgQEAKK2Vudmlyb25tZW50OgorICBDT1ZFUkFM
TFNfUkVQT19UT0tFTjoKKyAgICBzZWN1cmU6IDJOSjVDdDU1Y0hKOVdFZzN4YlNxQ3V2MHJkZ3p6
YjZwbnpPSUc1T2tNYlRuZHczd09CclhudFdGb1FyWGlNRmkKKyAgICAjIHRoaXMgaXMgcHl0ZXN0
J3MgdG9rZW4gaW4gY292ZXJhbGxzLmlvLCBlbmNyeXB0ZWQKKyAgICAjIHVzaW5nIHB5dGVzdGJv
dCBhY2NvdW50IGFzIGRldGFpbGVkIGhlcmU6CisgICAgIyBodHRwczovL3d3dy5hcHB2ZXlvci5j
b20vZG9jcy9idWlsZC1jb25maWd1cmF0aW9uI3NlY3VyZS12YXJpYWJsZXMKKworICBtYXRyaXg6
CisgICMgY292ZXJhbGxzIGlzIG5vdCBpbiB0aGUgZGVmYXVsdCBlbnYgbGlzdAorICAtIFRPWEVO
VjogImNvdmVyYWxscyIKKyAgIyBub3RlOiBwbGVhc2UgdXNlICJ0b3ggLS1saXN0ZW52cyIgdG8g
cG9wdWxhdGUgdGhlIGJ1aWxkIG1hdHJpeCBiZWxvdworICAtIFRPWEVOVjogImxpbnRpbmciCisg
IC0gVE9YRU5WOiAicHkyNyIKKyAgLSBUT1hFTlY6ICJweTM0IgorICAtIFRPWEVOVjogInB5MzUi
CisgIC0gVE9YRU5WOiAicHkzNiIKKyAgLSBUT1hFTlY6ICJweXB5IgorICAtIFRPWEVOVjogInB5
MjctcGV4cGVjdCIKKyAgLSBUT1hFTlY6ICJweTI3LXhkaXN0IgorICAtIFRPWEVOVjogInB5Mjct
dHJpYWwiCisgIC0gVE9YRU5WOiAicHkyNy1udW1weSIKKyAgLSBUT1hFTlY6ICJweTI3LXBsdWdn
eW1hc3RlciIKKyAgLSBUT1hFTlY6ICJweTM2LXBleHBlY3QiCisgIC0gVE9YRU5WOiAicHkzNi14
ZGlzdCIKKyAgLSBUT1hFTlY6ICJweTM2LXRyaWFsIgorICAtIFRPWEVOVjogInB5MzYtbnVtcHki
CisgIC0gVE9YRU5WOiAicHkzNi1wbHVnZ3ltYXN0ZXIiCisgIC0gVE9YRU5WOiAicHkyNy1ub2J5
dGUiCisgIC0gVE9YRU5WOiAiZG9jdGVzdGluZyIKKyAgLSBUT1hFTlY6ICJweTM1LWZyZWV6ZSIK
KyAgLSBUT1hFTlY6ICJkb2NzIgorCitpbnN0YWxsOgorICAtIGVjaG8gSW5zdGFsbGVkIFB5dGhv
bnMKKyAgLSBkaXIgYzpcUHl0aG9uKgorCisgIC0gaWYgIiVUT1hFTlYlIiA9PSAicHlweSIgY2Fs
bCBzY3JpcHRzXGluc3RhbGwtcHlweS5iYXQKKworICAtIEM6XFB5dGhvbjM2XHB5dGhvbiAtbSBw
aXAgaW5zdGFsbCAtLXVwZ3JhZGUgLS1wcmUgdG94CisKK2J1aWxkOiBmYWxzZSAgIyBOb3QgYSBD
IyBwcm9qZWN0LCBidWlsZCBzdHVmZiBhdCB0aGUgdGVzdCBzdGVwIGluc3RlYWQuCisKK3Rlc3Rf
c2NyaXB0OgorICAtIGNhbGwgc2NyaXB0c1xjYWxsLXRveC5iYXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2JlbmNoL2JlbmNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2gucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2U5NDk2NDE3MmYwZGIzNTNhNjI5ZGI1Y2FiNDU4MzFlZTRjMTlkMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoLnB5CkBAIC0wLDAgKzEsMTIgQEAKK2lt
cG9ydCBzeXMKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgY1Byb2Zp
bGUKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgaW1wb3J0IHBzdGF0cworICAgIHNjcmlwdCA9IHN5
cy5hcmd2WzE6XSBpZiBsZW4oc3lzLmFyZ3YpID4gMSBlbHNlICJlbXB0eS5weSIKKyAgICBzdGF0
cyA9IGNQcm9maWxlLnJ1bigncHl0ZXN0LmNtZGxpbmUubWFpbiglciknICUgc2NyaXB0LCAncHJv
ZicpCisgICAgcCA9IHBzdGF0cy5TdGF0cygicHJvZiIpCisgICAgcC5zdHJpcF9kaXJzKCkKKyAg
ICBwLnNvcnRfc3RhdHMoJ2N1bXVsYXRpdmUnKQorICAgIHByaW50KHAucHJpbnRfc3RhdHMoNTAw
KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoX2FyZ2NvbXBsZXRlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJnY29tcGxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY2YzY2
NGYzNDZlZmRjNjI4MWYxYjI3MTA5ZGRjYWMwOTIzMjM3MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2JlbmNoL2JlbmNoX2FyZ2NvbXBsZXRlLnB5CkBAIC0wLDAgKzEsMTkgQEAKKwor
CisjIDEwMDAwIGl0ZXJhdGlvbnMsIGp1c3QgZm9yIHJlbGF0aXZlIGNvbXBhcmlzb24KKyMgICAg
ICAgICAgICAgICAgICAgICAgMi43LjUgICAgIDMuMy4yCisjIEZpbGVzQ29tcGxldGVyICAgICAg
IDc1LjExMDkgICA2OS4yMTE2CisjIEZhc3RGaWxlc0NvbXBsZXRlciAgICAwLjczODMgICAgMS4w
NzYwCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgc3lzCisgICAg
aW1wb3J0IHRpbWVpdAorICAgIGZyb20gYXJnY29tcGxldGUuY29tcGxldGVycyBpbXBvcnQgRmls
ZXNDb21wbGV0ZXIKKyAgICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCBGYXN0Rmls
ZXNDb21wbGV0ZXIKKyAgICBjb3VudCA9IDEwMDAgIyBvbmx5IGEgZmV3IHNlY29uZHMKKyAgICBz
ZXR1cCA9ICdmcm9tIF9fbWFpbl9fIGltcG9ydCBGYXN0RmlsZXNDb21wbGV0ZXJcbmZjID0gRmFz
dEZpbGVzQ29tcGxldGVyKCknCisgICAgcnVuID0gJ2ZjKCIvZCIpJworICAgIHN5cy5zdGRvdXQu
d3JpdGUoJyVzXG4nICUgKHRpbWVpdC50aW1laXQocnVuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXR1cD1zZXR1cC5yZXBsYWNlKCdGYXN0JywgJycpLCBudW1iZXI9Y291bnQp
KSkKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCclc1xuJyAlICh0aW1laXQudGltZWl0KHJ1biwgc2V0
dXA9c2V0dXAsIG51bWJlcj1jb3VudCkpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gv
ZW1wdHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9lbXB0eS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzVlMjU3
MDFkYTlmYzMyODk0NGVmN2RiN2Q3MmIwZmI0NzM0MDA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvYmVuY2gvZW1wdHkucHkKQEAgLTAsMCArMSwzIEBACitpbXBvcnQgcHkKK2ZvciBp
IGluIHJhbmdlKDEwMDApOgorICAgIHB5LmJ1aWx0aW4uZXhlY18oImRlZiB0ZXN0X2Z1bmNfJWQo
KTogcGFzcyIgJSBpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYmNhMGU4YWNk
MWUzOTRjZDNhODU4NTI1MTJiZGFiMTgxYmI4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9iZW5jaC9tYW55cGFyYW0ucHkKQEAgLTAsMCArMSwxMiBAQAorCitpbXBvcnQgcHl0ZXN0
CisKK0BweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJywgcGFyYW1zPXJhbmdlKDk2NikpCitk
ZWYgZm9vKHJlcXVlc3QpOgorICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKK2RlZiB0ZXN0X2l0
KGZvbyk6CisgICAgcGFzcworZGVmIHRlc3RfaXQyKGZvbyk6CisgICAgcGFzcworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9za2lwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45NjBiMzA4NjQ1YTJjZWQxOWZlOGVhYzY3Mzk0OTg5Y2Q4YzBhZGIyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5weQpAQCAtMCwwICsxLDEw
IEBACisKK2ltcG9ydCBweXRlc3QKKworCitTS0lQID0gVHJ1ZQorCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoIngiLCB4cmFuZ2UoNTAwMCkpCitkZWYgdGVzdF9mb28oeCk6CisgICAgaWYgU0tJ
UDoKKyAgICAgICAgcHl0ZXN0LnNraXAoImhlaCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJiZTBjYThkYjA4ZjVhNzE3MTRkZjU0Y2ZjNTQ4YjhkMDNlMzQ3NWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDIxIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2JlbmNoL2JlbmNoX2FyZ2NvbXBsZXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvZW1wdHkucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9iZW5jaC9tYW55cGFyYW0ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9za2lw
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjkyMC5idWdmaXggYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9jaGFuZ2Vsb2cvMjkyMC5idWdmaXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM1MjE3Mjc4YWVkN2Ux
NmU2MjAwMTgxMmY3OGU3NTIwZGViNmQyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2NoYW5nZWxvZy8yOTIwLmJ1Z2ZpeApAQCAtMCwwICsxIEBACitGaXggaXNzdWUgYWJvdXQgYGAt
cCBubzo8cGx1Z2luPmBgIGhhdmluZyBubyBlZmZlY3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9jaGFuZ2Vsb2cvMjk0OS50cml2aWFsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NDkudHJp
dmlhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zOTc4OWU3MmI3YTlhYjQ4MjM5NDc4MmZkMmEzODRkYjdhOGU2OGQw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NDkudHJpdmlhbApA
QCAtMCwwICsxIEBACitVcGRhdGUgZ2l0aHViICJidWdzIiBsaW5rIGluIENPTlRSSUJVVElORy5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTU2LmJ1Z2ZpeCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2NoYW5nZWxvZy8yOTU2LmJ1Z2ZpeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzcxNzY1N2JmMTY4MTU5
ZWU1ZTMwOWY5NTRhZjk4MGViOGQ2YzUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Y2hhbmdlbG9nLzI5NTYuYnVnZml4CkBAIC0wLDAgKzEgQEAKK0ZpeCByZWdyZXNzaW9uIHdpdGgg
d2FybmluZ3MgdGhhdCBjb250YWluZWQgbm9uLXN0cmluZ3MgaW4gdGhlaXIgYXJndW1lbnRzIGlu
IFB5dGhvbiAyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NTcuYnVnZml4
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NTcuYnVnZml4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4OTY2NWI2
OTJhZTczYjNiYzA1YTY0ZTIwMzUwMjExNDY2YzFhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9jaGFuZ2Vsb2cvMjk1Ny5idWdmaXgKQEAgLTAsMCArMSBAQAorQWx3YXlzIGVzY2Fw
ZSBudWxsIGJ5dGVzIHdoZW4gc2V0dGluZyBgYFBZVEVTVF9DVVJSRU5UX1RFU1RgYC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTYzLmRvYyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5n
ZWxvZy8yOTYzLmRvYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWExZDY2MWI2NDE4M2IzMjk5ZDQxMDI1ZDlhMDNl
YjE2YzQ3NjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NjMu
ZG9jCkBAIC0wLDAgKzEgQEAKK0ZpeCBicm9rZW4gbGluayB0byBwbHVnaW4gcHl0ZXN0LWxvY2Fs
c2VydmVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NzEuYnVnZml4IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NzEuYnVnZml4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2Njg0ZThjODgw
MzM0Y2NlNDJlMWQ5MTQwMmQ5NGJiZjhiZWIzNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9jaGFuZ2Vsb2cvMjk3MS5idWdmaXgKQEAgLTAsMCArMSBAQAorRml4IGBgWmVyb0Rpdmlz
aW9uRXJyb3JgYCB3aGVuIHVzaW5nIHRoZSBgYHRlc3Rtb25gYCBwbHVnaW4gd2hlbiBubyB0ZXN0
cyB3ZXJlIGFjdHVhbGx5IGNvbGxlY3RlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5n
ZWxvZy8yOTg0LmJ1Z2ZpeCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTg0LmJ1Z2ZpeApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMWY1NzQ4ZDUyMzk3MzdkOTEzY2IxYzQwZWIzZDE3NDNlZTdjMjBmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5ODQuYnVnZml4CkBAIC0wLDAgKzEg
QEAKK0JyaW5nIGJhY2sgYGBUZXJtaW5hbFJlcG9ydGVyLndyaXRlcmBgIGFzIGFuIGFsaWFzIHRv
IGBgVGVybWluYWxSZXBvcnRlci5fdHdgYC4gVGhpcyBhbGlhcyB3YXMgcmVtb3ZlZCBieSBhY2Np
ZGVudCBpbiB0aGUgYGAzLjMuMGBgIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9j
aGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9fdGVtcGxhdGUu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE4OThhYmMxNWFmMTcxMjNlN2E0N2ZhNGQ4OTY2MTVjYTViYzBhNWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdApA
QCAtMCwwICsxLDQwIEBACit7JSBmb3Igc2VjdGlvbiBpbiBzZWN0aW9ucyAlfQoreyUgc2V0IHVu
ZGVybGluZSA9ICItIiAlfQoreyUgaWYgc2VjdGlvbiAlfQore3tzZWN0aW9ufX0KK3t7IHVuZGVy
bGluZSAqIHNlY3Rpb258bGVuZ3RoIH19eyUgc2V0IHVuZGVybGluZSA9ICJ+IiAlfQorCit7JSBl
bmRpZiAlfQoreyUgaWYgc2VjdGlvbnNbc2VjdGlvbl0gJX0KK3slIGZvciBjYXRlZ29yeSwgdmFs
IGluIGRlZmluaXRpb25zLml0ZW1zKCkgaWYgY2F0ZWdvcnkgaW4gc2VjdGlvbnNbc2VjdGlvbl0g
JX0KKwore3sgZGVmaW5pdGlvbnNbY2F0ZWdvcnldWyduYW1lJ10gfX0KK3t7IHVuZGVybGluZSAq
IGRlZmluaXRpb25zW2NhdGVnb3J5XVsnbmFtZSddfGxlbmd0aCB9fQorCit7JSBpZiBkZWZpbml0
aW9uc1tjYXRlZ29yeV1bJ3Nob3djb250ZW50J10gJX0KK3slIGZvciB0ZXh0LCB2YWx1ZXMgaW4g
c2VjdGlvbnNbc2VjdGlvbl1bY2F0ZWdvcnldfGRpY3Rzb3J0KGJ5PSd2YWx1ZScpICV9Cit7JSBz
ZXQgaXNzdWVfam9pbmVyID0gam9pbmVyKCcsICcpICV9CistIHt7IHRleHQgfX17JSBpZiBjYXRl
Z29yeSAhPSAndmVuZG9yJyAlfSAoeyUgZm9yIHZhbHVlIGluIHZhbHVlc3xzb3J0ICV9e3sgaXNz
dWVfam9pbmVyKCkgfX1ge3sgdmFsdWUgfX0gPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMve3sgdmFsdWVbMTpdIH19PmBfeyUgZW5kZm9yICV9KXslIGVuZGlmICV9
CisKKworeyUgZW5kZm9yICV9Cit7JSBlbHNlICV9CistIHt7IHNlY3Rpb25zW3NlY3Rpb25dW2Nh
dGVnb3J5XVsnJ118c29ydHxqb2luKCcsICcpIH19CisKKworeyUgZW5kaWYgJX0KK3slIGlmIHNl
Y3Rpb25zW3NlY3Rpb25dW2NhdGVnb3J5XXxsZW5ndGggPT0gMCAlfQorCitObyBzaWduaWZpY2Fu
dCBjaGFuZ2VzLgorCisKK3slIGVsc2UgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3sl
IGVsc2UgJX0KKworTm8gc2lnbmlmaWNhbnQgY2hhbmdlcy4KKworCit7JSBlbmRpZiAlfQoreyUg
ZW5kZm9yICV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAw
NTdlMGJkZjZhNzdkNzU5MmI2MjFmOWM5Mzk0YzBjZGZmOWQ1MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2NoYW5nZWxvZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI0IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjkyMC5idWdmaXgKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9j
aGFuZ2Vsb2cvMjk0OS50cml2aWFsCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NTYuYnVnZml4
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NTcuYnVnZml4CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdl
bG9nLzI5NjMuZG9jCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NzEuYnVnZml4CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvY2hhbmdlbG9nLzI5ODQuYnVnZml4CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL190ZW1w
bGF0ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9NYWtlZmlsZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYThlODI2NmEyOWU3MWY0OWQ3MGU3
OWNhZmVlMGRhNDRlNWY3OGVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L01ha2VmaWxlCkBAIC0wLDAgKzEsMTUwIEBACisjIE1ha2VmaWxlIGZvciBTcGhpbnggZG9jdW1l
bnRhdGlvbgorIworCisjIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBjb21t
YW5kIGxpbmUuCitTUEhJTlhPUFRTICAgID0KK1NQSElOWEJVSUxEICAgPSBzcGhpbngtYnVpbGQK
K1BBUEVSICAgICAgICAgPQorQlVJTERESVIgICAgICA9IF9idWlsZAorCisjIEludGVybmFsIHZh
cmlhYmxlcy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQKK1BBUEVS
T1BUX2xldHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhPUFRTICAg
PSAtZCAkKEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElOWE9Q
VFMpIC4KKworUkVHRU5ET0NfQVJHUyA6PSBcCisJLS1ub3JtYWxpemUgIi9pbiBcZCsuXGQrIHNl
Y29uZHMvaW4gMC4xMiBzZWNvbmRzLyIgXAorCS0tbm9ybWFsaXplICJAL3RtcC9weXRlc3Qtb2Yt
LiovcHl0ZXN0LVxkK0BQWVRFU1RfVE1QRElSQCIgXAorCS0tbm9ybWFsaXplICJAcHl0ZXN0LShc
ZCspXFwuW14gLF0rQHB5dGVzdC1cMS54LnlAIiBcCisJLS1ub3JtYWxpemUgIkAoVGhpcyBpcyBw
eXRlc3QgdmVyc2lvbiApKFxkKylcXC5bXiAsXStAXDFcMi54LnlAIiBcCisJLS1ub3JtYWxpemUg
IkBweS0oXGQrKVxcLlteICxdK0BweS1cMS54LnlAIiBcCisJLS1ub3JtYWxpemUgIkBwbHVnZ3kt
KFxkKylcXC5bLlxkLF0rQHBsdWdneS1cMS54LnlAIiBcCisJLS1ub3JtYWxpemUgIkBoeXBvdGhl
c2lzLShcZCspXFwuWy5cZCxdK0BoeXBvdGhlc2lzLVwxLngueUAiIFwKKwktLW5vcm1hbGl6ZSAi
QFB5dGhvbiAoXGQrKVxcLlteICxdK0BQeXRob24gXDEueC55QCIKKworLlBIT05ZOiBoZWxwIGNs
ZWFuIGh0bWwgZGlyaHRtbCBzaW5nbGVodG1sIHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBk
ZXZoZWxwIGVwdWIgbGF0ZXggbGF0ZXhwZGYgdGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9j
dGVzdAorCisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVy
ZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5k
YWxvbmUgSFRNTCBmaWxlcyIKKwlAZWNobyAiICBsYXRleHBkZiAgIHRvIG1ha2UgTGFUZVggZmls
ZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgiCisJQGVjaG8gIiAgc2hvd3RhcmdldCB0
byBzaG93IHRoZSBweXRlc3Qub3JnIHRhcmdldCBkaXJlY3RvcnkiCisJQGVjaG8gIiAgaW5zdGFs
bCAgICB0byBpbnN0YWxsIGRvY3MgdG8gcHl0ZXN0Lm9yZy9TSVRFVEFSR0VUIgorCUBlY2hvICIg
IGluc3RhbGwtbGRmIHRvIGluc3RhbGwgdGhlIGRvYyBwZGYgdG8gcHl0ZXN0Lm9yZy9TSVRFVEFS
R0VUIgorCUBlY2hvICIgIHJlZ2VuICAgICAgdG8gcmVnZW5lcmF0ZSBweXRlc3QgZXhhbXBsZXMg
dXNpbmcgdGhlIGluc3RhbGxlZCBweXRlc3QiCisJQGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVj
ayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eSIKKworY2xlYW46CisJLXJtIC1yZiAk
KEJVSUxERElSKS8qCisKK3JlZ2VuOgorCVBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEgUFlURVNU
X0FERE9QVD0tcG5vOmh5cG90aGVzaXMgQ09MVU1OUz03NiByZWdlbmRvYyAtLXVwZGF0ZSAqLnJz
dCAqLyoucnN0ICR7UkVHRU5ET0NfQVJHU30KKworaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBo
dG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1
aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvaHRtbC4iCisK
K2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQo
QlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhU
TUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQo
U1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9z
aW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2Ug
aXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxE
KSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNrbGUKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZp
bGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvanNvbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91
IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKKworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlM
RCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1saGVscAorCUBl
Y2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdv
cmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAgIi5oaHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERE
SVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIg
XAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtl
IHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVs
cC9weXRlc3QucWhjcCIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNobyAi
IyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC9weXRlc3QucWhj
IgorCitkZXZoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGRldmhlbHAgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9kZXZoZWxwCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIgor
CUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIG1rZGlyIC1wICQkSE9N
RS8ubG9jYWwvc2hhcmUvZGV2aGVscC9weXRlc3QiCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJ
UikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvcHl0ZXN0IgorCUBlY2hvICIj
IGRldmhlbHAiCisKK2VwdWI6CisJJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2VwdWIKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhl
IGVwdWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKKworbGF0ZXg6CisJJChTUEhJTlhC
VUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL2xhdGV4LiIKKwlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVu
IHRoZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAorCSAgICAgICIodXNlIFxgbWFrZSBsYXRleHBk
ZicgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKworbGF0ZXhwZGY6CisJJChTUEhJ
TlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAorCUBl
Y2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4iCisJbWFrZSAtQyAk
KEJVSUxERElSKS9sYXRleCBhbGwtcGRmCisJQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUg
UERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisKK3RleHQ6CisJJChTUEhJTlhC
VUlMRCkgLWIgdGV4dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleHQKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L3RleHQuIgorCittYW46CisJJChTUEhJTlhCVUlMRCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvbWFuCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51
YWwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL21hbi4iCisKK2NoYW5nZXM6CisJJChTUEhJTlhC
VUlMRCkgLWIgY2hhbmdlcyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2NoYW5nZXMKKwlA
ZWNobworCUBlY2hvICJUaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9jaGFuZ2Vz
LiIKKworbGlua2NoZWNrOgorCSQoU1BISU5YQlVJTEQpIC1iIGxpbmtjaGVjayAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2xpbmtjaGVjaworCUBlY2hvCisJQGVjaG8gIkxpbmsgY2hlY2sg
Y29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCAiIFwKKwkg
ICAgICAib3IgaW4gJChCVUlMRERJUikvbGlua2NoZWNrL291dHB1dC50eHQuIgorCitkb2N0ZXN0
OgorCSQoU1BISU5YQlVJTEQpIC1iIGRvY3Rlc3QgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS9kb2N0ZXN0CisJQGVjaG8gIlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNvdXJjZXMgZmlu
aXNoZWQsIGxvb2sgYXQgdGhlICIgXAorCSAgICAgICJyZXN1bHRzIGluICQoQlVJTERESVIpL2Rv
Y3Rlc3Qvb3V0cHV0LnR4dC4iCisKK3RleGluZm86CisJbWtkaXIgLXAgJChCVUlMRERJUikvdGV4
aW5mbworCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxE
RElSKS90ZXhpbmZvCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBUZXhpbmZv
IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKKwlAZWNobyAiUnVuIFxgbWFrZScg
aW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggbWFrZWluZm8iIFwKKwkgICAg
ICAiKHVzZSBcYG1ha2UgaW5mbycgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKwor
aW5mbzoKKwlta2RpciAtcCAkKEJVSUxERElSKS90ZXhpbmZvCisJJChTUEhJTlhCVUlMRCkgLWIg
dGV4aW5mbyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVu
bmluZyBUZXhpbmZvIGZpbGVzIHRocm91Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxE
RElSKS90ZXhpbmZvIGluZm8KKwlAZWNobyAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZp
bGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9fdGVtcGxhdGVzL2dsb2JhbHRvYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190
ZW1wbGF0ZXMvZ2xvYmFsdG9jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRkNGRkNTliMzI0YmRiNGUyMWFk
NTJmYzY5MTE4ZjJlMDY4YjQ2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9fdGVtcGxhdGVzL2dsb2JhbHRvYy5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxoMz48YSBocmVm
PSJ7eyBwYXRodG8obWFzdGVyX2RvYykgfX0iPnt7IF8oJ1RhYmxlIE9mIENvbnRlbnRzJykgfX08
L2E+PC9oMz4KKworPHVsPgorICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKCdpbmRleCcpIH19Ij5I
b21lPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ2NvbnRlbnRzJykgfX0iPkNv
bnRlbnRzPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ2dldHRpbmctc3RhcnRl
ZCcpIH19Ij5JbnN0YWxsPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ2V4YW1w
bGUvaW5kZXgnKSB9fSI+RXhhbXBsZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0
bygnY3VzdG9taXplJykgfX0iPkN1c3RvbWl6ZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ie3sg
cGF0aHRvKCdjb250YWN0JykgfX0iPkNvbnRhY3Q8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Int7
IHBhdGh0bygndGFsa3MnKSB9fSI+VGFsa3MvUG9zdHM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9
Int7IHBhdGh0bygnY2hhbmdlbG9nJykgfX0iPkNoYW5nZWxvZzwvYT48L2xpPgorICA8bGk+PGEg
aHJlZj0ie3sgcGF0aHRvKCdiYWNrd2FyZHMtY29tcGF0aWJpbGl0eScpIH19Ij5CYWNrd2FyZHMg
Q29tcGF0aWJpbGl0eTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKCdsaWNlbnNl
JykgfX0iPkxpY2Vuc2U8L2E+PC9saT4KKzwvdWw+CisKK3slLSBpZiBkaXNwbGF5X3RvYyAlfQor
ICA8aHI+CisgIHt7IHRvYyB9fQoreyUtIGVuZGlmICV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vX3RlbXBsYXRlcy9sYXlvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVt
cGxhdGVzL2xheW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYzhlMmE3ZmI0YzAyNjRmNjdhNDNlMDA0
Yjc0ZTU4ZDI3YjFhNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Rl
bXBsYXRlcy9sYXlvdXQuaHRtbApAQCAtMCwwICsxLDIwIEBACit7JSBleHRlbmRzICIhbGF5b3V0
Lmh0bWwiICV9Cit7JSBibG9jayBoZWFkZXIgJX0KKyAge3tzdXBlcigpfX0KK3slIGVuZGJsb2Nr
ICV9Cit7JSBibG9jayBmb290ZXIgJX0KK3t7IHN1cGVyKCkgfX0KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworICB2YXIgX2dhcSA9IF9nYXEgfHwgW107CisgIF9nYXEucHVzaChb
J19zZXRBY2NvdW50JywgJ1VBLTc1OTcyNzQtMTMnXSk7CisgIF9nYXEucHVzaChbJ190cmFja1Bh
Z2V2aWV3J10pOworCisgIChmdW5jdGlvbigpIHsKKyAgICB2YXIgZ2EgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzY3JpcHQnKTsgZ2EudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOyBnYS5hc3lu
YyA9IHRydWU7CisgICAgZ2Euc3JjID0gKCdodHRwczonID09IGRvY3VtZW50LmxvY2F0aW9uLnBy
b3RvY29sID8gJ2h0dHBzOi8vc3NsJyA6ICdodHRwOi8vd3d3JykgKyAnLmdvb2dsZS1hbmFseXRp
Y3MuY29tL2dhLmpzJzsKKyAgICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdzY3JpcHQnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7CisgIH0pKCk7
CisKKzwvc2NyaXB0PgoreyUgZW5kYmxvY2sgJX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9fdGVtcGxhdGVzL2xpbmtzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRl
cy9saW5rcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTVhMDEzZjM0MDZmNTVhMWI5MjQ5NDgxYTFlZjFh
NzE3YTQ0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRl
cy9saW5rcy5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxoMz5Vc2VmdWwgTGlua3M8L2gzPgorPHVs
PgorICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKCdpbmRleCcpIH19Ij5UaGUgcHl0ZXN0IFdlYnNp
dGU8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0bygnY29udHJpYnV0aW5nJykgfX0i
PkNvbnRyaWJ1dGlvbiBHdWlkZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9weXBp
LnB5dGhvbi5vcmcvcHlwaS9weXRlc3QiPnB5dGVzdCBAIFB5UEk8L2E+PC9saT4KKyAgPGxpPjxh
IGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC8iPnB5dGVzdCBAIEdp
dEh1YjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL3BsdWdpbmNvbXBhdC5oZXJva3Vh
cHAuY29tLyI+M3JkIHBhcnR5IHBsdWdpbnM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMiPklzc3VlIFRyYWNrZXI8L2E+
PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbWVkaWEucmVhZHRoZWRvY3Mub3JnL3BkZi9w
eXRlc3QvbGF0ZXN0L3B5dGVzdC5wZGYiPlBERiBEb2N1bWVudGF0aW9uPC9hPgorPC91bD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvc2lkZWJhcmludHJvLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9zaWRlYmFyaW50cm8uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZTg2MGMxNzJmMGY2ODRlMDJlNWY3ZDRiYjliYjYyN2EwNTdkMTk4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvc2lkZWJhcmludHJvLmh0
bWwKQEAgLTAsMCArMSw1IEBACis8aDM+QWJvdXQgcHl0ZXN0PC9oMz4KKzxwPgorICBweXRlc3Qg
aXMgYSBtYXR1cmUgZnVsbC1mZWF0dXJlZCBQeXRob24gdGVzdGluZyB0b29sIHRoYXQgaGVscHMK
KyAgeW91IHdyaXRlIGJldHRlciBwcm9ncmFtcy4KKzwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwZjE2ZWMwM2ExNTFmYjU3
MDBmMGUwYzhiYWFhMmU2MDkzNWI5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL2dsb2JhbHRvYy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL190ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Rl
bXBsYXRlcy9saW5rcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvc2lkZWJh
cmludHJvLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL0xJQ0VO
U0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkYWFi
N2VlNmVmZTNiNmYzYzJhMjU5NGI3MTFlN2E5MDI2ZWI1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9MSUNFTlNFCkBAIC0wLDAgKzEsMzcgQEAKK0NvcHly
aWdodCAoYykgMjAxMCBieSBBcm1pbiBSb25hY2hlci4KKworU29tZSByaWdodHMgcmVzZXJ2ZWQu
CisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMgb2Yg
dGhlIHRoZW1lLCB3aXRoIG9yCit3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworYXJlIG1ldDoKKworKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisKKyogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
CisqIFRoZSBuYW1lcyBvZiB0aGUgY29udHJpYnV0b3JzIG1heSBub3QgYmUgdXNlZCB0byBlbmRv
cnNlIG9yCisgIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYworICBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1dlIGtpbmRseSBh
c2sgeW91IHRvIG9ubHkgdXNlIHRoZXNlIHRoZW1lcyBpbiBhbiB1bm1vZGlmaWVkIG1hbm5lciBq
dXN0Citmb3IgRmxhc2sgYW5kIEZsYXNrLXJlbGF0ZWQgcHJvZHVjdHMsIG5vdCBmb3IgdW5yZWxh
dGVkIHByb2plY3RzLiAgSWYgeW91CitsaWtlIHRoZSB2aXN1YWwgc3R5bGUgYW5kIHdhbnQgdG8g
dXNlIGl0IGZvciB5b3VyIG93biBwcm9qZWN0cywgcGxlYXNlCitjb25zaWRlciBtYWtpbmcgc29t
ZSBsYXJnZXIgY2hhbmdlcyB0byB0aGUgdGhlbWVzIChzdWNoIGFzIGNoYW5naW5nCitmb250IGZh
Y2VzLCBzaXplcywgY29sb3JzIG9yIG1hcmdpbnMpLgorCitUSElTIFRIRU1FIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKK0FORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKK0lNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCitBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKK0xJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKK0NPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCitTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKK0lOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCitDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgVEhFTUUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190aGVtZXMvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMjkyYmRmZjhlZDU0MjllZWRkN2Y0
MDk4Mzk5NzlkNDA4YmViNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RoZW1lcy9SRUFETUUKQEAgLTAsMCArMSwzMSBAQAorRmxhc2sgU3BoaW54IFN0eWxlcworPT09
PT09PT09PT09PT09PT09PQorCitUaGlzIHJlcG9zaXRvcnkgY29udGFpbnMgc3BoaW54IHN0eWxl
cyBmb3IgRmxhc2sgYW5kIEZsYXNrIHJlbGF0ZWQKK3Byb2plY3RzLiAgVG8gdXNlIHRoaXMgc3R5
bGUgaW4geW91ciBTcGhpbnggZG9jdW1lbnRhdGlvbiwgZm9sbG93Cit0aGlzIGd1aWRlOgorCisx
LiBwdXQgdGhpcyBmb2xkZXIgYXMgX3RoZW1lcyBpbnRvIHlvdXIgZG9jcyBmb2xkZXIuICBBbHRl
cm5hdGl2ZWx5CisgICB5b3UgY2FuIGFsc28gdXNlIGdpdCBzdWJtb2R1bGVzIHRvIGNoZWNrIG91
dCB0aGUgY29udGVudHMgdGhlcmUuCisyLiBhZGQgdGhpcyB0byB5b3VyIGNvbmYucHk6CisKKyAg
IHN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFic3BhdGgoJ190aGVtZXMnKSkKKyAgIGh0bWxfdGhl
bWVfcGF0aCA9IFsnX3RoZW1lcyddCisgICBodG1sX3RoZW1lID0gJ2ZsYXNrJworCitUaGUgZm9s
bG93aW5nIHRoZW1lcyBleGlzdDoKKworLSAnZmxhc2snIC0gdGhlIHN0YW5kYXJkIGZsYXNrIGRv
Y3VtZW50YXRpb24gdGhlbWUgZm9yIGxhcmdlCisgIHByb2plY3RzCistICdmbGFza19zbWFsbCcg
LSBzbWFsbCBvbmUtcGFnZSB0aGVtZS4gIEludGVuZGVkIHRvIGJlIHVzZWQgYnkKKyAgdmVyeSBz
bWFsbCBhZGRvbiBsaWJyYXJpZXMgZm9yIGZsYXNrLgorCitUaGUgZm9sbG93aW5nIG9wdGlvbnMg
ZXhpc3QgZm9yIHRoZSBmbGFza19zbWFsbCB0aGVtZToKKworICAgW29wdGlvbnNdCisgICBpbmRl
eF9sb2dvID0gJycgICAgICAgICAgICAgIGZpbGVuYW1lIG9mIGEgcGljdHVyZSBpbiBfc3RhdGlj
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGJlIHVzZWQgYXMgcmVwbGFjZW1l
bnQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMSBpbiB0aGUgaW5k
ZXgucnN0IGZpbGUuCisgICBpbmRleF9sb2dvX2hlaWdodCA9IDEyMHB4ICAgIGhlaWdodCBvZiB0
aGUgaW5kZXggbG9nbworICAgZ2l0aHViX2ZvcmsgPSAnJyAgICAgICAgICAgICByZXBvc2l0b3J5
IG5hbWUgb24gZ2l0aHViIGZvciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImZvcmsgbWUiIGJhZGdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9m
bGFzay9sYXlvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL2xheW91
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE5YzQzZmJiZWZjMWY5MzVkZDRlOTkzZTU3ZWYwZGVhNjA0Yjk0
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9s
YXlvdXQuaHRtbApAQCAtMCwwICsxLDI0IEBACit7JS0gZXh0ZW5kcyAiYmFzaWMvbGF5b3V0Lmh0
bWwiICV9Cit7JS0gYmxvY2sgZXh0cmFoZWFkICV9CisgIHt7IHN1cGVyKCkgfX0KKyAgeyUgaWYg
dGhlbWVfdG91Y2hfaWNvbiAlfQorICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9
Int7IHBhdGh0bygnX3N0YXRpYy8nIH4gdGhlbWVfdG91Y2hfaWNvbiwgMSkgfX0iIC8+CisgIHsl
IGVuZGlmICV9CisgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MC45LCBtYXhpbXVtLXNjYWxlPTAuOSI+Cit7JSBlbmRibG9j
ayAlfQoreyUtIGJsb2NrIHJlbGJhcjIgJX17JSBlbmRibG9jayAlfQoreyUgYmxvY2sgaGVhZGVy
ICV9CisgIHt7IHN1cGVyKCkgfX0KKyAgeyUgaWYgcGFnZW5hbWUgPT0gJ2luZGV4JyAlfQorICA8
ZGl2IGNsYXNzPWluZGV4d3JhcHBlcj4KKyAgeyUgZW5kaWYgJX0KK3slIGVuZGJsb2NrICV9Cit7
JS0gYmxvY2sgZm9vdGVyICV9CisgIDxkaXYgY2xhc3M9ImZvb3RlciI+CisgICAgJmNvcHk7IENv
cHlyaWdodCB7eyBjb3B5cmlnaHQgfX0uCisgICAgQ3JlYXRlZCB1c2luZyA8YSBocmVmPSJodHRw
Oi8vc3BoaW54LnBvY29vLm9yZy8iPlNwaGlueDwvYT4uCisgIDwvZGl2PgorICB7JSBpZiBwYWdl
bmFtZSA9PSAnaW5kZXgnICV9CisgIDwvZGl2PgorICB7JSBlbmRpZiAlfQoreyUtIGVuZGJsb2Nr
ICV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9yZWxhdGlv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3JlbGF0aW9ucy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNiYmNkZTg1YmI0OGQzZjhiZGZkMDY2MTA0ZDhmMmVhZTU4NGU3MmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9yZWxhdGlv
bnMuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aDM+UmVsYXRlZCBUb3BpY3M8L2gzPgorPHVsPgor
ICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKG1hc3Rlcl9kb2MpIH19Ij5Eb2N1bWVudGF0aW9uIG92
ZXJ2aWV3PC9hPjx1bD4KKyAgeyUtIGZvciBwYXJlbnQgaW4gcGFyZW50cyAlfQorICA8bGk+PGEg
aHJlZj0ie3sgcGFyZW50Lmxpbmt8ZSB9fSI+e3sgcGFyZW50LnRpdGxlIH19PC9hPjx1bD4KKyAg
eyUtIGVuZGZvciAlfQorICAgIHslLSBpZiBwcmV2ICV9CisgICAgICA8bGk+UHJldmlvdXM6IDxh
IGhyZWY9Int7IHByZXYubGlua3xlIH19IiB0aXRsZT0ie3sgXygncHJldmlvdXMgY2hhcHRlcicp
CisgICAgICAgIH19Ij57eyBwcmV2LnRpdGxlIH19PC9hPjwvbGk+CisgICAgeyUtIGVuZGlmICV9
CisgICAgeyUtIGlmIG5leHQgJX0KKyAgICAgIDxsaT5OZXh0OiA8YSBocmVmPSJ7eyBuZXh0Lmxp
bmt8ZSB9fSIgdGl0bGU9Int7IF8oJ25leHQgY2hhcHRlcicpCisgICAgICAgIH19Ij57eyBuZXh0
LnRpdGxlIH19PC9hPjwvbGk+CisgICAgeyUtIGVuZGlmICV9CisgIHslLSBmb3IgcGFyZW50IGlu
IHBhcmVudHMgJX0KKyAgPC91bD48L2xpPgorICB7JS0gZW5kZm9yICV9CisgIDwvdWw+PC9saT4K
KzwvdWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0
aWMvZmxhc2t5LmNzc190IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3RhdGlj
L2ZsYXNreS5jc3NfdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjU5M2RhMjk5YTgzNTNlMzFjMmVhZmI1YjA0NDUw
NTYyNWUwNTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMv
Zmxhc2svc3RhdGljL2ZsYXNreS5jc3NfdApAQCAtMCwwICsxLDU1NyBAQAorLyoKKyAqIGZsYXNr
eS5jc3NfdAorICogfn5+fn5+fn5+fn5+CisgKgorICogOmNvcHlyaWdodDogQ29weXJpZ2h0IDIw
MTAgYnkgQXJtaW4gUm9uYWNoZXIuCisgKiA6bGljZW5zZTogRmxhc2sgRGVzaWduIExpY2Vuc2Us
IHNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorICovCisKK3slIHNldCBwYWdlX3dpZHRoID0gJzEw
MjBweCcgJX0KK3slIHNldCBzaWRlYmFyX3dpZHRoID0gJzIyMHB4JyAlfQorLyogb3JhbmdlIG9m
IGxvZ28gaXMgI2Q2N2MyOSBidXQgd2UgdXNlIGJsYWNrIGZvciBsaW5rcyBmb3Igbm93ICovCit7
JSBzZXQgbGlua19jb2xvciA9ICcjMDAwJyAlfQoreyUgc2V0IGxpbmtfaG92ZXJfY29sb3IgPSAn
IzAwMCcgJX0KK3slIHNldCBiYXNlX2ZvbnQgPSAnc2Fucy1zZXJpZicgJX0KK3slIHNldCBoZWFk
ZXJfZm9udCA9ICdzZXJpZicgJX0KKworQGltcG9ydCB1cmwoImJhc2ljLmNzcyIpOworCisvKiAt
LSBwYWdlIGxheW91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqLworCitib2R5IHsKKyAgICBmb250LWZhbWlseToge3sgYmFzZV9m
b250IH19OworICAgIGZvbnQtc2l6ZTogMTdweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0
ZTsKKyAgICBjb2xvcjogIzAwMDsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKK30K
KworZGl2LmRvY3VtZW50IHsKKyAgICB3aWR0aDoge3sgcGFnZV93aWR0aCB9fTsKKyAgICBtYXJn
aW46IDMwcHggYXV0byAwIGF1dG87Cit9CisKK2Rpdi5kb2N1bWVudHdyYXBwZXIgeworICAgIGZs
b2F0OiBsZWZ0OworICAgIHdpZHRoOiAxMDAlOworfQorCitkaXYuYm9keXdyYXBwZXIgeworICAg
IG1hcmdpbjogMCAwIDAge3sgc2lkZWJhcl93aWR0aCB9fTsKK30KKworZGl2LnNwaGlueHNpZGVi
YXIgeworICAgIHdpZHRoOiB7eyBzaWRlYmFyX3dpZHRoIH19OworfQorCitociB7CisgICAgYm9y
ZGVyOiAwOworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQjFCNEI2OworfQorCitkaXYuYm9k
eSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKKyAgICBjb2xvcjogIzNFNDM0OTsK
KyAgICBwYWRkaW5nOiAwIDMwcHggMCAzMHB4OworfQorCitpbWcuZmxvYXRpbmdmbGFzayB7Cisg
ICAgcGFkZGluZzogMCAwIDEwcHggMTBweDsKKyAgICBmbG9hdDogcmlnaHQ7Cit9CisKK2Rpdi5m
b290ZXIgeworICAgIHdpZHRoOiB7eyBwYWdlX3dpZHRoIH19OworICAgIG1hcmdpbjogMjBweCBh
dXRvIDMwcHggYXV0bzsKKyAgICBmb250LXNpemU6IDE0cHg7CisgICAgY29sb3I6ICM4ODg7Cisg
ICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKK2Rpdi5mb290ZXIgYSB7CisgICAgY29sb3I6ICM4
ODg7Cit9CisKK2Rpdi5yZWxhdGVkIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCitkaXYuc3Bo
aW54c2lkZWJhciBhIHsKKyAgICBjb2xvcjogIzQ0NDsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5v
bmU7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjOTk5OworfQorCitkaXYuc3BoaW54
c2lkZWJhciBhOmhvdmVyIHsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5OTsKK30K
KworZGl2LnNwaGlueHNpZGViYXIgeworICAgIGZvbnQtc2l6ZTogMTRweDsKKyAgICBsaW5lLWhl
aWdodDogMS41OworfQorCitkaXYuc3BoaW54c2lkZWJhcndyYXBwZXIgeworICAgIHBhZGRpbmc6
IDE4cHggMTBweDsKK30KKworZGl2LnNwaGlueHNpZGViYXJ3cmFwcGVyIHAubG9nbyB7CisgICAg
cGFkZGluZzogMCAwIDIwcHggMDsKKyAgICBtYXJnaW46IDA7CisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworfQorCitkaXYuc3BoaW54c2lkZWJhciBoMywKK2Rpdi5zcGhpbnhzaWRlYmFyIGg0IHsK
KyAgICBmb250LWZhbWlseToge3sgaGVhZGVyX2ZvbnQgfX07CisgICAgY29sb3I6ICM0NDQ7Cisg
ICAgZm9udC1zaXplOiAyNHB4OworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CisgICAgbWFyZ2lu
OiAwIDAgNXB4IDA7CisgICAgcGFkZGluZzogMDsKK30KKworZGl2LnNwaGlueHNpZGViYXIgaDQg
eworICAgIGZvbnQtc2l6ZTogMjBweDsKK30KKworZGl2LnNwaGlueHNpZGViYXIgaDMgYSB7Cisg
ICAgY29sb3I6ICM0NDQ7Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFyIHAubG9nbyBhLAorZGl2LnNw
aGlueHNpZGViYXIgaDMgYSwKK2Rpdi5zcGhpbnhzaWRlYmFyIHAubG9nbyBhOmhvdmVyLAorZGl2
LnNwaGlueHNpZGViYXIgaDMgYTpob3ZlciB7CisgICAgYm9yZGVyOiBub25lOworfQorCitkaXYu
c3BoaW54c2lkZWJhciBwIHsKKyAgICBjb2xvcjogIzU1NTsKKyAgICBtYXJnaW46IDEwcHggMDsK
K30KKworZGl2LnNwaGlueHNpZGViYXIgdWwgeworICAgIG1hcmdpbjogMTBweCAwOworICAgIHBh
ZGRpbmc6IDA7CisgICAgY29sb3I6ICMwMDA7Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFyIGlucHV0
IHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgIGZvbnQtZmFtaWx5OiB7eyBiYXNl
X2ZvbnQgfX07CisgICAgZm9udC1zaXplOiAxZW07Cit9CisKKy8qIC0tIGJvZHkgc3R5bGVzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICovCisKK2EgeworICAgIGNvbG9yOiB7eyBsaW5rX2NvbG9yIH19OworICAgIHRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lOworfQorCithOmhvdmVyIHsKKyAgICBjb2xvcjoge3sgbGlua19ob3Zl
cl9jb2xvciB9fTsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKworYS5yZWZl
cmVuY2UuaW50ZXJuYWwgZW0geworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKK30KKworZGl2LmJv
ZHkgaDEsCitkaXYuYm9keSBoMiwKK2Rpdi5ib2R5IGgzLAorZGl2LmJvZHkgaDQsCitkaXYuYm9k
eSBoNSwKK2Rpdi5ib2R5IGg2IHsKKyAgICBmb250LWZhbWlseToge3sgaGVhZGVyX2ZvbnQgfX07
CisgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKKyAgICBtYXJnaW46IDMwcHggMHB4IDEwcHggMHB4
OworICAgIHBhZGRpbmc6IDA7Cit9CisKK3slIGlmIHRoZW1lX2luZGV4X2xvZ28gJX0KK2Rpdi5p
bmRleHdyYXBwZXIgaDEgeworICAgIHRleHQtaW5kZW50OiAtOTk5OTk5cHg7CisgICAgYmFja2dy
b3VuZDogdXJsKHt7IHRoZW1lX2luZGV4X2xvZ28gfX0pIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVy
OworICAgIGhlaWdodDoge3sgdGhlbWVfaW5kZXhfbG9nb19oZWlnaHQgfX07Cit9Cit7JSBlbHNl
ICV9CitkaXYuaW5kZXh3cmFwcGVyIGRpdi5ib2R5IGgxIHsKKyAgICBmb250LXNpemU6IDIwMCU7
Cit9Cit7JSBlbmRpZiAlfQorZGl2LmJvZHkgaDEgeyBtYXJnaW4tdG9wOiAwOyBwYWRkaW5nLXRv
cDogMDsgZm9udC1zaXplOiAyNDAlOyB9CitkaXYuYm9keSBoMiB7IGZvbnQtc2l6ZTogMTgwJTsg
fQorZGl2LmJvZHkgaDMgeyBmb250LXNpemU6IDE1MCU7IH0KK2Rpdi5ib2R5IGg0IHsgZm9udC1z
aXplOiAxMzAlOyB9CitkaXYuYm9keSBoNSB7IGZvbnQtc2l6ZTogMTAwJTsgfQorZGl2LmJvZHkg
aDYgeyBmb250LXNpemU6IDEwMCU7IH0KKworYS5oZWFkZXJsaW5rIHsKKyAgICBjb2xvcjogI2Rk
ZDsKKyAgICBwYWRkaW5nOiAwIDRweDsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisK
K2EuaGVhZGVybGluazpob3ZlciB7CisgICAgY29sb3I6ICM0NDQ7CisgICAgYmFja2dyb3VuZDog
I2VhZWFlYTsKK30KKworZGl2LmJvZHkgcCwgZGl2LmJvZHkgZGQsIGRpdi5ib2R5IGxpIHsKKyAg
ICBsaW5lLWhlaWdodDogMS40ZW07Cit9CisKK2Rpdi5hZG1vbml0aW9uIHsKKyAgICBiYWNrZ3Jv
dW5kOiAjZmFmYWZhOworICAgIG1hcmdpbjogMjBweCAtMzBweDsKKyAgICBwYWRkaW5nOiAxMHB4
IDMwcHg7CisgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7CisgICAgYm9yZGVyLWJvdHRv
bTogMXB4IHNvbGlkICNjY2M7Cit9CisKK2Rpdi5hZG1vbml0aW9uIHR0LnhyZWYsIGRpdi5hZG1v
bml0aW9uIGEgdHQgeworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmFmYWZhOworfQor
CitkZCBkaXYuYWRtb25pdGlvbiB7CisgICAgbWFyZ2luLWxlZnQ6IC02MHB4OworICAgIHBhZGRp
bmctbGVmdDogNjBweDsKK30KKworZGl2LmFkbW9uaXRpb24gcC5hZG1vbml0aW9uLXRpdGxlIHsK
KyAgICBmb250LWZhbWlseToge3sgaGVhZGVyX2ZvbnQgfX07CisgICAgZm9udC13ZWlnaHQ6IG5v
cm1hbDsKKyAgICBmb250LXNpemU6IDI0cHg7CisgICAgbWFyZ2luOiAwIDAgMTBweCAwOworICAg
IHBhZGRpbmc6IDA7CisgICAgbGluZS1oZWlnaHQ6IDE7Cit9CisKK2Rpdi5hZG1vbml0aW9uIHAu
bGFzdCB7CisgICAgbWFyZ2luLWJvdHRvbTogMDsKK30KKworZGl2LmhpZ2hsaWdodCB7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cit9CisKK2R0OnRhcmdldCwgLmhpZ2hsaWdodCB7Cisg
ICAgYmFja2dyb3VuZDogI0ZBRjNFODsKK30KKworZGl2Lm5vdGUgeworICAgIGJhY2tncm91bmQt
Y29sb3I6ICNlZWU7CisgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKK30KKworZGl2LnNlZWFs
c28geworICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM7CisgICAgYm9yZGVyOiAxcHggc29saWQg
I2ZmNjsKK30KKworZGl2LnRvcGljIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworfQor
CitwLmFkbW9uaXRpb24tdGl0bGUgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKworcC5hZG1v
bml0aW9uLXRpdGxlOmFmdGVyIHsKKyAgICBjb250ZW50OiAiOiI7Cit9CisKK3ByZSwgdHQsIGNv
ZGUgeworICAgIGZvbnQtZmFtaWx5OiAnQ29uc29sYXMnLCAnTWVubG8nLCAnRGVqYSBWdSBTYW5z
IE1vbm8nLCAnQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJywgbW9ub3NwYWNlOworICAgIGZvbnQt
c2l6ZTogMC45ZW07CisgICAgYmFja2dyb3VuZDogI2VlZTsKK30KKworaW1nLnNjcmVlbnNob3Qg
eworfQorCit0dC5kZXNjbmFtZSwgdHQuZGVzY2NsYXNzbmFtZSB7CisgICAgZm9udC1zaXplOiAw
Ljk1ZW07Cit9CisKK3R0LmRlc2NuYW1lIHsKKyAgICBwYWRkaW5nLXJpZ2h0OiAwLjA4ZW07Cit9
CisKK2ltZy5zY3JlZW5zaG90IHsKKyAgICAtbW96LWJveC1zaGFkb3c6IDJweCAycHggNHB4ICNl
ZWU7CisgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDRweCAjZWVlOworICAgIGJveC1z
aGFkb3c6IDJweCAycHggNHB4ICNlZWU7Cit9CisKK3RhYmxlLmRvY3V0aWxzIHsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCAjODg4OworICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA0cHggI2Vl
ZTsKKyAgICAtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggNHB4ICNlZWU7CisgICAgYm94LXNo
YWRvdzogMnB4IDJweCA0cHggI2VlZTsKK30KKwordGFibGUuZG9jdXRpbHMgdGQsIHRhYmxlLmRv
Y3V0aWxzIHRoIHsKKyAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4OworICAgIHBhZGRpbmc6IDAu
MjVlbSAwLjdlbTsKK30KKwordGFibGUuZmllbGQtbGlzdCwgdGFibGUuZm9vdG5vdGUgeworICAg
IGJvcmRlcjogbm9uZTsKKyAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7CisgICAgLXdlYmtpdC1i
b3gtc2hhZG93OiBub25lOworICAgIGJveC1zaGFkb3c6IG5vbmU7Cit9CisKK3RhYmxlLmZvb3Ru
b3RlIHsKKyAgICBtYXJnaW46IDE1cHggMDsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBib3JkZXI6
IDFweCBzb2xpZCAjZWVlOworICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7CisgICAgZm9udC1zaXpl
OiAwLjllbTsKK30KKwordGFibGUuZm9vdG5vdGUgKyB0YWJsZS5mb290bm90ZSB7CisgICAgbWFy
Z2luLXRvcDogLTE1cHg7CisgICAgYm9yZGVyLXRvcDogbm9uZTsKK30KKwordGFibGUuZmllbGQt
bGlzdCB0aCB7CisgICAgcGFkZGluZzogMCAwLjhlbSAwIDA7Cit9CisKK3RhYmxlLmZpZWxkLWxp
c3QgdGQgeworICAgIHBhZGRpbmc6IDA7Cit9CisKK3RhYmxlLmZvb3Rub3RlIHRkLmxhYmVsIHsK
KyAgICB3aWR0aDogMHB4OworICAgIHBhZGRpbmc6IDAuM2VtIDAgMC4zZW0gMC41ZW07Cit9CisK
K3RhYmxlLmZvb3Rub3RlIHRkIHsKKyAgICBwYWRkaW5nOiAwLjNlbSAwLjVlbTsKK30KKworZGwg
eworICAgIG1hcmdpbjogMDsKKyAgICBwYWRkaW5nOiAwOworfQorCitkbCBkZCB7CisgICAgbWFy
Z2luLWxlZnQ6IDMwcHg7Cit9CisKK2Jsb2NrcXVvdGUgeworICAgIG1hcmdpbjogMCAwIDAgMzBw
eDsKKyAgICBwYWRkaW5nOiAwOworfQorCit1bCwgb2wgeworICAgIG1hcmdpbjogMTBweCAwIDEw
cHggMzBweDsKKyAgICBwYWRkaW5nOiAwOworfQorCitwcmUgeworICAgIGJhY2tncm91bmQ6ICNl
ZWU7CisgICAgcGFkZGluZzogN3B4IDMwcHg7CisgICAgbWFyZ2luOiAxNXB4IC0zMHB4OworICAg
IGxpbmUtaGVpZ2h0OiAxLjNlbTsKK30KKworZGwgcHJlLCBibG9ja3F1b3RlIHByZSwgbGkgcHJl
IHsKKyAgICBtYXJnaW4tbGVmdDogLTYwcHg7CisgICAgcGFkZGluZy1sZWZ0OiA2MHB4OworfQor
CitkbCBkbCBwcmUgeworICAgIG1hcmdpbi1sZWZ0OiAtOTBweDsKKyAgICBwYWRkaW5nLWxlZnQ6
IDkwcHg7Cit9CisKK3R0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYzOworICAgIGNv
bG9yOiAjMjIyOworICAgIC8qIHBhZGRpbmc6IDFweCAycHg7ICovCit9CisKK3R0LnhyZWYsIGEg
dHQgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNGQkZCRkI7CisgICAgYm9yZGVyLWJvdHRvbTog
MXB4IHNvbGlkIHdoaXRlOworfQorCithLnJlZmVyZW5jZSB7CisgICAgdGV4dC1kZWNvcmF0aW9u
OiBub25lOworICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQge3sgbGlua19jb2xvciB9fTsK
K30KKworYS5yZWZlcmVuY2U6aG92ZXIgeworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB7
eyBsaW5rX2hvdmVyX2NvbG9yIH19OworfQorCithLmZvb3Rub3RlLXJlZmVyZW5jZSB7CisgICAg
dGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGZvbnQtc2l6ZTogMC43ZW07CisgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHt7IGxpbmtfY29s
b3IgfX07Cit9CisKK2EuZm9vdG5vdGUtcmVmZXJlbmNlOmhvdmVyIHsKKyAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQge3sgbGlua19ob3Zlcl9jb2xvciB9fTsKK30KKworYTpob3ZlciB0dCB7
CisgICAgYmFja2dyb3VuZDogI0VFRTsKK30KKworCitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdp
ZHRoOiA4NzBweCkgeworCisgICAgZGl2LnNwaGlueHNpZGViYXIgeworICAgICAgICBkaXNwbGF5
OiBub25lOworICAgIH0KKworICAgIGRpdi5kb2N1bWVudCB7CisgICAgICAgd2lkdGg6IDEwMCU7
CisKKyAgICB9CisKKyAgICBkaXYuZG9jdW1lbnR3cmFwcGVyIHsKKyAgICAgICAgbWFyZ2luLWxl
ZnQ6IDA7CisgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgICAgIG1hcmdpbi1yaWdodDogMDsK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKKyAgICB9CisKKyAgICBkaXYuYm9keXdyYXBwZXIg
eworICAgICAgICBtYXJnaW4tdG9wOiAwOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CisgICAg
ICAgIG1hcmdpbi1ib3R0b206IDA7CisgICAgICAgIG1hcmdpbi1sZWZ0OiAwOworICAgIH0KKwor
ICAgIHVsIHsKKyAgICAgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgfQorCisgICAgLmRvY3VtZW50
IHsKKyAgICAgICAgd2lkdGg6IGF1dG87CisgICAgfQorCisgICAgLmZvb3RlciB7CisgICAgICAg
IHdpZHRoOiBhdXRvOworICAgIH0KKworICAgIC5ib2R5d3JhcHBlciB7CisgICAgICAgIG1hcmdp
bjogMDsKKyAgICB9CisKKyAgICAuZm9vdGVyIHsKKyAgICAgICAgd2lkdGg6IGF1dG87CisgICAg
fQorCisgICAgLmdpdGh1YiB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorCisKKwor
fQorCisKKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODc1cHgpIHsKKworICAgIGJv
ZHkgeworICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDsKKyAg
ICB9CisKKyAgICBkaXYuZG9jdW1lbnR3cmFwcGVyIHsKKyAgICAgICAgZmxvYXQ6IG5vbmU7Cisg
ICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOworICAgIH0KKworICAgIGRpdi5zcGhpbnhzaWRlYmFy
IHsKKyAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIGZsb2F0OiBub25lOworICAgICAg
ICB3aWR0aDogMTAyLjUlOworICAgICAgICBtYXJnaW46IDUwcHggLTMwcHggLTIwcHggLTMwcHg7
CisgICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsKKyAgICAgICAgYmFja2dyb3VuZDogIzMzMzsK
KyAgICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKworICAgIGRpdi5zcGhpbnhzaWRlYmFyIGgz
LCBkaXYuc3BoaW54c2lkZWJhciBoNCwgZGl2LnNwaGlueHNpZGViYXIgcCwKKyAgICBkaXYuc3Bo
aW54c2lkZWJhciBoMyBhLCBkaXYuc3BoaW54c2lkZWJhciB1bCB7CisgICAgICAgIGNvbG9yOiB3
aGl0ZTsKKyAgICB9CisKKyAgICBkaXYuc3BoaW54c2lkZWJhciBhIHsKKyAgICAgICAgY29sb3I6
ICNhYWE7CisgICAgfQorCisgICAgZGl2LnNwaGlueHNpZGViYXIgcC5sb2dvIHsKKyAgICAgICAg
ZGlzcGxheTogbm9uZTsKKyAgICB9CisKKyAgICBkaXYuZG9jdW1lbnQgeworICAgICAgICB3aWR0
aDogMTAwJTsKKyAgICAgICAgbWFyZ2luOiAwOworICAgIH0KKworICAgIGRpdi5yZWxhdGVkIHsK
KyAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgcGFk
ZGluZzogMTBweCAwIDIwcHggMDsKKyAgICB9CisKKyAgICBkaXYucmVsYXRlZCB1bCwKKyAgICBk
aXYucmVsYXRlZCB1bCBsaSB7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgcGFkZGluZzog
MDsKKyAgICB9CisKKyAgICBkaXYuZm9vdGVyIHsKKyAgICAgICAgZGlzcGxheTogbm9uZTsKKyAg
ICB9CisKKyAgICBkaXYuYm9keXdyYXBwZXIgeworICAgICAgICBtYXJnaW46IDA7CisgICAgfQor
CisgICAgZGl2LmJvZHkgeworICAgICAgICBtaW4taGVpZ2h0OiAwOworICAgICAgICBwYWRkaW5n
OiAwOworICAgIH0KKworICAgIC5ydGRfZG9jX2Zvb3RlciB7CisgICAgICAgIGRpc3BsYXk6IG5v
bmU7CisgICAgfQorCisgICAgLmRvY3VtZW50IHsKKyAgICAgICAgd2lkdGg6IGF1dG87CisgICAg
fQorCisgICAgLmZvb3RlciB7CisgICAgICAgIHdpZHRoOiBhdXRvOworICAgIH0KKworICAgIC5m
b290ZXIgeworICAgICAgICB3aWR0aDogYXV0bzsKKyAgICB9CisKKyAgICAuZ2l0aHViIHsKKyAg
ICAgICAgZGlzcGxheTogbm9uZTsKKyAgICB9Cit9CisKKy8qIG1pc2MuICovCisKKy5yZXZzeXMt
aW5saW5lIHsKKyAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDsKK30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMTQ4YWQxNDM4NTUyNjk3NzkwNWI3YTdhZmQzZDI4ZmVlMTI2ZjBhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3RhdGljL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGhlbWVzL2ZsYXNrL3N0YXRpYy9mbGFza3kuY3NzX3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3RoZW1lLmNvbmYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Ro
ZW1lcy9mbGFzay90aGVtZS5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4YzcyMGY4MDRjNmYwMzRjZGIxZWUw
MmE2MTZjYzFlMjcxYTQwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RoZW1lcy9mbGFzay90aGVtZS5jb25mCkBAIC0wLDAgKzEsOSBAQAorW3RoZW1lXQoraW5oZXJp
dCA9IGJhc2ljCitzdHlsZXNoZWV0ID0gZmxhc2t5LmNzcworcHlnbWVudHNfc3R5bGUgPSBmbGFz
a190aGVtZV9zdXBwb3J0LkZsYXNreVN0eWxlCisKK1tvcHRpb25zXQoraW5kZXhfbG9nbyA9ICcn
CitpbmRleF9sb2dvX2hlaWdodCA9IDEyMHB4Cit0b3VjaF9pY29uID0gCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYTgx
ZTRjNDdhYzE4NzQ0OGY0MzE5NjAyOWQ2NDY4ZjM2MjdkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9sYXlvdXQu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3JlbGF0aW9ucy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhlbWUuY29uZgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBvcnQucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzNmNDc0NDljMTFkMjQxZTM2YzgzZDdmOTVkODE5YmJlNTZlMmM4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBvcnQucHkKQEAg
LTAsMCArMSw4NiBAQAorIyBmbGFza3kgZXh0ZW5zaW9ucy4gIGZsYXNreSBweWdtZW50cyBzdHls
ZSBiYXNlZCBvbiB0YW5nbyBzdHlsZQorZnJvbSBweWdtZW50cy5zdHlsZSBpbXBvcnQgU3R5bGUK
K2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IEtleXdvcmQsIE5hbWUsIENvbW1lbnQsIFN0cmlu
ZywgRXJyb3IsIFwKKyAgICAgTnVtYmVyLCBPcGVyYXRvciwgR2VuZXJpYywgV2hpdGVzcGFjZSwg
UHVuY3R1YXRpb24sIE90aGVyLCBMaXRlcmFsCisKKworY2xhc3MgRmxhc2t5U3R5bGUoU3R5bGUp
OgorICAgIGJhY2tncm91bmRfY29sb3IgPSAiI2Y4ZjhmOCIKKyAgICBkZWZhdWx0X3N0eWxlID0g
IiIKKworICAgIHN0eWxlcyA9IHsKKyAgICAgICAgIyBObyBjb3JyZXNwb25kaW5nIGNsYXNzIGZv
ciB0aGUgZm9sbG93aW5nOgorICAgICAgICAjVGV4dDogICAgICAgICAgICAgICAgICAgICAiIiwg
IyBjbGFzczogICcnCisgICAgICAgIFdoaXRlc3BhY2U6ICAgICAgICAgICAgICAgICJ1bmRlcmxp
bmUgI2Y4ZjhmOCIsICAgICAgIyBjbGFzczogJ3cnCisgICAgICAgIEVycm9yOiAgICAgICAgICAg
ICAgICAgICAgICIjYTQwMDAwIGJvcmRlcjojZWYyOTI5IiwgIyBjbGFzczogJ2VycicKKyAgICAg
ICAgT3RoZXI6ICAgICAgICAgICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAgICAgICAgICAj
IGNsYXNzICd4JworCisgICAgICAgIENvbW1lbnQ6ICAgICAgICAgICAgICAgICAgICJpdGFsaWMg
IzhmNTkwMiIsICMgY2xhc3M6ICdjJworICAgICAgICBDb21tZW50LlByZXByb2M6ICAgICAgICAg
ICAibm9pdGFsaWMiLCAgICAgICAjIGNsYXNzOiAnY3AnCisKKyAgICAgICAgS2V5d29yZDogICAg
ICAgICAgICAgICAgICAgImJvbGQgIzAwNDQ2MSIsICAgIyBjbGFzczogJ2snCisgICAgICAgIEtl
eXdvcmQuQ29uc3RhbnQ6ICAgICAgICAgICJib2xkICMwMDQ0NjEiLCAgICMgY2xhc3M6ICdrYycK
KyAgICAgICAgS2V5d29yZC5EZWNsYXJhdGlvbjogICAgICAgImJvbGQgIzAwNDQ2MSIsICAgIyBj
bGFzczogJ2tkJworICAgICAgICBLZXl3b3JkLk5hbWVzcGFjZTogICAgICAgICAiYm9sZCAjMDA0
NDYxIiwgICAjIGNsYXNzOiAna24nCisgICAgICAgIEtleXdvcmQuUHNldWRvOiAgICAgICAgICAg
ICJib2xkICMwMDQ0NjEiLCAgICMgY2xhc3M6ICdrcCcKKyAgICAgICAgS2V5d29yZC5SZXNlcnZl
ZDogICAgICAgICAgImJvbGQgIzAwNDQ2MSIsICAgIyBjbGFzczogJ2tyJworICAgICAgICBLZXl3
b3JkLlR5cGU6ICAgICAgICAgICAgICAiYm9sZCAjMDA0NDYxIiwgICAjIGNsYXNzOiAna3QnCisK
KyAgICAgICAgT3BlcmF0b3I6ICAgICAgICAgICAgICAgICAgIiM1ODI4MDAiLCAgICMgY2xhc3M6
ICdvJworICAgICAgICBPcGVyYXRvci5Xb3JkOiAgICAgICAgICAgICAiYm9sZCAjMDA0NDYxIiwg
ICAjIGNsYXNzOiAnb3cnIC0gbGlrZSBrZXl3b3JkcworCisgICAgICAgIFB1bmN0dWF0aW9uOiAg
ICAgICAgICAgICAgICJib2xkICMwMDAwMDAiLCAgICMgY2xhc3M6ICdwJworCisgICAgICAgICMg
YmVjYXVzZSBzcGVjaWFsIG5hbWVzIHN1Y2ggYXMgTmFtZS5DbGFzcywgTmFtZS5GdW5jdGlvbiwg
ZXRjLgorICAgICAgICAjIGFyZSBub3QgcmVjb2duaXplZCBhcyBzdWNoIGxhdGVyIGluIHRoZSBw
YXJzaW5nLCB3ZSBjaG9vc2UgdGhlbQorICAgICAgICAjIHRvIGxvb2sgdGhlIHNhbWUgYXMgb3Jk
aW5hcnkgdmFyaWFibGVzLgorICAgICAgICBOYW1lOiAgICAgICAgICAgICAgICAgICAgICAiIzAw
MDAwMCIsICAgICAgICAjIGNsYXNzOiAnbicKKyAgICAgICAgTmFtZS5BdHRyaWJ1dGU6ICAgICAg
ICAgICAgIiNjNGEwMDAiLCAgICAgICAgIyBjbGFzczogJ25hJyAtIHRvIGJlIHJldmlzZWQKKyAg
ICAgICAgTmFtZS5CdWlsdGluOiAgICAgICAgICAgICAgIiMwMDQ0NjEiLCAgICAgICAgIyBjbGFz
czogJ25iJworICAgICAgICBOYW1lLkJ1aWx0aW4uUHNldWRvOiAgICAgICAiIzM0NjVhNCIsICAg
ICAgICAjIGNsYXNzOiAnYnAnCisgICAgICAgIE5hbWUuQ2xhc3M6ICAgICAgICAgICAgICAgICIj
MDAwMDAwIiwgICAgICAgICMgY2xhc3M6ICduYycgLSB0byBiZSByZXZpc2VkCisgICAgICAgIE5h
bWUuQ29uc3RhbnQ6ICAgICAgICAgICAgICIjMDAwMDAwIiwgICAgICAgICMgY2xhc3M6ICdubycg
LSB0byBiZSByZXZpc2VkCisgICAgICAgIE5hbWUuRGVjb3JhdG9yOiAgICAgICAgICAgICIjODg4
IiwgICAgICAgICAgICMgY2xhc3M6ICduZCcgLSB0byBiZSByZXZpc2VkCisgICAgICAgIE5hbWUu
RW50aXR5OiAgICAgICAgICAgICAgICIjY2U1YzAwIiwgICAgICAgICMgY2xhc3M6ICduaScKKyAg
ICAgICAgTmFtZS5FeGNlcHRpb246ICAgICAgICAgICAgImJvbGQgI2NjMDAwMCIsICAgIyBjbGFz
czogJ25lJworICAgICAgICBOYW1lLkZ1bmN0aW9uOiAgICAgICAgICAgICAiIzAwMDAwMCIsICAg
ICAgICAjIGNsYXNzOiAnbmYnCisgICAgICAgIE5hbWUuUHJvcGVydHk6ICAgICAgICAgICAgICIj
MDAwMDAwIiwgICAgICAgICMgY2xhc3M6ICdweScKKyAgICAgICAgTmFtZS5MYWJlbDogICAgICAg
ICAgICAgICAgIiNmNTc5MDAiLCAgICAgICAgIyBjbGFzczogJ25sJworICAgICAgICBOYW1lLk5h
bWVzcGFjZTogICAgICAgICAgICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAnbm4nIC0gdG8g
YmUgcmV2aXNlZAorICAgICAgICBOYW1lLk90aGVyOiAgICAgICAgICAgICAgICAiIzAwMDAwMCIs
ICAgICAgICAjIGNsYXNzOiAnbngnCisgICAgICAgIE5hbWUuVGFnOiAgICAgICAgICAgICAgICAg
ICJib2xkICMwMDQ0NjEiLCAgICMgY2xhc3M6ICdudCcgLSBsaWtlIGEga2V5d29yZAorICAgICAg
ICBOYW1lLlZhcmlhYmxlOiAgICAgICAgICAgICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAn
bnYnIC0gdG8gYmUgcmV2aXNlZAorICAgICAgICBOYW1lLlZhcmlhYmxlLkNsYXNzOiAgICAgICAi
IzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAndmMnIC0gdG8gYmUgcmV2aXNlZAorICAgICAgICBO
YW1lLlZhcmlhYmxlLkdsb2JhbDogICAgICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAndmcn
IC0gdG8gYmUgcmV2aXNlZAorICAgICAgICBOYW1lLlZhcmlhYmxlLkluc3RhbmNlOiAgICAiIzAw
MDAwMCIsICAgICAgICAjIGNsYXNzOiAndmknIC0gdG8gYmUgcmV2aXNlZAorCisgICAgICAgIE51
bWJlcjogICAgICAgICAgICAgICAgICAgICIjOTkwMDAwIiwgICAgICAgICMgY2xhc3M6ICdtJwor
CisgICAgICAgIExpdGVyYWw6ICAgICAgICAgICAgICAgICAgICIjMDAwMDAwIiwgICAgICAgICMg
Y2xhc3M6ICdsJworICAgICAgICBMaXRlcmFsLkRhdGU6ICAgICAgICAgICAgICAiIzAwMDAwMCIs
ICAgICAgICAjIGNsYXNzOiAnbGQnCisKKyAgICAgICAgU3RyaW5nOiAgICAgICAgICAgICAgICAg
ICAgIiM0ZTlhMDYiLCAgICAgICAgIyBjbGFzczogJ3MnCisgICAgICAgIFN0cmluZy5CYWNrdGlj
azogICAgICAgICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdzYicKKyAgICAgICAgU3Ry
aW5nLkNoYXI6ICAgICAgICAgICAgICAgIiM0ZTlhMDYiLCAgICAgICAgIyBjbGFzczogJ3NjJwor
ICAgICAgICBTdHJpbmcuRG9jOiAgICAgICAgICAgICAgICAiaXRhbGljICM4ZjU5MDIiLCAjIGNs
YXNzOiAnc2QnIC0gbGlrZSBhIGNvbW1lbnQKKyAgICAgICAgU3RyaW5nLkRvdWJsZTogICAgICAg
ICAgICAgIiM0ZTlhMDYiLCAgICAgICAgIyBjbGFzczogJ3MyJworICAgICAgICBTdHJpbmcuRXNj
YXBlOiAgICAgICAgICAgICAiIzRlOWEwNiIsICAgICAgICAjIGNsYXNzOiAnc2UnCisgICAgICAg
IFN0cmluZy5IZXJlZG9jOiAgICAgICAgICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdz
aCcKKyAgICAgICAgU3RyaW5nLkludGVycG9sOiAgICAgICAgICAgIiM0ZTlhMDYiLCAgICAgICAg
IyBjbGFzczogJ3NpJworICAgICAgICBTdHJpbmcuT3RoZXI6ICAgICAgICAgICAgICAiIzRlOWEw
NiIsICAgICAgICAjIGNsYXNzOiAnc3gnCisgICAgICAgIFN0cmluZy5SZWdleDogICAgICAgICAg
ICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdzcicKKyAgICAgICAgU3RyaW5nLlNpbmds
ZTogICAgICAgICAgICAgIiM0ZTlhMDYiLCAgICAgICAgIyBjbGFzczogJ3MxJworICAgICAgICBT
dHJpbmcuU3ltYm9sOiAgICAgICAgICAgICAiIzRlOWEwNiIsICAgICAgICAjIGNsYXNzOiAnc3Mn
CisKKyAgICAgICAgR2VuZXJpYzogICAgICAgICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAg
IyBjbGFzczogJ2cnCisgICAgICAgIEdlbmVyaWMuRGVsZXRlZDogICAgICAgICAgICIjYTQwMDAw
IiwgICAgICAgICMgY2xhc3M6ICdnZCcKKyAgICAgICAgR2VuZXJpYy5FbXBoOiAgICAgICAgICAg
ICAgIml0YWxpYyAjMDAwMDAwIiwgIyBjbGFzczogJ2dlJworICAgICAgICBHZW5lcmljLkVycm9y
OiAgICAgICAgICAgICAiI2VmMjkyOSIsICAgICAgICAjIGNsYXNzOiAnZ3InCisgICAgICAgIEdl
bmVyaWMuSGVhZGluZzogICAgICAgICAgICJib2xkICMwMDAwODAiLCAgICMgY2xhc3M6ICdnaCcK
KyAgICAgICAgR2VuZXJpYy5JbnNlcnRlZDogICAgICAgICAgIiMwMEEwMDAiLCAgICAgICAgIyBj
bGFzczogJ2dpJworICAgICAgICBHZW5lcmljLk91dHB1dDogICAgICAgICAgICAiIzg4OCIsICAg
ICAgICAgICAjIGNsYXNzOiAnZ28nCisgICAgICAgIEdlbmVyaWMuUHJvbXB0OiAgICAgICAgICAg
ICIjNzQ1MzM0IiwgICAgICAgICMgY2xhc3M6ICdncCcKKyAgICAgICAgR2VuZXJpYy5TdHJvbmc6
ICAgICAgICAgICAgImJvbGQgIzAwMDAwMCIsICAgIyBjbGFzczogJ2dzJworICAgICAgICBHZW5l
cmljLlN1YmhlYWRpbmc6ICAgICAgICAiYm9sZCAjODAwMDgwIiwgICAjIGNsYXNzOiAnZ3UnCisg
ICAgICAgIEdlbmVyaWMuVHJhY2ViYWNrOiAgICAgICAgICJib2xkICNhNDAwMDAiLCAgICMgY2xh
c3M6ICdndCcKKyAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEyZDcwOWMyZThkYWI0OGM4YTJjODE5NDBmYjgzYTA3MmQwNmE1MGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9M
SUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fkb3B0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hZG9wdC5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzEwZjQzMWJlMzBiY2RmNDRmNWY1MWFlMzMzZmVmZDNjNDViYTQwMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hZG9wdC5yc3QKQEAgLTAsMCArMSw4MiBA
QAorOm9ycGhhbjoKKworLi4gd2FybmluZ3MgYWJvdXQgdGhpcyBmaWxlIG5vdCBiZWluZyBpbmNs
dWRlZCBpbiBhbnkgdG9jdHJlZSB3aWxsIGJlIHN1cHByZXNzZWQgYnkgOm9ycGhhbjoKKworCitB
cHJpbCAyMDE1IGlzICJhZG9wdCBweXRlc3QgbW9udGgiCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworQXJlIHlvdSBhbiBlbnRodXNpYXN0aWMgcHl0ZXN0
IHVzZXIsIHRoZSBsb2NhbCB0ZXN0aW5nIGd1cnUgaW4geW91ciB3b3JrcGxhY2U/IE9yIGFyZSB5
b3UgY29uc2lkZXJpbmcgdXNpbmcgcHl0ZXN0IGZvciB5b3VyIG9wZW4gc291cmNlIHByb2plY3Qs
IGJ1dCBub3Qgc3VyZSBob3cgdG8gZ2V0IHN0YXJ0ZWQ/IFRoZW4geW91IG1heSBiZSBpbnRlcmVz
dGVkIGluICJhZG9wdCBweXRlc3QgbW9udGgiIQorCitXZSB3aWxsIHBhaXIgZXhwZXJpZW5jZWQg
cHl0ZXN0IHVzZXJzIHdpdGggb3BlbiBzb3VyY2UgcHJvamVjdHMsIGZvciBhIG1vbnRoJ3MgZWZm
b3J0IG9mIGdldHRpbmcgbmV3IGRldmVsb3BtZW50IHRlYW1zIHN0YXJ0ZWQgd2l0aCBweXRlc3Qu
CisKK0luIDIwMTUgd2UgYXJlIHRyeWluZyB0aGlzIGZvciB0aGUgZmlyc3QgdGltZS4gSW4gRmVi
cnVhcnkgYW5kIE1hcmNoIDIwMTUgd2Ugd2lsbCBnYXRoZXIgdm9sdW50ZWVycyBvbiBib3RoIHNp
ZGVzLCBpbiBBcHJpbCB3ZSB3aWxsIGRvIHRoZSB3b3JrLCBhbmQgaW4gTWF5IHdlIHdpbGwgZXZh
bHVhdGUgaG93IGl0IHdlbnQuIFRoaXMgZWZmb3J0IGlzIGJlaW5nIGNvb3JkaW5hdGVkIGJ5IEJy
aWFubmEgTGF1Z2hlci4gSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucyBvciBjb21tZW50cywgeW91
IGNhbiByYWlzZSB0aGVtIG9uIHRoZSBgQHB5dGVzdGRvdG9yZyB0d2l0dGVyIGFjY291bnQgPGh0
dHBzOi8vdHdpdHRlci5jb20vcHl0ZXN0ZG90b3JnPmBfIHRoZSBgaXNzdWUgdHJhY2tlcmBfIG9y
IHRoZSBgcHl0ZXN0LWRldiBtYWlsaW5nIGxpc3RgXy4KKworCisuLiBfYGlzc3VlIHRyYWNrZXJg
OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzY3NgorLi4gX2Bw
eXRlc3QtZGV2IG1haWxpbmcgbGlzdGA6IGh0dHBzOi8vbWFpbC5weXRob24ub3JnL21haWxtYW4v
bGlzdGluZm8vcHl0ZXN0LWRldgorCisKK1RoZSBpZGVhbCBweXRlc3QgaGVscGVyCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgLSB3aWxsIGJlIGFibGUgdG8g
Y29tbWl0IDItNCBob3VycyBhIHdlZWsgdG8gd29ya2luZyB3aXRoIHRoZWlyIHBhcnRpY3VsYXIg
cHJvamVjdCAodGhpcyBtaWdodCBpbnZvbHZlIGpvaW5pbmcgdGhlaXIgbWFpbGluZyBsaXN0LCBp
bnN0YWxsaW5nIHRoZSBzb2Z0d2FyZSBhbmQgZXhwbG9yaW5nIGFueSBleGlzdGluZyB0ZXN0cywg
b2ZmZXJpbmcgYWR2aWNlLCB3cml0aW5nIHNvbWUgZXhhbXBsZSB0ZXN0cykKKyAtIGZlZWxzIGNv
bmZpZGVudCBpbiB1c2luZyBweXRlc3QgKGUuZy4gaGFzIGV4cGxvcmVkIGNvbW1hbmQgbGluZSBv
cHRpb25zLCBrbm93cyBob3cgdG8gd3JpdGUgcGFyYW1ldHJpemVkIHRlc3RzLCBoYXMgYW4gaWRl
YSBhYm91dCBjb25mdGVzdCBjb250ZW50cykKKyAtIGRvZXMgbm90IG5lZWQgdG8gYmUgYW4gZXhw
ZXJ0IGluIGV2ZXJ5IGFzcGVjdCEKKworYFB5dGVzdCBoZWxwZXJzLCBzaWduIHVwIGhlcmVgXyEg
KHByZWZlcmFibHkgaW4gRmVicnVhcnksIGhhcmQgZGVhZGxpbmUgMjIgTWFyY2gpCisKKworLi4g
X2BQeXRlc3QgaGVscGVycywgc2lnbiB1cCBoZXJlYDogaHR0cDovL2dvby5nbC9mb3Jtcy9ueHFB
aHFXdDFQCisKKworVGhlIGlkZWFsIHBhcnRuZXIgcHJvamVjdAorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIC0gaXMgb3BlbiBzb3VyY2UsIGFuZCBwcmVkb21p
bmFudGx5IHdyaXR0ZW4gaW4gUHl0aG9uCisgLSBoYXMgYW4gYXV0b21hdGVkL2RvY3VtZW50ZWQg
aW5zdGFsbCBwcm9jZXNzIGZvciBkZXZlbG9wZXJzCisgLSBoYXMgbW9yZSB0aGFuIG9uZSBjb3Jl
IGRldmVsb3BlcgorIC0gaGFzIGF0IGxlYXN0IG9uZSBvZmZpY2lhbCByZWxlYXNlIChlLmcuIGlz
IGF2YWlsYWJsZSBvbiBweXBpKQorIC0gaGFzIHRoZSBzdXBwb3J0IG9mIHRoZSBjb3JlIGRldmVs
b3BtZW50IHRlYW0sIGluIHRyeWluZyBvdXQgcHl0ZXN0IGFkb3B0aW9uCisgLSBoYXMgbm8gdGVz
dHMuLi4gb3IgMTAwJSB0ZXN0IGNvdmVyYWdlLi4uIG9yIHNvbWV3aGVyZSBpbiBiZXR3ZWVuIQor
CitgUGFydG5lciBwcm9qZWN0cywgc2lnbiB1cCBoZXJlYF8hIChieSAyMiBNYXJjaCkKKworCisu
LiBfYFBhcnRuZXIgcHJvamVjdHMsIHNpZ24gdXAgaGVyZWA6ICBodHRwOi8vZ29vLmdsL2Zvcm1z
L1pHeXFsSGl3azMKKworCitXaGF0IGRvZXMgaXQgbWVhbiB0byAiYWRvcHQgcHl0ZXN0Ij8KKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGNhbiBiZSBt
YW55IGRpZmZlcmVudCBkZWZpbml0aW9ucyBvZiAic3VjY2VzcyIuIFB5dGVzdCBjYW4gcnVuIG1h
bnkgYG5vc2UgYW5kIHVuaXR0ZXN0YF8gdGVzdHMgYnkgZGVmYXVsdCwgc28gdXNpbmcgcHl0ZXN0
IGFzIHlvdXIgdGVzdHJ1bm5lciBtYXkgYmUgcG9zc2libGUgZnJvbSBkYXkgMS4gSm9iIGRvbmUs
IHJpZ2h0PworCitQcm9ncmVzc2l2ZSBzdWNjZXNzIG1pZ2h0IGxvb2sgbGlrZToKKworIC0gdGVz
dHMgY2FuIGJlIHJ1biAoYnkgcHl0ZXN0KSB3aXRob3V0IGVycm9ycyAodGhlcmUgbWF5IGJlIGZh
aWx1cmVzKQorIC0gdGVzdHMgY2FuIGJlIHJ1biAoYnkgcHl0ZXN0KSB3aXRob3V0IGZhaWx1cmVz
CisgLSB0ZXN0IHJ1bm5lciBpcyBpbnRlZ3JhdGVkIGludG8gQ0kgc2VydmVyCisgLSBleGlzdGlu
ZyB0ZXN0cyBhcmUgcmV3cml0dGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHB5dGVzdCBmZWF0dXJl
cyAtIHRoaXMgY2FuIGhhcHBlbiBpbiBzZXZlcmFsIGl0ZXJhdGlvbnMsIGZvciBleGFtcGxlOgor
ICAgIC0gY2hhbmdpbmcgdG8gbmF0aXZlIGFzc2VydF8gc3RhdGVtZW50cyAocHljbWRfIGhhcyBh
IHNjcmlwdCB0byBoZWxwIHdpdGggdGhhdCwgYGBweWNvbnZlcnRfdW5pdHRlc3QucHlgYCkKKyAg
ICAtIGNoYW5naW5nIGBzZXRVcC90ZWFyRG93biBtZXRob2RzYF8gdG8gZml4dHVyZXNfCisgICAg
LSBhZGRpbmcgbWFya2Vyc18KKyAgICAtIG90aGVyIGNoYW5nZXMgdG8gcmVkdWNlIGJvaWxlcnBs
YXRlCisgLSBhc3Nlc3MgbmVlZHMgZm9yIGZ1dHVyZSB0ZXN0cyB0byBiZSB3cml0dGVuLCBlLmcu
IG5ldyBmaXh0dXJlcywgZGlzdHJpYnV0ZWRfIHRlc3RpbmcgdHdlYWtzCisKKyJTdWNjZXNzIiBz
aG91bGQgYWxzbyBpbmNsdWRlIHRoYXQgdGhlIGRldmVsb3BtZW50IHRlYW0gZmVlbHMgY29tZm9y
dGFibGUgd2l0aCB0aGVpciBrbm93bGVkZ2Ugb2YgaG93IHRvIHVzZSBweXRlc3QuIEluIGZhY3Qg
dGhpcyBpcyBwcm9iYWJseSBtb3JlIGltcG9ydGFudCB0aGFuIGFueXRoaW5nIGVsc2UuIFNvIHNw
ZW5kaW5nIGEgbG90IG9mIHRpbWUgb24gY29tbXVuaWNhdGlvbiwgZ2l2aW5nIGV4YW1wbGVzLCBl
dGMgd2lsbCBwcm9iYWJseSBiZSBpbXBvcnRhbnQgLSBib3RoIGluIHJ1bm5pbmcgdGhlIHRlc3Rz
LCBhbmQgaW4gd3JpdGluZyB0aGVtLgorCitJdCBtYXkgYmUgYWZ0ZXIgdGhlIG1vbnRoIGlzIHVw
LCB0aGUgcGFydG5lciBwcm9qZWN0IGRlY2lkZXMgdGhhdCBweXRlc3QgaXMgbm90IHJpZ2h0IGZv
ciBpdC4gVGhhdCdzIG9rYXkgLSBob3BlZnVsbHkgdGhlIHB5dGVzdCB0ZWFtIHdpbGwgYWxzbyBs
ZWFybiBzb21ldGhpbmcgYWJvdXQgaXRzIHdlYWtuZXNzZXMgb3IgZGVmaWNpZW5jaWVzLgorCisu
LiBfYG5vc2UgYW5kIHVuaXR0ZXN0YDogZmFxLmh0bWwjaG93LWRvZXMtcHl0ZXN0LXJlbGF0ZS10
by1ub3NlLWFuZC11bml0dGVzdAorLi4gX2Fzc2VydDogYXNzZXJ0cy5odG1sCisuLiBfcHljbWQ6
IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weWNtZC9vdmVydmlldworLi4gX2BzZXRVcC90
ZWFyRG93biBtZXRob2RzYDogeHVuaXRfc2V0dXAuaHRtbAorLi4gX2ZpeHR1cmVzOiBmaXh0dXJl
Lmh0bWwKKy4uIF9tYXJrZXJzOiBtYXJrZXJzLmh0bWwKKy4uIF9kaXN0cmlidXRlZDogeGRpc3Qu
aHRtbAorCisKK090aGVyIHdheXMgdG8gaGVscAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworUHJvbW90ZSEgRG8geW91ciBmYXZvdXJpdGUgb3BlbiBzb3VyY2Ug
UHl0aG9uIHByb2plY3RzIHVzZSBweXRlc3Q/IElmIG5vdCwgd2h5IG5vdCB0ZWxsIHRoZW0gYWJv
dXQgdGhpcyBwYWdlPwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL2lu
ZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWE1ZjM3NjBiNjhlMDU0MmVlOTllNzA3MmIwZDhiZThhMTI5MWEzMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QKQEAgLTAsMCArMSw2
OCBAQAorCitSZWxlYXNlIGFubm91bmNlbWVudHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIKKworICAg
CisgICByZWxlYXNlLTMuMy4wCisgICByZWxlYXNlLTMuMi41CisgICByZWxlYXNlLTMuMi40Cisg
ICByZWxlYXNlLTMuMi4zCisgICByZWxlYXNlLTMuMi4yCisgICByZWxlYXNlLTMuMi4xCisgICBy
ZWxlYXNlLTMuMi4wCisgICByZWxlYXNlLTMuMS4zCisgICByZWxlYXNlLTMuMS4yCisgICByZWxl
YXNlLTMuMS4xCisgICByZWxlYXNlLTMuMS4wCisgICByZWxlYXNlLTMuMC43CisgICByZWxlYXNl
LTMuMC42CisgICByZWxlYXNlLTMuMC41CisgICByZWxlYXNlLTMuMC40CisgICByZWxlYXNlLTMu
MC4zCisgICByZWxlYXNlLTMuMC4yCisgICByZWxlYXNlLTMuMC4xCisgICByZWxlYXNlLTMuMC4w
CisgICBzcHJpbnQyMDE2CisgICByZWxlYXNlLTIuOS4yCisgICByZWxlYXNlLTIuOS4xCisgICBy
ZWxlYXNlLTIuOS4wCisgICByZWxlYXNlLTIuOC43CisgICByZWxlYXNlLTIuOC42CisgICByZWxl
YXNlLTIuOC41CisgICByZWxlYXNlLTIuOC40CisgICByZWxlYXNlLTIuOC4zCisgICByZWxlYXNl
LTIuOC4yCisgICByZWxlYXNlLTIuNy4yCisgICByZWxlYXNlLTIuNy4xCisgICByZWxlYXNlLTIu
Ny4wCisgICByZWxlYXNlLTIuNi4zCisgICByZWxlYXNlLTIuNi4yCisgICByZWxlYXNlLTIuNi4x
CisgICByZWxlYXNlLTIuNi4wCisgICByZWxlYXNlLTIuNS4yCisgICByZWxlYXNlLTIuNS4xCisg
ICByZWxlYXNlLTIuNS4wCisgICByZWxlYXNlLTIuNC4yCisgICByZWxlYXNlLTIuNC4xCisgICBy
ZWxlYXNlLTIuNC4wCisgICByZWxlYXNlLTIuMy41CisgICByZWxlYXNlLTIuMy40CisgICByZWxl
YXNlLTIuMy4zCisgICByZWxlYXNlLTIuMy4yCisgICByZWxlYXNlLTIuMy4xCisgICByZWxlYXNl
LTIuMy4wCisgICByZWxlYXNlLTIuMi40CisgICByZWxlYXNlLTIuMi4yCisgICByZWxlYXNlLTIu
Mi4xCisgICByZWxlYXNlLTIuMi4wCisgICByZWxlYXNlLTIuMS4zCisgICByZWxlYXNlLTIuMS4y
CisgICByZWxlYXNlLTIuMS4xCisgICByZWxlYXNlLTIuMS4wCisgICByZWxlYXNlLTIuMC4zCisg
ICByZWxlYXNlLTIuMC4yCisgICByZWxlYXNlLTIuMC4xCisgICByZWxlYXNlLTIuMC4wCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjAuMC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjAuMC5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWY3NDVmYzU5YjI4OTE1MDg1OTA0YmRmMjc1YzAyODIxNDg1ZWQwOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4wLnJzdApAQCAtMCww
ICsxLDEyOSBAQAorcHkudGVzdCAyLjAuMDogYXNzZXJ0cysrLCB1bml0dGVzdCsrLCByZXBvcnRp
bmcrKywgY29uZmlnKyssIGRvY3MrKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1dlbGNvbWUgdG8g
cHl0ZXN0LTIuMC4wLCBhIG1ham9yIG5ldyByZWxlYXNlIG9mICJweS50ZXN0IiwgdGhlIHJhcGlk
CitlYXN5IFB5dGhvbiB0ZXN0aW5nIHRvb2wuICBUaGVyZSBhcmUgbWFueSBuZXcgZmVhdHVyZXMg
YW5kIGVuaGFuY2VtZW50cywKK3NlZSBiZWxvdyBmb3Igc3VtbWFyeSBhbmQgZGV0YWlsZWQgbGlz
dHMuICBBIGxvdCBvZiBsb25nLWRlcHJlY2F0ZWQgY29kZQoraGFzIGJlZW4gcmVtb3ZlZCwgcmVz
dWx0aW5nIGluIGEgbXVjaCBzbWFsbGVyIGFuZCBjbGVhbmVyCitpbXBsZW1lbnRhdGlvbi4gIFNl
ZSB0aGUgbmV3IGRvY3Mgd2l0aCBleGFtcGxlcyBoZXJlOgorCisgICAgaHR0cDovL3B5dGVzdC5v
cmcvMi4wLjAvaW5kZXguaHRtbAorCitBIG5vdGUgb24gcGFja2FnaW5nOiBweXRlc3QgdXNlZCB0
byBwYXJ0IG9mIHRoZSAicHkiIGRpc3RyaWJ1dGlvbiB1cAordW50aWwgdmVyc2lvbiBweS0xLjMu
NCBidXQgdGhpcyBoYXMgY2hhbmdlZCBub3c6ICBweXRlc3QtMi4wLjAgb25seQorY29udGFpbnMg
cHkudGVzdCByZWxhdGVkIGNvZGUgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIGJhY2t3YXJkLWNvbXBh
dGlibGUKK3RvIGV4aXN0aW5nIHRlc3QgY29kZS4gSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBweXRl
c3QsIGp1c3QgdHlwZSBvbmUgb2Y6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisgICAg
ZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitNYW55IHRoYW5rcyB0byBhbGwgaXNzdWUgcmVwb3J0
ZXJzIGFuZCBwZW9wbGUgYXNraW5nIHF1ZXN0aW9ucyBvcgorY29tcGxhaW5pbmcuICBQYXJ0aWN1
bGFyIHRoYW5rcyB0byBGbG9yaXMgQnJ1eW5vb2doZSBhbmQgUm9ubnkgUGZhbm5zY2htaWR0Citm
b3IgdGhlaXIgZ3JlYXQgY29kaW5nIGNvbnRyaWJ1dGlvbnMgYW5kIG1hbnkgb3RoZXJzIGZvciBm
ZWVkYmFjayBhbmQgaGVscC4KKworYmVzdCwKK2hvbGdlciBrcmVrZWwKKworCitOZXcgRmVhdHVy
ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gbmV3IGludm9jYXRpb25zIHRocm91Z2gg
UHl0aG9uIGludGVycHJldGVyIGFuZCBmcm9tIFB5dGhvbjo6CisKKyAgICBweXRob24gLW0gcHl0
ZXN0ICAgICAgIyBvbiBhbGwgcHl0aG9ucyA+PSAyLjUKKworICBvciBmcm9tIGEgcHl0aG9uIHBy
b2dyYW06OgorCisgICAgaW1wb3J0IHB5dGVzdCA7IHB5dGVzdC5tYWluKGFyZ2xpc3QsIHBsdWdp
bmxpc3QpCisKKyAgc2VlIGh0dHA6Ly9weXRlc3Qub3JnLzIuMC4wL3VzYWdlLmh0bWwgZm9yIGRl
dGFpbHMuCisKKy0gbmV3IGFuZCBiZXR0ZXIgcmVwb3J0aW5nIGluZm9ybWF0aW9uIGluIGFzc2Vy
dCBleHByZXNzaW9ucworICBpZiBjb21wYXJpbmcgbGlzdHMsIHNlcXVlbmNlcyBvciBzdHJpbmdz
LgorCisgIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy8yLjAuMC9hc3NlcnQuaHRtbCNuZXdyZXBvcnQK
KworLSBuZXcgY29uZmlndXJhdGlvbiB0aHJvdWdoIGluaS1maWxlcyAoc2V0dXAuY2ZnIG9yIHRv
eC5pbmkgcmVjb2duaXplZCksCisgIGZvciBleGFtcGxlOjoKKworICAgIFtweXRlc3RdCisgICAg
bm9yZWN1cnNlZGlycyA9IC5oZyBkYXRhKiAgIyBkb24ndCBldmVyIHJlY3Vyc2UgaW4gc3VjaCBk
aXJzCisgICAgYWRkb3B0cyA9IC14IC0tcHlhcmdzICAgICAgIyBhZGQgdGhlc2UgY29tbWFuZCBs
aW5lIG9wdGlvbnMgYnkgZGVmYXVsdAorCisgIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy8yLjAuMC9j
dXN0b21pemUuaHRtbAorCistIGltcHJvdmVkIHN0YW5kYXJkIHVuaXR0ZXN0IHN1cHBvcnQuICBJ
biBnZW5lcmFsIHB5LnRlc3Qgc2hvdWxkIG5vdworICBiZXR0ZXIgYmUgYWJsZSB0byBydW4gY3Vz
dG9tIHVuaXR0ZXN0LlRlc3RDYXNlcyBsaWtlIHR3aXN0ZWQgdHJpYWwKKyAgb3IgRGphbmdvIGJh
c2VkIFRlc3RDYXNlcy4gIEFsc28geW91IGNhbiBub3cgcnVuIHRoZSB0ZXN0cyBvZiBhbgorICBp
bnN0YWxsZWQgJ3VuaXR0ZXN0JyBwYWNrYWdlIHdpdGggcHkudGVzdDo6CisKKyAgICBweS50ZXN0
IC0tcHlhcmdzIHVuaXR0ZXN0CisKKy0gbmV3ICItcSIgb3B0aW9uIHdoaWNoIGRlY3JlYXNlcyB2
ZXJib3NpdHkgYW5kIHByaW50cyBhIG1vcmUKKyAgbm9zZS91bml0dGVzdC1zdHlsZSAiZG90IiBv
dXRwdXQuCisKKy0gbWFueSBtYW55IG1vcmUgZGV0YWlsZWQgaW1wcm92ZW1lbnRzIGRldGFpbHMK
KworRml4ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlMTI2IC0gaW50
cm9kdWNlIHB5LnRlc3Quc2V0X3RyYWNlKCkgdG8gdHJhY2UgZXhlY3V0aW9uIHZpYQorICBQREIg
ZHVyaW5nIHRoZSBydW5uaW5nIG9mIHRlc3RzIGV2ZW4gaWYgY2FwdHVyaW5nIGlzIG9uZ29pbmcu
CistIGZpeCBpc3N1ZTEyNCAtIG1ha2UgcmVwb3J0aW5nIG1vcmUgcmVzaWxpZW50IGFnYWluc3Qg
dGVzdHMgb3BlbmluZworICBmaWxlcyBvbiBmaWxlZGVzY3JpcHRvciAxIChzdGRvdXQpLgorLSBm
aXggaXNzdWUxMDkgLSBzaWJsaW5nIGNvbmZ0ZXN0LnB5IGZpbGVzIHdpbGwgbm90IGJlIGxvYWRl
ZC4KKyAgKGFuZCBEaXJlY3RvcnkgY29sbGVjdG9ycyBjYW5ub3QgYmUgY3VzdG9taXplZCBhbnlt
b3JlIGZyb20gYSBEaXJlY3RvcnkncworICBjb25mdGVzdC5weSAtIHRoaXMgbmVlZHMgdG8gaGFw
cGVuIGF0IGxlYXN0IG9uZSBsZXZlbCB1cCkuCistIGZpeCBpc3N1ZTg4IChmaW5kaW5nIGN1c3Rv
bSB0ZXN0IG5vZGVzIGZyb20gY29tbWFuZCBsaW5lIGFyZykKKy0gZml4IGlzc3VlOTMgc3Rkb3V0
L3N0ZGVyciBpcyBjYXB0dXJlZCB3aGlsZSBpbXBvcnRpbmcgY29uZnRlc3QucHkKKy0gZml4IGJ1
ZzogdW5pdHRlc3QgY29sbGVjdGVkIGZ1bmN0aW9ucyBub3cgYWxzbyBjYW4gaGF2ZSAicHl0ZXN0
bWFyayIKKyAgYXBwbGllZCBhdCBjbGFzcy9tb2R1bGUgbGV2ZWwKKworSW1wb3J0YW50IE5vdGVz
CistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIFRoZSB1c3VhbCB3YXkgaW4gcHJlLTIuMCB0aW1l
cyB0byB1c2UgcHkudGVzdCBpbiBweXRob24gY29kZSB3YXMKKyAgdG8gaW1wb3J0ICJweSIgYW5k
IHRoZW4gZS5nLiB1c2UgInB5LnRlc3QucmFpc2VzIiBmb3IgdGhlIGhlbHBlci4KKyAgVGhpcyBy
ZW1haW5zIHZhbGlkIGFuZCBpcyBub3QgcGxhbm5lZCB0byBiZSBkZXByZWNhdGVkLiAgSG93ZXZl
ciwKKyAgaW4gbW9zdCBleGFtcGxlcyBhbmQgaW50ZXJuYWwgY29kZSB5b3UnbGwgZmluZCAiaW1w
b3J0IHB5dGVzdCIKKyAgYW5kICJweXRlc3QucmFpc2VzIiB1c2VkIGFzIHRoZSByZWNvbW1lbmRl
ZCBkZWZhdWx0IHdheS4KKworKiBweXRlc3Qgbm93IGZpcnN0IHBlcmZvcm1zIGNvbGxlY3Rpb24g
b2YgdGhlIGNvbXBsZXRlIHRlc3Qgc3VpdGUKKyAgYmVmb3JlIHJ1bm5pbmcgYW55IHRlc3QuIFRo
aXMgY2hhbmdlcyBmb3IgZXhhbXBsZSB0aGUgc2VtYW50aWNzIG9mIHdoZW4KKyAgcHl0ZXN0X2Nv
bGxlY3RzdGFydC9weXRlc3RfY29sbGVjdHJlcG9ydCBhcmUgY2FsbGVkLiAgU29tZSBwbHVnaW5z
IG1heQorICBuZWVkIHVwZ3JhZGluZy4KKworKiBUaGUgcHl0ZXN0IHBhY2thZ2UgY29uc2lzdHMg
b2YgYSA0MDAgTE9DIGNvcmUucHkgYW5kIGFib3V0IDIwIGJ1aWx0aW4gcGx1Z2lucywKKyAgc3Vt
bWluZyB1cCB0byByb3VnaGx5IDUwMDAgTE9DcywgaW5jbHVkaW5nIGRvY3N0cmluZ3MuIFRvIGJl
IGZhaXIsIGl0IGFsc28KKyAgdXNlcyBnZW5lcmljIGNvZGUgZnJvbSB0aGUgInB5bGliIiwgYW5k
IHRoZSBuZXcgInB5IiBwYWNrYWdlIHRvIGhlbHAKKyAgd2l0aCBmaWxlc3lzdGVtIGFuZCBpbnRy
b3NwZWN0aW9uL2NvZGUgbWFuaXB1bGF0aW9uLgorCisoSW5jb21wYXRpYmxlKSBSZW1vdmFscwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBweS50ZXN0LmNvbmZpZyBpcyBub3cg
b25seSBhdmFpbGFibGUgaWYgeW91IGFyZSBpbiBhIHRlc3QgcnVuLgorCistIHRoZSBmb2xsb3dp
bmcgKG1vc3RseSBhbHJlYWR5IGRlcHJlY2F0ZWQpIGZ1bmN0aW9uYWxpdHkgd2FzIHJlbW92ZWQ6
CisKKyAgLSByZW1vdmVkIHN1cHBvcnQgZm9yIE1vZHVsZS9DbGFzcy8uLi4gY29sbGVjdGlvbiBu
b2RlIGRlZmluaXRpb25zCisgICAgaW4gY29uZnRlc3QucHkgZmlsZXMuICBUaGV5IHdpbGwgY2F1
c2Ugbm90aGluZyBzcGVjaWFsLgorICAtIHJlbW92ZWQgc3VwcG9ydCBmb3IgY2FsbGluZyB0aGUg
cHJlLTEuMCBjb2xsZWN0aW9uIEFQSSBvZiAicnVuKCkiIGFuZCAiam9pbiIKKyAgLSByZW1vdmVk
IHJlYWRpbmcgb3B0aW9uIHZhbHVlcyBmcm9tIGNvbmZ0ZXN0LnB5IGZpbGVzIG9yIGVudiB2YXJp
YWJsZXMuCisgICAgVGhpcyBjYW4gbm93IGJlIGRvbmUgbXVjaCBtdWNoIGJldHRlciBhbmQgZWFz
aWVyIHRocm91Z2ggdGhlIGluaS1maWxlCisgICAgbWVjaGFuaXNtIGFuZCB0aGUgImFkZG9wdHMi
IGVudHJ5IGluIHBhcnRpY3VsYXIuCisgIC0gcmVtb3ZlZCB0aGUgImRpc2FibGVkIiBhdHRyaWJ1
dGUgaW4gdGVzdCBjbGFzc2VzLiAgVXNlIHRoZSBza2lwcGluZworICAgIGFuZCBweXRlc3RtYXJr
IG1lY2hhbmlzbSB0byBza2lwIG9yIHhmYWlsIGEgdGVzdCBjbGFzcy4KKworLSBweS50ZXN0LmNv
bGxlY3QuRGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0IGFueW1vcmUgYW5kIGl0CisgIGlzIG5vdCBw
b3NzaWJsZSB0byBwcm92aWRlIGFuIG93biAiRGlyZWN0b3J5IiBvYmplY3QuCisgIElmIHlvdSBo
YXZlIHVzZWQgdGhpcyBhbmQgZG9uJ3Qga25vdyB3aGF0IHRvIGRvLCBnZXQKKyAgaW4gY29udGFj
dC4gIFdlJ2xsIGZpZ3VyZSBzb21ldGhpbmcgb3V0LgorCisgIE5vdGUgdGhhdCBweXRlc3RfY29s
bGVjdF9kaXJlY3RvcnkoKSBpcyBzdGlsbCBjYWxsZWQgYnV0CisgIGFueSByZXR1cm4gdmFsdWUg
d2lsbCBiZSBpZ25vcmVkLiAgVGhpcyBhbGxvd3MgdG8ga2VlcAorICBvbGQgY29kZSB3b3JraW5n
IHRoYXQgcGVyZm9ybWVkIGZvciBleGFtcGxlICJweS50ZXN0LnNraXAoKSIKKyAgaW4gY29sbGVj
dCgpIHRvIHByZXZlbnQgcmVjdXJzaW9uIGludG8gZGlyZWN0b3J5IHRyZWVzCisgIGlmIGEgY2Vy
dGFpbiBkZXBlbmRlbmN5IG9yIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgbWlzc2luZy4KKworCitz
ZWUgOnJlZjpgY2hhbmdlbG9nYCBmb3IgbW9yZSBkZXRhaWxlZCBjaGFuZ2VzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjEucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNDFl
Zjk0MzVlZDhkZTQwYTViZjhlMDc2YWVlNjVjNTczZGY3MDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjAuMS5yc3QKQEAgLTAsMCArMSw2
NyBAQAorcHkudGVzdCAyLjAuMTogYnVnIGZpeGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2Vs
Y29tZSB0byBweXRlc3QtMi4wLjEsIGEgbWFpbnRlbmFuY2UgYW5kIGJ1ZyBmaXggcmVsZWFzZSBv
ZiBweXRlc3QsCithIG1hdHVyZSB0ZXN0aW5nIHRvb2wgZm9yIFB5dGhvbiwgc3VwcG9ydGluZyBD
UHl0aG9uIDIuNC0zLjIsIEp5dGhvbgorYW5kIGxhdGVzdCBQeVB5IGludGVycHJldGVycy4gIFNl
ZSBleHRlbnNpdmUgZG9jcyB3aXRoIHRlc3RlZCBleGFtcGxlcyBoZXJlOgorCisgICAgaHR0cDov
L3B5dGVzdC5vcmcvCisKK0lmIHlvdSB3YW50IHRvIGluc3RhbGwgb3IgdXBncmFkZSBweXRlc3Qs
IGp1c3QgdHlwZSBvbmUgb2Y6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0ICMgb3IKKyAg
ICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK01hbnkgdGhhbmtzIHRvIGFsbCBpc3N1ZSByZXBv
cnRlcnMgYW5kIHBlb3BsZSBhc2tpbmcgcXVlc3Rpb25zIG9yCitjb21wbGFpbmluZy4gIFBhcnRp
Y3VsYXIgdGhhbmtzIHRvIEZsb3JpcyBCcnV5bm9vZ2hlIGFuZCBSb25ueSBQZmFubnNjaG1pZHQK
K2ZvciB0aGVpciBncmVhdCBjb2RpbmcgY29udHJpYnV0aW9ucyBhbmQgbWFueSBvdGhlcnMgZm9y
IGZlZWRiYWNrIGFuZCBoZWxwLgorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIGJl
dHdlZW4gMi4wLjAgYW5kIDIuMC4xCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gcmVmaW5lIGFuZCB1bmlmeSBpbml0aWFsIGNhcHR1cmluZyBzbyB0
aGF0IGl0IHdvcmtzIG5pY2VseQorICBldmVuIGlmIHRoZSBsb2dnaW5nIG1vZHVsZSBpcyB1c2Vk
IG9uIGFuIGVhcmx5LWxvYWRlZCBjb25mdGVzdC5weQorICBmaWxlIG9yIHBsdWdpbi4KKy0gZml4
IGlzc3VlMTIgLSBzaG93IHBsdWdpbiB2ZXJzaW9ucyB3aXRoICItLXZlcnNpb24iIGFuZAorICAi
LS10cmFjZWNvbmZpZyIgYW5kIGFsc28gZG9jdW1lbnQgaG93IHRvIGFkZCBleHRyYSBpbmZvcm1h
dGlvbgorICB0byByZXBvcnRpbmcgdGVzdCBoZWFkZXIKKy0gZml4IGlzc3VlMTcgKGltcG9ydC0q
IHJlcG9ydGluZyBpc3N1ZSBvbiBweXRob24zKSBieQorICByZXF1aXJpbmcgcHk+MS40LjAgKDEu
NC4xIGlzIGdvaW5nIHRvIGluY2x1ZGUgaXQpCistIGZpeCBpc3N1ZTEwIChudW1weSBhcnJheXMg
dHJ1dGggY2hlY2tpbmcpIGJ5IHJlZmluaW5nCisgIGFzc2VydGlvbiBpbnRlcnByZXRhdGlvbiBp
biBweSBsaWIKKy0gZml4IGlzc3VlMTU6IG1ha2Ugbm9zZSBjb21wYXRpYmlsaXR5IHRlc3RzIGNv
bXBhdGlibGUKKyAgd2l0aCBweXRob24zIChub3cgdGhhdCBub3NlLTEuMCBzdXBwb3J0cyBweXRo
b24zKQorLSByZW1vdmUgc29tZXdoYXQgc3VycHJpc2luZyAic2FtZS1jb25mdGVzdCIgZGV0ZWN0
aW9uIGJlY2F1c2UKKyAgaXQgaWdub3JlcyBjb25mdGVzdC5weSB3aGVuIHRoZXkgYXBwZWFyIGlu
IHNldmVyYWwgc3ViZGlycy4KKy0gaW1wcm92ZSBhc3NlcnRpb25zICgibm90IGluIiksIHRoYW5r
cyBGbG9yaXMgQnJ1eW5vb2doZQorLSBpbXByb3ZlIGJlaGF2aW91ci93YXJuaW5ncyB3aGVuIHJ1
bm5pbmcgb24gdG9wIG9mICJweXRob24gLU9PIgorICAoYXNzZXJ0aW9ucyBhbmQgZG9jc3RyaW5n
cyBhcmUgdHVybmVkIG9mZiwgbGVhZGluZyB0byBwb3RlbnRpYWwKKyAgZmFsc2UgcG9zaXRpdmVz
KQorLSBpbnRyb2R1Y2UgYSBweXRlc3RfY21kbGluZV9wcm9jZXNzYXJncyhhcmdzKSBob29rCisg
IHRvIGFsbG93IGR5bmFtaWMgY29tcHV0YXRpb24gb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4K
KyAgVGhpcyBmaXhlcyBhIHJlZ3Jlc3Npb24gYmVjYXVzZSBweS50ZXN0IHByaW9yIHRvIDIuMAor
ICBhbGxvd2VkIHRvIHNldCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmcm9tIGNvbmZ0ZXN0LnB5Cisg
IGZpbGVzIHdoaWNoIHNvIGZhciBweXRlc3QtMi4wIG9ubHkgYWxsb3dlZCBmcm9tIGluaS1maWxl
cyBub3cuCistIGZpeCBpc3N1ZTc6IGFzc2VydCBmYWlsdXJlcyBpbiBkb2N0ZXN0IG1vZHVsZXMu
CisgIHVuZXhwZWN0ZWQgZmFpbHVyZXMgaW4gZG9jdGVzdHMgd2lsbCBub3QgZ2VuZXJhbGx5Cisg
IHNob3cgbmljZXIsIGkuZS4gd2l0aGluIHRoZSBkb2N0ZXN0IGZhaWxpbmcgY29udGV4dC4KKy0g
Zml4IGlzc3VlOTogc2V0dXAvdGVhcmRvd24gZnVuY3Rpb25zIGZvciBhbiB4ZmFpbC1tYXJrZWQK
KyAgdGVzdCB3aWxsIHJlcG9ydCBhcyB4ZmFpbCBpZiB0aGV5IGZhaWwgYnV0IHJlcG9ydCBhcyBu
b3JtYWxseQorICBwYXNzaW5nIChub3QgeHBhc3NpbmcpIGlmIHRoZXkgc3VjY2VlZC4gIFRoaXMg
b25seSBpcyB0cnVlCisgIGZvciAiZGlyZWN0IiBzZXR1cC90ZWFyZG93biBpbnZvY2F0aW9ucyBi
ZWNhdXNlIHRlYXJkb3duX2NsYXNzLworICB0ZWFyZG93bl9tb2R1bGUgY2Fubm90IGNsb3NlbHkg
cmVsYXRlIHRvIGEgc2luZ2xlIHRlc3QuCistIGZpeCBpc3N1ZTE0OiBubyBsb2dnaW5nIGVycm9y
cyBhdCBwcm9jZXNzIGV4aXQKKy0gcmVmaW5lbWVudHMgdG8gImNvbGxlY3RpbmciIG91dHB1dCBv
biBub24tdHR5cworLSByZWZpbmUgaW50ZXJuYWwgcGx1Z2luIHJlZ2lzdHJhdGlvbiBhbmQgLS10
cmFjZWNvbmZpZyBvdXRwdXQKKy0gaW50cm9kdWNlIGEgbWVjaGFuaXNtIHRvIHByZXZlbnQvdW5y
ZWdpc3RlciBwbHVnaW5zIGZyb20gdGhlCisgIGNvbW1hbmQgbGluZSwgc2VlIGh0dHA6Ly9weXRl
c3Qub3JnL2xhdGVzdC9wbHVnaW5zLmh0bWwjY21kdW5yZWdpc3RlcgorLSBhY3RpdmF0ZSByZXN1
bHRsb2cgcGx1Z2luIGJ5IGRlZmF1bHQKKy0gZml4IHJlZ3Jlc3Npb24gd3J0IHlpZWxkZWQgdGVz
dHMgd2hpY2ggZHVlIHRvIHRoZQorICBjb2xsZWN0aW9uLWJlZm9yZS1ydW5uaW5nIHNlbWFudGlj
cyB3ZXJlIG5vdAorICBzZXR1cCBhcyB3aXRoIHB5dGVzdCAxLjMuNC4gIE5vdGUsIGhvd2V2ZXIs
IHRoYXQKKyAgdGhlIHJlY29tbWVuZGVkIGFuZCBtdWNoIGNsZWFuZXIgd2F5IHRvIGRvIHRlc3QK
KyAgcGFyYW1ldHJpemF0aW9uIHJlbWFpbnMgdGhlICJweXRlc3RfZ2VuZXJhdGVfdGVzdHMiCisg
IG1lY2hhbmlzbSwgc2VlIHRoZSBkb2NzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi4wLjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi4wLjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxZjQ0ZjM0ZjRmN2RmMjEzMTYyMGUyNDNk
MDJmYTBjZGVhY2Q1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjAuMi5yc3QKQEAgLTAsMCArMSw3MyBAQAorcHkudGVzdCAyLjAuMjog
YnVnIGZpeGVzLCBpbXByb3ZlZCB4ZmFpbC9za2lwIGV4cHJlc3Npb25zLCBzcGVlZCB1cHMKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCitXZWxjb21lIHRvIHB5dGVzdC0yLjAuMiwgYSBtYWludGVuYW5j
ZSBhbmQgYnVnIGZpeCByZWxlYXNlIG9mIHB5dGVzdCwKK2EgbWF0dXJlIHRlc3RpbmcgdG9vbCBm
b3IgUHl0aG9uLCBzdXBwb3J0aW5nIENQeXRob24gMi40LTMuMiwgSnl0aG9uCithbmQgbGF0ZXN0
IFB5UHkgaW50ZXJwcmV0ZXJzLiAgU2VlIHRoZSBleHRlbnNpdmUgZG9jcyB3aXRoIHRlc3RlZCBl
eGFtcGxlcyBoZXJlOgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK0lmIHlvdSB3YW50IHRv
IGluc3RhbGwgb3IgdXBncmFkZSBweXRlc3QsIGp1c3QgdHlwZSBvbmUgb2Y6OgorCisgICAgcGlw
IGluc3RhbGwgLVUgcHl0ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK01h
bnkgdGhhbmtzIHRvIGFsbCBpc3N1ZSByZXBvcnRlcnMgYW5kIHBlb3BsZSBhc2tpbmcgcXVlc3Rp
b25zCitvciBjb21wbGFpbmluZywgcGFydGljdWxhcmx5IEp1cmtvIGZvciBoaXMgaW5zaXN0ZW5j
ZSwKK0xhdXJhLCBWaWN0b3IgYW5kIEJyaWFubmEgZm9yIGhlbHBpbmcgd2l0aCBpbXByb3ZpbmcK
K2FuZCBSb25ueSBmb3IgaGlzIGdlbmVyYWwgYWR2aXNlLgorCitiZXN0LAoraG9sZ2VyIGtyZWtl
bAorCitDaGFuZ2VzIGJldHdlZW4gMi4wLjEgYW5kIDIuMC4yCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gdGFja2xlIGlzc3VlMzIgLSBzcGVlZCB1
cCB0ZXN0IHJ1bnMgb2YgdmVyeSBxdWljayB0ZXN0IGZ1bmN0aW9ucworICBieSByZWR1Y2luZyB0
aGUgcmVsYXRpdmUgb3ZlcmhlYWQKKworLSBmaXggaXNzdWUzMCAtIGV4dGVuZGVkIHhmYWlsL3Nr
aXBpZiBoYW5kbGluZyBhbmQgaW1wcm92ZWQgcmVwb3J0aW5nLgorICBJZiB5b3UgaGF2ZSBhIHN5
bnRheCBlcnJvciBpbiB5b3VyIHNraXAveGZhaWwKKyAgZXhwcmVzc2lvbnMgeW91IG5vdyBnZXQg
bmljZSBlcnJvciByZXBvcnRzLgorCisgIEFsc28geW91IGNhbiBub3cgYWNjZXNzIG1vZHVsZSBn
bG9iYWxzIGZyb20geGZhaWwvc2tpcGlmCisgIGV4cHJlc3Npb25zIHNvIHRoYXQgdGhpcyBmb3Ig
ZXhhbXBsZSB3b3JrcyBub3c6OgorCisgICAgaW1wb3J0IHB5dGVzdAorICAgIGltcG9ydCBteW1v
ZHVsZQorICAgIEBweXRlc3QubWFyay5za2lwaWYoIm15bW9kdWxlLl9fdmVyc2lvbl9fWzBdID09
ICIxIikKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICBwYXNzCisKKyAgVGhpcyB3
aWxsIG5vdCBydW4gdGhlIHRlc3QgZnVuY3Rpb24gaWYgdGhlIG1vZHVsZSdzIHZlcnNpb24gc3Ry
aW5nCisgIGRvZXMgbm90IHN0YXJ0IHdpdGggYSAiMSIuICBOb3RlIHRoYXQgc3BlY2lmeWluZyBh
IHN0cmluZyBpbnN0ZWFkCisgIG9mIGEgYm9vbGVhbiBleHByZXNzaW9ucyBhbGxvd3MgcHkudGVz
dCB0byByZXBvcnQgbWVhbmluZ2Z1bCBpbmZvcm1hdGlvbgorICB3aGVuIHN1bW1hcml6aW5nIGEg
dGVzdCBydW4gYXMgdG8gd2hhdCBjb25kaXRpb25zIGxlYWQgdG8gc2tpcHBpbmcKKyAgKG9yIHhm
YWlsLWluZykgdGVzdHMuCisKKy0gZml4IGlzc3VlMjggLSBzZXR1cF9tZXRob2QgYW5kIHB5dGVz
dF9nZW5lcmF0ZV90ZXN0cyB3b3JrIHRvZ2V0aGVyCisgIFRoZSBzZXR1cF9tZXRob2QgZml4dHVy
ZSBtZXRob2Qgbm93IGdldHMgY2FsbGVkIGFsc28gZm9yCisgIHRlc3QgZnVuY3Rpb24gaW52b2Nh
dGlvbnMgZ2VuZXJhdGVkIGZyb20gdGhlIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cworICBob29rLgor
CistIGZpeCBpc3N1ZTI3IC0gY29sbGVjdG9ubHkgYW5kIGtleXdvcmQtc2VsZWN0aW9uICgtaykg
bm93IHdvcmsgdG9nZXRoZXIKKyAgQWxzbywgaWYgeW91IGRvICJweS50ZXN0IC0tY29sbGVjdG9u
bHkgLXEiIHlvdSBub3cgZ2V0IGEgZmxhdCBsaXN0CisgIG9mIHRlc3QgaWRzIHRoYXQgeW91IGNh
biB1c2UgdG8gcGFzdGUgdG8gdGhlIHB5LnRlc3QgY29tbWFuZGxpbmUKKyAgaW4gb3JkZXIgdG8g
ZXhlY3V0ZSBhIHBhcnRpY3VsYXIgdGVzdC4KKworLSBmaXggaXNzdWUyNSBhdm9pZCByZXBvcnRl
ZCBwcm9ibGVtcyB3aXRoIC0tcGRiIGFuZCBweXRob24zLjIvZW5jb2RpbmdzIG91dHB1dAorCist
IGZpeCBpc3N1ZTIzIC0gdG1wZGlyIGFyZ3VtZW50IG5vdyB3b3JrcyBvbiBQeXRob24zLjIgYW5k
IFdpbmRvd3NYUAorICBTdGFydGluZyB3aXRoIFB5dGhvbjMuMiBvcy5zeW1saW5rIG1heSBiZSBz
dXBwb3J0ZWQuIEJ5IHJlcXVpcmluZworICBhIG5ld2VyIHB5IGxpYiB2ZXJzaW9uIHRoZSBweS5w
YXRoLmxvY2FsKCkgaW1wbGVtZW50YXRpb24gYWNrbm93bGVkZ2VzCisgIHRoaXMuCisKKy0gZml4
ZWQgdHlwb3MgaW4gdGhlIGRvY3MgKHRoYW5rcyBWaWN0b3IgR2FyY2lhLCBCcmlhbm5hIExhdWdo
ZXIpIGFuZCBwYXJ0aWN1bGFyCisgIHRoYW5rcyB0byBMYXVyYSBDcmVpZ2h0b24gd2hvIGFsc28g
cmV2aWV3ZWQgcGFydHMgb2YgdGhlIGRvY3VtZW50YXRpb24uCisKKy0gZml4IHNsaWdodGx5IHdy
b25nIG91dHB1dCBvZiB2ZXJib3NlIHByb2dyZXNzIHJlcG9ydGluZyBmb3IgY2xhc3NlcworICAo
dGhhbmtzIEFtYXVyeSkKKworLSBtb3JlIHByZWNpc2UgKGF2b2lkaW5nIG9mKSBkZXByZWNhdGlv
biB3YXJuaW5ncyBmb3Igbm9kZS5DbGFzc3xGdW5jdGlvbiBhY2Nlc3NlcworCistIGF2b2lkIHN0
ZCB1bml0dGVzdCBhc3NlcnRpb24gaGVscGVyIGNvZGUgaW4gdHJhY2ViYWNrcyAodGhhbmtzIFJv
bm55KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4w
LjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjMucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliYmZkYWFiMzYxYWE2OWNiZjA2MjQwMWM1MjFlYzA0ZTZlNjY1ODYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjAuMy5y
c3QKQEAgLTAsMCArMSw0MCBAQAorcHkudGVzdCAyLjAuMzogYnVnIGZpeGVzIGFuZCBzcGVlZCB1
cHMgCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworV2VsY29tZSB0byBweXRlc3QtMi4wLjMsIGEgbWFp
bnRlbmFuY2UgYW5kIGJ1ZyBmaXggcmVsZWFzZSBvZiBweXRlc3QsCithIG1hdHVyZSB0ZXN0aW5n
IHRvb2wgZm9yIFB5dGhvbiwgc3VwcG9ydGluZyBDUHl0aG9uIDIuNC0zLjIsIEp5dGhvbgorYW5k
IGxhdGVzdCBQeVB5IGludGVycHJldGVycy4gIFNlZSB0aGUgZXh0ZW5zaXZlIGRvY3Mgd2l0aCB0
ZXN0ZWQgZXhhbXBsZXMgaGVyZToKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitJZiB5b3Ug
d2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBqdXN0IHR5cGUgb25lIG9mOjoKKwor
ICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVz
dAorCitUaGVyZSBhbHNvIGlzIGEgYnVnZml4IHJlbGVhc2UgMS42IG9mIHB5dGVzdC14ZGlzdCwg
dGhlIHBsdWdpbgordGhhdCBlbmFibGVzIHNlYW1sZXNzIGRpc3RyaWJ1dGVkIGFuZCAibG9vcG9u
ZmFpbCIgdGVzdGluZyBmb3IgUHl0aG9uLgorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCitDaGFu
Z2VzIGJldHdlZW4gMi4wLjIgYW5kIDIuMC4zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlMzg6IG5pY2VyIHRyYWNlYmFja3Mgb24g
Y2FsbHMgdG8gaG9va3MsIHBhcnRpY3VsYXJseSBlYXJseQorICBjb25maWd1cmUvc2Vzc2lvbnN0
YXJ0IG9uZXMKKworLSBmaXggbWlzc2luZyBza2lwIHJlYXNvbi9tZXRhIGluZm9ybWF0aW9uIGlu
IGp1bml0eG1sIGZpbGVzLCByZXBvcnRlZAorICB2aWEgaHR0cDovL2xpc3RzLmlkeWxsLm9yZy9w
aXBlcm1haWwvdGVzdGluZy1pbi1weXRob24vMjAxMS1NYXJjaC8wMDM5MjguaHRtbAorCistIGZp
eCBpc3N1ZTM0OiBhdm9pZCBjb2xsZWN0aW9uIGZhaWx1cmUgd2l0aCAidGVzdCIgcHJlZml4ZWQg
Y2xhc3NlcworICBkZXJpdmluZyBmcm9tIG9iamVjdC4KKworLSBkb24ndCByZXF1aXJlIHpsaWIg
KGFuZCBvdGhlciBsaWJzKSBmb3IgZ2Vuc2NyaXB0IHBsdWdpbiB3aXRob3V0CisgIC0tZ2Vuc2Ny
aXB0IGFjdHVhbGx5IGJlaW5nIHVzZWQuCisKKy0gc3BlZWQgdXAgc2tpcHMgKGJ5IG5vdCBkb2lu
ZyBhIGZ1bGwgdHJhY2ViYWNrIHJlcHJlc2VudGF0aW9uCisgIGludGVybmFsbHkpCisKKy0gZml4
IGlzc3VlMzc6IGF2b2lkIGludmFsaWQgY2hhcmFjdGVycyBpbiBqdW5pdHhtbCdzIG91dHB1dAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjEuMC5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjEuMC5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNTQ4YWMyZmY0MmQ2ZjBlNmJiZWE2MjAxYmEwMmEzNzk5YWZjNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4wLnJzdApA
QCAtMCwwICsxLDQ3IEBACitweS50ZXN0IDIuMS4wOiBwZXJmZWN0ZWQgYXNzZXJ0aW9ucyBhbmQg
YnVnIGZpeGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2VsY29tZSB0byB0aGUgcmVsZWFzZSBv
ZiBweXRlc3QtMi4xLCBhIG1hdHVyZSB0ZXN0aW5nIHRvb2wgZm9yIFB5dGhvbiwKK3N1cHBvcnRp
bmcgQ1B5dGhvbiAyLjQtMy4yLCBKeXRob24gYW5kIGxhdGVzdCBQeVB5IGludGVycHJldGVycy4g
IFNlZQordGhlIGltcHJvdmVkIGV4dGVuc2l2ZSBkb2NzIChub3cgYWxzbyBhcyBQREYhKSB3aXRo
IHRlc3RlZCBleGFtcGxlcyBoZXJlOgorCisgICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitUaGUg
c2luZ2xlIGJpZ2dlc3QgbmV3cyBhYm91dCB0aGlzIHJlbGVhc2UgYXJlICoqcGVyZmVjdGVkIGFz
c2VydGlvbnMqKgorY291cnRlc3kgb2YgQmVuamFtaW4gUGV0ZXJzb24uICBZb3UgY2FuIG5vdyBz
YWZlbHkgdXNlIGBgYXNzZXJ0YGAKK3N0YXRlbWVudHMgaW4gdGVzdCBtb2R1bGVzIHdpdGhvdXQg
aGF2aW5nIHRvIHdvcnJ5IGFib3V0IHNpZGUgZWZmZWN0cworb3IgcHl0aG9uIG9wdGltaXphdGlv
biAoIi1PTyIpIG9wdGlvbnMuICBUaGlzIGlzIGFjaGlldmVkIGJ5IHJld3JpdGluZworYXNzZXJ0
IHN0YXRlbWVudHMgaW4gdGVzdCBtb2R1bGVzIHVwb24gaW1wb3J0LCB1c2luZyBhIFBFUDMwMiBo
b29rLgorU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2Fzc2VydC5odG1sI2FkdmFuY2VkLWFzc2VydGlv
bi1pbnRyb3NwZWN0aW9uIGZvcgorZGV0YWlsZWQgaW5mb3JtYXRpb24uICBUaGUgd29yayBoYXMg
YmVlbiBwYXJ0bHkgc3BvbnNvcmVkIGJ5IG15IGNvbXBhbnksCittZXJsaW51eCBHbWJILgorCitG
b3IgZnVydGhlciBkZXRhaWxzIG9uIGJ1ZyBmaXhlcyBhbmQgc21hbGxlciBlbmhhbmNlbWVudHMg
c2VlIGJlbG93LgorCitJZiB5b3Ugd2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBq
dXN0IHR5cGUgb25lIG9mOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAg
ZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitiZXN0LAoraG9sZ2VyIGtyZWtlbCAvIGh0dHA6Ly9t
ZXJsaW51eC5ldQorCitDaGFuZ2VzIGJldHdlZW4gMi4wLjMgYW5kIDIuMS4wCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlNTMgY2Fs
bCBub3Nlc3R5bGUgc2V0dXAgZnVuY3Rpb25zIHdpdGggY29ycmVjdCBvcmRlcmluZworLSBmaXgg
aXNzdWU1OCBhbmQgaXNzdWU1OTogbmV3IGFzc2VydGlvbiBjb2RlIGZpeGVzCistIG1lcmdlIEJl
bmphbWluJ3MgYXNzZXJ0aW9ucmV3cml0ZSBicmFuY2g6IG5vdyBhc3NlcnRpb25zCisgIGZvciB0
ZXN0IG1vZHVsZXMgb24gcHl0aG9uIDIuNiBhbmQgYWJvdmUgYXJlIGRvbmUgYnkgcmV3cml0aW5n
CisgIHRoZSBBU1QgYW5kIHNhdmluZyB0aGUgcHljIGZpbGUgYmVmb3JlIHRoZSB0ZXN0IG1vZHVs
ZSBpcyBpbXBvcnRlZC4KKyAgc2VlIGRvYy9hc3NlcnQudHh0IGZvciBtb3JlIGluZm8uCistIGZp
eCBpc3N1ZTQzOiBpbXByb3ZlIGRvY3Rlc3RzIHdpdGggYmV0dGVyIHRyYWNlYmFjayByZXBvcnRp
bmcgb24KKyAgdW5leHBlY3RlZCBleGNlcHRpb25zCistIGZpeCBpc3N1ZTQ3OiB0aW1pbmcgb3V0
cHV0IGluIGp1bml0eG1sIGZvciB0ZXN0IGNhc2VzIGlzIG5vdyBjb3JyZWN0CistIGZpeCBpc3N1
ZTQ4OiB0eXBvIGluIE1hcmtJbmZvIHJlcHIgbGVhZGluZyB0byBleGNlcHRpb24KKy0gZml4IGlz
c3VlNDk6IGF2b2lkIGNvbmZ1c2luZyBlcnJvciB3aGVuIGluaXRpYWxpemF0aW9uIHBhcnRpYWxs
eSBmYWlscworLSBmaXggaXNzdWU0NDogZW52L3VzZXJuYW1lIGV4cGFuc2lvbiBmb3IganVuaXR4
bWwgZmlsZSBwYXRoCistIHNob3cgcmVsZWFzZWxldmVsIGluZm9ybWF0aW9uIGluIHRlc3QgcnVu
cyBmb3IgcHlweQorLSByZXdvcmtlZCBkb2MgcGFnZXMgZm9yIGJldHRlciBuYXZpZ2F0aW9uIGFu
ZCBQREYgZ2VuZXJhdGlvbgorLSByZXBvcnQgS2V5Ym9hcmRJbnRlcnJ1cHQgZXZlbiBpZiBpbnRl
cnJ1cHRlZCBkdXJpbmcgc2Vzc2lvbiBzdGFydHVwCistIGZpeCBpc3N1ZSAzNSAtIHByb3ZpZGUg
UERGIGRvYyB2ZXJzaW9uIGFuZCBkb3dubG9hZCBsaW5rIGZyb20gaW5kZXggcGFnZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjEucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjEucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVj
ZGQ2OWY0ZGM5M2Y1NjA2ZWJiODJlMTdhNjAyYjk5ZWU5YWVhNjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjEuMS5yc3QKQEAgLTAsMCAr
MSwzNyBAQAorcHkudGVzdCAyLjEuMTogYXNzZXJ0aW9uIGZpeGVzIGFuZCBpbXByb3ZlZCBqdW5p
dHhtbCBvdXRwdXQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4xLjEgaXMgYSBiYWNr
d2FyZCBjb21wYXRpYmxlIG1haW50ZW5hbmNlIHJlbGVhc2Ugb2YgdGhlCitwb3B1bGFyIHB5LnRl
c3QgdGVzdGluZyB0b29sLiAgU2VlIGV4dGVuc2l2ZSBkb2NzIHdpdGggZXhhbXBsZXMgaGVyZToK
KworICAgICBodHRwOi8vcHl0ZXN0Lm9yZy8KKworTW9zdCBidWcgZml4ZXMgYWRkcmVzcyByZW1h
aW5pbmcgaXNzdWVzIHdpdGggdGhlIHBlcmZlY3RlZCBhc3NlcnRpb25zCitpbnRyb2R1Y2VkIHdp
dGggMi4xLjAgLSBtYW55IHRoYW5rcyB0byB0aGUgYnVnIHJlcG9ydGVycyBhbmQgdG8gQmVuamFt
aW4KK1BldGVyc29uIGZvciBoZWxwaW5nIHRvIGZpeCB0aGVtLiAgQWxzbywganVuaXR4bWwgb3V0
cHV0IG5vdyBwcm9kdWNlcworc3lzdGVtLW91dC9lcnIgdGFncyB3aGljaCBsZWFkIHRvIGJldHRl
ciBkaXNwbGF5cyBvZiB0cmFjZWJhY2tzIHdpdGggSmVua2lucy4KKworQWxzbyBhIHF1aWNrIG5v
dGUgdG8gcGFja2FnZSBtYWludGFpbmVycyBhbmQgb3RoZXJzIGludGVyZXN0ZWQ6IHRoZXJlIG5v
dworaXMgYSAicHl0ZXN0IiBtYW4gcGFnZSB3aGljaCBjYW4gYmUgZ2VuZXJhdGVkIHdpdGggIm1h
a2UgbWFuIiBpbiBkb2MvLgorCitJZiB5b3Ugd2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0
ZXN0LCBqdXN0IHR5cGUgb25lIG9mOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9y
CisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitiZXN0LAoraG9sZ2VyIGtyZWtlbCAvIGh0
dHA6Ly9tZXJsaW51eC5ldQorCitDaGFuZ2VzIGJldHdlZW4gMi4xLjAgYW5kIDIuMS4xCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3Vl
NjQgLyBweXRlc3Quc2V0X3RyYWNlIG5vdyB3b3JrcyB3aXRoaW4gcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzIGhvb2tzCistIGZpeCBpc3N1ZTYwIC8gZml4IGVycm9yIGNvbmRpdGlvbnMgaW52b2x2aW5n
IHRoZSBjcmVhdGlvbiBvZiBfX3B5Y2FjaGVfXworLSBmaXggaXNzdWU2MyAvIGFzc2VydGlvbiBy
ZXdyaXRpbmcgb24gaW5zZXJ0cyBpbnZvbHZpbmcgc3RyaW5ncyBjb250YWluaW5nICclJworLSBm
aXggYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBjYWxscyB3aXRoIGEgKiogYXJnCistIGRvbid0IGNh
Y2hlIHJld3JpdHRlbiBtb2R1bGVzIGlmIGJ5dGVjb2RlIGdlbmVyYXRpb24gaXMgZGlzYWJsZWQK
Ky0gZml4IGFzc2VydGlvbiByZXdyaXRpbmcgaW4gcmVhZC1vbmx5IGRpcmVjdG9yaWVzCistIGZp
eCBpc3N1ZTU5OiBwcm92aWRlIHN5c3RlbS1vdXQvZXJyIHRhZ3MgZm9yIGp1bml0eG1sIG91dHB1
dAorLSBmaXggaXNzdWU2MTogYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBib29sZWFuIG9wZXJhdGlv
bnMgd2l0aCAzIG9yIG1vcmUgb3BlcmFuZHMKKy0geW91IGNhbiBub3cgYnVpbGQgYSBtYW4gcGFn
ZSB3aXRoICJjZCBkb2MgOyBtYWtlIG1hbiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4xLjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxYjc1OTFkMzY2NzAwNGFlOTYyZjY4
MmZlNmNlZDgzNWM0YjFiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0yLjEuMi5yc3QKQEAgLTAsMCArMSwzMyBAQAorcHkudGVzdCAyLjEu
MjogYnVnIGZpeGVzIGFuZCBmaXhlcyBmb3Iganl0aG9uCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
cHl0ZXN0LTIuMS4yIGlzIGEgbWlub3IgYmFja3dhcmQgY29tcGF0aWJsZSBtYWludGVuYW5jZSBy
ZWxlYXNlIG9mIHRoZQorcG9wdWxhciBweS50ZXN0IHRlc3RpbmcgdG9vbC4gIHB5dGVzdCBpcyBj
b21tb25seSB1c2VkIGZvciB1bml0LAorZnVuY3Rpb25hbC0gYW5kIGludGVncmF0aW9uIHRlc3Rp
bmcuICBTZWUgZXh0ZW5zaXZlIGRvY3Mgd2l0aCBleGFtcGxlcworaGVyZToKKworICAgICBodHRw
Oi8vcHl0ZXN0Lm9yZy8KKworTW9zdCBidWcgZml4ZXMgYWRkcmVzcyByZW1haW5pbmcgaXNzdWVz
IHdpdGggdGhlIHBlcmZlY3RlZCBhc3NlcnRpb25zCitpbnRyb2R1Y2VkIGluIHRoZSAyLjEgc2Vy
aWVzIC0gbWFueSB0aGFua3MgdG8gdGhlIGJ1ZyByZXBvcnRlcnMgYW5kIHRvIEJlbmphbWluCitQ
ZXRlcnNvbiBmb3IgaGVscGluZyB0byBmaXggdGhlbS4gIHB5dGVzdCBzaG91bGQgYWxzbyB3b3Jr
IGJldHRlciB3aXRoCitKeXRob24tMi41LjEgKGFuZCBKeXRob24gdHJ1bmspLgorCitJZiB5b3Ug
d2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBqdXN0IHR5cGUgb25lIG9mOjoKKwor
ICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVz
dAorCitiZXN0LAoraG9sZ2VyIGtyZWtlbCAvIGh0dHA6Ly9tZXJsaW51eC5ldQorCitDaGFuZ2Vz
IGJldHdlZW4gMi4xLjEgYW5kIDIuMS4yCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy0gZml4IGFzc2VydGlvbiByZXdyaXRpbmcgb24gZmlsZXMgd2l0aCB3aW5k
b3dzIG5ld2xpbmVzIG9uIHNvbWUgUHl0aG9uIHZlcnNpb25zCistIHJlZmluZSB0ZXN0IGRpc2Nv
dmVyeSBieSBwYWNrYWdlL21vZHVsZSBuYW1lICgtLXB5YXJncyksIHRoYW5rcyBGbG9yaWFuIE1h
eWVyCistIGZpeCBpc3N1ZTY5IC8gYXNzZXJ0aW9uIHJld3JpdGluZyBmaXhlZCBvbiBzb21lIGJv
b2xlYW4gb3BlcmF0aW9ucworLSBmaXggaXNzdWU2OCAvIHBhY2thZ2VzIG5vdyB3b3JrIHdpdGgg
YXNzZXJ0aW9uIHJld3JpdGluZworLSBmaXggaXNzdWU2NjogdXNlIGRpZmZlcmVudCBhc3NlcnRp
b24gcmV3cml0aW5nIGNhY2hlcyB3aGVuIHRoZSAtTyBvcHRpb24gaXMgcGFzc2VkCistIGRvbid0
IHRyeSBhc3NlcnRpb24gcmV3cml0aW5nIG9uIEp5dGhvbiwgdXNlIHJlaW50ZXJwCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4zLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4zLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NGRhNjBiOGJhNGZhN2NkYTQ0NmZmYmIzYjg1NGQ1OTU1YTg5NDQzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjMucnN0CkBAIC0wLDAg
KzEsMzIgQEAKK3B5LnRlc3QgMi4xLjM6IGp1c3Qgc29tZSBtb3JlIGZpeGVzCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworcHl0ZXN0LTIuMS4zIGlzIGEgbWlub3IgYmFja3dhcmQgY29tcGF0aWJsZSBt
YWludGVuYW5jZSByZWxlYXNlIG9mIHRoZQorcG9wdWxhciBweS50ZXN0IHRlc3RpbmcgdG9vbC4g
IEl0IGlzIGNvbW1vbmx5IHVzZWQgZm9yIHVuaXQsIGZ1bmN0aW9uYWwtCithbmQgaW50ZWdyYXRp
b24gdGVzdGluZy4gIFNlZSBleHRlbnNpdmUgZG9jcyB3aXRoIGV4YW1wbGVzIGhlcmU6CisKKyAg
ICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK1RoZSByZWxlYXNlIGNvbnRhaW5zIGFub3RoZXIgZml4
IHRvIHRoZSBwZXJmZWN0ZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkCit3aXRoIHRoZSAyLjEgc2Vy
aWVzIGFzIHdlbGwgYXMgdGhlIG5ldyBwb3NzaWJpbGl0eSB0byBjdXN0b21pemUgcmVwb3J0aW5n
Citmb3IgYXNzZXJ0aW9uIGV4cHJlc3Npb25zIG9uIGEgcGVyLWRpcmVjdG9yeSBsZXZlbC4gIAor
CitJZiB5b3Ugd2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBqdXN0IHR5cGUgb25l
IG9mOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxs
IC1VIHB5dGVzdAorCitUaGFua3MgdG8gdGhlIGJ1ZyByZXBvcnRlcnMgYW5kIHRvIFJvbm55IFBm
YW5uc2NobWlkdCwgQmVuamFtaW4gUGV0ZXJzb24KK2FuZCBGbG9yaXMgQnJ1eW5vb2doZSB3aG8g
aW1wbGVtZW50ZWQgdGhlIGZpeGVzLgorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2Vz
IGJldHdlZW4gMi4xLjIgYW5kIDIuMS4zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy0gZml4IGlzc3VlNzk6IGFzc2VydGlvbiByZXdyaXRpbmcgZmFpbGVkIG9u
IHNvbWUgY29tcGFyaXNvbnMgaW4gYm9vbG9wcywKKy0gY29ycmVjdGx5IGhhbmRsZSB6ZXJvIGxl
bmd0aCBhcmd1bWVudHMgKGEgbGEgcHl0ZXN0ICcnKQorLSBmaXggaXNzdWU2NyAvIGp1bml0eG1s
IG5vdyBjb250YWlucyBjb3JyZWN0IHRlc3QgZHVyYXRpb25zCistIGZpeCBpc3N1ZTc1IC8gc2tp
cHBpbmcgdGVzdCBmYWlsdXJlIG9uIGp5dGhvbgorLSBmaXggaXNzdWU3NyAvIEFsbG93IGFzc2Vy
dHJlcHJfY29tcGFyZSBob29rIHRvIGFwcGx5IHRvIGEgc3Vic2V0IG9mIHRlc3RzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuMC5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuMC5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBi
ZmUwYTE5MTU3NDQyMjlhOGU1N2M0MTM4OWJkZDdiMmY1NTIwNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4wLnJzdApAQCAtMCwwICsx
LDk1IEBACitweS50ZXN0IDIuMi4wOiB0ZXN0IG1hcmtpbmcrKywgcGFyYW1ldHJpemF0aW9uKysg
YW5kIGR1cmF0aW9uIHByb2ZpbGluZworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjIu
MCBpcyBhIHRlc3Qtc3VpdGUgY29tcGF0aWJsZSByZWxlYXNlIG9mIHRoZSBwb3B1bGFyCitweS50
ZXN0IHRlc3RpbmcgdG9vbC4gIFBsdWdpbnMgbWlnaHQgbmVlZCB1cGdyYWRlcy4gSXQgY29tZXMK
K3dpdGggdGhlc2UgaW1wcm92ZW1lbnRzOgorCisqIGVhc2llciBhbmQgbW9yZSBwb3dlcmZ1bCBw
YXJhbWV0cml6YXRpb24gb2YgdGVzdHM6CisKKyAgLSBuZXcgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplIGRlY29yYXRvciB0byBydW4gdGVzdHMgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnRzCisgIC0g
bmV3IG1ldGFmdW5jLnBhcmFtZXRyaXplKCkgQVBJIGZvciBwYXJhbWV0cml6aW5nIGFyZ3VtZW50
cyBpbmRlcGVuZGVudGx5CisgIC0gc2VlIGV4YW1wbGVzIGF0IGh0dHA6Ly9weXRlc3Qub3JnL2xh
dGVzdC9leGFtcGxlL3BhcmFtZXRyaXplLmh0bWwKKyAgLSBOT1RFIHRoYXQgcGFyYW1ldHJpemUo
KSByZWxhdGVkIEFQSXMgYXJlIHN0aWxsIGEgYml0IGV4cGVyaW1lbnRhbAorICAgIGFuZCBtaWdo
dCBjaGFuZ2UgaW4gZnV0dXJlIHJlbGVhc2VzLgorCisqIGltcHJvdmVkIGhhbmRsaW5nIG9mIHRl
c3QgbWFya2VycyBhbmQgcmVmaW5lZCBtYXJraW5nIG1lY2hhbmlzbToKKworICAtICItbSBtYXJr
ZXhwciIgb3B0aW9uIGZvciBzZWxlY3RpbmcgdGVzdHMgYWNjb3JkaW5nIHRvIHRoZWlyIG1hcmsK
KyAgLSBhIG5ldyAibWFya2VycyIgaW5pLXZhcmlhYmxlIGZvciByZWdpc3RlcmluZyB0ZXN0IG1h
cmtlcnMgZm9yIHlvdXIgcHJvamVjdAorICAtIHRoZSBuZXcgIi0tc3RyaWN0IiBiYWlscyBvdXQg
d2l0aCBhbiBlcnJvciBpZiB1c2luZyB1bnJlZ2lzdGVyZWQgbWFya2Vycy4KKyAgLSBzZWUgZXhh
bXBsZXMgYXQgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2V4YW1wbGUvbWFya2Vycy5odG1sCisK
KyogZHVyYXRpb24gcHJvZmlsaW5nOiBuZXcgIi0tZHVyYXRpb249TiIgb3B0aW9uIHNob3dpbmcg
dGhlIE4gc2xvd2VzdCB0ZXN0CisgIGV4ZWN1dGlvbiBvciBzZXR1cC90ZWFyZG93biBjYWxscy4g
VGhpcyBpcyBtb3N0IHVzZWZ1bCBpZiB5b3Ugd2FudCB0bworICBmaW5kIG91dCB3aGVyZSB5b3Vy
IHNsb3dlc3QgdGVzdCBjb2RlIGlzLgorCisqIGFsc28gMi4yLjAgcGVyZm9ybXMgbW9yZSBlYWdl
ciBjYWxsaW5nIG9mIHRlYXJkb3duL2ZpbmFsaXplcnMgZnVuY3Rpb25zCisgIHJlc3VsdGluZyBp
biBiZXR0ZXIgYW5kIG1vcmUgYWNjdXJhdGUgcmVwb3J0aW5nIHdoZW4gdGhleSBmYWlsCisKK0Jl
c2lkZXMgdGhlcmUgaXMgdGhlIHVzdWFsIHNldCBvZiBidWcgZml4ZXMgYWxvbmcgd2l0aCBhIGNs
ZWFudXAgb2YKK3B5dGVzdCdzIG93biB0ZXN0IHN1aXRlIGFsbG93aW5nIGl0IHRvIHJ1biBvbiBh
IHdpZGVyIHJhbmdlIG9mIGVudmlyb25tZW50cy4KKworRm9yIGdlbmVyYWwgaW5mb3JtYXRpb24s
IHNlZSBleHRlbnNpdmUgZG9jcyB3aXRoIGV4YW1wbGVzIGhlcmU6CisKKyAgICAgaHR0cDovL3B5
dGVzdC5vcmcvCisKK0lmIHlvdSB3YW50IHRvIGluc3RhbGwgb3IgdXBncmFkZSBweXRlc3QgeW91
IG1pZ2h0IGp1c3QgdHlwZTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAg
IGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIFJvbm55IFBmYW5uc2NobWlkdCwg
RGF2aWQgQnVybnMsIEplZmYgRG9ubmVyLCBEYW5pZWwgTm91cmksIEFsZnJlZG8gRGV6YSBhbmQg
YWxsIHdobyBnYXZlIGZlZWRiYWNrIG9yIHNlbnQgYnVnIHJlcG9ydHMuCisKK2Jlc3QsCitob2xn
ZXIga3Jla2VsCisKKworbm90ZXMgb24gaW5jb21wYXRpYmlsaXR5CistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworV2hpbGUgdGVzdCBzdWl0ZXMgc2hvdWxkIHdvcmsgdW5jaGFuZ2Vk
IHlvdSBtaWdodCBuZWVkIHRvIHVwZ3JhZGUgcGx1Z2luczoKKworKiBZb3UgbmVlZCBhIG5ldyB2
ZXJzaW9uIG9mIHRoZSBweXRlc3QteGRpc3QgcGx1Z2luICgxLjcpIGZvciBkaXN0cmlidXRpbmcK
KyAgdGVzdCBydW5zLgorCisqIE90aGVyIHBsdWdpbnMgbWlnaHQgbmVlZCBhbiB1cGdyYWRlIGlm
IHRoZXkgaW1wbGVtZW50CisgIHRoZSBgYHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydGBgIGhvb2sg
d2hpY2ggbm93IGlzIGNhbGxlZCB1bmNvbmRpdGlvbmFsbHkKKyAgZm9yIHRoZSBzZXR1cC90ZWFy
ZG93biBmaXh0dXJlIHBoYXNlcyBvZiBhIHRlc3QuIFlvdSBtYXkgY2hvb3NlIHRvCisgIGlnbm9y
ZSBzZXR1cC90ZWFyZG93biBmYWlsdXJlcyBieSBpbnNlcnRpbmcgImlmIHJlcC53aGVuICE9ICdj
YWxsJzogcmV0dXJuIgorICBvciBzb21ldGhpbmcgc2ltaWxhci4gTm90ZSB0aGF0IG1vc3QgY29k
ZSBwcm9iYWJseSAianVzdCIgd29ya3MgYmVjYXVzZQorICB0aGUgaG9vayB3YXMgYWxyZWFkeSBj
YWxsZWQgZm9yIGZhaWxpbmcgc2V0dXAvdGVhcmRvd24gcGhhc2VzIG9mIGEgdGVzdAorICBzbyBh
IHBsdWdpbiBzaG91bGQgaGF2ZSBiZWVuIHJlYWR5IHRvIGdyb2sgc3VjaCByZXBvcnRzIGFscmVh
ZHkuCisKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMS4zIGFuZCAyLjIuMAorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTkwOiBpbnRyb2R1Y2UgZWFn
ZXIgdGVhcmluZyBkb3duIG9mIHRlc3QgaXRlbXMgc28gdGhhdAorICB0ZWFyZG93biBmdW5jdGlv
biBhcmUgY2FsbGVkIGVhcmxpZXIuCistIGFkZCBhbiBhbGwtcG93ZXJmdWwgbWV0YWZ1bmMucGFy
YW1ldHJpemUgZnVuY3Rpb24gd2hpY2ggYWxsb3dzIHRvCisgIHBhcmFtZXRyaXplIHRlc3QgZnVu
Y3Rpb24gYXJndW1lbnRzIGluIG11bHRpcGxlIHN0ZXBzIGFuZCB0aGVyZWZvcmUKKyAgZnJvbSBp
bmRlcGVuZGVudCBwbHVnaW5zIGFuZCBwbGFjZXMuCistIGFkZCBhIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSBoZWxwZXIgd2hpY2ggYWxsb3dzIHRvIGVhc2lseQorICBjYWxsIGEgdGVzdCBmdW5j
dGlvbiB3aXRoIGRpZmZlcmVudCBhcmd1bWVudCB2YWx1ZXMuCistIEFkZCBleGFtcGxlcyB0byB0
aGUgInBhcmFtZXRyaXplIiBleGFtcGxlIHBhZ2UsIGluY2x1ZGluZyBhIHF1aWNrIHBvcnQKKyAg
b2YgVGVzdCBzY2VuYXJpb3MgYW5kIHRoZSBuZXcgcGFyYW1ldHJpemUgZnVuY3Rpb24gYW5kIGRl
Y29yYXRvci4KKy0gaW50cm9kdWNlIHJlZ2lzdHJhdGlvbiBmb3IgInB5dGVzdC5tYXJrLioiIGhl
bHBlcnMgdmlhIGluaS1maWxlcworICBvciB0aHJvdWdoIHBsdWdpbiBob29rcy4gIEFsc28gaW50
cm9kdWNlIGEgIi0tc3RyaWN0IiBvcHRpb24gd2hpY2gKKyAgd2lsbCB0cmVhdCB1bnJlZ2lzdGVy
ZWQgbWFya2VycyBhcyBlcnJvcnMKKyAgYWxsb3dpbmcgdG8gYXZvaWQgdHlwb3MgYW5kIG1haW50
YWluIGEgd2VsbCBkZXNjcmliZWQgc2V0IG9mIG1hcmtlcnMKKyAgZm9yIHlvdXIgdGVzdCBzdWl0
ZS4gIFNlZSBleGFtcGxlcyBhdCBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvbWFyay5odG1sCisg
IGFuZCBpdHMgbGlua3MuCistIGlzc3VlNTA6IGludHJvZHVjZSAiLW0gbWFya2VyIiBvcHRpb24g
dG8gc2VsZWN0IHRlc3RzIGJhc2VkIG9uIG1hcmtlcnMKKyAgKHRoaXMgaXMgYSBzdHJpY3RlciBh
bmQgbW9yZSBwcmVkaWN0YWJsZSB2ZXJzaW9uIG9mICItayIgaW4gdGhhdCAiLW0iCisgIG9ubHkg
bWF0Y2hlcyBjb21wbGV0ZSBtYXJrZXJzIGFuZCBoYXMgbW9yZSBvYnZpb3VzIHJ1bGVzIGZvciBh
bmQvb3IKKyAgc2VtYW50aWNzLgorLSBuZXcgZmVhdHVyZSB0byBoZWxwIG9wdGltaXppbmcgdGhl
IHNwZWVkIG9mIHlvdXIgdGVzdHM6CisgIC0tZHVyYXRpb25zPU4gb3B0aW9uIGZvciBkaXNwbGF5
aW5nIE4gc2xvd2VzdCB0ZXN0IGNhbGxzCisgIGFuZCBzZXR1cC90ZWFyZG93biBtZXRob2RzLgor
LSBmaXggaXNzdWU4NzogLS1wYXN0ZWJpbiBub3cgd29ya3Mgd2l0aCBweXRob24zCistIGZpeCBp
c3N1ZTg5OiAtLXBkYiB3aXRoIHVuZXhwZWN0ZWQgZXhjZXB0aW9ucyBpbiBkb2N0ZXN0IHdvcmsg
bW9yZSBzZW5zaWJseQorLSBmaXggYW5kIGNsZWFudXAgcHl0ZXN0J3Mgb3duIHRlc3Qgc3VpdGUg
dG8gbm90IGxlYWsgRkRzCistIGZpeCBpc3N1ZTgzOiBsaW5rIHRvIGdlbmVyYXRlZCBmdW5jYXJn
IGxpc3QKKy0gZml4IGlzc3VlNzQ6IHB5YXJnIG1vZHVsZSBuYW1lcyBhcmUgbm93IGNoZWNrZWQg
YWdhaW5zdCBpbXAuZmluZF9tb2R1bGUgZmFsc2UgcG9zaXRpdmVzCistIGZpeCBjb21wYXRpYmls
aXR5IHdpdGggdHdpc3RlZC90cmlhbC0xMS4xLjAgdXNlIGNhc2VzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuMS5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyOGJjYjAxZjRh
Njc1ZTMwNzMwNjgzNjk3OWY5MDVkZjY3NjIxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4xLnJzdApAQCAtMCwwICsxLDQxIEBACitw
eXRlc3QtMi4yLjE6IGJ1ZyBmaXhlcywgcGVyZmVjdCB0ZWFyZG93bnMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCisKK3B5dGVzdC0yLjIuMSBpcyBhIG1pbm9yIGJhY2t3YXJkLWNvbXBhdGlibGUgcmVs
ZWFzZSBvZiB0aGUgcHkudGVzdAordGVzdGluZyB0b29sLiAgIEl0IGNvbnRhaW5zIGJ1ZyBmaXhl
cyBhbmQgbGl0dGxlIGltcHJvdmVtZW50cywgaW5jbHVkaW5nCitkb2N1bWVudGF0aW9uIGZpeGVz
LiAgSWYgeW91IGFyZSB1c2luZyB0aGUgZGlzdHJpYnV0ZWQgdGVzdGluZworcGx1Z2lubWFrZSBz
dXJlIHRvIHVwZ3JhZGUgaXQgdG8gcHl0ZXN0LXhkaXN0LTEuOC4KKworRm9yIGdlbmVyYWwgaW5m
b3JtYXRpb24gc2VlIGhlcmU6CisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK1RvIGluc3Rh
bGwgb3IgdXBncmFkZSBweXRlc3Q6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgor
ICAgIGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworU3BlY2lhbCB0aGFua3MgZm9yIGhlbHBpbmcg
b24gdGhpcyByZWxlYXNlIHRvIFJvbm55IFBmYW5uc2NobWlkdCwgSnVya28KK0dvc3BvZG5ldGlj
IGFuZCBSYWxmIFNjaG1pdHQuCisKK2Jlc3QsCitob2xnZXIga3Jla2VsCisKKworQ2hhbmdlcyBi
ZXR3ZWVuIDIuMi4wIGFuZCAyLjIuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCistIGZpeCBpc3N1ZTk5IChpbiBweXRlc3QgYW5kIHB5KSBpbnRlcm5hbGxlcnJv
cnMgd2l0aCByZXN1bHRsb2cgbm93CisgIHByb2R1Y2UgYmV0dGVyIG91dHB1dCAtIGZpeGVkIGJ5
IG5vcm1hbGl6aW5nIHB5dGVzdF9pbnRlcm5hbGVycm9yIAorICBpbnB1dCBhcmd1bWVudHMuCist
IGZpeCBpc3N1ZTk3IC8gdHJhY2ViYWNrIGlzc3VlcyAoaW4gcHl0ZXN0IGFuZCBweSkgaW1wcm92
ZSB0cmFjZWJhY2sgb3V0cHV0CisgIGluIGNvbmp1bmN0aW9uIHdpdGggamluamEyIGFuZCBjeXRo
b24gd2hpY2ggaGFjayB0cmFjZWJhY2tzCistIGZpeCBpc3N1ZTkzIChpbiBweXRlc3QgYW5kIHB5
dGVzdC14ZGlzdCkgYXZvaWQgImRlbGF5ZWQgdGVhcmRvd25zIjoKKyAgdGhlIGZpbmFsIHRlc3Qg
aW4gYSB0ZXN0IG5vZGUgd2lsbCBub3cgcnVuIGl0cyB0ZWFyZG93biBkaXJlY3RseQorICBpbnN0
ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBlbmQgb2YgdGhlIHNlc3Npb24uIFRoYW5rcyBEYXZlIEh1
bnQgZm9yCisgIHRoZSBnb29kIHJlcG9ydGluZyBhbmQgZmVlZGJhY2suICBUaGUgcHl0ZXN0X3J1
bnRlc3RfcHJvdG9jb2wgYXMgd2VsbAorICBhcyB0aGUgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24g
aG9va3Mgbm93IGhhdmUgIm5leHRpdGVtIiBhdmFpbGFibGUgCisgIHdoaWNoIHdpbGwgYmUgTm9u
ZSBpbmRpY2F0aW5nIHRoZSBlbmQgb2YgdGhlIHRlc3QgcnVuLgorLSBmaXggY29sbGVjdGlvbiBj
cmFzaCBkdWUgdG8gdW5rbm93bi1zb3VyY2UgY29sbGVjdGVkIGl0ZW1zLCB0aGFua3MKKyAgdG8g
UmFsZiBTY2htaXR0IChmaXhlZCBieSBkZXBlbmRpbmcgb24gYSBtb3JlIHJlY2VudCBweWxpYikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4yLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4yLnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MzNhZWRlYzQxMzUxMjQ0ZWQ4NjczNTQ5OTU3NmIyYzZjYzhlMjhiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjIucnN0CkBA
IC0wLDAgKzEsNDMgQEAKK3B5dGVzdC0yLjIuMjogYnVnIGZpeGVzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworcHl0ZXN0LTIuMi4yICh1cGRhdGVkIHRvIDIuMi4zIHRvIGZpeCBwYWNrYWdpbmcgaXNz
dWVzKSBpcyBhIG1pbm9yCitiYWNrd2FyZC1jb21wYXRpYmxlIHJlbGVhc2Ugb2YgdGhlIHZlcnNh
dGlsZSBweS50ZXN0IHRlc3RpbmcgdG9vbC4gICBJdAorY29udGFpbnMgYnVnIGZpeGVzIGFuZCBh
IGZldyByZWZpbmVtZW50cyBwYXJ0aWN1bGFybHkgdG8gcmVwb3J0aW5nIHdpdGgKKyItLWNvbGxl
Y3Rvbmx5Iiwgc2VlIGJlbG93IGZvciBiZXRhaWxzLiAgCisKK0ZvciBnZW5lcmFsIGluZm9ybWF0
aW9uIHNlZSBoZXJlOgorCisgICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitUbyBpbnN0YWxsIG9y
IHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0ICMgb3IKKyAgICBl
YXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK1NwZWNpYWwgdGhhbmtzIGZvciBoZWxwaW5nIG9uIHRo
aXMgcmVsZWFzZSB0byBSb25ueSBQZmFubnNjaG1pZHQKK2FuZCBSYWxmIFNjaG1pdHQgYW5kIHRo
ZSBjb250cmlidXRvcnMgb2YgaXNzdWVzLgorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCisKK0No
YW5nZXMgYmV0d2VlbiAyLjIuMSBhbmQgMi4yLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWUxMDE6IHdyb25nIGFyZ3MgdG8gdW5pdHRlc3Qu
VGVzdENhc2UgdGVzdCBmdW5jdGlvbiBub3cKKyAgcHJvZHVjZSBiZXR0ZXIgb3V0cHV0CistIGZp
eCBpc3N1ZTEwMjogcmVwb3J0IG1vcmUgdXNlZnVsIGVycm9ycyBhbmQgaGludHMgZm9yIHdoZW4g
YSAKKyAgdGVzdCBkaXJlY3Rvcnkgd2FzIHJlbmFtZWQgYW5kIHNvbWUgcHljL19fcHljYWNoZV9f
IHJlbWFpbgorLSBmaXggaXNzdWUxMDY6IGFsbG93IHBhcmFtZXRyaXplIHRvIGJlIGFwcGxpZWQg
bXVsdGlwbGUgdGltZXMKKyAgZS5nLiBmcm9tIG1vZHVsZSwgY2xhc3MgYW5kIGF0IGZ1bmN0aW9u
IGxldmVsLgorLSBmaXggaXNzdWUxMDc6IGFjdHVhbGx5IHBlcmZvcm0gc2Vzc2lvbiBzY29wZSBm
aW5hbGl6YXRpb24KKy0gZG9uJ3QgY2hlY2sgaW4gcGFyYW1ldHJpemUgaWYgaW5kaXJlY3QgcGFy
YW1ldGVycyBhcmUgZnVuY2FyZyBuYW1lcworLSBhZGQgY2hkaXIgbWV0aG9kIHRvIG1vbmtleXBh
dGNoIGZ1bmNhcmcKKy0gZml4IGNyYXNoIHJlc3VsdGluZyBmcm9tIGNhbGxpbmcgbW9ua2V5cGF0
Y2ggdW5kbyBhIHNlY29uZCB0aW1lCistIGZpeCBpc3N1ZTExNTogbWFrZSAtLWNvbGxlY3Rvbmx5
IHJvYnVzdCBhZ2FpbnN0IGVhcmx5IGZhaWx1cmUKKyAgKG1pc3NpbmcgZmlsZXMvZGlyZWN0b3Jp
ZXMpCistICItcXEgLS1jb2xsZWN0b25seSIgbm93IHNob3dzIG9ubHkgZmlsZXMgYW5kIHRoZSBu
dW1iZXIgb2YgdGVzdHMgaW4gdGhlbQorLSAiLXEgLS1jb2xsZWN0b25seSIgbm93IHNob3dzIHRl
c3QgaWRzIAorLSBhbGxvdyBhZGRpbmcgb2YgYXR0cmlidXRlcyB0byB0ZXN0IHJlcG9ydHMgc3Vj
aCB0aGF0IGl0IGFsc28gd29ya3MKKyAgd2l0aCBkaXN0cmlidXRlZCB0ZXN0aW5nIChubyB1cGdy
YWRlIG9mIHB5dGVzdC14ZGlzdCBuZWVkZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuNC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0yLjIuNC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjdmMGZlYjI3YzdmZDAyOGFlMjU2Yzcz
Mjg3NWNhOTdjODM4MDBmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuMi40LnJzdApAQCAtMCwwICsxLDM5IEBACitweXRlc3QtMi4yLjQ6
IGJ1ZyBmaXhlcywgYmV0dGVyIGp1bml0eG1sL3VuaXR0ZXN0L3B5dGhvbjMgY29tcGF0Cis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0LTIuMi40IGlzIGEgbWlub3IgYmFja3dhcmQtY29tcGF0
aWJsZSByZWxlYXNlIG9mIHRoZSB2ZXJzYXRpbGUKK3B5LnRlc3QgdGVzdGluZyB0b29sLiAgIEl0
IGNvbnRhaW5zIGJ1ZyBmaXhlcyBhbmQgYSBmZXcgcmVmaW5lbWVudHMKK3RvIGp1bml0eG1sIHJl
cG9ydGluZywgYmV0dGVyIHVuaXR0ZXN0LSBhbmQgcHl0aG9uMyBjb21wYXRpYmlsaXR5LgorCitG
b3IgZ2VuZXJhbCBpbmZvcm1hdGlvbiBzZWUgaGVyZToKKworICAgICBodHRwOi8vcHl0ZXN0Lm9y
Zy8KKworVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoKKworICAgIHBpcCBpbnN0YWxsIC1V
IHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitTcGVjaWFsIHRoYW5r
cyBmb3IgaGVscGluZyBvbiB0aGlzIHJlbGVhc2UgdG8gUm9ubnkgUGZhbm5zY2htaWR0CithbmQg
QmVuamFtaW4gUGV0ZXJzb24gYW5kIHRoZSBjb250cmlidXRvcnMgb2YgaXNzdWVzLgorCitiZXN0
LAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIGJldHdlZW4gMi4yLjMgYW5kIDIuMi40CistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBlcnJvciBtZXNzYWdlIGZv
ciByZXdyaXR0ZW4gYXNzZXJ0aW9ucyBpbnZvbHZpbmcgdGhlICUgb3BlcmF0b3IKKy0gZml4IGlz
c3VlIDEyNjogY29ycmVjdGx5IG1hdGNoIGFsbCBpbnZhbGlkIHhtbCBjaGFyYWN0ZXJzIGZvciBq
dW5pdHhtbAorICBiaW5hcnkgZXNjYXBlCistIGZpeCBpc3N1ZSB3aXRoIHVuaXR0ZXN0OiBub3cg
QHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZSBtYXJrZXJzIHNob3VsZAorICBiZSBwcm9jZXNzZWQg
Y29ycmVjdGx5ICh5b3UgY2FuIGFsc28gdXNlIEBweXRlc3QubWFyayBtYXJrZXJzKQorLSBkb2N1
bWVudCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBleHRlbmRlZCBkaXN0cmlidXRlL3NldHVwdG9vbHMg
dGVzdCBjb21tYW5kcworLSBmaXggaXNzdWUgMTQwOiBwcm9wZXJseSBnZXQgdGhlIHJlYWwgZnVu
Y3Rpb25zCisgIG9mIGJvdW5kIGNsYXNzbWV0aG9kcyBmb3Igc2V0dXAvdGVhcmRvd25fY2xhc3MK
Ky0gZml4IGlzc3VlICMxNDE6IHN3aXRjaCBmcm9tIHRoZSBkZWNlYXNlZCBwYXN0ZS5wb2Nvby5v
cmcgdG8gYnBhc3RlLm5ldAorLSBmaXggaXNzdWUgIzE0MzogY2FsbCB1bmNvbmZpZ3VyZS9zZXNz
aW9uZmluaXNoIGFsd2F5cyB3aGVuCisgIGNvbmZpZ3VyZS9zZXNzaW9uc3RhcnQgd2hlcmUgY2Fs
bGVkCistIGZpeCBpc3N1ZSAjMTQ0OiBiZXR0ZXIgbWFuZ2xlIHRlc3QgaWRzIHRvIGp1bml0eG1s
IGNsYXNzbmFtZXMKKy0gdXBncmFkZSBkaXN0cmlidXRlX3NldHVwLnB5IHRvIDAuNi4yNworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuMC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuMC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjg2M2FhZDBhY2U5NDVmZmUxYTJjZTNkODBlOWY2Y2NjM2I2NGJkMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4wLnJzdApAQCAt
MCwwICsxLDEzNCBAQAorcHl0ZXN0LTIuMzogaW1wcm92ZWQgZml4dHVyZXMgLyBiZXR0ZXIgdW5p
dHRlc3QgaW50ZWdyYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjMgY29t
ZXMgd2l0aCBtYW55IG1ham9yIGltcHJvdmVtZW50cyBmb3IgZml4dHVyZS9mdW5jYXJnIG1hbmFn
ZW1lbnQgCithbmQgcGFyYW1ldHJpemVkIHRlc3RpbmcgaW4gUHl0aG9uLiAgSXQgaXMgbm93IGVh
c2llciwgbW9yZSBlZmZpY2llbnQgYW5kCittb3JlIHByZWRpY2F0YWJsZSB0byByZS1ydW4gdGhl
IHNhbWUgdGVzdHMgd2l0aCBkaWZmZXJlbnQgZml4dHVyZQoraW5zdGFuY2VzLiAgQWxzbywgeW91
IGNhbiBkaXJlY3RseSBkZWNsYXJlIHRoZSBjYWNoaW5nICJzY29wZSIgb2YKK2ZpeHR1cmVzIHNv
IHRoYXQgZGVwZW5kZW50IHRlc3RzIHRocm91Z2hvdXQgeW91ciB3aG9sZSB0ZXN0IHN1aXRlIGNh
bgorcmUtdXNlIGRhdGFiYXNlIG9yIG90aGVyIGV4cGVuc2l2ZSBmaXh0dXJlIG9iamVjdHMgd2l0
aCBlYXNlLiAgTGFzdGx5LAoraXQncyBwb3NzaWJsZSBmb3IgZml4dHVyZSBmdW5jdGlvbnMgKGZv
cm1lcmx5IGtub3duIGFzIGZ1bmNhcmcKK2ZhY3RvcmllcykgdG8gdXNlIG90aGVyIGZpeHR1cmVz
LCBhbGxvd2luZyBmb3IgYSBjb21wbGV0ZWx5IG1vZHVsYXIgYW5kCityZS11c2VhYmxlIGZpeHR1
cmUgZGVzaWduLiAKKworRm9yIGRldGFpbGVkIGluZm8gYW5kIHR1dG9yaWFsLXN0eWxlIGV4YW1w
bGVzLCBzZWU6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZml4dHVyZS5odG1sCisK
K01vcmVvdmVyLCB0aGVyZSBpcyBub3cgc3VwcG9ydCBmb3IgdXNpbmcgcHl0ZXN0IGZpeHR1cmVz
L2Z1bmNhcmdzIHdpdGgKK3VuaXR0ZXN0LXN0eWxlIHN1aXRlcywgc2VlIGhlcmUgZm9yIGV4YW1w
bGVzOgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3VuaXR0ZXN0Lmh0bWwKKworQmVz
aWRlcywgbW9yZSB1bml0dGVzdC10ZXN0IHN1aXRlcyBhcmUgbm93IGV4cGVjdGVkIHRvICJzaW1w
bHkgd29yayIKK3dpdGggcHl0ZXN0LgorCitBbGwgY2hhbmdlcyBhcmUgYmFja3dhcmQgY29tcGF0
aWJsZSBhbmQgeW91IHNob3VsZCBiZSBhYmxlIHRvIGNvbnRpbnVlCit0byBydW4geW91ciB0ZXN0
IHN1aXRlcyBhbmQgM3JkIHBhcnR5IHBsdWdpbnMgdGhhdCB3b3JrZWQgd2l0aAorcHl0ZXN0LTIu
Mi40LgorCitJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gdGhlIHByZWNpc2UgcmVhc29uaW5nIChp
bmNsdWRpbmcgZXhhbXBsZXMpIG9mIHRoZSAKK3B5dGVzdC0yLjMgZml4dHVyZSBldm9sdXRpb24s
IHBsZWFzZSBjb25zdWx0CitodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZnVuY2FyZ19jb21wYXJl
Lmh0bWwKKworRm9yIGdlbmVyYWwgaW5mbyBvbiBpbnN0YWxsYXRpb24gYW5kIGdldHRpbmcgc3Rh
cnRlZDoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9nZXR0aW5nLXN0YXJ0ZWQuaHRt
bAorCitEb2NzIGFuZCBQREYgYWNjZXNzIGFzIHVzdWFsIGF0OgorCisgICAgaHR0cDovL3B5dGVz
dC5vcmcKKworYW5kIG1vcmUgZGV0YWlscyBmb3IgdGhvc2UgYWxyZWFkeSBpbiB0aGUga25vd2lu
ZyBvZiBweXRlc3QgY2FuIGJlIGZvdW5kCitpbiB0aGUgQ0hBTkdFTE9HIGJlbG93LgorCitQYXJ0
aWN1bGFyIHRoYW5rcyBmb3IgdGhpcyByZWxlYXNlIGdvIHRvIEZsb3JpcyBCcnV5bm9vZ2hlLCBB
bGV4IE9rcnVzaGtvCitDYXJsIE1leWVyLCBSb25ueSBQZmFubnNjaG1pZHQsIEJlbmphbWluIFBl
dGVyc29uIGFuZCBBbGV4IEdheW5vciBmb3IgaGVscGluZyAKK3RvIGdldCB0aGUgbmV3IGZlYXR1
cmVzIHJpZ2h0IGFuZCB3ZWxsIGludGVncmF0ZWQuICBSb25ueSBhbmQgRmxvcmlzCithbHNvIGhl
bHBlZCB0byBmaXggYSBudW1iZXIgb2YgYnVncyBhbmQgeWV0IG1vcmUgcGVvcGxlIGhlbHBlZCBi
eQorcHJvdmlkaW5nIGJ1ZyByZXBvcnRzLgorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwKKwor
CitDaGFuZ2VzIGJldHdlZW4gMi4yLjQgYW5kIDIuMy4wCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTIwMiAtIGJldHRlciBhdXRvbWF0aWMgbmFtZXMg
Zm9yIHBhcmFtZXRyaXplZCB0ZXN0IGZ1bmN0aW9ucworLSBmaXggaXNzdWUxMzkgLSBpbnRyb2R1
Y2UgQHB5dGVzdC5maXh0dXJlIHdoaWNoIGFsbG93cyBkaXJlY3Qgc2NvcGluZworICBhbmQgcGFy
YW1ldHJpemF0aW9uIG9mIGZ1bmNhcmcgZmFjdG9yaWVzLiAgSW50cm9kdWNlIG5ldyBAcHl0ZXN0
LnNldHVwCisgIG1hcmtlciB0byBhbGxvdyB0aGUgd3JpdGluZyBvZiBzZXR1cCBmdW5jdGlvbnMg
d2hpY2ggYWNjZXB0IGZ1bmNhcmdzLgorLSBmaXggaXNzdWUxOTggLSBjb25mdGVzdCBmaXh0dXJl
cyB3ZXJlIG5vdCBmb3VuZCBvbiB3aW5kb3dzMzIgaW4gc29tZQorICBjaXJjdW1zdGFuY2VzIHdp
dGggbmVzdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzIGR1ZSB0byBwYXRoIG1hbmlwdWxhdGlvbiBp
c3N1ZXMKKy0gZml4IGlzc3VlMTkzIHNraXAgdGVzdCBmdW5jdGlvbnMgd2l0aCB3ZXJlIHBhcmFt
ZXRyaXplZCB3aXRoIGVtcHR5CisgIHBhcmFtZXRlciBzZXRzCistIGZpeCBweXRob24zLjMgY29t
cGF0LCBtb3N0bHkgcmVwb3J0aW5nIGJpdHMgdGhhdCBwcmV2aW91c2x5IGRlcGVuZGVkCisgIG9u
IGRpY3Qgb3JkZXJpbmcKKy0gaW50cm9kdWNlIHJlLW9yZGVyaW5nIG9mIHRlc3RzIGJ5IHJlc291
cmNlIGFuZCBwYXJhbWV0cml6YXRpb24gc2V0dXAKKyAgd2hpY2ggdGFrZXMgcHJlY2VkZW5jZSB0
byB0aGUgdXN1YWwgZmlsZS1vcmRlcmluZworLSBmaXggaXNzdWUxODUgbW9ua2V5cGF0Y2hpbmcg
dGltZS50aW1lIGRvZXMgbm90IGNhdXNlIHB5dGVzdCB0byBmYWlsCistIGZpeCBpc3N1ZTE3MiBk
dXBsaWNhdGUgY2FsbCBvZiBweXRlc3Quc2V0dXAtZGVjb3JhdG9yZWQgc2V0dXBfbW9kdWxlCisg
IGZ1bmN0aW9ucworLSBmaXgganVuaXR4bWw9cGF0aCBjb25zdHJ1Y3Rpb24gc28gdGhhdCBpZiB0
ZXN0cyBjaGFuZ2UgdGhlCisgIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgYW5kIHRoZSBwYXRo
IGlzIGEgcmVsYXRpdmUgcGF0aAorICBpdCBpcyBjb25zdHJ1Y3RlZCBjb3JyZWN0bHkgZnJvbSB0
aGUgb3JpZ2luYWwgY3VycmVudCB3b3JraW5nIGRpci4KKy0gZml4ICJweXRob24gc2V0dXAucHkg
dGVzdCIgZXhhbXBsZSB0byBjYXVzZSBhIHByb3BlciAiZXJybm8iIHJldHVybgorLSBmaXggaXNz
dWUxNjUgLSBmaXggYnJva2VuIGRvYyBsaW5rcyBhbmQgbWVudGlvbiBzdGFja292ZXJmbG93IGZv
ciBGQVEKKy0gY2F0Y2ggdW5pY29kZS1pc3N1ZXMgd2hlbiB3cml0aW5nIGZhaWx1cmUgcmVwcmVz
ZW50YXRpb25zCisgIHRvIHRlcm1pbmFsIHRvIHByZXZlbnQgdGhlIHdob2xlIHNlc3Npb24gZnJv
bSBjcmFzaGluZworLSBmaXggeGZhaWwvc2tpcCBjb25mdXNpb246IGEgc2tpcC1tYXJrIG9yIGFu
IGltcGVyYXRpdmUgcHl0ZXN0LnNraXAKKyAgd2lsbCBub3cgdGFrZSBwcmVjZWRlbmNlIGJlZm9y
ZSB4ZmFpbC1tYXJrZXJzIGJlY2F1c2Ugd2UKKyAgY2FuJ3QgZGV0ZXJtaW5lIHhmYWlsL3hwYXNz
IHN0YXR1cyBpbiBjYXNlIG9mIGEgc2tpcC4gc2VlIGFsc286CisgIGh0dHA6Ly9zdGFja292ZXJm
bG93LmNvbS9xdWVzdGlvbnMvMTExMDU4MjgvaW4tcHktdGVzdC13aGVuLWktZXhwbGljaXRseS1z
a2lwLWEtdGVzdC10aGF0LWlzLW1hcmtlZC1hcy14ZmFpbC1ob3ctY2FuLWktZ2V0CisKKy0gYWx3
YXlzIHJlcG9ydCBpbnN0YWxsZWQgM3JkIHBhcnR5IHBsdWdpbnMgaW4gdGhlIGhlYWRlciBvZiBh
IHRlc3QgcnVuCisKKy0gZml4IGlzc3VlMTYwOiBhIGZhaWxpbmcgc2V0dXAgb2YgYW4geGZhaWwt
bWFya2VkIHRlc3RzIHNob3VsZAorICBiZSByZXBvcnRlZCBhcyB4ZmFpbCAobm90IHhwYXNzKQor
CistIGZpeCBpc3N1ZTEyODogc2hvdyBjYXB0dXJlZCBvdXRwdXQgd2hlbiBjYXBzeXMvY2FwZmQg
YXJlIHVzZWQKKworLSBmaXggaXNzdWUxNzk6IHByb3Blcmx5IHNob3cgdGhlIGRlcGVuZGVuY3kg
Y2hhaW4gb2YgZmFjdG9yaWVzCisKKy0gcGx1Z2lubWFuYWdlci5yZWdpc3RlciguLi4pIG5vdyBy
YWlzZXMgVmFsdWVFcnJvciBpZiB0aGUKKyAgcGx1Z2luIGhhcyBiZWVuIGFscmVhZHkgcmVnaXN0
ZXJlZCBvciB0aGUgbmFtZSBpcyB0YWtlbgorCistIGZpeCBpc3N1ZTE1OTogaW1wcm92ZSBodHRw
Oi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZmFxLmh0bWwgCisgIGVzcGVjaWFsbHkgd2l0aCByZXNwZWN0
IHRvIHRoZSAibWFnaWMiIGhpc3RvcnksIGFsc28gbWVudGlvbgorICBweXRlc3QtZGphbmdvLCB0
cmlhbCBhbmQgdW5pdHRlc3QgaW50ZWdyYXRpb24uCisKKy0gbWFrZSByZXF1ZXN0LmtleXdvcmRz
IGFuZCBub2RlLmtleXdvcmRzIHdyaXRhYmxlLiAgQWxsIGRlc2NlbmRhbnQKKyAgY29sbGVjdGlv
biBub2RlcyB3aWxsIHNlZSBrZXl3b3JkIHZhbHVlcy4gIEtleXdvcmRzIGFyZSBkaWN0aW9uYXJp
ZXMKKyAgY29udGFpbmluZyBtYXJrZXJzIGFuZCBvdGhlciBpbmZvLgorCistIGZpeCBpc3N1ZSAx
Nzg6IHhtbCBiaW5hcnkgZXNjYXBlcyBhcmUgbm93IHdyYXBwZWQgaW4gcHkueG1sLnJhdworCist
IGZpeCBpc3N1ZSAxNzY6IGNvcnJlY3RseSBjYXRjaCB0aGUgYnVpbHRpbiBBc3NlcnRpb25FcnJv
cgorICBldmVuIHdoZW4gd2UgcmVwbGFjZWQgQXNzZXJ0aW9uRXJyb3Igd2l0aCBhIHN1YmNsYXNz
IG9uIHRoZQorICBweXRob24gbGV2ZWwKKworLSBmYWN0b3J5IGRpc2NvdmVyeSBubyBsb25nZXIg
ZmFpbHMgd2l0aCBtYWdpYyBnbG9iYWwgY2FsbGFibGVzCisgIHRoYXQgcHJvdmlkZSBubyBzYW5l
IF9fY29kZV9fIG9iamVjdCAobW9jay5jYWxsIGZvciBleGFtcGxlKQorCistIGZpeCBpc3N1ZSAx
ODI6IHRlc3RkaXIuaW5wcm9jZXNzX3J1biBub3cgY29uc2lkZXJzIHBhc3NlZCBwbHVnaW5zCisK
Ky0gZml4IGlzc3VlIDE4ODogZW5zdXJlIHN5cy5leGNfaW5mbyBpcyBjbGVhciBvbiBweXRob24y
CisgICAgICAgICAgICAgICAgIGJlZm9yZSBjYWxsaW5nIGludG8gYSB0ZXN0CisKKy0gZml4IGlz
c3VlIDE5MTogYWRkIHVuaXR0ZXN0IFRlc3RDYXNlIHJ1blRlc3QgbWV0aG9kIHN1cHBvcnQKKy0g
Zml4IGlzc3VlIDE1NjogbW9ua2V5cGF0Y2ggY29ycmVjdGx5IGhhbmRsZXMgY2xhc3MgbGV2ZWwg
ZGVzY3JpcHRvcnMKKworLSByZXBvcnRpbmcgcmVmaW5lbWVudHM6CisKKyAgLSBweXRlc3RfcmVw
b3J0X2hlYWRlciBub3cgcmVjZWl2ZXMgYSAic3RhcnRkaXIiIHNvIHRoYXQKKyAgICB5b3UgY2Fu
IHVzZSBzdGFydGRpci5iZXN0cmVscGF0aCh5b3VycGF0aCkgdG8gc2hvdworICAgIG5pY2UgcmVs
YXRpdmUgcGF0aAorCisgIC0gYWxsb3cgcGx1Z2lucyB0byBpbXBsZW1lbnQgYm90aCBweXRlc3Rf
cmVwb3J0X2hlYWRlciBhbmQgCisgICAgcHl0ZXN0X3Nlc3Npb25zdGFydCAoc2Vzc2lvbnN0YXJ0
IGlzIGludm9rZWQgZmlyc3QpLgorCisgIC0gZG9uJ3Qgc2hvdyBkZXNlbGVjdGVkIHJlYXNvbiBs
aW5lIGlmIHRoZXJlIGlzIG5vbmUKKworICAtIHB5LnRlc3QgLXZ2IHdpbGwgc2hvdyBhbGwgb2Yg
YXNzZXJ0IGNvbXBhcmlzb25zIGluc3RlYWQgb2YgdHJ1bmNhdGluZworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuMS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4N2RjMjAz
ZjQ0MjZjNzcwOGMzMWEwZmM0ZDY1N2ViYTI0MjhlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4xLnJzdApAQCAtMCwwICsxLDM5IEBA
CitweXRlc3QtMi4zLjE6IGZpeCByZWdyZXNzaW9uIHdpdGggZmFjdG9yeSBmdW5jdGlvbnMKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4zLjEgaXMgYSBxdWljayBmb2xsb3ctdXAgcmVs
ZWFzZToKKworLSBmaXggaXNzdWUyMDIgLSByZWdyZXNzaW9uIHdpdGggZml4dHVyZSBmdW5jdGlv
bnMvZnVuY2FyZyBmYWN0b3JpZXM6ICAKKyAgdXNpbmcgInNlbGYiIGlzIG5vdyBzYWZlIGFnYWlu
IGFuZCB3b3JrcyBhcyBpbiAyLjIuNC4gIFRoYW5rcyAKKyAgdG8gRWR1YXJkIFNjaGV0dGlubyBm
b3IgdGhlIHF1aWNrIGJ1ZyByZXBvcnQuCisKKy0gZGlzYWJsZSBwZXhwZWN0IHB5dGVzdCBzZWxm
IHRlc3RzIG9uIEZyZWVic2QgLSB0aGFua3MgS29vYiBmb3IgdGhlIAorICBxdWljayByZXBvcnRp
bmcKKworLSBmaXgvaW1wcm92ZSBpbnRlcmFjdGl2ZSBkb2NzIHdpdGggLS1tYXJrZXJzCisKK1Nl
ZSAKKworICAgICBodHRwOi8vcHl0ZXN0Lm9yZy8KKworZm9yIGdlbmVyYWwgaW5mb3JtYXRpb24u
ICBUbyBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0
ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK2Jlc3QsCitob2xnZXIga3Jl
a2VsCisKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMy4wIGFuZCAyLjMuMQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWUyMDIgLSBmaXggcmVncmVzc2lvbjog
dXNpbmcgInNlbGYiIGZyb20gZml4dHVyZSBmdW5jdGlvbnMgbm93CisgIHdvcmtzIGFzIGV4cGVj
dGVkIChpdCdzIHRoZSBzYW1lICJzZWxmIiBpbnN0YW5jZSB0aGF0IGEgdGVzdCBtZXRob2QKKyAg
d2hpY2ggdXNlcyB0aGUgZml4dHVyZSBzZWVzKQorCistIHNraXAgcGV4cGVjdCB1c2luZyB0ZXN0
cyAodGVzdF9wZGIucHkgbW9zdGx5KSBvbiBmcmVlYnNkKiBzeXN0ZW1zCisgIGR1ZSB0byBwZXhw
ZWN0IG5vdCBzdXBwb3J0aW5nIGl0IHByb3Blcmx5IChoYW5naW5nKQorCistIGxpbmsgdG8gd2Vi
IHBhZ2VzIGZyb20gLS1tYXJrZXJzIG91dHB1dCB3aGljaCBwcm92aWRlcyBoZWxwIGZvcgorICBw
eXRlc3QubWFyay4qIHVzYWdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4zLjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4zLjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MzEyYjQyOWNkZDc0NjgzMGEyZTVjN2NkNzU5OTEy
YTg4NDY4MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0yLjMuMi5yc3QKQEAgLTAsMCArMSw1NyBAQAorcHl0ZXN0LTIuMy4yOiBzb21lIGZp
eGVzIGFuZCBtb3JlIHRyYWNlYmFjay1wcmludGluZyBzcGVlZAorPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK3B5dGVzdC0yLjMuMiBpcyBhbm90aGVyIHN0YWJpbGl6YXRpb24gcmVsZWFzZToKKworLSBp
c3N1ZSAyMDU6IGZpeGVzIGEgcmVncmVzc2lvbiB3aXRoIGNvbmZ0ZXN0IGRldGVjdGlvbgorLSBp
c3N1ZSAyMDgvMjk6IGZpeGVzIHRyYWNlYmFjay1wcmludGluZyBzcGVlZCBpbiBzb21lIGJhZCBj
YXNlcworLSBmaXggdGVhcmRvd24tb3JkZXJpbmcgZm9yIHBhcmFtZXRyaXplZCBzZXR1cHMKKy0g
Zml4IHVuaXR0ZXN0IGFuZCB0cmlhbCBjb21wYXQgYmVoYXZpb3VyIHdpdGggcmVzcGVjdCAgdG8g
cnVuVGVzdCgpIG1ldGhvZHMKKy0gaXNzdWUgMjA2IGFuZCBvdGhlcnM6IHNvbWUgaW1wcm92ZW1l
bnRzIHRvIHBhY2thZ2luZworLSBmaXggaXNzdWUxMjcgYW5kIG90aGVyczogaW1wcm92ZSBzb21l
IGRvY3MgCisKK1NlZSAKKworICAgICBodHRwOi8vcHl0ZXN0Lm9yZy8KKworZm9yIGdlbmVyYWwg
aW5mb3JtYXRpb24uICBUbyBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGlu
c3RhbGwgLVUgcHl0ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK2Jlc3Qs
Citob2xnZXIga3Jla2VsCisKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMy4xIGFuZCAyLjMuMgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWUyMDggYW5kIGZp
eCBpc3N1ZTI5IHVzZSBuZXcgcHkgdmVyc2lvbiB0byBhdm9pZCBsb25nIHBhdXNlcyAKKyAgd2hl
biBwcmludGluZyB0cmFjZWJhY2tzIGluIGxvbmcgbW9kdWxlcworCistIGZpeCBpc3N1ZTIwNSAt
IGNvbmZ0ZXN0cyBpbiBzdWJkaXJzIGN1c3RvbWl6aW5nCisgIHB5dGVzdF9weWNvbGxlY3RfbWFr
ZW1vZHVsZSBhbmQgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbQorICBub3cgd29yayBwcm9wZXJs
eQorCistIGZpeCB0ZWFyZG93bi1vcmRlcmluZyBmb3IgcGFyYW1ldHJpemVkIHNldHVwcworCist
IGZpeCBpc3N1ZTEyNyAtIGJldHRlciBkb2N1bWVudGF0aW9uIGZvciBweXRlc3RfYWRkb3B0aW9u
CisgIGFuZCByZWxhdGVkIG9iamVjdHMuCisKKy0gZml4IHVuaXR0ZXN0IGJlaGF2aW91cjogVGVz
dENhc2UucnVudGVzdCBvbmx5IGNhbGxlZCBpZiB0aGVyZSBhcmUKKyAgdGVzdCBtZXRob2RzIGRl
ZmluZWQKKworLSBpbXByb3ZlIHRyaWFsIHN1cHBvcnQ6IGRvbid0IGNvbGxlY3QgaXRzIGVtcHR5
CisgIHVuaXR0ZXN0LlRlc3RDYXNlLnJ1blRlc3QoKSBtZXRob2QKKworLSAicHl0aG9uIHNldHVw
LnB5IHRlc3QiIG5vdyB3b3JrcyB3aXRoIHB5dGVzdCBpdHNlbGYKKworLSBmaXgvaW1wcm92ZSBp
bnRlcm5hbC9wYWNrYWdpbmcgcmVsYXRlZCBiaXRzOgorCisgIC0gZXhjZXB0aW9uIG1lc3NhZ2Ug
Y2hlY2sgb2YgdGVzdF9ub3NlLnB5IG5vdyBwYXNzZXMgb24gcHl0aG9uMzMgYXMgd2VsbAorCisg
IC0gaXNzdWUyMDYgLSBmaXggdGVzdF9hc3NlcnRyZXdyaXRlLnB5IHRvIHdvcmsgd2hlbiBhIGds
b2JhbAorICAgIFBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEgaXMgcHJlc2VudAorCisgIC0gYWRk
IHRveC5pbmkgdG8gcHl0ZXN0IGRpc3RyaWJ1dGlvbiBzbyB0aGF0IGlnbm9yZS1kaXJzIGFuZCBv
dGhlcnMgY29uZmlnCisgICAgYml0cyBhcmUgcHJvcGVybHkgZGlzdHJpYnV0ZWQgZm9yIG1haW50
YWluZXJzIHdobyBydW4gcHl0ZXN0LW93biB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4zLjMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNDhiNmFjNGJhZjkxOTU4ZDY2
NTk1OTFiNGUzYWNhNWNlOGVmNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuMy5yc3QKQEAgLTAsMCArMSw2MiBAQAorcHl0ZXN0LTIu
My4zOiBpbnRlZ3JhdGlvbiBmaXhlcywgcHkyNCBzdXBwb3J0LCBgYCovKipgYCBzaG93biBpbiB0
cmFjZWJhY2sKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4zLjMgaXMgYW5vdGhlciBz
dGFiaWxpemF0aW9uIHJlbGVhc2Ugb2YgdGhlIHB5LnRlc3QgdG9vbAord2hpY2ggb2ZmZXJzIHVl
YmVyc2ltcGxlIGFzc2VydGlvbnMsIHNjYWxhYmxlIGZpeHR1cmUgbWVjaGFuaXNtcworYW5kIGRl
ZXAgY3VzdG9taXphdGlvbiBmb3IgdGVzdGluZyB3aXRoIFB5dGhvbi4gIFBhcnRpY3VsYXJseSwK
K3RoaXMgcmVsZWFzZSBwcm92aWRlczoKKworLSBpbnRlZ3JhdGlvbiBmaXhlcyBhbmQgaW1wcm92
ZW1lbnRzIHJlbGF0ZWQgdG8gZmxhc2ssIG51bXB5LCBub3NlLCAKKyAgdW5pdHRlc3QsIG1vY2sK
KworLSBtYWtlcyBweXRlc3Qgd29yayBvbiBweTI0IGFnYWluICh5ZXMsIHBlb3BsZSBzb21ldGlt
ZXMgc3RpbGwgbmVlZCB0byB1c2UgaXQpCisKKy0gc2hvdyBgYCosKipgYCBhcmdzIGluIHB5dGVz
dCB0cmFjZWJhY2tzCisKK1RoYW5rcyB0byBNYW51ZWwgSmFjb2IsIFRob21hcyBXYWxkbWFubiwg
Um9ubnkgUGZhbm5zY2htaWR0LCBQYXZlbCBSZXBpbgorYW5kIEFuZHJlYXMgVGF1bW9lZm9sYXUg
Zm9yIHByb3ZpZGluZyBwYXRjaGVzIGFuZCBhbGwgZm9yIHRoZSBpc3N1ZXMuCisKK1NlZSAKKwor
ICAgICBodHRwOi8vcHl0ZXN0Lm9yZy8KKworZm9yIGdlbmVyYWwgaW5mb3JtYXRpb24uICBUbyBp
bnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0ICMg
b3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK2Jlc3QsCitob2xnZXIga3Jla2VsCisK
K0NoYW5nZXMgYmV0d2VlbiAyLjMuMiBhbmQgMi4zLjMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlMjE0IC0gcGFyc2UgbW9kdWxlcyB0aGF0IGNvbnRh
aW4gc3BlY2lhbCBvYmplY3RzIGxpa2UgZS4gZy4KKyAgZmxhc2sncyByZXF1ZXN0IG9iamVjdCB3
aGljaCBibG93cyB1cCBvbiBnZXRhdHRyIGFjY2VzcyBpZiBubyByZXF1ZXN0CisgIGlzIGFjdGl2
ZS4gdGhhbmtzIFRob21hcyBXYWxkbWFubi4KKworLSBmaXggaXNzdWUyMTMgLSBhbGxvdyB0byBw
YXJhbWV0cml6ZSB3aXRoIHZhbHVlcyBsaWtlIG51bXB5IGFycmF5cyB0aGF0CisgIGRvIG5vdCBz
dXBwb3J0IGFuIF9fZXFfXyBvcGVyYXRvcgorCistIGZpeCBpc3N1ZTIxNSAtIHNwbGl0IHRlc3Rf
cHl0aG9uLm9yZyBpbnRvIG11bHRpcGxlIGZpbGVzCisKKy0gZml4IGlzc3VlMTQ4IC0gQHVuaXR0
ZXN0LnNraXAgb24gY2xhc3NlcyBpcyBub3cgcmVjb2duaXplZCBhbmQgYXZvaWRzCisgIGNhbGxp
bmcgc2V0VXBDbGFzcy90ZWFyRG93bkNsYXNzLCB0aGFua3MgUGF2ZWwgUmVwaW4KKworLSBmaXgg
aXNzdWUyMDkgLSByZWludHJvZHVjZSBweXRob24yLjQgc3VwcG9ydCBieSBkZXBlbmRpbmcgb24g
bmV3ZXIKKyAgcHlsaWIgd2hpY2ggcmUtaW50cm9kdWNlZCBzdGF0ZW1lbnQtZmluZGluZyBmb3Ig
cHJlLUFTVCBpbnRlcnByZXRlcnMKKworLSBub3NlIHN1cHBvcnQ6IG9ubHkgY2FsbCBzZXR1cCBp
ZiBpdCdzIGEgY2FsbGFibGUsIHRoYW5rcyBBbmRyZXcKKyAgVGF1bW9lZm9sYXUKKworLSBmaXgg
aXNzdWUyMTkgLSBhZGQgcHkyLjQtMy4zIGNsYXNzaWZpZXJzIHRvIFRST1ZFIGxpc3QKKworLSBp
biB0cmFjZWJhY2tzICosKiogYXJnIHZhbHVlcyBhcmUgbm93IHNob3duIG5leHQgdG8gbm9ybWFs
IGFyZ3VtZW50cworICAodGhhbmtzIE1hbnVlbCBKYWNvYikKKworLSBmaXggaXNzdWUyMTcgLSBz
dXBwb3J0IG1vY2sucGF0Y2ggd2l0aCBweXRlc3QncyBmaXh0dXJlcyAtIG5vdGUgdGhhdAorICB5
b3UgbmVlZCBlaXRoZXIgbW9jay0xLjAuMSBvciB0aGUgcHl0aG9uMy4zIGJ1aWx0aW4gdW5pdHRl
c3QubW9jay4KKworLSBmaXggaXNzdWUxMjcgLSBpbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIHB5
dGVzdF9hZGRvcHRpb24oKSBhbmQKKyAgYWRkIGEgYGBjb25maWcuZ2V0b3B0aW9uKG5hbWUpYGAg
aGVscGVyIGZ1bmN0aW9uIGZvciBjb25zaXN0ZW5jeS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi4zLjQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YzU5N2I1NDg5MDk0OWUx
ZDQwZGVhZTRiZGIzNmU5YmM2MWNkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMuNC5yc3QKQEAgLTAsMCArMSwzOSBAQAorcHl0ZXN0
LTIuMy40OiBzdGFiaWxpemF0aW9uLCBtb3JlIGZsZXhpYmxlIHNlbGVjdGlvbiB2aWEgIi1rIGV4
cHIiCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0LTIuMy40IGlzIGEgc21hbGwgc3RhYmls
aXphdGlvbiByZWxlYXNlIG9mIHRoZSBweS50ZXN0IHRvb2wKK3doaWNoIG9mZmVycyB1ZWJlcnNp
bXBsZSBhc3NlcnRpb25zLCBzY2FsYWJsZSBmaXh0dXJlIG1lY2hhbmlzbXMKK2FuZCBkZWVwIGN1
c3RvbWl6YXRpb24gZm9yIHRlc3Rpbmcgd2l0aCBQeXRob24uICBUaGlzIHJlbGVhc2UKK2NvbWVz
IHdpdGggdGhlIGZvbGxvd2luZyBmaXhlcyBhbmQgZmVhdHVyZXM6CisKKy0gbWFrZSAiLWsiIG9w
dGlvbiBhY2NlcHQgYW4gZXhwcmVzc2lvbnMgdGhlIHNhbWUgYXMgd2l0aCAiLW0iIHNvIHRoYXQg
b25lCisgIGNhbiB3cml0ZTogLWsgIm5hbWUxIG9yIG5hbWUyIiBldGMuICBUaGlzIGlzIGEgc2xp
Z2h0IHVzYWdlIGluY29tcGF0aWJpbGl0eQorICBpZiB5b3UgdXNlZCBzcGVjaWFsIHN5bnRheCBs
aWtlICJUZXN0Q2xhc3MudGVzdF9tZXRob2QiIHdoaWNoIHlvdSBub3cKKyAgbmVlZCB0byB3cml0
ZSBhcyAtayAiVGVzdENsYXNzIGFuZCB0ZXN0X21ldGhvZCIgdG8gbWF0Y2ggYSBjZXJ0YWluCisg
IG1ldGhvZCBpbiBhIGNlcnRhaW4gdGVzdCBjbGFzcy4gIAorLSBhbGxvdyB0byBkeW5hbWljYWxs
eSBkZWZpbmUgbWFya2VycyB2aWEKKyAgaXRlbS5rZXl3b3Jkc1suLi5dPWFzc2lnbm1lbnQgaW50
ZWdyYXRpbmcgd2l0aCAiLW0iIG9wdGlvbgorLSB5aWVsZGVkIHRlc3QgZnVuY3Rpb25zIHdpbGwg
bm93IGhhdmUgYXV0b3VzZS1maXh0dXJlcyBhY3RpdmUgYnV0IAorICBjYW5ub3QgYWNjZXB0IGZp
eHR1cmVzIGFzIGZ1bmNhcmdzIC0gaXQncyBhbnl3YXkgcmVjb21tZW5kZWQgdG8KKyAgcmF0aGVy
IHVzZSB0aGUgcG9zdC0yLjAgcGFyYW1ldHJpemUgZmVhdHVyZXMgaW5zdGVhZCBvZiB5aWVsZCwg
c2VlOgorICBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZXhhbXBsZS9wYXJhbWV0cml6ZS5odG1s
CistIGZpeCBhdXRvdXNlLWlzc3VlIHdoZXJlIGF1dG91c2UtZml4dHVyZXMgd291bGQgbm90IGJl
IGRpc2NvdmVyZWQKKyAgaWYgZGVmaW5lZCBpbiBhIGEvY29uZnRlc3QucHkgZmlsZSBhbmQgdGVz
dHMgaW4gYS90ZXN0cy90ZXN0X3NvbWUucHkKKy0gZml4IGlzc3VlMjI2IC0gTElGTyBvcmRlcmlu
ZyBmb3IgZml4dHVyZSB0ZWFyZG93bnMKKy0gZml4IGlzc3VlMjI0IC0gaW52b2NhdGlvbnMgd2l0
aCA+MjU2IGNoYXIgYXJndW1lbnRzIG5vdyB3b3JrCistIGZpeCBpc3N1ZTkxIC0gYWRkL2Rpc2N1
c3MgcGFja2FnZS9kaXJlY3RvcnkgbGV2ZWwgc2V0dXBzIGluIGV4YW1wbGUKKy0gZml4ZXMgcmVs
YXRlZCB0byBhdXRvdXNlIGRpc2NvdmVyeSBhbmQgY2FsbGluZworCitUaGFua3MgaW4gcGFydGlj
dWxhciB0byBUaG9tYXMgV2FsZG1hbm4gZm9yIHNwb3R0aW5nIGFuZCByZXBvcnRpbmcgaXNzdWVz
LgorCitTZWUgCisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK2ZvciBnZW5lcmFsIGluZm9y
bWF0aW9uLiAgVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoKKworICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitiZXN0LAoraG9s
Z2VyIGtyZWtlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4zLjUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjUu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjExMjM5OWVmM2NhN2U5MTRiOTNlNGM2YjM4ZThlMzE2MDJjZjMzMjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjMuNS5yc3QKQEAgLTAsMCArMSw5NyBAQAorcHl0ZXN0LTIuMy41OiBidWcgZml4ZXMgYW5kIGxp
dHRsZSBpbXByb3ZlbWVudHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4zLjUgaXMg
YSBtYWludGVuYW5jZSByZWxlYXNlIHdpdGggbWFueSBidWcgZml4ZXMgYW5kIGxpdHRsZQoraW1w
cm92ZW1lbnRzLiAgU2VlIHRoZSBjaGFuZ2Vsb2cgYmVsb3cgZm9yIGRldGFpbHMuICBObyBiYWNr
d2FyZAorY29tcGF0aWJpbGl0eSBpc3N1ZXMgYXJlIGZvcmVzZWVuIGFuZCBhbGwgcGx1Z2lucyB3
aGljaCB3b3JrZWQgd2l0aCB0aGUKK3ByaW9yIHZlcnNpb24gYXJlIGV4cGVjdGVkIHRvIHdvcmsg
dW5tb2RpZmllZC4gICBTcGVha2luZyBvZiB3aGljaCwgYQorZmV3IGludGVyZXN0aW5nIG5ldyBw
bHVnaW5zIHNhdyB0aGUgbGlnaHQgbGFzdCBtb250aDoKKworLSBweXRlc3QtaW5zdGFmYWlsOiBz
aG93IGZhaWx1cmUgaW5mb3JtYXRpb24gd2hpbGUgdGVzdHMgYXJlIHJ1bm5pbmcKKy0gcHl0ZXN0
LXF0OiB0ZXN0aW5nIG9mIEdVSSBhcHBsaWNhdGlvbnMgd3JpdHRlbiB3aXRoIFFUL1B5c2lkZQor
LSBweXRlc3QteHByb2Nlc3M6IG1hbmFnaW5nIGV4dGVybmFsIHByb2Nlc3NlcyBhY3Jvc3MgdGVz
dCBydW5zCistIHB5dGVzdC1yYW5kb206IHJhbmRvbWl6ZSB0ZXN0IG9yZGVyaW5nCisKK0FuZCBz
ZXZlcmFsIG90aGVycyBsaWtlIHB5dGVzdC1kamFuZ28gc2F3IG1haW50ZW5hbmNlIHJlbGVhc2Vz
LgorRm9yIGEgbW9yZSBjb21wbGV0ZSBsaXN0LCBjaGVjayBvdXQgCitodHRwczovL3B5cGkucHl0
aG9uLm9yZy9weXBpPyUzQWFjdGlvbj1zZWFyY2gmdGVybT1weXRlc3Qmc3VibWl0PXNlYXJjaC4K
KworRm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gc2VlOgorCisgICAgIGh0dHA6Ly9weXRlc3Qub3Jn
LworCitUbyBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK1BhcnRpY3VsYXIgdGhh
bmtzIHRvIEZsb3JpcywgUm9ubnksIEJlbmphbWluIGFuZCB0aGUgbWFueSBidWcgcmVwb3J0ZXJz
CithbmQgZml4IHByb3ZpZGVycy4KKworbWF5IHRoZSBmaXh0dXJlcyBiZSB3aXRoIHlvdSwKK2hv
bGdlciBrcmVrZWwKKworCitDaGFuZ2VzIGJldHdlZW4gMi4zLjQgYW5kIDIuMy41CistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIG5ldmVyIGNvbnNpZGVyIGEgZml4dHVy
ZSBmdW5jdGlvbiBmb3IgdGVzdCBmdW5jdGlvbiBjb2xsZWN0aW9uCisKKy0gYWxsb3cgcmUtcnVu
bmluZyBvZiB0ZXN0IGl0ZW1zIC8gaGVscHMgdG8gZml4IHB5dGVzdC1yZXJ1bnRlc3RzIHBsdWdp
bgorICBhbmQgYWxzbyBoZWxwIHRvIGtlZXAgbGVzcyBmaXh0dXJlL3Jlc291cmNlIHJlZmVyZW5j
ZXMgYWxpdmUKKworLSBwdXQgY2FwdHVyZWQgc3Rkb3V0L3N0ZGVyciBpbnRvIGp1bml0eG1sIG91
dHB1dCBldmVuIGZvciBwYXNzaW5nIHRlc3RzCisgICh0aGFua3MgQWRhbSBHb3VjaGVyKQorCist
IElzc3VlIDI2NSAtIGludGVncmF0ZSBub3NlIHNldHVwL3RlYXJkb3duIHdpdGggc2V0dXBzdGF0
ZQorICBzbyBpdCBkb2Vzbid0IHRyeSB0byB0ZWFyZG93biBpZiBpdCBkaWQgbm90IHNldHVwCisK
Ky0gaXNzdWUgMjcxIC0gZG9uJ3Qgd3JpdGUganVuaXR4bWwgb24gc2xhdmUgbm9kZXMKKworLSBJ
c3N1ZSAyNzQgLSBkb24ndCB0cnkgdG8gc2hvdyBmdWxsIGRvY3Rlc3QgZXhhbXBsZQorICB3aGVu
IGRvY3Rlc3QgZG9lcyBub3Qga25vdyB0aGUgZXhhbXBsZSBsb2NhdGlvbgorCistIGlzc3VlIDI4
MCAtIGRpc2FibGUgYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBidWdneSBDUHl0aG9uIDIuNi4wCisK
Ky0gaW5qZWN0ICJnZXRmaXh0dXJlKCkiIGhlbHBlciB0byByZXRyaWV2ZSBmaXh0dXJlcyBmcm9t
IGRvY3Rlc3RzLAorICB0aGFua3MgQW5kcmVhcyBaZWlkbGVyCisKKy0gaXNzdWUgMjU5IC0gd2hl
biBhc3NlcnRpb24gcmV3cml0aW5nLCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGRlZmF1bHQKKyAg
c291cmNlIGVuY29kaW5nIG9mIEFTQ0lJIG9uIFB5dGhvbiAyCisKKy0gaXNzdWUgMjUxIC0gcmVw
b3J0IGEgc2tpcCBpbnN0ZWFkIG9mIGlnbm9yaW5nIGNsYXNzZXMgd2l0aCBpbml0CisKKy0gaXNz
dWUyNTAgdW5pY29kZS9zdHIgbWl4ZXMgaW4gcGFyYW1ldHJpemF0aW9uIG5hbWVzIGFuZCB2YWx1
ZXMgbm93IHdvcmtzCisKKy0gaXNzdWUyNTcsIGFzc2VydGlvbi10cmlnZ2VyZWQgY29tcGlsYXRp
b24gb2Ygc291cmNlIGVuZGluZyBpbiBhCisgIGNvbW1lbnQgbGluZSBkb2Vzbid0IGJsb3cgdXAg
aW4gcHl0aG9uMi41IChmaXhlZCB0aHJvdWdoIHB5Pj0xLjQuMTMuZGV2NikKKworLSBmaXggLS1n
ZW5zY3JpcHQgb3B0aW9uIHRvIGdlbmVyYXRlIHN0YW5kYWxvbmUgc2NyaXB0cyB0aGF0IGFsc28K
KyAgd29yayB3aXRoIHB5dGhvbjMuMyAoaW1wb3J0ZXIgb3JkZXJpbmcpCisKKy0gaXNzdWUxNzEg
LSBpbiBhc3NlcnRpb24gcmV3cml0aW5nLCBzaG93IHRoZSByZXByIG9mIHNvbWUKKyAgZ2xvYmFs
IHZhcmlhYmxlcworCistIGZpeCBvcHRpb24gaGVscCBmb3IgIi1rIgorCistIG1vdmUgbG9uZyBk
ZXNjcmlwdGlvbiBvZiBkaXN0cmlidXRpb24gaW50byBSRUFETUUucnN0CisKKy0gaW1wcm92ZSBk
b2NzdHJpbmcgZm9yIG1ldGFmdW5jLnBhcmFtZXRyaXplKCkKKworLSBmaXggYnVnIHdoZXJlIHVz
aW5nIGNhcHN5cyB3aXRoIHB5dGVzdC5zZXRfdHJhY2UoKSBpbiBhIHRlc3QKKyAgZnVuY3Rpb24g
d291bGQgYnJlYWsgd2hlbiBsb29raW5nIGF0IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKworLSBhbGxv
dyB0byBzcGVjaWZ5IHByZWZpeGVzIHN0YXJ0aW5nIHdpdGggIl8iIHdoZW4gCisgIGN1c3RvbWl6
aW5nIHB5dGhvbl9mdW5jdGlvbnMgdGVzdCBkaXNjb3ZlcnkuICh0aGFua3MgR3JhaGFtIEhvcmxl
cikKKworLSBpbXByb3ZlIFBZVEVTVF9ERUJVRyB0cmFjaW5nIG91dHB1dCBieSBwdXR0aW5nCisg
IGV4dHJhIGRhdGEgb24gYSBuZXcgbGluZXMgd2l0aCBhZGRpdGlvbmFsIGluZGVudAorCistIGVu
c3VyZSBPdXRjb21lRXhjZXB0aW9ucyBsaWtlIHNraXAvZmFpbCBoYXZlIGluaXRpYWxpemVkIGV4
Y2VwdGlvbiBhdHRyaWJ1dGVzCisKKy0gaXNzdWUgMjYwIC0gZG9uJ3QgdXNlIG5vc2Ugc3BlY2lh
bCBzZXR1cCBvbiBwbGFpbiB1bml0dGVzdCBjYXNlcworCistIGZpeCBpc3N1ZTEzNCAtIHByaW50
IHRoZSBjb2xsZWN0IGVycm9ycyB0aGF0IHByZXZlbnQgcnVubmluZyBzcGVjaWZpZWQgdGVzdCBp
dGVtcworCistIGZpeCBpc3N1ZTI2NiAtIGFjY2VwdCB1bmljb2RlIGluIE1hcmtFdmFsdWF0b3Ig
ZXhwcmVzc2lvbnMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi40LjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40
LjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlM2FhZWRiMDlmZjdmNmNlYWVkZTI0N2E2MGY5NzE0ZDYwZDRl
ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0yLjQuMC5yc3QKQEAgLTAsMCArMSwyMjUgQEAKK3B5dGVzdC0yLjQuMDogbmV3IGZpeHR1cmUg
ZmVhdHVyZXMvaG9va3MgYW5kIGJ1ZyBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBq
dXN0IHJlbGVhc2VkIHB5dGVzdC0yLjQuMCBicmluZ3MgbWFueSBpbXByb3ZlbWVudHMgYW5kIG51
bWVyb3VzIAorYnVnIGZpeGVzIHdoaWxlIHJlbWFpbmluZyBwbHVnaW4tIGFuZCB0ZXN0LXN1aXRl
IGNvbXBhdGlibGUgYXBhcnQKK2Zyb20gYSBmZXcgc3VwcG9zZWRseSB2ZXJ5IG1pbm9yIGluY29t
cGF0aWJpbGl0aWVzLiAgU2VlIGJlbG93IGZvciAKK2EgZnVsbCBsaXN0IG9mIGRldGFpbHMuICBB
IGZldyBmZWF0dXJlIGhpZ2hsaWdodHM6CisKKy0gbmV3IHlpZWxkLXN0eWxlIGZpeHR1cmVzIGBw
eXRlc3QueWllbGRfZml4dHVyZQorICA8aHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3lpZWxkZml4
dHVyZS5odG1sPmBfLCBhbGxvd2luZyB0byB1c2UKKyAgZXhpc3Rpbmcgd2l0aC1zdHlsZSBjb250
ZXh0IG1hbmFnZXJzIGluIGZpeHR1cmUgZnVuY3Rpb25zLgorCistIGltcHJvdmVkIHBkYiBzdXBw
b3J0OiBgYGltcG9ydCBwZGIgOyBwZGIuc2V0X3RyYWNlKClgYCBub3cgd29ya3MKKyAgd2l0aG91
dCByZXF1aXJpbmcgcHJpb3IgZGlzYWJsaW5nIG9mIHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nLgor
ICBBbHNvIHRoZSBgYC0tcGRiYGAgb3B0aW9ucyB3b3JrcyBub3cgb24gY29sbGVjdGlvbiBhbmQg
aW50ZXJuYWwgZXJyb3JzCisgIGFuZCB3ZSBpbnRyb2R1Y2VkIGEgbmV3IGV4cGVyaW1lbnRhbCBo
b29rIGZvciBJREVzL3BsdWdpbnMgdG8gCisgIGludGVyY2VwdCBkZWJ1Z2dpbmc6IGBgcHl0ZXN0
X2V4Y2VwdGlvbl9pbnRlcmFjdChub2RlLCBjYWxsLCByZXBvcnQpYGAuCisKKy0gc2hvcnRlciBt
b25rZXlwYXRjaCB2YXJpYW50IHRvIGFsbG93IHNwZWNpZnlpbmcgYW4gaW1wb3J0IHBhdGggYXMK
KyAgYSB0YXJnZXQsIGZvciBleGFtcGxlOiBgYG1vbmtleXBhdGNoLnNldGF0dHIoInJlcXVlc3Rz
LmdldCIsIG15ZnVuYylgYAorCistIGJldHRlciB1bml0dGVzdC9ub3NlIGNvbXBhdGliaWxpdHk6
IGFsbCB0ZWFyZG93biBtZXRob2RzIGFyZSBub3cgb25seQorICBjYWxsZWQgaWYgdGhlIGNvcnJl
c3BvbmRpbmcgc2V0dXAgbWV0aG9kIHN1Y2NlZWRlZC4KKworLSBpbnRlZ3JhdGUgdGFiLWNvbXBs
ZXRpb24gb24gY29tbWFuZCBsaW5lIG9wdGlvbnMgaWYgeW91CisgIGhhdmUgYGFyZ2NvbXBsZXRl
IDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYXJnY29tcGxldGU+YF8gCisgIGNvbmZpZ3Vy
ZWQuCisKKy0gYWxsb3cgYm9vbGVhbiBleHByZXNzaW9uIGRpcmVjdGx5IHdpdGggc2tpcGlmL3hm
YWlsCisgIGlmIGEgInJlYXNvbiIgaXMgYWxzbyBzcGVjaWZpZWQuCisKKy0gYSBuZXcgaG9vayBg
YHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzYGAgYWxsb3dzIHBsdWdpbnMgbGlrZQorICBg
cHl0ZXN0LWRqYW5nbyA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1kamFuZ28+
YF8gdG8KKyAgaW5mbHVlbmNlIHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgY29uZnRlc3QgZmlsZXMg
aW1wb3J0IGBgZGphbmdvYGAuCisKKy0gcmVwb3J0aW5nOiBjb2xvciB0aGUgbGFzdCBsaW5lIHJl
ZCBvciBncmVlbiBkZXBlbmRpbmcgaWYKKyAgZmFpbHVyZXMvZXJyb3JzIG9jY3VycmVkIG9yIGV2
ZXJ5dGhpbmcgcGFzc2VkLgorCitUaGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiB1cGRhdGVkIHRv
IGFjY29tbW9kYXRlIHRoZSBjaGFuZ2VzLCAKK3NlZSBgaHR0cDovL3B5dGVzdC5vcmcgPGh0dHA6
Ly9weXRlc3Qub3JnPmBfIAorCitUbyBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OjoKKworICAg
IHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAor
CisKKyoqTWFueSB0aGFua3MgdG8gYWxsIHdobyBoZWxwZWQsIGluY2x1ZGluZyBGbG9yaXMgQnJ1
eW5vb2doZSwgCitCcmlhbm5hIExhdWdoZXIsIEFuZHJlYXMgUGVsbWUsIEFudGhvbiB2YW4gZGVy
IE5ldXQsIEFuYXRvbHkgQnViZW5rb2ZmLCAKK1ZsYWRpbWlyIEtlbGVzaGV2LCBNYXRoaWV1IEFn
b3BpYW4sIFJvbm55IFBmYW5uc2NobWlkdCwgQ2hyaXN0aWFuCitUaGV1bmVydCBhbmQgbWFueSBv
dGhlcnMuKioKKworbWF5IHBhc3NpbmcgdGVzdHMgYmUgd2l0aCB5b3UsCisKK2hvbGdlciBrcmVr
ZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMy41IGFuZCAyLjQKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK2tub3duIGluY29tcGF0aWJpbGl0aWVzOgorCistIGlmIGNhbGxp
bmcgLS1nZW5zY3JpcHQgZnJvbSBweXRob24yLjcgb3IgYWJvdmUsIHlvdSBvbmx5IGdldCBhCisg
IHN0YW5kYWxvbmUgc2NyaXB0IHdoaWNoIHdvcmtzIG9uIHB5dGhvbjIuNyBvciBhYm92ZS4gIFVz
ZSBQeXRob24yLjYKKyAgdG8gYWxzbyBnZXQgYSBweXRob24yLjUgY29tcGF0aWJsZSB2ZXJzaW9u
LgorCistIGFsbCB4dW5pdC1zdHlsZSB0ZWFyZG93biBtZXRob2RzIChub3NlLXN0eWxlLCBweXRl
c3Qtc3R5bGUsCisgIHVuaXR0ZXN0LXN0eWxlKSB3aWxsIG5vdCBiZSBjYWxsZWQgaWYgdGhlIGNv
cnJlc3BvbmRpbmcgc2V0dXAgbWV0aG9kIGZhaWxlZCwKKyAgc2VlIGlzc3VlMzIyIGJlbG93Lgor
CistIHRoZSBweXRlc3RfcGx1Z2luX3VucmVnaXN0ZXIgaG9vayB3YXNuJ3QgZXZlciBwcm9wZXJs
eSBjYWxsZWQKKyAgYW5kIHRoZXJlIGlzIG5vIGtub3duIGltcGxlbWVudGF0aW9uIG9mIHRoZSBo
b29rIC0gc28gaXQgZ290IHJlbW92ZWQuCisKKy0gcHl0ZXN0LmZpeHR1cmUtZGVjb3JhdGVkIGZ1
bmN0aW9ucyBjYW5ub3QgYmUgZ2VuZXJhdG9ycyAoaS5lLiB1c2UKKyAgeWllbGQpIGFueW1vcmUu
ICBUaGlzIGNoYW5nZSBtaWdodCBiZSByZXZlcnNlZCBpbiAyLjQuMSBpZiBpdCBjYXVzZXMKKyAg
dW5mb3Jlc2VlbiByZWFsLWxpZmUgaXNzdWVzLiAgSG93ZXZlciwgeW91IGNhbiBhbHdheXMgd3Jp
dGUgYW5kIHJldHVybgorICBhbiBpbm5lciBmdW5jdGlvbi9nZW5lcmF0b3IgYW5kIGNoYW5nZSB0
aGUgZml4dHVyZSBjb25zdW1lciB0byBpdGVyYXRlCisgIG92ZXIgdGhlIHJldHVybmVkIGdlbmVy
YXRvci4gIFRoaXMgY2hhbmdlIHdhcyBkb25lIGluIGxpZXUgb2YgdGhlIG5ldworICBgYHB5dGVz
dC55aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yLCBzZWUgYmVsb3cuCisKK25ldyBmZWF0dXJlczoK
KworLSBleHBlcmltZW50YWxseSBpbnRyb2R1Y2UgYSBuZXcgYGBweXRlc3QueWllbGRfZml4dHVy
ZWBgIGRlY29yYXRvcgorICB3aGljaCBhY2NlcHRzIGV4YWN0bHkgdGhlIHNhbWUgcGFyYW1ldGVy
cyBhcyBweXRlc3QuZml4dHVyZSBidXQKKyAgbWFuZGF0ZXMgYSBgYHlpZWxkYGAgc3RhdGVtZW50
IGluc3RlYWQgb2YgYSBgYHJldHVybiBzdGF0ZW1lbnRgYCBmcm9tCisgIGZpeHR1cmUgZnVuY3Rp
b25zLiAgVGhpcyBhbGxvd3MgZGlyZWN0IGludGVncmF0aW9uIHdpdGggIndpdGgtc3R5bGUiCisg
IGNvbnRleHQgbWFuYWdlcnMgaW4gZml4dHVyZSBmdW5jdGlvbnMgYW5kIGdlbmVyYWxseSBhdm9p
ZHMgcmVnaXN0ZXJpbmcKKyAgb2YgZmluYWxpemF0aW9uIGNhbGxiYWNrcyBpbiBmYXZvdXIgb2Yg
dHJlYXRpbmcgdGhlICJhZnRlci15aWVsZCIgYXMKKyAgdGVhcmRvd24gY29kZS4gIFRoYW5rcyBB
bmRyZWFzIFBlbG1lLCBWbGFkaW1pciBLZWxlc2hldiwgRmxvcmlzCisgIEJydXlub29naGUsIFJv
bm55IFBmYW5uc2NobWlkdCBhbmQgbWFueSBvdGhlcnMgZm9yIGRpc2N1c3Npb25zLgorCistIGFs
bG93IGJvb2xlYW4gZXhwcmVzc2lvbiBkaXJlY3RseSB3aXRoIHNraXBpZi94ZmFpbAorICBpZiBh
ICJyZWFzb24iIGlzIGFsc28gc3BlY2lmaWVkLiAgUmV3b3JrIHNraXBwaW5nIGRvY3VtZW50YXRp
b24KKyAgdG8gcmVjb21tZW5kICJjb25kaXRpb24gYXMgYm9vbGVhbnMiIGJlY2F1c2UgaXQgcHJl
dmVudHMgc3VycHJpc2VzCisgIHdoZW4gaW1wb3J0aW5nIG1hcmtlcnMgYmV0d2VlbiBtb2R1bGVz
LiAgU3BlY2lmeWluZyBjb25kaXRpb25zCisgIGFzIHN0cmluZ3Mgd2lsbCByZW1haW4gZnVsbHkg
c3VwcG9ydGVkLgorCistIHJlcG9ydGluZzogY29sb3IgdGhlIGxhc3QgbGluZSByZWQgb3IgZ3Jl
ZW4gZGVwZW5kaW5nIGlmCisgIGZhaWx1cmVzL2Vycm9ycyBvY2N1cnJlZCBvciBldmVyeXRoaW5n
IHBhc3NlZC4gIHRoYW5rcyBDaHJpc3RpYW4KKyAgVGhldW5lcnQuCisKKy0gbWFrZSAiaW1wb3J0
IHBkYiA7IHBkYi5zZXRfdHJhY2UoKSIgd29yayBuYXRpdmVseSB3cnQgY2FwdHVyaW5nIChubwor
ICAiLXMiIG5lZWRlZCBhbnltb3JlKSwgbWFraW5nIGBgcHl0ZXN0LnNldF90cmFjZSgpYGAgYSBt
ZXJlIHNob3J0Y3V0LgorCistIGZpeCBpc3N1ZTE4MTogLS1wZGIgbm93IGFsc28gd29ya3Mgb24g
Y29sbGVjdCBlcnJvcnMgKGFuZCAKKyAgb24gaW50ZXJuYWwgZXJyb3JzKSAuICBUaGlzIHdhcyBp
bXBsZW1lbnRlZCBieSBhIHNsaWdodCBpbnRlcm5hbCAKKyAgcmVmYWN0b3JpbmcgYW5kIHRoZSBp
bnRyb2R1Y3Rpb24gb2YgYSBuZXcgaG9vayAKKyAgYGBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0
YGAgaG9vayAoc2VlIG5leHQgaXRlbSkuCisKKy0gZml4IGlzc3VlMzQxOiBpbnRyb2R1Y2UgbmV3
IGV4cGVyaW1lbnRhbCBob29rIGZvciBJREVzL3Rlcm1pbmFscyB0byAKKyAgaW50ZXJjZXB0IGRl
YnVnZ2luZzogYGBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGUsIGNhbGwsIHJlcG9ydClg
YC4KKworLSBuZXcgbW9ua2V5cGF0Y2guc2V0YXR0cigpIHZhcmlhbnQgdG8gcHJvdmlkZSBhIHNo
b3J0ZXIKKyAgaW52b2NhdGlvbiBmb3IgcGF0Y2hpbmcgb3V0IGNsYXNzZXMvZnVuY3Rpb25zIGZy
b20gbW9kdWxlczoKKworICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCJyZXF1ZXN0cy5nZXQiLCBt
eWZ1bmMpCisKKyAgd2lsbCByZXBsYWNlIHRoZSAiZ2V0IiBmdW5jdGlvbiBvZiB0aGUgInJlcXVl
c3RzIiBtb2R1bGUgd2l0aCBgYG15ZnVuY2BgLgorCistIGZpeCBpc3N1ZTMyMjogdGVhckRvd25D
bGFzcyBpcyBub3QgcnVuIGlmIHNldFVwQ2xhc3MgZmFpbGVkLiBUaGFua3MKKyAgTWF0aGlldSBB
Z29waWFuIGZvciB0aGUgaW5pdGlhbCBmaXguICBBbHNvIG1ha2UgYWxsIG9mIHB5dGVzdC9ub3Nl
CisgIGZpbmFsaXplciBtaW1pYyB0aGUgc2FtZSBnZW5lcmljIGJlaGF2aW91cjogaWYgYSBzZXR1
cFggZXhpc3RzIGFuZAorICBmYWlscywgZG9uJ3QgcnVuIHRlYXJkb3duWC4gIFRoaXMgaW50ZXJu
YWxseSBpbnRyb2R1Y2VzIGEgbmV3IG1ldGhvZAorICAibm9kZS5hZGRmaW5hbGl6ZXIoKSIgaGVs
cGVyIHdoaWNoIGNhbiBvbmx5IGJlIGNhbGxlZCBkdXJpbmcgdGhlIHNldHVwCisgIHBoYXNlIG9m
IGEgbm9kZS4KKworLSBzaW1wbGlmeSBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgpIHNpZ25hdHVy
ZTogYWxsb3cgdG8gcGFzcyBhCisgIENTVi1zZXBhcmF0ZWQgc3RyaW5nIHRvIHNwZWNpZnkgYXJn
bmFtZXMuICBGb3IgZXhhbXBsZTogCisgIGBgcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImlucHV0
LGV4cGVjdGVkIiwgIFsoMSwyKSwgKDIsMyldKWBgCisgIHdvcmtzIGFzIHdlbGwgYXMgdGhlIHBy
ZXZpb3VzOgorICBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgiaW5wdXQiLCAiZXhwZWN0ZWQi
KSwgLi4uKWBgLgorCistIGFkZCBzdXBwb3J0IGZvciBzZXRVcE1vZHVsZS90ZWFyRG93bk1vZHVs
ZSBkZXRlY3Rpb24sIHRoYW5rcyBCcmlhbiBPa2tlbi4KKworLSBpbnRlZ3JhdGUgdGFiLWNvbXBs
ZXRpb24gb24gb3B0aW9ucyB0aHJvdWdoIHVzZSBvZiAiYXJnY29tcGxldGUiLgorICBUaGFua3Mg
QW50aG9uIHZhbiBkZXIgTmV1dCBmb3IgdGhlIFBSLgorCistIGNoYW5nZSBvcHRpb24gbmFtZXMg
dG8gYmUgaHlwaGVuLXNlcGFyYXRlZCBsb25nIG9wdGlvbnMgYnV0IGtlZXAgdGhlCisgIG9sZCBz
cGVsbGluZyBiYWNrd2FyZCBjb21wYXRpYmxlLiAgcHkudGVzdCAtaCB3aWxsIG9ubHkgc2hvdyB0
aGUKKyAgaHlwaGVuYXRlZCB2ZXJzaW9uLCBmb3IgZXhhbXBsZSAiLS1jb2xsZWN0LW9ubHkiIGJ1
dCAiLS1jb2xsZWN0b25seSIKKyAgd2lsbCByZW1haW4gdmFsaWQgYXMgd2VsbCAoZm9yIGJhY2t3
YXJkLWNvbXBhdCByZWFzb25zKS4gIE1hbnkgdGhhbmtzIHRvCisgIEFudGhvbiB2YW4gZGVyIE5l
dXQgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgdG8gSHluZWsgU2NobGF3YWNrIGZvcgorICBw
dXNoaW5nIHVzLgorCistIGZpeCBpc3N1ZSAzMDggLSBhbGxvdyB0byBtYXJrL3hmYWlsL3NraXAg
aW5kaXZpZHVhbCBwYXJhbWV0ZXIgc2V0cworICB3aGVuIHBhcmFtZXRyaXppbmcuICBUaGFua3Mg
QnJpYW5uYSBMYXVnaGVyLgorCistIGNhbGwgbmV3IGV4cGVyaW1lbnRhbCBweXRlc3RfbG9hZF9p
bml0aWFsX2NvbmZ0ZXN0cyBob29rIHRvIGFsbG93CisgIDNyZCBwYXJ0eSBwbHVnaW5zIHRvIGRv
IHNvbWV0aGluZyBiZWZvcmUgYSBjb25mdGVzdCBpcyBsb2FkZWQuCisKK0J1ZyBmaXhlczoKKwor
LSBmaXggaXNzdWUzNTggLSBjYXB0dXJpbmcgb3B0aW9ucyBhcmUgbm93IHBhcnNlZCBtb3JlIHBy
b3Blcmx5IAorICBieSB1c2luZyBhIG5ldyBwYXJzZXIucGFyc2Vfa25vd25fYXJncyBtZXRob2Qu
CisKKy0gcHl0ZXN0IG5vdyB1c2VzIGFyZ3BhcnNlIGluc3RlYWQgb2Ygb3B0cGFyc2UgKHRoYW5r
cyBBbnRob24pIHdoaWNoIAorICBtZWFucyB0aGF0ICJhcmdwYXJzZSIgaXMgYWRkZWQgYXMgYSBk
ZXBlbmRlbmN5IGlmIGluc3RhbGxpbmcgaW50byBweXRob24yLjYKKyAgZW52aXJvbm1lbnRzIG9y
IGJlbG93LgorCistIGZpeCBpc3N1ZTMzMzogZml4IGEgY2FzZSBvZiBiYWQgdW5pdHRlc3QvcHl0
ZXN0IGhvb2sgaW50ZXJhY3Rpb24uCisKKy0gUFIyNzogY29ycmVjdGx5IGhhbmRsZSBub3NlLlNr
aXBUZXN0IGR1cmluZyBjb2xsZWN0aW9uLiAgVGhhbmtzCisgIEFudG9uaW8gQ3VuaSwgUm9ubnkg
UGZhbm5zY2htaWR0LgorCistIGZpeCBpc3N1ZTM1NToganVuaXR4bWwgcHV0cyBuYW1lPSJweXRl
c3QiIGF0dHJpYnV0ZSB0byB0ZXN0c3VpdGUgdGFnLgorCistIGZpeCBpc3N1ZTMzNjogYXV0b3Vz
ZSBmaXh0dXJlIGluIHBsdWdpbnMgc2hvdWxkIHdvcmsgYWdhaW4uCisKKy0gZml4IGlzc3VlMjc5
OiBpbXByb3ZlIG9iamVjdCBjb21wYXJpc29ucyBvbiBhc3NlcnRpb24gZmFpbHVyZQorICBmb3Ig
c3RhbmRhcmQgZGF0YXR5cGVzIGFuZCByZWNvZ25pc2UgY29sbGVjdGlvbnMuYWJjLiAgVGhhbmtz
IHRvCisgIEJyaWFubmEgTGF1Z2hlciBhbmQgTWF0aGlldSBBZ29waWFuLgorCistIGZpeCBpc3N1
ZTMxNzogYXNzZXJ0aW9uIHJld3JpdGVyIHN1cHBvcnQgZm9yIHRoZSBpc19wYWNrYWdlIG1ldGhv
ZAorCistIGZpeCBpc3N1ZTMzNTogZG9jdW1lbnQgcHkuY29kZS5FeGNlcHRpb25JbmZvKCkgb2Jq
ZWN0IHJldHVybmVkCisgIGZyb20gcHl0ZXN0LnJhaXNlcygpLCB0aGFua3MgTWF0aGlldSBBZ29w
aWFuLgorCistIHJlbW92ZSBpbXBsaWNpdCBkaXN0cmlidXRlX3NldHVwIHN1cHBvcnQgZnJvbSBz
ZXR1cC5weS4KKworLSBmaXggaXNzdWUzMDU6IGlnbm9yZSBhbnkgcHJvYmxlbXMgd2hlbiB3cml0
aW5nIHB5YyBmaWxlcy4KKworLSBTTy0xNzY2NDcwMjogY2FsbCBmaXh0dXJlIGZpbmFsaXplcnMg
ZXZlbiBpZiB0aGUgZml4dHVyZSBmdW5jdGlvbgorICBwYXJ0aWFsbHkgZmFpbGVkIChmaW5hbGl6
ZXJzIHdvdWxkIG5vdCBhbHdheXMgYmUgY2FsbGVkIGJlZm9yZSkKKworLSBmaXggaXNzdWUzMjAg
LSBmaXggY2xhc3Mgc2NvcGUgZm9yIGZpeHR1cmVzIHdoZW4gbWl4ZWQgd2l0aAorICBtb2R1bGUt
bGV2ZWwgZnVuY3Rpb25zLiAgVGhhbmtzIEFuYXRsb3kgQnViZW5rb2ZmLgorCistIHlvdSBjYW4g
c3BlY2lmeSAiLXEiIG9yICItcXEiIHRvIGdldCBkaWZmZXJlbnQgbGV2ZWxzIG9mICJxdWlldGVy
IgorICByZXBvcnRpbmcgKHRoYW5rcyBLYXRhcnp5bmEgSmFjaGltKQorCistIGZpeCBpc3N1ZTMw
MCAtIEZpeCBvcmRlciBvZiBjb25mdGVzdCBsb2FkaW5nIHdoZW4gc3RhcnRpbmcgcHkudGVzdAor
ICBpbiBhIHN1YmRpcmVjdG9yeS4KKworLSBmaXggaXNzdWUzMjMgLSBzb3J0aW5nIG9mIG1hbnkg
bW9kdWxlLXNjb3BlZCBhcmcgcGFyYW1ldHJpemF0aW9ucworCistIG1ha2Ugc2Vzc2lvbmZpbmlz
aCBob29rcyBleGVjdXRlIHdpdGggdGhlIHNhbWUgY3dkLWNvbnRleHQgYXMgYXQKKyAgc2Vzc2lv
biBzdGFydCAoaGVscHMgZml4IHBsdWdpbiBiZWhhdmlvdXIgd2hpY2ggd3JpdGUgb3V0cHV0IGZp
bGVzIAorICB3aXRoIHJlbGF0aXZlIHBhdGggc3VjaCBhcyBweXRlc3QtY292KQorCistIGZpeCBp
c3N1ZTMxNiAtIHByb3Blcmx5IHJlZmVyZW5jZSBjb2xsZWN0aW9uIGhvb2tzIGluIGRvY3MKKwor
LSBmaXggaXNzdWUgMzA2IC0gY2xlYW51cCBvZiAtay8tbSBvcHRpb25zIHRvIG9ubHkgbWF0Y2gg
bWFya2Vycy90ZXN0CisgIG5hbWVzL2tleXdvcmRzIHJlc3BlY3RpdmVseS4gIFRoYW5rcyBXb3V0
ZXIgdmFuIEFja29veS4KKworLSBpbXByb3ZlZCBkb2N0ZXN0IGNvdW50aW5nIGZvciBkb2N0ZXN0
cyBpbiBweXRob24gbW9kdWxlcyAtLSAKKyAgZmlsZXMgd2l0aG91dCBhbnkgZG9jdGVzdCBpdGVt
cyB3aWxsIG5vdCBzaG93IHVwIGFueW1vcmUKKyAgYW5kIGRvY3Rlc3QgZXhhbXBsZXMgYXJlIGNv
dW50ZWQgYXMgc2VwYXJhdGUgdGVzdCBpdGVtcy4KKyAgdGhhbmtzIERhbmlsbyBCZWxsaW5pLgor
CistIGZpeCBpc3N1ZTI0NSBieSBkZXBlbmRpbmcgb24gdGhlIHJlbGVhc2VkIHB5LTEuNC4xNAor
ICB3aGljaCBmaXhlcyBweS5pby5kdXBmaWxlIHRvIHdvcmsgd2l0aCBmaWxlcyB3aXRoIG5vCisg
IG1vZGUuIFRoYW5rcyBKYXNvbiBSLiBDb29tYnMuCisKKy0gZml4IGp1bml0eG1sIGdlbmVyYXRp
b24gd2hlbiB0ZXN0IG91dHB1dCBjb250YWlucyBjb250cm9sIGNoYXJhY3RlcnMsCisgIGFkZHJl
c3NpbmcgaXNzdWUyNjcsIHRoYW5rcyBKYWFwIEJyb2VraHVpemVuIAorCistIGZpeCBpc3N1ZTMz
ODogaG9ub3IgLS10YiBzdHlsZSBmb3Igc2V0dXAvdGVhcmRvd24gZXJyb3JzIGFzIHdlbGwuICBU
aGFua3MgTWFoby4KKworLSBmaXggaXNzdWUzMDcgLSB1c2UgeWFtbC5zYWZlX2xvYWQgaW4gZXhh
bXBsZSwgdGhhbmtzIE1hcmsgRWljaGluLgorCistIGJldHRlciBwYXJhbWV0cml6ZSBlcnJvciBt
ZXNzYWdlcywgdGhhbmtzIEJyaWFubmEgTGF1Z2hlcgorCistIHB5dGVzdF90ZXJtaW5hbF9zdW1t
YXJ5KHRlcm1pbmFscmVwb3J0ZXIpIGhvb2tzIGNhbiBub3cgdXNlCisgICIuc2VjdGlvbih0aXRs
ZSkiIGFuZCAiLmxpbmUobXNnKSIgbWV0aG9kcyB0byBwcmludCBleHRyYSAKKyAgaW5mb3JtYXRp
b24gYXQgdGhlIGVuZCBvZiBhIHRlc3QgcnVuLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjQuMS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjQuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRiYTE3MGY4OTc3MjdiODE0YmQz
NDJiZWNkNTdmM2NlNWNhZTk2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4xLnJzdApAQCAtMCwwICsxLDI1IEBACitweXRlc3QtMi40
LjE6IGZpeGluZyB0aHJlZSByZWdyZXNzaW9ucyBjb21wYXJlZCB0byAyLjMuNQorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK3B5dGVzdC0yLjQuMSBpcyBhIHF1aWNrIGZvbGxvdyB1cCByZWxlYXNlIHRv
IGZpeCB0aHJlZSByZWdyZXNzaW9ucworY29tcGFyZWQgdG8gMi4zLjUgYmVmb3JlIHRoZXkgaGl0
IG1vcmUgcGVvcGxlOgorCistIFdoZW4gdXNpbmcgcGFyc2VyLmFkZG9wdGlvbigpIHVuaWNvZGUg
YXJndW1lbnRzIHRvIHRoZQorICAidHlwZSIga2V5d29yZCBzaG91bGQgYWxzbyBiZSBjb252ZXJ0
ZWQgdG8gdGhlIHJlc3BlY3RpdmUgdHlwZXMuCisgIHRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZSwg
QGRub3pheS4gKGZpeGVzIGlzc3VlMzYwIGFuZCBpc3N1ZTM2MikKKworLSBmaXggZG90dGVkIGZp
bGVuYW1lIGNvbXBsZXRpb24gd2hlbiB1c2luZyBhcmdjb21wbGV0ZSAKKyAgdGhhbmtzIEFudGhv
biB2YW4gZGVyIE5ldXRoLiAoZml4ZXMgaXNzdWUzNjEpCisKKy0gZml4IHJlZ3Jlc3Npb24gd2hl
biBhIDEtdHVwbGUgKCJhcmciLCkgaXMgdXNlZCBmb3Igc3BlY2lmeWluZworICBwYXJhbWV0cml6
YXRpb24gKHRoZSB2YWx1ZXMgb2YgdGhlIHBhcmFtZXRyaXphdGlvbiB3ZXJlIHBhc3NlZAorICBu
ZXN0ZWQgaW4gYSB0dXBsZSkuICBUaGFua3MgRG9uYWxkIFN0dWZmdC4KKworLSBhbHNvIG1lcmdl
IGRvYyB0eXBvIGZpeGVzLCB0aGFua3MgQW5keSBEaXJuYmVyZ2VyCisKK2FzIHVzdWFsLCBkb2Nz
IGF0IGh0dHA6Ly9weXRlc3Qub3JnIGFuZCB1cGdyYWRlcyB2aWE6OgorCisgICAgcGlwIGluc3Rh
bGwgLVUgcHl0ZXN0CisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjIucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNGFhOTVhYmJj
YzRkZmM1YjRkMGQ2ZmEyN2JhYTdlZjQ4NGE2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjQuMi5yc3QKQEAgLTAsMCArMSwzOSBAQAor
cHl0ZXN0LTIuNC4yOiBjb2xvcmFtYSBvbiB3aW5kb3dzLCBwbHVnaW4vdG1wZGlyIGZpeGVzCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0LTIuNC4yIGlzIGFub3RoZXIgYnVnLWZpeGluZyBy
ZWxlYXNlOgorCistIG9uIFdpbmRvd3MgcmVxdWlyZSBjb2xvcmFtYSBhbmQgYSBuZXdlciBweSBs
aWIgc28gdGhhdCBweS5pby5UZXJtaW5hbFdyaXRlcigpCisgIG5vdyB1c2VzIGNvbG9yYW1hIGlu
c3RlYWQgb2YgaXRzIG93biBjdHlwZXMgaGFja3MuIChmaXhlcyBpc3N1ZTM2NSkKKyAgdGhhbmtz
IFBhdWwgTW9vcmUgZm9yIGJyaW5naW5nIGl0IHVwLgorCistIGZpeCAiLWsiIG1hdGNoaW5nIG9m
IHRlc3RzIHdoZXJlICJyZXByIiBhbmQgImF0dHIiIGFuZCBvdGhlciBuYW1lcyB3b3VsZAorICBj
YXVzZSB3cm9uZyBtYXRjaGVzIGJlY2F1c2Ugb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24g
cXVpcmsKKyAgKGRvbid0IGFzaykgd2hpY2ggaXMgbm93IHByb3Blcmx5IGltcGxlbWVudGVkLiBm
aXhlcyBpc3N1ZTM0NS4KKworLSBhdm9pZCB0bXBkaXIgZml4dHVyZSB0byBjcmVhdGUgdG9vIGxv
bmcgZmlsZW5hbWVzIGVzcGVjaWFsbHkKKyAgd2hlbiBwYXJhbWV0cml6YXRpb24gaXMgdXNlZCAo
aXNzdWUzNTQpCisKKy0gZml4IHB5dGVzdC1wZXA4IGFuZCBweXRlc3QtZmxha2VzIC8gcHl0ZXN0
IGludGVyYWN0aW9ucworICAoY29sbGVjdGlvbiBuYW1lcyBpbiBtYXJrIHBsdWdpbiB3YXMgYXNz
dW1pbmcgYW4gaXRlbSBhbHdheXMKKyAgaGFzIGEgZnVuY3Rpb24gd2hpY2ggaXMgbm90IHRydWUg
Zm9yIHRob3NlIHBsdWdpbnMgZXRjLikKKyAgVGhhbmtzIEFuZGkgWmVpZGxlci4KKworLSBpbnRy
b2R1Y2Ugbm9kZS5nZXRfbWFya2VyL25vZGUuYWRkX21hcmtlciBBUEkgZm9yIHBsdWdpbnMKKyAg
bGlrZSBweXRlc3QtcGVwOCBhbmQgcHl0ZXN0LWZsYWtlcyB0byBhdm9pZCB0aGUgbWVzc3kKKyAg
ZGV0YWlscyBvZiB0aGUgbm9kZS5rZXl3b3JkcyAgcHNldWRvLWRpY3RzLiAgQWRhcHRlZAorICBk
b2NzLgorCistIHJlbW92ZSBhdHRlbXB0IHRvICJkdXAiIHN0ZG91dCBhdCBzdGFydHVwIGFzIGl0
J3MgaWNreS4KKyAgdGhlIG5vcm1hbCBjYXB0dXJpbmcgc2hvdWxkIGNhdGNoIGVub3VnaCBwb3Nz
aWJpbGl0aWVzCisgIG9mIHRlc3RzIG1lc3NpbmcgdXAgc3RhbmRhcmQgRkRzLiAKKworLSBhZGQg
cGx1Z2lubWFuYWdlci5kb19jb25maWd1cmUoY29uZmlnKSBhcyBhIGxpbmsgdG8gCisgIGNvbmZp
Zy5kb19jb25maWd1cmUoKSBmb3IgcGx1Z2luLWNvbXBhdGliaWxpdHkKKworYXMgdXN1YWwsIGRv
Y3MgYXQgaHR0cDovL3B5dGVzdC5vcmcgYW5kIHVwZ3JhZGVzIHZpYTo6CisKKyAgICBwaXAgaW5z
dGFsbCAtVSBweXRlc3QKKworaGF2ZSBmdW4sCitob2xnZXIga3Jla2VsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjUuMC5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjUuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA0YTgyNWNk
OGU0ZmYxZTQzMWE2MDZjY2UyNGU2NmQ2OGM2ZDg1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4wLnJzdApAQCAtMCwwICsxLDE3NSBA
QAorcHl0ZXN0LTIuNS4wOiBub3cgZG93biB0byBaRVJPIHJlcG9ydGVkIGJ1Z3MhCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworcHl0ZXN0LTIuNS4wIGlzIGEgYmlnIGZpeGluZyByZWxlYXNlLCB0aGUg
cmVzdWx0IG9mIHR3byBjb21tdW5pdHkgYnVnCitmaXhpbmcgZGF5cyBwbHVzIG51bWVyb3VzIGFk
ZGl0aW9uYWwgd29ya3MgZnJvbSBtYW55IHBlb3BsZSBhbmQKK3JlcG9ydGVycy4gIFRoZSByZWxl
YXNlIHNob3VsZCBiZSBmdWxseSBjb21wYXRpYmxlIHRvIDIuNC4yLCBleGlzdGluZworcGx1Z2lu
cyBhbmQgdGVzdCBzdWl0ZXMuICBXZSBhaW0gYXQgbWFpbnRhaW5pbmcgdGhpcyBsZXZlbCBvZiBa
RVJPIHJlcG9ydGVkIAorYnVncyBiZWNhdXNlIGl0J3Mgbm8gZnVuIGlmIHlvdXIgdGVzdGluZyB0
b29sIGhhcyBidWdzLCBpcyBpdD8gIFVuZGVyIGEKK2NvbmRpdGlvbiwgdGhvdWdoOiB3aGVuIHN1
Ym1pdHRpbmcgYSBidWcgcmVwb3J0IHBsZWFzZSBwcm92aWRlCitjbGVhciBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgY2lyY3Vtc3RhbmNlcyBhbmQgYSBzaW1wbGUgZXhhbXBsZSB3aGljaAorcmVwcm9k
dWNlcyB0aGUgcHJvYmxlbS4KKworVGhlIGlzc3VlIHRyYWNrZXIgaXMgb2YgY291cnNlIG5vdCBl
bXB0eSBub3cuICBXZSBoYXZlIG1hbnkgcmVtYWluaW5nCisiZW5oYWNlbWVudCIgaXNzdWVzIHdo
aWNoIHdlJ2xsIGhvcGVmdWxseSBjYW4gdGFja2xlIGluIDIwMTQgd2l0aCB5b3VyCitoZWxwLgor
CitGb3IgdGhvc2Ugd2hvIHVzZSBvbGRlciBQeXRob24gdmVyc2lvbnMsIHBsZWFzZSBub3RlIHRo
YXQgcHl0ZXN0IGlzIG5vdAorYXV0b21hdGljYWxseSB0ZXN0ZWQgb24gcHl0aG9uMi41IGR1ZSB0
byB2aXJ0dWFsZW52LCBzZXR1cHRvb2xzIGFuZCB0b3gKK25vdCBzdXBwb3J0aW5nIGl0IGFueW1v
cmUuICBNYW51YWwgdmVyaWZpY2F0aW9uIHNob3dzIHRoYXQgaXQgbW9zdGx5Cit3b3JrcyBmaW5l
IGJ1dCBpdCdzIG5vdCBnb2luZyB0byBiZSBwYXJ0IG9mIHRoZSBhdXRvbWF0ZWQgcmVsZWFzZSAK
K3Byb2Nlc3MgYW5kIHRodXMgbGlrZWx5IHRvIGJyZWFrIGluIHRoZSBmdXR1cmUuCisKK0FzIHVz
dWFsLCBjdXJyZW50IGRvY3MgYXJlIGF0IAorCisgICAgaHR0cDovL3B5dGVzdC5vcmcgCisKK2Fu
ZCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBw
eXRlc3QKKworUGFydGljdWxhciB0aGFua3MgZm9yIGhlbHBpbmcgd2l0aCB0aGlzIHJlbGVhc2Ug
Z28gdG8gQW5hdG9seSBCdWJlbmtvZmYsCitGbG9yaXMgQnJ1eW5vb2doZSwgTWFyYyBBYnJhbW93
aXR6LCBSYWxwaCBTY2htaXR0LCBSb25ueSBQZmFubnNjaG1pZHQsCitEb25hbGQgU3R1ZmZ0LCBK
YW1lcyBMYW4sIFJvYiBEZW5uaXMsIEphc29uIFIuIENvb21icywgTWF0aGlldSBBZ29waWFuLAor
VmlyZ2lsIER1cHJhcywgQnJ1bm8gT2xpdmVpcmEsIEFsZXggR2F5bm9yIGFuZCBvdGhlcnMuCisK
K2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCisKKzIuNS4wCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCistIGRyb3BwZWQgcHl0aG9uMi41IGZyb20gYXV0b21hdGVkIHJl
bGVhc2UgdGVzdGluZyBvZiBweXRlc3QgaXRzZWxmIAorICB3aGljaCBtZWFucyBpdCdzIHByb2Jh
Ymx5IGdvaW5nIHRvIGJyZWFrIHNvb24gKGJ1dCBzdGlsbCB3b3JrcyAKKyAgd2l0aCB0aGlzIHJl
bGVhc2Ugd2UgYmVsaWV2ZSkuCisKKy0gc2ltcGxpZmllZCBhbmQgZml4ZWQgaW1wbGVtZW50YXRp
b24gZm9yIGNhbGxpbmcgZmluYWxpemVycyB3aGVuCisgIHBhcmFtZXRyaXplZCBmaXh0dXJlcyBv
ciBmdW5jdGlvbiBhcmd1bWVudHMgYXJlIGludm9sdmVkLiAgZmluYWxpemF0aW9uIAorICBpcyBu
b3cgcGVyZm9ybWVkIGxhemlseSBhdCBzZXR1cCB0aW1lIGluc3RlYWQgb2YgaW4gdGhlICJ0ZWFy
ZG93biBwaGFzZSIuCisgIFdoaWxlIHRoaXMgbWlnaHQgc291bmQgb2RkIGF0IGZpcnN0LCBpdCBo
ZWxwcyB0byBlbnN1cmUgdGhhdCB3ZSBhcmUgCisgIGNvcnJlY3RseSBoYW5kbGluZyBzZXR1cC90
ZWFyZG93biBldmVuIGluIGNvbXBsZXggY29kZS4gIFVzZXItbGV2ZWwgY29kZQorICBzaG91bGQg
bm90IGJlIGFmZmVjdGVkIHVubGVzcyBpdCdzIGltcGxlbWVudGluZyB0aGUgcHl0ZXN0X3J1bnRl
c3RfdGVhcmRvd24KKyAgaG9vayBhbmQgZXhwZWN0aW5nIGNlcnRhaW4gZml4dHVyZSBpbnN0YW5j
ZXMgYXJlIHRvcm4gZG93biB3aXRoaW4gKHZlcnkKKyAgdW5saWtlbHkgYW5kIHdvdWxkIGhhdmUg
YmVlbiB1bnJlbGlhYmxlIGFueXdheSkuCisKKy0gUFI5MDogYWRkIC0tY29sb3I9eWVzfG5vfGF1
dG8gb3B0aW9uIHRvIGZvcmNlIHRlcm1pbmFsIGNvbG9yaW5nIAorICBtb2RlICgiYXV0byIgaXMg
ZGVmYXVsdCkuICBUaGFua3MgTWFyYyBBYnJhbW93aXR6LgorCistIGZpeCBpc3N1ZTMxOSAtIGNv
cnJlY3RseSBzaG93IHVuaWNvZGUgaW4gYXNzZXJ0aW9uIGVycm9ycy4gIE1hbnkKKyAgdGhhbmtz
IHRvIEZsb3JpcyBCcnV5bm9vZ2hlIGZvciB0aGUgY29tcGxldGUgUFIuICBBbHNvIG1lYW5zCisg
IHdlIGRlcGVuZCBvbiBweT49MS40LjE5IG5vdy4KKworLSBmaXggaXNzdWUzOTYgLSBjb3JyZWN0
bHkgc29ydCBhbmQgZmluYWxpemUgY2xhc3Mtc2NvcGVkIHBhcmFtZXRyaXplZCAKKyAgdGVzdHMg
aW5kZXBlbmRlbnRseSBmcm9tIG51bWJlciBvZiBtZXRob2RzIG9uIHRoZSBjbGFzcy4gIAorCist
IHJlZml4IGlzc3VlMzIzIGluIGEgYmV0dGVyIHdheSAtLSBwYXJhbWV0cml6YXRpb24gc2hvdWxk
IG5vdyBuZXZlcgorICBjYXVzZSBSdW50aW1lIFJlY3Vyc2lvbiBlcnJvcnMgYmVjYXVzZSB0aGUg
dW5kZXJseWluZyBhbGdvcml0aG0KKyAgZm9yIHJlLW9yZGVyaW5nIHRlc3RzIHBlci1zY29wZS9w
ZXItZml4dHVyZSBpcyBub3QgcmVjdXJzaXZlCisgIGFueW1vcmUgKGl0IHdhcyB0YWlsLWNhbGwg
cmVjdXJzaXZlIGJlZm9yZSB3aGljaCBjb3VsZCBsZWFkCisgIHRvIHByb2JsZW1zIGZvciBtb3Jl
IHRoYW4gPjk2NiBub24tZnVuY3Rpb24gc2NvcGVkIHBhcmFtZXRlcnMpLgorCistIGZpeCBpc3N1
ZTI5MCAtIHRoZXJlIGlzIHByZWxpbWluYXJ5IHN1cHBvcnQgbm93IGZvciBwYXJhbWV0cml6aW5n
CisgIHdpdGggcmVwZWF0ZWQgc2FtZSB2YWx1ZXMgKHNvbWV0aW1lcyB1c2VmdWwgdG8gdGVzdCBp
ZiBjYWxsaW5nIAorICBhIHNlY29uZCB0aW1lIHdvcmtzIGFzIHdpdGggdGhlIGZpcnN0IHRpbWUp
LgorCistIGNsb3NlIGlzc3VlMjQwIC0gZG9jdW1lbnQgcHJlY2lzZWx5IGhvdyBweXRlc3QgbW9k
dWxlIGltcG9ydGluZworICB3b3JrcywgZGlzY3VzcyB0aGUgdHdvIGNvbW1vbiB0ZXN0IGRpcmVj
dG9yeSBsYXlvdXRzLCBhbmQgaG93IGl0IAorICBpbnRlcmFjdHMgd2l0aCBQRVA0MjAtbmFtZXNw
YWNlIHBhY2thZ2VzLgorCistIGZpeCBpc3N1ZTI0NiBmaXggZmluYWxpemVyIG9yZGVyIHRvIGJl
IExJRk8gb24gaW5kZXBlbmRlbnQgZml4dHVyZXMKKyAgZGVwZW5kaW5nIG9uIGEgcGFyYW1ldHJp
emVkIGhpZ2hlci10aGFuLWZ1bmN0aW9uIHNjb3BlZCBmaXh0dXJlLiAKKyAgKHdhcyBxdWl0ZSBz
b21lIGVmZm9ydCBzbyBwbGVhc2UgYmVhciB3aXRoIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgc2Vu
dGVuY2UgOikKKyAgVGhhbmtzIFJhbHBoIFNjaG1pdHQgZm9yIHRoZSBwcmVjaXNlIGZhaWx1cmUg
ZXhhbXBsZS4KKyAKKy0gZml4IGlzc3VlMjQ0IGJ5IGltcGxlbWVudGluZyBzcGVjaWFsIGluZGV4
IGZvciBwYXJhbWV0ZXJzIHRvIG9ubHkgdXNlCisgIGluZGljZXMgZm9yIHBhcmFtZW50cml6ZWQg
dGVzdCBpZHMKKworLSBmaXggaXNzdWUyODcgYnkgcnVubmluZyBhbGwgZmluYWxpemVycyBidXQg
c2F2aW5nIHRoZSBleGNlcHRpb24KKyAgZnJvbSB0aGUgZmlyc3QgZmFpbGluZyBmaW5hbGl6ZXIg
YW5kIHJlLXJhaXNpbmcgaXQgc28gdGVhcmRvd24gd2lsbAorICBzdGlsbCBoYXZlIGZhaWxlZC4g
IFdlIHJlcmFpc2UgdGhlIGZpcnN0IGZhaWxpbmcgZXhjZXB0aW9uIGJlY2F1c2UKKyAgaXQgbWln
aHQgYmUgdGhlIGNhdXNlIGZvciBvdGhlciBmaW5hbGl6ZXJzIHRvIGZhaWwuCisKKy0gZml4IG9y
ZGVyaW5nIHdoZW4gbW9jay5wYXRjaCBvciBvdGhlciBzdGFuZGFyZCBkZWNvcmF0b3Itd3JhcHBp
bmdzCisgIGFyZSB1c2VkIHdpdGggdGVzdCBtZXRob2RzLiAgVGhpcyBmaXh1ZXMgaXNzdWUzNDYg
YW5kIHNob3VsZAorICBoZWxwIHdpdGggcmFuZG9tICJ4ZGlzdCIgY29sbGVjdGlvbiBmYWlsdXJl
cy4gIFRoYW5rcyB0bworICBSb25ueSBQZmFubnNjaG1pZHQgYW5kIERvbmFsZCBTdHVmZnQgZm9y
IGhlbHBpbmcgdG8gaXNvbGF0ZSBpdC4KKworLSBmaXggaXNzdWUzNTcgLSBzcGVjaWFsIGNhc2Ug
Ii1rIiBleHByZXNzaW9ucyB0byBhbGxvdyBmb3IKKyAgZmlsdGVyaW5nIHdpdGggc2ltcGxlIHN0
cmluZ3MgdGhhdCBhcmUgbm90IHZhbGlkIHB5dGhvbiBleHByZXNzaW9ucy4KKyAgRXhhbXBsZXM6
ICItayAxLjMiIG1hdGNoZXMgYWxsIHRlc3RzIHBhcmFtZXRyaXplZCB3aXRoIDEuMy4KKyAgIi1r
IE5vbmUiIGZpbHRlcnMgYWxsIHRlc3RzIHRoYXQgaGF2ZSAiTm9uZSIgaW4gdGhlaXIgbmFtZQor
ICBhbmQgY29udmVyc2VseSAiLWsgJ25vdCBOb25lJyIuIAorICBQcmV2aW91c2x5IHRoZXNlIGV4
YW1wbGVzIHdvdWxkIHJhaXNlIHN5bnRheCBlcnJvcnMuCisgIAorLSBmaXggaXNzdWUzODQgYnkg
cmVtb3ZpbmcgdGhlIHRyaWFsIHN1cHBvcnQgY29kZQorICBzaW5jZSB0aGUgdW5pdHRlc3QgY29t
cGF0IGVuaGFuY2VtZW50cyBhbGxvdworICB0cmlhbCB0byBoYW5kbGUgaXQgb24gaXRzIG93bgor
CistIGRvbid0IGhpZGUgYW4gSW1wb3J0RXJyb3Igd2hlbiBpbXBvcnRpbmcgYSBwbHVnaW4gcHJv
ZHVjZXMgb25lLgorICBmaXhlcyBpc3N1ZTM3NS4KKworLSBmaXggaXNzdWUyNzUgLSBhbGxvdyB1
c2VmaXh0dXJlcyBhbmQgYXV0b3VzZSBmaXh0dXJlcyAKKyAgZm9yIHJ1bm5pbmcgZG9jdGVzdCB0
ZXh0IGZpbGVzLgorCistIGZpeCBpc3N1ZTM4MCBieSBtYWtpbmcgLS1yZXN1bHRsb2cgb25seSBy
ZWx5IG9uIGxvbmdyZXByIGluc3RlYWQKKyAgb2YgdGhlICJyZXByY3Jhc2giIGF0dHJpYnV0ZSB3
aGljaCBvbmx5IGV4aXN0cyBzb21ldGltZXMuCisKKy0gYWRkcmVzcyBpc3N1ZTEyMjogYWxsb3cg
QHB5dGVzdC5maXh0dXJlKHBhcmFtcz1pdGVyYXRvcikgYnkgZXhwbG9kaW5nCisgIGludG8gYSBs
aXN0IGVhcmx5IG9uLgorCistIGZpeCBwZXhwZWN0LTMuMCBjb21wYXRpYmlsaXR5IGZvciBweXRl
c3QncyBvd24gdGVzdHMuCisgIChmaXhlcyBpc3N1ZTM4NikKKworLSBhbGxvdyBuZXN0ZWQgcGFy
YW1ldHJpemUtdmFsdWUgbWFya2VycywgdGhhbmtzIEphbWVzIExhbiBmb3IgdGhlIFBSLgorCist
IGZpeCB1bmljb2RlIGhhbmRsaW5nIHdpdGggbmV3IG1vbmtleXBhdGNoLnNldGF0dHIoaW1wb3J0
X3BhdGgsIHZhbHVlKQorICBBUEkuICBUaGFua3MgUm9iIERlbm5pcy4gIEZpeGVzIGlzc3VlMzcx
LgorCistIGZpeCB1bmljb2RlIGhhbmRsaW5nIHdpdGgganVuaXR4bWwsIGZpeGVzIGlzc3VlMzY4
LgorCistIEluIGFzc2VydGlvbiByZXdyaXRpbmcgbW9kZSBvbiBQeXRob24gMiwgZml4IHRoZSBk
ZXRlY3Rpb24gb2YgY29kaW5nCisgIGNvb2tpZXMuIFNlZSBpc3N1ZSAjMzMwLgorCistIG1ha2Ug
Ii0tcnVueGZhaWwiIHR1cm4gaW1wZXJhdGl2ZSBweXRlc3QueGZhaWwgY2FsbHMgaW50byBubyBv
cHMKKyAgKGl0IGFscmVhZHkgZGlkIG5ldXRyYWxpemUgcHl0ZXN0Lm1hcmsueGZhaWwgbWFya2Vy
cykKKworLSByZWZpbmUgcHl0ZXN0IC8gcGtnX3Jlc291cmNlcyBpbnRlcmFjdGlvbnM6IFRoZSBB
c3NlcnRpb25SZXdyaXRpbmdIb29rCisgIFBFUDMwMiBjb21wbGlhbnQgbG9hZGVyIG5vdyByZWdp
c3RlcnMgaXRzZWxmIHdpdGggc2V0dXB0b29scy9wa2dfcmVzb3VyY2VzIAorICBwcm9wZXJseSBz
byB0aGF0IHRoZSBwa2dfcmVzb3VyY2VzLnJlc291cmNlX3N0cmVhbSBtZXRob2Qgd29ya3MgcHJv
cGVybHkuCisgIEZpeGVzIGlzc3VlMzY2LiAgVGhhbmtzIGZvciB0aGUgaW52ZXN0aWdhdGlvbnMg
YW5kIGZ1bGwgUFIgdG8gSmFzb24gUi4gQ29vbWJzLgorCistIHB5dGVzdGNvbmZpZyBmaXh0dXJl
IGlzIG5vdyBzZXNzaW9uLXNjb3BlZCBhcyBpdCBpcyB0aGUgc2FtZSBvYmplY3QgZHVyaW5nIHRo
ZQorICB3aG9sZSB0ZXN0IHJ1bi4gIEZpeGVzIGlzc3VlMzcwLiAKKworLSBhdm9pZCBvbmUgc3Vy
cHJpc2luZyBjYXNlIG9mIG1hcmtlciBtYWxmdW5jdGlvbi9jb25mdXNpb246OgorICAKKyAgICAg
IEBweXRlc3QubWFyay5zb21lKGxhbWJkYSBhcmc6IC4uLikKKyAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uKCk6CisKKyAgd291bGQgbm90IHdvcmsgY29ycmVjdGx5IGJlY2F1c2UgcHl0ZXN0IGFzc3Vt
ZXMgQHB5dGVzdC5tYXJrLnNvbWUgCisgIGdldHMgYSBmdW5jdGlvbiB0byBiZSBkZWNvcmF0ZWQg
YWxyZWFkeS4gIFdlIG5vdyBhdCBsZWFzdCBkZXRlY3QgaWYgdGhpcyAKKyAgYXJnIGlzIGEgbGFt
YmRhIGFuZCB0aHVzIHRoZSBleGFtcGxlIHdpbGwgd29yay4gIFRoYW5rcyBBbGV4IEdheW5vcgor
ICBmb3IgYnJpbmdpbmcgaXQgdXAuCisKKy0geGZhaWwgYSB0ZXN0IG9uIHB5cHkgdGhhdCBjaGVj
a3Mgd3JvbmcgZW5jb2RpbmcvYXNjaWkgKHB5cHkgZG9lcworICBub3QgZXJyb3Igb3V0KS4gZml4
ZXMgaXNzdWUzODUuCisKKy0gaW50ZXJuYWxseSBtYWtlIHZhcm5hbWVzKCkgZGVhbCB3aXRoIGNs
YXNzZXMncyBfX2luaXRfXywKKyAgYWx0aG91Z2ggaXQncyBub3QgbmVlZGVkIGJ5IHB5dGVzdCBp
dHNlbGYgYXRtLiAgQWxzbworICBmaXggY2FjaGluZy4gIEZpeGVzIGlzc3VlMzc2LgorCistIGZp
eCBpc3N1ZTIyMSAtIGhhbmRsZSBpbXBvcnRpbmcgb2YgbmFtZXNwYWNlLXBhY2thZ2Ugd2l0aCBu
byAKKyAgX19pbml0X18ucHkgcHJvcGVybHkuCisKKy0gcmVmYWN0b3IgaW50ZXJuYWwgRml4dHVy
ZVJlcXVlc3QgaGFuZGxpbmcgdG8gYXZvaWQgbW9ua2V5cGF0Y2hpbmcuCisgIE9uZSBvZiB0aGUg
cG9zaXRpdmUgdXNlci1mYWNpbmcgZWZmZWN0cyBpcyB0aGF0IHRoZSAicmVxdWVzdCIgb2JqZWN0
IAorICBjYW4gbm93IGJlIHVzZWQgaW4gY2xvc3VyZXMuCisKKy0gZml4ZWQgdmVyc2lvbiBjb21w
YXJpc29uIGluIHB5dGVzdC5pbXBvcnRza2lwKG1vZG5hbWUsIG1pbnZlcnN0cmluZykKKworLSBm
aXggaXNzdWUzNzcgYnkgY2xhcmlmeWluZyBpbiB0aGUgbm9zZS1jb21wYXQgZG9jcyB0aGF0IHB5
dGVzdAorICBkb2VzIG5vdCBkdXBsaWNhdGUgdGhlIHVuaXR0ZXN0LUFQSSBpbnRvIHRoZSAicGxh
aW4iIG5hbWVzcGFjZS4KKworLSBmaXggdmVyYm9zZSByZXBvcnRpbmcgZm9yIEBtb2NrJ2QgdGVz
dCBmdW5jdGlvbnMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi41LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41
LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEzYTc0Y2VjNjI2NTZjYzUwMTZkNjhiZTdlOTY4MWYwNTcyOTJl
NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0yLjUuMS5yc3QKQEAgLTAsMCArMSw0NyBAQAorcHl0ZXN0LTIuNS4xOiBmaXhlcyBhbmQgbmV3
IGhvbWUgcGFnZSBzdHlsaW5nCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0
dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMDAwIHRlc3RzIAorYWdh
aW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBw
bGF0Zm9ybXMuICAKKworVGhlIDIuNS4xIHJlbGVhc2UgbWFpbnRhaW5zIHRoZSAiemVyby1yZXBv
cnRlZC1idWdzIiBwcm9taXNlIGJ5IGZpeGluZwordGhlIHRocmVlIGJ1Z3MgcmVwb3J0ZWQgc2lu
Y2UgdGhlIGxhc3QgcmVsZWFzZSBhIGZldyBkYXlzIGFnby4gIEl0IGFsc28KK2ZlYXR1cmVzIGEg
bmV3IGhvbWUgcGFnZSBzdHlsaW5nIGltcGxlbWVudGVkIGJ5IFRvYmlhcyBCaWVuaWVrLCBiYXNl
ZCBvbgordGhlIGZsYXNrIHRoZW1lIGZyb20gQXJtaW4gUm9uYWNoZXI6CisKKyAgICBodHRwOi8v
cHl0ZXN0Lm9yZworCitJZiB5b3UgaGF2ZSBhbnl0aGluZyBtb3JlIHRvIGltcHJvdmUgc3R5bGlu
ZyBhbmQgZG9jcywgCit3ZSdkIGJlIHZlcnkgaGFwcHkgdG8gbWVyZ2UgZnVydGhlciBwdWxsIHJl
cXVlc3RzLgorCitPbiB0aGUgY29kaW5nIHNpZGUsIHRoZSByZWxlYXNlIGFsc28gY29udGFpbnMg
YSBsaXR0bGUgZW5oYW5jZW1lbnQgdG8KK2ZpeHR1cmUgZGVjb3JhdG9ycyBhbGxvd2luZyB0byBk
aXJlY3RseSBpbmZsdWVuY2UgZ2VuZXJhdGlvbiBvZiB0ZXN0CitpZHMsIHRoYW5rcyB0byBGbG9y
aXMgQnJ1eW5vb2doZS4gIE90aGVyIHRoYW5rcyBmb3IgaGVscGluZyB3aXRoIAordGhpcyByZWxl
YXNlIGdvIHRvIEFuYXRvbHkgQnViZW5rb2ZmIGFuZCBSb25ueSBQZmFubnNjaG1pZHQuCisKK0Fz
IHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFs
bCAtVSBweXRlc3QKKworaGF2ZSBmdW4gYW5kIGEgbmljZSByZW1haW5pbmcgImJ1Zy1mcmVlIiB0
aW1lIG9mIHRoZSB5ZWFyIDopCitob2xnZXIga3Jla2VsCisKKzIuNS4xCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIG1lcmdlIG5ldyBkb2N1bWVudGF0aW9uIHN0eWxp
bmcgUFIgZnJvbSBUb2JpYXMgQmllbmllay4KKworLSBmaXggaXNzdWU0MDM6IGFsbG93IHBhcmFt
ZXRyaXplIG9mIG11bHRpcGxlIHNhbWUtbmFtZSBmdW5jdGlvbnMgd2l0aGluCisgIGEgY29sbGVj
dGlvbiBub2RlLiAgVGhhbmtzIEFuZHJlYXMgS2xvZWNrbmVyIGFuZCBBbGV4IEdheW5vciBmb3Ig
cmVwb3J0aW5nCisgIGFuZCBhbmFseXNpcy4KKworLSBBbGxvdyBwYXJhbWV0ZXJpemVkIGZpeHR1
cmVzIHRvIHNwZWNpZnkgdGhlIElEIG9mIHRoZSBwYXJhbWV0ZXJzIGJ5CisgIGFkZGluZyBhbiBp
ZHMgYXJndW1lbnQgdG8gcHl0ZXN0LmZpeHR1cmUoKSBhbmQgcHl0ZXN0LnlpZWxkX2ZpeHR1cmUo
KS4KKyAgVGhhbmtzIEZsb3JpcyBCcnV5bm9vZ2hlLiAKKworLSBmaXggaXNzdWU0MDQgYnkgYWx3
YXlzIHVzaW5nIHRoZSBiaW5hcnkgeG1sIGVzY2FwZSBpbiB0aGUganVuaXR4bWwKKyAgcGx1Z2lu
LiAgVGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdC4KKworLSBmaXggaXNzdWU0MDc6IGZpeCBhZGRv
cHRpb24gZG9jc3RyaW5nIHRvIHBvaW50IHRvIGFyZ3BhcnNlIGluc3RlYWQgb2YKKyAgb3B0cGFy
c2UuIFRoYW5rcyBEYW5pZWwgRC4gV3JpZ2h0LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjUuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjUuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVjZmNhMmRiZGFkNjFhNzZmZjE3
N2UzMWQwOGM5NzkyZmNlMmNiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4yLnJzdApAQCAtMCwwICsxLDY0IEBACitweXRlc3QtMi41
LjI6IGZpeGVzIAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRo
b24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTAwMCB0ZXN0cyAKK2FnYWluc3QgaXRz
ZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1z
LiAgCisKK1RoZSAyLjUuMiByZWxlYXNlIGZpeGVzIGEgZmV3IGJ1Z3Mgd2l0aCB0d28gbWF5YmUt
YnVncyByZW1haW5pbmcgYW5kCithY3RpdmVseSBiZWluZyB3b3JrZWQgb24gKGFuZCB3YWl0aW5n
IGZvciB0aGUgYnVnIHJlcG9ydGVyJ3MgaW5wdXQpLgorV2UgYWxzbyBoYXZlIGEgbmV3IGNvbnRy
aWJ1dGlvbiBndWlkZSB0aGFua3MgdG8gUGlvdHIgQmFuYXN6a2lld2ljegorYW5kIG90aGVycy4K
KworU2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91
IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0
CisKK1RoYW5rcyB0byB0aGUgZm9sbG93aW5nIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhp
cyByZWxlYXNlOgorCisgICAgQW5hdG9seSBCdWJlbmtvdiAKKyAgICBSb25ueSBQZmFubnNjaG1p
ZHQKKyAgICBGbG9yaXMgQnJ1eW5vb2doZQorICAgIEJydW5vIE9saXZlaXJhIAorICAgIEFuZHJl
YXMgUGVsbWUgCisgICAgSnVya28gR29zcG9kbmV0acSHCisgICAgUGlvdHIgQmFuYXN6a2lld2lj
eiAKKyAgICBTaW1vbiBMaWVkdGtlIAorICAgIGxha2thIAorICAgIEx1a2FzeiBCYWxjZXJ6YWsg
CisgICAgUGhpbGlwcGUgTXVsbGVyIAorICAgIERhbmllbCBIYWhsZXIgCisKK2hhdmUgZnVuLAor
aG9sZ2VyIGtyZWtlbAorCisyLjUuMgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLSBmaXggaXNzdWU0MDkgLS0gYmV0dGVyIGludGVyb3BlcmF0ZSB3aXRoIGN4X2ZyZWV6
ZSBieSBub3QKKyAgdHJ5aW5nIHRvIGltcG9ydCBmcm9tIGNvbGxlY3Rpb25zLmFiYyB3aGljaCBj
YXVzZXMgcHJvYmxlbXMgCisgIGZvciBweTI3L2N4X2ZyZWV6ZS4gIFRoYW5rcyBXb2xmZ2FuZyBM
LiBmb3IgcmVwb3J0aW5nIGFuZCB0cmFja2luZyBpdCBkb3duLgorCistIGZpeGVkIGRvY3MgYW5k
IGNvZGUgdG8gdXNlICJweXRlc3QiIGluc3RlYWQgb2YgInB5LnRlc3QiIGFsbW9zdCBldmVyeXdo
ZXJlLgorICBUaGFua3MgSnVya28gR29zcG9kbmV0aWMgZm9yIHRoZSBjb21wbGV0ZSBQUi4gIAor
CistIGZpeCBpc3N1ZTQyNTogbWVudGlvbiBhdCBlbmQgb2YgInB5LnRlc3QgLWgiIHRoYXQgLS1t
YXJrZXJzCisgIGFuZCAtLWZpeHR1cmVzIHdvcmsgYWNjb3JkaW5nIHRvIHNwZWNpZmllZCB0ZXN0
IHBhdGggKG9yIGN1cnJlbnQgZGlyKQorCistIGZpeCBpc3N1ZTQxMzogZXhjZXB0aW9ucyB3aXRo
IHVuaWNvZGUgYXR0cmlidXRlcyBhcmUgbm93IHByaW50ZWQKKyAgY29ycmVjdGx5IGFsc28gb24g
cHl0aG9uMiBhbmQgd2l0aCBweXRlc3QteGRpc3QgcnVucy4gKHRoZSBmaXgKKyAgcmVxdWlyZXMg
cHktMS40LjIwKQorCistIGNvcHksIGNsZWFudXAgYW5kIGludGVncmF0ZSBweS5pbyBjYXB0dXJl
CisgIGZyb20gcHlsaWIgMS40LjIwLmRldjIgKHJldiAxM2Q5YWY5NTU0N2UpCisgIAorLSBhZGRy
ZXNzIGlzc3VlNDE2OiBjbGFyaWZ5IGRvY3MgYXMgdG8gY29uZnRlc3QucHkgbG9hZGluZyBzZW1h
bnRpY3MKKworLSBmaXggaXNzdWU0Mjk6IGNvbXBhcmluZyBieXRlIHN0cmluZ3Mgd2l0aCBub24t
YXNjaWkgY2hhcnMgaW4gYXNzZXJ0CisgIGV4cHJlc3Npb25zIG5vdyB3b3JrIGJldHRlci4gIFRo
YW5rcyBGbG9yaXMgQnJ1eW5vb2doZS4KKworLSBtYWtlIGNhcGZkL2NhcHN5cy5jYXB0dXJlIHBy
aXZhdGUsIGl0cyB1bnVzZWQgYW5kIHNob3VsZG4ndCBiZSBleHBvc2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4wLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmI1NDVh
MjhiNGI3NTA1OTdjNjZiMjk1YzhiY2RmNzY4YTM5NzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjAucnN0CkBAIC0wLDAgKzEsMTUz
IEBACitweXRlc3QtMi42LjA6IHNob3J0ZXIgdHJhY2ViYWNrcywgbmV3IHdhcm5pbmcgc3lzdGVt
LCB0ZXN0IHJ1bm5lciBjb21wYXQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBt
YXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDEwMDAgdGVzdHMKK2Fn
YWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQg
cGxhdGZvcm1zLgorCitUaGUgMi42LjAgcmVsZWFzZSBzaG91bGQgYmUgZHJvcC1pbiBiYWNrd2Fy
ZCBjb21wYXRpYmxlIHRvIDIuNS4yIGFuZAorZml4ZXMgYSBudW1iZXIgb2YgYnVncyBhbmQgYnJp
bmdzIHNvbWUgbmV3IGZlYXR1cmVzLCBtYWlubHk6CisKKy0gc2hvcnRlciB0cmFjZWJhY2tzIGJ5
IGRlZmF1bHQ6IG9ubHkgdGhlIGZpcnN0ICh0ZXN0IGZ1bmN0aW9uKSBlbnRyeQorICBhbmQgdGhl
IGxhc3QgKGZhaWx1cmUgbG9jYXRpb24pIGVudHJ5IGFyZSBzaG93biwgdGhlIG9uZXMgYmV0d2Vl
bgorICBvbmx5IGluICJzaG9ydCIgZm9ybWF0LiAgVXNlIGBgLS10Yj1sb25nYGAgdG8gZ2V0IGJh
Y2sgdGhlIG9sZAorICBiZWhhdmlvdXIgb2Ygc2hvd2luZyAibG9uZyIgZW50cmllcyBldmVyeXdo
ZXJlLgorCistIGEgbmV3IHdhcm5pbmcgc3lzdGVtIHdoaWNoIHJlcG9ydHMgb2RkaXRpZXMgZHVy
aW5nIGNvbGxlY3Rpb24KKyAgYW5kIGV4ZWN1dGlvbi4gIEZvciBleGFtcGxlLCBpZ25vcmluZyBj
b2xsZWN0aW5nIFRlc3QqIGNsYXNzZXMgd2l0aCBhbgorICBgYF9faW5pdF9fYGAgbm93IHByb2R1
Y2VzIGEgd2FybmluZy4KKworLSB2YXJpb3VzIGltcHJvdmVtZW50cyB0byBub3NlL21vY2svdW5p
dHRlc3QgaW50ZWdyYXRpb24KKworTm90ZSBhbHNvIHRoYXQgMi42LjAgZGVwYXJ0cyB3aXRoIHRo
ZSAiemVybyByZXBvcnRlZCBidWdzIiBwb2xpY3kKK2JlY2F1c2UgaXQgaGFzIGJlZW4gdG9vIGhh
cmQgdG8ga2VlcCB1cCB3aXRoIGl0LCB1bmZvcnR1bmF0ZWx5LgorSW5zdGVhZCB3ZSBhcmUgZm9y
IG5vdyByYXRoZXIgYm91bmQgdG8gd29yayBvbiAidXB2b3RlZCIgaXNzdWVzIGluCit0aGUgaHR0
cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcz9zdGF0dXM9bmV3JnN0
YXR1cz1vcGVuJnNvcnQ9LXZvdGVzCitpc3N1ZSB0cmFja2VyLgorCitTZWUgZG9jcyBhdDoKKwor
ICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBw
eXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3
aG8gY29udHJpYnV0ZWQsIGFtb25nIHRoZW06CisKKyAgICBCZW5qYW1pbiBQZXRlcnNvbgorICAg
IEp1cmtvIEdvc3BvZG5ldGnEhworICAgIEZsb3JpcyBCcnV5bm9vZ2hlCisgICAgTWFyYyBBYnJh
bW93aXR6CisgICAgTWFyYyBTY2hsYWljaAorICAgIFRyZXZvciBCZWtvbGF5CisgICAgQnJ1bm8g
T2xpdmVpcmEKKyAgICBBbGV4IEdyb2VuaG9sbQorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwK
KworMi42LjAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlz
c3VlNTM3OiBBdm9pZCBpbXBvcnRpbmcgb2xkIGFzc2VydGlvbiByZWludGVycHJldGF0aW9uIGNv
ZGUgYnkgZGVmYXVsdC4KKyAgVGhhbmtzIEJlbmphbWluIFBldGVyc29uLgorCistIGZpeCBpc3N1
ZTM2NDogc2hvcnRlbiBhbmQgZW5oYW5jZSB0cmFjZWJhY2tzIHJlcHJlc2VudGF0aW9uIGJ5IGRl
ZmF1bHQuCisgIFRoZSBuZXcgIi0tdGI9YXV0byIgb3B0aW9uIChkZWZhdWx0KSB3aWxsIG9ubHkg
ZGlzcGxheSBsb25nIHRyYWNlYmFja3MKKyAgZm9yIHRoZSBmaXJzdCBhbmQgbGFzdCBlbnRyeS4g
IFlvdSBjYW4gZ2V0IHRoZSBvbGQgYmVoYXZpb3VyIG9mIHByaW50aW5nCisgIGFsbCBlbnRyaWVz
IGFzIGxvbmcgZW50cmllcyB3aXRoICItLXRiPWxvbmciLiAgQWxzbyBzaG9ydCBlbnRyaWVzIGJ5
CisgIGRlZmF1bHQgYXJlIG5vdyBwcmludGVkIHZlcnkgc2ltaWxhcmx5IHRvICItLXRiPW5hdGl2
ZSIgb25lcy4KKworLSBmaXggaXNzdWU1MTQ6IHRlYWNoIGFzc2VydGlvbiByZWludGVycHJldGF0
aW9uIGFib3V0IHByaXZhdGUgY2xhc3MgYXR0cmlidXRlcworICBUaGFua3MgQmVuamFtaW4gUGV0
ZXJzb24uCisKKy0gY2hhbmdlIC12IG91dHB1dCB0byBpbmNsdWRlIGZ1bGwgbm9kZSBJRHMgb2Yg
dGVzdHMuICBVc2VycyBjYW4gY29weQorICBhIG5vZGUgSUQgZnJvbSBhIHRlc3QgcnVuLCBpbmNs
dWRpbmcgbGluZSBudW1iZXIsIGFuZCB1c2UgaXQgYXMgYQorICBwb3NpdGlvbmFsIGFyZ3VtZW50
IGluIG9yZGVyIHRvIHJ1biBvbmx5IGEgc2luZ2xlIHRlc3QuCisKKy0gZml4IGlzc3VlIDQ3NTog
ZmFpbCBlYXJseSBhbmQgY29tcHJlaGVuc2libGUgaWYgY2FsbGluZworICBweXRlc3QucmFpc2Vz
IHdpdGggd3JvbmcgZXhjZXB0aW9uIHR5cGUuCisKKy0gZml4IGlzc3VlNTE2OiB0ZWxsIGluIGdl
dHRpbmctc3RhcnRlZCBhYm91dCBjdXJyZW50IGRlcGVuZGVuY2llcy4KKworLSBjbGVhbnVwIHNl
dHVwLnB5IGEgYml0IGFuZCBzcGVjaWZ5IHN1cHBvcnRlZCB2ZXJzaW9ucy4gVGhhbmtzIEp1cmtv
CisgIEdvc3BvZG5ldGljIGZvciB0aGUgUFIuCisKKy0gY2hhbmdlIFhQQVNTIGNvbG91ciB0byB5
ZWxsb3cgcmF0aGVyIHRoZW4gcmVkIHdoZW4gdGVzdHMgYXJlIHJ1bgorICB3aXRoIC12LgorCist
IGZpeCBpc3N1ZTQ3Mzogd29yayBhcm91bmQgbW9jayBwdXR0aW5nIGFuIHVuYm91bmQgbWV0aG9k
IGludG8gYSBjbGFzcworICBkaWN0IHdoZW4gZG91YmxlLXBhdGNoaW5nLgorCistIGZpeCBpc3N1
ZTQ5ODogaWYgYSBmaXh0dXJlIGZpbmFsaXplciBmYWlscywgbWFrZSBzdXJlIHRoYXQKKyAgdGhl
IGZpeHR1cmUgaXMgc3RpbGwgaW52YWxpZGF0ZWQuCisKKy0gZml4IGlzc3VlNDUzOiB0aGUgcmVz
dWx0IG9mIHRoZSBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sgbm93IGdldHMKKyAgaXQn
cyBuZXdsaW5lcyBlc2NhcGVkIHNvIHRoYXQgZm9ybWF0X2V4Y2VwdGlvbiBkb2VzIG5vdCBibG93
IHVwLgorCistIGludGVybmFsIG5ldyB3YXJuaW5nIHN5c3RlbTogcHl0ZXN0IHdpbGwgbm93IHBy
b2R1Y2Ugd2FybmluZ3Mgd2hlbgorICBpdCBkZXRlY3RzIG9kZGl0aWVzIGluIHlvdXIgdGVzdCBj
b2xsZWN0aW9uIG9yIGV4ZWN1dGlvbi4KKyAgV2FybmluZ3MgYXJlIHVsdGltYXRlbHkgc2VudCB0
byBhIG5ldyBweXRlc3RfbG9nd2FybmluZyBob29rIHdoaWNoIGlzCisgIGN1cnJlbnRseSBvbmx5
IGltcGxlbWVudGVkIGJ5IHRoZSB0ZXJtaW5hbCBwbHVnaW4gd2hpY2ggZGlzcGxheXMKKyAgd2Fy
bmluZ3MgaW4gdGhlIHN1bW1hcnkgbGluZSBhbmQgc2hvd3MgbW9yZSBkZXRhaWxzIHdoZW4gLXJ3
IChyZXBvcnQgb24KKyAgd2FybmluZ3MpIGlzIHNwZWNpZmllZC4KKworLSBjaGFuZ2Ugc2tpcHMg
aW50byB3YXJuaW5ncyBmb3IgdGVzdCBjbGFzc2VzIHdpdGggYW4gX19pbml0X18gYW5kCisgIGNh
bGxhYmxlcyBpbiB0ZXN0IG1vZHVsZXMgd2hpY2ggbG9vayBsaWtlIGEgdGVzdCBidXQgYXJlIG5v
dCBmdW5jdGlvbnMuCisKKy0gZml4IGlzc3VlNDM2OiBpbXByb3ZlZCBmaW5kaW5nIG9mIGluaXRp
YWwgY29uZnRlc3QgZmlsZXMgZnJvbSBjb21tYW5kCisgIGxpbmUgYXJndW1lbnRzIGJ5IHVzaW5n
IHRoZSByZXN1bHQgb2YgcGFyc2Vfa25vd25fYXJncyByYXRoZXIgdGhhbgorICB0aGUgcHJldmlv
dXMgZmxha3kgaGV1cmlzdGljcy4gIFRoYW5rcyBNYXJjIEFicmFtb3dpdHogZm9yIHRlc3RzCisg
IGFuZCBpbml0aWFsIGZpeGluZyBhcHByb2FjaGVzIGluIHRoaXMgYXJlYS4KKworLSBmaXggaXNz
dWUgIzQ3OTogcHJvcGVybHkgaGFuZGxlIG5vc2UvdW5pdHRlc3QoMikgU2tpcFRlc3QgZXhjZXB0
aW9ucworICBkdXJpbmcgY29sbGVjdGlvbi9sb2FkaW5nIG9mIHRlc3QgbW9kdWxlcy4gIFRoYW5r
cyB0byBNYXJjIFNjaGxhaWNoCisgIGZvciB0aGUgY29tcGxldGUgUFIuCisKKy0gZml4IGlzc3Vl
NDkwOiBpbmNsdWRlIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzIGluIGRvY3VtZW50YXRp
b24KKyAgYW5kIGltcHJvdmUgZG9jc3RyaW5nLgorCistIGZpeCBpc3N1ZTQ3MjogY2xhcmlmeSB0
aGF0IGBgcHl0ZXN0LmNvbmZpZy5nZXR2YWx1ZSgpYGAgY2Fubm90IHdvcmsKKyAgaWYgaXQncyB0
cmlnZ2VyZWQgYWhlYWQgb2YgY29tbWFuZCBsaW5lIHBhcnNpbmcuCisKKy0gbWVyZ2UgUFIxMjM6
IGltcHJvdmVkIGludGVncmF0aW9uIHdpdGggbW9jay5wYXRjaCBkZWNvcmF0b3Igb24gdGVzdHMu
CisKKy0gZml4IGlzc3VlNDEyOiBtZXNzaW5nIHdpdGggc3Rkb3V0L3N0ZGVyciBGRC1sZXZlbCBz
dHJlYW1zIGlzIG5vdworICBjYXB0dXJlZCB3aXRob3V0IGNyYXNoZXMuCisKKy0gZml4IGlzc3Vl
NDgzOiB0cmlhbC9weTMzIHdvcmtzIG5vdyBwcm9wZXJseS4gIFRoYW5rcyBEYW5pZWwgR3JhbmEg
Zm9yIFBSLgorCistIGltcHJvdmUgZXhhbXBsZSBmb3IgcHl0ZXN0IGludGVncmF0aW9uIHdpdGgg
InB5dGhvbiBzZXR1cC5weSB0ZXN0IgorICB3aGljaCBub3cgaGFzIGEgZ2VuZXJpYyAiLWEiIG9y
ICItLXB5dGVzdC1hcmdzIiBvcHRpb24gd2hlcmUgeW91CisgIGNhbiBwYXNzIGFkZGl0aW9uYWwg
b3B0aW9ucyBhcyBhIHF1b3RlZCBzdHJpbmcuICBUaGFua3MgVHJldm9yIEJla29sYXkuCisKKy0g
c2ltcGxpZmllZCBpbnRlcm5hbCBjYXB0dXJpbmcgbWVjaGFuaXNtIGFuZCBtYWRlIGl0IG1vcmUg
cm9idXN0CisgIGFnYWluc3QgdGVzdHMgb3Igc2V0dXBzIGNoYW5naW5nIEZEMS9GRDIsIGFsc28g
YmV0dGVyIGludGVncmF0ZWQKKyAgbm93IHdpdGggcHl0ZXN0LnBkYigpIGluIHNpbmdsZSB0ZXN0
cy4KKworLSBpbXByb3ZlbWVudHMgdG8gcHl0ZXN0J3Mgb3duIHRlc3Qtc3VpdGUgbGVha2FnZSBk
ZXRlY3Rpb24sIGNvdXJ0ZXN5IG9mIFBScworICBmcm9tIE1hcmMgQWJyYW1vd2l0egorCistIGZp
eCBpc3N1ZTQ5MjogYXZvaWQgbGVhayBpbiB0ZXN0X3dyaXRlb3JnLiAgVGhhbmtzIE1hcmMgQWJy
YW1vd2l0ei4KKworLSBmaXggaXNzdWU0OTM6IGRvbid0IHJ1biB0ZXN0cyBpbiBkb2MgZGlyZWN0
b3J5IHdpdGggYGBweXRob24gc2V0dXAucHkgdGVzdGBgCisgICh1c2UgdG94IC1lIGRvY3Rlc3Rp
bmcgZm9yIHRoYXQpCisKKy0gZml4IGlzc3VlNDg2OiBiZXR0ZXIgcmVwb3J0aW5nIGFuZCBoYW5k
bGluZyBvZiBlYXJseSBjb25mdGVzdCBsb2FkaW5nIGZhaWx1cmVzCisKKy0gc29tZSBjbGVhbnVw
IGFuZCBzaW1wbGlmaWNhdGlvbiBvZiBpbnRlcm5hbCBjb25mdGVzdCBoYW5kbGluZy4KKworLSB3
b3JrIGEgYml0IGhhcmRlciB0byBicmVhayByZWZlcmVuY2UgY3ljbGVzIHdoZW4gY2F0Y2hpbmcg
ZXhjZXB0aW9ucy4KKyAgVGhhbmtzIEp1cmtvIEdvc3BvZG5ldGljLgorCistIGZpeCBpc3N1ZTQ0
MzogZml4IHNraXAgZXhhbXBsZXMgdG8gdXNlIHByb3BlciBjb21wYXJpc29uLiAgVGhhbmtzIEFs
ZXgKKyAgR3JvZW5ob2xtLgorCistIHN1cHBvcnQgbm9zZS1zdHlsZSBgYF9fdGVzdF9fYGAgYXR0
cmlidXRlIG9uIG1vZHVsZXMsIGNsYXNzZXMgYW5kCisgIGZ1bmN0aW9ucywgaW5jbHVkaW5nIHVu
aXR0ZXN0LXN0eWxlIENsYXNzZXMuICBJZiBzZXQgdG8gRmFsc2UsIHRoZQorICB0ZXN0IHdpbGwg
bm90IGJlIGNvbGxlY3RlZC4KKworLSBmaXggaXNzdWU1MTI6IHNob3cgIjxub3RzZXQ+IiBmb3Ig
YXJndW1lbnRzIHdoaWNoIG1pZ2h0IG5vdCBiZSBzZXQKKyAgaW4gbW9ua2V5cGF0Y2ggcGx1Z2lu
LiAgSW1wcm92ZXMgb3V0cHV0IGluIGRvY3VtZW50YXRpb24uCisKKy0gYXZvaWQgaW1wb3J0aW5n
ICJweS50ZXN0IiAoYW4gb2xkIGFsaWFzIG1vZHVsZSBmb3IgInB5dGVzdCIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMS5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYyN2M1
ODYxY2FlNTMwZDNlYjYzYzZkZGIwMjcxYmYwN2U3MzQ2MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4xLnJzdApAQCAtMCwwICsxLDU5
IEBACitweXRlc3QtMi42LjE6IGZpeGVzIGFuZCBuZXcgeGZhaWwgZmVhdHVyZQorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGgg
bW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBk
aWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCitUaGUgMi42LjEgcmVsZWFzZSBp
cyBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi41LjIgYW5kIGFjdHVhbGx5IGZpeGVzIHNvbWUKK3Jl
Z3Jlc3Npb25zIGludHJvZHVjZWQgd2l0aCAyLjYuMC4gIEl0IGFsc28gYnJpbmdzIGEgbGl0dGxl
IGZlYXR1cmUKK3RvIHRoZSB4ZmFpbCBtYXJrZXIgd2hpY2ggbm93IHJlY29nbml6ZXMgZXhwZWN0
ZWQgZXhjZXB0aW9ucywKK3NlZSB0aGUgQ0hBTkdFTE9HIGJlbG93LgorCitTZWUgZG9jcyBhdDoK
KworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJv
bSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQsIGFtb25nIHRoZW06CisKKyAgICBGbG9yaXMgQnJ1eW5vb2doZQor
ICAgIEJydW5vIE9saXZlaXJhCisgICAgTmljb2xhcyBEZWxhYnkKKworaGF2ZSBmdW4sCitob2xn
ZXIga3Jla2VsCisKK0NoYW5nZXMgMi42LjEKKz09PT09PT09PT09PT09PT09CisKKy0gTm8gbG9u
Z2VyIHNob3cgbGluZSBudW1iZXJzIGluIHRoZSAtLXZlcmJvc2Ugb3V0cHV0LCB0aGUgb3V0cHV0
IGlzIG5vdworICBwdXJlbHkgdGhlIG5vZGVpZC4gIFRoZSBsaW5lIG51bWJlciBpcyBzdGlsbCBz
aG93biBpbiBmYWlsdXJlIHJlcG9ydHMuCisgIFRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZS4KKwor
LSBmaXggaXNzdWU0Mzcgd2hlcmUgYXNzZXJ0aW9uIHJld3JpdGluZyBjb3VsZCBjYXVzZSBweXRl
c3QteGRpc3Qgc2xhdmVzCisgIHRvIGNvbGxlY3QgZGlmZmVyZW50IHRlc3RzLiBUaGFua3MgQnJ1
bm8gT2xpdmVpcmEuCisKKy0gZml4IGlzc3VlNTU1OiBhZGQgImVycm9ycyIgYXR0cmlidXRlIHRv
IGNhcHR1cmUtc3RyZWFtcyB0byBzYXRpc2Z5CisgIHNvbWUgZGlzdHV0aWxzIGFuZCBwb3NzaWJs
eSBvdGhlciBjb2RlIGFjY2Vzc2luZyBzeXMuc3Rkb3V0LmVycm9ycy4KKworLSBmaXggaXNzdWU1
NDcgY2Fwc3lzL2NhcGZkIGFsc28gd29yayB3aGVuIG91dHB1dCBjYXB0dXJpbmcgKCItcyIpIGlz
IGRpc2FibGVkLgorCistIGFkZHJlc3MgaXNzdWUxNzA6IGFsbG93IHB5dGVzdC5tYXJrLnhmYWls
KC4uLikgdG8gc3BlY2lmeSBleHBlY3RlZCBleGNlcHRpb25zIHZpYQorICBhbiBvcHRpb25hbCAi
cmFpc2VzPUVYQyIgYXJndW1lbnQgd2hlcmUgRVhDIGNhbiBiZSBhIHNpbmdsZSBleGNlcHRpb24K
KyAgb3IgYSB0dXBsZSBvZiBleGNlcHRpb24gY2xhc3Nlcy4gIFRoYW5rcyBEYXZpZCBNb2hyIGZv
ciB0aGUgY29tcGxldGUKKyAgUFIuCisKKy0gZml4IGludGVncmF0aW9uIG9mIHB5dGVzdCB3aXRo
IHVuaXR0ZXN0Lm1vY2sucGF0Y2ggZGVjb3JhdG9yIHdoZW4KKyAgaXQgdXNlcyB0aGUgIm5ldyIg
YXJndW1lbnQuICBUaGFua3MgTmljb2xhcyBEZWxhYnkgZm9yIHRlc3QgYW5kIFBSLgorCistIGZp
eCBpc3N1ZSB3aXRoIGRldGVjdGluZyBjb25mdGVzdCBmaWxlcyBpZiB0aGUgYXJndW1lbnRzIGNv
bnRhaW4KKyAgIjo6IiBub2RlIGlkIHNwZWNpZmljYXRpb25zIChjb3B5IHBhc3RlZCBmcm9tICIt
diIgb3V0cHV0KQorCistIGZpeCBpc3N1ZTU0NCBieSBvbmx5IHJlbW92aW5nICJATlVNIiBhdCB0
aGUgZW5kIG9mICI6OiIgc2VwYXJhdGVkIHBhcnRzCisgIGFuZCBpZiB0aGUgcGFydCBoYXMgYW4g
Ii5weSIgZXh0ZW5zaW9uCisKKy0gZG9uJ3QgdXNlIHB5LnN0ZCBpbXBvcnQgaGVscGVyLCByYXRo
ZXIgaW1wb3J0IHRoaW5ncyBkaXJlY3RseS4KKyAgVGhhbmtzIEJydW5vIE9saXZlaXJhLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMi5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMi5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGVmYzczYTRlYWFkYjY1YWJlMWIwMjg5ZjhhNTNjMzhmZjFhNGQ1NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4yLnJzdApAQCAt
MCwwICsxLDUyIEBACitweXRlc3QtMi42LjI6IGZldyBmaXhlcyBhbmQgY3hfZnJlZXplIHN1cHBv
cnQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3Rp
bmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNz
aW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorVGhpcyBy
ZWxlYXNlIGlzIGRyb3AtaW4gY29tcGF0aWJsZSB0byAyLjUuMiBhbmQgMi42LlguICBJdCBhbHNv
CiticmluZ3Mgc3VwcG9ydCBmb3IgaW5jbHVkaW5nIHB5dGVzdCB3aXRoIGN4X2ZyZWV6ZSBvciBz
aW1pbGFyCitmcmVlemluZyB0b29scyBpbnRvIHlvdXIgc2luZ2xlLWZpbGUgYXBwIGRpc3RyaWJ1
dGlvbi4gIEZvciBkZXRhaWxzCitzZWUgdGhlIENIQU5HRUxPRyBiZWxvdy4KKworU2VlIGRvY3Mg
YXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRl
IGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0
byBhbGwgd2hvIGNvbnRyaWJ1dGVkLCBhbW9uZyB0aGVtOgorCisgICAgRmxvcmlzIEJydXlub29n
aGUKKyAgICBCZW5qYW1pbiBQZXRlcnNvbgorICAgIEJydW5vIE9saXZlaXJhCisKK2hhdmUgZnVu
LAoraG9sZ2VyIGtyZWtlbAorCisyLjYuMgorLS0tLS0tLS0tLS0KKworLSBBZGRlZCBmdW5jdGlv
biBweXRlc3QuZnJlZXplX2luY2x1ZGVzKCksIHdoaWNoIG1ha2VzIGl0IGVhc3kgdG8gZW1iZWQK
KyAgcHl0ZXN0IGludG8gZXhlY3V0YWJsZXMgdXNpbmcgdG9vbHMgbGlrZSBjeF9mcmVlemUuCisg
IFNlZSBkb2NzIGZvciBleGFtcGxlcyBhbmQgcmF0aW9uYWxlLiBUaGFua3MgQnJ1bm8gT2xpdmVp
cmEuCisKKy0gSW1wcm92ZSBhc3NlcnRpb24gcmV3cml0aW5nIGNhY2hlIGludmFsaWRhdGlvbiBw
cmVjaXNpb24uCisKKy0gZml4ZWQgaXNzdWU1NjE6IGFkYXB0IGF1dG91c2UgZml4dHVyZSBleGFt
cGxlIGZvciBweXRob24zLgorCistIGZpeGVkIGlzc3VlNDUzOiBhc3NlcnRpb24gcmV3cml0aW5n
IGlzc3VlIHdpdGggX19yZXByX18gY29udGFpbmluZworICAiXG57IiwgIlxufSIgYW5kICJcbn4i
LgorCistIGZpeCBpc3N1ZTU2MDogY29ycmVjdGx5IGRpc3BsYXkgY29kZSBpZiBhbiAiZWxzZToi
IG9yICJmaW5hbGx5OiIgaXMKKyAgZm9sbG93ZWQgYnkgc3RhdGVtZW50cyBvbiB0aGUgc2FtZSBs
aW5lLgorCistIEZpeCBleGFtcGxlIGluIG1vbmtleXBhdGNoIGRvY3VtZW50YXRpb24sIHRoYW5r
cyB0LThjaC4KKworLSBmaXggaXNzdWU1NzI6IGNvcnJlY3QgdG1wZGlyIGRvYyBleGFtcGxlIGZv
ciBweXRob24zLgorCistIERvIG5vdCBtYXJrIGFzIHVuaXZlcnNhbCB3aGVlbCBiZWNhdXNlIFB5
dGhvbiAyLjYgaXMgZGlmZmVyZW50IGZyb20KKyAgb3RoZXIgYnVpbGRzIGR1ZSB0byB0aGUgZXh0
cmEgYXJncGFyc2UgZGVwZW5kZW5jeS4gIEZpeGVzIGlzc3VlNTY2LgorICBUaGFua3Mgc29udGVr
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYu
My5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMy5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWUwZDI2OTJjNDc0NWMzZTNjMDQ5ODVkZjFmYjI3YTdmMWMwN2E4YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4zLnJz
dApAQCAtMCwwICsxLDUyIEBACitweXRlc3QtMi42LjM6IGZpeGVzIGFuZCBsaXR0bGUgaW1wcm92
ZW1lbnRzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0
ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwg
cGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1Ro
aXMgcmVsZWFzZSBpcyBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi41LjIgYW5kIDIuNi5YLgorU2Vl
IGJlbG93IGZvciB0aGUgY2hhbmdlcyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0
ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisg
ICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVk
LCBhbW9uZyB0aGVtOgorCisgICAgRmxvcmlzIEJydXlub29naGUKKyAgICBPbGVnIFNpbnlhdnNr
aXkKKyAgICBVd2UgU2NobWl0dAorICAgIENoYXJsZXMgQ2xvdWQKKyAgICBXb2xmZ2FuZyBTY2hu
ZXJyaW5nCisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIDIuNi4zCis9PT09
PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNTc1OiB4dW5pdC14bWwgd2FzIHJlcG9y
dGluZyBjb2xsZWN0aW9uIGVycm9ycyBhcyBmYWlsdXJlcworICBpbnN0ZWFkIG9mIGVycm9ycywg
dGhhbmtzIE9sZWcgU2lueWF2c2tpeS4KKworLSBmaXggaXNzdWU1ODI6IGZpeCBzZXR1cHRvb2xz
IGV4YW1wbGUsIHRoYW5rcyBMYXN6bG8gUGFwcCBhbmQgUm9ubnkKKyAgUGZhbm5zY2htaWR0Lgor
CistIEZpeCBpbmZpbml0ZSByZWN1cnNpb24gYnVnIHdoZW4gcGlja2xpbmcgY2FwdHVyZS5FbmNv
ZGVkRmlsZSwgdGhhbmtzCisgIFV3ZSBTY2htaXR0LgorCistIGZpeCBpc3N1ZTU4OTogZml4IGJh
ZCBpbnRlcmFjdGlvbiB3aXRoIG51bXB5IGFuZCBvdGhlcnMgd2hlbiBzaG93aW5nCisgIGV4Y2Vw
dGlvbnMuICBDaGVjayBmb3IgcHJlY2lzZSAibWF4aW11bSByZWN1cnNpb24gZGVwdGggZXhjZWVk
IiBleGNlcHRpb24KKyAgaW5zdGVhZCBvZiBwcmVzdW1pbmcgYW55IFJ1bnRpbWVFcnJvciBpcyB0
aGF0IG9uZSAoaW1wbGVtZW50ZWQgaW4gcHkKKyAgZGVwKS4gIFRoYW5rcyBDaGFybGVzIENsb3Vk
IGZvciBhbmFseXNpbmcgdGhlIGlzc3VlLgorCistIGZpeCBjb25mdGVzdCByZWxhdGVkIGZpeHR1
cmUgdmlzaWJpbGl0eSBpc3N1ZTogd2hlbiBydW5uaW5nIHdpdGggYQorICBDV0Qgb3V0c2lkZSBv
ZiBhIHRlc3QgcGFja2FnZSBweXRlc3Qgd291bGQgZ2V0IGZpeHR1cmUgZGlzY292ZXJ5IHdyb25n
LgorICBUaGFua3MgdG8gV29sZmdhbmcgU2NobmVycmluZyBmb3IgZmlndXJpbmcgb3V0IGEgcmVw
cm9kdWNpYmxlIGV4YW1wbGUuCisKKy0gSW50cm9kdWNlIHB5dGVzdF9lbnRlcl9wZGIgaG9vayAo
bmVlZGVkIGUuZy4gYnkgcHl0ZXN0X3RpbWVvdXQgdG8gY2FuY2VsIHRoZQorICB0aW1lb3V0IHdo
ZW4gaW50ZXJhY3RpdmVseSBlbnRlcmluZyBwZGIpLiAgVGhhbmtzIFdvbGZnYW5nIFNjaG5lcnJp
bmcuCisKKy0gY2hlY2sgeGZhaWwvc2tpcCBhbHNvIHdpdGggbm9uLXB5dGhvbiBmdW5jdGlvbiB0
ZXN0IGl0ZW1zLiBUaGFua3MKKyAgRmxvcmlzIEJydXlub29naGUuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4wLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTMxN2ZmOGYz
NDc1YWE1ZjM3MGMwNjYwZGM2YWE2M2NmMTg1NTRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjAucnN0CkBAIC0wLDAgKzEsMTAxIEBA
CitweXRlc3QtMi43LjA6IGZpeGVzLCBmZWF0dXJlcywgc3BlZWQgaW1wcm92ZW1lbnRzCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wg
d2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBt
YW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBp
cyBzdXBwb3NlZCB0byBiZSBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi42LlguCisKK1NlZSBiZWxv
dyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5v
cmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBp
cCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCwgYW1v
bmcgdGhlbToKKworICAgIEFuYXRvbHkgQnViZW5rb2ZmCisgICAgRmxvcmlzIEJydXlub29naGUK
KyAgICBCcmlhbm5hIExhdWdoZXIKKyAgICBFcmljIFNpZWdlcm1hbgorICAgIERhbmllbCBIYWhs
ZXIKKyAgICBDaGFybGVzIENsb3VkCisgICAgVG9tIFZpbmVyCisgICAgSG9sZ2VyIFBldGVycwor
ICAgIExkaWFyeSBUcmFuc2xhdGlvbnMKKyAgICBhbG1hcmtsZWluCisKK2hhdmUgZnVuLAoraG9s
Z2VyIGtyZWtlbAorCisyLjcuMCAoY29tcGFyZWQgdG8gMi42LjQpCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTQzNTogbWFrZSByZWxvYWQoKSB3b3JrIHdoZW4g
YXNzZXJ0IHJld3JpdGluZyBpcyBhY3RpdmUuCisgIFRoYW5rcyBEYW5pZWwgSGFobGVyLgorCist
IGZpeCBpc3N1ZTYxNjogY29uZnRlc3QucHkgZmlsZXMgYW5kIHRoZWlyIGNvbnRhaW5lZCBmaXh1
dHJlcyBhcmUgbm93CisgIHByb3Blcmx5IGNvbnNpZGVyZWQgZm9yIHZpc2liaWxpdHksIGluZGVw
ZW5kZW50bHkgZnJvbSB0aGUgZXhhY3QKKyAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBhbmQg
dGVzdCBhcmd1bWVudHMgdGhhdCBhcmUgdXNlZC4KKyAgTWFueSB0aGFua3MgdG8gRXJpYyBTaWVn
ZXJtYW4gYW5kIGhpcyBQUjIzNSB3aGljaCBjb250YWlucworICBzeXN0ZW1hdGljIHRlc3RzIGZv
ciBjb25mdGVzdCB2aXNpYmlsaXR5IGFuZCBub3cgcGFzc2VzLgorICBUaGlzIGNoYW5nZSBhbHNv
IGludHJvZHVjZXMgdGhlIGNvbmNlcHQgb2YgYSBgYHJvb3RkaXJgYCB3aGljaAorICBpcyBwcmlu
dGVkIGFzIGEgbmV3IHB5dGVzdCBoZWFkZXIgYW5kIGRvY3VtZW50ZWQgaW4gdGhlIHB5dGVzdAor
ICBjdXN0b21pemUgd2ViIHBhZ2UuCisKKy0gY2hhbmdlIHJlcG9ydGluZyBvZiAiZGl2ZXJ0ZWQi
IHRlc3RzLCBpLmUuIHRlc3RzIHRoYXQgYXJlIGNvbGxlY3RlZAorICBpbiBvbmUgZmlsZSBidXQg
YWN0dWFsbHkgY29tZSBmcm9tIGFub3RoZXIgKGUuZy4gd2hlbiB0ZXN0cyBpbiBhIHRlc3QgY2xh
c3MKKyAgY29tZSBmcm9tIGEgYmFzZSBjbGFzcyBpbiBhIGRpZmZlcmVudCBmaWxlKS4gIFdlIG5v
dyBzaG93IHRoZSBub2RlaWQKKyAgYW5kIGluZGljYXRlIHZpYSBhIHBvc3RmaXggdGhlIG90aGVy
IGZpbGUuCisKKy0gYWRkIGFiaWxpdHkgdG8gc2V0IGNvbW1hbmQgbGluZSBvcHRpb25zIGJ5IGVu
dmlyb25tZW50IHZhcmlhYmxlIFBZVEVTVF9BRERPUFRTLgorCistIGFkZGVkIGRvY3VtZW50YXRp
b24gb24gdGhlIG5ldyBweXRlc3QtZGV2IHRlYW1zIG9uIGJpdGJ1Y2tldCBhbmQKKyAgZ2l0aHVi
LiAgU2VlIGh0dHBzOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvY29udHJpYnV0aW5nLmh0bWwgLgorICBU
aGFua3MgdG8gQW5hdG9seSBmb3IgcHVzaGluZyBhbmQgaW5pdGlhbCB3b3JrIG9uIHRoaXMuCisK
Ky0gZml4IGlzc3VlNjUwOiBuZXcgb3B0aW9uIGBgLS1kb2N0dGVzdC1pZ25vcmUtaW1wb3J0LWVy
cm9yc2BgIHdoaWNoCisgIHdpbGwgdHVybiBpbXBvcnQgZXJyb3JzIGluIGRvY3Rlc3RzIGludG8g
c2tpcHMuICBUaGFua3MgQ2hhcmxlcyBDbG91ZAorICBmb3IgdGhlIGNvbXBsZXRlIFBSLgorCist
IGZpeCBpc3N1ZTY1NTogd29yayBhcm91bmQgZGlmZmVyZW50IHdheXMgdGhhdCBjYXVzZSBweXRo
b24yLzMKKyAgdG8gbGVhayBzeXMuZXhjX2luZm8gaW50byBmaXh0dXJlcy90ZXN0cyBjYXVzaW5n
IGZhaWx1cmVzIGluIDNyZCBwYXJ0eSBjb2RlCisKKy0gZml4IGlzc3VlNjE1OiBhc3NlcnRpb24g
cmV3cml0aW5nIGRpZCBub3QgY29ycmVjdGx5IGVzY2FwZSAlIHNpZ25zCisgIHdoZW4gZm9ybWF0
dGluZyBib29sZWFuIG9wZXJhdGlvbnMsIHdoaWNoIHRyaXBwZWQgb3ZlciBtaXhpbmcKKyAgYm9v
bGVhbnMgd2l0aCBtb2R1bG8gb3BlcmF0b3JzLiAgVGhhbmtzIHRvIFRvbSBWaW5lciBmb3IgdGhl
IHJlcG9ydCwKKyAgdHJpYWdpbmcgYW5kIGZpeC4KKworLSBpbXBsZW1lbnQgaXNzdWUzNTE6IGFk
ZCBhYmlsaXR5IHRvIHNwZWNpZnkgcGFyYW1ldHJpemUgaWRzIGFzIGEgY2FsbGFibGUKKyAgdG8g
Z2VuZXJhdGUgY3VzdG9tIHRlc3QgaWRzLiAgVGhhbmtzIEJyaWFubmEgTGF1Z2hlciBmb3IgdGhl
IGlkZWEgYW5kCisgIGltcGxlbWVudGF0aW9uLgorCistIGludHJvZHVjZSBhbmQgZG9jdW1lbnQg
bmV3IGhvb2t3cmFwcGVyIG1lY2hhbmlzbSB1c2VmdWwgZm9yIHBsdWdpbnMKKyAgd2hpY2ggd2Fu
dCB0byB3cmFwIHRoZSBleGVjdXRpb24gb2YgY2VydGFpbiBob29rcyBmb3IgdGhlaXIgcHVycG9z
ZXMuCisgIFRoaXMgc3VwZXJzZWRlcyB0aGUgdW5kb2N1bWVudGVkIGBgX19tdWx0aWNhbGxfX2Bg
IHByb3RvY29sIHdoaWNoCisgIHB5dGVzdCBpdHNlbGYgYW5kIHNvbWUgZXh0ZXJuYWwgcGx1Z2lu
cyB1c2UuICBOb3RlIHRoYXQgcHl0ZXN0LTIuOAorICBpcyBzY2hlZHVsZWQgdG8gZHJvcCBzdXBw
b3J0aW5nIHRoZSBvbGQgYGBfX211bHRpY2FsbF9fYGAKKyAgYW5kIG9ubHkgc3VwcG9ydCB0aGUg
aG9va3dyYXBwZXIgcHJvdG9jb2wuCisKKy0gbWFqb3JseSBzcGVlZCB1cCBpbnZvY2F0aW9uIG9m
IHBsdWdpbiBob29rcworCistIHVzZSBob29rd3JhcHBlciBtZWNoYW5pc20gaW4gYnVpbHRpbiBw
eXRlc3QgcGx1Z2lucy4KKworLSBhZGQgYSBkb2N0ZXN0IGluaSBvcHRpb24gZm9yIGRvY3Rlc3Qg
ZmxhZ3MsIHRoYW5rcyBIb2xnZXIgUGV0ZXJzLgorCistIGFkZCBub3RlIHRvIGRvY3MgdGhhdCBp
ZiB5b3Ugd2FudCB0byBtYXJrIGEgcGFyYW1ldGVyIGFuZCB0aGUKKyAgcGFyYW1ldGVyIGlzIGEg
Y2FsbGFibGUsIHlvdSBhbHNvIG5lZWQgdG8gcGFzcyBpbiBhIHJlYXNvbiB0byBkaXNhbWJpZ3Vh
dGUKKyAgaXQgZnJvbSB0aGUgImRlY29yYXRvciIgY2FzZS4gIFRoYW5rcyBUb20gVmluZXIuCisK
Ky0gInB5dGhvbl9jbGFzc2VzIiBhbmQgInB5dGhvbl9mdW5jdGlvbnMiIG9wdGlvbnMgbm93IHN1
cHBvcnQgZ2xvYi1wYXR0ZXJucworICBmb3IgdGVzdCBkaXNjb3ZlcnksIGFzIGRpc2N1c3NlZCBp
biBpc3N1ZTYwMC4gVGhhbmtzIExkaWFyeSBUcmFuc2xhdGlvbnMuCisKKy0gYWxsb3cgdG8gb3Zl
cnJpZGUgcGFyYW1ldHJpemVkIGZpeHR1cmVzIHdpdGggbm9uLXBhcmFtZXRyaXplZCBvbmVzIGFu
ZCB2aWNlIHZlcnNhIChidWJlbmtvZmYpLgorCistIGZpeCBpc3N1ZTQ2MzogcmFpc2Ugc3BlY2lm
aWMgZXJyb3IgZm9yICdwYXJhbWV0ZXJpemUnIG1pc3NwZWxsaW5nIChwZmN0ZGF5ZWxpc2UpLgor
CistIE9uIGZhaWx1cmUsIHRoZSBgYHN5cy5sYXN0X3ZhbHVlYGAsIGBgc3lzLmxhc3RfdHlwZWBg
IGFuZAorICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgIGFyZSBzZXQsIHNvIHRoYXQgYSB1c2VyIGNh
biBpbnNwZWN0IHRoZSBlcnJvcgorICB2aWEgcG9zdG1vcnRlbSBkZWJ1Z2dpbmcgKGFsbWFya2xl
aW4pLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjcuMS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjcuMS5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmRjNzFlZWJiYTk1ZjMzMTE5NGU1ZjRmMTkyNjEyNTNiNTJmYTkyNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4x
LnJzdApAQCAtMCwwICsxLDU4IEBACitweXRlc3QtMi43LjE6IGJ1ZyBmaXhlcworPT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wg
d2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBt
YW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBp
cyBzdXBwb3NlZCB0byBiZSBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi43LjAuCisKK1NlZSBiZWxv
dyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5v
cmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBp
cCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0
aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyAgICBCcnVubyBPbGl2ZWlyYQorICAgIEhvbGdl
ciBLcmVrZWwKKyAgICBJb25lbCBNYXJpZXMgQ3Jpc3RpYW4KKyAgICBGbG9yaXMgQnJ1eW5vb2do
ZQorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIu
Ny4xIChjb21wYXJlZCB0byAyLjcuMCkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBm
aXggaXNzdWU3MzE6IGRvIG5vdCBnZXQgY29uZnVzZWQgYnkgdGhlIGJyYWNlcyB3aGljaCBtYXkg
YmUgcHJlc2VudAorICBhbmQgdW5iYWxhbmNlZCBpbiBhbiBvYmplY3QncyByZXByIHdoaWxlIGNv
bGxhcHNpbmcgRmFsc2UKKyAgZXhwbGFuYXRpb25zLiAgVGhhbmtzIENhcmwgTWV5ZXIgZm9yIHRo
ZSByZXBvcnQgYW5kIHRlc3QgY2FzZS4KKworLSBmaXggaXNzdWU1NTM6IHByb3Blcmx5IGhhbmRs
aW5nIGluc3BlY3QuZ2V0c291cmNlbGluZXMgZmFpbHVyZXMgaW4KKyAgRml4dHVyZUxvb2t1cEVy
cm9yIHdoaWNoIHdvdWxkIGxlYWQgdG8gYW4gaW50ZXJuYWwgZXJyb3IsCisgIG9iZnVzY2F0aW5n
IHRoZSBvcmlnaW5hbCBwcm9ibGVtLiBUaGFua3MgdGFsbGpvc2ggZm9yIGluaXRpYWwKKyAgZGlh
Z25vc2UvcGF0Y2ggYW5kIEJydW5vIE9saXZlaXJhIGZvciBmaW5hbCBwYXRjaC4KKworLSBmaXgg
aXNzdWU2NjA6IHByb3Blcmx5IHJlcG9ydCBzY29wZS1taXNtYXRjaC1hY2Nlc3MgZXJyb3JzCisg
IGluZGVwZW5kZW50bHkgZnJvbSBvcmRlcmluZyBvZiBmaXh0dXJlIGFyZ3VtZW50cy4gIEFsc28K
KyAgYXZvaWQgdGhlIHB5dGVzdCBpbnRlcm5hbCB0cmFjZWJhY2sgd2hpY2ggZG9lcyBub3QgcHJv
dmlkZQorICBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4gVGhhbmtzIEhvbGdlciBLcmVrZWwuCisK
Ky0gc3RyZWFtbGluZWQgYW5kIGRvY3VtZW50ZWQgcmVsZWFzZSBwcm9jZXNzLiAgQWxzbyBhbGwg
dmVyc2lvbnMKKyAgKGluIHNldHVwLnB5IGFuZCBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24pIGFy
ZSBub3cgcmVhZAorICBmcm9tIF9weXRlc3QvX19pbml0X18ucHkuIFRoYW5rcyBIb2xnZXIgS3Jl
a2VsLgorCistIGZpeGVkIGRvY3MgdG8gcmVtb3ZlIHRoZSBub3Rpb24gdGhhdCB5aWVsZC1maXh0
dXJlcyBhcmUgZXhwZXJpbWVudGFsLgorICBUaGV5IGFyZSBoZXJlIHRvIHN0YXkgOikgIFRoYW5r
cyBCcnVubyBPbGl2ZWlyYS4KKworLSBTdXBwb3J0IGJ1aWxkaW5nIHdoZWVscyBieSB1c2luZyBl
bnZpcm9ubWVudCBtYXJrZXJzIGZvciB0aGUKKyAgcmVxdWlyZW1lbnRzLiAgVGhhbmtzIElvbmVs
IE1hcmllcyBDcmlzdGlhbi4KKworLSBmaXhlZCByZWdyZXNzaW9uIHRvIDIuNi40IHdoaWNoIHN1
cmZhY2VkIGUuZy4gaW4gbG9zdCBzdGRvdXQgY2FwdHVyZSBwcmludGluZworICB3aGVuIHRlc3Rz
IHJhaXNlZCBTeXN0ZW1FeGl0LiBUaGFua3MgSG9sZ2VyIEtyZWtlbC4KKworLSByZWludHJvZHVj
ZWQgX3B5dGVzdCBmaXh0dXJlIG9mIHRoZSBweXRlc3RlciBwbHVnaW4gd2hpY2ggaXMgdXNlZAor
ICBhdCBsZWFzdCBieSBweXRlc3QteGRpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjcuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0yLjcuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkxMzBhZDYyM2Y1MmVjODkwNGFiYjUz
YmE2NTI3ZTIwNDU5ZWQ2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuNy4yLnJzdApAQCAtMCwwICsxLDU4IEBACitweXRlc3QtMi43LjI6
IGJ1ZyBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJl
IFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0
IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRm
b3Jtcy4KK1RoaXMgcmVsZWFzZSBpcyBzdXBwb3NlZCB0byBiZSBkcm9wLWluIGNvbXBhdGlibGUg
dG8gMi43LjEuCisKK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0Ogor
CisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9t
IHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxs
IHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyAgICBCcnVu
byBPbGl2ZWlyYQorICAgIEZsb3JpcyBCcnV5bm9vZ2hlCisgICAgUHVueWFzaGxva2EgQmlzd2Fs
CisgICAgQXJvbiBDdXJ6b24KKyAgICBCZW5qYW1pbiBQZXRlcnNvbgorICAgIFRob21hcyBEZSBT
Y2hhbXBoZWxlaXJlCisgICAgRWRpc29uIEd1c3Rhdm8gTXVlbnoKKyAgICBIb2xnZXIgS3Jla2Vs
CisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBUZWFtCisKKworMi43
LjIgKGNvbXBhcmVkIHRvIDIuNy4xKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBmaXggaXNzdWU3Njc6IHB5dGVzdC5yYWlzZXMgdmFsdWUgYXR0cmlidXRlIGRvZXMgbm90IGNv
bnRhaW4gdGhlIGV4Y2VwdGlvbgorICBpbnN0YW5jZSBvbiBQeXRob24gMi42LiBUaGFua3MgRXJp
YyBTaWVnZXJtYW4gZm9yIHByb3ZpZGluZyB0aGUgdGVzdAorICBjYXNlIGFuZCBCcnVubyBPbGl2
ZWlyYSBmb3IgUFIuCisKKy0gQXV0b21hdGljYWxseSBjcmVhdGUgZGlyZWN0b3J5IGZvciBqdW5p
dHhtbCBhbmQgcmVzdWx0cyBsb2cuCisgIFRoYW5rcyBBcm9uIEN1cnpvbi4KKworLSBmaXggaXNz
dWU3MTM6IEpVbml0IFhNTCByZXBvcnRzIGZvciBkb2N0ZXN0IGZhaWx1cmVzLgorICBUaGFua3Mg
UHVueWFzaGxva2EgQmlzd2FsLgorCistIGZpeCBpc3N1ZTczNTogYXNzZXJ0aW9uIGZhaWx1cmVz
IG9uIGRlYnVnIHZlcnNpb25zIG9mIFB5dGhvbiAzLjQrCisgIFRoYW5rcyBCZW5qYW1pbiBQZXRl
cnNvbi4KKworLSBmaXggaXNzdWUxMTQ6IHNraXBpZiBtYXJrZXIgcmVwb3J0cyB0byBpbnRlcm5h
bCBza2lwcGluZyBwbHVnaW47CisgIFRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZSBmb3IgcmVwb3J0
aW5nIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZTc0ODogdW5p
dHRlc3QuU2tpcFRlc3QgcmVwb3J0cyB0byBpbnRlcm5hbCBweXRlc3QgdW5pdHRlc3QgcGx1Z2lu
LgorICBUaGFua3MgVGhvbWFzIERlIFNjaGFtcGhlbGVpcmUgZm9yIHJlcG9ydGluZyBhbmQgQnJ1
bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU3MTg6IGZhaWxlZCB0byBjcmVh
dGUgcmVwcmVzZW50YXRpb24gb2Ygc2V0cyBjb250YWluaW5nIHVuc29ydGFibGUKKyAgZWxlbWVu
dHMgaW4gcHl0aG9uIDIuIFRoYW5rcyBFZGlzb24gR3VzdGF2byBNdWVuegorCistIGZpeCBpc3N1
ZTc1NiwgZml4IGlzc3VlNzUyIChhbmQgc2ltaWxhciBpc3N1ZXMpOiBkZXBlbmQgb24gcHktMS40
LjI5CisgIHdoaWNoIGhhcyBhIHJlZmluZWQgYWxnb3JpdGhtIGZvciB0cmFjZWJhY2sgZ2VuZXJh
dGlvbi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi44LjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjIucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ3MDI4NjE2MTQyMjVkY2ZmZmZjNjNiMzQyZjcyMjg3NmZjNGNlZjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjgu
Mi5yc3QKQEAgLTAsMCArMSw0NCBAQAorcHl0ZXN0LTIuOC4yOiBidWcgZml4ZXMKKz09PT09PT09
PT09PT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29s
IHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24g
bWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCitUaGlzIHJlbGVhc2Ug
aXMgc3VwcG9zZWQgdG8gYmUgZHJvcC1pbiBjb21wYXRpYmxlIHRvIDIuOC4xLgorCitTZWUgYmVs
b3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoKKworICAgIGh0dHA6Ly9weXRlc3Qu
b3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6CisKKyAgICBw
aXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8g
dGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICBEZW1p
YW4gQnJlY2h0CisgICAgRmxvcmlhbiBCcnVoaW4KKyAgICBJb25lbCBDcmlzdGlhbiBNxINyaWXI
mQorICAgIFJhcGhhZWwgUGllcnppbmEKKyAgICBSb25ueSBQZmFubnNjaG1pZHQKKyAgICBob2xn
ZXIga3Jla2VsCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBUZWFt
CisKKworMi44LjIgKGNvbXBhcmVkIHRvIDIuNy4yKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLSBmaXggIzEwODU6IHByb3BlciBoYW5kbGluZyBvZiBlbmNvZGluZyBlcnJvcnMg
d2hlbiBwYXNzaW5nIGVuY29kZWQgYnl0ZQorICBzdHJpbmdzIHRvIHB5dGVzdC5wYXJhbWV0cml6
ZSBpbiBQeXRob24gMi4KKyAgVGhhbmtzIFRoZW1hbndpdGhvdXRhcGxhbiBmb3IgdGhlIHJlcG9y
dCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggIzEwODc6IGhhbmRsaW5n
IFN5c3RlbUVycm9yIHdoZW4gcGFzc2luZyBlbXB0eSBieXRlIHN0cmluZ3MgdG8KKyAgcHl0ZXN0
LnBhcmFtZXRyaXplIGluIFB5dGhvbiAzLgorICBUaGFua3MgUGF1bCBLZWhyZXIgZm9yIHRoZSBy
ZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4ICM5OTU6IGZpeGVk
IGludGVybmFsIGVycm9yIHdoZW4gZmlsdGVyaW5nIHRyYWNlYmFja3Mgd2hlcmUgb25lIGVudHJ5
CisgIHdhcyBnZW5lcmF0ZWQgYnkgYW4gZXhlYygpIHN0YXRlbWVudC4KKyAgVGhhbmtzIERhbmll
bCBIYWhsZXIsIEFzaGxleSBDIFN0cmF3LCBQaGlsaXBwZSBHYXV0aGllciBhbmQgUGF2ZWwgU2F2
Y2hlbmtvCisgIGZvciBjb250cmlidXRpbmcgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguMy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguMy5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA4MGFjNzI0YzFkOTIwMjlhMmQ4MTY4NjIwZGIwOTAxMDc1OGQyYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC4zLnJzdApA
QCAtMCwwICsxLDU5IEBACitweXRlc3QtMi44LjM6IGJ1ZyBmaXhlcworPT09PT09PT09PT09PT09
PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBt
b3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRp
ZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBpcyBzdXBw
b3NlZCB0byBiZSBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi44LjIuCisKK1NlZSBiZWxvdyBmb3Ig
dGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKwor
QXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0
YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJl
bGVhc2UsIGFtb25nIHRoZW06CisKKyAgICAgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICAgICAgRmxv
cmlhbiBCcnVoaW4KKyAgICAgICAgR2FiZSBIb2xsb21iZQorICAgICAgICBHYWJyaWVsIFJlaXMK
KyAgICAgICAgSGFydG11dCBHb2ViZWwKKyAgICAgICAgSm9obiBWYW5kZW5iZXJnCisgICAgICAg
IExlZSBLYW1lbnRza3kKKyAgICAgICAgTWljaGFlbCBCaXJ0d2VsbAorICAgICAgICBSYXBoYWVs
IFBpZXJ6aW5hCisgICAgICAgIFJvbm55IFBmYW5uc2NobWlkdAorICAgICAgICBXaWxsaWFtIE1h
cnRpbiBTdGV3YXJ0CisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBU
ZWFtCisKKworMi44LjMgKGNvbXBhcmVkIHRvIDIuOC4yKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLSBmaXggIzExNjk6IGFkZCBfX25hbWVfXyBhdHRyaWJ1dGUgdG8gdGVzdGNh
c2VzIGluIFRlc3RDYXNlRnVuY3Rpb24gdG8KKyAgc3VwcG9ydCB0aGUgQHVuaXR0ZXN0LnNraXAg
ZGVjb3JhdG9yIG9uIGZ1bmN0aW9ucyBhbmQgbWV0aG9kcy4KKyAgVGhhbmtzIExlZSBLYW1lbnRz
a3kgZm9yIHRoZSBQUi4KKworLSBmaXggIzEwMzU6IGNvbGxlY3RpbmcgdGVzdHMgaWYgdGVzdCBt
b2R1bGUgbGV2ZWwgb2JqIGhhcyBfX2dldGF0dHJfXygpLgorICBUaGFua3MgU3VvciBmb3IgdGhl
IHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgLyBUb20gVmluZXIgZm9yIHRoZSBQUi4KKworLSBm
aXggIzMzMTogZG9uJ3QgY29sbGVjdCB0ZXN0cyBpZiB0aGVpciBmYWlsdXJlIGNhbm5vdCBiZSBy
ZXBvcnRlZCBjb3JyZWN0bHkKKyAgZS5nLiB0aGV5IGFyZSBhIGNhbGxhYmxlIGluc3RhbmNlIG9m
IGEgY2xhc3MuCisKKy0gZml4ICMxMTMzOiBmaXhlZCBpbnRlcm5hbCBlcnJvciB3aGVuIGZpbHRl
cmluZyB0cmFjZWJhY2tzIHdoZXJlIG9uZSBlbnRyeQorICBiZWxvbmdzIHRvIGEgZmlsZSB3aGlj
aCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLgorICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEgZm9yIHRo
ZSBQUi4KKworLSBlbmhhbmNlbWVudCBtYWRlIHRvIGhpZ2hsaWdodCBpbiByZWQgdGhlIG5hbWUg
b2YgdGhlIGZhaWxpbmcgdGVzdHMgc28KKyAgdGhleSBzdGFuZCBvdXQgaW4gdGhlIG91dHB1dC4K
KyAgVGhhbmtzIEdhYnJpZWwgUmVpcyBmb3IgdGhlIFBSLgorCistIGFkZCBtb3JlIHRhbGtzIHRv
IHRoZSBkb2N1bWVudGF0aW9uCistIGV4dGVuZCBkb2N1bWVudGF0aW9uIG9uIHRoZSAtLWlnbm9y
ZSBjbGkgb3B0aW9uIAorLSB1c2UgcHl0ZXN0LXJ1bm5lciBmb3Igc2V0dXB0b29scyBpbnRlZ3Jh
dGlvbiAKKy0gbWlub3IgZml4ZXMgZm9yIGludGVyYWN0aW9uIHdpdGggT1MgWCBFbCBDYXBpdGFu
IHN5c3RlbSBpbnRlZ3JpdHkgcHJvdGVjdGlvbiAodGhhbmtzIEZsb3JpYW4pCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC40LnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC40LnJzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDk2
MjljZWYwOTkzY2Q0NzVmOWM3NzNhOWIzMjg3NDIzZjE4OTZjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjQucnN0CkBAIC0wLDAgKzEs
NTIgQEAKK3B5dGVzdC0yLjguNAorPT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQ
eXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5zdCBp
dHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9y
bXMuCitUaGlzIHJlbGVhc2UgaXMgc3VwcG9zZWQgdG8gYmUgZHJvcC1pbiBjb21wYXRpYmxlIHRv
IDIuOC4yLgorCitTZWUgYmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoKKwor
ICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBw
eXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3
aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgIEJydW5vIE9s
aXZlaXJhCisgIEZsb3JpYW4gQnJ1aGluCisgIEplZmYgV2lkbWFuCisgIE1laGR5IEtob3Nobm9v
ZHkKKyAgTmljaG9sYXMgQ2hhbW1hcworICBSb25ueSBQZmFubnNjaG1pZHQKKyAgVGltIENoYW4K
KworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIu
OC40IChjb21wYXJlZCB0byAyLjguMykKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gZml4ICMxMTkwOiBgYGRlcHJlY2F0ZWRfY2FsbCgpYGAgbm93IHdvcmtzIHdoZW4gdGhlIGRl
cHJlY2F0ZWQKKyAgZnVuY3Rpb24gaGFzIGJlZW4gYWxyZWFkeSBjYWxsZWQgYnkgYW5vdGhlciB0
ZXN0IGluIHRoZSBzYW1lCisgIG1vZHVsZS4gVGhhbmtzIE1pa2hhaWwgQ2hlcm55a2ggZm9yIHRo
ZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUKKyAgUFIuCisKKy0gZml4ICMxMTk4
OiBgYC0tcGFzdGViaW5gYCBvcHRpb24gbm93IHdvcmtzIG9uIFB5dGhvbiAzLiBUaGFua3MKKyAg
TWVoZHkgS2hvc2hub29keSBmb3IgdGhlIFBSLgorCistIGZpeCAjMTIxOTogYGAtLXBhc3RlYmlu
YGAgbm93IHdvcmtzIGNvcnJlY3RseSB3aGVuIGNhcHR1cmVkIG91dHB1dCBjb250YWlucworICBu
b24tYXNjaWkgY2hhcmFjdGVycy4gVGhhbmtzIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisK
Ky0gZml4ICMxMjA0OiBhbm90aGVyIGVycm9yIHdoZW4gY29sbGVjdGluZyB3aXRoIGEgbmFzdHkg
X19nZXRhdHRyX18oKS4KKyAgVGhhbmtzIEZsb3JpYW4gQnJ1aGluIGZvciB0aGUgUFIuCisKKy0g
Zml4IHRoZSBzdW1tYXJ5IHByaW50ZWQgd2hlbiBubyB0ZXN0cyBkaWQgcnVuLgorICBUaGFua3Mg
RmxvcmlhbiBCcnVoaW4gZm9yIHRoZSBQUi4KKworLSBhIG51bWJlciBvZiBkb2N1bWVudGF0aW9u
IG1vZGVybml6YXRpb25zIHdydCBnb29kIHByYWN0aWNlcy4KKyAgVGhhbmtzIEJydW5vIE9saXZl
aXJhIGZvciB0aGUgUFIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0yLjguNS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjguNS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQwOTAyMmExMzcxZTgyMGM0ZjdhYTg5MzBmMGJmNThkMjA4
NTU0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuOC41LnJzdApAQCAtMCwwICsxLDM5IEBACitweXRlc3QtMi44LjUKKz09PT09PT09PT09
PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhh
biBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50
IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorVGhpcyByZWxlYXNlIGlzIHN1cHBvc2VkIHRv
IGJlIGRyb3AtaW4gY29tcGF0aWJsZSB0byAyLjguNC4KKworU2VlIGJlbG93IGZvciB0aGUgY2hh
bmdlcyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3Vh
bCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwg
YW1vbmcgdGhlbToKKworICBBbGV4IEdheW5vcgorICBhc2VsdXMtaHViCisgIEJydW5vIE9saXZl
aXJhCisgIFJvbm55IFBmYW5uc2NobWlkdAorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVz
dCBEZXZlbG9wbWVudCBUZWFtCisKKworMi44LjUgKGNvbXBhcmVkIHRvIDIuOC40KQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCAjMTI0MzogZml4ZWQgaXNzdWUgd2hlcmUgY2xh
c3MgYXR0cmlidXRlcyBpbmplY3RlZCBkdXJpbmcgY29sbGVjdGlvbiBjb3VsZCBicmVhayBweXRl
c3QuCisgIFBSIGJ5IEFsZXhlaSBLb3psZW5vaywgdGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdCBh
bmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSByZXZpZXcgYW5kIGhlbHAuCisKKy0gZml4ICMxMDc0
OiBwcmVjb21wdXRlIGp1bml0eG1sIGNodW5rcyBpbnN0ZWFkIG9mIHN0b3JpbmcgdGhlIHdob2xl
IHRyZWUgaW4gb2JqZWN0cworICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSByZXBvcnQg
YW5kIFJvbm55IFBmYW5uc2NobWlkdCBmb3IgdGhlIFBSCisKKy0gZml4ICMxMjM4OiBmaXggYGBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsKClgYCByZWNlaXZpbmcgbXVsdGlwbGUgYXJndW1lbnRzCisg
IChSZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gMi44LjQpLiBUaGFua3MgQWxleCBHYXlub3IgZm9y
IHRoZSByZXBvcnQgYW5kCisgIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguNi5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguNi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE1ZmFl
NTFlYWMwNmJmNTM3YzgwMzdkMTMxMWIwMDVlYTRlOWMxMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC42LnJzdApAQCAtMCwwICsxLDY3
IEBACitweXRlc3QtMi44LjYKKz09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0
aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRz
ZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1z
LgorVGhpcyByZWxlYXNlIGlzIHN1cHBvc2VkIHRvIGJlIGRyb3AtaW4gY29tcGF0aWJsZSB0byAy
LjguNS4KKworU2VlIGJlbG93IGZvciB0aGUgY2hhbmdlcyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAg
ICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlw
aSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hv
IGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworICAgIEFNaVQgS3Vt
YXIKKyAgICBCcnVubyBPbGl2ZWlyYQorICAgIEVyaWsgTS4gQnJheQorICAgIEZsb3JpYW4gQnJ1
aGluCisgICAgR2Vvcmd5IER5dWxkaW4KKyAgICBKZWZmIFdpZG1hbgorICAgIEthcnRpayBTaW5n
aGFsCisgICAgTG/Dr2MgRXN0w6h2ZQorICAgIE1hbnUgUGhhdGFrCisgICAgUGV0ZXIgRGVtaW4K
KyAgICBSaWNrIHZhbiBIYXR0ZW0KKyAgICBSb25ueSBQZmFubnNjaG1pZHQKKyAgICBVbHJpY2gg
UGV0cmkKKyAgICBmb3h4CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERldmVsb3Bt
ZW50IFRlYW0KKworCisyLjguNiAoY29tcGFyZWQgdG8gMi44LjUpCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy0gZml4ICMxMjU5OiBhbGxvdyBmb3IgZG91YmxlIG5vZGVpZHMgaW4ganVu
aXR4bWwsCisgIHRoaXMgd2FzIGEgcmVncmVzc2lvbiBmYWlsaW5nIHBsdWdpbnMgY29tYmluYXRp
b25zCisgIGxpa2UgcHl0ZXN0LXBlcDggKyBweXRlc3QtZmxha2VzCisKKy0gV29ya2Fyb3VuZCBm
b3IgZXhjZXB0aW9uIHRoYXQgb2NjdXJzIGluIHB5cmVhZGxpbmUgd2hlbiB1c2luZworICBgYC0t
cGRiYGAgd2l0aCBzdGFuZGFyZCBJL08gY2FwdHVyZSBlbmFibGVkLgorICBUaGFua3MgRXJpayBN
LiBCcmF5IGZvciB0aGUgUFIuCisKKy0gZml4ICM5MDA6IEJldHRlciBlcnJvciBtZXNzYWdlIGlu
IGNhc2UgdGhlIHRhcmdldCBvZiBhIGBgbW9ua2V5cGF0Y2hgYCBjYWxsCisgIHJhaXNlcyBhbiBg
YEltcG9ydEVycm9yYGAuCisKKy0gZml4ICMxMjkyOiBtb25rZXlwYXRjaCBjYWxscyAoc2V0YXR0
ciwgc2V0ZW52LCBldGMuKSBhcmUgbm93IE8oMSkuCisgIFRoYW5rcyBEYXZpZCBSLiBNYWNJdmVy
IGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCAj
MTIyMzogY2FwdHVyZWQgc3Rkb3V0IGFuZCBzdGRlcnIgYXJlIG5vdyBwcm9wZXJseSBkaXNwbGF5
ZWQgYmVmb3JlCisgIGVudGVyaW5nIHBkYiB3aGVuIGBgLS1wZGJgYCBpcyB1c2VkIGluc3RlYWQg
b2YgYmVpbmcgdGhyb3duIGF3YXkuCisgIFRoYW5rcyBDYWwgTGVlbWluZyBmb3IgdGhlIFBSLgor
CistIGZpeCAjMTMwNTogcHl0ZXN0IHdhcm5pbmdzIGVtaXR0ZWQgZHVyaW5nIGBgcHl0ZXN0X3Rl
cm1pbmFsX3N1bW1hcnlgYCBhcmUgbm93CisgIHByb3Blcmx5IGRpc3BsYXllZC4KKyAgVGhhbmtz
IElvbmVsIE1hcmllcyBDcmlzdGlhbiBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEg
Zm9yIHRoZSBQUi4KKworLSBmaXggIzYyODogZml4ZWQgaW50ZXJuYWwgVW5pY29kZURlY29kZUVy
cm9yIHdoZW4gZG9jdGVzdHMgY29udGFpbiB1bmljb2RlLgorICBUaGFua3MgSmFzb24gUi4gQ29v
bWJzIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZp
eCAjMTMzNDogQWRkIGNhcHR1cmVkIHN0ZG91dCB0byBqVW5pdCBYTUwgcmVwb3J0IG9uIHNldHVw
IGVycm9yLgorICBUaGFua3MgR2Vvcmd5IER5dWxkaW4gZm9yIHRoZSBQUi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC43LnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC43LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOThkNzMx
MDY0YjNlMTMzYjAwYWQwMTYzNTQxNzZiYTQ4YTQ4ODQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjcucnN0CkBAIC0wLDAgKzEsMzEg
QEAKK3B5dGVzdC0yLjguNworPT09PT09PT09PT09CisKK1RoaXMgaXMgYSBob3RmaXggcmVsZWFz
ZSB0byBzb2x2ZSBhIHJlZ3Jlc3Npb24KK2luIHRoZSBidWlsdGluIG1vbmtleXBhdGNoIHBsdWdp
biB0aGF0IGdvdCBpbnRyb2R1Y2VkIGluIDIuOC42LgorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0
aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRz
ZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1z
LgorVGhpcyByZWxlYXNlIGlzIHN1cHBvc2VkIHRvIGJlIGRyb3AtaW4gY29tcGF0aWJsZSB0byAy
LjguNS4KKworU2VlIGJlbG93IGZvciB0aGUgY2hhbmdlcyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAg
ICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlw
aSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hv
IGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworICAgIFJvbm55IFBm
YW5uc2NobWlkdAorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBU
ZWFtCisKKworMi44LjcgKGNvbXBhcmVkIHRvIDIuOC42KQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIGZpeCAjMTMzODogdXNlIHByZWRpY3RhYmxlIG9iamVjdCByZXNvbHV0aW9uIGZv
ciBtb25rZXlwYXRjaApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4wLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTFiMWZmYjlk
MjlkN2VmZTM1ZmUzMmU2ZDYzMTYwOGJkMzc4YTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjAucnN0CkBAIC0wLDAgKzEsMTU5IEBA
CitweXRlc3QtMi45LjAKKz09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9u
IHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxm
LCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgor
CitTZWUgYmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoKKworICAgIGh0dHA6
Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6
CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJp
YnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgQW5hdG9seSBCdWJlbmtv
diAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIEJydW5vIE9saXZlaXJhICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBCdWNrIEdvbGVtb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgRGF2aWQgVmllcnJhICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgIEZsb3JpYW4gQnJ1aGluICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICBHYWxhY3ppIEVuZHJlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgR2Vvcmd5IER5dWxkaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgIEx1a2FzIEJlZG5hciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICBMdWtlIE11cnBoeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgTWFy
Y2luIEJpZXJuYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIE1hdHQgV2ls
bGlhbXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBNaWNoYWVsIEFxdWls
aW5hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgUmFwaGFlbCBQaWVyemluYSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIFJvbm55IFBmYW5uc2NobWlkdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBSeWFuIFdvb2RlbiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgVGllbW8gS2llZnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgIFRvbVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICBob2xnZXIga3Jla2VsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgamFiICAgCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERldmVsb3Bt
ZW50IFRlYW0KKworCisyLjkuMCAoY29tcGFyZWQgdG8gMi44LjcpCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyoqTmV3IEZlYXR1cmVzKioKKworKiBOZXcgYGBweXRlc3QubWFyay5za2lw
YGAgbWFyaywgd2hpY2ggdW5jb25kaXRpb25hbGx5IHNraXBzIG1hcmtlZCB0ZXN0cy4KKyAgVGhh
bmtzIGBATWljaGFlbEFxdWlsaW5hYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxMDQwYF8pLgor
CisqIGBgLS1kb2N0ZXN0LWdsb2JgYCBtYXkgbm93IGJlIHBhc3NlZCBtdWx0aXBsZSB0aW1lcyBp
biB0aGUgY29tbWFuZC1saW5lLgorICBUaGFua3MgYEBqYWJgXyBhbmQgYEBuaWNvZGRlbXVzYF8g
Zm9yIHRoZSBQUi4KKworKiBOZXcgYGAtcnBgYCBhbmQgYGAtclBgYCByZXBvcnRpbmcgb3B0aW9u
cyBnaXZlIHRoZSBzdW1tYXJ5IGFuZCBmdWxsIG91dHB1dAorICBvZiBwYXNzaW5nIHRlc3RzLCBy
ZXNwZWN0aXZlbHkuIFRoYW5rcyB0byBgQGNvZGV3YXJyaW9yMGBfIGZvciB0aGUgUFIuCisKKyog
YGBweXRlc3QubWFyay54ZmFpbGBgIG5vdyBoYXMgYSBgYHN0cmljdGBgIG9wdGlvbiB3aGljaCBt
YWtlcyBgYFhQQVNTYGAKKyAgdGVzdHMgdG8gZmFpbCB0aGUgdGVzdCBzdWl0ZSwgZGVmYXVsdGlu
ZyB0byBgYEZhbHNlYGAuIFRoZXJlJ3MgYWxzbyBhCisgIGBgeGZhaWxfc3RyaWN0YGAgaW5pIG9w
dGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBpdCBwcm9qZWN0LXdpc2UuCisgIFRo
YW5rcyBgQHJhYmJiaXRgXyBmb3IgdGhlIHJlcXVlc3QgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0
aGUgUFIgKGAjMTM1NWBfKS4KKworKiBgYFBhcnNlci5hZGRpbmlgYCBub3cgc3VwcG9ydHMgb3B0
aW9ucyBvZiB0eXBlIGBgYm9vbGBgLiBUaGFua3MKKyAgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQ
Ui4KKworKiBOZXcgYGBBTExPV19CWVRFU2BgIGRvY3Rlc3Qgb3B0aW9uIHN0cmlwcyBgYGJgYCBw
cmVmaXhlcyBmcm9tIGJ5dGUgc3RyaW5ncworICBpbiBkb2N0ZXN0IG91dHB1dCAoc2ltaWxhciB0
byBgYEFMTE9XX1VOSUNPREVgYCkuCisgIFRoYW5rcyBgQGphcmFjb2BfIGZvciB0aGUgcmVxdWVz
dCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUiAoYCMxMjg3YF8pLgorCisqIGdpdmUgYSBo
aW50IG9uIEtleWJvYXJkSW50ZXJydXB0IHRvIHVzZSB0aGUgLS1mdWxsdHJhY2Ugb3B0aW9uIHRv
IHNob3cgdGhlIGVycm9ycywKKyAgdGhpcyBmaXhlcyBgIzEzNjZgXy4KKyAgVGhhbmtzIHRvIGBA
aHBrNDJgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBSb25ueVBmYW5uc2NobWlkdGBfIGZvciB0aGUg
UFIuCisKKyogY2F0Y2ggSW5kZXhFcnJvciBleGNlcHRpb25zIHdoZW4gZ2V0dGluZyBleGNlcHRp
b24gc291cmNlIGxvY2F0aW9uLiBUaGlzIGZpeGVzCisgIHB5dGVzdCBpbnRlcm5hbCBlcnJvciBm
b3IgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUgKGZpeHR1cmVzIGFuZCB0ZXN0cykKKyAgd2hl
cmUgc291cmNlIGxpbmVzIGFyZSBmYWtlIGJ5IGludGVudGlvbgorCisqKkNoYW5nZXMqKgorCisq
ICoqSW1wb3J0YW50Kio6IGBweS5jb2RlIDxodHRwczovL3B5bGliLnJlYWR0aGVkb2NzLmlvL2Vu
L2xhdGVzdC9jb2RlLmh0bWw+YF8gaGFzIGJlZW4KKyAgbWVyZ2VkIGludG8gdGhlIGBgcHl0ZXN0
YGAgcmVwb3NpdG9yeSBhcyBgYHB5dGVzdC5fY29kZWBgLiBUaGlzIGRlY2lzaW9uIAorICB3YXMg
bWFkZSBiZWNhdXNlIGBgcHkuY29kZWBgIGhhZCB2ZXJ5IGZldyB1c2VzIG91dHNpZGUgYGBweXRl
c3RgYCBhbmQgdGhlIAorICBmYWN0IHRoYXQgaXQgd2FzIGluIGEgZGlmZmVyZW50IHJlcG9zaXRv
cnkgbWFkZSBpdCBkaWZmaWN1bHQgdG8gZml4IGJ1Z3Mgb24gCisgIGl0cyBjb2RlIGluIGEgdGlt
ZWx5IG1hbm5lci4gVGhlIHRlYW0gaG9wZXMgd2l0aCB0aGlzIHRvIGJlIGFibGUgdG8gYmV0dGVy
CisgIHJlZmFjdG9yIG91dCBhbmQgaW1wcm92ZSB0aGF0IGNvZGUuCisgIFRoaXMgY2hhbmdlIHNo
b3VsZG4ndCBhZmZlY3QgdXNlcnMsIGJ1dCBpdCBpcyB1c2VmdWwgdG8gbGV0IHVzZXJzIGF3YXJl
CisgIGlmIHRoZXkgZW5jb3VudGVyIGFueSBzdHJhbmdlIGJlaGF2aW9yLgorICAKKyAgS2VlcCBp
biBtaW5kIHRoYXQgdGhlIGNvZGUgZm9yIGBgcHl0ZXN0Ll9jb2RlYGAgaXMgKipwcml2YXRlKiog
YW5kIAorICAqKmV4cGVyaW1lbnRhbCoqLCBzbyB5b3UgZGVmaW5pdGVseSBzaG91bGQgbm90IGlt
cG9ydCBpdCBleHBsaWNpdGx5IQorCisgIFBsZWFzZSBub3RlIHRoYXQgdGhlIG9yaWdpbmFsIGBg
cHkuY29kZWBgIGlzIHN0aWxsIGF2YWlsYWJsZSBpbiAKKyAgYHB5bGliIDxodHRwczovL3B5bGli
LnJlYWR0aGVkb2NzLmlvPmBfLgorCisqIGBgcHl0ZXN0X2VudGVyX3BkYmBgIG5vdyBvcHRpb25h
bGx5IHJlY2VpdmVzIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdC4KKyAgVGhhbmtzIGBAbmljb2Rk
ZW11c2BfIGZvciB0aGUgUFIuCisKKyogUmVtb3ZlZCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIGZv
ciBQeXRob24gMi41IG9yIGxvd2VyIHZlcnNpb25zLAorICBpbmNsdWRpbmcgcmVtb3ZhbCBvZiB0
aGUgb2Jzb2xldGUgYGBfcHl0ZXN0LmFzc2VydGlvbi5vbGRpbnRlcnByZXRgYCBtb2R1bGUuCisg
IFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzEyMjZgXykuCisKKyogQ29tcGFy
aXNvbnMgbm93IGFsd2F5cyBzaG93IHVwIGluIGZ1bGwgd2hlbiBgYENJYGAgb3IgYGBCVUlMRF9O
VU1CRVJgYCBpcworICBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQsIGV2ZW4gd2hlbiAtdnYgaXNu
J3QgdXNlZC4KKyAgVGhhbmtzIGBAVGhlLUNvbXBpbGVyYF8gZm9yIHRoZSBQUi4KKworKiBgYC0t
bGZgYCBhbmQgYGAtLWZmYGAgbm93IHN1cHBvcnQgbG9uZyBuYW1lczogYGAtLWxhc3QtZmFpbGVk
YGAgYW5kCisgIGBgLS1mYWlsZWQtZmlyc3RgYCByZXNwZWN0aXZlbHkuCisgIFRoYW5rcyBgQE1p
Y2hhZWxBcXVpbGluYWBfIGZvciB0aGUgUFIuCisKKyogQWRkZWQgZXhwZWN0ZWQgZXhjZXB0aW9u
cyB0byBweXRlc3QucmFpc2VzIGZhaWwgbWVzc2FnZQorCisqIENvbGxlY3Rpb24gb25seSBkaXNw
bGF5cyBwcm9ncmVzcyAoImNvbGxlY3RpbmcgWCBpdGVtcyIpIHdoZW4gaW4gYSB0ZXJtaW5hbC4K
KyAgVGhpcyBhdm9pZHMgY2x1dHRlcmluZyB0aGUgb3V0cHV0IHdoZW4gdXNpbmcgYGAtLWNvbG9y
PXllc2BgIHRvIG9idGFpbgorICBjb2xvcnMgaW4gQ0kgaW50ZWdyYXRpb25zIHN5c3RlbXMgKGAj
MTM5N2BfKS4KKworKipCdWcgRml4ZXMqKgorCisqIFRoZSBgYC1zYGAgYW5kIGBgLWNgYCBvcHRp
b25zIHNob3VsZCBub3cgd29yayB1bmRlciBgYHhkaXN0YGA7CisgIGBgQ29uZmlnLmZyb21kaWN0
YXJnc2BgIG5vdyByZXByZXNlbnRzIGl0cyBpbnB1dCBtdWNoIG1vcmUgZmFpdGhmdWxseS4KKyAg
VGhhbmtzIHRvIGBAYnVrem9yYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCM2ODBgXykuCisKKyog
Rml4IChgIzEyOTBgXyk6IHN1cHBvcnQgUHl0aG9uIDMuNSdzIGBgQGBgIG9wZXJhdG9yIGluIGFz
c2VydGlvbiByZXdyaXRpbmcuCisgIFRoYW5rcyBgQFNoaW5rZW5qb2VgXyBmb3IgcmVwb3J0IHdp
dGggdGVzdCBjYXNlIGFuZCBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQUi4KKworKiBGaXggZm9ybWF0
dGluZyB1dGYtOCBleHBsYW5hdGlvbiBtZXNzYWdlcyAoYCMxMzc5YF8pLgorICBUaGFua3MgYEBi
aWVybmBfIGZvciB0aGUgUFIuCisKKyogRml4IGB0cmFjZWJhY2sgc3R5bGUgZG9jc2BfIHRvIGRl
c2NyaWJlIGFsbCBvZiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMKKyAgKGF1dG8vbG9uZy9zaG9ydC9s
aW5lL25hdGl2ZS9ubyksIHdpdGggYGF1dG9gIGJlaW5nIHRoZSBkZWZhdWx0IHNpbmNlIHYyLjYu
CisgIFRoYW5rcyBgQGhhY2tlYnJvdGBfIGZvciB0aGUgUFIuCisKKyogRml4IChgIzE0MjJgXyk6
IGp1bml0IHJlY29yZF94bWxfcHJvcGVydHkgZG9lc24ndCBhbGxvdyBtdWx0aXBsZSByZWNvcmRz
CisgIHdpdGggc2FtZSBuYW1lLgorICAKKyAgCisuLiBfYHRyYWNlYmFjayBzdHlsZSBkb2NzYDog
aHR0cHM6Ly9weXRlc3Qub3JnL2xhdGVzdC91c2FnZS5odG1sI21vZGlmeWluZy1weXRob24tdHJh
Y2ViYWNrLXByaW50aW5nCisKKy4uIF8jMTQyMjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8xNDIyCisuLiBfIzEzNzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTM3OQorLi4gXyMxMzY2OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEzNjYKKy4uIF8jMTA0MDogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTA0MAorLi4gXyM2ODA6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjgwCisuLiBfIzEyODc6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEyODcKKy4uIF8jMTIyNjogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTIyNgorLi4gXyMxMjkwOiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xMjkwCisuLiBfIzEzNTU6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEzNTUKKy4uIF8jMTM5NzogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzk3CisuLiBfQGJpZXJu
OiBodHRwczovL2dpdGh1Yi5jb20vYmllcm4KKy4uIF9ATWljaGFlbEFxdWlsaW5hOiBodHRwczov
L2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hCisuLiBfQGJ1a3pvcjogaHR0cHM6Ly9naXRodWIu
Y29tL2J1a3pvcgorLi4gX0BocGs0MjogaHR0cHM6Ly9naXRodWIuY29tL2hwazQyCisuLiBfQG5p
Y29kZGVtdXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNvZGRlbXVzCisuLiBfQGphYjogaHR0cHM6
Ly9naXRodWIuY29tL2phYgorLi4gX0Bjb2Rld2FycmlvcjA6IGh0dHBzOi8vZ2l0aHViLmNvbS9j
b2Rld2FycmlvcjAKKy4uIF9AamFyYWNvOiBodHRwczovL2dpdGh1Yi5jb20vamFyYWNvCisuLiBf
QFRoZS1Db21waWxlcjogaHR0cHM6Ly9naXRodWIuY29tL1RoZS1Db21waWxlcgorLi4gX0BTaGlu
a2Vuam9lOiBodHRwczovL2dpdGh1Yi5jb20vU2hpbmtlbmpvZQorLi4gX0B0b212aW5lcjogaHR0
cHM6Ly9naXRodWIuY29tL3RvbXZpbmVyCisuLiBfQFJvbm55UGZhbm5zY2htaWR0OiBodHRwczov
L2dpdGh1Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQKKy4uIF9AcmFiYmJpdDogaHR0cHM6Ly9naXRo
dWIuY29tL3JhYmJiaXQKKy4uIF9AaGFja2Vicm90OiBodHRwczovL2dpdGh1Yi5jb20vaGFja2Vi
cm90ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi45LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyNzdkYTFlOWIwZjE1NWNmN2Fi
ODFiYTYxNWNiNmQ4NWM3MTM4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMS5yc3QKQEAgLTAsMCArMSw2NyBAQAorcHl0ZXN0LTIu
OS4xCis9PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRv
b2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBv
biBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworU2VlIGJlbG93
IGZvciB0aGUgY2hhbmdlcyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9y
ZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlw
IGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRo
aXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworICAgIEJydW5vIE9saXZlaXJhICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIERhbmllbCBIYWhsZXIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIERt
aXRyeSBNYWxpbm92c2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgIEZsb3JpYW4gQnJ1aGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgIEZsb3JpcyBCcnV5bm9vZ2hlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIE1hdHQgQmFjaG1hbm4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIFJvbm55IFBmYW5u
c2NobWlkdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
IFRvbVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgIFZsYWRpbWlyIEJvbHNoYWtvdiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgIFplYXJpbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBwYWxhdml2ICAgCisKKworSGFw
cHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERldmVsb3BtZW50IFRlYW0KKworCisyLjkuMSAoY29t
cGFyZWQgdG8gMi45LjApCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyoqQnVnIEZpeGVz
KioKKworKiBJbXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIHBsdWdpbiBmYWlscyB0byBsb2Fk
LgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBGaXggKGAjMTE3OCA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMTc4PmBfKToKKyAg
YGBweXRlc3QuZmFpbGBgIHdpdGggbm9uLWFzY2lpIGNoYXJhY3RlcnMgcmFpc2VzIGFuIGludGVy
bmFsIHB5dGVzdCBlcnJvci4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisK
KyogRml4IChgIzQ2OWBfKToganVuaXQgcGFyc2VzIHJlcG9ydC5ub2RlaWQgaW5jb3JyZWN0bHks
IHdoZW4gcGFyYW1zIElEcworICBjb250YWluIGBgOjpgYC4gVGhhbmtzIGBAdG9tdmluZXJgXyBm
b3IgdGhlIFBSIChgIzE0MzFgXykuCisKKyogRml4IChgIzU3OCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81Nzg+YF8pOiBTeW50YXhFcnJvcnMKKyAgY29udGFp
bmluZyBub24tYXNjaWkgbGluZXMgYXQgdGhlIHBvaW50IG9mIGZhaWx1cmUgZ2VuZXJhdGVkIGFu
IGludGVybmFsCisgIHB5LnRlc3QgZXJyb3IuCisgIFRoYW5rcyBgQGFzb3R0aWxlYF8gZm9yIHRo
ZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4IChgIzE0Mzdg
Xyk6IFdoZW4gcGFzc2luZyBpbiBhIGJ5dGVzdHJpbmcgcmVnZXggcGF0dGVybiB0byBwYXJhbWV0
ZXJpemUKKyAgYXR0ZW1wdCB0byBkZWNvZGUgaXQgYXMgdXRmLTggaWdub3JpbmcgZXJyb3JzLgor
CisqIEZpeCAoYCM2NDlgXyk6IHBhcmFtZXRyaXplZCB0ZXN0IG5vZGVzIGNhbm5vdCBiZSBzcGVj
aWZpZWQgdG8gcnVuIG9uIHRoZSBjb21tYW5kIGxpbmUuCisKKworLi4gXyMxNDM3OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MzcKKy4uIF8jNDY5OiBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2OQorLi4gXyMxNDMxOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNDMxCisuLiBfIzY0OTog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82NDkKKworLi4gX0Bh
c290dGlsZTogaHR0cHM6Ly9naXRodWIuY29tL2Fzb3R0aWxlCisuLiBfQG5pY29kZGVtdXM6IGh0
dHBzOi8vZ2l0aHViLmNvbS9uaWNvZGRlbXVzCisuLiBfQHRvbXZpbmVyOiBodHRwczovL2dpdGh1
Yi5jb20vdG9tdmluZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuOS4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
OS4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZjI3NGNkZjM5ODFmMDU4Yjg0NWNhNjBkNzZmZGJhNmVkN2Jl
MDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi45LjIucnN0CkBAIC0wLDAgKzEsNzggQEAKK3B5dGVzdC0yLjkuMgorPT09PT09PT09PT09
CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFu
IGEgMTEwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQg
aW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMg
YW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlv
dSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVz
dAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyAgICAgIEFkYW0gQ2hhaW56CisgICAgICBCZW5qYW1pbiBEb3BwbGluZ2VyCisg
ICAgICBCcnVubyBPbGl2ZWlyYQorICAgICAgRmxvcmlhbiBCcnVoaW4KKyAgICAgIEpvaG4gVG93
bGVyCisgICAgICBNYXJ0aW4gUHJ1c3NlCisgICAgICBNZW5nIEp1ZQorICAgICAgTWVuZ0p1ZU0K
KyAgICAgIE9tYXIgS29obAorICAgICAgUXVlbnRpbiBQcmFkZXQKKyAgICAgIFJvbm55IFBmYW5u
c2NobWlkdAorICAgICAgVGhvbWFzIEfDvHR0bGVyCisgICAgICBUb21WCisgICAgICBUeWxlciBH
b29kbGV0CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERldmVsb3BtZW50IFRlYW0K
KworCisyLjkuMiAoY29tcGFyZWQgdG8gMi45LjEpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworKipCdWcgRml4ZXMqKgorCisqIGZpeCBgIzUxMGBfOiBza2lwIHRlc3RzIHdoZXJlIG9u
ZSBwYXJhbWV0ZXJpemUgZGltZW5zaW9uIHdhcyBlbXB0eQorICB0aGFua3MgQWxleCBTdGFwbGV0
b24gZm9yIHRoZSBSZXBvcnQgYW5kIGBAUm9ubnlQZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSCisK
KyogRml4IFhmYWlsIGRvZXMgbm90IHdvcmsgd2l0aCBjb25kaXRpb24ga2V5d29yZCBhcmd1bWVu
dC4KKyAgVGhhbmtzIGBAYXN0cmF3MzhgXyBmb3IgcmVwb3J0aW5nIHRoZSBpc3N1ZSAoYCMxNDk2
YF8pIGFuZCBgQHRvbXZpbmVyYF8KKyAgZm9yIFBSIHRoZSAoYCMxNTI0YF8pLgorCisqIEZpeCB3
aW4zMiBwYXRoIGlzc3VlIHdoZW4gcHV0dGluZyBjdXN0b20gY29uZmlnIGZpbGUgd2l0aCBhYnNv
bHV0ZSBwYXRoCisgIGluIGBgcHl0ZXN0Lm1haW4oIi1jIHlvdXJfYWJzb2x1dGVfcGF0aCIpYGAu
CisKKyogRml4IG1heGltdW0gcmVjdXJzaW9uIGRlcHRoIGRldGVjdGlvbiB3aGVuIHJhaXNlZCBl
cnJvciBjbGFzcyBpcyBub3QgYXdhcmUKKyAgb2YgdW5pY29kZS9lbmNvZGVkIGJ5dGVzLgorICBU
aGFua3MgYEBwcnVzc2UtbWFydGluYF8gZm9yIHRoZSBQUiAoYCMxNTA2YF8pLgorCisqIEZpeCBg
YHB5dGVzdC5tYXJrLnNraXBgYCBtYXJrIHdoZW4gdXNlZCBpbiBzdHJpY3QgbW9kZS4KKyAgVGhh
bmtzIGBAcHF1ZW50aW5gXyBmb3IgdGhlIFBSIGFuZCBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9y
CisgIHNob3dpbmcgaG93IHRvIGZpeCB0aGUgYnVnLgorCisqIE1pbm9yIGltcHJvdmVtZW50cyBh
bmQgZml4ZXMgdG8gdGhlIGRvY3VtZW50YXRpb24uCisgIFRoYW5rcyBgQG9tYXJrb2hsYF8gZm9y
IHRoZSBQUi4KKworKiBGaXggYGAtLWZpeHR1cmVzYGAgdG8gc2hvdyBhbGwgZml4dHVyZSBkZWZp
bml0aW9ucyBhcyBvcHBvc2VkIHRvIGp1c3QKKyAgb25lIHBlciBmaXh0dXJlIG5hbWUuCisgIFRo
YW5rcyB0byBgQGhhY2tlYnJvdGBfIGZvciB0aGUgUFIuCisKKy4uIF8jNTEwOiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxMAorLi4gXyMxNTA2OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNTA2CisuLiBfIzE0OTY6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZS8xNDk2CisuLiBfIzE1MjQ6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZS8xNTI0CisKKy4uIF9AYXN0
cmF3Mzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc3RyYXczOAorLi4gX0BoYWNrZWJyb3Q6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9oYWNrZWJyb3QKKy4uIF9Ab21hcmtvaGw6IGh0dHBzOi8vZ2l0aHViLmNv
bS9vbWFya29obAorLi4gX0BwcXVlbnRpbjogaHR0cHM6Ly9naXRodWIuY29tL3BxdWVudGluCisu
LiBfQHBydXNzZS1tYXJ0aW46IGh0dHBzOi8vZ2l0aHViLmNvbS9wcnVzc2UtbWFydGluCisuLiBf
QFJvbm55UGZhbm5zY2htaWR0OiBodHRwczovL2dpdGh1Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQK
Ky4uIF9AdG9tdmluZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS90b212aW5lcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjAucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiZjFlODUz
NGVjMzg1ZmIwM2FmOWY5Zjc3ZGNlYThiOWMwMjEyZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuMC5yc3QKQEAgLTAsMCArMSw4MiBA
QAorcHl0ZXN0LTMuMC4wCis9PT09PT09PT09PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3Vk
IHRvIGFubm91bmNlIHRoZSAzLjAuMCByZWxlYXNlIQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0
aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDE2MDAgdGVzdHMKK2FnYWluc3QgaXRz
ZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1z
LgorCitUaGlzIHJlbGVhc2UgY29udGFpbnMgYSBsb3Qgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92
ZW1lbnRzLCBhbmQgbXVjaCBvZgordGhlIHdvcmsgZG9uZSBvbiBpdCB3YXMgcG9zc2libGUgYmVj
YXVzZSBvZiB0aGUgMjAxNiBTcHJpbnRbMV0sIHdoaWNoCit3YXMgZnVuZGVkIGJ5IGFuIGluZGll
Z29nbyBjYW1wYWlnbiB3aGljaCByYWlzZWQgb3ZlciBVUyQxMiwwMDAgd2l0aCAKK25lYXJseSAx
MDAgYmFja2Vycy4gCisKK1RoZXJlJ3MgYSAiV2hhdCdzIG5ldyBpbiBweXRlc3QgMy4wIiBbMl0g
YmxvZyBwb3N0IGhpZ2hsaWdodGluZyB0aGUgCittYWpvciBmZWF0dXJlcyBpbiB0aGlzIHJlbGVh
c2UuCisKK1RvIHNlZSB0aGUgY29tcGxldGUgY2hhbmdlbG9nIGFuZCBkb2N1bWVudGF0aW9uLCBw
bGVhc2UgdmlzaXQ6CisKKyAgICBodHRwOi8vZG9jcy5weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5
b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVz
dAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyAgICBBYmRlYWxpSksKKyAgICBBbmEgUmliZWlybworICAgIEFudG9ueSBMZWUK
KyAgICBCcmFuZG9uIFcgTWFpc3RlcgorICAgIEJyaWFubmEgTGF1Z2hlcgorICAgIEJydW5vIE9s
aXZlaXJhCisgICAgQ2VyaWR3ZW4KKyAgICBDaHJpc3RpYW4gQm9lbHNlbgorICAgIERhbmllbCBI
YWhsZXIKKyAgICBEYW5pZWxsZSBKZW5raW5zCisgICAgRGF2ZSBIdW50CisgICAgRGllZ28gUnVz
c28KKyAgICBEbWl0cnkgRHlnYWxvCisgICAgRWRvYXJkbyBCYXRpbmkKKyAgICBFbGkgQm95YXJz
a2kKKyAgICBGbG9yaWFuIEJydWhpbgorICAgIEZsb3JpcyBCcnV5bm9vZ2hlCisgICAgR3JlZyBQ
cmljZQorICAgIEd1eXptbworICAgIEhFQUQgS0FOR0FST08KKyAgICBKSgorICAgIEphdmkgUm9t
ZXJvCisgICAgSmF2aWVyIERvbWluZ28gQ2Fuc2lubworICAgIEthbGUgS3VuZGVydAorICAgIEth
bGxlIEJyb25zZW4KKyAgICBNYXJpdXMgR2VkbWluYXMKKyAgICBNYXR0IFdpbGxpYW1zCisgICAg
TWlrZSBMdW5keQorICAgIE9saXZlciBCZXN0d2FsdGVyCisgICAgT21hciBLb2hsCisgICAgUmFw
aGFlbCBQaWVyemluYQorICAgIFJlZEJlYXJkQ29kZQorICAgIFJvYmVydG8gUG9sbGkKKyAgICBS
b21haW4gRG9yZ3VlaWwKKyAgICBSb21hbiBCb2xzaGFrb3YKKyAgICBSb25ueSBQZmFubnNjaG1p
ZHQKKyAgICBTdGVmYW4gWmltbWVybWFubgorICAgIFN0ZWZmZW4gQWxsbmVyCisgICAgVGFyZXEg
QWxheWFuCisgICAgVGVkIFhpYW8KKyAgICBUaG9tYXMgR3JhaW5nZXIKKyAgICBUb20gVmluZXIK
KyAgICBUb21WCisgICAgVmFzaWx5IEt1em5ldHNvdgorICAgIGFvc3RyCisgICAgbWFyc2NoZXIK
KyAgICBwYWxhdml2CisgICAgc2F0b3J1CisgICAgdGFzY2hpbmkKKworCitIYXBweSB0ZXN0aW5n
LAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCisKK1sxXSBodHRwOi8vYmxvZy5weXRlc3Qu
b3JnLzIwMTYvcHl0ZXN0LWRldmVsb3BtZW50LXNwcmludC8KK1syXSBodHRwOi8vYmxvZy5weXRl
c3Qub3JnLzIwMTYvd2hhdHMtbmV3LWluLXB5dGVzdC0zMC8KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIzODA0N2I5Y2FlNjc2
NWRlZTdiNmNiM2MxNWQzN2Q0YzEyNTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjEucnN0CkBAIC0wLDAgKzEsMjYgQEAKK3B5dGVz
dC0zLjAuMQorPT09PT09PT09PT09CisKK3B5dGVzdCAzLjAuMSBoYXMganVzdCBiZWVuIHJlbGVh
c2VkIHRvIFB5UEkuCisKK1RoaXMgcmVsZWFzZSBmaXhlcyBzb21lIHJlZ3Jlc3Npb25zIHJlcG9y
dGVkIGluIHZlcnNpb24gMy4wLjAsIGJlaW5nIGEKK2Ryb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVw
Z3JhZGU6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorICAKK1RoZSBjaGFuZ2Vs
b2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdl
bG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFz
ZSwgYW1vbmcgdGhlbToKKworICAgICAgQWRhbSBDaGFpbnoKKyAgICAgIEFuZHJldyBTdmV0bG92
CisgICAgICBCcnVubyBPbGl2ZWlyYQorICAgICAgRGFuaWVsIEhhaGxlcgorICAgICAgRG1pdHJ5
IER5Z2FsbworICAgICAgRmxvcmlhbiBCcnVoaW4KKyAgICAgIE1hcmNpbiBCYWNocnkKKyAgICAg
IFJvbm55IFBmYW5uc2NobWlkdAorICAgICAgbWF0dGhpYXNoYQorCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy4wLjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMWMwNWYyZDQ1MzFmZjg1YTYzZjRk
YTc0YjExMjI5MDJkYTUxODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjAuMi5yc3QKQEAgLTAsMCArMSwyNCBAQAorcHl0ZXN0LTMuMC4y
Cis9PT09PT09PT09PT0KKworcHl0ZXN0IDMuMC4yIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8g
UHlQSS4KKworVGhpcyByZWxlYXNlIGZpeGVzIHNvbWUgcmVncmVzc2lvbnMgYW5kIGJ1Z3MgcmVw
b3J0ZWQgaW4gdmVyc2lvbiAzLjAuMSwgYmVpbmcgYQorZHJvcC1pbiByZXBsYWNlbWVudC4gVG8g
dXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorICAKK1RoZSBjaGFu
Z2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hh
bmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVs
ZWFzZSwgYW1vbmcgdGhlbToKKworKiBBaG4gS2ktV29vaworKiBCcnVubyBPbGl2ZWlyYQorKiBG
bG9yaWFuIEJydWhpbgorKiBKb3JkYW4gR3V5bW9uCisqIFJhcGhhZWwgUGllcnppbmEKKyogUm9u
bnkgUGZhbm5zY2htaWR0CisqIG1ieXQKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2
ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4wLjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4w
LjMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwMDE3MjE5NWRiOGNiMzliZWY1YjRkODJlNmQ3OTVmNDAzMDFl
MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjAuMy5yc3QKQEAgLTAsMCArMSwyNyBAQAorcHl0ZXN0LTMuMC4zCis9PT09PT09PT09PT0K
KworcHl0ZXN0IDMuMC4zIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBy
ZWxlYXNlIGZpeGVzIHNvbWUgcmVncmVzc2lvbnMgYW5kIGJ1Z3MgcmVwb3J0ZWQgaW4gdGhlIGxh
c3QgdmVyc2lvbiwgCitiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6Ogor
CisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitUaGUgY2hhbmdlbG9nIGlzIGF2
YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1s
LgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4KKyogRmxvcmlzIEJy
dXlub29naGUKKyogSHVheWkgWmhhbmcKKyogTGV2IE1heGltb3YKKyogUmFxdWVsIEFsZWdyZQor
KiBSb25ueSBQZmFubnNjaG1pZHQKKyogUm95IFdpbGxpYW1zCisqIFR5bGVyIEdvb2RsZXQKKyog
bWJ5dAorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNC5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODUyMDU3MDM3ZGQ0ZmY1YjE1YjdiYzUyNDcxNDQxYjcyODFjMDRmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC40LnJzdApAQCAtMCww
ICsxLDI5IEBACitweXRlc3QtMy4wLjQKKz09PT09PT09PT09PQorCitweXRlc3QgMy4wLjQgaGFz
IGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIHJlbGVhc2UgZml4ZXMgc29tZSBy
ZWdyZXNzaW9ucyBhbmQgYnVncyByZXBvcnRlZCBpbiB0aGUgbGFzdCB2ZXJzaW9uLCAKK2JlaW5n
IGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11
cGdyYWRlIHB5dGVzdAorICAKK1RoZSBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9k
b2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwg
d2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBCcnVubyBP
bGl2ZWlyYQorKiBEYW4gV2FuZHNjaG5laWRlcgorKiBGbG9yaWFuIEJydWhpbgorKiBHZW9yZ3kg
RHl1bGRpbgorKiBHcmlnb3JpaSBFcmVtZWV2CisqIEphc29uIFIuIENvb21icworKiBNYW51ZWwg
SmFjb2IKKyogTWF0aGlldSBDbGFiYXV0CisqIE1pY2hhZWwgU2VpZmVydAorKiBOaWtvbGF1cyBS
YXRoCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUb20gVgorCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjAuNS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjAuNS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNDE5ZDdlNWRjNzAyZjg4Y2NiOWRjZjhj
YjM3MzNiNmUwODBkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuMC41LnJzdApAQCAtMCwwICsxLDI3IEBACitweXRlc3QtMy4wLjUKKz09
PT09PT09PT09PQorCitweXRlc3QgMy4wLjUgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJ
LgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1l
bnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitU
aGUgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0
aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5hIFZvam5vdmljCisqIEJydW5vIE9saXZl
aXJhCisqIERhbmllbCBIYWhsZXIKKyogRHVuY2FuIEJldHRzCisqIElnb3IgU3Rhcmlrb3YKKyog
SXNtYWlsCisqIEx1a2UgTXVycGh5CisqIE5lZCBCYXRjaGVsZGVyCisqIFJvbm55IFBmYW5uc2No
bWlkdAorKiBTZWJhc3RpYW4gUmFtYWNoZXIKKyogbm11bmRhcgorCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjAuNi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk4OGI5Y2IzYjhmM2VkMjNmNjE5NTU3
NjAyZjdhM2I4ZWRjYjY4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuMC42LnJzdApAQCAtMCwwICsxLDMzIEBACitweXRlc3QtMy4wLjYK
Kz09PT09PT09PT09PQorCitweXRlc3QgMy4wLjYgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQ
eVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFj
ZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAg
CitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9y
Zy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJp
YnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFuZHJlYXMgUGVsbWUKKyog
QnJ1bm8gT2xpdmVpcmEKKyogRG1pdHJ5IE1hbGlub3Zza3kKKyogRWxpIEJveWFyc2tpCisqIEph
a3ViIFdpbGsKKyogSmVmZiBXaWRtYW4KKyogTG/Dr2MgRXN0w6h2ZQorKiBMdWtlIE11cnBoeQor
KiBNaXJvIEhyb27EjW9rCisqIE9zY2FyIEhlbGxzdHLDtm0KKyogUGV0ZXIgSGVhdHdvbGUKKyog
UGhpbGlwcGUgT21icmVkYW5uZQorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogUnV0Z2VyIFByaW5z
CisqIFN0ZWZhbiBTY2hlcmZrZQorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVs
b3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTMuMC43LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC43
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41OTE1NTdhYTc4NzNkM2NmMDdhZDk3MGMyOTdkOWNmN2ViMWJlOWI4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4wLjcucnN0CkBAIC0wLDAgKzEsMzMgQEAKK3B5dGVzdC0zLjAuNworPT09PT09PT09PT09CisK
K3B5dGVzdCAzLjAuNyBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMg
YSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFk
ZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorICAKK1RoZSBmdWxsIGNoYW5n
ZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFu
Z2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxl
YXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBCYXJuZXkgR2FsZQorKiBC
cnVubyBPbGl2ZWlyYQorKiBGbG9yaWFuIEJydWhpbgorKiBGbG9yaXMgQnJ1eW5vb2doZQorKiBJ
b25lbCBDcmlzdGlhbiBNxINyaWXImQorKiBLYXRlcmluYSBLb3VraW91CisqIE5PREEsIEthaQor
KiBPbWVyIEhhZGFyaQorKiBQYXRyaWNrIEhheWVzCisqIFJhbiBCZW5pdGEKKyogUm9ubnkgUGZh
bm5zY2htaWR0CisqIFZpY3RvciBVcmlhcnRlCisqIFZpZGFyIFRvbmFhcyBGYXVza2UKKyogVmls
bGUgU2t5dHTDpAorKiBmYmpvcm4KKyogbWJ5dAorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVz
dCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjEuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjEuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljYzZiZGJlMjA3N2YxMGVlMTQ2ZWZmMDRjY2ZiYmNm
MWY4OTcxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMS4wLnJzdApAQCAtMCwwICsxLDYxIEBACitweXRlc3QtMy4xLjAKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJv
dWQgdG8gYW5ub3VuY2UgdGhlIDMuMS4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQ
eXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTYwMCB0ZXN0cworYWdhaW5zdCBp
dHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9y
bXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVtZW50
cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29rIGF0IHRoZSBDSEFOR0VM
T0c6CisKK2h0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKKwor
Rm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdDoKKworICAgIGh0dHA6Ly9k
b2NzLnB5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlh
OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRy
aWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUK
KyogQmVuIExsb3lkCisqIEJydW5vIE9saXZlaXJhCisqIERhdmlkIEdpZXNlCisqIERhdmlkIFN6
b3R0ZW4KKyogRG1pdHJpIFByaWJ5c2gKKyogRmxvcmlhbiBCcnVoaW4KKyogRmxvcmlhbiBTY2h1
bHplCisqIEZsb3JpcyBCcnV5bm9vZ2hlCisqIEpvaG4gVG93bGVyCisqIEpvbmFzIE9icmlzdAor
KiBLYXRlcmluYSBLb3VraW91CisqIEtvZGkgQXJmZXIKKyogS3J6eXN6dG9mIFN6dWxhcnoKKyog
TGV2IE1heGltb3YKKyogTG/Dr2MgRXN0w6h2ZQorKiBMdWtlIE11cnBoeQorKiBNYW51ZWwgS3Jl
YmJlcgorKiBNYXR0aGV3IER1Y2sKKyogTWF0dGhpYXMgQnVzc29ubmllcgorKiBNaWNoYWVsIEhv
d2l0egorKiBNaWNoYWwgV2Fqc3pjenVrCisqIFBhd2XFgiBBZGFtY3phaworKiBSYWZhZWwgQmVy
dG9sZGkKKyogUmF2aSBDaGFuZHJhCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTa3lsYXIgRG93
bmVzCisqIFRob21hcyBLcmllY2hiYXVtZXIKKyogVml0YWx5IExhc2htYW5vdgorKiBWbGFkIERy
YWdvcworKiBXaGVlcmQKKyogWGFuZGVyIEpvaG5zb24KKyogbWFuZGVlcAorKiByZXV0CisKKwor
SGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjEucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MGI4ZmQ3
MzU1MDI2Yzc4NDdjYzJjNTBlNDk1NmFjM2E4NDQ2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEuMS5yc3QKQEAgLTAsMCArMSwyMyBA
QAorcHl0ZXN0LTMuMS4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworcHl0ZXN0IDMuMS4xIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBp
cyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdy
YWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwgY2hh
bmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2No
YW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJl
bGVhc2UsIGFtb25nIHRoZW06CisKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4K
KyogRmxvcmlzIEJydXlub29naGUKKyogSmFzb24gUi4gQ29vbWJzCisqIFJvbm55IFBmYW5uc2No
bWlkdAorKiB3YW5naHVpCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1l
bnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4xLjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjIucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwMTY4YTg1N2JhYmY2YzI4N2I1MTc4NjJlOTU0MzdjMGI1M2Q0NGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEu
Mi5yc3QKQEAgLTAsMCArMSwyMyBAQAorcHl0ZXN0LTMuMS4yCis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMS4yIGhhcyBqdXN0IGJlZW4gcmVsZWFz
ZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWlu
IHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0
ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5kcmVhcyBQZWxt
ZQorKiBBcGFEb2N0b3IKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4KKyogUm9u
bnkgUGZhbm5zY2htaWR0CisqIFNlZ2V2IEZpbmVyCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBw
eXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy4xLjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4xLjMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NTI4MDYyNmJhOThkNmQyMTQwN2RiMjgyZDgz
YzU0NTM2MDM5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjEuMy5yc3QKQEAgLTAsMCArMSwyMyBAQAorcHl0ZXN0LTMuMS4zCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMS4zIGhhcyBq
dXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwg
YmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFs
bCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBh
dCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFu
a3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisK
KyogQW50b2luZSBMZWdyYW5kCisqIEJydW5vIE9saXZlaXJhCisqIE1heCBNb3JvegorKiBSYXBo
YWVsIFBpZXJ6aW5hCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBSeWFuIEZpdHpwYXRyaWNrCisK
KworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjAucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkMjgz
MGVkZDJkZWRlNzg3ZTJlMWVkY2NmM2EyOGU5MzJiZTE0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMC5yc3QKQEAgLTAsMCArMSw0
OCBAQAorcHl0ZXN0LTMuMi4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSAzLjIuMCByZWxl
YXNlIQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUg
dGhhbiBhIDE2MDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVy
ZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitUaGlzIHJlbGVhc2UgY29udGFpbnMg
YSBudW1iZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLCBzbyB1c2VycyBhcmUgZW5j
b3VyYWdlZAordG8gdGFrZSBhIGxvb2sgYXQgdGhlIENIQU5HRUxPRzoKKworICAgIGh0dHA6Ly9k
b2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKKworRm9yIGNvbXBsZXRlIGRv
Y3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdDoKKworICAgIGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcK
KworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOgorCisgICAgcGlwIGlu
c3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMg
cmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbGV4IEhhcnRvdG8KKyogQW5kcmFzIFRpbQorKiBC
cnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIEZsb3JpYW4gQnJ1aGluCisqIEZsb3Jp
cyBCcnV5bm9vZ2hlCisqIEpvaG4gU3RpbGwKKyogSm9yZGFuIE1vbGRvdworKiBLYWxlIEt1bmRl
cnQKKyogTGF3cmVuY2UgTWl0Y2hlbGwKKyogTGxhbmR5IFJpdmVyb24gRGVsIFJpc2NvCisqIE1h
aWsgRmlndXJhCisqIE1hcnRpbiBBbHRtYXllcgorKiBNaWhhaSBDYXBvdMSDCisqIE5hdGhhbmll
bCBXYWlzYnJvdAorKiBOZ3V54buFbiBI4buTbmcgUXXDom4KKyogUGF1bGkgVmlydGFuZW4KKyog
UmFwaGFlbCBQaWVyemluYQorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU2VnZXYgRmluZXIKKyog
Vi5LdXpuZXRzb3YKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBU
ZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIu
MS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMS5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODk5ZmZjZDRiNGFhY2Q4ODZlN2ZiNzI1Yjk4NGJkZTkxNWM2M2EyMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4xLnJz
dApAQCAtMCwwICsxLDIyIEBACitweXRlc3QtMy4yLjEKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy4yLjEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0
byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVw
bGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QK
KyAgCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRy
aWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbGV4IEdheW5vcgorKiBC
cnVubyBPbGl2ZWlyYQorKiBGbG9yaWFuIEJydWhpbgorKiBSb25ueSBQZmFubnNjaG1pZHQKKyog
U3Jpbml2YXMgUmVkZHkgVGhhdGlwYXJ0aHkKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVz
dCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjIuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjIuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk5YmY4NzI3NzVjYjJiMDQ1ZmU3YTJkNjBiNjllNDZk
ZjJkNWZkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMi4yLnJzdApAQCAtMCwwICsxLDI4IEBACitweXRlc3QtMy4yLjIKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy4yLjIgaGFzIGp1c3Qg
YmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWlu
ZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0t
dXBncmFkZSBweXRlc3QKKyAgCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0
dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0
byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBB
bmRyZWFzIFBlbG1lCisqIEFudG9uaW8gSGlkYWxnbworKiBCcnVubyBPbGl2ZWlyYQorKiBGZWxp
cGUgRGF1CisqIEZlcm5hbmRvIE1hY2VkbworKiBKZXPDunMgRXNwaW5vCisqIEpvYW4gTWFzc2lj
aAorKiBKb2UgVGFsYm90dAorKiBLaXJpbGwgUGluY2h1aworKiBSb25ueSBQZmFubnNjaG1pZHQK
KyogWHVhbiBMdW9uZworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50
IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
Mi4zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4zLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ODkzNzQ5NzRkOTFkOTUxMGIyNTllNzlkYzVkNWQ3ZGFmZDNkYzMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjMu
cnN0CkBAIC0wLDAgKzEsMjMgQEAKK3B5dGVzdC0zLjIuMworPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjIuMyBoYXMganVzdCBiZWVuIHJlbGVhc2Vk
IHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiBy
ZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVz
dAorICAKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29u
dHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZlaXJh
CisqIEV2YW4KKyogSm9lIEhhbW1hbgorKiBPbGl2ZXIgQmVzdHdhbHRlcgorKiBSb25ueSBQZmFu
bnNjaG1pZHQKKyogWHVhbiBMdW9uZworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERl
dmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMi40LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
Mi40LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NGJmY2MyN2UyOWI1ZmViOWNlMjc4YjMyYjJkZWJiMTg1MDdm
ZTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy4yLjQucnN0CkBAIC0wLDAgKzEsMzYgQEAKK3B5dGVzdC0zLjIuNAorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjIuNCBoYXMganVzdCBiZWVu
IHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEg
ZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdy
YWRlIHB5dGVzdAorICAKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDov
L2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5v
IE9saXZlaXJhCisqIENocmlzdGlhbiBCb2Vsc2VuCisqIENocmlzdG9waCBCdWNobmVyCisqIERh
dy1SYW4gTGlvdQorKiBGbG9yaWFuIEJydWhpbgorKiBGcmFuY2sgTWljaGVhCisqIExlb25hcmQg
TGF1c2VuCisqIE1hdHR5IEcKKyogT3dlbiBUdXoKKyogUGF2ZWwgS2FyYXRlZXYKKyogUGllcnJl
IEdJUkFVRAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU3RlcGhlbiBGaW51Y2FuZQorKiBTdmlh
dG9zbGF2IEFiYWt1bW92CisqIFRob21hcyBIaXNjaAorKiBUb20gRGFsdG9uCisqIFh1YW4gTHVv
bmcKKyogWW9yZ29zIFBhZ2xlcworKiDQodC10LzRkdC9INCc0LDRgNGM0Y/RgdC40L0KKworCitI
YXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuNS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuNS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTUyMGNlMmIz
MzNkNTZiZjUyNjRlY2ZiNmRhZWUwMDk2ODUyNzg0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi41LnJzdApAQCAtMCwwICsxLDE4IEBA
CitweXRlc3QtMy4yLjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitweXRlc3QgMy4yLjUgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlz
IGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3Jh
ZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitUaGUgZnVsbCBjaGFu
Z2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hh
bmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVs
ZWFzZSwgYW1vbmcgdGhlbToKKworKiBCcnVubyBPbGl2ZWlyYQorCisKK0hhcHB5IHRlc3Rpbmcs
CitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMy4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuMy4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDc0MGU3ZDU5Mjk1ZmU1YjBjY2Ni
Zjc2ZTdkMWVjNmMwZmFkOGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4zLjAucnN0CkBAIC0wLDAgKzEsNTAgQEAKK3B5dGVzdC0zLjMu
MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBweXRlc3Qg
dGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgMy4zLjAgcmVsZWFzZSEKKworcHl0ZXN0IGlz
IGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxNjAwIHRlc3Rz
CithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMg
YW5kIHBsYXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3Mg
Zml4ZXMgYW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2Ug
YSBsb29rIGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVh
c2UgdmlzaXQ6CisKKyAgICBodHRwOi8vZG9jcy5weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3Ug
Y2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAor
CitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRo
ZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIENlcmlkd2VuCisq
IERhbmllbCBIYWhsZXIKKyogRGlyayBUaG9tYXMKKyogRG1pdHJ5IE1hbGlub3Zza3kKKyogRmxv
cmlhbiBCcnVoaW4KKyogR2VvcmdlIFkuIEt1c3N1bW90bworKiBIdWdvCisqIEplc8O6cyBFc3Bp
bm8KKyogSm9hbiBNYXNzaWNoCisqIE9maXIKKyogT2Zpck9zaGlyCisqIFJvbm55IFBmYW5uc2No
bWlkdAorKiBTYW11ZWwgRGlvbi1HaXJhcmRlYXUKKyogU3Jpbml2YXMgUmVkZHkgVGhhdGlwYXJ0
aHkKKyogU3ZpYXRvc2xhdiBBYmFrdW1vdgorKiBUYXJjaXNpbyBGaXNjaGVyCisqIFRob21hcyBI
aXNjaAorKiBUeWxlciBHb29kbGV0CisqIGh1Z292aworKiBqZQorKiBwcm9rYWt0dXMKKworCitI
YXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uvc3ByaW50MjAxNi5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2Uvc3ByaW50MjAxNi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU3MDY1ODk4NzY3MTBk
NDBlNzZkNzZhN2I2MmEyNmFmYjhhNTdjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9zcHJpbnQyMDE2LnJzdApAQCAtMCwwICsxLDY0IEBACitweXRob24g
dGVzdGluZyBzcHJpbnQgSnVuZSAyMHRoLTI2dGggMjAxNgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGltYWdlOjogLi4vaW1nL2Zy
ZWlidXJnMi5qcGcKKyAgIDp3aWR0aDogNDAwCisKK1RoZSBweXRlc3QgY29yZSBncm91cCBoZWxk
IHRoZSBiaWdnZXN0IHNwcmludAoraW4gaXRzIGhpc3RvcnkgaW4gSnVuZSAyMDE2LCB0YWtpbmcg
cGxhY2UgaW4gdGhlIGJsYWNrIGZvcmVzdCB0b3duIEZyZWlidXJnCitpbiBHZXJtYW55LiAgSW4g
RmVicnVhcnkgMjAxNiB3ZSBzdGFydGVkIGEgYGZ1bmRpbmcKK2NhbXBhaWduIG9uIEluZGllZ29n
byB0byBjb3ZlciBleHBlbnNlcworPGh0dHA6Ly9pZ2cubWUvYXQvcHl0ZXN0LXNwcmludC94LzQw
MzQ4NDg+YF8gVGhlIHBhZ2UgYWxzbyBtZW50aW9ucworc29tZSBwcmVsaW1pbmFyeSB0b3BpY3M6
CisKKy0gaW1wcm92aW5nIHB5dGVzdC14ZGlzdCB0ZXN0IHNjaGVkdWxpbmcgdG8gdGFrZSBpbnRv
IGFjY291bnQKKyAgZml4dHVyZSBzZXR1cHMgYW5kIGV4cGxpY2l0IHVzZXIgaGludHMuCisKKy0g
cHJvdmlkZSBpbmZvIG9uIGZpeHR1cmUgZGVwZW5kZW5jaWVzIGR1cmluZyAtLWNvbGxlY3Qtb25s
eQorCistIHR5aW5nIHB5dGVzdC14ZGlzdCB0byB0b3ggc28gdGhhdCB5b3UgY2FuIGRvICJweS50
ZXN0IC1lIHB5MzQiCisgIHRvIHJ1biB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgdG94LW1hbmFnZWQg
dmlydHVhbGVudi4gIEFsc28KKyAgbG9vayBpbnRvIG1ha2luZyBweXRlc3QteGRpc3QgdXNlIHRv
eCBlbnZpcm9ubWVudHMgb24KKyAgcmVtb3RlIHNzaC1zaWRlcyBzbyB0aGF0IHJlbW90ZSBkZXBl
bmRlbmN5IG1hbmFnZW1lbnQgYmVjb21lcworICBlYXNpZXIuCisKKy0gcmVmYWN0b3JpbmcgdGhl
IGZpeHR1cmUgc3lzdGVtIHNvIG1vcmUgcGVvcGxlIHVuZGVyc3RhbmQgaXQgOikKKworLSBpbnRl
Z3JhdGluZyBQeVVuaXQgc2V0dXAgbWV0aG9kcyBhcyBhdXRvdXNlIGZpeHR1cmVzLgorICBwb3Nz
aWJseSBhZGRpbmcgd2F5cyB0byBpbmZsdWVuY2Ugb3JkZXJpbmcgb2Ygc2FtZS1zY29wZWQKKyAg
Zml4dHVyZXMgKHNvIHlvdSBjYW4gbWFrZSBhIGNob2ljZSBvZiB3aGljaCBmaXh0dXJlcyBjb21l
CisgIGJlZm9yZSBvdGhlcnMpCisKKy0gZml4aW5nIGJ1Z3MgYW5kIGlzc3VlcyBmcm9tIHRoZSB0
cmFja2VyLCByZWFsbHkgYW4gZW5kbGVzcyBzb3VyY2UgOikKKworCitQYXJ0aWNpcGFudHMKKy0t
LS0tLS0tLS0tLS0tCisKK092ZXIgMjAgcGFydGljaXBhbnRzIHRvb2sgcGFydCBmcm9tIDQgY29u
dGluZW50cywgaW5jbHVkaW5nIGVtcGxveWVlcworZnJvbSBTcGx1bmssIFBlcnNvbmFsa29sbGVu
LCBDb2JlLmlvLCBGYW5EdWVsIGFuZCBEb2xieS4gU29tZSBuZXdjb21lcnMKK21peGVkIHdpdGgg
ZGV2ZWxvcGVycyB3aG8gaGF2ZSB3b3JrZWQgb24gcHl0ZXN0IHNpbmNlIGl0cyBiZWdpbm5pbmcs
IGFuZAorb2YgY291cnNlIGV2ZXJ5b25lIGluIGJldHdlZW4uCisKKworU3ByaW50IG9yZ2FuaXNh
dGlvbiwgc2NoZWR1bGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUGVvcGxl
IGFycml2ZWQgaW4gRnJlaWJ1cmcgb24gdGhlIDE5dGgsIHdpdGggc3ByaW50IGRldmVsb3BtZW50
IHRha2luZworcGxhY2Ugb24gMjB0aCwgMjFzdCwgMjJuZCwgMjR0aCBhbmQgMjV0aC4gT24gdGhl
IDIzcmQgd2UgdG9vayBhIGJyZWFrCitkYXkgZm9yIHNvbWUgaG90IGhpa2luZyBpbiB0aGUgQmxh
Y2sgRm9yZXN0LgorCitTcHJpbnQgYWN0aXZpdHkgd2FzIG9yZ2FuaXNlZCBoZWF2aWx5IGFyb3Vu
ZCBwYWlyaW5nLCB3aXRoIHBsZW50eSBvZiBncm91cAorZGlzY3Vzc3Npb25zIHRvIHRha2UgYWR2
YW50YWdlIG9mIHRoZSBoaWdoIGJhbmR3aWR0aCwgYW5kIGxpZ2h0bmluZyB0YWxrcworYXMgd2Vs
bC4KKworCitNb25leSAvIGZ1bmRpbmcKKy0tLS0tLS0tLS0tLS0tLQorCisKK1RoZSBJbmRpZWdv
Z28gY2FtcGFpZ24gYWltZWQgZm9yIDExMDAwIFVTRCBhbmQgaW4gdGhlIGVuZCByYWlzZWQgb3Zl
cgorMTIwMDAsIHRvIHJlaW1idXJzZSB0cmF2ZWwgY29zdHMsIHBheSBmb3IgYSBzcHJpbnQgdmVu
dWUgYW5kIGNhdGVyaW5nLgorCitFeGNlc3MgbW9uZXkgaXMgcmVzZXJ2ZWQgZm9yIGZ1cnRoZXIg
c3ByaW50L3RyYXZlbCBmdW5kaW5nIGZvciBweXRlc3QvdG94Citjb250cmlidXRvcnMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0NTY3
NjcxM2M0ZmJjNmJlNGFjNWNkYTE5MjUxNzEwNzhlYjM2YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDc3IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjAucnN0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4wLjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4wLjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjAu
cnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjEucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjIucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4yLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi4yLjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4y
LjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjQucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjAucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi4zLjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi4zLjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4zLjQucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjUucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjEucnN0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi41LjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi41LjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjIu
cnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjAucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjEucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi42LjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi43LjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43
LjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjIucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjIucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi44LjQucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi44LjUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi44LjYucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjcucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjAucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjEucnN0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy4wLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy4wLjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjIu
cnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjMucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjQucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy4wLjYucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4wLjcucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4x
LjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjEucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjIucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4yLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4yLjEucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4yLjIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjMucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjQucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjUucnN0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy4zLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3NwcmludDIwMTYucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hc3NlcnQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhODUyOTc4
ZWQyMTliZTUzNGMxY2RjZGQzNDVlMDRhZGI2NGRjMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdApAQCAtMCwwICsxLDI5OSBAQAorCitUaGUgd3JpdGlu
ZyBhbmQgcmVwb3J0aW5nIG9mIGFzc2VydGlvbnMgaW4gdGVzdHMKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9gYXNzZXJ0ZmVlZGJhY2tg
OgorLi4gX2Bhc3NlcnQgd2l0aCB0aGUgYXNzZXJ0IHN0YXRlbWVudGA6CisuLiBfYGFzc2VydGA6
CisKKworQXNzZXJ0aW5nIHdpdGggdGhlIGBgYXNzZXJ0YGAgc3RhdGVtZW50CistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYGBweXRl
c3RgYCBhbGxvd3MgeW91IHRvIHVzZSB0aGUgc3RhbmRhcmQgcHl0aG9uIGBgYXNzZXJ0YGAgZm9y
IHZlcmlmeWluZworZXhwZWN0YXRpb25zIGFuZCB2YWx1ZXMgaW4gUHl0aG9uIHRlc3RzLiAgRm9y
IGV4YW1wbGUsIHlvdSBjYW4gd3JpdGUgdGhlCitmb2xsb3dpbmc6OgorCisgICAgIyBjb250ZW50
IG9mIHRlc3RfYXNzZXJ0MS5weQorICAgIGRlZiBmKCk6CisgICAgICAgIHJldHVybiAzCisKKyAg
ICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICBhc3NlcnQgZigpID09IDQKKwordG8gYXNz
ZXJ0IHRoYXQgeW91ciBmdW5jdGlvbiByZXR1cm5zIGEgY2VydGFpbiB2YWx1ZS4gSWYgdGhpcyBh
c3NlcnRpb24gZmFpbHMKK3lvdSB3aWxsIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5j
dGlvbiBjYWxsOjoKKworICAgICQgcHl0ZXN0IHRlc3RfYXNzZXJ0MS5weQorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0z
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRlbQorICAgIAorICAgIHRlc3RfYXNzZXJ0
MS5weSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlM
VVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9mdW5jdGlvbiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgPiAgICAgICBh
c3NlcnQgZigpID09IDQKKyAgICBFICAgICAgIGFzc2VydCAzID09IDQKKyAgICBFICAgICAgICAr
ICB3aGVyZSAzID0gZigpCisgICAgCisgICAgdGVzdF9hc3NlcnQxLnB5OjU6IEFzc2VydGlvbkVy
cm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCBpbiAwLjEyIHNlY29u
ZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitgYHB5dGVzdGBgIGhhcyBzdXBwb3J0IGZv
ciBzaG93aW5nIHRoZSB2YWx1ZXMgb2YgdGhlIG1vc3QgY29tbW9uIHN1YmV4cHJlc3Npb25zCitp
bmNsdWRpbmcgY2FsbHMsIGF0dHJpYnV0ZXMsIGNvbXBhcmlzb25zLCBhbmQgYmluYXJ5IGFuZCB1
bmFyeQorb3BlcmF0b3JzLiAoU2VlIDpyZWY6YHRicmVwb3J0ZGVtb2ApLiAgVGhpcyBhbGxvd3Mg
eW91IHRvIHVzZSB0aGUKK2lkaW9tYXRpYyBweXRob24gY29uc3RydWN0cyB3aXRob3V0IGJvaWxl
cnBsYXRlIGNvZGUgd2hpbGUgbm90IGxvc2luZworaW50cm9zcGVjdGlvbiBpbmZvcm1hdGlvbi4K
KworSG93ZXZlciwgaWYgeW91IHNwZWNpZnkgYSBtZXNzYWdlIHdpdGggdGhlIGFzc2VydGlvbiBs
aWtlIHRoaXM6OgorCisgICAgYXNzZXJ0IGEgJSAyID09IDAsICJ2YWx1ZSB3YXMgb2RkLCBzaG91
bGQgYmUgZXZlbiIKKwordGhlbiBubyBhc3NlcnRpb24gaW50cm9zcGVjdGlvbiB0YWtlcyBwbGFj
ZXMgYXQgYWxsIGFuZCB0aGUgbWVzc2FnZQord2lsbCBiZSBzaW1wbHkgc2hvd24gaW4gdGhlIHRy
YWNlYmFjay4KKworU2VlIDpyZWY6YGFzc2VydC1kZXRhaWxzYCBmb3IgbW9yZSBpbmZvcm1hdGlv
biBvbiBhc3NlcnRpb24gaW50cm9zcGVjdGlvbi4KKworLi4gX2Bhc3NlcnRyYWlzZXNgOgorCitB
c3NlcnRpb25zIGFib3V0IGV4cGVjdGVkIGV4Y2VwdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJbiBvcmRlciB0byB3cml0ZSBhc3NlcnRpb25zIGFi
b3V0IHJhaXNlZCBleGNlcHRpb25zLCB5b3UgY2FuIHVzZQorYGBweXRlc3QucmFpc2VzYGAgYXMg
YSBjb250ZXh0IG1hbmFnZXIgbGlrZSB0aGlzOjoKKworICAgIGltcG9ydCBweXRlc3QKKworICAg
IGRlZiB0ZXN0X3plcm9fZGl2aXNpb24oKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFpl
cm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgIDEgLyAwCisKK2FuZCBpZiB5b3UgbmVlZCB0
byBoYXZlIGFjY2VzcyB0byB0aGUgYWN0dWFsIGV4Y2VwdGlvbiBpbmZvIHlvdSBtYXkgdXNlOjoK
KworICAgIGRlZiB0ZXN0X3JlY3Vyc2lvbl9kZXB0aCgpOgorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoUnVudGltZUVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgICAgICBmKCkKKyAgICAgICAgICAgIGYoKQorICAgICAgICBhc3NlcnQgJ21heGlt
dW0gcmVjdXJzaW9uJyBpbiBzdHIoZXhjaW5mby52YWx1ZSkKKworYGBleGNpbmZvYGAgaXMgYSBg
YEV4Y2VwdGlvbkluZm9gYCBpbnN0YW5jZSwgd2hpY2ggaXMgYSB3cmFwcGVyIGFyb3VuZAordGhl
IGFjdHVhbCBleGNlcHRpb24gcmFpc2VkLiAgVGhlIG1haW4gYXR0cmlidXRlcyBvZiBpbnRlcmVz
dCBhcmUKK2BgLnR5cGVgYCwgYGAudmFsdWVgYCBhbmQgYGAudHJhY2ViYWNrYGAuCisKKy4uIHZl
cnNpb25jaGFuZ2VkOjogMy4wCisKK0luIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5b3UgbWF5
IHVzZSB0aGUga2V5d29yZCBhcmd1bWVudAorYGBtZXNzYWdlYGAgdG8gc3BlY2lmeSBhIGN1c3Rv
bSBmYWlsdXJlIG1lc3NhZ2U6OgorCisgICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25F
cnJvciwgbWVzc2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lvbkVycm9yIik6CisgICAgIC4uLiAg
ICBwYXNzCisgICAgIC4uLiBGYWlsZWQ6IEV4cGVjdGluZyBaZXJvRGl2aXNpb25FcnJvcgorCitJ
ZiB5b3Ugd2FudCB0byB3cml0ZSB0ZXN0IGNvZGUgdGhhdCB3b3JrcyBvbiBQeXRob24gMi40IGFz
IHdlbGwsCit5b3UgbWF5IGFsc28gdXNlIHR3byBvdGhlciB3YXlzIHRvIHRlc3QgZm9yIGFuIGV4
cGVjdGVkIGV4Y2VwdGlvbjo6CisKKyAgICBweXRlc3QucmFpc2VzKEV4cGVjdGVkRXhjZXB0aW9u
LCBmdW5jLCAqYXJncywgKiprd2FyZ3MpCisgICAgcHl0ZXN0LnJhaXNlcyhFeHBlY3RlZEV4Y2Vw
dGlvbiwgImZ1bmMoKmFyZ3MsICoqa3dhcmdzKSIpCisKK2JvdGggb2Ygd2hpY2ggZXhlY3V0ZSB0
aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHdpdGggYXJncyBhbmQga3dhcmdzIGFuZAorYXNzZXJ0cyB0
aGF0IHRoZSBnaXZlbiBgYEV4cGVjdGVkRXhjZXB0aW9uYGAgaXMgcmFpc2VkLiAgVGhlIHJlcG9y
dGVyIHdpbGwKK3Byb3ZpZGUgeW91IHdpdGggaGVscGZ1bCBvdXRwdXQgaW4gY2FzZSBvZiBmYWls
dXJlcyBzdWNoIGFzICpubworZXhjZXB0aW9uKiBvciAqd3JvbmcgZXhjZXB0aW9uKi4KKworTm90
ZSB0aGF0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSBhICJyYWlzZXMiIGFyZ3VtZW50
IHRvCitgYHB5dGVzdC5tYXJrLnhmYWlsYGAsIHdoaWNoIGNoZWNrcyB0aGF0IHRoZSB0ZXN0IGlz
IGZhaWxpbmcgaW4gYSBtb3JlCitzcGVjaWZpYyB3YXkgdGhhbiBqdXN0IGhhdmluZyBhbnkgZXhj
ZXB0aW9uIHJhaXNlZDo6CisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmFpc2VzPUluZGV4RXJy
b3IpCisgICAgZGVmIHRlc3RfZigpOgorICAgICAgICBmKCkKKworVXNpbmcgYGBweXRlc3QucmFp
c2VzYGAgaXMgbGlrZWx5IHRvIGJlIGJldHRlciBmb3IgY2FzZXMgd2hlcmUgeW91IGFyZSB0ZXN0
aW5nCitleGNlcHRpb25zIHlvdXIgb3duIGNvZGUgaXMgZGVsaWJlcmF0ZWx5IHJhaXNpbmcsIHdo
ZXJlYXMgdXNpbmcKK2BgQHB5dGVzdC5tYXJrLnhmYWlsYGAgd2l0aCBhIGNoZWNrIGZ1bmN0aW9u
IGlzIHByb2JhYmx5IGJldHRlciBmb3Igc29tZXRoaW5nCitsaWtlIGRvY3VtZW50aW5nIHVuZml4
ZWQgYnVncyAod2hlcmUgdGhlIHRlc3QgZGVzY3JpYmVzIHdoYXQgInNob3VsZCIgaGFwcGVuKQor
b3IgYnVncyBpbiBkZXBlbmRlbmNpZXMuCisKK0Fsc28sIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9y
bSBhY2NlcHRzIGEgYGBtYXRjaGBgIGtleXdvcmQgcGFyYW1ldGVyIHRvIHRlc3QKK3RoYXQgYSBy
ZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyBvbiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
IGFuIGV4Y2VwdGlvbgorKGxpa2UgdGhlIGBgVGVzdENhc2UuYXNzZXJ0UmFpc2VzUmVnZXhwYGAg
bWV0aG9kIGZyb20gYGB1bml0dGVzdGBgKTo6CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBk
ZWYgbXlmdW5jKCk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4Y2VwdGlvbiAxMjMgcmFp
c2VkIikKKworICAgIGRlZiB0ZXN0X21hdGNoKCk6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhWYWx1ZUVycm9yLCBtYXRjaD1yJy4qIDEyMyAuKicpOgorICAgICAgICAgICAgbXlmdW5jKCkK
KworVGhlIHJlZ2V4cCBwYXJhbWV0ZXIgb2YgdGhlIGBgbWF0Y2hgYCBtZXRob2QgaXMgbWF0Y2hl
ZCB3aXRoIHRoZSBgYHJlLnNlYXJjaGBgCitmdW5jdGlvbi4gU28gaW4gdGhlIGFib3ZlIGV4YW1w
bGUgYGBtYXRjaD0nMTIzJ2BgIHdvdWxkIGhhdmUgd29ya2VkIGFzCit3ZWxsLgorCisKKy4uIF9g
YXNzZXJ0d2FybnNgOgorCitBc3NlcnRpb25zIGFib3V0IGV4cGVjdGVkIHdhcm5pbmdzCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6
OiAyLjgKKworWW91IGNhbiBjaGVjayB0aGF0IGNvZGUgcmFpc2VzIGEgcGFydGljdWxhciB3YXJu
aW5nIHVzaW5nCis6cmVmOmBweXRlc3Qud2FybnMgPHdhcm5zPmAuCisKKworLi4gX25ld3JlcG9y
dDoKKworTWFraW5nIHVzZSBvZiBjb250ZXh0LXNlbnNpdGl2ZSBjb21wYXJpc29ucworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9u
YWRkZWQ6OiAyLjAKKworYGBweXRlc3RgYCBoYXMgcmljaCBzdXBwb3J0IGZvciBwcm92aWRpbmcg
Y29udGV4dC1zZW5zaXRpdmUgaW5mb3JtYXRpb24KK3doZW4gaXQgZW5jb3VudGVycyBjb21wYXJp
c29ucy4gIEZvciBleGFtcGxlOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X2Fzc2VydDIucHkK
KworICAgIGRlZiB0ZXN0X3NldF9jb21wYXJpc29uKCk6CisgICAgICAgIHNldDEgPSBzZXQoIjEz
MDgiKQorICAgICAgICBzZXQyID0gc2V0KCI4MDM1IikKKyAgICAgICAgYXNzZXJ0IHNldDEgPT0g
c2V0MgorCitpZiB5b3UgcnVuIHRoaXMgbW9kdWxlOjoKKworICAgICQgcHl0ZXN0IHRlc3RfYXNz
ZXJ0Mi5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3Rh
cnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQ
eXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRlbQor
ICAgIAorICAgIHRlc3RfYXNzZXJ0Mi5weSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9zZXRfY29tcGFyaXNvbiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgICAgIGRlZiB0ZXN0X3NldF9j
b21wYXJpc29uKCk6CisgICAgICAgICAgICBzZXQxID0gc2V0KCIxMzA4IikKKyAgICAgICAgICAg
IHNldDIgPSBzZXQoIjgwMzUiKQorICAgID4gICAgICAgYXNzZXJ0IHNldDEgPT0gc2V0MgorICAg
IEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCB7JzAnLCAnMScsICczJywgJzgnfSA9PSB7
JzAnLCAnMycsICc1JywgJzgnfQorICAgIEUgICAgICAgICBFeHRyYSBpdGVtcyBpbiB0aGUgbGVm
dCBzZXQ6CisgICAgRSAgICAgICAgICcxJworICAgIEUgICAgICAgICBFeHRyYSBpdGVtcyBpbiB0
aGUgcmlnaHQgc2V0OgorICAgIEUgICAgICAgICAnNScKKyAgICBFICAgICAgICAgVXNlIC12IHRv
IGdldCB0aGUgZnVsbCBkaWZmCisgICAgCisgICAgdGVzdF9hc3NlcnQyLnB5OjU6IEFzc2VydGlv
bkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitTcGVjaWFsIGNvbXBhcmlzb25zIGFy
ZSBkb25lIGZvciBhIG51bWJlciBvZiBjYXNlczoKKworKiBjb21wYXJpbmcgbG9uZyBzdHJpbmdz
OiBhIGNvbnRleHQgZGlmZiBpcyBzaG93bgorKiBjb21wYXJpbmcgbG9uZyBzZXF1ZW5jZXM6IGZp
cnN0IGZhaWxpbmcgaW5kaWNlcworKiBjb21wYXJpbmcgZGljdHM6IGRpZmZlcmVudCBlbnRyaWVz
CisKK1NlZSB0aGUgOnJlZjpgcmVwb3J0aW5nIGRlbW8gPHRicmVwb3J0ZGVtbz5gIGZvciBtYW55
IG1vcmUgZXhhbXBsZXMuCisKK0RlZmluaW5nIHlvdXIgb3duIGFzc2VydGlvbiBjb21wYXJpc29u
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0l0IGlz
IHBvc3NpYmxlIHRvIGFkZCB5b3VyIG93biBkZXRhaWxlZCBleHBsYW5hdGlvbnMgYnkgaW1wbGVt
ZW50aW5nCit0aGUgYGBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlYGAgaG9vay4KKworLi4gYXV0
b2Z1bmN0aW9uOjogX3B5dGVzdC5ob29rc3BlYy5weXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlCisg
ICA6bm9pbmRleDoKKworQXMgYW4gZXhhbXBsZSBjb25zaWRlciBhZGRpbmcgdGhlIGZvbGxvd2lu
ZyBob29rIGluIGEgOnJlZjpgY29uZnRlc3QucHkgPGNvbmZ0ZXN0LnB5PmAgCitmaWxlIHdoaWNo
IHByb3ZpZGVzIGFuIGFsdGVybmF0aXZlIGV4cGxhbmF0aW9uIGZvciBgYEZvb2BgIG9iamVjdHM6
OgorCisgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgIGZyb20gdGVzdF9mb29jb21wYXJl
IGltcG9ydCBGb28KKyAgIGRlZiBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlKG9wLCBsZWZ0LCBy
aWdodCk6CisgICAgICAgaWYgaXNpbnN0YW5jZShsZWZ0LCBGb28pIGFuZCBpc2luc3RhbmNlKHJp
Z2h0LCBGb28pIGFuZCBvcCA9PSAiPT0iOgorICAgICAgICAgICByZXR1cm4gWydDb21wYXJpbmcg
Rm9vIGluc3RhbmNlczonLAorICAgICAgICAgICAgICAgICAgICcgICB2YWxzOiAlcyAhPSAlcycg
JSAobGVmdC52YWwsIHJpZ2h0LnZhbCldCisKK25vdywgZ2l2ZW4gdGhpcyB0ZXN0IG1vZHVsZTo6
CisKKyAgICMgY29udGVudCBvZiB0ZXN0X2Zvb2NvbXBhcmUucHkKKyAgIGNsYXNzIEZvbyhvYmpl
Y3QpOgorICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgorICAgICAgICAgICBzZWxmLnZh
bCA9IHZhbAorCisgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgIHJl
dHVybiBzZWxmLnZhbCA9PSBvdGhlci52YWwKKworICAgZGVmIHRlc3RfY29tcGFyZSgpOgorICAg
ICAgIGYxID0gRm9vKDEpCisgICAgICAgZjIgPSBGb28oMikKKyAgICAgICBhc3NlcnQgZjEgPT0g
ZjIKKworeW91IGNhbiBydW4gdGhlIHRlc3QgbW9kdWxlIGFuZCBnZXQgdGhlIGN1c3RvbSBvdXRw
dXQgZGVmaW5lZCBpbgordGhlIGNvbmZ0ZXN0IGZpbGU6OgorCisgICAkIHB5dGVzdCAtcSB0ZXN0
X2Zvb2NvbXBhcmUucHkKKyAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2NvbXBhcmUgX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgCisgICAgICAgZGVmIHRlc3RfY29tcGFy
ZSgpOgorICAgICAgICAgICBmMSA9IEZvbygxKQorICAgICAgICAgICBmMiA9IEZvbygyKQorICAg
PiAgICAgICBhc3NlcnQgZjEgPT0gZjIKKyAgIEUgICAgICAgYXNzZXJ0IENvbXBhcmluZyBGb28g
aW5zdGFuY2VzOgorICAgRSAgICAgICAgICAgIHZhbHM6IDEgIT0gMgorICAgCisgICB0ZXN0X2Zv
b2NvbXBhcmUucHk6MTE6IEFzc2VydGlvbkVycm9yCisgICAxIGZhaWxlZCBpbiAwLjEyIHNlY29u
ZHMKKworLi4gX2Fzc2VydC1kZXRhaWxzOgorLi4gX2Bhc3NlcnQgaW50cm9zcGVjdGlvbmA6CisK
K0FkdmFuY2VkIGFzc2VydGlvbiBpbnRyb3NwZWN0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDIuMQorCisKK1JlcG9ydGluZyBkZXRh
aWxzIGFib3V0IGEgZmFpbGluZyBhc3NlcnRpb24gaXMgYWNoaWV2ZWQgYnkgcmV3cml0aW5nIGFz
c2VydAorc3RhdGVtZW50cyBiZWZvcmUgdGhleSBhcmUgcnVuLiAgUmV3cml0dGVuIGFzc2VydCBz
dGF0ZW1lbnRzIHB1dCBpbnRyb3NwZWN0aW9uCitpbmZvcm1hdGlvbiBpbnRvIHRoZSBhc3NlcnRp
b24gZmFpbHVyZSBtZXNzYWdlLiAgYGBweXRlc3RgYCBvbmx5IHJld3JpdGVzIHRlc3QKK21vZHVs
ZXMgZGlyZWN0bHkgZGlzY292ZXJlZCBieSBpdHMgdGVzdCBjb2xsZWN0aW9uIHByb2Nlc3MsIHNv
IGFzc2VydHMgaW4KK3N1cHBvcnRpbmcgbW9kdWxlcyB3aGljaCBhcmUgbm90IHRoZW1zZWx2ZXMg
dGVzdCBtb2R1bGVzIHdpbGwgbm90IGJlIHJld3JpdHRlbi4KKworLi4gbm90ZTo6CisKKyAgIGBg
cHl0ZXN0YGAgcmV3cml0ZXMgdGVzdCBtb2R1bGVzIG9uIGltcG9ydCBieSB1c2luZyBhbiBpbXBv
cnQKKyAgIGhvb2sgdG8gd3JpdGUgbmV3IGBgcHljYGAgZmlsZXMuIE1vc3Qgb2YgdGhlIHRpbWUg
dGhpcyB3b3JrcyB0cmFuc3BhcmVudGx5LgorICAgSG93ZXZlciwgaWYgeW91IGFyZSBtZXNzaW5n
IHdpdGggaW1wb3J0IHlvdXJzZWxmLCB0aGUgaW1wb3J0IGhvb2sgbWF5CisgICBpbnRlcmZlcmUu
CisKKyAgIElmIHRoaXMgaXMgdGhlIGNhc2UgeW91IGhhdmUgdHdvIG9wdGlvbnM6CisKKyAgICog
RGlzYWJsZSByZXdyaXRpbmcgZm9yIGEgc3BlY2lmaWMgbW9kdWxlIGJ5IGFkZGluZyB0aGUgc3Ry
aW5nCisgICAgIGBgUFlURVNUX0RPTlRfUkVXUklURWBgIHRvIGl0cyBkb2NzdHJpbmcuCisKKyAg
ICogRGlzYWJsZSByZXdyaXRpbmcgZm9yIGFsbCBtb2R1bGVzIGJ5IHVzaW5nIGBgLS1hc3NlcnQ9
cGxhaW5gYC4KKworICAgQWRkaXRpb25hbGx5LCByZXdyaXRpbmcgd2lsbCBmYWlsIHNpbGVudGx5
IGlmIGl0IGNhbm5vdCB3cml0ZSBuZXcgYGAucHljYGAgZmlsZXMsCisgICBpLmUuIGluIGEgcmVh
ZC1vbmx5IGZpbGVzeXN0ZW0gb3IgYSB6aXBmaWxlLgorCisKK0ZvciBmdXJ0aGVyIGluZm9ybWF0
aW9uLCBCZW5qYW1pbiBQZXRlcnNvbiB3cm90ZSB1cCBgQmVoaW5kIHRoZSBzY2VuZXMgb2YgcHl0
ZXN0J3MgbmV3IGFzc2VydGlvbiByZXdyaXRpbmcgPGh0dHA6Ly9weWJpdGVzLmJsb2dzcG90LmNv
bS8yMDExLzA3L2JlaGluZC1zY2VuZXMtb2YtcHl0ZXN0cy1uZXctYXNzZXJ0aW9uLmh0bWw+YF8u
CisKKy4uIHZlcnNpb25hZGRlZDo6IDIuMQorICAgQWRkIGFzc2VydCByZXdyaXRpbmcgYXMgYW4g
YWx0ZXJuYXRlIGludHJvc3BlY3Rpb24gdGVjaG5pcXVlLgorCisuLiB2ZXJzaW9uY2hhbmdlZDo6
IDIuMQorICAgSW50cm9kdWNlIHRoZSBgYC0tYXNzZXJ0YGAgb3B0aW9uLiBEZXByZWNhdGUgYGAt
LW5vLWFzc2VydGBgIGFuZAorICAgYGAtLW5vbWFnaWNgYC4KKworLi4gdmVyc2lvbmNoYW5nZWQ6
OiAzLjAKKyAgIFJlbW92ZXMgdGhlIGBgLS1uby1hc3NlcnRgYCBhbmQgYGAtLW5vbWFnaWNgYCBv
cHRpb25zLgorICAgUmVtb3ZlcyB0aGUgYGAtLWFzc2VydD1yZWludGVycGBgIG9wdGlvbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFja3dhcmRzLWNvbXBhdGliaWxpdHkucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg0ZjJjNDNlZGFhMWIwOTQ0MDQzNTUwMTVlYWI3ZTUwMGM5YWI5ZWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFja3dhcmRzLWNvbXBhdGliaWxpdHkucnN0CkBA
IC0wLDAgKzEsMTA1IEBACisuLiBfYmFja3dhcmRzLWNvbXBhdGliaWxpdHk6CisKK0JhY2t3YXJk
cyBDb21wYXRpYmlsaXR5IFBvbGljeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0tlZXBpbmcgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaGFzIGEgdmVyeSBoaWdoIHByaW9yaXR5
IGluIHRoZSBweXRlc3QgcHJvamVjdC4gQWx0aG91Z2ggd2UgaGF2ZSBkZXByZWNhdGVkIGZ1bmN0
aW9uYWxpdHkgb3ZlciB0aGUgeWVhcnMsIG1vc3Qgb2YgaXQgaXMgc3RpbGwgc3VwcG9ydGVkLiBB
bGwgZGVwcmVjYXRpb25zIGluIHB5dGVzdCB3ZXJlIGRvbmUgYmVjYXVzZSBzaW1wbGVyIG9yIG1v
cmUgZWZmaWNpZW50IHdheXMgb2YgYWNjb21wbGlzaGluZyB0aGUgc2FtZSB0YXNrcyBoYXZlIGVt
ZXJnZWQsIG1ha2luZyB0aGUgb2xkIHdheSBvZiBkb2luZyB0aGluZ3MgdW5uZWNlc3NhcnkuCisK
K1dpdGggdGhlIHB5dGVzdCAzLjAgcmVsZWFzZSB3ZSBpbnRyb2R1Y2VkIGEgY2xlYXIgY29tbXVu
aWNhdGlvbiBzY2hlbWUgZm9yIHdoZW4gd2Ugd2lsbCBhY3R1YWxseSByZW1vdmUgdGhlIG9sZCBi
dXN0ZWQgam9pbnQgYW5kIHBvbGl0ZWx5IGFzayB5b3UgdG8gdXNlIHRoZSBuZXcgaG90bmVzcyBp
bnN0ZWFkLCB3aGlsZSBnaXZpbmcgeW91IGVub3VnaCB0aW1lIHRvIGFkanVzdCB5b3VyIHRlc3Rz
IG9yIHJhaXNlIGNvbmNlcm5zIGlmIHRoZXJlIGFyZSB2YWxpZCByZWFzb25zIHRvIGtlZXAgZGVw
cmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFyb3VuZC4KKworVG8gY29tbXVuaWNhdGUgY2hhbmdlcyB3
ZSBhcmUgYWxyZWFkeSBpc3N1aW5nIGRlcHJlY2F0aW9uIHdhcm5pbmdzLCBidXQgdGhleSBhcmUg
bm90IGRpc3BsYXllZCBieSBkZWZhdWx0LiBJbiBweXRlc3QgMy4wIHdlIGNoYW5nZWQgdGhlIGRl
ZmF1bHQgc2V0dGluZyBzbyB0aGF0IHB5dGVzdCBkZXByZWNhdGlvbiB3YXJuaW5ncyBhcmUgZGlz
cGxheWVkIGlmIG5vdCBleHBsaWNpdGx5IHNpbGVuY2VkICh3aXRoIGBgLS1kaXNhYmxlLXB5dGVz
dC13YXJuaW5nc2BgKS4KKworV2Ugd2lsbCBvbmx5IHJlbW92ZSBkZXByZWNhdGVkIGZ1bmN0aW9u
YWxpdHkgaW4gbWFqb3IgcmVsZWFzZXMgKGUuZy4gaWYgd2UgZGVwcmVjYXRlIHNvbWV0aGluZyBp
biAzLjAgd2Ugd2lsbCByZW1vdmUgaXQgaW4gNC4wKSwgYW5kIGtlZXAgaXQgYXJvdW5kIGZvciBh
dCBsZWFzdCB0d28gbWlub3IgcmVsZWFzZXMgKGUuZy4gaWYgd2UgZGVwcmVjYXRlIHNvbWV0aGlu
ZyBpbiAzLjkgYW5kIDQuMCBpcyB0aGUgbmV4dCByZWxlYXNlLCB3ZSB3aWxsIG5vdCByZW1vdmUg
aXQgaW4gNC4wIGJ1dCBpbiA1LjApLgorCisKK0RlcHJlY2F0aW9uIFJvYWRtYXAKKy0tLS0tLS0t
LS0tLS0tLS0tLS0KKworVGhpcyBwYWdlIGxpc3RzIGRlcHJlY2F0ZWQgZmVhdHVyZXMgYW5kIHdo
ZW4gd2UgcGxhbiB0byByZW1vdmUgdGhlbS4gSXQgaXMgaW1wb3J0YW50IHRvIGxpc3QgdGhlIGZl
YXR1cmUsIHRoZSB2ZXJzaW9uIHdoZXJlIGl0IGdvdCBkZXByZWNhdGVkIGFuZCB0aGUgdmVyc2lv
biB3ZSBwbGFuIHRvIHJlbW92ZSBpdC4KKworRm9sbG93aW5nIG91ciBkZXByZWNhdGlvbiBwb2xp
Y3ksIHdlIHNob3VsZCBhaW0gdG8ga2VlcCBmZWF0dXJlcyBmb3IgKmF0IGxlYXN0KiB0d28gbWlu
b3IgdmVyc2lvbnMgYWZ0ZXIgaXQgd2FzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZC4KKworCitGdXR1
cmUgUmVsZWFzZXMKK35+fn5+fn5+fn5+fn5+fgorCiszLjQKK15eXgorCisqKk9sZCBzdHlsZSBj
bGFzc2VzKioKKworSXNzdWU6IGAjMjE0NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yMTQ3PmBfLgorCitEZXByZWNhdGVkIGluIGBgMy4yYGAuCisKKzQuMAor
Xl5eCisKKyoqWWllbGQgdGVzdHMqKgorCitEZXByZWNhdGVkIGluIGBgMy4wYGAuCisKKyoqcHl0
ZXN0LW5hbWVzcGFjZSBob29rKioKKworZGVwcmVjYXRlZCBpbiBgYDMuMmBgLgorCisqKk1hcmtz
IGluIHBhcmFtZXRlciBzZXRzKioKKworRGVwcmVjYXRlZCBpbiBgYDMuMmBgLgorCisqKi0tcmVz
dWx0LWxvZyoqCisKK0RlcHJlY2F0ZWQgaW4gYGAzLjBgYC4KKworU2VlIGAjODMwIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzgzMD5gXyBmb3IgbW9yZSBpbmZv
cm1hdGlvbi4gU3VnZ2VzdGVkIGFsdGVybmF0aXZlOiBgcHl0ZXN0LXRhcCA8aHR0cHM6Ly9weXBp
LnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtdGFwPmBfLgorCisqKm1ldGFmdW5jLmFkZGNhbGwqKgor
CitJc3N1ZTogYCMyODc2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI4NzY+YF8uCisKK0RlcHJlY2F0ZWQgaW4gYGAzLjNgYC4KKworKipweXRlc3RfcGx1Z2lu
cyBpbiBub24tdG9wbGV2ZWwgY29uZnRlc3RzKioKKworVGhlcmUgaXMgYSBkZWVwIGNvbmNlcHR1
YWwgY29uZnVzaW9uIGFzIGBgY29uZnRlc3QucHlgYCBmaWxlcyB0aGVtc2VsdmVzIGFyZSBhY3Rp
dmF0ZWQvZGVhY3RpdmF0ZWQgYmFzZWQgb24gcGF0aCwgYnV0IHRoZSBwbHVnaW5zIHRoZXkgZGVw
ZW5kIG9uIGFyZW4ndC4KKworSXNzdWU6IGAjMjYzOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjM5PmBfLgorCitOb3QgeWV0IG9mZmljaWFsbHkgZGVwcmVj
YXRlZC4KKworKipwYXNzaW5nIGEgc2luZ2xlIHN0cmluZyB0byBweXRlc3QubWFpbigpKioKKwor
UGFzcyBhIGxpc3Qgb2Ygc3RyaW5ncyB0byBgYHB5dGVzdC5tYWluKClgYCBpbnN0ZWFkLgorCitE
ZXByZWNhdGVkIGluIGBgMy4xYGAuCisKKyoqW3B5dGVzdF0gc2VjdGlvbiBpbiBzZXR1cC5jZmcq
KgorCitVc2UgYGBbdG9vbDpweXRlc3RdYGAgaW5zdGVhZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRo
IG90aGVyIHRvb2xzLgorCitEZXByZWNhdGVkIGluIGBgMy4wYGAuCisKK1Bhc3QgUmVsZWFzZXMK
K35+fn5+fn5+fn5+fn4KKworMy4wCiteXl4KKworKiBUaGUgZm9sbG93aW5nIGRlcHJlY2F0ZWQg
Y29tbWFuZGxpbmUgb3B0aW9ucyB3ZXJlIHJlbW92ZWQ6CisKKyAgKiBgYC0tZ2Vuc2NyaXB0YGA6
IG5vIGxvbmdlciBzdXBwb3J0ZWQ7CisgICogYGAtLW5vLWFzc2VydGBgOiB1c2UgYGAtLWFzc2Vy
dD1wbGFpbmBgIGluc3RlYWQ7CisgICogYGAtLW5vbWFnaWNgYDogdXNlIGBgLS1hc3NlcnQ9cGxh
aW5gYCBpbnN0ZWFkOworICAqIGBgLS1yZXBvcnRgYDogdXNlIGBgLXJgYCBpbnN0ZWFkOworCisq
IFJlbW92ZWQgYWxsIGBgcHkudGVzdC1YKmBgIGVudHJ5IHBvaW50cy4gVGhlIHZlcnNpb25lZCwg
c3VmZml4ZWQgZW50cnkgcG9pbnRzCisgIHdlcmUgbmV2ZXIgZG9jdW1lbnRlZCBhbmQgYSBsZWZ0
b3ZlciBmcm9tIGEgcHJlLXZpcnR1YWxlbnYgZXJhLiBUaGVzZSBlbnRyeQorICBwb2ludHMgYWxz
byBjcmVhdGVkIGJyb2tlbiBlbnRyeSBwb2ludHMgaW4gd2hlZWxzLCBzbyByZW1vdmluZyB0aGVt
IGFsc28KKyAgcmVtb3ZlcyBhIHNvdXJjZSBvZiBjb25mdXNpb24gZm9yIHVzZXJzLgorCisKKwor
My4zCiteXl4KKworKiBEcm9wcGVkIHN1cHBvcnQgZm9yIEVPTCBQeXRob24gMi42IGFuZCAzLjMu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Jhc2gtY29tcGxldGlvbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFzaC1jb21wbGV0
aW9uLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MWZlNjIxODNmYjA5M2U1Y2Y4YWFmZWExMTZjZmVlOGFlNWQx
ZTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Jhc2gtY29tcGxldGlv
bi5yc3QKQEAgLTAsMCArMSwyOCBAQAorCisuLiBfYmFzaF9jb21wbGV0aW9uOgorCitTZXR0aW5n
IHVwIGJhc2ggY29tcGxldGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2hlbiB1
c2luZyBiYXNoIGFzIHlvdXIgc2hlbGwsIGBgcHl0ZXN0YGAgY2FuIHVzZSBhcmdjb21wbGV0ZQor
KGh0dHBzOi8vYXJnY29tcGxldGUucmVhZHRoZWRvY3MuaW8vKSBmb3IgYXV0by1jb21wbGV0aW9u
LgorRm9yIHRoaXMgYGBhcmdjb21wbGV0ZWBgIG5lZWRzIHRvIGJlIGluc3RhbGxlZCAqKmFuZCoq
IGVuYWJsZWQuCisKK0luc3RhbGwgYXJnY29tcGxldGUgdXNpbmc6OgorCisgICAgICAgIHN1ZG8g
cGlwIGluc3RhbGwgJ2FyZ2NvbXBsZXRlPj0wLjUuNycKKworRm9yIGdsb2JhbCBhY3RpdmF0aW9u
IG9mIGFsbCBhcmdjb21wbGV0ZSBlbmFibGVkIHB5dGhvbiBhcHBsaWNhdGlvbnMgcnVuOjoKKwor
CXN1ZG8gYWN0aXZhdGUtZ2xvYmFsLXB5dGhvbi1hcmdjb21wbGV0ZQorCitGb3IgcGVybWFuZW50
IChidXQgbm90IGdsb2JhbCkgYGBweXRlc3RgYCBhY3RpdmF0aW9uLCB1c2U6OgorCisgICAgICAg
IHJlZ2lzdGVyLXB5dGhvbi1hcmdjb21wbGV0ZSBweXRlc3QgPj4gfi8uYmFzaHJjCisKK0ZvciBv
bmUtdGltZSBhY3RpdmF0aW9uIG9mIGFyZ2NvbXBsZXRlIGZvciBgYHB5dGVzdGBgIG9ubHksIHVz
ZTo6CisKKyAgICAgICAgZXZhbCAiJChyZWdpc3Rlci1weXRob24tYXJnY29tcGxldGUgcHl0ZXN0
KSIKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTFlYjU2MDZlMDllNTFk
Mzk4ODkzMjI4NDRmZWUzNWE2NmNmNTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2J1aWx0aW4ucnN0CkBAIC0wLDAgKzEsMTYxIEBACisKKy4uIF9gcHl0ZXN0IGhlbHBl
cnNgOgorCitQeXRlc3QgQVBJIGFuZCBidWlsdGluIGZpeHR1cmVzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBpcyBhIGxpc3Qgb2YgYGBw
eXRlc3QuKmBgIEFQSSBmdW5jdGlvbnMgYW5kIGZpeHR1cmVzLgorCitGb3IgaW5mb3JtYXRpb24g
b24gcGx1Z2luIGhvb2tzIGFuZCBvYmplY3RzLCBzZWUgOnJlZjpgcGx1Z2luc2AuCisKK0ZvciBp
bmZvcm1hdGlvbiBvbiB0aGUgYGBweXRlc3QubWFya2BgIG1lY2hhbmlzbSwgc2VlIDpyZWY6YG1h
cmtgLgorCitGb3IgdGhlIGJlbG93IG9iamVjdHMsIHlvdSBjYW4gYWxzbyBpbnRlcmFjdGl2ZWx5
IGFzayBmb3IgaGVscCwgZS5nLiBieQordHlwaW5nIG9uIHRoZSBQeXRob24gaW50ZXJhY3RpdmUg
cHJvbXB0IHNvbWV0aGluZyBsaWtlOjoKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBoZWxwKHB5
dGVzdCkKKworLi4gY3VycmVudG1vZHVsZTo6IHB5dGVzdAorCitJbnZva2luZyBweXRlc3QgaW50
ZXJhY3RpdmVseQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IG1haW4KKworTW9yZSBleGFtcGxlcyBhdCA6cmVm
OmBweXRlc3QubWFpbi11c2FnZWAKKworCitIZWxwZXJzIGZvciBhc3NlcnRpb25zIGFib3V0IEV4
Y2VwdGlvbnMvV2FybmluZ3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IHJhaXNlcworCitFeGFtcGxl
cyBhdCA6cmVmOmBhc3NlcnRyYWlzZXNgLgorCisuLiBhdXRvZnVuY3Rpb246OiBkZXByZWNhdGVk
X2NhbGwKKworQ29tcGFyaW5nIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IGFwcHJveAorCitSYWlzaW5n
IGEgc3BlY2lmaWMgdGVzdCBvdXRjb21lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbiB5b3VyIHRl
c3QsIGZpeHR1cmUgb3Igc2V0dXAKK2Z1bmN0aW9ucyB0byBmb3JjZSBhIGNlcnRhaW4gdGVzdCBv
dXRjb21lLiAgTm90ZSB0aGF0IG1vc3Qgb2Z0ZW4KK3lvdSBjYW4gcmF0aGVyIHVzZSBkZWNsYXJh
dGl2ZSBtYXJrcywgc2VlIDpyZWY6YHNraXBwaW5nYC4KKworLi4gYXV0b2Z1bmN0aW9uOjogX3B5
dGVzdC5vdXRjb21lcy5mYWlsCisuLiBhdXRvZnVuY3Rpb246OiBfcHl0ZXN0Lm91dGNvbWVzLnNr
aXAKKy4uIGF1dG9mdW5jdGlvbjo6IF9weXRlc3Qub3V0Y29tZXMuaW1wb3J0b3Jza2lwCisuLiBh
dXRvZnVuY3Rpb246OiBfcHl0ZXN0Lm91dGNvbWVzLnhmYWlsCisuLiBhdXRvZnVuY3Rpb246OiBf
cHl0ZXN0Lm91dGNvbWVzLmV4aXQKKworRml4dHVyZXMgYW5kIHJlcXVlc3RzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBtYXJrIGEg
Zml4dHVyZSBmdW5jdGlvbjoKKworLi4gYXV0b2Z1bmN0aW9uOjogX3B5dGVzdC5maXh0dXJlcy5m
aXh0dXJlCisKK1R1dG9yaWFsIGF0IDpyZWY6YGZpeHR1cmVzYC4KKworVGhlIGBgcmVxdWVzdGBg
IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGZyb20gZml4dHVyZSBmdW5jdGlvbnMuCisKKy4uIGF1
dG9jbGFzczo6IF9weXRlc3QuZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoKQorICAgIDptZW1iZXJz
OgorCisKKy4uIF9idWlsdGluZml4dHVyZXM6CisuLiBfYnVpbHRpbmZ1bmNhcmdzOgorCitCdWls
dGluIGZpeHR1cmVzL2Z1bmN0aW9uIGFyZ3VtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBhc2sgZm9yIGF2YWlsYWJsZSBidWlsdGluIG9y
IHByb2plY3QtY3VzdG9tCis6cmVmOmBmaXh0dXJlcyA8Zml4dHVyZXM+YCBieSB0eXBpbmc6Ogor
CisgICAgJCBweXRlc3QgLXEgLS1maXh0dXJlcworICAgIGNhY2hlCisgICAgICAgIFJldHVybiBh
IGNhY2hlIG9iamVjdCB0aGF0IGNhbiBwZXJzaXN0IHN0YXRlIGJldHdlZW4gdGVzdGluZyBzZXNz
aW9ucy4KKyAgICAgICAgCisgICAgICAgIGNhY2hlLmdldChrZXksIGRlZmF1bHQpCisgICAgICAg
IGNhY2hlLnNldChrZXksIHZhbHVlKQorICAgICAgICAKKyAgICAgICAgS2V5cyBtdXN0IGJlIGEg
YGAvYGAgc2VwYXJhdGVkIHZhbHVlLCB3aGVyZSB0aGUgZmlyc3QgcGFydCBpcyB1c3VhbGx5IHRo
ZQorICAgICAgICBuYW1lIG9mIHlvdXIgcGx1Z2luIG9yIGFwcGxpY2F0aW9uIHRvIGF2b2lkIGNs
YXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KKyAgICAgICAgCisgICAgICAgIFZhbHVlcyBj
YW4gYmUgYW55IG9iamVjdCBoYW5kbGVkIGJ5IHRoZSBqc29uIHN0ZGxpYiBtb2R1bGUuCisgICAg
Y2Fwc3lzCisgICAgICAgIEVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5zdGRvdXQv
c3lzLnN0ZGVyciBhbmQgbWFrZQorICAgICAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZp
YSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKKyAgICAgICAgd2hpY2ggcmV0
dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUg
YGB0ZXh0YGAKKyAgICAgICAgb2JqZWN0cy4KKyAgICBjYXBzeXNiaW5hcnkKKyAgICAgICAgRW5h
YmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gc3lzLnN0ZG91dC9zeXMuc3RkZXJyIGFuZCBtYWtl
CisgICAgICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRl
cnIoKWBgIG1ldGhvZCBjYWxscworICAgICAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilg
YCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYGJ5dGVzYGAKKyAgICAgICAg
b2JqZWN0cy4KKyAgICBjYXBmZAorICAgICAgICBFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlcyB0
byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKKyAgICAgICAgY2FwdHVyZWQgb3V0
cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKKyAg
ICAgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBg
YGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKKyAgICAgICAgb2JqZWN0cy4KKyAgICBjYXBmZGJpbmFy
eQorICAgICAgICBFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlIHRvIGZpbGUgZGVzY3JpcHRvcnMg
MSBhbmQgMiBhbmQgbWFrZQorICAgICAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBg
YGNhcGZkYmluYXJ5LnJlYWRvdXRlcnJgYCBtZXRob2QgY2FsbHMKKyAgICAgICAgd2hpY2ggcmV0
dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUK
KyAgICAgICAgYGBieXRlc2BgIG9iamVjdHMuCisgICAgZG9jdGVzdF9uYW1lc3BhY2UKKyAgICAg
ICAgSW5qZWN0IG5hbWVzIGludG8gdGhlIGRvY3Rlc3QgbmFtZXNwYWNlLgorICAgIHB5dGVzdGNv
bmZpZworICAgICAgICB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3Qgd2l0aCBhY2Nlc3MgdG8gY29t
bWFuZCBsaW5lIG9wdHMuCisgICAgcmVjb3JkX3htbF9wcm9wZXJ0eQorICAgICAgICBBZGQgZXh0
cmEgeG1sIHByb3BlcnRpZXMgdG8gdGhlIHRhZyBmb3IgdGhlIGNhbGxpbmcgdGVzdC4KKyAgICAg
ICAgVGhlIGZpeHR1cmUgaXMgY2FsbGFibGUgd2l0aCBgYChuYW1lLCB2YWx1ZSlgYCwgd2l0aCB2
YWx1ZSBiZWluZyBhdXRvbWF0aWNhbGx5CisgICAgICAgIHhtbC1lbmNvZGVkLgorICAgIGNhcGxv
ZworICAgICAgICBBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4KKyAgICAgICAgCisg
ICAgICAgIENhcHR1cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcg
bWV0aG9kczo6CisgICAgICAgIAorICAgICAgICAqIGNhcGxvZy50ZXh0KCkgICAgICAgICAgLT4g
c3RyaW5nIGNvbnRhaW5pbmcgZm9ybWF0dGVkIGxvZyBvdXRwdXQKKyAgICAgICAgKiBjYXBsb2cu
cmVjb3JkcygpICAgICAgIC0+IGxpc3Qgb2YgbG9nZ2luZy5Mb2dSZWNvcmQgaW5zdGFuY2VzCisg
ICAgICAgICogY2FwbG9nLnJlY29yZF90dXBsZXMoKSAtPiBsaXN0IG9mIChsb2dnZXJfbmFtZSwg
bGV2ZWwsIG1lc3NhZ2UpIHR1cGxlcworICAgIG1vbmtleXBhdGNoCisgICAgICAgIFRoZSByZXR1
cm5lZCBgYG1vbmtleXBhdGNoYGAgZml4dHVyZSBwcm92aWRlcyB0aGVzZQorICAgICAgICBoZWxw
ZXIgbWV0aG9kcyB0byBtb2RpZnkgb2JqZWN0cywgZGljdGlvbmFyaWVzIG9yIG9zLmVudmlyb246
OgorICAgICAgICAKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIob2JqLCBuYW1lLCB2
YWx1ZSwgcmFpc2luZz1UcnVlKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihvYmos
IG5hbWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0obWFw
cGluZywgbmFtZSwgdmFsdWUpCisgICAgICAgICAgICBtb25rZXlwYXRjaC5kZWxpdGVtKG9iaiwg
bmFtZSwgcmFpc2luZz1UcnVlKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KG5hbWUs
IHZhbHVlLCBwcmVwZW5kPUZhbHNlKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KG5h
bWUsIHZhbHVlLCByYWlzaW5nPVRydWUpCisgICAgICAgICAgICBtb25rZXlwYXRjaC5zeXNwYXRo
X3ByZXBlbmQocGF0aCkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCisgICAg
ICAgIAorICAgICAgICBBbGwgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHVuZG9uZSBhZnRlciB0aGUg
cmVxdWVzdGluZworICAgICAgICB0ZXN0IGZ1bmN0aW9uIG9yIGZpeHR1cmUgaGFzIGZpbmlzaGVk
LiBUaGUgYGByYWlzaW5nYGAKKyAgICAgICAgcGFyYW1ldGVyIGRldGVybWluZXMgaWYgYSBLZXlF
cnJvciBvciBBdHRyaWJ1dGVFcnJvcgorICAgICAgICB3aWxsIGJlIHJhaXNlZCBpZiB0aGUgc2V0
L2RlbGV0aW9uIG9wZXJhdGlvbiBoYXMgbm8gdGFyZ2V0LgorICAgIHJlY3dhcm4KKyAgICAgICAg
UmV0dXJuIGEgV2FybmluZ3NSZWNvcmRlciBpbnN0YW5jZSB0aGF0IHByb3ZpZGVzIHRoZXNlIG1l
dGhvZHM6CisgICAgICAgIAorICAgICAgICAqIGBgcG9wKGNhdGVnb3J5PU5vbmUpYGA6IHJldHVy
biBsYXN0IHdhcm5pbmcgbWF0Y2hpbmcgdGhlIGNhdGVnb3J5LgorICAgICAgICAqIGBgY2xlYXIo
KWBgOiBjbGVhciBsaXN0IG9mIHdhcm5pbmdzCisgICAgICAgIAorICAgICAgICBTZWUgaHR0cDov
L2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3dhcm5pbmdzLmh0bWwgZm9yIGluZm9ybWF0aW9uCisg
ICAgICAgIG9uIHdhcm5pbmcgY2F0ZWdvcmllcy4KKyAgICB0bXBkaXJfZmFjdG9yeQorICAgICAg
ICBSZXR1cm4gYSBUZW1wZGlyRmFjdG9yeSBpbnN0YW5jZSBmb3IgdGhlIHRlc3Qgc2Vzc2lvbi4K
KyAgICB0bXBkaXIKKyAgICAgICAgUmV0dXJuIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoIG9i
amVjdAorICAgICAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9j
YXRpb24sCisgICAgICAgIGNyZWF0ZWQgYXMgYSBzdWIgZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRl
bXBvcmFyeQorICAgICAgICBkaXJlY3RvcnkuICBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEgYHB5
LnBhdGgubG9jYWxgXworICAgICAgICBwYXRoIG9iamVjdC4KKyAgICAKKyAgICBubyB0ZXN0cyBy
YW4gaW4gMC4xMiBzZWNvbmRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FjaGUu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhY2hlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODg3MjFiMTFi
MDg5ZTEyYjg4MTI0MjY5YTJhYzE5MTAwM2ZjMjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2NhY2hlLnJzdApAQCAtMCwwICsxLDI2OCBAQAorLi4gX2BjYWNoZV9wcm92
aWRlcmA6CisuLiBfY2FjaGU6CisKKworQ2FjaGU6IHdvcmtpbmcgd2l0aCBjcm9zcy10ZXN0cnVu
IHN0YXRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gdmVy
c2lvbmFkZGVkOjogMi44CisKK1VzYWdlCistLS0tLS0tLS0KKworVGhlIHBsdWdpbiBwcm92aWRl
cyB0d28gY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gcmVydW4gZmFpbHVyZXMgZnJvbSB0aGUKK2xh
c3QgYGBweXRlc3RgYCBpbnZvY2F0aW9uOgorCisqIGBgLS1sZmBgLCBgYC0tbGFzdC1mYWlsZWRg
YCAtIHRvIG9ubHkgcmUtcnVuIHRoZSBmYWlsdXJlcy4KKyogYGAtLWZmYGAsIGBgLS1mYWlsZWQt
Zmlyc3RgYCAtIHRvIHJ1biB0aGUgZmFpbHVyZXMgZmlyc3QgYW5kIHRoZW4gdGhlIHJlc3Qgb2YK
KyAgdGhlIHRlc3RzLgorCitGb3IgY2xlYW51cCAodXN1YWxseSBub3QgbmVlZGVkKSwgYSBgYC0t
Y2FjaGUtY2xlYXJgYCBvcHRpb24gYWxsb3dzIHRvIHJlbW92ZQorYWxsIGNyb3NzLXNlc3Npb24g
Y2FjaGUgY29udGVudHMgYWhlYWQgb2YgYSB0ZXN0IHJ1bi4KKworT3RoZXIgcGx1Z2lucyBtYXkg
YWNjZXNzIHRoZSBgY29uZmlnLmNhY2hlYF8gb2JqZWN0IHRvIHNldC9nZXQgCisqKmpzb24gZW5j
b2RhYmxlKiogdmFsdWVzIGJldHdlZW4gYGBweXRlc3RgYCBpbnZvY2F0aW9ucy4KKworLi4gbm90
ZTo6CisKKyAgICBUaGlzIHBsdWdpbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUg
ZGlzYWJsZWQgaWYgbmVlZGVkOiBzZWUKKyAgICA6cmVmOmBjbWR1bnJlZ2lzdGVyYCAodGhlIGlu
dGVybmFsIG5hbWUgZm9yIHRoaXMgcGx1Z2luIGlzCisgICAgYGBjYWNoZXByb3ZpZGVyYGApLgor
CisKK1JlcnVubmluZyBvbmx5IGZhaWx1cmVzIG9yIGZhaWx1cmVzIGZpcnN0CistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGaXJzdCwgbGV0J3MgY3Jl
YXRlIDUwIHRlc3QgaW52b2NhdGlvbiBvZiB3aGljaCBvbmx5IDIgZmFpbDo6CisKKyAgICAjIGNv
bnRlbnQgb2YgdGVzdF81MC5weQorICAgIGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiaSIsIHJhbmdlKDUwKSkKKyAgICBkZWYgdGVzdF9udW0oaSk6CisgICAg
ICAgIGlmIGkgaW4gKDE3LCAyNSk6CisgICAgICAgICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIp
CisKK0lmIHlvdSBydW4gdGhpcyBmb3IgdGhlIGZpcnN0IHRpbWUgeW91IHdpbGwgc2VlIHR3byBm
YWlsdXJlczo6CisKKyAgICAkIHB5dGVzdCAtcQorICAgIC4uLi4uLi4uLi4uLi4uLi4uRi4uLi4u
Li5GLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3RfbnVtWzE3XSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAg
aSA9IDE3CisgICAgCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIsIHJhbmdl
KDUwKSkKKyAgICAgICAgZGVmIHRlc3RfbnVtKGkpOgorICAgICAgICAgICAgaWYgaSBpbiAoMTcs
IDI1KToKKyAgICA+ICAgICAgICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAgRSAgICAg
ICAgICBGYWlsZWQ6IGJhZCBsdWNrCisgICAgCisgICAgdGVzdF81MC5weTo2OiBGYWlsZWQKKyAg
ICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfbnVtWzI1XSBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgaSA9IDI1CisgICAgCisgICAgICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIsIHJhbmdlKDUwKSkKKyAgICAgICAgZGVmIHRlc3Rf
bnVtKGkpOgorICAgICAgICAgICAgaWYgaSBpbiAoMTcsIDI1KToKKyAgICA+ICAgICAgICAgIHB5
dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAgRSAgICAgICAgICBGYWlsZWQ6IGJhZCBsdWNrCisg
ICAgCisgICAgdGVzdF81MC5weTo2OiBGYWlsZWQKKyAgICAyIGZhaWxlZCwgNDggcGFzc2VkIGlu
IDAuMTIgc2Vjb25kcworCitJZiB5b3UgdGhlbiBydW4gaXQgd2l0aCBgYC0tbGZgYDo6CisKKyAg
ICAkIHB5dGVzdCAtLWxmCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQg
NTAgaXRlbXMKKyAgICBydW4tbGFzdC1mYWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVz
CisgICAgCisgICAgdGVzdF81MC5weSBGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9udW1bMTddIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBpID0gMTcKKyAgICAKKyAg
ICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpIiwgcmFuZ2UoNTApKQorICAgICAgICBk
ZWYgdGVzdF9udW0oaSk6CisgICAgICAgICAgICBpZiBpIGluICgxNywgMjUpOgorICAgID4gICAg
ICAgICAgcHl0ZXN0LmZhaWwoImJhZCBsdWNrIikKKyAgICBFICAgICAgICAgIEZhaWxlZDogYmFk
IGx1Y2sKKyAgICAKKyAgICB0ZXN0XzUwLnB5OjY6IEZhaWxlZAorICAgIF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9udW1bMjVdIF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KKyAgICAKKyAgICBpID0gMjUKKyAgICAKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJpIiwgcmFuZ2UoNTApKQorICAgICAgICBkZWYgdGVzdF9udW0oaSk6CisgICAgICAg
ICAgICBpZiBpIGluICgxNywgMjUpOgorICAgID4gICAgICAgICAgcHl0ZXN0LmZhaWwoImJhZCBs
dWNrIikKKyAgICBFICAgICAgICAgIEZhaWxlZDogYmFkIGx1Y2sKKyAgICAKKyAgICB0ZXN0XzUw
LnB5OjY6IEZhaWxlZAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSA0OCB0ZXN0cyBk
ZXNlbGVjdGVkID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09
PT09PSAyIGZhaWxlZCwgNDggZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09
PT09PT09CisKK1lvdSBoYXZlIHJ1biBvbmx5IHRoZSB0d28gZmFpbGluZyB0ZXN0IGZyb20gdGhl
IGxhc3QgcnVuLCB3aGlsZSA0OCB0ZXN0cyBoYXZlCitub3QgYmVlbiBydW4gKCJkZXNlbGVjdGVk
IikuCisKK05vdywgaWYgeW91IHJ1biB3aXRoIHRoZSBgYC0tZmZgYCBvcHRpb24sIGFsbCB0ZXN0
cyB3aWxsIGJlIHJ1biBidXQgdGhlIGZpcnN0CitwcmV2aW91cyBmYWlsdXJlcyB3aWxsIGJlIGV4
ZWN1dGVkIGZpcnN0IChhcyBjYW4gYmUgc2VlbiBmcm9tIHRoZSBzZXJpZXMKK29mIGBgRkZgYCBh
bmQgZG90cyk6OgorCisgICAgJCBweXRlc3QgLS1mZgorICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54
LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6
CisgICAgY29sbGVjdGVkIDUwIGl0ZW1zCisgICAgcnVuLWxhc3QtZmFpbHVyZTogcmVydW4gcHJl
dmlvdXMgMiBmYWlsdXJlcyBmaXJzdAorICAgIAorICAgIHRlc3RfNTAucHkgRkYuLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gICAgICAgIFsxMDAlXQorICAg
IAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fIHRlc3RfbnVtWzE3XSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAg
CisgICAgaSA9IDE3CisgICAgCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIs
IHJhbmdlKDUwKSkKKyAgICAgICAgZGVmIHRlc3RfbnVtKGkpOgorICAgICAgICAgICAgaWYgaSBp
biAoMTcsIDI1KToKKyAgICA+ICAgICAgICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAg
RSAgICAgICAgICBGYWlsZWQ6IGJhZCBsdWNrCisgICAgCisgICAgdGVzdF81MC5weTo2OiBGYWls
ZWQKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfbnVtWzI1XSBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgaSA9IDI1CisgICAgCisgICAg
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIsIHJhbmdlKDUwKSkKKyAgICAgICAgZGVm
IHRlc3RfbnVtKGkpOgorICAgICAgICAgICAgaWYgaSBpbiAoMTcsIDI1KToKKyAgICA+ICAgICAg
ICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAgRSAgICAgICAgICBGYWlsZWQ6IGJhZCBs
dWNrCisgICAgCisgICAgdGVzdF81MC5weTo2OiBGYWlsZWQKKyAgICA9PT09PT09PT09PT09PT09
PT09IDIgZmFpbGVkLCA0OCBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09
PT09CisKKy4uIF9gY29uZmlnLmNhY2hlYDoKKworVGhlIG5ldyBjb25maWcuY2FjaGUgb2JqZWN0
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisK
K1BsdWdpbnMgb3IgY29uZnRlc3QucHkgc3VwcG9ydCBjb2RlIGNhbiBnZXQgYSBjYWNoZWQgdmFs
dWUgdXNpbmcgdGhlCitweXRlc3QgYGBjb25maWdgYCBvYmplY3QuICBIZXJlIGlzIGEgYmFzaWMg
ZXhhbXBsZSBwbHVnaW4gd2hpY2gKK2ltcGxlbWVudHMgYSA6cmVmOmBmaXh0dXJlYCB3aGljaCBy
ZS11c2VzIHByZXZpb3VzbHkgY3JlYXRlZCBzdGF0ZQorYWNyb3NzIHB5dGVzdCBpbnZvY2F0aW9u
czo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9jYWNoaW5nLnB5CisgICAgaW1wb3J0IHB5dGVz
dAorICAgIGltcG9ydCB0aW1lCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgbXlkYXRh
KHJlcXVlc3QpOgorICAgICAgICB2YWwgPSByZXF1ZXN0LmNvbmZpZy5jYWNoZS5nZXQoImV4YW1w
bGUvdmFsdWUiLCBOb25lKQorICAgICAgICBpZiB2YWwgaXMgTm9uZToKKyAgICAgICAgICAgIHRp
bWUuc2xlZXAoOSowLjYpICMgZXhwZW5zaXZlIGNvbXB1dGF0aW9uIDopCisgICAgICAgICAgICB2
YWwgPSA0MgorICAgICAgICAgICAgcmVxdWVzdC5jb25maWcuY2FjaGUuc2V0KCJleGFtcGxlL3Zh
bHVlIiwgdmFsKQorICAgICAgICByZXR1cm4gdmFsCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbiht
eWRhdGEpOgorICAgICAgICBhc3NlcnQgbXlkYXRhID09IDIzCisKK0lmIHlvdSBydW4gdGhpcyBj
b21tYW5kIG9uY2UsIGl0IHdpbGwgdGFrZSBhIHdoaWxlIGJlY2F1c2UKK29mIHRoZSBzbGVlcDo6
CisKKyAgICAkIHB5dGVzdCAtcQorICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9mdW5j
dGlvbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgbXlkYXRhID0g
NDIKKyAgICAKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24obXlkYXRhKToKKyAgICA+ICAgICAg
IGFzc2VydCBteWRhdGEgPT0gMjMKKyAgICBFICAgICAgIGFzc2VydCA0MiA9PSAyMworICAgIAor
ICAgIHRlc3RfY2FjaGluZy5weToxNDogQXNzZXJ0aW9uRXJyb3IKKyAgICAxIGZhaWxlZCBpbiAw
LjEyIHNlY29uZHMKKworSWYgeW91IHJ1biBpdCBhIHNlY29uZCB0aW1lIHRoZSB2YWx1ZSB3aWxs
IGJlIHJldHJpZXZlZCBmcm9tCit0aGUgY2FjaGUgYW5kIHRoaXMgd2lsbCBiZSBxdWljazo6CisK
KyAgICAkIHB5dGVzdCAtcQorICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9mdW5jdGlv
biBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgbXlkYXRhID0gNDIK
KyAgICAKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24obXlkYXRhKToKKyAgICA+ICAgICAgIGFz
c2VydCBteWRhdGEgPT0gMjMKKyAgICBFICAgICAgIGFzc2VydCA0MiA9PSAyMworICAgIAorICAg
IHRlc3RfY2FjaGluZy5weToxNDogQXNzZXJ0aW9uRXJyb3IKKyAgICAxIGZhaWxlZCBpbiAwLjEy
IHNlY29uZHMKKworU2VlIHRoZSBgY2FjaGUtYXBpYF8gZm9yIG1vcmUgZGV0YWlscy4KKworCitJ
bnNwZWN0aW5nIENhY2hlIGNvbnRlbnQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworWW91IGNhbiBhbHdheXMgcGVlayBhdCB0aGUgY29udGVudCBvZiB0aGUgY2FjaGUgdXNpbmcg
dGhlCitgYC0tY2FjaGUtc2hvd2BgIGNvbW1hbmQgbGluZSBvcHRpb246OgorCisgICAgJCBweS50
ZXN0IC0tY2FjaGUtc2hvdworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNl
c3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY2FjaGVkaXI6
ICRSRUdFTkRPQ19UTVBESVIvLmNhY2hlCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBjYWNoZSB2YWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIGNh
Y2hlL2xhc3RmYWlsZWQgY29udGFpbnM6CisgICAgICB7J3Rlc3RfY2FjaGluZy5weTo6dGVzdF9m
dW5jdGlvbic6IFRydWV9CisgICAgZXhhbXBsZS92YWx1ZSBjb250YWluczoKKyAgICAgIDQyCisg
ICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09PT09PQorCitDbGVhcmluZyBDYWNoZSBjb250ZW50Cist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gaW5zdHJ1Y3QgcHl0ZXN0
IHRvIGNsZWFyIGFsbCBjYWNoZSBmaWxlcyBhbmQgdmFsdWVzCitieSBhZGRpbmcgdGhlIGBgLS1j
YWNoZS1jbGVhcmBgIG9wdGlvbiBsaWtlIHRoaXM6OgorCisgICAgcHl0ZXN0IC0tY2FjaGUtY2xl
YXIKKworVGhpcyBpcyByZWNvbW1lbmRlZCBmb3IgaW52b2NhdGlvbnMgZnJvbSBDb250aW51b3Vz
IEludGVncmF0aW9uCitzZXJ2ZXJzIHdoZXJlIGlzb2xhdGlvbiBhbmQgY29ycmVjdG5lc3MgaXMg
bW9yZSBpbXBvcnRhbnQKK3RoYW4gc3BlZWQuCisKKworLi4gX2BjYWNoZS1hcGlgOgorCitjb25m
aWcuY2FjaGUgQVBJCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGBgY29uZmlnLmNhY2hlYGAg
b2JqZWN0IGFsbG93cyBvdGhlciBwbHVnaW5zLAoraW5jbHVkaW5nIGBgY29uZnRlc3QucHlgYCBm
aWxlcywKK3RvIHNhZmVseSBhbmQgZmxleGlibHkgc3RvcmUgYW5kIHJldHJpZXZlIHZhbHVlcyBh
Y3Jvc3MKK3Rlc3QgcnVucyBiZWNhdXNlIHRoZSBgYGNvbmZpZ2BgIG9iamVjdCBpcyBhdmFpbGFi
bGUKK2luIG1hbnkgcGxhY2VzLgorCitVbmRlciB0aGUgaG9vZCwgdGhlIGNhY2hlIHBsdWdpbiB1
c2VzIHRoZSBzaW1wbGUKK2R1bXBzL2xvYWRzIEFQSSBvZiB0aGUganNvbiBzdGRsaWIgbW9kdWxl
CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LmNhY2hlcHJvdmlkZXIKKworLi4gYXV0b21l
dGhvZDo6IENhY2hlLmdldAorLi4gYXV0b21ldGhvZDo6IENhY2hlLnNldAorLi4gYXV0b21ldGhv
ZDo6IENhY2hlLm1ha2VkaXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYXB0dXJl
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYXB0dXJlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODdiNTdm
OGZjMDYxYjgwNzhiOWY3ZTMzYWNlN2VkMGU0N2EyOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2NhcHR1cmUucnN0CkBAIC0wLDAgKzEsMTQ4IEBACisKKy4uIF9gY2Fw
dHVyZXNgOgorCitDYXB0dXJpbmcgb2YgdGhlIHN0ZG91dC9zdGRlcnIgb3V0cHV0Cis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRGVm
YXVsdCBzdGRvdXQvc3RkZXJyL3N0ZGluIGNhcHR1cmluZyBiZWhhdmlvdXIKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEdXJpbmcg
dGVzdCBleGVjdXRpb24gYW55IG91dHB1dCBzZW50IHRvIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJy
YGAgaXMKK2NhcHR1cmVkLiAgSWYgYSB0ZXN0IG9yIGEgc2V0dXAgbWV0aG9kIGZhaWxzIGl0cyBh
Y2NvcmRpbmcgY2FwdHVyZWQKK291dHB1dCB3aWxsIHVzdWFsbHkgYmUgc2hvd24gYWxvbmcgd2l0
aCB0aGUgZmFpbHVyZSB0cmFjZWJhY2suCisKK0luIGFkZGl0aW9uLCBgYHN0ZGluYGAgaXMgc2V0
IHRvIGEgIm51bGwiIG9iamVjdCB3aGljaCB3aWxsCitmYWlsIG9uIGF0dGVtcHRzIHRvIHJlYWQg
ZnJvbSBpdCBiZWNhdXNlIGl0IGlzIHJhcmVseSBkZXNpcmVkCit0byB3YWl0IGZvciBpbnRlcmFj
dGl2ZSBpbnB1dCB3aGVuIHJ1bm5pbmcgYXV0b21hdGVkIHRlc3RzLgorCitCeSBkZWZhdWx0IGNh
cHR1cmluZyBpcyBkb25lIGJ5IGludGVyY2VwdGluZyB3cml0ZXMgdG8gbG93IGxldmVsCitmaWxl
IGRlc2NyaXB0b3JzLiAgVGhpcyBhbGxvd3MgdG8gY2FwdHVyZSBvdXRwdXQgZnJvbSBzaW1wbGUK
K3ByaW50IHN0YXRlbWVudHMgYXMgd2VsbCBhcyBvdXRwdXQgZnJvbSBhIHN1YnByb2Nlc3Mgc3Rh
cnRlZCBieQorYSB0ZXN0LgorCitTZXR0aW5nIGNhcHR1cmluZyBtZXRob2RzIG9yIGRpc2FibGlu
ZyBjYXB0dXJpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworVGhlcmUgYXJlIHR3byB3YXlzIGluIHdoaWNoIGBgcHl0ZXN0YGAgY2FuIHBlcmZv
cm0gY2FwdHVyaW5nOgorCisqIGZpbGUgZGVzY3JpcHRvciAoRkQpIGxldmVsIGNhcHR1cmluZyAo
ZGVmYXVsdCk6IEFsbCB3cml0ZXMgZ29pbmcgdG8gdGhlCisgIG9wZXJhdGluZyBzeXN0ZW0gZmls
ZSBkZXNjcmlwdG9ycyAxIGFuZCAyIHdpbGwgYmUgY2FwdHVyZWQuCisKKyogYGBzeXNgYCBsZXZl
bCBjYXB0dXJpbmc6IE9ubHkgd3JpdGVzIHRvIFB5dGhvbiBmaWxlcyBgYHN5cy5zdGRvdXRgYAor
ICBhbmQgYGBzeXMuc3RkZXJyYGAgd2lsbCBiZSBjYXB0dXJlZC4gIE5vIGNhcHR1cmluZyBvZiB3
cml0ZXMgdG8KKyAgZmlsZWRlc2NyaXB0b3JzIGlzIHBlcmZvcm1lZC4KKworLi4gX2BkaXNhYmxl
IGNhcHR1cmluZ2A6CisKK1lvdSBjYW4gaW5mbHVlbmNlIG91dHB1dCBjYXB0dXJpbmcgbWVjaGFu
aXNtcyBmcm9tIHRoZSBjb21tYW5kIGxpbmU6OgorCisgICAgcHl0ZXN0IC1zICAgICAgICAgICAg
IyBkaXNhYmxlIGFsbCBjYXB0dXJpbmcKKyAgICBweXRlc3QgLS1jYXB0dXJlPXN5cyAjIHJlcGxh
Y2Ugc3lzLnN0ZG91dC9zdGRlcnIgd2l0aCBpbi1tZW0gZmlsZXMKKyAgICBweXRlc3QgLS1jYXB0
dXJlPWZkICAjIGFsc28gcG9pbnQgZmlsZWRlc2NyaXB0b3JzIDEgYW5kIDIgdG8gdGVtcCBmaWxl
CisKKy4uIF9wcmludGRlYnVnZ2luZzoKKworVXNpbmcgcHJpbnQgc3RhdGVtZW50cyBmb3IgZGVi
dWdnaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworT25lIHByaW1hcnkgYmVuZWZpdCBvZiB0aGUgZGVmYXVsdCBjYXB0dXJpbmcgb2Ygc3Rk
b3V0L3N0ZGVyciBvdXRwdXQKK2lzIHRoYXQgeW91IGNhbiB1c2UgcHJpbnQgc3RhdGVtZW50cyBm
b3IgZGVidWdnaW5nOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVsZS5weQorCisgICAg
ZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgcHJpbnQgKCJzZXR0aW5nIHVw
ICVzIiAlIGZ1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZnVuYzEoKToKKyAgICAgICAgYXNzZXJ0
IFRydWUKKworICAgIGRlZiB0ZXN0X2Z1bmMyKCk6CisgICAgICAgIGFzc2VydCBGYWxzZQorCith
bmQgcnVubmluZyB0aGlzIG1vZHVsZSB3aWxsIHNob3cgeW91IHByZWNpc2VseSB0aGUgb3V0cHV0
CitvZiB0aGUgZmFpbGluZyBmdW5jdGlvbiBhbmQgaGlkZSB0aGUgb3RoZXIgb25lOjoKKworICAg
ICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBz
dGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMiBpdGVt
cworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5IC5GICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2Z1bmMyIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2Z1
bmMyKCk6CisgICAgPiAgICAgICBhc3NlcnQgRmFsc2UKKyAgICBFICAgICAgIGFzc2VydCBGYWxz
ZQorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5Ojk6IEFzc2VydGlvbkVycm9yCisgICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHNldHVwIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIHNldHRpbmcgdXAgPGZ1bmN0aW9uIHRlc3RfZnVuYzIgYXQgMHhk
ZWFkYmVlZj4KKyAgICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCwgMSBwYXNzZWQgaW4g
MC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisKK0FjY2Vzc2luZyBjYXB0dXJlZCBv
dXRwdXQgZnJvbSBhIHRlc3QgZnVuY3Rpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgYGBjYXBzeXNgYCwgYGBjYXBzeXNiaW5hcnlg
YCwgYGBjYXBmZGBgLCBhbmQgYGBjYXBmZGJpbmFyeWBgIGZpeHR1cmVzCithbGxvdyBhY2Nlc3Mg
dG8gc3Rkb3V0L3N0ZGVyciBvdXRwdXQgY3JlYXRlZCBkdXJpbmcgdGVzdCBleGVjdXRpb24uICBI
ZXJlIGlzCithbiBleGFtcGxlIHRlc3QgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBzb21lIG91dHB1
dCByZWxhdGVkIGNoZWNrczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIHRl
c3RfbXlvdXRwdXQoY2Fwc3lzKTogIyBvciB1c2UgImNhcGZkIiBmb3IgZmQtbGV2ZWwKKyAgICAg
ICAgcHJpbnQgKCJoZWxsbyIpCisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkXG4iKQor
ICAgICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91
dCA9PSAiaGVsbG9cbiIKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAid29ybGRcbiIKKyAgICAgICAg
cHJpbnQgKCJuZXh0IikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCisg
ICAgICAgIGFzc2VydCBvdXQgPT0gIm5leHRcbiIKKworVGhlIGBgcmVhZG91dGVycigpYGAgY2Fs
bCBzbmFwc2hvdHMgdGhlIG91dHB1dCBzbyBmYXIgLQorYW5kIGNhcHR1cmluZyB3aWxsIGJlIGNv
bnRpbnVlZC4gIEFmdGVyIHRoZSB0ZXN0CitmdW5jdGlvbiBmaW5pc2hlcyB0aGUgb3JpZ2luYWwg
c3RyZWFtcyB3aWxsCitiZSByZXN0b3JlZC4gIFVzaW5nIGBgY2Fwc3lzYGAgdGhpcyB3YXkgZnJl
ZXMgeW91cgordGVzdCBmcm9tIGhhdmluZyB0byBjYXJlIGFib3V0IHNldHRpbmcvcmVzZXR0aW5n
CitvdXRwdXQgc3RyZWFtcyBhbmQgYWxzbyBpbnRlcmFjdHMgd2VsbCB3aXRoIHB5dGVzdCdzCitv
d24gcGVyLXRlc3QgY2FwdHVyaW5nLgorCitJZiB5b3Ugd2FudCB0byBjYXB0dXJlIG9uIGZpbGVk
ZXNjcmlwdG9yIGxldmVsIHlvdSBjYW4gdXNlCit0aGUgYGBjYXBmZGBgIGZpeHR1cmUgd2hpY2gg
b2ZmZXJzIHRoZSBleGFjdAorc2FtZSBpbnRlcmZhY2UgYnV0IGFsbG93cyB0byBhbHNvIGNhcHR1
cmUgb3V0cHV0IGZyb20KK2xpYnJhcmllcyBvciBzdWJwcm9jZXNzZXMgdGhhdCBkaXJlY3RseSB3
cml0ZSB0byBvcGVyYXRpbmcKK3N5c3RlbSBsZXZlbCBvdXRwdXQgc3RyZWFtcyAoRkQxIGFuZCBG
RDIpLgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworSWYgdGhlIGNvZGUgdW5kZXIgdGVzdCB3
cml0ZXMgbm9uLXRleHR1YWwgZGF0YSwgeW91IGNhbiBjYXB0dXJlIHRoaXMgdXNpbmcKK3RoZSBg
YGNhcHN5c2JpbmFyeWBgIGZpeHR1cmUgd2hpY2ggaW5zdGVhZCByZXR1cm5zIGBgYnl0ZXNgYCBm
cm9tCit0aGUgYGByZWFkb3V0ZXJyYGAgbWV0aG9kLiAgVGhlIGBgY2FwZnN5c2JpbmFyeWBgIGZp
eHR1cmUgaXMgY3VycmVudGx5IG9ubHkKK2F2YWlsYWJsZSBpbiBweXRob24gMy4KKworCisuLiB2
ZXJzaW9uYWRkZWQ6OiAzLjMKKworSWYgdGhlIGNvZGUgdW5kZXIgdGVzdCB3cml0ZXMgbm9uLXRl
eHR1YWwgZGF0YSwgeW91IGNhbiBjYXB0dXJlIHRoaXMgdXNpbmcKK3RoZSBgYGNhcGZkYmluYXJ5
YGAgZml4dHVyZSB3aGljaCBpbnN0ZWFkIHJldHVybnMgYGBieXRlc2BgIGZyb20KK3RoZSBgYHJl
YWRvdXRlcnJgYCBtZXRob2QuICBUaGUgYGBjYXBmZGJpbmFyeWBgIGZpeHR1cmUgb3BlcmF0ZXMg
b24gdGhlCitmaWxlZGVzY3JpcHRvciBsZXZlbC4KKworCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAK
KworVG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBjYXB0dXJlIHdpdGhpbiBhIHRlc3QsIGJvdGggYGBj
YXBzeXNgYAorYW5kIGBgY2FwZmRgYCBoYXZlIGEgYGBkaXNhYmxlZCgpYGAgbWV0aG9kIHRoYXQg
Y2FuIGJlIHVzZWQKK2FzIGEgY29udGV4dCBtYW5hZ2VyLCBkaXNhYmxpbmcgY2FwdHVyZSBpbnNp
ZGUgdGhlIGBgd2l0aGBgIGJsb2NrOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBk
ZWYgdGVzdF9kaXNhYmxpbmdfY2FwdHVyaW5nKGNhcHN5cyk6CisgICAgICAgIHByaW50KCd0aGlz
IG91dHB1dCBpcyBjYXB0dXJlZCcpCisgICAgICAgIHdpdGggY2Fwc3lzLmRpc2FibGVkKCk6Cisg
ICAgICAgICAgICBwcmludCgnb3V0cHV0IG5vdCBjYXB0dXJlZCwgZ29pbmcgZGlyZWN0bHkgdG8g
c3lzLnN0ZG91dCcpCisgICAgICAgIHByaW50KCd0aGlzIG91dHB1dCBpcyBhbHNvIGNhcHR1cmVk
JykKKworLi4gaW5jbHVkZTo6IGxpbmtzLmluYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2NoYW5nZWxvZy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9nLnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTliM2M3ZTI1MGVlYWExMTFlMmJmM2ZlZGYwYTQ0OWZmYjM4YjNmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NoYW5nZWxvZy5yc3QKQEAgLTAsMCArMSw3
IEBACisKKy4uIF9jaGFuZ2Vsb2c6CisKK0NoYW5nZWxvZyBoaXN0b3J5Cis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworLi4gaW5jbHVkZTo6IC4uLy4uL0NIQU5HRUxPRy5yc3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jaGVja19zcGhpbngucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vY2hlY2tfc3BoaW54LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmNTM2ZmZhNmFjMDYxZTUz
YzllMzQ0OGZjN2E1OWQ2MzQzMjViMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vY2hlY2tfc3BoaW54LnB5CkBAIC0wLDAgKzEsMTcgQEAKK2ltcG9ydCBweQoraW1wb3J0
IHN1YnByb2Nlc3MKK2RlZiB0ZXN0X2J1aWxkX2RvY3ModG1wZGlyKToKKyAgICBkb2N0cmVlcyA9
IHRtcGRpci5qb2luKCJkb2N0cmVlcyIpCisgICAgaHRtbGRpciA9IHRtcGRpci5qb2luKCJodG1s
IikKKyAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWworICAgICAgICAic3BoaW54LWJ1aWxkIiwg
Ii1XIiwgIi1iaHRtbCIsCisgICAgICAgICAgIi1kIiwgc3RyKGRvY3RyZWVzKSwgIi4iLCBzdHIo
aHRtbGRpcildKQorCitkZWYgdGVzdF9saW5rY2hlY2sodG1wZGlyKToKKyAgICBkb2N0cmVlcyA9
IHRtcGRpci5qb2luKCJkb2N0cmVlcyIpCisgICAgaHRtbGRpciA9IHRtcGRpci5qb2luKCJodG1s
IikKKyAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCisgICAgICAgIFsic3BoaW54LWJ1aWxkIiwg
Ii1ibGlua2NoZWNrIiwKKyAgICAgICAgICAiLWQiLCBzdHIoZG9jdHJlZXMpLCAiLiIsIHN0ciho
dG1sZGlyKV0pCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmYucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGYxZTQxNjVlNDQyMDliODA0
NTZhNGI1ODZiMDI4YTYzMGVhYWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2NvbmYucHkKQEAgLTAsMCArMSwzMjMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisj
CisjIHB5dGVzdCBkb2N1bWVudGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZSwgY3JlYXRl
ZCBieQorIyBzcGhpbngtcXVpY2tzdGFydCBvbiBGcmkgT2N0ICA4IDE3OjU0OjI4IDIwMTAuCisj
CisjIFRoaXMgZmlsZSBpcyBleGVjZmlsZSgpZCB3aXRoIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBz
ZXQgdG8gaXRzIGNvbnRhaW5pbmcgZGlyLgorIworIyBOb3RlIHRoYXQgbm90IGFsbCBwb3NzaWJs
ZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmUgcHJlc2VudCBpbiB0aGlzCisjIGF1dG9nZW5lcmF0
ZWQgZmlsZS4KKyMKKyMgQWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGhhdmUgYSBkZWZhdWx0OyB2
YWx1ZXMgdGhhdCBhcmUgY29tbWVudGVkIG91dAorIyBzZXJ2ZSB0byBzaG93IHRoZSBkZWZhdWx0
LgorCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGlu
ZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFs
c28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBk
b2N1bWVudHMuCisjCisjIFRoZSBmdWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3Jj
IHRhZ3MuCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KKworaW1wb3J0IG9zLCBzeXMKK2Zyb20g
X3B5dGVzdCBpbXBvcnQgX192ZXJzaW9uX18gYXMgdmVyc2lvbgorcmVsZWFzZSA9ICIuIi5qb2lu
KHZlcnNpb24uc3BsaXQoIi4iKVs6Ml0pCisKKyMgSWYgZXh0ZW5zaW9ucyAob3IgbW9kdWxlcyB0
byBkb2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBpbiBhbm90aGVyIGRpcmVjdG9yeSwKKyMgYWRk
IHRoZXNlIGRpcmVjdG9yaWVzIHRvIHN5cy5wYXRoIGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMg
cmVsYXRpdmUgdG8gdGhlCisjIGRvY3VtZW50YXRpb24gcm9vdCwgdXNlIG9zLnBhdGguYWJzcGF0
aCB0byBtYWtlIGl0IGFic29sdXRlLCBsaWtlIHNob3duIGhlcmUuCisjc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguYWJzcGF0aCgnLicpKQorCithdXRvZG9jX21lbWJlcl9vcmRlciA9ICJieXNv
dXJjZSIKK3RvZG9faW5jbHVkZV90b2RvcyA9IDEKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRp
b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworIyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9u
LCBzdGF0ZSBpdCBoZXJlLgorI25lZWRzX3NwaGlueCA9ICcxLjAnCisKKyMgQWRkIGFueSBTcGhp
bnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBl
eHRlbnNpb25zCisjIGNvbWluZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9y
IHlvdXIgY3VzdG9tIG9uZXMuCitleHRlbnNpb25zID0gWydzcGhpbnguZXh0LmF1dG9kb2MnLCAn
c3BoaW54LmV4dC50b2RvJywgJ3NwaGlueC5leHQuYXV0b3N1bW1hcnknLAorICAgICdzcGhpbngu
ZXh0LmludGVyc3BoaW54JywgJ3NwaGlueC5leHQudmlld2NvZGUnXQorCisjIEFkZCBhbnkgcGF0
aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9y
eS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9mIHNv
dXJjZSBmaWxlbmFtZXMuCitzb3VyY2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhlIGVuY29kaW5n
IG9mIHNvdXJjZSBmaWxlcy4KKyNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJworCisjIFRo
ZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KK21hc3Rlcl9kb2MgPSAnY29udGVudHMnCisKKyMg
R2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KK3Byb2plY3QgPSB1J3B5dGVz
dCcKK2NvcHlyaWdodCA9IHUnMjAxNSwgaG9sZ2VyIGtyZWtlbCBhbmQgcHl0ZXN0LWRldiB0ZWFt
JworCisKKworIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhp
bnguIFJlZmVyIHRvIGRvY3VtZW50YXRpb24KKyMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFu
Z3VhZ2VzLgorI2xhbmd1YWdlID0gTm9uZQorCisjIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBmb3Ig
cmVwbGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCisjIG5vbi1m
YWxzZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgorI3RvZGF5ID0gJycKKyMgRWxzZSwgdG9kYXlf
Zm10IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgorI3RvZGF5X2Zt
dCA9ICclQiAlZCwgJVknCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNl
IGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdub3Jl
IHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9IFsnbGlu
a3MuaW5jJywgJ19idWlsZCcsICduYW1pbmcyMC5yc3QnLCAndGVzdC8qJywKKyAgICAib2xkXyoi
LAorICAgICcqYXR0aWMqJywKKyAgICAnKi9hdHRpYyonLAorICAgICdmdW5jYXJncy5yc3QnLAor
ICAgICdzZXR1cC5yc3QnLAorICAgICdleGFtcGxlL3JlbW90ZWludGVycC5yc3QnLAorICAgIF0K
KworCisjIFRoZSByZVNUIGRlZmF1bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0
YCkgdG8gdXNlIGZvciBhbGwgZG9jdW1lbnRzLgorI2RlZmF1bHRfcm9sZSA9IE5vbmUKKworIyBJ
ZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJl
bmNlIHRleHQuCisjYWRkX2Z1bmN0aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQorCisjIElmIHRydWUs
IHRoZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlw
dGlvbgorIyB1bml0IHRpdGxlcyAoc3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KK2FkZF9tb2R1bGVf
bmFtZXMgPSBGYWxzZQorCisjIElmIHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhv
ciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hvd24gaW4gdGhlCisjIG91dHB1dC4gVGhleSBhcmUgaWdu
b3JlZCBieSBkZWZhdWx0LgorI3Nob3dfYXV0aG9ycyA9IEZhbHNlCisKKyMgVGhlIG5hbWUgb2Yg
dGhlIFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitweWdtZW50
c19zdHlsZSA9ICdzcGhpbngnCisKKworCisjIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVzIGZv
ciBtb2R1bGUgaW5kZXggc29ydGluZy4KKyNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10KKwor
CisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzeXMucGF0aC5hcHBlbmQob3MucGF0aC5hYnNw
YXRoKCdfdGhlbWVzJykpCitodG1sX3RoZW1lX3BhdGggPSBbJ190aGVtZXMnXQorCisjIFRoZSB0
aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1l
bnRhdGlvbiBmb3IKKyMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgoraHRtbF90aGVtZSA9ICdm
bGFzaycKKworIyBUaGVtZSBvcHRpb25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXpl
IHRoZSBsb29rIGFuZCBmZWVsIG9mIGEgdGhlbWUKKyMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Yg
b3B0aW9ucyBhdmFpbGFibGUgZm9yIGVhY2ggdGhlbWUsIHNlZSB0aGUKKyMgZG9jdW1lbnRhdGlv
bi4KK2h0bWxfdGhlbWVfb3B0aW9ucyA9IHsKKyAgJ2luZGV4X2xvZ28nOiBOb25lCit9CisKKyMg
QWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJlLCByZWxhdGl2ZSB0
byB0aGlzIGRpcmVjdG9yeS4KKyNodG1sX3RoZW1lX3BhdGggPSBbXQorCisjIFRoZSBuYW1lIGZv
ciB0aGlzIHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQgZGVmYXVsdHMgdG8K
KyMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgoraHRtbF90aXRsZSA9ICdw
eXRlc3QgZG9jdW1lbnRhdGlvbicKKworIyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0
aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUgYXMgaHRtbF90aXRsZS4KK2h0bWxfc2hvcnRf
dGl0bGUgPSAicHl0ZXN0LSVzIiAlIHJlbGVhc2UKKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBm
aWxlIChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAorIyBv
ZiB0aGUgc2lkZWJhci4KK2h0bWxfbG9nbyA9ICJpbWcvcHl0ZXN0MS5wbmciCisKKyMgVGhlIG5h
bWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBzdGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZh
dmljb24gb2YgdGhlCisjIGRvY3MuICBUaGlzIGZpbGUgc2hvdWxkIGJlIGEgV2luZG93cyBpY29u
IGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMyCisjIHBpeGVscyBsYXJnZS4KK2h0bWxf
ZmF2aWNvbiA9ICJpbWcvcHl0ZXN0MWZhdmkuaWNvIgorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBj
b250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5bGUgc2hlZXRzKSBoZXJlLAor
IyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUgY29waWVkIGFmdGVyIHRoZSBi
dWlsdGluIHN0YXRpYyBmaWxlcywKKyMgc28gYSBmaWxlIG5hbWVkICJkZWZhdWx0LmNzcyIgd2ls
bCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4KKyMgaHRtbF9zdGF0aWNfcGF0
aCA9IFsnX3N0YXRpYyddCisKKyMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1l
c3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCisjIHVzaW5nIHRoZSBnaXZl
biBzdHJmdGltZSBmb3JtYXQuCisjaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScK
KworIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMg
YW5kIGRhc2hlcyB0bworIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KKyNodG1s
X3VzZV9zbWFydHlwYW50cyA9IFRydWUKKworIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1h
cHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9zaWRlYmFycyA9IHt9
CisjaHRtbF9zaWRlYmFycyA9IHsnaW5kZXgnOiAnaW5kZXhzaWRlYmFyLmh0bWwnfQorCitodG1s
X3NpZGViYXJzID0geworICAgICdpbmRleCc6IFsKKyAgICAgICAgJ3NpZGViYXJpbnRyby5odG1s
JywKKyAgICAgICAgJ2dsb2JhbHRvYy5odG1sJywKKyAgICAgICAgJ2xpbmtzLmh0bWwnLAorICAg
ICAgICAnc291cmNlbGluay5odG1sJywKKyAgICAgICAgJ3NlYXJjaGJveC5odG1sJworICAgIF0s
CisgICAgJyoqJzogWworICAgICAgICAnZ2xvYmFsdG9jLmh0bWwnLAorICAgICAgICAncmVsYXRp
b25zLmh0bWwnLAorICAgICAgICAnbGlua3MuaHRtbCcsCisgICAgICAgICdzb3VyY2VsaW5rLmh0
bWwnLAorICAgICAgICAnc2VhcmNoYm94Lmh0bWwnCisgICAgXQorfQorCisjIEFkZGl0aW9uYWwg
dGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHRvIHBhZ2VzLCBtYXBzIHBhZ2UgbmFt
ZXMgdG8KKyMgdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9hZGRpdGlvbmFsX3BhZ2VzID0ge30KKyNo
dG1sX2FkZGl0aW9uYWxfcGFnZXMgPSB7J2luZGV4JzogJ2luZGV4Lmh0bWwnfQorCisKKyMgSWYg
ZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX2RvbWFpbl9pbmRpY2Vz
ID0gVHJ1ZQorCisjIElmIGZhbHNlLCBubyBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX3VzZV9p
bmRleCA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgdGhlIGluZGV4IGlzIHNwbGl0IGludG8gaW5kaXZp
ZHVhbCBwYWdlcyBmb3IgZWFjaCBsZXR0ZXIuCisjaHRtbF9zcGxpdF9pbmRleCA9IEZhbHNlCisK
KyMgSWYgdHJ1ZSwgbGlua3MgdG8gdGhlIHJlU1Qgc291cmNlcyBhcmUgYWRkZWQgdG8gdGhlIHBh
Z2VzLgoraHRtbF9zaG93X3NvdXJjZWxpbmsgPSBGYWxzZQorCisjIElmIHRydWUsICJDcmVhdGVk
IHVzaW5nIFNwaGlueCIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRy
dWUuCisjaHRtbF9zaG93X3NwaGlueCA9IFRydWUKKworIyBJZiB0cnVlLCAiKEMpIENvcHlyaWdo
dCAuLi4iIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0
bWxfc2hvd19jb3B5cmlnaHQgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgYW4gT3BlblNlYXJjaCBkZXNj
cmlwdGlvbiBmaWxlIHdpbGwgYmUgb3V0cHV0LCBhbmQgYWxsIHBhZ2VzIHdpbGwKKyMgY29udGFp
biBhIDxsaW5rPiB0YWcgcmVmZXJyaW5nIHRvIGl0LiAgVGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9u
IG11c3QgYmUgdGhlCisjIGJhc2UgVVJMIGZyb20gd2hpY2ggdGhlIGZpbmlzaGVkIEhUTUwgaXMg
c2VydmVkLgorI2h0bWxfdXNlX29wZW5zZWFyY2ggPSAnJworCisjIFRoaXMgaXMgdGhlIGZpbGUg
bmFtZSBzdWZmaXggZm9yIEhUTUwgZmlsZXMgKGUuZy4gIi54aHRtbCIpLgorI2h0bWxfZmlsZV9z
dWZmaXggPSBOb25lCisKKyMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVp
bGRlci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ3B5dGVzdGRvYycKKworCisjIC0tIE9wdGlvbnMg
Zm9yIExhVGVYIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisjIFRoZSBwYXBlciBzaXplICgnbGV0dGVyJyBvciAnYTQnKS4KKyNsYXRl
eF9wYXBlcl9zaXplID0gJ2xldHRlcicKKworIyBUaGUgZm9udCBzaXplICgnMTBwdCcsICcxMXB0
JyBvciAnMTJwdCcpLgorI2xhdGV4X2ZvbnRfc2l6ZSA9ICcxMHB0JworCisjIEdyb3VwaW5nIHRo
ZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRvY3VtZW50Y2xhc3Mg
W2hvd3RvL21hbnVhbF0pLgorbGF0ZXhfZG9jdW1lbnRzID0gWworICAoJ2NvbnRlbnRzJywgJ3B5
dGVzdC50ZXgnLCB1J3B5dGVzdCBEb2N1bWVudGF0aW9uJywKKyAgIHUnaG9sZ2VyIGtyZWtlbCwg
dHJhaW5lciBhbmQgY29uc3VsdGFudCwgaHR0cDovL21lcmxpbnV4LmV1JywgJ21hbnVhbCcpLAor
XQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0
b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wIG9mCisjIHRoZSB0aXRsZSBwYWdlLgorbGF0ZXhfbG9n
byA9ICdpbWcvcHl0ZXN0MS5wbmcnCisKKyMgRm9yICJtYW51YWwiIGRvY3VtZW50cywgaWYgdGhp
cyBpcyB0cnVlLCB0aGVuIHRvcGxldmVsIGhlYWRpbmdzIGFyZSBwYXJ0cywKKyMgbm90IGNoYXB0
ZXJzLgorI2xhdGV4X3VzZV9wYXJ0cyA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBwYWdlIHJl
ZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd19wYWdlcmVmcyA9IEZh
bHNlCisKKyMgSWYgdHJ1ZSwgc2hvdyBVUkwgYWRkcmVzc2VzIGFmdGVyIGV4dGVybmFsIGxpbmtz
LgorI2xhdGV4X3Nob3dfdXJscyA9IEZhbHNlCisKKyMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhl
IExhVGVYIHByZWFtYmxlLgorI2xhdGV4X3ByZWFtYmxlID0gJycKKworIyBEb2N1bWVudHMgdG8g
YXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMg
PSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorbGF0ZXhf
ZG9tYWluX2luZGljZXMgPSBGYWxzZQorCisjIC0tIE9wdGlvbnMgZm9yIG1hbnVhbCBwYWdlIG91
dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIE9u
ZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQg
ZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4KK21hbl9w
YWdlcyA9IFsKKyAgICAoJ3VzYWdlJywgJ3B5dGVzdCcsIHUncHl0ZXN0IHVzYWdlJywKKyAgICAg
W3UnaG9sZ2VyIGtyZWtlbCBhdCBtZXJsaW51eCBldSddLCAxKQorXQorCisKKyMgLS0gT3B0aW9u
cyBmb3IgRXB1YiBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyMgQmlibGlvZ3JhcGhpYyBEdWJsaW4gQ29yZSBpbmZvLgorZXB1Yl90
aXRsZSA9IHUncHl0ZXN0JworZXB1Yl9hdXRob3IgPSB1J2hvbGdlciBrcmVrZWwgYXQgbWVybGlu
dXggZXUnCitlcHViX3B1Ymxpc2hlciA9IHUnaG9sZ2VyIGtyZWtlbCBhdCBtZXJsaW51eCBldScK
K2VwdWJfY29weXJpZ2h0ID0gdScyMDEzLCBob2xnZXIga3Jla2VsIGV0IGFsaWknCisKKyMgVGhl
IGxhbmd1YWdlIG9mIHRoZSB0ZXh0LiBJdCBkZWZhdWx0cyB0byB0aGUgbGFuZ3VhZ2Ugb3B0aW9u
CisjIG9yIGVuIGlmIHRoZSBsYW5ndWFnZSBpcyBub3Qgc2V0LgorI2VwdWJfbGFuZ3VhZ2UgPSAn
JworCisjIFRoZSBzY2hlbWUgb2YgdGhlIGlkZW50aWZpZXIuIFR5cGljYWwgc2NoZW1lcyBhcmUg
SVNCTiBvciBVUkwuCisjZXB1Yl9zY2hlbWUgPSAnJworCisjIFRoZSB1bmlxdWUgaWRlbnRpZmll
ciBvZiB0aGUgdGV4dC4gVGhpcyBjYW4gYmUgYSBJU0JOIG51bWJlcgorIyBvciB0aGUgcHJvamVj
dCBob21lcGFnZS4KKyNlcHViX2lkZW50aWZpZXIgPSAnJworCisjIEEgdW5pcXVlIGlkZW50aWZp
Y2F0aW9uIGZvciB0aGUgdGV4dC4KKyNlcHViX3VpZCA9ICcnCisKKyMgSFRNTCBmaWxlcyB0aGF0
IHNob3VsZCBiZSBpbnNlcnRlZCBiZWZvcmUgdGhlIHBhZ2VzIGNyZWF0ZWQgYnkgc3BoaW54Lgor
IyBUaGUgZm9ybWF0IGlzIGEgbGlzdCBvZiB0dXBsZXMgY29udGFpbmluZyB0aGUgcGF0aCBhbmQg
dGl0bGUuCisjZXB1Yl9wcmVfZmlsZXMgPSBbXQorCisjIEhUTUwgZmlsZXMgc2hhdCBzaG91bGQg
YmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIHBhZ2VzIGNyZWF0ZWQgYnkgc3BoaW54LgorIyBUaGUgZm9y
bWF0IGlzIGEgbGlzdCBvZiB0dXBsZXMgY29udGFpbmluZyB0aGUgcGF0aCBhbmQgdGl0bGUuCisj
ZXB1Yl9wb3N0X2ZpbGVzID0gW10KKworIyBBIGxpc3Qgb2YgZmlsZXMgdGhhdCBzaG91bGQgbm90
IGJlIHBhY2tlZCBpbnRvIHRoZSBlcHViIGZpbGUuCisjZXB1Yl9leGNsdWRlX2ZpbGVzID0gW10K
KworIyBUaGUgZGVwdGggb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIGluIHRvYy5uY3guCisjZXB1
Yl90b2NkZXB0aCA9IDMKKworIyBBbGxvdyBkdXBsaWNhdGUgdG9jIGVudHJpZXMuCisjZXB1Yl90
b2NkdXAgPSBUcnVlCisKKworIyAtLSBPcHRpb25zIGZvciB0ZXhpbmZvIG91dHB1dCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordGV4aW5mb19kb2N1
bWVudHMgPSBbCisgIChtYXN0ZXJfZG9jLCAncHl0ZXN0JywgJ3B5dGVzdCBEb2N1bWVudGF0aW9u
JywKKyAgICgnSG9sZ2VyIEtyZWtlbEAqQmVuamFtaW4gUGV0ZXJzb25AKlJvbm55IFBmYW5uc2No
bWlkdEAqJworICAgICdGbG9yaXMgQnJ1eW5vb2doZUAqb3RoZXJzJyksCisgICAncHl0ZXN0JywK
KyAgICdzaW1wbGUgcG93ZXJmdWwgdGVzdGluZyB3aXRoIFB5dGhvbicsCisgICAnUHJvZ3JhbW1p
bmcnLAorICAgMSksCitdCisKKworIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVyc3Bo
aW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkuCitpbnRlcnNwaGlueF9t
YXBwaW5nID0geydweXRob24nOiAoJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJywgTm9uZSksCisj
ICAgICAgICAgICAgICAgICAgICAgICAnbGliJzogKCJodHRwOi8vZG9jcy5weXRob24ub3JnLzIu
N2xpYnJhcnkvIiwgTm9uZSksCisgICAgICAgICAgICAgICAgICAgIH0KKworCitkZWYgc2V0dXAo
YXBwKToKKyAgICAjZnJvbSBzcGhpbnguZXh0LmF1dG9kb2MgaW1wb3J0IGN1dF9saW5lcworICAg
ICNhcHAuY29ubmVjdCgnYXV0b2RvYy1wcm9jZXNzLWRvY3N0cmluZycsIGN1dF9saW5lcyg0LCB3
aGF0PVsnbW9kdWxlJ10pKQorICAgIGFwcC5hZGRfZGVzY3JpcHRpb25fdW5pdCgnY29uZnZhbCcs
ICdjb25mdmFsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqbmFtZT0nY29uZmln
dXJhdGlvbiB2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4dGVtcGxh
dGU9J3BhaXI6ICVzOyBjb25maWd1cmF0aW9uIHZhbHVlJykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb25mdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYTYyZTFiNWRmNTM1MDNlOGUzM2U1ZTEwNTk1YzNiNTFiNWM4NjEzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEg
QEAKK2NvbGxlY3RfaWdub3JlID0gWyJjb25mLnB5Il0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9jb250YWN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250YWN0LnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44M2Q0OTY2NDBkNWViZTcyYzM1YjBiMzA4NTQ4ZGFjN2JhMjBhYmJhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRhY3QucnN0CkBAIC0wLDAgKzEsNTAg
QEAKKworLi4gX2Bjb250YWN0IGNoYW5uZWxzYDoKKy4uIF9gY29udGFjdGA6CisKK0NvbnRhY3Qg
Y2hhbm5lbHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gYHB5dGVz
dCBpc3N1ZSB0cmFja2VyYF8gdG8gcmVwb3J0IGJ1Z3Mgb3Igc3VnZ2VzdCBmZWF0dXJlcyAoZm9y
IHZlcnNpb24KKyAgMi4wIGFuZCBhYm92ZSkuCisKKy0gYHB5dGVzdCBvbiBzdGFja292ZXJmbG93
LmNvbSA8aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3NlYXJjaD9xPXB5dGVzdD5gXyAKKyAgdG8g
cG9zdCBxdWVzdGlvbnMgd2l0aCB0aGUgdGFnIGBgcHl0ZXN0YGAuICBOZXcgUXVlc3Rpb25zIHdp
bGwgdXN1YWxseSAKKyAgYmUgc2VlbiBieSBweXRlc3QgdXNlcnMgb3IgZGV2ZWxvcGVycyBhbmQg
YW5zd2VyZWQgcXVpY2tseS4gCisKKy0gYFRlc3RpbmcgSW4gUHl0aG9uYF86IGEgbWFpbGluZyBs
aXN0IGZvciBQeXRob24gdGVzdGluZyB0b29scyBhbmQgZGlzY3Vzc2lvbi4KKworLSBgcHl0ZXN0
LWRldiBhdCBweXRob24ub3JnIChtYWlsaW5nIGxpc3QpYF8gcHl0ZXN0IHNwZWNpZmljIGFubm91
bmNlbWVudHMgYW5kIGRpc2N1c3Npb25zLgorCistIGBweXRlc3QtY29tbWl0IGF0IHB5dGhvbi5v
cmcgKG1haWxpbmcgbGlzdClgXzogZm9yIGNvbW1pdHMgYW5kIG5ldyBpc3N1ZXMKKworLSA6ZG9j
OmBjb250cmlidXRpb24gZ3VpZGUgPGNvbnRyaWJ1dGluZz5gIGZvciBoZWxwIG9uIHN1Ym1pdHRp
bmcgcHVsbAorICByZXF1ZXN0cyB0byBHaXRIdWIuCisKKy0gYGAjcHlsaWJgYCBvbiBpcmMuZnJl
ZW5vZGUubmV0IElSQyBjaGFubmVsIGZvciByYW5kb20gcXVlc3Rpb25zLgorCistIHByaXZhdGUg
bWFpbCB0byBIb2xnZXIuS3Jla2VsIGF0IGdtYWlsIGNvbSBpZiB5b3Ugd2FudCB0byBjb21tdW5p
Y2F0ZSBzZW5zaXRpdmUgaXNzdWVzCisKKworLSBgbWVybGludXguZXVgXyBvZmZlcnMgcHl0ZXN0
IGFuZCB0b3gtcmVsYXRlZCBwcm9mZXNzaW9uYWwgdGVhY2hpbmcgYW5kCisgIGNvbnN1bHRpbmcu
CisKKy4uIF9gcHl0ZXN0IGlzc3VlIHRyYWNrZXJgOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzCisuLiBfYG9sZCBpc3N1ZSB0cmFja2VyYDogaHR0cDovL2JpdGJ1
Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvaXNzdWVzLworCisuLiBfYG1lcmxpbnV4LmV1YDogaHR0
cDovL21lcmxpbnV4LmV1CisKKy4uIF9gZ2V0IGFuIGFjY291bnRgOgorCisuLiBfdGV0YW1hcDog
aHR0cDovL3RldGFtYXAud29yZHByZXNzLmNvbQorCisuLiBfYEBweWxpYmNvbW1pdGA6IGh0dHA6
Ly90d2l0dGVyLmNvbS9weWxpYmNvbW1pdAorCisKKy4uIF9gVGVzdGluZyBpbiBQeXRob25gOiBo
dHRwOi8vbGlzdHMuaWR5bGwub3JnL2xpc3RpbmZvL3Rlc3RpbmctaW4tcHl0aG9uCisuLiBfRk9B
RjogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GT0FGCisuLiBfYHB5LWRldmA6CisuLiBf
YGRldmVsb3BtZW50IG1haWxpbmcgbGlzdGA6CisuLiBfYHB5dGVzdC1kZXYgYXQgcHl0aG9uLm9y
ZyAobWFpbGluZyBsaXN0KWA6IGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5m
by9weXRlc3QtZGV2CisuLiBfYHB5dGVzdC1jb21taXQgYXQgcHl0aG9uLm9yZyAobWFpbGluZyBs
aXN0KWA6IGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9weXRlc3QtY29t
bWl0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250ZW50cy5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY29udGVudHMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNjU3MGUwYmM1YjkyNGUz
NDI4MjFhZWIxNmM2ZTIyOWZlYWFjOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vY29udGVudHMucnN0CkBAIC0wLDAgKzEsNjUgQEAKKy4uIF90b2M6CisKK0Z1bGwgcHl0
ZXN0IGRvY3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitgRG93bmxv
YWQgbGF0ZXN0IHZlcnNpb24gYXMgUERGIDxodHRwczovL21lZGlhLnJlYWR0aGVkb2NzLm9yZy9w
ZGYvcHl0ZXN0L2xhdGVzdC9weXRlc3QucGRmPmBfCisKKy4uIGBEb3dubG9hZCBsYXRlc3QgdmVy
c2lvbiBhcyBFUFVCIDxodHRwOi8vbWVkaWEucmVhZHRoZWRvY3Mub3JnL2VwdWIvcHl0ZXN0L2xh
dGVzdC9weXRlc3QuZXB1Yj5gXworCisuLiB0b2N0cmVlOjoKKyAgIDptYXhkZXB0aDogMgorCisg
ICBnZXR0aW5nLXN0YXJ0ZWQKKyAgIHVzYWdlCisgICBleGlzdGluZ3Rlc3RzdWl0ZQorICAgYXNz
ZXJ0CisgICBidWlsdGluCisgICBmaXh0dXJlCisgICBtb25rZXlwYXRjaAorICAgdG1wZGlyCisg
ICBjYXB0dXJlCisgICB3YXJuaW5ncworICAgZG9jdGVzdAorICAgbWFyaworICAgc2tpcHBpbmcK
KyAgIHBhcmFtZXRyaXplCisgICBjYWNoZQorICAgdW5pdHRlc3QKKyAgIG5vc2UKKyAgIHh1bml0
X3NldHVwCisgICBwbHVnaW5zCisgICB3cml0aW5nX3BsdWdpbnMKKyAgIGxvZ2dpbmcKKworICAg
Z29vZHByYWN0aWNlcworICAgcHl0aG9ucGF0aAorICAgY3VzdG9taXplCisgICBleGFtcGxlL2lu
ZGV4CisgICBiYXNoLWNvbXBsZXRpb24KKworICAgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkKKyAg
IGhpc3RvcmljYWwtbm90ZXMKKyAgIGxpY2Vuc2UKKyAgIGNvbnRyaWJ1dGluZworICAgZGV2ZWxv
cG1lbnRfZ3VpZGUKKyAgIHRhbGtzCisgICBwcm9qZWN0cworICAgZmFxCisgICBjb250YWN0CisK
Ky4uIG9ubHk6OiBodG1sCisKKyAgIC4uIHRvY3RyZWU6OgorICAgICAgOm1heGRlcHRoOiAxCisK
KyAgICAgIGFubm91bmNlL2luZGV4CisKKy4uIG9ubHk6OiBodG1sCisKKyAgIC4uIHRvY3RyZWU6
OgorICAgICAgOmhpZGRlbjoKKyAgICAgIDptYXhkZXB0aDogMQorCisgICAgICBjaGFuZ2Vsb2cK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRyaWJ1dGluZy5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY29udHJpYnV0aW5nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjY1NzhmNmI5Nzg4
MzM2MzY0OTY4YjhjM2I2YmY0YzVmY2JlNGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2NvbnRyaWJ1dGluZy5yc3QKQEAgLTAsMCArMSwzIEBACisuLiBfY29udHJpYnV0
aW5nOgorCisuLiBpbmNsdWRlOjogLi4vLi4vQ09OVFJJQlVUSU5HLnJzdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY3Vz
dG9taXplLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTMzNzA0YTUyYzJlNzFjNDM5ZTk4YzNiMzE5MmE0YjNm
ZDdjNWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5y
c3QKQEAgLTAsMCArMSwzMzMgQEAKK0NvbmZpZ3VyYXRpb24KKz09PT09PT09PT09PT0KKworQ29t
bWFuZCBsaW5lIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXR0aW5ncworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworWW91IGNhbiBnZXQgaGVscCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgdmFsdWVz
IGluIElOSS1zdHlsZQorY29uZmlndXJhdGlvbnMgZmlsZXMgYnkgdXNpbmcgdGhlIGdlbmVyYWwg
aGVscCBvcHRpb246OgorCisgICAgcHl0ZXN0IC1oICAgIyBwcmludHMgb3B0aW9ucyBfYW5kXyBj
b25maWcgZmlsZSBzZXR0aW5ncworCitUaGlzIHdpbGwgZGlzcGxheSBjb21tYW5kIGxpbmUgYW5k
IGNvbmZpZ3VyYXRpb24gZmlsZSBzZXR0aW5ncword2hpY2ggd2VyZSByZWdpc3RlcmVkIGJ5IGlu
c3RhbGxlZCBwbHVnaW5zLgorCisuLiBfcm9vdGRpcjoKKy4uIF9pbmlmaWxlczoKKworSW5pdGlh
bGl6YXRpb246IGRldGVybWluaW5nIHJvb3RkaXIgYW5kIGluaWZpbGUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDIu
NworCitweXRlc3QgZGV0ZXJtaW5lcyBhIGBgcm9vdGRpcmBgIGZvciBlYWNoIHRlc3QgcnVuIHdo
aWNoIGRlcGVuZHMgb24KK3RoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIChzcGVjaWZpZWQgdGVz
dCBmaWxlcywgcGF0aHMpIGFuZCBvbgordGhlIGV4aXN0ZW5jZSBvZiAqaW5pLWZpbGVzKi4gIFRo
ZSBkZXRlcm1pbmVkIGBgcm9vdGRpcmBgIGFuZCAqaW5pLWZpbGUqIGFyZQorcHJpbnRlZCBhcyBw
YXJ0IG9mIHRoZSBweXRlc3QgaGVhZGVyIGR1cmluZyBzdGFydHVwLgorCitIZXJlJ3MgYSBzdW1t
YXJ5IHdoYXQgYGBweXRlc3RgYCB1c2VzIGBgcm9vdGRpcmBgIGZvcjoKKworKiBDb25zdHJ1Y3Qg
Km5vZGVpZHMqIGR1cmluZyBjb2xsZWN0aW9uOyBlYWNoIHRlc3QgaXMgYXNzaWduZWQKKyAgYSB1
bmlxdWUgKm5vZGVpZCogd2hpY2ggaXMgcm9vdGVkIGF0IHRoZSBgYHJvb3RkaXJgYCBhbmQgdGFr
ZXMgaW4gYWNjb3VudCBmdWxsIHBhdGgsCisgIGNsYXNzIG5hbWUsIGZ1bmN0aW9uIG5hbWUgYW5k
IHBhcmFtZXRyaXphdGlvbiAoaWYgYW55KS4KKworKiBJcyB1c2VkIGJ5IHBsdWdpbnMgYXMgYSBz
dGFibGUgbG9jYXRpb24gdG8gc3RvcmUgcHJvamVjdC90ZXN0IHJ1biBzcGVjaWZpYyBpbmZvcm1h
dGlvbjsKKyAgZm9yIGV4YW1wbGUsIHRoZSBpbnRlcm5hbCA6cmVmOmBjYWNoZSA8Y2FjaGU+YCBw
bHVnaW4gY3JlYXRlcyBhIGBgLmNhY2hlYGAgc3ViZGlyZWN0b3J5CisgIGluIGBgcm9vdGRpcmBg
IHRvIHN0b3JlIGl0cyBjcm9zcy10ZXN0IHJ1biBzdGF0ZS4KKworSW1wb3J0YW50IHRvIGVtcGhh
c2l6ZSB0aGF0IGBgcm9vdGRpcmBgIGlzICoqTk9UKiogdXNlZCB0byBtb2RpZnkgYGBzeXMucGF0
aGBgL2BgUFlUSE9OUEFUSGBgIG9yCitpbmZsdWVuY2UgaG93IG1vZHVsZXMgYXJlIGltcG9ydGVk
LiBTZWUgOnJlZjpgcHl0aG9ucGF0aGAgZm9yIG1vcmUgZGV0YWlscy4KKworRmluZGluZyB0aGUg
YGByb290ZGlyYGAKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0hlcmUgaXMgdGhlIGFsZ29y
aXRobSB3aGljaCBmaW5kcyB0aGUgcm9vdGRpciBmcm9tIGBgYXJnc2BgOgorCistIGRldGVybWlu
ZSB0aGUgY29tbW9uIGFuY2VzdG9yIGRpcmVjdG9yeSBmb3IgdGhlIHNwZWNpZmllZCBgYGFyZ3Ng
YCB0aGF0IGFyZQorICByZWNvZ25pc2VkIGFzIHBhdGhzIHRoYXQgZXhpc3QgaW4gdGhlIGZpbGUg
c3lzdGVtLiBJZiBubyBzdWNoIHBhdGhzIGFyZQorICBmb3VuZCwgdGhlIGNvbW1vbiBhbmNlc3Rv
ciBkaXJlY3RvcnkgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgorCist
IGxvb2sgZm9yIGBgcHl0ZXN0LmluaWBgLCBgYHRveC5pbmlgYCBhbmQgYGBzZXR1cC5jZmdgYCBm
aWxlcyBpbiB0aGUgYW5jZXN0b3IKKyAgZGlyZWN0b3J5IGFuZCB1cHdhcmRzLiAgSWYgb25lIGlz
IG1hdGNoZWQsIGl0IGJlY29tZXMgdGhlIGluaS1maWxlIGFuZCBpdHMKKyAgZGlyZWN0b3J5IGJl
Y29tZXMgdGhlIHJvb3RkaXIuCisKKy0gaWYgbm8gaW5pLWZpbGUgd2FzIGZvdW5kLCBsb29rIGZv
ciBgYHNldHVwLnB5YGAgdXB3YXJkcyBmcm9tIHRoZSBjb21tb24KKyAgYW5jZXN0b3IgZGlyZWN0
b3J5IHRvIGRldGVybWluZSB0aGUgYGByb290ZGlyYGAuCisKKy0gaWYgbm8gYGBzZXR1cC5weWBg
IHdhcyBmb3VuZCwgbG9vayBmb3IgYGBweXRlc3QuaW5pYGAsIGBgdG94LmluaWBgIGFuZAorICBg
YHNldHVwLmNmZ2BgIGluIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBgYGFyZ3NgYCBhbmQgdXB3YXJk
cy4gSWYgb25lIGlzCisgIG1hdGNoZWQsIGl0IGJlY29tZXMgdGhlIGluaS1maWxlIGFuZCBpdHMg
ZGlyZWN0b3J5IGJlY29tZXMgdGhlIHJvb3RkaXIuCisKKy0gaWYgbm8gaW5pLWZpbGUgd2FzIGZv
dW5kLCB1c2UgdGhlIGFscmVhZHkgZGV0ZXJtaW5lZCBjb21tb24gYW5jZXN0b3IgYXMgcm9vdAor
ICBkaXJlY3RvcnkuIFRoaXMgYWxsb3dzIHRoZSB1c2Ugb2YgcHl0ZXN0IGluIHN0cnVjdHVyZXMg
dGhhdCBhcmUgbm90IHBhcnQgb2YKKyAgYSBwYWNrYWdlIGFuZCBkb24ndCBoYXZlIGFueSBwYXJ0
aWN1bGFyIGluaS1maWxlIGNvbmZpZ3VyYXRpb24uCisKK0lmIG5vIGBgYXJnc2BgIGFyZSBnaXZl
biwgcHl0ZXN0IGNvbGxlY3RzIHRlc3QgYmVsb3cgdGhlIGN1cnJlbnQgd29ya2luZworZGlyZWN0
b3J5IGFuZCBhbHNvIHN0YXJ0cyBkZXRlcm1pbmluZyB0aGUgcm9vdGRpciBmcm9tIHRoZXJlLgor
Cis6d2FybmluZzogY3VzdG9tIHB5dGVzdCBwbHVnaW4gY29tbWFuZGxpbmUgYXJndW1lbnRzIG1h
eSBpbmNsdWRlIGEgcGF0aCwgYXMgaW4KKyAgICBgYHB5dGVzdCAtLWxvZy1vdXRwdXQgLi4vLi4v
dGVzdC5sb2cgYXJnc2BgLiBUaGVuIGBgYXJnc2BgIGlzIG1hbmRhdG9yeSwKKyAgICBvdGhlcndp
c2UgcHl0ZXN0IHVzZXMgdGhlIGZvbGRlciBvZiB0ZXN0LmxvZyBmb3Igcm9vdGRpciBkZXRlcm1p
bmF0aW9uCisgICAgKHNlZSBhbHNvIGBpc3N1ZSAxNDM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MzU+YF8pLgorICAgIEEgZG90IGBgLmBgIGZvciByZWZl
cmVuY2luZyB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBpcyBhbHNvCisgICAgcG9z
c2libGUuCisKK05vdGUgdGhhdCBhbiBleGlzdGluZyBgYHB5dGVzdC5pbmlgYCBmaWxlIHdpbGwg
YWx3YXlzIGJlIGNvbnNpZGVyZWQgYSBtYXRjaCwKK3doZXJlYXMgYGB0b3guaW5pYGAgYW5kIGBg
c2V0dXAuY2ZnYGAgd2lsbCBvbmx5IG1hdGNoIGlmIHRoZXkgY29udGFpbiBhCitgYFtweXRlc3Rd
YGAgb3IgYGBbdG9vbDpweXRlc3RdYGAgc2VjdGlvbiwgcmVzcGVjdGl2ZWx5LiBPcHRpb25zIGZy
b20gbXVsdGlwbGUgaW5pLWZpbGVzIGNhbmRpZGF0ZXMgYXJlIG5ldmVyCittZXJnZWQgLSB0aGUg
Zmlyc3Qgb25lIHdpbnMgKGBgcHl0ZXN0LmluaWBgIGFsd2F5cyB3aW5zLCBldmVuIGlmIGl0IGRv
ZXMgbm90Citjb250YWluIGEgYGBbcHl0ZXN0XWBgIHNlY3Rpb24pLgorCitUaGUgYGBjb25maWdg
YCBvYmplY3Qgd2lsbCBzdWJzZXF1ZW50bHkgY2FycnkgdGhlc2UgYXR0cmlidXRlczoKKworLSBg
YGNvbmZpZy5yb290ZGlyYGA6IHRoZSBkZXRlcm1pbmVkIHJvb3QgZGlyZWN0b3J5LCBndWFyYW50
ZWVkIHRvIGV4aXN0LgorCistIGBgY29uZmlnLmluaWZpbGVgYDogdGhlIGRldGVybWluZWQgaW5p
LWZpbGUsIG1heSBiZSBgYE5vbmVgYC4KKworVGhlIHJvb3RkaXIgaXMgdXNlZCBhIHJlZmVyZW5j
ZSBkaXJlY3RvcnkgZm9yIGNvbnN0cnVjdGluZyB0ZXN0CithZGRyZXNzZXMgKCJub2RlaWRzIikg
YW5kIGNhbiBiZSB1c2VkIGFsc28gYnkgcGx1Z2lucyBmb3Igc3RvcmluZworcGVyLXRlc3RydW4g
aW5mb3JtYXRpb24uCisKK0V4YW1wbGU6OgorCisgICAgcHl0ZXN0IHBhdGgvdG8vdGVzdGRpciBw
YXRoL290aGVyLworCit3aWxsIGRldGVybWluZSB0aGUgY29tbW9uIGFuY2VzdG9yIGFzIGBgcGF0
aGBgIGFuZCB0aGVuCitjaGVjayBmb3IgaW5pLWZpbGVzIGFzIGZvbGxvd3M6OgorCisgICAgIyBm
aXJzdCBsb29rIGZvciBweXRlc3QuaW5pIGZpbGVzCisgICAgcGF0aC9weXRlc3QuaW5pCisgICAg
cGF0aC9zZXR1cC5jZmcgICMgbXVzdCBhbHNvIGNvbnRhaW4gW3Rvb2w6cHl0ZXN0XSBzZWN0aW9u
IHRvIG1hdGNoCisgICAgcGF0aC90b3guaW5pICAgICMgbXVzdCBhbHNvIGNvbnRhaW4gW3B5dGVz
dF0gc2VjdGlvbiB0byBtYXRjaAorICAgIHB5dGVzdC5pbmkKKyAgICAuLi4gIyBhbGwgdGhlIHdh
eSBkb3duIHRvIHRoZSByb290CisKKyAgICAjIG5vdyBsb29rIGZvciBzZXR1cC5weQorICAgIHBh
dGgvc2V0dXAucHkKKyAgICBzZXR1cC5weQorICAgIC4uLiAjIGFsbCB0aGUgd2F5IGRvd24gdG8g
dGhlIHJvb3QKKworCisuLiBfYGhvdyB0byBjaGFuZ2UgY29tbWFuZCBsaW5lIG9wdGlvbnMgZGVm
YXVsdHNgOgorLi4gX2BhZGRpbmcgZGVmYXVsdCBvcHRpb25zYDoKKworCisKK0hvdyB0byBjaGFu
Z2UgY29tbWFuZCBsaW5lIG9wdGlvbnMgZGVmYXVsdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJdCBjYW4gYmUgdGVkaW91cyB0byB0eXBlIHRo
ZSBzYW1lIHNlcmllcyBvZiBjb21tYW5kIGxpbmUgb3B0aW9ucworZXZlcnkgdGltZSB5b3UgdXNl
IGBgcHl0ZXN0YGAuICBGb3IgZXhhbXBsZSwgaWYgeW91IGFsd2F5cyB3YW50IHRvIHNlZQorZGV0
YWlsZWQgaW5mbyBvbiBza2lwcGVkIGFuZCB4ZmFpbGVkIHRlc3RzLCBhcyB3ZWxsIGFzIGhhdmUg
dGVyc2VyICJkb3QiCitwcm9ncmVzcyBvdXRwdXQsIHlvdSBjYW4gd3JpdGUgaXQgaW50byBhIGNv
bmZpZ3VyYXRpb24gZmlsZToKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgIyBjb250ZW50
IG9mIHB5dGVzdC5pbmkKKyAgICAjIChvciB0b3guaW5pIG9yIHNldHVwLmNmZykKKyAgICBbcHl0
ZXN0XQorICAgIGFkZG9wdHMgPSAtcmEgLXEKKworQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQg
YSBgYFBZVEVTVF9BRERPUFRTYGAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYWRkIGNvbW1hbmQK
K2xpbmUgb3B0aW9ucyB3aGlsZSB0aGUgZW52aXJvbm1lbnQgaXMgaW4gdXNlOjoKKworICAgIGV4
cG9ydCBQWVRFU1RfQURET1BUUz0iLXYiCisKK0hlcmUncyBob3cgdGhlIGNvbW1hbmQtbGluZSBp
cyBidWlsdCBpbiB0aGUgcHJlc2VuY2Ugb2YgYGBhZGRvcHRzYGAgb3IgdGhlIGVudmlyb25tZW50
IHZhcmlhYmxlOjoKKworICAgIDxweXRlc3QuaW5pOmFkZG9wdHM+ICRQWVRFU1RfQURET1RQUyA8
ZXh0cmEgY29tbWFuZC1saW5lIGFyZ3VtZW50cz4KKworU28gaWYgdGhlIHVzZXIgZXhlY3V0ZXMg
aW4gdGhlIGNvbW1hbmQtbGluZTo6CisKKyAgICBweXRlc3QgLW0gc2xvdworCitUaGUgYWN0dWFs
IGNvbW1hbmQgbGluZSBleGVjdXRlZCBpczo6CisKKyAgICBweXRlc3QgLXJhIC1xIC12IC1tIHNs
b3cKKworTm90ZSB0aGF0IGFzIHVzdWFsIGZvciBvdGhlciBjb21tYW5kLWxpbmUgYXBwbGljYXRp
b25zLCBpbiBjYXNlIG9mIGNvbmZsaWN0aW5nIG9wdGlvbnMgdGhlIGxhc3Qgb25lIHdpbnMsIHNv
IHRoZSBleGFtcGxlCithYm92ZSB3aWxsIHNob3cgdmVyYm9zZSBvdXRwdXQgYmVjYXVzZSBgYC12
YGAgb3ZlcndyaXRlcyBgYC1xYGAuCisKKworQnVpbHRpbiBjb25maWd1cmF0aW9uIGZpbGUgb3B0
aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisu
LiBjb25mdmFsOjogbWludmVyc2lvbgorCisgICBTcGVjaWZpZXMgYSBtaW5pbWFsIHB5dGVzdCB2
ZXJzaW9uIHJlcXVpcmVkIGZvciBydW5uaW5nIHRlc3RzLgorCisgICAgICAgIG1pbnZlcnNpb24g
PSAyLjEgICMgd2lsbCBmYWlsIGlmIHdlIHJ1biB3aXRoIHB5dGVzdC0yLjAKKworLi4gY29uZnZh
bDo6IGFkZG9wdHMKKworICAgQWRkIHRoZSBzcGVjaWZpZWQgYGBPUFRTYGAgdG8gdGhlIHNldCBv
ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFzIGlmIHRoZXkKKyAgIGhhZCBiZWVuIHNwZWNpZmll
ZCBieSB0aGUgdXNlci4gRXhhbXBsZTogaWYgeW91IGhhdmUgdGhpcyBpbmkgZmlsZSBjb250ZW50
OgorCisgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAg
YWRkb3B0cyA9IC0tbWF4ZmFpbD0yIC1yZiAgIyBleGl0IGFmdGVyIDIgZmFpbHVyZXMsIHJlcG9y
dCBmYWlsIGluZm8KKworICAgaXNzdWluZyBgYHB5dGVzdCB0ZXN0X2hlbGxvLnB5YGAgYWN0dWFs
bHkgbWVhbnM6OgorCisgICAgICAgIHB5dGVzdCAtLW1heGZhaWw9MiAtcmYgdGVzdF9oZWxsby5w
eQorCisgICBEZWZhdWx0IGlzIHRvIGFkZCBubyBvcHRpb25zLgorCisuLiBjb25mdmFsOjogbm9y
ZWN1cnNlZGlycworCisgICBTZXQgdGhlIGRpcmVjdG9yeSBiYXNlbmFtZSBwYXR0ZXJucyB0byBh
dm9pZCB3aGVuIHJlY3Vyc2luZworICAgZm9yIHRlc3QgZGlzY292ZXJ5LiAgVGhlIGluZGl2aWR1
YWwgKGZubWF0Y2gtc3R5bGUpIHBhdHRlcm5zIGFyZQorICAgYXBwbGllZCB0byB0aGUgYmFzZW5h
bWUgb2YgYSBkaXJlY3RvcnkgdG8gZGVjaWRlIGlmIHRvIHJlY3Vyc2UgaW50byBpdC4KKyAgIFBh
dHRlcm4gbWF0Y2hpbmcgY2hhcmFjdGVyczo6CisKKyAgICAgICAgKiAgICAgICBtYXRjaGVzIGV2
ZXJ5dGhpbmcKKyAgICAgICAgPyAgICAgICBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyCisg
ICAgICAgIFtzZXFdICAgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIGluIHNlcQorICAgICAgICBbIXNl
cV0gIG1hdGNoZXMgYW55IGNoYXIgbm90IGluIHNlcQorCisgICBEZWZhdWx0IHBhdHRlcm5zIGFy
ZSBgYCcuKicsICdidWlsZCcsICdkaXN0JywgJ0NWUycsICdfZGFyY3MnLCAne2FyY2h9JywgJyou
ZWdnJywgJ3ZlbnYnYGAuCisgICBTZXR0aW5nIGEgYGBub3JlY3Vyc2VkaXJzYGAgcmVwbGFjZXMg
dGhlIGRlZmF1bHQuICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YKKyAgIGhvdyB0byBhdm9pZCBjZXJ0
YWluIGRpcmVjdG9yaWVzOgorCisgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgIyBj
b250ZW50IG9mIHB5dGVzdC5pbmkKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgbm9yZWN1cnNl
ZGlycyA9IC5zdm4gX2J1aWxkIHRtcCoKKworICAgVGhpcyB3b3VsZCB0ZWxsIGBgcHl0ZXN0YGAg
dG8gbm90IGxvb2sgaW50byB0eXBpY2FsIHN1YnZlcnNpb24gb3IKKyAgIHNwaGlueC1idWlsZCBk
aXJlY3RvcmllcyBvciBpbnRvIGFueSBgYHRtcGBgIHByZWZpeGVkIGRpcmVjdG9yeS4gIAorICAg
CisgICBBZGRpdGlvbmFsbHksIGBgcHl0ZXN0YGAgd2lsbCBhdHRlbXB0IHRvIGludGVsbGlnZW50
bHkgaWRlbnRpZnkgYW5kIGlnbm9yZSBhCisgICB2aXJ0dWFsZW52IGJ5IHRoZSBwcmVzZW5jZSBv
ZiBhbiBhY3RpdmF0aW9uIHNjcmlwdC4gIEFueSBkaXJlY3RvcnkgZGVlbWVkIHRvCisgICBiZSB0
aGUgcm9vdCBvZiBhIHZpcnR1YWwgZW52aXJvbm1lbnQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBk
dXJpbmcgdGVzdAorICAgY29sbGVjdGlvbiB1bmxlc3MgYGDigJHigJFjb2xsZWN04oCRaW7igJF2
aXJ0dWFsZW52YGAgaXMgZ2l2ZW4uICBOb3RlIGFsc28gdGhhdAorICAgYGBub3JlY3Vyc2VkaXJz
YGAgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBg4oCR4oCRY29sbGVjdOKAkWlu4oCRdmlydHVhbGVu
dmBgOyBlLmcuIGlmCisgICB5b3UgaW50ZW5kIHRvIHJ1biB0ZXN0cyBpbiBhIHZpcnR1YWxlbnYg
d2l0aCBhIGJhc2UgZGlyZWN0b3J5IHRoYXQgbWF0Y2hlcworICAgYGAnLionYGAgeW91ICptdXN0
KiBvdmVycmlkZSBgYG5vcmVjdXJzZWRpcnNgYCBpbiBhZGRpdGlvbiB0byB1c2luZyB0aGUKKyAg
IGBg4oCR4oCRY29sbGVjdOKAkWlu4oCRdmlydHVhbGVudmBgIGZsYWcuCisKKy4uIGNvbmZ2YWw6
OiB0ZXN0cGF0aHMKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMi44CisKKyAgIFNldHMgbGlzdCBv
ZiBkaXJlY3RvcmllcyB0aGF0IHNob3VsZCBiZSBzZWFyY2hlZCBmb3IgdGVzdHMgd2hlbgorICAg
bm8gc3BlY2lmaWMgZGlyZWN0b3JpZXMsIGZpbGVzIG9yIHRlc3QgaWRzIGFyZSBnaXZlbiBpbiB0
aGUgY29tbWFuZCBsaW5lIHdoZW4KKyAgIGV4ZWN1dGluZyBweXRlc3QgZnJvbSB0aGUgOnJlZjpg
cm9vdGRpciA8cm9vdGRpcj5gIGRpcmVjdG9yeS4KKyAgIFVzZWZ1bCB3aGVuIGFsbCBwcm9qZWN0
IHRlc3RzIGFyZSBpbiBhIGtub3duIGxvY2F0aW9uIHRvIHNwZWVkIHVwCisgICB0ZXN0IGNvbGxl
Y3Rpb24gYW5kIHRvIGF2b2lkIHBpY2tpbmcgdXAgdW5kZXNpcmVkIHRlc3RzIGJ5IGFjY2lkZW50
LgorCisgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgIyBjb250ZW50IG9mIHB5dGVz
dC5pbmkKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgdGVzdHBhdGhzID0gdGVzdGluZyBkb2MK
KworICAgVGhpcyB0ZWxscyBweXRlc3QgdG8gb25seSBsb29rIGZvciB0ZXN0cyBpbiBgYHRlc3Rp
bmdgYCBhbmQgYGBkb2NgYAorICAgZGlyZWN0b3JpZXMgd2hlbiBleGVjdXRpbmcgZnJvbSB0aGUg
cm9vdCBkaXJlY3RvcnkuCisKKy4uIGNvbmZ2YWw6OiBweXRob25fZmlsZXMKKworICAgT25lIG9y
IG1vcmUgR2xvYi1zdHlsZSBmaWxlIHBhdHRlcm5zIGRldGVybWluaW5nIHdoaWNoIHB5dGhvbiBm
aWxlcworICAgYXJlIGNvbnNpZGVyZWQgYXMgdGVzdCBtb2R1bGVzLiBCeSBkZWZhdWx0LCBweXRl
c3Qgd2lsbCBjb25zaWRlcgorICAgYW55IGZpbGUgbWF0Y2hpbmcgd2l0aCBgYHRlc3RfKi5weWBg
IGFuZCBgYCpfdGVzdC5weWBgIGdsb2JzIGFzIGEgdGVzdAorICAgbW9kdWxlLgorCisuLiBjb25m
dmFsOjogcHl0aG9uX2NsYXNzZXMKKworICAgT25lIG9yIG1vcmUgbmFtZSBwcmVmaXhlcyBvciBn
bG9iLXN0eWxlIHBhdHRlcm5zIGRldGVybWluaW5nIHdoaWNoIGNsYXNzZXMKKyAgIGFyZSBjb25z
aWRlcmVkIGZvciB0ZXN0IGNvbGxlY3Rpb24uIEJ5IGRlZmF1bHQsIHB5dGVzdCB3aWxsIGNvbnNp
ZGVyIGFueQorICAgY2xhc3MgcHJlZml4ZWQgd2l0aCBgYFRlc3RgYCBhcyBhIHRlc3QgY29sbGVj
dGlvbi4gIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBob3cKKyAgIHRvIGNvbGxlY3QgdGVzdHMgZnJv
bSBjbGFzc2VzIHRoYXQgZW5kIGluIGBgU3VpdGVgYDoKKworICAgLi4gY29kZS1ibG9jazo6IGlu
aQorCisgICAgICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgICAgIFtweXRlc3RdCisg
ICAgICAgIHB5dGhvbl9jbGFzc2VzID0gKlN1aXRlCisKKyAgIE5vdGUgdGhhdCBgYHVuaXR0ZXN0
LlRlc3RDYXNlYGAgZGVyaXZlZCBjbGFzc2VzIGFyZSBhbHdheXMgY29sbGVjdGVkCisgICByZWdh
cmRsZXNzIG9mIHRoaXMgb3B0aW9uLCBhcyBgYHVuaXR0ZXN0YGAncyBvd24gY29sbGVjdGlvbiBm
cmFtZXdvcmsgaXMgdXNlZAorICAgdG8gY29sbGVjdCB0aG9zZSB0ZXN0cy4KKworLi4gY29uZnZh
bDo6IHB5dGhvbl9mdW5jdGlvbnMKKworICAgT25lIG9yIG1vcmUgbmFtZSBwcmVmaXhlcyBvciBn
bG9iLXBhdHRlcm5zIGRldGVybWluaW5nIHdoaWNoIHRlc3QgZnVuY3Rpb25zCisgICBhbmQgbWV0
aG9kcyBhcmUgY29uc2lkZXJlZCB0ZXN0cy4gQnkgZGVmYXVsdCwgcHl0ZXN0IHdpbGwgY29uc2lk
ZXIgYW55CisgICBmdW5jdGlvbiBwcmVmaXhlZCB3aXRoIGBgdGVzdGBgIGFzIGEgdGVzdC4gIEhl
cmUgaXMgYW4gZXhhbXBsZSBvZiBob3cKKyAgIHRvIGNvbGxlY3QgdGVzdCBmdW5jdGlvbnMgYW5k
IG1ldGhvZHMgdGhhdCBlbmQgaW4gYGBfdGVzdGBgOgorCisgICAuLiBjb2RlLWJsb2NrOjogaW5p
CisKKyAgICAgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAgICAgICAgW3B5dGVzdF0KKyAg
ICAgICAgcHl0aG9uX2Z1bmN0aW9ucyA9ICpfdGVzdAorCisgICBOb3RlIHRoYXQgdGhpcyBoYXMg
bm8gZWZmZWN0IG9uIG1ldGhvZHMgdGhhdCBsaXZlIG9uIGEgYGB1bml0dGVzdAorICAgLlRlc3RD
YXNlYGAgZGVyaXZlZCBjbGFzcywgYXMgYGB1bml0dGVzdGBgJ3Mgb3duIGNvbGxlY3Rpb24gZnJh
bWV3b3JrIGlzIHVzZWQKKyAgIHRvIGNvbGxlY3QgdGhvc2UgdGVzdHMuCisKKyAgIFNlZSA6cmVm
OmBjaGFuZ2UgbmFtaW5nIGNvbnZlbnRpb25zYCBmb3IgbW9yZSBkZXRhaWxlZCBleGFtcGxlcy4K
KworLi4gY29uZnZhbDo6IGRvY3Rlc3Rfb3B0aW9uZmxhZ3MKKworICAgT25lIG9yIG1vcmUgZG9j
dGVzdCBmbGFnIG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGBgZG9jdGVzdGBgIG1vZHVsZS4KKyAg
IDpkb2M6YFNlZSBob3cgcHl0ZXN0IGhhbmRsZXMgZG9jdGVzdHMgPGRvY3Rlc3Q+YC4KKworLi4g
Y29uZnZhbDo6IGNvbmZjdXRkaXIKKworICAgU2V0cyBhIGRpcmVjdG9yeSB3aGVyZSBzZWFyY2gg
dXB3YXJkcyBmb3IgYGBjb25mdGVzdC5weWBgIGZpbGVzIHN0b3BzLgorICAgQnkgZGVmYXVsdCwg
cHl0ZXN0IHdpbGwgc3RvcCBzZWFyY2hpbmcgZm9yIGBgY29uZnRlc3QucHlgYCBmaWxlcyB1cHdh
cmRzCisgICBmcm9tIGBgcHl0ZXN0LmluaWBgL2BgdG94LmluaWBgL2Bgc2V0dXAuY2ZnYGAgb2Yg
dGhlIHByb2plY3QgaWYgYW55LAorICAgb3IgdXAgdG8gdGhlIGZpbGUtc3lzdGVtIHJvb3QuCisK
KworLi4gY29uZnZhbDo6IGZpbHRlcndhcm5pbmdzCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMu
MQorCisgICBTZXRzIGEgbGlzdCBvZiBmaWx0ZXJzIGFuZCBhY3Rpb25zIHRoYXQgc2hvdWxkIGJl
IHRha2VuIGZvciBtYXRjaGVkCisgICB3YXJuaW5ncy4gQnkgZGVmYXVsdCBhbGwgd2FybmluZ3Mg
ZW1pdHRlZCBkdXJpbmcgdGhlIHRlc3Qgc2Vzc2lvbgorICAgd2lsbCBiZSBkaXNwbGF5ZWQgaW4g
YSBzdW1tYXJ5IGF0IHRoZSBlbmQgb2YgdGhlIHRlc3Qgc2Vzc2lvbi4KKworICAgLi4gY29kZS1i
bG9jazo6IGluaQorCisgICAgICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgICAgIFtw
eXRlc3RdCisgICAgICAgIGZpbHRlcndhcm5pbmdzID0KKyAgICAgICAgICAgIGVycm9yCisgICAg
ICAgICAgICBpZ25vcmU6OkRlcHJlY2F0aW9uV2FybmluZworCisgICBUaGlzIHRlbGxzIHB5dGVz
dCB0byBpZ25vcmUgZGVwcmVjYXRpb24gd2FybmluZ3MgYW5kIHR1cm4gYWxsIG90aGVyIHdhcm5p
bmdzCisgICBpbnRvIGVycm9ycy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHJlZmVyIHRv
IDpyZWY6YHdhcm5pbmdzYC4KKworLi4gY29uZnZhbDo6IGNhY2hlX2RpcgorCisgICAuLiB2ZXJz
aW9uYWRkZWQ6OiAzLjIKKworICAgU2V0cyBhIGRpcmVjdG9yeSB3aGVyZSBzdG9yZXMgY29udGVu
dCBvZiBjYWNoZSBwbHVnaW4uIERlZmF1bHQgZGlyZWN0b3J5IGlzCisgICBgYC5jYWNoZWBgIHdo
aWNoIGlzIGNyZWF0ZWQgaW4gOnJlZjpgcm9vdGRpciA8cm9vdGRpcj5gLiBEaXJlY3RvcnkgbWF5
IGJlCisgICByZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRoLiBJZiBzZXR0aW5nIHJlbGF0aXZlIHBh
dGgsIHRoZW4gZGlyZWN0b3J5IGlzIGNyZWF0ZWQKKyAgIHJlbGF0aXZlIHRvIDpyZWY6YHJvb3Rk
aXIgPHJvb3RkaXI+YC4gQWRkaXRpb25hbGx5IHBhdGggbWF5IGNvbnRhaW4gZW52aXJvbm1lbnQK
KyAgIHZhcmlhYmxlcywgdGhhdCB3aWxsIGJlIGV4cGFuZGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlv
biBhYm91dCBjYWNoZSBwbHVnaW4KKyAgIHBsZWFzZSByZWZlciB0byA6cmVmOmBjYWNoZV9wcm92
aWRlcmAuCisKKworLi4gY29uZnZhbDo6IGNvbnNvbGVfb3V0cHV0X3N0eWxlCisKKyAgIC4uIHZl
cnNpb25hZGRlZDo6IDMuMworCisgICBTZXRzIHRoZSBjb25zb2xlIG91dHB1dCBzdHlsZSB3aGls
ZSBydW5uaW5nIHRlc3RzOgorCisgICAqIGBgY2xhc3NpY2BgOiBjbGFzc2ljIHB5dGVzdCBvdXRw
dXQuCisgICAqIGBgcHJvZ3Jlc3NgYDogbGlrZSBjbGFzc2ljIHB5dGVzdCBvdXRwdXQsIGJ1dCB3
aXRoIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yLgorCisgICBUaGUgZGVmYXVsdCBpcyBgYHByb2dyZXNz
YGAsIGJ1dCB5b3UgY2FuIGZhbGxiYWNrIHRvIGBgY2xhc3NpY2BgIGlmIHlvdSBwcmVmZXIgb3IK
KyAgIHRoZSBuZXcgbW9kZSBpcyBjYXVzaW5nIHVuZXhwZWN0ZWQgcHJvYmxlbXM6CisKKyAgIC4u
IGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAg
ICAgICBbcHl0ZXN0XQorICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZSA9IGNsYXNzaWMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXZlbG9wbWVudF9ndWlkZS5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZGV2ZWxvcG1lbnRfZ3VpZGUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NWU5N2Rl
MGY5Y2UwOTBmMGE2MzQxMDc4YmEzMjI4N2JhMWE5ODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZGV2ZWxvcG1lbnRfZ3VpZGUucnN0CkBAIC0wLDAgKzEsMTA4IEBACis9
PT09PT09PT09PT09PT09PQorRGV2ZWxvcG1lbnQgR3VpZGUKKz09PT09PT09PT09PT09PT09CisK
K1NvbWUgZ2VuZXJhbCBndWlkZWxpbmVzIHJlZ2FyZGluZyBkZXZlbG9wbWVudCBpbiBweXRlc3Qg
Zm9yIGNvcmUgbWFpbnRhaW5lcnMgYW5kIGdlbmVyYWwgY29udHJpYnV0b3JzLiBOb3RoaW5nIGhl
cmUKK2lzIHNldCBpbiBzdG9uZSBhbmQgY2FuJ3QgYmUgY2hhbmdlZCwgZmVlbCBmcmVlIHRvIHN1
Z2dlc3QgaW1wcm92ZW1lbnRzIG9yIGNoYW5nZXMgaW4gdGhlIHdvcmtmbG93LgorCisKK0NvZGUg
U3R5bGUKKy0tLS0tLS0tLS0KKworKiBgUEVQLTggPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2
L3BlcHMvcGVwLTAwMDg+YF8KKyogYGZsYWtlOCA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9mbGFrZTg+YF8gZm9yIHF1YWxpdHkgY2hlY2tzCisqIGBpbnZva2UgPGh0dHA6Ly93d3cucHlp
bnZva2Uub3JnLz5gXyB0byBhdXRvbWF0ZSBkZXZlbG9wbWVudCB0YXNrcworCisKK0JyYW5jaGVz
CistLS0tLS0tLQorCitXZSBoYXZlIHR3byBsb25nIHRlcm0gYnJhbmNoZXM6CisKKyogYGBtYXN0
ZXJgYDogY29udGFpbnMgdGhlIGNvZGUgZm9yIHRoZSBuZXh0IGJ1Z2ZpeCByZWxlYXNlLgorKiBg
YGZlYXR1cmVzYGA6IGNvbnRhaW5zIHRoZSBjb2RlIHdpdGggbmV3IGZlYXR1cmVzIGZvciB0aGUg
bmV4dCBtaW5vciByZWxlYXNlLgorCitUaGUgb2ZmaWNpYWwgcmVwb3NpdG9yeSB1c3VhbGx5IGRv
ZXMgbm90IGNvbnRhaW4gdG9waWMgYnJhbmNoZXMsIGRldmVsb3BlcnMgYW5kIGNvbnRyaWJ1dG9y
cyBzaG91bGQgY3JlYXRlIHRvcGljCiticmFuY2hlcyBpbiB0aGVpciBvd24gZm9ya3MuCisKK0V4
Y2VwdGlvbnMgY2FuIGJlIG1hZGUgZm9yIGNhc2VzIHdoZXJlIG1vcmUgdGhhbiBvbmUgY29udHJp
YnV0b3IgaXMgd29ya2luZyBvbiB0aGUgc2FtZQordG9waWMgb3Igd2hlcmUgaXQgbWFrZXMgc2Vu
c2UgdG8gdXNlIHNvbWUgYXV0b21hdGljIGNhcGFiaWxpdHkgb2YgdGhlIG1haW4gcmVwb3NpdG9y
eSwgc3VjaCBhcyBhdXRvbWF0aWMgZG9jcyBmcm9tCitgcmVhZHRoZWRvY3MgPHJlYWR0aGVkb2Nz
Lm9yZz5gXyBmb3IgYSBicmFuY2ggZGVhbGluZyB3aXRoIGRvY3VtZW50YXRpb24gcmVmYWN0b3Jp
bmcuCisKK0lzc3VlcworLS0tLS0tCisKK0FueSBxdWVzdGlvbiwgZmVhdHVyZSwgYnVnIG9yIHBy
b3Bvc2FsIGlzIHdlbGNvbWUgYXMgYW4gaXNzdWUuIFVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHVz
ZSB0aGVtIHdoZW5ldmVyIHRoZXkgbmVlZC4KKworR2l0SHViIGlzc3VlcyBzaG91bGQgdXNlIGxh
YmVscyB0byBjYXRlZ29yaXplIHRoZW0uIExhYmVscyBzaG91bGQgYmUgY3JlYXRlZCBzcG9yYWRp
Y2FsbHksIHRvIGZpbGwgYSBuaWNoZTsgd2Ugc2hvdWxkCithdm9pZCBjcmVhdGluZyBsYWJlbHMg
anVzdCBmb3IgdGhlIHNha2Ugb2YgY3JlYXRpbmcgdGhlbS4KKworSGVyZSBpcyBhIGxpc3Qgb2Yg
bGFiZWxzIGFuZCBhIGJyaWVmIGRlc2NyaXB0aW9uIG1lbnRpb25pbmcgdGhlaXIgaW50ZW50Lgor
CisKKyoqVHlwZSoqCisKKyogYGB0eXBlOiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YGA6IGlzc3Vl
IHRoYXQgd2lsbCBjYXVzZSBwcm9ibGVtcyB3aXRoIG9sZCBweXRlc3QgdmVyc2lvbnMuCisqIGBg
dHlwZTogYnVnYGA6IHByb2JsZW0gdGhhdCBuZWVkcyB0byBiZSBhZGRyZXNzZWQuCisqIGBgdHlw
ZTogZGVwcmVjYXRpb25gYDogZmVhdHVyZSB0aGF0IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiB0aGUg
ZnV0dXJlLgorKiBgYHR5cGU6IGRvY3NgYDogZG9jdW1lbnRhdGlvbiBtaXNzaW5nIG9yIG5lZWRp
bmcgY2xhcmlmaWNhdGlvbi4KKyogYGB0eXBlOiBlbmhhbmNlbWVudGBgOiBuZXcgZmVhdHVyZSBv
ciBBUEkgY2hhbmdlLCBzaG91bGQgYmUgbWVyZ2VkIGludG8gYGBmZWF0dXJlc2BgLgorKiBgYHR5
cGU6IGZlYXR1cmUtYnJhbmNoYGA6IG5ldyBmZWF0dXJlIG9yIEFQSSBjaGFuZ2UsIHNob3VsZCBi
ZSBtZXJnZWQgaW50byBgYGZlYXR1cmVzYGAuCisqIGBgdHlwZTogaW5mcmFzdHJ1Y3R1cmVgYDog
aW1wcm92ZW1lbnQgdG8gZGV2ZWxvcG1lbnQvcmVsZWFzZXMvQ0kgc3RydWN0dXJlLgorKiBgYHR5
cGU6IHBlcmZvcm1hbmNlYGA6IHBlcmZvcm1hbmNlIG9yIG1lbW9yeSBwcm9ibGVtL2ltcHJvdmVt
ZW50LgorKiBgYHR5cGU6IHByb3Bvc2FsYGA6IHByb3Bvc2FsIGZvciBhIG5ldyBmZWF0dXJlLCBv
ZnRlbiB0byBnYXRoZXIgb3BpbmlvbnMgb3IgZGVzaWduIHRoZSBBUEkgYXJvdW5kIHRoZSBuZXcg
ZmVhdHVyZS4KKyogYGB0eXBlOiBxdWVzdGlvbmBgOiBxdWVzdGlvbiByZWdhcmRpbmcgdXNhZ2Us
IGluc3RhbGxhdGlvbiwgaW50ZXJuYWxzIG9yIGhvdyB0byB0ZXN0IHNvbWV0aGluZy4KKyogYGB0
eXBlOiByZWZhY3RvcmluZ2BgOiBpbnRlcm5hbCBpbXByb3ZlbWVudHMgdG8gdGhlIGNvZGUuCisq
IGBgdHlwZTogcmVncmVzc2lvbmBgOiBpbmRpY2F0ZXMgYSBwcm9ibGVtIHRoYXQgd2FzIGludHJv
ZHVjZWQgaW4gYSByZWxlYXNlIHdoaWNoIHdhcyB3b3JraW5nIHByZXZpb3VzbHkuCisKKyoqU3Rh
dHVzKioKKworKiBgYHN0YXR1czogY3JpdGljYWxgYDogZ3JhdmUgcHJvYmxlbSBvciB1c2FiaWxp
dHkgaXNzdWUgdGhhdCBhZmZlY3RzIGxvdHMgb2YgdXNlcnMuCisqIGBgc3RhdHVzOiBlYXN5YGA6
IGVhc3kgaXNzdWUgdGhhdCBpcyBmcmllbmRseSB0byBuZXcgY29udHJpYnV0b3JzLgorKiBgYHN0
YXR1czogaGVscCB3YW50ZWRgYDogY29yZSBkZXZlbG9wZXJzIG5lZWQgaGVscCBmcm9tIGV4cGVy
dHMgb24gdGhpcyB0b3BpYy4KKyogYGBzdGF0dXM6IG5lZWRzIGluZm9ybWF0aW9uYGA6IHJlcG9y
dGVyIG5lZWRzIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbjsgY2FuIGJlIGNsb3NlZCBhZnRl
ciAyIG9yIG1vcmUgd2Vla3Mgb2YgaW5hY3Rpdml0eS4KKworKipUb3BpYyoqCisKKyogYGB0b3Bp
YzogY29sbGVjdGlvbmBgCisqIGBgdG9waWM6IGZpeHR1cmVzYGAKKyogYGB0b3BpYzogcGFyYW1l
dHJpemVgYAorKiBgYHRvcGljOiByZXBvcnRpbmdgYAorKiBgYHRvcGljOiBzZWxlY3Rpb25gYAor
KiBgYHRvcGljOiB0cmFjZWJhY2tzYGAKKworKipQbHVnaW4gKGludGVybmFsIG9yIGV4dGVybmFs
KSoqCisKKyogYGBwbHVnaW46IGNhY2hlYGAKKyogYGBwbHVnaW46IGNhcHR1cmVgYAorKiBgYHBs
dWdpbjogZG9jdGVzdHNgYAorKiBgYHBsdWdpbjoganVuaXR4bWxgYAorKiBgYHBsdWdpbjogbW9u
a2V5cGF0Y2hgYAorKiBgYHBsdWdpbjogbm9zZWBgCisqIGBgcGx1Z2luOiBwYXN0ZWJpbmBgCisq
IGBgcGx1Z2luOiBweXRlc3RlcmBgCisqIGBgcGx1Z2luOiB0bXBkaXJgYAorKiBgYHBsdWdpbjog
dW5pdHRlc3RgYAorKiBgYHBsdWdpbjogd2FybmluZ3NgYAorKiBgYHBsdWdpbjogeGRpc3RgYAor
CisKKyoqT1MqKgorCitJc3N1ZXMgc3BlY2lmaWMgdG8gYSBzaW5nbGUgb3BlcmF0aW5nIHN5c3Rl
bS4gRG8gbm90IHVzZSBhcyBhIG1lYW5zIHRvIGluZGljYXRlIHdoZXJlIGFuIGlzc3VlIG9yaWdp
bmF0ZWQgZnJvbSwgb25seQorZm9yIHByb2JsZW1zIHRoYXQgaGFwcGVuICoqb25seSoqIGluIHRo
YXQgc3lzdGVtLgorCisqIGBgb3M6IGxpbnV4YGAKKyogYGBvczogbWFjYGAKKyogYGBvczogd2lu
ZG93c2BgCisKKyoqVGVtcG9yYXJ5KioKKworVXNlZCB0byBjbGFzc2lmeSBpc3N1ZXMgZm9yIGxp
bWl0ZWQgdGltZSwgdG8gaGVscCBmaW5kIGlzc3VlcyByZWxhdGVkIGluIGV2ZW50cyBmb3IgZXhh
bXBsZS4KK1RoZXkgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgdGhleSBhcmUgbm8gbG9uZ2VyIHJl
bGV2YW50LgorCisqIGBgdGVtcG9yYXJ5OiBFUDIwMTcgc3ByaW50YGA6CisqIGBgdGVtcG9yYXJ5
OiBzcHJpbnQtY2FuZGlkYXRlYGA6CisKKworLi4gaW5jbHVkZTo6IC4uLy4uL0hPV1RPUkVMRUFT
RS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzVhODc4ZGQ2MTNlYWYyNDI3
ZGE0ZWEzM2RkNDhmYjI5ZTYwYzMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2RvY3Rlc3QucnN0CkBAIC0wLDAgKzEsMTY1IEBACisKK0RvY3Rlc3QgaW50ZWdyYXRpb24g
Zm9yIG1vZHVsZXMgYW5kIHRlc3QgZmlsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitCeSBkZWZhdWx0IGFsbCBmaWxlcyBtYXRj
aGluZyB0aGUgYGB0ZXN0Ki50eHRgYCBwYXR0ZXJuIHdpbGwKK2JlIHJ1biB0aHJvdWdoIHRoZSBw
eXRob24gc3RhbmRhcmQgYGBkb2N0ZXN0YGAgbW9kdWxlLiAgWW91CitjYW4gY2hhbmdlIHRoZSBw
YXR0ZXJuIGJ5IGlzc3Vpbmc6OgorCisgICAgcHl0ZXN0IC0tZG9jdGVzdC1nbG9iPScqLnJzdCcK
Kworb24gdGhlIGNvbW1hbmQgbGluZS4gU2luY2UgdmVyc2lvbiBgYDIuOWBgLCBgYC0tZG9jdGVz
dC1nbG9iYGAKK2NhbiBiZSBnaXZlbiBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgY29tbWFuZC1saW5l
LgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKworICAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgZW5j
b2RpbmcgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRob3NlIGRvY3Rlc3QgZmlsZXMKKyAgICB1c2lu
ZyB0aGUgYGBkb2N0ZXN0X2VuY29kaW5nYGAgaW5pIG9wdGlvbjoKKworICAgIC4uIGNvZGUtYmxv
Y2s6OiBpbmkKKworICAgICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAgICAgICBbcHl0
ZXN0XQorICAgICAgICBkb2N0ZXN0X2VuY29kaW5nID0gbGF0aW4xCisKKyAgICBUaGUgZGVmYXVs
dCBlbmNvZGluZyBpcyBVVEYtOC4KKworWW91IGNhbiBhbHNvIHRyaWdnZXIgcnVubmluZyBvZiBk
b2N0ZXN0cworZnJvbSBkb2NzdHJpbmdzIGluIGFsbCBweXRob24gbW9kdWxlcyAoaW5jbHVkaW5n
IHJlZ3VsYXIKK3B5dGhvbiB0ZXN0IG1vZHVsZXMpOjoKKworICAgIHB5dGVzdCAtLWRvY3Rlc3Qt
bW9kdWxlcworCitZb3UgY2FuIG1ha2UgdGhlc2UgY2hhbmdlcyBwZXJtYW5lbnQgaW4geW91ciBw
cm9qZWN0IGJ5CitwdXR0aW5nIHRoZW0gaW50byBhIHB5dGVzdC5pbmkgZmlsZSBsaWtlIHRoaXM6
CisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisg
ICAgW3B5dGVzdF0KKyAgICBhZGRvcHRzID0gLS1kb2N0ZXN0LW1vZHVsZXMKKworSWYgeW91IHRo
ZW4gaGF2ZSBhIHRleHQgZmlsZSBsaWtlIHRoaXM6OgorCisgICAgIyBjb250ZW50IG9mIGV4YW1w
bGUucnN0CisKKyAgICBoZWxsbyB0aGlzIGlzIGEgZG9jdGVzdAorICAgID4+PiB4ID0gMworICAg
ID4+PiB4CisgICAgMworCithbmQgYW5vdGhlciBsaWtlIHRoaXM6OgorCisgICAgIyBjb250ZW50
IG9mIG15bW9kdWxlLnB5CisgICAgZGVmIHNvbWV0aGluZygpOgorICAgICAgICAiIiIgYSBkb2N0
ZXN0IGluIGEgZG9jc3RyaW5nCisgICAgICAgID4+PiBzb21ldGhpbmcoKQorICAgICAgICA0Mgor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIDQyCisKK3RoZW4geW91IGNhbiBqdXN0IGludm9r
ZSBgYHB5dGVzdGBgIHdpdGhvdXQgY29tbWFuZCBsaW5lIG9wdGlvbnM6OgorCisgICAgJCBweXRl
c3QKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29sbGVjdGVkIDEg
aXRlbQorICAgIAorICAgIG15bW9kdWxlLnB5IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09
PT09PT09PT0KKworSXQgaXMgcG9zc2libGUgdG8gdXNlIGZpeHR1cmVzIHVzaW5nIHRoZSBgYGdl
dGZpeHR1cmVgYCBoZWxwZXI6OgorCisgICAgIyBjb250ZW50IG9mIGV4YW1wbGUucnN0CisgICAg
Pj4+IHRtcCA9IGdldGZpeHR1cmUoJ3RtcGRpcicpCisgICAgPj4+IC4uLgorICAgID4+PgorCitB
bHNvLCA6cmVmOmB1c2VmaXh0dXJlc2AgYW5kIDpyZWY6YGF1dG91c2VgIGZpeHR1cmVzIGFyZSBz
dXBwb3J0ZWQKK3doZW4gZXhlY3V0aW5nIHRleHQgZG9jdGVzdCBmaWxlcy4KKworVGhlIHN0YW5k
YXJkIGBgZG9jdGVzdGBgIG1vZHVsZSBwcm92aWRlcyBzb21lIHNldHRpbmcgZmxhZ3MgdG8gY29u
ZmlndXJlIHRoZQorc3RyaWN0bmVzcyBvZiBkb2N0ZXN0IHRlc3RzLiBJbiBweXRlc3QgWW91IGNh
biBlbmFibGUgdGhvc2UgZmxhZ3MgdGhvc2UgZmxhZ3MKK3VzaW5nIHRoZSBjb25maWd1cmF0aW9u
IGZpbGUuIFRvIG1ha2UgcHl0ZXN0IGlnbm9yZSB0cmFpbGluZyB3aGl0ZXNwYWNlcyBhbmQKK2ln
bm9yZSBsZW5ndGh5IGV4Y2VwdGlvbiBzdGFjayB0cmFjZXMgeW91IGNhbiBqdXN0IHdyaXRlOgor
CisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICBbcHl0ZXN0XQorICAgIGRvY3Rlc3Rfb3B0aW9u
ZmxhZ3M9IE5PUk1BTElaRV9XSElURVNQQUNFIElHTk9SRV9FWENFUFRJT05fREVUQUlMCisKK3B5
dGVzdCBhbHNvIGludHJvZHVjZXMgbmV3IG9wdGlvbnMgdG8gYWxsb3cgZG9jdGVzdHMgdG8gcnVu
IGluIFB5dGhvbiAyIGFuZAorUHl0aG9uIDMgdW5jaGFuZ2VkOgorCisqIGBgQUxMT1dfVU5JQ09E
RWBgOiB3aGVuIGVuYWJsZWQsIHRoZSBgYHVgYCBwcmVmaXggaXMgc3RyaXBwZWQgZnJvbSB1bmlj
b2RlCisgIHN0cmluZ3MgaW4gZXhwZWN0ZWQgZG9jdGVzdCBvdXRwdXQuCisKKyogYGBBTExPV19C
WVRFU2BgOiB3aGVuIGVuYWJsZWQsIHRoZSBgYGJgYCBwcmVmaXggaXMgc3RyaXBwZWQgZnJvbSBi
eXRlIHN0cmluZ3MKKyAgaW4gZXhwZWN0ZWQgZG9jdGVzdCBvdXRwdXQuCisKK0FzIHdpdGggYW55
IG90aGVyIG9wdGlvbiBmbGFnLCB0aGVzZSBmbGFncyBjYW4gYmUgZW5hYmxlZCBpbiBgYHB5dGVz
dC5pbmlgYCB1c2luZwordGhlIGBgZG9jdGVzdF9vcHRpb25mbGFnc2BgIGluaSBvcHRpb246CisK
Ky4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgIFtweXRlc3RdCisgICAgZG9jdGVzdF9vcHRpb25m
bGFncyA9IEFMTE9XX1VOSUNPREUgQUxMT1dfQllURVMKKworCitBbHRlcm5hdGl2ZWx5LCBpdCBj
YW4gYmUgZW5hYmxlZCBieSBhbiBpbmxpbmUgY29tbWVudCBpbiB0aGUgZG9jIHRlc3QKK2l0c2Vs
Zjo6CisKKyAgICAjIGNvbnRlbnQgb2YgZXhhbXBsZS5yc3QKKyAgICA+Pj4gZ2V0X3VuaWNvZGVf
Z3JlZXRpbmcoKSAgIyBkb2N0ZXN0OiArQUxMT1dfVU5JQ09ERQorICAgICdIZWxsbycKKworCitU
aGUgJ2RvY3Rlc3RfbmFtZXNwYWNlJyBmaXh0dXJlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMAorCitUaGUgYGBkb2N0ZXN0X25hbWVzcGFj
ZWBgIGZpeHR1cmUgY2FuIGJlIHVzZWQgdG8gaW5qZWN0IGl0ZW1zIGludG8gdGhlCituYW1lc3Bh
Y2UgaW4gd2hpY2ggeW91ciBkb2N0ZXN0cyBydW4uIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQg
d2l0aGluCit5b3VyIG93biBmaXh0dXJlcyB0byBwcm92aWRlIHRoZSB0ZXN0cyB0aGF0IHVzZSB0
aGVtIHdpdGggY29udGV4dC4KKworYGBkb2N0ZXN0X25hbWVzcGFjZWBgIGlzIGEgc3RhbmRhcmQg
YGBkaWN0YGAgb2JqZWN0IGludG8gd2hpY2ggeW91CitwbGFjZSB0aGUgb2JqZWN0cyB5b3Ugd2Fu
dCB0byBhcHBlYXIgaW4gdGhlIGRvY3Rlc3QgbmFtZXNwYWNlOjoKKworICAgICMgY29udGVudCBv
ZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBudW1weQorICAgIEBweXRlc3QuZml4dHVyZShhdXRv
dXNlPVRydWUpCisgICAgZGVmIGFkZF9ucChkb2N0ZXN0X25hbWVzcGFjZSk6CisgICAgICAgIGRv
Y3Rlc3RfbmFtZXNwYWNlWyducCddID0gbnVtcHkKKword2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBp
biB5b3VyIGRvY3Rlc3RzIGRpcmVjdGx5OjoKKworICAgICMgY29udGVudCBvZiBudW1weS5weQor
ICAgIGRlZiBhcmFuZ2UoKToKKyAgICAgICAgIiIiCisgICAgICAgID4+PiBhID0gbnAuYXJhbmdl
KDEwKQorICAgICAgICA+Pj4gbGVuKGEpCisgICAgICAgIDEwCisgICAgICAgICIiIgorICAgICAg
ICBwYXNzCisKKworT3V0cHV0IGZvcm1hdAorLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjAKKworWW91IGNhbiBjaGFuZ2UgdGhlIGRpZmYgb3V0cHV0IGZvcm1hdCBvbiBmYWls
dXJlIGZvciB5b3VyIGRvY3Rlc3RzCitieSB1c2luZyBvbmUgb2Ygc3RhbmRhcmQgZG9jdGVzdCBt
b2R1bGVzIGZvcm1hdCBpbiBvcHRpb25zCisoc2VlIDpkYXRhOmBweXRob246ZG9jdGVzdC5SRVBP
UlRfVURJRkZgLCA6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JUX0NESUZGYCwKKzpkYXRhOmBw
eXRob246ZG9jdGVzdC5SRVBPUlRfTkRJRkZgLCA6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JU
X09OTFlfRklSU1RfRkFJTFVSRWApOjoKKworICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAt
LWRvY3Rlc3QtcmVwb3J0IG5vbmUKKyAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0
ZXN0LXJlcG9ydCB1ZGlmZgorICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3Qt
cmVwb3J0IGNkaWZmCisgICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBv
cnQgbmRpZmYKKyAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBv
bmx5X2ZpcnN0X2ZhaWx1cmUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hc3NlcnRpb24vZmFpbHVyZV9kZW1vLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzFmYmEyYWRhYTJlOGM4
ODFiNzdlZTE1NGE4MzFiNTFiNzVlYzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weQpAQCAtMCwwICsxLDIzOCBA
QAorZnJvbSBweXRlc3QgaW1wb3J0IHJhaXNlcworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9y
dCBweQorCitkZWYgb3RoZXJmdW5jKGEsYik6CisgICAgYXNzZXJ0IGE9PWIKKworZGVmIHNvbWVm
dW5jKHgseSk6CisgICAgb3RoZXJmdW5jKHgseSkKKworZGVmIG90aGVyZnVuY19tdWx0aShhLGIp
OgorICAgIGFzc2VydCAoYSA9PQorICAgICAgICAgICAgYikKKworZGVmIHRlc3RfZ2VuZXJhdGl2
ZShwYXJhbTEsIHBhcmFtMik6CisgICAgYXNzZXJ0IHBhcmFtMSAqIDIgPCBwYXJhbTIKKworZGVm
IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgaWYgJ3BhcmFtMScgaW4gbWV0
YWZ1bmMuZml4dHVyZW5hbWVzOgorICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGZ1bmNhcmdzPWRp
Y3QocGFyYW0xPTMsIHBhcmFtMj02KSkKKworY2xhc3MgVGVzdEZhaWxpbmcob2JqZWN0KToKKyAg
ICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBy
ZXR1cm4gNDIKKyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHJldHVybiA0MworCisgICAg
ICAgIGFzc2VydCBmKCkgPT0gZygpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfbXVsdGlsaW5lKHNl
bGYpOgorICAgICAgICBvdGhlcmZ1bmNfbXVsdGkoCisgICAgICAgICAgICAgICAgICA0MiwKKyAg
ICAgICAgICAgICAgICAgIDYqOSkKKworICAgIGRlZiB0ZXN0X25vdChzZWxmKToKKyAgICAgICAg
ZGVmIGYoKToKKyAgICAgICAgICAgIHJldHVybiA0MgorICAgICAgICBhc3NlcnQgbm90IGYoKQor
CitjbGFzcyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMob2JqZWN0KToKKyAgICBkZWYgdGVz
dF9lcV90ZXh0KHNlbGYpOgorICAgICAgICBhc3NlcnQgJ3NwYW0nID09ICdlZ2dzJworCisgICAg
ZGVmIHRlc3RfZXFfc2ltaWxhcl90ZXh0KHNlbGYpOgorICAgICAgICBhc3NlcnQgJ2ZvbyAxIGJh
cicgPT0gJ2ZvbyAyIGJhcicKKworICAgIGRlZiB0ZXN0X2VxX211bHRpbGluZV90ZXh0KHNlbGYp
OgorICAgICAgICBhc3NlcnQgJ2Zvb1xuc3BhbVxuYmFyJyA9PSAnZm9vXG5lZ2dzXG5iYXInCisK
KyAgICBkZWYgdGVzdF9lcV9sb25nX3RleHQoc2VsZik6CisgICAgICAgIGEgPSAnMScqMTAwICsg
J2EnICsgJzInKjEwMAorICAgICAgICBiID0gJzEnKjEwMCArICdiJyArICcyJyoxMDAKKyAgICAg
ICAgYXNzZXJ0IGEgPT0gYgorCisgICAgZGVmIHRlc3RfZXFfbG9uZ190ZXh0X211bHRpbGluZShz
ZWxmKToKKyAgICAgICAgYSA9ICcxXG4nKjEwMCArICdhJyArICcyXG4nKjEwMAorICAgICAgICBi
ID0gJzFcbicqMTAwICsgJ2InICsgJzJcbicqMTAwCisgICAgICAgIGFzc2VydCBhID09IGIKKwor
ICAgIGRlZiB0ZXN0X2VxX2xpc3Qoc2VsZik6CisgICAgICAgIGFzc2VydCBbMCwgMSwgMl0gPT0g
WzAsIDEsIDNdCisKKyAgICBkZWYgdGVzdF9lcV9saXN0X2xvbmcoc2VsZik6CisgICAgICAgIGEg
PSBbMF0qMTAwICsgWzFdICsgWzNdKjEwMAorICAgICAgICBiID0gWzBdKjEwMCArIFsyXSArIFsz
XSoxMDAKKyAgICAgICAgYXNzZXJ0IGEgPT0gYgorCisgICAgZGVmIHRlc3RfZXFfZGljdChzZWxm
KToKKyAgICAgICAgYXNzZXJ0IHsnYSc6IDAsICdiJzogMSwgJ2MnOiAwfSA9PSB7J2EnOiAwLCAn
Yic6IDIsICdkJzogMH0KKworICAgIGRlZiB0ZXN0X2VxX3NldChzZWxmKToKKyAgICAgICAgYXNz
ZXJ0IHNldChbMCwgMTAsIDExLCAxMl0pID09IHNldChbMCwgMjAsIDIxXSkKKworICAgIGRlZiB0
ZXN0X2VxX2xvbmdlcl9saXN0KHNlbGYpOgorICAgICAgICBhc3NlcnQgWzEsMl0gPT0gWzEsMiwz
XQorCisgICAgZGVmIHRlc3RfaW5fbGlzdChzZWxmKToKKyAgICAgICAgYXNzZXJ0IDEgaW4gWzAs
IDIsIDMsIDQsIDVdCisKKyAgICBkZWYgdGVzdF9ub3RfaW5fdGV4dF9tdWx0aWxpbmUoc2VsZik6
CisgICAgICAgIHRleHQgPSAnc29tZSBtdWx0aWxpbmVcbnRleHRcbndoaWNoXG5pbmNsdWRlcyBm
b29cbmFuZCBhXG50YWlsJworICAgICAgICBhc3NlcnQgJ2Zvbycgbm90IGluIHRleHQKKworICAg
IGRlZiB0ZXN0X25vdF9pbl90ZXh0X3NpbmdsZShzZWxmKToKKyAgICAgICAgdGV4dCA9ICdzaW5n
bGUgZm9vIGxpbmUnCisgICAgICAgIGFzc2VydCAnZm9vJyBub3QgaW4gdGV4dAorCisgICAgZGVm
IHRlc3Rfbm90X2luX3RleHRfc2luZ2xlX2xvbmcoc2VsZik6CisgICAgICAgIHRleHQgPSAnaGVh
ZCAnICogNTAgKyAnZm9vICcgKyAndGFpbCAnICogMjAKKyAgICAgICAgYXNzZXJ0ICdmb28nIG5v
dCBpbiB0ZXh0CisKKyAgICBkZWYgdGVzdF9ub3RfaW5fdGV4dF9zaW5nbGVfbG9uZ190ZXJtKHNl
bGYpOgorICAgICAgICB0ZXh0ID0gJ2hlYWQgJyAqIDUwICsgJ2YnKjcwICsgJ3RhaWwgJyAqIDIw
CisgICAgICAgIGFzc2VydCAnZicqNzAgbm90IGluIHRleHQKKworCitkZWYgdGVzdF9hdHRyaWJ1
dGUoKToKKyAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgYiA9IDEKKyAgICBpID0gRm9v
KCkKKyAgICBhc3NlcnQgaS5iID09IDIKKworCitkZWYgdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2Uo
KToKKyAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgYiA9IDEKKyAgICBhc3NlcnQgRm9v
KCkuYiA9PSAyCisKKworZGVmIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUoKToKKyAgICBjbGFzcyBG
b28ob2JqZWN0KToKKyAgICAgICAgZGVmIF9nZXRfYihzZWxmKToKKyAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignRmFpbGVkIHRvIGdldCBhdHRyaWInKQorICAgICAgICBiID0gcHJvcGVydHko
X2dldF9iKQorICAgIGkgPSBGb28oKQorICAgIGFzc2VydCBpLmIgPT0gMgorCisKK2RlZiB0ZXN0
X2F0dHJpYnV0ZV9tdWx0aXBsZSgpOgorICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICBi
ID0gMQorICAgIGNsYXNzIEJhcihvYmplY3QpOgorICAgICAgICBiID0gMgorICAgIGFzc2VydCBG
b28oKS5iID09IEJhcigpLmIKKworCitkZWYgZ2xvYmYoeCk6CisgICAgcmV0dXJuIHgrMQorCitj
bGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfcmFpc2VzKHNlbGYpOgorICAg
ICAgICBzID0gJ3F3ZScKKyAgICAgICAgcmFpc2VzKFR5cGVFcnJvciwgImludChzKSIpCisKKyAg
ICBkZWYgdGVzdF9yYWlzZXNfZG9lc250KHNlbGYpOgorICAgICAgICByYWlzZXMoSU9FcnJvciwg
ImludCgnMycpIikKKworICAgIGRlZiB0ZXN0X3JhaXNlKHNlbGYpOgorICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJkZW1vIGVycm9yIikKKworICAgIGRlZiB0ZXN0X3R1cGxlZXJyb3Ioc2VsZik6
CisgICAgICAgIGEsYiA9IFsxXQorCisgICAgZGVmIHRlc3RfcmVpbnRlcnByZXRfZmFpbHNfd2l0
aF9wcmludF9mb3JfdGhlX2Z1bl9vZl9pdChzZWxmKToKKyAgICAgICAgbCA9IFsxLDIsM10KKyAg
ICAgICAgcHJpbnQgKCJsIGlzICVyIiAlIGwpCisgICAgICAgIGEsYiA9IGwucG9wKCkKKworICAg
IGRlZiB0ZXN0X3NvbWVfZXJyb3Ioc2VsZik6CisgICAgICAgIGlmIG5hbWVub3RleGk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBkZWYgZnVuYzEoc2VsZik6CisgICAgICAgIGFzc2VydCA0MSA9
PSA0MgorCisKKyMgdGhhbmtzIHRvIE1hdHRoZXcgU2NvdHQgZm9yIHRoaXMgdGVzdAorZGVmIHRl
c3RfZHluYW1pY19jb21waWxlX3Nob3dzX25pY2VseSgpOgorICAgIHNyYyA9ICdkZWYgZm9vKCk6
XG4gYXNzZXJ0IDEgPT0gMFxuJworICAgIG5hbWUgPSAnYWJjLTEyMycKKyAgICBtb2R1bGUgPSBw
eS5zdGQuaW1wLm5ld19tb2R1bGUobmFtZSkKKyAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5jb21w
aWxlKHNyYywgbmFtZSwgJ2V4ZWMnKQorICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgbW9kdWxl
Ll9fZGljdF9fKQorICAgIHB5LnN0ZC5zeXMubW9kdWxlc1tuYW1lXSA9IG1vZHVsZQorICAgIG1v
ZHVsZS5mb28oKQorCisKKworY2xhc3MgVGVzdE1vcmVFcnJvcnMob2JqZWN0KToKKyAgICBkZWYg
dGVzdF9jb21wbGV4X2Vycm9yKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAg
cmV0dXJuIDQ0CisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICByZXR1cm4gNDMKKyAgICAg
ICAgc29tZWZ1bmMoZigpLCBnKCkpCisKKyAgICBkZWYgdGVzdF96MV91bnBhY2tfZXJyb3Ioc2Vs
Zik6CisgICAgICAgIGwgPSBbXQorICAgICAgICBhLGIgID0gbAorCisgICAgZGVmIHRlc3RfejJf
dHlwZV9lcnJvcihzZWxmKToKKyAgICAgICAgbCA9IDMKKyAgICAgICAgYSxiICA9IGwKKworICAg
IGRlZiB0ZXN0X3N0YXJ0c3dpdGgoc2VsZik6CisgICAgICAgIHMgPSAiMTIzIgorICAgICAgICBn
ID0gIjQ1NiIKKyAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aChnKQorCisgICAgZGVmIHRlc3Rf
c3RhcnRzd2l0aF9uZXN0ZWQoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBy
ZXR1cm4gIjEyMyIKKyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHJldHVybiAiNDU2Igor
ICAgICAgICBhc3NlcnQgZigpLnN0YXJ0c3dpdGgoZygpKQorCisgICAgZGVmIHRlc3RfZ2xvYmFs
X2Z1bmMoc2VsZik6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdsb2JmKDQyKSwgZmxvYXQp
CisKKyAgICBkZWYgdGVzdF9pbnN0YW5jZShzZWxmKToKKyAgICAgICAgc2VsZi54ID0gNio3Cisg
ICAgICAgIGFzc2VydCBzZWxmLnggIT0gNDIKKworICAgIGRlZiB0ZXN0X2NvbXBhcmUoc2VsZik6
CisgICAgICAgIGFzc2VydCBnbG9iZigxMCkgPCA1CisKKyAgICBkZWYgdGVzdF90cnlfZmluYWxs
eShzZWxmKToKKyAgICAgICAgeCA9IDEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0
IHggPT0gMAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgeCA9IDAKKworCitjbGFzcyBU
ZXN0Q3VzdG9tQXNzZXJ0TXNnKG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9zaW5nbGVfbGluZShz
ZWxmKToKKyAgICAgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICAgICAgYSA9IDEKKyAgICAg
ICAgYiA9IDIKKyAgICAgICAgYXNzZXJ0IEEuYSA9PSBiLCAiQS5hIGFwcGVhcnMgbm90IHRvIGJl
IGIiCisKKyAgICBkZWYgdGVzdF9tdWx0aWxpbmUoc2VsZik6CisgICAgICAgIGNsYXNzIEEob2Jq
ZWN0KToKKyAgICAgICAgICAgIGEgPSAxCisgICAgICAgIGIgPSAyCisgICAgICAgIGFzc2VydCBB
LmEgPT0gYiwgIkEuYSBhcHBlYXJzIG5vdCB0byBiZSBiXG4iIFwKKyAgICAgICAgICAgICJvciBk
b2VzIG5vdCBhcHBlYXIgdG8gYmUgYlxub25lIG9mIHRob3NlIgorCisgICAgZGVmIHRlc3RfY3Vz
dG9tX3JlcHIoc2VsZik6CisgICAgICAgIGNsYXNzIEpTT04ob2JqZWN0KToKKyAgICAgICAgICAg
IGEgPSAxCisgICAgICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICAgICAg
cmV0dXJuICJUaGlzIGlzIEpTT05cbntcbiAgJ2Zvbyc6ICdiYXInXG59IgorICAgICAgICBhID0g
SlNPTigpCisgICAgICAgIGIgPSAyCisgICAgICAgIGFzc2VydCBhLmEgPT0gYiwgYQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9k
dWxlX2NvbmZpZy9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2Vy
dGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFl
OGM1NGJlNTM4MzVmYTcwZGU1MGFkY2M4Y2U2Yjk0NDNmMWZiYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9j
b25maWcvY29uZnRlc3QucHkKQEAgLTAsMCArMSwxMCBAQAoraW1wb3J0IHB5dGVzdCwgcHkKK215
ZGlyID0gcHkucGF0aC5sb2NhbChfX2ZpbGVfXykuZGlycGF0aCgpCisKK2RlZiBweXRlc3RfcnVu
dGVzdF9zZXR1cChpdGVtKToKKyAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIHB5dGVzdC5GdW5jdGlv
bik6CisgICAgICAgIGlmIG5vdCBpdGVtLmZzcGF0aC5yZWx0byhteWRpcik6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgbW9kID0gaXRlbS5nZXRwYXJlbnQocHl0ZXN0Lk1vZHVsZSkub2Jq
CisgICAgICAgIGlmIGhhc2F0dHIobW9kLCAnaGVsbG8nKToKKyAgICAgICAgICAgIHByaW50ICgi
bW9kLmhlbGxvICVyIiAlIChtb2QuaGVsbG8sKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvdGVzdF9oZWxs
by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1v
ZHVsZV9jb25maWcvdGVzdF9oZWxsby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjhlNmI5ZmQ3ZDdiZTNjMjcy
MGM5YjFkZTVlYmUzNmRmMTczNzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy90ZXN0X2hlbGxv
LnB5CkBAIC0wLDAgKzEsNSBAQAorCitoZWxsbyA9ICJ3b3JsZCIKKworZGVmIHRlc3RfZnVuYygp
OgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2Vy
dGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkNWI0ZDgwNWViZTQ3NWVhODVkN2U0MTdlZmFlNDY1NGM3
NDBhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3Nl
cnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9i
YWxfdGVzdG1vZHVsZV9jb25maWcvY29uZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3Rlc3RfaGVsbG8ucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi90ZXN0X2ZhaWx1
cmVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3RfZmFpbHVy
ZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmU1Y2QyMGIxOTQ1ODBiN2Q0ZWY2YWY5MzQ2MzAzNWI1NzcxYWEx
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlv
bi90ZXN0X2ZhaWx1cmVzLnB5CkBAIC0wLDAgKzEsMTQgQEAKKworaW1wb3J0IHB5CitmYWlsdXJl
X2RlbW8gPSBweS5wYXRoLmxvY2FsKF9fZmlsZV9fKS5kaXJwYXRoKCdmYWlsdXJlX2RlbW8ucHkn
KQorcHl0ZXN0X3BsdWdpbnMgPSAncHl0ZXN0ZXInLAorCitkZWYgdGVzdF9mYWlsdXJlX2RlbW9f
ZmFpbHNfcHJvcGVybHkodGVzdGRpcik6CisgICAgdGFyZ2V0ID0gdGVzdGRpci50bXBkaXIuam9p
bihmYWlsdXJlX2RlbW8uYmFzZW5hbWUpCisgICAgZmFpbHVyZV9kZW1vLmNvcHkodGFyZ2V0KQor
ICAgIGZhaWx1cmVfZGVtby5jb3B5KHRlc3RkaXIudG1wZGlyLmpvaW4oZmFpbHVyZV9kZW1vLmJh
c2VuYW1lKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0YXJnZXQsIHN5c3BhdGhp
bnNlcnQ9VHJ1ZSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAi
KjQyIGZhaWxlZCoiCisgICAgXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9zZXR1cF9mbG93
X2V4YW1wbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9z
ZXR1cF9mbG93X2V4YW1wbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAwZWZmYTQ5OWYzZTRiYThlNDJjOTVm
NTBlYzExMjg4Y2E1YzBmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Fzc2VydGlvbi90ZXN0X3NldHVwX2Zsb3dfZXhhbXBsZS5weQpAQCAtMCwwICsxLDQy
IEBACitkZWYgc2V0dXBfbW9kdWxlKG1vZHVsZSk6CisgICAgbW9kdWxlLlRlc3RTdGF0ZUZ1bGxU
aGluZy5jbGFzc2NvdW50ID0gMAorCitjbGFzcyBUZXN0U3RhdGVGdWxsVGhpbmcob2JqZWN0KToK
KyAgICBkZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAgICAgICAgY2xzLmNsYXNzY291bnQgKz0gMQor
CisgICAgZGVmIHRlYXJkb3duX2NsYXNzKGNscyk6CisgICAgICAgIGNscy5jbGFzc2NvdW50IC09
IDEKKworICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgc2VsZi5p
ZCA9IGV2YWwobWV0aG9kLl9fbmFtZV9fWzU6XSkKKworICAgIGRlZiB0ZXN0XzQyKHNlbGYpOgor
ICAgICAgICBhc3NlcnQgc2VsZi5jbGFzc2NvdW50ID09IDEKKyAgICAgICAgYXNzZXJ0IHNlbGYu
aWQgPT0gNDIKKworICAgIGRlZiB0ZXN0XzIzKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi5j
bGFzc2NvdW50ID09IDEKKyAgICAgICAgYXNzZXJ0IHNlbGYuaWQgPT0gMjMKKworZGVmIHRlYXJk
b3duX21vZHVsZShtb2R1bGUpOgorICAgIGFzc2VydCBtb2R1bGUuVGVzdFN0YXRlRnVsbFRoaW5n
LmNsYXNzY291bnQgPT0gMAorCisiIiIgRm9yIHRoaXMgZXhhbXBsZSB0aGUgY29udHJvbCBmbG93
IGhhcHBlbnMgYXMgZm9sbG93czo6CisgICAgaW1wb3J0IHRlc3Rfc2V0dXBfZmxvd19leGFtcGxl
CisgICAgc2V0dXBfbW9kdWxlKHRlc3Rfc2V0dXBfZmxvd19leGFtcGxlKQorICAgICAgIHNldHVw
X2NsYXNzKFRlc3RTdGF0ZUZ1bGxUaGluZykKKyAgICAgICAgICAgaW5zdGFuY2UgPSBUZXN0U3Rh
dGVGdWxsVGhpbmcoKQorICAgICAgICAgICBzZXR1cF9tZXRob2QoaW5zdGFuY2UsIGluc3RhbmNl
LnRlc3RfNDIpCisgICAgICAgICAgICAgIGluc3RhbmNlLnRlc3RfNDIoKQorICAgICAgICAgICBz
ZXR1cF9tZXRob2QoaW5zdGFuY2UsIGluc3RhbmNlLnRlc3RfMjMpCisgICAgICAgICAgICAgIGlu
c3RhbmNlLnRlc3RfMjMoKQorICAgICAgIHRlYXJkb3duX2NsYXNzKFRlc3RTdGF0ZUZ1bGxUaGlu
ZykKKyAgICB0ZWFyZG93bl9tb2R1bGUodGVzdF9zZXR1cF9mbG93X2V4YW1wbGUpCisKK05vdGUg
dGhhdCBgYHNldHVwX2NsYXNzKFRlc3RTdGF0ZUZ1bGxUaGluZylgYCBpcyBjYWxsZWQgYW5kIG5v
dAorYGBUZXN0U3RhdGVGdWxsVGhpbmcuc2V0dXBfY2xhc3MoKWBgIHdoaWNoIHdvdWxkIHJlcXVp
cmUgeW91Cit0byBpbnNlcnQgYGBzZXR1cF9jbGFzcyA9IGNsYXNzbWV0aG9kKHNldHVwX2NsYXNz
KWBgIHRvIG1ha2UKK3lvdXIgc2V0dXAgZnVuY3Rpb24gY2FsbGFibGUuCisiIiIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFkOWY0YTY2YjU5NTMzZGZjNWJmYzNlYjZmY2RiYmE0YzUwNzZlZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL2Fzc2VydGlvbi90ZXN0X2ZhaWx1cmVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hdHRpYy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hdHRpYy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUxMjRhNWQwOWQzNWEzNDY2YzIwMjUwMzc3NWMx
NmY5MGFiMTEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2F0dGljLnJzdApAQCAtMCwwICsxLDc5IEBACisKKy4uIF9gYWNjZXB0IGV4YW1wbGVgOgorCitl
eGFtcGxlOiBzcGVjaWZ5aW5nIGFuZCBzZWxlY3RpbmcgYWNjZXB0YW5jZSB0ZXN0cworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gc291cmNlY29kZTo6IHB5dGhvbgorCisgICAgIyAuL2NvbmZ0ZXN0LnB5CisgICAgZGVm
IHB5dGVzdF9vcHRpb24ocGFyc2VyKToKKyAgICAgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
Im15cHJvamVjdCIpCisgICAgICAgIGdyb3VwLmFkZG9wdGlvbigiLUEiLCBkZXN0PSJhY2NlcHRh
bmNlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgIGhlbHA9InJ1biAoc2xvdykg
YWNjZXB0YW5jZSB0ZXN0cyIpCisKKyAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX2FjY2VwdChyZXF1
ZXN0KToKKyAgICAgICAgcmV0dXJuIEFjY2VwdEZpeHR1cmUocmVxdWVzdCkKKworICAgIGNsYXNz
IEFjY2VwdEZpeHR1cmUob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVl
c3QpOgorICAgICAgICAgICAgaWYgbm90IHJlcXVlc3QuY29uZmlnLmdldG9wdGlvbignYWNjZXB0
YW5jZScpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJzcGVjaWZ5IC1BIHRvIHJ1biBh
Y2NlcHRhbmNlIHRlc3RzIikKKyAgICAgICAgICAgIHNlbGYudG1wZGlyID0gcmVxdWVzdC5jb25m
aWcubWt0ZW1wKHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18sIG51bWJlcmVkPVRydWUpCisKKyAg
ICAgICAgZGVmIHJ1bihzZWxmLCBjbWQpOgorICAgICAgICAgICAgIiIiIGNhbGxlZCBieSB0ZXN0
IGNvZGUgdG8gZXhlY3V0ZSBhbiBhY2NlcHRhbmNlIHRlc3QuICIiIgorICAgICAgICAgICAgc2Vs
Zi50bXBkaXIuY2hkaXIoKQorICAgICAgICAgICAgcmV0dXJuIHB5LnByb2Nlc3MuY21kZXhlYyhj
bWQpCisKKworYW5kIHRoZSBhY3R1YWwgdGVzdCBmdW5jdGlvbiBleGFtcGxlOgorCisuLiBzb3Vy
Y2Vjb2RlOjogcHl0aG9uCisKKyAgICBkZWYgdGVzdF9zb21lX2FjY2VwdGFuY2VfYXNwZWN0KGFj
Y2VwdCk6CisgICAgICAgIGFjY2VwdC50bXBkaXIubWtkaXIoInNvbWVzdWIiKQorICAgICAgICBy
ZXN1bHQgPSBhY2NlcHQucnVuKCJscyAtbGEiKQorICAgICAgICBhc3NlcnQgInNvbWVzdWIiIGlu
IHJlc3VsdAorCitJZiB5b3UgcnVuIHRoaXMgdGVzdCB3aXRob3V0IHNwZWNpZnlpbmcgYSBjb21t
YW5kIGxpbmUgb3B0aW9uCit0aGUgdGVzdCB3aWxsIGdldCBza2lwcGVkIHdpdGggYW4gYXBwcm9w
cmlhdGUgbWVzc2FnZS4gT3RoZXJ3aXNlCit5b3UgY2FuIHN0YXJ0IHRvIGFkZCBjb252ZW5pZW5j
ZSBhbmQgdGVzdCBzdXBwb3J0IG1ldGhvZHMKK3RvIHlvdXIgQWNjZXB0Rml4dHVyZSBhbmQgZHJp
dmUgcnVubmluZyBvZiB0b29scyBvcgorYXBwbGljYXRpb25zIGFuZCBwcm92aWRlIHdheXMgdG8g
ZG8gYXNzZXJ0aW9ucyBhYm91dAordGhlIG91dHB1dC4KKworLi4gX2BkZWNvcmF0ZSBhIGZ1bmNh
cmdgOgorCitleGFtcGxlOiBkZWNvcmF0aW5nIGEgZnVuY2FyZyBpbiBhIHRlc3QgbW9kdWxlCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitGb3IgbGFyZ2VyIHNjYWxlIHNldHVwcyBpdCdzIHNvbWV0aW1lcyB1c2VmdWwgdG8g
ZGVjb3JhdGUKK2EgZnVuY2FyZyBqdXN0IGZvciBhIHBhcnRpY3VsYXIgdGVzdCBtb2R1bGUuICBX
ZSBjYW4KK2V4dGVuZCB0aGUgYGFjY2VwdCBleGFtcGxlYF8gYnkgcHV0dGluZyB0aGlzIGluIG91
ciB0ZXN0IG1vZHVsZToKKworLi4gc291cmNlY29kZTo6IHB5dGhvbgorCisgICAgZGVmIHB5dGVz
dF9mdW5jYXJnX19hY2NlcHQocmVxdWVzdCk6CisgICAgICAgICMgY2FsbCB0aGUgbmV4dCBmYWN0
b3J5IChsaXZpbmcgaW4gb3VyIGNvbmZ0ZXN0LnB5KQorICAgICAgICBhcmcgPSByZXF1ZXN0Lmdl
dGZ1bmNhcmd2YWx1ZSgiYWNjZXB0IikKKyAgICAgICAgIyBjcmVhdGUgYSBzcGVjaWFsIGxheW91
dCBpbiBvdXIgdGVtcGRpcgorICAgICAgICBhcmcudG1wZGlyLm1rZGlyKCJzcGVjaWFsIikKKyAg
ICAgICAgcmV0dXJuIGFyZworCisgICAgY2xhc3MgVGVzdFNwZWNpYWxBY2NlcHRhbmNlKG9iamVj
dCk6CisgICAgICAgIGRlZiB0ZXN0X3NvbWV0ZXN0KHNlbGYsIGFjY2VwdCk6CisgICAgICAgICAg
ICBhc3NlcnQgYWNjZXB0LnRtcGRpci5qb2luKCJzcGVjaWFsIikuY2hlY2soKQorCitPdXIgbW9k
dWxlIGxldmVsIGZhY3Rvcnkgd2lsbCBiZSBpbnZva2VkIGZpcnN0IGFuZCBpdCBjYW4KK2FzayBp
dHMgcmVxdWVzdCBvYmplY3QgdG8gY2FsbCB0aGUgbmV4dCBmYWN0b3J5IGFuZCB0aGVuCitkZWNv
cmF0ZSBpdHMgcmVzdWx0LiAgVGhpcyBtZWNoYW5pc20gYWxsb3dzIHVzIHRvIHN0YXkKK2lnbm9y
YW50IG9mIGhvdy93aGVyZSB0aGUgZnVuY3Rpb24gYXJndW1lbnQgaXMgcHJvdmlkZWQgLQoraW4g
b3VyIGV4YW1wbGUgZnJvbSBhIGBjb25mdGVzdCBwbHVnaW5gXy4KKworc2lkZW5vdGU6IHRoZSB0
ZW1wb3JhcnkgZGlyZWN0b3J5IHVzZWQgaGVyZSBhcmUgaW5zdGFuY2VzIG9mCit0aGUgYHB5LnBh
dGgubG9jYWxgXyBjbGFzcyB3aGljaCBwcm92aWRlcyBtYW55IG9mIHRoZSBvcy5wYXRoCittZXRo
b2RzIGluIGEgY29udmVuaWVudCB3YXkuCisKKy4uIF9gcHkucGF0aC5sb2NhbGA6IC4uL3BhdGgu
aHRtbCNsb2NhbAorLi4gX2Bjb25mdGVzdCBwbHVnaW5gOiBjdXN0b21pemUuaHRtbCNjb25mdGVz
dHBsdWdpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29uZnRlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OTA1NzM4YzRmNmM3YWU1ZWY2ZDg5YjE5ZmViMTgzNWQ3NDllMDA1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29uZnRlc3QucHkKQEAgLTAsMCArMSBAQAor
Y29sbGVjdF9pZ25vcmUgPSBbIm5vbnB5dGhvbiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhM2MxY2ZmYjcy
ZmE1MmY4YjBlNDA4MjBkODc3NjY3ZmM3YWYyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE4
IEBACisKK2ltcG9ydCBweXRlc3QKKworQHB5dGVzdC5maXh0dXJlKCJzZXNzaW9uIikKK2RlZiBz
ZXR1cChyZXF1ZXN0KToKKyAgICBzZXR1cCA9IENvc3RseVNldHVwKCkKKyAgICB5aWVsZCBzZXR1
cAorICAgIHNldHVwLmZpbmFsaXplKCkKKworY2xhc3MgQ29zdGx5U2V0dXAob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIGltcG9ydCB0aW1lCisgICAgICAgIHByaW50
ICgicGVyZm9ybWluZyBjb3N0bHkgc2V0dXAiKQorICAgICAgICB0aW1lLnNsZWVwKDUpCisgICAg
ICAgIHNlbGYudGltZWNvc3RseSA9IDEKKworICAgIGRlZiBmaW5hbGl6ZShzZWxmKToKKyAgICAg
ICAgZGVsIHNlbGYudGltZWNvc3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyZDYwMDU0
ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKQEAgLTAs
MCArMSBAQAorIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5
c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NzY1Nzg2N2UwMjFkYmU4
YzY0MjY3ZTVlYjQ3Nzg0MmQ2NzNjM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2sucHkKQEAgLTAsMCArMSwz
IEBACisKK2RlZiB0ZXN0X3F1aWNrKHNldHVwKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzdmNjZhMThiYTcyMDkwNDgyODQ5ZWZmNDhjZDcyYzM0Yzc3ODNlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViMS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OTJkNjAwNTQ4OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViMi9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZWQ2ZWU0ZDg5OGZmNmVmYTc2ZTZhMWQ0OTBjNGNkMWIwZThjMDQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0
X3R3by5weQpAQCAtMCwwICsxLDYgQEAKK2RlZiB0ZXN0X3NvbWV0aGluZyhzZXR1cCk6CisgICAg
YXNzZXJ0IHNldHVwLnRpbWVjb3N0bHkgPT0gMQorCitkZWYgdGVzdF9zb21ldGhpbmdfbW9yZShz
ZXR1cCk6CisgICAgYXNzZXJ0IHNldHVwLnRpbWVjb3N0bHkgPT0gMQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYTY0MjBlYzgzZDg3NzhiYjUwYmJlYTBhNzBmNTJlZmI5OWY3MjZi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViMi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OWM4Yzk5Y2M4YmM5ZjcyYWEwMzY1MmY5M2UwZGQzZDkxOGY2MTg3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjNjYjgyMmE0MWNiZWM3NjQ5ZTdiMDdhYjRkOTQ2MWFl
ZGRjYmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvaW5k
ZXgucnN0CkBAIC0wLDAgKzEsMzQgQEAKKworLi4gX2V4YW1wbGVzOgorCitFeGFtcGxlcyBhbmQg
Y3VzdG9taXphdGlvbiB0cmlja3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitIZXJlIGlzIGEgKGdyb3dpbmcpIGxpc3Qgb2YgZXhhbXBsZXMuIDpyZWY6YENvbnRhY3QgPGNv
bnRhY3Q+YCB1cyBpZiB5b3UKK25lZWQgbW9yZSBleGFtcGxlcyBvciBoYXZlIHF1ZXN0aW9ucy4g
QWxzbyB0YWtlIGEgbG9vayBhdCB0aGUKKzpyZWY6YGNvbXByZWhlbnNpdmUgZG9jdW1lbnRhdGlv
biA8dG9jPmAgd2hpY2ggY29udGFpbnMgbWFueSBleGFtcGxlCitzbmlwcGV0cyBhcyB3ZWxsLiAg
QWxzbywgYHB5dGVzdCBvbiBzdGFja292ZXJmbG93LmNvbQorPGh0dHA6Ly9zdGFja292ZXJmbG93
LmNvbS9zZWFyY2g/cT1weXRlc3Q+YF8gb2Z0ZW4gY29tZXMgd2l0aCBleGFtcGxlCithbnN3ZXJz
LgorCitGb3IgYmFzaWMgZXhhbXBsZXMsIHNlZQorCistIDpkb2M6YC4uL2dldHRpbmctc3RhcnRl
ZGAgZm9yIGJhc2ljIGludHJvZHVjdG9yeSBleGFtcGxlcworLSA6cmVmOmBhc3NlcnRgIGZvciBi
YXNpYyBhc3NlcnRpb24gZXhhbXBsZXMKKy0gOnJlZjpgZml4dHVyZXNgIGZvciBiYXNpYyBmaXh0
dXJlL3NldHVwIGV4YW1wbGVzCistIDpyZWY6YHBhcmFtZXRyaXplYCBmb3IgYmFzaWMgdGVzdCBm
dW5jdGlvbiBwYXJhbWV0cml6YXRpb24KKy0gOmRvYzpgLi4vdW5pdHRlc3RgIGZvciBiYXNpYyB1
bml0dGVzdCBpbnRlZ3JhdGlvbgorLSA6ZG9jOmAuLi9ub3NlYCBmb3IgYmFzaWMgbm9zZXRlc3Rz
IGludGVncmF0aW9uCisKK1RoZSBmb2xsb3dpbmcgZXhhbXBsZXMgYWltIGF0IHZhcmlvdXMgdXNl
IGNhc2VzIHlvdSBtaWdodCBlbmNvdW50ZXIuCisKKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRo
OiAyCisKKyAgIHJlcG9ydGluZ2RlbW8KKyAgIHNpbXBsZQorICAgcGFyYW1ldHJpemUKKyAgIG1h
cmtlcnMKKyAgIHNwZWNpYWwKKyAgIHB5dGhvbmNvbGxlY3Rpb24KKyAgIG5vbnB5dGhvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9tYXJrZXJzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2MyMGQ1YjdkYzE4
Y2E3MzZiYzU3MDk4MWRmMGQ4MmQwMjk4ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKQEAgLTAsMCArMSw2NDIgQEAKKworLi4gX2Bt
YXJrIGV4YW1wbGVzYDoKKworV29ya2luZyB3aXRoIGN1c3RvbSBtYXJrZXJzCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0hlcmUgYXJlIHNvbWUg
ZXhhbXBsZSB1c2luZyB0aGUgOnJlZjpgbWFya2AgbWVjaGFuaXNtLgorCitNYXJraW5nIHRlc3Qg
ZnVuY3Rpb25zIGFuZCBzZWxlY3RpbmcgdGhlbSBmb3IgYSBydW4KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiAibWFyayIgYSB0
ZXN0IGZ1bmN0aW9uIHdpdGggY3VzdG9tIG1ldGFkYXRhIGxpa2UgdGhpczo6CisKKyAgICAjIGNv
bnRlbnQgb2YgdGVzdF9zZXJ2ZXIucHkKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0
Lm1hcmsud2VidGVzdAorICAgIGRlZiB0ZXN0X3NlbmRfaHR0cCgpOgorICAgICAgICBwYXNzICMg
cGVyZm9ybSBzb21lIHdlYnRlc3QgdGVzdCBmb3IgeW91ciBhcHAKKyAgICBkZWYgdGVzdF9zb21l
dGhpbmdfcXVpY2soKToKKyAgICAgICAgcGFzcworICAgIGRlZiB0ZXN0X2Fub3RoZXIoKToKKyAg
ICAgICAgcGFzcworICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgdGVz
dF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICBwYXNzCisKKy4uIHZlcnNpb25hZGRlZDo6IDIu
MgorCitZb3UgY2FuIHRoZW4gcmVzdHJpY3QgYSB0ZXN0IHJ1biB0byBvbmx5IHJ1biB0ZXN0cyBt
YXJrZWQgd2l0aCBgYHdlYnRlc3RgYDo6CisKKyAgICAkIHB5dGVzdCAtdiAtbSB3ZWJ0ZXN0Cisg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngu
eSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklY
L2Jpbi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgNCBpdGVt
cworICAgIAorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cCBQQVNTRUQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gMyB0ZXN0cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICA9PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQsIDMgZGVzZWxlY3RlZCBpbiAw
LjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CisKK09yIHRoZSBpbnZlcnNlLCBydW5uaW5n
IGFsbCB0ZXN0cyBleGNlcHQgdGhlIHdlYnRlc3Qgb25lczo6CisKKyAgICAkIHB5dGVzdCAtdiAt
bSAibm90IHdlYnRlc3QiCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisg
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4u
LiBjb2xsZWN0ZWQgNCBpdGVtcworICAgIAorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NvbWV0
aGluZ19xdWljayBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgIFsgMzMlXQorICAgIHRl
c3Rfc2VydmVyLnB5Ojp0ZXN0X2Fub3RoZXIgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsgNjYlXQorICAgIHRlc3Rfc2VydmVyLnB5OjpUZXN0Q2xhc3M6OnRlc3RfbWV0
aG9kIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gMSB0ZXN0cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09PT09PT0gMyBwYXNzZWQsIDEgZGVzZWxl
Y3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CisKK1NlbGVjdGluZyB0ZXN0
cyBiYXNlZCBvbiB0aGVpciBub2RlIElECistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitZb3UgY2FuIHByb3ZpZGUgb25lIG9yIG1vcmUgOnJlZjpgbm9kZSBJRHMgPG5v
ZGUtaWQ+YCBhcyBwb3NpdGlvbmFsCithcmd1bWVudHMgdG8gc2VsZWN0IG9ubHkgc3BlY2lmaWVk
IHRlc3RzLiBUaGlzIG1ha2VzIGl0IGVhc3kgdG8gc2VsZWN0Cit0ZXN0cyBiYXNlZCBvbiB0aGVp
ciBtb2R1bGUsIGNsYXNzLCBtZXRob2QsIG9yIGZ1bmN0aW9uIG5hbWU6OgorCisgICAgJCBweXRl
c3QgLXYgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QKKyAgICA9PT09PT09
PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3Qt
My54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhv
bjMuNQorICAgIGNhY2hlZGlyOiAuY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElS
LCBpbmlmaWxlOgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAg
ICB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAg
ICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
IDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1lv
dSBjYW4gYWxzbyBzZWxlY3Qgb24gdGhlIGNsYXNzOjoKKworICAgICQgcHl0ZXN0IC12IHRlc3Rf
c2VydmVyLnB5OjpUZXN0Q2xhc3MKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVz
dCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICAgIGNhY2hlZGlyOiAuY2Fj
aGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3Rp
bmcgLi4uIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAgICB0ZXN0X3NlcnZlci5weTo6VGVzdENs
YXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAg
ICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkIGluIDAuMTIgc2Vjb25k
cyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK09yIHNlbGVjdCBtdWx0aXBsZSBub2Rlczo6
CisKKyAgJCBweXRlc3QgLXYgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzcyB0ZXN0X3NlcnZlci5w
eTo6dGVzdF9zZW5kX2h0dHAKKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAt
LSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41CisgIGNhY2hlZGlyOiAuY2FjaGUKKyAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgY29sbGVjdGluZyAuLi4gY29sbGVj
dGVkIDIgaXRlbXMKKyAgCisgIHRlc3Rfc2VydmVyLnB5OjpUZXN0Q2xhc3M6OnRlc3RfbWV0aG9k
IFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgIFsgNTAlXQorICB0ZXN0X3NlcnZlci5weTo6
dGVzdF9zZW5kX2h0dHAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgCisgID09PT09PT09PT09PT09PT09PT09PT09PT0gMiBwYXNzZWQgaW4gMC4xMiBzZWNv
bmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gX25vZGUtaWQ6CisKKy4uIG5vdGU6
OgorCisgICAgTm9kZSBJRHMgYXJlIG9mIHRoZSBmb3JtIGBgbW9kdWxlLnB5OjpjbGFzczo6bWV0
aG9kYGAgb3IKKyAgICBgYG1vZHVsZS5weTo6ZnVuY3Rpb25gYC4gIE5vZGUgSURzIGNvbnRyb2wg
d2hpY2ggdGVzdHMgYXJlCisgICAgY29sbGVjdGVkLCBzbyBgYG1vZHVsZS5weTo6Y2xhc3NgYCB3
aWxsIHNlbGVjdCBhbGwgdGVzdCBtZXRob2RzCisgICAgb24gdGhlIGNsYXNzLiAgTm9kZXMgYXJl
IGFsc28gY3JlYXRlZCBmb3IgZWFjaCBwYXJhbWV0ZXIgb2YgYQorICAgIHBhcmFtZXRyaXplZCBm
aXh0dXJlIG9yIHRlc3QsIHNvIHNlbGVjdGluZyBhIHBhcmFtZXRyaXplZCB0ZXN0CisgICAgbXVz
dCBpbmNsdWRlIHRoZSBwYXJhbWV0ZXIgdmFsdWUsIGUuZy4KKyAgICBgYG1vZHVsZS5weTo6ZnVu
Y3Rpb25bcGFyYW1dYGAuCisKKyAgICBOb2RlIElEcyBmb3IgZmFpbGluZyB0ZXN0cyBhcmUgZGlz
cGxheWVkIGluIHRoZSB0ZXN0IHN1bW1hcnkgaW5mbworICAgIHdoZW4gcnVubmluZyBweXRlc3Qg
d2l0aCB0aGUgYGAtcmZgYCBvcHRpb24uICBZb3UgY2FuIGFsc28KKyAgICBjb25zdHJ1Y3QgTm9k
ZSBJRHMgZnJvbSB0aGUgb3V0cHV0IG9mIGBgcHl0ZXN0IC0tY29sbGVjdG9ubHlgYC4KKworVXNp
bmcgYGAtayBleHByYGAgdG8gc2VsZWN0IHRlc3RzIGJhc2VkIG9uIHRoZWlyIG5hbWUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4g
dmVyc2lvbmFkZGVkOiAyLjAvMi4zLjQKKworWW91IGNhbiB1c2UgdGhlIGBgLWtgYCBjb21tYW5k
IGxpbmUgb3B0aW9uIHRvIHNwZWNpZnkgYW4gZXhwcmVzc2lvbgord2hpY2ggaW1wbGVtZW50cyBh
IHN1YnN0cmluZyBtYXRjaCBvbiB0aGUgdGVzdCBuYW1lcyBpbnN0ZWFkIG9mIHRoZQorZXhhY3Qg
bWF0Y2ggb24gbWFya2VycyB0aGF0IGBgLW1gYCBwcm92aWRlcy4gIFRoaXMgbWFrZXMgaXQgZWFz
eSB0bworc2VsZWN0IHRlc3RzIGJhc2VkIG9uIHRoZWlyIG5hbWVzOjoKKworICAgICQgcHl0ZXN0
IC12IC1rIGh0dHAgICMgcnVubmluZyB3aXRoIHRoZSBhYm92ZSBkZWZpbmVkIGV4YW1wbGUgbW9k
dWxlCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05f
UFJFRklYL2Jpbi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQg
NCBpdGVtcworICAgIAorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cCBQQVNTRUQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gMyB0ZXN0cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQsIDMgZGVzZWxlY3Rl
ZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CisKK0FuZCB5b3UgY2FuIGFsc28g
cnVuIGFsbCB0ZXN0cyBleGNlcHQgdGhlIG9uZXMgdGhhdCBtYXRjaCB0aGUga2V5d29yZDo6CisK
KyAgICAkIHB5dGVzdCAtayAibm90IHNlbmRfaHR0cCIgLXYKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICAg
IGNhY2hlZGlyOiAuY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxl
OgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zCisgICAgCisgICAgdGVzdF9z
ZXJ2ZXIucHk6OnRlc3Rfc29tZXRoaW5nX3F1aWNrIFBBU1NFRCAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyAzMyVdCisgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3RfYW5vdGhlciBQQVNTRUQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA2NiVdCisgICAgdGVzdF9zZXJ2ZXIucHk6
OlRlc3RDbGFzczo6dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgWzEw
MCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHRlc3RzIGRlc2Vs
ZWN0ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgID09PT09PT09PT09PT09PT09
PSAzIHBhc3NlZCwgMSBkZXNlbGVjdGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT0KKworT3IgdG8gc2VsZWN0ICJodHRwIiBhbmQgInF1aWNrIiB0ZXN0czo6CisKKyAgICAkIHB5
dGVzdCAtayAiaHR0cCBvciBxdWljayIgLXYKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICAgIGNhY2hlZGly
OiAuY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNv
bGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zCisgICAgCisgICAgdGVzdF9zZXJ2ZXIucHk6
OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA1
MCVdCisgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc29tZXRoaW5nX3F1aWNrIFBBU1NFRCAgICAg
ICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAyIHRlc3RzIGRlc2VsZWN0ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgID09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCwgMiBkZXNlbGVjdGVkIGluIDAuMTIg
c2Vjb25kcyA9PT09PT09PT09PT09PT09PT0KKworLi4gbm90ZTo6CisKKyAgICBJZiB5b3UgYXJl
IHVzaW5nIGV4cHJlc3Npb25zIHN1Y2ggYXMgYGAiWCBhbmQgWSJgYCB0aGVuIGJvdGggYGBYYGAg
YW5kIGBgWWBgCisgICAgbmVlZCB0byBiZSBzaW1wbGUgbm9uLWtleXdvcmQgbmFtZXMuIEZvciBl
eGFtcGxlLCBgYCJwYXNzImBgIG9yIGBgImZyb20iYGAKKyAgICB3aWxsIHJlc3VsdCBpbiBTeW50
YXhFcnJvcnMgYmVjYXVzZSBgYCItayJgYCBldmFsdWF0ZXMgdGhlIGV4cHJlc3Npb24gdXNpbmcK
KyAgICBQeXRob24ncyBgZXZhbGBfIGZ1bmN0aW9uLgorCisuLiBfYGV2YWxgOiBodHRwczovL2Rv
Y3MucHl0aG9uLm9yZy8zLjYvbGlicmFyeS9mdW5jdGlvbnMuaHRtbCNldmFsCisKKworICAgIEhv
d2V2ZXIsIGlmIHRoZSBgYCItayJgYCBhcmd1bWVudCBpcyBhIHNpbXBsZSBzdHJpbmcsIG5vIHN1
Y2ggcmVzdHJpY3Rpb25zCisgICAgYXBwbHkuIEFsc28gYGAiLWsgJ25vdCBTVFJJTkcnImBgIGhh
cyBubyByZXN0cmljdGlvbnMuICBZb3UgY2FuIGFsc28KKyAgICBzcGVjaWZ5IG51bWJlcnMgbGlr
ZSBgYCItayAxLjMiYGAgdG8gbWF0Y2ggdGVzdHMgd2hpY2ggYXJlIHBhcmFtZXRyaXplZAorICAg
IHdpdGggdGhlIGZsb2F0IGBgIjEuMyJgYC4KKworUmVnaXN0ZXJpbmcgbWFya2VycworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjIK
KworLi4gaW5pLXN5bnRheCBmb3IgY3VzdG9tIG1hcmtlcnM6CisKK1JlZ2lzdGVyaW5nIG1hcmtl
cnMgZm9yIHlvdXIgdGVzdCBzdWl0ZSBpcyBzaW1wbGU6OgorCisgICAgIyBjb250ZW50IG9mIHB5
dGVzdC5pbmkKKyAgICBbcHl0ZXN0XQorICAgIG1hcmtlcnMgPQorICAgICAgICB3ZWJ0ZXN0OiBt
YXJrIGEgdGVzdCBhcyBhIHdlYnRlc3QuCisKK1lvdSBjYW4gYXNrIHdoaWNoIG1hcmtlcnMgZXhp
c3QgZm9yIHlvdXIgdGVzdCBzdWl0ZSAtIHRoZSBsaXN0IGluY2x1ZGVzIG91ciBqdXN0IGRlZmlu
ZWQgYGB3ZWJ0ZXN0YGAgbWFya2Vyczo6CisKKyAgICAkIHB5dGVzdCAtLW1hcmtlcnMKKyAgICBA
cHl0ZXN0Lm1hcmsud2VidGVzdDogbWFyayBhIHRlc3QgYXMgYSB3ZWJ0ZXN0LgorICAgIAorICAg
IEBweXRlc3QubWFyay5za2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5j
dGlvbiB3aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4gRXhhbXBsZTogc2tpcChyZWFzb249Im5vIHdh
eSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzIikgc2tpcHMgdGhlIHRlc3QuCisgICAgCisgICAg
QHB5dGVzdC5tYXJrLnNraXBpZihjb25kaXRpb24pOiBza2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0
aW9uIGlmIGV2YWwoY29uZGl0aW9uKSByZXN1bHRzIGluIGEgVHJ1ZSB2YWx1ZS4gIEV2YWx1YXRp
b24gaGFwcGVucyB3aXRoaW4gdGhlIG1vZHVsZSBnbG9iYWwgY29udGV4dC4gRXhhbXBsZTogc2tp
cGlmKCdzeXMucGxhdGZvcm0gPT0gIndpbjMyIicpIHNraXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBv
biB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBp
bmcuaHRtbAorICAgIAorICAgIEBweXRlc3QubWFyay54ZmFpbChjb25kaXRpb24sIHJlYXNvbj1O
b25lLCBydW49VHJ1ZSwgcmFpc2VzPU5vbmUsIHN0cmljdD1GYWxzZSk6IG1hcmsgdGhlIHRlc3Qg
ZnVuY3Rpb24gYXMgYW4gZXhwZWN0ZWQgZmFpbHVyZSBpZiBldmFsKGNvbmRpdGlvbikgaGFzIGEg
VHJ1ZSB2YWx1ZS4gT3B0aW9uYWxseSBzcGVjaWZ5IGEgcmVhc29uIGZvciBiZXR0ZXIgcmVwb3J0
aW5nIGFuZCBydW49RmFsc2UgaWYgeW91IGRvbid0IGV2ZW4gd2FudCB0byBleGVjdXRlIHRoZSB0
ZXN0IGZ1bmN0aW9uLiBJZiBvbmx5IHNwZWNpZmljIGV4Y2VwdGlvbihzKSBhcmUgZXhwZWN0ZWQs
IHlvdSBjYW4gbGlzdCB0aGVtIGluIHJhaXNlcywgYW5kIGlmIHRoZSB0ZXN0IGZhaWxzIGluIG90
aGVyIHdheXMsIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYXMgYSB0cnVlIGZhaWx1cmUuIFNlZSBodHRw
Oi8vcHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbAorICAgIAorICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRlc3QgZnVuY3Rpb24g
bXVsdGlwbGUgdGltZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFy
Z3ZhbHVlcyBnZW5lcmFsbHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9mIHZhbHVlcyBpZiBhcmduYW1l
cyBzcGVjaWZpZXMgb25seSBvbmUgbmFtZSBvciBhIGxpc3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBp
ZiBhcmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4YW1wbGU6IEBwYXJhbWV0cml6
ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxscyBvZiB0aGUgZGVjb3JhdGVk
IHRlc3QgZnVuY3Rpb24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5vdGhlciB3aXRoIGFyZzE9Mi5z
ZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwgZm9yIG1vcmUgaW5m
byBhbmQgZXhhbXBsZXMuCisgICAgCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKGZpeHR1
cmVuYW1lMSwgZml4dHVyZW5hbWUyLCAuLi4pOiBtYXJrIHRlc3RzIGFzIG5lZWRpbmcgYWxsIG9m
IHRoZSBzcGVjaWZpZWQgZml4dHVyZXMuIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZml4
dHVyZS5odG1sI3VzZWZpeHR1cmVzIAorICAgIAorICAgIEBweXRlc3QubWFyay50cnlmaXJzdDog
bWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSBwbHVnaW4g
bWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMgZWFybHkgYXMgcG9zc2libGUu
CisgICAgCisgICAgQHB5dGVzdC5tYXJrLnRyeWxhc3Q6IG1hcmsgYSBob29rIGltcGxlbWVudGF0
aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgcGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBj
YWxsIGl0IGxhc3QvYXMgbGF0ZSBhcyBwb3NzaWJsZS4KKyAgICAKKworRm9yIGFuIGV4YW1wbGUg
b24gaG93IHRvIGFkZCBhbmQgd29yayB3aXRoIG1hcmtlcnMgZnJvbSBhIHBsdWdpbiwgc2VlCis6
cmVmOmBhZGRpbmcgYSBjdXN0b20gbWFya2VyIGZyb20gYSBwbHVnaW5gLgorCisuLiBub3RlOjoK
KworICAgIEl0IGlzIHJlY29tbWVuZGVkIHRvIGV4cGxpY2l0bHkgcmVnaXN0ZXIgbWFya2VycyBz
byB0aGF0OgorCisgICAgKiBUaGVyZSBpcyBvbmUgcGxhY2UgaW4geW91ciB0ZXN0IHN1aXRlIGRl
ZmluaW5nIHlvdXIgbWFya2VycworCisgICAgKiBBc2tpbmcgZm9yIGV4aXN0aW5nIG1hcmtlcnMg
dmlhIGBgcHl0ZXN0IC0tbWFya2Vyc2BgIGdpdmVzIGdvb2Qgb3V0cHV0CisKKyAgICAqIFR5cG9z
IGluIGZ1bmN0aW9uIG1hcmtlcnMgYXJlIHRyZWF0ZWQgYXMgYW4gZXJyb3IgaWYgeW91IHVzZQor
ICAgICAgdGhlIGBgLS1zdHJpY3RgYCBvcHRpb24uIAorCisuLiBfYHNjb3BlZC1tYXJraW5nYDoK
KworTWFya2luZyB3aG9sZSBjbGFzc2VzIG9yIG1vZHVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IG1heSB1c2UgYGBweXRlc3Qu
bWFya2BgIGRlY29yYXRvcnMgd2l0aCBjbGFzc2VzIHRvIGFwcGx5IG1hcmtlcnMgdG8gYWxsIG9m
CitpdHMgdGVzdCBtZXRob2RzOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X21hcmtfY2xhc3Ns
ZXZlbC5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0Lm1hcmsud2VidGVzdAorICAg
IGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF9zdGFydHVwKHNlbGYp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF9zdGFydHVwX2FuZF9tb3JlKHNl
bGYpOgorICAgICAgICAgICAgcGFzcworCitUaGlzIGlzIGVxdWl2YWxlbnQgdG8gZGlyZWN0bHkg
YXBwbHlpbmcgdGhlIGRlY29yYXRvciB0byB0aGUKK3R3byB0ZXN0IGZ1bmN0aW9ucy4KKworVG8g
cmVtYWluIGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aCBQeXRob24gMi40IHlvdSBjYW4gYWxzbyBz
ZXQgYQorYGBweXRlc3RtYXJrYGAgYXR0cmlidXRlIG9uIGEgVGVzdENsYXNzIGxpa2UgdGhpczo6
CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAg
ICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLndlYnRlc3QKKworb3IgaWYgeW91IG5lZWQg
dG8gdXNlIG11bHRpcGxlIG1hcmtlcnMgeW91IGNhbiB1c2UgYSBsaXN0OjoKKworICAgIGltcG9y
dCBweXRlc3QKKworICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBweXRlc3Rt
YXJrID0gW3B5dGVzdC5tYXJrLndlYnRlc3QsIHB5dGVzdC5tYXJrLnNsb3d0ZXN0XQorCitZb3Ug
Y2FuIGFsc28gc2V0IGEgbW9kdWxlIGxldmVsIG1hcmtlcjo6CisKKyAgICBpbXBvcnQgcHl0ZXN0
CisgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLndlYnRlc3QKKworaW4gd2hpY2ggY2FzZSBp
dCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGZ1bmN0aW9ucyBhbmQKK21ldGhvZHMgZGVmaW5lZCBp
biB0aGUgbW9kdWxlLgorCisuLiBfYG1hcmtpbmcgaW5kaXZpZHVhbCB0ZXN0cyB3aGVuIHVzaW5n
IHBhcmFtZXRyaXplYDoKKworTWFya2luZyBpbmRpdmlkdWFsIHRlc3RzIHdoZW4gdXNpbmcgcGFy
YW1ldHJpemUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK1doZW4gdXNpbmcgcGFyYW1ldHJpemUsIGFwcGx5aW5nIGEgbWFyayB3aWxsIG1ha2UgaXQg
YXBwbHkKK3RvIGVhY2ggaW5kaXZpZHVhbCB0ZXN0LiBIb3dldmVyIGl0IGlzIGFsc28gcG9zc2li
bGUgdG8KK2FwcGx5IGEgbWFya2VyIHRvIGFuIGluZGl2aWR1YWwgdGVzdCBpbnN0YW5jZTo6CisK
KyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsuZm9vCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisgICAgICAgICgxLCAyKSwKKyAg
ICAgICAgcHl0ZXN0Lm1hcmsuYmFyKCgxLCAzKSksCisgICAgICAgICgyLCAzKSwKKyAgICBdKQor
ICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CisgICAgICAgICBhc3NlcnQgbiAr
IDEgPT0gZXhwZWN0ZWQKKworSW4gdGhpcyBleGFtcGxlIHRoZSBtYXJrICJmb28iIHdpbGwgYXBw
bHkgdG8gZWFjaCBvZiB0aGUgdGhyZWUKK3Rlc3RzLCB3aGVyZWFzIHRoZSAiYmFyIiBtYXJrIGlz
IG9ubHkgYXBwbGllZCB0byB0aGUgc2Vjb25kIHRlc3QuCitTa2lwIGFuZCB4ZmFpbCBtYXJrcyBj
YW4gYWxzbyBiZSBhcHBsaWVkIGluIHRoaXMgd2F5LCBzZWUgOnJlZjpgc2tpcC94ZmFpbCB3aXRo
IHBhcmFtZXRyaXplYC4KKworLi4gbm90ZTo6CisKKyAgICBJZiB0aGUgZGF0YSB5b3UgYXJlIHBh
cmFtZXRyaXppbmcgaGFwcGVuIHRvIGJlIHNpbmdsZSBjYWxsYWJsZXMsIHlvdSBuZWVkIHRvIGJl
IGNhcmVmdWwKKyAgICB3aGVuIG1hcmtpbmcgdGhlc2UgaXRlbXMuIGBweXRlc3QubWFyay54ZmFp
bChteV9mdW5jKWAgd29uJ3Qgd29yayBiZWNhdXNlIGl0J3MgYWxzbyB0aGUKKyAgICBzaWduYXR1
cmUgb2YgYSBmdW5jdGlvbiBiZWluZyBkZWNvcmF0ZWQuIFRvIHJlc29sdmUgdGhpcyBhbWJpZ3Vp
dHksIHlvdSBuZWVkIHRvIHBhc3MgYQorICAgIHJlYXNvbiBhcmd1bWVudDoKKyAgICBgcHl0ZXN0
Lm1hcmsueGZhaWwoZnVuY19iYXIsIHJlYXNvbj0iSXNzdWUjNyIpYC4KKworCisuLiBfYGFkZGlu
ZyBhIGN1c3RvbSBtYXJrZXIgZnJvbSBhIHBsdWdpbmA6CisKK0N1c3RvbSBtYXJrZXIgYW5kIGNv
bW1hbmQgbGluZSBvcHRpb24gdG8gY29udHJvbCB0ZXN0IHJ1bnMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6
d2lwZQorCitQbHVnaW5zIGNhbiBwcm92aWRlIGN1c3RvbSBtYXJrZXJzIGFuZCBpbXBsZW1lbnQg
c3BlY2lmaWMgYmVoYXZpb3VyCitiYXNlZCBvbiBpdC4gVGhpcyBpcyBhIHNlbGYtY29udGFpbmVk
IGV4YW1wbGUgd2hpY2ggYWRkcyBhIGNvbW1hbmQKK2xpbmUgb3B0aW9uIGFuZCBhIHBhcmFtZXRy
aXplZCB0ZXN0IGZ1bmN0aW9uIG1hcmtlciB0byBydW4gdGVzdHMKK3NwZWNpZmllcyB2aWEgbmFt
ZWQgZW52aXJvbm1lbnRzOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAg
aW1wb3J0IHB5dGVzdAorICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAg
IHBhcnNlci5hZGRvcHRpb24oIi1FIiwgYWN0aW9uPSJzdG9yZSIsIG1ldGF2YXI9Ik5BTUUiLAor
ICAgICAgICAgICAgaGVscD0ib25seSBydW4gdGVzdHMgbWF0Y2hpbmcgdGhlIGVudmlyb25tZW50
IE5BTUUuIikKKworICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgICMg
cmVnaXN0ZXIgYW4gYWRkaXRpb25hbCBtYXJrZXIKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVl
X2xpbmUoIm1hcmtlcnMiLAorICAgICAgICAgICAgImVudihuYW1lKTogbWFyayB0ZXN0IHRvIHJ1
biBvbmx5IG9uIG5hbWVkIGVudmlyb25tZW50IikKKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9z
ZXR1cChpdGVtKToKKyAgICAgICAgZW52bWFya2VyID0gaXRlbS5nZXRfbWFya2VyKCJlbnYiKQor
ICAgICAgICBpZiBlbnZtYXJrZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlbnZuYW1lID0g
ZW52bWFya2VyLmFyZ3NbMF0KKyAgICAgICAgICAgIGlmIGVudm5hbWUgIT0gaXRlbS5jb25maWcu
Z2V0b3B0aW9uKCItRSIpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJ0ZXN0IHJlcXVp
cmVzIGVudiAlciIgJSBlbnZuYW1lKQorCitBIHRlc3QgZmlsZSB1c2luZyB0aGlzIGxvY2FsIHBs
dWdpbjo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zb21lZW52LnB5CisKKyAgICBpbXBvcnQg
cHl0ZXN0CisgICAgQHB5dGVzdC5tYXJrLmVudigic3RhZ2UxIikKKyAgICBkZWYgdGVzdF9iYXNp
Y19kYl9vcGVyYXRpb24oKToKKyAgICAgICAgcGFzcworCithbmQgYW4gZXhhbXBsZSBpbnZvY2F0
aW9ucyBzcGVjaWZ5aW5nIGEgZGlmZmVyZW50IGVudmlyb25tZW50IHRoYW4gd2hhdAordGhlIHRl
c3QgbmVlZHM6OgorCisgICAgJCBweXRlc3QgLUUgc3RhZ2UyCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBw
eS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5p
ZmlsZToKKyAgICBjb2xsZWN0ZWQgMSBpdGVtCisgICAgCisgICAgdGVzdF9zb21lZW52LnB5IHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVd
CisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09IDEgc2tpcHBlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCithbmQgaGVyZSBpcyBvbmUgdGhhdCBz
cGVjaWZpZXMgZXhhY3RseSB0aGUgZW52aXJvbm1lbnQgbmVlZGVkOjoKKworICAgICQgcHl0ZXN0
IC1FIHN0YWdlMQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24g
c3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRl
bQorICAgIAorICAgIHRlc3Rfc29tZWVudi5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09
PT09PT0KKworVGhlIGBgLS1tYXJrZXJzYGAgb3B0aW9uIGFsd2F5cyBnaXZlcyB5b3UgYSBsaXN0
IG9mIGF2YWlsYWJsZSBtYXJrZXJzOjoKKworICAgICQgcHl0ZXN0IC0tbWFya2VycworICAgIEBw
eXRlc3QubWFyay5lbnYobmFtZSk6IG1hcmsgdGVzdCB0byBydW4gb25seSBvbiBuYW1lZCBlbnZp
cm9ubWVudAorICAgIAorICAgIEBweXRlc3QubWFyay5za2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0
aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4gRXhhbXBsZTog
c2tpcChyZWFzb249Im5vIHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzIikgc2tpcHMgdGhl
IHRlc3QuCisgICAgCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihjb25kaXRpb24pOiBza2lwIHRo
ZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9uKSByZXN1bHRzIGluIGEgVHJ1
ZSB2YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhlIG1vZHVsZSBnbG9iYWwgY29u
dGV4dC4gRXhhbXBsZTogc2tpcGlmKCdzeXMucGxhdGZvcm0gPT0gIndpbjMyIicpIHNraXBzIHRo
ZSB0ZXN0IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSBodHRwOi8vcHl0ZXN0
Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbAorICAgIAorICAgIEBweXRlc3QubWFyay54ZmFpbChj
b25kaXRpb24sIHJlYXNvbj1Ob25lLCBydW49VHJ1ZSwgcmFpc2VzPU5vbmUsIHN0cmljdD1GYWxz
ZSk6IG1hcmsgdGhlIHRlc3QgZnVuY3Rpb24gYXMgYW4gZXhwZWN0ZWQgZmFpbHVyZSBpZiBldmFs
KGNvbmRpdGlvbikgaGFzIGEgVHJ1ZSB2YWx1ZS4gT3B0aW9uYWxseSBzcGVjaWZ5IGEgcmVhc29u
IGZvciBiZXR0ZXIgcmVwb3J0aW5nIGFuZCBydW49RmFsc2UgaWYgeW91IGRvbid0IGV2ZW4gd2Fu
dCB0byBleGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9uLiBJZiBvbmx5IHNwZWNpZmljIGV4Y2VwdGlv
bihzKSBhcmUgZXhwZWN0ZWQsIHlvdSBjYW4gbGlzdCB0aGVtIGluIHJhaXNlcywgYW5kIGlmIHRo
ZSB0ZXN0IGZhaWxzIGluIG90aGVyIHdheXMsIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYXMgYSB0cnVl
IGZhaWx1cmUuIFNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbAorICAg
IAorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2Fs
bCBhIHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJn
dW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5lcmFsbHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9m
IHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgb25seSBvbmUgbmFtZSBvciBhIGxpc3Qgb2Yg
dHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4
YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxs
cyBvZiB0aGUgZGVjb3JhdGVkIHRlc3QgZnVuY3Rpb24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5v
dGhlciB3aXRoIGFyZzE9Mi5zZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3BhcmFtZXRyaXpl
Lmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQgZXhhbXBsZXMuCisgICAgCisgICAgQHB5dGVzdC5tYXJr
LnVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lMSwgZml4dHVyZW5hbWUyLCAuLi4pOiBtYXJrIHRlc3Rz
IGFzIG5lZWRpbmcgYWxsIG9mIHRoZSBzcGVjaWZpZWQgZml4dHVyZXMuIHNlZSBodHRwOi8vcHl0
ZXN0Lm9yZy9sYXRlc3QvZml4dHVyZS5odG1sI3VzZWZpeHR1cmVzIAorICAgIAorICAgIEBweXRl
c3QubWFyay50cnlmaXJzdDogbWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3Vj
aCB0aGF0IHRoZSBwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMg
ZWFybHkgYXMgcG9zc2libGUuCisgICAgCisgICAgQHB5dGVzdC5tYXJrLnRyeWxhc3Q6IG1hcmsg
YSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgcGx1Z2luIG1hY2hp
bmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGxhc3QvYXMgbGF0ZSBhcyBwb3NzaWJsZS4KKyAgICAK
KworLi4gX2BwYXNzaW5nIGNhbGxhYmxlcyB0byBjdXN0b20gbWFya2Vyc2A6CisKK1Bhc3Npbmcg
YSBjYWxsYWJsZSB0byBjdXN0b20gbWFya2VycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitCZWxvdyBpcyB0aGUgY29u
ZmlnIGZpbGUgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIG5leHQgZXhhbXBsZXM6OgorCisgICAg
IyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1wb3J0IHN5cworCisgICAgZGVmIHB5dGVz
dF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICBtYXJrZXIgPSBpdGVtLmdldF9tYXJrZXIo
J215X21hcmtlcicpCisgICAgICAgIGlmIG1hcmtlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGZvciBpbmZvIGluIG1hcmtlcjoKKyAgICAgICAgICAgICAgICBwcmludCgnTWFya2VyIGluZm8g
bmFtZT17fSBhcmdzPXt9IGt3YXJzPXt9Jy5mb3JtYXQoaW5mby5uYW1lLCBpbmZvLmFyZ3MsIGlu
Zm8ua3dhcmdzKSkKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKworQSBjdXN0
b20gbWFya2VyIGNhbiBoYXZlIGl0cyBhcmd1bWVudCBzZXQsIGkuZS4gYGBhcmdzYGAgYW5kIGBg
a3dhcmdzYGAgcHJvcGVydGllcywgZGVmaW5lZCBieSBlaXRoZXIgaW52b2tpbmcgaXQgYXMgYSBj
YWxsYWJsZSBvciB1c2luZyBgYHB5dGVzdC5tYXJrLk1BUktFUl9OQU1FLndpdGhfYXJnc2BgLiBU
aGVzZSB0d28gbWV0aG9kcyBhY2hpZXZlIHRoZSBzYW1lIGVmZmVjdCBtb3N0IG9mIHRoZSB0aW1l
LgorCitIb3dldmVyLCBpZiB0aGVyZSBpcyBhIGNhbGxhYmxlIGFzIHRoZSBzaW5nbGUgcG9zaXRp
b25hbCBhcmd1bWVudCB3aXRoIG5vIGtleXdvcmQgYXJndW1lbnRzLCB1c2luZyB0aGUgYGBweXRl
c3QubWFyay5NQVJLRVJfTkFNRShjKWBgIHdpbGwgbm90IHBhc3MgYGBjYGAgYXMgYSBwb3NpdGlv
bmFsIGFyZ3VtZW50IGJ1dCBkZWNvcmF0ZSBgYGNgYCB3aXRoIHRoZSBjdXN0b20gbWFya2VyIChz
ZWUgOnJlZjpgTWFya0RlY29yYXRvciA8bWFyaz5gKS4gRm9ydHVuYXRlbHksIGBgcHl0ZXN0Lm1h
cmsuTUFSS0VSX05BTUUud2l0aF9hcmdzYGAgY29tZXMgdG8gdGhlIHJlc2N1ZTo6CisKKyAgICAj
IGNvbnRlbnQgb2YgdGVzdF9jdXN0b21fbWFya2VyLnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgZGVmIGhlbGxvX3dvcmxkKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiAnSGVs
bG8gV29ybGQnCisKKyAgICBAcHl0ZXN0Lm1hcmsubXlfbWFya2VyLndpdGhfYXJncyhoZWxsb193
b3JsZCkKKyAgICBkZWYgdGVzdF93aXRoX2FyZ3MoKToKKyAgICAgICAgcGFzcworCitUaGUgb3V0
cHV0IGlzIGFzIGZvbGxvd3M6OgorCisgICAgJCBweXRlc3QgLXEgLXMKKyAgICBNYXJrZXIgaW5m
byBuYW1lPW15X21hcmtlciBhcmdzPSg8ZnVuY3Rpb24gaGVsbG9fd29ybGQgYXQgMHhkZWFkYmVl
Zj4sKSBrd2Fycz17fQorICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIDEgcGFzc2VkIGluIDAu
MTIgc2Vjb25kcworCitXZSBjYW4gc2VlIHRoYXQgdGhlIGN1c3RvbSBtYXJrZXIgaGFzIGl0cyBh
cmd1bWVudCBzZXQgZXh0ZW5kZWQgd2l0aCB0aGUgZnVuY3Rpb24gYGBoZWxsb193b3JsZGBgLiBU
aGlzIGlzIHRoZSBrZXkgZGlmZmVyZW5jZSBiZXR3ZWVuIGNyZWF0aW5nIGEgY3VzdG9tIG1hcmtl
ciBhcyBhIGNhbGxhYmxlLCB3aGljaCBpbnZva2VzIGBgX19jYWxsX19gYCBiZWhpbmQgdGhlIHNj
ZW5lcywgYW5kIHVzaW5nIGBgd2l0aF9hcmdzYGAuCisKKworUmVhZGluZyBtYXJrZXJzIHdoaWNo
IHdlcmUgc2V0IGZyb20gbXVsdGlwbGUgcGxhY2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDogMi4yLjIKKwor
Li4gcmVnZW5kb2M6d2lwZQorCitJZiB5b3UgYXJlIGhlYXZpbHkgdXNpbmcgbWFya2VycyBpbiB5
b3VyIHRlc3Qgc3VpdGUgeW91IG1heSBlbmNvdW50ZXIgdGhlIGNhc2Ugd2hlcmUgYSBtYXJrZXIg
aXMgYXBwbGllZCBzZXZlcmFsIHRpbWVzIHRvIGEgdGVzdCBmdW5jdGlvbi4gIEZyb20gcGx1Z2lu
Citjb2RlIHlvdSBjYW4gcmVhZCBvdmVyIGFsbCBzdWNoIHNldHRpbmdzLiAgRXhhbXBsZTo6CisK
KyAgICAjIGNvbnRlbnQgb2YgdGVzdF9tYXJrX3RocmVlX3RpbWVzLnB5CisgICAgaW1wb3J0IHB5
dGVzdAorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5nbG9iKCJtb2R1bGUiLCB4PTEpCisK
KyAgICBAcHl0ZXN0Lm1hcmsuZ2xvYigiY2xhc3MiLCB4PTIpCisgICAgY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6CisgICAgICAgIEBweXRlc3QubWFyay5nbG9iKCJmdW5jdGlvbiIsIHg9MykKKyAg
ICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKHNlbGYpOgorICAgICAgICAgICAgcGFzcworCitIZXJl
IHdlIGhhdmUgdGhlIG1hcmtlciAiZ2xvYiIgYXBwbGllZCB0aHJlZSB0aW1lcyB0byB0aGUgc2Ft
ZQordGVzdCBmdW5jdGlvbi4gIEZyb20gYSBjb25mdGVzdCBmaWxlIHdlIGNhbiByZWFkIGl0IGxp
a2UgdGhpczo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgc3lz
CisKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgICAgIGcgPSBpdGVt
LmdldF9tYXJrZXIoImdsb2IiKQorICAgICAgICBpZiBnIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgZm9yIGluZm8gaW4gZzoKKyAgICAgICAgICAgICAgICBwcmludCAoImdsb2IgYXJncz0lcyBr
d2FyZ3M9JXMiICUoaW5mby5hcmdzLCBpbmZvLmt3YXJncykpCisgICAgICAgICAgICAgICAgc3lz
LnN0ZG91dC5mbHVzaCgpCisKK0xldCdzIHJ1biB0aGlzIHdpdGhvdXQgY2FwdHVyaW5nIG91dHB1
dCBhbmQgc2VlIHdoYXQgd2UgZ2V0OjoKKworICAgICQgcHl0ZXN0IC1xIC1zCisgICAgZ2xvYiBh
cmdzPSgnZnVuY3Rpb24nLCkga3dhcmdzPXsneCc6IDN9CisgICAgZ2xvYiBhcmdzPSgnY2xhc3Mn
LCkga3dhcmdzPXsneCc6IDJ9CisgICAgZ2xvYiBhcmdzPSgnbW9kdWxlJywpIGt3YXJncz17J3gn
OiAxfQorICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIDEgcGFzc2VkIGluIDAuMTIgc2Vjb25k
cworCittYXJraW5nIHBsYXRmb3JtIHNwZWNpZmljIHRlc3RzIHdpdGggcHl0ZXN0CistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisuLiByZWdlbmRvYzp3aXBlCisKK0NvbnNpZGVyIHlvdSBoYXZlIGEgdGVzdCBzdWl0ZSB3aGlj
aCBtYXJrcyB0ZXN0cyBmb3IgcGFydGljdWxhciBwbGF0Zm9ybXMsCituYW1lbHkgYGBweXRlc3Qu
bWFyay5kYXJ3aW5gYCwgYGBweXRlc3QubWFyay53aW4zMmBgIGV0Yy4gYW5kIHlvdQorYWxzbyBo
YXZlIHRlc3RzIHRoYXQgcnVuIG9uIGFsbCBwbGF0Zm9ybXMgYW5kIGhhdmUgbm8gc3BlY2lmaWMK
K21hcmtlci4gIElmIHlvdSBub3cgd2FudCB0byBoYXZlIGEgd2F5IHRvIG9ubHkgcnVuIHRoZSB0
ZXN0cworZm9yIHlvdXIgcGFydGljdWxhciBwbGF0Zm9ybSwgeW91IGNvdWxkIHVzZSB0aGUgZm9s
bG93aW5nIHBsdWdpbjo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICAjCisg
ICAgaW1wb3J0IHN5cworICAgIGltcG9ydCBweXRlc3QKKworICAgIEFMTCA9IHNldCgiZGFyd2lu
IGxpbnV4IHdpbjMyIi5zcGxpdCgpKQorCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0
ZW0pOgorICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIGl0ZW0uRnVuY3Rpb24pOgorICAgICAg
ICAgICAgcGxhdCA9IHN5cy5wbGF0Zm9ybQorICAgICAgICAgICAgaWYgbm90IGl0ZW0uZ2V0X21h
cmtlcihwbGF0KToKKyAgICAgICAgICAgICAgICBpZiBBTEwuaW50ZXJzZWN0aW9uKGl0ZW0ua2V5
d29yZHMpOgorICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgiY2Fubm90IHJ1biBvbiBw
bGF0Zm9ybSAlcyIgJShwbGF0KSkKKwordGhlbiB0ZXN0cyB3aWxsIGJlIHNraXBwZWQgaWYgdGhl
eSB3ZXJlIHNwZWNpZmllZCBmb3IgYSBkaWZmZXJlbnQgcGxhdGZvcm0uCitMZXQncyBkbyBhIGxp
dHRsZSB0ZXN0IGZpbGUgdG8gc2hvdyBob3cgdGhpcyBsb29rcyBsaWtlOjoKKworICAgICMgY29u
dGVudCBvZiB0ZXN0X3BsYXQucHkKKworICAgIGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3Qu
bWFyay5kYXJ3aW4KKyAgICBkZWYgdGVzdF9pZl9hcHBsZV9pc19ldmlsKCk6CisgICAgICAgIHBh
c3MKKworICAgIEBweXRlc3QubWFyay5saW51eAorICAgIGRlZiB0ZXN0X2lmX2xpbnV4X3dvcmtz
KCk6CisgICAgICAgIHBhc3MKKworICAgIEBweXRlc3QubWFyay53aW4zMgorICAgIGRlZiB0ZXN0
X2lmX3dpbjMyX2NyYXNoZXMoKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlc3RfcnVuc19l
dmVyeXdoZXJlKCk6CisgICAgICAgIHBhc3MKKwordGhlbiB5b3Ugd2lsbCBzZWUgdHdvIHRlc3Rz
IHNraXBwZWQgYW5kIHR3byBleGVjdXRlZCB0ZXN0cyBhcyBleHBlY3RlZDo6CisKKyAgICAkIHB5
dGVzdCAtcnMgIyB0aGlzIG9wdGlvbiByZXBvcnRzIHNraXAgcmVhc29ucworICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0z
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDQgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3BsYXQu
cHkgcy5zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFy
eSBpbmZvID09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgU0tJUCBbMl0gJFJFR0VORE9D
X1RNUERJUi9jb25mdGVzdC5weToxMzogY2Fubm90IHJ1biBvbiBwbGF0Zm9ybSBsaW51eAorICAg
IAorICAgID09PT09PT09PT09PT09PT09PT0gMiBwYXNzZWQsIDIgc2tpcHBlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT0KKworTm90ZSB0aGF0IGlmIHlvdSBzcGVjaWZ5IGEg
cGxhdGZvcm0gdmlhIHRoZSBtYXJrZXItY29tbWFuZCBsaW5lIG9wdGlvbiBsaWtlIHRoaXM6Ogor
CisgICAgJCBweXRlc3QgLW0gbGludXgKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0g
dGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxh
dGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVn
Z3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNv
bGxlY3RlZCA0IGl0ZW1zCisgICAgCisgICAgdGVzdF9wbGF0LnB5IC4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAzIHRlc3RzIGRlc2VsZWN0ZWQgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgID09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwgMyBk
ZXNlbGVjdGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT0KKwordGhlbiB0aGUg
dW5tYXJrZWQtdGVzdHMgd2lsbCBub3QgYmUgcnVuLiAgSXQgaXMgdGh1cyBhIHdheSB0byByZXN0
cmljdCB0aGUgcnVuIHRvIHRoZSBzcGVjaWZpYyB0ZXN0cy4KKworQXV0b21hdGljYWxseSBhZGRp
bmcgbWFya2VycyBiYXNlZCBvbiB0ZXN0IG5hbWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK0lm
IHlvdSBhIHRlc3Qgc3VpdGUgd2hlcmUgdGVzdCBmdW5jdGlvbiBuYW1lcyBpbmRpY2F0ZSBhIGNl
cnRhaW4KK3R5cGUgb2YgdGVzdCwgeW91IGNhbiBpbXBsZW1lbnQgYSBob29rIHRoYXQgYXV0b21h
dGljYWxseSBkZWZpbmVzCittYXJrZXJzIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhlIGBgLW1gYCBv
cHRpb24gd2l0aCBpdC4gTGV0J3MgbG9vaworYXQgdGhpcyB0ZXN0IG1vZHVsZTo6CisKKyAgICAj
IGNvbnRlbnQgb2YgdGVzdF9tb2R1bGUucHkKKworICAgIGRlZiB0ZXN0X2ludGVyZmFjZV9zaW1w
bGUoKToKKyAgICAgICAgYXNzZXJ0IDAKKworICAgIGRlZiB0ZXN0X2ludGVyZmFjZV9jb21wbGV4
KCk6CisgICAgICAgIGFzc2VydCAwCisKKyAgICBkZWYgdGVzdF9ldmVudF9zaW1wbGUoKToKKyAg
ICAgICAgYXNzZXJ0IDAKKworICAgIGRlZiB0ZXN0X3NvbWV0aGluZ19lbHNlKCk6CisgICAgICAg
IGFzc2VydCAwCisKK1dlIHdhbnQgdG8gZHluYW1pY2FsbHkgZGVmaW5lIHR3byBtYXJrZXJzIGFu
ZCBjYW4gZG8gaXQgaW4gYQorYGBjb25mdGVzdC5weWBgIHBsdWdpbjo6CisKKyAgICAjIGNvbnRl
bnQgb2YgY29uZnRlc3QucHkKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBkZWYgcHl0ZXN0X2Nv
bGxlY3Rpb25fbW9kaWZ5aXRlbXMoaXRlbXMpOgorICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoK
KyAgICAgICAgICAgIGlmICJpbnRlcmZhY2UiIGluIGl0ZW0ubm9kZWlkOgorICAgICAgICAgICAg
ICAgIGl0ZW0uYWRkX21hcmtlcihweXRlc3QubWFyay5pbnRlcmZhY2UpCisgICAgICAgICAgICBl
bGlmICJldmVudCIgaW4gaXRlbS5ub2RlaWQ6CisgICAgICAgICAgICAgICAgaXRlbS5hZGRfbWFy
a2VyKHB5dGVzdC5tYXJrLmV2ZW50KQorCitXZSBjYW4gbm93IHVzZSB0aGUgYGAtbSBvcHRpb25g
YCB0byBzZWxlY3Qgb25lIHNldDo6CisKKyAgJCBweXRlc3QgLW0gaW50ZXJmYWNlIC0tdGI9c2hv
cnQKKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54
LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICBjb2xsZWN0ZWQgNCBpdGVtcworICAKKyAgdGVzdF9t
b2R1bGUucHkgRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCisgIAorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJ
TFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIF9fX19fX19fX19fX19f
X19fX19fX19fX19fIHRlc3RfaW50ZXJmYWNlX3NpbXBsZSBfX19fX19fX19fX19fX19fX19fX19f
X19fX18KKyAgdGVzdF9tb2R1bGUucHk6MzogaW4gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlCisgICAg
ICBhc3NlcnQgMAorICBFICAgYXNzZXJ0IDAKKyAgX19fX19fX19fX19fX19fX19fX19fX19fX18g
dGVzdF9pbnRlcmZhY2VfY29tcGxleCBfX19fX19fX19fX19fX19fX19fX19fX19fXworICB0ZXN0
X21vZHVsZS5weTo2OiBpbiB0ZXN0X2ludGVyZmFjZV9jb21wbGV4CisgICAgICBhc3NlcnQgMAor
ICBFICAgYXNzZXJ0IDAKKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAyIHRlc3RzIGRl
c2VsZWN0ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICA9PT09PT09PT09PT09PT09
PT0gMiBmYWlsZWQsIDIgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09
PT09CisKK29yIHRvIHNlbGVjdCBib3RoICJldmVudCIgYW5kICJpbnRlcmZhY2UiIHRlc3RzOjoK
KworICAkIHB5dGVzdCAtbSAiaW50ZXJmYWNlIG9yIGV2ZW50IiAtLXRiPXNob3J0CisgID09PT09
PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKyAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3Qt
My54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJ
UiwgaW5pZmlsZToKKyAgY29sbGVjdGVkIDQgaXRlbXMKKyAgCisgIHRlc3RfbW9kdWxlLnB5IEZG
RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAl
XQorICAKKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICBfX19fX19fX19fX19fX19fX19fX19fX19f
XyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUgX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgIHRl
c3RfbW9kdWxlLnB5OjM6IGluIHRlc3RfaW50ZXJmYWNlX3NpbXBsZQorICAgICAgYXNzZXJ0IDAK
KyAgRSAgIGFzc2VydCAwCisgIF9fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfaW50ZXJm
YWNlX2NvbXBsZXggX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgdGVzdF9tb2R1bGUucHk6
NjogaW4gdGVzdF9pbnRlcmZhY2VfY29tcGxleAorICAgICAgYXNzZXJ0IDAKKyAgRSAgIGFzc2Vy
dCAwCisgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9ldmVudF9zaW1wbGUgX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgdGVzdF9tb2R1bGUucHk6OTogaW4gdGVzdF9l
dmVudF9zaW1wbGUKKyAgICAgIGFzc2VydCAwCisgIEUgICBhc3NlcnQgMAorICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09IDEgdGVzdHMgZGVzZWxlY3RlZCA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgID09PT09PT09PT09PT09PT09PSAzIGZhaWxlZCwgMSBkZXNlbGVjdGVkIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL211bHRpcHl0aG9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvbXVsdGlweXRob24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYwNzliZTdlMzdjMDU2MThmNjJmOWU1Y2Uw
MWJiNDcyNGQ2OWVjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL211bHRpcHl0aG9uLnB5CkBAIC0wLDAgKzEsNTIgQEAKKyIiIgorbW9kdWxlIGNvbnRhaW5p
bmcgYSBwYXJhbWV0cml6ZWQgdGVzdHMgdGVzdGluZyBjcm9zcy1weXRob24KK3NlcmlhbGl6YXRp
b24gdmlhIHRoZSBwaWNrbGUgbW9kdWxlLgorIiIiCitpbXBvcnQgcHkKK2ltcG9ydCBweXRlc3QK
K2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCisKK3B5dGhvbmxpc3QgPSBbJ3B5dGhvbjIuNycsICdweXRo
b24zLjQnLCAncHl0aG9uMy41J10KK0BweXRlc3QuZml4dHVyZShwYXJhbXM9cHl0aG9ubGlzdCkK
K2RlZiBweXRob24xKHJlcXVlc3QsIHRtcGRpcik6CisgICAgcGlja2xlZmlsZSA9IHRtcGRpci5q
b2luKCJkYXRhLnBpY2tsZSIpCisgICAgcmV0dXJuIFB5dGhvbihyZXF1ZXN0LnBhcmFtLCBwaWNr
bGVmaWxlKQorCitAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPXB5dGhvbmxpc3QpCitkZWYgcHl0aG9u
MihyZXF1ZXN0LCBweXRob24xKToKKyAgICByZXR1cm4gUHl0aG9uKHJlcXVlc3QucGFyYW0sIHB5
dGhvbjEucGlja2xlZmlsZSkKKworY2xhc3MgUHl0aG9uKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHZlcnNpb24sIHBpY2tsZWZpbGUpOgorICAgICAgICBzZWxmLnB5dGhvbnBhdGgg
PSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQodmVyc2lvbikKKyAgICAgICAgaWYgbm90IHNlbGYucHl0
aG9ucGF0aDoKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCIlciBub3QgZm91bmQiICUodmVyc2lv
biwpKQorICAgICAgICBzZWxmLnBpY2tsZWZpbGUgPSBwaWNrbGVmaWxlCisgICAgZGVmIGR1bXBz
KHNlbGYsIG9iaik6CisgICAgICAgIGR1bXBmaWxlID0gc2VsZi5waWNrbGVmaWxlLmRpcnBhdGgo
ImR1bXAucHkiKQorICAgICAgICBkdW1wZmlsZS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBwaWNrbGUKKyAgICAgICAgICAgIGYgPSBvcGVuKCVyLCAn
d2InKQorICAgICAgICAgICAgcyA9IHBpY2tsZS5kdW1wKCVyLCBmLCBwcm90b2NvbD0yKQorICAg
ICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICIiIiAlIChzdHIoc2VsZi5waWNrbGVmaWxlKSwg
b2JqKSkpCisgICAgICAgIHB5LnByb2Nlc3MuY21kZXhlYygiJXMgJXMiICUoc2VsZi5weXRob25w
YXRoLCBkdW1wZmlsZSkpCisKKyAgICBkZWYgbG9hZF9hbmRfaXNfdHJ1ZShzZWxmLCBleHByZXNz
aW9uKToKKyAgICAgICAgbG9hZGZpbGUgPSBzZWxmLnBpY2tsZWZpbGUuZGlycGF0aCgibG9hZC5w
eSIpCisgICAgICAgIGxvYWRmaWxlLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHBpY2tsZQorICAgICAgICAgICAgZiA9IG9wZW4oJXIsICdyYicpCisg
ICAgICAgICAgICBvYmogPSBwaWNrbGUubG9hZChmKQorICAgICAgICAgICAgZi5jbG9zZSgpCisg
ICAgICAgICAgICByZXMgPSBldmFsKCVyKQorICAgICAgICAgICAgaWYgbm90IHJlczoKKyAgICAg
ICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDEpCisgICAgICAgICIiIiAlIChzdHIoc2VsZi5w
aWNrbGVmaWxlKSwgZXhwcmVzc2lvbikpKQorICAgICAgICBwcmludCAobG9hZGZpbGUpCisgICAg
ICAgIHB5LnByb2Nlc3MuY21kZXhlYygiJXMgJXMiICUoc2VsZi5weXRob25wYXRoLCBsb2FkZmls
ZSkpCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgib2JqIiwgWzQyLCB7fSwgezE6M30sXSkK
K2RlZiB0ZXN0X2Jhc2ljX29iamVjdHMocHl0aG9uMSwgcHl0aG9uMiwgb2JqKToKKyAgICBweXRo
b24xLmR1bXBzKG9iaikKKyAgICBweXRob24yLmxvYWRfYW5kX2lzX3RydWUoIm9iaiA9PSAlcyIg
JSBvYmopCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24u
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZjcyYzcyMTllMTU0ZDVkN2Y3YjVhNzk1ODAzNjg2ZDZiOTk4MzllCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJzdApAQCAtMCwwICsx
LDkxIEBACisKKy4uIF9gbm9uLXB5dGhvbiB0ZXN0c2A6CisKK1dvcmtpbmcgd2l0aCBub24tcHl0
aG9uIHRlc3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKy4uIF9geWFtbCBwbHVnaW5gOgorCitBIGJhc2ljIGV4YW1wbGUgZm9yIHNwZWNp
ZnlpbmcgdGVzdHMgaW4gWWFtbCBmaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gX2BweXRlc3QteWFtbHdzZ2lg
OiBodHRwOi8vYml0YnVja2V0Lm9yZy9hYWZzaGFyL3B5dGVzdC15YW1sd3NnaS9zcmMvdGlwL3B5
dGVzdF95YW1sd3NnaS5weQorLi4gX2BQeVlBTUxgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5
cGkvUHlZQU1MLworCitIZXJlIGlzIGFuIGV4YW1wbGUgYGBjb25mdGVzdC5weWBgIChleHRyYWN0
ZWQgZnJvbSBBbGkgQWZzaG5hcnMgc3BlY2lhbCBwdXJwb3NlIGBweXRlc3QteWFtbHdzZ2lgXyBw
bHVnaW4pLiAgIFRoaXMgYGBjb25mdGVzdC5weWBgIHdpbGwgIGNvbGxlY3QgYGB0ZXN0Ki55bWxg
YCBmaWxlcyBhbmQgd2lsbCBleGVjdXRlIHRoZSB5YW1sLWZvcm1hdHRlZCBjb250ZW50IGFzIGN1
c3RvbSB0ZXN0czoKKworLi4gaW5jbHVkZTo6IG5vbnB5dGhvbi9jb25mdGVzdC5weQorICAgIDps
aXRlcmFsOgorCitZb3UgY2FuIGNyZWF0ZSBhIHNpbXBsZSBleGFtcGxlIGZpbGU6CisKKy4uIGlu
Y2x1ZGU6OiBub25weXRob24vdGVzdF9zaW1wbGUueW1sCisgICAgOmxpdGVyYWw6CisKK2FuZCBp
ZiB5b3UgaW5zdGFsbGVkIGBQeVlBTUxgXyBvciBhIGNvbXBhdGlibGUgWUFNTC1wYXJzZXIgeW91
IGNhbgorbm93IGV4ZWN1dGUgdGhlIHRlc3Qgc3BlY2lmaWNhdGlvbjo6CisKKyAgICBub25weXRo
b24gJCBweXRlc3QgdGVzdF9zaW1wbGUueW1sCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9ub25weXRob24sIGlu
aWZpbGU6CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3NpbXBsZS55bWwg
Ri4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fIHVzZWNhc2U6IGhlbGxvIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XworICAgIHVzZWNhc2UgZXhlY3V0aW9uIGZhaWxlZAorICAgICAgIHNwZWMgZmFpbGVkOiAnc29t
ZSc6ICdvdGhlcicKKyAgICAgICBubyBmdXJ0aGVyIGRldGFpbHMga25vd24gYXQgdGhpcyBwb2lu
dC4KKyAgICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCwgMSBwYXNzZWQgaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisKKy4uIHJlZ2VuZG9jOndpcGUKKworWW91IGdl
dCBvbmUgZG90IGZvciB0aGUgcGFzc2luZyBgYHN1YjE6IHN1YjFgYCBjaGVjayBhbmQgb25lIGZh
aWx1cmUuCitPYnZpb3VzbHkgaW4gdGhlIGFib3ZlIGBgY29uZnRlc3QucHlgYCB5b3UnbGwgd2Fu
dCB0byBpbXBsZW1lbnQgYSBtb3JlCitpbnRlcmVzdGluZyBpbnRlcnByZXRhdGlvbiBvZiB0aGUg
eWFtbC12YWx1ZXMuICBZb3UgY2FuIGVhc2lseSB3cml0ZQoreW91ciBvd24gZG9tYWluIHNwZWNp
ZmljIHRlc3RpbmcgbGFuZ3VhZ2UgdGhpcyB3YXkuCisKKy4uIG5vdGU6OgorCisgICAgYGByZXBy
X2ZhaWx1cmUoZXhjaW5mbylgYCBpcyBjYWxsZWQgZm9yIHJlcHJlc2VudGluZyB0ZXN0IGZhaWx1
cmVzLgorICAgIElmIHlvdSBjcmVhdGUgY3VzdG9tIGNvbGxlY3Rpb24gbm9kZXMgeW91IGNhbiBy
ZXR1cm4gYW4gZXJyb3IKKyAgICByZXByZXNlbnRhdGlvbiBzdHJpbmcgb2YgeW91ciBjaG9pY2Uu
ICBJdAorICAgIHdpbGwgYmUgcmVwb3J0ZWQgYXMgYSAocmVkKSBzdHJpbmcuCisKK2BgcmVwb3J0
aW5mbygpYGAgaXMgdXNlZCBmb3IgcmVwcmVzZW50aW5nIHRoZSB0ZXN0IGxvY2F0aW9uIGFuZCBp
cyBhbHNvCitjb25zdWx0ZWQgd2hlbiByZXBvcnRpbmcgaW4gYGB2ZXJib3NlYGAgbW9kZTo6CisK
KyAgICBub25weXRob24gJCBweXRlc3QgLXYKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICAgIGNhY2hlZGly
OiAuY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25vbnB5dGhvbiwgaW5pZmls
ZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMiBpdGVtcworICAgIAorICAgIHRlc3Rf
c2ltcGxlLnltbDo6aGVsbG8gRkFJTEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsgNTAlXQorICAgIHRlc3Rfc2ltcGxlLnltbDo6b2sgUEFTU0VEICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdXNlY2FzZTog
aGVsbG8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgdXNlY2FzZSBleGVjdXRp
b24gZmFpbGVkCisgICAgICAgc3BlYyBmYWlsZWQ6ICdzb21lJzogJ290aGVyJworICAgICAgIG5v
IGZ1cnRoZXIgZGV0YWlscyBrbm93biBhdCB0aGlzIHBvaW50LgorICAgID09PT09PT09PT09PT09
PT09PT09IDEgZmFpbGVkLCAxIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09
PT09PT0KKworLi4gcmVnZW5kb2M6d2lwZQorCitXaGlsZSBkZXZlbG9waW5nIHlvdXIgY3VzdG9t
IHRlc3QgY29sbGVjdGlvbiBhbmQgZXhlY3V0aW9uIGl0J3MgYWxzbworaW50ZXJlc3RpbmcgdG8g
anVzdCBsb29rIGF0IHRoZSBjb2xsZWN0aW9uIHRyZWU6OgorCisgICAgbm9ucHl0aG9uICQgcHl0
ZXN0IC0tY29sbGVjdC1vbmx5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9ub25weXRob24sIGluaWZpbGU6Cisg
ICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICA8WWFtbEZpbGUgJ3Rlc3Rfc2ltcGxlLnltbCc+Cisg
ICAgICA8WWFtbEl0ZW0gJ2hlbGxvJz4KKyAgICAgIDxZYW1sSXRlbSAnb2snPgorICAgIAorICAg
ID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09
PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL25vbnB5dGhvbi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25v
bnB5dGhvbi9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5
MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVz
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL25vbnB5dGhvbi9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL25vbnB5dGhvbi9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWZmMzAwMTU1MDkzZTJm
YzgzNTBiZjU3NWI4ZjM5ZWJmM2MyMzBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsNDAgQEAKKyMg
Y29udGVudCBvZiBjb25mdGVzdC5weQorCitpbXBvcnQgcHl0ZXN0CisKK2RlZiBweXRlc3RfY29s
bGVjdF9maWxlKHBhcmVudCwgcGF0aCk6CisgICAgaWYgcGF0aC5leHQgPT0gIi55bWwiIGFuZCBw
YXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoInRlc3QiKToKKyAgICAgICAgcmV0dXJuIFlhbWxGaWxl
KHBhdGgsIHBhcmVudCkKKworY2xhc3MgWWFtbEZpbGUocHl0ZXN0LkZpbGUpOgorICAgIGRlZiBj
b2xsZWN0KHNlbGYpOgorICAgICAgICBpbXBvcnQgeWFtbCAjIHdlIG5lZWQgYSB5YW1sIHBhcnNl
ciwgZS5nLiBQeVlBTUwKKyAgICAgICAgcmF3ID0geWFtbC5zYWZlX2xvYWQoc2VsZi5mc3BhdGgu
b3BlbigpKQorICAgICAgICBmb3IgbmFtZSwgc3BlYyBpbiBzb3J0ZWQocmF3Lml0ZW1zKCkpOgor
ICAgICAgICAgICAgeWllbGQgWWFtbEl0ZW0obmFtZSwgc2VsZiwgc3BlYykKKworY2xhc3MgWWFt
bEl0ZW0ocHl0ZXN0Lkl0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQs
IHNwZWMpOgorICAgICAgICBzdXBlcihZYW1sSXRlbSwgc2VsZikuX19pbml0X18obmFtZSwgcGFy
ZW50KQorICAgICAgICBzZWxmLnNwZWMgPSBzcGVjCisKKyAgICBkZWYgcnVudGVzdChzZWxmKToK
KyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNvcnRlZChzZWxmLnNwZWMuaXRlbXMoKSk6Cisg
ICAgICAgICAgICAjIHNvbWUgY3VzdG9tIHRlc3QgZXhlY3V0aW9uIChkdW1iIGV4YW1wbGUgZm9s
bG93cykKKyAgICAgICAgICAgIGlmIG5hbWUgIT0gdmFsdWU6CisgICAgICAgICAgICAgICAgcmFp
c2UgWWFtbEV4Y2VwdGlvbihzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiByZXByX2ZhaWx1
cmUoc2VsZiwgZXhjaW5mbyk6CisgICAgICAgICIiIiBjYWxsZWQgd2hlbiBzZWxmLnJ1bnRlc3Qo
KSByYWlzZXMgYW4gZXhjZXB0aW9uLiAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShleGNpbmZv
LnZhbHVlLCBZYW1sRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHJldHVybiAiXG4iLmpvaW4oWwor
ICAgICAgICAgICAgICAgICJ1c2VjYXNlIGV4ZWN1dGlvbiBmYWlsZWQiLAorICAgICAgICAgICAg
ICAgICIgICBzcGVjIGZhaWxlZDogJXI6ICVyIiAlIGV4Y2luZm8udmFsdWUuYXJnc1sxOjNdLAor
ICAgICAgICAgICAgICAgICIgICBubyBmdXJ0aGVyIGRldGFpbHMga25vd24gYXQgdGhpcyBwb2lu
dC4iCisgICAgICAgICAgICBdKQorCisgICAgZGVmIHJlcG9ydGluZm8oc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLmZzcGF0aCwgMCwgInVzZWNhc2U6ICVzIiAlIHNlbGYubmFtZQorCitjbGFz
cyBZYW1sRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgIiIiIGN1c3RvbSBleGNlcHRpb24gZm9y
IGVycm9yIHJlcG9ydGluZy4gIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9ub25weXRob24vdGVzdF9zaW1wbGUueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvbm9ucHl0aG9uL3Rlc3Rfc2ltcGxlLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGQ4ZDExZmMzZTFmNTJi
ZDU3YzMwMjQ1NTllNGFkNTc5ZGJlZjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL3Rlc3Rfc2ltcGxlLnltbApAQCAtMCwwICsxLDcgQEAK
KyMgdGVzdF9zaW1wbGUueW1sCitvazoKKyAgICBzdWIxOiBzdWIxCisKK2hlbGxvOgorICAgIHdv
cmxkOiB3b3JsZAorICAgIHNvbWU6IG90aGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9ub25weXRob24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9ub25weXRob24vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU1ZDc0NzEwYzM0
MjFkYjAwM2FiMzA3NDdiMTM2ZWQ0NGE3ZTIzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vX19pbml0
X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29uZnRlc3QucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vdGVzdF9zaW1wbGUueW1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9wYXJhbWV0cml6ZS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9wYXJhbWV0cml6ZS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQw
MWIyNTI3N2E4YWEwMWVjNWIyMzJjYjcxNzkxNjk3OWJlNzBmOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3BhcmFtZXRyaXplLnJzdApAQCAtMCwwICsxLDUz
NiBAQAorCisuLiBfcGFyYW1leGFtcGxlczoKKworUGFyYW1ldHJpemluZyB0ZXN0cworPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBjdXJyZW50
bW9kdWxlOjogX3B5dGVzdC5weXRob24KKworYGBweXRlc3RgYCBhbGxvd3MgdG8gZWFzaWx5IHBh
cmFtZXRyaXplIHRlc3QgZnVuY3Rpb25zLgorRm9yIGJhc2ljIGRvY3MsIHNlZSA6cmVmOmBwYXJh
bWV0cml6ZS1iYXNpY3NgLgorCitJbiB0aGUgZm9sbG93aW5nIHdlIHByb3ZpZGUgc29tZSBleGFt
cGxlcyB1c2luZwordGhlIGJ1aWx0aW4gbWVjaGFuaXNtcy4KKworR2VuZXJhdGluZyBwYXJhbWV0
ZXJzIGNvbWJpbmF0aW9ucywgZGVwZW5kaW5nIG9uIGNvbW1hbmQgbGluZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK0xldCdzIHNheSB3ZSB3YW50IHRvIGV4ZWN1
dGUgYSB0ZXN0IHdpdGggZGlmZmVyZW50IGNvbXB1dGF0aW9uCitwYXJhbWV0ZXJzIGFuZCB0aGUg
cGFyYW1ldGVyIHJhbmdlIHNoYWxsIGJlIGRldGVybWluZWQgYnkgYSBjb21tYW5kCitsaW5lIGFy
Z3VtZW50LiAgTGV0J3MgZmlyc3Qgd3JpdGUgYSBzaW1wbGUgKGRvLW5vdGhpbmcpIGNvbXB1dGF0
aW9uIHRlc3Q6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfY29tcHV0ZS5weQorCisgICAgZGVm
IHRlc3RfY29tcHV0ZShwYXJhbTEpOgorICAgICAgICBhc3NlcnQgcGFyYW0xIDwgNAorCitOb3cg
d2UgYWRkIGEgdGVzdCBjb25maWd1cmF0aW9uIGxpa2UgdGhpczo6CisKKyAgICAjIGNvbnRlbnQg
b2YgY29uZnRlc3QucHkKKworICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAg
ICAgIHBhcnNlci5hZGRvcHRpb24oIi0tYWxsIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAg
ICAgICAgIGhlbHA9InJ1biBhbGwgY29tYmluYXRpb25zIikKKworICAgIGRlZiBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICBpZiAncGFyYW0xJyBpbiBtZXRhZnVuYy5m
aXh0dXJlbmFtZXM6CisgICAgICAgICAgICBpZiBtZXRhZnVuYy5jb25maWcuZ2V0b3B0aW9uKCdh
bGwnKToKKyAgICAgICAgICAgICAgICBlbmQgPSA1CisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIGVuZCA9IDIKKyAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJwYXJh
bTEiLCByYW5nZShlbmQpKQorCitUaGlzIG1lYW5zIHRoYXQgd2Ugb25seSBydW4gMiB0ZXN0cyBp
ZiB3ZSBkbyBub3QgcGFzcyBgYC0tYWxsYGA6OgorCisgICAgJCBweXRlc3QgLXEgdGVzdF9jb21w
dXRlLnB5CisgICAgLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgMiBwYXNzZWQgaW4gMC4xMiBzZWNv
bmRzCisKK1dlIHJ1biBvbmx5IHR3byBjb21wdXRhdGlvbnMsIHNvIHdlIHNlZSB0d28gZG90cy4K
K2xldCdzIHJ1biB0aGUgZnVsbCBtb250eTo6CisKKyAgICAkIHB5dGVzdCAtcSAtLWFsbAorICAg
IC4uLi5GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2NvbXB1dGVbNF0gX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCisgICAgCisgICAgcGFyYW0xID0gNAorICAgIAorICAgICAgICBkZWYgdGVz
dF9jb21wdXRlKHBhcmFtMSk6CisgICAgPiAgICAgICBhc3NlcnQgcGFyYW0xIDwgNAorICAgIEUg
ICAgICAgYXNzZXJ0IDQgPCA0CisgICAgCisgICAgdGVzdF9jb21wdXRlLnB5OjM6IEFzc2VydGlv
bkVycm9yCisgICAgMSBmYWlsZWQsIDQgcGFzc2VkIGluIDAuMTIgc2Vjb25kcworCitBcyBleHBl
Y3RlZCB3aGVuIHJ1bm5pbmcgdGhlIGZ1bGwgcmFuZ2Ugb2YgYGBwYXJhbTFgYCB2YWx1ZXMKK3dl
J2xsIGdldCBhbiBlcnJvciBvbiB0aGUgbGFzdCBvbmUuCisKKworRGlmZmVyZW50IG9wdGlvbnMg
Zm9yIHRlc3QgSURzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworcHl0
ZXN0IHdpbGwgYnVpbGQgYSBzdHJpbmcgdGhhdCBpcyB0aGUgdGVzdCBJRCBmb3IgZWFjaCBzZXQg
b2YgdmFsdWVzIGluIGEKK3BhcmFtZXRyaXplZCB0ZXN0LiBUaGVzZSBJRHMgY2FuIGJlIHVzZWQg
d2l0aCBgYC1rYGAgdG8gc2VsZWN0IHNwZWNpZmljIGNhc2VzCit0byBydW4sIGFuZCB0aGV5IHdp
bGwgYWxzbyBpZGVudGlmeSB0aGUgc3BlY2lmaWMgY2FzZSB3aGVuIG9uZSBpcyBmYWlsaW5nLgor
UnVubmluZyBweXRlc3Qgd2l0aCBgYC0tY29sbGVjdC1vbmx5YGAgd2lsbCBzaG93IHRoZSBnZW5l
cmF0ZWQgSURzLgorCitOdW1iZXJzLCBzdHJpbmdzLCBib29sZWFucyBhbmQgTm9uZSB3aWxsIGhh
dmUgdGhlaXIgdXN1YWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uCit1c2VkIGluIHRoZSB0ZXN0IElE
LiBGb3Igb3RoZXIgb2JqZWN0cywgcHl0ZXN0IHdpbGwgbWFrZSBhIHN0cmluZyBiYXNlZCBvbgor
dGhlIGFyZ3VtZW50IG5hbWU6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfdGltZS5weQorCisg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRp
bWVkZWx0YQorCisgICAgdGVzdGRhdGEgPSBbCisgICAgICAgIChkYXRldGltZSgyMDAxLCAxMiwg
MTIpLCBkYXRldGltZSgyMDAxLCAxMiwgMTEpLCB0aW1lZGVsdGEoMSkpLAorICAgICAgICAoZGF0
ZXRpbWUoMjAwMSwgMTIsIDExKSwgZGF0ZXRpbWUoMjAwMSwgMTIsIDEyKSwgdGltZWRlbHRhKC0x
KSksCisgICAgXQorCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEsYixleHBlY3Rl
ZCIsIHRlc3RkYXRhKQorICAgIGRlZiB0ZXN0X3RpbWVkaXN0YW5jZV92MChhLCBiLCBleHBlY3Rl
ZCk6CisgICAgICAgIGRpZmYgPSBhIC0gYgorICAgICAgICBhc3NlcnQgZGlmZiA9PSBleHBlY3Rl
ZAorCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEsYixleHBlY3RlZCIsIHRlc3Rk
YXRhLCBpZHM9WyJmb3J3YXJkIiwgImJhY2t3YXJkIl0pCisgICAgZGVmIHRlc3RfdGltZWRpc3Rh
bmNlX3YxKGEsIGIsIGV4cGVjdGVkKToKKyAgICAgICAgZGlmZiA9IGEgLSBiCisgICAgICAgIGFz
c2VydCBkaWZmID09IGV4cGVjdGVkCisKKworICAgIGRlZiBpZGZuKHZhbCk6CisgICAgICAgIGlm
IGlzaW5zdGFuY2UodmFsLCAoZGF0ZXRpbWUsKSk6CisgICAgICAgICAgICAjIG5vdGUgdGhpcyB3
b3VsZG4ndCBzaG93IGFueSBob3Vycy9taW51dGVzL3NlY29uZHMKKyAgICAgICAgICAgIHJldHVy
biB2YWwuc3RyZnRpbWUoJyVZJW0lZCcpCisKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiYSxiLGV4cGVjdGVkIiwgdGVzdGRhdGEsIGlkcz1pZGZuKQorICAgIGRlZiB0ZXN0X3RpbWVk
aXN0YW5jZV92MihhLCBiLCBleHBlY3RlZCk6CisgICAgICAgIGRpZmYgPSBhIC0gYgorICAgICAg
ICBhc3NlcnQgZGlmZiA9PSBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJhLGIsZXhwZWN0ZWQiLCBbCisgICAgICAgIHB5dGVzdC5wYXJhbShkYXRldGltZSgyMDAxLCAx
MiwgMTIpLCBkYXRldGltZSgyMDAxLCAxMiwgMTEpLAorICAgICAgICAgICAgICAgICAgICAgdGlt
ZWRlbHRhKDEpLCBpZD0nZm9yd2FyZCcpLAorICAgICAgICBweXRlc3QucGFyYW0oZGF0ZXRpbWUo
MjAwMSwgMTIsIDExKSwgZGF0ZXRpbWUoMjAwMSwgMTIsIDEyKSwKKyAgICAgICAgICAgICAgICAg
ICAgIHRpbWVkZWx0YSgtMSksIGlkPSdiYWNrd2FyZCcpLAorICAgIF0pCisgICAgZGVmIHRlc3Rf
dGltZWRpc3RhbmNlX3YzKGEsIGIsIGV4cGVjdGVkKToKKyAgICAgICAgZGlmZiA9IGEgLSBiCisg
ICAgICAgIGFzc2VydCBkaWZmID09IGV4cGVjdGVkCisKK0luIGBgdGVzdF90aW1lZGlzdGFuY2Vf
djBgYCwgd2UgbGV0IHB5dGVzdCBnZW5lcmF0ZSB0aGUgdGVzdCBJRHMuCisKK0luIGBgdGVzdF90
aW1lZGlzdGFuY2VfdjFgYCwgd2Ugc3BlY2lmaWVkIGBgaWRzYGAgYXMgYSBsaXN0IG9mIHN0cmlu
Z3Mgd2hpY2ggd2VyZQordXNlZCBhcyB0aGUgdGVzdCBJRHMuIFRoZXNlIGFyZSBzdWNjaW5jdCwg
YnV0IGNhbiBiZSBhIHBhaW4gdG8gbWFpbnRhaW4uCisKK0luIGBgdGVzdF90aW1lZGlzdGFuY2Vf
djJgYCwgd2Ugc3BlY2lmaWVkIGBgaWRzYGAgYXMgYSBmdW5jdGlvbiB0aGF0IGNhbiBnZW5lcmF0
ZSBhCitzdHJpbmcgcmVwcmVzZW50YXRpb24gdG8gbWFrZSBwYXJ0IG9mIHRoZSB0ZXN0IElELiBT
byBvdXIgYGBkYXRldGltZWBgIHZhbHVlcyB1c2UgdGhlCitsYWJlbCBnZW5lcmF0ZWQgYnkgYGBp
ZGZuYGAsIGJ1dCBiZWNhdXNlIHdlIGRpZG4ndCBnZW5lcmF0ZSBhIGxhYmVsIGZvciBgYHRpbWVk
ZWx0YWBgCitvYmplY3RzLCB0aGV5IGFyZSBzdGlsbCB1c2luZyB0aGUgZGVmYXVsdCBweXRlc3Qg
cmVwcmVzZW50YXRpb246OgorCisKKyAgICAkIHB5dGVzdCB0ZXN0X3RpbWUucHkgLS1jb2xsZWN0
LW9ubHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290
ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA4IGl0ZW1zCisg
ICAgPE1vZHVsZSAndGVzdF90aW1lLnB5Jz4KKyAgICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlz
dGFuY2VfdjBbYTAtYjAtZXhwZWN0ZWQwXSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRp
c3RhbmNlX3YwW2ExLWIxLWV4cGVjdGVkMV0nPgorICAgICAgPEZ1bmN0aW9uICd0ZXN0X3RpbWVk
aXN0YW5jZV92MVtmb3J3YXJkXSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNl
X3YxW2JhY2t3YXJkXSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3YyWzIw
MDExMjEyLTIwMDExMjExLWV4cGVjdGVkMF0nPgorICAgICAgPEZ1bmN0aW9uICd0ZXN0X3RpbWVk
aXN0YW5jZV92MlsyMDAxMTIxMS0yMDAxMTIxMi1leHBlY3RlZDFdJz4KKyAgICAgIDxGdW5jdGlv
biAndGVzdF90aW1lZGlzdGFuY2VfdjNbZm9yd2FyZF0nPgorICAgICAgPEZ1bmN0aW9uICd0ZXN0
X3RpbWVkaXN0YW5jZV92M1tiYWNrd2FyZF0nPgorICAgIAorICAgID09PT09PT09PT09PT09PT09
PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
PT0KKworSW4gYGB0ZXN0X3RpbWVkaXN0YW5jZV92M2BgLCB3ZSB1c2VkIGBgcHl0ZXN0LnBhcmFt
YGAgdG8gc3BlY2lmeSB0aGUgdGVzdCBJRHMKK3RvZ2V0aGVyIHdpdGggdGhlIGFjdHVhbCBkYXRh
LCBpbnN0ZWFkIG9mIGxpc3RpbmcgdGhlbSBzZXBhcmF0ZWx5LgorCitBIHF1aWNrIHBvcnQgb2Yg
InRlc3RzY2VuYXJpb3MiCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
Li4gX2B0ZXN0IHNjZW5hcmlvc2A6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS90ZXN0c2Nl
bmFyaW9zLworCitIZXJlIGlzIGEgcXVpY2sgcG9ydCB0byBydW4gdGVzdHMgY29uZmlndXJlZCB3
aXRoIGB0ZXN0IHNjZW5hcmlvc2BfLAorYW4gYWRkLW9uIGZyb20gUm9iZXJ0IENvbGxpbnMgZm9y
IHRoZSBzdGFuZGFyZCB1bml0dGVzdCBmcmFtZXdvcmsuIFdlCitvbmx5IGhhdmUgdG8gd29yayBh
IGJpdCB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlY3QgYXJndW1lbnRzIGZvciBweXRlc3QncworOnB5
OmZ1bmM6YE1ldGFmdW5jLnBhcmFtZXRyaXplYDo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9z
Y2VuYXJpb3MucHkKKworICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgor
ICAgICAgICBpZGxpc3QgPSBbXQorICAgICAgICBhcmd2YWx1ZXMgPSBbXQorICAgICAgICBmb3Ig
c2NlbmFyaW8gaW4gbWV0YWZ1bmMuY2xzLnNjZW5hcmlvczoKKyAgICAgICAgICAgIGlkbGlzdC5h
cHBlbmQoc2NlbmFyaW9bMF0pCisgICAgICAgICAgICBpdGVtcyA9IHNjZW5hcmlvWzFdLml0ZW1z
KCkKKyAgICAgICAgICAgIGFyZ25hbWVzID0gW3hbMF0gZm9yIHggaW4gaXRlbXNdCisgICAgICAg
ICAgICBhcmd2YWx1ZXMuYXBwZW5kKChbeFsxXSBmb3IgeCBpbiBpdGVtc10pKQorICAgICAgICBt
ZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzLCBpZHM9aWRsaXN0LCBzY29w
ZT0iY2xhc3MiKQorCisgICAgc2NlbmFyaW8xID0gKCdiYXNpYycsIHsnYXR0cmlidXRlJzogJ3Zh
bHVlJ30pCisgICAgc2NlbmFyaW8yID0gKCdhZHZhbmNlZCcsIHsnYXR0cmlidXRlJzogJ3ZhbHVl
Mid9KQorCisgICAgY2xhc3MgVGVzdFNhbXBsZVdpdGhTY2VuYXJpb3Mob2JqZWN0KToKKyAgICAg
ICAgc2NlbmFyaW9zID0gW3NjZW5hcmlvMSwgc2NlbmFyaW8yXQorCisgICAgICAgIGRlZiB0ZXN0
X2RlbW8xKHNlbGYsIGF0dHJpYnV0ZSk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShh
dHRyaWJ1dGUsIHN0cikKKworICAgICAgICBkZWYgdGVzdF9kZW1vMihzZWxmLCBhdHRyaWJ1dGUp
OgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXR0cmlidXRlLCBzdHIpCisKK3RoaXMg
aXMgYSBmdWxseSBzZWxmLWNvbnRhaW5lZCBleGFtcGxlIHdoaWNoIHlvdSBjYW4gcnVuIHdpdGg6
OgorCisgICAgJCBweXRlc3QgdGVzdF9zY2VuYXJpb3MucHkKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlm
aWxlOgorICAgIGNvbGxlY3RlZCA0IGl0ZW1zCisgICAgCisgICAgdGVzdF9zY2VuYXJpb3MucHkg
Li4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVd
CisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSA0IHBhc3NlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitJZiB5b3UganVzdCBjb2xsZWN0IHRl
c3RzIHlvdSdsbCBhbHNvIG5pY2VseSBzZWUgJ2FkdmFuY2VkJyBhbmQgJ2Jhc2ljJyBhcyB2YXJp
YW50cyBmb3IgdGhlIHRlc3QgZnVuY3Rpb246OgorCisKKyAgICAkIHB5dGVzdCAtLWNvbGxlY3Qt
b25seSB0ZXN0X3NjZW5hcmlvcy5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29s
bGVjdGVkIDQgaXRlbXMKKyAgICA8TW9kdWxlICd0ZXN0X3NjZW5hcmlvcy5weSc+CisgICAgICA8
Q2xhc3MgJ1Rlc3RTYW1wbGVXaXRoU2NlbmFyaW9zJz4KKyAgICAgICAgPEluc3RhbmNlICcoKSc+
CisgICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X2RlbW8xW2Jhc2ljXSc+CisgICAgICAgICAgPEZ1
bmN0aW9uICd0ZXN0X2RlbW8yW2Jhc2ljXSc+CisgICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X2Rl
bW8xW2FkdmFuY2VkXSc+CisgICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X2RlbW8yW2FkdmFuY2Vk
XSc+CisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQorCitOb3RlIHRoYXQgd2UgdG9sZCBg
YG1ldGFmdW5jLnBhcmFtZXRyaXplKClgYCB0aGF0IHlvdXIgc2NlbmFyaW8gdmFsdWVzCitzaG91
bGQgYmUgY29uc2lkZXJlZCBjbGFzcy1zY29wZWQuICBXaXRoIHB5dGVzdC0yLjMgdGhpcyBsZWFk
cyB0byBhCityZXNvdXJjZS1iYXNlZCBvcmRlcmluZy4KKworRGVmZXJyaW5nIHRoZSBzZXR1cCBv
ZiBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitUaGUgcGFyYW1ldHJp
emF0aW9uIG9mIHRlc3QgZnVuY3Rpb25zIGhhcHBlbnMgYXQgY29sbGVjdGlvbgordGltZS4gIEl0
IGlzIGEgZ29vZCBpZGVhIHRvIHNldHVwIGV4cGVuc2l2ZSByZXNvdXJjZXMgbGlrZSBEQgorY29u
bmVjdGlvbnMgb3Igc3VicHJvY2VzcyBvbmx5IHdoZW4gdGhlIGFjdHVhbCB0ZXN0IGlzIHJ1bi4K
K0hlcmUgaXMgYSBzaW1wbGUgZXhhbXBsZSBob3cgeW91IGNhbiBhY2hpZXZlIHRoYXQsIGZpcnN0
Cit0aGUgYWN0dWFsIHRlc3QgcmVxdWlyaW5nIGEgYGBkYmBgIG9iamVjdDo6CisKKyAgICAjIGNv
bnRlbnQgb2YgdGVzdF9iYWNrZW5kcy5weQorCisgICAgaW1wb3J0IHB5dGVzdAorICAgIGRlZiB0
ZXN0X2RiX2luaXRpYWxpemVkKGRiKToKKyAgICAgICAgIyBhIGR1bW15IHRlc3QKKyAgICAgICAg
aWYgZGIuX19jbGFzc19fLl9fbmFtZV9fID09ICJEQjIiOgorICAgICAgICAgICAgcHl0ZXN0LmZh
aWwoImRlbGliZXJhdGVseSBmYWlsaW5nIGZvciBkZW1vIHB1cnBvc2VzIikKKworV2UgY2FuIG5v
dyBhZGQgYSB0ZXN0IGNvbmZpZ3VyYXRpb24gdGhhdCBnZW5lcmF0ZXMgdHdvIGludm9jYXRpb25z
IG9mCit0aGUgYGB0ZXN0X2RiX2luaXRpYWxpemVkYGAgZnVuY3Rpb24gYW5kIGFsc28gaW1wbGVt
ZW50cyBhIGZhY3RvcnkgdGhhdAorY3JlYXRlcyBhIGRhdGFiYXNlIG9iamVjdCBmb3IgdGhlIGFj
dHVhbCB0ZXN0IGludm9jYXRpb25zOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQor
ICAgIGltcG9ydCBweXRlc3QKKworICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1
bmMpOgorICAgICAgICBpZiAnZGInIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoKKyAgICAgICAg
ICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJkYiIsIFsnZDEnLCAnZDInXSwgaW5kaXJlY3Q9VHJ1
ZSkKKworICAgIGNsYXNzIERCMShvYmplY3QpOgorICAgICAgICAib25lIGRhdGFiYXNlIG9iamVj
dCIKKyAgICBjbGFzcyBEQjIob2JqZWN0KToKKyAgICAgICAgImFsdGVybmF0aXZlIGRhdGFiYXNl
IG9iamVjdCIKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBkYihyZXF1ZXN0KToKKyAg
ICAgICAgaWYgcmVxdWVzdC5wYXJhbSA9PSAiZDEiOgorICAgICAgICAgICAgcmV0dXJuIERCMSgp
CisgICAgICAgIGVsaWYgcmVxdWVzdC5wYXJhbSA9PSAiZDIiOgorICAgICAgICAgICAgcmV0dXJu
IERCMigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZh
bGlkIGludGVybmFsIHRlc3QgY29uZmlnIikKKworTGV0J3MgZmlyc3Qgc2VlIGhvdyBpdCBsb29r
cyBsaWtlIGF0IGNvbGxlY3Rpb24gdGltZTo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X2JhY2tlbmRz
LnB5IC0tY29sbGVjdC1vbmx5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0
ZWQgMiBpdGVtcworICAgIDxNb2R1bGUgJ3Rlc3RfYmFja2VuZHMucHknPgorICAgICAgPEZ1bmN0
aW9uICd0ZXN0X2RiX2luaXRpYWxpemVkW2QxXSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfZGJf
aW5pdGlhbGl6ZWRbZDJdJz4KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0
ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisKK0FuZCB0
aGVuIHdoZW4gd2UgcnVuIHRoZSB0ZXN0OjoKKworICAgICQgcHl0ZXN0IC1xIHRlc3RfYmFja2Vu
ZHMucHkKKyAgICAuRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2RiX2luaXRpYWxpemVkW2QyXSBfX19f
X19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIGRiID0gPGNvbmZ0ZXN0LkRCMiBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfZGJfaW5pdGlhbGl6ZWQo
ZGIpOgorICAgICAgICAgICAgIyBhIGR1bW15IHRlc3QKKyAgICAgICAgICAgIGlmIGRiLl9fY2xh
c3NfXy5fX25hbWVfXyA9PSAiREIyIjoKKyAgICA+ICAgICAgICAgICBweXRlc3QuZmFpbCgiZGVs
aWJlcmF0ZWx5IGZhaWxpbmcgZm9yIGRlbW8gcHVycG9zZXMiKQorICAgIEUgICAgICAgICAgIEZh
aWxlZDogZGVsaWJlcmF0ZWx5IGZhaWxpbmcgZm9yIGRlbW8gcHVycG9zZXMKKyAgICAKKyAgICB0
ZXN0X2JhY2tlbmRzLnB5OjY6IEZhaWxlZAorICAgIDEgZmFpbGVkLCAxIHBhc3NlZCBpbiAwLjEy
IHNlY29uZHMKKworVGhlIGZpcnN0IGludm9jYXRpb24gd2l0aCBgYGRiID09ICJEQjEiYGAgcGFz
c2VkIHdoaWxlIHRoZSBzZWNvbmQgd2l0aCBgYGRiID09ICJEQjIiYGAgZmFpbGVkLiAgT3VyIGBg
ZGJgYCBmaXh0dXJlIGZ1bmN0aW9uIGhhcyBpbnN0YW50aWF0ZWQgZWFjaCBvZiB0aGUgREIgdmFs
dWVzIGR1cmluZyB0aGUgc2V0dXAgcGhhc2Ugd2hpbGUgdGhlIGBgcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzYGAgZ2VuZXJhdGVkIHR3byBhY2NvcmRpbmcgY2FsbHMgdG8gdGhlIGBgdGVzdF9kYl9pbml0
aWFsaXplZGBgIGR1cmluZyB0aGUgY29sbGVjdGlvbiBwaGFzZS4KKworLi4gcmVnZW5kb2M6d2lw
ZQorCitBcHBseSBpbmRpcmVjdCBvbiBwYXJ0aWN1bGFyIGFyZ3VtZW50cworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1Zlcnkgb2Z0ZW4gcGFy
YW1ldHJpemF0aW9uIHVzZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBuYW1lLiBUaGVyZSBpcyBv
cHBvcnR1bml0eSB0byBhcHBseSBgYGluZGlyZWN0YGAKK3BhcmFtZXRlciBvbiBwYXJ0aWN1bGFy
IGFyZ3VtZW50cy4gSXQgY2FuIGJlIGRvbmUgYnkgcGFzc2luZyBsaXN0IG9yIHR1cGxlIG9mCith
cmd1bWVudHMnIG5hbWVzIHRvIGBgaW5kaXJlY3RgYC4gSW4gdGhlIGV4YW1wbGUgYmVsb3cgdGhl
cmUgaXMgYSBmdW5jdGlvbiBgYHRlc3RfaW5kaXJlY3RgYCB3aGljaCB1c2VzCit0d28gZml4dHVy
ZXM6IGBgeGBgIGFuZCBgYHlgYC4gSGVyZSB3ZSBnaXZlIHRvIGluZGlyZWN0IHRoZSBsaXN0LCB3
aGljaCBjb250YWlucyB0aGUgbmFtZSBvZiB0aGUKK2ZpeHR1cmUgYGB4YGAuIFRoZSBpbmRpcmVj
dCBwYXJhbWV0ZXIgd2lsbCBiZSBhcHBsaWVkIHRvIHRoaXMgYXJndW1lbnQgb25seSwgYW5kIHRo
ZSB2YWx1ZSBgYGFgYAord2lsbCBiZSBwYXNzZWQgdG8gcmVzcGVjdGl2ZSBmaXh0dXJlIGZ1bmN0
aW9uOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X2luZGlyZWN0X2xpc3QucHkKKworICAgIGlt
cG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICBk
ZWYgeChyZXF1ZXN0KToKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAzCisKKyAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICBkZWYgeShyZXF1ZXN0KToKKyAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAyCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PVsneCddKQorICAgIGRlZiB0ZXN0
X2luZGlyZWN0KHgseSk6CisgICAgICAgIGFzc2VydCB4ID09ICdhYWEnCisgICAgICAgIGFzc2Vy
dCB5ID09ICdiJworCitUaGUgcmVzdWx0IG9mIHRoaXMgdGVzdCB3aWxsIGJlIHN1Y2Nlc3NmdWw6
OgorCisgICAgJCBweXRlc3QgdGVzdF9pbmRpcmVjdF9saXN0LnB5IC0tY29sbGVjdC1vbmx5Cisg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngu
eSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMSBpdGVtCisgICAgPE1vZHVs
ZSAndGVzdF9pbmRpcmVjdF9saXN0LnB5Jz4KKyAgICAgIDxGdW5jdGlvbiAndGVzdF9pbmRpcmVj
dFthLWJdJz4KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4g
aW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIHJlZ2VuZG9jOndp
cGUKKworUGFyYW1ldHJpemluZyB0ZXN0IG1ldGhvZHMgdGhyb3VnaCBwZXItY2xhc3MgY29uZmln
dXJhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLi4gX2B1bml0dGVzdCBwYXJhbWV0cml6ZXJgOiBodHRwczovL2dp
dGh1Yi5jb20vdGVzdGluZy1jYWJhbC91bml0dGVzdC1leHQvYmxvYi9tYXN0ZXIvcGFyYW1zLnB5
CisKKworSGVyZSBpcyBhbiBleGFtcGxlIGBgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzYGAgZnVuY3Rp
b24gaW1wbGVtZW50aW5nIGEKK3BhcmFtZXRyaXphdGlvbiBzY2hlbWUgc2ltaWxhciB0byBNaWNo
YWVsIEZvb3JkJ3MgYHVuaXR0ZXN0CitwYXJhbWV0cml6ZXJgXyBidXQgaW4gYSBsb3QgbGVzcyBj
b2RlOjoKKworICAgICMgY29udGVudCBvZiAuL3Rlc3RfcGFyYW1ldHJpemUucHkKKyAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAg
ICAgICAgIyBjYWxsZWQgb25jZSBwZXIgZWFjaCB0ZXN0IGZ1bmN0aW9uCisgICAgICAgIGZ1bmNh
cmdsaXN0ID0gbWV0YWZ1bmMuY2xzLnBhcmFtc1ttZXRhZnVuYy5mdW5jdGlvbi5fX25hbWVfX10K
KyAgICAgICAgYXJnbmFtZXMgPSBzb3J0ZWQoZnVuY2FyZ2xpc3RbMF0pCisgICAgICAgIG1ldGFm
dW5jLnBhcmFtZXRyaXplKGFyZ25hbWVzLCBbW2Z1bmNhcmdzW25hbWVdIGZvciBuYW1lIGluIGFy
Z25hbWVzXQorICAgICAgICAgICAgICAgIGZvciBmdW5jYXJncyBpbiBmdW5jYXJnbGlzdF0pCisK
KyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgIyBhIG1hcCBzcGVjaWZ5aW5n
IG11bHRpcGxlIGFyZ3VtZW50IHNldHMgZm9yIGEgdGVzdCBtZXRob2QKKyAgICAgICAgcGFyYW1z
ID0geworICAgICAgICAgICAgJ3Rlc3RfZXF1YWxzJzogW2RpY3QoYT0xLCBiPTIpLCBkaWN0KGE9
MywgYj0zKSwgXSwKKyAgICAgICAgICAgICd0ZXN0X3plcm9kaXZpc2lvbic6IFtkaWN0KGE9MSwg
Yj0wKSwgXSwKKyAgICAgICAgfQorCisgICAgICAgIGRlZiB0ZXN0X2VxdWFscyhzZWxmLCBhLCBi
KToKKyAgICAgICAgICAgIGFzc2VydCBhID09IGIKKworICAgICAgICBkZWYgdGVzdF96ZXJvZGl2
aXNpb24oc2VsZiwgYSwgYik6CisgICAgICAgICAgICBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lv
bkVycm9yLCAiYS9iIikKKworT3VyIHRlc3QgZ2VuZXJhdG9yIGxvb2tzIHVwIGEgY2xhc3MtbGV2
ZWwgZGVmaW5pdGlvbiB3aGljaCBzcGVjaWZpZXMgd2hpY2gKK2FyZ3VtZW50IHNldHMgdG8gdXNl
IGZvciBlYWNoIHRlc3QgZnVuY3Rpb24uICBMZXQncyBydW4gaXQ6OgorCisgICAgJCBweXRlc3Qg
LXEKKyAgICBGLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
X19fX19fX19fX19fX19fX19fX19fX19fIFRlc3RDbGFzcy50ZXN0X2VxdWFsc1sxLTJdIF9fX19f
X19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8dGVzdF9wYXJhbWV0cml6ZS5U
ZXN0Q2xhc3Mgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+LCBhID0gMSwgYiA9IDIKKyAgICAKKyAgICAg
ICAgZGVmIHRlc3RfZXF1YWxzKHNlbGYsIGEsIGIpOgorICAgID4gICAgICAgYXNzZXJ0IGEgPT0g
YgorICAgIEUgICAgICAgYXNzZXJ0IDEgPT0gMgorICAgIAorICAgIHRlc3RfcGFyYW1ldHJpemUu
cHk6MTg6IEFzc2VydGlvbkVycm9yCisgICAgMSBmYWlsZWQsIDIgcGFzc2VkIGluIDAuMTIgc2Vj
b25kcworCitJbmRpcmVjdCBwYXJhbWV0cml6YXRpb24gd2l0aCBtdWx0aXBsZSBmaXh0dXJlcwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworSGVyZSBpcyBhIHN0cmlwcGVkIGRvd24gcmVhbC1saWZlIGV4YW1wbGUgb2YgdXNp
bmcgcGFyYW1ldHJpemVkCit0ZXN0aW5nIGZvciB0ZXN0aW5nIHNlcmlhbGl6YXRpb24gb2Ygb2Jq
ZWN0cyBiZXR3ZWVuIGRpZmZlcmVudCBweXRob24KK2ludGVycHJldGVycy4gIFdlIGRlZmluZSBh
IGBgdGVzdF9iYXNpY19vYmplY3RzYGAgZnVuY3Rpb24gd2hpY2gKK2lzIHRvIGJlIHJ1biB3aXRo
IGRpZmZlcmVudCBzZXRzIG9mIGFyZ3VtZW50cyBmb3IgaXRzIHRocmVlIGFyZ3VtZW50czoKKwor
KiBgYHB5dGhvbjFgYDogZmlyc3QgcHl0aG9uIGludGVycHJldGVyLCBydW4gdG8gcGlja2xlLWR1
bXAgYW4gb2JqZWN0IHRvIGEgZmlsZQorKiBgYHB5dGhvbjJgYDogc2Vjb25kIGludGVycHJldGVy
LCBydW4gdG8gcGlja2xlLWxvYWQgYW4gb2JqZWN0IGZyb20gYSBmaWxlCisqIGBgb2JqYGA6IG9i
amVjdCB0byBiZSBkdW1wZWQvbG9hZGVkCisKKy4uIGxpdGVyYWxpbmNsdWRlOjogbXVsdGlweXRo
b24ucHkKKworUnVubmluZyBpdCByZXN1bHRzIGluIHNvbWUgc2tpcHMgaWYgd2UgZG9uJ3QgaGF2
ZSBhbGwgdGhlIHB5dGhvbiBpbnRlcnByZXRlcnMgaW5zdGFsbGVkIGFuZCBvdGhlcndpc2UgcnVu
cyBhbGwgY29tYmluYXRpb25zICg1IGludGVycHJldGVycyB0aW1lcyA1IGludGVycHJldGVycyB0
aW1lcyAzIG9iamVjdHMgdG8gc2VyaWFsaXplL2Rlc2VyaWFsaXplKTo6CisKKyAgIC4gJCBweXRl
c3QgLXJzIC1xIG11bHRpcHl0aG9uLnB5CisgICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgIDI3IHBh
c3NlZCBpbiAwLjEyIHNlY29uZHMKKworSW5kaXJlY3QgcGFyYW1ldHJpemF0aW9uIG9mIG9wdGlv
bmFsIGltcGxlbWVudGF0aW9ucy9pbXBvcnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3Ugd2FudCB0
byBjb21wYXJlIHRoZSBvdXRjb21lcyBvZiBzZXZlcmFsIGltcGxlbWVudGF0aW9ucyBvZiBhIGdp
dmVuCitBUEksIHlvdSBjYW4gd3JpdGUgdGVzdCBmdW5jdGlvbnMgdGhhdCByZWNlaXZlIHRoZSBh
bHJlYWR5IGltcG9ydGVkIGltcGxlbWVudGF0aW9ucworYW5kIGdldCBza2lwcGVkIGluIGNhc2Ug
dGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBpbXBvcnRhYmxlL2F2YWlsYWJsZS4gIExldCdzCitz
YXkgd2UgaGF2ZSBhICJiYXNlIiBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlIG90aGVyIChwb3NzaWJs
eSBvcHRpbWl6ZWQgb25lcykKK25lZWQgdG8gcHJvdmlkZSBzaW1pbGFyIHJlc3VsdHM6OgorCisg
ICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgIGRlZiBiYXNlbW9kKHJlcXVlc3Qp
OgorICAgICAgICByZXR1cm4gcHl0ZXN0LmltcG9ydG9yc2tpcCgiYmFzZSIpCisKKyAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJhbXM9WyJvcHQxIiwgIm9wdDIiXSkKKyAg
ICBkZWYgb3B0bW9kKHJlcXVlc3QpOgorICAgICAgICByZXR1cm4gcHl0ZXN0LmltcG9ydG9yc2tp
cChyZXF1ZXN0LnBhcmFtKQorCitBbmQgdGhlbiBhIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYSBz
aW1wbGUgZnVuY3Rpb246OgorCisgICAgIyBjb250ZW50IG9mIGJhc2UucHkKKyAgICBkZWYgZnVu
YzEoKToKKyAgICAgICAgcmV0dXJuIDEKKworQW5kIGFuIG9wdGltaXplZCB2ZXJzaW9uOjoKKwor
ICAgICMgY29udGVudCBvZiBvcHQxLnB5CisgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgIHJldHVy
biAxLjAwMDEKKworQW5kIGZpbmFsbHkgYSBsaXR0bGUgdGVzdCBtb2R1bGU6OgorCisgICAgIyBj
b250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CisKKyAgICBkZWYgdGVzdF9mdW5jMShiYXNlbW9kLCBv
cHRtb2QpOgorICAgICAgICBhc3NlcnQgcm91bmQoYmFzZW1vZC5mdW5jMSgpLCAzKSA9PSByb3Vu
ZChvcHRtb2QuZnVuYzEoKSwgMykKKworCitJZiB5b3UgcnVuIHRoaXMgd2l0aCByZXBvcnRpbmcg
Zm9yIHNraXBzIGVuYWJsZWQ6OgorCisgICAgJCBweXRlc3QgLXJzIHRlc3RfbW9kdWxlLnB5Cisg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngu
eSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMiBpdGVtcworICAgIAorICAg
IHRlc3RfbW9kdWxlLnB5IC5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQg
dGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBTS0lQIFsx
XSAkUkVHRU5ET0NfVE1QRElSL2NvbmZ0ZXN0LnB5OjExOiBjb3VsZCBub3QgaW1wb3J0ICdvcHQy
JworICAgIAorICAgID09PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQsIDEgc2tpcHBlZCBpbiAw
LjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT0KKworWW91J2xsIHNlZSB0aGF0IHdlIGRv
bid0IGhhdmUgYSBgYG9wdDJgYCBtb2R1bGUgYW5kIHRodXMgdGhlIHNlY29uZCB0ZXN0IHJ1bgor
b2Ygb3VyIGBgdGVzdF9mdW5jMWBgIHdhcyBza2lwcGVkLiAgQSBmZXcgbm90ZXM6CisKKy0gdGhl
IGZpeHR1cmUgZnVuY3Rpb25zIGluIHRoZSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBhcmUgInNlc3Np
b24tc2NvcGVkIiBiZWNhdXNlIHdlCisgIGRvbid0IG5lZWQgdG8gaW1wb3J0IG1vcmUgdGhhbiBv
bmNlCisKKy0gaWYgeW91IGhhdmUgbXVsdGlwbGUgdGVzdCBmdW5jdGlvbnMgYW5kIGEgc2tpcHBl
ZCBpbXBvcnQsIHlvdSB3aWxsIHNlZQorICB0aGUgYGBbMV1gYCBjb3VudCBpbmNyZWFzaW5nIGlu
IHRoZSByZXBvcnQKKworLSB5b3UgY2FuIHB1dCA6cmVmOmBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUgPEBweXRlc3QubWFyay5wYXJhbWV0cml6ZT5gIHN0eWxlCisgIHBhcmFtZXRyaXphdGlvbiBv
biB0aGUgdGVzdCBmdW5jdGlvbnMgdG8gcGFyYW1ldHJpemUgaW5wdXQvb3V0cHV0CisgIHZhbHVl
cyBhcyB3ZWxsLgorCisKK1NldCBtYXJrcyBvciB0ZXN0IElEIGZvciBpbmRpdmlkdWFsIHBhcmFt
ZXRyaXplZCB0ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitVc2UgYGBweXRlc3QucGFyYW1gYCB0byBhcHBs
eSBtYXJrcyBvciBzZXQgdGVzdCBJRCB0byBpbmRpdmlkdWFsIHBhcmFtZXRyaXplZCB0ZXN0Lgor
Rm9yIGV4YW1wbGU6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfcHl0ZXN0X3BhcmFtX2V4YW1w
bGUucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd0
ZXN0X2lucHV0LGV4cGVjdGVkJywgWworICAgICAgICAoJzMrNScsIDgpLAorICAgICAgICBweXRl
c3QucGFyYW0oJzErNycsIDgsCisgICAgICAgICAgICAgICAgICAgICBtYXJrcz1weXRlc3QubWFy
ay5iYXNpYyksCisgICAgICAgIHB5dGVzdC5wYXJhbSgnMis0JywgNiwKKyAgICAgICAgICAgICAg
ICAgICAgIG1hcmtzPXB5dGVzdC5tYXJrLmJhc2ljLAorICAgICAgICAgICAgICAgICAgICAgaWQ9
J2Jhc2ljXzIrNCcpLAorICAgICAgICBweXRlc3QucGFyYW0oJzYqOScsIDQyLAorICAgICAgICAg
ICAgICAgICAgICAgbWFya3M9W3B5dGVzdC5tYXJrLmJhc2ljLCBweXRlc3QubWFyay54ZmFpbF0s
CisgICAgICAgICAgICAgICAgICAgICBpZD0nYmFzaWNfNio5JyksCisgICAgXSkKKyAgICBkZWYg
dGVzdF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IGV2YWwodGVz
dF9pbnB1dCkgPT0gZXhwZWN0ZWQKKyAgICAKK0luIHRoaXMgZXhhbXBsZSwgd2UgaGF2ZSA0IHBh
cmFtZXRyaXplZCB0ZXN0cy4gRXhjZXB0IGZvciB0aGUgZmlyc3QgdGVzdCwKK3dlIG1hcmsgdGhl
IHJlc3QgdGhyZWUgcGFyYW1ldHJpemVkIHRlc3RzIHdpdGggdGhlIGN1c3RvbSBtYXJrZXIgYGBi
YXNpY2BgLAorYW5kIGZvciB0aGUgZm91cnRoIHRlc3Qgd2UgYWxzbyB1c2UgdGhlIGJ1aWx0LWlu
IG1hcmsgYGB4ZmFpbGBgIHRvIGluZGljYXRlIHRoaXMgCit0ZXN0IGlzIGV4cGVjdGVkIHRvIGZh
aWwuIEZvciBleHBsaWNpdG5lc3MsIHdlIHNldCB0ZXN0IGlkcyBmb3Igc29tZSB0ZXN0cy4KKwor
VGhlbiBydW4gYGBweXRlc3RgYCB3aXRoIHZlcmJvc2UgbW9kZSBhbmQgd2l0aCBvbmx5IHRoZSBg
YGJhc2ljYGAgbWFya2VyOjoKKworICAgIHB5dGVzdCAtdiAtbSBiYXNpYworICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxl
Y3RlZCA0IGl0ZW1zCisKKyAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2
YWxbMSs3LThdIFBBU1NFRAorICAgIHRlc3RfcHl0ZXN0X3BhcmFtX2V4YW1wbGUucHk6OnRlc3Rf
ZXZhbFtiYXNpY18yKzRdIFBBU1NFRAorICAgIHRlc3RfcHl0ZXN0X3BhcmFtX2V4YW1wbGUucHk6
OnRlc3RfZXZhbFtiYXNpY182KjldIHhmYWlsCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBYRkFJTCB0ZXN0X3B5dGVzdF9wYXJh
bV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfNio5XQorCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IDEgdGVzdHMgZGVzZWxlY3RlZCA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQXMgdGhlIHJlc3VsdDoK
KworLSBGb3VyIHRlc3RzIHdlcmUgY29sbGVjdGVkCistIE9uZSB0ZXN0IHdhcyBkZXNlbGVjdGVk
IGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIHRoZSBgYGJhc2ljYGAgbWFyay4KKy0gVGhyZWUgdGVz
dHMgd2l0aCB0aGUgYGBiYXNpY2BgIG1hcmsgd2FzIHNlbGVjdGVkLgorLSBUaGUgdGVzdCBgYHRl
c3RfZXZhbFsxKzctOF1gYCBwYXNzZWQsIGJ1dCB0aGUgbmFtZSBpcyBhdXRvZ2VuZXJhdGVkIGFu
ZCBjb25mdXNpbmcuCistIFRoZSB0ZXN0IGBgdGVzdF9ldmFsW2Jhc2ljXzIrNF1gYCBwYXNzZWQu
CistIFRoZSB0ZXN0IGBgdGVzdF9ldmFsW2Jhc2ljXzYqOV1gYCB3YXMgZXhwZWN0ZWQgdG8gZmFp
bCBhbmQgZGlkIGZhaWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eTJweTMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29u
ZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjZDFmYjExZWE3OTAyMTA3MzhjYTIwM2RlZjdjYzk0MTgw
ZmRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5
My9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0
CisKK3B5MyA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMworCitjbGFzcyBEdW1teUNvbGxlY3Rv
cihweXRlc3QuY29sbGVjdC5GaWxlKToKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAg
cmV0dXJuIFtdCisKK2RlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aCwgcGFyZW50
KToKKyAgICBibiA9IHBhdGguYmFzZW5hbWUKKyAgICBpZiAicHkzIiBpbiBibiBhbmQgbm90IHB5
MyBvciAoInB5MiIgaW4gYm4gYW5kIHB5Myk6CisgICAgICAgIHJldHVybiBEdW1teUNvbGxlY3Rv
cihwYXRoLCBwYXJlbnQ9cGFyZW50KQorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvcHkycHkzL3Rlc3RfcHkyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwOWVkOTQ2NjI3NTM0YzMxYTkxN2E0
MTUwNjZkZGY2YWE1ZTkwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9weTJweTMvdGVzdF9weTIucHkKQEAgLTAsMCArMSw3IEBACisKK2RlZiB0ZXN0X2V4
Y2VwdGlvbl9zeW50YXgoKToKKyAgICB0cnk6CisgICAgICAgIDAvMAorICAgIGV4Y2VwdCBaZXJv
RGl2aXNpb25FcnJvciwgZToKKyAgICAgICAgcGFzcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9weTJweTMvdGVzdF9weTMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgxMWYyYmJjNTVmZGRkYTIx
ZjJhMmViYzgxMzg3YjFjOWNjMDNlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5My5weQpAQCAtMCwwICsxLDcgQEAKKworZGVmIHRl
c3RfZXhjZXB0aW9uX3N5bnRheCgpOgorICAgIHRyeToKKyAgICAgICAgMC8wCisgICAgZXhjZXB0
IFplcm9EaXZpc2lvbkVycm9yIGFzIGU6CisgICAgICAgIHBhc3MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3OTFm
MGNjNGQwNmU0M2YyYmY0Zjc3ODhlNmQ1YzQ0MDA0NTA1YTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL2NvbmZ0
ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzRi
ZDMxY2VhMDI2YThjYTc1OGYxZGZlNGJiYTQzZDIwYWFkNDQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5weQpAQCAtMCwwICsx
LDExIEBACisKKyMgcnVuIHRoaXMgd2l0aCAkIHB5dGVzdCAtLWNvbGxlY3Qtb25seSB0ZXN0X2Nv
bGxlY3Rvbmx5LnB5CisjCitkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgIHBhc3MKKworY2xhc3Mg
VGVzdENsYXNzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICBw
YXNzCisgICAgZGVmIHRlc3RfYW5vdGhlcm1ldGhvZChzZWxmKToKKyAgICAgICAgcGFzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOWQzMWQ3YzQyMDg2MzAyNzYwNGQwNzQwNzRjM2NlZmQ3ZGQ1NWUwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5yc3QK
QEAgLTAsMCArMSwyMzkgQEAKK0NoYW5naW5nIHN0YW5kYXJkIChQeXRob24pIHRlc3QgZGlzY292
ZXJ5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJ
Z25vcmUgcGF0aHMgZHVyaW5nIHRlc3QgY29sbGVjdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBlYXNpbHkgaWdub3JlIGNlcnRhaW4gdGVzdCBkaXJl
Y3RvcmllcyBhbmQgbW9kdWxlcyBkdXJpbmcgY29sbGVjdGlvbgorYnkgcGFzc2luZyB0aGUgYGAt
LWlnbm9yZT1wYXRoYGAgb3B0aW9uIG9uIHRoZSBjbGkuIGBgcHl0ZXN0YGAgYWxsb3dzIG11bHRp
cGxlCitgYC0taWdub3JlYGAgb3B0aW9ucy4gRXhhbXBsZTo6CisKKyAgICB0ZXN0cy8KKyAgICB8
LS0gZXhhbXBsZQorICAgIHwgICB8LS0gdGVzdF9leGFtcGxlXzAxLnB5CisgICAgfCAgIHwtLSB0
ZXN0X2V4YW1wbGVfMDIucHkKKyAgICB8ICAgJy0tIHRlc3RfZXhhbXBsZV8wMy5weQorICAgIHwt
LSBmb29iYXIKKyAgICB8ICAgfC0tIHRlc3RfZm9vYmFyXzAxLnB5CisgICAgfCAgIHwtLSB0ZXN0
X2Zvb2Jhcl8wMi5weQorICAgIHwgICAnLS0gdGVzdF9mb29iYXJfMDMucHkKKyAgICAnLS0gaGVs
bG8KKyAgICAgICAgJy0tIHdvcmxkCisgICAgICAgICAgICB8LS0gdGVzdF93b3JsZF8wMS5weQor
ICAgICAgICAgICAgfC0tIHRlc3Rfd29ybGRfMDIucHkKKyAgICAgICAgICAgICctLSB0ZXN0X3dv
cmxkXzAzLnB5CisKK05vdyBpZiB5b3UgaW52b2tlIGBgcHl0ZXN0YGAgd2l0aCBgYC0taWdub3Jl
PXRlc3RzL2Zvb2Jhci90ZXN0X2Zvb2Jhcl8wMy5weSAtLWlnbm9yZT10ZXN0cy9oZWxsby9gYCwK
K3lvdSB3aWxsIHNlZSB0aGF0IGBgcHl0ZXN0YGAgb25seSBjb2xsZWN0cyB0ZXN0LW1vZHVsZXMs
IHdoaWNoIGRvIG5vdCBtYXRjaCB0aGUgcGF0dGVybnMgc3BlY2lmaWVkOjoKKworICAgID09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBkYXJ3aW4g
LS0gUHl0aG9uIDIuNy4xMCwgcHl0ZXN0LTIuOC4yLCBweS0xLjQuMzAsIHBsdWdneS0wLjMuMQor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDUg
aXRlbXMKKworICAgIHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAxLnB5IC4KKyAgICB0ZXN0
cy9leGFtcGxlL3Rlc3RfZXhhbXBsZV8wMi5weSAuCisgICAgdGVzdHMvZXhhbXBsZS90ZXN0X2V4
YW1wbGVfMDMucHkgLgorICAgIHRlc3RzL2Zvb2Jhci90ZXN0X2Zvb2Jhcl8wMS5weSAuCisgICAg
dGVzdHMvZm9vYmFyL3Rlc3RfZm9vYmFyXzAyLnB5IC4KKworICAgID09PT09PT0gNSBwYXNzZWQg
aW4gMC4wMiBzZWNvbmRzID09PT09PT0KKworCitLZWVwaW5nIGR1cGxpY2F0ZSBwYXRocyBzcGVj
aWZpZWQgZnJvbSBjb21tYW5kIGxpbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRGVmYXVsdCBiZWhhdmlvciBvZiBgYHB5dGVzdGBgIGlz
IHRvIGlnbm9yZSBkdXBsaWNhdGUgcGF0aHMgc3BlY2lmaWVkIGZyb20gdGhlIGNvbW1hbmQgbGlu
ZS4KK0V4YW1wbGU6OgorCisgICAgcHkudGVzdCBwYXRoX2EgcGF0aF9hCisKKyAgICAuLi4KKyAg
ICBjb2xsZWN0ZWQgMSBpdGVtCisgICAgLi4uCisKK0p1c3QgY29sbGVjdCB0ZXN0cyBvbmNlLgor
CitUbyBjb2xsZWN0IGR1cGxpY2F0ZSB0ZXN0cywgdXNlIHRoZSBgYC0ta2VlcC1kdXBsaWNhdGVz
YGAgb3B0aW9uIG9uIHRoZSBjbGkuCitFeGFtcGxlOjoKKworICAgIHB5LnRlc3QgLS1rZWVwLWR1
cGxpY2F0ZXMgcGF0aF9hIHBhdGhfYQorCisgICAgLi4uCisgICAgY29sbGVjdGVkIDIgaXRlbXMK
KyAgICAuLi4KKworQXMgdGhlIGNvbGxlY3RvciBqdXN0IHdvcmtzIG9uIGRpcmVjdG9yaWVzLCBp
ZiB5b3Ugc3BlY2lmeSB0d2ljZSBhIHNpbmdsZSB0ZXN0IGZpbGUsIGBgcHl0ZXN0YGAgd2lsbAor
c3RpbGwgY29sbGVjdCBpdCB0d2ljZSwgbm8gbWF0dGVyIGlmIHRoZSBgYC0ta2VlcC1kdXBsaWNh
dGVzYGAgaXMgbm90IHNwZWNpZmllZC4KK0V4YW1wbGU6OgorCisgICAgcHkudGVzdCB0ZXN0X2Eu
cHkgdGVzdF9hLnB5CisKKyAgICAuLi4KKyAgICBjb2xsZWN0ZWQgMiBpdGVtcworICAgIC4uLgor
CisKK0NoYW5naW5nIGRpcmVjdG9yeSByZWN1cnNpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gc2V0IHRoZSA6Y29uZnZh
bDpgbm9yZWN1cnNlZGlyc2Agb3B0aW9uIGluIGFuIGluaS1maWxlLCBmb3IgZXhhbXBsZSB5b3Vy
IGBgcHl0ZXN0LmluaWBgIGluIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5OjoKKworICAgICMg
Y29udGVudCBvZiBweXRlc3QuaW5pCisgICAgW3B5dGVzdF0KKyAgICBub3JlY3Vyc2VkaXJzID0g
LnN2biBfYnVpbGQgdG1wKgorCitUaGlzIHdvdWxkIHRlbGwgYGBweXRlc3RgYCB0byBub3QgcmVj
dXJzZSBpbnRvIHR5cGljYWwgc3VidmVyc2lvbiBvciBzcGhpbngtYnVpbGQgZGlyZWN0b3JpZXMg
b3IgaW50byBhbnkgYGB0bXBgYCBwcmVmaXhlZCBkaXJlY3RvcnkuCisKKy4uIF9gY2hhbmdlIG5h
bWluZyBjb252ZW50aW9uc2A6CisKK0NoYW5naW5nIG5hbWluZyBjb252ZW50aW9ucworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNh
biBjb25maWd1cmUgZGlmZmVyZW50IG5hbWluZyBjb252ZW50aW9ucyBieSBzZXR0aW5nCit0aGUg
OmNvbmZ2YWw6YHB5dGhvbl9maWxlc2AsIDpjb25mdmFsOmBweXRob25fY2xhc3Nlc2AgYW5kCis6
Y29uZnZhbDpgcHl0aG9uX2Z1bmN0aW9uc2AgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgRXhhbXBs
ZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAgICMgY2FuIGFsc28gYmUgZGVm
aW5lZCBpbiB0b3guaW5pIG9yIHNldHVwLmNmZyBmaWxlLCBhbHRob3VnaCB0aGUgc2VjdGlvbgor
ICAgICMgbmFtZSBpbiBzZXR1cC5jZmcgZmlsZXMgc2hvdWxkIGJlICJ0b29sOnB5dGVzdCIKKyAg
ICBbcHl0ZXN0XQorICAgIHB5dGhvbl9maWxlcz1jaGVja18qLnB5CisgICAgcHl0aG9uX2NsYXNz
ZXM9Q2hlY2sKKyAgICBweXRob25fZnVuY3Rpb25zPSpfY2hlY2sKKworVGhpcyB3b3VsZCBtYWtl
IGBgcHl0ZXN0YGAgbG9vayBmb3IgdGVzdHMgaW4gZmlsZXMgdGhhdCBtYXRjaCB0aGUgYGBjaGVj
a18qCisucHlgYCBnbG9iLXBhdHRlcm4sIGBgQ2hlY2tgYCBwcmVmaXhlcyBpbiBjbGFzc2VzLCBh
bmQgZnVuY3Rpb25zIGFuZCBtZXRob2RzCit0aGF0IG1hdGNoIGBgKl9jaGVja2BgLiAgRm9yIGV4
YW1wbGUsIGlmIHdlIGhhdmU6OgorCisgICAgIyBjb250ZW50IG9mIGNoZWNrX215YXBwLnB5Cisg
ICAgY2xhc3MgQ2hlY2tNeUFwcChvYmplY3QpOgorICAgICAgICBkZWYgc2ltcGxlX2NoZWNrKHNl
bGYpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgY29tcGxleF9jaGVjayhzZWxmKToK
KyAgICAgICAgICAgIHBhc3MKKwordGhlbiB0aGUgdGVzdCBjb2xsZWN0aW9uIGxvb2tzIGxpa2Ug
dGhpczo6CisKKyAgICAkIHB5dGVzdCAtLWNvbGxlY3Qtb25seQorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6IHB5dGVzdC5pbmkKKyAgICBjb2xsZWN0ZWQgMiBpdGVtcworICAgIDxNb2R1bGUgJ2No
ZWNrX215YXBwLnB5Jz4KKyAgICAgIDxDbGFzcyAnQ2hlY2tNeUFwcCc+CisgICAgICAgIDxJbnN0
YW5jZSAnKCknPgorICAgICAgICAgIDxGdW5jdGlvbiAnc2ltcGxlX2NoZWNrJz4KKyAgICAgICAg
ICA8RnVuY3Rpb24gJ2NvbXBsZXhfY2hlY2snPgorICAgIAorICAgID09PT09PT09PT09PT09PT09
PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
PT0KKworLi4gbm90ZTo6CisKKyAgIHRoZSBgYHB5dGhvbl9mdW5jdGlvbnNgYCBhbmQgYGBweXRo
b25fY2xhc3Nlc2BgIG9wdGlvbnMgaGFzIG5vIGVmZmVjdAorICAgZm9yIGBgdW5pdHRlc3QuVGVz
dENhc2VgYCB0ZXN0IGRpc2NvdmVyeSBiZWNhdXNlIHB5dGVzdCBkZWxlZ2F0ZXMKKyAgIGRldGVj
dGlvbiBvZiB0ZXN0IGNhc2UgbWV0aG9kcyB0byB1bml0dGVzdCBjb2RlLgorCitJbnRlcnByZXRp
bmcgY21kbGluZSBhcmd1bWVudHMgYXMgUHl0aG9uIHBhY2thZ2VzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIHVzZSB0aGUg
YGAtLXB5YXJnc2BgIG9wdGlvbiB0byBtYWtlIGBgcHl0ZXN0YGAgdHJ5CitpbnRlcnByZXRpbmcg
YXJndW1lbnRzIGFzIHB5dGhvbiBwYWNrYWdlIG5hbWVzLCBkZXJpdmluZwordGhlaXIgZmlsZSBz
eXN0ZW0gcGF0aCBhbmQgdGhlbiBydW5uaW5nIHRoZSB0ZXN0LiBGb3IKK2V4YW1wbGUgaWYgeW91
IGhhdmUgdW5pdHRlc3QyIGluc3RhbGxlZCB5b3UgY2FuIHR5cGU6OgorCisgICAgcHl0ZXN0IC0t
cHlhcmdzIHVuaXR0ZXN0Mi50ZXN0LnRlc3Rfc2tpcHBpbmcgLXEKKword2hpY2ggd291bGQgcnVu
IHRoZSByZXNwZWN0aXZlIHRlc3QgbW9kdWxlLiAgTGlrZSB3aXRoCitvdGhlciBvcHRpb25zLCB0
aHJvdWdoIGFuIGluaS1maWxlIGFuZCB0aGUgOmNvbmZ2YWw6YGFkZG9wdHNgIG9wdGlvbiB5b3UK
K2NhbiBtYWtlIHRoaXMgY2hhbmdlIG1vcmUgcGVybWFuZW50bHk6OgorCisgICAgIyBjb250ZW50
IG9mIHB5dGVzdC5pbmkKKyAgICBbcHl0ZXN0XQorICAgIGFkZG9wdHMgPSAtLXB5YXJncworCitO
b3cgYSBzaW1wbGUgaW52b2NhdGlvbiBvZiBgYHB5dGVzdCBOQU1FYGAgd2lsbCBjaGVjaworaWYg
TkFNRSBleGlzdHMgYXMgYW4gaW1wb3J0YWJsZSBwYWNrYWdlL21vZHVsZSBhbmQgb3RoZXJ3aXNl
Cit0cmVhdCBpdCBhcyBhIGZpbGVzeXN0ZW0gcGF0aC4KKworRmluZGluZyBvdXQgd2hhdCBpcyBj
b2xsZWN0ZWQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK1lvdSBjYW4gYWx3YXlzIHBlZWsgYXQgdGhlIGNvbGxlY3Rpb24gdHJlZSB3aXRob3V0IHJ1
bm5pbmcgdGVzdHMgbGlrZSB0aGlzOjoKKworICAgIC4gJCBweXRlc3QgLS1jb2xsZWN0LW9ubHkg
cHl0aG9uY29sbGVjdGlvbi5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6IHB5dGVzdC5pbmkK
KyAgICBjb2xsZWN0ZWQgMyBpdGVtcworICAgIDxNb2R1bGUgJ0NXRC9weXRob25jb2xsZWN0aW9u
LnB5Jz4KKyAgICAgIDxGdW5jdGlvbiAndGVzdF9mdW5jdGlvbic+CisgICAgICA8Q2xhc3MgJ1Rl
c3RDbGFzcyc+CisgICAgICAgIDxJbnN0YW5jZSAnKCknPgorICAgICAgICAgIDxGdW5jdGlvbiAn
dGVzdF9tZXRob2QnPgorICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9hbm90aGVybWV0aG9kJz4K
KyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9jdXN0b21pemluZy10ZXN0LWNv
bGxlY3Rpb246CisKK0N1c3RvbWl6aW5nIHRlc3QgY29sbGVjdGlvbgorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKworWW91IGNhbiBlYXNpbHkgaW5zdHJ1
Y3QgYGBweXRlc3RgYCB0byBkaXNjb3ZlciB0ZXN0cyBmcm9tIGV2ZXJ5IFB5dGhvbiBmaWxlOjoK
KworICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgW3B5dGVzdF0KKyAgICBweXRob25f
ZmlsZXMgPSAqLnB5CisKK0hvd2V2ZXIsIG1hbnkgcHJvamVjdHMgd2lsbCBoYXZlIGEgYGBzZXR1
cC5weWBgIHdoaWNoIHRoZXkgZG9uJ3Qgd2FudCB0byBiZQoraW1wb3J0ZWQuIE1vcmVvdmVyLCB0
aGVyZSBtYXkgZmlsZXMgb25seSBpbXBvcnRhYmxlIGJ5IGEgc3BlY2lmaWMgcHl0aG9uCit2ZXJz
aW9uLiBGb3Igc3VjaCBjYXNlcyB5b3UgY2FuIGR5bmFtaWNhbGx5IGRlZmluZSBmaWxlcyB0byBi
ZSBpZ25vcmVkIGJ5CitsaXN0aW5nIHRoZW0gaW4gYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZTo6CisK
KyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgc3lzCisKKyAgICBjb2xs
ZWN0X2lnbm9yZSA9IFsic2V0dXAucHkiXQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAy
OgorICAgICAgICBjb2xsZWN0X2lnbm9yZS5hcHBlbmQoInBrZy9tb2R1bGVfcHkyLnB5IikKKwor
YW5kIHRoZW4gaWYgeW91IGhhdmUgYSBtb2R1bGUgZmlsZSBsaWtlIHRoaXM6OgorCisgICAgIyBj
b250ZW50IG9mIHBrZy9tb2R1bGVfcHkyLnB5CisgICAgZGVmIHRlc3Rfb25seV9vbl9weXRob24y
KCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24sIGU6CisgICAgICAgICAgICBwYXNzCisKK2FuZCBhIGBgc2V0dXAucHlgYCBkdW1t
eSBmaWxlIGxpa2UgdGhpczo6CisKKyAgICAjIGNvbnRlbnQgb2Ygc2V0dXAucHkKKyAgICAwLzAg
ICMgd2lsbCByYWlzZSBleGNlcHRpb24gaWYgaW1wb3J0ZWQKKworSWYgeW91IHJ1biB3aXRoIGEg
UHl0aG9uIDIgaW50ZXJwcmV0ZXIgdGhlbiB5b3Ugd2lsbCBmaW5kIHRoZSBvbmUgdGVzdCBhbmQg
d2lsbAorbGVhdmUgb3V0IHRoZSBgYHNldHVwLnB5YGAgZmlsZTo6CisKKyAgICAjJCBweXRlc3Qg
LS1jb2xsZWN0LW9ubHkKKyAgICA9PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT0KKyAg
ICBwbGF0Zm9ybSBsaW51eDIgLS0gUHl0aG9uIDIuNy4xMCwgcHl0ZXN0LTIuOS4xLCBweS0xLjQu
MzEsIHBsdWdneS0wLjMuMQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6
IHB5dGVzdC5pbmkKKyAgICBjb2xsZWN0ZWQgMSBpdGVtcworICAgIDxNb2R1bGUgJ3BrZy9tb2R1
bGVfcHkyLnB5Jz4KKyAgICAgIDxGdW5jdGlvbiAndGVzdF9vbmx5X29uX3B5dGhvbjInPgorCisg
ICAgPT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjA0IHNlY29uZHMgPT09PT09CisKK0lmIHlvdSBy
dW4gd2l0aCBhIFB5dGhvbiAzIGludGVycHJldGVyIGJvdGggdGhlIG9uZSB0ZXN0IGFuZCB0aGUg
YGBzZXR1cC5weWBgCitmaWxlIHdpbGwgYmUgbGVmdCBvdXQ6OgorCisgICAgJCBweXRlc3QgLS1j
b2xsZWN0LW9ubHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9u
IHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXgg
LS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAg
ICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29s
bGVjdGVkIDAgaXRlbXMKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0
cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3JlcG9ydGluZ2RlbW8ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZGMwMmIz
Y2Q0YmQ1ZTA0MjNhOGU1MjBhYTY1YTE5NzVhZWZmYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdApAQCAtMCwwICsxLDYwNCBA
QAorCisuLiBfYHRicmVwb3J0ZGVtb2A6CisKK0RlbW8gb2YgUHl0aG9uIGZhaWx1cmUgcmVwb3J0
cyB3aXRoIHB5dGVzdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworSGVyZSBpcyBhIG5pY2UgcnVuIG9mIHNldmVyYWwgdGVucyBvZiBmYWlsdXJl
cworYW5kIGhvdyBgYHB5dGVzdGBgIHByZXNlbnRzIHRoaW5ncyAodW5mb3J0dW5hdGVseQorbm90
IHNob3dpbmcgdGhlIG5pY2UgY29sb3JzIGhlcmUgaW4gdGhlIEhUTUwgdGhhdCB5b3UKK2dldCBv
biB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CisKKyAgICBhc3NlcnRp
b24gJCBweXRlc3QgZmFpbHVyZV9kZW1vLnB5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9hc3NlcnRpb24sIGlu
aWZpbGU6CisgICAgY29sbGVjdGVkIDQyIGl0ZW1zCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5
IEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAgICAgICAgICAgWzEw
MCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVT
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19f
X19fX19fX19fX18gdGVzdF9nZW5lcmF0aXZlWzBdIF9fX19fX19fX19fX19fX19fX19fX19fX19f
X18KKyAgICAKKyAgICBwYXJhbTEgPSAzLCBwYXJhbTIgPSA2CisgICAgCisgICAgICAgIGRlZiB0
ZXN0X2dlbmVyYXRpdmUocGFyYW0xLCBwYXJhbTIpOgorICAgID4gICAgICAgYXNzZXJ0IHBhcmFt
MSAqIDIgPCBwYXJhbTIKKyAgICBFICAgICAgIGFzc2VydCAoMyAqIDIpIDwgNgorICAgIAorICAg
IGZhaWx1cmVfZGVtby5weToxNjogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fIFRlc3RGYWlsaW5nLnRlc3Rfc2ltcGxlIF9fX19fX19fX19fX19fX19fX19fX19f
X19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdEZhaWxpbmcgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmKToKKyAgICAg
ICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisgICAgICAgICAgICBk
ZWYgZygpOgorICAgICAgICAgICAgICAgIHJldHVybiA0MworICAgICAgICAKKyAgICA+ICAgICAg
IGFzc2VydCBmKCkgPT0gZygpCisgICAgRSAgICAgICBhc3NlcnQgNDIgPT0gNDMKKyAgICBFICAg
ICAgICArICB3aGVyZSA0MiA9IDxmdW5jdGlvbiBUZXN0RmFpbGluZy50ZXN0X3NpbXBsZS48bG9j
YWxzPi5mIGF0IDB4ZGVhZGJlZWY+KCkKKyAgICBFICAgICAgICArICBhbmQgICA0MyA9IDxmdW5j
dGlvbiBUZXN0RmFpbGluZy50ZXN0X3NpbXBsZS48bG9jYWxzPi5nIGF0IDB4ZGVhZGJlZWY+KCkK
KyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6Mjk6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19f
X19fX19fX19fX19fX18gVGVzdEZhaWxpbmcudGVzdF9zaW1wbGVfbXVsdGlsaW5lIF9fX19fX19f
X19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RGYWlsaW5n
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9zaW1wbGVfbXVs
dGlsaW5lKHNlbGYpOgorICAgICAgICAgICAgb3RoZXJmdW5jX211bHRpKAorICAgICAgICAgICAg
ICAgICAgICAgIDQyLAorICAgID4gICAgICAgICAgICAgICAgIDYqOSkKKyAgICAKKyAgICBmYWls
dXJlX2RlbW8ucHk6MzQ6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAgICAKKyAgICBhID0g
NDIsIGIgPSA1NAorICAgIAorICAgICAgICBkZWYgb3RoZXJmdW5jX211bHRpKGEsYik6CisgICAg
PiAgICAgICBhc3NlcnQgKGEgPT0KKyAgICAgICAgICAgICAgICAgICAgYikKKyAgICBFICAgICAg
IGFzc2VydCA0MiA9PSA1NAorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxMjogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX18gVGVzdEZhaWxpbmcudGVzdF9u
b3QgX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdEZhaWxpbmcgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRl
ZiB0ZXN0X25vdChzZWxmKToKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIDQyCisgICAgPiAgICAgICBhc3NlcnQgbm90IGYoKQorICAgIEUgICAgICAgYXNzZXJ0
IG5vdCA0MgorICAgIEUgICAgICAgICsgIHdoZXJlIDQyID0gPGZ1bmN0aW9uIFRlc3RGYWlsaW5n
LnRlc3Rfbm90Ljxsb2NhbHM+LmYgYXQgMHhkZWFkYmVlZj4oKQorICAgIAorICAgIGZhaWx1cmVf
ZGVtby5weTozOTogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fX19fXyBUZXN0U3Bl
Y2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV90ZXh0IF9fX19fX19fX19fX19fX19fCisgICAg
CisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9i
amVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9lcV90ZXh0KHNlbGYp
OgorICAgID4gICAgICAgYXNzZXJ0ICdzcGFtJyA9PSAnZWdncycKKyAgICBFICAgICAgIEFzc2Vy
dGlvbkVycm9yOiBhc3NlcnQgJ3NwYW0nID09ICdlZ2dzJworICAgIEUgICAgICAgICAtIHNwYW0K
KyAgICBFICAgICAgICAgKyBlZ2dzCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjQzOiBBc3Nl
cnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
LnRlc3RfZXFfc2ltaWxhcl90ZXh0IF9fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZh
aWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJl
ZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2VxX3NpbWlsYXJfdGV4dChzZWxmKToKKyAgICA+
ICAgICAgIGFzc2VydCAnZm9vIDEgYmFyJyA9PSAnZm9vIDIgYmFyJworICAgIEUgICAgICAgQXNz
ZXJ0aW9uRXJyb3I6IGFzc2VydCAnZm9vIDEgYmFyJyA9PSAnZm9vIDIgYmFyJworICAgIEUgICAg
ICAgICAtIGZvbyAxIGJhcgorICAgIEUgICAgICAgICA/ICAgICBeCisgICAgRSAgICAgICAgICsg
Zm9vIDIgYmFyCisgICAgRSAgICAgICAgID8gICAgIF4KKyAgICAKKyAgICBmYWlsdXJlX2RlbW8u
cHk6NDY6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4
cGxhbmF0aW9ucy50ZXN0X2VxX211bHRpbGluZV90ZXh0IF9fX19fX19fX19fXworICAgIAorICAg
IHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3Qg
YXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfZXFfbXVsdGlsaW5lX3RleHQo
c2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgJ2Zvb1xuc3BhbVxuYmFyJyA9PSAnZm9vXG5lZ2dz
XG5iYXInCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0ICdmb29cbnNwYW1cbmJh
cicgPT0gJ2Zvb1xuZWdnc1xuYmFyJworICAgIEUgICAgICAgICAgIGZvbworICAgIEUgICAgICAg
ICAtIHNwYW0KKyAgICBFICAgICAgICAgKyBlZ2dzCisgICAgRSAgICAgICAgICAgYmFyCisgICAg
CisgICAgZmFpbHVyZV9kZW1vLnB5OjQ5OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19f
X19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX2xvbmdfdGV4dCBfX19fX19f
X19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRF
eHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0
X2VxX2xvbmdfdGV4dChzZWxmKToKKyAgICAgICAgICAgIGEgPSAnMScqMTAwICsgJ2EnICsgJzIn
KjEwMAorICAgICAgICAgICAgYiA9ICcxJyoxMDAgKyAnYicgKyAnMicqMTAwCisgICAgPiAgICAg
ICBhc3NlcnQgYSA9PSBiCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0ICcxMTEx
MTExMTExMTEuLi4yMjIyMjIyMjIyMjIyJyA9PSAnMTExMTExMTExMTExMS4uLjIyMjIyMjIyMjIy
MjInCisgICAgRSAgICAgICAgIFNraXBwaW5nIDkwIGlkZW50aWNhbCBsZWFkaW5nIGNoYXJhY3Rl
cnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cKKyAgICBFICAgICAgICAgU2tpcHBpbmcgOTEgaWRl
bnRpY2FsIHRyYWlsaW5nIGNoYXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cKKyAgICBF
ICAgICAgICAgLSAxMTExMTExMTExYTIyMjIyMjIyMgorICAgIEUgICAgICAgICA/ICAgICAgICAg
ICBeCisgICAgRSAgICAgICAgICsgMTExMTExMTExMWIyMjIyMjIyMjIKKyAgICBFICAgICAgICAg
PyAgICAgICAgICAgXgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo1NDogQXNzZXJ0aW9uRXJy
b3IKKyAgICBfX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfbG9u
Z190ZXh0X211bHRpbGluZSBfX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2Rl
bW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAg
IAorICAgICAgICBkZWYgdGVzdF9lcV9sb25nX3RleHRfbXVsdGlsaW5lKHNlbGYpOgorICAgICAg
ICAgICAgYSA9ICcxXG4nKjEwMCArICdhJyArICcyXG4nKjEwMAorICAgICAgICAgICAgYiA9ICcx
XG4nKjEwMCArICdiJyArICcyXG4nKjEwMAorICAgID4gICAgICAgYXNzZXJ0IGEgPT0gYgorICAg
IEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCAnMVxuMVxuMVxuMVxuLi4ubjJcbjJcbjJc
bjJcbicgPT0gJzFcbjFcbjFcbjFcbjEuLi5uMlxuMlxuMlxuMlxuJworICAgIEUgICAgICAgICBT
a2lwcGluZyAxOTAgaWRlbnRpY2FsIGxlYWRpbmcgY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYg
dG8gc2hvdworICAgIEUgICAgICAgICBTa2lwcGluZyAxOTEgaWRlbnRpY2FsIHRyYWlsaW5nIGNo
YXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cKKyAgICBFICAgICAgICAgICAxCisgICAg
RSAgICAgICAgICAgMQorICAgIEUgICAgICAgICAgIDEKKyAgICBFICAgICAgICAgICAxCisgICAg
RSAgICAgICAgICAgMS4uLgorICAgIEUgICAgICAgICAKKyAgICBFICAgICAgICAgLi4uRnVsbCBv
dXRwdXQgdHJ1bmNhdGVkICg3IGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CisgICAg
CisgICAgZmFpbHVyZV9kZW1vLnB5OjU5OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19f
X19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX2xpc3QgX19fX19fX19f
X19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRF
eHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0
X2VxX2xpc3Qoc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgWzAsIDEsIDJdID09IFswLCAxLCAz
XQorICAgIEUgICAgICAgYXNzZXJ0IFswLCAxLCAyXSA9PSBbMCwgMSwgM10KKyAgICBFICAgICAg
ICAgQXQgaW5kZXggMiBkaWZmOiAyICE9IDMKKyAgICBFICAgICAgICAgVXNlIC12IHRvIGdldCB0
aGUgZnVsbCBkaWZmCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjYyOiBBc3NlcnRpb25FcnJv
cgorICAgIF9fX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2Vx
X2xpc3RfbG9uZyBfX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVt
by5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAg
CisgICAgICAgIGRlZiB0ZXN0X2VxX2xpc3RfbG9uZyhzZWxmKToKKyAgICAgICAgICAgIGEgPSBb
MF0qMTAwICsgWzFdICsgWzNdKjEwMAorICAgICAgICAgICAgYiA9IFswXSoxMDAgKyBbMl0gKyBb
M10qMTAwCisgICAgPiAgICAgICBhc3NlcnQgYSA9PSBiCisgICAgRSAgICAgICBhc3NlcnQgWzAs
IDAsIDAsIDAsIDAsIDAsIC4uLl0gPT0gWzAsIDAsIDAsIDAsIDAsIDAsIC4uLl0KKyAgICBFICAg
ICAgICAgQXQgaW5kZXggMTAwIGRpZmY6IDEgIT0gMgorICAgIEUgICAgICAgICBVc2UgLXYgdG8g
Z2V0IHRoZSBmdWxsIGRpZmYKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6Njc6IEFzc2VydGlv
bkVycm9yCisgICAgX19fX19fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
LnRlc3RfZXFfZGljdCBfX19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVy
ZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4K
KyAgICAKKyAgICAgICAgZGVmIHRlc3RfZXFfZGljdChzZWxmKToKKyAgICA+ICAgICAgIGFzc2Vy
dCB7J2EnOiAwLCAnYic6IDEsICdjJzogMH0gPT0geydhJzogMCwgJ2InOiAyLCAnZCc6IDB9Cisg
ICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IHsnYSc6IDAsICdiJzogMSwgJ2MnOiAw
fSA9PSB7J2EnOiAwLCAnYic6IDIsICdkJzogMH0KKyAgICBFICAgICAgICAgT21pdHRpbmcgMSBp
ZGVudGljYWwgaXRlbXMsIHVzZSAtdnYgdG8gc2hvdworICAgIEUgICAgICAgICBEaWZmZXJpbmcg
aXRlbXM6CisgICAgRSAgICAgICAgIHsnYic6IDF9ICE9IHsnYic6IDJ9CisgICAgRSAgICAgICAg
IExlZnQgY29udGFpbnMgbW9yZSBpdGVtczoKKyAgICBFICAgICAgICAgeydjJzogMH0KKyAgICBF
ICAgICAgICAgUmlnaHQgY29udGFpbnMgbW9yZSBpdGVtczoKKyAgICBFICAgICAgICAgeydkJzog
MH0uLi4KKyAgICBFICAgICAgICAgCisgICAgRSAgICAgICAgIC4uLkZ1bGwgb3V0cHV0IHRydW5j
YXRlZCAoMiBsaW5lcyBoaWRkZW4pLCB1c2UgJy12dicgdG8gc2hvdworICAgIAorICAgIGZhaWx1
cmVfZGVtby5weTo3MDogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fX19fXyBUZXN0
U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9zZXQgX19fX19fX19fX19fX19fX19fCisg
ICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9zZXQoc2Vs
Zik6CisgICAgPiAgICAgICBhc3NlcnQgc2V0KFswLCAxMCwgMTEsIDEyXSkgPT0gc2V0KFswLCAy
MCwgMjFdKQorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCB7MCwgMTAsIDExLCAx
Mn0gPT0gezAsIDIwLCAyMX0KKyAgICBFICAgICAgICAgRXh0cmEgaXRlbXMgaW4gdGhlIGxlZnQg
c2V0OgorICAgIEUgICAgICAgICAxMAorICAgIEUgICAgICAgICAxMQorICAgIEUgICAgICAgICAx
MgorICAgIEUgICAgICAgICBFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OgorICAgIEUgICAg
ICAgICAyMAorICAgIEUgICAgICAgICAyMS4uLgorICAgIEUgICAgICAgICAKKyAgICBFICAgICAg
ICAgLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICgyIGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0
byBzaG93CisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjczOiBBc3NlcnRpb25FcnJvcgorICAg
IF9fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfbG9uZ2Vy
X2xpc3QgX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0
U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAg
ICAgIGRlZiB0ZXN0X2VxX2xvbmdlcl9saXN0KHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0IFsx
LDJdID09IFsxLDIsM10KKyAgICBFICAgICAgIGFzc2VydCBbMSwgMl0gPT0gWzEsIDIsIDNdCisg
ICAgRSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06
IDMKKyAgICBFICAgICAgICAgVXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmCisgICAgCisgICAg
ZmFpbHVyZV9kZW1vLnB5Ojc2OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19f
IFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2luX2xpc3QgX19fX19fX19fX19fX19f
X18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5h
dGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2luX2xp
c3Qoc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgMSBpbiBbMCwgMiwgMywgNCwgNV0KKyAgICBF
ICAgICAgIGFzc2VydCAxIGluIFswLCAyLCAzLCA0LCA1XQorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weTo3OTogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4
cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X211bHRpbGluZSBfX19fX19fX19fCisgICAgCisg
ICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVj
dCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9ub3RfaW5fdGV4dF9tdWx0
aWxpbmUoc2VsZik6CisgICAgICAgICAgICB0ZXh0ID0gJ3NvbWUgbXVsdGlsaW5lXG50ZXh0XG53
aGljaFxuaW5jbHVkZXMgZm9vXG5hbmQgYVxudGFpbCcKKyAgICA+ICAgICAgIGFzc2VydCAnZm9v
JyBub3QgaW4gdGV4dAorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCAnZm9vJyBu
b3QgaW4gJ3NvbWUgbXVsdGlsaW5lXG50ZXh0XG53Li4ubmNsdWRlcyBmb29cbmFuZCBhXG50YWls
JworICAgIEUgICAgICAgICAnZm9vJyBpcyBjb250YWluZWQgaGVyZToKKyAgICBFICAgICAgICAg
ICBzb21lIG11bHRpbGluZQorICAgIEUgICAgICAgICAgIHRleHQKKyAgICBFICAgICAgICAgICB3
aGljaAorICAgIEUgICAgICAgICAgIGluY2x1ZGVzIGZvbworICAgIEUgICAgICAgICA/ICAgICAg
ICAgICsrKworICAgIEUgICAgICAgICAgIGFuZCBhLi4uCisgICAgRSAgICAgICAgIAorICAgIEUg
ICAgICAgICAuLi5GdWxsIG91dHB1dCB0cnVuY2F0ZWQgKDIgbGluZXMgaGlkZGVuKSwgdXNlICct
dnYnIHRvIHNob3cKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6ODM6IEFzc2VydGlvbkVycm9y
CisgICAgX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3Rfbm90X2lu
X3RleHRfc2luZ2xlIF9fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1v
LlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAK
KyAgICAgICAgZGVmIHRlc3Rfbm90X2luX3RleHRfc2luZ2xlKHNlbGYpOgorICAgICAgICAgICAg
dGV4dCA9ICdzaW5nbGUgZm9vIGxpbmUnCisgICAgPiAgICAgICBhc3NlcnQgJ2Zvbycgbm90IGlu
IHRleHQKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgJ2Zvbycgbm90IGluICdz
aW5nbGUgZm9vIGxpbmUnCisgICAgRSAgICAgICAgICdmb28nIGlzIGNvbnRhaW5lZCBoZXJlOgor
ICAgIEUgICAgICAgICAgIHNpbmdsZSBmb28gbGluZQorICAgIEUgICAgICAgICA/ICAgICAgICAr
KysKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6ODc6IEFzc2VydGlvbkVycm9yCisgICAgX19f
X19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X3Npbmds
ZV9sb25nIF9fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVj
aWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAg
ZGVmIHRlc3Rfbm90X2luX3RleHRfc2luZ2xlX2xvbmcoc2VsZik6CisgICAgICAgICAgICB0ZXh0
ID0gJ2hlYWQgJyAqIDUwICsgJ2ZvbyAnICsgJ3RhaWwgJyAqIDIwCisgICAgPiAgICAgICBhc3Nl
cnQgJ2Zvbycgbm90IGluIHRleHQKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQg
J2Zvbycgbm90IGluICdoZWFkIGhlYWQgaGVhZCBoZWFkIGhlYS4uLmFpbCB0YWlsIHRhaWwgdGFp
bCB0YWlsICcKKyAgICBFICAgICAgICAgJ2ZvbycgaXMgY29udGFpbmVkIGhlcmU6CisgICAgRSAg
ICAgICAgICAgaGVhZCBoZWFkIGZvbyB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWls
IHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0
YWlsIHRhaWwgCisgICAgRSAgICAgICAgID8gICAgICAgICAgICsrKworICAgIAorICAgIGZhaWx1
cmVfZGVtby5weTo5MTogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX18gVGVzdFNwZWNpYWxpc2Vk
RXhwbGFuYXRpb25zLnRlc3Rfbm90X2luX3RleHRfc2luZ2xlX2xvbmdfdGVybSBfX19fX19fCisg
ICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9ub3RfaW5fdGV4
dF9zaW5nbGVfbG9uZ190ZXJtKHNlbGYpOgorICAgICAgICAgICAgdGV4dCA9ICdoZWFkICcgKiA1
MCArICdmJyo3MCArICd0YWlsICcgKiAyMAorICAgID4gICAgICAgYXNzZXJ0ICdmJyo3MCBub3Qg
aW4gdGV4dAorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCAnZmZmZmZmZmZmZmYu
Li5mZmZmZmZmZmZmZmYnIG5vdCBpbiAnaGVhZCBoZWFkIGhlLi4ubCB0YWlsIHRhaWwgJworICAg
IEUgICAgICAgICAnZmZmZmZmZmZmZmZmZmZmZmZmLi4uZmZmZmZmZmZmZmZmZmZmZmZmZicgaXMg
Y29udGFpbmVkIGhlcmU6CisgICAgRSAgICAgICAgICAgaGVhZCBoZWFkIGZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ0
YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFp
bCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgCisgICAgRSAgICAgICAg
ID8gICAgICAgICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6OTU6
IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3Rf
YXR0cmlidXRlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBk
ZWYgdGVzdF9hdHRyaWJ1dGUoKToKKyAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGIgPSAxCisgICAgICAgICAgICBpID0gRm9vKCkKKyAgICA+ICAgICAgIGFz
c2VydCBpLmIgPT0gMgorICAgIEUgICAgICAgYXNzZXJ0IDEgPT0gMgorICAgIEUgICAgICAgICsg
IHdoZXJlIDEgPSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlLjxsb2NhbHM+LkZvbyBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4uYgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxMDI6IEFzc2Vy
dGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2F0dHJpYnV0ZV9p
bnN0YW5jZSBfX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVz
dF9hdHRyaWJ1dGVfaW5zdGFuY2UoKToKKyAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgor
ICAgICAgICAgICAgICAgIGIgPSAxCisgICAgPiAgICAgICBhc3NlcnQgRm9vKCkuYiA9PSAyCisg
ICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IDEgPT0gMgorICAgIEUgICAgICAgICsg
IHdoZXJlIDEgPSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX2luc3RhbmNlLjxsb2NhbHM+
LkZvbyBvYmplY3QgYXQgMHhkZWFkYmVlZj4uYgorICAgIEUgICAgICAgICsgICAgd2hlcmUgPGZh
aWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9pbnN0YW5jZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+ID0gPGNsYXNzICdmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfaW5zdGFu
Y2UuPGxvY2Fscz4uRm9vJz4oKQorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxMDg6IEFzc2Vy
dGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hdHRyaWJ1dGVf
ZmFpbHVyZSBfX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVz
dF9hdHRyaWJ1dGVfZmFpbHVyZSgpOgorICAgICAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgZGVmIF9nZXRfYihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gZ2V0IGF0dHJpYicpCisgICAgICAgICAgICAgICAgYiA9
IHByb3BlcnR5KF9nZXRfYikKKyAgICAgICAgICAgIGkgPSBGb28oKQorICAgID4gICAgICAgYXNz
ZXJ0IGkuYiA9PSAyCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjExNzogCisgICAgXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIAorICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmli
dXRlX2ZhaWx1cmUuPGxvY2Fscz4uRm9vIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAg
ICAgICBkZWYgX2dldF9iKHNlbGYpOgorICAgID4gICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWls
ZWQgdG8gZ2V0IGF0dHJpYicpCisgICAgRSAgICAgICBFeGNlcHRpb246IEZhaWxlZCB0byBnZXQg
YXR0cmliCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjExNDogRXhjZXB0aW9uCisgICAgX19f
X19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2F0dHJpYnV0ZV9tdWx0aXBsZSBfX19fX19fX19f
X19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9hdHRyaWJ1dGVfbXVsdGlw
bGUoKToKKyAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGIg
PSAxCisgICAgICAgICAgICBjbGFzcyBCYXIob2JqZWN0KToKKyAgICAgICAgICAgICAgICBiID0g
MgorICAgID4gICAgICAgYXNzZXJ0IEZvbygpLmIgPT0gQmFyKCkuYgorICAgIEUgICAgICAgQXNz
ZXJ0aW9uRXJyb3I6IGFzc2VydCAxID09IDIKKyAgICBFICAgICAgICArICB3aGVyZSAxID0gPGZh
aWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9tdWx0aXBsZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+LmIKKyAgICBFICAgICAgICArICAgIHdoZXJlIDxmYWlsdXJlX2RlbW8udGVz
dF9hdHRyaWJ1dGVfbXVsdGlwbGUuPGxvY2Fscz4uRm9vIG9iamVjdCBhdCAweGRlYWRiZWVmPiA9
IDxjbGFzcyAnZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX211bHRpcGxlLjxsb2NhbHM+LkZv
byc+KCkKKyAgICBFICAgICAgICArICBhbmQgICAyID0gPGZhaWx1cmVfZGVtby50ZXN0X2F0dHJp
YnV0ZV9tdWx0aXBsZS48bG9jYWxzPi5CYXIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+LmIKKyAgICBF
ICAgICAgICArICAgIHdoZXJlIDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfbXVsdGlwbGUu
PGxvY2Fscz4uQmFyIG9iamVjdCBhdCAweGRlYWRiZWVmPiA9IDxjbGFzcyAnZmFpbHVyZV9kZW1v
LnRlc3RfYXR0cmlidXRlX211bHRpcGxlLjxsb2NhbHM+LkJhcic+KCkKKyAgICAKKyAgICBmYWls
dXJlX2RlbW8ucHk6MTI1OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX19fIFRlc3RSYWlzZXMudGVzdF9yYWlzZXMgX19fX19fX19fX19fX19fX19fX19fX19fX18K
KyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRl
YWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9yYWlzZXMoc2VsZik6CisgICAgICAgICAg
ICBzID0gJ3F3ZScKKyAgICA+ICAgICAgIHJhaXNlcyhUeXBlRXJyb3IsICJpbnQocykiKQorICAg
IAorICAgIGZhaWx1cmVfZGVtby5weToxMzQ6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAg
ICAKKyAgICA+ICAgaW50KHMpCisgICAgRSAgIFZhbHVlRXJyb3I6IGludmFsaWQgbGl0ZXJhbCBm
b3IgaW50KCkgd2l0aCBiYXNlIDEwOiAncXdlJworICAgIAorICAgIDwwLWNvZGVnZW4gJFBZVEhP
Tl9QUkVGSVgvbGliL3B5dGhvbjMuNS9zaXRlLXBhY2thZ2VzL19weXRlc3QvcHl0aG9uX2FwaS5w
eTo1ODA+OjE6IFZhbHVlRXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fIFRlc3RSYWlz
ZXMudGVzdF9yYWlzZXNfZG9lc250IF9fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAg
c2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAg
ICAKKyAgICAgICAgZGVmIHRlc3RfcmFpc2VzX2RvZXNudChzZWxmKToKKyAgICA+ICAgICAgIHJh
aXNlcyhJT0Vycm9yLCAiaW50KCczJykiKQorICAgIEUgICAgICAgRmFpbGVkOiBESUQgTk9UIFJB
SVNFIDxjbGFzcyAnT1NFcnJvcic+CisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjEzNzogRmFp
bGVkCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0X3JhaXNl
IF9fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9k
ZW1vLlRlc3RSYWlzZXMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0
ZXN0X3JhaXNlKHNlbGYpOgorICAgID4gICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGVtbyBlcnJv
ciIpCisgICAgRSAgICAgICBWYWx1ZUVycm9yOiBkZW1vIGVycm9yCisgICAgCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjE0MDogVmFsdWVFcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyBU
ZXN0UmFpc2VzLnRlc3RfdHVwbGVlcnJvciBfX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAK
KyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVm
PgorICAgIAorICAgICAgICBkZWYgdGVzdF90dXBsZWVycm9yKHNlbGYpOgorICAgID4gICAgICAg
YSxiID0gWzFdCisgICAgRSAgICAgICBWYWx1ZUVycm9yOiBub3QgZW5vdWdoIHZhbHVlcyB0byB1
bnBhY2sgKGV4cGVjdGVkIDIsIGdvdCAxKQorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxNDM6
IFZhbHVlRXJyb3IKKyAgICBfX19fX18gVGVzdFJhaXNlcy50ZXN0X3JlaW50ZXJwcmV0X2ZhaWxz
X3dpdGhfcHJpbnRfZm9yX3RoZV9mdW5fb2ZfaXQgX19fX19fCisgICAgCisgICAgc2VsZiA9IDxm
YWlsdXJlX2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3RfcmVpbnRlcnByZXRfZmFpbHNfd2l0aF9wcmludF9mb3JfdGhlX2Z1bl9vZl9p
dChzZWxmKToKKyAgICAgICAgICAgIGwgPSBbMSwyLDNdCisgICAgICAgICAgICBwcmludCAoImwg
aXMgJXIiICUgbCkKKyAgICA+ICAgICAgIGEsYiA9IGwucG9wKCkKKyAgICBFICAgICAgIFR5cGVF
cnJvcjogJ2ludCcgb2JqZWN0IGlzIG5vdCBpdGVyYWJsZQorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weToxNDg6IFR5cGVFcnJvcgorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0
dXJlZCBzdGRvdXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBsIGlzIFsx
LCAyLCAzXQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0UmFpc2VzLnRlc3Rfc29t
ZV9lcnJvciBfX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBk
ZWYgdGVzdF9zb21lX2Vycm9yKHNlbGYpOgorICAgID4gICAgICAgaWYgbmFtZW5vdGV4aToKKyAg
ICBFICAgICAgIE5hbWVFcnJvcjogbmFtZSAnbmFtZW5vdGV4aScgaXMgbm90IGRlZmluZWQKKyAg
ICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTUxOiBOYW1lRXJyb3IKKyAgICBfX19fX19fX19fX19f
X19fX19fXyB0ZXN0X2R5bmFtaWNfY29tcGlsZV9zaG93c19uaWNlbHkgX19fX19fX19fX19fX19f
X19fX19fCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2R5bmFtaWNfY29tcGlsZV9zaG93c19uaWNl
bHkoKToKKyAgICAgICAgICAgIHNyYyA9ICdkZWYgZm9vKCk6XG4gYXNzZXJ0IDEgPT0gMFxuJwor
ICAgICAgICAgICAgbmFtZSA9ICdhYmMtMTIzJworICAgICAgICAgICAgbW9kdWxlID0gcHkuc3Rk
LmltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5j
b21waWxlKHNyYywgbmFtZSwgJ2V4ZWMnKQorICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhj
b2RlLCBtb2R1bGUuX19kaWN0X18pCisgICAgICAgICAgICBweS5zdGQuc3lzLm1vZHVsZXNbbmFt
ZV0gPSBtb2R1bGUKKyAgICA+ICAgICAgIG1vZHVsZS5mb28oKQorICAgIAorICAgIGZhaWx1cmVf
ZGVtby5weToxNjY6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAgICAKKyAgICAgICAgZGVm
IGZvbygpOgorICAgID4gICAgYXNzZXJ0IDEgPT0gMAorICAgIEUgICAgQXNzZXJ0aW9uRXJyb3IK
KyAgICAKKyAgICA8Mi1jb2RlZ2VuICdhYmMtMTIzJyAkUkVHRU5ET0NfVE1QRElSL2Fzc2VydGlv
bi9mYWlsdXJlX2RlbW8ucHk6MTYzPjoyOiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19f
X19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3RfY29tcGxleF9lcnJvciBfX19fX19fX19fX19f
X19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfY29tcGxleF9lcnJv
cihzZWxmKToKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQ0
CisgICAgICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgICAgIHJldHVybiA0MworICAgID4g
ICAgICAgc29tZWZ1bmMoZigpLCBnKCkpCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjE3Njog
CisgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIAorICAgIGZhaWx1cmVfZGVtby5weTo5OiBpbiBzb21l
ZnVuYworICAgICAgICBvdGhlcmZ1bmMoeCx5KQorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAg
ICAKKyAgICBhID0gNDQsIGIgPSA0MworICAgIAorICAgICAgICBkZWYgb3RoZXJmdW5jKGEsYik6
CisgICAgPiAgICAgICBhc3NlcnQgYT09YgorICAgIEUgICAgICAgYXNzZXJ0IDQ0ID09IDQzCisg
ICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19f
X19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3oxX3VucGFja19lcnJvciBfX19fX19fX19f
X19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3Jz
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF96MV91bnBhY2tf
ZXJyb3Ioc2VsZik6CisgICAgICAgICAgICBsID0gW10KKyAgICA+ICAgICAgIGEsYiAgPSBsCisg
ICAgRSAgICAgICBWYWx1ZUVycm9yOiBub3QgZW5vdWdoIHZhbHVlcyB0byB1bnBhY2sgKGV4cGVj
dGVkIDIsIGdvdCAwKQorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxODA6IFZhbHVlRXJyb3IK
KyAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3oyX3R5cGVfZXJy
b3IgX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8u
VGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0
ZXN0X3oyX3R5cGVfZXJyb3Ioc2VsZik6CisgICAgICAgICAgICBsID0gMworICAgID4gICAgICAg
YSxiICA9IGwKKyAgICBFICAgICAgIFR5cGVFcnJvcjogJ2ludCcgb2JqZWN0IGlzIG5vdCBpdGVy
YWJsZQorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxODQ6IFR5cGVFcnJvcgorICAgIF9fX19f
X19fX19fX19fX19fX19fX18gVGVzdE1vcmVFcnJvcnMudGVzdF9zdGFydHN3aXRoIF9fX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVy
cm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rfc3RhcnRz
d2l0aChzZWxmKToKKyAgICAgICAgICAgIHMgPSAiMTIzIgorICAgICAgICAgICAgZyA9ICI0NTYi
CisgICAgPiAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKGcpCisgICAgRSAgICAgICBBc3NlcnRp
b25FcnJvcjogYXNzZXJ0IEZhbHNlCisgICAgRSAgICAgICAgKyAgd2hlcmUgRmFsc2UgPSA8YnVp
bHQtaW4gbWV0aG9kIHN0YXJ0c3dpdGggb2Ygc3RyIG9iamVjdCBhdCAweGRlYWRiZWVmPignNDU2
JykKKyAgICBFICAgICAgICArICAgIHdoZXJlIDxidWlsdC1pbiBtZXRob2Qgc3RhcnRzd2l0aCBv
ZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ID0gJzEyMycuc3RhcnRzd2l0aAorICAgIAorICAg
IGZhaWx1cmVfZGVtby5weToxODk6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19f
X19fIFRlc3RNb3JlRXJyb3JzLnRlc3Rfc3RhcnRzd2l0aF9uZXN0ZWQgX19fX19fX19fX19fX19f
X19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVj
dCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9zdGFydHN3aXRoX25lc3Rl
ZChzZWxmKToKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICIx
MjMiCisgICAgICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgICAgIHJldHVybiAiNDU2Igor
ICAgID4gICAgICAgYXNzZXJ0IGYoKS5zdGFydHN3aXRoKGcoKSkKKyAgICBFICAgICAgIEFzc2Vy
dGlvbkVycm9yOiBhc3NlcnQgRmFsc2UKKyAgICBFICAgICAgICArICB3aGVyZSBGYWxzZSA9IDxi
dWlsdC1pbiBtZXRob2Qgc3RhcnRzd2l0aCBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+KCc0
NTYnKQorICAgIEUgICAgICAgICsgICAgd2hlcmUgPGJ1aWx0LWluIG1ldGhvZCBzdGFydHN3aXRo
IG9mIHN0ciBvYmplY3QgYXQgMHhkZWFkYmVlZj4gPSAnMTIzJy5zdGFydHN3aXRoCisgICAgRSAg
ICAgICAgKyAgICAgIHdoZXJlICcxMjMnID0gPGZ1bmN0aW9uIFRlc3RNb3JlRXJyb3JzLnRlc3Rf
c3RhcnRzd2l0aF9uZXN0ZWQuPGxvY2Fscz4uZiBhdCAweGRlYWRiZWVmPigpCisgICAgRSAgICAg
ICAgKyAgICBhbmQgICAnNDU2JyA9IDxmdW5jdGlvbiBUZXN0TW9yZUVycm9ycy50ZXN0X3N0YXJ0
c3dpdGhfbmVzdGVkLjxsb2NhbHM+LmcgYXQgMHhkZWFkYmVlZj4oKQorICAgIAorICAgIGZhaWx1
cmVfZGVtby5weToxOTY6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19f
IFRlc3RNb3JlRXJyb3JzLnRlc3RfZ2xvYmFsX2Z1bmMgX19fX19fX19fX19fX19fX19fX19fXwor
ICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVjdCBhdCAw
eGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9nbG9iYWxfZnVuYyhzZWxmKToKKyAg
ICA+ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdsb2JmKDQyKSwgZmxvYXQpCisgICAgRSAgICAg
ICBhc3NlcnQgRmFsc2UKKyAgICBFICAgICAgICArICB3aGVyZSBGYWxzZSA9IGlzaW5zdGFuY2Uo
NDMsIGZsb2F0KQorICAgIEUgICAgICAgICsgICAgd2hlcmUgNDMgPSBnbG9iZig0MikKKyAgICAK
KyAgICBmYWlsdXJlX2RlbW8ucHk6MTk5OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19f
X19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3RfaW5zdGFuY2UgX19fX19fX19fX19fX19f
X19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfaW5zdGFuY2Uoc2Vs
Zik6CisgICAgICAgICAgICBzZWxmLnggPSA2KjcKKyAgICA+ICAgICAgIGFzc2VydCBzZWxmLngg
IT0gNDIKKyAgICBFICAgICAgIGFzc2VydCA0MiAhPSA0MgorICAgIEUgICAgICAgICsgIHdoZXJl
IDQyID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4u
eAorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToyMDM6IEFzc2VydGlvbkVycm9yCisgICAgX19f
X19fX19fX19fX19fX19fX19fX18gVGVzdE1vcmVFcnJvcnMudGVzdF9jb21wYXJlIF9fX19fX19f
X19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3Jl
RXJyb3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9jb21w
YXJlKHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0IGdsb2JmKDEwKSA8IDUKKyAgICBFICAgICAg
IGFzc2VydCAxMSA8IDUKKyAgICBFICAgICAgICArICB3aGVyZSAxMSA9IGdsb2JmKDEwKQorICAg
IAorICAgIGZhaWx1cmVfZGVtby5weToyMDY6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19f
X19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3RfdHJ5X2ZpbmFsbHkgX19fX19fX19fX19f
X19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3Jz
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF90cnlfZmluYWxs
eShzZWxmKToKKyAgICAgICAgICAgIHggPSAxCisgICAgICAgICAgICB0cnk6CisgICAgPiAgICAg
ICAgICAgYXNzZXJ0IHggPT0gMAorICAgIEUgICAgICAgICAgIGFzc2VydCAxID09IDAKKyAgICAK
KyAgICBmYWlsdXJlX2RlbW8ucHk6MjExOiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19f
X19fX19fX18gVGVzdEN1c3RvbUFzc2VydE1zZy50ZXN0X3NpbmdsZV9saW5lIF9fX19fX19fX19f
X19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9tQXNzZXJ0
TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9zaW5nbGVf
bGluZShzZWxmKToKKyAgICAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgICAg
ICBhID0gMQorICAgICAgICAgICAgYiA9IDIKKyAgICA+ICAgICAgIGFzc2VydCBBLmEgPT0gYiwg
IkEuYSBhcHBlYXJzIG5vdCB0byBiZSBiIgorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IEEu
YSBhcHBlYXJzIG5vdCB0byBiZSBiCisgICAgRSAgICAgICBhc3NlcnQgMSA9PSAyCisgICAgRSAg
ICAgICAgKyAgd2hlcmUgMSA9IDxjbGFzcyAnZmFpbHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRN
c2cudGVzdF9zaW5nbGVfbGluZS48bG9jYWxzPi5BJz4uYQorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weToyMjI6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX18gVGVzdEN1
c3RvbUFzc2VydE1zZy50ZXN0X211bHRpbGluZSBfX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cgb2JqZWN0IGF0IDB4
ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X211bHRpbGluZShzZWxmKToKKyAgICAg
ICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgICAgICBhID0gMQorICAgICAgICAg
ICAgYiA9IDIKKyAgICA+ICAgICAgIGFzc2VydCBBLmEgPT0gYiwgIkEuYSBhcHBlYXJzIG5vdCB0
byBiZSBiXG4iIFwKKyAgICAgICAgICAgICAgICAib3IgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGJc
bm9uZSBvZiB0aG9zZSIKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBBLmEgYXBwZWFycyBu
b3QgdG8gYmUgYgorICAgIEUgICAgICAgICBvciBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYgorICAg
IEUgICAgICAgICBvbmUgb2YgdGhvc2UKKyAgICBFICAgICAgIGFzc2VydCAxID09IDIKKyAgICBF
ICAgICAgICArICB3aGVyZSAxID0gPGNsYXNzICdmYWlsdXJlX2RlbW8uVGVzdEN1c3RvbUFzc2Vy
dE1zZy50ZXN0X211bHRpbGluZS48bG9jYWxzPi5BJz4uYQorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weToyMjg6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fXyBUZXN0Q3Vz
dG9tQXNzZXJ0TXNnLnRlc3RfY3VzdG9tX3JlcHIgX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cgb2JqZWN0IGF0IDB4
ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByKHNlbGYpOgorICAg
ICAgICAgICAgY2xhc3MgSlNPTihvYmplY3QpOgorICAgICAgICAgICAgICAgIGEgPSAxCisgICAg
ICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIlRoaXMgaXMgSlNPTlxue1xuICAnZm9vJzogJ2Jhcidcbn0iCisgICAgICAgICAgICBhID0g
SlNPTigpCisgICAgICAgICAgICBiID0gMgorICAgID4gICAgICAgYXNzZXJ0IGEuYSA9PSBiLCBh
CisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogVGhpcyBpcyBKU09OCisgICAgRSAgICAgICAg
IHsKKyAgICBFICAgICAgICAgICAnZm9vJzogJ2JhcicKKyAgICBFICAgICAgICAgfQorICAgIEUg
ICAgICAgYXNzZXJ0IDEgPT0gMgorICAgIEUgICAgICAgICsgIHdoZXJlIDEgPSBUaGlzIGlzIEpT
T05cbntcbiAgJ2Zvbyc6ICdiYXInXG59LmEKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjM4
OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IHdhcm5p
bmdzIHN1bW1hcnkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBOb25lCisgICAg
ICBNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1v
dmVkIGluIHB5dGVzdCA0LjAuCisgICAgICBQbGVhc2UgdXNlIE1ldGFmdW5jLnBhcmFtZXRyaXpl
IGluc3RlYWQuCisgICAgCisgICAgLS0gRG9jczogaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xh
dGVzdC93YXJuaW5ncy5odG1sCisgICAgPT09PT09PT09PT09PT09PT09IDQyIGZhaWxlZCwgMSB3
YXJuaW5ncyBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvc2ltcGxlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL3NpbXBsZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc4YTBkYjAwOTRiOTJjMDhjYmZmZmZk
NjJlNmM3MWYxOGRhMThjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL3NpbXBsZS5yc3QKQEAgLTAsMCArMSw4NDcgQEAKKworCitCYXNpYyBwYXR0ZXJucyBh
bmQgZXhhbXBsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworUGFzcyBkaWZmZXJlbnQgdmFsdWVzIHRvIGEgdGVzdCBmdW5jdGlv
biwgZGVwZW5kaW5nIG9uIGNvbW1hbmQgbGluZSBvcHRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy4uIHJlZ2VuZG9jOndpcGUKKworU3VwcG9zZSB3ZSB3YW50IHRvIHdyaXRlIGEgdGVzdCB0
aGF0IGRlcGVuZHMgb24gYSBjb21tYW5kIGxpbmUgb3B0aW9uLgorSGVyZSBpcyBhIGJhc2ljIHBh
dHRlcm4gdG8gYWNoaWV2ZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAj
IGNvbnRlbnQgb2YgdGVzdF9zYW1wbGUucHkKKyAgICBkZWYgdGVzdF9hbnN3ZXIoY21kb3B0KToK
KyAgICAgICAgaWYgY21kb3B0ID09ICJ0eXBlMSI6CisgICAgICAgICAgICBwcmludCAoImZpcnN0
IikKKyAgICAgICAgZWxpZiBjbWRvcHQgPT0gInR5cGUyIjoKKyAgICAgICAgICAgIHByaW50ICgi
c2Vjb25kIikKKyAgICAgICAgYXNzZXJ0IDAgIyB0byBzZWUgd2hhdCB3YXMgcHJpbnRlZAorCisK
K0ZvciB0aGlzIHRvIHdvcmsgd2UgbmVlZCB0byBhZGQgYSBjb21tYW5kIGxpbmUgb3B0aW9uIGFu
ZAorcHJvdmlkZSB0aGUgYGBjbWRvcHRgYCB0aHJvdWdoIGEgOnJlZjpgZml4dHVyZSBmdW5jdGlv
biA8Zml4dHVyZSBmdW5jdGlvbj5gOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAj
IGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgcHl0
ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLWNtZG9w
dCIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJ0eXBlMSIsCisgICAgICAgICAgICBoZWxwPSJt
eSBvcHRpb246IHR5cGUxIG9yIHR5cGUyIikKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRl
ZiBjbWRvcHQocmVxdWVzdCk6CisgICAgICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRp
b24oIi0tY21kb3B0IikKKworTGV0J3MgcnVuIHRoaXMgd2l0aG91dCBzdXBwbHlpbmcgb3VyIG5l
dyBvcHRpb246OgorCisgICAgJCBweXRlc3QgLXEgdGVzdF9zYW1wbGUucHkKKyAgICBGICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVS
RVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyB0ZXN0X2Fuc3dlciBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXworICAgIAorICAgIGNtZG9wdCA9ICd0eXBlMScKKyAgICAKKyAgICAgICAgZGVmIHRlc3Rf
YW5zd2VyKGNtZG9wdCk6CisgICAgICAgICAgICBpZiBjbWRvcHQgPT0gInR5cGUxIjoKKyAgICAg
ICAgICAgICAgICBwcmludCAoImZpcnN0IikKKyAgICAgICAgICAgIGVsaWYgY21kb3B0ID09ICJ0
eXBlMiI6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZWNvbmQiKQorICAgID4gICAgICAgYXNz
ZXJ0IDAgIyB0byBzZWUgd2hhdCB3YXMgcHJpbnRlZAorICAgIEUgICAgICAgYXNzZXJ0IDAKKyAg
ICAKKyAgICB0ZXN0X3NhbXBsZS5weTo2OiBBc3NlcnRpb25FcnJvcgorICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICBmaXJzdAorICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcworCitBbmQg
bm93IHdpdGggc3VwcGx5aW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbjo6CisKKyAgICAkIHB5dGVz
dCAtcSAtLWNtZG9wdD10eXBlMgorICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfYW5z
d2VyIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgY21kb3B0ID0g
J3R5cGUyJworICAgIAorICAgICAgICBkZWYgdGVzdF9hbnN3ZXIoY21kb3B0KToKKyAgICAgICAg
ICAgIGlmIGNtZG9wdCA9PSAidHlwZTEiOgorICAgICAgICAgICAgICAgIHByaW50ICgiZmlyc3Qi
KQorICAgICAgICAgICAgZWxpZiBjbWRvcHQgPT0gInR5cGUyIjoKKyAgICAgICAgICAgICAgICBw
cmludCAoInNlY29uZCIpCisgICAgPiAgICAgICBhc3NlcnQgMCAjIHRvIHNlZSB3aGF0IHdhcyBw
cmludGVkCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3Rfc2FtcGxlLnB5OjY6
IEFzc2VydGlvbkVycm9yCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVk
IHN0ZG91dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHNlY29uZAorICAg
IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcworCitZb3UgY2FuIHNlZSB0aGF0IHRoZSBjb21tYW5k
IGxpbmUgb3B0aW9uIGFycml2ZWQgaW4gb3VyIHRlc3QuICBUaGlzCitjb21wbGV0ZXMgdGhlIGJh
c2ljIHBhdHRlcm4uICBIb3dldmVyLCBvbmUgb2Z0ZW4gcmF0aGVyIHdhbnRzIHRvIHByb2Nlc3MK
K2NvbW1hbmQgbGluZSBvcHRpb25zIG91dHNpZGUgb2YgdGhlIHRlc3QgYW5kIHJhdGhlciBwYXNz
IGluIGRpZmZlcmVudCBvcgorbW9yZSBjb21wbGV4IG9iamVjdHMuCisKK0R5bmFtaWNhbGx5IGFk
ZGluZyBjb21tYW5kIGxpbmUgb3B0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitU
aHJvdWdoIDpjb25mdmFsOmBhZGRvcHRzYCB5b3UgY2FuIHN0YXRpY2FsbHkgYWRkIGNvbW1hbmQg
bGluZQorb3B0aW9ucyBmb3IgeW91ciBwcm9qZWN0LiAgWW91IGNhbiBhbHNvIGR5bmFtaWNhbGx5
IG1vZGlmeQordGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYmVmb3JlIHRoZXkgZ2V0IHByb2Nl
c3NlZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0
ZXN0LnB5CisgICAgaW1wb3J0IHN5cworICAgIGRlZiBweXRlc3RfY21kbGluZV9wcmVwYXJzZShh
cmdzKToKKyAgICAgICAgaWYgJ3hkaXN0JyBpbiBzeXMubW9kdWxlczogIyBweXRlc3QteGRpc3Qg
cGx1Z2luCisgICAgICAgICAgICBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCisgICAgICAgICAgICBu
dW0gPSBtYXgobXVsdGlwcm9jZXNzaW5nLmNwdV9jb3VudCgpIC8gMiwgMSkKKyAgICAgICAgICAg
IGFyZ3NbOl0gPSBbIi1uIiwgc3RyKG51bSldICsgYXJncworCitJZiB5b3UgaGF2ZSB0aGUgYHhk
aXN0IHBsdWdpbiA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QteGRpc3Q+YF8g
aW5zdGFsbGVkCit5b3Ugd2lsbCBub3cgYWx3YXlzIHBlcmZvcm0gdGVzdCBydW5zIHVzaW5nIGEg
bnVtYmVyCitvZiBzdWJwcm9jZXNzZXMgY2xvc2UgdG8geW91ciBDUFUuIFJ1bm5pbmcgaW4gYW4g
ZW1wdHkKK2RpcmVjdG9yeSB3aXRoIHRoZSBhYm92ZSBjb25mdGVzdC5weTo6CisKKyAgICAkIHB5
dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRz
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDAgaXRlbXMKKyAg
ICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNv
bmRzID09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9gZXhjb250cm9sc2tpcGA6CisKK0Nv
bnRyb2wgc2tpcHBpbmcgb2YgdGVzdHMgYWNjb3JkaW5nIHRvIGNvbW1hbmQgbGluZSBvcHRpb24K
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKworSGVyZSBpcyBhIGBgY29uZnRlc3QucHlgYCBm
aWxlIGFkZGluZyBhIGBgLS1ydW5zbG93YGAgY29tbWFuZAorbGluZSBvcHRpb24gdG8gY29udHJv
bCBza2lwcGluZyBvZiBgYHB5dGVzdC5tYXJrLnNsb3dgYCBtYXJrZWQgdGVzdHM6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAg
aW1wb3J0IHB5dGVzdAorICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAg
IHBhcnNlci5hZGRvcHRpb24oIi0tcnVuc2xvdyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0icnVuIHNsb3cgdGVzdHMi
KQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKGNvbmZpZywgaXRlbXMp
OgorICAgICAgICBpZiBjb25maWcuZ2V0b3B0aW9uKCItLXJ1bnNsb3ciKToKKyAgICAgICAgICAg
ICMgLS1ydW5zbG93IGdpdmVuIGluIGNsaTogZG8gbm90IHNraXAgc2xvdyB0ZXN0cworICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgIHNraXBfc2xvdyA9IHB5dGVzdC5tYXJrLnNraXAocmVhc29u
PSJuZWVkIC0tcnVuc2xvdyBvcHRpb24gdG8gcnVuIikKKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRl
bXM6CisgICAgICAgICAgICBpZiAic2xvdyIgaW4gaXRlbS5rZXl3b3JkczoKKyAgICAgICAgICAg
ICAgICBpdGVtLmFkZF9tYXJrZXIoc2tpcF9zbG93KQorCitXZSBjYW4gbm93IHdyaXRlIGEgdGVz
dCBtb2R1bGUgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNv
bnRlbnQgb2YgdGVzdF9tb2R1bGUucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKworICAgIGRlZiB0
ZXN0X2Z1bmNfZmFzdCgpOgorICAgICAgICBwYXNzCisKKworICAgIEBweXRlc3QubWFyay5zbG93
CisgICAgZGVmIHRlc3RfZnVuY19zbG93KCk6CisgICAgICAgIHBhc3MKKworYW5kIHdoZW4gcnVu
bmluZyBpdCB3aWxsIHNlZSBhIHNraXBwZWQgInNsb3ciIHRlc3Q6OgorCisgICAgJCBweXRlc3Qg
LXJzICAgICMgIi1ycyIgbWVhbnMgcmVwb3J0IGRldGFpbHMgb24gdGhlIGxpdHRsZSAncycKKyAg
ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55
LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAgCisgICAg
dGVzdF9tb2R1bGUucHkgLnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0
ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFNLSVAgWzFd
IHRlc3RfbW9kdWxlLnB5Ojg6IG5lZWQgLS1ydW5zbG93IG9wdGlvbiB0byBydW4KKyAgICAKKyAg
ICA9PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkLCAxIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09CisKK09yIHJ1biBpdCBpbmNsdWRpbmcgdGhlIGBgc2xvd2Bg
IG1hcmtlZCB0ZXN0OjoKKworICAgICQgcHl0ZXN0IC0tcnVuc2xvdworICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIs
IGluaWZpbGU6CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5w
eSAuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDIgcGFzc2VkIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1dyaXRpbmcgd2VsbCBpbnRl
Z3JhdGVkIGFzc2VydGlvbiBoZWxwZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK0lmIHlvdSBoYXZlIGEg
dGVzdCBoZWxwZXIgZnVuY3Rpb24gY2FsbGVkIGZyb20gYSB0ZXN0IHlvdSBjYW4KK3VzZSB0aGUg
YGBweXRlc3QuZmFpbGBgIG1hcmtlciB0byBmYWlsIGEgdGVzdCB3aXRoIGEgY2VydGFpbiBtZXNz
YWdlLgorVGhlIHRlc3Qgc3VwcG9ydCBmdW5jdGlvbiB3aWxsIG5vdCBzaG93IHVwIGluIHRoZSB0
cmFjZWJhY2sgaWYgeW91CitzZXQgdGhlIGBgX190cmFjZWJhY2toaWRlX19gYCBvcHRpb24gc29t
ZXdoZXJlIGluIHRoZSBoZWxwZXIgZnVuY3Rpb24uCitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9jaGVja2NvbmZpZy5weQorICAgIGlt
cG9ydCBweXRlc3QKKyAgICBkZWYgY2hlY2tjb25maWcoeCk6CisgICAgICAgIF9fdHJhY2ViYWNr
aGlkZV9fID0gVHJ1ZQorICAgICAgICBpZiBub3QgaGFzYXR0cih4LCAiY29uZmlnIik6CisgICAg
ICAgICAgICBweXRlc3QuZmFpbCgibm90IGNvbmZpZ3VyZWQ6ICVzIiAlKHgsKSkKKworICAgIGRl
ZiB0ZXN0X3NvbWV0aGluZygpOgorICAgICAgICBjaGVja2NvbmZpZyg0MikKKworVGhlIGBgX190
cmFjZWJhY2toaWRlX19gYCBzZXR0aW5nIGluZmx1ZW5jZXMgYGBweXRlc3RgYCBzaG93aW5nCitv
ZiB0cmFjZWJhY2tzOiB0aGUgYGBjaGVja2NvbmZpZ2BgIGZ1bmN0aW9uIHdpbGwgbm90IGJlIHNo
b3duCit1bmxlc3MgdGhlIGBgLS1mdWxsLXRyYWNlYGAgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBz
cGVjaWZpZWQuCitMZXQncyBydW4gb3VyIGxpdHRsZSBmdW5jdGlvbjo6CisKKyAgICAkIHB5dGVz
dCAtcSB0ZXN0X2NoZWNrY29uZmlnLnB5CisgICAgRiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0
X3NvbWV0aGluZyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAg
ZGVmIHRlc3Rfc29tZXRoaW5nKCk6CisgICAgPiAgICAgICBjaGVja2NvbmZpZyg0MikKKyAgICBF
ICAgICAgIEZhaWxlZDogbm90IGNvbmZpZ3VyZWQ6IDQyCisgICAgCisgICAgdGVzdF9jaGVja2Nv
bmZpZy5weTo4OiBGYWlsZWQKKyAgICAxIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMKKworSWYgeW91
IG9ubHkgd2FudCB0byBoaWRlIGNlcnRhaW4gZXhjZXB0aW9ucywgeW91IGNhbiBzZXQgYGBfX3Ry
YWNlYmFja2hpZGVfX2BgCit0byBhIGNhbGxhYmxlIHdoaWNoIGdldHMgdGhlIGBgRXhjZXB0aW9u
SW5mb2BgIG9iamVjdC4gWW91IGNhbiBmb3IgZXhhbXBsZSB1c2UKK3RoaXMgdG8gbWFrZSBzdXJl
IHVuZXhwZWN0ZWQgZXhjZXB0aW9uIHR5cGVzIGFyZW4ndCBoaWRkZW46CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRob24KKworICAgIGltcG9ydCBvcGVyYXRvcgorICAgIGltcG9ydCBweXRlc3QKKwor
ICAgIGNsYXNzIENvbmZpZ0V4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgY2hlY2tjb25maWcoeCk6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gb3BlcmF0
b3IubWV0aG9kY2FsbGVyKCdlcnJpc2luc3RhbmNlJywgQ29uZmlnRXhjZXB0aW9uKQorICAgICAg
ICBpZiBub3QgaGFzYXR0cih4LCAiY29uZmlnIik6CisgICAgICAgICAgICByYWlzZSBDb25maWdF
eGNlcHRpb24oIm5vdCBjb25maWd1cmVkOiAlcyIgJSh4LCkpCisKKyAgICBkZWYgdGVzdF9zb21l
dGhpbmcoKToKKyAgICAgICAgY2hlY2tjb25maWcoNDIpCisKK1RoaXMgd2lsbCBhdm9pZCBoaWRp
bmcgdGhlIGV4Y2VwdGlvbiB0cmFjZWJhY2sgb24gdW5yZWxhdGVkIGV4Y2VwdGlvbnMgKGkuZS4K
K2J1Z3MgaW4gYXNzZXJ0aW9uIGhlbHBlcnMpLgorCisKK0RldGVjdCBpZiBydW5uaW5nIGZyb20g
d2l0aGluIGEgcHl0ZXN0IHJ1bgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitVc3VhbGx5
IGl0IGlzIGEgYmFkIGlkZWEgdG8gbWFrZSBhcHBsaWNhdGlvbiBjb2RlCitiZWhhdmUgZGlmZmVy
ZW50bHkgaWYgY2FsbGVkIGZyb20gYSB0ZXN0LiAgQnV0IGlmIHlvdQorYWJzb2x1dGVseSBtdXN0
IGZpbmQgb3V0IGlmIHlvdXIgYXBwbGljYXRpb24gY29kZSBpcworcnVubmluZyBmcm9tIGEgdGVz
dCB5b3UgY2FuIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAgZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBzeXMuX2NhbGxlZF9m
cm9tX3Rlc3QgPSBUcnVlCisKKyAgICBkZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Cisg
ICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgZGVsIHN5cy5fY2FsbGVkX2Zyb21fdGVzdAorCith
bmQgdGhlbiBjaGVjayBmb3IgdGhlIGBgc3lzLl9jYWxsZWRfZnJvbV90ZXN0YGAgZmxhZzoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaWYgaGFzYXR0cihzeXMsICdfY2FsbGVkX2Zy
b21fdGVzdCcpOgorICAgICAgICAjIGNhbGxlZCBmcm9tIHdpdGhpbiBhIHRlc3QgcnVuCisgICAg
ZWxzZToKKyAgICAgICAgIyBjYWxsZWQgIm5vcm1hbGx5IgorCithY2NvcmRpbmdseSBpbiB5b3Vy
IGFwcGxpY2F0aW9uLiAgSXQncyBhbHNvIGEgZ29vZCBpZGVhCit0byB1c2UgeW91ciBvd24gYXBw
bGljYXRpb24gbW9kdWxlIHJhdGhlciB0aGFuIGBgc3lzYGAKK2ZvciBoYW5kbGluZyBmbGFnLgor
CitBZGRpbmcgaW5mbyB0byB0ZXN0IHJlcG9ydCBoZWFkZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9j
OndpcGUKKworSXQncyBlYXN5IHRvIHByZXNlbnQgZXh0cmEgaW5mb3JtYXRpb24gaW4gYSBgYHB5
dGVzdGBgIHJ1bjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9m
IGNvbmZ0ZXN0LnB5CisKKyAgICBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnKToKKyAg
ICAgICAgcmV0dXJuICJwcm9qZWN0IGRlcHM6IG15bGliLTEuMSIKKword2hpY2ggd2lsbCBhZGQg
dGhlIHN0cmluZyB0byB0aGUgdGVzdCBoZWFkZXIgYWNjb3JkaW5nbHk6OgorCisgICAgJCBweXRl
c3QKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBwcm9qZWN0
IGRlcHM6IG15bGliLTEuMQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6
CisgICAgY29sbGVjdGVkIDAgaXRlbXMKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisK
Ky4uIHJlZ2VuZG9jOndpcGUKKworSXQgaXMgYWxzbyBwb3NzaWJsZSB0byByZXR1cm4gYSBsaXN0
IG9mIHN0cmluZ3Mgd2hpY2ggd2lsbCBiZSBjb25zaWRlcmVkIGFzIHNldmVyYWwKK2xpbmVzIG9m
IGluZm9ybWF0aW9uLiBZb3UgbWF5IGNvbnNpZGVyIGBgY29uZmlnLmdldG9wdGlvbigndmVyYm9z
ZScpYGAgaW4gb3JkZXIgdG8KK2Rpc3BsYXkgbW9yZSBpbmZvcm1hdGlvbiBpZiBhcHBsaWNhYmxl
OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3Qu
cHkKKworICAgIGRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihjb25maWcpOgorICAgICAgICBpZiBj
b25maWcuZ2V0b3B0aW9uKCd2ZXJib3NlJykgPiAwOgorICAgICAgICAgICAgcmV0dXJuIFsiaW5m
bzE6IGRpZCB5b3Uga25vdyB0aGF0IC4uLiIsICJkaWQgeW91PyJdCisKK3doaWNoIHdpbGwgYWRk
IGluZm8gb25seSB3aGVuIHJ1biB3aXRoICItLXYiOjoKKworICAgICQgcHl0ZXN0IC12CisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jp
bi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgaW5mbzE6IGRpZCB5b3Uga25v
dyB0aGF0IC4uLgorICAgIGRpZCB5b3U/CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMCBpdGVtcworICAgIAorICAg
ID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09
PT09PT09PT09PT09PT09PT09PT0KKworYW5kIG5vdGhpbmcgd2hlbiBydW4gcGxhaW5seTo6CisK
KyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Np
b24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDAg
aXRlbXMKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4g
MC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisKK3Byb2ZpbGluZyB0ZXN0IGR1
cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisK
Ky4uIHZlcnNpb25hZGRlZDogMi4yCisKK0lmIHlvdSBoYXZlIGEgc2xvdyBydW5uaW5nIGxhcmdl
IHRlc3Qgc3VpdGUgeW91IG1pZ2h0IHdhbnQgdG8gZmluZAorb3V0IHdoaWNoIHRlc3RzIGFyZSB0
aGUgc2xvd2VzdC4gTGV0J3MgbWFrZSBhbiBhcnRpZmljaWFsIHRlc3Qgc3VpdGU6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KKworICAgICMgY29udGVudCBvZiB0ZXN0X3NvbWVfYXJlX3Nsb3cu
cHkKKyAgICBpbXBvcnQgdGltZQorCisgICAgZGVmIHRlc3RfZnVuY2Zhc3QoKToKKyAgICAgICAg
dGltZS5zbGVlcCgwLjEpCisKKyAgICBkZWYgdGVzdF9mdW5jc2xvdzEoKToKKyAgICAgICAgdGlt
ZS5zbGVlcCgwLjIpCisKKyAgICBkZWYgdGVzdF9mdW5jc2xvdzIoKToKKyAgICAgICAgdGltZS5z
bGVlcCgwLjMpCisKK05vdyB3ZSBjYW4gcHJvZmlsZSB3aGljaCB0ZXN0IGZ1bmN0aW9ucyBleGVj
dXRlIHRoZSBzbG93ZXN0OjoKKworICAgICQgcHl0ZXN0IC0tZHVyYXRpb25zPTMKKyAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRl
c3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAzIGl0ZW1zCisgICAgCisgICAgdGVzdF9z
b21lX2FyZV9zbG93LnB5IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzbG93ZXN0
IDMgdGVzdCBkdXJhdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIDAuMzBzIGNh
bGwgICAgIHRlc3Rfc29tZV9hcmVfc2xvdy5weTo6dGVzdF9mdW5jc2xvdzIKKyAgICAwLjIwcyBj
YWxsICAgICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRlc3RfZnVuY3Nsb3cxCisgICAgMC4xMHMg
Y2FsbCAgICAgdGVzdF9zb21lX2FyZV9zbG93LnB5Ojp0ZXN0X2Z1bmNmYXN0CisgICAgPT09PT09
PT09PT09PT09PT09PT09PT09PSAzIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09
PT09PT09PT09PT09PQorCitpbmNyZW1lbnRhbCB0ZXN0aW5nIC0gdGVzdCBzdGVwcworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2Vu
ZG9jOndpcGUKKworU29tZXRpbWVzIHlvdSBtYXkgaGF2ZSBhIHRlc3Rpbmcgc2l0dWF0aW9uIHdo
aWNoIGNvbnNpc3RzIG9mIGEgc2VyaWVzCitvZiB0ZXN0IHN0ZXBzLiAgSWYgb25lIHN0ZXAgZmFp
bHMgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gZXhlY3V0ZSBmdXJ0aGVyCitzdGVwcyBhcyB0aGV5IGFy
ZSBhbGwgZXhwZWN0ZWQgdG8gZmFpbCBhbnl3YXkgYW5kIHRoZWlyIHRyYWNlYmFja3MKK2FkZCBu
byBpbnNpZ2h0LiAgSGVyZSBpcyBhIHNpbXBsZSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSB3aGljaCBp
bnRyb2R1Y2VzCithbiBgYGluY3JlbWVudGFsYGAgbWFya2VyIHdoaWNoIGlzIHRvIGJlIHVzZWQg
b24gY2xhc3NlczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9m
IGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgcHl0ZXN0X3J1bnRl
c3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKKyAgICAgICAgaWYgImluY3JlbWVudGFsIiBpbiBp
dGVtLmtleXdvcmRzOgorICAgICAgICAgICAgaWYgY2FsbC5leGNpbmZvIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgICAgIHBhcmVudCA9IGl0ZW0ucGFyZW50CisgICAgICAgICAgICAgICAgcGFy
ZW50Ll9wcmV2aW91c2ZhaWxlZCA9IGl0ZW0KKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1
cChpdGVtKToKKyAgICAgICAgaWYgImluY3JlbWVudGFsIiBpbiBpdGVtLmtleXdvcmRzOgorICAg
ICAgICAgICAgcHJldmlvdXNmYWlsZWQgPSBnZXRhdHRyKGl0ZW0ucGFyZW50LCAiX3ByZXZpb3Vz
ZmFpbGVkIiwgTm9uZSkKKyAgICAgICAgICAgIGlmIHByZXZpb3VzZmFpbGVkIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgicHJldmlvdXMgdGVzdCBmYWlsZWQgKCVz
KSIgJXByZXZpb3VzZmFpbGVkLm5hbWUpCisKK1RoZXNlIHR3byBob29rIGltcGxlbWVudGF0aW9u
cyB3b3JrIHRvZ2V0aGVyIHRvIGFib3J0IGluY3JlbWVudGFsLW1hcmtlZAordGVzdHMgaW4gYSBj
bGFzcy4gIEhlcmUgaXMgYSB0ZXN0IG1vZHVsZSBleGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zdGVwLnB5CisKKyAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsuaW5jcmVtZW50YWwKKyAgICBjbGFzcyBUZXN0VXNlckhh
bmRsaW5nKG9iamVjdCk6CisgICAgICAgIGRlZiB0ZXN0X2xvZ2luKHNlbGYpOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICBkZWYgdGVzdF9tb2RpZmljYXRpb24oc2VsZik6CisgICAgICAgICAg
ICBhc3NlcnQgMAorICAgICAgICBkZWYgdGVzdF9kZWxldGlvbihzZWxmKToKKyAgICAgICAgICAg
IHBhc3MKKworICAgIGRlZiB0ZXN0X25vcm1hbCgpOgorICAgICAgICBwYXNzCisKK0lmIHdlIHJ1
biB0aGlzOjoKKworICAgICQgcHl0ZXN0IC1yeAorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Cisg
ICAgY29sbGVjdGVkIDQgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3N0ZXAucHkgLkZ4LiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgWEZBSUwgdGVzdF9zdGVwLnB5OjpUZXN0VXNlckhhbmRs
aW5nOjooKTo6dGVzdF9kZWxldGlvbgorICAgICAgcmVhc29uOiBwcmV2aW91cyB0ZXN0IGZhaWxl
ZCAodGVzdF9tb2RpZmljYXRpb24pCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IF9fX19fX19fX19fX19fX19fX19fIFRlc3RVc2VySGFuZGxpbmcudGVzdF9tb2RpZmljYXRpb24g
X19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPHRlc3Rfc3RlcC5UZXN0VXNl
ckhhbmRsaW5nIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9t
b2RpZmljYXRpb24oc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNz
ZXJ0IDAKKyAgICAKKyAgICB0ZXN0X3N0ZXAucHk6OTogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09
PT09PT09PT09PSAxIGZhaWxlZCwgMiBwYXNzZWQsIDEgeGZhaWxlZCBpbiAwLjEyIHNlY29uZHMg
PT09PT09PT09PT09PT09CisKK1dlJ2xsIHNlZSB0aGF0IGBgdGVzdF9kZWxldGlvbmBgIHdhcyBu
b3QgZXhlY3V0ZWQgYmVjYXVzZSBgYHRlc3RfbW9kaWZpY2F0aW9uYGAKK2ZhaWxlZC4gIEl0IGlz
IHJlcG9ydGVkIGFzIGFuICJleHBlY3RlZCBmYWlsdXJlIi4KKworCitQYWNrYWdlL0RpcmVjdG9y
eS1sZXZlbCBmaXh0dXJlcyAoc2V0dXBzKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgaGF2ZSBuZXN0ZWQgdGVzdCBkaXJl
Y3RvcmllcywgeW91IGNhbiBoYXZlIHBlci1kaXJlY3RvcnkgZml4dHVyZSBzY29wZXMKK2J5IHBs
YWNpbmcgZml4dHVyZSBmdW5jdGlvbnMgaW4gYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBpbiB0aGF0
IGRpcmVjdG9yeQorWW91IGNhbiB1c2UgYWxsIHR5cGVzIG9mIGZpeHR1cmVzIGluY2x1ZGluZyA6
cmVmOmBhdXRvdXNlIGZpeHR1cmVzCis8YXV0b3VzZSBmaXh0dXJlcz5gIHdoaWNoIGFyZSB0aGUg
ZXF1aXZhbGVudCBvZiB4VW5pdCdzIHNldHVwL3RlYXJkb3duCitjb25jZXB0LiAgSXQncyBob3dl
dmVyIHJlY29tbWVuZGVkIHRvIGhhdmUgZXhwbGljaXQgZml4dHVyZSByZWZlcmVuY2VzIGluIHlv
dXIKK3Rlc3RzIG9yIHRlc3QgY2xhc3NlcyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGltcGxpY2l0
bHkgZXhlY3V0aW5nCitzZXR1cC90ZWFyZG93biBmdW5jdGlvbnMsIGVzcGVjaWFsbHkgaWYgdGhl
eSBhcmUgZmFyIGF3YXkgZnJvbSB0aGUgYWN0dWFsIHRlc3RzLgorCitIZXJlIGlzIGFuIGV4YW1w
bGUgZm9yIG1ha2luZyBhIGBgZGJgYCBmaXh0dXJlIGF2YWlsYWJsZSBpbiBhIGRpcmVjdG9yeToK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGEvY29uZnRlc3Qu
cHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBjbGFzcyBEQihvYmplY3QpOgorICAgICAgICBw
YXNzCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgIGRlZiBkYigp
OgorICAgICAgICByZXR1cm4gREIoKQorCithbmQgdGhlbiBhIHRlc3QgbW9kdWxlIGluIHRoYXQg
ZGlyZWN0b3J5OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2Yg
YS90ZXN0X2RiLnB5CisgICAgZGVmIHRlc3RfYTEoZGIpOgorICAgICAgICBhc3NlcnQgMCwgZGIg
ICMgdG8gc2hvdyB2YWx1ZQorCithbm90aGVyIHRlc3QgbW9kdWxlOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgYS90ZXN0X2RiMi5weQorICAgIGRlZiB0ZXN0
X2EyKGRiKToKKyAgICAgICAgYXNzZXJ0IDAsIGRiICAjIHRvIHNob3cgdmFsdWUKKworYW5kIHRo
ZW4gYSBtb2R1bGUgaW4gYSBzaXN0ZXIgZGlyZWN0b3J5IHdoaWNoIHdpbGwgbm90IHNlZQordGhl
IGBgZGJgYCBmaXh0dXJlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRl
bnQgb2YgYi90ZXN0X2Vycm9yLnB5CisgICAgZGVmIHRlc3Rfcm9vdChkYik6ICAjIG5vIGRiIGhl
cmUsIHdpbGwgZXJyb3Igb3V0CisgICAgICAgIHBhc3MKKworV2UgY2FuIHJ1biB0aGlzOjoKKwor
ICAgICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Cisg
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgNyBp
dGVtcworICAgIAorICAgIHRlc3Rfc3RlcC5weSAuRnguICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNTclXQorICAgIGEvdGVzdF9kYi5weSBGICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNzEl
XQorICAgIGEvdGVzdF9kYjIucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsgODUlXQorICAgIGIvdGVzdF9lcnJvci5weSBFICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAor
ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRVJST1JTID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fXyBFUlJP
UiBhdCBzZXR1cCBvZiB0ZXN0X3Jvb3QgX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgZmls
ZSAkUkVHRU5ET0NfVE1QRElSL2IvdGVzdF9lcnJvci5weSwgbGluZSAxCisgICAgICBkZWYgdGVz
dF9yb290KGRiKTogICMgbm8gZGIgaGVyZSwgd2lsbCBlcnJvciBvdXQKKyAgICBFICAgICAgIGZp
eHR1cmUgJ2RiJyBub3QgZm91bmQKKyAgICA+ICAgICAgIGF2YWlsYWJsZSBmaXh0dXJlczogY2Fj
aGUsIGNhcGZkLCBjYXBmZGJpbmFyeSwgY2FwbG9nLCBjYXBzeXMsIGNhcHN5c2JpbmFyeSwgZG9j
dGVzdF9uYW1lc3BhY2UsIG1vbmtleXBhdGNoLCBweXRlc3Rjb25maWcsIHJlY29yZF94bWxfcHJv
cGVydHksIHJlY3dhcm4sIHRtcGRpciwgdG1wZGlyX2ZhY3RvcnkKKyAgICA+ICAgICAgIHVzZSAn
cHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4KKyAgICAKKyAg
ICAkUkVHRU5ET0NfVE1QRElSL2IvdGVzdF9lcnJvci5weToxCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fIFRlc3RVc2VySGFuZGxpbmcudGVzdF9tb2Rp
ZmljYXRpb24gX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPHRlc3Rfc3Rl
cC5UZXN0VXNlckhhbmRsaW5nIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBk
ZWYgdGVzdF9tb2RpZmljYXRpb24oc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUg
ICAgICAgYXNzZXJ0IDAKKyAgICAKKyAgICB0ZXN0X3N0ZXAucHk6OTogQXNzZXJ0aW9uRXJyb3IK
KyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hMSBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgZGIgPSA8Y29uZnRlc3QuREIgb2Jq
ZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2ExKGRiKToKKyAgICA+
ICAgICAgIGFzc2VydCAwLCBkYiAgIyB0byBzaG93IHZhbHVlCisgICAgRSAgICAgICBBc3NlcnRp
b25FcnJvcjogPGNvbmZ0ZXN0LkRCIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIEUgICAgICAg
YXNzZXJ0IDAKKyAgICAKKyAgICBhL3Rlc3RfZGIucHk6MjogQXNzZXJ0aW9uRXJyb3IKKyAgICBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hMiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCisgICAgCisgICAgZGIgPSA8Y29uZnRlc3QuREIgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2EyKGRiKToKKyAgICA+ICAgICAg
IGFzc2VydCAwLCBkYiAgIyB0byBzaG93IHZhbHVlCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJv
cjogPGNvbmZ0ZXN0LkRCIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIEUgICAgICAgYXNzZXJ0
IDAKKyAgICAKKyAgICBhL3Rlc3RfZGIyLnB5OjI6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09
PT09PSAzIGZhaWxlZCwgMiBwYXNzZWQsIDEgeGZhaWxlZCwgMSBlcnJvciBpbiAwLjEyIHNlY29u
ZHMgPT09PT09PT09PQorCitUaGUgdHdvIHRlc3QgbW9kdWxlcyBpbiB0aGUgYGBhYGAgZGlyZWN0
b3J5IHNlZSB0aGUgc2FtZSBgYGRiYGAgZml4dHVyZSBpbnN0YW5jZQord2hpbGUgdGhlIG9uZSB0
ZXN0IGluIHRoZSBzaXN0ZXItZGlyZWN0b3J5IGBgYmBgIGRvZXNuJ3Qgc2VlIGl0LiAgV2UgY291
bGQgb2YgY291cnNlCithbHNvIGRlZmluZSBhIGBgZGJgYCBmaXh0dXJlIGluIHRoYXQgc2lzdGVy
IGRpcmVjdG9yeSdzIGBgY29uZnRlc3QucHlgYCBmaWxlLgorTm90ZSB0aGF0IGVhY2ggZml4dHVy
ZSBpcyBvbmx5IGluc3RhbnRpYXRlZCBpZiB0aGVyZSBpcyBhIHRlc3QgYWN0dWFsbHkgbmVlZGlu
ZworaXQgKHVubGVzcyB5b3UgdXNlICJhdXRvdXNlIiBmaXh0dXJlIHdoaWNoIGFyZSBhbHdheXMg
ZXhlY3V0ZWQgYWhlYWQgb2YgdGhlIGZpcnN0IHRlc3QKK2V4ZWN1dGluZykuCisKKworcG9zdC1w
cm9jZXNzIHRlc3QgcmVwb3J0cyAvIGZhaWx1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHdhbnQgdG8gcG9zdHByb2Nlc3MgdGVzdCByZXBvcnRz
IGFuZCBuZWVkIGFjY2VzcyB0byB0aGUgZXhlY3V0aW5nCitlbnZpcm9ubWVudCB5b3UgY2FuIGlt
cGxlbWVudCBhIGhvb2sgdGhhdCBnZXRzIGNhbGxlZCB3aGVuIHRoZSB0ZXN0CisicmVwb3J0IiBv
YmplY3QgaXMgYWJvdXQgdG8gYmUgY3JlYXRlZC4gIEhlcmUgd2Ugd3JpdGUgb3V0IGFsbCBmYWls
aW5nCit0ZXN0IGNhbGxzIGFuZCBhbHNvIGFjY2VzcyBhIGZpeHR1cmUgKGlmIGl0IHdhcyB1c2Vk
IGJ5IHRoZSB0ZXN0KSBpbgorY2FzZSB5b3Ugd2FudCB0byBxdWVyeS9sb29rIGF0IGl0IGR1cmlu
ZyB5b3VyIHBvc3QgcHJvY2Vzc2luZy4gIEluIG91cgorY2FzZSB3ZSBqdXN0IHdyaXRlIHNvbWUg
aW5mb3JtYXRpb24gb3V0IHRvIGEgYGBmYWlsdXJlc2BgIGZpbGU6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAgaW1wb3J0IHB5
dGVzdAorICAgIGltcG9ydCBvcy5wYXRoCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0
PVRydWUsIGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBv
cnQoaXRlbSwgY2FsbCk6CisgICAgICAgICMgZXhlY3V0ZSBhbGwgb3RoZXIgaG9va3MgdG8gb2J0
YWluIHRoZSByZXBvcnQgb2JqZWN0CisgICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICBy
ZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorCisgICAgICAgICMgd2Ugb25seSBsb29rIGF0IGFj
dHVhbCBmYWlsaW5nIHRlc3QgY2FsbHMsIG5vdCBzZXR1cC90ZWFyZG93bgorICAgICAgICBpZiBy
ZXAud2hlbiA9PSAiY2FsbCIgYW5kIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICBtb2RlID0gImEi
IGlmIG9zLnBhdGguZXhpc3RzKCJmYWlsdXJlcyIpIGVsc2UgInciCisgICAgICAgICAgICB3aXRo
IG9wZW4oImZhaWx1cmVzIiwgbW9kZSkgYXMgZjoKKyAgICAgICAgICAgICAgICAjIGxldCdzIGFs
c28gYWNjZXNzIGEgZml4dHVyZSBmb3IgdGhlIGZ1biBvZiBpdAorICAgICAgICAgICAgICAgIGlm
ICJ0bXBkaXIiIGluIGl0ZW0uZml4dHVyZW5hbWVzOgorICAgICAgICAgICAgICAgICAgICBleHRy
YSA9ICIgKCVzKSIgJSBpdGVtLmZ1bmNhcmdzWyJ0bXBkaXIiXQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIGV4dHJhID0gIiIKKworICAgICAgICAgICAgICAgIGYu
d3JpdGUocmVwLm5vZGVpZCArIGV4dHJhICsgIlxuIikKKworCitpZiB5b3UgdGhlbiBoYXZlIGZh
aWxpbmcgdGVzdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMgY29udGVudCBv
ZiB0ZXN0X21vZHVsZS5weQorICAgIGRlZiB0ZXN0X2ZhaWwxKHRtcGRpcik6CisgICAgICAgIGFz
c2VydCAwCisgICAgZGVmIHRlc3RfZmFpbDIoKToKKyAgICAgICAgYXNzZXJ0IDAKKworYW5kIHJ1
biB0aGVtOjoKKworICAgICQgcHl0ZXN0IHRlc3RfbW9kdWxlLnB5CisgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMiBpdGVtcworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5
IEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJF
UyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyB0ZXN0X2ZhaWwxIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCisgICAgCisgICAgdG1wZGlyID0gbG9jYWwoJ1BZVEVTVF9UTVBESVIvdGVzdF9mYWlsMTAn
KQorICAgIAorICAgICAgICBkZWYgdGVzdF9mYWlsMSh0bXBkaXIpOgorICAgID4gICAgICAgYXNz
ZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6Mjog
QXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0
X2ZhaWwyIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgICAgIGRl
ZiB0ZXN0X2ZhaWwyKCk6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0
IDAKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo0OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09
PT09PT09PT09PT09PT09PT09PT0gMiBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09
PT09PT09PT09PT09PT0KKworeW91IHdpbGwgaGF2ZSBhICJmYWlsdXJlcyIgZmlsZSB3aGljaCBj
b250YWlucyB0aGUgZmFpbGluZyB0ZXN0IGlkczo6CisKKyAgICAkIGNhdCBmYWlsdXJlcworICAg
IHRlc3RfbW9kdWxlLnB5Ojp0ZXN0X2ZhaWwxIChQWVRFU1RfVE1QRElSL3Rlc3RfZmFpbDEwKQor
ICAgIHRlc3RfbW9kdWxlLnB5Ojp0ZXN0X2ZhaWwyCisKK01ha2luZyB0ZXN0IHJlc3VsdCBpbmZv
cm1hdGlvbiBhdmFpbGFibGUgaW4gZml4dHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKwor
SWYgeW91IHdhbnQgdG8gbWFrZSB0ZXN0IHJlc3VsdCByZXBvcnRzIGF2YWlsYWJsZSBpbiBmaXh0
dXJlIGZpbmFsaXplcnMKK2hlcmUgaXMgYSBsaXR0bGUgZXhhbXBsZSBpbXBsZW1lbnRlZCB2aWEg
YSBsb2NhbCBwbHVnaW46CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMgY29udGVu
dCBvZiBjb25mdGVzdC5weQorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5ob29r
aW1wbCh0cnlmaXJzdD1UcnVlLCBob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBweXRlc3RfcnVu
dGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgICAgICAjIGV4ZWN1dGUgYWxsIG90aGVy
IGhvb2tzIHRvIG9idGFpbiB0aGUgcmVwb3J0IG9iamVjdAorICAgICAgICBvdXRjb21lID0geWll
bGQKKyAgICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKKworICAgICAgICAjIHNldCBh
IHJlcG9ydCBhdHRyaWJ1dGUgZm9yIGVhY2ggcGhhc2Ugb2YgYSBjYWxsLCB3aGljaCBjYW4KKyAg
ICAgICAgIyBiZSAic2V0dXAiLCAiY2FsbCIsICJ0ZWFyZG93biIKKworICAgICAgICBzZXRhdHRy
KGl0ZW0sICJyZXBfIiArIHJlcC53aGVuLCByZXApCisKKworICAgIEBweXRlc3QuZml4dHVyZQor
ICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAgICAgIHlpZWxkCisgICAgICAgICMgcmVx
dWVzdC5ub2RlIGlzIGFuICJpdGVtIiBiZWNhdXNlIHdlIHVzZSB0aGUgZGVmYXVsdAorICAgICAg
ICAjICJmdW5jdGlvbiIgc2NvcGUKKyAgICAgICAgaWYgcmVxdWVzdC5ub2RlLnJlcF9zZXR1cC5m
YWlsZWQ6CisgICAgICAgICAgICBwcmludCAoInNldHRpbmcgdXAgYSB0ZXN0IGZhaWxlZCEiLCBy
ZXF1ZXN0Lm5vZGUubm9kZWlkKQorICAgICAgICBlbGlmIHJlcXVlc3Qubm9kZS5yZXBfc2V0dXAu
cGFzc2VkOgorICAgICAgICAgICAgaWYgcmVxdWVzdC5ub2RlLnJlcF9jYWxsLmZhaWxlZDoKKyAg
ICAgICAgICAgICAgICBwcmludCAoImV4ZWN1dGluZyB0ZXN0IGZhaWxlZCIsIHJlcXVlc3Qubm9k
ZS5ub2RlaWQpCisKKworaWYgeW91IHRoZW4gaGF2ZSBmYWlsaW5nIHRlc3RzOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9tb2R1bGUucHkKKworICAg
IGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBvdGhlcigpOgor
ICAgICAgICBhc3NlcnQgMAorCisgICAgZGVmIHRlc3Rfc2V0dXBfZmFpbHMoc29tZXRoaW5nLCBv
dGhlcik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X2NhbGxfZmFpbHMoc29tZXRoaW5n
KToKKyAgICAgICAgYXNzZXJ0IDAKKworICAgIGRlZiB0ZXN0X2ZhaWwyKCk6CisgICAgICAgIGFz
c2VydCAwCisKK2FuZCBydW4gaXQ6OgorCisgICAgJCBweXRlc3QgLXMgdGVzdF9tb2R1bGUucHkK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMu
eC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAzIGl0ZW1zCisgICAgCisg
ICAgdGVzdF9tb2R1bGUucHkgRXNldHRpbmcgdXAgYSB0ZXN0IGZhaWxlZCEgdGVzdF9tb2R1bGUu
cHk6OnRlc3Rfc2V0dXBfZmFpbHMKKyAgICBGZXhlY3V0aW5nIHRlc3QgZmFpbGVkIHRlc3RfbW9k
dWxlLnB5Ojp0ZXN0X2NhbGxfZmFpbHMKKyAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSBFUlJPUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fIEVSUk9SIGF0IHNldHVwIG9mIHRlc3Rfc2V0
dXBfZmFpbHMgX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgIGRlZiBvdGhlcigpOgorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAg
ICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6NjogQXNzZXJ0aW9uRXJyb3IK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18gdGVzdF9jYWxsX2ZhaWxzIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgIHNvbWV0aGluZyA9IE5vbmUKKyAgICAKKyAgICAgICAgZGVmIHRlc3RfY2FsbF9mYWlscyhz
b21ldGhpbmcpOgorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisg
ICAgCisgICAgdGVzdF9tb2R1bGUucHk6MTI6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9mYWlsMiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9mYWlsMigpOgorICAgID4gICAgICAg
YXNzZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6
MTU6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT0gMiBmYWlsZWQsIDEg
ZXJyb3IgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PQorCitZb3UnbGwgc2Vl
IHRoYXQgdGhlIGZpeHR1cmUgZmluYWxpemVycyBjb3VsZCB1c2UgdGhlIHByZWNpc2UgcmVwb3J0
aW5nCitpbmZvcm1hdGlvbi4KKworYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgZW52aXJvbm1lbnQg
dmFyaWFibGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIHZlcnNpb25hZGRlZDo6IDMuMgorCitTb21ldGltZXMgYSB0ZXN0IHNlc3Npb24gbWlnaHQg
Z2V0IHN0dWNrIGFuZCB0aGVyZSBtaWdodCBiZSBubyBlYXN5IHdheSB0byBmaWd1cmUgb3V0Cit3
aGljaCB0ZXN0IGdvdCBzdHVjaywgZm9yIGV4YW1wbGUgaWYgcHl0ZXN0IHdhcyBydW4gaW4gcXVp
ZXQgbW9kZSAoYGAtcWBgKSBvciB5b3UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvbnNvbGUK
K291dHB1dC4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgYSBwcm9ibGVtIGlmIHRoZSBwcm9ibGVtIGhl
bHBzIG9ubHkgc3BvcmFkaWNhbGx5LCB0aGUgZmFtb3VzICJmbGFreSIga2luZCBvZiB0ZXN0cy4K
KworYGBweXRlc3RgYCBzZXRzIGEgYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgZW52aXJvbm1lbnQg
dmFyaWFibGUgd2hlbiBydW5uaW5nIHRlc3RzLCB3aGljaCBjYW4gYmUgaW5zcGVjdGVkCitieSBw
cm9jZXNzIG1vbml0b3JpbmcgdXRpbGl0aWVzIG9yIGxpYnJhcmllcyBsaWtlIGBwc3V0aWwgPGh0
dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHN1dGlsPmBfIHRvIGRpc2NvdmVyIHdoaWNoCit0
ZXN0IGdvdCBzdHVjayBpZiBuZWNlc3Nhcnk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgIGltcG9ydCBwc3V0aWwKKworICAgIGZvciBwaWQgaW4gcHN1dGlsLnBpZHMoKToKKyAgICAg
ICAgZW52aXJvbiA9IHBzdXRpbC5Qcm9jZXNzKHBpZCkuZW52aXJvbigpCisgICAgICAgIGlmICdQ
WVRFU1RfQ1VSUkVOVF9URVNUJyBpbiBlbnZpcm9uOgorICAgICAgICAgICAgcHJpbnQoZidweXRl
c3QgcHJvY2VzcyB7cGlkfSBydW5uaW5nOiB7ZW52aXJvblsiUFlURVNUX0NVUlJFTlRfVEVTVCJd
fScpCisKK0R1cmluZyB0aGUgdGVzdCBzZXNzaW9uIHB5dGVzdCB3aWxsIHNldCBgYFBZVEVTVF9D
VVJSRU5UX1RFU1RgYCB0byB0aGUgY3VycmVudCB0ZXN0Cis6cmVmOmBub2RlaWQgPG5vZGVpZHM+
YCBhbmQgdGhlIGN1cnJlbnQgc3RhZ2UsIHdoaWNoIGNhbiBiZSBgYHNldHVwYGAsIGBgY2FsbGBg
CithbmQgYGB0ZWFyZG93bmBgLgorCitGb3IgZXhhbXBsZSwgd2hlbiBydW5uaW5nIGEgc2luZ2xl
IHRlc3QgZnVuY3Rpb24gbmFtZWQgYGB0ZXN0X2Zvb2BgIGZyb20gYGBmb29fbW9kdWxlLnB5YGAs
CitgYFBZVEVTVF9DVVJSRU5UX1RFU1RgYCB3aWxsIGJlIHNldCB0bzoKKworIy4gYGBmb29fbW9k
dWxlLnB5Ojp0ZXN0X2ZvbyAoc2V0dXApYGAKKyMuIGBgZm9vX21vZHVsZS5weTo6dGVzdF9mb28g
KGNhbGwpYGAKKyMuIGBgZm9vX21vZHVsZS5weTo6dGVzdF9mb28gKHRlYXJkb3duKWBgCisKK0lu
IHRoYXQgb3JkZXIuCisKKy4uIG5vdGU6OgorCisgICAgVGhlIGNvbnRlbnRzIG9mIGBgUFlURVNU
X0NVUlJFTlRfVEVTVGBgIGlzIG1lYW50IHRvIGJlIGh1bWFuIHJlYWRhYmxlIGFuZCB0aGUgYWN0
dWFsIGZvcm1hdAorICAgIGNhbiBiZSBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMgKGV2ZW4gYnVn
IGZpeGVzKSBzbyBpdCBzaG91bGRuJ3QgYmUgcmVsaWVkIG9uIGZvciBzY3JpcHRpbmcKKyAgICBv
ciBhdXRvbWF0aW9uLgorCitGcmVlemluZyBweXRlc3QgCistLS0tLS0tLS0tLS0tLS0KKworSWYg
eW91IGZyZWV6ZSB5b3VyIGFwcGxpY2F0aW9uIHVzaW5nIGEgdG9vbCBsaWtlCitgUHlJbnN0YWxs
ZXIgPGh0dHBzOi8vcHlpbnN0YWxsZXIucmVhZHRoZWRvY3MuaW8+YF8KK2luIG9yZGVyIHRvIGRp
c3RyaWJ1dGUgaXQgdG8geW91ciBlbmQtdXNlcnMsIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGFsc28g
cGFja2FnZQoreW91ciB0ZXN0IHJ1bm5lciBhbmQgcnVuIHlvdXIgdGVzdHMgdXNpbmcgdGhlIGZy
b3plbiBhcHBsaWNhdGlvbi4gVGhpcyB3YXkgcGFja2FnaW5nCitlcnJvcnMgc3VjaCBhcyBkZXBl
bmRlbmNpZXMgbm90IGJlaW5nIGluY2x1ZGVkIGludG8gdGhlIGV4ZWN1dGFibGUgY2FuIGJlIGRl
dGVjdGVkIGVhcmx5Cit3aGlsZSBhbHNvIGFsbG93aW5nIHlvdSB0byBzZW5kIHRlc3QgZmlsZXMg
dG8gdXNlcnMgc28gdGhleSBjYW4gcnVuIHRoZW0gaW4gdGhlaXIKK21hY2hpbmVzLCB3aGljaCBj
YW4gYmUgdXNlZnVsIHRvIG9idGFpbiBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgaGFyZCB0byBy
ZXByb2R1Y2UgYnVnLgorCitGb3J0dW5hdGVseSByZWNlbnQgYGBQeUluc3RhbGxlcmBgIHJlbGVh
c2VzIGFscmVhZHkgaGF2ZSBhIGN1c3RvbSBob29rCitmb3IgcHl0ZXN0LCBidXQgaWYgeW91IGFy
ZSB1c2luZyBhbm90aGVyIHRvb2wgdG8gZnJlZXplIGV4ZWN1dGFibGVzIAorc3VjaCBhcyBgYGN4
X2ZyZWV6ZWBgIG9yIGBgcHkyZXhlYGAsIHlvdSBjYW4gdXNlIGBgcHl0ZXN0LmZyZWV6ZV9pbmNs
dWRlcygpYGAKK3RvIG9idGFpbiB0aGUgZnVsbCBsaXN0IG9mIGludGVybmFsIHB5dGVzdCBtb2R1
bGVzLiBIb3cgdG8gY29uZmlndXJlIHRoZSB0b29scwordG8gZmluZCB0aGUgaW50ZXJuYWwgbW9k
dWxlcyB2YXJpZXMgZnJvbSB0b29sIHRvIHRvb2wsIGhvd2V2ZXIuCisKK0luc3RlYWQgb2YgZnJl
ZXppbmcgdGhlIHB5dGVzdCBydW5uZXIgYXMgYSBzZXBhcmF0ZSBleGVjdXRhYmxlLCB5b3UgY2Fu
IG1ha2UgCit5b3VyIGZyb3plbiBwcm9ncmFtIHdvcmsgYXMgdGhlIHB5dGVzdCBydW5uZXIgYnkg
c29tZSBjbGV2ZXIKK2FyZ3VtZW50IGhhbmRsaW5nIGR1cmluZyBwcm9ncmFtIHN0YXJ0dXAuIFRo
aXMgYWxsb3dzIHlvdSB0byAKK2hhdmUgYSBzaW5nbGUgZXhlY3V0YWJsZSwgd2hpY2ggaXMgdXN1
YWxseSBtb3JlIGNvbnZlbmllbnQuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMg
Y29udGVudHMgb2YgYXBwX21haW4ucHkKKyAgICBpbXBvcnQgc3lzCisKKyAgICBpZiBsZW4oc3lz
LmFyZ3YpID4gMSBhbmQgc3lzLmFyZ3ZbMV0gPT0gJy0tcHl0ZXN0JzoKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICBzeXMuZXhpdChweXRlc3QubWFpbihzeXMuYXJndlsyOl0pKQorICAg
IGVsc2U6CisgICAgICAgICMgbm9ybWFsIGFwcGxpY2F0aW9uIGV4ZWN1dGlvbjogYXQgdGhpcyBw
b2ludCBhcmd2IGNhbiBiZSBwYXJzZWQKKyAgICAgICAgIyBieSB5b3VyIGFyZ3VtZW50LXBhcnNp
bmcgbGlicmFyeSBvZiBjaG9pY2UgYXMgdXN1YWwKKyAgICAgICAgLi4uCisKKworVGhpcyBhbGxv
d3MgeW91IHRvIGV4ZWN1dGUgdGVzdHMgdXNpbmcgdGhlIGZyb3plbgorYXBwbGljYXRpb24gd2l0
aCBzdGFuZGFyZCBgYHB5dGVzdGBgIGNvbW1hbmQtbGluZSBvcHRpb25zOjoKKworICAgIC4vYXBw
X21haW4gLS1weXRlc3QgLS12ZXJib3NlIC0tdGI9bG9uZyAtLWp1bml0eG1sPXJlc3VsdHMueG1s
IHRlc3Qtc3VpdGUvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zcGVj
aWFsLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3NwZWNpYWwucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ0MzdlMWNjMzBlYTE4NGE1YzIzMzcxMTAxM2NkMTY2ZjM5NTVkNjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdApAQCAtMCwwICsx
LDcyIEBACitBIHNlc3Npb24tZml4dHVyZSB3aGljaCBjYW4gbG9vayBhdCBhbGwgY29sbGVjdGVk
IHRlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK0Egc2Vzc2lvbi1zY29wZWQgZml4dHVyZSBlZmZlY3RpdmVseSBo
YXMgYWNjZXNzIHRvIGFsbAorY29sbGVjdGVkIHRlc3QgaXRlbXMuICBIZXJlIGlzIGFuIGV4YW1w
bGUgb2YgYSBmaXh0dXJlCitmdW5jdGlvbiB3aGljaCB3YWxrcyBhbGwgY29sbGVjdGVkIHRlc3Rz
IGFuZCBsb29rcworaWYgdGhlaXIgdGVzdCBjbGFzcyBkZWZpbmVzIGEgYGBjYWxsbWVgYCBtZXRo
b2QgYW5kCitjYWxscyBpdDo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKworICAg
IGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIsIGF1
dG91c2U9VHJ1ZSkKKyAgICBkZWYgY2FsbGF0dHJfYWhlYWRfb2ZfYWxsdGVzdHMocmVxdWVzdCk6
CisgICAgICAgIHByaW50ICgiY2FsbGF0dHJfYWhlYWRfb2ZfYWxsdGVzdHMgY2FsbGVkIikKKyAg
ICAgICAgc2VlbiA9IHNldChbTm9uZV0pCisgICAgICAgIHNlc3Npb24gPSByZXF1ZXN0Lm5vZGUK
KyAgICAgICAgZm9yIGl0ZW0gaW4gc2Vzc2lvbi5pdGVtczoKKyAgICAgICAgICAgIGNscyA9IGl0
ZW0uZ2V0cGFyZW50KHB5dGVzdC5DbGFzcykKKyAgICAgICAgICAgIGlmIGNscyBub3QgaW4gc2Vl
bjoKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGNscy5vYmosICJjYWxsbWUiKToKKyAgICAg
ICAgICAgICAgICAgICBjbHMub2JqLmNhbGxtZSgpCisgICAgICAgICAgICAgICAgc2Vlbi5hZGQo
Y2xzKQorCit0ZXN0IGNsYXNzZXMgbWF5IG5vdyBkZWZpbmUgYSBgYGNhbGxtZWBgIG1ldGhvZCB3
aGljaAord2lsbCBiZSBjYWxsZWQgYWhlYWQgb2YgcnVubmluZyBhbnkgdGVzdHM6OgorCisgICAg
IyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CisKKyAgICBjbGFzcyBUZXN0SGVsbG8ob2JqZWN0
KToKKyAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgIGRlZiBjYWxsbWUoY2xzKToKKyAgICAg
ICAgICAgIHByaW50ICgiY2FsbG1lIGNhbGxlZCEiKQorCisgICAgICAgIGRlZiB0ZXN0X21ldGhv
ZDEoc2VsZik6CisgICAgICAgICAgICBwcmludCAoInRlc3RfbWV0aG9kMSBjYWxsZWQiKQorCisg
ICAgICAgIGRlZiB0ZXN0X21ldGhvZDIoc2VsZik6CisgICAgICAgICAgICBwcmludCAoInRlc3Rf
bWV0aG9kMSBjYWxsZWQiKQorCisgICAgY2xhc3MgVGVzdE90aGVyKG9iamVjdCk6CisgICAgICAg
IEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgY2FsbG1lKGNscyk6CisgICAgICAgICAgICBwcmlu
dCAoImNhbGxtZSBvdGhlciBjYWxsZWQiKQorICAgICAgICBkZWYgdGVzdF9vdGhlcihzZWxmKToK
KyAgICAgICAgICAgIHByaW50ICgidGVzdCBvdGhlciIpCisKKyAgICAjIHdvcmtzIHdpdGggdW5p
dHRlc3QgYXMgd2VsbCAuLi4KKyAgICBpbXBvcnQgdW5pdHRlc3QKKworICAgIGNsYXNzIFNvbWVU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgIGRl
ZiBjYWxsbWUoc2VsZik6CisgICAgICAgICAgICBwcmludCAoIlNvbWVUZXN0IGNhbGxtZSBjYWxs
ZWQiKQorCisgICAgICAgIGRlZiB0ZXN0X3VuaXQxKHNlbGYpOgorICAgICAgICAgICAgcHJpbnQg
KCJ0ZXN0X3VuaXQxIG1ldGhvZCBjYWxsZWQiKQorCitJZiB5b3UgcnVuIHRoaXMgd2l0aG91dCBv
dXRwdXQgY2FwdHVyaW5nOjoKKworICAgICQgcHl0ZXN0IC1xIC1zIHRlc3RfbW9kdWxlLnB5Cisg
ICAgY2FsbGF0dHJfYWhlYWRfb2ZfYWxsdGVzdHMgY2FsbGVkCisgICAgY2FsbG1lIGNhbGxlZCEK
KyAgICBjYWxsbWUgb3RoZXIgY2FsbGVkCisgICAgU29tZVRlc3QgY2FsbG1lIGNhbGxlZAorICAg
IHRlc3RfbWV0aG9kMSBjYWxsZWQKKyAgICAudGVzdF9tZXRob2QxIGNhbGxlZAorICAgIC50ZXN0
IG90aGVyCisgICAgLnRlc3RfdW5pdDEgbWV0aG9kIGNhbGxlZAorICAgIC4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAl
XQorICAgIDQgcGFzc2VkIGluIDAuMTIgc2Vjb25kcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODY5NTFmZThiNGJkZDNiNGUyZTQ4ODNkMDAy
MjgyZDkwODU5NmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvYXR0aWMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29u
ZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9pbmRleC5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9tYXJrZXJzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL211bHRpcHl0aG9uLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9u
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3BhcmFtZXRyaXplLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5dGhvbmNvbGxlY3Rpb24ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL3JlcG9ydGluZ2RlbW8ucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvc2lt
cGxlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3NwZWNpYWwucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUveGZhaWxfZGVtby5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUveGZhaWxfZGVtby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL3hmYWlsX2RlbW8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY0ODU3NWU4Nzg3NmI5YjQ5ZmVmN2M4MGFi
NGM1ZmZkNjNmMWJjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL3hmYWlsX2RlbW8ucHkKQEAgLTAsMCArMSwzMCBAQAoraW1wb3J0IHB5dGVzdAoreGZhaWwg
PSBweXRlc3QubWFyay54ZmFpbAorCitAeGZhaWwKK2RlZiB0ZXN0X2hlbGxvKCk6CisgICAgYXNz
ZXJ0IDAKKworQHhmYWlsKHJ1bj1GYWxzZSkKK2RlZiB0ZXN0X2hlbGxvMigpOgorICAgIGFzc2Vy
dCAwCisKK0B4ZmFpbCgiaGFzYXR0cihvcywgJ3NlcCcpIikKK2RlZiB0ZXN0X2hlbGxvMygpOgor
ICAgIGFzc2VydCAwCisKK0B4ZmFpbChyZWFzb249ImJ1ZyAxMTAiKQorZGVmIHRlc3RfaGVsbG80
KCk6CisgICAgYXNzZXJ0IDAKKworQHhmYWlsKCdweXRlc3QuX192ZXJzaW9uX19bMF0gIT0gIjE3
IicpCitkZWYgdGVzdF9oZWxsbzUoKToKKyAgICBhc3NlcnQgMAorCitkZWYgdGVzdF9oZWxsbzYo
KToKKyAgICBweXRlc3QueGZhaWwoInJlYXNvbiIpCisKK0B4ZmFpbChyYWlzZXM9SW5kZXhFcnJv
cikKK2RlZiB0ZXN0X2hlbGxvNygpOgorICAgIHggPSBbXQorICAgIHhbMV0gPSAxCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhpc3Rpbmd0ZXN0c3VpdGUucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4aXN0aW5ndGVzdHN1aXRlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzA0YjMwYzlhNjBk
NjNhYWNmMDZiYjZlYzBkN2Y3NjJhMDBhZjFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4aXN0aW5ndGVzdHN1aXRlLnJzdApAQCAtMCwwICsxLDM0IEBACisuLiBfZXhp
c3Rpbmd0ZXN0c3VpdGU6CisKK1VzaW5nIHB5dGVzdCB3aXRoIGFuIGV4aXN0aW5nIHRlc3Qgc3Vp
dGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUHl0ZXN0
IGNhbiBiZSB1c2VkIHdpdGggbW9zdCBleGlzdGluZyB0ZXN0IHN1aXRlcywgYnV0IGl0cworYmVo
YXZpb3IgZGlmZmVycyBmcm9tIG90aGVyIHRlc3QgcnVubmVycyBzdWNoIGFzIDpyZWY6YG5vc2Ug
PG5vc2VpbnRlZ3JhdGlvbj5gIG9yCitQeXRob24ncyBkZWZhdWx0IHVuaXR0ZXN0IGZyYW1ld29y
ay4KKworQmVmb3JlIHVzaW5nIHRoaXMgc2VjdGlvbiB5b3Ugd2lsbCB3YW50IHRvIDpyZWY6YGlu
c3RhbGwgcHl0ZXN0IDxnZXRzdGFydGVkPmAuCisKK1J1bm5pbmcgYW4gZXhpc3RpbmcgdGVzdCBz
dWl0ZSB3aXRoIHB5dGVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK1NheSB5b3Ugd2FudCB0byBjb250cmlidXRlIHRvIGFuIGV4aXN0aW5nIHJlcG9z
aXRvcnkgc29tZXdoZXJlLgorQWZ0ZXIgcHVsbGluZyB0aGUgY29kZSBpbnRvIHlvdXIgZGV2ZWxv
cG1lbnQgc3BhY2UgdXNpbmcgc29tZQorZmxhdm9yIG9mIHZlcnNpb24gY29udHJvbCBhbmQgKG9w
dGlvbmFsbHkpIHNldHRpbmcgdXAgYSB2aXJ0dWFsZW52Cit5b3Ugd2lsbCB3YW50IHRvIHJ1bjo6
CisKKyAgICBjZCA8cmVwb3NpdG9yeT4KKyAgICBwaXAgaW5zdGFsbCAtZSAuICAjIEVudmlyb25t
ZW50IGRlcGVuZGVudCBhbHRlcm5hdGl2ZXMgaW5jbHVkZQorICAgICAgICAgICAgICAgICAgICAg
ICMgJ3B5dGhvbiBzZXR1cC5weSBkZXZlbG9wJyBhbmQgJ2NvbmRhIGRldmVsb3AnCisKK2luIHlv
dXIgcHJvamVjdCByb290LiAgVGhpcyB3aWxsIHNldCB1cCBhIHN5bWxpbmsgdG8geW91ciBjb2Rl
IGluCitzaXRlLXBhY2thZ2VzLCBhbGxvd2luZyB5b3UgdG8gZWRpdCB5b3VyIGNvZGUgd2hpbGUg
eW91ciB0ZXN0cworcnVuIGFnYWluc3QgaXQgYXMgaWYgaXQgd2VyZSBpbnN0YWxsZWQuCisKK1Nl
dHRpbmcgdXAgeW91ciBwcm9qZWN0IGluIGRldmVsb3BtZW50IG1vZGUgbGV0cyB5b3UgYXZvaWQg
aGF2aW5nIHRvCityZWluc3RhbGwgZXZlcnkgdGltZSB5b3Ugd2FudCB0byBydW4geW91ciB0ZXN0
cywgYW5kIGlzIGxlc3MgYnJpdHRsZSB0aGFuCittdWNraW5nIGFib3V0IHdpdGggc3lzLnBhdGgg
dG8gcG9pbnQgeW91ciB0ZXN0cyBhdCBsb2NhbCBjb2RlLgorCitBbHNvIGNvbnNpZGVyIHVzaW5n
IDpyZWY6YHRveCA8dXNlIHRveD5gLgorCisuLiBpbmNsdWRlOjogbGlua3MuaW5jCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZmFxLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mYXEu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3ZDc0ZTExNDhjNTE5MThkOGYzMzBmYWUxNWE1ZWVlY2EyM2M0NzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZmFxLnJzdApAQCAtMCwwICsx
LDE1NiBAQAorU29tZSBJc3N1ZXMgYW5kIFF1ZXN0aW9ucworPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisuLiBub3RlOjoKKworICAgIFRoaXMgRkFRIGlzIGhlcmUgb25seSBt
b3N0bHkgZm9yIGhpc3RvcmljIHJlYXNvbnMuICBDaGVja291dAorICAgIGBweXRlc3QgUSZBIGF0
IFN0YWNrb3ZlcmZsb3cgPGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9zZWFyY2g/cT1weXRlc3Q+
YF8KKyAgICBmb3IgbWFueSBxdWVzdGlvbnMgYW5kIGFuc3dlcnMgcmVsYXRlZCB0byBweXRlc3Qg
YW5kL29yIHVzZQorICAgIDpyZWY6YGNvbnRhY3QgY2hhbm5lbHNgIHRvIGdldCBoZWxwLgorCitP
biBuYW1pbmcsIG5vc2V0ZXN0cywgbGljZW5zaW5nIGFuZCBtYWdpYworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hvdyBkb2VzIHB5dGVzdCByZWxh
dGUgdG8gbm9zZSBhbmQgdW5pdHRlc3Q/CisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrCisKK2BgcHl0ZXN0YGAgYW5kIG5vc2VfIHNoYXJlIGJhc2ljIHBo
aWxvc29waHkgd2hlbiBpdCBjb21lcwordG8gcnVubmluZyBhbmQgd3JpdGluZyBQeXRob24gdGVz
dHMuICBJbiBmYWN0LCB5b3UgY2FuIHJ1biBtYW55IHRlc3RzCit3cml0dGVuIGZvciBub3NlIHdp
dGggYGBweXRlc3RgYC4gIG5vc2VfIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQKK2FzIGEgY2xvbmUg
b2YgYGBweXRlc3RgYCB3aGVuIGBgcHl0ZXN0YGAgd2FzIGluIHRoZSBgYDAuOGBgIHJlbGVhc2UK
K2N5Y2xlLiAgTm90ZSB0aGF0IHN0YXJ0aW5nIHdpdGggcHl0ZXN0LTIuMCBzdXBwb3J0IGZvciBy
dW5uaW5nIHVuaXR0ZXN0Cit0ZXN0IHN1aXRlcyBpcyBtYWpvcmx5IGltcHJvdmVkLgorCitob3cg
ZG9lcyBweXRlc3QgcmVsYXRlIHRvIHR3aXN0ZWQncyB0cmlhbD8KKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworU2luY2Ugc29tZSB0aW1lIGBgcHl0ZXN0
YGAgaGFzIGJ1aWx0aW4gc3VwcG9ydCBmb3Igc3VwcG9ydGluZyB0ZXN0cword3JpdHRlbiB1c2lu
ZyB0cmlhbC4gSXQgZG9lcyBub3QgaXRzZWxmIHN0YXJ0IGEgcmVhY3RvciwgaG93ZXZlciwKK2Fu
ZCBkb2VzIG5vdCBoYW5kbGUgRGVmZXJyZWRzIHJldHVybmVkIGZyb20gYSB0ZXN0IGluIHB5dGVz
dCBzdHlsZS4KK0lmIHlvdSBhcmUgdXNpbmcgdHJpYWwncyB1bml0dGVzdC5UZXN0Q2FzZSBjaGFu
Y2VzIGFyZSB0aGF0IHlvdSBjYW4KK2p1c3QgcnVuIHlvdXIgdGVzdHMgZXZlbiBpZiB5b3UgcmV0
dXJuIERlZmVycmVkcy4gIEluIGFkZGl0aW9uLAordGhlcmUgYWxzbyBpcyBhIGRlZGljYXRlZCBg
cHl0ZXN0LXR3aXN0ZWQKKzxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXR3aXN0
ZWQ+YF8gcGx1Z2luIHdoaWNoIGFsbG93cyB5b3UgdG8KK3JldHVybiBkZWZlcnJlZHMgZnJvbSBw
eXRlc3Qtc3R5bGUgdGVzdHMsIGFsbG93aW5nIHRoZSB1c2Ugb2YKKzpyZWY6YGZpeHR1cmVzYCBh
bmQgb3RoZXIgZmVhdHVyZXMuCisKK2hvdyBkb2VzIHB5dGVzdCB3b3JrIHdpdGggRGphbmdvPwor
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworCitJbiAyMDEy
LCBzb21lIHdvcmsgaXMgZ29pbmcgaW50byB0aGUgYHB5dGVzdC1kamFuZ28gcGx1Z2luIDxodHRw
Oi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWRqYW5nbz5gXy4gIEl0IHN1YnN0aXR1dGVz
IHRoZSB1c2FnZSBvZiBEamFuZ28ncworYGBtYW5hZ2UucHkgdGVzdGBgIGFuZCBhbGxvd3MgdGhl
IHVzZSBvZiBhbGwgcHl0ZXN0IGZlYXR1cmVzXyBtb3N0IG9mIHdoaWNoCithcmUgbm90IGF2YWls
YWJsZSBmcm9tIERqYW5nbyBkaXJlY3RseS4KKworLi4gX2ZlYXR1cmVzOiBmZWF0dXJlcy5odG1s
CisKKworV2hhdCdzIHRoaXMgIm1hZ2ljIiB3aXRoIHB5dGVzdD8gKGhpc3RvcmljIG5vdGVzKQor
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
KworQXJvdW5kIDIwMDcgKHZlcnNpb24gYGAwLjhgYCkgc29tZSBwZW9wbGUgdGhvdWdodCB0aGF0
IGBgcHl0ZXN0YGAKK3dhcyB1c2luZyB0b28gbXVjaCAibWFnaWMiLiAgSXQgaGFkIGJlZW4gcGFy
dCBvZiB0aGUgYHB5bGliYF8gd2hpY2gKK2NvbnRhaW5zIGEgbG90IG9mIHVucmVsYXRlZCBweXRo
b24gbGlicmFyeSBjb2RlLiAgQXJvdW5kIDIwMTAgdGhlcmUKK3dhcyBhIG1ham9yIGNsZWFudXAg
cmVmYWN0b3JpbmcsIHdoaWNoIHJlbW92ZWQgdW51c2VkIG9yIGRlcHJlY2F0ZWQgY29kZQorYW5k
IHJlc3VsdGVkIGluIHRoZSBuZXcgYGBweXRlc3RgYCBQeVBJIHBhY2thZ2Ugd2hpY2ggc3RyaWN0
bHkgY29udGFpbnMKK29ubHkgdGVzdC1yZWxhdGVkIGNvZGUuICBUaGlzIHJlbGVhc2UgYWxzbyBi
cm91Z2h0IGEgY29tcGxldGUgcGx1Z2luaWZpY2F0aW9uCitzdWNoIHRoYXQgdGhlIGNvcmUgaXMg
YXJvdW5kIDMwMCBsaW5lcyBvZiBjb2RlIGFuZCBldmVyeXRoaW5nIGVsc2UgaXMKK2ltcGxlbWVu
dGVkIGluIHBsdWdpbnMuICBUaHVzIGBgcHl0ZXN0YGAgdG9kYXkgaXMgYSBzbWFsbCwgdW5pdmVy
c2FsbHkgcnVubmFibGUKK2FuZCBjdXN0b21pemFibGUgdGVzdGluZyBmcmFtZXdvcmsgZm9yIFB5
dGhvbi4gICBOb3RlLCBob3dldmVyLCB0aGF0CitgYHB5dGVzdGBgIHVzZXMgbWV0YXByb2dyYW1t
aW5nIHRlY2huaXF1ZXMgYW5kIHJlYWRpbmcgaXRzIHNvdXJjZSBpcwordGh1cyBsaWtlbHkgbm90
IHNvbWV0aGluZyBmb3IgUHl0aG9uIGJlZ2lubmVycy4KKworQSBzZWNvbmQgIm1hZ2ljIiBpc3N1
ZSB3YXMgdGhlIGFzc2VydCBzdGF0ZW1lbnQgZGVidWdnaW5nIGZlYXR1cmUuCitOb3dhZGF5cywg
YGBweXRlc3RgYCBleHBsaWNpdGx5IHJld3JpdGVzIGFzc2VydCBzdGF0ZW1lbnRzIGluIHRlc3Qg
bW9kdWxlcworaW4gb3JkZXIgdG8gcHJvdmlkZSBtb3JlIHVzZWZ1bCA6cmVmOmBhc3NlcnQgZmVl
ZGJhY2sgPGFzc2VydGZlZWRiYWNrPmAuCitUaGlzIGNvbXBsZXRlbHkgYXZvaWRzIHByZXZpb3Vz
IGlzc3VlcyBvZiBjb25mdXNpbmcgYXNzZXJ0aW9uLXJlcG9ydGluZy4KK0l0IGFsc28gbWVhbnMs
IHRoYXQgeW91IGNhbiB1c2UgUHl0aG9uJ3MgYGAtT2BgIG9wdGltaXphdGlvbiB3aXRob3V0IGxv
c2luZworYXNzZXJ0aW9ucyBpbiB0ZXN0IG1vZHVsZXMuCisKK1lvdSBjYW4gYWxzbyB0dXJuIG9m
ZiBhbGwgYXNzZXJ0aW9uIGludGVyYWN0aW9uIHVzaW5nIHRoZQorYGAtLWFzc2VydD1wbGFpbmBg
IG9wdGlvbi4KKworLi4gX2BweSBuYW1lc3BhY2VzYDogaW5kZXguaHRtbAorLi4gX2BweS9fX2lu
aXRfXy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3NyYy90cnVuay9w
eS9fX2luaXRfXy5weQorCisKK1doeSBjYW4gSSB1c2UgYm90aCBgYHB5dGVzdGBgIGFuZCBgYHB5
LnRlc3RgYCBjb21tYW5kcz8KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKKworcHl0ZXN0IHVzZWQgdG8gYmUgcGFydCBvZiB0aGUgcHkgcGFj
a2FnZSwgd2hpY2ggcHJvdmlkZWQgc2V2ZXJhbCBkZXZlbG9wZXIKK3V0aWxpdGllcywgYWxsIHN0
YXJ0aW5nIHdpdGggYGBweS48VEFCPmBgLCB0aHVzIHByb3ZpZGluZyBuaWNlIFRBQi1jb21wbGV0
aW9uLgorSWYgeW91IGluc3RhbGwgYGBwaXAgaW5zdGFsbCBweWNtZGBgIHlvdSBnZXQgdGhlc2Ug
dG9vbHMgZnJvbSBhIHNlcGFyYXRlCitwYWNrYWdlLiBPbmNlIGBgcHl0ZXN0YGAgYmVjYW1lIGEg
c2VwYXJhdGUgcGFja2FnZSwgdGhlIGBgcHkudGVzdGBgIG5hbWUgd2FzCityZXRhaW5lZCBkdWUg
dG8gYXZvaWQgYSBuYW1pbmcgY29uZmxpY3Qgd2l0aCBhbm90aGVyIHRvb2wuIFRoaXMgY29uZmxp
Y3Qgd2FzCitldmVudHVhbGx5IHJlc29sdmVkLCBhbmQgdGhlIGBgcHl0ZXN0YGAgY29tbWFuZCB3
YXMgdGhlcmVmb3JlIGludHJvZHVjZWQuIEluCitmdXR1cmUgdmVyc2lvbnMgb2YgcHl0ZXN0LCB3
ZSBtYXkgZGVwcmVjYXRlIGFuZCBsYXRlciByZW1vdmUgdGhlIGBgcHkudGVzdGBgCitjb21tYW5k
IHRvIGF2b2lkIHBlcnBldHVhdGluZyB0aGUgY29uZnVzaW9uLgorCitweXRlc3QgZml4dHVyZXMs
IHBhcmFtZXRyaXplZCB0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBfZnVuY2FyZ3M6IGZ1bmNhcmdzLmh0bWwKKworSXMg
dXNpbmcgcHl0ZXN0IGZpeHR1cmVzIHZlcnN1cyB4VW5pdCBzZXR1cCBhIHN0eWxlIHF1ZXN0aW9u
PworKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKworCitGb3Igc2ltcGxlIGFwcGxpY2F0aW9ucyBhbmQgZm9yIHBlb3BsZSBl
eHBlcmllbmNlZCB3aXRoIG5vc2VfIG9yCit1bml0dGVzdC1zdHlsZSB0ZXN0IHNldHVwIHVzaW5n
IGB4VW5pdCBzdHlsZSBzZXR1cGBfIHByb2JhYmx5CitmZWVscyBuYXR1cmFsLiAgRm9yIGxhcmdl
ciB0ZXN0IHN1aXRlcywgcGFyYW1ldHJpemVkIHRlc3RpbmcKK29yIHNldHVwIG9mIGNvbXBsZXgg
dGVzdCByZXNvdXJjZXMgdXNpbmcgZml4dHVyZXNfIG1heSBmZWVsIG1vcmUgbmF0dXJhbC4KK01v
cmVvdmVyLCBmaXh0dXJlcyBhcmUgaWRlYWwgZm9yIHdyaXRpbmcgYWR2YW5jZWQgdGVzdCBzdXBw
b3J0Citjb2RlIChsaWtlIGUuZy4gdGhlIG1vbmtleXBhdGNoXywgdGhlIHRtcGRpcl8gb3IgY2Fw
dHVyZV8gZml4dHVyZXMpCitiZWNhdXNlIHRoZSBzdXBwb3J0IGNvZGUgY2FuIHJlZ2lzdGVyIHNl
dHVwL3RlYXJkb3duIGZ1bmN0aW9ucworaW4gYSBtYW5hZ2VkIGNsYXNzL21vZHVsZS9mdW5jdGlv
biBzY29wZS4KKworLi4gX21vbmtleXBhdGNoOiBtb25rZXlwYXRjaC5odG1sCisuLiBfdG1wZGly
OiB0bXBkaXIuaHRtbAorLi4gX2NhcHR1cmU6IGNhcHR1cmUuaHRtbAorLi4gX2ZpeHR1cmVzOiBm
aXh0dXJlLmh0bWwKKworLi4gX2B3aHkgcHl0ZXN0X3B5ZnVuY2FyZ19fIG1ldGhvZHM/YDoKKwor
Li4gX2BDb252ZW50aW9uIG92ZXIgQ29uZmlndXJhdGlvbmA6IGh0dHA6Ly9lbi53aWtpcGVkaWEu
b3JnL3dpa2kvQ29udmVudGlvbl9vdmVyX0NvbmZpZ3VyYXRpb24KKworQ2FuIEkgeWllbGQgbXVs
dGlwbGUgdmFsdWVzIGZyb20gYSBmaXh0dXJlIGZ1bmN0aW9uPworKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworVGhlcmUgYXJl
IHR3byBjb25jZXB0dWFsIHJlYXNvbnMgd2h5IHlpZWxkaW5nIGZyb20gYSBmYWN0b3J5IGZ1bmN0
aW9uCitpcyBub3QgcG9zc2libGU6CisKKyogSWYgbXVsdGlwbGUgZmFjdG9yaWVzIHlpZWxkZWQg
dmFsdWVzIHRoZXJlIHdvdWxkCisgIGJlIG5vIG5hdHVyYWwgcGxhY2UgdG8gZGV0ZXJtaW5lIHRo
ZSBjb21iaW5hdGlvbgorICBwb2xpY3kgLSBpbiByZWFsLXdvcmxkIGV4YW1wbGVzIHNvbWUgY29t
YmluYXRpb25zCisgIG9mdGVuIHNob3VsZCBub3QgcnVuLgorCisqIENhbGxpbmcgZmFjdG9yaWVz
IGZvciBvYnRhaW5pbmcgdGVzdCBmdW5jdGlvbiBhcmd1bWVudHMKKyAgaXMgcGFydCBvZiBzZXR0
aW5nIHVwIGFuZCBydW5uaW5nIGEgdGVzdC4gIEF0IHRoYXQKKyAgcG9pbnQgaXQgaXMgbm90IHBv
c3NpYmxlIHRvIGFkZCBuZXcgdGVzdCBjYWxscyB0bworICB0aGUgdGVzdCBjb2xsZWN0aW9uIGFu
eW1vcmUuCisKK0hvd2V2ZXIsIHdpdGggcHl0ZXN0LTIuMyB5b3UgY2FuIHVzZSB0aGUgOnJlZjpg
QHB5dGVzdC5maXh0dXJlYCBkZWNvcmF0b3IKK2FuZCBzcGVjaWZ5IGBgcGFyYW1zYGAgc28gdGhh
dCBhbGwgdGVzdHMgZGVwZW5kaW5nIG9uIHRoZSBmYWN0b3J5LWNyZWF0ZWQKK3Jlc291cmNlIHdp
bGwgcnVuIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMuCisKK1lvdSBj
YW4gYWxzbyB1c2UgdGhlIGBgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzYGAgaG9vayB0bworaW1wbGVt
ZW50IHRoZSBgcGFyYW1ldHJpemF0aW9uIHNjaGVtZSBvZiB5b3VyIGNob2ljZWBfLiBTZWUgYWxz
bworOnJlZjpgcGFyYW1leGFtcGxlc2AgZm9yIG1vcmUgZXhhbXBsZXMuCisKKy4uIF9gcGFyYW1l
dHJpemF0aW9uIHNjaGVtZSBvZiB5b3VyIGNob2ljZWA6IGh0dHA6Ly90ZXRhbWFwLndvcmRwcmVz
cy5jb20vMjAwOS8wNS8xMy9wYXJhbWV0cml6aW5nLXB5dGhvbi10ZXN0cy1nZW5lcmFsaXplZC8K
KworcHl0ZXN0IGludGVyYWN0aW9uIHdpdGggb3RoZXIgcGFja2FnZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJc3N1ZXMgd2l0aCBweXRl
c3QsIG11bHRpcHJvY2VzcyBhbmQgc2V0dXB0b29scz8KKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworCitPbiBXaW5kb3dzIHRoZSBtdWx0
aXByb2Nlc3MgcGFja2FnZSB3aWxsIGluc3RhbnRpYXRlIHN1YiBwcm9jZXNzZXMKK2J5IHBpY2ts
aW5nIGFuZCB0aHVzIGltcGxpY2l0bHkgcmUtaW1wb3J0IGEgbG90IG9mIGxvY2FsIG1vZHVsZXMu
CitVbmZvcnR1bmF0ZWx5LCBzZXR1cHRvb2xzLTAuNi4xMSBkb2VzIG5vdCBgYGlmIF9fbmFtZV9f
PT0nX19tYWluX18nYGAKK3Byb3RlY3QgaXRzIGdlbmVyYXRlZCBjb21tYW5kIGxpbmUgc2NyaXB0
LiAgVGhpcyBsZWFkcyB0byBpbmZpbml0ZQorcmVjdXJzaW9uIHdoZW4gcnVubmluZyBhIHRlc3Qg
dGhhdCBpbnN0YW50aWF0ZXMgUHJvY2Vzc2VzLgorCitBcyBvZiBtaWQtMjAxMywgdGhlcmUgc2hv
dWxkbid0IGJlIGEgcHJvYmxlbSBhbnltb3JlIHdoZW4geW91Cit1c2UgdGhlIHN0YW5kYXJkIHNl
dHVwdG9vbHMgKG5vdGUgdGhhdCBkaXN0cmlidXRlIGhhcyBiZWVuIG1lcmdlZAorYmFjayBpbnRv
IHNldHVwdG9vbHMgd2hpY2ggaXMgbm93IHNoaXBwZWQgZGlyZWN0bHkgd2l0aCB2aXJ0dWFsZW52
KS4KKworLi4gaW5jbHVkZTo6IGxpbmtzLmluYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ZpeHR1cmUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZpeHR1cmUucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxYTk0MWRkZjY1NmYyYjk2OTBmMzM4Nzk4OTFhYjQ1OWJlMmNlZDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZml4dHVyZS5yc3QKQEAgLTAsMCArMSwxMDg4IEBA
CisuLiBfZml4dHVyZToKKy4uIF9maXh0dXJlczoKKy4uIF9gZml4dHVyZSBmdW5jdGlvbnNgOgor
CitweXRlc3QgZml4dHVyZXM6IGV4cGxpY2l0LCBtb2R1bGFyLCBzY2FsYWJsZQorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY3Vy
cmVudG1vZHVsZTo6IF9weXRlc3QucHl0aG9uCisKKy4uIHZlcnNpb25hZGRlZDo6IDIuMC8yLjMv
Mi40CisKKy4uIF9geFVuaXRgOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1hVbml0Cisu
LiBfYHB1cnBvc2Ugb2YgdGVzdCBmaXh0dXJlc2A6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvVGVzdF9maXh0dXJlI1NvZnR3YXJlCisuLiBfYERlcGVuZGVuY3kgaW5qZWN0aW9uYDogaHR0
cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EZXBlbmRlbmN5X2luamVjdGlvbgorCitUaGUgYHB1
cnBvc2Ugb2YgdGVzdCBmaXh0dXJlc2BfIGlzIHRvIHByb3ZpZGUgYSBmaXhlZCBiYXNlbGluZQor
dXBvbiB3aGljaCB0ZXN0cyBjYW4gcmVsaWFibHkgYW5kIHJlcGVhdGVkbHkgZXhlY3V0ZS4gICBw
eXRlc3QgZml4dHVyZXMKK29mZmVyIGRyYW1hdGljIGltcHJvdmVtZW50cyBvdmVyIHRoZSBjbGFz
c2ljIHhVbml0IHN0eWxlIG9mIHNldHVwL3RlYXJkb3duCitmdW5jdGlvbnM6CisKKyogZml4dHVy
ZXMgaGF2ZSBleHBsaWNpdCBuYW1lcyBhbmQgYXJlIGFjdGl2YXRlZCBieSBkZWNsYXJpbmcgdGhl
aXIgdXNlCisgIGZyb20gdGVzdCBmdW5jdGlvbnMsIG1vZHVsZXMsIGNsYXNzZXMgb3Igd2hvbGUg
cHJvamVjdHMuCisKKyogZml4dHVyZXMgYXJlIGltcGxlbWVudGVkIGluIGEgbW9kdWxhciBtYW5u
ZXIsIGFzIGVhY2ggZml4dHVyZSBuYW1lCisgIHRyaWdnZXJzIGEgKmZpeHR1cmUgZnVuY3Rpb24q
IHdoaWNoIGNhbiBpdHNlbGYgdXNlIG90aGVyIGZpeHR1cmVzLgorCisqIGZpeHR1cmUgbWFuYWdl
bWVudCBzY2FsZXMgZnJvbSBzaW1wbGUgdW5pdCB0byBjb21wbGV4CisgIGZ1bmN0aW9uYWwgdGVz
dGluZywgYWxsb3dpbmcgdG8gcGFyYW1ldHJpemUgZml4dHVyZXMgYW5kIHRlc3RzIGFjY29yZGlu
ZworICB0byBjb25maWd1cmF0aW9uIGFuZCBjb21wb25lbnQgb3B0aW9ucywgb3IgdG8gcmUtdXNl
IGZpeHR1cmVzCisgIGFjcm9zcyBmdW5jdGlvbiwgY2xhc3MsIG1vZHVsZSBvciB3aG9sZSB0ZXN0
IHNlc3Npb24gc2NvcGVzLgorCitJbiBhZGRpdGlvbiwgcHl0ZXN0IGNvbnRpbnVlcyB0byBzdXBw
b3J0IDpyZWY6YHh1bml0c2V0dXBgLiAgWW91IGNhbiBtaXgKK2JvdGggc3R5bGVzLCBtb3Zpbmcg
aW5jcmVtZW50YWxseSBmcm9tIGNsYXNzaWMgdG8gbmV3IHN0eWxlLCBhcyB5b3UKK3ByZWZlci4g
IFlvdSBjYW4gYWxzbyBzdGFydCBvdXQgZnJvbSBleGlzdGluZyA6cmVmOmB1bml0dGVzdC5UZXN0
Q2FzZQorc3R5bGUgPHVuaXR0ZXN0LlRlc3RDYXNlPmAgb3IgOnJlZjpgbm9zZSBiYXNlZCA8bm9z
ZXN0eWxlPmAgcHJvamVjdHMuCisKKworLi4gX2BmdW5jYXJnc2A6CisuLiBfYGZ1bmNhcmcgbWVj
aGFuaXNtYDoKKy4uIF9gZml4dHVyZSBmdW5jdGlvbmA6CisuLiBfYEBweXRlc3QuZml4dHVyZWA6
CisuLiBfYHB5dGVzdC5maXh0dXJlYDoKKworRml4dHVyZXMgYXMgRnVuY3Rpb24gYXJndW1lbnRz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUZXN0IGZ1bmN0
aW9ucyBjYW4gcmVjZWl2ZSBmaXh0dXJlIG9iamVjdHMgYnkgbmFtaW5nIHRoZW0gYXMgYW4gaW5w
dXQKK2FyZ3VtZW50LiBGb3IgZWFjaCBhcmd1bWVudCBuYW1lLCBhIGZpeHR1cmUgZnVuY3Rpb24g
d2l0aCB0aGF0IG5hbWUgcHJvdmlkZXMKK3RoZSBmaXh0dXJlIG9iamVjdC4gIEZpeHR1cmUgZnVu
Y3Rpb25zIGFyZSByZWdpc3RlcmVkIGJ5IG1hcmtpbmcgdGhlbSB3aXRoCis6cHk6ZnVuYzpgQHB5
dGVzdC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0dXJlPmAuICBMZXQncyBsb29rIGF0IGEg
c2ltcGxlCitzZWxmLWNvbnRhaW5lZCB0ZXN0IG1vZHVsZSBjb250YWluaW5nIGEgZml4dHVyZSBh
bmQgYSB0ZXN0IGZ1bmN0aW9uCit1c2luZyBpdDo6CisKKyAgICAjIGNvbnRlbnQgb2YgLi90ZXN0
X3NtdHBzaW1wbGUucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICBkZWYgc210cCgpOgorICAgICAgICBpbXBvcnQgc210cGxpYgorICAgICAgICByZXR1cm4g
c210cGxpYi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KQorCisgICAgZGVm
IHRlc3RfZWhsbyhzbXRwKToKKyAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAuZWhsbygpCisg
ICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKKyAgICAgICAgYXNzZXJ0IDAgIyBmb3IgZGVt
byBwdXJwb3NlcworCitIZXJlLCB0aGUgYGB0ZXN0X2VobG9gYCBuZWVkcyB0aGUgYGBzbXRwYGAg
Zml4dHVyZSB2YWx1ZS4gIHB5dGVzdAord2lsbCBkaXNjb3ZlciBhbmQgY2FsbCB0aGUgOnB5OmZ1
bmM6YEBweXRlc3QuZml4dHVyZSA8X3B5dGVzdC5weXRob24uZml4dHVyZT5gCittYXJrZWQgYGBz
bXRwYGAgZml4dHVyZSBmdW5jdGlvbi4gIFJ1bm5pbmcgdGhlIHRlc3QgbG9va3MgbGlrZSB0aGlz
OjoKKworICAgICQgcHl0ZXN0IHRlc3Rfc210cHNpbXBsZS5weQorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRlbQorICAgIAorICAgIHRlc3Rfc210cHNpbXBsZS5w
eSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAl
XQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXyB0ZXN0X2VobG8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CisgICAgCisgICAgc210cCA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+Cisg
ICAgCisgICAgICAgIGRlZiB0ZXN0X2VobG8oc210cCk6CisgICAgICAgICAgICByZXNwb25zZSwg
bXNnID0gc210cC5laGxvKCkKKyAgICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKKyAg
ICA+ICAgICAgIGFzc2VydCAwICMgZm9yIGRlbW8gcHVycG9zZXMKKyAgICBFICAgICAgIGFzc2Vy
dCAwCisgICAgCisgICAgdGVzdF9zbXRwc2ltcGxlLnB5OjExOiBBc3NlcnRpb25FcnJvcgorICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT0gMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PT09PT09PT0KKworSW4gdGhlIGZhaWx1cmUgdHJhY2ViYWNrIHdlIHNlZSB0
aGF0IHRoZSB0ZXN0IGZ1bmN0aW9uIHdhcyBjYWxsZWQgd2l0aCBhCitgYHNtdHBgYCBhcmd1bWVu
dCwgdGhlIGBgc210cGxpYi5TTVRQKClgYCBpbnN0YW5jZSBjcmVhdGVkIGJ5IHRoZSBmaXh0dXJl
CitmdW5jdGlvbi4gIFRoZSB0ZXN0IGZ1bmN0aW9uIGZhaWxzIG9uIG91ciBkZWxpYmVyYXRlIGBg
YXNzZXJ0IDBgYC4gIEhlcmUgaXMKK3RoZSBleGFjdCBwcm90b2NvbCB1c2VkIGJ5IGBgcHl0ZXN0
YGAgdG8gY2FsbCB0aGUgdGVzdCBmdW5jdGlvbiB0aGlzIHdheToKKworMS4gcHl0ZXN0IDpyZWY6
YGZpbmRzIDx0ZXN0IGRpc2NvdmVyeT5gIHRoZSBgYHRlc3RfZWhsb2BgIGJlY2F1c2UKKyAgIG9m
IHRoZSBgYHRlc3RfYGAgcHJlZml4LiAgVGhlIHRlc3QgZnVuY3Rpb24gbmVlZHMgYSBmdW5jdGlv
biBhcmd1bWVudAorICAgbmFtZWQgYGBzbXRwYGAuICBBIG1hdGNoaW5nIGZpeHR1cmUgZnVuY3Rp
b24gaXMgZGlzY292ZXJlZCBieQorICAgbG9va2luZyBmb3IgYSBmaXh0dXJlLW1hcmtlZCBmdW5j
dGlvbiBuYW1lZCBgYHNtdHBgYC4KKworMi4gYGBzbXRwKClgYCBpcyBjYWxsZWQgdG8gY3JlYXRl
IGFuIGluc3RhbmNlLgorCiszLiBgYHRlc3RfZWhsbyg8U01UUCBpbnN0YW5jZT4pYGAgaXMgY2Fs
bGVkIGFuZCBmYWlscyBpbiB0aGUgbGFzdAorICAgbGluZSBvZiB0aGUgdGVzdCBmdW5jdGlvbi4K
KworTm90ZSB0aGF0IGlmIHlvdSBtaXNzcGVsbCBhIGZ1bmN0aW9uIGFyZ3VtZW50IG9yIHdhbnQK
K3RvIHVzZSBvbmUgdGhhdCBpc24ndCBhdmFpbGFibGUsIHlvdSdsbCBzZWUgYW4gZXJyb3IKK3dp
dGggYSBsaXN0IG9mIGF2YWlsYWJsZSBmdW5jdGlvbiBhcmd1bWVudHMuCisKKy4uIG5vdGU6Ogor
CisgICAgWW91IGNhbiBhbHdheXMgaXNzdWU6OgorCisgICAgICAgIHB5dGVzdCAtLWZpeHR1cmVz
IHRlc3Rfc2ltcGxlZmFjdG9yeS5weQorCisgICAgdG8gc2VlIGF2YWlsYWJsZSBmaXh0dXJlcy4K
KworRml4dHVyZXM6IGEgcHJpbWUgZXhhbXBsZSBvZiBkZXBlbmRlbmN5IGluamVjdGlvbgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZpeHR1
cmVzIGFsbG93IHRlc3QgZnVuY3Rpb25zIHRvIGVhc2lseSByZWNlaXZlIGFuZCB3b3JrCithZ2Fp
bnN0IHNwZWNpZmljIHByZS1pbml0aWFsaXplZCBhcHBsaWNhdGlvbiBvYmplY3RzIHdpdGhvdXQg
aGF2aW5nCit0byBjYXJlIGFib3V0IGltcG9ydC9zZXR1cC9jbGVhbnVwIGRldGFpbHMuCitJdCdz
IGEgcHJpbWUgZXhhbXBsZSBvZiBgZGVwZW5kZW5jeSBpbmplY3Rpb25gXyB3aGVyZSBmaXh0dXJl
CitmdW5jdGlvbnMgdGFrZSB0aGUgcm9sZSBvZiB0aGUgKmluamVjdG9yKiBhbmQgdGVzdCBmdW5j
dGlvbnMgYXJlIHRoZQorKmNvbnN1bWVycyogb2YgZml4dHVyZSBvYmplY3RzLgorCisuLiBfYGNv
bmZ0ZXN0LnB5YDoKKy4uIF9gY29uZnRlc3RgOgorCitgYGNvbmZ0ZXN0LnB5YGA6IHNoYXJpbmcg
Zml4dHVyZSBmdW5jdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitJZiBkdXJpbmcgaW1wbGVtZW50aW5nIHlvdXIgdGVzdHMgeW91IHJlYWxpemUgdGhh
dCB5b3UKK3dhbnQgdG8gdXNlIGEgZml4dHVyZSBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIHRlc3Qg
ZmlsZXMgeW91IGNhbiBtb3ZlIGl0Cit0byBhIGBgY29uZnRlc3QucHlgYCBmaWxlLgorWW91IGRv
bid0IG5lZWQgdG8gaW1wb3J0IHRoZSBmaXh0dXJlIHlvdSB3YW50IHRvIHVzZSBpbiBhIHRlc3Qs
IGl0CithdXRvbWF0aWNhbGx5IGdldHMgZGlzY292ZXJlZCBieSBweXRlc3QuIFRoZSBkaXNjb3Zl
cnkgb2YKK2ZpeHR1cmUgZnVuY3Rpb25zIHN0YXJ0cyBhdCB0ZXN0IGNsYXNzZXMsIHRoZW4gdGVz
dCBtb2R1bGVzLCB0aGVuCitgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgYW5kIGZpbmFsbHkgYnVpbHRp
biBhbmQgdGhpcmQgcGFydHkgcGx1Z2lucy4KKworWW91IGNhbiBhbHNvIHVzZSB0aGUgYGBjb25m
dGVzdC5weWBgIGZpbGUgdG8gaW1wbGVtZW50IAorOnJlZjpgbG9jYWwgcGVyLWRpcmVjdG9yeSBw
bHVnaW5zIDxjb25mdGVzdC5weSBwbHVnaW5zPmAuCisKK1NoYXJpbmcgdGVzdCBkYXRhCistLS0t
LS0tLS0tLS0tLS0tLQorCitJZiB5b3Ugd2FudCB0byBtYWtlIHRlc3QgZGF0YSBmcm9tIGZpbGVz
IGF2YWlsYWJsZSB0byB5b3VyIHRlc3RzLCBhIGdvb2Qgd2F5Cit0byBkbyB0aGlzIGlzIGJ5IGxv
YWRpbmcgdGhlc2UgZGF0YSBpbiBhIGZpeHR1cmUgZm9yIHVzZSBieSB5b3VyIHRlc3RzLgorVGhp
cyBtYWtlcyB1c2Ugb2YgdGhlIGF1dG9tYXRpYyBjYWNoaW5nIG1lY2hhbmlzbXMgb2YgcHl0ZXN0
LgorCitBbm90aGVyIGdvb2QgYXBwcm9hY2ggaXMgYnkgYWRkaW5nIHRoZSBkYXRhIGZpbGVzIGlu
IHRoZSBgYHRlc3RzYGAgZm9sZGVyLgorVGhlcmUgYXJlIGFsc28gY29tbXVuaXR5IHBsdWdpbnMg
YXZhaWxhYmxlIHRvIGhlbHAgbWFuYWdpbmcgdGhpcyBhc3BlY3Qgb2YgCit0ZXN0aW5nLCBlLmcu
IGBweXRlc3QtZGF0YWRpciA8aHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWxjbnIvcHl0ZXN0LWRh
dGFkaXI+YF9fIAorYW5kIGBweXRlc3QtZGF0YWZpbGVzIDxodHRwczovL3B5cGkucHl0aG9uLm9y
Zy9weXBpL3B5dGVzdC1kYXRhZmlsZXM+YF9fLiAKKworLi4gX3NtdHBzaGFyZWQ6CisKK1Njb3Bl
OiBzaGFyaW5nIGEgZml4dHVyZSBpbnN0YW5jZSBhY3Jvc3MgdGVzdHMgaW4gYSBjbGFzcywgbW9k
dWxlIG9yIHNlc3Npb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQor
CitGaXh0dXJlcyByZXF1aXJpbmcgbmV0d29yayBhY2Nlc3MgZGVwZW5kIG9uIGNvbm5lY3Rpdml0
eSBhbmQgYXJlCit1c3VhbGx5IHRpbWUtZXhwZW5zaXZlIHRvIGNyZWF0ZS4gIEV4dGVuZGluZyB0
aGUgcHJldmlvdXMgZXhhbXBsZSwgd2UKK2NhbiBhZGQgYSBgYHNjb3BlPSdtb2R1bGUnYGAgcGFy
YW1ldGVyIHRvIHRoZQorOnB5OmZ1bmM6YEBweXRlc3QuZml4dHVyZSA8X3B5dGVzdC5weXRob24u
Zml4dHVyZT5gIGludm9jYXRpb24KK3RvIGNhdXNlIHRoZSBkZWNvcmF0ZWQgYGBzbXRwYGAgZml4
dHVyZSBmdW5jdGlvbiB0byBvbmx5IGJlIGludm9rZWQgb25jZQorcGVyIHRlc3QgKm1vZHVsZSog
KHRoZSBkZWZhdWx0IGlzIHRvIGludm9rZSBvbmNlIHBlciB0ZXN0ICpmdW5jdGlvbiopLgorTXVs
dGlwbGUgdGVzdCBmdW5jdGlvbnMgaW4gYSB0ZXN0IG1vZHVsZSB3aWxsIHRodXMKK2VhY2ggcmVj
ZWl2ZSB0aGUgc2FtZSBgYHNtdHBgYCBmaXh0dXJlIGluc3RhbmNlLCB0aHVzIHNhdmluZyB0aW1l
LgorCitUaGUgbmV4dCBleGFtcGxlIHB1dHMgdGhlIGZpeHR1cmUgZnVuY3Rpb24gaW50byBhIHNl
cGFyYXRlIGBgY29uZnRlc3QucHlgYCBmaWxlIAorc28gdGhhdCB0ZXN0cyBmcm9tIG11bHRpcGxl
IHRlc3QgbW9kdWxlcyBpbiB0aGUgZGlyZWN0b3J5IGNhbgorYWNjZXNzIHRoZSBmaXh0dXJlIGZ1
bmN0aW9uOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBweXRl
c3QKKyAgICBpbXBvcnQgc210cGxpYgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1
bGUiKQorICAgIGRlZiBzbXRwKCk6CisgICAgICAgIHJldHVybiBzbXRwbGliLlNNVFAoInNtdHAu
Z21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpCisKK1RoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGFn
YWluIGlzIGBgc210cGBgIGFuZCB5b3UgY2FuIGFjY2VzcyBpdHMgcmVzdWx0IGJ5CitsaXN0aW5n
IHRoZSBuYW1lIGBgc210cGBgIGFzIGFuIGlucHV0IHBhcmFtZXRlciBpbiBhbnkgdGVzdCBvciBm
aXh0dXJlCitmdW5jdGlvbiAoaW4gb3IgYmVsb3cgdGhlIGRpcmVjdG9yeSB3aGVyZSBgYGNvbmZ0
ZXN0LnB5YGAgaXMgbG9jYXRlZCk6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5
CisKKyAgICBkZWYgdGVzdF9laGxvKHNtdHApOgorICAgICAgICByZXNwb25zZSwgbXNnID0gc210
cC5laGxvKCkKKyAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAorICAgICAgICBhc3NlcnQg
YiJzbXRwLmdtYWlsLmNvbSIgaW4gbXNnCisgICAgICAgIGFzc2VydCAwICAjIGZvciBkZW1vIHB1
cnBvc2VzCisKKyAgICBkZWYgdGVzdF9ub29wKHNtdHApOgorICAgICAgICByZXNwb25zZSwgbXNn
ID0gc210cC5ub29wKCkKKyAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAorICAgICAgICBh
c3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJwb3NlcworCitXZSBkZWxpYmVyYXRlbHkgaW5zZXJ0IGZh
aWxpbmcgYGBhc3NlcnQgMGBgIHN0YXRlbWVudHMgaW4gb3JkZXIgdG8KK2luc3BlY3Qgd2hhdCBp
cyBnb2luZyBvbiBhbmQgY2FuIG5vdyBydW4gdGhlIHRlc3RzOjoKKworICAgICQgcHl0ZXN0IHRl
c3RfbW9kdWxlLnB5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Cisg
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMiBp
dGVtcworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5IEZGICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2VobG8g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc210cCA9IDxzbXRw
bGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2Vo
bG8oc210cCk6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5laGxvKCkKKyAgICAg
ICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKKyAgICAgICAgICAgIGFzc2VydCBiInNtdHAu
Z21haWwuY29tIiBpbiBtc2cKKyAgICA+ICAgICAgIGFzc2VydCAwICAjIGZvciBkZW1vIHB1cnBv
c2VzCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5OjY6IEFz
c2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9u
b29wIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNtdHAgPSA8
c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVz
dF9ub29wKHNtdHApOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAubm9vcCgpCisg
ICAgICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCisgICAgPiAgICAgICBhc3NlcnQgMCAg
IyBmb3IgZGVtbyBwdXJwb3NlcworICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAgICB0ZXN0
X21vZHVsZS5weToxMTogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09IDIgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisK
K1lvdSBzZWUgdGhlIHR3byBgYGFzc2VydCAwYGAgZmFpbGluZyBhbmQgbW9yZSBpbXBvcnRhbnRs
eSB5b3UgY2FuIGFsc28gc2VlCit0aGF0IHRoZSBzYW1lIChtb2R1bGUtc2NvcGVkKSBgYHNtdHBg
YCBvYmplY3Qgd2FzIHBhc3NlZCBpbnRvIHRoZSB0d28KK3Rlc3QgZnVuY3Rpb25zIGJlY2F1c2Ug
cHl0ZXN0IHNob3dzIHRoZSBpbmNvbWluZyBhcmd1bWVudCB2YWx1ZXMgaW4gdGhlCit0cmFjZWJh
Y2suICBBcyBhIHJlc3VsdCwgdGhlIHR3byB0ZXN0IGZ1bmN0aW9ucyB1c2luZyBgYHNtdHBgYCBy
dW4gYXMKK3F1aWNrIGFzIGEgc2luZ2xlIG9uZSBiZWNhdXNlIHRoZXkgcmV1c2UgdGhlIHNhbWUg
aW5zdGFuY2UuCisKK0lmIHlvdSBkZWNpZGUgdGhhdCB5b3UgcmF0aGVyIHdhbnQgdG8gaGF2ZSBh
IHNlc3Npb24tc2NvcGVkIGBgc210cGBgCitpbnN0YW5jZSwgeW91IGNhbiBzaW1wbHkgZGVjbGFy
ZSBpdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJzZXNzaW9uIikKKyAgICBkZWYgc210cCguLi4pOgorICAgICAgICAjIHRoZSByZXR1cm5l
ZCBmaXh0dXJlIHZhbHVlIHdpbGwgYmUgc2hhcmVkIGZvcgorICAgICAgICAjIGFsbCB0ZXN0cyBu
ZWVkaW5nIGl0CisKK0ZpbmFsbHksIHRoZSBgYGNsYXNzYGAgc2NvcGUgd2lsbCBpbnZva2UgdGhl
IGZpeHR1cmUgb25jZSBwZXIgdGVzdCAqY2xhc3MqLgorCisuLiBfYGZpbmFsaXphdGlvbmA6CisK
K0ZpeHR1cmUgZmluYWxpemF0aW9uIC8gZXhlY3V0aW5nIHRlYXJkb3duIGNvZGUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
cHl0ZXN0IHN1cHBvcnRzIGV4ZWN1dGlvbiBvZiBmaXh0dXJlIHNwZWNpZmljIGZpbmFsaXphdGlv
biBjb2RlCit3aGVuIHRoZSBmaXh0dXJlIGdvZXMgb3V0IG9mIHNjb3BlLiAgQnkgdXNpbmcgYSBg
YHlpZWxkYGAgc3RhdGVtZW50IGluc3RlYWQgb2YgYGByZXR1cm5gYCwgYWxsCit0aGUgY29kZSBh
ZnRlciB0aGUgKnlpZWxkKiBzdGF0ZW1lbnQgc2VydmVzIGFzIHRoZSB0ZWFyZG93biBjb2RlOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkK
KworICAgIGltcG9ydCBzbXRwbGliCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgIGRlZiBzbXRwKCk6CisgICAgICAgIHNtdHAgPSBz
bXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpCisgICAgICAgIHlp
ZWxkIHNtdHAgICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQorICAgICAgICBwcmludCgidGVh
cmRvd24gc210cCIpCisgICAgICAgIHNtdHAuY2xvc2UoKQorCitUaGUgYGBwcmludGBgIGFuZCBg
YHNtdHAuY2xvc2UoKWBgIHN0YXRlbWVudHMgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGxhc3QgdGVz
dCBpbgordGhlIG1vZHVsZSBoYXMgZmluaXNoZWQgZXhlY3V0aW9uLCByZWdhcmRsZXNzIG9mIHRo
ZSBleGNlcHRpb24gc3RhdHVzIG9mIHRoZQordGVzdHMuCisKK0xldCdzIGV4ZWN1dGUgaXQ6Ogor
CisgICAgJCBweXRlc3QgLXMgLXEgLS10Yj1ubworICAgIEZGICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXXRlYXJk
b3duIHNtdHAKKyAgICAKKyAgICAyIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMKKworV2Ugc2VlIHRo
YXQgdGhlIGBgc210cGBgIGluc3RhbmNlIGlzIGZpbmFsaXplZCBhZnRlciB0aGUgdHdvCit0ZXN0
cyBmaW5pc2hlZCBleGVjdXRpb24uICBOb3RlIHRoYXQgaWYgd2UgZGVjb3JhdGVkIG91ciBmaXh0
dXJlCitmdW5jdGlvbiB3aXRoIGBgc2NvcGU9J2Z1bmN0aW9uJ2BgIHRoZW4gZml4dHVyZSBzZXR1
cCBhbmQgY2xlYW51cCB3b3VsZAorb2NjdXIgYXJvdW5kIGVhY2ggc2luZ2xlIHRlc3QuICBJbiBl
aXRoZXIgY2FzZSB0aGUgdGVzdAorbW9kdWxlIGl0c2VsZiBkb2VzIG5vdCBuZWVkIHRvIGNoYW5n
ZSBvciBrbm93IGFib3V0IHRoZXNlIGRldGFpbHMKK29mIGZpeHR1cmUgc2V0dXAuCisKK05vdGUg
dGhhdCB3ZSBjYW4gYWxzbyBzZWFtbGVzc2x5IHVzZSB0aGUgYGB5aWVsZGBgIHN5bnRheCB3aXRo
IGBgd2l0aGBgIHN0YXRlbWVudHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMg
Y29udGVudCBvZiB0ZXN0X3lpZWxkMi5weQorCisgICAgaW1wb3J0IHNtdHBsaWIKKyAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgZGVm
IHNtdHAoKToKKyAgICAgICAgd2l0aCBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3
LCB0aW1lb3V0PTUpIGFzIHNtdHA6CisgICAgICAgICAgICB5aWVsZCBzbXRwICAjIHByb3ZpZGUg
dGhlIGZpeHR1cmUgdmFsdWUKKworCitUaGUgYGBzbXRwYGAgY29ubmVjdGlvbiB3aWxsIGJlIGNs
b3NlZCBhZnRlciB0aGUgdGVzdCBmaW5pc2hlZCBleGVjdXRpb24KK2JlY2F1c2UgdGhlIGBgc210
cGBgIG9iamVjdCBhdXRvbWF0aWNhbGx5IGNsb3NlcyB3aGVuCit0aGUgYGB3aXRoYGAgc3RhdGVt
ZW50IGVuZHMuCisKK05vdGUgdGhhdCBpZiBhbiBleGNlcHRpb24gaGFwcGVucyBkdXJpbmcgdGhl
ICpzZXR1cCogY29kZSAoYmVmb3JlIHRoZSBgYHlpZWxkYGAga2V5d29yZCksIHRoZQorKnRlYXJk
b3duKiBjb2RlIChhZnRlciB0aGUgYGB5aWVsZGBgKSB3aWxsIG5vdCBiZSBjYWxsZWQuCisKK0Fu
IGFsdGVybmF0aXZlIG9wdGlvbiBmb3IgZXhlY3V0aW5nICp0ZWFyZG93biogY29kZSBpcyB0bwor
bWFrZSB1c2Ugb2YgdGhlIGBgYWRkZmluYWxpemVyYGAgbWV0aG9kIG9mIHRoZSBgcmVxdWVzdC1j
b250ZXh0YF8gb2JqZWN0IHRvIHJlZ2lzdGVyCitmaW5hbGl6YXRpb24gZnVuY3Rpb25zLgorCitI
ZXJlJ3MgdGhlIGBgc210cGBgIGZpeHR1cmUgY2hhbmdlZCB0byB1c2UgYGBhZGRmaW5hbGl6ZXJg
YCBmb3IgY2xlYW51cDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50
IG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1wb3J0IHNtdHBsaWIKKyAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgZGVmIHNtdHAocmVxdWVz
dCk6CisgICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0
aW1lb3V0PTUpCisgICAgICAgIGRlZiBmaW4oKToKKyAgICAgICAgICAgIHByaW50ICgidGVhcmRv
d24gc210cCIpCisgICAgICAgICAgICBzbXRwLmNsb3NlKCkKKyAgICAgICAgcmVxdWVzdC5hZGRm
aW5hbGl6ZXIoZmluKQorICAgICAgICByZXR1cm4gc210cCAgIyBwcm92aWRlIHRoZSBmaXh0dXJl
IHZhbHVlCisKKworQm90aCBgYHlpZWxkYGAgYW5kIGBgYWRkZmluYWxpemVyYGAgbWV0aG9kcyB3
b3JrIHNpbWlsYXJseSBieSBjYWxsaW5nIHRoZWlyIGNvZGUgYWZ0ZXIgdGhlIHRlc3QKK2VuZHMs
IGJ1dCBgYGFkZGZpbmFsaXplcmBgIGhhcyB0d28ga2V5IGRpZmZlcmVuY2VzIG92ZXIgYGB5aWVs
ZGBgOgorCisxLiBJdCBpcyBwb3NzaWJsZSB0byByZWdpc3RlciBtdWx0aXBsZSBmaW5hbGl6ZXIg
ZnVuY3Rpb25zLgorCisyLiBGaW5hbGl6ZXJzIHdpbGwgYWx3YXlzIGJlIGNhbGxlZCByZWdhcmRs
ZXNzIGlmIHRoZSBmaXh0dXJlICpzZXR1cCogY29kZSByYWlzZXMgYW4gZXhjZXB0aW9uLgorICAg
VGhpcyBpcyBoYW5keSB0byBwcm9wZXJseSBjbG9zZSBhbGwgcmVzb3VyY2VzIGNyZWF0ZWQgYnkg
YSBmaXh0dXJlIGV2ZW4gaWYgb25lIG9mIHRoZW0KKyAgIGZhaWxzIHRvIGJlIGNyZWF0ZWQvYWNx
dWlyZWQ6OgorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZXF1aXBtZW50
cyhyZXF1ZXN0KToKKyAgICAgICAgICAgIHIgPSBbXQorICAgICAgICAgICAgZm9yIHBvcnQgaW4g
KCdDMScsICdDMycsICdDMjgnKToKKyAgICAgICAgICAgICAgICBlcXVpcCA9IGNvbm5lY3QocG9y
dCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihlcXVpcC5kaXNjb25uZWN0
KQorICAgICAgICAgICAgICAgIHIuYXBwZW5kKGVxdWlwKQorICAgICAgICAgICAgcmV0dXJuIHIK
KworICAgSW4gdGhlIGV4YW1wbGUgYWJvdmUsIGlmIGBgIkMyOCJgYCBmYWlscyB3aXRoIGFuIGV4
Y2VwdGlvbiwgYGAiQzEiYGAgYW5kIGBgIkMzImBgIHdpbGwgc3RpbGwKKyAgIGJlIHByb3Blcmx5
IGNsb3NlZC4gT2YgY291cnNlLCBpZiBhbiBleGNlcHRpb24gaGFwcGVucyBiZWZvcmUgdGhlIGZp
bmFsaXplIGZ1bmN0aW9uIGlzCisgICByZWdpc3RlcmVkIHRoZW4gaXQgd2lsbCBub3QgYmUgZXhl
Y3V0ZWQuCisKKworLi4gX2ByZXF1ZXN0LWNvbnRleHRgOgorCitGaXh0dXJlcyBjYW4gaW50cm9z
cGVjdCB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRml4dHVyZSBmdW5jdGlv
biBjYW4gYWNjZXB0IHRoZSA6cHk6Y2xhc3M6YHJlcXVlc3QgPEZpeHR1cmVSZXF1ZXN0PmAgb2Jq
ZWN0Cit0byBpbnRyb3NwZWN0IHRoZSAicmVxdWVzdGluZyIgdGVzdCBmdW5jdGlvbiwgY2xhc3Mg
b3IgbW9kdWxlIGNvbnRleHQuCitGdXJ0aGVyIGV4dGVuZGluZyB0aGUgcHJldmlvdXMgYGBzbXRw
YGAgZml4dHVyZSBleGFtcGxlLCBsZXQncworcmVhZCBhbiBvcHRpb25hbCBzZXJ2ZXIgVVJMIGZy
b20gdGhlIHRlc3QgbW9kdWxlIHdoaWNoIHVzZXMgb3VyIGZpeHR1cmU6OgorCisgICAgIyBjb250
ZW50IG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1wb3J0IHB5dGVzdAorICAgIGltcG9ydCBzbXRwbGli
CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgZGVmIHNtdHAocmVx
dWVzdCk6CisgICAgICAgIHNlcnZlciA9IGdldGF0dHIocmVxdWVzdC5tb2R1bGUsICJzbXRwc2Vy
dmVyIiwgInNtdHAuZ21haWwuY29tIikKKyAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChzZXJ2
ZXIsIDU4NywgdGltZW91dD01KQorICAgICAgICB5aWVsZCBzbXRwCisgICAgICAgIHByaW50ICgi
ZmluYWxpemluZyAlcyAoJXMpIiAlIChzbXRwLCBzZXJ2ZXIpKQorICAgICAgICBzbXRwLmNsb3Nl
KCkKKworV2UgdXNlIHRoZSBgYHJlcXVlc3QubW9kdWxlYGAgYXR0cmlidXRlIHRvIG9wdGlvbmFs
bHkgb2J0YWluIGFuCitgYHNtdHBzZXJ2ZXJgYCBhdHRyaWJ1dGUgZnJvbSB0aGUgdGVzdCBtb2R1
bGUuICBJZiB3ZSBqdXN0IGV4ZWN1dGUKK2FnYWluLCBub3RoaW5nIG11Y2ggaGFzIGNoYW5nZWQ6
OgorCisgICAgJCBweXRlc3QgLXMgLXEgLS10Yj1ubworICAgIEZGICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXWZp
bmFsaXppbmcgPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4gKHNtdHAuZ21haWwu
Y29tKQorICAgIAorICAgIDIgZmFpbGVkIGluIDAuMTIgc2Vjb25kcworCitMZXQncyBxdWlja2x5
IGNyZWF0ZSBhbm90aGVyIHRlc3QgbW9kdWxlIHRoYXQgYWN0dWFsbHkgc2V0cyB0aGUKK3NlcnZl
ciBVUkwgaW4gaXRzIG1vZHVsZSBuYW1lc3BhY2U6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rf
YW5vdGhlcnNtdHAucHkKKworICAgIHNtdHBzZXJ2ZXIgPSAibWFpbC5weXRob24ub3JnIiAgIyB3
aWxsIGJlIHJlYWQgYnkgc210cCBmaXh0dXJlCisKKyAgICBkZWYgdGVzdF9zaG93aGVsbyhzbXRw
KToKKyAgICAgICAgYXNzZXJ0IDAsIHNtdHAuaGVsbygpCisKK1J1bm5pbmcgaXQ6OgorCisgICAg
JCBweXRlc3QgLXFxIC0tdGI9c2hvcnQgdGVzdF9hbm90aGVyc210cC5weQorICAgIEYgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsxMDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJF
UyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18gdGVzdF9zaG93aGVsbyBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCisgICAgdGVzdF9hbm90aGVyc210cC5weTo1OiBpbiB0ZXN0X3Nob3doZWxvCisgICAgICAg
IGFzc2VydCAwLCBzbXRwLmhlbG8oKQorICAgIEUgICBBc3NlcnRpb25FcnJvcjogKDI1MCwgYidt
YWlsLnB5dGhvbi5vcmcnKQorICAgIEUgICBhc3NlcnQgMAorICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHRlYXJkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICBmaW5hbGl6aW5nIDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ICht
YWlsLnB5dGhvbi5vcmcpCisKK3ZvaWxhISBUaGUgYGBzbXRwYGAgZml4dHVyZSBmdW5jdGlvbiBw
aWNrZWQgdXAgb3VyIG1haWwgc2VydmVyIG5hbWUKK2Zyb20gdGhlIG1vZHVsZSBuYW1lc3BhY2Uu
CisKKy4uIF9gZml4dHVyZS1wYXJhbWV0cml6ZWA6CisKK1BhcmFtZXRyaXppbmcgZml4dHVyZXMK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK0ZpeHR1cmUgZnVuY3Rpb25zIGNhbiBiZSBwYXJhbWV0cml6ZWQgaW4gd2hp
Y2ggY2FzZSB0aGV5IHdpbGwgYmUgY2FsbGVkCittdWx0aXBsZSB0aW1lcywgZWFjaCB0aW1lIGV4
ZWN1dGluZyB0aGUgc2V0IG9mIGRlcGVuZGVudCB0ZXN0cywgaS4gZS4gdGhlCit0ZXN0cyB0aGF0
IGRlcGVuZCBvbiB0aGlzIGZpeHR1cmUuICBUZXN0IGZ1bmN0aW9ucyBkbyB1c3VhbGx5IG5vdCBu
ZWVkCit0byBiZSBhd2FyZSBvZiB0aGVpciByZS1ydW5uaW5nLiAgRml4dHVyZSBwYXJhbWV0cml6
YXRpb24gaGVscHMgdG8KK3dyaXRlIGV4aGF1c3RpdmUgZnVuY3Rpb25hbCB0ZXN0cyBmb3IgY29t
cG9uZW50cyB3aGljaCB0aGVtc2VsdmVzIGNhbiBiZQorY29uZmlndXJlZCBpbiBtdWx0aXBsZSB3
YXlzLgorCitFeHRlbmRpbmcgdGhlIHByZXZpb3VzIGV4YW1wbGUsIHdlIGNhbiBmbGFnIHRoZSBm
aXh0dXJlIHRvIGNyZWF0ZSB0d28KK2Bgc210cGBgIGZpeHR1cmUgaW5zdGFuY2VzIHdoaWNoIHdp
bGwgY2F1c2UgYWxsIHRlc3RzIHVzaW5nIHRoZSBmaXh0dXJlCit0byBydW4gdHdpY2UuICBUaGUg
Zml4dHVyZSBmdW5jdGlvbiBnZXRzIGFjY2VzcyB0byBlYWNoIHBhcmFtZXRlcgordGhyb3VnaCB0
aGUgc3BlY2lhbCA6cHk6Y2xhc3M6YHJlcXVlc3QgPEZpeHR1cmVSZXF1ZXN0PmAgb2JqZWN0OjoK
KworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBp
bXBvcnQgc210cGxpYgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLAorICAg
ICAgICAgICAgICAgICAgICBwYXJhbXM9WyJzbXRwLmdtYWlsLmNvbSIsICJtYWlsLnB5dGhvbi5v
cmciXSkKKyAgICBkZWYgc210cChyZXF1ZXN0KToKKyAgICAgICAgc210cCA9IHNtdHBsaWIuU01U
UChyZXF1ZXN0LnBhcmFtLCA1ODcsIHRpbWVvdXQ9NSkKKyAgICAgICAgeWllbGQgc210cAorICAg
ICAgICBwcmludCAoImZpbmFsaXppbmcgJXMiICUgc210cCkKKyAgICAgICAgc210cC5jbG9zZSgp
CisKK1RoZSBtYWluIGNoYW5nZSBpcyB0aGUgZGVjbGFyYXRpb24gb2YgYGBwYXJhbXNgYCB3aXRo
Cis6cHk6ZnVuYzpgQHB5dGVzdC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0dXJlPmAsIGEg
bGlzdCBvZiB2YWx1ZXMKK2ZvciBlYWNoIG9mIHdoaWNoIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIHdp
bGwgZXhlY3V0ZSBhbmQgY2FuIGFjY2VzcworYSB2YWx1ZSB2aWEgYGByZXF1ZXN0LnBhcmFtYGAu
ICBObyB0ZXN0IGZ1bmN0aW9uIGNvZGUgbmVlZHMgdG8gY2hhbmdlLgorU28gbGV0J3MganVzdCBk
byBhbm90aGVyIHJ1bjo6CisKKyAgICAkIHB5dGVzdCAtcSB0ZXN0X21vZHVsZS5weQorICAgIEZG
RkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBG
QUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19f
X19fX19fX19fX19fX18gdGVzdF9laGxvW3NtdHAuZ21haWwuY29tXSBfX19fX19fX19fX19fX19f
X19fX19fX19fCisgICAgCisgICAgc210cCA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVh
ZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2VobG8oc210cCk6CisgICAgICAgICAgICBy
ZXNwb25zZSwgbXNnID0gc210cC5laGxvKCkKKyAgICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9
PSAyNTAKKyAgICAgICAgICAgIGFzc2VydCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cKKyAgICA+
ICAgICAgIGFzc2VydCAwICAjIGZvciBkZW1vIHB1cnBvc2VzCisgICAgRSAgICAgICBhc3NlcnQg
MAorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19f
X19fX19fX19fX19fX19fX19fIHRlc3Rfbm9vcFtzbXRwLmdtYWlsLmNvbV0gX19fX19fX19fX19f
X19fX19fX19fX19fXworICAgIAorICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAw
eGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9ub29wKHNtdHApOgorICAgICAgICAg
ICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAubm9vcCgpCisgICAgICAgICAgICBhc3NlcnQgcmVzcG9u
c2UgPT0gMjUwCisgICAgPiAgICAgICBhc3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJwb3NlcworICAg
IEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weToxMTogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9laGxvW21haWwucHl0aG9u
Lm9yZ10gX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc210cCA9IDxzbXRwbGli
LlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2VobG8o
c210cCk6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5laGxvKCkKKyAgICAgICAg
ICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKKyAgICA+ICAgICAgIGFzc2VydCBiInNtdHAuZ21h
aWwuY29tIiBpbiBtc2cKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgYidzbXRw
LmdtYWlsLmNvbScgaW4gYidtYWlsLnB5dGhvbi5vcmdcblBJUEVMSU5JTkdcblNJWkUgNTEyMDAw
MDBcbkVUUk5cblNUQVJUVExTXG5BVVRIIERJR0VTVC1NRDUgTlRMTSBDUkFNLU1ENVxuRU5IQU5D
RURTVEFUVVNDT0RFU1xuOEJJVE1JTUVcbkRTTlxuU01UUFVURjgnCisgICAgCisgICAgdGVzdF9t
b2R1bGUucHk6NTogQXNzZXJ0aW9uRXJyb3IKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBDYXB0dXJlZCBzdGRvdXQgc2V0dXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ZmluYWxpemluZyA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIF9fX19f
X19fX19fX19fX19fX19fX19fXyB0ZXN0X25vb3BbbWFpbC5weXRob24ub3JnXSBfX19fX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzbXRwID0gPHNtdHBsaWIuU01UUCBvYmplY3QgYXQg
MHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRwKToKKyAgICAgICAg
ICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAgICAgICAgICAgYXNzZXJ0IHJlc3Bv
bnNlID09IDI1MAorICAgID4gICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKKyAg
ICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6MTE6IEFzc2VydGlv
bkVycm9yCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRvdXQgdGVh
cmRvd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIGZpbmFsaXppbmcgPHNtdHBsaWIu
U01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICA0IGZhaWxlZCBpbiAwLjEyIHNlY29uZHMK
KworV2Ugc2VlIHRoYXQgb3VyIHR3byB0ZXN0IGZ1bmN0aW9ucyBlYWNoIHJhbiB0d2ljZSwgYWdh
aW5zdCB0aGUgZGlmZmVyZW50CitgYHNtdHBgYCBpbnN0YW5jZXMuICBOb3RlIGFsc28sIHRoYXQg
d2l0aCB0aGUgYGBtYWlsLnB5dGhvbi5vcmdgYAorY29ubmVjdGlvbiB0aGUgc2Vjb25kIHRlc3Qg
ZmFpbHMgaW4gYGB0ZXN0X2VobG9gYCBiZWNhdXNlIGEKK2RpZmZlcmVudCBzZXJ2ZXIgc3RyaW5n
IGlzIGV4cGVjdGVkIHRoYW4gd2hhdCBhcnJpdmVkLgorCitweXRlc3Qgd2lsbCBidWlsZCBhIHN0
cmluZyB0aGF0IGlzIHRoZSB0ZXN0IElEIGZvciBlYWNoIGZpeHR1cmUgdmFsdWUKK2luIGEgcGFy
YW1ldHJpemVkIGZpeHR1cmUsIGUuZy4gYGB0ZXN0X2VobG9bc210cC5nbWFpbC5jb21dYGAgYW5k
CitgYHRlc3RfZWhsb1ttYWlsLnB5dGhvbi5vcmddYGAgaW4gdGhlIGFib3ZlIGV4YW1wbGVzLiAg
VGhlc2UgSURzIGNhbgorYmUgdXNlZCB3aXRoIGBgLWtgYCB0byBzZWxlY3Qgc3BlY2lmaWMgY2Fz
ZXMgdG8gcnVuLCBhbmQgdGhleSB3aWxsCithbHNvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBjYXNl
IHdoZW4gb25lIGlzIGZhaWxpbmcuICBSdW5uaW5nIHB5dGVzdAord2l0aCBgYC0tY29sbGVjdC1v
bmx5YGAgd2lsbCBzaG93IHRoZSBnZW5lcmF0ZWQgSURzLgorCitOdW1iZXJzLCBzdHJpbmdzLCBi
b29sZWFucyBhbmQgTm9uZSB3aWxsIGhhdmUgdGhlaXIgdXN1YWwgc3RyaW5nCityZXByZXNlbnRh
dGlvbiB1c2VkIGluIHRoZSB0ZXN0IElELiBGb3Igb3RoZXIgb2JqZWN0cywgcHl0ZXN0IHdpbGwK
K21ha2UgYSBzdHJpbmcgYmFzZWQgb24gdGhlIGFyZ3VtZW50IG5hbWUuICBJdCBpcyBwb3NzaWJs
ZSB0byBjdXN0b21pc2UKK3RoZSBzdHJpbmcgdXNlZCBpbiBhIHRlc3QgSUQgZm9yIGEgY2VydGFp
biBmaXh0dXJlIHZhbHVlIGJ5IHVzaW5nIHRoZQorYGBpZHNgYCBrZXl3b3JkIGFyZ3VtZW50OjoK
KworICAgIyBjb250ZW50IG9mIHRlc3RfaWRzLnB5CisgICBpbXBvcnQgcHl0ZXN0CisKKyAgIEBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WzAsIDFdLCBpZHM9WyJzcGFtIiwgImhhbSJdKQorICAgZGVm
IGEocmVxdWVzdCk6CisgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgZGVmIHRlc3Rf
YShhKToKKyAgICAgICBwYXNzCisKKyAgIGRlZiBpZGZuKGZpeHR1cmVfdmFsdWUpOgorICAgICAg
IGlmIGZpeHR1cmVfdmFsdWUgPT0gMDoKKyAgICAgICAgICAgcmV0dXJuICJlZ2dzIgorICAgICAg
IGVsc2U6CisgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzAsIDFdLCBpZHM9aWRmbikKKyAgIGRlZiBiKHJlcXVlc3QpOgorICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtCisKKyAgIGRlZiB0ZXN0X2IoYik6CisgICAgICAgcGFzcworCitUaGUgYWJv
dmUgc2hvd3MgaG93IGBgaWRzYGAgY2FuIGJlIGVpdGhlciBhIGxpc3Qgb2Ygc3RyaW5ncyB0byB1
c2Ugb3IKK2EgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgZml4dHVyZSB2
YWx1ZSBhbmQgdGhlbgoraGFzIHRvIHJldHVybiBhIHN0cmluZyB0byB1c2UuICBJbiB0aGUgbGF0
dGVyIGNhc2UgaWYgdGhlIGZ1bmN0aW9uCityZXR1cm4gYGBOb25lYGAgdGhlbiBweXRlc3QncyBh
dXRvLWdlbmVyYXRlZCBJRCB3aWxsIGJlIHVzZWQuCisKK1J1bm5pbmcgdGhlIGFib3ZlIHRlc3Rz
IHJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0ZXN0IElEcyBiZWluZyB1c2VkOjoKKworICAgJCBw
eXRlc3QgLS1jb2xsZWN0LW9ubHkKKyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55CisgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgY29sbGVjdGVk
IDEwIGl0ZW1zCisgICA8TW9kdWxlICd0ZXN0X2Fub3RoZXJzbXRwLnB5Jz4KKyAgICAgPEZ1bmN0
aW9uICd0ZXN0X3Nob3doZWxvW3NtdHAuZ21haWwuY29tXSc+CisgICAgIDxGdW5jdGlvbiAndGVz
dF9zaG93aGVsb1ttYWlsLnB5dGhvbi5vcmddJz4KKyAgIDxNb2R1bGUgJ3Rlc3RfaWRzLnB5Jz4K
KyAgICAgPEZ1bmN0aW9uICd0ZXN0X2Fbc3BhbV0nPgorICAgICA8RnVuY3Rpb24gJ3Rlc3RfYVto
YW1dJz4KKyAgICAgPEZ1bmN0aW9uICd0ZXN0X2JbZWdnc10nPgorICAgICA8RnVuY3Rpb24gJ3Rl
c3RfYlsxXSc+CisgICA8TW9kdWxlICd0ZXN0X21vZHVsZS5weSc+CisgICAgIDxGdW5jdGlvbiAn
dGVzdF9laGxvW3NtdHAuZ21haWwuY29tXSc+CisgICAgIDxGdW5jdGlvbiAndGVzdF9ub29wW3Nt
dHAuZ21haWwuY29tXSc+CisgICAgIDxGdW5jdGlvbiAndGVzdF9laGxvW21haWwucHl0aG9uLm9y
Z10nPgorICAgICA8RnVuY3Rpb24gJ3Rlc3Rfbm9vcFttYWlsLnB5dGhvbi5vcmddJz4KKyAgIAor
ICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9
PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBfYGludGVyZGVwZW5kZW50IGZpeHR1cmVzYDoK
KworTW9kdWxhcml0eTogdXNpbmcgZml4dHVyZXMgZnJvbSBhIGZpeHR1cmUgZnVuY3Rpb24KKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworWW91IGNhbiBub3Qgb25seSB1c2UgZml4dHVyZXMgaW4gdGVzdCBmdW5jdGlvbnMgYnV0IGZp
eHR1cmUgZnVuY3Rpb25zCitjYW4gdXNlIG90aGVyIGZpeHR1cmVzIHRoZW1zZWx2ZXMuICBUaGlz
IGNvbnRyaWJ1dGVzIHRvIGEgbW9kdWxhciBkZXNpZ24KK29mIHlvdXIgZml4dHVyZXMgYW5kIGFs
bG93cyByZS11c2Ugb2YgZnJhbWV3b3JrLXNwZWNpZmljIGZpeHR1cmVzIGFjcm9zcworbWFueSBw
cm9qZWN0cy4gIEFzIGEgc2ltcGxlIGV4YW1wbGUsIHdlIGNhbiBleHRlbmQgdGhlIHByZXZpb3Vz
IGV4YW1wbGUKK2FuZCBpbnN0YW50aWF0ZSBhbiBvYmplY3QgYGBhcHBgYCB3aGVyZSB3ZSBzdGlj
ayB0aGUgYWxyZWFkeSBkZWZpbmVkCitgYHNtdHBgYCByZXNvdXJjZSBpbnRvIGl0OjoKKworICAg
ICMgY29udGVudCBvZiB0ZXN0X2FwcHNldHVwLnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICBjbGFzcyBBcHAob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNtdHApOgor
ICAgICAgICAgICAgc2VsZi5zbXRwID0gc210cAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJtb2R1bGUiKQorICAgIGRlZiBhcHAoc210cCk6CisgICAgICAgIHJldHVybiBBcHAoc210cCkK
KworICAgIGRlZiB0ZXN0X3NtdHBfZXhpc3RzKGFwcCk6CisgICAgICAgIGFzc2VydCBhcHAuc210
cAorCitIZXJlIHdlIGRlY2xhcmUgYW4gYGBhcHBgYCBmaXh0dXJlIHdoaWNoIHJlY2VpdmVzIHRo
ZSBwcmV2aW91c2x5IGRlZmluZWQKK2Bgc210cGBgIGZpeHR1cmUgYW5kIGluc3RhbnRpYXRlcyBh
biBgYEFwcGBgIG9iamVjdCB3aXRoIGl0LiAgTGV0J3MgcnVuIGl0OjoKKworICAgICQgcHl0ZXN0
IC12IHRlc3RfYXBwc2V0dXAucHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVz
dCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICAgIGNhY2hlZGlyOiAuY2Fj
aGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3Rp
bmcgLi4uIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAgCisgICAgdGVzdF9hcHBzZXR1cC5weTo6dGVz
dF9zbXRwX2V4aXN0c1tzbXRwLmdtYWlsLmNvbV0gUEFTU0VEICAgICAgICAgICAgWyA1MCVdCisg
ICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2V4aXN0c1ttYWlsLnB5dGhvbi5vcmddIFBB
U1NFRCAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PSAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitE
dWUgdG8gdGhlIHBhcmFtZXRyaXphdGlvbiBvZiBgYHNtdHBgYCB0aGUgdGVzdCB3aWxsIHJ1biB0
d2ljZSB3aXRoIHR3bworZGlmZmVyZW50IGBgQXBwYGAgaW5zdGFuY2VzIGFuZCByZXNwZWN0aXZl
IHNtdHAgc2VydmVycy4gIFRoZXJlIGlzIG5vCituZWVkIGZvciB0aGUgYGBhcHBgYCBmaXh0dXJl
IHRvIGJlIGF3YXJlIG9mIHRoZSBgYHNtdHBgYCBwYXJhbWV0cml6YXRpb24KK2FzIHB5dGVzdCB3
aWxsIGZ1bGx5IGFuYWx5c2UgdGhlIGZpeHR1cmUgZGVwZW5kZW5jeSBncmFwaC4KKworTm90ZSwg
dGhhdCB0aGUgYGBhcHBgYCBmaXh0dXJlIGhhcyBhIHNjb3BlIG9mIGBgbW9kdWxlYGAgYW5kIHVz
ZXMgYQorbW9kdWxlLXNjb3BlZCBgYHNtdHBgYCBmaXh0dXJlLiAgVGhlIGV4YW1wbGUgd291bGQg
c3RpbGwgd29yayBpZiBgYHNtdHBgYAord2FzIGNhY2hlZCBvbiBhIGBgc2Vzc2lvbmBgIHNjb3Bl
OiBpdCBpcyBmaW5lIGZvciBmaXh0dXJlcyB0byB1c2UKKyJicm9hZGVyIiBzY29wZWQgZml4dHVy
ZXMgYnV0IG5vdCB0aGUgb3RoZXIgd2F5IHJvdW5kOgorQSBzZXNzaW9uLXNjb3BlZCBmaXh0dXJl
IGNvdWxkIG5vdCB1c2UgYSBtb2R1bGUtc2NvcGVkIG9uZSBpbiBhCittZWFuaW5nZnVsIHdheS4K
KworCisuLiBfYGF1dG9tYXRpYyBwZXItcmVzb3VyY2UgZ3JvdXBpbmdgOgorCitBdXRvbWF0aWMg
Z3JvdXBpbmcgb2YgdGVzdHMgYnkgZml4dHVyZSBpbnN0YW5jZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6
IHdpcGUKKworcHl0ZXN0IG1pbmltaXplcyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBmaXh0dXJlcyBk
dXJpbmcgdGVzdCBydW5zLgorSWYgeW91IGhhdmUgYSBwYXJhbWV0cml6ZWQgZml4dHVyZSwgdGhl
biBhbGwgdGhlIHRlc3RzIHVzaW5nIGl0IHdpbGwKK2ZpcnN0IGV4ZWN1dGUgd2l0aCBvbmUgaW5z
dGFuY2UgYW5kIHRoZW4gZmluYWxpemVycyBhcmUgY2FsbGVkCitiZWZvcmUgdGhlIG5leHQgZml4
dHVyZSBpbnN0YW5jZSBpcyBjcmVhdGVkLiAgQW1vbmcgb3RoZXIgdGhpbmdzLAordGhpcyBlYXNl
cyB0ZXN0aW5nIG9mIGFwcGxpY2F0aW9ucyB3aGljaCBjcmVhdGUgYW5kIHVzZSBnbG9iYWwgc3Rh
dGUuCisKK1RoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHR3byBwYXJhbWV0cml6ZWQgZml4dHVy
ZSwgb25lIG9mIHdoaWNoIGlzCitzY29wZWQgb24gYSBwZXItbW9kdWxlIGJhc2lzLCBhbmQgYWxs
IHRoZSBmdW5jdGlvbnMgcGVyZm9ybSBgYHByaW50YGAgY2FsbHMKK3RvIHNob3cgdGhlIHNldHVw
L3RlYXJkb3duIGZsb3c6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CisgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJh
bXM9WyJtb2QxIiwgIm1vZDIiXSkKKyAgICBkZWYgbW9kYXJnKHJlcXVlc3QpOgorICAgICAgICBw
YXJhbSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgcHJpbnQgKCIgIFNFVFVQIG1vZGFyZyAlcyIg
JSBwYXJhbSkKKyAgICAgICAgeWllbGQgcGFyYW0KKyAgICAgICAgcHJpbnQgKCIgIFRFQVJET1dO
IG1vZGFyZyAlcyIgJSBwYXJhbSkKKworICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rp
b24iLCBwYXJhbXM9WzEsMl0pCisgICAgZGVmIG90aGVyYXJnKHJlcXVlc3QpOgorICAgICAgICBw
YXJhbSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgcHJpbnQgKCIgIFNFVFVQIG90aGVyYXJnICVz
IiAlIHBhcmFtKQorICAgICAgICB5aWVsZCBwYXJhbQorICAgICAgICBwcmludCAoIiAgVEVBUkRP
V04gb3RoZXJhcmcgJXMiICUgcGFyYW0pCisKKyAgICBkZWYgdGVzdF8wKG90aGVyYXJnKToKKyAg
ICAgICAgcHJpbnQgKCIgIFJVTiB0ZXN0MCB3aXRoIG90aGVyYXJnICVzIiAlIG90aGVyYXJnKQor
ICAgIGRlZiB0ZXN0XzEobW9kYXJnKToKKyAgICAgICAgcHJpbnQgKCIgIFJVTiB0ZXN0MSB3aXRo
IG1vZGFyZyAlcyIgJSBtb2RhcmcpCisgICAgZGVmIHRlc3RfMihvdGhlcmFyZywgbW9kYXJnKToK
KyAgICAgICAgcHJpbnQgKCIgIFJVTiB0ZXN0MiB3aXRoIG90aGVyYXJnICVzIGFuZCBtb2Rhcmcg
JXMiICUgKG90aGVyYXJnLCBtb2RhcmcpKQorCisKK0xldCdzIHJ1biB0aGUgdGVzdHMgaW4gdmVy
Ym9zZSBtb2RlIGFuZCB3aXRoIGxvb2tpbmcgYXQgdGhlIHByaW50LW91dHB1dDo6CisKKyAgICAk
IHB5dGVzdCAtdiAtcyB0ZXN0X21vZHVsZS5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41CisgICAgY2FjaGVk
aXI6IC5jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAg
Y29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDggaXRlbXMKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5w
eTo6dGVzdF8wWzFdICAgU0VUVVAgb3RoZXJhcmcgMQorICAgICAgUlVOIHRlc3QwIHdpdGggb3Ro
ZXJhcmcgMQorICAgIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
IDEyJV0gIFRFQVJET1dOIG90aGVyYXJnIDEKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo6dGVz
dF8wWzJdICAgU0VUVVAgb3RoZXJhcmcgMgorICAgICAgUlVOIHRlc3QwIHdpdGggb3RoZXJhcmcg
MgorICAgIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDI1JV0g
IFRFQVJET1dOIG90aGVyYXJnIDIKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF8xW21v
ZDFdICAgU0VUVVAgbW9kYXJnIG1vZDEKKyAgICAgIFJVTiB0ZXN0MSB3aXRoIG1vZGFyZyBtb2Qx
CisgICAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgMzclXQorICAg
IHRlc3RfbW9kdWxlLnB5Ojp0ZXN0XzJbMS1tb2QxXSAgIFNFVFVQIG90aGVyYXJnIDEKKyAgICAg
IFJVTiB0ZXN0MiB3aXRoIG90aGVyYXJnIDEgYW5kIG1vZGFyZyBtb2QxCisgICAgUEFTU0VEICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDUwJV0gIFRFQVJET1dOIG90aGVyYXJnIDEK
KyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF8yWzItbW9kMV0gICBTRVRVUCBvdGhlcmFy
ZyAyCisgICAgICBSVU4gdGVzdDIgd2l0aCBvdGhlcmFyZyAyIGFuZCBtb2RhcmcgbW9kMQorICAg
IFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA2MiVdICBURUFSRE9XTiBv
dGhlcmFyZyAyCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6OnRlc3RfMVttb2QyXSAgIFRFQVJE
T1dOIG1vZGFyZyBtb2QxCisgICAgICBTRVRVUCBtb2RhcmcgbW9kMgorICAgICAgUlVOIHRlc3Qx
IHdpdGggbW9kYXJnIG1vZDIKKyAgICBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyA3NSVdCisgICAgdGVzdF9tb2R1bGUucHk6OnRlc3RfMlsxLW1vZDJdICAgU0VUVVAg
b3RoZXJhcmcgMQorICAgICAgUlVOIHRlc3QyIHdpdGggb3RoZXJhcmcgMSBhbmQgbW9kYXJnIG1v
ZDIKKyAgICBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgODclXSAgVEVB
UkRPV04gb3RoZXJhcmcgMQorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5Ojp0ZXN0XzJbMi1tb2Qy
XSAgIFNFVFVQIG90aGVyYXJnIDIKKyAgICAgIFJVTiB0ZXN0MiB3aXRoIG90aGVyYXJnIDIgYW5k
IG1vZGFyZyBtb2QyCisgICAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0gIFRFQVJET1dOIG90aGVyYXJnIDIKKyAgICAgIFRFQVJET1dOIG1vZGFyZyBtb2QyCisg
ICAgCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSA4IHBhc3NlZCBpbiAwLjEy
IHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitZb3UgY2FuIHNlZSB0aGF0IHRo
ZSBwYXJhbWV0cml6ZWQgbW9kdWxlLXNjb3BlZCBgYG1vZGFyZ2BgIHJlc291cmNlIGNhdXNlZCBh
bgorb3JkZXJpbmcgb2YgdGVzdCBleGVjdXRpb24gdGhhdCBsZWFkIHRvIHRoZSBmZXdlc3QgcG9z
c2libGUgImFjdGl2ZSIgcmVzb3VyY2VzLgorVGhlIGZpbmFsaXplciBmb3IgdGhlIGBgbW9kMWBg
IHBhcmFtZXRyaXplZCByZXNvdXJjZSB3YXMgZXhlY3V0ZWQgYmVmb3JlIHRoZQorYGBtb2QyYGAg
cmVzb3VyY2Ugd2FzIHNldHVwLgorCitJbiBwYXJ0aWN1bGFyIG5vdGljZSB0aGF0IHRlc3RfMCBp
cyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IGFuZCBmaW5pc2hlcyBmaXJzdC4KK1RoZW4gdGVzdF8x
IGlzIGV4ZWN1dGVkIHdpdGggYGBtb2QxYGAsIHRoZW4gdGVzdF8yIHdpdGggYGBtb2QxYGAsIHRo
ZW4gdGVzdF8xCit3aXRoIGBgbW9kMmBgIGFuZCBmaW5hbGx5IHRlc3RfMiB3aXRoIGBgbW9kMmBg
LgorCitUaGUgYGBvdGhlcmFyZ2BgIHBhcmFtZXRyaXplZCByZXNvdXJjZSAoaGF2aW5nIGZ1bmN0
aW9uIHNjb3BlKSB3YXMgc2V0IHVwIGJlZm9yZQorYW5kIHRlYXJlZCBkb3duIGFmdGVyIGV2ZXJ5
IHRlc3QgdGhhdCB1c2VkIGl0LgorCisKKy4uIF9gdXNlZml4dHVyZXNgOgorCitVc2luZyBmaXh0
dXJlcyBmcm9tIGNsYXNzZXMsIG1vZHVsZXMgb3IgcHJvamVjdHMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
Li4gcmVnZW5kb2M6d2lwZQorCitTb21ldGltZXMgdGVzdCBmdW5jdGlvbnMgZG8gbm90IGRpcmVj
dGx5IG5lZWQgYWNjZXNzIHRvIGEgZml4dHVyZSBvYmplY3QuCitGb3IgZXhhbXBsZSwgdGVzdHMg
bWF5IHJlcXVpcmUgdG8gb3BlcmF0ZSB3aXRoIGFuIGVtcHR5IGRpcmVjdG9yeSBhcyB0aGUKK2N1
cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgYnV0IG90aGVyd2lzZSBkbyBub3QgY2FyZSBmb3IgdGhl
IGNvbmNyZXRlCitkaXJlY3RvcnkuICBIZXJlIGlzIGhvdyB5b3UgY2FuIHVzZSB0aGUgc3RhbmRh
cmQgYHRlbXBmaWxlCis8aHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3RlbXBmaWxlLmh0
bWw+YF8gYW5kIHB5dGVzdCBmaXh0dXJlcyB0bworYWNoaWV2ZSBpdC4gIFdlIHNlcGFyYXRlIHRo
ZSBjcmVhdGlvbiBvZiB0aGUgZml4dHVyZSBpbnRvIGEgY29uZnRlc3QucHkKK2ZpbGU6OgorCisg
ICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgaW1w
b3J0IHRlbXBmaWxlCisgICAgaW1wb3J0IG9zCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAg
IGRlZiBjbGVhbmRpcigpOgorICAgICAgICBuZXdwYXRoID0gdGVtcGZpbGUubWtkdGVtcCgpCisg
ICAgICAgIG9zLmNoZGlyKG5ld3BhdGgpCisKK2FuZCBkZWNsYXJlIGl0cyB1c2UgaW4gYSB0ZXN0
IG1vZHVsZSB2aWEgYSBgYHVzZWZpeHR1cmVzYGAgbWFya2VyOjoKKworICAgICMgY29udGVudCBv
ZiB0ZXN0X3NldGVudi5weQorICAgIGltcG9ydCBvcworICAgIGltcG9ydCBweXRlc3QKKworICAg
IEBweXRlc3QubWFyay51c2VmaXh0dXJlcygiY2xlYW5kaXIiKQorICAgIGNsYXNzIFRlc3REaXJl
Y3RvcnlJbml0KG9iamVjdCk6CisgICAgICAgIGRlZiB0ZXN0X2N3ZF9zdGFydHNfZW1wdHkoc2Vs
Zik6CisgICAgICAgICAgICBhc3NlcnQgb3MubGlzdGRpcihvcy5nZXRjd2QoKSkgPT0gW10KKyAg
ICAgICAgICAgIHdpdGggb3BlbigibXlmaWxlIiwgInciKSBhcyBmOgorICAgICAgICAgICAgICAg
IGYud3JpdGUoImhlbGxvIikKKworICAgICAgICBkZWYgdGVzdF9jd2RfYWdhaW5fc3RhcnRzX2Vt
cHR5KHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IG9zLmxpc3RkaXIob3MuZ2V0Y3dkKCkpID09
IFtdCisKK0R1ZSB0byB0aGUgYGB1c2VmaXh0dXJlc2BgIG1hcmtlciwgdGhlIGBgY2xlYW5kaXJg
YCBmaXh0dXJlCit3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgZXhlY3V0aW9uIG9mIGVhY2ggdGVz
dCBtZXRob2QsIGp1c3QgYXMgaWYKK3lvdSBzcGVjaWZpZWQgYSAiY2xlYW5kaXIiIGZ1bmN0aW9u
IGFyZ3VtZW50IHRvIGVhY2ggb2YgdGhlbS4gIExldCdzIHJ1biBpdAordG8gdmVyaWZ5IG91ciBm
aXh0dXJlIGlzIGFjdGl2YXRlZCBhbmQgdGhlIHRlc3RzIHBhc3M6OgorCisgICAgJCBweXRlc3Qg
LXEKKyAgICAuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMK
KworWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIGZpeHR1cmVzIGxpa2UgdGhpczoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJjbGVhbmRp
ciIsICJhbm90aGVyZml4dHVyZSIpCisKK2FuZCB5b3UgbWF5IHNwZWNpZnkgZml4dHVyZSB1c2Fn
ZSBhdCB0aGUgdGVzdCBtb2R1bGUgbGV2ZWwsIHVzaW5nCithIGdlbmVyaWMgZmVhdHVyZSBvZiB0
aGUgbWFyayBtZWNoYW5pc206CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIHB5dGVz
dG1hcmsgPSBweXRlc3QubWFyay51c2VmaXh0dXJlcygiY2xlYW5kaXIiKQorCitOb3RlIHRoYXQg
dGhlIGFzc2lnbmVkIHZhcmlhYmxlICptdXN0KiBiZSBjYWxsZWQgYGBweXRlc3RtYXJrYGAsIGFz
c2lnbmluZyBlLmcuCitgYGZvb21hcmtgYCB3aWxsIG5vdCBhY3RpdmF0ZSB0aGUgZml4dHVyZXMu
CisKK0xhc3RseSB5b3UgY2FuIHB1dCBmaXh0dXJlcyByZXF1aXJlZCBieSBhbGwgdGVzdHMgaW4g
eW91ciBwcm9qZWN0CitpbnRvIGFuIGluaS1maWxlOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisK
KyAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAgIFtweXRlc3RdCisgICAgdXNlZml4dHVy
ZXMgPSBjbGVhbmRpcgorCisKKy4uIF9gYXV0b3VzZWA6CisuLiBfYGF1dG91c2UgZml4dHVyZXNg
OgorCitBdXRvdXNlIGZpeHR1cmVzICh4VW5pdCBzZXR1cCBvbiBzdGVyb2lkcykKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitPY2Nhc2lvbmFsbHksIHlvdSBtYXkgd2FudCB0
byBoYXZlIGZpeHR1cmVzIGdldCBpbnZva2VkIGF1dG9tYXRpY2FsbHkKK3dpdGhvdXQgZGVjbGFy
aW5nIGEgZnVuY3Rpb24gYXJndW1lbnQgZXhwbGljaXRseSBvciBhIGB1c2VmaXh0dXJlc2BfIGRl
Y29yYXRvci4KK0FzIGEgcHJhY3RpY2FsIGV4YW1wbGUsIHN1cHBvc2Ugd2UgaGF2ZSBhIGRhdGFi
YXNlIGZpeHR1cmUgd2hpY2ggaGFzIGEKK2JlZ2luL3JvbGxiYWNrL2NvbW1pdCBhcmNoaXRlY3R1
cmUgYW5kIHdlIHdhbnQgdG8gYXV0b21hdGljYWxseSBzdXJyb3VuZAorZWFjaCB0ZXN0IG1ldGhv
ZCBieSBhIHRyYW5zYWN0aW9uIGFuZCBhIHJvbGxiYWNrLiAgSGVyZSBpcyBhIGR1bW15CitzZWxm
LWNvbnRhaW5lZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGlkZWE6OgorCisgICAgIyBjb250ZW50
IG9mIHRlc3RfZGJfdHJhbnNhY3QucHkKKworICAgIGltcG9ydCBweXRlc3QKKworICAgIGNsYXNz
IERCKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIHNl
bGYuaW50cmFuc2FjdGlvbiA9IFtdCisgICAgICAgIGRlZiBiZWdpbihzZWxmLCBuYW1lKToKKyAg
ICAgICAgICAgIHNlbGYuaW50cmFuc2FjdGlvbi5hcHBlbmQobmFtZSkKKyAgICAgICAgZGVmIHJv
bGxiYWNrKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5pbnRyYW5zYWN0aW9uLnBvcCgpCisKKyAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgZGVmIGRiKCk6CisgICAgICAg
IHJldHVybiBEQigpCisKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgQHB5
dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgZGVmIHRyYW5zYWN0KHNlbGYsIHJl
cXVlc3QsIGRiKToKKyAgICAgICAgICAgIGRiLmJlZ2luKHJlcXVlc3QuZnVuY3Rpb24uX19uYW1l
X18pCisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgZGIucm9sbGJhY2soKQorCisgICAg
ICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZiwgZGIpOgorICAgICAgICAgICAgYXNzZXJ0IGRiLmlu
dHJhbnNhY3Rpb24gPT0gWyJ0ZXN0X21ldGhvZDEiXQorCisgICAgICAgIGRlZiB0ZXN0X21ldGhv
ZDIoc2VsZiwgZGIpOgorICAgICAgICAgICAgYXNzZXJ0IGRiLmludHJhbnNhY3Rpb24gPT0gWyJ0
ZXN0X21ldGhvZDIiXQorCitUaGUgY2xhc3MtbGV2ZWwgYGB0cmFuc2FjdGBgIGZpeHR1cmUgaXMg
bWFya2VkIHdpdGggKmF1dG91c2U9dHJ1ZSoKK3doaWNoIGltcGxpZXMgdGhhdCBhbGwgdGVzdCBt
ZXRob2RzIGluIHRoZSBjbGFzcyB3aWxsIHVzZSB0aGlzIGZpeHR1cmUKK3dpdGhvdXQgYSBuZWVk
IHRvIHN0YXRlIGl0IGluIHRoZSB0ZXN0IGZ1bmN0aW9uIHNpZ25hdHVyZSBvciB3aXRoIGEKK2Ns
YXNzLWxldmVsIGBgdXNlZml4dHVyZXNgYCBkZWNvcmF0b3IuCisKK0lmIHdlIHJ1biBpdCwgd2Ug
Z2V0IHR3byBwYXNzaW5nIHRlc3RzOjoKKworICAgICQgcHl0ZXN0IC1xCisgICAgLi4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWzEwMCVdCisgICAgMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzCisKK0hlcmUgaXMgaG93IGF1
dG91c2UgZml4dHVyZXMgd29yayBpbiBvdGhlciBzY29wZXM6CisKKy0gYXV0b3VzZSBmaXh0dXJl
cyBvYmV5IHRoZSBgYHNjb3BlPWBgIGtleXdvcmQtYXJndW1lbnQ6IGlmIGFuIGF1dG91c2UgZml4
dHVyZQorICBoYXMgYGBzY29wZT0nc2Vzc2lvbidgYCBpdCB3aWxsIG9ubHkgYmUgcnVuIG9uY2Us
IG5vIG1hdHRlciB3aGVyZSBpdCBpcworICBkZWZpbmVkLiBgYHNjb3BlPSdjbGFzcydgYCBtZWFu
cyBpdCB3aWxsIGJlIHJ1biBvbmNlIHBlciBjbGFzcywgZXRjLgorCistIGlmIGFuIGF1dG91c2Ug
Zml4dHVyZSBpcyBkZWZpbmVkIGluIGEgdGVzdCBtb2R1bGUsIGFsbCBpdHMgdGVzdAorICBmdW5j
dGlvbnMgYXV0b21hdGljYWxseSB1c2UgaXQuCisKKy0gaWYgYW4gYXV0b3VzZSBmaXh0dXJlIGlz
IGRlZmluZWQgaW4gYSBjb25mdGVzdC5weSBmaWxlIHRoZW4gYWxsIHRlc3RzIGluCisgIGFsbCB0
ZXN0IG1vZHVsZXMgYmVsb3cgaXRzIGRpcmVjdG9yeSB3aWxsIGludm9rZSB0aGUgZml4dHVyZS4K
KworLSBsYXN0bHksIGFuZCAqKnBsZWFzZSB1c2UgdGhhdCB3aXRoIGNhcmUqKjogaWYgeW91IGRl
ZmluZSBhbiBhdXRvdXNlCisgIGZpeHR1cmUgaW4gYSBwbHVnaW4sIGl0IHdpbGwgYmUgaW52b2tl
ZCBmb3IgYWxsIHRlc3RzIGluIGFsbCBwcm9qZWN0cworICB3aGVyZSB0aGUgcGx1Z2luIGlzIGlu
c3RhbGxlZC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBhIGZpeHR1cmUgb25seQorICBhbnl3YXkg
d29ya3MgaW4gdGhlIHByZXNlbmNlIG9mIGNlcnRhaW4gc2V0dGluZ3MgZS4gZy4gaW4gdGhlIGlu
aS1maWxlLiAgU3VjaAorICBhIGdsb2JhbCBmaXh0dXJlIHNob3VsZCBhbHdheXMgcXVpY2tseSBk
ZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGRvCisgIGFueSB3b3JrIGFuZCBhdm9pZCBvdGhlcndpc2Ug
ZXhwZW5zaXZlIGltcG9ydHMgb3IgY29tcHV0YXRpb24uCisKK05vdGUgdGhhdCB0aGUgYWJvdmUg
YGB0cmFuc2FjdGBgIGZpeHR1cmUgbWF5IHZlcnkgd2VsbCBiZSBhIGZpeHR1cmUgdGhhdAoreW91
IHdhbnQgdG8gbWFrZSBhdmFpbGFibGUgaW4geW91ciBwcm9qZWN0IHdpdGhvdXQgaGF2aW5nIGl0
IGdlbmVyYWxseQorYWN0aXZlLiAgVGhlIGNhbm9uaWNhbCB3YXkgdG8gZG8gdGhhdCBpcyB0byBw
dXQgdGhlIHRyYW5zYWN0IGRlZmluaXRpb24KK2ludG8gYSBjb25mdGVzdC5weSBmaWxlICoqd2l0
aG91dCoqIHVzaW5nIGBgYXV0b3VzZWBgOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5w
eQorICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiB0cmFuc2FjdChyZXF1ZXN0LCBkYik6Cisg
ICAgICAgIGRiLmJlZ2luKCkKKyAgICAgICAgeWllbGQKKyAgICAgICAgZGIucm9sbGJhY2soKQor
CithbmQgdGhlbiBlLmcuIGhhdmUgYSBUZXN0Q2xhc3MgdXNpbmcgaXQgYnkgZGVjbGFyaW5nIHRo
ZSBuZWVkOjoKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygidHJhbnNhY3QiKQorICAg
IGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF9tZXRob2QxKHNlbGYp
OgorICAgICAgICAgICAgLi4uCisKK0FsbCB0ZXN0IG1ldGhvZHMgaW4gdGhpcyBUZXN0Q2xhc3Mg
d2lsbCB1c2UgdGhlIHRyYW5zYWN0aW9uIGZpeHR1cmUgd2hpbGUKK290aGVyIHRlc3QgY2xhc3Nl
cyBvciBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZSB3aWxsIG5vdCB1c2UgaXQgdW5sZXNzCit0aGV5
IGFsc28gYWRkIGEgYGB0cmFuc2FjdGBgIHJlZmVyZW5jZS4KKworT3ZlcnJpZGluZyBmaXh0dXJl
cyBvbiB2YXJpb3VzIGxldmVscworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitJbiByZWxhdGl2ZWx5IGxhcmdlIHRlc3Qgc3VpdGUsIHlvdSBtb3N0IGxpa2VseSBuZWVk
IHRvIGBgb3ZlcnJpZGVgYCBhIGBgZ2xvYmFsYGAgb3IgYGByb290YGAgZml4dHVyZSB3aXRoIGEg
YGBsb2NhbGx5YGAKK2RlZmluZWQgb25lLCBrZWVwaW5nIHRoZSB0ZXN0IGNvZGUgcmVhZGFibGUg
YW5kIG1haW50YWluYWJsZS4KKworT3ZlcnJpZGUgYSBmaXh0dXJlIG9uIGEgZm9sZGVyIChjb25m
dGVzdCkgbGV2ZWwKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eCisKK0dpdmVuIHRoZSB0ZXN0cyBmaWxlIHN0cnVjdHVyZSBpczoKKworOjoKKworICAgIHRl
c3RzLworICAgICAgICBfX2luaXRfXy5weQorCisgICAgICAgIGNvbmZ0ZXN0LnB5CisgICAgICAg
ICAgICAjIGNvbnRlbnQgb2YgdGVzdHMvY29uZnRlc3QucHkKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgdXNl
cm5hbWUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3VzZXJuYW1lJworCisgICAgICAgIHRl
c3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICAjIGNvbnRlbnQgb2YgdGVzdHMvdGVzdF9zb21l
dGhpbmcucHkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lKHVzZXJuYW1lKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgdXNlcm5hbWUgPT0gJ3VzZXJuYW1lJworCisgICAgICAgIHN1YmZv
bGRlci8KKyAgICAgICAgICAgIF9faW5pdF9fLnB5CisKKyAgICAgICAgICAgIGNvbmZ0ZXN0LnB5
CisgICAgICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3RzL3N1YmZvbGRlci9jb25mdGVzdC5w
eQorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiB1c2VybmFtZSh1c2VybmFtZSk6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAnb3ZlcnJpZGRlbi0nICsgdXNlcm5hbWUKKworICAgICAg
ICAgICAgdGVzdF9zb21ldGhpbmcucHkKKyAgICAgICAgICAgICAgICAjIGNvbnRlbnQgb2YgdGVz
dHMvc3ViZm9sZGVyL3Rlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
dXNlcm5hbWUodXNlcm5hbWUpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdXNlcm5hbWUg
PT0gJ292ZXJyaWRkZW4tdXNlcm5hbWUnCisKK0FzIHlvdSBjYW4gc2VlLCBhIGZpeHR1cmUgd2l0
aCB0aGUgc2FtZSBuYW1lIGNhbiBiZSBvdmVycmlkZGVuIGZvciBjZXJ0YWluIHRlc3QgZm9sZGVy
IGxldmVsLgorTm90ZSB0aGF0IHRoZSBgYGJhc2VgYCBvciBgYHN1cGVyYGAgZml4dHVyZSBjYW4g
YmUgYWNjZXNzZWQgZnJvbSB0aGUgYGBvdmVycmlkaW5nYGAKK2ZpeHR1cmUgZWFzaWx5IC0gdXNl
ZCBpbiB0aGUgZXhhbXBsZSBhYm92ZS4KKworT3ZlcnJpZGUgYSBmaXh0dXJlIG9uIGEgdGVzdCBt
b2R1bGUgbGV2ZWwKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisK
K0dpdmVuIHRoZSB0ZXN0cyBmaWxlIHN0cnVjdHVyZSBpczoKKworOjoKKworICAgIHRlc3RzLwor
ICAgICAgICBfX2luaXRfXy5weQorCisgICAgICAgIGNvbmZ0ZXN0LnB5CisgICAgICAgICAgICAj
IGNvbnRlbnQgb2YgdGVzdHMvY29uZnRlc3QucHkKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIHVzZXJuYW1lKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICd1
c2VybmFtZScKKworICAgICAgICB0ZXN0X3NvbWV0aGluZy5weQorICAgICAgICAgICAgIyBjb250
ZW50IG9mIHRlc3RzL3Rlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHVzZXJuYW1l
KHVzZXJuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ292ZXJyaWRkZW4tJyArIHVzZXJu
YW1lCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lKHVzZXJuYW1lKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgdXNlcm5hbWUgPT0gJ292ZXJyaWRkZW4tdXNlcm5hbWUnCisKKyAgICAg
ICAgdGVzdF9zb21ldGhpbmdfZWxzZS5weQorICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3Rz
L3Rlc3Rfc29tZXRoaW5nX2Vsc2UucHkKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgdXNlcm5hbWUodXNlcm5h
bWUpOgorICAgICAgICAgICAgICAgIHJldHVybiAnb3ZlcnJpZGRlbi1lbHNlLScgKyB1c2VybmFt
ZQorCisgICAgICAgICAgICBkZWYgdGVzdF91c2VybmFtZSh1c2VybmFtZSk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHVzZXJuYW1lID09ICdvdmVycmlkZGVuLWVsc2UtdXNlcm5hbWUnCisKK0lu
IHRoZSBleGFtcGxlIGFib3ZlLCBhIGZpeHR1cmUgd2l0aCB0aGUgc2FtZSBuYW1lIGNhbiBiZSBv
dmVycmlkZGVuIGZvciBjZXJ0YWluIHRlc3QgbW9kdWxlLgorCisKK092ZXJyaWRlIGEgZml4dHVy
ZSB3aXRoIGRpcmVjdCB0ZXN0IHBhcmFtZXRyaXphdGlvbgorXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK0dpdmVuIHRoZSB0ZXN0cyBmaWxlIHN0
cnVjdHVyZSBpczoKKworOjoKKworICAgIHRlc3RzLworICAgICAgICBfX2luaXRfXy5weQorCisg
ICAgICAgIGNvbmZ0ZXN0LnB5CisgICAgICAgICAgICAjIGNvbnRlbnQgb2YgdGVzdHMvY29uZnRl
c3QucHkKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgdXNlcm5hbWUoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gJ3VzZXJuYW1lJworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBvdGhlcl91c2VybmFtZSh1c2VybmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdv
dGhlci0nICsgdXNlcm5hbWUKKworICAgICAgICB0ZXN0X3NvbWV0aGluZy5weQorICAgICAgICAg
ICAgIyBjb250ZW50IG9mIHRlc3RzL3Rlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgndXNlcm5h
bWUnLCBbJ2RpcmVjdGx5LW92ZXJyaWRkZW4tdXNlcm5hbWUnXSkKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3VzZXJuYW1lKHVzZXJuYW1lKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdXNlcm5hbWUg
PT0gJ2RpcmVjdGx5LW92ZXJyaWRkZW4tdXNlcm5hbWUnCisKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgndXNlcm5hbWUnLCBbJ2RpcmVjdGx5LW92ZXJyaWRkZW4tdXNlcm5h
bWUtb3RoZXInXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lX290aGVyKG90aGVyX3Vz
ZXJuYW1lKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgb3RoZXJfdXNlcm5hbWUgPT0gJ290aGVy
LWRpcmVjdGx5LW92ZXJyaWRkZW4tdXNlcm5hbWUtb3RoZXInCisKK0luIHRoZSBleGFtcGxlIGFi
b3ZlLCBhIGZpeHR1cmUgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSB0aGUgdGVzdCBwYXJhbWV0ZXIg
dmFsdWUuIE5vdGUgdGhhdCB0aGUgdmFsdWUgb2YgdGhlIGZpeHR1cmUKK2NhbiBiZSBvdmVycmlk
ZGVuIHRoaXMgd2F5IGV2ZW4gaWYgdGhlIHRlc3QgZG9lc24ndCB1c2UgaXQgZGlyZWN0bHkgKGRv
ZXNuJ3QgbWVudGlvbiBpdCBpbiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlKS4KKworCitPdmVycmlk
ZSBhIHBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggbm9uLXBhcmFtZXRyaXplZCBvbmUgYW5kIHZp
Y2UgdmVyc2EKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitHaXZlbiB0aGUgdGVzdHMgZmlsZSBzdHJ1Y3R1
cmUgaXM6CisKKzo6CisKKyAgICB0ZXN0cy8KKyAgICAgICAgX19pbml0X18ucHkKKworICAgICAg
ICBjb25mdGVzdC5weQorICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3RzL2NvbmZ0ZXN0LnB5
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShwYXJhbXM9WydvbmUnLCAndHdvJywgJ3RocmVlJ10pCisgICAgICAgICAgICBkZWYgcGFyYW1l
dHJpemVkX3VzZXJuYW1lKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG5v
bl9wYXJhbWV0cml6ZWRfdXNlcm5hbWUocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
ICd1c2VybmFtZScKKworICAgICAgICB0ZXN0X3NvbWV0aGluZy5weQorICAgICAgICAgICAgIyBj
b250ZW50IG9mIHRlc3RzL3Rlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHBhcmFt
ZXRyaXplZF91c2VybmFtZSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAnb3ZlcnJpZGRlbi11
c2VybmFtZScKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bJ29uZScsICd0
d28nLCAndGhyZWUnXSkKKyAgICAgICAgICAgIGRlZiBub25fcGFyYW1ldHJpemVkX3VzZXJuYW1l
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lKHBhcmFtZXRyaXplZF91c2VybmFtZSk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHBhcmFtZXRyaXplZF91c2VybmFtZSA9PSAnb3ZlcnJpZGRlbi11c2Vy
bmFtZScKKworICAgICAgICAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVkX3VzZXJuYW1lKG5vbl9w
YXJhbWV0cml6ZWRfdXNlcm5hbWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub25fcGFyYW1l
dHJpemVkX3VzZXJuYW1lIGluIFsnb25lJywgJ3R3bycsICd0aHJlZSddCisKKyAgICAgICAgdGVz
dF9zb21ldGhpbmdfZWxzZS5weQorICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3RzL3Rlc3Rf
c29tZXRoaW5nX2Vsc2UucHkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lKHBhcmFtZXRy
aXplZF91c2VybmFtZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHBhcmFtZXRyaXplZF91c2Vy
bmFtZSBpbiBbJ29uZScsICd0d28nLCAndGhyZWUnXQorCisgICAgICAgICAgICBkZWYgdGVzdF91
c2VybmFtZShub25fcGFyYW1ldHJpemVkX3VzZXJuYW1lKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgbm9uX3BhcmFtZXRyaXplZF91c2VybmFtZSA9PSAndXNlcm5hbWUnCisKK0luIHRoZSBleGFt
cGxlIGFib3ZlLCBhIHBhcmFtZXRyaXplZCBmaXh0dXJlIGlzIG92ZXJyaWRkZW4gd2l0aCBhIG5v
bi1wYXJhbWV0cml6ZWQgdmVyc2lvbiwgYW5kCithIG5vbi1wYXJhbWV0cml6ZWQgZml4dHVyZSBp
cyBvdmVycmlkZGVuIHdpdGggYSBwYXJhbWV0cml6ZWQgdmVyc2lvbiBmb3IgY2VydGFpbiB0ZXN0
IG1vZHVsZS4KK1RoZSBzYW1lIGFwcGxpZXMgZm9yIHRoZSB0ZXN0IGZvbGRlciBsZXZlbCBvYnZp
b3VzbHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ19jb21wYXJlLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
NTdhMDE0ZDMxODc3NzgyN2NlM2YyYTY1OWJiMDEzZjFiOGZkNWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ19jb21wYXJlLnJzdApAQCAtMCwwICsxLDIxOCBA
QAorOm9ycGhhbjoKKworLi4gX2BmdW5jYXJnY29tcGFyZWA6CisKK3B5dGVzdC0yLjM6IHJlYXNv
bmluZyBmb3IgZml4dHVyZS9mdW5jYXJnIGV2b2x1dGlvbgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqKlRhcmdldCBhdWRp
ZW5jZSoqOiBSZWFkaW5nIHRoaXMgZG9jdW1lbnQgcmVxdWlyZXMgYmFzaWMga25vd2xlZGdlIG9m
IAorcHl0aG9uIHRlc3RpbmcsIHhVbml0IHNldHVwIG1ldGhvZHMgYW5kIHRoZSAocHJldmlvdXMp
IGJhc2ljIHB5dGVzdCAKK2Z1bmNhcmcgbWVjaGFuaXNtLCBzZWUgaHR0cDovL3B5dGVzdC5vcmcv
Mi4yLjQvZnVuY2FyZ3MuaHRtbCAKK0lmIHlvdSBhcmUgbmV3IHRvIHB5dGVzdCwgdGhlbiB5b3Ug
Y2FuIHNpbXBseSBpZ25vcmUgdGhpcworc2VjdGlvbiBhbmQgcmVhZCB0aGUgb3RoZXIgc2VjdGlv
bnMuCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0CisKK1Nob3J0Y29taW5ncyBvZiB0aGUg
cHJldmlvdXMgYGBweXRlc3RfZnVuY2FyZ19fYGAgbWVjaGFuaXNtCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgcHJl
IHB5dGVzdC0yLjMgZnVuY2FyZyBtZWNoYW5pc20gY2FsbHMgYSBmYWN0b3J5IGVhY2ggdGltZSBh
CitmdW5jYXJnIGZvciBhIHRlc3QgZnVuY3Rpb24gaXMgcmVxdWlyZWQuICBJZiBhIGZhY3Rvcnkg
d2FudHMgdG8KK3JlLXVzZSBhIHJlc291cmNlIGFjcm9zcyBkaWZmZXJlbnQgc2NvcGVzLCBpdCBv
ZnRlbiB1c2VkIAordGhlIGBgcmVxdWVzdC5jYWNoZWRfc2V0dXAoKWBgIGhlbHBlciB0byBtYW5h
Z2UgY2FjaGluZyBvZiAKK3Jlc291cmNlcy4gIEhlcmUgaXMgYSBiYXNpYyBleGFtcGxlIGhvdyB3
ZSBjb3VsZCBpbXBsZW1lbnQgCithIHBlci1zZXNzaW9uIERhdGFiYXNlIG9iamVjdDo6CisKKyAg
ICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkgCisgICAgY2xhc3MgRGF0YWJhc2Uob2JqZWN0KToK
KyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgcHJpbnQgKCJkYXRhYmFz
ZSBpbnN0YW5jZSBjcmVhdGVkIikKKyAgICAgICAgZGVmIGRlc3Ryb3koc2VsZik6CisgICAgICAg
ICAgICBwcmludCAoImRhdGFiYXNlIGluc3RhbmNlIGRlc3Ryb3llZCIpCisKKyAgICBkZWYgcHl0
ZXN0X2Z1bmNhcmdfX2RiKHJlcXVlc3QpOgorICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRf
c2V0dXAoc2V0dXA9RGF0YUJhc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVhcmRvd249bGFtYmRhIGRiOiBkYi5kZXN0cm95LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2NvcGU9InNlc3Npb24iKQorCitUaGVyZSBhcmUgc2V2ZXJhbCBsaW1p
dGF0aW9ucyBhbmQgZGlmZmljdWx0aWVzIHdpdGggdGhpcyBhcHByb2FjaDoKKworMS4gU2NvcGlu
ZyBmdW5jYXJnIHJlc291cmNlIGNyZWF0aW9uIGlzIG5vdCBzdHJhaWdodCBmb3J3YXJkLCBpbnN0
ZWFkIG9uZSBtdXN0CisgICB1bmRlcnN0YW5kIHRoZSBpbnRyaWNhdGUgY2FjaGVkX3NldHVwKCkg
bWV0aG9kIG1lY2hhbmljcy4KKworMi4gcGFyYW1ldHJpemluZyB0aGUgImRiIiByZXNvdXJjZSBp
cyBub3Qgc3RyYWlnaHQgZm9yd2FyZDogCisgICB5b3UgbmVlZCB0byBhcHBseSBhICJwYXJhbWV0
cml6ZSIgZGVjb3JhdG9yIG9yIGltcGxlbWVudCBhCisgICA6cHk6ZnVuYzpgfmhvb2tzcGVjLnB5
dGVzdF9nZW5lcmF0ZV90ZXN0c2AgaG9vayAKKyAgIGNhbGxpbmcgOnB5OmZ1bmM6YH5weXRob24u
TWV0YWZ1bmMucGFyYW1ldHJpemVgIHdoaWNoCisgICBwZXJmb3JtcyBwYXJhbWV0cml6YXRpb24g
YXQgdGhlIHBsYWNlcyB3aGVyZSB0aGUgcmVzb3VyY2UgCisgICBpcyB1c2VkLiAgTW9yZW92ZXIs
IHlvdSBuZWVkIHRvIG1vZGlmeSB0aGUgZmFjdG9yeSB0byB1c2UgYW4gCisgICBgYGV4dHJha2V5
YGAgcGFyYW1ldGVyIGNvbnRhaW5pbmcgYGByZXF1ZXN0LnBhcmFtYGAgdG8gdGhlIAorICAgOnB5
OmZ1bmM6YH5weXRob24uUmVxdWVzdC5jYWNoZWRfc2V0dXBgIGNhbGwuCisKKzMuIE11bHRpcGxl
IHBhcmFtZXRyaXplZCBzZXNzaW9uLXNjb3BlZCByZXNvdXJjZXMgd2lsbCBiZSBhY3RpdmUKKyAg
IGF0IHRoZSBzYW1lIHRpbWUsIG1ha2luZyBpdCBoYXJkIGZvciB0aGVtIHRvIGFmZmVjdCBnbG9i
YWwgc3RhdGUKKyAgIG9mIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0LgorCis0LiB0aGVyZSBp
cyBubyB3YXkgaG93IHlvdSBjYW4gbWFrZSB1c2Ugb2YgZnVuY2FyZyBmYWN0b3JpZXMKKyAgIGlu
IHhVbml0IHNldHVwIG1ldGhvZHMuCisKKzUuIEEgbm9uLXBhcmFtZXRyaXplZCBmaXh0dXJlIGZ1
bmN0aW9uIGNhbm5vdCB1c2UgYSBwYXJhbWV0cml6ZWQgCisgICBmdW5jYXJnIHJlc291cmNlIGlm
IGl0IGlzbid0IHN0YXRlZCBpbiB0aGUgdGVzdCBmdW5jdGlvbiBzaWduYXR1cmUuCisKK0FsbCBv
ZiB0aGVzZSBsaW1pdGF0aW9ucyBhcmUgYWRkcmVzc2VkIHdpdGggcHl0ZXN0LTIuMyBhbmQgaXRz
CitpbXByb3ZlZCA6cmVmOmBmaXh0dXJlIG1lY2hhbmlzbSA8Zml4dHVyZT5gLgorCisKK0RpcmVj
dCBzY29waW5nIG9mIGZpeHR1cmUvZnVuY2FyZyBmYWN0b3JpZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0luc3RlYWQgb2YgY2Fs
bGluZyBjYWNoZWRfc2V0dXAoKSB3aXRoIGEgY2FjaGUgc2NvcGUsIHlvdSBjYW4gdXNlIHRoZQor
OnJlZjpgQHB5dGVzdC5maXh0dXJlIDxweXRlc3QuZml4dHVyZT5gIGRlY29yYXRvciBhbmQgZGly
ZWN0bHkgc3RhdGUKK3RoZSBzY29wZTo6CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNl
c3Npb24iKQorICAgIGRlZiBkYihyZXF1ZXN0KToKKyAgICAgICAgIyBmYWN0b3J5IHdpbGwgb25s
eSBiZSBpbnZva2VkIG9uY2UgcGVyIHNlc3Npb24gLSAKKyAgICAgICAgZGIgPSBEYXRhQmFzZSgp
CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGRiLmRlc3Ryb3kpICAjIGRlc3Ryb3kgd2hl
biBzZXNzaW9uIGlzIGZpbmlzaGVkCisgICAgICAgIHJldHVybiBkYgorCitUaGlzIGZhY3Rvcnkg
aW1wbGVtZW50YXRpb24gZG9lcyBub3QgbmVlZCB0byBjYWxsIGBgY2FjaGVkX3NldHVwKClgYCBh
bnltb3JlCitiZWNhdXNlIGl0IHdpbGwgb25seSBiZSBpbnZva2VkIG9uY2UgcGVyIHNlc3Npb24u
ICBNb3Jlb3ZlciwgdGhlIAorYGByZXF1ZXN0LmFkZGZpbmFsaXplcigpYGAgcmVnaXN0ZXJzIGEg
ZmluYWxpemVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkCityZXNvdXJjZSBzY29wZSBvbiB3
aGljaCB0aGUgZmFjdG9yeSBmdW5jdGlvbiBpcyBvcGVyYXRpbmcuCisKKworRGlyZWN0IHBhcmFt
ZXRyaXphdGlvbiBvZiBmdW5jYXJnIHJlc291cmNlIGZhY3RvcmllcyAKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUHJldmlvdXNs
eSwgZnVuY2FyZyBmYWN0b3JpZXMgY291bGQgbm90IGRpcmVjdGx5IGNhdXNlIHBhcmFtZXRyaXph
dGlvbi4KK1lvdSBuZWVkZWQgdG8gc3BlY2lmeSBhIGBgQHBhcmFtZXRyaXplYGAgZGVjb3JhdG9y
IG9uIHlvdXIgdGVzdCBmdW5jdGlvbgorb3IgaW1wbGVtZW50IGEgYGBweXRlc3RfZ2VuZXJhdGVf
dGVzdHNgYCBob29rIHRvIHBlcmZvcm0KK3BhcmFtZXRyaXphdGlvbiwgaS5lLiBjYWxsaW5nIGEg
dGVzdCBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCB2YWx1ZQorc2V0cy4gIHB5dGVzdC0y
LjMgaW50cm9kdWNlcyBhIGRlY29yYXRvciBmb3IgdXNlIG9uIHRoZSBmYWN0b3J5IGl0c2VsZjo6
CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsibXlzcWwiLCAicGciXSkKKyAgICBkZWYg
ZGIocmVxdWVzdCk6CisgICAgICAgIC4uLiAjIHVzZSByZXF1ZXN0LnBhcmFtCisKK0hlcmUgdGhl
IGZhY3Rvcnkgd2lsbCBiZSBpbnZva2VkIHR3aWNlICh3aXRoIHRoZSByZXNwZWN0aXZlICJteXNx
bCIgCithbmQgInBnIiB2YWx1ZXMgc2V0IGFzIGBgcmVxdWVzdC5wYXJhbWBgIGF0dHJpYnV0ZXMp
IGFuZCBhbGwgb2YgCit0aGUgdGVzdHMgcmVxdWlyaW5nICJkYiIgd2lsbCBydW4gdHdpY2UgYXMg
d2VsbC4gIFRoZSAibXlzcWwiIGFuZCAKKyJwZyIgdmFsdWVzIHdpbGwgYWxzbyBiZSB1c2VkIGZv
ciByZXBvcnRpbmcgdGhlIHRlc3QtaW52b2NhdGlvbiB2YXJpYW50cy4KKworVGhpcyBuZXcgd2F5
IG9mIHBhcmFtZXRyaXppbmcgZnVuY2FyZyBmYWN0b3JpZXMgc2hvdWxkIGluIG1hbnkgY2FzZXMK
K2FsbG93IHRvIHJlLXVzZSBhbHJlYWR5IHdyaXR0ZW4gZmFjdG9yaWVzIGJlY2F1c2UgZWZmZWN0
aXZlbHkKK2BgcmVxdWVzdC5wYXJhbWBgIHdhcyBhbHJlYWR5IHVzZWQgd2hlbiB0ZXN0IGZ1bmN0
aW9ucy9jbGFzc2VzIHdlcmUKK3BhcmFtZXRyaXplZCB2aWEKKzpweTpmdW5jOmB+X3B5dGVzdC5w
eXRob24uTWV0YWZ1bmMucGFyYW1ldHJpemUoaW5kaXJlY3Q9VHJ1ZSlgIGNhbGxzLgorCitPZiBj
b3Vyc2UgaXQncyBwZXJmZWN0bHkgZmluZSB0byBjb21iaW5lIHBhcmFtZXRyaXphdGlvbiBhbmQg
c2NvcGluZzo6CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJhbXM9
WyJteXNxbCIsICJwZyJdKQorICAgIGRlZiBkYihyZXF1ZXN0KToKKyAgICAgICAgaWYgcmVxdWVz
dC5wYXJhbSA9PSAibXlzcWwiOgorICAgICAgICAgICAgZGIgPSBNeVNRTCgpCisgICAgICAgIGVs
aWYgcmVxdWVzdC5wYXJhbSA9PSAicGciOgorICAgICAgICAgICAgZGIgPSBQRygpCisgICAgICAg
IHJlcXVlc3QuYWRkZmluYWxpemVyKGRiLmRlc3Ryb3kpICAjIGRlc3Ryb3kgd2hlbiBzZXNzaW9u
IGlzIGZpbmlzaGVkCisgICAgICAgIHJldHVybiBkYgorCitUaGlzIHdvdWxkIGV4ZWN1dGUgYWxs
IHRlc3RzIHJlcXVpcmluZyB0aGUgcGVyLXNlc3Npb24gImRiIiByZXNvdXJjZSB0d2ljZSwKK3Jl
Y2VpdmluZyB0aGUgdmFsdWVzIGNyZWF0ZWQgYnkgdGhlIHR3byByZXNwZWN0aXZlIGludm9jYXRp
b25zIHRvIHRoZQorZmFjdG9yeSBmdW5jdGlvbi4KKworCitObyBgYHB5dGVzdF9mdW5jYXJnX19g
YCBwcmVmaXggd2hlbiB1c2luZyBAZml4dHVyZSBkZWNvcmF0b3IKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hl
biB1c2luZyB0aGUgYGBAZml4dHVyZWBgIGRlY29yYXRvciB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rp
b24KK2Rlbm90ZXMgdGhlIG5hbWUgdW5kZXIgd2hpY2ggdGhlIHJlc291cmNlIGNhbiBiZSBhY2Nl
c3NlZCBhcyBhIGZ1bmN0aW9uCithcmd1bWVudDo6CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUoKQor
ICAgIGRlZiBkYihyZXF1ZXN0KToKKyAgICAgICAgLi4uCisKK1RoZSBuYW1lIHVuZGVyIHdoaWNo
IHRoZSBmdW5jYXJnIHJlc291cmNlIGNhbiBiZSByZXF1ZXN0ZWQgaXMgYGBkYmBgLgorCitZb3Ug
Y2FuIHN0aWxsIHVzZSB0aGUgIm9sZCIgbm9uLWRlY29yYXRvciB3YXkgb2Ygc3BlY2lmeWluZyBm
dW5jYXJnIGZhY3RvcmllcyAKK2FrYTo6CisKKyAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX2RiKHJl
cXVlc3QpOgorICAgICAgICAuLi4KKworCitCdXQgaXQgaXMgdGhlbiBub3QgcG9zc2libGUgdG8g
ZGVmaW5lIHNjb3BpbmcgYW5kIHBhcmFtZXRyaXphdGlvbi4KK0l0IGlzIHRodXMgcmVjb21tZW5k
ZWQgdG8gdXNlIHRoZSBmYWN0b3J5IGRlY29yYXRvci4KKworCitzb2x2aW5nIHBlci1zZXNzaW9u
IHNldHVwIC8gYXV0b3VzZSBmaXh0dXJlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworcHl0ZXN0IGZvciBhIGxvbmcgdGlt
ZSBvZmZlcmVkIGEgcHl0ZXN0X2NvbmZpZ3VyZSBhbmQgYSBweXRlc3Rfc2Vzc2lvbnN0YXJ0Cito
b29rIHdoaWNoIGFyZSBvZnRlbiB1c2VkIHRvIHNldHVwIGdsb2JhbCByZXNvdXJjZXMuICBUaGlz
IHN1ZmZlcnMgZnJvbQorc2V2ZXJhbCBwcm9ibGVtczoKKworMS4gaW4gZGlzdHJpYnV0ZWQgdGVz
dGluZyB0aGUgbWFzdGVyIHByb2Nlc3Mgd291bGQgc2V0dXAgdGVzdCByZXNvdXJjZXMKKyAgIHRo
YXQgYXJlIG5ldmVyIG5lZWRlZCBiZWNhdXNlIGl0IG9ubHkgY28tb3JkaW5hdGVzIHRoZSB0ZXN0
IHJ1bgorICAgYWN0aXZpdGllcyBvZiB0aGUgc2xhdmUgcHJvY2Vzc2VzLiAgCisKKzIuIGlmIHlv
dSBvbmx5IHBlcmZvcm0gYSBjb2xsZWN0aW9uICh3aXRoICItLWNvbGxlY3Qtb25seSIpIAorICAg
cmVzb3VyY2Utc2V0dXAgd2lsbCBzdGlsbCBiZSBleGVjdXRlZC4gIAorCiszLiBJZiBhIHB5dGVz
dF9zZXNzaW9uc3RhcnQgaXMgY29udGFpbmVkIGluIHNvbWUgc3ViZGlyZWN0b3JpZXMKKyAgIGNv
bmZ0ZXN0LnB5IGZpbGUsIGl0IHdpbGwgbm90IGJlIGNhbGxlZC4gIFRoaXMgc3RlbXMgZnJvbSB0
aGUKKyAgIGZhY3QgdGhhdCB0aGlzIGhvb2sgaXMgYWN0dWFsbHkgdXNlZCBmb3IgcmVwb3J0aW5n
LCBpbiBwYXJ0aWN1bGFyCisgICB0aGUgdGVzdC1oZWFkZXIgd2l0aCBwbGF0Zm9ybS9jdXN0b20g
aW5mb3JtYXRpb24uCisKK01vcmVvdmVyLCBpdCB3YXMgbm90IGVhc3kgdG8gZGVmaW5lIGEgc2Nv
cGVkIHNldHVwIGZyb20gcGx1Z2lucyBvcgorY29uZnRlc3QgZmlsZXMgb3RoZXIgdGhhbiB0byBp
bXBsZW1lbnQgYSBgYHB5dGVzdF9ydW50ZXN0X3NldHVwKClgYCBob29rCithbmQgY2FyaW5nIGZv
ciBzY29waW5nL2NhY2hpbmcgeW91cnNlbGYuICBBbmQgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJs
ZQordG8gZG8gdGhpcyB3aXRoIHBhcmFtZXRyaXphdGlvbiBhcyBgYHB5dGVzdF9ydW50ZXN0X3Nl
dHVwKClgYCBpcyBjYWxsZWQKK2R1cmluZyB0ZXN0IGV4ZWN1dGlvbiBhbmQgcGFyYW1ldHJpemF0
aW9uIGhhcHBlbnMgYXQgY29sbGVjdGlvbiB0aW1lLgorCitJdCBmb2xsb3dzIHRoYXQgcHl0ZXN0
X2NvbmZpZ3VyZS9zZXNzaW9uL3J1bnRlc3Rfc2V0dXAgYXJlIG9mdGVuIG5vdAorYXBwcm9wcmlh
dGUgZm9yIGltcGxlbWVudGluZyBjb21tb24gZml4dHVyZSBuZWVkcy4gIFRoZXJlZm9yZSwKK3B5
dGVzdC0yLjMgaW50cm9kdWNlcyA6cmVmOmBhdXRvdXNlIGZpeHR1cmVzYCB3aGljaCBmdWxseQor
aW50ZWdyYXRlIHdpdGggdGhlIGdlbmVyaWMgOnJlZjpgZml4dHVyZSBtZWNoYW5pc20gPGZpeHR1
cmU+YAorYW5kIG9ic29sZXRlIG1hbnkgcHJpb3IgdXNlcyBvZiBweXRlc3QgaG9va3MuCisKK2Z1
bmNhcmdzL2ZpeHR1cmUgZGlzY292ZXJ5IG5vdyBoYXBwZW5zIGF0IGNvbGxlY3Rpb24gdGltZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK1NpbmNlIHB5dGVzdC0yLjMsIGRpc2NvdmVyeSBvZiBmaXh0dXJlL2Z1
bmNhcmcgZmFjdG9yaWVzIGFyZSB0YWtlbiBjYXJlIG9mCithdCBjb2xsZWN0aW9uIHRpbWUuICBU
aGlzIGlzIG1vcmUgZWZmaWNpZW50IGVzcGVjaWFsbHkgZm9yIGxhcmdlIHRlc3Qgc3VpdGVzLgor
TW9yZW92ZXIsIGEgY2FsbCB0byAicHl0ZXN0IC0tY29sbGVjdC1vbmx5IiBzaG91bGQgYmUgYWJs
ZSB0byBpbiB0aGUgZnV0dXJlCitzaG93IGEgbG90IG9mIHNldHVwLWluZm9ybWF0aW9uIGFuZCB0
aHVzIHByZXNlbnRzIGEgbmljZSBtZXRob2QgdG8gZ2V0IGFuCitvdmVydmlldyBvZiBmaXh0dXJl
IG1hbmFnZW1lbnQgaW4geW91ciBwcm9qZWN0LgorCisuLiBfYGNvbXBhdGliaWxpdHkgbm90ZXNg
OgorCisuLiBfYGZ1bmNhcmdzY29tcGF0YDoKKworQ29uY2x1c2lvbiBhbmQgY29tcGF0aWJpbGl0
eSBub3RlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyoqZnVuY2FyZ3MqKiB3ZXJlIG9yaWdpbmFsbHkgaW50cm9kdWNlZCB0byBw
eXRlc3QtMi4wLiAgSW4gcHl0ZXN0LTIuMyAKK3RoZSBtZWNoYW5pc20gd2FzIGV4dGVuZGVkIGFu
ZCByZWZpbmVkIGFuZCBpcyBub3cgZGVzY3JpYmVkIGFzCitmaXh0dXJlczoKKworKiBwcmV2aW91
c2x5IGZ1bmNhcmcgZmFjdG9yaWVzIHdlcmUgc3BlY2lmaWVkIHdpdGggYSBzcGVjaWFsIAorICBg
YHB5dGVzdF9mdW5jYXJnX19OQU1FYGAgcHJlZml4IGluc3RlYWQgb2YgdXNpbmcgdGhlIAorICBg
YEBweXRlc3QuZml4dHVyZWBgIGRlY29yYXRvci4KKworKiBGYWN0b3JpZXMgcmVjZWl2ZWQgYSBg
YHJlcXVlc3RgYCBvYmplY3Qgd2hpY2ggbWFuYWdlZCBjYWNoaW5nIHRocm91Z2gKKyAgYGByZXF1
ZXN0LmNhY2hlZF9zZXR1cCgpYGAgY2FsbHMgYW5kIGFsbG93ZWQgdXNpbmcgb3RoZXIgZnVuY2Fy
Z3MgdmlhIAorICBgYHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKClgYCBjYWxscy4gIFRoZXNlIGlu
dHJpY2F0ZSBBUElzIG1hZGUgaXQgaGFyZCAKKyAgdG8gZG8gcHJvcGVyIHBhcmFtZXRyaXphdGlv
biBhbmQgaW1wbGVtZW50IHJlc291cmNlIGNhY2hpbmcuIFRoZQorICBuZXcgOnB5OmZ1bmM6YHB5
dGVzdC5maXh0dXJlYCBkZWNvcmF0b3IgYWxsb3dzIHRvIGRlY2xhcmUgdGhlIHNjb3BlCisgIGFu
ZCBsZXQgcHl0ZXN0IGZpZ3VyZSB0aGluZ3Mgb3V0IGZvciB5b3UuCisKKyogaWYgeW91IHVzZWQg
cGFyYW1ldHJpemF0aW9uIGFuZCBmdW5jYXJnIGZhY3RvcmllcyB3aGljaCBtYWRlIHVzZSBvZgor
ICBgYHJlcXVlc3QuY2FjaGVkX3NldHVwKClgYCBpdCBpcyByZWNvbW1lbmRlZCB0byBpbnZlc3Qg
YSBmZXcgbWludXRlcworICBhbmQgc2ltcGxpZnkgeW91ciBmaXh0dXJlIGZ1bmN0aW9uIGNvZGUg
dG8gdXNlIHRoZSA6cmVmOmBAcHl0ZXN0LmZpeHR1cmVgCisgIGRlY29yYXRvciBpbnN0ZWFkLiAg
VGhpcyB3aWxsIGFsc28gYWxsb3cgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgCisgIHRoZSBhdXRvbWF0
aWMgcGVyLXJlc291cmNlIGdyb3VwaW5nIG9mIHRlc3RzLgorCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9mdW5jYXJncy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ3Mu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJjMmMwNDMwMjM5MDNiY2M0YjI2OTk3NDAwODRiMGU5YzE1MjQ3ZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ3MucnN0CkBAIC0w
LDAgKzEsMTQgQEAKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorZnVuY2FyZ3M6IHJlc291cmNlIGluamVjdGlvbiBhbmQgcGFyYW1ldHJp
emF0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK3B5dGVzdC0yLjMgaW50cm9kdWNlcyBtYWpvciByZWZpbmVtZW50cyB0byBmaXh0
dXJlIG1hbmFnZW1lbnQKK29mIHdoaWNoIHRoZSBmdW5jYXJnIG1lY2hhbmlzbSBpbnRyb2R1Y2Vk
IHdpdGggcHl0ZXN0LTIuMCByZW1haW5zCithIGNvcmUgcGFydC4gIFRoZSBkb2N1bWVudGF0aW9u
IGhhcyBiZWVuIHJlZmFjdG9yZWQgYXMgd2VsbAorYW5kIHlvdSBjYW4gcmVhZCBvbiBoZXJlOgor
CistIDpyZWY6YGZpeHR1cmVzYAorLSA6cmVmOmBwYXJhbWV0cml6ZWAKKy0gOnJlZjpgZnVuY2Fy
Z2NvbXBhcmVgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nZW5hcGkucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZ2VuYXBpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlZGU0NGZhMmRlZTczMGJl
ZTVlMjc5MDk0ZGNkN2EzNzZjMWRmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZ2VuYXBpLnB5CkBAIC0wLDAgKzEsNDEgQEAKK2ltcG9ydCB0ZXh0d3JhcAoraW1wb3J0
IGluc3BlY3QKKworY2xhc3MgV3JpdGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNsc25hbWUpOgorICAgICAgICBzZWxmLmNsc25hbWUgPSBjbHNuYW1lCisKKyAgICBkZWYgX19l
bnRlcl9fKHNlbGYpOgorICAgICAgICBzZWxmLmZpbGUgPSBvcGVuKCIlcy5hcGkiICUgc2VsZi5j
bHNuYW1lLCAidyIpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2Vs
ZiwgKmFyZ3MpOgorICAgICAgICBzZWxmLmZpbGUuY2xvc2UoKQorICAgICAgICBwcmludCAid3Jv
dGUiLCBzZWxmLmZpbGUubmFtZQorCisgICAgZGVmIGxpbmUoc2VsZiwgbGluZSk6CisgICAgICAg
IHNlbGYuZmlsZS53cml0ZShsaW5lKyJcbiIpCisKKyAgICBkZWYgZG9jbWV0aG9kKHNlbGYsIG1l
dGhvZCk6CisgICAgICAgIGRvYyA9ICIgIi5qb2luKG1ldGhvZC5fX2RvY19fLnNwbGl0KCkpCisg
ICAgICAgIGluZGVudCA9ICIgICAgICAgICAiCisgICAgICAgIHcgPSB0ZXh0d3JhcC5UZXh0V3Jh
cHBlcihpbml0aWFsX2luZGVudD1pbmRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdWJzZXF1ZW50X2luZGVudD1pbmRlbnQpCisKKyAgICAgICAgc3BlYyA9IGluc3BlY3Qu
Z2V0YXJnc3BlYyhtZXRob2QpCisgICAgICAgIGRlbCBzcGVjLmFyZ3NbMF0KKyAgICAgICAgc2Vs
Zi5saW5lKCIuLiBweTptZXRob2Q6OiAiICsgbWV0aG9kLl9fbmFtZV9fICsKKyAgICAgICAgICAg
ICAgICAgIGluc3BlY3QuZm9ybWF0YXJnc3BlYygqc3BlYykpCisgICAgICAgIHNlbGYubGluZSgi
IikKKyAgICAgICAgc2VsZi5saW5lKHcuZmlsbChkb2MpKQorICAgICAgICBzZWxmLmxpbmUoIiIp
CisKK2RlZiBweXRlc3RfZnVuY2FyZ19fYShyZXF1ZXN0KToKKyAgICB3aXRoIFdyaXRlcigicmVx
dWVzdCIpIGFzIHdyaXRlcjoKKyAgICAgICAgd3JpdGVyLmRvY21ldGhvZChyZXF1ZXN0LmdldGZp
eHR1cmV2YWx1ZSkKKyAgICAgICAgd3JpdGVyLmRvY21ldGhvZChyZXF1ZXN0LmNhY2hlZF9zZXR1
cCkKKyAgICAgICAgd3JpdGVyLmRvY21ldGhvZChyZXF1ZXN0LmFkZGZpbmFsaXplcikKKyAgICAg
ICAgd3JpdGVyLmRvY21ldGhvZChyZXF1ZXN0LmFwcGx5bWFya2VyKQorCitkZWYgdGVzdF9oZWxs
byhhKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ2V0dGluZy1z
dGFydGVkLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nZXR0aW5nLXN0YXJ0ZWQucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY0YjAxMDgyNjJkOGFkZWM0MDk3NmJkNmVmODhjY2RjNGEwNGY1NTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ2V0dGluZy1zdGFydGVkLnJzdApAQCAtMCww
ICsxLDE5OCBAQAorSW5zdGFsbGF0aW9uIGFuZCBHZXR0aW5nIFN0YXJ0ZWQKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKyoqUHl0aG9ucyoqOiBQeXRob24gMi43LCAzLjQs
IDMuNSwgMy42LCBKeXRob24sIFB5UHktMi4zCisKKyoqUGxhdGZvcm1zKio6IFVuaXgvUG9zaXgg
YW5kIFdpbmRvd3MKKworKipQeVBJIHBhY2thZ2UgbmFtZSoqOiBgcHl0ZXN0IDxodHRwOi8vcHlw
aS5weXRob24ub3JnL3B5cGkvcHl0ZXN0PmBfCisKKyoqZGVwZW5kZW5jaWVzKio6IGBweSA8aHR0
cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5PmBfLAorYGNvbG9yYW1hIChXaW5kb3dzKSA8aHR0
cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2NvbG9yYW1hPmBfLAorCisqKmRvY3VtZW50YXRpb24g
YXMgUERGKio6IGBkb3dubG9hZCBsYXRlc3QgPGh0dHBzOi8vbWVkaWEucmVhZHRoZWRvY3Mub3Jn
L3BkZi9weXRlc3QvbGF0ZXN0L3B5dGVzdC5wZGY+YF8KKworLi4gX2BnZXRzdGFydGVkYDoKKy4u
IF9pbnN0YWxsYXRpb246CisKK0luc3RhbGxhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitJbnN0YWxsYXRpb246OgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0CisKK1RvIGNoZWNrIHlvdXIgaW5zdGFsbGF0aW9uIGhhcyBpbnN0YWxsZWQgdGhlIGNv
cnJlY3QgdmVyc2lvbjo6CisKKyAgICAkIHB5dGVzdCAtLXZlcnNpb24KKyAgICBUaGlzIGlzIHB5
dGVzdCB2ZXJzaW9uIDMueC55LCBpbXBvcnRlZCBmcm9tICRQWVRIT05fUFJFRklYL2xpYi9weXRo
b24zLjUvc2l0ZS1wYWNrYWdlcy9weXRlc3QucHkKKworLi4gX2BzaW1wbGV0ZXN0YDoKKworT3Vy
IGZpcnN0IHRlc3QgcnVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK0xldCdzIGNyZWF0ZSBhIGZpcnN0IHRlc3QgZmlsZSB3aXRo
IGEgc2ltcGxlIHRlc3QgZnVuY3Rpb246OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc2FtcGxl
LnB5CisgICAgZGVmIGZ1bmMoeCk6CisgICAgICAgIHJldHVybiB4ICsgMQorCisgICAgZGVmIHRl
c3RfYW5zd2VyKCk6CisgICAgICAgIGFzc2VydCBmdW5jKDMpID09IDUKKworVGhhdCdzIGl0LiBZ
b3UgY2FuIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24gbm93OjoKKworICAgICQgcHl0ZXN0Cisg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngu
eSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMSBpdGVtCisgICAgCisgICAg
dGVzdF9zYW1wbGUucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hbnN3ZXIgX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfYW5zd2VyKCk6CisgICAg
PiAgICAgICBhc3NlcnQgZnVuYygzKSA9PSA1CisgICAgRSAgICAgICBhc3NlcnQgNCA9PSA1Cisg
ICAgRSAgICAgICAgKyAgd2hlcmUgNCA9IGZ1bmMoMykKKyAgICAKKyAgICB0ZXN0X3NhbXBsZS5w
eTo1OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMSBmYWls
ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2UgZ290IGEg
ZmFpbHVyZSByZXBvcnQgYmVjYXVzZSBvdXIgbGl0dGxlIGBgZnVuYygzKWBgIGNhbGwgZGlkIG5v
dCByZXR1cm4gYGA1YGAuCisKKy4uIG5vdGU6OgorCisgICAgWW91IGNhbiBzaW1wbHkgdXNlIHRo
ZSBgYGFzc2VydGBgIHN0YXRlbWVudCBmb3IgYXNzZXJ0aW5nIHRlc3QKKyAgICBleHBlY3RhdGlv
bnMuICBweXRlc3QncyA6cmVmOmBhc3NlcnQgaW50cm9zcGVjdGlvbmAgd2lsbCBpbnRlbGxpZ2Vu
dGx5CisgICAgcmVwb3J0IGludGVybWVkaWF0ZSB2YWx1ZXMgb2YgdGhlIGFzc2VydCBleHByZXNz
aW9uIGZyZWVpbmcKKyAgICB5b3UgZnJvbSB0aGUgbmVlZCB0byBsZWFybiB0aGUgbWFueSBuYW1l
cyBvZiBgSlVuaXQgbGVnYWN5IG1ldGhvZHNgXy4KKworLi4gX2BKVW5pdCBsZWdhY3kgbWV0aG9k
c2A6IGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS91bml0dGVzdC5odG1sI3Rlc3QtY2Fz
ZXMKKworLi4gX2Bhc3NlcnQgc3RhdGVtZW50YDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy9yZWZl
cmVuY2Uvc2ltcGxlX3N0bXRzLmh0bWwjdGhlLWFzc2VydC1zdGF0ZW1lbnQKKworUnVubmluZyBt
dWx0aXBsZSB0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitgYHB5dGVzdGBgIHdpbGwgcnVuIGFsbCBmaWxlcyBpbiB0aGUg
Y3VycmVudCBkaXJlY3RvcnkgYW5kIGl0cyBzdWJkaXJlY3RvcmllcyBvZiB0aGUgZm9ybSB0ZXN0
XyoucHkgb3IgXCpfdGVzdC5weS4gTW9yZSBnZW5lcmFsbHksIGl0IGZvbGxvd3MgOnJlZjpgc3Rh
bmRhcmQgdGVzdCBkaXNjb3ZlcnkgcnVsZXMgPHRlc3QgZGlzY292ZXJ5PmAuCisKKworQXNzZXJ0
aW5nIHRoYXQgYSBjZXJ0YWluIGV4Y2VwdGlvbiBpcyByYWlzZWQKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSB3
YW50IHRvIGFzc2VydCB0aGF0IHNvbWUgY29kZSByYWlzZXMgYW4gZXhjZXB0aW9uIHlvdSBjYW4K
K3VzZSB0aGUgYGByYWlzZXNgYCBoZWxwZXI6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc3lz
ZXhpdC5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBkZWYgZigpOgorICAgICAgICByYWlzZSBT
eXN0ZW1FeGl0KDEpCisKKyAgICBkZWYgdGVzdF9teXRlc3QoKToKKyAgICAgICAgd2l0aCBweXRl
c3QucmFpc2VzKFN5c3RlbUV4aXQpOgorICAgICAgICAgICAgZigpCisKK1J1bm5pbmcgaXQgd2l0
aCwgdGhpcyB0aW1lIGluICJxdWlldCIgcmVwb3J0aW5nIG1vZGU6OgorCisgICAgJCBweXRlc3Qg
LXEgdGVzdF9zeXNleGl0LnB5CisgICAgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgMSBwYXNzZWQg
aW4gMC4xMiBzZWNvbmRzCisKK0dyb3VwaW5nIG11bHRpcGxlIHRlc3RzIGluIGEgY2xhc3MKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK09uY2UgeW91IHN0YXJ0IHRvIGhhdmUgbW9yZSB0aGFuIGEgZmV3IHRlc3RzIGl0IG9m
dGVuIG1ha2VzIHNlbnNlCit0byBncm91cCB0ZXN0cyBsb2dpY2FsbHksIGluIGNsYXNzZXMgYW5k
IG1vZHVsZXMuICBMZXQncyB3cml0ZSBhIGNsYXNzCitjb250YWluaW5nIHR3byB0ZXN0czo6CisK
KyAgICAjIGNvbnRlbnQgb2YgdGVzdF9jbGFzcy5weQorICAgIGNsYXNzIFRlc3RDbGFzcyhvYmpl
Y3QpOgorICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZik6CisgICAgICAgICAgICB4ID0gInRoaXMi
CisgICAgICAgICAgICBhc3NlcnQgJ2gnIGluIHgKKworICAgICAgICBkZWYgdGVzdF90d28oc2Vs
Zik6CisgICAgICAgICAgICB4ID0gImhlbGxvIgorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIo
eCwgJ2NoZWNrJykKKworVGhlIHR3byB0ZXN0cyBhcmUgZm91bmQgYmVjYXVzZSBvZiB0aGUgc3Rh
bmRhcmQgOnJlZjpgdGVzdCBkaXNjb3ZlcnlgLgorVGhlcmUgaXMgbm8gbmVlZCB0byBzdWJjbGFz
cyBhbnl0aGluZy4gIFdlIGNhbiBzaW1wbHkKK3J1biB0aGUgbW9kdWxlIGJ5IHBhc3NpbmcgaXRz
IGZpbGVuYW1lOjoKKworICAgICQgcHl0ZXN0IC1xIHRlc3RfY2xhc3MucHkKKyAgICAuRiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVS
RVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19f
X19fX19fX19fX19fXyBUZXN0Q2xhc3MudGVzdF90d28gX19fX19fX19fX19fX19fX19fX19fX19f
X19fXworICAgIAorICAgIHNlbGYgPSA8dGVzdF9jbGFzcy5UZXN0Q2xhc3Mgb2JqZWN0IGF0IDB4
ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAg
IHggPSAiaGVsbG8iCisgICAgPiAgICAgICBhc3NlcnQgaGFzYXR0cih4LCAnY2hlY2snKQorICAg
IEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCBGYWxzZQorICAgIEUgICAgICAgICsgIHdo
ZXJlIEZhbHNlID0gaGFzYXR0cignaGVsbG8nLCAnY2hlY2snKQorICAgIAorICAgIHRlc3RfY2xh
c3MucHk6ODogQXNzZXJ0aW9uRXJyb3IKKyAgICAxIGZhaWxlZCwgMSBwYXNzZWQgaW4gMC4xMiBz
ZWNvbmRzCisKK1RoZSBmaXJzdCB0ZXN0IHBhc3NlZCwgdGhlIHNlY29uZCBmYWlsZWQuIEFnYWlu
IHdlIGNhbiBlYXNpbHkgc2VlCit0aGUgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBh
c3NlcnRpb24sIGhlbHBpbmcgdXMgdG8KK3VuZGVyc3RhbmQgdGhlIHJlYXNvbiBmb3IgdGhlIGZh
aWx1cmUuCisKK0dvaW5nIGZ1bmN0aW9uYWw6IHJlcXVlc3RpbmcgYSB1bmlxdWUgdGVtcG9yYXJ5
IGRpcmVjdG9yeQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworRm9yIGZ1bmN0aW9uYWwgdGVzdHMgb25lIG9mdGVuIG5lZWRz
IHRvIGNyZWF0ZSBzb21lIGZpbGVzCithbmQgcGFzcyB0aGVtIHRvIGFwcGxpY2F0aW9uIG9iamVj
dHMuICBweXRlc3QgcHJvdmlkZXMKKzpyZWY6YGJ1aWx0aW5maXh0dXJlc2Agd2hpY2ggYWxsb3cg
dG8gcmVxdWVzdCBhcmJpdHJhcnkKK3Jlc291cmNlcywgZm9yIGV4YW1wbGUgYSB1bmlxdWUgdGVt
cG9yYXJ5IGRpcmVjdG9yeTo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF90bXBkaXIucHkKKyAg
ICBkZWYgdGVzdF9uZWVkc2ZpbGVzKHRtcGRpcik6CisgICAgICAgIHByaW50ICh0bXBkaXIpCisg
ICAgICAgIGFzc2VydCAwCisKK1dlIGxpc3QgdGhlIG5hbWUgYGB0bXBkaXJgYCBpbiB0aGUgdGVz
dCBmdW5jdGlvbiBzaWduYXR1cmUgYW5kCitgYHB5dGVzdGBgIHdpbGwgbG9va3VwIGFuZCBjYWxs
IGEgZml4dHVyZSBmYWN0b3J5IHRvIGNyZWF0ZSB0aGUgcmVzb3VyY2UKK2JlZm9yZSBwZXJmb3Jt
aW5nIHRoZSB0ZXN0IGZ1bmN0aW9uIGNhbGwuICBMZXQncyBqdXN0IHJ1biBpdDo6CisKKyAgICAk
IHB5dGVzdCAtcSB0ZXN0X3RtcGRpci5weQorICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0
X25lZWRzZmlsZXMgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgdG1w
ZGlyID0gbG9jYWwoJ1BZVEVTVF9UTVBESVIvdGVzdF9uZWVkc2ZpbGVzMCcpCisgICAgCisgICAg
ICAgIGRlZiB0ZXN0X25lZWRzZmlsZXModG1wZGlyKToKKyAgICAgICAgICAgIHByaW50ICh0bXBk
aXIpCisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAg
ICB0ZXN0X3RtcGRpci5weTozOiBBc3NlcnRpb25FcnJvcgorICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICBQWVRFU1RfVE1QRElSL3Rlc3RfbmVlZHNmaWxlczAKKyAgICAxIGZhaWxlZCBpbiAw
LjEyIHNlY29uZHMKKworQmVmb3JlIHRoZSB0ZXN0IHJ1bnMsIGEgdW5pcXVlLXBlci10ZXN0LWlu
dm9jYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeQord2FzIGNyZWF0ZWQuICBNb3JlIGluZm8gYXQg
OnJlZjpgdG1wZGlyIGhhbmRsaW5nYC4KKworWW91IGNhbiBmaW5kIG91dCB3aGF0IGtpbmQgb2Yg
YnVpbHRpbiA6cmVmOmBmaXh0dXJlc2AgZXhpc3QgYnkgdHlwaW5nOjoKKworICAgIHB5dGVzdCAt
LWZpeHR1cmVzICAgIyBzaG93cyBidWlsdGluIGFuZCBjdXN0b20gZml4dHVyZXMKKworV2hlcmUg
dG8gZ28gbmV4dAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitIZXJl
IGFyZSBhIGZldyBzdWdnZXN0aW9ucyB3aGVyZSB0byBnbyBuZXh0OgorCisqIDpyZWY6YGNtZGxp
bmVgIGZvciBjb21tYW5kIGxpbmUgaW52b2NhdGlvbiBleGFtcGxlcworKiA6cmVmOmBnb29kIHBy
YWN0aWNlcyA8Z29vZHByYWN0aWNlcz5gIGZvciB2aXJ0dWFsZW52LCB0ZXN0IGxheW91dAorKiA6
cmVmOmBleGlzdGluZ3Rlc3RzdWl0ZWAgZm9yIHdvcmtpbmcgd2l0aCBwcmUtZXhpc3RpbmcgdGVz
dHMKKyogOnJlZjpgZml4dHVyZXNgIGZvciBwcm92aWRpbmcgYSBmdW5jdGlvbmFsIGJhc2VsaW5l
IHRvIHlvdXIgdGVzdHMKKyogOnJlZjpgcGx1Z2luc2AgbWFuYWdpbmcgYW5kIHdyaXRpbmcgcGx1
Z2lucworCisuLiBpbmNsdWRlOjogbGlua3MuaW5jCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZ29vZHByYWN0aWNlcy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ29vZHByYWN0aWNl
cy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTZmZGQyNGMzOTI3MjU5ODIxZDRiN2M0NDc1YmJjOTk3NGE3NjVh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nb29kcHJhY3RpY2VzLnJz
dApAQCAtMCwwICsxLDI5OSBAQAorLi4gaGlnaGxpZ2h0bGFuZzo6IHB5dGhvbgorLi4gX2Bnb29k
cHJhY3RpY2VzYDoKKworR29vZCBJbnRlZ3JhdGlvbiBQcmFjdGljZXMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCisuLiBfYHRlc3QgZGlzY292
ZXJ5YDoKKy4uIF9gUHl0aG9uIHRlc3QgZGlzY292ZXJ5YDoKKworQ29udmVudGlvbnMgZm9yIFB5
dGhvbiB0ZXN0IGRpc2NvdmVyeQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitgYHB5dGVzdGBgIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBzdGFu
ZGFyZCB0ZXN0IGRpc2NvdmVyeToKKworKiBJZiBubyBhcmd1bWVudHMgYXJlIHNwZWNpZmllZCB0
aGVuIGNvbGxlY3Rpb24gc3RhcnRzIGZyb20gOmNvbmZ2YWw6YHRlc3RwYXRoc2AKKyAgKGlmIGNv
bmZpZ3VyZWQpIG9yIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gQWx0ZXJuYXRpdmVseSwgY29tbWFu
ZCBsaW5lIGFyZ3VtZW50cworICBjYW4gYmUgdXNlZCBpbiBhbnkgY29tYmluYXRpb24gb2YgZGly
ZWN0b3JpZXMsIGZpbGUgbmFtZXMgb3Igbm9kZSBpZHMuCisqIFJlY3Vyc2UgaW50byBkaXJlY3Rv
cmllcywgdW5sZXNzIHRoZXkgbWF0Y2ggOmNvbmZ2YWw6YG5vcmVjdXJzZWRpcnNgLgorKiBJbiB0
aG9zZSBkaXJlY3Rvcmllcywgc2VhcmNoIGZvciBgYHRlc3RfKi5weWBgIG9yIGBgKl90ZXN0LnB5
YGAgZmlsZXMsIGltcG9ydGVkIGJ5IHRoZWlyIGB0ZXN0IHBhY2thZ2UgbmFtZWBfLgorKiBGcm9t
IHRob3NlIGZpbGVzLCBjb2xsZWN0IHRlc3QgaXRlbXM6CisKKyAgKiBgYHRlc3RfYGAgcHJlZml4
ZWQgdGVzdCBmdW5jdGlvbnMgb3IgbWV0aG9kcyBvdXRzaWRlIG9mIGNsYXNzCisgICogYGB0ZXN0
X2BgIHByZWZpeGVkIHRlc3QgZnVuY3Rpb25zIG9yIG1ldGhvZHMgaW5zaWRlIGBgVGVzdGBgIHBy
ZWZpeGVkIHRlc3QgY2xhc3NlcyAod2l0aG91dCBhbiBgYF9faW5pdF9fYGAgbWV0aG9kKQorCitG
b3IgZXhhbXBsZXMgb2YgaG93IHRvIGN1c3RvbWl6ZSB5b3VyIHRlc3QgZGlzY292ZXJ5IDpkb2M6
YGV4YW1wbGUvcHl0aG9uY29sbGVjdGlvbmAuCisKK1dpdGhpbiBQeXRob24gbW9kdWxlcywgYGBw
eXRlc3RgYCBhbHNvIGRpc2NvdmVycyB0ZXN0cyB1c2luZyB0aGUgc3RhbmRhcmQKKzpyZWY6YHVu
aXR0ZXN0LlRlc3RDYXNlIDx1bml0dGVzdC5UZXN0Q2FzZT5gIHN1YmNsYXNzaW5nIHRlY2huaXF1
ZS4KKworCitDaG9vc2luZyBhIHRlc3QgbGF5b3V0IC8gaW1wb3J0IHJ1bGVzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2BgcHl0ZXN0YGAgc3VwcG9ydHMgdHdvIGNv
bW1vbiB0ZXN0IGxheW91dHM6CisKK1Rlc3RzIG91dHNpZGUgYXBwbGljYXRpb24gY29kZQorXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1B1dHRpbmcgdGVzdHMgaW50byBhbiBleHRy
YSBkaXJlY3Rvcnkgb3V0c2lkZSB5b3VyIGFjdHVhbCBhcHBsaWNhdGlvbiBjb2RlCittaWdodCBi
ZSB1c2VmdWwgaWYgeW91IGhhdmUgbWFueSBmdW5jdGlvbmFsIHRlc3RzIG9yIGZvciBvdGhlciBy
ZWFzb25zIHdhbnQKK3RvIGtlZXAgdGVzdHMgc2VwYXJhdGUgZnJvbSBhY3R1YWwgYXBwbGljYXRp
b24gY29kZSAob2Z0ZW4gYSBnb29kIGlkZWEpOjoKKworICAgIHNldHVwLnB5CisgICAgbXlwa2cv
CisgICAgICAgIF9faW5pdF9fLnB5CisgICAgICAgIGFwcC5weQorICAgICAgICB2aWV3LnB5Cisg
ICAgdGVzdHMvCisgICAgICAgIHRlc3RfYXBwLnB5CisgICAgICAgIHRlc3Rfdmlldy5weQorICAg
ICAgICAuLi4KKworVGhpcyB3YXkgeW91ciB0ZXN0cyBjYW4gcnVuIGVhc2lseSBhZ2FpbnN0IGFu
IGluc3RhbGxlZCB2ZXJzaW9uCitvZiBgYG15cGtnYGAuCisKK05vdGUgdGhhdCB1c2luZyB0aGlz
IHNjaGVtZSB5b3VyIHRlc3QgZmlsZXMgbXVzdCBoYXZlICoqdW5pcXVlIG5hbWVzKiosIGJlY2F1
c2UKK2BgcHl0ZXN0YGAgd2lsbCBpbXBvcnQgdGhlbSBhcyAqdG9wLWxldmVsKiBtb2R1bGVzIHNp
bmNlIHRoZXJlIGFyZSBubyBwYWNrYWdlcwordG8gZGVyaXZlIGEgZnVsbCBwYWNrYWdlIG5hbWUg
ZnJvbS4gSW4gb3RoZXIgd29yZHMsIHRoZSB0ZXN0IGZpbGVzIGluIHRoZSBleGFtcGxlIGFib3Zl
IHdpbGwKK2JlIGltcG9ydGVkIGFzIGBgdGVzdF9hcHBgYCBhbmQgYGB0ZXN0X3ZpZXdgYCB0b3At
bGV2ZWwgbW9kdWxlcyBieSBhZGRpbmcgYGB0ZXN0cy9gYCB0bworYGBzeXMucGF0aGBgLgorCitJ
ZiB5b3UgbmVlZCB0byBoYXZlIHRlc3QgbW9kdWxlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHlvdSBt
aWdodCBhZGQgYGBfX2luaXRfXy5weWBgIGZpbGVzIHRvIHlvdXIKK2BgdGVzdHNgYCBmb2xkZXIg
YW5kIHN1YmZvbGRlcnMsIGNoYW5naW5nIHRoZW0gdG8gcGFja2FnZXM6OgorCisgICAgc2V0dXAu
cHkKKyAgICBteXBrZy8KKyAgICAgICAgLi4uCisgICAgdGVzdHMvCisgICAgICAgIF9faW5pdF9f
LnB5CisgICAgICAgIGZvby8KKyAgICAgICAgICAgIF9faW5pdF9fLnB5CisgICAgICAgICAgICB0
ZXN0X3ZpZXcucHkKKyAgICAgICAgYmFyLworICAgICAgICAgICAgX19pbml0X18ucHkKKyAgICAg
ICAgICAgIHRlc3Rfdmlldy5weQorCitOb3cgcHl0ZXN0IHdpbGwgbG9hZCB0aGUgbW9kdWxlcyBh
cyBgYHRlc3RzLmZvby50ZXN0X3ZpZXdgYCBhbmQgYGB0ZXN0cy5iYXIudGVzdF92aWV3YGAsIGFs
bG93aW5nCit5b3UgdG8gaGF2ZSBtb2R1bGVzIHdpdGggdGhlIHNhbWUgbmFtZS4gQnV0IG5vdyB0
aGlzIGludHJvZHVjZXMgYSBzdWJ0bGUgcHJvYmxlbTogaW4gb3JkZXIgdG8gbG9hZAordGhlIHRl
c3QgbW9kdWxlcyBmcm9tIHRoZSBgYHRlc3RzYGAgZGlyZWN0b3J5LCBweXRlc3QgcHJlcGVuZHMg
dGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnkgdG8KK2Bgc3lzLnBhdGhgYCwgd2hpY2ggYWRkcyB0
aGUgc2lkZS1lZmZlY3QgdGhhdCBub3cgYGBteXBrZ2BgIGlzIGFsc28gaW1wb3J0YWJsZS4KK1Ro
aXMgaXMgcHJvYmxlbWF0aWMgaWYgeW91IGFyZSB1c2luZyBhIHRvb2wgbGlrZSBgdG94YF8gdG8g
dGVzdCB5b3VyIHBhY2thZ2UgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LAorYmVjYXVzZSB5b3Ug
d2FudCB0byB0ZXN0IHRoZSAqaW5zdGFsbGVkKiB2ZXJzaW9uIG9mIHlvdXIgcGFja2FnZSwgbm90
IHRoZSBsb2NhbCBjb2RlIGZyb20gdGhlIHJlcG9zaXRvcnkuCisKK0luIHRoaXMgc2l0dWF0aW9u
LCBpdCBpcyAqKnN0cm9uZ2x5Kiogc3VnZ2VzdGVkIHRvIHVzZSBhIGBgc3JjYGAgbGF5b3V0IHdo
ZXJlIGFwcGxpY2F0aW9uIHJvb3QgcGFja2FnZSByZXNpZGVzIGluIGEKK3N1Yi1kaXJlY3Rvcnkg
b2YgeW91ciByb290OjoKKworICAgIHNldHVwLnB5CisgICAgc3JjLworICAgICAgICBteXBrZy8K
KyAgICAgICAgICAgIF9faW5pdF9fLnB5CisgICAgICAgICAgICBhcHAucHkKKyAgICAgICAgICAg
IHZpZXcucHkKKyAgICB0ZXN0cy8KKyAgICAgICAgX19pbml0X18ucHkKKyAgICAgICAgZm9vLwor
ICAgICAgICAgICAgX19pbml0X18ucHkKKyAgICAgICAgICAgIHRlc3Rfdmlldy5weQorICAgICAg
ICBiYXIvCisgICAgICAgICAgICBfX2luaXRfXy5weQorICAgICAgICAgICAgdGVzdF92aWV3LnB5
CisKKworVGhpcyBsYXlvdXQgcHJldmVudHMgYSBsb3Qgb2YgY29tbW9uIHBpdGZhbGxzIGFuZCBo
YXMgbWFueSBiZW5lZml0cywgd2hpY2ggYXJlIGJldHRlciBleHBsYWluZWQgaW4gdGhpcyBleGNl
bGxlbnQKK2BibG9nIHBvc3QgYnkgSW9uZWwgQ3Jpc3RpYW4gTcSDcmllyJkgPGh0dHBzOi8vYmxv
Zy5pb25lbG1jLnJvLzIwMTQvMDUvMjUvcHl0aG9uLXBhY2thZ2luZy8jdGhlLXN0cnVjdHVyZT5g
Xy4KKworVGVzdHMgYXMgcGFydCBvZiBhcHBsaWNhdGlvbiBjb2RlCiteXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl4KKworSW5saW5pbmcgdGVzdCBkaXJlY3RvcmllcyBpbnRvIHlvdXIg
YXBwbGljYXRpb24gcGFja2FnZQoraXMgdXNlZnVsIGlmIHlvdSBoYXZlIGRpcmVjdCByZWxhdGlv
biBiZXR3ZWVuIHRlc3RzIGFuZCBhcHBsaWNhdGlvbiBtb2R1bGVzIGFuZAord2FudCB0byBkaXN0
cmlidXRlIHRoZW0gYWxvbmcgd2l0aCB5b3VyIGFwcGxpY2F0aW9uOjoKKworICAgIHNldHVwLnB5
CisgICAgbXlwa2cvCisgICAgICAgIF9faW5pdF9fLnB5CisgICAgICAgIGFwcC5weQorICAgICAg
ICB2aWV3LnB5CisgICAgICAgIHRlc3QvCisgICAgICAgICAgICBfX2luaXRfXy5weQorICAgICAg
ICAgICAgdGVzdF9hcHAucHkKKyAgICAgICAgICAgIHRlc3Rfdmlldy5weQorICAgICAgICAgICAg
Li4uCisKK0luIHRoaXMgc2NoZW1lLCBpdCBpcyBlYXN5IHRvIHJ1biB5b3VyIHRlc3RzIHVzaW5n
IHRoZSBgYC0tcHlhcmdzYGAgb3B0aW9uOjoKKworICAgIHB5dGVzdCAtLXB5YXJncyBteXBrZwor
CitgYHB5dGVzdGBgIHdpbGwgZGlzY292ZXIgd2hlcmUgYGBteXBrZ2BgIGlzIGluc3RhbGxlZCBh
bmQgY29sbGVjdCB0ZXN0cyBmcm9tIHRoZXJlLgorCitOb3RlIHRoYXQgdGhpcyBsYXlvdXQgYWxz
byB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBgYHNyY2BgIGxheW91dCBtZW50aW9uZWQg
aW4gdGhlIHByZXZpb3VzIHNlY3Rpb24uCisKKworLi4gbm90ZTo6CisKKyAgICBZb3UgY2FuIHVz
ZSBQeXRob24zIG5hbWVzcGFjZSBwYWNrYWdlcyAoUEVQNDIwKSBmb3IgeW91ciBhcHBsaWNhdGlv
bgorICAgIGJ1dCBweXRlc3Qgd2lsbCBzdGlsbCBwZXJmb3JtIGB0ZXN0IHBhY2thZ2UgbmFtZWBf
IGRpc2NvdmVyeSBiYXNlZCBvbiB0aGUKKyAgICBwcmVzZW5jZSBvZiBgYF9faW5pdF9fLnB5YGAg
ZmlsZXMuICBJZiB5b3UgdXNlIG9uZSBvZiB0aGUKKyAgICB0d28gcmVjb21tZW5kZWQgZmlsZSBz
eXN0ZW0gbGF5b3V0cyBhYm92ZSBidXQgbGVhdmUgYXdheSB0aGUgYGBfX2luaXRfXy5weWBgCisg
ICAgZmlsZXMgZnJvbSB5b3VyIGRpcmVjdG9yaWVzIGl0IHNob3VsZCBqdXN0IHdvcmsgb24gUHl0
aG9uMy4zIGFuZCBhYm92ZS4gIEZyb20KKyAgICAiaW5saW5lZCB0ZXN0cyIsIGhvd2V2ZXIsIHlv
dSB3aWxsIG5lZWQgdG8gdXNlIGFic29sdXRlIGltcG9ydHMgZm9yCisgICAgZ2V0dGluZyBhdCB5
b3VyIGFwcGxpY2F0aW9uIGNvZGUuCisKKy4uIF9gdGVzdCBwYWNrYWdlIG5hbWVgOgorCisuLiBu
b3RlOjoKKworICAgIElmIGBgcHl0ZXN0YGAgZmluZHMgYSAiYS9iL3Rlc3RfbW9kdWxlLnB5IiB0
ZXN0IGZpbGUgd2hpbGUKKyAgICByZWN1cnNpbmcgaW50byB0aGUgZmlsZXN5c3RlbSBpdCBkZXRl
cm1pbmVzIHRoZSBpbXBvcnQgbmFtZQorICAgIGFzIGZvbGxvd3M6CisKKyAgICAqIGRldGVybWlu
ZSBgYGJhc2VkaXJgYDogdGhpcyBpcyB0aGUgZmlyc3QgInVwd2FyZCIgKHRvd2FyZHMgdGhlIHJv
b3QpCisgICAgICBkaXJlY3Rvcnkgbm90IGNvbnRhaW5pbmcgYW4gYGBfX2luaXRfXy5weWBgLiAg
SWYgZS5nLiBib3RoIGBgYWBgCisgICAgICBhbmQgYGBiYGAgY29udGFpbiBhbiBgYF9faW5pdF9f
LnB5YGAgZmlsZSB0aGVuIHRoZSBwYXJlbnQgZGlyZWN0b3J5CisgICAgICBvZiBgYGFgYCB3aWxs
IGJlY29tZSB0aGUgYGBiYXNlZGlyYGAuCisKKyAgICAqIHBlcmZvcm0gYGBzeXMucGF0aC5pbnNl
cnQoMCwgYmFzZWRpcilgYCB0byBtYWtlIHRoZSB0ZXN0IG1vZHVsZQorICAgICAgaW1wb3J0YWJs
ZSB1bmRlciB0aGUgZnVsbHkgcXVhbGlmaWVkIGltcG9ydCBuYW1lLgorCisgICAgKiBgYGltcG9y
dCBhLmIudGVzdF9tb2R1bGVgYCB3aGVyZSB0aGUgcGF0aCBpcyBkZXRlcm1pbmVkCisgICAgICBi
eSBjb252ZXJ0aW5nIHBhdGggc2VwYXJhdG9ycyBgYC9gYCBpbnRvICIuIiBjaGFyYWN0ZXJzLiAg
VGhpcyBtZWFucworICAgICAgeW91IG11c3QgZm9sbG93IHRoZSBjb252ZW50aW9uIG9mIGhhdmlu
ZyBkaXJlY3RvcnkgYW5kIGZpbGUKKyAgICAgIG5hbWVzIG1hcCBkaXJlY3RseSB0byB0aGUgaW1w
b3J0IG5hbWVzLgorCisgICAgVGhlIHJlYXNvbiBmb3IgdGhpcyBzb21ld2hhdCBldm9sdmVkIGlt
cG9ydGluZyB0ZWNobmlxdWUgaXMKKyAgICB0aGF0IGluIGxhcmdlciBwcm9qZWN0cyBtdWx0aXBs
ZSB0ZXN0IG1vZHVsZXMgbWlnaHQgaW1wb3J0CisgICAgZnJvbSBlYWNoIG90aGVyIGFuZCB0aHVz
IGRlcml2aW5nIGEgY2Fub25pY2FsIGltcG9ydCBuYW1lIGhlbHBzCisgICAgdG8gYXZvaWQgc3Vy
cHJpc2VzIHN1Y2ggYXMgYSB0ZXN0IG1vZHVsZSBnZXR0aW5nIGltcG9ydGVkIHR3aWNlLgorCisK
Ky4uIF9gdmlydHVhbGVudmA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS92aXJ0dWFsZW52
CisuLiBfYGJ1aWxkb3V0YDogaHR0cDovL3d3dy5idWlsZG91dC5vcmcvCisuLiBfcGlwOiBodHRw
Oi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGlwCisKKy4uIF9gdXNlIHRveGA6CisKK1RveAorLS0t
LS0tCisKK0ZvciBkZXZlbG9wbWVudCwgd2UgcmVjb21tZW5kIHRvIHVzZSB2aXJ0dWFsZW52XyBl
bnZpcm9ubWVudHMgYW5kIHBpcF8KK2ZvciBpbnN0YWxsaW5nIHlvdXIgYXBwbGljYXRpb24gYW5k
IGFueSBkZXBlbmRlbmNpZXMKK2FzIHdlbGwgYXMgdGhlIGBgcHl0ZXN0YGAgcGFja2FnZSBpdHNl
bGYuIFRoaXMgZW5zdXJlcyB5b3VyIGNvZGUgYW5kCitkZXBlbmRlbmNpZXMgYXJlIGlzb2xhdGVk
IGZyb20gdGhlIHN5c3RlbSBQeXRob24gaW5zdGFsbGF0aW9uLgorCitZb3UgY2FuIHRoZW4gaW5z
dGFsbCB5b3VyIHBhY2thZ2UgaW4gImVkaXRhYmxlIiBtb2RlOjoKKworICAgICBwaXAgaW5zdGFs
bCAtZSAuCisKK3doaWNoIGxldHMgeW91IGNoYW5nZSB5b3VyIHNvdXJjZSBjb2RlIChib3RoIHRl
c3RzIGFuZCBhcHBsaWNhdGlvbikgYW5kIHJlcnVuIHRlc3RzIGF0IHdpbGwuCitUaGlzIGlzIHNp
bWlsYXIgdG8gcnVubmluZyBgcHl0aG9uIHNldHVwLnB5IGRldmVsb3BgIG9yIGBjb25kYSBkZXZl
bG9wYCBpbiB0aGF0IGl0IGluc3RhbGxzCit5b3VyIHBhY2thZ2UgdXNpbmcgYSBzeW1saW5rIHRv
IHlvdXIgZGV2ZWxvcG1lbnQgY29kZS4KKworT25jZSB5b3UgYXJlIGRvbmUgd2l0aCB5b3VyIHdv
cmsgYW5kIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgeW91ciBhY3R1YWwKK3BhY2thZ2UgcGFzc2Vz
IGFsbCB0ZXN0cyB5b3UgbWF5IHdhbnQgdG8gbG9vayBpbnRvIGB0b3hgXywgdGhlCit2aXJ0dWFs
ZW52IHRlc3QgYXV0b21hdGlvbiB0b29sIGFuZCBpdHMgYHB5dGVzdCBzdXBwb3J0Cis8aHR0cHM6
Ly90b3gucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2V4YW1wbGUvcHl0ZXN0Lmh0bWw+YF8uCitU
b3ggaGVscHMgeW91IHRvIHNldHVwIHZpcnR1YWxlbnYgZW52aXJvbm1lbnRzIHdpdGggcHJlLWRl
ZmluZWQKK2RlcGVuZGVuY2llcyBhbmQgdGhlbiBleGVjdXRpbmcgYSBwcmUtY29uZmlndXJlZCB0
ZXN0IGNvbW1hbmQgd2l0aAorb3B0aW9ucy4gIEl0IHdpbGwgcnVuIHRlc3RzIGFnYWluc3QgdGhl
IGluc3RhbGxlZCBwYWNrYWdlIGFuZCBub3QKK2FnYWluc3QgeW91ciBzb3VyY2UgY29kZSBjaGVj
a291dCwgaGVscGluZyB0byBkZXRlY3QgcGFja2FnaW5nCitnbGl0Y2hlcy4KKworCitJbnRlZ3Jh
dGluZyB3aXRoIHNldHVwdG9vbHMgLyBgYHB5dGhvbiBzZXR1cC5weSB0ZXN0YGAgLyBgYHB5dGVz
dC1ydW5uZXJgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBpbnRlZ3JhdGUgdGVzdCBy
dW5zIGludG8geW91ciBzZXR1cHRvb2xzIGJhc2VkIHByb2plY3QKK3dpdGggdGhlIGBweXRlc3Qt
cnVubmVyIDxodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1ydW5uZXI+YF8gcGx1
Z2luLgorCitBZGQgdGhpcyB0byBgYHNldHVwLnB5YGAgZmlsZToKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cAorCisgICAgc2V0dXAo
CisgICAgICAgICMuLi4sCisgICAgICAgIHNldHVwX3JlcXVpcmVzPVsncHl0ZXN0LXJ1bm5lcics
IC4uLl0sCisgICAgICAgIHRlc3RzX3JlcXVpcmU9WydweXRlc3QnLCAuLi5dLAorICAgICAgICAj
Li4uLAorICAgICkKKworCitBbmQgY3JlYXRlIGFuIGFsaWFzIGludG8gYGBzZXR1cC5jZmdgYCBm
aWxlOgorCisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgIFthbGlhc2VzXQorICAgIHRlc3Q9
cHl0ZXN0CisKK0lmIHlvdSBub3cgdHlwZTo6CisKKyAgICBweXRob24gc2V0dXAucHkgdGVzdAor
Cit0aGlzIHdpbGwgZXhlY3V0ZSB5b3VyIHRlc3RzIHVzaW5nIGBgcHl0ZXN0LXJ1bm5lcmBgLiBB
cyB0aGlzIGlzIGEKK3N0YW5kYWxvbmUgdmVyc2lvbiBvZiBgYHB5dGVzdGBgIG5vIHByaW9yIGlu
c3RhbGxhdGlvbiB3aGF0c29ldmVyIGlzCityZXF1aXJlZCBmb3IgY2FsbGluZyB0aGUgdGVzdCBj
b21tYW5kLiBZb3UgY2FuIGFsc28gcGFzcyBhZGRpdGlvbmFsCithcmd1bWVudHMgdG8gcHl0ZXN0
IHN1Y2ggYXMgeW91ciB0ZXN0IGRpcmVjdG9yeSBvciBvdGhlcgorb3B0aW9ucyB1c2luZyBgYC0t
YWRkb3B0c2BgLgorCitZb3UgY2FuIGFsc28gc3BlY2lmeSBvdGhlciBweXRlc3QtaW5pIG9wdGlv
bnMgaW4geW91ciBgYHNldHVwLmNmZ2BgIGZpbGUKK2J5IHB1dHRpbmcgdGhlbSBpbnRvIGEgYGBb
dG9vbDpweXRlc3RdYGAgc2VjdGlvbjoKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgW3Rv
b2w6cHl0ZXN0XQorICAgIGFkZG9wdHMgPSAtLXZlcmJvc2UKKyAgICBweXRob25fZmlsZXMgPSB0
ZXN0aW5nLyovKi5weQorCisKK01hbnVhbCBJbnRlZ3JhdGlvbgorXl5eXl5eXl5eXl5eXl5eXl5e
CisKK0lmIGZvciBzb21lIHJlYXNvbiB5b3UgZG9uJ3Qgd2FudC9jYW4ndCB1c2UgYGBweXRlc3Qt
cnVubmVyYGAsIHlvdSBjYW4gd3JpdGUKK3lvdXIgb3duIHNldHVwdG9vbHMgVGVzdCBjb21tYW5k
IGZvciBpbnZva2luZyBweXRlc3QuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGlt
cG9ydCBzeXMKKworICAgIGZyb20gc2V0dXB0b29scy5jb21tYW5kLnRlc3QgaW1wb3J0IHRlc3Qg
YXMgVGVzdENvbW1hbmQKKworCisgICAgY2xhc3MgUHlUZXN0KFRlc3RDb21tYW5kKToKKyAgICAg
ICAgdXNlcl9vcHRpb25zID0gWygncHl0ZXN0LWFyZ3M9JywgJ2EnLCAiQXJndW1lbnRzIHRvIHBh
c3MgdG8gcHl0ZXN0IildCisKKyAgICAgICAgZGVmIGluaXRpYWxpemVfb3B0aW9ucyhzZWxmKToK
KyAgICAgICAgICAgIFRlc3RDb21tYW5kLmluaXRpYWxpemVfb3B0aW9ucyhzZWxmKQorICAgICAg
ICAgICAgc2VsZi5weXRlc3RfYXJncyA9ICcnCisKKyAgICAgICAgZGVmIHJ1bl90ZXN0cyhzZWxm
KToKKyAgICAgICAgICAgIGltcG9ydCBzaGxleAorICAgICAgICAgICAgI2ltcG9ydCBoZXJlLCBj
YXVzZSBvdXRzaWRlIHRoZSBlZ2dzIGFyZW4ndCBsb2FkZWQKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIGVycm5vID0gcHl0ZXN0Lm1haW4oc2hsZXguc3BsaXQoc2VsZi5w
eXRlc3RfYXJncykpCisgICAgICAgICAgICBzeXMuZXhpdChlcnJubykKKworCisgICAgc2V0dXAo
CisgICAgICAgICMuLi4sCisgICAgICAgIHRlc3RzX3JlcXVpcmU9WydweXRlc3QnXSwKKyAgICAg
ICAgY21kY2xhc3MgPSB7J3Rlc3QnOiBQeVRlc3R9LAorICAgICAgICApCisKK05vdyBpZiB5b3Ug
cnVuOjoKKworICAgIHB5dGhvbiBzZXR1cC5weSB0ZXN0CisKK3RoaXMgd2lsbCBkb3dubG9hZCBg
YHB5dGVzdGBgIGlmIG5lZWRlZCBhbmQgdGhlbiBydW4geW91ciB0ZXN0cworYXMgeW91IHdvdWxk
IGV4cGVjdCBpdCB0by4gWW91IGNhbiBwYXNzIGEgc2luZ2xlIHN0cmluZyBvZiBhcmd1bWVudHMK
K3VzaW5nIHRoZSBgYC0tcHl0ZXN0LWFyZ3NgYCBvciBgYC1hYGAgY29tbWFuZC1saW5lIG9wdGlv
bi4gRm9yIGV4YW1wbGU6OgorCisgICAgcHl0aG9uIHNldHVwLnB5IHRlc3QgLWEgIi0tZHVyYXRp
b25zPTUiCisKK2lzIGVxdWl2YWxlbnQgdG8gcnVubmluZyBgYHB5dGVzdCAtLWR1cmF0aW9ucz01
YGAuCisKKworLi4gaW5jbHVkZTo6IGxpbmtzLmluYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2hpc3RvcmljYWwtbm90ZXMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2hpc3Rvcmlj
YWwtbm90ZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyOGNlZmY5YjE3NDg2MWJjZDk1MGVhOWU3YTg3MzQ1
MzhlMzMyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaGlzdG9yaWNh
bC1ub3Rlcy5yc3QKQEAgLTAsMCArMSwxNzcgQEAKK0hpc3RvcmljYWwgTm90ZXMKKz09PT09PT09
PT09PT09PT0KKworVGhpcyBwYWdlIGxpc3RzIGZlYXR1cmVzIG9yIGJlaGF2aW9yIGZyb20gcHJl
dmlvdXMgdmVyc2lvbnMgb2YgcHl0ZXN0IHdoaWNoIGhhdmUgY2hhbmdlZCBvdmVyIHRoZSB5ZWFy
cy4gVGhleSBhcmUKK2tlcHQgaGVyZSBhcyBhIGhpc3RvcmljYWwgbm90ZSBzbyB1c2VycyBsb29r
aW5nIGF0IG9sZCBjb2RlIGNhbiBmaW5kIGRvY3VtZW50YXRpb24gcmVsYXRlZCB0byB0aGVtLgor
CitjYWNoZSBwbHVnaW4gaW50ZWdyYXRlZCBpbnRvIHRoZSBjb3JlCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDIuOAorCitUaGUgZnVu
Y3Rpb25hbGl0eSBvZiB0aGUgOnJlZjpgY29yZSBjYWNoZSA8Y2FjaGU+YCBwbHVnaW4gd2FzIHBy
ZXZpb3VzbHkgZGlzdHJpYnV0ZWQKK2FzIGEgdGhpcmQgcGFydHkgcGx1Z2luIG5hbWVkIGBgcHl0
ZXN0LWNhY2hlYGAuICBUaGUgY29yZSBwbHVnaW4KK2lzIGNvbXBhdGlibGUgcmVnYXJkaW5nIGNv
bW1hbmQgbGluZSBvcHRpb25zIGFuZCBBUEkgdXNhZ2UgZXhjZXB0IHRoYXQgeW91CitjYW4gb25s
eSBzdG9yZS9yZWNlaXZlIGRhdGEgYmV0d2VlbiB0ZXN0IHJ1bnMgdGhhdCBpcyBqc29uLXNlcmlh
bGl6YWJsZS4KKworCitmdW5jYXJncyBhbmQgYGBweXRlc3RfZnVuY2FyZ19fYGAKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMworCitJ
biB2ZXJzaW9ucyBwcmlvciB0byAyLjMgdGhlcmUgd2FzIG5vIGBgQHB5dGVzdC5maXh0dXJlYGAg
bWFya2VyCithbmQgeW91IGhhZCB0byB1c2UgYSBtYWdpYyBgYHB5dGVzdF9mdW5jYXJnX19OQU1F
YGAgcHJlZml4Citmb3IgdGhlIGZpeHR1cmUgZmFjdG9yeS4gIFRoaXMgcmVtYWlucyBhbmQgd2ls
bCByZW1haW4gc3VwcG9ydGVkCitidXQgaXMgbm90IGFueW1vcmUgYWR2ZXJ0aXNlZCBhcyB0aGUg
cHJpbWFyeSBtZWFucyBvZiBkZWNsYXJpbmcgZml4dHVyZQorZnVuY3Rpb25zLgorCisKK2BgQHB5
dGVzdC55aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMTAKKworUHJpb3IgdG8gdmVyc2lv
biAyLjEwLCBpbiBvcmRlciB0byB1c2UgYSBgYHlpZWxkYGAgc3RhdGVtZW50IHRvIGV4ZWN1dGUg
dGVhcmRvd24gY29kZSBvbmUKK2hhZCB0byBtYXJrIGEgZml4dHVyZSB1c2luZyB0aGUgYGB5aWVs
ZF9maXh0dXJlYGAgbWFya2VyLiBGcm9tIDIuMTAgb253YXJkLCBub3JtYWwKK2ZpeHR1cmVzIGNh
biB1c2UgYGB5aWVsZGBgIGRpcmVjdGx5IHNvIHRoZSBgYHlpZWxkX2ZpeHR1cmVgYCBkZWNvcmF0
b3IgaXMgbm8gbG9uZ2VyIG5lZWRlZAorYW5kIGNvbnNpZGVyZWQgZGVwcmVjYXRlZC4KKworCitg
YFtweXRlc3RdYGAgaGVhZGVyIGluIGBgc2V0dXAuY2ZnYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMAorCitQcmlvciB0byAz
LjAsIHRoZSBzdXBwb3J0ZWQgc2VjdGlvbiBuYW1lIHdhcyBgYFtweXRlc3RdYGAuIER1ZSB0byBo
b3cKK3RoaXMgbWF5IGNvbGxpZGUgd2l0aCBzb21lIGRpc3R1dGlscyBjb21tYW5kcywgdGhlIHJl
Y29tbWVuZGVkCitzZWN0aW9uIG5hbWUgZm9yIGBgc2V0dXAuY2ZnYGAgZmlsZXMgaXMgbm93IGBg
W3Rvb2w6cHl0ZXN0XWBgLgorCitOb3RlIHRoYXQgZm9yIGBgcHl0ZXN0LmluaWBgIGFuZCBgYHRv
eC5pbmlgYCBmaWxlcyB0aGUgc2VjdGlvbgorbmFtZSBpcyBgYFtweXRlc3RdYGAuCisKKworQXBw
bHlpbmcgbWFya3MgdG8gYGBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemVgYCBwYXJhbWV0ZXJzCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjEKKworUHJpb3IgdG8gdmVyc2lvbiAzLjEgdGhlIHN1
cHBvcnRlZCBtZWNoYW5pc20gZm9yIG1hcmtpbmcgdmFsdWVzCit1c2VkIHRoZSBzeW50YXg6Ogor
CisgICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdF9p
bnB1dCxleHBlY3RlZCIsIFsKKyAgICAgICAgKCIzKzUiLCA4KSwKKyAgICAgICAgKCIyKzQiLCA2
KSwKKyAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoKCI2KjkiLCA0MiksKSwKKyAgICBdKQorICAg
IGRlZiB0ZXN0X2V2YWwodGVzdF9pbnB1dCwgZXhwZWN0ZWQpOgorICAgICAgICBhc3NlcnQgZXZh
bCh0ZXN0X2lucHV0KSA9PSBleHBlY3RlZAorCisKK1RoaXMgd2FzIGFuIGluaXRpYWwgaGFjayB0
byBzdXBwb3J0IHRoZSBmZWF0dXJlIGJ1dCBzb29uIHdhcyBkZW1vbnN0cmF0ZWQgdG8gYmUgaW5j
b21wbGV0ZSwKK2Jyb2tlbiBmb3IgcGFzc2luZyBmdW5jdGlvbnMgb3IgYXBwbHlpbmcgbXVsdGlw
bGUgbWFya3Mgd2l0aCB0aGUgc2FtZSBuYW1lIGJ1dCBkaWZmZXJlbnQgcGFyYW1ldGVycy4KKwor
VGhlIG9sZCBzeW50YXggaXMgcGxhbm5lZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdC00LjAuCisK
KworYGBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemVgYCBhcmd1bWVudCBuYW1lcyBhcyBhIHR1cGxl
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjQKKworSW4gdmVyc2lvbnMgcHJpb3IgdG8gMi40IG9u
ZSBuZWVkZWQgdG8gc3BlY2lmeSB0aGUgYXJndW1lbnQKK25hbWVzIGFzIGEgdHVwbGUuICBUaGlz
IHJlbWFpbnMgdmFsaWQgYnV0IHRoZSBzaW1wbGVyIGBgIm5hbWUxLG5hbWUyLC4uLiJgYAorY29t
bWEtc2VwYXJhdGVkLXN0cmluZyBzeW50YXggaXMgbm93IGFkdmVydGlzZWQgZmlyc3QgYmVjYXVz
ZQoraXQncyBlYXNpZXIgdG8gd3JpdGUgYW5kIHByb2R1Y2VzIGxlc3MgbGluZSBub2lzZS4KKwor
CitzZXR1cDogaXMgbm93IGFuICJhdXRvdXNlIGZpeHR1cmUiCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMi4zCisKK0R1cmluZyBkZXZl
bG9wbWVudCBwcmlvciB0byB0aGUgcHl0ZXN0LTIuMyByZWxlYXNlIHRoZSBuYW1lCitgYHB5dGVz
dC5zZXR1cGBgIHdhcyB1c2VkIGJ1dCBiZWZvcmUgdGhlIHJlbGVhc2UgaXQgd2FzIHJlbmFtZWQK
K2FuZCBtb3ZlZCB0byBiZWNvbWUgcGFydCBvZiB0aGUgZ2VuZXJhbCBmaXh0dXJlIG1lY2hhbmlz
bSwKK25hbWVseSA6cmVmOmBhdXRvdXNlIGZpeHR1cmVzYAorCisKKy4uIF9zdHJpbmcgY29uZGl0
aW9uczoKKworQ29uZGl0aW9ucyBhcyBzdHJpbmdzIGluc3RlYWQgb2YgYm9vbGVhbnMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25jaGFuZ2Vk
OjogMi40CisKK1ByaW9yIHRvIHB5dGVzdC0yLjQgdGhlIG9ubHkgd2F5IHRvIHNwZWNpZnkgc2tp
cGlmL3hmYWlsIGNvbmRpdGlvbnMgd2FzCit0byB1c2Ugc3RyaW5nczo6CisKKyAgICBpbXBvcnQg
c3lzCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mbyA+PSAoMywzKSIp
CisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgLi4uCisKK0R1cmluZyB0ZXN0IGZ1
bmN0aW9uIHNldHVwIHRoZSBza2lwaWYgY29uZGl0aW9uIGlzIGV2YWx1YXRlZCBieSBjYWxsaW5n
CitgYGV2YWwoJ3N5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCknLCBuYW1lc3BhY2UpYGAuICBUaGUg
bmFtZXNwYWNlIGNvbnRhaW5zCithbGwgdGhlIG1vZHVsZSBnbG9iYWxzLCBhbmQgYGBvc2BgIGFu
ZCBgYHN5c2BgIGFzIGEgbWluaW11bS4KKworU2luY2UgcHl0ZXN0LTIuNCA6cmVmOmBib29sZWFu
IGNvbmRpdGlvbnMgPGNvbmRpdGlvbiBib29sZWFucz5gIGFyZSBjb25zaWRlcmVkIHByZWZlcmFi
bGUKK2JlY2F1c2UgbWFya2VycyBjYW4gdGhlbiBiZSBmcmVlbHkgaW1wb3J0ZWQgYmV0d2VlbiB0
ZXN0IG1vZHVsZXMuCitXaXRoIHN0cmluZ3MgeW91IG5lZWQgdG8gaW1wb3J0IG5vdCBvbmx5IHRo
ZSBtYXJrZXIgYnV0IGFsbCB2YXJpYWJsZXMKK3VzZWQgYnkgdGhlIG1hcmtlciwgd2hpY2ggdmlv
bGF0ZXMgZW5jYXBzdWxhdGlvbi4KKworVGhlIHJlYXNvbiBmb3Igc3BlY2lmeWluZyB0aGUgY29u
ZGl0aW9uIGFzIGEgc3RyaW5nIHdhcyB0aGF0IGBgcHl0ZXN0YGAgY2FuCityZXBvcnQgYSBzdW1t
YXJ5IG9mIHNraXAgY29uZGl0aW9ucyBiYXNlZCBwdXJlbHkgb24gdGhlIGNvbmRpdGlvbiBzdHJp
bmcuCitXaXRoIGNvbmRpdGlvbnMgYXMgYm9vbGVhbnMgeW91IGFyZSByZXF1aXJlZCB0byBzcGVj
aWZ5IGEgYGByZWFzb25gYCBzdHJpbmcuCisKK05vdGUgdGhhdCBzdHJpbmcgY29uZGl0aW9ucyB3
aWxsIHJlbWFpbiBmdWxseSBzdXBwb3J0ZWQgYW5kIHlvdSBhcmUgZnJlZQordG8gdXNlIHRoZW0g
aWYgeW91IGhhdmUgbm8gbmVlZCBmb3IgY3Jvc3MtaW1wb3J0aW5nIG1hcmtlcnMuCisKK1RoZSBl
dmFsdWF0aW9uIG9mIGEgY29uZGl0aW9uIHN0cmluZyBpbiBgYHB5dGVzdC5tYXJrLnNraXBpZihj
b25kaXRpb25zdHJpbmcpYGAKK29yIGBgcHl0ZXN0Lm1hcmsueGZhaWwoY29uZGl0aW9uc3RyaW5n
KWBgIHRha2VzIHBsYWNlIGluIGEgbmFtZXNwYWNlCitkaWN0aW9uYXJ5IHdoaWNoIGlzIGNvbnN0
cnVjdGVkIGFzIGZvbGxvd3M6CisKKyogdGhlIG5hbWVzcGFjZSBpcyBpbml0aWFsaXplZCBieSBw
dXR0aW5nIHRoZSBgYHN5c2BgIGFuZCBgYG9zYGAgbW9kdWxlcworICBhbmQgdGhlIHB5dGVzdCBg
YGNvbmZpZ2BgIG9iamVjdCBpbnRvIGl0LgorCisqIHVwZGF0ZWQgd2l0aCB0aGUgbW9kdWxlIGds
b2JhbHMgb2YgdGhlIHRlc3QgZnVuY3Rpb24gZm9yIHdoaWNoIHRoZQorICBleHByZXNzaW9uIGlz
IGFwcGxpZWQuCisKK1RoZSBweXRlc3QgYGBjb25maWdgYCBvYmplY3QgYWxsb3dzIHlvdSB0byBz
a2lwIGJhc2VkIG9uIGEgdGVzdAorY29uZmlndXJhdGlvbiB2YWx1ZSB3aGljaCB5b3UgbWlnaHQg
aGF2ZSBhZGRlZDo6CisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJub3QgY29uZmlnLmdldHZh
bHVlKCdkYicpIikKKyAgICBkZWYgdGVzdF9mdW5jdGlvbiguLi4pOgorICAgICAgICAuLi4KKwor
VGhlIGVxdWl2YWxlbnQgd2l0aCAiYm9vbGVhbiBjb25kaXRpb25zIiBpczo6CisKKyAgICBAcHl0
ZXN0Lm1hcmsuc2tpcGlmKG5vdCBweXRlc3QuY29uZmlnLmdldHZhbHVlKCJkYiIpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSItLWRiIHdhcyBub3Qgc3BlY2lmaWVkIikKKyAgICBk
ZWYgdGVzdF9mdW5jdGlvbiguLi4pOgorICAgICAgICBwYXNzCisKKy4uIG5vdGU6OgorCisgICAg
WW91IGNhbm5vdCB1c2UgYGBweXRlc3QuY29uZmlnLmdldHZhbHVlKClgYCBpbiBjb2RlCisgICAg
aW1wb3J0ZWQgYmVmb3JlIHB5dGVzdCdzIGFyZ3VtZW50IHBhcnNpbmcgdGFrZXMgcGxhY2UuICBG
b3IgZXhhbXBsZSwKKyAgICBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgYXJlIGltcG9ydGVkIGJlZm9y
ZSBjb21tYW5kIGxpbmUgcGFyc2luZyBhbmQgdGh1cworICAgIGBgY29uZmlnLmdldHZhbHVlKClg
YCB3aWxsIG5vdCBleGVjdXRlIGNvcnJlY3RseS4KKworYGBweXRlc3Quc2V0X3RyYWNlKClgYAor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuNAorCitQcmV2
aW91cyB0byB2ZXJzaW9uIDIuNCB0byBzZXQgYSBicmVhayBwb2ludCBpbiBjb2RlIG9uZSBuZWVk
ZWQgdG8gdXNlIGBgcHl0ZXN0LnNldF90cmFjZSgpYGA6OgorCisgICAgaW1wb3J0IHB5dGVzdAor
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgIC4uLgorICAgICAgICBweXRlc3Quc2V0
X3RyYWNlKCkgICAgIyBpbnZva2UgUERCIGRlYnVnZ2VyIGFuZCB0cmFjaW5nCisKKworVGhpcyBp
cyBubyBsb25nZXIgbmVlZGVkIGFuZCBvbmUgY2FuIHVzZSB0aGUgbmF0aXZlIGBgaW1wb3J0IHBk
YjtwZGIuc2V0X3RyYWNlKClgYCBjYWxsIGRpcmVjdGx5LgorCitGb3IgbW9yZSBkZXRhaWxzIHNl
ZSA6cmVmOmBicmVha3BvaW50c2AuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1n
L2NyYW1lcjIucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9jcmFtZXIyLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YmYwZTkyZTIwZDlhN2ZlNzU3OWMzYzhiNTZmNTZkZTFmYjE0MjY4CkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAyNTI5MQp6Y21iNVZXbXNGbTdCME1sTHZiakAtNl9UMERla1Z0RGVtc2pM
VUQleiNvZTlhPyhYaForPT5OPG8xWEtXQUsmLXUKei1zRE5MWE9oYF9taEdBS3R+WCZ5M1gmKkRf
KCVXJXBoISFKc1E+XkpKTEVWTTBTZlk3ZEleNkVgMmFicU5Rd2ZMCno2TkU+UTJBcnwxcSF7cV9A
MHMwUmxtT3tMYmRiX14yN3FeMXw2VSo8SDYwaHkzR1g1O0ZBbCNCaHk5TTFBYTIxegp6OXNvIUlY
KXpIc2tDb0Y1Y2JgUEAqVEdJVSNucTFHOC07aCRoZU9jY2w9OHorI0QpOUwhXzEkS21RT3MzTE5l
RTkKej4lTHN0NmNyaE43Tj9efXBsYDxfTVdsP35ORWttaWRsTE0qZT5YQD9Ndkk4Skx2LTlgUHty
M1BJNjEqfm9wQ1d7Cnpab2JjVk8pNWpqakVmOHg9dCUkVjd2akh6PyFLXllMcjUzMyFvUDskUFQj
KTw5MlUqTCNgRGFVd3t3RSVBcD0kQQp6LTNXaHdyaiMmNkM9XnNTZmF7V2dxY0I0KlVFZmEhZGxK
SCl5cUMoWE5TQipgLUl9TnA5PFU0WjlVV0dUbU9LJWkKejZvSEpHMz5nU2clQjdJTzVZOzBJTUBL
P2JgOEluSE9NfjN9Y1BIaCFXUkplJjR1JjQtRXxaSmhNOGklOVQxZ2xJCnorUEhvUUdKe1REJEle
R0QybWIwY2l8QG5mUUFCQyE2IyM1aXkmMUxQUz9vX3RhaVczfGw8NHgpcCpaZ2dpaEY8Xwp6Pn5C
bmoyOyRoeyR7YyEmaC03TlhWJCM/IVEoO31zSUNXdT8oXlgwXjItJGlMMndOfV9Ce3tpY29vPUBI
STBEcVYKempeZ3V3JVIhY2ltdUhIPz15MiEmdz8rYSkwaGNFak1XRzZsNTRGYWYzfk19QElXWHVA
YSYlRGlocDhOPTJ7UHx5CnpiZ1dzV2hKcnpzeWhgREBHZU9LYj1vO19zTnc/NWB5ak5keiQmZGh6
SUFSYnhDISNCKF9tdDlLd1hHWlhVO2BGdgp6emk1R2wtYHBac0F3SEVlPFBMcGkzTXQlbFlAVUMq
NjRfaEJCOUwlbFFBS2RPIzZVRnwqIzh0Uih8MlM1dWdqTk0KelFnPX1fdHU2MmtHWGJCS2AtRXRv
c3lVVTkycGRafHVnKTAoMEZEQl9od29mSEBjVlY8OV8zVH5JUF88aWs1TTg1CnokWGtlfil4UGF8
cHoyMSNNV1JDP1ZGIyNXOS1IWSY/XkdXPD1kRlplZlBXMWAhKlFRZGhlYDRhLXwhRnlBZ0RvOAp6
UiojcjY8Mzx7VWFXbTNnNkYkSGYxU3EpI14oWSVKUD1Fcz4lSUt2ditibjV+RFVjUjh2Si17WHZL
P3Ixbzd5QFMKeklJR30qNm5oZGhTQWpTdmtmPkE8ZHd3WWYpeXhqdVNVJitKRDhMdlglcVhBNT0z
QCNEJjhfRT1wOW9JdWUoezlTCnpgJXNLdEtzV2BhVipaYX5rI2o0QT16RXhvcVA1N1NsWVBVcT9q
ellQWFBad3A0O18tQGgmfktlJCVzZG9lbE9HOAp6YSg/eCZDZkpGSjtDT345Nl9YelhrTz4wXzA3
VnhyX3Z6Sng/ejRWWXIzNzwwS3QpXjE2UG5ranByKyNMdWBLS0YKenMrc3QkUjd8ezVtVUI2aF9A
N2MhQkB7cVdGNE5SPWJjbVF4Q1NCR3hDRExsWHNMQ0hgcjs5NjFPc2lMQlNsUCUrCnp7U0Y8cG9y
Z0FZel5ZdlVmPjkqc2w1byhPemVrRzdpPUZ3cWw0eXduaCZ6KWpNT0BXc0N3NGxJa2ZtWVpjJT9N
Mwp6MDVjI0kxS29KUDhhMlBYcXd3NHp0aW04ejhJdytvZittMThBMURzNkRRQ3EpaFRHTDdTSjJC
elk9RUN0OT5HI2EKel9Wez5TPXUoYXNSO2VsfiZjZnE4SFQ4VkM7UCljTTlJSyV8dWNmKVV2ZzZW
IUFYcF90aHp3RWMobXNtRU9HfX13CnpTPjhNKmc7ZWdlRFo2ZTNPTFIoOC0rZmIxUCo3anIocj5r
Q0QrTT8yY3FIJSNvMFphZ0Q1d0hMRHNtLWdRRiFxQQp6Q35tVSg/XlFaanEhalhlQDt+c2omUiNU
cVlAV3ZkdGV3UlQwIVdicDBNRyZsKiZpLT17eEdTNyZfYzRyQm1yNykKejZ+Q0VLcWpjcVBuODt4
WHZRS09ybjkpSWorZnVhVUw3Jnk7KF4xQTw9UShuZW40SnklQn1MbjRXcGJ3dG5la0FsCnpeR3JF
cUIoUH15d2s+fjVrKm5jTT5vISZnTWpGbmkpYChGLWE5Yj4jWTJ6c2U+U0hBVTM8IWhgJEdzSUBF
fkxlMAp6YmZ1KGBAaHstNEZeVlg+TzslfWM1I1lLfk19N29LUH15Sj08MHU8cjhuYTE4TiNQfit7
KSRwbEJ+T0w+Wld2bmcKekQ9JEo4SksjNyl2fT4xT1godip3Tjd9TjR4KHRzM2xeZk1hM31jPmQ5
O0J3WHMxOTRrWl9vWks5P09ZWnt4MyUoCnpJfVhXUTRATTk9en1pMG04I2lAYCtDK3tZaXV1PF5t
YnRCX3JAM3pKVmFpa14/TFUhXlBMcWlfTXtGLWxDeW9zUQp6d2dEc2c/VnJgKGlaT0dJTzI3VXdy
VFNgKSRqTENSQ1BPI1BBPDhacWhReUEpNjlRcnUmRnppSEZvekZmJiRTalMKek4+c3tLJX17fVh4
Szl3RUVhUUBrQkA+X2A+IXM3Vi1QPFA1bjdQNm0jSnRednViSXxlTShFQGZvK2U8VkE3OCRKCnpw
WH4wZ28qPzx2elRpS1dpUS09VjRGRHBFUF45MFAjaWIreiY/aWZmaXB0MzZHM0dyMzZGRHVpJDF5
Jkc1SmJnaAp6aXp+QHM1RzMjQlJEZihAUzBLdjVORG1xYXJ5YWwqVlB8Z2x3RnBMcyVJMk1CbSFH
QldadERVYDZEP0o+RmkpPmYKemgwO3Aye1hNSUU4NDBTKDBSUW89UkZke3BfaT1LOWRIMlolRFhp
IW80QDJmPzZYeSVxT2FMKDV4U3hoIUxfTV9BCnopTm9pOEZ5REJWI3wwI1dZUVhjX1phNSozYCpS
QlNPWUZCZj5xTUF1MmQrcWRSNkI/YWY8SCtFKXUrQG0oVE18OAp6dGlzJHc1aWhrYz5CeGpkKVlV
ezBxVjQoJDBCbUphMVFRdVYoRzJHeFR0RFd5dSp8MytNNiVSZWk1fEYyWHJqSXAKelRvV0hjZHZe
TCk9Sil3SlJrZnw5IV54JnIzcVB1dEcyKDVJTktzJktIYy08PXoyQUlaP1MteGhVJnVLN14xcUA4
CnpHMXstM2RMQmVkJE41b3o3dyl+fik5fEBKKG9BekJEWXJwVTJEV1RWbWgpJmI5Sl9tOVJwQztX
RHchYUBIdX1EWgp6QDYhO1FsYXtibChiaSVLVFcmSmY0XiN+PCYtOTxoTCEoRmQxdVgmdHBIayEj
Y1U/cjtfMS1hSGgrMGEqbE12eDwKekFOfl44UV5YRGJXYXVoemBjc0tDNXZxcjlBOVM2OUJ+bW5H
JGxBWHxtNHwpdk5WbV9pO2dIPWhqMWB2fWhiXjNZCnpqQjwhZzdjQGdzNTFrdyYhMTA1PzhpfnZB
YndLRkstc0BfKlk7Wn1AWkU+UCMoKSU+YWxNSERvSis5fk5AUT1rLQp6bXA5dFI8KGspbGErY01g
PElYTH5gPk1DWWFtMj5ndmw1MmopTCs2WmtpYWVFbVJFPn4kVFhHJlZJenFVZVd8Z3MKempsVj48
Ymt3K1AhO3dmbEBGMmI8Ymw/e2FWOE5rO2J8NiVLcEtGYVJiQFJzJjVYU3Z7XkNrRHQwQGVmJkxv
NyZ5Cnp0Y09PP0EzUXtxKm1xRk10Zm93bU9LS3olOztfKThpMSRMIWR0ajdrYX5+O213QWhSSmkh
NmZ4cjdlcTEjZjR0Jgp6MHxObnlBTWx1JF49Y24lYnZ2dCs7ZW97QHwxYlcmX25ZPzVuK1ZzXk04
WmFARTFgfi1HO31OI3VYUnNWeyZ1cCgKejAhS2tjMzQ/by15NHsqfXs8SGdeXj98PjN6TCkjYCF6
NjtQV307a0lWbExtZ2VVTU53NnFoMyohbH14bm1ycmpWCnowU0h9QFVFUUJjXkBnSXRDUSl5Z1hy
cnM+cnFENkBLUS0zbmd2ckVuVk9yWVImV3ErfndUXyF7Oyl4LWVXRzc7Wgp6KG8lYGgtfnVNdFFD
c2dNdXw8V2tzcjBld3BoUFdubmIpUk5ib0RtMTc3dVNpNWAjUlJFU0d1UUFfKz5aZHZjZnUKempn
VyleKzh4P2BnYU9faV53YDdnMH4mTnhCTFl0TT5EIzxXcTczNn5tdH40WnsqSCRDent0a150Z2Q7
UnppUHZoCno8RzghUy1ic35UbGk2VCpBdHxoPjM/QW9FK3ZlSSRuazYwX2pNb2RpPUQyNGU0RGRI
YXZjdXpIdHFHTVFgPCRiYgp6QDhFOGc5bCYrRUlJeTMlZVk/aUJSJXIyX2dyRHJacElDVnJIP2xi
cStITmJlWnpleClWd0dKWiRVSVNeP29DUDQKel9qPT9pPlVTd2BxS2k2dGI2WmBQOVlNSjdAQzR1
WChBfndiaStYSGdJYWZYYCFJSHsqVFJ6Q3dFM1VzaHVOK0hGCnp5ZkFGJiQzfVk3O3soRFRaJj1Q
YXpOYipKZyZqQTAjd1IxNHs0ZXtkI3pvfG1rPSVESm8wfVg9eD15eWZ5VGI9VQp6VEstRlV2VUZF
JXkyTmRfVj1nc3BNSj91VVM2cnt7SHp5aEpYQFAqVCZxT3s/WFp2MzIoSiFLfnlJN1Y1JFp8JWwK
ekFtR15iZSRFdklnYlVra2dpVkE9cWh0az5uMzJBdkN+dCR3RW5NN3hecFQwKSZZQE03ZldaQlhL
QEhuPkU1SSloCnp7JF41NkYoTSswMSh6fSFpJi1NZCl6d1Y7dz1OQHA0OTRJaCpGMWMwKylAeF9M
alRTPzcjKkZBa2tMfU5fb3NYZwp6KXhTRygjM19GSmQtKWcrTThaVmc/d2pTOGJVRT97T2tDNTRh
MERUY2hRMTI5V1NZRkBOcFM5O0tFJC1tc2tra2QKentSRVdTWiEmeH1nOypEMGZQQzlrSHFHXkM8
QEdxY2RjKTcjc2hTdGROKURVZU8hfHBybD05N25MdWBzOTBPPTJkCnp2JTN0bzNXMTwrazY/ZjBZ
IUp9KCpSelBtKzJLQmZlMFROc0loU0NnJT1SdDAoZGp6QXBZTlIrQD1RI2dlQzQ/OAp6MHpCbDAr
PFE0Um00YnxndldsT212OzBuKyhZUSVnRXI+Rk45QSRYWGZCLTYwSDcwViNyX0h2dnBZYChAYlZO
bEsKekshQTgxX0RmfSokTTlLSWR5Nko0ME12aGRHbXFJVTl+OHVZbno/dlllZ0VRPVo/eVA/dyRA
a1I9UD5BQzteTlZgCnpeS0o4Xns9dkROb0Awe0ZeKzA9Pyt2YTBkckA+RkUrZTgrfks4aWI8eVM9
KVo5UjJTbFYwcD02MCM3TH4qRXNOdwp6S2N0SF4lJmFjJUt3T0BOUT9ndExufHw0I3NsTTNiPUBv
aXxuYWE5eE52YEtfUFA2QmdXcEJ1eiFiMGw3ZXFPZ3oKemg3bWFoKylPc0RTaDFqb3peYEJEcWJo
MmBoVmklQmZBcUtCb21OKTM4d0o1YyFoWTAoUnFFWH5XSHl3TyNxI19sCnorSTRiY2Z1SzVee2Ze
dStpO1IteXUzRDRNeHxfcDktYHwxQF4hSSMyRWlaQiRMeGtzTSFEUlk7SFBRZD1CeFo4Xwp6I0A9
VlkoVmZYVV87MGxUdi1NPGklPkoqMCFaRCk5bntVUUkhQiR5ZHg4PzNRMEhEKnA4ZihHO0t1bzMo
NEBNdzMKenUmQ3JHM0lCNFg5Qy1HXlhhQyYhaUhAcEYtKCV8c2lwKnApYTxWO2JTU0g9cVVydEIp
TyhlSmhpZks+eExpPXRuCnpGcGcoaj9fVW1sOWxOdl80YnJwNSFrUlUxciVuZHhAUFhgVHhgdGY7
X0I3YHN3aE59UVYheWklWj1ySDE7NGJ7aAp6OSpnYVJWOWxRXjVmcVgmfEhYSkdweEJfbl5iSUJF
O0Zxd3kpQHpZYWxgfUx6PkApdnZhKzZ0YnA+QH13YXNBNHkKek1DRVV6V2IoTWoqXlchY1lHalNI
MDNAXkdjVTtsY3YwfXYpVU0jYj1Na1MjdzlYKWczUEVAOWc/fFMjJGtVZnlKCno+MTlMdWF8clVV
U1dQdzZ2c3VAYGFVMmNUPGY0a2dMYnU3KzlmMm9WV0dIKSV6YV8oJFdfYj9OPkMxI25oZTNhRgp6
ZXwoUSlUQ2dkJWNSSz5ZM3l9emtJODNgamIzVWBxc013ZSMxWWl0eWNpbHZtPWslcmBNY2lAdEV9
dUd1NWFFY1IKemRxaVNUM0V2IWcqNGBYYGUpQylWSkl3M2ghZ15XPjUxNEM1QW59bDJIdHVaQzc5
OVlyRzUyU2xmZmY4KEgyUzxXCnp6UlRBMksqdE47JDxNWks8Qyo7Qy1rY19NKHJWfU4/V3VjWjI+
PkM8dVUtSEV4LXZOWmpofTA8KWhlYEdPQ2g7JQp6UEBESWchKkJ7V0dWfCtJJFpQZSV2LWVfJUgk
TH5uJCNMRTt3Rzx5Pz9AfVhGP2w0O0NeTVNVcTJ1MD1pQWZ3TFcKejF2UygyP0QlWSo3X1E1MU1N
Q209eSlwPTNibkQqSEhVQ09MYHFaKm8ka2NrNE1rPjZlPFFTMig3XkNJYFVMWW17CnpOWmxyVTd4
IXRUMG1OTkBAMy1mQCNnRGRCS1M7XztHeVB3TGJKOEctMj1haHF7fUglMztmITFZZmNQK018NClL
Jgp6YGtpPUhhfSppb3QyUlJ4bGYwN0pUJF9XQTk/K0V+TWV6UFdLT2NWal9faD1iel8wSGcoT09Z
YyhwPWU0U3klfDMKeiR8Oz1fT1JGczk1NWRSKlN8fjRUQnVwbkdNfkI5d1dNJD4wNihTPkNtbCh+
SXdgaj1fekt4cldqLThxfVh6UGZQCnpXdUpgT1ppS1J3ISRaVEJZSV9pTjZYcy10cUpsLSFeR1F+
PFlIQFNARXNlekMwWWJoQF9aVVV+NzJ8eW0qXyRkUQp6LTRwOyZOTjBEYXErZ1RsWnJAOXp8RWdB
cnV3NlQhd2hCPmUlP0V7MDBrZFIrKHpSS145NF5CWkRhantCWm5HUWgKeiZyXj5BMDw/X2txQ31x
PWhScUlqbitxSTJDPiZ4M1krelRzaSpCUilNR2dTMGAzS1pKMTNFeDt4fGBRcWFlRXtsCnpNZmBT
fTZNKWJYMm9yakApY35IayYwQH59RUR7QXhqaz0lSWFJRGxgR1VhXk02PWNVYzA3PD9GLXhzYVQx
P3tpIQp6PTIxcUVOcFhfaUVDPjQ8X3x9ISFHSTVkM2NRXjkjQnV1fFl4LWBTJEJycXsxM1opUzR4
a1pWUkEwTE5fbUVRQDwKelUrVGo+TnR5MT1ffCh+SjF5TlgzMllqSF9OKz1sKkEqPnpeYj18TEJD
Mm5rJHcjPyVKVVVsX0lZNy1SfG1HWDVmCnpia0U0UldqblNONlpSbXc+OURHSz9iXnUkaHhtSW5S
VWZPXjFocDsyT3BjcD8rMDZ8LW92M0xTJWNqVEd4MypfKwp6SU9DNjchSWBMaEQhRnQlJShHUzU5
THR4MWx7OURnblVRKHxUQGNYTV9VQFhuRFVIVGNzK0UqVm0oTn0jX0AwdDIKenBmalg5cmttWExG
cFdYMVlkVTBvJkBtNyp6bW5KZUloVXdBKXh5PnY2SzVxa3llcjxxbVAtJnZ7dFRLLWg4QXt4Cnpi
IXk/WWVmQDVkQEdoYFYyZXJPOUhsU3FgN21gJkg3TVV9WitSJHpJNF5iTz40aDV1Uk9BOzFjdGt6
RGFUST85Mwp6NytjR19zO1kqNVhCM1IpTntieiRoe1Y9Jl91e0E4YCZwQHhPZSRrbXdvWGoyJHxS
c2lPbXRBNFlJM0hMalpLPmEKeiEjYjxGT041I3dHX35XRHRmfXo8MlBmb05GcnB1cyg1O1ZHdF52
Mn0zJWleV0pGWjZfT1ppRG9nR09EcUE/WEhBCnolcyMzbzs8UXt6VkIxKyRrUHpMPHBTOUxIbz01
WVVTV14lJXgxeEM3Yntja08xT09+TjxgIW48VktILU9PTF8mdwp6MXF6b35gX1ZuIz8tMTBnUnlX
I2MxKWtVNHFXflpuQGs4fDRkMVN+cm9NZ35WSW80Ny0lTV9mcksyV0BfUFRXS30KejR9TzdIbm0t
OW8rNCgzYHVBYDNgeXwmaHg+KzFPej9jTWo1c0U/OyEtKno3XikoNjUkQzBaQWptR01qPElwJUtv
CnpZX3lmVHdxRHMhYGVEWmZqOXteamBofjRoPjRfbD8tfUJQWFI2alo5K29ubD5qcExkQyFmam4/
PEBAKUVrdjJJbAp6eDJhTjFqNFojZiVBO2QqYj54R15MZ1g8JFdEc0dxNkdee0UjJUM4cDtmVmRq
NjJORkxaIV4wJm9WTlVoY1BXaj8KekdIal9LJHhqb0M1TDsrMXFJWWRBTHdRSilud1hIOHJtYEol
VDNrfEFzYGp6dSNhRF97U1J0NnMhZj48b2ptfnpsCnphRihWQjUhaTtkZV8+ZWgpaXZYUDhCU21g
VyhtLTV7ZDNoa05rcnJtdlVgMEhHWFVGKW17Xz9uJiVST0QwMChyagp6VFh0S25TRGMkVHJAeDBy
Mlg7I0NqdCM/NVdrV2tWSn1vKE9xQ2dpIyNWNlReMHpzVloqWWN7YnUpfnJ1OEZRJXgKempVUFE0
JGVuamktJk04UVo4dDYxTm9jZSl0e2A/VnRDIz8jQW1Calk9fmsjdkMmbnxtQ3pTLVVudXxFJV5N
MiR6Cnpic20pWUI1SVlvZDB8Si1mUnxfKEBxVzUxWHdDeWVSc1AqJCtiXkMjc3lzM0RfbUttTUg8
OV9UJVpgX2ItUEl+Pwp6aFlre05wb2F1JWwqI2R7MSZ6UEJwQkpsUFdxNDJ0cTYqWDM2M2dSdWNU
YHZmLXxraGRaUHUyYXJTbHxXU1leXzgKelR2ZGJVbCh1LVJWdVEzS0NBPGR5JStoZWJ7fjc5KUFh
JmZ2TkokN0k0SGVsITVfV0AkYFNJbUckNkdLbUlfKz1oCno9OWZlJnMzYH1OVyhGPy0tPTFvVkF4
PXcxRXJWc0EhMSlyNm4lI3FwZndQVComekdmRG4lPCl6O0debiglcWl5Owp6RzlIXkdSZDF5aUsm
I3RXPTR4YWA0aFBLQ2RPbSNIe2UhKGNwdlN7ISpHcDNZOThiYGtgfD48QTZBVFF4dEw0cjcKekp1
fHJRWCRTPz4/RFhwb2RRTzxtSE53MzBlcShgam9kP1hqSWA5Rk5qKFQhLSpMKH5oZlBUQ0hLNGEt
VEclNnlaCnpLR2RjaDAkd1U7cjRQXnFAO3xYNyk4ZnYjKiRKeFk+Nip5YTc4RnA8c310TG1tTVAr
TTFIekw7VG9QTXhnKG9RPQp6IyZSKmpzNTQ/fkpVenxJI19pbHElfWlJeS1URjtvWDhmR0VkQzMq
S29GT08+YighYXY0ZXJMZV9oZ3xwdERkTVEKenJTd1JjdSUmY1gjeGYmK0ZGakVATkZDUFAoPk5u
ejJZS2I8RikrJDheYnBDMFE0QHV9Yz93Ki0jdSZVRG4xTmArCno/KHQ8QmVPdWRHMWYmIVFlVjt4
JSZ3MnBEeGZIfDU9cy1ZdDZfLVdeQUpjZjw/cyFQJSN4bjdUXkd8ZSttSzNVYQp6WDw+eEIyY3ly
R1hRPlU+QnZudkFmYkRTYE0kJFA2NlBWOUw8Q3dzSDl7Ujh+JWt6LXFEZFdJMkM/ZmdvXzd+SmwK
ekttVld4JkZ0WnVfdT09Yk0mQVlHP0R1YV5gKmxMMm5jUXd0O1ZBSU81dUVtKVpZM15pPD1RVlFo
b2tLUmtzcDxRCnpWfkwjbHprYTFLQFY2b1g5WX5ASFdMeXVxczxKNykzfjJobHtYTXReVnJ2ZjlA
OVpheCVIJHdlUiMzbT9MJTYtTQp6QG9vPlZZZVNQJklHQ2NlZjMqVSRAVXMoS1RHWVQhP19OdGBh
NCR4fWNxQl4qYX1tfWIrdn4oY1Z5a05wT2spI0QKelgpRFgoZWlgOWhibCtRdm4+fTB6SXc/YVo5
O3p4eik+emZEeWEhb1UpajheR0R1WFRKIyV8X3QoX21lNEVzPmI7CnpMdXRKQGUkYmxVU212cURz
dH5NeG1yekZNKFZMYllqTnA4SG1kIzQ2ZFFeTnM2Tzc5NklCfH5BVzZrI00te2lMMAp6S0Z5eWU7
Ukp+XzJzdXZ3cCNjQ250UDROKD9JPEM/ZUpFTiN0QkR7cWApN3lZZFQ3YCNtZmlpNDk8WiZ8UXhm
JUgKenEtVT8zMEMtYjdjfmlpPEtaOExSXnF0UzNgTU9wVTBMREQ4dWZxa0dpMio+NTt5MXh+ZjMp
O25DeiNVemZKOHtKCno5MjhMSWEoejZMWEQ1fjdjSlZHSUp6LTlAVDxqdG95bmpUKVRhKWI3ejRP
R1NfaWBgNkgyMkI+Q1VxfXtfXzhUeQp6UUsqNDdqU2VmWWA8YFYtTz1vcyZ6TGk2LVFPZHs0MlUl
S2lUdVJ8RUlqUDU1TSY4eDZ0ZDEoVCpzZ0tWanN5TlYKek41a0JAaSkwSVNCWTtlUkMyMjZGbXZH
V2kzeHkwQkFwbGJWR21KTGVtXmw/aklVaGl2ckFgJE4/SCVIcU5wTyl0CnpFRCpqOFpkb2J4Tj41
RVBXNXJfXlVHP2RwRjJiVUszRjtkaEw8RDxDMX1lSTlucShHWGdLYG1Hbnh4NjZHdmdRKAp6YEFz
Skp1Y15Qe0Q9JihTb1Z8STtjcFlENCpfRDh5bSpDYDV5P2dieiNea0pKbXdkTS12bDFVZ01zVStO
e016V0YKekB3Z09tOGY+RW11PT5XKzZUSCpxck1TVTJMVHdMVVg0c2UqKk9qJmxoRWppVkoqfjc+
anlfKEU2bXlxIVhEKmxxCnomOVY4dE1mLUg4I3Q3Oz5vUGwzTCh4Nn5+WTkyYzh1e21kXjc4Xmdt
JElJTD9aX1ZFJU0oUWxpdUxncHJaPGg+Sgp6ez9CS2JQUlVSSzY/bDA/PDFnY2AkcUk1YFJsT2lD
JHhVY0pjRGNwSCpKfWk7OURpS2hBRT9vRXs7dV5uaV9oMXwKeio+IUs+ajhCSFhSS1Y3QGFudDNx
K2RfNnkoKkRTbWxZd3M5eXY+TjV5b19BdjJUeFFCd0V6U3YtVm8pZml8WiE2Cnp4S0s9ajVCODAj
QVRwIy1pT3BqT2F3dHl0MGErWWhTSTdHSiNQXiQkaE1PQ0I+KkU7V055cUJfQEJ6YVBWUllocwp6
M2ZANl84NkZYZD9mTShJMUFsaHhNXnN5ZUF1MjdeVnpsWX1AVnwwS2MtKENOPzRUNzRIO2ZyZiVQ
M1ZuXjUkPFYKelpGTmBNYDVlfE5DZ3lBZEdaU1ozejBiYkojLWlNV1BeQSVzdj5eSy1eTCkyPXFR
KkJzaCgmUnVmfkJwQVlGWFZwCnoyRyhhPGJXIXZ7a1AtfHd0Ji0/QjYmVXVAeU45KDNxZlJFd1h0
a2ZvR31IcVczSjU8JFlna3k4bXpOOVJCVi1zIwp6ZUZ1Y3FieUhII3dBaDdqXm4oOVlkRzJwUlJw
RXFQQnY3RlA9MHs/UFp+SEBKN2tuQzc0JkFnUFg5RHYzPyhkc3cKeiFeNUFZdkVXUyRRTz1WS2dU
SlI+NSp5YE9DJnEmcFFCPTA1aEw/fDU+WkA9OHI7ciMyRWstZFJyIUcxeHAqQGhZCnpzUFFSaD5w
Q1lUN2ZyNkowVno1T2lLZXBOMlBBbTVuVkFfalI9MmF8Y0d0SVZxO1plWG1CXiFKajZVVVhUNkR1
fQp6dkh1b2JYeD5lTUoldk87ZDN7WXlFR0V8dEs2ZSVQMiF8fmlEbXFyb1FzKWh2UkQ9QDNkNkZC
VD5HfSglS2RQQm4KemYoQTlVOVhXSkRMUEImclJIeFVrZkJPVEtlUnI2WmdtS1gpb2U+Y2M8OW9M
bUtVdno/KnRqK2FtTDR5NT9QO1JYCnpyOEFIWHIxRXheOTRFJVdGOyNhJUxlVEtwaUZATGtTcWM8
PEQwSDlFN0AxOUM8VGFCezNKPms1VlR9JTled0s/ZAp6V05nditpUVJRNj89fiFtTFgxdXZUfjlM
bjc9PCoqQnx+ZjZ0YVd8X2JrOSVSKnZoZVdDJUhONV9zMG1xZjt8K0MKelJ5PT93a3tjRGwpdGde
R09BI0JUWjgpQ1MpV3VXeVBBQjFoJSU7Oys4QUlfS15WazJ0eX4qNH11JVphTmI4fE81CnoqWmJ4
dWMhaWo7ViskQlghI1VMfVEqKVQld0NTWWVXMXd1ZTtUJWJRc04kcEpgIT5oamZvSy1Je0s1Z2E/
NFgwRAp6JURsMi1ZVm9oc3lqczJkQXMmTUgkTXApMDVVNHk3RkQ5UFZ6NDUtaSE4RHlrJWJvSEdx
c3FpaGh4VlZtUClGQ0MKenZOOXNYJHdlaXtsQCkwZWVwT3QjQXVoIWdfRSZKQzNtJHd1VSh9TFQt
V0dGJmYtR0wxJW07VzBaSGR2S2o5R3QpCnpERjt6aHdQWl81Qz0mU18+VVpWVkcmNmI+bXNBWUJT
QjdwOSVxOV9JRkBGMSFJPis9ZTY/PHoqPCkzMWk5bHNaKwp6fDd+TS05NjZGNjkhfSUzRFh1SVg4
eWN+NV44OH1FYWcpIzg9WGtiI1I5clNpM2pCcUtmKHRaTmtTN3pueiROcCYKeno/czlxMTBrNDFl
LUxJUnZANTImRjZHbW0qTHltbGtPPVlZSXxgPkQ+eXlVVkxocVJsPnJTfDR7Y252QHVBaCNjCnpJ
OGc7KXd7VEY8YVFqNTJXOWZNNXVrWEVsPFRCZTAmNkJCI0F0QDVeaTMzIUNqVn02eUdNQlVBX2Zt
eU0+cDB+OAp6bX1uVHU/QmpvOCg+Z3tQIzQ8cEwpfjJQVGV9WXAhP0FhVz09RSU3OD1kKHtKSVQx
NHVvX1chbV9eKEZsY2VXIUkKejAwa3VAdCVtSl9NQSFwZVRVJC1xK30wdD9aTnJNc0F3RXdvQjhN
bk9MNFp5anNAcihVKkxRaCFzQkVUTlVQdW9tCnowZj9jNXhhaXEkN08jQHwxdTFuQTQhI1RSXl4z
eHVXOUp9R3opNl5xZkkkPC03bGtufm9ifih7Mz1BS05DUV44egp6TFkxYTQ0bnJ2cHJEN3F0Y3Q2
QDBxaCkyMyY9KXBGZCptd1U5PDZ1cWJrcGRmMjtXTGVRS0YoP2xxZDs1dCN4TWcKemw3ezg+K1I0
aHh7NyNpYCs3JWJVNHAwJiVvUm8mIUZvdzIxVTVGb3ZGS2pUQjZDekFJe29NOClIWitxS0FgPTh0
Cnp1SCZBYl97JFVJMD15U04mej5QZFIjOUxNalNtViNCXlB6ZnFkQzFsb2dKfXYjfmsqMGpDfn5e
YH5tIXkzTyZZJAp6OVUpOFBHVypTaEtJNXU0S1ViWUFoRndyRy1mS2RNTGBSKiNeN3ZmPDNnTUY5
bztscGlKMm5BPSNgfTBLd3xIJC0KelFrJFg9bWphM2B1WU9ZPWdSKDB9VlBYbFlqOWNZcENIOGk9
X29EUVc0UCl3PVZefDVedVZHSGA3MmlLfSVlOXtsCno4M0EyOWZIcHcxOCo2JTBTSnojJEg2MDA3
YDQ2bXx0M3dLPG89YTFDJEBgfndKPVA2RHoxdn5VRkxJcGxGeC1yWAp6RyVkanhrJWFOSHIjMlBW
UiNzTjE5X0BtV1dQK1I7djZNbE0/MClHYDVeYmI5QUQydlJrKiMhUFdyZnlqLU0jWSsKekNXIzdw
PDluczFWJjMwSXVTaEVVWUVvbWAzQVItZ1l0JDVkSEE1dmI8c3lLUW8wR35PVSlJdVZYPllOY058
fUIrCno8SHdAP0glcUdpNSgjbDJiVEdSKGQ9eyh0N0tYc3JfRXlrZUk8SUpqMi1PT0s+QGUlbEt9
Izt+a0JDZktMJkxHKgp6e0xLN2YyQTdHR28hUiV7NXNHe2BBMkMlSjd+R3JlI25tKz49dE53cXw4
VzU+eiNkfUNfeVNJKkdCVU04amAoRVEKemopWTklOGZuek8lMnM9PD9+P3AjRWhqZ1VsJUFWUGEp
U0tBNEstLXQ8fn1MdDErb0dldkZ5X2hwU1F0Ki1HOD5SCno+TSlUZCo8KklhMURFNGNRZEsoND89
czB2VVdaSj5oV358VmB1Q2sxKkV+X2dkVHM5SElAaH5PPEsjdSg8KTN4Vgp6O31UejBGU21WTl4q
QHFFZXZiY25mVEV5RzFzJUtefDgleGxjTTEwUWJ2V0A8I1prYVpjeiohRWgqWUludjwlemUKelBZ
THpmdT5SKUd6ITFrYG9eajFKbEVjXitRPzZhfEVYeWx5SVdsMUEpVUVGJVBvRU5jTlBvd2wlYUx2
SikyOzdDCnpyMDhSUCMyRGlFZXdeWD5ZdjR2dSslRWhlQklUNWxpaS1YUCh2ZyZ0PXtfPjJgV2JD
cVdDcGpmISUwJURtSCY8Kgp6Z1R+MlhNX3NPKjA1OVRkM2hhbGRzNkRBX3lVbTMmQHQ9JCFseGh+
Z3Q+UTImTmxNOTBfMzBOWGU3bUpxS05GRHgKelR9YjlIYUBDaktQfHR1P0d9JnhwI1g3a2IybDBG
X0RnYEZTeDhPayFMb0B1RGBLeGAteWsjQSVaZW9tNyMxRE5jCnp4Yks4ckRHfW1EYzNfbnlqZlJh
MFNkQl9tQGIwPWJQWiVQPWRjNCpuY24+RCFISz4/S2Z0NkdSdkU0aV4zYmRxUwp6ailXMmo9JVV8
O0BGST1BQztQVz1OQnVOZEIoOzdWc2A7YFh0MTswPFZUdShpYW16Z1lLQWQoQ1Y9TVl9QG9aXigK
enVDWVIpdzUqJndrPWUjMlReTT5FYmB8WGhtYX5NUzRFd0NgWnFDbTQ3V0NSWHdvNXBaIVdWfWha
MHRpO0lHOG0wCno5K3lrdHhzdjB4cn0tNjNCak1tNSY9cD9+dTcxTDktXyk9JTVmVG5RKDdYSDlk
RztyfWJVKS03SD1RJFdjV3R7Rwp6KmleO2ZjQERJWiklP0RsaW5peCFmKTRPPm59TFArej5SKS1Z
T0o9ZnAoSkp1UG1IMUMoYSEyLXE1fm9MVWVzMksKekdDKTRtRE5jIVVPRn57Z2VzUigkfDJWd2d1
b2B1WU1AakUtalgtdnglMFMzLVowSGBoYj1gXnU1MURAdzhYKEtJCnpPZjQ8bG1mfVc3VElBRGhK
WkY1WSt5YktISWpDMFd2b3tVJiVTfHZTXnhASD9hRTZKaWJPYC1xKVAtVFQhS3pkVwp6NzlrMTht
QTN1VENkUlAlQnw7dWNDY19nWHNkbDBPc2hPJHlvSVU7Zi1Fd3xYdDZCc3JyNXI9SjRVME5TMHxL
ZWYKej5ZS0s3VmZwZmNfQlFiZCthcjJVdDl8OXBYM0BqM0tve0B4alV9VGkheU9KZ1RFPjN5JEB6
PyR3WDBFdThJZ2VOCnpTe0ZCSm0hS1FtP35jMkFQMUVScUVFOFkhcUhJR1AzYENQS2MqMzIwPTZE
Xnd4SSs7UEN7WVBVc1Bsb1ZeQDhGRwp6RCh0XnlyTlE2RzBZcF8xT2ByUFA7TWheQU0zYDNCI3o4
OD5LOWs1aTFfQHEzQjJoKHM3R1YlcCZEWT1aO29BKFcKellBclBrZDtlNTZkVWdRcTRnJT96PmAr
fGFTSlp9RTB6en4tNEQ9Z1ItKHg8bnNYYmAjVV97a3xgVSNZMTRDJXNYCnpTMUpoMUxCfVp9M0l3
NXRIe31KaHdHPHRtUkxNRz9eUlJfMUBjYHF4Q3YoY3IwZXVyNnE5WXQlY0JYTyk7V35SPAp6e1Np
NXkwJVQ9czhhaFJZQEtrR2VhI2x0T3xHRC1mc1JEZnU/emRvTyhzRUZkdjNAVDxFVkdneFF2RyZ0
Yy1KPzkKej9McnY+M21qQzZBT3kxVFFwe1hPSUF9eiNaeClWQGotUHszT0s0WDxULTZfS1hPfHVj
KD9NLVBzPUZUMUEzb085CnpeY25LNTlhNSZeZ0ltTkNybyZ4PEpfPFB1Q31FeGFAZV5tYkZIdF4y
PHxELTdsbXhKdUY0SHRDeDFyMHMhdD00egp6VDRLb1Rod2xPdHQ8S3AyXikqSGpue2lmU3BjS3xP
SElkcjI2ZjBgWns+ak4lXn49VXs3flpydlJqSWdJX08xMVgKeipXTXcjKUpFdD1aJFYhdVQtKTRO
b0VSPSMmO0xAQWRAKlBhKlFfSXkpYVVeS25namlaYileUV9DVXp1M1dvOEhLCnpSM21QZWQoMF5F
YDg4bTVIQHI/WlVwblVnU3Q1Xn0lPlF9bV5tVXN2ODU4TmFSRCFNPmZqZkVeMjJtRG5ucHBTagp6
cyQjdkMyeEhzYEMqZSNZWlQrSzZlQWlgYXI2YSMwaFRZfTsydEk/SnVGajR6cH5AOTBlSlZCKkhx
bXNuO0V6KnIKemR2UlJReW1YTzhHc0VhPXV+QnYkYm9UY0NOJnd5UkcpQjNrUHIrdlNDcEVZWDdJ
UVY1a1p5RSlZK3o5RjdhTmNFCnpWTFdGfnkhYzt0e31UQnZWYSokZz02TVJFc0FqVCV2OFNCQTso
YXhONzAzKlcyKWJZVSkrO1ckKlI5PEFWbHBvSgp6KzRYRFA+aUQmMldHQCtsc094MTFvQ3Z+Pz89
c0JRekU3MypvJEpod1Z3TG02dmcwXjFIe2VEQUJWPEJKP3dvLW0Kej9VKFVLKkc8MDxWVFY+LTJD
bWdoSFlgLXNseUp9eGNkKTN9aUh9YyE/OzlBej9XPjJVKjghaSZ7VEAmalEzMUthCnpDNm4reEtp
P1k7KTBmKFVQfDY0SHdRQD5wM2FLYyN6TTw4dEM4PGZBIXVeP2RXbjl5Iz55KHFuYD9Wc3RVQnIz
dQp6WHlzZUtfcSh8V2poKUM3LUNqMjgwNyp+WmhHQHJ2aSMrVzJMdWh9V2JKTUQ8UjBMTnFuWShq
OXstN2F7eSZjQGsKejItdUFPK2QpTnQqS1BBfkxgeD1GbyplYEFFcX14ZjlpMSg3Zi0wbmh2eXs8
UiZUbkhAb153KiZ5KnVDVnlyMF9NCnpQckBtaFUweiF8ejRSY0RsT2pifEIxYkNOeF94bEZTZX44
UngleG8/aWhAeDtqeVAyQ1o+cD82NmFJUihuQVh0dwp6YmFYWUBAd35HNDRoc28jSWMlZ3lwTns+
KUxkYmIkX2JufFFnR0VLODZLejtmNjxDeyZRX0MmIWhLd35tcjNkKiUKejVkeHFKMDtZQ1lxfXlx
a0Z6PVEwI09xP3lrRV4qKW12bUtpb1FtNVQpRW0oVkdjemRmMn1WJHA3cmgpKiZXRX0kCnpGYClx
Yl44NTJeYENJVng+PiNCUClsNzZRUyt7QVVfMEsxOChnTy09REBOSnR7XndPcXxLPVB+IW8mb2Ru
eCZUSgp6TH1RTDRqdnBhcVloT2dhemxYWE5QaXQ4R0w0bEUmIXBBPjVNaD1Gcz8oKntMJlV5QXhJ
eUZlaVEhX0lBRmU9SlIKekltZXs9c2NPODI4ZUpJO0k9RHVXaFJMPHgqNVJyYVdtb2NBQW1KJkJL
dH0waCNUXm5tdzlEUFBaZGEzbmt9STtzCnpFRDx6U0V6Xl5fan4yYD9YclJrbjk3b311dnxed2hp
WV4rOFkwUlB2aGNZc1AmcEtEJm5EJWJleEcpe0lkSDE7Pwp6OXwlUHRsZXE8TiYoPjNUc35oOW4o
SnB4QG9pTjI1KzMhWD5XPzEwPSY0PmBTZFJjTVRPcitjRnElJkxWZmkzRDYKekY3fHMlSXtXY3s5
N0doKk5RcHcyJHo+IUs0Z3Z2M1Y5Wk5SbjxxMF8kM08kZ2Z1UGZ4aFpuMCh0QFUpaWk9QWhmCnpo
UkpgUHotdzBJTVByMUVFPWxTWU8kNmRWJkl5b20mOWd3YipYaTk+eF5kdGE3RGc9b1ElcUZHVFkj
WiVae2Y8cAp6dDQ5YigxZlZNYzhOaVgmXnlCTHsmeH40VzVHYCN1Q1RkNyVCXzM3V1p0PTE2eUVz
eX5MeXhhXmklaHFMQUF8cEYKej1SdFdSeCFLc0IydnItJWR8JlVRMDckSy00amsqKjdaI2c/KHgw
Yj9qYX1kcnI3fUVrWmBvUjlNXmt2TTJHKjFaCnopbyQmVyRVWXd6WWt4USgkbkJBT2ZrIVBoezd0
fks5fDc1IVB3UDZlVVRhTkRHdl53WU48I2xaU0NWNVYjVl5GQgp6UCpWU2l6TEZ0cTctYEc3eD5m
ISQ8MW4+VUk9OSN8SEoyODBTOU51RDRUXjJMemp2VmdxT1ZWazlMJnBtUU9QT30KejU/KndMdXll
QEJMdHV6Y2EpMnMmKzxKcWs0ZkZSOyVyd0M7a18kXj1qO2A7MntgNilEUnw4OyNMRGQjdlZUeG44
Cno4NDBFentBKjFqTE9jSU4rJH1hMU1yVXhrOEo2ZF9qSm4mfFpfZ0IocjducGB8Q14/QEJSO1k5
K0Fea3Y/S0slRwp6PypLTWdIVWNFcUpgNFNQY29ZZDI2eCtMPCF0VXVMQ25yYVZzZl51IWFFJjJh
VFUpek91QVB2USFmaTI/OVVLZjcKekdsKyR9UCl7Pis9fmdzeEx0N0FwRWB0YjlZT0tXbUp+VFI0
YVI5eURLYyNvNyhhQl51Rjc5TSMyc1hFQFIwNXBfCnpmJll+VzBqQTs0NyV4fHdyU0E2MVMzWHhA
QmM3V1hRbVYwZXIpJlEmK3Vld217aTxFRm5pXj1FIXdpS0szTGhDRAp6YzFQITBJKGF3SSU3Pik0
c1B9MkghfXNZXigtdV9UYmQlZkolSCFrWD5GTWRwJTFVbC1FfWQjMjRBaSZkVzI9UGUKenBjZVlJ
eFBCVjMpflNiJEZEbzY1Q0JGR1QwMFRpPHUtTj19dG8qbSpNMTBvIz11OTRhYzR0VH13KS0mMHtg
fSRVCnptWnlmb0kxMmpgPGBSWkVOYGo3Yj9zbU8/b2pNOSpLbmd1NUJfJDt7bXBvPUxBdEA7LUYl
YnIha2NnQyRsVCpWawp6JGomekdlWjJrb3t3SVJjUTsrKEc9KFlvOWU1MnsqJlBKaWVtKzNyWGwq
Tk9BK0xyJjJDbkxDfTMzWGgtMG4/NmYKeiFuRjl9bEMmVncwRT9SfUI2dilxeihlZWVleWVlIWN3
SDVob2w2Z1Ywcz50ZjljPU5FKCRYdWhfSFYrWkcmSlZtCnooYEM9eVlnKG05TjZpdnprXzFxSkZk
fGk9NTtqVkZjMURSUnp8RllPdkBgWmZaZjRFLUZGNzNEek11QjhxJjhaRwp6NEt4cyhkZW08JlQ2
I2FqT1d2NWI2MktCe3d+P2tteDV2RjxUJVZzYCRqUU1gUWlfbENnRkZzbFZDbF41PT4/S3sKemlp
JjxHTWNeZ0YyMXdjK1Q8NnJ0JkxZUkd7WC1KT3d9U2dwSzgtcWskcyFwMlo+RFJNam01V2AyOG1Q
TCRTaFBHCnpzKChlbnt9Rl9sOVUtPi1BMysjRzFjTVleO1IzX3tsaz8tc3JUPVVFe317I3AmamJF
SDZ5KlAjRUJ0ckJ6I0M1SAp6dWRSY3lqak02ejIhcXV4SXZUcVJLcm55eGFtN1F9ZUZfUHk/bXEl
bTZFfXdjIUBmRjAkRGBabyM+fE05ViFpO1oKenMqU09YU0xlNHRJNWElPmcqRzspXjNMandTaHh1
Tmh4UEYpUDFLSDhkIX1jJVYjRXljPHNIbnomRmowUHtHOzc2CnpHYTwrN0t7V3B9YGk9WCZFSVNW
bSN4YndeZDcrRzdMbzkqTVB8QiFwUGhoXnk3M35YfUdtQDBUWFVgKnBpNmZvVwp6ZUFvNHp3OUdI
TWBeU2UzciFQaDg0PktscHN3dEFzcn5QNFl2Tz5PQi0tPE5WdCFBP0VKe1kpTm9hTW40NFFSdjYK
elV6OVUydFRnLUdoTzF9VVkxaDNVUCNoaGBASGRKIT0odzhvXkBIKmplNWt6fCRAeHNSJm44czBp
RFQ8Nl8qfDwxCnp0OTlGKiQhQ19hQ3A8PmskPV9FbHsmdyQhO2FiKDx3Z0J4NzA9XlN1ZEtsTlFz
YkBOQE1NP14kVCEhbDA/dGxIegp6QCNgZjxKIWJEJCVEUkgxN3NwdTZ3O29OcXJtSVchcE9qQ2Z7
dlFwbFpZcSt+ZEYrTSllKWszU3tSVngkb0BoRU8KemwrQFNqSU5xK0lFPEwoQXV0bEFAUyN+d3dz
T3tkfHFvQWBzLStMSHRtPmJweyF5OElHR0tVWXhiRCNnUWo0QkJoCnoqTm15bGRrZ007Ui1BcHY7
eiY+PikkVmh8QnxXSUUhe1lsPnFXI3Rfa24lWnpgISg0PnZKPSVZX2Y+I3Q8TE1ZZwp6ZyMzV15h
PVlLUVdEKl83R2RSX3pyYSZRZHQqcHt0K1goalAmX3d0UXs+ZkNLYkB5PGN7MXMyKFNrYTQta1pj
VSgKej99WmtWMSU5SGtVaWpFLUZaMSNCZl92PFpJcGZXVWpZbTlReW4lJkZ6e2QjZj5WfX50Jm1l
XlIyJkY5WnRxQmlNCnohUClSSlEpeSlURXFlVFc2ZWx8M08/ej8rNCV+NkFlQ3hsPmxpS1JBSmlE
MEh4ZlBiLUh9V054WFV1PjZRc0t6Vgp6c1chZzlwQHhlb0d1ZmViQDkwMlh2SilZaXVWZW1yKGYx
Mjc1WCppJl9EejcxTWpIQ3lpe019SFBMOStAQ2Zfcm0KekVaQGV+YSYtYChkTnRMP2hWI1hGLTFE
PDdFKWVSeXpKN2g3Y0w1RkkpPDE8WE1lKCNmP0Buc2tGRGRXT0psdGEoCnp0bHc8dTlpWHgySSF0
Zit4ITxrQUdBZShsJWx7TWs+I201VmF5U1Z7PzZyVHBqRWl3NkR6fkxEQj1BfE5uRWFUVAp6XzZh
fnRzX0ApM3hiVWx+Wj15cFdyVFA7b15tTFYwJHd4QzkxbCR5PXFyR25LbVgtQWElPWVYKG47byY2
am1JeCYKemc0KkBOSlAke2JHZjR0WjsxJnBCWl4+PSZjTVNrNi19JHxZdUpDcEc/fmtfRT5tJFli
VVIqVlBEMEZCYTE7PkZACnpeNmhxOHRKPk9+VzteSSg7N0NfZypiKStKS1B4MnFqK2VQZCkhIzVy
V0FvZ2NvQXwjdFpSVDkqeEk9SiQ0JlMqTwp6Uy1XUTJaSyk/fFQra3VQczlwMkBecUJ8e0ZoLUV2
I0B9cSFLUXBPV3dkdUUxNVB7ZWAoUjYmPyUwIUl4SzI1YH4KeiFEOy1fX1IwRTFPXlY8NF4oP31r
azQreEp3TFNCe0VOdENhejZnSmZQUS0qJFlgVTNMe1BMNDN6UUp+S15EZW14Cnp0cDF6Nml6WWhk
dUIrfSY/KTVkYDJZWGVNPEBydHE1K0htWSl0Uk4lO2RIeU9nSUApd3ZOSlhPO3A1fUZlY0BNSgp6
dWt2eV98Rj1KQWRCfXRBJW1HYGtvdHJPMTJlOXVla09HYih7ZTIkKCNRZ30pZUV1VikwbGx+Uihl
dGBAVUtneXsKel5kNlduYmYoT3xBI20qV14+M3BzeGZ1XjNkSFVBLShjanckTiNtSFM/VilpfFhq
TiRyODtWa0FTQyFSU3ZHY1dDCnptenYxPmp8QjlPXkA4NXArPD9KVXBXX1RxI2JQK2BpOER1ZW5i
dyp5djYzYmxpdUE1UyVUdmFQMUdeXkFVKUxlbAp6aXRDWiNVYldZYiRBPS1WRDtkeCFHV3lMPS1E
bk4hNGF4eT1GX29TI0h0PGs4PiNzWDZ7dHM2NnAwWTVjWm0kR2MKekxkK2BNOVMzKEstdXx5c25Q
aXBvaSFsamJ3SUAxbDE3cEEtJSNXVFlFei02OHVRTjFCWFl8JDxyQSh7MDR8TmdMCnpxcVJRIUZK
PF8xO01VKiFSZCZQNFUkcnkrVWZYMUcpX29RKU5TPTJFN0FKXmxNciVKI2BaWHxQdz0qPGRsKz1D
SQp6UEFZbWNEdktkfU4kSU1Ub1FPVD4pRzFWd3BfXn1TKXp7K0lOSFg3ZWR+fURtaFZXb0QxemF6
PXdJXkRTSCQhP2QKekhrYUhrdXB1S2lANEtTUk4zWiZ7NTVeTXJlI00reFMoWFl1dWtSaVYpJCtT
ZCYrTD4hOT4pP3s1X0FQI0NuSUgkCnpPRUpBPD56fUFMJj11cyZHfig9eUk9IWtobHszMStlWWJV
T088SDQ8UDVTeVVNZ3hZNkYlaHxGSWlaJG9mN3EqWAp6QmRUPXcpRSh7Y2JJU1pVPmU9fkh0UlVi
TnYoYT9wcUBBP0tBWlJ6XntyVlU4dXdyd0FPKzR1PGtOQCF2K2t0K3wKejtsU3EwY31xa2dNQUZm
I2ApZWolMXxrM2JiY2ghMlRoc2pje0FGJXRXajlPSlQyZnhPZjFRYVY1QHB6M1VzPTxuCnpgJU1P
TyZhXnVkZE83RU9neT9hQjw0KSp1cn1Pbj9BPz9qKVhROX4+YTxUK0ZFZndPVT0zMW9oP1FZQzZt
UTg8NAp6PlApcFdvaS1iVSV+OEYjWTFGS0I+aDY2WVlTRip6M0ReNjI4XnNYPHd0SVplYSE7cElZ
Jk8+b3V6RUcmaWAtfWQKei0/NW9gSn5HPGRAVCtaVmNeNGE9YnpZPSVvYWJfdCY2JVgtd3pAbmpi
enlQWlooM0pCdHIyaEwzdXFOU25MZGZGCnpFLXNGaypnc0U1TFI3aUJBN1ZaWG5UQEtRIVRqOD5N
NGd3Y2goREhTPVNWak5NYVFiKD12fjAtKjhmeGRTOGVeOQp6QTd2NGFmdnM9c2RQI2ZRRnxIYjdY
cWxTfjdjVyF9e0VwIz91UD4wOWV0bFJ3MiZlRnM7IT9TU3tDRFB+ViN7OHsKekpfUWx3PChiY3Bq
ZHMkdHtkMmtVTnBhdik7U2ZZMHN5e05ec0pgYGwqZE1DPm42Pl9wcXdATCkxdT8/JnJ0a2JwCnpl
SjdQSSE5Xzt1VTBUZUZJKSZRKERQOzdkWEtEOEFVMUZgfnslfiNqbj9EMkopJTB1TXYtc1BKKG5n
XzU+M20xeQp6O2RofUFGbXpGYms1N2MhTnJVVVpIezU/V3o2aHMje2p6UH1wNTJVMmAxJW12U2pQ
OCt4dWZzP0JuSHV7UCFvaiUKenEydUZ1Z0tRU1Z2N0NYdXdxSEhPekkhQUtDcDQxanlzM1NXe2pH
c3xHTTlHe0t9Sj4ybTtWVUY9YnAzKiR3N2laCnp8NlhBe1BNX3Q9JV8kRyRKMnNOQG00JVh4LSF7
fHRjeFpOYWNsaSskZCEyRCN3TDQ2dSpXKTtlMSltcXhjVEZMbAp6WmYyUmB3bDtFSDVKKTdPP3pL
eSF2cCNifDRSUCM/aSsoK1NAblVzKkpecXRTYUFOY312KCt1JTJaK2FMQyhGIz4KejN3OVZ5PiM3
U0I1Mz4rZS1ORXVaVVN9JHk1VkpLN2F2ZmNNb1J2U31RK0NXJXlSKj8qQlU1REhgKlJlc0diaFY7
CnokTFQlRFYwT2A4IVomJUwmVTY+Qzwtc1FBKXJBKXQ0NyhLTmlefmY0RjQ7IzUpXk0hVClUdCo8
bDV9KF5nNlNBTwp6YF8jaSp5PCs3b2RvOXMqVWBgQmhTWnR7VyEmZGttPXl+RzlESylnVUhlMyE3
dk8zIVArVUYmP0tTVW0/WGpMQnUKenpLO1NCWFV6XiRxZCkkVCRObGd3YCYzYHM8S3s3JShTND1+
IzdQXz1FQVdQUEg9Knp9NGYtb0kjKERkYFlDe3NoCno5RWctWU8mMWhqTk48d157XkZjbHMoSCZ6
Y3xCZ3NvXnhaaUxgVClJa09Ma0J6QU10aTB1Knh2KnZraEs9a1MwPwp6az5uWFd1M015bGVJeTgy
bj9JKk9PUm9LdGw3PExteTJ7PT93OH1CcS1zZGp+SShJdWI4YFAxWj1zMnU7dkgqYDgKelhkUldh
VVh8cX15TjJ6VDJ+eHhIaXwlQ3M1e3g+ckNhMWg4bmYlKzRhbDxOJkAqPWozKSp3S31xVWY/SXwy
b1VsCnpPKzwkVHkzYkR6PFpaaT1wYl47NGQ/Wn5iU0dBYVZpZT5qU1lYYzkhYVBkRiVYfDkoR1da
M1ghe1ZedSl5PyZZKgp6ZWQmUUZtLTJTdTdBP05wJClCQGJLWjZhSlFedTImWShrVyNhMl5NZ1lI
RWZTZWI/VHhZRWM0SD5ON0BgPkM5JiUKem1lY15QbSVhR1VuWWo5LStsITAlTGNPPylFJiNDRkpy
YHZIYHBvO14+M0whNGg3JHE1X3BLRFU4MWpickVwe3d2CnpEQl5kWW1aYHR0cG4oOUJOUldIYHMy
dTx4Rz1IWVNlKXY0M2M7Y3MzRCtLXjYlMT08UzdDNHspMyUjc1FWN2BNTQp6OHtuX0tSP0YoQFl4
NzNhPnVtZ2UtMnVeaiE1ei0qbWdRJHlwbTxHWE1WYFhDPmMzalREc2J5OUd5e2ZrZ35sOVIKenVy
VFZYVVBkJFdTe1QhfWg4eklscXM8U1U5VG4xK19QcFFjamdJc0RVeHNremJnd2g+QGxUX3E2X2RV
YD91QFdKCnp4YndUJSR0aG1CJSR6K1p5c3Vsb1J7V2ooTD19IUA/aiZ+MGJOY1NDQmJ4b2Roejch
bG9fPWlTLTlFRSkwfDRgewp6KT4oZFU2c3RgUFdgb2Vldz1eVX4kbEBkX2NlbjgzKGFYdXZifXty
eT4rXk8lMENkZGMxaXxXWCg3UUpjNVJmaFkKemB3ZVc1V0spZD8wNmlPKGc/VkkoMnRaZjU7bkRL
RiVxO2pXdEwxRnUtOSFxei1gWX0qJClHfkpZb0pyPGtKPGM7Cno4VjU9XjFZNytVM1ZoUXQ0eGlU
WWs5KkhOZmVKUlZEWSNqOSZfSkt8WVQ9dDI+SD5rI3Y8QGw8cTsxLUZhfFh8cAp6Q0hTO2JmKWxX
SHU0JEprVkE1VG8qblh8fD5raF5iZiphdHQqaiM2KHw0KTJjI2V7UUBMbU98a09rJHk2e3RPcXMK
eng0Q30pSitKMEJxdTwwP0RHOEM7YW9Ae2tOYCZuZHtZa0IpVjFYXzFiTUljcEszTkV2MlZkPlVM
VlB6aTs/d2NsCnp2PUJvXip+YVIlS0x6IzUre2pQYVFNT00ke0g9OHViUndfLT5BfVBzS2dhRlU2
SndtQUVjV1lZZ0xxT3A7Oy10ZQp6bWdla2diJl56a1NIRU1TLSs2R3ImaC1HKlRgWEM8VzU0ZVFy
VlZ0ZGpGLVZxTEdPaVhGXmJAPmVNbU43XiUjVnUKeiZgR0pkKX5MUD1wMmtfY2FvJn1GWF89JkZJ
fWxqRGZIOVpHdXR4Xn5hKi1kO3JsPD89Z3UtYU1FZ3M9PVZsRVpHCno+fWJieVFuYklXWjY9cGpB
IzIqYzl6S2tkMnhOSDt5aTV3Wlk7U2Mwc2t+cV85O1dPSUBOZ2BwNn1yY05vWWgyZwp6bUZ1fDlW
ZEw3WVVtO2sjfEZkZmwpcDF0VGFJTDV9cmRwQndMPXY0fFpNJD4/NEZITE90NSlSZzNMTHpNRnNX
QkIKejZjb2t5NUcjdy1FaUk7RUs0IVcxKDt9bmFnRVFuU0QxOG9SQykweFUtUiQ8YE0kcUxVPGt0
OGRtRHZ0T3RLOGQ4Cnp8QUM0bnxCYX5HRiN1bHdiI3hIRWpUYjt2dWt5VFhNIX4zNz16S1hRNkxA
QTxtKVUkZTJuTXQhbz9pcjxCYE5WMAp6KkxSVT5PblJzaTxibFZeZzB5dDhpV2VfVytsMyRJPjM+
PEZaMClfXkI3KiFgO1pKXks4M3hXbnhhZ082eklwOE4KekdldyY+WWN1djVPckdjR3ZSQTQ9X1Vq
M2F5e0RnSUhrMHB+Oz5gREclWiZ0O3o7PGdkbnRvUGFfdnN9JWNPbVhrCnpJR3tVOVFTaTBoUzVm
RmtoWDBDanJjP1hjbj9pYmtCSHdOPDFfRkBVc3FhYTwpKkkhdXs8TyZDbUI7X2NOOW1gOwp6NCtL
O1YtP2V9SHlgWnJPMmhjaGkrR0o0Pyg8cj0rQTVqQ1lQcCNJZEFBRml0Z3V2bUpkVHl8ZGxpPUBW
eCN8TXkKejwhUV8obFUzYFNEdHt+ZUE0bCtadWRsOE8kS0gwflBWbCYlVTU4RH4/fCRFWXphUDJk
MDB8IXRgMzxQOWVUJWduCno+dHtPIVRzQ0x5JU5SN09FYndhJGIqPk82dDBaO0cxT1U9UDZxbFEm
NXg+YTUrWDJPKGB8ZThzN15mUGlJaEdaKgp6MFVzcj16M2ZPe1oxU2M8Sk5VaDVPRSlwRztSe0s+
PDFPQDU2aCM0NzlLQ1JscnBOTmp3P0Q8T1JSSEt+a0hfQlgKekxoVHY7SjtzXmV8MH0hZkZXLVom
bWNVZm8mQkk+KHg/KlJyd1ZOaSkkfUU7RCVAN05xKVktYEVhdWFFMyglbFVKCnpydChCcUNyYEte
bUl3N2M2JGstQnBSPyhyI2gle2AxTWNnS3czTnw5dFJVZyp7VjNOV25mOCpYbFRFTFN6cD51UQp6
d2owbXVFbWEqbGpZY084XkIwMWk+eHFmR2E7Zk1VITFHTnY4ViY0aGI7TmA7T2FTeW49akZnYkNC
ezNOIUt9WisKek9rYktHViZNV3A2ZWlEa1I4OXhFd2R8azhyMH4yYHAjaHheSi12bVpQdlJ3Q3p7
aVZ2UCU/MndReEQwZ0BCeShqCnpZc29CMjVVYVBhKigtN3NkelZGXkV4PnpFYy16Wik8dDgxZSEk
cSUtX3NoNTVwfE8yQGdYSlRzTihzZnsxXn53TAp6T3I9JTlfdWtFSzhRZFYmc1FiPT9iMyR7Tmlt
ajU+T3g7WiVJcDVzWm5lbCNHKCUrTTdzbGo/KSUwZEJ1bGtUfEsKek5nTnJEU0QjKTc9WWc1TnZJ
K2owVW5IfHI1ZyR5VWdtb1MzJihkV2pofFg7SEYrUGsoZiZ6fVl2VUdIQyZie1g7Cnp4QGlJNmxL
bncoMWQwMEEpXztGUiRZPVI8RDlVaz4pNj1JcmR2YWRReitpTGc2Y0ozUThhUGc4WCRCTjtkfEMy
TAp6TiMxd095dXJPbjJzSFk7YzBDS3FfTF5VYHozUnN6cSQhb310S1pBMChnRTRqO21GSCg0WFhC
R3htUiE4aGRDYloKekJfbCV4NDdsVFR3djg5dXRyJiRpVDBCXm5tQTFNTnZ+KGBSMTlUTWV7VDx2
SiF9Y05xRFVHZjhsJEVZJVV6cCFZCno4VExQVkkyRlohVl57VDRaYWs4QiV1ZXtzOzFyWkgmRE5l
bUVjZGI4QDtCVTIyTnxmJXJLMWwoKio1RVRpLUA8Wgp6TEppNEpjKy02RlQqeGdxNF4pVXUwezRl
Y0JwVz5MMlY8ajV6WFdWOz83WjY0citnKz4hbDdaKTdYNG4yVDYjcj4KeiZjQTQyKkh3QzVNU3RJ
WGJzZzwoNnNsUEZVaGIzb29iNUc4IXpCMCtoSmB1dEkhaUpzJEs2ZFZjaio1NXAyRVBfCnpoWGsr
TUBPQTVnYWZMTChYWXtrUCt1RFFZWmx5VnNjOVo3QCZvMTBSU25CNWQ3dE1LIyZnWDRpTm4tUEdJ
Vm9KMAp6Rn1SLV9AZ014Jk9qcGIwez47TFN3O05se0FqVXZMJTBJTmdvYlA+Q0U/VEdtYmdKKzl4
UE9iaVUtVSFERm9FLWQKelR6IUBQZThYK2AkQHZDYk1kd3pAJEVEaU1LezgtVVIzeiVWMllyU3JJ
WEZ1fD07WFpTK3E/ZzkwZDdCXzE+V0JMCnpGblBTO24+QTJYKEhJO3w2V14mPTBaLVMoUjl0QF5f
JTMtZEJKfSNPRSE1TlB3TVZubCNnTnRKZSEtej18SD1QZwp6LT88YWRlU2RCbThmJVEtTGQwRn50
TCh0TWU7ZDZuWiZHaSUwSCRiJkxCfHV1Yzd2PXJ2T0cpQmlKUn0kK1VUQlAKem4mVTMpJWEwRDg0
UVVJSmMyMFhQNCYwTEUtPXB4NW42PnB6OzlhMTElVWEhRlp6cERTOXk3aGhrQlIkYz1afGJ2Cnpp
aSV5cjMoRm4rd3Nyc09QUWMrMkVMNHRgOEF7PGclUl5aOWNEZkF1TlduRDNXdyhzSkA7b1R9IUJA
YUJfOXUqaAp6e0xjYEUobCNMYk5BRjR2b0J4JHBhfjRNRSV0aXpnJUtYe0FAJCFoUEV8YCRFJUhC
R0xVe15sNloqQnx9Nz1sYmYKenJJXmElWF8xVmxRe1h1YFNrKyNDeTFNP2c1e3krZ0ZzVn4qcTVM
IyNJTTtnSj9AanotcyVaLVZVOCNhamtHQztgCno0aEAhcipMUURVX2JOKntrJHsxQHhQeSg/SWJY
SUdQTzsrJEBIeCsyPnhDQTByT25pKit+NTx1I3tYJlN0Zkp9Jgp6bU5oKEJBaTt3PiFGM2JkZzFm
dUIyNnh2RGd5MFllMVpVJUgrPUVNU0MlOGs5O09APlBfbndGSWFObms4Ty10MzkKekhNNj9EPyFR
e2s3TnUtR2heXmtpZi0lMUgrOHN7VXZiMzZ5JX5RcUttSEZPM3pjYCs+PUg+RldeOF9AJiVBSnRF
CnpnTDBAO0Y7VjEoVjxRdHZBbXw7WV5+QDdfSmNVfHlJc2BMJk5Ue2VfIVhTdVpWIStlQ2k9QGsp
TSE/bEpFXmV7Jgp6S2UtOGVoWVNuUyZVRj9IYkxIN19fQzZXU15naUt0e2srfVkoRkl7XjBzeE0z
IU0rZ3YySmYtR3JSQTtPcT8/IUoKeiN3RFJyVDxNYFZBJXtoeSNPaSk0RVEwKXl0M3JXYz4rNTR+
bXh3VWV1XmZUUDZ8U0sxYUd0SFJqP1R5SDJrOVlACnpsKjM3bHtmbTdwckA2dCFxQ1hkM0J9fTtO
OF9oQkhmT35LQyE5Sk9tbiU5QikkPVpIP18zWFBpM158LUR4V1dmOAp6bENHaV5xP29qTXhBeEFF
P2FAR0klWVNaSDtxZiY2VXBqdlhiK2dNNyFUP3IkRztzYUNoaiRWZVMjeXI8R0NJK08KekQ4UFd0
OCNxYSgpOCYwX2NndjtjUWAqWCpTMTtaUEFod2pQKUg9SHolIyYhNkhoTHZeNzlYVmtBcWdxQ1Ek
KkFCCnpfZE1lblhDay0wUW54a05iWVRVdVpCcGhOTkFCRHNxOVJ+MWZnWkF3R0lYdmdQc2pQNDJM
cnJpczc8PEY8IyYlcwp6e1NPO3lCajFxUThfZFlzbV5PXzhAPXtBSE9IUH1PWHh7SHtpb1kqZWU+
YFQ/PGx9c2tjXlQqWE5ZUE5JMj58ZSsKenEoQVpzblJLfjQmNVBvZlpebWpwM0pjej00OGVLfngx
QnU2d1F2c2p7JXheYm1fU0tZKE5qRTFwTipRbFRrJHduCnpiPUY4WWlCSkBuVEQyfjJJJEcpVXQq
JT19d3cqSk9YNzs3IT1Ve2Y3WWIpWXZlYVkoNmUoYEVOOE5tMUZiRFA3Xgp6I1VvT2NhLVN9dzV6
PzBMb0c8P0RkMiVJWj49YWFEJkRMWENIPU93UEU0bjZBcXcrZi1gKmA7K0pMbjBsUksjcGwKekdX
JjI4TE1jZD1UWWB2YSQ7KXklWU0qbz1KN09qdipmUWB7dV8qM1RkaSM7flVGMXghcWY/NjRYO1dR
Tyt2P3hCCnpSNk87d2deVGk1SWlvdHhxPkh3PzdLZ0AkUXFGTVUkRUNkfTQ2PHMlVX15aHN6ODlN
PyZme2AhamB0UUVWZSR9TAp6NSNZfVo9T1psKlhMVld+NyR0XllFdkJYVU5efD0xanZJQnVAa2Yl
TW1IVH1sPUhBTkU1dXJHX0FmOXhGQWNQQT8KejNmfG5yVCNZflAyRkBWJnpKYHhqY3YkfFYxTEZn
MyhpZnU8anVoVUI+fHRBbkduUzd6UUReKCFLPXk9SSRheCM1CnpOYiQ8aihgejUhYz5IfVUzTVFk
SVpwcD9DK25Nb1VlckB0TypxQ2QwSDJoeFNociZvfWxaKTlfYGQ+LWRLS20wagp6b05LeE17Y3I2
aE1FVl8hc2NedT87eGE2bmEyI2V4I31TSzNmRm8hND9lUGFuSlVAX2h2bCVYNSkpTUFzP0s4VHoK
ejtPTU5sUnNAQWo4N0x0MnthKWFpaGhAbjZiWCE9IXFsYSZhX0d0R2U7YGw1fD9wQ01+NT52Zzx1
N0crcUJZWEFqCno0a19QeSpIQntURX1wPGNhekA3XnAlckRhIWkoZXMlbkQ7MF9WTHJlS2l9QzZi
aiFuYjhGS2ZkdiFlbiYrKVROcQp6SUNeQWJTP2ppcW1MSmtLanllKENxSzJoYjRJI3p4RV5SSVY+
TGlSZV81NTBWYXhic1A5NGsmMUlnMztvUzFZYSkKenIjSn1QeSpsUkhvfE5gY3FwIXhkQnw3PndV
cE1NbUBVSEpMOX43bmhaamFOZE9ndyV7YFFKIT16KDlpRVhuYE4pCnp7ZFdOeWZkJWBAZ2ZPSHR7
dXgwJVp+cXhjUkVxeCQ7ZippPDRFWG83e3xzX3goU09GcStWKHwwT1Y8R3okPVYpUAp6V34jdj9r
aj5pNz9XT2l8QF5QczsxIXVGaXBKbVY1KG5MVWImMFIhbWB8PmZpUnc5RFk0QmE8TiE2ISplcEF2
U3IKemZxQkY7NFJAYz1BNElyZWRnSWA4X289TkFRYG8rQFlna1l+YTJwMFljYEwmKEtJNldzRShQ
YFgrVExXSWlHY0R+Cno/VmJqRE1SQEFjQipBMzdBX3N6d1BpWVVsaiR9SzZMVHhVK09gQEFkdjNF
P1lGR0tJQXp0c2BYejNmJGVeYyRTZAp6T29iTjJiQzdWNmRVaTU2ajZ4Y0J7eCZkRjcwaGluOFB1
UCgpaH1Lfj9jRHpnb3ZDanM5KGhkV3dDSWhBKE1MZjkKekQwQj9mTGBvfHEqSyZMY0V6Yzdtc2NP
VldmMEZucCV4Mj9iVjFrdkRKcH5rITV6QCFuX1lWWCs+V0UlSTM8TDh2Cnpte304QXFCQ0V2KDY2
YilDNmwrIUhNSGg3MGJ5bHpqPUUha2QjJnsxM1BPJSlZbXJXRiRnUmRWRzlVaDAlI2k1TAp6ejtg
PlQ+M01NejxicCs5Tmg9LVNEPj9nV1p9Mm99UkIjVD8kYDd8dFYjeyhXN0wzTEVXZz5AVSlmb3V6
STU9aUwKeiZMaE9obik8bnpgUj5MVCZhYTY9OSVuMnR1JllpJChGMT8jMXFWTCZLaXpUWSU9SHwz
QCprfTRtemF5X29GbCozCnokQU9sSUEzc081aks5VT1PZTc7WWk7NE9rSigwLVV5fiU9MkZxKms2
QzdOMGxgS1JDX2NMJE5RVWhUSD9aR01CZQp6LSUwcTsjPnRqLSVvKWRIQFp5KUsxQHV9YFBfb01k
ZShadzdRWUJ0TihsdkJxOGcpQTZGIX5VYHg0TmtJKm40aUsKenRlUmx2cjFXMDdBO3A+RlItOXNY
JSFyTy1OM0JCY1h0ZlUhNzRlRSNvfGMmKU9WIzZlJXo1ckZLZ35jNl9UQyEqCnorQzg4PFlyWjxz
IXVsY2IkJT18YExXPmRVZD0lUTd6YyhYZUE5MEhnamBEaFIoRTE1dzAjTzxIanhAM3FES3RWVQp6
RDJ8Mi0qIUh5IzVRcylibSp+YHg7ZFQ2PCZlRnFscGAzKmZwWC11aSMtWGl8eiNvVHlic1lEWSoy
ZFBoSUtTZEkKej49TztePmhqem0wMEJkSD1RUHZXbWAxYEdOTUJmJTVqUT92d0c3XyZ7ME1qU3BJ
N15pUX0+Y0FiTD5tWD4yZE94CnoqfGN3a3t4fDh2LUAzUHpmaG18Nkooe0dTa0dMZW5wMmc0Xkx7
d2EtRGczPCtDSCV4UWNafnZvYmg2NUdUaTVyegp6TFFUKHl4MnJjPEk0Qkp9VzZxUC17JHwrVDBg
MzR7Qz9rTzlqKnByN18zRX5BJXpvTDBIKTcocCZANkF9YkxYeF8Keml2VGdsbERHMEwlZWVnJitO
alR7Rnx4PzApJTVhOz8rI0glJU5MYUN3I2N7ME5SaDNPPms/Z1FeI2t0Ym91bC1YCnprKiRjfG14
bHhBcn4lYHZlc05nbDk1TUVtQyMmcGg7Z0teMWtNKCFQOys3KXl6PEA1VVNfOD08azgxZ20yQ0sp
JAp6RjlwUEJaKFk/bXhEPmwpU01SVCZgMHdzI298VklfbD9PMjc3QXNiYVY5ITdzdG5OUGsySjkr
VHhHfT9iP1R7PWoKelcmbFd3Wkt8KCoqeXQ1WFZYU1hQclhTVSVXT30+WXpGe24xMzx4WEV4bEh+
TEJjKVZkVzUtS0lDe01lU1YhIzgwCnpVKjx8X3JFcGhKa3NfaiVNbEdVPikxRVNTZTcjMEUhaChC
I3xNP0JRUDVldzkheXtwUFQzNFRDK3hQUkMwbGpaRAp6aVo1X3EqNlRkIzlTOXM8eEwwLU5gczN4
JGJveT0qUUA+TmIoZCRzKHNwfSQ9aEZscWspOXE/aEB+T3NrQ1ZaUTMKelNNd0o/TnRjSUBYYzxr
UCo8I2BDOHZ4dkg+cXR6SjtKYyRLWjchLXlzd1kyTmIhJjFyaFdoPHBgYiZeZ3orTVByCno1bGF9
MkNHSmNsMEZAUUV0VmkmIUVKZFA7OG4+JWItSkxEZj9US3p0Zzk8bl9lQm08NWMkX2NBYX0qYyEo
XlJHZQp6JE9qcFVaVDFQWjh5IXx6XlUmKiZ4c0psUndJeGdmbDF3UXQyRVJ8NlF5cHZUNCtvSEBM
WHZkVWJmfGooVmErLUYKejZKdmohKllwfT5ITj4zJmVOdlg4Milaa3FrLT56Qm4jJHQlXjJCa2lY
a3lydTB4ajZBYkx9Y0E7TnplJEUqUiVaCnpVSDB4bTFVX0M5SjcjOSQ7UG88RG4ye0cqdjY9amRH
d2hiYVNLOyRXUFZ1SSh4PihGJDY5bClxeWRaM1BLRncmUQp6JlFGSGR5ZFg3eXNOdChDUDN7YEpv
PSZgNmpjfjNPTWdvTXRDQzdge1FlYjVNZ2R6QSZFZD5rZkYoQ3M4eVVyZzMKeks1WjNSVEQ7I2ZU
NTB2dXFCPU9EOWszWXJMRU9HfCFZJnFPK1RNRkp3MF9zZWo0dElwS1pldEJTRD9YJms2UE8+CnpU
ViM1OFNtakBlVWNrS3B4WnN3dXotTU4+OSR3RXJlIWUtZjRjakpDZmROQjUqKnkmJjFUNEsjK2Fm
YH5ocGF1ZQp6diV2cj1fQzFCUUtgPFM5KHRYQE1POFFxfU1kYFF6MjIrQ304VlUrWj4oZFRBdm5x
ZjVII0Z3NkxhayY/TVpFeD8KekY5S2U3KWtMMSUkSUNvejZZJmB2NFl0cGhOOSV0XytmP2FDU0ht
VlIhWmVWfTZTd3ZiRHkyZCopfX5gJGhtaTNjCnppZjl9Vml7JGB9R2hRcmEpMzdHKUM9e2xHezFi
KGg/Pi0mPTkoVm4kS3JHfiM5SD82JFVrTCs7WURJMnRwfStRWAp6cUM9VzRNOz4qckE5cip5Zllv
NTtEMzAtMGp6fkt7YVN1QV4jY187bk8rU0ZQS0RPRlNWNWVMdHYrU15hP25UaysKenc3JGMwakR0
eHxlI0V7PHU7dmVtJXtyb3p3N1VCelZ2PUtmSVJ0UilnPkIlPDVrI2ZQb05wd2MzUWF9KmlwZ3Fq
Cnp6cigwYnpWWDcpJGRKb19DNCNRfj5FfCUhKjwwMlJ7UStFTjlUaTw3eyk7fig7Qlo9UVgwY2Uh
UEhefDQkKEc2Iwp6T2ZAZiQ3dWROVmteTSlycSVGPzA5ME07UyYrY2tJU159fVk+ZVR6ZTNXJVdm
b3opVGdadFNtNSZgUXhDKEJISHkKejYtVXlzcWtvMThfTyt2YmU/dEo9YVNGRGpWeUg/VExDQzBm
bUluaSohenxgZyFITG9EUWRicGVMS0Z0QE9GIUFuCnpUdyRJMDVyZChob3h4WEFOPjRDPUEhTFhf
PD4rc24kKXl0aVNDcHlFKjU8MkQqTVhSJmgwSkJUOyhvdlcxKypGdAp6LTw/X3VNISM1VEl4SypE
dWwrYDQ8OHMqSkRnVUx0MDw1UDA3UmNzVFJsc2RhIXZxSCtJbEs0Tm43SHcrajhXI0cKeiokTksl
MWBMRU03UUp8dGklPEpTTHROYl5QcllHQUpmKFEoKH5veEQ/aT5BZVN9bG8wQ1gmMjBVei1IQDUq
QSQqCno/PCNmKFpBJStBUCpfY1Q/OVZLWUEhfV47OXFQdUhEZnItWFZSMlUociZLdCNDemptTD9V
IXdKcTxpbEFvRiFRXwp6Qn58d0JiM3s3MkRRZXR4YmtXcGFjT1dWViYlR0M9em9aKj9WJGJhIXJO
ZVlSb3hlaDZhbnB3VFZnOT8lUyh5SH4KeiFwbXJvVmlDVmpwPSl8Jj1PQ1k4akFHSCQ1Znt5RGdJ
QUQkVjJmQzM9XnZpZU0wWUVTT2h3T3lvQlcwSDtNT1UlCnoqUkQ9MmE+fiRISzwybGpgQlFzQnRI
eGFFO1hAQTAyM3ZZbWhwTkIkcF9TKWctaFhxdyhGfD8wTVJUbT1IT1hMdAp6NEYwPipld1c+TmMl
NntyI14qbjRBejRkWG02bFRmXlZNbVMmeEQ5NHhMc1l5JDZ+WihmeFVxe0BzblZQe2NDS2QKekgo
NDRKRUc2MzZgfGFle3JSfUYrRDdGdXg8aXo1Iz1wMWRsSD4meiptQnp+eSEkPCFodUBkKD90SF9L
czczOSM0CnpYKDJua3QpdiNAWTJ7I0d4VW5admZPdk9DWTtwUiNUTXhxeFJIOVd+eUhJIzVXYS1e
clNNPGJTY0RIM244d3gjNAp6KlF0e3Z5Ulk7dXkqQGE1PzdZQSlHXl5qVkR9TEAkQk08VS1tMF9p
fD9+UlpWR3ApNiQ7PHx+ZU10PElKSjRzJV8KemBTZCFkXldke3VgRXp4aT5RMiRLPSghOFUoQHtF
ZzdpS3Y2NFBgYCQqaCpQM3UkPWczPFZ8YW5ydz99bTA+Q1IkCnpKPnFHPURCP1dRIyRZeXd4dExp
RlRYMmNMWE8wQkskbTU8STRWcCptN3d5NmMrc2d9RW4jci1tQ3Q9KSpFKTRwRQp6QUNxeHg5Y0V7
VUJta0gwJm9QTmVNKD9xaUp9WXRxODJKV2hqRl9eSCpNP2YpbzVnWG4yZURHMlNtcHkhR0RGaWIK
enVyUGItI3xaI3YpVGtHMkVyPX0oel42YjRJSFNgJVhNWHR5SlVRQCF3fDY1Zj51XnQmUCZEOCRe
MjAzTWNgaGkqCnojIUJHPFYlc30kSFd9Wl5BaEJafl5XQWA3TFd9RTF7OWk0JT4/I29lUEhNO0Q4
MUJ+YWtzZzJ9M311MyVWV2RBcgp6X1cofVZVc0pORmlhJG5GK2w4ZUwrSjlVOSN1MVZKRns1OzZH
RV5BOWFiUUs9ZylnK3NZfTJtemc2MTc8akRuUWUKeis8c1dFVHtiPjFib2hONVpUOFR+LUgrbXQ+
Xk1Tay0mJFJMV2ZlOF9ZJi1leTtVaWUjPGBlK3YqdTNqJjNFUE1RCno5S2VIcytOd3lpdyM3a3Yp
UyYoYmdJMXMmdmJNVkNXYihZT1hCaHVSdWx3KyF2PGAkYWR1ZTRSb3hjc1dDKUc3cgp6U28jMkom
JldjfD1JSWArQykxVVZ7Ym5OcUZWYnNNUVpMV3dac1M4aHRmbH05NDReaD8tRVleRUdzUSVpNjEy
cUwKemNLIV42bTU3QX0kbHBoLTJAdDhuO2M7VURSYE4qRm00VXY+YGxOeVVRZjgwcFlFM0skPXB4
b0dKXzVpY3soUHlzCnpjfkd2c0g0UXB8ZlMkIXxKZWsoVTlwfmhEUXt0TmN4MVRGY159c191bFAt
XlpzeEpyLSZLXj5PMGtCTFEoY2NZRQp6KSRZUnhjVDA8enZKMl9SWGJ9TTdPcEBofGRCLTYoRUU8
NTlgfF5kcFkkeTxAWEJ9Qz5wXkVvLUYtV3AlOyttbEcKejRGOyRfd1FwaW92fHhTJXhHPmErJVA/
QiMwTn0jMyFlalk1V0kwcE9ENCVHdXljZi1NYzxRJGlPdSNOQFN6dmshCnopNjc7OyROfVB6alA7
WlhRb1A9Mi1DTWQ2bil9aF81RG0kVzV5fnJrMmtNKCt7ZiZFbEcmRDlvcDlFTFkjJXZMSQp6O1U2
YiUxWThuOUBVTCsmJWQ5fCZ1bD5sSDExbWd9SCold2FRcmU5M3ZwMm53JDhPb19oLTxGUHdtYktG
TzxsKnUKejghRG5APmJsWU94JktCPkVHfGdURkZKQUozempJS0dpPm1DfDN4Uj54OSVKNU5SaFBp
XkVKTiM7OU0qaFUtVUtrCnooSlE1bi0/SGRJT08ye0M/KXtZLUduPH5De0FqZTxLfUFQaklxTnVv
KDcpc0lyPj1eSTB9Y1FWeyRaTkZOfkVLcwp6TDt6JSRST3dRYz55KypeZVlsdVRFNjNFeDIqdypK
OVBlMXYoKFo9QjAwWS1xUmB4VHxGLXo2MlFZbn41KC1YfCEKemQ9KCFENFBuNlAwWTFJclFhM1hY
a0g8U1JXKEpxenc0Uk9BTT4/N154QnlzZHlxb0hDeS1oaipZO29jPVBrYWljCnpYM2dwS1ZQMXNL
OWh6ZVRmRndmKDUpZlROVW07dT9Bd0NtZWp+Y1VgJS0/WT5xeCF1cClOb2lEOSF+QDM2aWktTwp6
XmtJKilFZENjPE8+bzcya3lwenctUV9kQHdETUlKeUd5LXNsI2dCR2RmO3RvWERDdmhGQztNZSVQ
YU14YiNqZnsKeng8Jj8xUXBpaGVWVE5GeFV+ODR9Z0A5V2claWMqO25wc2c7bmZRfUU0PU9tRklB
Wnx9TXw8RyRlc0ZjdmB5ODdSCnpGa1glXk0tbzxsQ2VLfkFJdUFjQ2tmWEdUT3x3dXl6e3A/cjh8
VllYTV5nVFhKezUhQjc9NG1LcHxOfTJKcEhaTQp6OXVFdDFmRElifUs0XnVAKzB1eWczVXpvZGNj
RUNvJXpyVDRzY0QyNVdXbnBoME59bFFJZ3d4WForU1dPST1aKjQKenNMR3ZKMH15ZkoqYikpYDs4
M3FUK0lHd0wpOWIrK3g7cFBZeX1wK3FjWDsoKih+QEw+d28qKz1GU0Z5K29PTGdkCnpaNmNzdmJp
bGoqckZZXnJncSFgQkhWKUEjO0RfeGozeDJ+UG5pdkh7disoPS1IXmcqbD8/JW1wUkNLJm1DYERZ
cwp6cVFqJWVKT3hZdXJ2flJCVz1nblBBfXRsYyFRUH54MVJUWFRiMGAxPU9GQT5ZQiE1fkhWdW9Z
UzFEdX1rSUx8RWQKendvb35HbyhacTUyMnZEK2llKVBZY3A0YklgWlUoYHlEaT14UzhTVktEb1ZP
WldQcjErYzx1OUhoMUZifkVYQUl0CnpJP1lRcSZEQTZYaWkjfSg8QGRPVDB+WFl3JChRYVZJU1pw
OEI5JDQtUyFxSj50K1RLeDRoPlU4eVBFME5jRz1CZQp6SiUlI3tGQkVaRD1YN29nKEFIWlIwRDco
LVR4YT43VnwhPishMTtMaGhZMUBuIVdnSk9pc2lTUnBscSVGSV5BZD0Kel50UFh1emZ9KU0+ZnV3
ZigxeV93ZG42NDc0cTBzKkxCUGtubn5IbkprUHkkakthanJsTnhVVmV7bVEoKkZmfmV+Cnp0d3t6
ZnVkPEJ6RHBGeylyeT4oM01fbUMxV0QmP3dkRUlpQ2BjIXBxISlxZDYofTw2S3U/PzU5Vz5aMEJv
TSg0ewp6eCY+UmNfcCgteDEzWkMzZ3ZrM0A/ZVBzak1vWGZHUktqODtTcClrIVlaYD42cDkqQk4w
UzY0dyloa0EqWXRncW4Kek9GQDMweCQlTyM2MiRfbSlBVlh+WFFxWmR5X2NjQ2QyM2Uzd3plVHsk
VWs0JTtITTY1cXA+Qk95ez1JJFgzfTUwCnpXbElqcHVecWNEdFFPN2IybmVXWTd6UX1CMDc0WUto
Yio4bCpuc3VrcDxwczJATThpQExoS1U8R0dQMzVPKHBgRgp6bkpkayVibTdQZVI+WFFoVWRqVWEj
Ny1Xb2c1bGtlM3dmfjAzXmRWQUVTdTFSMUZ+fitiNEsle3AlcnkjMEZ0aSUKekd+SHlITyFtdV48
QXBxcVRjNXFJcjZNckV6djx0aWVhVllfP3ktK0ZrMSo0OW9GekpIS0Z0KEkkXkUyLVA3YjNrCnpm
dyoocHRhN1RmZDBHK08pcWcxMSh3Q3IwKSlBUHNgTygoYXcjQXpOSiQ3ZER2LWdaYHRMQl91QXta
MExhQmB8dwp6TT5ITHJZZnw8cUVqREUwek49PyMkRVJBdiYxPitNUyste2o/JVFBTD4qc0xvTHRR
e1o+PClNUSZ0b3V1Rz56S1MKemRMZXwpZ3J+Qik/ajExRHtBNkEzIWA0VTE/ZVAxQDlKa1MzM2tX
OXJIMTQkT1JofE9IPjlBWEwxUDV0ViFERjQxCnpJc2xZQnJtcFElQVchLV54PSVqKkkwOTxgSjtr
T0g8K3N+UT1kKlowSFAqZkk+cTVkfWhic2sxKzFZayZhOU5Obgp6UFhRMTw1TCVIeTI1TyRoQT9Q
TjBCbHlLPGpgQzVlelZwOHwwUHRQbjFZYnlHKSNJUVg4aTJvJCZXTUBNYFExLXYKejB0eWRnPDJP
MVFXVFRVaGVleGtzeEZUcnlyQj1yalozVDQ3YFkxMEpHfntKfSs/OTlwaiM5PWplXjUrJilzey1M
CnpAeiY7a19pUm5QbnZ8cEgtRml+TDlGUUtJa1p7fkRGNVd7JFJVfmU+QEtCb3hzPCokNUtISCRh
ZkdiOVY/XlJoWgp6NUhRSF9tMSNldFpgS1VhZlhRWTl2Qmt+QnpaNnZNV2tZRD5zTnM8SSg/MjZQ
aT9rc0RjJD5fS0x6QXsmZk85QHwKelJvNS1IQ2tncVc9QlolQUFxWjVpZXwmSHA0O0k1KzNlOFNu
SWJXNlRePjFAXktWd25JM1dpPmVxflJyKjApWHNgCnpPMHhKOz8kV2N9Ki05UF5AUnx9K28lKDR0
RzBBSTUxejtyYVdMOSskTzRuWFF4YzswS2t0NEBnIUsyTi1hJj1jbQp6MDg3Uz5jX2xhYVZuKiEk
Smt+U15MXlF0ZE4hZWg1JWd6I0kxWXAzSnhDVC1YPiF+QXxtNCpZRD5jdlJPdlYkTFcKeiYkVUhG
eiR4aUh0K1c7NT5nbl9nRX1VP20kRnNJVCY4NmlMJlhuRCsrMlZibUg5c1UhMEQ5K2xQVVhuREI3
Kj9uCno8Sn0tXm8jakw3Zjkqcm9jIX5QSFZRQEg4bWNqc1QleCtMSndOb15IWVJMSClGUn1kfiRq
X0g8Ulpne0hgZUxhNAp6OX5ZdXw5Q0AxQlhwUHx7OyM4QnY2I0kmKT9lV2FSKkZePX4+Uj07MU1h
Rl9fdXYrRDg5d3pTdlp8eXktYTEmJV8KejVabU03ZlY4MDY4WlYoSGZkYzMjdE08MHxAY09PUiky
SGklKjxtMDQ5IW5jNHVteSk8dkY0YC1pPkV+XilQaDReCnpxYm1TfkVZaU08SHAhXiM5JHg/PSsz
b0NvLUpCSEQjPiVpbHJoIXxgX0BlRj50X1RKdXVZa15MTmpEfG02TCNFMQp6S0wtUGcwfC1NRlB7
MVBVdyUoTT9vXz81NWltaHpfKE9VbmFuTDQrbXpKLSZNUV5zb0Q9MyM9OHEtNEZ2VDU+MEwKekR8
aUQrQWVQd3RsJkhlTmU5dElpO3ZZTGMrdmFYfGA0JTt8VTJTe09fSXA3K01fUHlIJTZJQk8hQUpr
MmZRZHBmCnpgenM2SD0oPGl5VSR8MFgqR0VWR3pWOztKNTt3fnVuT3FBMDE8VT5jMT1nIzBVJlV0
QjF5UVlBcmcpRUZTcFMoOQp6bnhiLWFgYW5PYyszNVVZa2t8dU1PKE1vbChee3FKSlkhOHUmIWFW
XmlUKTxQQTJnSjw1V0MlNig+bUU3NnNFS3QKemxDVzc+QGlqNHkhQW9sOW5PO2VuZHwxVF5wbGhx
UHBOUlB4c0xxakV3YjN2LUNJMl5+bFNSPlFgSVRWRiU5TGExCnooKk51QG1zR3xrUD9AIUwoWCly
bXpEe2xNb1NOIT1fPHNKUkRJWlM0SHlmWiNycl55TS1wRS1IbiQoN1NvWj83OQp6bldXR25AbEVU
djlNeGhaKGp+UyVmZFU0Y1olJjB5YU1nPnFzYzZ7bXRzdmVPNWtmNGopQ0d5V3NJPlMoQFNaNWoK
elc/JFd4Kk9CbnwhelMqWV5FdCEyM21GPyhzQEFWaHc8cGw8QWlzfTxIQ0lqJCNWbTBJLXY8cX4r
UTUje0M8REAkCnprZEBuQEF5cT9KYnZGakN2Pj4/Nilzb2VsTWZUckBOZXUldDBCVFhZcWpYa1Ft
TVVeO3F8TSNSSDx8fEtzNHlyLQp6eCo1ailJZzZ0dEJsOVo5dXpZJn5QODZmcmJAP15WKio5a1JL
WXxeMnNVeW1TZHxmR3Q/eHJoZ3t0WWhhQUhoUm0KekRpSVIwdm1TLS03dntxdzdrazN5LWhUbjwm
R0gtcyg3RDhGXnBhPmQzX2ZUWjJWbnB1U1J1aUEyfm1rKnVeJn54CnpPXl9QVC0qUnc5NEd4VFhz
bkU8OzVuRnVEU3ZqdGRsSikmanF3WVJqamZHaDFXWW9MRDw5an5SJWc4T04kfmE/Ugp6MndNN0VL
VkE1anBCO1YoYVRHcHV0XnU/Wnp9b1RfNWhAZW1yfHIxU3B8QUFqR2NFRHU8IUF7ZWo4cEImWUlB
YT4KenghR0Uhe2xfPEA/SHokSntuZlghRm58eSgtelFNIWl0allKJTU4PUZRWEtyPjNuJWJVJip7
TEhVKDwpNUs2a1ZOCnp2JVdfMTZ9WWdjRX5kR1kzfnFNenNNaGYwMHxmST0jemw7bHdHOEwlcXk+
ZGspUC0kajc+d3pRRSNyaGFtQlJhVQp6eV9ed0Q2X3BsKDUkKD08eGhFRHZGTWtxY055NURLWnB6
JWZOPjVhPVRMcFRPcz44VUJjJTBicyFFdGN2KVReamIKemFgYyljSGRBXzh4NCpEOXVIc19MM3wq
PEpiISZMOWFFY3pBSmkycFFQeX5VR28wUSlmPitHZDJIRGBhO3V0T0UxCnpoQVhAfjcrSWhKUGsj
KFVkKTMxWCp8MmQ4OTxBTU1MZUhUfE05WVk3ODFKeVE/dEcwKmxAe3lmV3Y+TF81XlA/bwp6RTRV
VW43SHVAMllvam13aXxHZkkzfk8mP1k0VkMlN0IyblJeVyp5cCtwT05DX09TJH04VDMhPVRSUkFV
MDdOOUUKekxeOU9JJUJUbTNfN18wOHszdSEmP0Y8Mjk4MVlFKGs8Qig4R1BxezZgX1A4ZkJgVjhw
OyNYfVNLWEBzbS0tKnwzCnpwdmR4RnRMZDx3UGVPbkRDWkBgMFB7NjVWY3p2Mn5ZK1MwQ2U+MFYy
bT1Gd2d5ZkA7I2o4My1GYHlxdl9UVld2Zwp6VyNfP0ooV2xZYWpzMHgwJUlFNkpqNChLTCsjYnBF
PSN+NVpwPjxCckpUemp1YXZXSFdNMlcwMWttP2I4Rmk2VFQKemtSdl5qKUdaRUsqVDMrMlFZe2BI
en58cWVTUDlHQWBtS3VwKTNQZXtvaTZFX3pnWHY0QzApMG1BKjlOQU5OfmxoCnpmaCtzdTRNbFRV
Qmo0RzBRcjVWRVZwYXhBd0goQH1tZitiXj4mQShFUEZlVGEwOT8wfmt2cVpae1c8QE8rPDR4dQp6
IWRjeFJeR29YNTFVe2B4e2BqLXtNfWZCZWN+YzIwcjB+a25OfUh8ZG5TMkN1RUJWeXAmVC08YCs1
QCF6WTZSRnMKekMlJkIhXyE1MFVHPCZEVFUqXyFDN01NPCMkN19EQ2p8PllgUioybHpDa0pRZUFB
TUFkVDJ2PFYkWjZiYFRQWTh4CnpsKkFIdjx3IT9EQi1IRDg/NUxLQzlORjFFQjVxM1FrKDk3Q0E4
VSM7Q216SG9SczN+Ryg2VEtHWD5ZRlp6R1BkbQp6Sk1GXztzQSRlPUsoczxMJWhHPitOdXA8Z01L
ZSE2N3JhZ3xRYlIlcnhAezFlMCRIeD1VbGc1Sl8/eWp5bE4mRXoKejN1PjRJOGtlQ0ItR31jdzcp
OG5FIUdAUGE5YHQxWUUrSH1iWndrbmE5VikhWEkldHtZO2dNbz1ke299K0x5NXx+CnpuPGp2WWpj
cUxzPT1aRzh1cE9rWj08dzIpKFMhKTFieklKaGspXiZldWxzeXNQVl9qa1BrUVgodWJWRERSODJv
Owp6LXpafldOeEJndzlIKWZGP3MpWHZtYzc5SlBeI3NlKDh2dVpFUjhaTTZ1Jm9XJjBIfCVhWC1s
Kz4mT2heNGEoPVQKej5tLSY3WH0jP2xuR095fDxWYFJtQjJkcj4zMk40NDk3U34+QWlFaihWOz98
P1ZJPWtOcUo8fUpvYilRX3xGZ2RxCnoyRmo7LVowbEwhSHYzQmRNZnxZOzh4YlpiVipEMihncjE+
Pk1ZQjRxa3c5b1ctKHNeVj16UDdXaGVaaTQzKilFaAp6RXlDK3FgQVdTY1gxaENVeV84Jj5WfX19
a1YoQD5nJmtDX185UTdhV2B3I3AzNUFPUjlgfStePmB3I3AzI2BGS2MKaCF2QVghVVlZcDxjalp5
UUd7LSY5fDV8QVJrZGFVbnVNam0ze3ZXT2M7P24+QwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9mcmVpYnVyZzIuanBnIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2ltZy9mcmVpYnVyZzIuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzODNkMzAyM2RhYWY2
MjZjZTRiMjA0YTc4ZWM1ZmY1Y2VjMmFkNWMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwNDA1
Nwp6Y21kU0FjVGBoUCpEb0ZqNU5oYTEyfGN1Y05HRzhlMXJpfGlqKjReO2ZxLTtUaVhkUjxNWm5P
Y0g8Yjx8M1c5eyoKekw4T1U8aih8IyZyWit5JV9xcCU9dEBXPEVlKXMtJmNRVjxaJSRiPzlfbmR1
X0okdkB+R3k3KjV6PHw8MD5IdFZjCnpOQzB9bzd2UnJWRiF6bU00XzUjSGlHJT90MFJSOXMwOEJ5
KDszSnx+VnhjRXVhdzBEeTc2dXspNkx9ND5GcCZUTwp6QnQtdFZhRlVTIWlAem1ldTc3WTM1c1V1
UWhMbmg5aDwjYXplMjc/Pk4mbnNWWkB0Rzh2VlprbUNTcXF8MT5nVWsKejBBQHlMOHZzRHRNKGMq
RG5WeWszdkRhVEJEKU8mVXs9O1JZcS0yJCg8ZHZpcV9Ab3ErPGZXRDVXQzNofCteQiFjCnp4a25U
Xz87bV9qIX4ke3VDNkNCSSohbDBVRElmcURreDl1Jk85NH48RSZwI35kJE5CcDZIIzgwKVBKYGpB
P2llJAp6YHRSfERpUz1ZQCljPXg1bDhETEV7I355PyNHdGhRSXYzP1hgMHVIeHt1Zk9CUGtTfERk
cUNrb0dEdTVGa3JlKmQKem9SYiMqZCoxJERHVD90TzFAVDx9VjRjNXhpJFZYQTBaND0tfEtQdlo+
bzVKfighPnVAQkJ2Jm58OEI8cXlTbCVfCnp7JTRIOHtyPlpQOy03SXlpQVBFUUhFWDVfSTEmQXFe
dXp8bEdYZWp4MzhKWH4pMyNRS2daIyZ+SGlgSlp2I25wbQp6YHYyRyNmVCstYVhJcXJTZEpAdXEm
a0h2WmxtM0gke1N9bCp8TSN7N18lcil3OWBHMnpLdGxfcnJEZyFyZnRlVD8Kem5BdEArKzFjM0dy
M0huIU1VYFkjUlM+ZHBNR1paQnc4bkwtODtXcV9kblEpNTlvXmpCKUNANXB6UnRuK0VeYmFGCnpq
NyZgSXRuQWt+SWo9Y3MhTF4rSmtMZ2JqJHFTO0E8aXp7Oz89QWNmNXNpPEdvQn44aU1OUHYxQVNE
MztOeSZpWgp6PFlZd0tCPzxwKW19SEZQTyNJVEM2d0RAZkttciZSbmFJPjROPHBvPEU+X2Q9P0Ao
RHN6YkduZHdrengkb0k9N1AKenFHQipQYz9DcntMUGA3ajRJTiFRQitBVSghcVVweCNANU4lI25z
Sy0hXyl0TUt3d2FDTk5EdXFuQWooQUBkO19eCno4SlN0bnZVNzRANnFsNWlsfitfJilpKlJZSE1n
fDN6NF80SF5SWEEtKkZQe1pJVzt9PVk0LUVuKkE+RiorV04tawp6KjdsRXwyWnUrO0MlO2I1TlFn
JTlBTnNkS3xCRjcxTTE0cmYkYmUqXnp4dDRuMWAhTDhrJksqUW51MUJ3MWF0PygKekVGY3B9JClj
NTdSTSRsJUN+TndpKXpOUjluaGglVlJwYGZHbUh3c0N8MzhKSXs7eEZwcDk9aj9lZzFSOzclMmg0
CnpmST1WJUtZKX54MWp0RDhYQVZGTUI7Rld8S3RfTiU7UFhMdnJEQlY+eElZT2tSeX1TYWV0d0ZS
OUspJSNYIU8tXgp6QGtaM0xaTXN+aUVIYW1qcWdieGZVfUI8YCgpTXtTISkpNzF4P0IlT2FleCV9
eTY4eitqP28+UDNgTkIxcSlpTUIKemhVKUVFdThBUHtOUSpeKFNBWUg3bX1ESkBVaWA9KFhBTGdQ
eSooKWhARzFSYlVgMlE2VD9oO2lfSzB4QmpgMlVRCnpsPGBFLWopXmp+NGh3XjcjZ2pocGh7Plc/
VWJodG9ERX5kcUhfVEIrQCtOVCM7OWFfP0w5d2w5T3pONjBGR1Fuewp6cWMmaU9YK1kpenl4a1dL
JFNEI3VnZ3E0TFo1X0NfWHdKPUFxcilZQy0xejlRQVVaNXtNYjVqN3w2eTUlTClncnsKekVIVDh7
cWB3eDR0Zm5XeCEpdDt6dytPdFloWXA+PmRkVEhlRn1ObEdscVRGKkI0bjQrRilVLSo/VkYxUlIx
SkY4CnpRKjRSPlQkT1EjejNGbjRWeDd5elU0VG4+NXRkbEZUJENnQUVtMER4a0hZUkd2Y3VPezA1
fiZgTFclczBmeVc5JAp6dFhrQTRmVVN9LVgpZWA5TVRzPDNTJGVMITdTXmVXWiYhbV9xaW1JMGdK
YjhUYUNuUnFNODw+dUp4ZEI1bGhpJisKej0haUZ5amV7P0UpS0JlMmlUZzF0cVZHPVhyaVotO0tk
R34/IykpdS0jKGRPfF5nWXA1enhYdkFwQFRiQV5nQGgwCnpkb24rfVdjS3IjNXYjc04xNEgkcmBA
aFg4N21gQFU/fjYtR3d7RGp3WHdgMXI4MXJqbl9mJSt4Wigrdl5aUXsmTgp6S3Vifk82SGdPNXdW
bSZDNnA5SXxUellfcTY0R21wVn1AYU1yV3tESmArU0ViSzx2Km5XRllqWXp4LSh5ZmlMVncKemZg
cG9AU2xkdWMtSXFrWGE3a2khcFRmSGRCTXc0dFI8NCtHNjh7cj5hMUxvbzE0O0JSTW9zakp0Vnxz
IXgqIyt0CnpyeGkhb2BUZWxiKzZ0Szc+RDFSKFIoODgrdntKPWJkNFl2Tk1qPkBGKlZtdjlPbz14
fDs1JGd9Nmx0cFMhfGAkcQp6Zm8+dy1Td05hbkhUMSlpNUpuOVA5ajxJJVc2ZCkwMEl+N0lHRk1T
YzVkYnJhRn1AUldTak5XcyFXVGhpVDROQnAKemBqRitOR1UoWk1ja1hRb0BeZ0hrZCtSQlpre14+
cXh2enRrUDlpQ3lFMFhmbDZBPklVcmNsfV9LKmBhX1NLTkRLCnpOX0FXKm0+QjFDO3p6fGs+TWY+
QkNycSt2QypHKHlXKiN9Ryl0Pm58YStQZyZfakpPOCZmZCQ+Yng/cSkoYm5sQwp6amlTbnJ7M3Az
YHBmS3UqIWtlWSt2PlZaWDA1ZklMSml+aVB1Z2U4WXZiWHpgPGVRV2laTDE4JDlvTXFEWH44O30K
eiV5S15vUnI3PGFKNHJvJHAyMWhVNk13ZSQoaHMpTW14WXZrTXVPWHtpO2F0UGJWJFQtOCgtdlV3
OG00UW1IK31NCnpGIWJRWWhrP35aWnZ6XlVFYzlMc1Q3I0VoRUpmYjs2YDxsdz0lOEEtWFlLIXo4
QTE0QCFVPj58QH1xIXtncE9uOAp6T0AzKiYoRGprczJkUXQhbF9ea2hyU3VAP0RFMW0oRSErIWFC
KUdaYCsjNk1VZH5QWl8yZDA9JnEyLX53IXV0NGYKej5EJH0hZjslYT9UTTQ7SGRtWigtdig/fGN3
dSlEQCRZZk1wNEZ2RyotZUsjdypScm48KnphdXp6RnN6LSh8RCReCnpWKDdEbXVwWjVCQzZraS01
RUZUZSNTS1NZU3x3RGkzS313MXE8bnJHPnMrfj4tS0cxWXJMTTExPzNqfX5AX2QlIwp6X21MVmBS
TCMmOUI7c2hIdkdIfFZKbTxEZnE3I3BVMSUlWCh7Q2ZSc2hpYHVYR0d+JGE0TVZSaFF9cSgxRHwo
LTsKejhDJWA+UWpKNE8ocm15cGhhMEM4aEI3dGQwd0Vke2t+X2otKlp1JSpKI0dRbElKZ0FkdlI/
bDJZNXZzSSZwcShFCnptdmcqdDJgKWNreTVnbCFqJjhRZWdTd3g0e1FqcllAPjNifVc1XyNfKU4j
KUFRKlhWa3tkYjFWLVBzaXNxZyF3UQp6JX1lKDtjTHc/JWBAQU8hKjxFX28raFRmc1JKP2JncUpM
Kn1hIWIzT0VXMjBnb3ZFVyRMMXVjdj0jK1V7N2R2KTAKekxxP1E/Q21JZk0kb35Udk54I1NIKyQl
Uk8/cXhsbHtmaDMoan41ezw/OFhFfmVBe34tY1Z2OCVBRUczfFZuTjg2Cno0PWN0JmZTZXB2PVJS
blQ4bn5hNigmeWlsNlFVQVd2VldIcCg9bE05SHo9M2whfjIxcj1HV0FUeihPWXtqZmFDSAp6Tm5i
eENEZkUyJjZVTlJFZHpmUHA/YHlyMFNWR0c/UCUyeThOeyRsYVJpTTlKWUcjbHpVZTA8e2t0az5i
eHVjYWYKejc8dU1lVWpufE89QlNoZXByOEMrazxjKkpyZCYmUGtJQlFDTFZ8cU5gJVdlI1hyKjlu
a21uJCheUDsyLWIye3lUCno1dWRkI3khXkBCbCFOYXBKJXR8a1pUKkB8Nn1nK3Y7Y080Zyh4Q1VU
PD5JXjw0P1FUUlAjR0JDK2xrVihieUB2Wgp6US1+VVI4KHxhdU5jdG4yMGhmQzw+IWVfc3JTTCp+
MnIkOCtCVT87VVU+NkRybXJZKUdaIVluZG5hKClnYmlTaDMKeihAZV4kc19IK2lwa0tOITRZXn50
NTBERHBJNVgzfnNUKzJjQkhrNS02MS07KllgbE0xay1LN3VoaT1UJlQwZldtCnppYmJoaXJ3JD1O
ZSM+K0VxJWNeKShCVHZ3TFF+Q3k1K2x2Pyg1SFVQUSgxanl7K0Q3X1dAMDF9RlRYWT5xNG42MAp6
RHRyd2Q5MUZ3P1VWaEQkal8lfXQ/U0pWaHJ5cj5FQ0RUYEotd1NoTiZpT050LVAjZDhmMz1mcmIl
VWp6NDdePkAKenI3UCUqLSFRdGZES0UqWCptdUxsQm5wJUlZaWk9QXl7LVRPTntEV2t2JGhKU3Ak
Wl5ySShfO3lMSUlhVFprY2VJCnpIcnU9V2BkYUlRUysocXZYUEF+KmtHNDR+bjk+aSFZX3ojfXVR
YENMOVFEJXEjJmR5U0t7OWV6NXkrfCY9JUFjKAp6ZDUkdURlTj9OJXtvZD9MXlNEKEgjc08qWjxl
M3ViY2hsXiZzNkF5cHdhWkdjdEdaN0JmU2I/QWJ9ZFdKJkFacCEKenoqYXlJJlVEU2xAM2NsaW5B
JXQwU0NkZV9XQGNEMTYhOCZLSzV6JnVwQTx8OHQ4LTdpeCNwcDliN1l4RSlQa3gjCnoqM18zfCpZ
S0UwdDY4NzltO1Jse01AOEJRRV5nSEw+dSYtZnA0O31gZllxZCZPSGNwMCV2QFNwRncxdyR3P2Bq
Sgp6bXJsZzJCTD5xcmExaCRpRntvJkprX1BZbiVCPy0rJCNMYyhqVWkydldEKHJDWClsfUJZVigq
OV48N2drc0VkRVoKenlHI0s/SVRzdUkzZl9UfmVLKV49RFBUMlRqdU4+P0w0VWZRcn5YKzVydjte
QGM9K2h5UjladXd4QlhsXyY1SCYoCnpGUmJHMFpkeGFiRVdOPHE8azwpKl99TCNvZnM7ajtHSVBn
ZzYrZmxrcU4hSFIkYVdDTipgPVlKJlNPJTQrIyRScQp6dDVuKGcmdTYwN3N8X0ZuMHtefj1NMDZf
Mkt7T3hgMXFCRjlPLSlJfDBBXiVsMDVpfXR2MmUwNkZ8I3clR3FDWXEKelZkdnVGPUhfTig7fWhW
ODJ5akJVQSU2IVVBdHhzWFFHbjxgQVVYJlcwfjYlYG5FdkhlayErR0MwNyhTPzw1bCRsCnpjPmxN
fkBTaCQpKUJsNEdGO1EmWnxFKkt9U0Zpc1U5cG5GeDdrdEpDTjNnVkNLSF99dyR3VXt8M1k/VEAt
Y0kyPQp6fEJQPTZDbTtYMT1pIyZRUDhSdkQ/dSFqTlB6UyRiVnB5ZiQkViVEOXZBUX13bHpSMn5q
bjE7aCYwXj9zU25kWSYKelVFVjxzVEQ3JW1TbyFedXFmdU13WG4wSn5fYDdtNHd8JnleRCZBa24p
I3l1T0QwcTAtS1QoKStKI2pVQzJmMCk2CnpZSWZgUE09UiYoZE1UcU9vcDw2THg4SyZLOUBkYjRI
Q3lONyl0KUkxc2hnfipMQG0hTG5HazQ3TVdsN2xyb0lPYwp6eHQre3hAS2o5cXA2MlhwcShnIVp0
SmljTTtFVSNpVWtycE8kZz1rQGA+XnhvY35QejBqTEFkI3lsTENIclQ8PTQKeiQtSGgrcElOKigo
PyFMcE4ka2VGNHotN0ohd2whNj48VlpZd2J2QzdJZE5EWXdTb3BhVU9WQ0UqTlIxUD1iST9ACnpm
XytaKXJkS3E3MFFqTkQ4fE1wXy1uZkVwQ2t4QUt7XlFeKDglMXtMQUF0NFgqYXE7fHlWJSRBeWlF
NHAlMX41UQp6YXA5ZjV2cnE3VnV1azwpYi08WklrMHNZZGV5KEtHdW5EWWkhVFktKiUmPiRSZEc4
MEJMNGhudFZFfV5YX01pcFgKekQofkFOXzZHflU8Jm9LTGclPWV6dFZVWUZ3V2dNMUYoT2tmZzE5
dlFed0ErJVF3fXwybitSWkohU15hZFVyTz9OCnowNlNeK0xHJWN2YFlvOFBrQipgXlhWZTx5bXYk
akUxc3BFVkBUTD0xPT1AI1FMaCNLRWJgP217UkJ4dERCdShtNgp6YG9mZUI9VWxnJCVsQl5zTkpz
bGEpJWNSVFpMRTFWQHB5eDJpI0dCSUxHbzU4SGlsPGZaa2F0MmpyUU1ESFZzdXEKeigmdXktcEkr
bkU5cU1la01RNCQ8ezlaWWYqMzlOWkI+O2VsM2lsKmtBVjx1RmVEb2xEcnNYMXh6YXJ1MTBmN0Y5
CnpIYUkjPmdmWFVaQXlnQGtZRzJMdlEtMjFmZX1wa3ZPWHw/U0BeclFHOXF8P1coYVIwQzFGNnY0
TGNUUnxZVCFZaQp6IyNUfWdxb0BhK2t5dFFURXpeRkAoNy11Y1UmakVnZHItQ3FRcih1aXBxN3pS
SE1CVVIkcXhBZ0lHWFRRellPKXIKejBRUFV+Qkhzc1RQKnNfRjhHYCR+VFpgNCZLRlkhJkxIaW5C
O2Y0elJMWklrPDlWNjVlNDloTkZXI1NEQD9VUSZKCnozfnNgXllncD8yRGEtU1FVeDgpV3VOLXxw
azlkP1BMX2IyVDxMbV5OViM0dm1uQUhUcyNtYjFKRnEwaWFKPT4oawp6UTxKdzJOdUMxVD8pV3Rn
fDQtYVgpNkd9RDhSRXsma2V3QVJ7KmlPKDYzODlBaUgzY19CYjRGfnRodU19IV5ZTikKelNGRG9a
Pl5HQW8hdmYxMWojWTV1bllUKEQwP1RxX15aLXVwVUBUKnYyRXR5bj41JnQpd2hKTExBaEd2PXFw
SC0qCnpXWkBmJnNWUCpLOSVZdFNhUz9eVDEyVDRuP3M3QXs0UFVwLWFfVTBCZCNOZ2ZoNDhkaEFY
Q3J3PHp8fExVNlh6Ugp6I15+c3MxVkp0QF5RdjJ5YVhFMWtoJSZkeVFufiEjZVokZCpXcDdNfEFG
ayVuLXg1PGlOUz9fX0dxUUV9cVc2NUwKekM0JHR0MVIqTFB6c3BtZW1nIWNASVYhY0dLSE5mfil+
ZDNgVEdwVEZkTkViYENxJXJuT1lwMCt7IW4/bzdgYHBBCnpAVXpxNXhZRj15bHBYejI9d2FFamV2
WSFOS0ReMy0yXipxVU1gYDhkKWZfZ20yKFRfZXxMcnt5LUBaKileS2E+Owp6U1lLSS1BbTRWMGtt
cWo+YmFRNXB0SmN4N09ObXB8Sj9CNWgjKU0kbmZ0TjQ8e3VLKV9TS0NzODMhQn53e0slSVEKem1L
PDd4NmZRYGlTS2F6MXpKTnBHUj4heW01Zj9EaDgqcz1ZWnBoMytrV2lufihsZlA4c3VVK3hzPjhC
OXA3KnRvCnojUlQqYHd7SHI/TW5QeyVwSCpmNU1+JmdnMnRRU2ZwXlAqXiNmb2ppRT4rZl5uSUYw
dT5pQkhMREkmeElQRmh7cgp6UHB5MURJZ29qOztOeVo+OzRKRHFKO0lyNjFLX1c+VH57UlpSTCVG
dz54I15RN1BGbSVFWWF6RG80UEx2QmNeTUkKenV1cnEqYVJWfWU3Mk4lbTZRWDFGUUhBJVJJTlRL
MXc5RzhAOFc0K308TyQ/Y18+bnJCJn0qOH05MTJXKVZnTyhsCnpOIW5tRmkzVldPNlBuVWsrR1Vt
eDNGI0tMJWg3e2ptQE8rUil6cyY0TDsyR0FxNl9yNW5vUHNCTTYqTGBpYll0Xwp6aFRma2t7RVhu
V3N4TUB4Sn1vP2FrKWZiOGJLUTJwO1EwcklnX1NmejdpUGM1TEslbjBgfSpeYGNhdCthNEQmanAK
ejRNJiFhOzsrUWo8e2oodHNCNDg8VygyKVA2XyhWITdPWjFNcnIzVSZvSEE+bnpYZn51Ync/WDYw
P2MpNDxNJVpECnotTmc3WCE8KzJQZn5IYihAOWh0aWJRRSZeMXA+WnJWNzJUJitIdkxFbD9EKz5R
MFVES28pMGdVTHBmekllVX4yWQp6JUpweztuIVBnTjkpb0BhKXJQWmFGWUpWYFJPcUU+Sj1rcm1W
RlQ5IWh9fCg8WVV9VFpLMDIkU2B6NkFncng+VmYKemY8NElmO1ArPkNqeXgoZCtBLU45VHpJXjVD
RTNZO0pHcjFCKCQmdyhoZlBsX3dKSX5UTE1sZ2pJPTdLWWBSN1h+CnpqOTZgJi08d0taIzEme3l0
clRVWig/c1kocnBnUzhWWXA/QyNuVEZRWGxPWGgwbmJtaHRLPEtMeSY/ekB5MX48IQp6SUx8RX1L
R2Z2PStqVVA+KiVVLWJCZElgK0V7PUdwYldRcmdpIzdNXysocm9BNnctSldGPFFpTDMlaSNIeXZv
V20KeldoJihzQ0omcVlxPmpHK2hELSN0WHtyPiRtI3FZeUpFO3IjcDB4e0JRP0dlTlk5JFp5KFc9
fGMtfH5zIXBXKnEpCnpGPUsmR3Bia1otVGRmOV5IeUxIUDJNIU4rKlcrfnp8NkxZIUwyRkxvN0BH
N2g8Qk4xWFdeXkxeTzshLWFAKTY2Nwp6aVpjKG5SMX52Qm0qIUZGUXNnSmtFUW9WQEA8aD9Ke3lv
JWNVXzBrOS1sVSpaSjx4dnY5OTcrcm8+cnNfPzwoPSYKejJxaz40STxDdSNVYzFVUnJ8VUs4emI8
OW4xd0gyOGVqVHViSk5iQ0NBdXE2amphTClAKWRjYlJyWUhRdkYwKVlpCnojaTBYeEFTQm02K2hM
KGYmQnhTVGsqMU9LRGBJNTR8SDg5QDBySHdXYHd0K3I0dllLcClgel9wVEJlKEYtd1dLdgp6JH45
c3FLNWtAaE0lUSlQKX0ycFBGJkxxdjdGOD9tOWRVQyZJWTIjQWV4VUxjNlUlKlc9MEU2JUk0KXxB
cUw5VWwKeiRVb1F8Rl5FYX1kbE4jPUNmPz9kcGViTWkzckRwdDR5VytMXm8jaWdpTmJxZlF6NEtP
N04wKT0+S0Nfakw/MXBYCno8QDVUMVNLWXFhRXlDQGc0ZzVsT1pvS1E1bko1Pjd6MiZNaUs2V0Nu
cXVuJW1TV1QmYW9waEJAYnUzVCpMNTJ9Vwp6ZHl1ZUVFeys8MFpnbHNCKVd5Ky1tfH1FK2NUeyQ7
cy1Zcj1lZjxxdjg4PWQmWnNgd1RBVDxzV1JBQ2JmUWttM0cKekEyQyQrKUwrUTReT298XkNvRHwr
dD9BQy1ndyQ9KEQ/VipYTHNwUnkkYGh3MDdobSRzLUEyTTdWXkJPfkM2VD5ACnpoSlZ5JkIyc2E5
T3NYT2lAQkpsSF8jI3x2ITZpcU1IcDB6XkN6SSp7O2JOci1FYVBzcWloSjBFV1A1b2l5aE81dgp6
R2tkJTVTI3cpZXVpUUR2V3RkSTdVVEpxQmtUZzlnR3x7P19rSk0wNHBzUWFuc1c4LXYqQElpRDw0
TGh8VnlqUlIKelYlTChjSnRRWV5YQyYwelE7KWEzYjglfj9sd1k5UmtsIyV1TUxhKTE7IXFBWHA4
em4zakN4bFhQX0J8MTB4UmE5CnpURnU4ekJmSnIoY190dHImTFpVNj9vfHlCdy1HLXxvK2V6JG4t
MU5lQGhkXzd2VWZ0QW5xPUkySUdFdWU2QFVBcQp6UHd9Zn0mQ3tlfWVZN0Q/KTxIXjV0MWt6a0Y+
JnkmNEhnbFQzc35QMVhqYnt7cG8kTjEkUEBAVFZ1cDNTP0EhQkgKei1nVnhIITx5O3s3bEc/dSl4
SDRyK1M/Z0RESWIhODlHbjVaYmwyelcqVXVqeE9edXdab1h7VU15ITU1bXd8eTx3Cno9QTNAbE1U
X0szYENVVE9oZ1NlQl97ZmpGSlM3JHVnYVR7KFFyMnc1UmtGXlNsb2UkNjczJHF7KV9hcnhJSmNy
Iwp6c00qRVJPcElMdUcxfX5EIXxGc1FAdzF3QjtJVDtyb2UyclEpU0pER3gpR3puVXlmenF5JVFM
RTRyLWJyKD8mKkkKemV8enVZcmdJJHMwQnBNPEVkWVA+ZGZDWVcrcnY5KkY4O1l6SClmQi1EYE1H
UHlOKGMqdX15KTElTUk8YDghb0YrCnpoezklI3pFdWt3PTcoalk3dGt4I24+bks9IUtGTGBaNXdP
SkJBMi16PT9iKXdEV0YjYCNyJDYyYT5saCt3NXJjJQp6ZjZpYH5sYXtJcCMoXkVaYXNLeDJ6V1k3
T2dHK3Q4IThWb2VSTnAqdnVsKHRkNDIqSHdgbW95TW1hZ1EzTzRoaC0Kemt9WjJpMmk0JXBxQnBf
cERzSHNPMzhpNjQ4XlFiVVFAZ2ZJViFLdWtSWCE+RXRkTGZhUnBeNzRrRSZEZUQlMXghCnp6SUNI
QkZOcz5UZEZneF9pfXNrMGdvQVBpSVpOOSVoUnFKRXNUN3xfUTdAbTJ2UHphJWVrJmFzNiNBfm9a
NzdWIQp6akZ5XlpvciVWT2YkPGclWVh3d2ZGalVQUjdnLXBGNnxhVkljM2ZFcUoxVVdKQjE9KGdO
fUhRI3pWNkxaO0FRP2cKelN6VHU2VnxzbmBBU1c5QSQpUHgkaiNhWEk5fThBJWZ9fmdjMG8tTjU+
ZksoZChAY1cqcyNEaVlZT2tkcSRTKFZECnoqQCg1dHFPRlRZRjwzfGh7ckFYV3pCY0pxLTBIT0hH
UFYjUVFZKykzXyE8fWlTUyt4ZW1WOWhAJXAoYW9mZStnQAp6blRlTnlTJEtTNUlDciNxeVhfQ2hr
Km49fnlJWFMmd1E0czdUUHFqcWIoKGFYK1ZaVTBNJTZQZCE+Y31DcFk4ZkIKekooR0xqZzB7bnFn
ZSpfJUQ0JDYwZXRDSHA8ezU1TnRiZkNDdWgqPnFtYTZybXZyV0lhJG93MVote3xFe1hCSWFRCnpT
MH5mQSNmQ2xXUT5zc19yVUsqfVlUZXdmYil1PVpReDBVbiMxJUAlbXskeE9kUz0+I3QrfGU9PUU+
UGZzNlM/Pwp6cz5EVEx2T2RxMXRfYnFSdT9YRnhfVkNtRjtqTkNrLVg4RmMmTntjMyUoITJ2KDE4
KmhhdUhFKzwzJUNZRG0yTnIKekk3LSQzNXwjemFqTCVleGtOYnEoaTJ4OUMkcnF4aGZPeXV0Zlk4
RzE3MU9HWXYpblN0KGdsPlAoXkF1dXc9YyhXCnomeUQ9T015eE9KSU1iWmpXPE8yKm52SGxjU2Bp
elRATEd+V1hfYSN2ZE1xK0VtYjd0KTM+UF88Yn5pSjc/V3dtYQp6IyQ0c1FlPTVGLSQyQytEOVRo
e0NII0BhaFc1Kk9kWW5+TFRMRVYkbTJIJTdnVnhvSUpYaUc1cGprKWktaEg4cigKejM8JC1MXlFy
eiZRa2djZGJYPkdLJWBXNmV1OTBsfCZXKj1hdmNgKWEqSXJJTyswVlY2cU5uZm5FX0I4V3o5RVIl
CnpNSSR4VFZGIzFaeDxaLWI1NjQ/N3RESHhOJmBLRFQzbitycFg9PXRKKD9+bnxhNyFae2pOISs+
M2VDUyZeVWplRgp6Qzdsb1VXTG9VMXhhQTZBQHtzQWdfe18wTVhMfDNkIUNXfCVQMkV5ciYtdGFO
Zk9ObU4oJX5qZEtLLUU8Rjh7NDEKej8kaC1xcCpEcVlrdDJHUSVrYyVZYVFoP0c/Vkx2JCZKUDB1
MmJTWV9HMFJTNVEmWjFQLWF0NWdPdUw4MV9wST89Cnp1N3lGYVVhIzN6SHNxT3l7czY9JkFTVVle
RWN1e1U2THFNJFhKVmVUXkdgJkdxMzw3YD5rPDtQZyYpUGAlUDU8Pgp6eSErbSNwNks7bFV8PW5G
anM9cUJER35YSnZARExvbV4haDByViFgbHQjYENALUs5MUA0S3dBdmhlO21vNWNUPSMKenNXXiVt
bVRMeFo4JEdidChAKGpHUnJ4OHBaK0gjUTYwd1N6SmJKT3h5ND1aI1VCPy17LSFSVlZJKmxzPGA+
QzFhCnptYlU0ZXk4aG50SDQycVpJJVZhI2h6UHIxRClVb2dSOEBJQWttbUtiVy0kZCtzSlBReXkx
RjkzSVp6fl87VFJoegp6UzhBJjc+ey0qSWd3R0wjQ0BrVVNZMyMhQFhAOXp2WChnM2RHMFBLRDBJ
cDB0JFlEZTdzUl5rQT1SMGVYKCltczYKemBVUlBKRkh6XipTNFpBIz5QM2pnaUhmS2AlJkdDJnk8
M2ZrQ0J7PWl2NHFIX2hSTlkpITNLbn1nYmRWR1ZHPXYjCno7ME84ZC1kZiVoVUEkXmpBbTZYRDEt
UEhAODJGT352Tn48fCsyRShNRlMpTVYzdGQ7VXNZeWxWc1VLVGI/Qk9xKgp6X3hGbUplY2UwUEdG
SFBxS1lkPWpNKTh2ZHZHSnBkYVFXY1lFaE4rX3w0MSVmMD0rU2BEOXllY0s0K0hoLUl2S2EKeilk
VWZ2Nn5nVmdLPH1BTiVGfT5hK2o8dmtDPz9aIWopZzQ7ayZkbD07VldwUj1AUlQ8eiNFQyg8VnVs
IWoxQlQ8CnpkJFVKSm4pZERzPF4+QXIjekcjd098fCEjeDNpWUBIckZEMzFEQU9+UDNCb0U7c05z
JVdJcH1JX150ayQmKH5JKAp6TyRFRTl5NFhlMXReSmdlKSpndENYVllZX1RsRCk4ME4tS1JzZzRk
cEIrVmBDeU41TkV1ZT9oZmV6fWE2VEhlazEKenR9bCh+VD5XR3F3S3ZtLURgKG1CRnVhZS1xQlZF
K1JiSHR3M2U8bTQ0d1NiPmVPb3dFVll0QyVlSzgrPV8lZzBiCnoqSSYlcyRJJSY9KlVpOzI+Uy1x
T2ZOXjJeNWg4VXVxOElGYzljekcjcUJeUUpHODZ5ZSpTcCl6X2cmZEVxI1IhTAp6e1BecWJSM249
fS0hPyheRCgwVjhmJShkdThhLWZnMyE4cUIzWlljaGclSUh2VCoheihhUCp4ZVhuPUspQX5QPX0K
enJGLWRUVmplaTNRRzJ4MFMxUm0zTHlSYS1oVjskaFJrdEdKUmhUSDBDWHc/YWdmfT1sTWg4N0I0
eCsjR1IyaVZ2Cnoxfl82aGFweyNZZ2J6YHcoa1lXKHJBZDcyJjZqSkxJLWxtQmVgR2RITSQzNXs/
IU9URGt3JkJBQGFvPXRMWW54cQp6eFRxeGFCKV5oYEc5a3orV1d4TFJfeC11NWxRSEN4UFNMYm1w
cz88ZWteTi12MypMUUZhZ21Ud3Ayaz1NI2BnQ3AKejdTbVp6c358VjZYOSN2bkdCPiRjMlZPK35W
R1Q9bXRkUEJUPHgyWn5sXyhGfT8pQU88alAodFhsa3k9T3J5KGp9CnpZNVNGMS1tNEdGJEVNP2JJ
RFRAeHI9NXs0bzQwKk48eVVOckJ1SiZTVjt9I0JIMEYyUT1XPllZPlFpeTgme2RLVQp6dmd1MlZh
fEMmcnpBTns+TGZ2ITFQRHJxU2B7dF5sKn1LfUBtQ1koZz1fdUpZZTV0KGl6fU5VYjZ9czh9cW5m
RXsKekswT2pATyMpQGUqfGI7eSEpPyhKTDkmeVkzYGt4WTd0WUc7LXBlcyhOaipATHdxei1Yck5x
IU1VYWVgQVY/QGVgCno8ST07ViprWjY1c1k8ZUNkcnNETFhaTV43PDVeTWkzX05AfUEpfkdgcjhw
T3Q3ZyFBXitue31mOGlfQktwbl97Pwp6YmpscXV6QyRseFE4QkxrQWhYVXQrOzk3SmVReUpfVzNX
VlpRcUloP0VTbk5gV19GVzdaQ1lMNHZuPSlMO30oY3MKej1YeUduaGlXQztZVjhkM3NaPUM4KWNM
QHxGSlJsK0R1OGEzbGBwUnplbGwhc2ctfVRfVD5YKmVhVWRyb1MkZzEwCno7cGVWVHsxWWcyPThH
VlE+KF5tPWptI0Z0TX4rfEh6aW1oZ1FBZXFiUG98c0NaTlRscGNeWU0+an5SQDxNd14lOQp6Wipz
YUVKdWkxTUkqOUQqIWBsdXFkamskQjNmN3Q2OUFfM2JzeGV7OG9MMj53b3hoNyFVbj5ycVg0cGtK
Qll2Q3YKejlYaFJCd21sbFgqQXBjWm53eTRMQzBtWCU7IXcjUXdWXiZ6blJ1UT1MUSZmTG00b3hA
MUpZZncpYEV2SDY1b280CnpkWXpZXkRiTDlBSzl8YjZNWXgrIWpJKWs+Y0dadmQ0cVFvZmZwQDli
U31wbGNPPU5Md3lsT0hYdnl6YkwoMTJmZgp6dE9yYGEqcTR1M2piTmI9UEFVTHxNfHIkUmBQdWIw
P0cpTD1pVzMkPWZKNWxDemspX3JYTCg0QGhAdCN6O20tayoKem0/KDJ6SmJUZWd0TW5HS1grZEVP
ZXI9ZDlKcVh4Z0IoVSZjQjI+WX5nRWRhMVJROTI0dzZQRHo0emV7M0dmXyFaCnpWc0x3MXRxfjto
dnFGaGJGY09MOWtsUnlwXnllcHJmMyVpeGp4VXgjLWw4JihEOWlGNW1sKDljNTZrSmclV2Iwcgp6
bTJ5bylgJGxjSzJpdyN4elNCUSFeaWdaRkRTQFZtSiglMlYjQ2VPPyNnKldzJmhkd3BKdnU1ND8q
fjMjY3lPIz4KeipZeDwzLSMrP0tuNj1DcCpfZHg2bDVoWjdYalZRb3dHeChIbFRLckl6PGduNEpk
SXI7cSRrdlQ7PTR4UXVsZldQCnp8NEsqb1YyWmxwVzM4IUIjb1g+UUp3WFQkVDlqOG9XOU8xRVg2
ZClzTT5VNUktPk95XyglN2M9XnBAZEFpTjJ8Pwp6RntPfjhpTj8jLUR6I254Qm9mNEhUTnBDSj96
VipuJVZ2NDsleU5laGdIPCkoSE9ze2VvTyZ0QmheZEpGNGpAYkYKeiNHPStea08pPUo5TjI9LSZo
NypiQlBjMTAjaVYxK1ZJRE1qT156UUhTbTxIfnVjNmBjdzM4ME4lbXBPYnZhdTVfCnpraXVKZTxE
aU4jJFUjZmhIRUxUPytLUzdJeGZgbi1gX09GMTxPdz92eU9GLTVYUTYqNVk8IUtKUHdiLUZEMVph
Twp6YzVsXmkkVH5lSyhzTXdzQng9XjhRKU4yTG9lVCN1IyZoZHhUN0szX2owTylGNGQqTDtRYm1l
Pz1CJUQwQFVWTEEKei1vd004dmAoc1o3T3FBYWRrPDJsPEVyT3JGZFNFPGZpY1QmWFd3QkJURHd2
KTAoQFpteHxJeEEmPmhpKnZlZVRXCnolc3xEP21VaVduXmxvMHlhcUhxbG4oRz8mdEdFRGBzVC1M
USlFe0YjRlk3fU9uYWJMOHk2VmY1I0syYlc1VTA1Jgp6JWY2NnlOUWdzZll7bHkybGs5SUxhcD9l
YFpPPCUkRCt9bGg/N0Ewb1hUTiUkPG83RyhZRTd5aTgrMW4mb2EmWWQKekd1MF9OM3hKUHJGdCl1
WSlNb3EqeWs9TUFyZUM8MkA5P01yIy12UnNMUzM5JUwrQDFNcUFFUXxgMFI1VUhYP3tJCnpicjsz
JWJVTVh4dVo/Ml9nTXRuYXl9cnRpJUMkV1Bsd0koUEUmYiVaZ2FgI2ZiWFIhezZ2Q3RHQHVrOCNl
ZlZWSwp6bF5qNyN1O0t5K3B2Rzs7Ni1WTXhMM2FGWGlxKG8qOSRrP0hJT3RROGc9T2NxSjJkKEJr
RnUwemk2bF58SXp8TlIKekcqY0NpVCtVYWVnRU18WDJ2KEdyOSZ6Z1hgQThpKjx1YHRuVUk7LXsm
fSRhVnEoOGh1Kz0xODBWcUpWbnBeYzRJCnpId3lMV1NGWCMmd2lKIWJ4dT85O3lRc3YhVmcya0Q7
LUklPk5IP00qaSlHJDEmWEpLcS17QUxSdW1VQ19VdiQtcAp6X0Itd0dFVCFEcllFN05WUyRPY3Ap
PGZgMUUrRWhQOGJ7d3pBIU9BcERTdypuMUF0fkMwKiZeKG96Q1BfcV8oVi0KemRkTXdTcmV6SFh1
Wko8c2EpK29qbEVTOz5LOXxlWi01dV9nM2MpYC1UK1A5PldpeTN3Ul9Ka2BAbnA+MD53Y3ZeCnpQ
QEpffHNYQUNYLTROWSQmXk85NURNLTYyQn5UZn4hazhiclk4dEVqQEk7X2lvUDV1UURJZWEmeT04
a1ZjdkVAVwp6dTsmbHAzSlYqNnZ6bE1nYVVRfFBWXm1UMmBuVzFUa1A8S3Z1TGxQU0tOSFEkJjF4
OXNKM3VjT0BnRVJaIUE0VGkKej19fUBUZHhlMX5yMn42aG59ZFZXcnJJUjxQYFctKUJyZW9LVDZC
SHtEV1p+bCE8VFlmYGZUI2B3XzMrdmRBQVg4CnopdmZzcVNfKj52Xn1kb0xfN1p3NVU+M2VWUzgw
I19JRHJuRUlPR281eDQ1M3o4PV5gQDV3JUFHKC1BdWVWdHVPRgp6OHxvKTI7ajVKVTVfO2tCIVVC
TFQ9dU50I0psaWFjKmZAfCY2YnxYQ1RKbEA9XzBZVzRyWiUtbHBabD4kKnl2VlMKei1nYDxhcUJI
ZnV5dnpHTiR8cGEmbS00ckgmNTBnTWopJEZVWHFlZj4yeioycj9WMGklXjlfRGYlSCtVQUN0UDRz
CnpkNDwjQm1iSjA3PCkmeEtnWE4jZDUoI3daeHZgcSN2TSZgIWY0Til2ZChXY3ZIX1YmbGFDPVB1
eyEpSFA/flRoQAp6UnBSRkI7Oz1jaCtkRnomNktPeXx4bkVuO1NVczB1RXBQQmZNT0UqZUY3QEFV
R35ydmpTUFN2R01ZaWEoVzB2O0YKemVHQmI5QWJmc25EV21sZEs7UzhCQ0ZxT21MSjslM1QkS1Jl
Ml9Re3J5KWFHVlJWTWMlVGJleSFpflBwdEpnaTBgCnpma1dqLTA+KyRPMVd+Zk0jPlROVm1KcTVg
cihBYXNiWFhxck1xckBGKih0S35feDtCeSFETnU1XjJHUHw4SXhAXwp6VzRWR350aUoyWiowRl5V
KX0xPGtIJT4kVjl6QWBoV09uX0A5UyNKfjtScEVuMD8pS2socEhrP0NVdkZSUjVCYGMKenA1KGR2
VHJLdSYzZ0NjY3FMYndLayQlKSlsI1glQiFPPTElJV8xdDRjKHFPSWNjSUcrc3VlV0VPYjdxYG02
I1Z9CnpCU2hgQ0xwb1JUSjIldzNrP3JmWmpZX1NYbS1hTn5lQDM2UW1Xcyl9OTYrfFhTfnFHTFFC
cF55OEVJfnIkcTF4JQp6U1l1KSElcVNhMjUqX3IyXzM+el8jP00yOWFAWD5HP3l5aEgtVWVHSE5W
YUE3VTFFPzd0TFdzdWN0UU45aU0yVSMKeiQ7OVIzaXshfl92KXNHUi09X2EmYik+bkhCOGp5QTFo
QFk9ZU8yXikhbH5XNlB5ZW95QGExbWk9bnhnKiQ0OHJtCnpELWBscS19K2k1elE2UiRhaVhUcXc2
RyR1WTh+JHxObmsyS1pFN0Z0T2F0N1V0KihnKU4/TmJnNTl2WlRldzFRZwp6S1hEZnYxUDk5VTVN
OV4kbUZOQTVjX1lVbllhNkFheG1yTnBPb2NTVz92fGFCcD9tam0/bGFMQUtaIypuN1hPb3EKei1y
ekUlUX5qRT9tJH02UFl4dFhvQDtOUlFoT3lBWkk+dDlPM3JtSi1Zdz5afE9hUzNraFhgbHRnVVVA
cWczeXAqCnprazkoPTBhKFpwSmZSYUJZR0wjQjlQYXhsaitGOEBXU3E5WDJvYENwZiEtPTgxUk5l
JG9pR3BWeXw1Z0ojPTU/UQp6b1NARV89ND94bHsrPkBFWnZOaUppcX5xKkhLMUA+OFVLP2khRkFe
LTZmRWBBYHdsclQxMz1IZ1JLVXhNZ0J2I08KeklSblRKNkh6fGQkM2spQ0YjdVhVVHdkJGh3N1Ul
dXY1SCVFbl5kbnd1QVlgJWs3RkpRbEhNfDNwSVFDNmM8ViNXCno7fDlQbDA2YCMyX2tOKCh3bHhN
ak5tcEBRKU9vP14yUk1APmlBX2FUK1RJflo/ZGFDSHFWTVlEKENlLVFAJXY9MQp6ayojRmhOUkJQ
RWpSbkVOSX1RIXJpKkF4QGhXS3ptOUs/Qkd0Ujh7OTRSJmVsYW1NSCVDdW1eVk1SeiRXdUpyK30K
eiVVS0ZjIU0rYTxucXJidENvISleJXt+NmcobElma1ZUfGxMUk5kbSNzR3tNKTxofk5yVTNYOzY3
KHN2bjFub3xYCnpxTWtgMG02SGJ9UFkqMTFaTUJaPzdQJkx7JEVzNGVjbEJFMyFfcUVadz5zKXtX
NUtvaVN7eUlwRGpYPkIxN1F8Ygp6KXNAZjdvfWNLU1lyVDNJekc+REVgZExMMngqVzBtQkwhbipI
IVg4ZEo8bF8qNF4jS3hvYGUqPClTLT0/OHokN00Kei01WHBFcUQ5KzlxZWZQNGV4JTMwXjM8fH1M
cjZeYT1EUldabXxVOEt6JmRmdyZubzghITsqeGc5SiU0blg4S3pCCnpmfE85Rm14Z1JAeDEwO2M/
ejY8aTN5dVlydUBSel5aQ3pKMWk4MHR9YCVvYEV0MDxDRTYtayZCSzV8USZobWdQTQp6QSl9an42
cExNKnE8SVpGK1MyYjtJQG1HcjNNN0YleWRQdFBwNTQoP0dZVH5tQHFUK094N1VBSHZvd01DRW1C
bnMKeiRWX3d5Wl5fNmVsPzBaMWFxQ2MpVyFxck1xV3BZeXc9XjZuX3JJfEcxZUpHNEMjJHx8eSFH
YFNYZj84YitlNDh0CnpPKit9dVdBTzRUYWY0MTNTcm9gekZUYHxefDg4MldiPTcmTE59UkFDeFIx
Vj8ySE1HR1hMfnBYI3cyeGd4RyE8Tgp6TFJEQn16cktnNTNee25xU3RIdUJHQyQkK2J0X0EpSVFT
VFVPJmlHeXIxUztkQTF4fCg8dCMwX3VjIU90QXEkbloKel5LIWFIXnV7T1BPaVc1LWBzN1RDXz5s
OyRPYkxYaUBlZUA3QXYoOVZKKWVIVjs5OD9FbyNfPCU8NTNEcCUwaUx7CnpTcjFRZW02bTMma3le
JUQlSDw3WjhwRWY7ai1qY2kjJiF9cWgrfVJUZDF9Wj5jfVFgVF5pZCVQWSVvYldBdClPVQp6PVl9
IWhDekN5SVpnM04pbU4jV1ckUHExQDVgS2cwRVY3VDQ0TEwkQ2RoaE13QGtoQj9DTGdafFdhKmJ9
TTgkKk4KenpGVXVBejl9byEqXlJnTDlJPHIpM3NSVEArcio7OHBvPntQWGE2JkVWVFltbHI7UEsk
KzMoK0tIejhHaiUpRVdCCnpBMl9Pd2p4TTxsbU97Z2p3Z01IYiktdT58Jm11bTVIMm8ofj8mUHpm
eWVFdVUlJjsoRnZZPUU+eF8/ZztEMWk8Pgp6RCZLYSFoXkhTPWBhWj1sM3ByMTRoeGRrXm9CRFF3
YjtPazhVdCl0N0xieD9IeFpQZHU8KjJyczBhTVdJZ3d1KFQKeiRLT2QjUEQoMnhtfm8qOCFfKmYp
ZVElSzBCZkFLdldfSH1hWnNuQVRkbTJJPlMzNVd9Jih3VkdPQj93MylKMm56CnpxJkxpKnQqK052
SHFHUnJxeDZYUTRSI2ImOypAUz0jX2dSbUReOzcpMDRHbihvKmA+ak4qail9TzFnI2g9R0N7Uwp6
YX5pWjUoT3g1PXM7ZXRrJm1SU1VeRnlqISlzPiRkXjFJRSFyRmtTaiVIRnVvTyY4KzVII2s3MS1A
Y0RZPjdLfkQKekVNXkhka219PzxBY2pCTkc2dkx4PWNRdnY5JWZwTj5pdFI8WURvSzFZU2R0TT4k
bnNGOXNLI0Y7aThhKjM/ak8lCnpKYmxIKk8oaGxvZ0VOdnUhI2RAMnVhMSR0VCtWMUZuRTg9MD1y
KjFoMzkwYTRMY0ZSM3VsZCRUSlpSKSZ1ITsmLQp6WVo1ZUt7JHw/cWpHTFRSZlUjYlhrO25nbDJm
JmxqQ0JSYF53Zn0kcy17NkBKR0kta2JgZG8kIzxRV01+ajRDLWsKekRvSng/JmtVQDlFfm48fXs7
VjM3WlBxRnUjbnRoMmg8JSZTRUg9c2JFa1BRal9gcVpeQ3tYZ0Fnd29QN1FkJW5yCnpyOSsjaTR0
dTR0JmZyOWQybSF2NU9ac2huJH5xKzsxbzw2Y1g/MCtvNnF0MG08OEVnNFVXPT4jS3dgdmhYbnRM
TQp6KWp0fCVhbzwmaUFEWCZANFYhPl53RThTJlpDY2pFckFkKDRfd1VgK25YLXMrSnJhdU5WUjJt
fDBabTRtTXd2cmkKekR2fD02QkUmZkFFMj1pKDlERHd8N0lRYURyTXxaT0xAUz9KYWB1Z1QpQ29I
OG53bj85UzItUD05YSkmSkFtRW9gCnpjQj5te0pyQnh2akFhRSNuKjRlO2dzWVVrKFkzVUc0eCgh
QSl3NShAU2EyPElDWWd9PT0yIUIpbUUpdUFGOFJ+QAp6e2hoJGQ2PGpAVyZqamU5bEtWY2Ehck5B
M289SldMYUdGNiZ7RlRwPkFCI055M2BrTl9DPmx9a2RtJT07QT5MSDQKekRPN0pnMGpuXlVWdDMw
TkhCMERmMzYhdG1WKFZLQWFwfT5kU2txOERYKDhQQnZBYGcoT0Q2OENPZW9rZSZDeExaCnojbD9W
WURRXk4+NiFTUSZVZCR1NmohTWQzJCFiaF42ZUlYQGUkSVlxaDdJP2leSEptJDR0fn1GX3pyNj0k
Q1EqKAp6TzdgV2pgei1PJkw5flBJZnteY09uWi01cDlnVl9yO35lI19mI3lRNWdaLW9eIW1IVGdR
RlY5UEJCfGxxdSkmM0AKejBtc0M1NGszaU9zKDNka1ZHPEB0ejdHNWFiSnAmJkw2KjNMKk9zQ1NV
X0lgUmlZc1ghdGJGLUIpO1Qxakp+R3sjCnpsZDtCMEs1VitANUpoUlNtT2gtUihQPFhKYnZCZENS
USNASGMqNHslVms4ZEYzbSp2d3BgeWFGelhIPkcwek5BMwp6NWt7WDMwKH4/VEY3SFlQRWJZK2BI
VWNSOGJNSjRYOTxmRTt8SF8+Pz13dVN0Smw9aSo4IWQ9Uyk2JjZqOGlpS2cKekV5TWY5KExRKGZO
P3VGZXYyPHk9TCM+cS1AfDJmakY0UlFBTlBOdjgyRE1HZCgmJTJwUHgle3h1bXp+dHh2Xz9xCnp2
ei0+NTVAQGhraSNsfGEjbWYkcWhtU2R+TmBpc3lVKTtBM2tZRUM3PTJDR2k2WHEmJm5sO2lDJD1e
dFpTdj1aPgp6S3Y+MVUpT3VDKitBJEc/c153MCZKTSRsdiU5bjdjSTlyZlVuVHh1UDcjZ3VgNHJV
Nmo/XitHVFZjWipgKVV9KVIKekpja3A1c1hJJUJ4eXhFSWNFRUQoVlhPMXxycCR2YnB9Q29zLTBX
KjtKMmBpNkxpQUdOclFONG1TQX12YTJ5PXcyCnpuYjMhS3IwSXZNcDZUKERKVTFyM2g+ck1jSypP
ZnhUVE4jZE0tQUxNUkdsM2FuU2JVI0p9Zkl+ZjB8bG0xSHo/dwp6JGw/eDhFZHJoZW5ObDg/S1FZ
LWU7PEZHNV9vbEsqVzkjSF4kRjhSZj1AUFN+ZCtFXyl3NV85dmxkNDB1b30ldmkKekRAaD1jTmFK
YGEycVVVSzE7R0p+Zk8mcm10SntiUTdYPWElVDRTWDJZR2x5I3A3IzB2JHYoRSNpTXhldDkzUVpk
Cnp1P2dsaDVBTjs9c3gxUXFmSnNLSWkwUjFAVko1R1lkOFNhSkJTdU89aG4lZmRefWI2NFlwajJR
bmhUdHdfelE4NQp6SUMwKD14JC1vdktONVo8SEB4dm0tUFVqJCh9KFppPmpGWnxHJmM/MCNHX3wk
JnBAaEc/fEJ5ZV4/RDlSTnVMVksKekVWcXRtJGMzQ0VQYUMkKDh9e2RHeHFjKm1tVj9JVDFSR0Zv
MENJMXVVI3dTJk44X1UwblQ2SCVmMG5KfT0jJnF6CnpZVmIrJU5eXlR1aVVWZEpWbiQjPkJ2dSU4
c2YlSDBYRH5pY0x3PShxXmFAbWlgbDQ3d0VfeiolRVEoJXg+M0p1dwp6Nz1JWFdEZmhNcmZjYEB6
IS1RfjNSX2ImMXsjRWVRVnQwfWI5cUdOLTFAPWMzKTc9Y25OO18meGdYZUcjNXhKT08KemMmKDVm
MUt3TDFBLUZLdClHSVQ2ZnFQMG5QKGpTP3lhYVRrUDd0aW5TSHshUEFqSEshd0tvaVcjRlVIZll3
Z2FsCnpjUSQ0a0Q4WVA2KlNAcCheVTdMKFhXPFI7NVRwRGpTNFkmVDl+aFVvTF9ocC0oRHd9bklh
P1N2YF5tJmAlM3N7NAp6byk0U3k7JXwxREdzJWZtNGt5M1AjVSN0billeERRSm4+dyREXlZlNCgy
WDZFJl4wX2YqQmZ0VnZOeGEpT0twcVEKekpHfTdOaGxFTVotWWl4THM5RmtjaiE7ezYjPjUmY0p2
IVFNbld5b2lwb0VqPGB5VXBrbk45PW1JYCkrTkokNGd1CnotJnZUXz8xUG04PXdjeExNXiZHZz4t
JHJ6PmotTHgqZmQhJC0rP2Jaez0ycG5IbEVyK1MzP1IoREpHTnhIWWllRwp6c2BTZ0l3OHghPk1l
WjJweDxDRU1kMlFmbjZmc3FFST40RC1kQHdjMis+T1NKZWV2Y0NUbGQjaDJmTTBJRyExbGwKekpW
WkduJFJvRHEzYUNpKiNyVCVOQSQoSyVUc34ldXJAe1MjdVI1cmZQQyM2OS1OYGEzLV9VbG5SK0lC
dnNFSzxuCnojJWlYYSQpVVVqT0FiLStHdS00WSo4PmV6M2IwWE8oYW9zRDdBTmJQMjhMaEtsP2Fp
QC1AejNSV31XeVFaKGZkcwp6aGx9UXx4JXNwNmdKcl5paElUIzsmc0BFNTRfZXZKWDIkQyt5YGNG
JHtpNEF4VWlJfl8/I3cpPXJkJk1gZEhNK08Kejc8NCtWaUNPRkdfRldDZDd8MCR2cGJ1dGhITWc7
K0ZZSlRqKiFUZmZlM2dnQ3JBZ2FNRVJLfnFSSEhkdHpicWYrCnp2YDEwZVBnLTJtNUk2KiQ3fE9l
VDk2RklwVFQkcnEkdypCa0U7K3ZxNmgkSHNmWWRHWGxkcEM4XmRQejh6JkowSgp6dXQmQko1fHNH
LS1jMDM3Y3E8ZHJkK0pHXlF0bzZyUHpxTT0qekN2KEQ/a3s+JlArRHNWeXZLJXJfXlJvOVpKJkwK
ellOKWE4S1BkdXZQQWsoQ0RGTV9+LUReOzZPUW4xWSV7d3JmOT5EcDJCTkBnJSYlWkpmeWdTIWNQ
U05hSV9lQCRrCnowaUlnaT89QUkrPWc+UCY4Y05hKk9peDNIVClec1k+UF5JT2FJQnUyazg0VSkq
czVwMCMqM3V4K3NPTVFLNFl6QAp6ejZjM2wmRlpZRWtOZk9FZEYlMEVoNWFkUTxVPT8xNW1rP0cr
RWhATjElPmEoV25TQmZnO0t3Z3g0aks3dURBZSkKelI4bFBfY0d0WmBVSHZxdVJvJTVBYnF8MDFj
SXs9dzxsXmtMVEAqRz1QJnlBeWFJMHRPdypJelQ7YFE+T1cjJFNlCnpUe08qRk9uJlZWJn01JHZG
ViZ7X00xZnJYLSppUUN0PncxX2Y/UH1xMDk/VlI5cGdVJFBiOTw/ZXVNVSowYl5kcgp6Tjl7fS1X
cTcpS1pIfik7UjZyTHJJKWNMUmBxZEt5ZWBkKHBwfitGcnJ8RTJfWm9YOT5rTnJtKkl6dUtjdkpa
T2wKeil3MFZmKGFIaGpyVj8jRlo8aWAqVGpAclchemArdzl6X28pdSN0SXBMakEzZztWS2ZnZl58
PUxNU0VlUSZVOV9NCnpsSEpmJF5HJF5FcHJmRkwkUDB5fWhQNTdgcTs7REFTaCUjZ2RnRC08VG1t
WDAkZi1pT2ZkP3Rua0FOJitkVE8lYAp6UzckPGhoTGdMJEszdndXUjUrWXtQZnFDTCRhKElHQmYr
bDM9NHFjXmswQ29xP1hTe3JwIy12VkM0fj5gJUl2a2UKenhiPS1fYjBWJU5NMmE9MGhPYkJIRntX
eWdWVXBZdio1e19YV2hleD5iUkhGU21+XkZHQSM4diF1N3ZNcFFsQkJ7CnpnJSY4aV90ZEd0VkxT
TmxVQnsycDJsZ2VBUDlOTF5SaT5iZ2tIa3MrcWFKLUlrQT9LR1F1eFpDbDVmNEFzbXxeLQp6dXAz
bHx3dkBwTlMyfHxuNTlFRGckWWhFQnh4eTh7R3hHYGs8YHQ+aERWSTkpKzAhX15ONyo/NFMmTkRj
SnRtPFoKelM5emlBWHh3QiRBZnY2e0gtVWxVaEJzTnRhaCskVGQ0fTAtdUJqUDYoaz8rMGA0Z3Zj
UHB8fVU0N1IxI0VHfSpfCnomSEBAZTQ8R2U+ZXh0aEk2QXsqbyV3Pj19Kk10SHokQGFHWDA2ckRq
PyliJXx2SURGKS11dmBzZX1uNFMldHxoNAp6VF9mcSh6TEcyVjd7Ozc9T1pMKyVSOXhHQW4yRGl9
PE1SN2Q+ZXlzeHpGdVk4NGA7Nz9GMkZKIVNeS2peejJyfjgKemNPSTRAJmVWfl8zPUF2ViVwMns5
SGpebztiUlB8PVApMVdLKShwVDZ8R0lXY1hTYTtneEx7eikhek82WkpgPllNCno1eHpzLUxWKzZH
eUYpSldxKVp5cSN7cnpIQmd8T0Rmd1ErcFBqQFhSJjA9cVNmY0Z2ZT9ESFNiN1g9Uz1mKHhfXwp6
WSNRP0w/cDQyb1E/UzBFNFpWakMwYFYlLT8lSUpASVU9X0QmUCtxdjtNe2FwcmMjPENBaTBuVHh9
fVR7WFAhM3IKel9iZjRla2JfaTxWTFNrIURmY2NJOzlXSHBCckZwLSVDVik1dk1TIyZqO0NQOWB1
QlAkNSYlM04yX3JyNDl0bFReCnphTGFmcXhgNChlTHlrRHFGMnkjTHYmaXhTUTtvQ2BCODU4Xmlz
YiNTV3pWQkRPKElsMTZzVXg2QV5gV2lSa3Z0Zgp6aDkoclJ4OXo5ejxRbX0pU3xgP0Jld04rbWB5
UypzPHFkakdpJiZ7WGVHPT9JUWMyfSVtSUNWVm92LXstK1E+c1cKemV+YFlESStPWjU+V2hMaD9X
N19icHBGOXcyJVRWRTlGYygmSDwkRyg5M0w5JWFTV3FhXjdCfVhgSlYte0RMYEBlCnpTODhqcStv
ZHtFTWlUZilufkBzSlohQ30mQG9vO3NfbVk2c3tPUTFAIUk2fStmUihaK2NvRG5sJG1qbVBtR1d+
PAp6PjRxfVd2cU5BTCM9Si1JeVAmbU12ZElVYmAwU1Q1JTN5eitrJE9HVU9Qd25TNnxpU3RmZ2Rv
PE5ER3JaayRjO2IKejghd0tIcDJHUUNfeGMmIzlDVyN2Kjg0aT1DVGZFWklGc3cwd3tBZnhnJitn
Uj02aDUzdX4paCt2d3xYJiU/LU0yCnpqeFZSNzVxVUNxZ1BWVXRRR3QrP3Q1N0BiMmMza0ErXlVV
fT1Sd1RUWC0xX3dIPHRvVlUpTSslN3pDNmBCaHRmUwp6MGJySSN3eDMxMmJAY0QwPjFganQmeGkx
YyhNS3EpYWpeOVIwPzJhJHhKR1ZuRj4wVGxqIXljPiYxMmx0JDQoOWAKekl6a2xaVTBzVC1KPj1Z
ck9ZYG5qP1dqMDcoZlNmRnp0MUJUPmFYV0Rsci1PKDd5fGp9UUlwIXVNVW1uJTBeYzM9Cnp5YXNB
c29vQH5Dakh7fTdIQHIjUSRXKWxOQWxFQUEpYDJ4e0NRJGQjdHAzUW9iXlhwUWN9blRBPCZCQmhi
YlkmfAp6Vk81JGB5RWhsVi1ROCE/OH1wfHs2TGVAfD1mMiNwU2F6JXF1Wk5RZz1vRkBvZ2dgP2xv
dT4/SDchLXp4QS12UHwKekk/dil6Zmt+NXZsIUNmdW11QzsyeXlqTXd3cVd2RGJ4aldmeV9uP3d5
ZWU0X3hZOFVOWDxRdVFFRz93RilUPVp6CnpwN2Q8bmI8Sih7PH08JTR0eWpAZ2drU01oS1QrUX1M
TFlPNVk8bl9INyVjZkB2JEFnaFl2ck1Ic2IjKUJYfj9aJQp6K3Ikb31VK2FnfSNDOUUkVWZCZVRg
O2Y+ZVJVT2FqR14qN0NsKz9yNG1ydlArYHkpQlhleVlrJnEkWjtRQyM+dkYKenhJcGVMTVEzZEU9
cXV0Zzg7c0heNEV8RiV0aHRXaTVTNG5PanZXPihqbEBCKT54b0x5Sz97dXV0NHRJY2hyNEU0CnpJ
azBhZThYO0F3MTVXSEJXY2xQTyF7VTVlX2AlVnlDZVdxcyMxX31JbiFCKGxwZVY9dTdQMStzPXRP
TX5wYnUxdwp6JGB3I0gkJDh6cVM5SyZXWFpYNmZkRU1iSDxHazl0VW9VTT8xNnZDX1lieyMwOD93
TGx4eU4zUmohdUNPSWVyZ3YKenl7VWkzUzMhMSZDcTYoez4xam4keDZUc2B4VFhRNGE/dlhLdUU/
WkYlcmZedV49cH07RjE3c2l3VHYydj5SPFFHCnprI3M/NVNCa1FiY194ME97VWhPKlZpUXJ1ezJ5
PypiSnVofj1xNWRFd3BTT21YbT52KlhkeX1ITXVyZG5sVUd9TQp6OTMtZyYxcm48anMtQ3F8SnA9
dlk9RCsxI3pLbGQoQzNLU2U0SlY8K2IhelYoJClOVyQ/KnBFKVlrYEEhZjtZdWwKekJ2QlhMV1JS
OCkpdjRhdlNkcytuZGMjSkpCNkhxK281PWhHRV8/JW4tdEBneWdLNlBkJF5HZFFOUjwrPz5UZmgj
Cnopc3hBTzFpQTBRTllPTE96RXxxeDgqaEhqU19EMTApNSZ2cUFqe3BKamtTMk5vVz1iSEdMYntg
WUFtM3JNQyReewp6VzJ4ZUU4dCQpYGVZTDt1OCRIVV5CQzsyT1NrRXN0Y3BPRVY/YHpafktDZkF9
QTg2P0h2QWAyUj5sdHorUGJuSm4KekdmM15yR3JATnU8PExVJEl9dFFWZDdmZ14jI3YrJE0lcHRe
WiNIXmRkbUw2eHpKIWxiXmIwa2dJbmJmZT1VYilFCnoyKHdfaSojYGtlQ3s2WkB2a1UzVjYhZSo5
Y3NJJEtBe1d8UmRIdzRHMFpFJE5Gdkt6YlU9UUtpUGlWNEE4NU5eegp6aW8hezVYV2pKfCNnOF5W
c0UoWHpYZXRkSHpTOFklQWVjUERpMEFNUWYqaWA8OWAkS2IwNWUoNXg2ZkoteXBGJWAKekp0T3M/
QWFSNk1PWCNIKm4qTXw9TT16WElKZjF3QDZ9UWNEckQxeGsqUkEmT3dyMkBjKVdZY28tXi05QSRZ
ZT5ICnp1N2YjQG07eEdpSlp4PnZHJCQ0MEVoJlcjPHsmUHVVZXB9WHhnTzN8VT1KdlFFTVFmU2x1
fnJreUUpc1BYailUMwp6b1JaV19iP1M5SnNqSVdoPUdCTStaNnJ8UDBJKSFPcCFYWXtTXks9RS1N
VD1wOzFlMEFOPGNvPE55V0ZXKUNCLTMKejBsNGspT2FyRXkhYD0kMSt9KlZqbX1qa0cxJWtEaUxK
eFAkPVNffnR4ISE5QCNVZ2xRSXZwdEJkKlFKMHJtKSUxCnpIaE1HJSVxaH5SKThoUmY1Y2ZzeXJt
PTZ4I1g0c0Y9KEROc3llUCs9UHBQQDQ4PH5gNGohbHgldlhiTVpJZXVyXwp6X1lVQWEqdnwrb254
ZT93bTJPRG5tKSFkQXlTYGx5JkFLZSVva3o3VlNIMkNNaEdkUWQrQjJ5bSZYY3tTYD54SVYKeiNa
eW95JjRpRi1DWGg2dCNmcUV7c1A4RjFAZj00ajhpWklKPkNDcCNwVis7WjdiKW17V01ITFl8NE8r
SFopUGRACnomY1BTSU4keSN1RGA9JGNGaElHTGpCP04zK2ZPIV9DVlJzYUtIMHlNS1BAbiNpOHJk
ZmNjdHZIYy1id1I/K2JfVwp6dSN3c3stZDleVHtlMGZeQ2E0PCFrSFQqZl9NSjJndn1zZWk8cD9y
WiFZZCFvVkg/VzZ0dDd2JnV9Tm9lNWM0TD8Kej92dTlPZXhQbTBZKzZ7VG5hWUdVN0dpTylDdlNs
T1N4PEVWYXlVdilzJjJqIUdpWkZac1pPb1pkJkdMdmpRfHZ4CnokPVB1R01ORXJpcEFUcEpedWls
WiE3anA0ZXJvQ3NsZmk3bENLeyNyZ2FVaElCYlN+WlolI1BfKzhkNHAtbk4qJAp6a0dhV0hVWjFk
LXJzKjFlPXxpcHdLYXpKezU+T09aNWBEMXpVR0ptSVU8R1lLd3RvWn5RNUxgVW9IQWl9VFZ2TnwK
emZIfCQqTVRGZWorKUtWd0dySmQrb1M3XikyXlNNYWVuQCVQd3JsLXVHRkI/NDY5aTMwPCphN3JG
LVpgVFNYU3c0Cnp3Tz4zbDRRYWE4PzwqKVd3M1pCS3dPYDFnaTlsNzMwKUNxcEk1UWNaWndNUU5f
dzRUR2t9PkdxPG4/RkhEPkNBIQp6TF5CPnhFRlF2MkZSPG9Kdm07VzxHaTZmQEtGPm17NntKOFRP
YUI5Jkt3LWF3K04oIXRYJGU9NUBFMTdHQiVmTXoKem51SWUyen5GdjM/Xjk4IUtYR1UhN1BsQj5V
SEhpa2F6YH5ATm1Rc0A5NjNBPWI0dTZmI0I3Wlk0K24xYGBnXyNrCnplPU1tKTNkX1QxcGQ/a008
SW8jVFpiTkJsRVR5R0w8ZHMrREk3NUxgN0c9ZyZtTjBYO3t7UiokMzNVeUhWPXxtQgp6UFhocWZX
eVI1emxxcWVYUlludD15Q1UoNUg2RzwrJUlxRnZiUl8yJFVGVldqNSQrKEN6e2pSNHM+VGReLUh2
aGgKemQtU1F8aEMrKVYkWCs9a3BzTUFCUi07WTVnbXc7R2BIaXEoOUNiQTBSRiMocyFaSmJLalE7
P2Ypei1JKSNhSUgyCnpTI25oTHN4MiRaIWM1PTsoPiFDaDYpS3tkeCsldW4/a2cyJi1eKTAxZDFL
cSFwPXB7ezBUKFFUalE5N2ItZE9vZgp6PVElayZHdEVzSDEkXkE3LTw4Mk5yaW9uNXlYKyowOXoq
aXlYdlhhRiMrZFBfJERERjxiQmE+JUw9JDsoTlk3c04KejlOS35UbU5BbXVOZmJyNXU+SWJwaGo1
WEVQISZSYSNDcmIjbFQ/aEpWPHR2K2Z4dEJCcmd0bitnQU45MnRHT1dLCno4NkB5S1JsK3R9bFIw
JGdKKXxLdjREQU8hRGVaOHEyZ3tOZDRld1ElaSFkWWVyV1Y9aCZ3QUNRV3ArJk1fenl1egp6eVBp
MTNMfDhYLSkyMW00O3thZmF5QXlJISE+PiY3TylmQXc8RTFkU3U/RDchNWhjUFFJWVlfejspZDV6
dElJPyoKekpfN252OylVY3IwOHlUUG0xXkZ7JjVWKilnVFZDX1dXbWEtNk0oIVo8OGVKWHRTNSt5
KFFheX1fYk52T1h4bjlWCnomTnVefVlXPU4pSittRSFLXnVwZEcxdDkzN19GWlA5QUpRPG8ybUVh
bntqKUBnOyNMbjNgVEtePGVnZDFOU1kqfgp6d0krfjM4aXc3d1h5RT88NG4xbT57cWMhb1NiODNL
OUNXOXE9XmByPDxnMEV3Jk4yOEBaeGt4YXhEJTNpQ3BoLX0KekRrPDRKJnIhS3VVdD5CKWR4OEtO
Sng4QCRoVDFzOWxEdmNFS1EyMypSSz9PTF85U341TW91YCRfcz50eHRDVXc4CnpTKHspYnZmWUpt
P0hrKWZMUiNJQVglKnNFWmRlWDshNiZzPkdCWEMwMCRNUyt2d0VMVCVBWWlscHlVJGRnUzRNYwp6
KWVOckowYWk2VGlPQj1mc3lsMnNIPmx+TmhiPChUSW9wdypyQGNBfTQyYGZOTWlsK3l7bzAxPUxf
bmQyPUkjalYKeiQ2QVU7bF50R2tRQ3FlLSNacGJINWlKPCRTbCUtYkxkS15WXzVUMW9SY1ljX25D
IzkqSWJsZzElU1BDYj9nTn1zCnp6VWljQTJpT0REKX5mNEhoSGBnYVdQKSVaI3RDdlQ0bXVCTmpY
IXc2a343SVU+P3pGN2t3UV48MWQ8UGJOfi1PWAp6cFNub0w2O1pSO1FnM0VITFg3OGNKUkgqK0sq
Sm1ZNEokO14xcjYzZjRrP0dfQn1PKmA9fl9uMiVVK3wmM0tzKlkKel8zS0Rtd3N7PEpPZHlwRU5D
KHp7MExqbU8pTFA/WCpLdVcwajhkUThHUDV6dW89MmdtbT07aVhiTC1saTFFZmJpCno4XjNCPVVn
TilWTlpkejApKUA9SXJHYFFZV3pOeXA5Q2ZJc2Z1Ym5QZDM2VyNyYGdFeXZNJlRQMCFPVihucmk0
NAp6XzlrbiNmeXghbShsfkJeSShGdWNTUkwzb2NGeFkmP00hJWJQKWoxSUN5Ky1edHw+bXloJDFs
QCRUT0JKeyhEd1YKeiZ0eiRMdilHJGVuZExGN0YjfGwwWU9pbVMrMT84a0lQYkAkQmI0NWNCTnQ8
cUgweCRxcjR0elR1Xl57ODA4P0o8CnpFUTBPST5+bGlDWlpkVzxAO1ZWaiNoeSFhYF5kfX1rOGZJ
I093RHFlay1YISV2UEtEfUd0OVF8N2J2UG87QzxpKQp6TT8yRXhUX3QyZlZPWmByTkkhR2JqXj5n
SkBje3MtQlJgaj1QYzRNPEcrfV5YJDByNz53Vz5lfWtaeTNwWlYlb1MKek5ecHxaKypYbyYkVmU0
cmpgQnczbX5DOCt7cHNGJGB5I3x0a0N6O2JAO2xTK204fXZhME9Sa2wkM3M8YXUzbEt4CnpmZFAy
fFJDY0V5ZSRTeVReN1loWVFPazdBM1hucEtwMXt6SV4yKUtRa0Q9fnFWT2Zmb1FiR194el4yNmA4
LXg8RQp6KmJaYFFNKClgP1JyLSYoUlVUVWRuS3FCZD5zRHZsWko5eSs7Knd2Vih4R0M5JlMyWkhh
S0ElUU9MNzhTWSt0Xj4KentWYGVEJCl2ZyM/NS0qLUZhI3RzT09ReSYrc3tFdmM5WU1QQklTOzk2
bFNaZUZGJC1ebno/UiN2ZFlYdihpe18+CnpuNWBhe2NlXjRVX21VeEs3KUJsTjJ8TnQqUUhhWDEk
c1pgfippKXJfPFN5PHxwUFNaX0NFRnR4bExgbXQ+RylNQwp6dzY0aSVKJjRNKEU9RW99PUJ5PnJC
fUFBdz5WMGFvKChaV3g8I1YxVzNQRFl6djA7JX5ESyl1K2pvKShHVUV0PyQKekMlJFVlbytNOWBe
c0lKYGh1Xl5kdzIzUVd1eWBLNT5iZCVATWBWcWJhc2RPQWBQNjd3QURNX2I9fj0/eWZIVSZjCnpp
ODE8dikxSCt8UzVfc2hiVDRfRjVEQ3N7NDVkeTw8YVZsbFlMWkU4UkU3RURuJHo3R0ZwLVc8Pj5r
O3IhPTctegp6b21GU2ZHdHsxeEAwLXc3VEkxS0w9bl54X0J5TW1KYXcqPntaMn5OQSRPOWJJWjZw
emVeMjxCJmE3OHJWSmo4aXYKemcxeU1lS0dvdnQpYDwxRz9wbGl4eH1BIT9TcDsjb253YHZyJSZ6
M2JhemZ7K3N2bH5abk5JRGFwYTVmJk9wPE5ECnpaPEd+WmxtWThlQi1eYFhUKyZzRUFMbjdVITZY
eWZuQWg+Z0dvb05kTV8hJClFdHQoTnojQmFgOXRKNmIwYFZDPgp6UWFRaktkaUJMRlNaXmp2bFVn
S1JrNU5RQD5+fGNWeHYwKmQ0JmJZVlpsa0hzd05OYSQmZGctczE/UGBpZSkhZGgKejBPSnxfWVRS
Sjh2NzImYSU8K08laFkkS3dlNHlKYGNHNUdHK1pke2dhNngxIWZWVWkpdlhqSm16Uig5TU5BO182
Cnp2TFkod3NCTlBVI0QlWns5OD9iPiE/TmRleGQzXyhUMD9ie2pIcUdMby1oU091ays9QVpaYXwz
bnVPKGh2c1l4Uwp6Z3JEYlJNTEY2cSZGQFBVeXBKSmBJajJPISQmcjxTQW1vJGxQeiRNSldCYkdO
a08+dHxhe0RIMkU4bkBQNlU1SF4Kel5TaFN6cnE2YzdGO0AmaCtyU3RqOWpoK2xaIW9mZTBfU008
YHFUX3U0V300aGchKXR9SGBTRXRUU1JKMShGTWI5CnpYKlRyRjYlQERHNDYmfTxhbHBsQUc+cDxe
YkdzU2xvQSFxY2o3d3lHbTE+YlBzUHsjfkVLMk41VkQzREVZOEliJgp6RXVEaj42JGFzIUIkN2Am
XkcjUkpVcnY+Pk5ZOXpGUXJvJj8xTXtPQjdtYFR5NnZjZGoofis3UGpeSFd6NlFIfTwKelBFP1JP
cFJFcXEwT1BHUmF4aFE3QkJPMkNDeXxkelZ0Wjt4ODBRfG5JaVJzNDx7c0Q7N3pBVWRMcV83RWJI
RSpRCnpSNWhpPTVeZCE1cmdAbWEmd2VSNDFefUsmPXxKYytSaXsjMD5gMCl5NUQhRHcoeXYtTDQw
MUQpSVhTPXJzSUxicgp6ezZlaFJyYG0xPVk7aFBsZHsjOXppQEJzMyhfMXBnMklkVUY0aEtQMHVW
cTtfYENsPUZrQEFqZFIlfX5rUHc8aUcKellKc19FMTdTOVc7TldtYC14Y09scnRhQysta09lPEg7
amdtZmYpcGEmbyFKY0J0V1EpYTVLVENUOzU0PzxOPT4qCno1LSYwclU0Xjc8MGdsel5MTDlPOCZV
czR1QkhSdz4ldUFkdyVQOFJFezM9dnRCfTB9JUtedlBib2J+cHE/Rl5Degp6RzZqenUyNG5zZWRF
alBYV3FyO0QpS25RR2s5eHZ3Q1E/c2lNPHYyRzNYUk4lbDIwZW5uSmtNVEpJZyUlM2pAYm0Kemt5
akVUI35FMiU7SCNneUpASDgkcHxeeX05aHNHaEUwNV9AJUB5aWZ5QmlMZl9KO0ZqQn53Mil1MXsq
Nz01PCl4CnpZVjA3RENBajBEMC0xTXFeMkgkXkVHUkdsOWNxSzhvKHNETlU4ZXcyaWo+e3YjTkQo
KTV7d010YTt0QDBfcDB+bwp6S0cxVUBBZGNyZTstN2UwUGJld2N5JDhLbEAoVTZRbEU3IUtZcHhu
dlMyM0d3LTlrYlkzMVprZD1OPGozWE8keCoKenE0YGBLQF9ERXYtNWEpNDF3NFd8NnhERU1MUldU
czlgI0xNUiVXZyZAPUcrTT1FJW9FXnJ0RVQ4eTl8MC01Qjd8Cno7bHp3ZXV0dz5lM1J6LVJEcDhy
XlZacH5hcl84aU12JTc0S1dEKWAhYUt9JXxxWj9KZVFQIU1EV2Rza0tyZzJoMQp6OUJyXlpSRHlD
KGVtWWUqWjl7ZzUpeW9+MjJSdmVlUCM/TkxVWip7MiZKaHFZNlhyNyFvT0JmQ3craitFMVowJnQK
ej9yQyEmcjB1QytkaCZQJnBjSVo+Zlg2PTdES1cmeEopQDUxaEVpT3txa2VmOUltSkcwTyEtKlhW
Jk42Zk1aZ3MjCnpmLXZhNzYoSGp0b2hlIWdDZ3JpNiN7aFQ1VGFNWH5XPFokMDNKTHRxSnc8MEtr
eDFHd1oqKWE9PCl3X3FuSXZaKgp6YkhTIzBPY3FkTTg9VT4oZFV2VGp3Ky1lPUFhb2ZEMTdwMjlQ
Y0NDNVZWVXZyczJsfXVeXj4xTCQjWFl5MlNyOSQKeipYTCpYSzAlWkUpeztSVGx5N2J2ZDR2RVBC
ZSFwKlFNfFk/Vk8zRWRmJHwqd0lpZX1xenRVTW9SeCRAYXR3Z3pgCnpsZkl2c2FrNiRNaztfZFM+
bCp5U1Z2LTN6VDZMfkcmQ1V4WElsYDZhSEEtOCtvPioraWN4PmxAZVgwclhvPWNlSQp6QW5rNVdk
KHJIckMxRlotY1AtdnNUKFE4OExgRlE4Pk9VSDYmYzstZEhSQXZlUV9UWUw5Vko8SktJSCYyb31X
c3EKekhOWX5saTlTUmE5UTNNO0pjKTkkejN4OHRTcHBlWVZ8eCVzcHNHXkFDejhfY1JTVkhjPGtn
NnpeQXNrPElPdEQyCnpRdGRLX2olNUhaM1Vefn47b2h+M29LPWs5ekNQSEd2MjZARjtFdFBlWTl9
NV4rfmVoSnN1RGpzbEY9NV90NEBBawp6YSRfV1oxbDRRWHZwTHooUzAjTlpFNGYtYmNQPnBSQ2NA
YHdWMmchUzFDaWRFdm9EPDRqMW0rcyk1a3V2a3hkKzcKekNFOGlmVUVHMWBSbnBAWkViT0NpVXV4
TWFyaXxOKSlpVjZ8WkBiNnt2OC1kfTNPZHZXR1JWaH1QZFRTWTFndShGCnpOSUBhTTwwUiszTmdi
VCpCIz99SitXPFVzPlYyeShhd15DeS11bzEwamlRcmpKXkdHQG45ZyE+bGdEOUtXVkxAZgp6Mj8t
M2k4P2J0RiVgNGxvLSQ+QWRBV3tmcj41Xit0WWFPcTA5M0FYSG1RJWZwVG5yZmM1UEk9WlRRYW48
RTRDRTIKejNGKmFac3kpanxacUtzPnlNZjYxM1cyUHg8TjVHQFFgR2FicDdvbHFkI1A/JENlM1o7
Sy1TVnBKY3lyamRCWUQoCnopRGchZGwwMERzO29HTjUobzQ3X2t0QTUmWC0tTWMxM2tfS1IrOG5F
R20qPDQ0fVlkPCMtejVmUWpCYENxdlUqIwp6IStMaVYhdXdmUlhDen00ZDZ5fFcxeDB2QSU+OG10
WU5yIUMjQkJwNyZ7cHhDXiYoS1MpMlAhdjx7MVlTQWVhVlIKejkwNSFnO0ZjcWV5LSVlXiR+VXNI
PiY8QVN3blRFYSVVKlU9Zk8+VElzUlgkS3NJZ3U/WSFGNTxPVVUqNz5xT3J7Cno/MFBUKUh2IXZq
P3M2JmkkdDtvKGsoSj0hdztpZkR7S2xMTzt4VWQxOWUkTzRyeHhrPWk7XzY+NzI7S0BfVWR9RQp6
aWNaQ0dXPVUzZC1NNH5ePnE9NU1sTXVwNDB8bStGS0RBdWpOSnRCfWRGOFIqazJ4RlZFTzZac2Rq
c29QeklPRXMKej5RNlAhIUdWen07Z2slTVJZTisxODZQdFlXUylZWVdRV1Jxcz5CeEJTLThMelMl
VGFSc0xVbTlLPCFsb3lBYSNDCno4bXE+ezAxaSR3UFlULTxIJkRiQS1sV2YkZn5hQD4ofVVtSXBx
NWZXQStpeTE/cHdMN3VIXkpIWCg5PEUra3VSIwp6Z05gfC1oR3hNOGpDIzt0YX1raDNjaj1LeTxg
YU5HOWxuKiZ3bGk7QSsoNik5NlpxMUxqRlpsTGI0PiZgPzZDRzIKenFYM2RnIXkwJClPfi07KlV9
T3coMlREPXE0WklWY0k2MGApOSFeMFhxb3FsP2ZqP2RrcjdNISNCVngqQEJBKmpTCnpDUVE0fTln
WmpyI2ZUaiN5S3xoTE8jcWUxUyVgTEFrVGJ4aWhydDxhRkkpO31efXNFanY9dXsrb0RLJFJ0fGZG
VQp6eEcmSns/c0coUFpFPThjKU12ZHAzaFp4fUFhdTwla3MkelpkKG5JN0pLdDc2JTtuRmdMKXcj
WVJSPEBVaVBVRmwKekFaTVYoM3hWPUNEXkVlKTZQNSZiJV5gM3dkSTQzOGhqKz80WEI2YXB6IUc+
UG5zeWVDVnBhb2k4T0QyNFRXfCtGCnpwMSljYF8rVDt6O1pEbDE3fEhyKWlaNVZacS1CKFhjbXx5
cTNeSTdsTXE2fSZTZSRoPURnYXY7P2Y2cX0kVnB0MAp6ZFdAO2I9cXAwZ1d0QGB2cTtBe0xqYGRQ
MDVvTHstc1hmN353XlBHMUIrUzFzYEc+ZTFTMHphfD8lUElmMnNObjUKekZCdzVBXkRfKjkyaSpk
eHc5PyE8dTVjd2tjPjRPKC1lUl84IW03SU0zeXk7bj0mbGVmJiMqU29jOVl4YkxiTyVWCnpEYUYy
fWJkM3V6UkB4OThhN2pOKHcqKyVYd18tMl5mXmZMVzlWI0VST0MqVUtNNnI+SzlBbDx3KE09PHYz
e0o/OAp6JXpiezhQbm5AfEIxQDZEXmx6QXIhI1RuQXNVR0NSSU44Rzx1aGcyUTx+ejZ6IVVaSFFk
KD44T05qZWFCRiU2QnIKem9LJmJRZCZOY0EoVDQ2enNod2QkNl49YHtZUEZUTG95cjBnaGdOXmow
OzdpQ2Ajci1XYEk1MikrMUN4K2xUfE9KCnpSNnhoMDk1THElZjMwSERvVUlMd2M4fFRkYEpjO0ds
MTBnTzs0XjBjZHNTPEpfSiktMUEpe1dhIyhsOSh3fEokVQp6NVU/bVIqdjVOUmNlP1dCYUdhS0wt
PnEqNT50KHI9cT9vMzhWfklxRiE7a0B+RXo1WmRneVlOeWZecUNCRE9UYzEKeitpSjNjYXRTPEI0
MHhKNnpkTGQ8LW5GdTUmMFJqXiNyJWs0JVk0TTF5byFYOXFzcSNIZC1meWlPZ1hySkVwb25DCnok
O2taYkRhIyRNI0hlOWAjcyg/SUQpd3hOSnYxZFFTeUBOe2x4TUdoUHMqYmM/e2FXKW9aeFohUjlN
X3RzfD1DUQp6YHFSfk0wPjMjWTFZP1lVamNIX3daUykpQCpefjFYPnlES29UeTZ6K295NmYoZGVi
OTJtbXJRZkJpR3VQXjcxOzMKenF4fEJRazRwelBMZ2E5PGxxPDRgXk9EKkFsP0NqOyNFfmwmQ2Ap
SWliNVokKSk1e0hqNHRFfWQpfWtJP293aTVnCnpyYTticD18KFIxV2xsPyQlYyFGWTtEQ09Jbnd4
R25Edip1R2V6Z1NCTFg0I2U9aFcxJkxTO21oa09RX29OQ1VrIwp6PzVAbWBjZCtHeFNDNHkwcylJ
TnI7bEM9LWFPVERjO0BXNUt7ciRQQmFmcipSI1VuUjdrNkt+QWlabSFqPl5JeXoKej1rY3oyciNV
TnJNJHhvWngpUTNnRSsqUHZjNlg3SGlqSFh1VyNlSXE2cUNSaCNZYUEpekJOUWU8WU8jMyREcFZa
Cno3TWYqKiROfFJnMmV4cm4ydFNIaTFeTypiSjZNKzlDTmN6VXtLZW1xen59YCg/Q0IlYE0kRTQj
K3kjMihzRUpFTQp6QnkzS2AwT0xLeTIzSWN8IzVTez8kezYkbHZ2OEh+YjVgUUNOSzNjXmU1Xisz
dSVDTSVgcVR0REFVQFNxOChUZlMKekRmMyZmb3lfaEswdUxQU3JfTGlZeEA+UXxrKUhmayg0TG11
JUY5eChtfVZMMyVnRyV4UW9eUEFVQk00c3l6VnJ9Cno/TSRwVGxGTl9AdEJAR3Q0JjRHezBDdlpK
dHZTejZiUiFvbDRSV3h2MnZLN3BjKik1KXI+JldkSmxQNHpRcEVgOAp6S2orcjdqS3NgalR5Rm1N
ZFE7KUprVlBVaDltaiYlJmxMXzV3VV44O3VWeX1VYCgmKWJPdEhlTTR5V3RyQ15vUmgKeiR8U2kj
KD5xMl89VGNiUHZmTz4tRU9gdCYzYTJhd0plO0AlKmJiQ05USm9vNE9JbVhASnVSWUByYXA0NFZY
JVBwCnpDWjUoLTwkKEpAJktRekxHSjk1aE99fV92cjF6JTQhSlB2V2hGfVQmWWdZK3RzZ2h+Kkl2
WEp6R28hbCgqeDhMcQp6O00xcCRPWmVIKiZ6YihTMlleVFVec0xNSWwpRlgtK3pqc2JzUDEoS1Yr
eVBNc0d0TVdyRTtuPWwkNFh5LU9YJngKek8rRXUwdUo8a0U+YFpMbm1MenxMTGV+cVkhRjNaWkJ3
ITloWE9GRUBQKzcjMiRWZ0AwYW4qZjN3Tn5iREdGZXk7Cnp5cjJQfXJDZXo5TiFeTjV2ZTN7PSpz
YmxKT0s4aylLdksrZSpSMylzQilXb2tjaXdrJHpvfDZ7ZnUwTD5qOUB3Vwp6aTlCWWojP25DWXBl
SDFkTWs8diE+dXQjOVlraUZ2V2spfUJwaFh4ZWFodzZ5QH5XNDJyYzRIakxLWHlMd00wRDcKejNq
bFRvIVRSRStqdV9eKW0mfFleakVwYT5RakI4bSFPSDV4NGRYISlHTFRpREMyXyZAYHFmYitqVkdB
N1BgdlpTCnpCRkZaSVNpKih0b1NLPnxRP2djVXNRP3dwO0VMNjkkSkIpPkp3JXBQWTtAWWdwVGVM
NmR8fUlzMUdnUT5yMVF2agp6en5HOH4hV0R1ZDVDdFF4WHJDPlJDdmhZcFJkQTxxPGUkUW0mV0VA
O3IkPWl2QHJSNlZRfkE9SkooUTg9TjU+byEKent1SkQhKy0/JXkrOCg1PjZpYzxeTXQtNXNPeDAo
Jm92c2JMdXZMRG5KdiNBMyRzWXt6MDZHTzY7Q0d+SDFGTHkhCnp7O1lUNFZBcUN+KSRNY0RaTCFu
QTZocUJjZjAlPVQ+RTViNntBKU9MVHJ1bU9sPjRpSmFIJHdSLUZUPVMwY0NCMAp6SmZWKEhVd1lQ
QGJvYjFnKldENlp3c3pYOHlCcD1tOTh4VEVacml1TlVaMVR3VGBpVGlvIyZ8SWZLNHp2czx8VyMK
ejVKJVJ2PjFnYWAqSFFCMUhnQGhrNG0lb3hNdT9KR00rMlcpV1Y0O2hSR3NJTk4kUDE0OFBqP0JT
b0o9bHR3emVeCnolMihLWUdEZC1seiNXMD5SbXQtSmA5U05ebztOPG9faSM9c0gqeT8tKTI5TmhF
fnc0eXR7KlhBYzg7NVB7JmVJPQp6TDYqKXMoOW9GSUpxfEtHPW88dVUkdkZnYER6RGZTZHgqe3lr
JU5ybStNR3lTRnVeJmZJTFJ4KEMlcDxeQ3BnLUQKelkxdENJJClzWSokQTN6UXZ2bHYqR34qIylh
Qj8lK2hVSEVVUHg3SD9PTTI9dGVyNnw8Szx6KlQ/SEpCYVQrIztlCnpvMXcpWmFMYiQ9WFFleWJ0
cjtuaUJPR1Rtbz95OyQxdEd7XzJwK1d5QSFFMkg3Jk1aOzs8R0ZVP2h9RGMrI0c8UQp6MCgoPn08
ZHlAQmJBZUEjRmZ6WTRPcCNTIWRjNmxjTHZ7ZWNgcVU/TVl0dFVwVn1oaClSNzg+Vz5CUzBINllQ
WDgKenBzNShhOU1YQk1nT2tVIzR4NU1+ckFQKH5HMyhwNFJuaSlzcXlVYGNSaDlEIXgjJiRRYERr
IzdvLT5pd2xxcX1ACnpvX09ZPSRaNlB6JVh8ekgzaUg5S1JUeEVzbFpDKDs9eEdUZkkyaihzb3N2
Y2UzIUckZ0x5KWhvZlNgK2hQdDIhfQp6UEhLMnwhaT11akVJSkNSUyUzalVWMFhueDJQQGBlPWJe
PCF3JCF5enFXI05UYEFURVNtNFEtRWVAY3VZZzRabUIKekhzVmZkeUJMOzgqPmNSUyEwbkZKWmQr
QEVmfW4oY2BSWTVHI0B3a1puPzw+NlZ4VW9nJCZKN2FfUXE7LUUqanhaCno7SDc/Nj42JXU4ODJZ
b2VlfUA/OT5xI3hjKyZ8NzQyMHJyK2w8Jit0YV8ockB4bDJjRnAkaUB1by10WCkqfmBTcAp6dWVq
a2t6K1pZdXIyLVJfOCtjVzJmUDIjeDIoODFHK1J8aUBjTn1BLVdmKmVGdXlTKFNweEdxPDA3c0ZQ
UlVJMXUKekFuR2FAcUluJmBqUU57NEhiPi1ZI15ANT9lJHJGYWBxTnVjI3UqQ2szNCV7az4wMmlM
JHxhP0tYKSUmUyRJSTtGCnpfelFqTnckUjR7IWl+R19Cb25YP3hfdjU7eFNtODs1d1FoXjh5Jnxe
WVJmY314WS1qbCYmRTViNmBieV5jVkpGQgp6akdpJEcyK158K3RfS141XikoUGdkd0FySFM7eVR3
eGcqeVVgOyMmd0c9VCRTYThAfkg+TXw7O0t7RCs1aCRzTykKemZJZ3FDUkNQKCpocjRNNylEZyRH
QDJNdk5MQ0VAPW9td2QkVzRGaWBrUTxEWFFBYD8zYilWKWVTbWNnI0BBPWQtCno4NlomM0x3U1Ao
Mk9EckpNZWkkaDdUMipmX2JAfCpqd1dDfT0/JmwzdlU7NFVAODhuMkVhV29GdSp0TUM8ZVg9awp6
cnpyQkFBUWBQYHI1RFFnR00lNWk1JHo7XiMxTVo5bUsjUSRuWVN2MDFkTmB3MEJedD1jZyMtVyRC
flh8LVBYalgKel5EV0R6YDM1bTh0Q2t5eFBILXcxRWFhV21IREl7VUI9OVFlNXNPOFQ7el5oZ0x2
eFJCdHk4ejFlOHw7Xyp4aGgmCnpNUFIyWENUaW1wKHkpLU0pKCsydWxER31xbnYma2dIS2cpTm5V
KChMZFd4fXFlO1kld04hdVlMYHdFS0FWeik2eQp6JjY0WSE9a0M8PU55Vzw2Zjg7Snlvd15pVyhu
VnpzajFOKHN3UHdjTk1Wdn04aHtqSk5LYjFjMkBzP1BeS1QoRWsKemQofW1gbF9vbipOais7JFlM
YnNhYmN+SXdYZF9LRk5UcG18STMtQ3ZJcTZnI1d3Vm1wJU5YQntoajhndSopQStmCno4NFBVaV5X
XmVXYGMoXzF4dz9eQXFpbS0rQW8xXjl3RG9QYnFjKXVNXjlANGFUfTxyNntaRit9ayh1OCtuVHxP
dgp6VDgmXjktKW9KdHQ5LStgMmM9N0VwfCNwUGsrPW0lTE9SeihZUW1nIyppd1kjXmZSTkkkQDBi
cm5ZKTlaPVQranwKekB5TWp9alBjJkR3U3h4VGtQZCRDSWpHamZmYEJ2Vyl+KyokYXZXT0duSU1y
RUtrYShmKXtTNTs2cXl2QEFFMDUxCnoyQUx5OVFaeVRhP3JlM2ZEYEA3aXcrIWtPc15FaSklTSp5
YVo1T0Zqc1drNTtwYFJGI1UmdF45I05rSTY2PEs0Sgp6TX1DU04/YUFQQ1NEKyQxJTtpZnVnfksw
dU9ZN0ZXSXxOKUh7dkxwTyleVko8dHp6NiZ1WDhCRDx2dXM1JDtOVG8KenJXV3Z9KGl7K3JnVihS
VUV1eG0ye2EyWDdxTEd9fGhUbDNSa0BoSHpmRTAzWVlmNjxHY0RhLXctbClsKTFoVyY5CnomdVVr
KVJYYWx5d357eyF4cFp4PFFfNThtTktRPElrJmIhK1BtKTc7QHFYPGZQSzIrZ3kpU0RtOHJZWGxU
UnFCZwp6Ni1INyhVPE5Vc2xebSRBQk0+a1JUWFNsWUc7Rjc0Y3kpZUg5c2FjIW9vdXApJHdlUSly
JDRQVkN3cnZEREN1VGYKenZiVEdLM00oaVBIcyZYUUlqTishUyNSPSVPU0c5SmtPM3NzNnUlTCVE
OTZnays4Qk5BWHAtcT55KXQ9KUs8OVYpCno/XnNHUlpNfV5uREFgPUdkdVhzM1ErYWdeTzU/ZnBw
KUZ2TiZTbypSbGQlTGhLJWpOfT1fWnk7eFE8WHI4U0MxYwp6Sm0laW1CNExSZWohKXg0YSZ9IXk8
Y2UrRUxhKjd7OTc8d3Z0SW0zN0AlbUotUyh9JVQ1OGFoZyF5TXojUkRObG0Kejk1Yk9yPU5ZTV5v
O1d+e0N2Pj5SRzV7NSRsKWgkaGo5Yzt7OGV+bHElZSNvIVphQytmdDl2WTBaV1Rfe1VIfThGCnpY
ZEI0SFk7WUttMFJ5NE9ke3NOb250MD92djUzekQxcFhDSmwpMH1qa3kxKntMX345STIjK0s8SWx+
TlFwPWg4aQp6UHVkaTdSaikyZ2xJfntiNyQ+YiReTjhiVjxKITdvUDF+Q0xuRU90THVRWEFAKDN5
VGA+dzxxT050OC1LTHklaSgKejFBJElTMWt1WVBrb2VrNmhuKUtnY0dPJW1sQUxeX0lLViE+XzJQ
NWM+JCZRKyg5VjhDNiQlMV4wVn5PPmt+ckRLCnptfnd0Pil7TEc+VypiNjw8OGVJaHMqKigtczYh
NnM+UGJBNCttNi1LUEhVPCRsNHp7RSRAOXdzRmo7PzxBflJyUQp6cU58Z2ZeTlA1ViVJdjYtIy0p
TXpkSkklKnVfS3UhWHY7cShKdnNIUWx9P1FrXzA8cVozb2ApdDMhTHNncEd0Sj8KemxxJjc+e20+
T35jPEc5Q3YmJEBAaFUzT2RXMXkpWlB9Xms0U3JsJDBvUiZWZ3NnJktobkhPNmtsQnRnKT96VHVF
CnpeYEhlcV5TMkhURm5TISteRyYpXiNCQnBQODE4K2x3cDZHYlZ8SUQoVFMyejlHZ2pEaWt8PVQr
Y2l7MiNzOCZGNgp6b0x+PDk+ZkEqVTN1Rk98e04zbzA7Vnk2aUMpJE5PWD0xc1RMYVEpNG9qQEdX
Y1ZTTF9gY2w1b3hXR0ImOT1OMHwKemM0R2lBPnNsdiRndTRMNGU7eHw7X248Sl5jSj07czhYa2VV
MmUoUjkrc3x3YzJmYlNke0tUZ3FmRSh+TjheaXp1CnphVHpxJG00RjFFTld9ciF1bk8rX19vYzEx
NlNhaXs8LS1CanRxQSFuNEAyb3JSVitePD42KGt+eTg7T09EUE4mQwp6U3xSeFghaT9uYyV9OCok
OEMoajRweVlyLSZIPEA7KmZXZUNJVyR+KUVlOU1mMjJNe3lRU0FARjFkbVpvMmo+QykKekA0WTs+
U0xJPntwekpBYXNzQCRya29BZDkzMVRyJFZ+enBpXikmfHkqY3xOI3JBbU92TngldyZCJWJ1N2Bt
byVRCno2eWJ7Rjd5K25kWUA9cllAO1JyPUc7azs9MG87UihjZEMtaENlfERqOSloQVNQZzAjVW1h
THFfKmo1QVhga3Ruawp6P2RBTlc1JTFUVVowMUtRTWx5Ulo3Jk5pTzw4K2NIO0lGaSlKPFU/dT59
YEszQkYxQ31MTDE1KmNKV09URExIa0AKejRnZTtmakEzMVhNbWdmNG9AU1lkWEolMkhrNGowbF4l
SnU3MFBzYlVpc1pMa15zTjxWbUErcStEM2s+IWo9Z0dACnpuUXBmaU5URTBQQk9MezZ2ZEs3YDBh
YGZOVT4/N1BXbTspRmJATXRYI29GWndrYkgkKDE4Sz1XPWhDYUtwfUNTWQp6TTxyTnV5TnAkZDx4
I2xmP3cmZDYme2M2T0RHfl9AVkJuSEVRMyo9ZEt8V2lPaSY8TEE7ND1aXzt+ZUtYcV9+RTIKejYy
fX42d3kwKj5ncjByczgxQ2RqRChDbGEhMzFPSlIkb19pbGpXYWorcTlKIT19RyVVXndmKk8jQnlv
IyQ3KWhSCnpge3IlTU4kNF5CPmMqVzd5aXQ8VGhNZXZKb01iS3NyJWNwMEg7cismZDBpT3BfMnNG
YllLekUyeEJ8SHdNTkdObgp6M3FRYldQKTNhUk9pXlB7TnxXPERBREVoa0lpKmt8anpYWFVTb2RT
O3BHdSg+K1BqNTZhR2FnZzhedjNkY3VASVoKejt7PHxGdHhCVjFZWFgjQnRkej5tMUU+MVhOe28o
IUB1Pn5NVGJZY0VwZkpRX2VMMmxtaz5pZE9BQD5Bc1BCQkB6Cno0PT9XdFE7ZU1iRF9HTjBDQ1Z9
TkV5Wj5jN2xeaH1QclE0TnJBOFQrS3ZxRChjPnM+eD5hdnRue198JSVfTkVkNgp6UU9ARmVjQ0xq
S296YSYmKDM1RlcmVihyXjYocCR4RjUkUzUlTXlDaUJ0c3VQU0YhMWVpTjE1bTF4S3c/T31uTjsK
elI9dnFZTV9gal9EMCkpLXkjVUtHOzhhMyhRRyFTdkRIKWtURHhgJVlrfD5nV05vZHNhbmhFeWRL
fiZEdyMhMUNUCnpHKkx4dVo3aXhyP0IhMm0+VkkwVjRmNkA0azt4XzNBNDxDfXFBbnhJSyteJWNJ
UXpCQzwyMlRXQCNUYC1ZdzZLawp6K29ZdGRYZ0w2JGVYNTxiVGthakJiWEZNe0tobVQ3VzBaQW0q
ZCRib2RkQSk7bG0jZUIkUTRSODZqfitueS1Pe3AKekxibD4meThaRGQyblJ9XiVDQG8mPlo+YWVm
VytlbSowUnZjSjhldUI9YyVTamxFaGJnclcqKDRZRHpNZWw5MXkjCnp0KWdgezdkYUE0QH5XJUMh
KVdCXj5zV0JjKkFxSTJLM2JmJUp0ezliT2kyPXRvbGhLbkAyfX1zcXFkUjV2bFczXgp6TXthUmsr
PWBRTHh1Ym1jTmZpWENKPH1DdSpnRz8zdUUjOSFjX3xBNnphX1R4I2FHX3xONEpDa1E8ampmTnZn
fG0KemA8MGJ8Xjd6VD1rNihKI3c+NTVfVnZNPFpsTUppUmFVYElzRmtQcFRiS2F5RWEyVERWbXRZ
KFptK3lXI3NCWDRnCnpNJCZvUUM8Nm56QkJ+Kl84aGF9TSZSY0lJcCFUT14pIUNlcVBvYTVyMnlP
UH1SJGArS3Y9Q2R7dHc0MmVGdEk7egp6bX5nezJwQSo4YnppLVR9MnFjX3dQbDhDS3hNej9Mb1JT
b0QmMT52cHg/Q01zV1JvOEBxOUBwIUttY09eVjR1Y2AKekhELXhDeE1OdHhhODdjMVJETlZoRUpW
aSZnKmdwXk44JX5+aThQPVFAKXExcWFtOEFNSTt7d0RkIzktUXVPPCR4CnoycGRpYjBBYCVpJHRh
UFJBRztZT3BHdVl+cG8tbjAwSFY3QiZEOFBmTHJaMiVmO0IxdDtJWlc5bW8/cV9NO3JHawp6VHV4
PDBZI2lzVUVLSmltUTZ9NmVXMFRnSTZ9KiElUU9GKj52c051X1YqfmUrMVlqNWRkO2I5U3Q2NTRo
Ung/Uz4KeitAajlYNT0mems2ZitQR2VAO2JlVGlEcVBOdS1gbl5uO003NCs/IzE2TEF1NCFZWTY8
Zk1gYHljMXZPTUhNb2cxCnpqfDMxRUNONWs4S01JYTBOMH5TJSQ4SmlYMmFrR3xZdU15T0EmQklT
cHo9UkR6aWlPaDt5X3ZWNTFzUyszZFUxJAp6VFdaMkZ5Umg0TThTeXNwZy1rRmJzNjdRZkN8PlU3
TVBMRiUyeDEwREp2Z1BYSyl6I25nPCowNzc4diklWCs/MWkKemJ9fkooJGdxYlhqXno2T1JtV0Rk
aStVWHFOdmt+IStqfCgtNEV3bT80eDVpb1lkPXRzbkdsZHZsNWpEUFlUN1opCnpkeV5hP2NCeVpq
dkIqNGs7O1A/aXVCe3VoK2srcW5WbGw9JmQtSXlBUmxWIVVneDk8N3FjJG1hTD9oWHBwU19STAp6
dChucCRqb3ZuQVBFLS0/UXRwbiRXMEVxaEJDaGVDb303QUJafHhaRkJpKTZLKkM1S25DLTQ9JC0x
U1JCUjkmfHQKemMtbk9laygzTEpaV3p2S3FmMztHZyhNel9LbUJUbD9lMDliWHsybilsMVMpMU44
d2lnMEpJeWhZPEJyOE5wcl9VCnpDbU0zcXYjUFo1QzdERnpMbF9fR3p7bCVYcH13YDBkQk9iRz1R
JXdgWX1iXm10akpDYERFSCM1JDlQYlpoaFpIdAp6biZnJW5UQDYpdkV6IyluJkxkU3E2JkxTZUpe
dWp4UmJCMyhre0pvITlHbiYmbUIrKVkrXk85MW0qYkZtc1ooQ2gKei1hdldlZ0k1fUJXKTd7eygh
KHpEdT9aTU40cTFUYjYoZHwpTXE2eFR4RW8zSjZeaT1oamBPcTQzUHcyfW5YM19BCnpTeHVpVXc9
d0NAXnJ2TWZlTVFXVE0zRlcjdT5sSmFANihEenhyakZlMCk0Nzl2cDRPcyZOR2YhP3JkYSUmb3gt
dgp6JGdCWkUyO2s8V01pO1lVYSUqME1rOGxJenVga2cyUWcyYytTQkF6MzlgI35QOGRnUD5pNG0y
XjJhK0BFPX5qTnMKeipEP2tgQ0d4PWswQ2p6ajx3diFHVDU1ISMtc3F4P3RvIzBRc3QhT0k8Sjhu
SUJDeUItTiVYRGpzfGxYYlpkc3YlCnpDaXtedE5uayZ2UmYtI1ZWP35ndWEhJUE5dl9geD5Cdmgl
aWBBbzlNMld8Iz4pTyNkd2E2c2QoZFI1RUk1ZSNlUAp6dnV7IUpmOzs8RTRGc2BVaEUhc3d4Q2V0
PjV2WkVITmxIc1dAIUowQUdzPmFKeihKQnB7KmB7YE1VUEk1SFBwWW8KemI8Vzd3QXdIent7M3wl
Y0ota3Nna3VuS0RXTSZ4TEp3PGpfU0p1PCVmbSNTfENqZmt0RjUlT0drSWRIfER6IT4+CnpZMjch
Xz0lcjNHTys2WEpzejQ7ZSRsRkl1M1RRaiMrUERLOWFmO0VydW55YWlTST1AO3FkfGJhIW5XO2ZF
VWpmJAp6dzI0aWBOT3ZeUGtsYj1kWnVOQ0JRSG9EPyU7UTFIPkNuS292bEM0cTFifkFlNk9ZRTln
ITdxWHdHMDVqYE9ZKXoKej9ANCFrR195O3hIcUopdUU+MV9pVzt+OHJeMmFDRXcyV3N6ZDY3Tz95
JUEjSk5OelRPRkAqPDtWezkqc2xqKWtUCnpeUyZyQ3lBbm4pSkNqP2JaNWZgSSlmUiNvQj5+KDgk
RTcxamw0RmRBQ3hDSF5pS0NiUlJhfUE4b0B2R3o4KSp2Twp6b2pYISNyP0B0Kk5QKGcjJURhcSVw
ejNrfDBQM2s4TiN+biFqbjI+czgxMzR0P3w0e1hrK2ZxcWJTMV5ZT0tARHIKejVFJT9kLSMmdH5v
M15nUyNpNWchQCZOLVp5Tmtia183emJpRURFTVJaVjJvN1JROGFxPC19cm5PbV56dUo5cGRQCno5
YHpMMXdVTEFlPGxKXyE+czFHRGI5TjQyWHdpIzYpYkRNQCNrSVJtdjhnU3lfPGNVN29gYWdSc0Ep
SWFMTCVPWAp6KG4lQiowZjdKPiRJeT5NUntTNCNlYGs5RW1OYERpNCpXTTU8RXteX2JROyNLbnls
O2dUTUtiJHN2YjhmbVIyTDQKemQtdHowdH0zaTVkcDQ2eHZEK0Zub2dSQyZGMkBCOHE/ZlluUnZR
cVUkJlU0SUo5fkpydjhaX1c0ZXNadGBje3NpCnphO3EjPlI8T0wxT2hVdz8zSkUtOEBpa3slJjwy
clo4WDNqS15LQzVARHQ0ekY9ZWgwRS1tWH1lSGxyO3N4QX5kLQp6RWdZNyUtSSk9SW1nVTgmcSVv
MjZie3xoJSlSSDJ9NkdvRyRNcSZ2SWxIWkx+Zko/R0RCPzJWLSU8T3I4citVJGQKeiMyenctX2lP
VjhKckJ+UlpLcmUpUzBUY312QnVEY215RzBSOV9GYmBDNktkKyRJTXJyZkRaTEwtLVE8biVyWmBM
CnoyNjR8JU8zJTh3a3RUQigkbV9jcTEyd0hVTzhUdXhsJXJ4dihzS2hiYy1BdTUzJjFWLVJUeUQo
YllsfT5GK1ZXaQp6aWhTfSoydnN2TkI9bzRIbVRpajYlekJVdWVAZzQ4YmdncTJCJVkqfmFxTCRy
JUZEWXZGOVg8QkQ4dEV4TVBgMCoKejZjYkprT3VJPVdBNSZVVnNNRk85VlU/VTxsfDI0K3dWWU9q
SjQ7ayNnTkR2QS08c0hmPzFkeXEhIXNZPUcwcCs+CnpzXyR3cEI2b1F7V2dmaG1BNWZNa2tgIWVL
b2lIKHo+VDVjeFElT1leNHw3JV5OaFk2JComOD8qJnRIMG07QHFSVgp6bWZhWDYyT1o1dSpEUVdy
cGsjS1lHbWp7ISZPSXwjNihxPVZpJHBGKlFJY3U8d3YzTHI9fUpzKGp4b2tLeyZiKXQKekB0azF1
ajx1X0w1OzkzaSRwYiNMcntyWilOeXlKaWt5UkFyakRnI3dCI018ZyRYcyNsT1BPcWhNMUVocTA4
X3lBCnpyeHgwezN7U0QqbDx0NHgrejAxQ2FGVHF2VipHTUFwfVRAZzxWU2oobCkqaVhPJF9FV2Q+
alRDWllqLWt4O0dBPwp6bmVtNDFGLT9XYm01VnpnQyswbkJVYn5eaWQpdFdAQDBiS2FORXokZW9Q
JWZZNDFVPUR3Qj92dnluIy0wbUUrUXAKenU5UVhQNEImRD4kMkJoUD0hVE4mIURmKmh4LUsjYmxa
O1VkdTJJX3NxYWNpKURtZ0VuPHdCNWxwdWh2UUt4QVcmCnprUH1hbF8wVXx9LTgtN28tTk5sMCQ4
Um4zNCg2eW09YnM9elA2S3VSPSUrJV9zOF8lJk5uQ21pZFF6RSVoO0o9SAp6WDVoOWZIM2MxKHJu
PEZ1UygzJm1PM0k+QSNCYStTMHpSSSMwPkstP1NyX0t0dTtpWTspWFNZdFgjKD8mPk5DZXIKenI4
P0gmMVpTMDVmYUVXeXh1b01ZOD9pfClaM3tQJUw9P3VhXkQ9X1BkSkdEdzdNVEclVWcmVlNBYipX
OVVTfjN4CnpBU30kS248dCZXalZ4QXkoUWFqJVlOITBPMUN2diVCZG1mPU9JdXU7RWp2JD5nQ3hP
K0IkNUsyLWsqJj1hYnpBTAp6MVZ+PiEzQ1lKbU52IUw7Z19UdVF2VVQ3TjF3I3gjaH1xO0liRFJ2
LXMhalhTbE9AIU8oSVpVM1kyPXNPMGEzXnQKemxpUHZZKXxzZmhMXy1vciVHLVdwbnhrKEtqaFcx
I2tmJiVveyZqQjdIRlYhRDU8WE1+SWJ1TmxJPyY+dmBKMjZnCnpObGtMM1I1QSU2QDxJN2o/b3I9
OD5DeElvdlpLN3dgRCNGNTJfZTNpcVVQN15hdWp2Pl8jZ3EhMjxVejN0Xnw+cAp6U3M1MzB6IU16
UypTaHoxV0drK2twPkhSUVk3V3RvdkY5T19WPkMqflFNZkEqQzc1c3JRJVpGQWgkTkd0M1JAVD8K
elhZJVY7RyooRlVDM3NZZjJJQ3dLKz92aSlqOGA7dXZJeGRmbSVYTGdra0xyMSN8SXBZXkdweWhh
M2w9N2ZhfUk8CnpWKlAtO0dSNzNgSTMtUitSNXg7JXtfIzhpMEVEa1Y0UVEmJE83O312Nnk0Y2g/
QXgqeFNlRD11KHpvSCNRVjN5Pwp6eG8/emo/ek5kPmxISkomQ2B1T0R4U1JeeClIUXsoUlpDRTxm
PmZ5RWNtRHVkeGJaYj1JVnkyQXFabE9SRn1FU2EKek5nQVN7Uj49JUZLalgqcHNWKipea2h5KSls
ZmlIWD59UiRzb1ZuTC1XcyFrcDg7PlUoaW1VZD9CTWR7YUZUd2chCnpTVUVKZ2hkUnJsKnVZfHUz
UTJPeDg5cndtQCMkMWo2b3VNJVohWHZ6TF5vdSgmcnw7Wil+O2Vac1pkQ0ZGJDd+ZAp6c20jfG03
ViFtZz94JT49Y14+QVAhTUhiaFh1KCZFd182dmtBZF56TEx7LUVpakhtI0FJKklJKCQobEpAQ2RQ
T0sKenBWVT1FVFp0R3RLM0BmI2dOPk49SExyN05aWiFBOyFhVGAySkkpKEZUR210S3ZAZlRTbEo8
JFRRanp9RkJhU3ROCnpCdXBzQlI7T20+S2Fgdm07fjQ0c1JVczdDbXc4M3FGSHckMTtZZVJtJD5M
QWV3XjhpWGpQQVBiUD1NQEduZnU0cgp6KHhxdCZwUE8mV2M9cl9talM0WnxSbit3THNuWCZ3eWVm
Y3Q1Oz81b159MDZJdktLN0ozIUhhN3NyVj40Qmw4JWYKejUpSThDMEl9ZD1mKlQ8UzNgSCh4aGBT
ST4hMUluZVZ5QSp2M3wmYGRkRk8tcFJZXislNnQ4XmE2KG5wKUNqZyRECnpecnRBUllEIWl7ajlS
NDdPZGM4Sk5kfERteD5yWFJqVS0oejgjeWd1bnN7QkQrPiUzO0FiZyZmMlBadndfTzJ3agp6TCEx
SjBqQU59aE49WDJOcEc7UDZsd1BRflJCKmVDLTFVMTg5QjY7bzdrWWl3b2JjVmQjJCZwVl9sMS1r
dXNMQ1gKeklQN3pkKVVqKllXIWY7Y2wmZHhzUkZiPl9qentOU1JJOyRaVnBJK3x0NFZUTTFFSmE/
PFBwPyFTcDhpc2VySGVECnpXYk1ycT9XVmA5ZVk7NnVrbGcqRHd4JCNTMDdMMjRxPm9PcWhUPGY1
RENHbypXSD09TFJweUR9RTlqdERRZWBRLQp6RU03MkpgKllnMXdDQD1fbndubH1Ge1I1TytOd1RL
SnZpd35SUVkxJTg9Sj0pUEhpYmNlYyEzK0l5WiUzKX4+RTEKenZ6a0xSYzUrP0t3TSZEc2NXdllE
QHQlRlg+YjJJSlpyV1VOek5VJEVCcnp0TjN7VTA7PVc3eTEycVhkNUlYeD8pCnpAQ1NfYW5LZXRo
OVYxQSYpVVMwYlMrd1hJP29BUHVLPVZTYj9Ca1cmayZ0QFRGQjE0WUdeTXo9bEdmYEApTEJFSQp6
eGVYZjxHbFBjYjJNM1d7YUgtOHhtUW1JMXZGTyNwUX0hO2NIayN9STAwODd+WjA8Q3hzMXA3KyV0
VVRVNVB9QUsKemdaTllDTiEmNHhLJTFTVlhYSW5COXtLKlluPEMlYm45U31iZVk+NWNlM2IqJkok
cUpeVERzfDBsaittNDg2MnoxCnpRYk5sODg4UWJNVCVWPipacWt4bXkwbWV7UWpedSQ0dT9zYTgp
cypVNV9RVjNFSmpDdWRSMFk/VTh6e0llNiN7Vwp6bkw5X1JJSTFVNW5wXkN8OGRQRDh0KH5wKTkr
bEpoVl5mMW94clFBfC1yajJoLXt9aHMhQ0ZrUDxlVklaMUJLKGkKekprPzVAeX5ofCtvM2dyIT5U
P2Z4QHdWNnckaktwdDl0WU4rV3U7R2xiUmY2MW9fVUl2UlorQU4+eXVyc3Z0ezdQCnpXRCFfdSpW
NVoxeG8zR0krKGZ+TCU1VmwoODI4RVJSfSl7KitTR2xVTys7JW9SNHB+akEofHxLeFMoIVphUiY+
Nwp6aihad1h0dGZtRVd5MWopamBOeUdeWDFjPnJnKiVXNn5IVzFfUXpWaUtFPD80TlAtNThaKzdG
OD1uczFESlExZ08KelVSXmAmLVlMQWV2Qz5AKHFCVzRhLUpVWkxVfjtfVkA7TCtYdTRoK1dHUz1j
TlRgSytXdHNJN0NYbSp8OHhFU0NPCnpAe3k2O15HVmhBdlFjLV8kJikrLWdnTExqLWdFSUwoSWpt
blYqcypxZl9yRTRxPj8jOWBBWk5Deis+bVp1Nz5eJQp6QU53ajVHMklQTSV8dUJzcTk7TCslRU9Y
YWxESWoqMFAkWCMyQ0x2KlJefCh2LXYoLVNraWxzcHg3YWxZb1hHZjQKemtgLSlZMGJkfHpmKTY7
U1FtbThyYnFNOWtOIXtBVmlocnMqTEA2bShEZ3ohfGtGUlJFY3lGKHVpV3loU1IyWERUCnowaU04
ZlVXPyl6SGozT3s+RyFzPT5DbUZHKnYlUiYkKDNFJUQhWjUkRUpvcWV0I0owQE8tWWI+dlJnWm94
SipFZAp6ZnpLeGQ7fjRFJiFNZVdzd3g1fCp1bnZXd0AyezRPI2dAa2BreV5zQzF4JlppPkQyWTch
blUhKUJTUSFoPVY1cDEKeklJWFg8S0BGc34/SWFIMWxCXnt2eSklS2VhKFV4RERRcW4qcm52SUZ2
dnFoYDhWZ3ZFdyhAdT9hIUpudjgxKiVOCnp7RlIkOWBrVDczZ0slenoqYno9e0dDPHNvJEBJdmxU
d1A5V1pSMz1YUyZsJjwwdVFrMEQpemRUazlSYVMpPnJuRAp6I057VDZTLX5OSjxRQGh2ZjBhfWMr
RkZac3BMMEJ6N3o3WlVqLSsqXztpT3djYHpMbTxwX2FgVXpla3lIc3hySGUKejlAVV99QS1Sd315
dm9qdTNUX3tKOSlRPEVKVTBZNE9LQlZgKGlDTm1OZSkhRjRTKXxIRShVWS10bnxARnJFZXdxCnps
Vm90WFIqYU5KQjs7XjJvfSFMdVJOWT8ydmNUZGc/Yk9CPjN2cHwtIX5yamFXNmw4V1MraTt+N3xj
dXk1SjxeNQp6ITFTJDJ6O3RNcDN+QHcheW4mWDs+en4ofWZCWWtVYi05QClnJjJJSUhnQjF8QHNJ
MFdHQHpFVlJ5a2M3dD59ei0Kej9oO3RRVXkhcVgtcGheJF57RDVOJDBFakxGQURaUXQhPkFuK2Qm
STd3fDMrJjd5LStZZVgpVH5rSGMyaUZPeiRkCnp6ej5tektUNVNZQzNtcG5ncylaRkQodlVDaGpu
Kyh6fSg9fEh6OzlAaz1yJWF6ay08QjgtJXptNU4pfHckLSghPgp6UEFmZnBHUU1taD9QI2p3PTMp
Kk9zYUJAYlkzeCs4Pl9UP3N7RVJMQzBLNj1AMWI2Uk40RDNgQVRiYEEkLVc4Wk0KeiFhM0dobE1H
fTxDaiZVPSkzcnxpNTRsbnFyVWBBKDZUJHhnNCltVFBvd3AlaWFXfVVrSXBaTWJBK2dlK1pLVUs2
CnokayREJlhuJHE1Zz43UEtYSmZSd3hNSWh6LTVufjU9clgkUWslfV9eMDA+Pmp7TmpgYDVwbWAr
c2Y0V3QofmhQdAp6O0VGJlVlUUIkLUgkeipuXytJajJLPjNVQ3RCIU5AJXxtZ1pOZmFeNEN5bXdr
JFlLMW1uei1VQXkpVT9aUW54UVIKekJRWjlDJm56aSRxbno+U1RRVFMhWUdwMTJrR0twVjtFIVQp
cFFUPXAhNTViaXc5dUh1SzQrSlNDUXcoOHluVlo1CnpjY0oxVGR0OHNKUmVNSzZuSnRgZ2liJV5k
RzVqLUtNVzJSa1gxUXgmR18lfFJnQihoRmBpP1YhVFV2KzFeczw1PQp6V3MpZzJsNzc9MCFAQyhj
MEl5U0BURmRMU1pfMXpHYmtmVkspTGlnYU5aPHw+NVg2KTFPYldaZiQ7RWFuO0dENG4Kejs/X1Y1
ZThTXnljKnhAKHdPO1NUTnZHTDgjTEVLIVJYfENeb1JSMX5KRCp5JGlLTnw9OVAtUldXNmRiJmF9
NnE/CnokTi0jalRiYyQkTTFAaWIkVDxHQilMM1kwekQ/PntuSXFVLVc8YzVGQTl2UzA7O3YwK0I+
SHF2RXJ2PTBQbzZOdAp6OVpyM0lvdn4zb0xYNERCeGVHNj1FcF9+Q2FCfD5lP1ohUnZucFByRXhM
a0l+QUxsaktFe15iQ3VGRmBiRHNUfnoKemZfcnVBUnd2T1ZvZl9mb3R4KiZMTnh9ZCMrbiN4P0tD
eVJYell2YUJTO2UlREJxJDBBJDtXS2Q7RiZeN0hVZTAxCnpQaXA5Mk9AZTA9dWE9Umo8K21XaUg9
cUw/ZCh0MytUUTs7P0Q1RmU8R0d+YD5RSiNNKVBQMT45bWhiV35gbUV6Qwp6R24qXzFSQTwqY2cr
OUBnJHNuQ35FLX5OYl9wUWpSKjtOJjZaUVdTKVp9SEY1ajxzXiQ3ezs4fChPVz9HbW9Ld3kKellC
dyU7MDNOQEVPPjlSZXk0TD55KXh7YnV6MDRTdUVvOSF3ekNnZGJNbSVHX1lPMzV4PGgpPWlxPk09
KmJESFFwCnpNUTxqYjZgaWB7WURUUCMqIWtPfFc3e0xZckFPaTlqJm5SX0EzOVV9Kl5HKWRzKU5v
eTU7STNUPG8xblJ3fStSdAp6X0lvb0gtT01tSz4kfkwjQ20+UThCcXtgLWFsVGI4K09PKTdgUFdp
Mj9IZi1HNjh4LXQ0bjRuPlRocUtZYnZBYl4KekJFZkR7ST5lPSVzVUxVX2RZcEZTSEMpTG4lUykx
fCZDbDdUdjQ8PXo1O1ZicEI8dTtDQCN8SFVIdkZYU1ZiOzFDCnpebnx3KENDclRyRE4tWU4qO3dj
NUlSNjBhUzU+Nj1McmNATiV8YDF+WHtFV2ppWTJpeVYyRTZ9RSM/RSRGQF4mcAp6c1RDaHRqRDZQ
aUV8dnpSWCo5R3Y/JUU+bXt7VjBXMlBNeTZZR2lWfUY7MlBMeWFVRz51Qnl7WHUoO00yUHQlcEkK
ekN6O2tMKT9QUWU1Q0hWKmFwX1FNeEBnbUg5eUBpNFNzTilYVzU8P3lJYFZzVCU/YGNoO2JNTlJJ
TDdec2N0cjdCCnpEWTs9TGMqZ0FIYGV2NW0pdTI0Y2lwJE9lYm9MKGcmYDA2PntaYzYySjN7Z1h6
JlN5YStvPWNpcX04LS1VckR4dAp6WXBXLT53VXg+JWtjVj8pQnllLXVzWkxVfVV6ck1veUJ6KCpq
M0clMmhUYjwySSorWF96Uk8heGE/Wn51LVc+d14KejR9UjZLYG0pQF4wRDttdW4xc1hPYUQ4YHJX
fH1OLUZNPSh9VjwlTnNrOU80TGwzVGFhekkjOzBRc3VPamtsaCg0CnpwQDNZT1VOenh9LU1jJmlT
fDhhR3JrQD9ta2poP0J5I09OdGZCalcqLVljbF5Bd0BHcDhKU2M5S3RLTVdRNXtCaAp6TVRTTFgh
aClnSGl+QFU2RHdCVCghNVQ1WXpxPlAkV3JfIXg4Y29yaGo9Kn08YWFwejhoIXh+N0F2ZyR4cDFt
c1UKel9WWX53TXpJIT5SeWhEPCo1O0NfNmJsNCE3UF4yRnlzaVNETDtlKDF1SWE7XkJacmpkJTV1
fGJLcjFAUCE1NVJlCno4NlNsO0d9d09DPHc8Wk9UeTg4IUx5cTsqWVB1V2c1bFl2USU3UXt3KHs0
UHM4T1M4X3BLTWxycT8mWFZmQGlnOQp6Wm9+Zm90ZFdRZD5CZjFiOTh7JFgjXyFQdU4qdTF6KDkz
JW1aVEZ8MShrP29wYnc4ZzxPJT97WW1VUSN7cHBofFYKel5kSjdiU0VUOXc2XkJ7VTl7JkpXQHQl
akg2KGtEX3hnPXxiN3o4JWU3e1NqUl4lY1R1XkJ7IURYTGdlWWU8aFM3CnpCYWtAXkxGfDd6eF4q
WDdIdCpOXlJ2azxgclNDbnp1YkRUOHAoYVY8JGRFU0RvWnZDPGs1ZnsjQUtKUSpmazlBdgp6cmEw
I21uZylaYi0kUXZOcz1HeXxzR2lgZUc0alNoPU4tT2E1NypNSFg7NExISmxjIWc/dSkhSnRfISQ3
JWVgfmYKelQoWHFuPyo5TiZya3kjdWFaUEFiM2J0MyUrJktqVG5CI0JaRUlRIShlX0V7Q3VfVGht
QztnI2FXfn5yZCszeEtUCnpySUFoKmxzQT9SZSZ7RUlmbXx+fW5+byo3UUp3KUA7OyMpZ1FGQmNT
cjghZjR0TVcyZE9vcyFFX3Ipcig1aF53Ywp6XiFpbkF4Y0ZuMDJjfiRaM2BwZ1AzY1dCNWMzOTwz
VE8hV24xJXFJYl9YekR3VChSN3dsWWBBZFQ7IUdJTjU1S14Kej9oJjNuY0ohIyZqPUc1fEpkbV5T
JGZ4Z21QXzQydHhOVCFmbGJFQXVWe2xjXiV9PGdJc0QhcGxAKHlYO0VkZ2s+CnpBKVU2VUQwKzRH
cj4pMzkwUDFeelJzNSVMJSpzTTM9Y09Nc3ZhWjMleyM4dzFLe1FUWHd7Mm1aKXlxZ3A1YCokPgp6
MXBMUjA7LVFRaWN3MmdhJkREPnNMLXY7ezIyVU0qPm8oaWIwKFJKdSk/WTM7OTM4VDlKITxXfFhv
eVNXQnhRRlYKektUNCtAPTFCYXVUJFNtUSRRMHh0P1JSMyQrckJBRVBTJDgjJmYxcUV4d19Oa09V
cWtfeDREZXZVSV99YUE1Y2RpCnpgLTwoZ0ZOfEl4QGVRcT9fVHxqRmpxUmpuNn1wdnp4MFhwfFEt
UDh9WFhucz8rUHcwMWVke1dkdzRPKyFZc3QyMwp6WDg5UUIxeEhgVW53M2Z1WH59QTdQUEV7aFEp
eDJyKUZ5antrVnQ7Xk5NbihWKlJsTDBAbyQwY0MlM1dqWkpwUl8KenlUVHtEaENtflpCQV9uZWpv
MXl6JDhUUGg7T1ZxRntLcThwNkBUcWFmRWVUb0dtbT1DeSZxezBXfVVxPkhOI0A2CnpWZHV7anBR
LWlWaVMoYT93O3lWNjR7SU9rY0N0ZUxVKWw+ckVObm5fUiR6MEM9aTgxZSVsdW5xO2hoaH1ud0Zn
Pgp6aCFTfEJjVzc9YlNWfG8/OWYwaV4tZDY8ayFPcz1wdVlWfXFxMFoySFd8KzUqeW9OZEo+Pzt+
TER3T1Nkam9aS1oKem9wb348JHZhYT9wNiVmbShYWnZYbEd7JDNRbnNAYk5pO1Y8eHxMIW0hNlhj
dm91fXBfb2A7SVRsVCore0YoZnhQCnpFaDRjMypgT1g7Njhge3JJYilvIVFNNyhGPHVVM0sybTlt
QEkrTWBWaH57S2Mkb3E+NzVKd35GVEBEamNaTjFFOAp6amwzZnNUfnx9enJQVEYzTSgwbzRaWWB3
SFYtUT0zU1NTYnlBWiUzfGojO3V2XnloKDlxfGh+MWlMSygme0w3T0kKek8pUm0qTTJwWDJkZUAh
a0p+UXo9NUZ+blRyUjEwdS1NN3d4cERvYUR7ekFIfko2LVYmLVItTT8hYjVXPXI5UmFOCnp3K0xC
RmUtQmdtaXBAZnp5e3dtRyg1R0lFKCZ0VUwqSDZIXll8JnwyZ3woKXNYTFdtUFlLNVktbTQ/dkFx
Y0h+dQp6b19oNWFhIXFSTU5AU1lHKFc5RGpVU2pCMkUocmgtNCtIe3dgdURERFF0X1IleEE5TU5i
MW1NYyU4PHl7N3ohfFEKekkmcSVhc2tLZGFSbi1tNTwmb2F2TVJ7STNnPVMqSlYxYjttQ2oqU3U2
JXxEIWBFVD5rYWpnV0xZMldWR14qYy01CnplJCZLT0l4ZD9tSCtvakg9U2MrRGE0Xz1jaH5OJDJe
ZFJKOWFlPnApa0hqV1RNX0dtX1hWYSMmdzFxNn5Xe29fIwp6Q09gbUhrU2A0JkNqQHtxcFFUalN7
MWY4c0k+cW1Hb2k2XikjQD03QyVRVWtpRU57M1N0V0A5fXctdl9SLSQ3fEwKemxHLSVpeU8rKVIr
ZG5AWGZJWShnUk9tUXFDRFEoWGlCJk4oU0IkVW9Se1JaX1klVk5xV20oYi1NT09nJXc/TVdzCnpL
XnU4SlJsOEBVWjBQcypUSUlCcyhaPSNZV0o4di1Dd2hXNyZwOUxISi1odVluIW5YX3h3USRKPkUp
VEVjND0/fAp6akYjTF96ZilTO015Y1Y4TW9HNl8jUFR8V0FZcThyY15PPU0rM0RCdHFFcUxPSEok
d2VvZEJwblNIRF8oK18oMnYKenAxPFR2ZDhYUTRZSHFyTi0wNis5NGZqN2JfQjxTeEpHZGpCd1ZN
PHxXRU9EUm5hMHdeJSVlVjskbTFGSD1DNk5oCno9PyRiYC04RyUtI1UhNip3ViV2SlhpNTM3O084
NUw7bH5edl5+PUZfPy1rSHphMng9SU44VXtLX1ZAT3g9U2Ujegp6Q3Q0S3pgTSlDUnlMKjJyelNP
Y3xmRHlZTmxuJEo5dUFmYmROVkMpdHdSO1BodHVDJG5fK3hGI1NwMzhWSU9CMHAKekdDfUhpdGA8
QUhpQEJKSzZFZWJ1Z2dfN2dKXnVoUm4kKztscipTVCExO2MlJkdoalVPMDwrfkshRWQwKVVxRVcq
CnpXfWk8KDNfVi1VJiN1PTtZMnN+QyR9TFhURkFoRUp6TVhNdjgjSCRhbn1JKWhLPiF2fSN+IzAw
I0NWfkQmc1MhOwp6bHojOV4heUFiSDVUTmlxJjBRV3AoRGYkMHc0WH04ZzVjWkY3TXplP0RUV3pk
YjFJIyRfZiFNM1pjYXglZDh9PHEKelNjMTtUeXg1bWpXcTlRaER6Y1MwMnVBfkhQemxkK040O1Nj
Rz9aTHpfX05YZCl+fWxYMEQ/Q3BqXjY1NkdePjMlCnooXlJ9Zyt5K0JQNztoZH4+NEZyRmBSVWZO
cjtnZXZ0KDMoaWI2aUxsJH1BTzsyMl9SXmBBKjt1Snc8MChfPkspJAp6MjhRWjFoJTlWditUOTUt
bEd9akpONlZJVC0yQnpFcnxWRSVUJj1hLSl9Q0E4VzR5U0chWGh+VW9UcEduVCNzN1cKekR2M1FG
aEg2eCR2KX1zZVpGcVo3bkBwMUckX3djMjs8IWRoPEJgaU95TUFHa0pBeWREJEZGZiE/ZSlAcEte
QzkoCnpZYWNkNlJXN2xUSHklJCtwUS14U0tRZGd+JDgjY2lhS2ZXeEdMd1NwU2NrYFE0XzwxbXo1
VjU7cTR3S2dXeFFhQAp6XkQ+Nn17MU8xYCl9d288eVIkaUJJYjNZRE8hWWxWOD1Wc0ZhWGlgcysq
cDhpIUk+R0dBMU9QNFFeNnkrJF4yYE8Kek9TdFozeVNkZSspYV9EdWpHTGlfQTlgKzR1X0dsdzwk
PlVnNF9jcWFIKENZOWhwamNNVH14TSZUIUBJU3FQQDBBCnoocm59aGs4MlYhajl9OzJqK0t2alg3
P0k+aF97SCM8fDdHclBtZHR2VV5ZUFBNO19GdXNZUUZzQDZmelBDQyYyRgp6eDk5bF9aS3pzRkFY
fCZVNmw8SkU8JnxUQU5gdGhWV1E9dnNHYGYkN3A2WHc7RmM4TWpoelVwdiVCczghRzVnJkMKeiZq
KzxXJVNxOSs/SGNXYHVkS2U8I0cqOEVHYD9yMyZIeiN9cj58cWpyNjA3fC1QfkJDQihzPiQmbkAo
ZnM2WmcjCnpzT00/PWpRV2J6TzxsV2VWPTkjX3FVNGRRcXczYzFxSjQ9QjUtPGcybiZVNEshTzJo
OzEzQi1MP2tqSFYjYWV+MAp6aGkxfDRiek01PU9xJTVoal9UMjhuazszKk0oalRCO21fQndDYit3
O1N3N28hX0h6fW8rYE51cnU/KEBvU21ZeygKekMqJVZGYkpENW1vK1ElPGNveER8JHNhVjVsWkZT
Yz5VdlotRE5RdUlfQlo8TVZOSnQtbj54ayolR01HP1hCRmFLCnokQjdBekgtUC0tWTZUbHFmc3hN
YHQ7bnpSc1dlSDclWEdKdnRnJUxwaXIjLUdFSkNSSGhKRXcrUnVfUmhNUU52TQp6KGNNaW1TdFk4
cG1sMGMqZl9YOzZAfXopcXlDOGM0WU5naEA2fCpFYXUtO3g8em5DcCFjPzRgM2BabylMTWlrKXMK
elMyYkFQWTcpSl82NSkhYzJxdjFsKD9OOEo4cVdJVztVYWphbT43OyFqbVg0cTBBVGFxQFUyXn41
PyNyNUFaPCFqCnp4ODd4ZyVgOFlEWk4/YVhjZlUlPUBUSW55ZT1YWVRaRlg8V2E7PkMjZD9AWWIx
dGNAPjsyXzYxPWpsXjtZUnwqVgp6N05NJjZnSTFVT00kI35CWkRPX2E1P2hYLSVaM01GI3QwWmNI
P3w5TGpIS0c+e2VNaHxSJmJ7blUwSipUMEs9TzQKejR+dy1tejQ5V0NXU1NxRFdtR2FAMlZ5JlBC
UFkyUHQ5OWV+YjxIbUNON1VoaFlvOWZyJXhmc3MrYWJQQ0s+MHZ5Cno0MDtwakUwdyN8JloodG9e
Vl96WlooY150d1d+fiQjI0QzV0Q+ZzhDakIoOSNfVjhSPVlEO3I4cylpTzBDUlp4Ygp6NWBUdUgq
aFhJYWNETFNpT0JXY1cyPHZ+Nng4LXhZdyR4I18oOyV7eUVUUmMqNmU8Tz5FMiZZOGY8e0A2R0VY
R2EKej9leDd1YCUrNj1Ue1pgZXFibm0kYzE4KlFFJXt0eSlTcGA5dWt8WnQpYUJIPz08VUFGN0Jv
bH5mNnVVbkRsQD82CnoqUk01YHNBfFFwUCtQQHRRKCllKnVfU0BjTypxaEJYNj9WWjhkU3w9MTww
NFh3eDh5N2J7OzNOKGtFK2VMcXwpLQp6Xk52Wm5rfCN3Mjh5NSF5azx7bX1PMEJRbCprM1otTDha
JVcwVVFVbzZGUCY/bGdCfF5xO2t4V3Q+Sj56a1JPIz8Kelphc1NPJGdLJFZTP3NrND9yeiF9ZzMy
MitOTSttVWtRalMjWWdvfXlfb0RVblg5TEV7dFVhQWc3b29SaHJBMGglCno8e05sTHh+aig8YEh8
bXRNKiU/dHBJPWM/VWFTekxpNnhSdGFUZThPYj1zZzIpRyt7SFdBJj1xd35HI3xaRU97Nwp6dCoh
dzEtcVA3KUMhQ0NzR0VSTno8P2lRX1RfdyheZXwwPXlCRjZraGthI0ZtbGFFMSkoTmROOXIxJGs1
c2xfPE0KelZ6I1ExWF8xKG8tVntqS08zPmhmdFZhaiY5bVBlWVoxVUd1WjdwTXBER1l5VFohcEh2
VjA/I3lHbFFPYzNZU3k0CnpoVGBodE8raER+YytkeFhpNWNXcEw5e0ZJeEVUTnRQRE45aVNISnJf
SHI2VklrS0Q5fVZMckpobWkkZF5OfFJibAp6PUNYe3JxU08xST1zIUA/VEpxVSRWd09LS05KSSEm
RCZ5Uk4rUGRFbF8kfD1jTzFqPlZic2ElazFyMitIa19YRiUKelR6KS0yRCZeKmk+ckp9RnoxJmZ9
PCUxV01iQSElR19WeCMtNn10d3JCazdfV3R4NHNHSSZUV0AkQU4pYCZJZXB9CnpxWSRiJSN4WiZg
VDMqM1VQTmE0RzNIKGRwT1hSdXhKPnx1eW9FMCZ9MWt0PWk1RDh7dkpSQlZLJX5yUzIkQUBpTwp6
UmtGWEZDZXskVUFQRnV3SmNHXi1kVV5gMFZEX1V7SS1TJVBUQStxRWFSdWJ3VHloPiUwI3MjQkpC
Qj80UzhZTmkKenc2Plc3TDNHWWIjVm1xVkFmSl9oQkxuaDFHdjVgQFFaO21uY1VeUztuV0J7Jnhr
QFJ3d3kjZ1NMb3tsJCVlcV9YCnpyTWJWOGdtenJ1Y0V7I15tMH02NnRYWEcqT3V8QXRyMTY1WDcw
SlZVQTQ8Mlgrc3whMS1eKmB0SnxpWSo3eHoqcQp6YDl7Sk5idGxrdHRHYUs0RlpGYXJ3R2lGO0Yq
VXtFaWVIKX5CeW8mcUFSZDFUYSp3bDRjMkBIK3AtejB0RzFnQ0cKekZ7aFVQTVl+JlRUV0ghdENo
SiVUUlVgWVA9TiRHT0QrKEsyK0B4TSY3am9HfmtZZ1U2LS1rODV0Pl9tVFIta2xVCnpLSmpOVyMt
SW1RU0JhWSZsJj8tMEYhZXZCVENuZ15lX156Qzw7fkc1Pzw0dFVNe0lNblhLKyNKKkN3Z2c8YzBn
fQp6VH0mazllfEsyI3VUZ3YqYkVqeVV0a1leJWRWWi1VKyhRay12anYzclU9KW0hNGdxY2xVYnY+
LSopOCtrKz50RGgKelRldnAlLWc2YWZAc1lUYUsrYnloOExuPllNJTFCXlNfQGczKH0hfihMUHRW
KzFNUXNCI2RVTmRmdW8qOWp2PjlICnpreSFLN3VXX0dXckFtYWA9WXplKU0tWUBmbH1QQkIpWmgz
UChAR0U8eU5lNXB4bm1QWkJBODFJTDRoSDFoWHdmPQp6MW8yd0JFYGYyY1hfQk1yPV9aK192YV5H
NXUoQzl7K1p1KkJDKj4+NzBRSWp2dih6OyFyVUZaRUY9ZHBNVnp+dkIKemViTCokTn54OzhzcHJQ
ZyMqNGpya2Y0d2NPbWBnOV9CR30xeGVpdDYlaWQ2SmJ+LURJQ19KPjU9b0J9eDJASnt6CnohaHo5
T0FROHFoP04pVEhKNGU1aUwzeWpvM2QwaCNHRFFhNUhzQS1DY1Z2Tz5sbGZHKHVwKE9CWmA1dD9X
cnQ2Wgp6LTV9aDs5RjwrVURnZm9yUEI9QmomI1Qlcyk/PGFzP29jLT54IU9IQTxNNjFiOGtjYyoo
OHtmN0w4cj1AKmh6MGIKemltOXlIR0RudTw/OSVUc0ZtMjA+PU9DMComdVhLbFglazxteHRqMW0q
OT5IQXZaeit7WFdUbUR4VztScndYK3Y4CnpOaXRiVEJiQUZSdmhXbWpCIUJnKmRlPlFmMUglKFRW
SGNZWm5tKkU1TSVpfXxQO3htVGtlfHd9LXJUVSZnKH1nTQp6eWBAeXRFdSE9TTNwM2VSLSlxa3Zy
ISExO25JQEMlSzZIaCRhb2gkeHtLd2VoeG0kP3NSI3FAYTx+U0s0NnRNKksKeiExZmhvP35fdCNY
T2BGTyZebTRfOGk+bWBxVVgwY3N+U3JzalBYMkVte2Y5LTF9MFV7ODVxYTtIQnhTeSgpTTMqCnom
by13bUJYNXljUHJpfXc7ZE4tJE5ORTI2YyVhfjhrJmp3TnBZMGQzTSsyJmFVem43QCMoNFp8Uj99
T3YoOz5iVwp6aC1kcGxqcUokMlY8XyZkZFZlfj5pJksmKVolanJPUy1EcipIfWwmKWNvYXRSbFc3
RXxtNmlPP2xUUHUmPUAhPkUKekBaUWVTVD9iMnY9SVgoTDQwaCFGLTNEe2VSenswJGI5aGdiNEU5
U1BhKXtaJUpxRilpRHhJJX5aNEpINW0lNHxTCnpGbyheNzYkNVc+JGxVUnRUSHBBOHR5dC1ubFFH
Z31ucE0xbE5oRlM0ZiM2KVQjZ2NGZDBOfilgQ2EhN2BqR1l9egp6cjcyYVoyLVM5dm1nUmV1ek1B
NHhvX2xMfXl0Z0NtRXdvOUctfmZMUz48PTd1dFM4WGV5QVpiSTVfd3EkNTdOQykKek5Ze0o/c3tC
dXVFbmRSPCVmYmtne2ZNSExkd0ZEaHE+Xjxrc3RGaitUcG9oNndZVHRgVEdwYkwqNExMNyVXKXV6
CnpXUnFnWnlOKHp5STBTUXlAbUVUdGdYRF45TH5TfVdXVnlOZXpmOzEobklzNTB1XmdVaV5WXzVl
PCVoe1VqUVoxVQp6dD10WGRaOWVyUmpTZmc4dT9LX0Z3Vmd9SyRucEcmPkFFKD1pTk5PdnAqXlpl
UDstVnwmRDNMb1ErZT9yMk9FZz4Kej1+Ym41OFFUODxmOUEkOWlYIT43NjQhQ1krJHhwYXRiNXw0
VmhJR1g7fj98V25kZDEzQzVuJHE4Tmdrbjx4ZnZxCnp0Ml4wO0Q8b3pqSn5RKFV7cG5XTDtAek5g
PDBfSTl3PnwxZTw1P3xUPFhKZlRxOyZleXd5ODlXMF5rITQydFBfTQp6Jj1BUWsyYDZ7MUYtVkxm
QmFPV0FeYF9paG1YSTdfazAlMmE4Y1V0b0tUMl8wM3paaCsrUihFQ09zOXwhZFYpNVMKejxfZCpE
OWVwWSRifiFsKjJaQWF7PFJkdko4UT5hTENmJFMyIz9rNzFEIWBRPTB6Z0A2dEwmNXhLTS1vZlgl
WmV9CnpDajtgTitFI3Iqc31aX0A7SHNXRTlRM0l6ckIoLWMkP1BjRnZ6QGBuUnE4clpTUmVwXjA2
ajU3bDR7SSVCJDx7Pwp6cXk8LVEzRVJhK2pqPGEhMGtlUVFRbWUzMWdEdX1VJlNeMEQhfVJJeURX
XyMmWkpAPClOaTNuYjxLQ3UqX0ZFfWQKek5Ta1QoUUo9ITgyI1pTS1dDaUdic3Bfb0FIdHUzTms8
RDkqZEpVeT08TFZNaCMkck9kQDxJJHxsdU5XTDdJa0dHCnohcV82STdSTndHNipOd2NySX5qekph
YlV9KXU1aTVrMGl1fSUhSEhIcm4wIVh3Nzc9cSk9NldVN0ZpTlYmblVwOwp6NVBkPHhzNjZGRDA5
N2I+ITVgTTdUYjsyNGg9cztTVDJnT3EhJnRrbSZ0MUZ0e3taNUJZcn1mUmxkWntYc1EmPEgKelRg
a3Z7SEtIVm1EdW8tZXBieXwpRzAjND09ZztCXj9ycyswcC1CdXdFd28/KHA3YG0+dFJyJCszU2V6
TGV6amdGCnpFVWtpMmJSLShXbUt2TkI8eUo9WkYqUnptPVBUSWdXNGxZKVdzK05ucVQ/ODIkQGRq
eExsZ3xmdGBzcCkkZUc9ewp6QEVuaUV4ckgmUkh9TW50UTxgPit0RH0oSkh6fm10KEFDIzBOYXBV
WWRZNlo7KFFPUDs3fithWFNrUjhVaVRSKE4KejtjSHUzaj4pRkZpcSUkVkFlcktZcWRZSlVSWT4m
JjRFeHVQJHZiJiFwX3B5e0AjfFkhN04+Vj4xQ2kkYW5sPXIlCnoxQXVlV0tqKT0rYitBKEFienVI
U2J1NDZnSilFUVNKdEVidnlyRT9iKDdaZGhtSjlwQmRuc1ojMUpINXBUfDlhJgp6cVB8PGpJPCVK
JkY8cCZ9REh2PVlldXdIUyU1PXtiYENlPFdRZ2V9bSRvYCF4KCo3SEtWVCNgNytSRT80LWBjbVQK
emApI0MtLURROyF1eDxoNV4+S215e3tVKkB1WjZGN0JANmw8bylXZWV0NUtZK3soMmwwJlk2RCYr
dipRJEElci0xCnoqfnN+RklSNX05d2BQMDQ1VmdMY2R3RlljVXw4U305N351WFAoVDRkME5Aampg
UmB0WnRONGRiQHhQMyU7TEB+OQp6dDI/NmIrZ3NiVFlZeVVFdE03PF44UDViQDA2RiFsOHZWX2Rw
UXY3RzNtdigrKTJeaDJoMUhycSk8KVpmQWR1UE0Kej8+JV9weHxTbE12fUZ4I19aP0JlUXFgKXk/
ZihBJj4oSisrQFVEaHFpJjMoa2QlSzJfO0pKJEljX0FENDA5OCQtCnpWTSM1eGNnPGx+LUNKSlMj
KWV5SEUrbn0+R2NaTXNJdUs0YyZ0dnRpcEE1JlJZRmJ0TkdpdVhWTlIhTENsfWlhbQp6TmVWI0Q0
e3BQZyZ1WD5mUFgpYE4jaVBZI2NjJE9OczlNRXZtdVNHVW1maWNkUVBBSzViSkwzR3JCT0wzTzg1
VDAKek0tXiZ1KX0mZlZiWUlvWDQteDEkSG4kUTw4QDFKfEdPPWpuWD9CQip7S1I5Z3NyME87KX57
P2VHakEyR3BPPFh4CnpmVj9WVkIlRSN8ckZTM2puKDNDZG5yQHBlb2hSRyQqTGtuKk9+Vkx2NkRB
NipuODhoaVZOT3B8PnJ2aDd3JSNKWAp6a3c9SEVFYlhDJUxeaX47QXBubXR3PzErNWotJFVrKVhI
KkZ3Q1U7VWlsPkY0UUZCd05YWHdtMD9rO3RDJSEmUCMKejIhVChXbWdnJWdiQjVkN3dAU1R4Qkkr
WDItdEh8ditVdnt0WmV2cCVOX2ZXaD5RMj0+ZFleamNtMk5CdmpjcnZOCnpOIyZXQDExdztrSzRI
aXNvYmo0JXc2TlVWTTVebX5COWRsX2lIJmR1TlpyKFdYMVpsMWIjMSomeHB7N3p2OGVoZwp6Tz9N
VFF6TyRzWDRxdHFRKjxueHRDd21xNCNzK2cpVEdwOTArZCM1dmNLMEdNMTk/KDNuXmJZTTUmLUdp
eVhfbXAKenp1VVRBeHZOPiZqWEp8aHdPNWk8UGR4ZHJ2P09INmRZJTBHVzdtcjBGWVRedTl3Jjxw
OH1RN21OWGB5SDB8VDZuCnopZXhAPWxeUmJ9RGRETnBpc250PHpKQHpGd34yK0YlSzQ+QUpZYDVG
TjNXKyhUQ1NRe3hRYmFgWkwrZmtRNks9Ngp6P3M1ODcjcT5ZZlFDJlJEdSp9MElIT0owIUtjT2VT
RjxCIzV5M3xiaFVHa0wtYSZYUVVmUz9ia3tIdTNPcko9X3UKelFjYF9pV09lPT5ATWdLPDRONGVv
OWJ2ViZhVG5VfVdmNE9kS2czVU4wczcrdXdNRDlGN29IUTtyXn5PflkkWSokCnpzTFpvUVNhbTJk
aEV3bkt0YWE0OUtAJHxheXE0WV8lak9wJGp4Jk1CZSF0R0M+TmMrVEM5V3J0ayZvWmJHQ2g1KAp6
bEFTdHxvJkRQek5ecz04STlkN0lAOzNEIThyfHlfSCEkNGw4enVvdk9CNH5KZnVFUVNzdCE3RWVk
PmVAMCQhIUUKenFfPEpLc2QrYUx0VXVqZkt1O1pOPCZLcW87b0ZOVj9KYUg9TmZnQzUrR0FFcEc2
UV8xYnk1aWIwMjVsOy1TcWRACnpIckYhUCVXWDBeMzQmdF9mRFRTTlIrVEJpdzQyayZucGs8c15H
a293Pjdla0FpPStMV3VEbmE3Tm5wVXFjT0lXOQp6TiNPdXZYLTMpc0NqLX4xc3hmI0gmcyh5emAh
PVBneXMkaTwrN20zcCVlUmFsbDE7JndrWl5ZbiolPEM/NTV7dSUKelhZSCNjamc7MEdLfi1kaTY8
TU5vQmJRY1pCeEdZSipQSUlJZD5ZO2d6cTZYdFNhaEAycmA+Mm9IYmc4N2p3WjtGCnpjUSF7TGpD
OEpQS3x5OyhjS3JgVkBSYT9WajhVQzF2eDNmTzdTbHR3WGxfeEs+ZWxyb2NVJXpRMSFpNU5BZVAy
Pgp6ITAkfWVIMnBEVihlQ1c3WlJLV3plZElIPzx3cHtAM2RmOXNmZikwRnlSQnNFZFRvYj16Uj1v
IXApSzZTJkFmNjUKemZ7OW1tKVNSM1Nock0pR2VrOFdCWCFRNSt7a2AwYDUmcjFLNT16Xk0mSXQ3
IyQ2RHh9Q0NyPih7NHRkckx7ZSRQCnpeOFd4TXBWc2NRe1plOHJ3NlNGbjc+V3lVeUFSQXJaTnNt
al4mKm8tQGNwIX16ZiFvaXdocWNlTnRjUSlMQ2QxQAp6S14kOyskKk93WnFwRGtKTz9HVihHX3s+
VXhPLW5McH4oU01vfWlyUDkpaFZfX0BRLXMhejFhSWtYd2MyMzFGTUsKejhfQ1o8UEhESkdvajF2
JXs3OVpNbDxIb2padjNycHBabykrJn47Vk9KVXk+eng2dmltayRFQzUlckdoalgrUzx4Cnp0SyVi
U0IhUWZEPEU+ejZiSjxJJWk+Y2NCQ3gkUiEwbSZ+UUJqcW9RakV3V3NqJXl6MkEhfnE1JHxeR2Vz
Ui1QZAp6MFEmZEdQcHh7TmZ3YUY0YyQoRVQlVXgmdEtUdHtITlRhe0M0a1NsI3hoeC1PQVJPYl4p
PlV5NGdkRDhqLT1TRGwKel5fcj9PdmJUTTI8PFI3e2VSQXU+bil9JllLSlB3bGg7bWdGPVlxJVo8
bHtBfjxJZjd9e3V6ZWJRIyE0a3tnbUpYCnpDNH1FM1A2bD1xO0RQaTJka1dxN21Fb05pIWBBbVUp
O0FXfm1CZT9Ud1oqSnRxTyRIJWpROXRVe29JZHkqQVpgZwp6RjdDaDUxSTIzXzJebktVQ19walNK
K2VVTF9ve19lRT9Wa1piek9oViswY3klTntyVThYU0l4RkdpbnktVWkjTXYKemNaa1clcFVlNTBl
V3RCPHIoODt3KDxJblV1fVopYjkhfSU4SnZrQHl1VDlaPlMqSkBLb3QkdTNPKWMtdGt4T0ExCno/
cEd3NzxMPnN3T0BIQkM0ZlA4VyleXiVOYkVsT1lURDBDJk8hKGN1RFUhSnU+VWhzO3BSUHU2bHEl
RCpgfGZGMQp6RTMjNjwpbHpTTCl4UHUxQj52cEl3NFVQT0U8VnBCZklZJmdWNWcxLTRsOFFRIzF8
MT5ZMzI8Wk9gN2g9I018IzIKenY3QVA3SD5VMkg+eF5kPSljQ1cpU0syMUdaKTxQO29PRytmPTAk
eUhGP0ROdzx2aFdJKk1wSklQTnl9MGB5O3spCnpkWVRIZStCQXNyIXtVcG1CKm8wVTZwbVlSS1hS
R0tFSEBzNkBKPVE7b0lHTmpCY3R1dSR+a3BxQyQ4T2Z7e1NQQwp6bzVWOSstcm8md2R3WTg9TzV2
dUZib1hGd25DPmBAVUFDJXthZjg0ZUkjczwzVGUjNXRrTC1KP1pTUVUmNVFtRUcKekxya3NJO0dC
JSRlUnxoM3NfTkk4aE4mTnVyUCMrTWtgYH5VK20+MU9wUEEkYj9+WEgmMV9nQVEmWWA5MStHTzQq
CnooPnhtWFQ3OWBvRGVnU2tCKDspJHR+b2hWd1lwXlhee3dhMGJxLXg2e2NZdztiNUVIfFJwc35W
PD89aGRRJWNyNgp6S2pCKyU4QDhYVFkxVVZsMm4zT140dWo8KVhPTHlvSVc0cn4xZHd5YyYhMCkr
IWFPeCtyQ24pbz5NTG5Ad3tMWFQKeiRZaHBBRWRFPWBqcGJWey09R3pXby01VSR5cXpZITMjTU59
N1VJVGYlZml2OCUhKkx0ZTVGUnc+SUV9Vl89bTR9CnprYE9QaSg4UUxhKiRQRCpONks5NzcqSH1t
PDBtSD02XiRCcWNYb2YpbWoze1UzWWdmZHM0c2leejR7JSRpdGx2Mgp6UGVhbVN2ZTVMVFd7akRn
NzJ9aX49alQ4fGhVY3lpTzZTezViPCloKmVZKiVvS0dRZCFeMnxkaFIwdzxKaHZaTFYKelM9Wld9
U0tiPTR6ZXtGV25UISo+Y1NaY2tGYGRrcSU0QnBMZ1M2TE1AWE8pO3VqMlZgQi01Sko/NGdCYlM4
SW9mCnpPei1sPHhGcUc+bXVFTl8kPlJjPXNIc3dFKihDYWhFM2E0aW47JlE0OX5KblEhfWo7fms7
aWRvV1pTO1Q9KjJEZQp6PVIyMlhJOGw/JklVSDlQY1gxKH5leT9xNTUxSlVxRXVFc1BHMS1OeyN4
e2U0KD4tZmBANVpVRFM9aV9ydVpOP08Kej1TcTFZbEh4TSlPRkR3dE5yRXNCd1R9I1c4MUl2dVNh
MHZ3T15acX1ULXtqUE4/SVZUPVNJMDArQFBGK2o+N19vCnpNc2Q1aHs1TysyWUIoc1UjcTBYe3FV
PzltJWNPWFE/bHExKEhpOCg7dlBYcS0odjdpPz8pfW54XmZrQW1fJWBjUwp6KGx1PlBlTH5xVHRY
Rmg0UihKM1ZuTG9kVUVFdTMoYT05bTw0T2xrfHQ0Q31hKWg/RmJWI19wOXBuUG1OVUQxUUAKemsp
Syt7QGhIXjEkR3gmR3toNChqSHRSNHo8QmtFXjJkQUpGalgySjdkbXlQJSN1dCl5VDNMUSNfPTRH
QHllOWl0CnpqXipReiV2RmAtR0p0cGl3Kml5RndnIUM8ckUwOTJaT3huLVVZams8Y0lNJUJlVmAr
UUQtYWxpZnpBb1I7PUpUNwp6LU5RO0lscip5dHNxPCQlYHQlJnZMdj9YKXJDQ3xWX2h+JGVuX00x
NEZjfCMzNFJ6RlpsekU9TDQ9TlJ1UkdnSyoKemRZeVhjU312S1dUM1glZjVXM3UzbkcpaGAmVmFH
TzFJcV90YEcxUj0+aWpMRj0tTG40PDxtN3k3Z2RGV3lHNDRrCnpHOzsrRWVwTyZUVlVDJlZhNFhC
YUoqakhZISk8UytUPG5zMGo2b2cxS3dCTFBjRVJoQmo4fGNDYWQ3dUthTVVJTwp6P2kmbEtCI0lU
ej1OQHZYIXNIeG80ZkcoXkhLOHJKJmZHMG5SZ1hXailxVW5ad2MtNmIza3olQU9HYiQlemgtYzQK
ej1VQG5LS31GfGtnVTRGUCg9LW5YLWJDZ0xVMTZxI1prOT1JN3MtIypvdX4qTTBMa2lWP31EfHZ0
QmFQTWIoR1Z0CnpZKH5nWmFmTmp0dTBzK0FkRzEmMVU4fXw3LXYjKUtgKWNQKHZBQlpyKG5ON0or
JXAyOWE/SFh1Q3dFVm5qLT1NQQp6eTt4b29ZVyszYiFaYXZWVD05PnVtKFR0ST1od2EqKEAyKSs+
bnRLdjQ2I04tdkpaWWdMeGI7RXRtTCElNnxUaXQKelZ+S0duWGp1ZXxySDFBdG9+eTxPcHt9cFB7
e1IlVW9od0w5S0lnKV5VR2dVOFgpZihqWTE/QCVvVWo+RCp5cTNGCnpUISlEflBZdzJueEBFTXtN
NiR9Y0V9SDtjX3M3NTJyODw3bnZ3cWVidyVGRkJDfUVVa01XKXs3eWB7SD9kYFVBfQp6PkdvUWMt
UHVubi0lcXJkSyV6cH1VOThJRyE5MyQ1dVRmTUpOWUoofm5gNWJAeGNRVmAhVD4kVEJBM0haLVgr
dmgKelgmU2g8eVI/eFBBUzVBPGVwd2FDSk9UJGVCPkUxTyoxeUFWNEBCJmZjJnwpKFJQQTxJbjFW
LUFLWHEyIUM4S1pnCno5NFhZQT04OWkoSzdORWYpTmxMTFFvTnBlKW1NJSplYV98YyptMFYha35E
SVdBNjZaP3NXKVgjYXQ8LWlDYmUrMAp6eCUyazI4ISp9ZEwreV5AbjxAYnE8RFhHWmMtQk54amZj
LVU/QG57X0N7TWZ3NGwwemlMY1lYNzEwZCZgSyVfRygKejl0Vz5fUU1yI0RhZ0oke1pkfGBpYUI5
PUR1fWVtMkNDUypheUJ7TU16fl9vJm1vVE5qKzBqODYmZis9ej5ZUCZyCnpPIVgkQWNVRSVVJDRa
I05eJVA/RVd1KTVEWFY4N3haX2QoIz9aN24xKyVHNHV5KHlIbzNrKGArX1pHfjByX1l2Ygp6NTt6
MGFvWFZqPl55aWM3UHt7bE1Jcz9UQG5fSEZ7SiR7cylueV9seGslaXdXUDxSeVNCP3dCVUleZGRT
Pz1ENj8KemJJfCkjaUVybzBfbXkldGI1IWw2XzZzaGVpT0xQOV5QJVBeOVNeQytNOTlFcmppQ0N9
dG1SZEhUcXg7TnFoaGQmCnpHbENnTzYhe0F+R2ozSFVeKSZfdzE7RGBXWGgkY2c9fnJhK0xyOGl6
bVJLQnVQYy0rTjAwajkqd057YWRWfWFKMwp6JDhmO3deYG47SVYkXlFWNz40JTJyWW92Xm44d3JW
KVlKLURmYThKRW8wSEdVKTRkS21nXk48LV8lVl58UXBGO3UKejF3ZEk4ZWVVJkMwP2F7ZGFZQUdl
MmxBPTQpckReeyRRbmklVV5nQn5yXl5BZlpHcU1DJmdKQSkkKEE4dnFCWDtlCno2NH5VTSZEIzBv
NUQkTV5ZRHRldlNiUih6a2w3JH1RYnQ1LVJ7LV9vYGN3clpoYFJJeChENkAmSmt5VzYkNVRZQAp6
WjNRSzheOXZLeXU2VjFxd31SZVAzPjU3PHZVP3h2UlRrQ3F6JUpsQWx7dipDTSRJUmQ2X31tPzEw
Pzx3LUlAPDAKemVedUFsUUAxZnM5NGdxI240PTB1O3dqb0Rya1lFT2tSb3xke0R0fCk7cihrNz9D
eCFZR3M4NC09TEVEJjJrSShvCnpTdGUjXnopIykpeHFkJWgpU3x4TyMhWDleOS1DdzFgQEl5MnFu
bVpien1+YVB5VW1EPGptcWtOUWBlO19Acj5HPgp6X2ExMUIjTERjZ0pWQiY2VUpFKE5DKXxAPEpV
UyskZDxseCROcyZnQEZyUEROIyhCcTIjPHo0UnBgVDF4QjtLK3QKenZWfnd5P3AwMWNnOVFDK3BB
aV5CRXY7R1hWQ3puIylpdHUkc2kpeCYzdHhEYD5ye3J2UW45byNVOEc9S05XalNNCnpTU1ZlZkAk
I0lXb1FsLWVINFNwd1lnOylYdX55UnxpYW1fdT1Re3htTHR7S1IyT00+JWVoXyUwTiRgaHtqcklI
Nwp6JEVMSjAhbVpeUTNPNGJ2dXN0dyY/YWchRUZ1UktMVGUqX3I9MSh6VGdfOUJJZXEmc1c8WVY9
I2p7MkVicFI9PGoKendick0tbHZvPUpYMUpOfig9JS13diglakohMG5wb0hOTypUMnxrJjgpKXNi
Xyk9Mz8qJDg1ezhSZzg2REdyWE1TCnpsbC1gQDgkKzdUPTVyZWZrUHVpJWtBWj5NPWEwLStQY187
STN0UWQ9QypAPWpoSFReU1pwWjBVSXV4cVFUYlJjYQp6UlYma3gtKzAjaExmM1J7TGkwP31aPitV
I1J7bCVOeVhKS2VkMVVWflcyUWtsK3lKajJucnx7b1ZZK0NvSC0jKksKelp3c0QmcnhtK2xLQktF
VytGUXdXYmhlaTdhVm58V3N+UnVOTzhSNTRzdXVkU29HQmMjTT5NZHo7elVpa0Rsd2RRCno4NSFv
UDcrNjdEYTt4SEpVZmtQJVU1eTxOI0Z2XzBwUXpiZCVYPWxJYFVJR0NTcmoobDJweEY/QHZLfGw1
PX59Qgp6d1lWfG8/fWxEVV5zOFBYejAlfm9sSyVpcHhMOW9OU1cxPmkycnkpRnhqRHg8JDZtRUZf
fEhYfDhwYlVTQWhOTTwKenZgajxIdVp9UnwyTHNjZz9AUVJ6WiVDMGtzIU55Slk7KlF7KVR3JUlF
P15maXBrVDRnMzA1YiFULVNHRHRMUlR9CnpCJDg/TlYoMzJRU2lecWtVfEBhWWt9IVdpWVR+cyFx
VUZWK3VhdXVObkRkYFg9ZEdvQDZQQVM7KD5OKjUlcXB0VQp6Yi1tUXV2NWgqODQlP29DZVcqT1E/
MnVjUip5TWNpPCNWMUpKOyVMWi0hdDMxJl41fFI8O0xkJm93PypeeStGRkEKenYyZzZnKiY7Kj0t
ZUpteD1tJFN1d05ATFVYQyNyIVk/bUBmcilkcUhyMmhhfiVBT3VubTc/dClyQW5wVS1pSyRYCnot
ZE84Yl9aTylQTG8+TXg1PFY2YFBrYUlUM2RxIyZKaEkzWjw5TChHbmE9PCo+T0RKZ1JCYkokT1Ns
KzImKnQrWQp6QnJMXndJVWVgYDlGQ2R4dEN1WmZaRSRXUHh7LSRMPzJ2OUheV1AmaDtaM1ZNd3ZM
SWBnd293VXpHbUskRyYqKEIKeks2fWFMI3VibTV2NUB7QWw8aU4mbGlMWlFpNlhnKERRciYmayZx
Ryg0dHNqbUU5PGRvKX1xIzNEJU0tRUFkJFMtCnotWkBaWD92ZT1MakM3fTVfQG4hT1MtWUEkVFlG
ZThQbmZuKTRVanx0PHlSei0wMm15YyhgbUxJK0xXV0R0b3MmcAp6SVRxXmItZzclalJEI09HSjl6
aT5ITjZJKmNjfFc+UGNLZGdfPkp3PDIzJkUqS3xRK3IqOW9aViFETnZ3bH5vUTgKej8kPlY3e25Q
YUk/Xkl7anVXaXlUKG1Ee000WkReRCpWcGxeQj97OGBHYFdoYTMkMEg/KkN3OWpXUzBLYFA/cXBN
CnopbTNCfE9teTVqYWh9N2lhJn1yJmt8Z2drPzY9eGdTaHMhOztmKCZaUGV8MXh4QCk2Mm1fbjwm
MGtUfkJYQn0kbwp6PVpVUE8oYDIlQHZYezsqOGFZfFhDPU5GYWNoMSU0d21zLWp1TmImV1QrUkF1
WXQyUmImRiM/aVBYbDx0SlQrc2gKekRxTHl1IzRReVQoKTJXbWE+aFV+bjhwWU13PEt8cV5AMTYt
eT1xQjUhS2QzdGE/Ry17RiQ0PHw7MVQ3Vm9SU0lvCnpjX1NTd2xraTJ4bTgpRyNaTEhaYHl9VX1C
UVcqalJpMip5OWskX1pAKjFNUXxPUS0xOytQZTVnIXJ9e31CdHp6Tgp6RUdpcylzVVR5Syh+PmpD
VG9ZVz1xM3E8XlM4dStAcjkhK3RsRHhEX1d4d1FkKEI1akE9QyQ/KW5eQmhMY2wkY1QKenhsc2Ba
MGUwWEZAIXFjTTl1eDY+JjdnKlJaQUdKck9CcDBOaVp1anxNc049cWBnNzhgLTZRKjI+cy02UFly
JCFFCnpvJFdsVmJHdHNjO1FRQkZke15SKUNyYGh6SStmaygtdkYtdjBCS19oUV5SS2BwMk1ZVVRB
TmMmSHVQcE5zWk1aeQp6KEw0RW5TMjMpMHktUDswN0V7UWc3K09JYys7SlpeSGdHeU5mN3U7NldZ
ZV9FdDRTeEB0WHk3QTdYSlg5KU0yMVoKelY7fiYrOG48SmwtRCVmV3h7QlZ8bmMkUVlZJFlyez5i
NlBmS0syaGUjZExGZ1BTbGNFJTl9eFAzcENFK2E4PllsCnpgM1VFPjJSV3tKUitGLVhafVllNFJC
NUg5Uzhwdn0+VFQjI2NwcG9UV3UzJCZNJWZYeUk5O1VyRjQocSFkRm5xSgp6XmZtRSshUVVFNzlq
fVFYSSkxNFglJl4+UGtWdF4zUlVFMSo4N0RtIzlDcWZzaXFHT0QmeCFCdEgwekIrT2h7ITYKekBf
bmteQSZvUTAlIVBVYDNIKGtmb1cyI20pcGRBdkVpTmM3cWckRW5fdnZWbDZ1VXFTIS1lQXFCT252
bmlxQCY2CnpVdj1BbV8lPU5YRl9kQlp5VUJHJG9vbUNfNThgYF5aNi0mOSFqe15NbWlHRks0Y3sq
RUJPbXFBbHk/ST9gYz9Qdwp6aGwjdSlCNUM/bFNrR2soZEdYbjVRS1pPUTgoR1Mqeis9eGk9emYq
V18qY1Jna1pZKXk3OD9FRG42cFR4Jkp9cG4Kek8zR0Yqb1E8R3tXbyk8OHpHfk5xXnZKQ0I3U245
d3AzSiExIXVDYUo3bFdMWT5JTW17ckZoUzRyUkRoVmR6OXxzCno/bUlXcT5BJileKzVBck5GTXpl
WlEkZjE2dk0/aiolNU5nRmlhMkQ3PU9tbitnK35FQGhYPmYjbUt7NHlZcWVWQAp6eFImTF5KWXEh
T3hwezhPb3x5Rll1U0w8bUE4M2Njd3B6eGVzQCVoT2FFJUxGJVZRfVhjSEhwRFBYajUqMENRWD4K
enJLdWtkJGQ5SV8jK2BFdk5GK2FLV19CYzt2YXVrcD9sWD0hI3laeVl0OCZ3fEpMI3NVSEZ8TjJ5
K2BOaWF7aChrCnphakkkLThmRVNOcFFjO2ZWJiQkUmJxTj4/a1FudkhQTV9aVCpSXn5ZQEVodERA
eVZ5XlAtKGgrX1l3ej0mZiZ6agp6NEh+eEE7bHxaRFc1YXJKZ1BRcnVeNXFfRCQ/aGZHPHg0fn1m
IXEqc0ZgdVAkXzdFbmdWK25ePGY7aT4zMjFwV08KejFTLUpnN19qSH5OZHRnTXR+JklwU0JBNTw8
YUZWJlBeOCp+UnNEN1FgVz4mdjQtTS0mU0I+TTA3LVdrNEZ0bStpCno1PEEwX3dwYEBrbU1fTG1F
MEZPSGhpfkNZPj1OYFU+SzcyQ3VRTlB8MkliRylKd155MTt+ZGlgTy1zcXJNfjd+MQp6SFQjUD02
PFhka1dBK2piYWVffGQ8bGA2cz1EN2E9NWI2RlgpYTlCelBTVyh4OHg3Qk5uK2w4ITRzWlloeCtw
QFcKelJUVCo8RSVtcUhYTmJqbjklKDNaSHtRKTIoYyEhUTAwYTFvIWA3Q3NiKjVQQkhrU292elBO
VC08VjxBKGtRaWVwCno5UzE/cnVQdU1CWUYtaTdVU0FKdE8pRllWekQzMX5Ca3h1RnRhNi07ZFhI
WH09Nlk5I0NYIzN0RUJrMDttLXgzYwp6Rig3bCkwcj91eXh6eWpvJmVvOTZfTlJAdWQ1U1Bmb3wo
QFhgZyZKWUpUKkYzalkpR1MoZHYyaUdiKXBgKUtwKVEKeilaU3x2dVpzTG9ITk97VnQqcGctKG4l
SmQxZnM9SmZmK0l+cnV+PSkzSyRjUHpQUSZxNzRwakYoI0tEKndVY25uCnpYdWx7VjtZbnxwLX5x
fChZOGdDUz07NDBTb0ckaF87MCU2YipLOz8zSldCPVBlP1A8NVBeN3oheXd9ZWpeUEZNMAp6UWBm
alBxcn5DcE5wbjVjcFZRRkZvZmBPYGZuVTR6ezd6M3lATlMpV0ZEPFdpS1BxVkxYMVlnMiRZfj44
ITIjbjAKempFZENwZzRsUmNfUV8rdm1oVnJ0ZDk5IS1uPFV4LTs0dFplRm49MXs5fWd9ZHkwRS1E
bnB0WFhhSSpjTDItZk5kCnpQOHJpPGlFYGdfODlqNkNZY3R7cGcxbExKbVI2Unh3PnRnWG5NayZW
JGl+dDFhejstb2NNYjxhSnU4TS1zJiVUUQp6cV48WFVIbi13PzZ6TnBMVmRUXndLYkY2Kj15fUdP
c2EjdEpnM2kpTWZ6QmlrNHQmOSF7TjI2bHFJO2NCTmB+NnwKelJGVW0xeW9PNj83QipueDJqeSZG
RHYoWmomcGRrOG1Yb0c8eDUxRmRjWGctaG1SOT9oP1M0JiskK2JiYD97RV8lCnpyenx1MCkpJEhW
YXhVWjRaQytRTigmM2UoYCVHJUgjKGhXKE10Z1V5ciQyMnE/dDh3dm9KdWdJT1Bad0dwRzRNfAp6
YDc9KyUtWjllclZJX29gUillUSNsVXFwSl9UOStreHlib2tfOHFnPmI2aSF6ek5aJFVhUTtrbEVV
enxZQj9POTMKek1MRmM7XmRORUdzNihvS3NeYTArNkUwWX0hVUJJUjhydHgzI2VKI1YrK08pZlZQ
X2JTS2BNPjJIIzx9ZzQ+Jm87CnpQVzk9IWspYUUlbXJ1fjtyQWd4SU1sSmtYek1pRmRaRk0hVnZ5
JD1gbiRVc2REekdeS0BHdVRge1k3ezI9ekhUdgp6bl9ja0s2RUZxaFZLNmJiYnMkSEtnVTF8S1Bh
bExXd091fDd0OFdaZysoaG9HT31XRCtQYjh9SDI9XkpUZlA2bUYKemh8NmpCMSY+cVlUeWxUIzk9
dGl7UUUlUSZkUnpTMkA1X2gxbSUmaj17PWVqcGs8O2JDS3VKQUZyRD1BSTZaTlJYCnpuPV51Vz9r
WUVPKmZ8Km9nSUAwSl9fVD9VOWc3fTleI1l1QjF9OGlwVDhxcVA5bk9DbVg2N1pBa34maGV6TWB7
eAp6bGdXU3FVY0dUcWQ3SF5ySlJVZ3xzXnlidUp3S2Y9c1lWMy1hQS0rJjN2P2VVTjMjalJfMDJ8
Kz8tP3VzS0Q0WisKekxCUSRsUERlWnBhbmx0X08pRGxseUFCWjsoNi0+bSY8YkxaNGg9flh2eW04
Nm0rNjdjSU43PnxYRkNCSThLcmpICnpPa1NtT0dvRT1LKVpxSUAyU1pqcSVkLXlaI2VIeWFZbzw+
Qy1vSiFsQGk+Z05uQChiN1BEJl5sNDFKRzNmWHljfgp6dGZYOUc9ZHc5OXt3KHBIb0ttRncycVVR
Sj5zc2VaWDx2RmxET35VbXJDM2M0Ujx6NSo4Yj1kaj0wN25mejZUXzYKel8qM19IWWA8WG9tPD1n
bFBFUzIpTCFFI1k+RHMhUlgxN2FFdiEkfWtAQTVETTckRVZFSW1xPmAtd3BnVnk3ODZ0CnpnSE4q
JnQtakFhVDNgU3FwVGBfP2Z0cGswZzF5MlJjfT8wakpvU3VtZnIwWCMhMWIkUk8jJmU4RjJhOTw4
OHp2Ygp6ZStYfTMqUGwmSUhjOH0wMUFWbG1xZz9kZFRtVDJ3dkdxPmAtUmImOyNme214ZzVvWnQz
bjwyVjx4T0RnQy1BZD4Kej9DUUhGcFU/ZDRkRUFoKUtGcTBaSSNBWnJzJjRZMTk9TlhSWnZwRElg
ZVcreHhCNFJ6aTB1aGJlO1VzfDZWfDFWCnomeCRwZzUwXjRWI2ZFdn5yP3FhWEpxfiUlc1JxK3E5
Tk80UzJJZ0ZHKDRJfEJBXypTYzBVJG9QdHQmZXpSXj9HOwp6UiVyb0VwPnZWeCYxa29WLXJiOHlX
V3xiK2hnWml1WE5uISNfa20lakhEX3k/YFg3Z3JSe0t6VWgjKWFTKGtPR3gKeiZNfH52TFVNVUxh
cW43cG8payt2SnRfQ0VwTUhpLXZBQSYoaGJ4RHslQ3tORXFZOXFpT1I9ejlXKERTIzBpN0hiCnpS
ZDRSfiRzZCghISheSTY4Oz4mNT9PcCluQlgxRyZfZXNZTSN3a3V9SjAwfEpOdmxoOWs5e2dQa30o
M3pSYVgrPQp6Zj1kcUwrS18zSXVJVkw9bHtvfTljTW42KXU0fHlUXkFjSV42NWImVEltWGtDeSM5
NSRZdmtKTUhkaz4td3tYQ1kKelhTT2I1UzczKD5jc3Y0ZykzQnIzeUlDUG0zWlJedClxaCRYUitw
dkVzb2F9dVRTdU4hODA9S1ohaTx5bjBaYDUmCnpjPD1AUjxQWm5TZVhGTG8pZWZJT25IQlpUbUJm
NCZUJSFaJmthSm5+Wmp0SlhHIWExe2pDc0NlTjRzZHByJXR9egp6WUx1P14xZnRAanhzdGpwdjY0
ZEVgSjhkSWp6N25kVVg5P0xOKGw5PkF+KH1sUHEmS1BTKCMocDkjI2Q1dm1VJGkKem9hMnN6d1I2
JkhAPVlWTzxJWlV0PUpRNSFlZHhUdURgamhTMSoqbzclcGM1OzExITlwXk9NRmEzaUVTXkRxOG5D
Cnp1PXNkRlQ8eHRvOVNANz1gKnItMFVTQ3x6WnhuK3Q4RDAzfXFWaEEwbiZkU2QzR0ZTU250NjJl
LWJoP0tHb01fNgp6X2ZONUBFO2FWS3pMTkdnYih4cWplWiY+TzckQWUhSEM4KWt5cH4rTmt7UW5E
SU5hcHRJbSEyeyFeelU3bH1EO0YKenVSK3dDPFhSVEFPPTB3aGtsTmhiTDMxK2ZYMThzaVc2Km0y
WWZEWWs4RUBOQmNHfFBlQSM1RzE4P3VFaWNzKS16Cno8RTxzSGdycU5QQS1HdWdIZWAoYXlBd1Rf
WFhaYW8jPGpuKXI4aHJpVW9LVT5sdCZnPTVKKyZ9Rn5feiNidjIkTQp6dHRyIVhsNGtmIUhFMn56
YWNPIVN2U3sqWThwVyhxbTJrbkdOWG12QSo+bX0+YyZwZEMzXiVpLXtsKSNRdlpRQXEKemZfSDd0
JVlaVG8+YHhzaz9+Rz8/d1d0ZFpgMTJBKUFge0dpem13JVlvb2FAKVlYKi16T3tVLTJZR3pWSEcq
UTBMCnowVHxEaTIxKEN2THIpSm8jWT8lS0R2VDd8SXdESjVTNH5TZkEkdUVqayg0TWE3OHtPcHli
PHxoNjt8Q0tmVjhwUQp6MWJHO1pnbmlaUWEjWm4tejNTcklUSFB3JHZ7NlFqZz5fWkhGTUBHXyY+
ZyZJQHZRcyVOWmAxKlFxT0RsV2RjVD0KelpCWGE8TX1NY1VITjBsYFcpaF9ZI0okejAoeHRuN0Uk
NUNha2cqdno7ZmpuTFdNQ2U4QGx4N2ZlYD5gWFAtJS1OCnpraHxWTjVxMWd6Jk9xWkZjZEd7QyF0
MkFZV0BCP0dQfChQQEFpbk5OJk19WnFJQFZwNW5LS2ZXdDJDMForKGItcgp6Szx8TytOO01AVSs/
OTtJbFpAYFFNQCpqJkgwQEpEbiY5ZnopX1Q7U089b0UlZyEzYzhgQHk7cyt2KUZJY0FhWTsKemxR
UnEzU21xelolO1hkcDxOXihBclBpYk44PCsjZyo3elEzZn19UE44NjhoSj1+Q05XOGAmKUVZKyNI
dW4xdnlACnorVWl7T0U0WDJETmJCdVkmWGpmMiUjfXNDLVYwTFkpWWNhQXFySXhGZzk2WSU3ZFF2
NkMpXkh8VkxVO2xITUEhRwp6MDhJTnV4SmQjbTZQUnxmN3pfWWpOfVFmfXJNdktjdjd8TjJZWmY7
YXgzSjBPbX1SI2taVU42ZDBUPio2KS07eWUKenJ0KVhgQlE1dW9hNUd1THR2VVFVe0xibE1ZZzFt
KnVBUDtOYTktTy03SCZraFBLcEYmaj9PJn1JKi1ibThZWmlDCno0MGtNKyVENjJnWWxGQXcyMSlt
O2FPamNUJTJwez9jfik/ZU5QfW58cT53Wkdgd0c/NXQ/cGpOPE0qSyloZWJnRwp6bUx2QE5hNXt7
R2soJHpUZnowU21lO1ReYCU4XzFOY3lDI1lRMUkmeV5mWTlJVD5rVFo/MXVTSTlEYFEwZVNOUD8K
eio4MHIwd2w5NWhDUF93fGp2KnRePFlUe00tPTFsQEFCVWQmSE8wbk8paTQ3QGNrKWp7MFR8PDxJ
cC1DTmQ3eF5BCnpsX3JLdndub180dT9OIV97e1NNaHpjIUkoUT5WemkreGl3ZlNacVowKCMzckR4
M2hlPUgmUVU/N3oyKVkkRHV0Ywp6dnVJWWY7ZyYxIXcweHdxRHEoWmFPckQkPytSJU88WWtIMkhA
NFE4NVcodl9mTXt9Xn5LKm1wQil9MWxjdHAzcDcKelgxR0xCQXU+eEZWVkUybzU7NTNTRV5BJH49
fFQ8ckB6PTN8Q3h5fUdTQWJybnhrMCVkMH1ebUsxYT5gbj5GLVJ0CnooZSZhPCVQakctOUJuLUY9
ekdeJEV2KGpCVlozWCplPG1DdWk5KGlsQVk+RVU5YHoyTGIhUDxBLU5+b2hVJnRqYAp6KE0tNWxf
WEdSSjwxN0lLcj5gYCpufEMmeTNfbVU1QU01WENXezJWWko1WSpDTFMkenxkQSFBd1h4Z0pWI3Qk
QFUKejhpdD9ZKVlMNiEoYnJQQmstKDFSVCliWFZmSk9pcjJSUjN5TnsmY3hFLXBVVlp0RUVuZl9+
MSM0NDwzKUp1OUhyCnp6dV9kKlo0bzZHUW9AUX1YOTFOI0pifEE0NTd3cEluJEp9SCNtS0NzODFs
OEpkem4pYHA9WG9sNSNleCRFVEVPbwp6VG16blFeOzZjcGh2Nj1uQ0QrNFdoKiRSWmZpNUp8VzN7
IXgyMSluTGB7cSY5OzNEVDl3ZDh0cjxXVkdYLVJYfWMKekt9aHE5dXFyZHgoMjxlU3pNQWtocFF6
ZFY3cnhiV0tPaF9YY3B8bHBsUC1tQiRgJWVsMDJnTTtAPDwxZiFMTDZiCnpSWUVhfj5tKyZAWUJI
PEw8dD5yJj9mdzE1cWJmUnVrVHgoRTJhakNWVlpTaipRZHZLRiorfjFwTzY+ZWE7Q3ROPwp6Wj9A
bWhaI31gZG1mbUg3MWZ+YSU5S0whNzJQMk12KXFPS2YofXRhTjxjRlJeQColV0ZpSGY1Oz9zKStx
ZlNDJDkKel5WNXAmeWY9PWdvZUItUnlEdzloWFApUW5jTjFMOGlBUzFjRHFDfj8oZnB9eFpGOHBt
dTZaRkAlIUxtbTh+YHU/CnokNm1lYllTUHpIKXNebWFsV3puTzRkRzxsQUlpTTU8Jk5HczgwdkJg
ND5oO3AtdzRhQj5RRl9oK2FzSTgqOTk4awp6NkMwITc9M3tVd3ElUTJeMUw7I0sjdFFPajhwNEk7
JX15PSt2XmZJYCQoYjBTaURFN0hmbmtCYiMmZVF6RGBGamQKemN3SEB5bnx+OXtjVzk0MCtCKj1B
Tnk7IWQ8WH5pQWs0X0N+WWQjRnF3OURnZEJ5eihmUEZgaVZjOV5Ve1dJaV9NCno3K2BsfTFRQ3Vv
dTU/JnclSikkbkJUPGd4MmYlQkZBeGlZK2M3aHV7cy1aZWxqO2lSWXMmUkwyJi0oMG9yLXBvVwp6
ckFlV0dYV1JKQ1I8aFQlMDw2Ki1Ld15lUDxOej4ydTBaKk5YUXhoOzx9anxSSlYmUSRjOSpTWGVk
blElUkJ+WmMKekVeQEVDd3NGX0xkZnhFVjl3NT1LcVNrYktiK14qZmJXK2B2TUZDayNJLVNINDJ5
QTBMe2MxUFQ/PUBUYSUrVzxYCnpmPWh6MTY0LSQ9Xk8yR2lZfGxiXmJERWt8cWVWJEFuSDRIflN3
JnNsZFk4Mmk4aERSTCktRSp0TGg5WTZYJmRjdQp6TnQ2eXEwRmRsKCojS2tMd1IzbFJVYThfSyFg
ISRBRVQjfHU2bWBNSjk5SyhZO2hoJWUhUD9IVHRaRWx9anBlIXMKellAUnRicUFHMHc5SXdvTloo
YWJkWiZVRUMmWHAyZ1Q7SW4ld0JjNE10KCQ2PUJPfFhUMUtPMTteYzFCRWRVWEUpCnpoOGBtYVVR
a3RQVWU+P00mI2A5aiFnZX5RZz5pUGVxP2Iza2R+NSFQRiQlPjJJb2QoTjlaIz5sViUjKj1GXmVk
egp6SmhoQW0zS1N7aTFNYi1SKjJKKGAza3hrVT49I2YtMFNLPHc1KXlEJWo+TzwjXmdSYiQheWI8
K1lxeXNBZmA/e3UKejY+ZUZVVjFLKkVmNnR7P3dXa1Fgak1mJlZNd0xDXiRnS3k3SEVWbFExYVRf
dz1YbjQpSiZ4PldaZ2E7JnBKNyhECnpVbHZ7TTNxOER8SVU7NmsrIXc+PWYoYCkjcnlqWmJTRUFj
fEpuK24zOE5LbFpybithO3Y/JH1kbkBrQTZ2R1d1dgp6OXBlbCk5Jm1iUmZtcllHJiV8Q0ooaz90
PjkrUCgjbnxSVnAmdUdmWThhb31eVis2VTNYQm9pJjR7R0lEKyZnISoKem0pdihPd3p8OX1HfmVI
KyU9NWJrbl5TOWVsR15DSk80Qj19VzxzTj5JMmt3cVhFYXt2QG9ILW0rZXN8UUI+bSFxCnpEVTJX
UF9jKlFTMWVUZzRxOHI9R1RrJFlma3pKSjxHc3BtZyZIJnxsNUpoSHFpOFlKWj9rQnNQKys5WSg1
SkFmQAp6UX5XMj4tbnZ6Kkg3JC1XV2xkZEFSPXNXYF8hYD5RJitXSDVtNS1PVHEmRTN1Q0BhN1dG
filqfjZZcEkqPm1FNkAKekBhNHRybWJtYF8qPlJFYFVpRFUwMGZzaWxUWDU8PT07QHomPVg2QlZ5
Z2xOM0NfR0h9aml0PlppPGg7UDgrdEd0Cno9TytiODlGQk4zeXwzSW5CZ25JYyhwUn5pKTV3eFhY
cXFyc0JhRjUlTFdidWpDYntjVFFqJTNRXzFNO29wJnhwWgp6WH0tXj5qcXo4LV9xVkFtdilQM2hD
PH0lbD9PK2EwPzJkY3F3UW89SFBTViNedXt4WWhCU05raSNjTFRheSVCZDEKekt3SiU8O2Z8SCVI
QGFxfEY2QylrNkZKPD1abz9Rb0s3KzN3KWtmeWc8MVV2c1FycFVAKG4mSUs0Kj11JlExYmpFCnpV
UzM4MGNOYS1GdUtqPGNkbW9CXkVMIVNYWmxrQiNURStIVCllKUA3Njx0VmlBOz94RUExTEdBeWko
QFRePSg7YAp6JXYxIUhGNVFSdGBjLSk1amVtQ3d4aTcoSD9lQVM1Z1JGMW9sVTNCTHRld2B2Qko0
Oyo3fV8jSjJMdiVBSThvMFcKelJMMmJyRSZZQEcmUlVxTTwwbHRhVE9RNWU/SVlvMyY3RiRzSTw/
PTI/QEJ7JEh0PmN5cmNefnwkUWUrX0UlUn5ECnpVYlY2RGlAe3pDJkBGVmtqU0l6PV9zYzFmK1NX
RSV6RVFMU1N4RW9gcFMocyVfT0FgbncwV1gyWUNxZENUaXNobgp6X012WWVaIyF0e01uX3phVEl+
RT9zYzBJMWc8KU1PPyY4Iz9pKjNZbisrYDtES3xGaTVOQyY0K2RnaEtASUwlMl4Kelp2T3kqPSpL
cztETTJNNEV3QXp8Y3RYWHpOcTRIUXBXPEIoKCZhNDsjQG9BdmgzPGVMPzlPc2RNc1JvLTxrdyl7
Cno0JVhzZ2tLIz17eHx9Z0sqNyt5P3t7VUNheEJBNEYtKDxVKis2UiQtU2tZNXghMHRmcm5zQGZi
dWx5QDJ1VjVxSwp6UWd7bVVjVCEoOGk9fnsjbnpNc2BqXkJZbz8kaGs7KUhYKkBkUUA9NjJ2Knc2
eCVyNDAjYzI3PDZrJGtOVFIoVjsKemtMP2NZeGQ+Skk7PU5lYlolWkZCZSNjUjlyKVUtc0IkSHx+
SkdVa3spTVM1IVFgRit7YClTdUUkbE9iSjhmU0N4CnowbmNBP1QraUUpWmVCLWwkMkAmJVNhbklH
WEJidlQ7Z3BVVFhROGQrK2c1dVROPjFBcXArUGZwUGFPIVdNQkEkNAp6Vz1Tfjk4ak1VUGJ8M31N
Qm1zYXZsPzF1fDQzSW40Tzxtc2hGPjNEMitPPSZoUSo1ekhUPmsoWHc7eiRNaSMtb1kKem1JZkFq
a0l5YlFkNG1MZFMwQjdBV0hJR04xfVpxNiMkLW47al5OPGNNT243WjthMUMzenBxMlBvNThtYlMp
MCF+CnpESl87b2l6dlZsUG9PPTBAelNXPlgtY288Qit8S3o8MGRpejk+PWFMMSQ3SWowNmVWVFVQ
dU17OV9OfiMmJXtALQp6aEsqKy1LPDZWbHJ8bCMpRDdTbDk+PzcwNEJxPTJFZSk9JmNMazNqYHBl
TTFlciQmIyZGbGR3TVJ2XkJVZUMmWiEKelllSEMkbzFSR0hpdHtadSMxYlhLI2QzPjBRWFdSbzc9
QVVzYjk7U2I8Vmopbm5fRDxaa3ZCRkpHaH1EZUlLY2RDCnpETU8hR1NtfiE7e188TEUmWT9VU0gz
STBETSt1T0tnTF5ZNUNqKTZDd1IwRD9sVzVZfWdMd3w/cSV2PWc8Mno4Qwp6Nj99NHA5T011VUNH
Mnt4dVlCXn1ZTFJgUVcjMURqSGMwO2ZYUlRyMSU/NiUpd09Gb1labjZTVEA7RWd+YV9KfVgKekNS
SmR5djJ0a2JnWGlyQHhTVjhWdkNwWmlua0tvYl87WE5hKHslfUxDZCF1U15JKER3NF9jdzVVJlZj
S1lpQXY/CnpZbmp8Y3A7MU95b0c5ZFhCdi1mUy0/UjFKbEpNJDJLQXJTaTg3N2ZfITVMNHI2LTtK
RWEoMWU2MDR1b3IzWXlpUwp6MUBDPnUoeEVFYShxRTNwMGpxcEtAa1hhRDw7IVl8WVMkX2pVbXlz
fTR4WGZlXnNHK3tfQGBMWWIpP2lDPWUmKGgKeipeP35aWUlHYDJlTFpXfkcrelZ3WmVKRVFue29E
dGQ+P2Qkbl4zJjdgJVQmfktQSlhsQEJ0KGZrQHJGR2l1Q15nCnppNWhRJUhCMCF2dmhfUEB3bV59
fkdENnZybE9XKE9HVCRnOW9Zb3hpYSMydXN7RW1wPkZZbkc8ZV85X3VPWEVFUAp6PXhSfE44aEhI
Wm5BKShCbHRuSWgrJjVzM04kMW52eEh9dXpaMXJmP19VZHpMQm0hQTJtO3d9eG93P3xIYjYoKm0K
emdad3dUPV9FNnt2fD5uWkpkJVpFMmNmfG5hQzRtSjBBT3ttMW5+P0xOdmNmbz9OWSFpRHw2MzZN
bXJvPCVBTklGCnpvY080PFopV2RyPnRtKmUjVHF1MVlqWS0+RSZhQGw8JGxqYDUodzA4SUJtbjcq
dkN3RHQ9fHAhdUVmcmx3fDNDVwp6MUVZb25eQV53diQ/Y0x4SzklSzNWe3IhTjQmR2FARCFubVZT
e3xFdWFUTEJwWV9Kam0rO09gOy1UdCtzcm1nUWkKejRDeU08cERiM1ZQcEV1TyhyPV9rVWt6PUpM
QUgzcys9cDxeOCktU2xQeXg8eE1QQWY9T1gyP2ozdStQIzJHYVVpCno/JWB0MCpKU3hZI3tyaVpC
bSNiaTckVUspe3Y3SnA3VlVCdDdYPUFiTm1MYShpdC1PcWFuc08+JWxgbWBZV342Rwp6N3VzIz1n
YztiMWVzQX4/MmFrSG40LVZVa3BXPTFZISglQiZuc0lqWUVuakx7TTVae2NUNzJPQ14lVSlRQWQm
SyUKendfRjJ7ZXppRlJMOT9JaigjO21WWHpMcVZObz5KVkt1JVNncmEmOUw+QW84OXRUUlUxak5V
RD0oSnQrN1JaPCg2Cno8IVEkU2dvKjs9MEVgfVQ0bjBMfF8/LUJyXmArQytAX2t5P1MpaUhqS0ZZ
ezBDSkUpRTtnbUJ6KGllQXApeWBAYgp6PD1Ec0EpUzdOZHd0MDJmeFZwVE4tYSNZRG1TIWlmYSF6
WVFQbmc+K3o+WkpAcGk7UXRqdH16ez08RCNTVTUrVyoKej9leTYwcG1QfHRZbmE1NjBvOVhuMG1n
RFRDensyJkBRJEh0N1ZDPUBQM1FRcms4Vl8tTHNGfCNtWFQjRkI8T3FBCnp2Q2o9Z2FWY2Y7bkNF
cj8/fVBxN3JFaDZBRzMlQ3lsNmhjOUJNQWE3VUJEZldQRUJtRCFgUHdscT8qSXIqfWtEfAp6ZExu
SHUqcHs4KFdZMyt1STNQRjZ2PCF8KHU2X3NfLVchLTl3WVdnMk9RfEg0PGE1KENFPlYqQWJVU0hO
cFc0XnYKelFNfEJDR2c1bWc8M2orJEtzPih6YUxENj1ST2JOdUBtRmxgRWFULU9rcHxNX0VUSDZM
ZnljZDl5UERlaTYwI1dNCnp4UXZITSVhQkxfe0puQUMoPmJjQU04M0RPYCZxTlBgeSpTSWokb1Y2
XlReeD1HdGMybytFR2VtcnomI3lIU3tgMAp6Kkl8SWlrdko/RGUlMX1PazQ1XntxPCQmMXcqSmk3
OUZIfVghTUp5U212V0d9UFEzS2FlZC1TYmRedjlyWUdRcCoKeiRoc15SKGNWdFdBWGJxWEglQSg9
e3dGKEUxRH18MlN+R1k/KTVIMyNie2R0THg3Mm51KSRQMktteGpoTCY0biglCnpkNUJTdkdzWnlZ
aztPUlNgSjhYNkpLPFh0P1dYNUI8Q35jRUZBP2gzWClhPSNmMHJqMiZOPSsrSFpwOWlFPllWaQp6
ZVlucTkkVHw2YSYjJEl4PD9nbE5gNUVLNChxKn1XWChtUTJyTyRXayEwVW1JSUw9Ni17e1k1TlVX
anB7K0E+P1EKekYtTEk0bH4pKThqMSFKSm9fcDdJSU5BeX0oSD9icyZaQ3BIKl83OWtMdWBVVzh4
fFNiN2JvQFJ0PVpXb3VXZnlJCnpfTTIhfjA5SnhZYU1FJHFEZTVAdW54ci1LZHNlcjc4cGVCdVZ0
b0NxOTFMezhBWGkxPFRsbj1HWD4yc0JDQHVCYgp6O3heJmxDIUI1RXQtVEhwbWNYVjdJUiN5WjhM
TyMyTWE/MihMRGx5IWY5cjRRbFczWmlySW5JZllDMFMqOV55cE0KeiE8R1FfODlBKV51Y0NgbHh8
Kz96NWVGc2BufWNvYTNGRHVAUntzRXJ7Mm5ZVkM3TVRgUyl5KztPVDVQI1ZgfTYmCno8RGVrcDFO
Z2JGVytjJldWdTI7ckVpSVRJRV9SKj9DUlBWT0kqN3FNM359bHpEYn1aMkprWm9DVlg5JjAlVHE+
ZQp6WDspVXxPd3ojIVFJdSFNMmEoVWVMczA3NGV3fUA1QilVYlRsTmNVam0mOU9hOVY/V3d3IUp8
Q3Z3fj91TktzeG0KeklGKW4zQTFUfihrPFUmbT1gViU7OG5me3EhT3Q0JStOSGhTPD1rP01EREQk
KEJaVVJDaHtwcEFPWjZZIT1paSRWCnpIQVljc3k8TSQ7KENWaUJ0UXdTY09SflMtYyVqI0luMHp3
VT52d2o3My0zQTw2MDtSJkxGT0laZXFqPmw9fCt2Pgp6dCM/KzZARGdzSnd1c0dmQj1JWjkzfXUz
WCNIcWs2JUErVCUwcDdFdSl9Km8xP19nX3FySHc5cHloXjA+JGpScTkKej5DK1hgezQmJlVIRW1a
eyg0KTF9dEBJNlEqXloqcSMjX3NSS2I+fHlhdjVBQjBvO0x7KXt+X2IyfSk1fkdwWFhMCnpyJTYo
cU9PPHs0e0Q+MGshdEgkKitoVD5Ta3BCMH1pS0NJUmp0MTZjITghYl5aJHtPO0RJPUtmYng3PSpX
O2x7Rwp6a08rcD9Cfj95eWxlSV85XipBe21jbTBnfHJSfnd2Q1BheUQ5VStRaFJtdWJNbDFSV0xX
N0M/eXNlQz4wOSpyeloKekooRHhNZCVpXnNzIXRkdnJnPTQtPXV4X2lzI15Vb3skX3QkdDBkKGJl
QWVvY3tTSmRuKTt1ZSE9YHZkQ25yd0A4Cno8X1l9T2IlbGIzO2EzZ3dGKGwrNE1hTyFoZVdyTVIl
MllPYiZFbT5fXjJGWD9pQHJCeFdjMSl4RXpnOXQtOCVsLQp6RTJ+P0hCMysoclFsQnF4YS01IXt2
OE5gVHRaQ1lgd3pzZktpRW8oNlhxMll9PWNmbGdwIWNuI0t9R1lec097UzQKejQ2IU97TGFqQV5f
U0VXcEtBK24kYyVWVjlVKTxtNXheckp4Qjx5eGhWfDRSU0RKe302JXNvb3R1QDgoaj14PCo4CnpQ
X35CWkZiNFJZZn07VmA8cCYtNVY7dDl+Y3FoVTNJO04jKWRea35qTD0ySWVTY0BZPitZYXR1Q19A
Wl5oOUtrdgp6KjEwUnxQWTJsRU5VZzBobkI7aFRsbnorM0BxQFYoczRkMSRHMCNqXjVYR3JWUk44
T2x7enBUPiR7ZSRjakN9OUAKeldefiVqK05YIV9IRnhsPmlmQSFVWjNYMHc4KmNONmEpQmdWNzBU
fjg+QntGbkVnSlQoO2YqUzVYPyF5b1d4X1BBCnpEaShgclVOT3FDYjstIWpRQ2U0KmBkcyEyWWko
I0JNdE5CLXs/OU9XUlJzQlExfEBQYjZ9S0ducXBlYC1zb0ByYQp6LUtfTmEjbk1Renl9VkwzVyg0
JkJoRVR3SWI/OzdgVnk2Xy1VUTJKQ2BqPVh5PHhXb1ZaX1FkP0R8OUw5ekJQfCQKel9GYiRSZUFZ
PkhXJjJzUVZEb0BCQ1JPQk03aDtjOzBDXnlqKXxiT1JIXjE9NWkhQyphOCtiSzJaS1UlcFYkYEdh
Cno7U2JRYk9iaWlASUxpRyVIRF5oPChIYGdRIV4zUzFkSCg+OW9rSG84NyNASEMkRzhIb1VnKHoo
cmsyeGU/UGxfcAp6SUsrXnZLRWlUWSZJU301MHlCWnZ0IyNDJDIpfTE4enQ9O0tvamhHbi1hJX0w
K1RWP0B1bDJvQ1NCP21EYDg2QnEKelplOXlnPmx8JDRtUEd7Y3E+XiE3PD4wSEFAZWpmNmRmSERH
TWBMKFUzd1M9I0JOMiNDb3ZeOUZhUDBlYmpFO3ZLCnpTQ3cxJVp0cW9uQ2VLZn4oSmw/X1lTTVkq
JD1OWDZTfV40OFdkUSpWa1EqWUk3TjM4alQ1MT4zT1FjXn5NdV9yUwp6UEtESTJlbyVIWWd+PW4z
K0AxentTMXV4ekpWYXV0eUVYay0tdyVrWmhuJjV0ek1zPU9kREM4N3NLZ2YyPkpqUU8KenVvSjlH
dk9KMWFTY1YqS0VaSTxiI3lHNjY3NUhaTkxLLWNfPFRzalElTm1geE9hUFEyejtiI3ZkRmxGQVIq
Qj1eCno1TmZ3aytpNXJVYGZiY2kmMSs9UjZwQlpEN1lZdGtYSlk7MEdDPF9rWm4+LTgmMmV3MWMk
LVVDeVZJR280QUxAewp6Jit2akQ5a1k/MXlpYCR4Z3hZQ0c8KigpeVl4X3RrJC02R00pNit5LSl0
PXReM3lhR3MqaUY5P1RiVG9pMnxZbkEKekB7VWcmX049TTJvcFIzZEQ1c1ZKKGZ9QW1EaVdpaTNf
QjZYQW1nUHZgZGdiX0hWZXk1RSt9b3tBVCpJKCR2V2luCnpydiFZczlDaHRoPEoyQDY+QDQyb09t
RmRtWXstbGpDbnEzLXBIM15IVD5RNl5Nb15YP29oWiZyYHNpNWo7QG4obwp6KE9UVCF3dyNqZ00h
SWFYWSphVnxESCtJQlR4U0Y1RTd8UCk1bnl+S3debHdTKGVBRF8wPngjUDtnO25rQjt8XlUKejB1
JU0hcFR5VUt0YV9GRylLYzVXY15wV2FSTGR3PEA2bV9AdTZ0TGRYJWN6WHdzdFhfRWY4IX5uXkN5
OGR6YXQqCnpQNGNsZ0MkZiskJSZnUjtucylxdTtHTUNiRytJZnUoKXhlRUl4R0pHaG9lZ0lSanQ7
eWQ3VGJxUj1Ucj5NPFZTQQp6SkJreTlFPHBvPmxfTmNJVGZSOChkfG5hb3Z0NCpmO3tMPElkYjJ7
ZVI9M2xubEYyd09QJXV6a1B5bGNYNTd3KHsKent7UlRzWHVeRnIjRnVtMyteOVoleyspTVkycCN6
SFdGK0E1Y2RkRSF7dXxQfkR3OVFqdVZ9aHRhKWRJem8ybEh+Cnp5eDhTUU0yYlY2NC1kRUxTNUFK
YE52ZkI5dEA/Q2tlJEhAS2xxfGQ3VSV0bWZzJWpSSl8lbDx9VmdDUyt4bmR5Xwp6ODVsPDBLMlJC
JGBrYSUrZDQ4WHVVUnVTMDFsYHtmQ2gme35hPTB+UGApKHlIdyRndVNUS1MoV2xpOEpXeVNrREoK
el5OZXRQWWhtQFQ0VlZkUW5XMzkqYzlAOUlafjtqbEFDSSpaQGJ6ZFpENjhHeXh4SExuRUs3QCZ4
cGBITnt7WDswCno1O1lHNi1NKj0zcXJyMH0pdEdgfGNPPGRBQDg8Nl5JfjxWTWBFazwjOUFgUHZA
aDhVSk9JTmt+V31vMUgxWDxpZgp6TUJpKz1RKnlgYGw1JTJSelBTV19ZcyMqKntSU29pOVp4P2ZB
akxaczJiezBXZmJxYzN3UCVmTDteQTNzSEFAIyMKenhHNTt9SVBjVTlnWGwkYkxrJWY9JCRqQGFD
eUohQmRjUHwodWtqYmVKdT5kdjdRRTUpWjcpK1l1JGk9Xl45O01OCnplKGNPYjlQajVOP3xXQV91
TztySGJsRWczeTtjaWRnKFZoPXg2MiVHTEw0NERibUVPUmBAXj17bD1tSnQoR3lXPwp6KG1iMm5k
ek9ifDAwdFFYR1Z8QiZfTil5bT5lZndhY3ZqaEJndkR7VT85YUVQWm99cHxeYzthK29mLStRY3di
S1QKenY7QX5EZGYxa3FCJGNuKHdBWmdxTXFFVEpDeiMkb3BxZ1I/JTE+Xnw8fkg1QUJQU1UzOFJE
QG9KV3A8dGtybCotCnoqZlE7Y0h5fnJhTiNfLVE9VTt8UmpMNVQke247LVhUeng+cmFyKDlHb08q
ejNlSjtfMio+Vn1BIWtxSnVwUVVXQAp6UigjeWcpMWslZnJxP3QhP3JHaDRvNmVTUytYUWAzQV9M
RCpHSk93dj45ajhyWUpNQk4oc2lxdzRMNEduSVN3QEsKekxPKFNmOEFkbHBwSElyVWVLU3ctMDtH
NEFTeyUwViZjQ15xQiQ2UUd1fnNlZjRrPyFZNGU8b0NOY1Y9QFBFNiZjCnopVUgrfkMtS2Z0Szkk
V3BKUjBSdkwjSGZDY1p6cDloUyZjOXd8cXE/KHpMaiZNQUJ9UylaRE8lRmdYRjdsQXwwQgp6Tz1O
MTVYPlkyLUNBMVR9SHNvazczZHFZUWE0LU0+ZnlkVzVzX28mK0l8Y0lKU3I7PWFaRkk3THZKUUhR
NCtyd0MKelR+YUc2e1dpJTRqYztXN1dGKDhZKyQ2SmVsNGEhWEtTNz4yP157QytITVkkUFJxOVB6
cXQhZUEwOXFBZShpX2JaCnordUpNb2lNUHh+Uk98bEZ0djI1Rlp3RWBVZkRkJXhvR1lFZE5BVWhS
dHZmOTtKN3tCOztqVCleYXdsb1hQQEBOYwp6eCNRZkEhbWV0KjV9d249SXZ1LVFTYX0tbSlyIz5M
Jk1pPExyeyFFOVk8QExUciNCbGt0PUdBcUdtQjAtZEt8VXAKem0zY005bSNrKjhSZ0NRdUR7cWlz
PVp9MjwwNk9kUnBNIW9hQGVaNDdzbGxQQHh8V31KODhBJjQreiZWYDA2RC1RCnpfV2JFUVFSMUNy
O29oWV9sY2ppdlFNISE4N0dvTE40MXREbXU8aXBMe2NBUys7O3JTRGZWeGhmc19Lb1V1LWRSWgp6
ZyhIV0l2WntsQzMxLWVaKHlKVXBjOCRMdV8jY19xUDJsNktsWWkhT3h7alpGcVV2ZEdgZ2otQ3JJ
YlFiRVF+bGkKemZqendyTVBaJDVSKUNtO1VNTnFPODs9O093XzNBWSQ+dTMjbCQ/anBIUHB3ZD0h
fVlGd1ozVHgxJmBZWiQ/eUxGCnpFYkNyciNWZislcXw8RkZENmNie2NhbFdJRkcxUiE5Qm0+aHVV
dlFTUzFwPTNSaDVAdU1JaGkzT0xxTExzZil2dwp6YzhyaX01KWZjZ15SaTRvY257cyVgU3psN1FQ
Q2NDSSNRX0FWc0lafnh0Y31gMUdkeEVSRlYxRE1XcEVOPzxWR2sKekN5NSFxY3pAUDFqTy1aQ0Ml
MDx2RUdDMGI1eTdXa0dEZUBtPW5DPlZJcSZ9ZipReEhGLWI8T1RGS3NPKU1qPyE7CnpAJnlDdklI
OytKZE1oNUJHVzZISF9XT0BIeFlII3VlWEdsSDVud3J0ZnNebWpnd3JFeWE9XiQ4TnhuczU3cGNi
ewp6eX13JVpNOzJPanglKTx5WUhiKm9qbDkpeFNKP2ptXzNBdEhAY3lZZkhSWmd2dCp9TkMwcCsx
bCZxMlpiWUpSbTgKenozOD81ZFlYU154Z19iekZVc3VsYCVgS2lNMkw/WktRVUo0Y2RAUlUhfUBO
RXNoTmBFMmVsLUxXMHhSfFcwOGFUCnpnRz1JMTRkfUtvbmU4cW5vNm1CdyNGKntRODJlfTF4ckJL
amxsT3QjNzEqaT85XkZTO2FIe0d7bmozd2A0Tk5fMQp6R3Z1QVZOMSRLbngrYV5ZK3YtcTdib1Jl
ODhLV3UjSn4mZ0heKnlAUUVgdlVVdD9EMFZ5d2R7dGstOH5hZ25KfF8KemdrbmhLWEJpY1krUCY0
emlFcDdZdDZJWjNsPj12WmJIKzJBVzE0UHtWQUU8NDBkcnw7V198NTZqaGBWQG95PjhQCnpGZndw
Q0lPOFczcUB3UVNDIXBVdFg+Tn5QdyloMm9zQTw7SD45I1I+dWBIOV4tOTxtMUhWd0dpaWdFend3
TlVYXwp6IXY2cGVVRTJNRSpEa2d5V09JWUlNWnI2bHhkMUJAI3tnRHRweyhsflJRRVF9X15OeUI4
KDs7cyZYaElAZ0Q3Q3gKeko2VHRwOVAkb0VEO0RFWSl+OUdiKj9GdV84IyNZMllzYlJAI3p0fkZX
TT5Bc3tlQFFmcWRodVo5c2JzYkJaUS1GCnpfVlY7TmA+aVRfU0JeN3RaMEpybSNVfGlBJjNsS3p1
WjNEaHNiRHA0NT9ZeU5TJns3RmRCQmNuJFlHYUA4NmM3Sgp6b1EmLX01bktrRHJELSRYTEZafjAz
bi1DVTw0QSM2JlUyM1lodE9Ca3h9VUBeME56LVpZbnkwcXJHYzZTaFRjSVcKelkhSVVEQntxXmI1
SHJ9Qz1GRzhEcU43Zm5UZlhnZEhPakt1UmF+a35yRVFhWW9IZShAe1IyPz1tM0ljMnJkd0hCCnpY
KWtFPEszIXMyR3JhSUoyKiVHJlBlTDx+VyZOZV5CQXhzI2NOUCV9VTRvPHpOTXNvTiFMS3BWZD5k
IXQ0STlHIwp6Nnc8WXk/QVVkP1d4QnQ9bj1LPV5tJH1BckthYl9+M3RvP3x7MURWXmJlbVk+eWpA
fUs/Wn5yPVAwWUBLRD41ckYKeiMhRTNIKUN9PmB1JnMld2dzRHopWkpqam0tcjYtT3FAIzFzdzRF
RFUpVndgeXNhUjxqbXNUUThrM0Y7bl9MVTJmCnpAKUNiY1J0ISpUN2dze284LUZ0OUJ4NThkVyF3
WEY7IUZ9b2M+fEdOcD07dGw3SmtweShEK3ZCKGo4dlhgNlNnTAp6bU1lRXE3X2RmITkmeG1SJkpQ
M31iSF9MRktqWlJ2JGB+fDVyYm5ofm1pdU9TWmhgWVI8RWw5eWF8YWAjSjt4UWIKejk5NFBMX2FN
MW5Rd3NGeCNlMzNzVEBFKT53Ym5HYStGZUdARWp8RHA4ZD5NcTZuZE8tezhoQCE8Q3ZgVmQ3bzA3
CnpMKTdlTmdycmQwVE8kWSMwOUd5cjtAPlloXipBRll2M3ledVlFIyp6d2NlfXR0OVJRRmp3eUY2
VX0ya3MoQ3xNaAp6O19qdTxeUmZ8bHlMTktLMDAmSGRiPT5SMVBuSnNsaG5HQEg0KGFONG55LW1H
SGY/VE8/QUNnUDxtXzJpRGB0ZikKeiF2bWFqI3lHLXsmeCpsKzdEUXNVaH1sSHVCLW11ajJZen48
ZGlKa1NfJjR3WXt2ekRIK1RZcj9uYF5YNk9PT152CnpBMG9HWWFDIT0tOz9JTHRJJWRCO205KVlq
RUBpaDdgTXpvNF9OZkplXzRsY3pRaTdZTm57UlducV9HbyhYNiU7UQp6OTV0VmduaDlXekhvOUFO
PEk5I3slQlFnJFhUTjtjZjI0UyFaPSkpWlQpZzAqU21GVjxXYUhFdj1OeG1JOyhULVAKeio1a29p
SSU7b3E2cCp+alplbjRYR1FnYmlrXkNtUCZqQFJKbVljNVcqVmUwWTErMSRpUFomNT5VUDAtTzIq
fjxZCnpJRW9hamQpQmlyNTFVdVIkeTFpQT8+WmxkSD9tc3p3cmchYzNeJj96JnVldk8hU2IzbUlS
KE1QWE9vZmJVVi03aQp6OFE8TXJYP0hNYjhpWTMyRzd8KnBwTztfPERvM0h1SmFwcnN0aSolRWBz
YS0tSEVtfjJ5MVBsbFBqPykwZDQ2R0QKekdFVXdKIXNtZ1VkKUx4MnsweE9IVFUrcE1xQXg2TkIk
ZWFTPHtMXkV4TUptR0VzVSFDbkA5dVg+dDIzaUkjOHQ7CnpJTndlQmVyS2hZVnI1ZFNzIURjRW9e
UC1DXil5V2leYCVRbT94Y2JJcFM0MWdUcUt5YHFpaytnMWNRKXhKbEJYXwp6an5mZUZISHF3fWhT
cHJNbnBtXlI8UXlFWisoXk1BbDUzIyZuV2tUQXt3Y2gpWiN2RU4hcSR3Z3p5bHkteGJkOGYKel9a
YntrR21TPlU7NXdHODRkUHZ+R1RiTWRBbG5+QlZwTShOMDBlZHd3cFIkIXI9Kyp2e3NCM3xqY05R
Qk9KfnZmCnp2QVVMPDxCYy1GVSpDeld0KXdBUXJqMjFUOWplRH4kflhibkMjTkVeSFM1MD1jeEdL
OVRkaVZYYGktQzN0PEFtUAp6blk5XzIzYjlqI2E4czQpR0JlaCM+UlJ1S0Y4blQrWD9Kd0s4VCkl
I017MUtkbHhOeElrK1hKaSRecCskbHk/PXgKelR3Z19Vc08rK3FUI3k1Q3l6Kk87Y3t0P3Z1V0Zu
ZSpTeW1fSVppYSlwJkspOS1wPjZiNTIpemNoMiQzdnpjRyE/CnpCbEN9IzFKc14tbiVVT3ZkfURY
NFlJPmMlaT5QVUUtcColaFRUSEJSN3YkXyEjdXQtfTRoSXo8Z1Jiczh5U3VBUgp6TGV8b0lFRHRL
P2J3ZXRne0tgKVU3fn5JUVVBfnYlKXohNjJaOD5mdHBIUF5QdHAmdHZrflJ3O09jVCNhOz5GSWIK
ekRQQXk1ZTl1RCMzX1cjZSlOeT9fSTZGQGFZRmUkTnNGNkpQaDRTSTkzTlJTc2E8XlAjLW8wQipA
ViVvJHErMDl1CnpHc3xVWHZGQHkqeClIfjhzNTlsVz9jSz04JFprNlVSYHBqcFJMTnRsU2lDeG01
MFdje0ZpUHYhMGdlZWpqZDNeTQp6NHMzaX0xQEBEdndUVWlPO0VgSjQyK24tSyNxKlBzJEZNbyh5
dks8NC10fGR4RjhscjhAVy0pRjFNRl84RktIKnoKel9Xcil8bXh+KWhtc2AyRkBiN2BHP2V4Z1dL
QDtucllMfGF6U3BmX2U4Mkp3RDlPVVBVIz1FLX5lcV8zKmdseXJyCnpELT09MldPMS00QWRvfERF
WDNybz9AP2Q7Rll5a0NiM01oaG1lKzd1aExwXzxraWwxKz9JUi17YytHVEg5fjNSVAp6TEV8fVpk
fVNvTXleWWp6THA4KjRNJEBZX0Vnem99dW1+SXl0Tnxhd3l+VFFKTno+PTJAMUB6aHslNE9rJkp9
JT4KenttRE0qSFRmS3pTTmEwVl9qK3gkXl5OcFBuM0smQ01aNER8MXxPTk95RyFfaXNgJDU4Rks0
SWVubz9NNCVxTDRXCnpYbmZeRDM2ZSV+K3ZRYHpedX1eQWpNaShYZl5gZEpmKFVNeyUxbEZEJG19
RkFoaSRJZCVJeyZjVTsrV3ByQXU/Kgp6WjgjOzhYfTdIeyNvQHtjcXg8TU5GM2I8ejd7PzNBSEpx
eF5tWCVgZj1sKjkqRiFpRnBiMmFDMF4zY3x+KXZkTEMKejNpQFhebFBlJlA/OTkhKSVFeWh9QFZp
VE8+PDQ8Xz9ZdGBgI25nVXUjVnQzMUVCUzYyMlVaO0NrU288QilTdHV0Cno5PWY+SFY3RmBPaClZ
WUkqbytYJE5tSiRueUJXd1IrekBhJiltdSohKn1KcWA5VkNFKyUxajZ6Kigwd1I+Jjs8Qwp6d010
UUxvTnBKfC0wSDd+ckNYTDI5aTwtWCpEUyVQRzxyPzAlX1EyQWBCK3s7cThufFhmT3p9ZGZeKnhQ
XklNaSkKekJlfk5xWiFHUWFrTT1VNGNBN2FKQXRNITElNDV6eFJ2U3FAYzdpKXNGQDU0Szloemxy
Tz5IJE5gMiphaGE1MDR9CnolMTsxZWdJcW9BJT0pR0h6VlJkTGY+M3VHTmhIfFpePTRvKUlQNUUp
SUEzYTtYfEkkMjBFWVpjWE4jMnZ0a2tfNAp6YD5jQyp2R0NxSU8rRUV9TCZDVlFWa0l8bStLRlIq
I3tsaytBbW9xLXNXcHBmO1hOT1Z0NEpsY0dHckV4TTtJckoKejVPT29eVHo7XityLUQycTtkfWlY
I0V8Tjc+SlQpUzdTSjt2P0Q8aVBFTnI4JSUxNnZjNDZUbUQ9PWQ5Nl8/NTRDCnpUZzFBSTVeOSVQ
Q1klJVByNmRYUnhvNUArODwqdUlgZWJfNVFvK195PUp2SyU/KjlOTE88WkxPSHlQN2N3e08ocwp6
ZHw+dV5QbHpzYm14PyRmakU5YylCYGZBRDQ2Nn5JZFg3ZHIqUHdXQlQ9N1B4WjB0MDw3MWkhI2hp
cGtASX5rOzkKelFnOytOMmFaa3Y+MERRYkhIKnVNS2VSTlBaOTA4UFpCaGk5O1hfRmhqaEo4XmNJ
MGZwPWNCTiN1WT47cDJ8UCF5Cnp7Nl5ETzh3aSM9U05tOSFObE0zPCRZb3V+YS1AO0xfTzhyUmdY
Wj9PZTdrRl9ldXRaYnImNXhQc1klKlRUe0tKQQp6VzRQNlBIUkdLJUVvSmQ5Z21zX25hcGc7PjZ0
eUhJMGw7enxIRXBlY1RpY1YwXlNkMmt3VmB9MFAxTSZHQDQlNloKekJyJiQmeHFzczEwZ3lTYlp+
ZHE9ell0JClfaSV9fDMhTmlRKC1MY2lUYVQ2fSt+Z01uM1Ywb2NhN0JGT0cmYXtTCnpxYHIlQ0Uj
QjVXbER3PnA8cUhTaSplOCgxdlQhZ2wkOWl9ckR3SHxwcn1nTG0wMDR8I05gQmU8eU1EY05KMXNM
PAp6QGZING9ZcEhsfFFZb298Kjd0fn04Nkg4OSVQTVlCdWA7O1lhKEVjZFluUnUyRlJmfk5vI3A8
cWU3NzJuYEZxKmkKeiM4dXUjVzRre3A/ai1oSkl8YG1fe1U1e2prO2dXajxaOERQdzJDZEtjJE8j
dmZmISY5JXVncEg4TDZ6VXRVTi1OCnpDc0VYOW5pJCY9c2JuJWwhKztrYkY7blU3KkY0c1hve1hI
K05rMSlxWSppeXB0UTluISpQckJhR2khR2BKKmwmVgp6UGlfP2EkcyV4MXNyUmt4NFBOKEh3elMq
Ni1XZj9nYlJ6XjYyUko9RnRFbz4xKilkdEtIMmIpJVhQUX1NV01VJm8KeiE1ZGZTSkZzI19HdXg+
KCpMZG5nJn49Kn4wdUxaKzFmMUsmQnhNNEtpdll+MFpycWZ+MmlNWkw+KD0ofFFsbFI+CnotcEpp
JEBUWDFIdDVWJlApeFhIYFUxIUYzbVN0X0NXSDNOVWo3VXN7ODFRa3N6WE9gbihMN1o8K2dWUSUl
TD1DRwp6K0h9Tm0kdmJFNzlFey15MUUwTCF3YlItN1peRS1qOS0oIWtufkNMKGpHI35FTFFlc2tY
bTAwckcxS3hqbzJxeSUKelJfZmw+S317X3M0SFFhSWtwPUBXViFpJXNjUmREOURycVY8PG42bChH
X2hFRGRxKnFacn5FbXU7M3U7MkthQkx2Cno3OH1idVo/cVh5UGIrTGV3bCpXNG1eaT90KHRLZyE/
K2NBaiF9aHZlejJBZ3hpSGxPVllpTnBJQXpUKm9va0ljIwp6RGYwbE5XTS1gQkp7YSlNa0R+YU1Y
VExVRD9hSEx1QipJfmBFdmAhalFgZFV0RnhXV2Z6SHlje3lCJThlPjleVzgKenB7QnpzPj0hYTAt
SW9KeU9BSWdGSVB+TjNydyZMLSZNVFJEXnotTy1SZ0NJSl5MKDx+JF43aWpKNkdfRHdBQ05gCnpH
ZjsrWUpaK1pWP2E0PGZNJlhzbGNMQ0luR0JgRHQ7eXBeXlIzYlp6ZnFpKGEhUmBXYCUxUU9eND5q
elhybGE3aQp6T1BmWXBjPG92dW1nX2Nec21Rc0pReUMmdWskSih1JGl7MCRKfkd8LTlCRyNCQDxW
NSMkMWBiYkFLQigrNXxnK34Kenp5fj1iOT5ueER3RFQ3dnJsV3E+KGYrcVE9WXh6UTw1RzVDZEVt
TXB2dzVUMiRwbGNmJjctbzw8eEdXO0kyaGcyCnpvQ2YtSFRYczZ0eyokV2Q4cThxQChwPz5AKjRR
eGxjcC0tdj1XKmx4b0A+QF56aUtUQz5QPTFeTHFAJWQmZj8oUQp6QnZGWHZTOVpxbzwwenF5MlAo
S2VtOU9HWStER0JYaSlWdVNUa3YhbWhOb3tWY01DTXVwbX5nIztuI1VyK15lK1kKelU8VD5ORHJI
flZPVyZnUUdnUm43Q2ttQGE9djM3RloqUXNpR1YpdWRuakstKkc+Un1JayE4eVJ4RF5HSTtaR2pr
CnptRkUjJk80YGtlPlV3MGltViRJP3QpPClxdkZEWV5JbCYmQ3Q5TDswenImbDJVMmtFdylvcmY/
cHJ3PkJNdiMlYQp6MW1ueUtQUyFubjt9fCl2azZROEstfXN7YzA5fUpYZ0hYNyt3S2o7RiNCc3w3
bHZ9ditxRT5DQ1F+OyEkZnliPikKejNUfWR4SSVgTC1ScmVqJD4lJGMmKXN3cWo2YCRTe1lufm1g
ezR1R3Zob31EbFc7I1UwN1QkVHxqNXg+MiRpRXxUCnpvfV5jZi1GVlhTUmhAOz5xLWViUGN0VSNj
RzBFeD1VZSlhU3stTlI8eEwoJXBUOVZHZj0+b2MxVEUlUTxqQj10PAp6cWM0c1FUUE5QUm9vQiYq
QUZ9WFcjb0A0bT1VMkxpe3czYCN6LWNDQmtTaGdAS1ZneGA2fX1SVFgrdkZHZCoxJjUKem5hX2B7
SWA3PX5RZD9Uems+eXRVPmdyU2VeQ25XKyVibmZGYjY2VS10MEs7XnQ5K30wKk4mQlVSTWUpbml8
cFRHCnpUUWFldmF3JiZudmczbDs8biVuKEp3M2RhMWhTcl5wJmN2SHI4YzdaXmdleUh3MT4lZDwj
JVUtYWdifVAoNnBVcgp6U0cyVTdPNDlXVSokT2FtWipLQzJBOz12ODFCJiphKzJgVE1nN3VHd2By
Zl9iP0h+ST5fUzA2NS1ZRT55MXoxWVEKenhEKioqOyZZTmNHSTNrcTUmVFZXOzRPT1Yha1F4OE9g
ekV6N1NZe1laQlZrSk5JXndLYD5mPXljP1BfZGtCeGUrCnpnJXp4S3t7Vm5gd0RQYDZEIW9ackoq
O0BYd2MtQiY1TCMoPkRTNHZiSytyVHJnRnM2elF6WVBhNGFSI0MxI0B+JAp6YENVTGZta3h7fWxw
aih8WSV6fn48TUZSVHcoKDRgVChwKzlATFJqRjtUfT5JU2Uke0VBUG59IWRnc0YqZz9jfVUKenY9
aWdLU0lwRylYKVllelRpa2hLQVJfcmowZUh0TVBnWGVXSUlmSUZFO3VUOHRGODkrSEtSZyFuVyls
IXReUX1zCnorSjI4YyVLNFhMJTgjO08yMCFvfi07SCt1N3VLeDJJXkk+cmZ1P0h+NTRnKjNkbDIw
RmZFLUUmXmRsSnNQdj42Zwp6c0MrWjxqPEdZI1ZXbnk/PFE1VXlUckFuWiZLSnZQJHRRcTJrfUk2
bGVpOFV5Q2BuQ3dQfTZQKzc+YHFkcGE1cl8Kej8/cEtQOXhLVjdYJHJCbU0oekR9SipwWGh2R2BU
fF9jVDVnPilNWndKVmNyJW5RdmloNHdxX2dIMV5hWDdqSTxJCnpsPyZ5I143P05XQyFSU2J0P1R+
KTA2YmYoVUFASG15YEI4PzM+VGdga21JSTRSQTJ6fiZNUENzSmBtS3I2e0B6VQp6O2VRaDdUN3lk
d2poNTtlbCZZMm8/PyFrODBDRXJFVXFYQkApaXU4diY4dH4hdHp9XilzenphKE0hdERgJSQ1ejYK
em5PTHFpdVJpdFRWc1JMI1JwIUc8YXl4cWUwR1pzUU87ZGQ5UX1nMlUhJDB0aFlDO1NCU31SJEVq
U2AzdnF+RW9PCnpCPENEd3kqbCNzcF92dlQ9N3xgREYqKldBc1gxYWxPNz1nRnA5Pi1JRk85RHQo
ITRqVD5lMVhmJGR8WUFvMCE+Mwp6aGtjKn44USRiQGFseHp2QFF2MSZyXlBPJTs5SG54bk0xYDB3
N0ckI1VzV3AxeSEoI1RfT0JEa1BCTkNRdUl1dFgKek47cG4+dlFYMEFOMVc8OSkjUlZxZFQ2bytS
YylxWntyTVlAeEh6ajQ+REhGSXdaKWFqd1M2MU1BJnNPMzVOPVhLCno1UVh3ckJaRz9VVyQ9WkBt
KkpiT084VW4zMypTQ0NCQ319Tk56Mzd4cWFZRkowcngoWGMoMzdnaz0wR15ufCYzJQp6akVwNm8t
STtmejc4fHljX3B7MDh6cFpwcHkrekhvb2VvU3dSRyVhcj85S301Ym45a2w8SkI3Q1AxeExHQWg3
NDAKej8hb08obEgqSSU/NXp7ZHU/RSNWc0deP01NbHZeNkY1YH07QkxqP3p5UTxwVStIMG9iKGo+
NUpJZEw3YzByU0ZKCnpBaHtYampDUVZ6UT8jfHpWbzMmLVpyNXdgR19odDhBP2pPa0QhQ1orPUN6
WkpgQntSQ2RZcllOZ1k9OHRsRmhESgp6K3MrNWc4KEk/KjkmdnxMXnpCPmM7b1hRTkVPNXg5cT1N
YHlaK3Yjb3JEXkRMXy1zY0t6THFiWWVzXyRzTn4wT2gKemNfVFJQS14zTXZPV30zXndVaHltQm9f
dzw+c1pRSChKakJPaGc+TSNVd2BZKztCK2t0U0dhan43a2RPZWpqPE5vCnplTWtxVFFgYXUtRSVr
WEJaV2k7KVpLPUhxdERJd1lJM294N1NFbCR6Pz8kfXYjUE1yPkNCTUAoVkVLa3ZFRTBRTgp6eEV4
OEEtSTlPMElRT29YU0AwTGFFOT9DflEkOUFodyFNKUlta341OGI4T0JPNGNMcWFnY0hjenI9QFYh
UUhAN2EKelR8RXduVDIjM2RRaG8zSkZUbkY/ezQzKF5EQColcWMyTkQyYFhEeik4b1MwRChSelk/
dEFNX34pTlE2JUY2RnEwCno/UFVSaDcjK3FkKnR8V2khKjY+dnQqKWxgZFFINW88dFNuVUVeci1s
e1lUfG5QWnBvNT5GKnd7RSNCSGtCZ3RgYAp6V0EyXjkqWFRMVFYpNH0+Q1ohYnBHPUZpfl4oci1+
e15vOGsmczJRPHEodjVgZXp1Sj9hRytMeUc1djtkVThhSFkKektKUTFleHpaKnZVZkQ7S2lSTyQq
KEdMNGI/ZEBHPXQ/O1lFUWJ1STdeSSZxSEQ/PXhreCN5fHA4VDhgMG9rUVVyCnomNz11N3BDUCkx
ZDA/T2lXKm18UmFnV0ZGdD0+TGBYZ0pQUl4qSEMyVjw8YipTTT5nX1QpNVJCQGRjaXIxPVgjcAp6
YDRHRHNsdWVyaGUrazlgSThvWjQ7S14rP3k7P2l4dlc8KDRrc0ZYRDNadG5DY3BQYEA+MEJoNVBQ
ZTk5JnUtRG4KejI/VnJ8JXNBdHhQN2VwUVlSN1lWVz5HSUx0KWpYRSRxPmVQamU0PFReeTMxIURx
JHhEY3U2JExyQitVJm9ZdCRrCnorLW0rTyhYVXtiJCl2P348Uzw1Z0JUPjVfP1JFOXl0MHN4ekok
KTw9cEo+VEVvOElhTzJAQy0kNUdmPz4jIWhsTwp6aXM2T2d0LS1Sa2RxRHMkO3BFKUBWSXplZ1hQ
LX5qdD1MYEs+RTI5RzN6IykyQzNjcDFuUFpDPlFsa1NXSVN0Z34Kems8ek4zOG10elFZcSRJcWJq
S0Z6JWxHYFBlX0l+RVdBTzZZO3d5MmMjUF5udiFlT3tyWlY8QHdaZihxMWE7eCU7CnozfWNVYUFA
SGBIYipJMyhkZG9sQTcla00ydSNsdTcyMzFQcVlpPkZEZnh6eC0jTnZ2NUxLflQlVE5gND1ffEBI
Owp6Q3A9KChLOSNmS2AkK1ZnU0puUmp3ZUt6TV9YVWx1aj45VnNTUCoqeSQ0Vjx1dDQxOHN0Pzhy
eDA1YSswYUklJF4KektWNDV4eGJWYjI2dzxENF5uYlIwWjdYZSFXYFpTNnB9fXBeSGdaNTdmY0NF
PmxVQURrSEEzPkZZbU1yTWNJSTUrCnpoKEE7OVVGRkJkbGN7TXN6S0xgaWR0MW1udzMqKW9OeDRg
dEFNZz98RzFrMSZKd2RFdlJoNUY1SWExJTx0dXBAcgp6WjZ6c0lTOWozTTgjKXluZXk9UypRXz03
SWIzY2ghTlU/YFNnSE8xIXZgWilfdSRrZVEjK2ZIQFFXY288JHNlNiEKeiY4X0tTODklYkc/bzNC
e1l1bUMpOXRYLW08TFd1KXpKbD1RI3IraWNZcjxON3gjNygrX1J6eD5xPzBZT08yakhDCnomSypF
ND9qT0hPXnFuezFmNUZkKTcmYU88b1Upd2UzclFMWXFhTExhVSlPMUBYTzVLeSlrO3A/KTQ4Ozgo
V3xVIwp6WXlFIytQbkApV2k1bE9KQzN8Ylg1WlQhekFQRFkhTDlBX3gxITR2X0tnfDY8Zz9hJj5U
Sk45V3d3b1FPbzVVWHcKensxPEk/R1lLU35KRDtfYGx2NSpPe19NQUdjRVFiZ1VIPEB1XmVyUkI4
cV5sTFY0cUxaP3huVkNpXis+SWt5IWt3Cnp5S3Exb0tffFVTSG1QV1pnQD0pNjc+cHZvZ0ozUT97
bkVKVklqKkh2Zys8SGxFVzNaZnt7VnRTVk9BfjVIMkkmWgp6e0V0K2ghMmJYT3RATWo0WTR2WHFZ
U1VTVl5BNE1CQnIoank8ZSVPeTJTN01fOzU8WCUtLVh2I0wzfXg7Xz1lZlQKejxeS1MqWnl9TEQ4
T24mJGF8NTJgelk2RXRZdWxMQUZ9Q3dAaEdtbS1sNSVebGFtVEdePmJrdThRUyl5dUtoXj81Cnpm
eTRiYkczbm9tLVZgdzB3fW5yeyFvNW9JZSpHO3cqIWw8SFhOJndkQFlkZnt2NXdtOUEtfXp+YE5N
fF9MdjdCfAp6N2FlYDtsPH5IJjRkO3NJeHJ4Z3BudUw9X3hsaTNRNTtfQnA1NENzJXt5WX1QP0Rq
Sk5VRGY+MzBfPFJOMipCdEsKelJuJloyZTZTPlR3e2whRDFVMWFmeCFzTzg1Sj5xKGRSOD19MnY0
M1Z3I0AzfDlPMjVrYn5gX2FLMDNTY3kzMzwhCnpgWlVkTFpFei1BZihhfVg1S2h1QzJoNGZSWnN7
S2pKWnF9elJ5SEhVX2QwNkx3SUheKiU3eEdJWmU8RjE9WnlVOwp6JEBKZTZZWmA2eFUwT1VRWkpW
KGc1Pj0wYGRYUjg/Z0k8VD51aTZ2RVI8Pn4xPmJDfl4tcUt+YndjazBuU2MtI3sKei1uZVk/RmFl
XyVOfkxKJjlseCZTVk89I2wpVnt5aExaNkMkOHUrOGI2S2VEN0xnZyY8Pnd8NEE+Yz1uSEwrMlJ0
CnphZjZlYDlxVWBlenFFZ2pKfEVlcG91Xjt2KlZadVorSytCekstfmNaZz5KejAjZERxQEBxZFEz
b25ZJExfQnlWZAp6X2JfPlA1ZEVZfjhPfXFVP1RvN29hQzdVRVQ+WndZcUZKcjl3KVFzSFBNRkh3
TlkwPUQyfnJtWF9ZX0FCMlRleDIKelVjRD9TTikrVlg3akhaN0BAS3YkP1FeOH5pcH0pQDAyJWxt
IXRvfjxsMW8tN3tUQm9pJFVDPGpoVkJRd0w7YmhsCnplU2NvRVp3PW52I2lCbWhGSmlma1RIKyNs
c3lIQzxGYjNAUj1Edjc+KUx4XkBCLVp4cmNHNWJjTVo7fWU7MUEmKAp6OzgmbntjZm9mJHd2aT5w
ejRvNkhpJXJyQFZ2IWpYb1JaclN3PkVnbD1xcnxhZUZfUTZueiFGJHVNM1VET0doTiUKenEyNzNv
NC1HQDR0VHgpVW1jSW58dGNfdElAK0ZRJVQheyo5SW5NMiZmI20pKiQ7RUJxZG1SdE5uaitZTFhI
QlpiCno5OHozZDEzWj8tSVlmKSg9aUNrMEJPezlGPzA7dUo1PSQrPHB7N3NhP01DNUslPHx5V3t7
VlpfdDBSVHkxYnMycwp6PUNKaW9oTUp+PGQydWdASDJMa01pSn1yMEE7NER6WiZJNihzT3kjPm9F
IUAwcnV+IVU9V3BrMmVLITBLYG0/VzYKekk+SkE5PiQjdXMtQCthbHZlc195ZH1TUChoTGR4cSU+
fUFpQVN7Oz5DPGBWRD5XV0RtQFdkWH49a3NfJlFMPnFzCnorZFF6TCYmZXU9QWFGKzwxNnxnWTt+
Z2hOVFo9N09wXjtzZE5MPEVWT2NDOWJ7Sm5CT0NtNj9DKFleNkBrPmMkYQp6Pzlwa2wqJSUwdT9H
ZVNiPHBWaHFGPGRhbUkzKUR6VWFjekZyMXxabS19P1VtQmhJTnkzbi19U24oZVJve3dGRW0Kei0t
ZXptQGRsLU8rQlRndV5JNik8ZGdgKW1jZWV2OzFtYFR8SFdobFk7LX4pcmd2UzBZR1VDcmo4a1o2
V2llPnxJCnordS1mc1dVRkltMEc9ezQoQTJ1MGgrKGlYQ1g7eTsmQjFKPnpHNFgoYkpybTQ5T3NQ
WmorRmJtRUE0czxOaEcqNwp6PHVfdERxaW5WUys7Zn45ZFhBTW8tUGZQKnNqR0NrcjZqMDlgeD1y
YF5tXmFUWS1AT1gkOWxHdXpJRUpOKVclbGsKej4zfF9ZRGlOQEhmcz5LTzxNaWlAKkwqWGY+bjI7
ajN8eyRxZ3g3dnRkVTxTei1PeHI5ZTdQcnBQZllxJnhAYylACno1c2p+SUIhSGw0QU9JQHQmUTl6
TXAwJH4jSEt3VnBNV0BAQz9BbFRxREk1V2hPcX1wPlE0QyFySHlVQGM/WUdScgp6WUVeOS15Mjxz
bnFgd21XNmw/emczajlIQnFpUHBYVCoqQ3pjaFRIaTU+ZUVIeW02bnA+ZyU1MTFJQkJkKENAWCYK
ekRibilGVGJVWCFtdm1eKEdzeXNmazQqal4pekU2YjUxdVZ4VGdASDZsTS0pZlYza0xrcDFfMEQ5
RCtMY3MrSys8CnpgIWshITdWLXVzYTlGPkNBZG1zJW8mbTA/VmshR1NkOFlqZGBpJHcreSpzN3J1
aXx1OXk4aSUtYip+N1kzVGhEZgp6K0FJPV9zRmZefisobUg3eTx7I2ojRmIjQUFLYDN2NzA1JGxh
Ym81PEYyMnRyNTB6I3tMeXAtUElQSDtMPj5mQ3sKeihedCNDdjF8QWlMWDkrdlcwQnBNbXRFWm48
bzM9LXJEeHJiNmlEKytaUlc+bWVKZSk8Y1RBMkk5QXFmIypiWVZqCnp6XnJLMHNUQSFNODFIX0VS
ZUVATFhGMGhgdnBDNSMoe2o/PiQjb2ZzYT8mcTNCYU5le0MtQ2MxPT5qYng+MVRWMwp6SGhzIVJu
blM5TF5+WElycDdeVmB7dEhgYUJaNXMoeSFoUUdtMlQyd2Z6NDJGNDZEcS0tZFMhSFBGVlJ4Sz1q
VH0KejZ9Jk5ZdDNrQz5QZkxEaHBCVER6SWlVQF8mIUU1SW9hWFRsaHdnOUUzKT9CfHF3e1c3Q1R9
QUlXSGR9bTI+fV5ECnpFXiZAfWlzbyVSRnxHST4+aERhbEBqXlVFazgzcnZKQUNtLW47RGdJNnx2
QHc8Tl5way1Oa2QjZD5yeGJpRjg1WQp6M3EzcXVYOyNuezMyU2hMcUstZTVwQ3F0ZzJId0RxRD5C
IV84bElJcFk0X1NoSDxNYVMlUGN5SEV4RVkpVFckeysKejlzUFFDOzgzWTBgP3xkQXYqPiRyIzhL
WCpLMzhvVClCNT9JcFFIUmRsSlJjZihrKWBZKVN9JH1PX1VgYSlreX5rCnoyUl9HZTczQEMteWRr
TGdPWDlBWjR5dDg+TnAkKDhpcXNEQEU9ZFE+ZTMyVn5LSlU1YmozMWMxRTkwTFFjd1lGdQp6cFZA
N1pSI0BOOXZzbjx3QW8tKGpHbV5NR1diaXhVek9NSyFAc34le3dXemU0dCNlSmRaZDY9SHpURkVk
a30oc3gKelJMSUBSajElOUdEfmxDfXRxQ2I8WXAocyphX003Zk48NHxgKTl2flVgMEZqWT5pI2NU
dXdDdEtse2ZBcXEwYSs2CnpWRVB9V2U2IT1mMmwhRz81XjhyRUg7Tj5WKXUjQ3RaOD45OGtARWxx
ZlBmRE5EbF5JVXVXUl9AO2BudlhpclV3UAp6RXg/WkgjNHZCJnhIXmRVbkZhQDchO1gzJFladDtk
bVQ9RSZkOCpqT0V9Myooe14+bEtwTSVyTzJMfjw+UnduPjsKenVTJCY2UWhLTlVYTyV2OElZbExK
S2xsZnQ9LVM3XyYtaGR9KCYpMz1OI1lHQSo0aGNLQTVSZlVCZEl8bmU5OGw0CnpaWG8zTCZyMCk2
Y2o3X090dUNVeCpINml+bXxfcmJFRGk/Jkd1MUxXWn4/N0xqU1lORHFPPlEoQkZfM2kmQF9NOQp6
bGFzUl9ESXo2eTJaTkghKjB9azlXaFRAVFg7Wn5eKCVualREK2AxITR7LTYlPGd3NExYfVdsNzVW
VnVLP3lmfmkKejtfRkYhSi1uRjtjPCMlXitIfFdJaWtkMGIrMikhbHQ8fklzUlBIJGRlN3VZWEBB
Tmd5PSN5RjRZQ0RnSlpFeGReCnpvTlEkKHZWZ343MSVia3p4SUZmKS14cSR5VU19I1pvd1N6UGkp
eG93OE5feTRlNUBoQjJsdHlkayhgaCkycWJteQp6VVNGdkVKay0yM3IoOCp8VDEjYmZZe1c/SUk3
VUhePXM7fXAxfkspO1lXfVpRb3tydiZgZXNWTENrb1Q0dWREdzYKemdKWndmSllUMlMrczAqcTwm
SFRBcDdFbE1qbmc+PzEjezMzWVVnaH1RRlJub2pKTVdyMyNAVSg8eW9EUmYtdX1ECnpVfDZ2cHIx
fWMtKnE2PD9qZlZkS0RZOFJMXkpFVn0rfTQlSndZMWJVPTIqbUZGbGlYX3J8e0BIYCY2b1FYaClT
Ugp6eDMwdj9BNmwjQ2RMel9zYnVDSUMzRXlmXyo9ZV4zdmp9YW80MER3I1JCZEV0Vml5R1U5UXZC
YCVMfF9zJCQyd2MKentpQGxjO3pJfkFEdTZsMjcjIztTTSZ8dzJTI34kYndAcittKzNVcSs5Y0Zt
MT1iWHpTbCFndDRCWkl+Y0Z+UkFJCnojfF9VRz8tY0tAI2JVOU9wREluT0ZYXjZ4c3BgNnZkTWRA
Sz5HcXMzNSMyKEk9Q2ZldT1nOz4rPig7cEtUSjlZfQp6O0poTTlVR2ZCWjxaO0ZaSVBJVU1RSEQp
ZFNSJnJwWFN5T3FLQDJLZmhIVCpBZUxCXlBqVGNuWUIkNnhKWTFkR1YKenl1NHR1TW4qQ1EpNzVp
PipBeSV+Vj9TeDdgeS15THNATTBQJDNIdEBsfjh3TjM7fFlfK0Umd2sqUElhYEshbys8CnpwWHBZ
dkZRPkQkaSghczdXQGE4KDBJMUZ9biU/bE95a0JHY1lkbjVwSGJJdnhzS0B3JWBqM0JGKX4ra3Io
Xkl5Vwp6YF5AMUVaNFNmV041WDBUQ1RxN2JUan4qOFUwQiRAcU19SU1tKmtOYkEwUkFBLV9RKSMp
cTBQXnVNWVNyYlN1NDkKeiZlSFQ8SjkrNlJue3g/PEpiOHJgX1BSSmBUbXR5KG9afVZvekpjKldU
bGpQMDI9RFhAcHRtVW1rVjtDakVUVGNrCnpBeGZNQncyd2xkXk5RYFJlYCpiWFNKQVlxVTFBQCQr
KnJqakV6R21GYDMjSnQ8bl9uTTJWOVFUIXp2Wj02OylZJAp6SiYjKXBqRzshNEM5Tm05KFE1dTJR
SztUWUVUWT1mJUVjOTcyb3pfNDhkZUxCckNZdTVTTjJSY3c+TUIrMig9aVIKelhiPz0mMjlGP1RZ
JTlSWUE5IytWKUsjd3Vke3l7Jjs/JW1EWnYpJWQ+amw0amxJbjkkNyttbl5TI3FTRklePFZwCnpA
aVc5NDk7NHcrQlRMaC1IRiRMN2NRZmc4JkxvSGVnQlV4QjBPWE89dVIpc2JqY0djT2ktV2dhemVZ
N2lFKXRyVwp6QDtxekRtWFRfQDk1JkVFaFVOIzJBfUk9cUxKaSs4Y2U5X3l2YWtMU1lnUiVsdDZm
Si14U242MWJhRlc9ZUhtUjgKemhXc25JQFZ8aUBTayl4Myg1YElhYnBXSk5KTVZTcGpPYCRpaig4
UCEjQ3syJSFCPHZ0YyF4LXx3fSQxKXRvR3Q1Cno4VEo1TXAmWDJaZihDTyR2Nk5IeEZfT1AtdGkk
UnhUSzFFVCk5YjBpPSRoQXhKfEIyblB8K0BEaHsxRHVtcyM/Ngp6c31MOVhvazhqX2YxUEZjKlR3
QC1AZyg7Yk59aDhwTzZEYUJxWTxiRjFLQ0E7RSZheHF0NjhuQGdyaUc7dm1ZWW0KekUlZj0lbjFP
aGlraDd3YWF0S2s+Yj5fU3U7LTtPYlVVLWNLeHx3IURwfXRAfmV5Nlh0SUwjUCUoWXVeJXI+Pm54
CnppZz1ZeFEoREpNYncqeUo7dVd7SV5QXl9MSlllPGZVWjMhaiNScCVyOXZpczdvTElLYChrTFg3
Q3FgclFaRkszSgp6V1BefT55NFJhe0FIZm1wVDh4KGRDWFZ0QUpWSUpPdiRfWktIdys5TW9NU2Nh
byYpJDxAU3tpNT9gfTFKN2koSFoKenQyQj1sbnAmXzdRKH0+anNMV1dnQmQ4bi15bWFaIzNaQSNx
V3BnfHFJK0pVIUxjSER3KERaS14rMWhGSD5LNUJ5CnolI0xYOCRhdlg4dXB6eGM9UlUlJlUtOzdK
O2ZBcHsqemJIdHNNdVprcEtGYi11PiRWb21TT1U8dkJ9ezcwNk9Bcwp6P21SPUxfQExaSFhSQUcm
NXg8YnlzeXF8MCsxISpUSlJFUWEyV3MxMjgoaXd6TVpfPG5ZOT5Oaz9Hb05mNFo1KWUKenFMOz0m
SjF7YkdOY1E2Z05sRHNHTnFZNCtnUE9ablJ7MCklcH52RV9jVHR+TTdGVTtjKjk9Myp1e1ZeaF9u
blM3CnpUbnYtd0R9TUl3OVYlTnhZazZscGxnTUlxakklUDgmUkFgMS1+Yk1LXlV9UWJeVHlaS254
aSQzcEtqYDFCWiNSNAp6MjIhTDliQnU5Y0xWUENoemt2SyM7SmFfXzNyJEIjKktVP3F2KDs+NCRk
aylRSTBTLTUzQ0NRcSRGKmZyYkJwSmMKelpQTHMye3tWbj87ZU19TDlGVDIzdF5TN3JDJlVqQk01
YDI8LW5AIzQ1Q3khTzNLWHNha3txYntNKiNONk81REBGCnpGIStXaHdUWE8zYUgyTllUM2srRipM
UnNCPEowODsqUT4kc3pCJStpNHRSQEIpbm0xcTtiT1NJKClCQkc3bkIjdgp6UzN0NTV6Pn5lY1om
UXFuUzU8clBTNHp+UylOZnxjQT1WJHheQmArJk1JI0VYUHMtKHBCZXBwP3RmODJ+e0laUnsKemY5
NkliMWs9NExvWF5jJEBsNSZPUWBTNjl1aW5WfGV4c3t2YT1kPFBvaUAjI3V5Y15kYVVnKUM9Ymk7
fl5YUGlNCnpyek8xQ3heMGJ1UFJrNWFZZDIqPjl0SmAkSXJhSCMpLUE2NUFLLTBUXihAd1YyTCtO
dnc3aHZGUWx5UXphN1NfdQp6Nz47Vkt6bFFXcjdtRlFTVTIxayhYTkkqNFBjfHFtUlBRcCpzREtm
U2F5ZEJsSTVwfSNNPHE4cG0pbEdBPzUobHAKemRrJVZ1TSVUVyFWeE5KIXItU3JzamJwQEd1QVFj
N19WSWIhPnwjUENSVm87KGZjLU9gS3FzYXZvemk/dzs4KFl2CnpMd2p4Z3E+PSR8MWUjVUZ7Rmco
b0dPKmJoJiFZUit4Yzw+TW1ieXA3Tz17YXJrXyhHIyVMJHBUM35gQWpXfFNPfgp6cSNpazVSQ0dP
UztfbX1vP1lxKlh5fF96ejdRT2tPJkprX01RSnZqYTlveDVoOz1wMytWa2tQYkhAe0Nxell+VX4K
emhMbHRsYE1ja19yS1VFRXJEezViP2NTNHJhUmt2aU13Yzw2UkBgfUUoMDNVQjAyLSt1Z3kpXyNt
SmJOKXVMRlM1Cnp2Ums9VVFfekVzbjZHLWJATWYpaHNTJEJ5VnwhK2syODtWWF9SYHtEZlFEUXVO
PWY3bklRKG5yLX1xaEh3fHxFbwp6Qj9xfHNKRD1wMCheb1kxWnFjXkNHOWl+S3s3SWlMY3lIaHB7
KXdofHZpfF9aWV5rUWBCPCtnVWIjcHhHUzE4MWUKejZBbGpHSU9vJDk8PTM3WilBU2VBT1VIN3Rk
N0c5d0JeIWVGPWxHNSo9eC1CelpQTyF+V3hrSjQpOXZEcGI5MUtPCnorbkMtKWJwNzAkU09WRVNg
TnpGe3JMRnUld3o/TXprKFd1LU0jRmJ1VVVtIUdTNXVXXz8pIWdNOXl3RlB4VDtvVgp6VG1Kd3g/
OzBfd3RUd1dzQS13SXRmelRYeDg5JDloOTtCKlAmTj0zRVVCSng+e0wmdHZeVXFxI2hncTtmYzRf
Z2gKeiFJZG48QF9vbGoqem1ydWVYWlgkdUFkI1BqbCFYQ0ZmS2soakRoYzdueGBIYDg3QSVNazNH
fitTcEtKRHIpIz8zCnorVUBUd152ekR8UFBLSDVgTGNPVUM7JD9UQjk4YnhqekZwSEpWfmtsMEJQ
VUladGtHQlhXdHhpIVd+OVFCfXxHKAp6QmF4QlU2fEhSeXZEd0x7WTdIZ0FNRz83dXZ4ZiU9NHRy
eTtzJiphPnp0eXhHVGRTUWE7QFpLUGlXQG1oaVdmT0sKemQ9WHg0T2hqV2hDazR5K29+JnUmcjQ8
LWQqTHlDWGZ6fnpGZ3s8aSFZeDd9ZXNAdVRyelQpNXteQ054S2p5NjI4CnombHYwTFVMOS1VKzMp
WX5aTTRnS3NzNn5PU3J5TyU1cWcjJjtkPVZfdD9UPTFFaD0lUnc2b21FdlY1O3xDT0dUewp6SnBz
aS1IblI4cld0RH1Xbkc8fV5FS0ZDOXhHYTh8XmAlMT1zaXheQ3VZSGxsaUt3Y3lzJXZsU3AtTE9P
WWlwUyEKenY5ZDh0NVR0Rml2bGN5dmEoaSlEUiN0NiRjUmJnMzRRfjw+dGFGSk5gVCYyS3U4bk5r
RCtfb2VIcWN4JWBINEQ2CnolX0xhb0BCYFlhIUs3KldoUE55UlF6UV9APH4pJXhjOWYzNG5lP09F
ITh1SnktQGZNenBxLUxBaVN9N1k7dDNncAp6bEF9RkcqVmVsfDdRKl5wMUt4ZTZFNTt2YWtMKmc4
JTwpTDFIPUJ0RS03QUdTQDFKVT1zQFo2XlAmOTg1WChhaV4Kejh9MUQ3cXRkbDN3WEheY3U5dkxZ
WDsjKXFKaC1rZEpkalE+YWU8N0gqMG9yTmg+VCYlLW4rMSo7WUxyTlRsUDVpCnopMjM8TUxiNz5h
bEMwfm51PVQ7R0VgPW5aODk1U2kyXyo2VERfLXxsaFVwWiYhSChleEEwZ1p9NEAyK1VyQTBPTQp6
b1ZNX29XRmxvXjcoWGYoKkVRKXc2R2NtckMtKWdfXmttKjEqQ2c8KCR8Q3xyeEVwcXMjPTwlZ2ol
JT0rI1hjKDAKenFxV3JKeUFvUERpOVhMSGYjZClsJTJiZWgqOC1Yfj9lKSNGYVU2MFVCbktjMkA8
KjtLcXUwRGVXWGBCPUJ6OVFCCnpvIUAob0ltZEhjSUxlOUBxVWZ1KXpnLVR4UlVmbClsZU0tdyVi
JCVKcmxEPFJYWFJQbSZYSVcjd0NKd1VCTjlzRgp6MGk1b35KZGF4M284djR0QGFrfklxRztCI3VJ
WCkrVlNuNntmc3tNM3p5dDU4e0E9Z2tKVnxlPSF6eEhvSH4jPnYKel5hc3xpVVFaM3glYz8/Izd8
P3x0cmBAfW49Ymk9O3Q4UUh4cVJlWmsqLUtOdUBZYmBYPi12VDEpfXhmJHZgJTsxCnp4K0lHdTk9
UlhgakZXKkBKWDU1MkhWN0Bodi1PKzEqYCt8e0NVeVMrTWBBZiVvUHEwX15IVTdeaUdzPSp0PktQ
MQp6e2BBZmZMRj9ES3NWJDBGJHRrbTZLZzx8Y2t1dCswb31aMCVzIzhnT0pFcCZfTnNjMEpIayFZ
Z1pEUHsme2J1ZjEKej1NOEx0aSpHT29ZflhUbiN6IUApO3AtVzdvMiR1dylEbHoqJip4ZmlGYCor
MyQ+VGY8JWhVQVBaRWpBamQjQnpfCno0WT58ZkxkeklFdz5CXzJ7IzliPFM9Ni0pJCE7OF40PSYh
TFg1cFNXXnk5cX1yJlV6dWh1YHtKXkR3MDAyQmxHNQp6Yn5Aa3FNT2BqWVdXU098TE5jWHtTa0dU
dlJQQ3FPRFMlSm1tP2FQZlR0enJkPWRtT0J4QFNGa3MqNz4yTTJ9JnAKel9gMkV6eHxGUGUqeFdI
PWpGUzZMVUVNPT1LOSFYV3goPHR9UFpwdGxhZVdMKD83THpMQiM7c1U8bTc7UTxSOE1jCnpQUHwl
RG4hanMqIXlVRCZWVmNxe2VFJEk4R3JxTz5jWGlAXzMwYFY/NFl0ZXFFYF4qclU4RCV8ZztkPF5f
LSg7Ugp6NGY2ckNaNk5pb1pOM1g/KGRkOE1tayg8V25IfEJsbz1HUU9DRTRaIzckK3A1JlVxY1dA
bXtnfUh1IzQ/QGVoZFgKejFVP157ISZiOVBuNGBLfGxPeiVZWClmJWsjdkZvQXJfLUFCYDkyekdj
V3tRNiE/NWZRMzF6Y2ozbGFDVDBkZGZFCnomM1d+K1N4fjlUSFRmTyVHVElmWHNuZ2ZaLTEjRipA
VURtY2kqdX5yVCpzd0VNM01fJmk3Y29PJSF0aj0kakFpbwp6YENfQS1ZMyhNbHNkIz9oVXBmPndE
OzIhZ09jaTFXQzFSUTVCeVpYZDJ0VUp8VzJlPyUzajhfWSgjR1FVJUclPVEKekp6RFBCdC1pJHxO
biVFRGsqUnBrbkNyOHV3aHc8d2c4UmRzQiEzSl5wfjBAcFpLY1VeX04qTkAlUFJZSnBQZE5mCnpv
PD1CSHY+ZSkte0tvUzZEQmhBXipRLThZWi17IUc8WD5nRCloQEs+d31rfEVSdWY5VFh3VGw1MXxe
Um08I0NPbQp6VzFObStgJjc1Um92djxmYnEhQURQRmBFNUVaT0ljJXQ8XzgqTFVLQyhzYUZsUHx9
VUl0KlhtdC1ifDYoTSN+RWoKenFhe3ZCPWlQbTRnVnl7JCVfK0txKWFpRTJjKHN+aD90bytGQ3ZP
MGdVZCQmUlJWYn1MdWJKZjRSVjZuUj8qOU88CnprLXVmKiRTaWJkUHhmd0BCIzhOSCFYVlEpOW9Y
OyZJMEtCRlNGTHpzI0N7RmVkPzlUWWkrbmhkLUNRRj14QTkmKQp6UEZjdykjMz9GQUlPR25VPiVi
LU8tMSZ7OGFYRGxTYD1sJlMoTX5AfnJGVkMkTDB+dGVqY1lSI3hiO2A8b0V8dEkKemJtUXE8XzJf
JDVjKl4/VWR0MkA8b3FFXy0rfTcmYjktUHtMZ1k+T1ZAJFQlSUd9Ml45MWZGMSFvTTFLJkFPcVp9
CnpgV3AzNWhUMiFkNFI9bjQoXmMzMTBKM0Z7QzJ1dmE2JjFHejF5N2l9Y3AhSl5lTDFoMXFgdWVu
IWYpa2ZsMCZyPgp6PGlfVj0kOX1sKFl0WGNCNzN0VTRJJiRoZGV4RHZ3N2FtUW8/K0Y3Tzl6WWx3
S0RuLUpPZUk+SnFmJUNEdilJIUMKemhAQzA5YT1Ta3g+dShBQzNIV0okcyM+XyNBbElYMUNPQ2ZH
YF5oJSljTFgzWCEqbUxgMENIPX5xeTN0RVEpP2BECnpAWHdeJmxJRDEkaWVuTG5kSXM3dUdJI0B4
JEJ+P091UT01dEBGYkRHcWpCTzVMZXhza0FjaHJ2KFM7LV4rRHt3fgp6Rl9ENWttM3ZGXjhmcDRN
JkVmdzU4fkRObWslVUNIPCVxNypNJCpKPzFELW01Yj4+ZUdUOXJPIVI+fThRSiRQYmkKenghdVFh
Rzw3JEIyPmY0WjM+d1V1ZWRMTEJrdHxZMGRhTkpKNypDZ1dLX3V+ISE4T2s3bygxcy1od1gxKHt7
VG5VCno/NXNnNyk1YCRTS3JYKT1nKDZQcGRra21YQCRGRWo/SEEldDMrVUZHTGhCYmQoQWh+Qisw
eVJQNSl+c0wkQVNpVQp6QWF5NS09dyR0e0pWJmtRP18kPGdYOEMwRWd6IVlpYUwjdExjX0RePEte
elIkOUY/dG1DWVAhcmMmc0YpWmx7KkwKem1HXzE4dEFUSX52KENzT3gwKGF5dyV8eDNnWCFCOSV8
K3JWQnl+aVpYPzA3c0ZAPTRAVmFeZDBkWHhIKlVyQVokCnpKfTNDbTtOMl81SSR3cjdLYy0xNyNP
cFFIcGgjcjZhVnNZNnIwez0tb15sRCNKVS1MbXEoMk5hbSkxTjw7Vm5iTgp6Un1SVXRNd0tFPENr
PXROU2xIeH1NPnliJGJuJXF1Q2tlO2lfNTJLUjcqe0A1UDEqP18xQUV8KThFRSR4UitfIU0KeitG
cXVDVVAkakg1JjA+TWcyeUx6TXs0SUUhdX08RXtoSD0wbHwyNkg9WSNwO3l8MlZOd3lFTHw3Qjst
ckh0fE5wCnpkMm5sVHtrVUtOMEFUK0JlMiNFPmpANmlTeVJhYSh5dyhsOGEzX3xsWVpBaF4yZDNf
JUBeRXIlK29NailaVENFPwp6bHZjS0YraGQ1a0BuP3pjXiFQazd5NDNuXm54MWZ5SjZSYlMhfkU9
eSVoaHIrUk9oRWs9Yi1WdT92PHo5U14zWDcKemtnLVlSUU1pKE49a0lwell0bkREdU1nUjFkY2xU
QkpvTDRoe09oM1goemVycGd5JEBDbigqeTUtVko5X3d9eU1UCno7el9mKSZKa0F0cFRuaEdYaUR+
YmNfU00yQjs9bnB7e1NENnYxNl49WUVqUEQqWW1zcWhVaXQ+YmV3YUg1IWlFNAp6Pkgra3IjbXEz
R0VRXjZ9QjhETGQkSVFMPkpeZ0FPRzhlRnYre1laRS1iSEJzV2h6dD0pSFcoV3ZyVGY3d0NXaWoK
ejkjV3J+ZiRNQHNHdD17LSkyaXhxPHVaZ2h2YDIwNWxLUkApI20lV3xIZzY7bFQza0RicXZieiFn
PHVEdiFUYy1RCnpiKTheYStnalVMODdeYktpe2B7cVk+aXZGMldUVz9JMFM9P1gxS3FEY201STVl
MGM8KEVXZVZ8T2ZiQT1KSjhEJAp6MkhMeDFKQVVhPntQRF87bUd2ZzI7U1VNO3plcyZRO3J7QFFa
N2VOaVh5PXlTUFAhTHNDellMdFpnKWxqRXVGbzEKejJjPTxLQU42WE1seXZtYGs4Y2xfeHt5aUEr
eTRNZyRJM0o2NHtGUDBzSylCPj9MSX10ckhiR0hjQXFXbzFfbTM5CnowcXRFNW1FKSg9a3d1akU3
SUg2MUVpVTdPQU1oQ1U1V2w1KlBsJGhKP1IhPyQxaFYrNk9Wbk5EaTZvTDsqNi1ERQp6a1BwbTJB
WShrXjZAfXVEKzNVcSM4cT07T3diZ1c7VkE+c20qM0UrNkoyQWxkU3dKTGJKaCRndE0+eFkoX2pN
dzkKek89Pj8zO3s3bEZNKSF5UjBCOXw0NFNMRyZSbiNyI012dl53Q1ZMMmlzczFvbFN0WlhzMTdr
U2l4JGxjUT93X2RtCnp5N0U9RmllSyNzM2VVRFUrREI3dHE9SE90ZShAeDdvYTIlKVVNc0dBRTdq
fkxZbUhrXilAQDslPTV9ajI1a2RhfAp6ZDV7Q21XbkYzN3RuPUghNHg9UlNMbkpaNTE0X2xWcUpS
ZH4kajx8VFR+dXF+WnJtQm9Va3szc059fDF2Z1Q7UmMKenljZU5wKklLNVI7JDJ5emxWe2tpSDRR
YzNuYU4/MChnNHd3MzY+LWZjPEVkWC0tOUUjaGB5UHVUMFQkUW1BVVFRCnpYUXdeOFNGPm47NWo3
MWEldGJBPEZBXyF9UHY0YWpIcl9WXjJOKWdxUm0tbzRucl5Rd2FjYUhed1lyajA0JUJHbQp6eigz
dD54eX58aWlwcCtGO2ckYTQpaGNiO2JuVyteMzM9Y0A1b25yPFRpO25hcTdkd14zWjEjKGltKFV0
c2tFO1QKeiVHUUByeV9+YU0rYHF+STxhMj84Kz4mfjhVaGcpaWVXdStfSExqSlolaStrUkJUdElA
XnVzTkxaP3c4Mk1hZm9XCnoxbXBxb2llfDU9Xyo9eCo2Rz8yPm5vaGledV5XckspdGNSN1QoSmkh
eWRHR0IzRlB9JUVvV00hUm8wIStzPjVPMAp6dz43K3ZFYnp+YllAcEY0KDB7VFJZRjZoS19vUjdw
IzwqP2pgMWB7cnFqY3VEdHk1cHJFcD12XkpJTk1SQys8aXwKelQ7bjcwITBCQ1hzZHdTSzJaYXtt
MytkaDw4Y1I2JFl9XmlXQkxUVUcxMFd3YFRSTU5pT2FBfkJjciNibXZeX2lSCnpSPD0jT3JaYTRv
QnYxPklqelAhRylNUmpmMFk7cX1EYiYkRXtuK1lKc2FiTUROJUYzVGohZ2RtWF9oITVTMWokWQp6
Q1BwJCg4Mm45YlUmUSg/eXFhVmUlSSZ9UnJhIXZwPikjYVhUXmljY1FpeHFAUClvOCtzd35fJElO
KmpPWlpkSnMKemJJb3NRUDJpMTBPS0dtanVVT28/cHRaJWM1Wm5iJlRafVdLNHA8WTZeekJgQlZC
NldhdWo9UVkzVGpeS1grS2tpCnp5MVRmWG1TOVEpdl8zZWByZk52KzMkOUd0OHtBfW1vWSR9RipC
JWo7NEt+ZCNxSFdRfWxWO1ApamJ6PW9KR3tlJQp6NSNhUkI7ejhpJXclNVJaNysoJX1qX1RUSWo9
SyEjYGJDdyhOWHY1KEFWP1g5JE8/bSUmTkg8OFEtJmZDa0d+I00KenYtPkB7ZShGa0hfZEhLVGpN
JmVZdyk8MEBHYlVTUjBzYkpRNTtLbkN5VWt3NVFxbkNmd1RwIVElRzMyMFVAaFk7CnomTmtwT2ZY
RDhSej47dTRLREc3ZCFKUlYwISNAKnpDa35tV1NsVHdGcUZnMjhMbDY0UnE5QDJYPEtgYXllO1Qj
JQp6Z0hOI1YmYzFaU3dfRSl6TTYqWEBzTjJQUDEtblJDdyF0ZD1mUkdRfjlRVWojVzhOWm1yeGtC
TCM8UVV1RUwpcWAKeiRvVEZaTzZrQCtgJi1NJHAyeTNZPTQ2bH5EUTZgTDA1VUt6NF88ayRfZz9X
QWlhYkBTWH1WLXtIbiMjcSpJSWpQCno3Y0E7Z213OHJaRG1VeHtLUX58aXVVeW8kZX0oIVZnUzw2
eWNpQD5VcnFyeXs/VSMjWGF+ZlQ/I1hIZ0FCcndUaQp6b19IZ3Jhfj5lb3o4eXlLb2h0ZmlCVUx9
fkQ3U2ZNanlCQH1MTD1WMkdzKXt3NzwrMz9MaHJsal9adXFGcXdkc30Kem90QkBPPWJpeDh7Nz5Q
fTZabChOWSl4LSNBI3JKR2NxOC1SSyYqMShhM0pxZHcyWWVpcXY0bH51S2FIWHpvX2FHCnpUMVJv
SVk4eFE4NjJ7bnNCMWpRWlJWOUV8VytoVzZYIWFISTdPQ1A1T1UzYjZUSEI/JS1CXlBoSzRyT3gj
VGUrZwp6MTBWbzhhNFZoRns3YjZuKlZlSm1zM2Y7QnM0PCZqUURNcFpwbWhYZXdodjBAdWF3SVpF
XkRQUEZDeWNhUWxsNWkKejdUMkdqJG9tSnhLTGQxKzVvJEF+dVohO09aO09fRGE8LURCVGVsb31j
IWB2N0czbEhSaE9xbz9ATitgJmhsZ3luCnpKSldrNWpoQHVIY3Z+e3Y3YzBwRzFZQm5XNGFZbi00
U0NQUHt7VzlxcGxXbUtJPCQ4PmchNVhadlkpaU5wT2xnfQp6N2d4Xz0qTkA3KjU4fVZZe3tSVml1
aUA0NzhaXyo+bkA/fUAkcVpxTjx+XyU5YntyMElvRFNIcEtpT21IUmdGMHwKejxKezxtQk1WWlNv
TmEhXi14elFCUXtmOEBjU2VAc3U1RzRgPEZ2WklkMkpkUW5VdFlgP0x0YloxJVRjMjV5OFEpCnoy
aUpVR2QqWXVKVTJDdFcqeS0oZ3dWdX0yN0I8NmI7Q3pteVBJbHp2bz1MQiN6QU44KHt7WFlraHYo
aS0+eCpvKgp6YkNhPnBUdlZTMns0PUwmKFhFcWNTfGkoRFgpczs9cnQ0MWcrMSRvfWtpP0ZEYSF2
XjZvSylhM2sqN3ZBRGw1dU8KenROaEp6UkRIOTJ6VXFuTWVpaGVyXyVFJGlVajsjUjM3S3VLQDJ3
U0xXbW18XiVMUG5+aklQaEVkUyZLPTszeCN3CnopNW9qblFweT5UWigqNkNVOEZFdz95aVota0dr
V0pZV2VSJl99aX5aPTBnTl9tS0ppa25xZFQ3MDJHaDlhdjUtVwp6VHdeQHF5SDV6flRBenNTXiRW
TGc8NGQ/KkJYZyRNOCZqVGxXTGU3LWpAPGNqNF98dUN1KGhLWFN+S05LcUhrWWIKenBNam9UaEBq
YH1SOWxuUT9Kdk9RSmJCfEF7V0RwLXYoYXhhRkN3e2h4ayt1ViR3ZXxNJVE3TklgQE55cXVMRiE/
Cnp5QU9zUndEKlp5U2h+YEBUUGpWWXJNV3ZxQUhGVzcwO25aYDlBX2czSU8kJGY8Qk9UKkB3VHAp
TypFSGtlfFdQTwp6Vnk5eUZtYDIzb2BAPXJSdCNDU2l1KjxIXyVJdm59SHF8Jj5ibUlWbF87ZDhI
TGt+O3E2ciZvRVNGK2N5JG1oaysKeipoJG9iPiRnTUteP2crP0hFYTNkaVNzOz9Jd0w7OGhRPkdx
VzNRKWYpeipBNjh1cUVMQ1lfe1MraUNXYGEkVmlECnp7JSolZT0wWDRxOE9hM1g5SWlqU0dBcXBI
KVQ1VHJXeVcxTEZqSWhfMXZuISgkQCo4V3s+ezQ3bWNCSUF1NUdVMwp6dnphdmFpQTsjNFdYen5l
THY4MmYyWlAkWjRBSG4/PGt2KWFgRnkjdFFQK0UmS2tZTihgdzZAb2VXcEZ0PGhxO3wKenJxIThh
Y1kqZ3Z1Qjs/dGRFMWFkQjsqMHUqVTcjU3dNKUdvTk1AMkdoRG5MWkF6UH5GbGcyQ0FLV1V3S1k5
MT1fCnpFT05qNEwjNFdlaTkqSDFZMDhkSXgjekJIJGgtfTJYTEI5QTdlak1QSmZDJH5HYmpONDtt
fkhYJVY7UUpxaSg8Qwp6WkpBYmNvfVhwQHI/elFjNClBTn1WKmN5SlQ1aHpjdGc+aj0yM0FPMTBf
Qzkqa2FwbD5CbXRhXlZ6Tzdue3VMXncKektMKllha0NjQ0REKUhOY0hiPkNjRTNWN28lP0MtSTto
fk4+PFZUSmM0KVErWXltZlByJU42QmsjUC1DSiNyR2IkCnowPWlhVGIkUTlaeT8jdjw0OGdUKGFr
dTA3cXY/eUM0WkthUUNHYDQtb2glUnRtSyk5SkIqI3xVJlFDYiEoeiVacAp6ezQkPlUkKEJEMypn
LTNpeytBU3JmayN+U0hQZCpgJWY/PDkoSnlhckclTCRpZkd7JlB5QV9Pckc0bz5fPWhuSUgKelom
PW0qTiNOOXEjaF9jZXpAfFhZdj9ebnE5Q2ZjVjQ/SH5NP05oYjEtMVlHX3YyamtDd0N9SU5rMWZ9
ezY/NVU4CnpEXkVqcFlka3VmI1okfTRXbmMkV2Z6diVKdUpGQ0ttKks0cS1wPEtxKWE2bm56bWhn
QUd0cFA1UVRtJFR5Z19mUQp6WH59SjRzSmBoZSg9amdLK1o2TkVkZ2hac0B1bHZUaFQyZUcqSiMz
eU5JdCk8ZGF6TlBaKy1QWFVhVDlGUldCMl8KekkoRElgVFU9YlU+U0VwQGxfZllRYTNwY3VlNWRs
UHJfKGk/N0YhPD0+SnZIQzxsNUhqRjJ2OE5CPCV5OXJ2cyZQCnptITNKKVp0ZDxaYyNhdX1aSj1e
N29PQWVeYHljaWtAUnE1akhvTDhBSSheSm0qUzBxMSU2VmdEanBLSj4hNUh2IQp6d01xT2RuO2x2
KHJ8JV5EOGVzNXtsfTRjN3Q8Umx4S1l+NiF2a3sjYExCRj0hQURDdjhHP0N8em09cHsjZ0h8VCsK
elItPmkoTHFzdD53YTEldkIzKHhsP2I8KkRsYiVuPU43RHdzUGk0flZabCsxM3dUMCU0ZzBnSElt
akAjUmJKUCNZCnp6Qj5KKkp7fGFQISpgZEJxLXBXbHlwVGFUV19jZUImZyQzPCsrKytfazRDZV4r
TVB2akwoIzI8ciQjUHVLMG9tXwp6K35aeERhTEVfa1B+ZD05KTlHQ3tsVyMwTzlgaHJiODFGOUZp
NnVXYj91WG19NHVaV3UjUytKSEBYdHpuaSN2UE0KekJkUnlyOWFEcTVFeG19cjxGMGRGTX0yITlv
bzJFOXFTZkp6IXA5c15pQStuOU1vOD1RNzFmSHYlfk9tWnVWPDt9CnpRKmV5anJffDI5dmBCMUIo
JWN5P1FjdkJjJkpVPzFfM2QyVSV4K3VGTTtVJWhXQjY8NjR+QWE/eWhaVUkoP3N6TAp6WHR4KFc1
eEtpbXh9RlB8KT8qNkRSIzYmZmMwZEdrazhJYnQqPyFFUTJFMFM2LVN9JXV6dD9vezY1Nmt4QGFo
R2AKem4rYEdaa2dDSE4+Q08mbVB7ZVh3Uy0wfjQwRHg9I3BERndCKFJ0a1hIX0RwWU1AZSFkSnhT
XktSPDQ7SGdvdiRtCnpkbyhUJishMWVGZCpPa3Z2K3dAXlZCb2dfdGhgV1ZnYzQ4TVF6Zzl5Rn57
ZHohK3kmP0REYlYtXnRLdWtUdHpmUwp6QzZHI3o1dVQoZmw2bUA4dVE3fWxITVI1e2E9TWIyeXdU
JHBSeGx0Kjx3KlJmKDRGd0soS2cmM2Z4JXQ/Sj9uZUwKelVrJHQ7NH42dmE1cU5YTlREOUhYQEoh
aVcqfkFQV2Y9ZUBHMzwzIUN0ZStHMzMmcXw2ZUw/VF5ufk0hT1BUNDJHCnpLYFB8bj4/ZCNzKypo
N29feyZrWXlvJlBMP1Mjc3VMMzltLUJOKU5SPXpweVcpdkJwY1J7ZWE0YmZIY3o2JkFtZAp6KFZO
SUxpJVYhe1hjVTBUJmswdkEqOTNyYiowMTt+X3JxNzBFO1Z9eXtHfmZmIz8yUCZmc1MqNGJNMEte
aG1OOSkKelA9OytzTllrJCljKjJOJG1EYCtQQURMS248Y3hrKkxzX2BldHsmM1VNd2EqKTdqKX0o
c0VadUFJUzVldiRfNm96Cno1NEJ0PGRwNzJpdi1BRiRtN0gyfG1IdE9WZDIhK1cxSGB1JF9WJnd0
WGtyVChjTXBqUWohREsyMnxZU3V1SUwqNgp6eDhncSZNV3koRVBQZzRPWT5qTUAweVlIIS15OU1e
OD9aZ2AqMDhLI2xHNTh7aGxpaDRuckp+YzRIMTdVdVBldEgKel57YWpheTRITG47QENCeyhDKFJ8
anp1eDMrbU9xSGdVX3ZXUUxPNmcpQjY2azdxVXNLPnZPZDZ3WVE0RHcob1J7Cno1cSYwYGFPTm8o
VEExVSFWQ3t5KGZOKncoMFFBUV5pc1Z6bW0hZFY2e15AUDRFKStneG4qdjEqenlVKmh7VlV4cgp6
YllGO0g1T3BtI2B5MFg2JlRVLTA7X2dWfTJ0O01WN0EkWmBiO2RfSTA9KUJIQEpfOSFZSCg/dUNE
TF82cyQwVU8Kelg/Ni1HN3xSVTFDZ00qQUEkPS1xViZnKVJ2KndySCZXQkVPZE07Sj43PFMoYzw5
KTk4PStRZE13VzNVZFF5QlN9Cno8TDFxQlVMKCs5WXY/MT1DYipwJUczSSY1Y05oTEZhbXRSTGc+
fHx7cD4/ZTReSUo9MV83UGJgT3A3WUFrJlhoWQp6ay07Tjl0Mjx1dEhJeDhiI3whek4tcExLTzd7
U2VPdGtTSU5heW9rY0x2V159JWBIeWpfRlkhOF9gUmd0TTxrREYKekJzWmkrPih1PzRQRVRUY1c0
fXVKcmZWeEo3fGclZl9WI0VVYUFkSyR1Xj9sZCVXZ2BaUGg0UG8qVH48cUVSIzNLCnpLTXBVUUJm
IylxMEVgWD9gWWdPLXp0WDw4ZmkxTXJCeStyYVlPQTB2NT88K0hONE1VTEAjdGBTKk8hfH5JX2cm
Rwp6KEUxRmVzYlRiMSlXYFR3Y05FYS1pdypRe3ZUSypCUlcmUCNILWpYK0dDSlleME5zcD9fNFRj
THkjYEdTSD5APCgKelY+Pjk3YmVXTmU4Tm52cSZJZXBFMENGb2M7ZUdNQjhvQ1daPCZBWl8hTDto
YU9ldkNGV2VTYSUmLX05YGs2JjdfCnprWGRQXnUoc0FIcnpNUGN4P2ohNmBeWkBjdVJnMiY8Sjl6
RkBGVjQ0aWtFVVhrTmliIzx9Kz0mKzlVSnNDU0FLIQp6OzM+aCFlb2xSQnVsUV41Xkh8bVY4PzFQ
cSVIR04/S1RsKWxMbkpFQGVXZUtwYXs7JHp7Jkt7eTEwMl5FQGdxPHoKekBkTHo/QihPQC1OPWF0
RkglZUQoPGJvNnk8TUBzVnUwRFNqWVped0J4QENqO2RVVWNHLXJ2WSE4I2RDVWZXK2tDCnprMm5O
KypWKzNDU0huaH1VN2VCZ2FLdUsyQ1JIRHEqbSVFRXA1cEk3bVJUPXZZflhuI2VleE1MIzQjcXNJ
NkZXRAp6ayU1M29JT3x4NnM5KSs9SDtIaHoqM1BVI3JSLSRMJUFuJnM2UCRKOW4mK1VtN3dhXiM+
SUVaJEpAU2JkbUhfWS0Kek5BVmlCWlErPThLTXFmK2Vgd3U3RDlAMHgjdVBZRzBWOSVlKlZDSEso
Mlk3dCUxY2MoSD5yPVNDZnpycSo0RVNWCnpIbmRHIVJkSTc/cWd2XnR3N2FBKTlCbVA3Yl5ZTV5N
bTtnb3Z0WFo2KTI/Q0VaIUJXRE9Rcz9PaXJxfGQ1cmVtQQp6MTAjeyF4VU9je09FI0Fzb00jaDY8
aCFoJkR9JlEzPk9GbnlyXzs0cHZWdGgyZDFib0ZNSDVJaXEmV2EqY1ZXT2sKejw0KDBYRGxOKTdl
bE8xRUZ+cXs5bH1EPTk+LT87M1RXRiYwKGc/THpwRz8lKzxmSGtLJHIlYiZ2TkdRJCteI3p2Cnol
JWhzeEpgJlg5KHZzNUxNQTV7ZktmQjRuNWkrVVJQZTE3cUZGbzVHSz85RHxKfFhJTW0pNFNMX1l0
WCVGQ3xGSAp6Xn5wS1VSeEo3VElqPkNjcl5aaGpUanwjaj4kWkE2eG9QJWR2Q0ZHS2xUUUhLISRr
UFdBZWBaZThUOUwzYkVRKEcKelMwcSl0SH4jPHQ+Vjw0MHhfOS1yezFlTXtlKm8lbGUxJGVfa2R+
NDYxcmQkS2JBeUE3c30ze0RrPW0pdGI4RiRLCnpCIWJGeWR6S3wkV3gjU2MkT0xwPTEkJUZkZWs1
cSNCIShMZUU1bFp7ZWB0XlFeREp7bHY0dnZGJCtrbHRjUWdGQgp6en4wMWx1TmxAZiVMaStsT00z
QDwkO3YhKSVSYlY4NlMjQm9rVlFDaSVBJSFQTTduPk8mMGRydkA4UHhueCp0PTEKeiZwI0FtKExO
SGBYJVp8PFZibW0pTmk0b3o2e3BAb0pPUmwobDBPPnMtLT49ZCh6UzFmUzVaVDc3VmIta05RfXl8
CnoxQnBSNmImLUw8QUt2XnNTSHdPTypZJmxQYlMpeXxgIygoKGhNOF84TUdSSGRqQFFUYGkrVlJB
eUAka0ZQbVBhKgp6WlNKcGF1Q0RaRyh7eSolX1glfkJCJUVhJndnR08zclpIU35GalEmUmphbGcx
eCQ1RGlRb1JYQUhvOUZ9VSNaWEUKel89USR2WClaOGJ1blJUOz1lSH5VWW4jPFBOVmVzXldtWnY+
dzFMP0FXQkhvcVplQU50dmAxI3c2N08oUHVPcXt0Cno+Y2MkYT1JUUpPR2Z+b1hYdGNjXl82PW1U
X2laZFh1OS0wK1NYfkkpRHpOSH50U31FQ2g4KSs/UV5acUs8Pmkwbwp6YyRNKERnJnQ+WGI/eHta
XzBObll4d304UTZEZVNQeW1IYG0yZjRfdlJRUCtPZjVMZzg+dngpT2cmT1d7OTMreFEKelo3UU43
OW88PlQzSiVrZmJCKDA/UnwlcT5HVjw7MUViU2NLKyFjWihqcSR5UztPQnJiKTk2aW1LWX42MD5K
Zk5XCnpUbUp3TmMrKnR5PD9OdjJNN0poNkNKNmJEZTRFdD1CKFRVSlhFX0c0dVp4Ull4VzdtRzds
WHA1c2ByPTZeKWp0KAp6OCZjRkQoKT5wKGVoOyVLQ05IUj9PVkVyQnNKWjheTkNTaUlQMU41LSgo
WWEyakB0NmwpPmplVk17YlVuNXNhI18KeiRpVTdzaihZUTUhZ3Y4U3QhVH5UJmxCbnohY0Fec05v
QEFKIXFgUHRtUURFSjl6WmBmRzdmV0R4NnU0S0Bha1ZfCnp2cmw3bl9DVX4+dUl+d2tNbj9QSnlH
REhFNG5xJDlxKjlHWlBGR2lMRXYmOGI+LVV7KjNZfFYlU3ZTNGs8TnA4dgp6PDhIS2xkJkxsPV8o
I0R8LXJ1Qik8fTRiMm45LT9Jam1qe2ZlTVVRMGV4TEJKZS1ZfndFfjNfMjZzN2t8WGw2cWMKejFk
PmtJJHdlM2hnKUMyUWFiQSgqNTg2VXEzKnNNKGxmIXktbnJLcW9CRlU8MFVScUNhQHtPKWNpZyVD
KzcjUUduCno3M2JRSSM9VG43YjxfcnA2UnFAckIkRylMPXt6ZHI1aUJZNHVncGxuMFA9ZXBSTmc4
dlpLWnllZGk/TCRRa0BAWQp6eG0oa0kte3lNdmdGRzljXzxsKCZ1NiRkclQqKDdPPSRjJV5fYiNx
VTRWNUdTMF5rQUhKY3sldkVXOSVKQjJAOH0KeiVyYkB6d0B8Umo5ayVhZHlYKCg+bUdOZXN1SXBZ
WEBkPmo/VmBhPDhUSDg7TENfPU5+SHM2PS07QTByQTQtRHp2CnpBY0ZTUjxASWV4TnchQj4wbGQx
N0N2YG1WdGwycFMoMjZWSjtJKjh0Pn0/NTZ1WFkrLWAqJWdQQGxLbm1lV09QNAp6cmpkSzZ4fXU5
ZXZeZT5MNT1kOWRqRTxwa157WEItKlclTkJHa0pDNmUrS0RTUjs/RzNteSE4V21VbHVHUjFRSlQK
emE2PTR4Yip+aUF7NzNOOUtzc0t6O3Q2I1BjVkQpWSV4dnZ7ZDJme0BDQHF5JTlVR1BGIU57JiM7
KHZ9YktOYTNXCnpiVVVJZ1p0aExQVGV7OT1mdHcrZCVmTVUhTT1JR2s7PUhPQDEmTXNxazFPZVAq
VyEmVVZqVVJYSXtmWj9NfjZxaQp6cEJ1YiE5UikyV3dAKXIkVURJR3p6fjBlMCZwPGFHNHRtITh6
d0didSRIaEBnSzlnfkZ1X3l6NWotYSF1V0ZGMXQKemJsY0V7dWFSeF9uWTR7WWJrbFZFWjhZbyhF
Knt0PCRFSFQ8MyRwWCpkUkYkNDt5KTV3VH1PRnM7I3NaVGhzYFdmCno8aX59OyZmK25feiEqSml0
TlNqY2xaQD5CVFFtT0FOcWchMiREO2dGe2hSRShCak5acDgkVDltPnVQUVVDZloxTAp6bUt6emZs
ZUIqaV9mSn5vWjdqU3lwPDcyfGFpPCUmP2MpSTRPS09HVyZwJEpPSXNBRzdTWTlzcC1HNDJPKk1A
YSUKelYmZUtaU3tzTmFrfGFeUnFpcD1xczMoUlAkP2o/JjNqV3B5IU00KEFsbFZmKlQrKmh3SHdg
N3Y/JmVUWTViZlpNCnplNG5wYz4zRG9oYU94VVBPU2BkPnVSXjc2ZXJGVUB6a143JXhPPVMmTTZ8
VjxYKjBGP1NoTFBTQzV7SjdYMGgofAp6RkNPWXBuX0ZGMD8ja0g2VyYxVWk+IVEyKj57SWgjNGwq
bGUjZVclZS14fSo7PDRWJTM/NGc8Ky1iYF9FNypJKEUKekltPjRgS1RLQ2tkLTAzbUJ2eksxaik5
fTxfQnliNFRaP0pKRm98KTFQPWtVPUthZjJ1bDluJEslJU03ZWRjQlFoCno5NDlRQ0NnYnh3N1dZ
fXh0dTs/Qj1FZ1p2MX1QKDM8Xnc2P2FYbT1uZHQ7dU4jZHxOcVBZZlImI1VhcGkrYk89dwp6OElq
Pkpaej5nI0B9VjhybyFISnNHMCN6MWV7VDRCc08hM3h4anUjY3c9TDYmUmkoSEkwPHJBVDxUcX5N
QEB3ZFMKeiojN2BjKTE+Z1BrOGlFKVc0M3RqblhURnttRjxKYXhTfXsyUm1kQztJMj4xSUh4Y2FN
K1djUlkmUmk3XlgqSkI2CnpAO3NNUCg1IVVweFVEWmREOz1mWHczKEYwWjdmb31XaWY9Xl44PU82
YTBtNXZwUVQraWs9KCYmMUApaHBCI0pyWgp6TXdrSk5NI3tgR0ZjWV5SOUAoIV57ajJBTE8hMUQ2
NEVJflZ2cVkkLT0wWjBLQipEUXI/MFdqdyVvPG41RTNGKnIKem1zaW14LVBHV3VaR309PklYazJT
Qjt5e3dvTDhTSU5+YDZ6enZ0Tk9TY3ApWFAxJTIycElaRG5TUj9xdztNbEYxCnpwNHZTbz9QNngr
bG5RX25hcTBCX202IVdXTC13elQwNjhXJj9WJXc8NUkqYUFCT2w4alRIJDtQQHBuU2R6OWV7YQp6
UkswbWt6TFRRTncte1U+RzB8YHJhVCgtd19wRmJLe3tSPj91WmFGM2xVPnI1U1pybURBb0F8S3Uq
eXw9JFJ3eyoKentAMnBDJUJhb35ZRChIMXh2bkNjUGd+dWNBSD9lb1JAY0dhNlJeTTI/aGxmTSkr
NDVGRnxrRi1GSzJQKTU9SzV8CnpQfjN0PlBhYXBUVTB2TjwlV1RxTFR0PWgqSiZkfSU7NFY2T0VG
JURZVCY7N08qVGpYXnRnU1RKRW98PU51d3tiVAp6OCVuayUpYT9veU1EcEU7MUE9bVdgS2syfUNo
aUYjeFYrUD87N3NCdjtrbDVMb313OVU4YjFCQV5zZFktcEB4SzIKek5oUjAlTTs8RHd1UmRzT0he
Q1p8K0M5YWBtdHJtPm1mQT1qREc3eVJNO0lqZWprSTdNJkdeJjI1JTgpezgwJkRACnpOcTE+KzlH
TXhoeEpoMCEoPEY/ayFRX25lJjFMRU9QMUc/b0BMNVpIWT87e0J3c0E7S0pNNUVrQylYVHl1Yyk4
KQp6UX1MU1Y7JWw5RCt9WmdpUzV9QGBDNkRDRVA/JCo2X1c0KEB3UVcodCZDYHtvQ0JGWHZmeFpe
Q1N3Jk5sPTdNYFkKejQrUWI9Z0VZVH1yU3hnaHRAVll3YyNQOVorMVB+YmtOfCpmYW10VWJjQCgh
PSl8SUU8U0A/Y2Ayd0w5JTBCQjU2CnpVUTdBYlhpaWx9Py1qNXtSZ01gKiZWNEtCcnRyT3twaloy
NiMmPWdidjxRJkhDQjNwO2doZ0k1Mmk8SDhabyVXOwp6aTJOUGxKNiUtRTt0MkdzdCNReWFiNmMh
Ji0ydD5IQm9zWUI+SD9tKUhPRTRnUlVUUVZDKVpjTWA2Sk45U0R7aGYKekZecVFFRX0hT24qI0BE
Zz5sIyZebVhCLVdDQHBRdjd+cWNUWW54I3BJM3klezYtZEQhY1JnJEMtYFZ6aSR1LSE7CnopS1V3
eUBhPyNsJX5SJFhIYnN6ZmRpeiYxV3VqWU8rc3xiZWdsJXBZUGBMX2F5eFIqcmZ3PldvaG0rMWdC
ZDw4Qwp6ZWloZlc/KnZgenZndFFnUGJgYCUrdiElVGJSYFdlVkg1QCtvdUNqaFNkOEc7Q08tISE3
KW1rUE9SZjVzaHM4ejAKemFjXzBuJEhsJUkqOUR3QFI4VDFvODhXdWFGYXZTbWYhNz1pcDFmQj5x
LVpgYipLT3B1KDR3PlFaT1grcCZCclFSCno4PCVNMHBPQFJIdHNqS24yWDFeeHM+eTVPZVAtSzQm
Pl4qd2QlNG44ZDA5fHt3RjdXbV9VcjRrOz04PlhaNGJnJQp6SV5MUDI+VE4haUNFOHV1TmpYTjVB
YCRIZl8jSndhdjwhNXdXPktkcE4obz1SKWB5QURTfkIqeyo9dWMySWxUQlkKejs+flgwJiNHej4j
Vm52U2orVStFakNgUXZ1cEthYVI9JG48S2pgLUV1WTJONHNtYkJlJGl7P15LeWZGeFlVIWBNCnpW
O3ErdjtkTGNAZ2l7emNudFFqKCQyY1hGMUpIOT5Ie0xoQ2tqSU89ekBAZ2xhIWV4eGRuaiV7QmxO
RFEofVpLbgp6b31ObV9IQT9qeW5gZHohZlA0JmVUP2E7K099VT1xUEw1TX5HKTgrJWlId2ZoN3wq
PiEwSFhqRHp7aCZoXys4PWEKekY5IVRUKSl6Oy16UCE8QShzTHFlNS1yRCZ7KHN5dSNVNDVne09l
dihiPmRQYVJrcE5BQjxGanwobXcyYTFzTUc1CnpZayFJVUFrdVcjd3pqO3F2eU44WS1jXig8REx1
WS1DQSRqYiM5LUIySmdDOUZkJC09X1J2I1hyUlpnWD55Q1JweQp6dHZjXztVTjY8fUc8IT4qRT9F
KmRWdlNIK2x+dmtVSVYqeGwmKWZqI0BpeyZrXysjUWI0LVZNdEh5VnpFVWA1PX0KekM4bldyPTMr
dnIrKlVNVDVib2dUc0k3WiNPN0IqST8oWGo7bChQV3RAKnYmRiZwOE0zcWZtb1J2dEpUVFo1azl2
CnpxSG4qcjxnJCpXe3tTO3YoeG9eO0c/VVNKZTJpc1FvYUhJV1VpJEMtZXJHQDg5fHBkO2RYWnxy
QyR1U1FuTUpkSwp6bV5uRGd1SHBgVXFhMEwyO1YqPzQweVY5OGdXT3hpJjtDNzhTP2dCdHRFNl9l
I0dHYjhxX1RaNiNhflQ5Yn0jU1oKejkxZ0JDVTBreUpUS0BvRU0/YmVvZCU3ZCl6WUYre148Umhu
S0dOPj5CWUFIZUZ2fUVreGctK2dKX35ZMzM7cz1jCnptJjFSNl9yNXJAejExdT12TCVDSTVadWQl
KkMmaHgyWjRleE1SKyFzcjM+NTFwX2Y9P2R8X0h2QlhLPUJ1SUlwPgp6S2s9VyFaRE1yTkhOX0No
eil1OF9gTyhOMUlMSkpYcj1jQmQ8fFVSP3JtQX43cDdnRUx7djcmUDxMUysmPEZ9YXEKejBFa30o
eWtCcVE0TjQ2fj5gPWghaEdsJClVNFc/bzVBT2M4JXJDPCo9MVhMX3YlOSpGOEQ/X19RSnhFUnVS
LXtVCnpAdCQ4NV89NThHR1MqaH1oe0pDQGhFeGo4Zk5fSjI8TE8hYzVCUWc5O3E0Q29jZXRBNFJl
X2M1NUBeeWBvM20kZQp6LX5xQE9KP3BaU1lMS0hDeTtAejVLRHd0P3RHb0d9KXJaM2ZoI3pRZUp8
YEZpaGtKcmc7bCtKeGAhQyghVGtFcHUKeihxMm43amkhe3xRVjNjVTc/TDE5VUVHaWY9TmFWSiRr
Qk5KMDlEeC1qITdPXyQ9SGdjbDZvaXJTRUsmVjl9eDlGCnozNEJBbilVV2lgT0tHJihxSGpJQ3Fh
PW4lKmRMZ1RwT2xQTkhJLVZhIUp8cVFDe3Vwc2h2PVZ2Tz88MlNSX3puWgp6eldfQ3J3Pil3QypZ
fmVlbGxGfUdlezV0K3R6Z15GMz9AbFpOWjE4bk5aRm8razhFJjhJajtAPHFrTERWYyZ8O2QKeilv
Zi1EWD92dHZPX1UqdTdMblUmQmFPcDJLOEMjUDF2ITBVRFZ0KkN5QGFIaDtyPjZFRlR4IXh0e0Uy
VUVQWFFkCnojUVphdCF5MT4zWjZvbT5rOF52WGwjIT5taFV+XzI3dis3IShCcURWeTF4QGs0ZDI1
ezJ4TH14MWdYaSVKUWw4Rgp6T1NaU3NKVUokXkVvNFF6Tmd7P29IPG5keHE+TFV1VlVCVXF6MDdV
bFBJOFh0a3huPExvd1BvbihmJX59WXJxeSEKej0tJi16KVomRThCJDg/UnhRKmFtciplXiYkO01D
M1VLe1p7OyNRJkpBQnQ8QGREYEFQamdaTioqZjNRbnArTndXCnpkRD1VZ0B8KmpYKXBnWDQzeEpZ
SHt7U2YqXiZaX2lSQz1Kal5CaFFwLXJZV1YwNEQkKGEmY1ZQSUgqKFJwMGEoLQp6Rip2JURfaFBK
KGBaTjFLe0FSVEhuUlRxJkVWbGBKWjQ1R2I1KXE3TGdCOVIrQWFsPTM+LTheOzhmSn4tT0hUXmkK
elk3OHxTeHJ8WXg+RiotJEFlQ1AtSCQwcVU/dmd2PXpkZTJyX2BnezIzKkt2Kk0hZFJRKkhNXm9f
VVIjejRuVl8kCnprV1lNZHQtVmc/IzlHZF8tWVN+IVJCT2hRJjE/STZjOFNCMClrKiptQCh4Qmkq
TnBIPTdAMThAKGUxQVAwRm1sYgp6IyFnaHpseTVHbCgqRlJvckxMSyhFTHhfYlZTQUxlaFRXfVVw
TFhPSTBHejhUdXgrdzgyZDVTQ0tnQk4oPUA8SGoKem48cz1jPXdQIUolcXs+TUdVaHtxY05+KyE4
Nks1dVF9SDJKWDRZPT9UfD4kTnFmNGh8K3tZV1k3VSFIVmY4aUMhCnotZ3YtWT5IKmFpVlBhZntP
IU9SZ3VWI2lQbUl7PCVkdikwSUBtIUxxPlRQcUV5bl4jam03PHlAMHhvZUkyNEJuXgp6OGZ9Zm4+
ektDMmltUk5TcFJjVzYpdmdtenduQypOYiFJK1hWRHMqQ1JGZGpETkoxX0tJNCNgUU94JE07NXlZ
a1oKenlQbl9oJEt3UWwzJEVWb2VLeWttKjUpQUBqbVBnV3gjZHNyb2JrP2h1N2RPU24oKkk8SDBe
Nmt6d2tBY3F2e1oxCnotdWZhUD9QZWR3R1B7Nm8wbTE5KlVvcVdaRig3YjI+RnJHfVVrYWRZYGcy
QFZeNGR7Kz9RN2loQmFYeUlueH10cwp6X1lFVihUNlRlYE4zQkAydSNrbX1rVEY3Plc0WHNDMH5q
XmdVd25TPmNaemgkUV5iMDF1X2dSV0NiaFhxZ1p9LWEKeitWMEp7TmFZWD83K2BlSGJNdDxlY0Z0
cUJvRXdPO1FESGQpYVhiX0YoJmAjZ1RVJXlYVXdDVyluQEIlUUFMJml1CnpRPWppO3VUNzlnODlI
bTBIbipCTz8tPTs8PVROdzJPLWwwYiR8V0ZAO140e1VwI3ZkdikxRysxdVhYcXBAVDxWUwp6Qy02
Z2ZnVThuVDw+YSE8PWNWU0h2cGhFVC1+cU4hcHkyT1VCO2ZJbWNzMjZnaXcybzxiaGhgMTtiYl5o
MWY4Y0gKenp+O1JRSXB5JWlwRUJ0QmlgdSl9dj91S1FwbEtDe0Qjc3ZAYktiUFlRakI3YGJZc0kh
RExLdF5BN09ZYTtYbEVUCnozaXlLMCMkRnhxa2g2Rm9jWS19cT4mYjxkWHYmNUBYalVNa29NWU8o
OCVPWUUjcFElb3t2RXV1eXdsfittMnN0Twp6NTtTWiVRYk5BeV8mJUtvdWd+MiM7YGZTdEwjMWlI
NTcle2ohPWw/TmQybGdPcShxcEZLX2VoPUkwdkFwR0BsdkUKenFjb09rVitLMj5sdTN6eztFe3A0
RTxvIyF5LSUlcSghbCMjaVdOOFZafXF3OSEhZDt6e19SPE1FJmYoTT08dF8+CnpKWDdJbUY1JVRR
JX5BYUFQSjZoV0IjUGt6TmJXfX1mVyZAYmxEUmRCX1FiSn5tS1J1TmpuI312c29od3k8blU1Sgp6
U01jTENeSCFWdFEyM1hAbUtONSZBSDJKYj9iKGBEeVNnX35QSUtGT2cxbTVabGFNX3QpVGFIY0pZ
JVRlI1hYUHEKekhsZzk9d01pcnptNjMmS2wmYmxXVT1udkw3UkMrXkdKUHdPejZuQjIkK2hkJD5a
NiYkWChnfXFeRT87aENaaT57CnprTmlZVHR7IVcpJCQzPH0zQDdtKiErTEhRdVJOUT82Smc9Q2Eq
O1VPQ3pRe0o5e2FsMioxa1JYb0FCcXZjWHhLNAp6Q0doTWIpVHxOMmBWSUo3WEsqKXsjQHJyWDhR
TT9EUkQzKHxkJSskc3ckJGQrP14hUGBvPF85T1psUE9gSXhVT2sKem1kQlJDaSM5bXA/KXVgcllC
X3soXnpCa0RUZCghMD0yZ0h0d09weW1IYHdgN0RBTGtxWCUjMW1SMUR1SzBUcXV6CnpkdnZJXlpD
LVNtLVhWSj0+azVBQUxRWmdkZWpPfDVwQj8tdihZenQyLVA/YntXMWArQXhlPzFfWnB7X1M1KHlp
bAp6IU4qU0w3M0E5SSF4Jjw+WXJRViFYKE5tWWMxKiMpY1p9cSkwZWZfPXg7VXpNdCE7Rl91QmhP
dmhuKktgem1iUkcKenpaMlopSVl7SFQrYSMkWmw4Q3thREMhV2xLPGF2cXdJN01+bjZGWEhHMlZU
Wk5LfFc9NG5mPCVCbWY2UHohPDk5CnpXJHVkJShvSn57I00xZXkoUUlJPXZ+Pmh+KXlDSEN6VFQ2
PzFhUmJAb0JeTTFvJDlKcnp3WV42ayZRVWhURkw1Vwp6TVc8WEBnX2Q9WFdSWmVTTmVpQlU8RHRj
TCtHV1A4c007TWkmZUFLZERrSTlvJlBOQX5rXm5Vb214TWU9O3dGUz8Kem5sN1B1WmdVdXQ3NSY/
dXFjOFZJPVUtb2IkPFhOQDFATGMoV0FUb2VfQVBFcD1NakNWaEZocTdoQERrZUMwbWZoCno1ITUk
Y0smOypfYm1Nc0hgeTFpI3VCYFJhSjxwTExoZj5ud2hXNmh8KUZJeDQ4RHpJJTg7fitzOS1yWldk
KUI2Zgp6WHw4emRTWCZEezlOcEBkTWMmXkt1RWlpVHVzUCF4MmE/PWxxM0tfdlRFRH4zMm1EUW1D
RW41OHt7VXYyWWp6T0AKelRWVGFtU081Vkdxfkk+I0ZpIWBsX2BjaTNkVWxJR3FXVFApaDI4REUj
VXJ7KkxsN2kzO0kwQGsxRXh0SmluPXZiCnpXYW0tfUZTfiEhSjFTNn03Tlo4X3lDdGRSX1YlfVNR
Y1ZUK25QNHVXMFZFa2RWSGc5MjwjVTBZQEpAWn1yT3tJQwp6RVoydW9sU2VqKzM+TjxZPmVmWio8
KipLTDAtbCpDR35HdjgqMX12Z2kpa2NBTUo4QmQzZUF3K208JVdiOU9RS04KenUwdmVjd1IhRmR5
U3w8PDJ9dlRrQnRKY1ArNXFlTilpcHVPK0JmJXFrO14kJXI9O1RiSiE4V2s1SCVSfTBVZjVMCnpy
cz56JFF2KCgwRU10VWB3fGY+KG15WH5QR2ctUShnUkFTOChgb1dXe2psQE90c19UX1VUMj97TCRy
b0ZkWGJaIwp6Wmc/dz9oeUVrR2xGI2lyVUNvdVh6KCRTeXJqPVArMXoyTikpT1lWK1F+djxON2ho
LV5MJWBsRUg/fFEqPUh4N20KellGTDA8MiEkVVVmM15ZN0NtZEVhUlZkOSRfSTVoMykjb2ExRm9v
Nm5wRCNoLVR8KU1JWjk3V1B3SVFneWswTD58Cno/UU54cktRUjZmMFBCdTNVYn59d1Rsal9IdHhn
Tj1VKGRaKlZTNiFYa3x+WmFta1BsflJJKE42LSEtQDNgPlAqXgp6WjgqXk5NNzJnO2YqfWROVkgw
N3RtWWY5N0FkOyMmQTUldypKYndEVm45SFo9KzVweCpSWFV+Q25RIUxwMWVSXjgKem4rcCZDJHM3
KXheSEV6NU14d1A/VShXVnN2fSk5JT9AbWNLKCVLI3w8RFZBbTl5YWtVJmF0a3c8LThJXml9cHgy
CnpNLS0oJlFyaWQwcWspbXM9Uk5DPSlPNkA+U3VmPDBUV2ZhKFY/Pks7SjEjUGEkRklLfVNLT0NC
MTNZVk07T3B6MQp6WElzJkFgYDEpeF5veHMheDMqdyVGdFQ3R3VgQj1eMCtXeEpiKzRQZVhXPy1e
cEo4V2g7MkZGeDsjKX09VTdPOEEKemR7UypWV3tNKHJhPkpkZi1vKTBsRG5mUXRycVc4PXVoaHp8
OGprWHBVb1l+fEB0RyZLT1Q9NWRkQ0pPbkZiLUFsCnpkSiZQeHsmbmpnMCk4NlZkX2VLO3BRRmlo
Y05LKVBuUHRRdylyNHdYRTFabDJqbDIrZjsta0ZxRjByZ2xZZDQ4Qwp6bTtLdFhoI08lRiNKU0da
XlNyRE5fZig0WmtKLTF2YGNIPmBEYD54QnkxJGxyVjdNJkItXnl8Mm8ofExzZFhzYHIKelZfRDtC
ZHBhfGVDaHVZfWN4TWBeeksyVkJAYllVZjZKMlAyNzFlfVZtRyN4ZW5EK09Ecm5qfD5MKl5oXmtx
Tzt7CnolVlRuJDdAaTY3YDgqcSt2UHJCO0N6YiMkKmByb1BYd1lwJDRFfG1LMDFWfWBpdXpMS1Vf
TGZVeDx1WUpkMm42RQp6PF5LUmQ4MmklKDFGa3R5KkokYm9pOFpnQ2VKZmsyJnpNMVl1dWdOYGty
QDdSM2dwWXtPSHwrYW97bH5ac0lgNTEKemJVQkUwLTVTazlOZmRCREsoanwwRzR+IzBJcmFSaW85
ZWRhPUZQbWFAOCtTNmsqOVFBRzlTRkVwbWhFYms2dHJlCnp3MDxIcD5sMTAoTXhVelEtVEI1T2kl
cWRtV01XN1AzTTsjSF8yI2lXUT4qeGchYEU8c1lHfkoxUzh8fGFUfTkqKgp6Qz53ZipBZFhrMjJm
dXB1eG5rWHg9Wld1SW5FR1NGOX0lYVgqNTFQNmMoMUtqVlFYdTx4TmImMmExWTZLNU1WeEwKeiZL
TXQ/Snk+SStlLWl2Qnk3SElCSXdxZnwmSittQDdNQEVVQlBhZW49UkVUdTsxUW8/YE1tIUNfSF83
KDtoVEw5Cnp7P0V0UzFiNGJeP0FmPXVwNDQ3UDUwOzNtOCtQVlZeQzhibngyc21hI218UDJjIVMz
OUxHYjZvaklxY2ZmeUszLQp6bD90JVBaMD1wTF48U0Y8cntpOExqNEVPcjlDPWR2TnVJPGZDe2Fg
UnlwOWp6Mlo7VjJUOzZIejthSWhzYng3b2QKejtTeGE4bTJJR1RmUmVrSTQ2eDRMIXhpS0E5dl8y
Smt8ZWpXZigpRldHVnslckt5JjtOZj00NSExJHNZLXt0SWlxCno3bzZVQm5ATzR6Mnc2bGlPZTlH
RFowPlMxbyZnOzteVlluZVlVJXk3UVk8cWBGO3FtIVI+P1IzMz84U315S3ElMAp6UT1GO1l6Yz5E
OGxhOHhXYSF0YkNNdXhMKWRARSVuYUIyMjJKMFZpVzlqfTlxZ151cF5MOURkdGVqalFZcWdqfT4K
ejcpJkI1Y1gwY2szYG9IMkp4KGgzaDsoYShTd1RvLVVfV15zeCs7YXZHbjNTd0p4eWxYJlMwfSRD
Z09XUlcwM01RCnpGP15COFAoVkc7WlkhYlVhSDtkaFE8dDhtayh0WmIkdWgqRFM5YkhmVX1xK340
TDhLUD9VbkxHSDhyPH1IV0o5OQp6Vz1RMkRvRz95RkhHMk81UFd4VHQ3UERQVEk3cWhKVFUlU35N
OEcqNXBTbGx6e1BlN1E5UnxrZ3t5alhzPzY9OUUKekhaYVBGMFBVUGBKXjhPWGMmYiVYYSRra2Jx
M3Q2KCh7PypRNzxeQmsjZGcrbVl1ZVM7eDJSamZaTiMoVzRWIyY8CnpvfklqK0hSYnhqdiU1WlJr
PW4hJCs9YmVzKjlSdipqZGp8dG0xa3ZSWU8rbkZxQz5nT3lqei1HISs7c35APntQewp6U2VHQiFs
MVhFSUVTQigqZzclT15LbnRBbWJJSGVGdHhnKEhockp1SnQ0ZE96eSFBUHxKIVdrX0RaKnR1OzFR
bzQKekZtc0k2alh6dHg1blJVK1YrQDFsIXlJSWVfMGRuUD07R2xgeWVfc3g2Q19jTXlOXyVGTmM/
S1huZDBwXyVGXj1FCnpUe3VZJSE1OUhvdSpXPWRkaUN8TU10R0U9JnJTYD93I0lnWm5+YXl0JD8j
XlMxLTd0ZXh8N097MFV9bC1ZUE5nJgp6b0QrfEZsZj5HUj5OaiY9IT87P09Jfld9MjJPMEo0KlZk
Zlp1eG1IWWxkbFlTRTxvVnBqTmxIe0VJS0JlYygqWXEKemwqPTNBQjF7RzIoO1UpPDhXa3E3NjVp
SVpgUDcjdUxubHRYYyVfWnhoQiswOzMrSEV5b01kdTJ1aTU9P1Uoc3hCCnooISleSHR6ZWUqVUlk
Q3NmfHFUWEU3eSgpe3tYJitzSVNNLTtnX0NrYitvb3AoY299TkMlSFZGWFkjSDZiSCh5Xwp6bXN6
IUkkemB+XilHa3IpOGI+PnViNzYrPS04JERrRi1ufSp2czxmcjllOFRkcjU2XnVwUEBjMEBhQnVC
ZF55JiYKekpwJUdYZzJRJjhycnR6dyUhcSQ8SHpeM0djMVF5YCFMTzYlQHdUVUxWU2pDSEpraH4r
aW44dnhhQVpeQHFPKig9CnoyMldwOFJXdlVqM0glM1ByZjY2Q29DJExyaSs9PnlXPUliODNQNFpj
QVpQTygjJWwpb154WW5JazYxZEQhYj1MWQp6YW9OTiQjRjdYa3t2MmBFdDFOe2BMZS1ednpNey00
VVNHUVcydFZPOSlhOUJyWW4+PU9GfW5jfEA4QFIwSVZ7PVMKek4ydiNhVCY5dVl0eTwjJDA4VVk8
LV41O0lNXzhQd2FBYU56dF5wcF55e2M9UEV9Zj1iRXc2LWJxZWZQUVR3S2wqCnpWLWJMTTAmfGJj
aXUwYF5iZE9sbW5vTms2YysyRHYwYEQwbF9UcyZXczVyWWN7U1BKN3NgcXcxS1VjVnBFb1N7JAp6
NUptUWhGc19LV0pDOGlLPW1rPnlkR2hXeXhmXmxIdkZEJW1LKDJTaFEpKUFLcWZ9Y2E0YGxNWSQx
RmUobCQ/UlEKel4mfXAtcyohMjtRcmJ5MSZDaXorZjApbTlTZklmR2tnTFhpd1h+ckhBfT17RFBK
eXFfJXBGVVg5bip8YFVCOUo2CnpGMGxqOzlBO3ZZRzB4RTYmdVpoPnk+c2V4czA2MHRSKiFLWEMp
dXFgcEVvPntCT2grbVVkdzM+b3x8fGRRPUxwcwp6Xk9WR0Q8VTEobjIwQz0xI3RDY0dCVDkzPHpw
dWRFeTNfPkg/cDU1MSombiRya0lkcTtFO1NwN3FteWNZc2dRcXAKejhlYExkS2RvZG5fTGp3aCMk
SExKUjUzfDJ4fmRWSj8pRXQybGhATHV2cFI7VkBXRSRlOChyTGs8VjYqPyVeKEAlCnpsaVkjOD5U
KjQzX0xRUlNCR3dZSz4zezNWbH1AKk5hKj9wTSR2YztLQzRRQjUmfXgjME9OV31sM1hIMTV4VmF+
Owp6MGE0cXp0azspT0hpQWRnO2tIM0p3fGlwWUJ8LW9zbjgoWiVYQm8jKE1eUjgtVWZXOX5hLV9f
ckomTXQ9WEFTX3QKemVzQihZO056YFFvTGtkbGIldjdZbS1YZyFHVEIpcVZYbjFWPHluLTFpeX1m
fTxNQFpxJEBId1RWV1F3P1N5ZXM5CnptejtoJT1DSWEjYm4+MSErc3E1Vzd7PmhaI3QjXiFkOzJv
JWUzezI1am1tTk8/Qj1SZjY2eUdyOTZTREVecVFMbwp6T3xvSWgkVWM+O1lwZCM3Z3pYfXUlPXlN
dDkjMmx5PTxEI20ha1NIXlR4dlNoWmtFbT5hPDk4LUpxOENrdVNmV0sKejR9b25nd2ZoVX0rYmMq
ZC0zfkEwTTlWTmR1UX0qRFNDTmFVRUh5ViNNYSM+bipNWSZSXj9qUn5qcnl+fjxAa0h6Cnolfk01
UFA4fmJVd0lxZnFJPXFwTmQxJTJiMmctVm1nRlB6PUpSYDAkP1BXd3pJPWdmcW0zPEFXK3hTeVV4
cUdieAp6I0BjKXJGZlc8Nj9PaStrdUR5RDYjYilUPEMkYUgjQDwpR1RWVz4kTTdgfGNUd2dMTzQj
fE83aVBhZnBnOTVLPiMKei1BK2VrKCM9MV8/dyhhMlhzUD19Y2psVj40OzQpc15HSiUmclR2fGFe
ZXd0NF5CR3kmSiMqMSh1PlJIWWo8Vz1pCnpVRVcmVktgfnI4bFplUWArejRGYioxNjlaIURnRD9z
UzNOYURSU2FIJjV9P3QrbUNFalo4dSFmPkA5RU56MCZTNAp6WnxCK3x4UV4/fjVSN0EkITQyRWZy
RnNoV1Z5MmQtNnNXP1MrK3s1aHVqMmhYU24mMTV0YXEwPmI9Uk5zQilXQ2QKeiZZJXU1ejtkVSk3
eiU+UiNxcV9ZSExkbUsrWmN3fTw1b0w1PWFKczZ6NG89S1R2fHRDcXVOPkIrVSZKSSszXjZeCno0
IX5vNjJAZERqUjQ/SkpkaFMod247SERwcFh9azk2TyU3PSRSQnVQciVePkozWXlpfm9jYH1VO0cw
TGc+REZFbgp6QGp0P2lXNWYwbXE0NS1JbXImaUw7eGV2SjE4S292Yz88QEJMMHhCc3lhYzA4QFhB
fTsjJHdkMFVTbTlSR1E1KCsKelAmUVNARm1sPWFJakA9UkpSeCVmdGRpWTRCcGRAOGthUDkqdWNy
UEVjb1c4WXt7VilxSDlya31LIVE4WEoqS3ZjCnpPfX5nczx0ZntmITNTJCM5QWg1JnViI3xzNlF2
MUdvbEI8Z1d9b1BOSFV9fHtNeCFXbCo7X18oSzBXdypaUXh4Mwp6ZU4qam1DSD5sJSkoTjhCS0g+
PkRhMHVGQGJyfGhtSEVLR1ZUfVc7MTwoNU1yK1V5dlhsaD0xKklMJj1zQHJVNXcKeiNfdHc1cDZe
VzNIODdGdl43UHhFRU16R2dnMnt7JW98JihoSElJYmVKQEE4PndUfXZGbWEzclR5bl45OV9ieH40
CnpTWT5sQFNGS1N3YllJcXw5JklWa2NjbVk3QTZXailKYEN7eDBFeGFCVDFqJlhUd00hPmY+MHN6
M1pSc0AyTXZgUwp6R0Q/NX0hNlkxNHI4bVB9OFZANFpPQGJYaDw1NEFFT0RsPXVSZFdrU3RudShM
OENRbEpnJjZ9Q0BpKVFHN3xZPloKemFAdFhYVlZ4I3Fidk9WdmREPXNOTDBAPEhUZ0NRMUNMUzVR
dkRCP0QoUG1ZVnQqKyZlTUJpdFZjMi1WTVdOPUEyCnokMkcmNztwXmUqeH5hUU1RXzsoQDV2QHJA
dHg8LSozQ0B3THVCTEE7dGBnb2lOZz1xazR7SkV0XkVva1dabXNnKgp6eyY9c1Nla3VHdThkcj5O
d0h1MilIWSs9XkFDcVk8dygkVFlNbzJyIUlBdn5GbGdaPHllWERoUUpXfGhiM2c9O3gKekw/I3p4
ZEA3SzRMezNLVDwjS3VmLTJCdH5OIS1lSCZFaUZONWh6ZTReRVRwVWA5TFoqPDJsPlRKIXhlYXh8
SilhCnokPV5iQTNRX2g+VClMa2h7NmYqS3llRihmV29zazZlbjZGKGBqI2IhXnNZSj9SXmltPWgy
KD0/dWozNlJkfCNfYQp6WiozbyRzbT4jfGhfRXxVbU4rYlpJQE5uJDB7Qk05TXx0amJpQ1hedmQ0
eVU+Y0NqRmpvZF9RPT9UcSlZdTlhdn4Kek59UWooYHlWdzVLR1UwKk9NSCglTyVpKl5XeDdPOUU8
TCMkZlhPRXUzVl8ya25mPmFPMUspeWM9LW5VUzRFYHE1CnpCMDMkIXYlejs3bnw2V0hWeSt1Jldq
ODRVM2dAfXRkZ2khYTgrLSl1WE5CYVFGS2pOLSNVP1N1Y1gwIzRrXz88Mgp6b1EjayZqT012dmtF
YzQwb1RRaFJRdER1XzVWdGdMazFeOHFBMTc5fW44dktDYXpTMCQ8RXtAQ3I+TkBsWTlXNXMKeiUz
K0w9OGh7NnVHRU4ydXk+MGotO3BMc3JpblFCKGI1ZSVHTkVnPHpVZG5FZkFJT3FXamA4Tz8rQT5N
VSR+aHd4CnpwQW96dnFqLVBEeTU1b0R7WjM2c016cCRrP1hOdTg8dWZOXnhvezhFM3xDQzRNcEky
S21naFgtcmpFJHJoMVpiQwp6PjRsT3JranZ7QFA8VnBzRGBPaW1sZztPSnlwaTxKTzB9bz5Ic2JB
PCVDZmspMSVpI2hmcyR8czk8XiVzIU03b2wKeml4fm91bEBMRGVKI2Nic1M7aEBvTXYtZFBpekN3
UnI9SHFvbDVabDxifGpHeCV5eyh0ZV9CPCRscXxrV0ctNk9OCno4TTV3RjtkJU8rKGIycGtzYSFt
SVVBflF+LXB4MTk2fV99ZldwVWhxcz5Kcn5QMVApe3c1emtISGp9QW94fi0oMgp6eXRtWEJWT0FM
OE9+RmBwPj8/KzxvMU5GO1pOQms1Smw/PDhfNDZYdFVNcU5RQlkwOXZyJUAhSFpfYWJLa2JDfk0K
ejI9UldTYjhYfWh0IzI1QDJ4Rz48XmN9aWFzX0gpbkpWb0tIRChaZ31YP2xnVTxTUmR3MklPM0Ak
cjFvbmh0UXMjCnpZWn5qcTU4Ji01UTFXJF9UVzM/fU07KkU+dURKJnJqISNmTUR+Z013VSlgT1h6
S3h4cSpfZW55JjhzZ2ZlcGZ1Zwp6X2Z+b0JNWX42fSlyJTV5b2MkfE8qVG51Vyk/fk1eKD1OMytv
cHpZdmhFXj8qSGpFQ3J7LShOSjY4QjdOY3JDN0AKenchYyZKTzdtTDtuR2EyJiVXXjJYLUVGVChi
ZDUxeSR+N09tYyE0TDVhdDQxeFVnUm1sSD5WfTk7cj9iWnJeXiptCnpGWWA/MmJsTFVHUkp3LWQr
VHRsQFFWaDNJR1VRfWA2TElVJHk7X3N2NzQ1ZDNHP303RjA+ayFzOUtYelpmcjI+Mwp6NTl3WGF7
bmg3KUctME5UUmtOfiY1Vko7JHlvS0pSR1hQMjg7YzxAckRpNFBtRERXP2lFSWRzbGFvKldqJDJ4
dFEKel40ayRrdk9AODtPb2VmY2A1WWNWdFNIbXVsLWpsNUxeX3lnYjAoWCF7MH1wKkBiM0c2S0p3
K0RQO3MkaEVXbW9fCnpBYlF0bjtCPkxAWjtRMDhhXmc1fHB8am1FdmVlKVA4LVApTy1uciNUQW8+
Q1V0WCpydXkwKHw0Kl9mYEVRYDRQeQp6Sm9kWjdCV0lPenp6cTk+TjQ8Umt0b1RkZUpidytYPykq
RkFkd247PShVQGJKJUtHM0RLM0ghbzIra0xDNVd0PW4Kem89KmxVeDROTmtpUTRJMi1sV21PKXx7
Tjkoe0RkUnl6c0JaJnhhU24qaihzeT1vZDBDbj1SRiNjJiszbUdPVW5eCno3PWd8S0RzIUNVKD1X
d2U2TWgrSmRiRjAlJjhwbiNGc213UkE3TyYjOE90YSsrVGp+X1JMU1lJZU1mPVhHIWs3KQp6MTYr
Q1d1STt4THRjQEZCMCFIOVQ9ekVUcF5fVDNvO0xpbTNvNUklOD52fHJXc0FeS3BhTTRNNzIkN3Nl
QjYwSV4KeiNeSj96KWk0d3pCO3dAVHZmandgRGJ9d2clT3NWKWNSOE8zPT1XRExLWntQTzshaDN1
YjVAdkxYfntLPVopNWdKCnpLeEh3SShzQG1TS3ZvP3clfitHK1I8enpGKHl1Zm8pNFdOZ1M7NHFp
WUY0bnZaejc9T2UkeUIjI0hofksrREVReQp6aGx9RVdofmtFUUo0VyRHZl49O3BxcSktVEAyK2tt
Tlh8MDVBfip8eDFfeH5WbnYlIUgrVT9EJio7O3MjTjNePnIKeldzNjRlbUJYWiliQncjNztBSGha
PiFzbDlHYFp+OG5sVl9hM2g2ZVYmLSRec2F4fFRIVDlaJUllaVoyWEVJfUVqCnp2fFVFeFVweCls
VU03aXpFVHNBP2sra0c8ZnopYX4zR2xDcTdjekskVHs+Vnd4ZSZfPkcxQGxsa3BvODkwRGI3eAp6
OUQzJXcjXj1QPncpKDZaVnJ5UElrNjRsKUhZaEZRZ0hEbFMxRnErajxRJCRkSk1tZEo3ans+NzBk
P0UhX0pJRVkKenRiSnEwJn42PlMpeTRfeEohISlQPCpaJG9XcERFdiQwZW4lJmlDUkUhflh5ZmN2
OG1CRWYyLThMdlNOaFNaXmRZCnpAPDVVPmJHP0Y/LTFYYH45ZnhXKEZCRXZRUDArNk4tRS1vUGgz
JjJVcj8pWEt2THJHZyRUKEJlS0UhWnhFNld4OQp6NksrNmArclh+VUhVVmsxSnlGPV8oRyZ1STh0
PVIjcUZuMSpXI3J4KkBhMyg8Y0M0I0J4QFVzZDx6ZmszRSE0WjQKemZPKjA5dTdeY0pwRGRyPnt7
Uk4mVXMhY3k8ZEB2ZkViKUUqcWgjYD5oNHI9Vylia15uIXhGJmk2ckt3S2xiajQtCnpuKDh6IWc4
biVZallHdG1ne19+NXI/eHJPWSpZSX02bjRoTmIlZ0ZybWNjbVNfQkdKPmtIWSNsajRtfG1ZbHp+
cAp6ekRzaXo/YWtebUQlU3c8YD92dVIwTD8lJHpuIUg8KSVrS1ZjeyMzIyFMRGRGWipWTWJadFM5
b3FrR0xjKjc3VlYKejE4SGRUe1REY0ghIV9wZWEtfHJ7dVUmcj1idyk5bEpkQE16SSFfcT4oY1VM
LTU0PCt8Si0mP15BX3VzVShlaStSCnpOQUpgaTQwej1tczJ5dzFIUVNGQns2bT1QUzlifCZCeDU1
YTd2a097eGJIYnMkemsoKV5zaGVnUHM5Xjd3eGFlfAp6QVR6bEE7ITRSUDV3c0VWRFJuLSpfI2NP
dFlrbzEqd0h1QG9UfjFPWjIpe2RWPiZmU3pRKE0hKWRub2ZrQnQ+aj0KejdyTkV8MDBaalo0MVVm
WUJKbWNhYHJORnhifmMpR1BvX3p2dj9lPnJUa2t+SkE7Q1F8K35ATUhocj0yTmhraEoqCnotckhN
YFJKT1g7R2BYYUxjRGNWI0JIfWtlXlBtdjRmWj5ObUJQenArXzgpe2dediY/ZyFJTWkyUFY7Rk5A
KWxUcAp6dWkrZnlzWFgjfTZPdVNKXkMhZ31KKlc3Vzt6ZVV+M3smMFErJXdIezN9UCVab0U2K3BK
OXMkZ3pAR0taZnMpMmYKemJnSkVAKnhNSXVFRVB6dCZzZStoLS1tU24wM1M9QEh0X148U199RFps
R0BjTC1wSjRoeTVjbmxBVTh2dmd0aEAzCnpCel98QkQoa2tCPlFkQER3U3ZqfSpkJks7Uk9nVTwq
QzJ2SDt+Qit5ZVdzaEh7aXtoXmlEQ1okaUdlJCNOI3ZFLQp6V0NiV3VMWGRPUm9EWGBndilJTFZZ
YkJrQXFid35jVS08WGd5Tl5kWCROT0M/KnJrQD87R1pnZ0h+IzwoZDJgS2MKek97PzJPLSNrejhx
cndfQ3BKVTx3MDFvTF54YHZzaEFoJntodmVIUHRTQH5IY00tN2pCZ1Q7Qnl2Kyo2Z0xufSpoCno7
Zm85RGlPLXBQWHhFUzFfQF4+QFIhIXVWKHJYJTRUdzYheU53X0FVaW1wU2gpbzlnc05ITm9DOUFg
YWkzTn5BTgp6RD5wRk0yYUBvWiVsKWVMaHs2SXhibHZ7fGoqZE8rWUIqUj9paShaUVlVOFJAbUc1
SnZ4Y0hDYTIoKzBrUjliMTsKelJeUz5YNVpjNzc3JTxAaVZDNFpGeyEhXnBQWk1+KDwjPVkrdF9s
PiVnfWxweXlAKDNtRmskUD5XYXskWWVTLTBqCnotKSghKVE2ak9vamxkaTdOT09iIXt7WkZJbWdg
Y0RePXA5bEw2ZFoyWXdDczJlQkZeb0xGdzE4TzZqS19QbGEzMgp6QmJuQmV4MFQzczM0QnZgWCoq
bk1ueV5NPTFIfSF4IUhffWM9NEpWRC0wQHk1OyQwcnMhWDcxZnQjdjR6K09vVnoKek4wezBBZnck
YU90SUl1Jil9Sl9yRCskNTk4Uy1xZEY5dlltLXlAJlViNiNvak80YEEtJWlHUEBCS2UmJXRQeE8r
CnpwbUwpSFB0emlsKVRJV1Z6dEA7a21vJjlARmcwSmNNUXZ8IUNEQ2A3djFyS1VJJUJfYVNwIXM7
ZDYxSCZkVn1saAp6UShTNnUtJnghRnVCNkJFaENoRUYpYlpBe1hTSGNTYzV0SnBDLXtZVilMX0BV
UTVfdHlacF9odDVaPCRISCZVXzIKekc4bTJ6WU9jRTcrJThAanE9PXBsOHdJTHwrMVFQe0Bgc19S
cXRsRl92MH1oKmNzeTIpbF5BWVlqV3ckdWNSYUV2CnpSeEJSPztqQHZSe005RzhVPGw3cWo8d1Iq
JEVNc31NN3JJQCV5d3ZzcXs1cUBmRHszcXBPTEM+NFU9Q3crQUZvWAp6dkRqSGJKOX1yfHZ7R0VS
T0cwQihGPFRpaU94cF9YO35nPV89fjcyNHBXITY+aXFUN1NUITRqfXNUbTgzKXY+bT4Kenh3NTw0
WjgqTGdUSFVnT0FfNGlzV2FwdkMkRHlmcEFmd0g2OT8+X1Y5aSspP2IkaDAqJS0+XiUzdH1YPTVw
TmBvCnojUEJoYWNtcFR1WVczKipNeGBhQG0yVy0wZj1XdDxrVVc4VVdVfUwpez8hQ19AV3JQKyFh
N05EN3NAbHl7Y3Q7dQp6b2lrRStkUk56RW5PRyFII0xGYjdxQUhIeGtFTF9WOVpuUXY7blRWQGJm
K25ybWJTTXlFTnRLPUlhcl5aY0stbHEKenBYKlgtLVVxcyM/bTJIU0JTaUMrKyFXc09eUEcoRTds
WUxMQGw7ZDlSdktjPV9RJVkrZWN3RVlhSmxGTD1lTW4zCnp6bCgzO28+dSFAe3tYJlJIZUBGVSpQ
aUBXOWI4VCk2Wnt6UmBNdTM0c0hkdUpvJkppSm5vWjMxbnVPd2VKOSpUQAp6OCU3M0g9UFhWelJB
MyRsSmwyMVNfMzE4ZEJURjRYSmpBZHZ5dWt0RUJ5KyRWYW5Fb29paiYwaUg8bFYobUokdDsKemt0
ZldeY3EkMVA+Nn4jfV42T3E0U2QhYU0pNl91ZDQ5YDRhcjM3YW1IaDlsYFZ4YGZOYUgoNElZcWhR
T0gqR2p1CnpXMUpXRlRiNCgtSlFDT31iSF9eOXZ5Ul9mdiR8YCZRS0ZqUDR4P3gjX2pibnwzP0JY
S1gqXjVlWVk1WkdAWj1Mcgp6cndyRjBGQDhCPEl1M3VHVmR9UzFfP0dHaztMJmpudV5gNis5Z0w7
M3dUZ2p7ej1LfG1IfC0oJnRIYWpERTBRZHUKekRfUzxDPHczZGZ4TV5sM2F0OHBBSTBHMjNWNnhL
eDBKcFNWNjhjLXFFbF4qeFMmTWleJHMlfmQ8ei13aChTfT8lCnpMT2J3bCMtN0lKI0ZkZ0h4QVFr
SEMxSVl1SkR3XzVqX2JueyRBMTtsZVh1JjF6UnhjODgwVjVXYFZPP1FJQzwySAp6UWtMNXQ3K1RT
I0otTChxd21wfG5fIVg+YWNGXmlGWCFgNkhmeE9YaThpYD9MMTkyT1c1c1dKdz1jYTRaSlpJd0gK
emdubGozdUI7e2FiYVpXTVdDbDYoJCU0ZUo3LXVTXzBwbFMyd2MoSFBvNWFea2RuQmdqPF9UP014
NEJscElaPWRmCnpRZ1R+MzxiJW5zOSZLWSp5MVNCNEIjLTlZeiY8aWImSWpnZSRjK3FMUztrZUst
RjUhfUd1QnZ8UGA5ekFxdSlkNwp6OX1SZFQ7R00+bzBoMytUYlp1VHAzUzlZP3JmMzxEUVRIRUAk
QmNUYGI/M25VMDFFMWZiVGtpJkp7ITJXMmBgbXQKemJyK0p2NTQtYmpJfmFnRjB4UVN3ZH5vaVRY
e2NOMmNQbnBkRXh+SVR4Zn40VDFaPlZmekloei1ZZnImaSYlXmlACnpfO2B9Pz8kK1MjNUtYN1Ze
QVZPZyU5RFp1O1B0RDkyTmVZQk15IzhEa01tYklgc04tfF9ISCZgYiZtZSRfRV5fJAp6MSkqNEZ4
dD47TCliMyowYmcpVmc5ZzFPPC1OUHxGbG5naXxTRG5yOWVedD0jSDliUkN2NnxtYyk3bl90M3hA
a0YKem1udTNtT0RJUW1JVUltYjJQMT04d19aQiVrJntvO2RePlNgRkpoSChzQHhXe1MtQl9YUDB8
RXhrVChKViMhcXV6CnpxMlpxd2R7bD0teFlxNCZid2k/QiM2djlGZ20oK2NWaT5IMV4mcCZxJk1L
Wk9BQlNIMm1jOGA8MDVTYmoyVVdnUgp6X2E4Y1ZtJXYpVGhqa2UyRjZfTGdrfDhXYE84Y147ays/
V0pQYXlJUkUxcksxPmQ/REoqM2dEUlJGNjRNRzQhdlgKensyfXBAWng8QFo7PWNgZVEmTzE2eDZa
ckw7ZmRycSQ9Y0FlSUJ1TWZON0F7UXpaVTQ8WW9FI1JfTG0lNitoUXc3CnpMWDdZUlRSZU4jd1F+
eThyTzgkKmB7fTlXJThuNmduPmF6QlRhP2U2SXBaaGdLOXdOUUVXO2RgJFJGKEUqWmVFZgp6ZEBi
LUYjcmBxVlpnbmp4XkZAe2BRZFYxRXZAXjtFKEFnVW1maFY5RCZQOHpBd3ZfcmRwKkVZU1RySThp
WSFzeGgKeiRlJVdQZTg3NzNfT0RoTHM4bnQtbyFhUDZ1fUxRPVRLK2B+VD9RK09re0Q3IyNQYTBm
UkJfMlVfcGEqdSNhZWZRCnp2YDgjOF5KI3NvI34me005ejtDI0tpX313dTJwbjcoJmlmKHUwJHlA
NDZJeWpXaGFJc3NSeWxPWU1OWVdHZSU/JQp6QHdye3U7TnBjQyY4fmU+R0UjKEVxPl9FaVl1bWY2
UFVkVTd4biExVTQoNHxgQ2FyeXIrQnU/NCg9K1cxMnV5UkQKenIrc3R+N34kaiY5bGReKTJ1Wkdf
aktkbzxWKnlvM0hRUV5nYlVnUlYyaSlye1FEWjdZJCs8QCNERnVIS1ReNUAlCnohNmJPcVo+PTZT
RXxObSQ8WUYqYmJpcUVOeHQlQSZlazhkZyVGfUsoe3tWVkxDX2dmNXUrI2h4O3M4VGpPPllsOQp6
PFMpbkpUKHV+M0pzO2U0UXBIOXUtWlg4Y3hxKz14JWY8NlhFIUlILSRRVEg+e3IjZ1A0Y1g/Q1FA
OE9nbVkpVXYKenVaU1d+P0M3eT9DQSkyOVA7LW9kbDUlPlNwTCp4LTtNQkJSJGYzS3A4RHE1PTA5
SGZDUGsoQiRkIX1tZDFoJWhjCnoqN0M+KSRzck13KERXenpSfXxeV0VuYV9wenNVNHFRazYqUTU0
cGVkSjNSfmJxND14ZXdiPWU2bXJfQ1Y2dU4+cgp6emN5akpBQmUzQiYpVzBpQ0gkOWBfaTxAKWk9
blpqbUtPLUJNaEZSPmdtd0RZbGo/cDZAZzlYfF9VJVZVQkVfUi0KelN6Y3c/QkNqVX1OJEhWVGM2
IWNfSis7Tjl6Sitrd28jSGZjTzB0SXRQWEdsWV5FdTZIOGFRXmpxWGpSIVB0Znp+CnpSSUhgUzw7
KFk7d2AxYGF6fWt8bVVMdyZne1BfbWNDWFM5a0FNRlB9JURWakBNRFRwTlh9UiFraDt7MjF2Nkpu
SQp6WkRBRDRCeXRgRFozNyhwQHElKytERXxOdEZNSzxyJVlQb1IwbGJNZiRxSz88UkFWTyRjcUR4
KmtRIz0hWSRjVS0KejlZelQ1YyN5e0w2M1IzOFA2KkdnRF9ZZDQmTWlqWUotKnxmbTQ5VjVEU2pG
c01RY0FESlhFbUQzdXtfRDdpfVdRCnpabG5TV2hkKntnQDx2b0U2Jk4yVz9iRUd1LVlXUkhXMj96
YD1YZ3xLLWRkXiQpWkBGN1Bed29zJTgpdnJUdnZleAp6dyh9VzU+Jk1QQWRpczRVdSg7UXcoNnA7
PEglb1k5YXMtbzNnWipoRXJWZEFAWW5GfXtsP2JfME9ZWDYqQ29xKnsKemwmfEBrdypMU1NefVJ6
PGg3QzBxLSVzSkBYNC0lTytqbjFWWFBXMmIqVyZ3Z095KlptKittMkBoVXZRPk8jWEdUCnpzYHli
TiZASWZ1SjF0NEpKR19RUjd7aE1IeigrcVhyQj85UWcwIyhRXlgkXjwkWWxmJS0kQDsheGppPCNq
N01CYAp6I1d+QHJJZGUmTDlWdTAqNnVEYkh4QXU3V3JLZjNAUzZYKGJWYF4zX2hAXnQpJVBpNlVA
cGxrJndCVTNkZSt2M2IKejw4T2c8UFpEPyEjQ01WU2s2TCFuP1dEVDxITVhlSSMzY1pfbkdsdmEh
USh1RSghTjh2XyVXPCRUM1R1e1Q0PlNPCno2Tz1QK3N9c3NsNUF8PTY4eGg5fmxrSFBAVl5EX0xF
cCVQI3o5UTJ0XkB8Qn5gPyo7bnpaKUU1QnJgJkk/YUI3OQp6Mk5pJmZ0RUAmSVIlckhWJmJQQW1i
dDl0bE4xNUN2cDlTSz1XfEhBemxrVXBGUC1OcWxLZHZqXmVnUytYKExPSzkKenVnZzhgbVU4SDtZ
KjhVaShRYzUpYkdJWD5tTkU2T3BMfFg1XjRgP09gVldnT3s2ZWwtcT1HOStaUlVkKiRDJDVfCnow
TyRCIXgqRmQyRGU7JDVfJW8+TT1Hfj0qXiVhZHxnczVjPTl7Z0BiPiZ1XmReZjh7K3ljZTtacnlv
YEw5ITQ1NAp6ckJTTT5TXlVwP3dtTHE2cWc9fnI0eE94Ny1mcHhIdD1ZKjhfNzR+P0ppSE50ZTkm
P1UyYWI1SUY4YjslRGshY0QKenZEO2VBT0dlaCMlV2pmQE5GK1c5Wmd9Q3BEdEUhSmo4eylAYWlT
S294cTs7S2UkQS1jck5FVzhoMndXNGZDZCFSCno0fnlPQHUpV294bEducjlPQHZXZj97QmUzZ18x
KFZGKUdDMTs0a0d+YmBMUEFFTjlmfXJsc0d4PX5rKFJfRlZNVgp6JERAMjFfP1BoNCExdUIweGBi
TjIqTkR7MzZsLWpUWWlPY24wMWA0dVZ9PT4qM0Y1cn0wS35mUGtFIWM3UWB6YGgKek9MO1h2bDFy
PTBncHlgKWhFaz1GVzR8Zl4jfmgwQjVCTio8azNZP2hjWnt9dlFHaFglI3N9MmF7e1p8Wk8hayUr
CnpHTV9GJUk0eSN9MUpnV25gRXk/VkVJZDdASG9Fc2BuTEsyd0w5Rz9NazRScT5jJUpRSXt7VkBl
d0pkbXlmaXxUKAp6QVhnYDxrQ3l8U19VOWhlcTJrWXBuKWJFZWVQMiUyP3JvJHBTO0dfdDwlZ05N
WmRjXzV1NkpPTisyP1ByK1ZNP3kKelRlXzE9SUR8WkxzeE8kKXpzZmY7JlJGeDRrXkszcmp9UDFI
SnxiZlVxLWBgN2AoPV5iZy1DIW4xaEV8Zkp2cjtzCnpuJWZ6TXB5NnF5cnE4akM4b25qVistPXtk
Yk05UmE7VE01NUtaOUJ4emp0Rjh5b1cpTFNHdDxrPj4xfmpDUTZsTQp6SjdYamZALXBLbWorT0hV
dVh9OWAhJCVaVz5iTVZ5MWR+NH1gPzx6RiQqdD99aWtpb1R7MDl6YDk9TVpEZVFwKj0KelpEQn5g
bUxnYmslQStISipSTzZYJEBRTlhIbVBkP1V7PlBUSmNaTmM1fFQjOyprZyswemA/PiZRQG9TZXp3
JGNxCnp2eXotKHoyNSUtQGFMbEZSIyFVamk4T3g+TVNtUE84bCp5MSNGNSZuZWRGYndxZFVrPjZy
T2hxcXcjSSsjbnFPWgp6ckAqbnRxKDtgNmNrXmJKVUpIV2JKRiY7JlBvO1YxaEFnJE1hXiY0eDFk
R1hLYigleEJhbVdFei08Oz5SRHwqVzMKelB9MjJ6RlpJfD55Y3NHYTNCRUFnOXZFYjkmTzcmfmlK
YS1sUkRgYk1fRUQ+cFZAc0FXdz0+cEhUfGVRPHV5fFZiCno4IT5yekU1aC1CYCpHOFo8TGcqU0d6
flFKLWBxQGg1PiFTOD0wMnhBS01MPnYwSkxWK0UrdTxyTX5Zd0UjPm57IQp6IXZ2Rz5pc1FVUnJE
P1lKYT5YMzEtVDc+YGUqcytCZH5JNT9hSCNjdHgqWVo0JTlEbzFWezFZUSVpNkBTI0skMjkKemJC
fVhneCMxcy13Pn0pdUVHK0Q5JjdgKWlHdiE4QzQ8ZiFYQDNCR3JZcj4/bWJ3NEE1ZGZAaHteIUIl
b1lqP2xqCnpFeDIlQUQ0VDBLX1p6IUBScD9hMV5UbDNJUHdSNlMmQlo9ZngkZTNiankyc15QNG0r
OCM4TD4hLVlqcGQ+fHA+TAp6XmJ6bXJTKHBBbHd3dzJJJEV3ey1yI2FQcEx2PG4hbT9SKz85UUxo
bTBRQFBSI254NmpobE1xKGN3eDlEOXZqKCYKekVnbXxuSU5gcT5TMmdoYHoqbCs+d0VBcCVFfmcl
OzhFeHpWbmlwUSVTd2paVEt0cDR0WnRMMXtyeHdKcCgmVGokCnpSeWtkSiM1VTZGJmApbmBZRWxI
fEJ2KXY2NSE4OHZ2Rm5+c1RINGU2T0xlQntHVV9tMTNwczl5TVVFPnRVRVM5bwp6Rj10KkI8biVl
PnhRbn1jalVNZDdlUEhuM3FKcW1oa2laXzkyZXY0QCk+YDtROEEjJWFGaFpuITBhI1MwRHN4aFQK
ej5TQ2pLPSM0OW41bztRanJxYFoqK18lNGRyYmpDSDFGbDlmakMpdDtONU5sK2BsWngmPy1rdzV3
dXhuRTsoTSg7CnpUKlp9elJEKDZTXkFuTjYlQik4YCpYTHFlWUliV0MjQ0RlcjRaXlU2JW5uaTFA
TmpYNHt7WlYoWlEqfHotMDNAYQp6UEx7WFA/TCZ5OXdVZ3o+KGRSQCNDO2praW1sdWIxPDt3fGJq
QCVWcnRHaUEqR3haSmlgd3RhYndaNV84YCtaSyMKejIjWloqPjN0ZChRZ2dIY0QmeUI/Y15MMUhv
Yz0yN2VqZDtAaX5BaWE5YlZwREZfdnBwXld7Wn5CTVAoUUMoSH5eCnpGdSRQYlQjdGkoR0hURmle
V1MpZyZ2QEQjbWYpX2dvX3h3QUUoUl9sM24/Snk0OFkpTHUxIz5DNWo8VGN2OGR8MAp6aklzcm07
PzczVG4oX3R0RmI0TWQrVy1OJEBeUE1+dSl5SksjO2FBZU17WHxATztOb2t0MUEzVCo2bG9QcGYl
UjUKemVRXk0+LWpUVGomNiUqYzRDal5eMUZuMVl1YnlPaDxZbyZnJVhPfXwjRjFhPW8peXg1KjJ4
Z21STnZjP0RTdFg1CnojWTF3JF47NXlZPEUzKDFKLTdDUyZgQlpsUlRRPz0+ZG52Jko/cSUxSUww
bGxqfnxrNC1nfT4zezBzZXtBQEhffgp6cmcoZUFndWI2YFk+YHtzTSplZiMwNnl6PytuLU9uen5s
PCZ7Nlg7X0xEZjgySkA/NTVwe1lqZFZUTDNDMX09UVAKejxRQiRCO1B1YTt1TT55Q1Q3PWUrLUNr
VlQ9Kz0hUExgRFM2cGwyLTApQnQkLWgkcHBSPi10cmtIeGQxaFFJX15zCnpsTUV6QFAhV3YkcipZ
NVlVVmFMQVNYUHdieXRtJXA8YUE9Q1VacDcwc19kNUMmdnY9LVd4UHFJI0gyKzRrJDFeMQp6cSNg
az5hbHd6UzJwc19BV0xFXypoJjEmb3VRaHxPbllzNyoqRj1CQDQpY3V0Mk5sYWAzZkVlZDxnPSpx
WlBsSFQKelIxXiQpMHprKWRhcWFiQFlneDY2Z3wpRzxFcUBwaVZrRnc0S1UyX2tBWk5jRSpQJVNo
bEFqYDVadSVae2FNSDRVCnomcWJUIVVZJWBsbXxMcnZSXm13X142bGI/MXVPXnwmT3pnbktQc0Il
VVAoTD85PVB3UTN4VFMlSzE4P1ZBVkNseQp6NVAqRVM/ZTJONUtTWjxBPzUkXiRSfkY1dkpHeXlu
LSFkU18re1MpbExGZUFGd088a2w5OWVEIyVIN097Mi05ajgKenohX2ppQ3hNPilkKHd0dzNDK1NW
ZFZWRUsyUUYxQnR4Y14lIzRqdlQkVFp0T3YmfUVzQitNQF5TWkFpQEFPWDFYCnp6QCpkc09SNEc7
LVFCKFAqNkYpMUJvSVgjTlBSTV5sNWwoVXR9NTMxUz1hOFNqP3BFVl9JJiNXNjtxfkleYUlAMgp6
VitNJk9oTUhpUlJePHd+UXYtbkJWPF82aVBCTi1OJkpLRTNITDxtPSVMSjJ1ZnhScmNxP1BTLVdu
WHhYPmZwTkUKej5sYWg1O3RJKWglJWxHUnRAdWBEXn5gc1QxK2NnaTJeMTJNJEM2eTA2bmdxcXM0
ZXdMXiZ6SngrMWxaYysqWEtnCnorTkV9QDlRN045KGJ0WC02I01URj5LYT1gWj5VXkRZWW9zQklF
KXJSb1B5WDxfbERFKkBKKTB7KW9DaH5Fdk1pMwp6MXcxT2ZtRn5YLUNldVdfekw2dWd1KF49IWNM
PCRBdU8qbXVSUmZZdzdfWDt2cFY7QHI3SEYzWGFiY35DeUh7JngKeik4PEx4S3ZNKnxvPUY+eTNY
KEU5XnNmYHR5Z3pAYWMhMW01aCVZU2MtN01wfFMoZT9kVmd1eG0yPyM1X05IYCRsCnpJSHZlcCNy
bnNDXzR4SCYxKE1USWlQfFg0dk1eTyphdXRxOHAjWVFHeE5BfFpRQWQoP0p2PT1LRTZQeTR5TlJt
Jgp6RTd4QFdkZ25eTih1Uj83V313UCVTKSkoNzRfNTkmMUJgZD1TdlImZnt2U3V2dVFaIT94fEZU
TEszWVBrS150JW0KeiFhTVpOSyo3ZmNzPW9OMjw0K2dzKTg1PV84Zi1XQkFrNmFebHwwd2wydHdv
Kis7OXtPZnUxdXx0YkEyLXRVYzF9CnoqRngjVUtAdl93dGJfUTYtNnRHXjRvOX5gVVl3SFUqV1BJ
NWpSdks1PzdZcmktJXI8TndTT1d4KShiWXZvQ0duUgp6NF54QWpwIX09U3ZASChoP1dhIUA9QEc9
UTlATT9Ld0UxSVkrbDRIa2ZMamJWSD9+aGFhTmJfNjEmIXA9LXI5PjkKenZYVjglTnRFczxwaSo8
czJoLV9Zd2IjWEtEWU9ZUmBEQj5QPHc8TEdaR2V0e2heYWFFNzBycElJOylsYFRnIUI3CnpMVDsz
PUtlP0xgezI8Y3hPRyQxdGkjZ0lMKzxEVmwtMklfcVF5JHtQMEB3cUw9S3Y1IU1sZzkjN0pMaXdt
eGxGdwp6K1puQjhAP25aQWd0fllnUVI5I3sqMj9ac0sxTGdmMEZYZDYqMzBwQ08wbj4rbExQNUBN
XmJ+NEM8cXg+Qj5tdVcKekc2P3FfaF82aTN6aWc8cWVKZX41cX5hKWF4TlF0Rk11Sn41RmgpMSpD
NmdySj8jUnpod2QzO1FWTk8qZHgle18oCnpuYmxGP3M+eGBSSzIoPWd7PiMlTmYzUXA+K3ZLZFFO
MHlfJDI8TElAKm5NaiFNJTRiIXhgfiRKTkNzNC1RU140YAp6Yk0xX2UjPVMqK0wxKkhxQSYrWkk3
M0tSems7KztfMVlnfCsmSCo1Vyt5RS0xcDAmJC1SYDdKYkFHKUBfeDN3XjcKem1tc1FiVHAocFVz
UF9YST4tRlprPX5KT00/Q29iUWI+QntoR1F2O1V4YH1EfDk1d3lvJWArSXxQemdOZUlyalcwCnoo
PV8oZ1pfP2N6ViswYWVoQ3NtME1JdHFqdzdLKSljYlBvVXZBI0B2ayVzZzxYQzghQnBOSDx5PlBk
QlMqeDF7UAp6SGhETldLWV5+QWsjd29QVUg8QDYxaTUzVCM1JmZMYGgxMEJYPDF7Jj00OUs5KUst
PSlhUTRPSlhzemE4bDF4ezIKeko7MzhOWVgwVStgX2hwb245cV5lN2Q+bjA0fWhQdHVseX4paERx
WEJiKX5ZQHFQdj5nPzAxa0NpTUgqLTJVWjBeCno0YnUlPT94Zj5NYjhpMHR0JjU+ZlJXIVFMQD1w
fEx4JiYmTG1VZUxva3tINVZNKmpmM1U8VjlUQEt9c3o5R2Q1Qwp6QnlCNTZHUjFKTUVVbEd7QT4y
bmlnVjJuRihEdHNFUmBfWUhTPk41Ky18SDQ9X0tYfn5UYk1EK2slQi1aajFsejMKelY+WGQjcjgy
flMocjtjejREVFBfODZYOCpAeTklSyYwSnxiMXZNJj89NkNKPlc+dVVrKU0rQ3BQWm9CQD5pKzsh
CnppWXRrcGJ5SUJJO1lyRXE+TiswN0hTMW5CKHxqR1JZNn54aEhFQXZNQz9RYzV0PWdjTDB6bHB5
WENIZXc8MEswNAp6dExUfj1wV2Vle2t3ejQ+T2FOfH4rdyR8c0A2K0NySnhVODNqWD5EMEEtaUY9
Rl5+fjNORlZQNV4mTSlSM0R5MW0KekgySiRkd0trPVJ0M2Z6Sk1nQiprRk5ic2haaS0jcCt7Sjgp
VDFjNWZtTHZfSm8tPXxAR0J7SU8rQW80TU8tb1ZJCnooc3x5P1BRMUJEV1dKdFgtTjIwTWgyTms3
T1JqbDIlfHF9eyRDfkdYQmk2MlRyJGM5e3M+NkcyYnBVd2hDfElLYgp6KU5SfkhRPUllWlJkNCkj
clk2M1o4cz9uUitjYj53JjhJaCFFX1ktUTZvdHE9aTI4UH5JcFY4KFM8dmRjZV4mZlgKel9+SXph
NXRVWiYqMzU1P152eHJ8K1YkMClnSzc3JVN+RW8qXnthXnlpa3VlKHhgVTJBWXQ2NUdOcTtyT0ox
KFQlCnpBMjdQRzIwcnsxMTAwOyF2eytiSl9+SipxdkRkOU1kcEglQUZAOE1jI3tCJXVjOUR8QW9h
ZDV4SEpeRmwtd3BVaQp6P0pSWjhOKk9pUnA5X0RjdkxmNCh4bUUpaGE4Q3ozZFYxR0k3VT9fNj9m
bX0kJUV2WS1MUW1SNFN7YFNud2RTSzYKelNjQHMlX1R3Ul4yKmVkKiVNeTRNbjxhJitGPEVjSj9k
Z2IjQDZjelZfV0lWb2h2RSV1TSVKTyRCPVQ8NytFYD9vCnozNCtOUyRqbHFkRUFONWA5RjlqNygw
SCEqTGE/YCtRUFpAV0N+anJFWCtraEE2Y1dkMVNJXjFgOW5WNDJ6b348aQp6K347LVl6ME50Kmlj
eno3YEI+cjlZM3AjZmQjUytNY0F8dFFyczFBKC12bm0wQnlCTHI8JE9QPjF0ajEhP25vWnoKelp6
aXI9ZGBRKThiaG5XI3FJckpWPVprPj0rNzFwO3hXT01jO3JVV3JjPmVENGQyVX0jakooV2JCblFT
eCYjaGFuCnoyYCpfe0AzfUg8YlR4YmR0fklgX0Uqa3g7ZlJGfitBeDB5PDc8QnNBdi1xIyNFJGpG
e1Fxck4tRkV0byRxdz59fQp6eGxQRj1ve0M+MkFFNmNWOW58WTg/dXJIanJ0ZWVsTVYwMk9yY1Yk
X0MwN2xVM2kmekRyREkxODJNNnRBPkVzTEIKek1PcmQoXmdSO3FNRGY2dmMoOVF0djRMZHJQJGBs
YWB5NiV0WDB2MHtiIStQcmVSPGBwN3M+fVhYLX1YUz1BUyQzCnomP25sandNaWtvbkt2b3xUMUZW
cCV0dH1+SFNBdnRGWj47PmN0Y0xLKk11YF97JW5hUHpINyVPTm4qYn4yO281RQp6Nn0+OWRya2JT
cnRTaWsrUyQqZjdkXmA5fWQqa21MWF98Ymp3aWZ6fjx8OClIO3hDbDhjNHMpX0FCfXhzWTVPYTkK
emleQTV2UmZXfjJxXkYoOFJTKHlZS2JmdTxRbkIjMiF+NUdrTGRWMjxvdENEbzl5c0RMJV8jYWY7
MTgoaVlQKXtpCnpvLVdmLXQhIzhISSV3bTVYVDA5LTsydXNCWUsodzs4dDB1X2ojc0FhKkc4MyZo
bEhnbmY0dEtEWmdlLUYzQX1jNwp6WGU+cEEmOXBNR1BjfU88R1hpXyR1d1E7cFlRZW50YSlSZGEr
ZihzZilOQDxoT0skUFpRcmpnUXUwaykmen5pPVMKeilITDdRYjQ/bHhVRnpOKzdNaUZ9RilXU0FS
Z0BsXlV1JCNmMnBGJUtKYihMNHt7VXw1ZFg0VSVYNGN+N05oQkdRCno9OEpuMEtzXnBLKX1rMjds
OU4rK3t7UmpEMEw8ZDhnIVhZdGpQQ3I+ZjEmQWlwQVM0SVZ8NShtP3IqTFdfbG5USwp6LV4xVEBx
LVd8NGRVdUd0ZCNMITkrc2VNdj9JcEw0RnY8M25MQzBecHBvOU1hMUZ3cDFKfUsqWldSYHw0VEpX
KyYKekwmRCZJSHhqQE1eVzFhWnk0XjQwRSFMc291X2YlfD9HMCg8bVN6T0w5RHEpSF55KHxCZn14
NmNhb2Y1XzZRXjFjCnpZbzFSMmY4fUdSX15JUVk4Kk5RSUQpeHxETDNZUzRabWQhYHooKFBSJkE5
WihJVGhzQmRjSzlBLVEhMkk0UnZwYQp6al96Myp3em5DO0kwdX5lP183X0hDQSs9V3VWb1dHJnpU
YH1BeTVPSl97Qz1uUyFIIUg2Xn1SdHk2cW1QPX5BaTIKekh8MTlKSjBuNjtqQmZOZHdJM0wySStl
aGE/WG9PXkpoQnd2VjtKTlBELUxaPVhAYmRkRVJJM1ExKyRMU2BFO1dVCnp0Pm9RI3Y5PHRtbkBL
LVBrTllrTG1QOXUhK2dPOEArMCliPns/KEx+Xj4wSTBNbGBqT0VOTTB9WUIjcD4/MD5Udgp6MC1P
KU1sZz5aLSkhRiMoIWw8U2hHPCFtfSY/b3Z0al59N1IxenZnMiUxUVRYKTk/P0VaTTJVSWpWQH5A
Rmg9aj8KelVDNnRZOUclJGQhNUpUJmI5JiMydH5FUComKSQmPGYwYWk8Szd6ZGJNUVdiaU12fkVQ
JldKY0RINl5SdHkwUEFBCno1WCs9I3coRHNzbzMpNU07QGEqQGJwKU9pMDlpQEtiQ0hmSitqeWYr
XjlhLXUzeUlLYEcyUTlWK3k/bzAlZit6dwp6QDZRIyhYITxxWXpvVl9UbkdNWDZUU1dJNFEkanhj
cT1pVi1fVyVNJjl7IWNaVTF9SDVQYj9FV3UqKEBNQX4tNioKemBWclF5bSRhNFJRYzYkcTlPPX1q
WH5pXzMrPEs+b1puV0R5R0JjJmdZWWdpY1glYUVFTW0lPk9xbmdkcWI/YSN+CnombzJKJlU7dUBU
bU1AWmlgeVBLRz1+JGowKE18am9teWEhcVRQOTQjPUghNitJMnAmPyN+Z1I3cFZ7Xm43SE4yTwp6
SX00eGVfaDc7KDltfjZDM2oyLS05aml4fF4zbWp9UU1HJkEmKVA7KT1YJFp3YyNVaT1DQTVOQmkh
XzlecVk0VzgKelpPOHVyVWIjRU1XYHVwQS0qSXhHa2EzPjQmMj5IPHhZRGt6WjY0PDQ+ZV5kcjkk
NUNRTmduS3VqQCotdHkrSCFECnpQS0JiamlGMCMjYiNlV2lmPU1Ecm58ZSFkU0UyO342T2J9YDQw
byt6aE5WbVEmI3p0WCVCTXdEWTdwSWkyY0J1fAp6RXw7am1KVzYpTGNWKE5ZPzAqVzwpalV6Qz5R
MnRgSjEwU2Y+KSNibFg7OHclJGlXa1h3RUZRfEBqPE5Xe3ZYcnIKekVudUA8S0U8VUd4R0pRdkU0
YUJJZEF7IV9vUDgqKGhsSHhDbWNPWHNoUHI7JVI8fl8jVl83dF4hdU9ZNlR6Q1hSCnpyPFFtNmJz
Yy12eVNRIVVUZ0hhPVJ5TXZ8a2NSPHhzVVMjalBmJHB9OWVGKmV2TGF0eCsxVyU8Nytgc19FKDU8
KAp6S2N6YkoheExNcnl2PTxQY2xvdnxsOE1IN1pibUM7Jk07UmtOfTckTWFyY140dD0qOzU7XnlB
cCZNJDgqISFHWUgKejFPUU1UTmhkayFqK05kMSY7SX10XnVMQW96QWN8cWo5dFRocC1XK0o2R1gw
JEU2cDJ4IUh4amh0P1NNPkhPMlZECnp6I2JzY3FLPGopdHVFbk00M2JIMkFTakJZZnl1YDEwMyhY
cUBFXmlTRlpFOWolaV5nR3JqNCFYKHJRK1FJZ35aUgp6RVFULSUmJnFjS2VRfVJrO2clKjlBbkh3
fnlDWWZ7WVZ+VTxMME8pU2JAN2tFUzJsV1ckPyhSTW53UXk5SVRrQUAKemlCaFl1MlYlRzwwQ0VT
djZ+Xm5XO2glXylLRFB1alQzdyRpN1BPQWdsIXooOyR4OysmMkx1blZIUEx2Sl9JY0IxCnpofWBI
Sm95RDF2IW9fS0xKa2NUY1ZTPkhTQW8weS09Pjg0V3sxQD1eO3ZUUGFkdUlqcWhrcyNoXzVqe3VV
NVFXNAp6d1NmbTlJPF5TdXlWOW8qamlGUWNhPGBSQEBtWEZqbGx9QkF5UFBocztfdkxjJWAtdXx3
dktIVk5CSSllSHtNMWkKem85NjRkP2s3SUopISU3ODU0WTRIeVNuaTFzY2VmUkx1SjBJbzE1cTMz
ZDE4aj1jYWg7VFJLT0dHfjMtTyo2VUhRCnooeFJKRGZtLWRCJU1yUysreUt+TVNPUiFHSiN1Uno+
SjF3NS10T2JUXlQhV301cm5DeXRsNXVaNlE3bGRgTFduegp6czJIYjk1Z2xQdDQlZ3AqeXdhdnVJ
SyRlfHNHR0xrZW4mbGZAUlApdkVKPTV6VXFmfU1VclhoaUo3UU1+ej9OO3kKemFmUUo4ZGU7fT85
fUQ9NCEqX0E2eDI5WkxoQzQqJWU4YGBrKGtAaX4yRD9vZzs/QUxeTmdWTjUye21Be0NENkgwCnpS
QSpvWGFmOE9nISpELTM+PnVPMTlScEtfWjdKY294d20qPlhyJGhvbXwkZE1vRC1maSh4JHhlayom
PjZsNXVgfAp6YHVfayhvSVZjKVFpdHpxd0xlV2dLYztZNjdNSjFwR3xUQlYrZ05UenN7YGpqQXhS
ZkcwQjFPMGFDcXkqUXQ9THAKelhYMllSeXpzWSVaKHl7dzF6dG8xaTN1WUlvUmZ+NlJTZ0AmY0Q2
Y3c/VmgyZ25QSXQlRCYwcWZvO0N9Q2hIUWVuCnpOI2h5a2dJPEgtPjg2dnlJJiUwfnl2d19FRkVr
VGpUWEFSa201WDVUN21SZiQrTz9AMVIzbHw7LXtmLThwK1U5bgp6WDN8VGRJM0VUNE1iYFdZNGI3
ZHQkTWF1cmt2MiQpanxBaF56MnsydGw9fVVKcT81UXdVfmVqNEFlTX5EZ1RVbkUKemFobWQtVkBM
NjRpdG51TUAxV0RJV1V+aiRDUGZGNihCUDhDRThleUImeHV8ayhKaWRCVGQyR3xFaEdackM1U01k
CnpHN3hmUU9nZV8+Mk99ZG08MkJPaVZ3NnwyWC1uX0AwK2w9YHczb0hLcTI7SVJga2IlRDRIc0N5
QGwjKkBubTtifQp6Unlland1MT5gT0B0IWc3UzlMRTA0RmtiaUhuVEs7WFM/d1EqT3dEMncjI0A+
d25+d1oldTA7Jl43UH1Ia1JKfHMKej1IcEZreT12d3doZHhyLSU7NlQ7NlVre3haNmlHQXRedihl
KXgwfllUSW97U188cWsoWWdmM351Tn17dHVGOGQmCnpoPUpmXm8lc0JGUjgqWWglSWkraj4qaVg4
OGdpR2hyc1c9O1pSPkM4OT85X3plTlcraXJKQ3hORndHPjwhblNzYQp6Rm1XbjY8UUJqPFl5eChY
KTlZVjZZaHpQdXNXbDYrSjJsKHleSG9TdCY1ez0rV0ImbEdEeiZEd0hrX25neSNEfWgKeksmPWJQ
TkhHOGI9ekhgNygtZ1ctaCs9NSZwSGE0M3lSYDtMOV9YMURJNS03UTFaMGxod1QySDNQSj9PaC0/
PHE0CnpZX1Y0NlIhRGt5eUluUntRQWVvWlppPD1JNDlPPiEqLVZeZ2c2QUNpKXE5XjNZUCEzKXhz
aiFtRSpPUDd5KmI0QAp6TnVLODNOdl5GWGxGfmlFODFqQmBvYn4/YnJmVD1VKl4wPm5xZkkmb2R3
X0R+azAmU2tjQ0whSip2aW0/KWJzN2wKej8lMEFgbmQ4JnFTR0FFe2khNSZ7a2dQTSNHdylabE87
Vz4zbUp1MkFabDtrfnZxbXU8R3NaamhAOH5LMTk5eGVRCnpYelFpUENMSiF6dD53JCZEYFlFfEI+
SjJhantienZ0RTVeR01BR2k8P21WYyNrJVN2dGM2bmV9YXlvTmQ2JmptIwp6cDhvKlhzakcpM3NL
MlhnbnktaX5AOXpIQzEpZlNPTjthN1lJVjF0fj4rNCpkd3dXIX0hWEBLMXZAeWxJYVUmOzsKenM4
RDs4T25xKjdCYSRiWHtJVzZedSZUQmUqUDdPLXd3QWJnPE9DPnAzT0VfWVBYbmNFTGsmNzwjYVZv
Y049Pjt4CnojT1U9NmVJVH1iSU0+THMrTSF+JWFlX3g1SHlyVnJiKFhyP1JGS1ExZDdnWitoQE02
ejxaSyt7OSs9PUBib1o8WQp6R3orKmp0RFAlUio9SUdKalVDNEsxUit5YDB9Ty1zYUJISzIrLVd5
ZipTYnRIUDJ+Y01hUVM2LSN0Mj84ZGlFOEsKemN2R2dpSCpmQktxSCQ1U3JtVUp9bTk/YXxud21X
S1BaS2RsQzQ4d15mKUBqITN6T0hzUEFpN0V3T2Y8c2VYYzBNCnomSTEjbDx5dSE3KSNiIWYjNGJ4
VCYlUkNrdm05ZTUtbX5wPW80cjlvamdjLS0/YEFqXnJWZm8qeDZMaENGPT4wKAp6dkZjdzVkfGhT
bXZQKyRBI19Ve2JtekhNRVhlU0VNNio0MX11JipOdGoxJGd0I2VGIzVIVFl4Vy12aUd6X2slUloK
ekgzTXFMP1k4YXFYTn5YIUk0VEIwbGJqY0NxM0teM0wqUXhKMl84JClwVyMlRz87YmptS20qPmlZ
LWc4Mng0NSpzCnopVTk3bW0wMlctT0JRZkBVfUdJUyk+NlVIYj0+UHBAP1U/WmhnYkg2TlluT2xk
TlpyaWQ/KEBFUXMmWVBIRnc8SQp6TlUwbDNhc2JPN3tFI14zQnpfZz5gdUQ9P2VOeWtqdylUMXo+
e2JuYWlLJj1uTiNhTiE8IU1wV29NMj4pJDNHfkAKej5zfXBtWmElP25lUFJXTG1lNXNMbTY2N0F5
S25AYldBOWV7S2spIX5DMF4ja1JGKzl2YVE7c315aWYqSmtFZCRWCnp0JDl+Kmx7RF9POXR4c194
aGdJQ2A1dSs2ZDtsSTMqNnlPejxKOGtnUUxeM2M7Yl9kYzFMb2hmRlFAPSN0dEhSSAp6WjhtcEN3
NzxOeGpPPS0xMVVnOVpmKSUqSSZuS0xvT0NJPkllZlZNZlVxfEQ7S1R4dXspMEo9U1YyQChXMiQy
Z0EKekwyczBkcHl8bFpCaUR3RlRmJS1Tektgd05KKSVtO1QxbTlfNVc2dXdlfE5YME1edFpvQG1f
NlpudE1rbEVzdnxnCnoqMmBsTFhIdUhpcyY0MVR5NUVHYUc7S25BSkc8elokaTg7eWEoOUZHTWxk
a1BwWWc1UktMcCVKbXhvaTFgcmRtKwp6ZHdLclA4YzRva2FDYk90MUlweCNeez1oYERlem4yP3hG
RTZSbitiXkVsJTMqSChPWmRvO2NIQGZ5ZkI/OFRvZWUKem99O2FDcEIrREUtQiF6NGYtZUh0WVpx
RF41VkJyZnRGNj9KRjc5SmdMUyh7JXB6ZDY1S1UoamhuWXIzRVVvRSQ5CnpMKDBZQURiYnR1RFpB
e1NgSlhhO09WOyQ4b24/Tl9aanNeJChtYChKVmBvXl5ja1NwSDwwbHZkbDV4IyhDaUNxOAp6TXot
bElPWSRmSGdTZWF3ZClLOTJfIWluWi1XZyQqRFAjRndCNT1VXmx3cHpqYkJlMl89eU8/V3drKilj
ZCFeZjQKejxzdTw+Qk42aG1EZDImRG9PKU1PRF5yWGs4Z2twWT0zKzNGVD4wZjItPzFnZmZgKngp
OFNrfGxpNyElUWpsOEpUCnpwZUxRVkJYYjtmPn0hdEhGTGZCTEV7bjhwWnpfMiMkTl5PdTtCP15l
VTYhLXEmeGpnXm8yY3NGKiFyfms0VjI5bAp6JlpIcEIzYzxwYy18N2ZuS3xNI1VHc0ZIM3ZiWlUw
ZVhROSZvK0s/U1YmbHR7b31kYHBvXmpUcjJNSXcrUTw5VXYKelB4dUNOZ2U1QnwrdGxjUFhVIVlL
LVllOSNKdWd6YXlNLSl0MztqLTNncyVTcEhhMUt1P2lsM0A0MGAla3AhYENnCnp7dH1IWTsoS2RK
WmJDeEQrWShFdjJITnFEX1NYUkMpcThfcDVvNH51ISV2N2FOdVhSeGlscUApdXIwQlFsNyEmbwp6
Y0p+JFoqTiZ+QVRsMDZJQ0N+Tzw/OURpNipoWU5TaDhaUHs9TnZiayQ4cn1Qc3x4VVJAZH5xQmVe
JlhQclZnKEAKejkkMDBpe3tYOT5CMSFmcWhFX25QS3lWYH5eTDxZaG5IOXRHYUVibyN1OFlRNk5B
X1FjWihjbHpDdnghK2N5KEBqCnphZSNPdStQTWNAUDVaLXo+NER6OG9KMzwlbnk4TmpRUkl9TS1v
QClfeXR7eyZXM0pKaklUaCZzNGdIfEpXQU9kWgp6WDxEViFSe1F0N05pIS1FRn1MT0Vmd2chYmYm
bT1+dVE0e3goZjs2Vlc7b19pJEpWX3c7b3JrZUhebittdm1NT3UKentrZHJ3WGshbkJFWCROVzsx
d2V0cm84SHJxVHxtfFVmT3ljU1pZJEtLaSQyM09WVzZ2PDU2NHJ3UUdpbFFJO1VYCnphUmZJOVpn
Nl8/TnpINzAxTSZXeTtRcyZAWUxvYm0tcF5VbXI5fS01PFNPd0AySiYjTTJ2VDwrVVU5KiVCR24/
Zwp6KEojS21Jei1ka0lHS1NgYUJ2Uk95Qm1QVnhhLSFUbXRWUChAKztYUnc9Kk1kSjBsOU97bUBs
IzF+SjxlenRybmcKemsxWFpRQTN5V29AaUN7Kk5fXjRXXnZAVDNLPTV8RWR2JmhiY3Nvd2Z0fHko
KVheO31ANGlQfFg5QWxpRVV+YC1iCno+SFpzT2l9NVNPKSoyPit4XjAjMnNSIT0tPj9+MC1NPVhw
T2ZXJmFESXYoQXQhSXhGSW8mTnhQPHhFO2JHWUxefQp6P1QkJCNiNlZhS0B2Z0RwJWxtQ1pPcXBX
M3Z+Y2h7I3ZnQ1clMFM1YnElajB7JjFxVz1RYHhtaiQ9YmBSSSUoQmgKentNOFJ7Xz9oc0I7eT1U
bzN8SERyWkQlKX5BaD9SPUhpKGN7PF85Myk3WTc2a3smblNBKk0mOXhEbT8xMVloPCViCno+VHZz
K2NMU0Jje3RofjQ5TXtwQm0mUTUlSEYjZGUtZDIqezs/NVV9TkV0U1diTElXayRJSzZ4JDleJXpk
NiRubwp6Rnt8b3s9UnBmUT5eQ0FmQEw3S0YwSXdOaE0/c3FOWGpOMncrUHRjTD9Xd2d+SEE7KH5q
OVcocTttLT9jeTR9bEoKei11UXtGVzREY144PSR+RXtLRippPnl1aE9EKTUodl5sY2taSGhQQDVJ
XkRHWTBKKTlrODhJJDVsREhpOEBBeX5KCno5fnJ6UUBRPWRZMG53TDlqKDliI1lTbVVxdCFfenpD
a25nRiFNN0RUJE87T2FfUTFqVVlRb0ZJSDs7QkNaQU1BZAp6S2JGclpEJWV3a1A2d2RreTZ+OHBT
Q1VtKipLV3JxRS19TmNidlk8PmA+Vk5HbDY1SG9eQnojRk0rWEBrZFVNLT4KelRBR0hZeH0wez0/
VG9sV0J2X3k7eHF9bXZnVUxSPW04KV43WTA+SDgjPkdTZUlDc29LbVQ0UilgSHd0Zz1OK3IxCnoo
KjchRys4ZnYjWVhmbGhESldOdDZAYmM0NipHbjtlNHZzfWRFazIyVyp5N2dQNns/IzlNVnA0Ty1K
LU80Rj4pagp6aTZeelhCZyU8TzJ1YSRrZDtWRElVNWVnQ3Z8e0VaN353IW40e28qUl9QUkVzc0E+
QDAkRCFaY0JSTWlnNT1CYF8KekMte0lFPis5NTRLXzcmQ1J9NTx4ezMyKn0wSilNZFNtVl8wPnQw
cVhEMis7dSMlVjgreWpfOzgjSSVrJFVLZntmCnpGLWVgUS1BOFVRVH1PdWVBdmNadU9LKVhrRCN6
IUBzQWVEcUw7ZDVQbHx0ZypMOX5tX24oa1phKzBOeUt3dCVDagp6Q3p7MmQjU2YpNiVfY1h1LWhP
UHA7eiZHS3Q2RWM+VSRXOHA+fEZ8O0A+TGJsPl5qR1dFSCZGYkNydDM5ZzY4PnIKeih8PlYhQX0h
MzBBN0Uwcz5HSDcoR3I8K3AranNgdGN6KVVBKkNWbzlOWndkc2MhWURqaWNhRGZhejtyMmNkd25h
CnpZeURBMCklKmBNU0ZwK3M7SE16LSk4OTRmOXVASX5IeTRwemMkTmF6Jl9ifWZ4aGNFPVA2anl+
O1BHQjhzWDdiWAp6cFRwXlVwMk5xYHRsYypTNiFofTMqSj9VLWtCMlRKaV5XcHZMUD9peitpbjNf
OWFzPCEwWUFaa1VPfSNGYGhKbE8Keil4TVBTT3ctXkFTK2xoUC1+c0ZZSFJ+R3AjOXN2KzY1bVRw
YC18djJsQ1MzPlg5Y3NsYSh5XyNfT0JHeXF8an1OCno4ZV8+WUVCRWU0SXA/TjczZjdIOWg9PWMh
UDV3VG9tNWxhcmU2KmQ/RnlfP25GV3lEQzQoK2ZpPyNTN0xwWXhqUgp6SlVPT21ucyRrQXR6MEJg
bncwWCVYPVE2MEUzdm8kVlZPRkc4LUAtIUtUNkBHb3RYYXN0UzVGeEQhV2BmVytZc0sKenQrKzdq
bihCMDtKNFFNJEJNTUtKVC1INCFVaHc5ejdPOG5AZGt5V3kqMkhNcGx9YDhMSkMxcXxhYTMyc2xm
XmxhCno/ZTwkM3tJVGNWQXxFI3grO1B8KmFhaHd7VU9SYnFsZ3sjeDI/NnAoRn5+bnFZTkU+e05+
dikyYXIxMEJKSEcqNAp6bDt1dF9VIzVsP0Rzd2pCeDhpTUg3MUhsKVJJUURgaTIjI3ElYDlAYUtR
bSgoPihGe3MrSF9XcFlPK3MlNmhDQjsKeiVCK0B+bm5SSm5CO2JzV2h1Km9CbUsjUXB1MWdXWjkp
Z31QWjQ3OSNgSDlGY3Y1RGlgLWw4P3V0XkEzNj9fO185CnpISSZrJVV1KGFXbjQ4RCk1O2dNVl59
eS1KVk8te2BYPXwhb2kxZzhMKk5XX0pCJVZOOE9yOChkdHdWM0RQb3puOAp6N31LWVdLZ2pEVUZs
PlI1bDYmKS1zRktMOF45WXExVUFWKUx6LUspXzU3eFA1VWJSVXlxaUZRJVolJX5ubn5QYEMKei13
eW1LWCVCKkFwRil9ZlpMdUR5MT10ZVhQY2U7S2NiRW9hK19ATlZReT5pV3VLQDhBPjNXdUBzYjE7
djNtWEpHCnpCZWdAazgzNmYrXmlufUpacjg+ZHd2PllKTDt9Z0pfTnpzMHh3anh3XkVsfGlhcnt+
MmlsNHlSZTcrO0gpXiZZQwp6SXNYOCNHLSQhUGRvKjcoeXFfIy1qKGA+Jk5iUVcqb35YYD9vbXFB
TXRhXjIySldMXm1qNGFvRz5xRGRQJEJyJGEKekBOSmNaSGpwTE9vaTVlOGZ5NmZ7N0ZvfGRCbX5P
KklPN0FKRCs9cXlFM0lFJD5Velc1Tz9ASD1waVE2JXp5S0VSCnpJUnA5Qi1ZKVB6XzhyNzJyKE1a
O1o3ZlM5eVUjSmNHREc4eGB3R1VCIVoqYGVlYHZgU3UjSEB4M3hJSytzLXZqTQp6S2IzU3gza3ZZ
Jk80c3x2UUM2bj9vbXpeXnJzaFZpc0wzUzcqNUt8ITBOUVkqVzRHbTNedkV3WXcxWkVNV2AtTnIK
ejBqXnxeJWVSU3RpYm8pUSlmcHVFMTZ3eks5Z2cyaFNraGEwPyVFWUU4IUdhZnpFbil9cFBNLXR7
VjRFUCNKUmpECnpFJlolfFBNQGUpLVBrXnlFaVl9diVEYkY0PDxCOTM5ZHE4Um1WVjgwUyo4N1VJ
TmN+bHJAcio9a3J1MXJgITVnMgp6RXwwMCsrTlFCKGA/WiROUSMzOVEmUChCWXRBR2dTRG5ZSHlI
e3U/UFl3K3ExM2hLSUo+U0Vxb2k2RDBZT3xnfXUKelZvO0tDb3Qpcml4fHszMjR0U0RYUGdIKmxY
X3s1ZXFefmY2Yzc9KFpONkwlJGxuek1la0o3bzs5dk5MNExrXmVhCnotI1RtJndZZ19KSH00ZGEl
S1cmYHNUSCY7US1iQXx1a1pWWXU9QTV7bnpIK31JWjVAO0NpKj19JnFvcXphd144Swp6Jm1ZT1o3
JEhqSXEwVHdfKVZKT3kpR2x0TV4wWF4+Vndxa3pxY0ZCKDQmOXJLb1JRQiRkc1h7c0ZZTVpMWktC
RlAKeis/IXdrd3FqTlhoMS1GK2BWcmdTdHoydGZFdTdobHhiNXghJS1fM3QobHNFMSFFTjEwSE4w
aH5GRG09VlNaIXwxCnpXOHQzXyYwfWpEPXxiSHNrSU4mNzsmNTF1WmFEPD0oPipKMCtyWnY0KWFV
ekUmWn08JHl1ZWBoMk5LfGVmfW1pRwp6Zk5NVG1vbnJFOWt1UWlYZ1dUKiNqYiR2O1ZESz0yanR4
X30oPEc5M3FQZiZCVyF1NDY7JHxXNyFUYGleJDVCSjYKeiVCPFF+QC08WCFgamBBaXQ3YENCT1Er
dD8yQlUwe3RIfkArZnRkOzhnVUs2biQ0PlMxVSZEX1BYPHpWPFhqVTViCnptWnd7Pyg7fjVvOzdZ
Q250R051fDB0Z19sVnQhdHVIUyprKzI8ZEtOd3orMiNEM2leP0QqXmA0SW5PJj1vWXVYKAp6KkhH
UnhgZWxPSSR0TmkzRTBVUVRoQjMhJTl5O35LYU1qREgpbSpEWjxeS1F5b200UzBweG8yZlAxLSoy
dyh3NGUKejtfR2NpXm94Y1U1IXVYKDRZa1FocD1YVlBHTGxOMU5Lb1ppZEopPmJLayR5M3NAbUZY
JEhZMmEtUjtKeFJ3P3wrCnpsUHB5N1Nua2UySmJHWG5sZnhld3lpZWhzVCs4UTBDQ0c/NiRzQz9i
cCRwM1kwSk03Kj1SV2xwIXlnKks3bUR3dQp6QHA0TihpN1hDR1BjZSNVckZUWiZuOHJ2TTAzSFpF
RH5nNXxyVnBKKGI0QlhBLUU9elpXLUF2Y01heH5BPSlGWUgKenZfQkV9SFpMX2BvJFRiMCVITCp4
dj18am1hYEV3PTdkKEdqPUI7KHhPI0BvZ0pWOS1LZzZgQF5RdnthVjhaemZ8CnpXZWE/fnsrMEEo
K0JTbyNVbDtKVmgtNzQhbG8jPXNkRUAyai0wX2tXZTckK0RFODxVc1dZSU0xJWctMTFla3Foagp6
V24wTihBaiZ8KDskYFlOSnM2SWhhWVFvLXNxKXAwb1dIS1JHZk1lJVdscj5geDZPWkZCZ2JhRGhm
fnl7KSt9eHMKelRnbTBrJShEUUkkTVNye0BzN1YtKU96UVBiZVpNNGZoP05oN3omRj9TU2tXVDRk
djhzJFJsdFZBb001RnhtXlBKCnpiaWAlM3cydGM0b25LX1k/OUtANy12KyZKTk04JktJQUBEYXZ1
KCNZRzQzUX1edkQ8XjlFfGlHTz95KF8pZk1mcgp6XlNzR2o5MVcrOGtfalNmRkFyKHtZRTktZz0t
TlEqbTFSdEk3JUYpT0JzTXo9V2BuOHRtcXUlXj8xKDBmdUdoKFAKel9GJSpZWT5sT1grSHlEfTJO
QG1CZE9QQHdQMTZRZj85bnQoe3tZSiVvNClabDwlIVFkPnlmJG12aj4+IW1pSWZpCnpzbXxhQTBY
fkBaPjAwfHF7e1NpeSklJkRaaHNRVGtURnQwayU/Y3VVWVYkfl9IWSgkdyNeTXdvQEBwZVd1K3NI
aQp6TFRHaGNgSnw5eiQjcmReJDJsMG0jdG0tSTt3WksyWD1RMCtrantoO0VSIT99M0JjSyY+QChr
a1R4UCVGPnh+fW0KelJ3PiRNM0I4P0FrMXdDfGBQVjE1bHlNJlpvcjt3eUZNMExxZEpUXztKUzQ8
RC1PYmdxPzxkU3pMdVZZMHAjR0p3Cno7eWJTbyFKKnF+VUxEa348aGhiVlp0PmlAMFJYXjFGYVF3
UUMhQXZkYSUrKiV6OC1qXlNuI3lrJGo7U1krfVc5Ywp6cDVgb2smWEpMcDlEWD9DSUliXk13IU5+
NzBXMSFZVDs8aTdMWHZ1T3t7WXZtRikqaClKTH5LSFQ8VjIpMnNIflAKelorT29AelM1LWd3UXNa
ZXc7d1hlOU51WVNJNlY0UjI4bSVseXtnJlVOaDhNdEhxU0tWZztCey0/fmROfXJLTE9UCnokdGN2
TVhgIS0+UVY/SF5vJmZiZEtUNlZ1K1VtfEpGWVFiPT09LUNINmg5fENrPWIqT3dhYmFjTW1NSW53
VWhIVwp6PVRSdj0yWUF9fjY2Tmg5aDkhanA7RHl+RjFGPiglcHlQXyo8JngmfFEzQD1SSVhGPERt
T281V14mOUoldUJCXzIKeld8QCE5Izx4NXVlNSlOczxWZGtMKEhVJUlrOS1lNyQwbndnS2RSQUUt
SXMxZT1GWV99Pn54UVptZXY8RGsjUWs2Cno2OX5aRjlJZXE9YWh3SWxiS2lrcFpGQDdAT2pGSFNG
Z1JpOE0tPU9lX21UME9rYSkrWFIrSzhwY0wzeXAkP1IpZgp6SnN3TkI+d1FZUW5AKHVhQFVEUmBp
RkpyPHpgNjN1dzJ+V0c0RHk5aG9QPUlhSTNDJV91RDAmWFg7O3lyPShufnAKekJ1SW8jaGpUQz1H
YVJibmswPClvQUJGeGllfXxxY2s2SEBaU1J7WjFJM1BGeHBVUzwqI2Q/K1IjTyVveXE5dW1MCnoq
PD4teiQmP28pQ35TLWw0c3ZfZk4zXkw0VF9zfVc4ZFczOUo8a2NoblY/JlY0M2NANUV4QyF0MFBI
aUBLRER1Sgp6PEYjIWo4K0Vta0N4bH0kQGBVNUFKOVBaJlp5djlRPUZ9RzdQRFpuflN0TFNZbldq
UVJrUHBzdGZDcGFWbiF4YnAKeiQ+Tj9IazJYQyUrXmZqKHdpJWZIJl5AdH1wSzltRSFpe1BeKHhp
MXkoOGZ3SXlsTCFuNldvYX1XKmB7UiZQWTlSCnpffH1ZOXZ1YUdYIWclOT82a0AoLUw1XnxtTzxD
NkZ2WXR7N29nOEhiKW85cCprNWxWZW5zbTFJWHkhekRCYHlqdwp6Tnc7Vm5Jfj87d0MoVGFqR3t2
TiZkbVQ9KjNxaHQ+d1ZGT0lTU0I2R0pNYzJOSVE4cH1ZWkcxNFVyWXV6eWM1cDYKeiRQckV5YGUo
Z2V6U29sQylrS1A5eUxhNjNJbXJrOGt+am5Lc3UlanFtJCl0b29QYSg8XjZ9fmBve3pTU2xsOGQ/
CnpHfWtJMWVSNndeRjUxPWIxUiRjWj54fTtaXzNKSFJtaXBvLVpSMk8xJFZFZ1B1e0dMVF87Kmcj
Ymt1Y0V2ZlMoaAp6Pj9FckUtQUZ3MV57a2xtbzZRNFV3fmA0Mj8tT3J+ZytEZTJyXyNNb1g2ZSYl
cm83RXpTe0hBcnhvPkd9O0sybVoKelR1JURYJHVBcHo9fDxqRGdVJHxscnMtWmEpeUFsOUNmNj9f
IXd1VkNkbWl+Mjt7eVk/cj0/K0NZWXo4fkc+V1krCnpCUEI9VSNidF43JWExaXc8QDJ+Rys2VW9X
Ym1MYyVeVTIrZC1rc1kkemZBcTJaITlrQ1d4MkdMOzZWI1BBQGZ5eQp6JSQzNiZxWEtaZjIqSnMo
VWpHMXZfdWAwRjg+I2hjJVgwR1g3U2NgXiRXNiNYMCpWSkJGZ2xDfElLam55UGJ8TU4KeiF4cmJi
I2Q8VjhFbkF5QWM5c198Wk53Xn1oUyZtKDAtNEYmSzspbW94aVBkUzd7fVEhVStKQXYjOGdXMmtA
aCEpCnplbXI9ODsob01reWtUTGRObyNmKkM2ND5jbD0rUENzPGUxZXo/SXdxRVdQa1lIUGA2PjAw
RiFNO0BSTjgoSnBsQAp6RjRpME9mJU5Od0J+PVB9TWlPJFQxRnJZISg8ZzB5ZVZLSkY4dUhmaEF5
fllFdm5RTlhtY2lZfkp3fCZHK1AlLWkKelVPQ28wS2Nfe2p1QT9NMzUxbHxiT3ZYSVNARk9gK2dt
STdMNFJLPDxvR0pUN0Q+dkooKy0teCRPK0ghZHh9UlBBCnpIUEkmY2VFJEZ2eWNhSGBDSHt8UFo2
PjEoNXh9U3xSbH1XYG0wNkBfMENSXnl2cHJpQ0B9SV5aMG9uTXchZzJWVwp6K0NpXkZaNShrMGEx
b0d5MTd6UjtIeFBMQSQ0Y2pQJilOXmdRUkAyTHstMW8yLXxLZTkmaGktKUdGPTBWeGZzQkcKenhm
e0N0IzxxMW84WkZQbSVMUWZ2PVp2QiNFSTEkbEluUz84Iz1ZI0czaGgxbmQ0R3w/blBSenxXZD9s
ZGIqRCNYCnpybWZ9UnhmY15nOXlpIUYyakJOfG88YDFkPiYxT0RATWBafl89IyRldldScEdaS21l
IXghb3tDUCFyWFB1aDNeRgp6d1M0KWUrZ2RpTVo0fUQ0QVVhfFJSRGs0VDwjMmh5I3QwYmRkOUpK
QnJeV3FLO2pReE09QHErWjR8d3cyZlNHY0sKemcyPnRFMExVSGo/X0c4MSM7YjdPYHNpJj1SYlo3
fW5iWjdzXy1Rd1E7a2RiayYzb2JkeHdsJSo9UGhSRXRacVIzCnprNEV9flVJI29nRUs0RmBoQkxx
MEhUOT9NMmpXWThXOHNkLT9pTlU9eW4mSUJoN1AtMmY8Ql9ZUkpGOCgrJHVjRwp6bVd0VWYkKEpr
VzJUYSNoTlReYn4rUSVkJWNIZnpoJmQyV3o0QiEjb3l+RSpNP0FCMDhzdTBGJmc9O3BJYUNXRnQK
eiotX0F0SyohZCh6eFlHJEhKdWhvdzdvaHR2KlpEaTRRPXhNcVQkdGQwbylWWjtQbTUpXmdqVDJL
RiUpPU9KVDArCno3VFJYQjRUMWo1Ui1hXlklK34/JkYrM0JvbTt1TUJgPVkqTHdxcnUxOTJ+OCF0
PD8zaF9TSSFSVXFqNzJOdmMyZwp6aDFrP0JqR0pCTGpfeVB8PHs3e01rVEBMdkhGTCFjWHtCQ1NX
KmIlV1FDKmZZN15aUUohQn1uSmJSaGpKK0AjVWAKekN2Vl9BVl8zN2p3JHxpckBtZmFMTEsqRihN
JFkzNzJ6NFBfMWVfZjlIUX0xQmZefEpNTzs9Sm51bERUUW5JYWEqCnpaT19mfWpyO2Q+JG9zcXot
bnw/cUUqTzx7P3htczRqPkFUYnVZMkU4PTlSNDU+N0UkNW5iOGNIK19fYWIkM0NhTwp6YFIhQ1pK
RTtycERfRGBCTW5ZcE9xIyl+X0l0PUV5WWRiQXczRkNGTnlMRjBDYHgrKU92MHN9NmJSej8mckY4
eFYKekBhfnpZWThQJGRYfEhULVVKQGNQVFMhWEMje2l4SDglTjlyUEk1aSNxRXpDUnRtVFRjeCNA
YUxIbllXfEQkNlYpCno/JCY4JU1STGx7bzNAPi1ORjlnRHptMDVaU0NkVnErM0Y4O2tWNzxyMXdi
QX01JiFAIyE2UHticEZgNiU8dnRiQwp6PTRRM0R4KDtuXkA1JmphaWRGczI8dE9DPkptaXktMiYt
UVpiUzFLVCptVEwoP0B3IXA8Y1kjY3lIJHA4MWBvPU8KemsoYHMkdCRDR2ozWitMKXpuU21oPm5j
PGdNTGxpcytxYSQxVGhecUMlZ25SQUkmSWEmUT90QV9AYCtYNGdPVyh4CnpqQipiSmZ5bz90YSs8
ZStKVXg3NjVKeFZURyU4fDZ4MDdVVENfZyhBYSlmUkVAMTx9dGNzbytsZD98NlNMdlhXZAp6SG4k
fipsPHZ1SzNCdm12aFJNYj0qVj47QyNWLT5AclAlNE9xcm9nej5ZPzZDTFM+YVFJPShqeV52K0xP
Ji0qJVgKeipBRyl9YFUmSHgqMyVJUy17eVBmaDJ5TyVLTSFrTzFsMjdwXj9QfEBeQVdEQzVyaCgh
VXpqIXk4dnlWK2ooRHoxCnpTQXFxTyFMOzJiRz5qdlgpfFN7Q0xiMmBzPkZiVl5eTDF+amN5JW5f
IS1tdkpGUTI0YyE+ZENqIVlndntsRUReSwp6QlEyQUwzPG5zPHR0JnFqe3tVazZPSU9lWj9ZeXZG
RypDVWYmMTQlVzt5fXo5ZkZ4eTxhdEgrVjcxdSZGKG9zLVcKemQtd0oxYTk1clpUUz91MC1rckA8
KS1fIzZOdU9ITkVNPmcweDRkMENVPnxJZU4+Z31kaCMrdTtaVUtmdEQ4cXN8Cnp0fkdCRkZhK3Uw
TiN1LTYkTG4wT1lBe3x8SlRsKGRQWkpNMHBsSXdeRTUtOyRJRnwmZFgyST5hXnNXODNmQWtZeQp6
ezA0e3IwRkdCJVJjJmtBKUJYdl9zP3ZfcHpwMy1KJEF+Tn4obnpjPVZefjtpSkJRNDE+cnJARytI
R15oRnJ8ITgKenE+OE8xbEVAQyZrUGNqckBhbDB6NzNOZj9zbk1MMWNlbWZfSXlCVmdsUjlnP0tU
SiFAZml8T2VFdWpUYTM/cXA8CnpHNDBibGIqaD5xYFc9PzBYUFZtY1FpP2R0T0IzPkBXO2p4UHlK
Q3RmbVZgT2duLXRvTm02OUtHYWRvZGlFcnE7awp6OTRqRSZ1JjQ+O3tMaG9lTENMTm07Izs7c1la
RG4xNjhgYDxafE94OS01NHJTZTd5eEkrUnsyKjJnMSlpQCs3WDcKej55UzUwSCo2aEEwM0o+JW1h
KldpVl4zR1JOWVpPaEZAUH4ybkx5XyhKN2p1I1FBSkAheSFuKSRRXyFiYHJzJW83CnolJFBwYTVQ
T3hGQ2MpRDxFJWMlTys/TENHQlBkeVRQKmBxWUotWHRHRTQ1VTI8P31wKj8pNjcrcUlncTh5VjBl
KQp6eXQhazBHenZtKjBhNGhUNUlVMkFwR3ZYdGM3Ri1AZjh3Sns7O1QyKkpUKGs9RmZkI2ZRdGA0
UmZscEdUPGEhKHQKeiRQYGd0YnMwYF9zVG9QTWNQNjFJKiZXWWBkXmV9Km5vPz1Iaj1kZjgtTjZR
PW15JkxwT2lkQ3hBYmZuSjB0MClCCno9bG5oNHt7Um97WW0zRUp4NFYkciFSRTE0Jm1eNGxvT0ko
SUQ1QVlEO2JFZ0Y/JDF2U28rYFVsQjwjQn5qK3VYSAp6cm41YiNoaSkkK29wITlVTkBHYkJJVW05
fjg2YjEqUmVVUTRoJjApPzhUNEJPbDxJcUtPYVZPNSVOJl5xNUNmbF4KejkxKVg+RDVkU0MkI2Fe
d0VqcEhyUVBfX1R7Nm9LPGVMRFhEP0tXfVJOOVF5RypuQCFHMHVUPUdtbT8ja2RHK1BmCnojYDlX
VFlacCV4UWZ4N3Ryc05EZGomTzA0Z1h1KlRyN0UoVFA0Kl5femIzWX5wKztacSomUVJkN2dOZzIh
MkBLTQp6MSV8PG9yYm9WTiNxRzZ7PjJiMVhta2BNaz9geWQoRn14QjBgRWs9TXpudjZUPkVDanlN
SX5waXQ3VUNVISV9JTkKemlaeXcrSW9rfFVuTF9YZzxhWHE5VFcjP2xSY04lJEdGRGJQRXZkQUhT
JiMwMVZxOWsmPGVEZ2BtTDhucTtVJUhPCnptRjRjfj16M1ImRz0lWE5oNGlnWDQte1FrWVBUMVgk
MjJaQ0JCSEFsYnp5PUlReUJqTThzZyo3Xml5PH0qRWNkcgp6ZTE3e24wUC1fMWFDWVVnYypoLT49
ODdzNkRBSjZpaTtZPjtvTjNBRVdCOFZGO1R6PEY3JFh6M1VTSn4pdX1kNmgKemp2S0c4MjA1JmFR
KGxAcU1QQjFlYlloRG5hOER6Z2YtKUg2MWNSTDdpWXF1bTY8ajRhLUw+WHRSayVzUEpyTnkqCnpk
aFB0dHlfS0VOa1RFMDVRO3ZBWSlCZ2FrVGstZikkNShBUUhuJUN+ZitTWFAkVUc1JVBhTzIzaXRE
RlEkSzgmSQp6O2ROWUFoQEN6V2MjVUZIY08qOGpzbUsjUCg3REVPeFIzSEdvflBqNUtTQl87cXB2
fFUoIyM8ZCttT1YzIzE9VHUKejB+eihuI1N+WGU7cnFVOG5YRStSRT9iPjh2MkZoVjNoenxYRVVo
bXV1NEJIMS1OZFIrKT4jTiNERkFfaVVhPGNGCno2fThqZz56eU4xeExkNntPKnlVQjg4SXJ2cklk
bT4kWTRQbj1OYWtKaVl0UWAyenlBdSNXWl9aRHdCLX5ObEJrUAp6WUZmc3Z1aVVIfUx7QjFsazFU
TFU5JE88TXpDTUtnRC1LLTsjMXFJWlElPTg8UkR3JlZqYnEjZE55fFNTNm44WEgKelE5RHpOcnli
OFc2NmRKN2dUZVlpKXdNSXtNQmloI1BjfipQJU1RITxecnB8QyRFYVJoRXchcXB5fUdvbDtHQzd7
CnpKTnw+LWlZdntwVVU5RUdKKDQ9KjFmWm4xNjJ3VDAyQ3chTENCMilmdX5rJHx1UTxUI18zT195
KGAlcEUrS0t4Xwp6KHR4KUdPU21MNXR+ZFp1TUxiTk1OdlN0eG9zNDl4dGFsZTRKLXg4Z1kkYn41
ITVAXmQjJC1FSzBsO0pGITJEfioKekhOODtaeUZOPEdCJjNqfDJ1RytMeVV8NXNmS0heSE54UXFV
Y35oVUR7Vj82ZmQyM31COEtqZ2s9ZFo2TCtjbnZFCnpvbm98dE5iWHt9ajI2VVlQXiFqMjtDKnc5
XmBlUys8aTVFR0EjJGx4PTZrY3NaWF9+SCUqNXI3SEt9N2VFeFNoPwp6Zmp+Szgje20wIyhNNVhv
cVA/MCVeXilXKE9DYntPIVdQZERqK0Zhd1opWnJEPGRjKWVJMn54QnMpU1JMQzk2VFMKellnc19F
LVUjS2xsMj9ATk5hSnYlOV5CeTh0O0wpMzloMGh9dF91ZCt6bD56YCZUKmZ7aVl3OGNueG1oV1JM
VTJjCnpVRl5fOFRqeD1iN2BWY20pfDR9OXNiRytjWHFjY217cHkxTTBOcDJeKmM0Ry1SdzlnUU9X
cmhiTmkhRGpNQWFzZAp6K31nSEpMUyQydWBQRGA2X051cilWVUBPQFdCcThOc3hWUGpNejdxbU0z
UU01bmd1YEV3Km1XWVViV354NzExb1QKej54KVVeaUtWPzM7cERsTWEzR1lOe148YD0wUnR6diRp
KTtfNGwqM2phbE1lfj5kWHlVXl5IUkRwdGc/WDxyJFFRCnpVQWF9cUpvO3BRYj0yd34zJXFGX2k9
Km1TN1Bma1A4a19+PXkxM05nSzU3aFA/TigtOXFsXlFKRDZSMDN3M1F7Wgp6TXBCfik7citLJSVE
P2NhWmlUWnh0PlBVckREWEN6VzBGPF8rYlh9I3hvO0pDQWBKeUNwR1ZaQikhfTMmO3pmaFkKejdW
VyFnc1QtVEdRSWthIyord2M8cyFpXmxqQX5Tc0R2XllDWVVlNit0Q2wldipxPV83em9tRnJTV1JC
ZShKV2YoCno9ci19RXQ3Y1hKN0MkRmswMTVta3FQYkxeT1IwNz1nPXRpTHRuMExHNSZUSzdDN3U0
cFJmYmFlYTd0aXM8JGFDXgp6VWpHMXZaRTcoKVN7b1ZsNy1oUClpXnZ2eyRkRWthODRSbFUxZGF5
PkMkMT0+eXFjNkVAZ0Myak51JHhETWp1el4Kend5bV5zOXQ2XjZ4JHkqK19mYnMpIXg/aFN4TWQp
WWFEQjJyOGg/JGBPdDtuK1lmRVVPYUhDP3wleUpKdlBCX1JzCnpAa0pEKUlWezIxK1F7T1Nsb2go
TkpEbz5aKHlncC1eKmQ8Z3cyKkB4ejFsMDZQTUlLI2pRYUlHWW57fH0zd2dCKAp6K1RQQTlkd0hD
Jmk/VmBxZnMlT3FYcmpIR3JZakslTmBIcncyYHtxdHt7ViYoWFRQfTlBSXJMcyopYDc1ND9BKWYK
ekErZ2hkKiEqZGJ1e09kZGpMRWFfRipxUTRRQUtue3FmJjlgdTQ1fUw2ND4rKTR9NDRlNn01JG91
IyYhWldHSjhvCnpLbWM4JXJ5am9iblckT29vLWh+cGJgZVFENXdReH1Ad25qVTBHQEh9TUhTIzt1
KypAVWIqVj5KeyUzdj9sRWw/aQp6c3lBeX5gKUFefG84Y2RaSmBjOT45LUhBZkJEPUFjLSVQbE0z
QVJOIWtfJT1wdSE1PlZvUCZZUjRvXklNWFlvcj4Kem81U0FfezYoYyZtWEElZ3lfeihRNGchcXlB
QzdwVWl1QUNzaV4wWCZZcm8jZGpAR3t7byZOeCZRMUNhM3dFPU4pCnpyJntAcHZ0LTFJPFE+RWpm
T2VENGVAZ1lIQFU4OH5oMktgeHR+RDVBaWRiWmpufSN2S2F1WXZ6VT1uWitKdmJkYAp6cVBhMHhz
bkRxa1B9JStGX3pXZEZvY3ptYzMxTlMjY3pheGtZTF89TFk0aENONWsxYkxQRT9LdjJSUyhFSU5l
b3oKelcjVSs0Jn4yc3UoJHlpY2MjX2BVYUt1SmdQbmM1fkJ6JncwVSZlfG1zcEJlQ2JZOSVmJStu
RXJoOTAhM01ZZns0CnpvXyVIVUljK0N9a01Aa3doQWRVKFQ9eWRmLTtDRSlZNE4oIVl2fDBIZTUo
ZjcoSCtiP210aDMlQXZ3dGQxRTtYKwp6M008I0Nne0pqdVE8Z0RPKFV+Xj8wMmlXPUxjZTh8U3xh
aXRfWUheUGpAKk9FSiU+ITxwKzZYKTQkaWgwSzQrYzAKelpuISZrO318XmpfVVQweHlkYnlpYjI+
MSMhYjk8UDNFREtkeDQoQDZlYTcxOGY8ZnVZe3tTUGtJIX13JW83LXZFClVIc3NefEkqS1hzcnpV
Rig2eCFKVCsxSGNMantwRHcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9pbWcvZ2F5bm9yMy5wbmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1n
L2dheW5vcjMucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NzdjMTY4YjM5MWM1NDExM2NkYzA4Y2VkNWViNzQz
NmIxNmNlNGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIzMDMyCnpjbWJUZVdtSD87XjlDQkU1
TH1EOXlTcTE3YTRTJDhOXnk1OUYyJGpeeVN1eHpYbl9MNzlnMGhFX2d3bTRAOSlGPwp6Y0dxMjVO
elI7O2xiSkpUPz4jZm1KVn1KQXZNZEBoNWkkUyhLJDhQWXNSSUQ4RU58T3xLLWpsZUlAe0B0dz5L
Q1UKemJ5Kk9nV2BnQUtPK2ZncEFTKHJjeyhJemdtbk9kTEwyP0FeeEJ2aHNJUkJuN2ZRJjRIeDFF
VHRhIVMmT1lZNGF+CnohdG4wfktSeTVlNmFZRD80PDl8M2tGITB9YUhTdUlkb30wUTY4WSM7Pkok
KVFLNzBZZGU3NkxeQSVDOThJWWpseQp6ZEJBPCZwUlV8fXJUbWg4QHNSX0RzKD04VCZeU09sWT4r
YlVXa0spaXE1MU45dXc7ZjUjWnJaQT0kcXJeOE1kQ0QKelFQYk1qeD4zPHU1dVN2TjkxMyEoc3hz
KWpFaWNXPDtJcT9SZHB9cG41S0M1MjVlM1J1VyQ8R3o7fGx6QGtweUpLCnplZnd4Y3s2N0kjS0lF
VH1GOXJUNUFrJXtXMzkze0B8QWJJJSU2fGRfbWlqK28+KGY7MXJtJWp2UzckNXgqdCh7Ygp6NHFO
Um9ZTiRlI0xQY2Y4WVI4bV9YbT4tPz5pIWs0ZzM/dlRuKXlJZ1AxVzx7MjJgaVg5SG8qfEhiOzE/
PWpqWUcKelRrb1B+OypgYW9VJjJMRi1oaz5eWmcoKDFxMjk8TWo5SVpjRD9iVVkxYip6a1VjUzBZ
Y34jWnpSPjQlajl3fG0rCnpsbU0wfm1xbj11PiFFX0U2Q1M+RGlndE1QSlJZSWdjZlVDSXxJdXRg
IWJLaUQoK0ZYci10P0dmblBnLVNqVkVpPgp6VFd+e0BxTWA5THV1bkFeNyN2ek1uYytaWDNeQ0t1
Y2EkTlZBKCUtbz5aKz04R0AzWmdEUnF5IVhsbzxBP1FwfCkKejZeNTVWdllqQSslZGdMbkoqclY8
eFN1KUY+fnVjXiFvd2xqR2ZTY1NYI1hfITlFP08wWFdjbFRMTnhMZGUyS3doCnolYDdqX1dXYkhZ
JHNJeClVSUtNQnhfZzske04rTXo5VUNNX1JPY0d7e0ZQSEtCSTRyV0JGd343Z3NnUTE0SFNaegp6
cUBLRjY+KDxHbXFATEM7eFV4VX5ZQ2txS041bn5zZmtpbDlSP1dHeFAxaUFqKUNgWkw1bG4yYXVD
NypSeUJxWXAKeiltPWd3WWFNNFJAZUw/cGNfUTg1dz5IbU5jcDVGR3NNKyooemI8XlBMUT9pbE1g
fis2QyNsSUpRSEVnSnVZezs3CnomNkwmUE5YUT5MY04mRHtWPDlzVjdFe2JfSkU+VV9YR0RLWXQk
REojaCljSUJidng2KzMwRSFteG5BQCVsMyQ2QQp6TyRnP3F2TGxOUXghYzJJKFhJRX4/VHxMPCUm
QHwyRFApSkkyeXAkZmtHV3c5OVlsayl6VFR+a2MmeGdgRmQ0aiEKemtiOHJPS09JfUpAe0UqdUEo
LStKTnF1YCtMN2VpeUBBYHs8VCZWcnE/dm1nKWQoPmVNcitLcl9yRTswNEFvRkduCnpIZ2o5Z1lr
RTtwcVk8Kz5UazAkMz9nPWtfTktXUFU0dktDWk97UkE+cD0wPnw7JilHNyg7fUA0e1JIKjRndnNQ
eQp6V3pTT1khKU43akRkRlJEe3JNI1NadmEyOU9PPiU7UGNndHJGd1BNYVFoPFFTQVYjdyFjfkEo
TiEzPldRUFJuQHEKejhUaW50NldldDRQX2FjeE1GQVhjNXJWZzh5T0ZBZ2lMe2l8KT4zV01ZM0RL
QDVHZCl8Pk1fJG9JO0tfcWQlMn40Cnp3ODk7N1N8SmU7a05YRHp0MTI7QE5VcUJhbilOeVpWb3xf
IWN4fCkmPVhSWEBhNUpGfXMkIXw/VFU5dipOX1pOZgp6UGNwX1VFeDFBSTY7PkhGR2tiP3RNVmo3
V0FCMC0xciZ4Ry1oYWZYTkVpVV9+SHhSenYtUT17Kmg3LUw3K3FJdFoKengpTHRUaCE3PVYrc3Ap
QF4jUGBTQndSQF94PkZkNUkxbXQ2NmNDYWBROSEzITdeKEYoNSZheWZ6R1VKUkNVTUNpCnooVy07
TUFqYVlsRnFqY1pmez5hYiVTREReQ2F1SlpzOH4pO1poZkJjNzArc0lyNnU7SmdFeGs1VjJINGY/
YmtYXgp6bks1alk1RDhEe0FUPWQ3Y0JKRDNCP1ZUQ2JzSGBobFZCe2RRfnxyMzRZY15DaTtDbWA8
S096UWJ3PitRMmJNck8KellCV0lFKUg7bG1OdmZFdDBhKUAjYX0ydiM4Z0h1QTwhMmdyV0tfPGsz
UlRSbmVoJnlaTSF8XjEoTm5WKW5gVEJrCnpEcD93LXdme3tDc0o1WDwhQ2o+YjNCVnJYVzheTFJx
Q1NmdVQ2UG1jMTVANzMwRTNBc0Y5QUA0Qj5ZYnUoRntSeAp6bEJ6cnM3Q2dXJDNqO3xXU3AyYXRU
MUl4NWdmdT5BQ0NzR0Jab054VzdhUSRlQnVlQkR5T241b0NNSHZabnd8VF8KemE5WGJBNX49Vlc+
bHJQPWxxNUFoRmo0QGZkXng2Nig2SWA4ZyVFcnxRcWxaZks1aH5pNzhBcX1BQGs+ZD5ldmtFCnpE
SDJlP04wPktDSztVMjBRNzF8UVF4RmhTYnJpVE1tZGxQQ2lUZ2V8WjdfNjZ4YUI3b1Q9TVNRSlZ1
fm9vdTFaaAp6dyVAcW1AdDYzYylEOWdVOCUzSDRYPStQfndnTzIrbVl4NTRZNVdpaUUyIX15Mn4j
RlFyVF89ekM8Ty1ZQkUyYWIKekpXfiFLaCt4QlRla1IpJiQ5MSMqMGk7dzFzYEs7MEYmNkVCWUlJ
c25qQSt1cE1VPksyIS07PmRhK1hnJUJCe1RSCnojQmBgKXVpam02a2dye15MMFUtKTtnWGQ5bHJt
VnhNdVZrfWlLKC1KQk5TY09YcH5DPDhKXjswLURfREdIaGxSJgp6N1Z1a2AmZmlaI3VsZDhqPF40
STVOe2FEX1E4ay1SQE5zfHVqLXNmaiQoPFNqTD16WnJKbG4zfChASTchS3QtNz0KekJTKFd4b0Ao
aHJzWTReeHc2JkdzTSUpVkRrSHcrbmpNKjIwaUgofl9eR0ZvfUs4NWR7aX5XVzRma0xrUDFpUXtD
CnphSHJuKEg8QThSdEFoUFEhfHctYHlefTwtLXNVd1ZOLXA8QGt8bT9CN2JubGpJPk1JfkVDM0V7
VUFLZElpKGxfZAp6aHRiYlNoQ2l9dUcybFh9c2RmJn4xbWhwSXpxczshNkE7P3puJksmfXFve1NP
KypgalZzRmJIMHE7RGUofDJ5Jk8KejlKKlYpZilZdlp8OFI1S3tSRXRJOXFxJjAyTFYxN1crWXxB
PEF3eCohQmo9dWVgRnxaczlPdGhCekVlaVIkfXQkCnpZPnUpVEktdDg+VSlEfkVQbWpKbHcrdkVL
RkxDRVUkN1ZLbU5EaHxMLT93TXQ/YzNgPD97KnMwXyNLa19sY2cxZQp6eW9KQjRFUz9FZDNUJkRW
ZXs/Nmh6O084TDZ9OGU3QSlTSUc+a2orMndUSHBNSyp2dW0/WClJPXNgMDktQWJ7MTEKem1IPjgz
c0Radk4zRjxmMjMwQWY/T20qeFMlT25uMUJENyFZPGhjZ3lHV2wlRUFMZDY/VWN5Zz9UPF8pfUoh
I3RTCnowOFomKmZNMXl4PEZVVVNeYVEjcj1XK09CWUJsb09aWXtFV0VfU3NJI1U1OUNQQ2dlfUgk
NWMhb08kYHstNHw3UQp6MVhXckloa15vNDdvfmxBVmR0I2x1RT03Nk5OVE5HdmhzNGtEWXZ6Z284
elUtTWppVGN2USt5XyZFbm5QJUpUQl4KekpEN05fdUJyMX5YNU9gOC1NXzE8K1h2cm9oQk1tVzFD
U15+MyQwLWpmSDBLQjtjVmZ3TnRqMG1ZbiRjfk05aVJ1CnolaEhqa1Y4RVpsQSlrcX4lZkJIYXhX
M3xjNWMxQzNiQ01Ye2tHQSlaRkhxKDVaZmdaS09iJklTVClgdVp5SHlkTQp6ODZ8KWsqVlNmeSsk
I2EjJnNONXJjeFVVa1I2elYzYjhoYyhvUTQ4YENmZF8mZEx9cGwtSFJrJWJMe291SWcxR1oKemZQ
N3NPZXw2ZHFYekpNZlEwYU43Y2xXWHpKa0Q0NTAlNnFBZXJmaGw8UVhnUTkqZSRQUHZeMU9QM2c7
bnp1LUdfCnotd1drbV8zRHBEPHF4ZE5AX0BkPlU7KUJlLWokWjs+Z1Zke0p2ViV2SD11cykyIWJt
Yi1zV0J4dHZ3JTk8TSZsVgp6WGhWUUxlZH0lM2Y4SWxacm5oYHshMVEpYkhDY0d3e2J9UChkKSV2
TXdhMT9PeWImPzhVJVJlajRlTUN5ZSQwRW4KejErZ2NhcD1VamszMG57c0tpWHAtMXVWcS1gfTxt
KU1xeGE9Q0BVOVRRRXc7YFdZKXdzc3h1X2YmejdrTzxBQmBRCnpiQDgpUmk2Yk5tV345e1JEZDdR
MUdhYGwjJUlpSlNWPHxOb1R+b05MSjZjS3Q0MXtQYTxfc2h9YHJhfi09ckswKAp6bTg8SSs/OEwz
fmlMQGFnQ0NHV0FvbSFCcSFmXyVpekw2blpUXl4kfkB2dlNyRXd3aFNpdjwtPnNfKlJIaXozcWsK
ekFKOERFIVQtK3h3Yk9sXy1AcDV+IzZuIUJ1SzNxT2xUTzNVQEV2KV88dGRVZDZ+SjxJJD1+O0tS
Ukhrbz4zI2BtCnpnJk9kTTFKWjMja14rI0pFLU5KYE50NDN4UCo5K3NDYFNNZ18+JWtGb08mYX1P
UUBWY2h5OG1WUi0+U0FKfEVHSgp6SkpycWAtU3pMaVRgcn1ZKnc4MCUxPz5icz1ycGMtb21jY0tG
NEA0KV54VytSZStCP0wmRG9mQCsoemJYYkNMJlAKejAmQEhnMTkwV2hhIX4tN2pCOD55YDhNUUZV
azJBSDBIMkM4e1hJYCYjZyRlS0lfMjhTXmwjMkcrMWo3VEhCdHFVCno7VkphSGRgRlR9cGBJZnI0
aTA1YlMpQG1vTGU5OTE+KnFoSSooWExLJUdeczs4RGl4XjI9YiVWV2VWOFVEPHh4Ygp6XldDd19s
dFojK05LcElwSSREQEwmU0pBZmQreVVfcDA0ZXVuMVg/N0lBdHxSP2BYZSMpd2tXfkBtKzNxJFZ8
eWUKek5sTXM+aXJfP2olTCVlTUJeTTBCUntvJWw1fGxASWdvbE9CYml7MU9kTmBLM2p3QmBIMGJH
ZWk4UDtZVnlITDFiCnpAfEBUNEErWH42QFZvdm1KS1FjfkZuP2tmcGd1IWU/LWhEfHd1aDgpSVRt
X2VrREsmfjBaSyZBZkE2bncwTEJaUQp6bFY1dj1xbVI/PmUtRFROentGUl8tN2l9aGRjZSk+RH1F
dVNPO08wUSR2QXJVam1iIyYxbkdMR0t8I0l2LVFGeioKemwrVE1DO1ExdGVjXkVmXz1sXm1eWVgh
aEdlQXZeb3U/N3JXeDdtNzkwZ05HY21HVStnODZlXlBEa1J1fGBLUmdFCno1bkt3TTQ5al4pdHBt
aG9CVTdVJT1rY19eS2FzQExFYCE2IzFxaEhAZGZxM3l3YDR8P1NkUjktazVNVTYmYzB2bgp6P3c8
a3RTVXRhJGdjP0VeQ3szbkY/NEopQlM2bFlpWmh6Zz1sWGQzSFJfVHJ2dDE9Sj9sTUg4PnczU1V1
LUdwSWMKemYteENzOEVERmlKXzdXQ048YWg8Rko1TVJUNHVBXiEqYUVPdSZhSWNRY0Y9NG0mWVU8
bjEqSyhZYE1NfnVDeDxeCnowMUczemticnsmdkxfQjJALWslX3QpTUROR1VuVT1vcjBDOWhwakZU
TXh1T3xlOFVzYnJeNWhHTWZxaj5remNMSgp6YW51P247RmBjIWl8RjBCeitFNG9Mdks0YFY1bWA1
JUBJRkMmRjBTVUg2ITEpRmshYXd7Pz09VUp5YFkwYCtqUUUKem8qcG14QD9WZTdEX05ZYSVgK2N4
NVo5c0NXeE1fdmhEYGp1ZzBEQlFTQihhTUtoS2RDJntfSl5eR08pMEkoR2h9Cnp1OyRDd1lKTkop
SkB5OV50M1dwaU8xZjttdWN8KWU/KnJBbmtOKUltZkIzb3ZidT0wTmdqTnElTG97Yy0rfVNSMQp6
NlE9Mjl6N1pTTjNNcjxaP3M7cWlJJlhXfUZ0ZHM5TjVHbS1KaXAoSzlkb25WNz1TeVktJVF4Zz44
TURKMUVoKlEKenxBQE9ISCF5K1FDRlcxTG9ZQUVgZC1CKjVwanh+NnhqQCFnTUdGYDJiKXZ6WllU
d31wNT50Sj9rKnojRTdHJFhECnpYJXNweWhsO287SHhQd3RGeUljO2ZEKGxFWH43P2c4bzdnTHE9
Sjl9c3hreVBlUnhUc1pMQm1GKFhpbm1MN2VMWgp6NzQ3eyZ3KEVefHtaPD5OenU4NSpeOystbV9l
TFUrPlg5TzNec0RJRU9wTjVAQHxYekZMeXFnQDtNMGJ2KyF4UH0KeiFvSTFpZzhQYkBaSGVYcmpY
N31aWkl6M1JMeE5Qbk9mPm08QGJJez4zN0IkVik0b0JeKkVvI15LKUB9RHVRfkYmCnp5akNIZms1
QnkyV31KTGw0SnxFSGxBSn09VEU+Yk5tUHhudW1QMmomX2M8K2FMSmY/P0IhVz9tTyFpaShALVJk
agp6WFhfUzJFUylhYS0/TUs8WGFFdkpadkxIKz4kST9JckhyNDtvYWBRNW8kRmBjXytSZUlfdmND
T0goVHptTmZ5Xi0KenQpPkd5YkJQXnxBMEV7fDdweUNyZUY2a2pfN0NFPkpZVD1+eylQMGNWRzM5
e2xHTE41dSNPQEVKYkQjOz10KD4hCnpvIzEzI0ZRaSt+cUR+eVdRTDI4eVY2dmImfEhARmhhdT4p
d2F7YyteU30zWT4xJnVoS1hFVGI2cVFTfjRSYDZpPAp6Z3xYdk5lXzRnYEVsVXpXJDRjUHAmfiUk
Y2A5NmkmZW4yUE0wdUtpKSZhZ2lTcHJmJE0zXzRgMS1NaUclTHxtfCYKekxgUnloVUxjSTlVTGpA
XldlQmw/PHpyLUdWYHJ9QmtUaSswe3s1I2RESVhqakslbHIjaEpaOyZOaSpseE1eIzdxCnowMCNg
YFVaPyY1YmpxVXFBVkpKNFgwYm88PXU4WnQ1VlBOP2xGTDtDKUc9ZHNPSk1GQGp3cDxVPD5YRkZP
cGE3dQp6RzhafiVpKnQyTlF1PyM2OGBASU55I3cmbk9wMjwrPFVvaG42PGAyfCtUeTtJSUU5WCQ7
bGV9amVUaUFCdkFgbHMKekk/MDxeVWdSJHBlZiRjSW1sZWRpd0toJWQjKV9TSCZ+Qjh5cWNnc0Yp
WUNLOEMjekY3eiZTZEIlaX5YRkJUIVVHCnoyTk1XbEY5JD9nZEBvMmw7YjYoZ3goISomTmw4bHdD
YyV7YnM7JiFzYW5UdCQoSi1oT1hUKiYoI2l4fG9oQW5fYgp6I2ZDfnRnTXBqeXpjXip3MCs4ZzJq
Vll4MXstQ1duOUBeS1FAYDNPY3k2WlYzN15DfTh6ZXh9eE14PCVjZTBJKiUKeiRvP1E/O3NsWmhn
NCZWKlMlaEAzc2AzUWltQ0omLShjWn13NUYtVyNVPW43dDNDYUlIS0lASWw1Jkl8eFVETXR0CnpY
V18wYVdubSs5YT8qdUVPN1BDK25gc0t9YTVWcFBgd0hGeHVkNmBoWkotKTtwTE9odWRgYzBYejh1
LWlAdTNxfQp6MChQbnZ2RHp2JHp3KF40Wkp0JT4/dCh2RFRvY1FSYno0Q19zI2VTSTN8XmlpSVJG
SFEqYDROZVVkX0xIa31EZ2wKejtse2U9MVdofWlwTmh3VUhUTmNaPWd9PD8zJWhwI1hAUkVSV0oy
ZlF4VihLZFo+USRYMTtuJTVxSU9xYXRUJHtWCnopKiFeWCg/RVJ6aVV+JGkjaVhTREVAZVNmTTQ9
QzZ7UGB8PHomUFhRQ1p+UV8mRzZ0THVabl9QY3VhTTlJVlVTTwp6Q0VHbTIkdEZxZ28wdEdadWli
N1gwUjxiKTJrPTc+QTApNT4jZXxoZER3Y1hIPUZzMjYmSk0rckh6UzxuVCNUPCUKemAkfCtuS082
b0dPPkdzWnFWTDwlcjJ6OzZFSHx7eGRqJG5ySGVFclA4e35JeXg2fkx7LSp7TVdUYTRnKD5MaHkm
Cno/ZCRyUUFKfTYlYkNBeE0/Y3dqcllNezIrdiVYRiF6eUV6b3AjKjJZVmE4KSQ5UyFwTnMhQzEh
Jkt4UD9uJWlVaQp6bjJQXkhJZDZnVztjcnMyVTw8UCl6IXBOeERjTVh9TVBtR1MoMDZKO0NxcnBh
enFTbyFDcmp0NVNMJj5nai1CbTQKekglTCtBUzdOTENuNSYhXkI1QEpIUT93XzYrRlR7Njtqe1cx
JUghR095RTh0dGd+IUR4Z2gkMCljcEk/cylBSTIxCnp4MGFPMTBCYm4rKyZme140S3lgMUckZXIr
bz9VRkkzUDV8RTZyOWYlM3dAeno7MntSSEJtcnVOQjR2aiFGVHheXgp6cDYleD93TE4ycWZHX0t1
UiktYWpFUlNicWpEUD9vcXRgU0dlJmUzUzM1emNSeTNJQ0FyPlpDMlkwYFFONCRDPiYKek1ub0tp
Y2toPzRVKSUwSDszUz9fSGhkdnJpaCN3TmlFVk9RRTV+ZmMyI0N3dEZHfl5LZEZIIVVVdUZCRTkm
SmlrCnpWR0VWQ2hWNmotd2poSGtRZ1lvSiRYP1lCUjxSQkt2RVZPSjd6dkd1dTRoeUBpTmdYeW1t
V1AqXztgKzsxcEEmTAp6JjlGOW1ObnJzOGtGVHdEZDJIKiNaNzFJYlZ9VEZlSWRpJmJ5PklpVDFT
ZGF1RUMwQDZXdCpnI2Z8ZVJ5fEE0fTkKej9jQUVwZFEzditBJEMwVCVIe1NiPE1oVXhuVkk/T142
SypQYStSJWgwcGp4VHdXc04kaWgyUjc2YXhXT2gtVmo+CnohOXhGY3VtRE1abDkyMzwpNU4+fEdK
fDR5TXhkeSVnZV9GSl9gdSMtSG9mLW05PXBZUlZJbSZxUGVYdyFDI1NMZAp6NylsNUxUZDRFQUE+
PHMxej5jaz4xTXl1eiFpWSoya0RhZmZtKUdsJWdKSWlsTXJMakEoUjdza2dKVWFfMU9rNSMKel9p
NjdFO0xxaEZlYSpAR1JmJmA3JSloaXxkd3FrJXgtOVlUcm8oM1NWUzwkNkRlND0kO043SiN4JGo8
YXM/cDtMCno0I3VrYyhtQUVKJG0wa2R5KnAqME4tOHxeWEJ4aCEoTzspYVE0UmZsRVQzTGErZnVj
cFp5TFdzPHtOfDxpejYpYgp6e1l2bTllJlJjUClrQ01TVEJKNFRpbTVgV2RobHZSXlQ7WTR1TjZE
TDxjQm18SWsmUmg4P1ZBOGt8ZWdZVSt4KWwKelJ6JHBjbDxwP1BkWjk+VzE2elJwMFc0R1lsT1F4
e201K2R6ZmZwe1lUaUNydXg5aj5fWlNQV3RteDdXVFp4KlgrCnpwenFWSTlCbDAqSzY8RlR7ZHlO
S2I3ZSFyXm9nNUkxfEJMeEJAPVQqeWpYM2orVVVGZUVDb2l1QXFnZWZpelhOWgp6MDdeJnw7dkM2
ciRMM15JbTVabXlAPitUaHtpSyRDKHpLa14tWjBCVnlCPVU9QlpMMD5Acz8hMkpUN0kqWDFoI0MK
el5OYTlgVmckX0p3RGhqY2o9VXJNP1FPOXREK3F9OUtFJmJveEN0MXo/JUo7MUFCNmRsYjJyQEck
fmdOMm9zWS1yCnpQbiQ8QjtUKVlWbjczMj1fcHxsMU1Qa3BoYH0pel4xZWNibGtrUnd2MDIwUF5P
a3FJaiR9VDwrOTYoQS0jREQyVwp6NDspKDs8YitqfS0xR01IYVBJUTtSKyhSRmNqczdTMldLfU1G
KllMTDB7fEBRXk8wVTxuXnxRI1B1OGZYSl88cD8Kekhkb3tvQlE+XlRYWmd2e05FSEVxNmludU9n
T1F5P3t4KnAtPTVacENSbERvaUV4eU5vTmplfWgxLXpmbWl+aVE8Cnp3WHxmVFU4Q1A8YCV1eWhE
S2ItXz85MGImd1VlPEBiODwyPmxjdkVRODZWSClfUFBDaSoxTTZJJV5FX0pxKzNHQgp6c25qflFk
KmVNR1pZOGJBN0BFWUBBdCVZaFItK3RHNlRUYGd6SDNSdktxO0hadUc4IzNgZG9wKVRoQGJvbDZp
NDYKejVqT3Vvb05qOEViQTIwWkkkQGRtTVFacWYlaUYrcChuZSNXeVNYeTsqV2ErI0EqRHFXenkm
cT1sUE0yZkNTOGAtCnpuSXhQakFwWWZObitNLUo7JGBzb0ZNQHt3aXcqenQqPXFkVGxpQTxlbmFt
I1E9NjQ/bzllZ2dVNDskJmsjMiU5Zgp6X0p1QlB5WTh5LVlhekxaWlJBZE5sVT1XJjUmcGVmU3U1
bVpHbUhvVGVMXztieCNDVFQqbGt3UCFJU3lFO3B+WDcKejt2OVg/b3h6IXMmc0MyQ3FOfTMyXmhA
akJUOXw/T1loZ0tpK3o4TGRyI0VDPXlwJjxXdVRYWWAqIz1Kb1EtPE40CnpTJWBIQW1iJVgrQlBF
ZSgqaWNgZk04YyVAY2NWNyVpfE99UV96M2MmQVdjb05SeX03dU0/TEJnYjt9VTM9a3M4VAp6K2NS
eC17VndPLVEzKG9GRWlGRXUpNzZUamZOXk99M2RePU5Ma0MzKVJYYkAjdSZSOTg1S1VuVllhaUFh
NUFBKmkKemcqYEFYb3toPk5LcER3MntGRzNOcU96fTFeTjxXbl8kaiFPJkRXUGQwRlUyfll4aClI
cDZkO01zI1BoQmF9RXkhCnpCfGRIJnhwayZHUXZzPCVWMHFgfUxaMj1wdVAoYjNSYUU1NGt2O308
TzNxTlV4IyhKKG4zeWNgdGhDcjxyWF90QAp6cDE8NGhsPzY3bEQxYjNSd3F3Wk9mfSoqVSVrN3BY
TSFhR25rXzxxJTVFJWUkSm9kRHA2RUZkY3F8V1pDR0w9VjYKekBhZ1dOdj1hdEVJdXZWTml1KF4t
ZnV9MGNLKWRtbmlrKDBlOUNrb345VSsoanpEcz9waCUzcyF4MTN4KHdwbSV7CnpnPCN2U3FgYmZJ
VDswcXR7X3g/MDU9SHp9Zzt+WVFJMShlPDh+KFc1VnlCek1zV2Z3QSU8K1hGM3xBZTxSJX1kVQp6
TW5ueXRBcD5LYiFHcW54YX08VjQ1aE51SW9UJVQqQ18hSmUwO3FNe29hYG0yUERNdTREemQlPFl9
NSZ9U3I7PyoKenphalJDNStSdFA+SV8xNj5kPWEkQVF2az15OFY+OEBgPHZRS2ZvZnBqSm1lP3Bk
ZGtKcERkVWtNQEpHMnhEOXJoCnpGNmN2ai18TVZvMW9rSmVLZ3V3Z1JgSjFxa2YjZFdreTU5JHdV
QX5oSypUMz9YWmJHQzRuaXxBUzl5aEdDcW18Ygp6ZG4xWkRaczxmPCkwNGgrWDRKen55RSZSKD5Y
I0V7Z19TaHJON0xYJT82cz5WWjROU1VWS0hPbHd6ND5BaWdEcC0KeiY1RHgpdCFLRkdDUVJ+Nk82
Vys/U0YqK3FoRX04MWh9X3pOUW16e0lkaCtOfTkpSVh+SUBKMERANCg0R1FseUlFCnpBc2RFZjc+
Ni0ye0klRD1ZdCVFejN1VVNkJTFsXyFWTGpIOWIyVHFHdj1ndDtqM0ZTNj5Ca3ZmYDNPdTxzWjs8
RQp6T0VoeigjZzAtKyZkTiQhVDYleWRvQjV8UCQ3ZGJiZ3NGcT9SbmM2LTMqWTBfb2hoPztCYDg4
VDxZXjB1c04qTXcKeitfc0VVIUF3fXpmV29XbiNGVngyPEdlUkxAcmNfKTV2cHNEY29QbUpGZTV5
VERRPGo8bk5HXmNKTihzPjVYJlQ/CnorPF5FTkdkVzVvcnFRdnsoVikldjAzS0ZtK2MhNVJzU2dw
KkNTaH52M2pmYD0xPUVLJT5WfFVgU1Npaz1tKUpDUwp6JlhZUUJ3Tzs7Zk8+S0Z3ZmVASzcwfFN+
dXxFZ29sN3ZieyRsJVQtOytjTiR4UmI1QDRwJi1FfEp0ZHdDNk5zQ1AKenRGNUllX2hZTllOKFdu
Z2hSMHdneVVoVV43SGZARFE9U24lNiRENjc8JXFFKW4mRmlwPkp0OUhIckdZeFRXRWd0CnpuVmxH
c1RFaGVaVmElZXJAUFA5bDVuK3x9MTJJPlpKZDskOUxXfnFCc2ooVyUlRjNGV1d8djRPOGR2fXND
N2VUbAp6diktJWpCWXJAcFkjWDw7N3lnZFlUKSFvNl8wTHhTUUplJmR4OFkmQmJMMGNjMypwI2pI
X3BJQTVBRUJHdVlufVIKemhucGNZWDA/O1ptdmhmaGhjR2EpdWB3X0pXdk1wNzE1R1Q5biolZ0ol
ODxXbTxpTDI0R24+R0Vpa1lCcnheOWNyCnpOe0wtMnFWaFc9JjgpWFprQ1VeTDsqYF5rYz9nZ09D
ZDgjSEUocnVnaFh3V0pnOVU3WkkyMW04SH52LWE2Q04hPwp6QjJlIyYtT3kwYyZ7UUR1SXNOU21U
NCpWZGl1MHItPFNGbVlybmpZcmtiYWlZTVRHMW1JSSlHPlZQVkNMQ25mO3AKemlmR2k2JWw8KmVf
Uj9UeWJiOEFTT2ZkMngkP1p1OT0zN35+dDhPOCt4TjZLNkwtXkFlOSYzIzZVMTcpMFk2fWJJCno7
ZjwlRjNBYUooeUg8aEhGIVVKUkFafCQ8X2BhNVElcTAyTG4kWjZJYTYrc0U7O0BPVkl5K0ZnYz5u
PlFObFJFZgp6cWVPOTFmK1FlRjRVRlc3PjVmWTZIZUpLRylYSEM1KT5JKCQxcW0+RksxZzVNe09n
eHVvTnpfczsmRmo9dUZ9ZjwKemFTJnZ9cyQ2K1c/UVEwazs4UVp1NzdVTHw4enJlKWJnSTYhWFcm
RlcjenwyTFA0Tl9EKGs7K1h8OF58IzFYNHpHCnpybW1Fc0IxbzklWUh7Rz1mOz4mWCU4aVY/ZGwk
Tzgxc31wJCFPMFhfWFBieDsjailreXVITy0qQ0tHfHMkTVR7MAp6b3FUOCNVdyp0NGNteFM2OHE2
NDtsLUtheCNlaG5gJEBGRE5wUyNEKis8ZjhvTGFiRmVebkgwYjMqKWIpN0FneSkKekNxdlBkMFVL
KiVgRnstPjRYbyk4U140WmgjX1UxeTMxTFBgbiN9fGtOPSNIT3R1VXNfYSl+VmRwK1F1ODhDIWJ8
CnpARVMqJjM/bnNMZV9hU0VsNTdRMlcjM09AZEhKSnFnVS17ezdGR2dJdl43azFZdXgrezBGNEtz
NU8+PHh1Q29vOQp6SlIkcmhZKWQ9e25DVCo9TFh3S0RFO0gkQmBQRFRHYj5FX1Q1bkVCKlAyJF9m
SkhNT0g4Sm9BWENDISNTSHNlUlUKeiNHKUBnTVYoMmdhflg8WVAlYGhvTldjUXBHVUxUPjhFPn4q
IUQ5WF8hIW09YWhxdkR7czVGTTJOcm45I09TISNfCnpoNHNvKEgjM0VgbkB6PHspNjdkSiFpQ0Yj
MFQtezJGNjRsU25fLVRZaHRlKDJxRSFSYGNhfE11UTFwdHEwUUBLbwp6em9gZzwrbzY8YzJ1RUxw
LU82ZiRlZ0YhcllLJkVZK2JTT0ImdS0kRGtIeG5GZ3tCUWApfGFqSllzdVBwVExafnkKek9ZTWRI
S0QhZlg+dT88JkVDd0NpXnpya1lEWHtVSUwxK3I4VysjbHVwOCMoM1c7eDNhIyo8b3gtajtuJl5Y
eil7CnpQQVgwQFhoKDhaOT9KblJZY3AlVyg9MSpxV3hwWFdaQiZ+UngmWU11LTxqN2hyP1pyKXhl
SlY4V081Nyh0ZT18UAp6Um9kbE44QmJvfGd0UkJwPmtIP35EaUtSPHpWKHVPUH1uUzZDeyhTZDhx
OE9eWW0qVkstaXtBbiFJbTB1JkVeUkQKellHLTBlZXJ7bmlYZXx8P0RyZklqPSpAcHc4Q0N+UyNX
JEtDUipWYk1lbjNBYHdwfXtCZShlXmZ2ODs+Ml5YSWVrCnpmSFhjV0dVTUNUK0tYKkhVZF5lWXkp
NmpaYz1AJHJ4aW1pJUVAe3ZJI3t+JEQyTztZQHVIZmxeJTJGNjxtcjRLVwp6TiozfHlYTHUmMzBY
RXQhZ2xufH1GVFM5bExTMkY9NDRufjg+Qj8mQDJgRWckJGpWYTF6JCNqN2xkN0NmNz1+K30Kekh+
aylHTW5zVTJtc2M3Ji1BSkZMIUIjbjlUIyFIMVlQbl9iOXBYMjA5RH51NE1UYTQjbTNIQno8IVh4
dEhYRztwCnpubmZ+WSRtLVFecDQ9K04jVTg3Wjk/U0BibGV5S0wtfWpgUTNaTjVILTtXMyR1bEZZ
biYkSF9tYWFPc089U1FvJgp6RjhJRlVEPXhkQzJJd01FdnV1VnBIX14/VFRIVzdfbU8wWmsmdmI2
SzZDOFJ7UDElSzVeVmZkLT80K082dD9SbmwKejRjMlkxZFFMYFppSkk/NmExI2lFe1Y7IT1fT3Vx
KzYrJmhhY2JZKD4me35fLVRHeGZ9dX1+dVQmUEQhZE13ZDBXCnooYVN8SDQjcH1ZNWo/VD9IR1RD
Z055LTtSKHM0TH0qV2ZZTlZ8PU47O1dIJHc3Vm8jLVYlT2o9Y1FSKUdrP1MtNQp6QDNDO1E9d3Mz
SmZ4WnlALTxpVXFVLVpSakcpanIySjxwRURTeWU+dXd3ZX48Y345TnxPK1BvUjNLaiskK3o/Z0YK
enQqb158d1MkQko0aWd1WFd5NXw8YHZOM0pSYGoyPTtZSEQkTUQ/dTFBUCFMSVV5PmpfNSRxUH4m
NFFoUWhBdDVgCnohPCstPloxSnheank1LVFeUzc4MkoqbG0hJCFvTFRIQ1g5NCVGMlNCN294R2hM
KEx7TjVHJlBZQ2RVLXZsd31JaQp6XjBIXk5uYGYzd3tvY2hZJT1CNjQ9NF5SWDBZRV5RJjJAP0F6
QDE+cWkrTENgUmhgR1UzRmw7eSNrPEZ+c1Q5cikKejN8TzJmXilQSThJak88ITlEYHhQb19NajZF
U0BzaUlYNUleMUpzd0k2UkNHTzQwU1kxOCtfeHJZYXRYVT5NdFZTCnp0M0NGVjhfcyZqXnkrTSF2
XzJEX3JiKCQ5ODV3T2heKzcrS1ZNflgoPT5DPn1KK3F7VjVKMGBFa3tMYS0rK2w5Sgp6QG83PUd4
KT4mMDs8Zn5vQT1jKjA1YHpobCQkV2pDY09uV0hhOWA3OThEU2kpK19VP0JISW93MTNNbVVUbX5q
SmUKelc8TyVFanoyaX1GQ1hfMWt9fVhAbm1jZDJ1SVYhMXpvbUIxYld9VVY4N2BtVi1+JlY4emtg
SUgzfCVOQTs+ayohCnpWbUsmfk9yKmRGQVM1NnktOUUyNSVAPmA0N05rfX0wVHpZQ1JySnNASjFZ
Pik7QykhTzsxNz1Ma1B1SSQxKkg2Wgp6JEcpN2ItKU1TI1MwWEVUQSZ5TTZTU0B2U0NUfn4/LU47
MlFAaiRUSVQ9P1g8eD5kPzR2K1U8UF5ZIUpvbG5KfTAKejJwJTZNMVQlcHttY0MzbXhWPHY8SVph
I1pKP2FYcUlgRF4wNnhfVzJsNGQoP1IjQjV1clNRZncqZ2pqYTElRDR3Cno+UHFUcGZgcEBLQ2g1
I0N0KjVfMUQ5Z2lLQDlnezRQZE1wMDxNRTdQODNYWXh0OThuRWZ8fXdrOy19YEtMY188NAp6Tyhz
VEFKaTlmbkl2PHlhNmVvS2RAKD1LVTIkaUA+KX5eK3ZKZDFkVXdaRUJoY3hiODFDJnM2P155bkpW
TExjVjMKemY/KXM9Z21VdE1aITUwQEV5KCtYdnIxailvMkBWd09oRDRkQVdqKXQjVGduM2djKldE
JTt9Y3VhNUx3aWE2K1ZTCnpmPkB4JEFtPUZMT31mOFdWXnY1cHV5ZFA3Ni01Tk9EPEBwOE81bH5J
PEJTU3FndzQwQG5LbmomeDRQOUhXZCNxVQp6aVckUT5GMTgqY1U7TXR8aDlEUyhQfSVSO2RfSzEl
blh4PGdmb1NFWUIjYWVlckpjM3t7eVNzKitOe157NHNmTlIKek1mTXVzKCpFWkxDWXZGQzIhYEIz
PzVCOUlNek9DP0tPaSp+O1EpczQmY1g4UiYjbCRmeDdwcy0zWF92JnBrKnhMCno0MjZ8aT1adXhZ
ZUI/TEI9JkdtTSVSI2hsZjEkUz1UQW5RSD8lRElfZyVVZ1JRSSZwc0cqbitVQTxuNHVsTXRGaAp6
TUcqZHNMSTViVUZFYl9vPUxrQkcydVQ9RG8+SmxXPC1GI3hGZHpYZjx8LWRHWXpRR213M0djeGlK
M0RxQyskKkwKelMkU0ZmRHFZNH4lPngyYytRMEBUSmE8SX4xdGs8dkROJT5WNjtDciQhMTR5Nyo9
VjBGYnFpeW82TCMzVT13U2ojCnpyaC1HQCEpZjReOFUlUGQwSUFxdXd4ZmFhdWFoPE1oeFlwPjBq
VCk5XlBWI30ySm0lYkVxMWszdFlLKDN0dTlVZAp6PSp6ZUhSQG1jKCE2akx8KjJkbTE/S21JPFA5
bmcwV0s3aWowIUA+QSNkQDJ1IU0/KXRoJTVfWXBEVGo+PHhCaFMKel9xd1l9KiZjR0RnP2liajxT
VnxAOGJ4I20jPClXc252LUFsczhnYXMkS2tZKUcxcX54KTJYRH14MV99PVh5fUdECnp0T1RPPyN5
JXBMVktBTFF4NXRpOFNaTntUcSVBNzNgRGh2aGojXyFea05pblVOUE4wSVRnY2JiX1Z9Nj0meE1X
agp6bWIoPXROcFJwWXVgfWM3dElEczFET2oqenF3aylxdzBoNXR2aUR+NmMjZHA2S1l2fG1gSCU8
Yzd+WGRCUzxOVnMKemA+fmZvaCVeP2c7c197XmpVejc+UXEhKDcoRz1YWWtASWRkYzVuKHVWT0RL
M2VZcGo5V2RiS285MW07SWdzYjtSCnpeKnJVV0hNVEQxKkAoRE1UOTQ1OzxIPXtZYmM7Q0Q0NVVx
UVkkRVF8azBMTHUwaUYrRz9hY0QoNjlRK2VTQzZJSQp6dVJJbj9efWFpdSpUd2g3c3JZa0p5eXtf
Qjk9SG8wMn1FN3dUWHQpT0Y9YDNUa0VOYDBOQ3dKc3Vqdi0oY25lZSEKems8KUxAYDg+KGF1TVh2
VGE7I2YoYEkydjh2SzV+YW9zQXxuMHAofENVOHQqYUkhP2VCQX5QWWhPcH49QDF0dmtQCnpLakVg
amQqOz9yPGAhcnxtNn5IKGBhbnlmRElPU0FrU2hwP1okN31xTmBfQnZmcjE0TDNvPmJKdEopZlY3
b31DUgp6KFFkY2o8TkZ8OFR4YFowTkhvU31fWkR6ZkxBKGBlWiF7S0E1aVhhSV5nQXxxVEIoXykh
WmB8NkJpJUA/YlBhKzgKelVDPVB1JHU8KW8rcEUpUWZ0d2YyUmc/WFI5e3QjSEdEP2JWanBGZmdy
QUVTeHpzKkg7TFYyXnQrSS1ORnZEP01PCnpgXko9Uyt9TUZmJnMjXn1tdXw9XnRCOyFzdXF3MExh
bDVEQ05KNylmZSpUJFZKb25sX0Q+VDVNI3FWXnFWVyZzMwp6VzV9a3k2amk4RFhEJm1xNTsrZG5N
JWglP0xzfE5iWlV1MjNnVlV0LShTbylXaCVuS01gLXM9emkzKWpGeF8/MmAKelAmcHlFYjE3QzVB
JCthaiVwYnFQYjZfbTFkUF9xVzh9NWdkZXh8WCNEI3EjSnpUcjgzUG4mSnQ4WE9aIyVSNzBeCnpg
UmVqOGo3VChyNnFvXk1Sd3l9SDJ9eDtiIytKSExqdXheNGRoK0V7X1g4bjI9SHBEVG5uYmozMWVj
SDBvc0QtYQp6MktDTzZTT2NQRkxDVE5WR0NVUVdgeit5LTIhR0w2YDF1T0BpfFZVfFkxbWQwbDFW
b3psfEhaSlNoUTUld01PU3kKem1gTj0xSE42Q0A0SmBQYiRNKj47cSRvbU5rIzZgUHN+IWpPVEZE
QlI3V1NgeCk7cGA0ciFQa0hHdX1xN2A4SjE8CnolXk5CQHpoUEtRYlVPWDtaeWBBcF44T2l9NEpf
P3ZpfXB5VWZTNUNgd3pKIWp2QXJyPVFGbj19Rm9aRW57Wl5MPQp6cX58dSpvN09+YVkhJk8kXzI0
SX5qZDdOT28keCFDUzUxcG50fl4+ZCt3SFlCLWdhNU40SykhYmcyTlghdlE2RXQKeiYlNkEmPzNq
NyROcXBWMXdgV1ZNO1MpNChqMiE3MVA/N0NHKlhYWStjRWB0aSVQJk5mamBRUVA3K1VkSkU8KihT
CnpaI1k5PygjazUmX2BxeVpZXmtlR3twWSFjIUttUShXPVl1QUVfNUx1PFR8eGpwWURYWjYtdj5n
citAIU8xJWM7Pgp6cz50endQcClUZko5b2x1KSo7ZEgxWV5kMHo9M1ZDbDJzSjg5UmJwM2FnKz1y
VFo2WT9ePk52aGghbEBIWDQ4d3oKel9PeFh5dEYjXl9jeEBXMWl9KzQtYEJoPihXTGlTclNKZn51
djtBN3BGN1lfczs5azNyNXJ3Z20xLTB6QzJeVzZtCnpzYEZaPU43PztSRGVEcFEmYCEqYWZ+Uzx4
USN4TThqR21TQTIxaTlFUFUxTVh1V2RST1gqQn5zVD5tPXBXJj5oQAp6Z29wPl9XRDledTIkSkZ4
OEh1VTY3P2NjVjMzfU1yKGEzcHVPfTB4Snl6UVoob01IfjZJa3NhQiZkJCFhSk5QPCgKel51dG8r
TmBtRXd6UE0oYCRDcjZUVGxiVHhDe35xWDMwMlglQUJhK1RaSmRodyUlN31WM1IwbntRcXhoPXZL
Q3RHCnpuX3UoPiE2TDBSZEJJSj5oNVkkZGIwJSkyeD9GRzx6a1pVU3VrfSEpJHNET09fQV59O14j
c3A2dWNOfHNmN0MxVQp6eDBhLUwzRkVzcik5SmZgVy1hI0pXKUxrOSZ7YCFhRjx1SXJxUWoyKEoz
TDVUN29TN3xOU1VBVUMjNVFldWhsSV4KekNuPSlASyQjSDRnfH5VVG97JXVBVElTezVjd0RlbUBl
aSRgPmQ8cChxQGVHaGtDaipxbDlXSU9HajBtbCFeP3tHCnpLUEE8cSQ4ZntCKFZBeF5xJlhxT3gz
Y0pBbU96JGsreGFzeitzK2VmVFFrdn49WHtQMW0/czNxeUY5KC12I2Nydwp6QCY9MlZBXnMqJVlQ
JjFBQEU8OH03bz00KCpuSF5vYFp0ITdzWUJAdio/T2twYEZpayZSaipaZUorMlU4S3lZVlAKemE5
Y1NqJG9WSD56TFl1QEBjVHo8VD4qVit5RyUhUE0ldylsT3JecFUpKm5SKytrRT09bmQqbFpWTn5X
WkgyTk4kCnpzTT9FN0xIVWphVzNxcDxqI3g8JFheRjFoZmYoUDFAWDwpNzh0fm98b1AwPD5lTUUh
KGRBJXA7Jn1EYjxVM3x2bgp6e3ZhbzJMezJ9aHpWJHx4U08za0RLUmwtfTU2fERKbXolQk56Kk14
IWREd35wJlR7UUVgcS00fEcjYFRrUlZpdWwKejYrc0tHQ2QtJlhkUlg9ezFiTiZzcz5yWjI0WiZE
NTFxMGI+cyYtMilIOXB2aGBjNHNhTytYOEVtJHtJV0BEVXNRCnowVTYyPVJlNlR1WHRMS21wUkQ9
WUZ1ZSY0PkI9e1hhNCRkQndBOyYpI2dLPlBOLVRKKmk9ck1ITHhDRzItek8wUAp6dT5BbChsfTtE
eCRUe0FSOGZWfDsrUH5MZ3dnaWhVTTlyNG5yYXVjb2shTik0ZX4qNl9zWUdGKXlCQnBjU2M9KXQK
eiU4PS18YiU/MiVUWHlHbXp1N2s5P1ZpU1NCRz49dDxKM1FyWi1oI3JGZUdWYlhUaXxOWSQqQ3ta
JkVLVUYmaFV4Cno2a2A0akFvcWIwTlMlYSZQUlNUN0wrfjlOXnZOOWxrODRjM0xEK35MZU0rVmEp
fjFOOU9hSmI/c0Y9SylpTEBmNgp6V0p4dWFXZURlSmMjI3dzZ2pBZk1pdjJ6aFp2V2lXKUt8Ml95
PVUoZCVtMlBWXmszMnp5N2VYQmlFe2I+TllPbCQKek9xVHpPe1F2S2k+SGojXnt9SGJMPDU+U2t4
Yy1sMHtVNzFfS2FUWihnek50b0w7TF5GKnt9VFpudzVzb0U0TmhDCnpsZUpFZHZ2cTMyV2RneFhZ
PzFLdTZweW9CbGl6amctOUM0eHFQRVcmZjF1R09AODVYZSF3WW81IzJYITY7MD1AMwp6bz0hJUZX
STwmRHU+TSk2UVJld2JsIWNHVkVJZFlePzxpflMqWllnZyFZek41RndOQGlQbjtnbGNOMSFva0dE
MFoKemV+ZnlWdy1DUWRCfkFFbE1ZPkVASnhUUiRudiRufnBHKmU2b04xO1FhUUVud1ZgfCF6YDFL
QmQrKjQpdjIoZzVYCnpNKDZKcV5qKkt5bmFzeFAjPy0lbXpUKEQrcl8yeUpLQWZ+KkdraEZldiVf
KigmcVBUWFBydk1ZSD1kNTJaJHokawp6S1VjbEstcEZ4SU9iYT0zOU5+U0wrMTVxdmF7bm0yQWdB
ajBaRzNfS09NaGJhTXlwUCZuOCZkRng1UjM8RUp1NUsKelF7MDJFSHtuaEZxdyFhU3FkPyV5Pm9A
RUIycytULXNURnhtSWNCZHghPlJKWiVUczNpNEFqZEZAb3diWSghMV5KCnozeTRxVGtiSypweUFq
aXlZV0xMaF8jQ0FmLVJjYFBsPX4pbTtIS2xNVHBeQV5sSExSalk3bjcxLVZ1QExxTVkkWAp6TWJZ
S09rWHhebzVORW97P1FhXmtoPERvMUZRZ2VxS1NeTnteaUMwKldyYkQpcDQkaF9LeG4hUzluciM1
JXwpUmAKenJmISg+YUBZbiN0cVFLTSVSY1M0Yn4/YXVsKzw2O1dnJDkhalBJbm5WTilJPWJpUzIm
K0c3Rl4lTExAM0t8OEtxCnpCWng7eTxsS3doazNIdE5DeWgzS1ZrVkQ0QUlgX2J0MlBYKks/KUdE
JDA9PHhsQytQTktARF99O0w9dzxsaGEhIQp6eiE7UlBoIyVuVWVFPm05PCtsaVVMciFqOV5+bjhP
WjhjMFY5Z0UkP09iMio5KWBjMl5UVSh+VSt6eStGd1lfKDkKemVLRGJ3bkFDajVVVkR0ZV9DQykh
RmZ+ZkQ7TT1fOFdMQ2UyezlnWkZ3cE13dmB9OG51YXFiQVImU2NOYyk7UT16CnpkJUI8cmZiPVhe
WSpYRnRyOFU9QT59Ris8KX1vdjlyaGFCcztCeVV6THJySDZkQ1M5IzNWTyRWPkFwQWd7P2EwYgp6
QzYrPE5lXzIjcHE+fkI9TmNaQDluSCN2WXBfbmVfQC12ZHVZISFVc2V0VXg8O3dZX3NZJCZvX04h
VzxUdkpwPWwKekA0Yjl6ZFApbDJjaE1zUFY2SCNrIW9+VWJke3JyaV9aQVVgYlluJXA3ZyFKV2w2
Z0lSYkwpKHhtWTdidkQtflpaCnpKVDJGcUokfTRNI0dvNzM/PWJPYk44PDMlfDc/OVZ6c0J6OHh3
P0IyP1ZVVXlJJT88QW82VGpuX25mPlUmemRvNwp6SGMlWldgdF57cHIoYXkxR35iJWtIJU1GJEVe
aFdQWktWe3Q5YjlZOXd4TFNgNkp6Q2Nsd040eHchUXA7QFlIK2IKejwtUFUmI25QckB3UGV6eXVr
bWs1bG5SKTxtK3IqWkhKamxEQmdOY3kkSzQ2OG5xdEA5Xk5IY0otbSt7OWU+JEAtCno4d0dKMklV
SkBKa0heVHc5OXoweV9fI2duKih0Tl97cXxxaUljMXg2dSNSIW8/O3FETjZoRy01VSs7MmAzKlFt
Rgp6PnxGN0NJSyVBNEI1bWlxWms0ak9DJk4wQ1BDbV9TMz4hXyRpeC1yfjY9P0ZzQFh0UXdUJUB2
ZSszM25TWmVDNEoKelVpWFN7b21rTk18MU5tMXZIbyZVYEIzU1JrXiQmQ0c8ZURwejFfPVhLUEht
KHVlbFByQVpJR0pvck1jV0otSSZeCnpWdXA2KGZDVyNvQ2BESUZoQ0JQYkQqZi1CRkFVSz0mWXRM
PkFyJm5NMEM7VjIoVzkyYl9oN1E4U005aiNHSHYmUQp6YF4qKkQ3dHhDfHFoMH15KCpXSUpvNSlN
IzdSOWRwOWA7Q1pUKDJLYlBhTVdUQEAjPClEJFpQYFFTYV87b2NtQyYKeipGS0klJmNjIyp7YlFt
PFBGN1F9WXY8RTt0SGJlTVNjPWlUKnZ7a3BibXQhaWxoME9DaCQ+MXk9Y1VRSiYtZDFDCnpPMT9U
dmopNWdkXyo5cTFkUzNlNVJjeTwmTHVBMXM4cDJ9Q2x4PHNeU1JOQmRMcE9yOFMyXlRiVEN+TXBx
bWhtbQp6SzFTa3g4VCVIX3pNb3RNaFo4SGRgcHgqSjU0T3IyekNYbjJKNDA2fnFTTStJMmQrfk5O
NWwtPG9OajhFMEo+NGAKek5WTShsKXt4KExqRTJrKEZVIVhpMG19WjVUbTI5eyRkdjNfSCU8LU4l
V3tubm1OVCVMKEVuJWsjPlk4KU48KkhmCnpCfFdrU0FALTdtODtvQClsaUN5K0M2a0ZnU2A5O2dr
Mnh5YEtkOEQ5ZCUpakZTKCNOcVZYKFN4dDZhMi0mRygjUgp6OTlrVXx0KH4rdHZMO2x+dzx8RVZZ
T30mRTNGLUFLbnV0aCN2eDxARCp0TlhwM0lAVVFlJHhFLW1MLU03Yy0zSykKeml8eFQwXiF9Qlkt
e1hTSj5gX1UqS1crdjZuLSVIYkwyanQ/TVdLUz9LPVV1I2w8NUw5P31YdEFCVz8kIUspYGhFCnp0
SytFZVRFUUdeKkdyK1chfktHe1l2PTJkKTU1aCl2OUBpXyNpWG9aeD9iMiR7aDVrUyhZSmp0QF4j
fWFsQVdqMwp6Wj43WFlFZEgmUyFedGNzMzBgMjAtYD57QnlkbWRkcXUlbk50YWcmRFclQlVTbiR+
IWArYW1SSHJURlZjOXpsM1QKekBubWViZypWfH1RQWokWThgcWIhWXsjMn1JfjZhVnBfJVMzeDMh
VExxJk1FRlFSUnVVRGZJRWp1MF8pJnlvPEp5CnomcjdrJntJYFRqdWYyVz9uR3plYylNTDMjPFBu
KVpnYFM/RFhMbkR2JnRHeTRKVUZ8eWB5byZGRlJ3bFBEJl5mbwp6Pi1WR0otaTxUeipJNTxibl9m
ZUtsTT9QUShIPCh0I1IyTS00VDlhZnI+RThTSmE2Y3I+TzM/NCtlelFxWXBOQX4KenR2PWpaX0hK
eEk8RzNUK2xCUCR+SndyRm5kY0Q9allGfFJLcEBTIzx6Ry0mNlMrPGY3JS1LJGI4KXRWJEgob2kz
CnppTWF+VFpCLXV8cEVuenl7cnNWcz4kK2B+KCtTZlBGVmBoZXhqTXVtOFQkUDN3Zno+aVhfM19P
anlIKnRGTWlPdgp6aV58flVSNEp1LVYkKX44VVQ3NX16Vj9ZcXdlNzN2K3JlSndXclBuVCtJMDc7
WXg8anRqY2JFKzBoKTFfKkFfUDEKej1FRU13KjR3TTZtJUAhaiteVn0zdD1uKGZTeXo4QUd2SSFe
dHctcj5jQnJIK2tzQj9ub1pWc2cqX3dAR2FYRVE1Cnpre0FUWllUJGlxVUNrJkJkdzYteFNFO0U8
RWR9MmV0dm8ldzhNNF53QT4oJkw8UntgVHBhPkNvX0s7U1p3PCZ4eAp6JHpOKHNJdFJLLXtgbHFA
WDhONjNPKkEjSnlMRmhpMHwobyhFRkZhbnozcV9oZGNTfEpJd2hCZnE9dUwyVTtwe3IKeiE+PF4t
ZXh+LWB0aVNyd3ZwbVo7c2BybGNzPDM0TGViakw3X1RBSVZZdlhDUW4mcEJHeUNobGRmK0RwWilG
RkR+CnpPI0NZNj59Wlp4dF40USElZGZXPU5eMTBlRzNJbnZuSSokcWBQWkReYVcxPGU7SiN6aDs7
Yj1TZnQwTz4yMWpDVwp6bEBTN1c2SU93enlvTXxPXnwtdkpQKzdSYDs+ck96VjNyYTtPVDlKZWdU
cXY8M2J0YGcmaUQ4NjBoJTMrMU9kMkQKei05cSFuMS0tcG9FeWVFN1VOIypBN15jTXhQTmk4KHJG
S35lYiRJeHF3fTBOVCN1U2RZWlRvZDFNSGE0eXorQVdzCnpMNClRMkxBMzkrKjFHPTt0bUVIMCEh
Yi1Vd2kwe3pmM01FJVlGJm1FSlNuTnFoS1NvK0FIR2JTZW1Ab0oxSU1nPwp6eyhIXmBmYzI4enEp
WFFucCFyRzFoQytSezx4PmtydGF9PT41fmlrP0t5JmMhJDlETUVoKiUyNEZkM3ItdWhWVXsKej1N
N1ZJZHo3ckBGLUZ0a3ZZYG1qKVVpUlgrQ0c4LWJsLSQ3V0dsbkM5MWdvNi0+TmkoVXorOHpIOVEk
fFJ9dEV7CnpzKng9LVdxUjgpXmxhcWpjMlF0U0lCdWQkTGpVfCZScG8jciR9SSh5TFgrViU/bVFN
fk5gfkwzSFk1Ql8jXzFWdgp6Uj15TiRwcHplN2FST19Uez5Val9EV0o3I0JKO0FNMkx5JntYbFlC
TXF+ZiNPSktLemdQaTRvZ1MyclZUUyFsdzUKejU5MTNLQWVtYmshKkYjYCZQKVAlXnlXME1pPz43
ZmNQYVE4NkFvQ1Nke1ptOTZQNmx1ZXIzdCVSeXtxcGFMT3RzCnp2V1hCR2NWOHQ5a3wqWF49QW4w
aG1UfH4jMiFSK31LJU1rPDJQP1A3PGB4eHooODUoZ3Epd2hGK3VyTTtoWjtRPwp6YkZHbHZufF8j
RSVHV3JrUzM+NnRgb1NpZ1lMbUgzPT4zViFKLWYtTHR5bXxSemdrVUg7VGM9VkZoM0lpbWZWUUgK
ektTS3ltXiNZUzxWKm1uNShBKHw5QHFZfWRecDVhQldIUng7LVhffW9ZSlNQcWIqcXZsdmBnLWx4
WGIobFdtbjB7CnpiKStIV3g/fE5kYyRZVjVNVGpeN0p7PFNYK0pkWHxuSG9BdTZtRl47QXVFYmJg
VkcmKmgpM0k9T29CdU5zTlAqbAp6ejRKVS15Nz9jPzY+UEZVbmMzMyNBZyQ4dUZoQiVYRE47JVQ7
MWw9d3UoNkxHUXlzQzB7WVRIaGFxS1V+QEhqQDUKei0lfH5XbjY+RU5mfm5NNFFhNyFxSGFmTFcp
cj5nZXYrfjBea2ZGVW94eVd0JktES3AzY21OVjEoc0lQU2x3VSp4CnoqZkpSfm81JDVWRXB6Tigo
Qz9yOCZBPW16N3xeRl9xVUx8dkw8SkElbkktVUV5YF57WnQ/OHlQSkthZ2hEbzw/SAp6empNVUVG
aDB3Q2NeRGMlSVh4ckhyZz9sOWQza1NrQFZpJXBeWWV4OGhCZzl6Ji1wNHd3fl5yOC0laDNfSENP
PHIKelJYdCpQOV5NOFFTPW9uPzlDY3pqMVpDWmZzdTcmPVlCJmlSJWxVYig0NTVTM299b3Z4fDFu
WGlGOEJQSj4wUGMtCnpzKV4wbXhoLUtPX01nUE9vZzc2Mz97ISQmbG57U1JQeCNtdUspU1V6PyFX
eFphbEIwIWYkRFFUPGchbHE/SWhFKQp6b2c5ZHM9Rk9CU0s2N1haLVJrcVZibndlTEojenVNRW54
IW89MH1oZ1dITmVLZkhRPUVNSDlVbzBQbk1Rejx9IyUKellRJkE4dmB3U0QqODwqRCswMmpJV0ZN
SEs+eXlNOXs9Z1NlMUdkaHBAZzMtaiNecCg9JkZpQUNMe191S1A/NzsqCnpzQFRIRjRHTGY3YzU0
MVc7R0wrYFh+TDYqKTtzKn13YCYpTGVwUXtSMTFabU5wdlBYKFhEQT43bUBUdGNyJXNnVQp6S3dQ
PiNydiYoRzQob299PSt8dFMjTHJmdlRNMWJFaCErMFlFMU0wQyNEZFh3b0BmLVhUa2BmKDRMWlMt
M0lsVzIKejJpZGpnLU9hV3UpOUV3eHs/QUwoJnN8SUd0MmhnJVFONmQ5cSNvM0VafGpSaUAlQXFf
UXlVKX4rK3BeY0pRNF4oCnpQJmhtbFkoNCRybUc0WXlYIU9UI1o9PzkybXxoQUVgYVhLbXtGK28h
JStHYXc1OEN4Q2VScS1TOXptVS13RkxFYwp6R2w4I3tKbk9FSHMrMnBmWkVaaGFvPn0qSEh5SDFW
aCpFZSRWfHtrXkhkKVl7bjRJO1dHTXxIUTdDKT4pQm9udC0KejNUfl9qaVpiLTk4NT19STlhWmJN
MEFNWkJyQW9YY3EtWlV8MHtTaG9QJHd5NmZCOT9CO3hka3gxQnt6JlFgPnNBCnpzaHpyTzI9Rmp8
LUR2Rlg5X0t0TG5XV1pCUDgwSnQ1c3srRkV9YyNucnVvZXozWlpwZTJLcDwjOTs9amM8JGJ4Owp6
KjZVWllzSDZpdypKJWx6PlhTRjhrQC03NGdBTiE7SDJgXipIZDlGYUJhYkxhKG5YI3NmYENISloo
bS1kRG1IczkKelJUOH0/eFgpaE96Wm98RkVyeF87UHFqTDFHITh9VTUlfURtSzx7QFBzQUpvfUM3
Zl5neVFCbGImYnpBajxkZSh3Cno/JGZefCZUUEslbkQjbjBUNE5JdUpeeUlpdE9vPip0dn5RUTBy
KUE0ZVVTa2xAd0xjI091dU5LUj5EaDZGVmh8aAp6cSsybXpBKW8wcXRSWXd+PFklTFlIKGsxUytJ
fUdsN3wtcDd6RnMkK3JlWXtBTDhIMnVFTWApPXsoY2BXekhUfXQKej9FKnhtdXEtZEE0c3pacGBk
R01rI31qUFhgJWhfPiFVOG96OyhTSkg3O3prYSRxeSQlT2dGKVU3WWIrdHZ1TDhFCnpDVndPeCl9
T0FXMEUxV05yeV41QWIwekZpPWNqe3V0TzQkWGV2eFBKV3QrWCZUMGVzQCNNaD5GXlF7ejhlJjte
Kgp6VzRQZTY+NHt4ITxKKmY/d29pckoocURBZjV+cmdZazlBSj1ARX1Vb2ghKHkrTGJsbVAzeSZJ
TnRFclhBRjhgU0oKemVANVIlWSZxQ2gwbVFlbShZd1pyRjQmakR7NHNHezVaRmI2RFg9e3BBZVJx
cGJGbkFOQC18TDVqWk17YE1WNlJvCnpaRGZBWXpPSWImI1dyJnhAQW13Q3ZrKik0KUtfdHx5dnw0
ek42bXhgPWVCemNAbW81RjJNQ2dQMzdHOX5ubzNMMAp6NGJeVkVAUmJAaVp2X0B1MUk5WmBpUDMw
JHVEemJwMlFtbGJ6ZDdReitmeHxIUFN7RWdVWDE8eEpndmI0NVo8cTAKenZzcngxc2Flb3BCOXIo
elp+QGdaeWhTLVNAK1djb1RRKnZOSEo0fCg/JSZKJlpjRnlyMWtDaShZOyo2XzlKKTtxCnpQLVM+
PXIkX2VHISpHIWxhPUY/VWQxUEdJUU5fV3wmZlolX14oJUFzYi1oTUFkS19OMG9zciZ0QyVKVHgk
M1RzJgp6V3oxVGhrbSZaMHNwUXZoVVhFUXk0ZjdKN2haWlBOUWxofiVQc2RSdEtZMEg+eEAyU0JZ
P09WOzNeMntYMVJrJC0KenhhNmo2YVo3MzVVWElqMCt0fnZNTz4/X0BwKzlHUUloT1N+TzhSfUUl
WWxtQFF0eWA4bSVldkxgQnh3VzZ6bm8xCnpTRmhKMjAxbkY2SXROV3U9SD9lKEEzP2k8PXwjKS17
dip4N0ZMeHJHKjFOdGxEMVAzJXFocVBqV0p7JDY0SkxAQQp6ayspe30xNGRWfnhtbV5ZYEpfOzx6
ZzkxaytHdnBGUm5xbWxuT1NYVUJaXmMxWDxKKiZ4XmNzSnRrOVhQVndZOHcKekU3JUNqMS1EJSs4
TV54aTAzYkJ9X3JDeU5kdCRTZTVaPVBWVGloT2U1bW1xc09OczcwRHBgVkM5KiM3WS1wbkVHCnpZ
XigkPFpxfVZkeUFxJCZfLXk5OEAlSmA7U3MzVj9mWXdqODJtNz1yKypzOEc/Pl5uKVRDNTczSn1N
OTZfamBFaQp6NFUjNE1rdCpxc09rSXJfYmxXemtrWm4mTE4zTTtQYlkxTkFRSmdyZ01QWGRLOVEo
VC1AfmZlVnFZSU5QYTBsIzcKeihGWFY/bDY2fjZ8TVpWT2FlWHlWNWZkcUtmbT5uWW9xcUwoTUFl
KkpPdD9VI1NMI2lMSXhefVFGam1aWGxfVHc8CnpCKFdpWG0kRyNVPHEyUVUzeGw7cFN8fmg/Rl90
JFVAbjBMPmUlQUVxYWtpVSUzQnkyP1YjWGtgKGZPIz9GaWtnVAp6N0Uye29uRXo0MnI+bEZfMGcr
aFRAOVh3NCFTZTBnZlJ7QXp5K2FRNFB8dTxKWmdYST1sJHtaTD5+V1p6PEcoa1EKemJNZFdRaE5w
JGw7UERWLXZxU0FLKjZDJT9UMjBUQjNmKS11TFhkS15iXjNvUUlqZipMcFFNZXkyTUpEYWNtM2x8
CnphTSQ0Tz9pTF9HYTE4X3E/c3xZPTJYfVZ9PyhQSkZ5U3NrdSk+aUdfZXN8TH5HZCg+UUdkPWFJ
ZEhRK1A7a3dgcwp6SzgmbT1LPFR0YzkxVUdFKkVGdylOLThAJlJsLWE+UDgqWDhvazh+NiN1Tmlk
OCQoP31xJkdsamU9WjF+VGZfdzAKekprVmdjcl5lb3dsbzFyPHczT1N5KzhIeF5FYT52T0g9NCVw
ZSE5OSs5S3Z7ViE3dlpZWXUlfmNTVXx3OVVCQVo2CnpTWj92QikkSn5BdkNGMG5sMj17UVFuMlQk
cXthcnh5NGp6PD0/UGxSJXphfDRaVUFkM1NBfllgVVZXZUZEPDcteAp6RThiSS1rXj1KKTZCfHQk
Wj8rcTZSZERAYnExd04oXjZtaTkqfnFXc1YmTTR3YjZickRFYj07RVhrQ0BvOH11KDcKeiRVSHFl
PEZgfE5reSl2d3phOXtYTWhubk5qISNXRHBtOTJQbyVVYEhpWW1VRElhO2BwbzVgT1R6aHhkY3FW
WWVECnpZJWRsNlh1JUIrQFI4O2wlNjFPbl5Tdjc3R1ZxSVdsU1g+P3JhKkNTPiZwKUw9a0ZlV2RF
Si1VVXBebzdYK1I1agp6QlJqRTBBTCg2TmAlRFppS1E9ckVEczZGejg3ZTYrKiRwXlZQQzFZaDR8
MSM3e01paU5OdWV9akQxI2B9WGJ1ZHYKejxvUUBOPDQwc0gtTmMtKHdzXmphY1JRUWZJdWU5QGRO
TV5DQDY7QyEqNCZ0PXZ0YHtjcztFPDVAb0t5I0xWbHRtCnpoPX44MCVkfkFOZyYzUj5yZyVUdiZj
ZDVha0J7fkcjbWI5QjcoelQrWnU4Mm9JcTdhLSE+MXE9NlBmSyFZIT8keAp6TEJCQUNeKmlAVUp0
PCFhVCVQODErMGRDfE5JQT48NVI0cjY8QWAxUGxTVlNjUDxOfFo4O0VJYEBCUE1GIVh6d2QKemZt
ekdLP2Jec1MhNV9BUzkwRSlrNXp9V31GRTFvd1VDYXw1e2E+JXxOR3tWRzxFdWRyKzQmfFZGSnY/
ZFBjITk2CnpRWkZZJjVJP2BxKTYkeF5MZ3dpRHZ6MHY2bSVeb3VGTnZkMjk/NCNwM3AzNzNMPDRs
RXtlbD4xR2dUeUpqfmt9Qwp6O0pMXyRLYjE5QGQ1OFFEazVOOzkxPzdkXnVMbXBSdGo0TGF4YzZI
aFNYUWQ5STJ5SH1gdktEcDFNenQ/Wj1CeGgKelVZSENTVUdAZGZyeFRWZklYRHp7a0FvO1NfI0tm
cFV4fSF0cnl5UyhOZSROc2V6d2xuezs5cSVKa2ozNHlOIzRBCnpENCkmIVh2aHg5OXhZU3lpfnJl
OD96Wjx8NXh2Sn0rJSl0dUwkPjVhYjlCJnh4O2shJndRamdPJXNIKTtOPkUxegp6QEErKHBmeklg
cyNJXy0jO2lIbWE9WUxtbkF6Qm8yakMmNntzJkshJjMoaSpjJSlqZlJfTzZ0T0QjZT85cnBEcXwK
ekJFMEY4SGIxSnhwJG12Plp6bE1QTUs2WFpydGpfN19uNWUrX1h9bjs7OyhSUm82cj4oSWkqITZh
ViR8LXF0TksmCnp0UFBPY1BzPTNPKmR4bytFVWx5b1dsMmg4RWlOOFNrY2pNYTdNJDJjV2kqfVc/
KHNITj0mITwxbkhnNG91fXBmSgp6OC1se3ppRSVNYTJ0NT8mKEhnNWolYVpQNEZTaV82enV0MlIt
MkUrZEVoJm42KzRkOXQ/N0gyRFFJWWdeOHVvRmoKentsVkJtZ3RRKTBVN31wKSNmQUsrNTVMfl8y
ZSg8dUBmejx5dUpwQUdMQT5+JDxNPWkoRFVUOz0qSENmSk1rPzxACno2bENiLUxUJjlkNjZoZ35S
XylqKW5XWj9gXnBKRD0oRTNLQG1pTFBpLSo1KE1QbSRPbWZGNnhyMz8ycTVQXjhVUwp6VylTd0BF
bEsjbV9pdl59QFpATyFHSm00SWNha1ppaTs/fXkjM3VqTypjXilCX1l2P2d8Q3VWZVp5PiNUeyFY
YGMKenBPbjZ0dkVtezMyUTdMYlY2XmozJm1WPHF2WlM3ajhNRVI9KHNfXlkhS3RpTU4yUlRvS1Bx
aUpvZyNudS1tUlRGCno4SVplME49JDNiREl5dUJUeXswPVhVTnt8d21GXlc/dXAxVjhmZEBZeyg3
RTwxWCk8MnRvRFk+PElwN0h4bWg3MAp6ejQ2eXlmY2Z9dyF1KS0pJUNRQntfUiFBbWArQiYlYW1m
biY9dU1HZCZiYj9tbnBwcSNJb1dsd2Y3dXQkRXFoZUgKekN8bSp+TGwjVj1kfGlHRzA8T3olcmsy
ZUFpOWohY3pYPU0pP3dvYkUoOX0hdVNGS0pIXmU7bkx2dE8wd0Q0JWopCnpLPkk0JG18b3BYMH1N
QG17KWtROW1ycENJajYpZVZmeFVqfWJLdEIkVFcmY012aTdSdGJ8M1VjIXo/bVF3akVtSAp6U082
emQlWCNjVkNiMz9SQypwLTZBKjtpUGVGMDBRZm5BcjR4UTBMJWNEbitaO0U0TmhoSmtrKkxsOCZU
bEtjVmgKentueithMGwqSUh5WDl6bkBQTS1eRntANntjc0dNRCtGSF4wPi0qYWpJNXQ/el5YN2lT
cyR6VEg7c1FgZEs2dz9pCnpjKWN1OGJDX2lWV1l1KTdNWUwmZjBwckRWbXA4WUhDUmNLRD5lOFpr
JTBmSUlNV1lWNEhEbygzYERIX2JYNVlReQp6eD1UJnFBTmFIYDBLZytqY0l0WSo/KVVYeV47QFFn
I1V1SDRGc3JYdGxiVGZMcnNJS19ARFhTQCFjY0Ame1QhYj0KeihORDkoPXx2S35DWkpuUz5nYHBx
SFF2MipxYDI8K1RDYndhUl9GRyNrenMpM1U+JTx2TUIxXk10JCYleTFwSks0CnpkbipqUCp9Qz5C
b2x6QmEoQUBySWNBO1pZaFQzSlZgPUpvJGMxdzd6V21eMkRvOF8wQDFkZSpXM0BFZHMtT0soYgp6
Xk4wQlBwNmBVV3dDakdlbEwkR3VQNjgkZ20+TCkwTG12PE9tbWd9KXFrREY9Qn50VUtuOTA3RmhZ
cEpvNTglNVAKejJqb3RELVNLVUIoRngwRT5HZmtuPm5DOyteXygzT1R+JkdnJnIoejM0WUIjM09v
eWsoajZOKmUjY3FGSDdGal8mCnpMXjZ4Y2lreFdEOE52WXFUODNuX3ZVOH5BM1M7c1VmQl5yUCph
UXNfdDQxRHElT01mY05yan07SXBlM3RnYCllJgp6bHtxRX5BamMqbiYySUxOX0BjTFJRUUUlRWJ2
V1NuT15FR3wpaT1MNFkxeE43aHl3VXNZM303JT1ZQnBzPUtgKmkKejcyIU9DTkJxME5LTkZyM20t
PmZOa09pRD54OXAhODVTJm1lVHFjYyEkJDYmWD1RZU1pe2pmODtsTm88I2k0SGA0Cnp1ezI+VVZz
en5OIVNkaW5FUkxEcj02Yms9QlBVeHo5PTV1VWlzZ0oxMT9fXipCVjtwSTlyPmhtbCRBKHhsQ35H
TAp6UmVffEdjeENoKVVMQHFYcWZJcDZlMWB3cDlyMiNFb3NXYGx2aFNOV2MlcnhiJjxsdUZpYDhm
UU8qUEdmbUhNMUIKenQ5Zj82eFZnRDspa1pWS2U9Ym1FZCVDMGA4bzJtNEtMNjl1dSYka0s2IVlF
OSMzeEBOKm51QCNDMjtVbyFaKW18Cnp1cURjKnBHVCY8VFJoU0p1N1Q4azQrKTxkbHpOPHI/JCtF
fF5TdDRYU2JSNlJ7ZF9lZXcoRlVWamFHUWoyaW1ucgp6Q1lVU0J5PiQoSlBJe016bXxaQUpMKkFw
SCQ3V1g9P3srM0tAKEcjUXE0b0lHZEU0Km9iMitZK2xGK0V1anlMYzAKenByJURNQVNtOWR4MzEk
IVc1MEIzbz9MWCl4JU0oWDtuNGslQkpfcGplKT5KU3t3SSlWY1NLNiVUOWV5UiVFPEc7Cno9S0Ml
YThnWlNlenckPnA9Xj5ubiZaPlNTZGJAKmItVGIwMVdIelZ5TTx6XkwwQ204NTlZdUJgbjF1a3t3
V2pHewp6SD44JT0tJVk9IylxaXVWbmtWfEg/NEdXPHNpdkBAQE53JDxyZnw9VDZWVSl9Pz9ReXBu
WkJ2a0YpZz5iaDktU2QKekxtYHZmKSNJa2pXejxoeU1UUzsodz9eVVV0cVJpWU8zd29mM1F1WH11
bXVRaEhPflE4MVZURCgobD4hZlQ+K2VkCnowY0hXRzZCOUgzJTdXY34kME9SI3MjTXkke24tYGs5
RHpCczdta2VgcDRXRHhQQ2d3dnU1YGpgeUNEeUxtI3NTfgp6MXIhNyRUaEx+V1FBZ3xUQ0twbzhr
N3p6djBKLXFeQCNTdFNeZnZWRC10dnJQUG16JW1FfSozfWdAR1M1TkZYS3QKekJoXkw/MWdMUWtu
Ny0+KyptfGBTUndyNW5KNz5QVyNASWFZKHh2Mnpmd0x3OyF4bT40NCljTnZAaihEVCpYZnNxCnpt
KTd8SClrWGU4THpuKFpxZmRTNGJOVWF8MStkNC00JG0+NlFOYDhHV0JjSnFeWnV1MHl5dFhyeCVg
c1RFPWF2fQp6S3dIb34jO0s3VjRqOWBSUWkpOT9RN3srJik8UnM9YSFXaCNFamQpaEpeTSYkKSVv
IX5RcHo2cDxIZVYpclR1ekoKekhiN0IjXiMjPXZFWSh6PUJWZkRMbyNDVCM9SyRBWiQqWSV2bSFg
YDwwbmQ5YzkhcCtUPX5wV2xQRTlpVHdSU3U7CnpwIXV8dFp8VUx1eyljIVVSRiZiYVRKSyYqVWlw
fig3fj5DQWNQOWNWdD1WKUg7YzlaMUNNWkQxY2ZWe1chVXI2aAp6YzQmS2A8TCUkcGkhUCMxbHlY
JnFBSnw2dWsze0ZlbDJZZE43aCQkNURtVlhRVVVkcCFXb01sXitxJCV9TGg2JFgKej5ZdXRQSFBg
PyFoRlg3dXlRfG1sNV59NnBgN29fLSt8e1VFUEM/bChyMzxoe21TMzI/ZlNgO05JaXBWOWh+a3hk
Cno0fTZmdyVuVklqKzVHZzBwI0cwKEk+NVhaS2paaUZzNz1pWmJkRCo5VUJrUDQ4UGI+ZFQ+bURt
bnZMelA8Kmdkfgp6ejJBLXlhVlpHfUFXTTNfUVBIaXJpMWJBbC1BIXk8cWw+U1ElVjgqJiNAPFkh
RXU0ayFgcmFnTFhWaFlOUElhUTIKemNmJEJfdEFwZitAPnN0QDRPQnFHdlI4Kz9BX1UhR2d5SDJ4
cERTUV9hbF9kXzZONjB3O18xUSZme30jOFhDZHgqCnozX0h7QkFeLT9Sbn52cH5OfHw/PGdrT1Vo
dGZTdWtIcGEkUGUkJFNmeT5fKCpDVXBsKzdfei1hXyZwYDRATXdifQp6Q2pKfnMhfGZUVzZkK2RE
WmBAdTxOfnlgPFFkcG9hYEEtUVp5YFFVVXR9VDJCRjFnOXQqdDkwVlQ2T1NQbHBeK04Kej9nT0FB
U2xiKzlMdGpgQDM8YTN9a150cUo1ZDI7cHo+RDNmaE88c3FnQVJvaihiRjZxbzUkcjJLVm9NUVZv
bHcyCnpndj84aUFEflhiMjg0ei01O0dWaFdQUiFfKHJyMjFaZHw5NjVCKztxR0ZeYDd3aT1ea21I
LTBpRilIUStDUnxNdgp6OV9QR1BiViNJcGs3ODhqaVU1RWpQTWFQdzFLKXI+eVM7Nz8zKURgRHRH
RHY2RWU7dCUxMCtAeyZLNilWTUI3VjgKejdmeyNxJVI/PFNeYHlKfkFhK0hpSF9Xc1YtJVkmeFd0
YUBCVnAhdmVObWhSUUZDOGVybWFpbmchb1EjIzV0eThzCnpDMEJYZ3p1d2dsQU05V2dVRkB9bzAt
QTc3X1h1OV5UOSp+NDIoeiNUdHY+ZHhUMjsmaEk/Q35WSFQjKTlwZkY3eAp6eFViYC1VdkxuNF44
MGFsVEYhSWc0NzBMYDNFJHo5fDNsQU5lISZ5K1RVU242KV45QkNpbEk1VyRZezdvalM8Qj8Kej9B
e2I3IVR1Pz5LV2swJF9SQnZjMy1+RVpOdlpXTSNAfjk9PkFqTkVNciU7TWVUd2ZrI3xLTVFsXjBk
I3E1fm9gCnpHTnNiODViRiMoPXNJeVRZJntxK19PJGB7ITt2RlVmVnB2VFVZUW89Vj5DKjBCNmJ5
YDhSZGxqSUZxO2YhWmNrbgp6JWhXY3klRj5MZk0kM0J2biREIzRmPmp5KmJiYktmTUNPd0hzWUZD
d0A8WjdKOVNXb2IwTEcyQytheFJ3V3FVcWgKelUjPCgrNWZVZHo7e1Y8b1l3NX4lPFpTcW00MHh2
cD01c1QzNEVPanFUQ0FIOUUkelJZJihJSGFASVVLV1Z0NFowCnpKJTRROF5KbCRVTGM3cSZESHBw
UDktTzAteDBDUEV6UGFXIV56JVZqRmU3VGRIZjNKMj56dDYhc0V2YzhQWXRJVgp6NGF3Rzx4MXdF
R2c3TCV+UXM9Z0NDOCV6fEZiUEVpMD5taXFqKEg/UTVDTzduMVBnaHU7O00yM1dCYGlgZCpAe0UK
emwlTHlOUSZUX1hleTdicj1mdSlhdU9yNjhLUVdFflZjQThUcmdBdmBmKE9ifExZK0NhNVMjJjwk
YSlrWngzbjImCnpJZ3UzS2tjMkE7MC0me1VGLXRIb3F+Q0xEcUgzYDlBIW1TTW0tX1lDWHctVjNS
e3dUZ1gjTnE3ZlRFeXFsc2hGMgp6I0NlJDBAVVFeRj9jKCQzLXwpUy1aTGpeQXxFd1QwKVJQV2pa
JGVeRXV2QjVLSl5xV1lOblkpVCtocU9fOCghR1IKejhGQExJa3I8WjBkfnYyJUhrY29tWlBFenVT
NGJEIy0peUZuTjx1KD1UM00oXz1kNmg7IWE4ODdlNVVZMVFSc2JgCnpJMSRFXlNEYSQ/TDBsK2Ns
R0I+cTN5LW8/bkdHbG9WXlFCLXQmZHNrZFFVdig9WGNwUCVjMyp4VGFRYzg+ND9wTAp6VzVwJD9B
JDNWX2R6ajwpcEY3Pm4tKFV3RTB4OT5rO1cleksrO3pZP0pNRVRKQFlwKzQoZF9FdFhwd3peRkFv
dVkKelk4d0tVTmI5Z3lJfUxEb3sxWHtQQ31kM0d2UXxRaHZnVDNuPkJlRm5TQExzKUxQOSooOHhR
KiRzT0FDdnYtZmIlCno/IVZPMXFpWTJaME9BTVMrOFNvOGt8KzVfNjtNc01Sc2JiMVl1S3pGPi1Q
e29DaHNudUhYfTt7eHRVMmVXZ1B7OAp6ZlJXOHhaNSFQQioqWEJRRy10WCg3Zj5nNTtSOXJObC05
ZjB7VCE+d09LVUpyXkR1Q0xSOT5BRHg/IU9RM1pyN1AKel9gbG5aKEd9bHY4IVMlXlNURUtxRGtg
IS1kTnAtRUxRaylhVjcxNz5WUFlePUZAY3pAPGx4fHg2ZnRuPFFmdjFJCnpSdXMhUD1DTyFaRWVo
QiR5dVIyJUFSMWBpTFZtbW8mIUluRW19UERTdigxQHMyc3JAKChVdSlCMDRzWUVHQyswfAp6c3JS
YUEhKmxPIzFNTztseXBrYikyZXdwejJJQXdhSHQ7WmpxbjwyRT9EQC1DdmIwUjhEeUZlZmxtJEAw
XjIrRkcKenQ4YSl+LWB4dFJ0S1dgX0lBTG10OXcqWC0zaD5CT25kVXFuTGtYQH1lN3xBSiR8TSo7
V0t7QCVxciF7U2dXYnxwCnpJPCtGPEJTeXg/V2FKYlRNfX1Fc2N4JTBqQSNANnw7ZHh8cHoyJjI9
Y1hwb0VCTW8wOCg1IWpKKUFGSCMoTHE3Qgp6QiVjUz4mQXUhR1MmbVcjJWVEOUltN0U7b3BNZH1s
eF9hMmB5fjM0QklqVkF0bHhQfloqNTE2UEArPjV2RnEoIUYKekFoUyF5UXdET19QaVVrc3p3czNh
bkk8PGYxOWtOb0BAY2o9MGA5VnByPXJNKzBYZnliNn5fc3Z6UiFkO1hwcjc/Cno2VWhPN2hPVXxe
RzNfJFZqZD83ckFvVyQ7TTxGQmpfYFZAM2dHT0Y2NE4maFZLTE5qWHgxNEZUN1NzMU1uXiF9SAp6
cVVNNEU4MUUpP2NlZDNQKXlGWUZRVTVGb3lHe2hySDlEPStYMW88RylHeWUwNGNxUXNkZyFCO0ha
PEpvXztNKGYKejxAYyV0K2hRbSM3d1VrSmd3eWZzcDc/TWJIMU9ifDRXUm91Rk9yUEw3PER0MC02
PChOekVyJWE8SiRTQTdlJVFWCnpzVG57N3toI098QVZ5cWU2a19TQVVuTXUpZmw7a2BHPHdHUlEm
bWYobyskUUg4dEF1Xld6U0lkKFpwcHlgR3BKawp6QWVlOzVSaDxaN1AxTjl9eUVtP3w8b1ckVXdO
QzVfYX4rO05RSWlWPVNvNGgkbHFSUmwja0tCeT88K3EyVH1SYnMKenNqMVBvYipLclRUfDd8TzJ3
UGR3PWN3NzxhP2w8T15pP3Jnd0s8QTxiQTQkMiZeKFJrNSl4Z3p4fDROMXl1b1NlCnpWOGV+JTkq
WDd2P0VCfUklVWpaZnZfLUZ8Zmd7NTc8N3U9NSV4XmopI3x2S19LP2BTZ1N3fUpMe2ljVT8lTFRC
Vwp6NVg1eDElKD1tOUpHJWR7cllBQkswQ0stfEd7dCEwY1FmNEw2U0M4blNfO3B8QGx6TDVgeVdr
RD5TMn1AamNOM0cKeng7TDM0MH17am5hYWlXd2l0YFkoYl9nVzdNdyUpelMxSmlnV1VOXnNWJmRq
bXNyPkl1JE5sMzd6PmdCMml6KXFPCnpqeFQkQWJwcn5SI2xALSNNckk8UVhBWHdBemJqcXxqYm4+
K3ljRipedjBWO3pWIWp4I0ZiPEI8d008fnh0JDQhMQp6ZFRVJDl8R0loWCkrcWhCVE5NSmQpITVO
SiRoU2xjdXNWMCYrMDlFKnZHYXAreEgraF5Fc2pzdylXMklFOF8jYGYKenQqVDQqSmV5eSRHS0NJ
fStaNnVoeGFSaTE5Rk1EPCZ4fHxkQzNPSEQ+VT54Z0wjPWlNMX5wNjMlaVEhPGhUdF80CnpleD5H
MnJle2wkUFEqO25STW8yKygqVT5lbSUoT2d6Sj5ob2xie0ByK2l6UmFuTzlPQ1dBbVIpXzAwYERI
PipRfgp6TVFWX3xFaEdaQEhlQ0RGYHU+JkYlTntCUUV4NUE3YVkzNVdoTFV2WDdJQXxANzhIY31w
YFElOS07I31AQmc/Qj8KeiQtIUA1K2VnNl50ZWVXTnUxNlN7ZHtDYmxvIylCaGJ1QV9ybio0PjVJ
O2E+SUo0Umorb1crOzNHPTh4fWQ2SzZ3CnpIRDM/SiZVckpkeVVHOXJtbGVDfUdYe2J1YHxTTVgt
ZmE3Jk9qMnwxbXA2b1l6cjlvYVBXUilDQz9fKUl7O3s4UQp6emNPa3QrcTMjb0RJbjFgRyhTVjVi
R0tTOVFARW53diMjPFVlUFBZRW14PHE+bkBnTjFeY2k2a1JmU0duSV4jWEMKelYzST1HI3dWJG1S
cXlSUGVAUmszQ2ZXQlI3RXpQPjZDWmtedFhXTXtONWspSys+Q2p4K3UhI2R4MXJIKnFHKWZlCnot
SVhIeGZHNDR3UG1KQDcpbF5LYEpBYmJUeShiQD5AZjN4clZDVVNrSy1rbDIja1F1bmI2SlFjd3Js
ZjA1WVg/eAp6NUhMNHJoQEckOWtgdkReazEwdXV0MGNQa2BrTzdlb2NIcmpIJk44KGVUbWg7KWZi
OTxSYXY9UktGN2AlaSshU14KelB1clpeUEZOMz5sQyFEcEVRP2t1PlhNKUdkWT5OJnJFeSNUQHw+
Y2x1U1h7bWojPkA4VjgoR2BfcFAkMG87WEdiCnpiPjNLSnt2ZThgY3lvaEt2c3dzfHNCUERSYk10
cGgmTnRsYCpyU3cyNHB7R3pZQEwwVCY3cHVIXllXc3U+SFY2Twp6UDM/N1hKalIyPE9DPFNmWEUm
TCFvdk1uXkgkRWZ2YTw8emJXRVRnOHgwRiN6ZXhpKjJDQGxSU0lfSTdGVXBnbGAKeigpOEpkOzQ5
QmhwQ0QpcTFASCRsVGM3RF43bHpFPjFuK0JlWVVBN1BLPEBxR0goYFdmdlhqUHF5MGkxd0pjWU1o
CnpPKyNMRXl7JnJUUllAZUAlK0cweDs7N1BiTi0jQUMrbWVfdTR6bTFKd3xkJG44JHpwemlyRHFs
KntkdXY7bjhpewp6SkB1RkMjMjRmKC0oUmYpV2VkSkxEWWZSNF5TWnc3JUEqMmYhUlUzQ01+SXtA
b1E8bDVHcUp4X3dsU3I5SkZzeSoKemBOKzMremMyNllTO28jcntmSVhBUChhRyRjZEctSGkyUjRO
e1VWI31oeHM0NnJYS3Vue3dESk8jY31zPFRtSTI9ClhhekRtPCY4WGtZRzZTLWJpVl91SyN6RnJG
Nl5fUTAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9pbWcva2VsZXNoZXYucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9rZWxlc2hldi5w
bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGQ1ZTU3MWUyNjE1OGIyMjM5ODc4NzQyZGNjNTE2NjQyMjFjOTE2ZApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjMyNDYKemNtYSVqV21GdE4pOSZvenRedEN9NStGRFBj
UzNMeyE4TGVyY01URTw/aHNyOSFRSXs2M0dWSkxpKEstNC0rTz1GCnpiSStXZT42JGFXWFMlRHF0
Tk1BV0NQWXpRMHU3bEU4Mnx0QERNPk05MDA3ZyFtSjw9ZHVWKmMtRiFrMzkkVSN7YAp6NmV0fWYt
aFVPfnpzZzk2MFdiZkslJDk9SypFPmtJa3tTKkdmUChZeTJMZSkzMzBgal5JNy1RVkxSZn4hTWQ4
SC0Kem5MOH4zMDY4RWZDaTI7SjtWOHw7U05xSFRaSDlfPGEkfTI4Nj9JRHQ3elQ7JTNZYEslMFJu
O0c7UE1LOHxEWCZkCnombjlwRnVAUlhgKzQ1Nlo2YiUrQkhgcil1PXZ+dlZrck5aPnV6YlVIKy0+
QU1GMWN8SUlwKX1JKj5iWG5MZElwdwp6bV94YjtkV15FYVhxRi1eP3UlM1RIKm55O0JBaFpVRV4/
cVVgRzE1c0Z4eyZsTipERT9ob3RAZjMwYigzfDd3SyMKenpfPXNNTiRifitTIVRFcTw5c0Zma1gt
JFQ+KHRlQnxLVUsrc1psJSN0Jm90VHhjTEtmc3pwaXtSMUw4TTVIPG1ZCnpWQ2BzUXBFKnRDMWRU
bilZUk40Nzl+YDhXcGJjTmZuMHQ3ckhPRHVraCN5c049YVRIT2k8PFNMS0diR1psTyhlRAp6NV5Q
WT81UmBpZlN2M1V9TzJEaT9kbStnM0pUM2hrWklZYiZGcThLQk0oMXo5KkI5WlI+MmgpRTArPG5k
MUhMNn0Kem1pI2YtWlpMcEcleU0oc3VFd05CbUVyX0kpb3swVjtqdUM9SXpfYGswQnY1OXFBKzNy
NUMtQjhWK1k8MkVRaUlxCnpJPEh2IzxTYSh8MXlSODBaYU9ZbW1VPjZMWUF9MmJpd30jSEh0eDdF
YTdSaj5pQWVFfHp3WmA2cWA7LVo/N1hldAp6ejU1UEReUn5aSCQ/TTUwbDZacTB4TiVuTDJqUjlP
ZzJmYk50OEhzM2JoPUltSXZ6T3wlbFFze2I0eCF8Y0EoLTUKemFkZ2gzNmNHP2MwPGlzNmlsbHRT
VHdFLSlFTXpRWFR3R2tadkZSOXhQcWohI015Nk9yMnwxYFZxd2Mtd3Q4QmUjCnp3YmN7OG8ybTdv
PnI3I0dybjBWMFVoPV5CZiRZRWdyN0hHYy1iVztHNHNoRUZnSF4pbGRMKTAkezMmWWwtbGlebAp6
KitrUXNgJT5eODdyQUZXTjRXTGFMNjB8bVpaXktTJn1MRDJGNktOe3ZZVkstezR7RFg9MjViSm9N
WChDdzxDI00KejhaKXphZ3NOXzRyZXdMPyo8bUVWSD1pVSNqRkpIUG52Unkoc29PV2x1blFpOHdn
MyNEczQ3cUpwX3Ard1R2OEV9CnpKcTBKY1A4dVU9bnVXWUc9QGk7KGc0d35kcTBCTkcqaUktQzdX
e3pfbklOYlhebD5AV2d4RilWX2dhRGZ2TzdMZQp6dWFOaTQ+bks3ZWdSXkh4JEZIUEgqSzg+P0BS
R35QVSpDKiklYkQ1eW59dyM+VkF5ayUwTi1EdDZGdl9ZVm9TazcKeiFLYkNRO3RDejFyY2R9IyFe
c29UXlZUI34zaU18LXpQZTVoUlpnSSF4IUJCQjw0ZGJsUV9TcV8+fVhBaSt+K0FZCnpfN3E4SGdI
U0FsekRzSmB2OypiUFFLTCRNPXJ+eFZAU09tIzdtNVJfM0okalJ1U0chJl94ejBXbS1+eUt7fjYq
Tgp6PDt0MGtGN04+QkRrRDl6VDAlSVhfNiFYZD9wNykqMUBSYUg5Y3cyZDE8KzNMOWhPYytsSVB7
PUhsYjh+QT8qTWkKejtiUjxUdWpoYDNZLWREbURjN25OX0o/YTU5b0NPSHFBdkJfNGJGO1YxbT4l
OVlOLTYzaTtXYSUyUjh5M3h1XmxkCnpNd0dgNXJDV2dTNCt5QT5uNF9HTXRCQXx4VTVjfV9pODV5
bHFKPGJucmpeczs9ZzVCd0d7X1Q8Ny0zNXdWWSNNdwp6VzZWcDxuXihIKUZ2PT1VS3RUYio+X21q
fCNmYHhQMThGKVRHbCF9IVBBK2J4STljTFJOI1YoO0cxKEFlZHNIbGkKenlvM0BCcCZCPCZKOE50
NV9iSzBhPiRzcTYkUmpxU251PEdiY0IleGlmUWd4ajw+ZClSIzw2dytxQnllQGdGVXpQCnpAJW1e
T3ckPyp3YX1Cey1WLU0zOTZlTTszIWtjXjUqU1gmJT4mTChEOHVwRU1jYTNjezJ7QXhjN3l1OXpJ
ZHsrdQp6IW16KnE5a24zP1J3TmZFMlR1ZT96SmYtdi1pc3Q7JCpBRCVacjVOYVRTKTFyTHIhT2lp
anxkQjszdjFOJEllUGcKemhvKUkkXjJwRHFvSCtYdkEwPXZgUipZN0IrPyZheyN+UTZ+Kn1ebEdH
P2pEfSlzQD55b1Z9SktWcDZxTCVtUyF9CnpFfGEjJXtSano+RmxUYUpSeyVTOEkhcl4rSVhUJHdU
UjNuPzs1MXNlYXVeRjNmSjlAOE80QXtVKC1IO3dJX2xzbgp6REBWYXhVUGpVfjstc1lHakxgUkV7
SzlvJVFOaiomOVJgRGElVDJea2V4P2QwPDA/M0c0SlVTdjQkek51R3R6SXIKeitiRVA+eEpkNDJ1
Zz1VO3FJPiQ+RTFrOypoZWFpeyQwcyMrRXhIYU1sJmVHLUM8O3FufDkpS31pRkp7P3NpXn17Cnow
NDc5bl40dnJCQm0hSShLciQqeTJRRnFqTX5ZeHVFVDx1dyl+RkdNM0pkKFpDYSl7OHhybjgpRCRo
e0RAVGNKLQp6VHd0YE1KUUYtdjM/O3hgYmUodzA3PmYjREcpO3ReeHNNXjJkKyZ9a0U2JDljNUpf
TFVhZSteMyQoY1VRKi1CYFcKelM4RDdBM2otRVM0LXRmSUlMeDIje2B1ZFdxSzUtaEIoRXQ7Mk96
Pm41ajIhYUFkMHsxQiNAIVE2N19aMHdTRlV0CnpOWn04MVArIz5YaU5WTGlIUkhpYnVMdy1MTmUj
MUA1NChAZmo4O2opTjgyU0ExS3Z0dkFBenBUWCRmWDFNV24ragp6QTFeS2h6ZyZtUUg5fUo0enc/
T244Un49PnkqQ2IpRW4kIUU8fENTSHJUSCl7MDhhcEowNXZULWxQTFU4WFEoM1EKelQ4TDIhQk1L
dSZzVXhxNl40N3tBeSRnQ0w+Pm5qNjRUSnptZUZUP2lEbmdmZ2hJUXQtTWE3blhAOVlkaXI4UHxk
Cno9Oy1PSylEMSFtOCtvLWZrMDVYbUVjbyNOMDlDZFIpd24rUEI0RDB5a3BCMWsoZ2p1Unh+V3l0
ITY4ckAwSChxUQp6JVo7JmV7SG9lWDtHVSkxVCZtVFAlUnZOUENJeVZ+VnxPZkc2ZVF5ZEV1YUdO
dDhWS0pIckZvLSZkKEpJJnYjY0EKenN9Nnd2azxSSiFiflcrVStqcXx6MzcxMiYpX054Pz97UCFO
SDJqPk1ZY1p3S3g7ezd3NVRUZndAcGlOYUl0dTk3CnpNekE7JkZTNE1MT0c/dGcwK3xNejV3YWgr
VUpxcjtfd2VYam9MVilfeXdPS1RiMk1DLSg+MGxJMkw/V29RJWlQQAp6UXlRYz1IVkUmbFBTczN0
UCohbXF5TTZMPDVRdi1DbXxITSNJX3Y7TVZJMzBXVF9iaz1WMENnKiM2Tl5ucUZPSWQKekhDbGBM
eDBMVFR0fjgjY1k5LXRRUTlqUjlXelVZKV92ZmI/VTdQcjB1OTxqJWUpb3QyRFdUVjBCKl4yTVdM
TmlJCno4VnVOdkteSWZDYGUxSzdkLSg3bFBlT19HekpVUW1nfnRJWm1vWn1mcThpUnVZcXxQNEdk
U0hIVVBZODY0T142agp6NkxzVytZPUV0WClJQFhfTEx9KWw4NzRUdUUwUUEzUm9qUmAwPkZLPDZB
WGBQc1dKY1ZwZjAoOEMqNnBJcSVhfF4KelcrMXxMKSZESEI9cmh9PE4wQFMxWF5yYChyYGNKdCF5
bG1QbmQxeyMyPU9Xb1ZUQzgyalJIKzBgLUclb2o9Qyp+CnpAU15eVjh6VF9oQz1ZNjFtd2dBOTZ8
ZzR8amZEVyhDR3FIaGIoall1V0xrN0EpXko2VDhYUEB3KmdUeiRFRjErJgp6alBrWXl5Yn5Qald6
Tyo0ZUY/OWtVUV8lO19GeWRhamshZWs0cilWeHVTQVFoUn02anx0dD9ISzF4cDE+P3lEYkUKemM+
SThjel57aSlBdEZzejk7SiotN2huWDJmYz1hektyan1aQzFuPDckaVZ9P2xRQmkhcEVAIXZoYTR8
NDg0dlduCnpDYmljR20oUHg5YUNKJC1jNXdPPGhPTEVkXk9iSjklZXVDe3txUHxpR3M2JWRgfmE3
Zzl+VUhvQiR8SE1QI1gqegp6QmdTMmUoNHNeeEpuXkA5UXhzKiM3KzZeS1hnVWVQPmJoIXlHZ35M
cDBzdnQ/bGk2SFIpUWtlfnk4ZnpDLV87WkkKekpMLURqVCh4am0lR1NIcUtkclotLSgkI0w3MUh5
NWRfcDM4aVlfWS04PGhZZ0JLJT59WUxPP082Z0B+SyFENyNaCnpLYmBfTTVYKHJMSWVoQHVwS3pD
PD9LZ1ErVng0KThxMUV5VTEjVnU3KWtaRWdHSE9kRXcqckApKV9XMks9YjFoJgp6aEUqZz1MV052
eU9UTn1xYCV6Q24/WUZFfiZDTzlaNGF4T3oxV0dDZTFReEIjeHRRcyUmWU1tSTxWSEtQTDZFV34K
emctWGUyY3NTTiFYSmpBVkVLUjhGSW1PX2t2ck4+VWBvbmBiMEk8KnU2SmBXPXRsbk93RT9oMEZL
M19hR1p+eEx7CnpNNTZzYHh8S19wc09OQVdeMlM0TWxFM3chMFpRaDJ2MFAoPzkmeTl4SmpobDA7
QCZ9JS02UGJKeUkkTzRhbHJMNQp6MGpIbU8qMmlWQHYtdCt2TTN6PlUpaW82PXA3d057QG9mOG1u
UFZ8UCl6PFJUMEg9a3N3MUBNe2A+QkwwUmshcSUKenJqV3gkdTRSS3Yyan5zKU5wK0NoSm9SPmJY
K2s/MHxGdFd+VDZMOGZFRT57WERXdlZ5UmR0T0pNVjdBNHc7U0VvCnpifmhSLVhOQmpoJWs0TmhP
PCZmd2t2ai04R35JQzs8SnskTWBnfTc/Xm1BXzNzUjdXKExubWY7OD5DaiM8KnBjYAp6eGxSMjxA
SGgrUyh7TEVjPzVVbXpaWlg+YE9rQkNeRGhuVXpYYz5zJDVefFpKX1RZcDgxUF5Zd05PX3l8PVhC
VHYKelBhQ1ZlOHs8SWpYVE5tNHVLZH1xQmE7OEFSSSNtNl54dTRUbDltbnNoSEtHaTRKRX0zeUxa
OyZ7U3h6cyE/YGErCnp7NlZvP3BzaDxEenA4dklNIUFHc0REdkF3PDNiNDxOZzh6bil+YkN1WnF9
c2VBQ0NGaTxkeFojPjd+aDVmdDdVVwp6ZitAajshYTVKZ3ZiaXhFNk1LIW08ail4MmVyODArYjhE
P2omblJxJjJzdyFPN2c4VTdFNzB6YkdJeCRDaXRCeksKek1AcjFJZERZM28+PER+bDxNWmo4YDNR
ZF9Zbnw7ZHpqT0AlbT9gfTFjKmAhfHZPVj8lNV9PPVdRenNhP0g0ZStvCnpaSTVAfjQ+SV5LK2wh
R0k+Nk9UcVVxPTM5bT4pR3pYfChPX0ZSRmdkO0V5NjNqK14rWGsmKEdydkElISRhP1Nqdwp6M1ZF
LXQleGp4Iz8mNDh6X3ZPNT91ZztYJiQ7SkVYWHNuZE5jPGdFSU40c0R3b0J6Q0shPzZXZiVsKjB3
a144YWQKenEzKElYc3FYRlBsQktyQ0B8Xn51cnBNYSphezxrVGl1KURgWXQ4ekxwZ3l1QCVjelFz
MDF2eEZIRTRIREI3ZUNGCnpeUmYkWEV1K154aFJtdz0tRFV4NGVmZmJRV2tBVng4KzIjNnRtWWFy
K3htUEJaRVo7dGRZT31mbnohX3FacTs3fgp6dHZjTF8wfklHRkhIQjYzIXZuS1FgTG5HYFg9biNS
VW13byVxYGhDKWBgREdWPT1aUU9WODM/QnVjKE1IYTlDb0oKekZ4XnFyTlNndENnZjZyTkBRbE9a
SDtpOylATnlKYjxrfCRONSRfTSNpPCphQm1hTXxWa0MlfmZqTDc1WER7Wmc4CnpgPW1uNClRWXo4
KzhENFhPVEpEJEJ3UmF7Nm93cjtYKUwzaSVPLXZ0UnZlczg7bG49R0ZefEJeP3tASGxWNz8oMgp6
U2tGejRINWxHUjFhVG5oY1ltX15WfStqUD8wbXpKKW15aH1hcG1IWHR+I3RpNCs2NGpNdX5+JD5p
ez43JG1RaHQKempKMUdZOEUhVE1vamgkQnM7SXlrIV5gRS1tKm5FRig/WWs0cjF0fG4mJU1FVlVi
YGp1V1JFTCVgUyhOXmdwOTJvCnpiUVZ1WDEqcz99WmE0OSFyPiZYcXA7RGVGQmRaPD4rT342M1cm
QSM7SnVzQ1M5QnEkUm5pZjclKGRuWilGTHpicAp6UGg8NTVKQiF8U0wpJHIyMnpjaHtuJTYjYStM
eH4zK2BnQ0xyPlUxaWRePiQwMEhnSU52VyF1P19BVlR1alRJS2cKemI7anI2ZE1GJn5NKVFadUJ+
T2syWUt9dD96KWY+bCskPFo+RF8+aHlCV3VfVzY5c0hsYEU2ZjF5WmIocDVJd3VTCnpATlpXQ0Bw
KFNmKHteIXd2REUyIz0qdzdHeUwhKjNZYDt7RUhCVmFOWjgzRXNLNVhmX05yZXZwayFoP0E+TGU3
IQp6aWt8MWx4YWpjVWUxbjVWXkY1RmIjJEtialMkPnV8QXNSZkdoWDw9VHg7ZlBoZzJ9PW0mNFE8
Ri0hYkM1cDNBdGUKelZHUCU/RFM/czk7a0trPEQ0emJvYktFV2A3PXg2NTlOZyU3eWBaK3N7Qzdj
N1p2I0ohMV54aU5JSzlyZVpfcmlGCnppVHlTJnxFRnVTNWB2SStUbypeVil1UG01PishcmZ7ZTFl
MzNYX1oxNCpMbmFIQl5pfE9fOSE+QilrTThpTEhpPgp6RlM0YTNHeF8+MVRgO0JVYkBrbEphRFZR
OTNZWkNUcSFIWjZqZ3t4IS09YlM+dj5zZVQ8YW0mNkh2N2Z7MEoqY0oKelc7YTBsPmlObGA2OTht
fUh8LX5zayRnJGU4bj0wKlptWnZSeX5LM1N6dysxOV5fYXxUe1Z4QTdpV2NpWmBsUnRaCnp5bEJt
QkNBa1dzQHF+S043IU1eRCZYMFNLJilINkY9P09VWWVQSig8UDRqKzs4dSFFUFUlMEN+WT16I0FY
aSQqMwp6JnFObFNTeyhRTkB6fTJUTEpXfW05NE5HTVdPY1Z8UFRiTWtxJD5meSpKWHo/dUE/YzNg
Q209MF83WFg4ZmJVUXIKejMxMmFVNU9wVW1UPHxtPj5nQHJ3SWV9aWo9bV9vTD15V2RVKm0mS0kr
OT5jajlCX0h4emooNyRPQkJxTm9eR2BhCnpNI1JhY0lFJlJ7c1NQaUZ5UkJ8ZHM3bypnZmN8THFj
WDtuWCVDeFBwJE59WEwwK3R2PWgtZUhZSVUrQHZoYClzZwp6Tmw4ZV91ZnNZVU9Jd147MytRb0xO
TiluVk9sTlBuKTlzUUZeel9CbUBTX1NzUW5kRkl5bFRTajVkR2ZiJlZIRzkKel58ZyhTX2p0NmRk
Zy0wNSFeckhgWGk/fSFSY3syNVZ2MzV8UlBAMTNlTkBEKlg3VUg7PUYoYyZMfTZNRTRvMmJNCnp6
aUxDRykrTmJQYWkle3xAe2o2X1lRR2FYQExRNGFHbWtmd0NxZWBPQ21aa2JTZGchKj5lJEdHVWcl
Z1Y9WkVxKAp6X0BOQmZXdCk/Ui1FQHpXKjVrQDdqWmF4d293aGVKT15hQjd7I0BDP2RFMiMrb3Vq
Uy0mZ04ydURlQ0V5cnVSenkKej1LRUtEOFlOKVJwU1dSalUpKmBtR3IrdmJhZ1g/M3ZvWUpqQWhl
bHU4T2daIU1aIVpYVmZKTFVZVUZuSHE4bzJfCnozT2pZRnkxS3ltRGRNPjhQY3J6NDJMMFZEPGIq
T3VlV1I0QXlaa0JwJV5NS19zNW5UKCpNOG55Nj9sQVhlcDNfRAp6ZXhAPWVfO2hFTmdScGYtWDRB
VVh7V0Y0b2FQfXVJbkx1SDJmZTBecXYmO1BZaFNaY2U3MnRjZmFhLSNGMEhke2EKel8pYWlAbk04
KDxXaCp2JDtEJHJLbmhJeTRIbGk0azIlPVF+MmBDcj5CIVo9fnF8RHZZYHdAcStLMCRKU3RxdDZ0
CnptaV5ZUHtKSzYjLTY+fV5qOFhRdHZXMTFZJitmPm1fZHJAPjxYbFhLa3xffUs8QVhCPGY1czlX
VmROcnBEZCp1agp6Wkx2VyZyeDl6TSRfKWZ0YEc/MXZ5KDBoPm1fPUd3UitiTHpefT1qajMkcl82
RXdYP0oqRl5RfGNxNE0wZEt9eiQKems9MSlwd2E/RHMqWG14P1IxVCoha2h1WVh2QzhRM3NVfCFp
UytLNGJEUmtBbilOYDFrMCFAOCUlZy1eej9ycTQ2CnpVWTtVZ0x5LXskX0UrOThELS1XKWR+ZXFy
Xkc2VChOaFI8VWMmJEo3RGB7VE00QDB0fW9pZ1drZ3cxRnQrX1gtPgp6QHg+cVYwfWJQT3Q8Xndi
blYtVnR2QG5VciNyZ0tKO2JLUTY7e0clRW5CIU93Kks1I1c/b1UmdmdxfXhOMENrJkEKekRvRTFX
XkU1RjB3Ql4tYDl0ZlFgJWFxO1UjMkd8SyU3e011WlkmPilMWHdDVXdwa05lTW4tODx4VUR7RFIl
d2JKCnpgZVA4NGsjR3Zud219Vk8wQUluQU0+e3VaVSkpZ1VLKEdgRG4ra3glbWh5diREdzlKJVFp
ekhJbmJGbn1PUiZoXwp6LWhKWDtOJkJuYjtAeSE9dDtLMG0tVzt9NyUjTzhNPy1ndlY3fD9PKUhG
cF9eOD0mdmMzaG9ZRVFlUHp8VSlhaWUKenFQTmZmI04kX2dOK21gKUt+N1BibSRmWUNrKlE+YURh
djlpakJVPGFMbWJJMlBuIT1+V151fGpmTmZ2P0lGQkNACnptKEZjKmJaUyRFU0g2QVNWXnVaIWAm
VXlaOUkoZkFUPGlATUkjeyZ2LTAlSClzPHtJSWR3Q3h2S0pPcURFPj9TUAp6LT9WcnRLeDFKayM3
PStLTVBgfmBvZ096IXFtP0F5UEUtaGE/e3VJJVNuUHxHPShRYXJ6d0AwPHZ+Rn58dEdibXQKentk
MjRuK09pTmVzUXs2NCUjZ1pzbCQwengwa18haUplOHNQVHFmYENqSzB7cT45OWVLXlF8WVE+WDxk
UFU7MTxBCnpCM0JrZWUoZFg3VTRgV0Q+cDBoK3tXVWl7Sk5PMWR5RypSe3MjPGI7ZEJPdkwlZkZZ
QXFlPk9LJFVUVy1lIWlAYgp6czRZb0ZOfkRqbC17WilFaDdfZHlMVzhnNU9xMiNvZTx6I1F6OGY+
UVQpMDApQE9GX0NpdWd3M19Udyt2U3BwJGcKemwmfV4qQiVfcjVWR0VVRllGbj1QUWstOzk4R3Fu
T18lb3VGNmZ6QX1zazRhNmVLaDVxMHlwTD4wU3NPcEl6c3ZjCno1ITttaC0rQUR2VlBXaG82WjRY
NyRSPFp+PnVvUUpiN35IWjF1Zmt6ek5sPSt5dWt6N3F4SzhGOVFoUkJue0ZDYgp6UmJBaSstayY2
VGQpTiFZdVoxaDx1XnFSVGN1YjxiNW83VE1GaGgxQSFNM3dXU289SGc0dT1FP0pISz5FcXJxYkcK
ejk1aDAkKWppSCg0IVFzU0paKE5fe3tIZzNPeXdgWSZLOG9lNGdMVENxJU5tP0s3dGdMSGE7c2Yr
cFRJWUFSdVpmCnpkZWAmeiMtU0MzZjRTTHNXVSVNN2BSP3paTHBIIWtMN0A2PjU8eXwpYUN6enpi
NSZPJGohOVYwM19ZQnM4I0hKMwp6SmpCSFgwQU9pR199UXt5Q0EwMXhfdX5zWFc/Z2N0a0xnTSVe
MCoqb1VOck53NWY7NFRKRClRPEI5OGpFV0A5ZiMKentiRmd3XytJWDNoYSZrZUtVPUJEKFRYOSgj
SVRQaE1+UXh3ck9XJT1sPn5AcEAzT3Z1KFdpanEpJDwofXxGSyMmCnpIKVIzaEY+UGR6bVMmPzVz
K0NDK3ZkamFjZ35nX3BzdXlTQ3IpOSRsQU9zKHJLMnFeYyRjNzRrckdObjAhOF9hbwp6KXsoRSk9
X3okP2hlLWhwZ2VCUzh6WkxMQkQ5eCotaG5uNzNQKnR0YU89ekBhZGVfT0kwKmFhVHZTYVRAWVZY
T00Kelp2Rn5uZHJoUTw+bX1QNnBmKyF2RVhvaGRGRDtUYm9SfDY+N3MwUmZrRHRHcEMhQXBfdGE5
TjlvMnp2ajJ9KEtVCno8Q3xKKG0yRj5IcUhjKnVpQVR9KGNeKmhDIVU2alIzPFc4cStWP1AlKV9Z
fmMxTVBneWA1dVNIJDQoUz4mdipNMAp6Km5scnVTPSoodkdnc0p8OWxKUkZLTkklPmQwTXFPenM1
fD9WWkE4N2BPUWNKUzxPIUF4MXE4VlRIVnp6bTh9OWMKelVSNCNYNlk2c1crUiQhM2d8O1IkWntG
cCU9IWRlbDZuVWAxXk5leUwkZElhTUk9YmpNYT0wcjdlTXc7ZVRXcXAmCnpabmpQOyUoSGhuWmRD
KW4/QjJ9ZHFudzRzTkItckxZUmdFUUdLKzgqTkNTPWI7P0ZKa0JLVS1hc3t6Qi00MCRhPAp6Tmsw
Kmt7YXt0LShHNFE3I2BwcH5KUll5WTgzVjA9TUJIX3kjQHMoSF5PMEcqMWs2PWxsP2s8WmUyUDRO
diliSjcKejZTVmlHQVUjMGBmMHpGQnpERXo9YSRjISFyJGxKa1F7bWQwQ2lVQHhZKTNrRD81PH1T
LXt7WjhidVN+QWtrKnt4CnorfV9oQGl8WXE/VjkjfE8tPShjTnBORGp7IVRaRmYmMXY5R3FLQE5w
IT5XNiticTIrNU9UQTNLVkJeYUlrJm9UJgp6UShNRDY3anZtKW17dnNFJHdJfSZ3YzZaMDBBemBM
empQLXRwRjktWlhnKzhFaVZPUz02PyFwNzBmZXN0X0gjUEYKem5KRTcyLUVLNHlSS3p7RC0jTlpQ
OUhBQDsqZUhIXlYmc14ya2BRN0dpS28lZSV8c0J4QzdqOGA3JUIqNml+emwpCnpzM2FXKEYoZCQl
RSgldT84NHk7TV83aTNzUDJwP3dxOEo5WSEpUjBAK0g9UkVWd1BmM0JnQmVvc0d7WmhsQj1oZAp6
bGJLS3ZMTjdZPXJTZm88a3JeZE5KZ1lLYEc5QzVMRE84MTsxaSprVjBFfGJaYkxfV00pY1p4X3I+
ZVk/S19gXz4KekNVVEApYzdydC1IaVhhfHleS1QqMDNoPF95OGYlLVF9WEZNKUJPWXc5MDJILXha
ZF50RUVzRnROYShaWjh6entgCnooTT02MFlqQGs9Ynt8SCYpI1VAajBJcSpkbiQ4dkl0RF5DOWtE
Mz4pKH4wMiN2KChFJmB1dWR+Z0Aoa0pnQmNTYgp6bGQ4MXdeNEdeM2t7akV6Q2ZnMXZwPVJlfGJV
XjN3d0RzRzlkN3B5ZE4ldkhOLVprXyM3UWhzRTR4U19OTGhLeFcKej9iMFF+e0dRNlBheGZzZ0dC
NzBwS2h2RzU9Oz8rX1l0ZWohT3wqfUUhbWA3NSFlLTVHIW4kTGhlJEt6PntNSnlFCnpXej5yPFN4
bm0+aChmSFN0bWRQQndPNkBmO0haOVllO0AkMUAwdU4qOWhIUClpI09FKUYkazVlPEJoK0o2YkNq
awp6a3NtbylhPCQkVWdIUHReQXdMcSY8dnlZV2pgKE5XLVlIczxANkQ1RD9iPS1hTU0xe3sxXk9H
ZDJ8LTtGPCRuKiQKejJUZVQzR0NffUhaPyM8KVdgdlNpQSpnYDxYSCtIKGdIKWVLIz5mP3lwN1c8
MUxfamd1eyZDTHcxKipkeSoqfW9LCnpwYHtvN0ojNHJtYXJ0Unp2I1BPU2JEIStfVV89IWkkVyRB
PmQlRERVYXFZYlctTWRINXtuX35LUTE7UiM8TVZYJAp6VzZrP1g0V1VoaiV5dTl7QDM5TVFIPUlu
cG4qSj56QmJuMWhvey1PMFBnNmt4JHdJYFI3RG1YWmZRaF4xP1Z3JTwKem9rfXA9YmFTVFNxc3R6
VD5QYjdseCg3e09le1I1Nmh6SyRoMDF7Mm9tJk5RdyMzYXdrRCk3REBFI2omKjskX1M+CnpoKGU/
YSNxN2srTzdFdl9mSWdEYWN9eWN4e0FFOzdNeD1Bb2x9OXdkUXFVfTI8SF9zRDl7ZHF1WXdFKEFS
LUhwcAp6Um1fbjE2Xz9gKmk2JChRUF5hZVdWa05hIVNTSU54KCQwPVZhb3AxXiVGeVRrRmd0NGdE
fXQoJkF1UFF+PE80anQKejFlaF90U21kWmxNaXtAUiUqZn0pOVUoamp7OzwyazVPSC0lMWA0OVZA
U0ZhfklEb0NtYzlsdztKUCs1YFh0NDY1CnpOWlF2VV90c2NqVzJONTtaSTlLKmNsb21nM15zUkJm
YHpVQEpqM2spJUVUY0FhUTc3SmVrTjNQTChVez57ez9ycQp6U285RlhneUF7OVZUKXFzSH0oYj9o
MjRpfnFfUGpkN15KOFh2d2NzJiNtPmJRd0gteUcyKjM8T0IhfjVfVEIpLW4KenNFcT8oS1Q+IWN2
Q3ZfYFhRMUBxJU9WUmF2dzxRfGxOKyZFIT1oQV4kVG1uVj1JNmY8QWtVV0I5TFE9Z3JWV15KCnpD
eV5tS2IrZX5NbHByfCU3d2xKanpuUmgpZ3E1V1p3Z3EtSCg/X0B3VXcwMXkhanl3WFFsRzNkJD1p
fDQydzw+OQp6WjNuMnlrcUZBV29BQ1dCUHdJPVlBUmY8NFBrMXo3O25HOSlVUCQ2X0FfLSZSP1FW
JXBtMiFAUnMoNG9pPlRRI04Kej5FSDVKcnJsfEIwdWRSOVJOUVI7JHshWEpWKkRsbE1iPEFvPHlx
eyE7Rlo8TWM/XzJ9KGU8VFIyR2E/fCUxIVJ3CnpNUUFAMFdiPntvPi0lI2Z0UXZ8Kz5jRTVgTiV+
ZFYle0FwPERMVFdeKEYtN2cwOCNRPkZ9OXtUUlF4c2VXSWUoSgp6Xm1oaX4hSUJeSmFnUmA0ZFop
SSVGNn1SPGgoJnNEUkFQKTVIYWVRNCFlPmsjezs/YWJiV3ZsfV9GaWp+KUpaN28KeispUmUzU1pG
R3Q5QVFZNT5oPWNndjlLMn47KSpXVk9uRktBb3hiZTchcVU9a0soRUdreDw4elZRQWczRmFYT0Z+
Cnp2JjhWfTlDPUNiWkpzczMkS1c/X0ZsY3xeMXt3RXF6X15wPUlgfXVAPj5LcT9QYGJNO15sO3Ul
WV5wfmJEODE2Vwp6K3w5VEBrV1RFIyp1eio4Klc2XyhyS3FXdHpseU4qNVRKfjAyOHF+OVEpVGZf
OWg3NUg2SHBYayQlLUtFeTktaV8KelFIQ0xQQVZRMmRfSGcpcUJPJVEqX0YjJDw3YDd1eXEzX0du
KWJVSGg1RHVXJmV4TE1MezAtc1Nnang7QV4yZVZDCnozZ2NvKSllbFgzOVF8dSlKemRue2VMSExu
S21oOVgjcCtQa2huMkorXj5kSWVrMHs1UmIlMldKY3VeaX1ITkx2cwp6aWxXKFlwbSp2TEdOQkZ1
YmMwMC1rI3lEY1VoYEZ1eGJVISNoejA/ZUBMXmIjaH02eXx7N2MzMHUjXyt0U0JqWTEKenpxfig+
SWw5c1FqeilELW1XTDJXRnxrdX5kZG1IR0pSNTBvQ0lIeCZvbmxqdEEwNGQ1UTFfQkJuRjNEUCNX
LT58Cnp0MmJsJCp8aUM/Mm5TTWxUOEJuNS19Y1cwTD49PUAyOTs4VElyRlZvJF9PYyYpU2QxfWxa
UXBjKihYWWhhQyp3Swp6aGQqWVVPOzQrb0FwTjFybFI7YGwtMmI0U2Rib3E2Qyl2YTw2X3QtOzRF
TV5jX3BJaiROQmgje1pwcGZtSTxRNlQKei1VWjJmRXQ7WlZAfj5YPFcxO3BkVDIoX0B7fkhUMUsy
amdDcld1aFJqNUs2UnstYV5pPWBrazhVczAoJSZwSj5ICno5YE1CbFc1UHE2SEFFMDg9cyo7KCVF
KE5KNm9gczkqSSEwP2Rid3dvVEZ5KCojNSlRMz50Vk1nUXNYZV90WkEmfgp6eCt9XjEqfVckKEVh
fDE5TCZnM3ZgZW1wc2U3eCsoOS1JIXVXNENWcyVyR1FzU2UhN0hwNk97aG93PkokXjFZbTMKek9A
byltJDNmeTk3RmN6WnNMJVlkTjBOc0BTZzY1WDhTSzQxT3UxMVJmMV5QWjBXNWcwV3xzOTtiPCFj
UXpRTE1BCnpJOElKaEArb01PJFBOdEgxX0FiR21keD56Pz08LXNoaVhXSzM9NnJHfENjc2olQjVu
I0NaYDZBVnI2Jk1YYXwoWAp6I1ctfjJvJjdDa3t8LVVrNG57YDY9UFdVWWklTzl2OSNXYFglPTsy
M2s8UWxhek1faCpFZ2dteEx4NiVnRlIrZmUKekBDSXduNWFWPz5tRF4xKWFISzFValV+MlJ5e2I4
dkMmQ2gyJlcpSWJDNWAzbUI/KD5ITSNQK1dLX2lsXmwkRHJACnoqcl4+QThAeiE3XmFiS242dHp7
QUd6Z2ErRHYyemhYWSt9NWFqNmRiPTNYOTZ2c1g0dG0wWm1oX218QTJxWEwoZQp6UnF0bSFZRzNK
b0EycSojSn0oTUBOfnwye1d+b3Z9bWpuVlI0cH4wX199MHlXdyE9bV45VTdEPDJJVng7Qm9SZW8K
ej4xTn17b3Q5OElZSUMjdVpyR3FLNEZaKEVSdiVXdzNsbWdBWl4jMXhtSVRxKS0zS01DQnFhI0Bt
KU1rbVdVYkBlCnpQJkpKfXBSdkI4Mm98QFhMNFImYUJzR0dhU3E7QVk7dztBQFFBPXVUZF57RVdQ
Sms+TCVJYil0T1o1aiFqb0ktSgp6WFRLfCs/MDspJnlAcW14R1J5a2Bwan5aeVZYej9gJnF3RnBI
YDx1ZXM0REVUWHFhRy16Zz5te2QqPTQtKDRtTFgKemVnMGduekNWWFFZYSo9VHl8Mkc7PXt9RlFH
cmM3UjkzWU5wWT17WDwmY05DIUZlRjU8blZ5RCZEVCUySm19SWh4CnpDR0ZXO1N6YEN5PG5GP0pZ
R3NEYVJEYFVOTUB4fG96UmpKU1o/SyshX3ZoK0kkb0o0O2ZmWSRuQy15aXM/YiFuNwp6blpZbElG
Z1c2Z2d3byQlcWUoVj9Ed0NoRWJfQnhHNSNYUj5paGRCeWdVOXk4eygzO1Q+RitRZ0tuNmsjRTBs
K2wKekRwZylUNSRAWDs4P05zMTlYMWdqQE9zRTI0eFZnTTx3WCUyUj88X1YyVyRiQXlIQz9DVXc3
KFgkIUQtRVlwPVJBCnpnZHZ6Sl5nMHk/X15eN08lMHkydiR6c3xPSFF7bUR3QH40JVFmWVF8Kjgh
SyhmMygheFB9P3hIKThHR3huM3VjVwp6PiVSN0UwIUlTdk03ejAhTFdpSCpVJnpUfThPbDhKQ3A/
VnJeciN9UmA8ckghKGZxXjE0SnImVkVpc0c5TXo+UGwKenk5ZFcwWG9EOy0teUROeFdvZkhHN2Em
PClacnt4cytwQjY2YENIX05saHh4fl9PPSE7YWVLJClJKnZqKjN3aFhXCnpWb0pJdWJqJWUwKHZU
XzEmQiQ2SStTcS1RVWNwRDdqT1d0ZEBadzhTa1o5SCZAX1IrelhlYCpucCF+eFdwcWxfYwp6Iy1i
NCZYZFA7TExOeSM3TS05YWlDcj9KOy1IUTcoNzx0ckcpZm1xPWQzYHJaNjRGYk93bDIhdnopc1p3
ZmxydSEKenJHe1lWYjlqfWRkKjZiRTV2ZHJlZiZ+RkVfeV5NYmErPipSb1MmX2o/Kz0zZlgjNH5O
RGt7KFFgb0ZqQT1NWUlxCnorRGlIY3NgcCRpWjxFPjlVJEM0QlZOdjE/Y2hBUUBgUzw3cHZOOXQ8
MmsoZnNLZkBLaXtYSU9kSWNJPG83STJlNQp6ekYkLTlgamwzKGxTRjQ0S3t1QHF0Pmh7RCFuWkF2
VmdJfWFqdyNZUlUmKEg7OEJFQGQ3PGZ8bUY4MW5hV2dhPnwKelQ9ZytEeDN+fE9pWXlEbVpmaTA+
P2hMZVB2Q2Ajc3E2R2pPeV4wXmA7YnxRN0AwJlAlP3A5SzZAdmluQVdfXktHCnpnPk58ejd8Z25s
MjY4Jn52WFFWTXZSKE97e1FAU29yVF5qNEBeVn5FYjAzemZiWkN5JXJHfShVMD47fCRidG1uYwp6
cmpsTFI9Rl8pMEZSaiRMVyEqYihsZWY4MSNvOXU/dGpBenR1N3hjazZ8XnUteSExO203VHAlbFVM
QSFuMkk5KXYKempgQWRlMFNZbTkrMSZLMGZUK3pURHJrSX5rb2koUVIrbG9hJVZGLUtlR3xeVW08
dy13fEpfP0l7aUhaVXVLaHwhCno4d35IdSZHNUFQVHNGTn0+IUpMVGtoM1QlaU1VLWpNfVpfWSk/
ODZqT29rdGQhWEY0YEolPCtndj11N3Y5X3NZVQp6WmkzUmlafFZpJSEzRjB6SE9taX51P2pwek1k
YTl7akM+bitJMHpQMmZCcX4hTXNDLT0zPGI8IW5kWH1ITV91QCoKem5wcXE0Xmx5JSgyXiFsUT5u
RWFwO2F2fTR7cW83cHRwX0dEXnR6fHs0XlBpKzF8aH41SDBEbnNEVUMrWEJDPHZZCnpUczBycGZB
fWRDMlF8Sjl0Izl1ITtkM2NFYiQwU2UpP0o1aENVcHV3XlAza2l0bEx2WVVCU0peR19qM0IzX0gq
SAp6aGk8YE1xUzJ3bWd5Yjt9dEQ5Q2VjNDhJemhPWkZxYVFkdC0kUkxjaGJIM2YkQTQkQ0ZOcDBR
PU1eU2swQT5vUnkKenBBTHN8K3pLajcjZ09YO0A2MjxuZ0QmWEhkPXl8PEtzPEtncD1NJDJsdCo1
YEAqezY8OXlocG9GbElUfU00QXBsCno7TU0+P240VFFtdVBYOyh0M2xEI24lM34lWG8mc2VqfGl3
JlIoI0x0ZUN9eWxfSGheYTA8emIxJC1oTXA8ISgybwp6UmkwclViWkxlakcqZXNEYW5LTnBoPD9m
b1R1O0E0aCpMeyRxbU0hLTAtK18xVlpeMU5zKXBALWNhZSZjb1U9TGMKempscGBOZTh0PDRkKD51
N2BVRTJBTTZrPFk4OTwmVmU1OVNpU2Qpa29zQStiKzA7OH1uNm9uOH04RigtWUAtNVE3Cno3Njs4
YkJHYmwqNmslPSprfDwwMk50S2NrQ3JnJG95PmgjNjx1MGV1Mz1rRU4oO0ZmMWU3OS0tWmMxfHpt
NiFFOQp6SmxeREhyd2hMfD5sVnVASn4/JHFRbnFke3NecUdQcmd8VEZOZ1J5MCMqWSliaWs/TUE7
PHZjJUsjVF5SJHJYcFEKeiFtMV4tP0c/cVV3NSZaV1NLRTBZfEZ0VntiSm9ZczU+eHREVypOZ1ZT
KFZyTztwJWI1Zl4mdyskN1NUSmFGIXJkCnpNRGhufk5rTW8oODIwb0ZfNEgtfnp3a0hPSSFgZ1oz
O0VhU0Ymc1ZkYERzVTkrdTdiJkdWcUB2Q0BUZ1ZQamIlQwp6JkNxdEwrcVYtVzJsKytpXjNJQHph
IXx0RllRTipUamU+TktlOzdgN09lVDdkOFdqM25ITWwzYUpYVXVxTWZIVFcKelR+Zzh5ZipEdUNF
PS15SGhIfX49UlBoR1lIWjxCS1gxcmMwUnpBaG0oKH58UUw0Szc1cm8lVGBLRFhVT3BGUUVjCnpl
bl87REckTiVAMX5hanglPFY9dzA4NWd8bk8+IzJ3TkAoeTFgSTNBWVphY1haQCF8TlchdkZMbGc/
VmJuS3FYPQp6M2pJQkhXIUZQVVBCOyRXbFg1eFBAMntMYmwzTkRRSVVlNz8ycSVJRks3SCY+Vj4y
UlZgSUEkYT8+O2Y8R3FONTEKel5XOEM1KFN+bSFnKGhjcVlVPngzNEV9N3JyeVY5dVolc0V2cX1S
QmB5OTQrMmBhYj80Q3gqRX0/JlA+KnpFJSs9CnotKnk1RCo8MWpeNT4wN2ptTWB5XjJKMGs7QVNA
ZzNRIzI2ZjsoSClQRkVfeEZoIU8kfGo7PCspIVhAYFdIKlk3UAp6anBsQ1JwdiUlISNLOE42NXxy
PklZKnA5NyM/eGlzV30lVTNQTDc2emUlcitQLUs4KXkoa0s3VklJVzBwZDBvTTwKel8wNVVWaDx8
X1ZkOXg5VEN6U0NwQC0we35KdnR1RmEmVEJqZ3V3MCY/LSVQZGpod1JBVGJBQWJOPGNsLWB6Jn07
Cnp0P3IlZXpPb0BNMFMtQGlnQj5sc0EtVGUyP0B2SXF6U2Z1ZjFTRDElSWFwYyFWRlVvUF43MyFQ
VGp5VHc8YCM5Zwp6Rlc7c18qZl5rSnpvJjd1NHFhd3Z5SzRycWpQblYlVStwV3NCfV82WD9ifk5i
VGtTQ2lGRklJcTBSbEdHLXBOZncKem5RJm9pY30zUyQyVGIlVGZ0Xk5GYjZBeGF0QHk7SFdPPmQ0
T3lDX1g3Q1VwUTA/VmtuVTA7PGo4IVE7Nl45T2VKCnpWVCE/bGtgNlBhSVAzKF8rWmNJJXYyZVpr
aShsWWRvQEN1Jm89YV9CWGpyQ1NjKHRLY2YoJTVseSlaN0VaZ3lETAp6VEcwMW5QaGZSYykrQGwp
UHJ+bj5TIWVMbmM/KmsjYHgqNXVKS050QD4rUEx3Nno4UC1IJmhYWE5pWH5HKkAxPSUKelkyI05M
OCFtIS05dnlgK1AqUlRmeDchQ1VmezB7WGBFMEBOQXdlOHVPYmJQazg1fnghdUJVaVF0SCElJVcw
dj00CnpYJHo/bmVjP3BQKiFmR31SK301JmgqQypeTXt3bjJ4eT4rVmYqK1ImUWhRcmdxR0xVOEAq
P0doJUYrTWtickkwOwp6JVFsI0RQUypGUUVHQn1fYDxxRjRrciRROWlsMilKPnpJcjFfU1AjQmZl
dVopaSQ3aX0tKWhkREVgT3BAdmY3NFEKekRXakpWbUcqckowfH5YQXdAbD8/VWw+d2sxMEkrPjA2
VzB4KSMxKGgjSTRgIXhoblV0I0BneHBtKzItcGlAMSUyCnp1JG98dXhqJSR2UW9lVHJpMXVCRnJY
cSYmV2E+JjdaYzVIJUhkRnRhd0hvNm8oJGpzWmg8IU17KjZJMVhgQ2dhPgp6S0pHKlVQViVIYkhx
eXBAVUdGOE90enojOE9DcDE+TjQ+ZkRWRlZ4Rjl3MjBUWWtMJURENiMhai0oeGxWJV8pQDQKei08
fkdUQmZJc3RgQHxBUURRdnNuPEFxV3xEbHo+bGM3OThEbGM9ZlNjRD1Gd0c/RjRHWmAqekwpaypo
dGs5UmxlCnpGSWQ1fkMmO3MjdWZtbzwxS0xsKVcydyRHbSZBPE5xenF1fno/S3FhV3B6NFhVM2JW
PFYkNTdqb3NTck1UTDZwbAp6KTUmYE9vN1NZfk12PyhzdjxRaStRR3B6VDZwTkBmQHxjVzQwSU5Q
R1lETChWbD13JGslM2tlSkRAZHtkPnxgPHwKekA0USk/dEYxa2dMZEFBfEpfUyZLYnleOyR5Pipv
XjRSVk54KHIjIWlQMkA9UV9GT0RGSVFJNSMxQVh4ZHdmRHliCnpgSlI9MCZpPlBxKkg5PSEjQXsk
I1NlbF50JnUydWJAZTdGYjlQM0wwREFYbXAxTE1GX2RwcnVpdSpxXndwIyorbgp6e1dVdHdSeClB
YnI0JThVaVNDbGpgeCR5TVlYI19KNih0PFh2R1VJSXFAMUUrVWpZYzU/VjJkdDhhbm57JSFwSEkK
enNTalp3c3g8UGNYKXgwYj00OE1iQnZ2SFRZVHNIT0dFb2xmSkIpSlFAKypKP3NHPmlQPm9WR21Q
dkRAVzkyXnt+CnomNlY3YGtqI2YoK2djbWdfNTk3RT02UWBJYDFme2RuTUlXI0FgMzJrO1VwdnF1
Zj1QPnVmXnRxeUcjeHVoZ2pIUQp6dGlEJVhDJDU0QkVZdVk5RClPeDhKSVRmcGFaWnI/IU53Z0U4
QS1YPWJRKC03YjsqNWJJKDFURHc0cEsrQ1JRaG4KemByTDUySTd+aHNXK3haX1BIMShjYzRXd2p0
Ril2d3l3Z3JkU1dmYGAyWTwqJG9ZfWA5R2B7S3VMI25jYD5iZ0JGCnptYGtfR3VWNlpAWUdjbXAp
PXJOVWpAUnEpRXlwNjRLP3RvcnMtKk5qSjRIaHV4MlpDczklVnFva089cjQhRHxkVgp6cUAhakB6
eF4hRilAdip3cyZqOFNla1Bxe2BkUy1pYCY7KylocDhTOzJqJFltXiMoaENEPjR+QihIfXZNIzRN
PW4KenNWYzxpO3NSV29RWCl3dGheKiEmbmt2YlBrUlEyTShZQyl+IXlwfGRmMiZEZSFtMGAkZX50
S3RuRWR2I199ND5pCnoocS04ZFZgPHpAd21waHJFVX0jek9KUm1oNWtGYUd6dnI4TEJmeXpyITM2
aWQtUEFePVl0U3pwPDV5I1EqTVFsMgp6Q1VBbSU2M2o0blRBT0N3cl9qajFGU183X28lfnRte1My
eitKOGhIdHtLVU56cXQtfnd0UTJgQ0coJWooQVNXdHYKelNhfXxBV2oxVXkmR3ROYilRe3tSNyRB
fFIjY0BVej5YeCZgR1hGUU9tVDw8fj4pTkpCYG9YVDN3bGBYczFzQ3h5CnopcyF2NTs9VWlKNlE/
b1hKZFA0K1h8cntjeSlRQEVlZ2BFSURWVEs7TT5kS0Q+K2tNVGQ8QExqaCtwTUxefUFaNAp6KCU7
TkZKbFFvWnpxWFRPaUdQK3BZbWtCQVdrbm1PR2xPVVM/KjJpNDJUbGdyekFNT0RwU1U7SV91eH5i
LU8oUF4Kej5DQEI0bHpoc3plfDxzXmJHKz5vKnpuMmNkQjRqNnVsYl41QFAzNFpGREFNQV51Qlp4
QyFwR3dzWD5eNERqO0FqCnpSZmRrNThrUCNlb2ZzcVkmUX1KJClkWDlYMDVIb3Ayb2x8d149QnUt
REtaeCtgYmFLRDhFeGlMNX5Za3QhTCFAQwp6aXhOYylPWmwwLVE8SSNTJkN9bTUlNVYoN0dtJlJ+
RlZwKXdqViFPJUFQOy10S015K1ZQSX1eeG5kTklpa3lnLVEKekkpQzY1bEYzcDsmVjN6MCRhJXY1
NSZwbVAxTzhqI2VgXjBYcTJUe0Z5V3N5LWArdzZCe3dGdEshez0+TCVHJjFICnomRng5a2FvTnZX
JVM5fHhwdiZqeCFIXypQVVk3cFYqfjJkdD9rdihlPnR0dGNZY2k2UGJDXlRgI3drQTt6a3Z4Tgp6
WDEod0ghJVkwXkB+enk9cX5ePCspNyoyM190X1ZwaHB1PWt8R2w8KF40el4jRzlsTCh2IV8xZS1L
Q29TJWg2IzQKenQwdCF9eVdNeyRSNlleXyFudTBkdEBkQX1qP3x0K2dWJUY5QGFJY0glTHJmVGd0
Mzs1akJfdXFGRCE9PllUb3QlCnpnJHNLPXZWUDQkWVRuUHNkXjt7WCMya2wlOE08N3hkUmUyZmo5
UkwjdytCXmEhOzlxKD9aZTMjJHpacGR2TF4+UQp6Jkd3P2ltRXR6WFpwNilVdDAmb2EkP2FKbmFm
SyRTZyEhRn5SO0E2ZVlTfGFsI0A3JmYmc3BTZCF0fEdVbDFzamsKemtVRHs8bTtBVj5iT2kpN0Iw
amY0OTshQ2hyLTg5YiNva1F3THxPSC0rdkQlOGY9PSEwezBpcWMpPmBuUEdBPWR3CnpyWmshcW0/
JHgwXmxleDl2Q2tTRlEtUCltNkt5fD9VZXA/fCZxUyhRP1hVQXJ3UW5aTEIyaiM+PH5QVDtubGpw
Kwp6X1MkSSMjayYjZFZEQEJJVHJ3S0s3NVZwTm1mJWNANSZvPCM5MzAzZjUhVF5sdmI/IUlkYyMk
dTFHQihWLTtiKzwKekRGJDQwM0hMeyhPMX02fXYtUzdLNGleZ047bEVVVSoySnRJSSVBJHpfaHZz
NSF3I1I5bnxzbkY2MUZyWmw0LV43CnpJbjNqJDA9YT5kNkswQ3hGPWhJeipBSntZYjsjNHBhUjZZ
UUN2Wk0rZExAIyQ7c3U+JWRveWtPVGN4aDBDbiNwQQp6byN9ZH4xYz9hRnstK1FQUFFPS3ElZzAt
X2NrP2VHYjxnRD83ZEB3dztVP0FHP1pnVnQ8UWF3NUB5eTEzYFRAMHEKelErSWtJaCZEMGskSXlZ
MFBfXnlqTlolVnolWUB1fW18KUxBI09tNCs1Mkc2dTg7MUd1Wn5xKzd6NmBla2ojV1ZtCnpNTkg3
eT8zflRoaU9xXyZFdWVwZnEzNTtYKnw+OVVuJkdqMzlaMXFBYUpTKHk8PHEjSSZaV2xuaj1EWVMq
QUJtKAp6TlFRdSRvN0lyKzxLYnBtYkRPPFowUnFyNWlNMSk4PUdPQkBNTz0mKDszZ3Rfbyt1ZShF
SUNhOGEobzAlWkFeRDQKekZiOWs9bUw4I1hzJmxuWHomJCZ1K3FHJVZOYiVGZVZASG45IXktTGR1
fXV3VktlfCZlekFLe2JWRF53XmAmMV9PCnp4Q1RTfXZXc1RVKnw9d3BtZUJMKWxncENSSmhfZXxi
SVNgJm5+I05AUDYweC0+LTFIfEdJVnBgOXMkcDNMYjImXwp6Uk5RM0A7YTglaz5FI04oV3ZoOUkk
cSY/TGstZU9YbXY3RD4wTkV4KHlDS1d1YVBmRzYzRk4wWiFTZ1kpKn19My0KejxkdXwqJCNXUmZu
d217Vz5vQnUqeSNHejNAUm1LYWYzJW1uM2VRUl93VmIlIT5uRFApKG5lY2xvXzlEMzVXWHc7Cnp6
eWIoJjxVWl9Fe2JCTEZuelBjbjk7KHE9d05Ad3FmamNePDtLTHVCRVlFMUlCMHRZc2x8QW5sald7
ZSR6NkRlOwp6UkpaWmNKKkpWYE4rOSRfdDhMJCRtUm48PSNBPSVHcDFtYGMtT1dnJWRySTY2TXFo
NHNRY0BPcj5ybnUxV3g8YD8KekdNJCRlNiFCZXNWMnd8Jl58QDF6eGU1VEB3X1JSK2pJQTU8SS1q
WS1YSU5iNXh6M0kqKDdua2EpOFBnbTtJLVppCnpUM3E1Vz1xeDVCWHI0IzJ4QjR2SiVBWjIqSzBk
ZDltK1JockczJTg+ZENtRVBYP3VBamkoS0h7QmBhJXY+YlM3ZAp6TnlVcHV1XiVaQjsmJjAmazdU
N14mZDExYnpZQ2VlRTFnZioyaSZXUkU0dnB9cn5IRG4mbEFaPU5tZEdHcGslNkIKekxJbC1wUlZO
ZEElbEYtbkRHLTMrc1V0KUo9NGphaCE5Mk9QVk5TTm1EaThyK0lwUHlhYHdVJUpsO0ojKldNY2BI
CnprUUZAckhLKmhLSFNxcmFReD50QXdjQ0NJPnlBaSV7dDlaalpwN2w0XiZ8MTUmNmR6WDZMYVRp
ZTVLMm4tYnctagp6Yk4kX0VIfl8zR3Y2dFNEPUJZIyFCQSUzdVFgVEg0dFRzTkpUayp0fS11R35y
cU19aSYzVlFXMVhSTDtiPil1WHgKenRyRW9Qej8zSUVaNEZ6ailNV1JpdlF8SHJZITV0YzImKW1M
LXEhS2RNSWlhXnhqemp+YEJkQyZzPkhXIWhuKHUxCnp3QFkmeD9JYCMtY0hDWH4mZVUmZzNvU29n
NWpMJD1eTn1gZjdBcXFJP2F1c209VH0xMEMjc3BHYTJpZ0ZKZ2UheQp6bVAmLVBFdVAwcm0jPUQ1
VTVgbilRaDh7aiU7ejgxSGB8XnJCVj0/dkExPFUqb1UlO30qS2IwNVlnSmJTdVp6QGgKejZqPzUj
KXZRVGQ2M0h+SCQ2RE1FMWwoP2lAMFlqc0koIyhQVmhgP1V3XjBERDx2VjIqU3lEeWFYZTtxX19v
bVZ9Cnp3e0xCfkEqeFc+WHA2TDs3NzU8Ozcjeyk7YXAqfl5EUWYxSl5mTVIzYDlVUk1lYDZmQVJI
dHJSRmM3dEpAQlBCXwp6aTt3KG5gTGd3OUg+UVBARjhCSXhZSm0tNnM7LVlGJnA8OF8/YC1QKll8
dU59YD9qfDw+QlhSVGUlPU9ZKGwjQkgKelk2e3hSVWxpU2pTMGhNV2I1OXU1bzdPSV9iJCtgcDRi
bUEoQzs/Rj1QTH5wK2l8Xmp8M2g7UTMoO2pkKmF4UHUyCnpVISpBRWV+dHxRM3pjeWU+ZV42UWJ7
filVT0grN1QlS04xRHp+JH1TUTwoRkJQanFoVmIzZFY9WWVzSHBeU3R8IQp6LUdqa3k7YChgSCVB
MCE/RUk9SC02QFNDWGg8SEFHTz5ZcWsyb0okO0llKTBrRSpoLXQldl4yR2NXOzZOSzNkPVAKejg3
Nik/UiRnOH48Nkw+WiE1RD9rUSh8TnIkNVJJeWQmeWtGU25kfTJsemhWaV42LVVqSG9+YnFmPGph
LT8+R3tMCnolSGhSelp3QG9gPkA2RC17QHlKLWFqbypUcCYqK0dVUjtkaXojekVsLTtjZSZJN1Fi
P0hAQzIhenVMT3lkZEApJAp6ZjhPNyRCZiRZMVo2KEdCTlI/QGRGS0NneV52KnJrcWg7Qy1vNnwl
Yj4hbGNTa0k9Nl4+fkBrNjU5aiNZYjtJQ2EKejM7a1lQKFF3I3g8QVBaR0pmKXVwcDlKIT9GSFFh
YCsrVHdeKCUtelBBe0dqTUFpQnFacDB1Mz9wRDxFMzlBSCNeCnpee342PjVxamBwVz9HSjMmdUU8
MWJ2Zm0hUChMYk97Yks2dXdQb2V1PmR0YG8+dWg7JCFNJHtoO2MzOWApIz5aeAp6R1dBaGhKZUM8
QyUoJmxpYk5RXkxFSXEpZDJOaD8pYD5BdUsmMy03PXpXbklKezxZJDc/JX1IMFZyLVVWTiZWcmwK
eklzQGxBVXM8JmdeQSE8ayMrI28jVXNwWUlXUkI+ZllBekNLZGNJYW5vb0hLYEdQX0BOc3h2c0JV
eWR9emUmdV95Cnp5WEdRV0poXj13KCRafik7UWoxcmVVNi02UFVKcDM2YCs1VzxuTCFCbDNVJm5Z
M1YpaCt7TjFIQnFSakcrWjU/Sgp6JnVwWUw+ZytASjg/eyNTRjB9MHhqJEtWSUA4K3V2WmN1SmR1
ZGArfTFXd2xIUylrMFp2b3Mja2hqbV5yMU1ANSUKeiZnKlJ7dV56X2xsU0RMKytaOGd1bWVNeXxu
MjE8QklRYnRKaCtXMXdsNG4xflNEQUxqbDZtaFBrSmNRampnMUQpCnpgdl5HNjFXRDFrLUxeMGYy
aEcyQHZlWXlRK34xJSV5ISVZa3s2eTIjX1RIeWIzdTZUZjNifXYyV29vbyhzcDZaegp6O2FVQ2gr
RSRxeD5ITEJ8Zzt1TSk4am9fTFNwamFVKlhCZSgmcFFRPHlQSDxwd3NYfVBAUzReSk5TZkc+eEFo
a30Kemcyd0thY30+Zi1wSUpDd3BCcjZ6cUZCOGpxbUs7ZmBLc3JVWlF6MVZEZmp9I0Z8N0QyUm1V
XyZUdDR6Izc1WWY/CnplWVY4U184UzhwLSViaSNWVDw2QSZkXnh8UGgjSnpQVWgwQnpqX1EtVVJN
bDd5I0IqeHNqRlI/IWZrTk4hKDJnKwp6ZTNIe2ReOzg1QXs7UEg+P0UyRVlwWDBmZnBedWUjWVEk
U0JQaCpUTkRKa2ZAP2RZNz1MUE9gNUhjI1R1djhfPCUKekRVVF9YUHJiVWd3KkB3N2M0RjFMLSVt
elAxPkVMMXJzUjJGYFhhcmpkdjNrSzhaUyNyYylyOzxWe2REcj1ien5MCnpaanc5IW57QTZqIUlQ
XjleazBzJEZTS3l2Iz05JV9RI0BYYG16RzgpOXVOMSZmRkZ8SEZZVzRyVk9zdSZQS19fWAp6JF8w
KEMmNlM3Rm4+R2g2SzB2YWZAMHA1dmNnNWoheER+LTJrcChgRHN7fFhzelNQcj5VQWJoTHp2Ky02
dlhAVkcKejZXaGJnKHtzIXZIV0klaklGeyF7N21zJn5CMVBKWXRUKzlFTTI9VGxSYE56YmV3O3Bk
OHhXUlE0KGVHK20tdn1+Cnp7N1dfSXNaR1Z4dz9OS2t7KCV0PEZuKXEzdDZBSSlxQUl2VzFJfShP
NzgqZ3E+VzIoS2wmNkIkZFQzVGI4eWpXegp6KHs3fkRpPmAkNSkqVXFDeGcqYG9ueig7IzIxR3N8
XkVIRjgjKUlAcyQrbXhmX2NPP01DaT85NV5TamVNSSpEV2UKeik4PEZqbjB8VElUQmVFdUV4Zk8q
cEBLVkcmSDZEMUlDSmxKUFV3RVItcWc1VkpQQFRfU0NwcCliR3VzOVp6XmNeCnpsOVEzZVlQKWxy
elhkKjw4RWN2OU1zRX5VYm5vT1VaTTw3VHY4bGZ0UXthYWxzcmJCSD5kYS1SJS1wWGB3THdwJgp6
WjY1N0QpJE0mVTdaUnd1dmo0e1c3dlNyIWYwRkdSWXI3fTlQYzBhS0BySD1yWT5ZPTtkZik2VlVa
eXVmQUtxQCMKemRzdz0rWm5nO05KWTZyWTl7JU5jX21+aVc3eX5HQnxGJGlZM0tmVEwwZjI+dDxt
MWNEQ19odD9gXiF0Jns0RlRSCnpEX1lKZFNYJlZiRXBHYUE+eHNwQCQ+UTwxWiREUUNuQHowRTN6
TkNEUTBaa3hyaStMMTUpVkpJIXMyUXhiR31YUgp6NkxCXiV5eTNabzhVbFc+QEZjQH0tc3U9Rzli
THF1SlE9c1VQWT16ajhNa2hjY3xUMj1fY0I9ZWs3cE9wI05BOXYKemskdU50b19KPnNEKXxrJi1+
ajB7VEB7c142QDtPQDM+NHBObDBQb1NHWHkxISMkMSQlcT1UOUJBUk47bUBPVW9TCno7RnBARD98
QmN5d31JOTtgTjhNel51al4qWDxyfilIUXU4fCh8Zn5+UypCeWdoe2I8fVR7d1lISj09SUsxXzVZ
NAp6VG1qI1QkNCNRMzFlQlopNjM3UUZBMVVGVDM9ODZSV0peSDRicGZtTGBGbCpGPXM+S3ZrXjsh
XzFZcShGZFNpflMKelY4Kn5XN0NQIXwlMHBAOGAzcSlaPTIlZXg2MVB1R2ZkQ0FmJFRZM3lSPWA7
VGFTaGotRUBxWT1OfjIpZnprY0goCnpvNiM9RjFrTz95JWIzaXhYXyRiJDZ2eGt9clhebG44QDQk
dVF8QTMtRVc5eXJuTWN9Nmt2O2dia3hHJCpGT1FvbAp6ZVc+QitYaD12dS16TTtUNEQxTUcyPClL
OU9zTHMtTW9zLVcyKitFc1p6P1VVQF5pQU9pPk0pITd7VGdtOUItNUsKeih9VytVWDFFYEMhLXJt
d3ckIXd+QTU5QVFFQGFHRTM2PDNma2dDS01CTE5wJnh1YCFhc0p3VEFeOGtJJEIlN1NHCnpLNWFk
MTNfdWhec1FfV2pAeGxyMGAlbnBBd2R9SCVjd3JmWElsZ25FOVQmcklGXzE0JWtvVFVDUkIrMVdD
ez4qfAp6YkJObmZSfE1wSEZUUX1HZF4oYD11PXdKUVYkNTA/Q1l+cHZRWEhIbFZabGlsRlA8fmBK
RilPZXxCflFjJlpPRHIKejxSKnVGOz9gSXE7RSFzTk9AbW5pP2NGQkBMajdrKDF6ajZCQVUyPCZN
KE9WSlp5NlcpLWZhM3drZyl1TjtMZDFUCnpiJUlhZmBnfnt0M1k7KiQ1RyhnTSgpZCNVK2NxMVE/
bFJONUkxV3lwQkY5NWNnaWlJPzdONG9mekpkcjY5IzFvRQp6WkVZY3okMVZVTTxveCR0MFBWPmIj
fmhnNTBLOyVKJEk+SmV6Jipab3hrU1NXbkZLJnczaU43JUpIcEl5bnZPTVMKenk2MXoqSmZNJXFR
eTxaK0RaKTgwcF8pbUg+Szt4YmdVe1VXX007IUUhKlc+TVBqUDF9S1JMY3h1fnFmNW9OO052CnpK
NWVRYkxNTGlGZCVEQm9PWlQjTkw1ZUh6VlZGalgrPU9CSTc3ayRFNDY2TiNOIyhWMm17azg3eGhU
MStfJTAwegp6TlV7eykjYk0pTjA5ZWZCWmxJcm5gbnJnMllATXheRF42dlRUbHFLRllRdyVTZGlK
KXE4cVctYW1OfGNCSFBNVWAKel58cj5DNUEoV34rNl9hdmlWbWhEamkwQnU7UXpreDsocE9jX28l
ez9QbDJYWEtQbH11R1NDNChMe358K3MxTHI4CnpQOXxHdz9UaH1CcE1aX2NAIzVpI2NYd04xKWZx
U1J2QGthfUBOPyh9P1ZqTEUkTmlyXnpCKCVFQytocFZnZGk+NQp6QWZRTnRsciYwLWJpKSFXKHcm
MGpFLUVHOUF8Y1d4b3psekZOSl4obSVoRH5+Sm5RZWc9ZSsrcz1iNjllJlk1IyYKej1BNDwme29I
JSEtWV9pS2JNfH18cTl5TX01NktWUFlJeVF6I0h2Rzw3Si1raDtPcW9tbVAhaiVwUEZvUG1mKn5x
Cnp7PzkkdkYkQUpwLW5iYXZCSWYobnpnbnhtfEV5a2Bha1ZgK1J8MzgyS3w9V3VrQVhwaG1VPHR+
USNHU3ojSzhNUwp6bWhZYC0lSnc9QiZfSyt2KXdNT3R3RmwoQntULWh6Z3VvbyVLOEE4KVEhTzVY
e0prbU8jSm17ciZjUWUtTiFmUmMKemg0KTFeKmEpb2NfS05LRWJRRmI3KiU3TEEtOTJVWUZicn48
Z3hVfkl7NUBLSlBHfntMMzU9TVQ3dTMlS3Z0UCV2CnpKPE5ndnJPQGJ5alpDQXR2KmJqQTQxRFIj
YWcqUTBMNGF4N1VYMHYja0x6eVVJc1hsNCZ6WHo0bkE9QmpTYUNjOQp6alRgZCErenN1QmBTTjxx
R1dPUnJoMU99a3tRaGAzZ1JsWHsrMDx5PmBBKEBvNUFPKnEyczcoLVlzN31xPXg5XzwKekU9fWxf
QUopd155UiNocz1LaCNRKm4qPUZvd0hMP1lNdFdJTDZvSz9OUG57RFg8NFcpNlNzYnNBYGFlfVYz
WVVrCnpXb3F7bD94KEpIcmFONE0tKF5Sc0NeYDJIeEt+RFReMkd0KFhmT3p2Y3RpOzheTiMrdHpi
ajgwKXBHSHluWGNvbgp6OCplNXh4X3Z3OXluVkYwbjxWWUYheVhpUypTRUhSWGgwMWM+KGd7ek9t
VChUNTIkRz05czMxRE5Rcn5QVyQydXUKemFOSS1kdVNvZFEya2smRzlqTWdhN3xGRENMQzlPSGBt
O35mVFVJcHdObVJZPUU9UVA7ZiU/OEI4fVF3aztybEBQCnp1bGxrYFF9UUh4VUtqVkBMKTdEQ3Rx
ZWUrKD9xJiV0ITx2IWVjMExxVVBNZVNoWj1keEdkSS1maHBRdy1WYzJFNwp6OVE5VSE7SnY+fmgo
MWwmTnFARzgkPiFmJihGZkphMFZtdy16Zzh1YilYYldtaHcjd3RhN1FNLWVEZiN7VXA5SjQKejhI
dDw7al4zJmhPfHZLfCNjTHh8cyFlNFBgRnlzXyRgNlpmc0BtMlZuOyYhfiMxNTV0TXQ5RSpBTyMj
TEM4WmBsCno/KXs7ITxnbkNUREUtczkzOUdZQ1Z6PUBNejxhTm9XTDUtUHFGYHYtRXxLYC1aazND
S28yRTkzZTllPFErQyVxcwp6aDcmV0tFPTREOT1LUSNPMlZLMHBBOVFtMiF6eU08TjJffjtSUyRU
NWJxXmB7Rm5GVnk1Vn5CKjJqdThxYUI1T0oKei0wcndOTiFLTD4tVXhXP0tianohbz4wUl5DZUFN
aTR7ZW48ajM4O1NiIU1zdnNsclRvb3NLOEZoPUZTfm1hfilACnpGWj4mc0VObXZhK0VZYzlZP2Q9
UExLcyYzPiMyRnFmYV4pI2R0MmI0PlgkZTQwUjR3OTBQeWx2PEZHPUpXflBfNgp6TlJXdVEtdTF5
MXV9OFIkV28oVHZiZ0RXMWYhQFd0aSoqJXh0Rj5yUFdYeG41MF9eaG9QPktJb09oPD51ektJbnsK
ejlrJXdxVXp0TVFtejRmQGApbEopSGliYVkxakhRcnFxMUFyUTVQO0dYLSswITM1cXI5ZWJ3MEw3
UjRyN3VRO3skCnoxVlVhbmZla0JLMjwqQX5TfSNQRjVRPz1eREF+WiFaN1pJP0M1Jnc0YGd9ZjNO
PUh8cSNVJG0hRWhEXnJ6N1I3awp6diQxNTBmd2RhblRrQiZSeTZIaGMjIzd5JSlabT89ITUmUiY+
JWRpZmw8NCVUWUFwfkxyaCtgYXJRWSQtSUhmZnsKel5WdjRPTGFeSVM3OG5MaVNHJXU7NGRrTlVy
azV4WUp6OWpPeEJeYlMqTzUxMSN2RTRMUS12WUc4c2FMK0Y9QCZxCno2M1UjKzFaKWlOWUU/OH0l
JDA1WnhAd0lGckc0Yj1vfjxHdiUxJmFTZkYwfCpTfHk8c2lwcDtpRX44NCppTlBZWgp6aj0rTURo
MEdQczk/VCpCMkl2aXpDfU1tbi1yfllXdEpZIzc+MHhaUCsoY1prI1ZiPll1cVh+IW9TMUAjSjhF
eTEKem4qQmdCWlJAQD1MZ1gwfXkwNEtDOWM8YlEyMkxOfno1KTdXOSRrKj0xVCE8aSQyTkd5ZlJk
SnUtKG5tKT1ZXzF8CnpLKTsmNm55OTFPRSYmbEw2YWxHVXkhOztSaTRFdjkjaUZfI2J8STY7eztW
NVZaVihWKShydXUkRXQrZ187I2g1VQp6UXliSzYlVlBOVUcrPztwIW45MVMhQXM5Mz0wKHxMRkBz
WmFhazErSmNnPEklPXJIbz4lcE15akg1P2JGSjI2TTMKenc3MWN4OWtZSlE9bWgqa1EqJDhCKyg5
QkBuTUYtTCp+TTFRbnEwJXM9MnB0ckI+dFlaMmZLeTche3ZTYSp4VCl7CnpPcGJFKHRFRyZ4SzB6
dUt4My07TWowKCYmUT18ZlBtek97bVk+bmxPT0p8dWE9Zl5MekMrIVlyWVZ+RnMqR0Uxbwp6UCo8
ZFEtWF5rN058PiQ8X0k7RH11Jj9CcUVwO2VPT2ZyJWhnYSlZWT81PTQyZXlIVWZjcmhsdHBCWnFL
PVIwYGsKekZWZGJsJVBSJGFjaCVpXzsrfWFoKSZJQmJGPCo0TDxhPUwhXlEwZSNVdk4xb0V+QjI1
PD5aJCgpUl5KNmx9QExZCnowbVFLS15MUUk0Vj5LNGwmJk8rOXN9a1kkIU1hITtobEcwQXlBY1ln
NUg4XnRKfXZAYlBkdFd9PlRFdEIqM1J+IQp6Nn1obkcmZUBpOShYRm5MYT1WRGgoblB3PWpHVmQh
KDMpZSttbzVzI29kNWtkeXNxfSMqKypTT1BWcVVPSiY1RHwKelgjN2FeaDEyemckMypMI1kjaUhG
Xno5Xk9FQXhtZDd+Y1ZIX3ckaEs7RVRSJDsreW8xZCkoYThLRS1EVD05VUl9Cnpncld7fjtXOylC
ailLZ2s9QE1RfG84P1MyYlZzQUN3PH0qZW4hU35kNXRnPE1McUBuNj1CO0wkUFUwa0dIUTEkWAp6
bnJCU2lVWTBNQTswT2YxaVd+bjZObDNtNmMxM2xLaFZVdyheMVBzaGJSdkxsYGptNGh5Qz4/REp+
Yz19QEc7eTUKem1zUEl2Tz8kYD9vPkYhXmJAUnpnd0JVMmRuSWZXZylRM1RecCtfLU5DIWhPekRK
R2BoPDVyez1hYVlxNT1ZTTdgCnpMS1VoakZ8Tl47dWZKLTdTNj9jWl9xXjMpK2spd2o7PG5FMUlk
NlI2ZXo5bVlmKXBNPjtFcHlpSUNMcj80TG1kZgp6JVVzKHZSUl89UClASWpxaWxRN3wmKEQtOD81
X0t5QzktJCNAbXU7REczIX5pcXRLaX4pKXF+TWBlMmlTST0qKikKemRwQjBmPmZlcjU9RHgjKnhM
OTUjTFhWRm9LNSExTFB1cWhrKHs2SD87fm8jQmk5Wl5PKk8qTkFLUmE9MHdKMENNCnowdjZmZHdZ
MyVUNyFMMGIteiZWVjhGVUx5X3pLWj1HTDFXJGBAcDZ3Z0lxZmFaKzZ5KjhHPEc/VVdNMH5JYXNP
Ygp6PF5EbjJAKT9pKEQwKHBZRXhwa1BvI0NCSz9SKy1Ve3hfRlhHbk1rNCZ1QmNQN3R8KXxoaSpC
K0NUelg2aGtgWE4KemV3Yk99JFd2VlllNWA0REZ4O2M7U005UisjYjR+TShNJD1IQzNRaTkmdX1y
WVdmVldseGxePiZzaW4yUm50NiRXCnpeV2ZEc3FpbDtXSHk0TG5mfnUmPXZ9UGBqUXJnWThPTFl1
dG1nQW1FQFJ2VypRNyReUWc+V0I3bnl3RHBgU2I9Kgp6S2lYMEtnKkM0PVV7R0FeJE9EQWNtbj5k
P1llPlg0YkNaYlZPUyU0WEhLeHs0a2lnLThRXlh9QFZETUR9SnV0fkQKel5VWjhzMmxRbmRvbEV7
cSNGJHRAaUR1ZUA9ZmJVNzg1PWY0ZH4lUlhQTEFMaEN9Nj9QcyViVHN5P2MmfEEmZT5aCnokR0JB
Xm47d1VnbiRje3R2fjhTWDAoLX0wO2NxV3U8N0NXPDZ7bitLb0pfaCtSY09kPzhHUFU7aUN+YWdO
M0UwZAp6Qnh6WkFRMn0kRCpMSFdteTB0OHpjaGdhY151U1U7c0h+dFJOQF5IKz1YK3l7NmZXO2lj
PjxgYiR7K1Z+OG51MmcKenlGLTJRZypOTiFtKkUyMGkmPkVaJkREWTRZR0s2elJAS0cpJlhBVHBj
VEYyJUFtYUs+azk0YlI3dFphNE9OSEM1CnpNMWgkRFpyZjMwYHRleClibGtrZEo9NzFyVXhyTTNZ
P0dUSjkjPn5oPGhQeytga2s5K2oyYFVzYlQwTUFUYml3ewp6ZnhFWFExY0dUO19afDt8a0hfWVdo
Mn1GSFVXemdYVUgrTGdZQ2t4THc9ZHFScCM8dG8/WFExYzJ1S1NITz1PJXoKej5pRGQ1R1BTTnl6
Tyllc0ZNUGAoWTxodHdeVVBybkVzUEYmUiNSU3FQK05RaGNnaklvelEmcyg3UGo4bTgrQiF9Cnpt
YUZLdCp1UDshI1EjOWY4c0JkWSpVaipJdEtQcXM4WUJoMmdMcFpwXn5YTHVJeUhRaikyYCVYbCtq
czQtQGlhTwp6b31faTx4anpQYHB2dyl3X3FzdXl0O0dhNmBnLTY2e01jfnYoeHYlSE84My15ckR8
WlViOyRuZXtaelIkezcmMkkKekF6STcqcjRlKC1wcHlSaGcjeWlkejZRJnxgVWBPTilYJkl0cF8k
bilSR1J3TCY5aSRgbDcxR0ZhQFQlRmhaPU5lCnpCIyUrYDYpakR6bUlHclpPYn0zPipCc3QoRm1L
cXNqWVArQmgoaz9LeFFTZ0lJVSh6X2VEYVZIJHVlJX0mRWMhSQp6eGRhJUFnWWhkcFBzYmh9eDNu
MVc/V3NPWF99QWF5LVNuUmNqPkNDZEJaVld7UG05bEQwUnUpVUA1RERAR1BIOzUKejZHPGotNiYh
Ry1KQShZNkZ7N3RKVldHNEAkZGVIIXQwS3dzPHdKRGN2U2pZZzY+O1ZpJEJrOEJrMnRyOG9le3JB
Cnp2eWZ4d2ZeV2Z6KW5ZQVNadlNDJF4yNkhJSzBZUGYmNX41P01Vbj9gXyF8fX1tZD4mYWc0MEcl
cS1hYG5WKDV3Pgp6cz9QfkMjZjNsS0IrPkdQOTJoQzJCe29ZJGRyNjVFaCFJPD5MVHtFVXI1JXBL
dlU1SkNXX1JlQUxlOztZI2JvKWAKeiQ5K0hVOEx9JUtfNDd6Nlo7aHxXY3pUO3tFazspc2E2ank8
cCYtdDtPIX1tcVhTPm99YDkpIzxIPThMRGVNKVBsCnojazx1cnFsdTdsYWFYP0BJOTVEIU9kYVY1
N0lLXmlJfnt4QWhBVUkoKUBRIWR5Un5GeCplO2QkYntAMyMqO0dDSgp6cmZDKGYpfCQ3eyVMQVNv
UkEqNmI3NE1PJDg3WWVZWDtTaERQQVh8JkxGb1FibUptJUxqdVZCalpyR0M7QWZ8enkKemRrJWpZ
TX0hKkcoVHJeZCFuMWxDek4tcWFzfFU4bG9jSWNYOE0+Rn0xXjh9NmtvbF95JW96Y181ZTE5cGE8
aUZBCnpKMX18NTJ6Z2RBezQpWTttajYxNkFeMTMwQV4mZF9DckFGRHopRkQwbGZuJF51PktSc2FN
fUl8QXkzSHUzQWNBNAp6LW01PVlJYDY5UD5ZS2h4c0BVTTEzdXZhRXY1KzFmVjwhRCtpNDBNOSt9
eVVTZntXQSNQdHhRYEIpblo0dGc9MHQKektTIXF0YnZgIXhDZ0NkUEFuQFlmNHpqVUMjWS1yP3A5
PmJPUitYKlU3S1FCYnRpYF9taCo9ezc+eEFwOFdacUR9CnptI2RTSStYUjxtOHt6N2khN3NuNGVB
ZDYpa2s5bXk+NmlfNTFlTURoU3x4WSRrYGI1JjQ0NVc1WTZ6Pip3ciVCUgp6OURUaWh8Nys5IzRh
YX15PmN2PnM/Yz5TUUd1OHtieGcoP1JoTTBwV3ZGTSFZUj1BTG9GTE5LREFDbHBKbDxMVEUKenZt
MDUqMVQqKkRzezBjUlMkKmFzJV8rPzZ2LURCM2tqMjBxUHR8bCM/NztiVD88ZURPS0p9dGtjWlok
a2FgfSp3CnooVTVMeGd4XiYtcnxqSys3eUJiVnUhPSgtcnRpSTlrP2JjNWhNfTNvMHowbGxoYyRA
KV9eeXN9bmU8KHBCISk0VQp6PnhlQWJKUmZTUztsPjZVJUlIPXplVmZuVXI1QXN9KHB0KE83dSFl
PTMzO2R2dFBQYXI+UXppayZBNnVZIUIzKTQKek08ZHVtTHsxN2VZZGJgbjV9fTVxalRJXykxdWAw
UClRUlF9Y1hzOX5VcDMkYW1BJmdiN1orS289TXxmSjd6Zk48CnpwfWZFMWcwe3d9XnhUVnVTQnd8
JDhJYkFVT31TVjdvQ0lpPzV1P1R+cHRlS2J2dmVqMmQhPDY7JDlydkhCWSl7Kgp6TUZpJW5OMjtC
Y3grQ3hQX3NXJW07JUBNI3oxO19tezlLa0hnej4kTUFAVTh3UlFTTEU2K30rKj0wbHRxWmRFcTIK
ekwyP3o1VFAlaX5MJDZocWMyanwjYGwjZlRxPmxlYilRQmVJI3UyU1Rid3Mpd0ZxVX5Bcm4/P3x6
OVpLWENtQ2JiCno7UHxLMDU9JntYclBodDxOeG84WmdZVVpEISEqLWQ4Pml8PFNyd05ZOzZ3aFF5
UW5obSlrIXRORlk1QjAxTSQ0bgp6eUhlUUROJn1KQ1lCSWUqN2ZYSyYhTWd4bHRzfkZCPncrfn5U
VyRvX1U2a2p0X2h9dzB0NitrTlVURShUdDxhT0QKekpGbCVLeGIhVFFrWn47JUkjZDVxeXV+PzxD
RCgrI3IxanxeO3wjX09tU05pVDBqJV9QTGR2Uy0kRWpIRHZuVyhMCnpJfSFQenFNP2ZxcU54fF9w
aEkmfGdNT1NtRF9IPD9FQmJJZHRXV2Uxe2p0I0YlfiFCTkV6aX0/bThmbVMobnskSAp6OEJgTVpS
eSk/V2N6cV5MJGljPWIqWWQ9O21xTDUleFhMa15pbWNtdWtXTUglITVETVpTX01jPistKXhecX5K
VWMKelBHPWFqSnxFe305fj17ZCVYYGhUOVNITWZPLX5YaHd1SjB7Tm9tUW87Vm51MVRfc0xUX0w2
T2BeVil7JCQpPkZZCnptIXo/M3V6RzR5ZzBoUEhTSG5eS3E/aE03R2pxT1BzNkppSSh4aFF+b25Q
elUlcko9fDkyR0lEN0JpUWJaaSpKbgp6SHxCO3UyNVZsU0FjcnEoazZGRnBmJEdgfldoTWNZUys0
Tn5eQFYpNHF5NGdGSGReVGB0NX1qYSViPEhDY3RGZjUKenJ3X3NJXj17bUNhO3t4WEdwVil5dDxk
NEQ3bWFzYihhQytRS3g1I1RJQkNzeGUmaXtwMkUoJk05bipLNWAxNFA3CnozZ3o2NyhRKUkxbXdy
cnk2aS0ycXFqKysjc2MmO2gyYzR4LV5Ub0Q5U29vOWR6ZUJgSG4zT0ZmRnB2VTtGZ0I3fQp6Skh9
M2REc3shdCsrcGkwWExTUklIZHdJSm5SPUJIKEFnOzBwWChfIVp7flM2ZEUyK0VCTGZaNmMzT2px
c3F1IzgKekRSMVV6ZStgT2ZwZ0NzTzVZRVV6ZmRvU0JSdE9LKms3a3ZoM0RPak1JOVYrc2AqVllt
O3c0UUBPSVlGP3hOcistCnpsOTFfJislRyFWan5iTFNFfSVFWEdFRCNxZnExX3s/eSR3fCk7e1p9
dDR3UCY8SVFXN1BTcXh0UnMhVDlyM0Rjbwp6PG9GbXdKWjw7ZlQqdTA/QDdYZHA1bWlwajhabDww
RnxEbUJrfn1MV2ZTRT5eQjdHJjMtPyh2TmxGZ0RrIyttYFQKens8bnItVnRic1ppMUwpfVl6YnVv
XyFWQXYtRHw3e0o+bGxCLXltanBtajgoak02YT9lM2ZBRFc8Vm9taT89ejdMCnpaVFJHbmd2RWpZ
K3RnRj1NMntPU2ZhNTNlUzR3c183ISVxNjJ2QnxzKUJiOCFsMHR5Q141TTxxS1AtLUk3UUU1VAp6
Jj4rV31uTTtxLWprRHVKKXZWWChQdTZgRjd3dD5JbDxpUkh1V1Mlb3doSn5VMEJrPVgyKmNHKClW
WHRZOTdaVSYKekFGaHEyIzM8KkQ3SyZgeWFMZkZiNChscnZwKk9IQ1g3QztTQlpVQX1JXzh6PjtI
cHR4PVdyNFctaEpoKXMxTX4hCnpzaFV2IXFuRkwhQm4yZiZJNCEwSShyfFYoSi1lNGJuU3RhfUU3
PD1NVl87Iz9WQEN8VDZhOXhjOzJFLVJAMyhLaAp6SXdacngtTCQqaU1iLStrU21uM3wkUHoxO0pw
ZWleRSokbVpeYXs4ST0rJDtTd3EzPmJaVCQ4SSE1RSg4RzxLP3oKendfV3VlVT9tOWhqWkc+biQk
Q0Z6alNXK3AmKHstYVUkS1gxWVVFakRfXlEoISg9TEwrVkI7bDVrMmNoVSNDZ04wCnpaWStUSlVo
fFI1NytvRkRzUFJqZiFhb2ZuS34zTXxIcWNSS21FcHVJPjNpTVYtaDRHWVVucSgyYDA/eDxEU21K
Swp6Y2M5cDdBT15qSy1nZlhrUCZ6dnhmJFRVPmk2ak8tdzdaNVZ6Sl9WQTR9NE88Tz8xQUM7Q2dj
cHhUblh1cTRffWwKejlgSVVIWG9mT20/R0hfUU4zcGJYQHVoS281WFhkZnAqOXItNzJ7NnF4N2Nu
blZVVnlvYnc5eX5xKil7aUEwUUk/CnpLbmJTNnw5Ril5Pig4Rn09KU9pO3o0S04zamFtKyF7N29N
VjtZa0AlNSN4I3lKWHRkeyVoMFImKn5MS0Y1WjdLRgp6WEJeM2FOIShvTyNDTlNobWhBUXZ4fCgp
dyo3b31ZTF5fbzQxeD1vMjhheGs+Xi03fC1UaWwramsxNmRGP2BZUVgKemlfdChwVFpCUVhSJFl7
Q2YqND9wU1BfYyZgezNVTl9Uaz8pc2NaSVdGNHtpK0A/JDRfU2tyS2tfZXF3PWx+eW5aCnpKeG52
WnB6U2M/e3ZZaFohRGw/O0MjUkJ3bGFBUSYwLW85UmspT2NOKFlQS3ZoK3diaEhvNW4ra2EpeTl1
XlUjegp6UUFCQG53VmBpc3g7cDVHM3NuUjB4KmlkWXpIe1M7alg1ZkxnPH5nX0hkXjR5bE01entC
bFc9Z1JaWmA/YEIyaUIKeipOIyM1TExWKCQpcXljUk0ydmFrXkgqPG8zbm4xZXlETUVlTUYhWGhw
Wn50V2UqWDxjRHVFcHZneEhNTFVufmhDCnpkbkdXYnp+O0UhcWFhJTdaQ0woJHs8SGwxRiN9aHdE
WGNVRUhnPSVvRTIyZnd6enx4UHImZVVKY1M1RjBQcCpoJAp6Nm1lVHwjbH5BNWRNQTV6WXVjPWBD
alhqP0hNX0Z6dHpBcXQ0R0dLRkZTWHM/WVpkPlVfKjVqRUB5QHh3Rz1ecnYKemBWUFpgdUZXZkBi
fiprfWdXcHQ0K1BmPjAqUiZJU2BPQD5keFJKb0hNQUp6O2N8PChxOCt8VnBEYFZCVyQlTFp7Cnoj
LWJ0QVEjWn0tPDRBPU08fHRiWXRGb3IxOEhkfGh3S3FzIWgzYl5ycnxrMjM2TlheaEArbiNxPWBY
Kl5LMlRlRQp6RENwZiE3cUIlPnJBKDk+JTdmWXx6Tys4OTMhV1FsOWRadzVkcmAkLUA/ZlY7WCgz
SGgxJShCLVdUZDNzTzNJWDsKejlhKVRZJkMyUHBEd3ZAYHg8QTR1e2I+WHJDXmI4bi1PdjliTTNN
SDVKMUB7fjNaKyRoYTl7UDN4NTBQNWlJfVEmCnp5JTNabyMpSXNwPGF8U2NlMXlTWXlxKD5DWT8k
TUtyYTk2PnQ1S2I+RT97SG5lM1lVPGdGcVUmKEk+RDFFVHVHZwp6RU1BNiRMWkNIcmU0R2A9PCRf
cFFfay1TMDYhNHZ8VGplJlAjTD9mY2IyQUg9cjlFVUBsP2g/MUoxa1U1Qjk/MVMKelRwayVhe1BD
fXE0TXNueV57K0hFZHt2fiZuQEo1UzhzVChKbHh1RE5zNV9KTVFPM2F9Pm5hbFFzQEJqMng5en5e
CnpCJGI3dC1WO19iVVomfGJ4Jm9nfHZMS2h1O319JnRGT1Z3ZHsqfnNqPUo9SWF6NUoqVWNBJThl
Pz9Ndj1IQSkzdwp6ZTQ2PDVSY0d5Pl4wKGBEPjBIOzRfJGVJTiF3NXA9T0JZPnhLXyp5VTYqcUp+
Pz4mcEYkVytaflhleCFvTSRGZTEKemNsK1owRz4/MiU0STV8UUl4PFV4d1kyRE0yWkNsUUtyZXhl
OV9uciMzKHZNYzgtdzFpdnZLfUMoR25sclAtJUd4CnptdUg+eENHZyVLRlA3Z2NJeDNLMXVYTkp1
YWZ9YE80SGJKbW1nY2hle1NKZUd0YUFuIWV8dV85M1lWMTRCJCN0cAp6WjlRQ1d8SjYkUGV8JU5+
eFQxKEVtUHNtQiRiRiUoYDRnajhGY199UTYwVHo3KkUkZTgxNzBAJUxAO0l+akBRRCgKeiNfYH1F
Jno9anEmMWs3ZHZQTyl0Tk0tJnxVaGleZnl3ejsrPz5gVFpRKzElak90X31IY0h3QCYzcEttc2Qh
JUE5CnpkTUx7fnR9P2JpPXQwV295K3loNXp0e353M0kwRWMtKCVeZW1pfns7KThEZG1Dakg/MzlR
JGVweiUqNFFPfnZ2VApIdWl5VTw7XldPOwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9wdWxscmVxdWVzdC5wbmcgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vaW1nL3B1bGxyZXF1ZXN0LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWYyOTNiMjEzNzcwNzhk
ZTY0OGY4MmUxMmM3YjVkMjc0NWRhODM3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNzAzNQp6
Y21iYHUxeUVkMyg+NiVaMDA5elE2NVFQLVNPVVE8eEp6KCU4OVdmJmVRPCgxMWgpWUsxaCpncTNf
aUhLPnJSc1EKei1MMCohdylXcUBfRWY+U2JMWTt2cn5DQXx7cSltKSEjXnVaVlcxSkMhTkl7eyRW
aCl1ZnJDUyFoYUdwbmdvcGlTCnokI3EoUmJ1VjAwcXtRSD0jQF9EMkp8SjNyUlFMITdSfStpPUBD
NkM+OFAhbyorWFc1fHYqKnY+aSsrYV5RYGt2RAp6Unx6ZHdSUj9vZGsxeCg8YUVAUUI+fEkmeSYw
TlgzUz1tezYlemA9MTtOVSghJGI5OyExfjUzeCFnOXB4JilST1gKenU0ZVJUJn40RCZFKm0hUldi
JU00M0BzbG1Fazh7aHM9RnBmWDBed1NOLURaTHNXY3tIeE1LXzJlJEdAKT10WC1pCnp6NnowS2V0
IUVBSF5aTU1AWGQzTzctRWVYM1BuKVJaJGtoKTs+KH5QR3xXTS0/X3pAaDM2RHAhe15tdkFNSGI3
Ngp6JVZnQjJrN34xKU1RejNSdno8cT89ZjEre2xBVTtlV1B5WFRkZU0ja3J6Y25WMENANHxwYUF0
SCtuQGRgX1kzSVgKek9YNnRCTDRRdWJPKEYmbntPTGNXZT85cjVFSTRWTCo5TCFqSTRrKTc0dVho
UWVOPy1Oe3ooNWFAP3o2JGlQS31BCnooM1ZCRl5CNSRRaXVfYG1QUnE1UkRmaD5CejR6MzU8ZTtS
dF4/QWgtJldGbS1iIXNHdUBeeipPTUl+ME5URktxbwp6VS16UD1eIW4/OVJvSEdTY052KX0jRUFr
blYtLXJoN2luSihyVDVlWD0wNS02JihQLXQ5Xz1TNyVaUSFvcHQxRksKek5ZRmk0RFNIYkNXMkRD
YVlHM1FeJVVqXk0/JEByRWA2UGw1eVJsQ0Zwb3xSVlg8cCp7M2BePzBNdCo1PUprP2JaCnp0O0Z0
Sm9fRER6MXA8RVNqOT0mcUl8cj53bTdWblNNKmlOKj5RSCkxNFdnNDs9WGlRRjZEQX4yWD8yITwz
e2JlMwp6Oz8kSHB1SyMrWEIyJk1FdEdGMFdrVG5BTk0yQ157b20tNnE+RjY1fCEme3hIME04SFU+
d0h6JT8qSGJHSCVsYCMKemE7R01ybFF0NyRzK2UzI3FXVypGZE5VV1ozJnFHXiFMdnV7d0dWfHAz
X1JYZWV1VzdYbGlKIXBeciR6MiZgNytACno+WEYlVTN2eExQbmZ1SnluJEVJe2s1VFU/bklpfHdn
PUVhTjIxSDFOSUB5JTZKR2VWNWUzUFUmeS0zaSsxeVd1aAp6WjMrZVJebUshX20jSjZxcVopUFhp
ciR+UXBXfSl8UTc8WjIycjArZG56Y1piT3A3V150XjdQP0k9LS1iTjY7cXEKenY1WVF3X3tCKiVL
ZDhMKj1Ce0E8cTA/SWJ5fnJiT3pGJDgqRTNzKyhialEtJEdsMUZhJWF0KzJLNSlTVFBuZWk+CnpL
cyMwU0h+SWVNe3lXdn1XQHdTSkheT15gUlk2MV8xenZaa2sqNmlKYHZHfSNtPzNoSSE4VGI2e3Vf
X3Rta04mTAp6dG1XI2ExOClhfExOR3gqQHQqbTE5TD83M0N4QUQpPzlpRSgzPEw9cDF+d350eF59
M0lmREVoZG9HcGhlY31eLV4Kej83SDMhP2gkd01TR2Boe0ood35iIXV7Wj1uSiYqRXB4eEU8QnlH
YFJha2NnZmBvNm9HJSVzVWZYRlUjaktIK2puCnpic2ZzVGdgWikqYDspcVJvWVh4PF9fdD1ZSVQy
I0UpMkNQMkQ9aGNjSDZwKSNZMlBvJCRQUVFmQE1FY0hte21tagp6eWVQNyVWdmsqeks7fDhWc1BA
cGBlYD5RcGdObWF3eyRBLSMwaz1zK21KfV4qWEI4M2F7WEVuQ3swNzdeUilYT2sKei1JRE1mdlVE
RXNTPVhGfil8RW9UOG5yZWRualRWfXlKWGV8ajdZU2dLdCpSR3chaF9SelgqP1RQNUdeNzVtfFZ8
CnpgNXhgaSM+YGhfdH5DfWo2RnZHSEolI1FAPGkqVSFsK20oUnd5KCU3K0ZeJSNlNihZZy1veEFC
cjhRMUFtZTw/RQp6NlhTfG5JYG47dXRHQ15TTnZuJlAqU29BTmdIMUBebDBFQVUkSTElYzVBVHd6
anA0WWBvdTJqI3FuK1M5S01aWVEKeikldGRHNEg0LX5FQ3Y8XkxxOFVTay1tdVZLZFJ6LWI5MWk7
cCtYP0ZoPD5TY3gpPD4wUWleX3NtUkNtbV9VeyFNCno3bzBNN1ZsR3B2RSlMKFZqNz1EQTQpTkx1
PWRYKCpKfTZ4Nmlqal58I3w2RmZIZGhzRTNnTXgoQEQ9RSsybiliSQp6eUR+IVhUd3pVZkwmRXpf
OXk1UTxmLWYlVERwMys3T01HQ34kZT4/ej5IaV43e1E8PGg3cndMXmYzRUFZbFkjZSkKel89IyNN
OEFMa0hNSSo5NHZ7fj49TUJ5cHo7cEw5KGJFJTk9WkdeKlBKYVgmbTg3V1M3b3loRUklVUJjSHhe
NEIqCnpUNjE2U3YoenteUnU8d2olUClzUWdFVTdxPThXOUJqMlMpVllmQUE8RVFMZTJTXkpDb0k/
Z0gyPG5WaVV1IUsrVAp6REQ2QXR6TEQxdzYkSV8/ajlTO3dwMVptbVc+b3lidV5DNktuX31KPEo/
S3x4dnhwe1lzNk9nXyZtT3l+KUxDPGgKekU+QnA2RVp5WE8qMlFQMXh5OXJNYCEoU0VHcXNpOFlQ
PHRrcCFWan1oNXJmJGE8PGUmTWlRbk5pPlBkJk8tO1YmCnpsS1pVTHNLdH1fUWVAR1RBYmRISSVI
V1ZxNz44bn1tcCo1SmhSdSQ2QDBLO0c7NDN+bTJ7NDZGR1ZoNG1vcVRBbQp6eEFnJisoWnJCbVlz
aT92bVQ9QEBFPGFPMVR6RldVPl9TUVRhQUxKajBLPCVpLXBfOyVSVyhpTWJNbFdocldWMEAKeiNk
RFFMUFJSWEw0MWQ/TzA1TmxoWkprTzZgWkw5QUJUayE/UXVJcCRQMWMkQldqc0ZWeGBybkhiWD80
aD8xMDl+CnpadXY3T2RmWnhoN29FWEtefWdfVkd3V3YqWmZ5eElzfW9NOHUlJTVPe1Z9X2tOaXRf
bTRpI31WSGYtIWk/cHVxcQp6LWZFX0FNWU0mST8+Z0AhWUdqcTkqSWNzdk1mKUhJOzlqUX5haUBz
Z3tRZjwpSjd0RTk8OCV3Rj1LXng/OHw/YDEKenEqbEVqSEtwejs1PGZybkdkcUhZTWppREFaTHJD
RHpHXl9LVUpeNV9jKEpmcVZaYGFARzI2JlBIcW9aZD4hezdECnpfRUAjOEEtbWh+aHB2cm1Ic01m
VzdhOSg4an1AJW88aFlZeXQ8djZFKl83ezVeZGpIWXtLc2dxQGVRbVUxVSR6YQp6Kz8zdXtTaE8h
fnZ3akBXPklOPVdQZ2RIcGhtUXglN2A3a21oc342Wi05RDdkVVkkTW9AKkx7KkVtJUhRPTJJaXAK
emZBIURNWnt+TmYoUWJCOFc3MldLN0pPfVhkbHg+QW1kK3JiPSgrVFhVTHNQJTF8dSRFUnk2bnVf
VkNqP0c3NjEmCnpwJVlvTXlIdHQ2VzdnS1I3NVhjXm1PcXhEQ2JKKyZKKD5Ld2htVzk/Y3VsV2Fx
NEA5RHRBcSt5JDZ+eCsySHk5bwp6Z1RKP04rc3U3WDdXKHVmdD1wU2FRMGYpRHRmOWUtWV9OLUdr
Rl8jIXNWe0w3Pi1oejJKRnEtfTR4REtQKXBXamwKemMkKXJyXmJ4PTlzNl9He3o4JmZgRT9jfUwo
JHJ4SV9lKzFeTE5Zb1VgZCV2SSY+Q3A/Y3p9ND97XzZ3dEVZZ0taCno9QW0xZ1JAMEtoK2RIMk55
fm1RSVFGbVlTenNzO19RRnsxJDc0PlhDTGlZRWs/WSZSIStPaTV5TVN8T2k4MkhGSgp6S1QrPSsw
fH4leXtSeiZnXkttYS0we3FARDVIJFI5UmB8TW5uWF9+bWxTSSNnb31SR1FfTGB+VE10a3RuU00h
JVoKeih9PjVxQEIkSU48QmMhZzJLOFVZUFRkJj1ScXFtRnQpSzhAITF+dHlyfX1LUXZ5fC1eX2gt
SEJQSjRodVJEenIlCnptNHJaRF9Cb3ZuYUJFS0dCSWEhN00qWGlQUzszNTErKTZ8fG5sQW1mNnNu
Sl44YC0lS1J1Vmw0T0s/YUA3Ykhecgp6UmApdSYkLVN7by1KI2dgbGpXbj1WTWIxckpDIz58dT9z
aEB1QWF0d00yJDZ2U19ndSZuIVpsNXlNNU1DOyVaJUEKeitsQ0ByTWohXjJ5Ujw0XiNgZzs0IWd8
ZmBOdEpHJkp8dyEwN2BQTWRsK0Jie2FmOTRBdlZlNiQpa1lyTDtAJUY/CnpfVExzUy0rJVolKHxy
YT04IThAYj5WIyleSDtaSE5paGtkQl9jJWBxKzs5RXs4dHt1TVpucjFjRkRmWno2ZEBEVgp6ZEAl
JVI/QiNWZ18rI2RhNzdUOD9mSmckdUhFbXlecTIpSV8/KHtzSyEkMGIqMXF+e2s8VVNGajRhNXR5
TU5jNzAKekBrbGpFKmZjc008ZCRNenkzenFESV88PGhKYSpOIU9+NGhKZnZETTNvQnR9Z2JlaXJy
VEI9I1dYVFlyPWorem1UCno8cUNjQ1QmPlJfZnRRUzxSalpzRS13S1ooJD4mXiRZQFA+KnRYYkI9
cVEweig0QDtQOT15aGM9a3clcjRqaU5EMQp6T3EhJnFScGxvMmsyUSg+I3M4WUdCZzkmQl99O2k+
UWhqSV4hdklraVZKMyV2YkUzd3BBMXB1fCFOU1YpNHhTTn0KejZWZTNebys8T1JgRmI+MiFRbyUw
eG4pa204K0M0akVNcy01eThBMSRgK1VQX15veCRORVJmLW0/Njt8P0RfZExVCnpack15I3hNMUcq
RjZDY0N0Nz5EKVFQWkRvekliQmFiMypga09tTTIyJFo1dF4lMk1TaylqeWlgYHJxTXRVIWhyNgp6
QDIlYlI9TFlaUl9zezJEPGc0JjVUJjVMMUNJJWpTdV8oMiY3VVR2NWMxZTgxJHR1VVdHLXUkcyV7
YTxqcFk2bXkKenB2cD4yP0Q2VSFBMUBQVld6bmhnTz89UyVvLT1rTyFCVjRWUWI5ZClQfn1uWiR0
dFpncDdBNHJhVXM0YVEoN0k1CnpjK35rVkdsZktWV0d2S1k2SXJ6TC1CRWpeYjFAXnxrNlhDN19p
MF9ueENGUVpwfE1FVHteN148TCNZbk1NQzFINAp6OXg4T0czKUFRTl5mSVQ3QUxmfUFDbz95cSRv
eGZYUDw2Nk13N25aRGMmI1RZej1PVmghe0h1KDZ1TVR+ZT9ZV3sKejtvaGBScTIjI096VX4/bVZq
TVh2aX1XbFRDX2tnejhuLSZgZ3AwZHp6WCE5PTwrWnUtOEZsfmBGN0NqS0YtNSY+CnpBYUdyKzAl
b0FEWD5ISHpCJHZkRUs+YWFTYihgNT0/JGFUcS0mNiZwSTg9SnAzeFkleGhgcyFnakNPe3xSVWQ0
bwp6WXhYVUkpM1EkXiNAKEUqXjl7WClTentkRG1ocjwoYT1tM1ImKDxLP0d2IUpOdCt3QU87RGNR
I3JjMzxwM3Ajd1YKejZZQGtBZW5IbT00UW4qWldNOVJUVzswMjQmcno0c1NfdWlCeypfKTxFX0Zl
ZXJ9SzxIOThOSDQ/JGJoREt1PSErCnprSlQjY19Bbn4haCplQ2xTcmtyd2Q8ITFYbVdsYD54Y3Fo
MGl8I1Q1SlQ7XlpHWmU2VnE9WUlxX312KX5fNFUmbAp6VU0wTDRkKSR+JXo3dSstUThqTVI+fXJH
MT5DTm90TWt6dylHYztPI3UoZD8oJDQ9aUw7TkI2RnZhdFlmaiZ0OVkKekslZjVIRCZ+aDxERnJW
SGFVbU1KTDUxTklqPEJuSUIwRjBGT05uISgpPjk5ckN4KVhfK2JeKjswbUI7b1lCU2NTCnozJmhV
Rl49ZW08OGk9QkNOXnwjQEc1Kl9AXm9Ad0Y+QnB+TXZPX3gyaVBtcnF0SzBOdVBIeT9Pc3N+Pl9F
cT5lTgp6PUgrOEM1QUVvZlo1O3RXYHpkSWdVZT9ZU1c/TFYhWnJpYF5vUXNyZmc9a1MwczN5N2le
ZCZGSXAhJWk8LXY2PVAKekowKnFtTTBLRDIqcHFSIz5vKmRLeClRRkxScCpFT3swb0I3UENKNzFz
VHxYJVk3Q0tCPWdGdiRZOUVsNiM2QnN5CnpHfUAxVHAwei1jQ0ZiJipTNW45fU51SiZRY2BpbEZG
KE5gTz9Ic3k9bmRfb2pzcjVmWisjZHZKPm4+REFQZCNleAp6UlNWe0pfdTtgZCUoMUYrYVcqNSNL
VkFeOXgwUHBeO2pBUVdoXzJRZlhqLTIoQ0E0VllaeC15SDdEN0dfMXJiPDkKelRzaHg5O2FxelF6
aW4yWEojSmhjZz9jSFlmMiV+YllLO3N9N1IlUH10RyhWRnUlTXtGTSE7eEgqXkRnS05xYUgwCnpB
Z3tNd3o5Wnd1NjgzezJGXm98PVlhWlNEcnBAWEdjUndufU5MMWlCUm9oX2hhfjBObXF5fGVkVXNi
dHxSMDMqMAp6aE5ASEIrJGZ1blZVMXEzZHB0KGE9dz5DeExFVFgyVk94WHxQOEFFSGs1XytfaTwr
Nyl7UUZWPW1wMiYpRTVXYXgKem1TbyRzKzhuaj4rcEVMJkc+Mjgqc09BWmEpfT0raEhRUlFOI2k8
Kz9kVVVYXzRUJU09QTMxd2wqNEJDTyl1JjlrCnppVG03WWpHWW9gQkdie0ZTZT1iLW9UajBoWHg9
Rip1K2o8TWtkJVZAPHlhVjVYV3hpQzUoPGdmNj4odWNpaDZ5IQp6WUQ/NlRuPWBTPkdyUj9HajhE
RmgzQ2E9OVJ6JHlaNj1iViUjJkYlRD9EPHEyV2Y8fXd5PVIkX0dWOGZCWX1OOTsKekJrWGtDLU1W
UitkdF57S3AhVSlHNGpBMj5mU2JLaCF4bjBAZmhtMUUzM25FVEctdzkhOHErRXx0PTtkbmRDJFhq
CnowZm9xO3JJS14lZEw0a3g3aG08JEVYcVQyI0RDYS0pP0RzLVJuJTVNWmdlSzBOdnJzaWBKRmQ+
UFIpcSUpUWVDbgp6ZyFSSyo/VnFtKjN+YkZOPz1NfUJlcm0yQ3hAcXwtYiNMP0hOc35OZSRNM2ZC
cjNTYkhuWGh3dkNYeHI/eTN0NEEKelpYVihIa3dNS0FkLXFyTU1CXmlQMWBuN2ctTHt2e3o+JHgw
Ji10R243emhvXjtVPHdnP302PWVQbzAhVEF6V0o4Cnp0TE02WXU0YzhjMiVIUTROK349a0JnTHMq
KWpZJkdDLWBxe3tfYDhjfDlnPUJLTys0JWEpMVZJaz1CQlZaR0FjZgp6eU1DS1UqMnVeM19eVWNt
a3g1JDJCSSQoP2Y8czB4U3cxITMpeGJBfnltPkFSWSU4JmNsNHUxcVZaNDNrPW1YbiQKejBkNWBs
dCp4cl5SWj8/e3B7MVBAYUt4PEtfRURyWWo4WFdTXzdUM2plRVQ0ZUNZZlhkb1EwXm1uY3I0YXM1
N3IqCnphb0ZzdGJid19EZk5uYTUmZ0MkczNyfj47KEVmXkBwV0ZCdTRBZUdGYHkyJTkjenBAX084
bCZFZShvK2A5fCRNZAp6TDttJkRVTm0yVUZnMn1UQ2s3fnVSPjF6dExIdytzQWNkK00mTWM8Wil0
Kmh6QiVmPXsqdFE2bl9TTztOeVl0eHAKenhOZWF9S2g3SkZCazxFcz80PT8mOzl1YkZsY1AhJVFn
TlV5eVQrJjZgR3Z1UFEkT25xeHxfaFQqeCVuSDAxZTB2CnolPlVMfThER2w+RHB8MFV2S3w/P1Zk
SlpNUzEzMH5nJXQ7ISNPcnc4clFjMHIrVmgmXmphIWY5dnQ8dUorX0QjRAp6d3lYbX5tK3VnRyZk
c2JFQiFEY1pwWnctdHZrSEZ9aj9KdXRHQyM5TEc4Y25TJlUqekpPRFNnajRiQDA4bjJsfFUKekkh
PlA0aFVaNTYmMmtVJVhzVyZLY3tvfGpVITRBLVVKQnY+TDdKUE8yZ2UyVy1SeXVuZUxDcS1efmgo
ci1PamIlCnpweEp+V0l1QVlMPUxnVGBlRUorJmV1dDtvQCVpQE5te0JHaDM4KnsoYXcrSypiSTU8
WEd0fGN9bW5XMzBNQXxhTwp6PkJSYiR8SjFUOF98NSMoMFRFaGFEYnMlSjx3flVGdV5TKEYrfGIk
Qk1HJEN6U2lIP3Z5M0N3MzwjQGx2bGRPJDAKejVBcGpRcH1BNU1JT0opZzcjZjsyJHk/NzRAQV8w
Vk9vaDkkQjZYUCUkeXw1ZSs9ZEhIOSo5O21HPTVudlo4SChFCnoyenNwU3NUY0tXeEtKO3UoKDlI
eDVfQTJ0aF40Zm9QYEE3UmR+eylwOTVYYkBCTlF8P3h0dXI1I2NuQXY/aFo5bgp6NCtVfGJSUkU8
LXkwI0xzaXZ8MXFEdnZ1dVF2eyM1WFRPfG5XbXpqfTAkelh0WC1xN0FMNnpmeCFPS2ZkZ0krXkcK
ekwoWjZ2diQwJkwhOHxjKnVGejklM1p1Wm5wcFkociMrMz84UD9oJVRCQHZJX3F4RGg1PEN5Q0N5
RiFZOyNNWXxjCnpvN2pfdF4zU2ktN1pLNmY0JlIqWk9SI0NPejhfO2RCXzM7KzImOWhCM0xUYGZi
RiFAVzNSUW5QeHFZaXF0PUQwRQp6TyQ0IXlGO2BrU0I/aClxUEVafEZUeEF5OXA3VHg8QGFQeyQm
WV57JDsyRDZwQUQ+S0lnajw1YTxAWGleVmBVUFkKeiUxVHZuLUV1YXpYRD9edTR8dnpFQi1AQHB7
aUR6dntaclJeRT5GP2Y2dU4kPkM3dzdSdX1KMTReckt9S1FxaDdrCnpyU2JgNyh+fDAobXQlJmg0
PklxZ2Z7ZHtZWE47USFGTzklcHt9IyhvcEkxeWE7PVhBPDU1dC1PJnVGTVVSTE4lZAp6MzNfUmI5
aTdIOXUxPlE1VUJuMHZpX3tJYkJuPWVLK0pOK3ojNEN1T01yRkdVKTtTM0l7dD5gJWpoYFBjU0Ry
fXsKenJxPX5DWGlPWWtfdUszQXtwfWhneD1qJShEODR+RDlIJiF0XzQ9ZWFyfHZSZCk+I0NCcHht
fDY/K0Q9aG9HRXJpCnpuaD12Z3JHKGIkOXxySjxmQzB4S0FfN31VUFhKM3lKNUk9WFQxIyRTTmFE
aEFRJSNsamh5cHUpeEk5SXolOT1QaQp6XlpgO3o7TGFtcndQSGM3PH5fJFV1dCZMQiU2dyYtM1Ni
O1lzI0FFRntIK1AtXzNEIzVqY3FGJjwxKX1PTnRGM3YKelBGJUhBQS1vUCZQZT1KSCF5KzRPdDNN
dW1ERnRuWCRKZ1hxKTtEcUlSNjlwd004QVlLNnI0ZDI/MG55fVVZcn45Cno5NXJ1ZkE1MHZ2QnFT
LWpDY2lkRks1eG9BNCU2emlvO0prK2lwVmkkITg4aDYkcl9nQV5CTH0kSXp0fUNzUU9SXwp6RHxN
VzwhWn1VLV5QUW8yNkpaZVJYXiomZT9GP2Vwc3YlRkFvWmk3fihwQnQtZ18hOVBEa3tqakojMmNp
JSVpU3UKeiZrPjd3M25aU0pIJjEwWClxJlhWQV45ZElTS2d2OSNsWGU2IVhgYDJkMj9TTGJWcD1t
d1pTJU9FY2FPK1AtKF43CnpYa2dLPl5LKDxnM0FzeWxsfVI0OVhKSDEmV1RVQTkwTlY/JnVCO2Nm
cXNzckJObENob2ROb1JWQn5vY1BiUFg4UQp6KXZqeDQwZDcrdSYmU00pR0EqeDUmPTNVbSRXd0Ru
KUFHQl5QRzFBU3ooKEU2KT9mbENzNlVkfXB6by0pdkJrY0MKejdMT0dhckRiaX4rfkRkRyk7P2dQ
WlJ2ZmUrWlZjQFpeQ2wjbktJZlNgPExlPlp+Mjk3RmVUPWg9YWNSVC1OZmQ4Cnp6anNWeiFGbipr
ZU9ZUHBNLW82PlQ2QX5oUWc4VytvM1k+N05fYUIrZ1ZoZ3B4MXxTbDt7MW1xKTk2fVRXWXw/LQp6
UVBMckZwY3t1Kk9tJTQ4TTtXblBmIV49akUoTz4kWVghNkE3YEx8PGo/NFpHMX03YztrMjsxa2Ay
UnBFe3x8cmwKenpyIyViazNyc3UwfjhiJHVQIWUxK1QxSk97aGkmZnojeURLSSkoekZVI3xgTF99
QUNoJmp8bVh6ais9ME50JUJOCno8ZiUmUDlZejY/WmRRSkNfVilgb0x7MVNBenIlU1Imc0I9WGxM
WVUtQyZAQTRIKm8mcmcqZ05NQUYxO0hGYEBzdgp6UkExQV5IYTBkMjwkeXkxXipBUkU3QyZFRXUl
Y0khQFl6U2ojNExDQ3d3MEZkJmVmUG0jZ1oxWDlJQjNsbEtJaGQKenlALTMyb3s/ZTJUZnAqXmd9
fjBxJWo8ciZBKEl9QVNnKnZ2aVNkPTZ5dkZWNzBEXzhuXyZaa350fWVRVDg4amQhCnpGekVSKnc1
UnopQWhxKytxUUQpej5fU1dvQ0sxd0NGJElPX0pBWDBEOU9MaXBBTFErcVRIUExRUDlxfUZofXJZ
PQp6XkM9VkRjajcxKyFhMmpGKj56THp5VVJoSyVxQFAzST9Ed0pNMjBHUGpmOH5jVG05X0dYPC1A
PihLeSpyYT0tbUQKemk8aExfa3NZSllsWiRIfilpfXVjTSprfGQjflZ2RDJXdEUlNVB2UTVUZVhK
TyF5OzBNa2hJUz4kNXlYOUc5Kk97CnpMRDJXRS1YYi0raUIjfEk2JHZ2QFQ4PytlazNwX3FePCVP
eE4/Rk5MRSQhXnk1ZmleM0JxQWooTi1lY3dHbjE2PAp6VUpUQDVtdXZQb0h0X1gqZ3pJTWxlRylT
SlpjRGpyNHI8czVqVElGV3IjZzNtLTVuKE4kXkQoYiNFNmg8Ul8kNnMKejxuRWQ9UiUyOyZZbH19
LWRSQDFUa0J7Qzx3KGY+OXxMZGNyYEZXailQVXA+dEN9JUR8YCRyU29fZ3JZeigzdXw1CnpUU2dM
KTtAUWM5c0hxZnAhbm1DbV5Mb3dZY0lyaiM4YFVpP2wkR1RFPipTY3AqWER+R0U/WGwrI0xEJH1v
UkomQQp6Nj1LM0BtVVBTPChTZjNOWHUyalI3YiUtOTlzfllzMUQ3fUhGPTQhemhoWVFGNFp4S3M/
eGh3YTZRaCp4WHdAKTwKelV1c2FqaXZXQihBJEdgMT51c1QpYyR3UT8pZFVvSThaZzw8PSohb2Fa
fXEwbDRobmEzTzZ4QWtTZjZGXk1uMihlCnozKWEqRzdII1dleHJLayFRJiVfaDVCTHFaVWdmZSlJ
OUdKfSlwQ2lPYk5nXzlBWHVDeyhpdCM+a29fYlpvZSVuegp6bD1rcFpMOyhpa2pRYlFzRX1ZMXJY
OCFjPkt8b3xPZiFMTmw8ZSp1LXB1V0Q3bE9PR0M2Ml82SEA5b3duNE1leW0KekZTaFpjMHdDWC0h
UDJmQzkhLXNud05tQFQhJmFlfjUrSkFzUmdQQmtkOytrNXRmTndZMiNeVXFPQ2hYYldtUDN+Cnpi
OXMyclYtWEQwXjFFNjZoVj81fmNyO3ZtQChhezReKF4lJHJqOUs+TyVDfDxUWm5UVWtKWiM4dl83
Q2JmPDxKRgp6cHdAdkh6Sm9CT2wjd0dlZDtUIWp0ZmkkVGNoPCgrUkU/Vz53YEA3UC1gRTlNeGo9
U2dxVTswZXB5NmFneDJyemYKemJIMklfS1EqKDJgWGw8dCQyTyE/O1AzPURZUHpuYkg2YzJwUiFk
V189XiRgKnFsOVYkK1NUdjkyS0k8fXRyP3RgCnojO3s0N3haZHVmQU4jdUA5ayh1O2RGSTdKdzV4
JD9WUSg2Ml48fk5sX2RfXm5oZHM4e1B6Kz80KzZZNDRCeilTRAp6V3deZF57YlZmbklgcngrQm1R
OTwtP3lJN0Q8JEBZbFJucF9fY1olWUE3cTNPMT0lLWNrPiZ8LXVqWHdZN0t7MkoKem1obnNtWTIq
OD9rKWpNSEkmQGg+Rz1uP35Laj5lT1h6amZlUWY1VVZBIykyITh6cWpJMnsxXj9jYF4ycUVadUcw
Cno0en5CcEhMRHxoKDxnUnhpd05AKDRePnxrUElmZm1KOytnRzM+S3xjQmJKQClgRFU+QTQ7Q34z
SXchY0lCRzVsNQp6RlN7Uk5CJl9ufHhkeCpWRkFGPFY0bG42MzY7KChCeXBKTGRxa1h2bmw9PT9z
PjIxY01KYnwlMlpadyg8ITtYT00Kemh7WitDbUEkLUlLQW1CQj89K0QpTFhzVkBEPHhXVDZVdUU8
RzVQR3JfNTA7dE8jUHcoZ2BwRiRld1AzM3RUX3dhCnpoUD5NIShNLVEhcUJ8Yk42WVFESmkwX3lg
V1lSZFc0Ryl0UihXODdMO3RhczVgelVyPTV1NDFoOHVmT2FrWmEybwp6M2p8VjB1ajNGKUsjXmc+
KX5jc2NCUkhJejcxZWJ7dlNlRSFWbGM4LW1XciZnJl8pKSlBWEpTOzd+djttd15mTzEKejk9Qlhe
T3NhVyVQbiRtJVUmREokPmk2V3JaNSVmS1NSbTxoaFAySClRR2VkRDlqUE42PSZKKnlyYy1IZUV9
e0JPCnpZQVpDIVR7b0RSPFchMmc+Rnx9PUEzdnJFTUdPIWY2Vm48KigwbFdldCs4bDRYQ2s1b3BR
UU4yPnZ+bncqRz09Iwp6K31uMkgoP3ZqIXozV3RGS1FnMm9QakJia19ZJXotWWJUWkg3ck9AWDFe
QUs0YDg9WW0rQzkzNDEwRE0jb2BMSmYKemNGKiZvbzM0MDMpY2pYOXtpNVRuaW4+TlY5YmFRWTFZ
JSlfJX5NUDs9ZkQkaDQyT3YjQDUkTSszV2BCVkpwdlZWCnpfPyp9TlNlOVZwT0RiY2x8NDd8N3de
JiFaO0gkekBAeHErPTYoTWhGUUV1KitPZSVMJT1LZEk1S345YUlJajJLRAp6IUtrYnF0KHpWMT80
bU5hWGEtNTs/VilDN0tjKmx0UFVlWXBNM0U3OEtiaFk7eE0lfXtkJW9PSHV3SiVHLXotXzwKeitU
OFUrZXJFKXBWNTFjMk1uOTBkQiVUc1QlPihLakM1RlUjV3x+RVZVa3pEJj51P0tfPDJ8UVlHfEw/
PUpkNDNlCnojV2VuXnVCbG1tamRUIU1vXms1M1BnWUZQTHlHVGVGU300OFkpUTVvQUReOFBrJnVe
blNSSGJzQlAjY3NsVGZNbAp6V096NXd0bX54PVpSMXN+JEFKVyFpaXZVbTwjZyRENmZTcERpTjVX
VEhxJHF5Jko1JktEfFZ4fjAlQnJwPygkY2QKem08amRSeTFHYDdfQHNjXkteKj5kb0AjenpLfilj
V0pLN1IlWCVzUHZXYFdTT0BnVn42cT9VODtlcU1WZjleWjxMCnpVdCpWelhndTlfLUVJdTZ4fno9
eEcjfEBwMmlwTUchSz5NekxaZ05LYExre1koayokNGFVQC1aIWBpOXdPe0NSUwp6NHtvUHsqMCsm
QSFqXyVYaEYkMmhHLXlQMil4U208KzFlT1BFYjIhPVlJbGgyV3pGQkMxWHUpYjIzV2xzWn4jRE8K
elZtaEVUdFkqRSNNX1FoJW9vamY4aVg+NVMpWCslLV88NGV8Tk94MF9hRn1mVEZ4bFA7QSYtPnl5
KWUmemg1UloqCnpaRTkqdDlLcG9XdlpTTnFYPV5tMj4/QlYtcUpWbm4xN3JnPWJGTXFHOHRBOFBY
dmNTRGVqdTBOQCl+JTtJY2pedwp6bmM0czwhXkkxSWZuUjM8OHI2b25aNFRrSks3blV1bWZPOTdu
Q2VpeHsoYjZ+PmU/K0dIaz1wcUJCRVl+YlkxenIKel9RPTI0bzlzKHNnRlVMV1k3OTVkN1JPbnch
Ti05bCpUciFHcW91fE5TaEY0M1pIZ2lUOUU7NV5OZDdfeUA+cit6CnprRWlTWGByfV4rRW09MCRr
TzdPQWxXJE9GdnxGbEVfUXNYeW0qekUzJU1PfGMqZlQ3aFokWDd1Wk41ZnRQNUxyVAp6eFo0Szwy
K1JzdV5OOSRsc1BSaFg8c1IxaHJRQk5CPHBueGlCSWtSSHZmVmdTUmJVJWM9PGkxVHR5TkVCPCNz
U3YKenYkdG5tKXokfnwybi0yVjYzQ3VgVXB2aHxgUDlgTkd1RU9VYWN4SDA+WSRUZDNwcHVTREN7
Un15eVloI1ZFTldRCno/az5iZEdOcENhIWdsKCN3eWlgOWQ4RkBAKkNKU3g4ciNhJjdJKElMWSl0
Vl49UVU9aTcwRUhXVDY/JExeSiQhSgp6QnR7Tz9xflo0PU0rQGh2KzIqT3NWTlQ8VXtPJGBKPn5W
NHBtP2tKRFRYUDw8Z1p5aVY+eztTUF49dGlHNVIwVnIKeiprVl91bWtRVCgpSGJzJkhHMGkhVHMh
SX14UkMzfnE4bF9FIz9eRD9xNUxRejk5eE8xeDRVdWUyQzs3dnV4JD91CnpNR1Y9ZGQ/cVhzUzZk
fFpqYUExUGlDKTIkZTJlUmsmPUhtOEZSXnVEaElOaDY5aldNWntSNXl+Yzl2bztzTXg4PAp6QWlv
VjBrRGg+bDJQVTQhQjNGaW5tME5nSSRzRj1YI347eE15OE9tXyRUclR6UDZOdEBNOylpYEVGTD1h
O013dEQKektAVVlla1FAXz9NRVk0O0lzUndERVh4eHYhPm1xLXY/cUtqIyl1aEk7eTF3JV4rViE7
NksmaHI3YjY3ITZRJFpOCnpISCFBYTQhemYzamltSjw8JVdJZ3RUMkdLezxrPEk2KE1mMm1aMF49
NUtzQzRIWVdYRnN7IzJodW5pOWlucTdKTAp6QCQkdWc4YiRXKyo7eTI1QFlqRFdFKFklWkl4aE5P
SWdUcWlAblV1elBeWDBkUFlkTEB4Vnw9UWI1fXJQen5UcysKempWOXJmUm19OVlLNzZCQGB8YGk3
Pk9eYmp2eG1wXlhhLStsK31aMkRwZy1ZPzU7fXdWN3B4bjlFUXtQbyM4bnxSCnp7I1coXzdzdmVu
WWg/MjI3MVY4ZWBERVY+bUxWVSF5TCVjaFZFdjR6N0dFKUc/Q2dCQGMpaWpJSTkpP3hIfkNKQQp6
ZGMqZTtIbHY+LWJZT1VAOHl6QlhmTCkxQiVIdFNOQmlzQVJ1diNRMT97KHtzeEgzU2NlTTd9JC1a
eikrdjg/Y0wKelJCTzEjWWhVbHtCbUtTantuX2VhKG16cVRJUnloQXBeMXF9KlgkNXNfeH1GOUQz
MH41YCpRTERrS0t5R2w2eD0yCnohTUJaQ1BRJlZCZFZFRShgUGEwYmZxfEY0NV49KGF1JUN7SXNq
I3BJUnd2ZzQmb1dpNlhmTChXZ0xUV0tWYn1WRgp6ZjE7ZCp2JGRFYHhzJGtoNFpEJlpVRk9AKm0o
M2J8X3klbC1jaVRYPXIqcXQ8QHV2YS1hYDJCITkwUX1HenROMTUKek1qfj1SZUIyM0lnTzh2cWJp
cj83di1vS2pyUEZnU1NhbjVodCtWQXFaeGJCZ1RiMD9Sbn01PVpWb3E5MFYxUlMmCnpIODFNezIw
NFBIQiZrMVQ3UD0qY0k1K1cwWm9HajduSnNkfWg+fkw2SHNJVEJte3cqJCF1TmZKWjNqQWRFZWsj
eQp6Nj1EQTdnT0goJiNFRmBZdFE5dXp3ZmxZbygyaHF7TV5Ae0oqWVZDLUYoKCZpaipqMWpGY0hH
ISRHdT85ZyVGekwKelNrX1gjcV88RSFMI3NiVENme3RVemMjRUckX1NIbER0STx4JWkoRmBwZWJy
JHR0KCg+WGBYTSlVZFdzOHowZUpECnpxKGsrZHZqMGFTJip6SzZ4OWNyY21DQXRWYD5GZWsjUmA5
NjkmUW9XSjtPUkB8MHlQdU0/JmxRYCQ+bzhXRTJLKwp6QGE4ITZSPjI3fDQyKmZgT1FgSDJ6IWNi
bmljY3MqSz49K0xkS2xlPUl1Sko5aGElXkQqIVZxZDRPPlY5RmRqM0YKemN8cDEhYHZ7JkByZX18
Uj1wOGgzeH1zMXcqaXhAdyU/UWNeRnFZcSRjSkY4RDNPJnNgODJFNTxRTW5pI1JhZHYxCnpDOTxR
bmkrMnlgRG1waW92V2h3aVVMMkwkKn5HWGFaT04/aDdNPCpnNyR9SHNQdFpoUD5JMld0bHR5cWB3
fHtRaAp6YDtrPnd3fXVxWVhmaWNqUnQpcXglMkJPMmIlKT8qUSUkUCtlPlo9TVdIdyhPTihiJWpR
d2dQV1AwYWUtMSFMNmEKemQ5ckRBbyh2RUJRdWJESl5ZdGBqbkMhNGxsdSVvSmd4U1YqcUVXITlw
TnpZdHFAP0Bje1okNyt7R0tNZjlTKmpFCnpzS3tmejFBcGlKblEtPjtHUT0+YWlFXlAjK0IrS0s9
O2B6fXUrQnEhP1ghUD9PTjBfVDhYTTxRaipYT2FVQ0Y2LQp6aTxHcWE4fktQenNFUkV7cU9zN0ph
VTNkREpQUz1oPmpRY0VPYyhfQG1hNWBuY2V4NVpoMlk0cj16X3Veak09KEAKem1UZjc9aXhNOSlF
ZDRhRCNqTC1WRTxCcF9WTSp3STVWbXZQKFlNZDZybUxDT3gwNnJuV2RLbnxGU3Yqb3pCP091Cnpg
NnByQEFxcXFhVkY0Wlp2VDs8bXFNfXh0TVdkKGlgWWshIT97XjYlKn0weHp1c29mR1Ute3ZpRER2
MW4yRj1kUgp6ckxONGxNfkNlfnlLUmhZem9KKUB2T0Y3MlcmYWpiKnBfWHFMSmdqPTY8aD5sXjxy
QCFFIWBgUWV2SHNQU0c9RUYKelpDTG1BbE4/Tz92ZmZDdz9Ye3RlcVF2dEtZR0pwaStBfmZ9KCZu
YzQlVF5GRFF6bnNlSlM2YVFMI3dVLU90TDVgCnpkJiU+TDBDRW05Vk4maGE/KlJgK21SKGYxdyp4
TW57RFJ+ejlzYnF9bHF1UXFAZDlsMzFsITByRXItV0pfJExEKwp6cDZEZigjTW1lVkhPIWRALSk4
JWZiPiZReiZ0M2NgVHE5PShrfDhjT0d0N0I3aENhbm9IS3NaWDNAQHU2PmZYaE4KelRlXk5mbCNZ
Sj1NYjk9YDw5TDxSdlkjZTVHZiZ1cHBrXjg7Z0g2QEUrdD1sezRwdXFDUVFwKz9CQGNSYHk4ZEZY
CnpOPjNaV2lZPj85TTklWDF7bT5fVWFOKmVqemRjWG0hSDltJWJEMG8zIVhOZ3xCX3RKfD5lTm9H
ZHRkN0V4eFV+agp6PWI8cWFyTWFHWGp3ZjJwJT84JjEjd3dWJHVRVm5gI3o+JERSO0ZJe3UkfVB5
QWkhKkRKRzxzUEtuP2MweD44U0kKeiVZUGdWXl9PaFJydl9iQjNAdUV9Xl87IVJUPFVUNmVBO0t1
TW9pP2w4NlEtMXBCVzdpdygtLUxEQlVQWHtvUz9ZCnpTTTF9VklJbjU8cWUlfjcjeWxzeGpya1Vm
Z0RBT1NZZU9Nb01TOH08UEkmbjI7X2NXTTEpSmhXSWwtS2IzNnVQKwp6KDkqN1I0XztMUDM9O2F8
SztofCNubSE+WWxLWUd4bzJra2Q5ekgzbGgzbjdETlp1dVFgNH1KKCN1MjswdTVUI1gKejVvNTli
NDxANUo8R2w3emI9NTdRYT0tUStHdUJ4NWhLYThCRXc4Rio+KXN7RkgyK1BqYXlfNkxGfjchWT1J
fTE3CnohTWJVKTwwXyhAekJBPUU1STclRm40JWlTMDspUFBqQmxJciFKMCg9PEY+YjZhVWU7cUVk
Jks9K0FxeUkralE8Vgp6dXswRWJ4bUNjaHJ3JFQjYztqczBOdm5OLT1GKDcqPTg+U0RUPEw5RS0r
UTBJaCtXJmMpfnpofXMrMjN+JjRTSE4Kek5IZG95TCFHYiUlQlAxOUo9eTk3ZVJtbUhBKCt7UnZ1
N0REP0BPIWY1TDlLO05RbWI7VWRNVzdgd2p7R1VpSlp1Cnpfa0FBb1k1WGNOUVNqMDtXVytQXzQz
b0RKT1V1a3pVJjRUcHIwdzwhb3dIYmRLR0I8MSk9YmpkS3UmMCRzYzB8SAp6NHo+fEZuNWhWel57
byopN1lPWkVLbmQ/KT5+RiZ7bXgkLURyKC1uTShyRjQjbEU2NClWRkpHaigqWWUtIV5PJFUKem8k
QXpYclgyfXZfbkt3NkghdiEoRjNCaCRtdnVrUG11KUM3KS14bVNMYFV5QFY9Y1ktcHxOdyVWdGd7
ez5OciFmCnp0ZCQzP1RGflB0PyRVMXwjYHF8RzRmQm1sLUlzbSVNeFB8cmBOUDIjJX14dk9mfU9A
SWhBTVM0SjhEcGJNelZneAp6eG9aPG9yY1laJXoyKks0aEcpNCh7S0AzXy1hNEszX1BobnI1S3Ym
cl5NSGxHVkF7ZlYxelJgIXVfcUY/KWQpODUKeld9RWEpWjhZVC1sP08pIWIyZDRuUDZ6NClkd2tX
M241KSp1LXUydVY2QHQlU149NjQmJkNOJXUwcnxqZjNMeil5CnphbD5rWXRWe2M3WSh7Q0R6VCUx
eC1UUiM1dWNJYUo9Rj01QmZBbzJsKik5KTlMcGtFezxwNCs+S2premAoZiVaYAp6KnlVaX1wYj5e
MStYb18+bH5DJnlxeWRrXmdMSG1jazNsT2wyXnp1N1RYVm8/IXcrVEtkVCNyNEFvJG5hT2czR1YK
enIqaztsQHRHPTxxTkkwd0dBMG56Y2JCP25KSlFoeXtFWSQqYUB4KDZtSEV9TmxqeHAtP2tQZSQ9
bWdiX3Z8YWZvCnpMJVdmPFZoMVpPTCViV3t3a3o7WDxDP3t4dWl8eV4tREcjPkVwQSFeTyRHan1A
P0tgKV9aZj8jPUheczJwaXIyXgp6VnooU3Y8eEZFOEJzX0UyOWRuWSV0YUtQNkVPZWchPElKKjZq
YDE+clphPlFmQT8lZX5lZGQtQDZoekxGQlM8cm8Kej9XRFU+NSlMa3Y+bFpGemN3KmVpLUJXbj0h
fW1RVnpYaWk5Q280Ql5sIWFwZmtKPkd7YWkmcmYyZjxRNW55XjI5CnpHJTU8VnFgSjleJSQoYVNm
WlVSZmgwR2tRVHV8Tn1DYm00KSh4cnJGTXl5LVo5RE1sTU1SMjZYWGApcnJ3QEotUAp6IyYrXkNN
d2BVVjBSJEJUMntqZUktdWgmX3Q8OFptVkZBeTxrVj19TXhzSmpnZGlQNmEyU3J+THR4KWglYGw7
fn4KelJqSHNYXj0mMCNSO31AbCZfb3BsciFRQmc2YXhGMFN0KTdwJChsPEZlS3A7K1hNNlhPbDVl
NCNiOCRjYVktI35FCnooTTRYTmtCPCgqQ3NqYGdIRjg0NUc9WiNeMSFgVzZROSVuaz9QMjt4M2Q7
OCV4WmlWM2xIeU5CMEJNaWFiZzw1KAp6QCpsU2lTNCpgfmY+Szw3TUw3Mm8qemtXfj0wQn1DeiZ4
VHJ2ZileJSYhUihIVTNKYzhvOWdYNnZ+eXZLM3A/d2UKekxnY3BoSUFYZjJhe0czbEk/cDJtUXwm
Znx5d1JfRklIeXROaUMlYSYoS3RiPCVhS0ttak1iZCkmM1IqektEbUd+CnpJYHV+Pnc+TlNIKTAy
ME5qI2tTbFViSjNHdWZ7JkUxbE9gdVdNVzh3PCVMZV5PJXojWEtFNSVhaWtPP2NrXncqNwp6NDlj
XzhZMShOd2R8KWgoWiMzfmRPUkpYSitPfn1jQ3NOJWNrUFQwSTxPMS1YKXV7dykpVFMkRWZRVXVw
cGN8V30KejE5ckEmcTBWdm9VNEZ7Qy1CPjhqT3laNXUzQmQ8ZlRWPi08S2poanhUSEBLVlRnMEwt
JU94R0coNDBXaFZzUVVsCnpmS2RRTlJvX31JISZVbilQemZ6SHM2K0VLY0JNU154Sn1zUXB5O201
JWVlTWpqWjJRQDs0bjVPYF5LfWt0WiFuKwp6PS02dW9gKH1uNzYhTz98STx2LUJRUG5FIShgSjIx
Zlp5cFItV05FSCh7eTU4YW9oPmcyN1MyZiNTdVdNMEgpOHMKeiR7QnktTWdJKDl2ZjRQP2VmeSsw
M25FYW13Uz14XmIkKzslSWZZbGgjNENrMlApP3lnPzhPPCEmI1hIM0FnJCgwCnpHUk50VXEoPU9e
NilqJWs2Q1NfMiFJVVhLZWhWMDF6TlM8YGtkXzdyOCRNeUp1c254O0p2QF9CPUt+QSFDKGRTIQp6
YERkKG9FWWQ+VmQ9OEhhLVNRYEw3eHRzSj1YR0NKTCZQNHM8JFJsJHp0VnNWTj1WezNWNCYjMy1o
YzdsNHhpITMKeig8czNAZ3RTPiR0WmFZVWltQXhqV3wmWUg1RWpMUXIrSiVBKDxsayQhVHEoIzJO
WFVYajhZUCpJVCMpMExAeE03CnpqYW0mJDA8UyZsSHVSclZtJT51MjFAVCgmUkgpUTJNVl5uRHRh
dTdDV2dpQSl5QSVfZllAOUNLcDttV3dlU2BzYQp6VU1ERHhBeGw/fSYrU1ZnKmZpcDNDJn01ZHU/
XjV5PyhUeWZkP347JTxWYHUlQn5ScjkxeipZNCUmNTBtJmVCe3UKenttRXBJVi0kUWVme21XLWVT
U1h2Y3owZzkzPiEyYztLaVJvaX5nb0glc0gpSTZUKURVTCZ9KTwpeGU3SHs+aXBWCnpRejJ0RShf
bihTUFRXTCRkJUxOeHpyU2NCbSs4WFBsKntSdzFWa0oqPyZSUiVAPWxCNiNjWEp2cGg0dTtCbFRW
VAp6Y0hXOD9XQlI0I01Pe3dSKTIrV2IpVEVRX0BvfEx7RkBrYElvXkc/YVpieSRYVT9fTDhNNHN7
WEJQQUdxZVdwX1AKeiNoPnVUTWpUdj1nZCV6I0V1S1NUbXl+eEJaUm5mdy14dnZvRGNhayFzeEc9
bGR3QWAxaUhvTUdXfiYjVCluSXxkCnpob05UMj57N31Fc2UoazJPSkdNSHFqdGJodX0lcVZTXlFx
JXs1QzVyZH0/eDchUipsSmR1YHh4Z3BxalZSVFUpcwp6a2xwJkJFUnFvPm43cEU1ZntpcCswdylw
fEJDKlVnVFd1JnpEQytwQFlBSnY5eEI2I35KS0xnb3pCZTlBLUNeKCYKej0xPG88SyspcTAmM0I2
PWxfSTNWPmhCSCNLJX54S3J2RDBkentBQkRKIzxrWCElWDJseip1WEM4RStsJSMtfW9oCno7X297
YmFnNHwpc1RDQTJFO1JpUVdgekIoTE1RMFJCQ0dWVW0jIXIqPFZ9Vy1reVVRaCg3X1RzRCh6fSoh
PSR4dwp6Mmg9dSQ9NWNVO09DbW1hU3ZmPkxKKlp6YkN6c2loS0l1MDtDMCE/NExnSS18ZjgjK3Vx
e0lvRUNmbXFGRzFKfGIKejt1LUR6aWBsSUwzUHlfRDRwMlJHeU0hKHJRcDBpd3hTfjE3cWtAXksx
cVhGJUEmb2luVikweGJYfiMoYWhSOSNsCnpJNjFtZlZtaHYzQ3R7eTtPRXBRS21VZzxVPm4hR3Vf
bnRxdllrYzVNKyUpWk1lPGdYQ0g9fDVhVDFYRGRiaWZxIwp6IUowZ31jQWUreXFMdC15XzdqQDd5
ZnlEMDMpP2lCSEcwRFVlJHVweF8zQCZtez9OWlNPY0Y0e1Z7PHgqQUFnWmEKek9QcEV3NkUzQ2xT
dlUrVHgwU2VFbyE/QWJUTUtSZ3ZIbElKQkc1ZG1PcCRYWipUe1Q5elc2UGxTNEZQMEpyQkNeCno7
dGIqQkA2IWo0SS1EemR0blFycDw1MH1ONEdObGQxNTQpczNEPmcrIVk8TlplbmRKbzlRRXA2PFRT
RVZedUVWWgp6SVhCQVJoeXA5ak8hTiVaNk0xfHxfbig1b28kM359Y1haQnRMQj91Z2UmaH0+bzh0
VGo8ajlMbyhvPDhMLTRFeH0KenhHZDZQR1F6RHdqVkchR2BwR0Vtb1FgOWsjckxtZiY2dDBYPWZx
aEloO0dvRkJ9WmpWI1dfO21RVUBvNjVfWHFZCnpSdnIhfEdsYDNmIXo+ZEhaYnZAcC1SJWk8Zyts
JGIzOzR1ND1ffXBgUHE0KUlfbEowJUB7KGk5dSZfIytLbUlCfgp6WSlKZVNSSDhkTkF9O3VFayZO
LTBCX3gjV0B1ak4lJUE8eTx0JFpJbW01RThCej40fCZlbSteK2BNaXkjPDwzWU4Kem14e0N9M30l
fUNjX3pYQTVMaENnWHtCfVBxJS0tekpmUHtrUkd6Q0xJalNyekIxNXRIQDVQezAlRXcydHJgO2Fz
CnpOXzJVb0dyfW5ZfDJ4Tm0+eSlWVSRiVEE8U151YCgoV2ZeMXtBayRSISpBQnRIe2RZaEo/Xld9
SHpNKVJOSCpBPQp6OV9WJUpaZy0/OEQrJGJTUT9WLXZkaDQ3dldRZSU3fEZnKjdaVVVBISh2IX4h
PD0+cj0+UiNNVXRfLWFVcCFganMKeiM9VDxBRyNTPiVkUkVNZnJOX1grOGc1NVBTa0ApO0pHZFQ1
akd3fVlBSVFwPillK1dmPEgmZjJfX3MpYUkkI2lKCnpYZSE1fT5SO3NOYjBXRmw4K3A5NkhYZWxH
a3pIRVJIbmRLcl4tSnw/TCNnaD5UMH51MCp+NHdkbihaJmBMeWo3RAp6QUJFRyZuOX1kV2BEN3Ey
MFp4bCNhbD16KjtnZmNJQyt0PGZXLTJiT2RkYCNraX1iQGw9KkhtYl8+O283QFUzZlAKemw8SnZM
Z1RzRiU3U3NWKXFObUY0LXd4VnMmaUVEV3YmdCpwJnlIVmMtVlV+XlpXZ3JKR0c7aSQ0Q2BVeEFN
Mlo3CnpVIyZrcyR5Oz0wPXZMfnZqMmEmJXFkfiN5OWxXeT1VK1NYRjFzVklLMn1YbCFnOT5vO3lv
RE1JaUZ5bU5pYHMqZQp6XntXT3hJaWZ8eXJyc1ZgS05yb3ZnezlKOFBvbHtLNnc7dkEjRWRhMUsl
aXo7bn1DU2xKKjhFKEQjODh6JUM/T20KejlvdXF6MyEla35gSkN5UHgwanVJbGYyYFVGVEVnQCRz
dihofDM/PDs8fE9KVntVK2JUak1FdktPbyoqMF5SPERoCnpnaGNOa3pNbHs/X3cxX0NAU3JSbWli
WTkjdD5ZbWx0NThiaXZjfEZxJlU1KH1HKT5Vcj8yP3NYPXJRbWxlUypFWAp6ZjwtQ3NMPEtEPmFf
O3VIK0B0dks8ZFN5THMtLXVxLXgpNHI2OT85Nys3dF9fe056QD5xTnZpcCtuWF5yR3dvMmIKemNw
Q1N1Mj84PzFtfGUoYWwwVTxzTF4mVUEjMGZGVShlWkk3QWowIW88eVZZbEJEekRqYyZuOyV3XnNr
d0EtPTZHCnpkIWIxVio/VjdMPFN1ZGp1NCNeUmBve3VZSyY3dnBaa1d9P1p5UCVPeXhqYyk9fFRP
KiMlNzdCNTxQKDN5djlIUgp6RmNAdiQ+dExYUGdwWU10VXdLaHZUNz88K3MxYDVkclo8SillJXwx
WDRIJUU7dW1zblE4UXBHT1N1KVhmdHROV2YKej9iZTFPelBfb0hqJnJfI3Z9M2kyRUR6RFdnREUh
MEdxNTh1IWBZPD9KbjtrUyYyKGlAQiZ+dEZrVnR6ZjNlUENvCnpqTXNYNyNoWjh3Rzc9IVo5Yjh+
c1J6fC1kS0RoZDd8MXxfbUZ3RVBvKyZuS0UoPVdJOUlYPiZLaWdqXlZOeE8wUAp6YkQ/QDN1MWZZ
JSUkTXc5ZiUoLWgrWCEkVSo1dURNc0p7SHhmK0AlTT1oSTg4VVdwWHg3K25CXjZxUDA+aSQ3eGAK
ek9RNHhVXzQqKXs9R0MqTTBqPFF0UE8oaStWbFFEaVNMVEI2TVBWQCtSTCZhR3JYJV51Sml0RGhY
a1VaTUxEKGJjCnpuPE1KMTl4SyQlXkVoSmhIXm8lTkA+SVIxMGs0S2JgOT4+cVV2UXR9RjEzJioq
YGY3WHlLQX5rKH18QXE5NSpnZQp6bmZJcyl1NnQxbS1AdSVtTFZpQXJMJmJvO1o7NXpqNC17amFF
fmIlU3N2KjtQYU51PkRaQT9yO3dJKm1uRWRIP2YKempNNSRxcnJSNnglP30+PnFFRVNCeWYwR1RX
MHt+SilZJE1qdChwVU1zKCl4djMka3NBTXYrb3R0VkNNcGlTTF9TCnpGanFSU29SVHB3e1ZpO0J5
QU1LcGRMXzR1eUApcEs/SGgzb245JWJpZn5uRT08WkZVcWEyQXZHS0VJZW1XYk9LQwp6MCgrN0xM
N1BwaXRJVHg7dDNCREtTKHZHVjJUSTFhOVZWTTBDVFIrY1Vgek9rVnRCKXloXzMzfW9TaG5TUW1Z
QXEKeiE1KnJMcT40alpPblhSbmE/SnlNMjRsSXcoOHhfIWhIcEdtOCktM2Q4R1ZfRlhyY20kKDhP
KW9XJjl6QGJXWUFLCno+QTZeJk5hQCZPcyNlRzApdnVtUWxiazJIPHZTNzwzPTlsOXJVOD04PFlI
cHRGfT9qXz4yRGAlMWwlMz0oN2c1Ngp6YFZUaV5UODYzPVpJVjI/ak5SOF9KKnhVWiNVOEwhZHBl
KytNKzljRWN4UT4zKVpWZXgtTEhvPTlLNzwrWVIlYWsKelFrbGIheHc3KExQal8hdE87WDBpYGdD
Kzx7TCZlPlBnUU5yaFpJcT9rWThVJnJrb2o+YE9ieSkmJE9qbkZpWnpiCnpJTDhBREMpNEI9WSF7
blQ1TEhtaGJHRHItT2I+ekdWbDFQSU8mbmdhPXchcyVAKkFqLWR8WFRSeHohaUZhN2JYZAp6SG1n
JkJPYl4zQ2pSNkI+WUFJbGckbDV+fDNHUW5GTX5nTVhWRE87N0hnKVd9MSFNUUg3JU5SJEBASG5L
KzQrRXIKeiU/aGE3b30yVHFwIVZ2Tz0ldGpyVnJnJGAqP0JnfXVIWVMmaWg9M0lsPDNgVjFgODtQ
O1UoTVlgfHU3NF52cyNJCnpiYEIoSHAmb1RfbGRzNCNpbE9FN0Z5aEtLSSgycT1Ze0lCKEF5PVkx
dl5PP09wQypCKTFUWnleU01oT1BVKSR0OQp6Uz10WXh1ZGcrYCsoViRQUlp6LVcxRkg9bStXUCtL
N1Npe3dHS1lxe3gzOVkhPzBuYzhON3JuP0l3cWRNOCpCLXUKelVxbiVCbH5+eDh2ez48fGEqWVYy
ZU1eJlc9ZEh3OE8oa1chUkVUUzdvNzloPj14NHoyNEt3JmY5PE0mMjE+TXlYCnpDY20hTXhNRCt3
YE9lWFleSCZYbWg0NjQ2JmlJITtJNzU0NDl9Tm19RGhLNVF0U1NKSWxMaV9mYl80P21QPDIhVwp6
QnBuQWw2dSRSVVNZTU1Gb19uT3R4PkxkUGU8KXYlXkRVcUZvT1BgeT1gb3pxPTZBOFVlJjl6MWJa
fG5paEpIRFAKejJhbzAxRGVtOHxJTX5ePnlIN29wMjdDbVo/aytvKUU0UTtOQzspYzxubmc9R1ZZ
UkVJZEJuK0Aqd15aZFE7RSojCnomN25pKFclbGNjb1ZKRSlGaD07TUZzVzVWPG1TNF5oOW56Nzxo
XmQ2RXc5c0RVbV9xKXprO09NJXZuOEFAbDhiYwp6QURzeFcyTC1Ock9kS1IrIUlWKVJgLTFgfXBG
OTckMHc3ekhsOTM3RGorYE8lbyQhMTJNTi1MVjN6I3EjU24jcGkKenk+YjhFXlRnZmJoaUF4cUdP
Unw2SlVweHxJJnQzczxfUzZjPylDN2pEazRIYGhUN2lycTM5fnM0aXFWRm5pPGRACnpjMyl6KHdl
PnJrREBYdCZENSklRk02JT00TSpYYiRSaXJFfERsMThIMkwqSjY5OUMrY3R2dCg1aHBMS3UjWnA/
ewp6QUdaaT8/ZG9nTlM2VH5mOHVSP3skfnBJJnk4NXQ4TWRvKWhWQXk3dzkzdW1tMnAwMmdldElv
djFqUDFoUU1UdGYKelRMPXl5QWJ6dm0+UHF9OCNGPll+YTk0Z0w2T1V+PmpwdWZ3NFp+czFDZkt7
ZFZsaW4odlE7c25jd0tBKGpTc2NPCnpyWHRifGNpZjBnd2BUWUNlU0UxQnVaJlAqTyttQ3ptVzF6
N3dueSNHPU1YdzIkOTY8YjFIR241eTdyMCZSWFY8Qwp6UXIwbylBUVdKY3JfIVV7UzMtPnxKQ1ZX
PDtgdCFiJiokWUAwKypydD5uOTE1YEw/c3E9Y3xXRGdqPTUwbnF9fkMKelUjVGdkV3YrVFV4cV90
Kj9zZHg7KTBnKTwhT3BjSHM0eC0xWllROHQ8eHwyJWZ8RSQzcV80VjdqJnRfY29QPzdFCnpFS2l3
VGFQMjtkdD95ODRzRWpMVWtnVW9kbVlUVlRkWVFPfHhHPk9XakV4UWVIZzx0QSZKOHEqQkxmZW09
RnU2fgp6UnFAdl8lcG9KRWFtcHZkQUxiIVQ3KSZzRnkpYFJ5IUZgd3YzO0BybDMqQ3RJdFM8cjtr
SEohSGUrJnMoZyZ5PVgKej5aZyphVzNQU2xDPDwmelV4P2lGO247UjxxMzZVel48Si1lPUojPXkp
IWNgRT4/e25kO2l4Z2E9P2QpTXJFZmcoCnpzK1FAMUZ6dyN4emZYSnR0Tjd7WF9HJkpQRWdYYmxP
WmpqNlMhP2FzUE5IVV9CN25uQCFKKUYmTkl1KmBVY1k7NQp6b0pnVHIwaTVPMFkqTUhNc21YcUQm
SkYhLTlIeHZlKFh0Kn0zdCpeeUU/TW0jNHVvfDdEJjR+KHlSJDI1cFg+QlEKemNIKEY7ciV+MCVk
YzY3c2M2IXJlTkNrfXJSUV9Ue3tEO0xrYVpzKmg1MG1lT2lJNSZCKmtyKE5qQDQxPVpUfUdHCnpW
RT5INEwzbStsaHRYUEJaZkROSmBEekw0enhVNmpRRX5jWEJVV35OWiMxOUhAXlVyJDtMJX58Sj4r
JjloTmNZJQp6PVVPb1RWTUAqX2dXRDVUZSttcyhUMX1TZFNLfm56bi0qfEFKc1RKYGwrc1RXWT1i
dV9hUXtHSWFAPkh7NiNAaDIKeih9U3FPYzg8VXAlSypYIzNXRnJAYXJHbGt7PWN8bT11NlcoKGMy
WWl5VSNiUD1zQTlsTS1gPT8lWD4zZ1F9XnlSCnp7SnEoO3s+Ml56IThKOTVtN0AxMnY4MnUkbnZn
ZVgrX1NrVT8tVFo4Tmh3OHQtM0xQY2kqX1p3OTI3YnBAQF88Ygp6JUxoTTxpPjU3dHtLbFJSWUMz
YXRyMGtOU0FMb3YxSlRma2VQUWItbklZSXZsNDJ3UUNwV1IkOFd9YkBQIylgJHUKektYckJQYD54
ZTZpTE9rbThQZDZvU251dFp1dU1+MDExLXJMbElHPHFROzB9eTM7dCQ3bGZmWWx1YzlmKXwyQkU5
CnozeWtafCk1ejApNWh+TDU7KitqXkdVQ1RFS0tzc0Y4KEMrST9BdShKYk5Va308X1MhKlRFQTs+
KCVffXozSFh+ZQp6Qj9yQyErYX0tR0h5Uktid0FmT3Y8QV96VzUxdmlMRTxUPkVVfk1fPDJuYkpB
SD0wc0ZXTSZkWjh5fjBmdD19e1oKekNsa1M8aUAjfiVGR1dHUiNueiNRSSZXQFFvX2pSZGFZYiUh
IzY1Q3UpXyVgfW5ecXAmSmhtfXI4RnNOdTV3eWp3Cno7PyVGIVFlSykwSyRJI1N2alVBIVVhfSRu
WCtjQjtle04yeyRrRGpVbD15dTRNSUdgdl4oSW8zdlg9fHd0bz07Vgp6TmdrZVAlXjxteyVBIVU5
bWNDUnVXYzN+cHQ0Knh2ejAobC1LY151WG5xOVl6KCYqNVZjJUozYHlqPX1tQE5+YWYKelVCXjxN
VHc7NUUlc0xqNEk8czg4NDE1eDliTGYwQGNXYHI0OG0yKz5UWj53Z0twdjkwLURRM2NsPlAycCFw
JTY8CnZAU08lOEA8R05GT0l4Q2BXJDRwTyUjTG0qOz5ZTHQjTUVFWkhhSXszTHxybHhpbDNeKWl+
fDE7JEdSWTIKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9pbWcvcHlsaWIucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weWxpYi5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmUxMGQ0Mzg4NjY4NjFlYmFmOTE3Y2Q0MTJlMDFjOWQwYzcyYWU5YQpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgODI3Ngp6Y21YOUAyfjw8cCoxazlNMndANVY1ZlRnI0FWTHlR
Ml9oejhGa3YhQSNESXRhIVZzaHkoNHRzdFolQ0w/Qk9zR2QKenFvU2dzamk/b2V6Sl5oVHMxJkox
T0JEcmlDfGJuJmlxX1p1SH55QH1WJiReJElzNUV5P3s5em1xK0EtZWhEPmxLCnowMDJPaWh7SSpA
LXpOQXNBQk99MEBPTGdROFVCRkU2Mj1NdjtKYmtwPSElIXtYUSFQSkB9MjlxWFlTbVVueDZwKAp6
bUR8JVk9I25vfHZvZDVFc21qODwhSGZ7dE5Gan1oa0hEOGRuKlpZdU96eCRvPUhxREBUU0hGR2pf
TExMMnhQPE4KemJRIyZNenJYK1IoOTdFKCRaJlNZI2U4I1IpaGQrRjhybEE5JDNVP0NWJl5ZZ3hC
ZjlXc0ppflRpUzhjMFF2N1dDCnpTOztycmQtczMmQ04kIW96eUVGb2ZQZXF9X3VJP09jPnYoSE0t
bmNLLX5CTDZrKUVrVnJZQElJYGZ3Qmg9fkk1Ygp6JGVmPl9tUVNaTXQoZkQ5MEhSRSYtJjdaIWtY
KXgtT0M4N3AoenNrSTFmKSRtKTt5YzhjQnNvWlI5e25ic0FlKiYKekkheXVNPSRMJjUrc3M1dlZq
fHlANXo2Myk7YHRWOU0zYzkjemJfcVlaPzh8RSQtcHt5NEk/TjV4eyErRHJ6Uz9XCno5Y3M9ZXU+
cjh4Ym9ZKno3dF9uanVhYH1+I2tfVWYtUnFYY2pgV0dIXjVwVmBzPm9EPlAkcnc3cE5EUGZvO2Ry
Twp6c29HTTZEK1JRZUFvQU5xdmxOPzEzUnNKVXkkfmlDOV42ejVVRyspdT0xRU0/VFpFcnwzRG9J
QkBjI0A0cEBKVGcKentXQlljdHp7dzgwMEpjeWErZG5+VEVwdylQRTFOYEZnM3wwXj5pSHVVUHIl
VHsyNUkqWkYwNTYrRXtrJiFeUGlyCnpBSEwxPF9WViZUKnszPW5WSDx2QXA9VG5XaihSblR7LXta
ZSFfZ3N7andXPWt1SWgqKHdhPHpLPkNAdk4wQG9IdAp6cktST31kPWk5eEZscVgrQEx1Z3pDS0pg
TTR4TlBQU2tvKnlVPTY+ZzZlSlkycnl+KnZuWVZefHR6YTd5Z2g3UHoKekB2MjA+IWFfZilxXzda
PHl5OGklb24yYi0/ZyorYTc0YHxKUWwmNmIhWUxJNCEkPWViaURiPG1iRGghWW1Jd2VZCnp1KFpB
Z3MqbnNzQmw7RlZMPlh3bSlpX3JfXlE2fUMkdXRVZlRxQF49XzM0RTdhaDRaWjVyY1Q2QWlXV00h
RDE9MAp6NmJfVzRqPkpNM2VPJjgtbWQhPCppejE+KlQzWVpneilZZDFyPjh6MjxDeXx0QEN1KSkh
IV92XipxNFZFTkModSYKekZsc35WYm4kcGIyRVZJPmdQI01uZi0odVR4bERLZk9eMld2RSpFaUZF
WV5nck9LNlUrK1llNW9HN31PSzQ4Qm0qCnoxSV4xaWleVklRVTxReDhaTDdEZE0/M2w2QCM7bkdi
U3x4OzFsZDM5WUBDK0UmUDwwSWYoXkZuYWVfOWNjc0tHRAp6KjRyUzshJm5tUj49ZiN1dWohVHY2
KmI+NiYjP3t3cllQQ0F7KyNrTUBIVUsqQXlfQypKN2hPZ0pCNHVgOHRVeUgKeiNGR2RxRGZrcV9p
Z0NWMkN2KnA0Ri1iN2A/ODZpfGclK2dYeSRqbWA3IUctWj18QVpUJGBvWiVSSU5aZ0NvPldZCnpV
NSM7OzxqMyZFQ0hQISEyVXM9QkJFajF+OTUhSmtjaU5VJDZ4fTBRYHY9fHc7ZWFPN1ghMVVrand4
TnRNOHgyWgp6aHRNelctbzNrITI/TD9vUW5JbEs5ZT48I1g2aXw1eSZoRSk1fFRncUlUYCE9Jjlf
VUVjfHVTc3R2PSMzXmMyb1AKentnel5yRTlTYVhUREdYfT5AQFVHZE1XcUFHI208QmV2QVNZbFkm
clpHei05ZTt1cGskaXgmTEYpaChLcTteSHV1CnpoNlVhOTAkTmpVWlUyVHhMZnFVLSQ4ZVolQjk+
YDM1RV9+cUcjN15rQEt1U0s3Xj5WeWFUdjx7M2Q3fCghNnlTZQp6dmtjRDU3MztlMGxBP0h+Ry03
KWNzb3tYOzQlKnJLKjVEbURCTCR2UHJgMHRzT3BoSFA3ZGJ7VntHIXYxQ3UkOykKelpZdT08YyZ8
Z3A9RytSPClKbGVqaEpufHBIQUY0VipzY0opUUZ7KDloVCtYMU4rVj9sN0g5amV1dyQoWEttOzVK
CnpUN200bkpKfTF5VzhqcXVaN35UK3ZWXih+UiFPfWFvRj9FdkVybDd3cjtSXj10TEohKGJGMGtD
VCNHRypUdD5GKQp6JjdPPlk2di1hfmlkYWJKVWN4QlJUdDJjfUZ7I1ZTVyQ/TTdtWFpoSmB7e1Fg
X1M4JkY2OFd8clgpKyRpZXhyJXAKejV4fDkhRl5XTi1iWCFIKnEjZVRaWXZ+OUM2NzdPTTVhJFM+
OW47SGwzP2twI2ghej5ydGppajh6MGpCWVR7cylUCno9eH18Xz9tbCEtMXwwY3A9ZG5MYjA2Tm9e
enQ3V0NAbFVsS2tqVmlIXztDc1I2bUxuUTl+P3p9NFVgJFNFcDh0cwp6azhoUWRzWnU0WFFkUX4l
TVB9Kn5naFFQTFh1eTFrdkhfdUlgOzskcE04SyV8MkNkNW5oTkpVUkBHMmNAb1UqKEQKemZYakRJ
KH1GUmRHcERnMFh0NDJucU1gKXZzUEkjJEMlSHItN01JbCVCYj9hTF5INEwpZjJMcmh7Z3tGTkI7
dDBHCnprI3ErK05gQGFMYCZiUikrTUx8ZCUwZ0M7Nn5IbHhxI2A+Kkw7KjQxViZmZ2s9RVRHQUFS
aW19QHoxK3RmfVlMfgp6dHZ9VXZSYlpGcip8O1hjNH1JKVZkK2NhaUlAKlNHcm89NkA3KHlRR0NG
ZU91PXVUWGslLTQrTzNzd3FxM1J+ZXwKekd6PThlZGkjbjs0d29ZO1hfPHhsPT1rMnh5aGBzd3B4
YTZZSjI+ND5pLTxJTDA3UEFBbiR8JWRIYnEpRkspSUJ4CnpYQXlTalF9elk/JXh3dndwd2crcFF6
LVNUZiRPa0xNTXBOJEFJUmZLTmsyK0JnTHcqUGo1KWBFXjNpej8tOFM5dwp6PyE1emQxb2JfclV2
b1VoQzZpfEN3b3crPHNoXyZZJXgxR29LNCtfKHVlK3dYYSlkQFNPU3okT1lOOGNmIy08SHIKelJV
QWhPTjZkK2lqKjIzQDw2aCl4N219TXo/UlNeckdMYn1LTDBucnpIKS0kOU5uMV5nXjswKlk3XkJG
N0laYVZuCnpyT31rNTw5ODI0NFQoVkdWcip1I0hmbntwd0N+b3pJZVY8SDZ3OXZsZlVjbGRffWFP
I2o9cDwpNWtPSjJian1LMQp6U1dIYnVURTxmI3BtVnhjPXNzXzxfZUp2UmtBU1l5ci1sTnB6OE9I
OyQ7PEUhdExSPGM7TGIkP0srXyVEeWFDYV4KejV0cj4/SHtmajtqbUVIPHg5KlR+T25FJDAmS0c8
dHJYVmxSdXZCREF2TmFHSTdyKmNmMSZ0U0g7ZFk3USNwPjUkCnpXXkROZDRYTyNWOz5WKW9yUGM/
OyMhVyVHTTVoSDVPMyt2NyFnM1VEIyRETHs7RExxNWx9JFFgKU8lWGlVQm4pcAp6cX1XZVFKd3Np
S3FCNlRNMWg+I1EmamY/eT1JbFZaY0I4bG13RWQmbzFiaHlHbjRvRkc/OEckR21NR28qJHtKViQK
emdZQmt7YiE5ZDl3dERUUkRzYTN0dD8yWT5QbGg0e2lyUTJGKTM5aUhZfUghKCtHeHR7MDc9Xy0h
dU91NyVJRGhwCnpeSipaczViN3E9NDl5bjUxTlhhOHIlNSpfV3A+Rnokb1lHQV59dTt8ZEVCSSgk
Tl4mSkRmLWhVRWUqdz4rRGo1aQp6Pz9MNkloY3l1bWkpZ0R4QytgUHxESTJiJGtaa1AkOT4xZ1ZB
YGM4WlV7fWtBdyQxJGkzJHZ5cTZ3N2EqOF8hUFUKenFmdFJaPz1zfjByQDlQI0ZvVUNhPEcxen1v
MUJSOXl9fXFmTWBUODxfPE98dDlENE5VJFllSktBKkNnRms4Z0hfCnpNSX59VyNWaE1LS3oyPVFf
O083Z2ttMDIkQDR+WnBMO01YUXNITFg5SnxlMjN4RX02Umc4bDJIWC1+cz5tMlVSZAp6RUA/NTdX
fG0oKzVuOzxfJVAzOGEoYXlOZVIlUUBpNkhDeVMpZHNlPXFIJU99KSZVTHBBZnVaRVNEV1N4QWRr
ViMKenp3SjtEUE42IWdzI3RxMU8tMGE0NDlieXJkMztaRTh+TU9DY2JsbGlBJFV0NGY7PHF1elVD
OFlCUGYmayl9VlY7CnprQmg2VHl6eUBUNT5WRC0/V2wpRWpoZGl8MDY5RHExUlg1YlkkVmpidUxf
eS1pVH5FZzFAfGUwJEVtYz96TUZsbAp6QGhQcDI3P2VvTUpLfWtaZUszSj52RkJfQVQ8am0/NWpp
P0t3Ki11eHMqVXtYMkJwMjxCN0t8YGNNLXtaMjk0ZGEKelJiQmBCYXB1NnRAVEp+ZldHaEwtVzA7
VmVNR2VxMTBQRCpQbn4jM21HMDchbT52WmdwKDRlazxtfDZ0QyRIVVpJCnolWk0ybmx7TyFkS3NE
Jj8kMDwpekhIJG5ec1pzTCtzNVMmbmBgOVYkR2o8I1ckalhofWQrT35hVnBzP3NXZ05scwp6M1gz
JWpIZ0o0VDxwbz59VT52cm05amxeRmYxK3o0KXNmMjUoeGR5YHAwWlB4RF4/ZTtiRzFhcWg2VWBi
MT44RW4KejJkLUl2d15ubDxOXn17bVJ3QHRhXiRNRnpXJGx3YFU3KEZjYGl6fVBvdGRGI183R2FS
O3E+Mz1EI15CT25ZfWJDCnpgSGZaczh6JDg8P04kfHQhVGZtJkVmekljcEt3Q050YSlsYDBfOCtU
QWg2Wm4kIWMzQGlWOGtiMTE5STBzY05iWQp6VEtAWE0jYnQrfUdrQUZkLWNVfXcyKSFjNCFOZ3pH
aCsqM145NT99JkwlPEQ+JF9efC0wS1BlKWFYWV8oKmcjWXMKeis8R1BnNipKR254MmVITz98cW0h
S0EoTDYkIytlRCs9RTJSSWBaPmpnWUxpck9zTHcpRG5OckQ1NyMpZXtyY0V1Cnp3I08zR3JNaEEj
YDlZdmttZSpFaCZuKD94dT8+WFZmJjZrRmZ8eUlTYT59REBFVytuPE13bWpXbSExNHk5e3IpIwp6
Ympzczl6XkU9K19MIzBRcDx5LTJSYGR2QzFHJUJwUks+Z2YoRz4/SmwhPzhfZj9zPSFge2FVe08j
TyRPZE1ScWcKejEoZzBSI01SbztaK25VI0tBKG11Uz5mUjBWSjJfT1M0VEBrJlF7JnxIJUFwemp5
REduRXN7S0NvdEpycjQqfDxxCnp0PGU1R2JwMkN7SndgRlg7fGlUUSN7TSNQc1l+bGdSSWN4aUEj
dStwWWZjWjhAZ3RwbW1ld21NVWtpKmtCV0lZRgp6WlZBKm0meXZqZ0p1UWBzOSh8OEdWa1g1OUNR
SUJgeEolVCl1U1hEd24zM1FsZ3dvZFFoTXFFVHM1dSNDa1pzKV4Kek1YQCFHTmAtPyR3X0tefkJL
dTF9QjNIT0VDcnt4S1E8MXBRcUBwVWk7OShzKmhKRnR3S0tzKT09fllkVTVjNnQ3CnpfQn5qQmpM
b0tuNUE3TmVJVyQxeSNsMXA/U0hHRSE8UlFvWlhZcE9ITzUzWnI3Y1RVK249cXJWe00kKUNSa1Z0
Ygp6dDlyK1h2OXJiZ14pLX1lR2hSblVJRUs+S0w7PG18dmVje0U1ej4xQ0BBYnwoUDQ+TyNDYUxf
azJjRjJTO1FeNFgKei1eaUJQbjMkMGdrRzRYTDQ+ey0+PmBKYilLUW01dmh6VHkrQTRXMSQ/Q1Ar
SU9MX3A2YjlwcGFnS2hoYkkzJTdXCnp2RzxaQCNvSn5xJktPaXJOcVd4PEEpUDE1K3JhcjlXbjQo
Uk1lZllEViV0SSpkTXxrUEtaVGtAZlFsPk9mSCZNawp6V2hKWTw5TzFmfUBIQVBLcWIxJjRzeWFI
XlJsZkZKTjYpWF9gbm4zQnQoYWt8T3hfRkJVQHBfYHU7aml4T0FaWUwKekdXY2J4ajtkc1JOeCtn
JEZ7UHhiQUh5WTJTUWxqPGVrenpJT0YhWWpeK3RlSTNeekNDRkpaQ1Q8JTc9e3pwPTh6CnpIb0sw
dHE3RE5IIUZmQClYfnZyfT1mMD1HMDROWnJEUjM5eWs/U3Jecj1EYjdGMUNJTjxjWHFsNl8xYGdR
KWFGNAp6ZDY9azR0WHluZ1dJPDd2PnVpVEA4PipZcDkjLW9ePnYySWdmKiNAK0EhNnhualJZZTxw
KUxMNWJJQUd2KXgpO2kKejhZbkB9aE45YGVYTmF+USpIJng8alVUI0FrI3pYRFQmUGtCT05MPz57
cGd8PjRoNDkxcCFoXlFpJEB+MFo3Mj5KCnorbnVSNlM2eHFwaUp+YD1IbnxOc3ZvaVklLTI7e2k9
JEhQNkZ8dFlMcklBR3dnZE1CZmV6P29EbCEpTGNWaEpJKQp6aUR7ZmheOztSdVN5PH18KGU+b0VR
K1VTdkRybTdeZzVySl9WcCVFbEczZGk/MyFkM2Neck12Q3opPE5tdzloLWYKejVVRWtyYkJCJn5x
R3tUPlBqfF8kSFgoPyszTlF1Z2pUbXsxclRUalZ5JWxrcHNiSHA0TDVsUGFjKWdqfWtWMTxQCnpo
SnNnblRVK1VVNEtCWHpZa1d3IzM3UzQ3LTF4Tk1HfT1OY1gldDdxNDJQQDNuc1dHdFJnVVVNYi0/
biFLTnpANgp6ZHd9K1RQM0g+fndwNyRGPHB4NERyMilmIyNfWThDPCF0PEd8TlhWUHo7P2RyTTc3
QVkkRXRTaipvb35pJjQ/SiYKemVaWkpWezFkWlZUdl9mb2VnIURWWmVATnglWnY0JWlzJlhoe31D
aEl5fU1tY0ArN19iSE9pPm5SM1M0KEY2bGhNCnoxYWl1dXZqUVElSztkQyNsVmg1eXlHSmR9SlFm
bDcoT3ArZkZKJTEyPENJIVl7RDRVRTFLKHN5QFk/SCVxaF98RAp6cFZqc3dDYTA/X1kxZTBLLTEm
UmBVNCVEVFQlLTJhV1E2SF5IfFl3YWM1dUw+WUhXUz1WUUwrTXlhOCt9Jmh+fVgKekNNISF+UCYp
NDhOfTFwKVl4WjNmeTNuSlFfViljbD45NUQmbUNqdCFLTHJ7ZEx2aElhWnxQZzBvNUhCOFdKfVl5
Cnp4TVpUQSNRcmJURDk0UEdyZmM8U0d1MkF3TmdAaiM/b0gwKFdaYWBsQFlNRV5QSkNNIWVzKm96
M09yK3wkRGkxOAp6TGtxJXZhRzglaGJzWnNRbSVnPW9YeFBgSXtNQD1iUldDTzJ2XlMjNHsmOSFy
Zj1pKUQqK0pYRFMpbCE8Vz5yKmoKeiVKZyYxVXZhKHMjOyhPU2pMdHNHXn1ycGd5RXZKXyNkYE1K
ZEc2YU1aPzMqd3ZnZUNZZz5PZFRyMWx5dGAlJnpyCnpoeFhodE1XSW04VnUhP3VRKlV8NGNiJDVZ
MCplRVRJdTtqdVd2LSVaQlc+NGU7IWp4SjVzWHs1PHZEbHYxPX1UTwp6dU1YY2BxRzJGYnooPUdf
LWozc1U5KD5DdUM7SHohaCtwQUdoZkVpNytqZXpPbyZfM0lHRipETnpRazJ2UTRMSWkKejFRajEj
JCFQOXB1ZFApWHRTKyF3PD8zITNKWHdJeihGKF4oQXVqbyF1SXVqP2c0O3B7Jk54b3xUXm5BLXgw
THpPCnpxTDEtPG9Xb1BhQXdfQHZQbGMxfjVoa21rQDBoSmZHckh3XzBNOzZkQEdwWDEkWl5JJFhB
WEM3JTdOIWZYalB0Zgp6IXd4NlNlPXJzQjItXkEjczNKO1p5P1JPUEFOYmVpc0NMcjdBakh3cWpX
OXo3Yip9WERoTX1PYDZaOHhsX013YmgKelNpUm1jcm9oTi0tTXMwazNeajJWbn1MVXNJTzBoJXBQ
bDRsckdKJCN7IVoxUUBBV193a2NqTSliOHtXV3g0PHZ9CnpuPjR+T1UkSnBPLWx6P0UpYTVgZU9x
PiVTe2xeMDV2ZGVUS0t+Yk07VkQmaipyRUQxY3FzbT4rTnFjQCtmb1U0Xwp6TEA+dC1jazVhZ2d6
RyZsZkNRNHFBN2NfV0BrQXEhSTlANkQxZCpCe25xT2tzMnw/fmE4QlBxVmJGTGNrPis8STIKem8w
Q3J7cTA7ZlVnZWtYVkZrI2xMJig2UypPRjdaUTBvdDlLZGsoTjI/dmVyWS1rVUMpUFpxcU1geEJR
RnEwej80CnpYfiojfTVhQkAhI3s/ekM1e2V2UWBoV3IjVThOQyk1dkd9WGRpYipYeiFnXjs4VnZO
Mkp8MGdWLXZOQTtPZHBRdQp6Nmk3RDZaUSZPZTR0KlJxe2V4XjE5MTwrTF5oRDVqMW83V0w4SENu
ZSF8U1pRMF5JbU9ZQmxBbEJqKjEzTmh7fm0KeiVgUjR9TTYtSmhLMzBLayM0MGZyQ0pzQGFiRyst
JUBFQjE/dU9QfD0xKUFpMyFGVUdjcy18VEFnSjNoMnxMSWo5Cnp5NlgtMGAhNjE3O14wPWNeUiY+
NmN0NF5+P3l2Ti1adWV7eW9fRm9gKTVkSXZKX2RfKV9WMldyanRsZmhYZy17Uwp6b0VBKGFRZUZ5
YXRpUS02JHp1V3IjMjRxXnJWKkRnKm5XQ04oSjktIWVWTTctNmgoSCpMdFNHLXBqQUBhY0E7ZWgK
ejwhTzh1Z3lQNV9iUUoqVWBeJjlrVD8xPX0yYHkteSlpLSgyYER2O2FEUmU1QlgwcE1VMiRQYkRz
cW0pKlNMQks0CnojTkk8K0d3eEpQY3c7U2woPHJ+R0Bac00mRGtyQjwlU14pYyYxUldRcnI2UF5r
NERRSSU2RilfT0h9cHtMTXFZYQp6VUxeU2pDMX0yOHNmfiFRb2Myej5hVEprck1uQyV4eX4obUVI
RDU7aitHX2wxc1hgeChrTTIlLSppbHY4WlFDcmsKek08R21+KVRHUCs3emEpdjxmJHxxY2JVYEly
PzBzXkhhVDVWT043NFc8TW1VRENIcn1GMmUjZS02ak1pM2EyX1NpCnpBPDB7JUpEaFMjVFJEeXM0
a0tMd3NmTXFnY0I+c2FPeWxZM2RXPGNiYjdla3Z7TjQpZWlxNmFvTzBDVkJyNmo+Tgp6V0w9KCVp
e2I1QjM8fGhuTmAjNUtPbWo0aDt4ZXszTWpUZ0Q+fkxHMD81QlUrTiFqTHIlSmhffk94Pmd3ZDdX
Y2wKejZJT2A0Wj9NTTw1bHQrUzY8O2t4SjZCSTVtdDg4PG9GdXdzUT1CRmlFMXlfWW1+QGF4JFo8
K2dvKm9ROWd4U3pHCnpSKlNiRyQpIyVYbDRpb3xfZmNJZiEkWjIwNk50a2JfOFBWWXVRWTFXWl5H
I25GNDlnLWEwPWFAKDFuUktee0A/Pgp6O2ZvbSgramc9QG5vTjQybm08MFA5fkUxOTdqbGJeQk0p
N0dAV2M/VktkQ1p+WXJsMEpNeT1AOXFlQHh7TkA4V3UKekB5RktRRV80ZyNAK1hZRzNqMVU5alpq
SUhhTWMjKFJuM30xdDt9YEpLSCFkWEEmY0NRJWRjS0U5PE8/YlR3PGcyCnpWPkpvK2cwZFJ4cnUl
JitrRTR7OCVBSkppS3YrfTxsTipFIU9pRy0jKW1lP0g3bGt1fDRxcG4wYzMlKH4xVTAzPgp6X1JW
TFgpTzt6OUx6M1RWcWdQUTIpR3dlYWhrRUVFUW9kYl9idzs2clFaTD1MckpSUF9AMGlMWXVvTDdy
d0ZVKWgKei1AUUd5YShAYERGN3thbEtMeyFteFZxbDQpcW5FUFA2eT9BaXwtQFBTNUlwbDNNUXhU
Vms9Xzg9ey0zJWlsIWBwCnpgV019QE9zfnB4ZEZZbX13KVRGd0IzUCshX0MmWjJxKX5LXilYXmZE
Ym9zeW8hdkhpTEI8OXx8K2VofVpUYzlAewp6VCtGKmJJIV9kQ2Eyemp3ZmRePH0hPFlVNyVSPUtT
KEB1MkVTPjhZfm1lVWNgK0t8WWNKbVckZUhvVyZVOUlyeHUKej4qZUhlJStJZGFEPEBSQ1Q8TChr
cEtRbmx3XyNHeGpXZFgjO0FKQT4lNV9gaCNANWQrdUB8WkhobUhsMjwqITdnCnpkNk9FOU8wMUVV
UnQ0cjFsQS1+X3BVNFdibmdKXjNeRTstdFpIRj1oVTBERDhnX0RCQSM1TnhDXmZIKHkmT1RiIwp6
Zl5pTHJKWm40TXc/Tm5HU1AkJXo0JE9zfUU1d1huVWJLPSE8Wj5tWjFiLTshbzlyTF9ITGlQTl5r
YWttcSUkXjkKekJhbjBmSzhNeG1XN2xvJHtWMCEzSWFATjdTRyM7ITE7VEklPTxUdGY+K0tTUGVz
MzdTYDQ5TEQ3bkJSQktVcF5rCnp2V2Z5ZDswZn1eSnpBZ3FxfE1LQEgkenEmMXMqRWhrOVVTJEZm
akZ3Ql5tQHV1R0NOfl5TWURiPHc9aFhBXjBSPgp6N2IrXjxLeX5XTyF8cnF6MDhpQTt6SE8tSXJS
YFBkXldpPCZzJHRYYi0oLXV6VEhWSX0lV0YkNXtxQWREQ2k+O0YKenhxUSkqMnIqJXg5dGVocyF4
JFg8dDw2UERpQnQ0Kmw+OU0wQyQzTms/KUBKa1Q8aTRKRTxwP19CLTs8UWVZTklACnp4OGElUGt8
TigzZHpDSTtkRztQMUdxMyMkcXlCcEMlfUd3a2BOMiFgWj1aSDdsOHRob3lxPWdsI3NiaWM/QiFU
WAp6bUxoYDUkXlJsWjdmbENCPF96YCRyUz5jfGF5PUNFQlN7JCo+czxUQXgmU3tySGBqQkdeIT0h
cUhTZHIrJktuISgKekQ9K2ApUF8qSnBBKjBgbG9vT2s1b1BDYlNhSGdQdTVyMH5FPmEtS1I9Vi1n
WXVfJE1gY05IU0dxI1FoWVBhdFdRCnowQUorMGpSai1BciMxQHN3elp9T01MPihSOXQ+TUZtSTla
WEkwXlk0WkhsV1k0UDx6OXktUE13THc1ZlUtRlkxUgp6PCE5Q3NObVpgQyFmeUNGQktzdCh4MH5R
eSV1U2p5PzZtJjl6OU92QiNZdWRuLXxGPXV4Y2ByPDQyYHFgaFM3Q3kKemMyJnJScUs2QiFaSHFU
Q143Mk1sUCo4cGlhVytmMyMlaGVVclUyV3Y4Ml9lKWV0IzcmdGVVXkZnV31zNztuaGNJCnpUbXpS
WUVKPHY5a1g4UURiWCM3WiZVYTc0SDhrSHdPWVl7bGM3QTFiSzFIfVJPTDx6Tj4yVHc0SEZjfFMh
V3VyeQp6eG9keCp3XlB8cyYzVHBhV1Y3Tm0tOEFTOFIhUU5vdHxVKnElKXBlY3gtO1NGWENgYnRQ
WX1LZVp0eVopI1B+MnIKelJ0Xn1sZiQjYj9mZGN9aDZYaSMoeVZnJHI8YFE4RGE+cTxsO3w2PyFH
Z0MqKkJ1Qz9CTWp4IzBePnRYYyVZNXlYCnpIQ0RxdmtIfmIkOE5jMkN4P2NWLWBrey0/T2N5NWo9
Wk9qaGk9SUZjaC1vWUY2aSZWZl5pMllkPVMtSmsjckp7Pwp6TVg7aXhLTEFEcmVOKCpiUDNUY1l5
MT8oMTtGNUNrU3xDbj1gVEdkNUJoSTxeZDM3ZGc2TXBMbXBiYU5ubVAhIUwKemc/ZUxrWDBPWCV1
IyVJMVZiYX5yXyspcXhvemlDNHdKTTZzUmgmKkthZnt5b3s2Tzsye0IkZTlXXnJXaHoyc15gCnpf
TE1DWl5IRlA0P187NjlTVFExRyROcl9xJUVMQ1Q4fG0jcXNsbyl9ZnNhd0QoVjVGLVhnRSlJRz9E
JSpKOTU7Qwp6Kk1TPGBXIThVO3YlMEp4SEk/WXt7JSg+MUZuM1J3Qy0+MkIoMjxlKmsqLWxuTEV4
Q0ZOMXMxPWxpQkFuQ0B3IWoKemRvVWkzS0xjTzRqVnZJSD4teDs+ZnJePkg1ZVI2RnY9Z3l5aztS
VjAwN3F9JV4tZEFIJDJxZGEqP1psdEAzOVVjCnpHbTg0YztqdShPKCN7Pkw7dGRKPHI0MCtjOEE/
K1I+cit9ZyFocnM8eVNmIWskPDdwJTVZejhLWWpDMDdfQHV2Qwp6MmwmVGB1dFBsQ28wRXF6KzN6
OUomM3whRCpUTVpCVCtQZmBOJGgrVHtkQ14od2ZsIzcoUjFCbDxQYTZ+V0tTV0MKenwxVEpKYC1A
YWUkXmh0RWpAal9lKEN1OTdvZmsqNiVYZ2s+S2hNc1dwPk1lTVdXI25WSmkxPSpzdHRDRC0qK3JI
CnowakpfPTw0QHpDOUlacGY3UVF1SkdUY1NONjl1eUVefSp6dUo7NyVpUDdMMylFcWchTiR8cWwq
I35nSyp2fEMhMAp6KUc5O3RoaExzemh0cHxZRXRCN2VUQWg4cHJjI2skKD1BMjkrMmk3YWI2KUty
eGBXNztTa0xsUWk1KUVeVCRRZysKemNZaiRAb2d6RkttVmlkVnVNZ1ZHQWBTTS0+bHIrSXI/Pyo2
XzV0TXlvY1U3amNzfCFNS1kkfWk7PHc9STJiQFlTCnpDcEU4O1Eme3tYPjs0M2BRVEQ5KHF8b1U4
PWkhJHlxRyFVNkFeJFV9UEFfNCpoSlEoJG1vMlZ0QG5tWT0xZ1pecQp6YUMzaUk/WiVPR19gNEx2
ZXN9ZHo7eUNIfldNcH5sS0l3Qzh7SWA7dE97bzx7SmwzOGhpbCghUTckSnpIQzEwQz0KejdxKkB1
MEpeXlYhe0YrY3l7YG5jSWJ0WVQtdVh2WmZuSGNgNlheJTZAJCQrcU1edm4xYyNtSi08R040MzEq
UmRECnpMUCR3eURhdythKU9Cc3UzNGFLUTxMdjsob0o4NFFnM09rfFZgYVE8bSVnNG16OT1oVUFg
Rm96aCY7K2dsMi1eYgp6Wit0KjAmTkpmaDFrd0paWXBtOT5JVGFQQTdSWSV4Uy1KfXh7JkhhVU1r
ez5yKlZYSzQ8K0t+UWZydGF7ViQ4fncKeldTWXlZS0cxYD50ND5lWl5VfEx7bHFmI1VnO2dKR2hp
ISF8e2g7JDEjMClBbF90Sk4+JjljIzJrN2VzQDxUXzExCnppT0huSWtgdmVNTWorMSo+OGE/XyNY
OyFMejFpVDlkKCUpSj1qcF9ibzB8NmNSYUYqPCU1JiZzNEJgQ0oqN1koLQp6YXBGZUE9Q2lQPnBg
UmBmeUVQJlJpKV4yfmw0VXJ5a3FVcGtfJmNqKGlUeHsjYHJLeTMqZGVISFlkNm17K2hfR0EKek03
dUlIYEtkR3U1dXRFXj1SbUdfa3A1OTh7JEh9NThsP1RTVkU7QEhWSH1jKE43Z2soSCNtKmBxVj9r
ez9KPEFGCno5YXs5MFdoQz8rakcqV3JBMyt3QnBZJGt5XlZvMH1pUUBwQlVOM2pPfDBTbXpmUFcr
cmFwNHo0aWxZQW1GSG0/ZQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2ltZy9weXRlc3QxLnBuZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcv
cHl0ZXN0MS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgwNjRhNjk0Y2E4ZWZmMGYyMTY3ZDI5YWQxMzYwOWY5
YTk5YTQ2ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjAxMAp6Y21hKUFTNSVXeHZrZzVvMFJk
P05MWFVLJGg9QkFXUlUqWXVCe2I8WkQhcWdiMClpQiFoQCNSJE0rRTV2cSkxbTwKemZGUWp9QWt6
RGRfckZoZi1HfT5kekZCTTV4QXhnSFlvOVlgQ2MpVDlobjkrKzNJRzdtPk9SblhNNmcrZWw/byYk
CnpkfDlWP1lZMndZPVlmU2swM2dveVp4SUUyUihWY3ZRWHE1PHdKN0d2aUt1fExtU1Y1IzBSUj5A
VH0/STlmU0h+QQp6S21ebE5XPjVSJGlIWTN0cjBBQHk/eElrI05HYjQzaXsjYGUmdVlkY1kyUUVI
eF5HbUNAX2QmSkA+VUpqYDJGdWwKenpaRV49I35ZLS1tRzZHOFBWQyE1UFYqSGIpdVJwV2g8Rjlx
YWR+MmllWUM0QEhwRVM8Sn4yXkk+N3wqd2ROflktCnptTnU3ZFBhTll+Y2lZWnc4S0YjQyMqbyk5
eDZJcCNFPTk1ejdhZmppUXZnRGZZd3Y+KyojVj44U1kqbihhNUVuPQp6V0pgRyFANz9WSWFDQSlG
Q2F8ZD9qMWY3KXd4OGQjclNxIWNOKEJKO3hOZnhrYWlsN2FiKzAkPGNWNHM5X0VlUjYKenJkeSpe
MGt1RGhUMGZ4IzAwdDlaJFM7Y20hKHR4T15UZkJndEJ7ZTxVd0FwfihnYWpxN08qZlNQeXFyYElV
MnVuCnpRaHVBVFNeUjN3VigqJnRZUDZraFpQUld0YFlnUzc+UEdmQzIkK0N2SytNPjAkYjFKIWdD
JUZeOWBAZGomaGJRMgp6Q2xOUChhVUZlRno8QmQzbVZDQmBGOUlCYFoyWll0aD9JOUVOYEU5R0BR
UE93cSFYantWTk9vISoyc1JOJXtmX0AKenEjYks0bD9ZfmhsMXBiZmhJJTNEVmg2S3FDWStJI159
ZmlOaHVPU1Z7KDFTV3MrT31FJnQwUkdpQW5VJWJCRU8qCnolbX52cjg0O0lOUmxsV2JlcEYoY1U3
TDhgOyhQT3Y9fS1+b05xJjZ5KDxAdkchPXc7KmE3R2JGeH5fJT4td3wkPgp6cUc4clEqOC14LXFf
dUgpOCY+Wm9BU0B6V1FWcSRsbnFqdCRJaWskKllFPCl6VElrbyUqclEmV3skbDd6Nm5rfksKemlJ
Zj85SyNRJSNgalNSPGdfSDVyPGJ0c1c7R1p2MXN6OCM1JEFMODVtIVRmZWVXREhPVGZEN254YDJw
dkthTHNPCnp2d1BpazA3cW5KK2A9TDY9UCQmK3VDTGd0RWpnSmRkJXIpS3VeKFohVEA5V1BCJW9n
WS1ya1B6TTY/JGt5VU5CcQp6a2UrQXhuZEE+bD1ePiR5WU1Wd3NFe3ptSFElJiElaDZGYmtabDZ8
WXlnNzw3OUFeJjhEYDZ8I2NtXlZScHh6WmcKemU1ZFUjRHx4aDt7SnBgRm8meGV7Nk9yYVp5JTxW
RU4jPEtJPGh4OCUxVmZkaVBEcipmOTcraCg2IXczK0NkSDZvCno7ZHYlYTtFRElDcF89SklmKUtA
fFR8ezgjZWZsVWh5RiNpKj9SMkcxblAzfEk3XzlfREp2RkphQy1adFhKVGQ9cAp6KFMtISRmNElW
O3wyRiVOWVlzTyQ3fGN0NUdubGRrcVRXPGVLJFVjZCRhK1Ngen5YfDs7QUU4dXBjeHJBYEE5b1AK
ejNtUGx2QVNnMyVjUCNlMyljPUVNIX5LS3ZwcHhwUHY/TkczazY1SXpmRHZ3YkVCMUJ+TU9xPXNe
azcyQlpDRXs3CnprdlojKnlmX0ljVGE4KGpLPUhxVyZ5RHpCT24tM0ZGbGVQMiNYP0tJfEQjVngl
PlUzUXtRalNheyhta1VEe2RPPQp6Pl8qWDJmKkIpWT58TVlrTylvfiRNYXlEPUArOEQtP0hFY19z
IW5YeV9tcCNnVzUtNyhhSU5MaldlcT8/U19CfEIKendVe2FxLUU4QjlrZE5CaTwwV01QTGd1MXlE
VG8tR083SXFXPW9FVi1lYzV+OTl4XkBAPmxGfXkqSGlwe2J2MkBCCnoyQENofmVKT2lPSyFMPVRP
WHNYYkNnM3FMbUJyVmlMJSpUaXRWNjRyZHduTk5TWDhUWmwoOEVGY1hnbWROSHM+SQp6bDlzUDBh
ZUJpZykhJDBWSlV3QE9ueWczTldabyNxKHljTig4SkMqQV9MSnRQdFFuPj1xVyQ8eDI3SiVpXiFK
O3EKejI/aDMhSG08d2skKXhtNW51OEJrdEwzZWQkU2hgYitwfFEjM29oKn0rIW1vNXo3I3lmZVdU
UzdYX1M8VE56X3wlCnpCbTZmWSYtQ1AwMmUpeyMtZ2tCMmZ3MHBeeXdZKjx4JlpjMnBXfmdqbVI0
WWk1SClkWk1ifnVRM2wqY3V7S1RPMgp6UWpgNV4rP2JBfT1hIzlAUilZNyFofUc4Km1BRnFVRmdH
e2h1b0g+ajQ7IUk3JmxTVXQ+YUxARWNoVyVEaXxyeFkKelhCa1k+QTtlZGN4YkJgfjNQeSElayU4
TDFafXVNeGhzU21vQCE5ND1aRHh3bTMjNzM9NHNSSm8leVhhfk9ZaU0oCnpaWDEpbDFLJjZiKnQ2
Y0Q1MU9tZGBNVWtJWGFPVEVvdE8rTmE8UlpYdm1xaXtfWHJDKT9FPyZCbVI+fkNKXmJhYwp6ekJQ
eTk8IyNBYnJBTX40Z18pWFdiblBCNWNTTEgpQmxobC01PVNRSlNsRDFzczxPa1BFYjM2ekw1Rylw
e1dZNFEKeko0P1lWe219eDYjTnNja2RrKXhzRn1mfEpxenY0RlZyOUw+NC1+fDE5MHUoakVEfEFf
a2QqbmswdWhsKG9AMnp3CnpfJFQ9ZCVSMHJMKXUjQHJ7byVvSXJ1SjZKI1B6YmxsTzlwJnE5UkRj
ODR8TWVmPCpfdmJXYyhJQmBIKDs/JXtKNQp6VGtqVml5ODlNUVBEQFhvKlJ1KUFRVWhINE4leFpK
OztKd0dtVChkcDFLS0d5biRZTVdYQS1+I3pGdXMpYER3VFQKekc8a2d2NlhiRHFEWUNKTk9FfUJm
ezhoeyZaUEc7aGIjX1AxLTZ8TTtjWUhiayR9V0cwaEtsLWNYU01KKy04dGhlCnpYMjJkVnozSHB3
enpyLXsyeF93SWYkNEpLaHh3RmUhOW5tdDtnUWRtOCgoTzE9ZWJ8JW49WEhvVmVpMUpOa3NlSgp6
c3toNS1BYFozTHY0JVI3R25fLTc8S3wtYSpFc359NXw+UjBZOCFRdCoqZ3Naa3xLZlJRU192KThr
UGgoRyN4KGsKem5FT0gkKVQrRWgwYyp5PVRQflZhOSp8PF4jKnNOV1dUUzQmTmglQEExJXJraCQ+
Ynw2RDxsQlhwaiFmdTRjWn16Cnp0VmZoQ3pOQ2BNdnl4Z30/KzQ0dENIZ3xNZm5mYiFxWjJtc0tV
K04/WSpZVTwjdUFOLU1uKmItNkMpSE09bUZ9egp6N313cDVpTVo5fkNmfXBpendDUzdvO1A3bkkh
b2MwNV8ydHBuMHwtVWhpJUhqYyo2TnFxZStoTFpGWFdObnBgakQKekhUMihVYHpiP24laDlkRjhn
SmJLREdaeVlKOHExOSM5O1RsaTV4QHs5akAwNyRWZUlKODtHNzVBQWNEZT5zfX08CnpDZW1yK3py
S0p3LUZMaGpfQH5RcW9VNXY5bF59KHcwSzAxKnJIajZ0XyslMyhSOVNFb2cqWk8yTHlSKnRSRXlo
cQp6cSRrWVUqTVAtX1hhRTUlOVRDME1HIUVeR3FzdSlHIU5GNE9qZ3hrQ2hXZWMlMTlnbUJwSD1R
VGJTKzlrWXhvaHYKelBmLVQydzwwXiUtWT1UPTkoNGlkY2xgOWJaTV5yRk1SWHxleHhzYVVVeDMk
RlhALUpqZm8kdl41THRWWlpATmNaCnpzTztYWFRORWlyIU1ec1JOelpsWXpYZFQqNG4wVX5AaUsy
QnVpcX14TyZKUVdWfD1FZW9QZTQ9UmxWV0krfnxvQgp6eHd2dnluPGIkdU1+OS0hSDh+Rl9MQG5l
ME4maip2VXEwfmZtejVWM2JYK348N18mREYwJCFGaWVyKXJCITZWWm4KekFOZkFJeFYhNl5uPiQ8
NjljXyUhSXJTIyRDJSFqRkBzVXE7RFhTZ1gtODlVU09GcUcpX01jLTtaT2kqUmRoUmZlCnptKFFK
cipqck5KTXQ9UmZFZHklOEgyKmU+aVFQfiNiTF9CQjY4OTZgMVROVVVpNUQzSmVYYVFOekpvUHpS
N1B1SAp6JHZ4OUtxfmVaQC11PnpBTkpSKShOMk54N1BLfkhqbDZwOWFTRFM+YHVTeklZYntFJU5l
YiN5SVA7flJycWVwdnQKemVEMUdhPWtsRm5nWDI7KUwhWkZtayVKMWRkRVQhcTNLRlVAOTwxIU9k
TVRUU0teZDh1biV2fGZOPTREeDUtRWl1Cno5eF9NWEZOJkFuQ2lXR3daeDdMUVFwPilEKytkOTIx
MjVHKFEoUW8hISlDVHBBPiVIRVJLKj5BaSVBMEhOKyQ1OAp6TWM0ZHpecktTS2xXcmslNSNAdzJt
dUA2TTY/aW9ybyNIPjhzb3prNEpUTXpJWkVad2U0T1c1Z082b2JFSHsxQSQKek49dVg2Tj9NSipZ
aDlvaVVyfU15VS1PN0RQS2ImJmFvQE15Ujx2UWJTcko9KCZQVlpnNjhMJm1QYG5LVTteRHUyCnpp
akZUUnRFfmxUZjg/b1QjTVQ4Y3V4Ylk+I0MxaV4mJHE9X08+S1JGaHpoXkx1RWNTVjN2KlE5bGBP
Mys4UU5tRAp6NTtGJjBye15vKlRoVkJpaFNVVjxpIzBYPUItaSZ4Tlg3e35qY2FMZkx8VWlzbilH
dSYmWHRiSFdmMWczYDxFSDsKek9HVXxNUWhvamBQI2dDZml7JV9ebTc8QTRxdHpgJDUzYkkyR0hF
P1loXiQpemJRUCQ2eGZ0OHA9NDhhNGB6TEEwCnozMHY4WkEoUXpxeGA2VippVDxUbEprZnJEYjF9
KlpLUjI4Mm1COz5me3NSNVRTSj1fbm5jcT1kenNzSGokfE5OKAp6OFNsYSZvdD9xTkJYLXwjcmtZ
RUZva0llbW1wSFRZYkReUWdTIzZHITd5QTUjb3tpa1Z0SHZWMyRgbWVyZ1RLY0oKenReUV9hX0lv
U0VkU2Rua2FsSzlWVGprdmt3RzZXN2wrZ0JPelJqSmU2Plo/Y2VPbjErPUxZNEUhMlB1ITwjWFRh
Cno0eUNIaCFmYEV7KXpTMig9NFNqX0ZsXj1mTEJCVD5HfithI0J+TG80dm1ZUHl0fSh1TVN9a31u
SS1yeHNgZiFvOwp6IXBGQUJJXksoRyFXKiR2VX1XajVrWFd4VFJ+ciVHI080RmE5Xz5ka18hKWFP
UD10ajgqcG1oUVg1aW9OezBaOWoKej81YFFmUitPXm1qX2R+bzl4T2Q/OXtjJUlrZHROd185YDxv
QDkmYmlqJXZEN1RhTHVwcEg1e1Qte0V1R15BJEshCnoxT2YmRmEpNSFEaHdIXmxjMnlMKTY4OVky
JislLUVTSTF9d1M1NmpFRDJXRF5eKWM1Nmt6KSMlcU0/cDhFVDVfcQp6V0BlMnw+b3lINXBpfDxg
XlUzaHJQNSZObi1CJjtEPUhtaktUd0UrY1p8IW9jaEtJTVdPZHEoS3okSEhrZWpYIU4KelFiSjE7
NkVQNihRPSEkMTdON2JJOWRXOVAjN19OVk18NXd9XnZxVD9TZy12Q2M4aFYodCZYSGhQRWtAdEJr
Q3o/CnpGcldvMj4oJStOTnlPMVlhQiZmJDBmYzJgZXZ7KmctRj95JGtoWmRKMmFaMkcrbE18MFVt
THZsUiRjQHB7Q2QoUQp6QzFTNTsocjQzKj1JUlI/SWl6MV8/M3t3TEZgX3gkVGxvO1NhI2MjSnNB
JGM0Tlg9YlBFIWY9ST9IakpzVyVvYn0KejNqTUdHXkVhVlo7KEZMRXF0U0lyLWR9VFlkLUlLUXNN
fTk9Ri1TYm5UYVp8RiRvamZxUjg8d1Q5I0EkTmY2Vm5SCnp1fFZfPGwzMyRGcnVXc3VqK3hmaDAx
dDBTLSE7dG8wfFkxflcqfGNmJkc+dV43TXBOdGgtWGhHa0JLMzNWYXZ8bQp6IXJ8MXl1S35gKGN8
Nko5bWFfeyE0O1d2XmtleTFoKCYjY348cF9NeEIzc1RXP2R3fjdlQyFBfDk5anpjZzlJbF4KenFB
WG1QZGJIVXJafmV9NT5YezxzV2M0UlI/dXArKlJBaz5+OTchd0o7UDNlYVBQIUdsIXx7dzJEdC1G
cyN2KEl4CnoxPzdsLVReRmJ+R0lALVFFbXFDZFJWb0VeUHFARk9LPjBBdTBHNkUwIW9VQUVudHJn
PS1ST31gbihtT2IxeERJeQp6dCQ9ZHFxQmtlMW5hMy1SVVhwYSQqY3FMem10NFltMFBoTVcrMytE
PnBoM3dVUDxJcGA5bTA+ZHRWTV4kMVYpKHUKenduKU4qPzA5PXJfRztgKlAtZG8wZDdkPzNNSnQ2
ZTZ0emc0WiFALVdadE9QYVRDTzRGX0hDb0JzS0Umb3ozbTcwCnplTTtYNlEhRTY/UV99eWxGemdj
SFZkSlcxbVpOfCFHM2libm5PPG0mbHd4NyotO3hLVkw+bz4xUnNxdz1tPmUqTwp6KDU/YFZ6Yn1F
WUtNaWNQKWlvTWVfNF9EUjQpeiU8akx7N2I1RCt3eWAlIXlOTWliOys4Ql50NlJKP0d+UjBfKSEK
elgpdClFVkpwTW1ORyF3eUN5UD59djVISVVuX2B1X0Q/NU9WP2YpZTJZR0cyUkRweXZuNyZ6byso
Km13eSU2fmEjCnoqWWQqY1FDOzc3WkVaeGBTbElzMT80fktyUUR3aXpYQTd+cT5aaEB4e2Z0P1Yj
RXMxentSYzJ3eFFVZUwwUG8lMgp6TEt3YHMmTyVOQjFZIWwleTxjPlZNV2FMQjQ2U1htbT1obkxu
YnNoeD42cyNyJnlARENwUXojT2liOTQqZnBKUzsKenNfYC09LTlxei0oJVk0UG5Ffj5fTjF6YmYw
I1RvbHBASE9XckE0I2kkd20wVkY8citkTE5DMkFueDUkdnZwUTtgCnpgPnRoenZBTyQwQEZjTFJn
RVdGS2xuZTgtSG4rITVpYEJgOXBOV35MbWh6Y3wjMUNpQygjPFRhR1YpalAyeE1mTgp6RyluJHgo
SEctIz1rREY3WGw2eCp4RGhySmUqY3RDUnI9QFd6P29VYTF3UnxjWDNHan5HYmdSTiRjaSl2TT85
MlEKentLSCYlJnF3JnVtaFhQUmh4dkVhJXE/bHJGU3k4R2prb0NObUFaNndaX3AoQUs8MWVGJVRq
fihsUX5feStAT2ViCnpNakBqZ2RONj85QFo0NC1PUHdEYDJ2eFBhdjd4JVlEJkFqSHt6dWYmWU5e
VShncGdLcGpzcSV9Y3pAM1BNNG9Bdwp6dip3QkEpTmRRbV9sOHV1Pz4wRTRFZiEtJWBaRTMwajg4
fFRXRVZDNGt2Kmk3PWwzcCUhdmJ3Qj4wTTJ3T0MlcEUKejM0dXojZElaTzlwR0FgYWFfX2JhendK
dXU/dT80VnVXPXxrX1NWKGJJLTFEcFJwXkNYOEdJX1R0c30xeF5XNTBOCnpXd20oVz1DLTFSKkB8
MitAIXlKYER6aiF4MW9TMyRuWGhpKkgkelNAUnZyJHwpVTQlbWZpQEMyampYSEJAc3xvQgp6bGVA
ZCQ/PCtSPlJRRURJaUBAKnUlZ3hvKlE1UHRWciV2VClHaD1zayUoPU57cjs/PU12czViX3JYPmNz
QC1KYXwKelZpTGs5Jno2QkhibHNLTD5HZUtAQ0xgY29UPD56Xilie3RJOWRHIV55R3oqRDVYdjZ8
MUZGREMyKyttVnZ5MVJICno9eTB5bkBpLWBNLSFueCEmKVdCRVlpcEN8OEJNfDE5cWpDayg+WC1N
I3F+RGs/Z2NUZ0ojfTtaaikpN29QdmBfPQp6U2xzV3RzKVc8aU44RVN7eFctQiVANkByayEhcD4k
KyU2R3RhJUlxN3B7eGgtbk5JPFdgfCR5fkwjal83M2RiSFcKenV9O3YkaEFJdWlGNkJLQkowO0B4
e3VYdXtHVGR3PkZLX188Ml92ZUtSampVPGgrSSMjTi1OfUBoSXllQUwwSCg9CnpjUHg/bWR8PytT
RktHPz17X0BgQFM9aEFheVc9NDBaazM2TyVNI2Qyc2NURCNoXkxzeGItcFAzUnFkcnNiKW52Twp6
fEVnanI7WUJtbjEqWERSVG1BUjFwSCVwamxFPl9rIW8/TVVSNHJtKTZeKm1td0w3a1NWWHJLbzwl
SGpHYTlfNmQKejxpcWN9JHZRdENRNGJGOGVOKWRXRitWcSM3aG5IRzRgYn1zeXszT2RIITE7YCRz
ck1udk59NG0qdno0Zlk0U0dZCno7dEZjZSRAMjBjKGByTzJvaGQwOTM3NVpxI0daMitaSmZwcFB6
cy04cFNyQmRQcks8YDNYPjwoekw4MyhaeGhiMAp6dypMSSFoMzA0R0FxX0BCU3AwdEdvaE01TzEq
azFGV2ttVXU/TmYxYVorNWRDdDVXUnwmLWwxI0JNeTApb15IUV4Kek5Ha0BSbFNyMFZEYH5gUlZR
KVNSJUpMbWBocU9nQGI7PD8/R0BZRVNpX2x1SFl+M1ZwI05CVGxyYGZCZ1YhWm1vCnpZWCF+RWlX
Tjk5ZGRCYF49KlFONmtJdjBJQFlCbiVNcigwWEdxYV8pUHZ6amxkNi0wX29aUUB+QFBIIX10a3gw
Iwp6JDwlamsxOyVTQlBAa2pXaWFESUI1QzRwZ1J1TGMzRSp+PHtndkBlRFN5aUZFYVlOfFNobGFn
XzwwdEZYeTh7ITgKemdBVHY7R0ApK2VhVGgocClOUXRKcistIyNBIUx1TGBuI3hRKit4K3JEZ31S
S1dhb3B4RVl4PSNpbDZsYTFPNSlKCnp3fjN7XmthbihQPEdBYmpzPEFkTDRjYzxyYkU5IWl5d1Mk
JTxUOStwUlFPWC1rJFEhPiEpZkFZaF9HPHBLfTleRgp6bj9gNGVTJChFOHowWGspeFAqXkpTJERB
PT80OSheQERRMyEpKzQrUklqSVdfaUoreTxQaDZQeTtKaUFtSlpLITUKelVCOXN1e0xDRWo0ZTRg
Mk1zclJJMWQyNkRgcH4+fEJVaXw+T1ZFbFY2IT02R1RWKlZ7IzFxaT5xWj0kQ05aP2J8Cno/KVpZ
PDMxaD9GbzFhYCszNlM9RGFaZn5sN3pGNiM7LX1fOWBYZWhVWnBhaCFtZkxkaXN0YUo4WC1TZmRW
eEVacQp6aCZhYHcocVBec0VyamU4M2NoQTIydFZzTHcoSHk5M3VyTSQtTlMkdTlJR0MwPDJLWHMr
c2opSktRK2shWnh4PDwKejFoenNGdEl0UmBVYFF0MVMkVTthNj8hK0BSekwzTCQqSiktREdqXkU7
bWJ6Q3luIz4hVns2P2YyUk5BKStIUVgwCnp4YWEmK0tiP34yI0otZl9pNzJoLXk1bH5jVUpHbjlB
azR1bU9nWT9KT3pnJFBsfWJVb0VHSX4kUDhPTXZMWV5zUwp6OD1LWTJ2KTxOWkduJVlrVyZkaDBG
K1UrNENBQU9aN09KUyZWRmlLR2R3Y2BHSXBsXktkd0ZeMyE2fWd1SitheXQKenlqR0lpMklFSng5
O288TiFrWTZZQXwyelE0dT5tOytNQmA+ZXZPYXdgYllWJW5kPU8+NkdscitXSU58YVQoM2FDCnpI
VzY9QnVEI0JfYz0zM1o/Znp0QVckb3M7WnJ+JiNgRlY0X3RjPVJ5ekVUWDh6V1U/R2NUP0p+aUN6
bHdpREVEUwp6byg8ZXE/MnhsWUBWT0h2P0Q2Zn1MODNOYWBFTGcrSyl2QWI8ZC1pT3gpV1pmaShZ
REtgM19gREcqP25Te2xVM0cKekMzS1VDaG1faj1tZmRSVCEwViQ1PF9zJHNFSyhLaGpQYkl9Vk1G
MkM+MTFXOGRvO0JfcG1TYWtqKnFDLVNKTGA9CnpwQGw7fDVlOH4lPlZNLUhKNHgyYHVsX1d2Sip0
eyVWVGE2NGU/TDV0R3kyQUpwfkNsJHdDa1pTe1ZaV180JCMjeQpLKHlVYXNMO2U+fSlfdXRVCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1n
L3B5dGVzdDFmYXZpLmljbyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHl0ZXN0MWZhdmkuaWNv
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZhMzRmZTVjOWY3ZTRhMjU4YjBmNGVkMmNmMmVmYjAyMWRjZmJjYjIKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3NDIKemNtZUh+ZHFgN0o5TExZcGkybXFkXnE4KTZ2MXZ9
TnIxflN+bm8/PW9Ub2ZUdWs+TVlFK2BDdShRQVNTRXcyKX1kCno2JERYUFQ1T1I8WCU3bzJEPVNK
OXE2aFFPRVUzc0xqUkpjfXg5YGNURSF8YTA0WEd9Q0lLVDd5ZWVkdHdBTHBKIQp6aD1feWBOZmJk
VEM3U1ZzIzFjWkooaCRAfEJ1UFl3MThzMz1sSz5UPDxBazJwRzc8KiUxRmpEJVE2SlVee3ppb3MK
enJ4Z3c+eyRablZyJEVtQGFkRz1GPX1BfTZuWnYyfDt4TiVDS0RaLT4meSUydj1QYiY2RmRecyo0
QUxrUlNLQT95CnprP2A8dDRFJWx0VG1VeTxQYVZXPCZ+NzJFU0tWNTJgMjdeMUxwODV9RE02aEwo
KWVHaV9uUXM0aEtmQUQ7N2IxMQp6OGE2amdRez1RSCFmelRfIzxMVjx4UyRYXmVwJX5MVl9rZzF5
JEQ2RnpZTS1SeiNFPklEM3YzazxAOHM8SHkxemAKej8zNUFGJUpyV0woNG1eMmYlPFJPbnZyO1lU
cHp9dUs5dDwoemxLaEtpWF42OTFIVC0yJitgQEs0aUd3b0pQZldDCnpUZCMqLXN1ZjcjMngoPlgo
Vj8wPHw3LVFgZzxTbFBlTTlKYmpmeXBWZXZFYFpFaEJyOGp+X3VoNUJLXm9Oc29Xcgp6R3o8VTVT
RD5CZTFMQ1RWeUxuJSVhSkgwVnBaRWFVZERgTmZFeTxCRipWMiYoR3x4TGdKTlBVfnlwYnpiK3oj
Y00KejNBd09tX1dZWmskY3pTJExgJThsaU9+QkI3UmM1WD99fCptUklMRzhpdD0pZUV+VGJZeGdq
cktvVSpsTWsjYnZ8Cno0cnFCYXQyUTVxUFM8JjReTzdzfE52Y1kxbElvT1pVVUhSUW0zQ3c8QXNu
JT9PY3UqbnllNn0pIXBzQV4rYF9QNAp6RTVyRWdNbmdwcDRyLWY+JDElcmVYTkBOdWpHPnxqSjhU
PGtfUyE2RnVmdTk2Y1VYLVQtNUFQazdMeWxxSGk5PDUKentRPSVXVj5RZExyM188ckZecS1CPmF3
dGA4LTFtQXYmbSZRe2xJMjZtQyR3QFlicnIodTBYNzsqXlN1VGJ9UG5QCnpjd2kmZVFxME5wWStv
KXFRIz5jNC1XP15zU2BzYXpRMlNffUdKTzUrIVVeaGdyKTcpSl9hYXwlK0JZLUh4bnVtJgp6RW1h
YSNQT1dAIyZQNz1kblZafmBiU3FxdzdwUSZtZz0oKkNxMXE+LWNCPHkhXmZsfTlNYkQwWUtoS3ZV
fExFUEoKemxaVjZrUD5iXitKK3BPeVBNJDkwVlhma05iMHElREtJR3BRKDg9Pm87cTxHcV92KDsp
YllKU15wPzFDYHAmXykwCno8NjNgV0JJO3VXMiNhbmw+VzRWSENgPkZCQWUpMiMwJGlpJEthYGZW
ajxNUEY5d2h+LWZabmYhOSpoXzJgbHM1egpFMFQxbjVBT0hYVwoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy90aGV1bmkucG5nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2ltZy90aGV1bmkucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiZWI3MzdlNzliMjgx
MTY4NGQ3ZWI4Mjk4NTY0NjVjMzY3YzQ3NDkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxNDc2
CnpjbWJAdFhIKmtrXmZvI2FMeSM3VjcmPUc/IUI5bmRsTTt8RkNES0UkKHhzej5CMUF3cyhnZyVX
UGBaRzAzYCswNAp6MnVLWUBkV1NjXl9rWjdlKlpwdzYtN2B0JU9qJkVAV00pNW0/YEo+ZnQmV3h8
KjxKZCgwMDVBd3QxMFVOMFJCVDwKenpZJmEmYF5CJCl7VHNLIV5VX21RMVMkcD9IKnAmdllZa09w
O1AkXkl1ZW1yMHd9PCRwbnUhK3hrV2x+ayNSRVFNCnpMMil+WXl3I3NRQzdLNyhrVnVsQ3R6UGow
MDR0IWJ0WUdrSldfI1cqaXxQNWkrYHFsalFNZFYyZiQxWCVJNileaAp6NXlkNSp1PCRUMTQ9ZndB
ZHwxTnNiWUd6eiF5V0BSKjhPbHJMJUZIUDBhZ1NIQiFKWV89QVZnQTJiQG11N0dLez8KemFTKEQ/
NXhuS2hJXl9ATG1+UWczWVl7bU8rSWB8PjJja29eUlh5eWp5MURtRjtJKnd1czskem18MkVsZGE5
dEJ8Cno2dDRTX0tAcnpZdCpzdWE0fmpfazlNRiR7V2Q1KD9MclNrRSl1Jig8SSR9Z29QPD8oJmd7
Wi1vPFgjTF41ekkhWQp6bzU9QlkxZE9ETFRwQWltZkxOQ3BAVEYqPWcqNFNAbys3WD8oaUhLRWI9
I19HN3JgYG1rI0w0NFNJU2NLWEpnemMKeml1cHMyTVRjT1ljYFluaD9oY0U8KVk0fWNXRFY4QWRE
WlBsJGpJSk5iOFUrfFBndFJKbihobnFSezhjcl8tSF8oCnpwMnNRUypEQGA9QEFTWklNYWk5REtQ
Yms9KG8md30/TEtCVipgVVdFMCYpPVNGMlRUOzA8VDU8MW1pRHVxYTJWdAp6TUd3Pl4qN2YpfVpP
UmNvNWAlV2FJb0wqV2R3Q1FkQ1l8TSNgQ3I8KjV5dFJjZXs+fitoUGFnUzZTQEpjPUkqfU8KejVr
Wm1AWVBJXyRTTjJpVD9gYkFTbGhvcn11ek01NShQOGR3T3xnQ1JGb0oqZWR6TUVlP0J4SmNfakNC
WXlBZDMzCnpETTgyQDEzbGktPE9lODtFRF5YNnNOQlo1JW9FUEFnKnxMQTcwPDVkVTlhQk1sdVlx
dEI0U1RhciFwKzdeKXlrWQp6Z3ppWjY5V3IqP1IkeShhOUxzSTtWYTlAS2JTbnlje3BsK2IlPEln
VUlmc3Y4Q2JQOVNee3YrXyRzQGFKeTtXYiMKeiVESXBGTTctYFE1bWMtPVdCXmJWLVVuZ3RKfHpQ
aUphPDxsSmZZKFY2NWc1I2xuelJXamdVPChAdztMOSNPRDspCnptKHs4YSUhTVJ4WjMyfVFxb0gj
eCZ6Q0FFcyV9dTVqfDg1TS1ZKlZOdz1Kb04pPVI+O1BQNChjZD98P1h3UExTPQp6ND1UMUpDZ0Q2
Q0c7RDdta1ptP25oS1c7fCFAZkNfWVZ5ajxrKmJIelg/T0RAViRENHoqej14I2Q4WjNra0Z0TEEK
elo5LURMZ05PWGRJPjQmQHBoeXU2IU4+NG1CLTlnXmJ2KkxFZWw+PmIhOU5BYkMyNGhnZEBTQGU8
QFVeeUFwY3khCno1U2NGb0F5a21mck9ATEE4N3M0S2YhV0d5KXMrN1IlJXh+MG1xQDVyTyRUdSRy
T0AtZzE3SH5HWSsze18rcF89UQp6VkV1b3VZOzlTRGpAN3EjMiNRQjJDWXE8aChFN3QmI3djUCtS
algqPWpSOW1fdjUyRns8fnNwT1hhZXo7aG5FJmEKemJiMEJOUWcjM0FefH0hSG8/Xk9ubihta0U8
YUolYjJRZ0lkVlZkO1ZFJHI0LWppSilkYzI5dlolUjxlYlJXP24hCnpieH5kUVNfRSs/IW1HTWlS
R3FfOG5OMFA7YTRuKS0/YF8mNjMjNEQ2dDtzfE10KWl9aHo4LTVpJSVSfFVWJUxuSAp6a1otTEpB
KWNRXnpDQGY3VEJ3TTskYmgjejhOYTtLTiNKdllwNHghMWV6MX5jJTE2Uz5pWVJ+JENFQWcqdlJw
JUgKekI/PSkrMT5KMylCbTRlaChmRGkxbXg8NC1wMU54NFVfQkxqRzhIV0Ila2hidWdMYGY/WSM3
bn5BZzFHY2FxKEFFCnpLezllJHJgbmtMX2MoKVhMVno4NChHeVRNNDlAfU1HWi1nUzl1SkN3Sy1E
Xk0yNU1QSWdNa3VRNzgwVjFYZXc0agp6Q25oT1QtRHRYYEt8NWwkb09KXkUxX049dXZ6JUZEcXM1
VWFRNWJBJGM5eX1ncitGU3J0VEw4Z3Yyc0thVzg5VGgKenIzVUFXbjFETnJoKVBIZEV2Xj9JPTtl
RUladHVgLVk7VGl4IXM2SkFRdlQwZlNmUGwycUFnP2E3KFlkQD1Bal8pCnp5RzRhTWRjO2MtcmZ8
QmFsIXtYeFcrKlpNcUlsNW9hOX52ZXgjTDx1UnsrWSh1VUxRPEVUZ1FsUFFxUWRWaihBdAp6WHs9
K0RsaVZMfDk0dUs9SDFyaUVraE9eQ0plKS1hYTVrOHdXfkQ/O05icUVkVTAwVFRQb2JVd0lUQEs2
cnd9RzwKelJ3RHVqVSVtfHhQaVJySFBFNGhjaWRDQzJtc2tifDk5fnxscl5sLWZxaipYY055KE5o
Z24wcjI2a3FtRzsxOGFmCno7am0wRjxea0crNHtZLVFqT2paYlkxdy1zJGQoTEBENil9eFdJLUw1
VklVWGpVME9VPC1SRUBXd1lxUSg7K3xpfQp6KmgkYXNlakE0NUxgPklBN25seFJ4ITJeWWliJUVI
YWJvTUR2cWlKUF50JHhBakdZVV9wemsxLVhpfUJDbnBFNlkKendPcSpePX0tYmZxKEYqcEIzMUgx
dmpPQytBXz9fPUZNeEVeU092az9eUnw7fDA5dF55aVY/KnApMX4yNT8xSi1mCnoocGl5O3UjMHM3
aCtZbVlzJl5VcyhDdEIrWUxwTlgjd005ITRSPUgpdVN7SiM7MCZRUjAjY3lLUHBScmI2QGxRJgp6
VnVnb007UkFZRDx6R0I4OUpFa21uKCpZSSM1JGIhSnFLSloyNDtfQGRQRGdqeS09RWtqaSRTalgy
Z21TMDkmZj8KejZocWxiTDcmSCsjN0tRPUE1dWstVEJEeHlzVjQmaDNKZnJ+eDxVeT05Vkt0d0Ep
Izh7fDR2YnpQXkdvTk9Zd0o9Cnp2JG83TiN0bmNUUFJyZGFXJGtZLStEPX4wUjsxJk1nMW93MTNU
TWZtI31URSo1QzZrczBkKj5YNj1rVmRCTXheYAp6a3pobVgjWCU8TWxnRChTb1ZzWElTZFlYQ2Bz
Skd2dGJfc3RUSiNZbmpHJChQIVRePE0qY3hHb1dNO3A7QFJMT2YKejJgYHhDN2ZOPU5ORjwqNE5w
bnJBTV49fF5zZjBtIUdNWUIwY1pCIXh6bEw+VDcxYTwxIStGMk9DcSV5OWo4e0w0CnpLbGBxfk5W
VUN8SXpfPk1UR0xFP3swMmZha1EweSpURVMqYCRQaD9XaEVuWVcha01pUVBubm5jP1UzUnB2LUA7
Xwp6RF5GM0RTR1J9c1V+Qjt0P15RKlYmPkdybmZEVmIpYkF8WFpYX3AjdjxYfTB+NkZHITkoWWxk
JWxxaVdKYyhAS1IKeks2XyNiTFhadVdHTkI5QVJseXMyeCRhXl5Dd2pEZU8+IUtIPkY/YSFOTlBF
KENRdUBmYUIjMkdmQXB8N1VAfTZkCnokVyR2KWpqT3tkU3ZMfWJGT1A2NnFFVTwlYGprd2kkWSVA
YmZMYXhKR2pnanIrYXlGc1hjODhUYEkqVjNoJEVhYAp6Y34pQn1FRnBmVGEleFgxRyteKUh7NlA3
JHljej5JQTAwUGtGPEt1RXZxSTZNIzRQaF5JN1F6a3cmZEtqemZNZmgKejxJQz4xMGtefjc5Vzhp
I2xEPSZAenZWcV9zOWRaJiNkQUdAKUlNfUpzX1MzK3VCP18xZ2JBJl5Cd3sxUEsjXkBZCnpYd25t
eF9JVT9jX0tkUnIoNHxpRTY5V0pvOXVLSjZjQElxPXtSPzYlZ21qTFVHV0M0Tm9gKXBCaSQ9YChS
cykjKgp6N2BxUnt5KE49PSt2JTBJOWh3ZTIkeG52QiFSKlBAYUd7QHxDdTZfdTR9N0wyKUJJSUJF
X2BIVXUkT25raXp0cz8KejJrYyFiY2pONntaKUZoekAmbzY0b2w9c0xUSWM7dmAhZ0M0KEN9ZmBA
dllaUHBkX3hARiRZZ1BjRihqSmQoclppCno5YFJ+MnpVNkE0ZkB4d0gqTXRzQkx8T3VfdytEVz9Y
emckaE5XRERjdylrKjM8NnlDcUBzKVl4emNZcUMySDJreAp6MEsqLTchRmRJXmhNWHxVc1poP1F4
WmUxWU0yXzlxKmh0QFIqQUJXKV47Z1BGT0BHKlFhPDtUNmJ2e3sha30oa0kKejRYOGd4cEBvMkcl
TU07SVhlPksxSjtZTHhNO0o8S2k4a3hUbkxEYjByKChRPUxyYnFoUFRKSENaSDR3MkRBRjV1Cnpk
SW88QSErUnMpQzlgLU13NzQkfjVRYiR5elV7bGRxZzd7JnZaNjklan1xYWs4QnQtQWhlbTR9PXAp
Xn0kYHAmZQp6YjdKQzQ0RzZydkZOZ3BHNzMofGNAKWFfdDtvNF5ZcD9ldDhqVGN2S0BkSVdCWm53
d1c3JEU/ZDRxb0s2SHhxQ0EKemM3Q2pXSkpLQztTWDthbnl1WEdXJGZ7dXlJZjc5e1N9Oy1rMncw
eUt7OSZpJWlyaz8xYVdKR1VKOE9JTTQ9ZDhgCno3M2hGU0okQm44JlI3YmUwNURLJENtYmxGRUhR
TlhnbHZCJHY/UX5hPUdhaT1nVXtPMWcpejdUNUVWTDNRYW5OMAp6VWlBbHotT3F9SU9BUzhkbS00
MHp6Ozs8UkV6ZXF0IVBHdDlTSSR+O3dUY2ZMZiZgbD9IVTg+RTAmTDtMNC1qO3kKengxRyV3amh+
dU49MXZRI3dXVXIrYjElO31iRVF1PHM4em5AbFhhV2xQQnlnJDQhenQ7QiZoZylgQ2ohVlYxKjdA
CnptK20hanpGeC1TdjJiZyNfPGNGazsldytfc2Jrfms8SjtYO0ZkJCN2ZEsmc0QqOS11cCYtLSMw
WnBXJiVaJnc/Jgp6Y08mcjwoPCsqbUR7NXp0VlpeQjZlLV5aNmZqZDxNdHdHbUpyd2l2O2xFb0t+
ZXtgan1IeW8hN0Z7aHs2UFVqPioKejYhfjYqZylvKz0xUipkSTljSFopaEtHa2xMbHskKVA+fVY5
TiRVSjsjRU4tam9qQW15MWh0SmpyQkl+fip6PkhZCnpXViM1aC0qRkBhRmchKWNkTWJgK2E3VU1x
OEtMN0hLMF48SWlzdUN8RCF4UHppNHh1NTlSK2N0JDtaWVVUT24xNQp6Y2JHVikkRjRJK1ooVm9i
QEJXSFh0WmtZS3sqM0NwUXxUPzNPOTIzaHthPHhGeEB9dnAyOFEyM3w2RUBfO24oYCUKeiMwJHtT
M05xYEEmVz9SPGF1M2tPMUlDeV9tITYySUpPU1BqMXomdGorTE83QSEpeEI0cHp6TVEkez08fWxL
YnAtCno/Uyl7R212X0tfbDFVIUQrVFBkNU5kWTIkI3VBTWs0UjxrVHJQPysoMXU5bFghYGtQVCgz
RDZUO1RUR0VKRzJ9PAp6NEFPalBFZyRMODE3IW83c3hXeF49U3E9TTR8LUlXeTdXKz4jbVJpZ2BV
UEF3T2w2YiQjfjs3NWoqRkZlOUcwbHUKenJUWWElPXFqKHlpUEN7VEFWcXR+eX1TYlNSZGBuQml1
I158UjI5WVJZVGAwcmAzPUR9bmQ8akc3bTxZckdrXmpsCnpvMEAjcDFnPGh6cS1zM0F2bGY7ajRZ
QmBqQ3FTUj9kT1E5V2FnTXJgKzVOTWhzZEQ+Y1V4Yj8pMnBjRy1DRUtqOAp6P0NSPylIfn5pbks5
IUpoVDxxOFFHTSV9RSVUKXB1PEZKeChEXmxjc3JsQFp0RCFqeWIjNDJJKDM8OStZRn13bkYKenBS
JERkVWlGWkRneF87Y0l2QWFIbksleTgxUSM9a0BZVE5VO05lWHZUYTV3UEItXjIyYTNNdCVOM0dI
WDtvJk8hCnpzMGl6UDxBKmRjTVIwK1VGakcxQ0lRUjZsJigxQ20lK0R2c2xIRUpiKlgpWHRSfmps
NEpHUnJnJU87KlYlbW5kOAp6bzs2c1d4ZyF7Vz1MbjBydm4yb2YmOEswWlhYN25LbXhROGpwe2da
Zl81TVZiazVecVBtMnFMYVVtJj4xJU9eYFcKek5+YzMyJXkzM29UflZrNTRKZH07UyQjPXtlfmd5
USE4VC1ocSpXSDtYR3hXNlZue30hYj1zNX0pS0UwPT1nd0M3CnpJeXwoITw0ISska2BCViNQTUs4
OXk0OHRGZEV6dnplRFdsdzl1SFpSQ3ArdF5Ab0Y/TnVXM0RlWEhgNEEoKE5eUQp6QU1QPCg+Zz1L
bns+YEJQWmN6QSE0MmJYXlpKLUNfSCs8d340e31pPmxlWkE/ZU5Td0E8dlg0QlUoOWNDMV8yNTEK
eiU0aEA7Zn1Ge34+S1NTVHgofUVuZ1BJZkFQIyUkSkpAdiNfZUk2MWRydHolIXpeMDNNY0NZU2FO
KklfbVR0T3tgCno9Tl5+M1NQVjY8dnhqd3xDQDklNTJNWmV6RCZUcmNMPXRXYD9AYVBEZX5EPGRO
U3wpYUtYUztFcnJPdl9Ge1ZoYgp6bC17WipXNXUoKDlTU1g/KippTXE8ezE0enV0NWp9e2RwZVJl
RG0pcHYqbU1AQmokQzwoQGRmPEA3a3wmYnduUjwKekxCJmE9NHF1WTQtWTx5Pkp2c3Q8ZEg2RipF
cVBxPHBPMFFMZXlYUU5ffihmaC0jdGg7ZjZuQ0NUdy1aaWNOYEtkCnpndT0mWF9ldGljZ2Bybik1
ITlwKVdtc25ld3l+NzsqUSFeQEE4dGliVDJORENxbXp7Ym52S1JAbjJyekMmTX4zIwp6ZFVGZEFi
ciNsY3ooJCg+YT0+aG82WTkqVkV3aFEqblFeKC1KP2tAYnI/e0FMakdVd3FJTz1JQT4qeUBAMkxQ
XjMKenYke2VTYCRNMU9WO3xsKUhKeD5XV1cycik+eXlmPXlGMih7eU9+fiNSRG9Iel90dz05b1Uh
enQ4JWF1dyZfSWB0CnpROSo9TTlFV0lOWS0wfHs8T2ZpcTVTYHF3VVp0SEdxY2FQc0okOTZ+bTNw
OyRQcEgmT08tLTc3PU5vO254WVBfbgp6bjZ2VzAyN2w0ciY1Mz98RVdMa3lxfGBlQkY2TFdxKGh6
WGByPig4KzUzQjlOd0JCTzlPYFRzaUh8QEklSD1sTHIKenoxQmNsMzckY0BVSVUjRllSd19GeV5p
cW9aaCM3Py1rfFc0a3ZtRUZGKUdeUHNOREx5bzV9QkBoOVRzZXl3V1g4Cnp0TiZgVWR2NCQ+c2pa
TCRxeCslUTk1PXc+YzVFLT9fTUE2UHEhQjN7VkVHenZxamU9dlBWUWdLWHpeQ3M/WjBmNgp6Znpj
Qyo+Vzk1RXlPN1VAOFpCN0xId28/ZGNuKEYwZ2JnJGQwSjA1PXtgYz5sOHE8SiZzZXhkbyMkfkJE
U0s5QU0Kel9VO3RXR1F1P3ZNeCZ4aiF+SWp3fDdBJVJiaztzTUk1fWF9R3NFamNGSyZkUT9hSSNt
UFheWnkzdHI2UGhWRCM7Cnpye0xfJnUlPkNtaHRldDZ0a3NNNFFEYWhZcUorNGheVStrQUpXUUp9
diFyfTZHemI1cj8/NzUjX1M/Jk9LSERtPgp6a3A5PHk2ZGpVTWxrOy09c2RuJXxsWGp9KlBQMCl+
QFpQPHpES0VGfFRNa1ItOEckeDMpdlVsZHBZPXIlQVRNbmAKenBncWR7NCZkLSlpTjlGZFo9N2kh
N1dDSzwkQntWT3VxQlc2RnlHUFNmeGZMX1JZU1QhUmFBSStROX5ifkhafVJFCnpiOTJaVT87dTV4
K3tAcilMUHR3ZXA3TGIlQjlSYjJTSkghUFp6VXlhbTZINHhwKlkzQ1dCa1NQIVN5JDdqfWlSNQp6
cSNhfXBqZzx3biFRSntRI0dMeDJIVFlgTUR9aUZYSHBiPHwlQzlCIVk5TmE2JT5ZM1ZwPFFBMUAw
WClRazFrST4KellFKDNPNGQ+eHkoS1lTdWBybD5HTXMjOylVM0pjT1V2SCo4elM/d3VSS2NoVHls
ZjI0VyFJOSUmYyprO3RUTD5kCnoqeFErVWNiLS0rdyUhYWhXSXUwZl8jR0FjSCZqcnZkTUNmU2Y/
bSshSVRWbigtO05zfndOMmZebzZ3YnkpenpEIwp6b3pPeDlVQio7P3dLNW1KZCplPjRhNV9Bfm9M
bWxFTlo3UGpIPUVPPj9PTmpla0JOZUUqR0BSUE5wRGpeRTdEIUMKekk5WTJNWEs9V1QxSX5NZ1R7
S0RTUEw5YWM1NzQ0bD9UOVlhJElzOHQqTjBOMiZAayo5ZXNyPz0/QnMzTj0tPzN6Cnp5c30rT3Zl
VlJwaFpGVkVsbjZiNmtVUVMhXnRKZGV2KGw0Y2l6NmdacGtYY0k1JTA1dDNaKjMpSkpiRWRGPDx4
Qwp6eF9uRnJOeG93I2FleUJOO1goXlg2NX05dHo0UCVpT08kXkZjTGRtMzN7Ym1sUyhuVzdwJkV6
YXlGZnRPIXJndkIKekBlUnE7OVZHXmN1JSQzaHQ3Vjw7KWU3QjZLbWBQMndNbD4laXVYVlImRURZ
PE5BU0wpQD42bk9JLU5KZm91KldNCnpraG0ybnVSM0tTe3BWRzxwaGVvPzxoY1U5UlY0OHAjWEBs
djBeeExfN3pxJjQ8XmdkPlNpJVUxWk0jcyFRdTl4dgp6QzM+dWZqZ2QwaURabGR4e0ArMEpWNnpx
aksyVXtmMkRRNDBJI3R3QDk0djw2O2B7eFY3e0UmMjYwOUBAQSVNPl4KemtRKEYwPzglbVYhbGQ8
MHFoISFEWTZOMVdBTSR5fjA/Zk9MZFRAVklPIVZkQ3BpTmJTRGJ1PX1mUj1QMEkzRUtvCno3YUlu
RjBvRkg9ciZFQTE3IU1FK3FvbC1uOFE8XlcmXnRoc2lkQyZqTCgrZ3Y1eyM1VDF6eV9zPmRsa1c/
QH5ifgp6e0s1ZDdwJWVoKT1iPjBoNWdPJCNVPnI+U2NqPiRNUUolTygqaFFXe3lWdTcxVn5zRnxI
TlhHNiRJMkV4e2ZlPlkKejAze35iTHNKYko4TW1UYEE7cDA0cHo7XzlqNlB1bXFnTEp5IUJeeXg9
VyFfaXNEcFhpOXAmRXR1R1NDP1FCK2ZwCnpDPElfX3E/ezdEe2tuPnpfeWwxUDIjUSNkNUUlaFh0
SzB1YVZ3aSpQbHJrenp1X2FzRXAqcXFwNigrbiFlU0FGMwp6RHZjaStmantBKjVSWVVfeEVPd143
emM2M0ZLQUg7Mk8pdjVCX3ZEJTQxdk5oNGg2TSpfd0o2dnBRT043eS1kMlQKejxpVmU0Z3pTPnZi
aXB2K3Y4Vl4rRHs0USh6OEJRJjJjLSE9NVcqKH13KmkoWTckKXFTKDg8IXxmN2Ruek44cURWCnpE
SUw8RmgzfCg3WC1pWGVgd0l8cng+alNlaXh5RDZ2eWQxTS1hPGxUYS14ZCpBX2FoKyhCbWh4Z2pm
PFh1ckxzKwp6YUkyZzByVWk8LUw+R0soc2FXdH4+aD1OVz5uMipsQEBmPCE4XzJEYG4zZndqdiUk
N0wzRkJNWWlndDltZ0p6JXYKekdhRjA5IzJCckJJdmlaeVFGNz55WjJ5TTFReVJRUkk5RVZsaClE
WV9DTUdLT20hVHdXO050b15gR0FLfmcjaXUwCno0K3EqRCUyVntIKnAkJTxVfWBqO3ltSmJOZFpw
LUNnV2E8UlE/MnZZSSNtWHhZREZ+QDw0emV+dlI2OEw5QitHVAp6O2VMYVdATEdEQ0R3QmFiZT5g
aWdWVHc+WExRdV59OStfbiExY2NoJm1pVWlVNmhzLThXM2t3cypxLU97UmdESCoKemQye1BCPVom
OSZnN3VZQGZgZEN0QkcqITF6a1VzaWYjSWlscTREcnlrYGk9S0lLSiFjTT0rYThpRDR0ezFpWi1G
CnotRkApJF5EPXJ8YCN7Z3MlfWFXKHY5WGFWcXN3RmE1fDxiaiolcztUdlRSIXtIWXFxM0puNWA7
O189Q3NLIUhfSQp6SUhQK0ZEeVM4Kk9pLUJle29mUSRHaTIpI19qT1Q7O1RLQlIkaCoyUilzMzJW
PVVjVllyb2ooMWBCdGY4S3ArckEKenY3JUUqKnV5e3NlckdkejB2PTc2S3F3REh2bkZ6VWd6MFFk
NH5APV9jMXomZ2cjdXAkQnhWXjNWLTlLYjZOdE5yCnowdWU+c2pwenQ3Jnx9WE5HfEd6fF92QSYj
cXpIY2ByMklsVDA7VkdmWVheajk5Rld7eHw2X2VNUmJFUXZkYit4Vgp6aVpsa3BveU59OWVeU3pW
JDl1Wj1rK1RRe1YtJWpsPFo1MVJYRWF0cW95TGp4OXUrK1VRckB7LUVLSH50ZiNjQWMKemR8aSEt
XnFBJSs3TipBalVkck9LWCplO2o1dVl3aU4pKzZLayoqeGxwMG5aJUpXRjZ4aFUjbDFUR3hKcj4z
NTFTCnp3NTJaKiFBVTdAcmwmcHIjfnhEbjZ9dSFxc3xiSkE4ek5RK1J1V1ljc2JhblcxPiFHZWlk
cnFwai1KP01HNFE0Ywp6cWI9Vyp5cisqJjZ7Z2pEZ1pJWXFMRHdKb1AlOClkQFNiczcxe0pZMC1n
cGw8U1liKjgxTHAwN0RUNU5rJCZycTcKekJgVyFab3pqY3lNVChfOD5KSzVUYUled34qQTs/fnFO
SGNlOTk/ckk/V1F4P3Y2dmo2bXgzOVBNfVVDN2FGPHx4Cno9Z2FncCglRzVJKClNKz9SJUZPLWlB
WCRpcns3Nz1gKTJLJW5+R0l8P3d0SnZMJVZxVy1sfk5OOUplYDReOzAoeQp6Q0RhYFdgfHwjdXA1
UihaWGk0YU5xPVpgV2lUJFA1RT87dDNEIzhoN1N1K2dSO0MtNEhoVzd7S1Aqa1h2RDR9S1QKem5y
QlJKbyRPUlZoczt4T1o1JGkzbnA0WTFzZFlHOVVtVGxyJCRZOTZEPUNYN0JJPlF4IUc4Y0k0TzZm
P25fKHx9CnpGR1FhX3leQlM4azJNOWdGVzBLcXglUT0oUWRodDN7WUw5aUpKcCkrSEM+Jko8PVUr
dXtKI0F1cyN0fThAQTZ0Pgp6TU8oJldrbWhFNm1vNipFYHchYllnfUFCa0Y8aHsyNTJocCNqITgq
U2F8UUBOd2p2Nl8hMj4+d3lpX25RYj4qeisKejhXekBgbmp0OykwdmF8NmJ0KXQmejdDPldVNmMy
ZUFsSmpOK159fnckRWxYU0Y1JkBZJWJ2ZENgfVY5dTdzKHd4CnpneUpWWCFGdn0ocG9AI3t3RjRn
P0dBKnY9ZD5HQm9OYHQjLTk4ZlB2SmJTQGtvKHc5TGNPVHJBcGYweUsrRD0zcQp6bnV+Q1lIR2FL
QWwwUWR3QFRePmIteS1YRCsxZWRiVkBIRytfT09CPEVPS008JkhtZnVrSiZOMUtvbDtZdU9NVWwK
el4zO0d5JipOOT1LSFY5a2UtXjhOdCN1Nip6IWteTiVWOX1NdWtNTiNvXnB9YVJzIWR6TGttJWZZ
NzlNRG5we1F9CnpFUDZlLUM+TzxwTHlvIUNQMWM+NCtASHNMUjs/TXczbkEhQVZybmtVZzx3QXdo
ZjBgJUskO01hKWFPKVl7fnxXPQp6aT5IN1RLT0R+XnJWaTx3UnBCRkdzXl5zREpNPWY7UXlEZiom
fT49OyVKPXRnd2BSdW5TQVZ5c3BPST98TmtscDMKeiF6UFgmN3tfUkQmK0Nkb3pATzZEa1pYZ0xC
XkVna0RnYVJRe0ZsPCZAOSQ8M047dWBkZkx3Ym8hY188WkhmOT57CnpjOyVZP1gjQzJEN2Y0M15Y
KXZxN3VSMiFWP1FDeyQqRkB5eHlHV2Jeb3VKPnlAZ0lSdXg7Ym9lSll6Q2IqNVJleAp6UzRPYHYl
Ri1oM0s/fTJKR1YlfG41QCN8WlQlUmhMOztKOEYmNnBMZllOS29aYzBtWSFDMTR1K2FzcyE5Q25o
OV4Kejc4ZjdrIVdESCE7JXRXQHhISD41WGdfUWlPb0BXRGhlMH1feWVeXi1QJlU9bXRaRzZTJnhS
ayNSbU1FenFAK2h+Cno4QDREc2A2Ml9zZG44SXE7YTB9UzFvN3Z1KkJqTmFKdnhxZyNiMVJEUEkh
e3VDZ3pFOytSOGc0QSVIXlg9XjVTVAp6VDFALUJ2SlE7UVh7cjZFbmUmbkF1UFY+PFBjcGA3KHpo
YXdFSjdVM3FOfFg+VExIK2JVWmRrRT5lMlN5P2l7RHgKelIlRCN5enJSU3xLPyg5VlY4Q0dVJn0k
PzRJJGwtKTJ9K1lhcEwpfXM8S1h4dDs3IyNHUFY0RFMrUSh0MEpzRGUxCno4USFsVUg8ZUZMV2dO
NioreWRNZnU7RE9Ib2ZvcH1LVnxIS3stSUJjYGlEa1RfZD1INEwpeyVeMF5VNGgjQFh5RAp6aj13
JUo8QklyOF8raVVhfDF8eF9ZfVo+PCFWUV4+M05KaTVTc2hwMGFMQCFsUTA1dkBkcSVwM1BHNT9C
MSVRaEgKejxNMVdXX2dLXko8NnN1SDxPQlVHYi1zTSVod3ZnakR3Vmh1bmApQ3V6ZTI7ZzxEa2lN
dTgtME41NlFAWHJxS0ohCnpWMGFiUDJwKXVxdmJ4R1VhVFg8ZTc3aTlzTjdORiQ4Vm05MT56ZGF7
cjZ9XnY2IU5LdzJnMigyQ0tqJjhndzFuNQp6Z2BzbjtLYysmI1VfVXcjdGsxX1I0b15JJSoodH40
PzEmWndvTGA/PClOU095LW1VciZIcXI5IStiP2RXPnhKdFgKekNPfmJeWE5vY3l5UEpFZnc+UVI0
VSFTNH4yRnx8SVVCPnQ4MEtjQFNzKHJOVi1UaDNTbH5mWkkrblZne0xnMDVeCnpyQG5vVkslUH1N
aypac09LKSpySUlKcnRzaWg9T3Q4TWBzaVpWJEFmOT5ARldRWjVWK29SQDhpbH45RXAxK1oodgp6
MERLJjhzdEVRPFVzQjwhdlF4d3JlbmkzZXlXYkZmJU12RzdWVX5LbF9tczEydTlEcmxEa216JS17
UiN6dTNHQEoKemcpMn5wdDZXSTRKIWcyUlI1I3p2TVEzYWpjQ31EJl4oPmVOUyVYKEJ4WHVjYypE
QmJROVlTPE1IME05TC1TdzNRCno+RzMySyluNEJmTCVWeTV0Rz5GUDNPSTVheW9obE5pWEImK1Vo
RGdHOWhSWV9hNXdQOSVpYnklRnc/N2w9eD5PNwp6eCt6dmsrSlVjZy0mKUBSKDRKOUVHdGh4Mjcp
eUVtbkQoVXliezxlVFo7YitENygzX31QeDw0OFo4Rnkld1hjKEAKeipsZ09NdTchRnxYV0khdkd0
am5ROSVqMXwkc1c5QFJLQnpVa2I8fmpCaH1DUmchZyp5JEtEIUw+YipeQGd1SVZOCnpAfllIVHMt
T34hQnRaSzdzKCklZ25lX2BDNWlSc3UrNlM8KF9xQTJ0R2c7K0RrTyREX2UwfkRWRlhPUHlraVZa
Uwp6VDVmKTdAckx4NDI3KyVfSzVvQkB7Kk4xdjhqNmFPcCt2YCZyNjVYbV8kaSpRS0phM1NQeDM1
JSgzS31OXll0YCUKemshVDNjNTA3NT1TRXUzaiRPMWI7OUZQelUhV2tlMXBsciVLdFE+YDFQPlFH
b0Ekc2ElMzM5SmpBRV5vfSpDcGJ4CnpKZyFid3EmP3FKZnI2N15CQ2khdGNqWlVJaFBkPVQocyQh
M28+VVZaOVE1YSkleSZEb195dEY2RlpzVGhufjNmYgp6I3NsZGtleS0jMDE1JmQtYDs7RzwzRmNt
ST5fPkBLUHAteCRlSF47UTchU2B4cUgmNEIzc2dlZDA5IWRAd3wwXjYKek0/KHc3amRtMylpMCty
ajcpfSlyVHkreD9IbXVsez9tNmpHeGFZfEVeeD13eEl0dDJjazM+YFdgOXt1fk4wSzIpCno7Yk03
ZHwzP2VKSGlROGJFN20ybTAoMChuVFMyNFYhWFglUHBKWUtfQUhpKyYpXkA8LTJMTD4mKmRyYHUl
X1BIPgp6Tjkma0h4WF5KPTg5OUlkNX5yMU42cFZSSj9EI2M1dTYlbEVlNmw1d28kUylea3J8Vntu
U21aJGd9e3UmQ18yQCMKenszZXl8WGtzTjtiYVkwWm1NcnlVSz5RV3YhYDY0PjNFdGN7VUZiME0m
cmZ+Jk1hTjFmJW9NbU4jR08qSGxKSEhiCnozS3pVWCFxQU9SWm04Tz16c0pfdXUkKyU5MUBWRVFg
eUdRU2pGcGd2eSZ5JVckQV91aEN5UyN9MkwhTmpwcntuQgp6KDBGWlh5cj83NyR6Z0lVUWcmc2JX
MF5Gbm8+PUpednolQTgtKUsyMmJ2X307SS1PaWdMU1pxZVA4cz1oTkROUEIKenBOSTZMN1ojSXE7
KkNZK0pfWiVLfDVZc3s5R3ZwOXZ0XmJfUFVpa1BRWVdSfG1wZX05RzdyOVY4JENVYHIwc3VrCnpG
LUw5WVdfQ0d0JXtBZnJoMiVqTjh4JTErSzAyNHh2dnl0SFQwZEwyeFh7cEtldH0pb2tKNGdFRCpD
T257KVQofgp6O1d8O2FAQThwTFZeUTJnXlZAQC17OFV+T2dXVWorVF8/UEA/U3hGK0wjPE9Sc1Zz
V04pdj1DLS1aTyRyZXAlSmUKekBZcTQ3aWklZzU5Nk9vRyZKWERmSzRBeHctM296X1h3Q3UhaDx0
UD40fD5KZXhnWUFxTlFBQCg1WTk5Tm9HOW1UCnpKamMlLVhtRn03bTh2P2AmJG5ZQjxPZEZHaG5G
UnkyREk7NEtfYmR5fERMS0xrZXNMP2Z8TUJAVChvfCM0NU9WYwp6O29JP0A1fGBWPlhEOD0yKiRq
VyE0cH0pXkluQWhEZU9qX30kdjh1ZmZhaUl+PldsdWMmMjhSZEw3ZT88Y0UrQl8KelkhK1ZFMmBQ
N2ZrY15YPkBWfVQmV0IjJGlkcS1ac2ZRdkNgeUZHOW43V1F+fGkyYWtTPG9hSXk/Rm4oMDd4RUw2
Cnp3QWI9YmN2JXJzKHRvYXpCQlB1X095Kj8hSztvX3BybTdgdngkaH4hWFUmLVVGbGN8QWxTQ3JD
YDd+IU1rZCp6ZQp6QEJzSkAqez9zYW07d3BubEBqXzFyJjxKS0gtYlNDb1I2fTZCZ0I/YFFMKzlx
Tl9YdyRuc0FnUVY8ZTgmZDdHPzwKejw8SjVKVCYlWkJnZjN+MlhoYkEtR0FAJEg2TDZhSHprX3Qz
U2w8KkdxN3JvYiVMfV5FSF9NTWdVPiMpUUFIT2FDCnpPcSs7cV5xfEpuaVB7Q24wUD9YMmV9YH1H
Tn5ldHE7PGd5c3t5QUJPajtlPVBpK1NwMDhWMUZMMnx9RzI/RktNRAp6X2xzQiFueHFUVW1QKzJ0
ez15bn5qVUl3TzlFQFhUNnZCQSYkLVU2OG1zRnBPYi0tZWYpTzA4YWg3aFMmN0Q+S2QKemZlb2wm
STdDcj5PI2J9emVGQzVRVSFEQV5oREk7ZiR3dHBnTXBhXzlIaE8oYzlgLXlqI2J8c2tEQVkzSipZ
WDlLCnpMdCpzXzA2PT1SeDYofm8tTnZgWjR+K3o5emlwWjxOdkFrRkk0Iz11bHplJXtpYzc5U3Fh
Z0k3cllzWVFnJE9VKwp6QzlycCpMQzMzVXt6SWM1U0R1aWUpSzZUQzl2eTEqPHAzSXcwN09UQzNw
cXNkUTNPTik/JXV4Qjt7TG16OXVKRnoKejBUcVRmWmBUYGd1cFlSZ0x6cz8jaTl3bGkzY1M0NC1P
fGs3RkxXPCNMTFE+NF8+fUsmdlRpdTgwMWJIcTZzaUVeCnppWWdyRWt5al9LcVBfPF5QM3lDTU1D
R1VpZFApcFctN3BkLVhtUCklX3w5TU08TSgxfDExNnBgeFhxaENETmpqbQp6RWB8dXNnSjhCSjx7
N040Vj8yczVzUE5VcD1lVXg2Mk1RdWtPQ1Fufnphbys0SEYoSUU7IzZ3LXt4ZHpkST9ZbyEKejd8
em9ePHEkNVUwelApeCptPCNOIVRoPGFSXm0mZk84RU0jTlAwP2MxWWZ5TlZpekdoWT5LRDY1Rloj
USNZI2tGCnp5KmlxbTMoIW5RPyYtUHljUWJUfjYmal5CZEBHT2t3dH1gZGkjdDNXPVJaN09VMmJE
ZUI4U2U7e28pbD9sUntnZwp6MGJOMzY9UCNySGVvPSVqJFQxdzw0cllWbmlaQzk3NmR4dFhTNHZD
O2pyaV95K0VWPS1jWHwkWU00TDFSXmYhKnIKemR2TitAXnVqb2t0PW13blRiNTduSWp+ZFYle1d2
cjRvRFAwaz8xX3o8dGFMRG1qN0dJNWVBV1h3WFpRS2JHQC01Cno8Sl9kNV5Gb2p8SU5uYkIoVnJ+
I0xJXiZiajZSTm01U0t1IWd6STZUQz9VP1U8WTVGfVNVemViJSllelh3KEMlTwp6QE5rKWpGUmZS
WHMlJlhwbWRDWlFvbkFpPXtTdVp9cjFJKCZvSW5ndDslYSRqTllZNm1Ldm1gMWdTdV9wQnw9U1MK
ejJMREhLMStXcHlLZ3NwKXMzY0I1a0d+RGheVUJzKjQkPkR+bTg3diE7UUB0JTlTQnZ9aDZyS0lF
a1p5TT4xKjgpCnpobDBtdW8jQUw5NDc4fEw/PUc3JS1TZnojMVp6YmU1ZnIze3IpWjNvcGEmMl87
VyFUNWgyODNmZShqcUk2cGkoKQp6bnFROWJSJUBMTlMrUDhNSjQxKlFlX2gxYW1oO1p3YTZZd0ct
fDdXRWpAfDV5TyEkQUtWZ0gqQ2BvRS1NfDM0bzEKekFDPWt2cn5LXnliemwhVlVzUSlsJlN+OHAk
LVZNdj1YZFN9JFhIcjdjZmFtelp2USUreXcqMG8tZUpmPVR4QC1LCnpPPSE5R198fGh9fEQ4RElt
VFk0dENNdntkVVZ4KGNUVnZpO29sPE1pezU9LT5yI0RacjRgUnw1WWQyQ1dAe049TAp6X2FvfGNa
TW8hV0NZdjQ3JndlTWBFcT5VbmF9dldlZkdjRlBWbGk3Tkt2akk+X1JBVzF7NUVeYm1peSEyKTZm
Q3cKem5fcU5Ib3B3TGdIfW5VdHU2YFFidzVHKWJzRz9MfF9hNjwmRjFON3tVTFdfMDlnOzUpKi1F
empPTTJtVSo/eEpJCnpKPzhFcnZFNGc0PVk5Rl53bVMwfnhNRU5AeWxwKnszKSNGTGE5cTZIZDFu
Oy12QkNhNFFmS2NkQjQrc19tZjFLIQp6K2tiVGJiRWxOdXFwT1Ald1d7cis7e0pnQm52O01nV0w+
QFktckMwPisyUlNKT3l7ZENpfm9BUllGIVN4P0poYDQKekJuPnBSZGhEKU42SUVTaXBLUWpxZWpF
R19zKD5AM182S2d+RUd9T0U+Y3cocjEjSFBxYCg/JWI/enoxRWtAcz13CnpyeGM2bl8xalc/cnBx
VV9EbVIrfnZjZGc+PiMtQm52T2F4QiNCKUwwdkJoTFoyaWMycTwqQ2p9VUQ8IX4tI04yPQp6eWhy
SSloOCl8YWQ/N2d0K1duUTJ1PklwWXZEY3BCeVUzJWE5c0J6XkgjWT51U34pUHMoX3IhXkhgXk1h
ez1KO34Kej1pfj95YDtvV3llR1VVUCVtQDFgKyVDR29eSW9TN0VFMmJTRFlzK0d5TUBRTStLK240
WCQxb31BfFJ+dWk4d3VpCnpGajJeVUJKemRiZz5sdntMLWFjcVFGbnhuVWlrXklDQHtzbFNxd0xl
R1B+WG0tbW1aZ1p1Sz9sND9vdzNGWiVNawp6PTg+QF9WQ0AjMDNCensld3dCeChrPV5IfG0tWDh2
R0BnRSFVRHx0QCFHcSgpK01lfWlacmA+bEdSK3hCWmhnZysKeipzdEJIeShWcktZYWlaekY4bz95
QCF9NCFifGEkUTN+Z3ZFZURmdTM7bUViY242I3txMGg/RnZfciljVStRUSVRCno9aT1oOSNCdUJC
ZC0wS3hvb0BzLT5qdiZvdHZpYEB1V3VGbD1MYm1nbW1BcHRvbSUoLU1mWmM7cXFxRjYhOWlGcAp6
dGRpMEM7empwPnBQcUQwYiZvMn5Jcm89YXhsYDkkV0pja0dueyRvbGAmSVBsJnQ3TTF2WXFtMUol
diNRUyM5Vn0KelNpR3Z+X3BPTW4qMVJnSU8qSUNxUDJjMmZnWFlrMnRASGEoNlIlUyhnY0d2di1r
U0M1U0p7SWwzdlliVStAcUNECnpMQ0ttQlhKX2gxTy1wNj49WUA7Q3pPVT94S2J5aXY1MU5JdjJR
SWg+S0s9MUdHUFg3Rl9NPyMkKFZla3BsR2BoYgp6SCMxI0xFJkhKcTB+UmxZZnVgVntnJWA0T1pe
fmxidHx0ODRHT25FKlY7MzIyRERlT0B2LTJzfSN8dDxBTW9FbkIKelEzMTwjMmshKXNyP057Tz9t
QDVjaU5hPjg/PSQlPFNVM3lWRjlkYiFHQkFIJXNmYzA7Yig7PXJeOWZ9MSpgMGhPCnpaRj8ldmMt
PmdIe0NARmoqKUtIWChvPnRQJWB3WSFOWV81Z1orQUg5Tj8/V0dMfml9R3dRK058ZDtLZGY5UVpS
bQp6UUozZlV5bmdQJm8zZ3Q5SUo3dDdMKmVEI1dBbmh5YEF+fkZZVyhIUiRXKTt3bVhpI1AhUTlP
c0tnejNxPzFuRUsKendpVkBHP3NqSFYwLTg1SEdXQSlDX29lP2AlRlVnKD4wZHtnQTdeNzt2Plpt
Kzh7UXt0dEtueUVTU3BkbUh3IXJWCno1RjJ0ZmJkP2U7QnRRU1Z3UDhLY0BkeGJrTztZUUxHOTYm
S2RePmtEZFkhcz5Tc2NpR2JMcXRveTV+QXxJZHYjXwp6LVF6KG1PJkRQRmgoVyEqekgocjR7YGAz
Sl9VdV5hU28maDZIfXcycEg5eUdXXnY+X3d3bjY1clVBI194e2xvP1AKenl8ZCRmS1JIP1ZwWXIl
WCRsKH5scVRrbEVKJlRsQnhZY0V2Z1FTSllNZlAqfGQ7U2Y+TWd6WV9ZZV9IKmI3QmVmCnoqVlFJ
aGp9RHR5clhka3dSU2sxZHBSfSh8NmJpVlNDbWkpamEhayVyZW55LUoqVUF6REpaWGN1LWZnP0xs
a2ROKAp6MDw1X2lCRFclNWp+e35UVSl8fmttZGdmaTg8UFM3SkQ8aFUyNnF+WnRBOGxxMTVCZU1G
SzJHM0E3IU1MREZKIXIKenVhK2E/PHJlRVgyKmEtU1Qwe0BNUz15cGlTK1krVEFLai0teTllQyVh
bVFhaG95YG1gdFBjaVNwRlVyX0QobTxLCnpwRkFuRG9SJlEkPiV3VkwrKiMoJjRteXIwe0VVZGlV
VHRtKlUyMHd8cHg0dyVmdzRLJl5fK2l3SShzaWlwVXlpewp6Vi1eRU9QfGMtdSM+WUw1Nm49OF5F
VUlCTUdsKVNxZVpOT0BATUU7OyhaUnVPQFRiZUFXMi14RDh1a21WPm5NSjUKeipWKVYzY0JiYTdA
cTcyPnJoUDJAalBKWk9eSyZzPGA+cz9SOTdeUk1APE05V3JAM2gxYXpKWG9ZOHxIX24zb0lPCnp8
QmBZbEN3O25Ga3d7cVZ4VyZkRHZfKWRpR2AjeCY3eik/RXteJEpGbyF+ZEUqfHFDcUtmOGFBYSZP
di1OYjFzPQp6eEY7NlFqfFhwR28tYDcrSWNOQ0pKdkIwZUB5R2pfZCh+R2ZmZkg+ZmdVXmxARUE5
WWxKSFpHM3h6fUJsTF5ZVDAKekVleyVSVWtAQEpfVE52dyVfLVkhSSFOZVNCaHhUa0BaRj9IWWR4
Kns4ayo8bVd0KElhNV9CO0FEQ0EmWkYtT3dXCnpScHpYJVNuZ2tjTTViQHA9TSFJZFZeOGU0I2Z8
PT41NUR7VFgtcDhuYXxAd2IxVEktPEhUTXtKZGdAenpCNlYxbgp6RTkyV0xab2FiX1dJTW4jZDI/
flRJVnR5UV80U1EyODtUd2kqSzQxTiRpeCFOd3tFPChtIWJ9OVRuUDxYRkpqXikKejFvQzxoRGBl
Sk4tT1MlLWB6JDtqeSE/fUY+OUY5TWNEdUxKSkRnKjJIdmRUT2lRX0JkMzZ6R3I8Z05aPk9ZJmQp
Cnp0aXkzSCo+NlRrYH5gNVU+RC1vXlY+I0M7alFSQSVNZURLUkB0PHc/dGRyV1B7PVB3cm8xWDwt
e15NakN4ailWPwp6QztoVEx4P1N5U2Y0Jmd0JWBCQShUKyZeYUxHJntJWXYoT3YzOCpsYns3Wkp5
TEh1fHdhTU9GanIrMVY0K0djZVAKekxRbVdCWUZjUTAhSEF4bT9MTG15PmE+dHROXzt8V2dYbCYo
SWstQWs5Ujl0eWV8eGVGQXt6PzJjOyotNnVZRihUCnpyaSRgajVFaUBMdGpeLSNhMj1ednYoIVF8
YVFUY3xRfVEtKXVhIUY8UHREMXxJWGs9ISkkNFk/U04lMUUrZlY5dgp6bk01e2QkbCtfPCQkMypu
XkZpR210THd7MHQoeWwwblZUbnEhdjt8P2s3IWFyKFhyUWw2JWs2bD9oWSkxJjM5U00Kel8xYm0+
X0lnPmpLOU11N01weFdIeTZANWhqZ3d0Iz8zdi1kNiEoYVRadld9K21DP1ZOT0AzMFdKcmp5VmFe
RDI/CnpURjU9Y3RxZ243cHZraDZQOzh3NEIqak9pSTcjYzE4KDlLPHpIIU13TG5mY2c0P1lSRSk2
PTh6LWhqVG5YezRVYwp6O2t2QlU7am5eYClBcGImWjE+dDxQbXB4KC1fJUV6dWdgSFZgPl5rPUQt
czVUQHFDIyh5KWRHNkMoblBeJVhzeHkKekpHWF4qRSYlTWgweCgtV1VzVEA9Rmstd2E8QlNDbUQp
bWBZSW18MDdHZWR1RjExdFIrSyV2YFg+dkVESTZuNm9nCnpPO2d4U1lETElQKzApO3JybWRAbj1e
TE0zRmtmMUt5V1BeS3wyXl45ektnbSNTSnY5Q0EhSDwoZiF1dzVRYSRJRAp6WkBiQjBubDUodFAq
JXZwe1Z3cHl7PGxXcFAzYTVtRUtscnYqRmRsN2hXeWk4WDQ4dTtne1c1MVBLeD9Re1JOeE8KeiZl
Z31FMkwqQ3djdGYhM1l0P08kbU0yKXtgOXRRNUx3JlFtYjglbmlKb34jYj8kVDVYTG07O35PODVE
PllhfCR0CnohentHciZ6R19sdWFMdX1fLUVkZitrZSt+dmpmVjhAbno1WmRJeTU4dk5EYkU0UUxu
cVNKKEdgMnVyUVhiWX08Ngp6bCZib25MekpMUGpwNXEzU007Q0RQRGEhSFdQNFl3ezgjNUBefEJX
KGRvJEN5QSR6S2luZlFOaXNqQEkrMXg8WVUKelJEU2VEWkQ/JTR5aGorMkhgbCpSN2I8PG02MVVz
Yjs8NEYwNF9uKkx6NWU/e0NpMkJ3LTIoMXNPbERgWlBodURUCnphVUg5TVR1JF4pNjJCZG9sQDBF
UkgpcVpZbz1oWj5sbmVyKiZDa2FseVBJMm1rUFI5PzltdkB3a2U/bTR4WShVKAp6VjdkOVpZO20o
T2pJNmxVVkZ5TDBVOVd2fnd0IW85dGNVb0g3andIXyNFcT9LXiNMd1poRDUmMyp4THpgNnp0N0cK
elomV083d0lnPSQhfXVGS09NfV83dWpLdkJnO25NQ15KXzJOWHlScDdFfmUjfWF1dSo0cH1Yczg/
JUh6RnpzX2tgCno5Vk5CYFp7NzdkcFNrWDklbFNfOVc1dU9DWih8MWM4ajN7QCgldSNSblhNZyZV
UHBCUXJSa1JmMEpyTjZBPkB7WQp6NmkxU2dkKmomJHxNeWFkRn1Yb0lCfT1EbmxEaXN7SEMpQmxs
VDdpWkh8MkRmV2BTM2ooSlhmSjJYe1JpSXowaSkKek12SS0rKFB1MUBicz55K0sqRE5IdER3fj1X
e2ohUUB6VnhvQDU9bn14WShzZCVWR0kzSWx9QWNFM0hoTythYEFvCnotU0trJTxgU0dUPWk8blVU
MjY5cT4jVG48SipEWXBBKW5ofjMlbFVIWkh5QW11PU1PPTFtdGJKJkEhY2soeDE+Qgp6akVSPylH
KUJIX3o1SkNeT3AkQSo5XmJONlYxNSthQVF4IWNVZCVOaUJSVV5RI1F5cSklIXJFbGMpZ2tBbUp9
VyEKenp0JXkwYT1rYkFsMyNkI2BQenRpenN4QWQ/NjlZUzxpbC1VdH0zMmhJWmBmWHYkMnVwY0s+
SFNPVS0hazw4fUxuCnp6NUNiPVZ3U1JBZjtaJmBVK1pxaHdmaDd6a0c/bCllR3JXJDJuKXFycDFp
MCQqdVVLfEtVdzg7clB5N2lHUHw1Iwp6WSQ5VXluamZaP09NVklyPCFJRFNVZFlsRHY+RSNLV0hP
NnJ3Slo8LT18S34jTW5OdHNzMD5gKEpreV9oSnx6fkwKeitqPGNiTk84TiRgeXlNVlRCZClWdyl1
NV9hajVyQXtINkIhPHxFbGctcSpmdlVpQz9YI0NVbH12S0Q3TXU0eT94CnpqTzxvSVkwX2tVdjhP
bVVDUX1AQWpKWGRRJDFkPVB3KCR+cWhSdWxoSig+ejRsUnclRHJafmxLOCk7KDNFX2dHXgp6a0JE
Nmstfjh0OG83dSRAdU4ya0shP2J9OUg+TFc7RjZTflM7dylEIWp7VVFlKXhReEd7KEJOWWlUOX1y
Mip8NUQKenFkMFgxOUhmYGk9ZFVOdHo1bjYpMEtiMSstaFdPQzdfMlhQc0A/fHtabnUtVHdpOUB2
PzhZVGY8NiRCfHJGQkF5Cnp2bW94V3dNQCUzdSpucn1jV09kfTlAR0l3MF9HLUxlS2x2TFd+dSZh
MlBgZjwxOVhnRUIrTVJHeXs4RXhzXz0zaAp6Y0NHKTRfcz1mcUNfJGo1SWUpQXNLMS1hSSlxZ2pZ
WGQ8UypTJFNUTEJWbTJnSERIQjxsJXgkNDtKKXdaeGl1M3kKendTP0VrfEh3eVIjI3F8LU58bjVN
dEc0fDw0ZEVQSzgwPXcqWWojPWkrVnI+di1XJWVUYz1aQVNoOThIZzZ1e0FUCnoxSjx4NGQpVTsp
e2tmbTw8YDBhfT9jO1hAPkJUdkY9MS0oQTtHPy1ZJXoqckQ7eXwlUT0xMDI7ZnhWeXdfbllsSAp6
UzsyJHBeK3tqKzhaRjBKX2RfP1gxdFFFNzs5fiFkKG87Wlp8RCFPX00qQ2NPWFl7bCtGZj1xdUd0
YDRDPVZHeVkKejRIJnpVeVlrN05kKjdlXioxWS1uJX4hZDNrRHMtPG5LX3UqKFN6LT9ITWdoOzI9
Sz9Vbz81VkJlQFFqT1p9cHM7CnpNYnZJWnR6aiEqZCo9NHl0ZXlxQ1hmNGdXRHliem88WnBJMkxT
cnthTWppbEM3WXtjdXAwUGZtZnJXa3QjTU8wfAp6MX55ZUVkKW1rTkB8T3lNWVprWG5MR0BsQ1hS
RDl0RHlPYUlhcT15byY7U0g8TWYlNldmZ3hDX1JjdHx3OWlqP2cKejRVfiRhayp7Knd5JUdreyok
d2E3Y1h4eW1CZFVTfG5Tb1JAemlHMDtCTSFUaiNeUz5wYSl+Rj1ae0NXV3kxcHVRCnpONmpTQDBD
MHpEcmJpNkY+LU80d3Y/bHRxanF0LUpIZ34/dClwbntwbzBTMj1vQCl5VlYoU319MXR0dWhOcD8w
Kgp6dUs5Nn0/NXE2Q3pQbCRibCMzVE9AYHEkTCRHQ1AhKllrUGNjWVVEayU9aCo8JjM1SHZjJHlT
QUkrZVlAZ1BRaTwKeiVsb3xkLVA/TzZgNXtyKlAwUlQoPTNSRXhZNUZEcklsY08jPz1wdkFTfiM/
PnY+Zzw+Yll0Zj9JTz53YjB8Y0l0CnpGQ09yRnJ7YWIyNytzMTE5JGM0elBVR0w0KSVhdl89OGZv
WURsRytFUXMrdFc9ezxudUBufG9mVTZoI0w9aE5aZAp6IVBlSlZlbWZDUzw0WmQoez1Ub2c+Tl9K
Pj5SI0R+XnRgdD5eWmFYSyFHTXN3dGl5aTI+RE8tdG5vbGh9YGxCUlUKemUxPC1gQllDUUNlfmJM
IXpPRDBEdH5mYWApNlN6WEpOb0B9dkI5SWlDeTtxbGRMQGZrdm0kZ2tLaiR8fmNFazBrCnptQ2Em
VkdYT040JXQ+Vz9iS0szbzFCNG0xMW9wak55emFqOWF8R2FNeyg2RUJ4SXJeI2g0Y1p7RGpvNVFi
VDlKTwp6T0A/QCp3ZDtlIT9tMjFTSDRwQT0mI25DXnQtaDxgTUo1TjEqJXBHfEg+PWtHUTJPYkpW
ZG43JSpJcztze0x0ZXQKelJPOE1pcm51K300e2x9enZtIT15LTFxP2lqR0wmbkVoKyF7TlFoR1o7
OTZVMS1MZVNpOzgja0RDTVc9biZPWW0+Cnp4aDl2RWVucil2UjA0V3xkeWhUP2ZYJTQ7a0czVEw1
RSombVd1d29hSCV1fXpNQCRDQyo9WW1CWiRLTVpAJUA7Zwp6RmtIY0g3MTA2PF99JDw8OXslWClS
TktpPm5LZWVIYkB4IXRLV0p2dz9sXlRFMEwpKW1pVTxFOzNIXi0xVzQrMFUKemlvMGt4bGxlSmQl
V30zRSElTUIyK3E1YFUmMFR5YlJxXnFNbF92U3goZEpGPCg+dn1uWjclTCEjbDBqVWAjWjVMCnpU
YVNHbmA5KnlTP3VGbElkfXp2c0N9eEpUS1ZCdFJ6ZHJqekg8fDZWYDswJlQ+fSsxNkdoRmhqS2l1
eSFONG9RTgp6YzYoOy1LTSY4T05QRiMxe15UbFpQYnlARCNxSHwlIU40Vyt1Sm1Dd0dCN3ZEcHxl
b216V0UoKmhHWiEqMEJsd0gKejE7SUZLMj81S1ZIMjBoS3JSbTQhYk0zOzxOSHZTfW8mKWtTX052
Y3hnUmx8ITM3O3JKUDdUKjFTPEwpcXNtbHQpCnp5bCEze1hVVW4qVSRuJGxUJihkWDFyeSNqczhz
RHAjbkNTUCVrVEtqa29KQGIxaDZfOzJZTDtEM0hDWDYqOGdFewp6NjAqZXE7PlA+PlVpQm5fJUxr
X1YrOFpfdTRJbj5SZzlwbmRGYHYzelNrVXU1YFlKb09VdXBQUVVJKCNuST1VQ1EKenhPYFd3ZlMo
RW9kO2kheEc3UHFhbl9UKzlQZj5lZyRIKyR0cDA8RzR7RHBiTyZ0SlctJTxMSTJtRGdARWQlcWxV
CnpzOGY1cyFmUll4PSZXdmJ4cE9AMF9Dbm15ZWV0eWFWa1A7cHVQZTtUbEBRUkcmQUR1bVBZWFMt
ZTExdz1RcDcpRAp6YHB2cmtQRDNoSUpNLWpydyZ+ekllZjh+YSVqSiQ/ZVE+YkBYVV9yMCt4Tmt9
ZjtQRk5FJE5reWtsRjIxTUIkWmoKenckSy05enI/TGNLY2FMRFFjcz47ZFh+K2E8KnVLcXNfV0lp
X31JN1MtP3xuKj8zSF8lYiFha3A5d2ZWLXdUYW1kCnome1lDOGNfVDlvOTxwUDkmZT5qRkE5aUBG
aHshSGA1bGtAQXVTcmRvekctJVZjJTdiUz5GfTFKYzdvUFVQY0R+Swp6SlVqd1kzdGc9QndqIzJr
e0R2RnY4NlcrelI/WmgweX5WNVYpKl5CeD45aTg/eX1BJXktS3hkU0JnaSQ9c0g5dEgKejVWV1Ak
WSFQUkhDP1BtRl5SRkc5MmBhKSEpWXx7aHJOMmx3bjVUKkR3Z1FxQkFBRWZqWWA5VllLITAkfStx
Kz85CnojWkc8SEVaZTUzVGlEITMtUTJQYFloPiRkbiU1Pz1reikqaiVARys1QTU3KSVNdHFzR1pX
ZjkxZTlIKVl8ND5VXwp6NG5xck00aFpZZStPfVNjeWNZWUd7cX1palR+RiopTXxERzhZUGU0WlV+
Sm1MTUtJI2p8SntAbmMqcmhEYUNiT1AKekQmeFU3UlNFfk9CMTJ2fGtwMz9hTyMqKnVQa316NFpQ
REV4SjVqRkI2S31sNzFJIX43PypmfEhyJUZpWldCMFkrCnp7UmU1USt3YjFUZEZZKXpqbWAjcFZk
PVlLT01pbEJFTUxDcl9aSXRIfE5TOFlRQio5c1p3OCU3JWhLQ2ZXP1JtKwp6KUA9V25RS3ZAeiRx
UnwkRnVwXlFBT1lyVF5GQXxPR15WZkJtKlVtb083ISE1TkE4SW5Nc0Y5bXpsVEMreD5XNT8Kel8l
WUopWj5zS1hRfVhrYXZOZHxxYWxFI19CKGdgTjJyWj5uTl88WD0waXJ3RWZqaz54TCNhZm1yUUkq
TjBtbihmCnpoPXJDITdwYlhjdClkVntCYEdEflM1T0wkTnUlITdkLVV0d1V9K3QxVG17YjJXbj9C
PSRlRWI/JFJkXnxGSFgjdwp6QDkjPXVySkJTQGV6b31Ucn5LdE4yYW1nTD1nS3crKjlafVliKVkt
b0tsRXR8WCNxPjwzKyFhVHs/RXhWN3VQU2cKenB1Nn14Q3ROY0ZuRXlUa3dYNmo3d0hlPXphPzhE
K1hUUnArPD9BN0E4fVhqN05sZmdwcXklMCFnJFMoWUpQZEliCnowRGomNyZId2JAVShSSmw7RXo7
RG9jPkdNKlBvQiY4PzhPV2Z4NWlzNXA9UmpOfSt9JWY/PEVTSHtHajc8Nl53Kwp6Qj55QDhUWXAl
UTRGSk1iTVojaGEzb0dDTC1qPVA8KXFta0BnYTZjPiFnZWZQQ31FOWJtRWFHOypyP3Y2cU50JWQK
ej4pPz0oTk1OKWopP1B3NVk+RUlvJGp3aGJIYURJfGpqIWc+dkdTTDE0SlIqYDtVV3F2aWhXLTZF
Y2lvdGw+WXw2Cno9QCY4fFdIRHRRQ1V6ZWZKPEZ1VFAyfEJlSmlFMDFnNTN5ajZZX0VfQ1N0fDxU
NWZhRytyKDhTbD5fcDJ8Qy0wUAp6cmFHIzxFM05ST1RkQ2gwSitlPExJbipgamgjK2A4eH5QRXs/
az9oPj0/cms1Q2s5QiNOMzxefFBqclZnbjhac1cKenpZaEFPSDhBOXB1bklfKnsjRH03elMqYEYw
JHh6NFQ0aGglck83YTd3UmQoKFVYUzdZJCQ3NDY/JHNoJCZSYyp+Cno3N2xaP25+NVhScClyfVVj
RC15SCorQmxoMUlnOTlUQi07Wj01M0hDWT9+PyEyTFVpPi0kP0spWXRIZTEyR15uXgp6JkZGaS1A
amhpWiZRajFtYTUzdGIhKjgyS2BKQ3p0S2x9bzY1T09OYSRyTkljY1hCWl9eO3Q3Q0ByR0A8PmZP
UEIKeihWMlpoTTB0R2BFR2gzZjJ3UWFsJkY8Wms1NjgkfDM0QjJVcHU1TDtsUzR6RVp2WFBAPmtK
ISQ0XjA8ZGlhTEwjCnp6aEEtMWdzVGZaKT0hRGwrdTFQMz9nOy1hYzg0ZDBQMFYyKnR3JSR5R2dC
KFM4SzdOckteT1R7dipvLVQzTzteJgp6X0N0fUY5YCVuKTUoQmQhYEhUSk1teF45O3piJXw0LSkp
ell1eHxlMVlNdUpifDI5M3FqYV9PViZ2cSlPR3laQXEKenM+YnRjcW1fYX1vYGFHMEdXQ08paXYk
eUpUaUBeRzd0Zzl8S15uYmQzMXFBJTZHP05BSU5oRGwmOVpDYFZzP2YxCnpTYyYoXmRWPUpYS2Z+
cnVPe3Y8dmE7SipwI1Akanc4aj1RXnh0KjdhSlVKSlJgRCNeJnV+c29qdWVeeiVgNGhLZQp6P2JI
cT1hZXJJRzw3cjduPGswM0YjTHloe2g9NkdDMURxUEVzcnY4YytzQXdHQWwrUTFmYHhwVnE9Jnc7
eEN6a0wKemt7T1NtWWNzJDJLVXg1TGQ/MiY/RiVxOWdHTDF1akF7Kz4lZT1oZ2grczAjSkxYRWVM
WnBZMn5DTz9mYi1TfWJ5CnprNEtoUzBKfjt3KF5yeGE7RCN6PzMhNik0PkEzckk5UUJNUHZofDZm
P2hgZnQmb3A2P25kSD9VPzN+JF44YCEkUAp6dF4qd2x2ZHJUUW9zdTc8TFNvZjVxVWVDY0tMV0ZS
RGQkUEpZSiNsZT52RHt7Q3E2QUhgNipQIVEtMVFxX3RRKlkKejshKWJecXc1Ql9LbGZ+OUhffExY
blpYWWc9PjxUaXFUbTBkQTtuNiphQEdlJFNEMDdLTVlWZXR2K1lLMWVGPkxQCnooSkR1Jkw3SGJP
eV4jdjs4WT1sNmJ7bnJLdSozfWFxcUcrbzhVM3k8QG9zJUxSKSF+TClSTT58QnAhKmVtMktBWgp6
YklwYDdSTTxMRFIpXjRFSWZUZHVPZDBPIXdzJjZtZUd+dH43dm18U1BkKH5gRGJMeVlmKEpXcDUt
Xnsjb3Rwe1YKenc2fXt4KEA3VmBYM0xnd05DX1AqV2xzV21KZ0dlWXRGVyZPazdIU35FWGV9UExX
Pnp+RkB0Mz5HZy17YyUjND1CCnpYZlpRMEd1YWsxR3Fqa1FTPTt4YHlMVkBIYzZSZW1lcUdnRjg1
Tm1iUyRSJkokVEhWMDx2Wnx7MV5Kb2ozQTF1egp6MVpUUT9HSi0oQEBlMCgpZmJAck9JKyU0IVh9
TWcyNHpWPXg+WmRGJmlOTlJJRz0yOWdQRUN7S3kkPzhXT2MkWX4Keno9dSNfZiFWaX56KGJVRjh5
ZDcmQ192I05DKComMCFZMkxoeEQ2enpHUUxgXyN5eihodERBbTM7SllYS1dgJXc4Cno8U3ZyTWRI
UGJnSkB0dklUWDtgPEolbkBgZWpBX2V5SDNMQlYyfHNqISZrdjVeNi0oZHY5K2hPdlNIPytJTCMt
NQp6SWVad1BhLXUpOz10JkZIam1nTllSemZRQSsxTm9QQjtZcmN4UHJSUEwoN3MhQzlhen5zbUFz
alg7QV5XcUdXQEcKekJ+UT03dTV7SlA3PC0rVXRrfUBnbSRSYUEpRSQkeml9Q09tNWt9aGB1VXwy
YGckWjZBWEk1KFNBai1FK3lMcTBhCnpYMH5XKlN9T014XzNLaDdLJCl+aWlMdW99O3Q4c0JGM1Jh
PXpZJSgwamhpNm1yOSsoeSRqd0xnZ0okbGtPSW1jUwp6RU53O1ROeUdmQjtgYDNRSkN5ey1kdTdH
KCglemdlOTcyRGpZKFVNK29PMkZaakBEP0hSTWQkKkpCaXJNampKO08Keig3QCVOdFk9YTtvPlhN
XmQ2YT9Qcll6eD9jPDJ0eVRNIU9vbllHSTdRWSs8eXZLOTY2dz5ZVVZSSDFQalpQJjgqCnpHOTdk
RGB9dWpCMVU5UTkxVlUtYTdselRsZFlncDU8SzBHQGJwPWNxYykyKjxRUiE3XkcpTnt5UGd4I0p7
U2kpIQp6WmNoJG9YVU9EcnpNUEBiP1VLNk5MUWg9bjhgSkV2UTFEISg9SVdpQm1GbUwoIyV3VVNl
YUVNRmo+eEs7KitHQHcKenpSKUhUY3VraCN7V1J8JEs3ViFAbyVDKj8jZGwqZjU7bH5SZk9GYTZM
UnkySj03YUEmRElMfExgSFdea2pebiYtCnp5MG57QmhsK1BsYXwtMl5CbEFgIXBFdjMpPE1yPTRf
N3NJMkAxX3tDbURGPHc4fCV+I0oyfi02ZD0jLSl3MG1OUwp6Z2A3SHFxdXh3KyQxZlMtUjN6V2Fm
OHlQdDF5K0stekV7VXAwVTxwMU52RVd4ZTd3ODk9JD1AQWlxPGlxYmpJZ3kKelp8Qm1xTkp4Q0U0
blgzMDxoOzA9UnhsKFo8bnV6Z3lxRWNJR1c+bkl7bDNZelhVSVdObVorYCZiYSUxeEBGI0NrCno+
Rlg2Vm5eKmpBMH4oUEJeS3FOWmhvZ1o+ISt2anVBZD9pQXRaSnczbH5kIVchWFhuSFRQO05zPCRS
Jl9vd1Blcgp6PEJCZU9gWkckUXljQTFJKExZIUZgNFJPMkp6RCMwWE4tMS0rX3RPUEBaJW99WSVC
M0VxUnJQdF9BWDt2eFgkKkoKel43QThedWJXIW44K0J4M0E7c0o5P3VvbTVMYjA7UCMjZ3g1PVoj
OXF6cDR2bWxgJnB+bmtHdThHK2RrXjAwWFVfCnpuLWU5JlpAaEYpJEZrVHA1UjZ9OCM9TjxnNTVq
YW95cERGRD9fP0JYUH4wUVRjNmVWNU1fYj1vNChldkk2JXE8LQp6ODFFRTVFVXdLPlJMKT8+IyZY
JFNfN3dLPFRyWGxNZjZ0Pmp3aT1rJG0kVlc3V0NhKWNfOUFnUHNZK1VzYkl7SikKenZ3XzVVN0oq
VUxsSkgmRD1lNF4kSD5CeDc5I3l1I3ZCSW0oNXwoRX5KT1Nld0M7aG9sVil+OzhaOGErPT8hWHp2
CnpjSztxR1Iwb35CKiNUbmh0bzR3N0RsMWMjKiZ5QX16PUhTTFAzcm8rXzZBNEVsQmdvalFzeTxJ
TjB4XzR3ST1KZAp6QCRQbztqXnc2ZTgxcFluXlYjaHBvbCEqNENzNXFha0s9fVNyc21QTUNFQ3RW
V2ZsOy1iSGNON3A5d3lyNXF1YUcKejRgZT5FP3UlLXhuaCl4RUE8UnRwI0YpQlBfaFJxcntlIXg3
WGFhK3xsNVpydyFLUzAyME9sQGxUfm0zK2taWFlyCnpDdHRgSVR+Zz1NLWIlIUhZYSsyRU5zSU1L
PlMqb2tqNk5nK2QycD1oLWQta1JfJG9HUCh+YlApQ34wSmxqalg5aAp6WUdURzBDRmVTMnJ6bVE3
P35ENXI+M0FhJTVKIVhXVFRXaVQ5NHU3UFFBPWNVJDN+S14pUntycThWc3tLXj1KbHYKempHZjBw
I0V3fDU2ZVRlT0UySHBDdHw8alBWRkYmZ0AkNGopYHYtbn0/fXJzV2RxTVctIzghPjBgNCNWPj1s
WTwhCnpFd2hQaWZofkF7VDFrNypONVQpUUtrOFB5cmQyRWpXRj9xYCYpb0hRUEhJLXVYWk01UjlO
aXMyJF8ocXhteG5QVgp6ZWJUOTImVno4MSojYlpNbEE2fGY0XjBHJCVrTylMTSs+Sz0pZ3MtI2hN
X3w5dFFLWFVBbVh4aTUqQXo1Tm5Can4KejxiRmJ1SWFaSktWNkJKR3tud2RTdlFzTE88Qmp2O3Nh
VjB3bzlWcVdWZSZFcHdncCFHUFQ3ZndKbil0MDgmT0ZNCno9SERXPDZ3QWtsQl5TQEBqakMxSzIl
cjBTNWo/MXIyPUBPIztqKV5zcVcmQmdCNk1GSGwlKmVyc1RxbGtPcEc+VAp6U0x7O3c2KGt2c1ZD
aE9paFBEb2VYbWFiSTE1JWl2XiFgYl55VDhLbUx9VV9BRnB7bHJ2fX1JND5yNigrIUNHV2EKekFe
WmFkWSVNUEllKT9abGdNSVFaOH47LSt6KHcrfTxOd3FAVG09OTZwMT9tZiV0XnElS0wxdHdxNEtQ
O25me3FMCnpyVD9xRWQ9Wm0wa00kQ3V0YjJYQWQ5dl5KWGxyUSg3d1BseVBoRSFfS1F8WEZ4cHQh
byk7SEVscSFfOVNSOVdJIwp6KXkqYmtMeEw8QTFMKm1WenEmWG1HSk5NR2wpYFdFYnpxKy1SNzRn
SEo7PFh6Z3JMbms0Ul5gPD5ncHZRe2BPMUgKejIoSEteUXJBNkAtSnZeNnRXbFA2Ryg+X3llJWY2
cnZGdmJBUClhWEA5OUcyc1p0UGYjISpPTEBDcXNNZmNaRnJ2Cno/PnZmZWphSGpJLVMxVCYlLU1C
U0N0I0MoXmpYa2NjZjVvQGg4RGcwUWJebDVaQkxALSRlJDheNU9nXyhQZkMtIQp6eXMkREhFJEFC
fE9vPHlib0A+JllMey15bDRBSVIzSEN0V0hMUDN1Z19WM3EoPz17eDJ1dXA2Ymd4NHc+a2BhTHIK
eityNGhRMXxuaGk3ZTtAN21yQE1aZiVDMyRtKyRLPkBpdXxSbjA9TVdKZWpjMWtQaDZ7P243PVl5
bV5DMT54IytTCnp6UFlKSjx6SlFfZmNiXmVJO1FqRytpSUhOWSpKWkorXl9NVD01Y0NkckhnUkJT
OWJsRVMqUihXJX1nbEBfVkxAKAp6PV5TSDZjdGJNN0BaRzQmNCQoMCEkTXZiJVMkYXN4b1AwQiRU
dmI2YEl9U0E4anMwbl94PT81TEJ3TjBYeUo1NkwKelUzR0wrYTAoVH1zaCY1RjQ5a248Y21ue1Jj
ZHU/cFN4OTJ0KUw+O1Y5PTNHPFY1fUU1SCh9bE5AdTJCVWA9JWBZCnpXQSF6QF9OZTtlcndYeGEk
XkdHK3VnfnwzYDQqVz4qYnhrPzFSYHRVQE0lU2VtckxpKEEmK2t8JnNCS3c8PklmLQp6d18wPj8m
KGFaMz42aDdGcDNZQSModHRAR1NYYzB9eGBCVVhWPF9nI1hmKX1lXmhRRz5hWkxvVG51I1BzbkdO
aFUKenVwYHx9OH5VTzF0aDUqbi08JnRvUWYyYyEreD1vVHdifFdDNW1NenpneTBXOWttQm1zaFZ3
IzZwakdmUUp6ZypsCno4QXB6NVchc3JJTnx2eGNqX2lKdClBQj9+QWMxaWNNSXZ+TE95Zytpc189
dTUqc2RoUEI9ayZGKjclJW55Z1Q4dQp6RnBmdlFkPENlRilMPllTMSRJYk41dEd5KGFYcmx8MyNI
ajl1fFhVNiVfZ3dTIUlEYj0zdn08bGUoQCk7cFNgUHAKem58KWRZUypjZmFfJiF8aHdHPj84V1g1
REhDK21LWnVIVDc7JlJPPGRhb3syNDZAektDS2pRdDcoZCRZTkAqI3NuCno7akJ1NzJOb0RRb3Zo
Kil4alpodm9qPVlnY2ZvJm1DRn5mQlZZJCh+Tz4yR2J8NDdIMDA7RzhRNHNZdGRBPDJEfAp6S1Uq
YDFhY3t5eigpRFVXMGp6ZDJBM0Q1ODNMR0s2M3ElX0BDUmhtLWVQPmFuJDJPfEMkbj1WNXk7JSQ4
aV8mZigKemliPHtsbmd0IUQoQTFDOXRiJCYpLUAkOXVXM3gjJllgeVpoWiVnWTlULXxmeXtNdi1T
aTVNd1E0fDtBa2hgKHR3CnpZb3h1KDBzWmN4VXZvIUlCWVF7OD08SVp8IXsmYTtGR2hrITRjRnt3
JWhsenMlKHJ5WClzQ3BrbU5hez9FZ207Nwp6cmMlWV9RdWJqfWI/ejs4a0lSKDRJM2BXREpKREt1
TW53MDl5RjN4MF50PDBJYzNYdDYmKGx1eXVpJTslO01fbzIKemNVfkRGLW1ra215Q0h6YHlCLWE3
P3NfNChBZ0JLPF9yYjRaSERBV3tPeDtuRzxCMEtsPX11fHRaYEtlZmc8YnxGCnojIUF0V1kkSjA0
RiZCYlhaMWZhKU5FcEBTaUlHfjdkMjxAbW1hRSlTJVM4MjJudjVHdW1JSWFpUlpjOHVmU2woXgp6
dHhXUm55Y3s7VnVDampZVVQlTDlFNnVrZ2ZjdX4tMXt9bDhKTVM9Zj1abkdqKDg0OHYobEg7SF5i
SzdeS0wzNisKek1qbWBwNyZJdkw8I14/N1o8NVREZVQ0OCg1KFI0ViFJeHF5cFNtanRKQDVwM00t
WVhfbCZKTkpgN19UJEAycEg3Cno3ZlFmVTQ8QVQ7czF2S0VnYjRpbXlCKntZZ1VHdHtOU2YyKCpn
bks2ZyhpeVYlSntBS2M+Y3QjYT1LcVNoeTxHTgp6UEM7P1I5K21Gb2d+Z2xJdnBqSkEjRSh7I2Mm
aEhtRURTUkNOM0UyX2VvRS1acEwkbytMMFFEX3Y1Mn5nZCV6fEMKelNgYj05ekJoLUBNK2haQTNi
ZGlLIz49d0RweHR1V2tKSFdoNW9+I2ZEeFV8KStJVEYlN0pSfEpiWG1wdDdse35tCnpaeHNyRTsq
aXJITEdEanBVM3YjWTd+ekYoRjJ3S3NpTWc5UC05U21QXkozbmRBQkJyVHhuQThmdn14KFo1eEg4
NQp6VURjeXxPS35LcW1+Rn4mZzs0X2ZYOSR3STRXXzUhS21qMSsxK0ZVT2lfelEoZ1ZLbnxzd21r
TFgldkVmdDdhNjsKenIhUW81VXVnQnA8Z21iWkwpLUdHcVFlNUElJWMjQCNeek0odjhnIVopTVhG
MGFja1V8YWA8emVzRXZZIXBmKmcyCnojSUk8NiR0d2prRygjYSpXVX19RSp4dVhmVUl1Pl4kKkJE
TEBMV3lCUnFqclpELVNJPm9vWU9xcntmbCpLZTFMOQp6U0RIcjdBb1hec1dHIW18bCopSz5ZSnAo
TiklWC00KVRIO15oTnRiK2w7UnJxKTg2PCkyVWk0bEVNLS1ySSE0dEQKempGSFdISnJkWjBqOW47
PHh4P05uKW81SXBvNlBgOTxKJHJXQFptS0lNTnFUfHMtdSR1RVZ2MVpyLUQqIXtsVn54CnpPZWxl
QyZ+XkYhWUwtIXJGOU87Ny0wMjlLbCE4e1dhSVMzO0BXNDAtS0g/WShKRW1gTFRJaEQzVDRjNlhD
QE9KWAp6JVooZDwmMkVPfDVUUjAjZUwjNUZObERKN2wtUW5vMXZrVF44alBWQHVZclQqI2QpanRQ
K2ZlVEhPMVpyaXZ+NVIKenpxPVppdDNHRTFsM2BkSV9OVHEqZmRjIUhKQ1RvQyNoQTkjRXM1NXIj
KmgmX3hWa1IrczZtLTttRzhoN19zMCVGCnpyO04wKiYxWm83bXhjKFZqNVYqc017eVBHI1lWMnUr
PWB6Umdhb1RrOEVDUGNPSSsjMUEhQnV3Iyteaz4+aTJGIQp6ZUUhNm9HRnsxKSNXOC1mZUJkNmth
SVRmeVI1aURyLTczYGg3QTxneVRDRzh0YVpVYy1LaVA+Jl5JLSNSR0swZ2cKelE2JGs8QmdPZVo2
Rml2Z097ZH4td2dOaStwaX5DYGEoPD9oN3Bua0BBcXw0XiNxRytRUzUlXlZKYXVadDBmc1kpCnpj
WlZtNjAxNmI3b0BSWGdtb3g4UGp+VH1NMm85M1ckb2NmfHQkeGhVKlB9YHomUndXdG5Wc29LKnY/
bTBCeUwxVAp6JlBVbkUxRFJVeF4wLUYzWUtaOSpRRSZyLXZkP2pxPHRXdGRjODhnTm9WQjgtKyR1
Qz1JKH00KD4+LVQ/VEtPNkMKem5tcmlFIVA1aG9DcUh1JWZsSiM1ayMrYEw1fCRzJmN9Xlo0NFJo
c20mfGkxOEotKXBBN04xQn1WJSE9O1FobDxjCnprM2hgdXhobWQ4Tm5jNDEzSiR4JCk+ZXk5Knd+
RCNTcHlRSyEhNU92Rz42I1JgRW1rezFLWmxHOWlOcE4jIXpPfQp6Z0NwJHs4ekE8dnptejc7bypa
bG9wWSR4ekd2a09SRz4wQV9CeHArfHRxUyM8PHBxMjYoNVk3Q1Fnd1cjSlhFMEoKemJOMXVKWClC
bkt6dzRjbU0pY09FMmpvMytIbV4hLVVuS1Jrb3BtJE8oeENsRkxBdDt3R3RUdnEzUFpSQjhsMUNS
CnohNkM3XnleRnAxPWluJCZ4X35wakF+OVdlZWc5dlRYPUplY2YmKWl+JSEheFI2YiEtdWY7QSR8
M3sqe14yYDdNXwp6QkpvZl9BOGJCakV5eGJ4SD12az1XXyklbUZ7Y2U7KU0+aU54SzNeYEoyYlNP
dUQ3PlVPO3k+fXhGT088JlpablYKejNvUzExQUcmVmEpNVc+UHlNKyolUldeIShmZCRaPURjNm44
OHtCfCtoZ2ZSKE9PdV5BZllzPz9CJj0mezt+bD81CnpXfCh6a1pHODRxM1h0a3pSZDdlci1FeW5n
SUFXVXohSnFpSjl7UyRUSisxSD1uV3JTdzVuY3dreEZhb0ZqOCtCRAp6MWw8NE83bmZwTm5eS2Jy
M1k2Kzc7PXlzdjVRUyh8SFBoOS1lWVYrbT1OQDtaTE9EM2hyUDV7ZkgmQy1oNDJTMkUKell9YSYo
OGx1KnZrKl9+SVdffHwzLTJqejIxQCEpUDFJT2BAcFBrQWM2UyowdmtiJkhKJihfTWZ1V1hkY0Bk
cjNVCnozO09Mdjh4P2huNjBmR1p2aUZuZkA0bkApYVRBcDZ3UGFoWGVeRlgzUkVxNytvdX1MKnVx
MmM4ZTw5cClKdCpsOQp6KmdRRmJ1UUI8ZHZkbnMyTmwzMGMwMUplUUQrbU9ZIzZGX302UmNDRUtE
Oz50OSZ2QyR0QmlCbVA3XjU/SVVaMFMKeihMaHJJcTFpNzhPRFhDaTd6TyQweWNBdThXSTF6U1dG
N2I8PCM1RzxgWXJLZDsleSs1PTY4KCEwclhWUmFgWXR9CnpfLTBHaVN1Zkh6P1ZXbHZhdyZZaCZL
e0J5cDBmNEgrRl5WUl5LeXNZOVdRayRkeyU/eGZncHpiNm9ee082ZTk1Qgp6VX4+Sz4wUS0xfjJV
KCR9b2IkXzI0Pk1xd3s1RFVIT2R6QHc3JTxWaXZTbkcxJnIhUiQqYTVld0QjdyR0dX12Uk8KenA+
K3slJCFYQlJRI0JgM3FRSUoweG1MTG4wJFYjI043QXdpaXlkcDtMe0Z9VXZ9YHVKb3xjMjdmbjx7
eUIwbDdHCnpPRGNBdCkpKlE/P1F1bms8Q2tMekpBRGB8SHEtK1NvVmVuY2x8Mng1bXBISShFKzVK
X3khcnxkVit8aSF6MEslRgp6RG4taTlFbWA+cCohYSp4UWNwOXllZjNjT1JAMVQ8MjVQKnVIWksx
eVk9N1JxUmA8aDVId0oxPmAlYjtqZCFBXkkKelY1I3dHZGxnRTs7QyU3cXdgbyhfb2tzMFYoTUsx
NWl8dUAqRGtYRT1OQ0lnYkB1SHQ7S2swdDc3TGh6dC0wV0stCnpePyM9KCFfX1RZbENqYyl6eWgk
ai0jTGE0Rnx5Qjl1N0JiZmdeOUI1aDY9TUs+ZEYkNVR1Vm5EdSoydjI2e3tGcgp6c1Bze0llNiVl
Yl8hamlBSSE/WXIjbS1RJDVWZGJTYEpObk8jaVlCP2JzOCU3JllBO0BQNjUoTFZrJENZKip8fmMK
emw9cDVxa3l9fCYmNipidzU2PWhSYitWUVdKd1IhY1BfemBVTUc2YTRrfmZWaFJLV2J6JU98fjAh
fWVEIUFIVXJgCnomYTdue25CQXppbmlhPkB6KzReMHxCez5aaE4rVWNPSWR6P01kV1U9JlQqdysw
bkZMaSRDaDV9bj5gZURmPmxmUAp6aW1SMzljZm05X1BBYVhuOStSMEsmdHEhRlBnVipsQjRHWkhN
c3grVVUtLSY+SV9gOTted3cheT5qJlZXODsjdXsKekdYc3YrMFM4cF4yZVdwR3daTmoyIWl1am83
PlFyeGVwTk9NeGpsVnlzd35Zc1p5fV9RXzMmbCpIXiYoTTxteER6CnpobShgRF5OWSFTODFhZUQr
dGJOKnQ1MDk0I3tnNDMzelhsOFlSYXJha2hQaU5kbXM9ZUZ1fW56JXpwK0ZLcnBvUQp6bUw+NDR7
TVMlNit9KyhIQXkmdTZpaD1tR3ZNOU1sbGxWKCsmZjcxfjdCdVUqRjs+QEVyJjtIQm9ROTw8IVBg
eGYKemtsUjkqZmVrUio+YlUwfSR7M2ZQdjFXREtVJXBpbnZnTTswUkRZIWZ6S0l7ITJFX2pacVIt
QmYrREJ3cUs/QlNgCnomSTt6bFMlUlg1MTcyWU85WVU/UDJPPWp0UHxmQ1VvZCNSTTJZKGZeQyVr
dGR3Pih+N2lSYUNndSkwTVpEZyhHKgp6UEEzKGE9JipGKEJYdjMrSj5GO3ZBUGNeZXZyMiFBUjdj
RSNqN3BLPjtzTWx+LVdpckRsMmB1Q0VhWHAjV3AmV1AKej1wQWlQbUxETz02M2k3KDVCODBXanRs
Y0VOSSsoRnoyOUh+RkJBJnw2WVZ5QmplZFp4TEZnUktXfnpYUS0mUmQzCnptZnlsQ3Bya3I5UEhp
cXNmRSpyaWR7dSk3UWhiJmYzWTJ0MURKNlZSYit0PystfDlTTz58e2Q8ajRjTFdQJnwoJAp6WV48
P2RqY2Ypa2p5VXxQbzElbHw4JGdwenhRbUtkezhLUzlKfmVFWiU8JVlQcDZaYTRBKEUpS2NRJCE5
YTU1elQKeiRZd3ZBOUVoITRxYV93P1E+SkY3cUgrST03d0Z2Zk5UVCstS1pAVitIOWMmWTc/bTB2
VV9jTHRjVndCR25wIWoyCno0WXpEezY3OUI2WiRrOUQtWVVCZCtAJnNLbmxsdkRmUVVyX1dxKEst
e30jQj54ZmNzJEtLMVpzcTRmVThnUDZYagp6RGtgbkVTPCYmYXQ8fnY5JENwTSo5VTArfjdSdHlY
Um94Nnl7RFYpLVRjdnk7PCYpIV9pN3pIeGQ5MXlLSTVic1EKenlWSlJhMCg1djg/R1A9TC1tY001
TWVBYSE0dkN7SjlVaW1TPUtYSVNKUis+cE1wVDZGKC1HRUpUeFI/aVJAM1IkCnp0fUpFd29YWGRu
VXJUfVhUS294TG0xdGZmaWA/TTxIJTFNQ3ZFbV9yUys9MG1tX3dkfnt5OFhmd2U/aXhXMiM0bQp6
X0psLXskTmN5TnNtVGxMe3A3UlhiIz12Qm9gM01vblYkNzhXJU0xQkxoezArMnUrXmxoaSohIWV2
MWpXeT5+fXMKejFHX3JpQ3ZJNllAdWxrNEVhTXhFITdoRkxaQVpubzM0MygtV0pNfjFwRihzXylM
THRAbj9DMSMoYFJ2TjU1Qz5vCnpNZ0xMcEl8czxtUk5yK2h5Y0R2MmYmamZlWmByfClUQlAmTGQ7
SUNeLUgybXs/SShFaWBQRGA2PXZMcUdXeShtMQp6V0sycUN6fmI+RkVjQk0hPyo5aj02WG5VTjJe
OUNASSYtU0NVQzFPaT49bHgzeSpAbXRlP3I7bmRafH1VQjBBPTQKelFRSlUrNk9TPUUkUTZeSHZA
QCY2S0YmZE5ZZ3FxMVIwNXluViVhdys9WjFPTns8OWElNFNifWJ3Q2hyUGUyRHYwCnpaUDhiZlNO
O0RXMnYpODVPbFBhYTxJYUxIQW8pJTl5QWZLIzghYkFvdG95OV4lJih0QDhhaHBQay1iK08pMDw0
JAp6bFEzbHY4YVRySzlMTH05b0JuPS1PN0ZyVDMtV2QrYDc+V0doOFh1fkAobz5pK0pBVEJ4OSU1
MFdKJU4/bVBWa3AKejNlQzVpY2Q0c1NLMnVwR2ZabH1SKT9qNEVeKERSQlkxPCpSVEEkMnlfKjhB
ckMtNUJKcTR7UCUtRjBORT52JXY7Cno3MXJyPnpyS2hVb3kqYiNkfkhwdihCZ2lLSlNSTGh4UXZP
Q2VgdngmKHVyazFgfTE0QmFBYioxI0FKMTstUlA7fAp6b1J0WjlBNW4zI2dyd2VSa3VITl9BWVMr
K01fQUE2Sm4laTdYMzUpMEolam1aJXJATlQhYUR7ekYtbG84VDBidjYKelBMfVlzdHo3K3RkfkNJ
LUxpLUNweVQkbHMwflMmTDRrY2gwTiNPWm5EPUBGPmBQeGlDa1ZIayMjdm5TWD5HRUtzCnpVIXwo
YWVqaStidUlrcDV3TFc/S1MrZz9XR3Yrc2RidEQ2SldjQXQqbkprRik7QmhYSEAxYjlyJDkzfGM+
Kl5XVAp6NitfQ35TViNDKm1lfX4pKUJWbn0wVjwlfHI0RkF8blZIdnpYa21GU2ApSElCSngwTG92
MmghPnV1e3VYI2QmKnMKemRFeEg1dDklMmNHJCphdSg1eiloIUFJKG8jYD94YG1qfXVaNjk9UlQ7
Skpkd0tvdUdqYz9NQ3JrflR4cl5jQ3J+CnprMCN7QV9+LW96WSRzKXp4IS1kOHh2KG1mcVhrQkE7
bmNKenM0aGs+cCo+JF4rP3Q5S09SUX48eGIxY2QmRkxOaAp6XzUwMTRSJFpqRTJzJFc1dno7bCtu
Zk1aSU1OQ0FFREBZKlhAI1UwRHdibDBfUV9eOUZyT2FAPGxrZCExSmtpI2QKeklQLUo/XmJKKWwp
THNXUFBIO2tORylJZ3ZiaUFKRD4xNyklKHdvMEszXjNNQFdWOWpPcSVkXzN4NG1CJTgtMU9xCnor
eUJGPlRxVWtVbCk8dWZTSllsOWIhJl5lcnF1Q19wZDk8U3paNksqQiR6NE1Vd3sjaEwwJHsoKFlL
cDhkWk4qMgp6Qmpqe0MqO0BtYTQzfHlreGdNTEwlbll9e3BHQlJkKnBVY0h5aW85Q3U0cXJKSXUx
WThEZDBrJkZXJmp3b1pnJkYKekNMP25lIzJXPD5ULSQ/fVhJRm48ZChrNWA/Qlp4VzhmVzgoK3ZQ
c2RuMn1EUmlmP3Q8U3ctZ3hVeDFvcns2Oyp0Cno/YEdgdzhRYzBDRlZlWFd1S25GUklhY0BGeXFs
K0UyVSNybTlOTip8e1h8Q302M0Ewb1EzfjFOLXJIQ21RRGFSbwp6Z1VnPyFnaCNYSkQxV3M1Q0tC
VXRBfDVibkNQeVE/UlJhdnB6diVxNTNid1VeQ1VSQjFadUVuVSZ7USo8SyZfeD4KekFJeHBtWX07
ZSNuNzVjYkIteVA7Jmkod2UmJGs9U3lXP0E3Iyo0blpvO2g/aj9aTlpvM2w4RGlrPk9IXjY8UXE0
CnpJJUxAS0hzcD8mTUJEbGctKExVOEtiYD99LWgmO2pFM35hbTI0bGFRd0NBIUd4YStCOCpmYiFg
U0A5MWBAY2tiagp6bExVPSkyMlNaPHVhK0RQcyRMR1Y0cmAzUFZOZCM7ai1pTGtAMHhnIUR3LVAl
VW99U1hQaTxfO3c8KklNVnMoUkgKejl0azshPFFKP0tgWUhfWkNqVjRTSXgzYjhILT5BY1Q7b1Mx
XjVZXiNyan43NGAyUGJLREBUfU5GUz98KnlSVjg1CnpTNHJVeW1MSXxRKHstaTYrc1NDUj9eWnRO
QiNDVUxPO2I1IT5VPyRKVUxUODdIN3s3TU5yQndqamlNKWZDbUx9Rwp6PmlhcU9SdSFKNk9aSng9
dkh1Ml88OzVtMC12M3V2YEVRdXtBNldUc25FNX0kJVlWVm5GcChaWThGSkYhT3hCaWEKekhyKHZv
ZyNGKUZyP190UEc/UURVcnRjOGZvIVJJKj8hVDY/aGpLOWd4K3Q7fmdUWkB3YkcqT3dlZS1VbDxZ
Yl9nCnpMcHR8NEtYYHFqQWVhJkBYcGhMZUFnMX0rSyM2NnhUSnt0ZDE/bDFXMn5vclA0YTc7M1hk
bkkxPEB8UUw8bSM7PQp6SSVDR3U2WFd9UXsqblhMWDVReEZ3TVRpc1MrcEA9QFM0dWB3IWM7WEE/
ZmBrO3hXJVdmIWQqaCVTclMwTG5EPT0Kell6S09SXn4hQWhhaD15MlNrPnpqWDE/SjNJIyVocG1Z
S3E2YzZJZGp2O0NXcVowRWp5PmJgTzIqQWo2WjQqfS01CnpRTHFySm5oQ3ZDVzUwMzJOSldwSyRu
eT48biMoa0w+NyQzcj9FJVB5KXFLT1BCPUVRPTI1KEY4WHpKI2tBfTRDegp6IUhVTD5wQHFgaGBg
YmB0eSNGMnQ+UEtrNW9RaklzJHRBQksmQU9iUlZ+WjkhNEJuT1ZFe3I3SXktcCVAKXZEMHgKejVK
YXdgcmdGUV5kaFNLdjJtY29tZHlheFRaa0U4Z20mN3ltKipYYU5hOWNDelhOei1QPD5qfHh3OSo4
JGtUd1YyCnorPmpve3c9T2pEdWJlJj9NPDFJVGN8OVMkaXJhcnRidEREOGxQU3ZKPHZIbjJKSEQ1
X0xNRSF3Vkt6VE9FOSEtMQp6X2dNVX1mNTBlfTRjPnpRX3VGNTQxanUzM15eOTBgP1QtfW9tWWJO
Z299e0g5JitIIUJzYXU4NygjRFlRaFckflAKellWNk5YKE0qMS1wSzd4NTNPNyk8KzNZI3VoKCYm
KjlRQUl5UTc9c0t6UzM+UWIhQT8hSFF0MWt1YVAzYFh2TjlvCnpIcUwrSV8wKlkjWEFmI1RzKlU/
VCsjQCVLbDtKe3gjaEIkYVdMdmxAMksmeEY2JCN7SihvQX09NVV8bmF0Tzkjewp6IUQ+VFVWcXBm
SUZDZGd+Xm9CfmJ2NH0pNEtkNUIzWDhmI282cj4yaWdlIUF1entJSiQoXkpafEp4PDNyPXZRRDgK
enRaYHFLLVM4WHo4XkhHdE5+dUBDI1Y0JVd2fkxfM0ZjM016bHYrLT91X21wYi1vVWY4eU4yZWJk
OGU9MU10O0BXCnpwZiNyPG1ZQ1d+ZXtXcjE5dXAmflVWbWpVKEB9YypacyRFTTVgcn5IVFkmKHE7
ZmFma3c4YH4+VFY1VXZGKXVkQwp6Z0tPeGFEMEQ/ZkZndnRnSi1sZ2QmK083JHhHQmkmQ2l6fVFE
OTlOJTc7LTltKG9YaWgqQXJacVpZTV55Y1I1fHgKeiQwYDA4IXNmQGVFUHZ9Z3FHI3VMd2t9Pm4z
fC1iIWxKRzlPWWphLXBIJHJpRmhacCZnJCkqd0IlM0ZBWG5eYlZOCnplR1llO1ZSOStYe1VhPm5H
dGJOe1ApTzcjQn5rRTh3blJRaXZuPFJzSDdNd29zQy0kP0ktU2w2NU5BUXxQQGJ2Jgp6VzVlcmFN
RlJ8VV8teHQ+QilyNHF5WCMwYysyJn5NczFgOFBpYDBhYCFgcnZwQHR1VFlHb1dPI3QkNENvJXFW
bjMKenZjV01ka19UPH04fkUxSGdvYnJUWFVSTXdnY0dadVBkOHQrdGFNaDYyQTdEKHdKWWpjbGhx
OS1UMWtqez1tfnN3Cno5V2JNdXJJKEUrQFlIMjs3N3ghUCFxS1pSdkVKJn1PbEdGOGgtNXtDOzc9
aHttfDM0dkZZRis5Kj8+UitAJVhTRwp6WjRvSXhBal89YEchYiU0ZVEkaXhNZUVGN25rd2Q/NUZW
V0prMj5hYlZ4blp1Z0Y+aW0ldDxqMHViZnNISjFwMDIKejtFNjR8WEwkMSZ1Mjkwcyo1Qm5lOD1R
bHQlV0leNnkqV0Vhe3xObWJ4SUlxek5JU1JWZXJaMjVWOC1OYXpTbTZpCno5WFU1djxpbUxjS153
eHdnVDZ2ajtTUE40bDFzSj1BPzRGKUE2MisqQHs2NmBsaU80RFJZVUFQQTcmKnRMRnpZdAp6aCVy
bEJ7S0tNdGZYYnVVYVdMXnshKExzMS19aXBRJnY8TUhNKWRafSFyaWFRYU13UipAYVJBQD1QcVZ5
aVpaUF8Kekd0bmMjXlUtRG9NR1hmdDBJNFc4dWNIJTNmJFc2TmQ/ZjVyZGZ5dX1kbGE/bUBvJHBo
bzI8blJ1UFY8STN0QypYCnpza30+NjsqVDVraF9FPn1fQT9KSDh7eTFQbno5aDxYPjZidyo+R2Up
YGUtLUVNQilIaEBzcDQ8R3spczgxaks9RQp6VUdpaTFNOWlQV2xCJiFScWEoaEE2Q1NOcFg+aW5S
cSUqcTtRUnNsdislPGNjJExrbHlpbXlvbEw1KSRTbiMraDgKeigkPm9Iem9+a0N3Y2NtRUQ5fVEp
SSR3OTU/QTE7dVlKVUl1VV4mKTVxfEk0akorIUV+YjlxOG1zclg2VkwjJTszCnpPQnBSTiomfkRl
ZGJSYFdYTyktMz0yYHFKOGxRQWZPcDBxMUQ1Kmh2X3UqNnJPIyRDPz4tLWdNOSpvWH5LeEQ9VQp6
XzR7bUAkZSE1Sj1tQTMhV2krUGMka01TdXdJKyg0NiVeTkk+NiFVayo8REBOVnklWWYrdlYxezZ2
TSYwQHFzYngKejVlN1crQzVKKShpNCM3WDdRJkJOV2JjKzIlb2wxYSFkdHlRNWdWUHAmP1I3ZWQk
fDJtSzUwbzUySnk/YGFuTV5FCnptRWoyKllSd3h2dTUyNSg7Z0hSSzxJaU1OTlNFKTxXJiluOFAq
eEdUSnBQdFRfZy1ie2JrVmdhMF41eWhaLX5uaQp6Z0tjLSFjVllgbCFBSmBRIT41TENueilFe3NI
QmM+K0hDci1NOTVDPFVta1RAOVdHfHA2N3RlSUkoKyNHaTxmWG4Keml3MXdHZ0llRlNnKzNKN0xn
RE1JczdEdW8rJUUpdHlKbHJFXyQ7e1gmaUZkKHRicHxiKENqRHV3cFRSTXZERDRrCnojamd+SFM/
fEtaWTVwVVZXKmdvZXt1bmBBPEZ3d3U9KkQ/K205fGhmP25VWF5zbl9sbEd0dTxyWFVzV1Q7VzIl
Nwp6TU1QSSYqOFdALUhHPEZOWTA5N2VGdSljKDJCcjFrb1VpNkNpN0VxdT1JIWBLbWslTVVnXnN2
c2J3dH5nVWJuKygKekgoRz5lQSpYKns4byVYUHFjdkFIJipWSktiNDtWbkI3Z305eHwlWTQxKCFX
dkppUVR4RTYzUzM7KiRMbDhtMUNzCno/enp+endidDBuQjYrNF5xSXtsJitPKUpvKkRwcDhqMXhQ
RlBrNU5SV2YoKyhFdHwrPjR4anJXMXUxdzMjQDVhNgp6WVQ0XmU2O29eI3lZMz1lJClKQiMrcW4j
PEVha0VSPSpRa1Y8P31OSkBeX2R0YUU5VFZrWF9sO1V5OFEhbCR7YmoKekMobT5qIWUqXmpzTHFj
TnQrKjxtXlpSWVNXKXlMeSV1JSErbWlofGlsczhrTjBaYGk0diZxUXQ+RnZScTBSS3FKCno2JSRl
NkFNYD1yRVUmJko9SEdlcyNOVFBYWUtRd2hBN1VzeCRtVE1lLUZFJj1WeXFfSU1aS2B2Xmk1KEAw
Zn5jdAp6SD9RQTRKdzU8TkUyfSh+MUFnWFJJekV8K2JUS2l3NntjX1FgWERgUmZibzNFXkwxdH12
ezRIajRJNmNKbSUtYXYKelA5UnAtanx1QUxiMUFWMWAlXjltcD44NXt3fVB+P0JtQHYyb1VAKkJj
LXIoKU1jXi1+IUlLUCF3WU5HU3k0akJWCnpwdn5SJDRzRWhvdWw3ai0/el97fCE8WX1gTHphMTYp
U14oT0NqSytVQDdZUXVNby1FcjhkLTZ6S0llO2YrPX1Uegp6O1FNSENtZWs+KGBHdHlIaTk4QERE
clleQ1VrTnBpS0dKI2lvSVEwfEUxOVRiYk13NEkxZ2dgbmhuSlgpbSZNMioKekJBelhta34zbldv
Mm9qdEZaJG0qcytAM1RIXkw0ZnVmQkZJbiNTc193UjktKyUjPSYmNjZ3PylyNkEwKSt9Z1pVCnpL
MVVoQ2NTZlIhU0x2Ozw7Y0teRWckQTU7eTdYYFE2cUh6TzMwJTNQNHZXNXlwWTxgNmFXI1AwN1Y+
Wk5PdzRpRgp6dCpOSXIwNmpCb19KO2JJKCRUJXJKQXMyaW9iaU5fRkd3JlpYUjRUQz1VNnFxVk5R
aUViPj9KeCU9YHROXnpCKVoKemdgNjBxJmVEdz4kZG9hZHY1WTwtUFRRViFga2tpJHFuMyt8SjVl
NWJBNVheQm5sPW5QemFZT05JTiVSYWFEN155Cno8YDdDK2Z2e0g3eUdkbFV5ZHUlJEhKZDg9ZzZp
MUthYCZRS1BeMFYxeXQzeGBNcVliQihwRn01bERGbTJBQmRUWgp6IyV+OHk5OHx6SG9oViokLU5O
bj8wP3pXfmREV3lpQF9BJSg/VjxLMEFGPW5BRlMkekJTdTlkUFVXX25VNW0yUXoKejxUZipoN2BP
WiRQYGwxKjtAJGFPezFXNDleI28yKT9OfEZKYTAoPEAoUmIydjxMTzkzSHRUd0wjez58WT9YZG0m
Cnp4Xjg0TEhWUTlhbSQ5NF85WTJDfT5xfiFyLT1TP0NDbzdHWjxBPXkhYllgMzZZZn5pOD4wLWFW
MXthNCFMNEJGXwp6O2A5Pkg9Q1ZqfWRIVHZ+QEN3U0VTM05iM1hyTncyRCRhWkAjZ2B3MmxDSjt7
Zy19aT9SWWh4YSkpaChkemJPUS0KensobjtsKVQwb2UtNXRGKUU+ViZpK0R6JnZEOzI5Rk90O3Vm
disxKURfYEYkXjwmVGh4UHJpUjNKV0ZMZEdVNWpFCnpHYz8pe1kpKl5sJWZTPSEhez5MPjJBN1BN
N19NJCV5Nk4wO0A2RFZwUFplXzEhZzYtRko7MmVVbz0oUldWZU4hcwp6Nj5FRT8xK2t5THMoKjs4
NGk8MTkydHpGPkI2Sl9kbFN5dkdoKiFhO1gxVXgzPHx9aUZPY0B1WHtjQEYxNjNRJSgKempvPFRz
KUdieiR7fCR+bGNfP0dTJTBBX2o0S0ZMQGtmZEtheXR7NXlVaFpsO0lQZnRHOUU+ZjhoTT8teFVa
IUklCnprQDNAMnpnQTZ0emFEWUFJM25NMXIpSlZZKGQtQzt6VmVrWVJqZDtXNGtVI202Qzc9JGU4
fHVmUV5aajhQSVElOQp6R29BfTJzem5wbG9Cd3V1Q19FUnJuQW1Fdk1hWW9eUGNIPm9xak89fUFL
dVREJWMlSVgtP09JQU0tZEVDQUF3aFMKelBNIWA4JVE8eHlub21kQWtXVWJxRG5RVFRnVHRacyRm
VThKQyRDPzdLRFM4NHdkIW9oM35gOHNOVT95LTNgdWpVCnpnO1g5eTI4dmkhMzhDTTduPF9Ycz5T
c2MyPmhILXBHXkspIXAlR3U3NnozMiYkTjZZJkpgISFSPlo5RU9oQFU4egp6dHMka191cnMyaVpA
Skp8SChlbSNeV1pzSno8cGxqKl41ZiVme0pjUGZoWWhBdmY0cDQjVm4/UCpOcWZYWj57aGsKeklN
Z0VRWiEhZ2ImO3pkX0hMSmA5aG42MEowWVhlfSZwWSEre0U4Y3VLPytgNUplRDJoNHBUMz44KVNJ
Y1hHZTdQCnpWcW4yNCFJKTUqNGlsaF5GU1dmaj1IbEE3Z0ReNDtscSQ4MF5IQytOSDBJUGdHZDF7
QW9JYyEraXRRdVh6WSRRVAp6VnI+Q2c5SXoqaz1MbH40PGpoNk94Z2ZhJjxTdUFTMDhCbWd6bTB3
eGhMa3stZU9CRTVZR1FZI3V0aEhDZG5wTEAKellvYy1VXk1YfVEzS0FlPHFSPzUzaT0xUD13S256
PjhxZ3x4QnxDO2Roa29GM1p6fEpCQHd0MVo+R3RXeVhGVkp5CnpKZzt7SHZjRDslPDE7cD1ZNjFF
RmA0JEQ+WEkoeSRmRCg9V1ZiTmlJUnBIVzxuSyhzeyVfY3skNUloUnMhPE9lYgp6cC12cTtLXkdj
TD42QXJHO0shI3UrS3g8WmU0KyVFT05yaFZFZz5td3p7b31OZG8zbkdAdk5ZRCtnKj8lN3hfbykK
emVwfEtFTntILUZNeXMoflhJbmthYzdpRmslbiohLTtIWjIkNzQkYD5NSWhVX1R6ZkY5K0xfaH5B
bSQ8d2xlZilOCnowbmNkSmBQR3pZajctfX1jPXFOI3ZVWUk4Z012VHFjKXdERkNpJiUxRl96eSRD
fWUodSgzSHduQj89cHpvPyhVSgp6bW9USW0jUTJRZEA/Xz9ldU4xRzEhdGgzIWV8czQ/WmRzdVYl
VSlMJXhrY31WeDg9OzF3JVJAJD5DLTNMNU5jIUkKemh7Rlh8aiQrcyFUSUF5VUY+bD5vcGJTfEhH
RUNRPTRQVjd4MD5tQzJNUCpWUEUyNzY/dXQxPHZQUzh7fW9reWdECnozRlBQQktHQmo9N1p8cC14
Kj0/TXRQNnp+Ujw5NUl6UkR1JXt+RGopVVgoSSFYTyVRQHZ2NWo3JEMqI3RVY2E3QQp6R19GI2Rr
JkMxTDdgSCpAWkNoPWhrRkRUfnllRUcza0xkRSVOZ2d4bjZaNWs5KWhnOE93Wn1Rakc1UUJnYDJm
VGkKeiF7VUJyQ2FATlBoMkNQVmN5JG9mcWNEe2tjTUcxY3ZzJW0rXlNNME1RS1F5SCUxSjZ6Pygj
TExmYVpeKXNvamBNCnpSMVRvSkNCZD41K2xta3QqZiF1Tzs5YXpJWHRlT0RKWT5RTSoreCg5KTdU
aiN5dE1YXnwwdldnYW54Wk9nTW5vVgp6SmJGQmJxMWxWcj56QWtObzA2YysxcDZfb2x+MEEwM3d+
QyVoWlM9JHh9U2lvVW5nJDs+Yn1HP3l3fkEwPjxVMzgKelkoOENTXjNsNmhjRDQrPHA9U3xKaGVE
XnplQW1zX2heMnBOPX5MeVg5WE58Z1Z+MWNuc0FiKnxZcEpXbDxGZHUyCnppcyRzcTVSJG5EMGw/
cFZZWnckTlYmP2lQWHlgMmErWXMwSiMkYHY4YCk2UCM7QH1ESXViPEx3JlA9fUA3RFVUTAp6KElw
P2hgNnxuLXtNKW5qeVNGOHpIIzNRJUxYYG1rcW5rfFlfeyMyYD9mUmZLZDxSendnbV96dntvSEwp
RkE7V0MKekVfVVJGQyg9dTJKe2h0JlNJdz1GKXZEYD1xVmI+WmBBdyRUR3lhVT1zPCtZMk5KQmIr
X0BPNXs/STs9RnB4Ty1fCnpHYVY+Z1MqdG9TUlNiaChJfjBse05nd2tMUD5tWmRaanZ2MVlibXx8
TXlkPWN0PjN+PzckNGY9YURFU1NoTEsyKAp6bnQ9WDh6aV94anVmQytvezl6RzRnSUR5fVYtWmBK
M1M5eHZKTT4hNjVnQG5SUGBtNFQhbSRBMGF6MXQkQ3B0IVgKejVuU3hYM1YoRWF6JSpVTzVQazUp
dncySEsxUT17eWhxWVpydUl5SGhLRDUpMU1HKDJMR0VXdGJacG57azk2My1eCnpGU25sc01CeEp8
czxPUEo5P3F2KXtzLSQhKS08MGluaFNPZzVpLUJHaCFgajFTKGZlSGZGJWxSK0U5TVhCV0ZIZQp6
c05gRFFzZGA8NjhOJk5tQmRmfjBXfW1EWi1zZnQzUk58PjxAcGhnfjZuKTIpISkka2IoJm9YaTt5
Jmw8VnV8X0YKemApYWNjbmU7a1EoSTt+fitqejxLMHpuTVNycyV5cVlgNTtKPCNSfHAwTF8/bDkj
JUo4PVdzMFM2fUskRDgzKF9CCnpwUG1oc2dDdXxKYyZleWpldC1FfXJeRU07UFJIQGtkWnl1WkMz
cjNYQHxSdnhRSDJDcE4xI3t0YTMmSG9HP0Q8Mwp6Wmp5QGVgVXlpQFFpMWJwXjRGUFppMjJ6NjVh
NyVQaHg1MTVUVnRseShyR3JsXzlGMGFxP1NvQW91eiokRFBKck0KekcyVSlfaERrYGVFSWdZYCFt
LXZPTE4rJjBSc0F0R2JILWVnZ3U9ZzMoYyRUJEo9QXpkWHJpaEFUX04hb3psflNhCnp2dHF2VGZ7
em4yZm5WNXBUTHdDajglSkomRCpMbzNUViQxfUZQfTxeI3opfT5RbCo9SnxBIUZ8MCp2NldrWEVG
OQp6JEJBRy1DS0poWGZhSys4QjNoalB1MExfc1AhZFA9MlQ9bHJoT1ZBNjRWPkJOcEc3KlAoUnsp
Q2FAZ3xlUGI7VnIKem1QI1dyc2lqWEx3M1omQWohKlJsITRiZDgzVEt3NEdDSHlnVikxTFpPJEdQ
STRvPzN+a3tLMXQtS0g3e0E5YDF8CnpHVEVtOT5TfiRnKzJTI2Yqfk9QRHRlPz8+Y1ZkQTRheFZe
JSFTMzl0TyQ2RmI+IUF2WTtiSmN3biVIO0pFWXBxYwp6TCN1ez5wODQzbXRzeUw+ZzY+I1lKU0J3
UjshKy0wISVFJHl1VCt+Z0duQyg0TjklQityXjIrZ1c7SG1tMUN1LWAKekpwe3xpeG9kZk47OTQ8
TzRXWGpaNUdEb3FEVz5mfll0N2VyMkNKSDhfWVl5ezZOY3JWSnY7RSkyanFHcTZDbiphCno8SWVW
MCVOTlk+JkZDdUloIz5rR3QzYmBsJjY/fVZHKm1FZjNGWG50aE08ZSthSnNSVEtxNG9JcXl6I1o+
QyRDTAp6TFJYczc4a3s0KlBia3woQUJMKHFkQEBJJkRCVz8wZkRVaSZoLTVaYnptYmp4dEFYPi1F
bSUpJEZSZ254REdTLVMKejlMdT9ET2kxRTk3ckxkWmE+MUdLZkIzJGU4cVVKWjxwRWhRZXdAYT1i
MytVXkQxVmlJTkkyZTlZSkB3VUImaFFoCnppclg1IWBNX2ZVOHledH5WQ0xJO05tS3paKTw9SWox
PipDa3NOfmM3I3pGOUYjWiVfLVElejU/eElqfGBpYkllfgp6e1pQbFBqTl40OUpTJD5Nb21OcnAl
OGM0NDM5b0F1bTRwfkdiNDl6ZFNWQik7Smh0cUE3dy0henMqNW8lYEZgTWoKejs1XkR5QTxmQj1Y
Rkh6K1c0TTwwbkwkJTxQU1c0fm1hUDIqMDVuITlSOXVpIVd5dzRiQTttZHMyTl9mQDtjQURQCnpA
SG1VJXtQTjQjO1hAe0VKUiUyU21GSU1venheT0MjbUlxU2xnfFZIV2dGTHk1aDY+NHpPWnBLZ2Yy
R09BKTFhUQp6NkdvWU1ObXdNbUhHMTJsKyRRdHB0RnVqRjI3T2BMPkw+Z2paV3t7OGV2Q0tpMTFH
T28qITRlMUIoQ1hgaWZpOVoKelo5bk07MHpZdmM4SEctQkUwX2hPc0o0ZXsteVdKVkwoTGJ3NCs+
KyhQMTl3PkU8PTBNbU5NPjMoJlZZRT4oaGdzCnpycnlJKiF8NT5mP0c/NX5leFZ2MDdZXy1RTHg9
YiN7XmBSOUotLXI9Xn5FM2h0K19RUkp7Q3UjayMhUjc8N0BUTAp6aT1pPmRYWURZNk5SMlFZQlNo
cyVQdmxqbV9ucWR6Vk1gaURjej4ocldxMkluIWBhR3k3R2o8Y1VsbkU3QDhVKXkKeiojRW9xaG1C
OVFBWkI5biVsRUh6TFJ3Wk9kODElMHJLU3dgTX5wWGp1QjlZfUxgRjhBPDx6PiYmJXJlQy1kV19E
CnpPZ298TyVyQXdRZTJzSWp0YVgmcGdPbX01N1hoQH1KMD5UYzd0aVZGamx5andVc2V1eExaKE9h
WnFBRHRlST1Iegp6eGV+UlhAYi0lenM2LX4kRylwQVZWe08pJitTTy1+cjhPdnw4KjNHT3phRXBu
a1VLNUJPcHxwJFoxSGtkJExFTlEKekplcl45SndQMWpZaiVpMUJPaWYmRlpxPkc0dms5N05ZQ1Jt
Y3tKODdpT2o4LVdPaUY0cEcxNmpuVV9jT3FBJGdMCnpFSGxfQzJFVGJ4YGpgTFImbmhsS3E3Xl5o
JEFAfDJ7IWQmX0kxV35BeiUpJUZlayh6bzZyfHBNNks9PXA5Vys2Sgp6KCY9aSRiUHtZJkxaNUdh
Zz1ZaiNLQU92Y2tDVD9rZiUrWnBVJGswRXQlLSMwKjdJPU9RPjZ6KXFDTUo2WmFwbSUKem9TJnVI
Kl9gam5fMVdXY2xDb2FPRiMhQUA+YF5AQEpZRCNNPDdxbnxRRD1xUzNhXnllbiNzJkFzSG13Sldq
allRCnpfdzc4emo9MW56N2d4ckVjQ3FSQWJVWlprLVQjLUhMYGNweXZLNWomPTVUc0Z5e2Ixcilx
M2FJPGc+UTU5N00wPwp6KVBWeGIrd2EhPWhfaH02e3RJSyp6NDkte2oqNCVqcUVCQTZ5UH0re2l8
KD1hUEp+eURRXmxJNnkpJW56TnF3T0YKeiFFc2poRXIwJkJxd15hckhmWnpfNC1wMml3fFJgfVNC
RzApTzJJKkBuUXQ7b05eZUg8UlEpcUNHaD9Rb0ozbEtxCnpGT1dBeWZUT2ZESlJ0djt6YyNLNDBK
YGdeZGNGcEpmeG5ra2J5UT5ETXFgSHtzXypIZWtjd2N4bjNLIT9PU0ItMAp6Iy1rKDluZzB7PTdi
Xj1CPyk7PldoXjJtc01CTUpEaCR+LTU2MihGJnB3Y3E8Kjd1SFNBfT0zOFJqQHdAMy1jWXwKemdn
RSpvKHRfKjZQKTsxdm1lPW03fE0tSnlFd3ltP0VzWFU/V3g0TjVvRnNuSzJzKnFMTUpKaHRhY1Bk
Rj19VGd8Cnp5azYoV2t6JGlMOzIzZjNWSEpBOTdnMEI0N3A5Rl5eYDxXamkjfk1SR1RAQXNoTCZ4
T0xXdmMpcmkjJFJnSENVUQp6S2p3OyVJUEMwMitFT0peMjlLOUQ2VkY7K2F2JmNeNHo5aFAjd19J
JiFSYiktRUlAXnpLWncmMnVqK1NLbGp+UiMKej93XjNoUFVXTXFJMkYyKzc7bkFCVUNWS3VxSHFa
UUdLc2NWYTJCdmJsWXZpOzdCamxXcWh0eXFENThqQSotQCMqCnpIZUl4KDx2fmxhN0s9RXpTLTtg
RD1NcD9xUGBFMUZKJlp6X0krVitxMW1pUUNGR0U4TkMjQFJsOGgxQEk5cFhkXgp6V1gxMit0P3Ro
MTU0eHxGVFJHKD9hJnl1flRyeEIjP0N6IX5BRW9qLUMpVEkoRENIKnY9MHJjX2d0ank+KWlKVWkK
eip3cmUlMjZqcWRQNnRZfCNaYUViZkUyclB4e3E8WUZfa3JaJkFvMTlMdmxyJEtVVCRZZllucFQ2
RkVCVkEmVkVTCnotJFppWXNGSnV0IWEoQGkmaioyNV8xclQ/d35DYm5xMUN1Mj1DaFEhZzd2UmNf
bEZyTWspbyRUUChOMFd5PVl0RAp6bkJiJmRCZV5pc2kwRVJJRmlJN2E+X2ZMQEpaJClkU0JBSkcj
dmw2TEVPUjd1KktUcExyTWFIRWJBTF4zTn49I2oKeismcjt4enN+b151a0ZaZmIkdCg3d3Z3NHRF
VUReMnU1cSlldXdHV2ZTZCRxKmpGZkErRDwkbiM2Wk8hcjkqSHBGCnp1dD0qdFFsJlJqKGxYeC1K
WUk4UHRmSGcxVUNNZWJBPUkzNkg5TjF6c3B0WikpJjgmdz47Rz51a2wtfSRBTjl5Vgp6WDxYSEJM
VFVfWGdAT25KeTlGeCghYUNtRnQ/akZ5Vnd0WUJhbF5GJncycD4oSjdpMHZHZXQ9VSNAQjxib3B2
amkKelo3c24zT3Qwblg1UnIjRXQ2MjtxeFEkTWFlYGA/ODA0TGR5enIta2lOa0lOPHtvaDA+N2RS
S2J3bChqRlVCNVd0ClJnU1ZzeEJ0JkZ8RCtUclp7fTtMd0xgd2h3CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2Nj
ZWEwNmNmMzc1MzIyZjZjODE2ZTA3OGVhZjMyOTg2OGJkYmJjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2ltZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2NyYW1lcjIucG5nCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2ltZy9mcmVpYnVyZzIuanBnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9nYXlub3Iz
LnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcva2VsZXNoZXYucG5nCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2ltZy9wdWxscmVxdWVzdC5wbmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3B5bGli
LnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHl0ZXN0MS5wbmcKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vaW1nL3B5dGVzdDFmYXZpLmljbworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvdGhldW5p
LnBuZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2luZGV4LnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZjNTlmMDhkMzQ5Y2NiZTJmNTRkY2Zi
ODBhMzM0ODVjZjZjNTUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9p
bmRleC5yc3QKQEAgLTAsMCArMSw5MCBAQAorOm9ycGhhbjoKKworLi4gX2ZlYXR1cmVzOgorCitw
eXRlc3Q6IGhlbHBzIHlvdSB3cml0ZSBiZXR0ZXIgcHJvZ3JhbXMKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisKK1RoZSBgYHB5dGVzdGBgIGZyYW1ld29yayBtYWtl
cyBpdCBlYXN5IHRvIHdyaXRlIHNtYWxsIHRlc3RzLCB5ZXQKK3NjYWxlcyB0byBzdXBwb3J0IGNv
bXBsZXggZnVuY3Rpb25hbCB0ZXN0aW5nIGZvciBhcHBsaWNhdGlvbnMgYW5kIGxpYnJhcmllcy4K
KworQW4gZXhhbXBsZSBvZiBhIHNpbXBsZSB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zYW1wbGUucHkKKyAgICBkZWYgaW5jKHgpOgorICAg
ICAgICByZXR1cm4geCArIDEKKworICAgIGRlZiB0ZXN0X2Fuc3dlcigpOgorICAgICAgICBhc3Nl
cnQgaW5jKDMpID09IDUKKworCitUbyBleGVjdXRlIGl0OjoKKworICAgICQgcHl0ZXN0CisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMSBpdGVtCisgICAgCisgICAgdGVz
dF9zYW1wbGUucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hbnN3ZXIgX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfYW5zd2VyKCk6CisgICAgPiAg
ICAgICBhc3NlcnQgaW5jKDMpID09IDUKKyAgICBFICAgICAgIGFzc2VydCA0ID09IDUKKyAgICBF
ICAgICAgICArICB3aGVyZSA0ID0gaW5jKDMpCisgICAgCisgICAgdGVzdF9zYW1wbGUucHk6NTog
QXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0R1ZSB0byBgYHB5dGVz
dGBgJ3MgZGV0YWlsZWQgYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24sIG9ubHkgcGxhaW4gYGBhc3Nl
cnRgYCBzdGF0ZW1lbnRzIGFyZSB1c2VkLgorU2VlIDpyZWY6YEdldHRpbmcgU3RhcnRlZCA8Z2V0
c3RhcnRlZD5gIGZvciBtb3JlIGV4YW1wbGVzLgorCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCist
IERldGFpbGVkIGluZm8gb24gZmFpbGluZyA6cmVmOmBhc3NlcnQgc3RhdGVtZW50cyA8YXNzZXJ0
PmAgKG5vIG5lZWQgdG8gcmVtZW1iZXIgYGBzZWxmLmFzc2VydCpgYCBuYW1lcyk7CisKKy0gOnJl
ZjpgQXV0by1kaXNjb3ZlcnkgPHRlc3QgZGlzY292ZXJ5PmAgb2YgdGVzdCBtb2R1bGVzIGFuZCBm
dW5jdGlvbnM7CisKKy0gOnJlZjpgTW9kdWxhciBmaXh0dXJlcyA8Zml4dHVyZT5gIGZvciBtYW5h
Z2luZyBzbWFsbCBvciBwYXJhbWV0cml6ZWQgbG9uZy1saXZlZCB0ZXN0IHJlc291cmNlczsKKwor
LSBDYW4gcnVuIDpyZWY6YHVuaXR0ZXN0IDx1bml0dGVzdD5gIChpbmNsdWRpbmcgdHJpYWwpIGFu
ZCA6cmVmOmBub3NlIDxub3NlaW50ZWdyYXRpb24+YCB0ZXN0IHN1aXRlcyBvdXQgb2YgdGhlIGJv
eDsKKworLSBQeXRob24gMi43LCBQeXRob24gMy40KywgUHlQeSAyLjMsIEp5dGhvbiAyLjUgKHVu
dGVzdGVkKTsKKworLSBSaWNoIHBsdWdpbiBhcmNoaXRlY3R1cmUsIHdpdGggb3ZlciAzMTUrIGBl
eHRlcm5hbCBwbHVnaW5zIDxodHRwOi8vcGx1Z2luY29tcGF0Lmhlcm9rdWFwcC5jb20+YF8gYW5k
IHRocml2aW5nIGNvbW11bml0eTsKKworCitEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tCisK
K1BsZWFzZSBzZWUgOnJlZjpgQ29udGVudHMgPHRvYz5gIGZvciBmdWxsIGRvY3VtZW50YXRpb24s
IGluY2x1ZGluZyBpbnN0YWxsYXRpb24sIHR1dG9yaWFscyBhbmQgUERGIGRvY3VtZW50cy4KKwor
CitCdWdzL1JlcXVlc3RzCistLS0tLS0tLS0tLS0tCisKK1BsZWFzZSB1c2UgdGhlIGBHaXRIdWIg
aXNzdWUgdHJhY2tlciA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cz5gXyB0byBzdWJtaXQgYnVncyBvciByZXF1ZXN0IGZlYXR1cmVzLgorCisKK0NoYW5nZWxvZwor
LS0tLS0tLS0tCisKK0NvbnN1bHQgdGhlIDpyZWY6YENoYW5nZWxvZyA8Y2hhbmdlbG9nPmAgcGFn
ZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvZiBlYWNoIHZlcnNpb24uCisKKworTGljZW5z
ZQorLS0tLS0tLQorCitDb3B5cmlnaHQgSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzLCAyMDA0LTIw
MTcuCisKK0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYE1JVGBfIGxpY2Vuc2Us
IHB5dGVzdCBpcyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZS4KKworLi4gX2BNSVRgOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxvYi9tYXN0ZXIvTElDRU5TRQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vuc2UucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2xpY2Vuc2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YzBkY2UxYmVhOGUxNzA1NzUwM2NiYTIw
NDE5OTkwNWI5NDkxZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlj
ZW5zZS5yc3QKQEAgLTAsMCArMSwzMiBAQAorLi4gX2xpY2Vuc2U6CisKK0xpY2Vuc2UKKy0tLS0t
LS0KKworRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgTUlUYF8gbGljZW5zZSwg
cHl0ZXN0IGlzIGZyZWUgYW5kIG9wZW4gc291cmNlIHNvZnR3YXJlLgorCis6OgorCisgICAgVGhl
IE1JVCBMaWNlbnNlIChNSVQpCisKKyAgICBDb3B5cmlnaHQgKGMpIDIwMDQtMjAxNyBIb2xnZXIg
S3Jla2VsIGFuZCBvdGhlcnMKKworICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKKyAgICB0aGlz
IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbgorICAgIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp
bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KKyAgICB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsIGNvcGllcworICAgIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbworICAgIHNvLCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAor
ICAgIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKKyAg
ICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwgRVhQUkVTUyBPUgorICAgIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICAgIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorICAgIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB
TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAgICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g
QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICAg
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIgREVBTElOR1MgSU4gVEhFCisgICAgU09GVFdBUkUuCisKKy4uIF9gTUlUYDogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2Jsb2IvbWFzdGVyL0xJQ0VOU0UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saW5rcy5pbmMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
bGlua3MuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2OTM5MGJhYTg0YmRiYzQxZjZiOWI3OWFiNjkyYzdkMjlm
ZGYzNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlua3MuaW5jCkBA
IC0wLDAgKzEsMjEgQEAKKworLi4gX2Bza2lwcGluZyBwbHVnaW5gOiBwbHVnaW4vc2tpcHBpbmcu
aHRtbAorLi4gX2BmdW5jYXJncyBtZWNoYW5pc21gOiBmdW5jYXJncy5odG1sCisuLiBfYGRvY3Rl
c3QucHlgOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvZG9jdGVzdC5odG1sCisuLiBf
YHhVbml0IHN0eWxlIHNldHVwYDogeHVuaXRfc2V0dXAuaHRtbAorLi4gX2BweXRlc3Rfbm9zZWA6
IHBsdWdpbi9ub3NlLmh0bWwKKy4uIF9gcmVTdHJ1Y3R1cmVkIFRleHRgOiBodHRwOi8vZG9jdXRp
bHMuc291cmNlZm9yZ2UubmV0CisuLiBfYFB5dGhvbiBkZWJ1Z2dlcmA6IGh0dHA6Ly9kb2NzLnB5
dGhvbi5vcmcvbGliL21vZHVsZS1wZGIuaHRtbAorLi4gX25vc2U6IGh0dHBzOi8vbm9zZS5yZWFk
dGhlZG9jcy5pby9lbi9sYXRlc3QvCisuLiBfcHl0ZXN0OiBodHRwOi8vcHlwaS5weXRob24ub3Jn
L3B5cGkvcHl0ZXN0CisuLiBfbWVyY3VyaWFsOiBodHRwOi8vbWVyY3VyaWFsLnNlbGVuaWMuY29t
L3dpa2kvCisuLiBfYHNldHVwdG9vbHNgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2V0
dXB0b29scworLi4gX2BlYXN5X2luc3RhbGxgOgorLi4gX2BkaXN0cmlidXRlIGRvY3NgOgorLi4g
X2BkaXN0cmlidXRlYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Rpc3RyaWJ1dGUKKy4u
IF9gcGlwYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BpcAorLi4gX2B2aXJ0dWFsZW52
YDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3ZpcnR1YWxlbnYKKy4uIF9odWRzb246IGh0
dHA6Ly9odWRzb24tY2kub3JnLworLi4gX2plbmtpbnM6IGh0dHA6Ly9qZW5raW5zLWNpLm9yZy8K
Ky4uIF90b3g6IGh0dHA6Ly90ZXN0cnVuLm9yZy90b3gKKy4uIF9weWxpYjogaHR0cHM6Ly9weS5y
ZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
bG9nZ2luZy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbG9nZ2luZy5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTNiZjU2MDM4ODcyYzJlMTQ5NzRkZGI0MzFlNTMyNmUwY2U5YThiNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9sb2dnaW5nLnJzdApAQCAtMCwwICsxLDE5MiBAQAorLi4g
X2xvZ2dpbmc6CisKK0xvZ2dpbmcKKy0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkIDMuMy4wCisK
Ky4uIG5vdGU6OgorCisgICBUaGlzIGZlYXR1cmUgaXMgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZv
ciB0aGUgYHB5dGVzdC1jYXRjaGxvZworICAgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weXRl
c3QtY2F0Y2hsb2cvPmBfIHBsdWdpbiBhbmQgdGhleSB3aWxsIGNvbmZsaWN0CisgICB3aXRoIGVh
Y2ggb3RoZXIuIFRoZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IEFQSSB3aXRoIGBgcHl0ZXN0LWNh
cHR1cmVsb2dgYAorICAgaGFzIGJlZW4gZHJvcHBlZCB3aGVuIHRoaXMgZmVhdHVyZSB3YXMgaW50
cm9kdWNlZCwgc28gaWYgZm9yIHRoYXQgcmVhc29uIHlvdQorICAgc3RpbGwgbmVlZCBgYHB5dGVz
dC1jYXRjaGxvZ2BgIHlvdSBjYW4gZGlzYWJsZSB0aGUgaW50ZXJuYWwgZmVhdHVyZSBieQorICAg
YWRkaW5nIHRvIHlvdXIgYGBweXRlc3QuaW5pYGA6CisKKyAgIC4uIGNvZGUtYmxvY2s6OiBpbmkK
KworICAgICAgIFtweXRlc3RdCisgICAgICAgICAgIGFkZG9wdHM9LXAgbm86bG9nZ2luZworCitM
b2cgbWVzc2FnZXMgYXJlIGNhcHR1cmVkIGJ5IGRlZmF1bHQgYW5kIGZvciBlYWNoIGZhaWxlZCB0
ZXN0IHdpbGwgYmUgc2hvd24gaW4KK3RoZSBzYW1lIG1hbm5lciBhcyBjYXB0dXJlZCBzdGRvdXQg
YW5kIHN0ZGVyci4KKworUnVubmluZyB3aXRob3V0IG9wdGlvbnM6OgorCisgICAgcHl0ZXN0CisK
K1Nob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNvOjoKKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIENhcHR1cmVkIHN0ZGxvZyBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0ZXN0
X3JlcG9ydGluZy5weSAgICAyNiBJTkZPICAgICB0ZXh0IGdvaW5nIHRvIGxvZ2dlcgorICAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91dCBjYWxsIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICB0ZXh0IGdvaW5nIHRvIHN0ZG91dAorICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIENhcHR1cmVkIHN0ZGVyciBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0
ZXh0IGdvaW5nIHRvIHN0ZGVycgorICAgID09PT09PT09PT09PT09PT09PT09IDIgZmFpbGVkIGlu
IDAuMDIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT0KKworQnkgZGVmYXVsdCBlYWNoIGNh
cHR1cmVkIGxvZyBtZXNzYWdlIHNob3dzIHRoZSBtb2R1bGUsIGxpbmUgbnVtYmVyLCBsb2cgbGV2
ZWwKK2FuZCBtZXNzYWdlLiAgU2hvd2luZyB0aGUgZXhhY3QgbW9kdWxlIGFuZCBsaW5lIG51bWJl
ciBpcyB1c2VmdWwgZm9yIHRlc3RpbmcgYW5kCitkZWJ1Z2dpbmcuICBJZiBkZXNpcmVkIHRoZSBs
b2cgZm9ybWF0IGFuZCBkYXRlIGZvcm1hdCBjYW4gYmUgc3BlY2lmaWVkIHRvCithbnl0aGluZyB0
aGF0IHRoZSBsb2dnaW5nIG1vZHVsZSBzdXBwb3J0cy4KKworUnVubmluZyBweXRlc3Qgc3BlY2lm
eWluZyBmb3JtYXR0aW5nIG9wdGlvbnM6OgorCisgICAgcHl0ZXN0IC0tbG9nLWZvcm1hdD0iJShh
c2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG1lc3NhZ2UpcyIgXAorICAgICAgICAgICAgLS1sb2ct
ZGF0ZS1mb3JtYXQ9IiVZLSVtLSVkICVIOiVNOiVTIgorCitTaG93cyBmYWlsZWQgdGVzdHMgbGlr
ZSBzbzo6CisKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRsb2cgY2Fs
bCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgMjAxMC0wNC0xMCAxNDo0ODo0NCBJTkZPIHRl
eHQgZ29pbmcgdG8gbG9nZ2VyCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQg
c3Rkb3V0IGNhbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRleHQgZ29pbmcgdG8gc3Rk
b3V0CisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3RkZXJyIGNhbGwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRleHQgZ29pbmcgdG8gc3RkZXJyCisgICAgPT09PT09
PT09PT09PT09PT09PT0gMiBmYWlsZWQgaW4gMC4wMiBzZWNvbmRzID09PT09PT09PT09PT09PT09
PT09PQorCitUaGVzZSBvcHRpb25zIGNhbiBhbHNvIGJlIGN1c3RvbWl6ZWQgdGhyb3VnaCBhIGNv
bmZpZ3VyYXRpb24gZmlsZToKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgW3B5dGVzdF0K
KyAgICBsb2dfZm9ybWF0ID0gJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG1lc3NhZ2Upcwor
ICAgIGxvZ19kYXRlX2Zvcm1hdCA9ICVZLSVtLSVkICVIOiVNOiVTCisKK0Z1cnRoZXIgaXQgaXMg
cG9zc2libGUgdG8gZGlzYWJsZSByZXBvcnRpbmcgbG9ncyBvbiBmYWlsZWQgdGVzdHMgY29tcGxl
dGVseQord2l0aDo6CisKKyAgICBweXRlc3QgLS1uby1wcmludC1sb2dzCisKK09yIGluIHlvdSBg
YHB5dGVzdC5pbmlgYDoKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgIFtweXRlc3RdCisgIGxv
Z19wcmludCA9IEZhbHNlCisKKworU2hvd3MgZmFpbGVkIHRlc3RzIGluIHRoZSBub3JtYWwgbWFu
bmVyIGFzIG5vIGxvZ3Mgd2VyZSBjYXB0dXJlZDo6CisKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGV4
dCBnb2luZyB0byBzdGRvdXQKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBz
dGRlcnIgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGV4dCBnb2luZyB0byBzdGRl
cnIKKyAgICA9PT09PT09PT09PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjAyIHNlY29uZHMgPT09
PT09PT09PT09PT09PT09PT09CisKK0luc2lkZSB0ZXN0cyBpdCBpcyBwb3NzaWJsZSB0byBjaGFu
Z2UgdGhlIGxvZyBsZXZlbCBmb3IgdGhlIGNhcHR1cmVkIGxvZworbWVzc2FnZXMuICBUaGlzIGlz
IHN1cHBvcnRlZCBieSB0aGUgYGBjYXBsb2dgYCBmaXh0dXJlOjoKKworICAgIGRlZiB0ZXN0X2Zv
byhjYXBsb2cpOgorICAgICAgICBjYXBsb2cuc2V0X2xldmVsKGxvZ2dpbmcuSU5GTykKKyAgICAg
ICAgcGFzcworCitCeSBkZWZhdWx0IHRoZSBsZXZlbCBpcyBzZXQgb24gdGhlIGhhbmRsZXIgdXNl
ZCB0byBjYXRjaCB0aGUgbG9nIG1lc3NhZ2VzLAoraG93ZXZlciBhcyBhIGNvbnZlbmllbmNlIGl0
IGlzIGFsc28gcG9zc2libGUgdG8gc2V0IHRoZSBsb2cgbGV2ZWwgb2YgYW55Citsb2dnZXI6Ogor
CisgICAgZGVmIHRlc3RfZm9vKGNhcGxvZyk6CisgICAgICAgIGNhcGxvZy5zZXRfbGV2ZWwobG9n
Z2luZy5DUklUSUNBTCwgbG9nZ2VyPSdyb290LmJheicpCisgICAgICAgIHBhc3MKKworSXQgaXMg
YWxzbyBwb3NzaWJsZSB0byB1c2UgYSBjb250ZXh0IG1hbmFnZXIgdG8gdGVtcG9yYXJpbHkgY2hh
bmdlIHRoZSBsb2cKK2xldmVsOjoKKworICAgIGRlZiB0ZXN0X2JhcihjYXBsb2cpOgorICAgICAg
ICB3aXRoIGNhcGxvZy5hdF9sZXZlbChsb2dnaW5nLklORk8pOgorICAgICAgICAgICAgcGFzcwor
CitBZ2FpbiwgYnkgZGVmYXVsdCB0aGUgbGV2ZWwgb2YgdGhlIGhhbmRsZXIgaXMgYWZmZWN0ZWQg
YnV0IHRoZSBsZXZlbCBvZiBhbnkKK2xvZ2dlciBjYW4gYmUgY2hhbmdlZCBpbnN0ZWFkIHdpdGg6
OgorCisgICAgZGVmIHRlc3RfYmFyKGNhcGxvZyk6CisgICAgICAgIHdpdGggY2FwbG9nLmF0X2xl
dmVsKGxvZ2dpbmcuQ1JJVElDQUwsIGxvZ2dlcj0ncm9vdC5iYXonKToKKyAgICAgICAgICAgIHBh
c3MKKworTGFzdGx5IGFsbCB0aGUgbG9ncyBzZW50IHRvIHRoZSBsb2dnZXIgZHVyaW5nIHRoZSB0
ZXN0IHJ1biBhcmUgbWFkZSBhdmFpbGFibGUgb24KK3RoZSBmaXh0dXJlIGluIHRoZSBmb3JtIG9m
IGJvdGggdGhlIExvZ1JlY29yZCBpbnN0YW5jZXMgYW5kIHRoZSBmaW5hbCBsb2cgdGV4dC4KK1Ro
aXMgaXMgdXNlZnVsIGZvciB3aGVuIHlvdSB3YW50IHRvIGFzc2VydCBvbiB0aGUgY29udGVudHMg
b2YgYSBtZXNzYWdlOjoKKworICAgIGRlZiB0ZXN0X2JheihjYXBsb2cpOgorICAgICAgICBmdW5j
X3VuZGVyX3Rlc3QoKQorICAgICAgICBmb3IgcmVjb3JkIGluIGNhcGxvZy5yZWNvcmRzOgorICAg
ICAgICAgICAgYXNzZXJ0IHJlY29yZC5sZXZlbG5hbWUgIT0gJ0NSSVRJQ0FMJworICAgICAgICBh
c3NlcnQgJ3dhbGx5JyBub3QgaW4gY2FwbG9nLnRleHQKKworRm9yIGFsbCB0aGUgYXZhaWxhYmxl
IGF0dHJpYnV0ZXMgb2YgdGhlIGxvZyByZWNvcmRzIHNlZSB0aGUKK2BgbG9nZ2luZy5Mb2dSZWNv
cmRgYCBjbGFzcy4KKworWW91IGNhbiBhbHNvIHJlc29ydCB0byBgYHJlY29yZF90dXBsZXNgYCBp
ZiBhbGwgeW91IHdhbnQgdG8gZG8gaXMgdG8gZW5zdXJlLAordGhhdCBjZXJ0YWluIG1lc3NhZ2Vz
IGhhdmUgYmVlbiBsb2dnZWQgdW5kZXIgYSBnaXZlbiBsb2dnZXIgbmFtZSB3aXRoIGEgZ2l2ZW4K
K3NldmVyaXR5IGFuZCBtZXNzYWdlOjoKKworICAgIGRlZiB0ZXN0X2ZvbyhjYXBsb2cpOgorICAg
ICAgICBsb2dnaW5nLmdldExvZ2dlcigpLmluZm8oJ2JvbyAlcycsICdhcmcnKQorCisgICAgICAg
IGFzc2VydCBjYXBsb2cucmVjb3JkX3R1cGxlcyA9PSBbCisgICAgICAgICAgICAoJ3Jvb3QnLCBs
b2dnaW5nLklORk8sICdib28gYXJnJyksCisgICAgICAgIF0KKworWW91IGNhbiBjYWxsIGBgY2Fw
bG9nLmNsZWFyKClgYCB0byByZXNldCB0aGUgY2FwdHVyZWQgbG9nIHJlY29yZHMgaW4gYSB0ZXN0
OjoKKworICAgIGRlZiB0ZXN0X3NvbWV0aGluZ193aXRoX2NsZWFyaW5nX3JlY29yZHMoY2FwbG9n
KToKKyAgICAgICAgc29tZV9tZXRob2RfdGhhdF9jcmVhdGVzX2xvZ19yZWNvcmRzKCkKKyAgICAg
ICAgY2FwbG9nLmNsZWFyKCkKKyAgICAgICAgeW91cl90ZXN0X21ldGhvZCgpCisgICAgICAgIGFz
c2VydCBbJ0ZvbyddID09IFtyZWMubWVzc2FnZSBmb3IgcmVjIGluIGNhcGxvZy5yZWNvcmRzXQor
CitMaXZlIExvZ3MKK15eXl5eXl5eXgorCitCeSBkZWZhdWx0LCBweXRlc3Qgd2lsbCBvdXRwdXQg
YW55IGxvZ2dpbmcgcmVjb3JkcyB3aXRoIGEgbGV2ZWwgaGlnaGVyIG9yCitlcXVhbCB0byBXQVJO
SU5HLiBJbiBvcmRlciB0byBhY3R1YWxseSBzZWUgdGhlc2UgbG9ncyBpbiB0aGUgY29uc29sZSB5
b3UgaGF2ZSB0bworZGlzYWJsZSBweXRlc3Qgb3V0cHV0IGNhcHR1cmUgYnkgcGFzc2luZyBgYC1z
YGAuCisKK1lvdSBjYW4gc3BlY2lmeSB0aGUgbG9nZ2luZyBsZXZlbCBmb3Igd2hpY2ggbG9nIHJl
Y29yZHMgd2l0aCBlcXVhbCBvciBoaWdoZXIKK2xldmVsIGFyZSBwcmludGVkIHRvIHRoZSBjb25z
b2xlIGJ5IHBhc3NpbmcgYGAtLWxvZy1jbGktbGV2ZWxgYC4gVGhpcyBzZXR0aW5nCithY2NlcHRz
IHRoZSBsb2dnaW5nIGxldmVsIG5hbWVzIGFzIHNlZW4gaW4gcHl0aG9uJ3MgZG9jdW1lbnRhdGlv
biBvciBhbiBpbnRlZ2VyCithcyB0aGUgbG9nZ2luZyBsZXZlbCBudW0uCisKK0FkZGl0aW9uYWxs
eSwgeW91IGNhbiBhbHNvIHNwZWNpZnkgYGAtLWxvZy1jbGktZm9ybWF0YGAgYW5kCitgYC0tbG9n
LWNsaS1kYXRlLWZvcm1hdGBgIHdoaWNoIG1pcnJvciBhbmQgZGVmYXVsdCB0byBgYC0tbG9nLWZv
cm1hdGBgIGFuZAorYGAtLWxvZy1kYXRlLWZvcm1hdGBgIGlmIG5vdCBwcm92aWRlZCwgYnV0IGFy
ZSBhcHBsaWVkIG9ubHkgdG8gdGhlIGNvbnNvbGUKK2xvZ2dpbmcgaGFuZGxlci4KKworQWxsIG9m
IHRoZSBDTEkgbG9nIG9wdGlvbnMgY2FuIGFsc28gYmUgc2V0IGluIHRoZSBjb25maWd1cmF0aW9u
IElOSSBmaWxlLiBUaGUKK29wdGlvbiBuYW1lcyBhcmU6CisKKyogYGBsb2dfY2xpX2xldmVsYGAK
KyogYGBsb2dfY2xpX2Zvcm1hdGBgCisqIGBgbG9nX2NsaV9kYXRlX2Zvcm1hdGBgCisKK0lmIHlv
dSBuZWVkIHRvIHJlY29yZCB0aGUgd2hvbGUgdGVzdCBzdWl0ZSBsb2dnaW5nIGNhbGxzIHRvIGEg
ZmlsZSwgeW91IGNhbiBwYXNzCitgYC0tbG9nLWZpbGU9L3BhdGgvdG8vbG9nL2ZpbGVgYC4gVGhp
cyBsb2cgZmlsZSBpcyBvcGVuZWQgaW4gd3JpdGUgbW9kZSB3aGljaAorbWVhbnMgdGhhdCBpdCB3
aWxsIGJlIG92ZXJ3cml0dGVuIGF0IGVhY2ggcnVuIHRlc3RzIHNlc3Npb24uCisKK1lvdSBjYW4g
YWxzbyBzcGVjaWZ5IHRoZSBsb2dnaW5nIGxldmVsIGZvciB0aGUgbG9nIGZpbGUgYnkgcGFzc2lu
ZworYGAtLWxvZy1maWxlLWxldmVsYGAuIFRoaXMgc2V0dGluZyBhY2NlcHRzIHRoZSBsb2dnaW5n
IGxldmVsIG5hbWVzIGFzIHNlZW4gaW4KK3B5dGhvbidzIGRvY3VtZW50YXRpb24oaWUsIHVwcGVy
Y2FzZWQgbGV2ZWwgbmFtZXMpIG9yIGFuIGludGVnZXIgYXMgdGhlIGxvZ2dpbmcKK2xldmVsIG51
bS4KKworQWRkaXRpb25hbGx5LCB5b3UgY2FuIGFsc28gc3BlY2lmeSBgYC0tbG9nLWZpbGUtZm9y
bWF0YGAgYW5kCitgYC0tbG9nLWZpbGUtZGF0ZS1mb3JtYXRgYCB3aGljaCBhcmUgZXF1YWwgdG8g
YGAtLWxvZy1mb3JtYXRgYCBhbmQKK2BgLS1sb2ctZGF0ZS1mb3JtYXRgYCBidXQgYXJlIGFwcGxp
ZWQgdG8gdGhlIGxvZyBmaWxlIGxvZ2dpbmcgaGFuZGxlci4KKworQWxsIG9mIHRoZSBsb2cgZmls
ZSBvcHRpb25zIGNhbiBhbHNvIGJlIHNldCBpbiB0aGUgY29uZmlndXJhdGlvbiBJTkkgZmlsZS4g
VGhlCitvcHRpb24gbmFtZXMgYXJlOgorCisqIGBgbG9nX2ZpbGVgYAorKiBgYGxvZ19maWxlX2xl
dmVsYGAKKyogYGBsb2dfZmlsZV9mb3JtYXRgYAorKiBgYGxvZ19maWxlX2RhdGVfZm9ybWF0YGAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tYXJrLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9tYXJrLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjBlMDcyYTA5YmFlMjk3ODIzYTFiMTE4MDY4MWJh
YTkzN2I0OGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21hcmsucnN0
CkBAIC0wLDAgKzEsNDEgQEAKKworLi4gX21hcms6CisKK01hcmtpbmcgdGVzdCBmdW5jdGlvbnMg
d2l0aCBhdHRyaWJ1dGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC5t
YXJrCisKK0J5IHVzaW5nIHRoZSBgYHB5dGVzdC5tYXJrYGAgaGVscGVyIHlvdSBjYW4gZWFzaWx5
IHNldAorbWV0YWRhdGEgb24geW91ciB0ZXN0IGZ1bmN0aW9ucy4gVGhlcmUgYXJlCitzb21lIGJ1
aWx0aW4gbWFya2VycywgZm9yIGV4YW1wbGU6CisKKyogOnJlZjpgc2tpcCA8c2tpcD5gIC0gYWx3
YXlzIHNraXAgYSB0ZXN0IGZ1bmN0aW9uCisqIDpyZWY6YHNraXBpZiA8c2tpcGlmPmAgLSBza2lw
IGEgdGVzdCBmdW5jdGlvbiBpZiBhIGNlcnRhaW4gY29uZGl0aW9uIGlzIG1ldAorKiA6cmVmOmB4
ZmFpbCA8eGZhaWw+YCAtIHByb2R1Y2UgYW4gImV4cGVjdGVkIGZhaWx1cmUiIG91dGNvbWUgaWYg
YSBjZXJ0YWluCisgIGNvbmRpdGlvbiBpcyBtZXQKKyogOnJlZjpgcGFyYW1ldHJpemUgPHBhcmFt
ZXRyaXplbWFyaz5gIHRvIHBlcmZvcm0gbXVsdGlwbGUgY2FsbHMKKyAgdG8gdGhlIHNhbWUgdGVz
dCBmdW5jdGlvbi4KKworSXQncyBlYXN5IHRvIGNyZWF0ZSBjdXN0b20gbWFya2VycyBvciB0byBh
cHBseSBtYXJrZXJzCit0byB3aG9sZSB0ZXN0IGNsYXNzZXMgb3IgbW9kdWxlcy4gU2VlIDpyZWY6
YG1hcmsgZXhhbXBsZXNgIGZvciBleGFtcGxlcword2hpY2ggYWxzbyBzZXJ2ZSBhcyBkb2N1bWVu
dGF0aW9uLgorCisuLiBub3RlOjoKKworICAgIE1hcmtzIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8g
dGVzdHMsIGhhdmluZyBubyBlZmZlY3Qgb24KKyAgICA6cmVmOmBmaXh0dXJlcyA8Zml4dHVyZXM+
YC4KKworCitBUEkgcmVmZXJlbmNlIGZvciBtYXJrIHJlbGF0ZWQgb2JqZWN0cworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9jbGFzczo6
IE1hcmtHZW5lcmF0b3IKKyAgICA6bWVtYmVyczoKKworLi4gYXV0b2NsYXNzOjogTWFya0RlY29y
YXRvcgorICAgIDptZW1iZXJzOgorCisuLiBhdXRvY2xhc3M6OiBNYXJrSW5mbworICAgIDptZW1i
ZXJzOgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbW9ua2V5cGF0Y2gucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzA3YjJmNDRm
Y2JiMjVmY2RlMmE2MDZmYTIxNWRjMDEyZDgyOTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJzdApAQCAtMCwwICsxLDc1IEBACisKK01vbmtleXBh
dGNoaW5nL21vY2tpbmcgbW9kdWxlcyBhbmQgZW52aXJvbm1lbnRzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGN1
cnJlbnRtb2R1bGU6OiBfcHl0ZXN0Lm1vbmtleXBhdGNoCisKK1NvbWV0aW1lcyB0ZXN0cyBuZWVk
IHRvIGludm9rZSBmdW5jdGlvbmFsaXR5IHdoaWNoIGRlcGVuZHMKK29uIGdsb2JhbCBzZXR0aW5n
cyBvciB3aGljaCBpbnZva2VzIGNvZGUgd2hpY2ggY2Fubm90IGJlIGVhc2lseQordGVzdGVkIHN1
Y2ggYXMgbmV0d29yayBhY2Nlc3MuICBUaGUgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUKK2hlbHBz
IHlvdSB0byBzYWZlbHkgc2V0L2RlbGV0ZSBhbiBhdHRyaWJ1dGUsIGRpY3Rpb25hcnkgaXRlbSBv
cgorZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdG8gbW9kaWZ5IGBgc3lzLnBhdGhgYCBmb3IgaW1w
b3J0aW5nLgorU2VlIHRoZSBgbW9ua2V5cGF0Y2ggYmxvZyBwb3N0YF8gZm9yIHNvbWUgaW50cm9k
dWN0aW9uIG1hdGVyaWFsCithbmQgYSBkaXNjdXNzaW9uIG9mIGl0cyBtb3RpdmF0aW9uLgorCisu
LiBfYG1vbmtleXBhdGNoIGJsb2cgcG9zdGA6IGh0dHA6Ly90ZXRhbWFwLndvcmRwcmVzcy5jb20v
MjAwOS8wMy8wMy9tb25rZXlwYXRjaGluZy1pbi11bml0LXRlc3RzLWRvbmUtcmlnaHQvCisKKwor
U2ltcGxlIGV4YW1wbGU6IG1vbmtleXBhdGNoaW5nIGZ1bmN0aW9ucworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSB3YW50IHRvIHBy
ZXRlbmQgdGhhdCBgYG9zLmV4cGFuZHVzZXJgYCByZXR1cm5zIGEgY2VydGFpbgorZGlyZWN0b3J5
LCB5b3UgY2FuIHVzZSB0aGUgOnB5Om1ldGg6YG1vbmtleXBhdGNoLnNldGF0dHJgIG1ldGhvZCB0
bworcGF0Y2ggdGhpcyBmdW5jdGlvbiBiZWZvcmUgY2FsbGluZyBpbnRvIGEgZnVuY3Rpb24gd2hp
Y2ggdXNlcyBpdDo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9tb2R1bGUucHkKKyAgICBpbXBv
cnQgb3MucGF0aAorICAgIGRlZiBnZXRzc2goKTogIyBwc2V1ZG8gYXBwbGljYXRpb24gY29kZQor
ICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdXNlcigifmFkbWluIiks
ICcuc3NoJykKKworICAgIGRlZiB0ZXN0X215dGVzdChtb25rZXlwYXRjaCk6CisgICAgICAgIGRl
ZiBtb2NrcmV0dXJuKHBhdGgpOgorICAgICAgICAgICAgcmV0dXJuICcvYWJjJworICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKG9zLnBhdGgsICdleHBhbmR1c2VyJywgbW9ja3JldHVybikKKyAg
ICAgICAgeCA9IGdldHNzaCgpCisgICAgICAgIGFzc2VydCB4ID09ICcvYWJjLy5zc2gnCisKK0hl
cmUgb3VyIHRlc3QgZnVuY3Rpb24gbW9ua2V5cGF0Y2hlcyBgYG9zLnBhdGguZXhwYW5kdXNlcmBg
IGFuZAordGhlbiBjYWxscyBpbnRvIGEgZnVuY3Rpb24gdGhhdCBjYWxscyBpdC4gIEFmdGVyIHRo
ZSB0ZXN0IGZ1bmN0aW9uIAorZmluaXNoZXMgdGhlIGBgb3MucGF0aC5leHBhbmR1c2VyYGAgbW9k
aWZpY2F0aW9uIHdpbGwgYmUgdW5kb25lLgorCitleGFtcGxlOiBwcmV2ZW50aW5nICJyZXF1ZXN0
cyIgZnJvbSByZW1vdGUgb3BlcmF0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSB3YW50IHRvIHByZXZlbnQgdGhlICJy
ZXF1ZXN0cyIgbGlicmFyeSBmcm9tIHBlcmZvcm1pbmcgaHR0cAorcmVxdWVzdHMgaW4gYWxsIHlv
dXIgdGVzdHMsIHlvdSBjYW4gZG86OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5Cisg
ICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAg
ZGVmIG5vX3JlcXVlc3RzKG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0
cigicmVxdWVzdHMuc2Vzc2lvbnMuU2Vzc2lvbi5yZXF1ZXN0IikKKworVGhpcyBhdXRvdXNlIGZp
eHR1cmUgd2lsbCBiZSBleGVjdXRlZCBmb3IgZWFjaCB0ZXN0IGZ1bmN0aW9uIGFuZCBpdAord2ls
bCBkZWxldGUgdGhlIG1ldGhvZCBgYHJlcXVlc3Quc2Vzc2lvbi5TZXNzaW9uLnJlcXVlc3RgYCAK
K3NvIHRoYXQgYW55IGF0dGVtcHRzIHdpdGhpbiB0ZXN0cyB0byBjcmVhdGUgaHR0cCByZXF1ZXN0
cyB3aWxsIGZhaWwuCisKKworLi4gbm90ZTo6CisgICAgCisgICAgQmUgYWR2aXNlZCB0aGF0IGl0
IGlzIG5vdCByZWNvbW1lbmRlZCB0byBwYXRjaCBidWlsdGluIGZ1bmN0aW9ucyBzdWNoIGFzIGBg
b3BlbmBgLAorICAgIGBgY29tcGlsZWBgLCBldGMuLCBiZWNhdXNlIGl0IG1pZ2h0IGJyZWFrIHB5
dGVzdCdzIGludGVybmFscy4gSWYgdGhhdCdzCisgICAgdW5hdm9pZGFibGUsIHBhc3NpbmcgYGAt
LXRiPW5hdGl2ZWBgLCBgYC0tYXNzZXJ0PXBsYWluYGAgYW5kIGBgLS1jYXB0dXJlPW5vYGAgbWln
aHQgCisgICAgaGVscCBhbHRob3VnaCB0aGVyZSdzIG5vIGd1YXJhbnRlZS4KKyAgICAKKworTWV0
aG9kIHJlZmVyZW5jZSBvZiB0aGUgbW9ua2V5cGF0Y2ggZml4dHVyZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvY2xhc3M6OiBNb25rZXlQYXRj
aAorICAgIDptZW1iZXJzOgorCitgYG1vbmtleXBhdGNoLnNldGF0dHIvZGVsYXR0ci9kZWxpdGVt
L2RlbGVudigpYGAgYWxsCitieSBkZWZhdWx0IHJhaXNlIGFuIEV4Y2VwdGlvbiBpZiB0aGUgdGFy
Z2V0IGRvZXMgbm90IGV4aXN0LgorUGFzcyBgYHJhaXNpbmc9RmFsc2VgYCBpZiB5b3Ugd2FudCB0
byBza2lwIHRoaXMgY2hlY2suCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9uYW1p
bmcyMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbmFtaW5nMjAucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
ODFkZjI2OThkMmJkNTkyNzRiMzYzNTUwOThhNjQ4NjVlNmIzZWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vbmFtaW5nMjAucnN0CkBAIC0wLDAgKzEsMjAgQEAKKworLi4g
X25hbWluZzIwOgorCitOZXcgcHl0ZXN0IG5hbWVzIGluIDIuMCAoZmxhdCBpcyBiZXR0ZXIgdGhh
biBuZXN0ZWQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK0lmIHlvdSB1c2VkIG9sZGVyIHZlcnNpb24gb2YgdGhlIGBgcHlgYCBkaXN0cmli
dXRpb24gKHdoaWNoCitpbmNsdWRlZCB0aGUgcHkudGVzdCBjb21tYW5kIGxpbmUgdG9vbCBhbmQg
UHl0aG9uIG5hbWUgc3BhY2UpCit5b3UgYWNjZXNzZWQgaGVscGVycyBhbmQgcG9zc2libHkgY29s
bGVjdGlvbiBjbGFzc2VzIHRocm91Z2gKK3RoZSBgYHB5LnRlc3RgYCBQeXRob24gbmFtZXNwYWNl
cy4gIFRoZSBuZXcgYGBweXRlc3RgYAorUHl0aG9uIG1vZHVsZSBmbGF0eSBwcm92aWRlcyB0aGUg
c2FtZSBvYmplY3RzLCBmb2xsb3dpbmcKK3RoZXNlIHJlbmFtaW5nIHJ1bGVzOjoKKworICAgIHB5
LnRlc3QuWFlaICAgICAgICAgIC0+IHB5dGVzdC5YWVoKKyAgICBweS50ZXN0LmNvbGxlY3QuWFla
ICAtPiBweXRlc3QuWFlaCisgICAgcHkudGVzdC5jbWRsaW5lLm1haW4gLT4gcHl0ZXN0Lm1haW4K
KworVGhlIG9sZCBgYHB5LnRlc3QuKmBgIHdheXMgdG8gYWNjZXNzIGZ1bmN0aW9uYWxpdHkgcmVt
YWluCit2YWxpZCBidXQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGRvIGdsb2JhbCByZW5hbWluZyBh
Y2NvcmRpbmcKK3RvIHRoZSBhYm92ZSBydWxlcyBpbiB5b3VyIHRlc3QgY29kZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3Nl
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMGExMDYzM2FiMDZlNzQ3YWY3MDJiMzdlNDhmZDZjZmZmM2YxYjFk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL25vc2UucnN0CkBAIC0wLDAg
KzEsNzUgQEAKKy4uIF9gbm9zZWludGVncmF0aW9uYDoKKworUnVubmluZyB0ZXN0cyB3cml0dGVu
IGZvciBub3NlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4g
aW5jbHVkZTo6IGxpbmtzLmluYworCitgYHB5dGVzdGBgIGhhcyBiYXNpYyBzdXBwb3J0IGZvciBy
dW5uaW5nIHRlc3RzIHdyaXR0ZW4gZm9yIG5vc2VfLgorCisuLiBfbm9zZXN0eWxlOgorCitVc2Fn
ZQorLS0tLS0tLS0tLS0tLQorCitBZnRlciA6cmVmOmBpbnN0YWxsYXRpb25gIHR5cGU6OgorCisg
ICAgcHl0aG9uIHNldHVwLnB5IGRldmVsb3AgICMgbWFrZSBzdXJlIHRlc3RzIGNhbiBpbXBvcnQg
b3VyIHBhY2thZ2UKKyAgICBweXRlc3QgICMgaW5zdGVhZCBvZiAnbm9zZXRlc3RzJworCithbmQg
eW91IHNob3VsZCBiZSBhYmxlIHRvIHJ1biB5b3VyIG5vc2Ugc3R5bGUgdGVzdHMgYW5kCittYWtl
IHVzZSBvZiBweXRlc3QncyBjYXBhYmlsaXRpZXMuCisKK1N1cHBvcnRlZCBub3NlIElkaW9tcwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIHNldHVwIGFuZCB0ZWFyZG93biBhdCBtb2R1bGUv
Y2xhc3MvbWV0aG9kIGxldmVsCisqIFNraXBUZXN0IGV4Y2VwdGlvbnMgYW5kIG1hcmtlcnMKKyog
c2V0dXAvdGVhcmRvd24gZGVjb3JhdG9ycworKiBgYHlpZWxkYGAtYmFzZWQgdGVzdHMgYW5kIHRo
ZWlyIHNldHVwIChjb25zaWRlcmVkIGRlcHJlY2F0ZWQgYXMgb2YgcHl0ZXN0IDMuMCkKKyogYGBf
X3Rlc3RfX2BgIGF0dHJpYnV0ZSBvbiBtb2R1bGVzL2NsYXNzZXMvZnVuY3Rpb25zCisqIGdlbmVy
YWwgdXNhZ2Ugb2Ygbm9zZSB1dGlsaXRpZXMKKworVW5zdXBwb3J0ZWQgaWRpb21zIC8ga25vd24g
aXNzdWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gdW5pdHRlc3Qt
c3R5bGUgYGBzZXRVcCwgdGVhckRvd24sIHNldFVwQ2xhc3MsIHRlYXJEb3duQ2xhc3NgYAorICBh
cmUgcmVjb2duaXplZCBvbmx5IG9uIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBjbGFzc2VzIGJ1dCBu
b3QKKyAgb24gcGxhaW4gY2xhc3Nlcy4gIGBgbm9zZWBgIHN1cHBvcnRzIHRoZXNlIG1ldGhvZHMg
YWxzbyBvbiBwbGFpbgorICBjbGFzc2VzIGJ1dCBweXRlc3QgZGVsaWJlcmF0ZWx5IGRvZXMgbm90
LiAgQXMgbm9zZSBhbmQgcHl0ZXN0IGFscmVhZHkKKyAgYm90aCBzdXBwb3J0IGBgc2V0dXBfY2xh
c3MsIHRlYXJkb3duX2NsYXNzLCBzZXR1cF9tZXRob2QsIHRlYXJkb3duX21ldGhvZGBgCisgIGl0
IGRvZXNuJ3Qgc2VlbSB1c2VmdWwgdG8gZHVwbGljYXRlIHRoZSB1bml0dGVzdC1BUEkgbGlrZSBu
b3NlIGRvZXMuCisgIElmIHlvdSBob3dldmVyIHJhdGhlciB0aGluayBweXRlc3Qgc2hvdWxkIHN1
cHBvcnQgdGhlIHVuaXR0ZXN0LXNwZWxsaW5nIG9uCisgIHBsYWluIGNsYXNzZXMgcGxlYXNlIHBv
c3QgYHRvIHRoaXMgaXNzdWUKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzc3Lz5gXy4KKworLSBub3NlIGltcG9ydHMgdGVzdCBtb2R1bGVzIHdpdGggdGhl
IHNhbWUgaW1wb3J0IHBhdGggKGUuZy4KKyAgYGB0ZXN0cy50ZXN0X21vZGBgKSBidXQgZGlmZmVy
ZW50IGZpbGUgc3lzdGVtIHBhdGhzCisgIChlLmcuIGBgdGVzdHMvdGVzdF9tb2RlLnB5YGAgYW5k
IGBgb3RoZXIvdGVzdHMvdGVzdF9tb2RlLnB5YGApCisgIGJ5IGV4dGVuZGluZyBzeXMucGF0aC9p
bXBvcnQgc2VtYW50aWNzLiAgIHB5dGVzdCBkb2VzIG5vdCBkbyB0aGF0CisgIGJ1dCB0aGVyZSBp
cyBkaXNjdXNzaW9uIGluIGAjMjY4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzI2OD5gXyBmb3IgYWRkaW5nIHNvbWUgc3VwcG9ydC4gIE5vdGUgdGhhdAorICBg
bm9zZTIgY2hvb3NlIHRvIGF2b2lkIHRoaXMgc3lzLnBhdGgvaW1wb3J0IGhhY2tlcnkgPGh0dHBz
Oi8vbm9zZTIucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2RpZmZlcmVuY2VzLmh0bWwjdGVzdC1k
aXNjb3ZlcnktYW5kLWxvYWRpbmc+YF8uCisKKyAgSWYgeW91IHBsYWNlIGEgY29uZnRlc3QucHkg
ZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgeW91ciBwcm9qZWN0CisgIChhcyBkZXRlcm1p
bmVkIGJ5IHB5dGVzdCkgcHl0ZXN0IHdpbGwgcnVuIHRlc3RzICJub3NlIHN0eWxlIiBhZ2FpbnN0
CisgIHRoZSBjb2RlIGJlbG93IHRoYXQgZGlyZWN0b3J5IGJ5IGFkZGluZyBpdCB0byB5b3VyIGBg
c3lzLnBhdGhgYCBpbnN0ZWFkIG9mCisgIHJ1bm5pbmcgYWdhaW5zdCB5b3VyIGluc3RhbGxlZCBj
b2RlLgorCisgIFlvdSBtYXkgZmluZCB5b3Vyc2VsZiB3YW50aW5nIHRvIGRvIHRoaXMgaWYgeW91
IHJhbiBgYHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYGAKKyAgdG8gc2V0IHVwIHlvdXIgcHJvamVj
dCwgYXMgb3Bwb3NlZCB0byBgYHB5dGhvbiBzZXR1cC5weSBkZXZlbG9wYGAgb3IgYW55IG9mCisg
IHRoZSBwYWNrYWdlIG1hbmFnZXIgZXF1aXZhbGVudHMuICBJbnN0YWxsaW5nIHdpdGggZGV2ZWxv
cCBpbiBhCisgIHZpcnR1YWwgZW52aXJvbm1lbnQgbGlrZSBUb3ggaXMgcmVjb21tZW5kZWQgb3Zl
ciB0aGlzIHBhdHRlcm4uCisKKy0gbm9zZS1zdHlsZSBkb2N0ZXN0cyBhcmUgbm90IGNvbGxlY3Rl
ZCBhbmQgZXhlY3V0ZWQgY29ycmVjdGx5LAorICBhbHNvIGRvY3Rlc3QgZml4dHVyZXMgZG9uJ3Qg
d29yay4KKworLSBubyBub3NlLWNvbmZpZ3VyYXRpb24gaXMgcmVjb2duaXplZC4KKworLSBgYHlp
ZWxkYGAtYmFzZWQgbWV0aG9kcyBkb24ndCBzdXBwb3J0IGBgc2V0dXBgYCBwcm9wZXJseSBiZWNh
dXNlCisgIHRoZSBgYHNldHVwYGAgbWV0aG9kIGlzIGFsd2F5cyBjYWxsZWQgaW4gdGhlIHNhbWUg
Y2xhc3MgaW5zdGFuY2UuCisgIFRoZXJlIGFyZSBubyBwbGFucyB0byBmaXggdGhpcyBjdXJyZW50
bHkgYmVjYXVzZSBgYHlpZWxkYGAtdGVzdHMKKyAgYXJlIGRlcHJlY2F0ZWQgaW4gcHl0ZXN0IDMu
MCwgd2l0aCBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKKyAgYmVpbmcgdGhlIHJlY29tbWVu
ZGVkIGFsdGVybmF0aXZlLgorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Bh
cmFtZXRyaXplLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2E0YWMyZTE4NzdlMjVkYTY2ZWUxYjY3MWMwYjJlMDE5Y2E2YjE4OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QKQEAgLTAsMCArMSwy
MTcgQEAKKworLi4gX2B0ZXN0IGdlbmVyYXRvcnNgOgorLi4gX2BwYXJhbWV0cml6aW5nLXRlc3Rz
YDoKKy4uIF9gcGFyYW1ldHJpemVkIHRlc3QgZnVuY3Rpb25zYDoKKy4uIF9gcGFyYW1ldHJpemVg
OgorCisuLiBfYHBhcmFtZXRyaXplLWJhc2ljc2A6CisKK1BhcmFtZXRyaXppbmcgZml4dHVyZXMg
YW5kIHRlc3QgZnVuY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgZW5hYmxlcyB0
ZXN0IHBhcmFtZXRyaXphdGlvbiBhdCBzZXZlcmFsIGxldmVsczoKKworLSA6cHk6ZnVuYzpgcHl0
ZXN0LmZpeHR1cmVgIGFsbG93cyBvbmUgdG8gOnJlZjpgcGFyYW1ldHJpemUgZml4dHVyZSAKKyAg
ZnVuY3Rpb25zIDxmaXh0dXJlLXBhcmFtZXRyaXplPmAuCisKKyogYEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZWBfIGFsbG93cyBvbmUgdG8gZGVmaW5lIG11bHRpcGxlIHNldHMgb2YgCisgIGFyZ3Vt
ZW50cyBhbmQgZml4dHVyZXMgYXQgdGhlIHRlc3QgZnVuY3Rpb24gb3IgY2xhc3MuCisKKyogYHB5
dGVzdF9nZW5lcmF0ZV90ZXN0c2BfIGFsbG93cyBvbmUgdG8gZGVmaW5lIGN1c3RvbSBwYXJhbWV0
cml6YXRpb24gCisgIHNjaGVtZXMgb3IgZXh0ZW5zaW9ucy4KKworLi4gX3BhcmFtZXRyaXplbWFy
azoKKy4uIF9gQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYDoKKworCitgYEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZWBgOiBwYXJhbWV0cml6aW5nIHRlc3QgZnVuY3Rpb25zCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gcmVnZW5kb2M6IHdpcGUKKworLi4gdmVyc2lvbmFkZGVkOjogMi4yCisuLiB2ZXJzaW9u
Y2hhbmdlZDo6IDIuNAorICAgIFNldmVyYWwgaW1wcm92ZW1lbnRzLgorCitUaGUgYnVpbHRpbiBg
YHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAgZGVjb3JhdG9yIGVuYWJsZXMKK3BhcmFtZXRyaXph
dGlvbiBvZiBhcmd1bWVudHMgZm9yIGEgdGVzdCBmdW5jdGlvbi4gIEhlcmUgaXMgYSB0eXBpY2Fs
IGV4YW1wbGUKK29mIGEgdGVzdCBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgY2hlY2tpbmcgdGhh
dCBhIGNlcnRhaW4gaW5wdXQgbGVhZHMKK3RvIGFuIGV4cGVjdGVkIG91dHB1dDo6CisKKyAgICAj
IGNvbnRlbnQgb2YgdGVzdF9leHBlY3RhdGlvbi5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbCisgICAgICAg
ICgiMys1IiwgOCksCisgICAgICAgICgiMis0IiwgNiksCisgICAgICAgICgiNio5IiwgNDIpLAor
ICAgIF0pCisgICAgZGVmIHRlc3RfZXZhbCh0ZXN0X2lucHV0LCBleHBlY3RlZCk6CisgICAgICAg
IGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCisKK0hlcmUsIHRoZSBgYEBwYXJh
bWV0cml6ZWBgIGRlY29yYXRvciBkZWZpbmVzIHRocmVlIGRpZmZlcmVudCBgYCh0ZXN0X2lucHV0
LGV4cGVjdGVkKWBgCit0dXBsZXMgc28gdGhhdCB0aGUgYGB0ZXN0X2V2YWxgYCBmdW5jdGlvbiB3
aWxsIHJ1biB0aHJlZSB0aW1lcyB1c2luZwordGhlbSBpbiB0dXJuOjoKKworICAgICQgcHl0ZXN0
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMyBpdGVtcworICAgIAor
ICAgIHRlc3RfZXhwZWN0YXRpb24ucHkgLi5GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZXZhbFs2KjktNDJdIF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgdGVzdF9pbnB1dCA9ICc2KjknLCBleHBl
Y3RlZCA9IDQyCisgICAgCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdF9p
bnB1dCxleHBlY3RlZCIsIFsKKyAgICAgICAgICAgICgiMys1IiwgOCksCisgICAgICAgICAgICAo
IjIrNCIsIDYpLAorICAgICAgICAgICAgKCI2KjkiLCA0MiksCisgICAgICAgIF0pCisgICAgICAg
IGRlZiB0ZXN0X2V2YWwodGVzdF9pbnB1dCwgZXhwZWN0ZWQpOgorICAgID4gICAgICAgYXNzZXJ0
IGV2YWwodGVzdF9pbnB1dCkgPT0gZXhwZWN0ZWQKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9y
OiBhc3NlcnQgNTQgPT0gNDIKKyAgICBFICAgICAgICArICB3aGVyZSA1NCA9IGV2YWwoJzYqOScp
CisgICAgCisgICAgdGVzdF9leHBlY3RhdGlvbi5weTo4OiBBc3NlcnRpb25FcnJvcgorICAgID09
PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkLCAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09
PT09PT09PT09PT09PT09PT0KKworQXMgZGVzaWduZWQgaW4gdGhpcyBleGFtcGxlLCBvbmx5IG9u
ZSBwYWlyIG9mIGlucHV0L291dHB1dCB2YWx1ZXMgZmFpbHMKK3RoZSBzaW1wbGUgdGVzdCBmdW5j
dGlvbi4gIEFuZCBhcyB1c3VhbCB3aXRoIHRlc3QgZnVuY3Rpb24gYXJndW1lbnRzLAoreW91IGNh
biBzZWUgdGhlIGBgaW5wdXRgYCBhbmQgYGBvdXRwdXRgYCB2YWx1ZXMgaW4gdGhlIHRyYWNlYmFj
ay4KKworTm90ZSB0aGF0IHlvdSBjb3VsZCBhbHNvIHVzZSB0aGUgcGFyYW1ldHJpemUgbWFya2Vy
IG9uIGEgY2xhc3Mgb3IgYSBtb2R1bGUKKyhzZWUgOnJlZjpgbWFya2ApIHdoaWNoIHdvdWxkIGlu
dm9rZSBzZXZlcmFsIGZ1bmN0aW9ucyB3aXRoIHRoZSBhcmd1bWVudCBzZXRzLgorCitJdCBpcyBh
bHNvIHBvc3NpYmxlIHRvIG1hcmsgaW5kaXZpZHVhbCB0ZXN0IGluc3RhbmNlcyB3aXRoaW4gcGFy
YW1ldHJpemUsCitmb3IgZXhhbXBsZSB3aXRoIHRoZSBidWlsdGluIGBgbWFyay54ZmFpbGBgOjoK
KworICAgICMgY29udGVudCBvZiB0ZXN0X2V4cGVjdGF0aW9uLnB5CisgICAgaW1wb3J0IHB5dGVz
dAorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdF9pbnB1dCxleHBlY3RlZCIsIFsK
KyAgICAgICAgKCIzKzUiLCA4KSwKKyAgICAgICAgKCIyKzQiLCA2KSwKKyAgICAgICAgcHl0ZXN0
LnBhcmFtKCI2KjkiLCA0MiwKKyAgICAgICAgICAgICAgICAgICAgIG1hcmtzPXB5dGVzdC5tYXJr
LnhmYWlsKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X2V2YWwodGVzdF9pbnB1dCwgZXhwZWN0ZWQp
OgorICAgICAgICBhc3NlcnQgZXZhbCh0ZXN0X2lucHV0KSA9PSBleHBlY3RlZAorCitMZXQncyBy
dW4gdGhpczo6CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09
PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBw
bGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBs
dWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAg
Y29sbGVjdGVkIDMgaXRlbXMKKyAgICAKKyAgICB0ZXN0X2V4cGVjdGF0aW9uLnB5IC4ueCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAg
ICA9PT09PT09PT09PT09PT09PT09IDIgcGFzc2VkLCAxIHhmYWlsZWQgaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09CisKK1RoZSBvbmUgcGFyYW1ldGVyIHNldCB3aGljaCBjYXVz
ZWQgYSBmYWlsdXJlIHByZXZpb3VzbHkgbm93CitzaG93cyB1cCBhcyBhbiAieGZhaWxlZCAoZXhw
ZWN0ZWQgdG8gZmFpbCkiIHRlc3QuCisKK1RvIGdldCBhbGwgY29tYmluYXRpb25zIG9mIG11bHRp
cGxlIHBhcmFtZXRyaXplZCBhcmd1bWVudHMgeW91IGNhbiBzdGFjaworYGBwYXJhbWV0cml6ZWBg
IGRlY29yYXRvcnM6OgorCisgICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgieCIsIFswLCAxXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInkiLCBb
MiwgM10pCisgICAgZGVmIHRlc3RfZm9vKHgsIHkpOgorICAgICAgICBwYXNzCisKK1RoaXMgd2ls
bCBydW4gdGhlIHRlc3Qgd2l0aCB0aGUgYXJndW1lbnRzIHNldCB0byBgYHg9MC95PTJgYCwgYGB4
PTAveT0zYGAsIGBgeD0xL3k9MmBgIGFuZAorYGB4PTEveT0zYGAuCisKKy4uIF9gcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzYDoKKworQmFzaWMgYGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgYCBleGFtcGxl
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU29tZXRp
bWVzIHlvdSBtYXkgd2FudCB0byBpbXBsZW1lbnQgeW91ciBvd24gcGFyYW1ldHJpemF0aW9uIHNj
aGVtZQorb3IgaW1wbGVtZW50IHNvbWUgZHluYW1pc20gZm9yIGRldGVybWluaW5nIHRoZSBwYXJh
bWV0ZXJzIG9yIHNjb3BlCitvZiBhIGZpeHR1cmUuICAgRm9yIHRoaXMsIHlvdSBjYW4gdXNlIHRo
ZSBgYHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2BgIGhvb2sKK3doaWNoIGlzIGNhbGxlZCB3aGVuIGNv
bGxlY3RpbmcgYSB0ZXN0IGZ1bmN0aW9uLiAgVGhyb3VnaCB0aGUgcGFzc2VkIGluCitgYG1ldGFm
dW5jYGAgb2JqZWN0IHlvdSBjYW4gaW5zcGVjdCB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQg
YW5kLCBtb3N0CitpbXBvcnRhbnRseSwgeW91IGNhbiBjYWxsIGBgbWV0YWZ1bmMucGFyYW1ldHJp
emUoKWBgIHRvIGNhdXNlCitwYXJhbWV0cml6YXRpb24uCisKK0ZvciBleGFtcGxlLCBsZXQncyBz
YXkgd2Ugd2FudCB0byBydW4gYSB0ZXN0IHRha2luZyBzdHJpbmcgaW5wdXRzIHdoaWNoCit3ZSB3
YW50IHRvIHNldCB2aWEgYSBuZXcgYGBweXRlc3RgYCBjb21tYW5kIGxpbmUgb3B0aW9uLiAgTGV0
J3MgZmlyc3Qgd3JpdGUKK2Egc2ltcGxlIHRlc3QgYWNjZXB0aW5nIGEgYGBzdHJpbmdpbnB1dGBg
IGZpeHR1cmUgZnVuY3Rpb24gYXJndW1lbnQ6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc3Ry
aW5ncy5weQorCisgICAgZGVmIHRlc3RfdmFsaWRfc3RyaW5nKHN0cmluZ2lucHV0KToKKyAgICAg
ICAgYXNzZXJ0IHN0cmluZ2lucHV0LmlzYWxwaGEoKQorCitOb3cgd2UgYWRkIGEgYGBjb25mdGVz
dC5weWBgIGZpbGUgY29udGFpbmluZyB0aGUgYWRkaXRpb24gb2YgYQorY29tbWFuZCBsaW5lIG9w
dGlvbiBhbmQgdGhlIHBhcmFtZXRyaXphdGlvbiBvZiBvdXIgdGVzdCBmdW5jdGlvbjo6CisKKyAg
ICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKworICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6CisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0tc3RyaW5naW5wdXQiLCBhY3Rpb249
ImFwcGVuZCIsIGRlZmF1bHQ9W10sCisgICAgICAgICAgICBoZWxwPSJsaXN0IG9mIHN0cmluZ2lu
cHV0cyB0byBwYXNzIHRvIHRlc3QgZnVuY3Rpb25zIikKKworICAgIGRlZiBweXRlc3RfZ2VuZXJh
dGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICBpZiAnc3RyaW5naW5wdXQnIGluIG1ldGFmdW5j
LmZpeHR1cmVuYW1lczoKKyAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJzdHJpbmdp
bnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5jb25maWcu
Z2V0b3B0aW9uKCdzdHJpbmdpbnB1dCcpKQorCitJZiB3ZSBub3cgcGFzcyB0d28gc3RyaW5naW5w
dXQgdmFsdWVzLCBvdXIgdGVzdCB3aWxsIHJ1biB0d2ljZTo6CisKKyAgICAkIHB5dGVzdCAtcSAt
LXN0cmluZ2lucHV0PSJoZWxsbyIgLS1zdHJpbmdpbnB1dD0id29ybGQiIHRlc3Rfc3RyaW5ncy5w
eQorICAgIC4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIDIgcGFzc2VkIGluIDAuMTIgc2Vjb25kcwor
CitMZXQncyBhbHNvIHJ1biB3aXRoIGEgc3RyaW5naW5wdXQgdGhhdCB3aWxsIGxlYWQgdG8gYSBm
YWlsaW5nIHRlc3Q6OgorCisgICAgJCBweXRlc3QgLXEgLS1zdHJpbmdpbnB1dD0iISIgdGVzdF9z
dHJpbmdzLnB5CisgICAgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X3ZhbGlkX3N0cmluZ1shXSBf
X19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzdHJpbmdpbnB1dCA9ICchJwor
ICAgIAorICAgICAgICBkZWYgdGVzdF92YWxpZF9zdHJpbmcoc3RyaW5naW5wdXQpOgorICAgID4g
ICAgICAgYXNzZXJ0IHN0cmluZ2lucHV0LmlzYWxwaGEoKQorICAgIEUgICAgICAgQXNzZXJ0aW9u
RXJyb3I6IGFzc2VydCBGYWxzZQorICAgIEUgICAgICAgICsgIHdoZXJlIEZhbHNlID0gPGJ1aWx0
LWluIG1ldGhvZCBpc2FscGhhIG9mIHN0ciBvYmplY3QgYXQgMHhkZWFkYmVlZj4oKQorICAgIEUg
ICAgICAgICsgICAgd2hlcmUgPGJ1aWx0LWluIG1ldGhvZCBpc2FscGhhIG9mIHN0ciBvYmplY3Qg
YXQgMHhkZWFkYmVlZj4gPSAnIScuaXNhbHBoYQorICAgIAorICAgIHRlc3Rfc3RyaW5ncy5weToz
OiBBc3NlcnRpb25FcnJvcgorICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcworCitBcyBleHBl
Y3RlZCBvdXIgdGVzdCBmdW5jdGlvbiBmYWlscy4KKworSWYgeW91IGRvbid0IHNwZWNpZnkgYSBz
dHJpbmdpbnB1dCBpdCB3aWxsIGJlIHNraXBwZWQgYmVjYXVzZQorYGBtZXRhZnVuYy5wYXJhbWV0
cml6ZSgpYGAgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbiBlbXB0eSBwYXJhbWV0ZXIKK2xpc3Q6Ogor
CisgICAgJCBweXRlc3QgLXEgLXJzIHRlc3Rfc3RyaW5ncy5weQorICAgIHMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGlu
Zm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBTS0lQIFsxXSB0ZXN0X3N0cmluZ3Mu
cHk6IGdvdCBlbXB0eSBwYXJhbWV0ZXIgc2V0IFsnc3RyaW5naW5wdXQnXSwgZnVuY3Rpb24gdGVz
dF92YWxpZF9zdHJpbmcgYXQgJFJFR0VORE9DX1RNUERJUi90ZXN0X3N0cmluZ3MucHk6MQorICAg
IDEgc2tpcHBlZCBpbiAwLjEyIHNlY29uZHMKKworTm90ZSB0aGF0IHdoZW4gY2FsbGluZyBgYG1l
dGFmdW5jLnBhcmFtZXRyaXplYGAgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgcGFyYW1l
dGVyIHNldHMsIGFsbCBwYXJhbWV0ZXIgbmFtZXMgYWNyb3NzIAordGhvc2Ugc2V0cyBjYW5ub3Qg
YmUgZHVwbGljYXRlZCwgb3RoZXJ3aXNlIGFuIGVycm9yIHdpbGwgYmUgcmFpc2VkLgorCitNb3Jl
IGV4YW1wbGVzCistLS0tLS0tLS0tLS0tCisKK0ZvciBmdXJ0aGVyIGV4YW1wbGVzLCB5b3UgbWln
aHQgd2FudCB0byBsb29rIGF0IDpyZWY6YG1vcmUKK3BhcmFtZXRyaXphdGlvbiBleGFtcGxlcyA8
cGFyYW1leGFtcGxlcz5gLgorCisuLiBfYG1ldGFmdW5jIG9iamVjdGA6CisKK1RoZSAqKm1ldGFm
dW5jKiogb2JqZWN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LnB5dGhvbgorLi4gYXV0b2NsYXNzOjogTWV0
YWZ1bmMKKyAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVn
aW5zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDA0
MThhZWUyNTg2N2I0YmRhZDYzZjQ0NmQzMmYyNjhjMTk1ZmJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3BsdWdpbnMucnN0CkBAIC0wLDAgKzEsMTU0IEBACisuLiBfYGV4
dGVybmFsIHBsdWdpbnNgOgorLi4gX2BleHRwbHVnaW5zYDoKKy4uIF9gdXNpbmcgcGx1Z2luc2A6
CisKK0luc3RhbGxpbmcgYW5kIFVzaW5nIHBsdWdpbnMKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworVGhpcyBzZWN0aW9uIHRhbGtzIGFib3V0IGluc3RhbGxpbmcgYW5kIHVzaW5nIHRo
aXJkIHBhcnR5IHBsdWdpbnMuCitGb3Igd3JpdGluZyB5b3VyIG93biBwbHVnaW5zLCBwbGVhc2Ug
cmVmZXIgdG8gOnJlZjpgd3JpdGluZy1wbHVnaW5zYC4KKworSW5zdGFsbGluZyBhIHRoaXJkIHBh
cnR5IHBsdWdpbiBjYW4gYmUgZWFzaWx5IGRvbmUgd2l0aCBgYHBpcGBgOjoKKworICAgIHBpcCBp
bnN0YWxsIHB5dGVzdC1OQU1FCisgICAgcGlwIHVuaW5zdGFsbCBweXRlc3QtTkFNRQorCitJZiBh
IHBsdWdpbiBpcyBpbnN0YWxsZWQsIGBgcHl0ZXN0YGAgYXV0b21hdGljYWxseSBmaW5kcyBhbmQg
aW50ZWdyYXRlcyBpdCwKK3RoZXJlIGlzIG5vIG5lZWQgdG8gYWN0aXZhdGUgaXQuCisKK0hlcmUg
aXMgYSBsaXR0bGUgYW5ub3RhdGVkIGxpc3QgZm9yIHNvbWUgcG9wdWxhciBwbHVnaW5zOgorCisu
LiBfYGRqYW5nb2A6IGh0dHBzOi8vd3d3LmRqYW5nb3Byb2plY3QuY29tLworCisqIGBweXRlc3Qt
ZGphbmdvIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWRqYW5nbz5gXzogd3Jp
dGUgdGVzdHMKKyAgZm9yIGBkamFuZ29gXyBhcHBzLCB1c2luZyBweXRlc3QgaW50ZWdyYXRpb24u
CisKKyogYHB5dGVzdC10d2lzdGVkIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0
LXR3aXN0ZWQ+YF86IHdyaXRlIHRlc3RzCisgIGZvciBgdHdpc3RlZCA8aHR0cDovL3R3aXN0ZWRt
YXRyaXguY29tPmBfIGFwcHMsIHN0YXJ0aW5nIGEgcmVhY3RvciBhbmQKKyAgcHJvY2Vzc2luZyBk
ZWZlcnJlZHMgZnJvbSB0ZXN0IGZ1bmN0aW9ucy4KKworKiBgcHl0ZXN0LWNvdiA8aHR0cDovL3B5
cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1jb3Y+YF86CisgIGNvdmVyYWdlIHJlcG9ydGluZywg
Y29tcGF0aWJsZSB3aXRoIGRpc3RyaWJ1dGVkIHRlc3RpbmcKKworKiBgcHl0ZXN0LXhkaXN0IDxo
dHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXhkaXN0PmBfOgorICB0byBkaXN0cmli
dXRlIHRlc3RzIHRvIENQVXMgYW5kIHJlbW90ZSBob3N0cywgdG8gcnVuIGluIGJveGVkCisgIG1v
ZGUgd2hpY2ggYWxsb3dzIHRvIHN1cnZpdmUgc2VnbWVudGF0aW9uIGZhdWx0cywgdG8gcnVuIGlu
CisgIGxvb3BvbmZhaWxpbmcgbW9kZSwgYXV0b21hdGljYWxseSByZS1ydW5uaW5nIGZhaWxpbmcg
dGVzdHMKKyAgb24gZmlsZSBjaGFuZ2VzLgorCisqIGBweXRlc3QtaW5zdGFmYWlsIDxodHRwOi8v
cHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWluc3RhZmFpbD5gXzoKKyAgdG8gcmVwb3J0IGZh
aWx1cmVzIHdoaWxlIHRoZSB0ZXN0IHJ1biBpcyBoYXBwZW5pbmcuCisKKyogYHB5dGVzdC1iZGQg
PGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtYmRkPmBfIGFuZAorICBgcHl0ZXN0
LWtvbmlyYSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1rb25pcmE+YF8KKyAg
dG8gd3JpdGUgdGVzdHMgdXNpbmcgYmVoYXZpb3VyLWRyaXZlbiB0ZXN0aW5nLgorCisqIGBweXRl
c3QtdGltZW91dCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC10aW1lb3V0PmBf
OgorICB0byB0aW1lb3V0IHRlc3RzIGJhc2VkIG9uIGZ1bmN0aW9uIG1hcmtzIG9yIGdsb2JhbCBk
ZWZpbml0aW9ucy4KKworKiBgcHl0ZXN0LXBlcDggPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9weXRlc3QtcGVwOD5gXzoKKyAgYSBgYC0tcGVwOGBgIG9wdGlvbiB0byBlbmFibGUgUEVQOCBj
b21wbGlhbmNlIGNoZWNraW5nLgorCisqIGBweXRlc3QtZmxha2VzIDxodHRwczovL3B5cGkucHl0
aG9uLm9yZy9weXBpL3B5dGVzdC1mbGFrZXM+YF86CisgIGNoZWNrIHNvdXJjZSBjb2RlIHdpdGgg
cHlmbGFrZXMuCisKKyogYG9lanNraXQgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9vZWpz
a2l0PmBfOgorICBhIHBsdWdpbiB0byBydW4gamF2YXNjcmlwdCB1bml0dGVzdHMgaW4gbGl2ZSBi
cm93c2Vycy4KKworVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBhbGwgcGx1Z2lucyB3aXRoIHRo
ZWlyIGxhdGVzdCB0ZXN0aW5nCitzdGF0dXMgYWdhaW5zdCBkaWZmZXJlbnQgcHl0ZXN0IGFuZCBQ
eXRob24gdmVyc2lvbnMsIHBsZWFzZSB2aXNpdAorYHBsdWdpbmNvbXBhdCA8aHR0cDovL3BsdWdp
bmNvbXBhdC5oZXJva3VhcHAuY29tLz5gXy4KKworWW91IG1heSBhbHNvIGRpc2NvdmVyIG1vcmUg
cGx1Z2lucyB0aHJvdWdoIGEgYHB5dGVzdC0gcHlwaS5weXRob24ub3JnIHNlYXJjaGBfLgorCisu
LiBfYGF2YWlsYWJsZSBpbnN0YWxsYWJsZSBwbHVnaW5zYDoKKy4uIF9gcHl0ZXN0LSBweXBpLnB5
dGhvbi5vcmcgc2VhcmNoYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpPyUzQWFjdGlvbj1z
ZWFyY2gmdGVybT1weXRlc3QtJnN1Ym1pdD1zZWFyY2gKKworCitSZXF1aXJpbmcvTG9hZGluZyBw
bHVnaW5zIGluIGEgdGVzdCBtb2R1bGUgb3IgY29uZnRlc3QgZmlsZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBy
ZXF1aXJlIHBsdWdpbnMgaW4gYSB0ZXN0IG1vZHVsZSBvciBhIGNvbmZ0ZXN0IGZpbGUgbGlrZSB0
aGlzOjoKKworICAgIHB5dGVzdF9wbHVnaW5zID0gIm15YXBwLnRlc3RzdXBwb3J0Lm15cGx1Z2lu
IiwKKworV2hlbiB0aGUgdGVzdCBtb2R1bGUgb3IgY29uZnRlc3QgcGx1Z2luIGlzIGxvYWRlZCB0
aGUgc3BlY2lmaWVkIHBsdWdpbnMKK3dpbGwgYmUgbG9hZGVkIGFzIHdlbGwuCisKKyAgICBweXRl
c3RfcGx1Z2lucyA9ICJteWFwcC50ZXN0c3VwcG9ydC5teXBsdWdpbiIKKword2hpY2ggd2lsbCBp
bXBvcnQgdGhlIHNwZWNpZmllZCBtb2R1bGUgYXMgYSBgYHB5dGVzdGBgIHBsdWdpbi4KKworLi4g
X2BmaW5kcGx1Z2lubmFtZWA6CisKK0ZpbmRpbmcgb3V0IHdoaWNoIHBsdWdpbnMgYXJlIGFjdGl2
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSB3YW50IHRv
IGZpbmQgb3V0IHdoaWNoIHBsdWdpbnMgYXJlIGFjdGl2ZSBpbiB5b3VyCitlbnZpcm9ubWVudCB5
b3UgY2FuIHR5cGU6OgorCisgICAgcHl0ZXN0IC0tdHJhY2UtY29uZmlnCisKK2FuZCB3aWxsIGdl
dCBhbiBleHRlbmRlZCB0ZXN0IGhlYWRlciB3aGljaCBzaG93cyBhY3RpdmF0ZWQgcGx1Z2lucwor
YW5kIHRoZWlyIG5hbWVzLiBJdCB3aWxsIGFsc28gcHJpbnQgbG9jYWwgcGx1Z2lucyBha2EKKzpy
ZWY6YGNvbmZ0ZXN0LnB5IDxjb25mdGVzdC5weSBwbHVnaW5zPmAgZmlsZXMgd2hlbiB0aGV5IGFy
ZSBsb2FkZWQuCisKKy4uIF9gY21kdW5yZWdpc3RlcmA6CisKK0RlYWN0aXZhdGluZyAvIHVucmVn
aXN0ZXJpbmcgYSBwbHVnaW4gYnkgbmFtZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gcHJldmVudCBwbHVnaW5zIGZyb20gbG9hZGluZyBv
ciB1bnJlZ2lzdGVyIHRoZW06OgorCisgICAgcHl0ZXN0IC1wIG5vOk5BTUUKKworVGhpcyBtZWFu
cyB0aGF0IGFueSBzdWJzZXF1ZW50IHRyeSB0byBhY3RpdmF0ZS9sb2FkIHRoZSBuYW1lZAorcGx1
Z2luIHdpbGwgbm90IHdvcmsuCisKK0lmIHlvdSB3YW50IHRvIHVuY29uZGl0aW9uYWxseSBkaXNh
YmxlIGEgcGx1Z2luIGZvciBhIHByb2plY3QsIHlvdSBjYW4gYWRkCit0aGlzIG9wdGlvbiB0byB5
b3VyIGBgcHl0ZXN0LmluaWBgIGZpbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAg
W3B5dGVzdF0KKyAgICAgIGFkZG9wdHMgPSAtcCBubzpOQU1FCisKK0FsdGVybmF0aXZlbHkgdG8g
ZGlzYWJsZSBpdCBvbmx5IGluIGNlcnRhaW4gZW52aXJvbm1lbnRzIChmb3IgZXhhbXBsZSBpbiBh
CitDSSBzZXJ2ZXIpLCB5b3UgY2FuIHNldCBgYFBZVEVTVF9BRERPUFRTYGAgZW52aXJvbm1lbnQg
dmFyaWFibGUgdG8KK2BgLXAgbm86bmFtZWBgLgorCitTZWUgOnJlZjpgZmluZHBsdWdpbm5hbWVg
IGZvciBob3cgdG8gb2J0YWluIHRoZSBuYW1lIG9mIGEgcGx1Z2luLgorCisuLiBfYGJ1aWx0aW4g
cGx1Z2luc2A6CisKK1B5dGVzdCBkZWZhdWx0IHBsdWdpbiByZWZlcmVuY2UKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitZb3UgY2FuIGZpbmQgdGhlIHNvdXJjZSBjb2RlIGZv
ciB0aGUgZm9sbG93aW5nIHBsdWdpbnMKK2luIHRoZSBgcHl0ZXN0IHJlcG9zaXRvcnkgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdD5gXy4KKworLi4gYXV0b3N1bW1hcnk6Ogor
CisgICAgX3B5dGVzdC5hc3NlcnRpb24KKyAgICBfcHl0ZXN0LmNhY2hlcHJvdmlkZXIKKyAgICBf
cHl0ZXN0LmNhcHR1cmUKKyAgICBfcHl0ZXN0LmNvbmZpZworICAgIF9weXRlc3QuZG9jdGVzdAor
ICAgIF9weXRlc3QuaGVscGNvbmZpZworICAgIF9weXRlc3QuanVuaXR4bWwKKyAgICBfcHl0ZXN0
Lm1hcmsKKyAgICBfcHl0ZXN0Lm1vbmtleXBhdGNoCisgICAgX3B5dGVzdC5ub3NlCisgICAgX3B5
dGVzdC5wYXN0ZWJpbgorICAgIF9weXRlc3QuZGVidWdnaW5nCisgICAgX3B5dGVzdC5weXRlc3Rl
cgorICAgIF9weXRlc3QucHl0aG9uCisgICAgX3B5dGVzdC5yZWN3YXJuCisgICAgX3B5dGVzdC5y
ZXN1bHRsb2cKKyAgICBfcHl0ZXN0LnJ1bm5lcgorICAgIF9weXRlc3QubWFpbgorICAgIF9weXRl
c3Quc2tpcHBpbmcKKyAgICBfcHl0ZXN0LnRlcm1pbmFsCisgICAgX3B5dGVzdC50bXBkaXIKKyAg
ICBfcHl0ZXN0LnVuaXR0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvamVj
dHMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmRm
OTlhYjJjNWZjMGJmOGI5ZTU4NGJmZTBiMThjZTE1NjJiOTc0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdApAQCAtMCwwICsxLDg1IEBACisuLiBfcHJv
amVjdHM6CisKKy4uIGltYWdlOjogaW1nL2dheW5vcjMucG5nCisgICA6d2lkdGg6IDQwMHB4Cisg
ICA6YWxpZ246IHJpZ2h0CisKKy4uIGltYWdlOjogaW1nL3RoZXVuaS5wbmcKKyAgIDp3aWR0aDog
NDAwcHgKKyAgIDphbGlnbjogcmlnaHQKKworLi4gaW1hZ2U6OiBpbWcvY3JhbWVyMi5wbmcKKyAg
IDp3aWR0aDogNDAwcHgKKyAgIDphbGlnbjogcmlnaHQKKworLi4gaW1hZ2U6OiBpbWcva2VsZXNo
ZXYucG5nCisgICA6d2lkdGg6IDQwMHB4CisgICA6YWxpZ246IHJpZ2h0CisKKworUHJvamVjdCBl
eGFtcGxlcworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSGVyZSBhcmUgc29tZSBleGFt
cGxlcyBvZiBwcm9qZWN0cyB1c2luZyBgYHB5dGVzdGBgIChwbGVhc2Ugc2VuZCBub3RlcyB2aWEg
OnJlZjpgY29udGFjdGApOgorCisqIGBQeVB5IDxodHRwOi8vcHlweS5vcmc+YF8sIFB5dGhvbiB3
aXRoIGEgSklUIGNvbXBpbGVyLCBydW5uaW5nIG92ZXIKKyAgYDIxMDAwIHRlc3RzIDxodHRwOi8v
YnVpbGRib3QucHlweS5vcmcvc3VtbWFyeT9icmFuY2g9JTNDdHJ1bmslM0U+YF8KKyogdGhlIGBN
b2luTW9pbiA8aHR0cDovL21vaW5tby5pbj5gXyBXaWtpIEVuZ2luZQorKiBgc2VudHJ5IDxodHRw
czovL2dldHNlbnRyeS5jb20vd2VsY29tZS8+YF8sIHJlYWx0aW1lIGFwcC1tYWludGVuYW5jZSBh
bmQgZXhjZXB0aW9uIHRyYWNraW5nCisqIGBBc3Ryb3B5IDxodHRwOi8vd3d3LmFzdHJvcHkub3Jn
Lz5gXyBhbmQgYGFmZmlsaWF0ZWQgcGFja2FnZXMgPGh0dHA6Ly93d3cuYXN0cm9weS5vcmcvYWZm
aWxpYXRlZC9pbmRleC5odG1sPmBfCisqIGB0b3ggPGh0dHA6Ly90ZXN0cnVuLm9yZy90b3g+YF8s
IHZpcnR1YWxlbnYvSHVkc29uIGludGVncmF0aW9uIHRvb2wKKyogYFBJREEgPGh0dHA6Ly9waWRh
LmNvLnVrPmBfIGZyYW1ld29yayBmb3IgaW50ZWdyYXRlZCBkZXZlbG9wbWVudAorKiBgUHlQTSA8
aHR0cDovL2NvZGUuYWN0aXZlc3RhdGUuY29tL3B5cG0vPmBfIEFjdGl2ZVN0YXRlJ3MgcGFja2Fn
ZSBtYW5hZ2VyCisqIGBGb20gPGh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3JnL0ZvbS8+YF8gYSBm
bHVpZCBvYmplY3QgbWFwcGVyIGZvciBGbHVpZERCCisqIGBhcHBsaWIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9BY3RpdmVTdGF0ZS9hcHBsaWI+YF8gY3Jvc3MtcGxhdGZvcm0gdXRpbGl0aWVzCisqIGBz
aXggPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgvPmBfIFB5dGhvbiAyIGFuZCAzIGNv
bXBhdGliaWxpdHkgdXRpbGl0aWVzCisqIGBwZWRpYXByZXNzIDxodHRwOi8vY29kZS5wZWRpYXBy
ZXNzLmNvbS93aWtpL3dpa2k+YF8gTWVkaWFXaWtpIGFydGljbGVzCisqIGBtd2xpYiA8aHR0cDov
L3B5cGkucHl0aG9uLm9yZy9weXBpL213bGliPmBfIG1lZGlhd2lraSBwYXJzZXIgYW5kIHV0aWxp
dHkgbGlicmFyeQorKiBgVGhlIFRyYW5zbGF0ZSBUb29sa2l0IDxodHRwOi8vdHJhbnNsYXRlLnNv
dXJjZWZvcmdlLm5ldC93aWtpL3Rvb2xraXQvaW5kZXg+YF8gZm9yIGxvY2FsaXphdGlvbiBhbmQg
Y29udmVyc2lvbgorKiBgZXhlY25ldCA8aHR0cDovL2NvZGVzcGVhay5uZXQvZXhlY25ldD5gXyBy
YXBpZCBtdWx0aS1QeXRob24gZGVwbG95bWVudAorKiBgcHlsaWIgPGh0dHA6Ly9weS5ydGZkLm9y
Zz5gXyBjcm9zcy1wbGF0Zm9ybSBwYXRoLCBJTywgZHluYW1pYyBjb2RlIGxpYnJhcnkKKyogYFBh
Y2hhIDxodHRwOi8vcGFjaGEuY2FmZXBhaXMuY29tLz5gXyBjb25maWd1cmF0aW9uIG1hbmFnZW1l
bnQgaW4gZml2ZSBtaW51dGVzCisqIGBiYmZyZWV6ZSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9w
eXBpL2JiZnJlZXplPmBfIGNyZWF0ZSBzdGFuZGFsb25lIGV4ZWN1dGFibGVzIGZyb20gUHl0aG9u
IHNjcmlwdHMKKyogYHBkYisrIDxodHRwOi8vYml0YnVja2V0Lm9yZy9hbnRvY3VuaS9wZGI+YF8g
YSBmYW5jaWVyIHZlcnNpb24gb2YgUERCCisqIGBweS1zM2Z1c2UgPGh0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9weS1zM2Z1c2UvPmBfIEFtYXpvbiBTMyBGVVNFIGJhc2VkIGZpbGVzeXN0ZW0KKyog
YHdhc2tyIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Avd2Fza3IvPmBfIFdTR0kgU3RhdHMgTWlk
ZGxld2FyZQorKiBgZ3VhY2hpIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ3VhY2hpLz5gXyBn
bG9iYWwgcGVyc2lzdGVudCBjb25maWdzIGZvciBQeXRob24gbW9kdWxlcworKiBgQ2lyY3VpdHMg
PGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9jaXJjdWl0cz5gXyBsaWdodHdlaWdodCBFdmVu
dCBEcml2ZW4gRnJhbWV3b3JrCisqIGBweWd0ay1oZWxwZXJzIDxodHRwOi8vYml0YnVja2V0Lm9y
Zy9hYWZzaGFyL3B5Z3RraGVscGVycy1tYWluLz5gXyBlYXN5IGludGVyYWN0aW9uIHdpdGggUHlH
VEsKKyogYFF1YW50dW1Db3JlIDxodHRwOi8vcXVhbnR1bWNvcmUub3JnLz5gXyBzdGF0dXNtZXNz
YWdlIGFuZCByZXBvemUgb3BlbmlkIHBsdWdpbgorKiBgcHlkYXRhcG9ydGFiaWxpdHkgPGh0dHA6
Ly9weWRhdGFwb3J0YWJpbGl0eS5uZXQvPmBfIGxpYnJhcmllcyBmb3IgbWFuYWdpbmcgdGhlIG9w
ZW4gd2ViCisqIGBYSVNUIDxodHRwOi8vd3d3LmxpdmluZ2xvZ2ljLmRlL1B5dGhvbi94aXN0Lz5g
XyBleHRlbnNpYmxlIEhUTUwvWE1MIGdlbmVyYXRvcgorKiBgdGlkZGx5d2ViIDxodHRwOi8vcHlw
aS5weXRob24ub3JnL3B5cGkvdGlkZGx5d2ViPmBfIG9wdGlvbmFsbHkgaGVhZGxlc3MsIGV4dGVu
c2libGUgUkVTVGZ1bCBkYXRhc3RvcmUKKyogYGZhbmN5Y29tcGxldGVyIDxodHRwOi8vYml0YnVj
a2V0Lm9yZy9hbnRvY3VuaS9mYW5jeWNvbXBsZXRlci9zcmM+YF8gZm9yIGNvbG9yZnVsIHRhYi1j
b21wbGV0aW9uCisqIGBQYWx1ZGlzIDxodHRwOi8vcGFsdWRpcy5leGhlcmJvLm9yZy8+YF8gdG9v
bHMgZm9yIEdlbnRvbyBQYWx1ZGlzIHBhY2thZ2UgbWFuYWdlcgorKiBgR2VyYWxkIDxodHRwOi8v
aGFsZmNvb2tlZC5jb20vY29kZS9nZXJhbGQvPmBfIHNjaGVtYSBjb21wYXJpc29uIHRvb2wKKyog
YGFiamFkIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvYWJqYWQvPmBfIFB5dGhvbiBBUEkgZm9y
IEZvcm1hbGl6ZWQgU2NvcmUgY29udHJvbAorKiBgYnUgPGh0dHA6Ly9wYWNrYWdlcy5weXRob24u
b3JnL2J1Lz5gXyBhIG1pY3Jvc2NvcGljIGJ1aWxkIHN5c3RlbQorKiBga2F0Y3AgPGh0dHBzOi8v
Yml0YnVja2V0Lm9yZy9ob2RnZXN0YXIva2F0Y3A+YF8gVGVsZXNjb3BlIGNvbW11bmljYXRpb24g
cHJvdG9jb2wgb3ZlciBUd2lzdGVkCisqIGBrc3MgcGx1Z2luIHRpbWVyIDxodHRwOi8vcHlwaS5w
eXRob24ub3JnL3B5cGkva3NzLnBsdWdpbi50aW1lcj5gXworKiBgcHl1ZGV2IDxodHRwczovL3B5
dWRldi5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdGVzdHMvcGx1Z2lucy5odG1sPmBfIGEgcHVy
ZSBQeXRob24gYmluZGluZyB0byB0aGUgTGludXggbGlicmFyeSBsaWJ1ZGV2CisqIGBweXRlc3Qt
bG9jYWxzZXJ2ZXIgPGh0dHBzOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5dGVzdC1sb2Nh
bHNlcnZlci8+YF8gYSBwbHVnaW4gZm9yIHB5dGVzdCB0aGF0IHByb3ZpZGVzIGFuIGh0dHBzZXJ2
ZXIgYW5kIHNtdHBzZXJ2ZXIKKyogYHB5dGVzdC1tb25rZXlwbHVzIDxodHRwOi8vcHlwaS5weXRo
b24ub3JnL3B5cGkvcHl0ZXN0LW1vbmtleXBsdXMvPmBfIGEgcGx1Z2luIHRoYXQgZXh0ZW5kcyBt
b25rZXlwYXRjaAorCitUaGVzZSBwcm9qZWN0cyBoZWxwIGludGVncmF0ZSBgYHB5dGVzdGBgIGlu
dG8gb3RoZXIgUHl0aG9uIGZyYW1ld29ya3M6CisKKyogYHB5dGVzdC1kamFuZ28gPGh0dHA6Ly9w
eXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtZGphbmdvLz5gXyBmb3IgRGphbmdvCisqIGB6b3Bl
LnB5dGVzdCA8aHR0cDovL3BhY2thZ2VzLnB5dGhvbi5vcmcvem9wZS5weXRlc3QvPmBfIGZvciBa
b3BlIGFuZCBHcm9rCisqIGBweXRlc3RfZ2FlIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkv
cHl0ZXN0X2dhZS8wLjIuMT5gXyBmb3IgR29vZ2xlIEFwcCBFbmdpbmUKKyogVGhlcmUgaXMgYHNv
bWUgd29yayA8aHR0cHM6Ly9naXRodWIuY29tL0tvdHRpL0tvdHRpL2Jsb2IvbWFzdGVyL2tvdHRp
L3Rlc3RpbmcucHk+YF8gdW5kZXJ3YXkgZm9yIEtvdHRpLCBhIENNUyBidWlsdCBpbiBQeXJhbWlk
L1B5bG9ucworCisKK1NvbWUgb3JnYW5pc2F0aW9ucyB1c2luZyBweXRlc3QKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyogYFNxdWFyZSBLaWxvbWV0cmUgQXJyYXksIENh
cGUgVG93biA8aHR0cDovL3NrYS5hYy56YS8+YF8KKyogYFNvbWUgTW96aWxsYSBRQSBwZW9wbGUg
PGh0dHA6Ly93d3cudGhlYXV0b21hdGVkdGVzdGVyLmNvLnVrL2Jsb2cvMjAxMS9weXRlc3RfYW5k
X3hkaXN0X3BsdWdpbi5odG1sPmBfIHVzZSBweXRlc3QgdG8gZGlzdHJpYnV0ZSB0aGVpciBTZWxl
bml1bSB0ZXN0cworKiBgVGFuZGJlcmcgPGh0dHA6Ly93d3cudGFuZGJlcmcuY29tLz5gXworKiBg
U2hvb3RxIDxodHRwOi8vd2ViLnNob290cS5jb20vPmBfCisqIGBTdHVwcyBkZXBhcnRtZW50IG9m
IEhlaW5yaWNoIEhlaW5lIFVuaXZlcnNpdHkgRHVlc3NlbGRvcmYgPGh0dHA6Ly93d3cuc3R1cHMu
dW5pLWR1ZXNzZWxkb3JmLmRlL3Byb2plY3RzLnBocD5gXworKiBgY2VsbHpvbWUgPGh0dHA6Ly93
d3cuY2VsbHpvbWUuY29tLz5gXworKiBgT3BlbiBFbmQsIEdvdGhlbmJvcmcgPGh0dHA6Ly93d3cu
b3BlbmVuZC5zZT5gXworKiBgTGFib3JhdG9yeSBvZiBCaW9pbmZvcm1hdGljcywgV2Fyc2F3IDxo
dHRwOi8vZ2VuZXNpbGljby5wbC8+YF8KKyogYG1lcmxpbnV4LCBHZXJtYW55IDxodHRwOi8vbWVy
bGludXguZXU+YF8KKyogYEVTU1MsIEJyYXppbCA8aHR0cDovL3d3dy5lc3NzLmNvbS5icj5gXwor
KiBtYW55IG1vcmUgLi4uIChwbGVhc2UgYmUgc28ga2luZCB0byBzZW5kIGEgbm90ZSB2aWEgOnJl
ZjpgY29udGFjdGApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvcG9zYWxzL3Bh
cmFtZXRyaXplX3dpdGhfZml4dHVyZXMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fs
cy9wYXJhbWV0cml6ZV93aXRoX2ZpeHR1cmVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDYwMzJhYTQ3MTNl
OTE2MzljNTE1Zjc3ZGMwMGVkZGU1NGRiYTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Byb3Bvc2Fscy9wYXJhbWV0cml6ZV93aXRoX2ZpeHR1cmVzLnJzdApAQCAtMCww
ICsxLDE2MCBAQAorOm9ycGhhbjoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KK1BST1BPU0FMOiBQYXJhbWV0cml6ZSB3aXRoIGZpeHR1cmVzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCisuLiB3YXJuaW5nOjoKKworICAgIFRoaXMgZG9jdW1lbnQg
b3V0bGluZXMgYSBwcm9wb3NhbCBhcm91bmQgdXNpbmcgZml4dHVyZXMgYXMgaW5wdXQKKyAgICBv
ZiBwYXJhbWV0cml6ZWQgdGVzdHMgb3IgZml4dHVyZXMuCisKK1Byb2JsZW0KKy0tLS0tLS0KKwor
QXMgYSB1c2VyIEkgaGF2ZSBmdW5jdGlvbmFsIHRlc3RzIHRoYXQgSSB3b3VsZCBsaWtlIHRvIHJ1
biBhZ2FpbnN0IHZhcmlvdXMKK3NjZW5hcmlvcy4KKworSW4gdGhpcyBwYXJ0aWN1bGFyIGV4YW1w
bGUgd2Ugd2FudCB0byBnZW5lcmF0ZSBhIG5ldyBwcm9qZWN0IGJhc2VkIG9uIGEKK2Nvb2tpZWN1
dHRlciB0ZW1wbGF0ZS4gV2Ugd2FudCB0byB0ZXN0IGRlZmF1bHQgdmFsdWVzIGJ1dCBhbHNvIGRh
dGEgdGhhdAorZW11bGF0ZXMgdXNlciBpbnB1dC4KKworLSB1c2UgZGVmYXVsdCB2YWx1ZXMKKwor
LSBlbXVsYXRlIHVzZXIgaW5wdXQKKworICAtIHNwZWNpZnkgJ2F1dGhvcicKKworICAtIHNwZWNp
ZnkgJ3Byb2plY3Rfc2x1ZycKKworICAtIHNwZWNpZnkgJ2F1dGhvcicgYW5kICdwcm9qZWN0X3Ns
dWcnCisKK1RoaXMgaXMgaG93IGEgZnVuY3Rpb25hbCB0ZXN0IGNvdWxkIGxvb2sgbGlrZToKKwor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgZGVmIGRlZmF1bHRfY29udGV4dCgpOgorICAgICAgICByZXR1cm4geydl
eHRyYV9jb250ZXh0Jzoge319CisKKworICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WworICAg
ICAgICB7J2F1dGhvcic6ICdhbGljZSd9LAorICAgICAgICB7J3Byb2plY3Rfc2x1Zyc6ICdoZWxs
b3dvcmxkJ30sCisgICAgICAgIHsnYXV0aG9yJzogJ2JvYicsICdwcm9qZWN0X3NsdWcnOiAnZm9v
YmFyJ30sCisgICAgXSkKKyAgICBkZWYgZXh0cmFfY29udGV4dChyZXF1ZXN0KToKKyAgICAgICAg
cmV0dXJuIHsnZXh0cmFfY29udGV4dCc6IHJlcXVlc3QucGFyYW19CisKKworICAgIEBweXRlc3Qu
Zml4dHVyZShwYXJhbXM9WydkZWZhdWx0JywgJ2V4dHJhJ10pCisgICAgZGVmIGNvbnRleHQocmVx
dWVzdCk6CisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gJ2RlZmF1bHQnOgorICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCdkZWZhdWx0X2NvbnRleHQnKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCdl
eHRyYV9jb250ZXh0JykKKworCisgICAgZGVmIHRlc3RfZ2VuZXJhdGVfcHJvamVjdChjb29raWVz
LCBjb250ZXh0KToKKyAgICAgICAgIiIiQ2FsbCB0aGUgY29va2llY3V0dGVyIEFQSSB0byBnZW5l
cmF0ZSBhIG5ldyBwcm9qZWN0IGZyb20gYQorICAgICAgICB0ZW1wbGF0ZS4KKyAgICAgICAgIiIi
CisgICAgICAgIHJlc3VsdCA9IGNvb2tpZXMuYmFrZShleHRyYV9jb250ZXh0PWNvbnRleHQpCisK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5leGl0X2NvZGUgPT0gMAorICAgICAgICBhc3NlcnQgcmVz
dWx0LmV4Y2VwdGlvbiBpcyBOb25lCisgICAgICAgIGFzc2VydCByZXN1bHQucHJvamVjdC5pc2Rp
cigpCisKKworSXNzdWVzCistLS0tLS0KKworKiBCeSB1c2luZyBgYHJlcXVlc3QuZ2V0ZnVuY2Fy
Z3ZhbHVlKClgYCB3ZSByZWx5IG9uIGFjdHVhbCBmaXh0dXJlIGZ1bmN0aW9uCisgIGV4ZWN1dGlv
biB0byBrbm93IHdoYXQgZml4dHVyZXMgYXJlIGludm9sdmVkLCBkdWUgdG8gaXQncyBkeW5hbWlj
IG5hdHVyZQorKiBNb3JlIGltcG9ydGFudGx5LCBgYHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKClg
YCBjYW5ub3QgYmUgY29tYmluZWQgd2l0aAorICBwYXJhbWV0cml6ZWQgZml4dHVyZXMsIHN1Y2gg
YXMgYGBleHRyYV9jb250ZXh0YGAKKyogVGhpcyBpcyB2ZXJ5IGluY29udmVuaWVudCBpZiB5b3Ug
d2lzaCB0byBleHRlbmQgYW4gZXhpc3RpbmcgdGVzdCBzdWl0ZSBieQorICBjZXJ0YWluIHBhcmFt
ZXRlcnMgZm9yIGZpeHR1cmVzIHRoYXQgYXJlIGFscmVhZHkgdXNlZCBieSB0ZXN0cworCitweXRl
c3QgdmVyc2lvbiAzLjAgcmVwb3J0cyBhbiBlcnJvciBpZiB5b3UgdHJ5IHRvIHJ1biBhYm92ZSBj
b2RlOjoKKworICAgIEZhaWxlZDogVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0
ZXIgZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQKKyAgICB0ZXN0LgorCisgICAgUmVxdWVzdGVkIGZp
eHR1cmUgJ2V4dHJhX2NvbnRleHQnCisKKworUHJvcG9zZWQgc29sdXRpb24KKy0tLS0tLS0tLS0t
LS0tLS0tCisKK0EgbmV3IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgaW4gbW9kdWxlcyBjYW4g
YmUgdXNlZCB0byBkeW5hbWljYWxseSBkZWZpbmUKK2ZpeHR1cmVzIGZyb20gZXhpc3Rpbmcgb25l
cy4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcHl0ZXN0LmRlZmluZV9jb21iaW5l
ZF9maXh0dXJlKAorICAgICAgICBuYW1lPSdjb250ZXh0JywKKyAgICAgICAgZml4dHVyZXM9Wydk
ZWZhdWx0X2NvbnRleHQnLCAnZXh0cmFfY29udGV4dCddLAorICAgICkKKworVGhlIG5ldyBmaXh0
dXJlIGBgY29udGV4dGBgIGluaGVyaXRzIHRoZSBzY29wZSBmcm9tIHRoZSB1c2VkIGZpeHR1cmVz
IGFuZCB5aWVsZAordGhlIGZvbGxvd2luZyB2YWx1ZXMuCisKKy0gYGB7fWBgCisKKy0gYGB7J2F1
dGhvcic6ICdhbGljZSd9YGAKKworLSBgYHsncHJvamVjdF9zbHVnJzogJ2hlbGxvd29ybGQnfWBg
CisKKy0gYGB7J2F1dGhvcic6ICdib2InLCAncHJvamVjdF9zbHVnJzogJ2Zvb2Jhcid9YGAKKwor
QWx0ZXJuYXRpdmUgYXBwcm9hY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0EgbmV3IGhlbHBl
ciBmdW5jdGlvbiBuYW1lZCBgYGZpeHR1cmVfcmVxdWVzdGBgIHdvdWxkIHRlbGwgcHl0ZXN0IHRv
IHlpZWxkCithbGwgcGFyYW1ldGVycyBtYXJrZWQgYXMgYSBmaXh0dXJlLgorCisuLiBub3RlOjoK
KworICAgIFRoZSBgcHl0ZXN0LWxhenktZml4dHVyZSA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcv
cHlwaS9weXRlc3QtbGF6eS1maXh0dXJlPmBfIHBsdWdpbiBpbXBsZW1lbnRzIGEgdmVyeQorICAg
IHNpbWlsYXIgc29sdXRpb24gdG8gdGhlIHByb3Bvc2FsIGJlbG93LCBtYWtlIHN1cmUgdG8gY2hl
Y2sgaXQgb3V0LgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0LmZpeHR1
cmUocGFyYW1zPVsKKyAgICAgICAgcHl0ZXN0LmZpeHR1cmVfcmVxdWVzdCgnZGVmYXVsdF9jb250
ZXh0JyksCisgICAgICAgIHB5dGVzdC5maXh0dXJlX3JlcXVlc3QoJ2V4dHJhX2NvbnRleHQnKSwK
KyAgICBdKQorICAgIGRlZiBjb250ZXh0KHJlcXVlc3QpOgorICAgICAgICAiIiJSZXR1cm5zIGFs
bCB2YWx1ZXMgZm9yIGBgZGVmYXVsdF9jb250ZXh0YGAsIG9uZS1ieS1vbmUgYmVmb3JlIGl0Cisg
ICAgICAgIGRvZXMgdGhlIHNhbWUgZm9yIGBgZXh0cmFfY29udGV4dGBgLgorCisgICAgICAgIHJl
cXVlc3QucGFyYW06CisgICAgICAgICAgICAtIHt9CisgICAgICAgICAgICAtIHsnYXV0aG9yJzog
J2FsaWNlJ30KKyAgICAgICAgICAgIC0geydwcm9qZWN0X3NsdWcnOiAnaGVsbG93b3JsZCd9Cisg
ICAgICAgICAgICAtIHsnYXV0aG9yJzogJ2JvYicsICdwcm9qZWN0X3NsdWcnOiAnZm9vYmFyJ30K
KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKK1RoZSBzYW1lIGhl
bHBlciBjYW4gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBgcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemVgYC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoCisgICAgICAgICdjb250ZXh0LCBleHBlY3RlZF9yZXNwb25zZV9jb2RlJywK
KyAgICAgICAgWworICAgICAgICAgICAgKHB5dGVzdC5maXh0dXJlX3JlcXVlc3QoJ2RlZmF1bHRf
Y29udGV4dCcpLCAwKSwKKyAgICAgICAgICAgIChweXRlc3QuZml4dHVyZV9yZXF1ZXN0KCdleHRy
YV9jb250ZXh0JyksIDApLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9nZW5lcmF0
ZV9wcm9qZWN0KGNvb2tpZXMsIGNvbnRleHQsIGV4aXRfY29kZSk6CisgICAgICAgICIiIkNhbGwg
dGhlIGNvb2tpZWN1dHRlciBBUEkgdG8gZ2VuZXJhdGUgYSBuZXcgcHJvamVjdCBmcm9tIGEKKyAg
ICAgICAgdGVtcGxhdGUuCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBjb29raWVzLmJh
a2UoZXh0cmFfY29udGV4dD1jb250ZXh0KQorCisgICAgICAgIGFzc2VydCByZXN1bHQuZXhpdF9j
b2RlID09IGV4aXRfY29kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fs
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmQxYmNiMWI4YmYwYmIzYWVhNjBiYWRlNmMyYzUwZGE1ZDM1NTU3
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3By
b3Bvc2Fscy9wYXJhbWV0cml6ZV93aXRoX2ZpeHR1cmVzLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3B5dGVzdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0ZXN0LmluaQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NjA0MzYwNTYxY2MyYWU5NGJjMTE3MTQwYjQ0OWY3NjYyOTI3NmUxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGVzdC5pbmkKQEAgLTAsMCArMSwy
IEBACitbcHl0ZXN0XQorIyBqdXN0IGRlZmluZWQgdG8gcHJldmVudCB0aGUgcm9vdCBsZXZlbCB0
b3guaW5pIGZyb20ga2lja2luZyBpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5
dGhvbnBhdGgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGhvbnBhdGgucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI2NDc0Mjc2ODg3ZGJjYjdhMWE0ZTcyMDFjYmNlMDgxNzRkNTRmNGEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0aG9ucGF0aC5yc3QKQEAgLTAsMCArMSw3NiBA
QAorLi4gX3B5dGhvbnBhdGg6CisKK3B5dGVzdCBpbXBvcnQgbWVjaGFuaXNtcyBhbmQgYGBzeXMu
cGF0aGBgL2BgUFlUSE9OUEFUSGBgCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitIZXJlJ3MgYSBsaXN0IG9mIHNjZW5hcmlvcyB3aGVy
ZSBweXRlc3QgbWF5IG5lZWQgdG8gY2hhbmdlIGBgc3lzLnBhdGhgYCBpbiBvcmRlcgordG8gaW1w
b3J0IHRlc3QgbW9kdWxlcyBvciBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMuCisKK1Rlc3QgbW9kdWxl
cyAvIGBgY29uZnRlc3QucHlgYCBmaWxlcyBpbnNpZGUgcGFja2FnZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ29uc2lkZXIgdGhpcyBm
aWxlIGFuZCBkaXJlY3RvcnkgbGF5b3V0OjoKKworICAgIHJvb3QvCisgICAgfC0gZm9vLworICAg
ICAgIHwtIF9faW5pdF9fLnB5CisgICAgICAgfC0gY29uZnRlc3QucHkKKyAgICAgICB8LSBiYXIv
CisgICAgICAgICAgfC0gX19pbml0X18ucHkKKyAgICAgICAgICB8LSB0ZXN0cy8KKyAgICAgICAg
ICAgICB8LSBfX2luaXRfXy5weQorICAgICAgICAgICAgIHwtIHRlc3RfZm9vLnB5CisKKworV2hl
biBleGVjdXRpbmc6OgorCisgICAgcHl0ZXN0IHJvb3QvCisKKworCitweXRlc3Qgd2lsbCBmaW5k
IGBgZm9vL2Jhci90ZXN0cy90ZXN0X2Zvby5weWBgIGFuZCByZWFsaXplIGl0IGlzIHBhcnQgb2Yg
YSBwYWNrYWdlIGdpdmVuIHRoYXQKK3RoZXJlJ3MgYW4gYGBfX2luaXRfXy5weWBgIGZpbGUgaW4g
dGhlIHNhbWUgZm9sZGVyLiBJdCB3aWxsIHRoZW4gc2VhcmNoIHVwd2FyZHMgdW50aWwgaXQgY2Fu
IGZpbmQgdGhlCitsYXN0IGZvbGRlciB3aGljaCBzdGlsbCBjb250YWlucyBhbiBgYF9faW5pdF9f
LnB5YGAgZmlsZSBpbiBvcmRlciB0byBmaW5kIHRoZSBwYWNrYWdlICpyb290KiAoaW4KK3RoaXMg
Y2FzZSBgYGZvby9gYCkuIFRvIGxvYWQgdGhlIG1vZHVsZSwgaXQgd2lsbCBpbnNlcnQgYGByb290
L2BgICB0byB0aGUgZnJvbnQgb2YKK2Bgc3lzLnBhdGhgYCAoaWYgbm90IHRoZXJlIGFscmVhZHkp
IGluIG9yZGVyIHRvIGxvYWQKK2BgdGVzdF9mb28ucHlgYCBhcyB0aGUgKm1vZHVsZSogYGBmb28u
YmFyLnRlc3RzLnRlc3RfZm9vYGAuCisKK1RoZSBzYW1lIGxvZ2ljIGFwcGxpZXMgdG8gdGhlIGBg
Y29uZnRlc3QucHlgYCBmaWxlOiBpdCB3aWxsIGJlIGltcG9ydGVkIGFzIGBgZm9vLmNvbmZ0ZXN0
YGAgbW9kdWxlLgorCitQcmVzZXJ2aW5nIHRoZSBmdWxsIHBhY2thZ2UgbmFtZSBpcyBpbXBvcnRh
bnQgd2hlbiB0ZXN0cyBsaXZlIGluIGEgcGFja2FnZSB0byBhdm9pZCBwcm9ibGVtcworYW5kIGFs
bG93IHRlc3QgbW9kdWxlcyB0byBoYXZlIGR1cGxpY2F0ZWQgbmFtZXMuIFRoaXMgaXMgYWxzbyBk
aXNjdXNzZWQgaW4gZGV0YWlscyBpbgorOnJlZjpgdGVzdCBkaXNjb3ZlcnlgLgorCitTdGFuZGFs
b25lIHRlc3QgbW9kdWxlcyAvIGBgY29uZnRlc3QucHlgYCBmaWxlcworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ29uc2lkZXIgdGhpcyBmaWxlIGFu
ZCBkaXJlY3RvcnkgbGF5b3V0OjoKKworICAgIHJvb3QvCisgICAgfC0gZm9vLworICAgICAgIHwt
IGNvbmZ0ZXN0LnB5CisgICAgICAgfC0gYmFyLworICAgICAgICAgIHwtIHRlc3RzLworICAgICAg
ICAgICAgIHwtIHRlc3RfZm9vLnB5CisKKworV2hlbiBleGVjdXRpbmc6OgorCisgICAgcHl0ZXN0
IHJvb3QvCisKK3B5dGVzdCB3aWxsIGZpbmQgYGBmb28vYmFyL3Rlc3RzL3Rlc3RfZm9vLnB5YGAg
YW5kIHJlYWxpemUgaXQgaXMgTk9UIHBhcnQgb2YgYSBwYWNrYWdlIGdpdmVuIHRoYXQKK3RoZXJl
J3Mgbm8gYGBfX2luaXRfXy5weWBgIGZpbGUgaW4gdGhlIHNhbWUgZm9sZGVyLiBJdCB3aWxsIHRo
ZW4gYWRkIGBgcm9vdC9mb28vYmFyL3Rlc3RzYGAgdG8KK2Bgc3lzLnBhdGhgYCBpbiBvcmRlciB0
byBpbXBvcnQgYGB0ZXN0X2Zvby5weWBgIGFzIHRoZSAqbW9kdWxlKiBgYHRlc3RfZm9vYGAuIFRo
ZSBzYW1lIGlzIGRvbmUKK3dpdGggdGhlIGBgY29uZnRlc3QucHlgYCBmaWxlIGJ5IGFkZGluZyBg
YHJvb3QvZm9vYGAgdG8gYGBzeXMucGF0aGBgIHRvIGltcG9ydCBpdCBhcyBgYGNvbmZ0ZXN0YGAu
CisKK0ZvciB0aGlzIHJlYXNvbiB0aGlzIGxheW91dCBjYW5ub3QgaGF2ZSB0ZXN0IG1vZHVsZXMg
d2l0aCB0aGUgc2FtZSBuYW1lLCBhcyB0aGV5IGFsbCB3aWxsIGJlCitpbXBvcnRlZCBpbiB0aGUg
Z2xvYmFsIGltcG9ydCBuYW1lc3BhY2UuCisKK1RoaXMgaXMgYWxzbyBkaXNjdXNzZWQgaW4gZGV0
YWlscyBpbiA6cmVmOmB0ZXN0IGRpc2NvdmVyeWAuCisKK0ludm9raW5nIGBgcHl0ZXN0YGAgdmVy
c3VzIGBgcHl0aG9uIC1tIHB5dGVzdGBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitSdW5uaW5nIHB5dGVzdCB3aXRoIGBgcHl0aG9uIC1tIHB5dGVz
dCBbLi4uXWBgIGluc3RlYWQgb2YgYGBweXRlc3QgWy4uLl1gYCB5aWVsZHMgbmVhcmx5CitlcXVp
dmFsZW50IGJlaGF2aW91ciwgZXhjZXB0IHRoYXQgdGhlIGZvcm1lciBjYWxsIHdpbGwgYWRkIHRo
ZSBjdXJyZW50IGRpcmVjdG9yeSB0byBgYHN5cy5wYXRoYGAuCitTZWUgYWxzbyA6cmVmOmBjbWRs
aW5lYC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZWN3YXJuLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9yZWN3YXJuLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTNhZjBkNDUwZWQzYzcwMTlh
YzJjYzZhOWZlYzczYWY5YTFjNDk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3JlY3dhcm4ucnN0CkBAIC0wLDAgKzEsMyBAQAorOm9ycGhhbjoKKworVGhpcyBwYWdlIGhh
cyBiZWVuIG1vdmVkLCBwbGVhc2Ugc2VlIDpyZWY6YGFzc2VydHdhcm5pbmdzYC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiYjYwYTgxMWZmN2IxYWJhMGU1ZTM0
YmM1YjFlNTkxNjFiODA2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9y
ZXF1aXJlbWVudHMudHh0CkBAIC0wLDAgKzEsMyBAQAorIyBwaW5uaW5nIHNwaGlueCB0byAxLjQu
KiBkdWUgdG8gc2VhcmNoIGlzc3VlcyB3aXRoIHJ0ZDoKKyMgaHR0cHM6Ly9naXRodWIuY29tL3J0
ZmQvcmVhZHRoZWRvY3Mtc3BoaW54LWV4dC9pc3N1ZXMvMjUKK3NwaGlueCA9PTEuNC4qCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vc2tpcHBpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3NraXBwaW5nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTAwMTkyOWIyMzc1NWZkZmFmZGFkMmE1MWRk
ZjlkYmY3OWE3OWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3NraXBw
aW5nLnJzdApAQCAtMCwwICsxLDM3OCBAQAorLi4gX2Bza2lwIGFuZCB4ZmFpbGA6CisKKy4uIF9z
a2lwcGluZzoKKworU2tpcCBhbmQgeGZhaWw6IGRlYWxpbmcgd2l0aCB0ZXN0cyB0aGF0IGNhbm5v
dCBzdWNjZWVkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworWW91IGNhbiBtYXJrIHRlc3QgZnVuY3Rpb25zIHRoYXQgY2Fubm90IGJlIHJ1
biBvbiBjZXJ0YWluIHBsYXRmb3Jtcworb3IgdGhhdCB5b3UgZXhwZWN0IHRvIGZhaWwgc28gcHl0
ZXN0IGNhbiBkZWFsIHdpdGggdGhlbSBhY2NvcmRpbmdseSBhbmQKK3ByZXNlbnQgYSBzdW1tYXJ5
IG9mIHRoZSB0ZXN0IHNlc3Npb24sIHdoaWxlIGtlZXBpbmcgdGhlIHRlc3Qgc3VpdGUgKmdyZWVu
Ki4KKworQSAqKnNraXAqKiBtZWFucyB0aGF0IHlvdSBleHBlY3QgeW91ciB0ZXN0IHRvIHBhc3Mg
b25seSBpZiBzb21lIGNvbmRpdGlvbnMgYXJlIG1ldCwKK290aGVyd2lzZSBweXRlc3Qgc2hvdWxk
IHNraXAgcnVubmluZyB0aGUgdGVzdCBhbHRvZ2V0aGVyLiBDb21tb24gZXhhbXBsZXMgYXJlIHNr
aXBwaW5nCit3aW5kb3dzLW9ubHkgdGVzdHMgb24gbm9uLXdpbmRvd3MgcGxhdGZvcm1zLCBvciBz
a2lwcGluZyB0ZXN0cyB0aGF0IGRlcGVuZCBvbiBhbiBleHRlcm5hbAorcmVzb3VyY2Ugd2hpY2gg
aXMgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50IChmb3IgZXhhbXBsZSBhIGRhdGFiYXNlKS4K
KworQSAqKnhmYWlsKiogbWVhbnMgdGhhdCB5b3UgZXhwZWN0IGEgdGVzdCB0byBmYWlsIGZvciBz
b21lIHJlYXNvbi4KK0EgY29tbW9uIGV4YW1wbGUgaXMgYSB0ZXN0IGZvciBhIGZlYXR1cmUgbm90
IHlldCBpbXBsZW1lbnRlZCwgb3IgYSBidWcgbm90IHlldCBmaXhlZC4KK1doZW4gYSB0ZXN0IHBh
c3NlcyBkZXNwaXRlIGJlaW5nIGV4cGVjdGVkIHRvIGZhaWwgKG1hcmtlZCB3aXRoIGBgcHl0ZXN0
Lm1hcmsueGZhaWxgYCksCitpdCdzIGFuICoqeHBhc3MqKiBhbmQgd2lsbCBiZSByZXBvcnRlZCBp
biB0aGUgdGVzdCBzdW1tYXJ5LgorCitgYHB5dGVzdGBgIGNvdW50cyBhbmQgbGlzdHMgKnNraXAq
IGFuZCAqeGZhaWwqIHRlc3RzIHNlcGFyYXRlbHkuIERldGFpbGVkCitpbmZvcm1hdGlvbiBhYm91
dCBza2lwcGVkL3hmYWlsZWQgdGVzdHMgaXMgbm90IHNob3duIGJ5IGRlZmF1bHQgdG8gYXZvaWQK
K2NsdXR0ZXJpbmcgdGhlIG91dHB1dC4gIFlvdSBjYW4gdXNlIHRoZSBgYC1yYGAgb3B0aW9uIHRv
IHNlZSBkZXRhaWxzCitjb3JyZXNwb25kaW5nIHRvIHRoZSAic2hvcnQiIGxldHRlcnMgc2hvd24g
aW4gdGhlIHRlc3QgcHJvZ3Jlc3M6OgorCisgICAgcHl0ZXN0IC1yeFhzICAjIHNob3cgZXh0cmEg
aW5mbyBvbiB4ZmFpbGVkLCB4cGFzc2VkLCBhbmQgc2tpcHBlZCB0ZXN0cworCitNb3JlIGRldGFp
bHMgb24gdGhlIGBgLXJgYCBvcHRpb24gY2FuIGJlIGZvdW5kIGJ5IHJ1bm5pbmcgYGBweXRlc3Qg
LWhgYC4KKworKFNlZSA6cmVmOmBob3cgdG8gY2hhbmdlIGNvbW1hbmQgbGluZSBvcHRpb25zIGRl
ZmF1bHRzYCkKKworLi4gX3NraXBpZjoKKy4uIF9za2lwOgorLi4gX2Bjb25kaXRpb24gYm9vbGVh
bnNgOgorCitTa2lwcGluZyB0ZXN0IGZ1bmN0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gdmVyc2lvbmFkZGVkOjogMi45CisKK1RoZSBzaW1wbGVzdCB3YXkgdG8gc2tpcCBhIHRl
c3QgZnVuY3Rpb24gaXMgdG8gbWFyayBpdCB3aXRoIHRoZSBgYHNraXBgYCBkZWNvcmF0b3IKK3do
aWNoIG1heSBiZSBwYXNzZWQgYW4gb3B0aW9uYWwgYGByZWFzb25gYDoKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSJubyB3YXkgb2YgY3Vy
cmVudGx5IHRlc3RpbmcgdGhpcyIpCisgICAgZGVmIHRlc3RfdGhlX3Vua25vd24oKToKKyAgICAg
ICAgLi4uCisKKworQWx0ZXJuYXRpdmVseSwgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBza2lwIGlt
cGVyYXRpdmVseSBkdXJpbmcgdGVzdCBleGVjdXRpb24gb3Igc2V0dXAKK2J5IGNhbGxpbmcgdGhl
IGBgcHl0ZXN0LnNraXAocmVhc29uKWBgIGZ1bmN0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICBpZiBub3QgdmFsaWRfY29u
ZmlnKCk6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgidW5zdXBwb3J0ZWQgY29uZmlndXJhdGlv
biIpCisKK0l0IGlzIGFsc28gcG9zc2libGUgdG8gc2tpcCB0aGUgd2hvbGUgbW9kdWxlIHVzaW5n
CitgYHB5dGVzdC5za2lwKHJlYXNvbiwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpYGAgYXQgdGhl
IG1vZHVsZSBsZXZlbDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgaWYgbm90IHB5dGVzdC5jb25maWcuZ2V0b3B0aW9uKCItLWN1c3RvbS1mbGFn
Iik6CisgICAgICAgIHB5dGVzdC5za2lwKCItLWN1c3RvbS1mbGFnIGlzIG1pc3NpbmcsIHNraXBw
aW5nIHRlc3RzIiwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCisKK1RoZSBpbXBlcmF0aXZlIG1l
dGhvZCBpcyB1c2VmdWwgd2hlbiBpdCBpcyBub3QgcG9zc2libGUgdG8gZXZhbHVhdGUgdGhlIHNr
aXAgY29uZGl0aW9uCitkdXJpbmcgaW1wb3J0IHRpbWUuCisKK2Bgc2tpcGlmYGAKK35+fn5+fn5+
fn4KKworLi4gdmVyc2lvbmFkZGVkOjogMi4wCisKK0lmIHlvdSB3aXNoIHRvIHNraXAgc29tZXRo
aW5nIGNvbmRpdGlvbmFsbHkgdGhlbiB5b3UgY2FuIHVzZSBgYHNraXBpZmBgIGluc3RlYWQuCitI
ZXJlIGlzIGFuIGV4YW1wbGUgb2YgbWFya2luZyBhIHRlc3QgZnVuY3Rpb24gdG8gYmUgc2tpcHBl
ZAord2hlbiBydW4gb24gYSBQeXRob24zLjYgaW50ZXJwcmV0ZXI6OgorCisgICAgaW1wb3J0IHN5
cworICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgzLDYpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJyZXF1aXJlcyBweXRob24zLjYiKQorICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgIC4uLgorCitJZiB0aGUgY29uZGl0aW9uIGV2YWx1
YXRlcyB0byBgYFRydWVgYCBkdXJpbmcgY29sbGVjdGlvbiwgdGhlIHRlc3QgZnVuY3Rpb24gd2ls
bCBiZSBza2lwcGVkLAord2l0aCB0aGUgc3BlY2lmaWVkIHJlYXNvbiBhcHBlYXJpbmcgaW4gdGhl
IHN1bW1hcnkgd2hlbiB1c2luZyBgYC1yc2BgLgorCitZb3UgY2FuIHNoYXJlIGBgc2tpcGlmYGAg
bWFya2VycyBiZXR3ZWVuIG1vZHVsZXMuICBDb25zaWRlciB0aGlzIHRlc3QgbW9kdWxlOjoKKwor
ICAgICMgY29udGVudCBvZiB0ZXN0X215bW9kdWxlLnB5CisgICAgaW1wb3J0IG15bW9kdWxlCisg
ICAgbWludmVyc2lvbiA9IHB5dGVzdC5tYXJrLnNraXBpZihteW1vZHVsZS5fX3ZlcnNpb25pbmZv
X18gPCAoMSwxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
YXQgbGVhc3QgbXltb2R1bGUtMS4xIHJlcXVpcmVkIikKKyAgICBAbWludmVyc2lvbgorICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgIC4uLgorCitZb3UgY2FuIGltcG9ydCB0aGUgbWFy
a2VyIGFuZCByZXVzZSBpdCBpbiBhbm90aGVyIHRlc3QgbW9kdWxlOjoKKworICAgICMgdGVzdF9t
eW90aGVybW9kdWxlLnB5CisgICAgZnJvbSB0ZXN0X215bW9kdWxlIGltcG9ydCBtaW52ZXJzaW9u
CisKKyAgICBAbWludmVyc2lvbgorICAgIGRlZiB0ZXN0X2Fub3RoZXJmdW5jdGlvbigpOgorICAg
ICAgICAuLi4KKworRm9yIGxhcmdlciB0ZXN0IHN1aXRlcyBpdCdzIHVzdWFsbHkgYSBnb29kIGlk
ZWEgdG8gaGF2ZSBvbmUgZmlsZQord2hlcmUgeW91IGRlZmluZSB0aGUgbWFya2VycyB3aGljaCB5
b3UgdGhlbiBjb25zaXN0ZW50bHkgYXBwbHkKK3Rocm91Z2hvdXQgeW91ciB0ZXN0IHN1aXRlLgor
CitBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSA6cmVmOmBjb25kaXRpb24gc3RyaW5ncworPHN0
cmluZyBjb25kaXRpb25zPmAgaW5zdGVhZCBvZiBib29sZWFucywgYnV0IHRoZXkgY2FuJ3QgYmUg
c2hhcmVkIGJldHdlZW4gbW9kdWxlcyBlYXNpbHkKK3NvIHRoZXkgYXJlIHN1cHBvcnRlZCBtYWlu
bHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KKworCitTa2lwIGFsbCB0ZXN0
IGZ1bmN0aW9ucyBvZiBhIGNsYXNzIG9yIG1vZHVsZQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworWW91IGNhbiB1c2UgdGhlIGBgc2tpcGlmYGAgbWFya2Vy
IChhcyBhbnkgb3RoZXIgbWFya2VyKSBvbiBjbGFzc2VzOjoKKworICAgIEBweXRlc3QubWFyay5z
a2lwaWYoc3lzLnBsYXRmb3JtID09ICd3aW4zMicsCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWFzb249ImRvZXMgbm90IHJ1biBvbiB3aW5kb3dzIikKKyAgICBjbGFzcyBUZXN0UG9zaXhDYWxs
cyhvYmplY3QpOgorCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICAg
ICAgIndpbGwgbm90IGJlIHNldHVwIG9yIHJ1biB1bmRlciAnd2luMzInIHBsYXRmb3JtIgorCitJ
ZiB0aGUgY29uZGl0aW9uIGlzIGBgVHJ1ZWBgLCB0aGlzIG1hcmtlciB3aWxsIHByb2R1Y2UgYSBz
a2lwIHJlc3VsdCBmb3IKK2VhY2ggb2YgdGhlIHRlc3QgbWV0aG9kcyBvZiB0aGF0IGNsYXNzLgor
CisuLiB3YXJuaW5nOjoKKworICAgVGhlIHVzZSBvZiBgYHNraXBpZmBgIG9uIGNsYXNzZXMgdGhh
dCB1c2UgaW5oZXJpdGFuY2UgaXMgc3Ryb25nbHkKKyAgIGRpc2NvdXJhZ2VkLiBgQSBLbm93biBi
dWcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTY4PmBfCisg
ICBpbiBweXRlc3QncyBtYXJrZXJzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yIGluIHN1
cGVyIGNsYXNzZXMuCisKK0lmIHlvdSB3YW50IHRvIHNraXAgYWxsIHRlc3QgZnVuY3Rpb25zIG9m
IGEgbW9kdWxlLCB5b3UgbWF5IHVzZQordGhlIGBgcHl0ZXN0bWFya2BgIG5hbWUgb24gdGhlIGds
b2JhbCBsZXZlbDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyB0ZXN0X21vZHVs
ZS5weQorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lwaWYoLi4uKQorCitJZiBtdWx0
aXBsZSBgYHNraXBpZmBgIGRlY29yYXRvcnMgYXJlIGFwcGxpZWQgdG8gYSB0ZXN0IGZ1bmN0aW9u
LCBpdAord2lsbCBiZSBza2lwcGVkIGlmIGFueSBvZiB0aGUgc2tpcCBjb25kaXRpb25zIGlzIHRy
dWUuCisKKy4uIF9gd2hvbGUgY2xhc3MtIG9yIG1vZHVsZSBsZXZlbGA6IG1hcmsuaHRtbCNzY29w
ZWQtbWFya2luZworCisKK1NraXBwaW5nIGZpbGVzIG9yIGRpcmVjdG9yaWVzCit+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fgorCitTb21ldGltZXMgeW91IG1heSBuZWVkIHRvIHNraXAgYW4g
ZW50aXJlIGZpbGUgb3IgZGlyZWN0b3J5LCBmb3IgZXhhbXBsZSBpZiB0aGUKK3Rlc3RzIHJlbHkg
b24gUHl0aG9uIHZlcnNpb24tc3BlY2lmaWMgZmVhdHVyZXMgb3IgY29udGFpbiBjb2RlIHRoYXQg
eW91IGRvIG5vdAord2lzaCBweXRlc3QgdG8gcnVuLiBJbiB0aGlzIGNhc2UsIHlvdSBtdXN0IGV4
Y2x1ZGUgdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcworZnJvbSBjb2xsZWN0aW9uLiBSZWZlciB0
byA6cmVmOmBjdXN0b21pemluZy10ZXN0LWNvbGxlY3Rpb25gIGZvciBtb3JlCitpbmZvcm1hdGlv
bi4KKworCitTa2lwcGluZyBvbiBhIG1pc3NpbmcgaW1wb3J0IGRlcGVuZGVuY3kKK35+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitZb3UgY2FuIHVzZSB0aGUgZm9sbG93
aW5nIGhlbHBlciBhdCBtb2R1bGUgbGV2ZWwKK29yIHdpdGhpbiBhIHRlc3Qgb3IgdGVzdCBzZXR1
cCBmdW5jdGlvbjo6CisKKyAgICBkb2N1dGlscyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoImRvY3V0
aWxzIikKKworSWYgYGBkb2N1dGlsc2BgIGNhbm5vdCBiZSBpbXBvcnRlZCBoZXJlLCB0aGlzIHdp
bGwgbGVhZCB0byBhCitza2lwIG91dGNvbWUgb2YgdGhlIHRlc3QuICBZb3UgY2FuIGFsc28gc2tp
cCBiYXNlZCBvbiB0aGUKK3ZlcnNpb24gbnVtYmVyIG9mIGEgbGlicmFyeTo6CisKKyAgICBkb2N1
dGlscyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoImRvY3V0aWxzIiwgbWludmVyc2lvbj0iMC4zIikK
KworVGhlIHZlcnNpb24gd2lsbCBiZSByZWFkIGZyb20gdGhlIHNwZWNpZmllZAorbW9kdWxlJ3Mg
YGBfX3ZlcnNpb25fX2BgIGF0dHJpYnV0ZS4KKworU3VtbWFyeQorfn5+fn5+fgorCitIZXJlJ3Mg
YSBxdWljayBndWlkZSBvbiBob3cgdG8gc2tpcCB0ZXN0cyBpbiBhIG1vZHVsZSBpbiBkaWZmZXJl
bnQgc2l0dWF0aW9uczoKKworMS4gU2tpcCBhbGwgdGVzdHMgaW4gYSBtb2R1bGUgdW5jb25kaXRp
b25hbGx5OgorCisgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBweXRlc3RtYXJr
ID0gcHl0ZXN0Lm1hcmsuc2tpcCgnYWxsIHRlc3RzIHN0aWxsIFdJUCcpCisKKzIuIFNraXAgYWxs
IHRlc3RzIGluIGEgbW9kdWxlIGJhc2VkIG9uIHNvbWUgY29uZGl0aW9uOgorCisgIC4uIGNvZGUt
YmxvY2s6OiBweXRob24KKworICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuc2tpcGlm
KHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInLCAndGVzdHMgZm9yIGxpbnV4IG9ubHknKQorCiszLiBT
a2lwIGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBpZiBzb21lIGltcG9ydCBpcyBtaXNzaW5nOgorCisg
IC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBwZXhwZWN0ID0gcHl0ZXN0LmltcG9y
dG9yc2tpcCgncGV4cGVjdCcpCisKKworLi4gX3hmYWlsOgorCitYRmFpbDogbWFyayB0ZXN0IGZ1
bmN0aW9ucyBhcyBleHBlY3RlZCB0byBmYWlsCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gdXNlIHRoZSBgYHhmYWlsYGAgbWFya2VyIHRv
IGluZGljYXRlIHRoYXQgeW91CitleHBlY3QgYSB0ZXN0IHRvIGZhaWw6OgorCisgICAgQHB5dGVz
dC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgLi4uCisKK1Ro
aXMgdGVzdCB3aWxsIGJlIHJ1biBidXQgbm8gdHJhY2ViYWNrIHdpbGwgYmUgcmVwb3J0ZWQKK3do
ZW4gaXQgZmFpbHMuIEluc3RlYWQgdGVybWluYWwgcmVwb3J0aW5nIHdpbGwgbGlzdCBpdCBpbiB0
aGUKKyJleHBlY3RlZCB0byBmYWlsIiAoYGBYRkFJTGBgKSBvciAidW5leHBlY3RlZGx5IHBhc3Np
bmciIChgYFhQQVNTYGApIHNlY3Rpb25zLgorCitBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFsc28g
bWFyayBhIHRlc3QgYXMgYGBYRkFJTGBgIGZyb20gd2l0aGluIGEgdGVzdCBvciBzZXR1cCBmdW5j
dGlvbgoraW1wZXJhdGl2ZWx5OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYg
dGVzdF9mdW5jdGlvbigpOgorICAgICAgICBpZiBub3QgdmFsaWRfY29uZmlnKCk6CisgICAgICAg
ICAgICBweXRlc3QueGZhaWwoImZhaWxpbmcgY29uZmlndXJhdGlvbiAoYnV0IHNob3VsZCB3b3Jr
KSIpCisKK1RoaXMgd2lsbCB1bmNvbmRpdGlvbmFsbHkgbWFrZSBgYHRlc3RfZnVuY3Rpb25gYCBg
YFhGQUlMYGAuIE5vdGUgdGhhdCBubyBvdGhlciBjb2RlIGlzIGV4ZWN1dGVkCithZnRlciBgYHB5
dGVzdC54ZmFpbGBgIGNhbGwsIGRpZmZlcmVudGx5IGZyb20gdGhlIG1hcmtlci4gVGhhdCdzIGJl
Y2F1c2UgaXQgaXMgaW1wbGVtZW50ZWQKK2ludGVybmFsbHkgYnkgcmFpc2luZyBhIGtub3duIGV4
Y2VwdGlvbi4KKworSGVyZSdzIHRoZSBzaWduYXR1cmUgb2YgdGhlIGBgeGZhaWxgYCAqKm1hcmtl
cioqIChub3QgdGhlIGZ1bmN0aW9uKSwgdXNpbmcgUHl0aG9uIDMga2V5d29yZC1vbmx5Cithcmd1
bWVudHMgc3ludGF4OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgeGZhaWwo
Y29uZGl0aW9uPU5vbmUsICosIHJlYXNvbj1Ob25lLCByYWlzZXM9Tm9uZSwgcnVuPVRydWUsIHN0
cmljdD1GYWxzZSk6CisKKworCisKK2Bgc3RyaWN0YGAgcGFyYW1ldGVyCit+fn5+fn5+fn5+fn5+
fn5+fn5+fgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjkKKworQm90aCBgYFhGQUlMYGAgYW5kIGBg
WFBBU1NgYCBkb24ndCBmYWlsIHRoZSB0ZXN0IHN1aXRlLCB1bmxlc3MgdGhlIGBgc3RyaWN0YGAg
a2V5d29yZC1vbmx5CitwYXJhbWV0ZXIgaXMgcGFzc2VkIGFzIGBgVHJ1ZWBgOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3RyaWN0PVRydWUpCisg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgLi4uCisKKworVGhpcyB3aWxsIG1ha2Ug
YGBYUEFTU2BgICgidW5leHBlY3RlZGx5IHBhc3NpbmciKSByZXN1bHRzIGZyb20gdGhpcyB0ZXN0
IHRvIGZhaWwgdGhlIHRlc3Qgc3VpdGUuCisKK1lvdSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IHZh
bHVlIG9mIHRoZSBgYHN0cmljdGBgIHBhcmFtZXRlciB1c2luZyB0aGUKK2BgeGZhaWxfc3RyaWN0
YGAgaW5pIG9wdGlvbjoKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgW3B5dGVzdF0KKyAg
ICB4ZmFpbF9zdHJpY3Q9dHJ1ZQorCisKK2BgcmVhc29uYGAgcGFyYW1ldGVyCit+fn5+fn5+fn5+
fn5+fn5+fn5+fgorCitBcyB3aXRoIHNraXBpZl8geW91IGNhbiBhbHNvIG1hcmsgeW91ciBleHBl
Y3RhdGlvbiBvZiBhIGZhaWx1cmUKK29uIGEgcGFydGljdWxhciBwbGF0Zm9ybTo6CisKKyAgICBA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMyw2KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJweXRob24zLjYgYXBpIGNoYW5nZXMiKQorICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKCk6CisgICAgICAgIC4uLgorCisKK2BgcmFpc2VzYGAgcGFyYW1ldGVyCit+fn5+
fn5+fn5+fn5+fn5+fn5+fgorCitJZiB5b3Ugd2FudCB0byBiZSBtb3JlIHNwZWNpZmljIGFzIHRv
IHdoeSB0aGUgdGVzdCBpcyBmYWlsaW5nLCB5b3UgY2FuIHNwZWNpZnkKK2Egc2luZ2xlIGV4Y2Vw
dGlvbiwgb3IgYSBsaXN0IG9mIGV4Y2VwdGlvbnMsIGluIHRoZSBgYHJhaXNlc2BgIGFyZ3VtZW50
LgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmFp
c2VzPVJ1bnRpbWVFcnJvcikKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAuLi4K
KworVGhlbiB0aGUgdGVzdCB3aWxsIGJlIHJlcG9ydGVkIGFzIGEgcmVndWxhciBmYWlsdXJlIGlm
IGl0IGZhaWxzIHdpdGggYW4KK2V4Y2VwdGlvbiBub3QgbWVudGlvbmVkIGluIGBgcmFpc2VzYGAu
CisKK2BgcnVuYGAgcGFyYW1ldGVyCit+fn5+fn5+fn5+fn5+fn5+fgorCitJZiBhIHRlc3Qgc2hv
dWxkIGJlIG1hcmtlZCBhcyB4ZmFpbCBhbmQgcmVwb3J0ZWQgYXMgc3VjaCBidXQgc2hvdWxkIG5v
dCBiZQorZXZlbiBleGVjdXRlZCwgdXNlIHRoZSBgYHJ1bmBgIHBhcmFtZXRlciBhcyBgYEZhbHNl
YGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIEBweXRlc3QubWFyay54ZmFpbChy
dW49RmFsc2UpCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgLi4uCisKK1RoaXMg
aXMgc3BlY2lhbGx5IHVzZWZ1bCBmb3IgeGZhaWxpbmcgdGVzdHMgdGhhdCBhcmUgY3Jhc2hpbmcg
dGhlIGludGVycHJldGVyIGFuZCBzaG91bGQgYmUKK2ludmVzdGlnYXRlZCBsYXRlci4KKworCitJ
Z25vcmluZyB4ZmFpbAorfn5+fn5+fn5+fn5+fn4KKworQnkgc3BlY2lmeWluZyBvbiB0aGUgY29t
bWFuZGxpbmU6OgorCisgICAgcHl0ZXN0IC0tcnVueGZhaWwKKworeW91IGNhbiBmb3JjZSB0aGUg
cnVubmluZyBhbmQgcmVwb3J0aW5nIG9mIGFuIGBgeGZhaWxgYCBtYXJrZWQgdGVzdAorYXMgaWYg
aXQgd2VyZW4ndCBtYXJrZWQgYXQgYWxsLiBUaGlzIGFsc28gY2F1c2VzIGBgcHl0ZXN0LnhmYWls
YGAgdG8gcHJvZHVjZSBubyBlZmZlY3QuCisKK0V4YW1wbGVzCit+fn5+fn5+fgorCitIZXJlIGlz
IGEgc2ltcGxlIHRlc3QgZmlsZSB3aXRoIHRoZSBzZXZlcmFsIHVzYWdlczoKKworLi4gbGl0ZXJh
bGluY2x1ZGU6OiBleGFtcGxlL3hmYWlsX2RlbW8ucHkKKworUnVubmluZyBpdCB3aXRoIHRoZSBy
ZXBvcnQtb24teGZhaWwgb3B0aW9uIGdpdmVzIHRoaXMgb3V0cHV0OjoKKworICAgIGV4YW1wbGUg
JCBweXRlc3QgLXJ4IHhmYWlsX2RlbW8ucHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL2V4YW1wbGUsIGluaWZp
bGU6CisgICAgY29sbGVjdGVkIDcgaXRlbXMKKyAgICAKKyAgICB4ZmFpbF9kZW1vLnB5IHh4eHh4
eHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0K
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9o
ZWxsbworICAgIFhGQUlMIHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVsbG8yCisgICAgICByZWFzb246
IFtOT1RSVU5dIAorICAgIFhGQUlMIHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVsbG8zCisgICAgICBj
b25kaXRpb246IGhhc2F0dHIob3MsICdzZXAnKQorICAgIFhGQUlMIHhmYWlsX2RlbW8ucHk6OnRl
c3RfaGVsbG80CisgICAgICBidWcgMTEwCisgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9o
ZWxsbzUKKyAgICAgIGNvbmRpdGlvbjogcHl0ZXN0Ll9fdmVyc2lvbl9fWzBdICE9ICIxNyIKKyAg
ICBYRkFJTCB4ZmFpbF9kZW1vLnB5Ojp0ZXN0X2hlbGxvNgorICAgICAgcmVhc29uOiByZWFzb24K
KyAgICBYRkFJTCB4ZmFpbF9kZW1vLnB5Ojp0ZXN0X2hlbGxvNworICAgIAorICAgID09PT09PT09
PT09PT09PT09PT09PT09PSA3IHhmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09
PT09PT09PT09PT0KKworLi4gX2Bza2lwL3hmYWlsIHdpdGggcGFyYW1ldHJpemVgOgorCitTa2lw
L3hmYWlsIHdpdGggcGFyYW1ldHJpemUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJ
dCBpcyBwb3NzaWJsZSB0byBhcHBseSBtYXJrZXJzIGxpa2Ugc2tpcCBhbmQgeGZhaWwgdG8gaW5k
aXZpZHVhbAordGVzdCBpbnN0YW5jZXMgd2hlbiB1c2luZyBwYXJhbWV0cml6ZToKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisgICAgICAgICgxLCAyKSwKKyAgICBw
eXRlc3QucGFyYW0oMSwgMCwgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwpLAorCXB5dGVzdC5wYXJh
bSgxLCAzLCBtYXJrcz1weXRlc3QubWFyay54ZmFpbChyZWFzb249InNvbWUgYnVnIikpLAorICAg
ICAgICAoMiwgMyksCisgICAgICAgICgzLCA0KSwKKyAgICAgICAgKDQsIDUpLAorICAgIHB5dGVz
dC5wYXJhbSgxMCwgMTEsIG1hcmtzPXB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZv
ID49ICgzLCAwKSwgcmVhc29uPSJweTJrIikpLAorICAgIF0pCisgICAgZGVmIHRlc3RfaW5jcmVt
ZW50KG4sIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGFsa3MucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3RhbGtzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjU5M2RiNGI0YjEwMWIxMzIyMjgzNTk4NmRlZTJhZjZl
NDM3MzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtzLnJzdApA
QCAtMCwwICsxLDEwNSBAQAorCitUYWxrcyBhbmQgVHV0b3JpYWxzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisuLgorICAgLi4gc2lkZWJhcjo6IE5leHQgT3BlbiBUcmFpbmluZ3MKKwor
ICAgICAgYFByb2Zlc3Npb25hbCBUZXN0aW5nIHdpdGggUHl0aG9uCisgICAgICA8aHR0cDovL3d3
dy5weXRob24tYWNhZGVteS5jb20vY291cnNlcy9zcGVjaWFsdG9waWNzL3B5dGhvbl9jb3Vyc2Vf
dGVzdGluZy5odG1sPmBfLAorICAgICAgMjYtMjggQXByaWwgMjAxNywgTGVpcHppZywgR2VybWFu
eS4KKworLi4gX2BmdW5jYXJnc2A6IGZ1bmNhcmdzLmh0bWwKKworQm9va3MKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGBQeXRob24gVGVzdGluZyB3
aXRoIHB5dGVzdCwgYnkgQnJpYW4gT2trZW4gKDIwMTcpCisgIDxodHRwczovL3ByYWdwcm9nLmNv
bS9ib29rL2JvcHl0ZXN0L3B5dGhvbi10ZXN0aW5nLXdpdGgtcHl0ZXN0PmBfLgorCitUYWxrcyBh
bmQgYmxvZyBwb3N0aW5ncworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy0gYFB5dGhvbmljIHRlc3RpbmcsIElnb3IgU3Rhcmlrb3YgKFJ1c3NpYW4sIFB5
TnNrLCBOb3ZlbWJlciAyMDE2KQorICA8aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1f
OTJuZmRkNW5LOD5gXy4KKworLSBgcHl0ZXN0IC0gUmFwaWQgU2ltcGxlIFRlc3RpbmcsIEZsb3Jp
YW4gQnJ1aGluLCBTd2lzcyBQeXRob24gU3VtbWl0IDIwMTYKKyAgPGh0dHBzOi8vd3d3LnlvdXR1
YmUuY29tL3dhdGNoP3Y9ckNCSGtRX0xWSXM+YF8uCisKKy0gYEltcHJvdmUgeW91ciB0ZXN0aW5n
IHdpdGggUHl0ZXN0IGFuZCBNb2NrLCBHYWJlIEhvbGxvbWJlLCBQeUNvbiBTRyAyMDE1CisgIDxo
dHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVJjTjI2aHpubWs0PmBfLgorCistIGBJbnRy
b2R1Y3Rpb24gdG8gcHl0ZXN0LCBBbmRyZWFzIFBlbG1lLCBFdXJvUHl0aG9uIDIwMTQKKyAgPGh0
dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TGRWSmo2NWlrUlk+YF8uCisKKy0gYEFkdmFu
Y2VkIFVzZXMgb2YgcHkudGVzdCBGaXh0dXJlcywgRmxvcmlzIEJydXlub29naGUsIEV1cm9QeXRo
b24KKyAgMjAxNCA8aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1JQkNfZHhyLTRwcz5g
Xy4KKworLSBgV2h5IGkgdXNlIHB5LnRlc3QgYW5kIG1heWJlIHlvdSBzaG91bGQgdG9vLCBBbmR5
IFRvZGQsIFB5Y29uIEFVIDIwMTMKKyAgPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9
UC1BaHB1a0RJaWs+YF8KKworLSBgMy1wYXJ0IGJsb2cgc2VyaWVzIGFib3V0IHB5dGVzdCBmcm9t
IEBweWRhbm55IGFsaWFzIERhbmllbCBHcmVlbmZlbGQgKEphbnVhcnkKKyAgMjAxNCkgPGh0dHA6
Ly9weWRhbm55LmNvbS9weXRlc3Qtbm8tYm9pbGVycGxhdGUtdGVzdGluZy5odG1sPmBfCisKKy0g
YHB5dGVzdDogaGVscHMgeW91IHdyaXRlIGJldHRlciBEamFuZ28gYXBwcywgQW5kcmVhcyBQZWxt
ZSwgRGphbmdvQ29uCisgIEV1cm9wZSAyMDE0IDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRj
aD92PWFhQXJZVmg2WFNNPmBfLgorCistIDpyZWY6YGZpeHR1cmVzYAorCistIGBUZXN0aW5nIERq
YW5nbyBBcHBsaWNhdGlvbnMgd2l0aCBweXRlc3QsIEFuZHJlYXMgUGVsbWUsIEV1cm9QeXRob24K
KyAgMjAxMyA8aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1hVWY4RmtiN1RhWT5gXy4K
KworLSBgVGVzdGVzIHB5dGhvbmljcyBjb20gcHkudGVzdCwgVmluaWNpdXMgQmVsY2hpb3IgQXNz
ZWYgTmV0bywgUGxvbmUKKyAgQ29uZiAyMDEzLCBCcmF6aWwgPGh0dHBzOi8vd3d3LnlvdXR1YmUu
Y29tL3dhdGNoP3Y9UVVLb3EySzdiaXM+YF8uCisKKy0gYEludHJvZHVjdGlvbiB0byBweS50ZXN0
IGZpeHR1cmVzLCBGT1NERU0gMjAxMywgRmxvcmlzIEJydXlub29naGUKKyAgPGh0dHBzOi8vd3d3
LnlvdXR1YmUuY29tL3dhdGNoP3Y9YkpoUlc0ZVpNY28+YF8uCisKKy0gYHB5dGVzdCBmZWF0dXJl
IGFuZCByZWxlYXNlIGhpZ2hsaWdodHMsIEhvbGdlciBLcmVrZWwgKEdFUk1BTiwgT2N0b2JlciAy
MDEzKQorICA8aHR0cDovL3B5dmlkZW8ub3JnL3ZpZGVvLzI0MjkvcHl0ZXN0LWZlYXR1cmUtYW5k
LW5ldy1yZWxlYXNlLWhpZ2hsaWdodHM+YF8KKworLSBgcHl0ZXN0IGludHJvZHVjdGlvbiBmcm9t
IEJyaWFuIE9ra2VuIChKYW51YXJ5IDIwMTMpCisgIDxodHRwOi8vcHl0aG9udGVzdGluZy5uZXQv
ZnJhbWV3b3JrL3B5dGVzdC1pbnRyb2R1Y3Rpb24vPmBfCisKKy0gcHljb24gYXVzdHJhbGlhIDIw
MTIgcHl0ZXN0IHRhbGsgZnJvbSBCcmlhbm5hIExhdWdoZXIgKGB2aWRlbyA8aHR0cDovL3d3dy55
b3V0dWJlLmNvbS93YXRjaD92PURUTmVqRTlFcmFJPmBfLCBgc2xpZGVzIDxodHRwOi8vd3d3LnNs
aWRlc2hhcmUubmV0L3BmY3RkYXllbGlzZS9mdW5jYXJncy1vdGhlci1mdW4td2l0aC1weXRlc3Q+
YF8sIGBjb2RlIDxodHRwczovL2dpc3QuZ2l0aHViLmNvbS8zMzg2OTUxPmBfKQorLSBgcHljb24g
MjAxMiBVUyB0YWxrIHZpZGVvIGZyb20gSG9sZ2VyIEtyZWtlbCA8aHR0cDovL3d3dy55b3V0dWJl
LmNvbS93YXRjaD92PTlMVnFCUWNGbXl3PmBfCisKKy0gYG1vbmtleSBwYXRjaGluZyBkb25lIHJp
Z2h0YF8gKGJsb2cgcG9zdCwgY29uc3VsdCBgbW9ua2V5cGF0Y2ggcGx1Z2luYF8gZm9yIHVwLXRv
LWRhdGUgQVBJKQorCitUZXN0IHBhcmFtZXRyaXphdGlvbjoKKworLSBgZ2VuZXJhdGluZyBwYXJh
bWV0cml6ZWQgdGVzdHMgd2l0aCBmaXh0dXJlc2BfLgorLSBgdGVzdCBnZW5lcmF0b3JzIGFuZCBj
YWNoZWQgc2V0dXBgXworLSBgcGFyYW1ldHJpemluZyB0ZXN0cywgZ2VuZXJhbGl6ZWRgXyAoYmxv
ZyBwb3N0KQorLSBgcHV0dGluZyB0ZXN0LWhvb2tzIGludG8gbG9jYWwgb3IgZ2xvYmFsIHBsdWdp
bnNgXyAoYmxvZyBwb3N0KQorCitBc3NlcnRpb24gaW50cm9zcGVjdGlvbjoKKworLSBgKDA3LzIw
MTEpIEJlaGluZCB0aGUgc2NlbmVzIG9mIHB5dGVzdCdzIG5ldyBhc3NlcnRpb24gcmV3cml0aW5n
CisgIDxodHRwOi8vcHliaXRlcy5ibG9nc3BvdC5jb20vMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9m
LXB5dGVzdHMtbmV3LWFzc2VydGlvbi5odG1sPmBfCisKK0Rpc3RyaWJ1dGVkIHRlc3Rpbmc6CisK
Ky0gYHNpbXVsdGFuZW91c2x5IHRlc3QgeW91ciBjb2RlIG9uIGFsbCBwbGF0Zm9ybXNgXyAoYmxv
ZyBlbnRyeSkKKworUGx1Z2luIHNwZWNpZmljIGV4YW1wbGVzOgorCistIGBza2lwcGluZyBzbG93
IHRlc3RzIGJ5IGRlZmF1bHQgaW4gcHl0ZXN0YF8gKGJsb2cgZW50cnkpCisKKy0gYG1hbnkgZXhh
bXBsZXMgaW4gdGhlIGRvY3MgZm9yIHBsdWdpbnNgXworCisuLiBfYHNraXBwaW5nIHNsb3cgdGVz
dHMgYnkgZGVmYXVsdCBpbiBweXRlc3RgOiBodHRwOi8vYnJ1eW5vb2doZS5ibG9nc3BvdC5jb20v
MjAwOS8xMi9za2lwcGluZy1zbG93LXRlc3QtYnktZGVmYXVsdC1pbi1weXRlc3QuaHRtbAorLi4g
X2BtYW55IGV4YW1wbGVzIGluIHRoZSBkb2NzIGZvciBwbHVnaW5zYDogcGx1Z2lucy5odG1sCisu
LiBfYG1vbmtleXBhdGNoIHBsdWdpbmA6IG1vbmtleXBhdGNoLmh0bWwKKy4uIF9gYXBwbGljYXRp
b24gc2V0dXAgaW4gdGVzdCBmdW5jdGlvbnMgd2l0aCBmaXh0dXJlc2A6IGZpeHR1cmUuaHRtbCNp
bnRlcmRlcGVuZGVudC1maXh0dXJlcworLi4gX2BzaW11bHRhbmVvdXNseSB0ZXN0IHlvdXIgY29k
ZSBvbiBhbGwgcGxhdGZvcm1zYDogaHR0cDovL3RldGFtYXAud29yZHByZXNzLmNvbS8yMDA5LzAz
LzIzL25ldy1zaW11bHRhbm91c2x5LXRlc3QteW91ci1jb2RlLW9uLWFsbC1wbGF0Zm9ybXMvCisu
LiBfYG1vbmtleSBwYXRjaGluZyBkb25lIHJpZ2h0YDogaHR0cDovL3RldGFtYXAud29yZHByZXNz
LmNvbS8yMDA5LzAzLzAzL21vbmtleXBhdGNoaW5nLWluLXVuaXQtdGVzdHMtZG9uZS1yaWdodC8K
Ky4uIF9gcHV0dGluZyB0ZXN0LWhvb2tzIGludG8gbG9jYWwgb3IgZ2xvYmFsIHBsdWdpbnNgOiBo
dHRwOi8vdGV0YW1hcC53b3JkcHJlc3MuY29tLzIwMDkvMDUvMTQvcHV0dGluZy10ZXN0LWhvb2tz
LWludG8tbG9jYWwtYW5kLWdsb2JhbC1wbHVnaW5zLworLi4gX2BwYXJhbWV0cml6aW5nIHRlc3Rz
LCBnZW5lcmFsaXplZGA6IGh0dHA6Ly90ZXRhbWFwLndvcmRwcmVzcy5jb20vMjAwOS8wNS8xMy9w
YXJhbWV0cml6aW5nLXB5dGhvbi10ZXN0cy1nZW5lcmFsaXplZC8KKy4uIF9gZ2VuZXJhdGluZyBw
YXJhbWV0cml6ZWQgdGVzdHMgd2l0aCBmaXh0dXJlc2A6IHBhcmFtZXRyaXplLmh0bWwjdGVzdC1n
ZW5lcmF0b3JzCisuLiBfYHRlc3QgZ2VuZXJhdG9ycyBhbmQgY2FjaGVkIHNldHVwYDogaHR0cDov
L2JydXlub29naGUuYmxvZ3Nwb3QuY29tLzIwMTAvMDYvcHl0ZXN0LXRlc3QtZ2VuZXJhdG9ycy1h
bmQtY2FjaGVkLXNldHVwLmh0bWwKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9hdHRpYy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9hdHRpYy5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDY5NDQ2NjFjYjVjZTcxNTBhZDlkZmZlN2U1MzlkZGYxOGQ4YTA4MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGljLnJzdApAQCAtMCww
ICsxLDExNyBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KK0FUVElDIGRvY3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKK1hYWCBSRVZJRVcgYW5kIHJlbW92ZSB0aGUgYmVsb3cgIFhYWAor
CitDdXN0b21pemluZyB0aGUgdGVzdGluZyBwcm9jZXNzCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK3dyaXRpbmcgY29uZnRlc3QucHkgZmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBtYXkgcHV0IGNvbmZ0ZXN0LnB5IGZpbGVzIGNvbnRh
aW5pbmcgcHJvamVjdC1zcGVjaWZpYworY29uZmlndXJhdGlvbiBpbiB5b3VyIHByb2plY3QncyBy
b290IGRpcmVjdG9yeSwgaXQncyB1c3VhbGx5CitiZXN0IHRvIHB1dCBpdCBqdXN0IGludG8gdGhl
IHNhbWUgZGlyZWN0b3J5IGxldmVsIGFzIHlvdXIKK3RvcG1vc3QgYGBfX2luaXRfXy5weWBgLiAg
SW4gZmFjdCwgYGBweXRlc3RgYCBwZXJmb3JtcworYW4gInVwd2FyZHMiIHNlYXJjaCBzdGFydGlu
ZyBmcm9tIHRoZSBkaXJlY3RvcnkgdGhhdCB5b3Ugc3BlY2lmeQordG8gYmUgdGVzdGVkIGFuZCB3
aWxsIGxvb2t1cCBjb25maWd1cmF0aW9uIHZhbHVlcyByaWdodC10by1sZWZ0LgorWW91IG1heSBo
YXZlIG9wdGlvbnMgdGhhdCByZXNpZGUgZS5nLiBpbiB5b3VyIGhvbWUgZGlyZWN0b3J5CitidXQg
bm90ZSB0aGF0IHByb2plY3Qgc3BlY2lmaWMgc2V0dGluZ3Mgd2lsbCBiZSBjb25zaWRlcmVkCitm
aXJzdC4gIFRoZXJlIGlzIGEgZmxhZyB0aGF0IGhlbHBzIHlvdSBkZWJ1Z2dpbmcgeW91cgorY29u
ZnRlc3QucHkgY29uZmlndXJhdGlvbnM6OgorCisgICAgcHl0ZXN0IC0tdHJhY2UtY29uZmlnCisK
KworY3VzdG9taXppbmcgdGhlIGNvbGxlY3RpbmcgYW5kIHJ1bm5pbmcgcHJvY2VzcworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gaW50cm9kdWNl
IGRpZmZlcmVudCB0ZXN0IGl0ZW1zIHlvdSBjYW4gY3JlYXRlCitvbmUgb3IgbW9yZSBgYGNvbmZ0
ZXN0LnB5YGAgZmlsZXMgaW4geW91ciBwcm9qZWN0LgorV2hlbiB0aGUgY29sbGVjdGlvbiBwcm9j
ZXNzIHRyYXZlcnNlcyBkaXJlY3RvcmllcworYW5kIG1vZHVsZXMgdGhlIGRlZmF1bHQgY29sbGVj
dG9ycyB3aWxsIHByb2R1Y2UKK2N1c3RvbSBDb2xsZWN0b3JzIGFuZCBJdGVtcyBpZiB0aGV5IGFy
ZSBmb3VuZAoraW4gYSBsb2NhbCBgYGNvbmZ0ZXN0LnB5YGAgZmlsZS4KKworCitDdXN0b21pemlu
ZyB0aGUgY29sbGVjdGlvbiBwcm9jZXNzIGluIGEgbW9kdWxlCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSBoYXZlIGEgbW9kdWxlIHdoZXJl
IHlvdSB3YW50IHRvIHRha2UgcmVzcG9uc2liaWxpdHkgZm9yCitjb2xsZWN0aW5nIHlvdXIgb3du
IHRlc3QgSXRlbXMgYW5kIHBvc3NpYmx5IGV2ZW4gZm9yIGV4ZWN1dGluZworYSB0ZXN0IHRoZW4g
eW91IGNhbiBwcm92aWRlIGBnZW5lcmF0aXZlIHRlc3RzYF8gdGhhdCB5aWVsZAorY2FsbGFibGVz
IGFuZCBwb3NzaWJseSBhcmd1bWVudHMgYXMgYSB0dXBsZS4gICBUaGlzIGlzIGVzcGVjaWFsbHkK
K3VzZWZ1bCBmb3IgY2FsbGluZyBhcHBsaWNhdGlvbiB0ZXN0IG1hY2hpbmVyeSB3aXRoIGRpZmZl
cmVudAorcGFyYW1ldGVyIHNldHMgYnV0IGNvdW50aW5nIGVhY2ggb2YgdGhlIGNhbGxzIGFzIGEg
c2VwYXJhdGUKK3Rlc3RzLgorCisuLiBfYGdlbmVyYXRpdmUgdGVzdHNgOiBmZWF0dXJlcy5odG1s
I2dlbmVyYXRpdmUtdGVzdHMKKworVGhlIG90aGVyIGV4dGVuc2lvbiBwb3NzaWJpbGl0eSBpcyBh
Ym91dAorc3BlY2lmeWluZyBhIGN1c3RvbSB0ZXN0IGBgSXRlbWBgIGNsYXNzIHdoaWNoCitpcyBy
ZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBhbmQgZXhlY3V0aW5nIGFuIHVuZGVybHlpbmcKK3Rl
c3QuICBPciB5b3UgY2FuIGV4dGVuZCB0aGUgY29sbGVjdGlvbiBwcm9jZXNzIGZvciBhIHdob2xl
CitkaXJlY3RvcnkgdHJlZSBieSBwdXR0aW5nIEl0ZW1zIGluIGEgYGBjb25mdGVzdC5weWBgIGNv
bmZpZ3VyYXRpb24gZmlsZS4KK1RoZSBjb2xsZWN0aW9uIHByb2Nlc3MgZHluYW1pY2FsbHkgY29u
c3VsdHMgdGhlICpjaGFpbiBvZiBjb25mdGVzdC5weSoKK21vZHVsZXMgdG8gZGV0ZXJtaW5lIGNv
bGxlY3RvcnMgYW5kIGl0ZW1zIGF0IGBgRGlyZWN0b3J5YGAsIGBgTW9kdWxlYGAsCitgYENsYXNz
YGAsIGBgRnVuY3Rpb25gYCBvciBgYEdlbmVyYXRvcmBgIGxldmVsIHJlc3BlY3RpdmVseS4KKwor
Q3VzdG9taXppbmcgZXhlY3V0aW9uIG9mIEl0ZW1zIGFuZCBGdW5jdGlvbnMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgYHB5dGVzdC5G
dW5jdGlvbmBgIHRlc3QgaXRlbXMgY29udHJvbCBleGVjdXRpb24KKyAgb2YgYSB0ZXN0IGZ1bmN0
aW9uIHRocm91Z2ggaXRzIGBgZnVuY3Rpb24ucnVudGVzdCgpYGAgbWV0aG9kLgorICBUaGlzIG1l
dGhvZCBpcyByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyBzZXR1cCBhbmQgdGVhcmRvd24KKyAg
KCJUZXN0IEZpeHR1cmVzIikgZm9yIGEgdGVzdCBGdW5jdGlvbi4KKworLSBgYEZ1bmN0aW9uLmV4
ZWN1dGUodGFyZ2V0LCAqYXJncylgYCBtZXRob2RzIGFyZSBpbnZva2VkIGJ5CisgIHRoZSBkZWZh
dWx0IGBgRnVuY3Rpb24ucnVuKClgYCB0byBhY3R1YWxseSBleGVjdXRlIGEgcHl0aG9uCisgIGZ1
bmN0aW9uIHdpdGggdGhlIGdpdmVuICh1c3VhbGx5IGVtcHR5IHNldCBvZikgYXJndW1lbnRzLgor
CisuLiBfYHB5LWRldiBtYWlsaW5nIGxpc3RgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9tYWlsbWFu
L2xpc3RpbmZvL3B5LWRldgorCisKKy4uIF9gdGVzdCBnZW5lcmF0b3JzYDogZnVuY2FyZ3MuaHRt
bCN0ZXN0LWdlbmVyYXRvcnMKKworLi4gX2BnZW5lcmF0aXZlIHRlc3RzYDoKKworZ2VuZXJhdGl2
ZSB0ZXN0czogeWllbGRpbmcgcGFyYW1ldHJpemVkIHRlc3RzCis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0RlcHJlY2F0ZWQgc2luY2UgMS4w
IGluIGZhdm91ciBvZiBgdGVzdCBnZW5lcmF0b3JzYF8uCisKKypHZW5lcmF0aXZlIHRlc3RzKiBh
cmUgdGVzdCBtZXRob2RzIHRoYXQgYXJlICpnZW5lcmF0b3IgZnVuY3Rpb25zKiB3aGljaAorYGB5
aWVsZGBgIGNhbGxhYmxlcyBhbmQgdGhlaXIgYXJndW1lbnRzLiAgVGhpcyBpcyB1c2VmdWwgZm9y
IHJ1bm5pbmcgYQordGVzdCBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lcyBhZ2FpbnN0IGRpZmZlcmVu
dCBwYXJhbWV0ZXJzLiAgRXhhbXBsZTo6CisKKyAgICBkZWYgdGVzdF9nZW5lcmF0aXZlKCk6Cisg
ICAgICAgIGZvciB4IGluICg0MiwxNyw0OSk6CisgICAgICAgICAgICB5aWVsZCBjaGVjaywgeAor
CisgICAgZGVmIGNoZWNrKGFyZyk6CisgICAgICAgIGFzc2VydCBhcmcgJSA3ID09IDAgICAjIHNl
Y29uZCBnZW5lcmF0ZWQgdGVzdHMgZmFpbHMhCisKK05vdGUgdGhhdCBgYHRlc3RfZ2VuZXJhdGl2
ZSgpYGAgd2lsbCBjYXVzZSB0aHJlZSB0ZXN0cwordG8gZ2V0IHJ1biwgbm90YWJseSBgYGNoZWNr
KDQyKWBgLCBgYGNoZWNrKDE3KWBgIGFuZCBgYGNoZWNrKDQ5KWBgCitvZiB3aGljaCB0aGUgbWlk
ZGxlIG9uZSB3aWxsIG9idmlvdXNseSBmYWlsLgorCitUbyBtYWtlIGl0IGVhc2llciB0byBkaXN0
aW5ndWlzaCB0aGUgZ2VuZXJhdGVkIHRlc3RzIGl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgYW4g
ZXhwbGljaXQgbmFtZSBmb3IgdGhlbSwgbGlrZSBmb3IgZXhhbXBsZTo6CisKKyAgICBkZWYgdGVz
dF9nZW5lcmF0aXZlKCk6CisgICAgICAgIGZvciB4IGluICg0MiwxNyw0OSk6CisgICAgICAgICAg
ICB5aWVsZCAiY2FzZSAlZCIgJSB4LCBjaGVjaywgeAorCisKK2Rpc2FibGluZyBhIHRlc3QgY2xh
c3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBhIGNv
bXBsZXRlIHRlc3QgY2xhc3MgeW91CitjYW4gc2V0IHRoZSBjbGFzcy1sZXZlbCBhdHRyaWJ1dGUg
YGBkaXNhYmxlZGBgLgorRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIGF2b2lkIHJ1bm5pbmcgc29t
ZSB0ZXN0cyBvbiBXaW4zMjo6CisKKyAgICBjbGFzcyBUZXN0UG9zaXhPbmx5KG9iamVjdCk6Cisg
ICAgICAgIGRpc2FibGVkID0gc3lzLnBsYXRmb3JtID09ICd3aW4zMicKKworICAgICAgICBkZWYg
dGVzdF94eHgoc2VsZik6CisgICAgICAgICAgICAuLi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvY29uZmln
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2JhNWE0NmY5ODJlYWEyYTc3OGNmODY1YjA1MDNkMzBjOGFhYjhk
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRw
LWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1jdXN0b21pemUuaHRtbCIgLz4KKyAg
ICA8L2hlYWQ+CisKKyAgICA8Ym9keT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
K3ZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wp
ID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKK2RvY3VtZW50LndyaXRlKHVuZXNj
YXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20v
Z2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit0cnkgewordmFyIHBhZ2VUcmFj
a2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7CitwYWdlVHJhY2tlci5fdHJh
Y2tQYWdldmlldygpOworfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CisgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMyODU1MGE4NWNi
MTA1MjFhYzIxNmIyNTkxZjI2ODllNDY0ZTkxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L2Rpc3QuaHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBV
Ukw9cGx1Z2luL3hkaXN0Lmh0bWwiIC8+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09
IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93
d3cuIik7Citkb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNI
b3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
JTNFJTNDL3NjcmlwdCUzRSIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgordHJ5IHsKK3ZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1
OTcyNzQtMyIpOworcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKK30gY2F0Y2goZXJyKSB7
fTwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9leHRl
bmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYmE1YTQ2Zjk4MmVhYTJhNzc4Y2Y4NjViMDUwM2QzMGM4YWFi
OGRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0
dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPWN1c3RvbWl6ZS5odG1sIiAvPgor
ICAgIDwvaGVhZD4KKworICAgIDxib2R5PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgordmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2Nv
bCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOworZG9jdW1lbnQud3JpdGUodW5l
c2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNv
bS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3RyeSB7Cit2YXIgcGFnZVRy
YWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMiKTsKK3BhZ2VUcmFja2VyLl90
cmFja1BhZ2V2aWV3KCk7Cit9IGNhdGNoKGVycikge308L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KKyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTNiNWE1NGRh
MDhjNjcyYzNhZjk3MmU0N2JmN2Q0NmU4ODYxYjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0CkBAIC0wLDAgKzEsMzUgQEAKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorcHl0ZXN0IGRvY3VtZW50YXRpb24gaW5kZXgK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK2ZlYXR1cmVzXzog
b3ZlcnZpZXcgYW5kIGRpc2N1c3Npb24gb2YgZmVhdHVyZXMuCisKK3F1aWNrc3RhcnRfOiBnZXR0
aW5nIHN0YXJ0ZWQgd2l0aCB3cml0aW5nIGEgc2ltcGxlIHRlc3QuCisKK2B0YWxrcywgdHV0b3Jp
YWxzLCBleGFtcGxlc2BfOiB0dXRvcmlhbCBleGFtcGxlcywgc2xpZGVzCisKK2Z1bmNhcmdzXzog
cG93ZXJmdWwgcGFyYW1ldHJpemVkIHRlc3QgZnVuY3Rpb24gc2V0dXAKKworYHBsdWdpbnNgXzog
bGlzdCBvZiBhdmFpbGFibGUgcGx1Z2lucyB3aXRoIHVzYWdlIGV4YW1wbGVzIGFuZCBmZWF0dXJl
IGRldGFpbHMuCisKK2N1c3RvbWl6ZV86IGNvbmZpZ3VyYXRpb24sIGN1c3RvbWl6YXRpb24sIGV4
dGVuc2lvbnMKKworY2hhbmdlbG9nXzogaGlzdG9yeSBvZiBjaGFuZ2VzIGNvdmVyaW5nIGxhc3Qg
cmVsZWFzZXMKKworKipDb250aW51b3VzIEludGVncmF0aW9uIG9mIHB5dGVzdCdzIG93biB0ZXN0
cyBhbmQgcGx1Z2lucyB3aXRoIEh1ZHNvbioqOgorCisgICAgYGh0dHA6Ly9odWRzb24udGVzdHJ1
bi5vcmcvdmlldy9weXRlc3RgXworCisuLiBfYGh0dHA6Ly9odWRzb24udGVzdHJ1bi5vcmcvdmll
dy9weXRlc3RgOiBodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0LworCisKKy4u
IF9jaGFuZ2Vsb2c6IC4uL2NoYW5nZWxvZy5odG1sCisuLiBfYHBsdWdpbnNgOiBwbHVnaW4vaW5k
ZXguaHRtbAorLi4gX2B0YWxrcywgdHV0b3JpYWxzLCBleGFtcGxlc2A6IHRhbGtzLmh0bWwKKy4u
IF9xdWlja3N0YXJ0OiBxdWlja3N0YXJ0Lmh0bWwKKy4uIF9mZWF0dXJlczogZmVhdHVyZXMuaHRt
bAorLi4gX2Z1bmNhcmdzOiBmdW5jYXJncy5odG1sCisuLiBfY3VzdG9taXplOiBjdXN0b21pemUu
aHRtbAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFjMjUy
ZGMwZDg2YTRjNDE3NTNkNjU2MTk4MzIxYWE4ZDllMzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0CkBAIC0wLDAgKzEsMTMgQEAKKworTWlz
c2lvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK2BgcHl0ZXN0YGAg
c3RyaXZlcyB0byBtYWtlIHRlc3RpbmcgYSBmdW4gYW5kIG5vLWJvaWxlcnBsYXRlIGVmZm9ydC4K
KworVGhlIHRvb2wgaXMgZGlzdHJpYnV0ZWQgYXMgYSBgcHl0ZXN0YCBwYWNrYWdlLiAgSXRzIHBy
b2plY3QgaW5kZXBlbmRlbnQKK2BgcHl0ZXN0YGAgY29tbWFuZCBsaW5lIHRvb2wgaGVscHMgeW91
IHRvOgorCisqIHJhcGlkbHkgY29sbGVjdCBhbmQgcnVuIHRlc3RzCisqIHJ1biB1bml0LSBvciBk
b2N0ZXN0cywgZnVuY3Rpb25hbCBvciBpbnRlZ3JhdGlvbiB0ZXN0cworKiBkaXN0cmlidXRlIHRl
c3RzIHRvIG11bHRpcGxlIGVudmlyb25tZW50cworKiB1c2UgbG9jYWwgb3IgZ2xvYmFsIHBsdWdp
bnMgZm9yIGN1c3RvbSB0ZXN0IHR5cGVzIGFuZCBzZXR1cApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Nvdi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vY292LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDFjN2VmOTQ3OTM0ZWE1NmFhZjUwMjI4ZDMxMjk3
NTc0YjVhNTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL2Nvdi5yc3QKQEAgLTAsMCArMSwyMzAgQEAKKworcHJvZHVjZSBjb2RlIGNvdmVyYWdlIHJl
cG9ydHMgdXNpbmcgdGhlICdjb3ZlcmFnZScgcGFja2FnZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9y
IGRpc3RyaWJ1dGVkIHRlc3RpbmcuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworCisuLiBjb250ZW50czo6CisgIDpsb2NhbDoKKworVGhpcyBwbHVnaW4g
cHJvZHVjZXMgY292ZXJhZ2UgcmVwb3J0cy4gIEl0IHN1cHBvcnRzIGNlbnRyYWxpc2VkIHRlc3Rp
bmcgYW5kIGRpc3RyaWJ1dGVkIHRlc3RpbmcgaW4KK2JvdGggbG9hZCBhbmQgZWFjaCBtb2Rlcy4g
IEl0IGFsc28gc3VwcG9ydHMgY292ZXJhZ2Ugb2Ygc3VicHJvY2Vzc2VzLgorCitBbGwgZmVhdHVy
ZXMgb2ZmZXJlZCBieSB0aGUgY292ZXJhZ2UgcGFja2FnZSBzaG91bGQgYmUgYXZhaWxhYmxlLCBl
aXRoZXIgdGhyb3VnaCBweXRlc3QtY292IG9yCit0aHJvdWdoIGNvdmVyYWdlJ3MgY29uZmlnIGZp
bGUuCisKKworSW5zdGFsbGF0aW9uCistLS0tLS0tLS0tLS0KKworVGhlIGBweXRlc3QtY292YF8g
cGFja2FnZSBtYXkgYmUgaW5zdGFsbGVkIHdpdGggcGlwIG9yIGVhc3lfaW5zdGFsbDo6CisKKyAg
ICBwaXAgaW5zdGFsbCBweXRlc3QtY292CisgICAgZWFzeV9pbnN0YWxsIHB5dGVzdC1jb3YKKwor
Li4gX2BweXRlc3QtY292YDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1jb3Yv
CisKKworVW5pbnN0YWxsYXRpb24KKy0tLS0tLS0tLS0tLS0tCisKK1VuaW5zdGFsbGluZyBwYWNr
YWdlcyBpcyBzdXBwb3J0ZWQgYnkgcGlwOjoKKworICAgIHBpcCB1bmluc3RhbGwgcHl0ZXN0LWNv
dgorCitIb3dldmVyIGVhc3lfaW5zdGFsbCBkb2VzIG5vdCBwcm92aWRlIGFuIHVuaW5zdGFsbCBm
YWNpbGl0eS4KKworLi4gSU1QT1JUQU5UOjoKKworICAgIEVuc3VyZSB0aGF0IHlvdSBtYW51YWxs
eSBkZWxldGUgdGhlIGluaXRfY292bWFpbi5wdGggZmlsZSBpbiB5b3VyCisgICAgc2l0ZS1wYWNr
YWdlcyBkaXJlY3RvcnkuCisKKyAgICBUaGlzIGZpbGUgc3RhcnRzIGNvdmVyYWdlIGNvbGxlY3Rp
b24gb2Ygc3VicHJvY2Vzc2VzIGlmIGFwcHJvcHJpYXRlIGR1cmluZworICAgIHNpdGUgaW5pdGlh
bGl6YXRpb24gYXQgcHl0aG9uIHN0YXJ0dXAuCisKKworVXNhZ2UKKy0tLS0tCisKK0NlbnRyYWxp
c2VkIFRlc3RpbmcKK35+fn5+fn5+fn5+fn5+fn5+fn4KKworQ2VudHJhbGlzZWQgdGVzdGluZyB3
aWxsIHJlcG9ydCBvbiB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgdGhlIG1haW4gcHJvY2VzcyBh
bmQgYWxsIG9mIGl0J3MKK3N1YnByb2Nlc3Nlcy4KKworUnVubmluZyBjZW50cmFsaXNlZCB0ZXN0
aW5nOjoKKworICAgIHB5dGVzdCAtLWNvdiBteXByb2ogdGVzdHMvCisKK1Nob3dzIGEgdGVybWlu
YWwgcmVwb3J0OjoKKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9y
bSBsaW51eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
IE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKKyAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlwcm9qL19faW5pdF9fICAgICAg
ICAgIDIgICAgICAwICAgMTAwJQorICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAx
MyAgICA5NCUKKyAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCisg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFRPVEFMICAg
ICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitEaXN0cmlidXRlZCBUZXN0aW5n
OiBMb2FkCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0Rpc3RyaWJ1dGVkIHRlc3Rpbmcg
d2l0aCBkaXN0IG1vZGUgc2V0IHRvIGxvYWQgd2lsbCByZXBvcnQgb24gdGhlIGNvbWJpbmVkIGNv
dmVyYWdlIG9mIGFsbCBzbGF2ZXMuCitUaGUgc2xhdmVzIG1heSBiZSBzcHJlYWQgb3V0IG92ZXIg
YW55IG51bWJlciBvZiBob3N0cyBhbmQgZWFjaCBzbGF2ZSBtYXkgYmUgbG9jYXRlZCBhbnl3aGVy
ZSBvbiB0aGUKK2ZpbGUgc3lzdGVtLiAgRWFjaCBzbGF2ZSB3aWxsIGhhdmUgaXQncyBzdWJwcm9j
ZXNzZXMgbWVhc3VyZWQuCisKK1J1bm5pbmcgZGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3Qg
bW9kZSBzZXQgdG8gbG9hZDo6CisKKyAgICBweXRlc3QgLS1jb3YgbXlwcm9qIC1uIDIgdGVzdHMv
CisKK1Nob3dzIGEgdGVybWluYWwgcmVwb3J0OjoKKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
IGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292
ZXIKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlw
cm9qL19faW5pdF9fICAgICAgICAgIDIgICAgICAwICAgMTAwJQorICAgIG15cHJvai9teXByb2og
ICAgICAgICAgMjU3ICAgICAxMyAgICA5NCUKKyAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5
NCAgICAgIDcgICAgOTIlCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorICAgIFRPVEFMICAgICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitB
Z2FpbiBidXQgc3ByZWFkIG92ZXIgZGlmZmVyZW50IGhvc3RzIGFuZCBkaWZmZXJlbnQgZGlyZWN0
b3JpZXM6OgorCisgICAgcHl0ZXN0IC0tY292IG15cHJvaiAtLWRpc3QgbG9hZAorICAgICAgICAg
ICAgLS10eCBzc2g9bWVtZWRvdWdoQGhvc3QxLy9jaGRpcj10ZXN0ZW52MQorICAgICAgICAgICAg
LS10eCBzc2g9bWVtZWRvdWdoQGhvc3QyLy9jaGRpcj0vdG1wL3Rlc3RlbnYyLy9weXRob249L3Rt
cC9lbnYxL2Jpbi9weXRob24KKyAgICAgICAgICAgIC0tcnN5bmNkaXIgbXlwcm9qIC0tcnN5bmNk
aXIgdGVzdHMgLS1yc3luYyBleGFtcGxlcworICAgICAgICAgICAgdGVzdHMvCisKK1Nob3dzIGEg
dGVybWluYWwgcmVwb3J0OjoKKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBw
bGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgIE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKKyAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlwcm9qL19faW5pdF9f
ICAgICAgICAgIDIgICAgICAwICAgMTAwJQorICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3
ICAgICAxMyAgICA5NCUKKyAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAg
OTIlCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFRP
VEFMICAgICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitEaXN0cmlidXRlZCBU
ZXN0aW5nOiBFYWNoCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0Rpc3RyaWJ1dGVkIHRl
c3Rpbmcgd2l0aCBkaXN0IG1vZGUgc2V0IHRvIGVhY2ggd2lsbCByZXBvcnQgb24gdGhlIGNvbWJp
bmVkIGNvdmVyYWdlIG9mIGFsbCBzbGF2ZXMuCitTaW5jZSBlYWNoIHNsYXZlIGlzIHJ1bm5pbmcg
YWxsIHRlc3RzIHRoaXMgYWxsb3dzIGdlbmVyYXRpbmcgYSBjb21iaW5lZCBjb3ZlcmFnZSByZXBv
cnQgZm9yIG11bHRpcGxlCitlbnZpcm9ubWVudHMuCisKK1J1bm5pbmcgZGlzdHJpYnV0ZWQgdGVz
dGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8gZWFjaDo6CisKKyAgICBweXRlc3QgLS1jb3YgbXlw
cm9qIC0tZGlzdCBlYWNoCisgICAgICAgICAgICAtLXR4IHBvcGVuLy9jaGRpcj0vdG1wL3Rlc3Rl
bnYzLy9weXRob249L3Vzci9sb2NhbC9weXRob24yNy9iaW4vcHl0aG9uCisgICAgICAgICAgICAt
LXR4IHNzaD1tZW1lZG91Z2hAaG9zdDIvL2NoZGlyPS90bXAvdGVzdGVudjQvL3B5dGhvbj0vdG1w
L2VudjIvYmluL3B5dGhvbgorICAgICAgICAgICAgLS1yc3luY2RpciBteXByb2ogLS1yc3luY2Rp
ciB0ZXN0cyAtLXJzeW5jIGV4YW1wbGVzCisgICAgICAgICAgICB0ZXN0cy8KKworU2hvd3MgYSB0
ZXJtaW5hbCByZXBvcnQ6OgorCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBjb3ZlcmFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAy
LjYuNS1maW5hbC0wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSBsaW51
eDIsIHB5dGhvbiAyLjcuMC1maW5hbC0wCisgICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMg
ICBNaXNzICBDb3ZlcgorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCisgICAgbXlw
cm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQorICAgIG15cHJvai9mZWF0dXJl
NDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAg
IDk0JQorCisKK1JlcG9ydGluZworLS0tLS0tLS0tCisKK0l0IGlzIHBvc3NpYmxlIHRvIGdlbmVy
YXRlIGFueSBjb21iaW5hdGlvbiBvZiB0aGUgcmVwb3J0cyBmb3IgYSBzaW5nbGUgdGVzdCBydW4u
CisKK1RoZSBhdmFpbGFibGUgcmVwb3J0cyBhcmUgdGVybWluYWwgKHdpdGggb3Igd2l0aG91dCBt
aXNzaW5nIGxpbmUgbnVtYmVycyBzaG93biksIEhUTUwsIFhNTCBhbmQKK2Fubm90YXRlZCBzb3Vy
Y2UgY29kZS4KKworVGhlIHRlcm1pbmFsIHJlcG9ydCB3aXRob3V0IGxpbmUgbnVtYmVycyAoZGVm
YXVsdCk6OgorCisgICAgcHl0ZXN0IC0tY292LXJlcG9ydCB0ZXJtIC0tY292IG15cHJvaiB0ZXN0
cy8KKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51eDIs
IHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIE5hbWUgICAg
ICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIgICAg
ICAwICAgMTAwJQorICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5NCUK
KyAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCisgICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFRPVEFMICAgICAgICAgICAg
ICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitUaGUgdGVybWluYWwgcmVwb3J0IHdpdGggbGlu
ZSBudW1iZXJzOjoKKworICAgIHB5dGVzdCAtLWNvdi1yZXBvcnQgdGVybS1taXNzaW5nIC0tY292
IG15cHJvaiB0ZXN0cy8KKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0
Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgIE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIgICBNaXNzaW5nCisg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCisgICAgbXlwcm9qL215
cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JSAgIDI0LTI2LCA5OSwgMTQ5LCAyMzMtMjM2
LCAyOTctMjk4LCAzNjktMzcwCisgICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3
ICAgIDkyJSAgIDE4My0xODgsIDE5NworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAg
IDIwICAgIDk0JQorCisKK1RoZSByZW1haW5pbmcgdGhyZWUgcmVwb3J0cyBvdXRwdXQgdG8gZmls
ZXMgd2l0aG91dCBzaG93aW5nIGFueXRoaW5nIG9uIHRoZSB0ZXJtaW5hbCAodXNlZnVsIGZvcgor
d2hlbiB0aGUgb3V0cHV0IGlzIGdvaW5nIHRvIGEgY29udGludW91cyBpbnRlZ3JhdGlvbiBzZXJ2
ZXIpOjoKKworICAgIHB5dGVzdCAtLWNvdi1yZXBvcnQgaHRtbCAtLWNvdi1yZXBvcnQgeG1sIC0t
Y292LXJlcG9ydCBhbm5vdGF0ZSAtLWNvdiBteXByb2ogdGVzdHMvCisKKworQ292ZXJhZ2UgRGF0
YSBGaWxlCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGRhdGEgZmlsZSBpcyBlcmFzZWQgYXQg
dGhlIGJlZ2lubmluZyBvZiB0ZXN0aW5nIHRvIGVuc3VyZSBjbGVhbiBkYXRhIGZvciBlYWNoIHRl
c3QgcnVuLgorCitUaGUgZGF0YSBmaWxlIGlzIGxlZnQgYXQgdGhlIGVuZCBvZiB0ZXN0aW5nIHNv
IHRoYXQgaXQgaXMgcG9zc2libGUgdG8gdXNlIG5vcm1hbCBjb3ZlcmFnZSB0b29scyB0bworZXhh
bWluZSBpdC4KKworCitMaW1pdGF0aW9ucworLS0tLS0tLS0tLS0KKworRm9yIGRpc3RyaWJ1dGVk
IHRlc3RpbmcgdGhlIHNsYXZlcyBtdXN0IGhhdmUgdGhlIHB5dGVzdC1jb3YgcGFja2FnZSBpbnN0
YWxsZWQuICBUaGlzIGlzIG5lZWRlZCBzaW5jZQordGhlIHBsdWdpbiBtdXN0IGJlIHJlZ2lzdGVy
ZWQgdGhyb3VnaCBzZXR1cHRvb2xzIC8gZGlzdHJpYnV0ZSBmb3IgcHl0ZXN0IHRvIHN0YXJ0IHRo
ZSBwbHVnaW4gb24gdGhlCitzbGF2ZS4KKworRm9yIHN1YnByb2Nlc3MgbWVhc3VyZW1lbnQgZW52
aXJvbm1lbnQgdmFyaWFibGVzIG11c3QgbWFrZSBpdCBmcm9tIHRoZSBtYWluIHByb2Nlc3MgdG8g
dGhlCitzdWJwcm9jZXNzLiAgVGhlIHB5dGhvbiB1c2VkIGJ5IHRoZSBzdWJwcm9jZXNzIG11c3Qg
aGF2ZSBweXRlc3QtY292IGluc3RhbGxlZC4gIFRoZSBzdWJwcm9jZXNzIG11c3QKK2RvIG5vcm1h
bCBzaXRlIGluaXRpYWxpemF0aW9uIHNvIHRoYXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBj
YW4gYmUgZGV0ZWN0ZWQgYW5kIGNvdmVyYWdlCitzdGFydGVkLgorCisKK0Fja25vd2xlZGdtZW50
cworLS0tLS0tLS0tLS0tLS0tLQorCitIb2xnZXIgS3Jla2VsIGZvciBweXRlc3Qgd2l0aCBpdHMg
ZGlzdHJpYnV0ZWQgdGVzdGluZyBzdXBwb3J0LgorCitOZWQgQmF0Y2hlbGRlciBmb3IgY292ZXJh
Z2UgYW5kIGl0cyBhYmlsaXR5IHRvIGNvbWJpbmUgdGhlIGNvdmVyYWdlIHJlc3VsdHMgb2YgcGFy
YWxsZWwgcnVucy4KKworV2hpbHN0IHRoaXMgcGx1Z2luIGhhcyBiZWVuIGJ1aWx0IGZyZXNoIGZy
b20gdGhlIGdyb3VuZCB1cCB0byBzdXBwb3J0IGRpc3RyaWJ1dGVkIHRlc3RpbmcgaXQgaGFzCiti
ZWVuIGluZmx1ZW5jZWQgYnkgdGhlIHdvcmsgZG9uZSBvbiBweXRlc3QtY292ZXJhZ2UgKFJvc3Mg
TGF3bGV5LCBKYW1lcyBNaWxscywgSG9sZ2VyIEtyZWtlbCkgYW5kCitub3NlLWNvdmVyIChKYXNv
biBQZWxsZXJpbikgd2hpY2ggYXJlIG90aGVyIGNvdmVyYWdlIHBsdWdpbnMgZm9yIHB5dGVzdCBh
bmQgbm9zZSByZXNwZWN0aXZlbHkuCisKK05vIGRvdWJ0IG90aGVycyBoYXZlIGNvbnRyaWJ1dGVk
IHRvIHRoZXNlIHRvb2xzIGFzIHdlbGwuCisKK2NvbW1hbmQgbGluZSBvcHRpb25zCistLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisKK2BgLS1jb3Y9cGF0aGBgCisgICAgbWVhc3VyZSBjb3ZlcmFnZSBm
b3IgZmlsZXN5c3RlbSBwYXRoIChtdWx0aS1hbGxvd2VkKQorYGAtLWNvdi1yZXBvcnQ9dHlwZWBg
CisgICAgdHlwZSBvZiByZXBvcnQgdG8gZ2VuZXJhdGU6IHRlcm0sIHRlcm0tbWlzc2luZywgYW5u
b3RhdGUsIGh0bWwsIHhtbCAobXVsdGktYWxsb3dlZCkKK2BgLS1jb3YtY29uZmlnPXBhdGhgYAor
ICAgIGNvbmZpZyBmaWxlIGZvciBjb3ZlcmFnZSwgZGVmYXVsdDogLmNvdmVyYWdlcmMKKworLi4g
aW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
cGx1Z2luL2NvdmVyYWdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3Zl
cmFnZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzExMzlkMDA4YmEwMjBhN2Y3YjY5NmEyM2M4NDJjM2Y1MzNk
ZGM1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9j
b3ZlcmFnZS5yc3QKQEAgLTAsMCArMSw1MSBAQAorCitXcml0ZSBhbmQgcmVwb3J0IGNvdmVyYWdl
IGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCisuLiBjb250ZW50czo6
CisgIDpsb2NhbDoKKworTm90ZTogT3JpZ2luYWwgY29kZSBieSBSb3NzIExhd2xleS4gCisKK0lu
c3RhbGwKKy0tLS0tLS0tLS0tLS0tCisKK1VzZSBwaXAgdG8gKHVuKWluc3RhbGw6OgorCisgICAg
cGlwIGluc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAorICAgIHBpcCB1bmluc3RhbGwgcHl0ZXN0LWNv
dmVyYWdlIAorCitvciBhbHRlcm5hdGl2ZWx5IHVzZSBlYXN5X2luc3RhbGwgdG8gaW5zdGFsbDo6
CisKKyAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAorCisKK1VzYWdlIAorLS0tLS0t
LS0tLS0tLQorCitUbyBnZXQgZnVsbCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMgZm9yIGEgcGFydGlj
dWxhciBwYWNrYWdlIHR5cGU6OgorCisgICAgcHl0ZXN0IC0tY292ZXItcmVwb3J0PXJlcG9ydAor
Citjb21tYW5kIGxpbmUgb3B0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitgYC0tY292
ZXI9Q09WRVJQQUNLQUdFU2BgCisgICAgKG11bHRpIGFsbG93ZWQpIG9ubHkgaW5jbHVkZSBpbmZv
IGZyb20gc3BlY2lmaWVkIHBhY2thZ2UuCitgYC0tY292ZXItcmVwb3J0PVJFUE9SVF9UWVBFYGAK
KyAgICBodG1sOiBEaXJlY3RvcnkgZm9yIGh0bWwgb3V0cHV0LgorICAgICAgICAgICAgICAgICAg
ICByZXBvcnQ6IE91dHB1dCBhIHRleHQgcmVwb3J0LgorICAgICAgICAgICAgICAgICAgICBhbm5v
dGF0ZTogQW5ub3RhdGUgeW91ciBzb3VyY2UgY29kZSBmb3Igd2hpY2ggbGluZXMgd2VyZSBleGVj
dXRlZCBhbmQgd2hpY2ggd2VyZSBub3QuCisgICAgICAgICAgICAgICAgICAgIHhtbDogT3V0cHV0
IGFuIHhtbCByZXBvcnQgY29tcGF0aWJsZSB3aXRoIHRoZSBjb2JlcnR1cmEgcGx1Z2luIGZvciBo
dWRzb24uCitgYC0tY292ZXItZGlyZWN0b3J5PURJUkVDVE9SWWBgCisgICAgRGlyZWN0b3J5IGZv
ciB0aGUgcmVwb3J0cyAoaHRtbCAvIGFubm90YXRlIHJlc3VsdHMpIGRlZmF1bHRzIHRvIC4vY292
ZXJhZ2UKK2BgLS1jb3Zlci14bWwtZmlsZT1YTUxfRklMRWBgCisgICAgRmlsZSBmb3IgdGhlIHht
bCByZXBvcnQgZGVmYXVsdHMgdG8gLi9jb3ZlcmFnZS54bWwKK2BgLS1jb3Zlci1zaG93LW1pc3Np
bmdgYAorICAgIFNob3cgbWlzc2luZyBmaWxlcworYGAtLWNvdmVyLWlnbm9yZS1lcnJvcnM9SUdO
T1JFX0VSUk9SU2BgCisgICAgSWdub3JlIGVycm9ycyBvZiBmaW5kaW5nIHNvdXJjZSBmaWxlcyBm
b3IgY29kZS4KKworLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9wbHVnaW4vZGphbmdvLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjE0OTdiMzg1ZWRlNTg0OWZjNGJlMjZj
MzllNjU4ZWM3MWIxMzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvcGx1Z2luL2RqYW5nby5yc3QKQEAgLTAsMCArMSw3IEBACitweXRlc3RfZGphbmdvIHBsdWdp
biAoRVhURVJOQUwpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworcHl0ZXN0X2RqYW5nbyBpcyBhIHBsdWdpbiBmb3IgYGBweXRlc3RgYCB0aGF0IHByb3ZpZGVz
IGEgc2V0IG9mIHVzZWZ1bCB0b29scyBmb3IgdGVzdGluZyBEamFuZ28gYXBwbGljYXRpb25zLCBj
aGVja291dCBCZW4gRmlyc2htYW4ncyBgcHl0ZXN0X2RqYW5nbyBnaXRodWIgcGFnZWBfLgorCisu
LiBfYHB5dGVzdF9kamFuZ28gZ2l0aHViIHBhZ2VgOiBodHRwOi8vZ2l0aHViLmNvbS9iZmlyc2gv
cHl0ZXN0X2RqYW5nby90cmVlL21hc3RlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGVzdC9wbHVnaW4vZmlnbGVhZi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVn
aW4vZmlnbGVhZi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMxNjAzYWRlOWZjM2RmMTdiODIyMTgyZDhmMzU3
OWIyYjZjODc4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Bs
dWdpbi9maWdsZWFmLnJzdApAQCAtMCwwICsxLDQ0IEBACisKK3JlcG9ydCB0ZXN0IGNvdmVyYWdl
IHVzaW5nIHRoZSAnZmlnbGVhZicgcGFja2FnZS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworCisuLiBjb250ZW50czo6CisgIDpsb2NhbDoKKwor
SW5zdGFsbAorLS0tLS0tLS0tLS0tLS0tCisKK1RvIGluc3RhbGwgdGhlIHBsdWdpbiBpc3N1ZTo6
CisKKyAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWZpZ2xlYWYgICMgb3IKKyAgICBwaXAgaW5zdGFs
bCBweXRlc3QtZmlnbGVhZiAgIAorCithbmQgaWYgeW91IGFyZSB1c2luZyBwaXAgeW91IGNhbiBh
bHNvIHVuaW5zdGFsbDo6CisKKyAgICBwaXAgdW5pbnN0YWxsIHB5dGVzdC1maWdsZWFmCisKKwor
VXNhZ2UKKy0tLS0tLS0tLS0tLS0tLQorCitBZnRlciBpbnN0YWxsYXRpb24geW91IGNhbiBzaW1w
bHkgdHlwZTo6CisKKyAgICBweXRlc3QgLS1maWdsZWFmIFsuLi5dCisKK3RvIGVuYWJsZSBmaWds
ZWFmIGNvdmVyYWdlIGluIHlvdXIgdGVzdCBydW4uICBBIGRlZmF1bHQgIi5maWdsZWFmIiBkYXRh
IGZpbGUKK2FuZCAiaHRtbCIgZGlyZWN0b3J5IHdpbGwgYmUgY3JlYXRlZC4gIFlvdSBjYW4gdXNl
IGNvbW1hbmQgbGluZSBvcHRpb25zCit0byBjb250cm9sIHdoZXJlIGRhdGEgYW5kIGh0bWwgZmls
ZXMgYXJlIGNyZWF0ZWQuCisKK2NvbW1hbmQgbGluZSBvcHRpb25zCistLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisKK2BgLS1maWdsZWFmYGAKKyAgICB0cmFjZSBweXRob24gY292ZXJhZ2Ugd2l0aCBm
aWdsZWFmIGFuZCB3cml0ZSBIVE1MIGZvciBmaWxlcyBiZWxvdyB0aGUgY3VycmVudCB3b3JraW5n
IGRpcgorYGAtLWZpZy1kYXRhPWRpcmBgCisgICAgc2V0IHRyYWNpbmcgZmlsZSwgZGVmYXVsdDog
Ii5maWdsZWFmIi4KK2BgLS1maWctaHRtbD1kaXJgYAorICAgIHNldCBodG1sIHJlcG9ydGluZyBk
aXIsIGRlZmF1bHQgImh0bWwiLgorCisuLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI2Yjc1
YzQ1NTJlMTQyYWE5ZGZhNTViYWYxNjY3MDQ2ZDcxMTM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9oZWxwY29uZmlnLnJzdApAQCAtMCwwICsxLDM2
IEBACisKK3Byb3ZpZGUgdmVyc2lvbiBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcg
bmFtZXMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCisKKy4uIGNvbnRlbnRzOjoKKyAgOmxvY2FsOgorCisKKworY29tbWFuZCBsaW5l
IG9wdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworYGAtLXZlcnNpb25gYAorICAgIGRp
c3BsYXkgcHkgbGliIHZlcnNpb24gYW5kIGltcG9ydCBpbmZvcm1hdGlvbi4KK2BgLXAgbmFtZWBg
CisgICAgZWFybHktbG9hZCBnaXZlbiBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLgorYGAtLXRyYWNl
LWNvbmZpZ2BgCisgICAgdHJhY2UgY29uc2lkZXJhdGlvbnMgb2YgY29uZnRlc3QucHkgZmlsZXMu
CitgYC0tZGVidWdgYAorICAgIGdlbmVyYXRlIGFuZCBzaG93IGludGVybmFsIGRlYnVnZ2luZyBp
bmZvcm1hdGlvbi4KK2BgLS1oZWxwLWNvbmZpZ2BgCisgICAgc2hvdyBhdmFpbGFibGUgY29uZnRl
c3QucHkgYW5kIEVOVi12YXJpYWJsZSBuYW1lcy4KKworU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1
Z2luIGluIDMwIHNlY29uZHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKworMS4gRG93bmxvYWQgYHB5dGVzdF9oZWxwY29uZmlnLnB5YF8gcGx1Z2luIHNvdXJj
ZSBjb2RlCisyLiBwdXQgaXQgc29tZXdoZXJlIGFzIGBgcHl0ZXN0X2hlbHBjb25maWcucHlgYCBp
bnRvIHlvdXIgaW1wb3J0IHBhdGgKKzMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxs
IHVzZSB5b3VyIGxvY2FsIHZlcnNpb24KKworQ2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1
Z2luc18gb3IgYGdldCBpbiBjb250YWN0YF8uCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRleC5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5kZXgucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1M2E0ZGNl
NjgxYzhmNmJiZWMxZjcxNzU5ZTEyYmU5NTkwMTZlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5kZXgucnN0CkBAIC0wLDAgKzEsNjggQEAKKwor
YWR2YW5jZWQgcHl0aG9uIHRlc3RpbmcKKz09PT09PT09PT09PT09PT09PT09PT09CisKK3NraXBw
aW5nXyBhZHZhbmNlZCBza2lwcGluZyBmb3IgcHl0aG9uIHRlc3QgZnVuY3Rpb25zLCBjbGFzc2Vz
IG9yIG1vZHVsZXMuCisKK21hcmtfIGdlbmVyaWMgbWVjaGFuaXNtIGZvciBtYXJraW5nIHB5dGhv
biBmdW5jdGlvbnMuCisKK3BkYl8gaW50ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGggdGhlIFB5dGhv
biBEZWJ1Z2dlci4KKworZmlnbGVhZl8gKGV4dGVybmFsKSByZXBvcnQgdGVzdCBjb3ZlcmFnZSB1
c2luZyB0aGUgJ2ZpZ2xlYWYnIHBhY2thZ2UuCisKK21vbmtleXBhdGNoXyBzYWZlbHkgcGF0Y2gg
b2JqZWN0IGF0dHJpYnV0ZXMsIGRpY3RzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisKK2Nv
dmVyYWdlXyAoZXh0ZXJuYWwpIFdyaXRlIGFuZCByZXBvcnQgY292ZXJhZ2UgZGF0YSB3aXRoIHRo
ZSAnY292ZXJhZ2UnIHBhY2thZ2UuCisKK2Nvdl8gKGV4dGVybmFsKSBwcm9kdWNlIGNvZGUgY292
ZXJhZ2UgcmVwb3J0cyB1c2luZyB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLCBpbmNsdWRpbmcgc3Vw
cG9ydCBmb3IgZGlzdHJpYnV0ZWQgdGVzdGluZy4KKworY2FwdHVyZV8gY29uZmlndXJhYmxlIHBl
ci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nIG1lY2hhbmlzbXMuCisKK2NhcHR1cmVsb2df
IChleHRlcm5hbCkgY2FwdHVyZSBvdXRwdXQgb2YgbG9nZ2luZyBtb2R1bGUuCisKK3JlY3dhcm5f
IGhlbHBlcnMgZm9yIGFzc2VydGluZyBkZXByZWNhdGlvbiBhbmQgb3RoZXIgd2FybmluZ3MuCisK
K3RtcGRpcl8gcHJvdmlkZSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgdG8gdGVzdCBmdW5jdGlvbnMu
CisKKworZGlzdHJpYnV0ZWQgdGVzdGluZywgQ0kgYW5kIGRlcGxveW1lbnQKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3hkaXN0XyAoZXh0ZXJuYWwpIGxvb3Agb24g
ZmFpbGluZyB0ZXN0cywgZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBhbmQgaG9zdHMuCisK
K3Bhc3RlYmluXyBzdWJtaXQgZmFpbHVyZSBvciB0ZXN0IHNlc3Npb24gaW5mb3JtYXRpb24gdG8g
YSBwYXN0ZWJpbiBzZXJ2aWNlLgorCitqdW5pdHhtbF8gbG9nZ2luZyBvZiB0ZXN0IHJlc3VsdHMg
aW4gSlVuaXQtWE1MIGZvcm1hdCwgZm9yIHVzZSB3aXRoIEh1ZHNvbgorCityZXN1bHRsb2dfIG5v
bi14bWwgbWFjaGluZS1yZWFkYWJsZSBsb2dnaW5nIG9mIHRlc3QgcmVzdWx0cy4KKworZ2Vuc2Ny
aXB0XyBnZW5lcmF0ZSBzdGFuZGFsb25lIHRlc3Qgc2NyaXB0IHRvIGJlIGRpc3RyaWJ1dGVkIGFs
b25nIHdpdGggYW4gYXBwbGljYXRpb24uCisKKwordGVzdGluZyBkb21haW5zIGFuZCBjb252ZW50
aW9ucyBjb2RlY2hlY2tlcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK29lanNraXRfIChleHRlcm5hbCkgcnVuIGphdmFzY3JpcHQgdGVzdHMgaW4gcmVh
bCBsaWZlIGJyb3dzZXJzCisKK2RqYW5nb18gKGV4dGVybmFsKSBmb3IgdGVzdGluZyBkamFuZ28g
YXBwbGljYXRpb25zCisKK3VuaXR0ZXN0XyBhdXRvbWF0aWNhbGx5IGRpc2NvdmVyIGFuZCBydW4g
dHJhZGl0aW9uYWwgInVuaXR0ZXN0LnB5IiBzdHlsZSB0ZXN0cy4KKworbm9zZV8gbm9zZS1jb21w
YXRpYmlsaXR5IHBsdWdpbjogYWxsb3cgdG8gcnVuIG5vc2UgdGVzdCBzdWl0ZXMgbmF0aXZlbHku
CisKK2RvY3Rlc3RfIGNvbGxlY3QgYW5kIGV4ZWN1dGUgZG9jdGVzdHMgZnJvbSBtb2R1bGVzIGFu
ZCB0ZXN0IGZpbGVzLgorCityZXN0ZG9jXyBwZXJmb3JtIFJlU1Qgc3ludGF4LCBsb2NhbCBhbmQg
cmVtb3RlIHJlZmVyZW5jZSB0ZXN0cyBvbiAucnN0Ly50eHQgZmlsZXMuCisKKworaW50ZXJuYWws
IGRlYnVnZ2luZywgaGVscCBmdW5jdGlvbmFsaXR5Cis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworaGVscGNvbmZpZ18gcHJvdmlkZSB2ZXJzaW9uIGluZm8sIGNvbmZ0
ZXN0L2Vudmlyb25tZW50IGNvbmZpZyBuYW1lcy4KKwordGVybWluYWxfIEltcGxlbWVudHMgdGVy
bWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vzcy4KKworaG9va2xvZ18g
bG9nIGludm9jYXRpb25zIG9mIGV4dGVuc2lvbiBob29rcyB0byBhIGZpbGUuCisKKworLi4gaW5j
bHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL2xpbmtzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmRlYzJiNDg0OGE2OWU1ZWI4MDU2ODU4OWNjM2Y5OWUyZGRkMmUzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QK
QEAgLTAsMCArMSw0NSBAQAorLi4gX2BoZWxwY29uZmlnYDogaGVscGNvbmZpZy5odG1sCisuLiBf
YHB5dGVzdF9yZWN3YXJuLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsv
cmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3JlY3dhcm4ucHkKKy4uIF9gdW5pdHRlc3RgOiB1
bml0dGVzdC5odG1sCisuLiBfYHB5dGVzdF9tb25rZXlwYXRjaC5weWA6IGh0dHA6Ly9iaXRidWNr
ZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9tb25rZXlw
YXRjaC5weQorLi4gX2BwYXN0ZWJpbmA6IHBhc3RlYmluLmh0bWwKKy4uIF9gc2tpcHBpbmdgOiBz
a2lwcGluZy5odG1sCisuLiBfYHBsdWdpbnNgOiBpbmRleC5odG1sCisuLiBfYG1hcmtgOiBtYXJr
Lmh0bWwKKy4uIF9gdG1wZGlyYDogdG1wZGlyLmh0bWwKKy4uIF9gcHl0ZXN0X2RvY3Rlc3QucHlg
OiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdp
bi9weXRlc3RfZG9jdGVzdC5weQorLi4gX2BjYXB0dXJlYDogY2FwdHVyZS5odG1sCisuLiBfYHB5
dGVzdF9ub3NlLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEu
My40L3B5L19wbHVnaW4vcHl0ZXN0X25vc2UucHkKKy4uIF9gcHl0ZXN0X3Jlc3Rkb2MucHlgOiBo
dHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9w
eXRlc3RfcmVzdGRvYy5weQorLi4gX2ByZXN0ZG9jYDogcmVzdGRvYy5odG1sCisuLiBfYHhkaXN0
YDogeGRpc3QuaHRtbAorLi4gX2BweXRlc3RfcGFzdGViaW4ucHlgOiBodHRwOi8vYml0YnVja2V0
Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfcGFzdGViaW4u
cHkKKy4uIF9gcHl0ZXN0X3RtcGRpci5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5
LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF90bXBkaXIucHkKKy4uIF9gdGVybWlu
YWxgOiB0ZXJtaW5hbC5odG1sCisuLiBfYHB5dGVzdF9ob29rbG9nLnB5YDogaHR0cDovL2JpdGJ1
Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2hvb2ts
b2cucHkKKy4uIF9gY2FwdHVyZWxvZ2A6IGNhcHR1cmVsb2cuaHRtbAorLi4gX2BqdW5pdHhtbGA6
IGp1bml0eG1sLmh0bWwKKy4uIF9gcHl0ZXN0X3NraXBwaW5nLnB5YDogaHR0cDovL2JpdGJ1Y2tl
dC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3NraXBwaW5n
LnB5CisuLiBfYGNoZWNrb3V0IHRoZSBweXRlc3QgZGV2ZWxvcG1lbnQgdmVyc2lvbmA6IC4uLy4u
L2luc3RhbGwuaHRtbCNjaGVja291dAorLi4gX2BweXRlc3RfaGVscGNvbmZpZy5weWA6IGh0dHA6
Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVz
dF9oZWxwY29uZmlnLnB5CisuLiBfYG9lanNraXRgOiBvZWpza2l0Lmh0bWwKKy4uIF9gZG9jdGVz
dGA6IGRvY3Rlc3QuaHRtbAorLi4gX2BweXRlc3RfbWFyay5weWA6IGh0dHA6Ly9iaXRidWNrZXQu
b3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9tYXJrLnB5Cisu
LiBfYGdldCBpbiBjb250YWN0YDogLi4vLi4vY29udGFjdC5odG1sCisuLiBfYHB5dGVzdF9jYXB0
dXJlLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5
L19wbHVnaW4vcHl0ZXN0X2NhcHR1cmUucHkKKy4uIF9gZmlnbGVhZmA6IGZpZ2xlYWYuaHRtbAor
Li4gX2BjdXN0b21pemVgOiAuLi9jdXN0b21pemUuaHRtbAorLi4gX2Bob29rbG9nYDogaG9va2xv
Zy5odG1sCisuLiBfYHB5dGVzdF90ZXJtaW5hbC5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hw
azQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF90ZXJtaW5hbC5weQorLi4g
X2ByZWN3YXJuYDogcmVjd2Fybi5odG1sCisuLiBfYHB5dGVzdF9wZGIucHlgOiBodHRwOi8vYml0
YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfcGRi
LnB5CisuLiBfYG1vbmtleXBhdGNoYDogbW9ua2V5cGF0Y2guaHRtbAorLi4gX2Bjb3ZlcmFnZWA6
IGNvdmVyYWdlLmh0bWwKKy4uIF9gcmVzdWx0bG9nYDogcmVzdWx0bG9nLmh0bWwKKy4uIF9gY292
YDogY292Lmh0bWwKKy4uIF9gcHl0ZXN0X2p1bml0eG1sLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5v
cmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2p1bml0eG1sLnB5
CisuLiBfYGRqYW5nb2A6IGRqYW5nby5odG1sCisuLiBfYHB5dGVzdF91bml0dGVzdC5weWA6IGh0
dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5
dGVzdF91bml0dGVzdC5weQorLi4gX2Bub3NlYDogbm9zZS5odG1sCisuLiBfYHB5dGVzdF9yZXN1
bHRsb2cucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQv
cHkvX3BsdWdpbi9weXRlc3RfcmVzdWx0bG9nLnB5CisuLiBfYHBkYmA6IHBkYi5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlYWU1ZmY2OTdm
MDVhMjI2NTFmOTZmMGE5YmUwY2UyMTA0ZTU5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdApAQCAtMCwwICsxLDU2IEBACisKK25vc2Ut
Y29tcGF0aWJpbGl0eSBwbHVnaW46IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2
ZWx5LgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKworLi4gY29udGVudHM6OgorICA6bG9jYWw6CisKK1RoaXMgaXMg
YW4gZXhwZXJpbWVudGFsIHBsdWdpbiBmb3IgYWxsb3dpbmcgdG8gcnVuIHRlc3RzIHdyaXR0ZW4K
K2luICdub3NldGVzdHMnIHN0eWxlIHdpdGggYGBweXRlc3RgYC4KKworVXNhZ2UKKy0tLS0tLS0t
LS0tLS0KKwordHlwZTo6CisKKyAgICBweXRlc3QgICMgaW5zdGVhZCBvZiAnbm9zZXRlc3RzJwor
CithbmQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHJ1biBub3NlIHN0eWxlIHRlc3RzIGFuZCBhdCB0
aGUgc2FtZQordGltZSBjYW4gbWFrZSBmdWxsIHVzZSBvZiBweXRlc3QncyBjYXBhYmlsaXRpZXMu
CisKK1N1cHBvcnRlZCBub3NlIElkaW9tcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIHNl
dHVwIGFuZCB0ZWFyZG93biBhdCBtb2R1bGUvY2xhc3MvbWV0aG9kIGxldmVsCisqIFNraXBUZXN0
IGV4Y2VwdGlvbnMgYW5kIG1hcmtlcnMKKyogc2V0dXAvdGVhcmRvd24gZGVjb3JhdG9ycworKiB5
aWVsZC1iYXNlZCB0ZXN0cyBhbmQgdGhlaXIgc2V0dXAKKyogZ2VuZXJhbCB1c2FnZSBvZiBub3Nl
IHV0aWxpdGllcworCitVbnN1cHBvcnRlZCBpZGlvbXMgLyBpc3N1ZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBub3NlLXN0eWxlIGRvY3Rlc3RzIGFyZSBub3QgY29s
bGVjdGVkIGFuZCBleGVjdXRlZCBjb3JyZWN0bHksCisgIGFsc28gZml4dHVyZXMgZG9uJ3Qgd29y
ay4KKworLSBubyBub3NlLWNvbmZpZ3VyYXRpb24gaXMgcmVjb2duaXplZAorCitJZiB5b3UgZmlu
ZCBvdGhlciBpc3N1ZXMgb3IgaGF2ZSBzdWdnZXN0aW9ucyBwbGVhc2UgcnVuOjoKKworICAgIHB5
dGVzdCAtLXBhc3RlYmluPWFsbAorCithbmQgc2VuZCB0aGUgcmVzdWx0aW5nIFVSTCB0byBhIGBg
cHl0ZXN0YGAgY29udGFjdCBjaGFubmVsLAorYXQgYmVzdCB0byB0aGUgbWFpbGluZyBsaXN0Lgor
CitTdGFydCBpbXByb3ZpbmcgdGhpcyBwbHVnaW4gaW4gMzAgc2Vjb25kcworPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCisxLiBEb3dubG9hZCBgcHl0ZXN0X25v
c2UucHlgXyBwbHVnaW4gc291cmNlIGNvZGUKKzIuIHB1dCBpdCBzb21ld2hlcmUgYXMgYGBweXRl
c3Rfbm9zZS5weWBgIGludG8geW91ciBpbXBvcnQgcGF0aAorMy4gYSBzdWJzZXF1ZW50IGBgcHl0
ZXN0YGAgcnVuIHdpbGwgdXNlIHlvdXIgbG9jYWwgdmVyc2lvbgorCitDaGVja291dCBjdXN0b21p
emVfLCBvdGhlciBwbHVnaW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KKworLi4gaW5jbHVkZTo6
IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29l
anNraXQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ5OTVhYTE3YzcyZDVjZTBiNzkxNTRhNjJjOTdmMGEyMTBkMjNhZGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vqc2tpdC5yc3QK
QEAgLTAsMCArMSwxMiBAQAorcHl0ZXN0X29lanNraXQgcGx1Z2luIChFWFRFUk5BTCkKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYG9lanNraXRgXyBv
ZmZlcnMgYSBgYHB5dGVzdGBgIHBsdWdpbiBmb3IgcnVubmluZyBKYXZhc2NyaXB0IHRlc3RzIGlu
IGxpdmUgYnJvd3NlcnMuICAgUnVubmluZyBpbnNpZGUgdGhlIGJyb3dzZXJzIGNvbWVzIHdpdGgg
c29tZSBzcGVlZCBjb3N0LCBvbiB0aGUgb3RoZXIgaGFuZCBpdCBtZWFucyBmb3IgZXhhbXBsZSB0
aGUgY29kZSBpcyB0ZXN0ZWQgYWdhaW5zdCB0aGUgcmVhbC13b3JkIERPTSBpbXBsZW1lbnRhdGlv
bnMuCitUaGUgYXBwcm9hY2ggZW5hYmxlcyB0byB3cml0ZSBpbnRlZ3JhdGlvbiB0ZXN0cyBzdWNo
IHRoYXQgdGhlIEphdmFTY3JpcHQgY29kZSBpcyB0ZXN0ZWQgYWdhaW5zdCBzZXJ2ZXItc2lkZSBQ
eXRob24gY29kZSBtb2NrZWQgYXMgbmVjZXNzYXJ5LiBBbnkgc2VydmVyLXNpZGUgZnJhbWV3b3Jr
IHRoYXQgY2FuIGFscmVhZHkgYmUgZXhwb3NlZCB0aHJvdWdoIFdTR0kgKG9yIGZvciB3aGljaCBh
IHN1YnNldCBvZiBXU0dJIGNhbiBiZSB3cml0dGVuIHRvIGFjY29tbW9kYXRlIHRoZSBqc2tpdCBv
d24gbmVlZHMpIGNhbiBwbGF5IGFsb25nLgorCitGb3IgbW9yZSBpbmZvIGFuZCBkb3dubG9hZCBw
bGVhc2UgdmlzaXQgdGhlIGBvZWpza2l0IFB5UElgXyBwYWdlLgorCisuLiBfYG9lanNraXRgOgor
Li4gX2BvZWpza2l0IFB5UElgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvb2Vqc2tpdAor
CisuLiBzb3VyY2UgbGluayAnaHR0cDovL2JpdGJ1Y2tldC5vcmcvcGVkcm9uaXMvanMtaW5mcmFz
dHJ1Y3R1cmUvc3JjL3RpcC9weXRlc3RfanN0ZXN0cy5weScsCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDdkNGY3MjE4M2E5YTI3Njc2
MzM2Y2Q5ODRlNmY3NWVmYTMwYTcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdApAQCAtMCwwICsxLDM4IEBACisKK0ltcGxlbWVu
dHMgdGVybWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vzcy4KKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
CisuLiBjb250ZW50czo6CisgIDpsb2NhbDoKKworVGhpcyBpcyBhIGdvb2Qgc291cmNlIGZvciBs
b29raW5nIGF0IHRoZSB2YXJpb3VzIHJlcG9ydGluZyBob29rcy4KKworY29tbWFuZCBsaW5lIG9w
dGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworYGAtdiwgLS12ZXJib3NlYGAKKyAgICBp
bmNyZWFzZSB2ZXJib3NpdHkuCitgYC1yIGNoYXJzYGAKKyAgICBzaG93IGV4dHJhIHRlc3Qgc3Vt
bWFyeSBpbmZvIGFzIHNwZWNpZmllZCBieSBjaGFycyAoZilhaWxlZCwgKHMpc2tpcHBlZCwgKHgp
ZmFpbGVkLCAoWClwYXNzZWQuCitgYC1sLCAtLXNob3dsb2NhbHNgYAorICAgIHNob3cgbG9jYWxz
IGluIHRyYWNlYmFja3MgKGRpc2FibGVkIGJ5IGRlZmF1bHQpLgorYGAtLXRiPXN0eWxlYGAKKyAg
ICB0cmFjZWJhY2sgcHJpbnQgbW9kZSAobG9uZy9zaG9ydC9saW5lL25vKS4KK2BgLS1mdWxsLXRy
YWNlYGAKKyAgICBkb24ndCBjdXQgYW55IHRyYWNlYmFja3MgKGRlZmF1bHQgaXMgdG8gY3V0KS4K
K2BgLS1maXh0dXJlc2BgCisgICAgc2hvdyBhdmFpbGFibGUgZnVuY3Rpb24gYXJndW1lbnRzLCBz
b3J0ZWQgYnkgcGx1Z2luCisKK1N0YXJ0IGltcHJvdmluZyB0aGlzIHBsdWdpbiBpbiAzMCBzZWNv
bmRzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKzEuIERv
d25sb2FkIGBweXRlc3RfdGVybWluYWwucHlgXyBwbHVnaW4gc291cmNlIGNvZGUKKzIuIHB1dCBp
dCBzb21ld2hlcmUgYXMgYGBweXRlc3RfdGVybWluYWwucHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBh
dGgKKzMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZl
cnNpb24KKworQ2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2luc18gb3IgYGdldCBpbiBj
b250YWN0YF8uCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTA2NzE3ZDRkM2Y2MmNj
OTdiMTUzMTUxNTFiMDdmODRkZDE4ZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjcgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi9kamFuZ28ucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xl
YWYucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVn
aW4vbm9zZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vqc2tpdC5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Bs
dWdpbi94ZGlzdC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA2ZDI0MGFlZTEzYzdkZDMxOWM5MzMxM2NmM2U4
ZWY0ZTI2NTIxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Bs
dWdpbi94ZGlzdC5yc3QKQEAgLTAsMCArMSwxNzIgQEAKKworbG9vcCBvbiBmYWlsaW5nIHRlc3Rz
LCBkaXN0cmlidXRlIHRlc3QgcnVucyB0byBDUFVzIGFuZCBob3N0cy4KKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworLi4g
Y29udGVudHM6OgorICA6bG9jYWw6CisKK1RoZSBgcHl0ZXN0LXhkaXN0YF8gcGx1Z2luIGV4dGVu
ZHMgYGBweXRlc3RgYCB3aXRoIHNvbWUgdW5pcXVlCit0ZXN0IGV4ZWN1dGlvbiBtb2RlczoKKwor
KiBMb29wb25mYWlsOiBydW4geW91ciB0ZXN0cyByZXBlYXRlZGx5IGluIGEgc3VicHJvY2Vzcy4g
IEFmdGVyIGVhY2ggcnVuCisgIGBgcHl0ZXN0YGAgd2FpdHMgdW50aWwgYSBmaWxlIGluIHlvdXIg
cHJvamVjdCBjaGFuZ2VzIGFuZCB0aGVuIHJlLXJ1bnMgdGhlCisgIHByZXZpb3VzbHkgZmFpbGlu
ZyB0ZXN0cy4gIFRoaXMgaXMgcmVwZWF0ZWQgdW50aWwgYWxsIHRlc3RzIHBhc3MgYWZ0ZXIgd2hp
Y2gKKyAgYWdhaW4gYSBmdWxsIHJ1biBpcyBwZXJmb3JtZWQuCisKKyogTG9hZC1iYWxhbmNpbmc6
IGlmIHlvdSBoYXZlIG11bHRpcGxlIENQVXMgb3IgaG9zdHMgeW91IGNhbiB1c2UKKyAgdGhvc2Ug
Zm9yIGEgY29tYmluZWQgdGVzdCBydW4uICBUaGlzIGFsbG93cyB0byBzcGVlZCB1cAorICBkZXZl
bG9wbWVudCBvciB0byB1c2Ugc3BlY2lhbCByZXNvdXJjZXMgb2YgcmVtb3RlIG1hY2hpbmVzLgor
CisqIE11bHRpLVBsYXRmb3JtIGNvdmVyYWdlOiB5b3UgY2FuIHNwZWNpZnkgZGlmZmVyZW50IFB5
dGhvbiBpbnRlcnByZXRlcnMKKyAgb3IgZGlmZmVyZW50IHBsYXRmb3JtcyBhbmQgcnVuIHRlc3Rz
IGluIHBhcmFsbGVsIG9uIGFsbCBvZiB0aGVtLgorCitCZWZvcmUgcnVubmluZyB0ZXN0cyByZW1v
dGVseSwgYGBweXRlc3RgYCBlZmZpY2llbnRseSBzeW5jaHJvbml6ZXMgeW91cgorcHJvZ3JhbSBz
b3VyY2UgY29kZSB0byB0aGUgcmVtb3RlIHBsYWNlLiAgQWxsIHRlc3QgcmVzdWx0cworYXJlIHJl
cG9ydGVkIGJhY2sgYW5kIGRpc3BsYXllZCB0byB5b3VyIGxvY2FsIHRlc3Qgc2Vzc2lvbi4KK1lv
dSBtYXkgc3BlY2lmeSBkaWZmZXJlbnQgUHl0aG9uIHZlcnNpb25zIGFuZCBpbnRlcnByZXRlcnMu
CisKKy4uIF9gcHl0ZXN0LXhkaXN0YDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVz
dC14ZGlzdAorCitVc2FnZSBleGFtcGxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1NwZWVk
IHVwIHRlc3QgcnVucyBieSBzZW5kaW5nIHRlc3RzIHRvIG11bHRpcGxlIENQVXMKKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKK1Rv
IHNlbmQgdGVzdHMgdG8gbXVsdGlwbGUgQ1BVcywgdHlwZTo6CisKKyAgICBweXRlc3QgLW4gTlVN
CisKK0VzcGVjaWFsbHkgZm9yIGxvbmdlciBydW5uaW5nIHRlc3RzIG9yIHRlc3RzIHJlcXVpcmlu
ZworYSBsb3Qgb2YgSU8gdGhpcyBjYW4gbGVhZCB0byBjb25zaWRlcmFibGUgc3BlZWQgdXBzLgor
CisKK1J1bm5pbmcgdGVzdHMgaW4gYSBQeXRob24gc3VicHJvY2VzcworKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworVG8gaW5zdGFu
dGlhdGUgYSBweXRob24yLjQgc3ViIHByb2Nlc3MgYW5kIHNlbmQgdGVzdHMgdG8gaXQsIHlvdSBt
YXkgdHlwZTo6CisKKyAgICBweXRlc3QgLWQgLS10eCBwb3Blbi8vcHl0aG9uPXB5dGhvbjIuNAor
CitUaGlzIHdpbGwgc3RhcnQgYSBzdWJwcm9jZXNzIHdoaWNoIGlzIHJ1biB3aXRoIHRoZSAicHl0
aG9uMi40IgorUHl0aG9uIGludGVycHJldGVyLCBmb3VuZCBpbiB5b3VyIHN5c3RlbSBiaW5hcnkg
bG9va3VwIHBhdGguCisKK0lmIHlvdSBwcmVmaXggdGhlIC0tdHggb3B0aW9uIHZhbHVlIGxpa2Ug
dGhpczo6CisKKyAgICAtLXR4IDMqcG9wZW4vL3B5dGhvbj1weXRob24yLjQKKwordGhlbiB0aHJl
ZSBzdWJwcm9jZXNzZXMgd291bGQgYmUgY3JlYXRlZCBhbmQgdGVzdHMKK3dpbGwgYmUgbG9hZC1i
YWxhbmNlZCBhY3Jvc3MgdGhlc2UgdGhyZWUgcHJvY2Vzc2VzLgorCisKK1NlbmRpbmcgdGVzdHMg
dG8gcmVtb3RlIFNTSCBhY2NvdW50cworKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysKKworU3VwcG9zZSB5b3UgaGF2ZSBhIHBhY2thZ2Ug
YGBteXBrZ2BgIHdoaWNoIGNvbnRhaW5zIHNvbWUKK3Rlc3RzIHRoYXQgeW91IGNhbiBzdWNjZXNz
ZnVsbHkgcnVuIGxvY2FsbHkuIEFuZCB5b3UKK2hhdmUgYSBzc2gtcmVhY2hhYmxlIG1hY2hpbmUg
YGBteWhvc3RgYC4gIFRoZW4KK3lvdSBjYW4gYWQtaG9jIGRpc3RyaWJ1dGUgeW91ciB0ZXN0cyBi
eSB0eXBpbmc6OgorCisgICAgcHl0ZXN0IC1kIC0tdHggc3NoPW15aG9zdHBvcGVuIC0tcnN5bmNk
aXIgbXlwa2cgbXlwa2cKKworVGhpcyB3aWxsIHN5bmNocm9uaXplIHlvdXIgYGBteXBrZ2BgIHBh
Y2thZ2UgZGlyZWN0b3J5Cit0byBhIHJlbW90ZSBzc2ggYWNjb3VudCBhbmQgdGhlbiBsb2NhbGx5
IGNvbGxlY3QgdGVzdHMKK2FuZCBzZW5kIHRoZW0gdG8gcmVtb3RlIHBsYWNlcyBmb3IgZXhlY3V0
aW9uLgorCitZb3UgY2FuIHNwZWNpZnkgbXVsdGlwbGUgYGAtLXJzeW5jZGlyYGAgZGlyZWN0b3Jp
ZXMKK3RvIGJlIHNlbnQgdG8gdGhlIHJlbW90ZSBzaWRlLgorCisqKk5PVEU6KiogRm9yIGBgcHl0
ZXN0YGAgdG8gY29sbGVjdCBhbmQgc2VuZCB0ZXN0cyBjb3JyZWN0bHkKK3lvdSBub3Qgb25seSBu
ZWVkIHRvIG1ha2Ugc3VyZSBhbGwgY29kZSBhbmQgdGVzdHMKK2RpcmVjdG9yaWVzIGFyZSByc3lu
Y2VkLCBidXQgdGhhdCBhbnkgdGVzdCAoc3ViKSBkaXJlY3RvcnkKK2Fsc28gaGFzIGFuIGBgX19p
bml0X18ucHlgYCBmaWxlIGJlY2F1c2UgaW50ZXJuYWxseQorYGBweXRlc3RgYCByZWZlcmVuY2Vz
IHRlc3RzIHVzaW5nIHRoZWlyIGZ1bGx5IHF1YWxpZmllZCBweXRob24KK21vZHVsZSBwYXRoLiAg
KipZb3Ugd2lsbCBvdGhlcndpc2UgZ2V0IHN0cmFuZ2UgZXJyb3JzKioKK2R1cmluZyBzZXR1cCBv
ZiB0aGUgcmVtb3RlIHNpZGUuCisKK1NlbmRpbmcgdGVzdHMgdG8gcmVtb3RlIFNvY2tldCBTZXJ2
ZXJzCisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKworCitEb3dubG9hZCB0aGUgc2luZ2xlLW1vZHVsZSBgc29ja2V0c2VydmVyLnB5YF8g
UHl0aG9uIHByb2dyYW0KK2FuZCBydW4gaXQgbGlrZSB0aGlzOjoKKworICAgIHB5dGhvbiBzb2Nr
ZXRzZXJ2ZXIucHkKKworSXQgd2lsbCB0ZWxsIHlvdSB0aGF0IGl0IHN0YXJ0cyBsaXN0ZW5pbmcg
b24gdGhlIGRlZmF1bHQKK3BvcnQuICBZb3UgY2FuIG5vdyBvbiB5b3VyIGhvbWUgbWFjaGluZSBz
cGVjaWZ5IHRoaXMKK25ldyBzb2NrZXQgaG9zdCB3aXRoIHNvbWV0aGluZyBsaWtlIHRoaXM6Ogor
CisgICAgcHl0ZXN0IC1kIC0tdHggc29ja2V0PTE5Mi4xNjguMS4xMDI6ODg4OCAtLXJzeW5jZGly
IG15cGtnIG15cGtnCisKKworLi4gX2BhdG9uY2VgOgorCitSdW5uaW5nIHRlc3RzIG9uIG1hbnkg
cGxhdGZvcm1zIGF0IG9uY2UKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCisKK1RoZSBiYXNpYyBjb21tYW5kIHRvIHJ1biB0ZXN0cyBv
biBtdWx0aXBsZSBwbGF0Zm9ybXMgaXM6OgorCisgICAgcHl0ZXN0IC0tZGlzdD1lYWNoIC0tdHg9
c3BlYzEgLS10eD1zcGVjMgorCitJZiB5b3Ugc3BlY2lmeSBhIHdpbmRvd3MgaG9zdCwgYW4gT1NY
IGhvc3QgYW5kIGEgTGludXgKK2Vudmlyb25tZW50IHRoaXMgY29tbWFuZCB3aWxsIHNlbmQgZWFj
aCB0ZXN0cyB0byBhbGwKK3BsYXRmb3JtcyAtIGFuZCByZXBvcnQgYmFjayBmYWlsdXJlcyBmcm9t
IGFsbCBwbGF0Zm9ybXMKK2F0IG9uY2UuICAgVGhlIHNwZWNpZmljYXRpb25zIHN0cmluZ3MgdXNl
IHRoZSBgeHNwZWMgc3ludGF4YF8uCisKKy4uIF9geHNwZWMgc3ludGF4YDogaHR0cDovL2NvZGVz
cGVhay5uZXQvZXhlY25ldC90cnVuay9iYXNpY3MuaHRtbCN4c3BlYworCisuLiBfYHNvY2tldHNl
cnZlci5weWA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weS9kaXN0L3B5L2V4ZWNuZXQvc2Ny
aXB0L3NvY2tldHNlcnZlci5weQorCisuLiBfYGV4ZWNuZXRgOiBodHRwOi8vY29kZXNwZWFrLm5l
dC9leGVjbmV0CisKK1NwZWNpZnlpbmcgdGVzdCBleGVjIGVudmlyb25tZW50cyBpbiBhIGNvbmZ0
ZXN0LnB5CisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKworCitJbnN0ZWFkIG9mIHNwZWNpZnlpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMs
IHlvdSBjYW4KK3B1dCBvcHRpb25zIHZhbHVlcyBpbiBhIGBgY29uZnRlc3QucHlgYCBmaWxlIGxp
a2UgdGhpczo6CisKKyAgICBvcHRpb25fdHggPSBbJ3NzaD1teWhvc3QvL3B5dGhvbj1weXRob24y
LjcnLCAncG9wZW4vL3B5dGhvbj1weXRob24yLjcnXQorICAgIG9wdGlvbl9kaXN0ID0gVHJ1ZQor
CitBbnkgY29tbWFuZGxpbmUgYGAtLXR4YGAgc3BlY2lmaWNhdGlvbnMgIHdpbGwgYWRkIHRvIHRo
ZSBsaXN0IG9mCithdmFpbGFibGUgZXhlY3V0aW9uIGVudmlyb25tZW50cy4KKworU3BlY2lmeWlu
ZyAicnN5bmMiIGRpcnMgaW4gYSBjb25mdGVzdC5weQorKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworSW4geW91ciBgYG15cGtnL2Nv
bmZ0ZXN0LnB5YGAgeW91IG1heSBzcGVjaWZ5IGRpcmVjdG9yaWVzIHRvIHN5bmNocm9uaXNlCitv
ciB0byBleGNsdWRlOjoKKworICAgIHJzeW5jZGlycyA9IFsnLicsICcuLi9wbHVnaW5zJ10KKyAg
ICByc3luY2lnbm9yZSA9IFsnX2NhY2hlJ10KKworVGhlc2UgZGlyZWN0b3J5IHNwZWNpZmljYXRp
b25zIGFyZSByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5Cit3aGVyZSB0aGUgYGBjb25mdGVzdC5w
eWBgIGlzIGZvdW5kLgorCitjb21tYW5kIGxpbmUgb3B0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworCitgYC1mLCAtLWxvb3BvbmZhaWxgYAorICAgIHJ1biB0ZXN0cyBpbiBzdWJwcm9jZXNz
LCB3YWl0IGZvciBtb2RpZmllZCBmaWxlcyBhbmQgcmUtcnVuIGZhaWxpbmcgdGVzdCBzZXQgdW50
aWwgYWxsIHBhc3MuCitgYC1uIG51bXByb2Nlc3Nlc2BgCisgICAgc2hvcnRjdXQgZm9yICctLWRp
c3Q9bG9hZCAtLXR4PU5VTSpwb3BlbicKK2BgLS1ib3hlZGBgCisgICAgYm94IGVhY2ggdGVzdCBy
dW4gaW4gYSBzZXBhcmF0ZSBwcm9jZXNzICh1bml4KQorYGAtLWRpc3Q9ZGlzdG1vZGVgYAorICAg
IHNldCBtb2RlIGZvciBkaXN0cmlidXRpbmcgdGVzdHMgdG8gZXhlYyBlbnZpcm9ubWVudHMuCisK
KyAgICBlYWNoOiBzZW5kIGVhY2ggdGVzdCB0byBlYWNoIGF2YWlsYWJsZSBlbnZpcm9ubWVudC4K
KworICAgIGxvYWQ6IHNlbmQgZWFjaCB0ZXN0IHRvIG9uZSBhdmFpbGFibGUgZW52aXJvbm1lbnQg
c28gaXQgaXMgcnVuIG9ubHkgb25jZS4KKworICAgIChkZWZhdWx0KSBubzogcnVuIHRlc3RzIGlu
cHJvY2VzcywgZG9uJ3QgZGlzdHJpYnV0ZS4KK2BgLS10eD14c3BlY2BgCisgICAgYWRkIGEgdGVz
dCBleGVjdXRpb24gZW52aXJvbm1lbnQuIHNvbWUgZXhhbXBsZXM6IC0tdHggcG9wZW4vL3B5dGhv
bj1weXRob24yLjcgLS10eCBzb2NrZXQ9MTkyLjE2OC4xLjEwMjo4ODg4IC0tdHggc3NoPXVzZXJA
Y29kZXNwZWFrLm5ldC8vY2hkaXI9dGVzdGNhY2hlCitgYC1kYGAKKyAgICBsb2FkLWJhbGFuY2Ug
dGVzdHMuICBzaG9ydGN1dCBmb3IgJy0tZGlzdD1sb2FkJworYGAtLXJzeW5jZGlyPWRpcjFgYAor
ICAgIGFkZCBkaXJlY3RvcnkgZm9yIHJzeW5jaW5nIHRvIHJlbW90ZSB0eCBub2Rlcy4KKworLi4g
aW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
dGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdkMDBmNzE4YTY3NzI0Y2YwYWY5MDU0ODRjMThjYzZiNWViMjUwM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNv
bnRlbnQ9IiAxIDsgVVJMPWluZGV4Lmh0bWwiIC8+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgZ2FKc0hvc3QgPSAoKCJodHRw
czoiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0
dHA6Ly93d3cuIik7Citkb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiAr
IGdhSnNIb3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgordHJ5IHsKK3ZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIo
IlVBLTc1OTcyNzQtMyIpOworcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKK30gY2F0Y2go
ZXJyKSB7fTwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorICAgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWI5M2Y1ZjdjZmEwZTI3MGI2Y2Q1NTJi
N2ExNjlhNzM3Yjk5MmY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvYXR0aWMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvY29uZmlnLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGVzdC9leHRlbmQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdG1wZGlyLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90bXBkaXIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MTc0NDg0ZTFk
NzYxM2JjNThhMGQ3ZjE2YTYwOTg0ZjhmMTRhOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdG1wZGlyLnJzdApAQCAtMCwwICsxLDExMSBAQAorCisuLiBfYHRtcGRpciBo
YW5kbGluZ2A6CisuLiBfdG1wZGlyOgorCitUZW1wb3JhcnkgZGlyZWN0b3JpZXMgYW5kIGZpbGVz
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhl
ICd0bXBkaXInIGZpeHR1cmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gdXNlIHRo
ZSBgYHRtcGRpcmBgIGZpeHR1cmUgd2hpY2ggd2lsbAorcHJvdmlkZSBhIHRlbXBvcmFyeSBkaXJl
Y3RvcnkgdW5pcXVlIHRvIHRoZSB0ZXN0IGludm9jYXRpb24sCitjcmVhdGVkIGluIHRoZSBgYmFz
ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5YF8uCisKK2BgdG1wZGlyYGAgaXMgYSBgcHkucGF0aC5sb2Nh
bGBfIG9iamVjdCB3aGljaCBvZmZlcnMgYGBvcy5wYXRoYGAgbWV0aG9kcworYW5kIG1vcmUuICBI
ZXJlIGlzIGFuIGV4YW1wbGUgdGVzdCB1c2FnZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF90
bXBkaXIucHkKKyAgICBpbXBvcnQgb3MKKyAgICBkZWYgdGVzdF9jcmVhdGVfZmlsZSh0bXBkaXIp
OgorICAgICAgICBwID0gdG1wZGlyLm1rZGlyKCJzdWIiKS5qb2luKCJoZWxsby50eHQiKQorICAg
ICAgICBwLndyaXRlKCJjb250ZW50IikKKyAgICAgICAgYXNzZXJ0IHAucmVhZCgpID09ICJjb250
ZW50IgorICAgICAgICBhc3NlcnQgbGVuKHRtcGRpci5saXN0ZGlyKCkpID09IDEKKyAgICAgICAg
YXNzZXJ0IDAKKworUnVubmluZyB0aGlzIHdvdWxkIHJlc3VsdCBpbiBhIHBhc3NlZCB0ZXN0IGV4
Y2VwdCBmb3IgdGhlIGxhc3QKK2BgYXNzZXJ0IDBgYCBsaW5lIHdoaWNoIHdlIHVzZSB0byBsb29r
IGF0IHZhbHVlczo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X3RtcGRpci5weQorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0z
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRlbQorICAgIAorICAgIHRlc3RfdG1wZGly
LnB5IEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlM
VVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyB0ZXN0X2NyZWF0ZV9maWxlIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCisgICAgCisgICAgdG1wZGlyID0gbG9jYWwoJ1BZVEVTVF9UTVBESVIvdGVzdF9jcmVh
dGVfZmlsZTAnKQorICAgIAorICAgICAgICBkZWYgdGVzdF9jcmVhdGVfZmlsZSh0bXBkaXIpOgor
ICAgICAgICAgICAgcCA9IHRtcGRpci5ta2Rpcigic3ViIikuam9pbigiaGVsbG8udHh0IikKKyAg
ICAgICAgICAgIHAud3JpdGUoImNvbnRlbnQiKQorICAgICAgICAgICAgYXNzZXJ0IHAucmVhZCgp
ID09ICJjb250ZW50IgorICAgICAgICAgICAgYXNzZXJ0IGxlbih0bXBkaXIubGlzdGRpcigpKSA9
PSAxCisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAg
ICB0ZXN0X3RtcGRpci5weTo3OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09
PT09PT09PT0gMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09
PT0KKworVGhlICd0bXBkaXJfZmFjdG9yeScgZml4dHVyZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKworVGhlIGBgdG1wZGlyX2ZhY3Rvcnlg
YCBpcyBhIHNlc3Npb24tc2NvcGVkIGZpeHR1cmUgd2hpY2ggY2FuIGJlIHVzZWQKK3RvIGNyZWF0
ZSBhcmJpdHJhcnkgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIGZyb20gYW55IG90aGVyIGZpeHR1cmUg
b3IgdGVzdC4KKworRm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91ciB0ZXN0IHN1aXRlIG5lZWRzIGEg
bGFyZ2UgaW1hZ2Ugb24gZGlzaywgd2hpY2ggaXMKK2dlbmVyYXRlZCBwcm9jZWR1cmFsbHkuIElu
c3RlYWQgb2YgY29tcHV0aW5nIHRoZSBzYW1lIGltYWdlIGZvciBlYWNoIHRlc3QKK3RoYXQgdXNl
cyBpdCBpbnRvIGl0cyBvd24gYGB0bXBkaXJgYCwgeW91IGNhbiBnZW5lcmF0ZSBpdCBvbmNlIHBl
ci1zZXNzaW9uCit0byBzYXZlIHRpbWU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAg
ICMgY29udGVudHMgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgIGRlZiBpbWFnZV9maWxlKHRtcGRpcl9m
YWN0b3J5KToKKyAgICAgICAgaW1nID0gY29tcHV0ZV9leHBlbnNpdmVfaW1hZ2UoKQorICAgICAg
ICBmbiA9IHRtcGRpcl9mYWN0b3J5Lm1rdGVtcCgnZGF0YScpLmpvaW4oJ2ltZy5wbmcnKQorICAg
ICAgICBpbWcuc2F2ZShzdHIoZm4pKQorICAgICAgICByZXR1cm4gZm4KKworICAgICMgY29udGVu
dHMgb2YgdGVzdF9pbWFnZS5weQorICAgIGRlZiB0ZXN0X2hpc3RvZ3JhbShpbWFnZV9maWxlKToK
KyAgICAgICAgaW1nID0gbG9hZF9pbWFnZShpbWFnZV9maWxlKQorICAgICAgICAjIGNvbXB1dGUg
YW5kIHRlc3QgaGlzdG9ncmFtCisKK2BgdG1wZGlyX2ZhY3RvcnlgYCBpbnN0YW5jZXMgaGF2ZSB0
aGUgZm9sbG93aW5nIG1ldGhvZHM6CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LnRtcGRp
cgorCisuLiBhdXRvbWV0aG9kOjogVGVtcGRpckZhY3RvcnkubWt0ZW1wCisuLiBhdXRvbWV0aG9k
OjogVGVtcGRpckZhY3RvcnkuZ2V0YmFzZXRlbXAKKworLi4gX2BiYXNlIHRlbXBvcmFyeSBkaXJl
Y3RvcnlgOgorCitUaGUgZGVmYXVsdCBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnkKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RlbXBvcmFyeSBkaXJl
Y3RvcmllcyBhcmUgYnkgZGVmYXVsdCBjcmVhdGVkIGFzIHN1Yi1kaXJlY3RvcmllcyBvZgordGhl
IHN5c3RlbSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAgVGhlIGJhc2UgbmFtZSB3aWxsIGJlIGBgcHl0
ZXN0LU5VTWBgIHdoZXJlCitgYE5VTWBgIHdpbGwgYmUgaW5jcmVtZW50ZWQgd2l0aCBlYWNoIHRl
c3QgcnVuLiAgTW9yZW92ZXIsIGVudHJpZXMgb2xkZXIKK3RoYW4gMyB0ZW1wb3JhcnkgZGlyZWN0
b3JpZXMgd2lsbCBiZSByZW1vdmVkLgorCitZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHRl
bXBvcmFyeSBkaXJlY3Rvcnkgc2V0dGluZyBsaWtlIHRoaXM6OgorCisgICAgcHl0ZXN0IC0tYmFz
ZXRlbXA9bXlkaXIKKworV2hlbiBkaXN0cmlidXRpbmcgdGVzdHMgb24gdGhlIGxvY2FsIG1hY2hp
bmUsIGBgcHl0ZXN0YGAgdGFrZXMgY2FyZSB0bworY29uZmlndXJlIGEgYmFzZXRlbXAgZGlyZWN0
b3J5IGZvciB0aGUgc3ViIHByb2Nlc3NlcyBzdWNoIHRoYXQgYWxsIHRlbXBvcmFyeQorZGF0YSBs
YW5kcyBiZWxvdyBhIHNpbmdsZSBwZXItdGVzdCBydW4gYmFzZXRlbXAgZGlyZWN0b3J5LgorCisu
LiBfYHB5LnBhdGgubG9jYWxgOiBodHRwOi8vcHkucnRmZC5vcmcvZW4vbGF0ZXN0L3BhdGguaHRt
bAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91bml0dGVzdC5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdW5pdHRlc3QucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NGJkYTQ0ZmE4MzM4NDdl
N2ViYjMwY2QwOGFjYTBmZmJlZGZmNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdW5pdHRlc3QucnN0CkBAIC0wLDAgKzEsMjQ1IEBACisKKy4uIF9gdW5pdHRlc3QuVGVz
dENhc2VgOgorLi4gX2B1bml0dGVzdGA6CisKK3VuaXR0ZXN0LlRlc3RDYXNlIFN1cHBvcnQKKz09
PT09PT09PT09PT09PT09PT09PT09PT0KKworYGBweXRlc3RgYCBzdXBwb3J0cyBydW5uaW5nIFB5
dGhvbiBgYHVuaXR0ZXN0YGAtYmFzZWQgdGVzdHMgb3V0IG9mIHRoZSBib3guCitJdCdzIG1lYW50
IGZvciBsZXZlcmFnaW5nIGV4aXN0aW5nIGBgdW5pdHRlc3RgYC1iYXNlZCB0ZXN0IHN1aXRlcwor
dG8gdXNlIHB5dGVzdCBhcyBhIHRlc3QgcnVubmVyIGFuZCBhbHNvIGFsbG93IHRvIGluY3JlbWVu
dGFsbHkgYWRhcHQKK3RoZSB0ZXN0IHN1aXRlIHRvIHRha2UgZnVsbCBhZHZhbnRhZ2Ugb2YgcHl0
ZXN0J3MgZmVhdHVyZXMuCisKK1RvIHJ1biBhbiBleGlzdGluZyBgYHVuaXR0ZXN0YGAtc3R5bGUg
dGVzdCBzdWl0ZSB1c2luZyBgYHB5dGVzdGBgLCB0eXBlOjoKKworICAgIHB5dGVzdCB0ZXN0cwor
CisKK3B5dGVzdCB3aWxsIGF1dG9tYXRpY2FsbHkgY29sbGVjdCBgYHVuaXR0ZXN0LlRlc3RDYXNl
YGAgc3ViY2xhc3NlcyBhbmQKK3RoZWlyIGBgdGVzdGBgIG1ldGhvZHMgaW4gYGB0ZXN0XyoucHlg
YCBvciBgYCpfdGVzdC5weWBgIGZpbGVzLgorCitBbG1vc3QgYWxsIGBgdW5pdHRlc3RgYCBmZWF0
dXJlcyBhcmUgc3VwcG9ydGVkOgorCisqIGBgQHVuaXR0ZXN0LnNraXBgYCBzdHlsZSBkZWNvcmF0
b3JzOworKiBgYHNldFVwL3RlYXJEb3duYGA7CisqIGBgc2V0VXBDbGFzcy90ZWFyRG93bkNsYXNz
KClgYDsKKworLi4gX2Bsb2FkX3Rlc3RzIHByb3RvY29sYDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWwjbG9hZC10ZXN0cy1wcm90b2NvbAorLi4gX2BzZXRV
cE1vZHVsZS90ZWFyRG93bk1vZHVsZWA6IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFy
eS91bml0dGVzdC5odG1sI3NldHVwbW9kdWxlLWFuZC10ZWFyZG93bm1vZHVsZQorLi4gX2BzdWJ0
ZXN0c2A6IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sI2Rp
c3Rpbmd1aXNoaW5nLXRlc3QtaXRlcmF0aW9ucy11c2luZy1zdWJ0ZXN0cworCitVcCB0byB0aGlz
IHBvaW50IHB5dGVzdCBkb2VzIG5vdCBoYXZlIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgZmVh
dHVyZXM6CisKKyogYGxvYWRfdGVzdHMgcHJvdG9jb2xgXzsKKyogYHNldFVwTW9kdWxlL3RlYXJE
b3duTW9kdWxlYF87CisqIGBzdWJ0ZXN0c2BfOworCitCZW5lZml0cyBvdXQgb2YgdGhlIGJveAor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQnkgcnVubmluZyB5b3VyIHRlc3Qgc3VpdGUgd2l0
aCBweXRlc3QgeW91IGNhbiBtYWtlIHVzZSBvZiBzZXZlcmFsIGZlYXR1cmVzLAoraW4gbW9zdCBj
YXNlcyB3aXRob3V0IGhhdmluZyB0byBtb2RpZnkgZXhpc3RpbmcgY29kZToKKworKiBPYnRhaW4g
OnJlZjpgbW9yZSBpbmZvcm1hdGl2ZSB0cmFjZWJhY2tzIDx0YnJlcG9ydGRlbW8+YDsKKyogOnJl
Zjpgc3Rkb3V0IGFuZCBzdGRlcnIgPGNhcHR1cmVzPmAgY2FwdHVyaW5nOworKiA6cmVmOmBUZXN0
IHNlbGVjdGlvbiBvcHRpb25zIDxzZWxlY3QtdGVzdHM+YCB1c2luZyBgYC1rYGAgYW5kIGBgLW1g
YCBmbGFnczsKKyogOnJlZjpgbWF4ZmFpbGA7CisqIDpyZWY6YC0tcGRiIDxwZGItb3B0aW9uPmAg
Y29tbWFuZC1saW5lIG9wdGlvbiBmb3IgZGVidWdnaW5nIG9uIHRlc3QgZmFpbHVyZXMKKyAgKHNl
ZSA6cmVmOmBub3RlIDxwZGItdW5pdHRlc3Qtbm90ZT5gIGJlbG93KTsKKyogRGlzdHJpYnV0ZSB0
ZXN0cyB0byBtdWx0aXBsZSBDUFVzIHVzaW5nIHRoZSBgcHl0ZXN0LXhkaXN0IDxodHRwOi8vcHlw
aS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXhkaXN0PmBfIHBsdWdpbjsKKyogVXNlIDpyZWY6YHBs
YWluIGFzc2VydC1zdGF0ZW1lbnRzIDxhc3NlcnQ+YCBpbnN0ZWFkIG9mIGBgc2VsZi5hc3NlcnQq
YGAgZnVuY3Rpb25zIChgdW5pdHRlc3QycHl0ZXN0CisgIDxodHRwczovL3B5cGkucHl0aG9uLm9y
Zy9weXBpL3VuaXR0ZXN0MnB5dGVzdC8+YF9fIGlzIGltbWVuc2VseSBoZWxwZnVsIGluIHRoaXMp
OworCisKK3B5dGVzdCBmZWF0dXJlcyBpbiBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAgc3ViY2xhc3Nl
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1RoZSBmb2xsb3dpbmcgcHl0ZXN0IGZlYXR1cmVzIHdvcmsgaW4gYGB1bml0dGVzdC5UZXN0Q2Fz
ZWBgIHN1YmNsYXNzZXM6CisKKyogOnJlZjpgTWFya3MgPG1hcms+YDogOnJlZjpgc2tpcCA8c2tp
cD5gLCA6cmVmOmBza2lwaWYgPHNraXBpZj5gLCA6cmVmOmB4ZmFpbCA8eGZhaWw+YDsKKyogOnJl
ZjpgQXV0by11c2UgZml4dHVyZXMgPG1peGluZy1maXh0dXJlcz5gOworCitUaGUgZm9sbG93aW5n
IHB5dGVzdCBmZWF0dXJlcyAqKmRvIG5vdCoqIHdvcmssIGFuZCBwcm9iYWJseQorbmV2ZXIgd2ls
bCBkdWUgdG8gZGlmZmVyZW50IGRlc2lnbiBwaGlsb3NvcGhpZXM6CisKKyogOnJlZjpgRml4dHVy
ZXMgPGZpeHR1cmU+YCAoZXhjZXB0IGZvciBgYGF1dG91c2VgYCBmaXh0dXJlcywgc2VlIDpyZWY6
YGJlbG93IDxtaXhpbmctZml4dHVyZXM+YCk7CisqIDpyZWY6YFBhcmFtZXRyaXphdGlvbiA8cGFy
YW1ldHJpemU+YDsKKyogOnJlZjpgQ3VzdG9tIGhvb2tzIDx3cml0aW5nLXBsdWdpbnM+YDsKKwor
CitUaGlyZCBwYXJ0eSBwbHVnaW5zIG1heSBvciBtYXkgbm90IHdvcmsgd2VsbCwgZGVwZW5kaW5n
IG9uIHRoZSBwbHVnaW4gYW5kIHRoZSB0ZXN0IHN1aXRlLgorCisuLiBfbWl4aW5nLWZpeHR1cmVz
OgorCitNaXhpbmcgcHl0ZXN0IGZpeHR1cmVzIGludG8gYGB1bml0dGVzdC5UZXN0Q2FzZWBgIHN1
YmNsYXNzZXMgdXNpbmcgbWFya3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSdW5uaW5nIHlvdXIgdW5p
dHRlc3Qgd2l0aCBgYHB5dGVzdGBgIGFsbG93cyB5b3UgdG8gdXNlIGl0cworOnJlZjpgZml4dHVy
ZSBtZWNoYW5pc20gPGZpeHR1cmU+YCB3aXRoIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBzdHlsZQor
dGVzdHMuICBBc3N1bWluZyB5b3UgaGF2ZSBhdCBsZWFzdCBza2ltbWVkIHRoZSBweXRlc3QgZml4
dHVyZSBmZWF0dXJlcywKK2xldCdzIGp1bXAtc3RhcnQgaW50byBhbiBleGFtcGxlIHRoYXQgaW50
ZWdyYXRlcyBhIHB5dGVzdCBgYGRiX2NsYXNzYGAKK2ZpeHR1cmUsIHNldHRpbmcgdXAgYSBjbGFz
cy1jYWNoZWQgZGF0YWJhc2Ugb2JqZWN0LCBhbmQgdGhlbiByZWZlcmVuY2UKK2l0IGZyb20gYSB1
bml0dGVzdC1zdHlsZSB0ZXN0OjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisg
ICAgIyB3ZSBkZWZpbmUgYSBmaXh0dXJlIGZ1bmN0aW9uIGJlbG93IGFuZCBpdCB3aWxsIGJlICJ1
c2VkIiBieQorICAgICMgcmVmZXJlbmNpbmcgaXRzIG5hbWUgZnJvbSB0ZXN0cworCisgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIpCisgICAgZGVm
IGRiX2NsYXNzKHJlcXVlc3QpOgorICAgICAgICBjbGFzcyBEdW1teURCKG9iamVjdCk6CisgICAg
ICAgICAgICBwYXNzCisgICAgICAgICMgc2V0IGEgY2xhc3MgYXR0cmlidXRlIG9uIHRoZSBpbnZv
a2luZyB0ZXN0IGNvbnRleHQgCisgICAgICAgIHJlcXVlc3QuY2xzLmRiID0gRHVtbXlEQigpCisK
K1RoaXMgZGVmaW5lcyBhIGZpeHR1cmUgZnVuY3Rpb24gYGBkYl9jbGFzc2BgIHdoaWNoIC0gaWYg
dXNlZCAtIGlzIAorY2FsbGVkIG9uY2UgZm9yIGVhY2ggdGVzdCBjbGFzcyBhbmQgd2hpY2ggc2V0
cyB0aGUgY2xhc3MtbGV2ZWwgCitgYGRiYGAgYXR0cmlidXRlIHRvIGEgYGBEdW1teURCYGAgaW5z
dGFuY2UuICBUaGUgZml4dHVyZSBmdW5jdGlvbgorYWNoaWV2ZXMgdGhpcyBieSByZWNlaXZpbmcg
YSBzcGVjaWFsIGBgcmVxdWVzdGBgIG9iamVjdCB3aGljaCBnaXZlcworYWNjZXNzIHRvIDpyZWY6
YHRoZSByZXF1ZXN0aW5nIHRlc3QgY29udGV4dCA8cmVxdWVzdC1jb250ZXh0PmAgc3VjaAorYXMg
dGhlIGBgY2xzYGAgYXR0cmlidXRlLCBkZW5vdGluZyB0aGUgY2xhc3MgZnJvbSB3aGljaCB0aGUg
Zml4dHVyZSAKK2lzIHVzZWQuICBUaGlzIGFyY2hpdGVjdHVyZSBkZS1jb3VwbGVzIGZpeHR1cmUg
d3JpdGluZyBmcm9tIGFjdHVhbCB0ZXN0Citjb2RlIGFuZCBhbGxvd3MgcmUtdXNlIG9mIHRoZSBm
aXh0dXJlIGJ5IGEgbWluaW1hbCByZWZlcmVuY2UsIHRoZSBmaXh0dXJlCituYW1lLiAgU28gbGV0
J3Mgd3JpdGUgYW4gYWN0dWFsIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBjbGFzcyB1c2luZyBvdXIg
CitmaXh0dXJlIGRlZmluaXRpb246OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfdW5pdHRlc3Rf
ZGIucHkKKworICAgIGltcG9ydCB1bml0dGVzdAorICAgIGltcG9ydCBweXRlc3QKKworICAgIEBw
eXRlc3QubWFyay51c2VmaXh0dXJlcygiZGJfY2xhc3MiKQorICAgIGNsYXNzIE15VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAg
ICAgICBhc3NlcnQgaGFzYXR0cihzZWxmLCAiZGIiKQorICAgICAgICAgICAgYXNzZXJ0IDAsIHNl
bGYuZGIgICAjIGZhaWwgZm9yIGRlbW8gcHVycG9zZXMKKworICAgICAgICBkZWYgdGVzdF9tZXRo
b2QyKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IDAsIHNlbGYuZGIgICAjIGZhaWwgZm9yIGRl
bW8gcHVycG9zZXMKKworVGhlIGBgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJkYl9jbGFzcyIp
YGAgY2xhc3MtZGVjb3JhdG9yIG1ha2VzIHN1cmUgdGhhdCAKK3RoZSBweXRlc3QgZml4dHVyZSBm
dW5jdGlvbiBgYGRiX2NsYXNzYGAgaXMgY2FsbGVkIG9uY2UgcGVyIGNsYXNzLgorRHVlIHRvIHRo
ZSBkZWxpYmVyYXRlbHkgZmFpbGluZyBhc3NlcnQgc3RhdGVtZW50cywgd2UgY2FuIHRha2UgYSBs
b29rIGF0Cit0aGUgYGBzZWxmLmRiYGAgdmFsdWVzIGluIHRoZSB0cmFjZWJhY2s6OgorCisgICAg
JCBweXRlc3QgdGVzdF91bml0dGVzdF9kYi5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Cisg
ICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3VuaXR0ZXN0X2RiLnB5IEZGICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
IE15VGVzdC50ZXN0X21ldGhvZDEgX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgIHNlbGYgPSA8dGVzdF91bml0dGVzdF9kYi5NeVRlc3QgdGVzdE1ldGhvZD10ZXN0X21ldGhv
ZDE+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICBh
c3NlcnQgaGFzYXR0cihzZWxmLCAiZGIiKQorICAgID4gICAgICAgYXNzZXJ0IDAsIHNlbGYuZGIg
ICAjIGZhaWwgZm9yIGRlbW8gcHVycG9zZXMKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiA8
Y29uZnRlc3QuZGJfY2xhc3MuPGxvY2Fscz4uRHVtbXlEQiBvYmplY3QgYXQgMHhkZWFkYmVlZj4K
KyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF91bml0dGVzdF9kYi5weTo5OiBB
c3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fXyBNeVRlc3QudGVz
dF9tZXRob2QyIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0g
PHRlc3RfdW5pdHRlc3RfZGIuTXlUZXN0IHRlc3RNZXRob2Q9dGVzdF9tZXRob2QyPgorICAgIAor
ICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0IDAsIHNl
bGYuZGIgICAjIGZhaWwgZm9yIGRlbW8gcHVycG9zZXMKKyAgICBFICAgICAgIEFzc2VydGlvbkVy
cm9yOiA8Y29uZnRlc3QuZGJfY2xhc3MuPGxvY2Fscz4uRHVtbXlEQiBvYmplY3QgYXQgMHhkZWFk
YmVlZj4KKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF91bml0dGVzdF9kYi5w
eToxMjogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDIgZmFp
bGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgZGVm
YXVsdCBweXRlc3QgdHJhY2ViYWNrIHNob3dzIHRoYXQgdGhlIHR3byB0ZXN0IG1ldGhvZHMKK3No
YXJlIHRoZSBzYW1lIGBgc2VsZi5kYmBgIGluc3RhbmNlIHdoaWNoIHdhcyBvdXIgaW50ZW50aW9u
Cit3aGVuIHdyaXRpbmcgdGhlIGNsYXNzLXNjb3BlZCBmaXh0dXJlIGZ1bmN0aW9uIGFib3ZlLgor
CisKK1VzaW5nIGF1dG91c2UgZml4dHVyZXMgYW5kIGFjY2Vzc2luZyBvdGhlciBmaXh0dXJlcwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Fs
dGhvdWdoIGl0J3MgdXN1YWxseSBiZXR0ZXIgdG8gZXhwbGljaXRseSBkZWNsYXJlIHVzZSBvZiBm
aXh0dXJlcyB5b3UgbmVlZAorZm9yIGEgZ2l2ZW4gdGVzdCwgeW91IG1heSBzb21ldGltZXMgd2Fu
dCB0byBoYXZlIGZpeHR1cmVzIHRoYXQgYXJlIAorYXV0b21hdGljYWxseSB1c2VkIGluIGEgZ2l2
ZW4gY29udGV4dC4gIEFmdGVyIGFsbCwgdGhlIHRyYWRpdGlvbmFsIAorc3R5bGUgb2YgdW5pdHRl
c3Qtc2V0dXAgbWFuZGF0ZXMgdGhlIHVzZSBvZiB0aGlzIGltcGxpY2l0IGZpeHR1cmUgd3JpdGlu
ZworYW5kIGNoYW5jZXMgYXJlLCB5b3UgYXJlIHVzZWQgdG8gaXQgb3IgbGlrZSBpdC4gIAorCitZ
b3UgY2FuIGZsYWcgZml4dHVyZSBmdW5jdGlvbnMgd2l0aCBgYEBweXRlc3QuZml4dHVyZShhdXRv
dXNlPVRydWUpYGAKK2FuZCBkZWZpbmUgdGhlIGZpeHR1cmUgZnVuY3Rpb24gaW4gdGhlIGNvbnRl
eHQgd2hlcmUgeW91IHdhbnQgaXQgdXNlZC4KK0xldCdzIGxvb2sgYXQgYW4gYGBpbml0ZGlyYGAg
Zml4dHVyZSB3aGljaCBtYWtlcyBhbGwgdGVzdCBtZXRob2RzIG9mIGEKK2BgVGVzdENhc2VgYCBj
bGFzcyBleGVjdXRlIGluIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aXRoIGEKK3ByZS1pbml0aWFs
aXplZCBgYHNhbXBsZWZpbGUuaW5pYGAuICBPdXIgYGBpbml0ZGlyYGAgZml4dHVyZSBpdHNlbGYg
dXNlcwordGhlIHB5dGVzdCBidWlsdGluIDpyZWY6YHRtcGRpciA8dG1wZGlyPmAgZml4dHVyZSB0
byBkZWxlZ2F0ZSB0aGUKK2NyZWF0aW9uIG9mIGEgcGVyLXRlc3QgdGVtcG9yYXJ5IGRpcmVjdG9y
eTo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF91bml0dGVzdF9jbGVhbmRpci5weQorICAgIGlt
cG9ydCBweXRlc3QKKyAgICBpbXBvcnQgdW5pdHRlc3QKKworICAgIGNsYXNzIE15VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkK
KyAgICAgICAgZGVmIGluaXRkaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgICAgIHRtcGRpci5j
aGRpcigpICMgY2hhbmdlIHRvIHB5dGVzdC1wcm92aWRlZCB0ZW1wb3JhcnkgZGlyZWN0b3J5Cisg
ICAgICAgICAgICB0bXBkaXIuam9pbigic2FtcGxlZmlsZS5pbmkiKS53cml0ZSgiIyB0ZXN0ZGF0
YSIpCisKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgd2l0aCBv
cGVuKCJzYW1wbGVmaWxlLmluaSIpIGFzIGY6CisgICAgICAgICAgICAgICAgcyA9IGYucmVhZCgp
CisgICAgICAgICAgICBhc3NlcnQgInRlc3RkYXRhIiBpbiBzCisKK0R1ZSB0byB0aGUgYGBhdXRv
dXNlYGAgZmxhZyB0aGUgYGBpbml0ZGlyYGAgZml4dHVyZSBmdW5jdGlvbiB3aWxsIGJlCit1c2Vk
IGZvciBhbGwgbWV0aG9kcyBvZiB0aGUgY2xhc3Mgd2hlcmUgaXQgaXMgZGVmaW5lZC4gIFRoaXMg
aXMgYQorc2hvcnRjdXQgZm9yIHVzaW5nIGEgYGBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoImlu
aXRkaXIiKWBgIG1hcmtlcgorb24gdGhlIGNsYXNzIGxpa2UgaW4gdGhlIHByZXZpb3VzIGV4YW1w
bGUuCisKK1J1bm5pbmcgdGhpcyB0ZXN0IG1vZHVsZSAuLi46OgorCisgICAgJCBweXRlc3QgLXEg
dGVzdF91bml0dGVzdF9jbGVhbmRpci5weQorICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIDEg
cGFzc2VkIGluIDAuMTIgc2Vjb25kcworCisuLi4gZ2l2ZXMgdXMgb25lIHBhc3NlZCB0ZXN0IGJl
Y2F1c2UgdGhlIGBgaW5pdGRpcmBgIGZpeHR1cmUgZnVuY3Rpb24KK3dhcyBleGVjdXRlZCBhaGVh
ZCBvZiB0aGUgYGB0ZXN0X21ldGhvZGBgLgorCisuLiBub3RlOjoKKworICAgYGB1bml0dGVzdC5U
ZXN0Q2FzZWBgIG1ldGhvZHMgY2Fubm90IGRpcmVjdGx5IHJlY2VpdmUgZml4dHVyZQorICAgYXJn
dW1lbnRzIGFzIGltcGxlbWVudGluZyB0aGF0IGlzIGxpa2VseSB0byBpbmZsaWN0CisgICBvbiB0
aGUgYWJpbGl0eSB0byBydW4gZ2VuZXJhbCB1bml0dGVzdC5UZXN0Q2FzZSB0ZXN0IHN1aXRlcy4K
KworICAgVGhlIGFib3ZlIGBgdXNlZml4dHVyZXNgYCBhbmQgYGBhdXRvdXNlYGAgZXhhbXBsZXMg
c2hvdWxkIGhlbHAgdG8gbWl4IGluCisgICBweXRlc3QgZml4dHVyZXMgaW50byB1bml0dGVzdCBz
dWl0ZXMuCisKKyAgIFlvdSBjYW4gYWxzbyBncmFkdWFsbHkgbW92ZSBhd2F5IGZyb20gc3ViY2xh
c3NpbmcgZnJvbSBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAgdG8gKnBsYWluIGFzc2VydHMqCisgICBh
bmQgdGhlbiBzdGFydCB0byBiZW5lZml0IGZyb20gdGhlIGZ1bGwgcHl0ZXN0IGZlYXR1cmUgc2V0
IHN0ZXAgYnkgc3RlcC4KKworLi4gX3BkYi11bml0dGVzdC1ub3RlOgorCisuLiBub3RlOjoKKwor
ICAgIFJ1bm5pbmcgdGVzdHMgZnJvbSBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAgc3ViY2xhc3NlcyB3
aXRoIGBgLS1wZGJgYCB3aWxsCisgICAgZGlzYWJsZSB0ZWFyRG93biBhbmQgY2xlYW51cCBtZXRo
b2RzIGZvciB0aGUgY2FzZSB0aGF0IGFuIEV4Y2VwdGlvbgorICAgIG9jY3Vycy4gVGhpcyBhbGxv
d3MgcHJvcGVyIHBvc3QgbW9ydGVtIGRlYnVnZ2luZyBmb3IgYWxsIGFwcGxpY2F0aW9ucworICAg
IHdoaWNoIGhhdmUgc2lnbmlmaWNhbnQgbG9naWMgaW4gdGhlaXIgdGVhckRvd24gbWFjaGluZXJ5
LiBIb3dldmVyLAorICAgIHN1cHBvcnRpbmcgdGhpcyBmZWF0dXJlIGhhcyB0aGUgZm9sbG93aW5n
IHNpZGUgZWZmZWN0OiBJZiBwZW9wbGUKKyAgICBvdmVyd3JpdGUgYGB1bml0dGVzdC5UZXN0Q2Fz
ZWBgIGBgX19jYWxsX19gYCBvciBgYHJ1bmBgLCB0aGV5IG5lZWQgdG8KKyAgICB0byBvdmVyd3Jp
dGUgYGBkZWJ1Z2BgIGluIHRoZSBzYW1lIHdheSAgKHRoaXMgaXMgYWxzbyB0cnVlIGZvciBzdGFu
ZGFyZAorICAgIHVuaXR0ZXN0KS4KKworLi4gbm90ZTo6CisKKyAgICBEdWUgdG8gYXJjaGl0ZWN0
dXJhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gZnJhbWV3b3Jrcywgc2V0dXAgYW5kCisg
ICAgdGVhcmRvd24gZm9yIGBgdW5pdHRlc3RgYC1iYXNlZCB0ZXN0cyBpcyBwZXJmb3JtZWQgZHVy
aW5nIHRoZSBgYGNhbGxgYCBwaGFzZQorICAgIG9mIHRlc3RpbmcgaW5zdGVhZCBvZiBpbiBgYHB5
dGVzdGBgJ3Mgc3RhbmRhcmQgYGBzZXR1cGBgIGFuZCBgYHRlYXJkb3duYGAKKyAgICBzdGFnZXMu
IFRoaXMgY2FuIGJlIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGluIHNvbWUgc2l0dWF0aW9ucywg
cGFydGljdWxhcmx5CisgICAgd2hlbiByZWFzb25pbmcgYWJvdXQgZXJyb3JzLiBGb3IgZXhhbXBs
ZSwgaWYgYSBgYHVuaXR0ZXN0YGAtYmFzZWQgc3VpdGUKKyAgICBleGhpYml0cyBlcnJvcnMgZHVy
aW5nIHNldHVwLCBgYHB5dGVzdGBgIHdpbGwgcmVwb3J0IG5vIGVycm9ycyBkdXJpbmcgaXRzCisg
ICAgYGBzZXR1cGBgIHBoYXNlIGFuZCB3aWxsIGluc3RlYWQgcmFpc2UgdGhlIGVycm9yIGR1cmlu
ZyBgYGNhbGxgYC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91c2FnZS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdXNhZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwOTFkYjhiZTM4ZmZjZmIw
ZTQ5N2VjMzlmMzVkZTA1MjlhODIyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdXNhZ2UucnN0CkBAIC0wLDAgKzEsMzkyIEBACisKKy4uIF91c2FnZToKKworVXNhZ2Ug
YW5kIEludm9jYXRpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworCisuLiBfY21kbGluZToKKworQ2FsbGluZyBweXRlc3QgdGhyb3VnaCBgYHB5dGhvbiAt
bSBweXRlc3RgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMi4wCisKK1lvdSBjYW4gaW52b2tlIHRlc3Rp
bmcgdGhyb3VnaCB0aGUgUHl0aG9uIGludGVycHJldGVyIGZyb20gdGhlIGNvbW1hbmQgbGluZTo6
CisKKyAgICBweXRob24gLW0gcHl0ZXN0IFsuLi5dCisKK1RoaXMgaXMgYWxtb3N0IGVxdWl2YWxl
bnQgdG8gaW52b2tpbmcgdGhlIGNvbW1hbmQgbGluZSBzY3JpcHQgYGBweXRlc3QgWy4uLl1gYAor
ZGlyZWN0bHksIGV4Y2VwdCB0aGF0IGNhbGxpbmcgdmlhIGBgcHl0aG9uYGAgd2lsbCBhbHNvIGFk
ZCB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gYGBzeXMucGF0aGBgLgorCitQb3NzaWJsZSBleGl0
IGNvZGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitSdW5uaW5nIGBgcHl0ZXN0YGAgY2FuIHJlc3VsdCBpbiBzaXggZGlm
ZmVyZW50IGV4aXQgY29kZXM6CisKKzpFeGl0IGNvZGUgMDogQWxsIHRlc3RzIHdlcmUgY29sbGVj
dGVkIGFuZCBwYXNzZWQgc3VjY2Vzc2Z1bGx5Cis6RXhpdCBjb2RlIDE6IFRlc3RzIHdlcmUgY29s
bGVjdGVkIGFuZCBydW4gYnV0IHNvbWUgb2YgdGhlIHRlc3RzIGZhaWxlZAorOkV4aXQgY29kZSAy
OiBUZXN0IGV4ZWN1dGlvbiB3YXMgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIKKzpFeGl0IGNvZGUg
MzogSW50ZXJuYWwgZXJyb3IgaGFwcGVuZWQgd2hpbGUgZXhlY3V0aW5nIHRlc3RzCis6RXhpdCBj
b2RlIDQ6IHB5dGVzdCBjb21tYW5kIGxpbmUgdXNhZ2UgZXJyb3IKKzpFeGl0IGNvZGUgNTogTm8g
dGVzdHMgd2VyZSBjb2xsZWN0ZWQKKworR2V0dGluZyBoZWxwIG9uIHZlcnNpb24sIG9wdGlvbiBu
YW1lcywgZW52aXJvbm1lbnQgdmFyaWFibGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6OgorCisgICAgcHl0ZXN0IC0t
dmVyc2lvbiAgICMgc2hvd3Mgd2hlcmUgcHl0ZXN0IHdhcyBpbXBvcnRlZCBmcm9tCisgICAgcHl0
ZXN0IC0tZml4dHVyZXMgICMgc2hvdyBhdmFpbGFibGUgYnVpbHRpbiBmdW5jdGlvbiBhcmd1bWVu
dHMKKyAgICBweXRlc3QgLWggfCAtLWhlbHAgIyBzaG93IGhlbHAgb24gY29tbWFuZCBsaW5lIGFu
ZCBjb25maWcgZmlsZSBvcHRpb25zCisKKworLi4gX21heGZhaWw6CisKK1N0b3BwaW5nIGFmdGVy
IHRoZSBmaXJzdCAob3IgTikgZmFpbHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBzdG9wIHRoZSB0ZXN0aW5nIHByb2Nlc3MgYWZ0
ZXIgdGhlIGZpcnN0IChOKSBmYWlsdXJlczo6CisKKyAgICBweXRlc3QgLXggICAgICAgICAgICAj
IHN0b3AgYWZ0ZXIgZmlyc3QgZmFpbHVyZQorICAgIHB5dGVzdCAtLW1heGZhaWw9MiAgICAjIHN0
b3AgYWZ0ZXIgdHdvIGZhaWx1cmVzCisKKy4uIF9zZWxlY3QtdGVzdHM6CisKK1NwZWNpZnlpbmcg
dGVzdHMgLyBzZWxlY3RpbmcgdGVzdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitQeXRlc3Qgc3VwcG9ydHMgc2V2ZXJhbCB3YXlzIHRvIHJ1
biBhbmQgc2VsZWN0IHRlc3RzIGZyb20gdGhlIGNvbW1hbmQtbGluZS4KKworKipSdW4gdGVzdHMg
aW4gYSBtb2R1bGUqKgorCis6OgorCisgICAgcHl0ZXN0IHRlc3RfbW9kLnB5CisKKyoqUnVuIHRl
c3RzIGluIGEgZGlyZWN0b3J5KioKKworOjoKKworICAgIHB5dGVzdCB0ZXN0aW5nLworCisqKlJ1
biB0ZXN0cyBieSBrZXl3b3JkIGV4cHJlc3Npb25zKioKKworOjoKKworICAgIHB5dGVzdCAtayAi
TXlDbGFzcyBhbmQgbm90IG1ldGhvZCIKKworVGhpcyB3aWxsIHJ1biB0ZXN0cyB3aGljaCBjb250
YWluIG5hbWVzIHRoYXQgbWF0Y2ggdGhlIGdpdmVuICpzdHJpbmcgZXhwcmVzc2lvbiosIHdoaWNo
IGNhbgoraW5jbHVkZSBQeXRob24gb3BlcmF0b3JzIHRoYXQgdXNlIGZpbGVuYW1lcywgY2xhc3Mg
bmFtZXMgYW5kIGZ1bmN0aW9uIG5hbWVzIGFzIHZhcmlhYmxlcy4KK1RoZSBleGFtcGxlIGFib3Zl
IHdpbGwgcnVuIGBgVGVzdE15Q2xhc3MudGVzdF9zb21ldGhpbmdgYCAgYnV0IG5vdCBgYFRlc3RN
eUNsYXNzLnRlc3RfbWV0aG9kX3NpbXBsZWBgLgorCisuLiBfbm9kZWlkczoKKworKipSdW4gdGVz
dHMgYnkgbm9kZSBpZHMqKgorCitFYWNoIGNvbGxlY3RlZCB0ZXN0IGlzIGFzc2lnbmVkIGEgdW5p
cXVlIGBgbm9kZWlkYGAgd2hpY2ggY29uc2lzdCBvZiB0aGUgbW9kdWxlIGZpbGVuYW1lIGZvbGxv
d2VkCitieSBzcGVjaWZpZXJzIGxpa2UgY2xhc3MgbmFtZXMsIGZ1bmN0aW9uIG5hbWVzIGFuZCBw
YXJhbWV0ZXJzIGZyb20gcGFyYW1ldHJpemF0aW9uLCBzZXBhcmF0ZWQgYnkgYGA6OmBgIGNoYXJh
Y3RlcnMuCisKK1RvIHJ1biBhIHNwZWNpZmljIHRlc3Qgd2l0aGluIGEgbW9kdWxlOjoKKworICAg
IHB5dGVzdCB0ZXN0X21vZC5weTo6dGVzdF9mdW5jCisKKworQW5vdGhlciBleGFtcGxlIHNwZWNp
ZnlpbmcgYSB0ZXN0IG1ldGhvZCBpbiB0aGUgY29tbWFuZCBsaW5lOjoKKworICAgIHB5dGVzdCB0
ZXN0X21vZC5weTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZAorCisqKlJ1biB0ZXN0cyBieSBtYXJr
ZXIgZXhwcmVzc2lvbnMqKgorCis6OgorCisgICAgcHl0ZXN0IC1tIHNsb3cKKworV2lsbCBydW4g
YWxsIHRlc3RzIHdoaWNoIGFyZSBkZWNvcmF0ZWQgd2l0aCB0aGUgYGBAcHl0ZXN0Lm1hcmsuc2xv
d2BgIGRlY29yYXRvci4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIDpyZWY6YG1hcmtzIDxt
YXJrPmAuCisKKyoqUnVuIHRlc3RzIGZyb20gcGFja2FnZXMqKgorCis6OgorCisgICAgcHl0ZXN0
IC0tcHlhcmdzIHBrZy50ZXN0aW5nCisgICAgIAorVGhpcyB3aWxsIGltcG9ydCBgYHBrZy50ZXN0
aW5nYGAgYW5kIHVzZSBpdHMgZmlsZXN5c3RlbSBsb2NhdGlvbiB0byBmaW5kIGFuZCBydW4gdGVz
dHMgZnJvbS4KKyAgICAKKworTW9kaWZ5aW5nIFB5dGhvbiB0cmFjZWJhY2sgcHJpbnRpbmcKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRXhhbXBsZXMg
Zm9yIG1vZGlmeWluZyB0cmFjZWJhY2sgcHJpbnRpbmc6OgorCisgICAgcHl0ZXN0IC0tc2hvd2xv
Y2FscyAjIHNob3cgbG9jYWwgdmFyaWFibGVzIGluIHRyYWNlYmFja3MKKyAgICBweXRlc3QgLWwg
ICAgICAgICAgICMgc2hvdyBsb2NhbCB2YXJpYWJsZXMgKHNob3J0Y3V0KQorCisgICAgcHl0ZXN0
IC0tdGI9YXV0byAgICAjIChkZWZhdWx0KSAnbG9uZycgdHJhY2ViYWNrcyBmb3IgdGhlIGZpcnN0
IGFuZCBsYXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgIyBlbnRyeSwgYnV0ICdzaG9ydCcg
c3R5bGUgZm9yIHRoZSBvdGhlciBlbnRyaWVzCisgICAgcHl0ZXN0IC0tdGI9bG9uZyAgICAjIGV4
aGF1c3RpdmUsIGluZm9ybWF0aXZlIHRyYWNlYmFjayBmb3JtYXR0aW5nCisgICAgcHl0ZXN0IC0t
dGI9c2hvcnQgICAjIHNob3J0ZXIgdHJhY2ViYWNrIGZvcm1hdAorICAgIHB5dGVzdCAtLXRiPWxp
bmUgICAgIyBvbmx5IG9uZSBsaW5lIHBlciBmYWlsdXJlCisgICAgcHl0ZXN0IC0tdGI9bmF0aXZl
ICAjIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5IGZvcm1hdHRpbmcKKyAgICBweXRlc3QgLS10Yj1u
byAgICAgICMgbm8gdHJhY2ViYWNrIGF0IGFsbAorCitUaGUgYGAtLWZ1bGwtdHJhY2VgYCBjYXVz
ZXMgdmVyeSBsb25nIHRyYWNlcyB0byBiZSBwcmludGVkIG9uIGVycm9yIChsb25nZXIKK3RoYW4g
YGAtLXRiPWxvbmdgYCkuIEl0IGFsc28gZW5zdXJlcyB0aGF0IGEgc3RhY2sgdHJhY2UgaXMgcHJp
bnRlZCBvbgorKipLZXlib2FyZEludGVycnVwdCoqIChDdHJsK0MpLgorVGhpcyBpcyB2ZXJ5IHVz
ZWZ1bCBpZiB0aGUgdGVzdHMgYXJlIHRha2luZyB0b28gbG9uZyBhbmQgeW91IGludGVycnVwdCB0
aGVtCit3aXRoIEN0cmwrQyB0byBmaW5kIG91dCB3aGVyZSB0aGUgdGVzdHMgYXJlICpoYW5naW5n
Ki4gQnkgZGVmYXVsdCBubyBvdXRwdXQKK3dpbGwgYmUgc2hvd24gKGJlY2F1c2UgS2V5Ym9hcmRJ
bnRlcnJ1cHQgaXMgY2F1Z2h0IGJ5IHB5dGVzdCkuIEJ5IHVzaW5nIHRoaXMKK29wdGlvbiB5b3Ug
bWFrZSBzdXJlIGEgdHJhY2UgaXMgc2hvd24uCisKKworLi4gX3BkYi1vcHRpb246CisKK0Ryb3Bw
aW5nIHRvIFBEQl8gKFB5dGhvbiBEZWJ1Z2dlcikgb24gZmFpbHVyZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIF9QREI6IGh0dHA6Ly9kb2Nz
LnB5dGhvbi5vcmcvbGlicmFyeS9wZGIuaHRtbAorCitQeXRob24gY29tZXMgd2l0aCBhIGJ1aWx0
aW4gUHl0aG9uIGRlYnVnZ2VyIGNhbGxlZCBQREJfLiAgYGBweXRlc3RgYAorYWxsb3dzIG9uZSB0
byBkcm9wIGludG8gdGhlIFBEQl8gcHJvbXB0IHZpYSBhIGNvbW1hbmQgbGluZSBvcHRpb246Ogor
CisgICAgcHl0ZXN0IC0tcGRiCisKK1RoaXMgd2lsbCBpbnZva2UgdGhlIFB5dGhvbiBkZWJ1Z2dl
ciBvbiBldmVyeSBmYWlsdXJlLiAgT2Z0ZW4geW91IG1pZ2h0Citvbmx5IHdhbnQgdG8gZG8gdGhp
cyBmb3IgdGhlIGZpcnN0IGZhaWxpbmcgdGVzdCB0byB1bmRlcnN0YW5kIGEgY2VydGFpbgorZmFp
bHVyZSBzaXR1YXRpb246OgorCisgICAgcHl0ZXN0IC14IC0tcGRiICAgIyBkcm9wIHRvIFBEQiBv
biBmaXJzdCBmYWlsdXJlLCB0aGVuIGVuZCB0ZXN0IHNlc3Npb24KKyAgICBweXRlc3QgLS1wZGIg
LS1tYXhmYWlsPTMgICMgZHJvcCB0byBQREIgZm9yIGZpcnN0IHRocmVlIGZhaWx1cmVzCisKK05v
dGUgdGhhdCBvbiBhbnkgZmFpbHVyZSB0aGUgZXhjZXB0aW9uIGluZm9ybWF0aW9uIGlzIHN0b3Jl
ZCBvbgorYGBzeXMubGFzdF92YWx1ZWBgLCBgYHN5cy5sYXN0X3R5cGVgYCBhbmQgYGBzeXMubGFz
dF90cmFjZWJhY2tgYC4gSW4KK2ludGVyYWN0aXZlIHVzZSwgdGhpcyBhbGxvd3Mgb25lIHRvIGRy
b3AgaW50byBwb3N0bW9ydGVtIGRlYnVnZ2luZyB3aXRoCithbnkgZGVidWcgdG9vbC4gT25lIGNh
biBhbHNvIG1hbnVhbGx5IGFjY2VzcyB0aGUgZXhjZXB0aW9uIGluZm9ybWF0aW9uLAorZm9yIGV4
YW1wbGU6OgorCisgICAgPj4+IGltcG9ydCBzeXMKKyAgICA+Pj4gc3lzLmxhc3RfdHJhY2ViYWNr
LnRiX2xpbmVubworICAgIDQyCisgICAgPj4+IHN5cy5sYXN0X3ZhbHVlCisgICAgQXNzZXJ0aW9u
RXJyb3IoJ2Fzc2VydCByZXN1bHQgPT0gIm9rIicsKQorCisuLiBfYnJlYWtwb2ludHM6CisKK1Nl
dHRpbmcgYnJlYWtwb2ludHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVk
OiAyLjQuMAorCitUbyBzZXQgYSBicmVha3BvaW50IGluIHlvdXIgY29kZSB1c2UgdGhlIG5hdGl2
ZSBQeXRob24gYGBpbXBvcnQgcGRiO3BkYi5zZXRfdHJhY2UoKWBgIGNhbGwKK2luIHlvdXIgY29k
ZSBhbmQgcHl0ZXN0IGF1dG9tYXRpY2FsbHkgZGlzYWJsZXMgaXRzIG91dHB1dCBjYXB0dXJlIGZv
ciB0aGF0IHRlc3Q6CisKKyogT3V0cHV0IGNhcHR1cmUgaW4gb3RoZXIgdGVzdHMgaXMgbm90IGFm
ZmVjdGVkLgorKiBBbnkgcHJpb3IgdGVzdCBvdXRwdXQgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGNh
cHR1cmVkIGFuZCB3aWxsIGJlIHByb2Nlc3NlZCBhcworICBzdWNoLgorKiBBbnkgbGF0ZXIgb3V0
cHV0IHByb2R1Y2VkIHdpdGhpbiB0aGUgc2FtZSB0ZXN0IHdpbGwgbm90IGJlIGNhcHR1cmVkIGFu
ZCB3aWxsCisgIGluc3RlYWQgZ2V0IHNlbnQgZGlyZWN0bHkgdG8gYGBzeXMuc3Rkb3V0YGAuIE5v
dGUgdGhhdCB0aGlzIGhvbGRzIHRydWUgZXZlbgorICBmb3IgdGVzdCBvdXRwdXQgb2NjdXJyaW5n
IGFmdGVyIHlvdSBleGl0IHRoZSBpbnRlcmFjdGl2ZSBQREJfIHRyYWNpbmcgc2Vzc2lvbgorICBh
bmQgY29udGludWUgd2l0aCB0aGUgcmVndWxhciB0ZXN0IHJ1bi4KKworLi4gX2R1cmF0aW9uczoK
KworUHJvZmlsaW5nIHRlc3QgZXhlY3V0aW9uIGR1cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDogMi4yCisKK1RvIGdldCBhIGxp
c3Qgb2YgdGhlIHNsb3dlc3QgMTAgdGVzdCBkdXJhdGlvbnM6OgorCisgICAgcHl0ZXN0IC0tZHVy
YXRpb25zPTEwCisKKworQ3JlYXRpbmcgSlVuaXRYTUwgZm9ybWF0IGZpbGVzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIGNyZWF0ZSBy
ZXN1bHQgZmlsZXMgd2hpY2ggY2FuIGJlIHJlYWQgYnkgSmVua2luc18gb3Igb3RoZXIgQ29udGlu
dW91cworaW50ZWdyYXRpb24gc2VydmVycywgdXNlIHRoaXMgaW52b2NhdGlvbjo6CisKKyAgICBw
eXRlc3QgLS1qdW5pdHhtbD1wYXRoCisKK3RvIGNyZWF0ZSBhbiBYTUwgZmlsZSBhdCBgYHBhdGhg
YC4KKworLi4gdmVyc2lvbmFkZGVkOjogMy4xCisKK1RvIHNldCB0aGUgbmFtZSBvZiB0aGUgcm9v
dCB0ZXN0IHN1aXRlIHhtbCBpdGVtLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgYGBqdW5pdF9zdWl0
ZV9uYW1lYGAgb3B0aW9uIGluIHlvdXIgY29uZmlnIGZpbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBp
bmkKKworICAgIFtweXRlc3RdCisgICAganVuaXRfc3VpdGVfbmFtZSA9IG15X3N1aXRlCisKK3Jl
Y29yZF94bWxfcHJvcGVydHkKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKKy4u
IHZlcnNpb25hZGRlZDo6IDIuOAorCitJZiB5b3Ugd2FudCB0byBsb2cgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbiBmb3IgYSB0ZXN0LCB5b3UgY2FuIHVzZSB0aGUKK2BgcmVjb3JkX3htbF9wcm9wZXJ0
eWBgIGZpeHR1cmU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKHJlY29yZF94bWxfcHJvcGVydHkpOgorICAgICAgICByZWNvcmRfeG1sX3Byb3BlcnR5
KCJleGFtcGxlX2tleSIsIDEpCisgICAgICAgIGFzc2VydCAwCisKK1RoaXMgd2lsbCBhZGQgYW4g
ZXh0cmEgcHJvcGVydHkgYGBleGFtcGxlX2tleT0iMSJgYCB0byB0aGUgZ2VuZXJhdGVkCitgYHRl
c3RjYXNlYGAgdGFnOgorCisuLiBjb2RlLWJsb2NrOjogeG1sCisKKyAgICA8dGVzdGNhc2UgY2xh
c3NuYW1lPSJ0ZXN0X2Z1bmN0aW9uIiBmaWxlPSJ0ZXN0X2Z1bmN0aW9uLnB5IiBsaW5lPSIwIiBu
YW1lPSJ0ZXN0X2Z1bmN0aW9uIiB0aW1lPSIwLjAwMDkiPgorICAgICAgPHByb3BlcnRpZXM+Cisg
ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJleGFtcGxlX2tleSIgdmFsdWU9IjEiIC8+CisgICAgICA8
L3Byb3BlcnRpZXM+CisgICAgPC90ZXN0Y2FzZT4KKworLi4gd2FybmluZzo6CisKKyAgICBgYHJl
Y29yZF94bWxfcHJvcGVydHlgYCBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSwgYW5kIGl0cyBp
bnRlcmZhY2UgbWlnaHQgYmUgcmVwbGFjZWQKKyAgICBieSBzb21ldGhpbmcgbW9yZSBwb3dlcmZ1
bCBhbmQgZ2VuZXJhbCBpbiBmdXR1cmUgdmVyc2lvbnMuIFRoZQorICAgIGZ1bmN0aW9uYWxpdHkg
cGVyLXNlIHdpbGwgYmUga2VwdCwgaG93ZXZlci4KKworICAgIEN1cnJlbnRseSBpdCBkb2VzIG5v
dCB3b3JrIHdoZW4gdXNlZCB3aXRoIHRoZSBgYHB5dGVzdC14ZGlzdGBgIHBsdWdpbi4KKworICAg
IEFsc28gcGxlYXNlIG5vdGUgdGhhdCB1c2luZyB0aGlzIGZlYXR1cmUgd2lsbCBicmVhayBhbnkg
c2NoZW1hIHZlcmlmaWNhdGlvbi4KKyAgICBUaGlzIG1pZ2h0IGJlIGEgcHJvYmxlbSB3aGVuIHVz
ZWQgd2l0aCBzb21lIENJIHNlcnZlcnMuCisKK0xvZ1hNTDogYWRkX2dsb2JhbF9wcm9wZXJ0eQor
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworLi4gdmVyc2lvbmFkZGVkOjogMy4w
CisKK0lmIHlvdSB3YW50IHRvIGFkZCBhIHByb3BlcnRpZXMgbm9kZSBpbiB0aGUgdGVzdHN1aXRl
IGxldmVsLCB3aGljaCBtYXkgY29udGFpbnMgcHJvcGVydGllcyB0aGF0IGFyZSByZWxldmFudAor
dG8gYWxsIHRlc3RjYXNlcyB5b3UgY2FuIHVzZSBgYExvZ1hNTC5hZGRfZ2xvYmFsX3Byb3BlcnRp
ZXNgYAorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgIGRlZiBsb2dfZ2xvYmFsX2Vu
dl9mYWN0cyhmKToKKworICAgICAgICBpZiBweXRlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuaGFz
cGx1Z2luKCdqdW5pdHhtbCcpOgorICAgICAgICAgICAgbXlfanVuaXQgPSBnZXRhdHRyKHB5dGVz
dC5jb25maWcsICdfeG1sJywgTm9uZSkKKworICAgICAgICBteV9qdW5pdC5hZGRfZ2xvYmFsX3By
b3BlcnR5KCdBUkNIJywgJ1BQQycpCisgICAgICAgIG15X2p1bml0LmFkZF9nbG9iYWxfcHJvcGVy
dHkoJ1NUT1JBR0VfVFlQRScsICdDRVBIJykKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJl
cyhsb2dfZ2xvYmFsX2Vudl9mYWN0cykKKyAgICBkZWYgc3RhcnRfYW5kX3ByZXBhcmVfZW52KCk6
CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIFRlc3RNZShvYmplY3QpOgorICAgICAgICBkZWYg
dGVzdF9mb28oc2VsZik6CisgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorCitUaGlzIHdpbGwgYWRk
IGEgcHJvcGVydHkgbm9kZSBiZWxvdyB0aGUgdGVzdHN1aXRlIG5vZGUgdG8gdGhlIGdlbmVyYXRl
ZCB4bWw6CisKKy4uIGNvZGUtYmxvY2s6OiB4bWwKKworICAgIDx0ZXN0c3VpdGUgZXJyb3JzPSIw
IiBmYWlsdXJlcz0iMCIgbmFtZT0icHl0ZXN0IiBza2lwcz0iMCIgdGVzdHM9IjEiIHRpbWU9IjAu
MDA2Ij4KKyAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iQVJDSCIg
dmFsdWU9IlBQQyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iU1RPUkFHRV9UWVBFIiB2YWx1
ZT0iQ0VQSCIvPgorICAgICAgPC9wcm9wZXJ0aWVzPgorICAgICAgPHRlc3RjYXNlIGNsYXNzbmFt
ZT0idGVzdF9tZS5UZXN0TWUiIGZpbGU9InRlc3RfbWUucHkiIGxpbmU9IjE2IiBuYW1lPSJ0ZXN0
X2ZvbyIgdGltZT0iMC4wMDAyNDM2NjM3ODc4NDIiLz4KKyAgICA8L3Rlc3RzdWl0ZT4KKworLi4g
d2FybmluZzo6CisKKyAgICBUaGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLCBhbmQgaXRz
IGludGVyZmFjZSBtaWdodCBiZSByZXBsYWNlZAorICAgIGJ5IHNvbWV0aGluZyBtb3JlIHBvd2Vy
ZnVsIGFuZCBnZW5lcmFsIGluIGZ1dHVyZSB2ZXJzaW9ucy4gVGhlCisgICAgZnVuY3Rpb25hbGl0
eSBwZXItc2Ugd2lsbCBiZSBrZXB0LgorCitDcmVhdGluZyByZXN1bHRsb2cgZm9ybWF0IGZpbGVz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIGRlcHJlY2F0ZWQ6OiAzLjAKKworICAgIFRoaXMgb3B0aW9uIGlzIHJhcmVseSB1c2VkIGFu
ZCBpcyBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gNC4wLgorCisgICAgQW4gYWx0ZXJuYXRpdmUg
Zm9yIHVzZXJzIHdoaWNoIHN0aWxsIG5lZWQgc2ltaWxhciBmdW5jdGlvbmFsaXR5IGlzIHRvIHVz
ZSB0aGUKKyAgICBgcHl0ZXN0LXRhcCA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRl
c3QtdGFwPmBfIHBsdWdpbiB3aGljaCBwcm92aWRlcworICAgIGEgc3RyZWFtIG9mIHRlc3QgZGF0
YS4KKworICAgIElmIHlvdSBoYXZlIGFueSBjb25jZXJucywgcGxlYXNlIGRvbid0IGhlc2l0YXRl
IHRvCisgICAgYG9wZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXM+YF8uCisKK1RvIGNyZWF0ZSBwbGFpbi10ZXh0IG1hY2hpbmUtcmVhZGFibGUg
cmVzdWx0IGZpbGVzIHlvdSBjYW4gaXNzdWU6OgorCisgICAgcHl0ZXN0IC0tcmVzdWx0bG9nPXBh
dGgKKworYW5kIGxvb2sgYXQgdGhlIGNvbnRlbnQgYXQgdGhlIGBgcGF0aGBgIGxvY2F0aW9uLiAg
U3VjaCBmaWxlcyBhcmUgdXNlZCBlLmcuCitieSB0aGUgYFB5UHktdGVzdGBfIHdlYiBwYWdlIHRv
IHNob3cgdGVzdCByZXN1bHRzIG92ZXIgc2V2ZXJhbCByZXZpc2lvbnMuCisKKy4uIF9gUHlQeS10
ZXN0YDogaHR0cDovL2J1aWxkYm90LnB5cHkub3JnL3N1bW1hcnkKKworCitTZW5kaW5nIHRlc3Qg
cmVwb3J0IHRvIG9ubGluZSBwYXN0ZWJpbiBzZXJ2aWNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqKkNyZWF0aW5nIGEgVVJMIGZvciBl
YWNoIHRlc3QgZmFpbHVyZSoqOjoKKworICAgIHB5dGVzdCAtLXBhc3RlYmluPWZhaWxlZAorCitU
aGlzIHdpbGwgc3VibWl0IHRlc3QgcnVuIGluZm9ybWF0aW9uIHRvIGEgcmVtb3RlIFBhc3RlIHNl
cnZpY2UgYW5kCitwcm92aWRlIGEgVVJMIGZvciBlYWNoIGZhaWx1cmUuICBZb3UgbWF5IHNlbGVj
dCB0ZXN0cyBhcyB1c3VhbCBvciBhZGQKK2ZvciBleGFtcGxlIGBgLXhgYCBpZiB5b3Ugb25seSB3
YW50IHRvIHNlbmQgb25lIHBhcnRpY3VsYXIgZmFpbHVyZS4KKworKipDcmVhdGluZyBhIFVSTCBm
b3IgYSB3aG9sZSB0ZXN0IHNlc3Npb24gbG9nKio6OgorCisgICAgcHl0ZXN0IC0tcGFzdGViaW49
YWxsCisKK0N1cnJlbnRseSBvbmx5IHBhc3RpbmcgdG8gdGhlIGh0dHA6Ly9icGFzdGUubmV0IHNl
cnZpY2UgaXMgaW1wbGVtZW50ZWQuCisKK0Rpc2FibGluZyBwbHVnaW5zCistLS0tLS0tLS0tLS0t
LS0tLQorCitUbyBkaXNhYmxlIGxvYWRpbmcgc3BlY2lmaWMgcGx1Z2lucyBhdCBpbnZvY2F0aW9u
IHRpbWUsIHVzZSB0aGUgYGAtcGBgIG9wdGlvbgordG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4IGBg
bm86YGAuCisKK0V4YW1wbGU6IHRvIGRpc2FibGUgbG9hZGluZyB0aGUgcGx1Z2luIGBgZG9jdGVz
dGBgLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IKK2V4ZWN1dGluZyBkb2N0ZXN0IHRlc3RzIGZy
b20gdGV4dCBmaWxlcywgaW52b2tlIHB5dGVzdCBsaWtlIHRoaXM6OgorCisgICAgcHl0ZXN0IC1w
IG5vOmRvY3Rlc3QKKworLi4gX2BweXRlc3QubWFpbi11c2FnZWA6CisKK0NhbGxpbmcgcHl0ZXN0
IGZyb20gUHl0aG9uIGNvZGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMi4wCisKK1lvdSBjYW4gaW52b2tl
IGBgcHl0ZXN0YGAgZnJvbSBQeXRob24gY29kZSBkaXJlY3RseTo6CisKKyAgICBweXRlc3QubWFp
bigpCisKK3RoaXMgYWN0cyBhcyBpZiB5b3Ugd291bGQgY2FsbCAicHl0ZXN0IiBmcm9tIHRoZSBj
b21tYW5kIGxpbmUuCitJdCB3aWxsIG5vdCByYWlzZSBgYFN5c3RlbUV4aXRgYCBidXQgcmV0dXJu
IHRoZSBleGl0Y29kZSBpbnN0ZWFkLgorWW91IGNhbiBwYXNzIGluIG9wdGlvbnMgYW5kIGFyZ3Vt
ZW50czo6CisKKyAgICBweXRlc3QubWFpbihbJy14JywgJ215dGVzdGRpciddKQorCitZb3UgY2Fu
IHNwZWNpZnkgYWRkaXRpb25hbCBwbHVnaW5zIHRvIGBgcHl0ZXN0Lm1haW5gYDo6CisKKyAgICAj
IGNvbnRlbnQgb2YgbXlpbnZva2UucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgY2xhc3MgTXlQ
bHVnaW4ob2JqZWN0KToKKyAgICAgICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlbGYpOgor
ICAgICAgICAgICAgcHJpbnQoIioqKiB0ZXN0IHJ1biByZXBvcnRpbmcgZmluaXNoaW5nIikKKwor
ICAgIHB5dGVzdC5tYWluKFsiLXFxIl0sIHBsdWdpbnM9W015UGx1Z2luKCldKQorCitSdW5uaW5n
IGl0IHdpbGwgc2hvdyB0aGF0IGBgTXlQbHVnaW5gYCB3YXMgYWRkZWQgYW5kIGl0cworaG9vayB3
YXMgaW52b2tlZDo6CisKKyAgICAkIHB5dGhvbiBteWludm9rZS5weQorICAgICoqKiB0ZXN0IHJ1
biByZXBvcnRpbmcgZmluaXNoaW5nCisgICAgCisKKy4uIGluY2x1ZGU6OiBsaW5rcy5pbmMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzcyZGM0MjhkM2RmZTI3MTE1OTc5
NjU5MDlmOTI5NTg4Y2MzNTQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsNjcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9NYWtlZmlsZQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hZG9wdC5yc3QKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYXNzZXJ0LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYWNrd2FyZHMtY29tcGF0
aWJpbGl0eS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFzaC1jb21wbGV0aW9uLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYWNoZS5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
Y2hhbmdlbG9nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jaGVja19zcGhpbngucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb25mdGVzdC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9jb250YWN0LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250
ZW50cy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udHJpYnV0aW5nLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9jdXN0b21pemUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RldmVsb3BtZW50
X2d1aWRlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGlzdGluZ3Rlc3RzdWl0ZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZmFxLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9m
dW5jYXJnX2NvbXBhcmUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Z1bmNhcmdzLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9nZW5hcGkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ2V0dGluZy1z
dGFydGVkLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nb29kcHJhY3RpY2VzLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9p
bmRleC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGljZW5zZS5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vbGlua3MuaW5jCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL21hcmsucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9uYW1pbmcyMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
bm9zZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGFyYW1ldHJpemUucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3BsdWdpbnMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9weXRlc3QuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGhv
bnBhdGgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlY3dhcm4ucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3JlcXVpcmVtZW50cy50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vc2tpcHBpbmcucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90bXBk
aXIucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi91c2FnZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd2FybmluZ3MucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3dyaXRpbmdfcGx1Z2lucy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veHVu
aXRfc2V0dXAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3lpZWxkZml4dHVyZS5yc3QKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93YXJuaW5ncy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vd2FybmluZ3MucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyNDlkN2UzYjJmODJlZjg2ZGJiYzdlMTkzYTBl
MGQxNWQ3OGZkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd2Fybmlu
Z3MucnN0CkBAIC0wLDAgKzEsMjk5IEBACisuLiBfYHdhcm5pbmdzYDoKKworV2FybmluZ3MgQ2Fw
dHVyZQorPT09PT09PT09PT09PT09PQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKworU3RhcnRp
bmcgZnJvbSB2ZXJzaW9uIGBgMy4xYGAsIHB5dGVzdCBub3cgYXV0b21hdGljYWxseSBjYXRjaGVz
IHdhcm5pbmdzIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbgorYW5kIGRpc3BsYXlzIHRoZW0gYXQgdGhl
IGVuZCBvZiB0aGUgc2Vzc2lvbjo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zaG93X3dhcm5p
bmdzLnB5CisgICAgaW1wb3J0IHdhcm5pbmdzCisKKyAgICBkZWYgYXBpX3YxKCk6CisgICAgICAg
IHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMg
ZnJvbSB2MiIpKQorICAgICAgICByZXR1cm4gMQorCisgICAgZGVmIHRlc3Rfb25lKCk6CisgICAg
ICAgIGFzc2VydCBhcGlfdjEoKSA9PSAxCisKK1J1bm5pbmcgcHl0ZXN0IG5vdyBwcm9kdWNlcyB0
aGlzIG91dHB1dDo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X3Nob3dfd2FybmluZ3MucHkKKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAgICB0ZXN0
X3Nob3dfd2FybmluZ3MucHkgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSB3
YXJuaW5ncyBzdW1tYXJ5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgdGVzdF9z
aG93X3dhcm5pbmdzLnB5Ojp0ZXN0X29uZQorICAgICAgJFJFR0VORE9DX1RNUERJUi90ZXN0X3No
b3dfd2FybmluZ3MucHk6NDogVXNlcldhcm5pbmc6IGFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlv
bnMgZnJvbSB2MgorICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJhcGkgdjEsIHNo
b3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIiKSkKKyAgICAKKyAgICAtLSBEb2NzOiBodHRwOi8v
ZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwKKyAgICA9PT09PT09PT09PT09
PT09PT09IDEgcGFzc2VkLCAxIHdhcm5pbmdzIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09
PT09PT09CisKK1B5dGVzdCBieSBkZWZhdWx0IGNhdGNoZXMgYWxsIHdhcm5pbmdzIGV4Y2VwdCBm
b3IgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBhbmQgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5n
YGAuCisKK1RoZSBgYC1XYGAgZmxhZyBjYW4gYmUgcGFzc2VkIHRvIGNvbnRyb2wgd2hpY2ggd2Fy
bmluZ3Mgd2lsbCBiZSBkaXNwbGF5ZWQgb3IgZXZlbiB0dXJuCit0aGVtIGludG8gZXJyb3JzOjoK
KworICAgICQgcHl0ZXN0IC1xIHRlc3Rfc2hvd193YXJuaW5ncy5weSAtVyBlcnJvcjo6VXNlcldh
cm5pbmcKKyAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3Rfb25lIF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9vbmUoKToKKyAg
ICA+ICAgICAgIGFzc2VydCBhcGlfdjEoKSA9PSAxCisgICAgCisgICAgdGVzdF9zaG93X3dhcm5p
bmdzLnB5Ojg6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAgICAKKyAgICAgICAgZGVmIGFw
aV92MSgpOgorICAgID4gICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygiYXBpIHYxLCBz
aG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyIikpCisgICAgRSAgICAgICBVc2VyV2FybmluZzog
YXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyCisgICAgCisgICAgdGVzdF9zaG93
X3dhcm5pbmdzLnB5OjQ6IFVzZXJXYXJuaW5nCisgICAgMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRz
CisKK1RoZSBzYW1lIG9wdGlvbiBjYW4gYmUgc2V0IGluIHRoZSBgYHB5dGVzdC5pbmlgYCBmaWxl
IHVzaW5nIHRoZSBgYGZpbHRlcndhcm5pbmdzYGAgaW5pIG9wdGlvbi4KK0ZvciBleGFtcGxlLCB0
aGUgY29uZmlndXJhdGlvbiBiZWxvdyB3aWxsIGlnbm9yZSBhbGwgdXNlciB3YXJuaW5ncywgYnV0
IHdpbGwgdHJhbnNmb3JtCithbGwgb3RoZXIgd2FybmluZ3MgaW50byBlcnJvcnMuCisKKy4uIGNv
ZGUtYmxvY2s6OiBpbmkKKworICAgIFtweXRlc3RdCisgICAgZmlsdGVyd2FybmluZ3MgPQorICAg
ICAgICBlcnJvcgorICAgICAgICBpZ25vcmU6OlVzZXJXYXJuaW5nCisKKworV2hlbiBhIHdhcm5p
bmcgbWF0Y2hlcyBtb3JlIHRoYW4gb25lIG9wdGlvbiBpbiB0aGUgbGlzdCwgdGhlIGFjdGlvbiBm
b3IgdGhlIGxhc3QgbWF0Y2hpbmcgb3B0aW9uCitpcyBwZXJmb3JtZWQuCisKK0JvdGggYGAtV2Bg
IGNvbW1hbmQtbGluZSBvcHRpb24gYW5kIGBgZmlsdGVyd2FybmluZ3NgYCBpbmkgb3B0aW9uIGFy
ZSBiYXNlZCBvbiBQeXRob24ncyBvd24KK2AtVyBvcHRpb25gXyBhbmQgYHdhcm5pbmdzLnNpbXBs
ZWZpbHRlcmBfLCBzbyBwbGVhc2UgcmVmZXIgdG8gdGhvc2Ugc2VjdGlvbnMgaW4gdGhlIFB5dGhv
bgorZG9jdW1lbnRhdGlvbiBmb3Igb3RoZXIgZXhhbXBsZXMgYW5kIGFkdmFuY2VkIHVzYWdlLgor
CitgYEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5nc2BgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMgorCitZb3UgY2FuIHVzZSB0aGUgYGBA
cHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3NgYCB0byBhZGQgd2FybmluZyBmaWx0ZXJzIHRvIHNw
ZWNpZmljIHRlc3QgaXRlbXMsCithbGxvd2luZyB5b3UgdG8gaGF2ZSBmaW5lciBjb250cm9sIG9m
IHdoaWNoIHdhcm5pbmdzIHNob3VsZCBiZSBjYXB0dXJlZCBhdCB0ZXN0LCBjbGFzcyBvcgorZXZl
biBtb2R1bGUgbGV2ZWw6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCB3
YXJuaW5ncworCisgICAgZGVmIGFwaV92MSgpOgorICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJX
YXJuaW5nKCJhcGkgdjEsIHNob3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIiKSkKKyAgICAgICAg
cmV0dXJuIDEKKworICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnaWdub3JlOmFwaSB2
MScpCisgICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAgIGFzc2VydCBhcGlfdjEoKSA9PSAxCisK
KworRmlsdGVycyBhcHBsaWVkIHVzaW5nIGEgbWFyayB0YWtlIHByZWNlZGVuY2Ugb3ZlciBmaWx0
ZXJzIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lIG9yIGNvbmZpZ3VyZWQKK2J5IHRoZSBgYGZp
bHRlcndhcm5pbmdzYGAgaW5pIG9wdGlvbi4KKworWW91IG1heSBhcHBseSBhIGZpbHRlciB0byBh
bGwgdGVzdHMgb2YgYSBjbGFzcyBieSB1c2luZyB0aGUgYGBmaWx0ZXJ3YXJuaW5nc2BgIG1hcmsg
YXMgYSBjbGFzcworZGVjb3JhdG9yIG9yIHRvIGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBieSBzZXR0
aW5nIHRoZSBgYHB5dGVzdG1hcmtgYCB2YXJpYWJsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgIyB0dXJucyBhbGwgd2FybmluZ3MgaW50byBlcnJvcnMgZm9yIHRoaXMgbW9kdWxl
CisgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdlcnJvcicpCisK
KworLi4gbm90ZTo6CisKKyAgICBgYERlcHJlY2F0aW9uV2FybmluZ2BgIGFuZCBgYFBlbmRpbmdE
ZXByZWNhdGlvbldhcm5pbmdgYCBhcmUgaGlkZGVuIGJ5IHRoZSBzdGFuZGFyZCBsaWJyYXJ5Cisg
ICAgYnkgZGVmYXVsdCBzbyB5b3UgaGF2ZSB0byBleHBsaWNpdGx5IGNvbmZpZ3VyZSB0aGVtIHRv
IGJlIGRpc3BsYXllZCBpbiB5b3VyIGBgcHl0ZXN0LmluaWBgOgorCisgICAgLi4gY29kZS1ibG9j
azo6IGluaQorCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGZpbHRlcndhcm5pbmdzID0KKyAg
ICAgICAgICAgIG9uY2U6OkRlcHJlY2F0aW9uV2FybmluZworICAgICAgICAgICAgb25jZTo6UGVu
ZGluZ0RlcHJlY2F0aW9uV2FybmluZworCisKKypDcmVkaXRzIGdvIHRvIEZsb3JpYW4gU2NodWx6
ZSBmb3IgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUqIGBweXRlc3Qtd2Fybmlu
Z3NgXworKnBsdWdpbi4qCisKKy4uIF9gLVcgb3B0aW9uYDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy91c2luZy9jbWRsaW5lLmh0bWw/aGlnaGxpZ2h0PSNjbWRvcHRpb24tVworLi4gX3dhcm5p
bmdzLnNpbXBsZWZpbHRlcjogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3dhcm5p
bmdzLmh0bWwjd2FybmluZ3Muc2ltcGxlZmlsdGVyCisuLiBfYHB5dGVzdC13YXJuaW5nc2A6IGh0
dHBzOi8vZ2l0aHViLmNvbS9mc2NodWx6ZS9weXRlc3Qtd2FybmluZ3MKKworCitEaXNhYmxpbmcg
d2FybmluZyBjYXB0dXJlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgZmVhdHVy
ZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBkaXNhYmxlZCBlbnRpcmVseSBpbiB5
b3VyIGBgcHl0ZXN0LmluaWBgIGZpbGUgd2l0aDoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkK
KworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBhZGRvcHRzID0gLXAgbm86d2FybmluZ3MKKwor
T3IgcGFzc2luZyBgYC1wIG5vOndhcm5pbmdzYGAgaW4gdGhlIGNvbW1hbmQtbGluZS4KKworLi4g
X2Bhc3NlcnRpbmcgd2FybmluZ3NgOgorCisuLiBfYXNzZXJ0d2FybmluZ3M6CisKKy4uIF9gYXNz
ZXJ0aW5nIHdhcm5pbmdzIHdpdGggdGhlIHdhcm5zIGZ1bmN0aW9uYDoKKworLi4gX3dhcm5zOgor
CitBc3NlcnRpbmcgd2FybmluZ3Mgd2l0aCB0aGUgd2FybnMgZnVuY3Rpb24KKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6
IDIuOAorCitZb3UgY2FuIGNoZWNrIHRoYXQgY29kZSByYWlzZXMgYSBwYXJ0aWN1bGFyIHdhcm5p
bmcgdXNpbmcgYGBweXRlc3Qud2FybnNgYCwKK3doaWNoIHdvcmtzIGluIGEgc2ltaWxhciBtYW5u
ZXIgdG8gOnJlZjpgcmFpc2VzIDxhc3NlcnRyYWlzZXM+YDo6CisKKyAgICBpbXBvcnQgd2Fybmlu
Z3MKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgdGVzdF93YXJuaW5nKCk6CisgICAgICAg
IHdpdGggcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndh
cm4oIm15IHdhcm5pbmciLCBVc2VyV2FybmluZykKKworVGhlIHRlc3Qgd2lsbCBmYWlsIGlmIHRo
ZSB3YXJuaW5nIGluIHF1ZXN0aW9uIGlzIG5vdCByYWlzZWQuIFRoZSBrZXl3b3JkCithcmd1bWVu
dCBgYG1hdGNoYGAgdG8gYXNzZXJ0IHRoYXQgdGhlIGV4Y2VwdGlvbiBtYXRjaGVzIGEgdGV4dCBv
ciByZWdleDo6CisKKyAgICA+Pj4gd2l0aCB3YXJucyhVc2VyV2FybmluZywgbWF0Y2g9J211c3Qg
YmUgMCBvciBOb25lJyk6CisgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2YWx1ZSBtdXN0IGJl
IDAgb3IgTm9uZSIsIFVzZXJXYXJuaW5nKQorCisgICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5p
bmcsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6CisgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2
YWx1ZSBtdXN0IGJlIDQyIiwgVXNlcldhcm5pbmcpCisKKyAgICA+Pj4gd2l0aCB3YXJucyhVc2Vy
V2FybmluZywgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAuLi4gICAgIHdhcm5pbmdzLndh
cm4oInRoaXMgaXMgbm90IGhlcmUiLCBVc2VyV2FybmluZykKKyAgICBUcmFjZWJhY2sgKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBGYWlsZWQ6IERJRCBOT1QgV0FSTi4g
Tm8gd2FybmluZ3Mgb2YgdHlwZSAuLi5Vc2VyV2FybmluZy4uLiB3YXMgZW1pdHRlZC4uLgorCitZ
b3UgY2FuIGFsc28gY2FsbCBgYHB5dGVzdC53YXJuc2BgIG9uIGEgZnVuY3Rpb24gb3IgY29kZSBz
dHJpbmc6OgorCisgICAgcHl0ZXN0Lndhcm5zKGV4cGVjdGVkX3dhcm5pbmcsIGZ1bmMsICphcmdz
LCAqKmt3YXJncykKKyAgICBweXRlc3Qud2FybnMoZXhwZWN0ZWRfd2FybmluZywgImZ1bmMoKmFy
Z3MsICoqa3dhcmdzKSIpCisKK1RoZSBmdW5jdGlvbiBhbHNvIHJldHVybnMgYSBsaXN0IG9mIGFs
bCByYWlzZWQgd2FybmluZ3MgKGFzCitgYHdhcm5pbmdzLldhcm5pbmdNZXNzYWdlYGAgb2JqZWN0
cyksIHdoaWNoIHlvdSBjYW4gcXVlcnkgZm9yCithZGRpdGlvbmFsIGluZm9ybWF0aW9uOjoKKwor
ICAgIHdpdGggcHl0ZXN0Lndhcm5zKFJ1bnRpbWVXYXJuaW5nKSBhcyByZWNvcmQ6CisgICAgICAg
IHdhcm5pbmdzLndhcm4oImFub3RoZXIgd2FybmluZyIsIFJ1bnRpbWVXYXJuaW5nKQorCisgICAg
IyBjaGVjayB0aGF0IG9ubHkgb25lIHdhcm5pbmcgd2FzIHJhaXNlZAorICAgIGFzc2VydCBsZW4o
cmVjb3JkKSA9PSAxCisgICAgIyBjaGVjayB0aGF0IHRoZSBtZXNzYWdlIG1hdGNoZXMKKyAgICBh
c3NlcnQgcmVjb3JkWzBdLm1lc3NhZ2UuYXJnc1swXSA9PSAiYW5vdGhlciB3YXJuaW5nIgorCitB
bHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGV4YW1pbmUgcmFpc2VkIHdhcm5pbmdzIGluIGRldGFpbCB1
c2luZyB0aGUKKzpyZWY6YHJlY3dhcm4gPHJlY3dhcm4+YCBmaXh0dXJlIChzZWUgYmVsb3cpLgor
CisuLiBub3RlOjoKKyAgICBgYERlcHJlY2F0aW9uV2FybmluZ2BgIGFuZCBgYFBlbmRpbmdEZXBy
ZWNhdGlvbldhcm5pbmdgYCBhcmUgdHJlYXRlZAorICAgIGRpZmZlcmVudGx5OyBzZWUgOnJlZjpg
ZW5zdXJpbmdfZnVuY3Rpb25fdHJpZ2dlcnNgLgorCisuLiBfYHJlY29yZGluZyB3YXJuaW5nc2A6
CisKKy4uIF9yZWN3YXJuOgorCitSZWNvcmRpbmcgd2FybmluZ3MKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitZb3UgY2FuIHJlY29yZCByYWlzZWQgd2FybmluZ3MgZWl0aGVyIHVzaW5nIGBg
cHl0ZXN0Lndhcm5zYGAgb3Igd2l0aAordGhlIGBgcmVjd2FybmBgIGZpeHR1cmUuCisKK1RvIHJl
Y29yZCB3aXRoIGBgcHl0ZXN0Lndhcm5zYGAgd2l0aG91dCBhc3NlcnRpbmcgYW55dGhpbmcgYWJv
dXQgdGhlIHdhcm5pbmdzLAorcGFzcyBgYE5vbmVgYCBhcyB0aGUgZXhwZWN0ZWQgd2FybmluZyB0
eXBlOjoKKworICAgIHdpdGggcHl0ZXN0Lndhcm5zKE5vbmUpIGFzIHJlY29yZDoKKyAgICAgICAg
d2FybmluZ3Mud2FybigidXNlciIsIFVzZXJXYXJuaW5nKQorICAgICAgICB3YXJuaW5ncy53YXJu
KCJydW50aW1lIiwgUnVudGltZVdhcm5pbmcpCisKKyAgICBhc3NlcnQgbGVuKHJlY29yZCkgPT0g
MgorICAgIGFzc2VydCBzdHIocmVjb3JkWzBdLm1lc3NhZ2UpID09ICJ1c2VyIgorICAgIGFzc2Vy
dCBzdHIocmVjb3JkWzFdLm1lc3NhZ2UpID09ICJydW50aW1lIgorCitUaGUgYGByZWN3YXJuYGAg
Zml4dHVyZSB3aWxsIHJlY29yZCB3YXJuaW5ncyBmb3IgdGhlIHdob2xlIGZ1bmN0aW9uOjoKKwor
ICAgIGltcG9ydCB3YXJuaW5ncworCisgICAgZGVmIHRlc3RfaGVsbG8ocmVjd2Fybik6CisgICAg
ICAgIHdhcm5pbmdzLndhcm4oImhlbGxvIiwgVXNlcldhcm5pbmcpCisgICAgICAgIGFzc2VydCBs
ZW4ocmVjd2FybikgPT0gMQorICAgICAgICB3ID0gcmVjd2Fybi5wb3AoVXNlcldhcm5pbmcpCisg
ICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHcuY2F0ZWdvcnksIFVzZXJXYXJuaW5nKQorICAgICAg
ICBhc3NlcnQgc3RyKHcubWVzc2FnZSkgPT0gImhlbGxvIgorICAgICAgICBhc3NlcnQgdy5maWxl
bmFtZQorICAgICAgICBhc3NlcnQgdy5saW5lbm8KKworQm90aCBgYHJlY3dhcm5gYCBhbmQgYGBw
eXRlc3Qud2FybnNgYCByZXR1cm4gdGhlIHNhbWUgaW50ZXJmYWNlIGZvciByZWNvcmRlZAord2Fy
bmluZ3M6IGEgV2FybmluZ3NSZWNvcmRlciBpbnN0YW5jZS4gVG8gdmlldyB0aGUgcmVjb3JkZWQg
d2FybmluZ3MsIHlvdSBjYW4KK2l0ZXJhdGUgb3ZlciB0aGlzIGluc3RhbmNlLCBjYWxsIGBgbGVu
YGAgb24gaXQgdG8gZ2V0IHRoZSBudW1iZXIgb2YgcmVjb3JkZWQKK3dhcm5pbmdzLCBvciBpbmRl
eCBpbnRvIGl0IHRvIGdldCBhIHBhcnRpY3VsYXIgcmVjb3JkZWQgd2FybmluZy4gSXQgYWxzbwor
cHJvdmlkZXMgdGhlc2UgbWV0aG9kczoKKworLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5yZWN3YXJu
Lldhcm5pbmdzUmVjb3JkZXIoKQorICAgIDptZW1iZXJzOgorCitFYWNoIHJlY29yZGVkIHdhcm5p
bmcgaGFzIHRoZSBhdHRyaWJ1dGVzIGBgbWVzc2FnZWBgLCBgYGNhdGVnb3J5YGAsCitgYGZpbGVu
YW1lYGAsIGBgbGluZW5vYGAsIGBgZmlsZWBgLCBhbmQgYGBsaW5lYGAuIFRoZSBgYGNhdGVnb3J5
YGAgaXMgdGhlCitjbGFzcyBvZiB0aGUgd2FybmluZy4gVGhlIGBgbWVzc2FnZWBgIGlzIHRoZSB3
YXJuaW5nIGl0c2VsZjsgY2FsbGluZworYGBzdHIobWVzc2FnZSlgYCB3aWxsIHJldHVybiB0aGUg
YWN0dWFsIG1lc3NhZ2Ugb2YgdGhlIHdhcm5pbmcuCisKKy4uIG5vdGU6OgorICAgIDpjbGFzczpg
UmVjb3JkZWRXYXJuaW5nYCB3YXMgY2hhbmdlZCBmcm9tIGEgcGxhaW4gY2xhc3MgdG8gYSBuYW1l
ZHR1cGxlIGluIHB5dGVzdCAzLjEKKworLi4gbm90ZTo6CisgICAgYGBEZXByZWNhdGlvbldhcm5p
bmdgYCBhbmQgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgYXJlIHRyZWF0ZWQKKyAgICBk
aWZmZXJlbnRseTsgc2VlIDpyZWY6YGVuc3VyaW5nX2Z1bmN0aW9uX3RyaWdnZXJzYC4KKworLi4g
X2BlbnN1cmluZyBhIGZ1bmN0aW9uIHRyaWdnZXJzIGEgZGVwcmVjYXRpb24gd2FybmluZ2A6CisK
Ky4uIF9lbnN1cmluZ19mdW5jdGlvbl90cmlnZ2VyczoKKworRW5zdXJpbmcgYSBmdW5jdGlvbiB0
cmlnZ2VycyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBhbHNvIGNhbGwgYSBnbG9i
YWwgaGVscGVyIGZvciBjaGVja2luZwordGhhdCBhIGNlcnRhaW4gZnVuY3Rpb24gY2FsbCB0cmln
Z2VycyBhIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgb3IKK2BgUGVuZGluZ0RlcHJlY2F0aW9uV2Fy
bmluZ2BgOjoKKworICAgIGltcG9ydCBweXRlc3QKKworICAgIGRlZiB0ZXN0X2dsb2JhbCgpOgor
ICAgICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKG15ZnVuY3Rpb24sIDE3KQorCitCeSBkZWZh
dWx0LCBgYERlcHJlY2F0aW9uV2FybmluZ2BgIGFuZCBgYFBlbmRpbmdEZXByZWNhdGlvbldhcm5p
bmdgYCB3aWxsIG5vdCBiZQorY2F1Z2h0IHdoZW4gdXNpbmcgYGBweXRlc3Qud2FybnNgYCBvciBg
YHJlY3dhcm5gYCBiZWNhdXNlIGRlZmF1bHQgUHl0aG9uIHdhcm5pbmdzIGZpbHRlcnMgaGlkZQor
dGhlbS4gSWYgeW91IHdpc2ggdG8gcmVjb3JkIHRoZW0gaW4geW91ciBvd24gY29kZSwgdXNlIHRo
ZQorY29tbWFuZCBgYHdhcm5pbmdzLnNpbXBsZWZpbHRlcignYWx3YXlzJylgYDo6CisKKyAgICBp
bXBvcnQgd2FybmluZ3MKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgdGVzdF9kZXByZWNh
dGlvbihyZWN3YXJuKToKKyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQor
ICAgICAgICB3YXJuaW5ncy53YXJuKCJkZXByZWNhdGVkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQor
ICAgICAgICBhc3NlcnQgbGVuKHJlY3dhcm4pID09IDEKKyAgICAgICAgYXNzZXJ0IHJlY3dhcm4u
cG9wKERlcHJlY2F0aW9uV2FybmluZykKKworWW91IGNhbiBhbHNvIHVzZSBpdCBhcyBhIGNvbnRl
eHRtYW5hZ2VyOjoKKworICAgIGRlZiB0ZXN0X2dsb2JhbCgpOgorICAgICAgICB3aXRoIHB5dGVz
dC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAgIG15b2JqZWN0LmRlcHJlY2F0ZWRfbWV0
aG9kKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3dyaXRpbmdfcGx1Z2lucy5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI1
MjU1ODMwMDAwMmY5MWU5OTVjZWNiMDI2N2MzYTc2ZGYzN2MyYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0CkBAIC0wLDAgKzEsNzM5IEBA
CisuLiBfcGx1Z2luczoKKy4uIF9gd3JpdGluZy1wbHVnaW5zYDoKKworV3JpdGluZyBwbHVnaW5z
Cis9PT09PT09PT09PT09PT0KKworSXQgaXMgZWFzeSB0byBpbXBsZW1lbnQgYGxvY2FsIGNvbmZ0
ZXN0IHBsdWdpbnNgXyBmb3IgeW91ciBvd24gcHJvamVjdAorb3IgYHBpcC1pbnN0YWxsYWJsZSBw
bHVnaW5zYF8gdGhhdCBjYW4gYmUgdXNlZCB0aHJvdWdob3V0IG1hbnkgcHJvamVjdHMsCitpbmNs
dWRpbmcgdGhpcmQgcGFydHkgcHJvamVjdHMuICBQbGVhc2UgcmVmZXIgdG8gOnJlZjpgdXNpbmcg
cGx1Z2luc2AgaWYgeW91Citvbmx5IHdhbnQgdG8gdXNlIGJ1dCBub3Qgd3JpdGUgcGx1Z2lucy4K
KworQSBwbHVnaW4gY29udGFpbnMgb25lIG9yIG11bHRpcGxlIGhvb2sgZnVuY3Rpb25zLiA6cmVm
OmBXcml0aW5nIGhvb2tzIDx3cml0aW5naG9va3M+YAorZXhwbGFpbnMgdGhlIGJhc2ljcyBhbmQg
ZGV0YWlscyBvZiBob3cgeW91IGNhbiB3cml0ZSBhIGhvb2sgZnVuY3Rpb24geW91cnNlbGYuCitg
YHB5dGVzdGBgIGltcGxlbWVudHMgYWxsIGFzcGVjdHMgb2YgY29uZmlndXJhdGlvbiwgY29sbGVj
dGlvbiwgcnVubmluZyBhbmQKK3JlcG9ydGluZyBieSBjYWxsaW5nIGB3ZWxsIHNwZWNpZmllZCBo
b29rc2BfIG9mIHRoZSBmb2xsb3dpbmcgcGx1Z2luczoKKworKiA6cmVmOmBidWlsdGluIHBsdWdp
bnNgOiBsb2FkZWQgZnJvbSBweXRlc3QncyBpbnRlcm5hbCBgYF9weXRlc3RgYCBkaXJlY3Rvcnku
CisKKyogOnJlZjpgZXh0ZXJuYWwgcGx1Z2lucyA8ZXh0cGx1Z2lucz5gOiBtb2R1bGVzIGRpc2Nv
dmVyZWQgdGhyb3VnaAorICBgc2V0dXB0b29scyBlbnRyeSBwb2ludHNgXworCisqIGBjb25mdGVz
dC5weSBwbHVnaW5zYF86IG1vZHVsZXMgYXV0by1kaXNjb3ZlcmVkIGluIHRlc3QgZGlyZWN0b3Jp
ZXMKKworSW4gcHJpbmNpcGxlLCBlYWNoIGhvb2sgY2FsbCBpcyBhIGBgMTpOYGAgUHl0aG9uIGZ1
bmN0aW9uIGNhbGwgd2hlcmUgYGBOYGAgaXMgdGhlCitudW1iZXIgb2YgcmVnaXN0ZXJlZCBpbXBs
ZW1lbnRhdGlvbiBmdW5jdGlvbnMgZm9yIGEgZ2l2ZW4gc3BlY2lmaWNhdGlvbi4KK0FsbCBzcGVj
aWZpY2F0aW9ucyBhbmQgaW1wbGVtZW50YXRpb25zIGZvbGxvdyB0aGUgYGBweXRlc3RfYGAgcHJl
Zml4CituYW1pbmcgY29udmVudGlvbiwgbWFraW5nIHRoZW0gZWFzeSB0byBkaXN0aW5ndWlzaCBh
bmQgZmluZC4KKworLi4gX2BwbHVnaW5vcmRlcmA6CisKK1BsdWdpbiBkaXNjb3Zlcnkgb3JkZXIg
YXQgdG9vbCBzdGFydHVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitgYHB5dGVzdGBgIGxvYWRzIHBsdWdpbiBtb2R1bGVzIGF0IHRvb2wgc3RhcnR1cCBpbiB0aGUg
Zm9sbG93aW5nIHdheToKKworKiBieSBsb2FkaW5nIGFsbCBidWlsdGluIHBsdWdpbnMKKworKiBi
eSBsb2FkaW5nIGFsbCBwbHVnaW5zIHJlZ2lzdGVyZWQgdGhyb3VnaCBgc2V0dXB0b29scyBlbnRy
eSBwb2ludHNgXy4KKworKiBieSBwcmUtc2Nhbm5pbmcgdGhlIGNvbW1hbmQgbGluZSBmb3IgdGhl
IGBgLXAgbmFtZWBgIG9wdGlvbgorICBhbmQgbG9hZGluZyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBi
ZWZvcmUgYWN0dWFsIGNvbW1hbmQgbGluZSBwYXJzaW5nLgorCisqIGJ5IGxvYWRpbmcgYWxsIDpm
aWxlOmBjb25mdGVzdC5weWAgZmlsZXMgYXMgaW5mZXJyZWQgYnkgdGhlIGNvbW1hbmQgbGluZQor
ICBpbnZvY2F0aW9uOgorCisgIC0gaWYgbm8gdGVzdCBwYXRocyBhcmUgc3BlY2lmaWVkIHVzZSBj
dXJyZW50IGRpciBhcyBhIHRlc3QgcGF0aAorICAtIGlmIGV4aXN0cywgbG9hZCBgYGNvbmZ0ZXN0
LnB5YGAgYW5kIGBgdGVzdCovY29uZnRlc3QucHlgYCByZWxhdGl2ZQorICAgIHRvIHRoZSBkaXJl
Y3RvcnkgcGFydCBvZiB0aGUgZmlyc3QgdGVzdCBwYXRoLgorCisgIE5vdGUgdGhhdCBweXRlc3Qg
ZG9lcyBub3QgZmluZCBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgaW4gZGVlcGVyIG5lc3RlZAorICBz
dWIgZGlyZWN0b3JpZXMgYXQgdG9vbCBzdGFydHVwLiAgSXQgaXMgdXN1YWxseSBhIGdvb2QgaWRl
YSB0byBrZWVwCisgIHlvdXIgYGBjb25mdGVzdC5weWBgIGZpbGUgaW4gdGhlIHRvcCBsZXZlbCB0
ZXN0IG9yIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkuCisKKyogYnkgcmVjdXJzaXZlbHkgbG9hZGlu
ZyBhbGwgcGx1Z2lucyBzcGVjaWZpZWQgYnkgdGhlCisgIGBgcHl0ZXN0X3BsdWdpbnNgYCB2YXJp
YWJsZSBpbiBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMKKworCisuLiBfYHB5dGVzdC9wbHVnaW5gOiBo
dHRwOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5dGVzdC9zcmMvdGlwL3B5dGVzdC9wbHVn
aW4vCisuLiBfYGNvbmZ0ZXN0LnB5IHBsdWdpbnNgOgorLi4gX2Bsb2NhbHBsdWdpbmA6CisuLiBf
YGxvY2FsIGNvbmZ0ZXN0IHBsdWdpbnNgOgorCitjb25mdGVzdC5weTogbG9jYWwgcGVyLWRpcmVj
dG9yeSBwbHVnaW5zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0xvY2FsIGBgY29uZnRlc3QucHlgYCBwbHVnaW5zIGNvbnRhaW4gZGlyZWN0b3J5LXNwZWNpZmlj
IGhvb2sKK2ltcGxlbWVudGF0aW9ucy4gIEhvb2sgU2Vzc2lvbiBhbmQgdGVzdCBydW5uaW5nIGFj
dGl2aXRpZXMgd2lsbAoraW52b2tlIGFsbCBob29rcyBkZWZpbmVkIGluIGBgY29uZnRlc3QucHlg
YCBmaWxlcyBjbG9zZXIgdG8gdGhlCityb290IG9mIHRoZSBmaWxlc3lzdGVtLiAgRXhhbXBsZSBv
ZiBpbXBsZW1lbnRpbmcgdGhlCitgYHB5dGVzdF9ydW50ZXN0X3NldHVwYGAgaG9vayBzbyB0aGF0
IGlzIGNhbGxlZCBmb3IgdGVzdHMgaW4gdGhlIGBgYWBgCitzdWIgZGlyZWN0b3J5IGJ1dCBub3Qg
Zm9yIG90aGVyIGRpcmVjdG9yaWVzOjoKKworICAgIGEvY29uZnRlc3QucHk6CisgICAgICAgIGRl
ZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgICAgICMgY2FsbGVkIGZvciBy
dW5uaW5nIGVhY2ggdGVzdCBpbiAnYScgZGlyZWN0b3J5CisgICAgICAgICAgICBwcmludCAoInNl
dHRpbmcgdXAiLCBpdGVtKQorCisgICAgYS90ZXN0X3N1Yi5weToKKyAgICAgICAgZGVmIHRlc3Rf
c3ViKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICB0ZXN0X2ZsYXQucHk6CisgICAgICAgIGRl
ZiB0ZXN0X2ZsYXQoKToKKyAgICAgICAgICAgIHBhc3MKKworSGVyZSBpcyBob3cgeW91IG1pZ2h0
IHJ1biBpdDo6CisKKyAgICAgcHl0ZXN0IHRlc3RfZmxhdC5weSAgICMgd2lsbCBub3Qgc2hvdyAi
c2V0dGluZyB1cCIKKyAgICAgcHl0ZXN0IGEvdGVzdF9zdWIucHkgICMgd2lsbCBzaG93ICJzZXR0
aW5nIHVwIgorCisuLiBub3RlOjoKKyAgICBJZiB5b3UgaGF2ZSBgYGNvbmZ0ZXN0LnB5YGAgZmls
ZXMgd2hpY2ggZG8gbm90IHJlc2lkZSBpbiBhCisgICAgcHl0aG9uIHBhY2thZ2UgZGlyZWN0b3J5
IChpLmUuIG9uZSBjb250YWluaW5nIGFuIGBgX19pbml0X18ucHlgYCkgdGhlbgorICAgICJpbXBv
cnQgY29uZnRlc3QiIGNhbiBiZSBhbWJpZ3VvdXMgYmVjYXVzZSB0aGVyZSBtaWdodCBiZSBvdGhl
cgorICAgIGBgY29uZnRlc3QucHlgYCBmaWxlcyBhcyB3ZWxsIG9uIHlvdXIgYGBQWVRIT05QQVRI
YGAgb3IgYGBzeXMucGF0aGBgLgorICAgIEl0IGlzIHRodXMgZ29vZCBwcmFjdGljZSBmb3IgcHJv
amVjdHMgdG8gZWl0aGVyIHB1dCBgYGNvbmZ0ZXN0LnB5YGAKKyAgICB1bmRlciBhIHBhY2thZ2Ug
c2NvcGUgb3IgdG8gbmV2ZXIgaW1wb3J0IGFueXRoaW5nIGZyb20gYQorICAgIGBgY29uZnRlc3Qu
cHlgYCBmaWxlLgorCisgICAgU2VlIGFsc286IDpyZWY6YHB5dGhvbnBhdGhgLgorCisKK1dyaXRp
bmcgeW91ciBvd24gcGx1Z2luCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBfYHNldHVw
dG9vbHNgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2V0dXB0b29scworCitJZiB5b3Ug
d2FudCB0byB3cml0ZSBhIHBsdWdpbiwgdGhlcmUgYXJlIG1hbnkgcmVhbC1saWZlIGV4YW1wbGVz
Cit5b3UgY2FuIGNvcHkgZnJvbToKKworKiBhIGN1c3RvbSBjb2xsZWN0aW9uIGV4YW1wbGUgcGx1
Z2luOiA6cmVmOmB5YW1sIHBsdWdpbmAKKyogYXJvdW5kIDIwIDpyZWY6YGJ1aWx0aW4gcGx1Z2lu
c2Agd2hpY2ggcHJvdmlkZSBweXRlc3QncyBvd24gZnVuY3Rpb25hbGl0eQorKiBtYW55IGBleHRl
cm5hbCBwbHVnaW5zIDxodHRwOi8vcGx1Z2luY29tcGF0Lmhlcm9rdWFwcC5jb20+YF8gcHJvdmlk
aW5nIGFkZGl0aW9uYWwgZmVhdHVyZXMKKworQWxsIG9mIHRoZXNlIHBsdWdpbnMgaW1wbGVtZW50
IHRoZSBkb2N1bWVudGVkIGB3ZWxsIHNwZWNpZmllZCBob29rc2BfCit0byBleHRlbmQgYW5kIGFk
ZCBmdW5jdGlvbmFsaXR5LgorCisuLiBub3RlOjoKKyAgICBNYWtlIHN1cmUgdG8gY2hlY2sgb3V0
IHRoZSBleGNlbGxlbnQKKyAgICBgY29va2llY3V0dGVyLXB5dGVzdC1wbHVnaW4gPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L2Nvb2tpZWN1dHRlci1weXRlc3QtcGx1Z2luPmBfCisgICAg
cHJvamVjdCwgd2hpY2ggaXMgYSBgY29va2llY3V0dGVyIHRlbXBsYXRlIDxodHRwczovL2dpdGh1
Yi5jb20vYXVkcmV5ci9jb29raWVjdXR0ZXI+YF8KKyAgICBmb3IgYXV0aG9yaW5nIHBsdWdpbnMu
CisKKyAgICBUaGUgdGVtcGxhdGUgcHJvdmlkZXMgYW4gZXhjZWxsZW50IHN0YXJ0aW5nIHBvaW50
IHdpdGggYSB3b3JraW5nIHBsdWdpbiwKKyAgICB0ZXN0cyBydW5uaW5nIHdpdGggdG94LCBhIGNv
bXByZWhlbnNpdmUgUkVBRE1FIGZpbGUgYXMgd2VsbCBhcyBhCisgICAgcHJlLWNvbmZpZ3VyZWQg
ZW50cnktcG9pbnQuCisKK0Fsc28gY29uc2lkZXIgOnJlZjpgY29udHJpYnV0aW5nIHlvdXIgcGx1
Z2luIHRvIHB5dGVzdC1kZXY8c3VibWl0cGx1Z2luPmAKK29uY2UgaXQgaGFzIHNvbWUgaGFwcHkg
dXNlcnMgb3RoZXIgdGhhbiB5b3Vyc2VsZi4KKworCisuLiBfYHNldHVwdG9vbHMgZW50cnkgcG9p
bnRzYDoKKy4uIF9gcGlwLWluc3RhbGxhYmxlIHBsdWdpbnNgOgorCitNYWtpbmcgeW91ciBwbHVn
aW4gaW5zdGFsbGFibGUgYnkgb3RoZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK0lmIHlvdSB3YW50IHRvIG1ha2UgeW91ciBwbHVnaW4gZXh0ZXJuYWxseSBh
dmFpbGFibGUsIHlvdQorbWF5IGRlZmluZSBhIHNvLWNhbGxlZCBlbnRyeSBwb2ludCBmb3IgeW91
ciBkaXN0cmlidXRpb24gc28KK3RoYXQgYGBweXRlc3RgYCBmaW5kcyB5b3VyIHBsdWdpbiBtb2R1
bGUuICBFbnRyeSBwb2ludHMgYXJlCithIGZlYXR1cmUgdGhhdCBpcyBwcm92aWRlZCBieSBgc2V0
dXB0b29sc2BfLiBweXRlc3QgbG9va3MgdXAKK3RoZSBgYHB5dGVzdDExYGAgZW50cnlwb2ludCB0
byBkaXNjb3ZlciBpdHMKK3BsdWdpbnMgYW5kIHlvdSBjYW4gdGh1cyBtYWtlIHlvdXIgcGx1Z2lu
IGF2YWlsYWJsZSBieSBkZWZpbmluZworaXQgaW4geW91ciBzZXR1cHRvb2xzLWludm9jYXRpb246
CisKKy4uIHNvdXJjZWNvZGU6OiBweXRob24KKworICAgICMgc2FtcGxlIC4vc2V0dXAucHkgZmls
ZQorICAgIGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAKKworICAgIHNldHVwKAorICAgICAg
ICBuYW1lPSJteXByb2plY3QiLAorICAgICAgICBwYWNrYWdlcyA9IFsnbXlwcm9qZWN0J10KKwor
ICAgICAgICAjIHRoZSBmb2xsb3dpbmcgbWFrZXMgYSBwbHVnaW4gYXZhaWxhYmxlIHRvIHB5dGVz
dAorICAgICAgICBlbnRyeV9wb2ludHMgPSB7CisgICAgICAgICAgICAncHl0ZXN0MTEnOiBbCisg
ICAgICAgICAgICAgICAgJ25hbWVfb2ZfcGx1Z2luID0gbXlwcm9qZWN0LnBsdWdpbm1vZHVsZScs
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgIyBjdXN0b20gUHlQSSBjbGFz
c2lmaWVyIGZvciBweXRlc3QgcGx1Z2lucworICAgICAgICBjbGFzc2lmaWVycz1bCisgICAgICAg
ICAgICAiRnJhbWV3b3JrIDo6IFB5dGVzdCIsCisgICAgICAgIF0sCisgICAgKQorCitJZiBhIHBh
Y2thZ2UgaXMgaW5zdGFsbGVkIHRoaXMgd2F5LCBgYHB5dGVzdGBgIHdpbGwgbG9hZAorYGBteXBy
b2plY3QucGx1Z2lubW9kdWxlYGAgYXMgYSBwbHVnaW4gd2hpY2ggY2FuIGRlZmluZQorYHdlbGwg
c3BlY2lmaWVkIGhvb2tzYF8uCisKKy4uIG5vdGU6OgorCisgICAgTWFrZSBzdXJlIHRvIGluY2x1
ZGUgYGBGcmFtZXdvcmsgOjogUHl0ZXN0YGAgaW4geW91ciBsaXN0IG9mCisgICAgYFB5UEkgY2xh
c3NpZmllcnMgPGh0dHBzOi8vcHl0aG9uLXBhY2thZ2luZy11c2VyLWd1aWRlLnJlYWR0aGVkb2Nz
LmlvL2Rpc3RyaWJ1dGluZy8jY2xhc3NpZmllcnM+YF8KKyAgICB0byBtYWtlIGl0IGVhc3kgZm9y
IHVzZXJzIHRvIGZpbmQgeW91ciBwbHVnaW4uCisKKworQXNzZXJ0aW9uIFJld3JpdGluZworLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitPbmUgb2YgdGhlIG1haW4gZmVhdHVyZXMgb2YgYGBweXRlc3Rg
YCBpcyB0aGUgdXNlIG9mIHBsYWluIGFzc2VydAorc3RhdGVtZW50cyBhbmQgdGhlIGRldGFpbGVk
IGludHJvc3BlY3Rpb24gb2YgZXhwcmVzc2lvbnMgdXBvbgorYXNzZXJ0aW9uIGZhaWx1cmVzLiAg
VGhpcyBpcyBwcm92aWRlZCBieSAiYXNzZXJ0aW9uIHJld3JpdGluZyIgd2hpY2gKK21vZGlmaWVz
IHRoZSBwYXJzZWQgQVNUIGJlZm9yZSBpdCBnZXRzIGNvbXBpbGVkIHRvIGJ5dGVjb2RlLiAgVGhp
cyBpcworZG9uZSB2aWEgYSA6cGVwOmAzMDJgIGltcG9ydCBob29rIHdoaWNoIGdldHMgaW5zdGFs
bGVkIGVhcmx5IG9uIHdoZW4KK2BgcHl0ZXN0YGAgc3RhcnRzIHVwIGFuZCB3aWxsIHBlcmZvcm0g
dGhpcyByZXdyaXRpbmcgd2hlbiBtb2R1bGVzIGdldAoraW1wb3J0ZWQuICBIb3dldmVyIHNpbmNl
IHdlIGRvIG5vdCB3YW50IHRvIHRlc3QgZGlmZmVyZW50IGJ5dGVjb2RlCit0aGVuIHlvdSB3aWxs
IHJ1biBpbiBwcm9kdWN0aW9uIHRoaXMgaG9vayBvbmx5IHJld3JpdGVzIHRlc3QgbW9kdWxlcwor
dGhlbXNlbHZlcyBhcyB3ZWxsIGFzIGFueSBtb2R1bGVzIHdoaWNoIGFyZSBwYXJ0IG9mIHBsdWdp
bnMuICBBbnkKK290aGVyIGltcG9ydGVkIG1vZHVsZSB3aWxsIG5vdCBiZSByZXdyaXR0ZW4gYW5k
IG5vcm1hbCBhc3NlcnRpb24KK2JlaGF2aW91ciB3aWxsIGhhcHBlbi4KKworSWYgeW91IGhhdmUg
YXNzZXJ0aW9uIGhlbHBlcnMgaW4gb3RoZXIgbW9kdWxlcyB3aGVyZSB5b3Ugd291bGQgbmVlZAor
YXNzZXJ0aW9uIHJld3JpdGluZyB0byBiZSBlbmFibGVkIHlvdSBuZWVkIHRvIGFzayBgYHB5dGVz
dGBgCitleHBsaWNpdGx5IHRvIHJld3JpdGUgdGhpcyBtb2R1bGUgYmVmb3JlIGl0IGdldHMgaW1w
b3J0ZWQuCisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3cml0
ZQorCitUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4geW91IHdyaXRlIGEgcHl0ZXN0
IHBsdWdpbiB3aGljaCBpcworY3JlYXRlZCB1c2luZyBhIHBhY2thZ2UuICBUaGUgaW1wb3J0IGhv
b2sgb25seSB0cmVhdHMgYGBjb25mdGVzdC5weWBgCitmaWxlcyBhbmQgYW55IG1vZHVsZXMgd2hp
Y2ggYXJlIGxpc3RlZCBpbiB0aGUgYGBweXRlc3QxMWBgIGVudHJ5cG9pbnQKK2FzIHBsdWdpbnMu
ICBBcyBhbiBleGFtcGxlIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgcGFja2FnZTo6CisKKyAgIHB5
dGVzdF9mb28vX19pbml0X18ucHkKKyAgIHB5dGVzdF9mb28vcGx1Z2luLnB5CisgICBweXRlc3Rf
Zm9vL2hlbHBlci5weQorCitXaXRoIHRoZSBmb2xsb3dpbmcgdHlwaWNhbCBgYHNldHVwLnB5YGAg
ZXh0cmFjdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICBzZXR1cCgKKyAgICAgIC4u
LgorICAgICAgZW50cnlfcG9pbnRzPXsncHl0ZXN0MTEnOiBbJ2ZvbyA9IHB5dGVzdF9mb28ucGx1
Z2luJ119LAorICAgICAgLi4uCisgICApCisKK0luIHRoaXMgY2FzZSBvbmx5IGBgcHl0ZXN0X2Zv
by9wbHVnaW4ucHlgYCB3aWxsIGJlIHJld3JpdHRlbi4gIElmIHRoZQoraGVscGVyIG1vZHVsZSBh
bHNvIGNvbnRhaW5zIGFzc2VydCBzdGF0ZW1lbnRzIHdoaWNoIG5lZWQgdG8gYmUKK3Jld3JpdHRl
biBpdCBuZWVkcyB0byBiZSBtYXJrZWQgYXMgc3VjaCwgYmVmb3JlIGl0IGdldHMgaW1wb3J0ZWQu
CitUaGlzIGlzIGVhc2llc3QgYnkgbWFya2luZyBpdCBmb3IgcmV3cml0aW5nIGluc2lkZSB0aGUK
K2BgX19pbml0X18ucHlgYCBtb2R1bGUsIHdoaWNoIHdpbGwgYWx3YXlzIGJlIGltcG9ydGVkIGZp
cnN0IHdoZW4gYQorbW9kdWxlIGluc2lkZSBhIHBhY2thZ2UgaXMgaW1wb3J0ZWQuICBUaGlzIHdh
eSBgYHBsdWdpbi5weWBgIGNhbiBzdGlsbAoraW1wb3J0IGBgaGVscGVyLnB5YGAgbm9ybWFsbHku
ICBUaGUgY29udGVudHMgb2YKK2BgcHl0ZXN0X2Zvby9fX2luaXRfXy5weWBgIHdpbGwgdGhlbiBu
ZWVkIHRvIGxvb2sgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgIGlt
cG9ydCBweXRlc3QKKworICAgcHl0ZXN0LnJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlKCdweXRlc3Rf
Zm9vLmhlbHBlcicpCisKKworCitSZXF1aXJpbmcvTG9hZGluZyBwbHVnaW5zIGluIGEgdGVzdCBt
b2R1bGUgb3IgY29uZnRlc3QgZmlsZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiByZXF1aXJlIHBsdWdpbnMgaW4g
YSB0ZXN0IG1vZHVsZSBvciBhIGBgY29uZnRlc3QucHlgYCBmaWxlIGxpa2UgdGhpczoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcHl0ZXN0X3BsdWdpbnMgPSBbIm5hbWUxIiwgIm5h
bWUyIl0KKworV2hlbiB0aGUgdGVzdCBtb2R1bGUgb3IgY29uZnRlc3QgcGx1Z2luIGlzIGxvYWRl
ZCB0aGUgc3BlY2lmaWVkIHBsdWdpbnMKK3dpbGwgYmUgbG9hZGVkIGFzIHdlbGwuIEFueSBtb2R1
bGUgY2FuIGJlIGJsZXNzZWQgYXMgYSBwbHVnaW4sIGluY2x1ZGluZyBpbnRlcm5hbAorYXBwbGlj
YXRpb24gbW9kdWxlczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcHl0ZXN0X3Bs
dWdpbnMgPSAibXlhcHAudGVzdHN1cHBvcnQubXlwbHVnaW4iCisKK2BgcHl0ZXN0X3BsdWdpbnNg
YCB2YXJpYWJsZXMgYXJlIHByb2Nlc3NlZCByZWN1cnNpdmVseSwgc28gbm90ZSB0aGF0IGluIHRo
ZSBleGFtcGxlIGFib3ZlCitpZiBgYG15YXBwLnRlc3RzdXBwb3J0Lm15cGx1Z2luYGAgYWxzbyBk
ZWNsYXJlcyBgYHB5dGVzdF9wbHVnaW5zYGAsIHRoZSBjb250ZW50cworb2YgdGhlIHZhcmlhYmxl
IHdpbGwgYWxzbyBiZSBsb2FkZWQgYXMgcGx1Z2lucywgYW5kIHNvIG9uLgorCitUaGlzIG1lY2hh
bmlzbSBtYWtlcyBpdCBlYXN5IHRvIHNoYXJlIGZpeHR1cmVzIHdpdGhpbiBhcHBsaWNhdGlvbnMg
b3IgZXZlbgorZXh0ZXJuYWwgYXBwbGljYXRpb25zIHdpdGhvdXQgdGhlIG5lZWQgdG8gY3JlYXRl
IGV4dGVybmFsIHBsdWdpbnMgdXNpbmcKK3RoZSBgYHNldHVwdG9vbHNgYCdzIGVudHJ5IHBvaW50
IHRlY2huaXF1ZS4KKworUGx1Z2lucyBpbXBvcnRlZCBieSBgYHB5dGVzdF9wbHVnaW5zYGAgd2ls
bCBhbHNvIGF1dG9tYXRpY2FsbHkgYmUgbWFya2VkCitmb3IgYXNzZXJ0aW9uIHJld3JpdGluZyAo
c2VlIDpmdW5jOmBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGVgKS4KK0hvd2V2ZXIgZm9y
IHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0IHRoZSBtb2R1bGUgbXVzdCBub3QgYmUKK2ltcG9ydGVk
IGFscmVhZHk7IGlmIGl0IHdhcyBhbHJlYWR5IGltcG9ydGVkIGF0IHRoZSB0aW1lIHRoZQorYGBw
eXRlc3RfcGx1Z2luc2BgIHN0YXRlbWVudCBpcyBwcm9jZXNzZWQsIGEgd2FybmluZyB3aWxsIHJl
c3VsdCBhbmQKK2Fzc2VydGlvbnMgaW5zaWRlIHRoZSBwbHVnaW4gd2lsbCBub3QgYmUgcmV3cml0
dGVuLiAgVG8gZml4IHRoaXMgeW91CitjYW4gZWl0aGVyIGNhbGwgOmZ1bmM6YHB5dGVzdC5yZWdp
c3Rlcl9hc3NlcnRfcmV3cml0ZWAgeW91cnNlbGYgYmVmb3JlCit0aGUgbW9kdWxlIGlzIGltcG9y
dGVkLCBvciB5b3UgY2FuIGFycmFuZ2UgdGhlIGNvZGUgdG8gZGVsYXkgdGhlCitpbXBvcnRpbmcg
dW50aWwgYWZ0ZXIgdGhlIHBsdWdpbiBpcyByZWdpc3RlcmVkLgorCisKK0FjY2Vzc2luZyBhbm90
aGVyIHBsdWdpbiBieSBuYW1lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJ
ZiBhIHBsdWdpbiB3YW50cyB0byBjb2xsYWJvcmF0ZSB3aXRoIGNvZGUgZnJvbQorYW5vdGhlciBw
bHVnaW4gaXQgY2FuIG9idGFpbiBhIHJlZmVyZW5jZSB0aHJvdWdoCit0aGUgcGx1Z2luIG1hbmFn
ZXIgbGlrZSB0aGlzOgorCisuLiBzb3VyY2Vjb2RlOjogcHl0aG9uCisKKyAgICBwbHVnaW4gPSBj
b25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oIm5hbWVfb2ZfcGx1Z2luIikKKworSWYgeW91
IHdhbnQgdG8gbG9vayBhdCB0aGUgbmFtZXMgb2YgZXhpc3RpbmcgcGx1Z2lucywgdXNlCit0aGUg
YGAtLXRyYWNlLWNvbmZpZ2BgIG9wdGlvbi4KKworVGVzdGluZyBwbHVnaW5zCistLS0tLS0tLS0t
LS0tLS0KKworcHl0ZXN0IGNvbWVzIHdpdGggYSBwbHVnaW4gbmFtZWQgYGBweXRlc3RlcmBgIHRo
YXQgaGVscHMgeW91IHdyaXRlIHRlc3RzIGZvcgoreW91ciBwbHVnaW4gY29kZS4gVGhlIHBsdWdp
biBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBzbyB5b3Ugd2lsbCBoYXZlIHRvIGVuYWJsZQoraXQg
YmVmb3JlIHlvdSBjYW4gdXNlIGl0LgorCitZb3UgY2FuIGRvIHNvIGJ5IGFkZGluZyB0aGUgZm9s
bG93aW5nIGxpbmUgdG8gYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBpbiB5b3VyCit0ZXN0aW5nIGRp
cmVjdG9yeToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGNv
bmZ0ZXN0LnB5CisKKyAgICBweXRlc3RfcGx1Z2lucyA9IFsicHl0ZXN0ZXIiXQorCitBbHRlcm5h
dGl2ZWx5IHlvdSBjYW4gaW52b2tlIHB5dGVzdCB3aXRoIHRoZSBgYC1wIHB5dGVzdGVyYGAgY29t
bWFuZCBsaW5lCitvcHRpb24uCisKK1RoaXMgd2lsbCBhbGxvdyB5b3UgdG8gdXNlIHRoZSA6cHk6
Y2xhc3M6YHRlc3RkaXIgPF9weXRlc3QucHl0ZXN0ZXIuVGVzdGRpcj5gCitmaXh0dXJlIGZvciB0
ZXN0aW5nIHlvdXIgcGx1Z2luIGNvZGUuCisKK0xldCdzIGRlbW9uc3RyYXRlIHdoYXQgeW91IGNh
biBkbyB3aXRoIHRoZSBwbHVnaW4gd2l0aCBhbiBleGFtcGxlLiBJbWFnaW5lIHdlCitkZXZlbG9w
ZWQgYSBwbHVnaW4gdGhhdCBwcm92aWRlcyBhIGZpeHR1cmUgYGBoZWxsb2BgIHdoaWNoIHlpZWxk
cyBhIGZ1bmN0aW9uCithbmQgd2UgY2FuIGludm9rZSB0aGlzIGZ1bmN0aW9uIHdpdGggb25lIG9w
dGlvbmFsIHBhcmFtZXRlci4gSXQgd2lsbCByZXR1cm4gYQorc3RyaW5nIHZhbHVlIG9mIGBgSGVs
bG8gV29ybGQhYGAgaWYgd2UgZG8gbm90IHN1cHBseSBhIHZhbHVlIG9yIGBgSGVsbG8KK3t2YWx1
ZX0hYGAgaWYgd2UgZG8gc3VwcGx5IGEgc3RyaW5nIHZhbHVlLgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorCisgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoJ2hlbGxvd29ybGQnKQorICAgICAgICBncm91cC5hZGRvcHRpb24oCisg
ICAgICAgICAgICAnLS1uYW1lJywKKyAgICAgICAgICAgIGFjdGlvbj0nc3RvcmUnLAorICAgICAg
ICAgICAgZGVzdD0nbmFtZScsCisgICAgICAgICAgICBkZWZhdWx0PSdXb3JsZCcsCisgICAgICAg
ICAgICBoZWxwPSdEZWZhdWx0ICJuYW1lIiBmb3IgaGVsbG8oKS4nCisgICAgICAgICkKKworICAg
IEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBoZWxsbyhyZXF1ZXN0KToKKyAgICAgICAgbmFtZSA9
IHJlcXVlc3QuY29uZmlnLmdldG9wdGlvbignbmFtZScpCisKKyAgICAgICAgZGVmIF9oZWxsbyhu
YW1lPU5vbmUpOgorICAgICAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAgICAgICAgbmFt
ZSA9IHJlcXVlc3QuY29uZmlnLmdldG9wdGlvbignbmFtZScpCisgICAgICAgICAgICByZXR1cm4g
IkhlbGxvIHtuYW1lfSEiLmZvcm1hdChuYW1lPW5hbWUpCisKKyAgICAgICAgcmV0dXJuIF9oZWxs
bworCisKK05vdyB0aGUgYGB0ZXN0ZGlyYGAgZml4dHVyZSBwcm92aWRlcyBhIGNvbnZlbmllbnQg
QVBJIGZvciBjcmVhdGluZyB0ZW1wb3JhcnkKK2BgY29uZnRlc3QucHlgYCBmaWxlcyBhbmQgdGVz
dCBmaWxlcy4gSXQgYWxzbyBhbGxvd3MgdXMgdG8gcnVuIHRoZSB0ZXN0cyBhbmQKK3JldHVybiBh
IHJlc3VsdCBvYmplY3QsIHdpdGggd2hpY2ggd2UgY2FuIGFzc2VydCB0aGUgdGVzdHMnIG91dGNv
bWVzLgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgdGVzdF9oZWxsbyh0ZXN0
ZGlyKToKKyAgICAgICAgIiIiTWFrZSBzdXJlIHRoYXQgb3VyIHBsdWdpbiB3b3Jrcy4iIiIKKwor
ICAgICAgICAjIGNyZWF0ZSBhIHRlbXBvcmFyeSBjb25mdGVzdC5weSBmaWxlCisgICAgICAgIHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsKKyAgICAgICAgICAgICAgICAiQnJpYW5u
YSIsCisgICAgICAgICAgICAgICAgIkFuZHJlYXMiLAorICAgICAgICAgICAgICAgICJGbG9yaXMi
LAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiBuYW1lKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICIiIikKKworICAgICAgICAj
IGNyZWF0ZSBhIHRlbXBvcmFyeSBweXRlc3QgdGVzdCBmaWxlCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvX2RlZmF1bHQoaGVsbG8pOgor
ICAgICAgICAgICAgICAgIGFzc2VydCBoZWxsbygpID09ICJIZWxsbyBXb3JsZCEiCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2hlbGxvX25hbWUoaGVsbG8sIG5hbWUpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBoZWxsbyhuYW1lKSA9PSAiSGVsbG8gezB9ISIuZm9ybWF0KG5hbWUpCisgICAgICAg
ICIiIikKKworICAgICAgICAjIHJ1biBhbGwgdGVzdHMgd2l0aCBweXRlc3QKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorCisgICAgICAgICMgY2hlY2sgdGhhdCBhbGwgNCB0
ZXN0cyBwYXNzZWQKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9NCkKKwor
CitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzdWx0IG9iamVjdCB0aGF0IGBgcnVu
cHl0ZXN0KClgYCByZXR1cm5zLCBhbmQKK3RoZSBtZXRob2RzIHRoYXQgaXQgcHJvdmlkZXMgcGxl
YXNlIGNoZWNrIG91dCB0aGUgOnB5OmNsYXNzOmBSdW5SZXN1bHQKKzxfcHl0ZXN0LnB5dGVzdGVy
LlJ1blJlc3VsdD5gIGRvY3VtZW50YXRpb24uCisKKworLi4gX2B3cml0aW5naG9va3NgOgorCitX
cml0aW5nIGhvb2sgZnVuY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09CisKKworLi4gX3Zh
bGlkYXRpb246CisKK2hvb2sgZnVuY3Rpb24gdmFsaWRhdGlvbiBhbmQgZXhlY3V0aW9uCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitweXRlc3QgY2FsbHMgaG9vayBm
dW5jdGlvbnMgZnJvbSByZWdpc3RlcmVkIHBsdWdpbnMgZm9yIGFueQorZ2l2ZW4gaG9vayBzcGVj
aWZpY2F0aW9uLiAgTGV0J3MgbG9vayBhdCBhIHR5cGljYWwgaG9vayBmdW5jdGlvbgorZm9yIHRo
ZSBgYHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlc3Npb24sIGNvbmZpZywKK2l0ZW1z
KWBgIGhvb2sgd2hpY2ggcHl0ZXN0IGNhbGxzIGFmdGVyIGNvbGxlY3Rpb24gb2YgYWxsIHRlc3Qg
aXRlbXMgaXMKK2NvbXBsZXRlZC4KKworV2hlbiB3ZSBpbXBsZW1lbnQgYSBgYHB5dGVzdF9jb2xs
ZWN0aW9uX21vZGlmeWl0ZW1zYGAgZnVuY3Rpb24gaW4gb3VyIHBsdWdpbgorcHl0ZXN0IHdpbGwg
ZHVyaW5nIHJlZ2lzdHJhdGlvbiB2ZXJpZnkgdGhhdCB5b3UgdXNlIGFyZ3VtZW50CituYW1lcyB3
aGljaCBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgYmFpbCBvdXQgaWYgbm90LgorCitMZXQn
cyBsb29rIGF0IGEgcG9zc2libGUgaW1wbGVtZW50YXRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhjb25maWcsIGl0
ZW1zKToKKyAgICAgICAgIyBjYWxsZWQgYWZ0ZXIgY29sbGVjdGlvbiBpcyBjb21wbGV0ZWQKKyAg
ICAgICAgIyB5b3UgY2FuIG1vZGlmeSB0aGUgYGBpdGVtc2BgIGxpc3QKKworSGVyZSwgYGBweXRl
c3RgYCB3aWxsIHBhc3MgaW4gYGBjb25maWdgYCAodGhlIHB5dGVzdCBjb25maWcgb2JqZWN0KQor
YW5kIGBgaXRlbXNgYCAodGhlIGxpc3Qgb2YgY29sbGVjdGVkIHRlc3QgaXRlbXMpIGJ1dCB3aWxs
IG5vdCBwYXNzCitpbiB0aGUgYGBzZXNzaW9uYGAgYXJndW1lbnQgYmVjYXVzZSB3ZSBkaWRuJ3Qg
bGlzdCBpdCBpbiB0aGUgZnVuY3Rpb24KK3NpZ25hdHVyZS4gIFRoaXMgZHluYW1pYyAicHJ1bmlu
ZyIgb2YgYXJndW1lbnRzIGFsbG93cyBgYHB5dGVzdGBgIHRvCitiZSAiZnV0dXJlLWNvbXBhdGli
bGUiOiB3ZSBjYW4gaW50cm9kdWNlIG5ldyBob29rIG5hbWVkIHBhcmFtZXRlcnMgd2l0aG91dAor
YnJlYWtpbmcgdGhlIHNpZ25hdHVyZXMgb2YgZXhpc3RpbmcgaG9vayBpbXBsZW1lbnRhdGlvbnMu
ICBJdCBpcyBvbmUgb2YKK3RoZSByZWFzb25zIGZvciB0aGUgZ2VuZXJhbCBsb25nLWxpdmVkIGNv
bXBhdGliaWxpdHkgb2YgcHl0ZXN0IHBsdWdpbnMuCisKK05vdGUgdGhhdCBob29rIGZ1bmN0aW9u
cyBvdGhlciB0aGFuIGBgcHl0ZXN0X3J1bnRlc3RfKmBgIGFyZSBub3QKK2FsbG93ZWQgdG8gcmFp
c2UgZXhjZXB0aW9ucy4gIERvaW5nIHNvIHdpbGwgYnJlYWsgdGhlIHB5dGVzdCBydW4uCisKKwor
CisuLiBfZmlyc3RyZXN1bHQ6CisKK2ZpcnN0cmVzdWx0OiBzdG9wIGF0IGZpcnN0IG5vbi1Ob25l
IHJlc3VsdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitN
b3N0IGNhbGxzIHRvIGBgcHl0ZXN0YGAgaG9va3MgcmVzdWx0IGluIGEgKipsaXN0IG9mIHJlc3Vs
dHMqKiB3aGljaCBjb250YWlucworYWxsIG5vbi1Ob25lIHJlc3VsdHMgb2YgdGhlIGNhbGxlZCBo
b29rIGZ1bmN0aW9ucy4KKworU29tZSBob29rIHNwZWNpZmljYXRpb25zIHVzZSB0aGUgYGBmaXJz
dHJlc3VsdD1UcnVlYGAgb3B0aW9uIHNvIHRoYXQgdGhlIGhvb2sKK2NhbGwgb25seSBleGVjdXRl
cyB1bnRpbCB0aGUgZmlyc3Qgb2YgTiByZWdpc3RlcmVkIGZ1bmN0aW9ucyByZXR1cm5zIGEKK25v
bi1Ob25lIHJlc3VsdCB3aGljaCBpcyB0aGVuIHRha2VuIGFzIHJlc3VsdCBvZiB0aGUgb3ZlcmFs
bCBob29rIGNhbGwuCitUaGUgcmVtYWluaW5nIGhvb2sgZnVuY3Rpb25zIHdpbGwgbm90IGJlIGNh
bGxlZCBpbiB0aGlzIGNhc2UuCisKKworaG9va3dyYXBwZXI6IGV4ZWN1dGluZyBhcm91bmQgb3Ro
ZXIgaG9va3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLi4gY3VycmVudG1vZHVsZTo6IF9weXRlc3QuY29yZQorCisuLiB2ZXJzaW9uYWRkZWQ6
OiAyLjcKKworcHl0ZXN0IHBsdWdpbnMgY2FuIGltcGxlbWVudCBob29rIHdyYXBwZXJzIHdoaWNo
IHdyYXAgdGhlIGV4ZWN1dGlvbgorb2Ygb3RoZXIgaG9vayBpbXBsZW1lbnRhdGlvbnMuICBBIGhv
b2sgd3JhcHBlciBpcyBhIGdlbmVyYXRvciBmdW5jdGlvbgord2hpY2ggeWllbGRzIGV4YWN0bHkg
b25jZS4gV2hlbiBweXRlc3QgaW52b2tlcyBob29rcyBpdCBmaXJzdCBleGVjdXRlcworaG9vayB3
cmFwcGVycyBhbmQgcGFzc2VzIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyB0byB0aGUgcmVndWxhciBo
b29rcy4KKworQXQgdGhlIHlpZWxkIHBvaW50IG9mIHRoZSBob29rIHdyYXBwZXIgcHl0ZXN0IHdp
bGwgZXhlY3V0ZSB0aGUgbmV4dCBob29rCitpbXBsZW1lbnRhdGlvbnMgYW5kIHJldHVybiB0aGVp
ciByZXN1bHQgdG8gdGhlIHlpZWxkIHBvaW50IGluIHRoZSBmb3JtIG9mCithIDpweTpjbGFzczpg
UmVzdWx0IDxwbHVnZ3kuX1Jlc3VsdD5gIGluc3RhbmNlIHdoaWNoIGVuY2Fwc3VsYXRlcyBhIHJl
c3VsdCBvcgorZXhjZXB0aW9uIGluZm8uICBUaGUgeWllbGQgcG9pbnQgaXRzZWxmIHdpbGwgdGh1
cyB0eXBpY2FsbHkgbm90IHJhaXNlCitleGNlcHRpb25zICh1bmxlc3MgdGhlcmUgYXJlIGJ1Z3Mp
LgorCitIZXJlIGlzIGFuIGV4YW1wbGUgZGVmaW5pdGlvbiBvZiBhIGhvb2sgd3JhcHBlcjo6CisK
KyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRy
dWUpCisgICAgZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtKToKKyAgICAgICAgIyBk
byB3aGF0ZXZlciB5b3Ugd2FudCBiZWZvcmUgdGhlIG5leHQgaG9vayBleGVjdXRlcworCisgICAg
ICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAjIG91dGNvbWUuZXhjaW5mbyBtYXkgYmUgTm9u
ZSBvciBhIChjbHMsIHZhbCwgdGIpIHR1cGxlCisKKyAgICAgICAgcmVzID0gb3V0Y29tZS5nZXRf
cmVzdWx0KCkgICMgd2lsbCByYWlzZSBpZiBvdXRjb21lIHdhcyBleGNlcHRpb24KKyAgICAgICAg
IyBwb3N0cHJvY2VzcyByZXN1bHQKKworTm90ZSB0aGF0IGhvb2sgd3JhcHBlcnMgZG9uJ3QgcmV0
dXJuIHJlc3VsdHMgdGhlbXNlbHZlcywgdGhleSBtZXJlbHkKK3BlcmZvcm0gdHJhY2luZyBvciBv
dGhlciBzaWRlIGVmZmVjdHMgYXJvdW5kIHRoZSBhY3R1YWwgaG9vayBpbXBsZW1lbnRhdGlvbnMu
CitJZiB0aGUgcmVzdWx0IG9mIHRoZSB1bmRlcmx5aW5nIGhvb2sgaXMgYSBtdXRhYmxlIG9iamVj
dCwgdGhleSBtYXkgbW9kaWZ5Cit0aGF0IHJlc3VsdCBidXQgaXQncyBwcm9iYWJseSBiZXR0ZXIg
dG8gYXZvaWQgaXQuCisKKworSG9vayBmdW5jdGlvbiBvcmRlcmluZyAvIGNhbGwgZXhhbXBsZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3IgYW55IGdpdmVuIGhv
b2sgc3BlY2lmaWNhdGlvbiB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZQoraW1wbGVtZW50YXRp
b24gYW5kIHdlIHRodXMgZ2VuZXJhbGx5IHZpZXcgYGBob29rYGAgZXhlY3V0aW9uIGFzIGEKK2Bg
MTpOYGAgZnVuY3Rpb24gY2FsbCB3aGVyZSBgYE5gYCBpcyB0aGUgbnVtYmVyIG9mIHJlZ2lzdGVy
ZWQgZnVuY3Rpb25zLgorVGhlcmUgYXJlIHdheXMgdG8gaW5mbHVlbmNlIGlmIGEgaG9vayBpbXBs
ZW1lbnRhdGlvbiBjb21lcyBiZWZvcmUgb3IKK2FmdGVyIG90aGVycywgaS5lLiAgdGhlIHBvc2l0
aW9uIGluIHRoZSBgYE5gYC1zaXplZCBsaXN0IG9mIGZ1bmN0aW9uczoKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgIyBQbHVnaW4gMQorICAgIEBweXRlc3QuaG9va2ltcGwodHJ5Zmly
c3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoaXRlbXMpOgor
ICAgICAgICAjIHdpbGwgZXhlY3V0ZSBhcyBlYXJseSBhcyBwb3NzaWJsZQorCisgICAgIyBQbHVn
aW4gMgorICAgIEBweXRlc3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBweXRlc3Rf
Y29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcyk6CisgICAgICAgICMgd2lsbCBleGVjdXRlIGFz
IGxhdGUgYXMgcG9zc2libGUKKworICAgICMgUGx1Z2luIDMKKyAgICBAcHl0ZXN0Lmhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1z
KGl0ZW1zKToKKyAgICAgICAgIyB3aWxsIGV4ZWN1dGUgZXZlbiBiZWZvcmUgdGhlIHRyeWZpcnN0
IG9uZSBhYm92ZSEKKyAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAgICMgd2lsbCBleGVj
dXRlIGFmdGVyIGFsbCBub24taG9va3dyYXBwZXJzIGV4ZWN1dGVkCisKK0hlcmUgaXMgdGhlIG9y
ZGVyIG9mIGV4ZWN1dGlvbjoKKworMS4gUGx1Z2luMydzIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlm
eWl0ZW1zIGNhbGxlZCB1bnRpbCB0aGUgeWllbGQgcG9pbnQKKyAgIGJlY2F1c2UgaXQgaXMgYSBo
b29rIHdyYXBwZXIuCisKKzIuIFBsdWdpbjEncyBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVt
cyBpcyBjYWxsZWQgYmVjYXVzZSBpdCBpcyBtYXJrZWQKKyAgIHdpdGggYGB0cnlmaXJzdD1UcnVl
YGAuCisKKzMuIFBsdWdpbjIncyBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyBpcyBjYWxs
ZWQgYmVjYXVzZSBpdCBpcyBtYXJrZWQKKyAgIHdpdGggYGB0cnlsYXN0PVRydWVgYCAoYnV0IGV2
ZW4gd2l0aG91dCB0aGlzIG1hcmsgaXQgd291bGQgY29tZSBhZnRlcgorICAgUGx1Z2luMSkuCisK
KzQuIFBsdWdpbjMncyBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyB0aGVuIGV4ZWN1dGlu
ZyB0aGUgY29kZSBhZnRlciB0aGUgeWllbGQKKyAgIHBvaW50LiAgVGhlIHlpZWxkIHJlY2VpdmVz
IGEgOnB5OmNsYXNzOmBSZXN1bHQgPHBsdWdneS5fUmVzdWx0PmAgaW5zdGFuY2Ugd2hpY2ggZW5j
YXBzdWxhdGVzCisgICB0aGUgcmVzdWx0IGZyb20gY2FsbGluZyB0aGUgbm9uLXdyYXBwZXJzLiAg
V3JhcHBlcnMgc2hhbGwgbm90IG1vZGlmeSB0aGUgcmVzdWx0LgorCitJdCdzIHBvc3NpYmxlIHRv
IHVzZSBgYHRyeWZpcnN0YGAgYW5kIGBgdHJ5bGFzdGBgIGFsc28gaW4gY29uanVuY3Rpb24gd2l0
aAorYGBob29rd3JhcHBlcj1UcnVlYGAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGluZmx1ZW5jZSB0
aGUgb3JkZXJpbmcgb2YgaG9va3dyYXBwZXJzCithbW9uZyBlYWNoIG90aGVyLgorCisKK0RlY2xh
cmluZyBuZXcgaG9va3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBjdXJyZW50bW9k
dWxlOjogX3B5dGVzdC5ob29rc3BlYworCitQbHVnaW5zIGFuZCBgYGNvbmZ0ZXN0LnB5YGAgZmls
ZXMgbWF5IGRlY2xhcmUgbmV3IGhvb2tzIHRoYXQgY2FuIHRoZW4gYmUKK2ltcGxlbWVudGVkIGJ5
IG90aGVyIHBsdWdpbnMgaW4gb3JkZXIgdG8gYWx0ZXIgYmVoYXZpb3VyIG9yIGludGVyYWN0IHdp
dGgKK3RoZSBuZXcgcGx1Z2luOgorCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfYWRkaG9va3MK
KworSG9va3MgYXJlIHVzdWFsbHkgZGVjbGFyZWQgYXMgZG8tbm90aGluZyBmdW5jdGlvbnMgdGhh
dCBjb250YWluIG9ubHkKK2RvY3VtZW50YXRpb24gZGVzY3JpYmluZyB3aGVuIHRoZSBob29rIHdp
bGwgYmUgY2FsbGVkIGFuZCB3aGF0IHJldHVybiB2YWx1ZXMKK2FyZSBleHBlY3RlZC4KKworRm9y
IGFuIGV4YW1wbGUsIHNlZSBgbmV3aG9va3MucHlgXyBmcm9tIGB4ZGlzdCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0LXhkaXN0PmBfLgorCisuLiBfYG5ld2hvb2tzLnB5YDog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0LXhkaXN0L2Jsb2IvOTc0YmQ1NjZj
NTk5ZGM2YTllYTI5MTgzOGM2ZjIyNjE5NzIwOGI0Ni94ZGlzdC9uZXdob29rcy5weQorCisKK09w
dGlvbmFsbHkgdXNpbmcgaG9va3MgZnJvbSAzcmQgcGFydHkgcGx1Z2lucworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1VzaW5nIG5ldyBob29rcyBmcm9t
IHBsdWdpbnMgYXMgZXhwbGFpbmVkIGFib3ZlIG1pZ2h0IGJlIGEgbGl0dGxlIHRyaWNreQorYmVj
YXVzZSBvZiB0aGUgc3RhbmRhcmQgOnJlZjpgdmFsaWRhdGlvbiBtZWNoYW5pc20gPHZhbGlkYXRp
b24+YDoKK2lmIHlvdSBkZXBlbmQgb24gYSBwbHVnaW4gdGhhdCBpcyBub3QgaW5zdGFsbGVkLCB2
YWxpZGF0aW9uIHdpbGwgZmFpbCBhbmQKK3RoZSBlcnJvciBtZXNzYWdlIHdpbGwgbm90IG1ha2Ug
bXVjaCBzZW5zZSB0byB5b3VyIHVzZXJzLgorCitPbmUgYXBwcm9hY2ggaXMgdG8gZGVmZXIgdGhl
IGhvb2sgaW1wbGVtZW50YXRpb24gdG8gYSBuZXcgcGx1Z2luIGluc3RlYWQgb2YKK2RlY2xhcmlu
ZyB0aGUgaG9vayBmdW5jdGlvbnMgZGlyZWN0bHkgaW4geW91ciBwbHVnaW4gbW9kdWxlLCBmb3Ig
ZXhhbXBsZTo6CisKKyAgICAjIGNvbnRlbnRzIG9mIG15cGx1Z2luLnB5CisKKyAgICBjbGFzcyBE
ZWZlclBsdWdpbihvYmplY3QpOgorICAgICAgICAiIiJTaW1wbGUgcGx1Z2luIHRvIGRlZmVyIHB5
dGVzdC14ZGlzdCBob29rIGZ1bmN0aW9ucy4iIiIKKworICAgICAgICBkZWYgcHl0ZXN0X3Rlc3Ru
b2RlZG93bihzZWxmLCBub2RlLCBlcnJvcik6CisgICAgICAgICAgICAiIiJzdGFuZGFyZCB4ZGlz
dCBob29rIGZ1bmN0aW9uLgorICAgICAgICAgICAgIiIiCisKKyAgICBkZWYgcHl0ZXN0X2NvbmZp
Z3VyZShjb25maWcpOgorICAgICAgICBpZiBjb25maWcucGx1Z2lubWFuYWdlci5oYXNwbHVnaW4o
J3hkaXN0Jyk6CisgICAgICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihEZWZl
clBsdWdpbigpKQorCitUaGlzIGhhcyB0aGUgYWRkZWQgYmVuZWZpdCBvZiBhbGxvd2luZyB5b3Ug
dG8gY29uZGl0aW9uYWxseSBpbnN0YWxsIGhvb2tzCitkZXBlbmRpbmcgb24gd2hpY2ggcGx1Z2lu
cyBhcmUgaW5zdGFsbGVkLgorCisuLiBfYHdlbGwgc3BlY2lmaWVkIGhvb2tzYDoKKworLi4gY3Vy
cmVudG1vZHVsZTo6IF9weXRlc3QuaG9va3NwZWMKKworcHl0ZXN0IGhvb2sgcmVmZXJlbmNlCis9
PT09PT09PT09PT09PT09PT09PT0KKworCitJbml0aWFsaXphdGlvbiwgY29tbWFuZCBsaW5lIGFu
ZCBjb25maWd1cmF0aW9uIGhvb2tzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9sb2FkX2luaXRp
YWxfY29uZnRlc3RzCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfY21kbGluZV9wcmVwYXJzZQor
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NtZGxpbmVfcGFyc2UKKy4uIGF1dG9mdW5jdGlvbjo6
IHB5dGVzdF9hZGRvcHRpb24KKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jbWRsaW5lX21haW4K
Ky4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb25maWd1cmUKKy4uIGF1dG9mdW5jdGlvbjo6IHB5
dGVzdF91bmNvbmZpZ3VyZQorCitHZW5lcmljICJydW50ZXN0IiBob29rcworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworQWxsIHJ1bnRlc3QgcmVsYXRlZCBob29rcyByZWNlaXZlIGEgOnB5OmNs
YXNzOmBweXRlc3QuSXRlbSA8X3B5dGVzdC5tYWluLkl0ZW0+YCBvYmplY3QuCisKKy4uIGF1dG9m
dW5jdGlvbjo6IHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sCisuLiBhdXRvZnVuY3Rpb246OiBweXRl
c3RfcnVudGVzdF9zZXR1cAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3J1bnRlc3RfY2FsbAor
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24KKy4uIGF1dG9mdW5jdGlv
bjo6IHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQKKworRm9yIGRlZXBlciB1bmRlcnN0YW5kaW5n
IHlvdSBtYXkgbG9vayBhdCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZgordGhlc2UgaG9v
a3MgaW4gOnB5Om1vZDpgX3B5dGVzdC5ydW5uZXJgIGFuZCBtYXliZSBhbHNvCitpbiA6cHk6bW9k
OmBfcHl0ZXN0LnBkYmAgd2hpY2ggaW50ZXJhY3RzIHdpdGggOnB5Om1vZDpgX3B5dGVzdC5jYXB0
dXJlYAorYW5kIGl0cyBpbnB1dC9vdXRwdXQgY2FwdHVyaW5nIGluIG9yZGVyIHRvIGltbWVkaWF0
ZWx5IGRyb3AKK2ludG8gaW50ZXJhY3RpdmUgZGVidWdnaW5nIHdoZW4gYSB0ZXN0IGZhaWx1cmUg
b2NjdXJzLgorCitUaGUgOnB5Om1vZDpgX3B5dGVzdC50ZXJtaW5hbGAgcmVwb3J0ZWQgc3BlY2lm
aWNhbGx5IHVzZXMKK3RoZSByZXBvcnRpbmcgaG9vayB0byBwcmludCBpbmZvcm1hdGlvbiBhYm91
dCBhIHRlc3QgcnVuLgorCitDb2xsZWN0aW9uIGhvb2tzCistLS0tLS0tLS0tLS0tLS0tCisKK2Bg
cHl0ZXN0YGAgY2FsbHMgdGhlIGZvbGxvd2luZyBob29rcyBmb3IgY29sbGVjdGluZyBmaWxlcyBh
bmQgZGlyZWN0b3JpZXM6CisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9pZ25vcmVfY29sbGVj
dAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5CisuLiBhdXRvZnVu
Y3Rpb246OiBweXRlc3RfY29sbGVjdF9maWxlCisKK0ZvciBpbmZsdWVuY2luZyB0aGUgY29sbGVj
dGlvbiBvZiBvYmplY3RzIGluIFB5dGhvbiBtb2R1bGVzCit5b3UgY2FuIHVzZSB0aGUgZm9sbG93
aW5nIGhvb2s6CisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0K
Ky4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cworLi4gYXV0b2Z1bmN0aW9u
OjogcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQKKworQWZ0ZXIgY29sbGVjdGlvbiBpcyBjb21w
bGV0ZSwgeW91IGNhbiBtb2RpZnkgdGhlIG9yZGVyIG9mCitpdGVtcywgZGVsZXRlIG9yIG90aGVy
d2lzZSBhbWVuZCB0aGUgdGVzdCBpdGVtczoKKworLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2Nv
bGxlY3Rpb25fbW9kaWZ5aXRlbXMKKworUmVwb3J0aW5nIGhvb2tzCistLS0tLS0tLS0tLS0tLS0K
KworU2Vzc2lvbiByZWxhdGVkIHJlcG9ydGluZyBob29rczoKKworLi4gYXV0b2Z1bmN0aW9uOjog
cHl0ZXN0X2NvbGxlY3RzdGFydAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2l0ZW1jb2xsZWN0
ZWQKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0cmVwb3J0CisuLiBhdXRvZnVuY3Rp
b246OiBweXRlc3RfZGVzZWxlY3RlZAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3JlcG9ydF9o
ZWFkZXIKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaAor
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzCisuLiBhdXRvZnVuY3Rp
b246OiBweXRlc3RfdGVybWluYWxfc3VtbWFyeQorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2Zp
eHR1cmVfc2V0dXAKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxp
emVyCisKK0FuZCBoZXJlIGlzIHRoZSBjZW50cmFsIGhvb2sgZm9yIHJlcG9ydGluZyBhYm91dAor
dGVzdCBleGVjdXRpb246CisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9ydW50ZXN0X2xvZ3Jl
cG9ydAorCitZb3UgY2FuIGFsc28gdXNlIHRoaXMgaG9vayB0byBjdXN0b21pemUgYXNzZXJ0aW9u
IHJlcHJlc2VudGF0aW9uIGZvciBzb21lCit0eXBlczoKKworLi4gYXV0b2Z1bmN0aW9uOjogcHl0
ZXN0X2Fzc2VydHJlcHJfY29tcGFyZQorCisKK0RlYnVnZ2luZy9JbnRlcmFjdGlvbiBob29rcwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSBmZXcgaG9va3Mgd2hpY2gg
Y2FuIGJlIHVzZWQgZm9yIHNwZWNpYWwKK3JlcG9ydGluZyBvciBpbnRlcmFjdGlvbiB3aXRoIGV4
Y2VwdGlvbnM6CisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9pbnRlcm5hbGVycm9yCisuLiBh
dXRvZnVuY3Rpb246OiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0CisuLiBhdXRvZnVuY3Rpb246
OiBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0CisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfZW50
ZXJfcGRiCisKKworUmVmZXJlbmNlIG9mIG9iamVjdHMgaW52b2x2ZWQgaW4gaG9va3MKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9jbGFzczo6IF9weXRl
c3QuY29uZmlnLkNvbmZpZygpCisgICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IF9weXRl
c3QuY29uZmlnLlBhcnNlcigpCisgICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IF9weXRl
c3QubWFpbi5Ob2RlKCkKKyAgICA6bWVtYmVyczoKKworLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5t
YWluLkNvbGxlY3RvcigpCisgICAgOm1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJpdGFuY2U6CisK
Ky4uIGF1dG9jbGFzczo6IF9weXRlc3QubWFpbi5JdGVtKCkKKyAgICA6bWVtYmVyczoKKyAgICA6
c2hvdy1pbmhlcml0YW5jZToKKworLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5weXRob24uTW9kdWxl
KCkKKyAgICA6bWVtYmVyczoKKyAgICA6c2hvdy1pbmhlcml0YW5jZToKKworLi4gYXV0b2NsYXNz
OjogX3B5dGVzdC5weXRob24uQ2xhc3MoKQorICAgIDptZW1iZXJzOgorICAgIDpzaG93LWluaGVy
aXRhbmNlOgorCisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LnB5dGhvbi5GdW5jdGlvbigpCisgICAg
Om1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJpdGFuY2U6CisKKy4uIGF1dG9jbGFzczo6IF9weXRl
c3QuZml4dHVyZXMuRml4dHVyZURlZigpCisgICAgOm1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJp
dGFuY2U6CisKKy4uIGF1dG9jbGFzczo6IF9weXRlc3QucnVubmVyLkNhbGxJbmZvKCkKKyAgICA6
bWVtYmVyczoKKworLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5ydW5uZXIuVGVzdFJlcG9ydCgpCisg
ICAgOm1lbWJlcnM6CisgICAgOmluaGVyaXRlZC1tZW1iZXJzOgorCisuLiBhdXRvY2xhc3M6OiBw
bHVnZ3kuX1Jlc3VsdAorICAgIDptZW1iZXJzOgorCisuLiBhdXRvZnVuY3Rpb246OiBfcHl0ZXN0
LmNvbmZpZy5nZXRfcGx1Z2luX21hbmFnZXIoKQorCisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LmNv
bmZpZy5QeXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICA6bWVtYmVyczoKKyAgICA6dW5kb2MtbWVt
YmVyczoKKyAgICA6c2hvdy1pbmhlcml0YW5jZToKKworLi4gYXV0b2NsYXNzOjogcGx1Z2d5LlBs
dWdpbk1hbmFnZXIoKQorICAgIDptZW1iZXJzOgorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVz
dC5weXRlc3RlcgorCisuLiBhdXRvY2xhc3M6OiBUZXN0ZGlyKCkKKyAgICA6bWVtYmVyczogcnVu
cHl0ZXN0LHJ1bnB5dGVzdF9zdWJwcm9jZXNzLHJ1bnB5dGVzdF9pbnByb2Nlc3MsbWFrZWNvbmZ0
ZXN0LG1ha2VweWZpbGUKKworLi4gYXV0b2NsYXNzOjogUnVuUmVzdWx0KCkKKyAgICA6bWVtYmVy
czoKKworLi4gYXV0b2NsYXNzOjogTGluZU1hdGNoZXIoKQorICAgIDptZW1iZXJzOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3h1bml0X3NldHVwLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi94dW5pdF9zZXR1cC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ4ZmIxMjA5ZWEzOTNhZWQ0YjEzM2My
YjhiZDc5MGQ3MjZmMjRlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi94
dW5pdF9zZXR1cC5yc3QKQEAgLTAsMCArMSw5OSBAQAorCisuLiBfYGNsYXNzaWMgeHVuaXRgOgor
Li4gX3h1bml0c2V0dXA6CisKK2NsYXNzaWMgeHVuaXQtc3R5bGUgc2V0dXAKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBh
IGNsYXNzaWMgYW5kIHBvcHVsYXIgd2F5IGhvdyB5b3UgY2FuIGltcGxlbWVudAorZml4dHVyZXMg
KHNldHVwIGFuZCB0ZWFyZG93biB0ZXN0IHN0YXRlKSBvbiBhIHBlci1tb2R1bGUvY2xhc3MvZnVu
Y3Rpb24gYmFzaXMuICAKKworCisuLiBub3RlOjoKKworICAgIFdoaWxlIHRoZXNlIHNldHVwL3Rl
YXJkb3duIG1ldGhvZHMgYXJlIHNpbXBsZSBhbmQgZmFtaWxpYXIgdG8gdGhvc2UKKyAgICBjb21p
bmcgZnJvbSBhIGBgdW5pdHRlc3RgYCBvciBub3NlIGBgYmFja2dyb3VuZGBgLCB5b3UgbWF5IGFs
c28gY29uc2lkZXIKKyAgICB1c2luZyBweXRlc3QncyBtb3JlIHBvd2VyZnVsIDpyZWY6YGZpeHR1
cmUgbWVjaGFuaXNtCisgICAgPGZpeHR1cmU+YCB3aGljaCBsZXZlcmFnZXMgdGhlIGNvbmNlcHQg
b2YgZGVwZW5kZW5jeSBpbmplY3Rpb24sIGFsbG93aW5nCisgICAgZm9yIGEgbW9yZSBtb2R1bGFy
IGFuZCBtb3JlIHNjYWxhYmxlIGFwcHJvYWNoIGZvciBtYW5hZ2luZyB0ZXN0IHN0YXRlLAorICAg
IGVzcGVjaWFsbHkgZm9yIGxhcmdlciBwcm9qZWN0cyBhbmQgZm9yIGZ1bmN0aW9uYWwgdGVzdGlu
Zy4gIFlvdSBjYW4KKyAgICBtaXggYm90aCBmaXh0dXJlIG1lY2hhbmlzbXMgaW4gdGhlIHNhbWUg
ZmlsZSBidXQKKyAgICB0ZXN0IG1ldGhvZHMgb2YgYGB1bml0dGVzdC5UZXN0Q2FzZWBgIHN1YmNs
YXNzZXMKKyAgICBjYW5ub3QgcmVjZWl2ZSBmaXh0dXJlIGFyZ3VtZW50cy4KKworCitNb2R1bGUg
bGV2ZWwgc2V0dXAvdGVhcmRvd24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK0lmIHlvdSBoYXZlIG11bHRpcGxlIHRlc3QgZnVuY3Rpb25zIGFuZCB0ZXN0IGNsYXNz
ZXMgaW4gYSBzaW5nbGUKK21vZHVsZSB5b3UgY2FuIG9wdGlvbmFsbHkgaW1wbGVtZW50IHRoZSBm
b2xsb3dpbmcgZml4dHVyZSBtZXRob2RzCit3aGljaCB3aWxsIHVzdWFsbHkgYmUgY2FsbGVkIG9u
Y2UgZm9yIGFsbCB0aGUgZnVuY3Rpb25zOjoKKworICAgIGRlZiBzZXR1cF9tb2R1bGUobW9kdWxl
KToKKyAgICAgICAgIiIiIHNldHVwIGFueSBzdGF0ZSBzcGVjaWZpYyB0byB0aGUgZXhlY3V0aW9u
IG9mIHRoZSBnaXZlbiBtb2R1bGUuIiIiCisKKyAgICBkZWYgdGVhcmRvd25fbW9kdWxlKG1vZHVs
ZSk6CisgICAgICAgICIiIiB0ZWFyZG93biBhbnkgc3RhdGUgdGhhdCB3YXMgcHJldmlvdXNseSBz
ZXR1cCB3aXRoIGEgc2V0dXBfbW9kdWxlCisgICAgICAgIG1ldGhvZC4KKyAgICAgICAgIiIiCisK
K0FzIG9mIHB5dGVzdC0zLjAsIHRoZSBgYG1vZHVsZWBgIHBhcmFtZXRlciBpcyBvcHRpb25hbC4K
KworQ2xhc3MgbGV2ZWwgc2V0dXAvdGVhcmRvd24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworU2ltaWxhcmx5LCB0aGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIGNhbGxlZCBh
dCBjbGFzcyBsZXZlbCBiZWZvcmUKK2FuZCBhZnRlciBhbGwgdGVzdCBtZXRob2RzIG9mIHRoZSBj
bGFzcyBhcmUgY2FsbGVkOjoKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXR1cF9jbGFz
cyhjbHMpOgorICAgICAgICAiIiIgc2V0dXAgYW55IHN0YXRlIHNwZWNpZmljIHRvIHRoZSBleGVj
dXRpb24gb2YgdGhlIGdpdmVuIGNsYXNzICh3aGljaAorICAgICAgICB1c3VhbGx5IGNvbnRhaW5z
IHRlc3RzKS4KKyAgICAgICAgIiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVhcmRv
d25fY2xhc3MoY2xzKToKKyAgICAgICAgIiIiIHRlYXJkb3duIGFueSBzdGF0ZSB0aGF0IHdhcyBw
cmV2aW91c2x5IHNldHVwIHdpdGggYSBjYWxsIHRvCisgICAgICAgIHNldHVwX2NsYXNzLgorICAg
ICAgICAiIiIKKworTWV0aG9kIGFuZCBmdW5jdGlvbiBsZXZlbCBzZXR1cC90ZWFyZG93bgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU2ltaWxhcmx5
LCB0aGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIGNhbGxlZCBhcm91bmQgZWFjaCBtZXRob2QgaW52
b2NhdGlvbjo6CisKKyAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAgICAg
ICIiIiBzZXR1cCBhbnkgc3RhdGUgdGllZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoZSBnaXZlbiBt
ZXRob2QgaW4gYQorICAgICAgICBjbGFzcy4gIHNldHVwX21ldGhvZCBpcyBpbnZva2VkIGZvciBl
dmVyeSB0ZXN0IG1ldGhvZCBvZiBhIGNsYXNzLgorICAgICAgICAiIiIKKworICAgIGRlZiB0ZWFy
ZG93bl9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgIiIiIHRlYXJkb3duIGFueSBzdGF0
ZSB0aGF0IHdhcyBwcmV2aW91c2x5IHNldHVwIHdpdGggYSBzZXR1cF9tZXRob2QKKyAgICAgICAg
Y2FsbC4KKyAgICAgICAgIiIiCisKK0FzIG9mIHB5dGVzdC0zLjAsIHRoZSBgYG1ldGhvZGBgIHBh
cmFtZXRlciBpcyBvcHRpb25hbC4KKworSWYgeW91IHdvdWxkIHJhdGhlciBkZWZpbmUgdGVzdCBm
dW5jdGlvbnMgZGlyZWN0bHkgYXQgbW9kdWxlIGxldmVsCit5b3UgY2FuIGFsc28gdXNlIHRoZSBm
b2xsb3dpbmcgZnVuY3Rpb25zIHRvIGltcGxlbWVudCBmaXh0dXJlczo6CisKKyAgICBkZWYgc2V0
dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAiIiIgc2V0dXAgYW55IHN0YXRlIHRpZWQg
dG8gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZ2l2ZW4gZnVuY3Rpb24uCisgICAgICAgIEludm9rZWQg
Zm9yIGV2ZXJ5IHRlc3QgZnVuY3Rpb24gaW4gdGhlIG1vZHVsZS4KKyAgICAgICAgIiIiCisKKyAg
ICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAiIiIgdGVhcmRvd24g
YW55IHN0YXRlIHRoYXQgd2FzIHByZXZpb3VzbHkgc2V0dXAgd2l0aCBhIHNldHVwX2Z1bmN0aW9u
CisgICAgICAgIGNhbGwuCisgICAgICAgICIiIgorCitBcyBvZiBweXRlc3QtMy4wLCB0aGUgYGBm
dW5jdGlvbmBgIHBhcmFtZXRlciBpcyBvcHRpb25hbC4KKworUmVtYXJrczoKKworKiBJdCBpcyBw
b3NzaWJsZSBmb3Igc2V0dXAvdGVhcmRvd24gcGFpcnMgdG8gYmUgaW52b2tlZCBtdWx0aXBsZSB0
aW1lcworICBwZXIgdGVzdGluZyBwcm9jZXNzLgorKiB0ZWFyZG93biBmdW5jdGlvbnMgYXJlIG5v
dCBjYWxsZWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgc2V0dXAgZnVuY3Rpb24gZXhpc3RlZAorICBh
bmQgZmFpbGVkL3dhcyBza2lwcGVkLgorCisuLiBfYHVuaXR0ZXN0LnB5IG1vZHVsZWA6IGh0dHA6
Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS91bml0dGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0dXJlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95aWVs
ZGZpeHR1cmUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZDFlZGFjMmY1ZTAwNDJlZWUxODYzZWFiZDM5MzU0
MGZjODYzMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0
dXJlLnJzdApAQCAtMCwwICsxLDE4IEBACis6b3JwaGFuOgorCisuLiBfeWllbGRmaXh0dXJlOgor
CisieWllbGRfZml4dHVyZSIgZnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZGVwcmVjYXRlZDo6IDMu
MAorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjQKKworLi4gaW1wb3J0YW50OjoKKyAgICBTaW5jZSBw
eXRlc3QtMy4wLCBmaXh0dXJlcyB1c2luZyB0aGUgbm9ybWFsIGBgZml4dHVyZWBgIGRlY29yYXRv
ciBjYW4gdXNlIGEgYGB5aWVsZGBgCisgICAgc3RhdGVtZW50IHRvIHByb3ZpZGUgZml4dHVyZSB2
YWx1ZXMgYW5kIGV4ZWN1dGUgdGVhcmRvd24gY29kZSwgZXhhY3RseSBsaWtlIGBgeWllbGRfZml4
dHVyZWBgCisgICAgaW4gcHJldmlvdXMgdmVyc2lvbnMuCisKKyAgICBNYXJraW5nIGZ1bmN0aW9u
cyBhcyBgYHlpZWxkX2ZpeHR1cmVgYCBpcyBzdGlsbCBzdXBwb3J0ZWQsIGJ1dCBkZXByZWNhdGVk
IGFuZCBzaG91bGQgbm90CisgICAgYmUgdXNlZCBpbiBuZXcgY29kZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9nZXRfaXNz
dWVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhOGY4YzMxNjA2OTQ0NGIxYjZhYzIyNjM3NzRjOTVmZTk2MTFl
ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9nZXRfaXNzdWVzLnB5CkBA
IC0wLDAgKzEsODQgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgcHkKK2ltcG9ydCB0ZXh0d3JhcAor
Citpc3N1ZXNfdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzIgorCitpbXBvcnQgcmVxdWVzdHMKKworCitkZWYgZ2V0X2lzc3VlcygpOgor
ICAgIGlzc3VlcyA9IFtdCisgICAgdXJsID0gaXNzdWVzX3VybAorICAgIHdoaWxlIDE6CisgICAg
ICAgIGdldF9kYXRhID0geyJzdGF0ZSI6ICJhbGwifQorICAgICAgICByID0gcmVxdWVzdHMuZ2V0
KHVybCwgcGFyYW1zPWdldF9kYXRhKQorICAgICAgICBkYXRhID0gci5qc29uKCkKKyAgICAgICAg
aWYgci5zdGF0dXNfY29kZSA9PSA0MDM6CisgICAgICAgICAgICAjIEFQSSByZXF1ZXN0IGxpbWl0
IGV4Y2VlZGVkCisgICAgICAgICAgICBwcmludChkYXRhWydtZXNzYWdlJ10pCisgICAgICAgICAg
ICBleGl0KDEpCisgICAgICAgIGlzc3Vlcy5leHRlbmQoZGF0YSkKKworICAgICAgICAjIExvb2sg
Zm9yIG5leHQgcGFnZQorICAgICAgICBsaW5rcyA9IHJlcXVlc3RzLnV0aWxzLnBhcnNlX2hlYWRl
cl9saW5rcyhyLmhlYWRlcnNbJ0xpbmsnXSkKKyAgICAgICAgYW5vdGhlcl9wYWdlID0gRmFsc2UK
KyAgICAgICAgZm9yIGxpbmsgaW4gbGlua3M6CisgICAgICAgICAgICBpZiBsaW5rWydyZWwnXSA9
PSAnbmV4dCc6CisgICAgICAgICAgICAgICAgdXJsID0gbGlua1sndXJsJ10KKyAgICAgICAgICAg
ICAgICBhbm90aGVyX3BhZ2UgPSBUcnVlCisgICAgICAgIGlmIG5vdCBhbm90aGVyX3BhZ2U6Cisg
ICAgICAgICAgICByZXR1cm4gaXNzdWVzCisKKworZGVmIG1haW4oYXJncyk6CisgICAgY2FjaGVm
aWxlID0gcHkucGF0aC5sb2NhbChhcmdzLmNhY2hlKQorICAgIGlmIG5vdCBjYWNoZWZpbGUuZXhp
c3RzKCkgb3IgYXJncy5yZWZyZXNoOgorICAgICAgICBpc3N1ZXMgPSBnZXRfaXNzdWVzKCkKKyAg
ICAgICAgY2FjaGVmaWxlLndyaXRlKGpzb24uZHVtcHMoaXNzdWVzKSkKKyAgICBlbHNlOgorICAg
ICAgICBpc3N1ZXMgPSBqc29uLmxvYWRzKGNhY2hlZmlsZS5yZWFkKCkpCisKKyAgICBvcGVuX2lz
c3VlcyA9IFt4IGZvciB4IGluIGlzc3VlcyBpZiB4WyJzdGF0ZSJdID09ICJvcGVuIl0KKworICAg
IG9wZW5faXNzdWVzLnNvcnQoa2V5PWxhbWJkYSB4OiB4WyJudW1iZXIiXSkKKyAgICByZXBvcnQo
b3Blbl9pc3N1ZXMpCisKKworZGVmIF9nZXRfa2luZChpc3N1ZSk6CisgICAgbGFiZWxzID0gW2xb
J25hbWUnXSBmb3IgbCBpbiBpc3N1ZVsnbGFiZWxzJ11dCisgICAgZm9yIGtleSBpbiAoJ2J1Zycs
ICdlbmhhbmNlbWVudCcsICdwcm9wb3NhbCcpOgorICAgICAgICBpZiBrZXkgaW4gbGFiZWxzOgor
ICAgICAgICAgICAgcmV0dXJuIGtleQorICAgIHJldHVybiAnaXNzdWUnCisKKworZGVmIHJlcG9y
dChpc3N1ZXMpOgorICAgIGZvciBpc3N1ZSBpbiBpc3N1ZXM6CisgICAgICAgIHRpdGxlID0gaXNz
dWVbInRpdGxlIl0KKyAgICAgICAgYm9keSA9IGlzc3VlWyJib2R5Il0KKyAgICAgICAga2luZCA9
IF9nZXRfa2luZChpc3N1ZSkKKyAgICAgICAgc3RhdHVzID0gaXNzdWVbInN0YXRlIl0KKyAgICAg
ICAgbnVtYmVyID0gaXNzdWVbIm51bWJlciJdCisgICAgICAgIGxpbmsgPSAiaHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8lcy8iICUgbnVtYmVyCisgICAgICAgIHBy
aW50KCItLS0tIikKKyAgICAgICAgcHJpbnQoc3RhdHVzLCBraW5kLCBsaW5rKQorICAgICAgICBw
cmludCh0aXRsZSkKKyAgICAgICAgI3ByaW50KCkKKyAgICAgICAgI2xpbmVzID0gYm9keS5zcGxp
dCgiXG4iKQorICAgICAgICAjcHJpbnQgKCJcbiIuam9pbihsaW5lc1s6M10pKQorICAgICAgICAj
aWYgbGVuKGxpbmVzKSA+IDMgb3IgbGVuKGJvZHkpID4gMjQwOgorICAgICAgICAjICAgIHByaW50
ICgiLi4uIikKKyAgICBwcmludCgiXG5cbkZvdW5kICVzIG9wZW4gaXNzdWVzIiAlIGxlbihpc3N1
ZXMpKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgaW1wb3J0IGFyZ3BhcnNl
CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoInByb2Nlc3MgYml0YnVja2V0
IGlzc3VlcyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZWZyZXNoIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImludmFsaWRhdGUgY2Fj
aGUsIHJlZnJlc2ggaXNzdWVzIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNhY2hlIiwg
YWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9Imlzc3Vlcy5qc29uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9ImNhY2hlIGZpbGUiKQorICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygp
CisgICAgbWFpbihhcmdzKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1w
eS50ZXN0L3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDU2MGNlMWY1ZjQ0MzdlNTc0YWViYzUyZGRmOGI4YTM3Yjg2MDVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5w
eQpAQCAtMCwwICsxLDExIEBACitpbXBvcnQgc3lzCitmcm9tIGRpc3R1dGlscy5jb3JlIGltcG9y
dCBzZXR1cAorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGlmICJzZGlzdCIgbm90
IGluIHN5cy5hcmd2WzE6XToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicGxlYXNlIHVzZSAn
cHl0ZXN0JyBweXBpIHBhY2thZ2UgaW5zdGVhZCBvZiAncHkudGVzdCciKQorICAgIHNldHVwKAor
ICAgICAgICBuYW1lPSJweS50ZXN0IiwKKyAgICAgICAgdmVyc2lvbj0iMC4wIiwKKyAgICAgICAg
ZGVzY3JpcHRpb249InBsZWFzZSB1c2UgJ3B5dGVzdCcgZm9yIGluc3RhbGxhdGlvbiIsCisgICAg
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3NldHVwLXB5LnRlc3QvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGJlYzYxYmZiNmVmNTM1ZGI5N2JiN2RhNTg0MGUyMDVlZGRhZDcyMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3NldHVwLXB5LnRlc3QvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHku
dGVzdC9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9leHRyYS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDcyZjA3
NzM4MjIwYzUzOTJlZGFiNGFiNDRmOTNkNjZiOTQ2MTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZXh0cmEvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZXh0cmEvZ2V0X2lzc3Vlcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
cHlwcm9qZWN0LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9weXByb2plY3QudG9tbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ODU3MWUyMDhiOWEzODdmMWFhMjYxNGYzNmNjYWZiMzcyNGU0ODk3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKQEAgLTAsMCArMSwzNSBAQAorW3Rvb2wudG93
bmNyaWVyXQorcGFja2FnZSA9ICJweXRlc3QiCitmaWxlbmFtZSA9ICJDSEFOR0VMT0cucnN0Igor
ZGlyZWN0b3J5ID0gImNoYW5nZWxvZy8iCit0ZW1wbGF0ZSA9ICJjaGFuZ2Vsb2cvX3RlbXBsYXRl
LnJzdCIKKworICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICBkaXJlY3RvcnkgPSAicmVtb3Zh
bCIKKyAgbmFtZSA9ICJEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzIgorICBzaG93Y29udGVudCA9
IHRydWUKKworICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICBkaXJlY3RvcnkgPSAiZmVhdHVy
ZSIKKyAgbmFtZSA9ICJGZWF0dXJlcyIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29s
LnRvd25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gImJ1Z2ZpeCIKKyAgbmFtZSA9ICJCdWcg
Rml4ZXMiCisgIHNob3djb250ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1d
CisgIGRpcmVjdG9yeSA9ICJ2ZW5kb3IiCisgIG5hbWUgPSAiVmVuZG9yZWQgTGlicmFyaWVzIgor
ICBzaG93Y29udGVudCA9IHRydWUKKworICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICBkaXJl
Y3RvcnkgPSAiZG9jIgorICBuYW1lID0gIkltcHJvdmVkIERvY3VtZW50YXRpb24iCisgIHNob3dj
b250ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9
ICJ0cml2aWFsIgorICBuYW1lID0gIlRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcyIKKyAgc2hvd2Nv
bnRlbnQgPSB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9weXRlc3QucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9weXRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2ODFiNjRiNGM3NmI1M2NiODk2NTc5NGYxOGQ4
NGZlNzlhNTNkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3B5dGVzdC5weQpAQCAt
MCwwICsxLDc3IEBACisjIFBZVEhPTl9BUkdDT01QTEVURV9PSworIiIiCitweXRlc3Q6IHVuaXQg
YW5kIGZ1bmN0aW9uYWwgdGVzdGluZyB3aXRoIFB5dGhvbi4KKyIiIgorCisKKyMgZWxzZSB3ZSBh
cmUgaW1wb3J0ZWQKKworZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgKAorICAgIG1haW4sIFVz
YWdlRXJyb3IsIGNtZGxpbmUsCisgICAgaG9va3NwZWMsIGhvb2tpbXBsCispCitmcm9tIF9weXRl
c3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUsIHlpZWxkX2ZpeHR1cmUKK2Zyb20gX3B5dGVzdC5h
c3NlcnRpb24gaW1wb3J0IHJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlCitmcm9tIF9weXRlc3QuZnJl
ZXplX3N1cHBvcnQgaW1wb3J0IGZyZWV6ZV9pbmNsdWRlcworZnJvbSBfcHl0ZXN0IGltcG9ydCBf
X3ZlcnNpb25fXworZnJvbSBfcHl0ZXN0LmRlYnVnZ2luZyBpbXBvcnQgcHl0ZXN0UERCIGFzIF9f
cHl0ZXN0UERCCitmcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgd2FybnMsIGRlcHJlY2F0ZWRf
Y2FsbAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCBpbXBvcnRvcnNr
aXAsIGV4aXQsIHhmYWlsCitmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTUFSS19HRU4gYXMgbWFy
aywgcGFyYW0KK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBJdGVtLCBDb2xsZWN0b3IsIEZpbGUs
IFNlc3Npb24KK2Zyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgZmlsbGZpeHR1cmVzIGFzIF9m
aWxsZnVuY2FyZ3MKK2Zyb20gX3B5dGVzdC5weXRob24gaW1wb3J0ICgKKyAgICBNb2R1bGUsIENs
YXNzLCBJbnN0YW5jZSwgRnVuY3Rpb24sIEdlbmVyYXRvciwKKykKKworZnJvbSBfcHl0ZXN0LnB5
dGhvbl9hcGkgaW1wb3J0IGFwcHJveCwgcmFpc2VzCisKK3NldF90cmFjZSA9IF9fcHl0ZXN0UERC
LnNldF90cmFjZQorCitfX2FsbF9fID0gWworICAgICdtYWluJywKKyAgICAnVXNhZ2VFcnJvcics
CisgICAgJ2NtZGxpbmUnLAorICAgICdob29rc3BlYycsCisgICAgJ2hvb2tpbXBsJywKKyAgICAn
X192ZXJzaW9uX18nLAorICAgICdyZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZScsCisgICAgJ2ZyZWV6
ZV9pbmNsdWRlcycsCisgICAgJ3NldF90cmFjZScsCisgICAgJ3dhcm5zJywKKyAgICAnZGVwcmVj
YXRlZF9jYWxsJywKKyAgICAnZml4dHVyZScsCisgICAgJ3lpZWxkX2ZpeHR1cmUnLAorICAgICdm
YWlsJywKKyAgICAnc2tpcCcsCisgICAgJ3hmYWlsJywKKyAgICAnaW1wb3J0b3Jza2lwJywKKyAg
ICAnZXhpdCcsCisgICAgJ21hcmsnLAorICAgICdwYXJhbScsCisgICAgJ2FwcHJveCcsCisgICAg
J19maWxsZnVuY2FyZ3MnLAorCisgICAgJ0l0ZW0nLAorICAgICdGaWxlJywKKyAgICAnQ29sbGVj
dG9yJywKKyAgICAnU2Vzc2lvbicsCisgICAgJ01vZHVsZScsCisgICAgJ0NsYXNzJywKKyAgICAn
SW5zdGFuY2UnLAorICAgICdGdW5jdGlvbicsCisgICAgJ0dlbmVyYXRvcicsCisgICAgJ3JhaXNl
cycsCisKKworXQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICMgaWYgcnVuIGFz
IGEgc2NyaXB0IG9yIGJ5ICdweXRob24gLW0gcHl0ZXN0JworICAgICMgd2UgdHJpZ2dlciB0aGUg
YmVsb3cgImVsc2UiIGNvbmRpdGlvbiBieSB0aGUgZm9sbG93aW5nIGltcG9ydAorICAgIGltcG9y
dCBweXRlc3QKKyAgICByYWlzZSBTeXN0ZW1FeGl0KHB5dGVzdC5tYWluKCkpCitlbHNlOgorCisg
ICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZQor
ICAgIF9zZXR1cF9jb2xsZWN0X2Zha2Vtb2R1bGUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9jYWxsLXRveC5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NmZiMjVjMWRmMWQxMDFhMTk0OGQ5Y2JjOTZlOTY5YjUyNGNiYmE3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9jYWxsLXRveC5iYXQKQEAgLTAsMCAr
MSw4IEBACitSRU0gc2tpcCAiY292ZXJhbGxzIiBydW4gaW4gUFJzIG9yIGZvcmtzCitpZiAiJVRP
WEVOViUiID09ICJjb3ZlcmFsbHMiICgKKyAgICBpZiBub3QgZGVmaW5lZCBDT1ZFUkFMTFNfUkVQ
T19UT0tFTiAoCisgICAgICAgIGVjaG8gc2tpcHBpbmcgY292ZXJhbGxzIHJ1biBiZWNhdXNlIENP
VkVSQUxMU19SRVBPX1RPS0VOIGlzIG5vdCBkZWZpbmVkCisgICAgICAgIGV4aXQgL2IgMAorICAg
ICkKKykKK0M6XFB5dGhvbjM2XHB5dGhvbiAtbSB0b3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvY2hlY2stcnN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9jaGVjay1yc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTdmNzE3NTAxYWY0N2VlNGRhYTgxMzFlODZjY2IzMzMxZmFkMTMzNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvY2hlY2stcnN0LnB5CkBAIC0wLDAg
KzEsMTEgQEAKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IGdsb2IKK2ltcG9ydCBzeXMKKworc3lzLmV4aXQoc3VicHJv
Y2Vzcy5jYWxsKFsKKyAgICAncnN0LWxpbnQnLCAnLS1lbmNvZGluZycsICd1dGYtOCcsCisgICAg
J0NIQU5HRUxPRy5yc3QnLCAnSE9XVE9SRUxFQVNFLnJzdCcsICdSRUFETUUucnN0JywKK10gKyBn
bG9iLmdsb2IoJ2NoYW5nZWxvZy9bMC05XSouKicpKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvaW5zdGFsbC1weXB5LmJhdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvaW5zdGFsbC1w
eXB5LmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MDEyZWE0NmFjYTQ1ZmYzMjA3ZjNjZWY4OWJhNGNiMmQ2ZGMx
N2YyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9pbnN0YWxsLXB5cHku
YmF0CkBAIC0wLDAgKzEsNiBAQAorUkVNIGluc3RhbGwgcHlweSB1c2luZyBjaG9jbworUkVNIHJl
ZGlyZWN0IHRvIGEgZmlsZSBiZWNhdXNlIGNob2NvIGluc3RhbGwgcHl0aG9uLnB5cHkgaXMgdG9v
IG5vaXN5LiBJZiB0aGUgY29tbWFuZCBmYWlscywgd3JpdGUgb3V0cHV0IHRvIGNvbnNvbGUKK2No
b2NvIGluc3RhbGwgcHl0aG9uLnB5cHkgPiBweXB5LWluc3QubG9nIDI+JjEgfHwgKHR5cGUgcHlw
eS1pbnN0LmxvZyAmIGV4aXQgL2IgMSkKK3NldCBQQVRIPUM6XHRvb2xzXHB5cHlccHlweTslUEFU
SCUgIyBzbyB0b3ggY2FuIGZpbmQgcHlweQorZWNobyBQeVB5IGluc3RhbGxlZAorcHlweSAtLXZl
cnNpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlNDFkOGExOGQw
NmZjMDhjZmM5YjU3ZDRkNTcyZjczNDU3YzY2OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NjcmlwdHMvY2FsbC10b3guYmF0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9jaGVj
ay1yc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MTY1MzllMmVjNmZiOGQ3OWUwODA0OWU1NGI1OTY1MTAwMjhhYWQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsMjAgQEAKK1tidWlsZF9z
cGhpbnhdCitzb3VyY2UtZGlyID0gZG9jL2VuLworYnVpbGQtZGlyID0gZG9jL2J1aWxkCithbGxf
ZmlsZXMgPSAxCisKK1t1cGxvYWRfc3BoaW54XQordXBsb2FkLWRpciA9IGRvYy9lbi9idWlsZC9o
dG1sCisKK1tiZGlzdF93aGVlbF0KK3VuaXZlcnNhbCA9IDEKKworW2NoZWNrLW1hbmlmZXN0XQor
aWdub3JlID0KKyAgX3B5dGVzdC9fdmVyc2lvbi5weQorCitbbWV0YWRhdGFdCitsaWNlbnNlX2Zp
bGUgPSBMSUNFTlNFCisKK1tkZXZwaTp1cGxvYWRdCitmb3JtYXRzID0gc2Rpc3QudGd6LGJkaXN0
X3doZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Nl
dHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNlYjM4ZWZlNjU1MWY5MTM0M2FlOTYzOTM1YzQxNTI0ZTA1Yzk3
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5weQpAQCAtMCwwICsxLDEx
NCBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc2V0dXB0b29scworaW1wb3J0IHBr
Z19yZXNvdXJjZXMKK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIENvbW1hbmQKKworY2xh
c3NpZmllcnMgPSBbCisgICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA2IC0gTWF0dXJlJywKKyAg
ICAnSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCisgICAgJ0xpY2Vuc2UgOjogT1NJ
IEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlJywKKyAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJ
WCcsCisgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MnLAorICAg
ICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgnLAorICAgICdUb3BpYyA6OiBT
b2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nJywKKyAgICAnVG9waWMgOjogU29mdHdhcmUg
RGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzJywKKyAgICAnVG9waWMgOjogVXRpbGl0aWVzJywKK10g
KyBbCisgICAgKCdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogJXMnICUgeCkKKyAg
ICBmb3IgeCBpbiAnMiAyLjcgMyAzLjQgMy41IDMuNicuc3BsaXQoKQorXQorCit3aXRoIG9wZW4o
J1JFQURNRS5yc3QnKSBhcyBmZDoKKyAgICBsb25nX2Rlc2NyaXB0aW9uID0gZmQucmVhZCgpCisK
KworZGVmIGhhc19lbnZpcm9ubWVudF9tYXJrZXJfc3VwcG9ydCgpOgorICAgICIiIgorICAgIFRl
c3RzIHRoYXQgc2V0dXB0b29scyBoYXMgc3VwcG9ydCBmb3IgUEVQLTQyNiBlbnZpcm9ubWVudCBt
YXJrZXIgc3VwcG9ydC4KKworICAgIFRoZSBmaXJzdCBrbm93biByZWxlYXNlIHRvIHN1cHBvcnQg
aXQgaXMgMC43IChhbmQgdGhlIGVhcmxpZXN0IG9uIFB5UEkgc2VlbXMgdG8gYmUgMC43LjIKKyAg
ICBzbyB3ZSdyZSB1c2luZyB0aGF0KSwgc2VlOiBodHRwOi8vcHl0aG9uaG9zdGVkLm9yZy9zZXR1
cHRvb2xzL2hpc3RvcnkuaHRtbCNpZDE0MgorCisgICAgUmVmZXJlbmNlczoKKworICAgICogaHR0
cHM6Ly93aGVlbC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaW5kZXguaHRtbCNkZWZpbmluZy1j
b25kaXRpb25hbC1kZXBlbmRlbmNpZXMKKyAgICAqIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2
L3BlcHMvcGVwLTA0MjYvI2Vudmlyb25tZW50LW1hcmtlcnMKKyAgICAiIiIKKyAgICB0cnk6Cisg
ICAgICAgIHJldHVybiBwa2dfcmVzb3VyY2VzLnBhcnNlX3ZlcnNpb24oc2V0dXB0b29scy5fX3Zl
cnNpb25fXykgPj0gcGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKCcwLjcuMicpCisgICAgZXhj
ZXB0IEV4Y2VwdGlvbiBhcyBleGM6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkNvdWxkIG5v
dCB0ZXN0IHNldHVwdG9vbCdzIHZlcnNpb246ICVzXG4iICUgZXhjKQorICAgICAgICByZXR1cm4g
RmFsc2UKKworCitkZWYgbWFpbigpOgorICAgIGV4dHJhc19yZXF1aXJlID0ge30KKyAgICBpbnN0
YWxsX3JlcXVpcmVzID0gWworICAgICAgICAncHk+PTEuNS4wJywKKyAgICAgICAgJ3NpeD49MS4x
MC4wJywKKyAgICAgICAgJ3NldHVwdG9vbHMnLAorICAgICAgICAnYXR0cnM+PTE3LjIuMCcsCisg
ICAgXQorICAgICMgaWYgX1BZVEVTVF9TRVRVUF9TS0lQX1BMVUdHWV9ERVAgaXMgc2V0LCBza2lw
IGluc3RhbGxpbmcgcGx1Z2d5OworICAgICMgdXNlZCBieSB0b3guaW5pIHRvIHRlc3Qgd2l0aCBw
bHVnZ3kgbWFzdGVyCisgICAgaWYgJ19QWVRFU1RfU0VUVVBfU0tJUF9QTFVHR1lfREVQJyBub3Qg
aW4gb3MuZW52aXJvbjoKKyAgICAgICAgaW5zdGFsbF9yZXF1aXJlcy5hcHBlbmQoJ3BsdWdneT49
MC41LDwwLjcnKQorICAgIGlmIGhhc19lbnZpcm9ubWVudF9tYXJrZXJfc3VwcG9ydCgpOgorICAg
ICAgICBleHRyYXNfcmVxdWlyZVsnOnB5dGhvbl92ZXJzaW9uPCIzLjAiJ10gPSBbJ2Z1bmNzaWdz
J10KKyAgICAgICAgZXh0cmFzX3JlcXVpcmVbJzpzeXNfcGxhdGZvcm09PSJ3aW4zMiInXSA9IFsn
Y29sb3JhbWEnXQorICAgIGVsc2U6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzIn
OgorICAgICAgICAgICAgaW5zdGFsbF9yZXF1aXJlcy5hcHBlbmQoJ2NvbG9yYW1hJykKKyAgICAg
ICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAgICAgICAgIGluc3RhbGxfcmVx
dWlyZXMuYXBwZW5kKCdmdW5jc2lncycpCisKKyAgICBzZXR1cCgKKyAgICAgICAgbmFtZT0ncHl0
ZXN0JywKKyAgICAgICAgZGVzY3JpcHRpb249J3B5dGVzdDogc2ltcGxlIHBvd2VyZnVsIHRlc3Rp
bmcgd2l0aCBQeXRob24nLAorICAgICAgICBsb25nX2Rlc2NyaXB0aW9uPWxvbmdfZGVzY3JpcHRp
b24sCisgICAgICAgIHVzZV9zY21fdmVyc2lvbj17CisgICAgICAgICAgICAnd3JpdGVfdG8nOiAn
X3B5dGVzdC9fdmVyc2lvbi5weScsCisgICAgICAgIH0sCisgICAgICAgIHVybD0naHR0cDovL3B5
dGVzdC5vcmcnLAorICAgICAgICBsaWNlbnNlPSdNSVQgbGljZW5zZScsCisgICAgICAgIHBsYXRm
b3Jtcz1bJ3VuaXgnLCAnbGludXgnLCAnb3N4JywgJ2N5Z3dpbicsICd3aW4zMiddLAorICAgICAg
ICBhdXRob3I9KAorICAgICAgICAgICAgJ0hvbGdlciBLcmVrZWwsIEJydW5vIE9saXZlaXJhLCBS
b25ueSBQZmFubnNjaG1pZHQsICcKKyAgICAgICAgICAgICdGbG9yaXMgQnJ1eW5vb2doZSwgQnJp
YW5uYSBMYXVnaGVyLCBGbG9yaWFuIEJydWhpbiBhbmQgb3RoZXJzJyksCisgICAgICAgIGVudHJ5
X3BvaW50cz17J2NvbnNvbGVfc2NyaXB0cyc6IFsKKyAgICAgICAgICAgICdweXRlc3Q9cHl0ZXN0
Om1haW4nLCAncHkudGVzdD1weXRlc3Q6bWFpbiddfSwKKyAgICAgICAgY2xhc3NpZmllcnM9Y2xh
c3NpZmllcnMsCisgICAgICAgIGtleXdvcmRzPSJ0ZXN0IHVuaXR0ZXN0IiwKKyAgICAgICAgY21k
Y2xhc3M9eyd0ZXN0JzogUHlUZXN0fSwKKyAgICAgICAgIyB0aGUgZm9sbG93aW5nIHNob3VsZCBi
ZSBlbmFibGVkIGZvciByZWxlYXNlCisgICAgICAgIHNldHVwX3JlcXVpcmVzPVsnc2V0dXB0b29s
cy1zY20nXSwKKyAgICAgICAgcHl0aG9uX3JlcXVpcmVzPSc+PTIuNywgIT0zLjAuKiwgIT0zLjEu
KiwgIT0zLjIuKiwgIT0zLjMuKicsCisgICAgICAgIGluc3RhbGxfcmVxdWlyZXM9aW5zdGFsbF9y
ZXF1aXJlcywKKyAgICAgICAgZXh0cmFzX3JlcXVpcmU9ZXh0cmFzX3JlcXVpcmUsCisgICAgICAg
IHBhY2thZ2VzPVsnX3B5dGVzdCcsICdfcHl0ZXN0LmFzc2VydGlvbicsICdfcHl0ZXN0Ll9jb2Rl
J10sCisgICAgICAgIHB5X21vZHVsZXM9WydweXRlc3QnXSwKKyAgICAgICAgemlwX3NhZmU9RmFs
c2UsCisgICAgKQorCisKK2NsYXNzIFB5VGVzdChDb21tYW5kKToKKyAgICB1c2VyX29wdGlvbnMg
PSBbXQorCisgICAgZGVmIGluaXRpYWxpemVfb3B0aW9ucyhzZWxmKToKKyAgICAgICAgcGFzcwor
CisgICAgZGVmIGZpbmFsaXplX29wdGlvbnMoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRl
ZiBydW4oc2VsZik6CisgICAgICAgIGltcG9ydCBzdWJwcm9jZXNzCisgICAgICAgIFBQQVRIID0g
W3ggZm9yIHggaW4gb3MuZW52aXJvbi5nZXQoJ1BZVEhPTlBBVEgnLCAnJykuc3BsaXQoJzonKSBp
ZiB4XQorICAgICAgICBQUEFUSC5pbnNlcnQoMCwgb3MuZ2V0Y3dkKCkpCisgICAgICAgIG9zLmVu
dmlyb25bJ1BZVEhPTlBBVEgnXSA9ICc6Jy5qb2luKFBQQVRIKQorICAgICAgICBlcnJubyA9IHN1
YnByb2Nlc3MuY2FsbChbc3lzLmV4ZWN1dGFibGUsICdweXRlc3QucHknLCAnLS1pZ25vcmU9ZG9j
J10pCisgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoZXJybm8pCisKKworaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19f
aW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVh
MDM4ZjBhZjAzNmY2OWNlMmU5ZGE1NDNmNDJiYmM2N2JlYjI5NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTIgQEAKKyIiIgorSW52
b2tlIHRhc2tzIHRvIGhlbHAgd2l0aCBweXRlc3QgZGV2ZWxvcG1lbnQgYW5kIHJlbGVhc2UgcHJv
Y2Vzcy4KKyIiIgorCitpbXBvcnQgaW52b2tlCisKK2Zyb20gLiBpbXBvcnQgZ2VuZXJhdGUKKwor
CitucyA9IGludm9rZS5Db2xsZWN0aW9uKAorICAgIGdlbmVyYXRlLAorKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9nZW5lcmF0
ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYThlZTY1NTdkZmQ3YjY4MDY1ZTcxMzE4YTAwZDE2YTE0NjA5OGQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUucHkKQEAgLTAs
MCArMSwxNjIgQEAKK2ltcG9ydCBvcworZnJvbSBwYXRobGliIGltcG9ydCBQYXRoCitmcm9tIHN1
YnByb2Nlc3MgaW1wb3J0IGNoZWNrX291dHB1dCwgY2hlY2tfY2FsbAorCitpbXBvcnQgaW52b2tl
CisKKworQGludm9rZS50YXNrKGhlbHA9eworICAgICd2ZXJzaW9uJzogJ3ZlcnNpb24gYmVpbmcg
cmVsZWFzZWQnLAorfSkKK2RlZiBhbm5vdW5jZShjdHgsIHZlcnNpb24pOgorICAgICIiIkdlbmVy
YXRlcyBhIG5ldyByZWxlYXNlIGFubm91bmNlbWVudCBlbnRyeSBpbiB0aGUgZG9jcy4iIiIKKyAg
ICAjIEdldCBvdXIgbGlzdCBvZiBhdXRob3JzCisgICAgc3Rkb3V0ID0gY2hlY2tfb3V0cHV0KFsi
Z2l0IiwgImRlc2NyaWJlIiwgIi0tYWJicmV2PTAiLCAnLS10YWdzJ10pCisgICAgc3Rkb3V0ID0g
c3Rkb3V0LmRlY29kZSgndXRmLTgnKQorICAgIGxhc3RfdmVyc2lvbiA9IHN0ZG91dC5zdHJpcCgp
CisKKyAgICBzdGRvdXQgPSBjaGVja19vdXRwdXQoWyJnaXQiLCAibG9nIiwgInt9Li5IRUFEIi5m
b3JtYXQobGFzdF92ZXJzaW9uKSwgIi0tZm9ybWF0PSVhTiJdKQorICAgIHN0ZG91dCA9IHN0ZG91
dC5kZWNvZGUoJ3V0Zi04JykKKworICAgIGNvbnRyaWJ1dG9ycyA9IHNldChzdGRvdXQuc3BsaXRs
aW5lcygpKQorCisgICAgdGVtcGxhdGVfbmFtZSA9ICdyZWxlYXNlLm1pbm9yLnJzdCcgaWYgdmVy
c2lvbi5lbmRzd2l0aCgnLjAnKSBlbHNlICdyZWxlYXNlLnBhdGNoLnJzdCcKKyAgICB0ZW1wbGF0
ZV90ZXh0ID0gUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKHRlbXBsYXRlX25hbWUpLnJl
YWRfdGV4dChlbmNvZGluZz0nVVRGLTgnKQorCisgICAgY29udHJpYnV0b3JzX3RleHQgPSAnXG4n
LmpvaW4oJyoge30nLmZvcm1hdChuYW1lKSBmb3IgbmFtZSBpbiBzb3J0ZWQoY29udHJpYnV0b3Jz
KSkgKyAnXG4nCisgICAgdGV4dCA9IHRlbXBsYXRlX3RleHQuZm9ybWF0KHZlcnNpb249dmVyc2lv
biwgY29udHJpYnV0b3JzPWNvbnRyaWJ1dG9yc190ZXh0KQorCisgICAgdGFyZ2V0ID0gUGF0aChf
X2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKCcuLi9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS17fS5y
c3QnLmZvcm1hdCh2ZXJzaW9uKSkKKyAgICB0YXJnZXQud3JpdGVfdGV4dCh0ZXh0LCBlbmNvZGlu
Zz0nVVRGLTgnKQorICAgIHByaW50KCJbZ2VuZXJhdGUuYW5ub3VuY2VdIEdlbmVyYXRlZCB7fSIu
Zm9ybWF0KHRhcmdldC5uYW1lKSkKKworICAgICMgVXBkYXRlIGluZGV4IHdpdGggdGhlIG5ldyBy
ZWxlYXNlIGVudHJ5CisgICAgaW5kZXhfcGF0aCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lu
cGF0aCgnLi4vZG9jL2VuL2Fubm91bmNlL2luZGV4LnJzdCcpCisgICAgbGluZXMgPSBpbmRleF9w
YXRoLnJlYWRfdGV4dChlbmNvZGluZz0nVVRGLTgnKS5zcGxpdGxpbmVzKCkKKyAgICBpbmRlbnQg
PSAnICAgJworICAgIGZvciBpbmRleCwgbGluZSBpbiBlbnVtZXJhdGUobGluZXMpOgorICAgICAg
ICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3t9cmVsZWFzZS0nLmZvcm1hdChpbmRlbnQpKToKKyAgICAg
ICAgICAgIG5ld19saW5lID0gaW5kZW50ICsgdGFyZ2V0LnN0ZW0KKyAgICAgICAgICAgIGlmIGxp
bmUgIT0gbmV3X2xpbmU6CisgICAgICAgICAgICAgICAgbGluZXMuaW5zZXJ0KGluZGV4LCBuZXdf
bGluZSkKKyAgICAgICAgICAgICAgICBpbmRleF9wYXRoLndyaXRlX3RleHQoJ1xuJy5qb2luKGxp
bmVzKSArICdcbicsIGVuY29kaW5nPSdVVEYtOCcpCisgICAgICAgICAgICAgICAgcHJpbnQoIltn
ZW5lcmF0ZS5hbm5vdW5jZV0gVXBkYXRlZCB7fSIuZm9ybWF0KGluZGV4X3BhdGgubmFtZSkpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50KCJbZ2VuZXJhdGUuYW5ub3Vu
Y2VdIFNraXAge30gKGFscmVhZHkgY29udGFpbnMgcmVsZWFzZSkiLmZvcm1hdChpbmRleF9wYXRo
Lm5hbWUpKQorICAgICAgICAgICAgYnJlYWsKKworICAgIGNoZWNrX2NhbGwoWydnaXQnLCAnYWRk
Jywgc3RyKHRhcmdldCldKQorCisKK0BpbnZva2UudGFzaygpCitkZWYgcmVnZW4oY3R4KToKKyAg
ICAiIiJDYWxsIHJlZ2VuZG9jIHRvb2wgdG8gdXBkYXRlIGV4YW1wbGVzIGFuZCBweXRlc3Qgb3V0
cHV0IGluIHRoZSBkb2NzLiIiIgorICAgIHByaW50KCJbZ2VuZXJhdGUucmVnZW5dIFVwZGF0aW5n
IGRvY3MiKQorICAgIGNoZWNrX2NhbGwoWyd0b3gnLCAnLWUnLCAncmVnZW4nXSkKKworCitAaW52
b2tlLnRhc2soKQorZGVmIG1ha2VfdGFnKGN0eCwgdmVyc2lvbik6CisgICAgIiIiQ3JlYXRlIGEg
bmV3IChsb2NhbCkgdGFnIGZvciB0aGUgcmVsZWFzZSwgb25seSBpZiB0aGUgcmVwb3NpdG9yeSBp
cyBjbGVhbi4iIiIKKyAgICBmcm9tIGdpdCBpbXBvcnQgUmVwbworCisgICAgcmVwbyA9IFJlcG8o
Jy4nKQorICAgIGlmIHJlcG8uaXNfZGlydHkoKToKKyAgICAgICAgcHJpbnQoJ0N1cnJlbnQgcmVw
b3NpdG9yeSBpcyBkaXJ0eS4gUGxlYXNlIGNvbW1pdCBhbnkgY2hhbmdlcyBhbmQgdHJ5IGFnYWlu
LicpCisgICAgICAgIHJhaXNlIGludm9rZS5FeGl0KGNvZGU9MikKKworICAgIHRhZ19uYW1lcyA9
IFt4Lm5hbWUgZm9yIHggaW4gcmVwby50YWdzXQorICAgIGlmIHZlcnNpb24gaW4gdGFnX25hbWVz
OgorICAgICAgICBwcmludCgiW2dlbmVyYXRlLm1ha2VfdGFnXSBEZWxldGUgZXhpc3RpbmcgdGFn
IHt9Ii5mb3JtYXQodmVyc2lvbikpCisgICAgICAgIHJlcG8uZGVsZXRlX3RhZyh2ZXJzaW9uKQor
CisgICAgcHJpbnQoIltnZW5lcmF0ZS5tYWtlX3RhZ10gQ3JlYXRlIHRhZyB7fSIuZm9ybWF0KHZl
cnNpb24pKQorICAgIHJlcG8uY3JlYXRlX3RhZyh2ZXJzaW9uKQorCisKK0BpbnZva2UudGFzaygp
CitkZWYgZGV2cGlfdXBsb2FkKGN0eCwgdmVyc2lvbiwgdXNlciwgcGFzc3dvcmQ9Tm9uZSk6Cisg
ICAgIiIiQ3JlYXRlcyBhbmQgdXBsb2FkcyBhIHBhY2thZ2UgdG8gZGV2cGkgZm9yIHRlc3Rpbmcu
IiIiCisgICAgaWYgcGFzc3dvcmQ6CisgICAgICAgIHByaW50KCJbZ2VuZXJhdGUuZGV2cGlfdXBs
b2FkXSBkZXZwaSBsb2dpbiB7fSIuZm9ybWF0KHVzZXIpKQorICAgICAgICBjaGVja19jYWxsKFsn
ZGV2cGknLCAnbG9naW4nLCB1c2VyLCAnLS1wYXNzd29yZCcsIHBhc3N3b3JkXSkKKworICAgIGNo
ZWNrX2NhbGwoWydkZXZwaScsICd1c2UnLCAnaHR0cHM6Ly9kZXZwaS5uZXQve30vZGV2Jy5mb3Jt
YXQodXNlcildKQorICAgIAorICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgZW52WydT
RVRVUFRPT0xTX1NDTV9QUkVURU5EX1ZFUlNJT04nXSA9IHZlcnNpb24KKyAgICBjaGVja19jYWxs
KFsnZGV2cGknLCAndXBsb2FkJywgJy0tZm9ybWF0cycsICdzZGlzdCxiZGlzdF93aGVlbCddLCBl
bnY9ZW52KQorICAgIHByaW50KCJbZ2VuZXJhdGUuZGV2cGlfdXBsb2FkXSBwYWNrYWdlIHVwbG9h
ZGVkIikKKworCitAaW52b2tlLnRhc2soaGVscD17CisgICAgJ3ZlcnNpb24nOiAndmVyc2lvbiBi
ZWluZyByZWxlYXNlZCcsCisgICAgJ3VzZXInOiAnbmFtZSBvZiB0aGUgdXNlciBvbiBkZXZwaSB0
byBzdGFnZSB0aGUgZ2VuZXJhdGVkIHBhY2thZ2UnLAorICAgICdwYXNzd29yZCc6ICd1c2VyIHBh
c3N3b3JkIG9uIGRldnBpIHRvIHN0YWdlIHRoZSBnZW5lcmF0ZWQgcGFja2FnZSAnCisgICAgICAg
ICAgICAgICAgJyhpZiBub3QgZ2l2ZW4gYXNzdW1lZCBsb2dnZWQgaW4pJywKK30pCitkZWYgcHJl
X3JlbGVhc2UoY3R4LCB2ZXJzaW9uLCB1c2VyLCBwYXNzd29yZD1Ob25lKToKKyAgICAiIiJHZW5l
cmF0ZXMgbmV3IGRvY3MsIHJlbGVhc2UgYW5ub3VuY2VtZW50cyBhbmQgdXBsb2FkcyBhIG5ldyBy
ZWxlYXNlIHRvIGRldnBpIGZvciB0ZXN0aW5nLiIiIgorICAgIGFubm91bmNlKGN0eCwgdmVyc2lv
bikKKyAgICByZWdlbihjdHgpCisgICAgY2hhbmdlbG9nKGN0eCwgdmVyc2lvbiwgd3JpdGVfb3V0
PVRydWUpCisKKyAgICBtc2cgPSAnUHJlcGFyaW5nIHJlbGVhc2UgdmVyc2lvbiB7fScuZm9ybWF0
KHZlcnNpb24pCisgICAgY2hlY2tfY2FsbChbJ2dpdCcsICdjb21taXQnLCAnLWEnLCAnLW0nLCBt
c2ddKQorICAgIAorICAgIG1ha2VfdGFnKGN0eCwgdmVyc2lvbikKKworICAgIGRldnBpX3VwbG9h
ZChjdHgsIHZlcnNpb249dmVyc2lvbiwgdXNlcj11c2VyLCBwYXNzd29yZD1wYXNzd29yZCkKKyAg
ICAKKyAgICBwcmludCgpCisgICAgcHJpbnQoJ1tnZW5lcmF0ZS5wcmVfcmVsZWFzZV0gUGxlYXNl
IHB1c2ggeW91ciBicmFuY2ggYW5kIG9wZW4gYSBQUi4nKQorCisKK0BpbnZva2UudGFzayhoZWxw
PXsKKyAgICAndmVyc2lvbic6ICd2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkJywKKyAgICAndXNlcic6
ICduYW1lIG9mIHRoZSB1c2VyIG9uIGRldnBpIHRvIHN0YWdlIHRoZSBnZW5lcmF0ZWQgcGFja2Fn
ZScsCisgICAgJ3B5cGlfbmFtZSc6ICduYW1lIG9mIHRoZSBweXBpIGNvbmZpZ3VyYXRpb24gc2Vj
dGlvbiBpbiB5b3VyIH4vLnB5cGlyYycsCit9KQorZGVmIHB1Ymxpc2hfcmVsZWFzZShjdHgsIHZl
cnNpb24sIHVzZXIsIHB5cGlfbmFtZSk6CisgICAgIiIiUHVibGlzaGVzIGEgcGFja2FnZSBwcmV2
aW91c2x5IGNyZWF0ZWQgYnkgdGhlICdwcmVfcmVsZWFzZScgY29tbWFuZC4iIiIKKyAgICBmcm9t
IGdpdCBpbXBvcnQgUmVwbworICAgIHJlcG8gPSBSZXBvKCcuJykKKyAgICB0YWdfbmFtZXMgPSBb
eC5uYW1lIGZvciB4IGluIHJlcG8udGFnc10KKyAgICBpZiB2ZXJzaW9uIG5vdCBpbiB0YWdfbmFt
ZXM6CisgICAgICAgIHByaW50KCdDb3VsZCBub3QgZmluZCB0YWcgZm9yIHZlcnNpb24ge30sIGV4
aXRpbmcuLi4nLmZvcm1hdCh2ZXJzaW9uKSkKKyAgICAgICAgcmFpc2UgaW52b2tlLkV4aXQoY29k
ZT0yKQorCisgICAgY2hlY2tfY2FsbChbJ2RldnBpJywgJ3VzZScsICdodHRwczovL2RldnBpLm5l
dC97fS9kZXYnLmZvcm1hdCh1c2VyKV0pCisgICAgY2hlY2tfY2FsbChbJ2RldnBpJywgJ3B1c2gn
LCAncHl0ZXN0PT17fScuZm9ybWF0KHZlcnNpb24pLCAncHlwaTp7fScuZm9ybWF0KHB5cGlfbmFt
ZSldKQorICAgIGNoZWNrX2NhbGwoWydnaXQnLCAncHVzaCcsICdnaXRAZ2l0aHViLmNvbTpweXRl
c3QtZGV2L3B5dGVzdC5naXQnLCB2ZXJzaW9uXSkKKworICAgIGVtYWlscyA9IFsKKyAgICAgICAg
J3B5dGVzdC1kZXZAcHl0aG9uLm9yZycsCisgICAgICAgICdweXRob24tYW5ub3VuY2UtbGlzdEBw
eXRob24ub3JnJworICAgIF0KKyAgICBpZiB2ZXJzaW9uLmVuZHN3aXRoKCcuMCcpOgorICAgICAg
ICBlbWFpbHMuYXBwZW5kKCd0ZXN0aW5nLWluLXB5dGhvbkBsaXN0cy5pZHlsbC5vcmcnKQorICAg
IHByaW50KCdWZXJzaW9uIHt9IGhhcyBiZWVuIHB1Ymxpc2hlZCB0byBQeVBJIScuZm9ybWF0KHZl
cnNpb24pKQorICAgIHByaW50KCkKKyAgICBwcmludCgnUGxlYXNlIHNlbmQgYW4gZW1haWwgYW5u
b3VuY2VtZW50IHdpdGggdGhlIGNvbnRlbnRzIGZyb206JykKKyAgICBwcmludCgpCisgICAgcHJp
bnQoJyAgZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ute30ucnN0Jy5mb3JtYXQodmVyc2lvbikpCisg
ICAgcHJpbnQoKQorICAgIHByaW50KCdUbyB0aGUgZm9sbG93aW5nIG1haWwgbGlzdHM6JykKKyAg
ICBwcmludCgpCisgICAgcHJpbnQoJyAnLCAnLCcuam9pbihlbWFpbHMpKQorICAgIHByaW50KCkK
KyAgICBwcmludCgnQW5kIGFubm91bmNlIGl0IG9uIHR3aXR0ZXIgYWRkaW5nIHRoZSAjcHl0ZXN0
IGhhc2ggdGFnLicpCisKKworQGludm9rZS50YXNrKGhlbHA9eworICAgICd2ZXJzaW9uJzogJ3Zl
cnNpb24gYmVpbmcgcmVsZWFzZWQnLAorICAgICd3cml0ZV9vdXQnOiAnd3JpdGUgY2hhbmdlcyB0
byB0aGUgYWN0aWFsIGNoYW5nZWxvZycKK30pCitkZWYgY2hhbmdlbG9nKGN0eCwgdmVyc2lvbiwg
d3JpdGVfb3V0PUZhbHNlKToKKyAgICBpZiB3cml0ZV9vdXQ6CisgICAgICAgIGFkZG9wdHMgPSBb
XQorICAgIGVsc2U6CisgICAgICAgIGFkZG9wdHMgPSBbJy0tZHJhZnQnXQorICAgIGNoZWNrX2Nh
bGwoWyd0b3duY3JpZXInLCAnLS12ZXJzaW9uJywgdmVyc2lvbl0gKyBhZGRvcHRzKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMGI3ZDcxOGExY2UzODMwZmE4
NjhjZTIxN2VmNTE1N2Q5MTAyMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNr
cy9yZWxlYXNlLm1pbm9yLnJzdApAQCAtMCwwICsxLDI3IEBACitweXRlc3Qte3ZlcnNpb259Cis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5dGVzdCB0ZWFt
IGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSB7dmVyc2lvbn0gcmVsZWFzZSEKKworcHl0ZXN0IGlz
IGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxNjAwIHRlc3Rz
CithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMg
YW5kIHBsYXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3Mg
Zml4ZXMgYW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2Ug
YSBsb29rIGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVh
c2UgdmlzaXQ6CisKKyAgICBodHRwOi8vZG9jcy5weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3Ug
Y2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAor
CitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRo
ZW06CisKK3tjb250cmlidXRvcnN9CisKK0hhcHB5IHRlc3RpbmcsCitUaGUgUHl0ZXN0IERldmVs
b3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UucGF0Y2gu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY3
NjRiOTEzMDc5NGRjMGJiOWM1NzE0MDgzYzM5NGVlYWYyYjAyOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UucGF0Y2gucnN0CkBAIC0wLDAgKzEsMTcgQEAKK3B5
dGVzdC17dmVyc2lvbn0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitweXRlc3Qge3ZlcnNpb259IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhp
cyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1
cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwg
Y2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlz
IHJlbGVhc2UsIGFtb25nIHRoZW06CisKK3tjb250cmlidXRvcnN9CisKK0hhcHB5IHRlc3Rpbmcs
CitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rh
c2tzL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYzOTJkZTBjYzBhNWFhNjdhNDJkOTVkYjY3M2MxNDM1ZTEwOWFkYjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0CkBAIC0w
LDAgKzEsNSBAQAoraW52b2tlCit0b3gKK2dpdHB5dGhvbgordG93bmNyaWVyCit3aGVlbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
YXNrcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzQ5OTZhNmQyMTVkY2ViNmRiNTEyMWYz
ZjhmMjAyMTU3YmY0YjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3Mv
X19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9nZW5lcmF0ZS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRj
aC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFuY2VfdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvYWNjZXB0YW5jZV90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODM4NTQ1YjA3OTNmZTA4N2YxYWI5
MmQ2NzdkNDVkNTRmOTExMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2FjY2VwdGFuY2VfdGVzdC5weQpAQCAtMCwwICsxLDg1MCBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitpbXBvcnQgX3B5dGVzdC5f
Y29kZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQg
RVhJVF9OT1RFU1RTQ09MTEVDVEVELCBFWElUX1VTQUdFRVJST1IKKworCitjbGFzcyBUZXN0R2Vu
ZXJhbFVzYWdlKG9iamVjdCk6CisgICAgZGVmIHRlc3RfY29uZmlnX2Vycm9yKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBw
eXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgICAgIHJhaXNlIHB5dGVzdC5Vc2FnZUVycm9yKCJoZWxsbyIpCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGRpci50bXBkaXIp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqRVJST1I6IGhlbGxvJworICAgICAgICBdKQor
CisgICAgZGVmIHRlc3Rfcm9vdF9jb25mdGVzdF9zeW50YXhfZXJyb3Ioc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb25mdGVzdD0icmFpc2UgU3ludGF4RXJyb3Jc
biIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0
LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsiKnJhaXNlIFN5bnRheEVycm9yKiJdKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisKKyAgICBkZWYgdGVzdF9lYXJseV9ob29rX2Vycm9yX2lz
c3VlMzhfMShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydCgpOgorICAgICAgICAgICAgICAg
IDAgLyAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
dGVzdGRpci50bXBkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAg
IyB0cmFjZXN0eWxlIGlzIG5hdGl2ZSBieSBkZWZhdWx0IGZvciBob29rIGZhaWx1cmVzCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKklOVEVSTkFM
RVJST1IqRmlsZSpjb25mdGVzdC5weSpsaW5lIDIqJywKKyAgICAgICAgICAgICcqMCAvIDAqJywK
KyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGRpci50
bXBkaXIsICItLWZ1bGx0cmFjZSIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAg
ICAgICAgIyB0cmFjZXN0eWxlIGlzIG5hdGl2ZSBieSBkZWZhdWx0IGZvciBob29rIGZhaWx1cmVz
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKklO
VEVSTkFMRVJST1IqZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoKToqJywKKyAgICAgICAgICAgICcq
SU5URVJOQUxFUlJPUiowIC8gMConLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZWFybHlf
aG9va19jb25maWd1cmVfZXJyb3JfaXNzdWUzOChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZSgp
OgorICAgICAgICAgICAgICAgIDAgLyAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QodGVzdGRpci50bXBkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ICE9IDAKKyAgICAgICAgIyBoZXJlIHdlIGdldCBpdCBvbiBzdGRlcnIKKyAgICAgICAgcmVz
dWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqSU5URVJOQUxFUlJPUipG
aWxlKmNvbmZ0ZXN0LnB5KmxpbmUgMionLAorICAgICAgICAgICAgJyowIC8gMConLAorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfZmlsZV9ub3RfZm91bmQoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJhc2QiKQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIkVSUk9S
OiBmaWxlIG5vdCBmb3VuZCphc2QiXSkKKworICAgIGRlZiB0ZXN0X2ZpbGVfbm90X2ZvdW5kX3Vu
Y29uZmlndXJlX2lzc3VlMTQzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKCk6CisgICAgICAg
ICAgICAgICAgcHJpbnQoIi0tLWNvbmZpZ3VyZSIpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3Vu
Y29uZmlndXJlKCk6CisgICAgICAgICAgICAgICAgcHJpbnQoIi0tLXVuY29uZmlndXJlIikKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiLCAiYXNk
IikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gNCAgIyBFWElUX1VTQUdFRVJST1IKKyAg
ICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsiRVJST1I6IGZpbGUgbm90IGZvdW5k
KmFzZCJdKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIiotLS1jb25maWd1cmUiLAorICAgICAgICAgICAgIiotLS11bmNvbmZpZ3VyZSIsCisgICAg
ICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb25maWdfcHJlcGFyc2VfcGx1Z2luX29wdGlvbihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHB5dGVzdF94eXo9IiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAg
IHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgZGVzdD0ieHl6IiwgYWN0aW9uPSJzdG9yZSIpCisg
ICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rfb25lPSIiIgorICAg
ICAgICAgICAgZGVmIHRlc3Rfb3B0aW9uKHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IHB5dGVzdGNvbmZpZy5vcHRpb24ueHl6ID09ICIxMjMiCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1wIiwgInB5dGVzdF94eXoiLCAiLS14
eXo9MTIzIiwgc3lzcGF0aGluc2VydD1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAn
KjEgcGFzc2VkKicsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9hc3NlcnRpb25fbWFnaWMo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBkZWYgdGVzdF90aGlzKCk6CisgICAgICAgICAgICAgICAgeCA9IDAKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgeAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiPiAgICAgICBhc3NlcnQgeCIsCisgICAgICAgICAgICAiRSAgICAgICBhc3NlcnQg
MCIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKworICAgIGRl
ZiB0ZXN0X25lc3RlZF9pbXBvcnRfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IGltcG9ydF9mYWls
cworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3RoaXMoKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IGltcG9ydF9mYWlscy5hID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoaW1wb3J0X2ZhaWxzPSJpbXBvcnQgZG9lc19ub3Rfd29yayIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAjIFhYWCBvbiBqeXRob24gdGhpcyBmYWlsczogICI+
ICAgaW1wb3J0IGltcG9ydF9mYWlscyIsCisgICAgICAgICAgICAiSW1wb3J0RXJyb3Igd2hpbGUg
aW1wb3J0aW5nIHRlc3QgbW9kdWxlKiIsCisgICAgICAgICAgICAiKk5vIG1vZHVsZSBuYW1lZCAq
ZG9lc19ub3Rfd29yayoiLAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAyCisKKyAgICBkZWYgdGVzdF9ub3RfY29sbGVjdGFibGVfYXJndW1lbnRzKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIikKKyAgICAgICAgcDIgPSB0
ZXN0ZGlyLm1ha2VmaWxlKCIucHljIiwgIjEyMyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHAxLCBwMikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgcmVz
dWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqRVJST1I6IG5vdCBmb3Vu
ZDoqJXMiICUgKHAyLmJhc2VuYW1lLCkKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2lzc3Vl
NDg2X2JldHRlcl9yZXBvcnRpbmdfb25fY29uZnRlc3RfbG9hZF9mYWlsdXJlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCJpbXBvcnQgcXdlcnR5IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi0taGVscCIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIK
KyAgICAgICAgICAgICotLXZlcnNpb24qCisgICAgICAgICAgICAqd2FybmluZypjb25mdGVzdC5w
eSoKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpFUlJP
Uipjb3VsZCBub3QgbG9hZCpjb25mdGVzdC5weSoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRl
c3RfZWFybHlfc2tpcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5ta2RpcigieHl6
IikKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KCk6CisgICAg
ICAgICAgICAgICAgcHl0ZXN0LnNraXAoImVhcmx5IikKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09
IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIioxIHNraXAqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rf
aXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2RlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBNeUZpbGUocHl0ZXN0LkZpbGUpOgorICAgICAgICAgICAgICAgIGRlZiBj
b2xsZWN0KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gW015SXRlbSgiaGVsbG8i
LCBwYXJlbnQ9c2VsZildCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRo
LCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIHJldHVybiBNeUZpbGUocGF0aCwgcGFyZW50KQor
ICAgICAgICAgICAgY2xhc3MgTXlJdGVtKHB5dGVzdC5JdGVtKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRl
c3RfaGVsbG8oKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAs
ICItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKk15RmlsZSp0ZXN0X2lzc3VlODgqIiwKKyAgICAgICAgICAgICIqTW9k
dWxlKnRlc3RfaXNzdWU4OCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfaXNzdWU5M19p
bml0aWFsbm9kZV9pbXBvcnRpbmdfY2FwdHVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAg
ICAgIHByaW50ICgic2hvdWxkIG5vdCBiZSBzZWVuIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoInN0ZGVyNDJcXG4iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RT
Q09MTEVDVEVECisgICAgICAgIGFzc2VydCAic2hvdWxkIG5vdCBiZSBzZWVuIiBub3QgaW4gcmVz
dWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgInN0ZGVycjQyIiBub3QgaW4gcmVzdWx0
LnN0ZGVyci5zdHIoKQorCisgICAgZGVmIHRlc3RfY29uZnRlc3RfcHJpbnRpbmdfc2hvd3NfaWZf
ZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICAgICAgcHJpbnQgKCJzaG91bGQgYmUgc2VlbiIpCisgICAgICAgICAgICBhc3NlcnQg
MAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICBhc3NlcnQgInNob3VsZCBiZSBz
ZWVuIiBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5v
dCBoYXNhdHRyKHB5LnBhdGgubG9jYWwsICdta3N5bWxpbmt0bycpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJzeW1saW5rIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybSIp
CisgICAgZGVmIHRlc3RfY2hkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1w
ZGlyLmpvaW4oInB5IikubWtzeW1saW5rdG8ocHkuX3B5ZGlyKQorICAgICAgICBwID0gdGVzdGRp
ci50bXBkaXIuam9pbigibWFpbi5weSIpCisgICAgICAgIHAud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzLCBvcworICAgICAgICAgICAgc3lzLnBh
dGguaW5zZXJ0KDAsICcnKQorICAgICAgICAgICAgaW1wb3J0IHB5CisgICAgICAgICAgICBwcmlu
dCAocHkuX19maWxlX18pCisgICAgICAgICAgICBwcmludCAocHkuX19wYXRoX18pCisgICAgICAg
ICAgICBvcy5jaGRpcihvcy5wYXRoLmRpcm5hbWUob3MuZ2V0Y3dkKCkpKQorICAgICAgICAgICAg
cHJpbnQgKHB5LmxvZykKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRob24ocCkKKyAgICAgICAgYXNzZXJ0IG5vdCByZXN1bHQucmV0CisKKyAgICBkZWYgdGVz
dF9pc3N1ZTEwOV9zaWJsaW5nX2NvbmZ0ZXN0c19ub3RfbG9hZGVkKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBzdWIxID0gdGVzdGRpci50bXBkaXIubWtkaXIoInN1YjEiKQorICAgICAgICBzdWIy
ID0gdGVzdGRpci50bXBkaXIubWtkaXIoInN1YjIiKQorICAgICAgICBzdWIxLmpvaW4oImNvbmZ0
ZXN0LnB5Iikud3JpdGUoImFzc2VydCAwIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3Qoc3ViMikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09M
TEVDVEVECisgICAgICAgIHN1YjIuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgICAgIHAgPSBz
dWIyLmVuc3VyZSgidGVzdF9oZWxsby5weSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExF
Q1RFRAorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdWIxKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX1VTQUdFRVJST1IKKworICAgIGRlZiB0ZXN0X2RpcmVj
dG9yeV9za2lwcGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
aWdub3JlX2NvbGxlY3QoKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgiaW50ZW50aW9u
YWwiKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3Rf
aGVsbG8oKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgc2tpcHBlZCoi
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9pdGVtc19wZXJfY29sbGVjdG9y
X2J5aWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGMgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIE15SXRlbShw
eXRlc3QuSXRlbSk6CisgICAgICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIE15Q29sbGVjdG9yKHB5dGVzdC5G
aWxlKToKKyAgICAgICAgICAgICAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFtNeUl0ZW0obmFtZT0ieHl6IiwgcGFyZW50PXNlbGYpXQorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAgICAgICAgICAg
ICBpZiBwYXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoImNvbmZ0ZXN0Iik6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBNeUNvbGxlY3RvcihwYXRoLCBwYXJlbnQpCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoYy5iYXNlbmFtZSArICI6OiIgKyAieHl6
IikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioxIHBhc3MqIiwKKyAgICAgICAgXSkKKwor
ICAgIGRlZiB0ZXN0X3NraXBfb25fZ2VuZXJhdGVkX2Z1bmNhcmdfaWQoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Cisg
ICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbCh7J3gnOiAzfSwgaWQ9J2hlbGxvLTEyMycp
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgICAgICAg
ICAgICAgcHJpbnQgKGl0ZW0ua2V5d29yZHMpCisgICAgICAgICAgICAgICAgaWYgJ2hlbGxvLTEy
MycgaW4gaXRlbS5rZXl3b3JkczoKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhl
bGxvIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiZGVmIHRlc3RfZnVuYyh4KTogcGFzcyIiIikKKyAgICAg
ICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXQgPT0g
MAorICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBza2lwcGVkKiJdKQorCisg
ICAgZGVmIHRlc3RfZGlyZWN0X2FkZHJlc3Npbmdfc2VsZWN0cyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNh
bGwoeydpJzogMX0sIGlkPSIxIikKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsn
aSc6IDJ9LCBpZD0iMiIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGkpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dChwLmJhc2VuYW1lICsgIjo6IiArICJ0ZXN0X2Z1bmNbMV0iKQorICAgICAgICBhc3NlcnQgcmVz
LnJldCA9PSAwCisgICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoi
XSkKKworICAgIGRlZiB0ZXN0X2RpcmVjdF9hZGRyZXNzaW5nX25vdGZvdW5kKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLmJhc2VuYW1lICsgIjo6IiArICJ0ZXN0X25vdGZv
dW5kIikKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXQKKyAgICAgICAgcmVzLnN0ZGVyci5mbm1hdGNo
X2xpbmVzKFsiKkVSUk9SKm5vdCBmb3VuZCoiXSkKKworICAgIGRlZiB0ZXN0X2RvY3N0cmluZ19v
bl9ob29rc3BlYyhzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBob29rc3BlYwor
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gdmFycyhob29rc3BlYykuaXRlbXMoKToKKyAgICAg
ICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgorICAgICAgICAgICAgICAgIGFz
c2VydCB2YWx1ZS5fX2RvY19fLCAibm8gZG9jc3RyaW5nIGZvciAlcyIgJSBuYW1lCisKKyAgICBk
ZWYgdGVzdF9pbml0aWFsaXphdGlvbl9lcnJvcl9pc3N1ZTQ5KHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29u
ZmlndXJlKCk6CisgICAgICAgICAgICAgICAgeAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMyAg
IyBpbnRlcm5hbCBlcnJvcgorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIklOVEVSTkFMKnB5dGVzdF9jb25maWd1cmUqIiwKKyAgICAgICAgICAgICJJ
TlRFUk5BTCp4KiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCAnc2Vzc2lvbnN0YXJ0dGlt
ZScgbm90IGluIHJlc3VsdC5zdGRlcnIuc3RyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnbG9va2ZvcicsIFsndGVzdF9mdW4ucHk6OnRlc3RfYSddKQorICAgIGRlZiB0ZXN0X2lz
c3VlMTM0X3JlcG9ydF9lcnJvcl93aGVuX2NvbGxlY3RpbmdfbWVtYmVyKHNlbGYsIHRlc3RkaXIs
IGxvb2tmb3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9mdW49IiIiCisgICAg
ICAgICAgICBkZWYgdGVzdF9hKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChsb29rZm9yKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqU3ludGF4RXJyb3IqJ10pCisgICAg
ICAgIGlmICc6OicgaW4gbG9va2ZvcjoKKyAgICAgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAgICAgJypFUlJPUionLAorICAgICAgICAgICAgXSkKKyAg
ICAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDQgICMgdXNhZ2UgZXJyb3Igb25seSBpZiBp
dGVtIG5vdCBmb3VuZAorCisgICAgZGVmIHRlc3RfcmVwb3J0X2FsbF9mYWlsZWRfY29sbGVjdGlv
bnNfaW5pdGFyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0
ZXN0X2E9ImRlZiIsIHRlc3RfYj0iZGVmIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoInRlc3RfYS5weTo6YSIsICJ0ZXN0X2IucHk6OmIiKQorICAgICAgICByZXN1bHQuc3Rk
ZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipFUlJPUip0ZXN0X2EucHk6OmEqIiwK
KyAgICAgICAgICAgICIqRVJST1IqdGVzdF9iLnB5OjpiKiIsCisgICAgICAgIF0pCisKKyAgICBA
cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlY3dhcm4nKQorICAgIGRlZiB0ZXN0X25hbWVzcGFj
ZV9pbXBvcnRfZG9lc250X2NvbmZ1c2VfaW1wb3J0X2hvb2soc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiIgorICAgICAgICBSZWYgIzM4My4gUHl0aG9uIDMuMydzIG5hbWVzcGFjZSBwYWNrYWdl
IG1lc3NlZCB3aXRoIG91ciBpbXBvcnQgaG9va3MKKyAgICAgICAgSW1wb3J0aW5nIGEgbW9kdWxl
IHRoYXQgZGlkbid0IGV4aXN0LCBldmVuIGlmIHRoZSBJbXBvcnRFcnJvciB3YXMKKyAgICAgICAg
Z3JhY2VmdWxseSBoYW5kbGVkLCB3b3VsZCBtYWtlIG91ciB0ZXN0IGNyYXNoLgorCisgICAgICAg
IFVzZSByZWN3YXJuIGhlcmUgdG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcgaW4gUHl0aG9uIDIuNzoK
KyAgICAgICAgICAgIEltcG9ydFdhcm5pbmc6IE5vdCBpbXBvcnRpbmcgZGlyZWN0b3J5ICcuLi5c
bm90X2FfcGFja2FnZSc6IG1pc3NpbmcgX19pbml0X18ucHkKKyAgICAgICAgIiIiCisgICAgICAg
IHRlc3RkaXIubWtkaXIoJ25vdF9hX3BhY2thZ2UnKQorICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZyb20gbm90X2Ff
cGFja2FnZSBpbXBvcnQgZG9lc250X2V4aXN0CisgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgICAgICAgICAgICAgIyBXZSBoYW5kbGUgdGhlIGltcG9ydCBlcnJvciBncmFjZWZ1
bGx5IGhlcmUKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3do
YXRldmVyKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
cyA9IHRlc3RkaXIucnVucHl0ZXN0KHAuYmFzZW5hbWUpCisgICAgICAgIGFzc2VydCByZXMucmV0
ID09IDAKKworICAgIGRlZiB0ZXN0X3Vua25vd25fb3B0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1xd2xrZWoiKQorICAgICAgICByZXN1
bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqdW5yZWNvZ25pemVkKgor
ICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9nZXRzb3VyY2VsaW5lc19lcnJvcl9pc3N1ZTU1
MyhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0
dHIoImluc3BlY3QuZ2V0c291cmNlbGluZXMiLCBOb25lKQorICAgICAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHJhaXNlX2Vycm9yKG9iaik6CisgICAgICAg
ICAgICAgICAgcmFpc2UgSU9FcnJvcignc291cmNlIGNvZGUgbm90IGF2YWlsYWJsZScpCisKKyAg
ICAgICAgICAgIGltcG9ydCBpbnNwZWN0CisgICAgICAgICAgICBpbnNwZWN0LmdldHNvdXJjZWxp
bmVzID0gcmFpc2VfZXJyb3IKKworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGludmFsaWRfZml4
dHVyZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcyA9
IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKnNvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUqIiwKKyAgICAgICAgICAg
ICJFKmZpeHR1cmUgJ2ludmFsaWRfZml4dHVyZScgbm90IGZvdW5kIiwKKyAgICAgICAgXSkKKwor
ICAgIGRlZiB0ZXN0X3BsdWdpbnNfZ2l2ZW5fYXNfc3RyaW5ncyhzZWxmLCB0bXBkaXIsIG1vbmtl
eXBhdGNoKToKKyAgICAgICAgIiIidGVzdCB0aGF0IHN0ciB2YWx1ZXMgcGFzc2VkIHRvIG1haW4o
KSBhcyBgcGx1Z2luc2AgYXJnCisgICAgICAgIGFyZSBpbnRlcnByZXRlZCBhcyBtb2R1bGUgbmFt
ZXMgdG8gYmUgaW1wb3J0ZWQgYW5kIHJlZ2lzdGVyZWQuCisgICAgICAgICM4NTUuCisgICAgICAg
ICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGV4Y2luZm86
CisgICAgICAgICAgICBweXRlc3QubWFpbihbc3RyKHRtcGRpcildLCBwbHVnaW5zPVsnaW52YWxp
ZC5tb2R1bGUnXSkKKyAgICAgICAgYXNzZXJ0ICdpbnZhbGlkJyBpbiBzdHIoZXhjaW5mby52YWx1
ZSkKKworICAgICAgICBwID0gdG1wZGlyLmpvaW4oJ3Rlc3RfdGVzdF9wbHVnaW5zX2dpdmVuX2Fz
X3N0cmluZ3MucHknKQorICAgICAgICBwLndyaXRlKCdkZWYgdGVzdF9mb28oKTogcGFzcycpCisg
ICAgICAgIG1vZCA9IHB5LnN0ZC50eXBlcy5Nb2R1bGVUeXBlKCJteXBsdWdpbiIpCisgICAgICAg
IG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsICdteXBsdWdpbicsIG1vZCkKKyAgICAg
ICAgYXNzZXJ0IHB5dGVzdC5tYWluKGFyZ3M9W3N0cih0bXBkaXIpXSwgcGx1Z2lucz1bJ215cGx1
Z2luJ10pID09IDAKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplZF93aXRoX2J5dGVzX3JlZ2V4
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHJlCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3InLCBbcmUuY29tcGlsZShiJ2ZvbycpXSkKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3N0dWZmKHIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICByZXMgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgJyoxIHBhc3NlZConCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZWRfd2l0aF9udWxsX2J5dGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0
IHBhcmFtZXRyaXphdGlvbiB3aXRoIHZhbHVlcyB0aGF0IGNvbnRhaW4gbnVsbCBieXRlcyBhbmQg
dW5pY29kZSBjaGFyYWN0ZXJzICgjMjY0NCwgIzI5NTcpIiIiCisgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUodSIiIgorICAgICAgICAgICAgIyBlbmNvZGluZzogVVRGLTgKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJkYXRhIiwgW2IiXFx4MDAiLCAiXFx4MDAiLCB1J2HDp8OjbyddKQorICAgICAgICAgICAgZGVm
IHRlc3RfZm9vKGRhdGEpOgorICAgICAgICAgICAgICAgIGFzc2VydCBkYXRhCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzLmFzc2Vy
dF9vdXRjb21lcyhwYXNzZWQ9MykKKworCitjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRzKG9i
amVjdCk6CisgICAgZGVmIHRlc3RfZWFybHlpbml0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgYXNzZXJ0IGhhc2F0dHIocHl0ZXN0LCAnbWFyaycpCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRob24ocCkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKCJzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnamF2YScpIikKKyAgICBkZWYgdGVzdF9weWRvYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgZm9yIG5hbWUgaW4gKCdweS50ZXN0JywgJ3B5dGVzdCcpOgorICAgICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRob25fYygiaW1wb3J0ICVzO2hlbHAoJXMpIiAlIChuYW1lLCBuYW1l
KSkKKyAgICAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgICAgIHMgPSBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgICAgICBhc3NlcnQgJ01hcmtHZW5lcmF0b3InIGlu
IHMKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9zdGFyX3B5X2RvdF90ZXN0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSBw
eS50ZXN0IGltcG9ydCAqCisgICAgICAgICAgICAjY29sbGVjdAorICAgICAgICAgICAgI2NtZGxp
bmUKKyAgICAgICAgICAgICNJdGVtCisgICAgICAgICAgICAjIGFzc2VydCBjb2xsZWN0Lkl0ZW0g
aXMgSXRlbQorICAgICAgICAgICAgIyBhc3NlcnQgY29sbGVjdC5Db2xsZWN0b3IgaXMgQ29sbGVj
dG9yCisgICAgICAgICAgICBtYWluCisgICAgICAgICAgICBza2lwCisgICAgICAgICAgICB4ZmFp
bAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9zdGFy
X3B5dGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCAqCisgICAgICAgICAgICAjSXRlbQor
ICAgICAgICAgICAgI0ZpbGUKKyAgICAgICAgICAgIG1haW4KKyAgICAgICAgICAgIHNraXAKKyAg
ICAgICAgICAgIHhmYWlsCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRob24ocCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgZGVmIHRl
c3RfZG91YmxlX3B5dGVzdGNtZGxpbmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUocnVuPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgcHl0ZXN0Lm1haW4oKQorICAgICAgICAgICAgcHl0ZXN0Lm1haW4oKQorICAgICAgICAi
IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgICAgICAgICAiKjEgcGFz
c2VkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9weXRob25fbWludXNfbV9pbnZvY2F0
aW9uX29rKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
ZGVmIHRlc3RfaGVsbG8oKTogcGFzcyIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVuKHB5LnN0
ZC5zeXMuZXhlY3V0YWJsZSwgIi1tIiwgInB5dGVzdCIsIHN0cihwMSkpCisgICAgICAgIGFzc2Vy
dCByZXMucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X3B5dGhvbl9taW51c19tX2ludm9jYXRpb25f
ZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRl
ZiB0ZXN0X2ZhaWwoKTogMC8wIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW4ocHkuc3RkLnN5
cy5leGVjdXRhYmxlLCAiLW0iLCAicHl0ZXN0Iiwgc3RyKHAxKSkKKyAgICAgICAgYXNzZXJ0IHJl
cy5yZXQgPT0gMQorCisgICAgZGVmIHRlc3RfcHl0aG9uX3B5dGVzdF9wYWNrYWdlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfcGFzcygp
OiBwYXNzIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW4ocHkuc3RkLnN5cy5leGVjdXRhYmxl
LCAiLW0iLCAicHl0ZXN0Iiwgc3RyKHAxKSkKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMAor
ICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBk
ZWYgdGVzdF9lcXVpdmFsZW5jZV9weXRlc3RfcHl0ZXN0KHNlbGYpOgorICAgICAgICBhc3NlcnQg
cHl0ZXN0Lm1haW4gPT0gcHkudGVzdC5jbWRsaW5lLm1haW4KKworICAgIGRlZiB0ZXN0X2ludm9r
ZV93aXRoX3N0cmluZyhzZWxmLCBjYXBzeXMpOgorICAgICAgICByZXRjb2RlID0gcHl0ZXN0Lm1h
aW4oIi1oIikKKyAgICAgICAgYXNzZXJ0IG5vdCByZXRjb2RlCisgICAgICAgIG91dCwgZXJyID0g
Y2Fwc3lzLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgIi0taGVscCIgaW4gb3V0CisgICAg
ICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBweXRlc3QubWFpbigwKSkKKwor
ICAgIGRlZiB0ZXN0X2ludm9rZV93aXRoX3BhdGgoc2VsZiwgdG1wZGlyLCBjYXBzeXMpOgorICAg
ICAgICByZXRjb2RlID0gcHl0ZXN0Lm1haW4odG1wZGlyKQorICAgICAgICBhc3NlcnQgcmV0Y29k
ZSA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKyAgICAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVh
ZG91dGVycigpCisKKyAgICBkZWYgdGVzdF9pbnZva2VfcGx1Z2luX2FwaShzZWxmLCB0ZXN0ZGly
LCBjYXBzeXMpOgorICAgICAgICBjbGFzcyBNeVBsdWdpbihvYmplY3QpOgorICAgICAgICAgICAg
ZGVmIHB5dGVzdF9hZGRvcHRpb24oc2VsZiwgcGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJz
ZXIuYWRkb3B0aW9uKCItLW15b3B0IikKKworICAgICAgICBweXRlc3QubWFpbihbIi1oIl0sIHBs
dWdpbnM9W015UGx1Z2luKCldKQorICAgICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJy
KCkKKyAgICAgICAgYXNzZXJ0ICItLW15b3B0IiBpbiBvdXQKKworICAgIGRlZiB0ZXN0X3B5YXJn
c19pbXBvcnRlcnJvcihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtl
eXBhdGNoLmRlbGVudignUFlUSE9ORE9OVFdSSVRFQllURUNPREUnLCBGYWxzZSkKKyAgICAgICAg
cGF0aCA9IHRlc3RkaXIubWtweWRpcigidHBrZyIpCisgICAgICAgIHBhdGguam9pbigidGVzdF9o
ZWxsby5weSIpLndyaXRlKCdyYWlzZSBJbXBvcnRFcnJvcicpCisKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLS1weWFyZ3MiLCAidHBrZy50ZXN0X2hlbGxv
IikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiY29sbGVjdGVkKjAqaXRlbXMqLyoxKmVy
cm9ycyIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NtZGxpbmVfcHl0aG9uX3BhY2thZ2Uo
c2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAg
ICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCdQWVRIT05ET05UV1JJVEVCWVRFQ09ERScsIEZhbHNl
KQorICAgICAgICBwYXRoID0gdGVzdGRpci5ta3B5ZGlyKCJ0cGtnIikKKyAgICAgICAgcGF0aC5q
b2luKCJ0ZXN0X2hlbGxvLnB5Iikud3JpdGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAg
ICAgICBwYXRoLmpvaW4oInRlc3Rfd29ybGQucHkiKS53cml0ZSgiZGVmIHRlc3Rfd29ybGQoKTog
cGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXB5YXJncyIsICJ0
cGtnIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioyIHBhc3NlZCoiCisgICAgICAgIF0p
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXB5YXJncyIsICJ0cGtnLnRl
c3RfaGVsbG8iKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIKKyAgICAg
ICAgXSkKKworICAgICAgICBkZWYgam9pbl9weXRob25wYXRoKHdoYXQpOgorICAgICAgICAgICAg
Y3VyID0gcHkuc3RkLm9zLmVudmlyb24uZ2V0KCdQWVRIT05QQVRIJykKKyAgICAgICAgICAgIGlm
IGN1cjoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHdoYXQpICsgb3MucGF0aHNlcCArIGN1
cgorICAgICAgICAgICAgcmV0dXJuIHdoYXQKKyAgICAgICAgZW1wdHlfcGFja2FnZSA9IHRlc3Rk
aXIubWtweWRpcigiZW1wdHlfcGFja2FnZSIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudign
UFlUSE9OUEFUSCcsIGpvaW5fcHl0aG9ucGF0aChlbXB0eV9wYWNrYWdlKSkKKyAgICAgICAgIyB0
aGUgcGF0aCB3aGljaCBpcyBub3QgYSBwYWNrYWdlIHJhaXNlcyBhIHdhcm5pbmcgb24gcHlweTsK
KyAgICAgICAgIyBubyBpZGVhIHdoeSBvbmx5IHB5cHkgYW5kIG5vdCBub3JtYWwgcHl0aG9uIHdh
cm4gYWJvdXQgaXQgaGVyZQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6
CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2lnbm9yZScsIEltcG9ydFdhcm5p
bmcpCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1weWFyZ3MiLCAi
LiIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMiBwYXNzZWQqIgorICAgICAgICBdKQor
CisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudignUFlUSE9OUEFUSCcsIGpvaW5fcHl0aG9ucGF0
aCh0ZXN0ZGlyKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdz
IiwgInRwa2cudGVzdF9taXNzaW5nIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAor
ICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipub3Qq
Zm91bmQqdGVzdF9taXNzaW5nKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jbWRsaW5l
X3B5dGhvbl9uYW1lc3BhY2VfcGFja2FnZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6Cisg
ICAgICAgICIiIgorICAgICAgICB0ZXN0IC0tcHlhcmdzIG9wdGlvbiB3aXRoIG5hbWVzcGFjZSBw
YWNrYWdlcyAoIzE1NjcpCisgICAgICAgICIiIgorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYo
J1BZVEhPTkRPTlRXUklURUJZVEVDT0RFJywgcmFpc2luZz1GYWxzZSkKKworICAgICAgICBzZWFy
Y2hfcGF0aCA9IFtdCisgICAgICAgIGZvciBkaXJuYW1lIGluICJoZWxsbyIsICJ3b3JsZCI6Cisg
ICAgICAgICAgICBkID0gdGVzdGRpci5ta2RpcihkaXJuYW1lKQorICAgICAgICAgICAgc2VhcmNo
X3BhdGguYXBwZW5kKGQpCisgICAgICAgICAgICBucyA9IGQubWtkaXIoIm5zX3BrZyIpCisgICAg
ICAgICAgICBucy5qb2luKCJfX2luaXRfXy5weSIpLndyaXRlKAorICAgICAgICAgICAgICAgICJf
X2ltcG9ydF9fKCdwa2dfcmVzb3VyY2VzJykuZGVjbGFyZV9uYW1lc3BhY2UoX19uYW1lX18pIikK
KyAgICAgICAgICAgIGxpYiA9IG5zLm1rZGlyKGRpcm5hbWUpCisgICAgICAgICAgICBsaWIuZW5z
dXJlKCJfX2luaXRfXy5weSIpCisgICAgICAgICAgICBsaWIuam9pbigidGVzdF97MH0ucHkiLmZv
cm1hdChkaXJuYW1lKSkuIFwKKyAgICAgICAgICAgICAgICB3cml0ZSgiZGVmIHRlc3RfezB9KCk6
IHBhc3NcbiIKKyAgICAgICAgICAgICAgICAgICAgICAiZGVmIHRlc3Rfb3RoZXIoKTpwYXNzIi5m
b3JtYXQoZGlybmFtZSkpCisKKyAgICAgICAgIyBUaGUgc3RydWN0dXJlIG9mIHRoZSB0ZXN0IGRp
cmVjdG9yeSBpcyBub3c6CisgICAgICAgICMgLgorICAgICAgICAjIOKUnOKUgOKUgCBoZWxsbwor
ICAgICAgICAjIOKUgsKgwqAg4pSU4pSA4pSAIG5zX3BrZworICAgICAgICAjIOKUgsKgwqAgICAg
IOKUnOKUgOKUgCBfX2luaXRfXy5weQorICAgICAgICAjIOKUgsKgwqAgICAgIOKUlOKUgOKUgCBo
ZWxsbworICAgICAgICAjIOKUgsKgwqAgICAgICAgICDilJzilIDilIAgX19pbml0X18ucHkKKyAg
ICAgICAgIyDilILCoMKgICAgICAgICAg4pSU4pSA4pSAIHRlc3RfaGVsbG8ucHkKKyAgICAgICAg
IyDilJTilIDilIAgd29ybGQKKyAgICAgICAgIyAgICAg4pSU4pSA4pSAIG5zX3BrZworICAgICAg
ICAjICAgICAgICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICMgICAgICAgICDilJTi
lIDilIAgd29ybGQKKyAgICAgICAgIyAgICAgICAgICAgICDilJzilIDilIAgX19pbml0X18ucHkK
KyAgICAgICAgIyAgICAgICAgICAgICDilJTilIDilIAgdGVzdF93b3JsZC5weQorCisgICAgICAg
IGRlZiBqb2luX3B5dGhvbnBhdGgoKmRpcnMpOgorICAgICAgICAgICAgY3VyID0gcHkuc3RkLm9z
LmVudmlyb24uZ2V0KCdQWVRIT05QQVRIJykKKyAgICAgICAgICAgIGlmIGN1cjoKKyAgICAgICAg
ICAgICAgICBkaXJzICs9IChjdXIsKQorICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGhzZXAuam9p
bihzdHIocCkgZm9yIHAgaW4gZGlycykKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdQWVRI
T05QQVRIJywgam9pbl9weXRob25wYXRoKCpzZWFyY2hfcGF0aCkpCisgICAgICAgIGZvciBwIGlu
IHNlYXJjaF9wYXRoOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHAp
CisKKyAgICAgICAgb3MuY2hkaXIoJ3dvcmxkJykKKyAgICAgICAgIyBtaXhlZCBtb2R1bGUgYW5k
IGZpbGVuYW1lczoKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdz
IiwgIi12IiwgIm5zX3BrZy5oZWxsbyIsICJuc19wa2cvd29ybGQiKQorICAgICAgICB0ZXN0ZGly
LmNoZGlyKCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2hlbGxvLnB5Ojp0ZXN0
X2hlbGxvKlBBU1NFRCoiLAorICAgICAgICAgICAgIip0ZXN0X2hlbGxvLnB5Ojp0ZXN0X290aGVy
KlBBU1NFRCoiLAorICAgICAgICAgICAgIip0ZXN0X3dvcmxkLnB5Ojp0ZXN0X3dvcmxkKlBBU1NF
RCoiLAorICAgICAgICAgICAgIip0ZXN0X3dvcmxkLnB5Ojp0ZXN0X290aGVyKlBBU1NFRCoiLAor
ICAgICAgICAgICAgIio0IHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICAgICAgIyBzcGVjaWZ5
IHRlc3RzIHdpdGhpbiBhIG1vZHVsZQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1weWFyZ3MiLCAiLXYiLCAibnNfcGtnLndvcmxkLnRlc3Rfd29ybGQ6OnRlc3Rfb3RoZXIi
KQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3Rfd29ybGQucHk6OnRlc3Rfb3RoZXIq
UEFTU0VEKiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2NtZGxpbmVfcHl0aG9uX3BhY2thZ2Vfbm90X2V4aXN0cyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdzIiwgInRwa2d3aGF0
diIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiRVJST1IqZmlsZSpvcipwYWNrYWdlKm5vdCpmb3Vu
ZCoiLAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iZGVjaWRl
OiBmZWF0dXJlIG9yIGJ1ZyIpCisgICAgZGVmIHRlc3Rfbm9jbGFzc19kaXNjb3ZlcnlfaWZfbm90
X3Rlc3RjYXNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICAgICAgY2xh
c3MgVGVzdEhlbGxvKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2Vs
Zik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmF0dHIKKworICAgICAgICAgICAg
Y2xhc3MgUmVhbFRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFRlc3RIZWxsbyk6CisgICAgICAgICAg
ICAgICAgYXR0ciA9IDQyCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKHRlc3RwYXRoKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MSkKKworICAgIGRlZiB0ZXN0X2RvY3Rlc3RfaWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZWZpbGUoJy50eHQnLCAiIiIKKyAgICAgICAgICAgID4+PiB4PTMKKyAgICAgICAg
ICAgID4+PiB4CisgICAgICAgICAgICA0CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi1yZiIpCisgICAgICAgIGxpbmVzID0gcmVzdWx0LnN0ZG91dC5z
dHIoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAg
ICBpZiBsaW5lLnN0YXJ0c3dpdGgoIkZBSUwgIik6CisgICAgICAgICAgICAgICAgdGVzdGlkID0g
bGluZVs1Ol0uc3RyaXAoKQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RpZCwgJy1yZicpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICBsaW5lLAorICAgICAgICAgICAgIioxIGZhaWxl
ZCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY29yZV9iYWNrd2FyZF9jb21wYXRpYmls
aXR5KHNlbGYpOgorICAgICAgICAiIiJUZXN0IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGdl
dF9wbHVnaW5fbWFuYWdlciBmdW5jdGlvbi4gU2VlICM3ODcuIiIiCisgICAgICAgIGltcG9ydCBf
cHl0ZXN0LmNvbmZpZworICAgICAgICBhc3NlcnQgdHlwZShfcHl0ZXN0LmNvbmZpZy5nZXRfcGx1
Z2luX21hbmFnZXIoKSkgaXMgX3B5dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdlcgorCisg
ICAgZGVmIHRlc3RfaGFzX3BsdWdpbihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiVGVzdCBo
YXNwbHVnaW4gZnVuY3Rpb24gb2YgdGhlIHBsdWdpbiBtYW5hZ2VyICgjOTMyKS4iIiIKKyAgICAg
ICAgYXNzZXJ0IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuaGFzcGx1Z2luKCdweXRob24n
KQorCisKK2NsYXNzIFRlc3REdXJhdGlvbnMob2JqZWN0KToKKyAgICBzb3VyY2UgPSAiIiIKKyAg
ICAgICAgaW1wb3J0IHRpbWUKKyAgICAgICAgZnJhZyA9IDAuMDAyCisgICAgICAgIGRlZiB0ZXN0
X3NvbWV0aGluZygpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF8yKCk6Cisg
ICAgICAgICAgICB0aW1lLnNsZWVwKGZyYWcqNSkKKyAgICAgICAgZGVmIHRlc3RfMSgpOgorICAg
ICAgICAgICAgdGltZS5zbGVlcChmcmFnKQorICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAg
ICAgICB0aW1lLnNsZWVwKGZyYWcqMTApCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9jYWxscyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHNlbGYuc291cmNlKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kdXJhdGlvbnM9MTAiKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lc19yYW5kb20oWworICAgICAgICAgICAgIipkdXJhdGlvbnMqIiwKKyAgICAgICAgICAg
ICIqY2FsbCp0ZXN0XzMqIiwKKyAgICAgICAgICAgICIqY2FsbCp0ZXN0XzIqIiwKKyAgICAgICAg
ICAgICIqY2FsbCp0ZXN0XzEqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NhbGxzX3No
b3dfMihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHNlbGYuc291
cmNlKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kdXJhdGlvbnM9MiIp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgbGluZXMgPSByZXN1bHQu
c3Rkb3V0LmdldF9saW5lc19hZnRlcigiKnNsb3dlc3QqZHVyYXRpb25zKiIpCisgICAgICAgIGFz
c2VydCAiNCBwYXNzZWQiIGluIGxpbmVzWzJdCisKKyAgICBkZWYgdGVzdF9jYWxsc19zaG93YWxs
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2VsZi5zb3VyY2Up
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWR1cmF0aW9ucz0wIikKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICBmb3IgeCBpbiAiMTIzIjoKKyAg
ICAgICAgICAgIGZvciB5IGluICdjYWxsJywgOiAgIyAnc2V0dXAnLCAnY2FsbCcsICd0ZWFyZG93
bic6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gcmVzdWx0LnN0ZG91dC5saW5lczoKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCJ0ZXN0XyVzIiAlIHgpIGluIGxpbmUgYW5kIHkgaW4gbGlu
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIm5vdCBmb3VuZCAlcyAl
cyIgJSAoeCwgeSkpCisKKyAgICBkZWYgdGVzdF93aXRoX2Rlc2VsZWN0ZWQoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTIiLCAiLWsgdGVzdF8xIikKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIipkdXJhdGlvbnMqIiwKKyAgICAgICAgICAgICIqY2Fs
bCp0ZXN0XzEqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3dpdGhfZmFpbGluZ19jb2xs
ZWN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2VsZi5z
b3VyY2UpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2NvbGxlY3RlcnJvcj0iIiJ4
eXoiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWR1cmF0aW9ucz0y
IiwgIi1rIHRlc3RfMSIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDIKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqSW50ZXJydXB0ZWQ6
IDEgZXJyb3JzIGR1cmluZyBjb2xsZWN0aW9uKiIsCisgICAgICAgIF0pCisgICAgICAgICMgQ29s
bGVjdGlvbiBlcnJvcnMgYWJvcnQgdGVzdCBleGVjdXRpb24sIHRoZXJlZm9yZSBubyBkdXJhdGlv
biBpcworICAgICAgICAjIG91dHB1dAorICAgICAgICBhc3NlcnQgImR1cmF0aW9uIiBub3QgaW4g
cmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVmIHRlc3Rfd2l0aF9ub3Qoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1rIG5vdCAxIikKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorCisKK2NsYXNzIFRlc3REdXJhdGlvbldpdGhGaXh0dXJlKG9iamVjdCk6Cisg
ICAgc291cmNlID0gIiIiCisgICAgICAgIGltcG9ydCB0aW1lCisgICAgICAgIGZyYWcgPSAwLjAw
MQorICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICB0aW1lLnNs
ZWVwKGZyYWcgKiAzKQorICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICB0aW1lLnNs
ZWVwKGZyYWcqMikKKyAgICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAgdGltZS5zbGVl
cChmcmFnKQorICAgICIiIgorCisgICAgZGVmIHRlc3Rfc2V0dXBfZnVuY3Rpb24oc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTEwIikKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
c19yYW5kb20oIiIiCisgICAgICAgICAgICAqZHVyYXRpb25zKgorICAgICAgICAgICAgKiBzZXR1
cCAqdGVzdF8xKgorICAgICAgICAgICAgKiBjYWxsICp0ZXN0XzEqCisgICAgICAgICIiIikKKwor
CitkZWYgdGVzdF96aXBpbXBvcnRfaG9vayh0ZXN0ZGlyLCB0bXBkaXIpOgorICAgICIiIlRlc3Qg
cGFja2FnZSBsb2FkZXIgaXMgYmVpbmcgdXNlZCBjb3JyZWN0bHkgKHNlZSAjMTgzNykuIiIiCisg
ICAgemlwYXBwID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgnemlwYXBwJykKKyAgICB0ZXN0ZGlyLnRt
cGRpci5qb2luKCdhcHAnKS5lbnN1cmUoZGlyPTEpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoq
eworICAgICAgICAnYXBwL2Zvby5weSc6ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgZGVmIG1haW4oKToKKyAgICAgICAgICAgICAgICBweXRlc3QubWFpbihbJy0t
cHlhcmcnLCAnZm9vJ10pCisgICAgICAgICIiIiwKKyAgICB9KQorICAgIHRhcmdldCA9IHRtcGRp
ci5qb2luKCdmb28uemlwJykKKyAgICB6aXBhcHAuY3JlYXRlX2FyY2hpdmUoc3RyKHRlc3RkaXIu
dG1wZGlyLmpvaW4oJ2FwcCcpKSwgc3RyKHRhcmdldCksIG1haW49J2ZvbzptYWluJykKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbih0YXJnZXQpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbJypub3QgZm91bmQqZm9vKidd
KQorICAgIGFzc2VydCAnSU5URVJOQUxFUlJPUj4nIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigp
CisKKworZGVmIHRlc3RfaW1wb3J0X3BsdWdpbl91bmljb2RlX25hbWUodGVzdGRpcik6CisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICBteXBsdWdpbj0nJywKKyAgICApCisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdCgpOiBwYXNzCisgICAgIiIiKQor
ICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFt1
J215cGx1Z2luJ10KKyAgICAiIiIpCisgICAgciA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBh
c3NlcnQgci5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X2RlZmVycmVkX2hvb2tfY2hlY2tpbmcodGVz
dGRpcik6CisgICAgIiIiCisgICAgQ2hlY2sgaG9va3MgYXMgbGF0ZSBhcyBwb3NzaWJsZSAoIzE4
MjEpLgorICAgICIiIgorICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCoqeworICAgICAgICAncGx1Z2luLnB5JzogIiIiCisgICAgICAgIGNsYXNzIEhv
b2tzOgorICAgICAgICAgICAgZGVmIHB5dGVzdF9teV9ob29rKHNlbGYsIGNvbmZpZyk6CisgICAg
ICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6
CisgICAgICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5hZGRfaG9va3NwZWNzKEhvb2tzKQor
ICAgICAgICAiIiIsCisgICAgICAgICdjb25mdGVzdC5weSc6ICIiIgorICAgICAgICAgICAgcHl0
ZXN0X3BsdWdpbnMgPSBbJ3BsdWdpbiddCisgICAgICAgICAgICBkZWYgcHl0ZXN0X215X2hvb2so
Y29uZmlnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNDAKKyAgICAgICAgIiIiLAorICAgICAg
ICAndGVzdF9mb28ucHknOiAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0KHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZy5ob29rLnB5dGVzdF9teV9ob29rKGNv
bmZpZz1yZXF1ZXN0LmNvbmZpZykgPT0gWzQwXQorICAgICAgICAiIiIKKyAgICB9KQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWycqIDEgcGFzc2VkIConXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29k
ZS90ZXN0X2NvZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIwOWE4ZWYxOWEwMjNiNzBjYzYwYmE0Yzg4Y2E3YjhmMWIxZTdiZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5CkBAIC0w
LDAgKzEsMTk2IEBACisjIGNvZGluZzogdXRmLTgKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMKKworaW1w
b3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSB0ZXN0X2V4
Y2luZm8gaW1wb3J0IFRXTW9jaworCisKK2RlZiB0ZXN0X25lKCk6CisgICAgY29kZTEgPSBfcHl0
ZXN0Ll9jb2RlLkNvZGUoY29tcGlsZSgnZm9vID0gImJhciInLCAnJywgJ2V4ZWMnKSkKKyAgICBh
c3NlcnQgY29kZTEgPT0gY29kZTEKKyAgICBjb2RlMiA9IF9weXRlc3QuX2NvZGUuQ29kZShjb21w
aWxlKCdmb28gPSAiYmF6IicsICcnLCAnZXhlYycpKQorICAgIGFzc2VydCBjb2RlMiAhPSBjb2Rl
MQorCisKK2RlZiB0ZXN0X2NvZGVfZ2l2ZXNfYmFja19uYW1lX2Zvcl9ub3RfZXhpc3RpbmdfZmls
ZSgpOgorICAgIG5hbWUgPSAnYWJjLTEyMycKKyAgICBjb19jb2RlID0gY29tcGlsZSgicGFzc1xu
IiwgbmFtZSwgJ2V4ZWMnKQorICAgIGFzc2VydCBjb19jb2RlLmNvX2ZpbGVuYW1lID09IG5hbWUK
KyAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKGNvX2NvZGUpCisgICAgYXNzZXJ0IHN0cihj
b2RlLnBhdGgpID09IG5hbWUKKyAgICBhc3NlcnQgY29kZS5mdWxsc291cmNlIGlzIE5vbmUKKwor
CitkZWYgdGVzdF9jb2RlX3dpdGhfY2xhc3MoKToKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAg
ICAgIHBhc3MKKyAgICBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwgIl9weXRlc3QuX2NvZGUuQ29k
ZShBKSIpCisKKworaWYgVHJ1ZToKKyAgICBkZWYgeCgpOgorICAgICAgICBwYXNzCisKKworZGVm
IHRlc3RfY29kZV9mdWxsc291cmNlKCk6CisgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZSh4
KQorICAgIGZ1bGwgPSBjb2RlLmZ1bGxzb3VyY2UKKyAgICBhc3NlcnQgJ3Rlc3RfY29kZV9mdWxs
c291cmNlKCknIGluIHN0cihmdWxsKQorCisKK2RlZiB0ZXN0X2NvZGVfc291cmNlKCk6CisgICAg
Y29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZSh4KQorICAgIHNyYyA9IGNvZGUuc291cmNlKCkKKyAg
ICBleHBlY3RlZCA9ICIiImRlZiB4KCk6CisgICAgcGFzcyIiIgorICAgIGFzc2VydCBzdHIoc3Jj
KSA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0X2ZyYW1lX2dldHNvdXJjZWxpbmVub19teXNlbGYo
KToKKyAgICBkZWYgZnVuYygpOgorICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQorICAg
IGYgPSBmdW5jKCkKKyAgICBmID0gX3B5dGVzdC5fY29kZS5GcmFtZShmKQorICAgIHNvdXJjZSwg
bGluZW5vID0gZi5jb2RlLmZ1bGxzb3VyY2UsIGYubGluZW5vCisgICAgYXNzZXJ0IHNvdXJjZVts
aW5lbm9dLnN0YXJ0c3dpdGgoIiAgICAgICAgcmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkiKQorCisK
K2RlZiB0ZXN0X2dldHN0YXRlbWVudF9lbXB0eV9mdWxsc291cmNlKCk6CisgICAgZGVmIGZ1bmMo
KToKKyAgICAgICAgcmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmID0gZnVuYygpCisgICAg
ZiA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZikKKyAgICBwcm9wID0gZi5jb2RlLl9fY2xhc3NfXy5m
dWxsc291cmNlCisgICAgdHJ5OgorICAgICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2Ug
PSBOb25lCisgICAgICAgIGFzc2VydCBmLnN0YXRlbWVudCA9PSBfcHl0ZXN0Ll9jb2RlLlNvdXJj
ZSgiIikKKyAgICBmaW5hbGx5OgorICAgICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2Ug
PSBwcm9wCisKKworZGVmIHRlc3RfY29kZV9mcm9tX2Z1bmMoKToKKyAgICBjbyA9IF9weXRlc3Qu
X2NvZGUuQ29kZSh0ZXN0X2ZyYW1lX2dldHNvdXJjZWxpbmVub19teXNlbGYpCisgICAgYXNzZXJ0
IGNvLmZpcnN0bGluZW5vCisgICAgYXNzZXJ0IGNvLnBhdGgKKworCitkZWYgdGVzdF91bmljb2Rl
X2hhbmRsaW5nKCk6CisgICAgdmFsdWUgPSBweS5idWlsdGluLl90b3RleHQoJ1x4YzRceDg1XHhj
NFx4ODdcbicsICd1dGYtOCcpLmVuY29kZSgndXRmOCcpCisKKyAgICBkZWYgZigpOgorICAgICAg
ICByYWlzZSBFeGNlcHRpb24odmFsdWUpCisKKyAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhF
eGNlcHRpb24sIGYpCisgICAgc3RyKGV4Y2luZm8pCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1sw
XSA8IDM6CisgICAgICAgIHVuaWNvZGUoZXhjaW5mbykKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlm
KHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMywgcmVhc29uPSdweXRob24gMiBvbmx5IGlzc3VlJykK
K2RlZiB0ZXN0X3VuaWNvZGVfaGFuZGxpbmdfc3ludGF4X2Vycm9yKCk6CisgICAgdmFsdWUgPSBw
eS5idWlsdGluLl90b3RleHQoJ1x4YzRceDg1XHhjNFx4ODdcbicsICd1dGYtOCcpLmVuY29kZSgn
dXRmOCcpCisKKyAgICBkZWYgZigpOgorICAgICAgICByYWlzZSBTeW50YXhFcnJvcignaW52YWxp
ZCBzeW50YXgnLCAoTm9uZSwgMSwgMywgdmFsdWUpKQorCisgICAgZXhjaW5mbyA9IHB5dGVzdC5y
YWlzZXMoRXhjZXB0aW9uLCBmKQorICAgIHN0cihleGNpbmZvKQorICAgIGlmIHN5cy52ZXJzaW9u
X2luZm9bMF0gPCAzOgorICAgICAgICB1bmljb2RlKGV4Y2luZm8pCisKKworZGVmIHRlc3RfY29k
ZV9nZXRhcmdzKCk6CisgICAgZGVmIGYxKHgpOgorICAgICAgICBwYXNzCisgICAgYzEgPSBfcHl0
ZXN0Ll9jb2RlLkNvZGUoZjEpCisgICAgYXNzZXJ0IGMxLmdldGFyZ3ModmFyPVRydWUpID09ICgn
eCcsKQorCisgICAgZGVmIGYyKHgsICp5KToKKyAgICAgICAgcGFzcworICAgIGMyID0gX3B5dGVz
dC5fY29kZS5Db2RlKGYyKQorICAgIGFzc2VydCBjMi5nZXRhcmdzKHZhcj1UcnVlKSA9PSAoJ3gn
LCAneScpCisKKyAgICBkZWYgZjMoeCwgKip6KToKKyAgICAgICAgcGFzcworICAgIGMzID0gX3B5
dGVzdC5fY29kZS5Db2RlKGYzKQorICAgIGFzc2VydCBjMy5nZXRhcmdzKHZhcj1UcnVlKSA9PSAo
J3gnLCAneicpCisKKyAgICBkZWYgZjQoeCwgKnksICoqeik6CisgICAgICAgIHBhc3MKKyAgICBj
NCA9IF9weXRlc3QuX2NvZGUuQ29kZShmNCkKKyAgICBhc3NlcnQgYzQuZ2V0YXJncyh2YXI9VHJ1
ZSkgPT0gKCd4JywgJ3knLCAneicpCisKKworZGVmIHRlc3RfZnJhbWVfZ2V0YXJncygpOgorICAg
IGRlZiBmMSh4KToKKyAgICAgICAgcmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmcjEgPSBf
cHl0ZXN0Ll9jb2RlLkZyYW1lKGYxKCdhJykpCisgICAgYXNzZXJ0IGZyMS5nZXRhcmdzKHZhcj1U
cnVlKSA9PSBbKCd4JywgJ2EnKV0KKworICAgIGRlZiBmMih4LCAqeSk6CisgICAgICAgIHJldHVy
biBzeXMuX2dldGZyYW1lKDApCisgICAgZnIyID0gX3B5dGVzdC5fY29kZS5GcmFtZShmMignYScs
ICdiJywgJ2MnKSkKKyAgICBhc3NlcnQgZnIyLmdldGFyZ3ModmFyPVRydWUpID09IFsoJ3gnLCAn
YScpLCAoJ3knLCAoJ2InLCAnYycpKV0KKworICAgIGRlZiBmMyh4LCAqKnopOgorICAgICAgICBy
ZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQorICAgIGZyMyA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZjMo
J2EnLCBiPSdjJykpCisgICAgYXNzZXJ0IGZyMy5nZXRhcmdzKHZhcj1UcnVlKSA9PSBbKCd4Jywg
J2EnKSwgKCd6JywgeydiJzogJ2MnfSldCisKKyAgICBkZWYgZjQoeCwgKnksICoqeik6CisgICAg
ICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZnI0ID0gX3B5dGVzdC5fY29kZS5GcmFt
ZShmNCgnYScsICdiJywgYz0nZCcpKQorICAgIGFzc2VydCBmcjQuZ2V0YXJncyh2YXI9VHJ1ZSkg
PT0gWygneCcsICdhJyksICgneScsICgnYicsKSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCd6JywgeydjJzogJ2QnfSldCisKKworY2xhc3MgVGVzdEV4Y2VwdGlvbklu
Zm8ob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X2JhZF9nZXRzb3VyY2Uoc2VsZik6CisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGlmIEZhbHNlOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgIGV4Y2Vw
dCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIGV4Y2kgPSBfcHl0ZXN0Ll9jb2RlLkV4Y2Vw
dGlvbkluZm8oKQorICAgICAgICBhc3NlcnQgZXhjaS5nZXRyZXByKCkKKworCitjbGFzcyBUZXN0
VHJhY2ViYWNrRW50cnkob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X2dldHNvdXJjZShzZWxmKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgRmFsc2U6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAg
ICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAgICAgICAgZXhjaSA9IF9weXRlc3QuX2Nv
ZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIGVudHJ5ID0gZXhjaS50cmFjZWJhY2tbMF0KKyAg
ICAgICAgc291cmNlID0gZW50cnkuZ2V0c291cmNlKCkKKyAgICAgICAgYXNzZXJ0IGxlbihzb3Vy
Y2UpID09IDYKKyAgICAgICAgYXNzZXJ0ICdhc3NlcnQgRmFsc2UnIGluIHNvdXJjZVs1XQorCisK
K2NsYXNzIFRlc3RSZXByRnVuY0FyZ3Mob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X25vdF9yYWlz
ZV9leGNlcHRpb25fd2l0aF9taXhlZF9lbmNvZGluZyhzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0
ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFJlcHJGdW5jQXJncworCisgICAgICAgIHR3ID0gVFdNb2Nr
KCkKKworICAgICAgICBhcmdzID0gWworICAgICAgICAgICAgKCd1bmljb2RlX3N0cmluZycsIHUi
U8OjbyBQYXVsbyIpLAorICAgICAgICAgICAgKCd1dGY4X3N0cmluZycsICdTXHhjM1x4YTNvIFBh
dWxvJyksCisgICAgICAgIF0KKworICAgICAgICByID0gUmVwckZ1bmNBcmdzKGFyZ3MpCisgICAg
ICAgIHIudG90ZXJtaW5hbCh0dykKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAz
OgorICAgICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICd1bmljb2RlX3N0cmluZyA9IFPD
o28gUGF1bG8sIHV0Zjhfc3RyaW5nID0gU8ODwqNvIFBhdWxvJworICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICd1bmljb2RlX3N0cmluZyA9IFPDo28gUGF1
bG8sIHV0Zjhfc3RyaW5nID0gU8OjbyBQYXVsbycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVz
dF9leGNpbmZvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZGI4ZmZhMTg5ODNhYzY4MjkyYzUxNDA2MWEwNDg0
OTAxODBmNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVz
dF9leGNpbmZvLnB5CkBAIC0wLDAgKzEsMTI0NSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKworaW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgX3B5dGVzdAoraW1wb3J0IHB5Citp
bXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgKAorICAgIEV4Y2Vw
dGlvbkluZm8sCisgICAgRm9ybWF0dGVkRXhjaW5mbywKKyAgICBSZXByRXhjZXB0aW9uSW5mbywK
KyAgICBFeGNlcHRpb25DaGFpblJlcHIpCisKK2Zyb20gdGVzdF9zb3VyY2UgaW1wb3J0IGFzdG9u
bHkKKwordHJ5OgorICAgIGltcG9ydCBpbXBvcnRsaWIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAg
ICBpbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMgPSBOb25lCitlbHNlOgorICAgIGludmFsaWRhdGVf
aW1wb3J0X2NhY2hlcyA9IGdldGF0dHIoaW1wb3J0bGliLCAiaW52YWxpZGF0ZV9jYWNoZXMiLCBO
b25lKQorCitxdWV1ZSA9IHB5LmJ1aWx0aW4uX3RyeWltcG9ydCgncXVldWUnLCAnUXVldWUnKQor
CitmYWlsc29uanl0aG9uID0gcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy5wbGF0Zm9ybS5zdGFydHN3
aXRoKCdqYXZhJykiKQorCitweXRlc3RfdmVyc2lvbl9pbmZvID0gdHVwbGUobWFwKGludCwgcHl0
ZXN0Ll9fdmVyc2lvbl9fLnNwbGl0KCIuIilbOjNdKSkKKworCitjbGFzcyBUV01vY2sob2JqZWN0
KToKKyAgICBXUklURSA9IG9iamVjdCgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg
ICAgIHNlbGYubGluZXMgPSBbXQorICAgICAgICBzZWxmLmlzX3dyaXRpbmcgPSBGYWxzZQorCisg
ICAgZGVmIHNlcChzZWxmLCBzZXAsIGxpbmU9Tm9uZSk6CisgICAgICAgIHNlbGYubGluZXMuYXBw
ZW5kKChzZXAsIGxpbmUpKQorCisgICAgZGVmIHdyaXRlKHNlbGYsIG1zZywgKiprdyk6CisgICAg
ICAgIHNlbGYubGluZXMuYXBwZW5kKChUV01vY2suV1JJVEUsIG1zZykpCisKKyAgICBkZWYgbGlu
ZShzZWxmLCBsaW5lLCAqKmt3KToKKyAgICAgICAgc2VsZi5saW5lcy5hcHBlbmQobGluZSkKKwor
ICAgIGRlZiBtYXJrdXAoc2VsZiwgdGV4dCwgKiprdyk6CisgICAgICAgIHJldHVybiB0ZXh0CisK
KyAgICBkZWYgZ2V0X3dyaXRlX21zZyhzZWxmLCBpZHgpOgorICAgICAgICBmbGFnLCBtc2cgPSBz
ZWxmLmxpbmVzW2lkeF0KKyAgICAgICAgYXNzZXJ0IGZsYWcgPT0gVFdNb2NrLldSSVRFCisgICAg
ICAgIHJldHVybiBtc2cKKworICAgIGZ1bGx3aWR0aCA9IDgwCisKKworZGVmIHRlc3RfZXhjaW5m
b19zaW1wbGUoKToKKyAgICB0cnk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5m
bygpCisgICAgYXNzZXJ0IGluZm8udHlwZSA9PSBWYWx1ZUVycm9yCisKKworZGVmIHRlc3RfZXhj
aW5mb19nZXRzdGF0ZW1lbnQoKToKKyAgICBkZWYgZygpOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yCisKKyAgICBkZWYgZigpOgorICAgICAgICBnKCkKKworICAgIHRyeToKKyAgICAgICAgZigp
CisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2Rl
LkV4Y2VwdGlvbkluZm8oKQorICAgIGxpbmVudW1iZXJzID0gW19weXRlc3QuX2NvZGUuZ2V0cmF3
Y29kZShmKS5jb19maXJzdGxpbmVubyAtIDEgKyA0LAorICAgICAgICAgICAgICAgICAgIF9weXRl
c3QuX2NvZGUuZ2V0cmF3Y29kZShmKS5jb19maXJzdGxpbmVubyAtIDEgKyAxLAorICAgICAgICAg
ICAgICAgICAgIF9weXRlc3QuX2NvZGUuZ2V0cmF3Y29kZShnKS5jb19maXJzdGxpbmVubyAtIDEg
KyAxLCBdCisgICAgdmFsdWVzID0gbGlzdChleGNpbmZvLnRyYWNlYmFjaykKKyAgICBmb3VuZGxp
bmVudW1iZXJzID0gW3gubGluZW5vIGZvciB4IGluIHZhbHVlc10KKyAgICBhc3NlcnQgZm91bmRs
aW5lbnVtYmVycyA9PSBsaW5lbnVtYmVycworICAgICMgZm9yIHggaW4gaW5mbzoKKyAgICAjICAg
IHByaW50ICIlczolZCAgJXMiICUoeC5wYXRoLnJlbHRvKHJvb3QpLCB4LmxpbmVubywgeC5zdGF0
ZW1lbnQpCisgICAgIyB4eHgKKworIyB0ZXN0Y2hhaW4gZm9yIGdldGVudHJpZXMgdGVzdCBiZWxv
dworCisKK2RlZiBmKCk6CisgICAgIworICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAjCisKKwor
ZGVmIGcoKToKKyAgICAjCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgZigpCisg
ICAgIworCisKK2RlZiBoKCk6CisgICAgIworICAgIGcoKQorICAgICMKKworCitjbGFzcyBUZXN0
VHJhY2ViYWNrX2ZfZ19oKG9iamVjdCk6CisgICAgZGVmIHNldHVwX21ldGhvZChzZWxmLCBtZXRo
b2QpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBoKCkKKyAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3I6CisgICAgICAgICAgICBzZWxmLmV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlv
bkluZm8oKQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJpZXMoc2VsZik6CisgICAgICAg
IHRiID0gc2VsZi5leGNpbmZvLnRyYWNlYmFjaworICAgICAgICBlbnRyaWVzID0gbGlzdCh0YikK
KyAgICAgICAgYXNzZXJ0IGxlbih0YikgPT0gNCAgIyBtYXliZSBmcmFnaWxlIHRlc3QKKyAgICAg
ICAgYXNzZXJ0IGxlbihlbnRyaWVzKSA9PSA0ICAjIG1heWJlIGZyYWdpbGUgdGVzdAorICAgICAg
ICBuYW1lcyA9IFsnZicsICdnJywgJ2gnXQorICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBuYW1lcy5yZW1vdmUoZW50cnkuZnJh
bWUuY29kZS5uYW1lKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICBhc3NlcnQgbm90IG5hbWVzCisKKyAgICBkZWYgdGVzdF90cmFj
ZWJhY2tfZW50cnlfZ2V0c291cmNlKHNlbGYpOgorICAgICAgICB0YiA9IHNlbGYuZXhjaW5mby50
cmFjZWJhY2sKKyAgICAgICAgcyA9IHN0cih0YlstMV0uZ2V0c291cmNlKCkpCisgICAgICAgIGFz
c2VydCBzLnN0YXJ0c3dpdGgoImRlZiBmKCk6IikKKyAgICAgICAgYXNzZXJ0IHMuZW5kc3dpdGgo
InJhaXNlIFZhbHVlRXJyb3IiKQorCisgICAgQGFzdG9ubHkKKyAgICBAZmFpbHNvbmp5dGhvbgor
ICAgIGRlZiB0ZXN0X3RyYWNlYmFja19lbnRyeV9nZXRzb3VyY2VfaW5fY29uc3RydWN0KHNlbGYp
OgorICAgICAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiJcCisgICAgICAgICAg
ICBkZWYgeHl6KCk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yCisgICAgICAgICAgICAgICAgZXhjZXB0IHNvbWVub25hbWU6CisgICAg
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHh5eigpCisgICAgICAgICIiIikKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgZXhlYyhzb3VyY2UuY29tcGlsZSgpKQorICAgICAgICBl
eGNlcHQgTmFtZUVycm9yOgorICAgICAgICAgICAgdGIgPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlv
bkluZm8oKS50cmFjZWJhY2sKKyAgICAgICAgICAgIHByaW50KHRiWy0xXS5nZXRzb3VyY2UoKSkK
KyAgICAgICAgICAgIHMgPSBzdHIodGJbLTFdLmdldHNvdXJjZSgpKQorICAgICAgICAgICAgYXNz
ZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIHh5eigpOlxuICAgIHRyeToiKQorICAgICAgICAgICAgYXNz
ZXJ0IHMuc3RyaXAoKS5lbmRzd2l0aCgiZXhjZXB0IHNvbWVub25hbWU6IikKKworICAgIGRlZiB0
ZXN0X3RyYWNlYmFja19jdXQoc2VsZik6CisgICAgICAgIGNvID0gX3B5dGVzdC5fY29kZS5Db2Rl
KGYpCisgICAgICAgIHBhdGgsIGZpcnN0bGluZW5vID0gY28ucGF0aCwgY28uZmlyc3RsaW5lbm8K
KyAgICAgICAgdHJhY2ViYWNrID0gc2VsZi5leGNpbmZvLnRyYWNlYmFjaworICAgICAgICBuZXd0
cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9cGF0aCwgZmlyc3RsaW5lbm89Zmlyc3RsaW5l
bm8pCisgICAgICAgIGFzc2VydCBsZW4obmV3dHJhY2ViYWNrKSA9PSAxCisgICAgICAgIG5ld3Ry
YWNlYmFjayA9IHRyYWNlYmFjay5jdXQocGF0aD1wYXRoLCBsaW5lbm89Zmlyc3RsaW5lbm8gKyAy
KQorICAgICAgICBhc3NlcnQgbGVuKG5ld3RyYWNlYmFjaykgPT0gMQorCisgICAgZGVmIHRlc3Rf
dHJhY2ViYWNrX2N1dF9leGNsdWRlcGF0aChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiZGVmIGYoKTogcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIGV4
Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJwLnB5aW1wb3J0KCkuZigpIikKKyAg
ICAgICAgYmFzZWRpciA9IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkK
KyAgICAgICAgbmV3dHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suY3V0KGV4Y2x1ZGVwYXRo
PWJhc2VkaXIpCisgICAgICAgIGZvciB4IGluIG5ld3RyYWNlYmFjazoKKyAgICAgICAgICAgIGlm
IGhhc2F0dHIoeCwgJ3BhdGgnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHB5LnBhdGgu
bG9jYWwoeC5wYXRoKS5yZWx0byhiYXNlZGlyKQorICAgICAgICBhc3NlcnQgbmV3dHJhY2ViYWNr
Wy0xXS5mcmFtZS5jb2RlLnBhdGggPT0gcAorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2ZpbHRl
cihzZWxmKToKKyAgICAgICAgdHJhY2ViYWNrID0gc2VsZi5leGNpbmZvLnRyYWNlYmFjaworICAg
ICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIGFzc2VydCBsZW4o
bnRyYWNlYmFjaykgPT0gbGVuKHRyYWNlYmFjaykgLSAxCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ3RyYWNlYmFja2hpZGUsIG1hdGNoaW5nJywgWworICAgICAgICAobGFtYmRhIGlu
Zm86IFRydWUsIFRydWUpLAorICAgICAgICAobGFtYmRhIGluZm86IEZhbHNlLCBGYWxzZSksCisg
ICAgICAgIChvcGVyYXRvci5tZXRob2RjYWxsZXIoJ2VycmlzaW5zdGFuY2UnLCBWYWx1ZUVycm9y
KSwgVHJ1ZSksCisgICAgICAgIChvcGVyYXRvci5tZXRob2RjYWxsZXIoJ2VycmlzaW5zdGFuY2Un
LCBJbmRleEVycm9yKSwgRmFsc2UpLAorICAgIF0pCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2Zp
bHRlcl9zZWxlY3RpdmUoc2VsZiwgdHJhY2ViYWNraGlkZSwgbWF0Y2hpbmcpOgorICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgIworICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAg
ICAgICAgICAgIworCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICAjCisgICAgICAgICAg
ICBfX3RyYWNlYmFja2hpZGVfXyA9IHRyYWNlYmFja2hpZGUKKyAgICAgICAgICAgIGYoKQorICAg
ICAgICAgICAgIworCisgICAgICAgIGRlZiBoKCk6CisgICAgICAgICAgICAjCisgICAgICAgICAg
ICBnKCkKKyAgICAgICAgICAgICMKKworICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCBoKQorICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjaworICAg
ICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIHByaW50KCdvbGQ6
IHswIXJ9Jy5mb3JtYXQodHJhY2ViYWNrKSkKKyAgICAgICAgcHJpbnQoJ25ldzogezAhcn0nLmZv
cm1hdChudHJhY2ViYWNrKSkKKworICAgICAgICBpZiBtYXRjaGluZzoKKyAgICAgICAgICAgIGFz
c2VydCBsZW4obnRyYWNlYmFjaykgPT0gbGVuKHRyYWNlYmFjaykgLSAyCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAjIC0xIGJlY2F1c2Ugb2YgdGhlIF9fdHJhY2ViYWNraGlkZV9fIGluIHB5
dGVzdC5yYWlzZXMKKyAgICAgICAgICAgIGFzc2VydCBsZW4obnRyYWNlYmFjaykgPT0gbGVuKHRy
YWNlYmFjaykgLSAxCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfcmVjdXJzaW9uX2luZGV4KHNl
bGYpOgorICAgICAgICBkZWYgZihuKToKKyAgICAgICAgICAgIGlmIG4gPCAxMDoKKyAgICAgICAg
ICAgICAgICBuICs9IDEKKyAgICAgICAgICAgIGYobikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVz
dC5yYWlzZXMoUnVudGltZUVycm9yLCBmLCA4KQorICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZv
LnRyYWNlYmFjaworICAgICAgICByZWNpbmRleCA9IHRyYWNlYmFjay5yZWN1cnNpb25pbmRleCgp
CisgICAgICAgIGFzc2VydCByZWNpbmRleCA9PSAzCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tf
b25seV9zcGVjaWZpY19yZWN1cnNpb25fZXJyb3JzKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAg
ICAgZGVmIGYobik6CisgICAgICAgICAgICBpZiBuID09IDA6CisgICAgICAgICAgICAgICAgcmFp
c2UgUnVudGltZUVycm9yKCJoZWxsbyIpCisgICAgICAgICAgICBmKG4gLSAxKQorCisgICAgICAg
IGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgZiwgMTAwKQorICAgICAgICBt
b25rZXlwYXRjaC5kZWxhdHRyKGV4Y2luZm8udHJhY2ViYWNrLl9fY2xhc3NfXywgInJlY3Vyc2lv
bmluZGV4IikKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisgICAgICAgIGFzc2Vy
dCAiUnVudGltZUVycm9yOiBoZWxsbyIgaW4gc3RyKHJlcHIucmVwcmNyYXNoKQorCisgICAgZGVm
IHRlc3RfdHJhY2ViYWNrX25vX3JlY3Vyc2lvbl9pbmRleChzZWxmKToKKyAgICAgICAgZGVmIGRv
X3N0dWZmKCk6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKKworICAgICAgICBkZWYg
cmVyYWlzZV9tZSgpOgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgZXhjLCB2
YWwsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2Uo
ZXhjLCB2YWwsIHRiKQorCisgICAgICAgIGRlZiBmKG4pOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIGRvX3N0dWZmKCkKKyAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAg
ICAgICAgICAgICAgIHJlcmFpc2VfbWUoKQorCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFp
c2VzKFJ1bnRpbWVFcnJvciwgZiwgOCkKKyAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFj
ZWJhY2sKKyAgICAgICAgcmVjaW5kZXggPSB0cmFjZWJhY2sucmVjdXJzaW9uaW5kZXgoKQorICAg
ICAgICBhc3NlcnQgcmVjaW5kZXggaXMgTm9uZQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX21l
c3N5X3JlY3Vyc2lvbihzZWxmKToKKyAgICAgICAgIyBYWFg6IHNpbXBsaWZpZWQgbG9jYWxseSB0
ZXN0YWJsZSB2ZXJzaW9uCisgICAgICAgIGRlY29yYXRvciA9IHB5dGVzdC5pbXBvcnRvcnNraXAo
J2RlY29yYXRvcicpLmRlY29yYXRvcgorCisgICAgICAgIGRlZiBsb2coZiwgKmssICoqa3cpOgor
ICAgICAgICAgICAgcHJpbnQoJyVzICVzJyAlIChrLCBrdykpCisgICAgICAgICAgICBmKCprLCAq
Kmt3KQorICAgICAgICBsb2cgPSBkZWNvcmF0b3IobG9nKQorCisgICAgICAgIGRlZiBmYWlsKCk6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCcnKQorCisgICAgICAgIGZhaWwgPSBsb2co
bG9nKGZhaWwpKQorCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
IGZhaWwpCisgICAgICAgIGFzc2VydCBleGNpbmZvLnRyYWNlYmFjay5yZWN1cnNpb25pbmRleCgp
IGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19nZXRjcmFzaGVudHJ5KHNlbGYpOgor
ICAgICAgICBkZWYgaSgpOgorICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAgICAgZGVmIGgoKToKKyAgICAgICAg
ICAgIGkoKQorCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKKyAgICAgICAgICAgIGgoKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAg
ICBnKCkKKworICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmKQor
ICAgICAgICB0YiA9IGV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIGVudHJ5ID0gdGIuZ2V0Y3Jh
c2hlbnRyeSgpCisgICAgICAgIGNvID0gX3B5dGVzdC5fY29kZS5Db2RlKGgpCisgICAgICAgIGFz
c2VydCBlbnRyeS5mcmFtZS5jb2RlLnBhdGggPT0gY28ucGF0aAorICAgICAgICBhc3NlcnQgZW50
cnkubGluZW5vID09IGNvLmZpcnN0bGluZW5vICsgMQorICAgICAgICBhc3NlcnQgZW50cnkuZnJh
bWUuY29kZS5uYW1lID09ICdoJworCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2dldGNyYXNoZW50
cnlfZW1wdHkoc2VsZik6CisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBfX3RyYWNlYmFj
a2hpZGVfXyA9IFRydWUKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKworICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAg
ICBnKCkKKworICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmKQor
ICAgICAgICB0YiA9IGV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIGVudHJ5ID0gdGIuZ2V0Y3Jh
c2hlbnRyeSgpCisgICAgICAgIGNvID0gX3B5dGVzdC5fY29kZS5Db2RlKGcpCisgICAgICAgIGFz
c2VydCBlbnRyeS5mcmFtZS5jb2RlLnBhdGggPT0gY28ucGF0aAorICAgICAgICBhc3NlcnQgZW50
cnkubGluZW5vID09IGNvLmZpcnN0bGluZW5vICsgMgorICAgICAgICBhc3NlcnQgZW50cnkuZnJh
bWUuY29kZS5uYW1lID09ICdnJworCisKK2RlZiB0ZXN0X2V4Y2luZm9fZXhjb25seSgpOgorICAg
IGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisgICAgYXNzZXJ0IGV4Y2lu
Zm8uZXhjb25seSgpLnN0YXJ0c3dpdGgoJ1ZhbHVlRXJyb3InKQorICAgIGV4Y2luZm8gPSBweXRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhaXNl
IFZhbHVlRXJyb3IoJ2hlbGxvXFxud29ybGQnKSIpCisgICAgbXNnID0gZXhjaW5mby5leGNvbmx5
KHRyeXNob3J0PVRydWUpCisgICAgYXNzZXJ0IG1zZy5zdGFydHN3aXRoKCdWYWx1ZUVycm9yJykK
KyAgICBhc3NlcnQgbXNnLmVuZHN3aXRoKCJ3b3JsZCIpCisKKworZGVmIHRlc3RfZXhjaW5mb19y
ZXByKCk6CisgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgaCkKKyAgICBz
ID0gcmVwcihleGNpbmZvKQorICAgIGFzc2VydCBzID09ICI8RXhjZXB0aW9uSW5mbyBWYWx1ZUVy
cm9yIHRibGVuPTQ+IgorCisKK2RlZiB0ZXN0X2V4Y2luZm9fc3RyKCk6CisgICAgZXhjaW5mbyA9
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgaCkKKyAgICBzID0gc3RyKGV4Y2luZm8pCisgICAg
YXNzZXJ0IHMuc3RhcnRzd2l0aChfX2ZpbGVfX1s6LTldKSAgIyBweWMgZmlsZSBhbmQgJHB5LmNs
YXNzCisgICAgYXNzZXJ0IHMuZW5kc3dpdGgoIlZhbHVlRXJyb3IiKQorICAgIGFzc2VydCBsZW4o
cy5zcGxpdCgiOiIpKSA+PSAzICAjIG9uIHdpbmRvd3MgaXQncyA0CisKKworZGVmIHRlc3RfZXhj
aW5mb19lcnJpc2luc3RhbmNlKCk6CisgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVF
cnJvciwgaCkKKyAgICBhc3NlcnQgZXhjaW5mby5lcnJpc2luc3RhbmNlKFZhbHVlRXJyb3IpCisK
KworZGVmIHRlc3RfZXhjaW5mb19ub19zb3VyY2Vjb2RlKCk6CisgICAgdHJ5OgorICAgICAgICBl
eGVjKCJyYWlzZSBWYWx1ZUVycm9yKCkiKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAg
ICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBzID0gc3RyKGV4
Y2luZm8udHJhY2ViYWNrWy0xXSkKKyAgICBhc3NlcnQgcyA9PSAiICBGaWxlICc8c3RyaW5nPic6
MSBpbiA8bW9kdWxlPlxuICA/Pz9cbiIKKworCitkZWYgdGVzdF9leGNpbmZvX25vX3B5dGhvbl9z
b3VyY2Vjb2RlKHRtcGRpcik6CisgICAgIyBYWFg6IHNpbXBsaWZpZWQgbG9jYWxseSB0ZXN0YWJs
ZSB2ZXJzaW9uCisgICAgdG1wZGlyLmpvaW4oJ3Rlc3QudHh0Jykud3JpdGUoInt7IGgoKX19OiIp
CisKKyAgICBqaW5qYTIgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCdqaW5qYTInKQorICAgIGxvYWRl
ciA9IGppbmphMi5GaWxlU3lzdGVtTG9hZGVyKHN0cih0bXBkaXIpKQorICAgIGVudiA9IGppbmph
Mi5FbnZpcm9ubWVudChsb2FkZXI9bG9hZGVyKQorICAgIHRlbXBsYXRlID0gZW52LmdldF90ZW1w
bGF0ZSgndGVzdC50eHQnKQorICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUucmVuZGVyLCBoPWgpCisgICAg
Zm9yIGl0ZW0gaW4gZXhjaW5mby50cmFjZWJhY2s6CisgICAgICAgIHByaW50KGl0ZW0pICAjIFhY
WDogZm9yIHNvbWUgcmVhc29uIGppbmphLlRlbXBsYXRlLnJlbmRlciBpcyBwcmludGVkIGluIGZ1
bGwKKyAgICAgICAgaXRlbS5zb3VyY2UgICMgc2hvdWxkbnQgZmFpbAorICAgICAgICBpZiBpdGVt
LnBhdGguYmFzZW5hbWUgPT0gJ3Rlc3QudHh0JzoKKyAgICAgICAgICAgIGFzc2VydCBzdHIoaXRl
bS5zb3VyY2UpID09ICd7eyBoKCl9fTonCisKKworZGVmIHRlc3RfZW50cnlzb3VyY2VfUXVldWVf
ZXhhbXBsZSgpOgorICAgIHRyeToKKyAgICAgICAgcXVldWUuUXVldWUoKS5nZXQodGltZW91dD0w
LjAwMSkKKyAgICBleGNlcHQgcXVldWUuRW1wdHk6CisgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0
Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIGVudHJ5ID0gZXhjaW5mby50cmFjZWJhY2tbLTFd
CisgICAgc291cmNlID0gZW50cnkuZ2V0c291cmNlKCkKKyAgICBhc3NlcnQgc291cmNlIGlzIG5v
dCBOb25lCisgICAgcyA9IHN0cihzb3VyY2UpLnN0cmlwKCkKKyAgICBhc3NlcnQgcy5zdGFydHN3
aXRoKCJkZWYgZ2V0IikKKworCitkZWYgdGVzdF9jb2RlcGF0aF9RdWV1ZV9leGFtcGxlKCk6Cisg
ICAgdHJ5OgorICAgICAgICBxdWV1ZS5RdWV1ZSgpLmdldCh0aW1lb3V0PTAuMDAxKQorICAgIGV4
Y2VwdCBxdWV1ZS5FbXB0eToKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0
aW9uSW5mbygpCisgICAgZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAgICBwYXRoID0g
ZW50cnkucGF0aAorICAgIGFzc2VydCBpc2luc3RhbmNlKHBhdGgsIHB5LnBhdGgubG9jYWwpCisg
ICAgYXNzZXJ0IHBhdGguYmFzZW5hbWUubG93ZXIoKSA9PSAicXVldWUucHkiCisgICAgYXNzZXJ0
IHBhdGguY2hlY2soKQorCisKK2RlZiB0ZXN0X21hdGNoX3N1Y2NlZWRzKCk6CisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAwIC8v
IDAKKyAgICBleGNpbmZvLm1hdGNoKHInLip6ZXJvLionKQorCisKK2RlZiB0ZXN0X21hdGNoX3Jh
aXNlc19lcnJvcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3RfZGl2aXNpb25femVybygpOgorICAgICAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKSBhcyBleGNpbmZvOgor
ICAgICAgICAgICAgICAgIDAgLyAwCisgICAgICAgICAgICBleGNpbmZvLm1hdGNoKHInWzEyM10r
JykKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2Vy
dCByZXN1bHQucmV0ICE9IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAiKkFzc2VydGlvbkVycm9yKlBhdHRlcm4qWzEyM10qbm90IGZvdW5kKiIsCisgICAgXSkK
KworCitjbGFzcyBUZXN0Rm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgorCisgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgZGVmIGltcG9ydGFzbW9kKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBkZWYg
aW1wb3J0YXNtb2Qoc291cmNlKToKKyAgICAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUu
U291cmNlKHNvdXJjZSkKKyAgICAgICAgICAgIHRtcGRpciA9IHJlcXVlc3QuZ2V0Zml4dHVyZXZh
bHVlKCJ0bXBkaXIiKQorICAgICAgICAgICAgbW9kcGF0aCA9IHRtcGRpci5qb2luKCJtb2QucHki
KQorICAgICAgICAgICAgdG1wZGlyLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgICAgICAgICAg
bW9kcGF0aC53cml0ZShzb3VyY2UpCisgICAgICAgICAgICBpZiBpbnZhbGlkYXRlX2ltcG9ydF9j
YWNoZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaW52YWxpZGF0ZV9pbXBvcnRfY2Fj
aGVzKCkKKyAgICAgICAgICAgIHJldHVybiBtb2RwYXRoLnB5aW1wb3J0KCkKKyAgICAgICAgcmV0
dXJuIGltcG9ydGFzbW9kCisKKyAgICBkZWYgZXhjaW5mb19mcm9tX2V4ZWMoc2VsZiwgc291cmNl
KToKKyAgICAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2Uoc291cmNlKS5zdHJpcCgp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4ZWMoc291cmNlLmNvbXBpbGUoKSkKKyAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAg
ZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvKCkKKyAgICAgICAgYXNzZXJ0IDAsICJkaWQgbm90IHJhaXNlIgorCisgICAgZGVmIHRl
c3RfcmVwcl9zb3VyY2Uoc2VsZik6CisgICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygpCisg
ICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZGVm
IGYoeCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpLnN0cmlwKCkKKyAgICAg
ICAgcHIuZmxvd19tYXJrZXIgPSAifCIKKyAgICAgICAgbGluZXMgPSBwci5nZXRfc291cmNlKHNv
dXJjZSwgMCkKKyAgICAgICAgYXNzZXJ0IGxlbihsaW5lcykgPT0gMgorICAgICAgICBhc3NlcnQg
bGluZXNbMF0gPT0gInwgICBkZWYgZih4KToiCisgICAgICAgIGFzc2VydCBsaW5lc1sxXSA9PSAi
ICAgICAgICBwYXNzIgorCisgICAgZGVmIHRlc3RfcmVwcl9zb3VyY2VfZXhjaW5mbyhzZWxmKToK
KyAgICAgICAgIiIiIGNoZWNrIGlmIGluZGVudGF0aW9uIGlzIHJpZ2h0ICIiIgorICAgICAgICBw
ciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICBleGNpbmZvID0gc2VsZi5leGNpbmZvX2Zy
b21fZXhlYygiIiIKKyAgICAgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgMAorICAgICAgICAgICAgICAgIGYoKQorICAgICAgICAiIiIpCisgICAgICAgIHBy
ID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAgIHNvdXJjZSA9IHByLl9nZXRlbnRyeXNvdXJj
ZShleGNpbmZvLnRyYWNlYmFja1stMV0pCisgICAgICAgIGxpbmVzID0gcHIuZ2V0X3NvdXJjZShz
b3VyY2UsIDEsIGV4Y2luZm8pCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAgICAg
ICAnICAgIGRlZiBmKCk6JywKKyAgICAgICAgICAgICc+ICAgICAgIGFzc2VydCAwJywKKyAgICAg
ICAgICAgICdFICAgICAgIEFzc2VydGlvbkVycm9yJworICAgICAgICBdCisKKyAgICBkZWYgdGVz
dF9yZXByX3NvdXJjZV9ub3RfZXhpc3Rpbmcoc2VsZik6CisgICAgICAgIHByID0gRm9ybWF0dGVk
RXhjaW5mbygpCisgICAgICAgIGNvID0gY29tcGlsZSgicmFpc2UgVmFsdWVFcnJvcigpIiwgIiIs
ICJleGVjIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhlYyhjbykKKyAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNl
cHRpb25JbmZvKCkKKyAgICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAg
ICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBdID09
ICI+ICAgPz8/IgorICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgor
ICAgICAgICAgICAgYXNzZXJ0IHJlcHIuY2hhaW5bMF1bMF0ucmVwcmVudHJpZXNbMV0ubGluZXNb
MF0gPT0gIj4gICA/Pz8iCisKKyAgICBkZWYgdGVzdF9yZXByX21hbnlfbGluZV9zb3VyY2Vfbm90
X2V4aXN0aW5nKHNlbGYpOgorICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAg
ICBjbyA9IGNvbXBpbGUoIiIiCithID0gMQorcmFpc2UgVmFsdWVFcnJvcigpCisiIiIsICIiLCAi
ZXhlYyIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4ZWMoY28pCisgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0
aW9uSW5mbygpCisgICAgICAgIHJlcHIgPSBwci5yZXByX2V4Y2luZm8oZXhjaW5mbykKKyAgICAg
ICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllc1sxXS5saW5lc1swXSA9PSAi
PiAgID8/PyIKKyAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAg
ICAgICAgICAgIGFzc2VydCByZXByLmNoYWluWzBdWzBdLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBd
ID09ICI+ICAgPz8/IgorCisgICAgZGVmIHRlc3RfcmVwcl9zb3VyY2VfZmFpbGluZ19mdWxsc291
cmNlKHNlbGYpOgorICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorCisgICAgICAgIGNs
YXNzIEZha2VDb2RlKG9iamVjdCk6CisgICAgICAgICAgICBjbGFzcyByYXcob2JqZWN0KToKKyAg
ICAgICAgICAgICAgICBjb19maWxlbmFtZSA9ICc/JworCisgICAgICAgICAgICBwYXRoID0gJz8n
CisgICAgICAgICAgICBmaXJzdGxpbmVubyA9IDUKKworICAgICAgICAgICAgZGVmIGZ1bGxzb3Vy
Y2Uoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAgICAgZnVs
bHNvdXJjZSA9IHByb3BlcnR5KGZ1bGxzb3VyY2UpCisKKyAgICAgICAgY2xhc3MgRmFrZUZyYW1l
KG9iamVjdCk6CisgICAgICAgICAgICBjb2RlID0gRmFrZUNvZGUoKQorICAgICAgICAgICAgZl9s
b2NhbHMgPSB7fQorICAgICAgICAgICAgZl9nbG9iYWxzID0ge30KKworICAgICAgICBjbGFzcyBG
YWtlVHJhY2ViYWNrRW50cnkoX3B5dGVzdC5fY29kZS5UcmFjZWJhY2suRW50cnkpOgorICAgICAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRiLCBleGNpbmZvPU5vbmUpOgorICAgICAgICAgICAg
ICAgIHNlbGYubGluZW5vID0gNSArIDMKKworICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAg
ICAgICBkZWYgZnJhbWUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZha2VGcmFtZSgp
CisKKyAgICAgICAgY2xhc3MgVHJhY2ViYWNrKF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKToKKyAg
ICAgICAgICAgIEVudHJ5ID0gRmFrZVRyYWNlYmFja0VudHJ5CisKKyAgICAgICAgY2xhc3MgRmFr
ZUV4Y2luZm8oX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKToKKyAgICAgICAgICAgIHR5cGVu
YW1lID0gIkZvbyIKKyAgICAgICAgICAgIHZhbHVlID0gRXhjZXB0aW9uKCkKKworICAgICAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAg
ICAgZGVmIGV4Y29ubHkoc2VsZiwgdHJ5c2hvcnQpOgorICAgICAgICAgICAgICAgIHJldHVybiAi
RVhDIgorCisgICAgICAgICAgICBkZWYgZXJyaXNpbnN0YW5jZShzZWxmLCBjbHMpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGV4Y2luZm8gPSBGYWtlRXhjaW5mbygp
CisKKyAgICAgICAgY2xhc3MgRmFrZVJhd1RCKG9iamVjdCk6CisgICAgICAgICAgICB0Yl9uZXh0
ID0gTm9uZQorCisgICAgICAgIHRiID0gRmFrZVJhd1RCKCkKKyAgICAgICAgZXhjaW5mby50cmFj
ZWJhY2sgPSBUcmFjZWJhY2sodGIpCisKKyAgICAgICAgZmFpbCA9IElPRXJyb3IoKSAgIyBub3Fh
CisgICAgICAgIHJlcHIgPSBwci5yZXByX2V4Y2luZm8oZXhjaW5mbykKKyAgICAgICAgYXNzZXJ0
IHJlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllc1swXS5saW5lc1swXSA9PSAiPiAgID8/PyIK
KyAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAg
IGFzc2VydCByZXByLmNoYWluWzBdWzBdLnJlcHJlbnRyaWVzWzBdLmxpbmVzWzBdID09ICI+ICAg
Pz8/IgorCisgICAgICAgIGZhaWwgPSBweS5lcnJvci5FTk9FTlQgICMgbm9xYQorICAgICAgICBy
ZXByID0gcHIucmVwcl9leGNpbmZvKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCByZXByLnJlcHJ0
cmFjZWJhY2sucmVwcmVudHJpZXNbMF0ubGluZXNbMF0gPT0gIj4gICA/Pz8iCisgICAgICAgIGlm
IHB5LnN0ZC5zeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CisgICAgICAgICAgICBhc3NlcnQgcmVw
ci5jaGFpblswXVswXS5yZXByZW50cmllc1swXS5saW5lc1swXSA9PSAiPiAgID8/PyIKKworICAg
IGRlZiB0ZXN0X3JlcHJfbG9jYWwoc2VsZik6CisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZv
KHNob3dsb2NhbHM9VHJ1ZSkKKyAgICAgICAgbG9jID0geyd5JzogNSwgJ3onOiA3LCAneCc6IDMs
ICdAeCc6IDIsICdfX2J1aWx0aW5zX18nOiB7fX0KKyAgICAgICAgcmVwcmxvY2FscyA9IHAucmVw
cl9sb2NhbHMobG9jKQorICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lcworICAgICAgICBh
c3NlcnQgcmVwcmxvY2Fscy5saW5lc1swXSA9PSAnX19idWlsdGluc19fID0gPGJ1aWx0aW5zPicK
KyAgICAgICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXNbMV0gPT0gJ3ggICAgICAgICAgPSAzJwor
ICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lc1syXSA9PSAneSAgICAgICAgICA9IDUnCisg
ICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzWzNdID09ICd6ICAgICAgICAgID0gNycKKwor
ICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlfbGluZXMoc2VsZiwgaW1wb3J0YXNtb2Qp
OgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMSgp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKQorICAg
ICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1v
ZC5mdW5jMSkKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5m
aWx0ZXIoKQorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAgIHJlcHJ0YiA9
IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFjZWJhY2tbLTFdKQorCisgICAgICAg
ICMgdGVzdCBhcyBpbnRlcm1pdHRlbnQgZW50cnkKKyAgICAgICAgbGluZXMgPSByZXBydGIubGlu
ZXMKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcgICAgZGVmIGZ1bmMxKCk6JworICAgICAg
ICBhc3NlcnQgbGluZXNbMV0gPT0gJz4gICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaGVsbG9cXG53
b3JsZCIpJworCisgICAgICAgICMgdGVzdCBhcyBsYXN0IGVudHJ5CisgICAgICAgIHAgPSBGb3Jt
YXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9VHJ1ZSkKKyAgICAgICAgcmVwcl9lbnRyeSA9IHAucmVw
cl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAg
ICBsaW5lcyA9IHJlcHJfZW50cnkubGluZXMKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcg
ICAgZGVmIGZ1bmMxKCk6JworICAgICAgICBhc3NlcnQgbGluZXNbMV0gPT0gJz4gICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiaGVsbG9cXG53b3JsZCIpJworICAgICAgICBhc3NlcnQgbGluZXNbMl0g
PT0gJ0UgICAgICAgVmFsdWVFcnJvcjogaGVsbG8nCisgICAgICAgIGFzc2VydCBsaW5lc1szXSA9
PSAnRSAgICAgICB3b3JsZCcKKyAgICAgICAgYXNzZXJ0IG5vdCBsaW5lc1s0Ol0KKworICAgICAg
ICBsb2MgPSByZXByX2VudHJ5LnJlcHJsb2NhbHMgaXMgbm90IE5vbmUKKyAgICAgICAgbG9jID0g
cmVwcl9lbnRyeS5yZXByZmlsZWxvYworICAgICAgICBhc3NlcnQgbG9jLnBhdGggPT0gbW9kLl9f
ZmlsZV9fCisgICAgICAgIGFzc2VydCBsb2MubGluZW5vID09IDMKKyAgICAgICAgIyBhc3NlcnQg
bG9jLm1lc3NhZ2UgPT0gIlZhbHVlRXJyb3I6IGhlbGxvIgorCisgICAgZGVmIHRlc3RfcmVwcl90
cmFjZWJhY2tlbnRyeV9saW5lczIoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBp
bXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMShtLCB4LCB5LCB6KToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xcbndvcmxkIikKKyAgICAgICAgIiIi
KQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZnVuYzEs
ICJtIiAqIDkwLCA1LCAxMywgInoiICogMTIwKQorICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9
IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIGVudHJ5ID0gZXhjaW5mby50cmFj
ZWJhY2tbLTFdCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKGZ1bmNhcmdzPVRydWUpCisg
ICAgICAgIHJlcHJmdW5jYXJncyA9IHAucmVwcl9hcmdzKGVudHJ5KQorICAgICAgICBhc3NlcnQg
cmVwcmZ1bmNhcmdzLmFyZ3NbMF0gPT0gKCdtJywgcmVwcigibSIgKiA5MCkpCisgICAgICAgIGFz
c2VydCByZXByZnVuY2FyZ3MuYXJnc1sxXSA9PSAoJ3gnLCAnNScpCisgICAgICAgIGFzc2VydCBy
ZXByZnVuY2FyZ3MuYXJnc1syXSA9PSAoJ3knLCAnMTMnKQorICAgICAgICBhc3NlcnQgcmVwcmZ1
bmNhcmdzLmFyZ3NbM10gPT0gKCd6JywgcmVwcigieiIgKiAxMjApKQorCisgICAgICAgIHAgPSBG
b3JtYXR0ZWRFeGNpbmZvKGZ1bmNhcmdzPVRydWUpCisgICAgICAgIHJlcHJfZW50cnkgPSBwLnJl
cHJfdHJhY2ViYWNrX2VudHJ5KGVudHJ5KQorICAgICAgICBhc3NlcnQgcmVwcl9lbnRyeS5yZXBy
ZnVuY2FyZ3MuYXJncyA9PSByZXByZnVuY2FyZ3MuYXJncworICAgICAgICB0dyA9IFRXTW9jaygp
CisgICAgICAgIHJlcHJfZW50cnkudG90ZXJtaW5hbCh0dykKKyAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzBdID09ICJtID0gIiArIHJlcHIoJ20nICogOTApCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1sxXSA9PSAieCA9IDUsIHkgPSAxMyIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICJ6
ID0gIiArIHJlcHIoJ3onICogMTIwKQorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tlbnRy
eV9saW5lc192YXJfa3dfYXJncyhzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGlt
cG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKHgsICp5LCAqKnopOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKQorICAgICAgICAiIiIp
CisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mdW5jMSwg
J2EnLCAnYicsIGM9J2QnKQorICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IGV4Y2luZm8udHJh
Y2ViYWNrLmZpbHRlcigpCisgICAgICAgIGVudHJ5ID0gZXhjaW5mby50cmFjZWJhY2tbLTFdCisg
ICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKGZ1bmNhcmdzPVRydWUpCisgICAgICAgIHJlcHJm
dW5jYXJncyA9IHAucmVwcl9hcmdzKGVudHJ5KQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNhcmdz
LmFyZ3NbMF0gPT0gKCd4JywgcmVwcignYScpKQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNhcmdz
LmFyZ3NbMV0gPT0gKCd5JywgcmVwcigoJ2InLCkpKQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNh
cmdzLmFyZ3NbMl0gPT0gKCd6JywgcmVwcih7J2MnOiAnZCd9KSkKKworICAgICAgICBwID0gRm9y
bWF0dGVkRXhjaW5mbyhmdW5jYXJncz1UcnVlKQorICAgICAgICByZXByX2VudHJ5ID0gcC5yZXBy
X3RyYWNlYmFja19lbnRyeShlbnRyeSkKKyAgICAgICAgYXNzZXJ0IHJlcHJfZW50cnkucmVwcmZ1
bmNhcmdzLmFyZ3MgPT0gcmVwcmZ1bmNhcmdzLmFyZ3MKKyAgICAgICAgdHcgPSBUV01vY2soKQor
ICAgICAgICByZXByX2VudHJ5LnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1swXSA9PSAieCA9ICdhJywgeSA9ICgnYicsKSwgeiA9IHsnYyc6ICdkJ30iCisKKyAgICBkZWYg
dGVzdF9yZXByX3RyYWNlYmFja2VudHJ5X3Nob3J0KHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAg
ICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZnVuYzEoKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpCisgICAgICAgICAgICBkZWYgZW50
cnkoKToKKyAgICAgICAgICAgICAgICBmdW5jMSgpCisgICAgICAgICIiIikKKyAgICAgICAgZXhj
aW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5KQorICAgICAgICBwID0g
Rm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAgICAgICByZXBydGIgPSBwLnJlcHJf
dHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0yXSkKKyAgICAgICAgbGluZXMgPSBy
ZXBydGIubGluZXMKKyAgICAgICAgYmFzZW5hbWUgPSBweS5wYXRoLmxvY2FsKG1vZC5fX2ZpbGVf
XykuYmFzZW5hbWUKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcgICAgZnVuYzEoKScKKyAg
ICAgICAgYXNzZXJ0IGJhc2VuYW1lIGluIHN0cihyZXBydGIucmVwcmZpbGVsb2MucGF0aCkKKyAg
ICAgICAgYXNzZXJ0IHJlcHJ0Yi5yZXByZmlsZWxvYy5saW5lbm8gPT0gNQorCisgICAgICAgICMg
dGVzdCBsYXN0IGVudHJ5CisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJzaG9y
dCIpCisgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFj
ZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsaW5lcyA9IHJlcHJ0Yi5saW5lcworICAgICAg
ICBhc3NlcnQgbGluZXNbMF0gPT0gJyAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpJworICAg
ICAgICBhc3NlcnQgbGluZXNbMV0gPT0gJ0UgICBWYWx1ZUVycm9yOiBoZWxsbycKKyAgICAgICAg
YXNzZXJ0IGJhc2VuYW1lIGluIHN0cihyZXBydGIucmVwcmZpbGVsb2MucGF0aCkKKyAgICAgICAg
YXNzZXJ0IHJlcHJ0Yi5yZXByZmlsZWxvYy5saW5lbm8gPT0gMworCisgICAgZGVmIHRlc3RfcmVw
cl90cmFjZWJhY2tlbnRyeV9ubyhzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGlt
cG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiaGVsbG8iKQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAg
ICAgICAgICAgICAgZnVuYzEoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5lbnRyeSkKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4
Y2luZm8oc3R5bGU9Im5vIikKKyAgICAgICAgcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZv
LnRyYWNlYmFja1stMl0pCisKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9Im5v
IikKKyAgICAgICAgcmVwcmVudHJ5ID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRy
YWNlYmFja1stMV0sIGV4Y2luZm8pCisgICAgICAgIGxpbmVzID0gcmVwcmVudHJ5LmxpbmVzCisg
ICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAnRSAgIFZhbHVlRXJyb3I6IGhlbGxvJworICAgICAg
ICBhc3NlcnQgbm90IGxpbmVzWzE6XQorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfdGJm
aWx0ZXIoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIK
KyAgICAgICAgICAgIGRlZiBmKHgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
eCkKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAgICAgICAgICAgIGYoMCkKKyAgICAg
ICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2Qu
ZW50cnkpCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHRiZmlsdGVyPVRydWUpCisgICAg
ICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2soZXhjaW5mbykKKyAgICAgICAgYXNzZXJ0IGxl
bihyZXBydGIucmVwcmVudHJpZXMpID09IDIKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8o
dGJmaWx0ZXI9RmFsc2UpCisgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2soZXhjaW5m
bykKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBydGIucmVwcmVudHJpZXMpID09IDMKKworICAgIGRl
ZiB0ZXN0X3RyYWNlYmFja19zaG9ydF9ub19zb3VyY2Uoc2VsZiwgaW1wb3J0YXNtb2QsIG1vbmtl
eXBhdGNoKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYg
ZnVuYzEoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpCisgICAg
ICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICBmdW5jMSgpCisgICAgICAgICIi
IikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5
KQorICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgQ29kZQorICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKENvZGUsICdwYXRoJywgJ2JvZ3VzJykKKyAgICAgICAgZXhjaW5m
by50cmFjZWJhY2tbMF0uZnJhbWUuY29kZS5wYXRoID0gImJvZ3VzIgorICAgICAgICBwID0gRm9y
bWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJh
Y2ViYWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0yXSkKKyAgICAgICAgbGluZXMgPSByZXBy
dGIubGluZXMKKyAgICAgICAgbGFzdF9wID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQi
KQorICAgICAgICBsYXN0X3JlcHJ0YiA9IGxhc3RfcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNp
bmZvLnRyYWNlYmFja1stMV0sIGV4Y2luZm8pCisgICAgICAgIGxhc3RfbGluZXMgPSBsYXN0X3Jl
cHJ0Yi5saW5lcworICAgICAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICAgICAgYXNzZXJ0IGxp
bmVzWzBdID09ICcgICAgZnVuYzEoKScKKworICAgICAgICBhc3NlcnQgbGFzdF9saW5lc1swXSA9
PSAnICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIiknCisgICAgICAgIGFzc2VydCBsYXN0X2xp
bmVzWzFdID09ICdFICAgVmFsdWVFcnJvcjogaGVsbG8nCisKKyAgICBkZWYgdGVzdF9yZXByX3Ry
YWNlYmFja19hbmRfZXhjaW5mbyhzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGlt
cG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcih4KQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAg
ICAgZigwKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIG1vZC5lbnRyeSkKKworICAgICAgICBmb3Igc3R5bGUgaW4gKCJsb25nIiwgInNo
b3J0Iik6CisgICAgICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT1zdHlsZSkKKyAg
ICAgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2soZXhjaW5mbykKKyAgICAgICAgICAg
IGFzc2VydCBsZW4ocmVwcnRiLnJlcHJlbnRyaWVzKSA9PSAyCisgICAgICAgICAgICBhc3NlcnQg
cmVwcnRiLnN0eWxlID09IHN0eWxlCisgICAgICAgICAgICBhc3NlcnQgbm90IHJlcHJ0Yi5leHRy
YWxpbmUKKyAgICAgICAgICAgIHJlcHIgPSBwLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAgICAg
ICAgICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjaworICAgICAgICAgICAgYXNzZXJ0IGxlbihy
ZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXMpID09IGxlbihyZXBydGIucmVwcmVudHJpZXMp
CisgICAgICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgorICAgICAg
ICAgICAgICAgIGFzc2VydCByZXByLmNoYWluWzBdWzBdCisgICAgICAgICAgICAgICAgYXNzZXJ0
IGxlbihyZXByLmNoYWluWzBdWzBdLnJlcHJlbnRyaWVzKSA9PSBsZW4ocmVwcnRiLnJlcHJlbnRy
aWVzKQorICAgICAgICAgICAgYXNzZXJ0IHJlcHIucmVwcmNyYXNoLnBhdGguZW5kc3dpdGgoIm1v
ZC5weSIpCisgICAgICAgICAgICBhc3NlcnQgcmVwci5yZXByY3Jhc2gubWVzc2FnZSA9PSAiVmFs
dWVFcnJvcjogMCIKKworICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrX3dpdGhfaW52YWxpZF9j
d2Qoc2VsZiwgaW1wb3J0YXNtb2QsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9kID0gaW1wb3J0
YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICBm
KDApCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVF
cnJvciwgbW9kLmVudHJ5KQorCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKworICAg
ICAgICBkZWYgcmFpc2VvcygpOgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigyKQorCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIocHkuc3RkLm9zLCAnZ2V0Y3dkJywgcmFpc2VvcykKKyAg
ICAgICAgYXNzZXJ0IHAuX21ha2VwYXRoKF9fZmlsZV9fKSA9PSBfX2ZpbGVfXworICAgICAgICBw
LnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCisKKyAgICBkZWYgdGVzdF9yZXByX2V4Y2luZm9fYWRk
b3V0ZXJyKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIi
CisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIoKQorICAg
ICAgICByZXByLmFkZHNlY3Rpb24oInRpdGxlIiwgImNvbnRlbnQiKQorICAgICAgICB0d21vY2sg
PSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHdtb2NrKQorICAgICAgICBhc3Nl
cnQgdHdtb2NrLmxpbmVzWy0xXSA9PSAiY29udGVudCIKKyAgICAgICAgYXNzZXJ0IHR3bW9jay5s
aW5lc1stMl0gPT0gKCItIiwgInRpdGxlIikKKworICAgIGRlZiB0ZXN0X3JlcHJfZXhjaW5mb19y
ZXByY3Jhc2goc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgi
IiIKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIG1vZC5lbnRyeSkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisg
ICAgICAgIGFzc2VydCByZXByLnJlcHJjcmFzaC5wYXRoLmVuZHN3aXRoKCJtb2QucHkiKQorICAg
ICAgICBhc3NlcnQgcmVwci5yZXByY3Jhc2gubGluZW5vID09IDMKKyAgICAgICAgYXNzZXJ0IHJl
cHIucmVwcmNyYXNoLm1lc3NhZ2UgPT0gIlZhbHVlRXJyb3IiCisgICAgICAgIGFzc2VydCBzdHIo
cmVwci5yZXByY3Jhc2gpLmVuZHN3aXRoKCJtb2QucHk6MzogVmFsdWVFcnJvciIpCisKKyAgICBk
ZWYgdGVzdF9yZXByX3RyYWNlYmFja19yZWN1cnNpb24oc2VsZiwgaW1wb3J0YXNtb2QpOgorICAg
ICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiByZWMyKHgpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZWMxKHgrMSkKKyAgICAgICAgICAgIGRlZiByZWMxKHgpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZWMyKHgtMSkKKyAgICAgICAgICAgIGRlZiBlbnRyeSgp
OgorICAgICAgICAgICAgICAgIHJlYzEoNDIpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMoUnVudGltZUVycm9yLCBtb2QuZW50cnkpCisKKyAgICAgICAgZm9y
IHN0eWxlIGluICgic2hvcnQiLCAibG9uZyIsICJubyIpOgorICAgICAgICAgICAgcCA9IEZvcm1h
dHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAgICAgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90
cmFjZWJhY2soZXhjaW5mbykKKyAgICAgICAgICAgIGFzc2VydCByZXBydGIuZXh0cmFsaW5lID09
ICIhISEgUmVjdXJzaW9uIGRldGVjdGVkIChzYW1lIGxvY2FscyAmIHBvc2l0aW9uKSIKKyAgICAg
ICAgICAgIGFzc2VydCBzdHIocmVwcnRiKQorCisgICAgZGVmIHRlc3RfcmVwcmV4Y2luZm9fZ2V0
cmVwcihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgor
ICAgICAgICAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4
KQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgZigwKQorICAgICAg
ICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5l
bnRyeSkKKworICAgICAgICBmb3Igc3R5bGUgaW4gKCJzaG9ydCIsICJsb25nIiwgIm5vIik6Cisg
ICAgICAgICAgICBmb3Igc2hvd2xvY2FscyBpbiAoVHJ1ZSwgRmFsc2UpOgorICAgICAgICAgICAg
ICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9c3R5bGUsIHNob3dsb2NhbHM9c2hvd2xv
Y2FscykKKyAgICAgICAgICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mb1swXSA8IDM6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHJlcHIsIFJlcHJFeGNlcHRp
b25JbmZvKQorICAgICAgICAgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2suc3R5bGUg
PT0gc3R5bGUKKyAgICAgICAgICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mb1swXSA+
PSAzOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXByLCBFeGNlcHRp
b25DaGFpblJlcHIpCisgICAgICAgICAgICAgICAgICAgIGZvciByZXByIGluIHJlcHIuY2hhaW46
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcmVwclswXS5zdHlsZSA9PSBzdHlsZQor
CisgICAgZGVmIHRlc3RfcmVwcmV4Y2luZm9fdW5pY29kZShzZWxmKToKKyAgICAgICAgZnJvbSBf
cHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgorCisgICAgICAgIGNsYXNzIE15
UmVwcihUZXJtaW5hbFJlcHIpOgorICAgICAgICAgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcp
OgorICAgICAgICAgICAgICAgIHR3LmxpbmUocHkuYnVpbHRpbi5fdG90ZXh0KCLRjyIsICJ1dGYt
OCIpKQorCisgICAgICAgIHggPSBweS5idWlsdGluLl90b3RleHQoTXlSZXByKCkpCisgICAgICAg
IGFzc2VydCB4ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKQorCisgICAgZGVm
IHRlc3RfdG90ZXJtaW5hbF9sb25nKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0g
aW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZyh4KToKKyAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAg
IGcoMykKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yLCBtb2QuZikKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNl
YmFjay5maWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKCkKKyAgICAgICAg
dHcgPSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2Vy
dCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5lcy5wb3AoMCkKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzBdID09ICIgICAgZGVmIGYoKToiCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1sxXSA9PSAiPiAgICAgICBnKDMpIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMl0gPT0gIiIK
KyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMykKKyAgICAgICAgYXNzZXJ0IGxpbmUu
ZW5kc3dpdGgoIm1vZC5weSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0XSA9PSAoIjo1OiAi
KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gKCJfICIsIE5vbmUpCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1s2XSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiAg
ICBkZWYgZyh4KToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s4XSA9PSAiPiAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKHgpIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbOV0gPT0gIkUgICAgICAg
VmFsdWVFcnJvcjogMyIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzEwXSA9PSAiIgorICAgICAg
ICBsaW5lID0gdHcuZ2V0X3dyaXRlX21zZygxMSkKKyAgICAgICAgYXNzZXJ0IGxpbmUuZW5kc3dp
dGgoIm1vZC5weSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxMl0gPT0gIjozOiBWYWx1ZUVy
cm9yIgorCisgICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25nX21pc3Npbmdfc291cmNlKHNlbGYs
IGltcG9ydGFzbW9kLCB0bXBkaXIpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAg
ICAgICAgICAgIGRlZiBnKHgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkK
KyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygzKQorICAgICAgICAiIiIp
CisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mKQorICAg
ICAgICB0bXBkaXIuam9pbignbW9kLnB5JykucmVtb3ZlKCkKKyAgICAgICAgZXhjaW5mby50cmFj
ZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5m
by5nZXRyZXByKCkKKyAgICAgICAgdHcgPSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWlu
YWwodHcpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5l
cy5wb3AoMCkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICI+ICAgPz8/IgorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9t
c2coMikKKyAgICAgICAgYXNzZXJ0IGxpbmUuZW5kc3dpdGgoIm1vZC5weSIpCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1szXSA9PSAiOjU6ICIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09
ICgiXyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gIiIKKyAgICAgICAg
YXNzZXJ0IHR3LmxpbmVzWzZdID09ICI+ICAgPz8/IgorICAgICAgICBhc3NlcnQgdHcubGluZXNb
N10gPT0gIkUgICBWYWx1ZUVycm9yOiAzIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbOF0gPT0g
IiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coOSkKKyAgICAgICAgYXNzZXJ0IGxp
bmUuZW5kc3dpdGgoIm1vZC5weSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxMF0gPT0gIjoz
OiBWYWx1ZUVycm9yIgorCisgICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25nX2luY29tcGxldGVf
c291cmNlKHNlbGYsIGltcG9ydGFzbW9kLCB0bXBkaXIpOgorICAgICAgICBtb2QgPSBpbXBvcnRh
c21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBnKHgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygzKQor
ICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
IG1vZC5mKQorICAgICAgICB0bXBkaXIuam9pbignbW9kLnB5Jykud3JpdGUoJ2FzZGYnKQorICAg
ICAgICBleGNpbmZvLnRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigpCisgICAg
ICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAg
ICAgIHJlcHIudG90ZXJtaW5hbCh0dykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICIi
CisgICAgICAgIHR3LmxpbmVzLnBvcCgwKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0g
Ij4gICA/Pz8iCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxXSA9PSAiIgorICAgICAgICBsaW5l
ID0gdHcuZ2V0X3dyaXRlX21zZygyKQorICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgibW9k
LnB5IikKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzNdID09ICI6NTogIgorICAgICAgICBhc3Nl
cnQgdHcubGluZXNbNF0gPT0gKCJfICIsIE5vbmUpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s1
XSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIj4gICA/Pz8iCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1s3XSA9PSAiRSAgIFZhbHVlRXJyb3I6IDMiCisgICAgICAgIGFzc2Vy
dCB0dy5saW5lc1s4XSA9PSAiIgorICAgICAgICBsaW5lID0gdHcuZ2V0X3dyaXRlX21zZyg5KQor
ICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgibW9kLnB5IikKKyAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzEwXSA9PSAiOjM6IFZhbHVlRXJyb3IiCisKKyAgICBkZWYgdGVzdF90b3Rlcm1pbmFs
X2xvbmdfZmlsZW5hbWVzKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0
YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IsIG1vZC5mKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHBhdGgg
PSBweS5wYXRoLmxvY2FsKG1vZC5fX2ZpbGVfXykKKyAgICAgICAgb2xkID0gcGF0aC5kaXJwYXRo
KCkuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXByID0gZXhjaW5mby5nZXRy
ZXByKGFic3BhdGg9RmFsc2UpCisgICAgICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAg
ICAgICAgICB4ID0gcHkucGF0aC5sb2NhbCgpLmJlc3RyZWxwYXRoKHBhdGgpCisgICAgICAgICAg
ICBpZiBsZW4oeCkgPCBsZW4oc3RyKHBhdGgpKToKKyAgICAgICAgICAgICAgICBtc2cgPSB0dy5n
ZXRfd3JpdGVfbXNnKC0yKQorICAgICAgICAgICAgICAgIGFzc2VydCBtc2cgPT0gIm1vZC5weSIK
KyAgICAgICAgICAgICAgICBhc3NlcnQgdHcubGluZXNbLTFdID09ICI6MzogVmFsdWVFcnJvciIK
KworICAgICAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcihhYnNwYXRoPVRydWUpCisgICAg
ICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgICAgICBtc2cgPSB0dy5nZXRfd3Jp
dGVfbXNnKC0yKQorICAgICAgICAgICAgYXNzZXJ0IG1zZyA9PSBwYXRoCisgICAgICAgICAgICBs
aW5lID0gdHcubGluZXNbLTFdCisgICAgICAgICAgICBhc3NlcnQgbGluZSA9PSAiOjM6IFZhbHVl
RXJyb3IiCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvbGQuY2hkaXIoKQorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdyZXByb3B0aW9ucycsIFsKKyAgICAgICAgeydzdHls
ZSc6IHN0eWxlLCAnc2hvd2xvY2Fscyc6IHNob3dsb2NhbHMsCisgICAgICAgICAnZnVuY2FyZ3Mn
OiBmdW5jYXJncywgJ3RiZmlsdGVyJzogdGJmaWx0ZXIKKyAgICAgICAgIH0gZm9yIHN0eWxlIGlu
ICgibG9uZyIsICJzaG9ydCIsICJubyIpCisgICAgICAgIGZvciBzaG93bG9jYWxzIGluIChUcnVl
LCBGYWxzZSkKKyAgICAgICAgZm9yIHRiZmlsdGVyIGluIChUcnVlLCBGYWxzZSkKKyAgICAgICAg
Zm9yIGZ1bmNhcmdzIGluIChUcnVlLCBGYWxzZSldKQorICAgIGRlZiB0ZXN0X2Zvcm1hdF9leGNp
bmZvKHNlbGYsIGltcG9ydGFzbW9kLCByZXByb3B0aW9ucyk6CisgICAgICAgIG1vZCA9IGltcG9y
dGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGcoeCk6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcih4KQorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICBnKDMp
CisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgbW9kLmYpCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1
ZSkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigqKnJlcHJvcHRpb25zKQorICAgICAg
ICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2VydCB0dy5zdHJpbmdpby5nZXR2YWx1
ZSgpCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfcmVwcl9zdHlsZShzZWxmLCBpbXBvcnRhc21v
ZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGYoKToK
KyAgICAgICAgICAgICAgICBnKCkKKyAgICAgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICAg
ICAgaCgpCisgICAgICAgICAgICBkZWYgaCgpOgorICAgICAgICAgICAgICAgIGkoKQorICAgICAg
ICAgICAgZGVmIGkoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAg
ICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2Qu
ZikKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIo
KQorICAgICAgICBleGNpbmZvLnRyYWNlYmFja1sxXS5zZXRfcmVwcl9zdHlsZSgic2hvcnQiKQor
ICAgICAgICBleGNpbmZvLnRyYWNlYmFja1syXS5zZXRfcmVwcl9zdHlsZSgic2hvcnQiKQorICAg
ICAgICByID0gZXhjaW5mby5nZXRyZXByKHN0eWxlPSJsb25nIikKKyAgICAgICAgdHcgPSBUV01v
Y2soKQorICAgICAgICByLnRvdGVybWluYWwodHcpCisgICAgICAgIGZvciBsaW5lIGluIHR3Lmxp
bmVzOgorICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBd
ID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxXSA9PSAiICAgIGRlZiBmKCk6IgorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbMl0gPT0gIj4gICAgICAgZygpIgorICAgICAgICBhc3NlcnQg
dHcubGluZXNbM10gPT0gIiIKKyAgICAgICAgbXNnID0gdHcuZ2V0X3dyaXRlX21zZyg0KQorICAg
ICAgICBhc3NlcnQgbXNnLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbNV0gPT0gIjozOiAiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s2XSA9PSAoIl8gIiwgTm9u
ZSkKKyAgICAgICAgdHcuZ2V0X3dyaXRlX21zZyg3KQorICAgICAgICBhc3NlcnQgdHcubGluZXNb
OF0uZW5kc3dpdGgoImluIGciKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbOV0gPT0gIiAgICBo
KCkiCisgICAgICAgIHR3LmdldF93cml0ZV9tc2coMTApCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1sxMV0uZW5kc3dpdGgoImluIGgiKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTJdID09ICIg
ICAgaSgpIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTNdID09ICgiXyAiLCBOb25lKQorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbMTRdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sx
NV0gPT0gIiAgICBkZWYgaSgpOiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE2XSA9PSAiPiAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCkiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxN10gPT0g
IkUgICAgICAgVmFsdWVFcnJvciIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE4XSA9PSAiIgor
ICAgICAgICBtc2cgPSB0dy5nZXRfd3JpdGVfbXNnKDE5KQorICAgICAgICBtc2cuZW5kc3dpdGgo
Im1vZC5weSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syMF0gPT0gIjo5OiBWYWx1ZUVycm9y
IgorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1swXSA8IDMiKQor
ICAgIGRlZiB0ZXN0X2V4Y19jaGFpbl9yZXByKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAg
bW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBjbGFzcyBFcnIoRXhjZXB0aW9uKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZygpCisgICAgICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFcnIoKSBmcm9tIGUK
KyAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICBoKCkKKyAgICAg
ICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAg
ICAgICAgICAgIGRlZiBoKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3Io
KQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yLCBtb2QuZikKKyAgICAgICAgciA9IGV4Y2luZm8uZ2V0cmVwcihzdHlsZT0ibG9uZyIp
CisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgci50b3Rlcm1pbmFsKHR3KQorICAgICAg
ICBmb3IgbGluZSBpbiB0dy5saW5lczoKKyAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0g
IiAgICBkZWYgZigpOiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICIgICAgICAgIHRy
eToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szXSA9PSAiPiAgICAgICAgICAgZygpIgorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbNF0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0
ZV9tc2coNSkKKyAgICAgICAgYXNzZXJ0IGxpbmUuZW5kc3dpdGgoJ21vZC5weScpCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1s2XSA9PSAnOjY6ICcKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzdd
ID09ICgiXyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbOF0gPT0gIiIKKyAgICAg
ICAgYXNzZXJ0IHR3LmxpbmVzWzldID09ICIgICAgZGVmIGcoKToiCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1sxMF0gPT0gIj4gICAgICAgcmFpc2UgVmFsdWVFcnJvcigpIgorICAgICAgICBhc3Nl
cnQgdHcubGluZXNbMTFdID09ICJFICAgICAgIFZhbHVlRXJyb3IiCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1sxMl0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMTMpCisg
ICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKCdtb2QucHknKQorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbMTRdID09ICc6MTI6IFZhbHVlRXJyb3InCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sx
NV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE2XSA9PSAiVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoiCisg
ICAgICAgIGFzc2VydCB0dy5saW5lc1sxN10gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVz
WzE4XSA9PSAiICAgIGRlZiBmKCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTldID09ICIg
ICAgICAgIHRyeToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syMF0gPT0gIiAgICAgICAgICAg
IGcoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzIxXSA9PSAiICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMjJdID09ICI+ICAgICAgICAg
ICByYWlzZSBFcnIoKSBmcm9tIGUiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syM10gPT0gIkUg
ICAgICAgICAgIHRlc3RfZXhjX2NoYWluX3JlcHIwLm1vZC5FcnIiCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1syNF0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMjUpCisg
ICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKCdtb2QucHknKQorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbMjZdID09ICI6ODogRXJyIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMjddID09ICIi
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1syOF0gPT0gIkR1cmluZyBoYW5kbGluZyBvZiB0aGUg
YWJvdmUgZXhjZXB0aW9uLCBhbm90aGVyIGV4Y2VwdGlvbiBvY2N1cnJlZDoiCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1syOV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzMwXSA9PSAi
ICAgIGRlZiBmKCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMzFdID09ICIgICAgICAgIHRy
eToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szMl0gPT0gIiAgICAgICAgICAgIGcoKSIKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzMzXSA9PSAiICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGU6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMzRdID09ICIgICAgICAgICAgICByYWlzZSBF
cnIoKSBmcm9tIGUiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szNV0gPT0gIiAgICAgICAgZmlu
YWxseToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szNl0gPT0gIj4gICAgICAgICAgIGgoKSIK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzM3XSA9PSAiIgorICAgICAgICBsaW5lID0gdHcuZ2V0
X3dyaXRlX21zZygzOCkKKyAgICAgICAgYXNzZXJ0IGxpbmUuZW5kc3dpdGgoJ21vZC5weScpCisg
ICAgICAgIGFzc2VydCB0dy5saW5lc1szOV0gPT0gIjoxMDogIgorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbNDBdID09ICgnXyAnLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNDFdID09
ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0Ml0gPT0gIiAgICBkZWYgaCgpOiIKKyAgICAg
ICAgYXNzZXJ0IHR3LmxpbmVzWzQzXSA9PSAiPiAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigp
IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNDRdID09ICJFICAgICAgIEF0dHJpYnV0ZUVycm9y
IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNDVdID09ICIiCisgICAgICAgIGxpbmUgPSB0dy5n
ZXRfd3JpdGVfbXNnKDQ2KQorICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgnbW9kLnB5JykK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQ3XSA9PSAiOjE1OiBBdHRyaWJ1dGVFcnJvciIKKwor
ICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm9bMF0gPCAzIikKKyAgICBk
ZWYgdGVzdF9leGNfcmVwcl93aXRoX3JhaXNlX2Zyb21fbm9uZV9jaGFpbl9zdXBwcmVzc2lvbihz
ZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAg
ICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAg
IGcoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAg
ICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCkgZnJvbSBOb25lCisgICAgICAgICAgICBkZWYgZygp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAiIiIpCisgICAg
ICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBtb2QuZikKKyAgICAg
ICAgciA9IGV4Y2luZm8uZ2V0cmVwcihzdHlsZT0ibG9uZyIpCisgICAgICAgIHR3ID0gVFdNb2Nr
KCkKKyAgICAgICAgci50b3Rlcm1pbmFsKHR3KQorICAgICAgICBmb3IgbGluZSBpbiB0dy5saW5l
czoKKyAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9
PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIiAgICBkZWYgZigpOiIKKyAgICAg
ICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICIgICAgICAgIHRyeToiCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1szXSA9PSAiICAgICAgICAgICAgZygpIgorICAgICAgICBhc3NlcnQgdHcubGluZXNb
NF0gPT0gIiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoiCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1s1XSA9PSAiPiAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoKSBmcm9tIE5vbmUiCisg
ICAgICAgIGFzc2VydCB0dy5saW5lc1s2XSA9PSAiRSAgICAgICAgICAgQXR0cmlidXRlRXJyb3Ii
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1s3XSA9PSAiIgorICAgICAgICBsaW5lID0gdHcuZ2V0
X3dyaXRlX21zZyg4KQorICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgnbW9kLnB5JykKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzldID09ICI6NjogQXR0cmlidXRlRXJyb3IiCisgICAgICAg
IGFzc2VydCBsZW4odHcubGluZXMpID09IDEwCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJz
eXMudmVyc2lvbl9pbmZvWzBdIDwgMyIpCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdy
ZWFzb24sIGRlc2NyaXB0aW9uJywgWworICAgICAgICAoJ2NhdXNlJywgJ1RoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246Jyks
CisgICAgICAgICgnY29udGV4dCcsICdEdXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4Y2Vw
dGlvbiwgYW5vdGhlciBleGNlcHRpb24gb2NjdXJyZWQ6JyksCisgICAgXSkKKyAgICBkZWYgdGVz
dF9leGNfY2hhaW5fcmVwcl93aXRob3V0X3RyYWNlYmFjayhzZWxmLCBpbXBvcnRhc21vZCwgcmVh
c29uLCBkZXNjcmlwdGlvbik6CisgICAgICAgICIiIgorICAgICAgICBIYW5kbGUgcmVwcmVzZW50
YXRpb24gb2YgZXhjZXB0aW9uIGNoYWlucyB3aGVyZSBvbmUgb2YgdGhlIGV4Y2VwdGlvbnMgZG9l
c24ndCBoYXZlIGEKKyAgICAgICAgcmVhbCB0cmFjZWJhY2ssIHN1Y2ggYXMgdGhvc2UgcmFpc2Vk
IGluIGEgc3VicHJvY2VzcyBzdWJtaXR0ZWQgYnkgdGhlIG11bHRpcHJvY2Vzc2luZworICAgICAg
ICBtb2R1bGUgKCMxOTg0KS4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5weXRl
c3RlciBpbXBvcnQgTGluZU1hdGNoZXIKKyAgICAgICAgZXhjX2hhbmRsaW5nX2NvZGUgPSAnIGZy
b20gZScgaWYgcmVhc29uID09ICdjYXVzZScgZWxzZSAnJworICAgICAgICBtb2QgPSBpbXBvcnRh
c21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgICAgICBnKCkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigncnVudGltZSBwcm9i
bGVtJyl7ZXhjX2hhbmRsaW5nX2NvZGV9CisgICAgICAgICAgICBkZWYgZygpOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2ludmFsaWQgdmFsdWUnKQorICAgICAgICAiIiIuZm9y
bWF0KGV4Y19oYW5kbGluZ19jb2RlPWV4Y19oYW5kbGluZ19jb2RlKSkKKworICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoUnVudGltZUVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgbW9k
LmYoKQorCisgICAgICAgICMgZW11bGF0ZSB0aGUgaXNzdWUgZGVzY3JpYmVkIGluICMxOTg0Cisg
ICAgICAgIGF0dHIgPSAnX18lc19fJyAlIHJlYXNvbgorICAgICAgICBnZXRhdHRyKGV4Y2luZm8u
dmFsdWUsIGF0dHIpLl9fdHJhY2ViYWNrX18gPSBOb25lCisKKyAgICAgICAgciA9IGV4Y2luZm8u
Z2V0cmVwcigpCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1
ZSkKKyAgICAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKKyAgICAgICAgci50b3Rlcm1pbmFsKHR3
KQorCisgICAgICAgIG1hdGNoZXIgPSBMaW5lTWF0Y2hlcih0dy5zdHJpbmdpby5nZXR2YWx1ZSgp
LnNwbGl0bGluZXMoKSkKKyAgICAgICAgbWF0Y2hlci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICJWYWx1ZUVycm9yOiBpbnZhbGlkIHZhbHVlIiwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgIiogZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOiIsCisgICAgICAgICAgICAi
PiAqIHJhaXNlIFJ1bnRpbWVFcnJvcigncnVudGltZSBwcm9ibGVtJykiICsgZXhjX2hhbmRsaW5n
X2NvZGUsCisgICAgICAgICAgICAiRSAqUnVudGltZUVycm9yOiBydW50aW1lIHByb2JsZW0iLAor
ICAgICAgICBdKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3R5bGUiLCBbInNob3J0
IiwgImxvbmciXSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZW5jb2RpbmciLCBbTm9uZSwg
InV0ZjgiLCAidXRmMTYiXSkKK2RlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrX3dpdGhfdW5pY29kZShz
dHlsZSwgZW5jb2RpbmcpOgorICAgIG1zZyA9IHUn4pi5JworICAgIGlmIGVuY29kaW5nIGlzIG5v
dCBOb25lOgorICAgICAgICBtc2cgPSBtc2cuZW5jb2RlKGVuY29kaW5nKQorICAgIHRyeToKKyAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKG1zZykKKyAgICBleGNlcHQgUnVudGltZUVycm9yOgor
ICAgICAgICBlX2luZm8gPSBFeGNlcHRpb25JbmZvKCkKKyAgICBmb3JtYXR0ZXIgPSBGb3JtYXR0
ZWRFeGNpbmZvKHN0eWxlPXN0eWxlKQorICAgIHJlcHJfdHJhY2ViYWNrID0gZm9ybWF0dGVyLnJl
cHJfdHJhY2ViYWNrKGVfaW5mbykKKyAgICBhc3NlcnQgcmVwcl90cmFjZWJhY2sgaXMgbm90IE5v
bmUKKworCitkZWYgdGVzdF9jd2RfZGVsZXRlZCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0KHRtcGRpcik6CisgICAgICAgICAgICB0bXBkaXIu
Y2hkaXIoKQorICAgICAgICAgICAgdG1wZGlyLnJlbW92ZSgpCisgICAgICAgICAgICBhc3NlcnQg
RmFsc2UKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyogMSBmYWlsZWQgaW4gKiddKQorICAgIGFzc2Vy
dCAnSU5URVJOQUxFUlJPUicgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkgKyByZXN1bHQuc3Rk
ZXJyLnN0cigpCisKKworZGVmIHRlc3RfZXhjZXB0aW9uX3JlcHJfZXh0cmFjdGlvbl9lcnJvcl9v
bl9yZWN1cnNpb24oKToKKyAgICAiIiIKKyAgICBFbnN1cmUgd2UgY2FuIHByb3Blcmx5IGRldGVj
dCBhIHJlY3Vyc2lvbiBlcnJvciBldmVuCisgICAgaWYgc29tZSBsb2NhbHMgcmFpc2UgZXJyb3Ig
b24gY29tcGFyaXNpb24gKCMyNDU5KS4KKyAgICAiIiIKKyAgICBjbGFzcyBudW1weV9saWtlKG9i
amVjdCk6CisKKyAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICBp
ZiB0eXBlKG90aGVyKSBpcyBudW1weV9saWtlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ1RoZSB0cnV0aCB2YWx1ZSBvZiBhbiBhcnJheSAnCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnd2l0aCBtb3JlIHRoYW4gb25lIGVsZW1lbnQgaXMgYW1iaWd1b3VzLicp
CisKKyAgICBkZWYgYSh4KToKKyAgICAgICAgcmV0dXJuIGIobnVtcHlfbGlrZSgpKQorCisgICAg
ZGVmIGIoeCk6CisgICAgICAgIHJldHVybiBhKG51bXB5X2xpa2UoKSkKKworICAgIHRyeToKKyAg
ICAgICAgYShudW1weV9saWtlKCkpCisgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgIGZyb20g
X3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCisgICAgICAgIGZyb20gX3B5
dGVzdC5weXRlc3RlciBpbXBvcnQgTGluZU1hdGNoZXIKKyAgICAgICAgZXhjX2luZm8gPSBFeGNl
cHRpb25JbmZvKCkKKworICAgICAgICBtYXRjaGVyID0gTGluZU1hdGNoZXIoc3RyKGV4Y19pbmZv
LmdldHJlcHIoKSkuc3BsaXRsaW5lcygpKQorICAgICAgICBtYXRjaGVyLmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgJyEhISBSZWN1cnNpb24gZXJyb3IgZGV0ZWN0ZWQsIGJ1dCBhbiBlcnJv
ciBvY2N1cnJlZCBsb2NhdGluZyB0aGUgb3JpZ2luIG9mIHJlY3Vyc2lvbi4nLAorICAgICAgICAg
ICAgJypUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBoYXBwZW5lZConLAorICAgICAgICAgICAgJypW
YWx1ZUVycm9yOiBUaGUgdHJ1dGggdmFsdWUgb2YgYW4gYXJyYXkqJywKKyAgICAgICAgXSkKKwor
CitkZWYgdGVzdF9ub19yZWN1cnNpb25faW5kZXhfb25fcmVjdXJzaW9uX2Vycm9yKCk6CisgICAg
IiIiCisgICAgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgYnJlYWsgaW4gY2FzZSB3ZSBjYW4ndCBmaW5k
IHRoZSByZWN1cnNpb24gaW5kZXgKKyAgICBkdXJpbmcgYSByZWN1cnNpb24gZXJyb3IgKCMyNDg2
KS4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNsYXNzIFJlY3Vyc2lvbkRlcHRoRXJyb3Io
b2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCAnXycgKyBhdHRyKQorCisgICAgICAgIFJl
Y3Vyc2lvbkRlcHRoRXJyb3IoKS50cmlnZ2VyCisgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAg
IGZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCisgICAgICAgIGV4
Y19pbmZvID0gRXhjZXB0aW9uSW5mbygpCisgICAgICAgIGFzc2VydCAnbWF4aW11bSByZWN1cnNp
b24nIGluIHN0cihleGNfaW5mby5nZXRyZXByKCkpCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0
IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWRh
NjhhNmUyZjg5NTRjNWI5OGQ5N2VhMWQ1M2YzYzVhZmJhNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5CkBAIC0wLDAgKzEsNjgwIEBA
CisjIGZsYWtlODogbm9xYQorIyBkaXNhYmxlIGZsYWtlIGNoZWNrIG9uIHRoaXMgZmlsZSBiZWNh
dXNlIHNvbWUgY29uc3RydWN0cyBhcmUgc3RyYW5nZQorIyBvciByZWR1bmRhbnQgb24gcHVycG9z
ZSBhbmQgY2FuJ3QgYmUgZGlzYWJsZSBvbiBhIGxpbmUtYnktbGluZSBiYXNpcworZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
aW1wb3J0IHN5cworCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0
ZXN0Citmcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IFNvdXJjZQorZnJvbSBfcHl0ZXN0Ll9jb2Rl
LnNvdXJjZSBpbXBvcnQgX2FzdAorCitpZiBfYXN0IGlzIG5vdCBOb25lOgorICAgIGFzdG9ubHkg
PSBweXRlc3QubWFyay5ub3RoaW5nCitlbHNlOgorICAgIGFzdG9ubHkgPSBweXRlc3QubWFyay54
ZmFpbCgiVHJ1ZSIsIHJlYXNvbj0ib25seSB3b3JrcyB3aXRoIEFTVC1jb21waWxlIikKKworZmFp
bHNvbmp5dGhvbiA9IHB5dGVzdC5tYXJrLnhmYWlsKCJzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgn
amF2YScpIikKKworCitkZWYgdGVzdF9zb3VyY2Vfc3RyX2Z1bmN0aW9uKCk6CisgICAgeCA9IFNv
dXJjZSgiMyIpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiMyIKKworICAgIHggPSBTb3VyY2UoIiAg
IDMiKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIjMiCisKKyAgICB4ID0gU291cmNlKCIiIgorICAg
ICAgICAzCisgICAgIiIiLCByc3RyaXA9RmFsc2UpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiXG4z
XG4gICAgIgorCisgICAgeCA9IFNvdXJjZSgiIiIKKyAgICAgICAgMworICAgICIiIiwgcnN0cmlw
PVRydWUpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiXG4zIgorCisKK2RlZiB0ZXN0X3VuaWNvZGUo
KToKKyAgICB0cnk6CisgICAgICAgIHVuaWNvZGUKKyAgICBleGNlcHQgTmFtZUVycm9yOgorICAg
ICAgICByZXR1cm4KKyAgICB4ID0gU291cmNlKHVuaWNvZGUoIjQiKSkKKyAgICBhc3NlcnQgc3Ry
KHgpID09ICI0IgorICAgIGNvID0gX3B5dGVzdC5fY29kZS5jb21waWxlKHVuaWNvZGUoJ3UiXHhj
M1x4YTUiJywgJ3V0ZjgnKSwgbW9kZT0nZXZhbCcpCisgICAgdmFsID0gZXZhbChjbykKKyAgICBh
c3NlcnQgaXNpbnN0YW5jZSh2YWwsIHVuaWNvZGUpCisKKworZGVmIHRlc3Rfc291cmNlX2Zyb21f
ZnVuY3Rpb24oKToKKyAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSh0ZXN0X3NvdXJj
ZV9zdHJfZnVuY3Rpb24pCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0YXJ0c3dpdGgoJ2RlZiB0
ZXN0X3NvdXJjZV9zdHJfZnVuY3Rpb24oKTonKQorCisKK2RlZiB0ZXN0X3NvdXJjZV9mcm9tX21l
dGhvZCgpOgorICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICBwYXNzCisgICAgc291cmNlID0gX3B5dGVzdC5fY29k
ZS5Tb3VyY2UoVGVzdENsYXNzKCkudGVzdF9tZXRob2QpCisgICAgYXNzZXJ0IHNvdXJjZS5saW5l
cyA9PSBbImRlZiB0ZXN0X21ldGhvZChzZWxmKToiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIgICAgcGFzcyJdCisKKworZGVmIHRlc3Rfc291cmNlX2Zyb21fbGluZXMoKToKKyAgICBs
aW5lcyA9IFsiYSBcbiIsICJiXG4iLCAiYyJdCisgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5T
b3VyY2UobGluZXMpCisgICAgYXNzZXJ0IHNvdXJjZS5saW5lcyA9PSBbJ2EgJywgJ2InLCAnYydd
CisKKworZGVmIHRlc3Rfc291cmNlX2Zyb21faW5uZXJfZnVuY3Rpb24oKToKKyAgICBkZWYgZigp
OgorICAgICAgICBwYXNzCisgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoZiwgZGVp
bmRlbnQ9RmFsc2UpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0YXJ0c3dpdGgoJyAgICBkZWYg
ZigpOicpCisgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikKKyAgICBhc3NlcnQg
c3RyKHNvdXJjZSkuc3RhcnRzd2l0aCgnZGVmIGYoKTonKQorCisKK2RlZiB0ZXN0X3NvdXJjZV9w
dXRhcm91bmRfc2ltcGxlKCk6CisgICAgc291cmNlID0gU291cmNlKCJyYWlzZSBWYWx1ZUVycm9y
IikKKyAgICBzb3VyY2UgPSBzb3VyY2UucHV0YXJvdW5kKAorICAgICAgICAidHJ5OiIsICIiIlwK
KyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICB4ID0gNDIKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHggPSAyMyIiIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0g
IiIiXAordHJ5OgorICAgIHJhaXNlIFZhbHVlRXJyb3IKK2V4Y2VwdCBWYWx1ZUVycm9yOgorICAg
IHggPSA0MgorZWxzZToKKyAgICB4ID0gMjMiIiIKKworCitkZWYgdGVzdF9zb3VyY2VfcHV0YXJv
dW5kKCk6CisgICAgc291cmNlID0gU291cmNlKCkKKyAgICBzb3VyY2UgPSBzb3VyY2UucHV0YXJv
dW5kKCIiIgorICAgICAgICBpZiAxOgorICAgICAgICAgICAgeD0xCisgICAgIiIiKQorICAgIGFz
c2VydCBzdHIoc291cmNlKS5zdHJpcCgpID09ICJpZiAxOlxuICAgIHg9MSIKKworCitkZWYgdGVz
dF9zb3VyY2Vfc3RyaXBzKCk6CisgICAgc291cmNlID0gU291cmNlKCIiKQorICAgIGFzc2VydCBz
b3VyY2UgPT0gU291cmNlKCkKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gJycKKyAgICBhc3Nl
cnQgc291cmNlLnN0cmlwKCkgPT0gc291cmNlCisKKworZGVmIHRlc3Rfc291cmNlX3N0cmlwX211
bHRpbGluZSgpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgpCisgICAgc291cmNlLmxpbmVzID0gWyIi
LCAiIGhlbGxvIiwgIiAgIl0KKyAgICBzb3VyY2UyID0gc291cmNlLnN0cmlwKCkKKyAgICBhc3Nl
cnQgc291cmNlMi5saW5lcyA9PSBbIiBoZWxsbyJdCisKKworZGVmIHRlc3Rfc3ludGF4ZXJyb3Jf
cmVyZXByZXNlbnRhdGlvbigpOgorICAgIGV4ID0gcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwg
X3B5dGVzdC5fY29kZS5jb21waWxlLCAneHl6IHh5eicpCisgICAgYXNzZXJ0IGV4LnZhbHVlLmxp
bmVubyA9PSAxCisgICAgYXNzZXJ0IGV4LnZhbHVlLm9mZnNldCBpbiAoNCwgNykgICMgWFhYIHB5
cHkvanl0aG9uIHZlcnN1cyBjcHl0aG9uPworICAgIGFzc2VydCBleC52YWx1ZS50ZXh0LnN0cmlw
KCksICd4IHgnCisKKworZGVmIHRlc3RfaXNwYXJzZWFibGUoKToKKyAgICBhc3NlcnQgU291cmNl
KCJoZWxsbyIpLmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgU291cmNlKCJpZiAxOlxuICBwYXNz
IikuaXNwYXJzZWFibGUoKQorICAgIGFzc2VydCBTb3VyY2UoIiBcbmlmIDE6XG4gIHBhc3MiKS5p
c3BhcnNlYWJsZSgpCisgICAgYXNzZXJ0IG5vdCBTb3VyY2UoImlmIDE6XG4iKS5pc3BhcnNlYWJs
ZSgpCisgICAgYXNzZXJ0IG5vdCBTb3VyY2UoIiBcbmlmIDE6XG5wYXNzIikuaXNwYXJzZWFibGUo
KQorICAgIGFzc2VydCBub3QgU291cmNlKGNocigwKSkuaXNwYXJzZWFibGUoKQorCisKK2NsYXNz
IFRlc3RBY2Nlc3NlcyhvYmplY3QpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAg
IGRlZiBmKHgpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgZyh4KToKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9nZXRyYW5nZShzZWxmKToKKyAgICAg
ICAgeCA9IHNlbGYuc291cmNlWzA6Ml0KKyAgICAgICAgYXNzZXJ0IHguaXNwYXJzZWFibGUoKQor
ICAgICAgICBhc3NlcnQgbGVuKHgubGluZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHN0cih4KSA9
PSAiZGVmIGYoeCk6XG4gICAgcGFzcyIKKworICAgIGRlZiB0ZXN0X2dldGxpbmUoc2VsZik6Cisg
ICAgICAgIHggPSBzZWxmLnNvdXJjZVswXQorICAgICAgICBhc3NlcnQgeCA9PSAiZGVmIGYoeCk6
IgorCisgICAgZGVmIHRlc3RfbGVuKHNlbGYpOgorICAgICAgICBhc3NlcnQgbGVuKHNlbGYuc291
cmNlKSA9PSA0CisKKyAgICBkZWYgdGVzdF9pdGVyKHNlbGYpOgorICAgICAgICB2YWx1ZXMgPSBb
eCBmb3IgeCBpbiBzZWxmLnNvdXJjZV0KKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDQK
KworCitjbGFzcyBUZXN0U291cmNlUGFyc2luZ0FuZENvbXBpbGluZyhvYmplY3QpOgorICAgIHNv
dXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAgIGRlZiBmKHgpOgorICAgICAgICAgICAgYXNzZXJ0
ICh4ID09CisgICAgICAgICAgICAgICAgICAgIDMgKworICAgICAgICAgICAgICAgICAgICA0KQor
ICAgICIiIikuc3RyaXAoKQorCisgICAgZGVmIHRlc3RfY29tcGlsZShzZWxmKToKKyAgICAgICAg
Y28gPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUoIng9MyIpCisgICAgICAgIGQgPSB7fQorICAgICAg
ICBleGVjKGNvLCBkKQorICAgICAgICBhc3NlcnQgZFsneCddID09IDMKKworICAgIGRlZiB0ZXN0
X2NvbXBpbGVfYW5kX2dldHNvdXJjZV9zaW1wbGUoc2VsZik6CisgICAgICAgIGNvID0gX3B5dGVz
dC5fY29kZS5jb21waWxlKCJ4PTMiKQorICAgICAgICBleGVjKGNvKQorICAgICAgICBzb3VyY2Ug
PSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShjbykKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09
ICJ4PTMiCisKKyAgICBkZWYgdGVzdF9jb21waWxlX2FuZF9nZXRzb3VyY2VfdGhyb3VnaF9zYW1l
X2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICBkZWYgZ2Vuc291cmNlKHNvdXJjZSk6CisgICAgICAg
ICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5jb21waWxlKHNvdXJjZSkKKyAgICAgICAgY28xID0g
Z2Vuc291cmNlKCIiIgorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICByYWlz
ZSBLZXlFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgY28yID0gZ2Vuc291cmNlKCIiIgor
ICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkK
KyAgICAgICAgIiIiKQorICAgICAgICBzb3VyY2UxID0gcHkuc3RkLmluc3BlY3QuZ2V0c291cmNl
KGNvMSkKKyAgICAgICAgYXNzZXJ0ICdLZXlFcnJvcicgaW4gc291cmNlMQorICAgICAgICBzb3Vy
Y2UyID0gcHkuc3RkLmluc3BlY3QuZ2V0c291cmNlKGNvMikKKyAgICAgICAgYXNzZXJ0ICdWYWx1
ZUVycm9yJyBpbiBzb3VyY2UyCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnQoc2VsZik6Cisg
ICAgICAgICMgcHJpbnQgc3RyKHNlbGYuc291cmNlKQorICAgICAgICBhc3MgPSBzdHIoc2VsZi5z
b3VyY2VbMTpdKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA0KToKKyAgICAgICAgICAgICMg
cHJpbnQgInRyeWluZyBzdGFydCBpbiBsaW5lICVyIiAlIHNlbGYuc291cmNlW2ldCisgICAgICAg
ICAgICBzID0gc2VsZi5zb3VyY2UuZ2V0c3RhdGVtZW50KGkpCisgICAgICAgICAgICAjeCA9IHMu
ZGVpbmRlbnQoKQorICAgICAgICAgICAgYXNzZXJ0IHN0cihzKSA9PSBhc3MKKworICAgIGRlZiB0
ZXN0X2dldHN0YXRlbWVudHJhbmdlX3RyaXBsZV9xdW90ZWQoc2VsZik6CisgICAgICAgICMgcHJp
bnQgc3RyKHNlbGYuc291cmNlKQorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoIiIiaGVsbG8oJycn
CisgICAgICAgICcnJykiIiIpCisgICAgICAgIHMgPSBzb3VyY2UuZ2V0c3RhdGVtZW50KDApCisg
ICAgICAgIGFzc2VydCBzID09IHN0cihzb3VyY2UpCisgICAgICAgIHMgPSBzb3VyY2UuZ2V0c3Rh
dGVtZW50KDEpCisgICAgICAgIGFzc2VydCBzID09IHN0cihzb3VyY2UpCisKKyAgICBAYXN0b25s
eQorICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX3dpdGhpbl9jb25zdHJ1Y3RzKHNlbGYp
OgorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoIiIiXAorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAg
ICAgICAgICAgICAgIGV4Y2VwdCBTb21lVGhpbmc6CisgICAgICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgNDIKKyAgICAgICAgIiIiKQor
ICAgICAgICBhc3NlcnQgbGVuKHNvdXJjZSkgPT0gNworICAgICAgICAjIGNoZWNrIGFsbCBsaW5l
bm8ncyB0aGF0IGNvdWxkIG9jY3VyIGluIGEgdHJhY2ViYWNrCisgICAgICAgICMgYXNzZXJ0IHNv
dXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgwKSA9PSAoMCwgNykKKyAgICAgICAgIyBhc3NlcnQgc291
cmNlLmdldHN0YXRlbWVudHJhbmdlKDEpID09ICgxLCA1KQorICAgICAgICBhc3NlcnQgc291cmNl
LmdldHN0YXRlbWVudHJhbmdlKDIpID09ICgyLCAzKQorICAgICAgICBhc3NlcnQgc291cmNlLmdl
dHN0YXRlbWVudHJhbmdlKDMpID09ICgzLCA0KQorICAgICAgICBhc3NlcnQgc291cmNlLmdldHN0
YXRlbWVudHJhbmdlKDQpID09ICg0LCA1KQorICAgICAgICAjIGFzc2VydCBzb3VyY2UuZ2V0c3Rh
dGVtZW50cmFuZ2UoNSkgPT0gKDAsIDcpCisgICAgICAgIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVt
ZW50cmFuZ2UoNikgPT0gKDYsIDcpCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV9i
dWcoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgeCA9ICgKKyAgICAgICAgICAgICAgICAgICB5ICsKKyAgICAgICAg
ICAgICAgICAgICB6KQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgbGVuKHNvdXJjZSkgPT0gNgorICAgICAgICBh
c3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDIpID09ICgxLCA0KQorCisgICAgZGVmIHRl
c3RfZ2V0c3RhdGVtZW50cmFuZ2VfYnVnMihzZWxmKToKKyAgICAgICAgc291cmNlID0gU291cmNl
KCIiIlwKKyAgICAgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAgICAgMzMKKyAgICAgICAg
ICAgICAgICA9PQorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgIFgoMywKKyAg
ICAgICAgICAgICAgICAgICAgICBiPTEsIGM9MgorICAgICAgICAgICAgICAgICAgICksCisgICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgICApCisgICAgICAgICIiIikKKyAgICAgICAgYXNz
ZXJ0IGxlbihzb3VyY2UpID09IDkKKyAgICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRy
YW5nZSg1KSA9PSAoMCwgOSkKKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX2FzdF9p
c3N1ZTU4KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoIiIiXAorCisgICAgICAgICAg
ICBkZWYgdGVzdF9zb21lKCk6CisgICAgICAgICAgICAgICAgZm9yIGEgaW4gW2EgZm9yIGEgaW4K
KyAgICAgICAgICAgICAgICAgICAgQ0FVU0VfRVJST1JdOiBwYXNzCisKKyAgICAgICAgICAgIHgg
PSAzCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGdldHN0YXRlbWVudCgyLCBzb3VyY2Up
LmxpbmVzID09IHNvdXJjZS5saW5lc1syOjNdCisgICAgICAgIGFzc2VydCBnZXRzdGF0ZW1lbnQo
Mywgc291cmNlKS5saW5lcyA9PSBzb3VyY2UubGluZXNbMzo0XQorCisgICAgZGVmIHRlc3RfZ2V0
c3RhdGVtZW50cmFuZ2Vfb3V0X29mX2JvdW5kc19weTMoc2VsZik6CisgICAgICAgIHNvdXJjZSA9
IFNvdXJjZSgiaWYgeHh4OlxuICAgZnJvbSAuY29sbGVjdGlvbnMgaW1wb3J0IHNvbWV0aGluZyIp
CisgICAgICAgIHIgPSBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMSkKKyAgICAgICAgYXNzZXJ0
IHIgPT0gKDEsIDIpCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV93aXRoX3N5bnRh
eGVycm9yX2lzc3VlNyhzZWxmKToKKyAgICAgICAgc291cmNlID0gU291cmNlKCI6IikKKyAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgbGFtYmRhOiBzb3VyY2UuZ2V0c3RhdGVtZW50
cmFuZ2UoMCkpCisKKyAgICBkZWYgdGVzdF9jb21waWxlX3RvX2FzdChzZWxmKToKKyAgICAgICAg
aW1wb3J0IGFzdAorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoInggPSA0IikKKyAgICAgICAgbW9k
ID0gc291cmNlLmNvbXBpbGUoZmxhZz1hc3QuUHlDRl9PTkxZX0FTVCkKKyAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UobW9kLCBhc3QuTW9kdWxlKQorICAgICAgICBjb21waWxlKG1vZCwgIjxmaWxl
bmFtZT4iLCAiZXhlYyIpCisKKyAgICBkZWYgdGVzdF9jb21waWxlX2FuZF9nZXRzb3VyY2Uoc2Vs
Zik6CisgICAgICAgIGNvID0gc2VsZi5zb3VyY2UuY29tcGlsZSgpCisgICAgICAgIHB5LmJ1aWx0
aW4uZXhlY18oY28sIGdsb2JhbHMoKSkKKyAgICAgICAgZig3KQorICAgICAgICBleGNpbmZvID0g
cHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgImYoNikiKQorICAgICAgICBmcmFtZSA9IGV4
Y2luZm8udHJhY2ViYWNrWy0xXS5mcmFtZQorICAgICAgICBzdG10ID0gZnJhbWUuY29kZS5mdWxs
c291cmNlLmdldHN0YXRlbWVudChmcmFtZS5saW5lbm8pCisgICAgICAgICMgcHJpbnQgImJsb2Nr
Iiwgc3RyKGJsb2NrKQorICAgICAgICBhc3NlcnQgc3RyKHN0bXQpLnN0cmlwKCkuc3RhcnRzd2l0
aCgnYXNzZXJ0JykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbmFtZScsIFsnJywg
Tm9uZSwgJ215J10pCisgICAgZGVmIHRlc3RfY29tcGlsZWZ1bmNzX2FuZF9wYXRoX3Nhbml0eShz
ZWxmLCBuYW1lKToKKyAgICAgICAgZGVmIGNoZWNrKGNvbXAsIG5hbWUpOgorICAgICAgICAgICAg
Y28gPSBjb21wKHNlbGYuc291cmNlLCBuYW1lKQorICAgICAgICAgICAgaWYgbm90IG5hbWU6Cisg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiY29kZWdlbiAlczolZD4iICUgKG15cGF0aCwgbXls
aW5lbm8gKyAyICsgMikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhwZWN0
ZWQgPSAiY29kZWdlbiAlciAlczolZD4iICUgKG5hbWUsIG15cGF0aCwgbXlsaW5lbm8gKyAyICsg
MikKKyAgICAgICAgICAgIGZuID0gY28uY29fZmlsZW5hbWUKKyAgICAgICAgICAgIGFzc2VydCBm
bi5lbmRzd2l0aChleHBlY3RlZCkKKworICAgICAgICBteWNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNv
ZGUoc2VsZi50ZXN0X2NvbXBpbGVmdW5jc19hbmRfcGF0aF9zYW5pdHkpCisgICAgICAgIG15bGlu
ZW5vID0gbXljb2RlLmZpcnN0bGluZW5vCisgICAgICAgIG15cGF0aCA9IG15Y29kZS5wYXRoCisK
KyAgICAgICAgZm9yIGNvbXAgaW4gX3B5dGVzdC5fY29kZS5jb21waWxlLCBfcHl0ZXN0Ll9jb2Rl
LlNvdXJjZS5jb21waWxlOgorICAgICAgICAgICAgY2hlY2soY29tcCwgbmFtZSkKKworICAgIGRl
ZiB0ZXN0X29mZnNldGxlc3Nfc3luZXJyKHNlbGYpOgorICAgICAgICBweXRlc3QucmFpc2VzKFN5
bnRheEVycm9yLCBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUsICJsYW1iZGEgYSxhOiAwIiwgbW9kZT0n
ZXZhbCcpCisKKworZGVmIHRlc3RfZ2V0c3RhcnRpbmdibG9ja19zaW5nbGVsaW5lKCk6CisgICAg
Y2xhc3MgQShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgorICAg
ICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgICAgICBzZWxmLnNvdXJj
ZSA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZnJhbWUpLnN0YXRlbWVudAorCisgICAgeCA9IEEoJ3gn
LCAneScpCisKKyAgICB2YWx1ZXMgPSBbaSBmb3IgaSBpbiB4LnNvdXJjZS5saW5lcyBpZiBpLnN0
cmlwKCldCisgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKworCitkZWYgdGVzdF9nZXRsaW5l
X2ZpbmFsbHkoKToKKyAgICBkZWYgYygpOiBwYXNzCisgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlz
ZXMoVHlwZUVycm9yLCAiIiIKKyAgICAgICAgICAgdGVhcmRvd24gPSBOb25lCisgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBjKDEpCisgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICAgICAgaWYgdGVhcmRvd246CisgICAgICAgICAgICAgICAgICAgIHRlYXJkb3duKCkKKyAg
ICAiIiIpCisgICAgc291cmNlID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLnN0YXRlbWVudAorICAg
IGFzc2VydCBzdHIoc291cmNlKS5zdHJpcCgpID09ICdjKDEpJworCisKK2RlZiB0ZXN0X2dldGZ1
bmNzb3VyY2VfZHluYW1pYygpOgorICAgIHNvdXJjZSA9ICIiIgorICAgICAgICBkZWYgZigpOgor
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorCisgICAgICAgIGRlZiBnKCk6IHBhc3MKKyAg
ICAiIiIKKyAgICBjbyA9IF9weXRlc3QuX2NvZGUuY29tcGlsZShzb3VyY2UpCisgICAgcHkuYnVp
bHRpbi5leGVjXyhjbywgZ2xvYmFscygpKQorICAgIGFzc2VydCBzdHIoX3B5dGVzdC5fY29kZS5T
b3VyY2UoZikpLnN0cmlwKCkgPT0gJ2RlZiBmKCk6XG4gICAgcmFpc2UgVmFsdWVFcnJvcicKKyAg
ICBhc3NlcnQgc3RyKF9weXRlc3QuX2NvZGUuU291cmNlKGcpKS5zdHJpcCgpID09ICdkZWYgZygp
OiBwYXNzJworCisKK2RlZiB0ZXN0X2dldGZ1bmNzb3VyY2Vfd2l0aF9tdWx0aW5lX3N0cmluZygp
OgorICAgIGRlZiBmKCk6CisgICAgICAgIGMgPSAnJyd3aGlsZSBUcnVlOgorICAgIHBhc3MKKycn
JworICAgIGFzc2VydCBzdHIoX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpLnN0cmlwKCkgPT0gImRl
ZiBmKCk6XG4gICAgYyA9ICcnJ3doaWxlIFRydWU6XG4gICAgcGFzc1xuJycnIgorCisKK2RlZiB0
ZXN0X2RlaW5kZW50KCk6CisgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZGVp
bmRlbnQgYXMgZGVpbmRlbnQKKyAgICBhc3NlcnQgZGVpbmRlbnQoWydcdGZvbycsICdcdGJhcics
IF0pID09IFsnZm9vJywgJ2JhciddCisKKyAgICBkZWYgZigpOgorICAgICAgICBjID0gJycnd2hp
bGUgVHJ1ZToKKyAgICBwYXNzCisnJycKKyAgICBpbXBvcnQgaW5zcGVjdAorICAgIGxpbmVzID0g
ZGVpbmRlbnQoaW5zcGVjdC5nZXRzb3VyY2UoZikuc3BsaXRsaW5lcygpKQorICAgIGFzc2VydCBs
aW5lcyA9PSBbImRlZiBmKCk6IiwgIiAgICBjID0gJycnd2hpbGUgVHJ1ZToiLCAiICAgIHBhc3Mi
LCAiJycnIl0KKworICAgIHNvdXJjZSA9ICIiIgorICAgICAgICBkZWYgZigpOgorICAgICAgICAg
ICAgZGVmIGcoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgIiIiCisgICAgbGluZXMgPSBk
ZWluZGVudChzb3VyY2Uuc3BsaXRsaW5lcygpKQorICAgIGFzc2VydCBsaW5lcyA9PSBbJycsICdk
ZWYgZigpOicsICcgICAgZGVmIGcoKTonLCAnICAgICAgICBwYXNzJywgJyAgICAnXQorCisKK2Rl
ZiB0ZXN0X3NvdXJjZV9vZl9jbGFzc19hdF9lb2Zfd2l0aG91dF9uZXdsaW5lKHRtcGRpcik6Cisg
ICAgIyB0aGlzIHRlc3QgZmFpbHMgYmVjYXVzZSB0aGUgaW1wbGljaXQgaW5zcGVjdC5nZXRzb3Vy
Y2UoQSkgYmVsb3cKKyAgICAjIGRvZXMgbm90IHJldHVybiB0aGUgInggPSAxIiBsYXN0IGxpbmUu
CisgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoJycnCisgICAgICAgIGNsYXNzIEEo
b2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAg
eCA9IDEKKyAgICAnJycpCisgICAgcGF0aCA9IHRtcGRpci5qb2luKCJhLnB5IikKKyAgICBwYXRo
LndyaXRlKHNvdXJjZSkKKyAgICBzMiA9IF9weXRlc3QuX2NvZGUuU291cmNlKHRtcGRpci5qb2lu
KCJhLnB5IikucHlpbXBvcnQoKS5BKQorICAgIGFzc2VydCBzdHIoc291cmNlKS5zdHJpcCgpID09
IHN0cihzMikuc3RyaXAoKQorCisKK2lmIFRydWU6CisgICAgZGVmIHgoKToKKyAgICAgICAgcGFz
cworCisKK2RlZiB0ZXN0X2dldHNvdXJjZV9mYWxsYmFjaygpOgorICAgIGZyb20gX3B5dGVzdC5f
Y29kZS5zb3VyY2UgaW1wb3J0IGdldHNvdXJjZQorICAgIGV4cGVjdGVkID0gIiIiZGVmIHgoKToK
KyAgICBwYXNzIiIiCisgICAgc3JjID0gZ2V0c291cmNlKHgpCisgICAgYXNzZXJ0IHNyYyA9PSBl
eHBlY3RlZAorCisKK2RlZiB0ZXN0X2lkZW1fY29tcGlsZV9hbmRfZ2V0c291cmNlKCk6CisgICAg
ZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0c291cmNlCisgICAgZXhwZWN0ZWQg
PSAiZGVmIHgoKTogcGFzcyIKKyAgICBjbyA9IF9weXRlc3QuX2NvZGUuY29tcGlsZShleHBlY3Rl
ZCkKKyAgICBzcmMgPSBnZXRzb3VyY2UoY28pCisgICAgYXNzZXJ0IHNyYyA9PSBleHBlY3RlZAor
CisKK2RlZiB0ZXN0X2ZpbmRzb3VyY2VfZmFsbGJhY2soKToKKyAgICBmcm9tIF9weXRlc3QuX2Nv
ZGUuc291cmNlIGltcG9ydCBmaW5kc291cmNlCisgICAgc3JjLCBsaW5lbm8gPSBmaW5kc291cmNl
KHgpCisgICAgYXNzZXJ0ICd0ZXN0X2ZpbmRzb3VyY2Vfc2ltcGxlJyBpbiBzdHIoc3JjKQorICAg
IGFzc2VydCBzcmNbbGluZW5vXSA9PSAnICAgIGRlZiB4KCk6JworCisKK2RlZiB0ZXN0X2ZpbmRz
b3VyY2UoKToKKyAgICBmcm9tIF9weXRlc3QuX2NvZGUuc291cmNlIGltcG9ydCBmaW5kc291cmNl
CisgICAgY28gPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUoIiIiaWYgMToKKyAgICBkZWYgeCgpOgor
ICAgICAgICBwYXNzCisiIiIpCisKKyAgICBzcmMsIGxpbmVubyA9IGZpbmRzb3VyY2UoY28pCisg
ICAgYXNzZXJ0ICdpZiAxOicgaW4gc3RyKHNyYykKKworICAgIGQgPSB7fQorICAgIGV2YWwoY28s
IGQpCisgICAgc3JjLCBsaW5lbm8gPSBmaW5kc291cmNlKGRbJ3gnXSkKKyAgICBhc3NlcnQgJ2lm
IDE6JyBpbiBzdHIoc3JjKQorICAgIGFzc2VydCBzcmNbbGluZW5vXSA9PSAiICAgIGRlZiB4KCk6
IgorCisKK2RlZiB0ZXN0X2dldGZzbGluZW5vKCk6CisgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlIGlt
cG9ydCBnZXRmc2xpbmVubworCisgICAgZGVmIGYoeCk6CisgICAgICAgIHBhc3MKKworICAgIGZz
cGF0aCwgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZikKKworICAgIGFzc2VydCBmc3BhdGguYmFzZW5h
bWUgPT0gInRlc3Rfc291cmNlLnB5IgorICAgIGFzc2VydCBsaW5lbm8gPT0gX3B5dGVzdC5fY29k
ZS5nZXRyYXdjb2RlKGYpLmNvX2ZpcnN0bGluZW5vIC0gMSAgIyBzZWUgZmluZHNvdXJjZQorCisg
ICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBmc3BhdGgsIGxpbmVubyA9
IGdldGZzbGluZW5vKEEpCisKKyAgICBfLCBBX2xpbmVubyA9IHB5LnN0ZC5pbnNwZWN0LmZpbmRz
b3VyY2UoQSkKKyAgICBhc3NlcnQgZnNwYXRoLmJhc2VuYW1lID09ICJ0ZXN0X3NvdXJjZS5weSIK
KyAgICBhc3NlcnQgbGluZW5vID09IEFfbGluZW5vCisKKyAgICBhc3NlcnQgZ2V0ZnNsaW5lbm8o
MykgPT0gKCIiLCAtMSkKKworICAgIGNsYXNzIEIob2JqZWN0KToKKyAgICAgICAgcGFzcworICAg
IEIuX19uYW1lX18gPSAiQjIiCisgICAgYXNzZXJ0IGdldGZzbGluZW5vKEIpWzFdID09IC0xCisK
KworZGVmIHRlc3RfY29kZV9vZl9vYmplY3RfaW5zdGFuY2Vfd2l0aF9jYWxsKCk6CisgICAgY2xh
c3MgQShvYmplY3QpOgorICAgICAgICBwYXNzCisgICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3Is
IGxhbWJkYTogX3B5dGVzdC5fY29kZS5Tb3VyY2UoQSgpKSkKKworICAgIGNsYXNzIFdpdGhDYWxs
KG9iamVjdCk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoV2l0aENhbGwoKSkKKyAgICBhc3NlcnQg
J3Bhc3MnIGluIHN0cihjb2RlLnNvdXJjZSgpKQorCisgICAgY2xhc3MgSGVsbG8ob2JqZWN0KToK
KyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgcGFzcworICAgIHB5dGVz
dC5yYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IF9weXRlc3QuX2NvZGUuQ29kZShIZWxsbykpCisK
KworZGVmIGdldHN0YXRlbWVudChsaW5lbm8sIHNvdXJjZSk6CisgICAgZnJvbSBfcHl0ZXN0Ll9j
b2RlLnNvdXJjZSBpbXBvcnQgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0CisgICAgc291cmNlID0gX3B5
dGVzdC5fY29kZS5Tb3VyY2Uoc291cmNlLCBkZWluZGVudD1GYWxzZSkKKyAgICBhc3QsIHN0YXJ0
LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzb3VyY2UpCisgICAgcmV0dXJu
IHNvdXJjZVtzdGFydDplbmRdCisKKworZGVmIHRlc3Rfb25lbGluZSgpOgorICAgIHNvdXJjZSA9
IGdldHN0YXRlbWVudCgwLCAicmFpc2UgVmFsdWVFcnJvciIpCisgICAgYXNzZXJ0IHN0cihzb3Vy
Y2UpID09ICJyYWlzZSBWYWx1ZUVycm9yIgorCisKK2RlZiB0ZXN0X2NvbW1lbnRfYW5kX25vX25l
d2xpbmVfYXRfZW5kKCk6CisgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0
c3RhdGVtZW50cmFuZ2VfYXN0CisgICAgc291cmNlID0gU291cmNlKFsnZGVmIHRlc3RfYmFzaWNf
Y29tcGxleCgpOicsCisgICAgICAgICAgICAgICAgICAgICAnICAgIGFzc2VydCAxID09IDInLAor
ICAgICAgICAgICAgICAgICAgICAgJyMgdmltOiBmaWxldHlwZT1weW9wZW5jbDpmZG09bWFya2Vy
J10pCisgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KDEsIHNvdXJj
ZSkKKyAgICBhc3NlcnQgZW5kID09IDIKKworCitkZWYgdGVzdF9vbmVsaW5lX2FuZF9jb21tZW50
KCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDAsICJyYWlzZSBWYWx1ZUVycm9yXG4jaGVs
bG8iKQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAicmFpc2UgVmFsdWVFcnJvciIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoaGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0nZG9lcyBub3Qgd29yayBvbiBweXB5JykKK2RlZiB0ZXN0
X2NvbW1lbnRzKCk6CisgICAgc291cmNlID0gJycnZGVmIHRlc3QoKToKKyAgICAiY29tbWVudCAx
IgorICAgIHggPSAxCisgICAgICAjIGNvbW1lbnQgMgorICAgICMgY29tbWVudCAzCisKKyAgICBh
c3NlcnQgRmFsc2UKKworIiIiCitjb21tZW50IDQKKyIiIgorJycnCisgICAgZm9yIGxpbmUgaW4g
cmFuZ2UoMiwgNik6CisgICAgICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KGxpbmUsIHNvdXJj
ZSkpID09ICcgICAgeCA9IDEnCisgICAgZm9yIGxpbmUgaW4gcmFuZ2UoNiwgMTApOgorICAgICAg
ICBhc3NlcnQgc3RyKGdldHN0YXRlbWVudChsaW5lLCBzb3VyY2UpKSA9PSAnICAgIGFzc2VydCBG
YWxzZScKKyAgICBhc3NlcnQgc3RyKGdldHN0YXRlbWVudCgxMCwgc291cmNlKSkgPT0gJyIiIicK
KworCitkZWYgdGVzdF9jb21tZW50X2luX3N0YXRlbWVudCgpOgorICAgIHNvdXJjZSA9ICcnJ3Rl
c3QoZm9vPTEsCisgICAgIyBjb21tZW50IDEKKyAgICBiYXI9MikKKycnJworICAgIGZvciBsaW5l
IGluIHJhbmdlKDEsIDMpOgorICAgICAgICBhc3NlcnQgc3RyKGdldHN0YXRlbWVudChsaW5lLCBz
b3VyY2UpKSA9PSBcCisgICAgICAgICAgICAndGVzdChmb289MSxcbiAgICAjIGNvbW1lbnQgMVxu
ICAgIGJhcj0yKScKKworCitkZWYgdGVzdF9zaW5nbGVfbGluZV9lbHNlKCk6CisgICAgc291cmNl
ID0gZ2V0c3RhdGVtZW50KDEsICJpZiBGYWxzZTogMlxuZWxzZTogMyIpCisgICAgYXNzZXJ0IHN0
cihzb3VyY2UpID09ICJlbHNlOiAzIgorCisKK2RlZiB0ZXN0X3NpbmdsZV9saW5lX2ZpbmFsbHko
KToKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMSwgInRyeTogMVxuZmluYWxseTogMyIpCisg
ICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJmaW5hbGx5OiAzIgorCisKK2RlZiB0ZXN0X2lzc3Vl
NTUoKToKKyAgICBzb3VyY2UgPSAoJ2RlZiByb3VuZF90cmlwKGRpbnApOlxuICBhc3NlcnQgMSA9
PSBkaW5wXG4nCisgICAgICAgICAgICAgICdkZWYgdGVzdF9ydCgpOlxuICByb3VuZF90cmlwKCIi
IlxuIiIiKVxuJykKKyAgICBzID0gZ2V0c3RhdGVtZW50KDMsIHNvdXJjZSkKKyAgICBhc3NlcnQg
c3RyKHMpID09ICcgIHJvdW5kX3RyaXAoIiIiXG4iIiIpJworCisKK2RlZiBYWFh0ZXN0X211bHRp
bGluZSgpOgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgwLCAiIiJcCityYWlzZSBWYWx1ZUVy
cm9yKAorICAgIDIzCispCit4ID0gMworIiIiKQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAi
cmFpc2UgVmFsdWVFcnJvcihcbiAgICAyM1xuKSIKKworCitjbGFzcyBUZXN0VHJ5KG9iamVjdCk6
CisgICAgcHl0ZXN0bWFyayA9IGFzdG9ubHkKKyAgICBzb3VyY2UgPSAiIiJcCit0cnk6CisgICAg
cmFpc2UgVmFsdWVFcnJvcgorZXhjZXB0IFNvbWV0aGluZzoKKyAgICByYWlzZSBJbmRleEVycm9y
KDEpCitlbHNlOgorICAgIHJhaXNlIEtleUVycm9yKCkKKyIiIgorCisgICAgZGVmIHRlc3RfYm9k
eShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsIHNlbGYuc291cmNlKQor
ICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBWYWx1ZUVycm9yIgorCisg
ICAgZGVmIHRlc3RfZXhjZXB0X2xpbmUoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRl
bWVudCgyLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJleGNl
cHQgU29tZXRoaW5nOiIKKworICAgIGRlZiB0ZXN0X2V4Y2VwdF9ib2R5KHNlbGYpOgorICAgICAg
ICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMywgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBz
dHIoc291cmNlKSA9PSAiICAgIHJhaXNlIEluZGV4RXJyb3IoMSkiCisKKyAgICBkZWYgdGVzdF9l
bHNlKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoNSwgc2VsZi5zb3VyY2Up
CisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiICAgIHJhaXNlIEtleUVycm9yKCkiCisK
KworY2xhc3MgVGVzdFRyeUZpbmFsbHkob2JqZWN0KToKKyAgICBzb3VyY2UgPSAiIiJcCit0cnk6
CisgICAgcmFpc2UgVmFsdWVFcnJvcgorZmluYWxseToKKyAgICByYWlzZSBJbmRleEVycm9yKDEp
CisiIiIKKworICAgIGRlZiB0ZXN0X2JvZHkoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0
YXRlbWVudCgxLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIg
ICAgcmFpc2UgVmFsdWVFcnJvciIKKworICAgIGRlZiB0ZXN0X2ZpbmFsbHkoc2VsZik6CisgICAg
ICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgzLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0
IHN0cihzb3VyY2UpID09ICIgICAgcmFpc2UgSW5kZXhFcnJvcigxKSIKKworCitjbGFzcyBUZXN0
SWYob2JqZWN0KToKKyAgICBweXRlc3RtYXJrID0gYXN0b25seQorICAgIHNvdXJjZSA9ICIiIlwK
K2lmIDE6CisgICAgeSA9IDMKK2VsaWYgRmFsc2U6CisgICAgeSA9IDUKK2Vsc2U6CisgICAgeSA9
IDcKKyIiIgorCisgICAgZGVmIHRlc3RfYm9keShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0
c3RhdGVtZW50KDEsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0g
IiAgICB5ID0gMyIKKworICAgIGRlZiB0ZXN0X2VsaWZfY2xhdXNlKHNlbGYpOgorICAgICAgICBz
b3VyY2UgPSBnZXRzdGF0ZW1lbnQoMiwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIo
c291cmNlKSA9PSAiZWxpZiBGYWxzZToiCisKKyAgICBkZWYgdGVzdF9lbGlmKHNlbGYpOgorICAg
ICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMywgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2Vy
dCBzdHIoc291cmNlKSA9PSAiICAgIHkgPSA1IgorCisgICAgZGVmIHRlc3RfZWxzZShzZWxmKToK
KyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDUsIHNlbGYuc291cmNlKQorICAgICAgICBh
c3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICB5ID0gNyIKKworCitkZWYgdGVzdF9zZW1pY29sb24o
KToKKyAgICBzID0gIiIiXAoraGVsbG8gOyBweXRlc3Quc2tpcCgpCisiIiIKKyAgICBzb3VyY2Ug
PSBnZXRzdGF0ZW1lbnQoMCwgcykKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gcy5zdHJpcCgp
CisKKworZGVmIHRlc3RfZGVmX29ubGluZSgpOgorICAgIHMgPSAiIiJcCitkZWYgZnVuYygpOiBy
YWlzZSBWYWx1ZUVycm9yKDQyKQorCitkZWYgc29tZXRoaW5nKCk6CisgICAgcGFzcworIiIiCisg
ICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDAsIHMpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09
ICJkZWYgZnVuYygpOiByYWlzZSBWYWx1ZUVycm9yKDQyKSIKKworCitkZWYgWFhYX3Rlc3RfZXhw
cmVzc2lvbl9tdWx0aWxpbmUoKToKKyAgICBzb3VyY2UgPSAiIiJcCitzb21ldGhpbmcKKycnJwor
JycnIiIiCisgICAgcmVzdWx0ID0gZ2V0c3RhdGVtZW50KDEsIHNvdXJjZSkKKyAgICBhc3NlcnQg
c3RyKHJlc3VsdCkgPT0gIicnJ1xuJycnIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9jb2RlL3Rlc3Rfc291cmNlX211bHRpbGluZV9ibG9jay5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvY29kZS90ZXN0X3NvdXJjZV9tdWx0aWxpbmVfYmxvY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM1NmQx
OTFmMGIwNGIzNGFjOThiZjU4NzM3ZDRhOTJmMmZiMTg3NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZV9tdWx0aWxpbmVfYmxvY2sucHkKQEAg
LTAsMCArMSwyNiBAQAorIyBmbGFrZTg6IG5vcWEKK2ltcG9ydCBzeXMKKworaW1wb3J0IF9weXRl
c3QuX2NvZGUKKworCitkZWYgdGVzdF9nZXRzdGFydGluZ2Jsb2NrX211bHRpbGluZSgpOgorICAg
ICIiIgorICAgIFRoaXMgdGVzdCB3YXMgb3JpZ2luYWxseSBmb3VuZCBpbiB0ZXN0X3NvdXJjZS5w
eSwgYnV0IGl0IGRlcGVuZHMgb24gdGhlIHdlaXJkCisgICAgZm9ybWF0dGluZyBvZiB0aGUgYGB4
ID0gQWBgIGNvbnN0cnVjdCBzZWVuIGhlcmUgYW5kIG91ciBhdXRvcGVwOCB0b29sIGNhbiBvbmx5
IGV4Y2x1ZGUgZW50aXJlCisgICAgZmlsZXMgKGl0IGRvZXMgbm90IHN1cHBvcnQgZXhjbHVkaW5n
IGxpbmVzL2Jsb2NrcyB1c2luZyB0aGUgdHJhZGl0aW9uYWwgI25vcWEgY29tbWVudCB5ZXQsCisg
ICAgc2VlIGhoYXR0by9hdXRvcGVwOCMzMDcpLiBJdCB3YXMgY29uc2lkZXJlZCBiZXR0ZXIgdG8g
anVzdCBtb3ZlIHRoaXMgc2luZ2xlIHRlc3QgdG8gaXRzIG93bgorICAgIGZpbGUgYW5kIGV4Y2x1
ZGUgaXQgZnJvbSBhdXRvcGVwOCB0aGFuIHRyeSB0byBjb21wbGljYXRlIHRoaW5ncy4KKyAgICAi
IiIKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cyk6CisgICAgICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKKyAgICAgICAgICAgIHNl
bGYuc291cmNlID0gX3B5dGVzdC5fY29kZS5GcmFtZShmcmFtZSkuc3RhdGVtZW50CisKKyAgICB4
ID0gQSgneCcsCisgICAgICAgICAgJ3knCisgICAgICAgICAgLAorICAgICAgICAgICd6JykKKwor
ICAgIHZhbHVlcyA9IFtpIGZvciBpIGluIHguc291cmNlLmxpbmVzIGlmIGkuc3RyaXAoKV0KKyAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9jb2RlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhkZmE2NTU0NjE5N2MxNzE2NTBkMTc0YmQ1MDc5NGNlY2MzY2M4
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2Rl
L3Rlc3RfY29kZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2VfbXVsdGlsaW5lX2Jsb2NrLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2RlcHJlY2F0ZWRfdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZGVwcmVjYXRlZF90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYzRhZDQzY2JjZmRiNGVkOGQ4MDY2
YWU4Y2U5MjY4MTQ1ODk3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2RlcHJlY2F0ZWRfdGVzdC5weQpAQCAtMCwwICsxLDEyNyBAQAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5
dGVzdAorCisKK2RlZiB0ZXN0X3lpZWxkX3Rlc3RzX2RlcHJlY2F0aW9uKHRlc3RkaXIpOgorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIGZ1bmMxKGFyZywgYXJnMik6Cisg
ICAgICAgICAgICBhc3NlcnQgYXJnID09IGFyZzIKKyAgICAgICAgZGVmIHRlc3RfZ2VuKCk6Cisg
ICAgICAgICAgICB5aWVsZCAibTEiLCBmdW5jMSwgMTUsIDMqNQorICAgICAgICAgICAgeWllbGQg
Im0yIiwgZnVuYzEsIDQyLCA2KjcKKyAgICAgICAgZGVmIHRlc3RfZ2VuMigpOgorICAgICAgICAg
ICAgZm9yIGsgaW4gcmFuZ2UoMTApOgorICAgICAgICAgICAgICAgIHlpZWxkIGZ1bmMxLCAxLCAx
CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcmEnKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqeWllbGQgdGVzdHMgYXJlIGRl
cHJlY2F0ZWQsIGFuZCBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wKicsCisg
ICAgICAgICcqMiBwYXNzZWQqJywKKyAgICBdKQorICAgIGFzc2VydCByZXN1bHQuc3Rkb3V0LnN0
cigpLmNvdW50KCd5aWVsZCB0ZXN0cyBhcmUgZGVwcmVjYXRlZCcpID09IDIKKworCitkZWYgdGVz
dF9mdW5jYXJnX3ByZWZpeF9kZXByZWNhdGlvbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fdmFsdWUoKToKKyAgICAgICAg
ICAgIHJldHVybiAxMAorCisgICAgICAgIGRlZiB0ZXN0X2Z1bmNhcmdfcHJlZml4KHZhbHVlKToK
KyAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAxMAorICAgICIiIikKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJhJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAoJypweXRlc3RfZnVuY2FyZ19fdmFsdWU6ICcKKyAgICAgICAgICdkZWNsYXJp
bmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBpcyBkZXByZWNhdGVk
ICcKKyAgICAgICAgICdhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMC4g
ICcKKyAgICAgICAgICdQbGVhc2UgcmVtb3ZlIHRoZSBwcmVmaXggYW5kIHVzZSB0aGUgQHB5dGVz
dC5maXh0dXJlIGRlY29yYXRvciBpbnN0ZWFkLicpLAorICAgICAgICAnKjEgcGFzc2VkKicsCisg
ICAgXSkKKworCitkZWYgdGVzdF9weXRlc3Rfc2V0dXBfY2ZnX2RlcHJlY2F0ZWQodGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlZmlsZSgnLmNmZycsIHNldHVwPScnJworICAgICAgICBbcHl0ZXN0
XQorICAgICAgICBhZGRvcHRzID0gLS12ZXJib3NlCisgICAgJycnKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqcHl0
ZXN0KnNlY3Rpb24gaW4gc2V0dXAuY2ZnIGZpbGVzIGlzIGRlcHJlY2F0ZWQqdXNlKnRvb2w6cHl0
ZXN0Kmluc3RlYWQqJ10pCisKKworZGVmIHRlc3Rfc3RyX2FyZ3NfZGVwcmVjYXRlZCh0bXBkaXIs
IHRlc3RkaXIpOgorICAgICIiIkRlcHJlY2F0ZSBwYXNzaW5nIHN0cmluZ3MgdG8gcHl0ZXN0Lm1h
aW4oKS4gU2NoZWR1bGVkIGZvciByZW1vdmFsIGluIHB5dGVzdC00LjAuIiIiCisgICAgZnJvbSBf
cHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgIHdhcm5pbmdzID0g
W10KKworICAgIGNsYXNzIENvbGxlY3Qob2JqZWN0KToKKyAgICAgICAgZGVmIHB5dGVzdF9sb2d3
YXJuaW5nKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKG1lc3Nh
Z2UpCisKKyAgICByZXQgPSBweXRlc3QubWFpbigiJXMgLXgiICUgdG1wZGlyLCBwbHVnaW5zPVtD
b2xsZWN0KCldKQorICAgIHRlc3RkaXIuZGVsZXRlX2xvYWRlZF9tb2R1bGVzKCkKKyAgICBtc2cg
PSAoJ3Bhc3NpbmcgYSBzdHJpbmcgdG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAnCisg
ICAgICAgICAgICdwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5zdGVhZC4nKQorICAgIGFzc2Vy
dCBtc2cgaW4gd2FybmluZ3MKKyAgICBhc3NlcnQgcmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RF
RAorCisKK2RlZiB0ZXN0X2dldGZ1bmNhcmd2YWx1ZV9pc19kZXByZWNhdGVkKHJlcXVlc3QpOgor
ICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwocmVxdWVzdC5nZXRmdW5jYXJndmFsdWUsICd0bXBk
aXInKQorCisKK2RlZiB0ZXN0X3Jlc3VsdGxvZ19pc19kZXByZWNhdGVkKHRlc3RkaXIpOgorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWhlbHAnKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbJypERVBSRUNBVEVEIHBhdGggZm9yIG1hY2hpbmUtcmVhZGFibGUgcmVz
dWx0IGxvZyonXSkKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgZGVmIHRl
c3QoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoJy0tcmVzdWx0LWxvZz0lcycgJSB0ZXN0ZGlyLnRtcGRpci5qb2luKCdyZXN1bHQu
bG9nJykpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJyotLXJl
c3VsdC1sb2cgaXMgZGVwcmVjYXRlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIHB5dGVz
dCA0LjAqJywKKyAgICAgICAgJypTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvKi91c2FnZS5o
dG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1mb3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24q
JywKKyAgICBdKQorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnYWx3YXlzOk1ldGFm
dW5jLmFkZGNhbGwgaXMgZGVwcmVjYXRlZCcpCitkZWYgdGVzdF9tZXRhZnVuY19hZGRjYWxsX2Rl
cHJlY2F0ZWQodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBk
ZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgIG1ldGFmdW5j
LmFkZGNhbGwoeydpJzogMX0pCisgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnaSc6IDJ9
KQorICAgICAgICBkZWYgdGVzdF9mdW5jKGkpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikK
KyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnKQorICAgIGFzc2VydCByZXMucmV0ID09
IDAKKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKk1ldGFmdW5jLmFk
ZGNhbGwgaXMgZGVwcmVjYXRlZCoiLAorICAgICAgICAiKjIgcGFzc2VkLCAyIHdhcm5pbmdzKiIs
CisgICAgXSkKKworCitkZWYgdGVzdF90ZXJtaW5hbF9yZXBvcnRlcl93cml0ZXJfYXR0cihweXRl
c3Rjb25maWcpOgorICAgICIiIkNoZWNrIHRoYXQgVGVybWluYWxSZXBvcnRlci5fdHcgaXMgYWxz
byBhdmFpbGFibGUgYXMgJ3dyaXRlcicgKCMyOTg0KQorICAgIFRoaXMgYXR0cmlidXRlIGlzIHBs
YW5uZWQgdG8gYmUgZGVwcmVjYXRlZCBpbiAzLjQuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAg
ICBpbXBvcnQgeGRpc3QgICMgbm9xYQorICAgICAgICBweXRlc3Quc2tpcCgneGRpc3Qgd29ya2Vy
cyBkaXNhYmxlIHRoZSB0ZXJtaW5hbCByZXBvcnRlciBwbHVnaW4nKQorICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKKyAgICAgICAgcGFzcworICAgIHRlcm1pbmFsX3JlcG9ydGVyID0gcHl0ZXN0Y29u
ZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigndGVybWluYWxyZXBvcnRlcicpCisgICAgYXNz
ZXJ0IHRlcm1pbmFsX3JlcG9ydGVyLndyaXRlciBpcyB0ZXJtaW5hbF9yZXBvcnRlci5fdHcKKwor
CitkZWYgdGVzdF9weXRlc3RfY2F0Y2hsb2dfZGVwcmVjYXRlZCh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMocHl0ZXN0Y29uZmlnKToK
KyAgICAgICAgICAgIHB5dGVzdGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKE5vbmUsICdw
eXRlc3RfY2F0Y2hsb2cnKQorICAgICIiIikKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMAorICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICIqcHl0ZXN0LWNhdGNobG9nIHBsdWdpbiBoYXMgYmVlbiBtZXJnZWQgaW50byB0
aGUgY29yZSoiLAorICAgICAgICAiKjEgcGFzc2VkLCAxIHdhcm5pbmdzKiIsCisgICAgXSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvY3JlYXRlX2V4ZWN1dGFibGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjRmNjA4OGVmN2QwYWZlZmRkZWVlZjZkNTFkNzUzODY1NTkzNjg5MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5
CkBAIC0wLDAgKzEsMTIgQEAKKyIiIgorR2VuZXJhdGVzIGFuIGV4ZWN1dGFibGUgd2l0aCBweXRl
c3QgcnVubmVyIGVtYmVkZGVkIHVzaW5nIFB5SW5zdGFsbGVyLgorIiIiCitpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgorICAgIGltcG9ydCBweXRlc3QKKyAgICBpbXBvcnQgc3VicHJvY2Vzcwor
CisgICAgaGlkZGVuID0gW10KKyAgICBmb3IgeCBpbiBweXRlc3QuZnJlZXplX2luY2x1ZGVzKCk6
CisgICAgICAgIGhpZGRlbi5leHRlbmQoWyctLWhpZGRlbi1pbXBvcnQnLCB4XSkKKyAgICBhcmdz
ID0gWydweWluc3RhbGxlcicsICctLW5vY29uZmlybSddICsgaGlkZGVuICsgWydydW50ZXN0c19z
Y3JpcHQucHknXQorICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgnICcuam9pbihhcmdzKSwgc2hl
bGw9VHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3Rz
X3NjcmlwdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMjgxNjAxYzA2ODQ5MzllZTMzMGU2Y2U3ZGU1MDE3ZTNlY2U2OTU3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvcnVudGVzdHNfc2Ny
aXB0LnB5CkBAIC0wLDAgKzEsOSBAQAorIiIiCitUaGlzIGlzIHRoZSBzY3JpcHQgdGhhdCBpcyBh
Y3R1YWxseSBmcm96ZW4gaW50byBhbiBleGVjdXRhYmxlOiBzaW1wbHkgZXhlY3V0ZXMKK3B5LnRl
c3QgbWFpbigpLgorIiIiCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgaW1wb3J0
IHN5cworICAgIGltcG9ydCBweXRlc3QKKyAgICBzeXMuZXhpdChweXRlc3QubWFpbigpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdGVzdF9kb2N0ZXN0LnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfZG9jdGVzdC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTE4YTRiNjhjYzk2N2E1NWNjODA1YTQzOWZiNTQzYTc5YWNiMGFkZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfZG9jdGVz
dC50eHQKQEAgLTAsMCArMSw2IEBACisKKworVGVzdGluZyBkb2N0ZXN0OjoKKworICAgID4+PiAx
ICsgMQorICAgIDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3Rz
L3Rlc3RfdHJpdmlhbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3Rf
dHJpdmlhbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTYyMmI4NTBiYjVjMTNiZDFkODI0N2FlNWZiOGVjNjU3
YzkzMjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVz
dHMvdGVzdF90cml2aWFsLnB5CkBAIC0wLDAgKzEsNyBAQAorCitkZWYgdGVzdF91cHBlcigpOgor
ICAgIGFzc2VydCAnZm9vJy51cHBlcigpID09ICdGT08nCisKKworZGVmIHRlc3RfbG93ZXIoKToK
KyAgICBhc3NlcnQgJ0ZPTycubG93ZXIoKSA9PSAnZm9vJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2ZyZWV6ZS90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDZmZjk4ODgzNzU3
NzU5NjEzMjNmNDg4ZTZiOGU4ZjhmNzkyYjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdGVzdF9kb2N0ZXN0LnR4
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfdHJpdmlhbC5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdG94X3J1bi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZnJlZXplL3RveF9ydW4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZjMzg4MDQwOTU3YjYy
ODA0ZDE2ZTFmNDEzOGVmN2NiNmU1OGZhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZnJlZXplL3RveF9ydW4ucHkKQEAgLTAsMCArMSwxMiBAQAorIiIiCitDYWxsZWQg
YnkgdG94LmluaTogdXNlcyB0aGUgZ2VuZXJhdGVkIGV4ZWN1dGFibGUgdG8gcnVuIHRoZSB0ZXN0
cyBpbiAuL3Rlc3RzLworZGlyZWN0b3J5LgorIiIiCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgorICAgIGltcG9ydCBvcworICAgIGltcG9ydCBzeXMKKworICAgIGV4ZWN1dGFibGUgPSBvcy5w
YXRoLmpvaW4ob3MuZ2V0Y3dkKCksICdkaXN0JywgJ3J1bnRlc3RzX3NjcmlwdCcsICdydW50ZXN0
c19zY3JpcHQnKQorICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKToKKyAgICAg
ICAgZXhlY3V0YWJsZSArPSAnLmV4ZScKKyAgICBzeXMuZXhpdChvcy5zeXN0ZW0oJyVzIHRlc3Rz
JyAlIGV4ZWN1dGFibGUpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMmFhNjUwYmYzYjE2ZDViNmFjNmE4MGUxZDJmNzY0ZjQ1YThiODRmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUv
Y3JlYXRlX2V4ZWN1dGFibGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS9ydW50ZXN0
c19zY3JpcHQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90b3hfcnVuLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9maXh0dXJlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZml4dHVyZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjdi
MzExMzdmZmNhZWY1M2RjN2I0OTk4MzgyYWRlZTI2YzQyY2I4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZml4dHVyZS5weQpAQCAtMCwwICsxLDcw
IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGxvZ2dpbmcKKworCitsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKK3N1YmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fICsgJy5iYXonKQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVfaGVscCh0ZXN0ZGly
KToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1maXh0dXJlcycpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKmNhcGxvZyonXSkKKworCitkZWYgdGVzdF9jaGFu
Z2VfbGV2ZWwoY2FwbG9nKToKKyAgICBjYXBsb2cuc2V0X2xldmVsKGxvZ2dpbmcuSU5GTykKKyAg
ICBsb2dnZXIuZGVidWcoJ2hhbmRsZXIgREVCVUcgbGV2ZWwnKQorICAgIGxvZ2dlci5pbmZvKCdo
YW5kbGVyIElORk8gbGV2ZWwnKQorCisgICAgY2FwbG9nLnNldF9sZXZlbChsb2dnaW5nLkNSSVRJ
Q0FMLCBsb2dnZXI9c3VibG9nZ2VyLm5hbWUpCisgICAgc3VibG9nZ2VyLndhcm5pbmcoJ2xvZ2dl
ciBXQVJOSU5HIGxldmVsJykKKyAgICBzdWJsb2dnZXIuY3JpdGljYWwoJ2xvZ2dlciBDUklUSUNB
TCBsZXZlbCcpCisKKyAgICBhc3NlcnQgJ0RFQlVHJyBub3QgaW4gY2FwbG9nLnRleHQKKyAgICBh
c3NlcnQgJ0lORk8nIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICdXQVJOSU5HJyBub3QgaW4g
Y2FwbG9nLnRleHQKKyAgICBhc3NlcnQgJ0NSSVRJQ0FMJyBpbiBjYXBsb2cudGV4dAorCisKK2Rl
ZiB0ZXN0X3dpdGhfc3RhdGVtZW50KGNhcGxvZyk6CisgICAgd2l0aCBjYXBsb2cuYXRfbGV2ZWwo
bG9nZ2luZy5JTkZPKToKKyAgICAgICAgbG9nZ2VyLmRlYnVnKCdoYW5kbGVyIERFQlVHIGxldmVs
JykKKyAgICAgICAgbG9nZ2VyLmluZm8oJ2hhbmRsZXIgSU5GTyBsZXZlbCcpCisKKyAgICAgICAg
d2l0aCBjYXBsb2cuYXRfbGV2ZWwobG9nZ2luZy5DUklUSUNBTCwgbG9nZ2VyPXN1YmxvZ2dlci5u
YW1lKToKKyAgICAgICAgICAgIHN1YmxvZ2dlci53YXJuaW5nKCdsb2dnZXIgV0FSTklORyBsZXZl
bCcpCisgICAgICAgICAgICBzdWJsb2dnZXIuY3JpdGljYWwoJ2xvZ2dlciBDUklUSUNBTCBsZXZl
bCcpCisKKyAgICBhc3NlcnQgJ0RFQlVHJyBub3QgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQg
J0lORk8nIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICdXQVJOSU5HJyBub3QgaW4gY2FwbG9n
LnRleHQKKyAgICBhc3NlcnQgJ0NSSVRJQ0FMJyBpbiBjYXBsb2cudGV4dAorCisKK2RlZiB0ZXN0
X2xvZ19hY2Nlc3MoY2FwbG9nKToKKyAgICBsb2dnZXIuaW5mbygnYm9vICVzJywgJ2FyZycpCisg
ICAgYXNzZXJ0IGNhcGxvZy5yZWNvcmRzWzBdLmxldmVsbmFtZSA9PSAnSU5GTycKKyAgICBhc3Nl
cnQgY2FwbG9nLnJlY29yZHNbMF0ubXNnID09ICdib28gJXMnCisgICAgYXNzZXJ0ICdib28gYXJn
JyBpbiBjYXBsb2cudGV4dAorCisKK2RlZiB0ZXN0X3JlY29yZF90dXBsZXMoY2FwbG9nKToKKyAg
ICBsb2dnZXIuaW5mbygnYm9vICVzJywgJ2FyZycpCisKKyAgICBhc3NlcnQgY2FwbG9nLnJlY29y
ZF90dXBsZXMgPT0gWworICAgICAgICAoX19uYW1lX18sIGxvZ2dpbmcuSU5GTywgJ2JvbyBhcmcn
KSwKKyAgICBdCisKKworZGVmIHRlc3RfdW5pY29kZShjYXBsb2cpOgorICAgIGxvZ2dlci5pbmZv
KHUnYsWrJykKKyAgICBhc3NlcnQgY2FwbG9nLnJlY29yZHNbMF0ubGV2ZWxuYW1lID09ICdJTkZP
JworICAgIGFzc2VydCBjYXBsb2cucmVjb3Jkc1swXS5tc2cgPT0gdSdixasnCisgICAgYXNzZXJ0
IHUnYsWrJyBpbiBjYXBsb2cudGV4dAorCisKK2RlZiB0ZXN0X2NsZWFyKGNhcGxvZyk6CisgICAg
bG9nZ2VyLmluZm8odSdixasnKQorICAgIGFzc2VydCBsZW4oY2FwbG9nLnJlY29yZHMpCisgICAg
Y2FwbG9nLmNsZWFyKCkKKyAgICBhc3NlcnQgbm90IGxlbihjYXBsb2cucmVjb3JkcykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X3JlcG9ydGluZy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X3JlcG9ydGluZy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MDJlZTIxNzIyNzkzYzRhMWM2NzVmN2FlMzYzYmQ5NmE2YTdiMDEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfcmVwb3J0aW5nLnB5CkBAIC0wLDAg
KzEsMzk4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IG9zCitpbXBvcnQgcHl0
ZXN0CisKKworZGVmIHRlc3Rfbm90aGluZ19sb2dnZWQodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgZGVmIHRlc3RfZm9v
KCk6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCd0ZXh0IGdvaW5nIHRvIHN0ZG91dCcp
CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCd0ZXh0IGdvaW5nIHRvIHN0ZGVycicpCisg
ICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgc3Rkb3V0IGNhbGwgLSonLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQgZ29pbmcgdG8gc3Rkb3V0J10pCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgc3RkZXJyIGNhbGwgLSon
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQgZ29pbmcgdG8gc3RkZXJy
J10pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6CisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENhcHR1cmVkICpsb2cgY2FsbCAt
KiddKQorCisKK2RlZiB0ZXN0X21lc3NhZ2VzX2xvZ2dlZCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgaW1wb3J0IGxvZ2dp
bmcKKworICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworICAg
ICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ3RleHQg
Z29pbmcgdG8gc3Rkb3V0JykKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3RleHQgZ29p
bmcgdG8gc3RkZXJyJykKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCd0ZXh0IGdvaW5nIHRvIGxv
Z2dlcicpCisgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgJycnKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgKmxvZyBjYWxsIC0qJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqdGV4dCBnb2luZyB0byBsb2dnZXIq
J10pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgc3Rkb3V0
IGNhbGwgLSonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQgZ29pbmcg
dG8gc3Rkb3V0J10pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVy
ZWQgc3RkZXJyIGNhbGwgLSonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rl
eHQgZ29pbmcgdG8gc3RkZXJyJ10pCisKKworZGVmIHRlc3Rfc2V0dXBfbG9nZ2luZyh0ZXN0ZGly
KToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisK
KyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKyAgICAgICAg
ZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCd0
ZXh0IGdvaW5nIHRvIGxvZ2dlciBmcm9tIHNldHVwJykKKworICAgICAgICBkZWYgdGVzdF9mb28o
KToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCd0ZXh0IGdvaW5nIHRvIGxvZ2dlciBmcm9tIGNh
bGwnKQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICcnJykKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENhcHR1cmVkICpsb2cgc2V0dXAgLSonLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyp0ZXh0IGdvaW5nIHRvIGxvZ2dlciBm
cm9tIHNldHVwKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi0gQ2FwdHVy
ZWQgKmxvZyBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqdGV4
dCBnb2luZyB0byBsb2dnZXIgZnJvbSBjYWxsKiddKQorCisKK2RlZiB0ZXN0X3RlYXJkb3duX2xv
Z2dpbmcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBv
cnQgbG9nZ2luZworCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQorCisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ3Rl
eHQgZ29pbmcgdG8gbG9nZ2VyIGZyb20gY2FsbCcpCisKKyAgICAgICAgZGVmIHRlYXJkb3duX2Z1
bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCd0ZXh0IGdvaW5nIHRv
IGxvZ2dlciBmcm9tIHRlYXJkb3duJykKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAg
ICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1
bHQucmV0ID09IDEKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0dXJl
ZCAqbG9nIGNhbGwgLSonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyp0ZXh0
IGdvaW5nIHRvIGxvZ2dlciBmcm9tIGNhbGwqJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcqLSBDYXB0dXJlZCAqbG9nIHRlYXJkb3duIC0qJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcqdGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSB0ZWFyZG93bionXSkK
KworCitkZWYgdGVzdF9kaXNhYmxlX2xvZ19jYXB0dXJpbmcodGVzdGRpcik6CisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIGltcG9ydCBsb2dn
aW5nCisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKyAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCd0ZXh0
IGdvaW5nIHRvIHN0ZG91dCcpCisgICAgICAgICAgICBsb2dnZXIud2FybmluZygnY2F0Y2ggbWUg
aWYgeW91IGNhbiEnKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgndGV4dCBnb2luZyB0
byBzdGRlcnInKQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICcnJykKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1uby1wcmludC1sb2dzJykKKyAgICBwcmludChy
ZXN1bHQuc3Rkb3V0KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtKicsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCBnb2luZyB0byBzdGRvdXQnXSkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0dXJlZCBzdGRlcnIgY2FsbCAtKics
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCBnb2luZyB0byBzdGRlcnIn
XSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgKmxvZyBjYWxsIC0q
J10pCisKKworZGVmIHRlc3RfZGlzYWJsZV9sb2dfY2FwdHVyaW5nX2luaSh0ZXN0ZGlyKToKKyAg
ICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICcnJworICAgICAgICBbcHl0ZXN0XQorICAgICAg
ICBsb2dfcHJpbnQ9RmFsc2UKKyAgICAgICAgJycnCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBpbXBvcnQgbG9nZ2luZworCisg
ICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisgICAgICAgIGRl
ZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgndGV4dCBnb2luZyB0
byBzdGRvdXQnKQorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoJ2NhdGNoIG1lIGlmIHlvdSBj
YW4hJykKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3RleHQgZ29pbmcgdG8gc3RkZXJy
JykKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAnJycpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIHByaW50KHJlc3VsdC5zdGRvdXQpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENh
cHR1cmVkIHN0ZG91dCBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd0ZXh0IGdvaW5nIHRvIHN0ZG91dCddKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbJyotIENhcHR1cmVkIHN0ZGVyciBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd0ZXh0IGdvaW5nIHRvIHN0ZGVyciddKQorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWycqLSBDYXB0dXJlZCAqbG9nIGNhbGwgLSonXSkKKworCitkZWYgdGVzdF9sb2dfY2xp
X2RlZmF1bHRfbGV2ZWwodGVzdGRpcik6CisgICAgIyBEZWZhdWx0IGxvZyBmaWxlIGxldmVsCisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IGltcG9ydCBsb2dnaW5nCisgICAgICAgIGRlZiB0ZXN0X2xvZ19jbGkocmVxdWVzdCk6CisgICAg
ICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbign
bG9nZ2luZy1wbHVnaW4nKQorICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbi5sb2dfY2xpX2hhbmRs
ZXIubGV2ZWwgPT0gbG9nZ2luZy5XQVJOSU5HCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dl
cignY2F0Y2hsb2cnKS5pbmZvKCJUaGlzIGxvZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIikKKyAg
ICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLndhcm5pbmcoIlRoaXMgbG9n
IG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIpCisgICAgICAgICAgICBwcmludCgnUEFTU0VEJykKKyAg
ICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnKQorCisgICAgIyBm
bm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNzZXJ0aW9uIGludGVybmFsbHkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAndGVzdF9sb2dfY2xpX2RlZmF1bHRfbGV2ZWwu
cHkgUEFTU0VEJywKKyAgICBdKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICIqIFRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIKKyAgICBdKQorICAgIGZv
ciBsaW5lIGluIHJlc3VsdC5lcnJsaW5lczoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNz
ZXJ0ICJUaGlzIGxvZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIiBpbiBsaW5lCisgICAgICAgICAg
ICBweXRlc3QuZmFpbCgiQSBsb2cgbWVzc2FnZSB3YXMgc2hvd24gYW5kIGl0IHNob3VsZG4ndCBo
YXZlIGJlZW4iKQorICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgICAgICBj
b250aW51ZQorCisgICAgIyBtYWtlIHN1cmUgdGhhdCB0aGF0IHdlIGdldCBhICcwJyBleGl0IGNv
ZGUgZm9yIHRoZSB0ZXN0c3VpdGUKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVm
IHRlc3RfbG9nX2NsaV9sZXZlbCh0ZXN0ZGlyKToKKyAgICAjIERlZmF1bHQgbG9nIGZpbGUgbGV2
ZWwKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgZGVmIHRlc3RfbG9nX2NsaShyZXF1ZXN0KToK
KyAgICAgICAgICAgIHBsdWdpbiA9IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1
Z2luKCdsb2dnaW5nLXBsdWdpbicpCisgICAgICAgICAgICBhc3NlcnQgcGx1Z2luLmxvZ19jbGlf
aGFuZGxlci5sZXZlbCA9PSBsb2dnaW5nLklORk8KKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9n
Z2VyKCdjYXRjaGxvZycpLmRlYnVnKCJUaGlzIGxvZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIikK
KyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIlRoaXMgbG9n
IG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIpCisgICAgICAgICAgICBwcmludCgnUEFTU0VEJykKKyAg
ICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnLCAnLS1sb2ctY2xp
LWxldmVsPUlORk8nKQorCisgICAgIyBmbm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNzZXJ0aW9uIGlu
dGVybmFsbHkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAndGVz
dF9sb2dfY2xpX2xldmVsLnB5IFBBU1NFRCcsCisgICAgXSkKKyAgICByZXN1bHQuc3RkZXJyLmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAiKiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24i
CisgICAgXSkKKyAgICBmb3IgbGluZSBpbiByZXN1bHQuZXJybGluZXM6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBiZSBzaG93biIgaW4g
bGluZQorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoIkEgbG9nIG1lc3NhZ2Ugd2FzIHNob3duIGFu
ZCBpdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIikKKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9y
OgorICAgICAgICAgICAgY29udGludWUKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhhdCB3ZSBn
ZXQgYSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMAorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1zJywgJy0tbG9nLWxl
dmVsPUlORk8nKQorCisgICAgIyBmbm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNzZXJ0aW9uIGludGVy
bmFsbHkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAndGVzdF9s
b2dfY2xpX2xldmVsLnB5IFBBU1NFRCcsCisgICAgXSkKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0
Y2hfbGluZXMoWworICAgICAgICAiKiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iCisg
ICAgXSkKKyAgICBmb3IgbGluZSBpbiByZXN1bHQuZXJybGluZXM6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBiZSBzaG93biIgaW4gbGlu
ZQorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoIkEgbG9nIG1lc3NhZ2Ugd2FzIHNob3duIGFuZCBp
dCBzaG91bGRuJ3QgaGF2ZSBiZWVuIikKKyAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgor
ICAgICAgICAgICAgY29udGludWUKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhhdCB3ZSBnZXQg
YSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorCisKK2RlZiB0ZXN0X2xvZ19jbGlfaW5pX2xldmVsKHRlc3RkaXIpOgorICAgIHRlc3Rk
aXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGxvZ19j
bGlfbGV2ZWwgPSBJTkZPCisgICAgICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycn
CisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAg
ZGVmIHRlc3RfbG9nX2NsaShyZXF1ZXN0KToKKyAgICAgICAgICAgIHBsdWdpbiA9IHJlcXVlc3Qu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdsb2dnaW5nLXBsdWdpbicpCisgICAgICAg
ICAgICBhc3NlcnQgcGx1Z2luLmxvZ19jbGlfaGFuZGxlci5sZXZlbCA9PSBsb2dnaW5nLklORk8K
KyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmRlYnVnKCJUaGlzIGxv
ZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIikKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2Vy
KCdjYXRjaGxvZycpLmluZm8oIlRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIpCisgICAg
ICAgICAgICBwcmludCgnUEFTU0VEJykKKyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgnLXMnKQorCisgICAgIyBmbm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNzZXJ0aW9u
IGludGVybmFsbHkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAn
dGVzdF9sb2dfY2xpX2luaV9sZXZlbC5weSBQQVNTRUQnLAorICAgIF0pCisgICAgcmVzdWx0LnN0
ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIiogVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJl
IHNob3duIgorICAgIF0pCisgICAgZm9yIGxpbmUgaW4gcmVzdWx0LmVycmxpbmVzOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hv
d24iIGluIGxpbmUKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJBIGxvZyBtZXNzYWdlIHdhcyBz
aG93biBhbmQgaXQgc2hvdWxkbid0IGhhdmUgYmVlbiIpCisgICAgICAgIGV4Y2VwdCBBc3NlcnRp
b25FcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAjIG1ha2Ugc3VyZSB0aGF0IHRo
YXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0ZQorICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF9sb2dfZmlsZV9jbGkodGVzdGRpcik6CisgICAg
IyBEZWZhdWx0IGxvZyBmaWxlIGxldmVsCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgIGRlZiB0
ZXN0X2xvZ19maWxlKHJlcXVlc3QpOgorICAgICAgICAgICAgcGx1Z2luID0gcmVxdWVzdC5jb25m
aWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2xvZ2dpbmctcGx1Z2luJykKKyAgICAgICAgICAg
IGFzc2VydCBwbHVnaW4ubG9nX2ZpbGVfaGFuZGxlci5sZXZlbCA9PSBsb2dnaW5nLldBUk5JTkcK
KyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIlRoaXMgbG9n
IG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iKQorICAgICAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIo
J2NhdGNobG9nJykud2FybmluZygiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIikKKyAg
ICAgICAgICAgIHByaW50KCdQQVNTRUQnKQorICAgICcnJykKKworICAgIGxvZ19maWxlID0gdGVz
dGRpci50bXBkaXIuam9pbigncHl0ZXN0LmxvZycpLnN0cnBhdGgKKworICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCctcycsICctLWxvZy1maWxlPXswfScuZm9ybWF0KGxvZ19maWxlKSkK
KworICAgICMgZm5tYXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2ZpbGVfY2xp
LnB5IFBBU1NFRCcsCisgICAgXSkKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhhdCB3ZSBnZXQg
YSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmlsZSkKKyAgICB3aXRoIG9wZW4o
bG9nX2ZpbGUpIGFzIHJmaDoKKyAgICAgICAgY29udGVudHMgPSByZmgucmVhZCgpCisgICAgICAg
IGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIiBpbiBjb250ZW50cworICAg
ICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iIG5vdCBpbiBjb250
ZW50cworCisKK2RlZiB0ZXN0X2xvZ19maWxlX2NsaV9sZXZlbCh0ZXN0ZGlyKToKKyAgICAjIERl
ZmF1bHQgbG9nIGZpbGUgbGV2ZWwKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgZGVmIHRlc3Rf
bG9nX2ZpbGUocmVxdWVzdCk6CisgICAgICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZpZy5w
bHVnaW5tYW5hZ2VyLmdldHBsdWdpbignbG9nZ2luZy1wbHVnaW4nKQorICAgICAgICAgICAgYXNz
ZXJ0IHBsdWdpbi5sb2dfZmlsZV9oYW5kbGVyLmxldmVsID09IGxvZ2dpbmcuSU5GTworICAgICAg
ICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2NhdGNobG9nJykuZGVidWcoIlRoaXMgbG9nIG1lc3Nh
Z2Ugd29uJ3QgYmUgc2hvd24iKQorICAgICAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2NhdGNo
bG9nJykuaW5mbygiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIikKKyAgICAgICAgICAg
IHByaW50KCdQQVNTRUQnKQorICAgICcnJykKKworICAgIGxvZ19maWxlID0gdGVzdGRpci50bXBk
aXIuam9pbigncHl0ZXN0LmxvZycpLnN0cnBhdGgKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCctcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbG9nLWZpbGU9
ezB9Jy5mb3JtYXQobG9nX2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICct
LWxvZy1maWxlLWxldmVsPUlORk8nKQorCisgICAgIyBmbm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNz
ZXJ0aW9uIGludGVybmFsbHkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAndGVzdF9sb2dfZmlsZV9jbGlfbGV2ZWwucHkgUEFTU0VEJywKKyAgICBdKQorCisgICAg
IyBtYWtlIHN1cmUgdGhhdCB0aGF0IHdlIGdldCBhICcwJyBleGl0IGNvZGUgZm9yIHRoZSB0ZXN0
c3VpdGUKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgYXNzZXJ0IG9zLnBhdGguaXNm
aWxlKGxvZ19maWxlKQorICAgIHdpdGggb3Blbihsb2dfZmlsZSkgYXMgcmZoOgorICAgICAgICBj
b250ZW50cyA9IHJmaC5yZWFkKCkKKyAgICAgICAgYXNzZXJ0ICJUaGlzIGxvZyBtZXNzYWdlIHdp
bGwgYmUgc2hvd24iIGluIGNvbnRlbnRzCisgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2Fn
ZSB3b24ndCBiZSBzaG93biIgbm90IGluIGNvbnRlbnRzCisKKworZGVmIHRlc3RfbG9nX2ZpbGVf
aW5pKHRlc3RkaXIpOgorICAgIGxvZ19maWxlID0gdGVzdGRpci50bXBkaXIuam9pbigncHl0ZXN0
LmxvZycpLnN0cnBhdGgKKworICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAg
ICAgIFtweXRlc3RdCisgICAgICAgIGxvZ19maWxlPXswfQorICAgICAgICAiIiIuZm9ybWF0KGxv
Z19maWxlKSkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgZGVmIHRlc3RfbG9nX2ZpbGUocmVx
dWVzdCk6CisgICAgICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LmdldHBsdWdpbignbG9nZ2luZy1wbHVnaW4nKQorICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbi5s
b2dfZmlsZV9oYW5kbGVyLmxldmVsID09IGxvZ2dpbmcuV0FSTklORworICAgICAgICAgICAgbG9n
Z2luZy5nZXRMb2dnZXIoJ2NhdGNobG9nJykuaW5mbygiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBi
ZSBzaG93biIpCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hsb2cnKS53YXJu
aW5nKCJUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iKQorICAgICAgICAgICAgcHJpbnQo
J1BBU1NFRCcpCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1z
JykKKworICAgICMgZm5tYXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5Cisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2ZpbGVf
aW5pLnB5IFBBU1NFRCcsCisgICAgXSkKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhhdCB3ZSBn
ZXQgYSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMAorICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmlsZSkKKyAgICB3aXRoIG9w
ZW4obG9nX2ZpbGUpIGFzIHJmaDoKKyAgICAgICAgY29udGVudHMgPSByZmgucmVhZCgpCisgICAg
ICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIiBpbiBjb250ZW50cwor
ICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iIG5vdCBpbiBj
b250ZW50cworCisKK2RlZiB0ZXN0X2xvZ19maWxlX2luaV9sZXZlbCh0ZXN0ZGlyKToKKyAgICBs
b2dfZmlsZSA9IHRlc3RkaXIudG1wZGlyLmpvaW4oJ3B5dGVzdC5sb2cnKS5zdHJwYXRoCisKKyAg
ICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAg
ICBsb2dfZmlsZT17MH0KKyAgICAgICAgbG9nX2ZpbGVfbGV2ZWwgPSBJTkZPCisgICAgICAgICIi
Ii5mb3JtYXQobG9nX2ZpbGUpKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICBkZWYgdGVzdF9s
b2dfZmlsZShyZXF1ZXN0KToKKyAgICAgICAgICAgIHBsdWdpbiA9IHJlcXVlc3QuY29uZmlnLnBs
dWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdsb2dnaW5nLXBsdWdpbicpCisgICAgICAgICAgICBhc3Nl
cnQgcGx1Z2luLmxvZ19maWxlX2hhbmRsZXIubGV2ZWwgPT0gbG9nZ2luZy5JTkZPCisgICAgICAg
ICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hsb2cnKS5kZWJ1ZygiVGhpcyBsb2cgbWVzc2Fn
ZSB3b24ndCBiZSBzaG93biIpCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hs
b2cnKS5pbmZvKCJUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iKQorICAgICAgICAgICAg
cHJpbnQoJ1BBU1NFRCcpCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoJy1zJykKKworICAgICMgZm5tYXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5h
bGx5CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9n
X2ZpbGVfaW5pX2xldmVsLnB5IFBBU1NFRCcsCisgICAgXSkKKworICAgICMgbWFrZSBzdXJlIHRo
YXQgdGhhdCB3ZSBnZXQgYSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmlsZSkK
KyAgICB3aXRoIG9wZW4obG9nX2ZpbGUpIGFzIHJmaDoKKyAgICAgICAgY29udGVudHMgPSByZmgu
cmVhZCgpCisgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIiBp
biBjb250ZW50cworICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hv
d24iIG5vdCBpbiBjb250ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dn
aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkwMWMzNzFiYzM2MjkwYzkwNWVmMzE1ZDE4NDQ1NTQ1NjlkYTY3
YTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9s
b2dnaW5nL3Rlc3RfZml4dHVyZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0
X3JlcG9ydGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBw
cm94LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMwMGUxY2U4NmY3ODNmYWMzYjdhYzQ5MDQ5NzE2NWEyMzJjOGQ2MTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9hcHByb3gucHkKQEAgLTAsMCArMSwzOTIg
QEAKKyMgZW5jb2Rpbmc6IHV0Zi04CitpbXBvcnQgb3BlcmF0b3IKK2ltcG9ydCBzeXMKK2ltcG9y
dCBweXRlc3QKK2ltcG9ydCBkb2N0ZXN0CisKK2Zyb20gcHl0ZXN0IGltcG9ydCBhcHByb3gKK2Zy
b20gb3BlcmF0b3IgaW1wb3J0IGVxLCBuZQorZnJvbSBkZWNpbWFsIGltcG9ydCBEZWNpbWFsCitm
cm9tIGZyYWN0aW9ucyBpbXBvcnQgRnJhY3Rpb24KK2luZiwgbmFuID0gZmxvYXQoJ2luZicpLCBm
bG9hdCgnbmFuJykKKworCitjbGFzcyBNeURvY1Rlc3RSdW5uZXIoZG9jdGVzdC5Eb2NUZXN0UnVu
bmVyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgZG9jdGVzdC5Eb2NUZXN0
UnVubmVyLl9faW5pdF9fKHNlbGYpCisKKyAgICBkZWYgcmVwb3J0X2ZhaWx1cmUoc2VsZiwgb3V0
LCB0ZXN0LCBleGFtcGxlLCBnb3QpOgorICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiJ3t9
JyBldmFsdWF0ZXMgdG8gJ3t9Jywgbm90ICd7fSciLmZvcm1hdCgKKyAgICAgICAgICAgIGV4YW1w
bGUuc291cmNlLnN0cmlwKCksIGdvdC5zdHJpcCgpLCBleGFtcGxlLndhbnQuc3RyaXAoKSkpCisK
KworY2xhc3MgVGVzdEFwcHJveChvYmplY3QpOgorCisgICAgZGVmIHRlc3RfcmVwcl9zdHJpbmco
c2VsZik6CisgICAgICAgIHBsdXNfbWludXMgPSB1J1x1MDBiMScgaWYgc3lzLnZlcnNpb25faW5m
b1swXSA+IDIgZWxzZSB1JystJworICAgICAgICB0b2wxLCB0b2wyLCBpbmZyID0gJzEuMGUtMDYn
LCAnMi4wZS0wNicsICdpbmYnCisgICAgICAgIGFzc2VydCByZXByKGFwcHJveCgxLjApKSA9PSAn
MS4wIHtwbX0ge3RvbDF9Jy5mb3JtYXQocG09cGx1c19taW51cywgdG9sMT10b2wxKQorICAgICAg
ICBhc3NlcnQgcmVwcihhcHByb3goWzEuMCwgMi4wXSkpID09ICdhcHByb3goWzEuMCB7cG19IHt0
b2wxfSwgMi4wIHtwbX0ge3RvbDJ9XSknLmZvcm1hdCgKKyAgICAgICAgICAgIHBtPXBsdXNfbWlu
dXMsIHRvbDE9dG9sMSwgdG9sMj10b2wyKQorICAgICAgICBhc3NlcnQgcmVwcihhcHByb3goKDEu
MCwgMi4wKSkpID09ICdhcHByb3goKDEuMCB7cG19IHt0b2wxfSwgMi4wIHtwbX0ge3RvbDJ9KSkn
LmZvcm1hdCgKKyAgICAgICAgICAgIHBtPXBsdXNfbWludXMsIHRvbDE9dG9sMSwgdG9sMj10b2wy
KQorICAgICAgICBhc3NlcnQgcmVwcihhcHByb3goaW5mKSkgPT0gJ2luZicKKyAgICAgICAgYXNz
ZXJ0IHJlcHIoYXBwcm94KDEuMCwgcmVsPW5hbikpID09ICcxLjAge3BtfSA/Pz8nLmZvcm1hdChw
bT1wbHVzX21pbnVzKQorICAgICAgICBhc3NlcnQgcmVwcihhcHByb3goMS4wLCByZWw9aW5mKSkg
PT0gJzEuMCB7cG19IHtpbmZyfScuZm9ybWF0KHBtPXBsdXNfbWludXMsIGluZnI9aW5mcikKKyAg
ICAgICAgYXNzZXJ0IHJlcHIoYXBwcm94KDEuMGosIHJlbD1pbmYpKSA9PSAnMWonCisKKyAgICAg
ICAgIyBEaWN0aW9uYXJpZXMgYXJlbid0IG9yZGVyZWQsIHNvIHdlIG5lZWQgdG8gY2hlY2sgYm90
aCBvcmRlcnMuCisgICAgICAgIGFzc2VydCByZXByKGFwcHJveCh7J2EnOiAxLjAsICdiJzogMi4w
fSkpIGluICgKKyAgICAgICAgICAgICJhcHByb3goe3snYSc6IDEuMCB7cG19IHt0b2wxfSwgJ2In
OiAyLjAge3BtfSB7dG9sMn19fSkiLmZvcm1hdChwbT1wbHVzX21pbnVzLCB0b2wxPXRvbDEsIHRv
bDI9dG9sMiksCisgICAgICAgICAgICAiYXBwcm94KHt7J2InOiAyLjAge3BtfSB7dG9sMn0sICdh
JzogMS4wIHtwbX0ge3RvbDF9fX0pIi5mb3JtYXQocG09cGx1c19taW51cywgdG9sMT10b2wxLCB0
b2wyPXRvbDIpLAorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9vcGVyYXRvcl9vdmVybG9hZGlu
ZyhzZWxmKToKKyAgICAgICAgYXNzZXJ0IDEgPT0gYXBwcm94KDEsIHJlbD0xZS02LCBhYnM9MWUt
MTIpCisgICAgICAgIGFzc2VydCBub3QgKDEgIT0gYXBwcm94KDEsIHJlbD0xZS02LCBhYnM9MWUt
MTIpKQorICAgICAgICBhc3NlcnQgMTAgIT0gYXBwcm94KDEsIHJlbD0xZS02LCBhYnM9MWUtMTIp
CisgICAgICAgIGFzc2VydCBub3QgKDEwID09IGFwcHJveCgxLCByZWw9MWUtNiwgYWJzPTFlLTEy
KSkKKworICAgIGRlZiB0ZXN0X2V4YWN0bHlfZXF1YWwoc2VsZik6CisgICAgICAgIGV4YW1wbGVz
ID0gWworICAgICAgICAgICAgKDIuMCwgMi4wKSwKKyAgICAgICAgICAgICgwLjFlMjAwLCAwLjFl
MjAwKSwKKyAgICAgICAgICAgICgxLjEyM2UtMzAwLCAxLjEyM2UtMzAwKSwKKyAgICAgICAgICAg
ICgxMjM0NSwgMTIzNDUuMCksCisgICAgICAgICAgICAoMC4wLCAtMC4wKSwKKyAgICAgICAgICAg
ICgzNDU2NzgsIDM0NTY3OCksCisgICAgICAgICAgICAoRGVjaW1hbCgnMS4wMDAxJyksIERlY2lt
YWwoJzEuMDAwMScpKSwKKyAgICAgICAgICAgIChGcmFjdGlvbigxLCAzKSwgRnJhY3Rpb24oLTEs
IC0zKSksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGEsIHggaW4gZXhhbXBsZXM6CisgICAgICAg
ICAgICBhc3NlcnQgYSA9PSBhcHByb3goeCkKKworICAgIGRlZiB0ZXN0X29wcG9zaXRlX3NpZ24o
c2VsZik6CisgICAgICAgIGV4YW1wbGVzID0gWworICAgICAgICAgICAgKGVxLCAxZS0xMDAsIC0x
ZS0xMDApLAorICAgICAgICAgICAgKG5lLCAxZTEwMCwgLTFlMTAwKSwKKyAgICAgICAgXQorICAg
ICAgICBmb3Igb3AsIGEsIHggaW4gZXhhbXBsZXM6CisgICAgICAgICAgICBhc3NlcnQgb3AoYSwg
YXBwcm94KHgpKQorCisgICAgZGVmIHRlc3RfemVyb190b2xlcmFuY2Uoc2VsZik6CisgICAgICAg
IHdpdGhpbl8xZTEwID0gWworICAgICAgICAgICAgKDEuMWUtMTAwLCAxZS0xMDApLAorICAgICAg
ICAgICAgKC0xLjFlLTEwMCwgLTFlLTEwMCksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGEsIHgg
aW4gd2l0aGluXzFlMTA6CisgICAgICAgICAgICBhc3NlcnQgeCA9PSBhcHByb3goeCwgcmVsPTAu
MCwgYWJzPTAuMCkKKyAgICAgICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4LCByZWw9MC4wLCBh
YnM9MC4wKQorICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgsIHJlbD0wLjAsIGFicz01
ZS0xMDEpCisgICAgICAgICAgICBhc3NlcnQgYSAhPSBhcHByb3goeCwgcmVsPTAuMCwgYWJzPTVl
LTEwMikKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFwcHJveCh4LCByZWw9NWUtMSwgYWJzPTAu
MCkKKyAgICAgICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4LCByZWw9NWUtMiwgYWJzPTAuMCkK
KworICAgIGRlZiB0ZXN0X25lZ2F0aXZlX3RvbGVyYW5jZShzZWxmKToKKyAgICAgICAgIyBOZWdh
dGl2ZSB0b2xlcmFuY2VzIGFyZSBub3QgYWxsb3dlZC4KKyAgICAgICAgaWxsZWdhbF9rd2FyZ3Mg
PSBbCisgICAgICAgICAgICBkaWN0KHJlbD0tMWUxMDApLAorICAgICAgICAgICAgZGljdChhYnM9
LTFlMTAwKSwKKyAgICAgICAgICAgIGRpY3QocmVsPTFlMTAwLCBhYnM9LTFlMTAwKSwKKyAgICAg
ICAgICAgIGRpY3QocmVsPS0xZTEwMCwgYWJzPTFlMTAwKSwKKyAgICAgICAgICAgIGRpY3QocmVs
PS0xZTEwMCwgYWJzPS0xZTEwMCksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGt3YXJncyBpbiBp
bGxlZ2FsX2t3YXJnczoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
KToKKyAgICAgICAgICAgICAgICAxLjEgPT0gYXBwcm94KDEsICoqa3dhcmdzKQorCisgICAgZGVm
IHRlc3RfaW5mX3RvbGVyYW5jZShzZWxmKToKKyAgICAgICAgIyBFdmVyeXRoaW5nIHNob3VsZCBi
ZSBlcXVhbCBpZiB0aGUgdG9sZXJhbmNlIGlzIGluZmluaXRlLgorICAgICAgICBsYXJnZV9kaWZm
cyA9IFsKKyAgICAgICAgICAgICgxLCAxMDAwKSwKKyAgICAgICAgICAgICgxZS01MCwgMWU1MCks
CisgICAgICAgICAgICAoLTEuMCwgLTFlMzAwKSwKKyAgICAgICAgICAgICgwLjAsIDEwKSwKKyAg
ICAgICAgXQorICAgICAgICBmb3IgYSwgeCBpbiBsYXJnZV9kaWZmczoKKyAgICAgICAgICAgIGFz
c2VydCBhICE9IGFwcHJveCh4LCByZWw9MC4wLCBhYnM9MC4wKQorICAgICAgICAgICAgYXNzZXJ0
IGEgPT0gYXBwcm94KHgsIHJlbD1pbmYsIGFicz0wLjApCisgICAgICAgICAgICBhc3NlcnQgYSA9
PSBhcHByb3goeCwgcmVsPTAuMCwgYWJzPWluZikKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFw
cHJveCh4LCByZWw9aW5mLCBhYnM9aW5mKQorCisgICAgZGVmIHRlc3RfaW5mX3RvbGVyYW5jZV9l
eHBlY3RpbmdfemVybyhzZWxmKToKKyAgICAgICAgIyBJZiB0aGUgcmVsYXRpdmUgdG9sZXJhbmNl
IGlzIHplcm8gYnV0IHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBpbmZpbml0ZSwKKyAgICAgICAgIyB0
aGUgYWN0dWFsIHRvbGVyYW5jZSBpcyBhIE5hTiwgd2hpY2ggc2hvdWxkIGJlIGFuIGVycm9yLgor
ICAgICAgICBpbGxlZ2FsX2t3YXJncyA9IFsKKyAgICAgICAgICAgIGRpY3QocmVsPWluZiwgYWJz
PTAuMCksCisgICAgICAgICAgICBkaWN0KHJlbD1pbmYsIGFicz1pbmYpLAorICAgICAgICBdCisg
ICAgICAgIGZvciBrd2FyZ3MgaW4gaWxsZWdhbF9rd2FyZ3M6CisgICAgICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgMSA9PSBhcHByb3goMCwg
Kiprd2FyZ3MpCisKKyAgICBkZWYgdGVzdF9uYW5fdG9sZXJhbmNlKHNlbGYpOgorICAgICAgICBp
bGxlZ2FsX2t3YXJncyA9IFsKKyAgICAgICAgICAgIGRpY3QocmVsPW5hbiksCisgICAgICAgICAg
ICBkaWN0KGFicz1uYW4pLAorICAgICAgICAgICAgZGljdChyZWw9bmFuLCBhYnM9bmFuKSwKKyAg
ICAgICAgXQorICAgICAgICBmb3Iga3dhcmdzIGluIGlsbGVnYWxfa3dhcmdzOgorICAgICAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgICAgIDEuMSA9
PSBhcHByb3goMSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdGVzdF9yZWFzb25hYmxlX2RlZmF1bHRz
KHNlbGYpOgorICAgICAgICAjIFdoYXRldmVyIHRoZSBkZWZhdWx0cyBhcmUsIHRoZXkgc2hvdWxk
IHdvcmsgZm9yIG51bWJlcnMgY2xvc2UgdG8gMQorICAgICAgICAjIHRoYW4gaGF2ZSBhIHNtYWxs
IGFtb3VudCBvZiBmbG9hdGluZy1wb2ludCBlcnJvci4KKyAgICAgICAgYXNzZXJ0IDAuMSArIDAu
MiA9PSBhcHByb3goMC4zKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF90b2xlcmFuY2VzKHNlbGYp
OgorICAgICAgICAjIFRoaXMgdGVzdHMgdGhlIGRlZmF1bHRzIGFzIHRoZXkgYXJlIGN1cnJlbnRs
eSBzZXQuICBJZiB5b3UgY2hhbmdlIHRoZQorICAgICAgICAjIGRlZmF1bHRzLCB0aGlzIHRlc3Qg
d2lsbCBmYWlsIGJ1dCB5b3Ugc2hvdWxkIGZlZWwgZnJlZSB0byBjaGFuZ2UgaXQuCisgICAgICAg
ICMgTm9uZSBvZiB0aGUgb3RoZXIgdGVzdHMgKGV4Y2VwdCB0aGUgZG9jdGVzdHMpIHNob3VsZCBi
ZSBhZmZlY3RlZCBieQorICAgICAgICAjIHRoZSBjaG9pY2Ugb2YgZGVmYXVsdHMuCisgICAgICAg
IGV4YW1wbGVzID0gWworICAgICAgICAgICAgIyBSZWxhdGl2ZSB0b2xlcmFuY2UgdXNlZC4KKyAg
ICAgICAgICAgIChlcSwgMWUxMDAgKyAxZTk0LCAxZTEwMCksCisgICAgICAgICAgICAobmUsIDFl
MTAwICsgMmU5NCwgMWUxMDApLAorICAgICAgICAgICAgKGVxLCAxZTAgKyAxZS02LCAxZTApLAor
ICAgICAgICAgICAgKG5lLCAxZTAgKyAyZS02LCAxZTApLAorICAgICAgICAgICAgIyBBYnNvbHV0
ZSB0b2xlcmFuY2UgdXNlZC4KKyAgICAgICAgICAgIChlcSwgMWUtMTAwLCArIDFlLTEwNiksCisg
ICAgICAgICAgICAoZXEsIDFlLTEwMCwgKyAyZS0xMDYpLAorICAgICAgICAgICAgKGVxLCAxZS0x
MDAsIDApLAorICAgICAgICBdCisgICAgICAgIGZvciBvcCwgYSwgeCBpbiBleGFtcGxlczoKKyAg
ICAgICAgICAgIGFzc2VydCBvcChhLCBhcHByb3goeCkpCisKKyAgICBkZWYgdGVzdF9jdXN0b21f
dG9sZXJhbmNlcyhzZWxmKToKKyAgICAgICAgYXNzZXJ0IDFlOCArIDFlMCA9PSBhcHByb3goMWU4
LCByZWw9NWUtOCwgYWJzPTVlMCkKKyAgICAgICAgYXNzZXJ0IDFlOCArIDFlMCA9PSBhcHByb3go
MWU4LCByZWw9NWUtOSwgYWJzPTVlMCkKKyAgICAgICAgYXNzZXJ0IDFlOCArIDFlMCA9PSBhcHBy
b3goMWU4LCByZWw9NWUtOCwgYWJzPTVlLTEpCisgICAgICAgIGFzc2VydCAxZTggKyAxZTAgIT0g
YXBwcm94KDFlOCwgcmVsPTVlLTksIGFicz01ZS0xKQorCisgICAgICAgIGFzc2VydCAxZTAgKyAx
ZS04ID09IGFwcHJveCgxZTAsIHJlbD01ZS04LCBhYnM9NWUtOCkKKyAgICAgICAgYXNzZXJ0IDFl
MCArIDFlLTggPT0gYXBwcm94KDFlMCwgcmVsPTVlLTksIGFicz01ZS04KQorICAgICAgICBhc3Nl
cnQgMWUwICsgMWUtOCA9PSBhcHByb3goMWUwLCByZWw9NWUtOCwgYWJzPTVlLTkpCisgICAgICAg
IGFzc2VydCAxZTAgKyAxZS04ICE9IGFwcHJveCgxZTAsIHJlbD01ZS05LCBhYnM9NWUtOSkKKwor
ICAgICAgICBhc3NlcnQgMWUtOCArIDFlLTE2ID09IGFwcHJveCgxZS04LCByZWw9NWUtOCwgYWJz
PTVlLTE2KQorICAgICAgICBhc3NlcnQgMWUtOCArIDFlLTE2ID09IGFwcHJveCgxZS04LCByZWw9
NWUtOSwgYWJzPTVlLTE2KQorICAgICAgICBhc3NlcnQgMWUtOCArIDFlLTE2ID09IGFwcHJveCgx
ZS04LCByZWw9NWUtOCwgYWJzPTVlLTE3KQorICAgICAgICBhc3NlcnQgMWUtOCArIDFlLTE2ICE9
IGFwcHJveCgxZS04LCByZWw9NWUtOSwgYWJzPTVlLTE3KQorCisgICAgZGVmIHRlc3RfcmVsYXRp
dmVfdG9sZXJhbmNlKHNlbGYpOgorICAgICAgICB3aXRoaW5fMWU4X3JlbCA9IFsKKyAgICAgICAg
ICAgICgxZTggKyAxZTAsIDFlOCksCisgICAgICAgICAgICAoMWUwICsgMWUtOCwgMWUwKSwKKyAg
ICAgICAgICAgICgxZS04ICsgMWUtMTYsIDFlLTgpLAorICAgICAgICBdCisgICAgICAgIGZvciBh
LCB4IGluIHdpdGhpbl8xZThfcmVsOgorICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgs
IHJlbD01ZS04LCBhYnM9MC4wKQorICAgICAgICAgICAgYXNzZXJ0IGEgIT0gYXBwcm94KHgsIHJl
bD01ZS05LCBhYnM9MC4wKQorCisgICAgZGVmIHRlc3RfYWJzb2x1dGVfdG9sZXJhbmNlKHNlbGYp
OgorICAgICAgICB3aXRoaW5fMWU4X2FicyA9IFsKKyAgICAgICAgICAgICgxZTggKyA5ZS05LCAx
ZTgpLAorICAgICAgICAgICAgKDFlMCArIDllLTksIDFlMCksCisgICAgICAgICAgICAoMWUtOCAr
IDllLTksIDFlLTgpLAorICAgICAgICBdCisgICAgICAgIGZvciBhLCB4IGluIHdpdGhpbl8xZThf
YWJzOgorICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgsIHJlbD0wLCBhYnM9NWUtOCkK
KyAgICAgICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4LCByZWw9MCwgYWJzPTVlLTkpCisKKyAg
ICBkZWYgdGVzdF9leHBlY3RpbmdfemVybyhzZWxmKToKKyAgICAgICAgZXhhbXBsZXMgPSBbCisg
ICAgICAgICAgICAobmUsIDFlLTYsIDAuMCksCisgICAgICAgICAgICAobmUsIC0xZS02LCAwLjAp
LAorICAgICAgICAgICAgKGVxLCAxZS0xMiwgMC4wKSwKKyAgICAgICAgICAgIChlcSwgLTFlLTEy
LCAwLjApLAorICAgICAgICAgICAgKG5lLCAyZS0xMiwgMC4wKSwKKyAgICAgICAgICAgIChuZSwg
LTJlLTEyLCAwLjApLAorICAgICAgICAgICAgKG5lLCBpbmYsIDAuMCksCisgICAgICAgICAgICAo
bmUsIG5hbiwgMC4wKSwKKyAgICAgICAgXQorICAgICAgICBmb3Igb3AsIGEsIHggaW4gZXhhbXBs
ZXM6CisgICAgICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KHgsIHJlbD0wLjAsIGFicz0xZS0x
MikpCisgICAgICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KHgsIHJlbD0xZS02LCBhYnM9MWUt
MTIpKQorCisgICAgZGVmIHRlc3RfZXhwZWN0aW5nX2luZihzZWxmKToKKyAgICAgICAgZXhhbXBs
ZXMgPSBbCisgICAgICAgICAgICAoZXEsIGluZiwgaW5mKSwKKyAgICAgICAgICAgIChlcSwgLWlu
ZiwgLWluZiksCisgICAgICAgICAgICAobmUsIGluZiwgLWluZiksCisgICAgICAgICAgICAobmUs
IDAuMCwgaW5mKSwKKyAgICAgICAgICAgIChuZSwgbmFuLCBpbmYpLAorICAgICAgICBdCisgICAg
ICAgIGZvciBvcCwgYSwgeCBpbiBleGFtcGxlczoKKyAgICAgICAgICAgIGFzc2VydCBvcChhLCBh
cHByb3goeCkpCisKKyAgICBkZWYgdGVzdF9leHBlY3RpbmdfbmFuKHNlbGYpOgorICAgICAgICBl
eGFtcGxlcyA9IFsKKyAgICAgICAgICAgIChlcSwgbmFuLCBuYW4pLAorICAgICAgICAgICAgKGVx
LCAtbmFuLCAtbmFuKSwKKyAgICAgICAgICAgIChlcSwgbmFuLCAtbmFuKSwKKyAgICAgICAgICAg
IChuZSwgMC4wLCBuYW4pLAorICAgICAgICAgICAgKG5lLCBpbmYsIG5hbiksCisgICAgICAgIF0K
KyAgICAgICAgZm9yIG9wLCBhLCB4IGluIGV4YW1wbGVzOgorICAgICAgICAgICAgIyBOb3RoaW5n
IGlzIGVxdWFsIHRvIE5hTiBieSBkZWZhdWx0LgorICAgICAgICAgICAgYXNzZXJ0IGEgIT0gYXBw
cm94KHgpCisKKyAgICAgICAgICAgICMgSWYgYGBuYW5fb2s9VHJ1ZWBgLCB0aGVuIE5hTiBpcyBl
cXVhbCB0byBOYU4uCisgICAgICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KHgsIG5hbl9vaz1U
cnVlKSkKKworICAgIGRlZiB0ZXN0X2ludChzZWxmKToKKyAgICAgICAgd2l0aGluXzFlNiA9IFsK
KyAgICAgICAgICAgICgxMDAwMDAxLCAxMDAwMDAwKSwKKyAgICAgICAgICAgICgtMTAwMDAwMSwg
LTEwMDAwMDApLAorICAgICAgICBdCisgICAgICAgIGZvciBhLCB4IGluIHdpdGhpbl8xZTY6Cisg
ICAgICAgICAgICBhc3NlcnQgYSA9PSBhcHByb3goeCwgcmVsPTVlLTYsIGFicz0wKQorICAgICAg
ICAgICAgYXNzZXJ0IGEgIT0gYXBwcm94KHgsIHJlbD01ZS03LCBhYnM9MCkKKyAgICAgICAgICAg
IGFzc2VydCBhcHByb3goeCwgcmVsPTVlLTYsIGFicz0wKSA9PSBhCisgICAgICAgICAgICBhc3Nl
cnQgYXBwcm94KHgsIHJlbD01ZS03LCBhYnM9MCkgIT0gYQorCisgICAgZGVmIHRlc3RfZGVjaW1h
bChzZWxmKToKKyAgICAgICAgd2l0aGluXzFlNiA9IFsKKyAgICAgICAgICAgIChEZWNpbWFsKCcx
LjAwMDAwMScpLCBEZWNpbWFsKCcxLjAnKSksCisgICAgICAgICAgICAoRGVjaW1hbCgnLTEuMDAw
MDAxJyksIERlY2ltYWwoJy0xLjAnKSksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGEsIHggaW4g
d2l0aGluXzFlNjoKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFwcHJveCh4LCByZWw9RGVjaW1h
bCgnNWUtNicpLCBhYnM9MCkKKyAgICAgICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4LCByZWw9
RGVjaW1hbCgnNWUtNycpLCBhYnM9MCkKKyAgICAgICAgICAgIGFzc2VydCBhcHByb3goeCwgcmVs
PURlY2ltYWwoJzVlLTYnKSwgYWJzPTApID09IGEKKyAgICAgICAgICAgIGFzc2VydCBhcHByb3go
eCwgcmVsPURlY2ltYWwoJzVlLTcnKSwgYWJzPTApICE9IGEKKworICAgIGRlZiB0ZXN0X2ZyYWN0
aW9uKHNlbGYpOgorICAgICAgICB3aXRoaW5fMWU2ID0gWworICAgICAgICAgICAgKDEgKyBGcmFj
dGlvbigxLCAxMDAwMDAwKSwgRnJhY3Rpb24oMSkpLAorICAgICAgICAgICAgKC0xIC0gRnJhY3Rp
b24oLTEsIDEwMDAwMDApLCBGcmFjdGlvbigtMSkpLAorICAgICAgICBdCisgICAgICAgIGZvciBh
LCB4IGluIHdpdGhpbl8xZTY6CisgICAgICAgICAgICBhc3NlcnQgYSA9PSBhcHByb3goeCwgcmVs
PTVlLTYsIGFicz0wKQorICAgICAgICAgICAgYXNzZXJ0IGEgIT0gYXBwcm94KHgsIHJlbD01ZS03
LCBhYnM9MCkKKyAgICAgICAgICAgIGFzc2VydCBhcHByb3goeCwgcmVsPTVlLTYsIGFicz0wKSA9
PSBhCisgICAgICAgICAgICBhc3NlcnQgYXBwcm94KHgsIHJlbD01ZS03LCBhYnM9MCkgIT0gYQor
CisgICAgZGVmIHRlc3RfY29tcGxleChzZWxmKToKKyAgICAgICAgd2l0aGluXzFlNiA9IFsKKyAg
ICAgICAgICAgICgxLjAwMDAwMSArIDEuMGosIDEuMCArIDEuMGopLAorICAgICAgICAgICAgKDEu
MCArIDEuMDAwMDAxaiwgMS4wICsgMS4waiksCisgICAgICAgICAgICAoLTEuMDAwMDAxICsgMS4w
aiwgLTEuMCArIDEuMGopLAorICAgICAgICAgICAgKDEuMCAtIDEuMDAwMDAxaiwgMS4wIC0gMS4w
aiksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGEsIHggaW4gd2l0aGluXzFlNjoKKyAgICAgICAg
ICAgIGFzc2VydCBhID09IGFwcHJveCh4LCByZWw9NWUtNiwgYWJzPTApCisgICAgICAgICAgICBh
c3NlcnQgYSAhPSBhcHByb3goeCwgcmVsPTVlLTcsIGFicz0wKQorICAgICAgICAgICAgYXNzZXJ0
IGFwcHJveCh4LCByZWw9NWUtNiwgYWJzPTApID09IGEKKyAgICAgICAgICAgIGFzc2VydCBhcHBy
b3goeCwgcmVsPTVlLTcsIGFicz0wKSAhPSBhCisKKyAgICBkZWYgdGVzdF9saXN0KHNlbGYpOgor
ICAgICAgICBhY3R1YWwgPSBbMSArIDFlLTcsIDIgKyAxZS04XQorICAgICAgICBleHBlY3RlZCA9
IFsxLCAyXQorCisgICAgICAgICMgUmV0dXJuIGZhbHNlIGlmIGFueSBlbGVtZW50IGlzIG91dHNp
ZGUgdGhlIHRvbGVyYW5jZS4KKyAgICAgICAgYXNzZXJ0IGFjdHVhbCA9PSBhcHByb3goZXhwZWN0
ZWQsIHJlbD01ZS03LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFjdHVhbCAhPSBhcHByb3goZXhw
ZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFwcHJveChleHBlY3RlZCwg
cmVsPTVlLTcsIGFicz0wKSA9PSBhY3R1YWwKKyAgICAgICAgYXNzZXJ0IGFwcHJveChleHBlY3Rl
ZCwgcmVsPTVlLTgsIGFicz0wKSAhPSBhY3R1YWwKKworICAgIGRlZiB0ZXN0X2xpc3Rfd3Jvbmdf
bGVuKHNlbGYpOgorICAgICAgICBhc3NlcnQgWzEsIDJdICE9IGFwcHJveChbMV0pCisgICAgICAg
IGFzc2VydCBbMSwgMl0gIT0gYXBwcm94KFsxLCAyLCAzXSkKKworICAgIGRlZiB0ZXN0X3R1cGxl
KHNlbGYpOgorICAgICAgICBhY3R1YWwgPSAoMSArIDFlLTcsIDIgKyAxZS04KQorICAgICAgICBl
eHBlY3RlZCA9ICgxLCAyKQorCisgICAgICAgICMgUmV0dXJuIGZhbHNlIGlmIGFueSBlbGVtZW50
IGlzIG91dHNpZGUgdGhlIHRvbGVyYW5jZS4KKyAgICAgICAgYXNzZXJ0IGFjdHVhbCA9PSBhcHBy
b3goZXhwZWN0ZWQsIHJlbD01ZS03LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFjdHVhbCAhPSBh
cHByb3goZXhwZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFwcHJveChl
eHBlY3RlZCwgcmVsPTVlLTcsIGFicz0wKSA9PSBhY3R1YWwKKyAgICAgICAgYXNzZXJ0IGFwcHJv
eChleHBlY3RlZCwgcmVsPTVlLTgsIGFicz0wKSAhPSBhY3R1YWwKKworICAgIGRlZiB0ZXN0X3R1
cGxlX3dyb25nX2xlbihzZWxmKToKKyAgICAgICAgYXNzZXJ0ICgxLCAyKSAhPSBhcHByb3goKDEs
KSkKKyAgICAgICAgYXNzZXJ0ICgxLCAyKSAhPSBhcHByb3goKDEsIDIsIDMpKQorCisgICAgZGVm
IHRlc3RfZGljdChzZWxmKToKKyAgICAgICAgYWN0dWFsID0geydhJzogMSArIDFlLTcsICdiJzog
MiArIDFlLTh9CisgICAgICAgICMgRGljdGlvbmFyaWVzIGJlY2FtZSBvcmRlcmVkIGluIHB5dGhv
bjMuNiwgc28gc3dpdGNoIHVwIHRoZSBvcmRlciBoZXJlCisgICAgICAgICMgdG8gbWFrZSBzdXJl
IGl0IGRvZXNuJ3QgbWF0dGVyLgorICAgICAgICBleHBlY3RlZCA9IHsnYic6IDIsICdhJzogMX0K
KworICAgICAgICAjIFJldHVybiBmYWxzZSBpZiBhbnkgZWxlbWVudCBpcyBvdXRzaWRlIHRoZSB0
b2xlcmFuY2UuCisgICAgICAgIGFzc2VydCBhY3R1YWwgPT0gYXBwcm94KGV4cGVjdGVkLCByZWw9
NWUtNywgYWJzPTApCisgICAgICAgIGFzc2VydCBhY3R1YWwgIT0gYXBwcm94KGV4cGVjdGVkLCBy
ZWw9NWUtOCwgYWJzPTApCisgICAgICAgIGFzc2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS03
LCBhYnM9MCkgPT0gYWN0dWFsCisgICAgICAgIGFzc2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01
ZS04LCBhYnM9MCkgIT0gYWN0dWFsCisKKyAgICBkZWYgdGVzdF9kaWN0X3dyb25nX2xlbihzZWxm
KToKKyAgICAgICAgYXNzZXJ0IHsnYSc6IDEsICdiJzogMn0gIT0gYXBwcm94KHsnYSc6IDF9KQor
ICAgICAgICBhc3NlcnQgeydhJzogMSwgJ2InOiAyfSAhPSBhcHByb3goeydhJzogMSwgJ2MnOiAy
fSkKKyAgICAgICAgYXNzZXJ0IHsnYSc6IDEsICdiJzogMn0gIT0gYXBwcm94KHsnYSc6IDEsICdi
JzogMiwgJ2MnOiAzfSkKKworICAgIGRlZiB0ZXN0X251bXB5X2FycmF5KHNlbGYpOgorICAgICAg
ICBucCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoJ251bXB5JykKKworICAgICAgICBhY3R1YWwgPSBu
cC5hcnJheShbMSArIDFlLTcsIDIgKyAxZS04XSkKKyAgICAgICAgZXhwZWN0ZWQgPSBucC5hcnJh
eShbMSwgMl0pCisKKyAgICAgICAgIyBSZXR1cm4gZmFsc2UgaWYgYW55IGVsZW1lbnQgaXMgb3V0
c2lkZSB0aGUgdG9sZXJhbmNlLgorICAgICAgICBhc3NlcnQgYWN0dWFsID09IGFwcHJveChleHBl
Y3RlZCwgcmVsPTVlLTcsIGFicz0wKQorICAgICAgICBhc3NlcnQgYWN0dWFsICE9IGFwcHJveChl
eHBlY3RlZCwgcmVsPTVlLTgsIGFicz0wKQorICAgICAgICBhc3NlcnQgYXBwcm94KGV4cGVjdGVk
LCByZWw9NWUtNywgYWJzPTApID09IGV4cGVjdGVkCisgICAgICAgIGFzc2VydCBhcHByb3goZXhw
ZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkgIT0gYWN0dWFsCisKKyAgICAgICAgIyBTaG91bGQgYmUg
YWJsZSB0byBjb21wYXJlIGxpc3RzIHdpdGggbnVtcHkgYXJyYXlzLgorICAgICAgICBhc3NlcnQg
bGlzdChhY3R1YWwpID09IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTcsIGFicz0wKQorICAgICAg
ICBhc3NlcnQgbGlzdChhY3R1YWwpICE9IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTgsIGFicz0w
KQorICAgICAgICBhc3NlcnQgYWN0dWFsID09IGFwcHJveChsaXN0KGV4cGVjdGVkKSwgcmVsPTVl
LTcsIGFicz0wKQorICAgICAgICBhc3NlcnQgYWN0dWFsICE9IGFwcHJveChsaXN0KGV4cGVjdGVk
KSwgcmVsPTVlLTgsIGFicz0wKQorCisgICAgZGVmIHRlc3RfbnVtcHlfYXJyYXlfd3Jvbmdfc2hh
cGUoc2VsZik6CisgICAgICAgIG5wID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgnbnVtcHknKQorCisg
ICAgICAgIGExMiA9IG5wLmFycmF5KFtbMSwgMl1dKQorICAgICAgICBhMjEgPSBucC5hcnJheShb
WzFdLCBbMl1dKQorCisgICAgICAgIGFzc2VydCBhMTIgIT0gYXBwcm94KGEyMSkKKyAgICAgICAg
YXNzZXJ0IGEyMSAhPSBhcHByb3goYTEyKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdHMoc2VsZik6
CisgICAgICAgIHBhcnNlciA9IGRvY3Rlc3QuRG9jVGVzdFBhcnNlcigpCisgICAgICAgIHRlc3Qg
PSBwYXJzZXIuZ2V0X2RvY3Rlc3QoCisgICAgICAgICAgICBhcHByb3guX19kb2NfXywKKyAgICAg
ICAgICAgIHsnYXBwcm94JzogYXBwcm94fSwKKyAgICAgICAgICAgIGFwcHJveC5fX25hbWVfXywK
KyAgICAgICAgICAgIE5vbmUsIE5vbmUsCisgICAgICAgICkKKyAgICAgICAgcnVubmVyID0gTXlE
b2NUZXN0UnVubmVyKCkKKyAgICAgICAgcnVubmVyLnJ1bih0ZXN0KQorCisgICAgZGVmIHRlc3Rf
dW5pY29kZV9wbHVzX21pbnVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAg
Q29tcGFyaW5nIGFwcHJveCBpbnN0YW5jZXMgaW5zaWRlIGxpc3RzIHNob3VsZCBub3QgcHJvZHVj
ZSBhbiBlcnJvciBpbiB0aGUgZGV0YWlsZWQgZGlmZi4KKyAgICAgICAgSW50ZWdyYXRpb24gdGVz
dCBmb3IgaXNzdWUgIzIxMTEuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9m
b28oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgWzNdID09IFtweXRlc3QuYXBwcm94KDQpXQor
ICAgICAgICAiIiIpCisgICAgICAgIGV4cGVjdGVkID0gJzQuMGUtMDYnCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICcqQXQgaW5kZXggMCBkaWZmOiAzICE9IDQgKiB7MH0nLmZvcm1h
dChleHBlY3RlZCksCisgICAgICAgICAgICAnPSogMSBmYWlsZWQgaW4gKj0nLAorICAgICAgICBd
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdvcCcsIFsKKyAgICAgICAgcHl0ZXN0
LnBhcmFtKG9wZXJhdG9yLmxlLCBpZD0nPD0nKSwKKyAgICAgICAgcHl0ZXN0LnBhcmFtKG9wZXJh
dG9yLmx0LCBpZD0nPCcpLAorICAgICAgICBweXRlc3QucGFyYW0ob3BlcmF0b3IuZ2UsIGlkPSc+
PScpLAorICAgICAgICBweXRlc3QucGFyYW0ob3BlcmF0b3IuZ3QsIGlkPSc+JyksCisgICAgXSkK
KyAgICBkZWYgdGVzdF9jb21wYXJpc29uX29wZXJhdG9yX3R5cGVfZXJyb3Ioc2VsZiwgb3ApOgor
ICAgICAgICAiIiIKKyAgICAgICAgcHl0ZXN0LmFwcHJveCBzaG91bGQgcmFpc2UgVHlwZUVycm9y
IGZvciBvcGVyYXRvcnMgb3RoZXIgdGhhbiA9PSBhbmQgIT0gKCMyMDAzKS4KKyAgICAgICAgIiIi
CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgb3Ao
MSwgYXBwcm94KDEsIHJlbD0xZS02LCBhYnM9MWUtMTIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vY29sbGVjdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L2NvbGxlY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZjMjE1NGI4YzFlOThkNDYzYzE5NDI5ZTkzM2VjMDVl
OGQ5NzJmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2Nv
bGxlY3QucHkKQEAgLTAsMCArMSwxNDAyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1w
b3J0IG9zCitpbXBvcnQgc3lzCitmcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKKworaW1wb3J0
IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lm1h
aW4gaW1wb3J0ICgKKyAgICBDb2xsZWN0b3IsCisgICAgRVhJVF9OT1RFU1RTQ09MTEVDVEVECisp
CisKKworaWdub3JlX3BhcmFtZXRyaXplZF9tYXJrcyA9IHB5dGVzdC5tYXJrLmZpbHRlcndhcm5p
bmdzKCdpZ25vcmU6QXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycycpCisKKwor
Y2xhc3MgVGVzdE1vZHVsZShvYmplY3QpOgorICAgIGRlZiB0ZXN0X2ZhaWxpbmdfaW1wb3J0KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiaW1w
b3J0IGFsa3NkamFsc2tkamFsa2phbHMiKQorICAgICAgICBweXRlc3QucmFpc2VzKENvbGxlY3Rv
ci5Db2xsZWN0RXJyb3IsIG1vZGNvbC5jb2xsZWN0KQorCisgICAgZGVmIHRlc3RfaW1wb3J0X2R1
cGxpY2F0ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgYSA9IHRlc3RkaXIubWtkaXIoImEiKQor
ICAgICAgICBiID0gdGVzdGRpci5ta2RpcigiYiIpCisgICAgICAgIHAgPSBhLmVuc3VyZSgidGVz
dF93aGF0ZXZlci5weSIpCisgICAgICAgIHAucHlpbXBvcnQoKQorICAgICAgICBkZWwgcHkuc3Rk
LnN5cy5tb2R1bGVzWyd0ZXN0X3doYXRldmVyJ10KKyAgICAgICAgYi5lbnN1cmUoInRlc3Rfd2hh
dGV2ZXIucHkiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmltcG9ydCptaXNt
YXRjaCoiLAorICAgICAgICAgICAgIippbXBvcnRlZCp0ZXN0X3doYXRldmVyKiIsCisgICAgICAg
ICAgICAiKiVzKiIgJSBhLmpvaW4oInRlc3Rfd2hhdGV2ZXIucHkiKSwKKyAgICAgICAgICAgICIq
bm90IHRoZSBzYW1lKiIsCisgICAgICAgICAgICAiKiVzKiIgJSBiLmpvaW4oInRlc3Rfd2hhdGV2
ZXIucHkiKSwKKyAgICAgICAgICAgICIqSElOVCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRl
c3RfaW1wb3J0X3ByZXBlbmRfYXBwZW5kKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAg
ICAgICAgc3lzcGF0aCA9IGxpc3Qoc3lzLnBhdGgpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0
dHIoc3lzLCAicGF0aCIsIHN5c3BhdGgpCisgICAgICAgIHJvb3QxID0gdGVzdGRpci5ta2Rpcigi
cm9vdDEiKQorICAgICAgICByb290MiA9IHRlc3RkaXIubWtkaXIoInJvb3QyIikKKyAgICAgICAg
cm9vdDEuZW5zdXJlKCJ4NDU2LnB5IikKKyAgICAgICAgcm9vdDIuZW5zdXJlKCJ4NDU2LnB5IikK
KyAgICAgICAgcCA9IHJvb3QyLmpvaW4oInRlc3RfeDQ1Ni5weSIpCisgICAgICAgIG1vbmtleXBh
dGNoLnN5c3BhdGhfcHJlcGVuZChzdHIocm9vdDEpKQorICAgICAgICBwLndyaXRlKGRlZGVudCgi
IiJcCisgICAgICAgICAgICBpbXBvcnQgeDQ1NgorICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgeDQ1Ni5fX2ZpbGVfXy5zdGFydHN3aXRoKCVyKQorICAgICAg
ICAiIiIgJSBzdHIocm9vdDIpKSkKKyAgICAgICAgd2l0aCByb290Mi5hc19jd2QoKToKKyAgICAg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1pbXBvcnQtbW9kZT1hcHBlbmQi
KQorICAgICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTAsIGZhaWxlZD0xKQor
ICAgICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc3ludGF4X2Vycm9y
X2luX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRt
b2R1bGVjb2woInRoaXMgaXMgYSBzeW50YXggZXJyb3IiKQorICAgICAgICBweXRlc3QucmFpc2Vz
KG1vZGNvbC5Db2xsZWN0RXJyb3IsIG1vZGNvbC5jb2xsZWN0KQorICAgICAgICBweXRlc3QucmFp
c2VzKG1vZGNvbC5Db2xsZWN0RXJyb3IsIG1vZGNvbC5jb2xsZWN0KQorCisgICAgZGVmIHRlc3Rf
bW9kdWxlX2NvbnNpZGVyc19wbHVnaW5tYW5hZ2VyX2F0X2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woInB5dGVzdF9wbHVnaW5zPSd4
YXNkbGtqJywiKQorICAgICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCBsYW1iZGE6IG1v
ZGNvbC5vYmopCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX3Rlc3RfbW9kdWxlX25hbWUoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIGEgPSB0ZXN0ZGlyLm1rZGlyKCdhJykKKyAgICAgICAgYS5lbnN1
cmUoJ3Rlc3Rfb25lLnBhcnQxLnB5JykKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi1ydyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAiSW1wb3J0RXJyb3Igd2hpbGUgaW1wb3J0aW5nIHRlc3QgbW9kdWxlKnRlc3Rfb25lLnBh
cnQxKiIsCisgICAgICAgICAgICAiSGludDogbWFrZSBzdXJlIHlvdXIgdGVzdCBtb2R1bGVzL3Bh
Y2thZ2VzIGhhdmUgdmFsaWQgUHl0aG9uIG5hbWVzLiIsCisgICAgICAgIF0pCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3ZlcmJvc2UnLCBbMCwgMSwgMl0pCisgICAgZGVmIHRlc3Rf
c2hvd190cmFjZWJhY2tfaW1wb3J0X2Vycm9yKHNlbGYsIHRlc3RkaXIsIHZlcmJvc2UpOgorICAg
ICAgICAiIiJJbXBvcnQgZXJyb3JzIHdoZW4gY29sbGVjdGluZyBtb2R1bGVzIHNob3VsZCBkaXNw
bGF5IHRoZSB0cmFjZWJhY2sgKCMxOTc2KS4KKworICAgICAgICBXaXRoIGxvdyB2ZXJib3NpdHkg
d2Ugb21pdCBweXRlc3QgYW5kIGludGVybmFsIG1vZHVsZXMsIG90aGVyd2lzZSBzaG93IGFsbCB0
cmFjZWJhY2sgZW50cmllcy4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgIGZvb190cmFjZWJhY2tfaW1wb3J0X2Vycm9yPSIiIgorICAgICAgICAg
ICAgICAgZnJvbSBiYXJfdHJhY2ViYWNrX2ltcG9ydF9lcnJvciBpbXBvcnQgTk9UX0FWQUlMQUJM
RQorICAgICAgICAgICAiIiIsCisgICAgICAgICAgICBiYXJfdHJhY2ViYWNrX2ltcG9ydF9lcnJv
cj0iIiwKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICAgICBpbXBvcnQgZm9vX3RyYWNlYmFja19pbXBvcnRfZXJyb3IKKyAgICAgICAgIiIiKQor
ICAgICAgICBhcmdzID0gKCctdicsKSAqIHZlcmJvc2UKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKmFyZ3MpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiSW1wb3J0RXJyb3Igd2hpbGUgaW1wb3J0aW5nIHRlc3QgbW9kdWxlKiIs
CisgICAgICAgICAgICAiVHJhY2ViYWNrOiIsCisgICAgICAgICAgICAiKmZyb20gYmFyX3RyYWNl
YmFja19pbXBvcnRfZXJyb3IgaW1wb3J0IE5PVF9BVkFJTEFCTEUiLAorICAgICAgICAgICAgIipj
YW5ub3QgaW1wb3J0IG5hbWUgKk5PVF9BVkFJTEFCTEUqIiwKKyAgICAgICAgXSkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgorCisgICAgICAgIHN0ZG91dCA9IHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICAgICAgZm9yIG5hbWUgaW4gKCdfcHl0ZXN0Jywgb3MucGF0aC5qb2luKCdweScs
ICdfcGF0aCcpKToKKyAgICAgICAgICAgIGlmIHZlcmJvc2UgPT0gMjoKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgbmFtZSBpbiBzdGRvdXQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IG5hbWUgbm90IGluIHN0ZG91dAorCisgICAgZGVmIHRlc3Rfc2hvd190cmFjZWJh
Y2tfaW1wb3J0X2Vycm9yX3VuaWNvZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIkNoZWNr
IHRlc3QgbW9kdWxlcyBjb2xsZWN0ZWQgd2hpY2ggcmFpc2UgSW1wb3J0RXJyb3Igd2l0aCB1bmlj
b2RlIG1lc3NhZ2VzCisgICAgICAgIGFyZSBoYW5kbGVkIHByb3Blcmx5ICgjMjMzNikuCisgICAg
ICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodSIiIgorICAgICAgICAgICAgIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKHUnU29t
ZXRoaW5nIGJhZCBoYXBwZW5lZCDimLonKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICJJbXBvcnRFcnJvciB3aGlsZSBpbXBvcnRpbmcgdGVzdCBtb2R1bGUq
IiwKKyAgICAgICAgICAgICJUcmFjZWJhY2s6IiwKKyAgICAgICAgICAgICIqcmFpc2UgSW1wb3J0
RXJyb3IqU29tZXRoaW5nIGJhZCBoYXBwZW5lZCoiLAorICAgICAgICBdKQorICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAyCisKKworY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgZGVm
IHRlc3RfY2xhc3Nfd2l0aF9pbml0X3dhcm5pbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzczEob2JqZWN0
KToKKyAgICAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXJ3IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAnVGVzdENsYXNzMScgYmVjYXVzZSBpdCBo
YXMgYSBfX2luaXRfXyBjb25zdHJ1Y3RvciIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9j
bGFzc19zdWJjbGFzc29iamVjdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5nZXRt
b2R1bGVjb2woIiIiCisgICAgICAgICAgICBjbGFzcyB0ZXN0KG9iamVjdCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqY29sbGVjdGVkIDAqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3N0YXRpY19tZXRo
b2Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlN1cHBvcnQgZm9yIGNvbGxlY3Rpbmcgc3Rh
dGljbWV0aG9kIHRlc3RzICgjMjUyOCwgIzI2OTkpIiIiCisgICAgICAgIHRlc3RkaXIuZ2V0bW9k
dWxlY29sKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3Mg
VGVzdChvYmplY3QpOgorICAgICAgICAgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGZpeChz
ZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgICAgIEBz
dGF0aWNtZXRob2QKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9maXgoZml4KToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IGZpeCA9PSAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIipjb2xsZWN0ZWQgMiBpdGVtcyoiLAorICAgICAgICAgICAgIioy
IHBhc3NlZCBpbioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2V0dXBfdGVhcmRvd25f
Y2xhc3NfYXNfY2xhc3NtZXRob2Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSh0ZXN0X21vZDE9IiIiCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3NNZXRob2Qo
b2JqZWN0KToKKyAgICAgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgICAgICBk
ZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgICAgICBkZWYgdGVhcmRvd25fY2xh
c3MoY2xzKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBwYXNzZWQqIiwKKyAgICAgICAgXSkKKworICAg
IGRlZiB0ZXN0X2lzc3VlMTAzNV9vYmpfaGFzX2dldGF0dHIoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgY2xhc3Mg
Q2hhbWVsZW9uKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYs
IG5hbWUpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgY2hh
bWVsZW9uID0gQ2hhbWVsZW9uKCkKKyAgICAgICAgIiIiKQorICAgICAgICBjb2xpdGVtcyA9IG1v
ZGNvbC5jb2xsZWN0KCkKKyAgICAgICAgYXNzZXJ0IGxlbihjb2xpdGVtcykgPT0gMAorCisgICAg
ZGVmIHRlc3RfaXNzdWUxNTc5X25hbWVkdHVwbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBjb2xsZWN0aW9ucworCisg
ICAgICAgICAgICBUZXN0Q2FzZSA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoJ1Rlc3RDYXNlJywg
WydhJ10pCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Jy1ydycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAg
ICIqY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAnVGVzdENhc2UnICIKKyAgICAgICAgICAgICJi
ZWNhdXNlIGl0IGhhcyBhIF9fbmV3X18gY29uc3RydWN0b3IqIgorICAgICAgICApCisKKyAgICBk
ZWYgdGVzdF9pc3N1ZTIyMzRfcHJvcGVydHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDYXNlKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICAgICAgZGVmIHByb3Aoc2VsZik6
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworY2xhc3MgVGVzdEdl
bmVyYXRvcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfZnVuY3Rpb25zKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAg
ICAgICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBh
cmcgPT0gYXJnMgorCisgICAgICAgICAgICBkZWYgdGVzdF9nZW4oKToKKyAgICAgICAgICAgICAg
ICB5aWVsZCBmdW5jMSwgMTcsIDMqNQorICAgICAgICAgICAgICAgIHlpZWxkIGZ1bmMxLCA0Miwg
Nio3CisgICAgICAgICIiIikKKyAgICAgICAgY29saXRlbXMgPSBtb2Rjb2wuY29sbGVjdCgpCisg
ICAgICAgIGFzc2VydCBsZW4oY29saXRlbXMpID09IDEKKyAgICAgICAgZ2VuY29sID0gY29saXRl
bXNbMF0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZ2VuY29sLCBweXRlc3QuR2VuZXJhdG9y
KQorICAgICAgICBnZW5jb2xpdGVtcyA9IGdlbmNvbC5jb2xsZWN0KCkKKyAgICAgICAgYXNzZXJ0
IGxlbihnZW5jb2xpdGVtcykgPT0gMgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xp
dGVtc1swXSwgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5j
b2xpdGVtc1sxXSwgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNb
MF0ubmFtZSA9PSAnWzBdJworICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ub2JqLl9fbmFt
ZV9fID09ICdmdW5jMScKKworICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfbWV0aG9kcyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisgICAg
ICAgICAgICBkZWYgZnVuYzEoYXJnLCBhcmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJn
ID09IGFyZzIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RHZW5NZXRob2RzKG9iamVjdCk6CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfZ2VuKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICB5aWVs
ZCBmdW5jMSwgMTcsIDMqNQorICAgICAgICAgICAgICAgICAgICB5aWVsZCBmdW5jMSwgNDIsIDYq
NworICAgICAgICAiIiIpCisgICAgICAgIGdlbmNvbCA9IG1vZGNvbC5jb2xsZWN0KClbMF0uY29s
bGVjdCgpWzBdLmNvbGxlY3QoKVswXQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2ws
IHB5dGVzdC5HZW5lcmF0b3IpCisgICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29sLmNvbGxlY3Qo
KQorICAgICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9PSAyCisgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGFz
c2VydCBnZW5jb2xpdGVtc1swXS5uYW1lID09ICdbMF0nCisgICAgICAgIGFzc2VydCBnZW5jb2xp
dGVtc1swXS5vYmouX19uYW1lX18gPT0gJ2Z1bmMxJworCisgICAgZGVmIHRlc3RfZ2VuZXJhdGl2
ZV9mdW5jdGlvbnNfd2l0aF9leHBsaWNpdF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
bW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgZnVuYzEo
YXJnLCBhcmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IGFyZzIKKworICAgICAg
ICAgICAgZGVmIHRlc3RfZ2VuKCk6CisgICAgICAgICAgICAgICAgeWllbGQgInNldmVudGVlbiIs
IGZ1bmMxLCAxNywgMyo1CisgICAgICAgICAgICAgICAgeWllbGQgImZvcnR5dHdvIiwgZnVuYzEs
IDQyLCA2KjcKKyAgICAgICAgIiIiKQorICAgICAgICBjb2xpdGVtcyA9IG1vZGNvbC5jb2xsZWN0
KCkKKyAgICAgICAgYXNzZXJ0IGxlbihjb2xpdGVtcykgPT0gMQorICAgICAgICBnZW5jb2wgPSBj
b2xpdGVtc1swXQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5l
cmF0b3IpCisgICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQorICAgICAgICBh
c3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9PSAyCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdl
bmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGdlbmNvbGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGFzc2VydCBnZW5jb2xp
dGVtc1swXS5uYW1lID09ICJbJ3NldmVudGVlbiddIgorICAgICAgICBhc3NlcnQgZ2VuY29saXRl
bXNbMF0ub2JqLl9fbmFtZV9fID09ICdmdW5jMScKKyAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1z
WzFdLm5hbWUgPT0gIlsnZm9ydHl0d28nXSIKKyAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzFd
Lm9iai5fX25hbWVfXyA9PSAnZnVuYzEnCisKKyAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX2Z1bmN0
aW9uc191bmlxdWVfZXhwbGljaXRfbmFtZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICMgZ2Vu
ZXJhdGl2ZQorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAg
ICAgICAgIGRlZiBmdW5jKCk6IHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbigpOgorICAg
ICAgICAgICAgICAgIHlpZWxkICJuYW1lIiwgZnVuYworICAgICAgICAgICAgICAgIHlpZWxkICJu
YW1lIiwgZnVuYworICAgICAgICAiIiIpCisgICAgICAgIGNvbGl0ZW1zID0gbW9kY29sLmNvbGxl
Y3QoKQorICAgICAgICBhc3NlcnQgbGVuKGNvbGl0ZW1zKSA9PSAxCisgICAgICAgIGdlbmNvbCA9
IGNvbGl0ZW1zWzBdCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbCwgcHl0ZXN0Lkdl
bmVyYXRvcikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAiZ2VuY29sLmNvbGxl
Y3QoKSIpCisKKyAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX21ldGhvZHNfd2l0aF9leHBsaWNpdF9u
YW1lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVj
b2woIiIiCisgICAgICAgICAgICBkZWYgZnVuYzEoYXJnLCBhcmcyKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgYXJnID09IGFyZzIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RHZW5NZXRob2RzKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZ2VuKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICB5aWVsZCAibTEiLCBmdW5jMSwgMTcsIDMqNQorICAgICAgICAgICAgICAgICAgICB5
aWVsZCAibTIiLCBmdW5jMSwgNDIsIDYqNworICAgICAgICAiIiIpCisgICAgICAgIGdlbmNvbCA9
IG1vZGNvbC5jb2xsZWN0KClbMF0uY29sbGVjdCgpWzBdLmNvbGxlY3QoKVswXQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3IpCisgICAgICAgIGdlbmNv
bGl0ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1z
KSA9PSAyCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3Qu
RnVuY3Rpb24pCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRl
c3QuRnVuY3Rpb24pCisgICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5uYW1lID09ICJbJ20x
J10iCisgICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5vYmouX19uYW1lX18gPT0gJ2Z1bmMx
JworICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMV0ubmFtZSA9PSAiWydtMiddIgorICAgICAg
ICBhc3NlcnQgZ2VuY29saXRlbXNbMV0ub2JqLl9fbmFtZV9fID09ICdmdW5jMScKKworICAgIGRl
ZiB0ZXN0X29yZGVyX29mX2V4ZWN1dGlvbl9nZW5lcmF0b3Jfc2FtZV9jb2RlbGluZShzZWxmLCB0
ZXN0ZGlyLCB0bXBkaXIpOgorICAgICAgICBvID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorICAgICAgICAg
ICAgZGVmIHRlc3RfZ2VuZXJhdGl2ZV9vcmRlcl9vZl9leGVjdXRpb24oKToKKyAgICAgICAgICAg
ICAgICBpbXBvcnQgcHksIHB5dGVzdAorICAgICAgICAgICAgICAgIHRlc3RfbGlzdCA9IFtdCisg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGlzdCA9IGxpc3QocmFuZ2UoNikpCisKKyAgICAgICAg
ICAgICAgICBkZWYgbGlzdF9hcHBlbmQoaXRlbSk6CisgICAgICAgICAgICAgICAgICAgIHRlc3Rf
bGlzdC5hcHBlbmQoaXRlbSkKKworICAgICAgICAgICAgICAgIGRlZiBhc3NlcnRfb3JkZXJfb2Zf
ZXhlY3V0aW9uKCk6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCdleHBlY3RlZCBvcmRlcics
IGV4cGVjdGVkX2xpc3QpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdidXQgZ290ICAgICAg
ICcsIHRlc3RfbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3RfbGlzdCA9PSBl
eHBlY3RlZF9saXN0CisKKyAgICAgICAgICAgICAgICBmb3IgaSBpbiBleHBlY3RlZF9saXN0Ogor
ICAgICAgICAgICAgICAgICAgICB5aWVsZCBsaXN0X2FwcGVuZCwgaQorICAgICAgICAgICAgICAg
IHlpZWxkIGFzc2VydF9vcmRlcl9vZl9leGVjdXRpb24KKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4obykKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBm
YWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBwYXNzZWQgPT0g
NworICAgICAgICBhc3NlcnQgbm90IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKKworICAgIGRlZiB0
ZXN0X29yZGVyX29mX2V4ZWN1dGlvbl9nZW5lcmF0b3JfZGlmZmVyZW50X2NvZGVsaW5lKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBvID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorICAgICAgICAgICAgZGVm
IHRlc3RfZ2VuZXJhdGl2ZV90ZXN0c19kaWZmZXJlbnRfY29kZWxpbmUoKToKKyAgICAgICAgICAg
ICAgICBpbXBvcnQgcHksIHB5dGVzdAorICAgICAgICAgICAgICAgIHRlc3RfbGlzdCA9IFtdCisg
ICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGlzdCA9IGxpc3QocmFuZ2UoMykpCisKKyAgICAgICAg
ICAgICAgICBkZWYgbGlzdF9hcHBlbmRfMigpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0X2xp
c3QuYXBwZW5kKDIpCisKKyAgICAgICAgICAgICAgICBkZWYgbGlzdF9hcHBlbmRfMSgpOgorICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2xpc3QuYXBwZW5kKDEpCisKKyAgICAgICAgICAgICAgICBk
ZWYgbGlzdF9hcHBlbmRfMCgpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0X2xpc3QuYXBwZW5k
KDApCisKKyAgICAgICAgICAgICAgICBkZWYgYXNzZXJ0X29yZGVyX29mX2V4ZWN1dGlvbigpOgor
ICAgICAgICAgICAgICAgICAgICBwcmludCgnZXhwZWN0ZWQgb3JkZXInLCBleHBlY3RlZF9saXN0
KQorICAgICAgICAgICAgICAgICAgICBwcmludCgnYnV0IGdvdCAgICAgICAnLCB0ZXN0X2xpc3Qp
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB0ZXN0X2xpc3QgPT0gZXhwZWN0ZWRfbGlzdAor
CisgICAgICAgICAgICAgICAgeWllbGQgbGlzdF9hcHBlbmRfMAorICAgICAgICAgICAgICAgIHlp
ZWxkIGxpc3RfYXBwZW5kXzEKKyAgICAgICAgICAgICAgICB5aWVsZCBsaXN0X2FwcGVuZF8yCisg
ICAgICAgICAgICAgICAgeWllbGQgYXNzZXJ0X29yZGVyX29mX2V4ZWN1dGlvbgorICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihvKQorICAgICAgICBwYXNz
ZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAgICAgICAgYXNz
ZXJ0IHBhc3NlZCA9PSA0CisgICAgICAgIGFzc2VydCBub3Qgc2tpcHBlZCBhbmQgbm90IGZhaWxl
ZAorCisgICAgZGVmIHRlc3Rfc2V0dXBzdGF0ZV9pc19wcmVzZXJ2ZWRfMTM0KHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAjIHlpZWxkLWJhc2VkIHRlc3RzIGFyZSBtZXNzeSB3cnQgdG8gc2V0dXBz
dGF0ZSBiZWNhdXNlCisgICAgICAgICMgZHVyaW5nIGNvbGxlY3Rpb24gdGhleSBhbHJlYWR5IGlu
dm9rZSBzZXR1cCBmdW5jdGlvbnMKKyAgICAgICAgIyBhbmQgdGhlbiBhZ2FpbiB3aGVuIHRoZXkg
YXJlIHJ1bi4gIEZvciBub3csIHdlIHdhbnQgdG8gbWFrZSBzdXJlCisgICAgICAgICMgdGhhdCB0
aGUgb2xkIDEuMy40IGJlaGF2aW91ciBpcyBwcmVzZXJ2ZWQgc3VjaCB0aGF0IGFsbAorICAgICAg
ICAjIHlpZWxkZWQgZnVuY3Rpb25zIGFsbCBzaGFyZSB0aGUgc2FtZSAic2VsZiIgaW5zdGFuY2Ug
dGhhdAorICAgICAgICAjIGhhcyBiZWVuIHVzZWQgZHVyaW5nIGNvbGxlY3Rpb24uCisgICAgICAg
IG8gPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBzZXR1cGxpc3QgPSBbXQor
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVm
IHNldHVwX21ldGhvZChzZWxmLCBmdW5jKToKKyAgICAgICAgICAgICAgICAgICAgI3ByaW50ICJz
ZXR1cF9tZXRob2QiLCBzZWxmLCBmdW5jCisgICAgICAgICAgICAgICAgICAgIHNldHVwbGlzdC5h
cHBlbmQoc2VsZikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5pbml0ID0gNDIKKworICAgICAg
ICAgICAgICAgIGRlZiB0ZWFyZG93bl9tZXRob2Qoc2VsZiwgZnVuYyk6CisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuaW5pdCA9IE5vbmUKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMx
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5mdW5jMgor
ICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmZ1bmMyCisKKyAgICAgICAgICAgICAgICBk
ZWYgZnVuYzIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmluaXQKKwor
ICAgICAgICAgICAgZGVmIHRlc3Rfc2V0dXBsaXN0KCk6CisgICAgICAgICAgICAgICAgIyBvbmNl
IGZvciB0ZXN0X2Z1bmMyIGR1cmluZyBjb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgIyBvbmNl
IGZvciB0ZXN0X2Z1bmMxIGR1cmluZyB0ZXN0IHJ1bgorICAgICAgICAgICAgICAgICMgb25jZSBm
b3IgdGVzdF9mdW5jMiBkdXJpbmcgdGVzdCBydW4KKyAgICAgICAgICAgICAgICAjcHJpbnQgc2V0
dXBsaXN0CisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihzZXR1cGxpc3QpID09IDMsIGxlbihz
ZXR1cGxpc3QpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHNldHVwbGlzdFswXSA9PSBzZXR1cGxp
c3RbMl0sIHNldHVwbGlzdAorICAgICAgICAgICAgICAgIGFzc2VydCBzZXR1cGxpc3RbMV0gIT0g
c2V0dXBsaXN0WzJdLCBzZXR1cGxpc3QKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4obywgJy12JykKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWls
ZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNAor
ICAgICAgICBhc3NlcnQgbm90IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKKworCitjbGFzcyBUZXN0
RnVuY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9nZXRtb2R1bGVjb2xsZWN0b3Ioc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oImRlZiB0ZXN0X2Z1bmMo
KTogcGFzcyIpCisgICAgICAgIG1vZGNvbCA9IGl0ZW0uZ2V0cGFyZW50KHB5dGVzdC5Nb2R1bGUp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZGNvbCwgcHl0ZXN0Lk1vZHVsZSkKKyAgICAg
ICAgYXNzZXJ0IGhhc2F0dHIobW9kY29sLm9iaiwgJ3Rlc3RfZnVuYycpCisKKyAgICBkZWYgdGVz
dF9mdW5jdGlvbl9hc19vYmplY3RfaW5zdGFuY2VfaWdub3JlZChzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgQShvYmplY3Qp
OgorICAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0bXBkaXIpOgorICAgICAgICAg
ICAgICAgICAgICAwLzAKKworICAgICAgICAgICAgdGVzdF9hID0gQSgpCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUoKQorCisgICAgZGVmIHRlc3RfZnVuY3Rpb25fZXF1YWxpdHkoc2VsZiwgdGVz
dGRpciwgdG1wZGlyKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0
dXJlTWFuYWdlcgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAg
ICAgICAgc2Vzc2lvbiA9IHRlc3RkaXIuU2Vzc2lvbihjb25maWcpCisgICAgICAgIHNlc3Npb24u
X2ZpeHR1cmVtYW5hZ2VyID0gRml4dHVyZU1hbmFnZXIoc2Vzc2lvbikKKworICAgICAgICBkZWYg
ZnVuYzEoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgZnVuYzIoKToKKyAgICAg
ICAgICAgIHBhc3MKKworICAgICAgICBmMSA9IHB5dGVzdC5GdW5jdGlvbihuYW1lPSJuYW1lIiwg
cGFyZW50PXNlc3Npb24sIGNvbmZpZz1jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KDEsKSwgY2FsbG9iaj1mdW5jMSkKKyAgICAgICAgYXNzZXJ0IGYxID09IGYxCisg
ICAgICAgIGYyID0gcHl0ZXN0LkZ1bmN0aW9uKG5hbWU9Im5hbWUiLCBjb25maWc9Y29uZmlnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsb2JqPWZ1bmMyLCBwYXJlbnQ9c2Vzc2lv
bikKKyAgICAgICAgYXNzZXJ0IGYxICE9IGYyCisKKyAgICBkZWYgdGVzdF9pc3N1ZTE5N19wYXJh
bWV0cml6ZV9lbXB0eXNldChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCdhcmcnLCBbXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNr
aXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3NpbmdsZV90dXBsZV91bndyYXBzX3ZhbHVlcyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgnYXJn
JywpLCBbKDEsKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQorCisgICAgZGVmIHRlc3RfaXNzdWUyMTNfcGFyYW1ldHJpemVfdmFsdWVfbm9fZXF1YWwo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAg
ICAgICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigibm90IHBvc3NpYmxlIikKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnYXJnJywgW0EoKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihh
cmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcuX19jbGFzc19fLl9fbmFtZV9fID09ICJB
IgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1m
dWxsdHJhY2UiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX3dpdGhfbm9uX2hhc2hhYmxlX3ZhbHVlcyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgIiIiVGVzdCBwYXJhbWV0cml6YXRpb24gd2l0aCBub24taGFzaGFibGUg
dmFsdWVzLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBh
cmNoaXZhbF9tYXBwaW5nID0geworICAgICAgICAgICAgICAgICcxLjAnOiB7J3RhZyc6ICcxLjAn
fSwKKyAgICAgICAgICAgICAgICAnMS4yLjJhMSc6IHsndGFnJzogJ3JlbGVhc2UtMS4yLjJhMSd9
LAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2tleSB2YWx1ZScuc3BsaXQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZhbF9tYXBwaW5nLml0ZW1zKCkpCisg
ICAgICAgICAgICBkZWYgdGVzdF9hcmNoaXZhbF90b192ZXJzaW9uKGtleSwgdmFsdWUpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBrZXkgaW4gYXJjaGl2YWxfbWFwcGluZworICAgICAgICAgICAg
ICAgIGFzc2VydCB2YWx1ZSA9PSBhcmNoaXZhbF9tYXBwaW5nW2tleV0KKyAgICAgICAgIiIiKQor
ICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3dpdGhfbm9uX2hhc2hh
YmxlX3ZhbHVlc19pbmRpcmVjdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBwYXJh
bWV0cml6YXRpb24gd2l0aCBub24taGFzaGFibGUgdmFsdWVzIHdpdGggaW5kaXJlY3QgcGFyYW1l
dHJpemF0aW9uLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBhcmNoaXZhbF9tYXBwaW5nID0geworICAgICAgICAgICAgICAgICcxLjAnOiB7J3RhZyc6ICcx
LjAnfSwKKyAgICAgICAgICAgICAgICAnMS4yLjJhMSc6IHsndGFnJzogJ3JlbGVhc2UtMS4yLjJh
MSd9LAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGtleShyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiB2YWx1ZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ2tleSB2YWx1ZScuc3BsaXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmNoaXZhbF9tYXBwaW5nLml0ZW1zKCksIGluZGlyZWN0PVRydWUpCisgICAgICAg
ICAgICBkZWYgdGVzdF9hcmNoaXZhbF90b192ZXJzaW9uKGtleSwgdmFsdWUpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBrZXkgaW4gYXJjaGl2YWxfbWFwcGluZworICAgICAgICAgICAgICAgIGFz
c2VydCB2YWx1ZSA9PSBhcmNoaXZhbF9tYXBwaW5nW2tleV0KKyAgICAgICAgIiIiKQorICAgICAg
ICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX292ZXJyaWRlc19maXh0dXJlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IHBhcmFtZXRyaXphdGlvbiB3aGVuIHBhcmFt
ZXRlciBvdmVycmlkZXMgZXhpc3RpbmcgZml4dHVyZSB3aXRoIHNhbWUgbmFtZS4iIiIKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiB2YWx1ZSgpOgorICAg
ICAgICAgICAgICAgIHJldHVybiAndmFsdWUnCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgndmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsnb3ZlcnJpZGRlbiddKQorICAgICAgICAgICAgZGVmIHRlc3Rfb3ZlcnJpZGRlbl92aWFfcGFy
YW0odmFsdWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAnb3ZlcnJpZGRlbicK
KworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzb21ldmFsdWUnLCBbJ292
ZXJyaWRkZW4nXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X25vdF9vdmVycmlkZGVuKHZhbHVlLCBz
b21ldmFsdWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAndmFsdWUnCisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHNvbWV2YWx1ZSA9PSAnb3ZlcnJpZGRlbicKKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdvdGhlcix2YWx1ZScsIFsoJ2ZvbycsICdvdmVy
cmlkZGVuJyldKQorICAgICAgICAgICAgZGVmIHRlc3Rfb3ZlcnJpZGRlbl92aWFfbXVsdGlwYXJh
bShvdGhlciwgdmFsdWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCBvdGhlciA9PSAnZm9vJwor
ICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAnb3ZlcnJpZGRlbicKKyAgICAgICAgIiIi
KQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX292ZXJyaWRlc19w
YXJhbWV0cml6ZWRfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBwYXJh
bWV0cml6YXRpb24gd2hlbiBwYXJhbWV0ZXIgb3ZlcnJpZGVzIGV4aXN0aW5nIHBhcmFtZXRyaXpl
ZCBmaXh0dXJlIHdpdGggc2FtZSBuYW1lLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEsIDJdKQorICAgICAgICAgICAgZGVmIHZhbHVlKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgndmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnb3ZlcnJpZGRlbiddKQorICAgICAgICAgICAgZGVmIHRlc3Rfb3ZlcnJpZGRlbl92
aWFfcGFyYW0odmFsdWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAnb3ZlcnJp
ZGRlbicKKyAgICAgICAgIiIiKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIEBpZ25vcmVfcGFyYW1l
dHJpemVkX21hcmtzCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF9tYXJrKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBpdGVtcyA9IHRlc3RkaXIuZ2V0aXRlbXMoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuZm9vCisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZycsIFsKKyAgICAgICAgICAgICAgICAxLAor
ICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLmJhcihweXRlc3QubWFyay5iYXooMikpCisgICAg
ICAgICAgICBdKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAga2V5d29yZHMgPSBbaXRlbS5rZXl3
b3JkcyBmb3IgaXRlbSBpbiBpdGVtc10KKyAgICAgICAgYXNzZXJ0ICdmb28nIGluIGtleXdvcmRz
WzBdIGFuZCAnYmFyJyBub3QgaW4ga2V5d29yZHNbMF0gYW5kICdiYXonIG5vdCBpbiBrZXl3b3Jk
c1swXQorICAgICAgICBhc3NlcnQgJ2ZvbycgaW4ga2V5d29yZHNbMV0gYW5kICdiYXInIGluIGtl
eXdvcmRzWzFdIGFuZCAnYmF6JyBpbiBrZXl3b3Jkc1sxXQorCisgICAgZGVmIHRlc3RfZnVuY3Rp
b25fZXF1YWxpdHlfd2l0aF9jYWxsc3BlYyhzZWxmLCB0ZXN0ZGlyLCB0bXBkaXIpOgorICAgICAg
ICBpdGVtcyA9IHRlc3RkaXIuZ2V0aXRlbXMoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZycsIFsxLDJdKQorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGl0ZW1zWzBdICE9IGl0ZW1zWzFdCisgICAgICAg
IGFzc2VydCBub3QgKGl0ZW1zWzBdID09IGl0ZW1zWzFdKQorCisgICAgZGVmIHRlc3RfcHlmdW5j
X2NhbGwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oImRl
ZiB0ZXN0X2Z1bmMoKTogcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIGNvbmZpZyA9IGl0ZW0u
Y29uZmlnCisKKyAgICAgICAgY2xhc3MgTXlQbHVnaW4xKG9iamVjdCk6CisgICAgICAgICAgICBk
ZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHNlbGYsIHB5ZnVuY2l0ZW0pOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IKKworICAgICAgICBjbGFzcyBNeVBsdWdpbjIob2JqZWN0KToKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfcHlmdW5jX2NhbGwoc2VsZiwgcHlmdW5jaXRlbSk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5y
ZWdpc3RlcihNeVBsdWdpbjEoKSkKKyAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoTXlQbHVnaW4yKCkpCisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0X3NldHVw
KGl0ZW09aXRlbSkKKyAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVu
Y2l0ZW09aXRlbSkKKworICAgIGRlZiB0ZXN0X211bHRpcGxlX3BhcmFtZXRyaXplKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgneCcsIFswLCAxXSkKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneScs
IFsyLCAzXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0MSh4LCB5KToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgY29saXRlbXMgPSBtb2Rjb2wuY29sbGVjdCgpCisg
ICAgICAgIGFzc2VydCBjb2xpdGVtc1swXS5uYW1lID09ICd0ZXN0MVsyLTBdJworICAgICAgICBh
c3NlcnQgY29saXRlbXNbMV0ubmFtZSA9PSAndGVzdDFbMi0xXScKKyAgICAgICAgYXNzZXJ0IGNv
bGl0ZW1zWzJdLm5hbWUgPT0gJ3Rlc3QxWzMtMF0nCisgICAgICAgIGFzc2VydCBjb2xpdGVtc1sz
XS5uYW1lID09ICd0ZXN0MVszLTFdJworCisgICAgZGVmIHRlc3RfaXNzdWU3NTFfbXVsdGlwbGVf
cGFyYW1ldHJpemVfd2l0aF9pZHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRl
c3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzBdLCBpZHM9WydjJ10pCisgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3knLCBbMCwgMV0sIGlkcz1bJ2EnLCAn
YiddKQorICAgICAgICAgICAgY2xhc3MgVGVzdChvYmplY3QpOgorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0MShzZWxmLCB4LCB5KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0MihzZWxmLCB4LCB5KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAiIiIpCisgICAgICAgIGNvbGl0ZW1zID0gbW9kY29sLmNvbGxlY3QoKVswXS5jb2xs
ZWN0KClbMF0uY29sbGVjdCgpCisgICAgICAgIGFzc2VydCBjb2xpdGVtc1swXS5uYW1lID09ICd0
ZXN0MVthLWNdJworICAgICAgICBhc3NlcnQgY29saXRlbXNbMV0ubmFtZSA9PSAndGVzdDFbYi1j
XScKKyAgICAgICAgYXNzZXJ0IGNvbGl0ZW1zWzJdLm5hbWUgPT0gJ3Rlc3QyW2EtY10nCisgICAg
ICAgIGFzc2VydCBjb2xpdGVtc1szXS5uYW1lID09ICd0ZXN0MltiLWNdJworCisgICAgQGlnbm9y
ZV9wYXJhbWV0cml6ZWRfbWFya3MKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9za2lwaWYoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgbSA9IHB5dGVzdC5tYXJrLnNraXBpZignVHJ1
ZScpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcsIFswLCAxLCBt
KDIpXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXBfaWYoeCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IHggPCAyCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJyogMiBwYXNzZWQs
IDEgc2tpcHBlZCBpbiAqJykKKworICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCisgICAg
ZGVmIHRlc3RfcGFyYW1ldHJpemVfc2tpcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBtID0gcHl0ZXN0Lm1hcmsuc2tpcCgnJykKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCh4
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCA8IDIKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygnKiAyIHBhc3NlZCwgMSBza2lwcGVkIGluIConKQorCisgICAgQGlnbm9yZV9wYXJh
bWV0cml6ZWRfbWFya3MKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9za2lwaWZfbm9fc2tpcChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBtID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKCdG
YWxzZScpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcsIFswLCAx
LCBtKDIpXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXBpZl9ub19za2lwKHgpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCB4IDwgMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcq
IDEgZmFpbGVkLCAyIHBhc3NlZCBpbiAqJykKKworICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21h
cmtzCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfeGZhaWwoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgbSA9IHB5dGVzdC5tYXJrLnhmYWlsKCdUcnVlJykKKworICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAgICAg
ZGVmIHRlc3RfeGZhaWwoeCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHggPCAyCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJyogMiBwYXNzZWQsIDEgeGZhaWxlZCBpbiAqJykKKwor
ICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVf
cGFzc2VkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIG0gPSBweXRlc3QubWFyay54
ZmFpbCgnVHJ1ZScpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcs
IFswLCAxLCBtKDIpXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKHgpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKiAyIHBhc3NlZCwg
MSB4cGFzc2VkIGluIConKQorCisgICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MKKyAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV94ZmFpbF9wYXNzZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgbSA9IHB5dGVzdC5tYXJrLnhmYWlsKCdGYWxzZScpCisKKyAgICAgICAgICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcsIFswLCAxLCBtKDIpXSkKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3Bhc3NlZCh4KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoJyogMyBwYXNzZWQgaW4gKicpCisKKyAgICBkZWYgdGVzdF9mdW5jdGlv
bl9vcmlnaW5hbF9uYW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtcyA9IHRlc3RkaXIu
Z2V0aXRlbXMoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZycsIFsxLDJdKQorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYyhhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBh
c3NlcnQgW3gub3JpZ2luYWxuYW1lIGZvciB4IGluIGl0ZW1zXSA9PSBbJ3Rlc3RfZnVuYycsICd0
ZXN0X2Z1bmMnXQorCisKK2NsYXNzIFRlc3RTb3J0aW5nKG9iamVjdCk6CisgICAgZGVmIHRlc3Rf
Y2hlY2tfZXF1YWxpdHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIu
Z2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCisgICAg
ICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAg
Zm4xID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAidGVzdF9wYXNzIikKKyAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoZm4xLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGZuMiA9
IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNvbCwgInRlc3RfcGFzcyIpCisgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGZuMiwgcHl0ZXN0LkZ1bmN0aW9uKQorCisgICAgICAgIGFzc2VydCBm
bjEgPT0gZm4yCisgICAgICAgIGFzc2VydCBmbjEgIT0gbW9kY29sCisgICAgICAgIGlmIHB5LnN0
ZC5zeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgorICAgICAgICAgICAgYXNzZXJ0IGNtcChmbjEs
IGZuMikgPT0gMAorICAgICAgICBhc3NlcnQgaGFzaChmbjEpID09IGhhc2goZm4yKQorCisgICAg
ICAgIGZuMyA9IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNvbCwgInRlc3RfZmFpbCIpCisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZuMywgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBh
c3NlcnQgbm90IChmbjEgPT0gZm4zKQorICAgICAgICBhc3NlcnQgZm4xICE9IGZuMworCisgICAg
ICAgIGZvciBmbiBpbiBmbjEsIGZuMiwgZm4zOgorICAgICAgICAgICAgYXNzZXJ0IGZuICE9IDMK
KyAgICAgICAgICAgIGFzc2VydCBmbiAhPSBtb2Rjb2wKKyAgICAgICAgICAgIGFzc2VydCBmbiAh
PSBbMSwgMiwgM10KKyAgICAgICAgICAgIGFzc2VydCBbMSwgMiwgM10gIT0gZm4KKyAgICAgICAg
ICAgIGFzc2VydCBtb2Rjb2wgIT0gZm4KKworICAgIGRlZiB0ZXN0X2FsbG93X3NhbmVfc29ydGlu
Z19mb3JfZGVjb3JhdG9ycyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRp
ci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgZGVjKGYpOgorICAgICAgICAgICAg
ICAgIGcgPSBsYW1iZGE6IGYoMikKKyAgICAgICAgICAgICAgICBnLnBsYWNlX2FzID0gZgorICAg
ICAgICAgICAgICAgIHJldHVybiBnCisKKworICAgICAgICAgICAgZGVmIHRlc3RfYih5KToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB0ZXN0X2IgPSBkZWModGVzdF9iKQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9hKHkpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIHRlc3RfYSA9IGRlYyh0ZXN0X2EpCisgICAgICAgICIiIikKKyAgICAgICAgY29saXRlbXMg
PSBtb2Rjb2wuY29sbGVjdCgpCisgICAgICAgIGFzc2VydCBsZW4oY29saXRlbXMpID09IDIKKyAg
ICAgICAgYXNzZXJ0IFtpdGVtLm5hbWUgZm9yIGl0ZW0gaW4gY29saXRlbXNdID09IFsndGVzdF9i
JywgJ3Rlc3RfYSddCisKKworY2xhc3MgVGVzdENvbmZ0ZXN0Q3VzdG9taXphdGlvbihvYmplY3Qp
OgorICAgIGRlZiB0ZXN0X3B5dGVzdF9weWNvbGxlY3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGNsYXNzIE15TW9kdWxlKHB5dGVzdC5Nb2R1bGUpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUo
cGF0aCwgcGFyZW50KToKKyAgICAgICAgICAgICAgICBpZiBwYXRoLmJhc2VuYW1lID09ICJ0ZXN0
X3h5ei5weSI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNeU1vZHVsZShwYXRoLCBwYXJl
bnQpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9z
b21lKCk6IHBhc3MiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF94eXo9ImRlZiB0
ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICAgICAiKjxNb2R1bGUqdGVzdF9weXRlc3QqIiwKKyAgICAgICAgICAgICIqPE15TW9k
dWxlKnh5eioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY3VzdG9taXplZF9weW1ha2Vt
b2R1bGVfaXNzdWUyMDVfc3ViZGlyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBiID0gdGVzdGRp
ci5ta2RpcigiYSIpLm1rZGlyKCJiIikKKyAgICAgICAgYi5qb2luKCJjb25mdGVzdC5weSIpLndy
aXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZSgpOgorICAgICAgICAgICAgICAgIG91
dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgICAgIG1vZCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgp
CisgICAgICAgICAgICAgICAgbW9kLm9iai5oZWxsbyA9ICJ3b3JsZCIKKyAgICAgICAgIiIiKSkK
KyAgICAgICAgYi5qb2luKCJ0ZXN0X21vZHVsZS5weSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291
cmNlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAiIiIpKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MSkKKworICAgIGRlZiB0ZXN0X2N1c3RvbWl6ZWRfcHltYWtlaXRlbShzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImEiKS5ta2RpcigiYiIpCisgICAgICAgIGIuam9p
bigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBw
ZXI9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKCk6Cisg
ICAgICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAgICAgICAgICAgaWYgb3V0Y29t
ZS5leGNpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG91dGNvbWUu
Z2V0X3Jlc3VsdCgpCisgICAgICAgICAgICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciBmdW5jIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jLl9zb21lMTIzID0gIndvcmxkIgorICAgICAgICAiIiIpKQorICAgICAgICBiLmpv
aW4oInRlc3RfbW9kdWxlLnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisg
ICAgICAgICAgICBkZWYgb2JqKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0Lm5vZGUuX3NvbWUxMjMKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKG9iaik6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IG9iaiA9PSAid29ybGQiCisgICAgICAgICIiIikpCisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBNeUZ1bmN0aW9uKHB5dGVzdC5G
dW5jdGlvbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHB5dGVzdF9w
eWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgorICAgICAgICAgICAgICAg
IGlmIG5hbWUgPT0gInNvbWUiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlGdW5jdGlv
bihuYW1lLCBjb2xsZWN0b3IpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCJkZWYgc29tZSgpOiBwYXNzIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqTXlGdW5jdGlvbipzb21lKiIsCisgICAgICAgIF0pCisKKyAgICBk
ZWYgdGVzdF9tYWtlaXRlbV9ub25fdW5kZXJzY29yZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRj
aCk6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYgX2hlbGxvKCk6
IHBhc3MiKQorICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRy
KHB5dGVzdC5Nb2R1bGUsICdtYWtlaXRlbScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFtYmRhIHNlbGYsIG5hbWUsIG9iajogdmFsdWVzLmFwcGVuZChuYW1lKSkKKyAgICAgICAgdmFs
dWVzID0gbW9kY29sLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQgJ19oZWxsbycgbm90IGluIHZh
bHVlcworCisgICAgZGVmIHRlc3RfaXNzdWUyMzY5X2NvbGxlY3RfbW9kdWxlX2ZpbGVleHQoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgICIiIkVuc3VyZSB3ZSBjYW4gY29sbGVjdCBmaWxlcyB3aXRo
IHdlaXJkIGZpbGUgZXh0ZW5zaW9ucyBhcyBQeXRob24KKyAgICAgICAgbW9kdWxlcyAoIzIzNjkp
IiIiCisgICAgICAgICMgV2UnbGwgaW1wbGVtZW50IGEgbGl0dGxlIGZpbmRlciBhbmQgbG9hZGVy
IHRvIGltcG9ydCBmaWxlcyBjb250YWluaW5nCisgICAgICAgICMgUHl0aG9uIHNvdXJjZSBjb2Rl
IHdob3NlIGZpbGUgZXh0ZW5zaW9uIGlzICIubmFyZiIuCisgICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cywgb3MsIGltcAorICAgICAgICAgICAg
ZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgTW9kdWxlCisKKyAgICAgICAgICAgIGNsYXNzIExv
YWRlcjoKKyAgICAgICAgICAgICAgICBkZWYgbG9hZF9tb2R1bGUoc2VsZiwgbmFtZSk6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBpbXAubG9hZF9zb3VyY2UobmFtZSwgbmFtZSArICIubmFy
ZiIpCisgICAgICAgICAgICBjbGFzcyBGaW5kZXI6CisgICAgICAgICAgICAgICAgZGVmIGZpbmRf
bW9kdWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6CisgICAgICAgICAgICAgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKG5hbWUgKyAiLm5hcmYiKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBMb2FkZXIoKQorICAgICAgICAgICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQoRmluZGVyKCkp
CisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Cisg
ICAgICAgICAgICAgICAgaWYgcGF0aC5leHQgPT0gIi5uYXJmIjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vZHVsZShwYXRoLCBwYXJlbnQpIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vm
aWxlKCIubmFyZiIsICIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IDEgKyAxID09IDIiIiIpCisgICAgICAgICMgVXNlIHJ1bnB5dGVz
dF9zdWJwcm9jZXNzLCBzaW5jZSB3ZSdyZSBmdXR6aW5nIHdpdGggc3lzLm1ldGFfcGF0aC4KKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjEgcGFzc2VkKicpCisKKworZGVmIHRlc3Rfc2V0
dXBfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyKHRlc3RkaXIpOgorICAgIHN1YjEgPSB0ZXN0ZGly
Lm1rcHlkaXIoInN1YjEiKQorICAgIHN1YjIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQorICAg
IHN1YjEuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAo
aXRlbSk6CisgICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0
ZXN0X2luX3N1YjEiCisgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgorICAg
ICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9pbl9zdWIx
IgorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6CisgICAgICAgICAg
ICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjEiCisgICAg
IiIiKSkKKyAgICBzdWIyLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50
ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNl
bmFtZSA9PSAidGVzdF9pbl9zdWIyIgorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChp
dGVtKToKKyAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRl
c3RfaW5fc3ViMiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0ZW0pOgor
ICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9pbl9z
dWIyIgorICAgICIiIikpCisgICAgc3ViMS5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgi
ZGVmIHRlc3RfMSgpOiBwYXNzIikKKyAgICBzdWIyLmpvaW4oInRlc3RfaW5fc3ViMi5weSIpLndy
aXRlKCJkZWYgdGVzdF8yKCk6IHBhc3MiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIsICItcyIpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MikKKworCitk
ZWYgdGVzdF9tb2R1bGVjb2xfcm91bmR0cmlwKHRlc3RkaXIpOgorICAgIG1vZGNvbCA9IHRlc3Rk
aXIuZ2V0bW9kdWxlY29sKCJwYXNzIiwgd2l0aGluaXQ9VHJ1ZSkKKyAgICB0cmFpbCA9IG1vZGNv
bC5ub2RlaWQKKyAgICBuZXdjb2wgPSBtb2Rjb2wuc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoW3Ry
YWlsXSwgZ2VuaXRlbXM9MClbMF0KKyAgICBhc3NlcnQgbW9kY29sLm5hbWUgPT0gbmV3Y29sLm5h
bWUKKworCitjbGFzcyBUZXN0VHJhY2ViYWNrQ3V0dGluZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0
X3NraXBfc2ltcGxlKHNlbGYpOgorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhweXRl
c3Quc2tpcC5FeGNlcHRpb24sICdweXRlc3Quc2tpcCgieHh4IiknKQorICAgICAgICBhc3NlcnQg
ZXhjaW5mby50cmFjZWJhY2tbLTFdLmZyYW1lLmNvZGUubmFtZSA9PSAic2tpcCIKKyAgICAgICAg
YXNzZXJ0IGV4Y2luZm8udHJhY2ViYWNrWy0xXS5pc2hpZGRlbigpCisKKyAgICBkZWYgdGVzdF90
cmFjZWJhY2tfYXJnc2V0dXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBoZWxsbyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJ4eXoiKQorICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0KGhlbGxvKTogcGFzcyIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAK
KyAgICAgICAgb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgInh5eiIg
aW4gb3V0CisgICAgICAgIGFzc2VydCAiY29uZnRlc3QucHk6NTogVmFsdWVFcnJvciIgaW4gb3V0
CisgICAgICAgIG51bWVudHJpZXMgPSBvdXQuY291bnQoIl8gXyBfIikgICMgc2VwYXJhdG9yIGZv
ciB0cmFjZWJhY2sgZW50cmllcworICAgICAgICBhc3NlcnQgbnVtZW50cmllcyA9PSAwCisKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZnVsbHRyYWNlIiwgcCkKKyAgICAg
ICAgb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgImNvbmZ0ZXN0LnB5
OjU6IFZhbHVlRXJyb3IiIGluIG91dAorICAgICAgICBudW1lbnRyaWVzID0gb3V0LmNvdW50KCJf
IF8gXyBfIikgICMgc2VwYXJhdG9yIGZvciB0cmFjZWJhY2sgZW50cmllcworICAgICAgICBhc3Nl
cnQgbnVtZW50cmllcyA+IDMKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19lcnJvcl9kdXJpbmdf
aW1wb3J0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICB4ID0gMQorICAgICAgICAgICAgeCA9IDIKKyAgICAgICAgICAgIHggPSAxNwor
ICAgICAgICAgICAgYXNkCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIG91dCA9
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJ4ID0gMSIgbm90IGluIG91dAor
ICAgICAgICBhc3NlcnQgInggPSAyIiBub3QgaW4gb3V0CisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiICphc2QqIiwKKyAgICAgICAgICAgICJFKk5h
bWVFcnJvcioiLAorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1mdWxsdHJhY2UiKQorICAgICAgICBvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAg
ICAgIGFzc2VydCAieCA9IDEiIGluIG91dAorICAgICAgICBhc3NlcnQgInggPSAyIiBpbiBvdXQK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICI+KmFz
ZCoiLAorICAgICAgICAgICAgIkUqTmFtZUVycm9yKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYg
dGVzdF90cmFjZWJhY2tfZmlsdGVyX2Vycm9yX2R1cmluZ19maXh0dXJlX2NvbGxlY3Rpb24oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgICIiImludGVncmF0aW9uIHRlc3QgZm9yIGlzc3VlICM5OTUu
CisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiBmYWlsX21lKGZ1bmMpOgorICAgICAg
ICAgICAgICAgIG5zID0ge30KKyAgICAgICAgICAgICAgICBleGVjKCdkZWYgdygpOiByYWlzZSBW
YWx1ZUVycm9yKCJmYWlsIG1lIiknLCBucykKKyAgICAgICAgICAgICAgICByZXR1cm4gbnNbJ3cn
XQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2NsYXNzJykKKyAgICAgICAg
ICAgIEBmYWlsX21lCisgICAgICAgICAgICBkZWYgZmFpbF9maXh0dXJlKCk6CisgICAgICAgICAg
ICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsaW5nX2ZpeHR1cmUoZmFpbF9m
aXh0dXJlKToKKyAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAK
KyAgICAgICAgb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgIklOVEVS
TkFMRVJST1I+IiBub3QgaW4gb3V0CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKlZhbHVlRXJyb3I6IGZhaWwgbWUqIiwKKyAgICAgICAgICAgICIq
IDEgZXJyb3IgaW4gKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9maWx0ZXJfdHJhY2Vi
YWNrX2dlbmVyYXRlZF9jb2RlKHNlbGYpOgorICAgICAgICAiIiJ0ZXN0IHRoYXQgZmlsdGVyX3Ry
YWNlYmFjaygpIHdvcmtzIHdpdGggdGhlIGZhY3QgdGhhdAorICAgICAgICBweS5jb2RlLkNvZGUu
cGF0aCBhdHRyaWJ1dGUgbWlnaHQgcmV0dXJuIGFuIHN0ciBvYmplY3QuCisgICAgICAgIEluIHRo
aXMgY2FzZSwgb25lIG9mIHRoZSBlbnRyaWVzIG9uIHRoZSB0cmFjZWJhY2sgd2FzIHByb2R1Y2Vk
IGJ5CisgICAgICAgIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb2RlLgorICAgICAgICBTZWU6IGh0
dHBzOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5L2lzc3Vlcy83MQorICAgICAgICBUaGlz
IGZpeGVzICM5OTUuCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGlt
cG9ydCBmaWx0ZXJfdHJhY2ViYWNrCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5zID0ge30K
KyAgICAgICAgICAgIGV4ZWMoJ2RlZiBmb28oKTogcmFpc2UgVmFsdWVFcnJvcicsIG5zKQorICAg
ICAgICAgICAgbnNbJ2ZvbyddKCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAg
ICAgICBfLCBfLCB0YiA9IHN5cy5leGNfaW5mbygpCisKKyAgICAgICAgdGIgPSBfcHl0ZXN0Ll9j
b2RlLlRyYWNlYmFjayh0YikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGJbLTFdLnBhdGgs
IHN0cikKKyAgICAgICAgYXNzZXJ0IG5vdCBmaWx0ZXJfdHJhY2ViYWNrKHRiWy0xXSkKKworICAg
IGRlZiB0ZXN0X2ZpbHRlcl90cmFjZWJhY2tfcGF0aF9ub19sb25nZXJfdmFsaWQoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgICIiInRlc3QgdGhhdCBmaWx0ZXJfdHJhY2ViYWNrKCkgd29ya3Mgd2l0
aCB0aGUgZmFjdCB0aGF0CisgICAgICAgIHB5LmNvZGUuQ29kZS5wYXRoIGF0dHJpYnV0ZSBtaWdo
dCByZXR1cm4gYW4gc3RyIG9iamVjdC4KKyAgICAgICAgSW4gdGhpcyBjYXNlLCBvbmUgb2YgdGhl
IGZpbGVzIGluIHRoZSB0cmFjZWJhY2sgbm8gbG9uZ2VyIGV4aXN0cy4KKyAgICAgICAgVGhpcyBm
aXhlcyAjMTEzMy4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1w
b3J0IGZpbHRlcl90cmFjZWJhY2sKKyAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKGZpbHRlcl90cmFjZWJhY2tfZW50cnlfYXNfc3RyPScn
JworICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IKKyAgICAgICAgJycnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgZmlsdGVy
X3RyYWNlYmFja19lbnRyeV9hc19zdHIKKyAgICAgICAgICAgIGZpbHRlcl90cmFjZWJhY2tfZW50
cnlfYXNfc3RyLmZvbygpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAg
XywgXywgdGIgPSBzeXMuZXhjX2luZm8oKQorCisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4o
J2ZpbHRlcl90cmFjZWJhY2tfZW50cnlfYXNfc3RyLnB5JykucmVtb3ZlKCkKKyAgICAgICAgdGIg
PSBfcHl0ZXN0Ll9jb2RlLlRyYWNlYmFjayh0YikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
dGJbLTFdLnBhdGgsIHN0cikKKyAgICAgICAgYXNzZXJ0IGZpbHRlcl90cmFjZWJhY2sodGJbLTFd
KQorCisKK2NsYXNzIFRlc3RSZXBvcnRJbmZvKG9iamVjdCk6CisgICAgZGVmIHRlc3RfaXRlbXJl
cG9ydF9yZXBvcnRpbmZvKHNlbGYsIHRlc3RkaXIsIGxpbmVjb21wKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBjbGFzcyBNeUZ1bmN0aW9uKHB5dGVzdC5GdW5jdGlvbik6CisgICAgICAgICAgICAgICAgZGVm
IHJlcG9ydGluZm8oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQUJDREUiLCA0
MiwgImN1c3RvbSIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNv
bGxlY3RvciwgbmFtZSwgb2JqKToKKyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICJ0ZXN0X2Z1
bmMiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlGdW5jdGlvbihuYW1lLCBwYXJlbnQ9
Y29sbGVjdG9yKQorICAgICAgICAiIiIpCisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0o
ImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIGl0ZW0uY29uZmlnLnBsdWdpbm1hbmFn
ZXIuZ2V0cGx1Z2luKCJydW5uZXIiKQorICAgICAgICBhc3NlcnQgaXRlbS5sb2NhdGlvbiA9PSAo
IkFCQ0RFIiwgNDIsICJjdXN0b20iKQorCisgICAgZGVmIHRlc3RfZnVuY19yZXBvcnRpbmZvKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9m
dW5jKCk6IHBhc3MiKQorICAgICAgICBmc3BhdGgsIGxpbmVubywgbW9kcGF0aCA9IGl0ZW0ucmVw
b3J0aW5mbygpCisgICAgICAgIGFzc2VydCBmc3BhdGggPT0gaXRlbS5mc3BhdGgKKyAgICAgICAg
YXNzZXJ0IGxpbmVubyA9PSAwCisgICAgICAgIGFzc2VydCBtb2RwYXRoID09ICJ0ZXN0X2Z1bmMi
CisKKyAgICBkZWYgdGVzdF9jbGFzc19yZXBvcnRpbmZvKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgICMgbGluZW5v
IDAKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKHNlbGYpOiBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgY2xhc3Nj
b2wgPSB0ZXN0ZGlyLmNvbGxlY3RfYnlfbmFtZShtb2Rjb2wsICJUZXN0Q2xhc3MiKQorICAgICAg
ICBmc3BhdGgsIGxpbmVubywgbXNnID0gY2xhc3Njb2wucmVwb3J0aW5mbygpCisgICAgICAgIGFz
c2VydCBmc3BhdGggPT0gbW9kY29sLmZzcGF0aAorICAgICAgICBhc3NlcnQgbGluZW5vID09IDEK
KyAgICAgICAgYXNzZXJ0IG1zZyA9PSAiVGVzdENsYXNzIgorCisgICAgZGVmIHRlc3RfZ2VuZXJh
dG9yX3JlcG9ydGluZm8oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIu
Z2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgIyBsaW5lbm8gMAorICAgICAgICAgICAgZGVm
IHRlc3RfZ2VuKCk6CisgICAgICAgICAgICAgICAgZGVmIGNoZWNrKHgpOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgeAorICAgICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCAzCisgICAgICAg
ICIiIikKKyAgICAgICAgZ2VuY29sID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAi
dGVzdF9nZW4iKQorICAgICAgICBmc3BhdGgsIGxpbmVubywgbW9kcGF0aCA9IGdlbmNvbC5yZXBv
cnRpbmZvKCkKKyAgICAgICAgYXNzZXJ0IGZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCisgICAgICAg
IGFzc2VydCBsaW5lbm8gPT0gMQorICAgICAgICBhc3NlcnQgbW9kcGF0aCA9PSAidGVzdF9nZW4i
CisKKyAgICAgICAgZ2VuaXRlbSA9IGdlbmNvbC5jb2xsZWN0KClbMF0KKyAgICAgICAgZnNwYXRo
LCBsaW5lbm8sIG1vZHBhdGggPSBnZW5pdGVtLnJlcG9ydGluZm8oKQorICAgICAgICBhc3NlcnQg
ZnNwYXRoID09IG1vZGNvbC5mc3BhdGgKKyAgICAgICAgYXNzZXJ0IGxpbmVubyA9PSAyCisgICAg
ICAgIGFzc2VydCBtb2RwYXRoID09ICJ0ZXN0X2dlblswXSIKKyAgICAgICAgIiIiCisgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIHRlc3RfZ2VuZnVuYygpOgorICAgICAgICAgICAgICAgIGRlZiBjaGVjayh4KToKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCAzCisgICAg
ICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAiIiIKKwor
ICAgIGRlZiB0ZXN0X3JlcG9ydGluZm9fd2l0aF9uYXN0eV9nZXRhdHRyKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MTIwNAorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAg
ICAgICMgbGluZW5vIDAKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICJ0aGlzIGlzIG5vdCBhbiBpbnQiCisKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mb28oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQor
ICAgICAgICBjbGFzc2NvbCA9IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNvbCwgIlRlc3RD
bGFzcyIpCisgICAgICAgIGluc3RhbmNlID0gY2xhc3Njb2wuY29sbGVjdCgpWzBdCisgICAgICAg
IGZzcGF0aCwgbGluZW5vLCBtc2cgPSBpbnN0YW5jZS5yZXBvcnRpbmZvKCkKKworCitkZWYgdGVz
dF9jdXN0b21pemVkX3B5dGhvbl9kaXNjb3ZlcnkodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
aW5pKCIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBweXRob25fZmlsZXM9Y2hlY2tfKi5w
eQorICAgICAgICBweXRob25fY2xhc3Nlcz1DaGVjaworICAgICAgICBweXRob25fZnVuY3Rpb25z
PWNoZWNrCisgICAgIiIiKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGRlZiBjaGVja19zaW1wbGUoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2xhc3MgQ2hl
Y2tNeUFwcChvYmplY3QpOgorICAgICAgICAgICAgZGVmIGNoZWNrX21ldGgoc2VsZik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICBwMiA9IHAubmV3KGJhc2VuYW1lPXAuYmFz
ZW5hbWUucmVwbGFjZSgidGVzdCIsICJjaGVjayIpKQorICAgIHAubW92ZShwMikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiLCAiLXMiKQorICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqY2hlY2tfY3VzdG9taXplZCoiLAor
ICAgICAgICAiKmNoZWNrX3NpbXBsZSoiLAorICAgICAgICAiKkNoZWNrTXlBcHAqIiwKKyAgICAg
ICAgIipjaGVja19tZXRoKiIsCisgICAgXSkKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgIioyIHBhc3NlZCoiLAorICAgIF0pCisKKworZGVmIHRlc3Rf
Y3VzdG9taXplZF9weXRob25fZGlzY292ZXJ5X2Z1bmN0aW9ucyh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIHB5dGhvbl9mdW5jdGlv
bnM9X3Rlc3QKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBk
ZWYgX3Rlc3RfdW5kZXJzY29yZSgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiLCAiLXMiKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqX3Rlc3RfdW5kZXJzY29yZSoi
LAorICAgIF0pCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICIqMSBwYXNzZWQqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X2NvbGxlY3Rvcl9hdHRyaWJ1
dGVzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3Rv
cik6CisgICAgICAgICAgICBhc3NlcnQgY29sbGVjdG9yLkZ1bmN0aW9uID09IHB5dGVzdC5GdW5j
dGlvbgorICAgICAgICAgICAgYXNzZXJ0IGNvbGxlY3Rvci5DbGFzcyA9PSBweXRlc3QuQ2xhc3MK
KyAgICAgICAgICAgIGFzc2VydCBjb2xsZWN0b3IuSW5zdGFuY2UgPT0gcHl0ZXN0Lkluc3RhbmNl
CisgICAgICAgICAgICBhc3NlcnQgY29sbGVjdG9yLk1vZHVsZSA9PSBweXRlc3QuTW9kdWxlCisg
ICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAi
KjEgcGFzc2VkKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9jdXN0b21pemVfdGhyb3VnaF9hdHRy
aWJ1dGVzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIE15RnVuY3Rpb24ocHl0ZXN0LkZ1bmN0aW9uKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2xhc3MgTXlJbnN0YW5jZShweXRlc3QuSW5zdGFu
Y2UpOgorICAgICAgICAgICAgRnVuY3Rpb24gPSBNeUZ1bmN0aW9uCisgICAgICAgIGNsYXNzIE15
Q2xhc3MocHl0ZXN0LkNsYXNzKToKKyAgICAgICAgICAgIEluc3RhbmNlID0gTXlJbnN0YW5jZQor
CisgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwg
b2JqKToKKyAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgiTXlUZXN0Q2xhc3MiKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gTXlDbGFzcyhuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQorICAg
ICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICBjbGFzcyBNeVRlc3RD
bGFzcyhvYmplY3QpOgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1jb2xsZWN0LW9ubHkiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICIqTXlDbGFzcyoiLAorICAgICAgICAiKk15SW5zdGFuY2UqIiwKKyAgICAgICAgIipNeUZ1
bmN0aW9uKnRlc3RfaGVsbG8qIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Vub3JkZXJhYmxlX3R5
cGVzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgY2xhc3Mg
VGVzdEpvaW5FbXB0eShvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRlZiBt
YWtlX3Rlc3QoKToKKyAgICAgICAgICAgIGNsYXNzIFRlc3Qob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBUZXN0Ll9fbmFtZV9fID0gIlRlc3RGb28iCisgICAgICAg
ICAgICByZXR1cm4gVGVzdAorICAgICAgICBUZXN0Rm9vID0gbWFrZV90ZXN0KCkKKyAgICAiIiIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCAiVHlwZUVycm9y
IiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVY
SVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2RlZiB0ZXN0X2NvbGxlY3RfZnVuY3Rvb2xzX3BhcnRp
YWwodGVzdGRpcik6CisgICAgIiIiCisgICAgVGVzdCB0aGF0IGNvbGxlY3Rpb24gb2YgZnVuY3Rv
b2xzLnBhcnRpYWwgb2JqZWN0IHdvcmtzLCBhbmQgYXJndW1lbnRzCisgICAgdG8gdGhlIHdyYXBw
ZWQgZnVuY3Rpb25zIGFyZSBkZWFsdCBjb3JyZWN0bHkgKHNlZSAjODExKS4KKyAgICAiIiIKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBmdW5jdG9vbHMKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYg
Zml4MSgpOgorICAgICAgICAgICAgcmV0dXJuICdmaXgxJworCisgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICBkZWYgZml4MigpOgorICAgICAgICAgICAgcmV0dXJuICdmaXgyJworCisg
ICAgICAgIGRlZiBjaGVjazEoaSwgZml4MSk6CisgICAgICAgICAgICBhc3NlcnQgaSA9PSAyCisg
ICAgICAgICAgICBhc3NlcnQgZml4MSA9PSAnZml4MScKKworICAgICAgICBkZWYgY2hlY2syKGZp
eDEsIGkpOgorICAgICAgICAgICAgYXNzZXJ0IGkgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IGZp
eDEgPT0gJ2ZpeDEnCisKKyAgICAgICAgZGVmIGNoZWNrMyhmaXgxLCBpLCBmaXgyKToKKyAgICAg
ICAgICAgIGFzc2VydCBpID09IDIKKyAgICAgICAgICAgIGFzc2VydCBmaXgxID09ICdmaXgxJwor
ICAgICAgICAgICAgYXNzZXJ0IGZpeDIgPT0gJ2ZpeDInCisKKyAgICAgICAgdGVzdF9va18xID0g
ZnVuY3Rvb2xzLnBhcnRpYWwoY2hlY2sxLCBpPTIpCisgICAgICAgIHRlc3Rfb2tfMiA9IGZ1bmN0
b29scy5wYXJ0aWFsKGNoZWNrMSwgaT0yLCBmaXgxPSdmaXgxJykKKyAgICAgICAgdGVzdF9va18z
ID0gZnVuY3Rvb2xzLnBhcnRpYWwoY2hlY2sxLCAyKQorICAgICAgICB0ZXN0X29rXzQgPSBmdW5j
dG9vbHMucGFydGlhbChjaGVjazIsIGk9MikKKyAgICAgICAgdGVzdF9va181ID0gZnVuY3Rvb2xz
LnBhcnRpYWwoY2hlY2szLCBpPTIpCisgICAgICAgIHRlc3Rfb2tfNiA9IGZ1bmN0b29scy5wYXJ0
aWFsKGNoZWNrMywgaT0yLCBmaXgxPSdmaXgxJykKKworICAgICAgICB0ZXN0X2ZhaWxfMSA9IGZ1
bmN0b29scy5wYXJ0aWFsKGNoZWNrMiwgMikKKyAgICAgICAgdGVzdF9mYWlsXzIgPSBmdW5jdG9v
bHMucGFydGlhbChjaGVjazMsIDIpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgcmVzdWx0LmFzc2VydG91dGNvbWUocGFzc2VkPTYsIGZhaWxlZD0yKQor
CisKK2RlZiB0ZXN0X2RvbnRfY29sbGVjdF9ub25fZnVuY3Rpb25fY2FsbGFibGUodGVzdGRpcik6
CisgICAgIiIiVGVzdCBmb3IgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zMzEKKworICAgIEluIHRoaXMgY2FzZSBhbiBJTlRFUk5BTEVSUk9SIG9jY3Vy
cmVkIHRyeWluZyB0byByZXBvcnQgdGhlIGZhaWx1cmUgb2YKKyAgICBhIHRlc3QgbGlrZSB0aGlz
IG9uZSBiZWNhdXNlIHB5IHRlc3QgZmFpbGVkIHRvIGdldCB0aGUgc291cmNlIGxpbmVzLgorICAg
ICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgY2xhc3MgT2gob2JqZWN0
KToKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgdGVzdF9hID0gT2goKQorCisgICAgICAgIGRlZiB0ZXN0X3JlYWwoKToKKyAg
ICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Jy1ydycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypjb2xs
ZWN0ZWQgMSBpdGVtKicsCisgICAgICAgICIqY2Fubm90IGNvbGxlY3QgJ3Rlc3RfYScgYmVjYXVz
ZSBpdCBpcyBub3QgYSBmdW5jdGlvbioiLAorICAgICAgICAnKjEgcGFzc2VkLCAxIHdhcm5pbmdz
IGluIConLAorICAgIF0pCisKKworZGVmIHRlc3RfY2xhc3NfaW5qZWN0aW9uX2RvZXNfbm90X2Jy
ZWFrX2NvbGxlY3Rpb24odGVzdGRpcik6CisgICAgIiIiVGVzdHMgd2hldGhlciBpbmplY3Rpb24g
ZHVyaW5nIGNvbGxlY3Rpb24gdGltZSB3aWxsIHRlcm1pbmF0ZSB0ZXN0aW5nLgorCisgICAgSW4g
dGhpcyBjYXNlIHRoZSBlcnJvciBzaG91bGQgbm90IG9jY3VyIGlmIHRoZSBUZXN0Q2xhc3MgaXRz
ZWxmCisgICAgaXMgbW9kaWZpZWQgZHVyaW5nIGNvbGxlY3Rpb24gdGltZSwgYW5kIHRoZSBvcmln
aW5hbCBtZXRob2QgbGlzdAorICAgIGlzIHN0aWxsIHVzZWQgZm9yIGNvbGxlY3Rpb24uCisgICAg
IiIiCisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgIGZyb20gdGVzdF9pbmpl
Y3QgaW1wb3J0IFRlc3RDbGFzcworICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1l
dGFmdW5jKToKKyAgICAgICAgICAgIFRlc3RDbGFzcy5jaGFuZ2VkX3ZhciA9IHt9CisgICAgIiIi
KQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2luamVjdD0nJycKKyAgICAgICAgIGNsYXNz
IFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgZGVmIHRlc3RfaW5qZWN0aW9uKHNlbGYp
OgorICAgICAgICAgICAgICAgICIiIlRlc3QgYmVpbmcgcGFyYW1ldHJpemVkLiIiIgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIGFzc2VydCAiUnVudGltZUVycm9yOiBkaWN0aW9uYXJ5IGNoYW5nZWQgc2l6ZSBkdXJp
bmcgaXRlcmF0aW9uIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbJyoxIHBhc3NlZConXSkKKworCitkZWYgdGVzdF9zeW50YXhfZXJy
b3Jfd2l0aF9ub25fYXNjaWlfY2hhcnModGVzdGRpcik6CisgICAgIiIiRml4IGRlY29kaW5nIGlz
c3VlIHdoaWxlIGZvcm1hdHRpbmcgU3ludGF4RXJyb3JzIGR1cmluZyBjb2xsZWN0aW9uICgjNTc4
KQorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh1IiIiCisgICAgIyAtKi0gY29kaW5n
OiBVVEYtOCAtKi0KKworICAgIOKYgworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypF
UlJPUiBjb2xsZWN0aW5nKicsCisgICAgICAgICcqU3ludGF4RXJyb3IqJywKKyAgICAgICAgJyox
IGVycm9yIGluKicsCisgICAgXSkKKworCitkZWYgdGVzdF9za2lwX2R1cGxpY2F0ZXNfYnlfZGVm
YXVsdCh0ZXN0ZGlyKToKKyAgICAiIiJUZXN0IGZvciBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2MDkgKCMxNjA5KQorCisgICAgSWdub3JlIGR1cGxp
Y2F0ZSBkaXJlY3Rvcmllcy4KKyAgICAiIiIKKyAgICBhID0gdGVzdGRpci5ta2RpcigiYSIpCisg
ICAgZmggPSBhLmpvaW4oInRlc3RfYS5weSIpCisgICAgZmgud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3RfcmVhbCgp
OgorICAgICAgICAgICAgcGFzcworICAgICIiIikpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoYS5zdHJwYXRoLCBhLnN0cnBhdGgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgJypjb2xsZWN0ZWQgMSBpdGVtKicsCisgICAgXSkKKworCitkZWYgdGVz
dF9rZWVwX2R1cGxpY2F0ZXModGVzdGRpcik6CisgICAgIiIiVGVzdCBmb3IgaXNzdWUgaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjA5ICgjMTYwOSkKKworICAg
IFVzZSAtLWtlZXAtZHVwbGljYXRlcyB0byBjb2xsZWN0IHRlc3RzIGZyb20gZHVwbGljYXRlIGRp
cmVjdG9yaWVzLgorICAgICIiIgorICAgIGEgPSB0ZXN0ZGlyLm1rZGlyKCJhIikKKyAgICBmaCA9
IGEuam9pbigidGVzdF9hLnB5IikKKyAgICBmaC53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgi
IiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9yZWFsKCk6CisgICAg
ICAgICAgICBwYXNzCisgICAgIiIiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1rZWVwLWR1cGxpY2F0ZXMiLCBhLnN0cnBhdGgsIGEuc3RycGF0aCkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKmNvbGxlY3RlZCAyIGl0ZW0qJywKKyAgICBd
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE1OWU4ZWJi
OGUxMTM4Yjc3YTU4MjE5NmQ5NjM5MjM5YWIwYzAyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmUucHkKQEAgLTAsMCArMSwzMTcxIEBACitmcm9t
IHRleHR3cmFwIGltcG9ydCBkZWRlbnQKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcworZnJv
bSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlTG9va3VwRXJyb3IKK2Zyb20gX3B5dGVz
dCBpbXBvcnQgZml4dHVyZXMKKworCitkZWYgdGVzdF9nZXRmdW5jYXJnbmFtZXMoKToKKyAgICBk
ZWYgZigpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IG5vdCBmaXh0dXJlcy5nZXRmdW5jYXJn
bmFtZXMoZikKKworICAgIGRlZiBnKGFyZyk6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgZml4
dHVyZXMuZ2V0ZnVuY2FyZ25hbWVzKGcpID09ICgnYXJnJywpCisKKyAgICBkZWYgaChhcmcxLCBh
cmcyPSJoZWxsbyIpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNh
cmduYW1lcyhoKSA9PSAoJ2FyZzEnLCkKKworICAgIGRlZiBoKGFyZzEsIGFyZzIsIGFyZzM9Imhl
bGxvIik6CisgICAgICAgIHBhc3MKKyAgICBhc3NlcnQgZml4dHVyZXMuZ2V0ZnVuY2FyZ25hbWVz
KGgpID09ICgnYXJnMScsICdhcmcyJykKKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAg
ZGVmIGYoc2VsZiwgYXJnMSwgYXJnMj0iaGVsbG8iKToKKyAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgIGRlZiBzdGF0aWMoYXJnMSwgYXJnMik6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgZml4dHVyZXMuZ2V0ZnVuY2FyZ25hbWVzKEEoKS5m
KSA9PSAoJ2FyZzEnLCkKKyAgICBhc3NlcnQgZml4dHVyZXMuZ2V0ZnVuY2FyZ25hbWVzKEEuc3Rh
dGljLCBjbHM9QSkgPT0gKCdhcmcxJywgJ2FyZzInKQorCisKK2NsYXNzIFRlc3RGaWxsRml4dHVy
ZXMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9maWxsZnVuY2FyZ3NfZXhwb3NlZChzZWxmKToKKyAg
ICAgICAgIyB1c2VkIGJ5IG9lanNraXQsIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgICAg
YXNzZXJ0IHB5dGVzdC5fZmlsbGZ1bmNhcmdzID09IGZpeHR1cmVzLmZpbGxmaXh0dXJlcworCisg
ICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBmYWlscyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiB4eXpzb21ldGhpbmcocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoc29tZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkgICMgIi0tY29sbGVjdC1vbmx5IikKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgIipkZWYgdGVzdF9mdW5jKHNvbWUpKiIsCisgICAgICAgICAg
ICAiKmZpeHR1cmUqc29tZSpub3QgZm91bmQqIiwKKyAgICAgICAgICAgICIqeHl6c29tZXRoaW5n
KiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2Jhc2ljKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBzb21lKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmZ1bmN0aW9u
Ll9fbmFtZV9fCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBv
dGhlcihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoc29tZSwgb3RoZXIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiKQorICAgICAgICBmaXh0dXJlcy5maWxsZml4dHVyZXMoaXRlbSkKKyAgICAgICAgZGVsIGl0
ZW0uZnVuY2FyZ3NbInJlcXVlc3QiXQorICAgICAgICBhc3NlcnQgbGVuKGdldF9wdWJsaWNfbmFt
ZXMoaXRlbS5mdW5jYXJncykpID09IDIKKyAgICAgICAgYXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbJ3Nv
bWUnXSA9PSAidGVzdF9mdW5jIgorICAgICAgICBhc3NlcnQgaXRlbS5mdW5jYXJnc1snb3RoZXIn
XSA9PSA0MgorCisgICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBfbW9kdWxlbGV2ZWwoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBk
ZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmZ1
bmN0aW9uLl9fbmFtZV9fCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCBzb21ldGhpbmcpOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09ICJ0ZXN0X21ldGhvZCIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc29t
ZXRoaW5nID09ICJ0ZXN0X2Z1bmMiCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIp
CisKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFzc2xldmVsKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisKKyAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5pbnN0YW5j
ZQorCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIHNvbWV0aGluZyk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgaXMgc2VsZgorICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIKKyAgICAgICAg
XSkKKworICAgIGRlZiB0ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1
YmRpcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3Vi
MSIpCisgICAgICAgIHN1YjIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQorICAgICAgICBzdWIx
LmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMo
RXhjZXB0aW9uLCAicmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2FyZzInKSIpCisgICAgICAgICIi
IikpCisgICAgICAgIHN1YjIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2Rl
LlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24sICJyZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnYXJn
MScpIikKKyAgICAgICAgIiIiKSkKKworICAgICAgICBzdWIxLmpvaW4oInRlc3RfaW5fc3ViMS5w
eSIpLndyaXRlKCJkZWYgdGVzdF8xKGFyZzEpOiBwYXNzIikKKyAgICAgICAgc3ViMi5qb2luKCJ0
ZXN0X2luX3N1YjIucHkiKS53cml0ZSgiZGVmIHRlc3RfMihhcmcyKTogcGFzcyIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5hc3NlcnRf
b3V0Y29tZXMocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9tb2R1bGVf
Y2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
ICdzcGFtJworCisgICAgICAgICAgICBjbGFzcyBUZXN0U3BhbShvYmplY3QpOgorCisgICAgICAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgICBkZWYgc3BhbShzZWxm
LCBzcGFtKToKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgorCisgICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc2VsZiwgc3BhbSk6CisgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgc3BhbSA9PSAnc3BhbXNwYW0nCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqMSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRl
c3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQq
Il0pCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBzcGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBzcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgorCisgICAg
ICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBzcGFt
ID09ICdzcGFtc3BhbScKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3Nl
ZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRl
ZiB0ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc3BhbSgp
OgorICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScKKyAgICAgICAgIiIiKQorICAgICAgICBw
a2cgPSB0ZXN0ZGlyLm1rcHlkaXIoInBrZyIpCisgICAgICAgIHBrZy5qb2luKCJjb25mdGVzdC5w
eSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFt
KHNwYW0pOgorICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgorICAgICAgICAiIiIpKQor
ICAgICAgICB0ZXN0ZmlsZSA9IHBrZy5qb2luKCJ0ZXN0X3NwYW0ucHkiKQorICAgICAgICB0ZXN0
ZmlsZS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X3NwYW0oc3BhbSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gInNwYW1zcGFtIgor
ICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X2V4dGVuZF9m
aXh0dXJlX2NvbmZ0ZXN0X3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKHRlc3RwbHVnaW49IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAg
ICAgICAgICAgIHJldHVybiA3CisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5zeXNwYXRo
aW5zZXJ0KCkKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gJ3Rlc3RwbHVnaW4n
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbyhmb28p
OgorICAgICAgICAgICAgICAgIHJldHVybiBmb28gKyA3CisgICAgICAgICIiIikKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGZvbyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGZvbyA9PSAxNAorICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcycpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKworICAgIGRlZiB0ZXN0X2V4dGVuZF9maXh0dXJlX3BsdWdpbl9wbHVnaW4oc2VsZiwg
dGVzdGRpcik6CisgICAgICAgICMgVHdvIHBsdWdpbnMgc2hvdWxkIGV4dGVuZCBlYWNoIG9yZGVy
IGluIGxvYWRpbmcgb3JkZXIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RwbHVnaW4w
PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNwor
ICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0cGx1Z2luMT0iIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgZm9vKGZvbyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvbyAr
IDcKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFsn
dGVzdHBsdWdpbjAnLCAndGVzdHBsdWdpbjEnXQorCisgICAgICAgICAgICBkZWYgdGVzdF9mb28o
Zm9vKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZm9vID09IDE0CisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9wYXJhbWV0cml6ZWRfZml4dHVyZV9j
b25mdGVzdF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3Qgb3ZlcnJpZGUg
b2YgdGhlIHBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggbm9uLXBhcmFtZXRyaXplZCBvbmUgb24g
dGhlIHRlc3QgbW9kdWxlIGxldmVsLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAiIiIpCisgICAgICAg
IHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFt
KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworCisgICAgICAgICAgICBkZWYgdGVz
dF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09ICdzcGFtJworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfcGFy
YW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiIlRlc3Qgb3ZlcnJpZGUgb2YgdGhlIHBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggbm9u
LXBhcmFtZXRyaXplZCBvbmUgb24gdGhlIGNvbmZ0ZXN0IGxldmVsLiIiIgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAgICAgICAgICBkZWYg
c3BhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAg
ICAgICAiIiIpCisgICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRpcignc3ViZGlyJykKKyAg
ICAgICAgc3ViZGlyLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3Vy
Y2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
J3NwYW0nCisgICAgICAgICIiIikpCisgICAgICAgIHRlc3RmaWxlID0gc3ViZGlyLmpvaW4oInRl
c3Rfc3BhbS5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNl
KCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgc3BhbSA9PSAic3BhbSIKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxl
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisK
KyAgICBkZWYgdGVzdF9vdmVycmlkZV9ub25fcGFyYW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3Rf
bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBu
b24tcGFyYW1ldHJpemVkIGZpeHR1cmUgd2l0aCBwYXJhbWV0cml6ZWQgb25lIG9uIHRoZSB0ZXN0
IG1vZHVsZSBsZXZlbC4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisgICAg
ICAgICIiIikKKyAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzEsIDIsIDNdKQorICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgcGFyYW1zID0geydzcGFt
JzogMX0KKworICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgc3BhbSA9PSBwYXJhbXNbJ3NwYW0nXQorICAgICAgICAgICAgICAgIHBhcmFtc1sn
c3BhbSddICs9IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoi
XSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKworICAgIGRlZiB0
ZXN0X292ZXJyaWRlX25vbl9wYXJhbWV0cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBhcmFt
ZXRyaXplZCBmaXh0dXJlIHdpdGggcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2
ZWwuIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBzcGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIpCisg
ICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRpcignc3ViZGlyJykKKyAgICAgICAgc3ViZGly
LmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzEsIDIsIDNdKQorICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgIiIiKSkKKyAgICAgICAgdGVzdGZp
bGUgPSBzdWJkaXIuam9pbigidGVzdF9zcGFtLnB5IikKKyAgICAgICAgdGVzdGZpbGUud3JpdGUo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAx
fQorCisgICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFz
c2VydCBzcGFtID09IHBhcmFtc1snc3BhbSddCisgICAgICAgICAgICAgICAgcGFyYW1zWydzcGFt
J10gKz0gMQorICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0
X292ZXJyaWRlX2F1dG91c2VfZml4dHVyZV93aXRoX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0
ZXN0X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9m
IHRoZSBhdXRvdXNlIGZpeHR1cmUgd2l0aCBwYXJhbWV0cml6ZWQgb25lIG9uIHRoZSBjb25mdGVz
dCBsZXZlbC4KKyAgICAgICAgVGhpcyB0ZXN0IGNvdmVycyB0aGUgaXNzdWUgZXhwbGFpbmVkIGlu
IGlzc3VlIDE2MDEKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gJ3NwYW0nCisgICAgICAgICIiIikKKyAgICAgICAgc3ViZGlyID0gdGVzdGRpci5t
a3B5ZGlyKCdzdWJkaXInKQorICAgICAgICBzdWJkaXIuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAgICAgICAg
ICBkZWYgc3BhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bQorICAgICAgICAiIiIpKQorICAgICAgICB0ZXN0ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3Nw
YW0ucHkiKQorICAgICAgICB0ZXN0ZmlsZS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIK
KyAgICAgICAgICAgIHBhcmFtcyA9IHsnc3BhbSc6IDF9CisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X3NwYW0oc3BhbSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gcGFyYW1zWydzcGFt
J10KKyAgICAgICAgICAgICAgICBwYXJhbXNbJ3NwYW0nXSArPSAxCisgICAgICAgICIiIikpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKjMgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0dXJlX3BsdWdpbihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBBIGZpeHR1cmUgZnJvbSBhIHBsdWdpbiBoYXMgbm8g
YmFzZWlkIHNldCwgd2hpY2ggc2NyZXdlZCB1cAorICAgICAgICAjIHRoZSBhdXRvdXNlIGZpeHR1
cmUgaGFuZGxpbmcuCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0cGx1Z2luPSIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
YXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGZvbyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmZ1bmN0aW9uLmZvbyA9IDcKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLnN5c3BhdGhpbnNlcnQoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBweXRlc3RfcGx1Z2lucyA9ICd0ZXN0cGx1Z2luJworCisgICAgICAgICAgICBkZWYg
dGVzdF9mb28ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QuZnVuY3Rp
b24uZm9vID09IDcKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2Z1
bmNhcmdfbG9va3VwX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYV9maXh0dXJlKCk6IHBhc3MKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYl9maXh0dXJlKCk6IHBhc3MK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgY19maXh0dXJl
KCk6IHBhc3MKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
ZF9maXh0dXJlKCk6IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9sb29rdXBfZXJyb3IodW5rbm93bik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgICAgICIqRVJST1IgYXQgc2V0dXAgb2YgdGVzdF9sb29rdXBfZXJyb3IqIiwKKyAgICAgICAg
ICAgICIgIGRlZiB0ZXN0X2xvb2t1cF9lcnJvcih1bmtub3duKToqIiwKKyAgICAgICAgICAgICJF
ICAgICAgIGZpeHR1cmUgJ3Vua25vd24nIG5vdCBmb3VuZCIsCisgICAgICAgICAgICAiPiAgICAg
ICBhdmFpbGFibGUgZml4dHVyZXM6KmFfZml4dHVyZSwqYl9maXh0dXJlLCpjX2ZpeHR1cmUsKmRf
Zml4dHVyZSptb25rZXlwYXRjaCwqIiwgICMgc29ydGVkCisgICAgICAgICAgICAiPiAgICAgICB1
c2UgJ3B5KnRlc3QgLS1maXh0dXJlcyAqJyBmb3IgaGVscCBvbiB0aGVtLiIsCisgICAgICAgICAg
ICAiKjEgZXJyb3IqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0ICJJTlRFUk5BTCIgbm90
IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0X2ZpeHR1cmVfZXhjaW5mb19s
ZWFrKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIG9uIHB5dGhvbjIgc3lzLmV4Y2luZm8gd291
bGQgbGVhayBpbnRvIGZpeHR1cmUgZXhlY3V0aW9ucworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgdHJhY2Vi
YWNrCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGxlYWsoKToKKyAgICAgICAgICAgICAgICBpZiBzeXMuZXhj
X2luZm8oKVswXTogICMgcHl0aG9uMyBidWcgOikKKyAgICAgICAgICAgICAgICAgICAgdHJhY2Vi
YWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgI2ZhaWxzCisgICAgICAgICAgICAgICAg
YXNzZXJ0IHN5cy5leGNfaW5mbygpID09IChOb25lLCBOb25lLCBOb25lKQorCisgICAgICAgICAg
ICBkZWYgdGVzdF9sZWFrKGxlYWspOgorICAgICAgICAgICAgICAgIGlmIHN5cy5leGNfaW5mbygp
WzBdOiAgIyBweXRob24zIGJ1ZyA6KQorICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJp
bnRfZXhjKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5vbmUs
IE5vbmUsIE5vbmUpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworY2xhc3MgVGVzdFJl
cXVlc3RCYXNpYyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3JlcXVlc3RfYXR0cmlidXRlcyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXEgPSBmaXh0dXJl
cy5GaXh0dXJlUmVxdWVzdChpdGVtKQorICAgICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9uID09IGl0
ZW0ub2JqCisgICAgICAgIGFzc2VydCByZXEua2V5d29yZHMgPT0gaXRlbS5rZXl3b3JkcworICAg
ICAgICBhc3NlcnQgaGFzYXR0cihyZXEubW9kdWxlLCAndGVzdF9mdW5jJykKKyAgICAgICAgYXNz
ZXJ0IHJlcS5jbHMgaXMgTm9uZQorICAgICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9uLl9fbmFtZV9f
ID09ICJ0ZXN0X2Z1bmMiCisgICAgICAgIGFzc2VydCByZXEuY29uZmlnID09IGl0ZW0uY29uZmln
CisgICAgICAgIGFzc2VydCByZXByKHJlcSkuZmluZChyZXEuZnVuY3Rpb24uX19uYW1lX18pICE9
IC0xCisKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2F0dHJpYnV0ZXNfbWV0aG9kKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBpdGVtLCA9IHRlc3RkaXIuZ2V0aXRlbXMoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBUZXN0QihvYmplY3QpOgorCisgICAgICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhz
ZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXEgPSBpdGVtLl9yZXF1ZXN0CisgICAgICAg
IGFzc2VydCByZXEuY2xzLl9fbmFtZV9fID09ICJUZXN0QiIKKyAgICAgICAgYXNzZXJ0IHJlcS5p
bnN0YW5jZS5fX2NsYXNzX18gPT0gcmVxLmNscworCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jb250
YWluc19mdW5jYXJnX2FyZzJmaXh0dXJlZGVmcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9k
Y29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmco
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIHNvbWV0
aGluZyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBp
dGVtMSwgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQorICAgICAgICBhc3NlcnQgaXRlbTEu
bmFtZSA9PSAidGVzdF9tZXRob2QiCisgICAgICAgIGFyZzJmaXh0dXJlZGVmcyA9IGZpeHR1cmVz
LkZpeHR1cmVSZXF1ZXN0KGl0ZW0xKS5fYXJnMmZpeHR1cmVkZWZzCisgICAgICAgIGFzc2VydCBs
ZW4oYXJnMmZpeHR1cmVkZWZzKSA9PSAxCisgICAgICAgIGFzc2VydCBhcmcyZml4dHVyZWRlZnNb
J3NvbWV0aGluZyddWzBdLmFyZ25hbWUgPT0gInNvbWV0aGluZyIKKworICAgIGRlZiB0ZXN0X2dl
dGZpeHR1cmV2YWx1ZV9yZWN1cnNpdmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoInNvbWV0aGluZyIpICsg
MQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21ldGhpbmcpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBzb21ldGhpbmcgPT0gMgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0x
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAnZ2V0Zml4bWV0aG9k
JywgKCdnZXRmaXh0dXJldmFsdWUnLCAnZ2V0ZnVuY2FyZ3ZhbHVlJykpCisgICAgZGVmIHRlc3Rf
Z2V0Zml4dHVyZXZhbHVlKHNlbGYsIHRlc3RkaXIsIGdldGZpeG1ldGhvZCk6CisgICAgICAgIGl0
ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICB2YWx1ZXMgPSBbMl0KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KTogcmV0dXJuIDEKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG90aGVyKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZXMucG9wKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRo
aW5nKTogcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGltcG9ydCBjb250ZXh0bGliCisgICAg
ICAgIGlmIGdldGZpeG1ldGhvZCA9PSAnZ2V0ZnVuY2FyZ3ZhbHVlJzoKKyAgICAgICAgICAgIHdh
cm5pbmdfZXhwZWN0YXRpb24gPSBweXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgIyBzZWUgIzE4MzAgZm9yIGEgY2xlYW5lciB3YXkgdG8g
YWNjb21wbGlzaCB0aGlzCisgICAgICAgICAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgor
ICAgICAgICAgICAgZGVmIGV4cGVjdGluZ19ub193YXJuaW5nKCk6CisgICAgICAgICAgICAgICAg
eWllbGQKKworICAgICAgICAgICAgd2FybmluZ19leHBlY3RhdGlvbiA9IGV4cGVjdGluZ19ub193
YXJuaW5nKCkKKworICAgICAgICByZXEgPSBpdGVtLl9yZXF1ZXN0CisgICAgICAgIHdpdGggd2Fy
bmluZ19leHBlY3RhdGlvbjoKKyAgICAgICAgICAgIGZpeHR1cmVfZmV0Y2hlciA9IGdldGF0dHIo
cmVxLCBnZXRmaXhtZXRob2QpCisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRml4dHVy
ZUxvb2t1cEVycm9yKToKKyAgICAgICAgICAgICAgICBmaXh0dXJlX2ZldGNoZXIoIm5vdGV4aXN0
cyIpCisgICAgICAgICAgICB2YWwgPSBmaXh0dXJlX2ZldGNoZXIoInNvbWV0aGluZyIpCisgICAg
ICAgICAgICBhc3NlcnQgdmFsID09IDEKKyAgICAgICAgICAgIHZhbCA9IGZpeHR1cmVfZmV0Y2hl
cigic29tZXRoaW5nIikKKyAgICAgICAgICAgIGFzc2VydCB2YWwgPT0gMQorICAgICAgICAgICAg
dmFsMiA9IGZpeHR1cmVfZmV0Y2hlcigib3RoZXIiKQorICAgICAgICAgICAgYXNzZXJ0IHZhbDIg
PT0gMgorICAgICAgICAgICAgdmFsMiA9IGZpeHR1cmVfZmV0Y2hlcigib3RoZXIiKSAgIyBzZWUg
YWJvdXQgY2FjaGluZworICAgICAgICAgICAgYXNzZXJ0IHZhbDIgPT0gMgorICAgICAgICAgICAg
cHl0ZXN0Ll9maWxsZnVuY2FyZ3MoaXRlbSkKKyAgICAgICAgICAgIGFzc2VydCBpdGVtLmZ1bmNh
cmdzWyJzb21ldGhpbmciXSA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbGVuKGdldF9wdWJsaWNf
bmFtZXMoaXRlbS5mdW5jYXJncykpID09IDIKKyAgICAgICAgICAgIGFzc2VydCAicmVxdWVzdCIg
aW4gaXRlbS5mdW5jYXJncworCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB0ZWFyZG93bmxpc3QgPSBbXQorICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdGVhcmRvd25s
aXN0LmFwcGVuZCgxKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKTogcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5wcmVwYXJl
KGl0ZW0pCisgICAgICAgIHB5dGVzdC5fZmlsbGZ1bmNhcmdzKGl0ZW0pCisgICAgICAgICMgc3Vj
Y2Vzc2l2ZWx5IGNoZWNrIGZpbmFsaXphdGlvbiBjYWxscworICAgICAgICB0ZWFyZG93bmxpc3Qg
PSBpdGVtLmdldHBhcmVudChweXRlc3QuTW9kdWxlKS5vYmoudGVhcmRvd25saXN0CisgICAgICAg
IHNzID0gaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlCisgICAgICAgIGFzc2VydCBub3QgdGVhcmRv
d25saXN0CisgICAgICAgIHNzLnRlYXJkb3duX2V4YWN0KGl0ZW0sIE5vbmUpCisgICAgICAgIHBy
aW50KHNzLnN0YWNrKQorICAgICAgICBhc3NlcnQgdGVhcmRvd25saXN0ID09IFsxXQorCisgICAg
ZGVmIHRlc3RfbWFya19hc19maXh0dXJlX3dpdGhfcHJlZml4X2FuZF9kZWNvcmF0b3JfZmFpbHMo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fbWFya2VkX3dpdGhfcHJlZml4X2FuZF9kZWNvcmF0
b3IoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqQXNzZXJ0aW9uRXJyb3I6IGZpeHR1cmVzIGNhbm5vdCBoYXZlKkBweXRlc3QuZml4dHVy
ZSoiLAorICAgICAgICAgICAgIipweXRlc3RfZnVuY2FyZ19fbWFya2VkX3dpdGhfcHJlZml4X2Fu
ZF9kZWNvcmF0b3IqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5h
bGl6ZXJfZmFpbGluZ19zZXR1cChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVz
ID0gWzFdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBteWZp
eChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih2YWx1ZXMu
cG9wKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9maXgo
bXlmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpbmFs
aXplcl9yYW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZhbHVlcworICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9y
ZXF1ZXN0X2FkZGZpbmFsaXplcl9mYWlsaW5nX3NldHVwX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgdmFsdWVzID0gWzEsIDJdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgbXlmaXgocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIodmFsdWVzLnBvcCkKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQorICAgICAgICAgICAgICAgIGFz
c2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9maXgobXlmaXgpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii1zIikKKyAgICAgICAgbW9kID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9zZXR1
cCIpWzBdLml0ZW0ubW9kdWxlCisgICAgICAgIGFzc2VydCBub3QgbW9kLnZhbHVlcworCisgICAg
ZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfcGFydGlhbF9zZXR1cF9mYWlsdXJlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoTm9u
ZSkpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZywgbWlzc2luZ2FyZyk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3Rfc2Vjb25kKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioxIGVycm9yKiIgICMgWFhYIHRoZSB3aG9sZSBt
b2R1bGUgY29sbGVjdGlvbiBmYWlscworICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfcmVxdWVz
dF9zdWJyZXF1ZXN0X2FkZGZpbmFsaXplcl9leGNlcHRpb25zKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiIKKyAgICAgICAgRW5zdXJlIGV4Y2VwdGlvbnMgcmFpc2VkIGR1cmluZyB0ZWFyZG93
biBieSBhIGZpbmFsaXplciBhcmUgc3VwcHJlc3NlZAorICAgICAgICB1bnRpbCBhbGwgZmluYWxp
emVycyBhcmUgY2FsbGVkLCByZS1yYWlzaW5nIHRoZSBmaXJzdCBleGNlcHRpb24gKCMyNDQwKQor
ICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBf
ZXhjZXB0cyh3aGVyZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFcnJvciBp
biAlcyBmaXh0dXJlJyAlIHdoZXJlKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgc3VicmVxdWVzdChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVxdWVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29t
ZXRoaW5nKHN1YnJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxp
emVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgxKSkKKyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0
LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMikpCisgICAgICAgICAgICAgICAg
c3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBfZXhjZXB0cygnc29tZXRoaW5nJykpCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBleGNlcHRzKHN1YnJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTog
X2V4Y2VwdHMoJ2V4Y2VwdHMnKSkKKyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0LmFkZGZpbmFs
aXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMykpCisgICAgICAgICAgICBkZWYgdGVzdF9maXJz
dChzb21ldGhpbmcsIGV4Y2VwdHMpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGRlZiB0ZXN0X3NlY29uZCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzMs
IDIsIDFdCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJypF
eGNlcHRpb246IEVycm9yIGluIGV4Y2VwdHMgZml4dHVyZScsCisgICAgICAgICAgICAnKiAyIHBh
c3NlZCwgMSBlcnJvciBpbiAqJywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3Rf
Z2V0bW9kdWxlcGF0aChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5n
ZXRtb2R1bGVjb2woImRlZiB0ZXN0X3NvbWVmdW5jKCk6IHBhc3MiKQorICAgICAgICBpdGVtLCA9
IHRlc3RkaXIuZ2VuaXRlbXMoW21vZGNvbF0pCisgICAgICAgIHJlcSA9IGZpeHR1cmVzLkZpeHR1
cmVSZXF1ZXN0KGl0ZW0pCisgICAgICAgIGFzc2VydCByZXEuZnNwYXRoID09IG1vZGNvbC5mc3Bh
dGgKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfZml4dHVyZW5hbWVzKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNfbmFt
ZXMKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnMSgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisg
ICAgICAgICAgICBkZWYgZmFyZyhhcmcxKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNhcmco
dG1wZGlyKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5j
dGlvbihyZXF1ZXN0LCBmYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2V0KGdldF9wdWJs
aWNfbmFtZXMocmVxdWVzdC5maXh0dXJlbmFtZXMpKSA9PSBcCisgICAgICAgICAgICAgICAgICAg
ICAgIHNldChbInRtcGRpciIsICJzYXJnIiwgImFyZzEiLCAicmVxdWVzdCIsICJmYXJnIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidG1wZGlyX2ZhY3RvcnkiXSkKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmduYW1lc19jb21w
YXRhdHRyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRl
X3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuZnVuY2Fy
Z25hbWVzID09IG1ldGFmdW5jLmZpeHR1cmVuYW1lcworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgZm4ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IHJlcXVlc3QuX3B5ZnVuY2l0ZW0uZnVuY2FyZ25hbWVzID09IFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5fcHlmdW5jaXRlbS5maXh0dXJlbmFtZXMKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5mdW5jYXJnbmFtZXMsIHJlcXVlc3QuZml4dHVyZW5hbWVzCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2hlbGxvKGZuKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZm5bMF0g
PT0gZm5bMV0KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0
ZXN0X3NldHVwZGVjb3JhdG9yX2FuZF94dW5pdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxl
JywgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZSgpOgorICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm1vZHVsZSIpCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKCk6Cisg
ICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiZnVuY3Rpb24iKQorCisgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFz
cyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiY2xhc3MiKQorICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAg
ICAgZGVmIHNldHVwX21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgibWV0aG9kIikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Cisg
ICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2FsbCgpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiLCAiZnVuY3Rpb24iLCAiY2xh
c3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24iLCAibWV0aG9kIiwg
ImZ1bmN0aW9uIl0KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKyAg
ICBkZWYgdGVzdF9maXh0dXJlc19zdWJfc3ViZGlyX25vcm1hbGl6ZV9zZXAoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgICMgdGhpcyB0ZXN0cyB0aGF0IG5vcm1hbGl6YXRpb24gb2Ygbm9kZWlkcyB0
YWtlcyBwbGFjZQorICAgICAgICBiID0gdGVzdGRpci5ta2RpcigidGVzdHMiKS5ta2RpcigidW5p
dCIpCisgICAgICAgIGIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNv
dXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikpCisgICAgICAgIHAgPSBiLmpvaW4oInRlc3RfbW9kdWxlLnB5IikKKyAgICAg
ICAgcC53cml0ZSgiZGVmIHRlc3RfZnVuYyhhcmcxKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWZpeHR1cmVzIikKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAg
ICAgICAgICAqZml4dHVyZXMgZGVmaW5lZCpjb25mdGVzdCoKKyAgICAgICAgICAgICphcmcxKgor
ICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2NvbG9yX3llcyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6
IGFzc2VydCAxIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tY29sb3I9
eWVzJywgJy0tZml4dHVyZXMnKQorICAgICAgICBhc3NlcnQgJ1x4MWJbMzJtdG1wZGlyJyBpbiBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9uZXdzdHlsZV93aXRoX3JlcXVlc3Qo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAg
ICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9zZXR1cGNvbnRleHRfbm9fcGFyYW0o
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEs
Ml0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVy
biByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRy
dWUpCisgICAgICAgICAgICBkZWYgbXlzZXR1cChyZXF1ZXN0LCBhcmcpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBub3QgaGFzYXR0cihyZXF1ZXN0LCAicGFyYW0iKQorICAgICAgICAgICAgZGVm
IHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgaW4gKDEsMikKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworCitjbGFzcyBUZXN0UmVxdWVzdE1hcmtp
bmcob2JqZWN0KToKKyAgICBkZWYgdGVzdF9hcHBseW1hcmtlcihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgaXRlbTEsIGl0ZW0yID0gdGVzdGRpci5nZXRpdGVtcygiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBk
ZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMx
KHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jMihzZWxmLCBzb21ldGhpbmcpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVxMSA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1
ZXN0KGl0ZW0xKQorICAgICAgICBhc3NlcnQgJ3hmYWlsJyBub3QgaW4gaXRlbTEua2V5d29yZHMK
KyAgICAgICAgcmVxMS5hcHBseW1hcmtlcihweXRlc3QubWFyay54ZmFpbCkKKyAgICAgICAgYXNz
ZXJ0ICd4ZmFpbCcgaW4gaXRlbTEua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICdza2lwaWYnIG5v
dCBpbiBpdGVtMS5rZXl3b3JkcworICAgICAgICByZXExLmFwcGx5bWFya2VyKHB5dGVzdC5tYXJr
LnNraXBpZikKKyAgICAgICAgYXNzZXJ0ICdza2lwaWYnIGluIGl0ZW0xLmtleXdvcmRzCisgICAg
ICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJlcTEuYXBwbHltYXJrZXIoNDIpIikKKwor
ICAgIGRlZiB0ZXN0X2FjY2Vzc2tleXdvcmRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGtleXdvcmRzKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmtleXdvcmRzCisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsuWFlaCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihrZXl3b3Jkcyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGtleXdvcmRzWyJYWVoiXQorICAgICAgICAgICAgICAgIGFz
c2VydCAiYWJjIiBub3QgaW4ga2V5d29yZHMKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSkKKworICAgIGRlZiB0ZXN0X2FjY2Vzc21hcmtlcl9keW5hbWljKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYga2V5
d29yZHMocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qua2V5d29yZHMK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1
ZSkKKyAgICAgICAgICAgIGRlZiBtYXJraW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
cXVlc3QuYXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsuWFlaKCJoZWxsbyIpKQorICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bjEoa2V5d29yZHMpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBrZXl3b3Jkc1siWFlaIl0gaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgImFiYyIgbm90IGluIGtleXdvcmRzCisgICAgICAgICAgICBkZWYgdGVzdF9mdW4yKGtleXdv
cmRzKToKKyAgICAgICAgICAgICAgICBhc3NlcnQga2V5d29yZHNbIlhZWiJdIGlzIG5vdCBOb25l
CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJhYmMiIG5vdCBpbiBrZXl3b3JkcworICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisKK2NsYXNzIFRlc3RSZXF1ZXN0Q2FjaGVkU2V0
dXAob2JqZWN0KToKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2NhY2hlZHNldHVwX2RlZmF1bHRtb2R1
bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNv
dXJjZSgiIiIKKyAgICAgICAgICAgIG15c2V0dXAgPSBbImhlbGxvIixdLnBvcAorCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5jYWNoZWRfc2V0dXAobXlzZXR1cCwgc2NvcGU9Im1vZHVsZSIpCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMxKHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0
aGluZyA9PSAiaGVsbG8iCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEoc2VsZiwgc29tZXRoaW5nKToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8iCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9yZXF1
ZXN0X2NhY2hlZHNldHVwX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgICAgICBteXNldHVwID0gWyJoZWxs
byIsICJoZWxsbzIiLCAiaGVsbG8zIl0ucG9wCisKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobXlz
ZXR1cCwgc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHNvbWV0aGlu
Zyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8zIgorICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYzIoc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
c29tZXRoaW5nID09ICJoZWxsbzIiCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0
KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEoc2VsZiwgc29tZXRoaW5nKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8iCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYzJiKHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBzb21ldGhpbmcgPT0gImhlbGxvIgorICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNo
ZWRzZXR1cF9leHRyYWtleShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbTEgPSB0ZXN0ZGly
LmdldGl0ZW0oImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIHJlcTEgPSBmaXh0dXJl
cy5GaXh0dXJlUmVxdWVzdChpdGVtMSkKKyAgICAgICAgdmFsdWVzID0gWyJoZWxsbyIsICJ3b3Js
ZCJdCisKKyAgICAgICAgZGVmIHNldHVwKCk6CisgICAgICAgICAgICByZXR1cm4gdmFsdWVzLnBv
cCgpCisKKyAgICAgICAgcmV0MSA9IHJlcTEuY2FjaGVkX3NldHVwKHNldHVwLCBleHRyYWtleT0x
KQorICAgICAgICByZXQyID0gcmVxMS5jYWNoZWRfc2V0dXAoc2V0dXAsIGV4dHJha2V5PTIpCisg
ICAgICAgIGFzc2VydCByZXQyID09ICJoZWxsbyIKKyAgICAgICAgYXNzZXJ0IHJldDEgPT0gIndv
cmxkIgorICAgICAgICByZXQxYiA9IHJlcTEuY2FjaGVkX3NldHVwKHNldHVwLCBleHRyYWtleT0x
KQorICAgICAgICByZXQyYiA9IHJlcTEuY2FjaGVkX3NldHVwKHNldHVwLCBleHRyYWtleT0yKQor
ICAgICAgICBhc3NlcnQgcmV0MSA9PSByZXQxYgorICAgICAgICBhc3NlcnQgcmV0MiA9PSByZXQy
YgorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9jYWNoZV9kZWxldGlvbihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbTEgPSB0ZXN0ZGlyLmdldGl0ZW0oImRlZiB0ZXN0X2Z1
bmMoKTogcGFzcyIpCisgICAgICAgIHJlcTEgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVt
MSkKKyAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICBkZWYgc2V0dXAoKToKKyAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoInNldHVwIikKKworICAgICAgICBkZWYgdGVhcmRvd24odmFsKToK
KyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInRlYXJkb3duIikKKworICAgICAgICByZXExLmNh
Y2hlZF9zZXR1cChzZXR1cCwgdGVhcmRvd24sIHNjb3BlPSJmdW5jdGlvbiIpCisgICAgICAgIGFz
c2VydCB2YWx1ZXMgPT0gWydzZXR1cCddCisgICAgICAgICMgYXJ0aWZpY2lhbCBjYWxsIG9mIGZp
bmFsaXplcgorICAgICAgICBzZXR1cHN0YXRlID0gcmVxMS5fcHlmdW5jaXRlbS5zZXNzaW9uLl9z
ZXR1cHN0YXRlCisgICAgICAgIHNldHVwc3RhdGUuX2NhbGxmaW5hbGl6ZXJzKGl0ZW0xKQorICAg
ICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAiLCAidGVhcmRvd24iXQorICAgICAgICByZXEx
LmNhY2hlZF9zZXR1cChzZXR1cCwgdGVhcmRvd24sIHNjb3BlPSJmdW5jdGlvbiIpCisgICAgICAg
IGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1cCIsICJ0ZWFyZG93biIsICJzZXR1cCJdCisgICAgICAg
IHNldHVwc3RhdGUuX2NhbGxmaW5hbGl6ZXJzKGl0ZW0xKQorICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsic2V0dXAiLCAidGVhcmRvd24iLCAic2V0dXAiLCAidGVhcmRvd24iXQorCisgICAgZGVm
IHRlc3RfcmVxdWVzdF9jYWNoZWRfc2V0dXBfdHdvX2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobGFtYmRhOiA0
MikKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzIocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJk
YTogMTcpCisgICAgICAgICAgICBkZWYgdGVzdF90d29fZGlmZmVyZW50X3NldHVwcyhhcmcxLCBh
cmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSAhPSBhcmcyCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBwYXNzZWQqIgorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRfc2V0dXBfZ2V0Zml4dHVyZXZhbHVl
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgYXJnMSA9IHJlcXVlc3Qu
Z2V0Zml4dHVyZXZhbHVlKCJhcmcyIikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5j
YWNoZWRfc2V0dXAobGFtYmRhOiBhcmcxICsgMSkKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJkYTogMTApCisgICAgICAgICAgICBkZWYgdGVzdF90
d29fZnVuY2FyZyhhcmcxKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxMQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2Vk
KiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkX3NldHVwX2Z1bmN0
aW9uYWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0XzA9
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHZhbCA9IHJlcXVlc3QuY2FjaGVkX3NldHVwKGZzZXR1
cCwgZnRlYXJkb3duKQorICAgICAgICAgICAgICAgIHJldHVybiB2YWwKKyAgICAgICAgICAgIGRl
ZiBmc2V0dXAobXljYWNoZT1bMV0pOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQobXlj
YWNoZS5wb3AoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzCisgICAgICAgICAgICBk
ZWYgZnRlYXJkb3duKHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLnJlbW92ZShz
b21ldGhpbmdbMF0pCisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQorICAgICAgICAg
ICAgZGVmIHRlc3RfbGlzdF9vbmNlKHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IHNvbWV0aGluZyA9PSBbMV0KKyAgICAgICAgICAgIGRlZiB0ZXN0X2xpc3RfdHdpY2Uoc29tZXRo
aW5nKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09IFsxXQorICAgICAgICAi
IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0XzE9IiIiCisgICAgICAgICAgICBp
bXBvcnQgdGVzdF8wICMgc2hvdWxkIGhhdmUgcnVuIGFscmVhZHkKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2NoZWNrX3Rlc3QwX2hhc190ZWFyZG93bl9jb3JyZWN0KCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IHRlc3RfMC52YWx1ZXMgPT0gWzJdCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICIqMyBwYXNzZWQqIgorICAgICAgICBdKQorCisgICAgZGVm
IHRlc3RfaXNzdWUxMTdfc2Vzc2lvbnNjb3BldGVhcmRvd24oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXBwKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIGFwcCA9IHJlcXVlc3QuY2FjaGVkX3NldHVwKAorICAgICAgICAg
ICAgICAgICAgICBzY29wZT0nc2Vzc2lvbicsCisgICAgICAgICAgICAgICAgICAgIHNldHVwPWxh
bWJkYTogMCwKKyAgICAgICAgICAgICAgICAgICAgdGVhcmRvd249bGFtYmRhIHg6IDMveCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gYXBwCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFwcCk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiozL3gqIiwKKyAg
ICAgICAgICAgICIqWmVyb0RpdmlzaW9uRXJyb3IqIiwKKyAgICAgICAgXSkKKworCitjbGFzcyBU
ZXN0Rml4dHVyZVVzYWdlcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X25vYXJnZml4dHVyZWRlYyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoYXJnMSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gMQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZXNf
ZnVuY2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgp
CisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnMihhcmcxKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKKworICAgICAgICAgICAgZGVmIHRlc3Rf
YWRkKGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2FsbChhcmcxLCBhcmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9
PSAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgorICAgICAgICAiIiIpCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVf
bWlzbWF0Y2goc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIp
CisgICAgICAgICAgICBkZWYgYXJnMihhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJn
MSArIDEKKworICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzIpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBhcmcyID09IDIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKlNjb3BlTWlzbWF0Y2gqaW52b2x2ZWQgZmFjdG9yaWVzKiIsCisgICAgICAgICAg
ICAiKiBkZWYgYXJnMioiLAorICAgICAgICAgICAgIiogZGVmIGFyZzEqIiwKKyAgICAgICAgICAg
ICIqMSBlcnJvcioiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlc19mdW5jYXJn
c19zY29wZV9taXNtYXRjaF9pc3N1ZTY2MChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCisgICAgICAgICAgICBkZWYgYXJnMSgp
OgorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcyKGFyZzEpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBhcmcxICsgMQorCisgICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMSwg
YXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgorICAgICAgICAiIiIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqU2NvcGVNaXNtYXRjaCppbnZvbHZlZCBm
YWN0b3JpZXMqIiwKKyAgICAgICAgICAgICIqIGRlZiBhcmcyKiIsCisgICAgICAgICAgICAiKjEg
ZXJyb3IqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9zY29wZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbnMi
KQorICAgICAgICAgICAgZGVmIGJhZHNjb3BlKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgICAgICBkZWYgdGVzdF9ub3RoaW5nKGJhZHNjb3BlKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5w
cm9jZXNzKCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgKCIqVmFsdWVFcnJvcjogZml4dHVyZSBiYWRzY29wZSBmcm9tIHRlc3RfaW52YWxpZF9zY29w
ZS5weSBoYXMgYW4gdW5zdXBwb3J0ZWQiCisgICAgICAgICAgICAgIiBzY29wZSB2YWx1ZSAnZnVu
Y3Rpb25zJyIpCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfcGFyYW1ldHJpemVk
X2FuZF91c2VkX3R3aWNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBb
XQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAg
IGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZzIoYXJnMSk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIGFyZzEgKyAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2FkZChhcmcxLCBhcmcyKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMiA9PSBhcmcxICsgMQorICAgICAgICAgICAgICAg
IGFzc2VydCBsZW4odmFsdWVzKSA9PSBhcmcxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIioyIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVz
dF9mYWN0b3J5X3VzZXNfdW5rbm93bl9mdW5jYXJnX2FzX2RlcGVuZGVuY3lfZXJyb3Ioc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAg
IGRlZiBmYWlsKG1pc3NpbmcpOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGNhbGxfZmFpbChmYWlsKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAgICAgZGVmIHRlc3RfbWlzc2luZyhjYWxs
X2ZhaWwpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqcHl0ZXN0LmZpeHR1cmUoKSoKKyAgICAgICAgICAg
ICpkZWYgY2FsbF9mYWlsKGZhaWwpKgorICAgICAgICAgICAgKnB5dGVzdC5maXh0dXJlKCkqCisg
ICAgICAgICAgICAqZGVmIGZhaWwqCisgICAgICAgICAgICAqZml4dHVyZSonbWlzc2luZycqbm90
IGZvdW5kKgorICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9mYWN0b3J5X3NldHVwX2FzX2Ns
YXNzZXNfZmFpbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIGFyZzEob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgICAgIHNlbGYueCA9IDEKKyAgICAgICAgICAgIGFyZzEgPSBweXRlc3QuZml4
dHVyZSgpKGFyZzEpCisKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oKQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMo
KQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorCisgICAgZGVmIHRlc3RfcmVxdWVz
dF9jYW5fYmVfb3ZlcnJpZGRlbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiByZXF1ZXN0KHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYSA9IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdAorICAg
ICAgICAgICAgZGVmIHRlc3RfcmVxdWVzdChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgcmVxdWVzdC5hID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
ICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX21hcmtlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKDEpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNl
bGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVl
cykgPT0gMQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAgICAgcHl0ZXN0Lm1hcmsudXNlZml4
dHVyZXMoIm15Zml4IikoVGVzdENsYXNzKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0yKQorCisgICAgZGVmIHRlc3RfdXNlZml4dHVyZXNfaW5pKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAg
ICAgdXNlZml4dHVyZXMgPSBteWZpeAorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKKworICAg
ICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNs
YXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0yKQorCisgICAgZGVmIHRlc3RfdXNlZml4dHVyZXNfc2Vlbl9pbl9zaG93bWFya2VycyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbWFya2Vy
cyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAg
ICp1c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEqbWFyayB0ZXN0cypmaXh0dXJlcyoKKyAgICAgICAg
IiIiKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9pbnN0YW5jZV9pc3N1ZTIwMyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNlbGYs
IHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZiA9PSByZXF1ZXN0Lmlu
c3RhbmNlCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnMSA9IDEKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBzZXR1cDEpOgorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgc2VsZi5hcmcxID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
ICAgIGRlZiB0ZXN0X2ZpeHR1cmVfcGFyYW1ldHJpemVkX3dpdGhfaXRlcmF0b3Ioc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICAgICAgeWllbGQgMQorICAgICAgICAgICAgICAgIHlpZWxkIDIKKyAgICAg
ICAgICAgIGRlYyA9IHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9ZigpKQor
CisgICAgICAgICAgICBAZGVjCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICBAZGVjCisgICAgICAg
ICAgICBkZWYgYXJnMihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFs
dWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZzIpOgorICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnMioxMCkKKyAgICAgICAgIiIiKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTQpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1
bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcworICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsxLCAyLCAxMCwgMjBdCisKKworY2xhc3MgVGVzdEZpeHR1cmVNYW5hZ2VyUGFyc2VGYWN0
b3JpZXMob2JqZWN0KToKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiB0ZXN0ZGlyKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICB0ZXN0ZGlyID0gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUo
InRlc3RkaXIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICBkZWYgaGVsbG8ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJjb25mdGVzdCIK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZm0ocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGl0ZW0ocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX3B5ZnVuY2l0ZW0KKyAgICAgICAgIiIi
KQorICAgICAgICByZXR1cm4gdGVzdGRpcgorCisgICAgZGVmIHRlc3RfcGFyc2VmYWN0b3JpZXNf
ZXZpbF9vYmplY3RzX2lzc3VlMjE0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBSdW50aW1lRXJyb3IoKQorICAgICAgICAgICAgYSA9IEEoKQorICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEsIGZhaWxlZD0wKQorCisgICAgZGVmIHRlc3RfcGFyc2VmYWN0b3Jp
ZXNfY29uZnRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGl0ZW0sIGZtKToKKyAgICAgICAgICAgICAg
ICBmb3IgbmFtZSBpbiAoImZtIiwgImhlbGxvIiwgIml0ZW0iKToKKyAgICAgICAgICAgICAgICAg
ICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKG5hbWUsIGl0ZW0ubm9kZWlkKQorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgbGVuKGZhY2xpc3QpID09IDEKKyAgICAgICAgICAgICAgICAg
ICAgZmFjID0gZmFjbGlzdFswXQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjLmZ1bmMu
X19uYW1lX18gPT0gbmFtZQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkK
KworICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0X2FuZF9tb2R1bGVfYW5kX2Ns
YXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGhlbGxvKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiAibW9k
dWxlIgorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGhlbGxvKHNlbGYsIHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gImNsYXNzIgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKHNlbGYsIGl0ZW0sIGZtKToKKyAgICAgICAgICAgICAgICAgICAgZmFj
bGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKCJoZWxsbyIsIGl0ZW0ubm9kZWlkKQorICAgICAgICAg
ICAgICAgICAgICBwcmludCAoZmFjbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxl
bihmYWNsaXN0KSA9PSAzCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWNsaXN0WzBdLmZ1
bmMoaXRlbS5fcmVxdWVzdCkgPT0gImNvbmZ0ZXN0IgorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgZmFjbGlzdFsxXS5mdW5jKGl0ZW0uX3JlcXVlc3QpID09ICJtb2R1bGUiCisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBmYWNsaXN0WzJdLmZ1bmMoaXRlbS5fcmVxdWVzdCkgPT0gImNsYXNz
IgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMi
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0
X3BhcnNlZmFjdG9yaWVzX3JlbGF0aXZlX25vZGVfaWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICAjIGV4YW1wbGUgbW9zdGx5IHRha2VuIGZyb206CisgICAgICAgICMgaHR0cHM6Ly9tYWlsLnB5
dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGVzdC1kZXYvMjAxNC1TZXB0ZW1iZXIvMDAyNjE3Lmh0bWwK
KyAgICAgICAgcnVubmVyID0gdGVzdGRpci5ta2RpcigicnVubmVyIikKKyAgICAgICAgcGFja2Fn
ZSA9IHRlc3RkaXIubWtkaXIoInBhY2thZ2UiKQorICAgICAgICBwYWNrYWdlLmpvaW4oImNvbmZ0
ZXN0LnB5Iikud3JpdGUoZGVkZW50KCIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG9uZSgpOgorICAgICAg
ICAgICAgICAgIHJldHVybiAxCisgICAgICAgICIiIikpCisgICAgICAgIHBhY2thZ2Uuam9pbigi
dGVzdF94LnB5Iikud3JpdGUoZGVkZW50KCIiIlwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3gob25l
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgb25lID09IDEKKyAgICAgICAgIiIiKSkKKyAgICAg
ICAgc3ViID0gcGFja2FnZS5ta2Rpcigic3ViIikKKyAgICAgICAgc3ViLmpvaW4oIl9faW5pdF9f
LnB5IikuZW5zdXJlKCkKKyAgICAgICAgc3ViLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoZGVk
ZW50KCIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIG9uZSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAy
CisgICAgICAgICIiIikpCisgICAgICAgIHN1Yi5qb2luKCJ0ZXN0X3kucHkiKS53cml0ZShkZWRl
bnQoIiIiXAorICAgICAgICAgICAgZGVmIHRlc3RfeChvbmUpOgorICAgICAgICAgICAgICAgIGFz
c2VydCBvbmUgPT0gMgorICAgICAgICAiIiIpKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKyAgICAg
ICAgd2l0aCBydW5uZXIuYXNfY3dkKCk6CisgICAgICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oIi4uIikKKyAgICAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0y
KQorCisKK2NsYXNzIFRlc3RBdXRvdXNlRGlzY292ZXJ5KG9iamVjdCk6CisKKyAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICBkZWYgdGVzdGRpcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1bmN0
aW9uKHJlcXVlc3QsIHRtcGRpcik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZzEodG1wZGlyKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl
KQorICAgICAgICAgICAgZGVmIHBlcmZ1bmN0aW9uMihhcmcxKToKKyAgICAgICAgICAgICAgICBw
YXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZtKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ll9maXh0dXJlbWFuYWdlcgor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBpdGVtKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ll9weWZ1bmNpdGVtCisgICAgICAg
ICIiIikKKyAgICAgICAgcmV0dXJuIHRlc3RkaXIKKworICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9y
aWVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNf
bmFtZXMKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrX3NldHVwKGl0ZW0sIGZtKToKKyAgICAg
ICAgICAgICAgICBhdXRvdXNlbmFtZXMgPSBmbS5fZ2V0YXV0b3VzZW5hbWVzKGl0ZW0ubm9kZWlk
KQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oZ2V0X3B1YmxpY19uYW1lcyhhdXRvdXNlbmFt
ZXMpKSA9PSAyCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJwZXJmdW5jdGlvbjIiIGluIGF1dG91
c2VuYW1lcworICAgICAgICAgICAgICAgIGFzc2VydCAicGVyZnVuY3Rpb24iIGluIGF1dG91c2Vu
YW1lcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigi
LXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0
ZXN0X3R3b19jbGFzc2VzX3NlcGFyYXRlZF9hdXRvdXNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBUZXN0QShvYmplY3QpOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICBkZWYgc2V0dXAxKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnZhbHVl
cy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9zZXR1cDEoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLnZhbHVlcyA9PSBbMV0KKyAgICAgICAgICAgIGNs
YXNzIFRlc3RCKG9iamVjdCk6CisgICAgICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRl
ZiBzZXR1cDIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYudmFsdWVzLmFwcGVuZCgx
KQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVwMihzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHNlbGYudmFsdWVzID09IFsxXQorICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3Rfc2V0dXBfYXRfY2xhc3NsZXZlbChzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYg
cGVybWV0aG9kKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lmlu
c3RhbmNlLmZ1bmNuYW1lID0gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBz
ZWxmLmZ1bmNuYW1lID09ICJ0ZXN0X21ldGhvZDEiCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
bWV0aG9kMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuZnVuY25hbWUg
PT0gInRlc3RfbWV0aG9kMiIKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIp
CisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSInZW5hYmxlZCcgZmVhdHVyZSBub3Qg
aW1wbGVtZW50ZWQiKQorICAgIGRlZiB0ZXN0X3NldHVwX2VuYWJsZWRfZnVuY3Rpb25ub2RlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiBlbmFibGVkKHBhcmVudG5vZGUsIG1h
cmtlcnMpOgorICAgICAgICAgICAgICAgIHJldHVybiAibmVlZHNkYiIgaW4gbWFya2VycworCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVm
IGRiKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShlbmFibGVkPWVuYWJsZWQsIGF1dG91c2U9VHJ1ZSkK
KyAgICAgICAgICAgIGRlZiBjcmVhdGVkYihkYik6CisgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgImRiIiBub3QgaW4gcmVxdWVzdC5maXh0dXJlbmFtZXMKKworICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLm5lZWRzZGIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCAiZGIiIGluIHJlcXVlc3QuZml4dHVyZW5hbWVzCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfY2FsbGFibGVz
X25vY29kZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIGEgaW1wb3J0ZWQg
bW9jay5jYWxsIHdvdWxkIGJyZWFrIHNldHVwL2ZhY3RvcnkgZGlzY292ZXJ5CisgICAgICAgIGR1
ZSB0byBpdCBiZWluZyBjYWxsYWJsZSBhbmQgX19jb2RlX18gbm90IGJlaW5nIGEgY29kZSBvYmpl
Y3QKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgY2xhc3MgX2NhbGwodHVwbGUpOgorICAgICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYs
ICprLCAqKmt3KToKKyAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICBkZWYg
X19nZXRhdHRyX18oc2VsZiwgayk6CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKwor
ICAgICAgICAgICBjYWxsID0gX2NhbGwoKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShm
YWlsZWQ9MCwgcGFzc2VkPTApCisKKyAgICBkZWYgdGVzdF9hdXRvdXNlX2luX2NvbmZ0ZXN0cyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgYSA9IHRlc3RkaXIubWtkaXIoImEiKQorICAgICAgICBi
ID0gdGVzdGRpci5ta2RpcigiYTEiKQorICAgICAgICBjb25mdGVzdCA9IHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBoZWxsbygpOgorICAgICAg
ICAgICAgICAgIHh4eAorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZ0ZXN0Lm1vdmUoYS5qb2lu
KGNvbmZ0ZXN0LmJhc2VuYW1lKSkKKyAgICAgICAgYS5qb2luKCJ0ZXN0X3NvbWV0aGluZy5weSIp
LndyaXRlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICBiLmpvaW4oInRlc3Rfb3Ro
ZXJ0aGluZy5weSIpLndyaXRlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygiIiIKKyAgICAgICAgICAgICoxIHBhc3NlZCoxIGVycm9yKgorICAgICAgICAiIiIpCisK
KyAgICBkZWYgdGVzdF9hdXRvdXNlX2luX21vZHVsZV9hbmRfdHdvX2NsYXNzZXMoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGFwcGVuZDEoKToKKyAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKCJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIHRlc3RfeCgp
OgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiXQorCisgICAgICAg
ICAgICBjbGFzcyBUZXN0QShvYmplY3QpOgorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVmIGFwcGVuZDIoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIkEiKQorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsi
bW9kdWxlIiwgIm1vZHVsZSIsICJBIl0sIHZhbHVlcworICAgICAgICAgICAgY2xhc3MgVGVzdEEy
KG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfd29ybGQoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiLCAibW9kdWxlIiwgIkEiLCAi
bW9kdWxlIl0sIHZhbHVlcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisK
K2NsYXNzIFRlc3RBdXRvdXNlTWFuYWdlbWVudChvYmplY3QpOgorICAgIGRlZiB0ZXN0X2F1dG91
c2VfY29uZnRlc3RfbWlkX2RpcmVjdG9yeShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcGtnZGly
ID0gdGVzdGRpci5ta3B5ZGlyKCJ4eXoxMjMiKQorICAgICAgICBwa2dkaXIuam9pbigiY29uZnRl
c3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAg
ICAgICAgICBkZWYgYXBwKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAg
ICAgICAgIHN5cy5fbXlhcHAgPSAiaGVsbG8iCisgICAgICAgICIiIikpCisgICAgICAgIHQgPSBw
a2dkaXIuZW5zdXJlKCJ0ZXN0cyIsICJ0ZXN0X2FwcC5weSIpCisgICAgICAgIHQud3JpdGUoX3B5
dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAg
ICBkZWYgdGVzdF9hcHAoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc3lzLl9teWFwcCA9PSAi
aGVsbG8iCisgICAgICAgICIiIikpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRl
ZiB0ZXN0X2F1dG91c2VfaG9ub3JlZF9mb3JfeWllbGQoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgdHN0
KCk6CisgICAgICAgICAgICAgICAgZ2xvYmFsIHgKKyAgICAgICAgICAgICAgICB4ID0gMworICAg
ICAgICAgICAgZGVmIHRlc3RfZ2VuKCk6CisgICAgICAgICAgICAgICAgZGVmIGYoaGVsbG8pOgor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgeCA9PSBhYnMoaGVsbG8pCisgICAgICAgICAgICAg
ICAgeWllbGQgZiwgMworICAgICAgICAgICAgICAgIHlpZWxkIGYsIC0zCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2FuZF9zZXR1cChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcoKToKKyAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIDAK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVl
KQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoMikKKworICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oYXJnKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgorICAgICAgICAgICAgICAgIGFzc2VydCB2
YWx1ZXMgPT0gWzEsMl0KKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDAKKworICAgICAg
ICAgICAgZGVmIHRlc3RfaGVsbG8yKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2
YWx1ZXMpID09IDIKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTIpCisKKyAgICBkZWYgdGVzdF91c2VzX3BhcmFtZXRyaXplZF9yZXNvdXJjZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShwYXJhbXM9WzEsMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKGFyZyk6Cisg
ICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgaWYgbGVuKHZhbHVlcykgPT0gMToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KKyAgICAgICAgICAgICAgICBlbGlmIGxl
bih2YWx1ZXMpID09IDI6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEs
IDJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgMC8wCisKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9zZXNz
aW9uX3BhcmFtZXRyaXplZF9mdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICB2YWx1ZXMgPSBbXQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Np
b24iLCBwYXJhbXM9WzEsMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBhcHBl
bmQocmVxdWVzdCwgYXJnKToKKyAgICAgICAgICAgICAgICBpZiByZXF1ZXN0LmZ1bmN0aW9uLl9f
bmFtZV9fID09ICJ0ZXN0X3NvbWUiOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KGFyZykKKworICAgICAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgZGVmIHRlc3RfcmVzdWx0KGFyZyk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGxlbih2YWx1ZXMpID09IGFyZworICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXNb
OmFyZ10gPT0gWzEsMl1bOmFyZ10KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oIi12IiwgIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTQpCisKKyAgICBkZWYgdGVzdF9jbGFzc19mdW5jdGlvbl9wYXJhbWV0cml6YXRpb25f
ZmluYWxpemF0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQg
cHByaW50CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsMl0pCisgICAgICAgICAgICBkZWYg
ZmFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgcGFyYW1zPWxpc3QoImFi
IikpCisgICAgICAgICAgICBkZWYgY2FyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1
bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGFwcGVuZChyZXF1ZXN0LCBm
YXJnLCBjYXJnKToKKyAgICAgICAgICAgICAgICBkZWYgZmluKCk6CisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoImZpbl8lcyVzIiAlIChjYXJnLCBmYXJnKSkKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCisgICAgICAgICIiIikKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8x
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBUZXN0
Q2xhc3MyKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGNvbmZjdXQgPSAiLS1j
b25mY3V0ZGlyPXswfSIuZm9ybWF0KHRlc3RkaXIudG1wZGlyKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi12IiwgIi1zIiwgY29uZmN1dCkKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTgpCisgICAgICAgIGNvbmZpZyA9IHJlcHJlYy5nZXRjYWxscygi
cHl0ZXN0X3VuY29uZmlndXJlIilbMF0uY29uZmlnCisgICAgICAgIHZhbHVlcyA9IGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLl9nZXRjb25mdGVzdG1vZHVsZXMocClbMF0udmFsdWVzCisgICAgICAgIGFz
c2VydCB2YWx1ZXMgPT0gWyJmaW5fYTEiLCAiZmluX2EyIiwgImZpbl9iMSIsICJmaW5fYjIiXSAq
IDIKKworICAgIGRlZiB0ZXN0X3Njb3BlX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmYXBwZW5kMigpOgorICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMikKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgY2xhc3NhcHBl
bmQzKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgzKQorICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBk
ZWYgbWFwcGVuZCgpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKworICAgICAg
ICAgICAgY2xhc3MgVGVzdEhhbGxvKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
bWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDMs
Ml0KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3Bh
cmFtZXRyaXphdGlvbl9zZXR1cF90ZWFyZG93bl9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVf
dGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIGlmIG1ldGFmdW5jLmNscyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIml0ZW0iLCBb
MSwyXSwgc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3Qp
OgorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNl
PVRydWUpCisgICAgICAgICAgICAgICAgZGVmIGFkZHRlYXJkb3duKHNlbGYsIGl0ZW0sIHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzZXR1cC0lZCIgJSBpdGVt
KQorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVl
cy5hcHBlbmQoInRlYXJkb3duLSVkIiAlIGl0ZW0pKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X3N0ZXAxKHNlbGYsIGl0ZW0pOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJz
dGVwMS0lZCIgJSBpdGVtKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3N0ZXAyKHNlbGYsIGl0
ZW0pOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzdGVwMi0lZCIgJSBpdGVt
KQorCisgICAgICAgICAgICBkZWYgdGVzdF9maW5pc2goKToKKyAgICAgICAgICAgICAgICBwcmlu
dCAodmFsdWVzKQorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1cC0xIiwg
InN0ZXAxLTEiLCAic3RlcDItMSIsICJ0ZWFyZG93bi0xIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInNldHVwLTIiLCAic3RlcDEtMiIsICJzdGVwMi0yIiwgInRlYXJkb3duLTIiLF0K
KyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NSkKKworICAgIGRlZiB0ZXN0X29yZGVy
aW5nX2F1dG91c2VfYmVmb3JlX2V4cGxpY2l0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
ICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl
KQorICAgICAgICAgICAgZGVmIGZpeDEoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KDEpCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZzEo
KToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhhcmcxKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNz
dWUyMjYKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhcmFtMSIsIFsiIiwgInBhcmFt
cz1bMV0iXSwgaWRzPVsicDAwIiwgInAwMSJdKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgicGFyYW0yIiwgWyIiLCAicGFyYW1zPVsxXSJdLCBpZHM9WyJwMTAiLCAicDExIl0pCisgICAg
ZGVmIHRlc3Rfb3JkZXJpbmdfZGVwZW5kZW5jaWVzX3Rvcm5kb3duX2ZpcnN0KHNlbGYsIHRlc3Rk
aXIsIHBhcmFtMSwgcGFyYW0yKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZSglKHBhcmFtMSlzKQorICAgICAgICAgICAgZGVmIGFyZzEocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1
ZXMuYXBwZW5kKCJmaW4xIikpCisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgibmV3MSIp
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoJShwYXJhbTIpcykKKyAgICAgICAgICAgIGRl
ZiBhcmcyKHJlcXVlc3QsIGFyZzEpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp
emVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluMiIpKQorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoIm5ldzIiKQorCisgICAgICAgICAgICBkZWYgdGVzdF9hcmcoYXJnMik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfY2hlY2soKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibmV3MSIsICJuZXcyIiwgImZpbjIiLCAiZmluMSJd
CisgICAgICAgICIiIiAlIGxvY2FscygpKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKwor
Y2xhc3MgVGVzdEZpeHR1cmVNYXJrZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1b
ImEiLCAiYiIsICJjIl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAgICAgZGVmIHRlc3RfcGFyYW0oYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKGFyZykKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Jlc3VsdCgpOgorICAgICAgICAgICAgICAg
IGFzc2VydCB2YWx1ZXMgPT0gbGlzdCgiYWJjIikKKyAgICAgICAgIiIiKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9NCkKKworICAgIGRlZiB0ZXN0X211bHRpcGxlX3BhcmFtZXRyaXphdGlvbl9pc3N1ZV83
MzYoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFt
cz1bMSwyLDNdKQorICAgICAgICAgICAgZGVmIGZvbyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ2Zvb2JhcicsIFs0LDUsNl0pCisgICAgICAgICAgICBkZWYgdGVzdF9pc3N1ZShmb28s
IGZvb2Jhcik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZvbyBpbiBbMSwyLDNdCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGZvb2JhciBpbiBbNCw1LDZdCisgICAgICAgICIiIikKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3BhcmFtX2FyZ3Mn
LCBbIidmaXh0LCB2YWwnIiwgIidmaXh0LHZhbCciLCAiWydmaXh0JywgJ3ZhbCddIiwgIignZml4
dCcsICd2YWwnKSJdKQorICAgIGRlZiB0ZXN0X292ZXJyaWRlX3BhcmFtZXRyaXplZF9maXh0dXJl
X2lzc3VlXzk3OShzZWxmLCB0ZXN0ZGlyLCBwYXJhbV9hcmdzKToKKyAgICAgICAgIiIiTWFrZSBz
dXJlIGEgcGFyYW1ldHJpemVkIGFyZ3VtZW50IGNhbiBvdmVycmlkZSBhIHBhcmFtZXRyaXplZCBm
aXh0dXJlLgorCisgICAgICAgIFRoaXMgd2FzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGluIHRo
ZSBmaXggZm9yICM3MzYuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEsIDJdKQorICAgICAgICAgICAgZGVmIGZpeHQocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCVzLCBbKDMsICd4JyksICg0LCAneCcpXSkKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZvbyhmaXh0LCB2YWwpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIi
ICUgcGFyYW1fYXJncykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9zY29w
ZV9zZXNzaW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVm
IGFyZygpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IGFyZyA9PSAxCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1
ZXMpID09IDEKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0MyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
YXJnID09IDEKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X3Njb3BlX3Nl
c3Npb25fZXhjKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgIGRl
ZiBmaXgoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAg
ICAgcHl0ZXN0LnNraXAoJ3NraXBwaW5nJykKKworICAgICAgICAgICAgZGVmIHRlc3RfMShmaXgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoZml4KToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9sYXN0KCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KKyAgICAgICAgIiIiKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShz
a2lwcGVkPTIsIHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2NvcGVfc2Vzc2lvbl9leGNfdHdv
X2ZpeChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
ICAgIG0gPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikK
KyAgICAgICAgICAgIGRlZiBhKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQor
ICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCdza2lwcGluZycpCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgICAgICAgICAgZGVmIGIoYSk6CisgICAg
ICAgICAgICAgICAgbS5hcHBlbmQoMSkKKworICAgICAgICAgICAgZGVmIHRlc3RfMShiKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF8yKGIpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xhc3QoKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsxXQorICAgICAgICAgICAgICAgIGFzc2VydCBtID09IFtdCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUoc2tpcHBlZD0yLCBwYXNzZWQ9MSkKKworICAgIGRlZiB0
ZXN0X3Njb3BlX2V4YyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgdGVzdF9mb289IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9v
KGZpeCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAg
ICAgICAgIHRlc3RfYmFyPSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2JhcihmaXgpOgor
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICBj
b25mdGVzdD0iIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAg
ICAgcmVxcyA9IFtdCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNz
aW9uIikKKyAgICAgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
ICAgICByZXFzLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgpCisg
ICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIHJlcV9s
aXN0KCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXFzCisgICAgICAgICAgICAiIiIs
CisgICAgICAgICAgICB0ZXN0X3JlYWw9IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbGFz
dChyZXFfbGlzdCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCByZXFfbGlzdCA9PSBbMV0K
KyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MiwgcGFzc2Vk
PTEpCisKKyAgICBkZWYgdGVzdF9zY29wZV9tb2R1bGVfdXNlc19zZXNzaW9uKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZygpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAg
ICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisg
ICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9
PSAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgICAg
IGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0MyhzZWxm
LCBhcmcpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X3Njb3BlX21vZHVsZV9hbmRfZmluYWxpemVyKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGZpbmFsaXplZF9saXN0ID0gW10KKyAgICAg
ICAgICAgIGNyZWF0ZWRfbGlzdCA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIGNyZWF0ZWRfbGlzdC5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVz
dC5zY29wZSA9PSAibW9kdWxlIgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy
KGxhbWJkYTogZmluYWxpemVkX2xpc3QuYXBwZW5kKDEpKQorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgY3JlYXRlZChyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbGVuKGNyZWF0ZWRfbGlzdCkKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIGZpbmFsaXplZChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gbGVuKGZpbmFsaXplZF9saXN0KQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RfbW9kMT0iIiIKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF8xKGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IGNyZWF0ZWQgPT0gMQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmluYWxpemVkID09
IDAKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMQorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgZmluYWxpemVkID09IDAiIiIsCisgICAgICAgICAgICB0ZXN0X21vZDI9IiIi
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMyhhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDIKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAxIiIiLAorICAgICAgICAgICAgdGVzdF9tb2RlMz0iIiIK
KyAgICAgICAgICAgICAgICBkZWYgdGVzdF80KGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgZmluYWxpemVkID09IDIKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTQpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1ldGhvZCIsIFsKKyAgICAg
ICAgJ3JlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJhcmciKScsCisgICAgICAgICdyZXF1ZXN0LmNh
Y2hlZF9zZXR1cChsYW1iZGE6IE5vbmUsIHNjb3BlPSJmdW5jdGlvbiIpJywKKyAgICBdLCBpZHM9
WyJnZXRmaXh0dXJldmFsdWUiLCAiY2FjaGVkX3NldHVwIl0pCisgICAgZGVmIHRlc3Rfc2NvcGVf
bWlzbWF0Y2hfdmFyaW91cyhzZWxmLCB0ZXN0ZGlyLCBtZXRob2QpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IGZpbmFsaXplZCA9IFtdCisgICAgICAgICAgICBjcmVhdGVkID0gW10KKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9tb2QxPSIiIgorICAgICAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNl
c3Npb24iKQorICAgICAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAg
ICAgICAgICVzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIgJSBtZXRob2QpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipTY29wZU1p
c21hdGNoKllvdSB0cmllZCpmdW5jdGlvbipzZXNzaW9uKnJlcXVlc3QqIiwKKyAgICAgICAgXSkK
KworICAgIGRlZiB0ZXN0X3JlZ2lzdGVyX29ubHlfd2l0aF9tYXJrKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnKCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X21vZDE9IiIiCisgICAgICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAg
ICAgICAgICAgZGVmIGFyZyhhcmcpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJnICsg
MQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IGFyZyA9PSAyCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQor
CisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYW5kX3Njb3BlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bImEiLCAi
YiIsICJjIl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAg
ICAgZGVmIHRlc3RfcGFyYW0oYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFy
ZykKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12
IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisgICAgICAgIHZhbHVl
cyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxl
LnZhbHVlcworICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMworICAgICAgICBhc3NlcnQg
ImEiIGluIHZhbHVlcworICAgICAgICBhc3NlcnQgImIiIGluIHZhbHVlcworICAgICAgICBhc3Nl
cnQgImMiIGluIHZhbHVlcworCisgICAgZGVmIHRlc3Rfc2NvcGVfbWlzbWF0Y2goc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIp
CisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQorICAgICAgICAgICAgZGVmIGFyZyhhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X21pc21hdGNoKGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqU2NvcGVNaXNtYXRj
aCoiLAorICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVz
dF9wYXJhbWV0cml6ZV9zZXBhcmF0ZWRfb3JkZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WzEsIDJdKQorICAg
ICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAg
ZGVmIHRlc3RfMihhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKKyAgICAgICAgdmFsdWVzID0gcmVw
cmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVz
CisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsIDEsIDIsIDJdCisKKyAgICBkZWYgdGVzdF9t
b2R1bGVfcGFyYW1ldHJpemVkX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgY29uc29s
ZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYworICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJhbXM9InMxIHMyIi5zcGxpdCgpKQor
ICAgICAgICAgICAgZGVmIHNhcmcoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz0ibTEgbTIiLnNwbGl0KCkp
CisgICAgICAgICAgICBkZWYgbWFyZygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9tb2QxPSIiIgorICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYyhzYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jMShtYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IiwgdGVzdF9tb2QyPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2FyZyk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzMoc2FyZywgbWFyZyk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzNiKHNhcmcs
IG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmM0
KG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoIiIiCisgICAgICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVuY1tzMV0gUEFT
U0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzJbczFdIFBBU1NFRAorICAg
ICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzW3MxLW0xXSBQQVNTRUQKKyAgICAgICAg
ICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM2JbczEtbTFdIFBBU1NFRAorICAgICAgICAgICAg
dGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzW3MxLW0yXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3Rf
bW9kMi5weTo6dGVzdF9mdW5jM2JbczEtbTJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2Qx
LnB5Ojp0ZXN0X2Z1bmNbczJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0
X2Z1bmMyW3MyXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tz
Mi1tMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MyLW0x
XSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jNFttMV0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNbczItbTJdIFBBU1NFRAorICAg
ICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzYltzMi1tMl0gUEFTU0VECisgICAgICAg
ICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzRbbTJdIFBBU1NFRAorICAgICAgICAgICAgdGVz
dF9tb2QxLnB5Ojp0ZXN0X2Z1bmMxW20xXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMS5w
eTo6dGVzdF9mdW5jMVttMl0gUEFTU0VECisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X2Ns
YXNzX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIi
CisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgY29uc29sZV9vdXRwdXRfc3R5bGU9
Y2xhc3NpYworICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPVsxLDJd
KQorICAgICAgICAgICAgZGVmIGZhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFz
cyIsIHBhcmFtcz1saXN0KCJhYiIpKQorICAgICAgICAgICAgZGVmIGNhcmcocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRl
ZiBhcHBlbmQocmVxdWVzdCwgZmFyZywgY2FyZyk6CisgICAgICAgICAgICAgICAgZGVmIGZpbigp
OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJmaW5fJXMlcyIgJSAoY2FyZywg
ZmFyZykpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQorICAgICAg
ICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzMihvYmplY3QpOgorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF8zKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12cyIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJp
bmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVsxLWFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9j
bGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8xWzItYV0gUEFTU0VECisgICAgICAg
ICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJbMS1hXSBQQVNT
RUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3Rf
MlsyLWFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENs
YXNzMjo6dGVzdF8xWzEtYl0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5n
LnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzFbMi1iXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xh
c3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMlsxLWJdIFBBU1NFRAorICAgICAgICAg
ICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8yWzItYl0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1sx
LWFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNz
Ojp0ZXN0XzNbMi1hXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6
OlRlc3RDbGFzczo6dGVzdF8zWzEtYl0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29y
ZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1syLWJdIFBBU1NFRAorICAgICAgICAiIiIpCisK
KyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXBhcmF0ZWRfb3JkZXJfaGlnaGVyX3Njb3BlX2Zp
cnN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsIDJdKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICBwYXJhbSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjolcyIgJSBw
YXJhbSkpCisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiY3JlYXRlOiVzIiAlIHBhcmFt
KQorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0pCisg
ICAgICAgICAgICBkZWYgbW9kYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhcmFtID0g
cmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJk
YTogdmFsdWVzLmFwcGVuZCgiZmluOiVzIiAlIHBhcmFtKSkKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKCJjcmVhdGU6JXMiICUgcGFyYW0pCisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0
ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MSIpCisgICAg
ICAgICAgICBkZWYgdGVzdF8yKG1vZGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZCgidGVzdDIiKQorICAgICAgICAgICAgZGVmIHRlc3RfMyhhcmcsIG1vZGFyZyk6CisgICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdDMiKQorICAgICAgICAgICAgZGVmIHRlc3RfNCht
b2RhcmcsIGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdDQiKQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MTIpCisgICAgICAgIHZhbHVlcyA9IHJl
cHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVl
cworICAgICAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICdjcmVhdGU6MScsICd0ZXN0MScs
ICdmaW46MScsICdjcmVhdGU6MicsICd0ZXN0MScsCisgICAgICAgICAgICAnZmluOjInLCAnY3Jl
YXRlOm1vZDEnLCAndGVzdDInLCAnY3JlYXRlOjEnLCAndGVzdDMnLAorICAgICAgICAgICAgJ2Zp
bjoxJywgJ2NyZWF0ZToyJywgJ3Rlc3QzJywgJ2ZpbjoyJywgJ2NyZWF0ZToxJywKKyAgICAgICAg
ICAgICd0ZXN0NCcsICdmaW46MScsICdjcmVhdGU6MicsICd0ZXN0NCcsICdmaW46MicsCisgICAg
ICAgICAgICAnZmluOm1vZDEnLCAnY3JlYXRlOm1vZDInLCAndGVzdDInLCAnY3JlYXRlOjEnLCAn
dGVzdDMnLAorICAgICAgICAgICAgJ2ZpbjoxJywgJ2NyZWF0ZToyJywgJ3Rlc3QzJywgJ2Zpbjoy
JywgJ2NyZWF0ZToxJywKKyAgICAgICAgICAgICd0ZXN0NCcsICdmaW46MScsICdjcmVhdGU6Mics
ICd0ZXN0NCcsICdmaW46MicsCisgICAgICAgICAgICAnZmluOm1vZDInXQorICAgICAgICBpbXBv
cnQgcHByaW50CisgICAgICAgIHBwcmludC5wcHJpbnQobGlzdCh6aXAodmFsdWVzLCBleHBlY3Rl
ZCkpKQorICAgICAgICBhc3NlcnQgdmFsdWVzID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9w
YXJhbWV0cml6ZWRfZml4dHVyZV90ZWFyZG93bl9vcmRlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSwgc2NvcGU9ImNsYXNzIikKKyAg
ICAgICAgICAgIGRlZiBwYXJhbTEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKworICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAgY2xh
c3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAg
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkK
KyAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNlbGYsIHJlcXVlc3QsIHBhcmFtMSk6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyZG93bjEpCisgICAgICAgICAgICAgICAgQGNsYXNz
bWV0aG9kCisgICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duMShzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlcy5wb3AoKSA9PSAxCisgICAgICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBk
ZWYgc2V0dXAyKHNlbGYsIHJlcXVlc3QsIHBhcmFtMSk6CisgICAgICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoMikKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo
c2VsZi50ZWFyZG93bjIpCisgICAgICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAg
ICAgICAgZGVmIHRlYXJkb3duMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZh
bHVlcy5wb3AoKSA9PSAyCisgICAgICAgICAgICAgICAgZGVmIHRlc3Qoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3RfZmluaXNoKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IG5vdCB2YWx1ZXMKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqMyBwYXNzZWQqCisgICAgICAgICIiIikKKyAgICAg
ICAgYXNzZXJ0ICJlcnJvciIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0
ZXN0X2ZpeHR1cmVfZmluYWxpemVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGlt
cG9ydCBzeXMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
YnJvd3NlcihyZXF1ZXN0KToKKworICAgICAgICAgICAgICAgIGRlZiBmaW5hbGl6ZSgpOgorICAg
ICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdGaW5hbGl6ZWQnKQorICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbmFsaXplKQorICAgICAgICAgICAgICAgIHJl
dHVybiB7fQorICAgICAgICAiIiIpCisgICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWJkaXIi
KQorICAgICAgICBiLmpvaW4oInRlc3Rfb3ZlcnJpZGRlbl9maXh0dXJlX2ZpbmFsaXplci5weSIp
LndyaXRlKGRlZGVudCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGJyb3dzZXIoYnJvd3Nlcik6CisgICAg
ICAgICAgICAgICAgYnJvd3NlclsndmlzaXRlZCddID0gVHJ1ZQorICAgICAgICAgICAgICAgIHJl
dHVybiBicm93c2VyCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Jyb3dzZXIoYnJvd3Nlcik6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGJyb3dzZXJbJ3Zpc2l0ZWQnXSBpcyBUcnVlCisgICAgICAg
ICIiIikpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAg
IGZvciB0ZXN0IGluIFsndGVzdF9icm93c2VyJ106CisgICAgICAgICAgICByZXByZWMuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoJypGaW5hbGl6ZWQqJykKKworICAgIGRlZiB0ZXN0X2NsYXNzX3Njb3Bl
X3dpdGhfbm9ybWFsX3Rlc3RzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgY2xhc3MgQm94KG9iamVjdCk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSAwCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nY2xhc3MnKQorICAgICAgICAgICAgZGVm
IGEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgQm94LnZhbHVlICs9IDEKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQm94LnZhbHVlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2EoYSk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGEgPT0gMQorCisgICAgICAgICAgICBjbGFzcyBUZXN0MShvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Ioc2VsZiwgYSk6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBhID09IDIKKworICAgICAgICAgICAgY2xhc3MgVGVzdDIob2JqZWN0KToK
KyAgICAgICAgICAgICAgICBkZWYgdGVzdF9jKHNlbGYsIGEpOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgYSA9PSAzIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
dGVzdHBhdGgpCisgICAgICAgIGZvciB0ZXN0IGluIFsndGVzdF9hJywgJ3Rlc3RfYicsICd0ZXN0
X2MnXToKKyAgICAgICAgICAgIGFzc2VydCByZXByZWMubWF0Y2hyZXBvcnQodGVzdCkucGFzc2Vk
CisKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2lzX2NsZWFuKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1b
MSwgMl0pCisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
cXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZChyZXF1ZXN0LnBhcmFtKSkK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpeChmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAg
ICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0u
aXRlbS5tb2R1bGUudmFsdWVzCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsIDJdCisKKyAg
ICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXBhcmF0ZWRfbGlmZWN5Y2xlKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHggPSByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAg
ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW4lcyIgJSB4
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgZGVm
IHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAg
ICAgICAgZGVmIHRlc3RfMihhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJn
KQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXZz
IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQpCisgICAgICAgIHZhbHVl
cyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxl
LnZhbHVlcworICAgICAgICBpbXBvcnQgcHByaW50CisgICAgICAgIHBwcmludC5wcHJpbnQodmFs
dWVzKQorICAgICAgICAjIGFzc2VydCBsZW4odmFsdWVzKSA9PSA2CisgICAgICAgIGFzc2VydCB2
YWx1ZXNbMF0gPT0gdmFsdWVzWzFdID09IDEKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1syXSA9PSAi
ZmluMSIKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1szXSA9PSB2YWx1ZXNbNF0gPT0gMgorICAgICAg
ICBhc3NlcnQgdmFsdWVzWzVdID09ICJmaW4yIgorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVf
ZnVuY3Rpb25fc2NvcGVkX2ZpbmFsaXplcnNfY2FsbGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsIDJd
KQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICB4ID0gcmVx
dWVzdC5wYXJhbQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTog
dmFsdWVzLmFwcGVuZCgiZmluJXMiICUgeCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0
XzEoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzIoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKKyAg
ICAgICAgICAgIGRlZiB0ZXN0XzMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVl
cykgPT0gOAorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsICJmaW4xIiwgMiwg
ImZpbjIiLCAxLCAiZmluMSIsIDIsICJmaW4yIl0KKyAgICAgICAgIiIiKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTUpCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUyNDYKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInNjb3BlIiwgWyJzZXNzaW9uIiwgImZ1bmN0aW9uIiwgIm1vZHVsZSJd
KQorICAgIGRlZiB0ZXN0X2ZpbmFsaXplcl9vcmRlcl9vbl9wYXJhbWV0cml6YXRpb24oc2VsZiwg
c2NvcGUsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JShzY29wZSlyLCBwYXJhbXM9WyIxIl0pCisgICAgICAg
ICAgICBkZWYgZml4MShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JShzY29wZSlyKQorICAg
ICAgICAgICAgZGVmIGZpeDIocmVxdWVzdCwgYmFzZSk6CisgICAgICAgICAgICAgICAgZGVmIGNs
ZWFudXBfZml4MigpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZhbHVlcywgImJh
c2Ugc2hvdWxkIG5vdCBoYXZlIGJlZW4gZmluYWxpemVkIgorICAgICAgICAgICAgICAgIHJlcXVl
c3QuYWRkZmluYWxpemVyKGNsZWFudXBfZml4MikKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSUoc2NvcGUpcikKKyAgICAgICAgICAgIGRlZiBiYXNlKHJlcXVlc3QsIGZpeDEp
OgorICAgICAgICAgICAgICAgIGRlZiBjbGVhbnVwX2Jhc2UoKToKKyAgICAgICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgiZmluX2Jhc2UiKQorICAgICAgICAgICAgICAgICAgICBwcmludCAo
ImZpbmFsaXppbmcgYmFzZSIpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo
Y2xlYW51cF9iYXNlKQorCisgICAgICAgICAgICBkZWYgdGVzdF9iZWdpbigpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JheihiYXNlLCBmaXgyKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9vdGhlcigpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiICUgeyJzY29wZSI6IHNjb3BlfSkKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbHZzIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTMpCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUzOTYKKyAgICBkZWYgdGVz
dF9jbGFzc19zY29wZV9wYXJhbWV0cml6YXRpb25fb3JkZXJpbmcoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFy
YW1zPVsiSm9obiIsICJEb2UiXSwgc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBodW1h
bihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6
IHZhbHVlcy5hcHBlbmQoImZpbiAlcyIgJSByZXF1ZXN0LnBhcmFtKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBjbGFzcyBUZXN0R3JlZXRpbmdz
KG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwgaHVtYW4pOgor
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0X2hlbGxvIikKKworICAgICAg
ICAgICAgY2xhc3MgVGVzdE1ldHJpY3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9uYW1lKHNlbGYsIGh1bWFuKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgi
dGVzdF9uYW1lIikKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3BvcHVsYXRpb24oc2VsZiwg
aHVtYW4pOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0X3BvcHVsYXRp
b24iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigp
CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD02KQorICAgICAgICB2YWx1ZXMg
PSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52
YWx1ZXMKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInRlc3RfaGVsbG8iLCAiZmluIEpvaG4i
LCAidGVzdF9oZWxsbyIsICJmaW4gRG9lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRl
c3RfbmFtZSIsICJ0ZXN0X3BvcHVsYXRpb24iLCAiZmluIEpvaG4iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9uYW1lIiwgInRlc3RfcG9wdWxhdGlvbiIsICJmaW4gRG9lIl0KKwor
ICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3NldHVwX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsx
LCAyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJt
b2R1bGUiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgbXlzZXR1cChyZXF1ZXN0LCBh
cmcpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVz
LmFwcGVuZCgiZmluJXMiICUgYXJnKSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJz
ZXR1cCVzIiAlIGFyZykKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKKyAgICAg
ICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFy
ZykKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHBy
aW50CisgICAgICAgICAgICAgICAgcHByaW50LnBwcmludCh2YWx1ZXMpCisgICAgICAgICAgICAg
ICAgaWYgYXJnID09IDE6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJz
ZXR1cDEiLCAxLCAxLCBdCisgICAgICAgICAgICAgICAgZWxpZiBhcmcgPT0gMjoKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNldHVwMSIsIDEsIDEsICJmaW4xIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXR1cDIiLCAyLCAyLCBdCisKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTYpCisKKyAgICBkZWYgdGVzdF9maXh0dXJl
X21hcmtlZF9mdW5jdGlvbl9ub3RfY29sbGVjdGVkX2FzX3Rlc3Qoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHRlc3RfYXBwKCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRo
aW5nKHRlc3RfYXBwKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdGVzdF9hcHAgPT0gMQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcGFyYW1zX2Fu
ZF9pZHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBh
cmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZHM9WydhbHBoYScsICdiZXRhJ10pCisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2ZvbyhmaXgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoJy12JykKKyAgICAgICAgcmVzLnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqdGVzdF9mb28qYWxwaGEqJywKKyAgICAgICAgICAg
ICcqdGVzdF9mb28qYmV0YSonXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtc19hbmRfaWRzX3lpZWxk
Zml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LnlpZWxkX2Zp
eHR1cmUocGFyYW1zPVtvYmplY3QoKSwgb2JqZWN0KCldLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlkcz1bJ2FscGhhJywgJ2JldGEnXSkKKyAgICAgICAgICAgIGRlZiBmaXgo
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgIHlpZWxkIHJlcXVlc3QucGFyYW0KKworICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKGZpeCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXYnKQorICAgICAgICBy
ZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyp0ZXN0X2ZvbyphbHBoYSon
LAorICAgICAgICAgICAgJyp0ZXN0X2ZvbypiZXRhKiddKQorCisgICAgQHB5dGVzdC5tYXJrLmlz
c3VlOTIwCisgICAgZGVmIHRlc3RfZGV0ZXJtaW5pc3RpY19maXh0dXJlX2NvbGxlY3Rpb24oc2Vs
ZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9WyJB
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJDIl0pCisgICAgICAgICAgICBkZWYgQShyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyYW1zPVsiREREREREREREIiwgIkVFRUVFRUVFRUVFRSIsICJGRkZGRkZGRkZGRiIsICJi
YW5hbnNkYSJdKQorICAgICAgICAgICAgZGVmIEIocmVxdWVzdCwgQSk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKEIpOgor
ICAgICAgICAgICAgICAgICMgU29tZXRoaW5nIGZ1bmt5IGlzIGdvaW5nIG9uIGhlcmUuCisgICAg
ICAgICAgICAgICAgIyBEZXNwaXRlIHNwZWNpZmllZCBzZWVkcywgb24gd2hhdCBpcyBjb2xsZWN0
ZWQsCisgICAgICAgICAgICAgICAgIyBzb21ldGltZXMgd2UgZ2V0IHVuZXhwZWN0ZWQgcGFzc2Vz
LiBoYXNoaW5nIEIgc2VlbXMKKyAgICAgICAgICAgICAgICAjIHRvIGhlbHA/CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGhhc2goQikgb3IgVHJ1ZQorICAgICAgICAgICAgIiIiKQorICAgICAgICBt
b25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTkhBU0hTRUVEIiwgIjEiKQorICAgICAgICBvdXQxID0g
dGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLXYiKQorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIlBZVEhPTkhBU0hTRUVEIiwgIjIiKQorICAgICAgICBvdXQyID0gdGVzdGRpci5ydW5w
eXRlc3Rfc3VicHJvY2VzcygiLXYiKQorICAgICAgICBvdXQxID0gW2xpbmUgZm9yIGxpbmUgaW4g
b3V0MS5vdXRsaW5lcyBpZiBsaW5lLnN0YXJ0c3dpdGgoInRlc3RfZGV0ZXJtaW5pc3RpY19maXh0
dXJlX2NvbGxlY3Rpb24ucHk6OnRlc3RfZm9vIildCisgICAgICAgIG91dDIgPSBbbGluZSBmb3Ig
bGluZSBpbiBvdXQyLm91dGxpbmVzIGlmIGxpbmUuc3RhcnRzd2l0aCgidGVzdF9kZXRlcm1pbmlz
dGljX2ZpeHR1cmVfY29sbGVjdGlvbi5weTo6dGVzdF9mb28iKV0KKyAgICAgICAgYXNzZXJ0IGxl
bihvdXQxKSA9PSAxMgorICAgICAgICBhc3NlcnQgb3V0MSA9PSBvdXQyCisKKworY2xhc3MgVGVz
dFJlcXVlc3RTY29wZUFjY2VzcyhvYmplY3QpOgorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgoInNjb3BlIiwgIm9rIiwgImVycm9yIiksIFsKKyAgICAgICAgWyJzZXNz
aW9uIiwgIiIsICJmc3BhdGggY2xhc3MgZnVuY3Rpb24gbW9kdWxlIl0sCisgICAgICAgIFsibW9k
dWxlIiwgIm1vZHVsZSBmc3BhdGgiLCAiY2xzIGZ1bmN0aW9uIl0sCisgICAgICAgIFsiY2xhc3Mi
LCAibW9kdWxlIGZzcGF0aCBjbHMiLCAiZnVuY3Rpb24iXSwKKyAgICAgICAgWyJmdW5jdGlvbiIs
ICJtb2R1bGUgZnNwYXRoIGNscyBmdW5jdGlvbiIsICIiXQorICAgIF0pCisKKyAgICBkZWYgdGVz
dF9zZXR1cChzZWxmLCB0ZXN0ZGlyLCBzY29wZSwgb2ssIGVycm9yKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSVyLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYg
bXlzY29wZWQocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHJlcXVlc3QsIHgpCisgICAgICAgICAgICAgICAg
Zm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRl
RXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVxdWVzdCwg
eCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2Vzc2lvbgorICAgICAgICAgICAg
ICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiICUgKHNjb3BlLCBvay5zcGxpdCgpLCBl
cnJvci5zcGxpdCgpKSkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbCIp
CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rf
ZnVuY2FyZyhzZWxmLCB0ZXN0ZGlyLCBzY29wZSwgb2ssIGVycm9yKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSVyKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICBmb3IgeCBpbiAlcjoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IGhhc2F0dHIocmVxdWVzdCwgeCkKKyAgICAgICAgICAgICAgICBmb3IgeCBpbiAlcjoKKyAgICAg
ICAgICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbGFtYmRhOgorICAg
ICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXF1ZXN0LCB4KSkKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgcmVxdWVzdC5zZXNzaW9uCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Qu
Y29uZmlnCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFyZyk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIgJSAoc2NvcGUsIG9rLnNwbGl0KCksIGVycm9yLnNwbGl0KCkpKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitjbGFzcyBUZXN0RXJyb3JzKG9iamVjdCk6CisgICAg
ZGVmIHRlc3Rfc3ViZmFjdG9yeV9taXNzaW5nX2Z1bmNhcmcoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgZ2VuKHF3ZTEyMyk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGlu
ZyhnZW4pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqZGVm
IGdlbihxd2UxMjMpOioiLAorICAgICAgICAgICAgIipmaXh0dXJlKnF3ZTEyMypub3QgZm91bmQq
IiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rf
aXNzdWU0OThfZml4dHVyZV9maW5hbGl6ZXJfZmFpbGluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4MShyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBLZXlF
cnJvcgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGYpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdCgpCisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAg
ICAgICBkZWYgdGVzdF8xKGZpeDEpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZml4
MSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoZml4MSk6CisgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZChmaXgxKQorICAgICAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgICAg
IGFzc2VydCB2YWx1ZXNbMF0gIT0gdmFsdWVzWzFdCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoIiIiCisgICAgICAgICAgICAqRVJST1IqdGVhcmRvd24qdGVzdF8xKgorICAgICAgICAg
ICAgKktleUVycm9yKgorICAgICAgICAgICAgKkVSUk9SKnRlYXJkb3duKnRlc3RfMioKKyAgICAg
ICAgICAgICpLZXlFcnJvcioKKyAgICAgICAgICAgICozIHBhc3MqMiBlcnJvcioKKyAgICAgICAg
IiIiKQorCisgICAgZGVmIHRlc3Rfc2V0dXBmdW5jX21pc3NpbmdfZnVuY2FyZyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAg
ICAgICAgIGRlZiBnZW4ocXdlMTIzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAg
ICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgIipkZWYgZ2VuKHF3ZTEyMyk6KiIsCisgICAgICAgICAgICAiKmZpeHR1
cmUqcXdlMTIzKm5vdCBmb3VuZCoiLAorICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAg
IF0pCisKKworY2xhc3MgVGVzdFNob3dGaXh0dXJlcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Z1
bmNhcmdfY29tcGF0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBh
cnNlY29uZmlndXJlKCItLWZ1bmNhcmdzIikKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24u
c2hvd2ZpeHR1cmVzCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRtcGRpcioi
LAorICAgICAgICAgICAgIip0ZW1wb3JhcnkgZGlyZWN0b3J5KiIsCisgICAgICAgIF0pCisKKyAg
ICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3ZlcmJvc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgIi12IikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdG1wZGlyKi0tKnRt
cGRpci5weSoiLAorICAgICAgICAgICAgIip0ZW1wb3JhcnkgZGlyZWN0b3J5KiIsCisgICAgICAg
IF0pCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3Rlc3Rtb2R1bGUoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBf
YXJnMCgpOgorICAgICAgICAgICAgICAgICIiIiBoaWRkZW4gIiIiCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgIiIi
ICBoZWxsbyB3b3JsZCAiIiIKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygiIiIKKyAgICAgICAgICAgICp0bXBkaXIKKyAgICAgICAgICAgICpmaXh0dXJlcyBk
ZWZpbmVkIGZyb20qCisgICAgICAgICAgICAqYXJnMSoKKyAgICAgICAgICAgICpoZWxsbyB3b3Js
ZCoKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgImFyZzAiIG5vdCBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRlc3Rtb2QiLCBbVHJ1
ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfY29uZnRlc3Qoc2VsZiwgdGVz
dGRpciwgdGVzdG1vZCk6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgICIiIiAgaGVsbG8gd29ybGQgIiIiCisg
ICAgICAgICcnJykKKyAgICAgICAgaWYgdGVzdG1vZDoKKyAgICAgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKCIiIgorICAgICAgICAgICAgKnRtcGRpcioKKyAgICAgICAgICAgICpmaXh0dXJlcyBk
ZWZpbmVkIGZyb20qY29uZnRlc3QqCisgICAgICAgICAgICAqYXJnMSoKKyAgICAgICAgICAgICpo
ZWxsbyB3b3JsZCoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc190
cmltbWVkX2RvYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZShkZWRlbnQoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAgICAgICAgICBsaW5lMgorCisgICAgICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBhcmcyKCk6CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgbGluZTEKKyAg
ICAgICAgICAgICAgICBsaW5lMgorCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICcnJykp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKGRlZGVudCgiIiIKKyAgICAgICAgICAg
ICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc190cmltbWVkX2RvYyAq
CisgICAgICAgICAgICBhcmcyCisgICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAgICAgICAg
ICBsaW5lMgorICAgICAgICAgICAgYXJnMQorICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAg
ICAgICAgICAgbGluZTIKKworICAgICAgICAiIiIpKQorCisgICAgZGVmIHRlc3Rfc2hvd19maXh0
dXJlc19pbmRlbnRlZF9kb2Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoZGVkZW50KCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4dHVyZTEoKToKKyAgICAgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgICAgICBp
bmRlbnRlZCBsaW5lCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICcnJykpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKGRlZGVudCgiIiIKKyAgICAgICAgICAgICogZml4dHVy
ZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRlZF9kb2MgKgorICAgICAg
ICAgICAgZml4dHVyZTEKKyAgICAgICAgICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgICAg
ICBpbmRlbnRlZCBsaW5lCisgICAgICAgICIiIikpCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1
cmVzX2luZGVudGVkX2RvY19maXJzdF9saW5lX3VuaW5kZW50ZWQoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoZGVkZW50KCcnJworICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
Zml4dHVyZTEoKToKKyAgICAgICAgICAgICAgICAiIiJsaW5lMQorICAgICAgICAgICAgICAgIGxp
bmUyCisgICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgICAgICAgICAi
IiIKKyAgICAgICAgJycnKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Zml4dHVyZXMiLCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoZGVkZW50
KCIiIgorICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1
cmVzX2luZGVudGVkX2RvY19maXJzdF9saW5lX3VuaW5kZW50ZWQgKgorICAgICAgICAgICAgZml4
dHVyZTEKKyAgICAgICAgICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgIGxpbmUyCisgICAg
ICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgIiIiKSkKKworICAgIGRlZiB0
ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5fY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoZGVkZW50KCcnJworICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzOgorICAgICAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBmaXh0dXJlMShzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgIiIibGluZTEKKyAgICAgICAgICAgICAgICAgICAgbGluZTIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgIiIi
CisgICAgICAgICcnJykpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZp
eHR1cmVzIiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKGRlZGVudCgi
IiIKKyAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJl
c19pbmRlbnRlZF9pbl9jbGFzcyAqCisgICAgICAgICAgICBmaXh0dXJlMQorICAgICAgICAgICAg
ICAgIGxpbmUxCisgICAgICAgICAgICAgICAgbGluZTIKKyAgICAgICAgICAgICAgICAgICAgaW5k
ZW50ZWQgbGluZQorICAgICAgICAiIiIpKQorCisgICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc19k
aWZmZXJlbnRfZmlsZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICAjODMz
OiAtLWZpeHR1cmVzIG9ubHkgc2hvd3MgZml4dHVyZXMgZnJvbSBmaXJzdCBmaWxlCisgICAgICAg
ICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9hPScnJworICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBmaXhfYSgpOgorICAgICAgICAgICAgICAgICIiIkZpeHR1cmUgQSIiIgorICAgICAgICAg
ICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3RfYShmaXhfYSk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAnJycpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0
X2I9JycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeF9iKCk6CisgICAgICAgICAgICAgICAgIiIiRml4
dHVyZSBCIiIiCisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9i
KGZpeF9iKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICcnJykKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJv
bSB0ZXN0X2EgKgorICAgICAgICAgICAgZml4X2EKKyAgICAgICAgICAgICAgICBGaXh0dXJlIEEK
KworICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9iICoKKyAgICAgICAg
ICAgIGZpeF9iCisgICAgICAgICAgICAgICAgRml4dHVyZSBCCisgICAgICAgICIiIikKKworICAg
IGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9zYW1lX25hbWUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMSgpOgor
ICAgICAgICAgICAgICAgICIiIkhlbGxvIFdvcmxkIGluIGNvbmZ0ZXN0LnB5IiIiCisgICAgICAg
ICAgICAgICAgcmV0dXJuICJIZWxsbyBXb3JsZCIKKyAgICAgICAgJycnKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oYXJnMSk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gIkhlbGxvIFdvcmxkIgorICAgICAgICAnJycpCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAg
ICAgICAgICAgICAgICAiIiJIaSBmcm9tIHRlc3QgbW9kdWxlIiIiCisgICAgICAgICAgICAgICAg
cmV0dXJuICJIaSIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JhcihhcmcxKToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgYXJnMSA9PSAiSGkiCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoJycnCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSBjb25m
dGVzdCAqCisgICAgICAgICAgICBhcmcxCisgICAgICAgICAgICAgICAgSGVsbG8gV29ybGQgaW4g
Y29uZnRlc3QucHkKKworICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9z
aG93X2ZpeHR1cmVzX3dpdGhfc2FtZV9uYW1lICoKKyAgICAgICAgICAgIGFyZzEKKyAgICAgICAg
ICAgICAgICBIaSBmcm9tIHRlc3QgbW9kdWxlCisgICAgICAgICcnJykKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoJ2ZsYXZvcicsIFsnZml4dHVyZScsICd5aWVsZF9maXh0dXJlJ10pCitj
bGFzcyBUZXN0Q29udGV4dE1hbmFnZXJGaXh0dXJlRnVuY3Mob2JqZWN0KToKKworICAgIGRlZiB0
ZXN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0
LntmbGF2b3J9CisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHByaW50
ICgic2V0dXAiKQorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgICAgICBwcmlu
dCAoInRlYXJkb3duIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAg
ICAgICAgcHJpbnQgKCJ0ZXN0MSAlcyIgJSBhcmcxKQorICAgICAgICAgICAgZGVmIHRlc3RfMihh
cmcxKToKKyAgICAgICAgICAgICAgICBwcmludCAoInRlc3QyICVzIiAlIGFyZzEpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiLmZvcm1hdChmbGF2b3I9Zmxhdm9yKSkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKnNldHVwKgorICAgICAgICAgICAg
KnRlc3QxIDEqCisgICAgICAgICAgICAqdGVhcmRvd24qCisgICAgICAgICAgICAqc2V0dXAqCisg
ICAgICAgICAgICAqdGVzdDIgMSoKKyAgICAgICAgICAgICp0ZWFyZG93bioKKyAgICAgICAgIiIi
KQorCisgICAgZGVmIHRlc3Rfc2NvcGVkKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3Que2ZsYXZvcn0oc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYg
YXJnMSgpOgorICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAiKQorICAgICAgICAgICAgICAg
IHlpZWxkIDEKKyAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIikKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0MSAlcyIgJSBh
cmcxKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcxKToKKyAgICAgICAgICAgICAgICBwcmlu
dCAoInRlc3QyICVzIiAlIGFyZzEpCisgICAgICAgICIiIi5mb3JtYXQoZmxhdm9yPWZsYXZvcikp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpzZXR1cCoKKyAgICAgICAg
ICAgICp0ZXN0MSAxKgorICAgICAgICAgICAgKnRlc3QyIDEqCisgICAgICAgICAgICAqdGVhcmRv
d24qCisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X3NldHVwX2V4Y2VwdGlvbihzZWxmLCB0
ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9KHNjb3BlPSJt
b2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBweXRlc3Qu
ZmFpbCgic2V0dXAiKQorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgIGRlZiB0
ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIuZm9ybWF0KGZs
YXZvcj1mbGF2b3IpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqcHl0
ZXN0LmZhaWwqc2V0dXAqCisgICAgICAgICAgICAqMSBlcnJvcioKKyAgICAgICAgIiIiKQorCisg
ICAgZGVmIHRlc3RfdGVhcmRvd25fZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3Que2ZsYXZvcn0oc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAg
ICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgICAgICBw
eXRlc3QuZmFpbCgidGVhcmRvd24iKQorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcxKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIi5mb3JtYXQoZmxhdm9yPWZsYXZvcikpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpweXRlc3QuZmFpbCp0ZWFyZG93
bioKKyAgICAgICAgICAgICoxIHBhc3NlZCoxIGVycm9yKgorICAgICAgICAiIiIpCisKKyAgICBk
ZWYgdGVzdF95aWVsZHNfbW9yZV90aGFuX29uZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9KHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAg
ZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICAgICAgeWll
bGQgMgorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcxKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIi5mb3JtYXQoZmxhdm9yPWZsYXZvcikpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygiIiIKKyAgICAgICAgICAgICpmaXh0dXJlIGZ1bmN0aW9uKgorICAgICAgICAgICAgKnRlc3Rf
eWllbGRzKjoyKgorICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9jdXN0b21fbmFtZShzZWxm
LCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9KG5hbWU9
J21lb3cnKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
J21ldycKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEobWVvdyk6CisgICAgICAgICAgICAgICAgcHJp
bnQobWVvdykKKyAgICAgICAgIiIiLmZvcm1hdChmbGF2b3I9Zmxhdm9yKSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKCIqbWV3KiIpCisKKworY2xhc3MgVGVzdFBhcmFtZXRlcml6ZWRTdWJSZXF1ZXN0
KG9iamVjdCk6CisgICAgZGVmIHRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAx
LCAyXSkKKyAgICAgICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBnZXRfbmFtZWRfZml4dHVyZShyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykK
KworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVlc3QsIGdldF9uYW1lZF9maXh0dXJlKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KCIiIgorICAgICAgICAgICAgRSpGYWlsZWQ6IFRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8g
cGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IHRlc3QuCisgICAgICAgICAgICBFKgor
ICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4dHVyZSAnZml4X3dpdGhfcGFyYW0nIGRlZmluZWQg
aW46CisgICAgICAgICAgICBFKnswfTo0CisgICAgICAgICAgICBFKlJlcXVlc3RlZCBoZXJlOgor
ICAgICAgICAgICAgRSp7MX06OQorICAgICAgICAgICAgKjEgZXJyb3IqCisgICAgICAgICAgICAi
IiIuZm9ybWF0KHRlc3RmaWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFtZSkpCisKKyAgICBk
ZWYgdGVzdF9jYWxsX2Zyb21fdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGZpbGUg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzAsIDEsIDJdKQorICAgICAgICAgICAg
ZGVmIGZpeF93aXRoX3BhcmFtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQorICAgICAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgIEUqRmFpbGVkOiBU
aGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0aGUgY3Vy
cmVudCB0ZXN0LgorICAgICAgICAgICAgRSoKKyAgICAgICAgICAgIEUqUmVxdWVzdGVkIGZpeHR1
cmUgJ2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOgorICAgICAgICAgICAgRSp7MH06NAorICAg
ICAgICAgICAgRSpSZXF1ZXN0ZWQgaGVyZToKKyAgICAgICAgICAgIEUqezF9OjgKKyAgICAgICAg
ICAgICoxIGZhaWxlZCoKKyAgICAgICAgICAgICIiIi5mb3JtYXQodGVzdGZpbGUuYmFzZW5hbWUs
IHRlc3RmaWxlLmJhc2VuYW1lKSkKKworICAgIGRlZiB0ZXN0X2V4dGVybmFsX2ZpeHR1cmUoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIGNvbmZmaWxlID0gdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShwYXJhbXM9WzAsIDEsIDJdKQorICAgICAgICAgICAgZGVmIGZpeF93aXRoX3BhcmFtKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAi
IiIpCisKKyAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBkZWYgdGVzdF9mb28ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRm
aXh0dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykKKyAgICAgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoIiIiCisgICAgICAgICAgICBFKkZhaWxlZDogVGhlIHJlcXVlc3RlZCBmaXh0dXJl
IGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgdGVzdC4KKyAgICAgICAg
ICAgIEUqCisgICAgICAgICAgICBFKlJlcXVlc3RlZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScg
ZGVmaW5lZCBpbjoKKyAgICAgICAgICAgIEUqezB9OjQKKyAgICAgICAgICAgIEUqUmVxdWVzdGVk
IGhlcmU6CisgICAgICAgICAgICBFKnsxfToyCisgICAgICAgICAgICAqMSBmYWlsZWQqCisgICAg
ICAgICAgICAiIiIuZm9ybWF0KGNvbmZmaWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFtZSkp
CisKKyAgICBkZWYgdGVzdF9ub25fcmVsYXRpdmVfcGF0aChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdHNfZGlyID0gdGVzdGRpci5ta2RpcigndGVzdHMnKQorICAgICAgICBmaXhkaXIgPSB0
ZXN0ZGlyLm1rZGlyKCdmaXh0dXJlcycpCisgICAgICAgIGZpeGZpbGUgPSBmaXhkaXIuam9pbigi
Zml4LnB5IikKKyAgICAgICAgZml4ZmlsZS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHBhcmFtcz1bMCwgMSwgMl0pCisgICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICIi
IikpCisKKyAgICAgICAgdGVzdGZpbGUgPSB0ZXN0c19kaXIuam9pbigidGVzdF9mb29zLnB5IikK
KyAgICAgICAgdGVzdGZpbGUud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAg
ICAgICBmcm9tIGZpeCBpbXBvcnQgZml4X3dpdGhfcGFyYW0KKworICAgICAgICAgICAgZGVmIHRl
c3RfZm9vKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVl
KCdmaXhfd2l0aF9wYXJhbScpCisgICAgICAgICAgICAiIiIpKQorCisgICAgICAgIHRlc3RzX2Rp
ci5jaGRpcigpCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydChmaXhkaXIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgRSpGYWlsZWQ6IFRoZSByZXF1ZXN0ZWQgZml4dHVy
ZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IHRlc3QuCisgICAgICAg
ICAgICBFKgorICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4dHVyZSAnZml4X3dpdGhfcGFyYW0n
IGRlZmluZWQgaW46CisgICAgICAgICAgICBFKnswfTo1CisgICAgICAgICAgICBFKlJlcXVlc3Rl
ZCBoZXJlOgorICAgICAgICAgICAgRSp7MX06NQorICAgICAgICAgICAgKjEgZmFpbGVkKgorICAg
ICAgICAgICAgIiIiLmZvcm1hdChmaXhmaWxlLnN0cnBhdGgsIHRlc3RmaWxlLmJhc2VuYW1lKSkK
KworCitkZWYgdGVzdF9weXRlc3RfZml4dHVyZV9zZXR1cF9hbmRfcG9zdF9maW5hbGl6ZXJfaG9v
ayh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorICAgICAgICBkZWYgcHl0ZXN0X2ZpeHR1
cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAgICAgICBwcmludCgnUk9PVCBz
ZXR1cCBob29rIGNhbGxlZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmdu
YW1lLCByZXF1ZXN0Lm5vZGUubmFtZSkpCisgICAgICAgIGRlZiBweXRlc3RfZml4dHVyZV9wb3N0
X2ZpbmFsaXplcihmaXh0dXJlZGVmLCByZXF1ZXN0KToKKyAgICAgICAgICAgIHByaW50KCdST09U
IGZpbmFsaXplciBob29rIGNhbGxlZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRl
Zi5hcmduYW1lLCByZXF1ZXN0Lm5vZGUubmFtZSkpCisgICAgIiIiKQorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgqKnsKKyAgICAgICAgJ3Rlc3RzL2NvbmZ0ZXN0LnB5JzogIiIiCisgICAgICAgICAg
ICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAg
ICAgcHJpbnQoJ1RFU1RTIHNldHVwIGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0nLmZvcm1h
dChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkKKyAgICAgICAgICAgIGRl
ZiBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihmaXh0dXJlZGVmLCByZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICBwcmludCgnVEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciB7MH0g
ZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkK
KyAgICAgICAgIiIiLAorICAgICAgICAndGVzdHMvdGVzdF9ob29rcy5weSc6ICIiIgorICAgICAg
ICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAg
ICAgZGVmIG15X2ZpeHR1cmUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3NvbWUnCisKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMobXlfZml4dHVyZSk6CisgICAgICAgICAgICAgICAgcHJp
bnQoJ1RFU1QgdGVzdF9mdW5jJykKKyAgICAgICAgICAgICAgICBhc3NlcnQgbXlfZml4dHVyZSA9
PSAnc29tZScKKyAgICAgICAgIiIiCisgICAgfSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXMiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKlRFU1RTIHNldHVwIGhvb2sgY2FsbGVkIGZvciBt
eV9maXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCisgICAgICAgICIqUk9PVCBzZXR1cCBob29rIGNh
bGxlZCBmb3IgbXlfZml4dHVyZSBmcm9tIHRlc3RfZnVuYyoiLAorICAgICAgICAiKlRFU1QgdGVz
dF9mdW5jKiIsCisgICAgICAgICIqVEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciBteV9m
aXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCisgICAgICAgICIqUk9PVCBmaW5hbGl6ZXIgaG9vayBj
YWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMqIiwKKyAgICBdKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vaW50ZWdyYXRpb24ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3B5dGhvbi9pbnRlZ3JhdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWEyOWZhOThiOWRh
NjAxOGM0M2UxZTdkZTc4MmZiM2JlNmU4YTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vaW50ZWdyYXRpb24ucHkKQEAgLTAsMCArMSwzODQgQEAKK2ltcG9y
dCBweXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQgcHl0aG9uCitmcm9tIF9weXRlc3QgaW1wb3J0
IHJ1bm5lcgorCisKK2NsYXNzIFRlc3RPRUpTS0lUU3BlY2lhbHMob2JqZWN0KToKKyAgICBkZWYg
dGVzdF9mdW5jYXJnX25vbl9weWNvbGxlY3RvYmooc2VsZiwgdGVzdGRpcik6ICAjIHJvdWdoIGpz
dGVzdHMgdXNhZ2UKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRl
bShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CisgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAiTXlD
bGFzcyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNeUNvbGxlY3RvcihuYW1lLCBwYXJl
bnQ9Y29sbGVjdG9yKQorICAgICAgICAgICAgY2xhc3MgTXlDb2xsZWN0b3IocHl0ZXN0LkNvbGxl
Y3Rvcik6CisgICAgICAgICAgICAgICAgZGVmIHJlcG9ydGluZm8oc2VsZik6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLmZzcGF0aCwgMywgInh5eiIKKyAgICAgICAgIiIiKQorICAg
ICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFy
ZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisgICAgICAgICAgICBjbGFz
cyBNeUNsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisg
ICAgICAgICMgdGhpcyBob29rIGZpbmRzIGZ1bmNhcmcgZmFjdG9yaWVzCisgICAgICAgIHJlcCA9
IHJ1bm5lci5jb2xsZWN0X29uZV9ub2RlKGNvbGxlY3Rvcj1tb2Rjb2wpCisgICAgICAgIGNsc2Nv
bCA9IHJlcC5yZXN1bHRbMF0KKyAgICAgICAgY2xzY29sLm9iaiA9IGxhbWJkYSBhcmcxOiBOb25l
CisgICAgICAgIGNsc2NvbC5mdW5jYXJncyA9IHt9CisgICAgICAgIHB5dGVzdC5fZmlsbGZ1bmNh
cmdzKGNsc2NvbCkKKyAgICAgICAgYXNzZXJ0IGNsc2NvbC5mdW5jYXJnc1snYXJnMSddID09IDQy
CisKKyAgICBkZWYgdGVzdF9hdXRvdXNlX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6ICAjIHJvdWdo
IGpzdGVzdHMgdXNhZ2UKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtl
aXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CisgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAi
TXlDbGFzcyI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNeUNvbGxlY3RvcihuYW1lLCBw
YXJlbnQ9Y29sbGVjdG9yKQorICAgICAgICAgICAgY2xhc3MgTXlDb2xsZWN0b3IocHl0ZXN0LkNv
bGxlY3Rvcik6CisgICAgICAgICAgICAgICAgZGVmIHJlcG9ydGluZm8oc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxmLmZzcGF0aCwgMywgInh5eiIKKyAgICAgICAgIiIiKQor
ICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisg
ICAgICAgICAgICBkZWYgaGVsbG8oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiA0MgorICAgICAgICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICAjIHRoaXMgaG9vayBm
aW5kcyBmdW5jYXJnIGZhY3RvcmllcworICAgICAgICByZXAgPSBydW5uZXIuY29sbGVjdF9vbmVf
bm9kZShtb2Rjb2wpCisgICAgICAgIGNsc2NvbCA9IHJlcC5yZXN1bHRbMF0KKyAgICAgICAgY2xz
Y29sLm9iaiA9IGxhbWJkYTogTm9uZQorICAgICAgICBjbHNjb2wuZnVuY2FyZ3MgPSB7fQorICAg
ICAgICBweXRlc3QuX2ZpbGxmdW5jYXJncyhjbHNjb2wpCisgICAgICAgIGFzc2VydCBub3QgY2xz
Y29sLmZ1bmNhcmdzCisKKworZGVmIHRlc3Rfd3JhcHBlZF9nZXRmc2xpbmVubygpOgorICAgIGRl
ZiBmdW5jKCk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB3cmFwKGYpOgorICAgICAgICBmdW5j
Ll9fd3JhcHBlZF9fID0gZgorICAgICAgICBmdW5jLnBhdGNoaW5ncyA9IFsicXdlIl0KKyAgICAg
ICAgcmV0dXJuIGZ1bmMKKworICAgIEB3cmFwCisgICAgZGVmIHdyYXBwZWRfZnVuYyh4LCB5LCB6
KToKKyAgICAgICAgcGFzcworICAgIGZzLCBsaW5lbm8gPSBweXRob24uZ2V0ZnNsaW5lbm8od3Jh
cHBlZF9mdW5jKQorICAgIGZzMiwgbGluZW5vMiA9IHB5dGhvbi5nZXRmc2xpbmVubyh3cmFwKQor
ICAgIGFzc2VydCBsaW5lbm8gPiBsaW5lbm8yLCAiZ2V0ZnNsaW5lbm8gZG9lcyBub3QgdW53cmFw
IGNvcnJlY3RseSIKKworCitjbGFzcyBUZXN0TW9ja0RlY29yYXRpb24ob2JqZWN0KToKKyAgICBk
ZWYgdGVzdF93cmFwcGVkX2dldGZ1bmNhcmduYW1lcyhzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0
ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0ZnVuY2FyZ25hbWVzCisKKyAgICAgICAgZGVmIHdyYXAoZik6
CisKKyAgICAgICAgICAgIGRlZiBmdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ICAgICAgICBmdW5jLl9fd3JhcHBlZF9fID0gZgorICAgICAgICAgICAgcmV0dXJuIGZ1bmMKKwor
ICAgICAgICBAd3JhcAorICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICB2YWx1ZXMgPSBnZXRmdW5jYXJnbmFtZXMoZikKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9
PSAoIngiLCkKKworICAgIGRlZiB0ZXN0X3dyYXBwZWRfZ2V0ZnVuY2FyZ25hbWVzX3BhdGNoaW5n
KHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBnZXRmdW5jYXJnbmFt
ZXMKKworICAgICAgICBkZWYgd3JhcChmKToKKyAgICAgICAgICAgIGRlZiBmdW5jKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZnVuYy5fX3dyYXBwZWRfXyA9IGYKKyAgICAg
ICAgICAgIGZ1bmMucGF0Y2hpbmdzID0gWyJxd2UiXQorICAgICAgICAgICAgcmV0dXJuIGZ1bmMK
KworICAgICAgICBAd3JhcAorICAgICAgICBkZWYgZih4LCB5LCB6KToKKyAgICAgICAgICAgIHBh
c3MKKworICAgICAgICB2YWx1ZXMgPSBnZXRmdW5jYXJnbmFtZXMoZikKKyAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSAoInkiLCAieiIpCisKKyAgICBkZWYgdGVzdF91bml0dGVzdF9tb2NrKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCJ1bml0dGVzdC5tb2NrIikK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHVuaXR0
ZXN0Lm1vY2sKKyAgICAgICAgICAgIGNsYXNzIFQodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAg
ICAgICAgICAgIEB1bml0dGVzdC5tb2NrLnBhdGNoKCJvcy5wYXRoLmFic3BhdGgiKQorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYsIGFic3BhdGgpOgorICAgICAgICAgICAgICAg
ICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5hYnNwYXRoKCJoZWxs
byIpCisgICAgICAgICAgICAgICAgICAgIGFic3BhdGguYXNzZXJ0X2FueV9jYWxsKCJoZWxsbyIp
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF91bml0
dGVzdF9tb2NrX2FuZF9maXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBweXRlc3QuaW1w
b3J0b3Jza2lwKCJ1bml0dGVzdC5tb2NrIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IG9zLnBhdGgKKyAgICAgICAgICAgIGltcG9ydCB1bml0dGVz
dC5tb2NrCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGluamVjdF9tZSgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgQHVuaXR0ZXN0Lm1vY2sucGF0Y2gub2JqZWN0KG9zLnBhdGgsICJh
YnNwYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXc9dW5p
dHRlc3QubW9jay5NYWdpY01vY2spCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhpbmplY3Rf
bWUpOgorICAgICAgICAgICAgICAgIGltcG9ydCBvcworICAgICAgICAgICAgICAgIG9zLnBhdGgu
YWJzcGF0aCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisg
ICAgZGVmIHRlc3RfbW9jayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcHl0ZXN0LmltcG9ydG9y
c2tpcCgibW9jayIsICIxLjAuMSIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBvcworICAgICAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAg
ICAgICBpbXBvcnQgbW9jaworCisgICAgICAgICAgICBjbGFzcyBUKHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICAgICAgICAgICAgICBAbW9jay5wYXRjaCgib3MucGF0aC5hYnNwYXRoIikKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBhYnNwYXRoKToKKyAgICAgICAgICAgICAg
ICAgICAgb3MucGF0aC5hYnNwYXRoKCJoZWxsbyIpCisgICAgICAgICAgICAgICAgICAgIGFic3Bh
dGguYXNzZXJ0X2FueV9jYWxsKCJoZWxsbyIpCisgICAgICAgICAgICBkZWYgbW9ja19iYXNlbmFt
ZShwYXRoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gIm1vY2tfYmFzZW5hbWUiCisgICAgICAg
ICAgICBAbW9jay5wYXRjaCgib3MucGF0aC5hYnNwYXRoIikKKyAgICAgICAgICAgIEBtb2NrLnBh
dGNoKCJvcy5wYXRoLm5vcm1wYXRoIikKKyAgICAgICAgICAgIEBtb2NrLnBhdGNoKCJvcy5wYXRo
LmJhc2VuYW1lIiwgbmV3PW1vY2tfYmFzZW5hbWUpCisgICAgICAgICAgICBkZWYgdGVzdF9zb21l
dGluZyhub3JtcGF0aCwgYWJzcGF0aCwgdG1wZGlyKToKKyAgICAgICAgICAgICAgICBhYnNwYXRo
LnJldHVybl92YWx1ZSA9ICJ0aGlzIgorICAgICAgICAgICAgICAgIG9zLnBhdGgubm9ybXBhdGgo
b3MucGF0aC5hYnNwYXRoKCJoZWxsbyIpKQorICAgICAgICAgICAgICAgIG5vcm1wYXRoLmFzc2Vy
dF9hbnlfY2FsbCgidGhpcyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG9zLnBhdGguYmFzZW5h
bWUoIjEyMyIpID09ICJtb2NrX2Jhc2VuYW1lIgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yKQorICAgICAgICBjYWxscyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3Rf
bG9ncmVwb3J0IikKKyAgICAgICAgZnVuY25hbWVzID0gW2NhbGwucmVwb3J0LmxvY2F0aW9uWzJd
IGZvciBjYWxsIGluIGNhbGxzCisgICAgICAgICAgICAgICAgICAgICBpZiBjYWxsLnJlcG9ydC53
aGVuID09ICJjYWxsIl0KKyAgICAgICAgYXNzZXJ0IGZ1bmNuYW1lcyA9PSBbIlQudGVzdF9oZWxs
byIsICJ0ZXN0X3NvbWV0aW5nIl0KKworICAgIGRlZiB0ZXN0X21vY2tfc29ydGluZyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgibW9jayIsICIxLjAuMSIpCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBvcworICAg
ICAgICAgICAgaW1wb3J0IG1vY2sKKworICAgICAgICAgICAgQG1vY2sucGF0Y2goIm9zLnBhdGgu
YWJzcGF0aCIpCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoYWJzcGF0aCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgQG1vY2sucGF0Y2goIm9zLnBhdGguYWJzcGF0aCIpCisg
ICAgICAgICAgICBkZWYgdGVzdF90d28oYWJzcGF0aCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAgICAgQG1vY2sucGF0Y2goIm9zLnBhdGguYWJzcGF0aCIpCisgICAgICAgICAgICBk
ZWYgdGVzdF90aHJlZShhYnNwYXRoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgY2FsbHMg
PSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAg
Y2FsbHMgPSBbeCBmb3IgeCBpbiBjYWxscyBpZiB4LndoZW4gPT0gImNhbGwiXQorICAgICAgICBu
YW1lcyA9IFt4Lm5vZGVpZC5zcGxpdCgiOjoiKVstMV0gZm9yIHggaW4gY2FsbHNdCisgICAgICAg
IGFzc2VydCBuYW1lcyA9PSBbInRlc3Rfb25lIiwgInRlc3RfdHdvIiwgInRlc3RfdGhyZWUiXQor
CisgICAgZGVmIHRlc3RfbW9ja19kb3VibGVfcGF0Y2hfaXNzdWU0NzMoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoIm1vY2siLCAiMS4wLjEiKQorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNo
CisgICAgICAgICAgICBmcm9tIHB5dGVzdCBpbXBvcnQgbWFyaworCisgICAgICAgICAgICBAcGF0
Y2goJ29zLmdldGN3ZCcpCisgICAgICAgICAgICBAcGF0Y2goJ29zLnBhdGgnKQorICAgICAgICAg
ICAgQG1hcmsuc2xvdworICAgICAgICAgICAgY2xhc3MgVGVzdFNpbXBsZShvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZV90aGluZyhzZWxmLCBtb2NrX3BhdGgsIG1vY2tf
Z2V0Y3dkKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0xKQorCisKK2NsYXNzIFRlc3RSZVJ1blRlc3RzKG9iamVjdCk6CisgICAgZGVm
IHRlc3RfcmVydW4oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0
KCIiIgorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgcnVudGVzdHByb3Rv
Y29sCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSwgbmV4dGl0
ZW0pOgorICAgICAgICAgICAgICAgIHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9RmFsc2UsIG5l
eHRpdGVtPW5leHRpdGVtKQorICAgICAgICAgICAgICAgIHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBs
b2c9VHJ1ZSwgbmV4dGl0ZW09bmV4dGl0ZW0pCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
Y291bnQgPSAwCisgICAgICAgICAgICByZXEgPSBOb25lCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZ2xv
YmFsIGNvdW50LCByZXEKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdCAhPSByZXEKKyAg
ICAgICAgICAgICAgICByZXEgPSByZXF1ZXN0CisgICAgICAgICAgICAgICAgcHJpbnQgKCJmaXgg
Y291bnQgJXMiICUgY291bnQpCisgICAgICAgICAgICAgICAgY291bnQgKz0gMQorICAgICAgICAg
ICAgZGVmIHRlc3RfZml4KGZpeCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpmaXggY291bnQgMCoKKyAg
ICAgICAgICAgICpmaXggY291bnQgMSoKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqMiBwYXNzZWQqCisgICAgICAgICIi
IikKKworCitkZWYgdGVzdF9weXRlc3Rjb25maWdfaXNfc2Vzc2lvbl9zY29wZWQoKToKKyAgICBm
cm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHB5dGVzdGNvbmZpZworICAgIGFzc2VydCBweXRl
c3Rjb25maWcuX3B5dGVzdGZpeHR1cmVmdW5jdGlvbi5zY29wZSA9PSAic2Vzc2lvbiIKKworCitj
bGFzcyBUZXN0Tm9zZWxpa2VUZXN0QXR0cmlidXRlKG9iamVjdCk6CisgICAgZGVmIHRlc3RfbW9k
dWxlX3dpdGhfZ2xvYmFsX3Rlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIF9fdGVzdF9fID0gRmFsc2UKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIGFzc2VydCBub3QgcmVw
cmVjLmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0cmVw
b3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IG5vdCBjYWxs
cworCisgICAgZGVmIHRlc3RfY2xhc3NfYW5kX21ldGhvZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgX190ZXN0X18gPSBUcnVlCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAgICAgdGVzdF9mdW5jLl9fdGVzdF9fID0gRmFsc2UKKworICAgICAgICAgICAgY2xhc3MgVGVz
dFNvbWUob2JqZWN0KToKKyAgICAgICAgICAgICAgICBfX3Rlc3RfXyA9IEZhbHNlCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgYXNzZXJ0IG5vdCByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgICAgICBj
YWxscyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAg
ICAgICBhc3NlcnQgbm90IGNhbGxzCisKKyAgICBkZWYgdGVzdF91bml0dGVzdF9jbGFzcyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHVuaXR0ZXN0CisgICAgICAgICAgICBjbGFzcyBUQyh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgY2xhc3MgVEMyKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAg
ICAgICAgICBfX3Rlc3RfXyA9IEZhbHNlCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIGFzc2VydCBub3QgcmVwcmVjLmdldGZh
aWxlZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgY2FsbCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0
X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMiKVswXQorICAgICAgICBhc3NlcnQgbGVuKGNhbGwuaXRl
bXMpID09IDEKKyAgICAgICAgYXNzZXJ0IGNhbGwuaXRlbXNbMF0uY2xzLl9fbmFtZV9fID09ICJU
QyIKKworICAgIGRlZiB0ZXN0X2NsYXNzX3dpdGhfbmFzdHlfZ2V0YXR0cihzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgIiIiTWFrZSBzdXJlIHdlIGhhbmRsZSBjbGFzc2VzIHdpdGggYSBjdXN0b20g
bmFzdHkgX19nZXRhdHRyX18gcmlnaHQuCisKKyAgICAgICAgV2l0aCBhIGN1c3RvbSBfX2dldGF0
dHJfXyB3aGljaCBlLmcuIHJldHVybnMgYSBmdW5jdGlvbiAobGlrZSB3aXRoIGEKKyAgICAgICAg
UlBDIHdyYXBwZXIpLCB3ZSBzaG91bGRuJ3QgYXNzdW1lIHRoaXMgbWVhbnQgIl9fdGVzdF9fID0g
VHJ1ZSIuCisgICAgICAgICIiIgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMTIwNAorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBjbGFzcyBNZXRhTW9kZWwodHlwZSk6CisKKyAgICAgICAgICAgICAgICBkZWYg
X19nZXRhdHRyX18oY2xzLCBrZXkpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFtYmRh
OiBOb25lCisKKworICAgICAgICAgICAgQmFzZU1vZGVsID0gTWV0YU1vZGVsKCdNb2RlbCcsICgp
LCB7fSkKKworCisgICAgICAgICAgICBjbGFzcyBNb2RlbChCYXNlTW9kZWwpOgorCisgICAgICAg
ICAgICAgICAgX19tZXRhY2xhc3NfXyA9IE1ldGFNb2RlbAorCisgICAgICAgICAgICAgICAgZGVm
IHRlc3RfYmxhaChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIGFzc2VydCBu
b3QgcmVwcmVjLmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgY2FsbCA9IHJlcHJlYy5n
ZXRjYWxscygicHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMiKVswXQorICAgICAgICBhc3Nl
cnQgbm90IGNhbGwuaXRlbXMKKworCitAcHl0ZXN0Lm1hcmsuaXNzdWUzNTEKK2NsYXNzIFRlc3RQ
YXJhbWV0ZXJpemUob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X2lkZm5fbWFya2VyKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiBpZGZuKHBhcmFtKToKKyAgICAgICAgICAgICAg
ICBpZiBwYXJhbSA9PSAwOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisgICAg
ICAgICAgICAgICAgZWxpZiBwYXJhbSA9PSAxOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
J2hhbScKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2EsYicsIFsoMCwg
MiksICgxLCAyKV0sIGlkcz1pZGZuKQorICAgICAgICAgICAgZGVmIHRlc3RfcGFyYW1zKGEsIGIp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgnLS1jb2xsZWN0LW9ubHknKQorICAgICAgICByZXMuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIipzcGFtLTIqIiwKKyAgICAgICAgICAgICIqaGFtLTIq
IiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2lkZm5fZml4dHVyZShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBkZWYgaWRmbihwYXJhbSk6CisgICAgICAgICAgICAgICAgaWYg
cGFyYW0gPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAg
ICAgICAgIGVsaWYgcGFyYW0gPT0gMToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoYW0n
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMV0sIGlkcz1pZGZuKQor
ICAgICAgICAgICAgZGVmIGEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMl0sIGlk
cz1pZGZuKQorICAgICAgICAgICAgZGVmIGIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfcGFyYW1zKGEsIGIpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgnLS1jb2xsZWN0LW9ubHknKQorICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgIipzcGFtLTIqIiwKKyAgICAgICAgICAgICIqaGFtLTIqIiwK
KyAgICAgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFm
dW5jLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vbWV0YWZ1bmMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmZmYjdiYjVkYTJhMWMzODFhOTE3ODRmYjhkYzg1Njk1NjIzYTliYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5CkBAIC0wLDAgKzEs
MTU2MSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCByZQoraW1wb3J0IHN5cwor
CitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9w
eXRlc3QgaW1wb3J0IHB5dGhvbiwgZml4dHVyZXMKKworaW1wb3J0IGh5cG90aGVzaXMKK2Zyb20g
aHlwb3RoZXNpcyBpbXBvcnQgc3RyYXRlZ2llcworCitQWTMgPSBzeXMudmVyc2lvbl9pbmZvID49
ICgzLCAwKQorCisKK2NsYXNzIFRlc3RNZXRhZnVuYyhvYmplY3QpOgorICAgIGRlZiBNZXRhZnVu
YyhzZWxmLCBmdW5jKToKKyAgICAgICAgIyB0aGUgdW5pdCB0ZXN0cyBvZiB0aGlzIGNsYXNzIGNo
ZWNrIGlmIHRoaW5ncyB3b3JrIGNvcnJlY3RseQorICAgICAgICAjIG9uIHRoZSBmdW5jYXJnIGxl
dmVsLCBzbyB3ZSBkb24ndCBuZWVkIGEgZnVsbCBibG93bgorICAgICAgICAjIGluaXRpbGlhemF0
aW9uCisgICAgICAgIGNsYXNzIEZpeHR1cmVJbmZvKG9iamVjdCk6CisgICAgICAgICAgICBuYW1l
MmZpeHR1cmVkZWZzID0gTm9uZQorCisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgbmFt
ZXMpOgorICAgICAgICAgICAgICAgIHNlbGYubmFtZXNfY2xvc3VyZSA9IG5hbWVzCisKKyAgICAg
ICAgbmFtZXMgPSBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoZnVuYykKKyAgICAgICAgZml4dHVy
ZWluZm8gPSBGaXh0dXJlSW5mbyhuYW1lcykKKyAgICAgICAgcmV0dXJuIHB5dGhvbi5NZXRhZnVu
YyhmdW5jLCBmaXh0dXJlaW5mbywgTm9uZSkKKworICAgIGRlZiB0ZXN0X25vX2Z1bmNhcmdzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBkZWYgZnVuY3Rpb24oKToKKyAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmN0aW9uKQorICAgICAgICBhc3Nl
cnQgbm90IG1ldGFmdW5jLmZpeHR1cmVuYW1lcworICAgICAgICByZXByKG1ldGFmdW5jLl9jYWxs
cykKKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2Jhc2ljKHNlbGYpOgorICAgICAgICBkZWYgZnVu
YyhhcmcxLCBhcmcyPSJxd2UiKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMg
PSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIGFzc2VydCBsZW4obWV0YWZ1bmMuZml4dHVy
ZW5hbWVzKSA9PSAxCisgICAgICAgIGFzc2VydCAnYXJnMScgaW4gbWV0YWZ1bmMuZml4dHVyZW5h
bWVzCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbiBpcyBmdW5jCisgICAgICAgIGFz
c2VydCBtZXRhZnVuYy5jbHMgaXMgTm9uZQorCisgICAgZGVmIHRlc3RfYWRkY2FsbF9ub19hcmdz
KHNlbGYpOgorICAgICAgICBkZWYgZnVuYyhhcmcxKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLmFkZGNh
bGwoKQorICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykgPT0gMQorICAgICAgICBj
YWxsID0gbWV0YWZ1bmMuX2NhbGxzWzBdCisgICAgICAgIGFzc2VydCBjYWxsLmlkID09ICIwIgor
ICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoY2FsbCwgJ3BhcmFtJykKKworICAgIGRlZiB0ZXN0
X2FkZGNhbGxfaWQoc2VsZik6CisgICAgICAgIGRlZiBmdW5jKGFyZzEpOgorICAgICAgICAgICAg
cGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKyAgICAgICAgcHl0
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAibWV0YWZ1bmMuYWRkY2FsbChpZD1Ob25lKSIpCisKKyAg
ICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0xKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsICJtZXRhZnVuYy5hZGRjYWxsKGlkPTEpIikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCAibWV0YWZ1bmMuYWRkY2FsbChpZD0nMScpIikKKyAgICAgICAgbWV0YWZ1bmMu
YWRkY2FsbChpZD0yKQorICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykgPT0gMgor
ICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmlkID09ICIxIgorICAgICAgICBhc3Nl
cnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmlkID09ICIyIgorCisgICAgZGVmIHRlc3RfYWRkY2FsbF9w
YXJhbShzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoYXJnMSk6CisgICAgICAgICAgICBwYXNzCisg
ICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorCisgICAgICAgIGNsYXNzIG9i
aihvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwo
cGFyYW09b2JqKQorICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHBhcmFtPW9iaikKKyAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0xKQorICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9j
YWxscykgPT0gMworICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmdldHBhcmFtKCJh
cmcxIikgPT0gb2JqCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uZ2V0cGFyYW0o
ImFyZzEiKSA9PSBvYmoKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1syXS5nZXRwYXJh
bSgiYXJnMSIpID09IDEKKworICAgIGRlZiB0ZXN0X2FkZGNhbGxfZnVuY2FyZ3Moc2VsZik6Cisg
ICAgICAgIGRlZiBmdW5jKHgpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1ldGFmdW5j
ID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorCisgICAgICAgIGNsYXNzIG9iaihvYmplY3QpOgorICAg
ICAgICAgICAgcGFzcworCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoZnVuY2FyZ3M9eyJ4Ijog
Mn0pCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoZnVuY2FyZ3M9eyJ4IjogM30pCisgICAgICAg
IHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCAibWV0YWZ1bmMuYWRkY2FsbCh7
J3h5eic6IDB9KSIpCisgICAgICAgIGFzc2VydCBsZW4obWV0YWZ1bmMuX2NhbGxzKSA9PSAyCisg
ICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3MgPT0geyd4JzogMn0KKyAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5mdW5jYXJncyA9PSB7J3gnOiAzfQorICAg
ICAgICBhc3NlcnQgbm90IGhhc2F0dHIobWV0YWZ1bmMuX2NhbGxzWzFdLCAncGFyYW0nKQorCisg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfZXJyb3Ioc2VsZik6CisgICAgICAgIGRlZiBmdW5jKHgs
IHkpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMo
ZnVuYykKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbMSwgMl0pCisgICAgICAg
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBtZXRhZnVuYy5wYXJhbWV0cml6ZSgi
eCIsIFs1LCA2XSkpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBt
ZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIsIFs1LCA2XSkpCisgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCJ5IiwgWzEsIDJdKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxh
bWJkYTogbWV0YWZ1bmMucGFyYW1ldHJpemUoInkiLCBbNSwgNl0pKQorICAgICAgICBweXRlc3Qu
cmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJkYTogbWV0YWZ1bmMucGFyYW1ldHJpemUoInkiLCBbNSwg
Nl0pKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYmFkX3Njb3BlKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBkZWYgZnVuYyh4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1
bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1ldGFm
dW5jLnBhcmFtZXRyaXplKCJ4IiwgWzFdLCBzY29wZT0nZG9nZ3knKQorICAgICAgICBleGNlcHQg
VmFsdWVFcnJvciBhcyB2ZToKKyAgICAgICAgICAgIGFzc2VydCAiaGFzIGFuIHVuc3VwcG9ydGVk
IHNjb3BlIHZhbHVlICdkb2dneSciIGluIHN0cih2ZSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX2FuZF9pZChzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorCisgICAgICAgIG1l
dGFmdW5jLnBhcmFtZXRyaXplKCJ4IiwgWzEsIDJdLCBpZHM9WydiYXNpYycsICdhZHZhbmNlZCdd
KQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieSIsIFsiYWJjIiwgImRlZiJdKQorICAg
ICAgICBpZHMgPSBbeC5pZCBmb3IgeCBpbiBtZXRhZnVuYy5fY2FsbHNdCisgICAgICAgIGFzc2Vy
dCBpZHMgPT0gWyJiYXNpYy1hYmMiLCAiYmFzaWMtZGVmIiwgImFkdmFuY2VkLWFiYyIsICJhZHZh
bmNlZC1kZWYiXQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYW5kX2lkX3VuaWNvZGUoc2Vs
Zik6CisgICAgICAgICIiIkFsbG93IHVuaWNvZGUgc3RyaW5ncyBmb3IgImlkcyIgcGFyYW1ldGVy
IGluIFB5dGhvbiAyICgjIzE5MDUpIiIiCisgICAgICAgIGRlZiBmdW5jKHgpOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKyAgICAgICAg
bWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbMSwgMl0sIGlkcz1bdSdiYXNpYycsIHUnYWR2YW5j
ZWQnXSkKKyAgICAgICAgaWRzID0gW3guaWQgZm9yIHggaW4gbWV0YWZ1bmMuX2NhbGxzXQorICAg
ICAgICBhc3NlcnQgaWRzID09IFt1ImJhc2ljIiwgdSJhZHZhbmNlZCJdCisKKyAgICBkZWYgdGVz
dF9wYXJhbWV0cml6ZV93aXRoX3dyb25nX251bWJlcl9vZl9pZHMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIGRlZiBmdW5jKHgsIHkpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVu
YyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKworICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJy
b3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgi
eCIsIFsxLCAyXSwgaWRzPVsnYmFzaWMnXSkpCisKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yLCBsYW1iZGE6CisgICAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJp
emUoKCJ4IiwgInkiKSwgWygiYWJjIiwgImRlZiIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImdoaSIsICJqa2wiKV0sIGlkcz1bIm9u
ZSJdKSkKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTUxMAorICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX2VtcHR5X2xpc3Qoc2VsZik6CisgICAgICAgIGRlZiBmdW5jKHkpOgorICAgICAgICAgICAg
cGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKyAgICAgICAgbWV0
YWZ1bmMucGFyYW1ldHJpemUoInkiLCBbXSkKKyAgICAgICAgYXNzZXJ0ICdza2lwJyA9PSBtZXRh
ZnVuYy5fY2FsbHNbMF0ubWFya3NbMF0ubmFtZQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVf
d2l0aF91c2Vyb2JqZWN0cyhzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorCisgICAg
ICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgieCIsIFtBKCksIEEoKV0pCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRy
aXplKCJ5IiwgbGlzdCgiYWIiKSkKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5p
ZCA9PSAieDAtYSIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5pZCA9PSAieDAt
YiIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1syXS5pZCA9PSAieDEtYSIKKyAgICAg
ICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1szXS5pZCA9PSAieDEtYiIKKworICAgIEBoeXBvdGhl
c2lzLmdpdmVuKHN0cmF0ZWdpZXMudGV4dCgpIHwgc3RyYXRlZ2llcy5iaW5hcnkoKSkKKyAgICBk
ZWYgdGVzdF9pZHZhbF9oeXBvdGhlc2lzKHNlbGYsIHZhbHVlKToKKyAgICAgICAgZnJvbSBfcHl0
ZXN0LnB5dGhvbiBpbXBvcnQgX2lkdmFsCisgICAgICAgIGVzY2FwZWQgPSBfaWR2YWwodmFsdWUs
ICdhJywgNiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXNjYXBlZCwgc3RyKQor
ICAgICAgICBpZiBQWTM6CisgICAgICAgICAgICBlc2NhcGVkLmVuY29kZSgnYXNjaWknKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgZXNjYXBlZC5kZWNvZGUoJ2FzY2lpJykKKworICAgIGRl
ZiB0ZXN0X3VuaWNvZGVfaWR2YWwoc2VsZik6CisgICAgICAgICIiIlRoaXMgdGVzdHMgdGhhdCBV
bmljb2RlIHN0cmluZ3Mgb3V0c2lkZSB0aGUgQVNDSUkgY2hhcmFjdGVyIHNldCBnZXQKKyAgICAg
ICAgZXNjYXBlZCwgdXNpbmcgYnl0ZSBlc2NhcGVzIGlmIHRoZXkncmUgaW4gdGhhdCByYW5nZSBv
ciB1bmljb2RlCisgICAgICAgIGVzY2FwZXMgaWYgdGhleSdyZSBub3QuCisKKyAgICAgICAgIiIi
CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IF9pZHZhbAorICAgICAgICB2YWx1
ZXMgPSBbCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgdScnLAorICAgICAgICAgICAg
ICAgICcnCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgIHUn
YXNjaWknLAorICAgICAgICAgICAgICAgICdhc2NpaScKKyAgICAgICAgICAgICksCisgICAgICAg
ICAgICAoCisgICAgICAgICAgICAgICAgdSdhw6fDo28nLAorICAgICAgICAgICAgICAgICdhXFx4
ZTdcXHhlM28nCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAg
IHUnam9zw6lAYmxhaC5jb20nLAorICAgICAgICAgICAgICAgICdqb3NcXHhlOUBibGFoLmNvbScK
KyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgdSfOtM6/zrou
zrnOvM6uQM+AzrHPgc6szrTOtc65zrPOvM6xLs60zr/Ous65zrzOricsCisgICAgICAgICAgICAg
ICAgJ1xcdTAzYjRcXHUwM2JmXFx1MDNiYS5cXHUwM2I5XFx1MDNiY1xcdTAzYWVAXFx1MDNjMFxc
dTAzYjFcXHUwM2MxXFx1MDNhY1xcdTAzYjRcXHUwM2I1XFx1MDNiOVxcdTAzYjMnCisgICAgICAg
ICAgICAgICAgJ1xcdTAzYmNcXHUwM2IxLlxcdTAzYjRcXHUwM2JmXFx1MDNiYVxcdTAzYjlcXHUw
M2JjXFx1MDNhZScKKyAgICAgICAgICAgICksCisgICAgICAgIF0KKyAgICAgICAgZm9yIHZhbCwg
ZXhwZWN0ZWQgaW4gdmFsdWVzOgorICAgICAgICAgICAgYXNzZXJ0IF9pZHZhbCh2YWwsICdhJywg
NiwgTm9uZSkgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X2J5dGVzX2lkdmFsKHNlbGYpOgor
ICAgICAgICAiIiJ1bml0dGVzdCBmb3IgdGhlIGV4cGVjdGVkIGJlaGF2aW9yIHRvIG9idGFpbiBp
ZHMgZm9yIHBhcmFtZXRyaXplZAorICAgICAgICBieXRlcyB2YWx1ZXM6CisgICAgICAgIC0gcHl0
aG9uMjogbm9uLWFzY2lpIHN0cmluZ3MgYXJlIGNvbnNpZGVyZWQgYnl0ZXMgYW5kIGZvcm1hdHRl
ZCB1c2luZworICAgICAgICAiYmluYXJ5IGVzY2FwZSIsIHdoZXJlIGFueSBieXRlIDwgMTI3IGlz
IGVzY2FwZWQgaW50byBpdHMgaGV4IGZvcm0uCisgICAgICAgIC0gcHl0aG9uMzogYnl0ZXMgb2Jq
ZWN0cyBhcmUgYWx3YXlzIGVzY2FwZWQgdXNpbmcgImJpbmFyeSBlc2NhcGUiLgorICAgICAgICAi
IiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgX2lkdmFsCisgICAgICAgIHZh
bHVlcyA9IFsKKyAgICAgICAgICAgIChiJycsICcnKSwKKyAgICAgICAgICAgIChiJ1x4YzNceGI0
XHhmZlx4ZTQnLCAnXFx4YzNcXHhiNFxceGZmXFx4ZTQnKSwKKyAgICAgICAgICAgIChiJ2FzY2lp
JywgJ2FzY2lpJyksCisgICAgICAgICAgICAodSfOsc+BzqwnLmVuY29kZSgndXRmLTgnKSwgJ1xc
eGNlXFx4YjFcXHhjZlxceDgxXFx4Y2VcXHhhYycpLAorICAgICAgICBdCisgICAgICAgIGZvciB2
YWwsIGV4cGVjdGVkIGluIHZhbHVlczoKKyAgICAgICAgICAgIGFzc2VydCBfaWR2YWwodmFsLCAn
YScsIDYsIE5vbmUpID09IGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUyNTAKKyAg
ICBkZWYgdGVzdF9pZG1ha2VyX2F1dG9uYW1lKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3Qu
cHl0aG9uIGltcG9ydCBpZG1ha2VyCisgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoKCJhIiwgImIi
KSwgW3B5dGVzdC5wYXJhbSgic3RyaW5nIiwgMS4wKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJzdC1yaW5nIiwgMi4wKV0pCisgICAgICAgIGFz
c2VydCByZXN1bHQgPT0gWyJzdHJpbmctMS4wIiwgInN0LXJpbmctMi4wIl0KKworICAgICAgICBy
ZXN1bHQgPSBpZG1ha2VyKCgiYSIsICJiIiksIFtweXRlc3QucGFyYW0ob2JqZWN0KCksIDEuMCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbShvYmpl
Y3QoKSwgb2JqZWN0KCkpXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbImEwLTEuMCIsICJh
MS1iMSJdCisgICAgICAgICMgdW5pY29kZSBtaXhpbmcsIGlzc3VlMjUwCisgICAgICAgIHJlc3Vs
dCA9IGlkbWFrZXIoCisgICAgICAgICAgICAocHkuYnVpbHRpbi5fdG90ZXh0KCJhIiksICJiIiks
CisgICAgICAgICAgICBbcHl0ZXN0LnBhcmFtKHt9LCBiJ1x4YzNceGI0JyldKQorICAgICAgICBh
c3NlcnQgcmVzdWx0ID09IFsnYTAtXFx4YzNcXHhiNCddCisKKyAgICBkZWYgdGVzdF9pZG1ha2Vy
X3dpdGhfYnl0ZXNfcmVnZXgoc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1w
b3J0IGlkbWFrZXIKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiKSwgW3B5dGVzdC5wYXJh
bShyZS5jb21waWxlKGInZm9vJyksIDEuMCldKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsi
Zm9vIl0KKworICAgIGRlZiB0ZXN0X2lkbWFrZXJfbmF0aXZlX3N0cmluZ3Moc2VsZik6CisgICAg
ICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IGlkbWFrZXIKKyAgICAgICAgdG90ZXh0ID0g
cHkuYnVpbHRpbi5fdG90ZXh0CisgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoKCJhIiwgImIiKSwg
WworICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDEuMCwgLTEuMSksCisgICAgICAgICAgICBweXRl
c3QucGFyYW0oMiwgLTIwMiksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oInRocmVlIiwgInRo
cmVlIGh1bmRyZWQiKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShUcnVlLCBGYWxzZSksCisg
ICAgICAgICAgICBweXRlc3QucGFyYW0oTm9uZSwgTm9uZSksCisgICAgICAgICAgICBweXRlc3Qu
cGFyYW0ocmUuY29tcGlsZSgnZm9vJyksIHJlLmNvbXBpbGUoJ2JhcicpKSwKKyAgICAgICAgICAg
IHB5dGVzdC5wYXJhbShzdHIsIGludCksCisgICAgICAgICAgICBweXRlc3QucGFyYW0obGlzdCgi
c2l4IiksIFs2NiwgNjZdKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShzZXQoWzddKSwgc2V0
KCJzZXZlbiIpKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSh0dXBsZSgiZWlnaHQiKSwgKDgs
IC04LCA4KSksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oYidceGMzXHhiNCcsIGIibmFtZSIp
LAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKGInXHhjM1x4YjQnLCB0b3RleHQoIm90aGVyIikp
LAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiMS4wLS0xLjEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAiMi0tMjAyIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRocmVlLXRocmVlIGh1bmRyZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJ1
ZS1GYWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lLU5vbmUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZm9vLWJhciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdHItaW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImE3LWI3IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgImE4LWI4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImE5
LWI5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxceGMzXFx4YjQtbmFtZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICJcXHhjM1xceGI0LW90aGVyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgXQorCisgICAgZGVmIHRlc3RfaWRtYWtlcl9lbnVtKHNlbGYpOgorICAgICAg
ICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisgICAgICAgIGVudW0gPSBweXRl
c3QuaW1wb3J0b3Jza2lwKCJlbnVtIikKKyAgICAgICAgZSA9IGVudW0uRW51bSgiRm9vIiwgIm9u
ZSwgdHdvIikKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiLCAiYiIpLCBbcHl0ZXN0LnBh
cmFtKGUub25lLCBlLnR3byldKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiRm9vLm9uZS1G
b28udHdvIl0KKworICAgIEBweXRlc3QubWFyay5pc3N1ZTM1MQorICAgIGRlZiB0ZXN0X2lkbWFr
ZXJfaWRmbihzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtl
cgorCisgICAgICAgIGRlZiBpZHModmFsKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFs
LCBFeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHJldHVybiByZXByKHZhbCkKKworICAgICAg
ICByZXN1bHQgPSBpZG1ha2VyKCgiYSIsICJiIiksIFsKKyAgICAgICAgICAgIHB5dGVzdC5wYXJh
bSgxMC4wLCBJbmRleEVycm9yKCkpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDIwLCBLZXlF
cnJvcigpKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgidGhyZWUiLCBbMSwgMiwgM10pLAor
ICAgICAgICBdLCBpZGZuPWlkcykKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbIjEwLjAtSW5k
ZXhFcnJvcigpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjIwLUtleUVycm9yKCkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZWUtYjIiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBdCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUzNTEKKyAgICBkZWYgdGVzdF9pZG1h
a2VyX2lkZm5fdW5pcXVlX25hbWVzKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9u
IGltcG9ydCBpZG1ha2VyCisKKyAgICAgICAgZGVmIGlkcyh2YWwpOgorICAgICAgICAgICAgcmV0
dXJuICdhJworCisgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoKCJhIiwgImIiKSwgW3B5dGVzdC5w
YXJhbSgxMC4wLCBJbmRleEVycm9yKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBweXRlc3QucGFyYW0oMjAsIEtleUVycm9yKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oInRocmVlIiwgWzEsIDIsIDNdKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgaWRmbj1pZHMpCisgICAgICAg
IGFzc2VydCByZXN1bHQgPT0gWyJhLWEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImEt
YTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiYS1hMiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIF0KKworICAgIEBweXRlc3QubWFyay5pc3N1ZTM1MQorICAgIGRlZiB0ZXN0X2lk
bWFrZXJfaWRmbl9leGNlcHRpb24oc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24g
aW1wb3J0IGlkbWFrZXIKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1wb3J0IFdhcm5p
bmdzUmVjb3JkZXIKKworICAgICAgICBjbGFzcyBCYWRJZHNFeGNlcHRpb24oRXhjZXB0aW9uKToK
KyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgaWRzKHZhbCk6CisgICAgICAgICAgICBy
YWlzZSBCYWRJZHNFeGNlcHRpb24oImlkcyByYWlzZWQiKQorCisgICAgICAgIHJlYyA9IFdhcm5p
bmdzUmVjb3JkZXIoKQorICAgICAgICB3aXRoIHJlYzoKKyAgICAgICAgICAgIGlkbWFrZXIoKCJh
IiwgImIiKSwgWworICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgxMC4wLCBJbmRleEVycm9y
KCkpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgyMCwgS2V5RXJyb3IoKSksCisgICAg
ICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJ0aHJlZSIsIFsxLCAyLCAzXSksCisgICAgICAgICAg
ICBdLCBpZGZuPWlkcykKKworICAgICAgICBhc3NlcnQgW3N0cihpLm1lc3NhZ2UpIGZvciBpIGlu
IHJlYy5saXN0XSA9PSBbCisgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRl
cm1pbmUgaWQgb2YgcGFyYW1ldGVyIGEgYXQgcG9zaXRpb24gMC4iCisgICAgICAgICAgICAiXG5V
cGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4w
LiIsCisgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2Yg
cGFyYW1ldGVyIGIgYXQgcG9zaXRpb24gMC4iCisgICAgICAgICAgICAiXG5VcGRhdGUgeW91ciBj
b2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIsCisgICAgICAg
ICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyIGEg
YXQgcG9zaXRpb24gMS4iCisgICAgICAgICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMg
d2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIsCisgICAgICAgICAgICAiUmFpc2Vk
IHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyIGIgYXQgcG9zaXRpb24g
MS4iCisgICAgICAgICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBh
biBlcnJvciBpbiBweXRlc3QtNC4wLiIsCisgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWlu
ZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyIGEgYXQgcG9zaXRpb24gMi4iCisgICAgICAg
ICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBw
eXRlc3QtNC4wLiIsCisgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1p
bmUgaWQgb2YgcGFyYW1ldGVyIGIgYXQgcG9zaXRpb24gMi4iCisgICAgICAgICAgICAiXG5VcGRh
dGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIs
CisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lkc19leGNlcHRpb24oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICA6cGFyYW0gdGVzdGRpcjogdGhlIGlu
c3RhbmNlIG9mIFRlc3RkaXIgY2xhc3MsIGEgdGVtcG9yYXJ5CisgICAgICAgIHRlc3QgZGlyZWN0
b3J5LgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIGRlZiBpZHMoYXJnKToK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJiYWQgaWRzIikKKworICAgICAg
ICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYXJnIiwgWyJhIiwgImIiXSwgaWRz
PWlkcykKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oYXJnKToKKyAgICAgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgIiIiKQorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhE
ZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICI8TW9kdWxlICd0ZXN0X3BhcmFtZXRyaXplX2lkc19leGNlcHRpb24u
cHknPiIsCisgICAgICAgICAgICAiICA8RnVuY3Rpb24gJ3Rlc3RfZm9vW2FdJz4iLAorICAgICAg
ICAgICAgIiAgPEZ1bmN0aW9uICd0ZXN0X2Zvb1tiXSc+IiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2lkbWFrZXJfd2l0aF9pZHMoc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRo
b24gaW1wb3J0IGlkbWFrZXIKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiLCAiYiIpLCBb
cHl0ZXN0LnBhcmFtKDEsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBweXRlc3QucGFyYW0oMywgNCldLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlkcz1bImEi
LCBOb25lXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbImEiLCAiMy00Il0KKworICAgIGRl
ZiB0ZXN0X2lkbWFrZXJfd2l0aF9wYXJhbXNldF9pZChzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0
ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgorICAgICAgICByZXN1bHQgPSBpZG1ha2VyKCgiYSIs
ICJiIiksIFtweXRlc3QucGFyYW0oMSwgMiwgaWQ9Im1lIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgzLCA0LCBpZD0ieW91IildLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkcz1bImEiLCBOb25lXSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dCA9PSBbIm1lIiwgInlvdSJdCisKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRzX3VuaXF1
ZV9uYW1lcyhzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtl
cgorICAgICAgICByZXN1bHQgPSBpZG1ha2VyKCgiYSIpLCBtYXAocHl0ZXN0LnBhcmFtLCBbMSwg
MiwgMywgNCwgNV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlkcz1bImEiLCAiYSIsICJi
IiwgImMiLCAiYiJdKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiYTAiLCAiYTEiLCAiYjAi
LCAiYyIsICJiMSJdCisKKyAgICBkZWYgdGVzdF9hZGRjYWxsX2FuZF9wYXJhbWV0cml6ZShzZWxm
KToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIG1l
dGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsn
eCc6IDF9KQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneScsIFsyLCAzXSkKKyAgICAg
ICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIKKyAgICAgICAgYXNzZXJ0IG1ldGFm
dW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7J3gnOiAxLCAneSc6IDJ9CisgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5fY2FsbHNbMV0uZnVuY2FyZ3MgPT0geyd4JzogMSwgJ3knOiAzfQorICAgICAg
ICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmlkID09ICIwLTIiCisgICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMV0uaWQgPT0gIjAtMyIKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTcx
NAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0KHNlbGYpOgorICAgICAgICBkZWYg
ZnVuYyh4LCB5KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1l
dGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCd4JywgWzFdLCBpbmRp
cmVjdD1UcnVlKQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneScsIFsyLCAzXSwgaW5k
aXJlY3Q9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIKKyAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7fQorICAgICAgICBh
c3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IHt9CisgICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTIpCisgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5fY2FsbHNbMV0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTMpCisKKyAgICBAcHl0
ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRpcmVjdF9saXN0
KHNlbGYpOgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVjdD1bJ3gnXSkKKyAgICAgICAgYXNz
ZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSBkaWN0KHk9J2InKQorICAgICAgICBh
c3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLnBhcmFtcyA9PSBkaWN0KHg9J2EnKQorCisgICAgQHB5
dGVzdC5tYXJrLmlzc3VlNzE0CisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaW5kaXJlY3RfbGlz
dF9hbGwoc2VsZik6CisgICAgICAgIGRlZiBmdW5jKHgsIHkpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKyAgICAgICAgbWV0YWZ1bmMu
cGFyYW1ldHJpemUoJ3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PVsneCcsICd5J10pCisg
ICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3MgPT0ge30KKyAgICAgICAg
YXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5wYXJhbXMgPT0gZGljdCh4PSdhJywgeT0nYicpCisK
KyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRp
cmVjdF9saXN0X2VtcHR5KHNlbGYpOgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAg
IG1ldGFmdW5jLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVjdD1bXSkK
KyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSBkaWN0KHg9J2En
LCB5PSdiJykKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5wYXJhbXMgPT0ge30K
KworICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lu
ZGlyZWN0X2xpc3RfZnVuY3Rpb25hbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFRlc3QgcGFyYW1ldHJpemF0aW9uIHdpdGggJ2luZGlyZWN0JyBwYXJhbWV0ZXIgYXBwbGll
ZCBvbgorICAgICAgICBwYXJ0aWN1bGFyIGFyZ3VtZW50cy4gQXMgeSBpcyBpcyBkaXJlY3QsIGl0
cyB2YWx1ZSBzaG91bGQKKyAgICAgICAgYmUgdXNlZCBkaXJlY3RseSByYXRoZXIgdGhhbiBiZWlu
ZyBwYXNzZWQgdG8gdGhlIGZpeHR1cmUKKyAgICAgICAgeS4KKworICAgICAgICA6cGFyYW0gdGVz
dGRpcjogdGhlIGluc3RhbmNlIG9mIFRlc3RkaXIgY2xhc3MsIGEgdGVtcG9yYXJ5CisgICAgICAg
IHRlc3QgZGlyZWN0b3J5LgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgICAgICBkZWYgeChyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbSAqIDMKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAgZGVmIHkocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAyCisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PVsneCdd
KQorICAgICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKHgseSk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGxlbih4KSA9PSAzCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih5KSA9PSAxCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9zaW1w
bGUqYS1iKiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgICAgIF0pCisKKyAgICBA
cHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRpcmVjdF9s
aXN0X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIG1ldGFmdW5j
LnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVjdD1bJ3gnLCAneiddKQor
CisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfdXNl
c19ub19maXh0dXJlX2Vycm9yX2luZGlyZWN0X2ZhbHNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICAiIiJUaGUgJ3VzZXMgbm8gZml4dHVyZScgZXJyb3IgdGVsbHMgdGhlIHVzZXIgYXQgY29sbGVj
dGlvbiB0aW1lCisgICAgICAgIHRoYXQgdGhlIHBhcmFtZXRyaXplIGRhdGEgdGhleSd2ZSBzZXQg
dXAgZG9lc24ndCBjb3JyZXNwb25kIHRvIHRoZQorICAgICAgICBmaXh0dXJlcyBpbiB0aGVpciB0
ZXN0IGZ1bmN0aW9uLCByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmluZyB0aGlzCisgICAgICAg
IGFuZCBsZXR0aW5nIHRoZSB0ZXN0IHBvdGVudGlhbGx5IHBhc3MuCisgICAgICAgICIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2EnLCAnYicp
XSwgaW5kaXJlY3Q9RmFsc2UpCisgICAgICAgICAgICBkZWYgdGVzdF9zaW1wbGUoeCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGxlbih4KSA9PSAzCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdXNlcyBubyBhcmd1bWVudCAn
eScqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAorICAgIGRlZiB0
ZXN0X3BhcmFtZXRyaXplX3VzZXNfbm9fZml4dHVyZV9lcnJvcl9pbmRpcmVjdF90cnVlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9u
JykKKyAgICAgICAgICAgIGRlZiB4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtICogMworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5j
dGlvbicpCisgICAgICAgICAgICBkZWYgeShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbSAqIDIKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICAgICAgZGVm
IHRlc3Rfc2ltcGxlKHgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oeCkgPT0gMworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKnVzZXMgbm8gZml4dHVyZSAneScqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFy
ay5pc3N1ZTcxNAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X3VzZXNfbm9fZml4
dHVyZV9lcnJvcl9pbmRpcmVjdF9zdHJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAgZGVmIHgocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAzCisKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2EnLCAnYicpXSwgaW5k
aXJlY3Q9J3knKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKHgpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBsZW4oeCkgPT0gMworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnVzZXMgbm8gZml4dHVyZSAneScqIiwKKyAg
ICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAorICAgIGRlZiB0ZXN0X3BhcmFt
ZXRyaXplX2luZGlyZWN0X3VzZXNfbm9fZml4dHVyZV9lcnJvcl9pbmRpcmVjdF9saXN0KHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9u
JykKKyAgICAgICAgICAgIGRlZiB4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtICogMworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
J3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PVsneSddKQorICAgICAgICAgICAgZGVmIHRl
c3Rfc2ltcGxlKHgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oeCkgPT0gMworICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25s
eSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAi
KnVzZXMgbm8gZml4dHVyZSAneScqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5p
c3N1ZTcxNAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2FyZ3VtZW50X25vdF9pbl9pbmRpcmVj
dF9saXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9J2Z1bmN0aW9uJykKKyAgICAgICAgICAgIGRlZiB4KHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0LnBhcmFtICogMworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PVsneCddKQorICAgICAg
ICAgICAgZGVmIHRlc3Rfc2ltcGxlKHgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oeCkg
PT0gMworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICAgICAiKnVzZXMgbm8gYXJndW1lbnQgJ3knKiIsCisgICAgICAgIF0pCisKKyAgICBk
ZWYgdGVzdF9hZGRjYWxsc19hbmRfcGFyYW1ldHJpemVfaW5kaXJlY3Qoc2VsZik6CisgICAgICAg
IGRlZiBmdW5jKHgsIHkpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNl
bGYuTWV0YWZ1bmMoZnVuYykKKyAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0iMTIzIikK
KyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoJ3gnLCBbMV0sIGluZGlyZWN0PVRydWUpCisg
ICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCd5JywgWzIsIDNdLCBpbmRpcmVjdD1UcnVlKQor
ICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykgPT0gMgorICAgICAgICBhc3NlcnQg
bWV0YWZ1bmMuX2NhbGxzWzBdLmZ1bmNhcmdzID09IHt9CisgICAgICAgIGFzc2VydCBtZXRhZnVu
Yy5fY2FsbHNbMV0uZnVuY2FyZ3MgPT0ge30KKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxs
c1swXS5wYXJhbXMgPT0gZGljdCh4PTEsIHk9MikKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9j
YWxsc1sxXS5wYXJhbXMgPT0gZGljdCh4PTEsIHk9MykKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCd4JywgWzEsMl0sIGluZGlyZWN0PVRydWUpCisgICAgICAgICAgICAgICAgbWV0YWZ1
bmMucGFyYW1ldHJpemUoJ3knLCBbMl0pCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiB4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
LnBhcmFtICogMTAKKworICAgICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKHgseSk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHggaW4gKDEwLDIwKQorICAgICAgICAgICAgICAgIGFzc2VydCB5ID09
IDIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYi
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0
ZXN0X3NpbXBsZSoxLTIqIiwKKyAgICAgICAgICAgICIqdGVzdF9zaW1wbGUqMi0yKiIsCisgICAg
ICAgICAgICAiKjIgcGFzc2VkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0
cml6ZV9vbmVhcmcoc2VsZik6CisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhsYW1i
ZGEgeDogTm9uZSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbMSwgMl0pCisg
ICAgICAgIGFzc2VydCBsZW4obWV0YWZ1bmMuX2NhbGxzKSA9PSAyCisgICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3MgPT0gZGljdCh4PTEpCisgICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMF0uaWQgPT0gIjEiCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2Fs
bHNbMV0uZnVuY2FyZ3MgPT0gZGljdCh4PTIpCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2Fs
bHNbMV0uaWQgPT0gIjIiCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9vbmVhcmdfaW5kaXJl
Y3Qoc2VsZik6CisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhsYW1iZGEgeDogTm9u
ZSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbMSwgMl0sIGluZGlyZWN0PVRy
dWUpCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09IGRpY3QoeD0x
KQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmlkID09ICIxIgorICAgICAgICBh
c3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLnBhcmFtcyA9PSBkaWN0KHg9MikKKyAgICAgICAgYXNz
ZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5pZCA9PSAiMiIKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX3R3b2FyZ3Moc2VsZik6CisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhsYW1i
ZGEgeCwgeTogTm9uZSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoKCJ4IiwgInkiKSwg
WygxLCAyKSwgKDMsIDQpXSkKKyAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09
IDIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSBkaWN0KHg9
MSwgeT0yKQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmlkID09ICIxLTIiCisg
ICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uZnVuY2FyZ3MgPT0gZGljdCh4PTMsIHk9
NCkKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5pZCA9PSAiMy00IgorCisgICAg
ZGVmIHRlc3RfcGFyYW1ldHJpemVfbXVsdGlwbGVfdGltZXMoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgieCIsIFsxLDJd
KQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyh4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MCwgeAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ5IiwgWzMsNF0pCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfbWV0aChzZWxmLCB4LCB5KToKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAsIHgKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICAgICAgcmVzdWx0
LmFzc2VydF9vdXRjb21lcyhmYWlsZWQ9NikKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX0NT
VihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ4LCB5LCIsIFsoMSwyKSwgKDIsMyldKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyh4LCB5
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCsxID09IHkKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2NsYXNzX3NjZW5hcmlv
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAjIHNhbWUgYXMgZG9jL2VuL2V4YW1wbGUvcGFyYW1ldHJpemUgc2NlbmFyaW8gZXhhbXBsZQor
ICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAg
IGlkbGlzdCA9IFtdCisgICAgICAgICAgICBhcmd2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZm9y
IHNjZW5hcmlvIGluIG1ldGFmdW5jLmNscy5zY2VuYXJpb3M6CisgICAgICAgICAgICAgICAgaWRs
aXN0LmFwcGVuZChzY2VuYXJpb1swXSkKKyAgICAgICAgICAgICAgICBpdGVtcyA9IHNjZW5hcmlv
WzFdLml0ZW1zKCkKKyAgICAgICAgICAgICAgICBhcmduYW1lcyA9IFt4WzBdIGZvciB4IGluIGl0
ZW1zXQorICAgICAgICAgICAgICAgIGFyZ3ZhbHVlcy5hcHBlbmQoKFt4WzFdIGZvciB4IGluIGl0
ZW1zXSkpCisgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFs
dWVzLCBpZHM9aWRsaXN0LCBzY29wZT0iY2xhc3MiKQorCisgICAgICAgIGNsYXNzIFRlc3Qob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgIHNjZW5hcmlvcyA9IFtbJzEnLCB7J2FyZyc6IHsxOiAyfSwg
ImFyZzIiOiAidmFsdWUyIn1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnMicsIHsn
YXJnJzondmFsdWUyJywgImFyZzIiOiAidmFsdWUyIn1dXQorCisgICAgICAgICAgICAgICBkZWYg
dGVzdF8xKHNlbGYsIGFyZywgYXJnMik6CisgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAg
ICAgICAgICAgIGRlZiB0ZXN0XzIoc2VsZiwgYXJnMiwgYXJnKToKKyAgICAgICAgICAgICAgICAg
IHBhc3MKKworICAgICAgICAgICAgICAgZGVmIHRlc3RfMyhzZWxmLCBhcmcsIGFyZzIpOgorICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKnRlc3RfMSox
KgorICAgICAgICAgICAgKnRlc3RfMioxKgorICAgICAgICAgICAgKnRlc3RfMyoxKgorICAgICAg
ICAgICAgKnRlc3RfMSoyKgorICAgICAgICAgICAgKnRlc3RfMioyKgorICAgICAgICAgICAgKnRl
c3RfMyoyKgorICAgICAgICAgICAgKjYgcGFzc2VkKgorICAgICAgICAiIiIpCisKKyAgICBkZWYg
dGVzdF9mb3JtYXRfYXJncyhzZWxmKToKKyAgICAgICAgZGVmIGZ1bmN0aW9uMSgpOgorICAgICAg
ICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZml4dHVyZXMuX2Zvcm1hdF9hcmdzKGZ1bmN0aW9u
MSkgPT0gJygpJworCisgICAgICAgIGRlZiBmdW5jdGlvbjIoYXJnMSk6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIGFzc2VydCBmaXh0dXJlcy5fZm9ybWF0X2FyZ3MoZnVuY3Rpb24yKSA9PSAi
KGFyZzEpIgorCisgICAgICAgIGRlZiBmdW5jdGlvbjMoYXJnMSwgYXJnMj0icXdlIik6CisgICAg
ICAgICAgICBwYXNzCisgICAgICAgIGFzc2VydCBmaXh0dXJlcy5fZm9ybWF0X2FyZ3MoZnVuY3Rp
b24zKSA9PSAiKGFyZzEsIGFyZzI9J3F3ZScpIgorCisgICAgICAgIGRlZiBmdW5jdGlvbjQoYXJn
MSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYXNzZXJ0IGZp
eHR1cmVzLl9mb3JtYXRfYXJncyhmdW5jdGlvbjQpID09ICIoYXJnMSwgKmFyZ3MsICoqa3dhcmdz
KSIKKworCitjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsKG9iamVjdCk6CisgICAgZGVmIHRl
c3RfYXR0cmlidXRlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgICMgYXNzdW1lcyB0aGF0IGdlbmVyYXRlL3Byb3ZpZGUgcnVu
cyBpbiB0aGUgc2FtZSBwcm9jZXNzCisgICAgICAgICAgICBpbXBvcnQgcHksIHB5dGVzdAorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAg
ICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT1tZXRhZnVuYykKKworICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgbWV0YWZ1bmMocmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHJlcXVlc3QuX3B5ZnVuY2l0ZW0uX2dlbmlkID09ICIwIgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKG1ldGFmdW5jLCBweXRlc3Rjb25maWcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5jb25maWcgPT0gcHl0ZXN0Y29uZmlnCisgICAgICAgICAgICAgICAgYXNzZXJ0IG1l
dGFmdW5jLm1vZHVsZS5fX25hbWVfXyA9PSBfX25hbWVfXworICAgICAgICAgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5mdW5jdGlvbiA9PSB0ZXN0X2Z1bmN0aW9uCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IG1ldGFmdW5jLmNscyBpcyBOb25lCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCBtZXRhZnVuYywg
cHl0ZXN0Y29uZmlnKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLmNvbmZp
ZyA9PSBweXRlc3Rjb25maWcKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLm1v
ZHVsZS5fX25hbWVfXyA9PSBfX25hbWVfXworICAgICAgICAgICAgICAgICAgICBpZiBweS5zdGQu
c3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuYm91
bmQgPSBUZXN0Q2xhc3MudGVzdF9tZXRob2QKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHVuYm91bmQgPSBUZXN0Q2xhc3MudGVzdF9tZXRob2QuaW1f
ZnVuYworICAgICAgICAgICAgICAgICAgICAjIFhYWCBhY3R1YWxseSBoYXZlIGFuIHVuYm91bmQg
dGVzdCBmdW5jdGlvbiBoZXJlPworICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMu
ZnVuY3Rpb24gPT0gdW5ib3VuZAorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMu
Y2xzID09IFRlc3RDbGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHAsICItdiIpCisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2Vk
PTIpCisKKyAgICBkZWYgdGVzdF9hZGRjYWxsX3dpdGhfdHdvX2Z1bmNhcmdzX2dlbmVyYXRvcnMo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAg
ICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0ICJhcmcxIiBpbiBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAgICAgICAgICAgICAg
ICBtZXRhZnVuYy5hZGRjYWxsKGZ1bmNhcmdzPWRpY3QoYXJnMT0xLCBhcmcyPTIpKQorICAgICAg
ICAiIiIpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRh
ZnVuYy5hZGRjYWxsKGZ1bmNhcmdzPWRpY3QoYXJnMT0xLCBhcmcyPTEpKQorCisgICAgICAgICAg
ICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9teWZ1
bmMoc2VsZiwgYXJnMSwgYXJnMik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcxID09
IGFyZzIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXYiLCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIip0ZXN0X215ZnVuYyowKlBBU1MqIiwKKyAgICAgICAgICAgICIqdGVzdF9teWZ1bmMqMSpG
QUlMKiIsCisgICAgICAgICAgICAiKjEgZmFpbGVkLCAxIHBhc3NlZCoiCisgICAgICAgIF0pCisK
KyAgICBkZWYgdGVzdF90d29fZnVuY3Rpb25zKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90
ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0x
MCkKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHBhcmFtPTIwKQorCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKGFyZzEpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBhcmcxID09IDEwCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMihhcmcxKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgYXJnMSBpbiAoMTAsIDIwKQorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHApCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfZnVuYzEqMCpQQVNTKiIs
CisgICAgICAgICAgICAiKnRlc3RfZnVuYzEqMSpGQUlMKiIsCisgICAgICAgICAgICAiKnRlc3Rf
ZnVuYzIqUEFTUyoiLAorICAgICAgICAgICAgIioxIGZhaWxlZCwgMyBwYXNzZWQqIgorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3Rfbm9zZWxmX2luX21ldGhvZChzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIGFzc2VydCAneHl6JyBu
b3QgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RIZWxs
byhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHh5eik6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQor
CisgICAgZGVmIHRlc3RfZ2VuZXJhdGVfcGx1Z2luX2FuZF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVz
dF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJhcmcx
IiBpbiBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRj
YWxsKGlkPSJ3b3JsZCIsIHBhcmFtPSgyLDEwMCkpCisgICAgICAgICIiIikKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVf
dGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09
KDEsMSksIGlkPSJoZWxsbyIpCisKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW1bMF0KKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QucGFyYW1bMV0KKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbXlmdW5jKHNlbGYsIGFyZzEsIGFyZzIp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSBhcmcyCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9teWZ1bmMqaGVs
bG8qUEFTUyoiLAorICAgICAgICAgICAgIip0ZXN0X215ZnVuYyp3b3JsZCpGQUlMKiIsCisgICAg
ICAgICAgICAiKjEgZmFpbGVkLCAxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVz
dF9nZW5lcmF0ZV90ZXN0c19pbl9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3Qp
OgorICAgICAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMoc2VsZiwgbWV0YWZ1
bmMpOgorICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGZ1bmNhcmdzPXsnaGVs
bG8nOiAnd29ybGQnfSwgaWQ9ImhlbGxvIikKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X215
ZnVuYyhzZWxmLCBoZWxsbyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBoZWxsbyA9PSAi
d29ybGQiCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii12IiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqdGVzdF9teWZ1bmMqaGVsbG8qUEFTUyoiLAorICAgICAgICAgICAgIioxIHBhc3NlZCoi
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90d29fZnVuY3Rpb25zX25vdF9zYW1lX2luc3Rh
bmNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAg
ICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbCh7J2FyZzEnOiAxMH0pCisgICAgICAgICAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbCh7J2FyZzEnOiAyMH0pCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RD
bGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZiwgYXJnMSk6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAneCcpCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYueCA9IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2Z1bmMqMCpQQVNTKiIsCisgICAgICAgICAg
ICAiKnRlc3RfZnVuYyoxKlBBU1MqIiwKKyAgICAgICAgICAgICIqMiBwYXNzKiIsCisgICAgICAg
IF0pCisKKyAgICBkZWYgdGVzdF9pc3N1ZTI4X3NldHVwX21ldGhvZF9pbl9nZW5lcmF0ZV90ZXN0
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAg
ICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydhcmcxJzogMX0pCisKKyAgICAgICAgICAgIGNsYXNz
IFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxm
LCBhcmcxKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gc2VsZi52YWwKKyAg
ICAgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIGZ1bmMpOgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnZhbCA9IDEKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNz
ZWQ9MSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Z1bmN0aW9uYWwyKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5w
YXJhbWV0cml6ZSgiYXJnMSIsIFsxLDJdKQorICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCJhcmcyIiwgWzQsNV0pCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhhcmcxLCBh
cmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMCwgKGFyZzEsIGFyZzIpCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiooMSwgNCkqIiwKKyAgICAgICAg
ICAgICIqKDEsIDUpKiIsCisgICAgICAgICAgICAiKigyLCA0KSoiLAorICAgICAgICAgICAgIioo
MiwgNSkqIiwKKyAgICAgICAgICAgICIqNCBmYWlsZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX2FuZF9pbm5lcl9nZXRmaXh0dXJldmFsdWUoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgiYXJnMSIsIFsxXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAgICAgICAgICAg
ICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiYXJnMiIsIFsxMF0sIGluZGlyZWN0PVRydWUpCisKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgeCA9IHJlcXVlc3Qu
Z2V0Zml4dHVyZXZhbHVlKCJhcmcyIikKKyAgICAgICAgICAgICAgICByZXR1cm4geCArIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
YXJnMihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShhcmcxLCBhcmcyKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgYXJnMSA9PSAxMQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItdiIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKnRlc3RfZnVuYzEqMSpQQVNTKiIsCisgICAgICAgICAgICAiKjEgcGFz
c2VkKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX29uX3NldHVwX2Fy
ZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAiYXJnMSIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzCisgICAgICAgICAg
ICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImFyZzEiLCBbMV0sIGluZGlyZWN0PVRydWUpCisK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBk
ZWYgYXJnMihyZXF1ZXN0LCBhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMTAgKiBhcmcx
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoYXJnMik6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGFyZzIgPT0gMTAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXYiLCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIip0ZXN0X2Z1bmMqMSpQQVNTKiIsCisgICAgICAgICAgICAiKjEgcGFzc2Vk
KiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3dpdGhfaWRzKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0
ZXN0XQorICAgICAgICAgICAgY29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYworICAgICAgICAi
IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgor
ICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCgiYSIsICJiIiksIFsoMSwxKSwg
KDEsMildLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkcz1bImJhc2lj
IiwgImFkdmFuY2VkIl0pCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGEsIGIpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCBhID09IGIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAxCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lc19yYW5kb20oWworICAgICAg
ICAgICAgIip0ZXN0X2Z1bmN0aW9uKmJhc2ljKlBBU1NFRCIsCisgICAgICAgICAgICAiKnRlc3Rf
ZnVuY3Rpb24qYWR2YW5jZWQqRkFJTEVEIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3Bh
cmFtZXRyaXplX3dpdGhvdXRfaWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgoImEiLCAiYiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsoMSxvYmplY3QoKSksICgxLjMsb2JqZWN0KCkpXSkKKworICAgICAgICAgICAgZGVm
IHRlc3RfZnVuY3Rpb24oYSwgYik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqdGVzdF9mdW5jdGlv
bioxLWIwKgorICAgICAgICAgICAgKnRlc3RfZnVuY3Rpb24qMS4zLWIxKgorICAgICAgICAiIiIp
CisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV93aXRoX05vbmVfaW5faWRzKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToK
KyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgoImEiLCAiYiIpLCBbKDEsMSks
ICgxLDEpLCAoMSwyKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRz
PVsiYmFzaWMiLCBOb25lLCAiYWR2YW5jZWQiXSkKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oYSwgYik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYgorICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0ID09IDEKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzX3Jh
bmRvbShbCisgICAgICAgICAgICAiKnRlc3RfZnVuY3Rpb24qYmFzaWMqUEFTU0VEKiIsCisgICAg
ICAgICAgICAiKnRlc3RfZnVuY3Rpb24qMS0xKlBBU1NFRCoiLAorICAgICAgICAgICAgIip0ZXN0
X2Z1bmN0aW9uKmFkdmFuY2VkKkZBSUxFRCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rf
Zml4dHVyZV9wYXJhbWV0cml6ZWRfZW1wdHlfaWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAi
IiJGaXh0dXJlcyBwYXJhbWV0cml6ZWQgd2l0aCBlbXB0eSBpZHMgY2F1c2UgYW4gaW50ZXJuYWwg
ZXJyb3IgKCMxODQ5KS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
Im1vZHVsZSIsIGlkcz1bXSwgcGFyYW1zPVtdKQorICAgICAgICAgICAgZGVmIHRlbXAocmVxdWVz
dCk6CisgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBk
ZWYgdGVzdF90ZW1wKHRlbXApOgorICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICcnJykK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWycqIDEgc2tpcHBlZCAqJ10pCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZWRfZW1wdHlfaWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0cyBwYXJh
bWV0cml6ZWQgd2l0aCBlbXB0eSBpZHMgY2F1c2UgYW4gaW50ZXJuYWwgZXJyb3IgKCMxODQ5KS4i
IiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3RlbXAnLCBbXSwg
aWRzPWxpc3QoKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3RlbXAodGVtcCk6CisgICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyogMSBza2lwcGVk
IConXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplZF9pZHNfaW52YWxpZF90eXBlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0cyBwYXJhbWV0cml6ZWQgd2l0aCBpZHMgYXMgbm9u
LXN0cmluZ3MgKCMxODU3KS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoIngsIGV4cGVjdGVkIiwgWygxMCwgMjApLCAoNDAsIDgwKV0sIGlkcz0oTm9uZSwgMikp
CisgICAgICAgICAgICBkZWYgdGVzdF9pZHNfbnVtYmVycyh4LGV4cGVjdGVkKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgeCAqIDIgPT0gZXhwZWN0ZWQKKyAgICAgICAgJycnKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbJyppZHMgbXVzdCBiZSBsaXN0IG9mIHN0cmluZ3MsIGZvdW5kOiAyICh0eXBlOiBp
bnQpKiddKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF9pZGVudGljYWxfaWRzX2dl
dF91bmlxdWVfbmFtZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCgiYSIsICJiIiksIFsoMSwxKSwgKDEsMildLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlkcz1bImEiLCAiYSJdKQorCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jdGlvbihhLCBiKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSBiCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXNf
cmFuZG9tKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5jdGlvbiphMCpQQVNTRUQqIiwKKyAgICAg
ICAgICAgICIqdGVzdF9mdW5jdGlvbiphMSpGQUlMRUQqIgorICAgICAgICBdKQorCisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgic2NvcGUiLCAibGVuZ3RoIiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsoIm1vZHVsZSIsIDIpLCAoImZ1bmN0aW9uIiwgNCldKQorICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX3Njb3BlX292ZXJyaWRlcyhzZWxmLCB0ZXN0ZGlyLCBzY29wZSwg
bGVuZ3RoKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBweXRl
c3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIGlmICJhcmciIGlu
IG1ldGFmdW5jLmZ1bmNhcmduYW1lczoKKyAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFy
YW1ldHJpemUoImFyZyIsIFsxLDJdLCBpbmRpcmVjdD1UcnVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzY29wZT0lcikKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKHJlcXVlc3QucGFyYW0pCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGFyZyk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGFyZyBpbiAoMSwyKQorICAgICAgICAgICAgZGVmIHRlc3Rfd29ybGQoYXJnKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgYXJnIGluICgxLDIpCisgICAgICAgICAgICBkZWYgdGVzdF9j
aGVja2xlbmd0aCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAlZAor
ICAgICAgICAiIiIgJSAoc2NvcGUsIGxlbmd0aCkpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD01KQorCisg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaXNzdWUzMjMoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnLCBwYXJhbXM9cmFuZ2UoOTY2
KSkKKyAgICAgICAgICAgIGRlZiBmb28ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfaXQoZm9vKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9pdDIoZm9vKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIGFzc2VydCBub3QgcmVwcmVjLmdldGNhbGxz
KCJweXRlc3RfaW50ZXJuYWxlcnJvciIpCisKKyAgICBkZWYgdGVzdF91c2VmaXh0dXJlc19zZWVu
X2luX2dlbmVyYXRlX3Rlc3RzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgImFi
YyIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzCisgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFy
YW1ldHJpemUoImFiYyIsIFsxXSkKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1
cmVzKCJhYmMiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICByZXByZWMuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQorCisgICAgZGVm
IHRlc3RfZ2VuZXJhdGVfdGVzdHNfb25seV9kb25lX2luX3N1YmRpcihzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3ViMSIpCisgICAgICAgIHN1YjIgPSB0
ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQorICAgICAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMu
ZnVuY3Rpb24uX19uYW1lX18gPT0gInRlc3RfMSIKKyAgICAgICAgIiIiKSkKKyAgICAgICAgc3Vi
Mi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0XzIiCisgICAg
ICAgICIiIikpCisgICAgICAgIHN1YjEuam9pbigidGVzdF9pbl9zdWIxLnB5Iikud3JpdGUoImRl
ZiB0ZXN0XzEoKTogcGFzcyIpCisgICAgICAgIHN1YjIuam9pbigidGVzdF9pbl9zdWIyLnB5Iiku
d3JpdGUoImRlZiB0ZXN0XzIoKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItLWtlZXAtZHVwbGljYXRlcyIsICItdiIsICItcyIsIHN1YjEsIHN1YjIsIHN1YjEp
CisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTMpCisKKyAgICBkZWYgdGVz
dF9nZW5lcmF0ZV9zYW1lX2Z1bmN0aW9uX25hbWVzX2lzc3VlNDAzKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIGRlZiBtYWtlX3Rlc3RzKCk6CisgICAgICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJ4IiwgcmFuZ2UoMikpCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZm9vKHgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRlc3RfZm9vCisKKyAgICAgICAgICAgIHRlc3RfeCA9IG1ha2VfdGVzdHMoKQorICAgICAg
ICAgICAgdGVzdF95ID0gbWFrZV90ZXN0cygpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXByZWMuYXNzZXJ0X291dGNvbWVzKHBh
c3NlZD00KQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNDYzCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdhdHRyJywgWydwYXJhbWV0cmlzZScsICdwYXJhbWV0ZXJpemUnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyYW1ldGVyaXNlJ10pCisgICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfbWlzc3BlbGxpbmcoc2VsZiwgdGVzdGRpciwgYXR0cik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnswfSgieCIsIHJhbmdlKDIpKQorICAgICAgICAgICAg
ZGVmIHRlc3RfZm9vKHgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiLmZvcm1h
dChhdHRyKSkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCctLWNvbGxlY3Rv
bmx5JykKKyAgICAgICAgZmFpbHVyZXMgPSByZXByZWMuZ2V0ZmFpbHVyZXMoKQorICAgICAgICBh
c3NlcnQgbGVuKGZhaWx1cmVzKSA9PSAxCisgICAgICAgIGV4cGVjdGVkZXJyb3IgPSAiTWFya2Vy
RXJyb3I6IHRlc3RfZm9vIGhhcyAnezB9Jywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6
ZSciLmZvcm1hdChhdHRyKQorICAgICAgICBhc3NlcnQgZXhwZWN0ZWRlcnJvciBpbiBmYWlsdXJl
c1swXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorCisKK2NsYXNzIFRlc3RNZXRhZnVuY0Z1
bmN0aW9uYWxBdXRvKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgcmVsYXRlZCB0byBhdXRv
bWF0aWNhbGx5IGZpbmQgb3V0IHRoZSBjb3JyZWN0IHNjb3BlIGZvciBwYXJhbWV0cml6ZWQgdGVz
dHMgKCMxODMyKS4KKyAgICAiIiIKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2F1dG9fc2Nv
cGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSdzZXNzaW9uJywgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGZpeHR1cmUoKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ2FuaW1hbCcsIFsiZG9nIiwgImNhdCJdKQorICAgICAgICAgICAgZGVmIHRlc3RfMShh
bmltYWwpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhbmltYWwgaW4gKCdkb2cnLCAnY2F0JykK
KworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhbmltYWwnLCBbJ2Zpc2gn
XSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYW5pbWFsKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgYW5pbWFsID09ICdmaXNoJworCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycq
IDMgcGFzc2VkIConXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2F1dG9fc2NvcGVfaW5k
aXJlY3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdzZXNzaW9uJykKKyAgICAgICAgICAgIGRlZiBlY2hvKHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnYW5pbWFsLCBlY2hvJywgWygiZG9nIiwgMSksICgiY2F0IiwgMildLCBpbmRp
cmVjdD1bJ2VjaG8nXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYW5pbWFsLCBlY2hvKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgYW5pbWFsIGluICgnZG9nJywgJ2NhdCcpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGVjaG8gaW4gKDEsIDIsIDMpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnYW5pbWFsLCBlY2hvJywgWygnZmlzaCcsIDMpXSwgaW5kaXJlY3Q9Wydl
Y2hvJ10pCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFuaW1hbCwgZWNobyk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGFuaW1hbCA9PSAnZmlzaCcKKyAgICAgICAgICAgICAgICBhc3NlcnQgZWNo
byBpbiAoMSwgMiwgMykKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyogMyBwYXNz
ZWQgKiddKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYXV0b19zY29wZV9vdmVycmlkZV9m
aXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nc2Vzc2lvbicsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBhbmltYWwoKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gJ2ZveCcKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCdhbmltYWwnLCBbImRvZyIsICJjYXQiXSkKKyAgICAgICAgICAgIGRlZiB0
ZXN0XzEoYW5pbWFsKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYW5pbWFsIGluICgnZG9nJywg
J2NhdCcpCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqIDIgcGFzc2VkIConXSkK
KworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2FsbF9pbmRpcmVjdHMoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBhbmlt
YWwocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKKyAgICAgICAgICAgIGRl
ZiBlY2hvKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYW5pbWFsLCBlY2hvJywgWygi
ZG9nIiwgMSksICgiY2F0IiwgMildLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICAgICAgZGVmIHRl
c3RfMShhbmltYWwsIGVjaG8pOgorICAgICAgICAgICAgICAgIGFzc2VydCBhbmltYWwgaW4gKCdk
b2cnLCAnY2F0JykKKyAgICAgICAgICAgICAgICBhc3NlcnQgZWNobyBpbiAoMSwgMiwgMykKKwor
ICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhbmltYWwsIGVjaG8nLCBbKCJm
aXNoIiwgMyldLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhbmltYWws
IGVjaG8pOgorICAgICAgICAgICAgICAgIGFzc2VydCBhbmltYWwgPT0gJ2Zpc2gnCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGVjaG8gaW4gKDEsIDIsIDMpCisgICAgICAgICcnJykKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWycqIDMgcGFzc2VkIConXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lz
c3VlNjM0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nbW9kdWxlJykKKyAgICAgICAgICAgIGRlZiBmb28ocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcHJpbnQoJ3ByZXBhcmluZyBmb28tJWQnICUgcmVxdWVzdC5wYXJhbSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gJ2Zvby0lZCcgJSByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X29uZShmb28pOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVm
IHRlc3RfdHdvKGZvbyk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICB0ZXN0
X3R3by50ZXN0X3dpdGggPSAoMiwgMykKKworICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0
ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgcGFyYW1zID0gKDEsIDIsIDMsIDQp
CisgICAgICAgICAgICAgICAgaWYgbm90ICdmb28nIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgICAgICB0ZXN0X3dpdGgg
PSBnZXRhdHRyKG1ldGFmdW5jLmZ1bmN0aW9uLCAndGVzdF93aXRoJywgTm9uZSkKKyAgICAgICAg
ICAgICAgICBpZiB0ZXN0X3dpdGg6CisgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHRlc3Rf
d2l0aAorICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCdmb28nLCBwYXJhbXMs
IGluZGlyZWN0PVRydWUpCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi1zIikKKyAgICAgICAgb3V0cHV0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAg
ICAgICBhc3NlcnQgb3V0cHV0LmNvdW50KCdwcmVwYXJpbmcgZm9vLTInKSA9PSAxCisgICAgICAg
IGFzc2VydCBvdXRwdXQuY291bnQoJ3ByZXBhcmluZyBmb28tMycpID09IDEKKworCitAcHl0ZXN0
Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2lnbm9yZTpBcHBseWluZyBtYXJrcyBkaXJlY3RseSB0byBw
YXJhbWV0ZXJzJykKK0BweXRlc3QubWFyay5pc3N1ZTMwOAorY2xhc3MgVGVzdE1hcmtlcnNXaXRo
UGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9zaW1wbGVfbWFyayhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuZm9vCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAoMSwgMiks
CisgICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuYmFyKCgxLCAzKSksCisgICAgICAgICAgICAg
ICAgKDIsIDMpLAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVu
dChuLCBleHBlY3RlZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVk
CisgICAgICAgICIiIgorICAgICAgICBpdGVtcyA9IHRlc3RkaXIuZ2V0aXRlbXMocykKKyAgICAg
ICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMworICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAg
ICAgICAgICAgIGFzc2VydCAnZm9vJyBpbiBpdGVtLmtleXdvcmRzCisgICAgICAgIGFzc2VydCAn
YmFyJyBub3QgaW4gaXRlbXNbMF0ua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICdiYXInIGluIGl0
ZW1zWzFdLmtleXdvcmRzCisgICAgICAgIGFzc2VydCAnYmFyJyBub3QgaW4gaXRlbXNbMl0ua2V5
d29yZHMKKworICAgIGRlZiB0ZXN0X3NlbGVjdF9iYXNlZF9vbl9tYXJrKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBzID0gIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgWworICAgICAg
ICAgICAgICAgICgxLCAyKSwKKyAgICAgICAgICAgICAgICBweXRlc3QubWFyay5mb28oKDIsIDMp
KSwKKyAgICAgICAgICAgICAgICAoMywgNCksCisgICAgICAgICAgICBdKQorICAgICAgICAgICAg
ZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
biArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZShzKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1tIiwgJ2ZvbycpCisgICAg
ICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbCA9IHJlYy5saXN0b3V0Y29tZXMoKQorICAgICAgICBh
c3NlcnQgbGVuKHBhc3NlZCkgPT0gMQorICAgICAgICBhc3NlcnQgbGVuKHNraXBwZWQpID09IDAK
KyAgICAgICAgYXNzZXJ0IGxlbihmYWlsKSA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwo
cmVhc29uPSJpcyB0aGlzIGltcG9ydGFudCB0byBzdXBwb3J0Pz8iKQorICAgIGRlZiB0ZXN0X25l
c3RlZF9tYXJrcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgbWFzdGVybWFyayA9IHB5dGVzdC5tYXJrLmZvbyhw
eXRlc3QubWFyay5iYXIpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgo
Im4iLCAiZXhwZWN0ZWQiKSwgWworICAgICAgICAgICAgICAgICgxLCAyKSwKKyAgICAgICAgICAg
ICAgICBtYXN0ZXJtYXJrKCgxLCAzKSksCisgICAgICAgICAgICAgICAgKDIsIDMpLAorICAgICAg
ICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAgICIiIgorICAg
ICAgICBpdGVtcyA9IHRlc3RkaXIuZ2V0aXRlbXMocykKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVt
cykgPT0gMworICAgICAgICBmb3IgbWFyayBpbiBbJ2ZvbycsICdiYXInXToKKyAgICAgICAgICAg
IGFzc2VydCBtYXJrIG5vdCBpbiBpdGVtc1swXS5rZXl3b3JkcworICAgICAgICAgICAgYXNzZXJ0
IG1hcmsgaW4gaXRlbXNbMV0ua2V5d29yZHMKKyAgICAgICAgICAgIGFzc2VydCBtYXJrIG5vdCBp
biBpdGVtc1syXS5rZXl3b3JkcworCisgICAgZGVmIHRlc3Rfc2ltcGxlX3hmYWlsKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBzID0gIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgWwor
ICAgICAgICAgICAgICAgICgxLCAyKSwKKyAgICAgICAgICAgICAgICBweXRlc3QubWFyay54ZmFp
bCgoMSwgMykpLAorICAgICAgICAgICAgICAgICgyLCAzKSwKKyAgICAgICAgICAgIF0pCisgICAg
ICAgICAgICBkZWYgdGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBuICsgMSA9PSBleHBlY3RlZAorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKHMpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAg
ICAgICMgeGZhaWwgaXMgc2tpcD8/CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0yLCBza2lwcGVkPTEpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfeGZhaWxfc2luZ2xlX2FyZ25h
bWUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuIiwgWworICAg
ICAgICAgICAgICAgIDIsCisgICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoMyksCisg
ICAgICAgICAgICAgICAgNCwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYgdGVzdF9p
c0V2ZW4obik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4gJSAyID09IDAKKyAgICAgICAgIiIi
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tp
cHBlZD0xKQorCisgICAgZGVmIHRlc3RfeGZhaWxfd2l0aF9hcmcoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisgICAgICAgICAg
ICAgICAgKDEsIDIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKCJUcnVlIiko
KDEsIDMpKSwKKyAgICAgICAgICAgICAgICAoMiwgMyksCisgICAgICAgICAgICBdKQorICAgICAg
ICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tpcHBlZD0xKQorCisgICAgZGVmIHRl
c3RfeGZhaWxfd2l0aF9rd2FyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAoMSwgMiksCisgICAg
ICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJzb21lIGJ1ZyIpKCgxLCAzKSks
CisgICAgICAgICAgICAgICAgKDIsIDMpLAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4g
KyAxID09IGV4cGVjdGVkCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
cykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3hmYWls
X3dpdGhfYXJnX2FuZF9rd2FyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAoMSwgMiksCisgICAg
ICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoIlRydWUiLCByZWFzb249InNvbWUgYnVnIiko
KDEsIDMpKSwKKyAgICAgICAgICAgICAgICAoMiwgMyksCisgICAgICAgICAgICBdKQorICAgICAg
ICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tpcHBlZD0xKQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCdzdHJpY3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0
X3hmYWlsX3Bhc3NpbmdfaXNfeHBhc3Moc2VsZiwgdGVzdGRpciwgc3RyaWN0KToKKyAgICAgICAg
cyA9ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAo
MSwgMiksCisgICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52ZXJzaW9uX2lu
Zm8gPiAoMCwgMCwgMCkiLCByZWFzb249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJpY3R9KSgoMiwg
MykpLAorICAgICAgICAgICAgICAgICgzLCA0KSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAg
ICBkZWYgdGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBuICsgMSA9PSBleHBlY3RlZAorICAgICAgICAiIiIuZm9ybWF0KHN0cmljdD1zdHJpY3QpCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oKQorICAgICAgICBwYXNzZWQsIGZhaWxlZCA9ICgyLCAxKSBpZiBzdHJpY3QgZWxz
ZSAoMywgMCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPXBhc3NlZCwgZmFp
bGVkPWZhaWxlZCkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2NhbGxlZF9pbl9nZW5lcmF0
ZV90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0
YWZ1bmMpOgorICAgICAgICAgICAgICAgIHBhc3NpbmdUZXN0RGF0YSA9IFsoMSwgMiksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgyLCAzKV0KKyAgICAgICAgICAgICAgICBm
YWlsaW5nVGVzdERhdGEgPSBbKDEsIDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoMiwgMildCisKKyAgICAgICAgICAgICAgICB0ZXN0RGF0YSA9IHBhc3NpbmdUZXN0RGF0
YSArIFtweXRlc3QubWFyay54ZmFpbChkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciBkIGluIGZhaWxpbmdUZXN0RGF0YV0KKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5w
YXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgdGVzdERhdGEpCisKKworICAgICAgICAgICAg
ZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
biArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tpcHBlZD0yKQorCisgICAgQHB5dGVzdC5tYXJr
Lmlzc3VlMjkwCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfSURfZ2VuZXJhdGlvbl9zdHJpbmdf
aW50X3dvcmtzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIG15Zml4dHVyZSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAn
ZXhhbXBsZScKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAg
ICAgICAgICAnbGltaXQnLCAoMCwgJzAnKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xpbWl0KGxp
bWl0LCBteWZpeHR1cmUpOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAiIiIpCisg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3Nl
cnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzdHJp
Y3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX21hcmtlZF92YWx1
ZShzZWxmLCB0ZXN0ZGlyLCBzdHJpY3QpOgorICAgICAgICBzID0gIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4i
LCAiZXhwZWN0ZWQiKSwgWworICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgKKyAgICAgICAg
ICAgICAgICAgICAgMiwzLAorICAgICAgICAgICAgICAgICAgICBtYXJrcz1weXRlc3QubWFyay54
ZmFpbCgic3lzLnZlcnNpb25faW5mbyA+ICgwLCAwLCAwKSIsIHJlYXNvbj0ic29tZSBidWciLCBz
dHJpY3Q9e3N0cmljdH0pLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgcHl0
ZXN0LnBhcmFtKAorICAgICAgICAgICAgICAgICAgICAyLDMsCisgICAgICAgICAgICAgICAgICAg
IG1hcmtzPVtweXRlc3QubWFyay54ZmFpbCgic3lzLnZlcnNpb25faW5mbyA+ICgwLCAwLCAwKSIs
IHJlYXNvbj0ic29tZSBidWciLCBzdHJpY3Q9e3N0cmljdH0pXSwKKyAgICAgICAgICAgICAgICAp
LAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBl
Y3RlZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAg
ICIiIi5mb3JtYXQoc3RyaWN0PXN0cmljdCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHMp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHBhc3NlZCwg
ZmFpbGVkID0gKDAsIDIpIGlmIHN0cmljdCBlbHNlICgyLCAwKQorICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9cGFzc2VkLCBmYWlsZWQ9ZmFpbGVkKQorCisgICAgZGVmIHRlc3Rf
cHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9tYWtlX3BhcmFtZXRy
aXplX2lkKGNvbmZpZywgdmFsKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHZhbCAqIDIp
CisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgieCIsIHJhbmdlKDIpKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoeCk6
CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfZnVuYyowKlBBU1MqIiwKKyAgICAg
ICAgICAgICIqdGVzdF9mdW5jKjIqUEFTUyoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rf
cHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWRfd2l0aF9hcmduYW1lKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
bWFrZV9wYXJhbWV0cml6ZV9pZChjb25maWcsIHZhbCwgYXJnbmFtZSk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0cih2YWwgKiAyIGlmIGFyZ25hbWUgPT0gJ3gnIGVsc2UgdmFsICogMTApCisg
ICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgieCIsIHJhbmdlKDIpKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmNfYSh4KToK
KyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJ5IiwgWzFdKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmNfYih5
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5jX2EqMCpQQVNTKiIsCisg
ICAgICAgICAgICAiKnRlc3RfZnVuY19hKjIqUEFTUyoiLAorICAgICAgICAgICAgIip0ZXN0X2Z1
bmNfYioxMCpQQVNTKiIsCisgICAgICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi9yYWlzZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9yYWlzZXMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzIxZWUzNDllZTYwYmRjNWJjZjlmZTI4ODY0MzlmMWZhZTFkZTE0OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3JhaXNlcy5weQpA
QCAtMCwwICsxLDEzNCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cworCisKK2NsYXNzIFRl
c3RSYWlzZXMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9yYWlzZXMoc2VsZik6CisgICAgICAgIHNv
dXJjZSA9ICJpbnQoJ3F3ZScpIgorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yLCBzb3VyY2UpCisgICAgICAgIGNvZGUgPSBleGNpbmZvLnRyYWNlYmFja1stMV0uZnJh
bWUuY29kZQorICAgICAgICBzID0gc3RyKGNvZGUuZnVsbHNvdXJjZSkKKyAgICAgICAgYXNzZXJ0
IHMgPT0gc291cmNlCisKKyAgICBkZWYgdGVzdF9yYWlzZXNfZXhlYyhzZWxmKToKKyAgICAgICAg
cHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAiYSx4ID0gW10iKQorCisgICAgZGVmIHRlc3RfcmFp
c2VzX3N5bnRheF9lcnJvcihzZWxmKToKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJv
ciwgInF3ZSBxd2UgcXdlIikKKworICAgIGRlZiB0ZXN0X3JhaXNlc19mdW5jdGlvbihzZWxmKToK
KyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBpbnQsICdoZWxsbycpCisKKyAgICBk
ZWYgdGVzdF9yYWlzZXNfY2FsbGFibGVfbm9fZXhjZXB0aW9uKHNlbGYpOgorICAgICAgICBjbGFz
cyBBKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZik6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICB0cnk6CisgICAgICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsIEEoKSkKKyAgICAgICAgZXhjZXB0IHB5dGVzdC5yYWlzZXMuRXhjZXB0aW9uOgorICAg
ICAgICAgICAgcGFzcworCisgICAgZGVmIHRlc3RfcmFpc2VzX2FzX2NvbnRleHRtYW5hZ2VyKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CisgICAgICAgICAgICBpbXBv
cnQgcHksIHB5dGVzdAorICAgICAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKKworICAgICAg
ICAgICAgZGVmIHRlc3Rfc2ltcGxlKCk6CisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKFplcm9EaXZpc2lvbkVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShleGNpbmZvLCBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8pCisg
ICAgICAgICAgICAgICAgICAgIDEvMAorICAgICAgICAgICAgICAgIHByaW50IChleGNpbmZvKQor
ICAgICAgICAgICAgICAgIGFzc2VydCBleGNpbmZvLnR5cGUgPT0gWmVyb0RpdmlzaW9uRXJyb3IK
KyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVlLCBaZXJvRGl2
aXNpb25FcnJvcikKKworICAgICAgICAgICAgZGVmIHRlc3Rfbm9yYWlzZSgpOgorICAgICAgICAg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QucmFpc2VzLkV4Y2VwdGlvbik6CisgICAg
ICAgICAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCgpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3JhaXNlX3dy
b25nX2V4Y2VwdGlvbl9wYXNzZXNfYnkoKToKKyAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAxLzAKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKjMgcGFzc2VkKics
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9ub2NsYXNzKHNlbGYpOgorICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoJ3dy
b25nJywgbGFtYmRhOiBOb25lKQorCisgICAgZGVmIHRlc3RfdHVwbGUoc2VsZik6CisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcygoS2V5RXJyb3IsIFZhbHVlRXJyb3IpKToKKyAgICAgICAgICAg
IHJhaXNlIEtleUVycm9yKCdvb3BzJykKKworICAgIGRlZiB0ZXN0X25vX3JhaXNlX21lc3NhZ2Uo
c2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgaW50LCAnMCcpCisgICAgICAgIGV4Y2VwdCBweXRlc3QucmFpc2VzLkV4Y2VwdGlvbiBhcyBl
OgorICAgICAgICAgICAgYXNzZXJ0IGUubXNnID09ICJESUQgTk9UIFJBSVNFIHswfSIuZm9ybWF0
KHJlcHIoVmFsdWVFcnJvcikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgRmFs
c2UsICJFeHBlY3RlZCBweXRlc3QucmFpc2VzLkV4Y2VwdGlvbiIKKworICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICBleGNlcHQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb24gYXMgZToKKyAg
ICAgICAgICAgIGFzc2VydCBlLm1zZyA9PSAiRElEIE5PVCBSQUlTRSB7MH0iLmZvcm1hdChyZXBy
KFZhbHVlRXJyb3IpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAi
RXhwZWN0ZWQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb24iCisKKyAgICBkZWYgdGVzdF9jdXN0b21f
cmFpc2VfbWVzc2FnZShzZWxmKToKKyAgICAgICAgbWVzc2FnZSA9ICJURVNUX01FU1NBR0UiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBt
ZXNzYWdlPW1lc3NhZ2UpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXhjZXB0IHB5
dGVzdC5yYWlzZXMuRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBhc3NlcnQgZS5tc2cgPT0g
bWVzc2FnZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiRXhwZWN0
ZWQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb24iCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoJ21ldGhvZCcsIFsnZnVuY3Rpb24nLCAnd2l0aCddKQorICAgIGRlZiB0ZXN0X3JhaXNlc19j
eWNsaWNfcmVmZXJlbmNlKHNlbGYsIG1ldGhvZCk6CisgICAgICAgICIiIgorICAgICAgICBFbnN1
cmUgcHl0ZXN0LnJhaXNlcyBkb2VzIG5vdCBsZWF2ZSBhIHJlZmVyZW5jZSBjeWNsZSAoIzE5NjUp
LgorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IGdjCisKKyAgICAgICAgY2xhc3MgVChvYmpl
Y3QpOgorICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IKKworICAgICAgICB0ID0gVCgpCisgICAgICAgIGlmIG1ldGhvZCA9PSAn
ZnVuY3Rpb24nOgorICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCB0KQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgor
ICAgICAgICAgICAgICAgIHQoKQorCisgICAgICAgICMgZW5zdXJlIGJvdGggZm9ybXMgb2YgcHl0
ZXN0LnJhaXNlcyBkb24ndCBsZWF2ZSBleGNlcHRpb25zIGluIHN5cy5leGNfaW5mbygpCisgICAg
ICAgIGFzc2VydCBzeXMuZXhjX2luZm8oKSA9PSAoTm9uZSwgTm9uZSwgTm9uZSkKKworICAgICAg
ICBkZWwgdAorCisgICAgICAgICMgZW5zdXJlIHRoZSB0IGluc3RhbmNlIGlzIG5vdCBzdHVjayBp
biBhIGN5Y2xpYyByZWZlcmVuY2UKKyAgICAgICAgZm9yIG8gaW4gZ2MuZ2V0X29iamVjdHMoKToK
KyAgICAgICAgICAgIGFzc2VydCB0eXBlKG8pIGlzIG5vdCBUCisKKyAgICBkZWYgdGVzdF9yYWlz
ZXNfbWF0Y2goc2VsZik6CisgICAgICAgIG1zZyA9IHIid2l0aCBiYXNlIFxkKyIKKyAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPW1zZyk6CisgICAgICAgICAgICBp
bnQoJ2FzZGYnKQorCisgICAgICAgIG1zZyA9ICJ3aXRoIGJhc2UgMTAiCisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD1tc2cpOgorICAgICAgICAgICAgaW50KCdh
c2RmJykKKworICAgICAgICBtc2cgPSAid2l0aCBiYXNlIDE2IgorICAgICAgICBleHByID0gciJQ
YXR0ZXJuICd7MH0nIG5vdCBmb3VuZCBpbiAnaW52YWxpZCBsaXRlcmFsIGZvciBpbnRcKFwpIHdp
dGggYmFzZSAxMDogJ2FzZGYnJyIuZm9ybWF0KG1zZykKKyAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKEFzc2VydGlvbkVycm9yLCBtYXRjaD1leHByKToKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD1tc2cpOgorICAgICAgICAgICAgICAgIGludCgnYXNk
ZicsIGJhc2U9MTApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1
cF9vbmx5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfb25seS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjM0MzEyZmNjOGVkODgwNWE5ZGIxMDlkMjY1NGFkOGM2NmVhMmMyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfb25seS5weQpAQCAt
MCwwICsxLDI0MyBAQAoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZShwYXJhbXM9
WyctLXNldHVwLW9ubHknLCAnLS1zZXR1cC1wbGFuJywgJy0tc2V0dXAtc2hvdyddLAorICAgICAg
ICAgICAgICAgIHNjb3BlPSdtb2R1bGUnKQorZGVmIG1vZGUocmVxdWVzdCk6CisgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KKworCitkZWYgdGVzdF9zaG93X29ubHlfYWN0aXZlX2ZpeHR1cmVzKHRl
c3RkaXIsIG1vZGUpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBfYXJnMCgp
OgorICAgICAgICAgICAgIiIiaGlkZGVuIGFyZzAgZml4dHVyZSIiIgorICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICIiImFyZzEgZG9jc3Ry
aW5nIiIiCisgICAgICAgIGRlZiB0ZXN0X2FyZzEoYXJnMSk6CisgICAgICAgICAgICBwYXNzCisg
ICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QobW9kZSwgcCkKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAnKlNFVFVQICAgIEYgYXJnMSonLAorICAgICAgICAnKnRlc3RfYXJnMSAoZml4
dHVyZXMgdXNlZDogYXJnMSkqJywKKyAgICAgICAgJypURUFSRE9XTiBGIGFyZzEqJywKKyAgICBd
KQorICAgIGFzc2VydCAiX2FyZzAiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVm
IHRlc3Rfc2hvd19kaWZmZXJlbnRfc2NvcGVzKHRlc3RkaXIsIG1vZGUpOgorICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgIGRlZiBhcmdfZnVuY3Rpb24oKToKKyAgICAgICAgICAgICIiImZ1
bmN0aW9uIHNjb3BlZCBmaXh0dXJlIiIiCisgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0n
c2Vzc2lvbicpCisgICAgICAgIGRlZiBhcmdfc2Vzc2lvbigpOgorICAgICAgICAgICAgIiIic2Vz
c2lvbiBzY29wZWQgZml4dHVyZSIiIgorICAgICAgICBkZWYgdGVzdF9hcmcxKGFyZ19zZXNzaW9u
LCBhcmdfZnVuY3Rpb24pOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KG1vZGUsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ1NFVFVQICAg
IFMgYXJnX3Nlc3Npb24qJywKKyAgICAgICAgJypTRVRVUCAgICBGIGFyZ19mdW5jdGlvbionLAor
ICAgICAgICAnKnRlc3RfYXJnMSAoZml4dHVyZXMgdXNlZDogYXJnX2Z1bmN0aW9uLCBhcmdfc2Vz
c2lvbikqJywKKyAgICAgICAgJypURUFSRE9XTiBGIGFyZ19mdW5jdGlvbionLAorICAgICAgICAn
VEVBUkRPV04gUyBhcmdfc2Vzc2lvbionLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2hvd19uZXN0
ZWRfZml4dHVyZXModGVzdGRpciwgbW9kZSk6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJycn
CisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdz
ZXNzaW9uJykKKyAgICAgICAgZGVmIGFyZ19zYW1lKCk6CisgICAgICAgICAgICAiIiJzZXNzaW9u
IHNjb3BlZCBmaXh0dXJlIiIiCisgICAgICAgICcnJykKKyAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nZnVuY3Rpb24nKQorICAgICAgICBkZWYgYXJnX3NhbWUoYXJnX3NhbWUpOgorICAgICAg
ICAgICAgIiIiZnVuY3Rpb24gc2NvcGVkIGZpeHR1cmUiIiIKKyAgICAgICAgZGVmIHRlc3RfYXJn
MShhcmdfc2FtZSk6CisgICAgICAgICAgICBwYXNzCisgICAgJycnKQorCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QobW9kZSwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnU0VUVVAgICAgUyBh
cmdfc2FtZSonLAorICAgICAgICAnKlNFVFVQICAgIEYgYXJnX3NhbWUgKGZpeHR1cmVzIHVzZWQ6
IGFyZ19zYW1lKSonLAorICAgICAgICAnKnRlc3RfYXJnMSAoZml4dHVyZXMgdXNlZDogYXJnX3Nh
bWUpKicsCisgICAgICAgICcqVEVBUkRPV04gRiBhcmdfc2FtZSonLAorICAgICAgICAnVEVBUkRP
V04gUyBhcmdfc2FtZSonLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2hvd19maXh0dXJlc193aXRo
X2F1dG91c2UodGVzdGRpciwgbW9kZSk6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ZGVmIGFyZ19mdW5jdGlvbigpOgorICAgICAgICAgICAgIiIiZnVuY3Rpb24gc2NvcGVkIGZpeHR1
cmUiIiIKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJywgYXV0b3VzZT1U
cnVlKQorICAgICAgICBkZWYgYXJnX3Nlc3Npb24oKToKKyAgICAgICAgICAgICIiInNlc3Npb24g
c2NvcGVkIGZpeHR1cmUiIiIKKyAgICAgICAgZGVmIHRlc3RfYXJnMShhcmdfZnVuY3Rpb24pOgor
ICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KG1vZGUsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ1NFVFVQICAgIFMgYXJnX3Nlc3Npb24qJywK
KyAgICAgICAgJypTRVRVUCAgICBGIGFyZ19mdW5jdGlvbionLAorICAgICAgICAnKnRlc3RfYXJn
MSAoZml4dHVyZXMgdXNlZDogYXJnX2Z1bmN0aW9uLCBhcmdfc2Vzc2lvbikqJywKKyAgICBdKQor
CisKK2RlZiB0ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9wYXJhbWV0ZXJzKHRlc3RkaXIsIG1vZGUp
OgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicsIHBhcmFtcz1bJ2ZvbycsICdi
YXInXSkKKyAgICAgICAgZGVmIGFyZ19zYW1lKCk6CisgICAgICAgICAgICAiIiJzZXNzaW9uIHNj
b3BlZCBmaXh0dXJlIiIiCisgICAgICAgICcnJykKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0nZnVuY3Rpb24nKQorICAgICAgICBkZWYgYXJnX290aGVyKGFyZ19zYW1lKToKKyAgICAgICAg
ICAgICIiImZ1bmN0aW9uIHNjb3BlZCBmaXh0dXJlIiIiCisgICAgICAgIGRlZiB0ZXN0X2FyZzEo
YXJnX290aGVyKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChtb2RlLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKwor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICdTRVRVUCAgICBTIGFy
Z19zYW1lP2Zvbz8nLAorICAgICAgICAnVEVBUkRPV04gUyBhcmdfc2FtZT9mb28/JywKKyAgICAg
ICAgJ1NFVFVQICAgIFMgYXJnX3NhbWU/YmFyPycsCisgICAgICAgICdURUFSRE9XTiBTIGFyZ19z
YW1lP2Jhcj8nLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2hvd19maXh0dXJlc193aXRoX3BhcmFt
ZXRlcl9pZHModGVzdGRpciwgbW9kZSk6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJycnCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKAorICAgICAgICAg
ICAgc2NvcGU9J3Nlc3Npb24nLCBwYXJhbXM9Wydmb28nLCAnYmFyJ10sIGlkcz1bJ3NwYW0nLCAn
aGFtJ10pCisgICAgICAgIGRlZiBhcmdfc2FtZSgpOgorICAgICAgICAgICAgIiIic2Vzc2lvbiBz
Y29wZWQgZml4dHVyZSIiIgorICAgICAgICAnJycpCisgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9J2Z1bmN0aW9uJykKKyAgICAgICAgZGVmIGFyZ19vdGhlcihhcmdfc2FtZSk6CisgICAgICAg
ICAgICAiIiJmdW5jdGlvbiBzY29wZWQgZml4dHVyZSIiIgorICAgICAgICBkZWYgdGVzdF9hcmcx
KGFyZ19vdGhlcik6CisgICAgICAgICAgICBwYXNzCisgICAgJycnKQorCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QobW9kZSwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnU0VUVVAgICAgUyBh
cmdfc2FtZT9zcGFtPycsCisgICAgICAgICdTRVRVUCAgICBTIGFyZ19zYW1lP2hhbT8nLAorICAg
IF0pCisKKworZGVmIHRlc3Rfc2hvd19maXh0dXJlc193aXRoX3BhcmFtZXRlcl9pZHNfZnVuY3Rp
b24odGVzdGRpciwgbW9kZSk6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsnZm9vJywg
J2JhciddLCBpZHM9bGFtYmRhIHA6IHAudXBwZXIoKSkKKyAgICAgICAgZGVmIGZvb2JhcigpOgor
ICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF9mb29iYXIoZm9vYmFyKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCht
b2RlLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqU0VUVVAgICAgRiBmb29iYXI/Rk9PPycsCisgICAg
ICAgICcqU0VUVVAgICAgRiBmb29iYXI/QkFSPycsCisgICAgXSkKKworCitkZWYgdGVzdF9keW5h
bWljX2ZpeHR1cmVfcmVxdWVzdCh0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisg
ICAgICAgIGRlZiBkeW5hbWljYWxseV9yZXF1ZXN0ZWRfZml4dHVyZSgpOgorICAgICAgICAgICAg
cGFzcworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICBkZWYgZGVwZW5kZW50X2Zp
eHR1cmUocmVxdWVzdCk6CisgICAgICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZHlu
YW1pY2FsbHlfcmVxdWVzdGVkX2ZpeHR1cmUnKQorICAgICAgICBkZWYgdGVzdF9keW4oZGVwZW5k
ZW50X2ZpeHR1cmUpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCctLXNldHVwLW9ubHknLCBwKQorICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcq
U0VUVVAgICAgRiBkeW5hbWljYWxseV9yZXF1ZXN0ZWRfZml4dHVyZScsCisgICAgICAgICcqVEVB
UkRPV04gRiBkeW5hbWljYWxseV9yZXF1ZXN0ZWRfZml4dHVyZScKKyAgICBdKQorCisKK2RlZiB0
ZXN0X2NhcHR1cmluZyh0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJwor
ICAgICAgICBpbXBvcnQgcHl0ZXN0LCBzeXMKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAg
ICAgICAgZGVmIG9uZSgpOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgndGhpcyBzaG91
bGQgYmUgY2FwdHVyZWQnKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgndGhpcyBzaG91
bGQgYWxzbyBiZSBjYXB0dXJlZCcpCisgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAg
IGRlZiB0d28ob25lKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIGRlZiB0ZXN0X2Nh
cHR1cmluZyh0d28pOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCctLXNldHVwLW9ubHknLCBwKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICd0aGlzIHNob3VsZCBiZSBjYXB0dXJlZCcsCisgICAg
ICAgICd0aGlzIHNob3VsZCBhbHNvIGJlIGNhcHR1cmVkJworICAgIF0pCisKKworZGVmIHRlc3Rf
c2hvd19maXh0dXJlc19hbmRfZXhlY3V0ZV90ZXN0KHRlc3RkaXIpOgorICAgICIiIiBWZXJpZmll
cyB0aGF0IHNldHVwcyBhcmUgc2hvd24gYW5kIHRlc3RzIGFyZSBleGVjdXRlZC4gIiIiCisgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZygpOgorICAgICAgICAgICAgYXNzZXJ0
IFRydWUKKyAgICAgICAgZGVmIHRlc3RfYXJnKGFyZyk6CisgICAgICAgICAgICBhc3NlcnQgRmFs
c2UKKyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zZXR1cC1z
aG93IiwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKlNFVFVQICAgIEYgYXJnKicsCisgICAgICAgICcq
dGVzdF9hcmcgKGZpeHR1cmVzIHVzZWQ6IGFyZylGKicsCisgICAgICAgICcqVEVBUkRPV04gRiBh
cmcqJywKKyAgICBdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0
dXBfcGxhbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGM5ODIyNDY5MmE4YjkwZjM3ZWRiMzE4Y2FmOGIwMjRjY2NlOGI4NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkKQEAg
LTAsMCArMSwxOSBAQAorZGVmIHRlc3Rfc2hvd19maXh0dXJlc19hbmRfdGVzdCh0ZXN0ZGlyKToK
KyAgICAiIiIgVmVyaWZpZXMgdGhhdCBmaXh0dXJlcyBhcmUgbm90IGV4ZWN1dGVkLiAiIiIKKyAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAgICBhc3Nl
cnQgRmFsc2UKKyAgICAgICAgZGVmIHRlc3RfYXJnKGFyZyk6CisgICAgICAgICAgICBhc3NlcnQg
RmFsc2UKKyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zZXR1
cC1wbGFuIiwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKlNFVFVQICAgIEYgYXJnKicsCisgICAgICAg
ICcqdGVzdF9hcmcgKGZpeHR1cmVzIHVzZWQ6IGFyZyknLAorICAgICAgICAnKlRFQVJET1dOIEYg
YXJnKicsCisgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3No
b3dfZml4dHVyZXNfcGVyX3Rlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zaG93
X2ZpeHR1cmVzX3Blcl90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0MWYzMzk0NmEwZWUzY2RiYjUxMzEz
YTUwNWExOWViYTAwNjc2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3B5dGhvbi9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0LnB5CkBAIC0wLDAgKzEsMTU4IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorCisKK2RlZiB0ZXN0X25vX2l0ZW1zX3Nob3VsZF9ub3Rfc2hv
d19vdXRwdXQodGVzdGRpcik6CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tZml4
dHVyZXMtcGVyLXRlc3QnKQorICAgIGFzc2VydCAnZml4dHVyZXMgdXNlZCBieScgbm90IGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRl
c3RfZml4dHVyZXNfaW5fbW9kdWxlKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisg
ICAgICAgIGRlZiBfYXJnMCgpOgorICAgICAgICAgICAgIiIiaGlkZGVuIGFyZzAgZml4dHVyZSIi
IgorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAg
ICAgICIiImFyZzEgZG9jc3RyaW5nIiIiCisgICAgICAgIGRlZiB0ZXN0X2FyZzEoYXJnMSk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tZml4dHVyZXMtcGVyLXRlc3QiLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqZml4dHVyZXMg
dXNlZCBieSB0ZXN0X2FyZzEqJywKKyAgICAgICAgJyoodGVzdF9maXh0dXJlc19pbl9tb2R1bGUu
cHk6OSkqJywKKyAgICAgICAgJ2FyZzEnLAorICAgICAgICAnICAgIGFyZzEgZG9jc3RyaW5nJywK
KyAgICBdKQorICAgIGFzc2VydCAiX2FyZzAiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisK
KworZGVmIHRlc3RfZml4dHVyZXNfaW5fY29uZnRlc3QodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAiIiJhcmcxIGRvY3N0cmlu
ZyIiIgorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzIoKToKKyAgICAg
ICAgICAgICIiImFyZzIgZG9jc3RyaW5nIiIiCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICBkZWYgYXJnMyhhcmcxLCBhcmcyKToKKyAgICAgICAgICAgICIiImFyZzMKKyAgICAgICAg
ICAgIGRvY3N0cmluZworICAgICAgICAgICAgIiIiCisgICAgJycnKQorICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoJycnCisgICAgICAgIGRlZiB0ZXN0X2FyZzIoYXJnMik6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIGRlZiB0ZXN0X2FyZzMoYXJnMyk6CisgICAgICAgICAgICBwYXNzCisg
ICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzLXBlci10
ZXN0IiwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKmZpeHR1cmVzIHVzZWQgYnkgdGVzdF9hcmcyKics
CisgICAgICAgICcqKHRlc3RfZml4dHVyZXNfaW5fY29uZnRlc3QucHk6MikqJywKKyAgICAgICAg
J2FyZzInLAorICAgICAgICAnICAgIGFyZzIgZG9jc3RyaW5nJywKKyAgICAgICAgJypmaXh0dXJl
cyB1c2VkIGJ5IHRlc3RfYXJnMyonLAorICAgICAgICAnKih0ZXN0X2ZpeHR1cmVzX2luX2NvbmZ0
ZXN0LnB5OjQpKicsCisgICAgICAgICdhcmcxJywKKyAgICAgICAgJyAgICBhcmcxIGRvY3N0cmlu
ZycsCisgICAgICAgICdhcmcyJywKKyAgICAgICAgJyAgICBhcmcyIGRvY3N0cmluZycsCisgICAg
ICAgICdhcmczJywKKyAgICAgICAgJyAgICBhcmczJywKKyAgICAgICAgJyAgICBkb2NzdHJpbmcn
LAorICAgIF0pCisKKworZGVmIHRlc3Rfc2hvdWxkX3Nob3dfZml4dHVyZXNfdXNlZF9ieV90ZXN0
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgYXJnMSgpOgorICAg
ICAgICAgICAgIiIiYXJnMSBmcm9tIGNvbmZ0ZXN0IiIiCisgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICBkZWYgYXJnMigpOgorICAgICAgICAgICAgIiIiYXJnMiBmcm9tIGNvbmZ0ZXN0
IiIiCisgICAgJycnKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBhcmcxKCk6
CisgICAgICAgICAgICAiIiJhcmcxIGZyb20gdGVzdG1vZHVsZSIiIgorICAgICAgICBkZWYgdGVz
dF9hcmdzKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcy1wZXItdGVzdCIsIHApCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgJypmaXh0dXJlcyB1c2VkIGJ5IHRlc3RfYXJncyonLAorICAgICAgICAnKih0ZXN0
X3Nob3VsZF9zaG93X2ZpeHR1cmVzX3VzZWRfYnlfdGVzdC5weTo2KSonLAorICAgICAgICAnYXJn
MScsCisgICAgICAgICcgICAgYXJnMSBmcm9tIHRlc3Rtb2R1bGUnLAorICAgICAgICAnYXJnMics
CisgICAgICAgICcgICAgYXJnMiBmcm9tIGNvbmZ0ZXN0JywKKyAgICBdKQorCisKK2RlZiB0ZXN0
X3ZlcmJvc2VfaW5jbHVkZV9wcml2YXRlX2ZpeHR1cmVzX2FuZF9sb2ModGVzdGRpcik6CisgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBfYXJnMSgpOgorICAgICAgICAgICAgIiIiX2Fy
ZzEgZnJvbSBjb25mdGVzdCIiIgorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVm
IGFyZzIoX2FyZzEpOgorICAgICAgICAgICAgIiIiYXJnMiBmcm9tIGNvbmZ0ZXN0IiIiCisgICAg
JycnKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBhcmczKCk6CisgICAgICAg
ICAgICAiIiJhcmczIGZyb20gdGVzdG1vZHVsZSIiIgorICAgICAgICBkZWYgdGVzdF9hcmdzKGFy
ZzIsIGFyZzMpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcy1wZXItdGVzdCIsICItdiIsIHApCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgJypmaXh0dXJlcyB1c2VkIGJ5IHRlc3RfYXJncyonLAorICAgICAgICAnKih0ZXN0X3Zl
cmJvc2VfaW5jbHVkZV9wcml2YXRlX2ZpeHR1cmVzX2FuZF9sb2MucHk6NikqJywKKyAgICAgICAg
J19hcmcxIC0tIGNvbmZ0ZXN0LnB5OjMnLAorICAgICAgICAnICAgIF9hcmcxIGZyb20gY29uZnRl
c3QnLAorICAgICAgICAnYXJnMiAtLSBjb25mdGVzdC5weTo2JywKKyAgICAgICAgJyAgICBhcmcy
IGZyb20gY29uZnRlc3QnLAorICAgICAgICAnYXJnMyAtLSB0ZXN0X3ZlcmJvc2VfaW5jbHVkZV9w
cml2YXRlX2ZpeHR1cmVzX2FuZF9sb2MucHk6MycsCisgICAgICAgICcgICAgYXJnMyBmcm9tIHRl
c3Rtb2R1bGUnLAorICAgIF0pCisKKworZGVmIHRlc3RfZG9jdGVzdF9pdGVtcyh0ZXN0ZGlyKToK
KyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgPj4+IDEgKyAxCisgICAgICAgICAgICAyCisgICAgICAgICAg
ICAiIiIKKyAgICAnJycpCisgICAgdGVzdGRpci5tYWtldHh0ZmlsZSgnJycKKyAgICAgICAgPj4+
IDEgKyAxCisgICAgICAgIDIKKyAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tZml4dHVyZXMtcGVyLXRlc3QiLCAiLS1kb2N0ZXN0LW1vZHVsZXMiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItLWRvY3Rlc3QtZ2xvYj0qLnR4dCIsICItdiIpCisgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgJypjb2xsZWN0ZWQgMiBpdGVtcyonLAorICAgIF0pCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi90ZXN0X2RlcHJlY2F0aW9ucy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL3Rlc3RfZGVwcmVjYXRpb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDFm
NzY1ZjZjNTg4YmJjZDg4ZDk4MTJkODViMDYyZGJlNTZiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi90ZXN0X2RlcHJlY2F0aW9ucy5weQpAQCAtMCwwICsx
LDIyIEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IFB5Q29s
bGVjdG9yCisKKworY2xhc3MgUHlDb2xsZWN0b3JNb2NrKFB5Q29sbGVjdG9yKToKKyAgICAiIiJl
dmlsIGhhY2siIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5jYWxs
ZWQgPSBGYWxzZQorCisgICAgZGVmIF9tYWtlaXRlbShzZWxmLCAqayk6CisgICAgICAgICIiImhh
Y2sgdG8gZGlzYWJsZSB0aGUgYWN0dWFsIGJlaGF2aW91ciIiIgorICAgICAgICBzZWxmLmNhbGxl
ZCA9IFRydWUKKworCitkZWYgdGVzdF9weWNvbGxlY3Rvcl9tYWtlaXRlbV9pc19kZXByZWNhdGVk
KCk6CisKKyAgICBjb2xsZWN0b3IgPSBQeUNvbGxlY3Rvck1vY2soKQorICAgIHdpdGggcHl0ZXN0
LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICBjb2xsZWN0b3IubWFrZWl0ZW0oJ2ZvbycsICdi
YXInKQorICAgIGFzc2VydCBjb2xsZWN0b3IuY2FsbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmM2RkMjQwMDEyZTUwYzc0MzMzYTgzMGVh
ZjEyOGM4YTI0MTcyMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3B5dGhvbi9hcHByb3gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9j
b2xsZWN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9weXRob24vbWV0YWZ1bmMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9yYWlzZXMu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1cF9vbmx5LnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vc2V0dXBfcGxhbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL3Nob3dfZml4dHVyZXNfcGVyX3Rlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhv
bi90ZXN0X2RlcHJlY2F0aW9ucy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X2FyZ2NvbXBsZXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2FyZ2NvbXBsZXRl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM5MjYxMjU3NzQzZjJiOGY0MTg5ODZhZTI0MWZjZjJmOWU3OWEwYTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXJnY29tcGxldGUu
cHkKQEAgLTAsMCArMSw5NyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CisK
KyMgdGVzdCBmb3IgX2FyZ2NvbXBsZXRlIGJ1dCBub3Qgc3BlY2lmaWMgZm9yIGFueSBhcHBsaWNh
dGlvbgorCisKK2RlZiBlcXVhbF93aXRoX2Jhc2gocHJlZml4LCBmZmMsIGZjLCBvdXQ9Tm9uZSk6
CisgICAgcmVzID0gZmZjKHByZWZpeCkKKyAgICByZXNfYmFzaCA9IHNldChmYyhwcmVmaXgpKQor
ICAgIHJldHZhbCA9IHNldChyZXMpID09IHJlc19iYXNoCisgICAgaWYgb3V0OgorICAgICAgICBv
dXQud3JpdGUoJ2VxdWFsX3dpdGhfYmFzaCAlcyAlc1xuJyAlIChyZXR2YWwsIHJlcykpCisgICAg
ICAgIGlmIG5vdCByZXR2YWw6CisgICAgICAgICAgICBvdXQud3JpdGUoJyBweXRob24gLSBiYXNo
OiAlc1xuJyAlIChzZXQocmVzKSAtIHJlc19iYXNoKSkKKyAgICAgICAgICAgIG91dC53cml0ZSgn
IGJhc2ggLSBweXRob246ICVzXG4nICUgKHJlc19iYXNoIC0gc2V0KHJlcykpKQorICAgIHJldHVy
biByZXR2YWwKKworIyBjb3BpZWQgZnJvbSBhcmdjb21wbGV0ZS5jb21wbGV0ZXJzIGFzIGltcG9y
dCBmcm9tIHRoZXJlCisjIGFsc28gcHVsbHMgaW4gYXJnY29tcGxldGUuX19pbml0X18gd2hpY2gg
b3BlbnMgZmlsZWRlc2NyaXB0b3IgOQorIyB0aGlzIGdpdmVzIGFuIElPRXJyb3IgYXQgdGhlIGVu
ZCBvZiB0ZXN0cnVuCisKKworZGVmIF93cmFwY2FsbCgqYXJncywgKiprYXJncyk6CisgICAgdHJ5
OgorICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mbyA+ICgyLCA3KToKKyAgICAgICAg
ICAgIHJldHVybiBweS5zdGQuc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoKmFyZ3MsICoqa2FyZ3Mp
LmRlY29kZSgpLnNwbGl0bGluZXMoKQorICAgICAgICBpZiAnc3Rkb3V0JyBpbiBrYXJnczoKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3N0ZG91dCBhcmd1bWVudCBub3QgYWxsb3dlZCwg
aXQgd2lsbCBiZSBvdmVycmlkZGVuLicpCisgICAgICAgIHByb2Nlc3MgPSBweS5zdGQuc3VicHJv
Y2Vzcy5Qb3BlbigKKyAgICAgICAgICAgIHN0ZG91dD1weS5zdGQuc3VicHJvY2Vzcy5QSVBFLCAq
YXJncywgKiprYXJncykKKyAgICAgICAgb3V0cHV0LCB1bnVzZWRfZXJyID0gcHJvY2Vzcy5jb21t
dW5pY2F0ZSgpCisgICAgICAgIHJldGNvZGUgPSBwcm9jZXNzLnBvbGwoKQorICAgICAgICBpZiBy
ZXRjb2RlOgorICAgICAgICAgICAgY21kID0ga2FyZ3MuZ2V0KCJhcmdzIikKKyAgICAgICAgICAg
IGlmIGNtZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNtZCA9IGFyZ3NbMF0KKyAgICAgICAg
ICAgIHJhaXNlIHB5LnN0ZC5zdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcihyZXRjb2RlLCBj
bWQpCisgICAgICAgIHJldHVybiBvdXRwdXQuZGVjb2RlKCkuc3BsaXRsaW5lcygpCisgICAgZXhj
ZXB0IHB5LnN0ZC5zdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgcmV0dXJu
IFtdCisKKworY2xhc3MgRmlsZXNDb21wbGV0ZXIob2JqZWN0KToKKyAgICAnRmlsZSBjb21wbGV0
ZXIgY2xhc3MsIG9wdGlvbmFsbHkgdGFrZXMgYSBsaXN0IG9mIGFsbG93ZWQgZXh0ZW5zaW9ucycK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxvd2VkbmFtZXM9KCksIGRpcmVjdG9yaWVzPVRy
dWUpOgorICAgICAgICAjIEZpeCBpZiBzb21lb25lIHBhc3NlcyBpbiBhIHN0cmluZyBpbnN0ZWFk
IG9mIGEgbGlzdAorICAgICAgICBpZiB0eXBlKGFsbG93ZWRuYW1lcykgaXMgc3RyOgorICAgICAg
ICAgICAgYWxsb3dlZG5hbWVzID0gW2FsbG93ZWRuYW1lc10KKworICAgICAgICBzZWxmLmFsbG93
ZWRuYW1lcyA9IFt4LmxzdHJpcCgnKicpLmxzdHJpcCgnLicpIGZvciB4IGluIGFsbG93ZWRuYW1l
c10KKyAgICAgICAgc2VsZi5kaXJlY3RvcmllcyA9IGRpcmVjdG9yaWVzCisKKyAgICBkZWYgX19j
YWxsX18oc2VsZiwgcHJlZml4LCAqKmt3YXJncyk6CisgICAgICAgIGNvbXBsZXRpb24gPSBbXQor
ICAgICAgICBpZiBzZWxmLmFsbG93ZWRuYW1lczoKKyAgICAgICAgICAgIGlmIHNlbGYuZGlyZWN0
b3JpZXM6CisgICAgICAgICAgICAgICAgZmlsZXMgPSBfd3JhcGNhbGwoWydiYXNoJywgJy1jJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBnZW4gLUEgZGlyZWN0b3J5
IC0tICd7cH0nIi5mb3JtYXQocD1wcmVmaXgpXSkKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9u
ICs9IFtmICsgJy8nIGZvciBmIGluIGZpbGVzXQorICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5h
bGxvd2VkbmFtZXM6CisgICAgICAgICAgICAgICAgY29tcGxldGlvbiArPSBfd3JhcGNhbGwoWydi
YXNoJywgJy1jJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv
bXBnZW4gLUEgZmlsZSAtWCAnISouezB9JyAtLSAne3B9JyIuZm9ybWF0KHgsIHA9cHJlZml4KV0p
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb21wbGV0aW9uICs9IF93cmFwY2FsbChbJ2Jh
c2gnLCAnLWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wZ2Vu
IC1BIGZpbGUgLS0gJ3twfSciLmZvcm1hdChwPXByZWZpeCldKQorCisgICAgICAgICAgICBhbnRp
Y29tcCA9IF93cmFwY2FsbChbJ2Jhc2gnLCAnLWMnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjb21wZ2VuIC1BIGRpcmVjdG9yeSAtLSAne3B9JyIuZm9ybWF0KHA9cHJlZml4
KV0pCisKKyAgICAgICAgICAgIGNvbXBsZXRpb24gPSBsaXN0KHNldChjb21wbGV0aW9uKSAtIHNl
dChhbnRpY29tcCkpCisKKyAgICAgICAgICAgIGlmIHNlbGYuZGlyZWN0b3JpZXM6CisgICAgICAg
ICAgICAgICAgY29tcGxldGlvbiArPSBbZiArICcvJyBmb3IgZiBpbiBhbnRpY29tcF0KKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb24KKworCitjbGFzcyBUZXN0QXJnQ29tcGxldGUob2JqZWN0KToK
KyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxhdGZvcm0gaW4gKCd3aW4zMicsICdkYXJ3
aW4nKSIpCisgICAgZGVmIHRlc3RfY29tcGFyZV93aXRoX2NvbXBnZW4oc2VsZik6CisgICAgICAg
IGZyb20gX3B5dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0IEZhc3RGaWxlc0NvbXBsZXRlcgorICAg
ICAgICBmZmMgPSBGYXN0RmlsZXNDb21wbGV0ZXIoKQorICAgICAgICBmYyA9IEZpbGVzQ29tcGxl
dGVyKCkKKyAgICAgICAgZm9yIHggaW4gWycvJywgJy9kJywgJy9kYXRhJywgJ3FxcScsICcnXToK
KyAgICAgICAgICAgIGFzc2VydCBlcXVhbF93aXRoX2Jhc2goeCwgZmZjLCBmYywgb3V0PXB5LnN0
ZC5zeXMuc3Rkb3V0KQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnBsYXRmb3JtIGlu
ICgnd2luMzInLCAnZGFyd2luJykiKQorICAgIGRlZiB0ZXN0X3JlbW92ZV9kaXJfcHJlZml4KHNl
bGYpOgorICAgICAgICAiIiJ0aGlzIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggY29tcGdlbiBidXQg
aXQgaXMgd2l0aCBiYXNoIGl0c2VsZjoKKyAgICAgICAgbHMgL3Vzci88VEFCPgorICAgICAgICAi
IiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Ll9hcmdjb21wbGV0ZSBpbXBvcnQgRmFzdEZpbGVzQ29t
cGxldGVyCisgICAgICAgIGZmYyA9IEZhc3RGaWxlc0NvbXBsZXRlcigpCisgICAgICAgIGZjID0g
RmlsZXNDb21wbGV0ZXIoKQorICAgICAgICBmb3IgeCBpbiAnL3Vzci8nLnNwbGl0KCk6CisgICAg
ICAgICAgICBhc3NlcnQgbm90IGVxdWFsX3dpdGhfYmFzaCh4LCBmZmMsIGZjLCBvdXQ9cHkuc3Rk
LnN5cy5zdGRvdXQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXNzZXJ0
aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMjhmZTdmYTkxOGU0ZDcxMzdmZGZjNTU4Y2U4MWFjM2ExNjY1YjdjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weQpAQCAtMCwwICsxLDEw
NjYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBv
cnQgdGV4dHdyYXAKKworaW1wb3J0IF9weXRlc3QuYXNzZXJ0aW9uIGFzIHBsdWdpbgoraW1wb3J0
IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCitm
cm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB0cnVuY2F0ZQorCitQWTMgPSBzeXMudmVyc2lv
bl9pbmZvID49ICgzLCAwKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG1vY2tfY29uZmlnKCk6
CisKKyAgICBjbGFzcyBDb25maWcob2JqZWN0KToKKyAgICAgICAgdmVyYm9zZSA9IEZhbHNlCisK
KyAgICAgICAgZGVmIGdldG9wdGlvbihzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIGlmIG5hbWUg
PT0gJ3ZlcmJvc2UnOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnZlcmJvc2UKKyAgICAg
ICAgICAgIHJhaXNlIEtleUVycm9yKCdOb3QgbW9ja2VkIG91dDogJXMnICUgbmFtZSkKKworICAg
IHJldHVybiBDb25maWcoKQorCisKK2NsYXNzIFRlc3RJbXBvcnRIb29rSW5zdGFsbGF0aW9uKG9i
amVjdCk6CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2luaXRpYWxfY29uZnRlc3Qn
LCBbVHJ1ZSwgRmFsc2VdKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbW9kZScsIFsn
cGxhaW4nLCAncmV3cml0ZSddKQorICAgIGRlZiB0ZXN0X2NvbmZ0ZXN0X2Fzc2VydGlvbl9yZXdy
aXRlKHNlbGYsIHRlc3RkaXIsIGluaXRpYWxfY29uZnRlc3QsIG1vZGUpOgorICAgICAgICAiIiJU
ZXN0IHRoYXQgY29uZnRlc3QgZmlsZXMgYXJlIHVzaW5nIGFzc2VydGlvbiByZXdyaXRlIG9uIGlt
cG9ydC4KKyAgICAgICAgKCMxNjE5KQorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci50bXBk
aXIuam9pbignZm9vL3Rlc3RzJykuZW5zdXJlKGRpcj0xKQorICAgICAgICBjb25mdGVzdF9wYXRo
ID0gJ2NvbmZ0ZXN0LnB5JyBpZiBpbml0aWFsX2NvbmZ0ZXN0IGVsc2UgJ2Zvby9jb25mdGVzdC5w
eScKKyAgICAgICAgY29udGVudHMgPSB7CisgICAgICAgICAgICBjb25mdGVzdF9wYXRoOiAiIiIK
KyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGNoZWNrX2ZpcnN0KCk6CisgICAgICAgICAgICAg
ICAgICAgIGRlZiBjaGVjayh2YWx1ZXMsIHZhbHVlKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydCB2YWx1ZXMucG9wKDApID09IHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjaGVjaworICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgJ2Zvby90ZXN0cy90ZXN0X2Zv
by5weSc6ICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0KGNoZWNrX2ZpcnN0KToKKyAgICAg
ICAgICAgICAgICAgICAgY2hlY2tfZmlyc3QoWzEwLCAzMF0sIDMwKQorICAgICAgICAgICAgIiIi
CisgICAgICAgIH0KKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqY29udGVudHMpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoJy0tYXNzZXJ0PSVzJyAl
IG1vZGUpCisgICAgICAgIGlmIG1vZGUgPT0gJ3BsYWluJzoKKyAgICAgICAgICAgIGV4cGVjdGVk
ID0gJ0UgICAgICAgQXNzZXJ0aW9uRXJyb3InCisgICAgICAgIGVsaWYgbW9kZSA9PSAncmV3cml0
ZSc6CisgICAgICAgICAgICBleHBlY3RlZCA9ICcqYXNzZXJ0IDEwID09IDMwKicKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbZXhwZWN0ZWRdKQorCisgICAgZGVmIHRlc3RfcmV3cml0ZV9hc3NlcnRpb25zX3B5
dGVzdGVyX3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIEFzc2Vy
dGlvbnMgaW4gdGhlIHB5dGVzdGVyIHBsdWdpbiBtdXN0IGFsc28gYmVuZWZpdCBmcm9tIGFzc2Vy
dGlvbgorICAgICAgICByZXdyaXRpbmcgKCMxOTIwKS4KKyAgICAgICAgIiIiCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gWydweXRl
c3RlciddCisgICAgICAgICAgICBkZWYgdGVzdF9kdW1teV9mYWlsdXJlKHRlc3RkaXIpOiAgIyBo
b3cgbWV0YSEKKyAgICAgICAgICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJ2RlZiB0ZXN0KCk6
IGFzc2VydCAwJykKKyAgICAgICAgICAgICAgICByID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgICAgICAgICByLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKmFzc2VydCAxID09IDAq
JywKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbW9kZScsIFsn
cGxhaW4nLCAncmV3cml0ZSddKQorICAgIGRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5zX3Jld3JpdGUo
c2VsZiwgdGVzdGRpciwgbW9kZSk6CisgICAgICAgIGNvbnRlbnRzID0geworICAgICAgICAgICAg
J2NvbmZ0ZXN0LnB5JzogIiIiCisgICAgICAgICAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSBbJ2hh
bSddCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAnaGFtLnB5JzogIiIiCisgICAgICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgICAgIGRlZiBjaGVja19maXJzdCgpOgorICAgICAgICAgICAgICAgICAgICBk
ZWYgY2hlY2sodmFsdWVzLCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
dmFsdWVzLnBvcCgwKSA9PSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2sK
KyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICd0ZXN0X2Zvby5weSc6ICIiIgorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhjaGVja19maXJzdCk6CisgICAgICAgICAgICAgICAgICAg
IGNoZWNrX2ZpcnN0KFsxMCwgMzBdLCAzMCkKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgfQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipjb250ZW50cykKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygnLS1hc3NlcnQ9JXMnICUgbW9kZSkKKyAgICAg
ICAgaWYgbW9kZSA9PSAncGxhaW4nOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSAnRSAgICAgICBB
c3NlcnRpb25FcnJvcicKKyAgICAgICAgZWxpZiBtb2RlID09ICdyZXdyaXRlJzoKKyAgICAgICAg
ICAgIGV4cGVjdGVkID0gJyphc3NlcnQgMTAgPT0gMzAqJworICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYXNzZXJ0IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFtleHBl
Y3RlZF0pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21vZGUnLCBbJ3N0cicsICds
aXN0J10pCisgICAgZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNfcmV3cml0ZV9tb2R1bGVfbmFtZXMo
c2VsZiwgdGVzdGRpciwgbW9kZSk6CisgICAgICAgICIiIlRlc3QgdGhhdCBwbHVnaW5tYW5hZ2Vy
IGNvcnJlY3QgbWFya3MgcHl0ZXN0X3BsdWdpbnMgdmFyaWFibGVzCisgICAgICAgIGZvciBhc3Nl
cnRpb24gcmV3cml0aW5nIGlmIHRoZXkgYXJlIGRlZmluZWQgYXMgcGxhaW4gc3RyaW5ncyBvcgor
ICAgICAgICBsaXN0IG9mIHN0cmluZ3MgKCMxODg4KS4KKyAgICAgICAgIiIiCisgICAgICAgIHBs
dWdpbnMgPSAnImhhbSInIGlmIG1vZGUgPT0gJ3N0cicgZWxzZSAnWyJoYW0iXScKKyAgICAgICAg
Y29udGVudHMgPSB7CisgICAgICAgICAgICAnY29uZnRlc3QucHknOiAiIiIKKyAgICAgICAgICAg
ICAgICBweXRlc3RfcGx1Z2lucyA9IHtwbHVnaW5zfQorICAgICAgICAgICAgIiIiLmZvcm1hdChw
bHVnaW5zPXBsdWdpbnMpLAorICAgICAgICAgICAgJ2hhbS5weSc6ICIiIgorICAgICAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICd0ZXN0X2Zv
by5weSc6ICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhweXRlc3Rjb25maWcpOgor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgJ2hhbScgaW4gcHl0ZXN0Y29uZmlnLnBsdWdpbm1h
bmFnZXIucmV3cml0ZV9ob29rLl9tdXN0X3Jld3JpdGUKKyAgICAgICAgICAgICIiIiwKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipjb250ZW50cykKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygnLS1hc3NlcnQ9cmV3cml0ZScpCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9wbHVn
aW5zX3Jld3JpdGVfbW9kdWxlX25hbWVzX2NvcnJlY3RseShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiVGVzdCB0aGF0IHdlIG1hdGNoIGZpbGVzIGNvcnJlY3RseSB3aGVuIHRoZXkgYXJlIG1h
cmtlZCBmb3IgcmV3cml0aW5nICgjMjkzOSkuIiIiCisgICAgICAgIGNvbnRlbnRzID0geworICAg
ICAgICAgICAgJ2NvbmZ0ZXN0LnB5JzogIiIiCisgICAgICAgICAgICAgICAgcHl0ZXN0X3BsdWdp
bnMgPSAiaGFtIgorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgJ2hhbS5weSc6ICIiLAor
ICAgICAgICAgICAgJ2hhbXN0ZXIucHknOiAiIiwKKyAgICAgICAgICAgICd0ZXN0X2Zvby5weSc6
ICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhweXRlc3Rjb25maWcpOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgcHl0ZXN0Y29uZmlnLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9o
b29rLmZpbmRfbW9kdWxlKCdoYW0nKSBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgcHl0ZXN0Y29uZmlnLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9ob29rLmZpbmRfbW9kdWxl
KCdoYW1zdGVyJykgaXMgTm9uZQorICAgICAgICAgICAgIiIiLAorICAgICAgICB9CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgqKmNvbnRlbnRzKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCctLWFzc2VydD1yZXdyaXRlJykKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtb2RlJywg
WydwbGFpbicsICdyZXdyaXRlJ10pCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdwbHVn
aW5fc3RhdGUnLCBbJ2RldmVsb3BtZW50JywgJ2luc3RhbGxlZCddKQorICAgIGRlZiB0ZXN0X2lu
c3RhbGxlZF9wbHVnaW5fcmV3cml0ZShzZWxmLCB0ZXN0ZGlyLCBtb2RlLCBwbHVnaW5fc3RhdGUp
OgorICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgaG9vayBpcyBpbnN0YWxsZWQgZWFybHkgZW5vdWdo
IHNvIHRoYXQgcGx1Z2lucworICAgICAgICAjIGluc3RhbGxlZCB2aWEgc2V0dXB0b29scyBhcmUg
cmV3cml0dGVuLgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCdoYW1wa2cnKS5lbnN1cmUo
ZGlyPTEpCisgICAgICAgIGNvbnRlbnRzID0geworICAgICAgICAgICAgJ2hhbXBrZy9fX2luaXRf
Xy5weSc6ICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBjaGVja19maXJzdDIoKToK
KyAgICAgICAgICAgICAgICAgICAgZGVmIGNoZWNrKHZhbHVlcywgdmFsdWUpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcy5wb3AoMCkgPT0gdmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGNoZWNrCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAnc3Bh
bXBsdWdpbi5weSc6ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
ZnJvbSBoYW1wa2cgaW1wb3J0IGNoZWNrX2ZpcnN0MgorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBjaGVja19maXJzdCgpOgorICAgICAgICAgICAgICAgIGRl
ZiBjaGVjayh2YWx1ZXMsIHZhbHVlKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cy5wb3AoMCkgPT0gdmFsdWUKKyAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2sKKyAgICAgICAg
ICAgICIiIiwKKyAgICAgICAgICAgICdtYWlud3JhcHBlci5weSc6ICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdCwgcGtnX3Jlc291cmNlcworCisgICAgICAgICAgICBwbHVnaW5fc3RhdGUg
PSAie3BsdWdpbl9zdGF0ZX0iCisKKyAgICAgICAgICAgIGNsYXNzIER1bW15RGlzdEluZm8ob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgICBwcm9qZWN0X25hbWUgPSAnc3BhbScKKyAgICAgICAgICAg
ICAgICB2ZXJzaW9uID0gJzEuMCcKKworICAgICAgICAgICAgICAgIGRlZiBfZ2V0X21ldGFkYXRh
KHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAjICdSRUNPUkQnIG1ldGEtZGF0YSBv
bmx5IGF2YWlsYWJsZSBpbiBpbnN0YWxsZWQgcGx1Z2lucworICAgICAgICAgICAgICAgICAgICBp
ZiBuYW1lID09ICdSRUNPUkQnIGFuZCBwbHVnaW5fc3RhdGUgPT0gImluc3RhbGxlZCI6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gWydzcGFtcGx1Z2luLnB5LHNoYTI1Nj1hYmMsMTIz
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbXBrZy9fX2luaXRfXy5weSxz
aGEyNTY9YWJjLDEyMyddCisgICAgICAgICAgICAgICAgICAgICMgJ1NPVVJDRVMudHh0JyBtZXRh
LWRhdGEgb25seSBhdmFpbGFibGUgZm9yIHBsdWdpbnMgaW4gZGV2ZWxvcG1lbnQgbW9kZQorICAg
ICAgICAgICAgICAgICAgICBlbGlmIG5hbWUgPT0gJ1NPVVJDRVMudHh0JyBhbmQgcGx1Z2luX3N0
YXRlID09ICJkZXZlbG9wbWVudCI6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWydz
cGFtcGx1Z2luLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbXBrZy9f
X2luaXRfXy5weSddCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgICAg
ICBjbGFzcyBEdW1teUVudHJ5UG9pbnQob2JqZWN0KToKKyAgICAgICAgICAgICAgICBuYW1lID0g
J3NwYW0nCisgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUgPSAnc3BhbS5weScKKyAgICAgICAg
ICAgICAgICBhdHRycyA9ICgpCisgICAgICAgICAgICAgICAgZXh0cmFzID0gTm9uZQorICAgICAg
ICAgICAgICAgIGRpc3QgPSBEdW1teURpc3RJbmZvKCkKKworICAgICAgICAgICAgICAgIGRlZiBs
b2FkKHNlbGYsIHJlcXVpcmU9VHJ1ZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAg
ICAgICAgaW1wb3J0IHNwYW1wbHVnaW4KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNwYW1w
bHVnaW4KKworICAgICAgICAgICAgZGVmIGl0ZXJfZW50cnlfcG9pbnRzKG5hbWUpOgorICAgICAg
ICAgICAgICAgIHlpZWxkIER1bW15RW50cnlQb2ludCgpCisKKyAgICAgICAgICAgIHBrZ19yZXNv
dXJjZXMuaXRlcl9lbnRyeV9wb2ludHMgPSBpdGVyX2VudHJ5X3BvaW50cworICAgICAgICAgICAg
cHl0ZXN0Lm1haW4oKQorICAgICAgICAgICAgIiIiLmZvcm1hdChwbHVnaW5fc3RhdGU9cGx1Z2lu
X3N0YXRlKSwKKyAgICAgICAgICAgICd0ZXN0X2Zvby5weSc6ICIiIgorICAgICAgICAgICAgZGVm
IHRlc3QoY2hlY2tfZmlyc3QpOgorICAgICAgICAgICAgICAgIGNoZWNrX2ZpcnN0KFsxMCwgMzBd
LCAzMCkKKworICAgICAgICAgICAgZGVmIHRlc3QyKGNoZWNrX2ZpcnN0Mik6CisgICAgICAgICAg
ICAgICAgY2hlY2tfZmlyc3QoWzEwLCAzMF0sIDMwKQorICAgICAgICAgICAgIiIiLAorICAgICAg
ICB9CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKmNvbnRlbnRzKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bihzeXMuZXhlY3V0YWJsZSwgJ21haW53cmFwcGVyLnB5JywgJy1zJywg
Jy0tYXNzZXJ0PSVzJyAlIG1vZGUpCisgICAgICAgIGlmIG1vZGUgPT0gJ3BsYWluJzoKKyAgICAg
ICAgICAgIGV4cGVjdGVkID0gJ0UgICAgICAgQXNzZXJ0aW9uRXJyb3InCisgICAgICAgIGVsaWYg
bW9kZSA9PSAncmV3cml0ZSc6CisgICAgICAgICAgICBleHBlY3RlZCA9ICcqYXNzZXJ0IDEwID09
IDMwKicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbZXhwZWN0ZWRdKQorCisgICAgZGVmIHRlc3RfcmV3cml0
ZV9hc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oJ3BrZycp
LmVuc3VyZShkaXI9MSkKKyAgICAgICAgY29udGVudHMgPSB7CisgICAgICAgICAgICAncGtnL19f
aW5pdF9fLnB5JzogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgICAgIHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZSgncGtnLmhlbHBlcicpCisgICAg
ICAgICAgICAiIiIsCisgICAgICAgICAgICAncGtnL2hlbHBlci5weSc6ICIiIgorICAgICAgICAg
ICAgICAgIGRlZiB0b29sKCk6CisgICAgICAgICAgICAgICAgICAgIGEsIGIgPSAyLCAzCisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCBhID09IGIKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAg
ICAgICdwa2cvcGx1Z2luLnB5JzogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdCwg
cGtnLmhlbHBlcgorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAg
ICAgIGRlZiB0b29sKCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwa2cuaGVscGVyLnRv
b2wKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICdwa2cvb3RoZXIucHknOiAiIiIKKyAg
ICAgICAgICAgICAgICB2YWx1ZXMgPSBbMywgMl0KKyAgICAgICAgICAgICAgICBkZWYgdG9vbCgp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgpID09IDMKKyAgICAgICAg
ICAgICIiIiwKKyAgICAgICAgICAgICdjb25mdGVzdC5weSc6ICIiIgorICAgICAgICAgICAgICAg
IHB5dGVzdF9wbHVnaW5zID0gWydwa2cucGx1Z2luJ10KKyAgICAgICAgICAgICIiIiwKKyAgICAg
ICAgICAgICd0ZXN0X3BrZy5weSc6ICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBwa2cub3Ro
ZXIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90b29sKHRvb2wpOgorICAgICAgICAgICAgICAg
ICAgICB0b29sKCkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9vdGhlcigpOgorICAgICAgICAg
ICAgICAgICAgICBwa2cub3RoZXIudG9vbCgpCisgICAgICAgICAgICAiIiIsCisgICAgICAgIH0K
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqY29udGVudHMpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoJy0tYXNzZXJ0PXJld3JpdGUnKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyc+KmFzc2VydCBhID09IGIqJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRSphc3NlcnQgMiA9PSAzKicsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz4qYXNzZXJ0IHZhbHVlcy5wb3AoKSA9
PSAzKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0UqQXNzZXJ0aW9u
RXJyb3InXSkKKworICAgIGRlZiB0ZXN0X3JlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlX2NoZWNrc190
eXBlcyhzZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcik6CisgICAg
ICAgICAgICBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUoWydweXRlc3RfdGVzdHNfaW50
ZXJuYWxfbm9uX2V4aXN0aW5nJ10pCisgICAgICAgIHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3
cml0ZSgncHl0ZXN0X3Rlc3RzX2ludGVybmFsX25vbl9leGlzdGluZycsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAncHl0ZXN0X3Rlc3RzX2ludGVybmFsX25vbl9leGlz
dGluZzInKQorCisKK2NsYXNzIFRlc3RCaW5SZXBySW50ZWdyYXRpb24ob2JqZWN0KToKKworICAg
IGRlZiB0ZXN0X3B5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmVfY2FsbGVkKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2Fz
c2VydHJlcHJfY29tcGFyZShvcCwgbGVmdCwgcmlnaHQpOgorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoKG9wLCBsZWZ0LCByaWdodCkpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIGxpc3QocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHZhbHVlcworICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAgPT0g
MQorICAgICAgICAgICAgZGVmIHRlc3RfY2hlY2sobGlzdCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGxpc3QgPT0gWygiPT0iLCAwLCAxKV0KKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2hlbGxvKkZBSUwqIiwKKyAgICAgICAgICAgICIq
dGVzdF9jaGVjaypQQVNTKiIsCisgICAgICAgIF0pCisKKworZGVmIGNhbGxlcXVhbChsZWZ0LCBy
aWdodCwgdmVyYm9zZT1GYWxzZSk6CisgICAgY29uZmlnID0gbW9ja19jb25maWcoKQorICAgIGNv
bmZpZy52ZXJib3NlID0gdmVyYm9zZQorICAgIHJldHVybiBwbHVnaW4ucHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZShjb25maWcsICc9PScsIGxlZnQsIHJpZ2h0KQorCisKK2NsYXNzIFRlc3RBc3Nl
cnRfcmVwcmNvbXBhcmUob2JqZWN0KToKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdHlwZXMoc2Vs
Zik6CisgICAgICAgIGFzc2VydCBjYWxsZXF1YWwoWzAsIDFdLCAnZm9vJykgaXMgTm9uZQorCisg
ICAgZGVmIHRlc3Rfc3VtbWFyeShzZWxmKToKKyAgICAgICAgc3VtbWFyeSA9IGNhbGxlcXVhbChb
MCwgMV0sIFswLCAyXSlbMF0KKyAgICAgICAgYXNzZXJ0IGxlbihzdW1tYXJ5KSA8IDY1CisKKyAg
ICBkZWYgdGVzdF90ZXh0X2RpZmYoc2VsZik6CisgICAgICAgIGRpZmYgPSBjYWxsZXF1YWwoJ3Nw
YW0nLCAnZWdncycpWzE6XQorICAgICAgICBhc3NlcnQgJy0gc3BhbScgaW4gZGlmZgorICAgICAg
ICBhc3NlcnQgJysgZWdncycgaW4gZGlmZgorCisgICAgZGVmIHRlc3RfdGV4dF9za2lwcGluZyhz
ZWxmKToKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwoJ2EnICogNTAgKyAnc3BhbScsICdhJyAq
IDUwICsgJ2VnZ3MnKQorICAgICAgICBhc3NlcnQgJ1NraXBwaW5nJyBpbiBsaW5lc1sxXQorICAg
ICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAgIGFzc2VydCAnYScgKiA1MCBub3Qg
aW4gbGluZQorCisgICAgZGVmIHRlc3RfdGV4dF9za2lwcGluZ192ZXJib3NlKHNlbGYpOgorICAg
ICAgICBsaW5lcyA9IGNhbGxlcXVhbCgnYScgKiA1MCArICdzcGFtJywgJ2EnICogNTAgKyAnZWdn
cycsIHZlcmJvc2U9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0ICctICcgKyAnYScgKiA1MCArICdzcGFt
JyBpbiBsaW5lcworICAgICAgICBhc3NlcnQgJysgJyArICdhJyAqIDUwICsgJ2VnZ3MnIGluIGxp
bmVzCisKKyAgICBkZWYgdGVzdF9tdWx0aWxpbmVfdGV4dF9kaWZmKHNlbGYpOgorICAgICAgICBs
ZWZ0ID0gJ2Zvb1xuc3BhbVxuYmFyJworICAgICAgICByaWdodCA9ICdmb29cbmVnZ3NcbmJhcicK
KyAgICAgICAgZGlmZiA9IGNhbGxlcXVhbChsZWZ0LCByaWdodCkKKyAgICAgICAgYXNzZXJ0ICct
IHNwYW0nIGluIGRpZmYKKyAgICAgICAgYXNzZXJ0ICcrIGVnZ3MnIGluIGRpZmYKKworICAgIGRl
ZiB0ZXN0X2xpc3Qoc2VsZik6CisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoWzAsIDFdLCBbMCwg
Ml0pCisgICAgICAgIGFzc2VydCBsZW4oZXhwbCkgPiAxCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCisgICAgICAgIFsnbGVmdCcsICdyaWdodCcsICdleHBlY3RlZCddLCBbCisgICAg
ICAgICAgICAoWzAsIDFdLCBbMCwgMl0sICIiIgorICAgICAgICAgICAgICAgIEZ1bGwgZGlmZjoK
KyAgICAgICAgICAgICAgICAtIFswLCAxXQorICAgICAgICAgICAgICAgID8gICAgIF4KKyAgICAg
ICAgICAgICAgICArIFswLCAyXQorICAgICAgICAgICAgICAgID8gICAgIF4KKyAgICAgICAgICAg
ICIiIiksCisgICAgICAgICAgICAoezA6IDF9LCB7MDogMn0sICIiIgorICAgICAgICAgICAgICAg
IEZ1bGwgZGlmZjoKKyAgICAgICAgICAgICAgICAtIHswOiAxfQorICAgICAgICAgICAgICAgID8g
ICAgIF4KKyAgICAgICAgICAgICAgICArIHswOiAyfQorICAgICAgICAgICAgICAgID8gICAgIF4K
KyAgICAgICAgICAgICIiIiksCisgICAgICAgICAgICAoc2V0KFswLCAxXSksIHNldChbMCwgMl0p
LCAiIiIKKyAgICAgICAgICAgICAgICBGdWxsIGRpZmY6CisgICAgICAgICAgICAgICAgLSBzZXQo
WzAsIDFdKQorICAgICAgICAgICAgICAgID8gICAgICAgICBeCisgICAgICAgICAgICAgICAgKyBz
ZXQoWzAsIDJdKQorICAgICAgICAgICAgICAgID8gICAgICAgICBeCisgICAgICAgICAgICAiIiIg
aWYgbm90IFBZMyBlbHNlICIiIgorICAgICAgICAgICAgICAgIEZ1bGwgZGlmZjoKKyAgICAgICAg
ICAgICAgICAtIHswLCAxfQorICAgICAgICAgICAgICAgID8gICAgIF4KKyAgICAgICAgICAgICAg
ICArIHswLCAyfQorICAgICAgICAgICAgICAgID8gICAgIF4KKyAgICAgICAgICAgICIiIikKKyAg
ICAgICAgXQorICAgICkKKyAgICBkZWYgdGVzdF9pdGVyYWJsZV9mdWxsX2RpZmYoc2VsZiwgbGVm
dCwgcmlnaHQsIGV4cGVjdGVkKToKKyAgICAgICAgIiIiVGVzdCB0aGUgZnVsbCBkaWZmIGFzc2Vy
dGlvbiBmYWlsdXJlIGV4cGxhbmF0aW9uLgorCisgICAgICAgIFdoZW4gdmVyYm9zZSBpcyBGYWxz
ZSwgdGhlbiBqdXN0IGEgLXYgbm90aWNlIHRvIGdldCB0aGUgZGlmZiBpcyByZW5kZXJlZCwKKyAg
ICAgICAgd2hlbiB2ZXJib3NlIGlzIFRydWUsIHRoZW4gbmRpZmYgb2YgdGhlIHBwcmludCBpcyBy
ZXR1cm5lZC4KKyAgICAgICAgIiIiCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwobGVmdCwgcmln
aHQsIHZlcmJvc2U9RmFsc2UpCisgICAgICAgIGFzc2VydCBleHBsWy0xXSA9PSAnVXNlIC12IHRv
IGdldCB0aGUgZnVsbCBkaWZmJworICAgICAgICBleHBsID0gJ1xuJy5qb2luKGNhbGxlcXVhbChs
ZWZ0LCByaWdodCwgdmVyYm9zZT1UcnVlKSkKKyAgICAgICAgYXNzZXJ0IGV4cGwuZW5kc3dpdGgo
dGV4dHdyYXAuZGVkZW50KGV4cGVjdGVkKS5zdHJpcCgpKQorCisgICAgZGVmIHRlc3RfbGlzdF9k
aWZmZXJlbnRfbGVuZ3RocyhzZWxmKToKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChbMCwgMV0s
IFswLCAxLCAyXSkKKyAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKKyAgICAgICAgZXhwbCA9
IGNhbGxlcXVhbChbMCwgMSwgMl0sIFswLCAxXSkKKyAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+
IDEKKworICAgIGRlZiB0ZXN0X2RpY3Qoc2VsZik6CisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwo
eydhJzogMH0sIHsnYSc6IDF9KQorICAgICAgICBhc3NlcnQgbGVuKGV4cGwpID4gMQorCisgICAg
ZGVmIHRlc3RfZGljdF9vbWl0dGluZyhzZWxmKToKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwo
eydhJzogMCwgJ2InOiAxfSwgeydhJzogMSwgJ2InOiAxfSkKKyAgICAgICAgYXNzZXJ0IGxpbmVz
WzFdLnN0YXJ0c3dpdGgoJ09taXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW0nKQorICAgICAgICBhc3Nl
cnQgJ0NvbW1vbiBpdGVtcycgbm90IGluIGxpbmVzCisgICAgICAgIGZvciBsaW5lIGluIGxpbmVz
WzE6XToKKyAgICAgICAgICAgIGFzc2VydCAnYicgbm90IGluIGxpbmUKKworICAgIGRlZiB0ZXN0
X2RpY3Rfb21pdHRpbmdfd2l0aF92ZXJib3NpdHlfMShzZWxmKToKKyAgICAgICAgIiIiIEVuc3Vy
ZSBkaWZmZXJpbmcgaXRlbXMgYXJlIHZpc2libGUgZm9yIHZlcmJvc2l0eT0xICgjMTUxMikgIiIi
CisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKHsnYSc6IDAsICdiJzogMX0sIHsnYSc6IDEsICdi
JzogMX0sIHZlcmJvc2U9MSkKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdLnN0YXJ0c3dpdGgoJ09t
aXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW0nKQorICAgICAgICBhc3NlcnQgbGluZXNbMl0uc3RhcnRz
d2l0aCgnRGlmZmVyaW5nIGl0ZW1zJykKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzNdID09ICJ7J2En
OiAwfSAhPSB7J2EnOiAxfSIKKyAgICAgICAgYXNzZXJ0ICdDb21tb24gaXRlbXMnIG5vdCBpbiBs
aW5lcworCisgICAgZGVmIHRlc3RfZGljdF9vbWl0dGluZ193aXRoX3ZlcmJvc2l0eV8yKHNlbGYp
OgorICAgICAgICBsaW5lcyA9IGNhbGxlcXVhbCh7J2EnOiAwLCAnYic6IDF9LCB7J2EnOiAxLCAn
Yic6IDF9LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lc1sxXS5zdGFydHN3aXRoKCdD
b21tb24gaXRlbXM6JykKKyAgICAgICAgYXNzZXJ0ICdPbWl0dGluZycgbm90IGluIGxpbmVzWzFd
CisgICAgICAgIGFzc2VydCBsaW5lc1syXSA9PSAieydiJzogMX0iCisKKyAgICBkZWYgdGVzdF9z
ZXQoc2VsZik6CisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoc2V0KFswLCAxXSksIHNldChbMCwg
Ml0pKQorICAgICAgICBhc3NlcnQgbGVuKGV4cGwpID4gMQorCisgICAgZGVmIHRlc3RfZnJvemVu
emV0KHNlbGYpOgorICAgICAgICBleHBsID0gY2FsbGVxdWFsKGZyb3plbnNldChbMCwgMV0pLCBz
ZXQoWzAsIDJdKSkKKyAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKKworICAgIGRlZiB0ZXN0
X1NlcXVlbmNlKHNlbGYpOgorICAgICAgICBjb2wgPSBweS5idWlsdGluLl90cnlpbXBvcnQoCisg
ICAgICAgICAgICAiY29sbGVjdGlvbnMuYWJjIiwKKyAgICAgICAgICAgICJjb2xsZWN0aW9ucyIs
CisgICAgICAgICAgICAic3lzIikKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoY29sLCAiTXV0YWJs
ZVNlcXVlbmNlIik6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiY2Fubm90IGltcG9ydCBNdXRh
YmxlU2VxdWVuY2UiKQorICAgICAgICBNdXRhYmxlU2VxdWVuY2UgPSBjb2wuTXV0YWJsZVNlcXVl
bmNlCisKKyAgICAgICAgY2xhc3MgVGVzdFNlcXVlbmNlKE11dGFibGVTZXF1ZW5jZSk6ICAjIHdv
cmtzIHdpdGggYSBTZXF1ZW5jZSBzdWJjbGFzcworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGl0ZXJhYmxlKToKKyAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnRzID0gbGlzdChpdGVy
YWJsZSkKKworICAgICAgICAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGl0ZW0pOgorICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLmVsZW1lbnRzW2l0ZW1dCisKKyAgICAgICAgICAgIGRlZiBf
X2xlbl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBsZW4oc2VsZi5lbGVtZW50cykK
KworICAgICAgICAgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGl0ZW0sIHZhbHVlKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBpdGVt
KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBpbnNlcnQoc2VsZiwg
aXRlbSwgaW5kZXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBleHBsID0gY2Fs
bGVxdWFsKFRlc3RTZXF1ZW5jZShbMCwgMV0pLCBsaXN0KFswLCAyXSkpCisgICAgICAgIGFzc2Vy
dCBsZW4oZXhwbCkgPiAxCisKKyAgICBkZWYgdGVzdF9saXN0X3R1cGxlcyhzZWxmKToKKyAgICAg
ICAgZXhwbCA9IGNhbGxlcXVhbChbXSwgWygxLCAyKV0pCisgICAgICAgIGFzc2VydCBsZW4oZXhw
bCkgPiAxCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoWygxLCAyKV0sIFtdKQorICAgICAgICBh
c3NlcnQgbGVuKGV4cGwpID4gMQorCisgICAgZGVmIHRlc3RfbGlzdF9iYWRfcmVwcihzZWxmKToK
KyAgICAgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAgICAgIGV4cGwgPSBj
YWxsZXF1YWwoW10sIFtBKCldKQorICAgICAgICBhc3NlcnQgJ1ZhbHVlRXJyb3InIGluICIiLmpv
aW4oZXhwbCkKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbCh7fSwgeycxJzogQSgpfSkKKyAgICAg
ICAgYXNzZXJ0ICdmYXVsdHknIGluICIiLmpvaW4oZXhwbCkKKworICAgIGRlZiB0ZXN0X29uZV9y
ZXByX2VtcHR5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgdGhlIGZhdWx0eSBlbXB0eSBz
dHJpbmcgcmVwciBkaWQgdHJpZ2dlcgorICAgICAgICBhIHVuYm91bmQgbG9jYWwgZXJyb3IgaW4g
X2RpZmZfdGV4dAorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQShzdHIpOgorICAgICAgICAg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAnJworICAgICAg
ICBleHBsID0gY2FsbGVxdWFsKEEoKSwgJycpCisgICAgICAgIGFzc2VydCBub3QgZXhwbAorCisg
ICAgZGVmIHRlc3RfcmVwcl9ub19leGMoc2VsZik6CisgICAgICAgIGV4cGwgPSAnICcuam9pbihj
YWxsZXF1YWwoJ2ZvbycsICdiYXInKSkKKyAgICAgICAgYXNzZXJ0ICdyYWlzZWQgaW4gcmVwcigp
JyBub3QgaW4gZXhwbAorCisgICAgZGVmIHRlc3RfdW5pY29kZShzZWxmKToKKyAgICAgICAgbGVm
dCA9IHB5LmJ1aWx0aW4uX3RvdGV4dCgnwqPigqwnLCAndXRmLTgnKQorICAgICAgICByaWdodCA9
IHB5LmJ1aWx0aW4uX3RvdGV4dCgnwqMnLCAndXRmLTgnKQorICAgICAgICBleHBsID0gY2FsbGVx
dWFsKGxlZnQsIHJpZ2h0KQorICAgICAgICBhc3NlcnQgZXhwbFswXSA9PSBweS5idWlsdGluLl90
b3RleHQoIifCo+KCrCcgPT0gJ8KjJyIsICd1dGYtOCcpCisgICAgICAgIGFzc2VydCBleHBsWzFd
ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgnLSDCo+KCrCcsICd1dGYtOCcpCisgICAgICAgIGFzc2Vy
dCBleHBsWzJdID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgnKyDCoycsICd1dGYtOCcpCisKKyAgICBk
ZWYgdGVzdF9ub25hc2NpaV90ZXh0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgOmlzc3Vl
OiA4NzcKKyAgICAgICAgbm9uIGFzY2lpIHB5dGhvbjIgc3RyIGNhdXNlZCBhIFVuaWNvZGVEZWNv
ZGVFcnJvcgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQShzdHIpOgorICAgICAgICAgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAnXHhmZicKKyAgICAg
ICAgZXhwbCA9IGNhbGxlcXVhbChBKCksICcxJykKKyAgICAgICAgYXNzZXJ0IGV4cGwKKworICAg
IGRlZiB0ZXN0X2Zvcm1hdF9ub25hc2NpaV9leHBsYW5hdGlvbihzZWxmKToKKyAgICAgICAgYXNz
ZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCfOuycpCisKKyAgICBkZWYgdGVzdF9tb2ppYmFr
ZShzZWxmKToKKyAgICAgICAgIyBpc3N1ZSA0MjkKKyAgICAgICAgbGVmdCA9ICdlJworICAgICAg
ICByaWdodCA9ICdceGMzXHhhOScKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobGVmdCwgcHku
YnVpbHRpbi5ieXRlcyk6CisgICAgICAgICAgICBsZWZ0ID0gcHkuYnVpbHRpbi5ieXRlcyhsZWZ0
LCAndXRmLTgnKQorICAgICAgICAgICAgcmlnaHQgPSBweS5idWlsdGluLmJ5dGVzKHJpZ2h0LCAn
dXRmLTgnKQorICAgICAgICBleHBsID0gY2FsbGVxdWFsKGxlZnQsIHJpZ2h0KQorICAgICAgICBm
b3IgbGluZSBpbiBleHBsOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZSwgcHku
YnVpbHRpbi50ZXh0KQorICAgICAgICBtc2cgPSBweS5idWlsdGluLl90b3RleHQoJ1xuJykuam9p
bihleHBsKQorICAgICAgICBhc3NlcnQgbXNnCisKKworY2xhc3MgVGVzdEZvcm1hdEV4cGxhbmF0
aW9uKG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9zcGVjaWFsX2NoYXJzX2Z1bGwoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgICMgSXNzdWUgNDUzLCBmb3IgdGhlIGJ1ZyB0aGlzIHdvdWxkIHJhaXNl
IEluZGV4RXJyb3IKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
ZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICdcXG59JyA9PSAnJworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIipBc3NlcnRpb25FcnJvcioiLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3RfZm10X3NpbXBsZShzZWxmKToKKyAgICAgICAgZXhwbCA9ICdhc3NlcnQgZm9vJwor
ICAgICAgICBhc3NlcnQgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oZXhwbCkgPT0gJ2Fzc2VydCBm
b28nCisKKyAgICBkZWYgdGVzdF9mbXRfd2hlcmUoc2VsZik6CisgICAgICAgIGV4cGwgPSAnXG4n
LmpvaW4oWydhc3NlcnQgMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd7MSA9IGZvbycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICd9ID09IDInXSkKKyAgICAgICAgcmVzID0gJ1xu
Jy5qb2luKFsnYXNzZXJ0IDEgPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJyArICB3
aGVyZSAxID0gZm9vJ10pCisgICAgICAgIGFzc2VydCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbihl
eHBsKSA9PSByZXMKKworICAgIGRlZiB0ZXN0X2ZtdF9hbmQoc2VsZik6CisgICAgICAgIGV4cGwg
PSAnXG4nLmpvaW4oWydhc3NlcnQgMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd7MSA9
IGZvbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd9ID09IDInLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAnezIgPSBiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfSdd
KQorICAgICAgICByZXMgPSAnXG4nLmpvaW4oWydhc3NlcnQgMSA9PSAyJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnICsgIHdoZXJlIDEgPSBmb28nLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICcgKyAgYW5kICAgMiA9IGJhciddKQorICAgICAgICBhc3NlcnQgdXRpbC5mb3JtYXRfZXhw
bGFuYXRpb24oZXhwbCkgPT0gcmVzCisKKyAgICBkZWYgdGVzdF9mbXRfd2hlcmVfbmVzdGVkKHNl
bGYpOgorICAgICAgICBleHBsID0gJ1xuJy5qb2luKFsnYXNzZXJ0IDEnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAnezEgPSBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAne2Zv
byA9IGJhcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd9JywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ30gPT0gMiddKQorICAgICAgICByZXMgPSAnXG4nLmpvaW4oWydhc3NlcnQg
MSA9PSAyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgIHdoZXJlIDEgPSBmb28nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICcgKyAgICB3aGVyZSBmb28gPSBiYXInXSkKKyAgICAg
ICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGwpID09IHJlcworCisgICAgZGVm
IHRlc3RfZm10X25ld2xpbmUoc2VsZik6CisgICAgICAgIGV4cGwgPSAnXG4nLmpvaW4oWydhc3Nl
cnQgImZvbyIgPT0gImJhciInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfi0gZm9vJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgJ34rIGJhciddKQorICAgICAgICByZXMgPSAnXG4n
LmpvaW4oWydhc3NlcnQgImZvbyIgPT0gImJhciInLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICcgIC0gZm9vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICArIGJhciddKQorICAgICAg
ICBhc3NlcnQgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oZXhwbCkgPT0gcmVzCisKKyAgICBkZWYg
dGVzdF9mbXRfbmV3bGluZV9lc2NhcGVkKHNlbGYpOgorICAgICAgICBleHBsID0gJ1xuJy5qb2lu
KFsnYXNzZXJ0IGZvbyA9PSBiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYmF6J10p
CisgICAgICAgIHJlcyA9ICdhc3NlcnQgZm9vID09IGJhclxcbmJheicKKyAgICAgICAgYXNzZXJ0
IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGwpID09IHJlcworCisgICAgZGVmIHRlc3RfZm10
X25ld2xpbmVfYmVmb3JlX3doZXJlKHNlbGYpOgorICAgICAgICBleHBsID0gJ1xuJy5qb2luKFsn
dGhlIGFzc2VydGlvbiBtZXNzYWdlIGhlcmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAn
PmFzc2VydCAxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sxID0gZm9vJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ30gPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICd7MiA9IGJhcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd9J10pCisgICAgICAgIHJl
cyA9ICdcbicuam9pbihbJ3RoZSBhc3NlcnRpb24gbWVzc2FnZSBoZXJlJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnYXNzZXJ0IDEgPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
JyArICB3aGVyZSAxID0gZm9vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgIGFuZCAg
IDIgPSBiYXInXSkKKyAgICAgICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGwp
ID09IHJlcworCisgICAgZGVmIHRlc3RfZm10X211bHRpX25ld2xpbmVfYmVmb3JlX3doZXJlKHNl
bGYpOgorICAgICAgICBleHBsID0gJ1xuJy5qb2luKFsndGhlIGFzc2VydGlvbicsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICd+bWVzc2FnZSBoZXJlJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgJz5hc3NlcnQgMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd7MSA9IGZvbycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICd9ID09IDInLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAnezIgPSBiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfSddKQorICAg
ICAgICByZXMgPSAnXG4nLmpvaW4oWyd0aGUgYXNzZXJ0aW9uJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAnICBtZXNzYWdlIGhlcmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdhc3Nl
cnQgMSA9PSAyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgIHdoZXJlIDEgPSBmb28n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICcgKyAgYW5kICAgMiA9IGJhciddKQorICAgICAg
ICBhc3NlcnQgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oZXhwbCkgPT0gcmVzCisKKworY2xhc3Mg
VGVzdFRydW5jYXRlRXhwbGFuYXRpb24ob2JqZWN0KToKKworICAgICIiIiBDb25maXJtIGFzc2Vy
dGlvbiBvdXRwdXQgaXMgdHJ1bmNhdGVkIGFzIGV4cGVjdGVkICIiIgorCisgICAgIyBUaGUgbnVt
YmVyIG9mIGxpbmVzIGluIHRoZSB0cnVuY2F0aW9uIGV4cGxhbmF0aW9uIG1lc3NhZ2UuIFVzZWQK
KyAgICAjIHRvIGNhbGN1bGF0ZSB0aGF0IHJlc3VsdHMgaGF2ZSB0aGUgZXhwZWN0ZWQgbGVuZ3Ro
LgorICAgIExJTkVTX0lOX1RSVU5DQVRJT05fTVNHID0gMgorCisgICAgZGVmIHRlc3RfZG9lc250
X3RydW5jYXRlX3doZW5faW5wdXRfaXNfZW1wdHlfbGlzdChzZWxmKToKKyAgICAgICAgZXhwbCA9
IFtdCisgICAgICAgIHJlc3VsdCA9IHRydW5jYXRlLl90cnVuY2F0ZV9leHBsYW5hdGlvbihleHBs
LCBtYXhfbGluZXM9OCwgbWF4X2NoYXJzPTEwMCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBl
eHBsCisKKyAgICBkZWYgdGVzdF9kb2VzbnRfdHJ1bmNhdGVfYXRfd2hlbl9pbnB1dF9pc181X2xp
bmVzX2FuZF9MVF9tYXhfY2hhcnMoc2VsZik6CisgICAgICAgIGV4cGwgPSBbJ2EnICogMTAwIGZv
ciB4IGluIHJhbmdlKDUpXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1bmNhdGVfZXhw
bGFuYXRpb24oZXhwbCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz04ICogODApCisgICAgICAgIGFz
c2VydCByZXN1bHQgPT0gZXhwbAorCisgICAgZGVmIHRlc3RfdHJ1bmNhdGVzX2F0XzhfbGluZXNf
d2hlbl9naXZlbl9saXN0X29mX2VtcHR5X3N0cmluZ3Moc2VsZik6CisgICAgICAgIGV4cGwgPSBb
JycgZm9yIHggaW4gcmFuZ2UoNTApXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1bmNh
dGVfZXhwbGFuYXRpb24oZXhwbCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz0xMDApCisgICAgICAg
IGFzc2VydCByZXN1bHQgIT0gZXhwbAorICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gOCAr
IHNlbGYuTElORVNfSU5fVFJVTkNBVElPTl9NU0cKKyAgICAgICAgYXNzZXJ0ICJGdWxsIG91dHB1
dCB0cnVuY2F0ZWQiIGluIHJlc3VsdFstMV0KKyAgICAgICAgYXNzZXJ0ICI0MyBsaW5lcyBoaWRk
ZW4iIGluIHJlc3VsdFstMV0KKyAgICAgICAgbGFzdF9saW5lX2JlZm9yZV90cnVuY19tc2cgPSBy
ZXN1bHRbLSBzZWxmLkxJTkVTX0lOX1RSVU5DQVRJT05fTVNHIC0gMV0KKyAgICAgICAgYXNzZXJ0
IGxhc3RfbGluZV9iZWZvcmVfdHJ1bmNfbXNnLmVuZHN3aXRoKCIuLi4iKQorCisgICAgZGVmIHRl
c3RfdHJ1bmNhdGVzX2F0XzhfbGluZXNfd2hlbl9maXJzdF84X2xpbmVzX2FyZV9MVF9tYXhfY2hh
cnMoc2VsZik6CisgICAgICAgIGV4cGwgPSBbJ2EnIGZvciB4IGluIHJhbmdlKDEwMCldCisgICAg
ICAgIHJlc3VsdCA9IHRydW5jYXRlLl90cnVuY2F0ZV9leHBsYW5hdGlvbihleHBsLCBtYXhfbGlu
ZXM9OCwgbWF4X2NoYXJzPTggKiA4MCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCAhPSBleHBsCisg
ICAgICAgIGFzc2VydCBsZW4ocmVzdWx0KSA9PSA4ICsgc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9O
X01TRworICAgICAgICBhc3NlcnQgIkZ1bGwgb3V0cHV0IHRydW5jYXRlZCIgaW4gcmVzdWx0Wy0x
XQorICAgICAgICBhc3NlcnQgIjkzIGxpbmVzIGhpZGRlbiIgaW4gcmVzdWx0Wy0xXQorICAgICAg
ICBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZyA9IHJlc3VsdFstIHNlbGYuTElORVNfSU5fVFJV
TkNBVElPTl9NU0cgLSAxXQorICAgICAgICBhc3NlcnQgbGFzdF9saW5lX2JlZm9yZV90cnVuY19t
c2cuZW5kc3dpdGgoIi4uLiIpCisKKyAgICBkZWYgdGVzdF90cnVuY2F0ZXNfYXRfOF9saW5lc193
aGVuX2ZpcnN0XzhfbGluZXNfYXJlX0VRX21heF9jaGFycyhzZWxmKToKKyAgICAgICAgZXhwbCA9
IFsnYScgKiA4MCBmb3IgeCBpbiByYW5nZSgxNildCisgICAgICAgIHJlc3VsdCA9IHRydW5jYXRl
Ll90cnVuY2F0ZV9leHBsYW5hdGlvbihleHBsLCBtYXhfbGluZXM9OCwgbWF4X2NoYXJzPTggKiA4
MCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCAhPSBleHBsCisgICAgICAgIGFzc2VydCBsZW4ocmVz
dWx0KSA9PSA4ICsgc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9OX01TRworICAgICAgICBhc3NlcnQg
IkZ1bGwgb3V0cHV0IHRydW5jYXRlZCIgaW4gcmVzdWx0Wy0xXQorICAgICAgICBhc3NlcnQgIjkg
bGluZXMgaGlkZGVuIiBpbiByZXN1bHRbLTFdCisgICAgICAgIGxhc3RfbGluZV9iZWZvcmVfdHJ1
bmNfbXNnID0gcmVzdWx0Wy0gc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9OX01TRyAtIDFdCisgICAg
ICAgIGFzc2VydCBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZy5lbmRzd2l0aCgiLi4uIikKKwor
ICAgIGRlZiB0ZXN0X3RydW5jYXRlc19hdF80X2xpbmVzX3doZW5fZmlyc3RfNF9saW5lc19hcmVf
R1RfbWF4X2NoYXJzKHNlbGYpOgorICAgICAgICBleHBsID0gWydhJyAqIDI1MCBmb3IgeCBpbiBy
YW5nZSgxMCldCisgICAgICAgIHJlc3VsdCA9IHRydW5jYXRlLl90cnVuY2F0ZV9leHBsYW5hdGlv
bihleHBsLCBtYXhfbGluZXM9OCwgbWF4X2NoYXJzPTk5OSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dCAhPSBleHBsCisgICAgICAgIGFzc2VydCBsZW4ocmVzdWx0KSA9PSA0ICsgc2VsZi5MSU5FU19J
Tl9UUlVOQ0FUSU9OX01TRworICAgICAgICBhc3NlcnQgIkZ1bGwgb3V0cHV0IHRydW5jYXRlZCIg
aW4gcmVzdWx0Wy0xXQorICAgICAgICBhc3NlcnQgIjcgbGluZXMgaGlkZGVuIiBpbiByZXN1bHRb
LTFdCisgICAgICAgIGxhc3RfbGluZV9iZWZvcmVfdHJ1bmNfbXNnID0gcmVzdWx0Wy0gc2VsZi5M
SU5FU19JTl9UUlVOQ0FUSU9OX01TRyAtIDFdCisgICAgICAgIGFzc2VydCBsYXN0X2xpbmVfYmVm
b3JlX3RydW5jX21zZy5lbmRzd2l0aCgiLi4uIikKKworICAgIGRlZiB0ZXN0X3RydW5jYXRlc19h
dF8xX2xpbmVfd2hlbl9maXJzdF9saW5lX2lzX0dUX21heF9jaGFycyhzZWxmKToKKyAgICAgICAg
ZXhwbCA9IFsnYScgKiAyNTAgZm9yIHggaW4gcmFuZ2UoMTAwMCldCisgICAgICAgIHJlc3VsdCA9
IHRydW5jYXRlLl90cnVuY2F0ZV9leHBsYW5hdGlvbihleHBsLCBtYXhfbGluZXM9OCwgbWF4X2No
YXJzPTEwMCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCAhPSBleHBsCisgICAgICAgIGFzc2VydCBs
ZW4ocmVzdWx0KSA9PSAxICsgc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9OX01TRworICAgICAgICBh
c3NlcnQgIkZ1bGwgb3V0cHV0IHRydW5jYXRlZCIgaW4gcmVzdWx0Wy0xXQorICAgICAgICBhc3Nl
cnQgIjEwMDAgbGluZXMgaGlkZGVuIiBpbiByZXN1bHRbLTFdCisgICAgICAgIGxhc3RfbGluZV9i
ZWZvcmVfdHJ1bmNfbXNnID0gcmVzdWx0Wy0gc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9OX01TRyAt
IDFdCisgICAgICAgIGFzc2VydCBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZy5lbmRzd2l0aCgi
Li4uIikKKworICAgIGRlZiB0ZXN0X2Z1bGxfb3V0cHV0X3RydW5jYXRlZChzZWxmLCBtb25rZXlw
YXRjaCwgdGVzdGRpcik6CisgICAgICAgICIiIiBUZXN0IGFnYWluc3QgZnVsbCBydW5weXRlc3Qo
KSBvdXRwdXQuICIiIgorCisgICAgICAgIGxpbmVfY291bnQgPSA3CisgICAgICAgIGxpbmVfbGVu
ID0gMTAwCisgICAgICAgIGV4cGVjdGVkX3RydW5jYXRlZF9saW5lcyA9IDIKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKHIiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X21hbnlfbGluZXMoKToK
KyAgICAgICAgICAgICAgICBhID0gbGlzdChbc3RyKGkpWzBdICogJWQgZm9yIGkgaW4gcmFuZ2Uo
JWQpXSkKKyAgICAgICAgICAgICAgICBiID0gYVs6OjJdCisgICAgICAgICAgICAgICAgYSA9ICdc
bicuam9pbihtYXAoc3RyLCBhKSkKKyAgICAgICAgICAgICAgICBiID0gJ1xuJy5qb2luKG1hcChz
dHIsIGIpKQorICAgICAgICAgICAgICAgIGFzc2VydCBhID09IGIKKyAgICAgICAgIiIiICUgKGxp
bmVfbGVuLCBsaW5lX2NvdW50KSkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCdDSScsIHJh
aXNpbmc9RmFsc2UpCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAg
ICAgICAjIHdpdGhvdXQgLXZ2LCB0cnVuY2F0ZSB0aGUgbWVzc2FnZSBzaG93aW5nIGEgZmV3IGRp
ZmYgbGluZXMgb25seQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIiotIDEqIiwKKyAgICAgICAgICAgICIqLSAzKiIsCisgICAgICAgICAgICAiKi0g
NSoiLAorICAgICAgICAgICAgIip0cnVuY2F0ZWQgKCVkIGxpbmVzIGhpZGRlbikqdXNlKi12dioi
ICUgZXhwZWN0ZWRfdHJ1bmNhdGVkX2xpbmVzLAorICAgICAgICBdKQorCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCctdnYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIiogNioiLAorICAgICAgICBdKQorCisgICAgICAgIG1v
bmtleXBhdGNoLnNldGVudignQ0knLCAnMScpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqIDYqIiwKKyAgICAgICAgXSkKKworCitkZWYgdGVzdF9weXRob24yNV9jb21waWxlX2lz
c3VlMjU3KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVm
IHRlc3RfcmV3cml0dGVuKCk6CisgICAgICAgICAgICBhc3NlcnQgMSA9PSAyCisgICAgICAgICMg
c29tZSBjb21tZW50CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKCIiIgorICAgICAgICAgICAgKkUqYXNzZXJ0IDEgPT0gMioKKyAgICAgICAgICAgICoxIGZh
aWxlZCoKKyAgICAiIiIpCisKKworZGVmIHRlc3RfcmV3cml0dGVuKHRlc3RkaXIpOgorICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfcmV3cml0dGVuKCk6CisgICAg
ICAgICAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygpCisgICAgIiIiKQorICAg
IGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKKworZGVmIHRlc3RfcmVwcmNv
bXBhcmVfbm90aW4obW9ja19jb25maWcpOgorICAgIGRldGFpbCA9IHBsdWdpbi5weXRlc3RfYXNz
ZXJ0cmVwcl9jb21wYXJlKAorICAgICAgICBtb2NrX2NvbmZpZywgJ25vdCBpbicsICdmb28nLCAn
YWFhZm9vYmJiJylbMTpdCisgICAgYXNzZXJ0IGRldGFpbCA9PSBbIidmb28nIGlzIGNvbnRhaW5l
ZCBoZXJlOiIsICcgIGFhYWZvb2JiYicsICc/ICAgICsrKyddCisKKworZGVmIHRlc3RfcHl0ZXN0
X2Fzc2VydHJlcHJfY29tcGFyZV9pbnRlZ3JhdGlvbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICB4ID0g
c2V0KHJhbmdlKDEwMCkpCisgICAgICAgICAgICB5ID0geC5jb3B5KCkKKyAgICAgICAgICAgIHku
cmVtb3ZlKDUwKQorICAgICAgICAgICAgYXNzZXJ0IHggPT0geQorICAgICIiIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgIipkZWYgdGVzdF9oZWxsbygpOioiLAorICAgICAgICAiKmFzc2VydCB4ID09
IHkqIiwKKyAgICAgICAgIipFKkV4dHJhIGl0ZW1zKmxlZnQqIiwKKyAgICAgICAgIipFKjUwKiIs
CisgICAgXSkKKworCitkZWYgdGVzdF9zZXF1ZW5jZV9jb21wYXJpc29uX3VzZXNfcmVwcih0ZXN0
ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2hlbGxv
KCk6CisgICAgICAgICAgICB4ID0gc2V0KCJoZWxsbyB4IikKKyAgICAgICAgICAgIHkgPSBzZXQo
ImhlbGxvIHkiKQorICAgICAgICAgICAgYXNzZXJ0IHggPT0geQorICAgICIiIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgIipkZWYgdGVzdF9oZWxsbygpOioiLAorICAgICAgICAiKmFzc2VydCB4ID09
IHkqIiwKKyAgICAgICAgIipFKkV4dHJhIGl0ZW1zKmxlZnQqIiwKKyAgICAgICAgIipFKid4Jyoi
LAorICAgICAgICAiKkUqRXh0cmEgaXRlbXMqcmlnaHQqIiwKKyAgICAgICAgIipFKid5JyoiLAor
ICAgIF0pCisKKworZGVmIHRlc3RfYXNzZXJ0cmVwcl9sb2FkZWRfcGVyX2Rpcih0ZXN0ZGlyKToK
KyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9iYXNlPVsnZGVmIHRlc3RfYmFzZSgpOiBhc3Nl
cnQgMSA9PSAyJ10pCisgICAgYSA9IHRlc3RkaXIubWtkaXIoJ2EnKQorICAgIGFfdGVzdCA9IGEu
am9pbigndGVzdF9hLnB5JykKKyAgICBhX3Rlc3Qud3JpdGUoJ2RlZiB0ZXN0X2EoKTogYXNzZXJ0
IDEgPT0gMicpCisgICAgYV9jb25mdGVzdCA9IGEuam9pbignY29uZnRlc3QucHknKQorICAgIGFf
Y29uZnRlc3Qud3JpdGUoJ2RlZiBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlKCk6IHJldHVybiBb
InN1bW1hcnkgYSJdJykKKyAgICBiID0gdGVzdGRpci5ta2RpcignYicpCisgICAgYl90ZXN0ID0g
Yi5qb2luKCd0ZXN0X2IucHknKQorICAgIGJfdGVzdC53cml0ZSgnZGVmIHRlc3RfYigpOiBhc3Nl
cnQgMSA9PSAyJykKKyAgICBiX2NvbmZ0ZXN0ID0gYi5qb2luKCdjb25mdGVzdC5weScpCisgICAg
Yl9jb25mdGVzdC53cml0ZSgnZGVmIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoKTogcmV0dXJu
IFsic3VtbWFyeSBiIl0nKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKmRlZiB0ZXN0X2Jhc2UoKToq
JywKKyAgICAgICAgJypFKmFzc2VydCAxID09IDIqJywKKyAgICAgICAgJypkZWYgdGVzdF9hKCk6
KicsCisgICAgICAgICcqRSphc3NlcnQgc3VtbWFyeSBhKicsCisgICAgICAgICcqZGVmIHRlc3Rf
YigpOionLAorICAgICAgICAnKkUqYXNzZXJ0IHN1bW1hcnkgYionXSkKKworCitkZWYgdGVzdF9h
c3NlcnRpb25fb3B0aW9ucyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICB4ID0gMworICAgICAgICAgICAg
YXNzZXJ0IHggPT0gNAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgYXNzZXJ0ICIzID09IDQiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItLWFzc2VydD1wbGFpbiIpCisgICAgYXNz
ZXJ0ICIzID09IDQiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfdHJp
cGxlX3F1b3RlZF9zdHJpbmdfaXNzdWUxMTModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgYXNzZXJ0ICIi
ID09ICcnJworICAgICcnJyIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1m
dWxsdHJhY2UiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIq
MSBmYWlsZWQqIiwKKyAgICBdKQorICAgIGFzc2VydCAnU3ludGF4RXJyb3InIG5vdCBpbiByZXN1
bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfdHJhY2ViYWNrX2ZhaWx1cmUodGVzdGRpcik6
CisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiBnKCk6CisgICAg
ICAgICAgICByZXR1cm4gMgorICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgIGFzc2VydCB4
ID09IGcoKQorICAgICAgICBkZWYgdGVzdF9vbmVmYWlscygpOgorICAgICAgICAgICAgZigzKQor
ICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwgIi0tdGI9bG9uZyIp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIip0ZXN0X3RyYWNl
YmFja19mYWlsdXJlLnB5IEYqIiwKKyAgICAgICAgIj09PT0qIEZBSUxVUkVTICo9PT09IiwKKyAg
ICAgICAgIl9fX18qX19fXyIsCisgICAgICAgICIiLAorICAgICAgICAiICAgIGRlZiB0ZXN0X29u
ZWZhaWxzKCk6IiwKKyAgICAgICAgIj4gICAgICAgZigzKSIsCisgICAgICAgICIiLAorICAgICAg
ICAiKnRlc3RfKi5weTo2OiAiLAorICAgICAgICAiXyBfIF8gKiIsCisgICAgICAgICMgIiIsCisg
ICAgICAgICIgICAgZGVmIGYoeCk6IiwKKyAgICAgICAgIj4gICAgICAgYXNzZXJ0IHggPT0gZygp
IiwKKyAgICAgICAgIkUgICAgICAgYXNzZXJ0IDMgPT0gMiIsCisgICAgICAgICJFICAgICAgICAr
ICB3aGVyZSAyID0gZygpIiwKKyAgICAgICAgIiIsCisgICAgICAgICIqdGVzdF90cmFjZWJhY2tf
ZmFpbHVyZS5weTo0OiBBc3NlcnRpb25FcnJvciIKKyAgICBdKQorCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QocDEpICAjICJhdXRvIgorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICIqdGVzdF90cmFjZWJhY2tfZmFpbHVyZS5weSBGKiIsCisgICAgICAg
ICI9PT09KiBGQUlMVVJFUyAqPT09PSIsCisgICAgICAgICJfX19fKl9fX18iLAorICAgICAgICAi
IiwKKyAgICAgICAgIiAgICBkZWYgdGVzdF9vbmVmYWlscygpOiIsCisgICAgICAgICI+ICAgICAg
IGYoMykiLAorICAgICAgICAiIiwKKyAgICAgICAgIip0ZXN0XyoucHk6NjogIiwKKyAgICAgICAg
IiIsCisgICAgICAgICIgICAgZGVmIGYoeCk6IiwKKyAgICAgICAgIj4gICAgICAgYXNzZXJ0IHgg
PT0gZygpIiwKKyAgICAgICAgIkUgICAgICAgYXNzZXJ0IDMgPT0gMiIsCisgICAgICAgICJFICAg
ICAgICArICB3aGVyZSAyID0gZygpIiwKKyAgICAgICAgIiIsCisgICAgICAgICIqdGVzdF90cmFj
ZWJhY2tfZmFpbHVyZS5weTo0OiBBc3NlcnRpb25FcnJvciIKKyAgICBdKQorCisKK0BweXRlc3Qu
bWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mb1s6Ml0gPD0gKDMsIDMpLCByZWFzb249J1B5dGhv
biAzLjQrIHNob3dzIGNoYWluZWQgZXhjZXB0aW9ucyBvbiBtdWx0aXByb2Nlc3MnKQorZGVmIHRl
c3RfZXhjZXB0aW9uX2hhbmRsaW5nX25vX3RyYWNlYmFjayh0ZXN0ZGlyKToKKyAgICAiIiIKKyAg
ICBIYW5kbGUgY2hhaW4gZXhjZXB0aW9ucyBpbiB0YXNrcyBzdWJtaXR0ZWQgYnkgdGhlIG11bHRp
cHJvY2VzcyBtb2R1bGUgKCMxOTg0KS4KKyAgICAiIiIKKyAgICBwMSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFBvb2wKKworICAg
ICAgICBkZWYgcHJvY2Vzc190YXNrKG4pOgorICAgICAgICAgICAgYXNzZXJ0IG4gPT0gMTAKKwor
ICAgICAgICBkZWYgbXVsdGl0YXNrX2pvYigpOgorICAgICAgICAgICAgdGFza3MgPSBbMV0KKyAg
ICAgICAgICAgIHdpdGggUG9vbChwcm9jZXNzZXM9MSkgYXMgcG9vbDoKKyAgICAgICAgICAgICAg
ICBwb29sLm1hcChwcm9jZXNzX3Rhc2ssIHRhc2tzKQorCisgICAgICAgIGRlZiB0ZXN0X211bHRp
dGFza19qb2IoKToKKyAgICAgICAgICAgIG11bHRpdGFza19qb2IoKQorICAgICIiIikKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwgIi0tdGI9bG9uZyIpCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIj09PT0qIEZBSUxVUkVTICo9PT09IiwKKyAg
ICAgICAgIiptdWx0aXByb2Nlc3NpbmcucG9vbC5SZW1vdGVUcmFjZWJhY2s6KiIsCisgICAgICAg
ICJUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6IiwKKyAgICAgICAgIiphc3NlcnQg
biA9PSAxMCIsCisgICAgICAgICJUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNh
dXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOiIsCisgICAgICAgICI+ICogbXVsdGl0YXNr
X2pvYigpIiwKKyAgICBdKQorCisKK0BweXRlc3QubWFyay5za2lwaWYoIidfX3B5cHlfXycgaW4g
c3lzLmJ1aWx0aW5fbW9kdWxlX25hbWVzIG9yIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZh
JykiKQorZGVmIHRlc3Rfd2Fybl9taXNzaW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bihzeXMuZXhlY3V0YWJsZSwgIi1PTyIs
ICItbSIsICJweXRlc3QiLCAiLWgiKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICIqV0FSTklORyphc3NlcnQgc3RhdGVtZW50cyBhcmUgbm90IGV4ZWN1dGVkKiIs
CisgICAgXSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bihzeXMuZXhlY3V0YWJsZSwgIi1PTyIs
ICItbSIsICJweXRlc3QiKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICIqV0FSTklORyphc3NlcnQgc3RhdGVtZW50cyBhcmUgbm90IGV4ZWN1dGVkKiIsCisgICAg
XSkKKworCitkZWYgdGVzdF9yZWN1cnNpb25fc291cmNlX2RlY29kZSh0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZygpOgorICAg
ICAgICAgICAgcGFzcworICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAg
IFtweXRlc3RdCisgICAgICAgIHB5dGhvbl9maWxlcyA9ICoucHkKKyAgICAiIiIpCisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgIDxNb2R1bGUqPgorICAgICIiIikKKworCitk
ZWYgdGVzdF9Bc3NlcnRpb25FcnJvcl9tZXNzYWdlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgIHgseSA9
IDEsMgorICAgICAgICAgICAgYXNzZXJ0IDAsICh4LHkpCisgICAgIiIiKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIi
CisgICAgICAgICpkZWYgdGVzdF9oZWxsbyoKKyAgICAgICAgKmFzc2VydCAwLCAoeCx5KSoKKyAg
ICAgICAgKkFzc2VydGlvbkVycm9yOiAoMSwgMikqCisgICAgIiIiKQorCisKK0BweXRlc3QubWFy
ay5za2lwaWYoUFkzLCByZWFzb249J1RoaXMgYnVnIGRvZXMgbm90IGV4aXN0IG9uIFBZMycpCitk
ZWYgdGVzdF9zZXRfd2l0aF91bnNvcnRhYmxlX2VsZW1lbnRzKCk6CisgICAgIyBpc3N1ZSAjNzE4
CisgICAgY2xhc3MgVW5zb3J0YWJsZUtleShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgbmFtZSk6CisgICAgICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisKKyAgICAgICAgZGVm
IF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoKQor
CisgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAncmVwcih7
MH0pJy5mb3JtYXQoc2VsZi5uYW1lKQorCisgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIp
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubmFtZSA9PSBvdGhlci5uYW1lCisKKyAgICAgICAg
ZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5uYW1lKQor
CisgICAgbGVmdF9zZXQgPSBzZXQoVW5zb3J0YWJsZUtleShzdHIoaSkpIGZvciBpIGluIHJhbmdl
KDEsIDMpKQorICAgIHJpZ2h0X3NldCA9IHNldChVbnNvcnRhYmxlS2V5KHN0cihpKSkgZm9yIGkg
aW4gcmFuZ2UoMiwgNCkpCisgICAgZXhwbCA9IGNhbGxlcXVhbChsZWZ0X3NldCwgcmlnaHRfc2V0
LCB2ZXJib3NlPVRydWUpCisgICAgIyBza2lwIGZpcnN0IGxpbmUgYmVjYXVzZSBpdCBjb250YWlu
cyB0aGUgImNvbnN0cnVjdGlvbiIgb2YgdGhlIHNldCwgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIGd1
YXJhbnRlZWQgb3JkZXIKKyAgICBleHBsID0gZXhwbFsxOl0KKyAgICBkZWRlbnQgPSB0ZXh0d3Jh
cC5kZWRlbnQoIiIiCisgICAgICAgIEV4dHJhIGl0ZW1zIGluIHRoZSBsZWZ0IHNldDoKKyAgICAg
ICAgcmVwcigxKQorICAgICAgICBFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OgorICAgICAg
ICByZXByKDMpCisgICAgICAgIEZ1bGwgZGlmZiAoZmFsbGJhY2sgdG8gY2FsbGluZyByZXByIG9u
IGVhY2ggaXRlbSk6CisgICAgICAgIC0gcmVwcigxKQorICAgICAgICByZXByKDIpCisgICAgICAg
ICsgcmVwcigzKQorICAgICIiIikuc3RyaXAoKQorICAgIGFzc2VydCAnXG4nLmpvaW4oZXhwbCkg
PT0gZGVkZW50CisKKworZGVmIHRlc3RfZGlmZl9uZXdsaW5lX2F0X2VuZChtb25rZXlwYXRjaCwg
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHIiIiIKKyAgICAgICAgZGVmIHRlc3Rf
ZGlmZigpOgorICAgICAgICAgICAgYXNzZXJ0ICdhc2RmJyA9PSAnYXNkZlxuJworICAgICIiIikK
KworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMociIiIgorICAgICAgICAqYXNzZXJ0ICdhc2RmJyA9PSAnYXNkZlxuJworICAg
ICAgICAqICAtIGFzZGYKKyAgICAgICAgKiAgKyBhc2RmCisgICAgICAgICogID8gICAgICsKKyAg
ICAiIiIpCisKKworZGVmIHRlc3RfYXNzZXJ0X3R1cGxlX3dhcm5pbmcodGVzdGRpcik6CisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF90dXBsZSgpOgorICAgICAg
ICAgICAgYXNzZXJ0KEZhbHNlLCAneW91IHNoYWxsIG5vdCBwYXNzJykKKyAgICAiIiIpCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1ydycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgJyp0ZXN0X2Fzc2VydF90dXBsZV93YXJuaW5nLnB5OjInLAor
ICAgICAgICAnKmFzc2VydGlvbiBpcyBhbHdheXMgdHJ1ZSonLAorICAgIF0pCisKKworZGVmIHRl
c3RfYXNzZXJ0X2luZGlyZWN0X3R1cGxlX25vX3dhcm5pbmcodGVzdGRpcik6CisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF90dXBsZSgpOgorICAgICAgICAgICAg
dHBsID0gKCdmb28nLCAnYmFyJykKKyAgICAgICAgICAgIGFzc2VydCB0cGwKKyAgICAiIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1ydycpCisgICAgb3V0cHV0ID0gJ1xuJy5q
b2luKHJlc3VsdC5zdGRvdXQubGluZXMpCisgICAgYXNzZXJ0ICdXUjEnIG5vdCBpbiBvdXRwdXQK
KworCitkZWYgdGVzdF9hc3NlcnRfd2l0aF91bmljb2RlKG1vbmtleXBhdGNoLCB0ZXN0ZGlyKToK
KyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodSIiIgorICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQorICAgICAgICBkZWYgdGVzdF91bmljb2RlKCk6CisgICAgICAgICAgICBhc3NlcnQgdSfs
nKDri4jsvZTrk5wnID09IHUnVW5pY29kZScKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJypBc3NlcnRp
b25FcnJvcionXSkKKworCitkZWYgdGVzdF9yYWlzZV91bnByaW50YWJsZV9hc3NlcnRpb25fZXJy
b3IodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHIiIiIKKyAgICAgICAgZGVmIHRl
c3RfcmFpc2VfYXNzZXJ0aW9uX2Vycm9yKCk6CisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25F
cnJvcignXHhmZicpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW3IiPiAgICAgICByYWlzZSBBc3NlcnRp
b25FcnJvcignXHhmZicpIiwgJ0UgICAgICAgQXNzZXJ0aW9uRXJyb3I6IConXSkKKworCitkZWYg
dGVzdF9yYWlzZV9hc3NlcnRpb25fZXJyb3JfcmFpc2luX3JlcHIodGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKHUiIiIKKyAgICAgICAgY2xhc3MgUmFpc2luZ1JlcHIob2JqZWN0KToK
KyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oKQorICAgICAgICBkZWYgdGVzdF9yYWlzaW5nX3JlcHIoKToKKyAgICAgICAgICAg
IHJhaXNlIEFzc2VydGlvbkVycm9yKFJhaXNpbmdSZXByKCkpCisgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WydFICAgICAgIEFzc2VydGlvbkVycm9yOiA8dW5wcmludGFibGUgQXNzZXJ0aW9uRXJyb3Igb2Jq
ZWN0PiddKQorCisKK2RlZiB0ZXN0X2lzc3VlXzE5NDQodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgYXNzZXJ0IGYoKSA9PSAxMAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZXJyb3IqIl0p
CisgICAgYXNzZXJ0ICJBdHRyaWJ1dGVFcnJvcjogJ01vZHVsZScgb2JqZWN0IGhhcyBubyBhdHRy
aWJ1dGUgJ19vYmonIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydHJld3JpdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfYXNzZXJ0cmV3cml0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTIyYzZkYWM0N2FkMzkyZjU5
ZTI4Y2QwZDI5OWY1OGY4MWIxYWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2Fzc2VydHJld3JpdGUucHkKQEAgLTAsMCArMSw5OTYgQEAKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKwor
aW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0IHB5X2NvbXBpbGUKK2ltcG9ydCBzdGF0Citp
bXBvcnQgc3lzCitpbXBvcnQgemlwZmlsZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CisKK2lt
cG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCitm
cm9tIF9weXRlc3QuYXNzZXJ0aW9uLnJld3JpdGUgaW1wb3J0IHJld3JpdGVfYXNzZXJ0cywgUFlU
RVNUX1RBRywgQXNzZXJ0aW9uUmV3cml0aW5nSG9vaworZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0
IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCithc3QgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJhc3Qi
KQoraWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImphdmEiKToKKyAgICAjIFhYWCBzaG91bGQg
YmUgeGZhaWwKKyAgICBweXRlc3Quc2tpcCgiYXNzZXJ0IHJld3JpdGUgZG9lcyBjdXJyZW50bHkg
bm90IHdvcmsgb24ganl0aG9uIikKKworCitkZWYgc2V0dXBfbW9kdWxlKG1vZCk6CisgICAgbW9k
Ll9vbGRfcmVwcmNvbXBhcmUgPSB1dGlsLl9yZXByY29tcGFyZQorICAgIF9weXRlc3QuX2NvZGUu
X3JlcHJjb21wYXJlID0gTm9uZQorCisKK2RlZiB0ZWFyZG93bl9tb2R1bGUobW9kKToKKyAgICB1
dGlsLl9yZXByY29tcGFyZSA9IG1vZC5fb2xkX3JlcHJjb21wYXJlCisgICAgZGVsIG1vZC5fb2xk
X3JlcHJjb21wYXJlCisKKworZGVmIHJld3JpdGUoc3JjKToKKyAgICB0cmVlID0gYXN0LnBhcnNl
KHNyYykKKyAgICByZXdyaXRlX2Fzc2VydHModHJlZSkKKyAgICByZXR1cm4gdHJlZQorCisKK2Rl
ZiBnZXRtc2coZiwgZXh0cmFfbnM9Tm9uZSwgbXVzdF9wYXNzPUZhbHNlKToKKyAgICAiIiJSZXdy
aXRlIHRoZSBhc3NlcnRpb25zIGluIGYsIHJ1biBpdCwgYW5kIGdldCB0aGUgZmFpbHVyZSBtZXNz
YWdlLiIiIgorICAgIHNyYyA9ICdcbicuam9pbihfcHl0ZXN0Ll9jb2RlLkNvZGUoZikuc291cmNl
KCkubGluZXMpCisgICAgbW9kID0gcmV3cml0ZShzcmMpCisgICAgY29kZSA9IGNvbXBpbGUobW9k
LCAiPHRlc3Q+IiwgImV4ZWMiKQorICAgIG5zID0ge30KKyAgICBpZiBleHRyYV9ucyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgbnMudXBkYXRlKGV4dHJhX25zKQorICAgIHB5LmJ1aWx0aW4uZXhlY18o
Y29kZSwgbnMpCisgICAgZnVuYyA9IG5zW2YuX19uYW1lX19dCisgICAgdHJ5OgorICAgICAgICBm
dW5jKCkKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGlmIG11c3RfcGFzczoK
KyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJzaG91bGRuJ3QgaGF2ZSByYWlzZWQiKQorICAgICAg
ICBzID0gc3RyKHN5cy5leGNfaW5mbygpWzFdKQorICAgICAgICBpZiBub3Qgcy5zdGFydHN3aXRo
KCJhc3NlcnQiKToKKyAgICAgICAgICAgIHJldHVybiAiQXNzZXJ0aW9uRXJyb3I6ICIgKyBzCisg
ICAgICAgIHJldHVybiBzCisgICAgZWxzZToKKyAgICAgICAgaWYgbm90IG11c3RfcGFzczoKKyAg
ICAgICAgICAgIHB5dGVzdC5mYWlsKCJmdW5jdGlvbiBkaWRuJ3QgcmFpc2UgYXQgYWxsIikKKwor
CitjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgorCisgICAgZGVmIHRlc3RfcGxh
Y2VfaW5pdGlhbF9pbXBvcnRzKHNlbGYpOgorICAgICAgICBzID0gIiIiJ0RvYyBzdHJpbmcnXG5v
dGhlciA9IHN0dWZmIiIiCisgICAgICAgIG0gPSByZXdyaXRlKHMpCisgICAgICAgICMgTW9kdWxl
IGRvY3N0cmluZ3MgaW4gMy43IGFyZSBwYXJ0IG9mIE1vZHVsZSBub2RlLCBpdCdzIG5vdCBpbiB0
aGUgYm9keQorICAgICAgICAjIHNvIHdlIHJlbW92ZSBpdCBzbyB0aGUgZm9sbG93aW5nIGJvZHkg
aXRlbXMgaGF2ZSB0aGUgc2FtZSBpbmRleGVzIG9uCisgICAgICAgICMgYWxsIFB5dGhvbiB2ZXJz
aW9ucworICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDcpOgorICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzBdLCBhc3QuRXhwcikKKyAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKG0uYm9keVswXS52YWx1ZSwgYXN0LlN0cikKKyAgICAgICAgICAgIGRlbCBt
LmJvZHlbMF0KKyAgICAgICAgZm9yIGltcCBpbiBtLmJvZHlbMDoyXToKKyAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGltcCwgYXN0LkltcG9ydCkKKyAgICAgICAgICAgIGFzc2VydCBpbXAu
bGluZW5vID09IDIKKyAgICAgICAgICAgIGFzc2VydCBpbXAuY29sX29mZnNldCA9PSAwCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVsyXSwgYXN0LkFzc2lnbikKKyAgICAgICAgcyA9
ICIiImZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnRcbm90aGVyX3N0dWZmIiIi
CisgICAgICAgIG0gPSByZXdyaXRlKHMpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9k
eVswXSwgYXN0LkltcG9ydEZyb20pCisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzE6M106Cisg
ICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQpCisgICAgICAgICAg
ICBhc3NlcnQgaW1wLmxpbmVubyA9PSAyCisgICAgICAgICAgICBhc3NlcnQgaW1wLmNvbF9vZmZz
ZXQgPT0gMAorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbM10sIGFzdC5FeHByKQor
ICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhf
c3RhdGVtZW50IiIiCisgICAgICAgIG0gPSByZXdyaXRlKHMpCisgICAgICAgIGlmIHN5cy52ZXJz
aW9uX2luZm8gPCAoMywgNyk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlb
MF0sIGFzdC5FeHByKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzBdLnZh
bHVlLCBhc3QuU3RyKQorICAgICAgICAgICAgZGVsIG0uYm9keVswXQorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQorICAgICAgICBmb3IgaW1wIGlu
IG0uYm9keVsxOjNdOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaW1wLCBhc3QuSW1w
b3J0KQorICAgICAgICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0gMgorICAgICAgICAgICAgYXNz
ZXJ0IGltcC5jb2xfb2Zmc2V0ID09IDAKKyAgICAgICAgcyA9ICIiIidkb2Mgc3RyaW5nJ1xuZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudFxub3RoZXIiIiIKKyAgICAgICAgbSA9
IHJld3JpdGUocykKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCA3KToKKyAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkV4cHIpCisgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0udmFsdWUsIGFzdC5TdHIpCisgICAgICAgICAg
ICBkZWwgbS5ib2R5WzBdCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0
LkltcG9ydEZyb20pCisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzE6M106CisgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQpCisgICAgICAgICAgICBhc3NlcnQg
aW1wLmxpbmVubyA9PSAzCisgICAgICAgICAgICBhc3NlcnQgaW1wLmNvbF9vZmZzZXQgPT0gMAor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbM10sIGFzdC5FeHByKQorICAgICAgICBz
ID0gIiIiZnJvbSAuIGltcG9ydCByZWxhdGl2ZVxub3RoZXJfc3R1ZmYiIiIKKyAgICAgICAgbSA9
IHJld3JpdGUocykKKyAgICAgICAgZm9yIGltcCBpbiBtLmJvZHlbMDoyXToKKyAgICAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGltcCwgYXN0LkltcG9ydCkKKyAgICAgICAgICAgIGFzc2VydCBp
bXAubGluZW5vID09IDEKKyAgICAgICAgICAgIGFzc2VydCBpbXAuY29sX29mZnNldCA9PSAwCisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVszXSwgYXN0LkV4cHIpCisKKyAgICBkZWYg
dGVzdF9kb250X3Jld3JpdGUoc2VsZik6CisgICAgICAgIHMgPSAiIiInUFlURVNUX0RPTlRfUkVX
UklURSdcbmFzc2VydCAxNCIiIgorICAgICAgICBtID0gcmV3cml0ZShzKQorICAgICAgICBpZiBz
eXMudmVyc2lvbl9pbmZvIDwgKDMsIDcpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihtLmJvZHkp
ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkV4cHIp
CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0udmFsdWUsIGFzdC5TdHIp
CisgICAgICAgICAgICBkZWwgbS5ib2R5WzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBh
c3NlcnQgbGVuKG0uYm9keSkgPT0gMQorICAgICAgICBhc3NlcnQgbS5ib2R5WzBdLm1zZyBpcyBO
b25lCisKKyAgICBkZWYgdGVzdF9uYW1lKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAg
ICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCBG
YWxzZSIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgZiA9IEZhbHNlCisgICAgICAg
ICAgICBhc3NlcnQgZgorCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCBGYWxz
ZSIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYXNzZXJ0IGFfZ2xvYmFsICAjIG5v
cWEKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIHsiYV9nbG9iYWwiOiBGYWxzZX0pID09ICJh
c3NlcnQgRmFsc2UiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBzeXMg
PT0gNDIKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIHsic3lzIjogc3lzfSkgPT0gImFzc2Vy
dCBzeXMgPT0gNDIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBjbHMg
PT0gNDIgICMgbm9xYQorCisgICAgICAgIGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgICAgIHBh
c3MKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIHsiY2xzIjogWH0pID09ICJhc3NlcnQgY2xz
ID09IDQyIgorCisgICAgZGVmIHRlc3RfYXNzZXJ0X2FscmVhZHlfaGFzX21lc3NhZ2Uoc2VsZik6
CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJzb21ldGhpbmcg
YmFkISIKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiQXNzZXJ0aW9uRXJyb3I6IHNvbWV0
aGluZyBiYWQhXG5hc3NlcnQgRmFsc2UiCisKKyAgICBkZWYgdGVzdF9hc3NlcnRpb25fbWVzc2Fn
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEgPT0gMiwgIlRo
ZSBmYWlsdXJlIG1lc3NhZ2UiCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkFzc2VydGlvbkVycm9y
KlRoZSBmYWlsdXJlIG1lc3NhZ2UqIiwKKyAgICAgICAgICAgICIqYXNzZXJ0IDEgPT0gMioiLAor
ICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfYXNzZXJ0aW9uX21lc3NhZ2VfbXVsdGlsaW5lKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMSA9PSAyLCAiQSBtdWx0
aWxpbmVcXG5mYWlsdXJlIG1lc3NhZ2UiCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkFzc2VydGlv
bkVycm9yKkEgbXVsdGlsaW5lKiIsCisgICAgICAgICAgICAiKmZhaWx1cmUgbWVzc2FnZSoiLAor
ICAgICAgICAgICAgIiphc3NlcnQgMSA9PSAyKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVz
dF9hc3NlcnRpb25fbWVzc2FnZV90dXBsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IDEgPT0gMiwgKDEsIDIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkFzc2Vy
dGlvbkVycm9yKiVzKiIgJSByZXByKCgxLCAyKSksCisgICAgICAgICAgICAiKmFzc2VydCAxID09
IDIqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2Fzc2VydGlvbl9tZXNzYWdlX2V4cHIo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxID09IDIsIDEgKyAy
CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKkFzc2VydGlvbkVycm9yKjMqIiwKKyAgICAgICAgICAg
ICIqYXNzZXJ0IDEgPT0gMioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfYXNzZXJ0aW9u
X21lc3NhZ2VfZXNjYXBlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgMSA9PSAyLCAnVG8gYmUgZXNjYXBlZDogJScKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqQXNz
ZXJ0aW9uRXJyb3I6IFRvIGJlIGVzY2FwZWQ6ICUiLAorICAgICAgICAgICAgIiphc3NlcnQgMSA9
PSAyIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2Jvb2xvcChzZWxmKToKKyAgICAgICAg
ZGVmIGYoKToKKyAgICAgICAgICAgIGYgPSBnID0gRmFsc2UKKyAgICAgICAgICAgIGFzc2VydCBm
IGFuZCBnCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IChGYWxzZSkiCisK
KyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGYgPSBUcnVlCisgICAgICAgICAgICBnID0g
RmFsc2UKKyAgICAgICAgICAgIGFzc2VydCBmIGFuZCBnCisKKyAgICAgICAgYXNzZXJ0IGdldG1z
ZyhmKSA9PSAiYXNzZXJ0IChUcnVlIGFuZCBGYWxzZSkiCisKKyAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgIGYgPSBGYWxzZQorICAgICAgICAgICAgZyA9IFRydWUKKyAgICAgICAgICAgIGFz
c2VydCBmIGFuZCBnCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IChGYWxz
ZSkiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGYgPSBnID0gRmFsc2UKKyAgICAg
ICAgICAgIGFzc2VydCBmIG9yIGcKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3Nl
cnQgKEZhbHNlIG9yIEZhbHNlKSIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgZiA9
IGcgPSBGYWxzZQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBmIGFuZCBub3QgZworCisgICAgICAg
IGdldG1zZyhmLCBtdXN0X3Bhc3M9VHJ1ZSkKKworICAgICAgICBkZWYgeCgpOgorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCB4
KCkgYW5kIHgoKQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgeyJ4IjogeH0pID09ICIiImFz
c2VydCAoRmFsc2UpCisgKyAgd2hlcmUgRmFsc2UgPSB4KCkiIiIKKworICAgICAgICBkZWYgZigp
OgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlIG9yIHgoKQorCisgICAgICAgIGFzc2VydCBnZXRt
c2coZiwgeyJ4IjogeH0pID09ICIiImFzc2VydCAoRmFsc2Ugb3IgRmFsc2UpCisgKyAgd2hlcmUg
RmFsc2UgPSB4KCkiIiIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYXNzZXJ0IDEg
aW4ge30gYW5kIDIgaW4ge30KKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQg
KDEgaW4ge30pIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB4ID0gMQorICAgICAg
ICAgICAgeSA9IDIKKyAgICAgICAgICAgIGFzc2VydCB4IGluIHsxOiBOb25lfSBhbmQgeSBpbiB7
fQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCAoMSBpbiB7MTogTm9uZX0g
YW5kIDIgaW4ge30pIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBmID0gVHJ1ZQor
ICAgICAgICAgICAgZyA9IEZhbHNlCisgICAgICAgICAgICBhc3NlcnQgZiBvciBnCisKKyAgICAg
ICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAg
ICAgICBmID0gZyA9IGggPSBsYW1iZGE6IFRydWUKKyAgICAgICAgICAgIGFzc2VydCBmKCkgYW5k
IGcoKSBhbmQgaCgpCisKKyAgICAgICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQorCisgICAg
ZGVmIHRlc3Rfc2hvcnRfY2lyY3VpdF9ldmFsdWF0aW9uKHNlbGYpOgorICAgICAgICBkZWYgZigp
OgorICAgICAgICAgICAgYXNzZXJ0IFRydWUgb3IgZXhwbG9kZSAgIyBub3FhCisKKyAgICAgICAg
Z2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAg
ICB4ID0gMQorICAgICAgICAgICAgYXNzZXJ0IHggPT0gMSBvciB4ID09IDIKKworICAgICAgICBn
ZXRtc2coZiwgbXVzdF9wYXNzPVRydWUpCisKKyAgICBkZWYgdGVzdF91bmFyeV9vcChzZWxmKToK
KyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHggPSBUcnVlCisgICAgICAgICAgICBhc3Nl
cnQgbm90IHgKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgbm90IFRydWUi
CisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHggPSAwCisgICAgICAgICAgICBhc3Nl
cnQgfnggKyAxCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0ICh+MCArIDEp
IgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB4ID0gMworICAgICAgICAgICAgYXNz
ZXJ0IC14ICsgeAorCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCAoLTMgKyAz
KSIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgeCA9IDAKKyAgICAgICAgICAgIGFz
c2VydCAreCArIHgKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgKCswICsg
MCkiCisKKyAgICBkZWYgdGVzdF9iaW5hcnlfb3Aoc2VsZik6CisgICAgICAgIGRlZiBmKCk6Cisg
ICAgICAgICAgICB4ID0gMQorICAgICAgICAgICAgeSA9IC0xCisgICAgICAgICAgICBhc3NlcnQg
eCArIHkKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgKDEgKyAtMSkiCisK
KyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBub3QgNSAlIDQKKyAgICAgICAg
YXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IG5vdCAoNSAlIDQpIgorCisgICAgZGVmIHRlc3Rf
Ym9vbG9wX3BlcmNlbnQoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3Nl
cnQgMyAlIDIgYW5kIEZhbHNlCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0
ICgoMyAlIDIpIGFuZCBGYWxzZSkiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFz
c2VydCBGYWxzZSBvciA0ICUgMgorICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQg
KEZhbHNlIG9yICg0ICUgMikpIgorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNp
b25faW5mbyA8ICgzLDUpIikKKyAgICBkZWYgdGVzdF9hdF9vcGVyYXRvcl9pc3N1ZTEyOTAoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGNsYXNzIE1hdHJpeChvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBudW0pOgorICAgICAgICAgICAgICAgICAgICBzZWxmLm51bSA9IG51bQorICAgICAgICAgICAg
ICAgIGRlZiBfX21hdG11bF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHNlbGYubnVtICogb3RoZXIubnVtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X211bHRtYXRf
b3BlcmF0b3IoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgTWF0cml4KDIpIEAgTWF0cml4KDMp
ID09IDYiIiIpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkuYXNzZXJ0X291dGNvbWVzKHBh
c3NlZD0xKQorCisgICAgZGVmIHRlc3RfY2FsbChzZWxmKToKKyAgICAgICAgZGVmIGcoYT00Miwg
KmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIG5z
ID0geyJnIjogZ30KKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYXNzZXJ0IGcoKQor
CisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMpID09ICIiImFzc2VydCBGYWxzZQorICsgIHdo
ZXJlIEZhbHNlID0gZygpIiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2Vy
dCBnKDEpCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IEZhbHNl
CisgKyAgd2hlcmUgRmFsc2UgPSBnKDEpIiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAg
ICAgIGFzc2VydCBnKDEsIDIpCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIi
YXNzZXJ0IEZhbHNlCisgKyAgd2hlcmUgRmFsc2UgPSBnKDEsIDIpIiIiCisKKyAgICAgICAgZGVm
IGYoKToKKyAgICAgICAgICAgIGFzc2VydCBnKDEsIGc9NDIpCisKKyAgICAgICAgYXNzZXJ0IGdl
dG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IEZhbHNlCisgKyAgd2hlcmUgRmFsc2UgPSBnKDEsIGc9
NDIpIiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBnKDEsIDMsIGc9
MjMpCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IEZhbHNlCisg
KyAgd2hlcmUgRmFsc2UgPSBnKDEsIDMsIGc9MjMpIiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgIHNlcSA9IFsxLCAyLCAzXQorICAgICAgICAgICAgYXNzZXJ0IGcoKnNlcSkKKwor
ICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIG5zKSA9PSAiIiJhc3NlcnQgRmFsc2UKKyArICB3aGVy
ZSBGYWxzZSA9IGcoKlsxLCAyLCAzXSkiIiIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAg
ICAgeCA9ICJhIgorICAgICAgICAgICAgYXNzZXJ0IGcoKip7eDogMn0pCisKKyAgICAgICAgYXNz
ZXJ0IGdldG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IEZhbHNlCisgKyAgd2hlcmUgRmFsc2UgPSBn
KCoqeydhJzogMn0pIiIiCisKKyAgICBkZWYgdGVzdF9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAg
IGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgICAgIGcgPSAzCisKKyAgICAgICAgbnMgPSB7Ingi
OiBYfQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgbm90IHguZyAgIyBu
b3FhCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IG5vdCAzCisg
KyAgd2hlcmUgMyA9IHguZyIiIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB4LmEg
PSBGYWxzZSAgIyBub3FhCisgICAgICAgICAgICBhc3NlcnQgeC5hICAgIyBub3FhCisKKyAgICAg
ICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIiYXNzZXJ0IEZhbHNlCisgKyAgd2hlcmUgRmFs
c2UgPSB4LmEiIiIKKworICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25zKHNlbGYpOgorCisgICAgICAg
IGRlZiBmKCk6CisgICAgICAgICAgICBhLCBiID0gcmFuZ2UoMikKKyAgICAgICAgICAgIGFzc2Vy
dCBiIDwgYQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gIiIiYXNzZXJ0IDEgPCAwIiIi
CisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGEsIGIsIGMgPSByYW5nZSgzKQorICAg
ICAgICAgICAgYXNzZXJ0IGEgPiBiID4gYworCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0g
IiIiYXNzZXJ0IDAgPiAxIiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGEsIGIs
IGMgPSByYW5nZSgzKQorICAgICAgICAgICAgYXNzZXJ0IGEgPCBiID4gYworCisgICAgICAgIGFz
c2VydCBnZXRtc2coZikgPT0gIiIiYXNzZXJ0IDEgPiAyIiIiCisKKyAgICAgICAgZGVmIGYoKToK
KyAgICAgICAgICAgIGEsIGIsIGMgPSByYW5nZSgzKQorICAgICAgICAgICAgYXNzZXJ0IGEgPCBi
IDw9IGMKKworICAgICAgICBnZXRtc2coZiwgbXVzdF9wYXNzPVRydWUpCisKKyAgICAgICAgZGVm
IGYoKToKKyAgICAgICAgICAgIGEsIGIsIGMgPSByYW5nZSgzKQorICAgICAgICAgICAgYXNzZXJ0
IGEgPCBiCisgICAgICAgICAgICBhc3NlcnQgYiA8IGMKKworICAgICAgICBnZXRtc2coZiwgbXVz
dF9wYXNzPVRydWUpCisKKyAgICBkZWYgdGVzdF9sZW4oc2VsZik6CisKKyAgICAgICAgZGVmIGYo
KToKKyAgICAgICAgICAgIHZhbHVlcyA9IGxpc3QocmFuZ2UoMTApKQorICAgICAgICAgICAgYXNz
ZXJ0IGxlbih2YWx1ZXMpID09IDExCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKS5zdGFydHN3
aXRoKCIiImFzc2VydCAxMCA9PSAxMQorICsgIHdoZXJlIDEwID0gbGVuKFsiIiIpCisKKyAgICBk
ZWYgdGVzdF9jdXN0b21fcmVwcmNvbXBhcmUoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBk
ZWYgbXlfcmVwcmNvbXBhcmUob3AsIGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICAgIHJldHVybiAi
NDIiCisKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih1dGlsLCAiX3JlcHJjb21wYXJlIiwg
bXlfcmVwcmNvbXBhcmUpCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCA0
MiA8IDMKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgNDIiCisKKyAgICAg
ICAgZGVmIG15X3JlcHJjb21wYXJlKG9wLCBsZWZ0LCByaWdodCk6CisgICAgICAgICAgICByZXR1
cm4gIiVzICVzICVzIiAlIChsZWZ0LCBvcCwgcmlnaHQpCisKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0YXR0cih1dGlsLCAiX3JlcHJjb21wYXJlIiwgbXlfcmVwcmNvbXBhcmUpCisKKyAgICAgICAg
ZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCAxIDwgMyA8IDUgPD0gNCA8IDcKKworICAgICAg
ICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgNSA8PSA0IgorCisgICAgZGVmIHRlc3RfYXNz
ZXJ0X3JhaXNpbmdfbm9uemVyb19pbl9jb21wYXJpc29uKHNlbGYpOgorICAgICAgICBkZWYgZigp
OgorICAgICAgICAgICAgY2xhc3MgQShvYmplY3QpOgorCisgICAgICAgICAgICAgICAgZGVmIF9f
bm9uemVyb19fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKDQy
KQorCisgICAgICAgICAgICAgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBBKCkKKworICAgICAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8TVk0MiBvYmplY3Q+IgorCisgICAgICAg
ICAgICBkZWYgbXlhbnkoeCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg
ICAgICAgIGFzc2VydCBteWFueShBKCkgPCAwKQorCisgICAgICAgIGFzc2VydCAiPE1ZNDIgb2Jq
ZWN0PiA8IDAiIGluIGdldG1zZyhmKQorCisgICAgZGVmIHRlc3RfZm9ybWF0Y2hhcihzZWxmKToK
KyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCAiJXRlc3QiID09ICJ0ZXN0Igor
CisgICAgICAgIGFzc2VydCBnZXRtc2coZikuc3RhcnRzd2l0aCgiYXNzZXJ0ICcldGVzdCcgPT0g
J3Rlc3QnIikKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByKHNlbGYpOgorICAgICAgICBkZWYg
ZigpOgorICAgICAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICAgICAgYSA9
IDEKKworICAgICAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuICJcbnsgXG5+IFxufSIKKworICAgICAgICAgICAgZiA9IEZvbygpCisgICAg
ICAgICAgICBhc3NlcnQgMCA9PSBmLmEKKworICAgICAgICBhc3NlcnQgciJ3aGVyZSAxID0gXG57
IFxufiBcbn0uYSIgaW4gdXRpbC5fZm9ybWF0X2xpbmVzKFtnZXRtc2coZildKVswXQorCisKK2Ns
YXNzIFRlc3RSZXdyaXRlT25JbXBvcnQob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X3B5Y2FjaGVf
aXNfYV9maWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJf
X3B5Y2FjaGVfXyIpLndyaXRlKCJIZWxsbyIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgICAgICAgICAgICAgIGFz
c2VydCAiQHB5X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkiIiIpCisgICAgICAgIGFzc2VydCB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9weWNhY2hlX2lzX3JlYWRv
bmx5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjYWNoZSA9IHRlc3RkaXIudG1wZGlyLm1rZGly
KCJfX3B5Y2FjaGVfXyIpCisgICAgICAgIG9sZF9tb2RlID0gY2FjaGUuc3RhdCgpLm1vZGUKKyAg
ICAgICAgY2FjaGUuY2htb2Qob2xkX21vZGUgXiBzdGF0LlNfSVdSSVRFKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9yZXdyaXR0ZW4oKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygpIiIiKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0g
MAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgY2FjaGUuY2htb2Qob2xkX21vZGUpCisK
KyAgICBkZWYgdGVzdF96aXBmaWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB6ID0gdGVzdGRp
ci50bXBkaXIuam9pbigibXl6aXAuemlwIikKKyAgICAgICAgel9mbiA9IHN0cih6KQorICAgICAg
ICBmID0gemlwZmlsZS5aaXBGaWxlKHpfZm4sICJ3IikKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgZi53cml0ZXN0cigidGVzdF9ndW0vX19pbml0X18ucHkiLCAiIikKKyAgICAgICAgICAgIGYu
d3JpdGVzdHIoInRlc3RfZ3VtL3Rlc3RfbGl6YXJkLnB5IiwgIiIpCisgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgei5jaG1vZCgyNTYpCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAg
IHN5cy5wYXRoLmFwcGVuZCglcikKKyAgICAgICAgICAgIGltcG9ydCB0ZXN0X2d1bS50ZXN0X2xp
emFyZCIiIiAlICh6X2ZuLCkpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJl
dCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworICAgIGRlZiB0ZXN0X3JlYWRvbmx5KHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0aW5nIikKKyAgICAg
ICAgc3ViLmpvaW4oInRlc3RfcmVhZG9ubHkucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHB5LmJ1
aWx0aW4uX3RvdGV4dCgiIiIKK2RlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgIGFzc2VydCAiQHB5
X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkKKyAgICAgICAgICAgICIiIikuZW5jb2RlKCJ1dGYtOCIp
LCAid2IiKQorICAgICAgICBvbGRfbW9kZSA9IHN1Yi5zdGF0KCkubW9kZQorICAgICAgICBzdWIu
Y2htb2QoMzIwKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5w
eXRlc3QoKS5yZXQgPT0gMAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3ViLmNobW9k
KG9sZF9tb2RlKQorCisgICAgZGVmIHRlc3RfZG9udF93cml0ZV9ieXRlY29kZShzZWxmLCB0ZXN0
ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBvcworICAgICAgICAgICAgZGVmIHRlc3Rfbm9fYnl0ZWNvZGUoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgIl9fcHljYWNoZV9fIiBpbiBfX2NhY2hlZF9fCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBvcy5wYXRoLmV4aXN0cyhfX2NhY2hlZF9fKQorICAgICAgICAg
ICAgICAgIGFzc2VydCBub3Qgb3MucGF0aC5leGlzdHMob3MucGF0aC5kaXJuYW1lKF9fY2FjaGVk
X18pKSIiIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05ET05UV1JJVEVCWVRF
Q09ERSIsICIxIikKKyAgICAgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3Mo
KS5yZXQgPT0gMAorCisgICAgZGVmIHRlc3Rfb3JwaGFuZWRfcHljX2ZpbGUoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCkgYW5kIGhhc2F0dHIoc3lz
LCAncHlweV92ZXJzaW9uX2luZm8nKToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJweXB5MiBk
b2Vzbid0IHJ1biBvcnBoYW5lZCBweWMgZmlsZXMiKQorCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBvcnBoYW4KKyAgICAgICAgICAgIGRlZiB0ZXN0
X2l0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG9ycGhhbi52YWx1ZSA9PSAxNworICAgICAg
ICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUob3JwaGFuPSIiIgorICAgICAg
ICAgICAgdmFsdWUgPSAxNworICAgICAgICAgICAgIiIiKQorICAgICAgICBweV9jb21waWxlLmNv
bXBpbGUoIm9ycGhhbi5weSIpCisgICAgICAgIG9zLnJlbW92ZSgib3JwaGFuLnB5IikKKworICAg
ICAgICAjIFB5dGhvbiAzIHB1dHMgdGhlIC5weWMgZmlsZXMgaW4gYSBfX3B5Y2FjaGVfXyBkaXJl
Y3RvcnksIGFuZCB3aWxsCisgICAgICAgICMgbm90IGltcG9ydCBmcm9tIHRoZXJlIHdpdGhvdXQg
c291cmNlLiAgSXQgd2lsbCBpbXBvcnQgYSAucHljIGZyb20KKyAgICAgICAgIyB0aGUgc291cmNl
IGxvY2F0aW9uIHRob3VnaC4KKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCJvcnBoYW4u
cHljIik6CisgICAgICAgICAgICBweWNzID0gZ2xvYi5nbG9iKCJfX3B5Y2FjaGVfXy9vcnBoYW4u
Ki5weWMiKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihweWNzKSA9PSAxCisgICAgICAgICAgICBv
cy5yZW5hbWUocHljc1swXSwgIm9ycGhhbi5weWMiKQorCisgICAgICAgIGFzc2VydCB0ZXN0ZGly
LnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCciX19weXB5
X18iIGluIHN5cy5tb2R1bGVzJykKKyAgICBkZWYgdGVzdF9weWNfdnNfcHlvKHNlbGYsIHRlc3Rk
aXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3Rfb3B0aW1pemVkKCk6Cisg
ICAgICAgICAgICAgICAgImhlbGxvIgorICAgICAgICAgICAgICAgIGFzc2VydCB0ZXN0X29wdGlt
aXplZC5fX2RvY19fIGlzIE5vbmUiIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJlZF9kaXIocHJlZml4PSJydW5weXRl
c3QtIiwga2VlcD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByb290ZGlyPXRlc3RkaXIudG1wZGlyKQorICAgICAgICB0bXAgPSAiLS1iYXNldGVtcD0l
cyIgJSBwCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OT1BUSU1JWkUiLCAiMiIp
CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCBy
YWlzaW5nPUZhbHNlKQorICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2Vz
cyh0bXApLnJldCA9PSAwCisgICAgICAgIHRhZ2dlZCA9ICJ0ZXN0X3B5Y192c19weW8uIiArIFBZ
VEVTVF9UQUcKKyAgICAgICAgYXNzZXJ0IHRhZ2dlZCArICIucHlvIiBpbiBvcy5saXN0ZGlyKCJf
X3B5Y2FjaGVfXyIpCisgICAgICAgIG1vbmtleXBhdGNoLnVuZG8oKQorICAgICAgICBtb25rZXlw
YXRjaC5kZWxlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFIiwgcmFpc2luZz1GYWxzZSkKKyAg
ICAgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3ModG1wKS5yZXQgPT0gMQor
ICAgICAgICBhc3NlcnQgdGFnZ2VkICsgIi5weWMiIGluIG9zLmxpc3RkaXIoIl9fcHljYWNoZV9f
IikKKworICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHBrZyA9
IHRlc3RkaXIudG1wZGlyLmpvaW4oInBrZyIpCisgICAgICAgIHBrZy5ta2RpcigpCisgICAgICAg
IHBrZy5qb2luKCJfX2luaXRfXy5weSIpLmVuc3VyZSgpCisgICAgICAgIHBrZy5qb2luKCJ0ZXN0
X2JsYWgucHkiKS53cml0ZSgiIiIKK2RlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgIGFzc2VydCAi
QHB5X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkiIiIpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpLnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF90cmFuc2xhdGVfbmV3bGluZXMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIGNvbnRlbnQgPSAiZGVmIHRlc3RfcmV3cml0dGVuKCk6XHJc
biBhc3NlcnQgJ0BweV9idWlsdGlucycgaW4gZ2xvYmFscygpIgorICAgICAgICBiID0gY29udGVu
dC5lbmNvZGUoInV0Zi04IikKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9uZXds
aW5lcy5weSIpLndyaXRlKGIsICJ3YiIpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpLnJldCA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8g
PCAoMywgNCksCisgICAgICAgICAgICAgICAgICAgICAgICByZWFzb249J3BhY2thZ2VzIHdpdGhv
dXQgX19pbml0X18ucHkgbm90IHN1cHBvcnRlZCBvbiBweXRob24gMicpCisgICAgZGVmIHRlc3Rf
cGFja2FnZV93aXRob3V0X19pbml0X19weShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcGtnID0g
dGVzdGRpci5ta2RpcignYV9wYWNrYWdlX3dpdGhvdXRfaW5pdF9weScpCisgICAgICAgIHBrZy5q
b2luKCdtb2R1bGUucHknKS5lbnN1cmUoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImlt
cG9ydCBhX3BhY2thZ2Vfd2l0aG91dF9pbml0X3B5Lm1vZHVsZSIpCisgICAgICAgIGFzc2VydCB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworICAgIGRl
ZiB0ZXN0X3Jld3JpdGVfd2FybmluZyhzZWxmLCBweXRlc3Rjb25maWcsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgaG9vayA9IEFzc2VydGlvblJld3JpdGluZ0hvb2socHl0ZXN0Y29uZmlnKQorICAg
ICAgICB3YXJuaW5ncyA9IFtdCisKKyAgICAgICAgZGVmIG15d2Fybihjb2RlLCBtc2cpOgorICAg
ICAgICAgICAgd2FybmluZ3MuYXBwZW5kKChjb2RlLCBtc2cpKQorCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoaG9vay5jb25maWcsICd3YXJuJywgbXl3YXJuKQorICAgICAgICBob29rLm1h
cmtfcmV3cml0ZSgnX3B5dGVzdCcpCisgICAgICAgIGFzc2VydCAnX3B5dGVzdCcgaW4gd2Fybmlu
Z3NbMF1bMV0KKworICAgIGRlZiB0ZXN0X3Jld3JpdGVfbW9kdWxlX2ltcG9ydGVkX2Zyb21fY29u
ZnRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJwor
ICAgICAgICAgICAgaW1wb3J0IHRlc3RfcmV3cml0ZV9tb2R1bGVfaW1wb3J0ZWQKKyAgICAgICAg
JycnKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9yZXdyaXRlX21vZHVsZV9pbXBv
cnRlZD0nJycKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAiQHB5X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkKKyAgICAgICAgJycnKQorICAg
ICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpLnJldCA9PSAwCisKKyAg
ICBkZWYgdGVzdF9yZW1lbWJlcl9yZXdyaXR0ZW5fbW9kdWxlcyhzZWxmLCBweXRlc3Rjb25maWcs
IHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIiIiCisgICAgICAgIEFzc2VydGlvblJl
d3JpdGVIb29rIHNob3VsZCByZW1lbWJlciByZXdyaXR0ZW4gbW9kdWxlcyBzbyBpdAorICAgICAg
ICBkb2Vzbid0IGdpdmUgZmFsc2UgcG9zaXRpdmVzICgjMjAwNSkuCisgICAgICAgICIiIgorICAg
ICAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQodGVzdGRpci50bXBkaXIpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X3JlbWVtYmVyX3Jld3JpdHRlbl9tb2R1bGVzPScnKQor
ICAgICAgICB3YXJuaW5ncyA9IFtdCisgICAgICAgIGhvb2sgPSBBc3NlcnRpb25SZXdyaXRpbmdI
b29rKHB5dGVzdGNvbmZpZykKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihob29rLmNvbmZp
ZywgJ3dhcm4nLCBsYW1iZGEgY29kZSwgbXNnOiB3YXJuaW5ncy5hcHBlbmQobXNnKSkKKyAgICAg
ICAgaG9vay5maW5kX21vZHVsZSgndGVzdF9yZW1lbWJlcl9yZXdyaXR0ZW5fbW9kdWxlcycpCisg
ICAgICAgIGhvb2subG9hZF9tb2R1bGUoJ3Rlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21vZHVsZXMn
KQorICAgICAgICBob29rLm1hcmtfcmV3cml0ZSgndGVzdF9yZW1lbWJlcl9yZXdyaXR0ZW5fbW9k
dWxlcycpCisgICAgICAgIGhvb2subWFya19yZXdyaXRlKCd0ZXN0X3JlbWVtYmVyX3Jld3JpdHRl
bl9tb2R1bGVzJykKKyAgICAgICAgYXNzZXJ0IHdhcm5pbmdzID09IFtdCisKKyAgICBkZWYgdGVz
dF9yZXdyaXRlX3dhcm5pbmdfdXNpbmdfcHl0ZXN0X3BsdWdpbnMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgICAgICdjb25mdGVzdC5weSc6
ICJweXRlc3RfcGx1Z2lucyA9IFsnY29yZScsICdndWknLCAnc2NpJ10iLAorICAgICAgICAgICAg
J2NvcmUucHknOiAiIiwKKyAgICAgICAgICAgICdndWkucHknOiAicHl0ZXN0X3BsdWdpbnMgPSBb
J2NvcmUnLCAnc2NpJ10iLAorICAgICAgICAgICAgJ3NjaS5weSc6ICJweXRlc3RfcGx1Z2lucyA9
IFsnY29yZSddIiwKKyAgICAgICAgICAgICd0ZXN0X3Jld3JpdGVfd2FybmluZ19weXRlc3RfcGx1
Z2lucy5weSc6ICJkZWYgdGVzdCgpOiBwYXNzIiwKKyAgICAgICAgfSkKKyAgICAgICAgdGVzdGRp
ci5jaGRpcigpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3Mo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqPSAxIHBhc3NlZCBpbiAq
PSonXSkKKyAgICAgICAgYXNzZXJ0ICdweXRlc3Qtd2FybmluZyBzdW1tYXJ5JyBub3QgaW4gcmVz
dWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVmIHRlc3RfcmV3cml0ZV93YXJuaW5nX3VzaW5nX3B5
dGVzdF9wbHVnaW5zX2Vudl92YXIoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoJ1BZVEVTVF9QTFVHSU5TJywgJ3BsdWdpbicpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgICAgICdwbHVnaW4ucHknOiAiIiwKKyAg
ICAgICAgICAgICd0ZXN0X3Jld3JpdGVfd2FybmluZ191c2luZ19weXRlc3RfcGx1Z2luc19lbnZf
dmFyLnB5JzogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHBsdWdpbgorICAgICAgICAgICAg
ICAgIHB5dGVzdF9wbHVnaW5zID0gWydwbHVnaW4nXQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
KCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAg
fSkKKyAgICAgICAgdGVzdGRpci5jaGRpcigpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WycqPSAxIHBhc3NlZCBpbiAqPSonXSkKKyAgICAgICAgYXNzZXJ0ICdweXRlc3Qtd2FybmluZyBz
dW1tYXJ5JyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgQHB5dGVzdC5tYXJrLnNr
aXBpZihzeXMudmVyc2lvbl9pbmZvWzBdID4gMiwgcmVhc29uPSdweXRob24gMiBvbmx5JykKKyAg
ICBkZWYgdGVzdF9yZXdyaXRlX2Z1dHVyZV9pbXBvcnRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICAiIiJUZXN0IHRoYXQgcmV3cml0dGVuIG1vZHVsZXMgZG9uJ3QgaW5oZXJpdCB0aGUgX19mdXR1
cmVfXyBmbGFncworICAgICAgICBmcm9tIHRoZSBhc3NlcnRyZXdyaXRlIG1vZHVsZS4KKworICAg
ICAgICBhc3NlcnRpb24ucmV3cml0ZSBpbXBvcnRzIF9fZnV0dXJlX18uZGl2aXNpb24gKGFuZCBv
dGhlcnMpLCBzbworICAgICAgICBlbnN1cmUgcmV3cml0dGVuIG1vZHVsZXMgZG9uJ3QgaW5oZXJp
dCB0aG9zZSBmbGFncy4KKworICAgICAgICBUaGUgdGVzdCBiZWxvdyB3aWxsIGZhaWwgaWYgX19m
dXR1cmVfXy5kaXZpc2lvbiBpcyBlbmFibGVkCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAg
IHggPSAxIC8gMgorICAgICAgICAgICAgICAgIGFzc2VydCB0eXBlKHgpIGlzIGludAorICAgICAg
ICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2NsYXNzIFRlc3RBc3NlcnRpb25SZXdyaXRlSG9va0Rl
dGFpbHMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9sb2FkZXJfaXNfcGFja2FnZV9mYWxzZV9mb3Jf
bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9m
dW49IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9sb2FkZXIoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbm90IF9fbG9hZGVyX18uaXNfcGFja2FnZShfX25hbWVfXykKKyAgICAgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiogMSBwYXNzZWQqIiwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X2xvYWRlcl9pc19wYWNrYWdlX3RydWVfZm9yX3BhY2thZ2Uo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Z1bj0iIiIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2xvYWRlcigpOgorICAgICAgICAgICAgICAgIGFzc2VydCBu
b3QgX19sb2FkZXJfXy5pc19wYWNrYWdlKF9fbmFtZV9fKQorCisgICAgICAgICAgICBkZWYgdGVz
dF9mdW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgX19sb2FkZXJfXy5pc19wYWNrYWdlKCdm
dW4nKQorCisgICAgICAgICAgICBkZWYgdGVzdF9taXNzaW5nKCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IG5vdCBfX2xvYWRlcl9fLmlzX3BhY2thZ2UoJ3B5dGVzdF9ub3RfdGhlcmUnKQorICAg
ICAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1rcHlkaXIoJ2Z1bicpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICcqIDMgcGFzc2VkKicsCisgICAgICAgIF0pCisKKyAgICBA
cHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvWzBdID49IDMiKQorICAgIEBweXRl
c3QubWFyay54ZmFpbCgiaGFzYXR0cihzeXMsICdweXB5X3RyYW5zbGF0aW9uX2luZm8nKSIpCisg
ICAgZGVmIHRlc3RfYXNzdW1lX2FzY2lpKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb250ZW50
ID0gInUnXHhlMlx4OTlceGE1XHgwMVx4ZmUnIgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2lu
KCJ0ZXN0X2VuY29kaW5nLnB5Iikud3JpdGUoY29udGVudCwgIndiIikKKyAgICAgICAgcmVzID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzLnJldCAhPSAwCisgICAgICAg
IGFzc2VydCAiU3ludGF4RXJyb3I6IE5vbi1BU0NJSSBjaGFyYWN0ZXIiIGluIHJlcy5zdGRvdXQu
c3RyKCkKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm9bMF0gPj0g
MyIpCisgICAgZGVmIHRlc3RfZGV0ZWN0X2NvZGluZ19jb29raWUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Nvb2tpZT0iIiIKKyAgICAgICAgICAgICMg
LSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgICAgICB1IlN0XHhjM1x4YTRkIgorICAgICAg
ICAgICAgZGVmIHRlc3RfcmV3cml0dGVuKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJAcHlf
YnVpbHRpbnMiIGluIGdsb2JhbHMoKSIiIikKKyAgICAgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0
ZXN0KCkucmV0ID09IDAKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2lu
Zm9bMF0gPj0gMyIpCisgICAgZGVmIHRlc3RfZGV0ZWN0X2NvZGluZ19jb29raWVfc2Vjb25kX2xp
bmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Nvb2tp
ZT0iIiIKKyAgICAgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgICAgICB1
IlN0XHhjM1x4YTRkIgorICAgICAgICAgICAgZGVmIHRlc3RfcmV3cml0dGVuKCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0ICJAcHlfYnVpbHRpbnMiIGluIGdsb2JhbHMoKSIiIikKKyAgICAgICAg
YXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0KCkucmV0ID09IDAKKworICAgIEBweXRlc3QubWFyay5z
a2lwaWYoInN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMyIpCisgICAgZGVmIHRlc3RfZGV0ZWN0X2Nv
ZGluZ19jb29raWVfY3JsZihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKHRlc3RfY29va2llPSIiIgorICAgICAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
KyAgICAgICAgICAgIHUiU3RceGMzXHhhNGQiCisgICAgICAgICAgICBkZWYgdGVzdF9yZXdyaXR0
ZW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygp
IiIiKQorICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gMAorCisgICAg
ZGVmIHRlc3Rfc3lzX21ldGFfcGF0aF9tdW5nZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGFfcGF0aCgpOgor
ICAgICAgICAgICAgICAgIGltcG9ydCBzeXM7IHN5cy5tZXRhX3BhdGggPSBbXSIiIikKKyAgICAg
ICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0KCkucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X3dy
aXRlX3B5YyhzZWxmLCB0ZXN0ZGlyLCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgZnJv
bSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBfd3JpdGVfcHljCisgICAgICAgIGZy
b20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IEFzc2VydGlvblN0YXRlCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXyBhcyBiCisgICAgICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKKyAgICAgICAgICAgIGltcG9ydCBidWlsdGlucyBhcyBiCisgICAgICAgIGNvbmZp
ZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoW10pCisgICAgICAgIHN0YXRlID0gQXNzZXJ0aW9uU3Rh
dGUoY29uZmlnLCAicmV3cml0ZSIpCisgICAgICAgIHNvdXJjZV9wYXRoID0gdG1wZGlyLmVuc3Vy
ZSgic291cmNlLnB5IikKKyAgICAgICAgcHljcGF0aCA9IHRtcGRpci5qb2luKCJweWMiKS5zdHJw
YXRoCisgICAgICAgIGFzc2VydCBfd3JpdGVfcHljKHN0YXRlLCBbMV0sIHNvdXJjZV9wYXRoLnN0
YXQoKSwgcHljcGF0aCkKKworICAgICAgICBkZWYgb3BlbigqYXJncyk6CisgICAgICAgICAgICBl
ID0gSU9FcnJvcigpCisgICAgICAgICAgICBlLmVycm5vID0gMTAKKyAgICAgICAgICAgIHJhaXNl
IGUKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGIsICJvcGVuIiwgb3BlbikKKyAgICAg
ICAgYXNzZXJ0IG5vdCBfd3JpdGVfcHljKHN0YXRlLCBbMV0sIHNvdXJjZV9wYXRoLnN0YXQoKSwg
cHljcGF0aCkKKworICAgIGRlZiB0ZXN0X3Jlc291cmNlc19wcm92aWRlcl9mb3JfbG9hZGVyKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0ZW1wdHMgdG8gbG9hZCByZXNv
dXJjZXMgZnJvbSBhIHBhY2thZ2Ugc2hvdWxkIHN1Y2NlZWQgbm9ybWFsbHksCisgICAgICAgIGV2
ZW4gd2hlbiB0aGUgQXNzZXJ0aW9uUmV3cml0ZUhvb2sgaXMgdXNlZCB0byBsb2FkIHRoZSBtb2R1
bGVzLgorCisgICAgICAgIFNlZSAjMzY2IGZvciBkZXRhaWxzLgorICAgICAgICAiIiIKKyAgICAg
ICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCisKKyAgICAgICAgdGVzdGRp
ci5ta3B5ZGlyKCd0ZXN0cGtnJykKKyAgICAgICAgY29udGVudHMgPSB7CisgICAgICAgICAgICAn
dGVzdHBrZy90ZXN0X3BrZyc6ICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBwa2dfcmVzb3Vy
Y2VzCisKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgZnJv
bSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBBc3NlcnRpb25SZXdyaXRpbmdIb29r
CisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9sb2FkX3Jlc291cmNlKCk6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKF9fbG9hZGVyX18sIEFzc2VydGlvblJld3JpdGlu
Z0hvb2spCisgICAgICAgICAgICAgICAgICAgIHJlcyA9IHBrZ19yZXNvdXJjZXMucmVzb3VyY2Vf
c3RyaW5nKF9fbmFtZV9fLCAncmVzb3VyY2UudHh0JykKKyAgICAgICAgICAgICAgICAgICAgcmVz
ID0gcmVzLmRlY29kZSgnYXNjaWknKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcmVzID09
ICdMb2FkIG1lIHBsZWFzZS4nCisgICAgICAgICAgICAgICAgIiIiLAorICAgICAgICB9CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKmNvbnRlbnRzKQorICAgICAgICB0ZXN0ZGlyLm1ha2V0
eHRmaWxlKCoqeyd0ZXN0cGtnL3Jlc291cmNlJzogIkxvYWQgbWUgcGxlYXNlLiJ9KQorCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICByZXN1
bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcmVhZF9weWMoc2Vs
ZiwgdG1wZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBgX3JlYWRf
cHljYCBjYW4gcHJvcGVybHkgZGVhbCB3aXRoIGNvcnJ1cHRlZCBweWMgZmlsZXMuCisgICAgICAg
IEluIHRob3NlIGNpcmN1bXN0YW5jZXMgaXQgc2hvdWxkIGp1c3QgZ2l2ZSB1cCBpbnN0ZWFkIG9m
IGdlbmVyYXRpbmcKKyAgICAgICAgYW4gZXhjZXB0aW9uIHRoYXQgaXMgcHJvcGFnYXRlZCB0byB0
aGUgY2FsbGVyLgorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5X2NvbXBpbGUKKyAgICAg
ICAgZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBfcmVhZF9weWMKKworICAg
ICAgICBzb3VyY2UgPSB0bXBkaXIuam9pbignc291cmNlLnB5JykKKyAgICAgICAgcHljID0gc291
cmNlICsgJ2MnCisKKyAgICAgICAgc291cmNlLndyaXRlKCdkZWYgdGVzdCgpOiBwYXNzJykKKyAg
ICAgICAgcHlfY29tcGlsZS5jb21waWxlKHN0cihzb3VyY2UpLCBzdHIocHljKSkKKworICAgICAg
ICBjb250ZW50cyA9IHB5Yy5yZWFkKG1vZGU9J3JiJykKKyAgICAgICAgc3RyaXBfYnl0ZXMgPSAy
MCAgIyBoZWFkZXIgaXMgYXJvdW5kIDggYnl0ZXMsIHN0cmlwIGEgbGl0dGxlIG1vcmUKKyAgICAg
ICAgYXNzZXJ0IGxlbihjb250ZW50cykgPiBzdHJpcF9ieXRlcworICAgICAgICBweWMud3JpdGUo
Y29udGVudHNbOnN0cmlwX2J5dGVzXSwgbW9kZT0nd2InKQorCisgICAgICAgIGFzc2VydCBfcmVh
ZF9weWMoc291cmNlLCBzdHIocHljKSkgaXMgTm9uZSAgIyBubyBlcnJvcgorCisgICAgZGVmIHRl
c3RfcmVsb2FkX2lzX3NhbWUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICMgQSBmaWxlIHRoYXQg
d2lsbCBiZSBwaWNrZWQgdXAgZHVyaW5nIGNvbGxlY3RpbmcuCisgICAgICAgIHRlc3RkaXIudG1w
ZGlyLmpvaW4oImZpbGUucHkiKS5lbnN1cmUoKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2lu
KCJweXRlc3QuaW5pIikud3JpdGUocHkuc3RkLnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAg
ICAgIFtweXRlc3RdCisgICAgICAgICAgICBweXRob25fZmlsZXMgPSAqLnB5CisgICAgICAgICIi
IikpCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZnVuPSIiIgorICAgICAgICAg
ICAgaW1wb3J0IHN5cworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZyb20gaW1w
IGltcG9ydCByZWxvYWQKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAg
ICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xvYWRlcigpOgorICAgICAgICAg
ICAgICAgIGltcG9ydCBmaWxlCisgICAgICAgICAgICAgICAgYXNzZXJ0IHN5cy5tb2R1bGVzWyJm
aWxlIl0gaXMgcmVsb2FkKGZpbGUpCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCctcycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICAgICAiKiAxIHBhc3NlZCoiLAorICAgICAgICBdKQorCisgICAgZGVm
IHRlc3RfZ2V0X2RhdGFfc3VwcG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiSW1wbGVt
ZW50IG9wdGlvbmFsIFBFUDMwMiBhcGkgKCM4MDgpLgorICAgICAgICAiIiIKKyAgICAgICAgcGF0
aCA9IHRlc3RkaXIubWtweWRpcigiZm9vIikKKyAgICAgICAgcGF0aC5qb2luKCJ0ZXN0X2Zvby5w
eSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgY2xhc3MgVGVz
dChvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgaW1wb3J0IHBrZ3V0aWwKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHBr
Z3V0aWwuZ2V0X2RhdGEoJ2Zvby50ZXN0X2ZvbycsICdkYXRhLnR4dCcpCisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBkYXRhID09IGInSGV5JworICAgICAgICAiIiIpKQorICAgICAgICBwYXRo
LmpvaW4oJ2RhdGEudHh0Jykud3JpdGUoJ0hleScpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMSBwYXNz
ZWQqJykKKworCitkZWYgdGVzdF9pc3N1ZTczMSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgY2xhc3MgTG9uZ1JlcHJXaXRoQnJhY2VzKG9iamVjdCk6CisgICAgICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgcmV0dXJuICdMb25nUmVwcldpdGhCcmFj
ZXMoeycgKyAoJ2EnICogODApICsgJ30nICsgKCdhJyAqIDEyMCkgKyAnKScKKworICAgICAgICBk
ZWYgc29tZV9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiB0ZXN0X2xvbmdfcmVwcigpOgorICAgICAgICBvYmogPSBMb25nUmVwcldpdGhCcmFjZXMoKQor
ICAgICAgICBhc3NlcnQgb2JqLnNvbWVfbWV0aG9kKCkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCAndW5iYWxhbmNlZCBicmFjZXMnIG5vdCBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworY2xhc3MgVGVzdElzc3VlOTI1KG9iamVjdCk6Cisg
ICAgZGVmIHRlc3Rfc2ltcGxlX2Nhc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfdGVybmFyeV9kaXNwbGF5KCk6CisgICAg
ICAgICAgICBhc3NlcnQgKEZhbHNlID09IEZhbHNlKSA9PSBGYWxzZQorICAgICAgICAiIiIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKCcqRSphc3NlcnQgKEZhbHNlID09IEZhbHNlKSA9PSBGYWxzZScpCisK
KyAgICBkZWYgdGVzdF9sb25nX2Nhc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfdGVybmFyeV9kaXNwbGF5KCk6CisgICAg
ICAgICAgICAgYXNzZXJ0IEZhbHNlID09IChGYWxzZSA9PSBUcnVlKSA9PSBUcnVlCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJypFKmFzc2VydCAoRmFsc2UgPT0gVHJ1ZSkgPT0gVHJ1
ZScpCisKKyAgICBkZWYgdGVzdF9tYW55X2JyYWNrZXRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF90ZXJuYXJ5X2Rp
c3BsYXkoKToKKyAgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUgPT0gKChGYWxzZSA9PSBUcnVl
KSA9PSBUcnVlKQorICAgICAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKkUqYXNzZXJ0
IFRydWUgPT0gKChGYWxzZSA9PSBUcnVlKSA9PSBUcnVlKScpCisKKworY2xhc3MgVGVzdElzc3Vl
MjEyMSgpOgorICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci50bXBkaXIuam9pbigidGVzdHMvZmlsZS5weSIpLmVuc3VyZSgpLndyaXRlKCIiIgorZGVm
IHRlc3Rfc2ltcGxlX2ZhaWx1cmUoKToKKyAgICBhc3NlcnQgMSArIDEgPT0gMworIiIiKQorICAg
ICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QuaW5pIikud3JpdGUocHkuc3RkLnRleHR3
cmFwLmRlZGVudCgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBweXRob25f
ZmlsZXMgPSB0ZXN0cy8qKi5weQorICAgICAgICAiIiIpKQorCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcq
RSphc3NlcnQgKDEgKyAxKSA9PSAzJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9jYWNoZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYWNoZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMzcxNzBjZGQyYjE2YWJiZjg2ZjJhNTI3NzJiZTEyOWFkM2ZmOGQwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlLnB5CkBAIC0wLDAgKzEsNjA1
IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBvcnQgcHkKK2ltcG9ydCBfcHl0ZXN0CitpbXBv
cnQgcHl0ZXN0CitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKKworcHl0ZXN0X3BsdWdpbnMgPSAi
cHl0ZXN0ZXIiLAorCisKK2NsYXNzIFRlc3ROZXdBUEkob2JqZWN0KToKKyAgICBkZWYgdGVzdF9j
b25maWdfY2FjaGVfbWFrZWRpcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
aW5pKCJbcHl0ZXN0XSIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUo
KQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBj
b25maWcuY2FjaGUubWFrZWRpcigia2V5L25hbWUiKQorCisgICAgICAgIHAgPSBjb25maWcuY2Fj
aGUubWFrZWRpcigibmFtZSIpCisgICAgICAgIGFzc2VydCBwLmNoZWNrKCkKKworICAgIGRlZiB0
ZXN0X2NvbmZpZ19jYWNoZV9kYXRhZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWluaSgiW3B5dGVzdF0iKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29u
ZmlndXJlKCkKKyAgICAgICAgY2FjaGUgPSBjb25maWcuY2FjaGUKKyAgICAgICAgcHl0ZXN0LnJh
aXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogY2FjaGUuc2V0KCJrZXkvbmFtZSIsIGNhY2hlKSkKKyAg
ICAgICAgY29uZmlnLmNhY2hlLnNldCgia2V5L25hbWUiLCAwKQorICAgICAgICBjb25maWcuY2Fj
aGUuX2dldHZhbHVlcGF0aCgia2V5L25hbWUiKS53cml0ZSgiMTIzaW52YWxpZCIpCisgICAgICAg
IHZhbCA9IGNvbmZpZy5jYWNoZS5nZXQoImtleS9uYW1lIiwgLTIpCisgICAgICAgIGFzc2VydCB2
YWwgPT0gLTIKKworICAgIGRlZiB0ZXN0X2NhY2hlX3dyaXRlZmFpbF9jYWNoZmlsZV9zaWxlbnQo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiW3B5dGVzdF0iKQorICAg
ICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCcuY2FjaGUnKS53cml0ZSgnZ29uZSB3cm9uZycpCisg
ICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoKQorICAgICAgICBjYWNoZSA9
IGNvbmZpZy5jYWNoZQorICAgICAgICBjYWNoZS5zZXQoJ3Rlc3QvYnJva2VuJywgW10pCisKKyAg
ICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwgcmVh
c29uPSdubyBjaG1vZCBvbiB3aW5kb3dzJykKKyAgICBkZWYgdGVzdF9jYWNoZV93cml0ZWZhaWxf
cGVybWlzc2lvbnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiW3B5
dGVzdF0iKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5lbnN1cmVfZGlyKCcuY2FjaGUnKS5jaG1v
ZCgwKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAg
Y2FjaGUgPSBjb25maWcuY2FjaGUKKyAgICAgICAgY2FjaGUuc2V0KCd0ZXN0L2Jyb2tlbicsIFtd
KQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2lu
JyksIHJlYXNvbj0nbm8gY2htb2Qgb24gd2luZG93cycpCisgICAgZGVmIHRlc3RfY2FjaGVfZmFp
bHVyZV93YXJucyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci50bXBkaXIuZW5zdXJl
X2RpcignLmNhY2hlJykuY2htb2QoMCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgZGVmIHRlc3RfZXJyb3IoKToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24KKworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCctcncnKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmNvdWxkIG5vdCBjcmVhdGUgY2Fj
aGUgcGF0aCoiLAorICAgICAgICAgICAgIioxIHdhcm5pbmdzKiIsCisgICAgICAgIF0pCisKKyAg
ICBkZWYgdGVzdF9jb25maWdfY2FjaGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmln
KToKKyAgICAgICAgICAgICAgICAjIHNlZSB0aGF0IHdlIGdldCBjYWNoZSBpbmZvcm1hdGlvbiBl
YXJseSBvbgorICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKGNvbmZpZywgImNhY2hlIikK
KyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBkZWYgdGVzdF9zZXNzaW9uKHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IGhhc2F0dHIocHl0ZXN0Y29uZmlnLCAiY2FjaGUiKQorICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisK
KyAgICBkZWYgdGVzdF9jYWNoZWZ1bmNhcmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2NhY2hlZnVuY2FyZyhjYWNoZSk6CisgICAgICAgICAgICAgICAgdmFsID0gY2Fj
aGUuZ2V0KCJzb21lL3RoaW5nIiwgTm9uZSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsIGlz
IE5vbmUKKyAgICAgICAgICAgICAgICBjYWNoZS5zZXQoInNvbWUvdGhpbmciLCBbMV0pCisgICAg
ICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogY2FjaGUuZ2V0KCJz
b21lL3RoaW5nIikpCisgICAgICAgICAgICAgICAgdmFsID0gY2FjaGUuZ2V0KCJzb21lL3RoaW5n
IiwgW10pCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSBbMV0KKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFz
c2VkKiJdKQorCisgICAgZGVmIHRlc3RfY3VzdG9tX3JlbF9jYWNoZV9kaXIoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHJlbF9jYWNoZV9kaXIgPSBvcy5wYXRoLmpvaW4oJ2N1c3RvbV9jYWNoZV9k
aXInLCAnc3ViZGlyJykKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgICAgIGNhY2hlX2RpciA9IHtjYWNoZV9kaXJ9CisgICAgICAgICIi
Ii5mb3JtYXQoY2FjaGVfZGlyPXJlbF9jYWNoZV9kaXIpKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUodGVzdF9lcnJvcmVkPSdkZWYgdGVzdF9lcnJvcigpOlxuICAgIGFzc2VydCBGYWxzZScp
CisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHRlc3RkaXIudG1w
ZGlyLmpvaW4ocmVsX2NhY2hlX2RpcikuaXNkaXIoKQorCisgICAgZGVmIHRlc3RfY3VzdG9tX2Fi
c19jYWNoZV9kaXIoc2VsZiwgdGVzdGRpciwgdG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICB0bXAg
PSBzdHIodG1wZGlyX2ZhY3RvcnkubWt0ZW1wKCd0bXAnKSkKKyAgICAgICAgYWJzX2NhY2hlX2Rp
ciA9IG9zLnBhdGguam9pbih0bXAsICdjdXN0b21fY2FjaGVfZGlyJykKKyAgICAgICAgdGVzdGRp
ci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGNhY2hlX2Rp
ciA9IHtjYWNoZV9kaXJ9CisgICAgICAgICIiIi5mb3JtYXQoY2FjaGVfZGlyPWFic19jYWNoZV9k
aXIpKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9lcnJvcmVkPSdkZWYgdGVzdF9l
cnJvcigpOlxuICAgIGFzc2VydCBGYWxzZScpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgYXNzZXJ0IHB5LnBhdGgubG9jYWwoYWJzX2NhY2hlX2RpcikuaXNkaXIoKQorCisg
ICAgZGVmIHRlc3RfY3VzdG9tX2NhY2hlX2Rpcl93aXRoX2Vudl92YXIoc2VsZiwgdGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ2Vudl92YXInLCAnY3Vz
dG9tX2NhY2hlX2RpcicpCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAg
IFtweXRlc3RdCisgICAgICAgICAgICBjYWNoZV9kaXIgPSB7Y2FjaGVfZGlyfQorICAgICAgICAi
IiIuZm9ybWF0KGNhY2hlX2Rpcj0nJGVudl92YXInKSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKHRlc3RfZXJyb3JlZD0nZGVmIHRlc3RfZXJyb3IoKTpcbiAgICBhc3NlcnQgRmFsc2UnKQor
ICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnRtcGRp
ci5qb2luKCdjdXN0b21fY2FjaGVfZGlyJykuaXNkaXIoKQorCisKK2RlZiB0ZXN0X2NhY2hlX3Jl
cG9ydGhlYWRlcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgImNhY2hlZGlyOiAuY2FjaGUiCisgICAgXSkKKworCitkZWYgdGVzdF9j
YWNoZV9zaG93KHRlc3RkaXIpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNh
Y2hlLXNob3ciKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKmNhY2hlIGlzIGVtcHR5KiIKKyAgICBdKQorICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShj
b25maWcpOgorICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgibXkvbmFtZSIsIFsxLDIsM10p
CisgICAgICAgICAgICBjb25maWcuY2FjaGUuc2V0KCJvdGhlci9zb21lIiwgezE6Mn0pCisgICAg
ICAgICAgICBkcCA9IGNvbmZpZy5jYWNoZS5tYWtlZGlyKCJteWRiIikKKyAgICAgICAgICAgIGRw
LmVuc3VyZSgiaGVsbG8iKQorICAgICAgICAgICAgZHAuZW5zdXJlKCJ3b3JsZCIpCisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSA1ICAjIG5vIHRlc3RzIGV4ZWN1dGVkCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tY2FjaGUtc2hvdyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzX3JhbmRv
bShbCisgICAgICAgICIqY2FjaGVkaXI6KiIsCisgICAgICAgICItKmNhY2hlIHZhbHVlcyotIiwK
KyAgICAgICAgIipteS9uYW1lIGNvbnRhaW5zOiIsCisgICAgICAgICIgIFsxLCAyLCAzXSIsCisg
ICAgICAgICIqb3RoZXIvc29tZSBjb250YWlucyoiLAorICAgICAgICAiICB7KjEqOiAyfSIsCisg
ICAgICAgICItKmNhY2hlIGRpcmVjdG9yaWVzKi0iLAorICAgICAgICAiKm15ZGIvaGVsbG8qbGVu
Z3RoIDAqIiwKKyAgICAgICAgIipteWRiL3dvcmxkKmxlbmd0aCAwKiIsCisgICAgXSkKKworCitj
bGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF91
c2VjYXNlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0ZW52KCJQWVRIT05ET05UV1JJVEVCWVRFQ09ERSIsIDEpCisgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioyIGZh
aWxlZCoiLAorICAgICAgICBdKQorICAgICAgICBwLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNl
KCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAx
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQor
CisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAg
ICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioyIHBh
c3NlZCoxIGRlc2VsKiIsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItLWxmIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqMSBmYWlsZWQqMiBwYXNzZWQqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCAiLS1jYWNoZS1jbGVhciIpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgZmFpbGVkKjIg
cGFzc2VkKiIsCisgICAgICAgIF0pCisKKyAgICAgICAgIyBSdW4gdGhpcyBhZ2FpbiB0byBtYWtl
IHN1cmUgY2xlYXItY2FjaGUgaXMgcm9idXN0CisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoJy5j
YWNoZScpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZSgnLmNhY2hlJykKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCAiLS1jYWNoZS1jbGVhciIpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgZmFpbGVkKjIg
cGFzc2VkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9mYWlsZWRmaXJzdF9vcmRlcihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigndGVzdF9hLnB5Jyku
d3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hbHdh
eXNfcGFzc2VzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKSkKKyAg
ICAgICAgdGVzdGRpci50bXBkaXIuam9pbigndGVzdF9iLnB5Jykud3JpdGUoX3B5dGVzdC5fY29k
ZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hbHdheXNfZmFpbHMoKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgICMgVGVzdCBvcmRlciB3aWxsIGJlIGNvbGxlY3Rpb24g
b3JkZXI7IGFscGhhYmV0aWNhbAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgInRlc3RfYS5weSoiLAorICAgICAgICAgICAgInRlc3RfYi5weSoiLAor
ICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1mZiIpCisg
ICAgICAgICMgVGVzdCBvcmRlciB3aWxsIGJlIGZhaWxpbmcgdGVzdHMgZmlycworICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgInRlc3RfYi5weSoiLAor
ICAgICAgICAgICAgInRlc3RfYS5weSoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbGFz
dGZhaWxlZF9mYWlsZWRmaXJzdF9vcmRlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCoqeworICAgICAgICAgICAgJ3Rlc3RfYS5weSc6ICIiIgorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X2Fsd2F5c19wYXNzZXMoKToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IDEKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICd0ZXN0X2IucHknOiAiIiIKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9hbHdheXNfZmFpbHMoKToKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgfSkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICAjIFRlc3Qgb3JkZXIgd2lsbCBiZSBjb2xs
ZWN0aW9uIG9yZGVyOyBhbHBoYWJldGljYWwKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICJ0ZXN0X2EucHkqIiwKKyAgICAgICAgICAgICJ0ZXN0X2Iu
cHkqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
bGYiLCAiLS1mZiIpCisgICAgICAgICMgVGVzdCBvcmRlciB3aWxsIGJlIGZhaWxpbmcgdGVzdHMg
ZmlycworICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
InRlc3RfYi5weSoiLAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgJ3Rlc3RfYS5weScgbm90
IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0X2xhc3RmYWlsZWRfZGlmZmVy
ZW5jZV9pbnZvY2F0aW9ucyhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1v
bmtleXBhdGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAxKQorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9hPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYTEoKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfYTIoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgMQorICAgICAgICAiIiIsIHRlc3RfYj0iIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2IxKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIi
KQorICAgICAgICBwID0gdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9hLnB5IikKKyAgICAgICAg
cDIgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0X2IucHkiKQorCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqMiBmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCBwMikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAg
ICAgICAgcDIud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBkZWYg
dGVzdF9iMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgcDIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAg
ICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgcCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBmYWls
ZWQqMSBkZXNlbCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF91c2Vj
YXNlX3NwbGljZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBh
dGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAxKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBwMiA9IHRlc3RkaXIudG1wZGlyLmpv
aW4oInRlc3Rfc29tZXRoaW5nLnB5IikKKyAgICAgICAgcDIud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IDAKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioy
IGZhaWxlZCoiLAorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1sZiIsIHAyKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIioxIGZhaWxlZCoiLAorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1sZiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKjIgZmFpbGVkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVz
dF9sYXN0ZmFpbGVkX3hwYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLmlubGlu
ZV9ydW5zb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGly
LnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgbGFzdGZhaWxlZCA9IGNvbmZpZy5jYWNoZS5nZXQo
ImNhY2hlL2xhc3RmYWlsZWQiLCAtMSkKKyAgICAgICAgYXNzZXJ0IGxhc3RmYWlsZWQgPT0gLTEK
KworICAgIGRlZiB0ZXN0X25vbl9zZXJpYWxpemFibGVfcGFyYW1ldHJpemUoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgICIiIlRlc3QgdGhhdCBmYWlsZWQgcGFyYW1ldHJpemVkIHRlc3RzIHdpdGgg
dW5tYXJzaGFibGUgcGFyYW1ldGVycworICAgICAgICBkb24ndCBicmVhayBweXRlc3QtY2FjaGUu
CisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUociIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
J3ZhbCcsIFsKKyAgICAgICAgICAgICAgICBiJ1x4YWNceDEwXHgwMkcnLAorICAgICAgICAgICAg
XSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwodmFsKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgRmFsc2UKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjEgZmFpbGVkIGluKicp
CisKKyAgICBkZWYgdGVzdF90ZXJtaW5hbF9yZXBvcnRfbGFzdGZhaWxlZChzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdF9hID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfYT0iIiIKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2ExKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIHRlc3RfYTIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAg
ICAgdGVzdF9iID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfYj0iIiIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2IxKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2IyKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAnY29sbGVjdGVkIDQgaXRlbXMnLAorICAgICAgICAg
ICAgJyoyIGZhaWxlZCwgMiBwYXNzZWQgaW4qJywKKyAgICAgICAgXSkKKworICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1sZicpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAnY29sbGVjdGVkIDQgaXRlbXMnLAorICAgICAgICAg
ICAgJ3J1bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDIgZmFpbHVyZXMnLAorICAgICAg
ICAgICAgJyoyIGZhaWxlZCwgMiBkZXNlbGVjdGVkIGluKicsCisgICAgICAgIF0pCisKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdF9hLCAnLS1sZicpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnY29sbGVjdGVkIDIgaXRl
bXMnLAorICAgICAgICAgICAgJ3J1bi1sYXN0LWZhaWx1cmU6IHJ1biBhbGwgKG5vIHJlY29yZGVk
IGZhaWx1cmVzKScsCisgICAgICAgICAgICAnKjIgcGFzc2VkIGluKicsCisgICAgICAgIF0pCisK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdF9iLCAnLS1sZicpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnY29sbGVjdGVk
IDIgaXRlbXMnLAorICAgICAgICAgICAgJ3J1bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3Vz
IDIgZmFpbHVyZXMnLAorICAgICAgICAgICAgJyoyIGZhaWxlZCBpbionLAorICAgICAgICBdKQor
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCd0ZXN0X2IucHk6OnRlc3RfYjEn
LCAnLS1sZicpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAnY29sbGVjdGVkIDEgaXRlbScsCisgICAgICAgICAgICAncnVuLWxhc3QtZmFpbHVyZTog
cmVydW4gcHJldmlvdXMgMSBmYWlsdXJlJywKKyAgICAgICAgICAgICcqMSBmYWlsZWQgaW4qJywK
KyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3Rlcm1pbmFsX3JlcG9ydF9mYWlsZWRmaXJzdChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfYT0iIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2ExKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2EyKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICdjb2xsZWN0ZWQgMiBpdGVtcycsCisg
ICAgICAgICAgICAnKjEgZmFpbGVkLCAxIHBhc3NlZCBpbionLAorICAgICAgICBdKQorCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWZmJykKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICdjb2xsZWN0ZWQgMiBpdGVtcycsCisg
ICAgICAgICAgICAncnVuLWxhc3QtZmFpbHVyZTogcmVydW4gcHJldmlvdXMgMSBmYWlsdXJlIGZp
cnN0JywKKyAgICAgICAgICAgICcqMSBmYWlsZWQsIDEgcGFzc2VkIGluKicsCisgICAgICAgIF0p
CisKKyAgICBkZWYgdGVzdF9sYXN0ZmFpbGVkX2NvbGxlY3RmYWlsdXJlKHNlbGYsIHRlc3RkaXIs
IG1vbmtleXBhdGNoKToKKworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9tYXliZT0i
IiIKKyAgICAgICAgICAgIGltcG9ydCBweQorICAgICAgICAgICAgZW52ID0gcHkuc3RkLm9zLmVu
dmlyb24KKyAgICAgICAgICAgIGlmICcxJyA9PSBlbnZbJ0ZBSUxJTVBPUlQnXToKKyAgICAgICAg
ICAgICAgICByYWlzZSBJbXBvcnRFcnJvcignZmFpbCcpCisgICAgICAgICAgICBkZWYgdGVzdF9o
ZWxsbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAnMCcgPT0gZW52WydGQUlMVEVTVCddCisg
ICAgICAgICIiIikKKworICAgICAgICBkZWYgcmxmKGZhaWxfaW1wb3J0LCBmYWlsX3J1bik6Cisg
ICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0ZBSUxJTVBPUlQnLCBmYWlsX2ltcG9ydCkK
KyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGVudignRkFJTFRFU1QnLCBmYWlsX3J1bikKKwor
ICAgICAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoJy1xJykKKyAgICAgICAgICAgIGNvbmZpZyA9
IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoKQorICAgICAgICAgICAgbGFzdGZhaWxlZCA9IGNvbmZp
Zy5jYWNoZS5nZXQoImNhY2hlL2xhc3RmYWlsZWQiLCAtMSkKKyAgICAgICAgICAgIHJldHVybiBs
YXN0ZmFpbGVkCisKKyAgICAgICAgbGFzdGZhaWxlZCA9IHJsZihmYWlsX2ltcG9ydD0wLCBmYWls
X3J1bj0wKQorICAgICAgICBhc3NlcnQgbGFzdGZhaWxlZCA9PSAtMQorCisgICAgICAgIGxhc3Rm
YWlsZWQgPSBybGYoZmFpbF9pbXBvcnQ9MSwgZmFpbF9ydW49MCkKKyAgICAgICAgYXNzZXJ0IGxp
c3QobGFzdGZhaWxlZCkgPT0gWyd0ZXN0X21heWJlLnB5J10KKworICAgICAgICBsYXN0ZmFpbGVk
ID0gcmxmKGZhaWxfaW1wb3J0PTAsIGZhaWxfcnVuPTEpCisgICAgICAgIGFzc2VydCBsaXN0KGxh
c3RmYWlsZWQpID09IFsndGVzdF9tYXliZS5weTo6dGVzdF9oZWxsbyddCisKKyAgICBkZWYgdGVz
dF9sYXN0ZmFpbGVkX2ZhaWx1cmVfc3Vic2V0KHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToK
KworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9tYXliZT0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweQorICAgICAgICAgICAgZW52ID0gcHkuc3RkLm9zLmVudmlyb24KKyAgICAgICAg
ICAgIGlmICcxJyA9PSBlbnZbJ0ZBSUxJTVBPUlQnXToKKyAgICAgICAgICAgICAgICByYWlzZSBJ
bXBvcnRFcnJvcignZmFpbCcpCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAnMCcgPT0gZW52WydGQUlMVEVTVCddCisgICAgICAgICIiIikKKwor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9tYXliZTI9IiIiCisgICAgICAgICAgICBp
bXBvcnQgcHkKKyAgICAgICAgICAgIGVudiA9IHB5LnN0ZC5vcy5lbnZpcm9uCisgICAgICAgICAg
ICBpZiAnMScgPT0gZW52WydGQUlMSU1QT1JUJ106CisgICAgICAgICAgICAgICAgcmFpc2UgSW1w
b3J0RXJyb3IoJ2ZhaWwnKQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgJzAnID09IGVudlsnRkFJTFRFU1QnXQorCisgICAgICAgICAgICBkZWYg
dGVzdF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisKKyAgICAg
ICAgZGVmIHJsZihmYWlsX2ltcG9ydCwgZmFpbF9ydW4sIGFyZ3M9KCkpOgorICAgICAgICAgICAg
bW9ua2V5cGF0Y2guc2V0ZW52KCdGQUlMSU1QT1JUJywgZmFpbF9pbXBvcnQpCisgICAgICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoJ0ZBSUxURVNUJywgZmFpbF9ydW4pCisKKyAgICAgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcScsICctLWxmJywgKmFyZ3MpCisgICAgICAg
ICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgICAgIGxhc3Rm
YWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwgLTEpCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LCBsYXN0ZmFpbGVkCisKKyAgICAgICAgcmVzdWx0LCBsYXN0ZmFp
bGVkID0gcmxmKGZhaWxfaW1wb3J0PTAsIGZhaWxfcnVuPTApCisgICAgICAgIGFzc2VydCBsYXN0
ZmFpbGVkID09IC0xCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAnKjMgcGFzc2VkKicsCisgICAgICAgIF0pCisKKyAgICAgICAgcmVzdWx0LCBsYXN0
ZmFpbGVkID0gcmxmKGZhaWxfaW1wb3J0PTEsIGZhaWxfcnVuPTApCisgICAgICAgIGFzc2VydCBz
b3J0ZWQobGlzdChsYXN0ZmFpbGVkKSkgPT0gWyd0ZXN0X21heWJlLnB5JywgJ3Rlc3RfbWF5YmUy
LnB5J10KKworICAgICAgICByZXN1bHQsIGxhc3RmYWlsZWQgPSBybGYoZmFpbF9pbXBvcnQ9MCwg
ZmFpbF9ydW49MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KCd0ZXN0
X21heWJlMi5weScsKSkKKyAgICAgICAgYXNzZXJ0IGxpc3QobGFzdGZhaWxlZCkgPT0gWyd0ZXN0
X21heWJlLnB5J10KKworICAgICAgICAjIGVkZ2UgY2FzZSBvZiB0ZXN0IHNlbGVjdGlvbiAtIGV2
ZW4gaWYgd2UgcmVtZW1iZXIgZmFpbHVyZXMKKyAgICAgICAgIyBmcm9tIG90aGVyIHRlc3RzIHdl
IHN0aWxsIG5lZWQgdG8gcnVuIGFsbCB0ZXN0cyBpZiBubyB0ZXN0CisgICAgICAgICMgbWF0Y2hl
cyB0aGUgZmFpbHVyZXMKKyAgICAgICAgcmVzdWx0LCBsYXN0ZmFpbGVkID0gcmxmKGZhaWxfaW1w
b3J0PTAsIGZhaWxfcnVuPTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdz
PSgndGVzdF9tYXliZTIucHknLCkpCisgICAgICAgIGFzc2VydCBsaXN0KGxhc3RmYWlsZWQpID09
IFsndGVzdF9tYXliZS5weSddCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAnKjIgcGFzc2VkKicsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9s
YXN0ZmFpbGVkX2NyZWF0ZXNfY2FjaGVfd2hlbl9uZWVkZWQoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICMgSXNzdWUgIzEzNDIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZW1wdHk9
JycpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCctcScsICctLWxmJykKKyAgICAgICAgYXNz
ZXJ0IG5vdCBvcy5wYXRoLmV4aXN0cygnLmNhY2hlJykKKworICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUodGVzdF9zdWNjZXNzZnVsPSdkZWYgdGVzdF9zdWNjZXNzKCk6XG4gICAgYXNzZXJ0IFRy
dWUnKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXEnLCAnLS1sZicpCisgICAgICAgIGFz
c2VydCBub3Qgb3MucGF0aC5leGlzdHMoJy5jYWNoZScpCisKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKHRlc3RfZXJyb3JlZD0nZGVmIHRlc3RfZXJyb3IoKTpcbiAgICBhc3NlcnQgRmFsc2Un
KQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXEnLCAnLS1sZicpCisgICAgICAgIGFzc2Vy
dCBvcy5wYXRoLmV4aXN0cygnLmNhY2hlJykKKworICAgIGRlZiB0ZXN0X3hmYWlsX25vdF9jb25z
aWRlcmVkX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFy
ay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MAorICAgICAgICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMSB4ZmFpbGVkKicpCisgICAgICAg
IGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gW10KKworICAg
IGRlZiB0ZXN0X3hmYWlsX3N0cmljdF9jb25zaWRlcmVkX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChzdHJpY3Q9VHJ1ZSkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAnJycpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCcqMSBmYWlsZWQqJykKKyAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hl
ZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbJ3Rlc3RfeGZhaWxfc3RyaWN0X2NvbnNpZGVyZWRf
ZmFpbHVyZS5weTo6dGVzdCddCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21hcmsn
LCBbJ21hcmsueGZhaWwnLCAnbWFyay5za2lwJ10pCisgICAgZGVmIHRlc3RfZmFpbGVkX2NoYW5n
ZWRfdG9feGZhaWxfb3Jfc2tpcChzZWxmLCB0ZXN0ZGlyLCBtYXJrKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
ZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAnJycpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0
X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbJ3Rlc3RfZmFpbGVkX2NoYW5nZWRfdG9f
eGZhaWxfb3Jfc2tpcC5weTo6dGVzdCddCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEK
KworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LnttYXJrfQorICAgICAgICAgICAgZGVmIHRlc3QoKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAnJycuZm9ybWF0KG1hcms9bWFyaykp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVk
KHRlc3RkaXIpID09IFtdCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRl
ZiBnZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25maWcg
PSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgcmV0dXJuIHNvcnRlZChjb25maWcu
Y2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwge30pKQorCisgICAgZGVmIHRlc3RfY2FjaGVf
Y3VtdWxhdGl2ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3Qgd29y
a2Zsb3cgd2hlcmUgdXNlciBmaXhlcyBlcnJvcnMgZ3JhZHVhbGx5IGZpbGUgYnkgZmlsZSB1c2lu
ZyAtLWxmLgorICAgICAgICAiIiIKKyAgICAgICAgIyAxLiBpbml0aWFsIHJ1bgorICAgICAgICB0
ZXN0X2JhciA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Jhcj0iIiIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Jhcl8xKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRl
c3RfYmFyXzIoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAg
ICAgIHRlc3RfZm9vID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgorICAgICAgICAg
ICAgZGVmIHRlc3RfZm9vXzMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBk
ZWYgdGVzdF9mb29fNCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikK
KyAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2Fj
aGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsndGVzdF9iYXIucHk6OnRlc3RfYmFyXzInLCAn
dGVzdF9mb28ucHk6OnRlc3RfZm9vXzQnXQorCisgICAgICAgICMgMi4gZml4IHRlc3RfYmFyXzIs
IHJ1biBvbmx5IHRlc3RfYmFyLnB5CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Jh
cj0iIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Jhcl8xKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZGVmIHRlc3RfYmFyXzIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdF9iYXIp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjIgcGFzc2VkKicpCisgICAg
ICAgICMgZW5zdXJlIGNhY2hlIGRvZXMgbm90IGZvcmdldCB0aGF0IHRlc3RfZm9vXzQgZmFpbGVk
IG9uY2UgYmVmb3JlCisgICAgICAgIGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQo
dGVzdGRpcikgPT0gWyd0ZXN0X2Zvby5weTo6dGVzdF9mb29fNCddCisKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tbGFzdC1mYWlsZWQnKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoJyoxIGZhaWxlZCwgMyBkZXNlbGVjdGVkKicpCisgICAgICAgIGFz
c2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gWyd0ZXN0X2Zvby5w
eTo6dGVzdF9mb29fNCddCisKKyAgICAgICAgIyAzLiBmaXggdGVzdF9mb29fNCwgcnVuIG9ubHkg
dGVzdF9mb28ucHkKKyAgICAgICAgdGVzdF9mb28gPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9m
b289IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mb29fMygpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvb180KCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RfZm9v
LCAnLS1sYXN0LWZhaWxlZCcpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygn
KjEgcGFzc2VkLCAxIGRlc2VsZWN0ZWQqJykKKyAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hl
ZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCctLWxhc3QtZmFpbGVkJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKCcqNCBwYXNzZWQqJykKKyAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9sYXN0
X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X2NhcHR1cmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY2FwdHVyZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNzY5YTcyNWRjNGI1ZmQ3M2RhOTgzNzMxMTQxNzFhYWZlNzIxNDk3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhcHR1cmUucHkKQEAgLTAsMCAr
MSwxMjc0IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisjIG5vdGU6IHB5LmlvIGNhcHR1cmUgdGVzdHMgd2hlcmUgY29w
aWVkIGZyb20KKyMgcHlsaWIgMS40LjIwLmRldjIgKHJldiAxM2Q5YWY5NTU0N2UpCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50CitpbXBvcnQgcGlja2xlCitpbXBvcnQgb3MK
K2ltcG9ydCBzeXMKK2Zyb20gaW8gaW1wb3J0IFVuc3VwcG9ydGVkT3BlcmF0aW9uCisKK2ltcG9y
dCBfcHl0ZXN0Ll9jb2RlCitpbXBvcnQgcHkKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBjb250ZXh0
bGliCisKK2Zyb20gX3B5dGVzdCBpbXBvcnQgY2FwdHVyZQorZnJvbSBfcHl0ZXN0LmNhcHR1cmUg
aW1wb3J0IENhcHR1cmVNYW5hZ2VyCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RF
U1RTQ09MTEVDVEVECisKKworbmVlZHNvc2R1cCA9IHB5dGVzdC5tYXJrLnhmYWlsKCJub3QgaGFz
YXR0cihvcywgJ2R1cCcpIikKKworaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAg
ZGVmIHRvYnl0ZXMob2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHN0cik6CisgICAg
ICAgICAgICBvYmogPSBvYmouZW5jb2RlKCdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKG9iaiwgYnl0ZXMpCisgICAgICAgIHJldHVybiBvYmoKKworICAgIGRlZiB0b3RleHQob2Jq
KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGJ5dGVzKToKKyAgICAgICAgICAgIG9iaiA9
IHN0cihvYmosICdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwgc3RyKQor
ICAgICAgICByZXR1cm4gb2JqCitlbHNlOgorICAgIGRlZiB0b2J5dGVzKG9iaik6CisgICAgICAg
IGlmIGlzaW5zdGFuY2Uob2JqLCB1bmljb2RlKToKKyAgICAgICAgICAgIG9iaiA9IG9iai5lbmNv
ZGUoJ1VURi04JykKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob2JqLCBzdHIpCisgICAgICAg
IHJldHVybiBvYmoKKworICAgIGRlZiB0b3RleHQob2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShvYmosIHN0cik6CisgICAgICAgICAgICBvYmogPSB1bmljb2RlKG9iaiwgJ1VURi04JykKKyAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob2JqLCB1bmljb2RlKQorICAgICAgICByZXR1cm4gb2Jq
CisKKworZGVmIG9zd3JpdGVieXRlcyhmZCwgb2JqKToKKyAgICBvcy53cml0ZShmZCwgdG9ieXRl
cyhvYmopKQorCisKK2RlZiBTdGRDYXB0dXJlRkQob3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1
ZSk6CisgICAgcmV0dXJuIGNhcHR1cmUuTXVsdGlDYXB0dXJlKG91dCwgZXJyLCBpbl8sIENhcHR1
cmU9Y2FwdHVyZS5GRENhcHR1cmUpCisKKworZGVmIFN0ZENhcHR1cmUob3V0PVRydWUsIGVycj1U
cnVlLCBpbl89VHJ1ZSk6CisgICAgcmV0dXJuIGNhcHR1cmUuTXVsdGlDYXB0dXJlKG91dCwgZXJy
LCBpbl8sIENhcHR1cmU9Y2FwdHVyZS5TeXNDYXB0dXJlKQorCisKK2NsYXNzIFRlc3RDYXB0dXJl
TWFuYWdlcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X2dldG1ldGhvZF9kZWZhdWx0X25vX2ZkKHNl
bGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IHB5
dGVzdF9hZGRvcHRpb24KKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgUGFyc2Vy
CisgICAgICAgIHBhcnNlciA9IFBhcnNlcigpCisgICAgICAgIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKQorICAgICAgICBkZWZhdWx0ID0gcGFyc2VyLl9ncm91cHNbMF0ub3B0aW9uc1swXS5kZWZh
dWx0CisgICAgICAgIGFzc2VydCBkZWZhdWx0ID09ICJmZCIgaWYgaGFzYXR0cihvcywgImR1cCIp
IGVsc2UgInN5cyIKKyAgICAgICAgcGFyc2VyID0gUGFyc2VyKCkKKyAgICAgICAgbW9ua2V5cGF0
Y2guZGVsYXR0cihvcywgJ2R1cCcsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKQorICAgICAgICBhc3NlcnQgcGFyc2VyLl9ncm91cHNbMF0ub3B0aW9uc1sw
XS5kZWZhdWx0ID09ICJzeXMiCisKKyAgICBAbmVlZHNvc2R1cAorICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgibWV0aG9kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydubycs
ICdzeXMnLCBweXRlc3QubWFyay5za2lwaWYoJ25vdCBoYXNhdHRyKG9zLCAiZHVwIiknLCAnZmQn
KV0pCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX2Jhc2ljX2FwaShzZWxmLCBtZXRob2QpOgorICAg
ICAgICBjYXBvdXRlciA9IFN0ZENhcHR1cmVGRCgpCisgICAgICAgIG9sZCA9IHN5cy5zdGRvdXQs
IHN5cy5zdGRlcnIsIHN5cy5zdGRpbgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjYXBtYW4g
PSBDYXB0dXJlTWFuYWdlcihtZXRob2QpCisgICAgICAgICAgICBjYXBtYW4uc3RhcnRfZ2xvYmFs
X2NhcHR1cmluZygpCisgICAgICAgICAgICBvdXRlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxf
Y2FwdHVyZSgpCisgICAgICAgICAgICBhc3NlcnQgb3V0ZXJyID09ICgiIiwgIiIpCisgICAgICAg
ICAgICBvdXRlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAg
ICBhc3NlcnQgb3V0ZXJyID09ICgiIiwgIiIpCisgICAgICAgICAgICBwcmludCgiaGVsbG8iKQor
ICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisg
ICAgICAgICAgICBpZiBtZXRob2QgPT0gIm5vIjoKKyAgICAgICAgICAgICAgICBhc3NlcnQgb2xk
ID09IChzeXMuc3Rkb3V0LCBzeXMuc3RkZXJyLCBzeXMuc3RkaW4pCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGFzc2VydCBub3Qgb3V0CisgICAgICAgICAgICBjYXBtYW4ucmVz
dW1lX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgICAgIHByaW50KCJoZWxsbyIpCisgICAgICAg
ICAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAg
ICAgIGlmIG1ldGhvZCAhPSAibm8iOgorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQgPT0gImhl
bGxvXG4iCisgICAgICAgICAgICBjYXBtYW4uc3RvcF9nbG9iYWxfY2FwdHVyaW5nKCkKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIGNhcG91dGVyLnN0b3BfY2FwdHVyaW5nKCkKKworICAg
IEBuZWVkc29zZHVwCisgICAgZGVmIHRlc3RfaW5pdF9jYXB0dXJpbmcoc2VsZik6CisgICAgICAg
IGNhcG91dGVyID0gU3RkQ2FwdHVyZUZEKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2Fw
bWFuID0gQ2FwdHVyZU1hbmFnZXIoImZkIikKKyAgICAgICAgICAgIGNhcG1hbi5zdGFydF9nbG9i
YWxfY2FwdHVyaW5nKCkKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3Is
ICJjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1cmluZygpIikKKyAgICAgICAgICAgIGNhcG1hbi5z
dG9wX2dsb2JhbF9jYXB0dXJpbmcoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgY2Fw
b3V0ZXIuc3RvcF9jYXB0dXJpbmcoKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibWV0
aG9kIiwgWydmZCcsICdzeXMnXSkKK2RlZiB0ZXN0X2NhcHR1cmluZ191bmljb2RlKHRlc3RkaXIs
IG1ldGhvZCk6CisgICAgaWYgaGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpIGFuZCBz
eXMucHlweV92ZXJzaW9uX2luZm8gPCAoMiwgMik6CisgICAgICAgIHB5dGVzdC54ZmFpbCgiZG9l
cyBub3Qgd29yayBvbiBweXB5IDwgMi4yIikKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz
LCAwKToKKyAgICAgICAgb2JqID0gIidiXHUwMGY2eSciCisgICAgZWxzZToKKyAgICAgICAgb2Jq
ID0gInUnXHUwMGY2eSciCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAjIGNv
ZGluZz11dGY4CisgICAgICAgICMgdGFrZW4gZnJvbSBpc3N1ZSAyMjcgZnJvbSBub3NldGVzdHMK
KyAgICAgICAgZGVmIHRlc3RfdW5pY29kZSgpOgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgcHJpbnQgKHN5cy5zdGRvdXQpCisgICAgICAgICAgICBwcmludCAoJXMpCisgICAg
IiIiICUgb2JqKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNhcHR1cmU9JXMi
ICUgbWV0aG9kKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIq
MSBwYXNzZWQqIgorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtZXRob2Qi
LCBbJ2ZkJywgJ3N5cyddKQorZGVmIHRlc3RfY2FwdHVyaW5nX2J5dGVzX2luX3V0ZjhfZW5jb2Rp
bmcodGVzdGRpciwgbWV0aG9kKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGRlZiB0ZXN0X3VuaWNvZGUoKToKKyAgICAgICAgICAgIHByaW50ICgnYlxcdTAwZjZ5JykKKyAg
ICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY2FwdHVyZT0lcyIgJSBt
ZXRob2QpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioxIHBh
c3NlZCoiCisgICAgXSkKKworCitkZWYgdGVzdF9jb2xsZWN0X2NhcHR1cmluZyh0ZXN0ZGlyKToK
KyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBwcmludCAoImNvbGxlY3Qg
JXMgZmFpbHVyZSIgJSAxMykKKyAgICAgICAgaW1wb3J0IHh5ejQyMTIzCisgICAgIiIiKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgIipDYXB0dXJlZCBzdGRvdXQqIiwKKyAgICAgICAgIipjb2xsZWN0
IDEzIGZhaWx1cmUqIiwKKyAgICBdKQorCisKK2NsYXNzIFRlc3RQZXJUZXN0Q2FwdHVyaW5nKG9i
amVjdCk6CisgICAgZGVmIHRlc3RfY2FwdHVyZV9hbmRfZml4dHVyZXMoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgc2V0
dXBfbW9kdWxlKG1vZCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBtb2R1bGUiKQor
ICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgICAg
ICBwcmludCAoInNldHVwICIgKyBmdW5jdGlvbi5fX25hbWVfXykKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMxKCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5jMSIpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKCk6CisgICAgICAg
ICAgICAgICAgcHJpbnQgKCJpbiBmdW5jMiIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgInNldHVwIG1vZHVs
ZSoiLAorICAgICAgICAgICAgInNldHVwIHRlc3RfZnVuYzEqIiwKKyAgICAgICAgICAgICJpbiBm
dW5jMSoiLAorICAgICAgICAgICAgInNldHVwIHRlc3RfZnVuYzIqIiwKKyAgICAgICAgICAgICJp
biBmdW5jMioiLAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0i
dW5pbXBsZW1lbnRlZCBmZWF0dXJlIikKKyAgICBkZWYgdGVzdF9jYXB0dXJlX3Njb3BlX2NhY2hl
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZShmdW5jKToK
KyAgICAgICAgICAgICAgICBwcmludCAoIm1vZHVsZS1zZXR1cCIpCisgICAgICAgICAgICBkZWYg
c2V0dXBfZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJmdW5jdGlvbi1z
ZXR1cCIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcHJp
bnQgKCJpbiBmdW5jdGlvbiIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAg
IGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jKToKKyAgICAgICAgICAgICAgICBwcmludCAoImlu
IHRlYXJkb3duIikKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIip0ZXN0X2Z1bmMoKToqIiwKKyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3Rkb3V0IGR1cmlu
ZyBzZXR1cCoiLAorICAgICAgICAgICAgIm1vZHVsZS1zZXR1cCoiLAorICAgICAgICAgICAgImZ1
bmN0aW9uLXNldHVwKiIsCisgICAgICAgICAgICAiKkNhcHR1cmVkIHN0ZG91dCoiLAorICAgICAg
ICAgICAgImluIHRlYXJkb3duKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9ub19jYXJy
eV9vdmVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoKToKKyAgICAgICAgICAgICAgICBwcmludCAo
ImluIGZ1bmMxIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKCk6CisgICAgICAgICAgICAg
ICAgcHJpbnQgKCJpbiBmdW5jMiIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICBzID0g
cmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgImluIGZ1bmMxIiBub3QgaW4gcwor
ICAgICAgICBhc3NlcnQgImluIGZ1bmMyIiBpbiBzCisKKyAgICBkZWYgdGVzdF90ZWFyZG93bl9j
YXB0dXJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAg
ICAgICAgIHByaW50ICgic2V0dXAgZnVuYzEiKQorICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1
bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIGZ1bmMx
IikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEo
KToKKyAgICAgICAgICAgICAgICBwcmludCAoImluIGZ1bmMxIikKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqdGVh
cmRvd25fZnVuY3Rpb24qJywKKyAgICAgICAgICAgICcqQ2FwdHVyZWQgc3Rkb3V0KicsCisgICAg
ICAgICAgICAic2V0dXAgZnVuYzEqIiwKKyAgICAgICAgICAgICJpbiBmdW5jMSoiLAorICAgICAg
ICAgICAgInRlYXJkb3duIGZ1bmMxKiIsCisgICAgICAgICAgICAjICIqMSBmaXh0dXJlIGZhaWx1
cmUqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdGVhcmRvd25fY2FwdHVyaW5nX2ZpbmFs
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZShtb2QpOgorICAgICAgICAgICAgICAgIHByaW50
ICgidGVhcmRvd24gbW9kdWxlIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipkZWYgdGVhcmRvd25fbW9kdWxlKG1v
ZCk6KiIsCisgICAgICAgICAgICAiKkNhcHR1cmVkIHN0ZG91dCoiLAorICAgICAgICAgICAgIip0
ZWFyZG93biBtb2R1bGUqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX291dGVycihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAg
ICAgICAgICBkZWYgdGVzdF9jYXB0dXJpbmcoKToKKyAgICAgICAgICAgICAgICBwcmludCAoNDIp
CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShzdHIoMjMpKQorICAgICAgICAgICAg
ZGVmIHRlc3RfY2FwdHVyaW5nX2Vycm9yKCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKDEpCisg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShzdHIoMikpCisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHAxKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIip0ZXN0X2NhcHR1cmluZ19vdXRlcnIucHkgLkYqIiwKKyAgICAgICAgICAgICI9
PT09KiBGQUlMVVJFUyAqPT09PSIsCisgICAgICAgICAgICAiX19fXypfX19fIiwKKyAgICAgICAg
ICAgICIqdGVzdF9jYXB0dXJpbmdfb3V0ZXJyLnB5Ojg6IFZhbHVlRXJyb3IiLAorICAgICAgICAg
ICAgIiotLS0gQ2FwdHVyZWQgc3Rkb3V0ICpjYWxsKiIsCisgICAgICAgICAgICAiMSIsCisgICAg
ICAgICAgICAiKi0tLSBDYXB0dXJlZCBzdGRlcnIgKmNhbGwqIiwKKyAgICAgICAgICAgICIyIiwK
KyAgICAgICAgXSkKKworCitjbGFzcyBUZXN0TG9nZ2luZ0ludGVyYWN0aW9uKG9iamVjdCk6Cisg
ICAgZGVmIHRlc3RfbG9nZ2luZ19zdHJlYW1fb3duZXJzaGlwKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfbG9n
Z2luZygpOgorICAgICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIHN0cmVhbSA9IGNhcHR1cmUuQ2FwdHVyZUlP
KCkKKyAgICAgICAgICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKHN0cmVhbT1zdHJlYW0pCisg
ICAgICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCkgIyB0byBmcmVlIG1lbW9yeS9yZWxlYXNlIHJl
c291cmNlcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
X3N1YnByb2Nlc3MocCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRlcnIuc3RyKCkuZmluZCgi
YXRleGl0IikgPT0gLTEKKworICAgIGRlZiB0ZXN0X2xvZ2dpbmdfYW5kX2ltbWVkaWF0ZV9zZXR1
cHRlYXJkb3duKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgIGRlZiBzZXR1cF9m
dW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzEi
KQorCisgICAgICAgICAgICBkZWYgdGVzdF9sb2dnaW5nKCk6CisgICAgICAgICAgICAgICAgbG9n
Z2luZy53YXJuKCJoZWxsbzIiKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAg
ICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICAgICAgbG9n
Z2luZy53YXJuKCJoZWxsbzMiKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIi
IikKKyAgICAgICAgZm9yIG9wdGFyZ3MgaW4gKCgnLS1jYXB0dXJlPXN5cycsKSwgKCctLWNhcHR1
cmU9ZmQnLCkpOgorICAgICAgICAgICAgcHJpbnQob3B0YXJncykKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MocCwgKm9wdGFyZ3MpCisgICAgICAgICAg
ICBzID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICAgICAiKldBUk4qaGVsbG8zIiwgICMgZXJyb3JzIHNo
b3cgZmlyc3QhCisgICAgICAgICAgICAgICAgIipXQVJOKmhlbGxvMSIsCisgICAgICAgICAgICAg
ICAgIipXQVJOKmhlbGxvMiIsCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgIyB2ZXJpZnkg
cHJvcGVyIHRlcm1pbmF0aW9uCisgICAgICAgICAgICBhc3NlcnQgImNsb3NlZCIgbm90IGluIHMK
KworICAgIGRlZiB0ZXN0X2xvZ2dpbmdfYW5kX2Nyb3Nzc2NvcGVfZml4dHVyZXMoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgbG9nZ2luZworICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZShmdW5jdGlvbik6Cisg
ICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzEiKQorCisgICAgICAgICAgICBkZWYg
dGVzdF9sb2dnaW5nKCk6CisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzIiKQor
ICAgICAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1
bGUoZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8zIikKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIGZvciBvcHRhcmdz
IGluICgoJy0tY2FwdHVyZT1zeXMnLCksICgnLS1jYXB0dXJlPWZkJywpKToKKyAgICAgICAgICAg
IHByaW50KG9wdGFyZ3MpCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9z
dWJwcm9jZXNzKHAsICpvcHRhcmdzKQorICAgICAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAgICAgIipXQVJOKmhlbGxvMyIsICAjIGVycm9ycyBjb21lIGZpcnN0CisgICAgICAgICAgICAg
ICAgIipXQVJOKmhlbGxvMSIsCisgICAgICAgICAgICAgICAgIipXQVJOKmhlbGxvMiIsCisgICAg
ICAgICAgICBdKQorICAgICAgICAgICAgIyB2ZXJpZnkgcHJvcGVyIHRlcm1pbmF0aW9uCisgICAg
ICAgICAgICBhc3NlcnQgImNsb3NlZCIgbm90IGluIHMKKworICAgIGRlZiB0ZXN0X2NvbmZ0ZXN0
bG9nZ2luZ19pc19zaG93bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgICAg
ICBsb2dnaW5nLmJhc2ljQ29uZmlnKCkKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4oImhl
bGxvNDM1IikKKyAgICAgICAgIiIiKQorICAgICAgICAjIG1ha2Ugc3VyZSB0aGF0IGxvZ2dpbmcg
aXMgc3RpbGwgY2FwdHVyZWQgaW4gdGVzdHMKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3Rfc3VicHJvY2VzcygiLXMiLCAiLXAiLCAibm86Y2FwdHVyZWxvZyIpCisgICAgICAgIGFz
c2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgICAgICByZXN1bHQu
c3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIldBUk5JTkcqaGVsbG80MzUqIiwK
KyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0ICdvcGVyYXRpb24gb24gY2xvc2VkIGZpbGUnIG5v
dCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCisKKyAgICBkZWYgdGVzdF9jb25mdGVzdGxvZ2dpbmdf
YW5kX3Rlc3RfbG9nZ2luZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgICAg
ICBsb2dnaW5nLmJhc2ljQ29uZmlnKCkKKyAgICAgICAgIiIiKQorICAgICAgICAjIG1ha2Ugc3Vy
ZSB0aGF0IGxvZ2dpbmcgaXMgc3RpbGwgY2FwdHVyZWQgaW4gdGVzdHMKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAg
ICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4o
ImhlbGxvNDMzIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MocCwgIi1wIiwgIm5vOmNh
cHR1cmVsb2ciKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiV0FSTklORypoZWxsbzQzMyoi
LAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgJ3NvbWV0aGluZycgbm90IGluIHJlc3VsdC5z
dGRlcnIuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICdvcGVyYXRpb24gb24gY2xvc2VkIGZpbGUnIG5v
dCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCisKKworY2xhc3MgVGVzdENhcHR1cmVGaXh0dXJlKG9i
amVjdCk6CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvcHQiLCBbW10sIFsiLXMiXV0p
CisgICAgZGVmIHRlc3Rfc3RkX2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRpciwgb3B0KToKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgZGVm
IHRlc3RfaGVsbG8oY2Fwc3lzKToKKyAgICAgICAgICAgICAgICBwcmludCAoNDIpCisgICAgICAg
ICAgICAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgICAgICAgICAgICAg
YXNzZXJ0IG91dC5zdGFydHN3aXRoKCI0MiIpCisgICAgICAgICIiIiwgKm9wdCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9jYXBzeXNjYXBm
ZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X29uZShjYXBzeXMsIGNhcGZkKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICAgICBkZWYgdGVzdF90d28oY2FwZmQsIGNhcHN5cyk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKkVSUk9SKnNldHVwKnRlc3Rfb25lKiIsCisgICAgICAgICAgICAiRSpjYXBmZCpjYXBzeXMq
c2FtZSp0aW1lKiIsCisgICAgICAgICAgICAiKkVSUk9SKnNldHVwKnRlc3RfdHdvKiIsCisgICAg
ICAgICAgICAiRSpjYXBzeXMqY2FwZmQqc2FtZSp0aW1lKiIsCisgICAgICAgICAgICAiKjIgZXJy
b3IqIl0pCisKKyAgICBkZWYgdGVzdF9jYXB0dXJpbmdfZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICAiIiJUZXN0IHRoYXQgYXNraW5nIGZvciAiY2FwZmQiIGFuZCAiY2Fw
c3lzIiB1c2luZyByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZQorICAgICAgICBpbiB0aGUgc2FtZSB0
ZXN0IGlzIGFuIGVycm9yLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKGNhcHN5cywgcmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoImNhcGZkIikKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3R3byhjYXBmZCwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRm
aXh0dXJldmFsdWUoImNhcHN5cyIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIip0ZXN0X29uZSoiLAorICAgICAgICAgICAgIipjYXBzeXMqY2FwZmQqc2Ft
ZSp0aW1lKiIsCisgICAgICAgICAgICAiKnRlc3RfdHdvKiIsCisgICAgICAgICAgICAiKmNhcGZk
KmNhcHN5cypzYW1lKnRpbWUqIiwKKyAgICAgICAgICAgICIqMiBmYWlsZWQgaW4qIiwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X2NhcHN5c2NhcGZkYmluYXJ5KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rf
b25lKGNhcHN5cywgY2FwZmRiaW5hcnkpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipFUlJPUipzZXR1cCp0ZXN0
X29uZSoiLAorICAgICAgICAgICAgIkUqY2FwZmRiaW5hcnkqY2Fwc3lzKnNhbWUqdGltZSoiLAor
ICAgICAgICAgICAgIioxIGVycm9yKiJdKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJtZXRob2QiLCBbInN5cyIsICJmZCJdKQorICAgIGRlZiB0ZXN0X2NhcHR1cmVfaXNfcmVwcmVz
ZW50ZWRfb25fZmFpbHVyZV9pc3N1ZTEyOChzZWxmLCB0ZXN0ZGlyLCBtZXRob2QpOgorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8o
Y2FwJXMpOgorICAgICAgICAgICAgICAgIHByaW50ICgieHh4NDJ4eHgiKQorICAgICAgICAgICAg
ICAgIGFzc2VydCAwCisgICAgICAgICIiIiAlIG1ldGhvZCkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICJ4eHg0Mnh4eCIsCisgICAgICAgIF0pCisKKyAgICBAbmVlZHNvc2R1cAor
ICAgIGRlZiB0ZXN0X3N0ZGZkX2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKGNhcGZkKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgICAg
ICBvcy53cml0ZSgxLCAiNDIiLmVuY29kZSgnYXNjaWknKSkKKyAgICAgICAgICAgICAgICBvdXQs
IGVyciA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQuc3Rh
cnRzd2l0aCgiNDIiKQorICAgICAgICAgICAgICAgIGNhcGZkLmNsb3NlKCkKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIEBuZWVkc29z
ZHVwCisgICAgZGVmIHRlc3RfY2FwZmRiaW5hcnkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKGNhcGZkYmluYXJ5KToKKyAgICAgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAg
ICAgICAgICAjIHNvbWUgbGlrZWx5IHVuLWRlY29kYWJsZSBieXRlcworICAgICAgICAgICAgICAg
IG9zLndyaXRlKDEsIGInXFx4ZmVcXHg5OFxceDIwJykKKyAgICAgICAgICAgICAgICBvdXQsIGVy
ciA9IGNhcGZkYmluYXJ5LnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQg
PT0gYidcXHhmZVxceDk4XFx4MjAnCisgICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSBiJycK
KyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
ICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIHN5cy52ZXJzaW9uX2luZm8gPCAoMywp
LAorICAgICAgICByZWFzb249J29ubHkgaGF2ZSBjYXBzeXNiaW5hcnkgaW4gcHl0aG9uIDMnLAor
ICAgICkKKyAgICBkZWYgdGVzdF9jYXBzeXNiaW5hcnkoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKGNhcHN5c2JpbmFyeSk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgICAgICMgc29tZSBsaWtlbHkgdW4tZGVjb2RhYmxlIGJ5dGVzCisgICAgICAgICAg
ICAgICAgc3lzLnN0ZG91dC5idWZmZXIud3JpdGUoYidcXHhmZVxceDk4XFx4MjAnKQorICAgICAg
ICAgICAgICAgIG91dCwgZXJyID0gY2Fwc3lzYmluYXJ5LnJlYWRvdXRlcnIoKQorICAgICAgICAg
ICAgICAgIGFzc2VydCBvdXQgPT0gYidcXHhmZVxceDk4XFx4MjAnCisgICAgICAgICAgICAgICAg
YXNzZXJ0IGVyciA9PSBiJycKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MSkKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIHN5cy52
ZXJzaW9uX2luZm8gPj0gKDMsKSwKKyAgICAgICAgcmVhc29uPSdvbmx5IGhhdmUgY2Fwc3lzYmlu
YXJ5IGluIHB5dGhvbiAzJywKKyAgICApCisgICAgZGVmIHRlc3RfY2Fwc3lzYmluYXJ5X2ZvcmJp
ZGRlbl9pbl9weXRob24yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBzeXNiaW5hcnkpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAiKnRlc3RfaGVsbG8qIiwKKyAgICAgICAgICAgICIqY2Fwc3lzYmluYXJ5IGlzIG9ubHkg
c3VwcG9ydGVkIG9uIHB5dGhvbiAzKiIsCisgICAgICAgICAgICAiKjEgZXJyb3IgaW4qIiwKKyAg
ICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxfc2V0dXBfZmFpbHVyZShzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2hlbGxvKGNhcHN5cywgbWlzc2luZ2FyZyk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfcGFy
dGlhbF9zZXR1cF9mYWlsdXJlKiIsCisgICAgICAgICAgICAiKjEgZXJyb3IqIiwKKyAgICAgICAg
XSkKKworICAgIEBuZWVkc29zZHVwCisgICAgZGVmIHRlc3Rfa2V5Ym9hcmRpbnRlcnJ1cHRfZGlz
YWJsZXNfY2FwdHVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oY2FwZmQpOgorICAgICAgICAg
ICAgICAgIGltcG9ydCBvcworICAgICAgICAgICAgICAgIG9zLndyaXRlKDEsIHN0cig0MikuZW5j
b2RlKCdhc2NpaScpKQorICAgICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0KCkK
KyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9j
ZXNzKHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKktleWJvYXJkSW50ZXJydXB0KiIKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMgorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlMTQKKyAgICBkZWYgdGVzdF9jYXB0
dXJlX2FuZF9sb2dnaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2xvZyhjYXBzeXMpOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ3gnKQorICAg
ICAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9j
ZXNzKHApCisgICAgICAgIGFzc2VydCAnY2xvc2VkJyBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIo
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmaXh0dXJlJywgWydjYXBzeXMnLCAn
Y2FwZmQnXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ25vX2NhcHR1cmUnLCBbVHJ1
ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X2Rpc2FibGVkX2NhcHR1cmVfZml4dHVyZShzZWxmLCB0
ZXN0ZGlyLCBmaXh0dXJlLCBub19jYXB0dXJlKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZGlzYWJsZWQoe2ZpeHR1cmV9KToKKyAgICAgICAg
ICAgICAgICBwcmludCgnY2FwdHVyZWQgYmVmb3JlJykKKyAgICAgICAgICAgICAgICB3aXRoIHtm
aXh0dXJlfS5kaXNhYmxlZCgpOgorICAgICAgICAgICAgICAgICAgICBwcmludCgnd2hpbGUgY2Fw
dHVyZSBpcyBkaXNhYmxlZCcpCisgICAgICAgICAgICAgICAgcHJpbnQoJ2NhcHR1cmVkIGFmdGVy
JykKKyAgICAgICAgICAgICAgICBhc3NlcnQge2ZpeHR1cmV9LnJlYWRvdXRlcnIoKSA9PSAoJ2Nh
cHR1cmVkIGJlZm9yZVxcbmNhcHR1cmVkIGFmdGVyXFxuJywgJycpCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X25vcm1hbCgpOgorICAgICAgICAgICAgICAgIHByaW50KCd0ZXN0X25vcm1hbCBleGVj
dXRlZCcpCisgICAgICAgICIiIi5mb3JtYXQoZml4dHVyZT1maXh0dXJlKSkKKyAgICAgICAgYXJn
cyA9ICgnLXMnLCkgaWYgbm9fY2FwdHVyZSBlbHNlICgpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKmFyZ3MpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICp3aGlsZSBjYXB0dXJlIGlzIGRpc2FibGVkKgor
ICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCAnY2FwdHVyZWQgYmVmb3JlJyBub3QgaW4gcmVz
dWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgJ2NhcHR1cmVkIGFmdGVyJyBub3QgaW4g
cmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBpZiBub19jYXB0dXJlOgorICAgICAgICAgICAg
YXNzZXJ0ICd0ZXN0X25vcm1hbCBleGVjdXRlZCcgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0ICd0ZXN0X25vcm1hbCBleGVjdXRlZCcgbm90
IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
Zml4dHVyZScsIFsnY2Fwc3lzJywgJ2NhcGZkJ10pCisgICAgZGVmIHRlc3RfZml4dHVyZV91c2Vf
Ynlfb3RoZXJfZml4dHVyZXMoc2VsZiwgdGVzdGRpciwgZml4dHVyZSk6CisgICAgICAgICIiIgor
ICAgICAgICBFbnN1cmUgdGhhdCBjYXBzeXMgYW5kIGNhcGZkIGNhbiBiZSB1c2VkIGJ5IG90aGVy
IGZpeHR1cmVzIGR1cmluZyBzZXR1cCBhbmQgdGVhcmRvd24uCisgICAgICAgICIiIgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAg
ZGVmIGNhcHR1cmVkX3ByaW50KHtmaXh0dXJlfSk6CisgICAgICAgICAgICAgICAgcHJpbnQoJ3N0
ZG91dCBjb250ZW50cyBiZWdpbicpCisgICAgICAgICAgICAgICAgcHJpbnQoJ3N0ZGVyciBjb250
ZW50cyBiZWdpbicsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICBvdXQsIGVyciA9
IHtmaXh0dXJlfS5yZWFkb3V0ZXJyKCkKKworICAgICAgICAgICAgICAgIHlpZWxkIG91dCwgZXJy
CisKKyAgICAgICAgICAgICAgICBwcmludCgnc3Rkb3V0IGNvbnRlbnRzIGVuZCcpCisgICAgICAg
ICAgICAgICAgcHJpbnQoJ3N0ZGVyciBjb250ZW50cyBlbmQnLCBmaWxlPXN5cy5zdGRlcnIpCisg
ICAgICAgICAgICAgICAgb3V0LCBlcnIgPSB7Zml4dHVyZX0ucmVhZG91dGVycigpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG91dCA9PSAnc3Rkb3V0IGNvbnRlbnRzIGVuZFxcbicKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgZXJyID09ICdzdGRlcnIgY29udGVudHMgZW5kXFxuJworCisgICAgICAg
ICAgICBkZWYgdGVzdF9jYXB0dXJlZF9wcmludChjYXB0dXJlZF9wcmludCk6CisgICAgICAgICAg
ICAgICAgb3V0LCBlcnIgPSBjYXB0dXJlZF9wcmludAorICAgICAgICAgICAgICAgIGFzc2VydCBv
dXQgPT0gJ3N0ZG91dCBjb250ZW50cyBiZWdpblxcbicKKyAgICAgICAgICAgICAgICBhc3NlcnQg
ZXJyID09ICdzdGRlcnIgY29udGVudHMgYmVnaW5cXG4nCisgICAgICAgICIiIi5mb3JtYXQoZml4
dHVyZT1maXh0dXJlKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJv
Y2VzcygpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgcGFzc2VkKiIp
CisgICAgICAgIGFzc2VydCAnc3Rkb3V0IGNvbnRlbnRzIGJlZ2luJyBub3QgaW4gcmVzdWx0LnN0
ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgJ3N0ZGVyciBjb250ZW50cyBiZWdpbicgbm90IGlu
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9zZXR1cF9mYWlsdXJlX2RvZXNfbm90
X2tpbGxfY2FwdHVyaW5nKHRlc3RkaXIpOgorICAgIHN1YjEgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1
YjEiKQorICAgIHN1YjEuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNv
dXJjZSgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICAiIiIpKQorICAgIHN1YjEuam9pbigidGVz
dF9tb2QucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYzEoKTogcGFzcyIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QodGVzdGRpci50bXBkaXIsICctLXRyYWNlY29uZmlnJykKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKlZhbHVlRXJyb3IoNDIpKiIs
CisgICAgICAgICIqMSBlcnJvcioiCisgICAgXSkKKworCitkZWYgdGVzdF9mZGZ1bmNhcmdfc2tp
cHNfb25fbm9fb3NkdXAodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICBpbXBvcnQgb3MKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2R1cCcpOgorICAgICAgICAg
ICAgZGVsIG9zLmR1cAorICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBmZCk6CisgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nl
c3MoIi0tY2FwdHVyZT1ubyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgIioxIHNraXBwZWQqIgorICAgIF0pCisKKworZGVmIHRlc3RfY2FwdHVyZV9jb25mdGVz
dF9ydW50ZXN0X3NldHVwKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoKToKKyAgICAgICAgICAgIHByaW50ICgi
aGVsbG8xOSIpCisgICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVu
YygpOiBwYXNzIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorICAgIGFzc2VydCAnaGVsbG8xOScgbm90IGluIHJlc3VsdC5zdGRv
dXQuc3RyKCkKKworCitkZWYgdGVzdF9jYXB0dXJlX2JhZG91dHB1dF9pc3N1ZTQxMih0ZXN0ZGly
KToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBvcworCisgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIG9tZyA9IGJ5dGVhcnJheShbMSwxMjks
MV0pCisgICAgICAgICAgICBvcy53cml0ZSgxLCBvbWcpCisgICAgICAgICAgICBhc3NlcnQgMAor
ICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tY2FwPWZkJykK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJycnCisgICAgICAgICpkZWYgdGVzdF9m
dW5jKgorICAgICAgICAqYXNzZXJ0IDAqCisgICAgICAgICpDYXB0dXJlZCoKKyAgICAgICAgKjEg
ZmFpbGVkKgorICAgICcnJykKKworCitkZWYgdGVzdF9jYXB0dXJlX2Vhcmx5X29wdGlvbl9wYXJz
aW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBkZWYg
cHl0ZXN0X3J1bnRlc3Rfc2V0dXAoKToKKyAgICAgICAgICAgIHByaW50ICgiaGVsbG8xOSIpCisg
ICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZzIikKKyAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisgICAgYXNzZXJ0ICdoZWxsbzE5JyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisK
KworZGVmIHRlc3RfY2FwdHVyZV9iaW5hcnlfb3V0cHV0KHRlc3RkaXIpOgorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZShyIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBkZWYgdGVz
dF9hKCk6CisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgc3VicHJv
Y2VzcworICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKFtzeXMuZXhlY3V0YWJsZSwgX19maWxl
X19dKQorCisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgaW1wb3J0IG9zO29z
LndyaXRlKDEsIGInXHhjMycpCisKKyAgICAgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
KyAgICAgICAgICAgIHRlc3RfZm9vKCkKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCctLWFzc2VydD1wbGFpbicpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21l
cyhwYXNzZWQ9MikKKworCitkZWYgdGVzdF9lcnJvcl9kdXJpbmdfcmVhZG91dGVycih0ZXN0ZGly
KToKKyAgICAiIiJNYWtlIHN1cmUgd2Ugc3VzcGVuZCBjYXB0dXJpbmcgaWYgZXJyb3JzIG9jY3Vy
IGR1cmluZyByZWFkb3V0ZXJyIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHB5dGVzdF94eXo9
IiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBGRENhcHR1cmUKKyAgICAg
ICAgZGVmIGJhZF9zbmFwKHNlbGYpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdib29t
JykKKyAgICAgICAgYXNzZXJ0IEZEQ2FwdHVyZS5zbmFwCisgICAgICAgIEZEQ2FwdHVyZS5zbmFw
ID0gYmFkX3NuYXAKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3Vi
cHJvY2VzcygKKyAgICAgICAgIi1wIiwgInB5dGVzdF94eXoiLCAiLS12ZXJzaW9uIiwgc3lzcGF0
aGluc2VydD1UcnVlCisgICAgKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICIqaW4gYmFkX3NuYXAiLAorICAgICAgICAiICAgIHJhaXNlIEV4Y2VwdGlvbignYm9v
bScpIiwKKyAgICAgICAgIkV4Y2VwdGlvbjogYm9vbSIsCisgICAgXSkKKworCitjbGFzcyBUZXN0
Q2FwdHVyZUlPKG9iamVjdCk6CisgICAgZGVmIHRlc3RfdGV4dChzZWxmKToKKyAgICAgICAgZiA9
IGNhcHR1cmUuQ2FwdHVyZUlPKCkKKyAgICAgICAgZi53cml0ZSgiaGVsbG8iKQorICAgICAgICBz
ID0gZi5nZXR2YWx1ZSgpCisgICAgICAgIGFzc2VydCBzID09ICJoZWxsbyIKKyAgICAgICAgZi5j
bG9zZSgpCisKKyAgICBkZWYgdGVzdF91bmljb2RlX2FuZF9zdHJfbWl4dHVyZShzZWxmKToKKyAg
ICAgICAgZiA9IGNhcHR1cmUuQ2FwdHVyZUlPKCkKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m
byA+PSAoMywgMCk6CisgICAgICAgICAgICBmLndyaXRlKCJcdTAwZjYiKQorICAgICAgICAgICAg
cHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJmLndyaXRlKGJ5dGVzKCdoZWxsbycsICdVVEYtOCcp
KSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmLndyaXRlKHVuaWNvZGUoIlx1MDBmNiIs
ICdVVEYtOCcpKQorICAgICAgICAgICAgZi53cml0ZSgiaGVsbG8iKSAgIyBieXRlcworICAgICAg
ICAgICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShzLCB1bmljb2RlKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBp
ZigKKyAgICAgICAgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyLAorICAgICAgICByZWFzb249J3B5
dGhvbiAzIG9ubHkgYmVoYXZpb3VyJywKKyAgICApCisgICAgZGVmIHRlc3Rfd3JpdGVfYnl0ZXNf
dG9fYnVmZmVyKHNlbGYpOgorICAgICAgICAiIiJJbiBweXRob24zLCBzdGRvdXQgLyBzdGRlcnIg
YXJlIHRleHQgaW8gd3JhcHBlcnMgKGV4cG9zaW5nIGEgYnVmZmVyCisgICAgICAgIHByb3BlcnR5
IG9mIHRoZSB1bmRlcmx5aW5nIGJ5dGVzdHJlYW0pLiAgU2VlIGlzc3VlICMxNDA3CisgICAgICAg
ICIiIgorICAgICAgICBmID0gY2FwdHVyZS5DYXB0dXJlSU8oKQorICAgICAgICBmLmJ1ZmZlci53
cml0ZShiJ2Zvb1xyXG4nKQorICAgICAgICBhc3NlcnQgZi5nZXR2YWx1ZSgpID09ICdmb29cclxu
JworCisKK2RlZiB0ZXN0X2J5dGVzX2lvKCk6CisgICAgZiA9IHB5LmlvLkJ5dGVzSU8oKQorICAg
IGYud3JpdGUodG9ieXRlcygiaGVsbG8iKSkKKyAgICBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwg
ImYud3JpdGUodG90ZXh0KCdoZWxsbycpKSIpCisgICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgIGFz
c2VydCBzID09IHRvYnl0ZXMoImhlbGxvIikKKworCitkZWYgdGVzdF9kb250cmVhZGZyb21pbnB1
dCgpOgorICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBEb250UmVhZEZyb21JbnB1dAor
ICAgIGYgPSBEb250UmVhZEZyb21JbnB1dCgpCisgICAgYXNzZXJ0IG5vdCBmLmlzYXR0eSgpCisg
ICAgcHl0ZXN0LnJhaXNlcyhJT0Vycm9yLCBmLnJlYWQpCisgICAgcHl0ZXN0LnJhaXNlcyhJT0Vy
cm9yLCBmLnJlYWRsaW5lcykKKyAgICBweXRlc3QucmFpc2VzKElPRXJyb3IsIGl0ZXIsIGYpCisg
ICAgcHl0ZXN0LnJhaXNlcyhVbnN1cHBvcnRlZE9wZXJhdGlvbiwgZi5maWxlbm8pCisgICAgZi5j
bG9zZSgpICAjIGp1c3QgZm9yIGNvbXBsZXRlbmVzcworCisKK0BweXRlc3QubWFyay5za2lwaWYo
J3N5cy52ZXJzaW9uX2luZm8gPCAoMywpJywgcmVhc29uPSdweXRob24yIGhhcyBubyBidWZmZXIn
KQorZGVmIHRlc3RfZG9udHJlYWRmcm9taW5wdXRfYnVmZmVyX3B5dGhvbjMoKToKKyAgICBmcm9t
IF9weXRlc3QuY2FwdHVyZSBpbXBvcnQgRG9udFJlYWRGcm9tSW5wdXQKKyAgICBmID0gRG9udFJl
YWRGcm9tSW5wdXQoKQorICAgIGZiID0gZi5idWZmZXIKKyAgICBhc3NlcnQgbm90IGZiLmlzYXR0
eSgpCisgICAgcHl0ZXN0LnJhaXNlcyhJT0Vycm9yLCBmYi5yZWFkKQorICAgIHB5dGVzdC5yYWlz
ZXMoSU9FcnJvciwgZmIucmVhZGxpbmVzKQorICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgaXRl
ciwgZmIpCisgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmYi5maWxlbm8pCisgICAgZi5j
bG9zZSgpICAjIGp1c3QgZm9yIGNvbXBsZXRlbmVzcworCisKK0BweXRlc3QubWFyay5za2lwaWYo
J3N5cy52ZXJzaW9uX2luZm8gPj0gKDMsKScsIHJlYXNvbj0ncHl0aG9uMiBoYXMgbm8gYnVmZmVy
JykKK2RlZiB0ZXN0X2RvbnRyZWFkZnJvbWlucHV0X2J1ZmZlcl9weXRob24yKCk6CisgICAgZnJv
bSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IERvbnRSZWFkRnJvbUlucHV0CisgICAgZiA9IERvbnRS
ZWFkRnJvbUlucHV0KCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IpOgor
ICAgICAgICBmLmJ1ZmZlcgorICAgIGYuY2xvc2UoKSAgIyBqdXN0IGZvciBjb21wbGV0ZW5lc3MK
KworCitAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUKK2RlZiB0bXBmaWxlKHRlc3RkaXIpOgorICAgIGYg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIpLm9wZW4oJ3diKycpCisgICAgeWllbGQgZgorICAgIGlm
IG5vdCBmLmNsb3NlZDoKKyAgICAgICAgZi5jbG9zZSgpCisKKworQG5lZWRzb3NkdXAKK2RlZiB0
ZXN0X2R1cGZpbGUodG1wZmlsZSk6CisgICAgZmxpc3QgPSBbXQorICAgIGZvciBpIGluIHJhbmdl
KDUpOgorICAgICAgICBuZiA9IGNhcHR1cmUuc2FmZV90ZXh0X2R1cGZpbGUodG1wZmlsZSwgIndi
IikKKyAgICAgICAgYXNzZXJ0IG5mICE9IHRtcGZpbGUKKyAgICAgICAgYXNzZXJ0IG5mLmZpbGVu
bygpICE9IHRtcGZpbGUuZmlsZW5vKCkKKyAgICAgICAgYXNzZXJ0IG5mIG5vdCBpbiBmbGlzdAor
ICAgICAgICBwcmludChpLCBlbmQ9IiIsIGZpbGU9bmYpCisgICAgICAgIGZsaXN0LmFwcGVuZChu
ZikKKworICAgIGZuYW1lX29wZW4gPSBmbGlzdFswXS5uYW1lCisgICAgYXNzZXJ0IGZuYW1lX29w
ZW4gPT0gcmVwcihmbGlzdFswXS5idWZmZXIpCisKKyAgICBmb3IgaSBpbiByYW5nZSg1KToKKyAg
ICAgICAgZiA9IGZsaXN0W2ldCisgICAgICAgIGYuY2xvc2UoKQorICAgIGZuYW1lX2Nsb3NlZCA9
IGZsaXN0WzBdLm5hbWUKKyAgICBhc3NlcnQgZm5hbWVfY2xvc2VkID09IHJlcHIoZmxpc3RbMF0u
YnVmZmVyKQorICAgIGFzc2VydCBmbmFtZV9jbG9zZWQgIT0gZm5hbWVfb3BlbgorICAgIHRtcGZp
bGUuc2VlaygwKQorICAgIHMgPSB0bXBmaWxlLnJlYWQoKQorICAgIGFzc2VydCAiMDEyMzQiIGlu
IHJlcHIocykKKyAgICB0bXBmaWxlLmNsb3NlKCkKKyAgICBhc3NlcnQgZm5hbWVfY2xvc2VkID09
IHJlcHIoZmxpc3RbMF0uYnVmZmVyKQorCisKK2RlZiB0ZXN0X2R1cGZpbGVfb25fYnl0ZXNpbygp
OgorICAgIGlvID0gcHkuaW8uQnl0ZXNJTygpCisgICAgZiA9IGNhcHR1cmUuc2FmZV90ZXh0X2R1
cGZpbGUoaW8sICJ3YiIpCisgICAgZi53cml0ZSgiaGVsbG8iKQorICAgIGFzc2VydCBpby5nZXR2
YWx1ZSgpID09IGIiaGVsbG8iCisgICAgYXNzZXJ0ICdCeXRlc0lPIG9iamVjdCcgaW4gZi5uYW1l
CisKKworZGVmIHRlc3RfZHVwZmlsZV9vbl90ZXh0aW8oKToKKyAgICBpbyA9IHB5LmlvLlRleHRJ
TygpCisgICAgZiA9IGNhcHR1cmUuc2FmZV90ZXh0X2R1cGZpbGUoaW8sICJ3YiIpCisgICAgZi53
cml0ZSgiaGVsbG8iKQorICAgIGFzc2VydCBpby5nZXR2YWx1ZSgpID09ICJoZWxsbyIKKyAgICBh
c3NlcnQgbm90IGhhc2F0dHIoZiwgJ25hbWUnKQorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5h
Z2VyCitkZWYgbHNvZl9jaGVjaygpOgorICAgIHBpZCA9IG9zLmdldHBpZCgpCisgICAgdHJ5Ogor
ICAgICAgICBvdXQgPSBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLXAgJWQiICUgcGlkKQorICAg
IGV4Y2VwdCAocHkucHJvY2Vzcy5jbWRleGVjLkVycm9yLCBVbmljb2RlRGVjb2RlRXJyb3IpOgor
ICAgICAgICAjIGFib3V0IFVuaWNvZGVEZWNvZGVFcnJvciwgc2VlIG5vdGUgb24gcHl0ZXN0ZXIK
KyAgICAgICAgcHl0ZXN0LnNraXAoImNvdWxkIG5vdCBydW4gJ2xzb2YnIikKKyAgICB5aWVsZAor
ICAgIG91dDIgPSBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLXAgJWQiICUgcGlkKQorICAgIGxl
bjEgPSBsZW4oW3ggZm9yIHggaW4gb3V0LnNwbGl0KCJcbiIpIGlmICJSRUciIGluIHhdKQorICAg
IGxlbjIgPSBsZW4oW3ggZm9yIHggaW4gb3V0Mi5zcGxpdCgiXG4iKSBpZiAiUkVHIiBpbiB4XSkK
KyAgICBhc3NlcnQgbGVuMiA8IGxlbjEgKyAzLCBvdXQyCisKKworY2xhc3MgVGVzdEZEQ2FwdHVy
ZShvYmplY3QpOgorICAgIHB5dGVzdG1hcmsgPSBuZWVkc29zZHVwCisKKyAgICBkZWYgdGVzdF9z
aW1wbGUoc2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGZkID0gdG1wZmlsZS5maWxlbm8oKQorICAg
ICAgICBjYXAgPSBjYXB0dXJlLkZEQ2FwdHVyZShmZCkKKyAgICAgICAgZGF0YSA9IHRvYnl0ZXMo
ImhlbGxvIikKKyAgICAgICAgb3Mud3JpdGUoZmQsIGRhdGEpCisgICAgICAgIHMgPSBjYXAuc25h
cCgpCisgICAgICAgIGNhcC5kb25lKCkKKyAgICAgICAgYXNzZXJ0IG5vdCBzCisgICAgICAgIGNh
cCA9IGNhcHR1cmUuRkRDYXB0dXJlKGZkKQorICAgICAgICBjYXAuc3RhcnQoKQorICAgICAgICBv
cy53cml0ZShmZCwgZGF0YSkKKyAgICAgICAgcyA9IGNhcC5zbmFwKCkKKyAgICAgICAgY2FwLmRv
bmUoKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG8iCisKKyAgICBkZWYgdGVzdF9zaW1wbGVf
bWFueShzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAg
ICAgICAgc2VsZi50ZXN0X3NpbXBsZSh0bXBmaWxlKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX21h
bnlfY2hlY2tfb3Blbl9maWxlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgd2l0aCBsc29mX2No
ZWNrKCk6CisgICAgICAgICAgICB3aXRoIHRlc3RkaXIubWFrZXB5ZmlsZSgiIikub3Blbignd2Ir
JykgYXMgdG1wZmlsZToKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3Rfc2ltcGxlX21hbnkodG1w
ZmlsZSkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9mYWlsX3NlY29uZF9zdGFydChzZWxmLCB0bXBm
aWxlKToKKyAgICAgICAgZmQgPSB0bXBmaWxlLmZpbGVubygpCisgICAgICAgIGNhcCA9IGNhcHR1
cmUuRkRDYXB0dXJlKGZkKQorICAgICAgICBjYXAuZG9uZSgpCisgICAgICAgIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvciwgY2FwLnN0YXJ0KQorCisgICAgZGVmIHRlc3Rfc3RkZXJyKHNlbGYpOgor
ICAgICAgICBjYXAgPSBjYXB0dXJlLkZEQ2FwdHVyZSgyKQorICAgICAgICBjYXAuc3RhcnQoKQor
ICAgICAgICBwcmludCgiaGVsbG8iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHMgPSBjYXAu
c25hcCgpCisgICAgICAgIGNhcC5kb25lKCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gImhlbGxvXG4i
CisKKyAgICBkZWYgdGVzdF9zdGRpbihzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgY2FwID0gY2Fw
dHVyZS5GRENhcHR1cmUoMCkKKyAgICAgICAgY2FwLnN0YXJ0KCkKKyAgICAgICAgeCA9IG9zLnJl
YWQoMCwgMTAwKS5zdHJpcCgpCisgICAgICAgIGNhcC5kb25lKCkKKyAgICAgICAgYXNzZXJ0IHgg
PT0gdG9ieXRlcygnJykKKworICAgIGRlZiB0ZXN0X3dyaXRlb3JnKHNlbGYsIHRtcGZpbGUpOgor
ICAgICAgICBkYXRhMSwgZGF0YTIgPSB0b2J5dGVzKCJmb28iKSwgdG9ieXRlcygiYmFyIikKKyAg
ICAgICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUodG1wZmlsZS5maWxlbm8oKSkKKyAgICAgICAg
Y2FwLnN0YXJ0KCkKKyAgICAgICAgdG1wZmlsZS53cml0ZShkYXRhMSkKKyAgICAgICAgdG1wZmls
ZS5mbHVzaCgpCisgICAgICAgIGNhcC53cml0ZW9yZyhkYXRhMikKKyAgICAgICAgc2NhcCA9IGNh
cC5zbmFwKCkKKyAgICAgICAgY2FwLmRvbmUoKQorICAgICAgICBhc3NlcnQgc2NhcCA9PSB0b3Rl
eHQoZGF0YTEpCisgICAgICAgIHdpdGggb3Blbih0bXBmaWxlLm5hbWUsICdyYicpIGFzIHN0bXBf
ZmlsZToKKyAgICAgICAgICAgIHN0bXAgPSBzdG1wX2ZpbGUucmVhZCgpCisgICAgICAgICAgICBh
c3NlcnQgc3RtcCA9PSBkYXRhMgorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3Jlc3VtZV9zdXNwZW5k
KHNlbGYsIHRtcGZpbGUpOgorICAgICAgICB3aXRoIHNhdmVkX2ZkKDEpOgorICAgICAgICAgICAg
Y2FwID0gY2FwdHVyZS5GRENhcHR1cmUoMSkKKyAgICAgICAgICAgIGNhcC5zdGFydCgpCisgICAg
ICAgICAgICBkYXRhID0gdG9ieXRlcygiaGVsbG8iKQorICAgICAgICAgICAgb3Mud3JpdGUoMSwg
ZGF0YSkKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIndoYXRldmVyIikKKyAgICAgICAg
ICAgIHMgPSBjYXAuc25hcCgpCisgICAgICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG93aGF0ZXZl
ciIKKyAgICAgICAgICAgIGNhcC5zdXNwZW5kKCkKKyAgICAgICAgICAgIG9zLndyaXRlKDEsIHRv
Ynl0ZXMoIndvcmxkIikpCisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJxbHdrZWoiKQor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBjYXAuc25hcCgpCisgICAgICAgICAgICBjYXAucmVzdW1l
KCkKKyAgICAgICAgICAgIG9zLndyaXRlKDEsIHRvYnl0ZXMoImJ1dCBub3ciKSkKKyAgICAgICAg
ICAgIHN5cy5zdGRvdXQud3JpdGUoIiB5ZXNcbiIpCisgICAgICAgICAgICBzID0gY2FwLnNuYXAo
KQorICAgICAgICAgICAgYXNzZXJ0IHMgPT0gImJ1dCBub3cgeWVzXG4iCisgICAgICAgICAgICBj
YXAuc3VzcGVuZCgpCisgICAgICAgICAgICBjYXAuZG9uZSgpCisgICAgICAgICAgICBweXRlc3Qu
cmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBjYXAuc3VzcGVuZCkKKworCitAY29udGV4dGxpYi5jb250
ZXh0bWFuYWdlcgorZGVmIHNhdmVkX2ZkKGZkKToKKyAgICBuZXdfZmQgPSBvcy5kdXAoZmQpCisg
ICAgdHJ5OgorICAgICAgICB5aWVsZAorICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmR1cDIobmV3
X2ZkLCBmZCkKKyAgICAgICAgb3MuY2xvc2UobmV3X2ZkKQorCisKK2NsYXNzIFRlc3RTdGRDYXB0
dXJlKG9iamVjdCk6CisgICAgY2FwdHVyZWNsYXNzID0gc3RhdGljbWV0aG9kKFN0ZENhcHR1cmUp
CisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBnZXRjYXB0dXJlKHNl
bGYsICoqa3cpOgorICAgICAgICBjYXAgPSBzZWxmLl9fY2xhc3NfXy5jYXB0dXJlY2xhc3MoKipr
dykKKyAgICAgICAgY2FwLnN0YXJ0X2NhcHR1cmluZygpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHlpZWxkIGNhcAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgY2FwLnN0b3BfY2Fw
dHVyaW5nKCkKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19kb25lX3NpbXBsZShzZWxmKToKKyAg
ICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKCJoZWxsbyIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIp
CisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0
IG91dCA9PSAiaGVsbG8iCisgICAgICAgIGFzc2VydCBlcnIgPT0gIndvcmxkIgorCisgICAgZGVm
IHRlc3RfY2FwdHVyaW5nX3Jlc2V0X3NpbXBsZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdl
dGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAgICAgICBwcmludCgiaGVsbG8gd29ybGQiKQorICAg
ICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiaGVsbG8gZXJyb3JcbiIpCisgICAgICAgICAgICBv
dXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAiaGVsbG8g
d29ybGRcbiIKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAiaGVsbG8gZXJyb3JcbiIKKworICAgIGRl
ZiB0ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuZ2V0
Y2FwdHVyZSgpIGFzIGNhcDoKKyAgICAgICAgICAgIHByaW50KCJoZWxsbyB3b3JsZCIpCisgICAg
ICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJoZWxsbyBlcnJvclxuIikKKyAgICAgICAgICAgIG91
dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgYXNzZXJ0IG91dCA9PSAiaGVs
bG8gd29ybGRcbiIKKyAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gImhlbGxvIGVycm9yXG4iCisg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJlcnJvcjIiKQorICAgICAgICAgICAgb3V0LCBl
cnIgPSBjYXAucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBlcnIgPT0gImVycm9yMiIKKwor
ICAgIGRlZiB0ZXN0X2NhcHR1cmVfcmVzdWx0c19hY2Nlc3NpYmxlX2J5X2F0dHJpYnV0ZShzZWxm
KToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAgICAgICBz
eXMuc3Rkb3V0LndyaXRlKCJoZWxsbyIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3
b3JsZCIpCisgICAgICAgICAgICBjYXB0dXJlX3Jlc3VsdCA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAg
ICAgICAgYXNzZXJ0IGNhcHR1cmVfcmVzdWx0Lm91dCA9PSAiaGVsbG8iCisgICAgICAgIGFzc2Vy
dCBjYXB0dXJlX3Jlc3VsdC5lcnIgPT0gIndvcmxkIgorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5n
X3JlYWRvdXRlcnJfdW5pY29kZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUo
KSBhcyBjYXA6CisgICAgICAgICAgICBwcmludCgiaHhceGM0XHg4NVx4YzRceDg3IikKKyAgICAg
ICAgICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0ID09
IHB5LmJ1aWx0aW4uX3RvdGV4dCgiaHhceGM0XHg4NVx4YzRceDg3XG4iLCAidXRmOCIpCisKKyAg
ICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCdzeXMudmVyc2lvbl9pbmZvID49ICgzLCknLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSd0ZXh0IG91dHB1dCBkaWZmZXJlbnQgZm9yIGJ5dGVz
IG9uIHB5dGhvbjMnKQorICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyX2RlY29kZV9l
cnJvcl9oYW5kbGluZyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBj
YXA6CisgICAgICAgICAgICAjIHRyaWdnZXJlZCBhIGludGVybmFsIGVycm9yIGluIHB5dGVzdAor
ICAgICAgICAgICAgcHJpbnQoJ1x4YTYnKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVh
ZG91dGVycigpCisgICAgICAgIGFzc2VydCBvdXQgPT0gcHkuYnVpbHRpbi5fdG90ZXh0KCdcdWZm
ZmRcbicsICd1bmljb2RlLWVzY2FwZScpCisKKyAgICBkZWYgdGVzdF9yZXNldF90d2ljZV9lcnJv
cihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAg
ICAgICBwcmludCgiaGVsbG8iKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVhZG91dGVy
cigpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgY2FwLnN0b3BfY2FwdHVyaW5n
KQorICAgICAgICBhc3NlcnQgb3V0ID09ICJoZWxsb1xuIgorICAgICAgICBhc3NlcnQgbm90IGVy
cgorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX21vZGlmeV9zeXNvdXRlcnJfaW5fYmV0d2Vlbihz
ZWxmKToKKyAgICAgICAgb2xkb3V0ID0gc3lzLnN0ZG91dAorICAgICAgICBvbGRlcnIgPSBzeXMu
c3RkZXJyCisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkgYXMgY2FwOgorICAgICAgICAg
ICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZSgid29ybGQiKQorICAgICAgICAgICAgc3lzLnN0ZG91dCA9IGNhcHR1cmUuQ2FwdHVyZUlPKCkK
KyAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBjYXB0dXJlLkNhcHR1cmVJTygpCisgICAgICAgICAg
ICBwcmludCgibm90IHNlZW4iKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgibm90IHNl
ZW5cbiIpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAg
YXNzZXJ0IG91dCA9PSAiaGVsbG8iCisgICAgICAgIGFzc2VydCBlcnIgPT0gIndvcmxkIgorICAg
ICAgICBhc3NlcnQgc3lzLnN0ZG91dCA9PSBvbGRvdXQKKyAgICAgICAgYXNzZXJ0IHN5cy5zdGRl
cnIgPT0gb2xkZXJyCisKKyAgICBkZWYgdGVzdF9jYXB0dXJpbmdfZXJyb3JfcmVjdXJzaXZlKHNl
bGYpOgorICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVyZSgpIGFzIGNhcDE6CisgICAgICAgICAg
ICBwcmludCgiY2FwMSIpCisgICAgICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVyZSgpIGFzIGNh
cDI6CisgICAgICAgICAgICAgICAgcHJpbnQoImNhcDIiKQorICAgICAgICAgICAgICAgIG91dDIs
IGVycjIgPSBjYXAyLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgICAgIG91dDEsIGVycjEgPSBj
YXAxLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0MSA9PSAiY2FwMVxuIgorICAgICAg
ICBhc3NlcnQgb3V0MiA9PSAiY2FwMlxuIgorCisgICAgZGVmIHRlc3RfanVzdF9vdXRfY2FwdHVy
ZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUob3V0PVRydWUsIGVycj1GYWxz
ZSkgYXMgY2FwOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAgICAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgid29ybGQiKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBj
YXAucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIgorICAgICAgICBh
c3NlcnQgbm90IGVycgorCisgICAgZGVmIHRlc3RfanVzdF9lcnJfY2FwdHVyZShzZWxmKToKKyAg
ICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUob3V0PUZhbHNlLCBlcnI9VHJ1ZSkgYXMgY2FwOgor
ICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgid29ybGQiKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVhZG91dGVy
cigpCisgICAgICAgIGFzc2VydCBlcnIgPT0gIndvcmxkIgorICAgICAgICBhc3NlcnQgbm90IG91
dAorCisgICAgZGVmIHRlc3Rfc3RkaW5fcmVzdG9yZWQoc2VsZik6CisgICAgICAgIG9sZCA9IHN5
cy5zdGRpbgorICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVyZShpbl89VHJ1ZSk6CisgICAgICAg
ICAgICBuZXdzdGRpbiA9IHN5cy5zdGRpbgorICAgICAgICBhc3NlcnQgbmV3c3RkaW4gIT0gc3lz
LnN0ZGluCisgICAgICAgIGFzc2VydCBzeXMuc3RkaW4gaXMgb2xkCisKKyAgICBkZWYgdGVzdF9z
dGRpbl9udWxsZWRfYnlfZGVmYXVsdChzZWxmKToKKyAgICAgICAgcHJpbnQoIlhYWCB0aGlzIHRl
c3QgbWF5IHdlbGwgaGFuZyBpbnN0ZWFkIG9mIGNyYXNoaW5nIikKKyAgICAgICAgcHJpbnQoIlhY
WCB3aGljaCBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gdGhlIHVuZGVybHlpbmcgY2FwdHVyaW5nIikK
KyAgICAgICAgcHJpbnQoIlhYWCBtZWNoYW5pc21zIikKKyAgICAgICAgd2l0aCBzZWxmLmdldGNh
cHR1cmUoKToKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgInN5cy5zdGRpbi5y
ZWFkKCkiKQorCisKK2NsYXNzIFRlc3RTdGRDYXB0dXJlRkQoVGVzdFN0ZENhcHR1cmUpOgorICAg
IHB5dGVzdG1hcmsgPSBuZWVkc29zZHVwCisgICAgY2FwdHVyZWNsYXNzID0gc3RhdGljbWV0aG9k
KFN0ZENhcHR1cmVGRCkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9vbmx5X2ZkKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQg
b3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAgICAgICAgICAgICBvcy53cml0ZSgx
LCAiaGVsbG9cXG4iLmVuY29kZSgiYXNjaWkiKSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nl
c3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAg
ICAqdGVzdF94KgorICAgICAgICAgICAgKmFzc2VydCAwKgorICAgICAgICAgICAgKkNhcHR1cmVk
IHN0ZG91dCoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfaW50ZXJtaW5nbGluZyhzZWxm
KToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAgICAgICBv
c3dyaXRlYnl0ZXMoMSwgIjEiKQorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShzdHIoMikp
CisgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICAgICAgICAgIG9zd3JpdGVieXRl
cygxLCAiMyIpCisgICAgICAgICAgICBvc3dyaXRlYnl0ZXMoMiwgImEiKQorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgiYiIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKKyAg
ICAgICAgICAgIG9zd3JpdGVieXRlcygyLCAiYyIpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNh
cC5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAiMTIzIgorICAgICAgICBhc3Nl
cnQgZXJyID09ICJhYmMiCisKKyAgICBkZWYgdGVzdF9tYW55KHNlbGYsIGNhcGZkKToKKyAgICAg
ICAgd2l0aCBsc29mX2NoZWNrKCk6CisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6Cisg
ICAgICAgICAgICAgICAgY2FwID0gU3RkQ2FwdHVyZUZEKCkKKyAgICAgICAgICAgICAgICBjYXAu
c3RvcF9jYXB0dXJpbmcoKQorCisKK2NsYXNzIFRlc3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQob2Jq
ZWN0KToKKyAgICBweXRlc3RtYXJrID0gbmVlZHNvc2R1cAorCisgICAgZGVmIHRlc3Rfc3RkY2Fw
dHVyZV9mZF9pbnZhbGlkX2ZkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGZyb20gX3B5dGVz
dCBpbXBvcnQgY2FwdHVyZQorICAgICAgICAgICAgZGVmIFN0ZENhcHR1cmVGRChvdXQ9VHJ1ZSwg
ZXJyPVRydWUsIGluXz1UcnVlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FwdHVyZS5NdWx0
aUNhcHR1cmUob3V0LCBlcnIsIGluXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDYXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQorICAgICAgICAgICAgZGVm
IHRlc3Rfc3Rkb3V0KCk6CisgICAgICAgICAgICAgICAgb3MuY2xvc2UoMSkKKyAgICAgICAgICAg
ICAgICBjYXAgPSBTdGRDYXB0dXJlRkQob3V0PVRydWUsIGVycj1GYWxzZSwgaW5fPUZhbHNlKQor
ICAgICAgICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCisgICAgICAgICAgICBkZWYgdGVz
dF9zdGRlcnIoKToKKyAgICAgICAgICAgICAgICBvcy5jbG9zZSgyKQorICAgICAgICAgICAgICAg
IGNhcCA9IFN0ZENhcHR1cmVGRChvdXQ9RmFsc2UsIGVycj1UcnVlLCBpbl89RmFsc2UpCisgICAg
ICAgICAgICAgICAgY2FwLnN0b3BfY2FwdHVyaW5nKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3N0
ZGluKCk6CisgICAgICAgICAgICAgICAgb3MuY2xvc2UoMCkKKyAgICAgICAgICAgICAgICBjYXAg
PSBTdGRDYXB0dXJlRkQob3V0PUZhbHNlLCBlcnI9RmFsc2UsIGluXz1UcnVlKQorICAgICAgICAg
ICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLS1jYXB0dXJlPWZkIikKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICBhc3NlcnQgcmVzdWx0LnBhcnNlb3V0Y29t
ZXMoKVsncGFzc2VkJ10gPT0gMworCisKK2RlZiB0ZXN0X2NhcHR1cmVfbm90X3N0YXJ0ZWRfYnV0
X3Jlc2V0KCk6CisgICAgY2Fwc3lzID0gU3RkQ2FwdHVyZSgpCisgICAgY2Fwc3lzLnN0b3BfY2Fw
dHVyaW5nKCkKKworCitkZWYgdGVzdF91c2luZ19jYXBzeXNfZml4dHVyZV93b3Jrc193aXRoX3N5
c19zdGRvdXRfZW5jb2RpbmcoY2Fwc3lzKToKKyAgICB0ZXN0X3RleHQgPSAndGVzdCB0ZXh0Jwor
CisgICAgcHJpbnQodGVzdF90ZXh0LmVuY29kZShzeXMuc3Rkb3V0LmVuY29kaW5nLCAncmVwbGFj
ZScpKQorICAgIChvdXQsIGVycikgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgYXNzZXJ0IG91
dAorICAgIGFzc2VydCBlcnIgPT0gJycKKworCitkZWYgdGVzdF9jYXBzeXNfcmVzdWx0c19hY2Nl
c3NpYmxlX2J5X2F0dHJpYnV0ZShjYXBzeXMpOgorICAgIHN5cy5zdGRvdXQud3JpdGUoInNwYW0i
KQorICAgIHN5cy5zdGRlcnIud3JpdGUoImVnZ3MiKQorICAgIGNhcHR1cmVfcmVzdWx0ID0gY2Fw
c3lzLnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlX3Jlc3VsdC5vdXQgPT0gInNwYW0i
CisgICAgYXNzZXJ0IGNhcHR1cmVfcmVzdWx0LmVyciA9PSAiZWdncyIKKworCitAbmVlZHNvc2R1
cAorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd1c2UnLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRl
c3RfZmRjYXB0dXJlX3RtcGZpbGVfcmVtYWluc190aGVfc2FtZSh0bXBmaWxlLCB1c2UpOgorICAg
IGlmIG5vdCB1c2U6CisgICAgICAgIHRtcGZpbGUgPSBUcnVlCisgICAgY2FwID0gU3RkQ2FwdHVy
ZUZEKG91dD1GYWxzZSwgZXJyPXRtcGZpbGUpCisgICAgdHJ5OgorICAgICAgICBjYXAuc3RhcnRf
Y2FwdHVyaW5nKCkKKyAgICAgICAgY2FwZmlsZSA9IGNhcC5lcnIudG1wZmlsZQorICAgICAgICBj
YXAucmVhZG91dGVycigpCisgICAgZmluYWxseToKKyAgICAgICAgY2FwLnN0b3BfY2FwdHVyaW5n
KCkKKyAgICBjYXBmaWxlMiA9IGNhcC5lcnIudG1wZmlsZQorICAgIGFzc2VydCBjYXBmaWxlMiA9
PSBjYXBmaWxlCisKKworQG5lZWRzb3NkdXAKK2RlZiB0ZXN0X2Nsb3NlX2FuZF9jYXB0dXJlX2Fn
YWluKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IG9zCisgICAgICAgIGRlZiB0ZXN0X2Nsb3NlKCk6CisgICAgICAgICAgICBvcy5jbG9zZSgxKQor
ICAgICAgICBkZWYgdGVzdF9jYXB0dXJlX2FnYWluKCk6CisgICAgICAgICAgICBvcy53cml0ZSgx
LCBiImhlbGxvXFxuIikKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygiIiIKKyAgICAgICAgKnRlc3RfY2FwdHVyZV9hZ2FpbioKKyAgICAgICAgKmFz
c2VydCAwKgorICAgICAgICAqc3Rkb3V0KgorICAgICAgICAqaGVsbG8qCisgICAgIiIiKQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbWV0aG9kJywgWydTeXNDYXB0dXJlJywgJ0ZEQ2Fw
dHVyZSddKQorZGVmIHRlc3RfY2FwdHVyaW5nX2FuZF9sb2dnaW5nX2Z1bmRhbWVudGFscyh0ZXN0
ZGlyLCBtZXRob2QpOgorICAgIGlmIG1ldGhvZCA9PSAiU3RkQ2FwdHVyZUZEIiBhbmQgbm90IGhh
c2F0dHIob3MsICdkdXAnKToKKyAgICAgICAgcHl0ZXN0LnNraXAoIm5lZWQgb3MuZHVwIikKKyAg
ICAjIGhlcmUgd2UgY2hlY2sgYSBmdW5kYW1lbnRhbCBmZWF0dXJlCisgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHN5cywgb3MKKyAgICAgICAgaW1wb3J0IHB5
LCBsb2dnaW5nCisgICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgY2FwdHVyZQorICAgICAgICBj
YXAgPSBjYXB0dXJlLk11bHRpQ2FwdHVyZShvdXQ9RmFsc2UsIGluXz1GYWxzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXB0dXJlPWNhcHR1cmUuJXMpCisgICAgICAg
IGNhcC5zdGFydF9jYXB0dXJpbmcoKQorCisgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8xIikK
KyAgICAgICAgb3V0ZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBwcmludCAoInN1c3Bl
bmQsIGNhcHR1cmVkICUlcyIgJSUob3V0ZXJyLCkpCisgICAgICAgIGxvZ2dpbmcud2FybigiaGVs
bG8yIikKKworICAgICAgICBjYXAucG9wX291dGVycl90b19vcmlnKCkKKyAgICAgICAgbG9nZ2lu
Zy53YXJuKCJoZWxsbzMiKQorCisgICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAg
ICAgICAgcHJpbnQgKCJzdXNwZW5kMiwgY2FwdHVyZWQgJSVzIiAlJSAob3V0ZXJyLCkpCisgICAg
IiIiICUgKG1ldGhvZCwpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICBzdXNwZW5kLCBjYXB0dXJl
ZCpoZWxsbzEqCisgICAgICAgIHN1c3BlbmQyLCBjYXB0dXJlZCpXQVJOSU5HOnJvb3Q6aGVsbG8z
KgorICAgICIiIikKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAg
IFdBUk5JTkc6cm9vdDpoZWxsbzIKKyAgICAiIiIpCisgICAgYXNzZXJ0ICJhdGV4aXQiIG5vdCBp
biByZXN1bHQuc3RkZXJyLnN0cigpCisKKworZGVmIHRlc3RfZXJyb3JfYXR0cmlidXRlX2lzc3Vl
NTU1KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHN5cworICAgICAgICBkZWYgdGVzdF9jYXBhdHRyKCk6CisgICAgICAgICAgICBhc3NlcnQgc3lz
LnN0ZG91dC5lcnJvcnMgPT0gInN0cmljdCIKKyAgICAgICAgICAgIGFzc2VydCBzeXMuc3RkZXJy
LmVycm9ycyA9PSAic3RyaWN0IgorICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK0BweXRlc3Qu
bWFyay5za2lwaWYobm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSBhbmQgc3lzLnZl
cnNpb25faW5mb1s6Ml0gPj0gKDMsIDYpLAorICAgICAgICAgICAgICAgICAgICByZWFzb249J29u
bHkgcHkzLjYrIG9uIHdpbmRvd3MnKQorZGVmIHRlc3RfcHkzNl93aW5kb3dzY29uc29sZWlvX3dv
cmthcm91bmRfbm9uX3N0YW5kYXJkX3N0cmVhbXMoKToKKyAgICAiIiIKKyAgICBFbnN1cmUgX3B5
MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kIGZ1bmN0aW9uIHdvcmtzIHdpdGggb2JqZWN0
cyB0aGF0CisgICAgZG8gbm90IGltcGxlbWVudCB0aGUgZnVsbCBgYGlvYGAtYmFzZWQgc3RyZWFt
IHByb3RvY29sLCBmb3IgZXhhbXBsZSBleGVjbmV0IGNoYW5uZWxzICgjMjY2NikuCisgICAgIiIi
CisgICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IF9weTM2X3dpbmRvd3Njb25zb2xlaW9f
d29ya2Fyb3VuZAorCisgICAgY2xhc3MgRHVtbXlTdHJlYW06CisgICAgICAgIGRlZiB3cml0ZShz
ZWxmLCBzKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHN0cmVhbSA9IER1bW15U3RyZWFtKCkK
KyAgICBfcHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3RyZWFtKQorCisKK2RlZiB0
ZXN0X2RvbnRyZWFkZnJvbWlucHV0X2hhc19lbmNvZGluZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgZGVmIHRlc3RfY2Fw
YXR0cigpOgorICAgICAgICAgICAgIyBzaG91bGQgbm90IHJhaXNlIEF0dHJpYnV0ZUVycm9yCisg
ICAgICAgICAgICBhc3NlcnQgc3lzLnN0ZG91dC5lbmNvZGluZworICAgICAgICAgICAgYXNzZXJ0
IHN5cy5zdGRlcnIuZW5jb2RpbmcKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitkZWYgdGVz
dF9waWNrbGluZ19hbmRfdW5waWNrbGluZ19lbmNvZGVkX2ZpbGUoKToKKyAgICAjIFNlZSBodHRw
czovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weXRlc3QvcHVsbC1yZXF1ZXN0LzE5NAorICAg
ICMgcGlja2xlLmxvYWRzKCkgcmFpc2VzIGluZmluaXRlIHJlY3Vyc2lvbiBpZgorICAgICMgRW5j
b2RlZEZpbGUuX19nZXRhdHRyX18gaXMgbm90IGltcGxlbWVudGVkIHByb3Blcmx5CisgICAgZWYg
PSBjYXB0dXJlLkVuY29kZWRGaWxlKE5vbmUsIE5vbmUpCisgICAgZWZfYXNfc3RyID0gcGlja2xl
LmR1bXBzKGVmKQorICAgIHBpY2tsZS5sb2FkcyhlZl9hc19zdHIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29sbGVjdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9jb2xsZWN0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2M2VkMDQzOWMwY2U4NzA0NTU3ZTRhOTJj
NjljYzI3MDhhYzM4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfY29sbGVjdGlvbi5weQpAQCAtMCwwICsxLDg1NyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5dGVz
dAoraW1wb3J0IHB5CisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9weXRlc3QubWFpbiBp
bXBvcnQgU2Vzc2lvbiwgRVhJVF9OT1RFU1RTQ09MTEVDVEVELCBfaW5fdmVudgorCisKK2NsYXNz
IFRlc3RDb2xsZWN0b3Iob2JqZWN0KToKKyAgICBkZWYgdGVzdF9jb2xsZWN0X3ZlcnN1c19pdGVt
KHNlbGYpOgorICAgICAgICBmcm9tIHB5dGVzdCBpbXBvcnQgQ29sbGVjdG9yLCBJdGVtCisgICAg
ICAgIGFzc2VydCBub3QgaXNzdWJjbGFzcyhDb2xsZWN0b3IsIEl0ZW0pCisgICAgICAgIGFzc2Vy
dCBub3QgaXNzdWJjbGFzcyhJdGVtLCBDb2xsZWN0b3IpCisKKyAgICBkZWYgdGVzdF9jb21wYXRf
YXR0cmlidXRlcyhzZWxmLCB0ZXN0ZGlyLCByZWN3YXJuKToKKyAgICAgICAgbW9kY29sID0gdGVz
dGRpci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9wYXNzKCk6IHBhc3MK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKTogYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAg
ICAgICByZWN3YXJuLmNsZWFyKCkKKyAgICAgICAgYXNzZXJ0IG1vZGNvbC5Nb2R1bGUgPT0gcHl0
ZXN0Lk1vZHVsZQorICAgICAgICBhc3NlcnQgbW9kY29sLkNsYXNzID09IHB5dGVzdC5DbGFzcwor
ICAgICAgICBhc3NlcnQgbW9kY29sLkl0ZW0gPT0gcHl0ZXN0Lkl0ZW0KKyAgICAgICAgYXNzZXJ0
IG1vZGNvbC5GaWxlID09IHB5dGVzdC5GaWxlCisgICAgICAgIGFzc2VydCBtb2Rjb2wuRnVuY3Rp
b24gPT0gcHl0ZXN0LkZ1bmN0aW9uCisKKyAgICBkZWYgdGVzdF9jaGVja19lcXVhbGl0eShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9wYXNzKCk6IHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zh
aWwoKTogYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBmbjEgPSB0ZXN0ZGlyLmNvbGxl
Y3RfYnlfbmFtZShtb2Rjb2wsICJ0ZXN0X3Bhc3MiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShmbjEsIHB5dGVzdC5GdW5jdGlvbikKKyAgICAgICAgZm4yID0gdGVzdGRpci5jb2xsZWN0X2J5
X25hbWUobW9kY29sLCAidGVzdF9wYXNzIikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZm4y
LCBweXRlc3QuRnVuY3Rpb24pCisKKyAgICAgICAgYXNzZXJ0IGZuMSA9PSBmbjIKKyAgICAgICAg
YXNzZXJ0IGZuMSAhPSBtb2Rjb2wKKyAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9uX2luZm8g
PCAoMywgMCk6CisgICAgICAgICAgICBhc3NlcnQgY21wKGZuMSwgZm4yKSA9PSAwCisgICAgICAg
IGFzc2VydCBoYXNoKGZuMSkgPT0gaGFzaChmbjIpCisKKyAgICAgICAgZm4zID0gdGVzdGRpci5j
b2xsZWN0X2J5X25hbWUobW9kY29sLCAidGVzdF9mYWlsIikKKyAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoZm4zLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGFzc2VydCBub3QgKGZuMSA9PSBm
bjMpCisgICAgICAgIGFzc2VydCBmbjEgIT0gZm4zCisKKyAgICAgICAgZm9yIGZuIGluIGZuMSwg
Zm4yLCBmbjM6CisgICAgICAgICAgICBhc3NlcnQgZm4gIT0gMworICAgICAgICAgICAgYXNzZXJ0
IGZuICE9IG1vZGNvbAorICAgICAgICAgICAgYXNzZXJ0IGZuICE9IFsxLCAyLCAzXQorICAgICAg
ICAgICAgYXNzZXJ0IFsxLCAyLCAzXSAhPSBmbgorICAgICAgICAgICAgYXNzZXJ0IG1vZGNvbCAh
PSBmbgorCisgICAgZGVmIHRlc3RfZ2V0cGFyZW50KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBt
b2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RD
bGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBjbHMgPSB0ZXN0ZGlyLmNv
bGxlY3RfYnlfbmFtZShtb2Rjb2wsICJUZXN0Q2xhc3MiKQorICAgICAgICBmbiA9IHRlc3RkaXIu
Y29sbGVjdF9ieV9uYW1lKAorICAgICAgICAgICAgdGVzdGRpci5jb2xsZWN0X2J5X25hbWUoY2xz
LCAiKCkiKSwgInRlc3RfZm9vIikKKworICAgICAgICBwYXJlbnQgPSBmbi5nZXRwYXJlbnQocHl0
ZXN0Lk1vZHVsZSkKKyAgICAgICAgYXNzZXJ0IHBhcmVudCBpcyBtb2Rjb2wKKworICAgICAgICBw
YXJlbnQgPSBmbi5nZXRwYXJlbnQocHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgcGFy
ZW50IGlzIGZuCisKKyAgICAgICAgcGFyZW50ID0gZm4uZ2V0cGFyZW50KHB5dGVzdC5DbGFzcykK
KyAgICAgICAgYXNzZXJ0IHBhcmVudCBpcyBjbHMKKworICAgIGRlZiB0ZXN0X2dldGN1c3RvbWZp
bGVfcm91bmR0cmlwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBoZWxsbyA9IHRlc3RkaXIubWFr
ZWZpbGUoIi54eHgiLCBoZWxsbz0id29ybGQiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Y29uZnRlc3Q9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFz
cyBDdXN0b21GaWxlKHB5dGVzdC5GaWxlKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAg
ICAgIGlmIHBhdGguZXh0ID09ICIueHh4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEN1
c3RvbUZpbGUocGF0aCwgcGFyZW50PXBhcmVudCkKKyAgICAgICAgIiIiKQorICAgICAgICBub2Rl
ID0gdGVzdGRpci5nZXRwYXRobm9kZShoZWxsbykKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
bm9kZSwgcHl0ZXN0LkZpbGUpCisgICAgICAgIGFzc2VydCBub2RlLm5hbWUgPT0gImhlbGxvLnh4
eCIKKyAgICAgICAgbm9kZXMgPSBub2RlLnNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KFtub2RlLm5v
ZGVpZF0sIGdlbml0ZW1zPUZhbHNlKQorICAgICAgICBhc3NlcnQgbGVuKG5vZGVzKSA9PSAxCisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGVzWzBdLCBweXRlc3QuRmlsZSkKKworICAgIGRl
ZiB0ZXN0X2Nhbl9za2lwX2NsYXNzX3dpdGhfdGVzdF9hdHRyKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiJBc3N1cmUgdGVzdCBjbGFzcyBpcyBza2lwcGVkIHdoZW4gdXNpbmcgYF9fdGVzdF9f
PUZhbHNlYCAoU2VlICMyMDA3KS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgY2xhc3MgVGVzdEZvbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIF9fdGVz
dF9fID0gRmFsc2UKKyAgICAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAnY29sbGVjdGVkIDAgaXRlbXMnLAorICAgICAgICAgICAgJypubyB0
ZXN0cyByYW4gaW4qJywKKyAgICAgICAgXSkKKworCitjbGFzcyBUZXN0Q29sbGVjdEZTKG9iamVj
dCk6CisgICAgZGVmIHRlc3RfaWdub3JlZF9jZXJ0YWluX2RpcmVjdG9yaWVzKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0bXBkaXIgPSB0ZXN0ZGlyLnRtcGRpcgorICAgICAgICB0bXBkaXIuZW5z
dXJlKCJidWlsZCIsICd0ZXN0X25vdGZvdW5kLnB5JykKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgi
ZGlzdCIsICd0ZXN0X25vdGZvdW5kLnB5JykKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgiX2RhcmNz
IiwgJ3Rlc3Rfbm90Zm91bmQucHknKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJDVlMiLCAndGVz
dF9ub3Rmb3VuZC5weScpCisgICAgICAgIHRtcGRpci5lbnN1cmUoInthcmNofSIsICd0ZXN0X25v
dGZvdW5kLnB5JykKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgiLndoYXRldmVyIiwgJ3Rlc3Rfbm90
Zm91bmQucHknKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCIuYnpyIiwgJ3Rlc3Rfbm90Zm91bmQu
cHknKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJub3JtYWwiLCAndGVzdF9mb3VuZC5weScpCisg
ICAgICAgIGZvciB4IGluIHRtcGRpci52aXNpdCgidGVzdF8qLnB5Iik6CisgICAgICAgICAgICB4
LndyaXRlKCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKKworICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICBzID0gcmVzdWx0LnN0ZG91
dC5zdHIoKQorICAgICAgICBhc3NlcnQgInRlc3Rfbm90Zm91bmQiIG5vdCBpbiBzCisgICAgICAg
IGFzc2VydCAidGVzdF9mb3VuZCIgaW4gcworCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCdmbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYWN0aXZhdGUiLCAiYWN0
aXZhdGUuY3NoIiwgImFjdGl2YXRlLmZpc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkFjdGl2YXRlIiwgIkFjdGl2YXRlLmJhdCIsICJBY3RpdmF0ZS5wczEiKSkKKyAgICBkZWYg
dGVzdF9pZ25vcmVkX3ZpcnR1YWxlbnZzKHNlbGYsIHRlc3RkaXIsIGZuYW1lKToKKyAgICAgICAg
YmluZGlyID0gIlNjcmlwdHMiIGlmIHB5LnN0ZC5zeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2lu
IikgZWxzZSAiYmluIgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5lbnN1cmUoInZpcnR1YWwiLCBi
aW5kaXIsIGZuYW1lKQorICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIudG1wZGlyLmVuc3VyZSgi
dmlydHVhbCIsICJ0ZXN0X2ludmVudi5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRlKCJkZWYg
dGVzdF9oZWxsbygpOiBwYXNzIikKKworICAgICAgICAjIGJ5IGRlZmF1bHQsIGlnbm9yZSB0ZXN0
cyBpbnNpZGUgYSB2aXJ0dWFsZW52CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICAgICAgYXNzZXJ0ICJ0ZXN0X2ludmVudiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKyAgICAgICAgIyBhbGxvdyB0ZXN0IGNvbGxlY3Rpb24gaWYgdXNlciBpbnNpc3RzCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3QtaW4tdmlydHVhbGVudiIp
CisgICAgICAgIGFzc2VydCAidGVzdF9pbnZlbnYiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAg
ICAgICAgIyBhbGxvdyB0ZXN0IGNvbGxlY3Rpb24gaWYgdXNlciBkaXJlY3RseSBwYXNzZXMgaW4g
dGhlIGRpcmVjdG9yeQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgidmlydHVh
bCIpCisgICAgICAgIGFzc2VydCAidGVzdF9pbnZlbnYiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm5hbWUnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoImFjdGl2YXRlIiwgImFjdGl2YXRlLmNzaCIsICJhY3RpdmF0ZS5maXNo
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmF0ZSIsICJBY3RpdmF0ZS5i
YXQiLCAiQWN0aXZhdGUucHMxIikpCisgICAgZGVmIHRlc3RfaWdub3JlZF92aXJ0dWFsZW52c19u
b3JlY3Vyc2VkaXJzX3ByZWNlZGVuY2Uoc2VsZiwgdGVzdGRpciwgZm5hbWUpOgorICAgICAgICBi
aW5kaXIgPSAiU2NyaXB0cyIgaWYgcHkuc3RkLnN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4i
KSBlbHNlICJiaW4iCisgICAgICAgICMgbm9yZWN1cnNlZGlycyB0YWtlcyBwcmlvcml0eQorICAg
ICAgICB0ZXN0ZGlyLnRtcGRpci5lbnN1cmUoIi52aXJ0dWFsIiwgYmluZGlyLCBmbmFtZSkKKyAg
ICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLnRtcGRpci5lbnN1cmUoIi52aXJ0dWFsIiwgInRlc3Rf
aW52ZW52LnB5IikKKyAgICAgICAgdGVzdGZpbGUud3JpdGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBh
c3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LWluLXZp
cnR1YWxlbnYiKQorICAgICAgICBhc3NlcnQgInRlc3RfaW52ZW52IiBub3QgaW4gcmVzdWx0LnN0
ZG91dC5zdHIoKQorICAgICAgICAjIC4uLnVubGVzcyB0aGUgdmlydHVhbGVudiBpcyBleHBsaWNp
dGx5IGdpdmVuIG9uIHRoZSBDTEkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tY29sbGVjdC1pbi12aXJ0dWFsZW52IiwgIi52aXJ0dWFsIikKKyAgICAgICAgYXNzZXJ0ICJ0
ZXN0X2ludmVudiIgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdmbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYWN0aXZh
dGUiLCAiYWN0aXZhdGUuY3NoIiwgImFjdGl2YXRlLmZpc2giLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkFjdGl2YXRlIiwgIkFjdGl2YXRlLmJhdCIsICJBY3RpdmF0ZS5wczEiKSkK
KyAgICBkZWYgdGVzdF9faW5fdmVudihzZWxmLCB0ZXN0ZGlyLCBmbmFtZSk6CisgICAgICAgICIi
IkRpcmVjdGx5IHRlc3QgdGhlIHZpcnR1YWwgZW52IGRldGVjdGlvbiBmdW5jdGlvbiIiIgorICAg
ICAgICBiaW5kaXIgPSAiU2NyaXB0cyIgaWYgcHkuc3RkLnN5cy5wbGF0Zm9ybS5zdGFydHN3aXRo
KCJ3aW4iKSBlbHNlICJiaW4iCisgICAgICAgICMgbm8gYmluL2FjdGl2YXRlLCBub3QgYSB2aXJ0
dWFsZW52CisgICAgICAgIGJhc2VfcGF0aCA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCd2ZW52JykK
KyAgICAgICAgYXNzZXJ0IF9pbl92ZW52KGJhc2VfcGF0aCkgaXMgRmFsc2UKKyAgICAgICAgIyB3
aXRoIGJpbi9hY3RpdmF0ZSwgdG90YWxseSBhIHZpcnR1YWxlbnYKKyAgICAgICAgYmFzZV9wYXRo
LmVuc3VyZShiaW5kaXIsIGZuYW1lKQorICAgICAgICBhc3NlcnQgX2luX3ZlbnYoYmFzZV9wYXRo
KSBpcyBUcnVlCisKKyAgICBkZWYgdGVzdF9jdXN0b21fbm9yZWN1cnNlZGlycyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0K
KyAgICAgICAgICAgIG5vcmVjdXJzZWRpcnMgPSBteWRpciB4eXoqCisgICAgICAgICIiIikKKyAg
ICAgICAgdG1wZGlyID0gdGVzdGRpci50bXBkaXIKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgibXlk
aXIiLCAidGVzdF9oZWxsby5weSIpLndyaXRlKCJkZWYgdGVzdF8xKCk6IHBhc3MiKQorICAgICAg
ICB0bXBkaXIuZW5zdXJlKCJ4eXoxMjMiLCAidGVzdF8yLnB5Iikud3JpdGUoImRlZiB0ZXN0XzIo
KTogMC8wIikKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgieHkiLCAidGVzdF9vay5weSIpLndyaXRl
KCJkZWYgdGVzdF8zKCk6IHBhc3MiKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQorICAgICAgICByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKyAgICAgICAgcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCJ4eXoxMjMvdGVzdF8yLnB5IikKKyAgICAgICAgcmVjLmFzc2VydG91
dGNvbWUoZmFpbGVkPTEpCisKKyAgICBkZWYgdGVzdF90ZXN0cGF0aHNfaW5pKHNlbGYsIHRlc3Rk
aXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAg
ICAgW3B5dGVzdF0KKyAgICAgICAgICAgIHRlc3RwYXRocyA9IGd1aSB1dHMKKyAgICAgICAgIiIi
KQorICAgICAgICB0bXBkaXIgPSB0ZXN0ZGlyLnRtcGRpcgorICAgICAgICB0bXBkaXIuZW5zdXJl
KCJlbnYiLCAidGVzdF8xLnB5Iikud3JpdGUoImRlZiB0ZXN0X2VudigpOiBwYXNzIikKKyAgICAg
ICAgdG1wZGlyLmVuc3VyZSgiZ3VpIiwgInRlc3RfMi5weSIpLndyaXRlKCJkZWYgdGVzdF9ndWko
KTogcGFzcyIpCisgICAgICAgIHRtcGRpci5lbnN1cmUoInV0cyIsICJ0ZXN0XzMucHkiKS53cml0
ZSgiZGVmIHRlc3RfdXRzKCk6IHBhc3MiKQorCisgICAgICAgICMgZXhlY3V0aW5nIGZyb20gcm9v
dGRpciBvbmx5IHRlc3RzIGZyb20gYHRlc3RwYXRoc2AgZGlyZWN0b3JpZXMKKyAgICAgICAgIyBh
cmUgY29sbGVjdGVkCisgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5p
dGVtcygnLXYnKQorICAgICAgICBhc3NlcnQgW3gubmFtZSBmb3IgeCBpbiBpdGVtc10gPT0gWyd0
ZXN0X2d1aScsICd0ZXN0X3V0cyddCisKKyAgICAgICAgIyBjaGVjayB0aGF0IGV4cGxpY2l0bHkg
cGFzc2luZyBkaXJlY3RvcmllcyBpbiB0aGUgY29tbWFuZC1saW5lCisgICAgICAgICMgY29sbGVj
dHMgdGhlIHRlc3RzCisgICAgICAgIGZvciBkaXJuYW1lIGluICgnZW52JywgJ2d1aScsICd1dHMn
KToKKyAgICAgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyh0
bXBkaXIuam9pbihkaXJuYW1lKSkKKyAgICAgICAgICAgIGFzc2VydCBbeC5uYW1lIGZvciB4IGlu
IGl0ZW1zXSA9PSBbJ3Rlc3RfJXMnICUgZGlybmFtZV0KKworICAgICAgICAjIGNoYW5naW5nIGN3
ZCB0byBlYWNoIHN1YmRpcmVjdG9yeSBhbmQgcnVubmluZyBweXRlc3Qgd2l0aG91dAorICAgICAg
ICAjIGFyZ3VtZW50cyBjb2xsZWN0cyB0aGUgdGVzdHMgaW4gdGhhdCBkaXJlY3Rvcnkgbm9ybWFs
bHkKKyAgICAgICAgZm9yIGRpcm5hbWUgaW4gKCdlbnYnLCAnZ3VpJywgJ3V0cycpOgorICAgICAg
ICAgICAgbW9ua2V5cGF0Y2guY2hkaXIodGVzdGRpci50bXBkaXIuam9pbihkaXJuYW1lKSkKKyAg
ICAgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCisgICAg
ICAgICAgICBhc3NlcnQgW3gubmFtZSBmb3IgeCBpbiBpdGVtc10gPT0gWyd0ZXN0XyVzJyAlIGRp
cm5hbWVdCisKKworY2xhc3MgVGVzdENvbGxlY3RQbHVnaW5Ib29rUmVsYXkob2JqZWN0KToKKyAg
ICBkZWYgdGVzdF9weXRlc3RfY29sbGVjdF9maWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB3
YXNjYWxsZWQgPSBbXQorCisgICAgICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUoc2VsZiwgcGF0aCwgcGFyZW50KToKKyAgICAgICAg
ICAgICAgICBpZiBub3QgcGF0aC5iYXNlbmFtZS5zdGFydHN3aXRoKCIuIik6CisgICAgICAgICAg
ICAgICAgICAgICMgSWdub3JlIGhpZGRlbiBmaWxlcywgZS5nLiAudGVzdG1vbmRhdGEuCisgICAg
ICAgICAgICAgICAgICAgIHdhc2NhbGxlZC5hcHBlbmQocGF0aCkKKworICAgICAgICB0ZXN0ZGly
Lm1ha2VmaWxlKCIuYWJjIiwgInh5eiIpCisgICAgICAgIHB5dGVzdC5tYWluKFt0ZXN0ZGlyLnRt
cGRpcl0sIHBsdWdpbnM9W1BsdWdpbigpXSkKKyAgICAgICAgYXNzZXJ0IGxlbih3YXNjYWxsZWQp
ID09IDEKKyAgICAgICAgYXNzZXJ0IHdhc2NhbGxlZFswXS5leHQgPT0gJy5hYmMnCisKKyAgICBk
ZWYgdGVzdF9weXRlc3RfY29sbGVjdF9kaXJlY3Rvcnkoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHdhc2NhbGxlZCA9IFtdCisKKyAgICAgICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAg
ICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHNlbGYsIHBhdGgsIHBhcmVudCk6Cisg
ICAgICAgICAgICAgICAgd2FzY2FsbGVkLmFwcGVuZChwYXRoLmJhc2VuYW1lKQorCisgICAgICAg
IHRlc3RkaXIubWtkaXIoImhlbGxvIikKKyAgICAgICAgdGVzdGRpci5ta2Rpcigid29ybGQiKQor
ICAgICAgICBweXRlc3QubWFpbih0ZXN0ZGlyLnRtcGRpciwgcGx1Z2lucz1bUGx1Z2luKCldKQor
ICAgICAgICBhc3NlcnQgImhlbGxvIiBpbiB3YXNjYWxsZWQKKyAgICAgICAgYXNzZXJ0ICJ3b3Js
ZCIgaW4gd2FzY2FsbGVkCisKKworY2xhc3MgVGVzdFBydW5ldHJhY2ViYWNrKG9iamVjdCk6CisK
KyAgICBkZWYgdGVzdF9jdXN0b21fcmVwcl9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IG5vdF9leGlz
dHMKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxl
KHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIE15RmlsZShwYXRoLCBwYXJl
bnQpCisgICAgICAgICAgICBjbGFzcyBNeUVycm9yKEV4Y2VwdGlvbik6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgY2xhc3MgTXlGaWxlKHB5dGVzdC5GaWxlKToKKyAgICAgICAg
ICAgICAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgTXlF
cnJvcigpCisgICAgICAgICAgICAgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToK
KyAgICAgICAgICAgICAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKE15RXJyb3IpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJoZWxsbyB3b3JsZCIKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHB5dGVzdC5GaWxlLnJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKQor
ICAgICAgICAiIiIpCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqRVJST1Ig
Y29sbGVjdGluZyoiLAorICAgICAgICAgICAgIipoZWxsbyB3b3JsZCoiLAorICAgICAgICBdKQor
CisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0ib3RoZXIgbWVjaGFuaXNtIGZvciBhZGRp
bmcgdG8gcmVwb3J0aW5nIG5lZWRlZCIpCisgICAgZGVmIHRlc3RfY29sbGVjdF9yZXBvcnRfcG9z
dHByb2Nlc3Npbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgbm90X2V4aXN0cworICAgICAgICAiIiIpCisgICAg
ICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KCk6CisgICAgICAgICAgICAgICAgb3V0
Y29tZSA9IHlpZWxkCisgICAgICAgICAgICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkK
KyAgICAgICAgICAgICAgICByZXAuaGVhZGVybGluZXMgKz0gWyJoZWFkZXIxIl0KKyAgICAgICAg
ICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChyZXApCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqRVJST1IgY29sbGVjdGluZyoiLAorICAgICAgICAg
ICAgIipoZWFkZXIxKiIsCisgICAgICAgIF0pCisKKworY2xhc3MgVGVzdEN1c3RvbUNvbmZ0ZXN0
cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2lnbm9yZV9jb2xsZWN0X3BhdGgoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5
dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25maWcpOgorICAgICAgICAgICAgICAgIHJldHVy
biBwYXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoIngiKSBvciBcCisgICAgICAgICAgICAgICAgICAg
ICAgIHBhdGguYmFzZW5hbWUgPT0gInRlc3Rfb25lLnB5IgorICAgICAgICAiIiIpCisgICAgICAg
IHN1YiA9IHRlc3RkaXIubWtkaXIoInh5MTIzIikKKyAgICAgICAgc3ViLmVuc3VyZSgidGVzdF9o
ZWxsby5weSIpLndyaXRlKCJzeW50YXggZXJyb3IiKQorICAgICAgICBzdWIuam9pbigiY29uZnRl
c3QucHkiKS53cml0ZSgic3ludGF4IGVycm9yIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRl
c3Rfb25lPSJzeW50YXggZXJyb3IiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1mdWxsdHJhY2UiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRlZiB0
ZXN0X2lnbm9yZV9jb2xsZWN0X25vdF9jYWxsZWRfb25fYXJndW1lbnQoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVz
dF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25maWcpOgorICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRl
c3RfaGVsbG8oKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCIqMSBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNU
RUQKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqY29sbGVjdGVkIDAgaXRl
bXMqIikKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RpZ25vcmVfZXhjbHVkZV9vbl9vcHRpb24oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAg
ICAgY29sbGVjdF9pZ25vcmUgPSBbJ2hlbGxvJywgJ3Rlc3Rfd29ybGQucHknXQorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIu
YWRkb3B0aW9uKCItLVhYIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSkKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgICAgICAgICAg
aWYgY29uZmlnLmdldHZhbHVlKCJYWCIpOgorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0X2ln
bm9yZVs6XSA9IFtdCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5ta2RpcigiaGVsbG8i
KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF93b3JsZD0iZGVmIHRlc3RfaGVsbG8o
KTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAgIGFzc2Vy
dCAicGFzc2VkIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1YWCIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KyAgICAgICAgYXNzZXJ0ICJwYXNzZWQiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRl
ZiB0ZXN0X3B5dGVzdF9mc19jb2xsZWN0X2hvb2tzX2FyZV9zZWVuKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGNsYXNzIE15TW9kdWxlKHB5dGVzdC5Nb2R1bGUpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBh
cmVudCk6CisgICAgICAgICAgICAgICAgaWYgcGF0aC5leHQgPT0gIi5weSI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBNeU1vZHVsZShwYXRoLCBwYXJlbnQpCisgICAgICAgICIiIikKKyAg
ICAgICAgdGVzdGRpci5ta2Rpcigic3ViIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJk
ZWYgdGVzdF94KCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIipNeU1vZHVsZSoiLAorICAgICAgICAgICAgIip0ZXN0X3gqIgorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfcHl0ZXN0X2NvbGxlY3RfZmlsZV9mcm9tX3Npc3Rlcl9kaXIo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHN1YjEgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjEiKQor
ICAgICAgICBzdWIyID0gdGVzdGRpci5ta3B5ZGlyKCJzdWIyIikKKyAgICAgICAgY29uZjEgPSB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIGNsYXNzIE15TW9kdWxlMShweXRlc3QuTW9kdWxlKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgor
ICAgICAgICAgICAgICAgIGlmIHBhdGguZXh0ID09ICIucHkiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gTXlNb2R1bGUxKHBhdGgsIHBhcmVudCkKKyAgICAgICAgIiIiKQorICAgICAgICBj
b25mMS5tb3ZlKHN1YjEuam9pbihjb25mMS5iYXNlbmFtZSkpCisgICAgICAgIGNvbmYyID0gdGVz
dGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBjbGFzcyBNeU1vZHVsZTIocHl0ZXN0Lk1vZHVsZSk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAg
ICAgICAgICAgICAgICBpZiBwYXRoLmV4dCA9PSAiLnB5IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE15TW9kdWxlMihwYXRoLCBwYXJlbnQpCisgICAgICAgICIiIikKKyAgICAgICAgY29u
ZjIubW92ZShzdWIyLmpvaW4oY29uZjIuYmFzZW5hbWUpKQorICAgICAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKCJkZWYgdGVzdF94KCk6IHBhc3MiKQorICAgICAgICBwLmNvcHkoc3ViMS5qb2lu
KHAuYmFzZW5hbWUpKQorICAgICAgICBwLmNvcHkoc3ViMi5qb2luKHAuYmFzZW5hbWUpKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipNeU1vZHVsZTEq
IiwKKyAgICAgICAgICAgICIqTXlNb2R1bGUyKiIsCisgICAgICAgICAgICAiKnRlc3RfeCoiCisg
ICAgICAgIF0pCisKKworY2xhc3MgVGVzdFNlc3Npb24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9w
YXJzZWFyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
ZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgc3ViZGlyID0gdGVzdGRpci5ta2Rpcigi
c3ViIikKKyAgICAgICAgc3ViZGlyLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgICAgICB0YXJn
ZXQgPSBzdWJkaXIuam9pbihwLmJhc2VuYW1lKQorICAgICAgICBwLm1vdmUodGFyZ2V0KQorICAg
ICAgICBzdWJkaXIuY2hkaXIoKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmln
KHAuYmFzZW5hbWUpCisgICAgICAgIHJjb2wgPSBTZXNzaW9uKGNvbmZpZz1jb25maWcpCisgICAg
ICAgIGFzc2VydCByY29sLmZzcGF0aCA9PSBzdWJkaXIKKyAgICAgICAgcGFydHMgPSByY29sLl9w
YXJzZWFyZyhwLmJhc2VuYW1lKQorCisgICAgICAgIGFzc2VydCBwYXJ0c1swXSA9PSB0YXJnZXQK
KyAgICAgICAgYXNzZXJ0IGxlbihwYXJ0cykgPT0gMQorICAgICAgICBwYXJ0cyA9IHJjb2wuX3Bh
cnNlYXJnKHAuYmFzZW5hbWUgKyAiOjp0ZXN0X2Z1bmMiKQorICAgICAgICBhc3NlcnQgcGFydHNb
MF0gPT0gdGFyZ2V0CisgICAgICAgIGFzc2VydCBwYXJ0c1sxXSA9PSAidGVzdF9mdW5jIgorICAg
ICAgICBhc3NlcnQgbGVuKHBhcnRzKSA9PSAyCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X3RvcGRp
cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRl
c3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgaWQgPSAiOjoiLmpvaW4oW3AuYmFzZW5hbWUsICJ0
ZXN0X2Z1bmMiXSkKKyAgICAgICAgIyBYWFggbWlncmF0ZSB0byBjb2xsZWN0b25seT8gKHNlZSBi
ZWxvdykKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZyhpZCkKKyAgICAgICAg
dG9wZGlyID0gdGVzdGRpci50bXBkaXIKKyAgICAgICAgcmNvbCA9IFNlc3Npb24oY29uZmlnKQor
ICAgICAgICBhc3NlcnQgdG9wZGlyID09IHJjb2wuZnNwYXRoCisgICAgICAgICMgcm9vdGlkID0g
cmNvbC5ub2RlaWQKKyAgICAgICAgIyByb290MiA9IHJjb2wucGVyZm9ybV9jb2xsZWN0KFtyY29s
Lm5vZGVpZF0sIGdlbml0ZW1zPUZhbHNlKVswXQorICAgICAgICAjIGFzc2VydCByb290MiA9PSBy
Y29sLCByb290aWQKKyAgICAgICAgY29saXRlbXMgPSByY29sLnBlcmZvcm1fY29sbGVjdChbcmNv
bC5ub2RlaWRdLCBnZW5pdGVtcz1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IGxlbihjb2xpdGVtcykg
PT0gMQorICAgICAgICBhc3NlcnQgY29saXRlbXNbMF0uZnNwYXRoID09IHAKKworICAgIGRlZiBn
ZXRfcmVwb3J0ZWRfaXRlbXMoc2VsZiwgaG9va3JlYyk6CisgICAgICAgICIiIlJldHVybiBweXRl
c3QuSXRlbSBpbnN0YW5jZXMgcmVwb3J0ZWQgYnkgdGhlIHB5dGVzdF9jb2xsZWN0cmVwb3J0IGhv
b2siIiIKKyAgICAgICAgY2FsbHMgPSBob29rcmVjLmdldGNhbGxzKCdweXRlc3RfY29sbGVjdHJl
cG9ydCcpCisgICAgICAgIHJldHVybiBbeCBmb3IgY2FsbCBpbiBjYWxscyBmb3IgeCBpbiBjYWxs
LnJlcG9ydC5yZXN1bHQKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIHB5dGVzdC5J
dGVtKV0KKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfcHJvdG9jb2xfc2luZ2xlX2Z1bmN0aW9uKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9m
dW5jKCk6IHBhc3MiKQorICAgICAgICBpZCA9ICI6OiIuam9pbihbcC5iYXNlbmFtZSwgInRlc3Rf
ZnVuYyJdKQorICAgICAgICBpdGVtcywgaG9va3JlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1z
KGlkKQorICAgICAgICBpdGVtLCA9IGl0ZW1zCisgICAgICAgIGFzc2VydCBpdGVtLm5hbWUgPT0g
InRlc3RfZnVuYyIKKyAgICAgICAgbmV3aWQgPSBpdGVtLm5vZGVpZAorICAgICAgICBhc3NlcnQg
bmV3aWQgPT0gaWQKKyAgICAgICAgcHkuc3RkLnBwcmludC5wcHJpbnQoaG9va3JlYy5jYWxscykK
KyAgICAgICAgdG9wZGlyID0gdGVzdGRpci50bXBkaXIgICMgbm9xYQorICAgICAgICBob29rcmVj
LmFzc2VydF9jb250YWlucyhbCisgICAgICAgICAgICAoInB5dGVzdF9jb2xsZWN0c3RhcnQiLCAi
Y29sbGVjdG9yLmZzcGF0aCA9PSB0b3BkaXIiKSwKKyAgICAgICAgICAgICgicHl0ZXN0X21ha2Vf
Y29sbGVjdF9yZXBvcnQiLCAiY29sbGVjdG9yLmZzcGF0aCA9PSB0b3BkaXIiKSwKKyAgICAgICAg
ICAgICgicHl0ZXN0X2NvbGxlY3RzdGFydCIsICJjb2xsZWN0b3IuZnNwYXRoID09IHAiKSwKKyAg
ICAgICAgICAgICgicHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQiLCAiY29sbGVjdG9yLmZzcGF0
aCA9PSBwIiksCisgICAgICAgICAgICAoInB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0iLCAibmFt
ZSA9PSAndGVzdF9mdW5jJyIpLAorICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHJlcG9ydCIs
ICJyZXBvcnQucmVzdWx0WzBdLm5hbWUgPT0gJ3Rlc3RfZnVuYyciKSwKKyAgICAgICAgXSkKKyAg
ICAgICAgIyBlbnN1cmUgd2UgYXJlIHJlcG9ydGluZyB0aGUgY29sbGVjdGlvbiBvZiB0aGUgc2lu
Z2xlIHRlc3QgaXRlbSAoIzI0NjQpCisgICAgICAgIGFzc2VydCBbeC5uYW1lIGZvciB4IGluIHNl
bGYuZ2V0X3JlcG9ydGVkX2l0ZW1zKGhvb2tyZWMpXSA9PSBbJ3Rlc3RfZnVuYyddCisKKyAgICBk
ZWYgdGVzdF9jb2xsZWN0X3Byb3RvY29sX21ldGhvZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIG5vcm1pZCA9IHAuYmFzZW5h
bWUgKyAiOjpUZXN0Q2xhc3M6OigpOjp0ZXN0X21ldGhvZCIKKyAgICAgICAgZm9yIGlkIGluIFtw
LmJhc2VuYW1lLAorICAgICAgICAgICAgICAgICAgIHAuYmFzZW5hbWUgKyAiOjpUZXN0Q2xhc3Mi
LAorICAgICAgICAgICAgICAgICAgIHAuYmFzZW5hbWUgKyAiOjpUZXN0Q2xhc3M6OigpIiwKKyAg
ICAgICAgICAgICAgICAgICBub3JtaWQsCisgICAgICAgICAgICAgICAgICAgXToKKyAgICAgICAg
ICAgIGl0ZW1zLCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoaWQpCisgICAgICAg
ICAgICBhc3NlcnQgbGVuKGl0ZW1zKSA9PSAxCisgICAgICAgICAgICBhc3NlcnQgaXRlbXNbMF0u
bmFtZSA9PSAidGVzdF9tZXRob2QiCisgICAgICAgICAgICBuZXdpZCA9IGl0ZW1zWzBdLm5vZGVp
ZAorICAgICAgICAgICAgYXNzZXJ0IG5ld2lkID09IG5vcm1pZAorICAgICAgICAgICAgIyBlbnN1
cmUgd2UgYXJlIHJlcG9ydGluZyB0aGUgY29sbGVjdGlvbiBvZiB0aGUgc2luZ2xlIHRlc3QgaXRl
bSAoIzI0NjQpCisgICAgICAgICAgICBhc3NlcnQgW3gubmFtZSBmb3IgeCBpbiBzZWxmLmdldF9y
ZXBvcnRlZF9pdGVtcyhob29rcmVjKV0gPT0gWyd0ZXN0X21ldGhvZCddCisKKyAgICBkZWYgdGVz
dF9jb2xsZWN0X2N1c3RvbV9ub2Rlc19tdWx0aV9pZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBTcGVjaWFsSXRlbShweXRlc3QuSXRlbSk6CisgICAgICAgICAgICAgICAg
ZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAjIG9rCisgICAg
ICAgICAgICBjbGFzcyBTcGVjaWFsRmlsZShweXRlc3QuRmlsZSk6CisgICAgICAgICAgICAgICAg
ZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbU3BlY2lhbEl0
ZW0obmFtZT0iY2hlY2siLCBwYXJlbnQ9c2VsZildCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2Nv
bGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIGlmIHBhdGguYmFzZW5h
bWUgPT0gJXI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTcGVjaWFsRmlsZShmc3BhdGg9
cGF0aCwgcGFyZW50PXBhcmVudCkKKyAgICAgICAgIiIiICUgcC5iYXNlbmFtZSkKKyAgICAgICAg
aWQgPSBwLmJhc2VuYW1lCisKKyAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9nZW5pdGVtcyhpZCkKKyAgICAgICAgcHkuc3RkLnBwcmludC5wcHJpbnQoaG9va3JlYy5jYWxs
cykKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMgorICAgICAgICBob29rcmVjLmFzc2Vy
dF9jb250YWlucyhbCisgICAgICAgICAgICAoInB5dGVzdF9jb2xsZWN0c3RhcnQiLAorICAgICAg
ICAgICAgICAgICJjb2xsZWN0b3IuZnNwYXRoID09IGNvbGxlY3Rvci5zZXNzaW9uLmZzcGF0aCIp
LAorICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHN0YXJ0IiwKKyAgICAgICAgICAgICAgICAi
Y29sbGVjdG9yLl9fY2xhc3NfXy5fX25hbWVfXyA9PSAnU3BlY2lhbEZpbGUnIiksCisgICAgICAg
ICAgICAoInB5dGVzdF9jb2xsZWN0c3RhcnQiLAorICAgICAgICAgICAgICAgICJjb2xsZWN0b3Iu
X19jbGFzc19fLl9fbmFtZV9fID09ICdNb2R1bGUnIiksCisgICAgICAgICAgICAoInB5dGVzdF9w
eWNvbGxlY3RfbWFrZWl0ZW0iLCAibmFtZSA9PSAndGVzdF9mdW5jJyIpLAorICAgICAgICAgICAg
KCJweXRlc3RfY29sbGVjdHJlcG9ydCIsICJyZXBvcnQubm9kZWlkLnN0YXJ0c3dpdGgocC5iYXNl
bmFtZSkiKSwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IGxlbihzZWxmLmdldF9yZXBvcnRl
ZF9pdGVtcyhob29rcmVjKSkgPT0gMgorCisgICAgZGVmIHRlc3RfY29sbGVjdF9zdWJkaXJfZXZl
bnRfb3JkZXJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIGFhYSA9IHRlc3RkaXIubWtweWRp
cigiYWFhIikKKyAgICAgICAgdGVzdF9hYWEgPSBhYWEuam9pbigidGVzdF9hYWEucHkiKQorICAg
ICAgICBwLm1vdmUodGVzdF9hYWEpCisKKyAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGly
LmlubGluZV9nZW5pdGVtcygpCisgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDEKKyAgICAg
ICAgcHkuc3RkLnBwcmludC5wcHJpbnQoaG9va3JlYy5jYWxscykKKyAgICAgICAgaG9va3JlYy5h
c3NlcnRfY29udGFpbnMoWworICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHN0YXJ0IiwgImNv
bGxlY3Rvci5mc3BhdGggPT0gdGVzdF9hYWEiKSwKKyAgICAgICAgICAgICgicHl0ZXN0X3B5Y29s
bGVjdF9tYWtlaXRlbSIsICJuYW1lID09ICd0ZXN0X2Z1bmMnIiksCisgICAgICAgICAgICAoInB5
dGVzdF9jb2xsZWN0cmVwb3J0IiwKKyAgICAgICAgICAgICAicmVwb3J0Lm5vZGVpZC5zdGFydHN3
aXRoKCdhYWEvdGVzdF9hYWEucHknKSIpLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY29s
bGVjdF90d29fY29tbWFuZGxpbmVfYXJncyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgYWFhID0g
dGVzdGRpci5ta3B5ZGlyKCJhYWEiKQorICAgICAgICBiYmIgPSB0ZXN0ZGlyLm1rcHlkaXIoImJi
YiIpCisgICAgICAgIHRlc3RfYWFhID0gYWFhLmpvaW4oInRlc3RfYWFhLnB5IikKKyAgICAgICAg
cC5jb3B5KHRlc3RfYWFhKQorICAgICAgICB0ZXN0X2JiYiA9IGJiYi5qb2luKCJ0ZXN0X2JiYi5w
eSIpCisgICAgICAgIHAubW92ZSh0ZXN0X2JiYikKKworICAgICAgICBpZCA9ICIuIgorCisgICAg
ICAgIGl0ZW1zLCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoaWQpCisgICAgICAg
IGFzc2VydCBsZW4oaXRlbXMpID09IDIKKyAgICAgICAgcHkuc3RkLnBwcmludC5wcHJpbnQoaG9v
a3JlYy5jYWxscykKKyAgICAgICAgaG9va3JlYy5hc3NlcnRfY29udGFpbnMoWworICAgICAgICAg
ICAgKCJweXRlc3RfY29sbGVjdHN0YXJ0IiwgImNvbGxlY3Rvci5mc3BhdGggPT0gdGVzdF9hYWEi
KSwKKyAgICAgICAgICAgICgicHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbSIsICJuYW1lID09ICd0
ZXN0X2Z1bmMnIiksCisgICAgICAgICAgICAoInB5dGVzdF9jb2xsZWN0cmVwb3J0IiwgInJlcG9y
dC5ub2RlaWQgPT0gJ2FhYS90ZXN0X2FhYS5weSciKSwKKyAgICAgICAgICAgICgicHl0ZXN0X2Nv
bGxlY3RzdGFydCIsICJjb2xsZWN0b3IuZnNwYXRoID09IHRlc3RfYmJiIiksCisgICAgICAgICAg
ICAoInB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0iLCAibmFtZSA9PSAndGVzdF9mdW5jJyIpLAor
ICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHJlcG9ydCIsICJyZXBvcnQubm9kZWlkID09ICdi
YmIvdGVzdF9iYmIucHknIiksCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9zZXJpYWxpemF0
aW9uX2J5aWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVm
IHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlu
bGluZV9nZW5pdGVtcygpCisgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDEKKyAgICAgICAg
aXRlbSwgPSBpdGVtcworICAgICAgICBpdGVtczIsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlubGluZV9n
ZW5pdGVtcyhpdGVtLm5vZGVpZCkKKyAgICAgICAgaXRlbTIsID0gaXRlbXMyCisgICAgICAgIGFz
c2VydCBpdGVtMi5uYW1lID09IGl0ZW0ubmFtZQorICAgICAgICBhc3NlcnQgaXRlbTIuZnNwYXRo
ID09IGl0ZW0uZnNwYXRoCisKKyAgICBkZWYgdGVzdF9maW5kX2J5aWRfd2l0aG91dF9pbnN0YW5j
ZV9wYXJlbnRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgYXJnID0gcC5iYXNlbmFtZSArICI6OlRlc3RDbGFzczo6dGVzdF9t
ZXRob2QiCisgICAgICAgIGl0ZW1zLCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMo
YXJnKQorICAgICAgICBhc3NlcnQgbGVuKGl0ZW1zKSA9PSAxCisgICAgICAgIGl0ZW0sID0gaXRl
bXMKKyAgICAgICAgYXNzZXJ0IGl0ZW0ubm9kZWlkLmVuZHN3aXRoKCJUZXN0Q2xhc3M6OigpOjp0
ZXN0X21ldGhvZCIpCisgICAgICAgICMgZW5zdXJlIHdlIGFyZSByZXBvcnRpbmcgdGhlIGNvbGxl
Y3Rpb24gb2YgdGhlIHNpbmdsZSB0ZXN0IGl0ZW0gKCMyNDY0KQorICAgICAgICBhc3NlcnQgW3gu
bmFtZSBmb3IgeCBpbiBzZWxmLmdldF9yZXBvcnRlZF9pdGVtcyhob29rcmVjKV0gPT0gWyd0ZXN0
X21ldGhvZCddCisKKworY2xhc3MgVGVzdF9nZXRpbml0aWFsbm9kZXMob2JqZWN0KToKKyAgICBk
ZWYgdGVzdF9nbG9iYWxfZmlsZShzZWxmLCB0ZXN0ZGlyLCB0bXBkaXIpOgorICAgICAgICB4ID0g
dG1wZGlyLmVuc3VyZSgieC5weSIpCisgICAgICAgIHdpdGggdG1wZGlyLmFzX2N3ZCgpOgorICAg
ICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSh4KQorICAgICAgICBjb2wg
PSB0ZXN0ZGlyLmdldG5vZGUoY29uZmlnLCB4KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b2wsIHB5dGVzdC5Nb2R1bGUpCisgICAgICAgIGFzc2VydCBjb2wubmFtZSA9PSAneC5weScKKyAg
ICAgICAgYXNzZXJ0IGNvbC5wYXJlbnQucGFyZW50IGlzIE5vbmUKKyAgICAgICAgZm9yIGNvbCBp
biBjb2wubGlzdGNoYWluKCk6CisgICAgICAgICAgICBhc3NlcnQgY29sLmNvbmZpZyBpcyBjb25m
aWcKKworICAgIGRlZiB0ZXN0X3BrZ2ZpbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRtcGRp
ciA9IHRlc3RkaXIudG1wZGlyCisgICAgICAgIHN1YmRpciA9IHRtcGRpci5qb2luKCJzdWJkaXIi
KQorICAgICAgICB4ID0gc3ViZGlyLmVuc3VyZSgieC5weSIpCisgICAgICAgIHN1YmRpci5lbnN1
cmUoIl9faW5pdF9fLnB5IikKKyAgICAgICAgd2l0aCBzdWJkaXIuYXNfY3dkKCk6CisgICAgICAg
ICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKHgpCisgICAgICAgIGNvbCA9IHRl
c3RkaXIuZ2V0bm9kZShjb25maWcsIHgpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGNvbCwg
cHl0ZXN0Lk1vZHVsZSkKKyAgICAgICAgYXNzZXJ0IGNvbC5uYW1lID09ICd4LnB5JworICAgICAg
ICBhc3NlcnQgY29sLnBhcmVudC5wYXJlbnQgaXMgTm9uZQorICAgICAgICBmb3IgY29sIGluIGNv
bC5saXN0Y2hhaW4oKToKKyAgICAgICAgICAgIGFzc2VydCBjb2wuY29uZmlnIGlzIGNvbmZpZwor
CisKK2NsYXNzIFRlc3RfZ2VuaXRlbXMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9jaGVja19jb2xs
ZWN0X2hhc2hlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICIiIikKKyAgICAgICAgcC5jb3B5KHAuZGlycGF0aChwLnB1cmViYXNlbmFtZSArICIyIiArICIu
cHkiKSkKKyAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAu
ZGlycGF0aCgpKQorICAgICAgICBhc3NlcnQgbGVuKGl0ZW1zKSA9PSA0CisgICAgICAgIGZvciBu
dW1pLCBpIGluIGVudW1lcmF0ZShpdGVtcyk6CisgICAgICAgICAgICBmb3IgbnVtaiwgaiBpbiBl
bnVtZXJhdGUoaXRlbXMpOgorICAgICAgICAgICAgICAgIGlmIG51bWogIT0gbnVtaToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IGhhc2goaSkgIT0gaGFzaChqKQorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgaSAhPSBqCisKKyAgICBkZWYgdGVzdF9leGFtcGxlX2l0ZW1zMShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAg
IGRlZiB0ZXN0b25lKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBjbGFz
cyBUZXN0WChvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0bWV0aG9kX29uZShzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBjbGFzcyBUZXN0WShU
ZXN0WCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAnJycpCisgICAgICAgIGl0ZW1z
LCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwKQorICAgICAgICBhc3NlcnQgbGVu
KGl0ZW1zKSA9PSAzCisgICAgICAgIGFzc2VydCBpdGVtc1swXS5uYW1lID09ICd0ZXN0b25lJwor
ICAgICAgICBhc3NlcnQgaXRlbXNbMV0ubmFtZSA9PSAndGVzdG1ldGhvZF9vbmUnCisgICAgICAg
IGFzc2VydCBpdGVtc1syXS5uYW1lID09ICd0ZXN0bWV0aG9kX29uZScKKworICAgICAgICAjIGxl
dCdzIGFsc28gdGVzdCBnZXRtb2RwYXRoIGhlcmUKKyAgICAgICAgYXNzZXJ0IGl0ZW1zWzBdLmdl
dG1vZHBhdGgoKSA9PSAidGVzdG9uZSIKKyAgICAgICAgYXNzZXJ0IGl0ZW1zWzFdLmdldG1vZHBh
dGgoKSA9PSAiVGVzdFgudGVzdG1ldGhvZF9vbmUiCisgICAgICAgIGFzc2VydCBpdGVtc1syXS5n
ZXRtb2RwYXRoKCkgPT0gIlRlc3RZLnRlc3RtZXRob2Rfb25lIgorCisgICAgICAgIHMgPSBpdGVt
c1swXS5nZXRtb2RwYXRoKHN0b3BhdG1vZHVsZT1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IHMuZW5k
c3dpdGgoInRlc3RfZXhhbXBsZV9pdGVtczEudGVzdG9uZSIpCisgICAgICAgIHByaW50KHMpCisK
KyAgICBkZWYgdGVzdF9jbGFzc19hbmRfZnVuY3Rpb25zX2Rpc2NvdmVyeV91c2luZ19nbG9iKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdHMgdGhhdCBweXRob25fY2xh
c3NlcyBhbmQgcHl0aG9uX2Z1bmN0aW9ucyBjb25maWcgb3B0aW9ucyB3b3JrCisgICAgICAgIGFz
IHByZWZpeGVzIGFuZCBnbG9iLWxpa2UgcGF0dGVybnMgKGlzc3VlICM2MDApLgorICAgICAgICAi
IiIKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAg
ICAgICAgICAgIHB5dGhvbl9jbGFzc2VzID0gKlN1aXRlIFRlc3QKKyAgICAgICAgICAgIHB5dGhv
bl9mdW5jdGlvbnMgPSAqX3Rlc3QgdGVzdAorICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBjbGFzcyBNeVRlc3RTdWl0ZShvYmplY3Qp
OgorICAgICAgICAgICAgICAgIGRlZiB4X3Rlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAg
IHBhc3MKKworICAgICAgICAgICAgY2xhc3MgVGVzdENhc2Uob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF95KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICcnJykKKyAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAp
CisgICAgICAgIGlkcyA9IFt4LmdldG1vZHBhdGgoKSBmb3IgeCBpbiBpdGVtc10KKyAgICAgICAg
YXNzZXJ0IGlkcyA9PSBbJ015VGVzdFN1aXRlLnhfdGVzdCcsICdUZXN0Q2FzZS50ZXN0X3knXQor
CisKK2RlZiB0ZXN0X21hdGNobm9kZXNfdHdvX2NvbGxlY3Rpb25zX3NhbWVfZmlsZSh0ZXN0ZGly
KToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAgICAgY29uZmln
LnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoUGx1Z2luMigpKQorCisgICAgICAgIGNsYXNzIFBsdWdp
bjIob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHNlbGYsIHBh
dGgsIHBhcmVudCk6CisgICAgICAgICAgICAgICAgaWYgcGF0aC5leHQgPT0gIi5hYmMiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gTXlGaWxlMihwYXRoLCBwYXJlbnQpCisKKyAgICAgICAg
ZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAgICAgICAgIGlmIHBh
dGguZXh0ID09ICIuYWJjIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTXlGaWxlMShwYXRoLCBw
YXJlbnQpCisKKyAgICAgICAgY2xhc3MgTXlGaWxlMShweXRlc3QuSXRlbSwgcHl0ZXN0LkZpbGUp
OgorICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICBjbGFzcyBNeUZpbGUyKHB5dGVzdC5GaWxlKToKKyAgICAgICAgICAgIGRlZiBjb2xs
ZWN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBbSXRlbTIoImhlbGxvIiwgcGFyZW50
PXNlbGYpXQorCisgICAgICAgIGNsYXNzIEl0ZW0yKHB5dGVzdC5JdGVtKToKKyAgICAgICAgICAg
IGRlZiBydW50ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAg
cCA9IHRlc3RkaXIubWFrZWZpbGUoIi5hYmMiLCAiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqMiBwYXNzZWQqIiwKKyAgICBdKQorICAgIHJlcyA9
IHRlc3RkaXIucnVucHl0ZXN0KCIlczo6aGVsbG8iICUgcC5iYXNlbmFtZSkKKyAgICByZXMuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgXSkKKworCitj
bGFzcyBUZXN0Tm9kZWtleXdvcmRzKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfbm9fdW5kZXIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgor
ICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9m
YWlsKCk6IGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgdmFsdWVzID0gbGlzdChtb2Rj
b2wua2V5d29yZHMpCisgICAgICAgIGFzc2VydCBtb2Rjb2wubmFtZSBpbiB2YWx1ZXMKKyAgICAg
ICAgZm9yIHggaW4gdmFsdWVzOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCB4LnN0YXJ0c3dpdGgo
Il8iKQorICAgICAgICBhc3NlcnQgbW9kY29sLm5hbWUgaW4gcmVwcihtb2Rjb2wua2V5d29yZHMp
CisKKyAgICBkZWYgdGVzdF9pc3N1ZTM0NShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfc2hvdWxkX25vdF9iZV9zZWxl
Y3RlZCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgJ0kgc2hvdWxkIG5vdCBoYXZl
IGJlZW4gc2VsZWN0ZWQgdG8gcnVuJworCisgICAgICAgICAgICBkZWYgdGVzdF9fX3JlcHJfXygp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1rIHJlcHIiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MSwgZmFpbGVkPTApCisKKworQ09MTEVDVElPTl9FUlJPUl9QWV9GSUxFUyA9IGRp
Y3QoCisgICAgdGVzdF8wMV9mYWlsdXJlPSIiIgorICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAg
ICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgIiIiLAorICAgIHRlc3RfMDJfaW1wb3J0X2Vy
cm9yPSIiIgorICAgICAgICBpbXBvcnQgYXNkZmFzZGZhc2RmCisgICAgICAgIGRlZiB0ZXN0XzIo
KToKKyAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIiwKKyAgICB0ZXN0XzAzX2lt
cG9ydF9lcnJvcj0iIiIKKyAgICAgICAgaW1wb3J0IGFzZGZhc2RmYXNkZgorICAgICAgICBkZWYg
dGVzdF8zKCk6CisgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICIiIiwKKyAgICB0ZXN0XzA0
X3N1Y2Nlc3M9IiIiCisgICAgICAgIGRlZiB0ZXN0XzQoKToKKyAgICAgICAgICAgIGFzc2VydCBU
cnVlCisgICAgIiIiLAorKQorCisKK2RlZiB0ZXN0X2V4aXRfb25fY29sbGVjdGlvbl9lcnJvcih0
ZXN0ZGlyKToKKyAgICAiIiJWZXJpZnkgdGhhdCBhbGwgY29sbGVjdGlvbiBlcnJvcnMgYXJlIGNv
bGxlY3RlZCBhbmQgbm8gdGVzdHMgZXhlY3V0ZWQiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
KipDT0xMRUNUSU9OX0VSUk9SX1BZX0ZJTEVTKQorCisgICAgcmVzID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgIGFzc2VydCByZXMucmV0ID09IDIKKworICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyAvIDIgZXJyb3JzIiwKKyAgICAgICAg
IipFUlJPUiBjb2xsZWN0aW5nIHRlc3RfMDJfaW1wb3J0X2Vycm9yLnB5KiIsCisgICAgICAgICIq
Tm8gbW9kdWxlIG5hbWVkICphc2RmYSoiLAorICAgICAgICAiKkVSUk9SIGNvbGxlY3RpbmcgdGVz
dF8wM19pbXBvcnRfZXJyb3IucHkqIiwKKyAgICAgICAgIipObyBtb2R1bGUgbmFtZWQgKmFzZGZh
KiIsCisgICAgXSkKKworCitkZWYgdGVzdF9leGl0X29uX2NvbGxlY3Rpb25fd2l0aF9tYXhmYWls
X3NtYWxsZXJfdGhhbl9uX2Vycm9ycyh0ZXN0ZGlyKToKKyAgICAiIiIKKyAgICBWZXJpZnkgY29s
bGVjdGlvbiBpcyBhYm9ydGVkIG9uY2UgbWF4ZmFpbCBlcnJvcnMgYXJlIGVuY291bnRlcmVkIGln
bm9yaW5nCisgICAgZnVydGhlciBtb2R1bGVzIHdoaWNoIHdvdWxkIGNhdXNlIG1vcmUgY29sbGVj
dGlvbiBlcnJvcnMuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqQ09MTEVDVElP
Tl9FUlJPUl9QWV9GSUxFUykKKworICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1heGZh
aWw9MSIpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMQorCisgICAgcmVzLnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgIipFUlJPUiBjb2xsZWN0aW5nIHRlc3RfMDJfaW1wb3J0X2Vycm9y
LnB5KiIsCisgICAgICAgICIqTm8gbW9kdWxlIG5hbWVkICphc2RmYSoiLAorICAgIF0pCisKKyAg
ICBhc3NlcnQgJ3Rlc3RfMDMnIG5vdCBpbiByZXMuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3Rf
ZXhpdF9vbl9jb2xsZWN0aW9uX3dpdGhfbWF4ZmFpbF9iaWdnZXJfdGhhbl9uX2Vycm9ycyh0ZXN0
ZGlyKToKKyAgICAiIiIKKyAgICBWZXJpZnkgdGhlIHRlc3QgcnVuIGFib3J0cyBkdWUgdG8gY29s
bGVjdGlvbiBlcnJvcnMgZXZlbiBpZiBtYXhmYWlsIGNvdW50IG9mCisgICAgZXJyb3JzIHdhcyBu
b3QgcmVhY2hlZC4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipDT0xMRUNUSU9O
X0VSUk9SX1BZX0ZJTEVTKQorCisgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbWF4ZmFp
bD00IikKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAyCisKKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMgLyAyIGVycm9ycyIsCisgICAgICAg
ICIqRVJST1IgY29sbGVjdGluZyB0ZXN0XzAyX2ltcG9ydF9lcnJvci5weSoiLAorICAgICAgICAi
Kk5vIG1vZHVsZSBuYW1lZCAqYXNkZmEqIiwKKyAgICAgICAgIipFUlJPUiBjb2xsZWN0aW5nIHRl
c3RfMDNfaW1wb3J0X2Vycm9yLnB5KiIsCisgICAgICAgICIqTm8gbW9kdWxlIG5hbWVkICphc2Rm
YSoiLAorICAgIF0pCisKKworZGVmIHRlc3RfY29udGludWVfb25fY29sbGVjdGlvbl9lcnJvcnMo
dGVzdGRpcik6CisgICAgIiIiCisgICAgVmVyaWZ5IHRlc3RzIGFyZSBleGVjdXRlZCBldmVuIHdo
ZW4gY29sbGVjdGlvbiBlcnJvcnMgb2NjdXIgd2hlbiB0aGUKKyAgICAtLWNvbnRpbnVlLW9uLWNv
bGxlY3Rpb24tZXJyb3JzIGZsYWcgaXMgc2V0CisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCoqQ09MTEVDVElPTl9FUlJPUl9QWV9GSUxFUykKKworICAgIHJlcyA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItLWNvbnRpbnVlLW9uLWNvbGxlY3Rpb24tZXJyb3JzIikKKyAgICBhc3NlcnQgcmVz
LnJldCA9PSAxCisKKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiY29s
bGVjdGVkIDIgaXRlbXMgLyAyIGVycm9ycyIsCisgICAgICAgICIqMSBmYWlsZWQsIDEgcGFzc2Vk
LCAyIGVycm9yKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9jb250aW51ZV9vbl9jb2xsZWN0aW9u
X2Vycm9yc19tYXhmYWlsKHRlc3RkaXIpOgorICAgICIiIgorICAgIFZlcmlmeSB0ZXN0cyBhcmUg
ZXhlY3V0ZWQgZXZlbiB3aGVuIGNvbGxlY3Rpb24gZXJyb3JzIG9jY3VyIGFuZCB0aGF0IG1heGZh
aWwKKyAgICBpcyBob25vdXJlZCAoaW5jbHVkaW5nIHRoZSBjb2xsZWN0aW9uIGVycm9yIGNvdW50
KS4KKyAgICA0IHRlc3RzOiAyIGNvbGxlY3Rpb24gZXJyb3JzICsgMSBmYWlsdXJlICsgMSBzdWNj
ZXNzCisgICAgdGVzdF80IGlzIG5ldmVyIGV4ZWN1dGVkIGJlY2F1c2UgdGhlIHRlc3QgcnVuIGlz
IHdpdGggLS1tYXhmYWlsPTMgd2hpY2gKKyAgICBtZWFucyBpdCBpcyBpbnRlcnJ1cHRlZCBhZnRl
ciB0aGUgMiBjb2xsZWN0aW9uIGVycm9ycyArIDEgZmFpbHVyZS4KKyAgICAiIiIKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoKipDT0xMRUNUSU9OX0VSUk9SX1BZX0ZJTEVTKQorCisgICAgcmVzID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tY29udGludWUtb24tY29sbGVjdGlvbi1lcnJvcnMiLCAiLS1t
YXhmYWlsPTMiKQorICAgIGFzc2VydCByZXMucmV0ID09IDEKKworICAgIHJlcy5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyAvIDIgZXJyb3JzIiwKKyAg
ICAgICAgIioxIGZhaWxlZCwgMiBlcnJvcioiLAorICAgIF0pCisKKworZGVmIHRlc3RfZml4dHVy
ZV9zY29wZV9zaWJsaW5nX2NvbmZ0ZXN0cyh0ZXN0ZGlyKToKKyAgICAiIiJSZWdyZXNzaW9uIHRl
c3QgY2FzZSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
ODM2IiIiCisgICAgZm9vX3BhdGggPSB0ZXN0ZGlyLm1rcHlkaXIoImZvbyIpCisgICAgZm9vX3Bh
dGguam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVm
IGZpeCgpOgorICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAiIiIpKQorICAgIGZvb19wYXRoLmpv
aW4oInRlc3RfZm9vLnB5Iikud3JpdGUoImRlZiB0ZXN0X2ZvbyhmaXgpOiBhc3NlcnQgZml4ID09
IDEiKQorCisgICAgIyBUZXN0cyBpbiBgZm9vZC9gIHNob3VsZCBub3Qgc2VlIHRoZSBjb25mdGVz
dCBmaXh0dXJlIGZyb20gYGZvby9gCisgICAgZm9vZF9wYXRoID0gdGVzdGRpci5ta3B5ZGlyKCJm
b29kIikKKyAgICBmb29kX3BhdGguam9pbigidGVzdF9mb29kLnB5Iikud3JpdGUoImRlZiB0ZXN0
X2Zvb2QoZml4KTogYXNzZXJ0IGZpeCA9PSAxIikKKworICAgIHJlcyA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAxCisKKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAiKkVSUk9SIGF0IHNldHVwIG9mIHRlc3RfZm9vZCoiLAorICAgICAg
ICAiRSpmaXh0dXJlICdmaXgnIG5vdCBmb3VuZCIsCisgICAgICAgICIqMSBwYXNzZWQsIDEgZXJy
b3IqIiwKKyAgICBdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbXBh
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb21wYXQucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc0
ODAxYzZjODU0ODVjMDZkMGU3ZmEwNWYyMzE4ZDQ2Yzg1MTgzOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb21wYXQucHkKQEAgLTAsMCArMSwxMDEgQEAKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2ltcG9ydCBzeXMKKworaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0LmNvbXBhdCBp
bXBvcnQgaXNfZ2VuZXJhdG9yLCBnZXRfcmVhbF9mdW5jLCBzYWZlX2dldGF0dHIKK2Zyb20gX3B5
dGVzdC5vdXRjb21lcyBpbXBvcnQgT3V0Y29tZUV4Y2VwdGlvbgorCisKK2RlZiB0ZXN0X2lzX2dl
bmVyYXRvcigpOgorICAgIGRlZiB6YXAoKToKKyAgICAgICAgeWllbGQKKworICAgIGRlZiBmb28o
KToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGlzX2dlbmVyYXRvcih6YXApCisgICAgYXNz
ZXJ0IG5vdCBpc19nZW5lcmF0b3IoZm9vKQorCisKK2RlZiB0ZXN0X3JlYWxfZnVuY19sb29wX2xp
bWl0KCk6CisKKyAgICBjbGFzcyBFdmlsKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKKyAgICAgICAgICAgIHNlbGYubGVmdCA9IDEwMDAKKworICAgICAgICBkZWYgX19yZXBy
X18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gIjxFdmlsIGxlZnQ9e2xlZnR9PiIuZm9ybWF0
KGxlZnQ9c2VsZi5sZWZ0KQorCisgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToK
KyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmxlZnQ6CisgICAgICAgICAgICAgICAgcmFpc2UgUnVu
dGltZUVycm9yKCdpdHMgb3ZlcicpCisgICAgICAgICAgICBzZWxmLmxlZnQgLT0gMQorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYKKworICAgIGV2aWwgPSBFdmlsKCkKKworICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgcmVzID0gZ2V0X3JlYWxfZnVuYyhldmlsKQor
ICAgICAgICBwcmludChyZXMpCisKKworQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9p
bmZvIDwgKDMsIDQpLAorICAgICAgICAgICAgICAgICAgICByZWFzb249J2FzeW5jaW8gYXZhaWxh
YmxlIGluIFB5dGhvbiAzLjQrJykKK2RlZiB0ZXN0X2lzX2dlbmVyYXRvcl9hc3luY2lvKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNv
bXBhdCBpbXBvcnQgaXNfZ2VuZXJhdG9yCisgICAgICAgIGltcG9ydCBhc3luY2lvCisgICAgICAg
IEBhc3luY2lvLmNvcm91dGluZQorICAgICAgICBkZWYgYmF6KCk6CisgICAgICAgICAgICB5aWVs
ZCBmcm9tIFsxLDIsM10KKworICAgICAgICBkZWYgdGVzdF9pc19nZW5lcmF0b3JfYXN5bmNpbygp
OgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBpc19nZW5lcmF0b3IoYmF6KQorICAgICIiIikKKyAg
ICAjIGF2b2lkIGltcG9ydGluZyBhc3luY2lvIGludG8gcHl0ZXN0J3Mgb3duIHByb2Nlc3MsCisg
ICAgIyB3aGljaCBpbiB0dXJuIGltcG9ydHMgbG9nZ2luZyAoIzgpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsnKjEgcGFzc2VkKiddKQorCisKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25f
aW5mbyA8ICgzLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdhc3luYyBzeW50YXgg
YXZhaWxhYmxlIGluIFB5dGhvbiAzLjUrJykKK2RlZiB0ZXN0X2lzX2dlbmVyYXRvcl9hc3luY19z
eW50YXgodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBmcm9t
IF9weXRlc3QuY29tcGF0IGltcG9ydCBpc19nZW5lcmF0b3IKKyAgICAgICAgZGVmIHRlc3RfaXNf
Z2VuZXJhdG9yX3B5MzUoKToKKyAgICAgICAgICAgIGFzeW5jIGRlZiBmb28oKToKKyAgICAgICAg
ICAgICAgICBhd2FpdCBmb28oKQorCisgICAgICAgICAgICBhc3luYyBkZWYgYmFyKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBhc3NlcnQgbm90IGlzX2dlbmVyYXRvcihm
b28pCisgICAgICAgICAgICBhc3NlcnQgbm90IGlzX2dlbmVyYXRvcihiYXIpCisgICAgIiIiKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWycqMSBwYXNzZWQqJ10pCisKKworY2xhc3MgRXJyb3JzSGVscGVyKG9iamVjdCk6
CisgICAgQHByb3BlcnR5CisgICAgZGVmIHJhaXNlX2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdleGNlcHRpb24gc2hvdWxkIGJlIGNhdGNoZWQnKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHJhaXNlX2ZhaWwoc2VsZik6CisgICAgICAgIHB5dGVzdC5mYWlsKCdm
YWlsIHNob3VsZCBiZSBjYXRjaGVkJykKKworCitkZWYgdGVzdF9oZWxwZXJfZmFpbHVyZXMoKToK
KyAgICBoZWxwZXIgPSBFcnJvcnNIZWxwZXIoKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFeGNl
cHRpb24pOgorICAgICAgICBoZWxwZXIucmFpc2VfZXhjZXB0aW9uCisgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKE91dGNvbWVFeGNlcHRpb24pOgorICAgICAgICBoZWxwZXIucmFpc2VfZmFpbAorCisK
K2RlZiB0ZXN0X3NhZmVfZ2V0YXR0cigpOgorICAgIGhlbHBlciA9IEVycm9yc0hlbHBlcigpCisg
ICAgYXNzZXJ0IHNhZmVfZ2V0YXR0cihoZWxwZXIsICdyYWlzZV9leGNlcHRpb24nLCAnZGVmYXVs
dCcpID09ICdkZWZhdWx0JworICAgIGFzc2VydCBzYWZlX2dldGF0dHIoaGVscGVyLCAncmFpc2Vf
ZmFpbCcsICdkZWZhdWx0JykgPT0gJ2RlZmF1bHQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NGI4YzMxN2EyODU3MzUxYjYxYjI0OWFjOTU0NjNkMGY0NDg2NjZjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5weQpAQCAt
MCwwICsxLDg2MiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0IHB5CitpbXBvcnQgcHl0
ZXN0CisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBn
ZXRjZmcsIGdldF9jb21tb25fYW5jZXN0b3IsIGRldGVybWluZV9zZXR1cCwgX2l0ZXJfcmV3cml0
YWJsZV9tb2R1bGVzCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVD
VEVECisKKworY2xhc3MgVGVzdFBhcnNlSW5pKG9iamVjdCk6CisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ3NlY3Rpb24sIGZpbGVuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWygncHl0ZXN0JywgJ3B5dGVzdC5pbmknKSwgKCd0b29sOnB5dGVzdCcsICdzZXR1cC5j
ZmcnKV0pCisgICAgZGVmIHRlc3RfZ2V0Y2ZnX2FuZF9jb25maWcoc2VsZiwgdGVzdGRpciwgdG1w
ZGlyLCBzZWN0aW9uLCBmaWxlbmFtZSk6CisgICAgICAgIHN1YiA9IHRtcGRpci5ta2Rpcigic3Vi
IikKKyAgICAgICAgc3ViLmNoZGlyKCkKKyAgICAgICAgdG1wZGlyLmpvaW4oZmlsZW5hbWUpLndy
aXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgW3tzZWN0aW9ufV0KKyAg
ICAgICAgICAgIG5hbWUgPSB2YWx1ZQorICAgICAgICAiIiIuZm9ybWF0KHNlY3Rpb249c2VjdGlv
bikpKQorICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBjZmcgPSBnZXRjZmcoW3N1Yl0pCisgICAg
ICAgIGFzc2VydCBjZmdbJ25hbWUnXSA9PSAidmFsdWUiCisgICAgICAgIGNvbmZpZyA9IHRlc3Rk
aXIucGFyc2Vjb25maWd1cmUoc3ViKQorICAgICAgICBhc3NlcnQgY29uZmlnLmluaWNmZ1snbmFt
ZSddID09ICd2YWx1ZScKKworICAgIGRlZiB0ZXN0X2dldGNmZ19lbXB0eV9wYXRoKHNlbGYpOgor
ICAgICAgICAiIiJjb3JyZWN0bHkgaGFuZGxlIHplcm8gbGVuZ3RoIGFyZ3VtZW50cyAoYSBsYSBw
eXRlc3QgJycpIiIiCisgICAgICAgIGdldGNmZyhbJyddKQorCisgICAgZGVmIHRlc3RfYXBwZW5k
X3BhcnNlX2FyZ3Moc2VsZiwgdGVzdGRpciwgdG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAg
IG1vbmtleXBhdGNoLnNldGVudignUFlURVNUX0FERE9QVFMnLCAnLS1jb2xvciBubyAtcnMgLS10
Yj0ic2hvcnQiJykKKyAgICAgICAgdG1wZGlyLmpvaW4oInB5dGVzdC5pbmkiKS53cml0ZShfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBh
ZGRvcHRzID0gLS12ZXJib3NlCisgICAgICAgICIiIikpCisgICAgICAgIGNvbmZpZyA9IHRlc3Rk
aXIucGFyc2Vjb25maWcodG1wZGlyKQorICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5jb2xv
ciA9PSAnbm8nCisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLnJlcG9ydGNoYXJzID09ICdz
JworICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi50YnN0eWxlID09ICdzaG9ydCcKKyAgICAg
ICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24udmVyYm9zZQorCisgICAgZGVmIHRlc3RfdG94X2luaV93
cm9uZ192ZXJzaW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKCcu
aW5pJywgdG94PSIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIG1pbnZlcnNp
b249OS4wCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRlcnIu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRveC5pbmk6MipyZXF1aXJlcyo5LjAqYWN0
dWFsKiIKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2VjdGlv
biwgbmFtZSIsIFsKKyAgICAgICAgKCd0b29sOnB5dGVzdCcsICdzZXR1cC5jZmcnKSwKKyAgICAg
ICAgKCdweXRlc3QnLCAndG94LmluaScpLAorICAgICAgICAoJ3B5dGVzdCcsICdweXRlc3QuaW5p
JyldLAorICAgICkKKyAgICBkZWYgdGVzdF9pbmlfbmFtZXMoc2VsZiwgdGVzdGRpciwgbmFtZSwg
c2VjdGlvbik6CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4obmFtZSkud3JpdGUocHkuc3Rk
LnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgICAgIFt7c2VjdGlvbn1dCisgICAgICAgICAg
ICBtaW52ZXJzaW9uID0gMS4wCisgICAgICAgICIiIi5mb3JtYXQoc2VjdGlvbj1zZWN0aW9uKSkp
CisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICBhc3NlcnQg
Y29uZmlnLmdldGluaSgibWludmVyc2lvbiIpID09ICIxLjAiCisKKyAgICBkZWYgdGVzdF90b3hp
bmlfYmVmb3JlX2xvd2VyX3B5dGVzdGluaShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc3ViID0g
dGVzdGRpci50bXBkaXIubWtkaXIoInN1YiIpCisgICAgICAgIHN1Yi5qb2luKCJ0b3guaW5pIiku
d3JpdGUocHkuc3RkLnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisg
ICAgICAgICAgICBtaW52ZXJzaW9uID0gMi4wCisgICAgICAgICIiIikpCisgICAgICAgIHRlc3Rk
aXIudG1wZGlyLmpvaW4oInB5dGVzdC5pbmkiKS53cml0ZShweS5zdGQudGV4dHdyYXAuZGVkZW50
KCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIG1pbnZlcnNpb24gPSAxLjUK
KyAgICAgICAgIiIiKSkKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZShz
dWIpCisgICAgICAgIGFzc2VydCBjb25maWcuZ2V0aW5pKCJtaW52ZXJzaW9uIikgPT0gIjIuMCIK
KworICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249InByb2JhYmx5IG5vdCBuZWVkZWQiKQor
ICAgIGRlZiB0ZXN0X2NvbmZjdXRkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHN1YiA9IHRl
c3RkaXIubWtkaXIoInN1YiIpCisgICAgICAgIHN1Yi5jaGRpcigpCisgICAgICAgIHRlc3RkaXIu
bWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBhZGRvcHRzID0g
LS1xd2UKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii0tY29uZmN1dGRpcj0uIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2Ns
YXNzIFRlc3RDb25maWdDbWRsaW5lUGFyc2luZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3BhcnNp
bmdfYWdhaW5fZmFpbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIu
cGFyc2Vjb25maWcoKQorICAgICAgICBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCBsYW1i
ZGE6IGNvbmZpZy5wYXJzZShbXSkpCisKKyAgICBkZWYgdGVzdF9leHBsaWNpdGx5X3NwZWNpZmll
ZF9jb25maWdfZmlsZV9pc19sb2FkZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2Vy
KToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJjdXN0b20iLCAiIikKKyAgICAgICAg
IiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICAgICAgY3VzdG9tID0gMAorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZWZpbGUoIi5jZmciLCBjdXN0b209IiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAg
ICAgY3VzdG9tID0gMQorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFy
c2Vjb25maWcoIi1jIiwgImN1c3RvbS5jZmciKQorICAgICAgICBhc3NlcnQgY29uZmlnLmdldGlu
aSgiY3VzdG9tIikgPT0gIjEiCisKKyAgICBkZWYgdGVzdF9hYnNvbHV0ZV93aW4zMl9wYXRoKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZW1wX2NmZ19maWxlID0gdGVzdGRpci5tYWtlZmlsZSgi
LmNmZyIsIGN1c3RvbT0iIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBhZGRv
cHRzID0gLS12ZXJzaW9uCisgICAgICAgICIiIikKKyAgICAgICAgZnJvbSBvcy5wYXRoIGltcG9y
dCBub3JtcGF0aAorICAgICAgICB0ZW1wX2NmZ19maWxlID0gbm9ybXBhdGgoc3RyKHRlbXBfY2Zn
X2ZpbGUpKQorICAgICAgICByZXQgPSBweXRlc3QubWFpbigiLWMgIiArIHRlbXBfY2ZnX2ZpbGUp
CisgICAgICAgIGFzc2VydCByZXQgPT0gX3B5dGVzdC5tYWluLkVYSVRfT0sKKworCitjbGFzcyBU
ZXN0Q29uZmlnQVBJKG9iamVjdCk6CisgICAgZGVmIHRlc3RfY29uZmlnX3RyYWNlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAg
dmFsdWVzID0gW10KKyAgICAgICAgY29uZmlnLnRyYWNlLnJvb3Quc2V0d3JpdGVyKHZhbHVlcy5h
cHBlbmQpCisgICAgICAgIGNvbmZpZy50cmFjZSgiaGVsbG8iKQorICAgICAgICBhc3NlcnQgbGVu
KHZhbHVlcykgPT0gMQorICAgICAgICBhc3NlcnQgdmFsdWVzWzBdID09ICJoZWxsbyBbY29uZmln
XVxuIgorCisgICAgZGVmIHRlc3RfY29uZmlnX2dldG9wdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0taGVs
bG8iLCAiLVgiLCBkZXN0PSJoZWxsbyIpCisgICAgICAgICIiIikKKyAgICAgICAgY29uZmlnID0g
dGVzdGRpci5wYXJzZWNvbmZpZygiLS1oZWxsbz10aGlzIikKKyAgICAgICAgZm9yIHggaW4gKCJo
ZWxsbyIsICItLWhlbGxvIiwgIi1YIik6CisgICAgICAgICAgICBhc3NlcnQgY29uZmlnLmdldG9w
dGlvbih4KSA9PSAidGhpcyIKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAiY29u
ZmlnLmdldG9wdGlvbigncXdlcXdlJykiKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZignc3lz
LnZlcnNpb25faW5mb1swXSA8IDMnKQorICAgIGRlZiB0ZXN0X2NvbmZpZ19nZXRvcHRpb25fdW5p
Y29kZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworICAg
ICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBw
YXJzZXIuYWRkb3B0aW9uKCctLWhlbGxvJywgdHlwZT1zdHIpCisgICAgICAgICIiIikKKyAgICAg
ICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygnLS1oZWxsbz10aGlzJykKKyAgICAgICAg
YXNzZXJ0IGNvbmZpZy5nZXRvcHRpb24oJ2hlbGxvJykgPT0gJ3RoaXMnCisKKyAgICBkZWYgdGVz
dF9jb25maWdfZ2V0dmFsdWVvcnNraXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGNvbmZpZyA9
IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lw
LkV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAiY29uZmlnLmdldHZhbHVlb3Jza2lw
KCdoZWxsbycpIikKKyAgICAgICAgdmVyYm9zZSA9IGNvbmZpZy5nZXR2YWx1ZW9yc2tpcCgidmVy
Ym9zZSIpCisgICAgICAgIGFzc2VydCB2ZXJib3NlID09IGNvbmZpZy5vcHRpb24udmVyYm9zZQor
CisgICAgZGVmIHRlc3RfY29uZmlnX2dldHZhbHVlb3Jza2lwX05vbmUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCIt
LWhlbGxvIikKKyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29u
ZmlnKCkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lwLkV4Y2VwdGlvbik6
CisgICAgICAgICAgICBjb25maWcuZ2V0dmFsdWVvcnNraXAoJ2hlbGxvJykKKworICAgIGRlZiB0
ZXN0X2dldG9wdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5w
YXJzZWNvbmZpZygpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAg
ICAgICAgICAgIGNvbmZpZy5nZXR2YWx1ZSgneCcpCisgICAgICAgIGFzc2VydCBjb25maWcuZ2V0
b3B0aW9uKCJ4IiwgMSkgPT0gMQorCisgICAgZGVmIHRlc3RfZ2V0Y29uZnRlc3RfcGF0aGxpc3Qo
c2VsZiwgdGVzdGRpciwgdG1wZGlyKToKKyAgICAgICAgc29tZXBhdGggPSB0bXBkaXIuam9pbigi
eCIsICJ5IiwgInoiKQorICAgICAgICBwID0gdG1wZGlyLmpvaW4oImNvbmZ0ZXN0LnB5IikKKyAg
ICAgICAgcC53cml0ZSgicGF0aGxpc3QgPSBbJy4nLCAlcl0iICUgc3RyKHNvbWVwYXRoKSkKKyAg
ICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZShwKQorICAgICAgICBhc3NlcnQg
Y29uZmlnLl9nZXRjb25mdGVzdF9wYXRobGlzdCgnbm90ZXhpc3QnLCBwYXRoPXRtcGRpcikgaXMg
Tm9uZQorICAgICAgICBwbCA9IGNvbmZpZy5fZ2V0Y29uZnRlc3RfcGF0aGxpc3QoJ3BhdGhsaXN0
JywgcGF0aD10bXBkaXIpCisgICAgICAgIHByaW50KHBsKQorICAgICAgICBhc3NlcnQgbGVuKHBs
KSA9PSAyCisgICAgICAgIGFzc2VydCBwbFswXSA9PSB0bXBkaXIKKyAgICAgICAgYXNzZXJ0IHBs
WzFdID09IHNvbWVwYXRoCisKKyAgICBkZWYgdGVzdF9hZGRpbmkoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJteW5hbWUi
LCAibXkgbmV3IGluaSB2YWx1ZSIpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtl
aW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIG15bmFtZT1oZWxsbwor
ICAgICAgICAiIiIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAg
ICAgICB2YWwgPSBjb25maWcuZ2V0aW5pKCJteW5hbWUiKQorICAgICAgICBhc3NlcnQgdmFsID09
ICJoZWxsbyIKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBjb25maWcuZ2V0aW5p
LCAnb3RoZXInKQorCisgICAgZGVmIHRlc3RfYWRkaW5pX3BhdGhsaXN0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgicGF0
aHMiLCAibXkgbmV3IGluaSB2YWx1ZSIsIHR5cGU9InBhdGhsaXN0IikKKyAgICAgICAgICAgICAg
ICBwYXJzZXIuYWRkaW5pKCJhYmMiLCAiYWJjIHZhbHVlIikKKyAgICAgICAgIiIiKQorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAg
ICAgIHBhdGhzPWhlbGxvIHdvcmxkL3N1Yi5weQorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZp
ZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICB2YWx1ZXMgPSBjb25maWcuZ2V0aW5p
KCJwYXRocyIpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAyCisgICAgICAgIGFzc2Vy
dCB2YWx1ZXNbMF0gPT0gcC5kaXJwYXRoKCdoZWxsbycpCisgICAgICAgIGFzc2VydCB2YWx1ZXNb
MV0gPT0gcC5kaXJwYXRoKCd3b3JsZC9zdWIucHknKQorICAgICAgICBweXRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIGNvbmZpZy5nZXRpbmksICdvdGhlcicpCisKKyAgICBkZWYgdGVzdF9hZGRpbmlf
YXJncyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAg
IHBhcnNlci5hZGRpbmkoImFyZ3MiLCAibmV3IGFyZ3MiLCB0eXBlPSJhcmdzIikKKyAgICAgICAg
ICAgICAgICBwYXJzZXIuYWRkaW5pKCJhMiIsICIiLCAiYXJncyIsIGRlZmF1bHQ9IjEgMiAzIi5z
cGxpdCgpKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAg
ICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBhcmdzPTEyMyAiMTIzIGhlbGxvIiAidGhpcyIK
KyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAg
ICAgICAgdmFsdWVzID0gY29uZmlnLmdldGluaSgiYXJncyIpCisgICAgICAgIGFzc2VydCBsZW4o
dmFsdWVzKSA9PSAzCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyIxMjMiLCAiMTIzIGhlbGxv
IiwgInRoaXMiXQorICAgICAgICB2YWx1ZXMgPSBjb25maWcuZ2V0aW5pKCJhMiIpCisgICAgICAg
IGFzc2VydCB2YWx1ZXMgPT0gbGlzdCgiMTIzIikKKworICAgIGRlZiB0ZXN0X2FkZGluaV9saW5l
bGlzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAg
IHBhcnNlci5hZGRpbmkoInh5IiwgIiIsIHR5cGU9ImxpbmVsaXN0IikKKyAgICAgICAgICAgICAg
ICBwYXJzZXIuYWRkaW5pKCJhMiIsICIiLCAibGluZWxpc3QiKQorICAgICAgICAiIiIpCisgICAg
ICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAg
ICB4eT0gMTIzIDM0NQorICAgICAgICAgICAgICAgIHNlY29uZCBsaW5lCisgICAgICAgICIiIikK
KyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIHZhbHVlcyA9
IGNvbmZpZy5nZXRpbmkoInh5IikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKKyAg
ICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIjEyMyAzNDUiLCAic2Vjb25kIGxpbmUiXQorICAgICAg
ICB2YWx1ZXMgPSBjb25maWcuZ2V0aW5pKCJhMiIpCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0g
W10KKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc3RyX3ZhbCwgYm9vbF92YWwnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdUcnVlJywgVHJ1ZSksICgnbm8nLCBGYWxz
ZSksICgnbm8taW5pJywgVHJ1ZSldKQorICAgIGRlZiB0ZXN0X2FkZGluaV9ib29sKHNlbGYsIHRl
c3RkaXIsIHN0cl92YWwsIGJvb2xfdmFsKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
IiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAg
ICAgICAgIHBhcnNlci5hZGRpbmkoInN0cmlwIiwgIiIsIHR5cGU9ImJvb2wiLCBkZWZhdWx0PVRy
dWUpCisgICAgICAgICIiIikKKyAgICAgICAgaWYgc3RyX3ZhbCAhPSAnbm8taW5pJzoKKyAgICAg
ICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgICAgICBbcHl0ZXN0XQorICAg
ICAgICAgICAgICAgIHN0cmlwPSVzCisgICAgICAgICAgICAiIiIgJSBzdHJfdmFsKQorICAgICAg
ICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5n
ZXRpbmkoInN0cmlwIikgaXMgYm9vbF92YWwKKworICAgIGRlZiB0ZXN0X2FkZGluaXZhbHVlX2xp
bmVfZXhpc3Rpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0
KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAg
ICAgICAgICBwYXJzZXIuYWRkaW5pKCJ4eSIsICIiLCB0eXBlPSJsaW5lbGlzdCIpCisgICAgICAg
ICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0K
KyAgICAgICAgICAgIHh5PSAxMjMKKyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0
ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgdmFsdWVzID0gY29uZmlnLmdldGluaSgieHkiKQor
ICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICBhc3NlcnQgdmFsdWVzID09
IFsiMTIzIl0KKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoInh5IiwgIjQ1NiIpCisg
ICAgICAgIHZhbHVlcyA9IGNvbmZpZy5nZXRpbmkoInh5IikKKyAgICAgICAgYXNzZXJ0IGxlbih2
YWx1ZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIjEyMyIsICI0NTYiXQorCisg
ICAgZGVmIHRlc3RfYWRkaW5pdmFsdWVfbGluZV9uZXcoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJ4eSIsICIiLCB0eXBl
PSJsaW5lbGlzdCIpCisgICAgICAgICIiIikKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJz
ZWNvbmZpZygpCisgICAgICAgIGFzc2VydCBub3QgY29uZmlnLmdldGluaSgieHkiKQorICAgICAg
ICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgieHkiLCAiNDU2IikKKyAgICAgICAgdmFsdWVzID0g
Y29uZmlnLmdldGluaSgieHkiKQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAg
ICAgICBhc3NlcnQgdmFsdWVzID09IFsiNDU2Il0KKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVl
X2xpbmUoInh5IiwgIjEyMyIpCisgICAgICAgIHZhbHVlcyA9IGNvbmZpZy5nZXRpbmkoInh5IikK
KyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9
PSBbIjQ1NiIsICIxMjMiXQorCisgICAgZGVmIHRlc3RfY29uZmN1dGRpcl9jaGVja19pc2Rpcihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiR2l2ZSBhbiBlcnJvciBpZiAtLWNvbmZjdXRkaXIg
aXMgbm90IGEgdmFsaWQgZGlyZWN0b3J5ICgjMjA3OCkiIiIKKyAgICAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKHB5dGVzdC5Vc2FnZUVycm9yKToKKyAgICAgICAgICAgIHRlc3RkaXIucGFyc2Vjb25m
aWcoJy0tY29uZmN1dGRpcicsIHRlc3RkaXIudG1wZGlyLmpvaW4oJ2ZpbGUnKS5lbnN1cmUoZmls
ZT0xKSkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5Vc2FnZUVycm9yKToKKyAg
ICAgICAgICAgIHRlc3RkaXIucGFyc2Vjb25maWcoJy0tY29uZmN1dGRpcicsIHRlc3RkaXIudG1w
ZGlyLmpvaW4oJ2luZXhpc3RhbnQnKSkKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNv
bmZpZygnLS1jb25mY3V0ZGlyJywgdGVzdGRpci50bXBkaXIuam9pbignZGlyJykuZW5zdXJlKGRp
cj0xKSkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5nZXRvcHRpb24oJ2NvbmZjdXRkaXInKSA9PSBz
dHIodGVzdGRpci50bXBkaXIuam9pbignZGlyJykpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ25hbWVzLCBleHBlY3RlZCcsIFsKKyAgICAgICAgKFsnYmFyLnB5J10sIFsnYmFyJ10p
LAorICAgICAgICAoWydmb28nLCAnYmFyLnB5J10sIFtdKSwKKyAgICAgICAgKFsnZm9vJywgJ2Jh
ci5weWMnXSwgW10pLAorICAgICAgICAoWydmb28nLCAnX19pbml0X18ucHknXSwgWydmb28nXSks
CisgICAgICAgIChbJ2ZvbycsICdiYXInLCAnX19pbml0X18ucHknXSwgW10pLAorICAgIF0pCisg
ICAgZGVmIHRlc3RfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMoc2VsZiwgbmFtZXMsIGV4cGVjdGVk
KToKKyAgICAgICAgYXNzZXJ0IGxpc3QoX2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVzKFsnLycuam9p
bihuYW1lcyldKSkgPT0gZXhwZWN0ZWQKKworCitjbGFzcyBUZXN0Q29uZmlnRnJvbWRpY3Rhcmdz
KG9iamVjdCk6CisgICAgZGVmIHRlc3RfYmFzaWNfYmVoYXZpb3Ioc2VsZik6CisgICAgICAgIGZy
b20gX3B5dGVzdC5jb25maWcgaW1wb3J0IENvbmZpZworICAgICAgICBvcHRpb25fZGljdCA9IHsK
KyAgICAgICAgICAgICd2ZXJib3NlJzogNDQ0LAorICAgICAgICAgICAgJ2Zvbyc6ICdiYXInLAor
ICAgICAgICAgICAgJ2NhcHR1cmUnOiAnbm8nLAorICAgICAgICB9CisgICAgICAgIGFyZ3MgPSBb
J2EnLCAnYiddCisKKyAgICAgICAgY29uZmlnID0gQ29uZmlnLmZyb21kaWN0YXJncyhvcHRpb25f
ZGljdCwgYXJncykKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKToK
KyAgICAgICAgICAgIGNvbmZpZy5wYXJzZShbJ3Nob3VsZCByZWZ1c2UgdG8gcGFyc2UgYWdhaW4n
XSkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24udmVyYm9zZSA9PSA0NDQKKyAgICAgICAg
YXNzZXJ0IGNvbmZpZy5vcHRpb24uZm9vID09ICdiYXInCisgICAgICAgIGFzc2VydCBjb25maWcu
b3B0aW9uLmNhcHR1cmUgPT0gJ25vJworICAgICAgICBhc3NlcnQgY29uZmlnLmFyZ3MgPT0gYXJn
cworCisgICAgZGVmIHRlc3Rfb3JpZ2FyZ3Moc2VsZik6CisgICAgICAgICIiIlNob3cgdGhhdCBm
cm9tZGljdGFyZ3MgY2FuIGhhbmRsZSBhcmdzIGluIHRoZWlyICJvcmlnIiBmb3JtYXQiIiIKKyAg
ICAgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgQ29uZmlnCisgICAgICAgIG9wdGlvbl9k
aWN0ID0ge30KKyAgICAgICAgYXJncyA9IFsnLXZ2dnYnLCAnLXMnLCAnYScsICdiJ10KKworICAg
ICAgICBjb25maWcgPSBDb25maWcuZnJvbWRpY3RhcmdzKG9wdGlvbl9kaWN0LCBhcmdzKQorICAg
ICAgICBhc3NlcnQgY29uZmlnLmFyZ3MgPT0gWydhJywgJ2InXQorICAgICAgICBhc3NlcnQgY29u
ZmlnLl9vcmlnYXJncyA9PSBhcmdzCisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLnZlcmJv
c2UgPT0gNAorICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5jYXB0dXJlID09ICdubycKKwor
ICAgIGRlZiB0ZXN0X2luaWZpbGVuYW1lKHNlbGYsIHRtcGRpcik6CisgICAgICAgIHRtcGRpci5q
b2luKCJmb28vYmFyLmluaSIpLmVuc3VyZSgpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIi
IgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZQorICAgICAg
ICAiIiIpKQorCisgICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IENvbmZpZworICAg
ICAgICBpbmlmaWxlID0gJy4uLy4uL2Zvby9iYXIuaW5pJworICAgICAgICBvcHRpb25fZGljdCA9
IHsKKyAgICAgICAgICAgICdpbmlmaWxlbmFtZSc6IGluaWZpbGUsCisgICAgICAgICAgICAnY2Fw
dHVyZSc6ICdubycsCisgICAgICAgIH0KKworICAgICAgICBjd2QgPSB0bXBkaXIuam9pbignYS9i
JykKKyAgICAgICAgY3dkLmpvaW4oJ3B5dGVzdC5pbmknKS5lbnN1cmUoKS53cml0ZShfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBuYW1l
ID0gd3JvbmctdmFsdWUKKyAgICAgICAgICAgIHNob3VsZF9ub3RfYmVfc2V0ID0gdHJ1ZQorICAg
ICAgICAiIiIpKQorICAgICAgICB3aXRoIGN3ZC5lbnN1cmUoZGlyPVRydWUpLmFzX2N3ZCgpOgor
ICAgICAgICAgICAgY29uZmlnID0gQ29uZmlnLmZyb21kaWN0YXJncyhvcHRpb25fZGljdCwgKCkp
CisKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5hcmdzID09IFtzdHIoY3dkKV0KKyAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5vcHRpb24uaW5pZmlsZW5hbWUgPT0gaW5pZmlsZQorICAgICAgICBhc3NlcnQg
Y29uZmlnLm9wdGlvbi5jYXB0dXJlID09ICdubycKKworICAgICAgICAjIHRoaXMgaW5kaWNhdGVz
IHRoaXMgaXMgdGhlIGZpbGUgdXNlZCBmb3IgZ2V0dGluZyBjb25maWd1cmF0aW9uIHZhbHVlcwor
ICAgICAgICBhc3NlcnQgY29uZmlnLmluaWZpbGUgPT0gaW5pZmlsZQorICAgICAgICBhc3NlcnQg
Y29uZmlnLmluaWNmZy5nZXQoJ25hbWUnKSA9PSAndmFsdWUnCisgICAgICAgIGFzc2VydCBjb25m
aWcuaW5pY2ZnLmdldCgnc2hvdWxkX25vdF9iZV9zZXQnKSBpcyBOb25lCisKKworZGVmIHRlc3Rf
b3B0aW9uc19vbl9zbWFsbF9maWxlX2RvX25vdF9ibG93X3VwKHRlc3RkaXIpOgorICAgIGRlZiBy
dW5maWxldGVzdChvcHRzKToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCpv
cHRzKQorICAgICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNv
bWVzKCkKKyAgICAgICAgYXNzZXJ0IGZhaWxlZCA9PSAyCisgICAgICAgIGFzc2VydCBza2lwcGVk
ID09IHBhc3NlZCA9PSAwCisgICAgcGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgZGVmIHRlc3RfZjEoKTogYXNzZXJ0IDAKKyAgICAgICAgZGVmIHRlc3RfZjIoKTogYXNzZXJ0
IDAKKyAgICAiIiIpCisKKyAgICBmb3Igb3B0cyBpbiAoW10sIFsnLWwnXSwgWyctcyddLCBbJy0t
dGI9bm8nXSwgWyctLXRiPXNob3J0J10sCisgICAgICAgICAgICAgICAgIFsnLS10Yj1sb25nJ10s
IFsnLS1mdWxsdHJhY2UnXSwKKyAgICAgICAgICAgICAgICAgWyctLXRyYWNlY29uZmlnJ10sIFsn
LXYnXSwgWyctdicsICctdiddKToKKyAgICAgICAgcnVuZmlsZXRlc3Qob3B0cyArIFtwYXRoXSkK
KworCitkZWYgdGVzdF9wcmVwYXJzZV9vcmRlcmluZ193aXRoX3NldHVwdG9vbHModGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgorICAgIHBrZ19yZXNvdXJjZXMgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJw
a2dfcmVzb3VyY2VzIikKKworICAgIGRlZiBteV9pdGVyKG5hbWUpOgorICAgICAgICBhc3NlcnQg
bmFtZSA9PSAicHl0ZXN0MTEiCisKKyAgICAgICAgY2xhc3MgRGlzdChvYmplY3QpOgorICAgICAg
ICAgICAgcHJvamVjdF9uYW1lID0gJ3NwYW0nCisgICAgICAgICAgICB2ZXJzaW9uID0gJzEuMCcK
KworICAgICAgICAgICAgZGVmIF9nZXRfbWV0YWRhdGEoc2VsZiwgbmFtZSk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIFsnZm9vLnR4dCxzaGEyNTY9YWJjLDEyMyddCisKKyAgICAgICAgY2xhc3Mg
RW50cnlQb2ludChvYmplY3QpOgorICAgICAgICAgICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCisg
ICAgICAgICAgICBkaXN0ID0gRGlzdCgpCisKKyAgICAgICAgICAgIGRlZiBsb2FkKHNlbGYpOgor
ICAgICAgICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3QpOgorICAgICAgICAgICAg
ICAgICAgICB4ID0gNDIKKyAgICAgICAgICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2luKCkKKwor
ICAgICAgICByZXR1cm4gaXRlcihbRW50cnlQb2ludCgpXSkKKworICAgIG1vbmtleXBhdGNoLnNl
dGF0dHIocGtnX3Jlc291cmNlcywgJ2l0ZXJfZW50cnlfcG9pbnRzJywgbXlfaXRlcikKKyAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSAibXl0ZXN0
cGx1Z2luIiwKKyAgICAiIiIpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfUExVR0lO
UyIsICJteXRlc3RwbHVnaW4iKQorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQor
ICAgIHBsdWdpbiA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigibXl0ZXN0cGx1Z2lu
IikKKyAgICBhc3NlcnQgcGx1Z2luLnggPT0gNDIKKworCitkZWYgdGVzdF9zZXR1cHRvb2xzX2lt
cG9ydGVycm9yX2lzc3VlMTQ3OSh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgcGtnX3Jlc291
cmNlcyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNvdXJjZXMiKQorCisgICAgZGVmIG15
X2l0ZXIobmFtZSk6CisgICAgICAgIGFzc2VydCBuYW1lID09ICJweXRlc3QxMSIKKworICAgICAg
ICBjbGFzcyBEaXN0KG9iamVjdCk6CisgICAgICAgICAgICBwcm9qZWN0X25hbWUgPSAnc3BhbScK
KyAgICAgICAgICAgIHZlcnNpb24gPSAnMS4wJworCisgICAgICAgICAgICBkZWYgX2dldF9tZXRh
ZGF0YShzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gWydmb28udHh0LHNoYTI1
Nj1hYmMsMTIzJ10KKworICAgICAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6CisgICAgICAg
ICAgICBuYW1lID0gIm15dGVzdHBsdWdpbiIKKyAgICAgICAgICAgIGRpc3QgPSBEaXN0KCkKKwor
ICAgICAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0
RXJyb3IoIkRvbid0IGhpZGUgbWUhIikKKworICAgICAgICByZXR1cm4gaXRlcihbRW50cnlQb2lu
dCgpXSkKKworICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgJ2l0ZXJfZW50
cnlfcG9pbnRzJywgbXlfaXRlcikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3Ip
OgorICAgICAgICB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ2Jsb2NrX2l0JywgW1RydWUsIEZhbHNlXSkKK2RlZiB0ZXN0X3BsdWdpbl9wcmVwYXJz
ZV9wcmV2ZW50c19zZXR1cHRvb2xzX2xvYWRpbmcodGVzdGRpciwgbW9ua2V5cGF0Y2gsIGJsb2Nr
X2l0KToKKyAgICBwa2dfcmVzb3VyY2VzID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGtnX3Jlc291
cmNlcyIpCisKKyAgICBwbHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyID0gb2JqZWN0KCkKKworICAg
IGRlZiBteV9pdGVyKG5hbWUpOgorICAgICAgICBhc3NlcnQgbmFtZSA9PSAicHl0ZXN0MTEiCisK
KyAgICAgICAgY2xhc3MgRGlzdChvYmplY3QpOgorICAgICAgICAgICAgcHJvamVjdF9uYW1lID0g
J3NwYW0nCisgICAgICAgICAgICB2ZXJzaW9uID0gJzEuMCcKKworICAgICAgICAgICAgZGVmIF9n
ZXRfbWV0YWRhdGEoc2VsZiwgbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFsnZm9vLnR4
dCxzaGEyNTY9YWJjLDEyMyddCisKKyAgICAgICAgY2xhc3MgRW50cnlQb2ludChvYmplY3QpOgor
ICAgICAgICAgICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCisgICAgICAgICAgICBkaXN0ID0gRGlz
dCgpCisKKyAgICAgICAgICAgIGRlZiBsb2FkKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVy
biBwbHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyCisKKyAgICAgICAgcmV0dXJuIGl0ZXIoW0VudHJ5
UG9pbnQoKV0pCisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBrZ19yZXNvdXJjZXMsICdpdGVy
X2VudHJ5X3BvaW50cycsIG15X2l0ZXIpCisgICAgYXJncyA9ICgiLXAiLCAibm86bXl0ZXN0cGx1
Z2luIikgaWYgYmxvY2tfaXQgZWxzZSAoKQorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25m
aWcoKmFyZ3MpCisgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIuaW1wb3J0X3BsdWdpbigibXl0ZXN0
cGx1Z2luIikKKyAgICBpZiBibG9ja19pdDoKKyAgICAgICAgYXNzZXJ0ICJteXRlc3RwbHVnaW4i
IG5vdCBpbiBzeXMubW9kdWxlcworICAgICAgICBhc3NlcnQgY29uZmlnLnBsdWdpbm1hbmFnZXIu
Z2V0X3BsdWdpbignbXl0ZXN0cGx1Z2luJykgaXMgTm9uZQorICAgIGVsc2U6CisgICAgICAgIGFz
c2VydCBjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCdteXRlc3RwbHVnaW4nKSBpcyBw
bHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyCisKKworZGVmIHRlc3RfY21kbGluZV9wcm9jZXNzYXJn
c19zaW1wbGUodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAg
IGRlZiBweXRlc3RfY21kbGluZV9wcmVwYXJzZShhcmdzKToKKyAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItaCIpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKnB5dGVzdCoiLAorICAg
ICAgICAiKi1oKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9pbnZhbGlkX29wdGlvbnNfc2hvd19l
eHRyYV9pbmZvcm1hdGlvbih0ZXN0ZGlyKToKKyAgICAiIiJkaXNwbGF5IGV4dHJhIGluZm9ybWF0
aW9uIHdoZW4gcHl0ZXN0IGV4aXRzIGR1ZSB0byB1bnJlY29nbml6ZWQKKyAgICBvcHRpb25zIGlu
IHRoZSBjb21tYW5kLWxpbmUiIiIKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgIFtw
eXRlc3RdCisgICAgICAgIGFkZG9wdHMgPSAtLWludmFsaWQtb3B0aW9uCisgICAgIiIiKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hf
bGluZXMoWworICAgICAgICAiKmVycm9yOiB1bnJlY29nbml6ZWQgYXJndW1lbnRzOiAtLWludmFs
aWQtb3B0aW9uKiIsCisgICAgICAgICIqICBpbmlmaWxlOiAlcyoiICUgdGVzdGRpci50bXBkaXIu
am9pbigndG94LmluaScpLAorICAgICAgICAiKiAgcm9vdGRpcjogJXMqIiAlIHRlc3RkaXIudG1w
ZGlyLAorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhcmdzJywgWworICAg
IFsnZGlyMScsICdkaXIyJywgJy12J10sCisgICAgWydkaXIxJywgJy12JywgJ2RpcjInXSwKKyAg
ICBbJ2RpcjInLCAnLXYnLCAnZGlyMSddLAorICAgIFsnLXYnLCAnZGlyMicsICdkaXIxJ10sCitd
KQorZGVmIHRlc3RfY29uc2lkZXJfYXJnc19hZnRlcl9vcHRpb25zX2Zvcl9yb290ZGlyX2FuZF9p
bmlmaWxlKHRlc3RkaXIsIGFyZ3MpOgorICAgICIiIgorICAgIENvbnNpZGVyIGFsbCBhcmd1bWVu
dHMgaW4gdGhlIGNvbW1hbmQtbGluZSBmb3Igcm9vdGRpciBhbmQgaW5pZmlsZQorICAgIGRpc2Nv
dmVyeSwgZXZlbiBpZiB0aGV5IGhhcHBlbiB0byBvY2N1ciBhZnRlciBhbiBvcHRpb24uICM5NDkK
KyAgICAiIiIKKyAgICAjIHJlcGxhY2UgImRpcjEiIGFuZCAiZGlyMiIgZnJvbSAiYXJncyIgaW50
byB0aGVpciByZWFsIGRpcmVjdG9yeQorICAgIHJvb3QgPSB0ZXN0ZGlyLnRtcGRpci5ta2Rpcign
bXlyb290JykKKyAgICBkMSA9IHJvb3QubWtkaXIoJ2RpcjEnKQorICAgIGQyID0gcm9vdC5ta2Rp
cignZGlyMicpCisgICAgZm9yIGksIGFyZyBpbiBlbnVtZXJhdGUoYXJncyk6CisgICAgICAgIGlm
IGFyZyA9PSAnZGlyMSc6CisgICAgICAgICAgICBhcmdzW2ldID0gZDEKKyAgICAgICAgZWxpZiBh
cmcgPT0gJ2RpcjInOgorICAgICAgICAgICAgYXJnc1tpXSA9IGQyCisgICAgd2l0aCByb290LmFz
X2N3ZCgpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqYXJncykKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqcm9vdGRpcjogKm15cm9vdCwgaW5pZmlsZTon
XSkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyIpCitk
ZWYgdGVzdF90b29sb25nYXJnc19pc3N1ZTIyNCh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLW0iLCAiaGVsbG8iICogNTAwKQorICAgIGFzc2VydCByZXN1bHQucmV0
ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2RlZiB0ZXN0X2NvbmZpZ19pbl9zdWJkaXJl
Y3RvcnlfY29sb25fY29tbWFuZF9saW5lX2lzc3VlMjE0OCh0ZXN0ZGlyKToKKyAgICBjb25mdGVz
dF9zb3VyY2UgPSAnJycKKyAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAg
ICAgICAgICAgIHBhcnNlci5hZGRpbmkoJ2ZvbycsICdmb28nKQorICAgICcnJworCisgICAgdGVz
dGRpci5tYWtlZmlsZSgnLmluaScsICoqeworICAgICAgICAncHl0ZXN0JzogJ1tweXRlc3RdXG5m
b28gPSByb290JywKKyAgICAgICAgJ3N1YmRpci9weXRlc3QnOiAnW3B5dGVzdF1cbmZvbyA9IHN1
YmRpcicsCisgICAgfSkKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgJ2Nv
bmZ0ZXN0JzogY29uZnRlc3Rfc291cmNlLAorICAgICAgICAnc3ViZGlyL2NvbmZ0ZXN0JzogY29u
ZnRlc3Rfc291cmNlLAorICAgICAgICAnc3ViZGlyL3Rlc3RfZm9vJzogJycnCisgICAgICAgICAg
ICBkZWYgdGVzdF9mb28ocHl0ZXN0Y29uZmlnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcHl0
ZXN0Y29uZmlnLmdldGluaSgnZm9vJykgPT0gJ3N1YmRpcicKKyAgICAgICAgJycnfSkKKworICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCdzdWJkaXIvdGVzdF9mb28ucHk6OnRlc3RfZm9v
JykKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3Rfbm90aWZ5X2V4Y2Vw
dGlvbih0ZXN0ZGlyLCBjYXBmZCk6CisgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygp
CisgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJhaXNlIFZhbHVlRXJy
b3IoMSkiKQorICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8pCisgICAgb3V0LCBl
cnIgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgIlZhbHVlRXJyb3IiIGluIGVycgor
CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Io
c2VsZiwgZXhjcmVwcik6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgY29uZmlnLnBs
dWdpbm1hbmFnZXIucmVnaXN0ZXIoQSgpKQorICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4
Y2luZm8pCisgICAgb3V0LCBlcnIgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgbm90
IGVycgorCisKK2RlZiB0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdF9sYXN0X29yZGVyaW5nKHRl
c3RkaXIpOgorICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGdldF9jb25maWcKKyAgICBw
bSA9IGdldF9jb25maWcoKS5wbHVnaW5tYW5hZ2VyCisKKyAgICBjbGFzcyBNeShvYmplY3QpOgor
ICAgICAgICBkZWYgcHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZik6CisgICAgICAg
ICAgICBwYXNzCisKKyAgICBtID0gTXkoKQorICAgIHBtLnJlZ2lzdGVyKG0pCisgICAgaGMgPSBw
bS5ob29rLnB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzCisgICAgdmFsdWVzID0gaGMuX25v
bndyYXBwZXJzICsgaGMuX3dyYXBwZXJzCisgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICJfcHl0
ZXN0LmNvbmZpZyIsCisgICAgICAgICd0ZXN0X2NvbmZpZycsCisgICAgICAgICdfcHl0ZXN0LmNh
cHR1cmUnLAorICAgIF0KKyAgICBhc3NlcnQgW3guZnVuY3Rpb24uX19tb2R1bGVfXyBmb3IgeCBp
biB2YWx1ZXNdID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfZ2V0X3BsdWdpbl9zcGVjc19hc19s
aXN0KCk6CisgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgX2dldF9wbHVnaW5fc3BlY3Nf
YXNfbGlzdAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuVXNhZ2VFcnJvcik6CisgICAg
ICAgIF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qoc2V0KFsnZm9vJ10pKQorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhweXRlc3QuVXNhZ2VFcnJvcik6CisgICAgICAgIF9nZXRfcGx1Z2luX3NwZWNz
X2FzX2xpc3QoZGljdCgpKQorCisgICAgYXNzZXJ0IF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qo
Tm9uZSkgPT0gW10KKyAgICBhc3NlcnQgX2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdCgnJykgPT0g
W10KKyAgICBhc3NlcnQgX2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdCgnZm9vJykgPT0gWydmb28n
XQorICAgIGFzc2VydCBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KCdmb28sYmFyJykgPT0gWydm
b28nLCAnYmFyJ10KKyAgICBhc3NlcnQgX2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdChbJ2Zvbycs
ICdiYXInXSkgPT0gWydmb28nLCAnYmFyJ10KKyAgICBhc3NlcnQgX2dldF9wbHVnaW5fc3BlY3Nf
YXNfbGlzdCgoJ2ZvbycsICdiYXInKSkgPT0gWydmb28nLCAnYmFyJ10KKworCitjbGFzcyBUZXN0
V2FybmluZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3dhcm5fY29uZmlnKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAg
ICAgICAgIGNvbmZpZy53YXJuKCJDMSIsICJoZWxsbyIpCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2xvZ3dhcm5pbmcoY29kZSwgbWVzc2FnZSk6CisgICAgICAgICAgICAgICAgaWYgbWVzc2FnZSA9
PSAiaGVsbG8iIGFuZCBjb2RlID09ICJDMSI6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoMSkKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9wcm9wZXIocHl0ZXN0Y29uZmlnKToKKyAgICAgICAgICAgICAg
ICBpbXBvcnQgY29uZnRlc3QKKyAgICAgICAgICAgICAgICBhc3NlcnQgY29uZnRlc3QudmFsdWVz
ID09IFsxXQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRl
c3Rfd2Fybl9vbl90ZXN0X2l0ZW1fZnJvbV9yZXF1ZXN0KHNlbGYsIHRlc3RkaXIsIHJlcXVlc3Qp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeChy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0Lm5vZGUud2FybigiVDEiLCAiaGVsbG8i
KQorCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhmaXgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1k
aXNhYmxlLXB5dGVzdC13YXJuaW5ncyIpCisgICAgICAgIGFzc2VydCByZXN1bHQucGFyc2VvdXRj
b21lcygpWyJ3YXJuaW5ncyJdID4gMAorICAgICAgICBhc3NlcnQgImhlbGxvIiBub3QgaW4gcmVz
dWx0LnN0ZG91dC5zdHIoKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgPT09
Kndhcm5pbmdzIHN1bW1hcnkqPT09CisgICAgICAgICAgICAqdGVzdF93YXJuX29uX3Rlc3RfaXRl
bV9mcm9tX3JlcXVlc3QucHk6OnRlc3RfaGVsbG8qCisgICAgICAgICAgICAqaGVsbG8qCisgICAg
ICAgICIiIikKKworCitjbGFzcyBUZXN0Um9vdGRpcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X3Np
bXBsZV9ub2luaShzZWxmLCB0bXBkaXIpOgorICAgICAgICBhc3NlcnQgZ2V0X2NvbW1vbl9hbmNl
c3RvcihbdG1wZGlyXSkgPT0gdG1wZGlyCisgICAgICAgIGEgPSB0bXBkaXIubWtkaXIoImEiKQor
ICAgICAgICBhc3NlcnQgZ2V0X2NvbW1vbl9hbmNlc3RvcihbYSwgdG1wZGlyXSkgPT0gdG1wZGly
CisgICAgICAgIGFzc2VydCBnZXRfY29tbW9uX2FuY2VzdG9yKFt0bXBkaXIsIGFdKSA9PSB0bXBk
aXIKKyAgICAgICAgd2l0aCB0bXBkaXIuYXNfY3dkKCk6CisgICAgICAgICAgICBhc3NlcnQgZ2V0
X2NvbW1vbl9hbmNlc3RvcihbXSkgPT0gdG1wZGlyCisgICAgICAgICAgICBub19wYXRoID0gdG1w
ZGlyLmpvaW4oJ2RvZXMtbm90LWV4aXN0JykKKyAgICAgICAgICAgIGFzc2VydCBnZXRfY29tbW9u
X2FuY2VzdG9yKFtub19wYXRoXSkgPT0gdG1wZGlyCisgICAgICAgICAgICBhc3NlcnQgZ2V0X2Nv
bW1vbl9hbmNlc3Rvcihbbm9fcGF0aC5qb2luKCdhJyldKSA9PSB0bXBkaXIKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgibmFtZSIsICJzZXR1cC5jZmcgdG94LmluaSBweXRlc3QuaW5p
Ii5zcGxpdCgpKQorICAgIGRlZiB0ZXN0X3dpdGhfaW5pKHNlbGYsIHRtcGRpciwgbmFtZSk6Cisg
ICAgICAgIGluaWZpbGUgPSB0bXBkaXIuam9pbihuYW1lKQorICAgICAgICBpbmlmaWxlLndyaXRl
KCJbcHl0ZXN0XVxuIikKKworICAgICAgICBhID0gdG1wZGlyLm1rZGlyKCJhIikKKyAgICAgICAg
YiA9IGEubWtkaXIoImIiKQorICAgICAgICBmb3IgYXJncyBpbiAoW3RtcGRpcl0sIFthXSwgW2Jd
KToKKyAgICAgICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9IGRldGVybWluZV9zZXR1
cChOb25lLCBhcmdzKQorICAgICAgICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gdG1wZGlyCisgICAg
ICAgICAgICBhc3NlcnQgaW5pZmlsZSA9PSBpbmlmaWxlCisgICAgICAgIHJvb3RkaXIsIGluaWZp
bGUsIGluaWNmZyA9IGRldGVybWluZV9zZXR1cChOb25lLCBbYiwgYV0pCisgICAgICAgIGFzc2Vy
dCByb290ZGlyID09IHRtcGRpcgorICAgICAgICBhc3NlcnQgaW5pZmlsZSA9PSBpbmlmaWxlCisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm5hbWUiLCAic2V0dXAuY2ZnIHRveC5pbmki
LnNwbGl0KCkpCisgICAgZGVmIHRlc3RfcHl0ZXN0aW5pX292ZXJpZGVzX2VtcHR5X290aGVyKHNl
bGYsIHRtcGRpciwgbmFtZSk6CisgICAgICAgIGluaWZpbGUgPSB0bXBkaXIuZW5zdXJlKCJweXRl
c3QuaW5pIikKKyAgICAgICAgYSA9IHRtcGRpci5ta2RpcigiYSIpCisgICAgICAgIGEuZW5zdXJl
KG5hbWUpCisgICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9IGRldGVybWluZV9zZXR1
cChOb25lLCBbYV0pCisgICAgICAgIGFzc2VydCByb290ZGlyID09IHRtcGRpcgorICAgICAgICBh
c3NlcnQgaW5pZmlsZSA9PSBpbmlmaWxlCisKKyAgICBkZWYgdGVzdF9zZXR1cHB5X2ZhbGxiYWNr
KHNlbGYsIHRtcGRpcik6CisgICAgICAgIGEgPSB0bXBkaXIubWtkaXIoImEiKQorICAgICAgICBh
LmVuc3VyZSgic2V0dXAuY2ZnIikKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgic2V0dXAucHkiKQor
ICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwg
W2FdKQorICAgICAgICBhc3NlcnQgcm9vdGRpciA9PSB0bXBkaXIKKyAgICAgICAgYXNzZXJ0IGlu
aWZpbGUgaXMgTm9uZQorICAgICAgICBhc3NlcnQgaW5pY2ZnID09IHt9CisKKyAgICBkZWYgdGVz
dF9ub3RoaW5nKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRj
aC5jaGRpcihzdHIodG1wZGlyKSkKKyAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0g
ZGV0ZXJtaW5lX3NldHVwKE5vbmUsIFt0bXBkaXJdKQorICAgICAgICBhc3NlcnQgcm9vdGRpciA9
PSB0bXBkaXIKKyAgICAgICAgYXNzZXJ0IGluaWZpbGUgaXMgTm9uZQorICAgICAgICBhc3NlcnQg
aW5pY2ZnID09IHt9CisKKyAgICBkZWYgdGVzdF93aXRoX3NwZWNpZmljX2luaWZpbGUoc2VsZiwg
dG1wZGlyKToKKyAgICAgICAgaW5pZmlsZSA9IHRtcGRpci5lbnN1cmUoInB5dGVzdC5pbmkiKQor
ICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoaW5pZmls
ZSwgW3RtcGRpcl0pCisgICAgICAgIGFzc2VydCByb290ZGlyID09IHRtcGRpcgorCisKK2NsYXNz
IFRlc3RPdmVycmlkZUluaUFyZ3Mob2JqZWN0KToKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoIm5hbWUiLCAic2V0dXAuY2ZnIHRveC5pbmkgcHl0ZXN0LmluaSIuc3BsaXQoKSkKKyAgICBk
ZWYgdGVzdF9vdmVycmlkZV9pbmlfbmFtZXMoc2VsZiwgdGVzdGRpciwgbmFtZSk6CisgICAgICAg
IHRlc3RkaXIudG1wZGlyLmpvaW4obmFtZSkud3JpdGUocHkuc3RkLnRleHR3cmFwLmRlZGVudCgi
IiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBjdXN0b20gPSAxLjAiIiIpKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgiY3VzdG9t
IiwgIiIpIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgdGVzdF9wYXNzKHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAgaW5pX3ZhbCA9IHB5
dGVzdGNvbmZpZy5nZXRpbmkoImN1c3RvbSIpCisgICAgICAgICAgICAgICAgcHJpbnQoJ1xcbmN1
c3RvbV9vcHRpb246JXNcXG4nICUgaW5pX3ZhbCkiIiIpCisKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tb3ZlcnJpZGUtaW5pIiwgImN1c3RvbT0yLjAiLCAiLXMiKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbImN1c3RvbV9vcHRpb246Mi4wIl0pCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tb3ZlcnJpZGUtaW5pIiwgImN1c3RvbT0yLjAiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLS1vdmVycmlkZS1pbmk9Y3VzdG9tPTMuMCIsICItcyIp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiY3VzdG9tX29wdGlvbjozLjAiXSkKKworICAgIGRlZiB0ZXN0X292ZXJy
aWRlX2luaV9wYXRobGlzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAg
ICAgICAgICAgICAgIHBhcnNlci5hZGRpbmkoInBhdGhzIiwgIm15IG5ldyBpbmkgdmFsdWUiLCB0
eXBlPSJwYXRobGlzdCIpIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAg
ICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgcGF0aHM9YmxhaC5weSIiIikKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5LnBhdGgKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X3BhdGhsaXN0KHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAgY29u
ZmlnX3BhdGhzID0gcHl0ZXN0Y29uZmlnLmdldGluaSgicGF0aHMiKQorICAgICAgICAgICAgICAg
IHByaW50KGNvbmZpZ19wYXRocykKKyAgICAgICAgICAgICAgICBmb3IgY3BmIGluIGNvbmZpZ19w
YXRoczoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1xcbnVzZXJfcGF0aDolcycgJSBjcGYu
YmFzZW5hbWUpIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1vdmVy
cmlkZS1pbmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aHM9Zm9v
L2JhcjEucHkgZm9vL2JhcjIucHknLCAiLXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyJ1c2VyX3BhdGg6YmFyMS5weSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInVzZXJfcGF0aDpiYXIyLnB5Il0pCisKKyAgICBkZWYgdGVzdF9vdmVycmlk
ZV9tdWx0aXBsZV9hbmRfZGVmYXVsdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIp
OgorICAgICAgICAgICAgICAgIGFkZGluaSA9IHBhcnNlci5hZGRpbmkKKyAgICAgICAgICAgICAg
ICBhZGRpbmkoImN1c3RvbV9vcHRpb25fMSIsICIiLCBkZWZhdWx0PSJvMSIpCisgICAgICAgICAg
ICAgICAgYWRkaW5pKCJjdXN0b21fb3B0aW9uXzIiLCAiIiwgZGVmYXVsdD0ibzIiKQorICAgICAg
ICAgICAgICAgIGFkZGluaSgiY3VzdG9tX29wdGlvbl8zIiwgIiIsIGRlZmF1bHQ9RmFsc2UsIHR5
cGU9ImJvb2wiKQorICAgICAgICAgICAgICAgIGFkZGluaSgiY3VzdG9tX29wdGlvbl80IiwgIiIs
IGRlZmF1bHQ9VHJ1ZSwgdHlwZT0iYm9vbCIpIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vpbmko
IiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgY3VzdG9tX29wdGlvbl8xPWN1
c3RvbV9vcHRpb25fMQorICAgICAgICAgICAgY3VzdG9tX29wdGlvbl8yPWN1c3RvbV9vcHRpb25f
MiIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfbXVsdGlwbGVfb3B0aW9ucyhweXRlc3Rjb25maWcpOgorICAgICAgICAgICAgICAgIHByZWZp
eCA9ICJjdXN0b21fb3B0aW9uIgorICAgICAgICAgICAgICAgIGZvciB4IGluIHJhbmdlKDEsIDUp
OgorICAgICAgICAgICAgICAgICAgICBpbmlfdmFsdWU9cHl0ZXN0Y29uZmlnLmdldGluaSgiJXNf
JWQiICUgKHByZWZpeCwgeCkpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdcXG5pbmklZDol
cycgJSAoeCwgaW5pX3ZhbHVlKSkiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KAorICAgICAgICAgICAgIi0tb3ZlcnJpZGUtaW5pIiwgJ2N1c3RvbV9vcHRpb25fMT1mdWxs
ZGlyPS90bXAvdXNlcjEnLAorICAgICAgICAgICAgJ2N1c3RvbV9vcHRpb25fMj11cmw9L3RtcC91
c2VyMj9hPWImZD1lJywKKyAgICAgICAgICAgICItbyIsICdjdXN0b21fb3B0aW9uXzM9VHJ1ZScs
CisgICAgICAgICAgICAiLW8iLCAnY3VzdG9tX29wdGlvbl80PW5vJywgIi1zIikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiaW5pMTpmdWxsZGlyPS90bXAvdXNlcjEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmkyOnVybD0vdG1wL3VzZXIy
P2E9YiZkPWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmkzOlRy
dWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmk0OkZhbHNlIl0p
CisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9pbmlfdXNhZ2VfZXJyb3JfYmFkX3N0eWxlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0
ZXN0XQorICAgICAgICAgICAgeGRpc3Rfc3RyaWN0PUZhbHNlCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tb3ZlcnJpZGUtaW5pIiwgJ3hkaXN0X3N0
cmljdCBUcnVlJywgIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsi
KkVSUk9SKiAqZXhwZWN0cyBvcHRpb249dmFsdWUqIl0pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ3dpdGhfaW5pJywgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9vdmVycmlk
ZV9pbmlfaGFuZGxlZF9hc2FwKHNlbGYsIHRlc3RkaXIsIHdpdGhfaW5pKToKKyAgICAgICAgIiIi
LW8gc2hvdWxkIGJlIGhhbmRsZWQgYXMgc29vbiBhcyBwb3NzaWJsZSBhbmQgYWx3YXlzIG92ZXJy
aWRlIHdoYXQncyBpbiBpbmkgZmlsZXMgKCMyMjM4KSIiIgorICAgICAgICBpZiB3aXRoX2luaToK
KyAgICAgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgICAgICBbcHl0ZXN0
XQorICAgICAgICAgICAgICAgIHB5dGhvbl9maWxlcz10ZXN0XyoucHkKKyAgICAgICAgICAgICIi
IikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHVuaXR0ZXN0X2luaV9oYW5kbGU9IiIiCisg
ICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1vdmVycmlkZS1pbmkiLCAn
cHl0aG9uX2ZpbGVzPXVuaXR0ZXN0XyoucHknKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQgaW4qIl0pCisKKyAgICBkZWYgdGVzdF93aXRoX2FyZ19vdXRz
aWRlX2N3ZF93aXRob3V0X2luaWZpbGUoc2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIG1vbmtleXBhdGNoLmNoZGlyKHN0cih0bXBkaXIpKQorICAgICAgICBhID0gdG1wZGlyLm1r
ZGlyKCJhIikKKyAgICAgICAgYiA9IHRtcGRpci5ta2RpcigiYiIpCisgICAgICAgIHJvb3RkaXIs
IGluaWZpbGUsIGluaWNmZyA9IGRldGVybWluZV9zZXR1cChOb25lLCBbYSwgYl0pCisgICAgICAg
IGFzc2VydCByb290ZGlyID09IHRtcGRpcgorICAgICAgICBhc3NlcnQgaW5pZmlsZSBpcyBOb25l
CisKKyAgICBkZWYgdGVzdF93aXRoX2FyZ19vdXRzaWRlX2N3ZF93aXRoX2luaWZpbGUoc2VsZiwg
dG1wZGlyKToKKyAgICAgICAgYSA9IHRtcGRpci5ta2RpcigiYSIpCisgICAgICAgIGIgPSB0bXBk
aXIubWtkaXIoImIiKQorICAgICAgICBpbmlmaWxlID0gYS5lbnN1cmUoInB5dGVzdC5pbmkiKQor
ICAgICAgICByb290ZGlyLCBwYXJzZWRfaW5pZmlsZSwgaW5pY2ZnID0gZGV0ZXJtaW5lX3NldHVw
KE5vbmUsIFthLCBiXSkKKyAgICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gYQorICAgICAgICBhc3Nl
cnQgaW5pZmlsZSA9PSBwYXJzZWRfaW5pZmlsZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdkaXJzJywgKFtdLCBbJ2RvZXMtbm90LWV4aXN0J10sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnYS9kb2VzLW5vdC1leGlzdCddKSkKKyAgICBkZWYgdGVzdF93
aXRoX25vbl9kaXJfYXJnKHNlbGYsIGRpcnMsIHRtcGRpcik6CisgICAgICAgIHdpdGggdG1wZGly
LmVuc3VyZShkaXI9VHJ1ZSkuYXNfY3dkKCk6CisgICAgICAgICAgICByb290ZGlyLCBpbmlmaWxl
LCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwgZGlycykKKyAgICAgICAgICAgIGFzc2Vy
dCByb290ZGlyID09IHRtcGRpcgorICAgICAgICAgICAgYXNzZXJ0IGluaWZpbGUgaXMgTm9uZQor
CisgICAgZGVmIHRlc3Rfd2l0aF9leGlzdGluZ19maWxlX2luX3N1YmRpcihzZWxmLCB0bXBkaXIp
OgorICAgICAgICBhID0gdG1wZGlyLm1rZGlyKCJhIikKKyAgICAgICAgYS5lbnN1cmUoImV4aXN0
IikKKyAgICAgICAgd2l0aCB0bXBkaXIuYXNfY3dkKCk6CisgICAgICAgICAgICByb290ZGlyLCBp
bmlmaWxlLCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwgWydhL2V4aXN0J10pCisgICAg
ICAgICAgICBhc3NlcnQgcm9vdGRpciA9PSB0bXBkaXIKKyAgICAgICAgICAgIGFzc2VydCBpbmlm
aWxlIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2FkZG9wdHNfYmVmb3JlX2luaXRpbmkoc2VsZiwg
dGVzdGRpciwgdG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGNhY2hlX2RpciA9ICcuY3Vz
dG9tX2NhY2hlJworICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ1BZVEVTVF9BRERPUFRTJywg
Jy1vIGNhY2hlX2Rpcj0lcycgJSBjYWNoZV9kaXIpCisgICAgICAgIGZyb20gX3B5dGVzdC5jb25m
aWcgaW1wb3J0IGdldF9jb25maWcKKyAgICAgICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisgICAg
ICAgIGNvbmZpZy5fcHJlcGFyc2UoW10sIGFkZG9wdHM9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IGNv
bmZpZy5fb3ZlcnJpZGVfaW5pID09IFtbJ2NhY2hlX2Rpcj0lcycgJSBjYWNoZV9kaXJdXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNDExYjcyMzIxMTQ3NDYw
MmNhZDU0ODZhMzVkN2JlYzg2YzU4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfY29uZnRlc3QucHkKQEAgLTAsMCArMSw0NzggQEAKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20g
dGV4dHdyYXAgaW1wb3J0IGRlZGVudAorCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5
CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQeXRlc3RQbHVnaW5N
YW5hZ2VyCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVELCBF
WElUX1VTQUdFRVJST1IKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFt
cz1bImdsb2JhbCIsICJpbnBhY2thZ2UiXSkKK2RlZiBiYXNlZGlyKHJlcXVlc3QsIHRtcGRpcl9m
YWN0b3J5KToKKyAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCB0bXBkaXIKKyAgICB0bXBk
aXIgPSB0bXBkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpCisgICAgdG1wZGlyLmVuc3VyZSgi
YWRpci9jb25mdGVzdC5weSIpLndyaXRlKCJhPTEgOyBEaXJlY3RvcnkgPSAzIikKKyAgICB0bXBk
aXIuZW5zdXJlKCJhZGlyL2IvY29uZnRlc3QucHkiKS53cml0ZSgiYj0yIDsgYSA9IDEuNSIpCisg
ICAgaWYgcmVxdWVzdC5wYXJhbSA9PSAiaW5wYWNrYWdlIjoKKyAgICAgICAgdG1wZGlyLmVuc3Vy
ZSgiYWRpci9fX2luaXRfXy5weSIpCisgICAgICAgIHRtcGRpci5lbnN1cmUoImFkaXIvYi9fX2lu
aXRfXy5weSIpCisgICAgcmV0dXJuIHRtcGRpcgorCisKK2RlZiBDb25mdGVzdFdpdGhTZXRpbml0
aWFsKHBhdGgpOgorICAgIGNvbmZ0ZXN0ID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgY29u
ZnRlc3Rfc2V0aW5pdGlhbChjb25mdGVzdCwgW3BhdGhdKQorICAgIHJldHVybiBjb25mdGVzdAor
CisKK2RlZiBjb25mdGVzdF9zZXRpbml0aWFsKGNvbmZ0ZXN0LCBhcmdzLCBjb25mY3V0ZGlyPU5v
bmUpOgorICAgIGNsYXNzIE5hbWVzcGFjZShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZik6CisgICAgICAgICAgICBzZWxmLmZpbGVfb3JfZGlyID0gYXJncworICAgICAgICAgICAg
c2VsZi5jb25mY3V0ZGlyID0gc3RyKGNvbmZjdXRkaXIpCisgICAgICAgICAgICBzZWxmLm5vY29u
ZnRlc3QgPSBGYWxzZQorICAgIGNvbmZ0ZXN0Ll9zZXRfaW5pdGlhbF9jb25mdGVzdHMoTmFtZXNw
YWNlKCkpCisKKworY2xhc3MgVGVzdENvbmZ0ZXN0VmFsdWVBY2Nlc3NHbG9iYWwob2JqZWN0KToK
KyAgICBkZWYgdGVzdF9iYXNpY19pbml0KHNlbGYsIGJhc2VkaXIpOgorICAgICAgICBjb25mdGVz
dCA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgICAgICBwID0gYmFzZWRpci5qb2luKCJhZGly
IikKKyAgICAgICAgYXNzZXJ0IGNvbmZ0ZXN0Ll9yZ2V0X3dpdGhfY29uZm1vZCgiYSIsIHApWzFd
ID09IDEKKworICAgIGRlZiB0ZXN0X2ltbWVkaWF0ZV9pbml0aWFsaWF0aW9uX2FuZF9pbmNyZW1l
bnRhbF9hcmVfdGhlX3NhbWUoc2VsZiwgYmFzZWRpcik6CisgICAgICAgIGNvbmZ0ZXN0ID0gUHl0
ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgICAgIGxlbihjb25mdGVzdC5fcGF0aDJjb25mbW9kcykK
KyAgICAgICAgY29uZnRlc3QuX2dldGNvbmZ0ZXN0bW9kdWxlcyhiYXNlZGlyKQorICAgICAgICBz
bmFwMSA9IGxlbihjb25mdGVzdC5fcGF0aDJjb25mbW9kcykKKyAgICAgICAgIyBhc3NlcnQgbGVu
KGNvbmZ0ZXN0Ll9wYXRoMmNvbmZtb2RzKSA9PSBzbmFwMSArIDEKKyAgICAgICAgY29uZnRlc3Qu
X2dldGNvbmZ0ZXN0bW9kdWxlcyhiYXNlZGlyLmpvaW4oJ2FkaXInKSkKKyAgICAgICAgYXNzZXJ0
IGxlbihjb25mdGVzdC5fcGF0aDJjb25mbW9kcykgPT0gc25hcDEgKyAxCisgICAgICAgIGNvbmZ0
ZXN0Ll9nZXRjb25mdGVzdG1vZHVsZXMoYmFzZWRpci5qb2luKCdiJykpCisgICAgICAgIGFzc2Vy
dCBsZW4oY29uZnRlc3QuX3BhdGgyY29uZm1vZHMpID09IHNuYXAxICsgMgorCisgICAgZGVmIHRl
c3RfdmFsdWVfYWNjZXNzX25vdF9leGlzdGluZyhzZWxmLCBiYXNlZGlyKToKKyAgICAgICAgY29u
ZnRlc3QgPSBDb25mdGVzdFdpdGhTZXRpbml0aWFsKGJhc2VkaXIpCisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhLZXlFcnJvcik6CisgICAgICAgICAgICBjb25mdGVzdC5fcmdldF93aXRoX2Nv
bmZtb2QoJ2EnLCBiYXNlZGlyKQorCisgICAgZGVmIHRlc3RfdmFsdWVfYWNjZXNzX2J5X3BhdGgo
c2VsZiwgYmFzZWRpcik6CisgICAgICAgIGNvbmZ0ZXN0ID0gQ29uZnRlc3RXaXRoU2V0aW5pdGlh
bChiYXNlZGlyKQorICAgICAgICBhZGlyID0gYmFzZWRpci5qb2luKCJhZGlyIikKKyAgICAgICAg
YXNzZXJ0IGNvbmZ0ZXN0Ll9yZ2V0X3dpdGhfY29uZm1vZCgiYSIsIGFkaXIpWzFdID09IDEKKyAg
ICAgICAgYXNzZXJ0IGNvbmZ0ZXN0Ll9yZ2V0X3dpdGhfY29uZm1vZCgiYSIsIGFkaXIuam9pbigi
YiIpKVsxXSA9PSAxLjUKKworICAgIGRlZiB0ZXN0X3ZhbHVlX2FjY2Vzc193aXRoX2NvbmZtb2Qo
c2VsZiwgYmFzZWRpcik6CisgICAgICAgIHN0YXJ0ZGlyID0gYmFzZWRpci5qb2luKCJhZGlyIiwg
ImIiKQorICAgICAgICBzdGFydGRpci5lbnN1cmUoInh4IiwgZGlyPVRydWUpCisgICAgICAgIGNv
bmZ0ZXN0ID0gQ29uZnRlc3RXaXRoU2V0aW5pdGlhbChzdGFydGRpcikKKyAgICAgICAgbW9kLCB2
YWx1ZSA9IGNvbmZ0ZXN0Ll9yZ2V0X3dpdGhfY29uZm1vZCgiYSIsIHN0YXJ0ZGlyKQorICAgICAg
ICBhc3NlcnQgdmFsdWUgPT0gMS41CisgICAgICAgIHBhdGggPSBweS5wYXRoLmxvY2FsKG1vZC5f
X2ZpbGVfXykKKyAgICAgICAgYXNzZXJ0IHBhdGguZGlycGF0aCgpID09IGJhc2VkaXIuam9pbigi
YWRpciIsICJiIikKKyAgICAgICAgYXNzZXJ0IHBhdGgucHVyZWJhc2VuYW1lLnN0YXJ0c3dpdGgo
ImNvbmZ0ZXN0IikKKworCitkZWYgdGVzdF9jb25mdGVzdF9pbl9ub25wa2dfd2l0aF9pbml0KHRt
cGRpcik6CisgICAgdG1wZGlyLmVuc3VyZSgiYWRpci0xLjAvY29uZnRlc3QucHkiKS53cml0ZSgi
YT0xIDsgRGlyZWN0b3J5ID0gMyIpCisgICAgdG1wZGlyLmVuc3VyZSgiYWRpci0xLjAvYi9jb25m
dGVzdC5weSIpLndyaXRlKCJiPTIgOyBhID0gMS41IikKKyAgICB0bXBkaXIuZW5zdXJlKCJhZGly
LTEuMC9iL19faW5pdF9fLnB5IikKKyAgICB0bXBkaXIuZW5zdXJlKCJhZGlyLTEuMC9fX2luaXRf
Xy5weSIpCisgICAgQ29uZnRlc3RXaXRoU2V0aW5pdGlhbCh0bXBkaXIuam9pbigiYWRpci0xLjAi
LCAiYiIpKQorCisKK2RlZiB0ZXN0X2RvdWJsZWRhc2hfY29uc2lkZXJlZCh0ZXN0ZGlyKToKKyAg
ICBjb25mID0gdGVzdGRpci5ta2RpcigiLS1vcHRpb24iKQorICAgIGNvbmYuam9pbigiY29uZnRl
c3QucHkiKS5lbnN1cmUoKQorICAgIGNvbmZ0ZXN0ID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisg
ICAgY29uZnRlc3Rfc2V0aW5pdGlhbChjb25mdGVzdCwgW2NvbmYuYmFzZW5hbWUsIGNvbmYuYmFz
ZW5hbWVdKQorICAgIHZhbHVlcyA9IGNvbmZ0ZXN0Ll9nZXRjb25mdGVzdG1vZHVsZXMoY29uZikK
KyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorCisKK2RlZiB0ZXN0X2lzc3VlMTUxX2xvYWRf
YWxsX2NvbmZ0ZXN0cyh0ZXN0ZGlyKToKKyAgICBuYW1lcyA9ICJjb2RlIHByb2ogc3JjIi5zcGxp
dCgpCisgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1rZGlyKG5h
bWUpCisgICAgICAgIHAuZW5zdXJlKCJjb25mdGVzdC5weSIpCisKKyAgICBjb25mdGVzdCA9IFB5
dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgIGNvbmZ0ZXN0X3NldGluaXRpYWwoY29uZnRlc3QsIG5h
bWVzKQorICAgIGQgPSBsaXN0KGNvbmZ0ZXN0Ll9jb25mdGVzdHBhdGgybW9kLnZhbHVlcygpKQor
ICAgIGFzc2VydCBsZW4oZCkgPT0gbGVuKG5hbWVzKQorCisKK2RlZiB0ZXN0X2NvbmZ0ZXN0X2ds
b2JhbF9pbXBvcnQodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIng9MyIpCisg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5LCBweXRlc3QK
KyAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgUHl0ZXN0UGx1Z2luTWFuYWdlcgor
ICAgICAgICBjb25mID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgICAgIG1vZCA9IGNvbmYu
X2ltcG9ydGNvbmZ0ZXN0KHB5LnBhdGgubG9jYWwoImNvbmZ0ZXN0LnB5IikpCisgICAgICAgIGFz
c2VydCBtb2QueCA9PSAzCisgICAgICAgIGltcG9ydCBjb25mdGVzdAorICAgICAgICBhc3NlcnQg
Y29uZnRlc3QgaXMgbW9kLCAoY29uZnRlc3QsIG1vZCkKKyAgICAgICAgc3ViY29uZiA9IHB5LnBh
dGgubG9jYWwoKS5lbnN1cmUoInN1YiIsICJjb25mdGVzdC5weSIpCisgICAgICAgIHN1YmNvbmYu
d3JpdGUoInk9NCIpCisgICAgICAgIG1vZDIgPSBjb25mLl9pbXBvcnRjb25mdGVzdChzdWJjb25m
KQorICAgICAgICBhc3NlcnQgbW9kICE9IG1vZDIKKyAgICAgICAgYXNzZXJ0IG1vZDIueSA9PSA0
CisgICAgICAgIGltcG9ydCBjb25mdGVzdAorICAgICAgICBhc3NlcnQgY29uZnRlc3QgaXMgbW9k
MiwgKGNvbmZ0ZXN0LCBtb2QpCisgICAgIiIiKQorICAgIHJlcyA9IHRlc3RkaXIucnVucHl0aG9u
KHApCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X2NvbmZ0ZXN0Y3V0ZGly
KHRlc3RkaXIpOgorICAgIGNvbmYgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIikKKyAgICBwID0g
dGVzdGRpci5ta2RpcigieCIpCisgICAgY29uZnRlc3QgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkK
KyAgICBjb25mdGVzdF9zZXRpbml0aWFsKGNvbmZ0ZXN0LCBbdGVzdGRpci50bXBkaXJdLCBjb25m
Y3V0ZGlyPXApCisgICAgdmFsdWVzID0gY29uZnRlc3QuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwKQor
ICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAwCisgICAgdmFsdWVzID0gY29uZnRlc3QuX2dldGNv
bmZ0ZXN0bW9kdWxlcyhjb25mLmRpcnBhdGgoKSkKKyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0g
MAorICAgIGFzc2VydCBjb25mIG5vdCBpbiBjb25mdGVzdC5fY29uZnRlc3RwYXRoMm1vZAorICAg
ICMgYnV0IHdlIGNhbiBzdGlsbCBpbXBvcnQgYSBjb25mdGVzdCBkaXJlY3RseQorICAgIGNvbmZ0
ZXN0Ll9pbXBvcnRjb25mdGVzdChjb25mKQorICAgIHZhbHVlcyA9IGNvbmZ0ZXN0Ll9nZXRjb25m
dGVzdG1vZHVsZXMoY29uZi5kaXJwYXRoKCkpCisgICAgYXNzZXJ0IHZhbHVlc1swXS5fX2ZpbGVf
Xy5zdGFydHN3aXRoKHN0cihjb25mKSkKKyAgICAjIGFuZCBhbGwgc3ViIHBhdGhzIGdldCB1cGRh
dGVkIHByb3Blcmx5CisgICAgdmFsdWVzID0gY29uZnRlc3QuX2dldGNvbmZ0ZXN0bW9kdWxlcyhw
KQorICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisgICAgYXNzZXJ0IHZhbHVlc1swXS5fX2Zp
bGVfXy5zdGFydHN3aXRoKHN0cihjb25mKSkKKworCitkZWYgdGVzdF9jb25mdGVzdGN1dGRpcl9p
bnBsYWNlX2NvbnNpZGVyZWQodGVzdGRpcik6CisgICAgY29uZiA9IHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KCIiKQorICAgIGNvbmZ0ZXN0ID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgY29uZnRl
c3Rfc2V0aW5pdGlhbChjb25mdGVzdCwgW2NvbmYuZGlycGF0aCgpXSwgY29uZmN1dGRpcj1jb25m
LmRpcnBhdGgoKSkKKyAgICB2YWx1ZXMgPSBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGNv
bmYuZGlycGF0aCgpKQorICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisgICAgYXNzZXJ0IHZh
bHVlc1swXS5fX2ZpbGVfXy5zdGFydHN3aXRoKHN0cihjb25mKSkKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoIm5hbWUiLCAndGVzdCB0ZXN0cyB3aGF0ZXZlciAuZG90ZGlyJy5zcGxpdCgp
KQorZGVmIHRlc3Rfc2V0aW5pdGlhbF9jb25mdGVzdF9zdWJkaXJzKHRlc3RkaXIsIG5hbWUpOgor
ICAgIHN1YiA9IHRlc3RkaXIubWtkaXIobmFtZSkKKyAgICBzdWJjb25mdGVzdCA9IHN1Yi5lbnN1
cmUoImNvbmZ0ZXN0LnB5IikKKyAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQor
ICAgIGNvbmZ0ZXN0X3NldGluaXRpYWwoY29uZnRlc3QsIFtzdWIuZGlycGF0aCgpXSwgY29uZmN1
dGRpcj10ZXN0ZGlyLnRtcGRpcikKKyAgICBpZiBuYW1lIG5vdCBpbiAoJ3doYXRldmVyJywgJy5k
b3RkaXInKToKKyAgICAgICAgYXNzZXJ0IHN1YmNvbmZ0ZXN0IGluIGNvbmZ0ZXN0Ll9jb25mdGVz
dHBhdGgybW9kCisgICAgICAgIGFzc2VydCBsZW4oY29uZnRlc3QuX2NvbmZ0ZXN0cGF0aDJtb2Qp
ID09IDEKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgc3ViY29uZnRlc3Qgbm90IGluIGNvbmZ0
ZXN0Ll9jb25mdGVzdHBhdGgybW9kCisgICAgICAgIGFzc2VydCBsZW4oY29uZnRlc3QuX2NvbmZ0
ZXN0cGF0aDJtb2QpID09IDAKKworCitkZWYgdGVzdF9jb25mdGVzdF9jb25mY3V0ZGlyKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCJhc3NlcnQgMCIpCisgICAgeCA9IHRlc3Rk
aXIubWtkaXIoIngiKQorICAgIHguam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAg
ICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVlIikK
KyAgICAiIiIpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItaCIsICItLWNvbmZj
dXRkaXI9JXMiICUgeCwgeCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqLS14
eXoqIl0pCisgICAgYXNzZXJ0ICd3YXJuaW5nOiBjb3VsZCBub3QgbG9hZCBpbml0aWFsJyBub3Qg
aW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X25vX2NvbmZ0ZXN0KHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCJhc3NlcnQgMCIpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tbm9jb25mdGVzdCIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
RVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9SCisKKworZGVmIHRlc3Rf
Y29uZnRlc3RfZXhpc3RpbmdfcmVzdWx0bG9nKHRlc3RkaXIpOgorICAgIHggPSB0ZXN0ZGlyLm1r
ZGlyKCJ0ZXN0cyIpCisgICAgeC5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKF9weXRlc3QuX2Nv
ZGUuU291cmNlKCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAg
ICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS14eXoiLCBhY3Rpb249InN0b3JlX3RydWUiKQor
ICAgICIiIikpCisgICAgdGVzdGRpci5tYWtlZmlsZShleHQ9Ii5sb2ciLCByZXN1bHQ9IiIpICAj
IFdyaXRlcyByZXN1bHQubG9nCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1oIiwg
Ii0tcmVzdWx0bG9nIiwgInJlc3VsdC5sb2ciKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIiotLXh5eioiXSkKKworCitkZWYgdGVzdF9jb25mdGVzdF9leGlzdGluZ19qdW5pdHht
bCh0ZXN0ZGlyKToKKyAgICB4ID0gdGVzdGRpci5ta2RpcigidGVzdHMiKQorICAgIHguam9pbigi
Y29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24o
Ii0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAiIiIpKQorICAgIHRlc3RkaXIubWFr
ZWZpbGUoZXh0PSIueG1sIiwganVuaXQ9IiIpICAjIFdyaXRlcyBqdW5pdC54bWwKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWgiLCAiLS1qdW5pdHhtbCIsICJqdW5pdC54bWwiKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiotLXh5eioiXSkKKworCitkZWYgdGVz
dF9jb25mdGVzdF9pbXBvcnRfb3JkZXIodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIGN0MSA9
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiKQorICAgIHN1YiA9IHRlc3RkaXIubWtkaXIoInN1YiIp
CisgICAgY3QyID0gc3ViLmpvaW4oImNvbmZ0ZXN0LnB5IikKKyAgICBjdDIud3JpdGUoIiIpCisK
KyAgICBkZWYgaW1wY3QocCk6CisgICAgICAgIHJldHVybiBwCisKKyAgICBjb25mdGVzdCA9IFB5
dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgIGNvbmZ0ZXN0Ll9jb25mY3V0ZGlyID0gdGVzdGRpci50
bXBkaXIKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGNvbmZ0ZXN0LCAnX2ltcG9ydGNvbmZ0ZXN0
JywgaW1wY3QpCisgICAgYXNzZXJ0IGNvbmZ0ZXN0Ll9nZXRjb25mdGVzdG1vZHVsZXMoc3ViKSA9
PSBbY3QxLCBjdDJdCisKKworZGVmIHRlc3RfZml4dHVyZV9kZXBlbmRlbmN5KHRlc3RkaXIsIG1v
bmtleXBhdGNoKToKKyAgICBjdDEgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIikKKyAgICBjdDEg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIl9faW5pdF9fLnB5IikKKyAgICBjdDEud3JpdGUoIiIpCisg
ICAgc3ViID0gdGVzdGRpci5ta2Rpcigic3ViIikKKyAgICBzdWIuam9pbigiX19pbml0X18ucHki
KS53cml0ZSgiIikKKyAgICBzdWIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShweS5zdGQudGV4
dHdyYXAuZGVkZW50KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgIGRlZiBub3RfbmVlZGVkKCk6CisgICAgICAgICAgICBhc3NlcnQg
RmFsc2UsICJTaG91bGQgbm90IGJlIGNhbGxlZCEiCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNob3VsZCBu
b3QgYmUgY2FsbGVkISIKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGJh
cihmb28pOgorICAgICAgICAgICAgcmV0dXJuICdiYXInCisgICAgIiIiKSkKKyAgICBzdWJzdWIg
PSBzdWIubWtkaXIoInN1YnN1YiIpCisgICAgc3Vic3ViLmpvaW4oIl9faW5pdF9fLnB5Iikud3Jp
dGUoIiIpCisgICAgc3Vic3ViLmpvaW4oInRlc3RfYmFyLnB5Iikud3JpdGUocHkuc3RkLnRleHR3
cmFwLmRlZGVudCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICBkZWYgYmFyKCk6CisgICAgICAgICAgICByZXR1cm4gJ3N1YiBiYXIn
CisKKyAgICAgICAgZGVmIHRlc3RfZXZlbnRfZml4dHVyZShiYXIpOgorICAgICAgICAgICAgYXNz
ZXJ0IGJhciA9PSAnc3ViIGJhcicKKyAgICAiIiIpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCJzdWIiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3Nl
ZCoiXSkKKworCitkZWYgdGVzdF9jb25mdGVzdF9mb3VuZF93aXRoX2RvdWJsZV9kYXNoKHRlc3Rk
aXIpOgorICAgIHN1YiA9IHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAgc3ViLmpvaW4oImNvbmZ0
ZXN0LnB5Iikud3JpdGUocHkuc3RkLnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0t
aGVsbG8td29ybGQiLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICIiIikpCisgICAgcCA9IHN1
Yi5qb2luKCJ0ZXN0X2hlbGxvLnB5IikKKyAgICBwLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRl
bnQoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oZm91
bmQpOgorICAgICAgICAgICAgYXNzZXJ0IGZvdW5kID09IDEKKyAgICAiIiIpKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHN0cihwKSArICI6OnRlc3RfaGVsbG8iLCAiLWgiKQorICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgKi0taGVsbG8td29ybGQq
CisgICAgIiIiKQorCisKK2NsYXNzIFRlc3RDb25mdGVzdFZpc2liaWxpdHkob2JqZWN0KToKKyAg
ICBkZWYgX3NldHVwX3RyZWUoc2VsZiwgdGVzdGRpcik6ICAjIGZvciBpc3N1ZTYxNgorICAgICAg
ICAjIGV4YW1wbGUgbW9zdGx5IHRha2VuIGZyb206CisgICAgICAgICMgaHR0cHM6Ly9tYWlsLnB5
dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGVzdC1kZXYvMjAxNC1TZXB0ZW1iZXIvMDAyNjE3Lmh0bWwK
KyAgICAgICAgcnVubmVyID0gdGVzdGRpci5ta2RpcigiZW1wdHkiKQorICAgICAgICBwYWNrYWdl
ID0gdGVzdGRpci5ta2RpcigicGFja2FnZSIpCisKKyAgICAgICAgcGFja2FnZS5qb2luKCJjb25m
dGVzdC5weSIpLndyaXRlKGRlZGVudCgiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmeHRyKCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuICJmcm9tLXBhY2thZ2UiCisgICAgICAgICIiIikpCisgICAgICAg
IHBhY2thZ2Uuam9pbigidGVzdF9wa2dyb290LnB5Iikud3JpdGUoZGVkZW50KCIiIlwKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3BrZ3Jvb3QoZnh0cik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4
dHIgPT0gImZyb20tcGFja2FnZSIKKyAgICAgICAgIiIiKSkKKworICAgICAgICBzd2MgPSBwYWNr
YWdlLm1rZGlyKCJzd2MiKQorICAgICAgICBzd2Muam9pbigiX19pbml0X18ucHkiKS5lbnN1cmUo
KQorICAgICAgICBzd2Muam9pbigiY29uZnRlc3QucHkiKS53cml0ZShkZWRlbnQoIiIiXAorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgZnh0cigpOgorICAgICAgICAgICAgICAgIHJldHVybiAiZnJvbS1zd2MiCisg
ICAgICAgICIiIikpCisgICAgICAgIHN3Yy5qb2luKCJ0ZXN0X3dpdGhfY29uZnRlc3QucHkiKS53
cml0ZShkZWRlbnQoIiIiXAorICAgICAgICAgICAgZGVmIHRlc3Rfd2l0aF9jb25mdGVzdChmeHRy
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZnh0ciA9PSAiZnJvbS1zd2MiCisKKyAgICAgICAg
IiIiKSkKKworICAgICAgICBzbmMgPSBwYWNrYWdlLm1rZGlyKCJzbmMiKQorICAgICAgICBzbmMu
am9pbigiX19pbml0X18ucHkiKS5lbnN1cmUoKQorICAgICAgICBzbmMuam9pbigidGVzdF9ub19j
b25mdGVzdC5weSIpLndyaXRlKGRlZGVudCgiIiJcCisgICAgICAgICAgICBkZWYgdGVzdF9ub19j
b25mdGVzdChmeHRyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZnh0ciA9PSAiZnJvbS1wYWNr
YWdlIiAgICMgTm8gbG9jYWwgY29uZnRlc3QucHksIHNvIHNob3VsZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2UgdmFsdWUgZnJvbSBwYXJlbnQg
ZGlyJ3MKKworICAgICAgICAiIiIpKQorICAgICAgICBwcmludCgiY3JlYXRlZCBkaXJlY3Rvcnkg
c3RydWN0dXJlOiIpCisgICAgICAgIGZvciB4IGluIHRlc3RkaXIudG1wZGlyLnZpc2l0KCk6Cisg
ICAgICAgICAgICBwcmludCgiICAgIiArIHgucmVsdG8odGVzdGRpci50bXBkaXIpKQorCisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICAicnVubmVyIjogcnVubmVyLAorICAgICAgICAgICAg
InBhY2thZ2UiOiBwYWNrYWdlLAorICAgICAgICAgICAgInN3YyI6IHN3YywKKyAgICAgICAgICAg
ICJzbmMiOiBzbmN9CisKKyAgICAjIE4uQi46ICJzd2MiIHN0YW5kcyBmb3IgInN1YmRpciB3aXRo
IGNvbmZ0ZXN0LnB5IgorICAgICMgICAgICAgInNuYyIgc3RhbmRzIGZvciAic3ViZGlyIG5vIFtp
LmUuIHdpdGhvdXRdIGNvbmZ0ZXN0LnB5IgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
Y2hkaXIsdGVzdGFyZyxleHBlY3RfbnRlc3RzX3Bhc3NlZCIsIFsKKyAgICAgICAgIyBFZmZlY3Rp
dmUgdGFyZ2V0OiBwYWNrYWdlLy4uCisgICAgICAgICgicnVubmVyIiwgIi4uIiwgMyksCisgICAg
ICAgICgicGFja2FnZSIsICIuLiIsIDMpLAorICAgICAgICAoInN3YyIsICIuLi8uLiIsIDMpLAor
ICAgICAgICAoInNuYyIsICIuLi8uLiIsIDMpLAorCisgICAgICAgICMgRWZmZWN0aXZlIHRhcmdl
dDogcGFja2FnZQorICAgICAgICAoInJ1bm5lciIsICIuLi9wYWNrYWdlIiwgMyksCisgICAgICAg
ICgicGFja2FnZSIsICIuIiwgMyksCisgICAgICAgICgic3djIiwgIi4uIiwgMyksCisgICAgICAg
ICgic25jIiwgIi4uIiwgMyksCisKKyAgICAgICAgIyBFZmZlY3RpdmUgdGFyZ2V0OiBwYWNrYWdl
L3N3YworICAgICAgICAoInJ1bm5lciIsICIuLi9wYWNrYWdlL3N3YyIsIDEpLAorICAgICAgICAo
InBhY2thZ2UiLCAiLi9zd2MiLCAxKSwKKyAgICAgICAgKCJzd2MiLCAiLiIsIDEpLAorICAgICAg
ICAoInNuYyIsICIuLi9zd2MiLCAxKSwKKworICAgICAgICAjIEVmZmVjdGl2ZSB0YXJnZXQ6IHBh
Y2thZ2Uvc25jCisgICAgICAgICgicnVubmVyIiwgIi4uL3BhY2thZ2Uvc25jIiwgMSksCisgICAg
ICAgICgicGFja2FnZSIsICIuL3NuYyIsIDEpLAorICAgICAgICAoInN3YyIsICIuLi9zbmMiLCAx
KSwKKyAgICAgICAgKCJzbmMiLCAiLiIsIDEpLAorICAgIF0pCisgICAgQHB5dGVzdC5tYXJrLmlz
c3VlNjE2CisgICAgZGVmIHRlc3RfcGFyc2VmYWN0b3JpZXNfcmVsYXRpdmVfbm9kZV9pZHMoCisg
ICAgICAgICAgICBzZWxmLCB0ZXN0ZGlyLCBjaGRpciwgdGVzdGFyZywgZXhwZWN0X250ZXN0c19w
YXNzZWQpOgorICAgICAgICBkaXJzID0gc2VsZi5fc2V0dXBfdHJlZSh0ZXN0ZGlyKQorICAgICAg
ICBwcmludCgicHl0ZXN0IHJ1biBpbiBjd2Q6ICVzIiAlICgKKyAgICAgICAgICAgICAgZGlyc1tj
aGRpcl0ucmVsdG8odGVzdGRpci50bXBkaXIpKSkKKyAgICAgICAgcHJpbnQoInB5dGVzdGFyZyAg
ICAgICAgOiAlcyIgJSAodGVzdGFyZykpCisgICAgICAgIHByaW50KCJleHBlY3RlZCBwYXNzICAg
IDogJXMiICUgKGV4cGVjdF9udGVzdHNfcGFzc2VkKSkKKyAgICAgICAgd2l0aCBkaXJzW2NoZGly
XS5hc19jd2QoKToKKyAgICAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0
YXJnLCAiLXEiLCAiLS10cmFjZWNvbmZpZyIpCisgICAgICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9ZXhwZWN0X250ZXN0c19wYXNzZWQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdjb25mY3V0ZGlyLHBhc3NlZCxlcnJvcicsIFsKKyAgICAoJy4nLCAyLCAwKSwKKyAg
ICAoJ3NyYycsIDEsIDEpLAorICAgIChOb25lLCAxLCAxKSwKK10pCitkZWYgdGVzdF9zZWFyY2hf
Y29uZnRlc3RfdXBfdG9faW5pZmlsZSh0ZXN0ZGlyLCBjb25mY3V0ZGlyLCBwYXNzZWQsIGVycm9y
KToKKyAgICAiIiJUZXN0IHRoYXQgY29uZnRlc3QgZmlsZXMgYXJlIGRldGVjdGVkIG9ubHkgdXAg
dG8gYSBpbmkgZmlsZSwgdW5sZXNzCisgICAgYW4gZXhwbGljaXQgLS1jb25mY3V0ZGlyIG9wdGlv
biBpcyBnaXZlbi4KKyAgICAiIiIKKyAgICByb290ID0gdGVzdGRpci50bXBkaXIKKyAgICBzcmMg
PSByb290LmpvaW4oJ3NyYycpLmVuc3VyZShkaXI9MSkKKyAgICBzcmMuam9pbigncHl0ZXN0Lmlu
aScpLndyaXRlKCdbcHl0ZXN0XScpCisgICAgc3JjLmpvaW4oJ2NvbmZ0ZXN0LnB5Jykud3JpdGUo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBmaXgxKCk6IHBhc3MKKyAgICAiIiIpKQorICAg
IHNyYy5qb2luKCd0ZXN0X2Zvby5weScpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgor
ICAgICAgICBkZWYgdGVzdF8xKGZpeDEpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYg
dGVzdF8yKG91dF9vZl9yZWFjaCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKSkKKyAgICBy
b290LmpvaW4oJ2NvbmZ0ZXN0LnB5Jykud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRl
ZiBvdXRfb2ZfcmVhY2goKTogcGFzcworICAgICIiIikpCisKKyAgICBhcmdzID0gW3N0cihzcmMp
XQorICAgIGlmIGNvbmZjdXRkaXI6CisgICAgICAgIGFyZ3MgPSBbJy0tY29uZmN1dGRpcj0lcycg
JSByb290LmpvaW4oY29uZmN1dGRpcildCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KmFyZ3MpCisgICAgbWF0Y2ggPSAnJworICAgIGlmIHBhc3NlZDoKKyAgICAgICAgbWF0Y2ggKz0g
JyolZCBwYXNzZWQqJyAlIHBhc3NlZAorICAgIGlmIGVycm9yOgorICAgICAgICBtYXRjaCArPSAn
KiVkIGVycm9yKicgJSBlcnJvcgorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhtYXRj
aCkKKworCitkZWYgdGVzdF9pc3N1ZTEwNzNfY29uZnRlc3Rfc3BlY2lhbF9vYmplY3RzKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBjbGFzcyBEb250VG91
Y2hNZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIHgpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignY2FudCB0b3VjaCBtZScpCisKKyAgICAgICAg
eCA9IERvbnRUb3VjaE1lKCkKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBkZWYgdGVzdF9zb21lKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAg
IHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAwCisKKwor
ZGVmIHRlc3RfY29uZnRlc3RfZXhjZXB0aW9uX2hhbmRsaW5nKHRlc3RkaXIpOgorICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAnJycp
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9zb21lKCk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICBhc3NlcnQgcmVzLnJldCA9PSA0CisgICAgYXNzZXJ0ICdyYWlzZSBWYWx1ZUVycm9yKCkn
IGluIFtsaW5lLnN0cmlwKCkgZm9yIGxpbmUgaW4gcmVzLmVycmxpbmVzXQorCisKK2RlZiB0ZXN0
X2hvb2tfcHJveHkodGVzdGRpcik6CisgICAgIiIiU2Vzc2lvbidzIGdldGhvb2twcm94eSgpIHdv
dWxkIGNhY2hlIGNvbmZ0ZXN0cyBpbmNvcnJlY3RseSAoIzIwMTYpLgorICAgIEl0IHdhcyBkZWNp
ZGVkIHRvIHJlbW92ZSB0aGUgY2FjaGUgYWx0b2dldGhlci4KKyAgICAiIiIKKyAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoKip7CisgICAgICAgICdyb290L2RlbW8tMC90ZXN0X2ZvbzEucHknOiAiZGVm
IHRlc3QxKCk6IHBhc3MiLAorCisgICAgICAgICdyb290L2RlbW8tYS90ZXN0X2ZvbzIucHknOiAi
ZGVmIHRlc3QxKCk6IHBhc3MiLAorICAgICAgICAncm9vdC9kZW1vLWEvY29uZnRlc3QucHknOiAi
IiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgIiIiLAorCisgICAgICAg
ICdyb290L2RlbW8tYi90ZXN0X2ZvbzMucHknOiAiZGVmIHRlc3QxKCk6IHBhc3MiLAorICAgICAg
ICAncm9vdC9kZW1vLWMvdGVzdF9mb280LnB5JzogImRlZiB0ZXN0MSgpOiBwYXNzIiwKKyAgICB9
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAnKnRlc3RfZm9vMS5weSonLAorICAgICAgICAnKnRlc3Rf
Zm9vMy5weSonLAorICAgICAgICAnKnRlc3RfZm9vNC5weSonLAorICAgICAgICAnKjMgcGFzc2Vk
KicsCisgICAgXSkKKworCitkZWYgdGVzdF9yZXF1aXJlZF9vcHRpb25faGVscCh0ZXN0ZGlyKToK
KyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiYXNzZXJ0IDAiKQorICAgIHggPSB0ZXN0ZGlyLm1r
ZGlyKCJ4IikKKyAgICB4LmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAg
ICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIHJlcXVp
cmVkPVRydWUpCisgICAgIiIiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWgi
LCB4KQorICAgIGFzc2VydCAnYXJndW1lbnQgLS14eXogaXMgcmVxdWlyZWQnIG5vdCBpbiByZXN1
bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0ICdnZW5lcmFsOicgaW4gcmVzdWx0LnN0ZG91dC5z
dHIoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZG9jdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTUwNjdmMTVl
OWIyOTk1ODZiOGMzMWNlOTQ2N2M5ODRjMmNmMmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKQEAgLTAsMCArMSwxMDAzIEBACisjIGVuY29k
aW5nOiB1dGYtOAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2Zy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IE1PRFVMRV9OT1RfRk9VTkRfRVJST1IKK2Zyb20gX3B5
dGVzdC5kb2N0ZXN0IGltcG9ydCBEb2N0ZXN0SXRlbSwgRG9jdGVzdE1vZHVsZSwgRG9jdGVzdFRl
eHRmaWxlCitpbXBvcnQgcHl0ZXN0CisKKworY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CisK
KyAgICBkZWYgdGVzdF9jb2xsZWN0X3Rlc3R0ZXh0ZmlsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdyA9IHRlc3RkaXIubWFrZXR4dGZpbGUod2hhdGV2ZXI9IiIpCisgICAgICAgIGNoZWNrZmls
ZSA9IHRlc3RkaXIubWFrZXR4dGZpbGUodGVzdF9zb21ldGhpbmc9IiIiCisgICAgICAgICAgICBh
bHNrZGphbHNkaworICAgICAgICAgICAgPj4+IGkgPSA1CisgICAgICAgICAgICA+Pj4gaS0xCisg
ICAgICAgICAgICA0CisgICAgICAgICIiIikKKworICAgICAgICBmb3IgeCBpbiAodGVzdGRpci50
bXBkaXIsIGNoZWNrZmlsZSk6CisgICAgICAgICAgICAjIHByaW50ICJjaGVja2luZyB0aGF0ICVz
IHJldHVybnMgY3VzdG9tIGl0ZW1zIiAlICh4LCkKKyAgICAgICAgICAgIGl0ZW1zLCByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyh4KQorICAgICAgICAgICAgYXNzZXJ0IGxlbihpdGVt
cykgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMF0sIERvY3Rlc3RJ
dGVtKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMF0ucGFyZW50LCBEb2N0
ZXN0VGV4dGZpbGUpCisgICAgICAgICMgRW1wdHkgZmlsZSBoYXMgbm8gaXRlbXMuCisgICAgICAg
IGl0ZW1zLCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyh3KQorICAgICAgICBhc3Nl
cnQgbGVuKGl0ZW1zKSA9PSAwCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X21vZHVsZV9lbXB0eShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh3aGF0ZXZl
cj0iIyIpCisgICAgICAgIGZvciBwIGluIChwYXRoLCB0ZXN0ZGlyLnRtcGRpcik6CisgICAgICAg
ICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMocCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1kb2N0ZXN0LW1v
ZHVsZXMnKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMAorCisgICAgZGVmIHRl
c3RfY29sbGVjdF9tb2R1bGVfc2luZ2xlX21vZHVsZWxldmVsX2RvY3Rlc3Qoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUod2hhdGV2ZXI9JyIiIj4+PiBw
YXNzIiIiJykKKyAgICAgICAgZm9yIHAgaW4gKHBhdGgsIHRlc3RkaXIudG1wZGlyKToKKyAgICAg
ICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWRvY3Rlc3Qt
bW9kdWxlcycpCisgICAgICAgICAgICBhc3NlcnQgbGVuKGl0ZW1zKSA9PSAxCisgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtc1swXSwgRG9jdGVzdEl0ZW0pCisgICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShpdGVtc1swXS5wYXJlbnQsIERvY3Rlc3RNb2R1bGUpCisKKyAgICBk
ZWYgdGVzdF9jb2xsZWN0X21vZHVsZV90d29fZG9jdGVzdF9vbmVfbW9kdWxlbGV2ZWwoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUod2hhdGV2ZXI9IiIi
CisgICAgICAgICAgICAnPj4+IHggPSBOb25lJworICAgICAgICAgICAgZGVmIG15X2Z1bmMoKToK
KyAgICAgICAgICAgICAgICAiPj4+IG1hZ2ljID0gNDIgIgorICAgICAgICAiIiIpCisgICAgICAg
IGZvciBwIGluIChwYXRoLCB0ZXN0ZGlyLnRtcGRpcik6CisgICAgICAgICAgICBpdGVtcywgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMocCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1kb2N0ZXN0LW1vZHVsZXMnKQorICAgICAg
ICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoaXRlbXNbMF0sIERvY3Rlc3RJdGVtKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
aXRlbXNbMV0sIERvY3Rlc3RJdGVtKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRl
bXNbMF0ucGFyZW50LCBEb2N0ZXN0TW9kdWxlKQorICAgICAgICAgICAgYXNzZXJ0IGl0ZW1zWzBd
LnBhcmVudCBpcyBpdGVtc1sxXS5wYXJlbnQKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfbW9kdWxl
X3R3b19kb2N0ZXN0X25vX21vZHVsZWxldmVsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwYXRo
ID0gdGVzdGRpci5tYWtlcHlmaWxlKHdoYXRldmVyPSIiIgorICAgICAgICAgICAgJyMgRW1wdHkn
CisgICAgICAgICAgICBkZWYgbXlfZnVuYygpOgorICAgICAgICAgICAgICAgICI+Pj4gbWFnaWMg
PSA0MiAiCisgICAgICAgICAgICBkZWYgdW51c2VmdWwoKToKKyAgICAgICAgICAgICAgICAnJycK
KyAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYSBmdW5jdGlvbgorICAgICAgICAgICAgICAgICMg
Pj4+ICMgaXQgZG9lc24ndCBoYXZlIGFueSBkb2N0ZXN0CisgICAgICAgICAgICAgICAgJycnCisg
ICAgICAgICAgICBkZWYgYW5vdGhlcigpOgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAg
ICAgICAgICMgVGhpcyBpcyBhbm90aGVyIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgPj4+IGlt
cG9ydCBvcyAjIHRoaXMgb25lIGRvZXMgaGF2ZSBhIGRvY3Rlc3QKKyAgICAgICAgICAgICAgICAn
JycKKyAgICAgICAgIiIiKQorICAgICAgICBmb3IgcCBpbiAocGF0aCwgdGVzdGRpci50bXBkaXIp
OgorICAgICAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0t
ZG9jdGVzdC1tb2R1bGVzJykKKyAgICAgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDIKKyAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzBdLCBEb2N0ZXN0SXRlbSkKKyAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzFdLCBEb2N0ZXN0SXRlbSkKKyAgICAgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzBdLnBhcmVudCwgRG9jdGVzdE1vZHVsZSkKKyAg
ICAgICAgICAgIGFzc2VydCBpdGVtc1swXS5wYXJlbnQgaXMgaXRlbXNbMV0ucGFyZW50CisKKyAg
ICBkZWYgdGVzdF9zaW1wbGVfZG9jdGVzdGZpbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9jPSIiIgorICAgICAgICAgICAgPj4+IHggPSAx
CisgICAgICAgICAgICA+Pj4geCA9PSAxCisgICAgICAgICAgICBGYWxzZQorICAgICAgICAiIiIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCApCisgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKGZhaWxlZD0xKQorCisgICAgZGVmIHRlc3RfbmV3X3BhdHRlcm4oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHhkb2M9IiIiCisg
ICAgICAgICAgICA+Pj4geCA9IDEKKyAgICAgICAgICAgID4+PiB4ID09IDEKKyAgICAgICAgICAg
IEZhbHNlCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KHAsICItLWRvY3Rlc3QtZ2xvYj14Ki50eHQiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShmYWlsZWQ9MSkKKworICAgIGRlZiB0ZXN0X211bHRpcGxlX3BhdHRlcm5zKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJUZXN0IHN1cHBvcnQgZm9yIG11bHRpcGxlIC0tZG9jdGVzdC1nbG9i
IGFyZ3VtZW50cyAoIzEyNTUpLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtldHh0
ZmlsZSh4ZG9jPSIiIgorICAgICAgICAgICAgPj4+IDEKKyAgICAgICAgICAgIDEKKyAgICAgICAg
IiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKCcuZm9vJywgdGVzdD0iIiIKKyAgICAgICAg
ICAgID4+PiAxCisgICAgICAgICAgICAxCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5t
YWtldHh0ZmlsZSh0ZXN0X25vcm1hbD0iIiIKKyAgICAgICAgICAgID4+PiAxCisgICAgICAgICAg
ICAxCisgICAgICAgICIiIikKKyAgICAgICAgZXhwZWN0ZWQgPSBzZXQoWyd4ZG9jLnR4dCcsICd0
ZXN0LmZvbycsICd0ZXN0X25vcm1hbC50eHQnXSkKKyAgICAgICAgYXNzZXJ0IHNldCh4LmJhc2Vu
YW1lIGZvciB4IGluIHRlc3RkaXIudG1wZGlyLmxpc3RkaXIoKSkgPT0gZXhwZWN0ZWQKKyAgICAg
ICAgYXJncyA9IFsiLS1kb2N0ZXN0LWdsb2I9eGRvYyoudHh0IiwgIi0tZG9jdGVzdC1nbG9iPSou
Zm9vIl0KKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKnRlc3QuZm9vICon
LAorICAgICAgICAgICAgJyp4ZG9jLnR4dCAqJywKKyAgICAgICAgICAgICcqMiBwYXNzZWQqJywK
KyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyp0ZXN0X25vcm1h
bC50eHQgKicsCisgICAgICAgICAgICAnKjEgcGFzc2VkKicsCisgICAgICAgIF0pCisKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICcgICB0ZXN0X3N0cmluZywgICAgZW5j
b2RpbmcnLAorICAgICAgICBbCisgICAgICAgICAgICAodSdmb28nLCAnYXNjaWknKSwKKyAgICAg
ICAgICAgICh1J8O2w6TDvCcsICdsYXRpbjEnKSwKKyAgICAgICAgICAgICh1J8O2w6TDvCcsICd1
dGYtOCcpCisgICAgICAgIF0KKyAgICApCisgICAgZGVmIHRlc3RfZW5jb2Rpbmcoc2VsZiwgdGVz
dGRpciwgdGVzdF9zdHJpbmcsIGVuY29kaW5nKToKKyAgICAgICAgIiIiVGVzdCBzdXBwb3J0IGZv
ciBkb2N0ZXN0X2VuY29kaW5nIGluaSBvcHRpb24uCisgICAgICAgICIiIgorICAgICAgICB0ZXN0
ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgZG9jdGVz
dF9lbmNvZGluZz17MH0KKyAgICAgICAgIiIiLmZvcm1hdChlbmNvZGluZykpCisgICAgICAgIGRv
Y3Rlc3QgPSB1IiIiCisgICAgICAgICAgICA+Pj4gdSJ7MH0iCisgICAgICAgICAgICB7MX0KKyAg
ICAgICAgIiIiLmZvcm1hdCh0ZXN0X3N0cmluZywgcmVwcih0ZXN0X3N0cmluZykpCisgICAgICAg
IHRlc3RkaXIuX21ha2VmaWxlKCIudHh0IiwgW2RvY3Rlc3RdLCB7fSwgZW5jb2Rpbmc9ZW5jb2Rp
bmcpCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKjEgcGFzc2VkKicsCisg
ICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9kb2N0ZXN0X3VuZXhwZWN0ZWRfZXhjZXB0aW9uKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAgICAg
ICAgPj4+IGkgPSAwCisgICAgICAgICAgICA+Pj4gMCAvIGkKKyAgICAgICAgICAgIDIKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kb2N0ZXN0LW1v
ZHVsZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIip1bmV4cGVjdGVkX2V4Y2VwdGlvbioiLAorICAgICAgICAgICAgIio+Pj4gaSA9IDAqIiwK
KyAgICAgICAgICAgICIqPj4+IDAgLyBpKiIsCisgICAgICAgICAgICAiKlVORVhQRUNURUQqWmVy
b0RpdmlzaW9uKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9kb2NzdHJpbmdfcGFydGlh
bF9jb250ZXh0X2Fyb3VuZF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0
aGF0IHdlIHNob3cgc29tZSBjb250ZXh0IGJlZm9yZSB0aGUgYWN0dWFsIGxpbmUgb2YgYSBmYWls
aW5nCisgICAgICAgIGRvY3Rlc3QuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoJycnCisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICAgICAgdGV4dC1saW5lLTEKKyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUtMgor
ICAgICAgICAgICAgICAgIHRleHQtbGluZS0zCisgICAgICAgICAgICAgICAgdGV4dC1saW5lLTQK
KyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUtNQorICAgICAgICAgICAgICAgIHRleHQtbGluZS02
CisgICAgICAgICAgICAgICAgdGV4dC1saW5lLTcKKyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUt
OAorICAgICAgICAgICAgICAgIHRleHQtbGluZS05CisgICAgICAgICAgICAgICAgdGV4dC1saW5l
LTEwCisgICAgICAgICAgICAgICAgdGV4dC1saW5lLTExCisgICAgICAgICAgICAgICAgPj4+IDEg
KyAxCisgICAgICAgICAgICAgICAgMworCisgICAgICAgICAgICAgICAgdGV4dC1saW5lLWFmdGVy
CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoJy0tZG9jdGVzdC1tb2R1bGVzJykKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqZG9jc3RyaW5nX3BhcnRpYWxfY29udGV4
dF9hcm91bmRfZXJyb3IqJywKKyAgICAgICAgICAgICcwMDUqdGV4dC1saW5lLTMnLAorICAgICAg
ICAgICAgJzAwNip0ZXh0LWxpbmUtNCcsCisgICAgICAgICAgICAnMDEzKnRleHQtbGluZS0xMScs
CisgICAgICAgICAgICAnMDE0Kj4+PiAxICsgMScsCisgICAgICAgICAgICAnRXhwZWN0ZWQ6JywK
KyAgICAgICAgICAgICcgICAgMycsCisgICAgICAgICAgICAnR290OicsCisgICAgICAgICAgICAn
ICAgIDInLAorICAgICAgICBdKQorICAgICAgICAjIGxpbmVzIGJlbG93IHNob3VsZCBiZSB0cmlt
bWVkIG91dAorICAgICAgICBhc3NlcnQgJ3RleHQtbGluZS0yJyBub3QgaW4gcmVzdWx0LnN0ZG91
dC5zdHIoKQorICAgICAgICBhc3NlcnQgJ3RleHQtbGluZS1hZnRlcicgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0X2RvY3N0cmluZ19mdWxsX2NvbnRleHRfYXJvdW5k
X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IHRoYXQgd2Ugc2hvdyB0aGUg
d2hvbGUgY29udGV4dCBiZWZvcmUgdGhlIGFjdHVhbCBsaW5lIG9mIGEgZmFpbGluZworICAgICAg
ICBkb2N0ZXN0LCBwcm92aWRlZCB0aGF0IHRoZSBjb250ZXh0IGlzIHVwIHRvIDEwIGxpbmVzIGxv
bmcuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAg
ICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgdGV4
dC1saW5lLTEKKyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUtMgorCisgICAgICAgICAgICAgICAg
Pj4+IDEgKyAxCisgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgICIiIgorICAgICAg
ICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWRvY3Rlc3QtbW9k
dWxlcycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAnKmRvY3N0cmluZ19mdWxsX2NvbnRleHRfYXJvdW5kX2Vycm9yKicsCisgICAgICAgICAgICAn
MDAzKnRleHQtbGluZS0xJywKKyAgICAgICAgICAgICcwMDQqdGV4dC1saW5lLTInLAorICAgICAg
ICAgICAgJzAwNio+Pj4gMSArIDEnLAorICAgICAgICAgICAgJ0V4cGVjdGVkOicsCisgICAgICAg
ICAgICAnICAgIDMnLAorICAgICAgICAgICAgJ0dvdDonLAorICAgICAgICAgICAgJyAgICAyJywK
KyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RvY3Rlc3RfbGluZWRhdGFfbWlzc2luZyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbignaGVsbG8ucHknKS53cml0
ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIEZ1bihvYmplY3Qp
OgorICAgICAgICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0KHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICAgICAgPj4+IGEg
PSAxCisgICAgICAgICAgICAgICAgICAgID4+PiAxLzAKKyAgICAgICAgICAgICAgICAgICAgJycn
CisgICAgICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgIipoZWxsbyoiLAorICAgICAgICAgICAgIipFWEFNUExFIExPQ0FUSU9O
IFVOS05PV04sIG5vdCBzaG93aW5nIGFsbCB0ZXN0cyBvZiB0aGF0IGV4YW1wbGUqIiwKKyAgICAg
ICAgICAgICIqMS8wKiIsCisgICAgICAgICAgICAiKlVORVhQRUNURUQqWmVyb0RpdmlzaW9uKiIs
CisgICAgICAgICAgICAiKjEgZmFpbGVkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9k
b2N0ZXN0X3VuZXhfaW1wb3J0ZXJyb3Jfb25seV90eHQoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXR4dGZpbGUoIiIiCisgICAgICAgICAgICA+Pj4gaW1wb3J0IGFzZGFsc2Rr
amFzbGtkamFzZAorICAgICAgICAgICAgPj4+CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICAjIGRvY3Rlc3QgaXMgbmV2ZXIgZXhlY3V0
ZWQgYmVjYXVzZSBvZiBlcnJvciBkdXJpbmcgaGVsbG8ucHkgY29sbGVjdGlvbgorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIio+Pj4gaW1wb3J0IGFz
ZGFscyoiLAorICAgICAgICAgICAgIipVTkVYUEVDVEVEKntlfSoiLmZvcm1hdChlPU1PRFVMRV9O
T1RfRk9VTkRfRVJST1IpLAorICAgICAgICAgICAgIntlfTogTm8gbW9kdWxlIG5hbWVkICphc2Rh
bCoiLmZvcm1hdChlPU1PRFVMRV9OT1RfRk9VTkRfRVJST1IpLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3RfZG9jdGVzdF91bmV4X2ltcG9ydGVycm9yX3dpdGhfbW9kdWxlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJoZWxsby5weSIpLndyaXRlKF9weXRl
c3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IGFzZGFsc2RramFzbGtkamFz
ZAorICAgICAgICAiIiIpKQorICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAg
ICAgICAgPj4+IGltcG9ydCBoZWxsbworICAgICAgICAgICAgPj4+CisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAg
ICAgICAgIyBkb2N0ZXN0IGlzIG5ldmVyIGV4ZWN1dGVkIGJlY2F1c2Ugb2YgZXJyb3IgZHVyaW5n
IGhlbGxvLnB5IGNvbGxlY3Rpb24KKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqRVJST1IgY29sbGVjdGluZyBoZWxsby5weSoiLAorICAgICAgICAg
ICAgIip7ZX06IE5vIG1vZHVsZSBuYW1lZCAqYXNkYWxzKiIuZm9ybWF0KGU9TU9EVUxFX05PVF9G
T1VORF9FUlJPUiksCisgICAgICAgICAgICAiKkludGVycnVwdGVkOiAxIGVycm9ycyBkdXJpbmcg
Y29sbGVjdGlvbioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgICcnJworICAgICAgICAgICAgICAgID4+PiB4ID0gMQorICAgICAgICAgICAgICAgID4+
PiB4ID09IDEKKyAgICAgICAgICAgICAgICBGYWxzZQorCisgICAgICAgICAgICAnJycKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCwgIi0tZG9jdGVz
dC1tb2R1bGVzIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEpCisKKyAg
ICBkZWYgdGVzdF9kb2N0ZXN0bW9kdWxlX2V4dGVybmFsX2FuZF9pc3N1ZTExNihzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWtweWRpcigiaGVsbG8iKQorICAgICAgICBwLmpv
aW4oIl9faW5pdF9fLnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAg
ICAgICBkZWYgc29tZWZ1bmMoKToKKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAg
ICAgICAgPj4+IGkgPSAwCisgICAgICAgICAgICAgICAgICAgID4+PiBpICsgMQorICAgICAgICAg
ICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICIiIikpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnMDA0ICo+Pj4g
aSA9IDAnLAorICAgICAgICAgICAgJzAwNSAqPj4+IGkgKyAxJywKKyAgICAgICAgICAgICcqRXhw
ZWN0ZWQ6JywKKyAgICAgICAgICAgICIqICAgIDIiLAorICAgICAgICAgICAgIipHb3Q6IiwKKyAg
ICAgICAgICAgICIqICAgIDEiLAorICAgICAgICAgICAgIio6NTogRG9jVGVzdEZhaWx1cmUiCisg
ICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90eHRmaWxlX2ZhaWxpbmcoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAgICAgICAgPj4+IGkg
PSAwCisgICAgICAgICAgICA+Pj4gaSArIDEKKyAgICAgICAgICAgIDIKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXMiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJzAwMSA+Pj4gaSA9IDAnLAor
ICAgICAgICAgICAgJzAwMiA+Pj4gaSArIDEnLAorICAgICAgICAgICAgJ0V4cGVjdGVkOicsCisg
ICAgICAgICAgICAiICAgIDIiLAorICAgICAgICAgICAgIkdvdDoiLAorICAgICAgICAgICAgIiAg
ICAxIiwKKyAgICAgICAgICAgICIqdGVzdF90eHRmaWxlX2ZhaWxpbmcudHh0OjI6IERvY1Rlc3RG
YWlsdXJlIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdHh0ZmlsZV93aXRoX2ZpeHR1cmVz
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtldHh0ZmlsZSgiIiIKKyAg
ICAgICAgICAgID4+PiBkaXIgPSBnZXRmaXh0dXJlKCd0bXBkaXInKQorICAgICAgICAgICAgPj4+
IHR5cGUoZGlyKS5fX25hbWVfXworICAgICAgICAgICAgJ0xvY2FsUGF0aCcKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCwgKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3R4dGZpbGVfd2l0aF91
c2VmaXh0dXJlc19pbl9pbmkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWlu
aSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICB1c2VmaXh0dXJlcyA9IG15
Zml4dHVyZQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisg
ICAgICAgICAgICBkZWYgbXlmaXh0dXJlKG1vbmtleXBhdGNoKToKKyAgICAgICAgICAgICAgICBt
b25rZXlwYXRjaC5zZXRlbnYoIkhFTExPIiwgIldPUkxEIikKKyAgICAgICAgIiIiKQorCisgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAgICAgICAgPj4+IGltcG9ydCBv
cworICAgICAgICAgICAgPj4+IG9zLmVudmlyb25bIkhFTExPIl0KKyAgICAgICAgICAgICdXT1JM
RCcKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCwg
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0
X2RvY3Rlc3Rtb2R1bGVfd2l0aF9maXh0dXJlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAg
ID4+PiBkaXIgPSBnZXRmaXh0dXJlKCd0bXBkaXInKQorICAgICAgICAgICAgICAgID4+PiB0eXBl
KGRpcikuX19uYW1lX18KKyAgICAgICAgICAgICAgICAnTG9jYWxQYXRoJworICAgICAgICAgICAg
JycnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHAs
ICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZV90aHJlZV90ZXN0cyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICcn
JworICAgICAgICAgICAgPj4+IGRpciA9IGdldGZpeHR1cmUoJ3RtcGRpcicpCisgICAgICAgICAg
ICA+Pj4gdHlwZShkaXIpLl9fbmFtZV9fCisgICAgICAgICAgICAnTG9jYWxQYXRoJworICAgICAg
ICAgICAgJycnCisgICAgICAgICAgICBkZWYgbXlfZnVuYygpOgorICAgICAgICAgICAgICAgICcn
JworICAgICAgICAgICAgICAgID4+PiBtYWdpYyA9IDQyCisgICAgICAgICAgICAgICAgPj4+IG1h
Z2ljIC0gNDIKKyAgICAgICAgICAgICAgICAwCisgICAgICAgICAgICAgICAgJycnCisgICAgICAg
ICAgICBkZWYgdW51c2VmdWwoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBk
ZWYgYW5vdGhlcigpOgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgID4+PiBp
bXBvcnQgb3MKKyAgICAgICAgICAgICAgICA+Pj4gb3MgaXMgb3MKKyAgICAgICAgICAgICAgICBU
cnVlCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZV90
d29fdGVzdHNfb25lX2ZhaWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6CisgICAgICAg
ICAgICAgICAgZGVmIGJhZF9tZXRoKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICAnJycKKyAg
ICAgICAgICAgICAgICAgICAgPj4+IG1hZ2ljID0gNDIKKyAgICAgICAgICAgICAgICAgICAgPj4+
IG1hZ2ljCisgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAgICAgICAgJycnCisg
ICAgICAgICAgICAgICAgZGVmIG5pY2VfbWV0aChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
JycnCisgICAgICAgICAgICAgICAgICAgID4+PiBtYWdpYyA9IDQyCisgICAgICAgICAgICAgICAg
ICAgID4+PiBtYWdpYyAtIDQyCisgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAg
ICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KGZhaWxlZD0xLCBwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2lnbm9yZWRfd2hpdGVzcGFjZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgICAgIGRvY3Rlc3Rfb3B0aW9uZmxhZ3MgPSBFTExJUFNJUyBOT1JN
QUxJWkVfV0hJVEVTUEFDRQorICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6CisgICAgICAgICAg
ICAgICAgJycnCisgICAgICAgICAgICAgICAgPj4+IGEgPSAiZm9vICAgICIKKyAgICAgICAgICAg
ICAgICA+Pj4gcHJpbnQoYSkKKyAgICAgICAgICAgICAgICBmb28KKyAgICAgICAgICAgICAgICAn
JycKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfbm9uX2lnbm9yZWRfd2hp
dGVzcGFjZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAg
ICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGRvY3Rlc3Rfb3B0aW9uZmxhZ3MgPSBFTExJ
UFNJUworICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgJycnCisg
ICAgICAgICAgICAgICAgPj4+IGEgPSAiZm9vICAgICIKKyAgICAgICAgICAgICAgICA+Pj4gcHJp
bnQoYSkKKyAgICAgICAgICAgICAgICBmb28KKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKGZhaWxlZD0xLCBwYXNzZWQ9MCkKKworICAgIGRlZiB0ZXN0X2lnbm9yZWRfd2hpdGVzcGFj
ZV9nbG9iKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAg
ICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgZG9jdGVzdF9vcHRpb25mbGFncyA9IEVMTElQ
U0lTIE5PUk1BTElaRV9XSElURVNQQUNFCisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXR4dGZpbGUoeGRvYz0iIiIKKyAgICAgICAgICAgID4+PiBhID0gImZvbyAgICAiCisg
ICAgICAgICAgICA+Pj4gcHJpbnQoYSkKKyAgICAgICAgICAgIGZvbworICAgICAgICAiIiIpCisg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LWdsb2I9eCou
dHh0IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYg
dGVzdF9ub25faWdub3JlZF93aGl0ZXNwYWNlX2dsb2Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBk
b2N0ZXN0X29wdGlvbmZsYWdzID0gRUxMSVBTSVMKKyAgICAgICAgIiIiKQorICAgICAgICBwID0g
dGVzdGRpci5tYWtldHh0ZmlsZSh4ZG9jPSIiIgorICAgICAgICAgICAgPj4+IGEgPSAiZm9vICAg
ICIKKyAgICAgICAgICAgID4+PiBwcmludChhKQorICAgICAgICAgICAgZm9vCisgICAgICAgICIi
IikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtZ2xv
Yj14Ki50eHQiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2Vk
PTApCisKKyAgICBkZWYgdGVzdF9jb250YWluc191bmljb2RlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiJGaXggaW50ZXJuYWwgZXJyb3Igd2l0aCBkb2NzdHJpbmdzIGNvbnRhaW5pbmcgbm9u
LWFzY2lpIGNoYXJhY3RlcnMuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUodScnJworICAgICAgICAgICAgIyBlbmNvZGluZzogdXRmLTgKKyAgICAgICAgICAgIGRlZiBm
b28oKToKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICA+Pj4gbmFtZSA9ICfR
gScgIyBub3QgbGV0dGVyICdjJyBidXQgaW5zdGVhZCBDeXJpbGxpYyAncycuCisgICAgICAgICAg
ICAgICAgJ2FueXRoaW5nJworICAgICAgICAgICAgICAgICIiIgorICAgICAgICAnJycpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWRvY3Rlc3QtbW9kdWxlcycpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnR290IG5vdGhp
bmcnLAorICAgICAgICAgICAgJyogMSBmYWlsZWQgaW4qJywKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3JzX29uX2RvY3Rlc3Qoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgYXNk
ZgorCisgICAgICAgICAgICBkZWYgYWRkX29uZSh4KToKKyAgICAgICAgICAgICAgICAnJycKKyAg
ICAgICAgICAgICAgICA+Pj4gYWRkX29uZSgxKQorICAgICAgICAgICAgICAgIDIKKyAgICAgICAg
ICAgICAgICAnJycKKyAgICAgICAgICAgICAgICByZXR1cm4geCArIDEKKyAgICAgICAgIiIiKQor
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1vZHVs
ZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZG9jdGVzdC1pZ25v
cmUtaW1wb3J0LWVycm9ycyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9
MSwgZmFpbGVkPTEsIHBhc3NlZD0wKQorCisgICAgZGVmIHRlc3RfanVuaXRfcmVwb3J0X2Zvcl9k
b2N0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgIzcxMzogRml4IC0t
anVuaXQteG1sIG9wdGlvbiB3aGVuIHVzZWQgd2l0aCAtLWRvY3Rlc3QtbW9kdWxlcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgPj4+IDEgKyAx
CisgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
cCwgIi0tZG9jdGVzdC1tb2R1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItLWp1bml0LXhtbD1qdW5pdC54bWwiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShmYWlsZWQ9MSkKKworICAgIGRlZiB0ZXN0X3VuaWNvZGVfZG9jdGVzdChzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgY2FzZSBmb3IgaXNzdWUgMjQzNDogRGVjb2Rl
RXJyb3Igb24gUHl0aG9uIDIgd2hlbiBkb2N0ZXN0IGNvbnRhaW5zIG5vbi1hc2NpaQorICAgICAg
ICBjaGFyYWN0ZXJzLgorICAgICAgICAiIiIKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXR4dGZp
bGUodGVzdF91bmljb2RlX2RvY3Rlc3Q9IiIiCisgICAgICAgICAgICAuLiBkb2N0ZXN0OjoKKwor
ICAgICAgICAgICAgICAgID4+PiBwcmludCgKKyAgICAgICAgICAgICAgICAuLi4gICAgIkhpXFxu
XFxuQnnDqSIpCisgICAgICAgICAgICAgICAgSGkKKyAgICAgICAgICAgICAgICAuLi4KKyAgICAg
ICAgICAgICAgICBCecOpCisgICAgICAgICAgICAgICAgPj4+IDEvMCAgIyBCecOpCisgICAgICAg
ICAgICAgICAgMQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAnKlVORVhQRUNURUQgRVhDRVBUSU9OOiBaZXJvRGl2aXNpb25FcnJvcionLAorICAgICAgICAg
ICAgJyoxIGZhaWxlZConLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdW5pY29kZV9kb2N0
ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgY2Fz
ZSBmb3IgaXNzdWUgMjQzNDogRGVjb2RlRXJyb3Igb24gUHl0aG9uIDIgd2hlbiBkb2N0ZXN0IGRv
Y3N0cmluZworICAgICAgICBjb250YWlucyBub24tYXNjaWkgY2hhcmFjdGVycy4KKyAgICAgICAg
IiIiCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF91bmljb2RlX2RvY3Rlc3Rf
bW9kdWxlPSIiIgorICAgICAgICAgICAgIyAtKi0gZW5jb2Rpbmc6IHV0Zi04IC0qLQorICAgICAg
ICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKKyAgICAgICAg
ICAgIGRlZiBmaXhfYmFkX3VuaWNvZGUodGV4dCk6CisgICAgICAgICAgICAgICAgJycnCisgICAg
ICAgICAgICAgICAgICAgID4+PiBwcmludChmaXhfYmFkX3VuaWNvZGUoJ8ODwrpuaWNvJykpCisg
ICAgICAgICAgICAgICAgICAgIMO6bmljbworICAgICAgICAgICAgICAgICcnJworICAgICAgICAg
ICAgICAgIHJldHVybiAiw7puaWNvIgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KHAsICctLWRvY3Rlc3QtbW9kdWxlcycpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbJyogMSBwYXNzZWQgKiddKQorCisgICAgZGVmIHRlc3RfcmVw
b3J0aW5mbyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgJycnCisgICAgICAgIFRlc3QgY2FzZSB0
byBtYWtlIHN1cmUgdGhhdCBEb2N0ZXN0SXRlbS5yZXBvcnRpbmZvKCkgcmV0dXJucyBsaW5lbm8u
CisgICAgICAgICcnJworICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfcmVwb3J0
aW5mbz0iIiIKKyAgICAgICAgICAgIGRlZiBmb28oeCk6CisgICAgICAgICAgICAgICAgJycnCisg
ICAgICAgICAgICAgICAgICAgID4+PiBmb28oJ2EnKQorICAgICAgICAgICAgICAgICAgICAnYicK
KyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2MnCisgICAgICAg
ICIiIikKKyAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAs
ICctLWRvY3Rlc3QtbW9kdWxlcycpCisgICAgICAgIHJlcG9ydGluZm8gPSBpdGVtc1swXS5yZXBv
cnRpbmZvKCkKKyAgICAgICAgYXNzZXJ0IHJlcG9ydGluZm9bMV0gPT0gMQorCisgICAgZGVmIHRl
c3RfdmFsaWRfc2V0dXBfcHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICcnJworICAgICAgICBU
ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IHB5dGVzdCBpZ25vcmVzIHZhbGlkIHNldHVwLnB5IGZpbGVz
IHdoZW4gcmFuCisgICAgICAgIHdpdGggLS1kb2N0ZXN0LW1vZHVsZXMKKyAgICAgICAgJycnCisg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoc2V0dXA9IiIiCisgICAgICAgICAgICBmcm9t
IHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2VzCisgICAgICAgICAgICBzZXR1
cChuYW1lPSdzYW1wbGUnLAorICAgICAgICAgICAgICAgICAgdmVyc2lvbj0nMC4wJywKKyAgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdkZXNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAg
ICBwYWNrYWdlcz1maW5kX3BhY2thZ2VzKCkKKyAgICAgICAgICAgICkKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLS1kb2N0ZXN0LW1vZHVsZXMn
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqY29sbGVjdGVkIDAgaXRl
bXMqJ10pCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX3NldHVwX3B5KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICAnJycKKyAgICAgICAgVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBweXRlc3QgcmVhZHMg
c2V0dXAucHkgZmlsZXMgdGhhdCBhcmUgbm90IHVzZWQKKyAgICAgICAgZm9yIHB5dGhvbiBwYWNr
YWdlcyB3aGVuIHJhbiB3aXRoIC0tZG9jdGVzdC1tb2R1bGVzCisgICAgICAgICcnJworICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHNldHVwPSIiIgorICAgICAgICAgICAgZGVmIHRlc3Rf
Zm9vKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdiYXInCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy0tZG9jdGVzdC1tb2R1bGVzJykKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKmNvbGxlY3RlZCAxIGl0ZW0qJ10p
CisKKworY2xhc3MgVGVzdExpdGVyYWxzKG9iamVjdCk6CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ2NvbmZpZ19tb2RlJywgWydpbmknLCAnY29tbWVudCddKQorICAgIGRlZiB0ZXN0
X2FsbG93X3VuaWNvZGUoc2VsZiwgdGVzdGRpciwgY29uZmlnX21vZGUpOgorICAgICAgICAiIiJU
ZXN0IHRoYXQgZG9jdGVzdHMgd2hpY2ggb3V0cHV0IHVuaWNvZGUgd29yayBpbiBhbGwgcHl0aG9u
IHZlcnNpb25zCisgICAgICAgIHRlc3RlZCBieSBweXRlc3Qgd2hlbiB0aGUgQUxMT1dfVU5JQ09E
RSBvcHRpb24gaXMgdXNlZCAoZWl0aGVyIGluCisgICAgICAgIHRoZSBpbmkgZmlsZSBvciBieSBh
biBpbmxpbmUgY29tbWVudCkuCisgICAgICAgICIiIgorICAgICAgICBpZiBjb25maWdfbW9kZSA9
PSAnaW5pJzoKKyAgICAgICAgICAgIHRlc3RkaXIubWFrZWluaSgnJycKKyAgICAgICAgICAgIFtw
eXRlc3RdCisgICAgICAgICAgICBkb2N0ZXN0X29wdGlvbmZsYWdzID0gQUxMT1dfVU5JQ09ERQor
ICAgICAgICAgICAgJycnKQorICAgICAgICAgICAgY29tbWVudCA9ICcnCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBjb21tZW50ID0gJyNkb2N0ZXN0OiArQUxMT1dfVU5JQ09ERScKKworICAg
ICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9jPSIiIgorICAgICAgICAgICAgPj4+IGIn
MTInLmRlY29kZSgnYXNjaWknKSB7Y29tbWVudH0KKyAgICAgICAgICAgICcxMicKKyAgICAgICAg
IiIiLmZvcm1hdChjb21tZW50PWNvbW1lbnQpKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Zm9vPSIiIgorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAnJycKKyAgICAg
ICAgICAgICAgPj4+IGInMTInLmRlY29kZSgnYXNjaWknKSB7Y29tbWVudH0KKyAgICAgICAgICAg
ICAgJzEyJworICAgICAgICAgICAgICAnJycKKyAgICAgICAgIiIiLmZvcm1hdChjb21tZW50PWNv
bW1lbnQpKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi0tZG9jdGVzdC1t
b2R1bGVzIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NvbmZpZ19tb2RlJywgWydpbmknLCAnY29tbWVudCdd
KQorICAgIGRlZiB0ZXN0X2FsbG93X2J5dGVzKHNlbGYsIHRlc3RkaXIsIGNvbmZpZ19tb2RlKToK
KyAgICAgICAgIiIiVGVzdCB0aGF0IGRvY3Rlc3RzIHdoaWNoIG91dHB1dCBieXRlcyB3b3JrIGlu
IGFsbCBweXRob24gdmVyc2lvbnMKKyAgICAgICAgdGVzdGVkIGJ5IHB5dGVzdCB3aGVuIHRoZSBB
TExPV19CWVRFUyBvcHRpb24gaXMgdXNlZCAoZWl0aGVyIGluCisgICAgICAgIHRoZSBpbmkgZmls
ZSBvciBieSBhbiBpbmxpbmUgY29tbWVudCkoIzEyODcpLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgY29uZmlnX21vZGUgPT0gJ2luaSc6CisgICAgICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoJycn
CisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgZG9jdGVzdF9vcHRpb25mbGFncyA9
IEFMTE9XX0JZVEVTCisgICAgICAgICAgICAnJycpCisgICAgICAgICAgICBjb21tZW50ID0gJycK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbW1lbnQgPSAnI2RvY3Rlc3Q6ICtBTExPV19C
WVRFUycKKworICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9jPSIiIgorICAgICAg
ICAgICAgPj4+IGInZm9vJyAge2NvbW1lbnR9CisgICAgICAgICAgICAnZm9vJworICAgICAgICAi
IiIuZm9ybWF0KGNvbW1lbnQ9Y29tbWVudCkpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShm
b289IiIiCisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICcnJworICAgICAg
ICAgICAgICA+Pj4gYidmb28nICB7Y29tbWVudH0KKyAgICAgICAgICAgICAgJ2ZvbycKKyAgICAg
ICAgICAgICAgJycnCisgICAgICAgICIiIi5mb3JtYXQoY29tbWVudD1jb21tZW50KSkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfdW5pY29k
ZV9zdHJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgdGhhdCBkb2N0ZXN0cyB3
aGljaCBvdXRwdXQgdW5pY29kZSBmYWlsIGluIFB5dGhvbiAyIHdoZW4KKyAgICAgICAgdGhlIEFM
TE9XX1VOSUNPREUgb3B0aW9uIGlzIG5vdCB1c2VkLiBUaGUgc2FtZSB0ZXN0IHNob3VsZCBwYXNz
CisgICAgICAgIGluIFB5dGhvbiAzLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
dHh0ZmlsZSh0ZXN0X2RvYz0iIiIKKyAgICAgICAgICAgID4+PiBiJzEyJy5kZWNvZGUoJ2FzY2lp
JykKKyAgICAgICAgICAgICcxMicKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBwYXNzZWQgPSBpbnQoc3lzLnZlcnNpb25faW5mb1sw
XSA+PSAzKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9cGFzc2VkLCBmYWls
ZWQ9aW50KG5vdCBwYXNzZWQpKQorCisgICAgZGVmIHRlc3RfYnl0ZXNfbGl0ZXJhbChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IGRvY3Rlc3RzIHdoaWNoIG91dHB1dCBieXRl
cyBmYWlsIGluIFB5dGhvbiAzIHdoZW4KKyAgICAgICAgdGhlIEFMTE9XX0JZVEVTIG9wdGlvbiBp
cyBub3QgdXNlZC4gVGhlIHNhbWUgdGVzdCBzaG91bGQgcGFzcworICAgICAgICBpbiBQeXRob24g
MiAoIzEyODcpLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtldHh0ZmlsZSh0ZXN0
X2RvYz0iIiIKKyAgICAgICAgICAgID4+PiBiJ2ZvbycKKyAgICAgICAgICAgICdmb28nCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cGFzc2VkID0gaW50KHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMikKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPXBhc3NlZCwgZmFpbGVkPWludChub3QgcGFzc2VkKSkKKworCitj
bGFzcyBUZXN0RG9jdGVzdFNraXBzKG9iamVjdCk6CisgICAgIiIiCisgICAgSWYgYWxsIGV4YW1w
bGVzIGluIGEgZG9jdGVzdCBhcmUgc2tpcHBlZCBkdWUgdG8gdGhlIFNLSVAgb3B0aW9uLCB0aGVu
CisgICAgdGhlIHRlc3RzIHNob3VsZCBiZSBTS0lQUEVEIHJhdGhlciB0aGFuIFBBU1NFRC4gKCM5
NTcpCisgICAgIiIiCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsndGV4dCcsICdtb2R1
bGUnXSkKKyAgICBkZWYgbWFrZWRvY3Rlc3Qoc2VsZiwgdGVzdGRpciwgcmVxdWVzdCk6CisgICAg
ICAgIGRlZiBtYWtlaXQoZG9jdGVzdCk6CisgICAgICAgICAgICBtb2RlID0gcmVxdWVzdC5wYXJh
bQorICAgICAgICAgICAgaWYgbW9kZSA9PSAndGV4dCc6CisgICAgICAgICAgICAgICAgdGVzdGRp
ci5tYWtldHh0ZmlsZShkb2N0ZXN0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgbW9kZSA9PSAnbW9kdWxlJworICAgICAgICAgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgnIiIiXG4lcyIiIicgJSBkb2N0ZXN0KQorCisgICAgICAgIHJldHVybiBtYWtlaXQKKwor
ICAgIGRlZiB0ZXN0X29uZV9za2lwcGVkKHNlbGYsIHRlc3RkaXIsIG1ha2Vkb2N0ZXN0KToKKyAg
ICAgICAgbWFrZWRvY3Rlc3QoIiIiCisgICAgICAgICAgICA+Pj4gMSArIDEgICMgZG9jdGVzdDog
K1NLSVAKKyAgICAgICAgICAgIDIKKyAgICAgICAgICAgID4+PiAyICsgMgorICAgICAgICAgICAg
NAorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1k
b2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkK
KworICAgIGRlZiB0ZXN0X29uZV9za2lwcGVkX2ZhaWxlZChzZWxmLCB0ZXN0ZGlyLCBtYWtlZG9j
dGVzdCk6CisgICAgICAgIG1ha2Vkb2N0ZXN0KCIiIgorICAgICAgICAgICAgPj4+IDEgKyAxICAj
IGRvY3Rlc3Q6ICtTS0lQCisgICAgICAgICAgICAyCisgICAgICAgICAgICA+Pj4gMiArIDIKKyAg
ICAgICAgICAgIDIwMAorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShmYWlsZWQ9MSkKKworICAgIGRlZiB0ZXN0X2FsbF9za2lwcGVkKHNlbGYsIHRlc3RkaXIsIG1h
a2Vkb2N0ZXN0KToKKyAgICAgICAgbWFrZWRvY3Rlc3QoIiIiCisgICAgICAgICAgICA+Pj4gMSAr
IDEgICMgZG9jdGVzdDogK1NLSVAKKyAgICAgICAgICAgIDIKKyAgICAgICAgICAgID4+PiAyICsg
MiAgIyBkb2N0ZXN0OiArU0tJUAorICAgICAgICAgICAgMjAwCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3ZhY3Vv
dXNfYWxsX3NraXBwZWQoc2VsZiwgdGVzdGRpciwgbWFrZWRvY3Rlc3QpOgorICAgICAgICBtYWtl
ZG9jdGVzdCgnJykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItLWRvY3Rl
c3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0wLCBza2lw
cGVkPTApCisKKworY2xhc3MgVGVzdERvY3Rlc3RBdXRvVXNlRml4dHVyZXMob2JqZWN0KToKKwor
ICAgIFNDT1BFUyA9IFsnbW9kdWxlJywgJ3Nlc3Npb24nLCAnY2xhc3MnLCAnZnVuY3Rpb24nXQor
CisgICAgZGVmIHRlc3RfZG9jdGVzdF9tb2R1bGVfc2Vzc2lvbl9maXh0dXJlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJUZXN0IHRoYXQgc2Vzc2lvbiBmaXh0dXJlcyBhcmUgaW5pdGlhbGl6
ZWQgZm9yIGRvY3Rlc3QgbW9kdWxlcyAoIzc2OCkKKyAgICAgICAgIiIiCisgICAgICAgICMgc2Vz
c2lvbiBmaXh0dXJlIHdoaWNoIGNoYW5nZXMgc29tZSBnbG9iYWwgZGF0YSwgd2hpY2ggd2lsbAor
ICAgICAgICAjIGJlIGFjY2Vzc2VkIGJ5IGRvY3Rlc3RzIGluIGEgbW9kdWxlCisgICAgICAgIHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgaW1wb3J0IHN5cworCisgICAgICAgICAgICBAcHl0ZXN0LnlpZWxkX2ZpeHR1cmUoYXV0
b3VzZT1UcnVlLCBzY29wZT0nc2Vzc2lvbicpCisgICAgICAgICAgICBkZWYgbXlmaXh0dXJlKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHN5cywgJ3B5dGVzdF9zZXNzaW9u
X2RhdGEnKQorICAgICAgICAgICAgICAgIHN5cy5weXRlc3Rfc2Vzc2lvbl9kYXRhID0gMQorICAg
ICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgZGVsIHN5cy5weXRlc3Rfc2Vzc2lv
bl9kYXRhCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKGZvbz0iIiIK
KyAgICAgICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAg
ICAgICAgICAnJycKKyAgICAgICAgICAgICAgPj4+IGFzc2VydCBzeXMucHl0ZXN0X3Nlc3Npb25f
ZGF0YSA9PSAxCisgICAgICAgICAgICAgICcnJworCisgICAgICAgICAgICBkZWYgYmFyKCk6Cisg
ICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICA+Pj4gYXNzZXJ0IHN5cy5weXRlc3Rfc2Vz
c2lvbl9kYXRhID09IDEKKyAgICAgICAgICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMiBwYXNzZWQqJykKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgnc2NvcGUnLCBTQ09QRVMpCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdlbmFibGVfZG9jdGVzdCcsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfZml4
dHVyZV9zY29wZXMoc2VsZiwgdGVzdGRpciwgc2NvcGUsIGVuYWJsZV9kb2N0ZXN0KToKKyAgICAg
ICAgIiIiVGVzdCB0aGF0IGF1dG8tdXNlIGZpeHR1cmVzIHdvcmsgcHJvcGVybHkgd2l0aCBkb2N0
ZXN0IG1vZHVsZXMuCisgICAgICAgIFNlZSAjMTA1NyBhbmQgIzExMDAuCisgICAgICAgICIiIgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9Intz
Y29wZX0iKQorICAgICAgICAgICAgZGVmIGF1dG8ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIDk5CisgICAgICAgICcnJy5mb3JtYXQoc2NvcGU9c2NvcGUpKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUodGVzdF8xPScnJworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6Cisg
ICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgPj4+IGdldGZpeHR1cmUoJ2F1dG8n
KSArIDEKKyAgICAgICAgICAgICAgICAxMDAKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2JhcigpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICcn
JykKKyAgICAgICAgcGFyYW1zID0gKCctLWRvY3Rlc3QtbW9kdWxlcycsKSBpZiBlbmFibGVfZG9j
dGVzdCBlbHNlICgpCisgICAgICAgIHBhc3NlcyA9IDMgaWYgZW5hYmxlX2RvY3Rlc3QgZWxzZSAy
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCpwYXJhbXMpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyo9PT0gJWQgcGFzc2VkIGluIConICUgcGFzc2Vz
XSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc2NvcGUnLCBTQ09QRVMpCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhdXRvdXNlJywgW1RydWUsIEZhbHNlXSkKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3VzZV9maXh0dXJlX2luX2RvY3Rlc3QnLCBbVHJ1ZSwg
RmFsc2VdKQorICAgIGRlZiB0ZXN0X2ZpeHR1cmVfbW9kdWxlX2RvY3Rlc3Rfc2NvcGVzKHNlbGYs
IHRlc3RkaXIsIHNjb3BlLCBhdXRvdXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVzZV9maXh0dXJlX2luX2RvY3Rlc3QpOgorICAgICAgICAiIiJUZXN0IHRo
YXQgYXV0by11c2UgZml4dHVyZXMgd29yayBwcm9wZXJseSB3aXRoIGRvY3Rlc3QgZmlsZXMuCisg
ICAgICAgIFNlZSAjMTA1NyBhbmQgIzExMDAuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9e2F1dG91c2V9LCBzY29wZT0ie3Njb3BlfSIpCisg
ICAgICAgICAgICBkZWYgYXV0byhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gOTkK
KyAgICAgICAgJycnLmZvcm1hdChzY29wZT1zY29wZSwgYXV0b3VzZT1hdXRvdXNlKSkKKyAgICAg
ICAgaWYgdXNlX2ZpeHR1cmVfaW5fZG9jdGVzdDoKKyAgICAgICAgICAgIHRlc3RkaXIubWFrZXR4
dGZpbGUodGVzdF9kb2M9IiIiCisgICAgICAgICAgICAgICAgPj4+IGdldGZpeHR1cmUoJ2F1dG8n
KQorICAgICAgICAgICAgICAgIDk5CisgICAgICAgICAgICAiIiIpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9jPSIiIgorICAgICAgICAgICAg
ICAgID4+PiAxICsgMQorICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tZG9jdGVzdC1tb2R1bGVzJykKKyAgICAg
ICAgYXNzZXJ0ICdGQUlMVVJFUycgbm90IGluIHN0cihyZXN1bHQuc3Rkb3V0LnN0cigpKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqPT09IDEgcGFzc2VkIGluIConXSkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc2NvcGUnLCBTQ09QRVMpCisgICAgZGVm
IHRlc3RfYXV0b191c2VfcmVxdWVzdF9hdHRyaWJ1dGVzKHNlbGYsIHRlc3RkaXIsIHNjb3BlKToK
KyAgICAgICAgIiIiQ2hlY2sgdGhhdCBhbGwgYXR0cmlidXRlcyBvZiBhIHJlcXVlc3QgaW4gYW4g
YXV0b3VzZSBmaXh0dXJlCisgICAgICAgIGJlaGF2ZSBhcyBleHBlY3RlZCB3aGVuIHJlcXVlc3Rl
ZCBmb3IgYSBkb2N0ZXN0IGl0ZW0uCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9IntzY29wZX0iKQorICAgICAgICAgICAg
ZGVmIGF1dG8ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgaWYgIntzY29wZX0iID09ICdtb2R1
bGUnOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5tb2R1bGUgaXMgTm9uZQor
ICAgICAgICAgICAgICAgIGlmICJ7c2NvcGV9IiA9PSAnY2xhc3MnOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgcmVxdWVzdC5jbHMgaXMgTm9uZQorICAgICAgICAgICAgICAgIGlmICJ7c2Nv
cGV9IiA9PSAnZnVuY3Rpb24nOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5m
dW5jdGlvbiBpcyBOb25lCisgICAgICAgICAgICAgICAgcmV0dXJuIDk5CisgICAgICAgICcnJy5m
b3JtYXQoc2NvcGU9c2NvcGUpKQorICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9j
PSIiIgorICAgICAgICAgICAgPj4+IDEgKyAxCisgICAgICAgICAgICAyCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tZG9jdGVzdC1tb2R1bGVzJykK
KyAgICAgICAgYXNzZXJ0ICdGQUlMVVJFUycgbm90IGluIHN0cihyZXN1bHQuc3Rkb3V0LnN0cigp
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqPT09IDEgcGFzc2VkIGlu
IConXSkKKworCitjbGFzcyBUZXN0RG9jdGVzdE5hbWVzcGFjZUZpeHR1cmUob2JqZWN0KToKKwor
ICAgIFNDT1BFUyA9IFsnbW9kdWxlJywgJ3Nlc3Npb24nLCAnY2xhc3MnLCAnZnVuY3Rpb24nXQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzY29wZScsIFNDT1BFUykKKyAgICBkZWYg
dGVzdF9uYW1lc3BhY2VfZG9jdGVzdGZpbGUoc2VsZiwgdGVzdGRpciwgc2NvcGUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgQ2hlY2sgdGhhdCBpbnNlcnRpbmcgc29tZXRoaW5nIGludG8gdGhlIG5h
bWVzcGFjZSB3b3JrcyBpbiBhCisgICAgICAgIHNpbXBsZSB0ZXh0IGZpbGUgZG9jdGVzdAorICAg
ICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgY29udGV4dGxpYgorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlLCBzY29wZT0ie3Njb3BlfSIpCisgICAgICAg
ICAgICBkZWYgYWRkX2NvbnRleHRsaWIoZG9jdGVzdF9uYW1lc3BhY2UpOgorICAgICAgICAgICAg
ICAgIGRvY3Rlc3RfbmFtZXNwYWNlWydjbCddID0gY29udGV4dGxpYgorICAgICAgICAiIiIuZm9y
bWF0KHNjb3BlPXNjb3BlKSkKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXR4dGZpbGUoIiIiCisg
ICAgICAgICAgICA+Pj4gcHJpbnQoY2wuX19uYW1lX18pCisgICAgICAgICAgICBjb250ZXh0bGli
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHApCisg
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCdzY29wZScsIFNDT1BFUykKKyAgICBkZWYgdGVzdF9uYW1lc3BhY2VfcHlm
aWxlKHNlbGYsIHRlc3RkaXIsIHNjb3BlKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHRo
YXQgaW5zZXJ0aW5nIHNvbWV0aGluZyBpbnRvIHRoZSBuYW1lc3BhY2Ugd29ya3MgaW4gYQorICAg
ICAgICBzaW1wbGUgUHl0aG9uIGZpbGUgZG9jc3RyaW5nIGRvY3Rlc3QKKyAgICAgICAgIiIiCisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgaW1wb3J0IGNvbnRleHRsaWIKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9IntzY29wZX0iKQorICAgICAgICAgICAgZGVmIGFk
ZF9jb250ZXh0bGliKGRvY3Rlc3RfbmFtZXNwYWNlKToKKyAgICAgICAgICAgICAgICBkb2N0ZXN0
X25hbWVzcGFjZVsnY2wnXSA9IGNvbnRleHRsaWIKKyAgICAgICAgIiIiLmZvcm1hdChzY29wZT1z
Y29wZSkpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgPj4+IHByaW50
KGNsLl9fbmFtZV9fKQorICAgICAgICAgICAgICAgIGNvbnRleHRsaWIKKyAgICAgICAgICAgICAg
ICAnJycKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
cCwgIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKworY2xhc3MgVGVzdERvY3Rlc3RSZXBvcnRpbmdPcHRpb24ob2JqZWN0KToKKyAg
ICBkZWYgX3J1bl9kb2N0ZXN0X3JlcG9ydChzZWxmLCB0ZXN0ZGlyLCBmb3JtYXQpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAgICAg
ICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgPj4+IGZvbygpCisgICAgICAgICAgICAgICAg
ICAgYSAgYgorICAgICAgICAgICAgICAgIDAgIDEgIDQKKyAgICAgICAgICAgICAgICAxICAyICA0
CisgICAgICAgICAgICAgICAgMiAgMyAgNgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAg
ICAgICAgIHByaW50KCcgICBhICBiXFxuJworICAgICAgICAgICAgICAgICAgICAgICcwICAxICA0
XFxuJworICAgICAgICAgICAgICAgICAgICAgICcxICAyICA1XFxuJworICAgICAgICAgICAgICAg
ICAgICAgICcyICAzICA2JykKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmV0dXJuIHRlc3Rk
aXIucnVucHl0ZXN0KCItLWRvY3Rlc3QtbW9kdWxlcyIsICItLWRvY3Rlc3QtcmVwb3J0IiwgZm9y
bWF0KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmb3JtYXQnLCBbJ3VkaWZmJywg
J1VESUZGJywgJ3VEaUZmJ10pCisgICAgZGVmIHRlc3RfZG9jdGVzdF9yZXBvcnRfdWRpZmYoc2Vs
ZiwgdGVzdGRpciwgZm9ybWF0KToKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX2RvY3Rlc3Rf
cmVwb3J0KHRlc3RkaXIsIGZvcm1hdCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICcgICAgIDAgIDEgIDQnLAorICAgICAgICAgICAgJyAgICAtMSAg
MiAgNCcsCisgICAgICAgICAgICAnICAgICsxICAyICA1JywKKyAgICAgICAgICAgICcgICAgIDIg
IDMgIDYnLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdF9yZXBvcnRfY2RpZmYo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl9kb2N0ZXN0X3JlcG9y
dCh0ZXN0ZGlyLCAnY2RpZmYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgJyAgICAgICAgIGEgIGInLAorICAgICAgICAgICAgJyAgICAgIDAgIDEg
IDQnLAorICAgICAgICAgICAgJyAgICAhIDEgIDIgIDQnLAorICAgICAgICAgICAgJyAgICAgIDIg
IDMgIDYnLAorICAgICAgICAgICAgJyAgICAtLS0gMSw0IC0tLS0nLAorICAgICAgICAgICAgJyAg
ICAgICAgIGEgIGInLAorICAgICAgICAgICAgJyAgICAgIDAgIDEgIDQnLAorICAgICAgICAgICAg
JyAgICAhIDEgIDIgIDUnLAorICAgICAgICAgICAgJyAgICAgIDIgIDMgIDYnLAorICAgICAgICBd
KQorCisgICAgZGVmIHRlc3RfZG9jdGVzdF9yZXBvcnRfbmRpZmYoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl9kb2N0ZXN0X3JlcG9ydCh0ZXN0ZGlyLCAnbmRpZmYn
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyAg
ICAgICAgIGEgIGInLAorICAgICAgICAgICAgJyAgICAgIDAgIDEgIDQnLAorICAgICAgICAgICAg
JyAgICAtIDEgIDIgIDQnLAorICAgICAgICAgICAgJyAgICA/ICAgICAgIF4nLAorICAgICAgICAg
ICAgJyAgICArIDEgIDIgIDUnLAorICAgICAgICAgICAgJyAgICA/ICAgICAgIF4nLAorICAgICAg
ICAgICAgJyAgICAgIDIgIDMgIDYnLAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdmb3JtYXQnLCBbJ25vbmUnLCAnb25seV9maXJzdF9mYWlsdXJlJ10pCisgICAg
ZGVmIHRlc3RfZG9jdGVzdF9yZXBvcnRfbm9uZV9vcl9vbmx5X2ZpcnN0X2ZhaWx1cmUoc2VsZiwg
dGVzdGRpciwgZm9ybWF0KToKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX2RvY3Rlc3RfcmVw
b3J0KHRlc3RkaXIsIGZvcm1hdCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICdFeHBlY3RlZDonLAorICAgICAgICAgICAgJyAgICAgICBhICBiJywK
KyAgICAgICAgICAgICcgICAgMCAgMSAgNCcsCisgICAgICAgICAgICAnICAgIDEgIDIgIDQnLAor
ICAgICAgICAgICAgJyAgICAyICAzICA2JywKKyAgICAgICAgICAgICdHb3Q6JywKKyAgICAgICAg
ICAgICcgICAgICAgYSAgYicsCisgICAgICAgICAgICAnICAgIDAgIDEgIDQnLAorICAgICAgICAg
ICAgJyAgICAxICAyICA1JywKKyAgICAgICAgICAgICcgICAgMiAgMyAgNicsCisgICAgICAgIF0p
CisKKyAgICBkZWYgdGVzdF9kb2N0ZXN0X3JlcG9ydF9pbnZhbGlkKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fZG9jdGVzdF9yZXBvcnQodGVzdGRpciwgJ29idmlv
dXNseV9pbnZhbGlkX2Zvcm1hdCcpCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKmVycm9yOiBhcmd1bWVudCAtLWRvY3Rlc3QtcmVwb3J0OiBpbnZh
bGlkIGNob2ljZTogJ29idmlvdXNseV9pbnZhbGlkX2Zvcm1hdCcgKGNob29zZSBmcm9tKiIKKyAg
ICAgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9lbnRyeV9wb2lu
dHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50cnlfcG9pbnRzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjYTY4YjQ4MWZhMWY5YzVkZTUwNmZlOTY4OWNhODI0OWRhY2I2MjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50cnlfcG9pbnRzLnB5CkBAIC0wLDAg
KzEsMTQgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBwa2dfcmVzb3VyY2VzCisKK2ltcG9ydCBweXRlc3QK
KworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVudHJ5cG9pbnQiLCBbJ3B5LnRlc3QnLCAn
cHl0ZXN0J10pCitkZWYgdGVzdF9lbnRyeV9wb2ludF9leGlzdChlbnRyeXBvaW50KToKKyAgICBh
c3NlcnQgZW50cnlwb2ludCBpbiBwa2dfcmVzb3VyY2VzLmdldF9lbnRyeV9tYXAoJ3B5dGVzdCcp
Wydjb25zb2xlX3NjcmlwdHMnXQorCisKK2RlZiB0ZXN0X3B5dGVzdF9lbnRyeV9wb2ludHNfYXJl
X2lkZW50aWNhbCgpOgorICAgIGVudHJ5TWFwID0gcGtnX3Jlc291cmNlcy5nZXRfZW50cnlfbWFw
KCdweXRlc3QnKVsnY29uc29sZV9zY3JpcHRzJ10KKyAgICBhc3NlcnQgZW50cnlNYXBbJ3B5dGVz
dCddLm1vZHVsZV9uYW1lID09IGVudHJ5TWFwWydweS50ZXN0J10ubW9kdWxlX25hbWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X2hlbHBjb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ1MDA1YTA1NzVhNDM2
NTcyNDZiYzg5NDI5OWNhMTU0NjQxOTk5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5CkBAIC0wLDAgKzEsNzcgQEAKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zy
b20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKK2ltcG9ydCBweXRl
c3QKKworCitkZWYgdGVzdF92ZXJzaW9uKHRlc3RkaXIsIHB5dGVzdGNvbmZpZyk6CisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tdmVyc2lvbiIpCisgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMAorICAgICMgcCA9IHB5LnBhdGgubG9jYWwocHkuX19maWxlX18pLmRpcnBhdGgoKQor
ICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqcHl0ZXN0KiVzKmlt
cG9ydGVkIGZyb20qJyAlIChweXRlc3QuX192ZXJzaW9uX18sICkKKyAgICBdKQorICAgIGlmIHB5
dGVzdGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3RfcGx1Z2luX2Rpc3RpbmZvKCk6CisgICAgICAg
IHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnNldHVwdG9vbHMg
cmVnaXN0ZXJlZCBwbHVnaW5zOiIsCisgICAgICAgICAgICAiKmF0KiIsCisgICAgICAgIF0pCisK
KworZGVmIHRlc3RfaGVscCh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1oZWxwIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAqLXYqdmVyYm9zZSoKKyAgICAgICAgKnNldHVw
LmNmZyoKKyAgICAgICAgKm1pbnZlcnNpb24qCisgICAgICAgICp0byBzZWUqbWFya2VycypweXRl
c3QgLS1tYXJrZXJzKgorICAgICAgICAqdG8gc2VlKmZpeHR1cmVzKnB5dGVzdCAtLWZpeHR1cmVz
KgorICAgICIiIikKKworCitkZWYgdGVzdF9ob29rdmFsaWRhdGlvbl91bmtub3duKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2hlbGxv
KHh5eik6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJyp1bmtub3duIGhvb2sqcHl0ZXN0X2hlbGxvKicK
KyAgICBdKQorCisKK2RlZiB0ZXN0X2hvb2t2YWxpZGF0aW9uX29wdGlvbmFsKHRlc3RkaXIpOgor
ICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QuaG9va2ltcGwob3B0aW9uYWxob29rPVRydWUpCisgICAgICAgIGRlZiBweXRl
c3RfaGVsbG8oeHl6KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNU
U0NPTExFQ1RFRAorCisKK2RlZiB0ZXN0X3RyYWNlY29uZmlnKHRlc3RkaXIpOgorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXRyYWNlY29uZmlnIikKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKnVzaW5nKnB5dGVzdCpweSoiLAorICAgICAgICAi
KmFjdGl2ZSBwbHVnaW5zKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9kZWJ1Zyh0ZXN0ZGlyLCBt
b25rZXlwYXRjaCk6CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2Vzcygi
LS1kZWJ1ZyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVE
CisgICAgcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInB5dGVzdGRlYnVnLmxvZyIpCisgICAgYXNz
ZXJ0ICJweXRlc3Rfc2Vzc2lvbnN0YXJ0IiBpbiBwLnJlYWQoKQorCisKK2RlZiB0ZXN0X1BZVEVT
VF9ERUJVRyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQ
WVRFU1RfREVCVUciLCAiMSIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJv
Y2VzcygpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisg
ICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipweXRlc3RfcGx1Z2lu
X3JlZ2lzdGVyZWQqIiwKKyAgICAgICAgIiptYW5hZ2VyKlBsdWdpbk1hbmFnZXIqIgorICAgIF0p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVuaXR4bWwucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVuaXR4bWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwNGMwMmEzZGVh
OWY0ZjU0MzExMThiYmEwNjg2ODYwYzRjNGRlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9qdW5pdHhtbC5weQpAQCAtMCwwICsxLDEwNjIgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20KK2lt
cG9ydCBweQoraW1wb3J0IHN5cworaW1wb3J0IG9zCitmcm9tIF9weXRlc3QuanVuaXR4bWwgaW1w
b3J0IExvZ1hNTAoraW1wb3J0IHB5dGVzdAorCisKK2RlZiBydW5hbmRwYXJzZSh0ZXN0ZGlyLCAq
YXJncyk6CisgICAgcmVzdWx0cGF0aCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oImp1bml0LnhtbCIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tanVuaXR4bWw9JXMiICUgcmVzdWx0
cGF0aCwgKmFyZ3MpCisgICAgeG1sZG9jID0gbWluaWRvbS5wYXJzZShzdHIocmVzdWx0cGF0aCkp
CisgICAgcmV0dXJuIHJlc3VsdCwgRG9tTm9kZSh4bWxkb2MpCisKKworZGVmIGFzc2VydF9hdHRy
KG5vZGUsICoqa3dhcmdzKToKKyAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKworICAgIGRl
ZiBub2RldmFsKG5vZGUsIG5hbWUpOgorICAgICAgICBhbm9kZSA9IG5vZGUuZ2V0QXR0cmlidXRl
Tm9kZShuYW1lKQorICAgICAgICBpZiBhbm9kZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJl
dHVybiBhbm9kZS52YWx1ZQorCisgICAgZXhwZWN0ZWQgPSBkaWN0KChuYW1lLCBzdHIodmFsdWUp
KSBmb3IgbmFtZSwgdmFsdWUgaW4ga3dhcmdzLml0ZW1zKCkpCisgICAgb25fbm9kZSA9IGRpY3Qo
KG5hbWUsIG5vZGV2YWwobm9kZSwgbmFtZSkpIGZvciBuYW1lIGluIGV4cGVjdGVkKQorICAgIGFz
c2VydCBvbl9ub2RlID09IGV4cGVjdGVkCisKKworY2xhc3MgRG9tTm9kZShvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBkb20pOgorICAgICAgICBzZWxmLl9fbm9kZSA9IGRvbQorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX25vZGUudG94bWwo
KQorCisgICAgZGVmIGZpbmRfZmlyc3RfYnlfdGFnKHNlbGYsIHRhZyk6CisgICAgICAgIHJldHVy
biBzZWxmLmZpbmRfbnRoX2J5X3RhZyh0YWcsIDApCisKKyAgICBkZWYgX2J5X3RhZyhzZWxmLCB0
YWcpOgorICAgICAgICByZXR1cm4gc2VsZi5fX25vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFn
KQorCisgICAgZGVmIGZpbmRfbnRoX2J5X3RhZyhzZWxmLCB0YWcsIG4pOgorICAgICAgICBpdGVt
cyA9IHNlbGYuX2J5X3RhZyh0YWcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG50aCA9IGl0
ZW1zW25dCisgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICAgICAgcGFzcworICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikobnRoKQorCisgICAgZGVm
IGZpbmRfYnlfdGFnKHNlbGYsIHRhZyk6CisgICAgICAgIHQgPSB0eXBlKHNlbGYpCisgICAgICAg
IHJldHVybiBbdCh4KSBmb3IgeCBpbiBzZWxmLl9fbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0
YWcpXQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIG5vZGUgPSBz
ZWxmLl9fbm9kZS5nZXRBdHRyaWJ1dGVOb2RlKGtleSkKKyAgICAgICAgaWYgbm9kZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlCisKKyAgICBkZWYgYXNzZXJ0X2F0
dHIoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAg
ICAgICAgcmV0dXJuIGFzc2VydF9hdHRyKHNlbGYuX19ub2RlLCAqKmt3YXJncykKKworICAgIGRl
ZiB0b3htbChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19ub2RlLnRveG1sKCkKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiB0ZXh0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX25v
ZGUuY2hpbGROb2Rlc1swXS53aG9sZVRleHQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0YWco
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9fbm9kZS50YWdOYW1lCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgbmV4dF9zaWVibGluZyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHR5cGUoc2Vs
Zikoc2VsZi5fX25vZGUubmV4dFNpYmxpbmcpCisKKworY2xhc3MgVGVzdFB5dGhvbihvYmplY3Qp
OgorICAgIGRlZiB0ZXN0X3N1bW1pbmdfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBk
ZWYgdGVzdF9za2lwKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoIiIpCisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAor
ICAgICAgICAgICAgZGVmIHRlc3RfeHBhc3MoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0
X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihuYW1lPSJweXRl
c3QiLCBlcnJvcnM9MCwgZmFpbHVyZXM9MSwgc2tpcHM9MiwgdGVzdHM9NSkKKworICAgIGRlZiB0
ZXN0X3N1bW1pbmdfc2ltcGxlX3dpdGhfZXJyb3JzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXh0dXJlKCk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Vycm9yKGZpeHR1cmUp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAor
ICAgICAgICAgICAgZGVmIHRlc3RfeGZhaWwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFs
c2UKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChzdHJpY3Q9VHJ1ZSkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X3hwYXNzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90
YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIobmFtZT0icHl0ZXN0Iiwg
ZXJyb3JzPTEsIGZhaWx1cmVzPTIsIHNraXBzPTEsIHRlc3RzPTUpCisKKyAgICBkZWYgdGVzdF90
aW1pbmdfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCB0aW1lLCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBz
ZXR1cF9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCisgICAgICAg
ICAgICBkZWYgdGVhcmRvd25fbW9kdWxlKCk6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgw
LjAxKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2xlZXAoKToKKyAgICAgICAgICAgICAgICB0aW1l
LnNsZWVwKDAuMDEpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRw
YXJzZSh0ZXN0ZGlyKQorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0
c3VpdGUiKQorICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNl
IikKKyAgICAgICAgdmFsID0gdG5vZGVbInRpbWUiXQorICAgICAgICBhc3NlcnQgcm91bmQoZmxv
YXQodmFsKSwgMikgPj0gMC4wMworCisgICAgZGVmIHRlc3Rfc2V0dXBfZXJyb3Ioc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
YXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlf
dGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0xLCB0ZXN0
cz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikK
KyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X3NldHVw
X2Vycm9yLnB5IiwKKyAgICAgICAgICAgIGxpbmU9IjUiLAorICAgICAgICAgICAgY2xhc3NuYW1l
PSJ0ZXN0X3NldHVwX2Vycm9yIiwKKyAgICAgICAgICAgIG5hbWU9InRlc3RfZnVuY3Rpb24iKQor
ICAgICAgICBmbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJlcnJvciIpCisgICAgICAg
IGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9InRlc3Qgc2V0dXAgZmFpbHVyZSIpCisgICAgICAg
IGFzc2VydCAiVmFsdWVFcnJvciIgaW4gZm5vZGUudG94bWwoKQorCisgICAgZGVmIHRlc3RfdGVh
cmRvd25fZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uKGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAg
ICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAg
IHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF90ZWFyZG93bl9lcnJv
ci5weSIsCisgICAgICAgICAgICBsaW5lPSI2IiwKKyAgICAgICAgICAgIGNsYXNzbmFtZT0idGVz
dF90ZWFyZG93bl9lcnJvciIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X2Z1bmN0aW9uIikKKyAg
ICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZXJyb3IiKQorICAgICAgICBm
bm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJ0ZXN0IHRlYXJkb3duIGZhaWx1cmUiKQorICAgICAg
ICBhc3NlcnQgIlZhbHVlRXJyb3IiIGluIGZub2RlLnRveG1sKCkKKworICAgIGRlZiB0ZXN0X2Nh
bGxfZmFpbHVyZV90ZWFyZG93bl9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcoKToKKyAgICAgICAgICAgICAg
ICB5aWVsZAorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiVGVhcmRvd24gRXhjZXB0
aW9uIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAgICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCJDYWxsIEV4Y2VwdGlvbiIpCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldAorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUi
KQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0xLCBmYWlsdXJlcz0xLCB0ZXN0cz0x
KQorICAgICAgICBmaXJzdCwgc2Vjb25kID0gZG9tLmZpbmRfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisg
ICAgICAgIGlmIG5vdCBmaXJzdCBvciBub3Qgc2Vjb25kIG9yIGZpcnN0ID09IHNlY29uZDoKKyAg
ICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIGZub2RlID0gZmlyc3QuZmluZF9maXJzdF9ieV90
YWcoImZhaWx1cmUiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJFeGNlcHRp
b246IENhbGwgRXhjZXB0aW9uIikKKyAgICAgICAgc25vZGUgPSBzZWNvbmQuZmluZF9maXJzdF9i
eV90YWcoImVycm9yIikKKyAgICAgICAgc25vZGUuYXNzZXJ0X2F0dHIobWVzc2FnZT0idGVzdCB0
ZWFyZG93biBmYWlsdXJlIikKKworICAgIGRlZiB0ZXN0X3NraXBfY29udGFpbnNfbmFtZV9yZWFz
b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAg
ICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8yMyIpCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0
ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9MSkKKyAgICAgICAgdG5vZGUgPSBu
b2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9h
dHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF9za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uLnB5
IiwKKyAgICAgICAgICAgIGxpbmU9IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3Nr
aXBfY29udGFpbnNfbmFtZV9yZWFzb24iLAorICAgICAgICAgICAgbmFtZT0idGVzdF9za2lwIikK
KyAgICAgICAgc25vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic2tpcHBlZCIpCisgICAg
ICAgIHNub2RlLmFzc2VydF9hdHRyKHR5cGU9InB5dGVzdC5za2lwIiwgbWVzc2FnZT0iaGVsbG8y
MyIsICkKKworICAgIGRlZiB0ZXN0X21hcmtfc2tpcF9jb250YWluc19uYW1lX3JlYXNvbihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSJoZWxs
bzI0IikKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgVHJ1ZQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2Uo
dGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICBub2RlID0g
ZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9h
dHRyKHNraXBzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAgIGZpbGU9InRl
c3RfbWFya19za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uLnB5IiwKKyAgICAgICAgICAgIGxpbmU9
IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X21hcmtfc2tpcF9jb250YWluc19uYW1l
X3JlYXNvbiIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X3NraXAiKQorICAgICAgICBzbm9kZSA9
IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJza2lwcGVkIikKKyAgICAgICAgc25vZGUuYXNzZXJ0
X2F0dHIodHlwZT0icHl0ZXN0LnNraXAiLCBtZXNzYWdlPSJoZWxsbzI0IiwgKQorCisgICAgZGVm
IHRlc3RfbWFya19za2lwaWZfY29udGFpbnNfbmFtZV9yZWFzb24oc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEdMT0JBTF9DT05ESVRJT04gPSBUcnVlCisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsuc2tpcGlmKEdMT0JBTF9DT05ESVRJT04sIHJlYXNvbj0iaGVsbG8yNSIpCisgICAgICAg
ICAgICBkZWYgdGVzdF9za2lwKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0
X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0xKQor
ICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAg
ICAgdG5vZGUuYXNzZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X21hcmtfc2tpcGlm
X2NvbnRhaW5zX25hbWVfcmVhc29uLnB5IiwKKyAgICAgICAgICAgIGxpbmU9IjIiLAorICAgICAg
ICAgICAgY2xhc3NuYW1lPSJ0ZXN0X21hcmtfc2tpcGlmX2NvbnRhaW5zX25hbWVfcmVhc29uIiwK
KyAgICAgICAgICAgIG5hbWU9InRlc3Rfc2tpcCIpCisgICAgICAgIHNub2RlID0gdG5vZGUuZmlu
ZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQorICAgICAgICBzbm9kZS5hc3NlcnRfYXR0cih0eXBl
PSJweXRlc3Quc2tpcCIsIG1lc3NhZ2U9ImhlbGxvMjUiLCApCisKKyAgICBkZWYgdGVzdF9tYXJr
X3NraXBfZG9lc250X2NhcHR1cmVfb3V0cHV0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249ImZvbyIpCisgICAgICAgICAgICBkZWYgdGVzdF9z
a2lwKCk6CisgICAgICAgICAgICAgICAgcHJpbnQoImJhciEiKQorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorICAgICAgICBub2RlX3htbCA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygi
dGVzdHN1aXRlIikudG94bWwoKQorICAgICAgICBhc3NlcnQgImJhciEiIG5vdCBpbiBub2RlX3ht
bAorCisgICAgZGVmIHRlc3RfY2xhc3NuYW1lX2luc3RhbmNlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mo
b2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20g
PSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAg
ICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2Rl
LmFzc2VydF9hdHRyKGZhaWx1cmVzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0
X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAg
ICAgIGZpbGU9InRlc3RfY2xhc3NuYW1lX2luc3RhbmNlLnB5IiwKKyAgICAgICAgICAgIGxpbmU9
IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X2NsYXNzbmFtZV9pbnN0YW5jZS5UZXN0
Q2xhc3MiLAorICAgICAgICAgICAgbmFtZT0idGVzdF9tZXRob2QiKQorCisgICAgZGVmIHRlc3Rf
Y2xhc3NuYW1lX25lc3RlZF9kaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGly
LnRtcGRpci5lbnN1cmUoInN1YiIsICJ0ZXN0X2hlbGxvLnB5IikKKyAgICAgICAgcC53cml0ZSgi
ZGVmIHRlc3RfZnVuYygpOiAwLzAiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNl
KHRlc3RkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20u
ZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIo
ZmFpbHVyZXM9MSkKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0
Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT1vcy5w
YXRoLmpvaW4oInN1YiIsICJ0ZXN0X2hlbGxvLnB5IiksCisgICAgICAgICAgICBsaW5lPSIwIiwK
KyAgICAgICAgICAgIGNsYXNzbmFtZT0ic3ViLnRlc3RfaGVsbG8iLAorICAgICAgICAgICAgbmFt
ZT0idGVzdF9mdW5jIikKKworICAgIGRlZiB0ZXN0X2ludGVybmFsX2Vycm9yKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiZGVmIHB5dGVzdF9ydW50ZXN0X3By
b3RvY29sKCk6IDAgLyAwIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9m
dW5jdGlvbigpOiBwYXNzIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0
ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBub2RlID0gZG9tLmZpbmRf
Zmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9y
cz0xLCB0ZXN0cz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRl
c3RjYXNlIikKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJweXRlc3QiLCBu
YW1lPSJpbnRlcm5hbCIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWco
ImVycm9yIikKKyAgICAgICAgZm5vZGUuYXNzZXJ0X2F0dHIobWVzc2FnZT0iaW50ZXJuYWwgZXJy
b3IiKQorICAgICAgICBhc3NlcnQgIkRpdmlzaW9uIiBpbiBmbm9kZS50b3htbCgpCisKKyAgICBk
ZWYgdGVzdF9mYWlsdXJlX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBkZWYg
dGVzdF9mYWlsKCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJoZWxsby1zdGRvdXQiKQorICAg
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImhlbGxvLXN0ZGVyclxcbiIpCisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICAgICAgIiIiKQorCisgICAgICAgIHJl
c3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAg
ICAgICAgbm9kZS5hc3NlcnRfYXR0cihmYWlsdXJlcz0xLCB0ZXN0cz0xKQorICAgICAgICB0bm9k
ZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUuYXNz
ZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X2ZhaWx1cmVfZnVuY3Rpb24ucHkiLAor
ICAgICAgICAgICAgbGluZT0iMSIsCisgICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfZmFpbHVy
ZV9mdW5jdGlvbiIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X2ZhaWwiKQorICAgICAgICBmbm9k
ZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJmYWlsdXJlIikKKyAgICAgICAgZm5vZGUuYXNz
ZXJ0X2F0dHIobWVzc2FnZT0iVmFsdWVFcnJvcjogNDIiKQorICAgICAgICBhc3NlcnQgIlZhbHVl
RXJyb3IiIGluIGZub2RlLnRveG1sKCkKKyAgICAgICAgc3lzdGVtb3V0ID0gZm5vZGUubmV4dF9z
aWVibGluZworICAgICAgICBhc3NlcnQgc3lzdGVtb3V0LnRhZyA9PSAic3lzdGVtLW91dCIKKyAg
ICAgICAgYXNzZXJ0ICJoZWxsby1zdGRvdXQiIGluIHN5c3RlbW91dC50b3htbCgpCisgICAgICAg
IHN5c3RlbWVyciA9IHN5c3RlbW91dC5uZXh0X3NpZWJsaW5nCisgICAgICAgIGFzc2VydCBzeXN0
ZW1lcnIudGFnID09ICJzeXN0ZW0tZXJyIgorICAgICAgICBhc3NlcnQgImhlbGxvLXN0ZGVyciIg
aW4gc3lzdGVtZXJyLnRveG1sKCkKKworICAgIGRlZiB0ZXN0X2ZhaWx1cmVfdmVyYm9zZV9tZXNz
YWdlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAsICJBbiBlcnJvciIKKyAgICAgICAgIiIiKQorCisgICAgICAgIHJl
c3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5maW5k
X2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmly
c3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9i
eV90YWcoImZhaWx1cmUiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJBc3Nl
cnRpb25FcnJvcjogQW4gZXJyb3IgYXNzZXJ0IDAiKQorCisgICAgZGVmIHRlc3RfZmFpbHVyZV9l
c2NhcGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnYXJnMScsICI8JiciLCBpZHM9IjwmJyIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5j
KGFyZzEpOgorICAgICAgICAgICAgICAgIHByaW50KGFyZzEpCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRl
c3RkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmlu
ZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFp
bHVyZXM9MywgdGVzdHM9MykKKworICAgICAgICBmb3IgaW5kZXgsIGNoYXIgaW4gZW51bWVyYXRl
KCI8JiciKToKKworICAgICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfbnRoX2J5X3RhZygidGVz
dGNhc2UiLCBpbmRleCkKKyAgICAgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAg
ICAgICAgIGZpbGU9InRlc3RfZmFpbHVyZV9lc2NhcGUucHkiLAorICAgICAgICAgICAgICAgIGxp
bmU9IjEiLAorICAgICAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9mYWlsdXJlX2VzY2FwZSIs
CisgICAgICAgICAgICAgICAgbmFtZT0idGVzdF9mdW5jWyVzXSIgJSBjaGFyKQorICAgICAgICAg
ICAgc3lzb3V0ID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoJ3N5c3RlbS1vdXQnKQorICAgICAg
ICAgICAgdGV4dCA9IHN5c291dC50ZXh0CisgICAgICAgICAgICBhc3NlcnQgdGV4dCA9PSAnJXNc
bicgJSBjaGFyCisKKyAgICBkZWYgdGVzdF9qdW5pdF9wcmVmaXhpbmcoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgY2xhc3MgVGVzdEhl
bGxvKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9
IHJ1bmFuZHBhcnNlKHRlc3RkaXIsICItLWp1bml0cHJlZml4PXh5eiIpCisgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3Rz
dWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSwgdGVzdHM9MikKKyAg
ICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAg
IHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF9qdW5pdF9wcmVmaXhp
bmcucHkiLAorICAgICAgICAgICAgbGluZT0iMCIsCisgICAgICAgICAgICBjbGFzc25hbWU9Inh5
ei50ZXN0X2p1bml0X3ByZWZpeGluZyIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X2Z1bmMiKQor
ICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9udGhfYnlfdGFnKCJ0ZXN0Y2FzZSIsIDEpCisgICAg
ICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF9qdW5pdF9wcmVm
aXhpbmcucHkiLAorICAgICAgICAgICAgbGluZT0iMyIsCisgICAgICAgICAgICBjbGFzc25hbWU9
Inh5ei50ZXN0X2p1bml0X3ByZWZpeGluZy4iCisgICAgICAgICAgICAiVGVzdEhlbGxvIiwKKyAg
ICAgICAgICAgIG5hbWU9InRlc3RfaGVsbG8iKQorCisgICAgZGVmIHRlc3RfeGZhaWx1cmVfZnVu
Y3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKCk6Cisg
ICAgICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCI0MiIpCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgbm90IHJl
c3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRl
IikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0xLCB0ZXN0cz0xKQorICAgICAgICB0
bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUu
YXNzZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X3hmYWlsdXJlX2Z1bmN0aW9uLnB5
IiwKKyAgICAgICAgICAgIGxpbmU9IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3hm
YWlsdXJlX2Z1bmN0aW9uIiwKKyAgICAgICAgICAgIG5hbWU9InRlc3RfeGZhaWwiKQorICAgICAg
ICBmbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJza2lwcGVkIikKKyAgICAgICAgZm5v
ZGUuYXNzZXJ0X2F0dHIobWVzc2FnZT0iZXhwZWN0ZWQgdGVzdCBmYWlsdXJlIikKKyAgICAgICAg
IyBhc3NlcnQgIlZhbHVlRXJyb3IiIGluIGZub2RlLnRveG1sKCkKKworICAgIGRlZiB0ZXN0X3hm
YWlsdXJlX3hwYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
eGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hwYXNzKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRp
cikKKyAgICAgICAgIyBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBub2RlID0gZG9tLmZpbmRf
Zmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBz
PTAsIHRlc3RzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAgIGZpbGU9InRl
c3RfeGZhaWx1cmVfeHBhc3MucHkiLAorICAgICAgICAgICAgbGluZT0iMSIsCisgICAgICAgICAg
ICBjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfeHBhc3MiLAorICAgICAgICAgICAgbmFtZT0idGVz
dF94cGFzcyIpCisKKyAgICBkZWYgdGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3Qoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChzdHJpY3Q9VHJ1ZSwgcmVh
c29uPSJUaGlzIG5lZWRzIHRvIGZhaWwhIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hwYXNzKCk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9t
ID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgIyBhc3NlcnQgcmVzdWx0LnJldAorICAg
ICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBu
b2RlLmFzc2VydF9hdHRyKHNraXBzPTAsIHRlc3RzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5m
aW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigK
KyAgICAgICAgICAgIGZpbGU9InRlc3RfeGZhaWx1cmVfeHBhc3Nfc3RyaWN0LnB5IiwKKyAgICAg
ICAgICAgIGxpbmU9IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3hmYWlsdXJlX3hw
YXNzX3N0cmljdCIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X3hwYXNzIikKKyAgICAgICAgZm5v
ZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVyZSIpCisgICAgICAgIGZub2RlLmFz
c2VydF9hdHRyKG1lc3NhZ2U9IltYUEFTUyhzdHJpY3QpXSBUaGlzIG5lZWRzIHRvIGZhaWwhIikK
KworICAgIGRlZiB0ZXN0X2NvbGxlY3RfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgic3ludGF4IGVycm9yIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBy
dW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBu
b2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFz
c2VydF9hdHRyKGVycm9ycz0xLCB0ZXN0cz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9m
aXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoCisgICAg
ICAgICAgICBmaWxlPSJ0ZXN0X2NvbGxlY3RfZXJyb3IucHkiLAorICAgICAgICAgICAgbmFtZT0i
dGVzdF9jb2xsZWN0X2Vycm9yIikKKyAgICAgICAgYXNzZXJ0IHRub2RlWyJsaW5lIl0gaXMgTm9u
ZQorICAgICAgICBmbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJlcnJvciIpCisgICAg
ICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9ImNvbGxlY3Rpb24gZmFpbHVyZSIpCisgICAg
ICAgIGFzc2VydCAiU3ludGF4RXJyb3IiIGluIGZub2RlLnRveG1sKCkKKworICAgIGRlZiB0ZXN0
X3VuaWNvZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHZhbHVlID0gJ2h4XHhjNFx4ODVceGM0
XHg4N1xuJworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAjIGNv
ZGluZzogbGF0aW4xCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAg
ICAgIHByaW50ICglcikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIgJSB2
YWx1ZSkKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHRub2RlID0gZG9tLmZpbmRfZmlyc3Rf
YnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90
YWcoImZhaWx1cmUiKQorICAgICAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImph
dmEiKToKKyAgICAgICAgICAgIGFzc2VydCAiaHgiIGluIGZub2RlLnRveG1sKCkKKworICAgIGRl
ZiB0ZXN0X2Fzc2VydGlvbl9iaW5jaGFycyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIidGhp
cyB0ZXN0IGRpZCBmYWlsIHdoZW4gdGhlIGVzY2FwaW5nIHdhc250IHN0cmljdCIiIgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisKKyAgICAgICAgICAgIE0xID0gJ1x4MDFceDAyXHgw
M1x4MDQnCisgICAgICAgICAgICBNMiA9ICdceDAxXHgwMlx4MDNceDA1JworCisgICAgICAgICAg
ICBkZWYgdGVzdF9zdHJfY29tcGFyZSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBNMSA9PSBN
MgorICAgICAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRl
c3RkaXIpCisgICAgICAgIHByaW50KGRvbS50b3htbCgpKQorCisgICAgZGVmIHRlc3RfcGFzc19j
YXB0dXJlc19zdGRvdXQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAgICAgICAgICAgICBwcmlu
dCgnaGVsbG8tc3Rkb3V0JykKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1
bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWco
InRlc3RzdWl0ZSIpCisgICAgICAgIHBub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dGNhc2UiKQorICAgICAgICBzeXN0ZW1vdXQgPSBwbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic3lz
dGVtLW91dCIpCisgICAgICAgIGFzc2VydCAiaGVsbG8tc3Rkb3V0IiBpbiBzeXN0ZW1vdXQudG94
bWwoKQorCisgICAgZGVmIHRlc3RfcGFzc19jYXB0dXJlc19zdGRlcnIoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCdoZWxsby1zdGRlcnInKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9t
ID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5
X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgcG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFn
KCJ0ZXN0Y2FzZSIpCisgICAgICAgIHN5c3RlbW91dCA9IHBub2RlLmZpbmRfZmlyc3RfYnlfdGFn
KCJzeXN0ZW0tZXJyIikKKyAgICAgICAgYXNzZXJ0ICJoZWxsby1zdGRlcnIiIGluIHN5c3RlbW91
dC50b3htbCgpCisKKyAgICBkZWYgdGVzdF9zZXR1cF9lcnJvcl9jYXB0dXJlc19zdGRvdXQoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHByaW50KCdoZWxsby1zdGRvdXQn
KQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgZGVmIHRl
c3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBub2RlID0g
ZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBwbm9kZSA9IG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgc3lzdGVtb3V0ID0gcG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInN5c3RlbS1vdXQiKQorICAgICAgICBhc3NlcnQgImhlbGxvLXN0
ZG91dCIgaW4gc3lzdGVtb3V0LnRveG1sKCkKKworICAgIGRlZiB0ZXN0X3NldHVwX2Vycm9yX2Nh
cHR1cmVzX3N0ZGVycihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnaGVsbG8tc3RkZXJyJykKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5m
aW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgcG5vZGUgPSBub2RlLmZpbmRf
Zmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHN5c3RlbW91dCA9IHBub2RlLmZpbmRf
Zmlyc3RfYnlfdGFnKCJzeXN0ZW0tZXJyIikKKyAgICAgICAgYXNzZXJ0ICJoZWxsby1zdGRlcnIi
IGluIHN5c3RlbW91dC50b3htbCgpCisKKyAgICBkZWYgdGVzdF9hdm9pZF9kb3VibGVfc3Rkb3V0
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ2hlbGxvLXN0
ZG91dCB0ZWFyZG93bicpCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRv
dXQud3JpdGUoJ2hlbGxvLXN0ZG91dCBjYWxsJykKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgIG5vZGUgPSBkb20uZmluZF9m
aXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIHBub2RlID0gbm9kZS5maW5kX2ZpcnN0
X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBzeXN0ZW1vdXQgPSBwbm9kZS5maW5kX2ZpcnN0
X2J5X3RhZygic3lzdGVtLW91dCIpCisgICAgICAgIGFzc2VydCAiaGVsbG8tc3Rkb3V0IGNhbGwi
IGluIHN5c3RlbW91dC50b3htbCgpCisgICAgICAgIGFzc2VydCAiaGVsbG8tc3Rkb3V0IHRlYXJk
b3duIiBpbiBzeXN0ZW1vdXQudG94bWwoKQorCisKK2RlZiB0ZXN0X21hbmdsZV90ZXN0X2FkZHJl
c3MoKToKKyAgICBmcm9tIF9weXRlc3QuanVuaXR4bWwgaW1wb3J0IG1hbmdsZV90ZXN0X2FkZHJl
c3MKKyAgICBhZGRyZXNzID0gJzo6Jy5qb2luKAorICAgICAgICBbImEvbXkucHkudGhpbmcucHki
LCAiQ2xhc3MiLCAiKCkiLCAibWV0aG9kIiwgIlthLTEtOjpdIl0pCisgICAgbmV3bmFtZXMgPSBt
YW5nbGVfdGVzdF9hZGRyZXNzKGFkZHJlc3MpCisgICAgYXNzZXJ0IG5ld25hbWVzID09IFsiYS5t
eS5weS50aGluZyIsICJDbGFzcyIsICJtZXRob2QiLCAiW2EtMS06Ol0iXQorCisKK2RlZiB0ZXN0
X2RvbnRfY29uZmlndXJlX29uX3NsYXZlcyh0bXBkaXIpOgorICAgIGdvdHRlbiA9IFtdCisKKyAg
ICBjbGFzcyBGYWtlQ29uZmlnKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
KyAgICAgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHNlbGYKKyAgICAgICAgICAgIHNlbGYu
b3B0aW9uID0gc2VsZgorCisgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6CisgICAgICAg
ICAgICByZXR1cm4gInB5dGVzdCIKKworICAgICAgICBqdW5pdHByZWZpeCA9IE5vbmUKKyAgICAg
ICAgIyBYWFg6IHNob3VsZG50IG5lZWQgdG1wZGlyID8KKyAgICAgICAgeG1scGF0aCA9IHN0cih0
bXBkaXIuam9pbignanVuaXgueG1sJykpCisgICAgICAgIHJlZ2lzdGVyID0gZ290dGVuLmFwcGVu
ZAorCisgICAgZmFrZV9jb25maWcgPSBGYWtlQ29uZmlnKCkKKyAgICBmcm9tIF9weXRlc3QgaW1w
b3J0IGp1bml0eG1sCisgICAganVuaXR4bWwucHl0ZXN0X2NvbmZpZ3VyZShmYWtlX2NvbmZpZykK
KyAgICBhc3NlcnQgbGVuKGdvdHRlbikgPT0gMQorICAgIEZha2VDb25maWcuc2xhdmVpbnB1dCA9
IE5vbmUKKyAgICBqdW5pdHhtbC5weXRlc3RfY29uZmlndXJlKGZha2VfY29uZmlnKQorICAgIGFz
c2VydCBsZW4oZ290dGVuKSA9PSAxCisKKworY2xhc3MgVGVzdE5vblB5dGhvbihvYmplY3QpOgor
ICAgIGRlZiB0ZXN0X3N1bW1pbmdfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICAg
ICAgaWYgcGF0aC5leHQgPT0gIi54eXoiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlJ
dGVtKHBhdGgsIHBhcmVudCkKKyAgICAgICAgICAgIGNsYXNzIE15SXRlbShweXRlc3QuSXRlbSk6
CisgICAgICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIHBhcmVudCk6CisgICAg
ICAgICAgICAgICAgICAgIHN1cGVyKE15SXRlbSwgc2VsZikuX19pbml0X18ocGF0aC5iYXNlbmFt
ZSwgcGFyZW50KQorICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcGF0aCA9IHBhdGgKKyAgICAg
ICAgICAgICAgICBkZWYgcnVudGVzdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcig0MikKKyAgICAgICAgICAgICAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4
Y2luZm8pOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gImN1c3RvbSBpdGVtIHJ1bnRlc3Qg
ZmFpbGVkIgorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oIm15Zmls
ZS54eXoiKS53cml0ZSgiaGVsbG8iKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNl
KHRlc3RkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20u
ZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIo
ZXJyb3JzPTAsIGZhaWx1cmVzPTEsIHNraXBzPTAsIHRlc3RzPTEpCisgICAgICAgIHRub2RlID0g
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRf
YXR0cihuYW1lPSJteWZpbGUueHl6IikKKyAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0
X2J5X3RhZygiZmFpbHVyZSIpCisgICAgICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9ImN1
c3RvbSBpdGVtIHJ1bnRlc3QgZmFpbGVkIikKKyAgICAgICAgYXNzZXJ0ICJjdXN0b20gaXRlbSBy
dW50ZXN0IGZhaWxlZCIgaW4gZm5vZGUudG94bWwoKQorCisKK2RlZiB0ZXN0X251bGxieXRlKHRl
c3RkaXIpOgorICAgICMgQSBudWxsIGJ5dGUgY2FuIG5vdCBvY2N1ciBpbiBYTUwgKHNlZSBzZWN0
aW9uIDIuMiBvZiB0aGUgc3BlYykKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCBzeXMKKyAgICAgICAgZGVmIHRlc3RfcHJpbnRfbnVsbGJ5dGUoKToKKyAgICAgICAg
ICAgIHN5cy5zdGRvdXQud3JpdGUoJ0hlcmUgdGhlIG51bGwgLS0+JyArIGNocigwKSArICc8LS0n
KQorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnSW4gcmVwciBmb3JtIC0tPicgKyByZXBy
KGNocigwKSkgKyAnPC0tJykKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICIiIikKKyAg
ICB4bWxmID0gdGVzdGRpci50bXBkaXIuam9pbignanVuaXQueG1sJykKKyAgICB0ZXN0ZGlyLnJ1
bnB5dGVzdCgnLS1qdW5pdHhtbD0lcycgJSB4bWxmKQorICAgIHRleHQgPSB4bWxmLnJlYWQoKQor
ICAgIGFzc2VydCAnXHgwMCcgbm90IGluIHRleHQKKyAgICBhc3NlcnQgJyN4MDAnIGluIHRleHQK
KworCitkZWYgdGVzdF9udWxsYnl0ZV9yZXBsYWNlKHRlc3RkaXIpOgorICAgICMgQ2hlY2sgaWYg
dGhlIG51bGwgYnl0ZSBnZXRzIHJlcGxhY2VkCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIGRlZiB0ZXN0X3ByaW50X251bGxieXRlKCk6Cisg
ICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdIZXJlIHRoZSBudWxsIC0tPicgKyBjaHIoMCkg
KyAnPC0tJykKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ0luIHJlcHIgZm9ybSAtLT4n
ICsgcmVwcihjaHIoMCkpICsgJzwtLScpCisgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAi
IiIpCisgICAgeG1sZiA9IHRlc3RkaXIudG1wZGlyLmpvaW4oJ2p1bml0LnhtbCcpCisgICAgdGVz
dGRpci5ydW5weXRlc3QoJy0tanVuaXR4bWw9JXMnICUgeG1sZikKKyAgICB0ZXh0ID0geG1sZi5y
ZWFkKCkKKyAgICBhc3NlcnQgJyN4MCcgaW4gdGV4dAorCisKK2RlZiB0ZXN0X2ludmFsaWRfeG1s
X2VzY2FwZSgpOgorICAgICMgVGVzdCBzb21lIG1vcmUgaW52YWxpZCB4bWwgY2hhcnMsIHRoZSBm
dWxsIHJhbmdlIHNob3VsZCBiZQorICAgICMgdGVzdGVkIHJlYWxseSBidXQgbGV0J3MganVzdCB0
aGVzdCB0aGUgZWRnZXMgb2YgdGhlIHJhbmdlcworICAgICMgaW50ZWFkLgorICAgICMgWFhYIFRo
aXMgb25seSB0ZXN0cyBsb3cgdW5pY29kZSBjaGFyYWN0ZXIgcG9pbnRzIGZvciBub3cgYXMKKyAg
ICAjICAgICB0aGVyZSBhcmUgc29tZSBpc3N1ZXMgd2l0aCB0aGUgdGVzdGluZyBpbmZyYXN0cnVj
dHVyZSBmb3IKKyAgICAjICAgICB0aGUgaGlnaGVyIG9uZXMuCisgICAgIyBYWFggVGVzdGluZyAw
eEQgKFxyKSBpcyB0cmlja3kgYXMgaXQgb3ZlcndyaXRlcyB0aGUganVzdCB3cml0dGVuCisgICAg
IyAgICAgbGluZSBpbiB0aGUgb3V0cHV0LCBzbyB3ZSBza2lwIGl0IHRvby4KKyAgICBnbG9iYWwg
dW5pY2hyCisgICAgdHJ5OgorICAgICAgICB1bmljaHIoNjUpCisgICAgZXhjZXB0IE5hbWVFcnJv
cjoKKyAgICAgICAgdW5pY2hyID0gY2hyCisgICAgaW52YWxpZCA9ICgweDAwLCAweDEsIDB4Qiwg
MHhDLCAweEUsIDB4MTksIDI3LCAgIyBpc3N1ZSAjMTI2CisgICAgICAgICAgICAgICAweEQ4MDAs
IDB4REZGRiwgMHhGRkZFLCAweDBGRkZGKSAgIyAsIDB4MTEwMDAwKQorICAgIHZhbGlkID0gKDB4
OSwgMHhBLCAweDIwLCApCisgICAgIyAweEQsIDB4RDdGRiwgMHhFMDAwLCAweEZGRkQsIDB4MTAw
MDAsIDB4MTBGRkZGKQorCisgICAgZnJvbSBfcHl0ZXN0Lmp1bml0eG1sIGltcG9ydCBiaW5feG1s
X2VzY2FwZQorCisgICAgZm9yIGkgaW4gaW52YWxpZDoKKyAgICAgICAgZ290ID0gYmluX3htbF9l
c2NhcGUodW5pY2hyKGkpKS51bmlvYmoKKyAgICAgICAgaWYgaSA8PSAweEZGOgorICAgICAgICAg
ICAgZXhwZWN0ZWQgPSAnI3glMDJYJyAlIGkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4
cGVjdGVkID0gJyN4JTA0WCcgJSBpCisgICAgICAgIGFzc2VydCBnb3QgPT0gZXhwZWN0ZWQKKyAg
ICBmb3IgaSBpbiB2YWxpZDoKKyAgICAgICAgYXNzZXJ0IGNocihpKSA9PSBiaW5feG1sX2VzY2Fw
ZSh1bmljaHIoaSkpLnVuaW9iagorCisKK2RlZiB0ZXN0X2xvZ3htbF9wYXRoX2V4cGFuc2lvbih0
bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICBob21lX3RpbGRlID0gcHkucGF0aC5sb2NhbChvcy5w
YXRoLmV4cGFuZHVzZXIoJ34nKSkuam9pbigndGVzdC54bWwnKQorCisgICAgeG1sX3RpbGRlID0g
TG9nWE1MKCd+JXN0ZXN0LnhtbCcgJSB0bXBkaXIuc2VwLCBOb25lKQorICAgIGFzc2VydCB4bWxf
dGlsZGUubG9nZmlsZSA9PSBob21lX3RpbGRlCisKKyAgICAjIHRoaXMgaXMgaGVyZSBmb3Igd2hl
biAkSE9NRSBpcyBub3Qgc2V0IGNvcnJlY3QKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkhPTUUi
LCB0bXBkaXIpCisgICAgaG9tZV92YXIgPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguZXhwYW5k
dmFycygnJEhPTUUvdGVzdC54bWwnKSkKKworICAgIHhtbF92YXIgPSBMb2dYTUwoJyRIT01FJXN0
ZXN0LnhtbCcgJSB0bXBkaXIuc2VwLCBOb25lKQorICAgIGFzc2VydCB4bWxfdmFyLmxvZ2ZpbGUg
PT0gaG9tZV92YXIKKworCitkZWYgdGVzdF9sb2d4bWxfY2hhbmdpbmdkaXIodGVzdGRpcik6Cisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIG9zLmNoZGlyKCJhIikKKyAgICAiIiIpCisg
ICAgdGVzdGRpci50bXBkaXIubWtkaXIoImEiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItLWp1bml0eG1sPWEveC54bWwiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAg
ICBhc3NlcnQgdGVzdGRpci50bXBkaXIuam9pbigiYS94LnhtbCIpLmNoZWNrKCkKKworCitkZWYg
dGVzdF9sb2d4bWxfbWFrZWRpcih0ZXN0ZGlyKToKKyAgICAiIiItLWp1bml0eG1sIHNob3VsZCBh
dXRvbWF0aWNhbGx5IGNyZWF0ZSBkaXJlY3RvcmllcyBmb3IgdGhlIHhtbCBmaWxlIiIiCisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAgICAg
ICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWp1
bml0eG1sPXBhdGgvdG8vcmVzdWx0cy54bWwiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KyAgICBhc3NlcnQgdGVzdGRpci50bXBkaXIuam9pbigicGF0aC90by9yZXN1bHRzLnhtbCIpLmNo
ZWNrKCkKKworCitkZWYgdGVzdF9sb2d4bWxfY2hlY2tfaXNkaXIodGVzdGRpcik6CisgICAgIiIi
R2l2ZSBhbiBlcnJvciBpZiAtLWp1bml0LXhtbCBpcyBhIGRpcmVjdG9yeSAoIzIwODkpIiIiCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tanVuaXQteG1sPS4iKQorICAgIHJlc3Vs
dC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIiotLWp1bml0eG1sIG11c3QgYmUgYSBmaWxlbmFtZSoi
XSkKKworCitkZWYgdGVzdF9lc2NhcGVkX3BhcmFtZXRyaXplZF9uYW1lc194bWwodGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY2hhcicsIFt1IlxceDAwIl0pCisgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoY2hhcik6CisgICAgICAgICAgICBhc3NlcnQgY2hhcgorICAgICIiIikK
KyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikK
KyAgICBub2RlLmFzc2VydF9hdHRyKG5hbWU9InRlc3RfZnVuY1tcXHgwMF0iKQorCisKK2RlZiB0
ZXN0X2RvdWJsZV9jb2xvbl9zcGxpdF9mdW5jdGlvbl9pc3N1ZTQ2OSh0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdwYXJhbScsIFsiZG91YmxlOjpjb2xvbiJdKQorICAgICAg
ICBkZWYgdGVzdF9mdW5jKHBhcmFtKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAg
cmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKyAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAg
bm9kZS5hc3NlcnRfYXR0cihjbGFzc25hbWU9InRlc3RfZG91YmxlX2NvbG9uX3NwbGl0X2Z1bmN0
aW9uX2lzc3VlNDY5IikKKyAgICBub2RlLmFzc2VydF9hdHRyKG5hbWU9J3Rlc3RfZnVuY1tkb3Vi
bGU6OmNvbG9uXScpCisKKworZGVmIHRlc3RfZG91YmxlX2NvbG9uX3NwbGl0X21ldGhvZF9pc3N1
ZTQ2OSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3BhcmFtJywgWyJkb3VibGU6OmNvbG9uIl0pCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYsIHBhcmFtKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgIiIiKQorICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygi
dGVzdGNhc2UiKQorICAgIG5vZGUuYXNzZXJ0X2F0dHIoCisgICAgICAgIGNsYXNzbmFtZT0idGVz
dF9kb3VibGVfY29sb25fc3BsaXRfbWV0aG9kX2lzc3VlNDY5LlRlc3RDbGFzcyIpCisgICAgbm9k
ZS5hc3NlcnRfYXR0cihuYW1lPSd0ZXN0X2Z1bmNbZG91YmxlOjpjb2xvbl0nKQorCisKK2RlZiB0
ZXN0X3VuaWNvZGVfaXNzdWUzNjgodGVzdGRpcik6CisgICAgcGF0aCA9IHRlc3RkaXIudG1wZGly
LmpvaW4oInRlc3QueG1sIikKKyAgICBsb2cgPSBMb2dYTUwoc3RyKHBhdGgpLCBOb25lKQorICAg
IHVzdHIgPSBweS5idWlsdGluLl90b3RleHQoItCS0J3QmCEiLCAidXRmLTgiKQorICAgIGZyb20g
X3B5dGVzdC5ydW5uZXIgaW1wb3J0IEJhc2VSZXBvcnQKKworICAgIGNsYXNzIFJlcG9ydChCYXNl
UmVwb3J0KToKKyAgICAgICAgbG9uZ3JlcHIgPSB1c3RyCisgICAgICAgIHNlY3Rpb25zID0gW10K
KyAgICAgICAgbm9kZWlkID0gInNvbWV0aGluZyIKKyAgICAgICAgbG9jYXRpb24gPSAndGVzdHMv
ZmlsZW5hbWUucHknLCA0MiwgJ1Rlc3RDbGFzcy5tZXRob2QnCisKKyAgICB0ZXN0X3JlcG9ydCA9
IFJlcG9ydCgpCisKKyAgICAjIGhvcGVmdWxseSB0aGlzIGlzIG5vdCB0b28gYnJpdHRsZSAuLi4K
KyAgICBsb2cucHl0ZXN0X3Nlc3Npb25zdGFydCgpCisgICAgbm9kZV9yZXBvcnRlciA9IGxvZy5f
b3BlbnRlc3RjYXNlKHRlc3RfcmVwb3J0KQorICAgIG5vZGVfcmVwb3J0ZXIuYXBwZW5kX2ZhaWx1
cmUodGVzdF9yZXBvcnQpCisgICAgbm9kZV9yZXBvcnRlci5hcHBlbmRfY29sbGVjdF9lcnJvcih0
ZXN0X3JlcG9ydCkKKyAgICBub2RlX3JlcG9ydGVyLmFwcGVuZF9jb2xsZWN0X3NraXBwZWQodGVz
dF9yZXBvcnQpCisgICAgbm9kZV9yZXBvcnRlci5hcHBlbmRfZXJyb3IodGVzdF9yZXBvcnQpCisg
ICAgdGVzdF9yZXBvcnQubG9uZ3JlcHIgPSAiZmlsZW5hbWUiLCAxLCB1c3RyCisgICAgbm9kZV9y
ZXBvcnRlci5hcHBlbmRfc2tpcHBlZCh0ZXN0X3JlcG9ydCkKKyAgICB0ZXN0X3JlcG9ydC5sb25n
cmVwciA9ICJmaWxlbmFtZSIsIDEsICJTa2lwcGVkOiDljaHlmKPlmKMiCisgICAgbm9kZV9yZXBv
cnRlci5hcHBlbmRfc2tpcHBlZCh0ZXN0X3JlcG9ydCkKKyAgICB0ZXN0X3JlcG9ydC53YXN4ZmFp
bCA9IHVzdHIKKyAgICBub2RlX3JlcG9ydGVyLmFwcGVuZF9za2lwcGVkKHRlc3RfcmVwb3J0KQor
ICAgIGxvZy5weXRlc3Rfc2Vzc2lvbmZpbmlzaCgpCisKKworZGVmIHRlc3RfcmVjb3JkX3Byb3Bl
cnR5KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgb3RoZXIocmVj
b3JkX3htbF9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfeG1sX3Byb3BlcnR5KCJiYXIi
LCAxKQorICAgICAgICBkZWYgdGVzdF9yZWNvcmQocmVjb3JkX3htbF9wcm9wZXJ0eSwgb3RoZXIp
OgorICAgICAgICAgICAgcmVjb3JkX3htbF9wcm9wZXJ0eSgiZm9vIiwgIjwxIik7CisgICAgIiIi
KQorICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpciwgJy1ydycpCisgICAgbm9k
ZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICB0bm9kZSA9IG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICBwc25vZGUgPSB0bm9kZS5maW5kX2Zp
cnN0X2J5X3RhZygncHJvcGVydGllcycpCisgICAgcG5vZGVzID0gcHNub2RlLmZpbmRfYnlfdGFn
KCdwcm9wZXJ0eScpCisgICAgcG5vZGVzWzBdLmFzc2VydF9hdHRyKG5hbWU9ImJhciIsIHZhbHVl
PSIxIikKKyAgICBwbm9kZXNbMV0uYXNzZXJ0X2F0dHIobmFtZT0iZm9vIiwgdmFsdWU9IjwxIikK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAndGVzdF9yZWNvcmRf
cHJvcGVydHkucHk6OnRlc3RfcmVjb3JkJywKKyAgICAgICAgJypyZWNvcmRfeG1sX3Byb3BlcnR5
KmV4cGVyaW1lbnRhbConLAorICAgIF0pCisKKworZGVmIHRlc3RfcmVjb3JkX3Byb3BlcnR5X3Nh
bWVfbmFtZSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRl
ZiB0ZXN0X3JlY29yZF93aXRoX3NhbWVfbmFtZShyZWNvcmRfeG1sX3Byb3BlcnR5KToKKyAgICAg
ICAgICAgIHJlY29yZF94bWxfcHJvcGVydHkoImZvbyIsICJiYXIiKQorICAgICAgICAgICAgcmVj
b3JkX3htbF9wcm9wZXJ0eSgiZm9vIiwgImJheiIpCisgICAgIiIiKQorICAgIHJlc3VsdCwgZG9t
ID0gcnVuYW5kcGFyc2UodGVzdGRpciwgJy1ydycpCisgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0
X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWco
InRlc3RjYXNlIikKKyAgICBwc25vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygncHJvcGVy
dGllcycpCisgICAgcG5vZGVzID0gcHNub2RlLmZpbmRfYnlfdGFnKCdwcm9wZXJ0eScpCisgICAg
cG5vZGVzWzBdLmFzc2VydF9hdHRyKG5hbWU9ImZvbyIsIHZhbHVlPSJiYXIiKQorICAgIHBub2Rl
c1sxXS5hc3NlcnRfYXR0cihuYW1lPSJmb28iLCB2YWx1ZT0iYmF6IikKKworCitkZWYgdGVzdF9y
YW5kb21fcmVwb3J0X2xvZ194ZGlzdCh0ZXN0ZGlyKToKKyAgICAiIiJ4ZGlzdCBjYWxscyBweXRl
c3RfcnVudGVzdF9sb2dyZXBvcnQgYXMgdGhleSBhcmUgZXhlY3V0ZWQgYnkgdGhlIHNsYXZlcywK
KyAgICB3aXRoIG5vZGVzIGZyb20gc2V2ZXJhbCBub2RlcyBvdmVybGFwcGluZywgc28ganVuaXR4
bWwgbXVzdCBjb3BlIHdpdGggdGhhdAorICAgIHRvIHByb2R1Y2UgY29ycmVjdCByZXBvcnRzLiAj
MTA2NAorICAgICIiIgorICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoJ3hkaXN0JykKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QsIHRpbWUKKyAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpJywgbGlzdChyYW5nZSgzMCkpKQorICAgICAgICBk
ZWYgdGVzdF94KGkpOgorICAgICAgICAgICAgYXNzZXJ0IGkgIT0gMjIKKyAgICAiIiIpCisgICAg
XywgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpciwgJy1uMicpCisgICAgc3VpdGVfbm9kZSA9IGRv
bS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICBmYWlsZWQgPSBbXQorICAgIGZv
ciBjYXNlX25vZGUgaW4gc3VpdGVfbm9kZS5maW5kX2J5X3RhZygidGVzdGNhc2UiKToKKyAgICAg
ICAgaWYgY2FzZV9ub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCdmYWlsdXJlJyk6CisgICAgICAgICAg
ICBmYWlsZWQuYXBwZW5kKGNhc2Vfbm9kZVsnbmFtZSddKQorCisgICAgYXNzZXJ0IGZhaWxlZCA9
PSBbJ3Rlc3RfeFsyMl0nXQorCisKK2RlZiB0ZXN0X3J1bnNfdHdpY2UodGVzdGRpcik6CisgICAg
ZiA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAg
ICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2Uo
dGVzdGRpciwgZiwgZikKKyAgICBhc3NlcnQgJ0lOVEVSTkFMRVJST1InIG5vdCBpbiByZXN1bHQu
c3Rkb3V0LnN0cigpCisgICAgZmlyc3QsIHNlY29uZCA9IFt4WydjbGFzc25hbWUnXSBmb3IgeCBp
biBkb20uZmluZF9ieV90YWcoInRlc3RjYXNlIildCisgICAgYXNzZXJ0IGZpcnN0ID09IHNlY29u
ZAorCisKK0BweXRlc3QubWFyay54ZmFpbChyZWFzb249J2hhbmdzJywgcnVuPUZhbHNlKQorZGVm
IHRlc3RfcnVuc190d2ljZV94ZGlzdCh0ZXN0ZGlyKToKKyAgICBweXRlc3QuaW1wb3J0b3Jza2lw
KCd4ZGlzdCcpCisgICAgZiA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgZGVmIHRl
c3RfcGFzcygpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCwgZG9t
ID0gcnVuYW5kcGFyc2UoCisgICAgICAgIHRlc3RkaXIsIGYsCisgICAgICAgICctLWRpc3QnLCAn
ZWFjaCcsICctLXR4JywgJzIqcG9wZW4nLCkKKyAgICBhc3NlcnQgJ0lOVEVSTkFMRVJST1InIG5v
dCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgZmlyc3QsIHNlY29uZCA9IFt4WydjbGFzc25h
bWUnXSBmb3IgeCBpbiBkb20uZmluZF9ieV90YWcoInRlc3RjYXNlIildCisgICAgYXNzZXJ0IGZp
cnN0ID09IHNlY29uZAorCisKK2RlZiB0ZXN0X2ZhbmN5X2l0ZW1zX3JlZ3Jlc3Npb24odGVzdGRp
cik6CisgICAgIyBpc3N1ZSAxMjU5CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgY2xhc3MgRnVuSXRlbShweXRlc3QuSXRlbSk6Cisg
ICAgICAgICAgICBkZWYgcnVudGVzdChzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgIGNsYXNzIE5vRnVuSXRlbShweXRlc3QuSXRlbSk6CisgICAgICAgICAgICBkZWYgcnVudGVz
dChzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgRnVuQ29sbGVj
dG9yKHB5dGVzdC5GaWxlKToKKyAgICAgICAgICAgIGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICAgICAgICAgIEZ1bkl0ZW0oJ2EnLCBzZWxm
KSwKKyAgICAgICAgICAgICAgICAgICAgTm9GdW5JdGVtKCdhJywgc2VsZiksCisgICAgICAgICAg
ICAgICAgICAgIE5vRnVuSXRlbSgnYicsIHNlbGYpLAorICAgICAgICAgICAgICAgIF0KKworICAg
ICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAg
aWYgcGF0aC5jaGVjayhleHQ9Jy5weScpOgorICAgICAgICAgICAgICAgIHJldHVybiBGdW5Db2xs
ZWN0b3IocGF0aCwgcGFyZW50KQorICAgICIiIikKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgn
JycKKyAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykK
KworICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKworICAgIGFzc2VydCAn
SU5URVJOQUxFUlJPUicgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGl0ZW1zID0g
c29ydGVkKAorICAgICAgICAnJShjbGFzc25hbWUpcyAlKG5hbWUpcyAlKGZpbGUpcycgJSB4CisK
KyAgICAgICAgZm9yIHggaW4gZG9tLmZpbmRfYnlfdGFnKCJ0ZXN0Y2FzZSIpKQorICAgIGltcG9y
dCBwcHJpbnQKKyAgICBwcHJpbnQucHByaW50KGl0ZW1zKQorICAgIGFzc2VydCBpdGVtcyA9PSBb
CisgICAgICAgIHUnY29uZnRlc3QgYSBjb25mdGVzdC5weScsCisgICAgICAgIHUnY29uZnRlc3Qg
YSBjb25mdGVzdC5weScsCisgICAgICAgIHUnY29uZnRlc3QgYiBjb25mdGVzdC5weScsCisgICAg
ICAgIHUndGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGEgdGVzdF9mYW5jeV9pdGVtc19yZWdy
ZXNzaW9uLnB5JywKKyAgICAgICAgdSd0ZXN0X2ZhbmN5X2l0ZW1zX3JlZ3Jlc3Npb24gYSB0ZXN0
X2ZhbmN5X2l0ZW1zX3JlZ3Jlc3Npb24ucHknLAorICAgICAgICB1J3Rlc3RfZmFuY3lfaXRlbXNf
cmVncmVzc2lvbiBiIHRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbi5weScsCisgICAgICAgIHUn
dGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIHRlc3RfcGFzcycKKyAgICAgICAgdScgdGVzdF9m
YW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5JywKKyAgICBdCisKKworZGVmIHRlc3RfZ2xvYmFsX3By
b3BlcnRpZXModGVzdGRpcik6CisgICAgcGF0aCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3Rf
Z2xvYmFsX3Byb3BlcnRpZXMueG1sIikKKyAgICBsb2cgPSBMb2dYTUwoc3RyKHBhdGgpLCBOb25l
KQorICAgIGZyb20gX3B5dGVzdC5ydW5uZXIgaW1wb3J0IEJhc2VSZXBvcnQKKworICAgIGNsYXNz
IFJlcG9ydChCYXNlUmVwb3J0KToKKyAgICAgICAgc2VjdGlvbnMgPSBbXQorICAgICAgICBub2Rl
aWQgPSAidGVzdF9ub2RlX2lkIgorCisgICAgbG9nLnB5dGVzdF9zZXNzaW9uc3RhcnQoKQorICAg
IGxvZy5hZGRfZ2xvYmFsX3Byb3BlcnR5KCdmb28nLCAxKQorICAgIGxvZy5hZGRfZ2xvYmFsX3By
b3BlcnR5KCdiYXInLCAyKQorICAgIGxvZy5weXRlc3Rfc2Vzc2lvbmZpbmlzaCgpCisKKyAgICBk
b20gPSBtaW5pZG9tLnBhcnNlKHN0cihwYXRoKSkKKworICAgIHByb3BlcnRpZXMgPSBkb20uZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3Byb3BlcnRpZXMnKQorCisgICAgYXNzZXJ0IChwcm9wZXJ0aWVz
Lmxlbmd0aCA9PSAxKSwgIlRoZXJlIG11c3QgYmUgb25lIDxwcm9wZXJ0aWVzPiBub2RlIgorCisg
ICAgcHJvcGVydHlfbGlzdCA9IGRvbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJvcGVydHknKQor
CisgICAgYXNzZXJ0IChwcm9wZXJ0eV9saXN0Lmxlbmd0aCA9PSAyKSwgIlRoZXJlIG1vc3QgYmUg
b25seSAyIHByb3BlcnR5IG5vZGVzIgorCisgICAgZXhwZWN0ZWQgPSB7J2Zvbyc6ICcxJywgJ2Jh
cic6ICcyJ30KKyAgICBhY3R1YWwgPSB7fQorCisgICAgZm9yIHAgaW4gcHJvcGVydHlfbGlzdDoK
KyAgICAgICAgayA9IHN0cihwLmdldEF0dHJpYnV0ZSgnbmFtZScpKQorICAgICAgICB2ID0gc3Ry
KHAuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKQorICAgICAgICBhY3R1YWxba10gPSB2CisKKyAgICBh
c3NlcnQgYWN0dWFsID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfdXJsX3Byb3BlcnR5KHRlc3Rk
aXIpOgorICAgIHRlc3RfdXJsID0gImh0dHA6Ly93d3cuZ2l0aHViLmNvbS9weXRlc3QtZGV2Igor
ICAgIHBhdGggPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0X3VybF9wcm9wZXJ0eS54bWwiKQor
ICAgIGxvZyA9IExvZ1hNTChzdHIocGF0aCksIE5vbmUpCisgICAgZnJvbSBfcHl0ZXN0LnJ1bm5l
ciBpbXBvcnQgQmFzZVJlcG9ydAorCisgICAgY2xhc3MgUmVwb3J0KEJhc2VSZXBvcnQpOgorICAg
ICAgICBsb25ncmVwciA9ICJGb29CYXJCYXoiCisgICAgICAgIHNlY3Rpb25zID0gW10KKyAgICAg
ICAgbm9kZWlkID0gInNvbWV0aGluZyIKKyAgICAgICAgbG9jYXRpb24gPSAndGVzdHMvZmlsZW5h
bWUucHknLCA0MiwgJ1Rlc3RDbGFzcy5tZXRob2QnCisgICAgICAgIHVybCA9IHRlc3RfdXJsCisK
KyAgICB0ZXN0X3JlcG9ydCA9IFJlcG9ydCgpCisKKyAgICBsb2cucHl0ZXN0X3Nlc3Npb25zdGFy
dCgpCisgICAgbm9kZV9yZXBvcnRlciA9IGxvZy5fb3BlbnRlc3RjYXNlKHRlc3RfcmVwb3J0KQor
ICAgIG5vZGVfcmVwb3J0ZXIuYXBwZW5kX2ZhaWx1cmUodGVzdF9yZXBvcnQpCisgICAgbG9nLnB5
dGVzdF9zZXNzaW9uZmluaXNoKCkKKworICAgIHRlc3RfY2FzZSA9IG1pbmlkb20ucGFyc2Uoc3Ry
KHBhdGgpKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGVzdGNhc2UnKVswXQorCisgICAgYXNzZXJ0
ICh0ZXN0X2Nhc2UuZ2V0QXR0cmlidXRlKCd1cmwnKSA9PSB0ZXN0X3VybCksICJUaGUgVVJMIGRp
ZCBub3QgZ2V0IHdyaXR0ZW4gdG8gdGhlIHhtbCIKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoJ3N1aXRlX25hbWUnLCBbJ215X3N1aXRlJywgJyddKQorZGVmIHRlc3Rfc2V0X3N1aXRlX25h
bWUodGVzdGRpciwgc3VpdGVfbmFtZSk6CisgICAgaWYgc3VpdGVfbmFtZToKKyAgICAgICAgdGVz
dGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGp1bml0
X3N1aXRlX25hbWU9ezB9CisgICAgICAgICIiIi5mb3JtYXQoc3VpdGVfbmFtZSkpCisgICAgICAg
IGV4cGVjdGVkID0gc3VpdGVfbmFtZQorICAgIGVsc2U6CisgICAgICAgIGV4cGVjdGVkID0gJ3B5
dGVzdCcKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQor
ICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikK
KyAgICBub2RlLmFzc2VydF9hdHRyKG5hbWU9ZXhwZWN0ZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfbWFyay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJr
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2YmYwYjBlNzc4N2I3ZDkzZmMwOWQzMjY4MTViYmZmMGY1M2UzNGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbWFyay5weQpAQCAt
MCwwICsxLDg3OCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrR2VuZXJhdG9yIGFzIE1hcmssIFBh
cmFtZXRlclNldCwgdHJhbnNmZXJfbWFya2VycworCisKK2NsYXNzIFRlc3RNYXJrKG9iamVjdCk6
CisgICAgZGVmIHRlc3RfbWFya2luZm9fcmVwcihzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0
Lm1hcmsgaW1wb3J0IE1hcmtJbmZvLCBNYXJrCisgICAgICAgIG0gPSBNYXJrSW5mbyhNYXJrKCJo
ZWxsbyIsICgxLCAyKSwge30pKQorICAgICAgICByZXByKG0pCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ2F0dHInLCBbJ21hcmsnLCAncGFyYW0nXSkKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ21vZHVsZW5hbWUnLCBbJ3B5LnRlc3QnLCAncHl0ZXN0J10pCisgICAgZGVm
IHRlc3RfcHl0ZXN0X2V4aXN0c19pbl9uYW1lc3BhY2VfYWxsKHNlbGYsIGF0dHIsIG1vZHVsZW5h
bWUpOgorICAgICAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1ttb2R1bGVuYW1lXQorICAgICAgICBh
c3NlcnQgYXR0ciBpbiBtb2R1bGUuX19hbGxfXworCisgICAgZGVmIHRlc3RfcHl0ZXN0X21hcmtf
bm90Y2FsbGFibGUoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKyAgICAgICAgcHl0ZXN0
LnJhaXNlcygoQXR0cmlidXRlRXJyb3IsIFR5cGVFcnJvciksIG1hcmspCisKKyAgICBkZWYgdGVz
dF9tYXJrX3dpdGhfcGFyYW0oc2VsZik6CisgICAgICAgIGRlZiBzb21lX2Z1bmN0aW9uKGFiYyk6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZ1bihzb21lX2Z1
bmN0aW9uKSBpcyBzb21lX2Z1bmN0aW9uCisgICAgICAgIGFzc2VydCBweXRlc3QubWFyay5mdW4u
d2l0aF9hcmdzKHNvbWVfZnVuY3Rpb24pIGlzIG5vdCBzb21lX2Z1bmN0aW9uCisKKyAgICAgICAg
YXNzZXJ0IHB5dGVzdC5tYXJrLmZ1bihTb21lQ2xhc3MpIGlzIFNvbWVDbGFzcworICAgICAgICBh
c3NlcnQgcHl0ZXN0Lm1hcmsuZnVuLndpdGhfYXJncyhTb21lQ2xhc3MpIGlzIG5vdCBTb21lQ2xh
c3MKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX25hbWVfc3RhcnRzX3dpdGhfdW5kZXJzY29y
ZShzZWxmKToKKyAgICAgICAgbWFyayA9IE1hcmsoKQorICAgICAgICBweXRlc3QucmFpc2VzKEF0
dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtYXJrLCAnX3NvbWVfbmFtZScpCisKKyAgICBkZWYgdGVz
dF9weXRlc3RfbWFya19iYXJlKHNlbGYpOgorICAgICAgICBtYXJrID0gTWFyaygpCisKKyAgICAg
ICAgZGVmIGYoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtYXJrLmhlbGxvKGYpCisg
ICAgICAgIGFzc2VydCBmLmhlbGxvCisKKyAgICBkZWYgdGVzdF9weXRlc3RfbWFya19rZXl3b3Jk
cyhzZWxmKToKKyAgICAgICAgbWFyayA9IE1hcmsoKQorCisgICAgICAgIGRlZiBmKCk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICAgICAgbWFyay53b3JsZCh4PTMsIHk9NCkoZikKKyAgICAgICAg
YXNzZXJ0IGYud29ybGQKKyAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyd4J10gPT0gMwor
ICAgICAgICBhc3NlcnQgZi53b3JsZC5rd2FyZ3NbJ3knXSA9PSA0CisKKyAgICBkZWYgdGVzdF9h
cHBseV9tdWx0aXBsZV9hbmRfbWVyZ2Uoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKwor
ICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1hcmsud29ybGQK
KyAgICAgICAgbWFyay53b3JsZCh4PTMpKGYpCisgICAgICAgIGFzc2VydCBmLndvcmxkLmt3YXJn
c1sneCddID09IDMKKyAgICAgICAgbWFyay53b3JsZCh5PTQpKGYpCisgICAgICAgIGFzc2VydCBm
LndvcmxkLmt3YXJnc1sneCddID09IDMKKyAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyd5
J10gPT0gNAorICAgICAgICBtYXJrLndvcmxkKHk9MSkoZikKKyAgICAgICAgYXNzZXJ0IGYud29y
bGQua3dhcmdzWyd5J10gPT0gMQorICAgICAgICBhc3NlcnQgbGVuKGYud29ybGQuYXJncykgPT0g
MAorCisgICAgZGVmIHRlc3RfcHl0ZXN0X21hcmtfcG9zaXRpb25hbChzZWxmKToKKyAgICAgICAg
bWFyayA9IE1hcmsoKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgbWFyay53b3JsZCgiaGVsbG8iKShmKQorICAgICAgICBhc3NlcnQgZi53b3JsZC5hcmdz
WzBdID09ICJoZWxsbyIKKyAgICAgICAgbWFyay53b3JsZCgid29ybGQiKShmKQorCisgICAgZGVm
IHRlc3RfcHl0ZXN0X21hcmtfcG9zaXRpb25hbF9mdW5jX2FuZF9rZXl3b3JkKHNlbGYpOgorICAg
ICAgICBtYXJrID0gTWFyaygpCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbgorCisgICAgICAgIG0gPSBtYXJrLndvcmxkKGYsIG9tZWdhPSJoZWxsbyIpCisK
KyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBhc3NlcnQgbShn
KSA9PSBnCisgICAgICAgIGFzc2VydCBnLndvcmxkLmFyZ3NbMF0gaXMgZgorICAgICAgICBhc3Nl
cnQgZy53b3JsZC5rd2FyZ3NbIm9tZWdhIl0gPT0gImhlbGxvIgorCisgICAgZGVmIHRlc3RfcHl0
ZXN0X21hcmtfcmV1c2Uoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKworICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHcgPSBtYXJrLnNvbWUKKyAgICAg
ICAgdygiaGVsbG8iLCByZWFzb249IjEyMyIpKGYpCisgICAgICAgIGFzc2VydCBmLnNvbWUuYXJn
c1swXSA9PSAiaGVsbG8iCisgICAgICAgIGFzc2VydCBmLnNvbWUua3dhcmdzWydyZWFzb24nXSA9
PSAiMTIzIgorCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAg
dygid29ybGQiLCByZWFzb24yPSI0NTYiKShnKQorICAgICAgICBhc3NlcnQgZy5zb21lLmFyZ3Nb
MF0gPT0gIndvcmxkIgorICAgICAgICBhc3NlcnQgJ3JlYXNvbicgbm90IGluIGcuc29tZS5rd2Fy
Z3MKKyAgICAgICAgYXNzZXJ0IGcuc29tZS5rd2FyZ3NbJ3JlYXNvbjInXSA9PSAiNDU2IgorCisK
K2RlZiB0ZXN0X21hcmtlZF9jbGFzc19ydW5fdHdpY2UodGVzdGRpciwgcmVxdWVzdCk6CisgICAg
IiIiVGVzdCBmYWlscyBmaWxlIGlzIHJ1biB0d2ljZSB0aGF0IGNvbnRhaW5zIG1hcmtlZCBjbGFz
cy4KKyAgICBTZWUgaXNzdWUjNjgzLgorICAgICIiIgorICAgIHB5X2ZpbGUgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnYWJjJywgWzEsIDIsIDNdKQorICAgIGNsYXNzIFRlc3QxKG9iamVjdCk6CisgICAgICAg
IGRlZiB0ZXN0XzEoc2VsZiwgYWJjKToKKyAgICAgICAgICAgIGFzc2VydCBhYmMgaW4gWzEsIDIs
IDNdCisgICAgIiIiKQorICAgIGZpbGVfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUocHlfZmlsZS5z
dHJwYXRoKQorICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihmaWxlX25hbWUsIGZpbGVfbmFt
ZSkKKyAgICByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NikKKworCitkZWYgdGVzdF9pbmlfbWFy
a2Vycyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgIFtweXRlc3Rd
CisgICAgICAgIG1hcmtlcnMgPQorICAgICAgICAgICAgYTE6IHRoaXMgaXMgYSB3ZWJ0ZXN0IG1h
cmtlcgorICAgICAgICAgICAgYTI6IHRoaXMgaXMgYSBzbW9rZSBtYXJrZXIKKyAgICAiIiIpCisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9tYXJrZXJzKHB5dGVz
dGNvbmZpZyk6CisgICAgICAgICAgICBtYXJrZXJzID0gcHl0ZXN0Y29uZmlnLmdldGluaSgibWFy
a2VycyIpCisgICAgICAgICAgICBwcmludCAobWFya2VycykKKyAgICAgICAgICAgIGFzc2VydCBs
ZW4obWFya2VycykgPj0gMgorICAgICAgICAgICAgYXNzZXJ0IG1hcmtlcnNbMF0uc3RhcnRzd2l0
aCgiYTE6IikKKyAgICAgICAgICAgIGFzc2VydCBtYXJrZXJzWzFdLnN0YXJ0c3dpdGgoImEyOiIp
CisgICAgIiIiKQorICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKworZGVmIHRlc3RfbWFya2Vyc19vcHRpb24odGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBtYXJr
ZXJzID0KKyAgICAgICAgICAgIGExOiB0aGlzIGlzIGEgd2VidGVzdCBtYXJrZXIKKyAgICAgICAg
ICAgIGExc29tZTogYW5vdGhlciBtYXJrZXIKKyAgICAgICAgICAgIG5vZGVzY3JpcHRpb24KKyAg
ICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbWFya2VycyIsICkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKmExKnRoaXMgaXMgYSB3
ZWJ0ZXN0KiIsCisgICAgICAgICIqYTFzb21lKmFub3RoZXIgbWFya2VyIiwKKyAgICAgICAgIipu
b2Rlc2NyaXB0aW9uKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9pbmlfbWFya2Vyc193aGl0ZXNw
YWNlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgW3B5dGVzdF0K
KyAgICAgICAgbWFya2VycyA9CisgICAgICAgICAgICBhMSA6IHRoaXMgaXMgYSB3aGl0ZXNwYWNl
IG1hcmtlcgorICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0Lm1hcmsuYTEKKyAgICAgICAgZGVmIHRlc3Rf
bWFya2VycygpOgorICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAiIiIpCisgICAgcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCItLXN0cmljdCIsICItbSIsICJhMSIpCisgICAgcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKworZGVmIHRlc3RfbWFya2VyX3dpdGhvdXRfZGVzY3JpcHRp
b24odGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlZmlsZSgiLmNmZyIsIHNldHVwPSIiIgorICAg
ICAgICBbdG9vbDpweXRlc3RdCisgICAgICAgIG1hcmtlcnM9c2xvdworICAgICIiIikKKyAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBw
eXRlc3QubWFyay54ZmFpbCgnRkFJTCcpCisgICAgIiIiKQorICAgIGZ0ZGlyID0gdGVzdGRpci5t
a2RpcigiZnQxX2R1bW15IikKKyAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJjb25mdGVzdC5weSIp
Lm1vdmUoZnRkaXIuam9pbigiY29uZnRlc3QucHkiKSkKKyAgICByZWMgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdF9zdWJwcm9jZXNzKCItLXN0cmljdCIpCisgICAgcmVjLmFzc2VydF9vdXRjb21lcygpCisK
KworZGVmIHRlc3RfbWFya2Vyc19vcHRpb25fd2l0aF9wbHVnaW5faW5fY3VycmVudF9kaXIodGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJ3B5dGVzdF9wbHVnaW5zID0gImZsaXBf
ZmxvcCInKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZShmbGlwX2Zsb3A9IiIiXAorICAgICAgICBk
ZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAgICAgY29uZmlnLmFkZGluaXZh
bHVlX2xpbmUoIm1hcmtlcnMiLCAiZmxpcDpmbG9wIikKKworICAgICAgICBkZWYgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBtYXJrID0gbWV0YWZ1bmMuZnVuY3Rpb24uZmxpcHBlcgorICAgICAgICAgICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgbWV0YWZ1
bmMucGFyYW1ldHJpemUoIngiLCAoMTAsIDIwKSkiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIlwKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0Lm1hcmsuZmxpcHBl
cgorICAgICAgICBkZWYgdGVzdF9leGFtcGxlKHgpOgorICAgICAgICAgICAgYXNzZXJ0IHgiIiIp
CisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1tYXJrZXJzIikKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqZmxpcCpmbG9wKiJdKQorCisKK2RlZiB0ZXN0X21h
cmtfb25fcHNldWRvX2Z1bmN0aW9uKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QubWFyay5yKGxhbWJk
YSB4OiAwLzApCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBwYXNzCisg
ICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTEpCisKKworZGVmIHRlc3Rfc3RyaWN0X3Byb2hpYml0c191bnJl
Z2lzdGVyZWRfbWFya2Vycyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnVucmVnaXN0ZXJlZG1h
cmsKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tc3RyaWN0IikKKyAgICBhc3NlcnQg
cmVzdWx0LnJldCAhPSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgIip1bnJlZ2lzdGVyZWRtYXJrKm5vdCpyZWdpc3RlcmVkKiIsCisgICAgXSkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNwZWMiLCBbCisgICAgKCJ4eXoiLCAoInRlc3Rfb25lIiwp
KSwKKyAgICAoInh5eiBhbmQgeHl6MiIsICgpKSwKKyAgICAoInh5ejIiLCAoInRlc3RfdHdvIiwp
KSwKKyAgICAoInh5eiBvciB4eXoyIiwgKCJ0ZXN0X29uZSIsICJ0ZXN0X3R3byIpLCkKK10pCitk
ZWYgdGVzdF9tYXJrX29wdGlvbihzcGVjLCB0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnh5egor
ICAgICAgICBkZWYgdGVzdF9vbmUoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgQHB5dGVz
dC5tYXJrLnh5ejIKKyAgICAgICAgZGVmIHRlc3RfdHdvKCk6CisgICAgICAgICAgICBwYXNzCisg
ICAgIiIiKQorICAgIG9wdCwgcGFzc2VkX3Jlc3VsdCA9IHNwZWMKKyAgICByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi1tIiwgb3B0KQorICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbCA9IHJlYy5s
aXN0b3V0Y29tZXMoKQorICAgIHBhc3NlZCA9IFt4Lm5vZGVpZC5zcGxpdCgiOjoiKVstMV0gZm9y
IHggaW4gcGFzc2VkXQorICAgIGFzc2VydCBsZW4ocGFzc2VkKSA9PSBsZW4ocGFzc2VkX3Jlc3Vs
dCkKKyAgICBhc3NlcnQgbGlzdChwYXNzZWQpID09IGxpc3QocGFzc2VkX3Jlc3VsdCkKKworCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNwZWMiLCBbCisgICAgKCJpbnRlcmZhY2UiLCAoInRl
c3RfaW50ZXJmYWNlIiwpKSwKKyAgICAoIm5vdCBpbnRlcmZhY2UiLCAoInRlc3Rfbm9pbnRlciIs
KSksCitdKQorZGVmIHRlc3RfbWFya19vcHRpb25fY3VzdG9tKHNwZWMsIHRlc3RkaXIpOgorICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcyk6CisgICAgICAgICAgICBm
b3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICBpZiAiaW50ZXJmYWNlIiBpbiBpdGVt
Lm5vZGVpZDoKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5rZXl3b3Jkc1siaW50ZXJmYWNlIl0g
PSBweXRlc3QubWFyay5pbnRlcmZhY2UKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICBkZWYgdGVzdF9pbnRlcmZhY2UoKToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgZGVmIHRlc3Rfbm9pbnRlcigpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAg
ICBvcHQsIHBhc3NlZF9yZXN1bHQgPSBzcGVjCisgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCItbSIsIG9wdCkKKyAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWwgPSByZWMubGlzdG91dGNvbWVz
KCkKKyAgICBwYXNzZWQgPSBbeC5ub2RlaWQuc3BsaXQoIjo6IilbLTFdIGZvciB4IGluIHBhc3Nl
ZF0KKyAgICBhc3NlcnQgbGVuKHBhc3NlZCkgPT0gbGVuKHBhc3NlZF9yZXN1bHQpCisgICAgYXNz
ZXJ0IGxpc3QocGFzc2VkKSA9PSBsaXN0KHBhc3NlZF9yZXN1bHQpCisKKworQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJzcGVjIiwgWworICAgICgiaW50ZXJmYWNlIiwgKCJ0ZXN0X2ludGVyZmFj
ZSIsKSksCisgICAgKCJub3QgaW50ZXJmYWNlIiwgKCJ0ZXN0X25vaW50ZXIiLCAidGVzdF9wYXNz
IikpLAorICAgICgicGFzcyIsICgidGVzdF9wYXNzIiwpKSwKKyAgICAoIm5vdCBwYXNzIiwgKCJ0
ZXN0X2ludGVyZmFjZSIsICJ0ZXN0X25vaW50ZXIiKSksCitdKQorZGVmIHRlc3Rfa2V5d29yZF9v
cHRpb25fY3VzdG9tKHNwZWMsIHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgZGVmIHRlc3RfaW50ZXJmYWNlKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAg
IGRlZiB0ZXN0X25vaW50ZXIoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3Rf
cGFzcygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICBvcHQsIHBhc3NlZF9yZXN1
bHQgPSBzcGVjCisgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItayIsIG9wdCkKKyAgICBw
YXNzZWQsIHNraXBwZWQsIGZhaWwgPSByZWMubGlzdG91dGNvbWVzKCkKKyAgICBwYXNzZWQgPSBb
eC5ub2RlaWQuc3BsaXQoIjo6IilbLTFdIGZvciB4IGluIHBhc3NlZF0KKyAgICBhc3NlcnQgbGVu
KHBhc3NlZCkgPT0gbGVuKHBhc3NlZF9yZXN1bHQpCisgICAgYXNzZXJ0IGxpc3QocGFzc2VkKSA9
PSBsaXN0KHBhc3NlZF9yZXN1bHQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzcGVj
IiwgWworICAgICgiTm9uZSIsICgidGVzdF9mdW5jW05vbmVdIiwpKSwKKyAgICAoIjEuMyIsICgi
dGVzdF9mdW5jWzEuM10iLCkpLAorICAgICgiMi0zIiwgKCJ0ZXN0X2Z1bmNbMi0zXSIsKSkKK10p
CitkZWYgdGVzdF9rZXl3b3JkX29wdGlvbl9wYXJhbWV0cml6ZShzcGVjLCB0ZXN0ZGlyKToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmciLCBbTm9uZSwgMS4zLCAiMi0zIl0pCisgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoYXJnKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAg
b3B0LCBwYXNzZWRfcmVzdWx0ID0gc3BlYworICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigi
LWsiLCBvcHQpCisgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsID0gcmVjLmxpc3RvdXRjb21lcygp
CisgICAgcGFzc2VkID0gW3gubm9kZWlkLnNwbGl0KCI6OiIpWy0xXSBmb3IgeCBpbiBwYXNzZWRd
CisgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IGxlbihwYXNzZWRfcmVzdWx0KQorICAgIGFzc2Vy
dCBsaXN0KHBhc3NlZCkgPT0gbGlzdChwYXNzZWRfcmVzdWx0KQorCisKK2RlZiB0ZXN0X3BhcmFt
ZXRyaXplZF9jb2xsZWN0ZWRfZnJvbV9jb21tYW5kX2xpbmUodGVzdGRpcik6CisgICAgIiIiUGFy
YW1ldHJpemVkIHRlc3Qgbm90IGNvbGxlY3RlZCBpZiB0ZXN0IG5hbWVkIHNwZWNpZmllZAorICAg
ICAgIGluIGNvbW1hbmQgbGluZSBpc3N1ZSM2NDkuCisgICAgIiIiCisgICAgcHlfZmlsZSA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImFyZyIsIFtOb25lLCAxLjMsICIyLTMiXSkKKyAgICAgICAg
ZGVmIHRlc3RfZnVuYyhhcmcpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICBmaWxl
X25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHB5X2ZpbGUuc3RycGF0aCkKKyAgICByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oZmlsZV9uYW1lICsgIjo6IiArICJ0ZXN0X2Z1bmMiKQorICAgIHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisKK2RlZiB0ZXN0X3BhcmFtZXRyaXplZF9jb2xsZWN0
X3dpdGhfd3JvbmdfYXJncyh0ZXN0ZGlyKToKKyAgICAiIiJUZXN0IGNvbGxlY3QgcGFyYW1ldHJp
emVkIGZ1bmMgd2l0aCB3cm9uZyBudW1iZXIgb2YgYXJncy4iIiIKKyAgICBweV9maWxlID0gdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmb28sIGJhcicsIFsoMSwgMiwgMyldKQorICAgICAgICBk
ZWYgdGVzdF9mdW5jKGZvbywgYmFyKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChweV9maWxlKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICdFICAgVmFsdWVFcnJvcjogSW4gInBhcmFtZXRyaXpl
IiB0aGUgbnVtYmVyIG9mIHZhbHVlcyAoKDEsIDIsIDMpKSAnCisgICAgICAgICdtdXN0IGJlIGVx
dWFsIHRvIHRoZSBudW1iZXIgb2YgbmFtZXMgKFtcJ2Zvb1wnLCBcJ2JhclwnXSknCisgICAgXSkK
KworCitkZWYgdGVzdF9wYXJhbWV0cml6ZWRfd2l0aF9rd2FyZ3ModGVzdGRpcik6CisgICAgIiIi
VGVzdCBjb2xsZWN0IHBhcmFtZXRyaXplZCBmdW5jIHdpdGggd3JvbmcgbnVtYmVyIG9mIGFyZ3Mu
IiIiCisgICAgcHlfZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMl0pCisgICAgICAg
IGRlZiBhKHJlcXVlc3QpOgorICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAg
ICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJnbmFtZXM9J2InLCBhcmd2YWx1ZXM9WzEs
IDJdKQorICAgICAgICBkZWYgdGVzdF9mdW5jKGEsIGIpOgorICAgICAgICAgICAgcGFzcworICAg
ICIiIikKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHB5X2ZpbGUpCisgICAgYXNz
ZXJ0KHJlc3VsdC5yZXQgPT0gMCkKKworCitjbGFzcyBUZXN0RnVuY3Rpb25hbChvYmplY3QpOgor
CisgICAgZGVmIHRlc3RfbWFya19wZXJfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8KKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxv
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIodGVzdF9oZWxsbywgJ2hlbGxvJykK
KyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBk
ZWYgdGVzdF9tYXJrX3Blcl9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0
ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuaGVsbG8KKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAga2V5d29y
ZHMgPSBpdGVtLmtleXdvcmRzCisgICAgICAgIGFzc2VydCAnaGVsbG8nIGluIGtleXdvcmRzCisK
KyAgICBkZWYgdGVzdF9tYXJrbGlzdF9wZXJfY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBweXRl
c3RtYXJrID0gW3B5dGVzdC5tYXJrLmhlbGxvLCBweXRlc3QubWFyay53b3JsZF0KKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
VGVzdENsYXNzLnRlc3RfZnVuYy5oZWxsbworICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVz
dENsYXNzLnRlc3RfZnVuYy53b3JsZAorICAgICAgICAiIiIpCisgICAgICAgIGtleXdvcmRzID0g
aXRlbS5rZXl3b3JkcworICAgICAgICBhc3NlcnQgJ2hlbGxvJyBpbiBrZXl3b3JkcworCisgICAg
ZGVmIHRlc3RfbWFya2xpc3RfcGVyX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIHB5dGVzdG1hcmsgPSBbcHl0ZXN0Lm1hcmsuaGVsbG8sIHB5dGVzdC5tYXJrLndvcmxk
XQorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFz
cy50ZXN0X2Z1bmMuaGVsbG8KKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFzcy50
ZXN0X2Z1bmMud29ybGQKKyAgICAgICAgIiIiKQorICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5
d29yZHMKKyAgICAgICAgYXNzZXJ0ICdoZWxsbycgaW4ga2V5d29yZHMKKyAgICAgICAgYXNzZXJ0
ICd3b3JsZCcgaW4ga2V5d29yZHMKKworICAgIGRlZiB0ZXN0X21hcmtfcGVyX2NsYXNzX2RlY29y
YXRvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5oZWxs
bworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFz
cy50ZXN0X2Z1bmMuaGVsbG8KKyAgICAgICAgIiIiKQorICAgICAgICBrZXl3b3JkcyA9IGl0ZW0u
a2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICdoZWxsbycgaW4ga2V5d29yZHMKKworICAgIGRlZiB0
ZXN0X21hcmtfcGVyX2NsYXNzX2RlY29yYXRvcl9wbHVzX2V4aXN0aW5nX2RlYyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5oZWxsbworICAgICAgICAgICAg
Y2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5
dGVzdC5tYXJrLndvcmxkCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFzcy50ZXN0X2Z1bmMuaGVsbG8KKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFzcy50ZXN0X2Z1bmMud29ybGQKKyAgICAgICAg
IiIiKQorICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICdo
ZWxsbycgaW4ga2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICd3b3JsZCcgaW4ga2V5d29yZHMKKwor
ICAgIGRlZiB0ZXN0X21lcmdpbmdfbWFya2VycyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5oZWxsbygicG9zMSIsIHg9MSwgeT0yKQor
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgIyBj
bGFzc2xldmVsIG92ZXJyaWRlcyBtb2R1bGUgbGV2ZWwKKyAgICAgICAgICAgICAgICBweXRlc3Rt
YXJrID0gcHl0ZXN0Lm1hcmsuaGVsbG8oeD0zKQorICAgICAgICAgICAgICAgIEBweXRlc3QubWFy
ay5oZWxsbygicG9zMCIsIHo9NCkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYp
OgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgaXRlbXMs
IHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCisgICAgICAgIGl0ZW0sID0gaXRlbXMK
KyAgICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCisgICAgICAgIG1hcmtlciA9IGtleXdv
cmRzWydoZWxsbyddCisgICAgICAgIGFzc2VydCBtYXJrZXIuYXJncyA9PSAoInBvczAiLCAicG9z
MSIpCisgICAgICAgIGFzc2VydCBtYXJrZXIua3dhcmdzID09IHsneCc6IDEsICd5JzogMiwgJ3on
OiA0fQorCisgICAgICAgICMgdGVzdCB0aGUgbmV3IF9faXRlcl9fIGludGVyZmFjZQorICAgICAg
ICB2YWx1ZXMgPSBsaXN0KG1hcmtlcikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDMK
KyAgICAgICAgYXNzZXJ0IHZhbHVlc1swXS5hcmdzID09ICgicG9zMCIsKQorICAgICAgICBhc3Nl
cnQgdmFsdWVzWzFdLmFyZ3MgPT0gKCkKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1syXS5hcmdzID09
ICgicG9zMSIsICkKKworICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249J3VuZml4ZWQnKQor
ICAgIGRlZiB0ZXN0X21lcmdpbmdfbWFya2Vyc19kZWVwKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICAjIGlzc3VlIDE5OSAtIHByb3BhZ2F0ZSBtYXJrZXJzIGludG8gbmVzdGVkIGNsYXNzZXMKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RBKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcHl0
ZXN0bWFyayA9IHB5dGVzdC5tYXJrLmEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9iKHNlbGYp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICAgICAgICAgICAgIGNsYXNz
IFRlc3RDKG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgICMgdGhpcyBvbmUgZGlkbnQgZ2V0
IG1hcmtlZAorICAgICAgICAgICAgICAgICAgICBkZWYgdGVzdF9kKHNlbGYpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAgICAgIiIiKQorICAgICAgICBpdGVtcywg
cmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMocCkKKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRl
bXM6CisgICAgICAgICAgICBwcmludChpdGVtLCBpdGVtLmtleXdvcmRzKQorICAgICAgICAgICAg
YXNzZXJ0ICdhJyBpbiBpdGVtLmtleXdvcmRzCisKKyAgICBkZWYgdGVzdF9tYXJrX2RlY29yYXRv
cl9zdWJjbGFzc19kb2VzX25vdF9wcm9wYWdhdGVfdG9fYmFzZShzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmEKKyAgICAgICAgICAgIGNsYXNzIEJhc2Uo
b2JqZWN0KTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuYgorICAgICAgICAgICAg
Y2xhc3MgVGVzdDEoQmFzZSk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOiBw
YXNzCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3QyKEJhc2UpOgorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2JhcihzZWxmKTogcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGl0ZW1zLCByZWMg
PSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwKQorICAgICAgICBzZWxmLmFzc2VydF9tYXJrZXJz
KGl0ZW1zLCB0ZXN0X2Zvbz0oJ2EnLCAnYicpLCB0ZXN0X2Jhcj0oJ2EnLCkpCisKKyAgICBAcHl0
ZXN0Lm1hcmsuaXNzdWU1NjgKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJtYXJrZXJz
IHNtZWFyIG9uIG1ldGhvZHMgb2YgYmFzZSBjbGFzc2VzIikKKyAgICBkZWYgdGVzdF9tYXJrX3No
b3VsZF9ub3RfcGFzc190b19zaWVibGluZ19jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgY2xhc3MgVGVzdEJhc2Uob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mb28oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLmIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RTdWIoVGVzdEJhc2UpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKworCisgICAgICAgICAgICBjbGFzcyBUZXN0T3RoZXJTdWIoVGVz
dEJhc2UpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAiIiIpCisgICAgICAgIGl0
ZW1zLCByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwKQorICAgICAgICBiYXNlX2l0ZW0s
IHN1Yl9pdGVtLCBzdWJfaXRlbV9vdGhlciA9IGl0ZW1zCisgICAgICAgIGFzc2VydCBub3QgaGFz
YXR0cihiYXNlX2l0ZW0ub2JqLCAnYicpCisgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzdWJf
aXRlbV9vdGhlci5vYmosICdiJykKKworICAgIGRlZiB0ZXN0X21hcmtfZGVjb3JhdG9yX2Jhc2Vj
bGFzc2VzX21lcmdlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLmEKKyAgICAgICAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KTogcGFzcworCisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsuYgorICAgICAgICAgICAgY2xhc3MgQmFzZTIoQmFzZSk6IHBhc3MK
KworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmMKKyAgICAgICAgICAgIGNsYXNzIFRlc3QxKEJh
c2UyKToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oc2VsZik6IHBhc3MKKworICAgICAg
ICAgICAgY2xhc3MgVGVzdDIoQmFzZTIpOgorICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5k
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYmFyKHNlbGYpOiBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgaXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCisgICAgICAg
IHNlbGYuYXNzZXJ0X21hcmtlcnMoaXRlbXMsIHRlc3RfZm9vPSgnYScsICdiJywgJ2MnKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Jhcj0oJ2EnLCAnYicsICdkJykpCisKKyAg
ICBkZWYgdGVzdF9tYXJrX3dpdGhfd3JvbmdfbWFya2VyKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIGNsYXNzIHB5dGVzdG1hcmsob2JqZWN0KToK
KyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMo
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHZhbHVl
cyA9IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCisgICAgICAgIGFzc2VydCBsZW4odmFs
dWVzKSA9PSAxCisgICAgICAgIGFzc2VydCAiVHlwZUVycm9yIiBpbiBzdHIodmFsdWVzWzBdLmxv
bmdyZXByKQorCisgICAgZGVmIHRlc3RfbWFya19keW5hbWljYWxseV9pbl9mdW5jYXJnKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAg
ZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5
dGVzdC5tYXJrLmhlbGxvKQorICAgICAgICAgICAgZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5
KHRlcm1pbmFscmVwb3J0ZXIpOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IHRlcm1pbmFscmVw
b3J0ZXIuc3RhdHNbJ3Bhc3NlZCddCisgICAgICAgICAgICAgICAgdGVybWluYWxyZXBvcnRlci5f
dHcubGluZSgia2V5d29yZDogJXMiICUgdmFsdWVzWzBdLmtleXdvcmRzKQorICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgImtleXdvcmQ6ICpoZWxsbyoiCisgICAgICAgIF0pCisKKyAg
ICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnNfdHdvX2Z1bmN0aW9ucyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5oZWxsbygicG9zMSIsIHo9NCkKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay5oZWxsbygicG9zMCIsIHo9MykKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAg
aXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCisgICAgICAgIGl0ZW0sID0g
aXRlbXMKKyAgICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCisgICAgICAgIG1hcmtlciA9
IGtleXdvcmRzWydoZWxsbyddCisgICAgICAgIHZhbHVlcyA9IGxpc3QobWFya2VyKQorICAgICAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgorICAgICAgICBhc3NlcnQgdmFsdWVzWzBdLmFyZ3Mg
PT0gKCJwb3MwIiwpCisgICAgICAgIGFzc2VydCB2YWx1ZXNbMV0uYXJncyA9PSAoInBvczEiLCkK
KworICAgIGRlZiB0ZXN0X25vX21hcmtlcl9tYXRjaF9vbl91bm1hcmtlZF9uYW1lcyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5zaG91bGRtYXRjaAorICAg
ICAgICAgICAgZGVmIHRlc3RfbWFya2VkKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKwor
ICAgICAgICAgICAgZGVmIHRlc3RfdW5tYXJrZWQoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLW0i
LCAidGVzdF91bm1hcmtlZCIsIHApCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0g
cmVwcmVjLmxpc3RvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBsZW4ocGFzc2VkKSArIGxlbihz
a2lwcGVkKSArIGxlbihmYWlsZWQpID09IDAKKyAgICAgICAgZGxpc3QgPSByZXByZWMuZ2V0Y2Fs
bHMoInB5dGVzdF9kZXNlbGVjdGVkIikKKyAgICAgICAgZGVzZWxlY3RlZF90ZXN0cyA9IGRsaXN0
WzBdLml0ZW1zCisgICAgICAgIGFzc2VydCBsZW4oZGVzZWxlY3RlZF90ZXN0cykgPT0gMgorCisg
ICAgZGVmIHRlc3Rfa2V5d29yZHNfYXRfbm9kZV9sZXZlbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgYXV0b3VzZT1UcnVlKQor
ICAgICAgICAgICAgZGVmIHNvbWUocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5r
ZXl3b3Jkc1siaGVsbG8iXSA9IDQyCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJ3b3JsZCIgbm90
IGluIHJlcXVlc3Qua2V5d29yZHMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmdW5jc2V0dXAocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJ3b3JsZCIgaW4gcmVxdWVzdC5rZXl3b3Jk
cworICAgICAgICAgICAgICAgIGFzc2VydCAiaGVsbG8iIGluICByZXF1ZXN0LmtleXdvcmRzCisK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay53b3JsZAorICAgICAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9rZXl3b3JkX2FkZGVkX2Zvcl9zZXNzaW9uKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlp
dGVtcyhzZXNzaW9uKToKKyAgICAgICAgICAgICAgICBzZXNzaW9uLmFkZF9tYXJrZXIoIm1hcmsx
IikKKyAgICAgICAgICAgICAgICBzZXNzaW9uLmFkZF9tYXJrZXIocHl0ZXN0Lm1hcmsubWFyazIp
CisgICAgICAgICAgICAgICAgc2Vzc2lvbi5hZGRfbWFya2VyKHB5dGVzdC5tYXJrLm1hcmszKQor
ICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOgorICAgICAg
ICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5hZGRfbWFya2VyKDEwKSkKKyAgICAgICAgIiIiKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9zb21l
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFzc2VydCAibWFyazEiIGluIHJlcXVlc3Qua2V5
d29yZHMKKyAgICAgICAgICAgICAgICBhc3NlcnQgIm1hcmsyIiBpbiByZXF1ZXN0LmtleXdvcmRz
CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJtYXJrMyIgaW4gcmVxdWVzdC5rZXl3b3JkcworICAg
ICAgICAgICAgICAgIGFzc2VydCAxMCBub3QgaW4gcmVxdWVzdC5rZXl3b3JkcworICAgICAgICAg
ICAgICAgIG1hcmtlciA9IHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCJtYXJrMSIpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG1hcmtlci5uYW1lID09ICJtYXJrMSIKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbWFya2VyLmFyZ3MgPT0gKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgbWFya2VyLmt3
YXJncyA9PSB7fQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigiLW0iLCAibWFyazEiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MSkKKworICAgIGRlZiBhc3NlcnRfbWFya2VycyhzZWxmLCBpdGVtcywgKipleHBlY3RlZCk6Cisg
ICAgICAgICIiImFzc2VydCB0aGF0IGdpdmVuIGl0ZW1zIGhhdmUgZXhwZWN0ZWQgbWFya2VyIG5h
bWVzIGFwcGxpZWQgdG8gdGhlbS4KKyAgICAgICAgZXhwZWN0ZWQgc2hvdWxkIGJlIGEgZGljdCBv
ZiAoaXRlbSBuYW1lIC0+IHNlcSBvZiBleHBlY3RlZCBtYXJrZXIgbmFtZXMpCisKKyAgICAgICAg
Li4gbm90ZTo6IHRoaXMgY291bGQgYmUgbW92ZWQgdG8gYGB0ZXN0ZGlyYGAgaWYgcHJvdmVuIHRv
IGJlIHVzZWZ1bAorICAgICAgICB0byBvdGhlciBtb2R1bGVzLgorICAgICAgICAiIiIKKyAgICAg
ICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtJbmZvCisgICAgICAgIGl0ZW1zID0gZGlj
dCgoeC5uYW1lLCB4KSBmb3IgeCBpbiBpdGVtcykKKyAgICAgICAgZm9yIG5hbWUsIGV4cGVjdGVk
X21hcmtlcnMgaW4gZXhwZWN0ZWQuaXRlbXMoKToKKyAgICAgICAgICAgIG1hcmtlcnMgPSBpdGVt
c1tuYW1lXS5rZXl3b3Jkcy5fbWFya2VycworICAgICAgICAgICAgbWFya2VyX25hbWVzID0gc2V0
KFtuYW1lIGZvciAobmFtZSwgdikgaW4gbWFya2Vycy5pdGVtcygpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodiwgTWFya0luZm8pXSkKKyAgICAgICAgICAg
IGFzc2VydCBtYXJrZXJfbmFtZXMgPT0gc2V0KGV4cGVjdGVkX21hcmtlcnMpCisKKyAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwocmVhc29uPSdjYWxsc3BlYzIuc2V0bXVsdGkgbWlzdXNlcyBrZXl3b3Jk
cycpCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlMTU0MAorICAgIGRlZiB0ZXN0X21hcmtfZnJvbV9w
YXJhbWV0ZXJzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHB5dGVzdG1hcmsgPSBw
eXRlc3QubWFyay5za2lwaWYoVHJ1ZSwgcmVhc29uPSdza2lwIGFsbCcpCisKKyAgICAgICAgICAg
ICMgc2tpcGlmcyBpbnNpZGUgZml4dHVyZSBwYXJhbXMKKyAgICAgICAgICAgIHBhcmFtcyA9IFtw
eXRlc3QubWFyay5za2lwaWYoRmFsc2UsIHJlYXNvbj0nZG9udCBza2lwJykoJ3BhcmFtZXRlcicp
XQorCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9cGFyYW1zKQorICAgICAg
ICAgICAgZGVmIHBhcmFtZXRlcihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5wYXJhbQorCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEocGFyYW1ldGVyKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9
MSkKKworCitjbGFzcyBUZXN0S2V5d29yZFNlbGVjdGlvbihvYmplY3QpOgorCisgICAgZGVmIHRl
c3Rfc2VsZWN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgZmlsZV90ZXN0ID0gdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZF9vbmUoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCA0MiA9PSA0MworICAgICAgICAiIiIpCisKKyAgICAgICAgZGVmIGNoZWNr
KGtleXdvcmQsIG5hbWUpOgorICAgICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCItcyIsICItayIsIGtleXdvcmQsIGZpbGVfdGVzdCkKKyAgICAgICAgICAgIHBhc3NlZCwgc2tp
cHBlZCwgZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCisgICAgICAgICAgICBhc3NlcnQg
bGVuKGZhaWxlZCkgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IGZhaWxlZFswXS5ub2RlaWQuc3Bs
aXQoIjo6IilbLTFdID09IG5hbWUKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocmVwcmVjLmdldGNh
bGxzKCdweXRlc3RfZGVzZWxlY3RlZCcpKSA9PSAxCisKKyAgICAgICAgZm9yIGtleXdvcmQgaW4g
Wyd0ZXN0X29uZScsICdlc3Rfb24nXToKKyAgICAgICAgICAgIGNoZWNrKGtleXdvcmQsICd0ZXN0
X29uZScpCisgICAgICAgIGNoZWNrKCdUZXN0Q2xhc3MgYW5kIHRlc3QnLCAndGVzdF9tZXRob2Rf
b25lJykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgia2V5d29yZCIsIFsKKyAgICAg
ICAgJ3h4eCcsICd4eHggYW5kIHRlc3RfMicsICdUZXN0Q2xhc3MnLCAneHh4IGFuZCBub3QgdGVz
dF8xJywKKyAgICAgICAgJ1Rlc3RDbGFzcyBhbmQgdGVzdF8yJywgJ3h4eCBhbmQgVGVzdENsYXNz
IGFuZCB0ZXN0XzInXSkKKyAgICBkZWYgdGVzdF9zZWxlY3RfZXh0cmFfa2V5d29yZHMoc2VsZiwg
dGVzdGRpciwga2V5d29yZCk6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9z
ZWxlY3Q9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb25mdGVzdD0iIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1
ZSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKG5hbWUpOgorICAg
ICAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgICAgIGlmIG5hbWUgPT0g
IlRlc3RDbGFzcyI6CisgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBvdXRjb21lLmdldF9yZXN1
bHQoKQorICAgICAgICAgICAgICAgICAgICBpdGVtLmV4dHJhX2tleXdvcmRfbWF0Y2hlcy5hZGQo
Inh4eCIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KHAuZGlycGF0aCgpLCAnLXMnLCAnLWsnLCBrZXl3b3JkKQorICAgICAgICBwcmludCgia2V5d29y
ZCIsIHJlcHIoa2V5d29yZCkpCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVw
cmVjLmxpc3RvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBsZW4ocGFzc2VkKSA9PSAxCisgICAg
ICAgIGFzc2VydCBwYXNzZWRbMF0ubm9kZWlkLmVuZHN3aXRoKCJ0ZXN0XzIiKQorICAgICAgICBk
bGlzdCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X2Rlc2VsZWN0ZWQiKQorICAgICAgICBhc3Nl
cnQgbGVuKGRsaXN0KSA9PSAxCisgICAgICAgIGFzc2VydCBkbGlzdFswXS5pdGVtc1swXS5uYW1l
ID09ICd0ZXN0XzEnCisKKyAgICBkZWYgdGVzdF9zZWxlY3Rfc3RhcnRvbihzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGhyZWVwYXNzID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfdGhyZWVwYXNz
PSIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKCk6IGFzc2VydCAxCisgICAgICAgICAgICBk
ZWYgdGVzdF90d28oKTogYXNzZXJ0IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X3RocmVlKCk6IGFz
c2VydCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCItayIsICJ0ZXN0X3R3bzoiLCB0aHJlZXBhc3MpCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwg
ZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBsZW4ocGFzc2Vk
KSA9PSAyCisgICAgICAgIGFzc2VydCBub3QgZmFpbGVkCisgICAgICAgIGRsaXN0ID0gcmVwcmVj
LmdldGNhbGxzKCJweXRlc3RfZGVzZWxlY3RlZCIpCisgICAgICAgIGFzc2VydCBsZW4oZGxpc3Qp
ID09IDEKKyAgICAgICAgaXRlbSA9IGRsaXN0WzBdLml0ZW1zWzBdCisgICAgICAgIGFzc2VydCBp
dGVtLm5hbWUgPT0gInRlc3Rfb25lIgorCisgICAgZGVmIHRlc3Rfa2V5d29yZF9leHRyYShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICB0
ZXN0X29uZS5teWtleXdvcmQgPSBUcnVlCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCItayIsICJteWtleXdvcmQiLCBwKQorICAgICAgICBwYXNzZWQs
IHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0
IGZhaWxlZCA9PSAxCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICBkZWYgdGVzdF9rZXl3
b3JkX2V4dHJhX2Rhc2goc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOgorICAgICAgICAgICAgICAgYXNz
ZXJ0IDAKKyAgICAgICAgICAgdGVzdF9vbmUubXlrZXl3b3JkID0gVHJ1ZQorICAgICAgICAiIiIp
CisgICAgICAgICMgd2l0aCBhcmdwYXJzZSB0aGUgYXJndW1lbnQgdG8gYW4gb3B0aW9uIGNhbm5v
dAorICAgICAgICAjIHN0YXJ0IHdpdGggJy0nCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLWsiLCAiLW15a2V5d29yZCIsIHApCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwg
ZmFpbGVkID0gcmVwcmVjLmNvdW50b3V0Y29tZXMoKQorICAgICAgICBhc3NlcnQgcGFzc2VkICsg
c2tpcHBlZCArIGZhaWxlZCA9PSAwCisKKyAgICBkZWYgdGVzdF9ub19tYWdpY192YWx1ZXMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgICIiIk1ha2Ugc3VyZSB0aGUgdGVzdHMgZG8gbm90IG1hdGNo
IG9uIG1hZ2ljIHZhbHVlcywKKyAgICAgICAgbm8gZG91YmxlIHVuZGVyc2NvcmVkIHZhbHVlcywg
bGlrZSAnX19kaWN0X18nLAorICAgICAgICBhbmQgbm8gaW5zdGFuY2UgdmFsdWVzLCBsaWtlICco
KScuCisgICAgICAgICIiIgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgZGVmIHRlc3Rfb25lKCk6IGFzc2VydCAxCisgICAgICAgICIiIikKKworICAgICAg
ICBkZWYgYXNzZXJ0X3Rlc3RfaXNfbm90X3NlbGVjdGVkKGtleXdvcmQpOgorICAgICAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItayIsIGtleXdvcmQsIHApCisgICAgICAgICAg
ICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAgICAg
ICAgICAgIGRsaXN0ID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfZGVzZWxlY3RlZCIpCisgICAg
ICAgICAgICBhc3NlcnQgcGFzc2VkICsgc2tpcHBlZCArIGZhaWxlZCA9PSAwCisgICAgICAgICAg
ICBkZXNlbGVjdGVkX3Rlc3RzID0gZGxpc3RbMF0uaXRlbXMKKyAgICAgICAgICAgIGFzc2VydCBs
ZW4oZGVzZWxlY3RlZF90ZXN0cykgPT0gMQorCisgICAgICAgIGFzc2VydF90ZXN0X2lzX25vdF9z
ZWxlY3RlZCgiX18iKQorICAgICAgICBhc3NlcnRfdGVzdF9pc19ub3Rfc2VsZWN0ZWQoIigpIikK
KworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZ3ZhbCwgZXhwZWN0ZWQnLCBbCisgICAg
KHB5dGVzdC5tYXJrLnNraXAoKSgoMSwgMikpLAorICAgICBQYXJhbWV0ZXJTZXQodmFsdWVzPSgx
LCAyKSwgbWFya3M9W3B5dGVzdC5tYXJrLnNraXBdLCBpZD1Ob25lKSksCisgICAgKHB5dGVzdC5t
YXJrLnhmYWlsKHB5dGVzdC5tYXJrLnNraXAoKSgoMSwgMikpKSwKKyAgICAgUGFyYW1ldGVyU2V0
KHZhbHVlcz0oMSwgMiksCisgICAgICAgICAgICAgICAgICBtYXJrcz1bcHl0ZXN0Lm1hcmsueGZh
aWwsIHB5dGVzdC5tYXJrLnNraXBdLCBpZD1Ob25lKSksCisKK10pCitAcHl0ZXN0Lm1hcmsuZmls
dGVyd2FybmluZ3MoJ2lnbm9yZScpCitkZWYgdGVzdF9wYXJhbWV0ZXJzZXRfZXh0cmFjdGZyb20o
YXJndmFsLCBleHBlY3RlZCk6CisgICAgZXh0cmFjdGVkID0gUGFyYW1ldGVyU2V0LmV4dHJhY3Rf
ZnJvbShhcmd2YWwpCisgICAgYXNzZXJ0IGV4dHJhY3RlZCA9PSBleHBlY3RlZAorCisKK2RlZiB0
ZXN0X2xlZ2FjeV90cmFuc2ZlcigpOgorCisgICAgY2xhc3MgRmFrZU1vZHVsZShvYmplY3QpOgor
ICAgICAgICBweXRlc3RtYXJrID0gW10KKworICAgIGNsYXNzIEZha2VDbGFzcyhvYmplY3QpOgor
ICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsubm9mdW4KKworICAgIEBweXRlc3QubWFy
ay5mdW4KKyAgICBkZWYgZmFrZV9tZXRob2Qoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIHRy
YW5zZmVyX21hcmtlcnMoZmFrZV9tZXRob2QsIEZha2VDbGFzcywgRmFrZU1vZHVsZSkKKworICAg
ICMgbGVnYWN5IG1hcmtzIHRyYW5zZmVyIHNtZWFyZWQKKyAgICBhc3NlcnQgZmFrZV9tZXRob2Qu
bm9mdW4KKyAgICBhc3NlcnQgZmFrZV9tZXRob2QuZnVuCisgICAgIyBwcmlzdGluZSBtYXJrcyBk
b250IHRyYW5zZmVyCisgICAgYXNzZXJ0IGZha2VfbWV0aG9kLnB5dGVzdG1hcmsgPT0gW3B5dGVz
dC5tYXJrLmZ1bi5tYXJrXQorCisKK2NsYXNzIFRlc3RNYXJrRGVjb3JhdG9yKG9iamVjdCk6CisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2xocywgcmhzLCBleHBlY3RlZCcsIFsKKyAg
ICAgICAgKHB5dGVzdC5tYXJrLmZvbygpLCBweXRlc3QubWFyay5mb28oKSwgVHJ1ZSksCisgICAg
ICAgIChweXRlc3QubWFyay5mb28oKSwgcHl0ZXN0Lm1hcmsuYmFyKCksIEZhbHNlKSwKKyAgICAg
ICAgKHB5dGVzdC5tYXJrLmZvbygpLCAnYmFyJywgRmFsc2UpLAorICAgICAgICAoJ2ZvbycsIHB5
dGVzdC5tYXJrLmJhcigpLCBGYWxzZSkKKyAgICBdKQorICAgIGRlZiB0ZXN0X19lcV9fKHNlbGYs
IGxocywgcmhzLCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCAobGhzID09IHJocykgPT0gZXhw
ZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb2RpbXBvcnQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9kaW1wb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYjg2
YmY3YWYxMDY2NDgzZWY3MjNhYzNkMjgzZjUzNzQxY2E2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9kaW1wb3J0LnB5CkBAIC0wLDAgKzEsMjUgQEAKK2lt
cG9ydCBweQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBweXRlc3QKK2lt
cG9ydCBfcHl0ZXN0CisKK01PRFNFVCA9IFsKKyAgICB4IGZvciB4IGluIHB5LnBhdGgubG9jYWwo
X3B5dGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpLnZpc2l0KCcqLnB5JykKKyAgICBpZiB4LnB1cmVi
YXNlbmFtZSAhPSAnX19pbml0X18nCitdCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdt
b2RmaWxlJywgTU9EU0VULCBpZHM9bGFtYmRhIHg6IHgucHVyZWJhc2VuYW1lKQorZGVmIHRlc3Rf
ZmlsZWltcG9ydChtb2RmaWxlKToKKyAgICAjIHRoaXMgdGVzdCBlbnN1cmVzIGFsbCBpbnRlcm5h
bCBwYWNrYWdlcyBjYW4gaW1wb3J0CisgICAgIyB3aXRob3V0IG5lZWRpbmcgdGhlIHB5dGVzdCBu
YW1lc3BhY2UgYmVpbmcgc2V0CisgICAgIyB0aGlzIGlzIGNyaXRpY2FsIGZvciB0aGUgaW5pdGlh
bGl6YXRpb24gb2YgeGRpc3QKKworICAgIHJlcyA9IHN1YnByb2Nlc3MuY2FsbChbCisgICAgICAg
IHN5cy5leGVjdXRhYmxlLAorICAgICAgICAnLWMnLCAnaW1wb3J0IHN5cywgcHk7IHB5LnBhdGgu
bG9jYWwoc3lzLmFyZ3ZbMV0pLnB5aW1wb3J0KCknLAorICAgICAgICBtb2RmaWxlLnN0cnBhdGgs
CisgICAgXSkKKyAgICBpZiByZXM6CisgICAgICAgIHB5dGVzdC5mYWlsKCJjb21tYW5kIHJlc3Vs
dCAlcyIgJSByZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9ua2V5
cGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9ua2V5cGF0Y2gucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDQyNzkwOGFiM2JjZmNlMmZlNTk5ZDdlODljMGIxODA1NzQxNzZhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb25rZXlwYXRjaC5weQpAQCAtMCww
ICsxLDMyOSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGV4dHdy
YXAKKworaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lm1vbmtleXBhdGNoIGltcG9ydCBNb25r
ZXlQYXRjaAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG1wKCk6CisgICAgY3dkID0gb3MuZ2V0
Y3dkKCkKKyAgICBzeXNfcGF0aCA9IGxpc3Qoc3lzLnBhdGgpCisgICAgeWllbGQgTW9ua2V5UGF0
Y2goKQorICAgIHN5cy5wYXRoWzpdID0gc3lzX3BhdGgKKyAgICBvcy5jaGRpcihjd2QpCisKKwor
ZGVmIHRlc3Rfc2V0YXR0cigpOgorICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgeCA9IDEK
KworICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIHB5dGVzdC5yYWlzZXMoQXR0
cmlidXRlRXJyb3IsICJtb25rZXlwYXRjaC5zZXRhdHRyKEEsICdub3RleGlzdHMnLCAyKSIpCisg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihBLCAneScsIDIsIHJhaXNpbmc9RmFsc2UpCisgICAgYXNz
ZXJ0IEEueSA9PSAyCisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0IG5vdCBoYXNh
dHRyKEEsICd5JykKKworICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIoQSwgJ3gnLCAyKQorICAgIGFzc2VydCBBLnggPT0gMgorICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIoQSwgJ3gnLCAzKQorICAgIGFzc2VydCBBLnggPT0gMworICAgIG1vbmtl
eXBhdGNoLnVuZG8oKQorICAgIGFzc2VydCBBLnggPT0gMQorCisgICAgQS54ID0gNQorICAgIG1v
bmtleXBhdGNoLnVuZG8oKSAgIyBkb3VibGUtdW5kbyBtYWtlcyBubyBtb2RpZmljYXRpb24KKyAg
ICBhc3NlcnQgQS54ID09IDUKKworCitjbGFzcyBUZXN0U2V0YXR0cldpdGhJbXBvcnRQYXRoKG9i
amVjdCk6CisgICAgZGVmIHRlc3Rfc3RyaW5nX2V4cHJlc3Npb24oc2VsZiwgbW9ua2V5cGF0Y2gp
OgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCJvcy5wYXRoLmFic3BhdGgiLCBsYW1iZGEg
eDogImhlbGxvMiIpCisgICAgICAgIGFzc2VydCBvcy5wYXRoLmFic3BhdGgoIjEyMyIpID09ICJo
ZWxsbzIiCisKKyAgICBkZWYgdGVzdF9zdHJpbmdfZXhwcmVzc2lvbl9jbGFzcyhzZWxmLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoIl9weXRlc3QuY29uZmlnLkNv
bmZpZyIsIDQyKQorICAgICAgICBpbXBvcnQgX3B5dGVzdAorICAgICAgICBhc3NlcnQgX3B5dGVz
dC5jb25maWcuQ29uZmlnID09IDQyCisKKyAgICBkZWYgdGVzdF91bmljb2RlX3N0cmluZyhzZWxm
LCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoIl9weXRlc3QuY29u
ZmlnLkNvbmZpZyIsIDQyKQorICAgICAgICBpbXBvcnQgX3B5dGVzdAorICAgICAgICBhc3NlcnQg
X3B5dGVzdC5jb25maWcuQ29uZmlnID09IDQyCisgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIo
Il9weXRlc3QuY29uZmlnLkNvbmZpZyIpCisKKyAgICBkZWYgdGVzdF93cm9uZ190YXJnZXQoc2Vs
ZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwgbGFtYmRh
OiBtb25rZXlwYXRjaC5zZXRhdHRyKE5vbmUsIE5vbmUpKQorCisgICAgZGVmIHRlc3RfdW5rbm93
bl9pbXBvcnQoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBweXRlc3QucmFpc2VzKEltcG9y
dEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbW9ua2V5cGF0Y2guc2V0YXR0
cigidW5rbjEyMy5jbGFzc3giLCBOb25lKSkKKworICAgIGRlZiB0ZXN0X3Vua25vd25fYXR0cihz
ZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3Is
CisgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBtb25rZXlwYXRjaC5zZXRhdHRyKCJvcy5w
YXRoLnF3ZXF3ZSIsIE5vbmUpKQorCisgICAgZGVmIHRlc3RfdW5rbm93bl9hdHRyX25vbl9yYWlz
aW5nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzc0NgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCdv
cy5wYXRoLnF3ZXF3ZScsIDQyLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBhc3NlcnQgb3MucGF0
aC5xd2Vxd2UgPT0gNDIKKworICAgIGRlZiB0ZXN0X2RlbGF0dHIoc2VsZiwgbW9ua2V5cGF0Y2gp
OgorICAgICAgICBtb25rZXlwYXRjaC5kZWxhdHRyKCJvcy5wYXRoLmFic3BhdGgiKQorICAgICAg
ICBhc3NlcnQgbm90IGhhc2F0dHIob3MucGF0aCwgImFic3BhdGgiKQorICAgICAgICBtb25rZXlw
YXRjaC51bmRvKCkKKyAgICAgICAgYXNzZXJ0IG9zLnBhdGguYWJzcGF0aAorCisKK2RlZiB0ZXN0
X2RlbGF0dHIoKToKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIHggPSAxCisKKyAgICBt
b25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5kZWxhdHRyKEEsICd4
JykKKyAgICBhc3NlcnQgbm90IGhhc2F0dHIoQSwgJ3gnKQorICAgIG1vbmtleXBhdGNoLnVuZG8o
KQorICAgIGFzc2VydCBBLnggPT0gMQorCisgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgp
CisgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihBLCAneCcpCisgICAgcHl0ZXN0LnJhaXNlcyhBdHRy
aWJ1dGVFcnJvciwgIm1vbmtleXBhdGNoLmRlbGF0dHIoQSwgJ3knKSIpCisgICAgbW9ua2V5cGF0
Y2guZGVsYXR0cihBLCAneScsIHJhaXNpbmc9RmFsc2UpCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihBLCAneCcsIDUsIHJhaXNpbmc9RmFsc2UpCisgICAgYXNzZXJ0IEEueCA9PSA1CisgICAgbW9u
a2V5cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0IEEueCA9PSAxCisKKworZGVmIHRlc3Rfc2V0aXRl
bSgpOgorICAgIGQgPSB7J3gnOiAxfQorICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQor
ICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oZCwgJ3gnLCAyKQorICAgIG1vbmtleXBhdGNoLnNldGl0
ZW0oZCwgJ3knLCAxNzAwKQorICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oZCwgJ3knLCAxNzAwKQor
ICAgIGFzc2VydCBkWyd4J10gPT0gMgorICAgIGFzc2VydCBkWyd5J10gPT0gMTcwMAorICAgIG1v
bmtleXBhdGNoLnNldGl0ZW0oZCwgJ3gnLCAzKQorICAgIGFzc2VydCBkWyd4J10gPT0gMworICAg
IG1vbmtleXBhdGNoLnVuZG8oKQorICAgIGFzc2VydCBkWyd4J10gPT0gMQorICAgIGFzc2VydCAn
eScgbm90IGluIGQKKyAgICBkWyd4J10gPSA1CisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAg
YXNzZXJ0IGRbJ3gnXSA9PSA1CisKKworZGVmIHRlc3Rfc2V0aXRlbV9kZWxldGVkX21lYW53aGls
ZSgpOgorICAgIGQgPSB7fQorICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIG1v
bmtleXBhdGNoLnNldGl0ZW0oZCwgJ3gnLCAyKQorICAgIGRlbCBkWyd4J10KKyAgICBtb25rZXlw
YXRjaC51bmRvKCkKKyAgICBhc3NlcnQgbm90IGQKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImJlZm9yZSIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9zZXRlbnZfZGVsZXRlZF9tZWFu
d2hpbGUoYmVmb3JlKToKKyAgICBrZXkgPSAicXdwZW9pcDEyMyIKKyAgICBpZiBiZWZvcmU6Cisg
ICAgICAgIG9zLmVudmlyb25ba2V5XSA9ICJ3b3JsZCIKKyAgICBtb25rZXlwYXRjaCA9IE1vbmtl
eVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoa2V5LCAnaGVsbG8nKQorICAgIGRlbCBv
cy5lbnZpcm9uW2tleV0KKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBpZiBiZWZvcmU6Cisg
ICAgICAgIGFzc2VydCBvcy5lbnZpcm9uW2tleV0gPT0gIndvcmxkIgorICAgICAgICBkZWwgb3Mu
ZW52aXJvbltrZXldCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IGtleSBub3QgaW4gb3MuZW52
aXJvbgorCisKK2RlZiB0ZXN0X2RlbGl0ZW0oKToKKyAgICBkID0geyd4JzogMX0KKyAgICBtb25r
ZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5kZWxpdGVtKGQsICd4JykK
KyAgICBhc3NlcnQgJ3gnIG5vdCBpbiBkCisgICAgbW9ua2V5cGF0Y2guZGVsaXRlbShkLCAneScs
IHJhaXNpbmc9RmFsc2UpCisgICAgcHl0ZXN0LnJhaXNlcyhLZXlFcnJvciwgIm1vbmtleXBhdGNo
LmRlbGl0ZW0oZCwgJ3knKSIpCisgICAgYXNzZXJ0IG5vdCBkCisgICAgbW9ua2V5cGF0Y2guc2V0
aXRlbShkLCAneScsIDE3MDApCisgICAgYXNzZXJ0IGRbJ3knXSA9PSAxNzAwCisgICAgZFsnaGVs
bG8nXSA9ICd3b3JsZCcKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKGQsICd4JywgMTUwMCkKKyAg
ICBhc3NlcnQgZFsneCddID09IDE1MDAKKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3Nl
cnQgZCA9PSB7J2hlbGxvJzogJ3dvcmxkJywgJ3gnOiAxfQorCisKK2RlZiB0ZXN0X3NldGVudigp
OgorICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIG1vbmtleXBhdGNoLnNldGVu
dignWFlaMTIzJywgMikKKyAgICBpbXBvcnQgb3MKKyAgICBhc3NlcnQgb3MuZW52aXJvblsnWFla
MTIzJ10gPT0gIjIiCisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0ICdYWVoxMjMn
IG5vdCBpbiBvcy5lbnZpcm9uCisKKworZGVmIHRlc3RfZGVsZW52KCk6CisgICAgbmFtZSA9ICd4
eXoxMjM0JworICAgIGFzc2VydCBuYW1lIG5vdCBpbiBvcy5lbnZpcm9uCisgICAgbW9ua2V5cGF0
Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgcHl0ZXN0LnJhaXNlcyhLZXlFcnJvciwgIm1vbmtleXBh
dGNoLmRlbGVudiglciwgcmFpc2luZz1UcnVlKSIgJSBuYW1lKQorICAgIG1vbmtleXBhdGNoLmRl
bGVudihuYW1lLCByYWlzaW5nPUZhbHNlKQorICAgIG1vbmtleXBhdGNoLnVuZG8oKQorICAgIG9z
LmVudmlyb25bbmFtZV0gPSAiMSIKKyAgICB0cnk6CisgICAgICAgIG1vbmtleXBhdGNoID0gTW9u
a2V5UGF0Y2goKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSkKKyAgICAgICAgYXNz
ZXJ0IG5hbWUgbm90IGluIG9zLmVudmlyb24KKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KG5h
bWUsICIzIikKKyAgICAgICAgYXNzZXJ0IG9zLmVudmlyb25bbmFtZV0gPT0gIjMiCisgICAgICAg
IG1vbmtleXBhdGNoLnVuZG8oKQorICAgICAgICBhc3NlcnQgb3MuZW52aXJvbltuYW1lXSA9PSAi
MSIKKyAgICBmaW5hbGx5OgorICAgICAgICBpZiBuYW1lIGluIG9zLmVudmlyb246CisgICAgICAg
ICAgICBkZWwgb3MuZW52aXJvbltuYW1lXQorCisKK2RlZiB0ZXN0X3NldGVudl9wcmVwZW5kKCk6
CisgICAgaW1wb3J0IG9zCisgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgbW9u
a2V5cGF0Y2guc2V0ZW52KCdYWVoxMjMnLCAyLCBwcmVwZW5kPSItIikKKyAgICBhc3NlcnQgb3Mu
ZW52aXJvblsnWFlaMTIzJ10gPT0gIjIiCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdYWVoxMjMn
LCAzLCBwcmVwZW5kPSItIikKKyAgICBhc3NlcnQgb3MuZW52aXJvblsnWFlaMTIzJ10gPT0gIjMt
MiIKKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3NlcnQgJ1hZWjEyMycgbm90IGluIG9z
LmVudmlyb24KKworCitkZWYgdGVzdF9tb25rZXlwYXRjaF9wbHVnaW4odGVzdGRpcik6CisgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBkZWYgdGVzdF9t
ZXRob2QobW9ua2V5cGF0Y2gpOgorICAgICAgICAgICAgYXNzZXJ0IG1vbmtleXBhdGNoLl9fY2xh
c3NfXy5fX25hbWVfXyA9PSAiTW9ua2V5UGF0Y2giCisgICAgIiIiKQorICAgIHJlcyA9IHJlcHJl
Yy5jb3VudG91dGNvbWVzKCkKKyAgICBhc3NlcnQgdHVwbGUocmVzKSA9PSAoMSwgMCwgMCksIHJl
cworCisKK2RlZiB0ZXN0X3N5c3BhdGhfcHJlcGVuZChtcCk6CisgICAgb2xkID0gbGlzdChzeXMu
cGF0aCkKKyAgICBtcC5zeXNwYXRoX3ByZXBlbmQoJ3dvcmxkJykKKyAgICBtcC5zeXNwYXRoX3By
ZXBlbmQoJ2hlbGxvJykKKyAgICBhc3NlcnQgc3lzLnBhdGhbMF0gPT0gImhlbGxvIgorICAgIGFz
c2VydCBzeXMucGF0aFsxXSA9PSAid29ybGQiCisgICAgbXAudW5kbygpCisgICAgYXNzZXJ0IHN5
cy5wYXRoID09IG9sZAorICAgIG1wLnVuZG8oKQorICAgIGFzc2VydCBzeXMucGF0aCA9PSBvbGQK
KworCitkZWYgdGVzdF9zeXNwYXRoX3ByZXBlbmRfZG91YmxlX3VuZG8obXApOgorICAgIG1wLnN5
c3BhdGhfcHJlcGVuZCgnaGVsbG8gd29ybGQnKQorICAgIG1wLnVuZG8oKQorICAgIHN5cy5wYXRo
LmFwcGVuZCgnbW9yZSBoZWxsbyB3b3JsZCcpCisgICAgbXAudW5kbygpCisgICAgYXNzZXJ0IHN5
cy5wYXRoWy0xXSA9PSAnbW9yZSBoZWxsbyB3b3JsZCcKKworCitkZWYgdGVzdF9jaGRpcl93aXRo
X3BhdGhfbG9jYWwobXAsIHRtcGRpcik6CisgICAgbXAuY2hkaXIodG1wZGlyKQorICAgIGFzc2Vy
dCBvcy5nZXRjd2QoKSA9PSB0bXBkaXIuc3RycGF0aAorCisKK2RlZiB0ZXN0X2NoZGlyX3dpdGhf
c3RyKG1wLCB0bXBkaXIpOgorICAgIG1wLmNoZGlyKHRtcGRpci5zdHJwYXRoKQorICAgIGFzc2Vy
dCBvcy5nZXRjd2QoKSA9PSB0bXBkaXIuc3RycGF0aAorCisKK2RlZiB0ZXN0X2NoZGlyX3VuZG8o
bXAsIHRtcGRpcik6CisgICAgY3dkID0gb3MuZ2V0Y3dkKCkKKyAgICBtcC5jaGRpcih0bXBkaXIp
CisgICAgbXAudW5kbygpCisgICAgYXNzZXJ0IG9zLmdldGN3ZCgpID09IGN3ZAorCisKK2RlZiB0
ZXN0X2NoZGlyX2RvdWJsZV91bmRvKG1wLCB0bXBkaXIpOgorICAgIG1wLmNoZGlyKHRtcGRpci5z
dHJwYXRoKQorICAgIG1wLnVuZG8oKQorICAgIHRtcGRpci5jaGRpcigpCisgICAgbXAudW5kbygp
CisgICAgYXNzZXJ0IG9zLmdldGN3ZCgpID09IHRtcGRpci5zdHJwYXRoCisKKworZGVmIHRlc3Rf
aXNzdWUxODVfdGltZV9icmVha3ModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICBpbXBvcnQgdGltZQorICAgICAgICBkZWYgdGVzdF9tKG1vbmtleXBhdGNoKToK
KyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uCisg
ICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRpbWUsICJ0aW1lIiwgZikKKyAgICAiIiIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygiIiIKKyAgICAgICAgKjEgcGFzc2VkKgorICAgICIiIikKKworCitkZWYgdGVz
dF9pbXBvcnRlcnJvcih0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5ta3B5ZGlyKCJwYWNrYWdl
IikKKyAgICBwLmpvaW4oImEucHkiKS53cml0ZSh0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAg
ICBpbXBvcnQgZG9lc25vdGV4aXN0CisKKyAgICAgICAgeCA9IDEKKyAgICAiIiIpKQorICAgIHRl
c3RkaXIudG1wZGlyLmpvaW4oInRlc3RfaW1wb3J0ZXJyb3IucHkiKS53cml0ZSh0ZXh0d3JhcC5k
ZWRlbnQoIiIiXAorICAgICAgICBkZWYgdGVzdF9pbXBvcnRlcnJvcihtb25rZXlwYXRjaCk6Cisg
ICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCdwYWNrYWdlLmEueCcsIDIpCisgICAgIiIi
KSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAqaW1wb3J0IGVycm9yIGluIHBhY2thZ2UuYTogTm8g
bW9kdWxlIG5hbWVkIHswfWRvZXNub3RleGlzdHswfSoKKyAgICAiIiIuZm9ybWF0KCInIiBpZiBz
eXMudmVyc2lvbl9pbmZvID4gKDMsIDApIGVsc2UgIiIpKQorCisKK2NsYXNzIFNhbXBsZU5ldyhv
YmplY3QpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgaGVsbG8oKToKKyAgICAgICAgcmV0
dXJuIFRydWUKKworCitjbGFzcyBTYW1wbGVOZXdJbmhlcml0KFNhbXBsZU5ldyk6CisgICAgcGFz
cworCisKK2NsYXNzIFNhbXBsZU9sZChvYmplY3QpOgorICAgICMgb2xkc3R5bGUgb24gcHl0aG9u
MgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgaGVsbG8oKToKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworCitjbGFzcyBTYW1wbGVPbGRJbmhlcml0KFNhbXBsZU9sZCk6CisgICAgcGFzcworCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnU2FtcGxlJywgWworICAgIFNhbXBsZU5ldywgU2Ft
cGxlTmV3SW5oZXJpdCwKKyAgICBTYW1wbGVPbGQsIFNhbXBsZU9sZEluaGVyaXQsCitdLCBpZHM9
WyduZXcnLCAnbmV3LWluaGVyaXQnLCAnb2xkJywgJ29sZC1pbmhlcml0J10pCitkZWYgdGVzdF9p
c3N1ZTE1Nl91bmRvX3N0YXRpY21ldGhvZChTYW1wbGUpOgorICAgIG1vbmtleXBhdGNoID0gTW9u
a2V5UGF0Y2goKQorCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihTYW1wbGUsICdoZWxsbycsIE5v
bmUpCisgICAgYXNzZXJ0IFNhbXBsZS5oZWxsbyBpcyBOb25lCisKKyAgICBtb25rZXlwYXRjaC51
bmRvKCkKKyAgICBhc3NlcnQgU2FtcGxlLmhlbGxvKCkKKworCitkZWYgdGVzdF9pc3N1ZTEzMzhf
bmFtZV9yZXNvbHZpbmcoKToKKyAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCdyZXF1ZXN0cycpCisg
ICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgdHJ5OgorICAgICAgICBtb25rZXlw
YXRjaC5kZWxhdHRyKCdyZXF1ZXN0cy5zZXNzaW9ucy5TZXNzaW9uLnJlcXVlc3QnKQorICAgIGZp
bmFsbHk6CisgICAgICAgIG1vbmtleXBhdGNoLnVuZG8oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X25vZGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vZGVz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmNDU0MGY5OWI5NjQ1MTNmNmY2ZjU5MWRkMGU2MTE5YTA2OTU5NmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9kZXMucHkKQEAg
LTAsMCArMSwxOCBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVz
CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJiYXNlaWQsIG5vZGVpZCwgZXhwZWN0ZWQi
LCAoCisgICAgKCcnLCAnJywgVHJ1ZSksCisgICAgKCcnLCAnZm9vJywgVHJ1ZSksCisgICAgKCcn
LCAnZm9vL2JhcicsIFRydWUpLAorICAgICgnJywgJ2Zvby9iYXI6OlRlc3RCYXo6OigpJywgVHJ1
ZSksCisgICAgKCdmb28nLCAnZm9vZCcsIEZhbHNlKSwKKyAgICAoJ2Zvby9iYXI6OlRlc3RCYXo6
OigpJywgJ2Zvby9iYXInLCBGYWxzZSksCisgICAgKCdmb28vYmFyOjpUZXN0QmF6OjooKScsICdm
b28vYmFyOjpUZXN0Qm9wOjooKScsIEZhbHNlKSwKKyAgICAoJ2Zvby9iYXInLCAnZm9vL2Jhcjo6
VGVzdEJvcDo6KCknLCBUcnVlKSwKKykpCitkZWYgdGVzdF9pc2NoaWxkbm9kZShiYXNlaWQsIG5v
ZGVpZCwgZXhwZWN0ZWQpOgorICAgIHJlc3VsdCA9IG5vZGVzLmlzY2hpbGRub2RlKGJhc2VpZCwg
bm9kZWlkKQorICAgIGFzc2VydCByZXN1bHQgaXMgZXhwZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub3NlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25v
c2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGYzZTFhOTRiMDViZmNjNzk0ZWUxYjQ1ZDNmNjQxZTE0MjIzMGRm
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub3NlLnB5CkBA
IC0wLDAgKzEsNDA5IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHNldHVwX21v
ZHVsZShtb2QpOgorICAgIG1vZC5ub3NlID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgibm9zZSIpCisK
KworZGVmIHRlc3Rfbm9zZV9zZXR1cCh0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICBmcm9tIG5vc2UudG9vbHMgaW1w
b3J0IHdpdGhfc2V0dXAKKworICAgICAgICBAd2l0aF9zZXR1cChsYW1iZGE6IHZhbHVlcy5hcHBl
bmQoMSksIGxhbWJkYTogdmFsdWVzLmFwcGVuZCgyKSkKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8o
KToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisKKyAgICAgICAgZGVmIHRlc3Rf
d29ybGQoKToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKworICAgICAgICB0
ZXN0X2hlbGxvLnNldHVwID0gbGFtYmRhOiB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgIHRlc3Rf
aGVsbG8udGVhcmRvd24gPSBsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMikKKyAgICAiIiIpCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1wJywgJ25vc2UnKQorICAgIHJlc3VsdC5h
c3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRlc3Rfc2V0dXBfZnVuY193aXRoX3Nl
dHVwX2RlY29yYXRvcigpOgorICAgIGZyb20gX3B5dGVzdC5ub3NlIGltcG9ydCBjYWxsX29wdGlv
bmFsCisgICAgdmFsdWVzID0gW10KKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgQHB5
dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgZGVmIGYoc2VsZik6CisgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKDEpCisKKyAgICBjYWxsX29wdGlvbmFsKEEoKSwgImYiKQorICAg
IGFzc2VydCBub3QgdmFsdWVzCisKKworZGVmIHRlc3Rfc2V0dXBfZnVuY19ub3RfY2FsbGFibGUo
KToKKyAgICBmcm9tIF9weXRlc3Qubm9zZSBpbXBvcnQgY2FsbF9vcHRpb25hbAorCisgICAgY2xh
c3MgQShvYmplY3QpOgorICAgICAgICBmID0gMQorCisgICAgY2FsbF9vcHRpb25hbChBKCksICJm
IikKKworCitkZWYgdGVzdF9ub3NlX3NldHVwX2Z1bmModGVzdGRpcik6CisgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZnJvbSBub3NlLnRvb2xzIGltcG9ydCB3aXRoX3Nl
dHVwCisKKyAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICBkZWYgbXlfc2V0dXAoKToKKyAg
ICAgICAgICAgIGEgPSAxCisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGEpCisKKyAgICAgICAg
ZGVmIG15X3RlYXJkb3duKCk6CisgICAgICAgICAgICBiID0gMgorICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZChiKQorCisgICAgICAgIEB3aXRoX3NldHVwKG15X3NldHVwLCBteV90ZWFyZG93bikK
KyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgIHByaW50ICh2YWx1ZXMpCisg
ICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxXQorCisgICAgICAgIGRlZiB0ZXN0X3dvcmxk
KCk6CisgICAgICAgICAgICBwcmludCAodmFsdWVzKQorICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbMSwyXQorCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAs
ICctcCcsICdub3NlJykKKyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQorCisK
K2RlZiB0ZXN0X25vc2Vfc2V0dXBfZnVuY19mYWlsdXJlKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGZyb20gbm9zZS50b29scyBpbXBvcnQgd2l0aF9z
ZXR1cAorCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIG15X3NldHVwID0gbGFtYmRhIHg6
IDEKKyAgICAgICAgbXlfdGVhcmRvd24gPSBsYW1iZGEgeDogMgorCisgICAgICAgIEB3aXRoX3Nl
dHVwKG15X3NldHVwLCBteV90ZWFyZG93bikKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAg
ICAgICAgICAgIHByaW50ICh2YWx1ZXMpCisgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsx
XQorCisgICAgICAgIGRlZiB0ZXN0X3dvcmxkKCk6CisgICAgICAgICAgICBwcmludCAodmFsdWVz
KQorICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwyXQorCisgICAgIiIiKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcCcsICdub3NlJykKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKlR5cGVFcnJvcjogPGxhbWJkYT4oKSoiCisg
ICAgXSkKKworCitkZWYgdGVzdF9ub3NlX3NldHVwX2Z1bmNfZmFpbHVyZV8yKHRlc3RkaXIpOgor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgdmFsdWVzID0gW10KKworICAgICAg
ICBteV9zZXR1cCA9IDEKKyAgICAgICAgbXlfdGVhcmRvd24gPSAyCisKKyAgICAgICAgZGVmIHRl
c3RfaGVsbG8oKToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gW10KKworICAgICAgICB0
ZXN0X2hlbGxvLnNldHVwID0gbXlfc2V0dXAKKyAgICAgICAgdGVzdF9oZWxsby50ZWFyZG93biA9
IG15X3RlYXJkb3duCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigp
CisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKworZGVmIHRlc3Rfbm9zZV9z
ZXR1cF9wYXJ0aWFsKHRlc3RkaXIpOgorICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoImZ1bmN0b29s
cyIpCisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZnJvbSBmdW5jdG9v
bHMgaW1wb3J0IHBhcnRpYWwKKworICAgICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgIGRlZiBt
eV9zZXR1cCh4KToKKyAgICAgICAgICAgIGEgPSB4CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KGEpCisKKyAgICAgICAgZGVmIG15X3RlYXJkb3duKHgpOgorICAgICAgICAgICAgYiA9IHgKKyAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYikKKworICAgICAgICBteV9zZXR1cF9wYXJ0aWFsID0g
cGFydGlhbChteV9zZXR1cCwgMSkKKyAgICAgICAgbXlfdGVhcmRvd25fcGFydGlhbCA9IHBhcnRp
YWwobXlfdGVhcmRvd24sIDIpCisKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAg
ICAgIHByaW50ICh2YWx1ZXMpCisgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxXQorCisg
ICAgICAgIGRlZiB0ZXN0X3dvcmxkKCk6CisgICAgICAgICAgICBwcmludCAodmFsdWVzKQorICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwyXQorCisgICAgICAgIHRlc3RfaGVsbG8uc2V0
dXAgPSBteV9zZXR1cF9wYXJ0aWFsCisgICAgICAgIHRlc3RfaGVsbG8udGVhcmRvd24gPSBteV90
ZWFyZG93bl9wYXJ0aWFsCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KHAsICctcCcsICdub3NlJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAiKjIgcGFzc2VkKiIKKyAgICBdKQorCisKK2RlZiB0ZXN0X25vc2VfdGVzdF9nZW5lcmF0
b3JfZml4dHVyZXModGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgIyB0YWtlbiBmcm9tIG5vc2UtMC4xMS4xIHVuaXRfdGVzdHMvdGVzdF9nZW5lcmF0b3Jf
Zml4dHVyZXMucHkKKyAgICAgICAgZnJvbSBub3NlLnRvb2xzIGltcG9ydCBlcV8KKyAgICAgICAg
Y2FsbGVkID0gW10KKworICAgICAgICBkZWYgb3V0ZXJfc2V0dXAoKToKKyAgICAgICAgICAgIGNh
bGxlZC5hcHBlbmQoJ291dGVyX3NldHVwJykKKworICAgICAgICBkZWYgb3V0ZXJfdGVhcmRvd24o
KToKKyAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoJ291dGVyX3RlYXJkb3duJykKKworICAgICAg
ICBkZWYgaW5uZXJfc2V0dXAoKToKKyAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoJ2lubmVyX3Nl
dHVwJykKKworICAgICAgICBkZWYgaW5uZXJfdGVhcmRvd24oKToKKyAgICAgICAgICAgIGNhbGxl
ZC5hcHBlbmQoJ2lubmVyX3RlYXJkb3duJykKKworICAgICAgICBkZWYgdGVzdF9nZW4oKToKKyAg
ICAgICAgICAgIGNhbGxlZFs6XSA9IFtdCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCA1
KToKKyAgICAgICAgICAgICAgICB5aWVsZCBjaGVjaywgaQorCisgICAgICAgIGRlZiBjaGVjayhp
KToKKyAgICAgICAgICAgIGV4cGVjdCA9IFsnb3V0ZXJfc2V0dXAnXQorICAgICAgICAgICAgZm9y
IHggaW4gcmFuZ2UoMCwgaSk6CisgICAgICAgICAgICAgICAgZXhwZWN0LmFwcGVuZCgnaW5uZXJf
c2V0dXAnKQorICAgICAgICAgICAgICAgIGV4cGVjdC5hcHBlbmQoJ2lubmVyX3RlYXJkb3duJykK
KyAgICAgICAgICAgIGV4cGVjdC5hcHBlbmQoJ2lubmVyX3NldHVwJykKKyAgICAgICAgICAgIGVx
XyhjYWxsZWQsIGV4cGVjdCkKKworCisgICAgICAgIHRlc3RfZ2VuLnNldHVwID0gb3V0ZXJfc2V0
dXAKKyAgICAgICAgdGVzdF9nZW4udGVhcmRvd24gPSBvdXRlcl90ZWFyZG93bgorICAgICAgICBj
aGVjay5zZXR1cCA9IGlubmVyX3NldHVwCisgICAgICAgIGNoZWNrLnRlYXJkb3duID0gaW5uZXJf
dGVhcmRvd24KKworICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAg
IGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgICAgICAgICBwcmludCAoInNldHVwIGNhbGxlZCBp
biAlcyIgJSBzZWxmKQorICAgICAgICAgICAgICAgIHNlbGYuY2FsbGVkID0gWydzZXR1cCddCisK
KyAgICAgICAgICAgIGRlZiB0ZWFyZG93bihzZWxmKToKKyAgICAgICAgICAgICAgICBwcmludCAo
InRlYXJkb3duIGNhbGxlZCBpbiAlcyIgJSBzZWxmKQorICAgICAgICAgICAgICAgIGVxXyhzZWxm
LmNhbGxlZCwgWydzZXR1cCddKQorICAgICAgICAgICAgICAgIHNlbGYuY2FsbGVkLmFwcGVuZCgn
dGVhcmRvd24nKQorCisgICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgICAg
ICBwcmludCAoInRlc3QgY2FsbGVkIGluICVzIiAlIHNlbGYpCisgICAgICAgICAgICAgICAgZm9y
IGkgaW4gcmFuZ2UoMCwgNSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuY2hlY2ss
IGkKKworICAgICAgICAgICAgZGVmIGNoZWNrKHNlbGYsIGkpOgorICAgICAgICAgICAgICAgIHBy
aW50ICgiY2hlY2sgY2FsbGVkIGluICVzIiAlIHNlbGYpCisgICAgICAgICAgICAgICAgZXhwZWN0
ID0gWydzZXR1cCddCisgICAgICAgICAgICAgICAgI2ZvciB4IGluIHJhbmdlKDAsIGkpOgorICAg
ICAgICAgICAgICAgICMgICAgZXhwZWN0LmFwcGVuZCgnc2V0dXAnKQorICAgICAgICAgICAgICAg
ICMgICAgZXhwZWN0LmFwcGVuZCgndGVhcmRvd24nKQorICAgICAgICAgICAgICAgICNleHBlY3Qu
YXBwZW5kKCdzZXR1cCcpCisgICAgICAgICAgICAgICAgZXFfKHNlbGYuY2FsbGVkLCBleHBlY3Qp
CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcCcsICdub3Nl
JykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjEwIHBhc3Nl
ZCoiCisgICAgXSkKKworCitkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfc2V0dXAodGVzdGRpcik6Cisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBmcm9tIG5vc2UudG9vbHMgaW1wb3J0
IHdpdGhfc2V0dXAKKyAgICAgICAgaXRlbXMgPSB7fQorCisgICAgICAgIGRlZiBzZXR1cCgpOgor
ICAgICAgICAgICAgaXRlbXNbMV09MQorCisgICAgICAgIGRlZiB0ZWFyZG93bigpOgorICAgICAg
ICAgICAgZGVsIGl0ZW1zWzFdCisKKyAgICAgICAgZGVmIHNldHVwMigpOgorICAgICAgICAgICAg
aXRlbXNbMl0gPSAyCisKKyAgICAgICAgZGVmIHRlYXJkb3duMigpOgorICAgICAgICAgICAgZGVs
IGl0ZW1zWzJdCisKKyAgICAgICAgZGVmIHRlc3Rfc2V0dXBfbW9kdWxlX3NldHVwKCk6CisgICAg
ICAgICAgICBhc3NlcnQgaXRlbXNbMV0gPT0gMQorCisgICAgICAgIEB3aXRoX3NldHVwKHNldHVw
MiwgdGVhcmRvd24yKQorICAgICAgICBkZWYgdGVzdF9sb2NhbF9zZXR1cCgpOgorICAgICAgICAg
ICAgYXNzZXJ0IGl0ZW1zWzJdID09IDIKKyAgICAgICAgICAgIGFzc2VydCAxIG5vdCBpbiBpdGVt
cworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXAnLCAnbm9zZScp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioyIHBhc3NlZCoi
LAorICAgIF0pCisKKworZGVmIHRlc3Rfbm9zZV9zdHlsZV9zZXR1cF90ZWFyZG93bih0ZXN0ZGly
KToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIHZhbHVlcyA9IFtdCisKKyAg
ICAgICAgZGVmIHNldHVwX21vZHVsZSgpOgorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQor
CisgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUoKToKKyAgICAgICAgICAgIGRlbCB2YWx1ZXNb
MF0KKworICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbMV0KKworICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgorICAgICAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbMV0KKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCctcCcsICdub3NlJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAiKjIgcGFzc2VkKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9ub3NlX3NldHVwX29yZGVy
aW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHNl
dHVwX21vZHVsZShtb2QpOgorICAgICAgICAgICAgbW9kLnZpc2l0ZWQgPSBUcnVlCisKKyAgICAg
ICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgc2V0dXAoc2VsZik6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZpc2l0ZWQKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zp
cnN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9hcGl3cmFwcGVy
X3Byb2JsZW1faXNzdWUyNjAodGVzdGRpcik6CisgICAgIyB0aGlzIHdvdWxkIGVuZCB1cCB0cnlp
bmcgYSBjYWxsIGEgb3B0aW9uYWwgdGVhcmRvd24gb24gdGhlIGNsYXNzCisgICAgIyBmb3IgcGxh
aW4gdW5pdHRlc3RzIHdlIGRvbnQgd2FudCBub3NlIGJlaGF2aW91cgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGNsYXNzIFRlc3RD
YXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiBzZXR1cChzZWxmKToKKyAg
ICAgICAgICAgICAgICAjc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gdW5pdHRlc3QgdGVzdGNhc2Vz
CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICdzZXR1cCcKKyAgICAgICAgICAgIGRlZiB0ZWFy
ZG93bihzZWxmKToKKyAgICAgICAgICAgICAgICAjc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gdW5p
dHRlc3QgdGVzdGNhc2VzCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICd0ZWFyZG93bicKKyAg
ICAgICAgICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgICAgICAgICBwcmludCgnc2V0dXAn
KQorICAgICAgICAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAgICAgICAgIHByaW50
KCd0ZWFyZG93bicpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW4oc2VsZik6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEpCisKKworZGVmIHRlc3Rfc2V0
dXBfdGVhcmRvd25fbGlua2luZ19pc3N1ZTI2NSh0ZXN0ZGlyKToKKyAgICAjIHdlIGFjY2lkZW50
YWxseSBkaWRudCBpbnRlZ3JhdGUgbm9zZSBzZXR1cHN0YXRlIHdpdGggbm9ybWFsIHNldHVwc3Rh
dGUKKyAgICAjIHRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgd29uJ3QgaGFwcGVuIGFnYWluCisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
Y2xhc3MgVGVzdEdlbmVyaWMob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiB0ZXN0X25vdGhpbmco
c2VsZik6CisgICAgICAgICAgICAgICAgIiIiVGVzdHMgdGhlIEFQSSBvZiB0aGUgaW1wbGVtZW50
YXRpb24gKGZvciBnZW5lcmljIGFuZCBzcGVjaWFsaXplZCkuIiIiCisKKyAgICAgICAgQHB5dGVz
dC5tYXJrLnNraXBpZigiVHJ1ZSIsIHJlYXNvbj0KKyAgICAgICAgICAgICAgICAgICAgIlNraXAg
dGVzdHMgdG8gY2hlY2sgaWYgdGVhcmRvd24gaXMgc2tpcHBlZCBhcyB3ZWxsLiIpCisgICAgICAg
IGNsYXNzIFRlc3RTa2lwVGVhcmRvd24oVGVzdEdlbmVyaWMpOgorCisgICAgICAgICAgICBkZWYg
c2V0dXAoc2VsZik6CisgICAgICAgICAgICAgICAgIiIiU2V0cyB1cCBteSBzcGVjaWFsaXplZCBp
bXBsZW1lbnRhdGlvbiBmb3IgJENPT0xfUExBVEZPUk0uIiIiCisgICAgICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCJzaG91bGQgbm90IGNhbGwgc2V0dXAgZm9yIHNraXBwZWQgdGVzdHMiKQor
CisgICAgICAgICAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgICAgICAgICAgIiIiVW5k
b2VzIHRoZSBzZXR1cC4iIiIKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInNob3Vs
ZCBub3QgY2FsbCB0ZWFyZG93biBmb3Igc2tpcHBlZCB0ZXN0cyIpCisgICAgICAgICcnJykKKyAg
ICByZXByZWMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVwcmVjLmFzc2VydF9vdXRjb21l
cyhwYXNzZWQ9MSwgc2tpcHBlZD0xKQorCisKK2RlZiB0ZXN0X1NraXBUZXN0X2R1cmluZ19jb2xs
ZWN0aW9uKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCBub3NlCisgICAgICAgIHJhaXNlIG5vc2UuU2tpcFRlc3QoImR1cmluZyBjb2xsZWN0
aW9uIikKKyAgICAgICAgZGVmIHRlc3RfZmFpbGluZygpOgorICAgICAgICAgICAgYXNzZXJ0IEZh
bHNlCisgICAgICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAg
IHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoc2tpcHBlZD0xKQorCisKK2RlZiB0ZXN0X1NraXBUZXN0
X2luX3Rlc3QodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgbm9zZQorCisgICAgICAgIGRlZiB0ZXN0X3NraXBwaW5nKCk6CisgICAgICAgICAgICBy
YWlzZSBub3NlLlNraXBUZXN0KCJpbiB0ZXN0IikKKyAgICAgICAgIiIiKQorICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoc2tpcHBlZD0x
KQorCisKK2RlZiB0ZXN0X2lzdGVzdF9mdW5jdGlvbl9kZWNvcmF0b3IodGVzdGRpcik6CisgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IG5vc2UudG9vbHMKKyAg
ICAgICAgQG5vc2UudG9vbHMuaXN0ZXN0CisgICAgICAgIGRlZiBub3RfdGVzdF9wcmVmaXgoKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHApCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MSkKKworCitkZWYg
dGVzdF9ub3R0ZXN0X2Z1bmN0aW9uX2RlY29yYXRvcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBub3NlLnRvb2xzCisgICAgICAgIEBub3NlLnRv
b2xzLm5vdHRlc3QKKyAgICAgICAgZGVmIHRlc3RfcHJlZml4KCk6CisgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIGFz
c2VydCBub3QgcmVwcmVjLmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKKyAgICBjYWxscyA9IHJlcHJl
Yy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgIGFzc2VydCBub3Qg
Y2FsbHMKKworCitkZWYgdGVzdF9pc3Rlc3RfY2xhc3NfZGVjb3JhdG9yKHRlc3RkaXIpOgorICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBub3NlLnRvb2xzCisg
ICAgICAgIEBub3NlLnRvb2xzLmlzdGVzdAorICAgICAgICBjbGFzcyBOb3RUZXN0UHJlZml4KG9i
amVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkK
KyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0X25vdHRl
c3RfY2xhc3NfZGVjb3JhdG9yKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgaW1wb3J0IG5vc2UudG9vbHMKKyAgICAgICAgQG5vc2UudG9vbHMubm90dGVzdAor
ICAgICAgICBjbGFzcyBUZXN0UHJlZml4KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICBhc3NlcnQgbm90IHJlcHJlYy5nZXRmYWls
ZWRjb2xsZWN0aW9ucygpCisgICAgY2FsbHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0IikKKyAgICBhc3NlcnQgbm90IGNhbGxzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcGFyc2VvcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxNTkyNTcwMTk3YWEwNmIzMGYzNzcxNDEwYTk2
MTQzMzNhZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9w
YXJzZW9wdC5weQpAQCAtMCwwICsxLDMwOSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0
IG9zCitpbXBvcnQgcHkKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQgY29uZmln
IGFzIHBhcnNlb3B0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcGFyc2VyKCk6CisgICAgcmV0
dXJuIHBhcnNlb3B0LlBhcnNlcigpCisKKworY2xhc3MgVGVzdFBhcnNlcihvYmplY3QpOgorICAg
IGRlZiB0ZXN0X25vX2hlbHBfYnlfZGVmYXVsdChzZWxmLCBjYXBzeXMpOgorICAgICAgICBwYXJz
ZXIgPSBwYXJzZW9wdC5QYXJzZXIodXNhZ2U9Inh5eiIpCisgICAgICAgIHB5dGVzdC5yYWlzZXMo
U3lzdGVtRXhpdCwgbGFtYmRhOiBwYXJzZXIucGFyc2UoWyItaCJdKSkKKyAgICAgICAgb3V0LCBl
cnIgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBlcnIuZmluZCgiZXJyb3I6
IHVucmVjb2duaXplZCBhcmd1bWVudHMiKSAhPSAtMQorCisgICAgZGVmIHRlc3RfYXJndW1lbnQo
c2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhwYXJzZW9wdC5Bcmd1bWVudEVycm9y
KToKKyAgICAgICAgICAgICMgbmVlZCBhIHNob3J0IG9yIGxvbmcgb3B0aW9uCisgICAgICAgICAg
ICBhcmd1bWVudCA9IHBhcnNlb3B0LkFyZ3VtZW50KCkKKyAgICAgICAgYXJndW1lbnQgPSBwYXJz
ZW9wdC5Bcmd1bWVudCgnLXQnKQorICAgICAgICBhc3NlcnQgYXJndW1lbnQuX3Nob3J0X29wdHMg
PT0gWyctdCddCisgICAgICAgIGFzc2VydCBhcmd1bWVudC5fbG9uZ19vcHRzID09IFtdCisgICAg
ICAgIGFzc2VydCBhcmd1bWVudC5kZXN0ID09ICd0JworICAgICAgICBhcmd1bWVudCA9IHBhcnNl
b3B0LkFyZ3VtZW50KCctdCcsICctLXRlc3QnKQorICAgICAgICBhc3NlcnQgYXJndW1lbnQuX3No
b3J0X29wdHMgPT0gWyctdCddCisgICAgICAgIGFzc2VydCBhcmd1bWVudC5fbG9uZ19vcHRzID09
IFsnLS10ZXN0J10KKyAgICAgICAgYXNzZXJ0IGFyZ3VtZW50LmRlc3QgPT0gJ3Rlc3QnCisgICAg
ICAgIGFyZ3VtZW50ID0gcGFyc2VvcHQuQXJndW1lbnQoJy10JywgJy0tdGVzdCcsIGRlc3Q9J2Fi
YycpCisgICAgICAgIGFzc2VydCBhcmd1bWVudC5kZXN0ID09ICdhYmMnCisgICAgICAgIGFzc2Vy
dCBzdHIoYXJndW1lbnQpID09ICgKKyAgICAgICAgICAgICJBcmd1bWVudChfc2hvcnRfb3B0czog
WyctdCddLCBfbG9uZ19vcHRzOiBbJy0tdGVzdCddLCBkZXN0OiAnYWJjJykiCisgICAgICAgICkK
KworICAgIGRlZiB0ZXN0X2FyZ3VtZW50X3R5cGUoc2VsZik6CisgICAgICAgIGFyZ3VtZW50ID0g
cGFyc2VvcHQuQXJndW1lbnQoJy10JywgZGVzdD0nYWJjJywgdHlwZT1pbnQpCisgICAgICAgIGFz
c2VydCBhcmd1bWVudC50eXBlIGlzIGludAorICAgICAgICBhcmd1bWVudCA9IHBhcnNlb3B0LkFy
Z3VtZW50KCctdCcsIGRlc3Q9J2FiYycsIHR5cGU9c3RyKQorICAgICAgICBhc3NlcnQgYXJndW1l
bnQudHlwZSBpcyBzdHIKKyAgICAgICAgYXJndW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgnLXQn
LCBkZXN0PSdhYmMnLCB0eXBlPWZsb2F0KQorICAgICAgICBhc3NlcnQgYXJndW1lbnQudHlwZSBp
cyBmbG9hdAorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgor
ICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEtleUVycm9yKToKKyAgICAgICAgICAgICAg
ICBhcmd1bWVudCA9IHBhcnNlb3B0LkFyZ3VtZW50KCctdCcsIGRlc3Q9J2FiYycsIHR5cGU9J2No
b2ljZScpCisgICAgICAgIGFyZ3VtZW50ID0gcGFyc2VvcHQuQXJndW1lbnQoJy10JywgZGVzdD0n
YWJjJywgdHlwZT1zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hv
aWNlcz1bJ3JlZCcsICdibHVlJ10pCisgICAgICAgIGFzc2VydCBhcmd1bWVudC50eXBlIGlzIHN0
cgorCisgICAgZGVmIHRlc3RfYXJndW1lbnRfcHJvY2Vzc29wdChzZWxmKToKKyAgICAgICAgYXJn
dW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgnLXQnLCB0eXBlPWludCkKKyAgICAgICAgYXJndW1l
bnQuZGVmYXVsdCA9IDQyCisgICAgICAgIGFyZ3VtZW50LmRlc3QgPSAnYWJjJworICAgICAgICBy
ZXMgPSBhcmd1bWVudC5hdHRycygpCisgICAgICAgIGFzc2VydCByZXNbJ2RlZmF1bHQnXSA9PSA0
MgorICAgICAgICBhc3NlcnQgcmVzWydkZXN0J10gPT0gJ2FiYycKKworICAgIGRlZiB0ZXN0X2dy
b3VwX2FkZF9hbmRfZ2V0KHNlbGYsIHBhcnNlcik6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdl
dGdyb3VwKCJoZWxsbyIsIGRlc2NyaXB0aW9uPSJkZXNjIikKKyAgICAgICAgYXNzZXJ0IGdyb3Vw
Lm5hbWUgPT0gImhlbGxvIgorICAgICAgICBhc3NlcnQgZ3JvdXAuZGVzY3JpcHRpb24gPT0gImRl
c2MiCisKKyAgICBkZWYgdGVzdF9nZXRncm91cF9zaW1wbGUoc2VsZiwgcGFyc2VyKToKKyAgICAg
ICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImhlbGxvIiwgZGVzY3JpcHRpb249ImRlc2MiKQor
ICAgICAgICBhc3NlcnQgZ3JvdXAubmFtZSA9PSAiaGVsbG8iCisgICAgICAgIGFzc2VydCBncm91
cC5kZXNjcmlwdGlvbiA9PSAiZGVzYyIKKyAgICAgICAgZ3JvdXAyID0gcGFyc2VyLmdldGdyb3Vw
KCJoZWxsbyIpCisgICAgICAgIGFzc2VydCBncm91cDIgaXMgZ3JvdXAKKworICAgIGRlZiB0ZXN0
X2dyb3VwX29yZGVyaW5nKHNlbGYsIHBhcnNlcik6CisgICAgICAgIHBhcnNlci5nZXRncm91cCgi
MSIpCisgICAgICAgIHBhcnNlci5nZXRncm91cCgiMiIpCisgICAgICAgIHBhcnNlci5nZXRncm91
cCgiMyIsIGFmdGVyPSIxIikKKyAgICAgICAgZ3JvdXBzID0gcGFyc2VyLl9ncm91cHMKKyAgICAg
ICAgZ3JvdXBzX25hbWVzID0gW3gubmFtZSBmb3IgeCBpbiBncm91cHNdCisgICAgICAgIGFzc2Vy
dCBncm91cHNfbmFtZXMgPT0gbGlzdCgiMTMyIikKKworICAgIGRlZiB0ZXN0X2dyb3VwX2FkZG9w
dGlvbihzZWxmKToKKyAgICAgICAgZ3JvdXAgPSBwYXJzZW9wdC5PcHRpb25Hcm91cCgiaGVsbG8i
KQorICAgICAgICBncm91cC5hZGRvcHRpb24oIi0tb3B0aW9uMSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIpCisgICAgICAgIGFzc2VydCBsZW4oZ3JvdXAub3B0aW9ucykgPT0gMQorICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShncm91cC5vcHRpb25zWzBdLCBwYXJzZW9wdC5Bcmd1bWVudCkKKworICAg
IGRlZiB0ZXN0X2dyb3VwX2FkZG9wdGlvbl9jb25mbGljdChzZWxmKToKKyAgICAgICAgZ3JvdXAg
PSBwYXJzZW9wdC5PcHRpb25Hcm91cCgiaGVsbG8gYWdhaW4iKQorICAgICAgICBncm91cC5hZGRv
cHRpb24oIi0tb3B0aW9uMSIsICItLW9wdGlvbi0xIiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycjoKKyAgICAgICAgICAg
IGdyb3VwLmFkZG9wdGlvbigiLS1vcHRpb24xIiwgIi0tb3B0aW9uLW9uZSIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIpCisgICAgICAgIGFzc2VydCBzdHIoc2V0KFsiLS1vcHRpb24xIl0pKSBpbiBzdHIo
ZXJyLnZhbHVlKQorCisgICAgZGVmIHRlc3RfZ3JvdXBfc2hvcnRvcHRfbG93ZXJjYXNlKHNlbGYs
IHBhcnNlcik6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJoZWxsbyIpCisgICAg
ICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgIiIiCisgICAgICAgICAgICBncm91cC5hZGRv
cHRpb24oIi14IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAgICAgIiIiKQorICAgICAgICBh
c3NlcnQgbGVuKGdyb3VwLm9wdGlvbnMpID09IDAKKyAgICAgICAgZ3JvdXAuX2FkZG9wdGlvbigi
LXgiLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICAgICBhc3NlcnQgbGVuKGdyb3VwLm9wdGlv
bnMpID09IDEKKworICAgIGRlZiB0ZXN0X3BhcnNlcl9hZGRvcHRpb24oc2VsZiwgcGFyc2VyKToK
KyAgICAgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImN1c3RvbSBvcHRpb25zIikKKyAgICAg
ICAgYXNzZXJ0IGxlbihncm91cC5vcHRpb25zKSA9PSAwCisgICAgICAgIGdyb3VwLmFkZG9wdGlv
bigiLS1vcHRpb24xIiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAgICAgYXNzZXJ0IGxlbihn
cm91cC5vcHRpb25zKSA9PSAxCisKKyAgICBkZWYgdGVzdF9wYXJzZShzZWxmLCBwYXJzZXIpOgor
ICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLWhlbGxvIiwgZGVzdD0iaGVsbG8iLCBhY3Rpb249
InN0b3JlIikKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbJy0taGVsbG8nLCAnd29ybGQn
XSkKKyAgICAgICAgYXNzZXJ0IGFyZ3MuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICBhc3NlcnQg
bm90IGdldGF0dHIoYXJncywgcGFyc2VvcHQuRklMRV9PUl9ESVIpCisKKyAgICBkZWYgdGVzdF9w
YXJzZTIoc2VsZiwgcGFyc2VyKToKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbcHkucGF0
aC5sb2NhbCgpXSkKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIoYXJncywgcGFyc2VvcHQuRklMRV9P
Ul9ESVIpWzBdID09IHB5LnBhdGgubG9jYWwoKQorCisgICAgZGVmIHRlc3RfcGFyc2Vfa25vd25f
YXJncyhzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIucGFyc2Vfa25vd25fYXJncyhbcHku
cGF0aC5sb2NhbCgpXSkKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsbyIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIpCisgICAgICAgIG5zID0gcGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoWyJ4
IiwgIi0teSIsICItLWhlbGxvIiwgInRoaXMiXSkKKyAgICAgICAgYXNzZXJ0IG5zLmhlbGxvCisg
ICAgICAgIGFzc2VydCBucy5maWxlX29yX2RpciA9PSBbJ3gnXQorCisgICAgZGVmIHRlc3RfcGFy
c2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIu
YWRkb3B0aW9uKCItLWhlbGxvIiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAgICAgbnMsIHVu
a25vd24gPSBwYXJzZXIucGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhbIngiLCAiLS15IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0taGVsbG8iLCAidGhpcyJdKQorICAgICAgICBhc3NlcnQgbnMuaGVsbG8KKyAgICAgICAg
YXNzZXJ0IG5zLmZpbGVfb3JfZGlyID09IFsneCddCisgICAgICAgIGFzc2VydCB1bmtub3duID09
IFsnLS15JywgJ3RoaXMnXQorCisgICAgZGVmIHRlc3RfcGFyc2Vfd2lsbF9zZXRfZGVmYXVsdChz
ZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLWhlbGxvIiwgZGVzdD0i
aGVsbG8iLCBkZWZhdWx0PSJ4IiwgYWN0aW9uPSJzdG9yZSIpCisgICAgICAgIG9wdGlvbiA9IHBh
cnNlci5wYXJzZShbXSkKKyAgICAgICAgYXNzZXJ0IG9wdGlvbi5oZWxsbyA9PSAieCIKKyAgICAg
ICAgZGVsIG9wdGlvbi5oZWxsbworICAgICAgICBwYXJzZXIucGFyc2Vfc2V0b3B0aW9uKFtdLCBv
cHRpb24pCisgICAgICAgIGFzc2VydCBvcHRpb24uaGVsbG8gPT0gIngiCisKKyAgICBkZWYgdGVz
dF9wYXJzZV9zZXRvcHRpb24oc2VsZiwgcGFyc2VyKToKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlv
bigiLS1oZWxsbyIsIGRlc3Q9ImhlbGxvIiwgYWN0aW9uPSJzdG9yZSIpCisgICAgICAgIHBhcnNl
ci5hZGRvcHRpb24oIi0td29ybGQiLCBkZXN0PSJ3b3JsZCIsIGRlZmF1bHQ9NDIpCisKKyAgICAg
ICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG9wdGlvbiA9
IEEoKQorICAgICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX3NldG9wdGlvbihbJy0taGVsbG8nLCAn
d29ybGQnXSwgb3B0aW9uKQorICAgICAgICBhc3NlcnQgb3B0aW9uLmhlbGxvID09ICJ3b3JsZCIK
KyAgICAgICAgYXNzZXJ0IG9wdGlvbi53b3JsZCA9PSA0MgorICAgICAgICBhc3NlcnQgbm90IGFy
Z3MKKworICAgIGRlZiB0ZXN0X3BhcnNlX3NwZWNpYWxfZGVzdGluYXRpb24oc2VsZiwgcGFyc2Vy
KToKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS11bHRpbWF0ZS1hbnN3ZXIiLCB0eXBlPWlu
dCkKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbJy0tdWx0aW1hdGUtYW5zd2VyJywgJzQy
J10pCisgICAgICAgIGFzc2VydCBhcmdzLnVsdGltYXRlX2Fuc3dlciA9PSA0MgorCisgICAgZGVm
IHRlc3RfcGFyc2Vfc3BsaXRfcG9zaXRpb25hbF9hcmd1bWVudHMoc2VsZiwgcGFyc2VyKToKKyAg
ICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLVIiLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgICAg
ICBwYXJzZXIuYWRkb3B0aW9uKCItUyIsIGFjdGlvbj0nc3RvcmVfZmFsc2UnKQorICAgICAgICBh
cmdzID0gcGFyc2VyLnBhcnNlKFsnLVInLCAnNCcsICcyJywgJy1TJ10pCisgICAgICAgIGFzc2Vy
dCBnZXRhdHRyKGFyZ3MsIHBhcnNlb3B0LkZJTEVfT1JfRElSKSA9PSBbJzQnLCAnMiddCisgICAg
ICAgIGFyZ3MgPSBwYXJzZXIucGFyc2UoWyctUicsICctUycsICc0JywgJzInLCAnLVInXSkKKyAg
ICAgICAgYXNzZXJ0IGdldGF0dHIoYXJncywgcGFyc2VvcHQuRklMRV9PUl9ESVIpID09IFsnNCcs
ICcyJ10KKyAgICAgICAgYXNzZXJ0IGFyZ3MuUiBpcyBUcnVlCisgICAgICAgIGFzc2VydCBhcmdz
LlMgaXMgRmFsc2UKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbJy1SJywgJzQnLCAnLVMn
LCAnMiddKQorICAgICAgICBhc3NlcnQgZ2V0YXR0cihhcmdzLCBwYXJzZW9wdC5GSUxFX09SX0RJ
UikgPT0gWyc0JywgJzInXQorICAgICAgICBhc3NlcnQgYXJncy5SIGlzIFRydWUKKyAgICAgICAg
YXNzZXJ0IGFyZ3MuUyBpcyBGYWxzZQorCisgICAgZGVmIHRlc3RfcGFyc2VfZGVmYXVsdGdldHRl
cihzZWxmKToKKyAgICAgICAgZGVmIGRlZmF1bHRnZXQob3B0aW9uKToKKyAgICAgICAgICAgIGlm
IG5vdCBoYXNhdHRyKG9wdGlvbiwgJ3R5cGUnKToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgICAgIGlmIG9wdGlvbi50eXBlIGlzIGludDoKKyAgICAgICAgICAgICAgICBvcHRpb24u
ZGVmYXVsdCA9IDQyCisgICAgICAgICAgICBlbGlmIG9wdGlvbi50eXBlIGlzIHN0cjoKKyAgICAg
ICAgICAgICAgICBvcHRpb24uZGVmYXVsdCA9ICJ3b3JsZCIKKyAgICAgICAgcGFyc2VyID0gcGFy
c2VvcHQuUGFyc2VyKHByb2Nlc3NvcHQ9ZGVmYXVsdGdldCkKKyAgICAgICAgcGFyc2VyLmFkZG9w
dGlvbigiLS10aGlzIiwgZGVzdD0idGhpcyIsIHR5cGU9aW50LCBhY3Rpb249InN0b3JlIikKKyAg
ICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsbyIsIGRlc3Q9ImhlbGxvIiwgdHlwZT1zdHIs
IGFjdGlvbj0ic3RvcmUiKQorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLW5vIiwgZGVzdD0i
bm8iLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICAgICBvcHRpb24gPSBwYXJzZXIucGFyc2Uo
W10pCisgICAgICAgIGFzc2VydCBvcHRpb24uaGVsbG8gPT0gIndvcmxkIgorICAgICAgICBhc3Nl
cnQgb3B0aW9uLnRoaXMgPT0gNDIKKyAgICAgICAgYXNzZXJ0IG9wdGlvbi5ubyBpcyBGYWxzZQor
CisgICAgZGVmIHRlc3RfZHJvcF9zaG9ydF9oZWxwZXIoc2VsZik6CisgICAgICAgIHBhcnNlciA9
IHB5LnN0ZC5hcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihmb3JtYXR0ZXJfY2xhc3M9cGFyc2VvcHQu
RHJvcFNob3J0ZXJMb25nSGVscEZvcm1hdHRlcikKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgnLXQnLCAnLS10d293b3JkJywgJy0tZHVvJywgJy0tdHdvLXdvcmQnLCAnLS10d28nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2ZvbycpLm1hcF9sb25nX29wdGlvbiA9IHsn
dHdvJzogJ3R3by13b3JkJ30KKyAgICAgICAgIyB0aHJvd3MgZXJyb3Igb24gLS1kZXV4IG9ubHkh
CisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1kJywgJy0tZGV1eG1vdHMnLCAnLS1kZXV4
LW1vdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
IGhlbHA9J2ZvbycpLm1hcF9sb25nX29wdGlvbiA9IHsnZGV1eCc6ICdkZXV4LW1vdHMnfQorICAg
ICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctcycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9
J3NpbmdsZSBzaG9ydCcpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tYWJjJywgJy1h
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxw
PSdiYXInKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWtsbScsICctaycsICctLWts
LW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhl
bHA9J2JhcicpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1QJywgJy0tcHEtcicsICct
cCcsICctLXBxcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90
cnVlJywgaGVscD0nYmFyJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS16d2VpLXdv
cnQnLCAnLS16d2Vpd29ydCcsICctLXp3ZWl3b3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdiYXInKQorICAgICAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCcteCcsICctLWV4aXQtb24tZmlyc3QnLCAnLS1leGl0Zmlyc3QnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9J3NwYW0nKS5t
YXBfbG9uZ19vcHRpb24gPSB7J2V4aXRmaXJzdCc6ICdleGl0LW9uLWZpcnN0J30KKyAgICAgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZXNfYW5kX2RpcnMnLCBuYXJncz0nKicpCisgICAgICAg
IGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhbJy1rJywgJy0tZHVvJywgJ2hhbGxvJywgJy0tZXhp
dGZpcnN0J10pCisgICAgICAgIGFzc2VydCBhcmdzLnR3b3dvcmQgPT0gJ2hhbGxvJworICAgICAg
ICBhc3NlcnQgYXJncy5rbG0gaXMgVHJ1ZQorICAgICAgICBhc3NlcnQgYXJncy56d2VpX3dvcnQg
aXMgRmFsc2UKKyAgICAgICAgYXNzZXJ0IGFyZ3MuZXhpdF9vbl9maXJzdCBpcyBUcnVlCisgICAg
ICAgIGFzc2VydCBhcmdzLnMgaXMgRmFsc2UKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9h
cmdzKFsnLS1kZXV4LW1vdHMnXSkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yKToKKyAgICAgICAgICAgIGFzc2VydCBhcmdzLmRldXhfbW90cyBpcyBUcnVlCisgICAg
ICAgIGFzc2VydCBhcmdzLmRldXhtb3RzIGlzIFRydWUKKyAgICAgICAgYXJncyA9IHBhcnNlci5w
YXJzZV9hcmdzKFsnZmlsZScsICdkaXInXSkKKyAgICAgICAgYXNzZXJ0ICd8Jy5qb2luKGFyZ3Mu
ZmlsZXNfYW5kX2RpcnMpID09ICdmaWxlfGRpcicKKworICAgIGRlZiB0ZXN0X2Ryb3Bfc2hvcnRf
MChzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWZ1bmNhcmcnLCAn
LS1mdW5jLWFyZycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCisgICAgICAgIHBhcnNlci5hZGRvcHRp
b24oJy0tYWJjLWRlZicsICctLWFiYy1kZWYnLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgICAg
ICBwYXJzZXIuYWRkb3B0aW9uKCctLWtsbS1oaWonLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAg
ICAgICBhcmdzID0gcGFyc2VyLnBhcnNlKFsnLS1mdW5jYXJnJywgJy0tayddKQorICAgICAgICBh
c3NlcnQgYXJncy5mdW5jYXJnIGlzIFRydWUKKyAgICAgICAgYXNzZXJ0IGFyZ3MuYWJjX2RlZiBp
cyBGYWxzZQorICAgICAgICBhc3NlcnQgYXJncy5rbG1faGlqIGlzIFRydWUKKworICAgIGRlZiB0
ZXN0X2Ryb3Bfc2hvcnRfMihzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9u
KCctLWZ1bmMtYXJnJywgJy0tZG9pdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCisgICAgICAgIGFy
Z3MgPSBwYXJzZXIucGFyc2UoWyctLWRvaXQnXSkKKyAgICAgICAgYXNzZXJ0IGFyZ3MuZnVuY19h
cmcgaXMgVHJ1ZQorCisgICAgZGVmIHRlc3RfZHJvcF9zaG9ydF8zKHNlbGYsIHBhcnNlcik6Cisg
ICAgICAgIHBhcnNlci5hZGRvcHRpb24oJy0tZnVuYy1hcmcnLCAnLS1mdW5jYXJnJywgJy0tZG9p
dCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCisgICAgICAgIGFyZ3MgPSBwYXJzZXIucGFyc2UoWydh
YmNkJ10pCisgICAgICAgIGFzc2VydCBhcmdzLmZ1bmNfYXJnIGlzIEZhbHNlCisgICAgICAgIGFz
c2VydCBhcmdzLmZpbGVfb3JfZGlyID09IFsnYWJjZCddCisKKyAgICBkZWYgdGVzdF9kcm9wX3No
b3J0X2hlbHAwKHNlbGYsIHBhcnNlciwgY2Fwc3lzKToKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlv
bignLS1mdW5jLWFyZ3MnLCAnLS1kb2l0JywgaGVscD0nZm9vJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgICAgICBwYXJzZXIucGFyc2UoW10pCisg
ICAgICAgIGhlbHAgPSBwYXJzZXIub3B0cGFyc2VyLmZvcm1hdF9oZWxwKCkKKyAgICAgICAgYXNz
ZXJ0ICctLWZ1bmMtYXJncywgLS1kb2l0ICBmb28nIGluIGhlbHAKKworICAgICMgdGVzdGluZyB3
b3VsZCBiZSBtb3JlIGhlbHBmdWwgd2l0aCBhbGwgaGVscCBnZW5lcmF0ZWQKKyAgICBkZWYgdGVz
dF9kcm9wX3Nob3J0X2hlbHAxKHNlbGYsIHBhcnNlciwgY2Fwc3lzKToKKyAgICAgICAgZ3JvdXAg
PSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgICAgICBncm91cC5hZGRvcHRpb24oJy0t
ZG9pdCcsICctLWZ1bmMtYXJncycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9J2ZvbycpCisg
ICAgICAgIGdyb3VwLl9hZGRvcHRpb24oIi1oIiwgIi0taGVscCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9ImhlbHAiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgaGVs
cCBtZXNzYWdlIGFuZCBjb25maWd1cmF0aW9uIGluZm8iKQorICAgICAgICBwYXJzZXIucGFyc2Uo
WyctaCddKQorICAgICAgICBoZWxwID0gcGFyc2VyLm9wdHBhcnNlci5mb3JtYXRfaGVscCgpCisg
ICAgICAgIGFzc2VydCAnLWRvaXQsIC0tZnVuYy1hcmdzICBmb28nIGluIGhlbHAKKworICAgIGRl
ZiB0ZXN0X211bHRpcGxlX21ldGF2YXJfaGVscChzZWxmLCBwYXJzZXIpOgorICAgICAgICAiIiIK
KyAgICAgICAgSGVscCB0ZXh0IGZvciBvcHRpb25zIHdpdGggYSBtZXRhdmFyIHR1cGxlIHNob3Vs
ZCBkaXNwbGF5IGhlbHAKKyAgICAgICAgaW4gdGhlIGZvcm0gIi0tcHJlZmVyZW5jZXM9dmFsdWUx
IHZhbHVlMiB2YWx1ZTMiICgjMjAwNCkuCisgICAgICAgICIiIgorICAgICAgICBncm91cCA9IHBh
cnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCisgICAgICAgIGdyb3VwLmFkZG9wdGlvbignLS1wcmVm
ZXJlbmNlcycsIG1ldGF2YXI9KCd2YWx1ZTEnLCAndmFsdWUyJywgJ3ZhbHVlMycpLCBuYXJncz0z
KQorICAgICAgICBncm91cC5fYWRkb3B0aW9uKCItaCIsICItLWhlbHAiLCBhY3Rpb249InN0b3Jl
X3RydWUiLCBkZXN0PSJoZWxwIikKKyAgICAgICAgcGFyc2VyLnBhcnNlKFsnLWgnXSkKKyAgICAg
ICAgaGVscCA9IHBhcnNlci5vcHRwYXJzZXIuZm9ybWF0X2hlbHAoKQorICAgICAgICBhc3NlcnQg
Jy0tcHJlZmVyZW5jZXM9dmFsdWUxIHZhbHVlMiB2YWx1ZTMnIGluIGhlbHAKKworCitkZWYgdGVz
dF9hcmdjb21wbGV0ZSh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgaWYgbm90IHB5LnBhdGgu
bG9jYWwuc3lzZmluZCgnYmFzaCcpOgorICAgICAgICBweXRlc3Quc2tpcCgiYmFzaCBub3QgYXZh
aWxhYmxlIikKKyAgICBzY3JpcHQgPSBzdHIodGVzdGRpci50bXBkaXIuam9pbigidGVzdF9hcmdj
b21wbGV0ZSIpKQorICAgIHB5dGVzdF9iaW4gPSBzeXMuYXJndlswXQorICAgIGlmICJweXRlc3Qi
IG5vdCBpbiBvcy5wYXRoLmJhc2VuYW1lKHB5dGVzdF9iaW4pOgorICAgICAgICBweXRlc3Quc2tp
cCgibmVlZCB0byBiZSBydW4gd2l0aCBweXRlc3QgZXhlY3V0YWJsZSwgbm90ICVzIiAlIChweXRl
c3RfYmluLCkpCisKKyAgICB3aXRoIG9wZW4oc3RyKHNjcmlwdCksICd3JykgYXMgZnA6CisgICAg
ICAgICMgcmVkaXJlY3Qgb3V0cHV0IGZyb20gYXJnY29tcGxldGUgdG8gc3RkaW4gYW5kIHN0ZGVy
ciBpcyBub3QgdHJpdmlhbAorICAgICAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xLzEy
NTg5NDE5LzEzMDc5MDUKKyAgICAgICAgIyBzbyB3ZSB1c2UgYmFzaAorICAgICAgICBmcC53cml0
ZSgnQ09NUF9XT1JEQlJFQUtTPSIkQ09NUF9XT1JEQlJFQUtTIiAlcyA4PiYxIDk+JjInICUgcHl0
ZXN0X2JpbikKKyAgICAjIGFsdGVybmF0aXZlIHdvdWxkIGJlIGV4dGVuZWRlZCBUZXN0ZGlyLnty
dW4oKSxfcnVuKCkscG9wZW4oKX0gdG8gYmUgYWJsZQorICAgICMgdG8gaGFuZGxlIGEga2V5d29y
ZCBhcmd1bWVudCBlbnYgdGhhdCByZXBsYWNlcyBvcy5lbnZpcm9uIGluIHBvcGVuIG9yCisgICAg
IyBleHRlbmRzIHRoZSBjb3B5LCBhZHZhbnRhZ2U6IGNvdWxkIG5vdCBmb3JnZXQgdG8gcmVzdG9y
ZQorICAgIG1vbmtleXBhdGNoLnNldGVudignX0FSR0NPTVBMRVRFJywgIjEiKQorICAgIG1vbmtl
eXBhdGNoLnNldGVudignX0FSR0NPTVBMRVRFX0lGUycsICJceDBiIikKKyAgICBtb25rZXlwYXRj
aC5zZXRlbnYoJ0NPTVBfV09SREJSRUFLUycsICcgXFx0XFxuIlxcXCc+PD07fCYoOicpCisKKyAg
ICBhcmcgPSAnLS1mdScKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0NPTVBfTElORScsICJweXRl
c3QgIiArIGFyZykKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0NPTVBfUE9JTlQnLCBzdHIobGVu
KCJweXRlc3QgIiArIGFyZykpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVuKCdiYXNoJywgc3Ry
KHNjcmlwdCksIGFyZykKKyAgICBpZiByZXN1bHQucmV0ID09IDI1NToKKyAgICAgICAgIyBhcmdj
b21wbGV0ZSBub3QgZm91bmQKKyAgICAgICAgcHl0ZXN0LnNraXAoImFyZ2NvbXBsZXRlIG5vdCBh
dmFpbGFibGUiKQorICAgIGVsaWYgbm90IHJlc3VsdC5zdGRvdXQuc3RyKCk6CisgICAgICAgIHB5
dGVzdC5za2lwKCJiYXNoIHByb3ZpZGVkIG5vIG91dHB1dCwgYXJnY29tcGxldGUgbm90IGF2YWls
YWJsZT8iKQorICAgIGVsc2U6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
Ii0tZnVuY2FyZ3MiLCAiLS1mdWxsdHJhY2UiXSkKKyAgICBvcy5ta2RpcigndGVzdF9hcmdjb21w
bGV0ZS5kJykKKyAgICBhcmcgPSAndGVzdF9hcmdjJworICAgIG1vbmtleXBhdGNoLnNldGVudign
Q09NUF9MSU5FJywgInB5dGVzdCAiICsgYXJnKQorICAgIG1vbmtleXBhdGNoLnNldGVudignQ09N
UF9QT0lOVCcsIHN0cihsZW4oJ3B5dGVzdCAnICsgYXJnKSkpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW4oJ2Jhc2gnLCBzdHIoc2NyaXB0KSwgYXJnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbInRlc3RfYXJnY29tcGxldGUiLCAidGVzdF9hcmdjb21wbGV0ZS5kLyJdKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMTc0MmQxNDE1NTU1Y2Y5
NWJmY2M5ZDRiMzdiYzZlYjgzMmQyZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfcGFzdGViaW4ucHkKQEAgLTAsMCArMSwxMTcgQEAKKyMgZW5jb2Rpbmc6IHV0
Zi04Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0CisKKworY2xhc3MgVGVzdFBh
c3RlQ2FwdHVyZShvYmplY3QpOgorCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHBhc3Rl
YmlubGlzdChzZWxmLCBtb25rZXlwYXRjaCwgcmVxdWVzdCk6CisgICAgICAgIHBhc3RlYmlubGlz
dCA9IFtdCisgICAgICAgIHBsdWdpbiA9IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0
cGx1Z2luKCdwYXN0ZWJpbicpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGx1Z2luLCAn
Y3JlYXRlX25ld19wYXN0ZScsIHBhc3RlYmlubGlzdC5hcHBlbmQpCisgICAgICAgIHJldHVybiBw
YXN0ZWJpbmxpc3QKKworICAgIGRlZiB0ZXN0X2ZhaWxlZChzZWxmLCB0ZXN0ZGlyLCBwYXN0ZWJp
bmxpc3QpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAgICAgICAg
ICAgICBweXRlc3Quc2tpcCgiIikKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4odGVzdHBhdGgsICItLXBhc3RlPWZhaWxlZCIpCisgICAgICAgIGFzc2Vy
dCBsZW4ocGFzdGViaW5saXN0KSA9PSAxCisgICAgICAgIHMgPSBwYXN0ZWJpbmxpc3RbMF0KKyAg
ICAgICAgYXNzZXJ0IHMuZmluZCgiZGVmIHRlc3RfZmFpbCIpICE9IC0xCisgICAgICAgIGFzc2Vy
dCByZXByZWMuY291bnRvdXRjb21lcygpID09IFsxLCAxLCAxXQorCisgICAgZGVmIHRlc3RfYWxs
KHNlbGYsIHRlc3RkaXIsIHBhc3RlYmlubGlzdCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRl
c3RlciBpbXBvcnQgTGluZU1hdGNoZXIKKyAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVz
dF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZmFp
bCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9za2lw
KCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoIiIpCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoLCAiLS1wYXN0ZWJpbj1hbGwi
LCAnLXYnKQorICAgICAgICBhc3NlcnQgcmVwcmVjLmNvdW50b3V0Y29tZXMoKSA9PSBbMSwgMSwg
MV0KKyAgICAgICAgYXNzZXJ0IGxlbihwYXN0ZWJpbmxpc3QpID09IDEKKyAgICAgICAgY29udGVu
dHMgPSBwYXN0ZWJpbmxpc3RbMF0uZGVjb2RlKCd1dGYtOCcpCisgICAgICAgIG1hdGNoZXIgPSBM
aW5lTWF0Y2hlcihjb250ZW50cy5zcGxpdGxpbmVzKCkpCisgICAgICAgIG1hdGNoZXIuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAnKnRlc3RfcGFzcyBQQVNTRUQqJywKKyAgICAgICAgICAg
ICcqdGVzdF9mYWlsIEZBSUxFRConLAorICAgICAgICAgICAgJyp0ZXN0X3NraXAgU0tJUFBFRCon
LAorICAgICAgICAgICAgJyo9PSAxIGZhaWxlZCwgMSBwYXNzZWQsIDEgc2tpcHBlZCBpbiAqJwor
ICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfbm9uX2FzY2lpX3Bhc3RlX3RleHQoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgICIiIk1ha2Ugc3VyZSB0aGF0IHRleHQgd2hpY2ggY29udGFpbnMgbm9u
LWFzY2lpIGNoYXJhY3RlcnMgaXMgcGFzdGVkCisgICAgICAgIGNvcnJlY3RseS4gU2VlICMxMjE5
LgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfdW5pY29kZT0i
IiIKKyAgICAgICAgICAgICMgZW5jb2Rpbmc6IHV0Zi04CisgICAgICAgICAgICBkZWYgdGVzdCgp
OgorICAgICAgICAgICAgICAgIGFzc2VydCAn4pi6JyA9PSAxCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tcGFzdGViaW49YWxsJykKKyAgICAgICAg
aWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAzOgorICAgICAgICAgICAgZXhwZWN0ZWRfbXNnID0g
Iiphc3NlcnQgJ+KYuicgPT0gMSoiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHBlY3Rl
ZF9tc2cgPSAiKmFzc2VydCAnXFx4ZTJcXHg5OFxceGJhJyA9PSAxKiIKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgIGV4cGVjdGVkX21zZywKKyAgICAg
ICAgICAgICIqPT0gMSBmYWlsZWQgaW4gKiIsCisgICAgICAgICAgICAnKlNlbmRpbmcgaW5mb3Jt
YXRpb24gdG8gUGFzdGUgU2VydmljZSonLAorICAgICAgICBdKQorCisKK2NsYXNzIFRlc3RQYXN0
ZShvYmplY3QpOgorCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHBhc3RlYmluKHNlbGYs
IHJlcXVlc3QpOgorICAgICAgICByZXR1cm4gcmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5n
ZXRwbHVnaW4oJ3Bhc3RlYmluJykKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBtb2Nr
ZWRfdXJsb3BlbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgICIiIgorICAgICAgICBtb25r
ZXlwYXRjaCB0aGUgYWN0dWFsIHVybG9wZW4gY2FsbHMgZG9uZSBieSB0aGUgaW50ZXJuYWwgcGx1
Z2luCisgICAgICAgIGZ1bmN0aW9uIHRoYXQgY29ubmVjdHMgdG8gYnBhc3RlIHNlcnZpY2UuCisg
ICAgICAgICIiIgorICAgICAgICBjYWxscyA9IFtdCisKKyAgICAgICAgZGVmIG1vY2tlZCh1cmws
IGRhdGEpOgorICAgICAgICAgICAgY2FsbHMuYXBwZW5kKCh1cmwsIGRhdGEpKQorCisgICAgICAg
ICAgICBjbGFzcyBEdW1teUZpbGUob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgcmVhZChz
ZWxmKToKKyAgICAgICAgICAgICAgICAgICAgIyBwYXJ0IG9mIGh0bWwgb2YgYSBub3JtYWwgcmVz
cG9uc2UKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGInVmlldyA8YSBocmVmPSIvcmF3LzNj
MGM2NzUwYmQiPnJhdzwvYT4uJworICAgICAgICAgICAgcmV0dXJuIER1bW15RmlsZSgpCisKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAgICAgICAgIGltcG9ydCB1
cmxsaWIKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodXJsbGliLCAndXJsb3Blbics
IG1vY2tlZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGltcG9ydCB1cmxsaWIucmVxdWVz
dAorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih1cmxsaWIucmVxdWVzdCwgJ3VybG9w
ZW4nLCBtb2NrZWQpCisgICAgICAgIHJldHVybiBjYWxscworCisgICAgZGVmIHRlc3RfY3JlYXRl
X25ld19wYXN0ZShzZWxmLCBwYXN0ZWJpbiwgbW9ja2VkX3VybG9wZW4pOgorICAgICAgICByZXN1
bHQgPSBwYXN0ZWJpbi5jcmVhdGVfbmV3X3Bhc3RlKGInZnVsbC1wYXN0ZS1jb250ZW50cycpCisg
ICAgICAgIGFzc2VydCByZXN1bHQgPT0gJ2h0dHBzOi8vYnBhc3RlLm5ldC9zaG93LzNjMGM2NzUw
YmQnCisgICAgICAgIGFzc2VydCBsZW4obW9ja2VkX3VybG9wZW4pID09IDEKKyAgICAgICAgdXJs
LCBkYXRhID0gbW9ja2VkX3VybG9wZW5bMF0KKyAgICAgICAgYXNzZXJ0IHR5cGUoZGF0YSkgaXMg
Ynl0ZXMKKyAgICAgICAgbGV4ZXIgPSAncHl0aG9uMycgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9
PSAzIGVsc2UgJ3B5dGhvbicKKyAgICAgICAgYXNzZXJ0IHVybCA9PSAnaHR0cHM6Ly9icGFzdGUu
bmV0JworICAgICAgICBhc3NlcnQgJ2xleGVyPSVzJyAlIGxleGVyIGluIGRhdGEuZGVjb2RlKCkK
KyAgICAgICAgYXNzZXJ0ICdjb2RlPWZ1bGwtcGFzdGUtY29udGVudHMnIGluIGRhdGEuZGVjb2Rl
KCkKKyAgICAgICAgYXNzZXJ0ICdleHBpcnk9MXdlZWsnIGluIGRhdGEuZGVjb2RlKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wZGIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcGRiLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYTVjM2M1YmRiYWMyYmZjNTRlMGEzODcwNGZl
NjFhYTFkNGY4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cGRiLnB5CkBAIC0wLDAgKzEsNDA2IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBvcnQgcGxh
dGZvcm0KKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweXRlc3QKKworCitkZWYgcnVu
cGRiX2FuZF9nZXRfcmVwb3J0KHRlc3RkaXIsIHNvdXJjZSk6CisgICAgcCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZShzb3VyY2UpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNz
KCItLXBkYiIsIHApCisgICAgcmVwb3J0cyA9IHJlc3VsdC5yZXByZWMuZ2V0cmVwb3J0cygicHl0
ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDMsIHJl
cG9ydHMgICMgc2V0dXAvY2FsbC90ZWFyZG93bgorICAgIHJldHVybiByZXBvcnRzWzFdCisKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgY3VzdG9tX3BkYl9jYWxscygpOgorICAgIGNhbGxlZCA9IFtd
CisKKyAgICAjIGluc3RhbGwgZHVtbXkgZGVidWdnZXIgY2xhc3MgYW5kIHRyYWNrIHdoaWNoIG1l
dGhvZHMgd2VyZSBjYWxsZWQgb24gaXQKKyAgICBjbGFzcyBfQ3VzdG9tUGRiKG9iamVjdCk6Cisg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAg
Y2FsbGVkLmFwcGVuZCgiaW5pdCIpCisKKyAgICAgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAg
ICAgICAgY2FsbGVkLmFwcGVuZCgicmVzZXQiKQorCisgICAgICAgIGRlZiBpbnRlcmFjdGlvbihz
ZWxmLCAqYXJncyk6CisgICAgICAgICAgICBjYWxsZWQuYXBwZW5kKCJpbnRlcmFjdGlvbiIpCisK
KyAgICBfcHl0ZXN0Ll9DdXN0b21QZGIgPSBfQ3VzdG9tUGRiCisgICAgcmV0dXJuIGNhbGxlZAor
CisKK2NsYXNzIFRlc3RQREIob2JqZWN0KToKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRl
ZiBwZGJsaXN0KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBtb25rZXlwYXRjaCA9IHJlcXVlc3Qu
Z2V0Zml4dHVyZXZhbHVlKCJtb25rZXlwYXRjaCIpCisgICAgICAgIHBkYmxpc3QgPSBbXQorCisg
ICAgICAgIGRlZiBteXBkYigqYXJncyk6CisgICAgICAgICAgICBwZGJsaXN0LmFwcGVuZChhcmdz
KQorCisgICAgICAgIHBsdWdpbiA9IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1
Z2luKCdkZWJ1Z2dpbmcnKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBsdWdpbiwgJ3Bv
c3RfbW9ydGVtJywgbXlwZGIpCisgICAgICAgIHJldHVybiBwZGJsaXN0CisKKyAgICBkZWYgdGVz
dF9wZGJfb25fZmFpbChzZWxmLCB0ZXN0ZGlyLCBwZGJsaXN0KToKKyAgICAgICAgcmVwID0gcnVu
cGRiX2FuZF9nZXRfcmVwb3J0KHRlc3RkaXIsICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgYXNz
ZXJ0IHJlcC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IGxlbihwZGJsaXN0KSA9PSAxCisgICAgICAg
IHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2socGRibGlzdFswXVswXSkKKyAgICAgICAgYXNz
ZXJ0IHRiWy0xXS5uYW1lID09ICJ0ZXN0X2Z1bmMiCisKKyAgICBkZWYgdGVzdF9wZGJfb25feGZh
aWwoc2VsZiwgdGVzdGRpciwgcGRibGlzdCk6CisgICAgICAgIHJlcCA9IHJ1bnBkYl9hbmRfZ2V0
X3JlcG9ydCh0ZXN0ZGlyLCAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0ICJ4ZmFp
bCIgaW4gcmVwLmtleXdvcmRzCisgICAgICAgIGFzc2VydCBub3QgcGRibGlzdAorCisgICAgZGVm
IHRlc3RfcGRiX29uX3NraXAoc2VsZiwgdGVzdGRpciwgcGRibGlzdCk6CisgICAgICAgIHJlcCA9
IHJ1bnBkYl9hbmRfZ2V0X3JlcG9ydCh0ZXN0ZGlyLCAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBweXRl
c3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCByZXAuc2tpcHBl
ZAorICAgICAgICBhc3NlcnQgbGVuKHBkYmxpc3QpID09IDAKKworICAgIGRlZiB0ZXN0X3BkYl9v
bl9CZGJRdWl0KHNlbGYsIHRlc3RkaXIsIHBkYmxpc3QpOgorICAgICAgICByZXAgPSBydW5wZGJf
YW5kX2dldF9yZXBvcnQodGVzdGRpciwgIiIiCisgICAgICAgICAgICBpbXBvcnQgYmRiCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgYmRiLkJkYlF1
aXQKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgcmVwLmZhaWxlZAorICAgICAgICBhc3Nl
cnQgbGVuKHBkYmxpc3QpID09IDAKKworICAgIGRlZiB0ZXN0X3BkYl9pbnRlcmFjdGlvbihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgaSA9IDAKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgaSA9PSAxCisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNw
YXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiLipkZWYg
dGVzdF8xIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIuKmkgPSAwIikKKyAgICAgICAgY2hpbGQu
ZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICByZXN0ID0g
Y2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCisgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGlu
IHJlc3QKKyAgICAgICAgYXNzZXJ0ICJkZWYgdGVzdF8xIiBub3QgaW4gcmVzdAorICAgICAgICBz
ZWxmLmZsdXNoKGNoaWxkKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBmbHVzaChjaGls
ZCk6CisgICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICdEYXJ3aW4nOgorICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgIGlmIGNoaWxkLmlzYWxpdmUoKToKKyAgICAgICAgICAgIGNoaWxk
LndhaXQoKQorCisgICAgZGVmIHRlc3RfcGRiX3VuaXR0ZXN0X3Bvc3Rtb3J0ZW0oc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHVuaXR0ZXN0CisgICAgICAgICAgICBjbGFzcyBCbHViKHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICAgICAgICAgICAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuZmlsZW5hbWUgPSBOb25lCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZmFsc2Uo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSAnZGVidWcnICsgJy5t
ZScKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBj
aGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAlcyIgJSBwMSkKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCcoUGRiKScpCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCdwIHNlbGYuZmlsZW5h
bWUnKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQo
KS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgJ2RlYnVnLm1lJyBpbiByZXN0CisgICAg
ICAgIHNlbGYuZmx1c2goY2hpbGQpCisKKyAgICBkZWYgdGVzdF9wZGJfdW5pdHRlc3Rfc2tpcChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBmb3IgaXNzdWUgIzIxMzciIiIKKyAgICAg
ICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgdW5pdHRl
c3QKKyAgICAgICAgICAgIEB1bml0dGVzdC5za2lwSWYoVHJ1ZSwgJ1NraXBwaW5nIGFsc28gd2l0
aCBwZGIgYWN0aXZlJykKKyAgICAgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIu
c3Bhd25fcHl0ZXN0KCItcnMgLS1wZGIgJXMiICUgcDEpCisgICAgICAgIGNoaWxkLmV4cGVjdCgn
U2tpcHBpbmcgYWxzbyB3aXRoIHBkYiBhY3RpdmUnKQorICAgICAgICBjaGlsZC5leHBlY3QoJzEg
c2tpcHBlZCBpbicpCisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBzZWxmLmZsdXNo
KGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX2NhcHR1cmUoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
ZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgIHByaW50KCJnZXRyZWt0IikKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3Rk
aXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAlcyIgJSBwMSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJn
ZXRyZWt0IikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLnNl
bmRlb2YoKQorICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCisgICAg
ICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJnZXRyZWt0IiBu
b3QgaW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRi
X2ludGVyYWN0aW9uX2V4Y2VwdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBkZWYgZ2xvYmFsZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGds
b2JhbGZ1bmMpCisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5
dGVzdCgiLS1wZGIgJXMiICUgcDEpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiLipkZWYgdGVzdF8x
IikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIuKnB5dGVzdC5yYWlzZXMuKmdsb2JhbGZ1bmMiKQor
ICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImds
b2JhbGZ1bmMiKQorICAgICAgICBjaGlsZC5leHBlY3QoIi4qZnVuY3Rpb24iKQorICAgICAgICBj
aGlsZC5zZW5kZW9mKCkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIxIGZhaWxlZCIpCisgICAgICAg
IHNlbGYuZmx1c2goY2hpbGQpCisKKyAgICBkZWYgdGVzdF9wZGJfaW50ZXJhY3Rpb25fb25fY29s
bGVjdGlvbl9pc3N1ZTE4MShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB4eHgK
KyAgICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBk
YiAlcyIgJSBwMSkKKyAgICAgICAgIyBjaGlsZC5leHBlY3QoIi4qaW1wb3J0IHB5dGVzdC4qIikK
KyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQor
ICAgICAgICBjaGlsZC5leHBlY3QoIjEgZXJyb3IiKQorICAgICAgICBzZWxmLmZsdXNoKGNoaWxk
KQorCisgICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX29uX2ludGVybmFsX2Vycm9yKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbCgpOgorICAgICAgICAgICAgICAgIDAvMAorICAg
ICAgICAiIiIpCisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mdW5j
KCk6IHBhc3MiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAl
cyIgJSBwMSkKKyAgICAgICAgIyBjaGlsZC5leHBlY3QoIi4qaW1wb3J0IHB5dGVzdC4qIikKKyAg
ICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAg
ICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX2Nh
cHR1cmluZ19zaW1wbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRl
c3RfMSgpOgorICAgICAgICAgICAgICAgIGkgPSAwCisgICAgICAgICAgICAgICAgcHJpbnQgKCJo
ZWxsbzE3IikKKyAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAg
ICAgICB4ID0gMworICAgICAgICAiIiIpCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9w
eXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQorICAgICAgICBj
aGlsZC5leHBlY3QoInggPSAzIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAg
ICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgi
dXRmLTgiKQorICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CisgICAgICAgIGFzc2Vy
dCAiZGVmIHRlc3RfMSIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgImhlbGxvMTciIGluIHJlc3Qg
ICMgb3V0IGlzIGNhcHR1cmVkCisgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCisKKyAgICBkZWYg
dGVzdF9wZGJfc2V0X3RyYWNlX2ludGVyY2VwdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcGRiCisgICAg
ICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgcGRiLnNldF90cmFjZSgpCisg
ICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEp
KQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgi
KFBkYikiKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgcmVzdCA9IGNoaWxkLnJl
YWQoKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0Cisg
ICAgICAgIGFzc2VydCAicmVhZGluZyBmcm9tIHN0ZGluIHdoaWxlIG91dHB1dCIgbm90IGluIHJl
c3QKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9hbmRfY2Fw
c3lzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoY2Fwc3lz
KToKKyAgICAgICAgICAgICAgICBwcmludCAoImhlbGxvMSIpCisgICAgICAgICAgICAgICAgcHl0
ZXN0LnNldF90cmFjZSgpCisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNw
YXduX3B5dGVzdChzdHIocDEpKQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMSIpCisgICAg
ICAgIGNoaWxkLnNlbmQoImNhcHN5cy5yZWFkb3V0ZXJyKClcbiIpCisgICAgICAgIGNoaWxkLmV4
cGVjdCgiaGVsbG8xIikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLnJl
YWQoKQorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3Rfc2V0X3RyYWNl
X2NhcHR1cmluZ19hZnRlcndhcmRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBwZGIuc2V0X3RyYWNlKCkKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBwcmludCAoImhlbGxvIikKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5z
cGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQorICAg
ICAgICBjaGlsZC5zZW5kKCJjXG4iKQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMiIpCisg
ICAgICAgIGNoaWxkLmV4cGVjdCgiQ2FwdHVyZWQiKQorICAgICAgICBjaGlsZC5leHBlY3QoImhl
bGxvIikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLnJlYWQoKQorICAg
ICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX2Rv
Y3Rlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIGZ1bmN0aW9uXzEo
KToKKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICA+Pj4gaSA9IDAKKyAgICAg
ICAgICAgICAgICA+Pj4gYXNzZXJ0IGkgPT0gMQorICAgICAgICAgICAgICAgICcnJworICAgICAg
ICAiIiIpCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tZG9jdGVzdC1t
b2R1bGVzIC0tcGRiICVzIiAlIHAxKQorICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKKyAg
ICAgICAgY2hpbGQuc2VuZGxpbmUoJ2knKQorICAgICAgICBjaGlsZC5leHBlY3QoIjAiKQorICAg
ICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAg
ICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0ICIx
IGZhaWxlZCIgaW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRl
c3RfcGRiX2ludGVyYWN0aW9uX2NhcHR1cmluZ190d2ljZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgaSA9IDAKKyAgICAg
ICAgICAgICAgICBwcmludCAoImhlbGxvMTciKQorICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRf
dHJhY2UoKQorICAgICAgICAgICAgICAgIHggPSAzCisgICAgICAgICAgICAgICAgcHJpbnQgKCJo
ZWxsbzE4IikKKyAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAg
ICAgICB4ID0gNAorICAgICAgICAiIiIpCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9w
eXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQorICAgICAgICBj
aGlsZC5leHBlY3QoInggPSAzIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAg
ICAgIGNoaWxkLnNlbmRsaW5lKCdjJykKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gNCIpCisg
ICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29k
ZSgidXRmOCIpCisgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNz
ZXJ0ICJkZWYgdGVzdF8xIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiaGVsbG8xNyIgaW4gcmVz
dCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAgICAgICAgYXNzZXJ0ICJoZWxsbzE4IiBpbiByZXN0ICAj
IG91dCBpcyBjYXB0dXJlZAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRl
c3RfcGRiX3VzZWRfb3V0c2lkZV90ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAgICAgeCA9IDUKKyAgICAgICAgIiIiKQor
ICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd24oIiVzICVzIiAlIChzeXMuZXhlY3V0YWJsZSwg
cDEpKQorICAgICAgICBjaGlsZC5leHBlY3QoInggPSA1IikKKyAgICAgICAgY2hpbGQuc2VuZGVv
ZigpCisgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCisKKyAgICBkZWYgdGVzdF9wZGJfdXNlZF9p
bl9nZW5lcmF0ZV90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBweXRlc3Qu
c2V0X3RyYWNlKCkKKyAgICAgICAgICAgICAgICB4ID0gNQorICAgICAgICAgICAgZGVmIHRlc3Rf
Zm9vKGEpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBjaGls
ZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAgICAgIGNoaWxkLmV4cGVjdCgi
eCA9IDUiKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgc2VsZi5mbHVzaChjaGls
ZCkKKworICAgIGRlZiB0ZXN0X3BkYl9jb2xsZWN0aW9uX2ZhaWx1cmVfaXNfc2hvd24oc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiInh4eCAiIiIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi0tcGRiIiwgcDEp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKk5h
bWVFcnJvcip4eHgqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQorCisg
ICAgZGVmIHRlc3RfZW50ZXJfcGRiX2hvb2tfaXNfY2FsbGVkKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZW50
ZXJfcGRiKGNvbmZpZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZy50ZXN0aW5nX3Zl
cmlmaWNhdGlvbiA9PSAnY29uZmlndXJlZCcKKyAgICAgICAgICAgICAgICBwcmludCAnZW50ZXJf
cGRiX2hvb2snCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Cisg
ICAgICAgICAgICAgICAgY29uZmlnLnRlc3RpbmdfdmVyaWZpY2F0aW9uID0gJ2NvbmZpZ3VyZWQn
CisgICAgICAgICIiIikKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAg
ICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAiIiIpCisgICAgICAgIGNo
aWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0
KCJlbnRlcl9wZGJfaG9vayIpCisgICAgICAgIGNoaWxkLnNlbmQoJ2NcbicpCisgICAgICAgIGNo
aWxkLnNlbmRlb2YoKQorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3Rf
cGRiX2N1c3RvbV9jbHMoc2VsZiwgdGVzdGRpciwgY3VzdG9tX3BkYl9jYWxscyk6CisgICAgICAg
IHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiInh4eCAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X2lucHJvY2VzcygKKyAgICAgICAgICAgICItLXBkYiIsICItLXBkYmNs
cz1fcHl0ZXN0Ol9DdXN0b21QZGIiLCBwMSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICIqTmFtZUVycm9yKnh4eCoiLAorICAgICAgICAgICAgIiox
IGVycm9yKiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCBjdXN0b21fcGRiX2NhbGxzID09
IFsiaW5pdCIsICJyZXNldCIsICJpbnRlcmFjdGlvbiJdCisKKyAgICBkZWYgdGVzdF9wZGJfY3Vz
dG9tX2Nsc193aXRob3V0X3BkYihzZWxmLCB0ZXN0ZGlyLCBjdXN0b21fcGRiX2NhbGxzKToKKyAg
ICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIieHh4ICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKAorICAgICAgICAgICAgIi0tcGRiY2xzPV9w
eXRlc3Q6X0N1c3RvbVBkYiIsIHAxKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIipOYW1lRXJyb3IqeHh4KiIsCisgICAgICAgICAgICAiKjEgZXJy
b3IqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IGN1c3RvbV9wZGJfY2FsbHMgPT0gW10K
KworICAgIGRlZiB0ZXN0X3BkYl9jdXN0b21fY2xzX3dpdGhfc2V0dHJhY2Uoc2VsZiwgdGVzdGRp
ciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoY3VzdG9tX3BkYj0i
IiIKKyAgICAgICAgICAgIGNsYXNzIEN1c3RvbVBkYihvYmplY3QpOgorICAgICAgICAgICAgICAg
IGRlZiBzZXRfdHJhY2UoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICAgICAgcHJp
bnQgJ2N1c3RvbSBzZXRfdHJhY2U+JworICAgICAgICAgIiIiKQorICAgICAgICBwMSA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNldF90cmFjZSgpCisg
ICAgICAgICIiIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdQWVRIT05QQVRIJywgc3Ry
KHRlc3RkaXIudG1wZGlyKSkKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgi
LS1wZGJjbHM9Y3VzdG9tX3BkYjpDdXN0b21QZGIgJXMiICUgc3RyKHAxKSkKKworICAgICAgICBj
aGlsZC5leHBlY3QoJ2N1c3RvbSBzZXRfdHJhY2U+JykKKyAgICAgICAgaWYgY2hpbGQuaXNhbGl2
ZSgpOgorICAgICAgICAgICAgY2hpbGQud2FpdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9w
bHVnaW5tYW5hZ2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxOTIxNzZlOGE4ZDJmN2NiOGZhZDMwODZhNmVj
YzI1OWZmZmU0MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cGx1Z2lubWFuYWdlci5weQpAQCAtMCwwICsxLDM2MSBAQAorIyBlbmNvZGluZzogVVRGLTgKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBweQoraW1wb3J0IG9zCisKK2Zyb20gX3B5dGVz
dC5jb25maWcgaW1wb3J0IGdldF9jb25maWcsIFB5dGVzdFBsdWdpbk1hbmFnZXIKK2Zyb20gX3B5
dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQsIFNlc3Npb24KKworCitAcHl0
ZXN0LmZpeHR1cmUKK2RlZiBweXRlc3RwbSgpOgorICAgIHJldHVybiBQeXRlc3RQbHVnaW5NYW5h
Z2VyKCkKKworCitjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVjdCk6Cisg
ICAgZGVmIHRlc3RfYWRkaG9va3NfY29uZnRlc3RwbHVnaW4oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZShuZXdob29rcz0iIiIKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfbXlob29rKHh5eik6CisgICAgICAgICAgICAgICAgIm5ldyBob29rIgorICAgICAgICAiIiIp
CisgICAgICAgIGNvbmYgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBzeXMgOyBzeXMucGF0aC5pbnNlcnQoMCwgJy4nKQorICAgICAgICAgICAgaW1wb3J0IG5l
d2hvb2tzCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpOgor
ICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIuYWRkaG9va3MobmV3aG9va3MpCisgICAgICAg
ICAgICBkZWYgcHl0ZXN0X215aG9vayh4eXopOgorICAgICAgICAgICAgICAgIHJldHVybiB4eXog
KyAxCisgICAgICAgICIiIikKKyAgICAgICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisgICAgICAg
IHBtID0gY29uZmlnLnBsdWdpbm1hbmFnZXIKKyAgICAgICAgcG0uaG9vay5weXRlc3RfYWRkaG9v
a3MuY2FsbF9oaXN0b3JpYygKKyAgICAgICAgICAgIGt3YXJncz1kaWN0KHBsdWdpbm1hbmFnZXI9
Y29uZmlnLnBsdWdpbm1hbmFnZXIpKQorICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5faW1w
b3J0Y29uZnRlc3QoY29uZikKKyAgICAgICAgIyBwcmludChjb25maWcucGx1Z2lubWFuYWdlci5n
ZXRfcGx1Z2lucygpKQorICAgICAgICByZXMgPSBjb25maWcuaG9vay5weXRlc3RfbXlob29rKHh5
ej0xMCkKKyAgICAgICAgYXNzZXJ0IHJlcyA9PSBbMTFdCisKKyAgICBkZWYgdGVzdF9hZGRob29r
c19ub2hvb2tzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkaG9v
a3MocGx1Z2lubWFuYWdlcik6CisgICAgICAgICAgICAgICAgcGx1Z2lubWFuYWdlci5hZGRob29r
cyhzeXMpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoKQor
ICAgICAgICBhc3NlcnQgcmVzLnJldCAhPSAwCisgICAgICAgIHJlcy5zdGRlcnIuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICAgICAiKmRpZCBub3QgZmluZCpzeXMqIgorICAgICAgICBdKQorCisg
ICAgZGVmIHRlc3RfbmFtZXNwYWNlX2Vhcmx5X2Zyb21faW1wb3J0KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSBweXRl
c3QgaW1wb3J0IEl0ZW0KKyAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCBJdGVtIGFzIEl0
ZW0yCisgICAgICAgICAgICBhc3NlcnQgSXRlbSBpcyBJdGVtMgorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2RvX2V4dF9uYW1lc3BhY2Uoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVz
dF9uYW1lc3BhY2UoKToKKyAgICAgICAgICAgICAgICByZXR1cm4geydoZWxsbyc6ICd3b3JsZCd9
CisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCBoZWxsbworICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
aGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgIGFzc2VydCAnaGVsbG8nIGluIHB5dGVz
dC5fX2FsbF9fCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHApCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVm
IHRlc3RfZG9fb3B0aW9uX3Bvc3Rpbml0aWFsaXplKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBj
b25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNh
dHRyKGNvbmZpZy5vcHRpb24sICd0ZXN0MTIzJykKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAg
ICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbignLS10ZXN0MTIzJywgYWN0aW9uPSJzdG9yZV90
cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlKQorICAgICAgICAiIiIpCisg
ICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9pbXBvcnRjb25mdGVzdChwKQorICAgICAgICBh
c3NlcnQgY29uZmlnLm9wdGlvbi50ZXN0MTIzCisKKyAgICBkZWYgdGVzdF9jb25maWd1cmUoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAg
ICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAg
IGRlZiBweXRlc3RfY29uZmlndXJlKHNlbGYsIGNvbmZpZyk6CisgICAgICAgICAgICAgICAgdmFs
dWVzLmFwcGVuZChzZWxmKQorCisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVy
KEEoKSkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDAKKyAgICAgICAgY29uZmlnLl9k
b19jb25maWd1cmUoKQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICBj
b25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihBKCkpICAjIGxlYWRzIHRvIGEgY29uZmlndXJl
ZCgpIHBsdWdpbgorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgorICAgICAgICBhc3Nl
cnQgdmFsdWVzWzBdICE9IHZhbHVlc1sxXQorCisgICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29u
ZmlndXJlKCkKKyAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoQSgpKQorICAg
ICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgorCisgICAgZGVmIHRlc3RfaG9va190cmFjaW5n
KHNlbGYpOgorICAgICAgICBweXRlc3RwbSA9IGdldF9jb25maWcoKS5wbHVnaW5tYW5hZ2VyICAj
IGZ1bGx5IGluaXRpYWxpemVkIHdpdGggcGx1Z2lucworICAgICAgICBzYXZlaW5kZW50ID0gW10K
KworICAgICAgICBjbGFzcyBhcGkxKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3Bs
dWdpbl9yZWdpc3RlcmVkKHNlbGYpOgorICAgICAgICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5k
KHB5dGVzdHBtLnRyYWNlLnJvb3QuaW5kZW50KQorCisgICAgICAgIGNsYXNzIGFwaTIob2JqZWN0
KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQoc2VsZik6CisgICAg
ICAgICAgICAgICAgc2F2ZWluZGVudC5hcHBlbmQocHl0ZXN0cG0udHJhY2Uucm9vdC5pbmRlbnQp
CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAgICAgICAgdmFsdWVzID0g
W10KKyAgICAgICAgcHl0ZXN0cG0udHJhY2Uucm9vdC5zZXR3cml0ZXIodmFsdWVzLmFwcGVuZCkK
KyAgICAgICAgdW5kbyA9IHB5dGVzdHBtLmVuYWJsZV90cmFjaW5nKCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgaW5kZW50ID0gcHl0ZXN0cG0udHJhY2Uucm9vdC5pbmRlbnQKKyAgICAgICAg
ICAgIHAgPSBhcGkxKCkKKyAgICAgICAgICAgIHB5dGVzdHBtLnJlZ2lzdGVyKHApCisgICAgICAg
ICAgICBhc3NlcnQgcHl0ZXN0cG0udHJhY2Uucm9vdC5pbmRlbnQgPT0gaW5kZW50CisgICAgICAg
ICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPj0gMgorICAgICAgICAgICAgYXNzZXJ0ICdweXRlc3Rf
cGx1Z2luX3JlZ2lzdGVyZWQnIGluIHZhbHVlc1swXQorICAgICAgICAgICAgYXNzZXJ0ICdmaW5p
c2gnIGluIHZhbHVlc1sxXQorCisgICAgICAgICAgICB2YWx1ZXNbOl0gPSBbXQorICAgICAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgICAgIHB5dGVz
dHBtLnJlZ2lzdGVyKGFwaTIoKSkKKyAgICAgICAgICAgIGFzc2VydCBweXRlc3RwbS50cmFjZS5y
b290LmluZGVudCA9PSBpbmRlbnQKKyAgICAgICAgICAgIGFzc2VydCBzYXZlaW5kZW50WzBdID4g
aW5kZW50CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICB1bmRvKCkKKworICAgIGRlZiB0
ZXN0X2hvb2tfcHJveHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgdGhlIGdldGhv
b2twcm94eSBmdW5jdGlvbigjMjAxNikiIiIKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJz
ZWNvbmZpZygpCisgICAgICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCoqeworICAgICAgICAgICAgJ3Rlc3RzL2NvbmZ0ZXN0LnB5JzogJycs
CisgICAgICAgICAgICAndGVzdHMvc3ViZGlyL2NvbmZ0ZXN0LnB5JzogJycsCisgICAgICAgIH0p
CisKKyAgICAgICAgY29uZnRlc3QxID0gdGVzdGRpci50bXBkaXIuam9pbigndGVzdHMvY29uZnRl
c3QucHknKQorICAgICAgICBjb25mdGVzdDIgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCd0ZXN0cy9z
dWJkaXIvY29uZnRlc3QucHknKQorCisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9pbXBv
cnRjb25mdGVzdChjb25mdGVzdDEpCisgICAgICAgIGlob29rX2EgPSBzZXNzaW9uLmdldGhvb2tw
cm94eSh0ZXN0ZGlyLnRtcGRpci5qb2luKCd0ZXN0cycpKQorICAgICAgICBhc3NlcnQgaWhvb2tf
YSBpcyBub3QgTm9uZQorICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5faW1wb3J0Y29uZnRl
c3QoY29uZnRlc3QyKQorICAgICAgICBpaG9va19iID0gc2Vzc2lvbi5nZXRob29rcHJveHkodGVz
dGRpci50bXBkaXIuam9pbigndGVzdHMnKSkKKyAgICAgICAgYXNzZXJ0IGlob29rX2EgaXMgbm90
IGlob29rX2IKKworICAgIGRlZiB0ZXN0X3dhcm5fb25fZGVwcmVjYXRlZF9hZGRob29rcyhzZWxm
LCBweXRlc3RwbSk6CisgICAgICAgIHdhcm5pbmdzID0gW10KKworICAgICAgICBjbGFzcyBnZXRf
d2FybmluZ3Mob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxm
LCBjb2RlLCBmc2xvY2F0aW9uLCBtZXNzYWdlLCBub2RlaWQpOgorICAgICAgICAgICAgICAgIHdh
cm5pbmdzLmFwcGVuZChtZXNzYWdlKQorCisgICAgICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgor
ICAgICAgICAgICAgZGVmIHB5dGVzdF90ZXN0aG9vaygpOgorICAgICAgICAgICAgICAgIHBhc3MK
KworICAgICAgICBweXRlc3RwbS5yZWdpc3RlcihnZXRfd2FybmluZ3MoKSkKKyAgICAgICAgYmVm
b3JlID0gbGlzdCh3YXJuaW5ncykKKyAgICAgICAgcHl0ZXN0cG0uYWRkaG9va3MoUGx1Z2luKCkp
CisgICAgICAgIGFzc2VydCBsZW4od2FybmluZ3MpID09IGxlbihiZWZvcmUpICsgMQorICAgICAg
ICBhc3NlcnQgImRlcHJlY2F0ZWQiIGluIHdhcm5pbmdzWy0xXQorCisKK2RlZiB0ZXN0X25hbWVz
cGFjZV9oYXNfZGVmYXVsdF9hbmRfZW52X3BsdWdpbnModGVzdGRpcik6CisgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBweXRlc3Qu
bWFyaworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQorICAgIGFz
c2VydCByZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF9kZWZhdWx0X21hcmtlcnModGVzdGRp
cik6CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbWFya2VycyIpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIip0cnlmaXJzdCpmaXJzdCoiLAor
ICAgICAgICAiKnRyeWxhc3QqbGFzdCoiLAorICAgIF0pCisKKworZGVmIHRlc3RfaW1wb3J0cGx1
Z2luX2Vycm9yX21lc3NhZ2UodGVzdGRpciwgcHl0ZXN0cG0pOgorICAgICIiIkRvbid0IGhpZGUg
aW1wb3J0IGVycm9ycyB3aGVuIGltcG9ydGluZyBwbHVnaW5zIGFuZCBwcm92aWRlCisgICAgYW4g
ZWFzeSB0byBkZWJ1ZyBtZXNzYWdlLgorCisgICAgU2VlICMzNzUgYW5kICMxOTk4LgorICAgICIi
IgorICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCh0ZXN0ZGlyLnRtcGRpcikKKyAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUocXdlPSIiIgorICAgICAgICAjIGVuY29kaW5nOiBVVEYtOAorICAgICAgICBk
ZWYgdGVzdF90cmFjZWJhY2soKToKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKHUnTm90
IHBvc3NpYmxlIHRvIGltcG9ydDog4pi6JykKKyAgICAgICAgdGVzdF90cmFjZWJhY2soKQorICAg
ICIiIikKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGV4Y2luZm86Cisg
ICAgICAgIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4oInF3ZSIpCisKKyAgICBleHBlY3RlZF9tZXNz
YWdlID0gJy4qRXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAicXdlIjogTm90IHBvc3NpYmxlIHRvIGlt
cG9ydDogLicKKyAgICBleHBlY3RlZF90cmFjZWJhY2sgPSAiLippbiB0ZXN0X3RyYWNlYmFjayIK
KyAgICBhc3NlcnQgcHkuc3RkLnJlLm1hdGNoKGV4cGVjdGVkX21lc3NhZ2UsIHN0cihleGNpbmZv
LnZhbHVlKSkKKyAgICBhc3NlcnQgcHkuc3RkLnJlLm1hdGNoKGV4cGVjdGVkX3RyYWNlYmFjaywg
c3RyKGV4Y2luZm8udHJhY2ViYWNrWy0xXSkpCisKKworY2xhc3MgVGVzdFB5dGVzdFBsdWdpbk1h
bmFnZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9pbXBvcnRlZF9tb2R1bGVzKHNl
bGYpOgorICAgICAgICBwbSA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgICAgICBtb2QgPSBw
eS5zdGQudHlwZXMuTW9kdWxlVHlwZSgieC55LnB5dGVzdF9oZWxsbyIpCisgICAgICAgIHBtLnJl
Z2lzdGVyKG1vZCkKKyAgICAgICAgYXNzZXJ0IHBtLmlzX3JlZ2lzdGVyZWQobW9kKQorICAgICAg
ICB2YWx1ZXMgPSBwbS5nZXRfcGx1Z2lucygpCisgICAgICAgIGFzc2VydCBtb2QgaW4gdmFsdWVz
CisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInBtLnJlZ2lzdGVyKG1vZCkiKQor
ICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJkYTogcG0ucmVnaXN0ZXIobW9k
KSkKKyAgICAgICAgIyBhc3NlcnQgbm90IHBtLmlzX3JlZ2lzdGVyZWQobW9kMikKKyAgICAgICAg
YXNzZXJ0IHBtLmdldF9wbHVnaW5zKCkgPT0gdmFsdWVzCisKKyAgICBkZWYgdGVzdF9jYW5vbmlj
YWxfaW1wb3J0KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9kID0gcHkuc3RkLnR5cGVz
Lk1vZHVsZVR5cGUoInB5dGVzdF94eXoiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKHB5
LnN0ZC5zeXMubW9kdWxlcywgJ3B5dGVzdF94eXonLCBtb2QpCisgICAgICAgIHBtID0gUHl0ZXN0
UGx1Z2luTWFuYWdlcigpCisgICAgICAgIHBtLmltcG9ydF9wbHVnaW4oJ3B5dGVzdF94eXonKQor
ICAgICAgICBhc3NlcnQgcG0uZ2V0X3BsdWdpbigncHl0ZXN0X3h5eicpID09IG1vZAorICAgICAg
ICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChtb2QpCisKKyAgICBkZWYgdGVzdF9jb25zaWRlcl9t
b2R1bGUoc2VsZiwgdGVzdGRpciwgcHl0ZXN0cG0pOgorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhp
bnNlcnQoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocHl0ZXN0X3AxPSIjIikKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKHB5dGVzdF9wMj0iIyIpCisgICAgICAgIG1vZCA9IHB5LnN0
ZC50eXBlcy5Nb2R1bGVUeXBlKCJ0ZW1wIikKKyAgICAgICAgbW9kLnB5dGVzdF9wbHVnaW5zID0g
WyJweXRlc3RfcDEiLCAicHl0ZXN0X3AyIl0KKyAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfbW9k
dWxlKG1vZCkKKyAgICAgICAgYXNzZXJ0IHB5dGVzdHBtLmdldF9wbHVnaW4oInB5dGVzdF9wMSIp
Ll9fbmFtZV9fID09ICJweXRlc3RfcDEiCisgICAgICAgIGFzc2VydCBweXRlc3RwbS5nZXRfcGx1
Z2luKCJweXRlc3RfcDIiKS5fX25hbWVfXyA9PSAicHl0ZXN0X3AyIgorCisgICAgZGVmIHRlc3Rf
Y29uc2lkZXJfbW9kdWxlX2ltcG9ydF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHB5
dGVzdHBtID0gZ2V0X2NvbmZpZygpLnBsdWdpbm1hbmFnZXIKKyAgICAgICAgbW9kID0gcHkuc3Rk
LnR5cGVzLk1vZHVsZVR5cGUoIngiKQorICAgICAgICBtb2QucHl0ZXN0X3BsdWdpbnMgPSAicHl0
ZXN0X2EiCisgICAgICAgIGFwbHVnaW4gPSB0ZXN0ZGlyLm1ha2VweWZpbGUocHl0ZXN0X2E9IiMi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLm1ha2VfaG9va19yZWNvcmRlcihweXRlc3RwbSkK
KyAgICAgICAgIyBzeXNwYXRoLnByZXBlbmQoYXBsdWdpbi5kaXJwYXRoKCkpCisgICAgICAgIHB5
LnN0ZC5zeXMucGF0aC5pbnNlcnQoMCwgc3RyKGFwbHVnaW4uZGlycGF0aCgpKSkKKyAgICAgICAg
cHl0ZXN0cG0uY29uc2lkZXJfbW9kdWxlKG1vZCkKKyAgICAgICAgY2FsbCA9IHJlcHJlYy5nZXRj
YWxsKHB5dGVzdHBtLmhvb2sucHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkLm5hbWUpCisgICAgICAg
IGFzc2VydCBjYWxsLnBsdWdpbi5fX25hbWVfXyA9PSAicHl0ZXN0X2EiCisKKyAgICAgICAgIyBj
aGVjayB0aGF0IGl0IGlzIG5vdCByZWdpc3RlcmVkIHR3aWNlCisgICAgICAgIHB5dGVzdHBtLmNv
bnNpZGVyX21vZHVsZShtb2QpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0
ZXN0X3BsdWdpbl9yZWdpc3RlcmVkIikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEK
KworICAgIGRlZiB0ZXN0X2NvbnNpZGVyX2Vudl9mYWlsc190b19pbXBvcnQoc2VsZiwgbW9ua2V5
cGF0Y2gsIHB5dGVzdHBtKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdQWVRFU1RfUExV
R0lOUycsICdub25leGlzdGluZycsIHByZXBlbmQ9IiwiKQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfZW52KCkK
KworICAgIGRlZiB0ZXN0X3BsdWdpbl9za2lwKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZShza2lwcGluZzE9IiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8iKQorICAgICAg
ICAiIiIpCisgICAgICAgIHAuY29weShwLmRpcnBhdGgoInNraXBwaW5nMi5weSIpKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEVTVF9QTFVHSU5TIiwgInNraXBwaW5nMiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnciLCAiLXAiLCAic2tpcHBpbmcxIiwg
c3lzcGF0aGluc2VydD1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05P
VEVTVFNDT0xMRUNURUQKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqc2tpcHBlZCBwbHVnaW4qc2tpcHBpbmcxKmhlbGxvKiIsCisgICAgICAgICAg
ICAiKnNraXBwZWQgcGx1Z2luKnNraXBwaW5nMipoZWxsbyoiLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3RfY29uc2lkZXJfZW52X3BsdWdpbl9pbnN0YW50aWF0aW9uKHNlbGYsIHRlc3RkaXIs
IG1vbmtleXBhdGNoLCBweXRlc3RwbSk6CisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh4eTEyMz0iIyIpCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGl0ZW0ob3MuZW52aXJvbiwgJ1BZVEVTVF9QTFVHSU5TJywgJ3h5MTIzJykKKyAgICAg
ICAgbDEgPSBsZW4ocHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKSkKKyAgICAgICAgcHl0ZXN0cG0uY29u
c2lkZXJfZW52KCkKKyAgICAgICAgbDIgPSBsZW4ocHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKSkKKyAg
ICAgICAgYXNzZXJ0IGwyID09IGwxICsgMQorICAgICAgICBhc3NlcnQgcHl0ZXN0cG0uZ2V0X3Bs
dWdpbigneHkxMjMnKQorICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9lbnYoKQorICAgICAgICBs
MyA9IGxlbihweXRlc3RwbS5nZXRfcGx1Z2lucygpKQorICAgICAgICBhc3NlcnQgbDIgPT0gbDMK
KworICAgIGRlZiB0ZXN0X3BsdWdpbm1hbmFnZXJfRU5WX3N0YXJ0dXAoc2VsZiwgdGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocHl0ZXN0X3g1MDA9IiMi
KQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8ocHl0ZXN0Y29uZmlnKToKKyAgICAg
ICAgICAgICAgICBwbHVnaW4gPSBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2lu
KCdweXRlc3RfeDUwMCcpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbiBpcyBub3QgTm9u
ZQorICAgICAgICAiIiIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudignUFlURVNUX1BMVUdJ
TlMnLCAncHl0ZXN0X3g1MDAnLCBwcmVwZW5kPSIsIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QocCwgc3lzcGF0aGluc2VydD1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3Nl
ZCoiXSkKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9wbHVnaW5faW1wb3J0bmFtZShzZWxmLCB0ZXN0
ZGlyLCBweXRlc3RwbSk6CisgICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsICdweXRl
c3RwbS5pbXBvcnRfcGx1Z2luKCJxd2Vxd2V4LnkiKScpCisgICAgICAgIHB5dGVzdC5yYWlzZXMo
SW1wb3J0RXJyb3IsICdweXRlc3RwbS5pbXBvcnRfcGx1Z2luKCJweXRlc3RfcXdlcXd4LnkiKScp
CisKKyAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgcGx1Z2lubmFtZSA9
ICJweXRlc3RfaGVsbG8iCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKntwbHVnaW5uYW1l
OiAiIn0pCisgICAgICAgIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4oInB5dGVzdF9oZWxsbyIpCisg
ICAgICAgIGxlbjEgPSBsZW4ocHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKSkKKyAgICAgICAgcHl0ZXN0
cG0uaW1wb3J0X3BsdWdpbigicHl0ZXN0X2hlbGxvIikKKyAgICAgICAgbGVuMiA9IGxlbihweXRl
c3RwbS5nZXRfcGx1Z2lucygpKQorICAgICAgICBhc3NlcnQgbGVuMSA9PSBsZW4yCisgICAgICAg
IHBsdWdpbjEgPSBweXRlc3RwbS5nZXRfcGx1Z2luKCJweXRlc3RfaGVsbG8iKQorICAgICAgICBh
c3NlcnQgcGx1Z2luMS5fX25hbWVfXy5lbmRzd2l0aCgncHl0ZXN0X2hlbGxvJykKKyAgICAgICAg
cGx1Z2luMiA9IHB5dGVzdHBtLmdldF9wbHVnaW4oInB5dGVzdF9oZWxsbyIpCisgICAgICAgIGFz
c2VydCBwbHVnaW4yIGlzIHBsdWdpbjEKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9wbHVnaW5fZG90
dGVkX25hbWUoc2VsZiwgdGVzdGRpciwgcHl0ZXN0cG0pOgorICAgICAgICBweXRlc3QucmFpc2Vz
KEltcG9ydEVycm9yLCAncHl0ZXN0cG0uaW1wb3J0X3BsdWdpbigicXdlcXdleC55IiknKQorICAg
ICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCAncHl0ZXN0cG0uaW1wb3J0X3BsdWdpbigi
cHl0ZXN0X3F3ZXF3ZXgueSIpJykKKworICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQor
ICAgICAgICB0ZXN0ZGlyLm1rcHlkaXIoInBrZyIpLmpvaW4oInBsdWcucHkiKS53cml0ZSgieD0z
IikKKyAgICAgICAgcGx1Z2lubmFtZSA9ICJwa2cucGx1ZyIKKyAgICAgICAgcHl0ZXN0cG0uaW1w
b3J0X3BsdWdpbihwbHVnaW5uYW1lKQorICAgICAgICBtb2QgPSBweXRlc3RwbS5nZXRfcGx1Z2lu
KCJwa2cucGx1ZyIpCisgICAgICAgIGFzc2VydCBtb2QueCA9PSAzCisKKyAgICBkZWYgdGVzdF9j
b25zaWRlcl9jb25mdGVzdF9kZXBzKHNlbGYsIHRlc3RkaXIsIHB5dGVzdHBtKToKKyAgICAgICAg
bW9kID0gdGVzdGRpci5tYWtlcHlmaWxlKCJweXRlc3RfcGx1Z2lucz0neHl6JyIpLnB5aW1wb3J0
KCkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAg
IHB5dGVzdHBtLmNvbnNpZGVyX2NvbmZ0ZXN0KG1vZCkKKworCitjbGFzcyBUZXN0UHl0ZXN0UGx1
Z2luTWFuYWdlckJvb3RzdHJhcG1pbmcob2JqZWN0KToKKyAgICBkZWYgdGVzdF9wcmVwYXJzZV9h
cmdzKHNlbGYsIHB5dGVzdHBtKToKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwg
bGFtYmRhOgorICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3ByZXBhcnNl
KFsieHl6IiwgIi1wIiwgImhlbGxvMTIzIl0pKQorCisgICAgZGVmIHRlc3RfcGx1Z2luX3ByZXZl
bnRfcmVnaXN0ZXIoc2VsZiwgcHl0ZXN0cG0pOgorICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9w
cmVwYXJzZShbInh5eiIsICItcCIsICJubzphYmMiXSkKKyAgICAgICAgbDEgPSBweXRlc3RwbS5n
ZXRfcGx1Z2lucygpCisgICAgICAgIHB5dGVzdHBtLnJlZ2lzdGVyKDQyLCBuYW1lPSJhYmMiKQor
ICAgICAgICBsMiA9IHB5dGVzdHBtLmdldF9wbHVnaW5zKCkKKyAgICAgICAgYXNzZXJ0IGxlbihs
MikgPT0gbGVuKGwxKQorICAgICAgICBhc3NlcnQgNDIgbm90IGluIGwyCisKKyAgICBkZWYgdGVz
dF9wbHVnaW5fcHJldmVudF9yZWdpc3Rlcl91bnJlZ2lzdGVyZWRfYWxyZWR5X3JlZ2lzdGVyZWQo
c2VsZiwgcHl0ZXN0cG0pOgorICAgICAgICBweXRlc3RwbS5yZWdpc3Rlcig0MiwgbmFtZT0iYWJj
IikKKyAgICAgICAgbDEgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygpCisgICAgICAgIGFzc2VydCA0
MiBpbiBsMQorICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIs
ICJubzphYmMiXSkKKyAgICAgICAgbDIgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygpCisgICAgICAg
IGFzc2VydCA0MiBub3QgaW4gbDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9weXRlc3Rlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9weXRlc3Rlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NTA4YzI5NTRlOGQxYjkyMDNjNWMyNWI2YmIyMDNkNDkyNDMwZGQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3B5dGVzdGVyLnB5CkBAIC0wLDAg
KzEsMTQ5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5dGVz
dAoraW1wb3J0IG9zCitmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IEhvb2tSZWNvcmRlcgor
ZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgUHl0ZXN0UGx1Z2luTWFuYWdlcgorZnJvbSBfcHl0
ZXN0Lm1haW4gaW1wb3J0IEVYSVRfT0ssIEVYSVRfVEVTVFNGQUlMRUQKKworCitkZWYgdGVzdF9t
YWtlX2hvb2tfcmVjb3JkZXIodGVzdGRpcik6CisgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgi
ZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICByZWNvcmRlciA9IHRlc3RkaXIubWFrZV9ob29r
X3JlY29yZGVyKGl0ZW0uY29uZmlnLnBsdWdpbm1hbmFnZXIpCisgICAgYXNzZXJ0IG5vdCByZWNv
cmRlci5nZXRmYWlsdXJlcygpCisKKyAgICBweXRlc3QueGZhaWwoImludGVybmFsIHJlcG9ydHJl
Y29yZGVyIHRlc3RzIG5lZWQgcmVmYWN0b3JpbmciKQorCisgICAgY2xhc3MgcmVwKG9iamVjdCk6
CisgICAgICAgIGV4Y2luZm8gPSBOb25lCisgICAgICAgIHBhc3NlZCA9IEZhbHNlCisgICAgICAg
IGZhaWxlZCA9IFRydWUKKyAgICAgICAgc2tpcHBlZCA9IEZhbHNlCisgICAgICAgIHdoZW4gPSAi
Y2FsbCIKKworICAgIHJlY29yZGVyLmhvb2sucHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9y
dD1yZXApCisgICAgZmFpbHVyZXMgPSByZWNvcmRlci5nZXRmYWlsdXJlcygpCisgICAgYXNzZXJ0
IGZhaWx1cmVzID09IFtyZXBdCisgICAgZmFpbHVyZXMgPSByZWNvcmRlci5nZXRmYWlsdXJlcygp
CisgICAgYXNzZXJ0IGZhaWx1cmVzID09IFtyZXBdCisKKyAgICBjbGFzcyByZXAob2JqZWN0KToK
KyAgICAgICAgZXhjaW5mbyA9IE5vbmUKKyAgICAgICAgcGFzc2VkID0gRmFsc2UKKyAgICAgICAg
ZmFpbGVkID0gRmFsc2UKKyAgICAgICAgc2tpcHBlZCA9IFRydWUKKyAgICAgICAgd2hlbiA9ICJj
YWxsIgorICAgIHJlcC5wYXNzZWQgPSBGYWxzZQorICAgIHJlcC5za2lwcGVkID0gVHJ1ZQorICAg
IHJlY29yZGVyLmhvb2sucHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9ydD1yZXApCisKKyAg
ICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIikKKyAgICByZXAgPSBtb2Rjb2wuY29u
ZmlnLmhvb2sucHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yPW1vZGNvbCkKKyAg
ICByZXAucGFzc2VkID0gRmFsc2UKKyAgICByZXAuZmFpbGVkID0gVHJ1ZQorICAgIHJlcC5za2lw
cGVkID0gRmFsc2UKKyAgICByZWNvcmRlci5ob29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9y
dD1yZXApCisKKyAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlY29yZGVyLmxpc3RvdXRj
b21lcygpCisgICAgYXNzZXJ0IG5vdCBwYXNzZWQgYW5kIHNraXBwZWQgYW5kIGZhaWxlZAorCisg
ICAgbnVtcGFzc2VkLCBudW1za2lwcGVkLCBudW1mYWlsZWQgPSByZWNvcmRlci5jb3VudG91dGNv
bWVzKCkKKyAgICBhc3NlcnQgbnVtcGFzc2VkID09IDAKKyAgICBhc3NlcnQgbnVtc2tpcHBlZCA9
PSAxCisgICAgYXNzZXJ0IG51bWZhaWxlZCA9PSAxCisgICAgYXNzZXJ0IGxlbihyZWNvcmRlci5n
ZXRmYWlsZWRjb2xsZWN0aW9ucygpKSA9PSAxCisKKyAgICByZWNvcmRlci51bnJlZ2lzdGVyKCkK
KyAgICByZWNvcmRlci5jbGVhcigpCisgICAgcmVjb3JkZXIuaG9vay5weXRlc3RfcnVudGVzdF9s
b2dyZXBvcnQocmVwb3J0PXJlcCkKKyAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJyZWNv
cmRlci5nZXRmYWlsdXJlcygpIikKKworCitkZWYgdGVzdF9wYXJzZWNvbmZpZyh0ZXN0ZGlyKToK
KyAgICBjb25maWcxID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgY29uZmlnMiA9IHRlc3Rk
aXIucGFyc2Vjb25maWcoKQorICAgIGFzc2VydCBjb25maWcyICE9IGNvbmZpZzEKKyAgICBhc3Nl
cnQgY29uZmlnMSAhPSBweXRlc3QuY29uZmlnCisKKworZGVmIHRlc3RfdGVzdGRpcl9ydW5zX3dp
dGhfcGx1Z2luKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
cHl0ZXN0X3BsdWdpbnMgPSAicHl0ZXN0ZXIiCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHRlc3Rk
aXIpOgorICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEpCisKKwor
ZGVmIG1ha2VfaG9sZGVyKCk6CisgICAgY2xhc3MgYXBpY2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ZGVmIHB5dGVzdF94eXooc2VsZiwgYXJnKToKKyAgICAgICAgICAgICJ4IgorCisgICAgICAgIGRl
ZiBweXRlc3RfeHl6X25vYXJnKHNlbGYpOgorICAgICAgICAgICAgIngiCisKKyAgICBhcGltb2Qg
PSB0eXBlKG9zKSgnYXBpJykKKworICAgIGRlZiBweXRlc3RfeHl6KGFyZyk6CisgICAgICAgICJ4
IgorCisgICAgZGVmIHB5dGVzdF94eXpfbm9hcmcoKToKKyAgICAgICAgIngiCisKKyAgICBhcGlt
b2QucHl0ZXN0X3h5eiA9IHB5dGVzdF94eXoKKyAgICBhcGltb2QucHl0ZXN0X3h5el9ub2FyZyA9
IHB5dGVzdF94eXpfbm9hcmcKKyAgICByZXR1cm4gYXBpY2xhc3MsIGFwaW1vZAorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaG9sZGVyIiwgbWFrZV9ob2xkZXIoKSkKK2RlZiB0ZXN0X2hv
b2tyZWNvcmRlcl9iYXNpYyhob2xkZXIpOgorICAgIHBtID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigp
CisgICAgcG0uYWRkaG9va3MoaG9sZGVyKQorICAgIHJlYyA9IEhvb2tSZWNvcmRlcihwbSkKKyAg
ICBwbS5ob29rLnB5dGVzdF94eXooYXJnPTEyMykKKyAgICBjYWxsID0gcmVjLnBvcGNhbGwoInB5
dGVzdF94eXoiKQorICAgIGFzc2VydCBjYWxsLmFyZyA9PSAxMjMKKyAgICBhc3NlcnQgY2FsbC5f
bmFtZSA9PSAicHl0ZXN0X3h5eiIKKyAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2Vw
dGlvbiwgInJlYy5wb3BjYWxsKCdhYmMnKSIpCisgICAgcG0uaG9vay5weXRlc3RfeHl6X25vYXJn
KCkKKyAgICBjYWxsID0gcmVjLnBvcGNhbGwoInB5dGVzdF94eXpfbm9hcmciKQorICAgIGFzc2Vy
dCBjYWxsLl9uYW1lID09ICJweXRlc3RfeHl6X25vYXJnIgorCisKK2RlZiB0ZXN0X21ha2VweWZp
bGVfdW5pY29kZSh0ZXN0ZGlyKToKKyAgICBnbG9iYWwgdW5pY2hyCisgICAgdHJ5OgorICAgICAg
ICB1bmljaHIoNjUpCisgICAgZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgdW5pY2hyID0gY2hy
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHVuaWNocigweGZmZmQpKQorCisKK2RlZiB0ZXN0X21h
a2VweWZpbGVfdXRmOCh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgbWFrZXB5ZmlsZSBhY2NlcHRz
IHV0Zi04IGJ5dGVzIGFzIGlucHV0ICgjMjczOCkiIiIKKyAgICB1dGY4X2NvbnRlbnRzID0gdSIi
IgorICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgbWl4
ZWRfZW5jb2RpbmcgPSB1J1PDo28gUGF1bG8nCisgICAgIiIiLmVuY29kZSgndXRmLTgnKQorICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodXRmOF9jb250ZW50cykKKyAgICBhc3NlcnQgdSJtaXhl
ZF9lbmNvZGluZyA9IHUnU8OjbyBQYXVsbyciLmVuY29kZSgndXRmLTgnKSBpbiBwLnJlYWQoJ3Ji
JykKKworCitkZWYgdGVzdF9pbmxpbmVfcnVuX2NsZWFuX21vZHVsZXModGVzdGRpcik6CisgICAg
dGVzdF9tb2QgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2ZvbygpOiBhc3NlcnQgVHJ1
ZSIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5pbmxpbmVfcnVuKHN0cih0ZXN0X21vZCkpCisgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9PSworICAgICMgcmV3cml0ZSBtb2R1bGUsIG5vdyB0
ZXN0IHNob3VsZCBmYWlsIGlmIG1vZHVsZSB3YXMgcmUtaW1wb3J0ZWQKKyAgICB0ZXN0X21vZC53
cml0ZSgiZGVmIHRlc3RfZm9vKCk6IGFzc2VydCBGYWxzZSIpCisgICAgcmVzdWx0MiA9IHRlc3Rk
aXIuaW5saW5lX3J1bihzdHIodGVzdF9tb2QpKQorICAgIGFzc2VydCByZXN1bHQyLnJldCA9PSBF
WElUX1RFU1RTRkFJTEVECisKKworZGVmIHRlc3RfYXNzZXJ0X291dGNvbWVzX2FmdGVyX3B5dGVz
dF9lcnJvKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZm9vKCk6
IGFzc2VydCBUcnVlIikKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLXVuZXhw
ZWN0ZWQtYXJndW1lbnQnKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtZXNz
YWdlPSJQeXRlc3QgdGVybWluYWwgcmVwb3J0IG5vdCBmb3VuZCIpOgorICAgICAgICByZXN1bHQu
YXNzZXJ0X291dGNvbWVzKHBhc3NlZD0wKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3JlY3dhcm4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zMWU3MDQ2MGZlNDY2ZWQ4OTQ2ZTcxMTA1MGFjZWRhYzM4MTQ2MmU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3JlY3dhcm4ucHkKQEAgLTAs
MCArMSwzMTAgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB3YXJuaW5ncworaW1wb3J0IHJlCitpbXBvcnQg
cHkKKworaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1wb3J0IFdhcm5pbmdz
UmVjb3JkZXIKKworCitkZWYgdGVzdF9yZWN3YXJuX2Z1bmN0aW9uYWwodGVzdGRpcik6CisgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBpbXBvcnQgd2Fy
bmluZ3MKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHJlY3dhcm4pOgorICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybigiaGVsbG8iKQorICAgICAgICAgICAgd2FybiA9IHJlY3dhcm4ucG9wKCkKKyAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHdhcm4ubWVzc2FnZSwgVXNlcldhcm5pbmcpCisg
ICAgIiIiKQorICAgIHJlcyA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAgICBhc3NlcnQgdHVw
bGUocmVzKSA9PSAoMSwgMCwgMCksIHJlcworCisKK2NsYXNzIFRlc3RXYXJuaW5nc1JlY29yZGVy
Q2hlY2tlcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X3JlY29yZGluZyhzZWxmKToKKyAgICAgICAg
cmVjID0gV2FybmluZ3NSZWNvcmRlcigpCisgICAgICAgIHdpdGggcmVjOgorICAgICAgICAgICAg
YXNzZXJ0IG5vdCByZWMubGlzdAorICAgICAgICAgICAgcHkuc3RkLndhcm5pbmdzLndhcm5fZXhw
bGljaXQoImhlbGxvIiwgVXNlcldhcm5pbmcsICJ4eXoiLCAxMykKKyAgICAgICAgICAgIGFzc2Vy
dCBsZW4ocmVjLmxpc3QpID09IDEKKyAgICAgICAgICAgIHB5LnN0ZC53YXJuaW5ncy53YXJuKERl
cHJlY2F0aW9uV2FybmluZygiaGVsbG8iKSkKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocmVjLmxp
c3QpID09IDIKKyAgICAgICAgICAgIHdhcm4gPSByZWMucG9wKCkKKyAgICAgICAgICAgIGFzc2Vy
dCBzdHIod2Fybi5tZXNzYWdlKSA9PSAiaGVsbG8iCisgICAgICAgICAgICB2YWx1ZXMgPSByZWMu
bGlzdAorICAgICAgICAgICAgcmVjLmNsZWFyKCkKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocmVj
Lmxpc3QpID09IDAKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgaXMgcmVjLmxpc3QKKyAgICAg
ICAgICAgIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsICJyZWMucG9wKCkiKQorCisgICAg
ZGVmIHRlc3RfdHlwZWNoZWNraW5nKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QucmVjd2Fy
biBpbXBvcnQgV2FybmluZ3NDaGVja2VyCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBl
RXJyb3IpOgorICAgICAgICAgICAgV2FybmluZ3NDaGVja2VyKDUpCisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgV2FybmluZ3NDaGVja2VyKCgnaGkn
LCBSdW50aW1lV2FybmluZykpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3Ip
OgorICAgICAgICAgICAgV2FybmluZ3NDaGVja2VyKFtEZXByZWNhdGlvbldhcm5pbmcsIFJ1bnRp
bWVXYXJuaW5nXSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfZW50ZXJfZXhpdChzZWxmKToKKyAg
ICAgICAgIyB3cmFwIHRoaXMgdGVzdCBpbiBXYXJuaW5nc1JlY29yZGVyIHRvIGVuc3VyZSB3YXJu
aW5nIHN0YXRlIGdldHMgcmVzZXQKKyAgICAgICAgd2l0aCBXYXJuaW5nc1JlY29yZGVyKCk6Cisg
ICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoUnVudGltZUVycm9yKToKKyAgICAgICAgICAg
ICAgICByZWMgPSBXYXJuaW5nc1JlY29yZGVyKCkKKyAgICAgICAgICAgICAgICByZWMuX19leGl0
X18oTm9uZSwgTm9uZSwgTm9uZSkgICMgY2FuJ3QgZXhpdCBiZWZvcmUgZW50ZXJpbmcKKworICAg
ICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcik6CisgICAgICAgICAgICAg
ICAgcmVjID0gV2FybmluZ3NSZWNvcmRlcigpCisgICAgICAgICAgICAgICAgd2l0aCByZWM6Cisg
ICAgICAgICAgICAgICAgICAgIHdpdGggcmVjOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFz
cyAgIyBjYW4ndCBlbnRlciB0d2ljZQorCisKK2NsYXNzIFRlc3REZXByZWNhdGVkQ2FsbChvYmpl
Y3QpOgorICAgICIiInRlc3QgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpIiIiCisKKyAgICBkZWYg
ZGVwKHNlbGYsIGksIGo9Tm9uZSk6CisgICAgICAgIGlmIGkgPT0gMDoKKyAgICAgICAgICAgIHB5
LnN0ZC53YXJuaW5ncy53YXJuKCJpcyBkZXByZWNhdGVkIiwgRGVwcmVjYXRpb25XYXJuaW5nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0xKQorICAgICAgICBy
ZXR1cm4gNDIKKworICAgIGRlZiBkZXBfZXhwbGljaXQoc2VsZiwgaSk6CisgICAgICAgIGlmIGkg
PT0gMDoKKyAgICAgICAgICAgIHB5LnN0ZC53YXJuaW5ncy53YXJuX2V4cGxpY2l0KCJkZXBfZXhw
bGljaXQiLCBjYXRlZ29yeT1EZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZT0iaGVsbG8iLCBsaW5lbm89MykKKworICAg
IGRlZiB0ZXN0X2RlcHJlY2F0ZWRfY2FsbF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHB5dGVz
dC5kZXByZWNhdGVkX2NhbGwoc2VsZi5kZXAsIDMsIDUpCisgICAgICAgIGFzc2VydCAnRGlkIG5v
dCBwcm9kdWNlJyBpbiBzdHIoZXhjaW5mbykKKworICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfY2Fs
bChzZWxmKToKKyAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChzZWxmLmRlcCwgMCwgNSkK
KworICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfY2FsbF9yZXQoc2VsZik6CisgICAgICAgIHJldCA9
IHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoc2VsZi5kZXAsIDApCisgICAgICAgIGFzc2VydCByZXQg
PT0gNDIKKworICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfY2FsbF9wcmVzZXJ2ZXMoc2VsZik6Cisg
ICAgICAgIG9uY2VyZWdpc3RyeSA9IHB5LnN0ZC53YXJuaW5ncy5vbmNlcmVnaXN0cnkuY29weSgp
CisgICAgICAgIGZpbHRlcnMgPSBweS5zdGQud2FybmluZ3MuZmlsdGVyc1s6XQorICAgICAgICB3
YXJuID0gcHkuc3RkLndhcm5pbmdzLndhcm4KKyAgICAgICAgd2Fybl9leHBsaWNpdCA9IHB5LnN0
ZC53YXJuaW5ncy53YXJuX2V4cGxpY2l0CisgICAgICAgIHNlbGYudGVzdF9kZXByZWNhdGVkX2Nh
bGxfcmFpc2VzKCkKKyAgICAgICAgc2VsZi50ZXN0X2RlcHJlY2F0ZWRfY2FsbCgpCisgICAgICAg
IGFzc2VydCBvbmNlcmVnaXN0cnkgPT0gcHkuc3RkLndhcm5pbmdzLm9uY2VyZWdpc3RyeQorICAg
ICAgICBhc3NlcnQgZmlsdGVycyA9PSBweS5zdGQud2FybmluZ3MuZmlsdGVycworICAgICAgICBh
c3NlcnQgd2FybiBpcyBweS5zdGQud2FybmluZ3Mud2FybgorICAgICAgICBhc3NlcnQgd2Fybl9l
eHBsaWNpdCBpcyBweS5zdGQud2FybmluZ3Mud2Fybl9leHBsaWNpdAorCisgICAgZGVmIHRlc3Rf
ZGVwcmVjYXRlZF9leHBsaWNpdF9jYWxsX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBweXRl
c3QucmFpc2VzKEFzc2VydGlvbkVycm9yKToKKyAgICAgICAgICAgIHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwoc2VsZi5kZXBfZXhwbGljaXQsIDMpCisKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2V4
cGxpY2l0X2NhbGwoc2VsZik6CisgICAgICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoc2VsZi5k
ZXBfZXhwbGljaXQsIDApCisgICAgICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoc2VsZi5kZXBf
ZXhwbGljaXQsIDApCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21vZGUnLCBbJ2Nv
bnRleHRfbWFuYWdlcicsICdjYWxsJ10pCisgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsX25v
X3dhcm5pbmcoc2VsZiwgbW9kZSk6CisgICAgICAgICIiIkVuc3VyZSBkZXByZWNhdGVkX2NhbGwo
KSByYWlzZXMgdGhlIGV4cGVjdGVkIGZhaWx1cmUgd2hlbiBpdHMgYmxvY2svZnVuY3Rpb24gZG9l
cworICAgICAgICBub3QgcmFpc2UgYSBkZXByZWNhdGlvbiB3YXJuaW5nLgorICAgICAgICAiIiIK
KyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtc2cgPSAnRGlk
IG5vdCBwcm9kdWNlIERlcHJlY2F0aW9uV2FybmluZyBvciBQZW5kaW5nRGVwcmVjYXRpb25XYXJu
aW5nJworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1hdGNoZXM9
bXNnKToKKyAgICAgICAgICAgIGlmIG1vZGUgPT0gJ2NhbGwnOgorICAgICAgICAgICAgICAgIHB5
dGVzdC5kZXByZWNhdGVkX2NhbGwoZikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgICAgICAgICAgICAgIGYo
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd3YXJuaW5nX3R5cGUnLCBbUGVuZGlu
Z0RlcHJlY2F0aW9uV2FybmluZywgRGVwcmVjYXRpb25XYXJuaW5nXSkKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoJ21vZGUnLCBbJ2NvbnRleHRfbWFuYWdlcicsICdjYWxsJ10pCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjYWxsX2ZfZmlyc3QnLCBbVHJ1ZSwgRmFsc2VdKQor
ICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJykKKyAgICBkZWYgdGVzdF9k
ZXByZWNhdGVkX2NhbGxfbW9kZXMoc2VsZiwgd2FybmluZ190eXBlLCBtb2RlLCBjYWxsX2ZfZmly
c3QpOgorICAgICAgICAiIiJFbnN1cmUgZGVwcmVjYXRlZF9jYWxsKCkgY2FwdHVyZXMgYSBkZXBy
ZWNhdGlvbiB3YXJuaW5nIGFzIGV4cGVjdGVkIGluc2lkZSBpdHMKKyAgICAgICAgYmxvY2svZnVu
Y3Rpb24uCisgICAgICAgICIiIgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgd2Fybmlu
Z3Mud2Fybih3YXJuaW5nX3R5cGUoImhpIikpCisgICAgICAgICAgICByZXR1cm4gMTAKKworICAg
ICAgICAjIGVuc3VyZSBkZXByZWNhdGVkX2NhbGwoKSBjYW4gY2FwdHVyZSB0aGUgd2FybmluZyBl
dmVuIGlmIGl0IGhhcyBhbHJlYWR5IGJlZW4gdHJpZ2dlcmVkCisgICAgICAgIGlmIGNhbGxfZl9m
aXJzdDoKKyAgICAgICAgICAgIGFzc2VydCBmKCkgPT0gMTAKKyAgICAgICAgaWYgbW9kZSA9PSAn
Y2FsbCc6CisgICAgICAgICAgICBhc3NlcnQgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChmKSA9PSAx
MAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxs
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGYoKSA9PSAxMAorCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCdtb2RlJywgWydjb250ZXh0X21hbmFnZXInLCAnY2FsbCddKQorICAgIGRl
ZiB0ZXN0X2RlcHJlY2F0ZWRfY2FsbF9leGNlcHRpb25faXNfcmFpc2VkKHNlbGYsIG1vZGUpOgor
ICAgICAgICAiIiJJZiB0aGUgYmxvY2sgb2YgdGhlIGNvZGUgYmVpbmcgdGVzdGVkIGJ5IGRlcHJl
Y2F0ZWRfY2FsbCgpIHJhaXNlcyBhbiBleGNlcHRpb24sCisgICAgICAgIGl0IG11c3QgcmFpc2Ug
dGhlIGV4Y2VwdGlvbiB1bmRpc3R1cmJlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzb21lIGV4Y2VwdGlvbicpCisKKyAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSdzb21lIGV4Y2VwdGlvbicp
OgorICAgICAgICAgICAgaWYgbW9kZSA9PSAnY2FsbCc6CisgICAgICAgICAgICAgICAgcHl0ZXN0
LmRlcHJlY2F0ZWRfY2FsbChmKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3
aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAgICAgICAgICAgZigpCisK
KyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2NhbGxfc3BlY2lmaWNpdHkoc2VsZik6CisgICAgICAg
IG90aGVyX3dhcm5pbmdzID0gW1dhcm5pbmcsIFVzZXJXYXJuaW5nLCBTeW50YXhXYXJuaW5nLCBS
dW50aW1lV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRnV0dXJlV2FybmluZywg
SW1wb3J0V2FybmluZywgVW5pY29kZVdhcm5pbmddCisgICAgICAgIGZvciB3YXJuaW5nIGluIG90
aGVyX3dhcm5pbmdzOgorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKHdhcm5pbmcoImhpIikpCisKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2Fs
bChmKQorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKToKKyAg
ICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAg
ICAgICAgICAgZigpCisKKworY2xhc3MgVGVzdFdhcm5zKG9iamVjdCk6CisgICAgZGVmIHRlc3Rf
c3RyaW5ncyhzZWxmKToKKyAgICAgICAgIyBkaWZmZXJlbnQgbWVzc2FnZXMsIGIvYyBQeXRob24g
c3VwcHJlc3NlcyBtdWx0aXBsZSBpZGVudGljYWwgd2FybmluZ3MKKyAgICAgICAgc291cmNlMSA9
ICJ3YXJuaW5ncy53YXJuKCd3MScsIFJ1bnRpbWVXYXJuaW5nKSIKKyAgICAgICAgc291cmNlMiA9
ICJ3YXJuaW5ncy53YXJuKCd3MicsIFJ1bnRpbWVXYXJuaW5nKSIKKyAgICAgICAgc291cmNlMyA9
ICJ3YXJuaW5ncy53YXJuKCd3MycsIFJ1bnRpbWVXYXJuaW5nKSIKKyAgICAgICAgcHl0ZXN0Lndh
cm5zKFJ1bnRpbWVXYXJuaW5nLCBzb3VyY2UxKQorICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVz
dC5mYWlsLkV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IHB5dGVzdC53
YXJucyhVc2VyV2FybmluZywgc291cmNlMikpCisgICAgICAgIHB5dGVzdC53YXJucyhSdW50aW1l
V2FybmluZywgc291cmNlMykKKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKHNlbGYpOgorICAgICAg
ICBweXRlc3Qud2FybnMoU3ludGF4V2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgIGxhbWJk
YSBtc2c6IHdhcm5pbmdzLndhcm4obXNnLCBTeW50YXhXYXJuaW5nKSwgInN5bnRheCIpCisKKyAg
ICBkZWYgdGVzdF93YXJuaW5nX3R1cGxlKHNlbGYpOgorICAgICAgICBweXRlc3Qud2FybnMoKFJ1
bnRpbWVXYXJuaW5nLCBTeW50YXhXYXJuaW5nKSwKKyAgICAgICAgICAgICAgICAgICAgIGxhbWJk
YTogd2FybmluZ3Mud2FybigndzEnLCBSdW50aW1lV2FybmluZykpCisgICAgICAgIHB5dGVzdC53
YXJucygoUnVudGltZVdhcm5pbmcsIFN5bnRheFdhcm5pbmcpLAorICAgICAgICAgICAgICAgICAg
ICAgbGFtYmRhOiB3YXJuaW5ncy53YXJuKCd3MicsIFN5bnRheFdhcm5pbmcpKQorICAgICAgICBw
eXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICBsYW1iZGE6IHB5dGVzdC53YXJucygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKFJ1bnRp
bWVXYXJuaW5nLCBTeW50YXhXYXJuaW5nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGFt
YmRhOiB3YXJuaW5ncy53YXJuKCd3MycsIFVzZXJXYXJuaW5nKSkpCisKKyAgICBkZWYgdGVzdF9h
c19jb250ZXh0bWFuYWdlcihzZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoUnVudGlt
ZVdhcm5pbmcpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigicnVudGltZSIsIFJ1bnRpbWVX
YXJuaW5nKQorCisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nKToKKyAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2VyV2FybmluZykKKworICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKSBhcyBleGNpbmZvOgorICAgICAg
ICAgICAgd2l0aCBweXRlc3Qud2FybnMoUnVudGltZVdhcm5pbmcpOgorICAgICAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2VyV2FybmluZykKKyAgICAgICAgZXhjaW5mby5tYXRj
aChyIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSBcKC4rUnVudGltZVdhcm5pbmcu
KyxcKSB3YXMgZW1pdHRlZC4gIgorICAgICAgICAgICAgICAgICAgICAgIHIiVGhlIGxpc3Qgb2Yg
ZW1pdHRlZCB3YXJuaW5ncyBpczogXFtVc2VyV2FybmluZ1woJ3VzZXInLFwpXF0uIikKKworICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKSBhcyBleGNpbmZv
OgorICAgICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcpOgorICAgICAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBSdW50aW1lV2FybmluZykKKyAgICAgICAg
ZXhjaW5mby5tYXRjaChyIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSBcKC4rVXNl
cldhcm5pbmcuKyxcKSB3YXMgZW1pdHRlZC4gIgorICAgICAgICAgICAgICAgICAgICAgIHIiVGhl
IGxpc3Qgb2YgZW1pdHRlZCB3YXJuaW5ncyBpczogXFtSdW50aW1lV2FybmluZ1woJ3J1bnRpbWUn
LFwpXF0uIikKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0
aW9uKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5p
bmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXhjaW5mby5tYXRjaChyIkRJRCBO
T1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSBcKC4rVXNlcldhcm5pbmcuKyxcKSB3YXMgZW1p
dHRlZC4gIgorICAgICAgICAgICAgICAgICAgICAgIHIiVGhlIGxpc3Qgb2YgZW1pdHRlZCB3YXJu
aW5ncyBpczogXFtcXS4iKQorCisgICAgICAgIHdhcm5pbmdfY2xhc3NlcyA9IChVc2VyV2Fybmlu
ZywgRnV0dXJlV2FybmluZykKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWls
LkV4Y2VwdGlvbikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKHdh
cm5pbmdfY2xhc3NlcykgYXMgd2FybmluZm86CisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2Fy
bigicnVudGltZSIsIFJ1bnRpbWVXYXJuaW5nKQorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndh
cm4oImltcG9ydCIsIEltcG9ydFdhcm5pbmcpCisKKyAgICAgICAgbWVzc2FnZV90ZW1wbGF0ZSA9
ICgiRElEIE5PVCBXQVJOLiBObyB3YXJuaW5ncyBvZiB0eXBlIHswfSB3YXMgZW1pdHRlZC4gIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgbGlzdCBvZiBlbWl0dGVkIHdhcm5pbmdz
IGlzOiB7MX0uIikKKyAgICAgICAgZXhjaW5mby5tYXRjaChyZS5lc2NhcGUobWVzc2FnZV90ZW1w
bGF0ZS5mb3JtYXQod2FybmluZ19jbGFzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZvciBlYWNoIGluIHdh
cm5pbmZvXSkpKQorCisgICAgZGVmIHRlc3RfcmVjb3JkKHNlbGYpOgorICAgICAgICB3aXRoIHB5
dGVzdC53YXJucyhVc2VyV2FybmluZykgYXMgcmVjb3JkOgorICAgICAgICAgICAgd2FybmluZ3Mu
d2FybigidXNlciIsIFVzZXJXYXJuaW5nKQorCisgICAgICAgIGFzc2VydCBsZW4ocmVjb3JkKSA9
PSAxCisgICAgICAgIGFzc2VydCBzdHIocmVjb3JkWzBdLm1lc3NhZ2UpID09ICJ1c2VyIgorCisg
ICAgZGVmIHRlc3RfcmVjb3JkX29ubHkoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5z
KE5vbmUpIGFzIHJlY29yZDoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2Vy
V2FybmluZykKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBSdW50aW1lV2Fy
bmluZykKKworICAgICAgICBhc3NlcnQgbGVuKHJlY29yZCkgPT0gMgorICAgICAgICBhc3NlcnQg
c3RyKHJlY29yZFswXS5tZXNzYWdlKSA9PSAidXNlciIKKyAgICAgICAgYXNzZXJ0IHN0cihyZWNv
cmRbMV0ubWVzc2FnZSkgPT0gInJ1bnRpbWUiCisKKyAgICBkZWYgdGVzdF9yZWNvcmRfYnlfc3Vi
Y2xhc3Moc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFdhcm5pbmcpIGFzIHJlY29y
ZDoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2VyV2FybmluZykKKyAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBSdW50aW1lV2FybmluZykKKworICAgICAg
ICBhc3NlcnQgbGVuKHJlY29yZCkgPT0gMgorICAgICAgICBhc3NlcnQgc3RyKHJlY29yZFswXS5t
ZXNzYWdlKSA9PSAidXNlciIKKyAgICAgICAgYXNzZXJ0IHN0cihyZWNvcmRbMV0ubWVzc2FnZSkg
PT0gInJ1bnRpbWUiCisKKyAgICAgICAgY2xhc3MgTXlVc2VyV2FybmluZyhVc2VyV2FybmluZyk6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgTXlSdW50aW1lV2FybmluZyhSdW50
aW1lV2FybmluZyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgd2l0aCBweXRlc3Qud2Fy
bnMoKFVzZXJXYXJuaW5nLCBSdW50aW1lV2FybmluZykpIGFzIHJlY29yZDoKKyAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oInVzZXIiLCBNeVVzZXJXYXJuaW5nKQorICAgICAgICAgICAgd2Fybmlu
Z3Mud2FybigicnVudGltZSIsIE15UnVudGltZVdhcm5pbmcpCisKKyAgICAgICAgYXNzZXJ0IGxl
bihyZWNvcmQpID09IDIKKyAgICAgICAgYXNzZXJ0IHN0cihyZWNvcmRbMF0ubWVzc2FnZSkgPT0g
InVzZXIiCisgICAgICAgIGFzc2VydCBzdHIocmVjb3JkWzFdLm1lc3NhZ2UpID09ICJydW50aW1l
IgorCisgICAgZGVmIHRlc3RfZG91YmxlX3Rlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIi
IklmIGEgdGVzdCBpcyBydW4gYWdhaW4sIHRoZSB3YXJuaW5nIHNob3VsZCBzdGlsbCBiZSByYWlz
ZWQiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisKKyAgICAgICAgICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgncnVuJywgWzEsIDJdKQorICAgICAgICAgICAgZGVmIHRlc3Qo
cnVuKToKKyAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZyk6
CisgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBSdW50aW1lV2Fy
bmluZykKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyoyIHBhc3NlZCBpbionXSkK
KworICAgIGRlZiB0ZXN0X21hdGNoX3JlZ2V4KHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC53
YXJucyhVc2VyV2FybmluZywgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAgICAgIHdh
cm5pbmdzLndhcm4oInZhbHVlIG11c3QgYmUgNDIiLCBVc2VyV2FybmluZykKKworICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHdp
dGggcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgorICAg
ICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInRoaXMgaXMgbm90IGhlcmUiLCBVc2VyV2Fybmlu
ZykKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToK
KyAgICAgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKEZ1dHVyZVdhcm5pbmcsIG1hdGNoPXInbXVz
dCBiZSBcZCskJyk6CisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigidmFsdWUgbXVzdCBi
ZSA0MiIsIFVzZXJXYXJuaW5nKQorCisgICAgZGVmIHRlc3Rfb25lX2Zyb21fbXVsdGlwbGVfd2Fy
bnMoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD1y
J2FhYScpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigiY2NjY2NjY2NjYyIsIFVzZXJXYXJu
aW5nKQorICAgICAgICAgICAgd2FybmluZ3Mud2FybigiYmJiYmJiYmJiYiIsIFVzZXJXYXJuaW5n
KQorICAgICAgICAgICAgd2FybmluZ3Mud2FybigiYWFhYWFhYWFhYSIsIFVzZXJXYXJuaW5nKQor
CisgICAgZGVmIHRlc3Rfbm9uZV9vZl9tdWx0aXBsZV93YXJucyhzZWxmKToKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRo
IHB5dGVzdC53YXJucyhVc2VyV2FybmluZywgbWF0Y2g9cidhYWEnKToKKyAgICAgICAgICAgICAg
ICB3YXJuaW5ncy53YXJuKCJiYmJiYmJiYmJiIiwgVXNlcldhcm5pbmcpCisgICAgICAgICAgICAg
ICAgd2FybmluZ3Mud2FybigiY2NjY2NjY2NjYyIsIFVzZXJXYXJuaW5nKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Jlc3VsdGxvZy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9yZXN1bHRsb2cucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdkZDI2ODdjZGZkYTllYzZjZTAzNWM3
YjI3NWQxNzdiNjc2Y2I0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9yZXN1bHRsb2cucHkKQEAgLTAsMCArMSwyMjggQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBvcwor
CitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9w
eXRlc3QubWFpbiBpbXBvcnQgTm9kZSwgSXRlbSwgRlNDb2xsZWN0b3IKK2Zyb20gX3B5dGVzdC5y
ZXN1bHRsb2cgaW1wb3J0IGdlbmVyaWNfcGF0aCwgUmVzdWx0TG9nLCBcCisgICAgcHl0ZXN0X2Nv
bmZpZ3VyZSwgcHl0ZXN0X3VuY29uZmlndXJlCisKKworZGVmIHRlc3RfZ2VuZXJpY19wYXRoKHRl
c3RkaXIpOgorICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uCisgICAgY29uZmln
ID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgc2Vzc2lvbiA9IFNlc3Npb24oY29uZmlnKQor
ICAgIHAxID0gTm9kZSgnYScsIGNvbmZpZz1jb25maWcsIHNlc3Npb249c2Vzc2lvbikKKyAgICAj
IGFzc2VydCBwMS5mc3BhdGggaXMgTm9uZQorICAgIHAyID0gTm9kZSgnQicsIHBhcmVudD1wMSkK
KyAgICBwMyA9IE5vZGUoJygpJywgcGFyZW50PXAyKQorICAgIGl0ZW0gPSBJdGVtKCdjJywgcGFy
ZW50PXAzKQorCisgICAgcmVzID0gZ2VuZXJpY19wYXRoKGl0ZW0pCisgICAgYXNzZXJ0IHJlcyA9
PSAnYS5CKCkuYycKKworICAgIHAwID0gRlNDb2xsZWN0b3IoJ3Byb2ovdGVzdCcsIGNvbmZpZz1j
b25maWcsIHNlc3Npb249c2Vzc2lvbikKKyAgICBwMSA9IEZTQ29sbGVjdG9yKCdwcm9qL3Rlc3Qv
YScsIHBhcmVudD1wMCkKKyAgICBwMiA9IE5vZGUoJ0InLCBwYXJlbnQ9cDEpCisgICAgcDMgPSBO
b2RlKCcoKScsIHBhcmVudD1wMikKKyAgICBwNCA9IE5vZGUoJ2MnLCBwYXJlbnQ9cDMpCisgICAg
aXRlbSA9IEl0ZW0oJ1sxXScsIHBhcmVudD1wNCkKKworICAgIHJlcyA9IGdlbmVyaWNfcGF0aChp
dGVtKQorICAgIGFzc2VydCByZXMgPT0gJ3Rlc3QvYTpCKCkuY1sxXScKKworCitkZWYgdGVzdF93
cml0ZV9sb2dfZW50cnkoKToKKyAgICByZXNsb2cgPSBSZXN1bHRMb2coTm9uZSwgTm9uZSkKKyAg
ICByZXNsb2cubG9nZmlsZSA9IHB5LmlvLlRleHRJTygpCisgICAgcmVzbG9nLndyaXRlX2xvZ19l
bnRyeSgnbmFtZScsICcuJywgJycpCisgICAgZW50cnkgPSByZXNsb2cubG9nZmlsZS5nZXR2YWx1
ZSgpCisgICAgYXNzZXJ0IGVudHJ5Wy0xXSA9PSAnXG4nCisgICAgZW50cnlfbGluZXMgPSBlbnRy
eS5zcGxpdGxpbmVzKCkKKyAgICBhc3NlcnQgbGVuKGVudHJ5X2xpbmVzKSA9PSAxCisgICAgYXNz
ZXJ0IGVudHJ5X2xpbmVzWzBdID09ICcuIG5hbWUnCisKKyAgICByZXNsb2cubG9nZmlsZSA9IHB5
LmlvLlRleHRJTygpCisgICAgcmVzbG9nLndyaXRlX2xvZ19lbnRyeSgnbmFtZScsICdzJywgJ1Nr
aXBwZWQnKQorICAgIGVudHJ5ID0gcmVzbG9nLmxvZ2ZpbGUuZ2V0dmFsdWUoKQorICAgIGFzc2Vy
dCBlbnRyeVstMV0gPT0gJ1xuJworICAgIGVudHJ5X2xpbmVzID0gZW50cnkuc3BsaXRsaW5lcygp
CisgICAgYXNzZXJ0IGxlbihlbnRyeV9saW5lcykgPT0gMgorICAgIGFzc2VydCBlbnRyeV9saW5l
c1swXSA9PSAncyBuYW1lJworICAgIGFzc2VydCBlbnRyeV9saW5lc1sxXSA9PSAnIFNraXBwZWQn
CisKKyAgICByZXNsb2cubG9nZmlsZSA9IHB5LmlvLlRleHRJTygpCisgICAgcmVzbG9nLndyaXRl
X2xvZ19lbnRyeSgnbmFtZScsICdzJywgJ1NraXBwZWRcbicpCisgICAgZW50cnkgPSByZXNsb2cu
bG9nZmlsZS5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0IGVudHJ5Wy0xXSA9PSAnXG4nCisgICAgZW50
cnlfbGluZXMgPSBlbnRyeS5zcGxpdGxpbmVzKCkKKyAgICBhc3NlcnQgbGVuKGVudHJ5X2xpbmVz
KSA9PSAyCisgICAgYXNzZXJ0IGVudHJ5X2xpbmVzWzBdID09ICdzIG5hbWUnCisgICAgYXNzZXJ0
IGVudHJ5X2xpbmVzWzFdID09ICcgU2tpcHBlZCcKKworICAgIHJlc2xvZy5sb2dmaWxlID0gcHku
aW8uVGV4dElPKCkKKyAgICBsb25ncmVwciA9ICcgdGIxXG4gdGIgMlxuRSB0YjNcblNvbWUgRXJy
b3InCisgICAgcmVzbG9nLndyaXRlX2xvZ19lbnRyeSgnbmFtZScsICdGJywgbG9uZ3JlcHIpCisg
ICAgZW50cnkgPSByZXNsb2cubG9nZmlsZS5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0IGVudHJ5Wy0x
XSA9PSAnXG4nCisgICAgZW50cnlfbGluZXMgPSBlbnRyeS5zcGxpdGxpbmVzKCkKKyAgICBhc3Nl
cnQgbGVuKGVudHJ5X2xpbmVzKSA9PSA1CisgICAgYXNzZXJ0IGVudHJ5X2xpbmVzWzBdID09ICdG
IG5hbWUnCisgICAgYXNzZXJ0IGVudHJ5X2xpbmVzWzE6XSA9PSBbJyAnICsgbGluZSBmb3IgbGlu
ZSBpbiBsb25ncmVwci5zcGxpdGxpbmVzKCldCisKKworY2xhc3MgVGVzdFdpdGhGdW5jdGlvbklu
dGVncmF0aW9uKG9iamVjdCk6CisgICAgIyBYWFggKGhwaykgaSB0aGluayB0aGF0IHRoZSByZXN1
bHRsb2cgcGx1Z2luIHNob3VsZAorICAgICMgcHJvdmlkZSBhIFBhcnNlciBvYmplY3Qgc28gdGhh
dCBvbmUgY2FuIHJlbWFpbgorICAgICMgaWdub3JhbnQgcmVnYXJkaW5nIGZvcm1hdHRpbmcgZGV0
YWlscy4KKyAgICBkZWYgZ2V0cmVzdWx0bG9nKHNlbGYsIHRlc3RkaXIsIGFyZyk6CisgICAgICAg
IHJlc3VsdGxvZyA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInJlc3VsdGxvZyIpCisgICAgICAgIHRl
c3RkaXIucGx1Z2lucy5hcHBlbmQoInJlc3VsdGxvZyIpCisgICAgICAgIGFyZ3MgPSBbIi0tcmVz
dWx0bG9nPSVzIiAlIHJlc3VsdGxvZ10gKyBbYXJnXQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVz
dCgqYXJncykKKyAgICAgICAgcmV0dXJuIFt4IGZvciB4IGluIHJlc3VsdGxvZy5yZWFkbGluZXMo
Y3I9MCkgaWYgeF0KKworICAgIGRlZiB0ZXN0X2NvbGxlY3Rpb25fcmVwb3J0KHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBvayA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2NvbGxlY3Rpb25fb2s9
IiIpCisgICAgICAgIGZhaWwgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9jb2xsZWN0aW9uX2Zh
aWw9IlhYWCIpCisgICAgICAgIGxpbmVzID0gc2VsZi5nZXRyZXN1bHRsb2codGVzdGRpciwgb2sp
CisgICAgICAgIGFzc2VydCBub3QgbGluZXMKKworICAgICAgICBsaW5lcyA9IHNlbGYuZ2V0cmVz
dWx0bG9nKHRlc3RkaXIsIGZhaWwpCisgICAgICAgIGFzc2VydCBsaW5lcworICAgICAgICBhc3Nl
cnQgbGluZXNbMF0uc3RhcnRzd2l0aCgiRiAiKQorICAgICAgICBhc3NlcnQgbGluZXNbMF0uZW5k
c3dpdGgoInRlc3RfY29sbGVjdGlvbl9mYWlsLnB5IiksIGxpbmVzWzBdCisgICAgICAgIGZvciB4
IGluIGxpbmVzWzE6XToKKyAgICAgICAgICAgIGFzc2VydCB4LnN0YXJ0c3dpdGgoIiAiKQorICAg
ICAgICBhc3NlcnQgIlhYWCIgaW4gIiIuam9pbihsaW5lc1sxOl0pCisKKyAgICBkZWYgdGVzdF9s
b2dfdGVzdF9vdXRjb21lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kID0gdGVzdGRpci5t
YWtlcHlmaWxlKHRlc3RfbW9kPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9za2lwKCk6
IHB5dGVzdC5za2lwKCJoZWxsbyIpCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IHJhaXNl
IFZhbHVlRXJyb3IoIkZBSUwiKQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKCk6IHJhaXNlIFZhbHVlRXJyb3IoIlhGQUlMIikKKyAg
ICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3RfeHBhc3Mo
KTogcGFzcworCisgICAgICAgICIiIikKKyAgICAgICAgbGluZXMgPSBzZWxmLmdldHJlc3VsdGxv
Zyh0ZXN0ZGlyLCBtb2QpCisgICAgICAgIGFzc2VydCBsZW4obGluZXMpID49IDMKKyAgICAgICAg
YXNzZXJ0IGxpbmVzWzBdLnN0YXJ0c3dpdGgoIi4gIikKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBd
LmVuZHN3aXRoKCJ0ZXN0X3Bhc3MiKQorICAgICAgICBhc3NlcnQgbGluZXNbMV0uc3RhcnRzd2l0
aCgicyAiKSwgbGluZXNbMV0KKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdLmVuZHN3aXRoKCJ0ZXN0
X3NraXAiKQorICAgICAgICBhc3NlcnQgbGluZXNbMl0uZmluZCgiaGVsbG8iKSAhPSAtMQorCisg
ICAgICAgIGFzc2VydCBsaW5lc1szXS5zdGFydHN3aXRoKCJGICIpCisgICAgICAgIGFzc2VydCBs
aW5lc1szXS5lbmRzd2l0aCgidGVzdF9mYWlsIikKKyAgICAgICAgdGIgPSAiIi5qb2luKGxpbmVz
WzQ6OF0pCisgICAgICAgIGFzc2VydCB0Yi5maW5kKCdyYWlzZSBWYWx1ZUVycm9yKCJGQUlMIikn
KSAhPSAtMQorCisgICAgICAgIGFzc2VydCBsaW5lc1s4XS5zdGFydHN3aXRoKCd4ICcpCisgICAg
ICAgIHRiID0gIiIuam9pbihsaW5lc1s4OjE0XSkKKyAgICAgICAgYXNzZXJ0IHRiLmZpbmQoJ3Jh
aXNlIFZhbHVlRXJyb3IoIlhGQUlMIiknKSAhPSAtMQorCisgICAgICAgIGFzc2VydCBsaW5lc1sx
NF0uc3RhcnRzd2l0aCgnWCAnKQorICAgICAgICBhc3NlcnQgbGVuKGxpbmVzKSA9PSAxNQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzdHlsZSIsICgibmF0aXZlIiwgImxvbmciLCAi
c2hvcnQiKSkKKyAgICBkZWYgdGVzdF9pbnRlcm5hbF9leGNlcHRpb24oc2VsZiwgc3R5bGUpOgor
ICAgICAgICAjIHRoZXkgYXJlIHByb2R1Y2VkIGZvciBleGFtcGxlIGJ5IGEgdGVhcmRvd24gZmFp
bGluZworICAgICAgICAjIGF0IHRoZSBlbmQgb2YgdGhlIHJ1biBvciBhIGZhaWxpbmcgaG9vayBp
bnZvY2F0aW9uCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAg
ICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5f
Y29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgcmVzbG9nID0gUmVzdWx0TG9nKE5vbmUsIHB5
LmlvLlRleHRJTygpKQorICAgICAgICByZXNsb2cucHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjaW5m
by5nZXRyZXByKHN0eWxlPXN0eWxlKSkKKyAgICAgICAgZW50cnkgPSByZXNsb2cubG9nZmlsZS5n
ZXR2YWx1ZSgpCisgICAgICAgIGVudHJ5X2xpbmVzID0gZW50cnkuc3BsaXRsaW5lcygpCisKKyAg
ICAgICAgYXNzZXJ0IGVudHJ5X2xpbmVzWzBdLnN0YXJ0c3dpdGgoJyEgJykKKyAgICAgICAgaWYg
c3R5bGUgIT0gIm5hdGl2ZSI6CisgICAgICAgICAgICBhc3NlcnQgb3MucGF0aC5iYXNlbmFtZShf
X2ZpbGVfXylbOi05XSBpbiBlbnRyeV9saW5lc1swXSAgIyAucHljL2NsYXNzCisgICAgICAgIGFz
c2VydCBlbnRyeV9saW5lc1stMV1bMF0gPT0gJyAnCisgICAgICAgIGFzc2VydCAnVmFsdWVFcnJv
cicgaW4gZW50cnkKKworCitkZWYgdGVzdF9nZW5lcmljKHRlc3RkaXIsIExpbmVNYXRjaGVyKToK
KyAgICB0ZXN0ZGlyLnBsdWdpbnMuYXBwZW5kKCJyZXN1bHRsb2ciKQorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9wYXNz
KCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAg
ICAgIGFzc2VydCAwCisgICAgICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAgICAgICAgIHB5dGVz
dC5za2lwKCIiKQorICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgZGVmIHRlc3Rf
eGZhaWwoKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIEBweXRlc3QubWFyay54ZmFp
bChydW49RmFsc2UpCisgICAgICAgIGRlZiB0ZXN0X3hmYWlsX25vcnVuKCk6CisgICAgICAgICAg
ICBhc3NlcnQgMAorICAgICIiIikKKyAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1yZXN1bHRsb2c9
cmVzdWx0LmxvZyIpCisgICAgbGluZXMgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJyZXN1bHQubG9n
IikucmVhZGxpbmVzKGNyPTApCisgICAgTGluZU1hdGNoZXIobGluZXMpLmZubWF0Y2hfbGluZXMo
WworICAgICAgICAiLiAqOnRlc3RfcGFzcyIsCisgICAgICAgICJGICo6dGVzdF9mYWlsIiwKKyAg
ICAgICAgInMgKjp0ZXN0X3NraXAiLAorICAgICAgICAieCAqOnRlc3RfeGZhaWwiLAorICAgICAg
ICAieCAqOnRlc3RfeGZhaWxfbm9ydW4iLAorICAgIF0pCisKKworZGVmIHRlc3RfbWFrZWRpcl9m
b3JfcmVzdWx0bG9nKHRlc3RkaXIsIExpbmVNYXRjaGVyKToKKyAgICAiIiItLXJlc3VsdGxvZyBz
aG91bGQgYXV0b21hdGljYWxseSBjcmVhdGUgZGlyZWN0b3JpZXMgZm9yIHRoZSBsb2cgZmlsZSIi
IgorICAgIHRlc3RkaXIucGx1Z2lucy5hcHBlbmQoInJlc3VsdGxvZyIpCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0X3Bh
c3MoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgdGVzdGRpci5ydW5weXRlc3Qo
Ii0tcmVzdWx0bG9nPXBhdGgvdG8vcmVzdWx0LmxvZyIpCisgICAgbGluZXMgPSB0ZXN0ZGlyLnRt
cGRpci5qb2luKCJwYXRoL3RvL3Jlc3VsdC5sb2ciKS5yZWFkbGluZXMoY3I9MCkKKyAgICBMaW5l
TWF0Y2hlcihsaW5lcykuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIuICo6dGVzdF9wYXNzIiwK
KyAgICBdKQorCisKK2RlZiB0ZXN0X25vX3Jlc3VsdGxvZ19vbl9zbGF2ZXModGVzdGRpcik6Cisg
ICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygiLXAiLCAicmVzdWx0bG9nIiwgIi0tcmVz
dWx0bG9nPXJlc3VsdGxvZyIpCisKKyAgICBhc3NlcnQgbm90IGhhc2F0dHIoY29uZmlnLCAnX3Jl
c3VsdGxvZycpCisgICAgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpCisgICAgYXNzZXJ0IGhhc2F0
dHIoY29uZmlnLCAnX3Jlc3VsdGxvZycpCisgICAgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZykK
KyAgICBhc3NlcnQgbm90IGhhc2F0dHIoY29uZmlnLCAnX3Jlc3VsdGxvZycpCisKKyAgICBjb25m
aWcuc2xhdmVpbnB1dCA9IHt9CisgICAgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpCisgICAgYXNz
ZXJ0IG5vdCBoYXNhdHRyKGNvbmZpZywgJ19yZXN1bHRsb2cnKQorICAgIHB5dGVzdF91bmNvbmZp
Z3VyZShjb25maWcpCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNvbmZpZywgJ19yZXN1bHRsb2cn
KQorCisKK2RlZiB0ZXN0X2ZhaWx1cmVfaXNzdWUzODAodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgY2xhc3MgTXlD
b2xsZWN0b3IocHl0ZXN0LkZpbGUpOgorICAgICAgICAgICAgZGVmIGNvbGxlY3Qoc2VsZik6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAgICAgICAgICBkZWYgcmVwcl9m
YWlsdXJlKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICAgICAgICAgIHJldHVybiAic29tZXN0cmlu
ZyIKKyAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAg
ICAgICAgIHJldHVybiBNeUNvbGxlY3RvcihwYXJlbnQ9cGFyZW50LCBmc3BhdGg9cGF0aCkKKyAg
ICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9mdW5j
KCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItLXJlc3VsdGxvZz1sb2ciKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfcnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZTJhNjQ2M2EwMjIzZjkyZjFh
NWM1NGY4YWRmNmM2MTQ0MjA1YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcnVubmVyLnB5CkBAIC0wLDAgKzEsODEzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgorCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IG9zCitpbXBvcnQg
cHkKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKK2Zyb20gX3B5dGVzdCBpbXBvcnQgcnVubmVy
LCBtYWluLCBvdXRjb21lcworCisKK2NsYXNzIFRlc3RTZXR1cFN0YXRlKG9iamVjdCk6CisgICAg
ZGVmIHRlc3Rfc2V0dXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHNzID0gcnVubmVyLlNldHVw
U3RhdGUoKQorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6
IHBhc3MiKQorICAgICAgICB2YWx1ZXMgPSBbMV0KKyAgICAgICAgc3MucHJlcGFyZShpdGVtKQor
ICAgICAgICBzcy5hZGRmaW5hbGl6ZXIodmFsdWVzLnBvcCwgY29saXRlbT1pdGVtKQorICAgICAg
ICBhc3NlcnQgdmFsdWVzCisgICAgICAgIHNzLl9wb3BfYW5kX3RlYXJkb3duKCkKKyAgICAgICAg
YXNzZXJ0IG5vdCB2YWx1ZXMKKworICAgIGRlZiB0ZXN0X3RlYXJkb3duX2V4YWN0X3N0YWNrX2Vt
cHR5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCJkZWYg
dGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICBzcyA9IHJ1bm5lci5TZXR1cFN0YXRlKCkKKyAg
ICAgICAgc3MudGVhcmRvd25fZXhhY3QoaXRlbSwgTm9uZSkKKyAgICAgICAgc3MudGVhcmRvd25f
ZXhhY3QoaXRlbSwgTm9uZSkKKyAgICAgICAgc3MudGVhcmRvd25fZXhhY3QoaXRlbSwgTm9uZSkK
KworICAgIGRlZiB0ZXN0X3NldHVwX2ZhaWxzX2FuZF9mYWlsdXJlX2lzX2NhY2hlZChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAg
IGRlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KDQyKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOiBwYXNzCisgICAgICAgICIiIikgICMg
bm9xYQorICAgICAgICBzcyA9IHJ1bm5lci5TZXR1cFN0YXRlKCkKKyAgICAgICAgcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6IHNzLnByZXBhcmUoaXRlbSkpCisgICAgICAgIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBzcy5wcmVwYXJlKGl0ZW0pKQorCisgICAgZGVm
IHRlc3RfdGVhcmRvd25fbXVsdGlwbGVfb25lX2ZhaWxzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICByID0gW10KKworICAgICAgICBkZWYgZmluMSgpOgorICAgICAgICAgICAgci5hcHBlbmQoJ2Zp
bjEnKQorCisgICAgICAgIGRlZiBmaW4yKCk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J29vcHMnKQorCisgICAgICAgIGRlZiBmaW4zKCk6CisgICAgICAgICAgICByLmFwcGVuZCgnZmlu
MycpCisKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBw
YXNzIikKKyAgICAgICAgc3MgPSBydW5uZXIuU2V0dXBTdGF0ZSgpCisgICAgICAgIHNzLmFkZGZp
bmFsaXplcihmaW4xLCBpdGVtKQorICAgICAgICBzcy5hZGRmaW5hbGl6ZXIoZmluMiwgaXRlbSkK
KyAgICAgICAgc3MuYWRkZmluYWxpemVyKGZpbjMsIGl0ZW0pCisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhFeGNlcHRpb24pIGFzIGVycjoKKyAgICAgICAgICAgIHNzLl9jYWxsZmluYWxpemVy
cyhpdGVtKQorICAgICAgICBhc3NlcnQgZXJyLnZhbHVlLmFyZ3MgPT0gKCdvb3BzJywpCisgICAg
ICAgIGFzc2VydCByID09IFsnZmluMycsICdmaW4xJ10KKworICAgIGRlZiB0ZXN0X3RlYXJkb3du
X211bHRpcGxlX2ZhaWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICMgRW5zdXJlIHRoZSBmaXJz
dCBleGNlcHRpb24gaXMgdGhlIG9uZSB3aGljaCBpcyByZS1yYWlzZWQuCisgICAgICAgICMgSWRl
YWxseSBib3RoIHdvdWxkIGJlIHJlcG9ydGVkIGhvd2V2ZXIuCisgICAgICAgIGRlZiBmaW4xKCk6
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ29vcHMxJykKKworICAgICAgICBkZWYgZmlu
MigpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdvb3BzMicpCisKKyAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgc3Mg
PSBydW5uZXIuU2V0dXBTdGF0ZSgpCisgICAgICAgIHNzLmFkZGZpbmFsaXplcihmaW4xLCBpdGVt
KQorICAgICAgICBzcy5hZGRmaW5hbGl6ZXIoZmluMiwgaXRlbSkKKyAgICAgICAgd2l0aCBweXRl
c3QucmFpc2VzKEV4Y2VwdGlvbikgYXMgZXJyOgorICAgICAgICAgICAgc3MuX2NhbGxmaW5hbGl6
ZXJzKGl0ZW0pCisgICAgICAgIGFzc2VydCBlcnIudmFsdWUuYXJncyA9PSAoJ29vcHMyJywpCisK
KworY2xhc3MgQmFzZUZ1bmN0aW9uYWxUZXN0cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3Bhc3Nm
dW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRl
bSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQg
cmVwLnBhc3NlZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0
IHJlcC5vdXRjb21lID09ICJwYXNzZWQiCisgICAgICAgIGFzc2VydCBub3QgcmVwLmxvbmdyZXBy
CisKKyAgICBkZWYgdGVzdF9mYWlsZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJl
cG9ydHMgPSB0ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXAgPSBy
ZXBvcnRzWzFdCisgICAgICAgIGFzc2VydCBub3QgcmVwLnBhc3NlZAorICAgICAgICBhc3NlcnQg
bm90IHJlcC5za2lwcGVkCisgICAgICAgIGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgIGFzc2Vy
dCByZXAud2hlbiA9PSAiY2FsbCIKKyAgICAgICAgYXNzZXJ0IHJlcC5vdXRjb21lID09ICJmYWls
ZWQiCisgICAgICAgICMgYXNzZXJ0IGlzaW5zdGFuY2UocmVwLmxvbmdyZXByLCBSZXByRXhjZXB0
aW9uSW5mbykKKworICAgIGRlZiB0ZXN0X3NraXBmdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBweXRl
c3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMV0K
KyAgICAgICAgYXNzZXJ0IG5vdCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCBub3QgcmVwLnBh
c3NlZAorICAgICAgICBhc3NlcnQgcmVwLnNraXBwZWQKKyAgICAgICAgYXNzZXJ0IHJlcC5vdXRj
b21lID09ICJza2lwcGVkIgorICAgICAgICAjIGFzc2VydCByZXAuc2tpcHBlZC53aGVuID09ICJj
YWxsIgorICAgICAgICAjIGFzc2VydCByZXAuc2tpcHBlZC53aGVuID09ICJjYWxsIgorICAgICAg
ICAjIGFzc2VydCByZXAuc2tpcHBlZCA9PSAiJXNyZWFzb24gPT0gImhlbGxvIgorICAgICAgICAj
IGFzc2VydCByZXAuc2tpcHBlZC5sb2NhdGlvbi5saW5lbm8gPT0gMworICAgICAgICAjIGFzc2Vy
dCByZXAuc2tpcHBlZC5sb2NhdGlvbi5wYXRoCisgICAgICAgICMgYXNzZXJ0IG5vdCByZXAuc2tp
cHBlZC5mYWlsdXJlcmVwcgorCisgICAgZGVmIHRlc3Rfc2tpcF9pbl9zZXR1cF9mdW5jdGlvbihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRlbSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihm
dW5jKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICBwcmludChyZXBvcnRzKQorICAgICAgICByZXAgPSByZXBvcnRzWzBdCisgICAgICAgIGFz
c2VydCBub3QgcmVwLmZhaWxlZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5wYXNzZWQKKyAgICAg
ICAgYXNzZXJ0IHJlcC5za2lwcGVkCisgICAgICAgICMgYXNzZXJ0IHJlcC5za2lwcGVkLnJlYXNv
biA9PSAiaGVsbG8iCisgICAgICAgICMgYXNzZXJ0IHJlcC5za2lwcGVkLmxvY2F0aW9uLmxpbmVu
byA9PSAzCisgICAgICAgICMgYXNzZXJ0IHJlcC5za2lwcGVkLmxvY2F0aW9uLmxpbmVubyA9PSAz
CisgICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMgorICAgICAgICBhc3NlcnQgcmVwb3J0
c1sxXS5wYXNzZWQgICMgdGVhcmRvd24KKworICAgIGRlZiB0ZXN0X2ZhaWx1cmVfaW5fc2V0dXBf
ZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0
ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgc2V0dXBf
ZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVwID0gcmVwb3J0c1swXQorICAgICAgICBhc3NlcnQgbm90IHJlcC5z
a2lwcGVkCisgICAgICAgIGFzc2VydCBub3QgcmVwLnBhc3NlZAorICAgICAgICBhc3NlcnQgcmVw
LmZhaWxlZAorICAgICAgICBhc3NlcnQgcmVwLndoZW4gPT0gInNldHVwIgorICAgICAgICBhc3Nl
cnQgbGVuKHJlcG9ydHMpID09IDIKKworICAgIGRlZiB0ZXN0X2ZhaWx1cmVfaW5fdGVhcmRvd25f
ZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0
ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVhcmRv
d25fZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcHJpbnQocmVwb3J0cykKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBv
cnRzKSA9PSAzCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMl0KKyAgICAgICAgYXNzZXJ0IG5vdCBy
ZXAuc2tpcHBlZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5wYXNzZWQKKyAgICAgICAgYXNzZXJ0
IHJlcC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IHJlcC53aGVuID09ICJ0ZWFyZG93biIKKyAgICAg
ICAgIyBhc3NlcnQgcmVwLmxvbmdyZXByLnJlcHJjcmFzaC5saW5lbm8gPT0gMworICAgICAgICAj
IGFzc2VydCByZXAubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllcworCisgICAgZGVm
IHRlc3RfY3VzdG9tX2ZhaWx1cmVfcmVwcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKGNvbmZ0ZXN0PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgY2xhc3MgRnVuY3Rpb24ocHl0ZXN0LkZ1bmN0aW9uKToKKyAgICAgICAgICAgICAg
ICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gImhlbGxvIgorICAgICAgICAiIiIpCisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1
bml0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXAgPSByZXBvcnRzWzFdCisgICAgICAgIGFzc2VydCBub3QgcmVwLnNraXBwZWQKKyAgICAg
ICAgYXNzZXJ0IG5vdCByZXAucGFzc2VkCisgICAgICAgIGFzc2VydCByZXAuZmFpbGVkCisgICAg
ICAgICMgYXNzZXJ0IHJlcC5vdXRjb21lLndoZW4gPT0gImNhbGwiCisgICAgICAgICMgYXNzZXJ0
IHJlcC5mYWlsZWQud2hlcmUubGluZW5vID09IDMKKyAgICAgICAgIyBhc3NlcnQgcmVwLmZhaWxl
ZC53aGVyZS5wYXRoLmJhc2VuYW1lID09ICJ0ZXN0X2Z1bmMucHkiCisgICAgICAgICMgYXNzZXJ0
IHJlcC5mYWlsZWQuZmFpbHVyZXJlcHIgPT0gImhlbGxvIgorCisgICAgZGVmIHRlc3RfdGVhcmRv
d25fZmluYWxfcmV0dXJuY29kZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5j
KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKDQyKQorICAgICAgICAiIiIpCisg
ICAgICAgIGFzc2VydCByZWMucmV0ID09IDEKKworICAgIGRlZiB0ZXN0X2V4YWN0X3RlYXJkb3du
X2lzc3VlOTAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgY2xh
c3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlYXJk
b3duX2NsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigpCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3lz
CisgICAgICAgICAgICAgICAgIyBvbiBweXRob24yIGV4Y19pbmZvIGlzIGtlZXB0IHRpbGwgYSBm
dW5jdGlvbiBleGl0cworICAgICAgICAgICAgICAgICMgc28gd2Ugd291bGQgZW5kIHVwIGNhbGxp
bmcgdGVzdCBmdW5jdGlvbnMgd2hpbGUKKyAgICAgICAgICAgICAgICAjIHN5cy5leGNfaW5mbyB3
b3VsZCByZXR1cm4gdGhlIGluZGV4ZXJyb3IKKyAgICAgICAgICAgICAgICAjIGZyb20gZ3Vlc3Np
bmcgdGhlIGxhc3RpdGVtCisgICAgICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygp
CisgICAgICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICAgICAgICAgIGFzc2Vy
dCBleGNpbmZvWzBdIGlzIE5vbmUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNr
LmZvcm1hdF9leGNlcHRpb24oKmV4Y2luZm8pCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVu
Y3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXBzID0gcmVjLmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xv
Z3JlcG9ydCIpCisgICAgICAgIHByaW50KHJlcHMpCisgICAgICAgIGZvciBpIGluIHJhbmdlKDIp
OgorICAgICAgICAgICAgYXNzZXJ0IHJlcHNbaV0ubm9kZWlkLmVuZHN3aXRoKCJ0ZXN0X21ldGhv
ZCIpCisgICAgICAgICAgICBhc3NlcnQgcmVwc1tpXS5wYXNzZWQKKyAgICAgICAgYXNzZXJ0IHJl
cHNbMl0ud2hlbiA9PSAidGVhcmRvd24iCisgICAgICAgIGFzc2VydCByZXBzWzJdLmZhaWxlZAor
ICAgICAgICBhc3NlcnQgbGVuKHJlcHMpID09IDYKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMywg
NSk6CisgICAgICAgICAgICBhc3NlcnQgcmVwc1tpXS5ub2RlaWQuZW5kc3dpdGgoInRlc3RfZnVu
YyIpCisgICAgICAgICAgICBhc3NlcnQgcmVwc1tpXS5wYXNzZWQKKyAgICAgICAgYXNzZXJ0IHJl
cHNbNV0ud2hlbiA9PSAidGVhcmRvd24iCisgICAgICAgIGFzc2VydCByZXBzWzVdLm5vZGVpZC5l
bmRzd2l0aCgidGVzdF9mdW5jIikKKyAgICAgICAgYXNzZXJ0IHJlcHNbNV0uZmFpbGVkCisKKyAg
ICBkZWYgdGVzdF9leGFjdF90ZWFyZG93bl9pc3N1ZTEyMDYoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiImlzc3VlIHNoYWRvd2luZyBlcnJvciB3aXRoIHdyb25nIG51bWJlciBvZiBhcmd1bWVu
dHMgb24gdGVhcmRvd25fbWV0aG9kLiIiIgorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW5zb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGNs
YXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tZXRo
b2Qoc2VsZiwgeCwgeSwgeik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IFRydWUKKyAgICAgICAgIiIiKQorICAgICAgICByZXBzID0gcmVjLmdldHJlcG9ydHMoInB5dGVz
dF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgICAgIHByaW50KHJlcHMpCisgICAgICAgIGFzc2Vy
dCBsZW4ocmVwcykgPT0gMworICAgICAgICAjCisgICAgICAgIGFzc2VydCByZXBzWzBdLm5vZGVp
ZC5lbmRzd2l0aCgidGVzdF9tZXRob2QiKQorICAgICAgICBhc3NlcnQgcmVwc1swXS5wYXNzZWQK
KyAgICAgICAgYXNzZXJ0IHJlcHNbMF0ud2hlbiA9PSAnc2V0dXAnCisgICAgICAgICMKKyAgICAg
ICAgYXNzZXJ0IHJlcHNbMV0ubm9kZWlkLmVuZHN3aXRoKCJ0ZXN0X21ldGhvZCIpCisgICAgICAg
IGFzc2VydCByZXBzWzFdLnBhc3NlZAorICAgICAgICBhc3NlcnQgcmVwc1sxXS53aGVuID09ICdj
YWxsJworICAgICAgICAjCisgICAgICAgIGFzc2VydCByZXBzWzJdLm5vZGVpZC5lbmRzd2l0aCgi
dGVzdF9tZXRob2QiKQorICAgICAgICBhc3NlcnQgcmVwc1syXS5mYWlsZWQKKyAgICAgICAgYXNz
ZXJ0IHJlcHNbMl0ud2hlbiA9PSAidGVhcmRvd24iCisgICAgICAgIGFzc2VydCByZXBzWzJdLmxv
bmdyZXByLnJlcHJjcmFzaC5tZXNzYWdlIGluICgKKyAgICAgICAgICAgICMgcHl0aG9uMyBlcnJv
cgorICAgICAgICAgICAgIlR5cGVFcnJvcjogdGVhcmRvd25fbWV0aG9kKCkgbWlzc2luZyAyIHJl
cXVpcmVkIHBvc2l0aW9uYWwgYXJndW1lbnRzOiAneScgYW5kICd6JyIsCisgICAgICAgICAgICAj
IHB5dGhvbjIgZXJyb3IKKyAgICAgICAgICAgICdUeXBlRXJyb3I6IHRlYXJkb3duX21ldGhvZCgp
IHRha2VzIGV4YWN0bHkgNCBhcmd1bWVudHMgKDIgZ2l2ZW4pJworICAgICAgICApCisKKyAgICBk
ZWYgdGVzdF9mYWlsdXJlX2luX3NldHVwX2Z1bmN0aW9uX2lnbm9yZXNfY3VzdG9tX3JlcHIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb25mdGVzdD0iIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIEZ1bmN0aW9uKHB5dGVz
dC5GdW5jdGlvbik6CisgICAgICAgICAgICAgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNp
bmZvKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgZGVmIHNldHVwX2Z1
bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAi
IiIpCisgICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMgorICAgICAgICByZXAgPSByZXBv
cnRzWzBdCisgICAgICAgIHByaW50KHJlcCkKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAuc2tpcHBl
ZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5wYXNzZWQKKyAgICAgICAgYXNzZXJ0IHJlcC5mYWls
ZWQKKyAgICAgICAgIyBhc3NlcnQgcmVwLm91dGNvbWUud2hlbiA9PSAic2V0dXAiCisgICAgICAg
ICMgYXNzZXJ0IHJlcC5vdXRjb21lLndoZXJlLmxpbmVubyA9PSAzCisgICAgICAgICMgYXNzZXJ0
IHJlcC5vdXRjb21lLndoZXJlLnBhdGguYmFzZW5hbWUgPT0gInRlc3RfZnVuYy5weSIKKyAgICAg
ICAgIyBhc3NlcnQgaW5zdGFuYWNlKHJlcC5mYWlsZWQuZmFpbHVyZXJlcHIsIFB5dGhvbkZhaWx1
cmVSZXByKQorCisgICAgZGVmIHRlc3Rfc3lzdGVtZXhpdF9kb2VzX25vdF9iYWlsX291dChzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIu
cnVuaXRlbSgiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAg
ICAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoNDIpCisgICAgICAgICAgICAiIiIpCisgICAgICAg
IGV4Y2VwdCBTeXN0ZW1FeGl0OgorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoInJ1bm5lciBkaWQg
bm90IGNhdGNoIFN5c3RlbUV4aXQiKQorICAgICAgICByZXAgPSByZXBvcnRzWzFdCisgICAgICAg
IGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCByZXAud2hlbiA9PSAiY2FsbCIKKwor
ICAgIGRlZiB0ZXN0X2V4aXRfcHJvcGFnYXRlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIHB5dGVzdC5leGl0LkV4Y2VwdGlvbigpCisgICAgICAgICAgICAiIiIpCisg
ICAgICAgIGV4Y2VwdCBweXRlc3QuZXhpdC5FeGNlcHRpb246CisgICAgICAgICAgICBwYXNzCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBweXRlc3QuZmFpbCgiZGlkIG5vdCByYWlzZSIpCisK
KworY2xhc3MgVGVzdEV4ZWN1dGlvbk5vbkZvcmtlZChCYXNlRnVuY3Rpb25hbFRlc3RzKToKKyAg
ICBkZWYgZ2V0cnVubmVyKHNlbGYpOgorICAgICAgICBkZWYgZihpdGVtKToKKyAgICAgICAgICAg
IHJldHVybiBydW5uZXIucnVudGVzdHByb3RvY29sKGl0ZW0sIGxvZz1GYWxzZSkKKyAgICAgICAg
cmV0dXJuIGYKKworICAgIGRlZiB0ZXN0X2tleWJvYXJkaW50ZXJydXB0X3Byb3BhZ2F0ZXMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RkaXIucnVuaXRlbSgi
IiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIEtleWJvYXJkSW50ZXJydXB0KCJmYWtlIikKKyAgICAgICAgICAgICIiIikKKyAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcGFzcworICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoImRpZCBub3QgcmFpc2UiKQorCisKK2NsYXNz
IFRlc3RFeGVjdXRpb25Gb3JrZWQoQmFzZUZ1bmN0aW9uYWxUZXN0cyk6CisgICAgcHl0ZXN0bWFy
ayA9IHB5dGVzdC5tYXJrLnNraXBpZigibm90IGhhc2F0dHIob3MsICdmb3JrJykiKQorCisgICAg
ZGVmIGdldHJ1bm5lcihzZWxmKToKKyAgICAgICAgIyBYWFggcmUtYXJyYW5nZSB0aGlzIHRlc3Qg
dG8gbGl2ZSBpbiBweXRlc3QteGRpc3QKKyAgICAgICAgYm94ZWQgPSBweXRlc3QuaW1wb3J0b3Jz
a2lwKCJ4ZGlzdC5ib3hlZCIpCisgICAgICAgIHJldHVybiBib3hlZC5mb3JrZWRfcnVuX3JlcG9y
dAorCisgICAgZGVmIHRlc3Rfc3VpY2lkZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwb3J0
cyA9IHRlc3RkaXIucnVuaXRlbSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAg
ICAgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgICAgICBvcy5raWxsKG9zLmdldHBp
ZCgpLCAxNSkKKyAgICAgICAgIiIiKQorICAgICAgICByZXAgPSByZXBvcnRzWzBdCisgICAgICAg
IGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCByZXAud2hlbiA9PSAiPz8/IgorCisK
K2NsYXNzIFRlc3RTZXNzaW9uUmVwb3J0cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2NvbGxlY3Rf
cmVzdWx0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNv
bCgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJ1bm5lci5jb2xsZWN0X29uZV9ub2Rl
KGNvbCkKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCBub3Qg
cmVwLnNraXBwZWQKKyAgICAgICAgYXNzZXJ0IHJlcC5wYXNzZWQKKyAgICAgICAgbG9jaW5mbyA9
IHJlcC5sb2NhdGlvbgorICAgICAgICBhc3NlcnQgbG9jaW5mb1swXSA9PSBjb2wuZnNwYXRoLmJh
c2VuYW1lCisgICAgICAgIGFzc2VydCBub3QgbG9jaW5mb1sxXQorICAgICAgICBhc3NlcnQgbG9j
aW5mb1syXSA9PSBjb2wuZnNwYXRoLmJhc2VuYW1lCisgICAgICAgIHJlcyA9IHJlcC5yZXN1bHQK
KyAgICAgICAgYXNzZXJ0IGxlbihyZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHJlc1swXS5uYW1l
ID09ICJ0ZXN0X2Z1bmMxIgorICAgICAgICBhc3NlcnQgcmVzWzFdLm5hbWUgPT0gIlRlc3RDbGFz
cyIKKworCityZXBvcnR0eXBlcyA9IFsKKyAgICBydW5uZXIuQmFzZVJlcG9ydCwKKyAgICBydW5u
ZXIuVGVzdFJlcG9ydCwKKyAgICBydW5uZXIuVGVhcmRvd25FcnJvclJlcG9ydCwKKyAgICBydW5u
ZXIuQ29sbGVjdFJlcG9ydCwKK10KKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3JlcG9y
dHR5cGUnLCByZXBvcnR0eXBlcywgaWRzPVt4Ll9fbmFtZV9fIGZvciB4IGluIHJlcG9ydHR5cGVz
XSkKK2RlZiB0ZXN0X3JlcG9ydF9leHRyYV9wYXJhbWV0ZXJzKHJlcG9ydHR5cGUpOgorICAgIGlm
IGhhc2F0dHIocHkuc3RkLmluc3BlY3QsICdzaWduYXR1cmUnKToKKyAgICAgICAgYXJncyA9IGxp
c3QocHkuc3RkLmluc3BlY3Quc2lnbmF0dXJlKHJlcG9ydHR5cGUuX19pbml0X18pLnBhcmFtZXRl
cnMua2V5cygpKVsxOl0KKyAgICBlbHNlOgorICAgICAgICBhcmdzID0gcHkuc3RkLmluc3BlY3Qu
Z2V0YXJnc3BlYyhyZXBvcnR0eXBlLl9faW5pdF9fKVswXVsxOl0KKyAgICBiYXNla3cgPSBkaWN0
LmZyb21rZXlzKGFyZ3MsIFtdKQorICAgIHJlcG9ydCA9IHJlcG9ydHR5cGUobmV3dGhpbmc9MSwg
KipiYXNla3cpCisgICAgYXNzZXJ0IHJlcG9ydC5uZXd0aGluZyA9PSAxCisKKworZGVmIHRlc3Rf
Y2FsbGluZm8oKToKKyAgICBjaSA9IHJ1bm5lci5DYWxsSW5mbyhsYW1iZGE6IDAsICcxMjMnKQor
ICAgIGFzc2VydCBjaS53aGVuID09ICIxMjMiCisgICAgYXNzZXJ0IGNpLnJlc3VsdCA9PSAwCisg
ICAgYXNzZXJ0ICJyZXN1bHQiIGluIHJlcHIoY2kpCisgICAgY2kgPSBydW5uZXIuQ2FsbEluZm8o
bGFtYmRhOiAwIC8gMCwgJzEyMycpCisgICAgYXNzZXJ0IGNpLndoZW4gPT0gIjEyMyIKKyAgICBh
c3NlcnQgbm90IGhhc2F0dHIoY2ksICdyZXN1bHQnKQorICAgIGFzc2VydCBjaS5leGNpbmZvCisg
ICAgYXNzZXJ0ICJleGMiIGluIHJlcHIoY2kpCisKKyMgZGVzaWduIHF1ZXN0aW9uOiBkbyB3ZSB3
YW50IGdlbmVyYWwgaG9va3MgaW4gcHl0aG9uIGZpbGVzPworIyB0aGVuIHNvbWV0aGluZyBsaWtl
IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25hbCB0ZXN0cyBtYWtlcyBzZW5zZQorCisKK0BweXRlc3Qu
bWFyay54ZmFpbAorZGVmIHRlc3RfcnVudGVzdF9pbl9tb2R1bGVfb3JkZXJpbmcodGVzdGRpcik6
CisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOiAjIHJ1bnMgYWZ0ZXIgY2xh
c3MtbGV2ZWwhCisgICAgICAgICAgICBpdGVtLmZ1bmN0aW9uLm15bGlzdC5hcHBlbmQoIm1vZHVs
ZSIpCisgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgZGVmIHB5
dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBu
b3QgaGFzYXR0cihpdGVtLmZ1bmN0aW9uLCAnbXlsaXN0JykKKyAgICAgICAgICAgICAgICBpdGVt
LmZ1bmN0aW9uLm15bGlzdCA9IFsnY2xhc3MnXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgbXlsaXN0KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IHJldHVybiByZXF1ZXN0LmZ1bmN0aW9uLm15bGlzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9y
dW50ZXN0X2NhbGwoc2VsZiwgaXRlbSwgX19tdWx0aWNhbGxfXyk6CisgICAgICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgICAgICBfX211bHRpY2FsbF9fLmV4ZWN1dGUoKQorICAgICAg
ICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICAgICBkZWYgdGVzdF9oZWxsbzEoc2VsZiwgbXlsaXN0KToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgbXlsaXN0ID09IFsnY2xhc3MnLCAnbW9kdWxlJ10sIG15bGlzdAorICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8yKHNl
bGYsIG15bGlzdCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG15bGlzdCA9PSBbJ2NsYXNzJywg
J21vZHVsZSddLCBteWxpc3QKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0
ZW0pOgorICAgICAgICAgICAgZGVsIGl0ZW0uZnVuY3Rpb24ubXlsaXN0CisgICAgIiIiKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAxKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICIqMiBwYXNzZWQqIgorICAgIF0pCisKKworZGVmIHRlc3Rfb3V0
Y29tZWV4Y2VwdGlvbl9leGNlcHRpb25hdHRyaWJ1dGVzKCk6CisgICAgb3V0Y29tZSA9IG91dGNv
bWVzLk91dGNvbWVFeGNlcHRpb24oJ3Rlc3QnKQorICAgIGFzc2VydCBvdXRjb21lLmFyZ3NbMF0g
PT0gb3V0Y29tZS5tc2cKKworCitkZWYgdGVzdF9vdXRjb21lZXhjZXB0aW9uX3Bhc3Nlc19leGNl
cHRfRXhjZXB0aW9uKCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKG91dGNvbWVzLk91dGNvbWVF
eGNlcHRpb24pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByYWlzZSBvdXRjb21lcy5PdXRj
b21lRXhjZXB0aW9uKCd0ZXN0JykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHBhc3MKKworCitkZWYgdGVzdF9weXRlc3RfZXhpdCgpOgorICAgIHRyeToKKyAgICAgICAg
cHl0ZXN0LmV4aXQoImhlbGxvIikKKyAgICBleGNlcHQgcHl0ZXN0LmV4aXQuRXhjZXB0aW9uOgor
ICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAg
YXNzZXJ0IGV4Y2luZm8uZXJyaXNpbnN0YW5jZShLZXlib2FyZEludGVycnVwdCkKKworCitkZWYg
dGVzdF9weXRlc3RfZmFpbCgpOgorICAgIHRyeToKKyAgICAgICAgcHl0ZXN0LmZhaWwoImhlbGxv
IikKKyAgICBleGNlcHQgcHl0ZXN0LmZhaWwuRXhjZXB0aW9uOgorICAgICAgICBleGNpbmZvID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgcyA9IGV4Y2luZm8uZXhjb25s
eSh0cnlzaG9ydD1UcnVlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCJGYWlsZWQiKQor
CisKK2RlZiB0ZXN0X3B5dGVzdF9leGl0X21zZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgiIiIKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgcHl0ZXN0X2NvbmZpZ3Vy
ZShjb25maWcpOgorICAgICAgICBweXRlc3QuZXhpdCgnb2ggbm9lcycpCisgICAgIiIiKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hf
bGluZXMoWworICAgICAgICAiRXhpdDogb2ggbm9lcyIsCisgICAgXSkKKworCitkZWYgdGVzdF9w
eXRlc3RfZmFpbF9ub3RyYWNlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAg
ICAgICAgcHl0ZXN0LmZhaWwoImhlbGxvIiwgcHl0cmFjZT1GYWxzZSkKKyAgICAgICAgZGVmIHRl
YXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJ3b3Js
ZCIsIHB5dHJhY2U9RmFsc2UpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAid29ybGQi
LAorICAgICAgICAiaGVsbG8iLAorICAgIF0pCisgICAgYXNzZXJ0ICdkZWYgdGVhcmRvd25fZnVu
Y3Rpb24nIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdzdHJfcHJlZml4JywgWyd1JywgJyddKQorZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90
cmFjZV9ub25fYXNjaWkodGVzdGRpciwgc3RyX3ByZWZpeCk6CisgICAgIiIiRml4IHB5dGVzdC5m
YWlsIHdpdGggcHl0cmFjZT1GYWxzZSB3aXRoIG5vbi1hc2NpaSBjaGFyYWN0ZXJzICgjMTE3OCku
CisKKyAgICBUaGlzIHRlc3RzIHdpdGggbmF0aXZlIGFuZCB1bmljb2RlIHN0cmluZ3MgY29udGFp
bmluZyBub24tYXNjaWkgY2hhcnMuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHUi
IiIKKyAgICAgICAgIyBjb2Rpbmc6IHV0Zi04CisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoJXMnb2ggb2g6
IOKYuicsIHB5dHJhY2U9RmFsc2UpCisgICAgIiIiICUgc3RyX3ByZWZpeCkKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqdGVzdF9oZWxsbyonLCAib2gg
b2g6IOKYuiJdKQorICAgIGVsc2U6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbJyp0ZXN0X2hlbGxvKicsICJvaCBvaDogKiJdKQorICAgIGFzc2VydCAnZGVmIHRlc3RfaGVs
bG8nIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfcHl0ZXN0X25vX3Rl
c3RzX2NvbGxlY3RlZF9leGl0X3N0YXR1cyh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqY29sbGVjdGVk
IDAgaXRlbXMqJykKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBtYWluLkVYSVRfTk9URVNUU0NP
TExFQ1RFRAorCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgorICAgICAgICBk
ZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIGFzc2VydCAxCisgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Jypjb2xsZWN0ZWQgMSBpdGVtKicpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcq
MSBwYXNzZWQqJykKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBtYWluLkVYSVRfT0sKKworICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctayBub25tYXRjaCcpCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCcqY29sbGVjdGVkIDEgaXRlbSonKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygnKjEgZGVzZWxlY3RlZConKQorICAgIGFzc2VydCByZXN1bHQucmV0
ID09IG1haW4uRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworZGVmIHRlc3RfZXhjZXB0aW9uX3By
aW50aW5nX3NraXAoKToKKyAgICB0cnk6CisgICAgICAgIHB5dGVzdC5za2lwKCJoZWxsbyIpCisg
ICAgZXhjZXB0IHB5dGVzdC5za2lwLkV4Y2VwdGlvbjoKKyAgICAgICAgZXhjaW5mbyA9IF9weXRl
c3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIHMgPSBleGNpbmZvLmV4Y29ubHkodHJ5
c2hvcnQ9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiU2tpcHBlZCIpCisKKwor
ZGVmIHRlc3RfaW1wb3J0b3Jza2lwKG1vbmtleXBhdGNoKToKKyAgICBpbXBvcnRvcnNraXAgPSBw
eXRlc3QuaW1wb3J0b3Jza2lwCisKKyAgICBkZWYgZigpOgorICAgICAgICBpbXBvcnRvcnNraXAo
ImFzZGxraiIpCisKKyAgICB0cnk6CisgICAgICAgIHN5cyA9IGltcG9ydG9yc2tpcCgic3lzIikg
ICMgbm9xYQorICAgICAgICBhc3NlcnQgc3lzID09IHB5LnN0ZC5zeXMKKyAgICAgICAgIyBwYXRo
ID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgib3MucGF0aCIpCisgICAgICAgICMgYXNzZXJ0IHBhdGgg
PT0gcHkuc3RkLm9zLnBhdGgKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMocHl0ZXN0
LnNraXAuRXhjZXB0aW9uLCBmKQorICAgICAgICBwYXRoID0gcHkucGF0aC5sb2NhbChleGNpbmZv
LmdldHJlcHIoKS5yZXByY3Jhc2gucGF0aCkKKyAgICAgICAgIyBjaGVjayB0aGF0IGltcG9ydG9y
c2tpcCByZXBvcnRzIHRoZSBhY3R1YWwgY2FsbAorICAgICAgICAjIGluIHRoaXMgdGVzdCB0aGUg
dGVzdF9ydW5uZXIucHkgZmlsZQorICAgICAgICBhc3NlcnQgcGF0aC5wdXJlYmFzZW5hbWUgPT0g
InRlc3RfcnVubmVyIgorICAgICAgICBweXRlc3QucmFpc2VzKFN5bnRheEVycm9yLCAicHl0ZXN0
LmltcG9ydG9yc2tpcCgneCB5IHonKSIpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJy
b3IsICJweXRlc3QuaW1wb3J0b3Jza2lwKCd4PXknKSIpCisgICAgICAgIG1vZCA9IHB5LnN0ZC50
eXBlcy5Nb2R1bGVUeXBlKCJoZWxsbzEyMyIpCisgICAgICAgIG1vZC5fX3ZlcnNpb25fXyA9ICIx
LjMiCisgICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsICJoZWxsbzEyMyIs
IG1vZCkKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhweXRlc3Quc2tpcC5FeGNlcHRpb24sICIiIgor
ICAgICAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgiaGVsbG8xMjMiLCBtaW52ZXJzaW9uPSIx
LjMuMSIpCisgICAgICAgICIiIikKKyAgICAgICAgbW9kMiA9IHB5dGVzdC5pbXBvcnRvcnNraXAo
ImhlbGxvMTIzIiwgbWludmVyc2lvbj0iMS4zIikKKyAgICAgICAgYXNzZXJ0IG1vZDIgPT0gbW9k
CisgICAgZXhjZXB0IHB5dGVzdC5za2lwLkV4Y2VwdGlvbjoKKyAgICAgICAgcHJpbnQoX3B5dGVz
dC5fY29kZS5FeGNlcHRpb25JbmZvKCkpCisgICAgICAgIHB5dGVzdC5mYWlsKCJzcHVyaW91cyBz
a2lwIikKKworCitkZWYgdGVzdF9pbXBvcnRvcnNraXBfaW1wb3J0c19sYXN0X21vZHVsZV9wYXJ0
KCk6CisgICAgb3NwYXRoID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgib3MucGF0aCIpCisgICAgYXNz
ZXJ0IG9zLnBhdGggPT0gb3NwYXRoCisKKworZGVmIHRlc3RfaW1wb3J0b3Jza2lwX2Rldl9tb2R1
bGUobW9ua2V5cGF0Y2gpOgorICAgIHRyeToKKyAgICAgICAgbW9kID0gcHkuc3RkLnR5cGVzLk1v
ZHVsZVR5cGUoIm1vY2ttb2R1bGUiKQorICAgICAgICBtb2QuX192ZXJzaW9uX18gPSAnMC4xMy4w
LmRldi00MzI5MCcKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgJ21v
Y2ttb2R1bGUnLCBtb2QpCisgICAgICAgIG1vZDIgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCdtb2Nr
bW9kdWxlJywgbWludmVyc2lvbj0nMC4xMi4wJykKKyAgICAgICAgYXNzZXJ0IG1vZDIgPT0gbW9k
CisgICAgICAgIHB5dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0aW9uLCAiIiIKKyAgICAg
ICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoJ21vY2ttb2R1bGUxJywgbWludmVyc2lvbj0nMC4x
NC4wJykiIiIpCisgICAgZXhjZXB0IHB5dGVzdC5za2lwLkV4Y2VwdGlvbjoKKyAgICAgICAgcHJp
bnQoX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkpCisgICAgICAgIHB5dGVzdC5mYWlsKCJz
cHVyaW91cyBza2lwIikKKworCitkZWYgdGVzdF9pbXBvcnRvcnNraXBfbW9kdWxlX2xldmVsKHRl
c3RkaXIpOgorICAgICIiImltcG9ydG9yc2tpcCBtdXN0IGJlIGFibGUgdG8gc2tpcCBlbnRpcmUg
bW9kdWxlcyB3aGVuIHVzZWQgYXQgbW9kdWxlIGxldmVsIiIiCisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGZvb2JhcmJheiA9IHB5dGVz
dC5pbXBvcnRvcnNraXAoImZvb2JhcmJheiIpCisKKyAgICAgICAgZGVmIHRlc3RfZm9vKCk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqY29sbGVjdGVkIDAgaXRlbXMg
LyAxIHNraXBwZWQqJ10pCisKKworZGVmIHRlc3RfcHl0ZXN0X2NtZGxpbmVfbWFpbih0ZXN0ZGly
KToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBhc3NlcnQgMQorICAgICAg
ICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAgICAgICBweXRlc3QuY21kbGluZS5t
YWluKFtfX2ZpbGVfX10pCisgICAgIiIiKQorICAgIGltcG9ydCBzdWJwcm9jZXNzCisgICAgcG9w
ZW4gPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgc3RyKHApXSwgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSkKKyAgICBwb3Blbi5jb21tdW5pY2F0ZSgpCisgICAgcmV0ID0gcG9wZW4u
d2FpdCgpCisgICAgYXNzZXJ0IHJldCA9PSAwCisKKworZGVmIHRlc3RfdW5pY29kZV9pbl9sb25n
cmVwcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgIGRlZiBweXRlc3RfcnVudGVz
dF9tYWtlcmVwb3J0KCk6CisgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAg
IHJlcCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgICAgICAgICBpZiByZXAud2hlbiA9PSAi
Y2FsbCI6CisgICAgICAgICAgICAgICAgcmVwLmxvbmdyZXByID0gdSfDpCcKKyAgICAiIiIpCisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9vdXQoKToKKyAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgYXNzZXJ0ICJVbmljb2RlRW5jb2Rl
RXJyb3IiIG5vdCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCisKKworZGVmIHRlc3RfZmFpbHVyZV9p
bl9zZXR1cCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRl
ZiBzZXR1cF9tb2R1bGUoKToKKyAgICAgICAgICAgIDAvMAorICAgICAgICBkZWYgdGVzdF9mdW5j
KCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItLXRiPWxpbmUiKQorICAgIGFzc2VydCAiZGVmIHNldHVwX21vZHVsZSIgbm90IGlu
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9tYWtlcmVwb3J0X2dldHNvdXJjZSh0
ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2Zv
bygpOgorICAgICAgICAgICAgaWYgRmFsc2U6IHBhc3MKKyAgICAgICAgICAgIGVsc2U6IGFzc2Vy
dCBGYWxzZQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
YXNzZXJ0ICdJTlRFUk5BTEVSUk9SJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyplbHNlOiBhc3NlcnQgRmFsc2UqJ10pCisKKwor
ZGVmIHRlc3RfbWFrZXJlcG9ydF9nZXRzb3VyY2VfZHluYW1pY19jb2RlKHRlc3RkaXIsIG1vbmtl
eXBhdGNoKToKKyAgICAiIiJUZXN0IHRoYXQgZXhjZXB0aW9uIGluIGR5bmFtaWNhbGx5IGdlbmVy
YXRlZCBjb2RlIGRvZXNuJ3QgYnJlYWsgZ2V0dGluZyB0aGUgc291cmNlIGxpbmUuIiIiCisgICAg
aW1wb3J0IGluc3BlY3QKKyAgICBvcmlnaW5hbF9maW5kc291cmNlID0gaW5zcGVjdC5maW5kc291
cmNlCisKKyAgICBkZWYgZmluZHNvdXJjZShvYmosICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
ICMgQ2FuIGJlIHRyaWdnZXJlZCBieSBkeW5hbWljYWxseSBjcmVhdGVkIGZ1bmN0aW9ucworICAg
ICAgICBpZiBvYmouX19uYW1lX18gPT0gJ2Zvbyc6CisgICAgICAgICAgICByYWlzZSBJbmRleEVy
cm9yKCkKKyAgICAgICAgcmV0dXJuIG9yaWdpbmFsX2ZpbmRzb3VyY2Uob2JqLCAqYXJncywgKipr
d2FyZ3MpCisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGluc3BlY3QsICdmaW5kc291cmNlJywg
ZmluZHNvdXJjZSkKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZm9vKG1pc3Np
bmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRlZiB0ZXN0X2ZpeChmb28pOgorICAg
ICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCctdnYnKQorICAgIGFzc2VydCAnSU5URVJOQUxFUlJPUicgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9maXgq
IiwgIipmaXh0dXJlKidtaXNzaW5nJypub3QgZm91bmQqIl0pCisKKworZGVmIHRlc3Rfc3RvcmVf
ZXhjZXB0X2luZm9fb25fZXJvcigpOgorICAgICIiIiBUZXN0IHRoYXQgdXBvbiB0ZXN0IGZhaWx1
cmUsIHRoZSBleGNlcHRpb24gaW5mbyBpcyBzdG9yZWQgb24KKyAgICBzeXMubGFzdF90cmFjZWJh
Y2sgYW5kIGZyaWVuZHMuCisgICAgIiIiCisgICAgIyBTaW11bGF0ZSBpdGVtIHRoYXQgcmFpc2Vz
IGEgc3BlY2lmaWMgZXhjZXB0aW9uCisgICAgY2xhc3MgSXRlbVRoYXRSYWlzZXMob2JqZWN0KToK
KyAgICAgICAgbm9kZWlkID0gJ2l0ZW1fdGhhdF9yYWlzZXMnCisKKyAgICAgICAgZGVmIHJ1bnRl
c3Qoc2VsZik6CisgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCdURVNUJykKKyAgICB0cnk6
CisgICAgICAgIHJ1bm5lci5weXRlc3RfcnVudGVzdF9jYWxsKEl0ZW1UaGF0UmFpc2VzKCkpCisg
ICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICAjIENoZWNrIHRoYXQgZXhj
ZXB0aW9uIGluZm8gaXMgc3RvcmVkIG9uIHN5cworICAgIGFzc2VydCBzeXMubGFzdF90eXBlIGlz
IEluZGV4RXJyb3IKKyAgICBhc3NlcnQgc3lzLmxhc3RfdmFsdWUuYXJnc1swXSA9PSAnVEVTVCcK
KyAgICBhc3NlcnQgc3lzLmxhc3RfdHJhY2ViYWNrCisKKworZGVmIHRlc3RfY3VycmVudF90ZXN0
X2Vudl92YXIodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIHB5dGVzdF9jdXJyZW50X3Rlc3Rf
dmFycyA9IFtdCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICdweXRlc3RfY3VycmVudF90
ZXN0X3ZhcnMnLCBweXRlc3RfY3VycmVudF90ZXN0X3ZhcnMsIHJhaXNpbmc9RmFsc2UpCisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGlt
cG9ydCBzeXMKKyAgICAgICAgaW1wb3J0IG9zCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisg
ICAgICAgIGRlZiBmaXgoKToKKyAgICAgICAgICAgIHN5cy5weXRlc3RfY3VycmVudF90ZXN0X3Zh
cnMuYXBwZW5kKCgnc2V0dXAnLCBvcy5lbnZpcm9uWydQWVRFU1RfQ1VSUkVOVF9URVNUJ10pKQor
ICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgIHN5cy5weXRlc3RfY3VycmVudF90ZXN0X3Zh
cnMuYXBwZW5kKCgndGVhcmRvd24nLCBvcy5lbnZpcm9uWydQWVRFU1RfQ1VSUkVOVF9URVNUJ10p
KQorCisgICAgICAgIGRlZiB0ZXN0KGZpeCk6CisgICAgICAgICAgICBzeXMucHl0ZXN0X2N1cnJl
bnRfdGVzdF92YXJzLmFwcGVuZCgoJ2NhbGwnLCBvcy5lbnZpcm9uWydQWVRFU1RfQ1VSUkVOVF9U
RVNUJ10pKQorICAgICcnJykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9pbnByb2Nl
c3MoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICB0ZXN0X2lkID0gJ3Rlc3RfY3Vy
cmVudF90ZXN0X2Vudl92YXIucHk6OnRlc3QnCisgICAgYXNzZXJ0IHB5dGVzdF9jdXJyZW50X3Rl
c3RfdmFycyA9PSBbCisgICAgICAgICgnc2V0dXAnLCB0ZXN0X2lkICsgJyAoc2V0dXApJyksICgn
Y2FsbCcsIHRlc3RfaWQgKyAnIChjYWxsKScpLCAoJ3RlYXJkb3duJywgdGVzdF9pZCArICcgKHRl
YXJkb3duKScpXQorICAgIGFzc2VydCAnUFlURVNUX0NVUlJFTlRfVEVTVCcgbm90IGluIG9zLmVu
dmlyb24KKworCitjbGFzcyBUZXN0UmVwb3J0Q29udGVudHMob2JqZWN0KToKKyAgICAiIiIKKyAg
ICBUZXN0IHVzZXItbGV2ZWwgQVBJIG9mIGBgVGVzdFJlcG9ydGBgIG9iamVjdHMuCisgICAgIiIi
CisKKyAgICBkZWYgZ2V0cnVubmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gbGFtYmRhIGl0ZW06
IHJ1bm5lci5ydW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPUZhbHNlKQorCisgICAgZGVmIHRlc3Rf
bG9uZ3JlcHJ0ZXh0X3Bhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0
ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMV0KKyAgICAg
ICAgYXNzZXJ0IHJlcC5sb25ncmVwcnRleHQgPT0gJycKKworICAgIGRlZiB0ZXN0X2xvbmdyZXBy
dGV4dF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXBvcnRzID0gdGVzdGRpci5y
dW5pdGVtKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAg
IHggPSAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IHggPT0gNAorICAgICAgICAiIiIpCisgICAg
ICAgIHJlcCA9IHJlcG9ydHNbMV0KKyAgICAgICAgYXNzZXJ0ICdhc3NlcnQgMSA9PSA0JyBpbiBy
ZXAubG9uZ3JlcHJ0ZXh0CisKKyAgICBkZWYgdGVzdF9jYXB0dXJlZF90ZXh0KHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICByZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgaW1wb3J0IHN5cworCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgoKToKKyAgICAgICAgICAgICAgICBzeXMu
c3Rkb3V0LndyaXRlKCdzZXR1cDogc3Rkb3V0XFxuJykKKyAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCdzZXR1cDogc3RkZXJyXFxuJykKKyAgICAgICAgICAgICAgICB5aWVsZAorICAg
ICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ3RlYXJkb3duOiBzdGRvdXRcXG4nKQorICAg
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3RlYXJkb3duOiBzdGRlcnJcXG4nKQorICAg
ICAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoZml4KToK
KyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdjYWxsOiBzdGRvdXRcXG4nKQorICAg
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ2NhbGw6IHN0ZGVyclxcbicpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBzZXR1cCwgY2FsbCwgdGVh
cmRvd24gPSByZXBvcnRzCisgICAgICAgIGFzc2VydCBzZXR1cC5jYXBzdGRvdXQgPT0gJ3NldHVw
OiBzdGRvdXRcbicKKyAgICAgICAgYXNzZXJ0IGNhbGwuY2Fwc3Rkb3V0ID09ICdzZXR1cDogc3Rk
b3V0XG5jYWxsOiBzdGRvdXRcbicKKyAgICAgICAgYXNzZXJ0IHRlYXJkb3duLmNhcHN0ZG91dCA9
PSAnc2V0dXA6IHN0ZG91dFxuY2FsbDogc3Rkb3V0XG50ZWFyZG93bjogc3Rkb3V0XG4nCisKKyAg
ICAgICAgYXNzZXJ0IHNldHVwLmNhcHN0ZGVyciA9PSAnc2V0dXA6IHN0ZGVyclxuJworICAgICAg
ICBhc3NlcnQgY2FsbC5jYXBzdGRlcnIgPT0gJ3NldHVwOiBzdGRlcnJcbmNhbGw6IHN0ZGVyclxu
JworICAgICAgICBhc3NlcnQgdGVhcmRvd24uY2Fwc3RkZXJyID09ICdzZXR1cDogc3RkZXJyXG5j
YWxsOiBzdGRlcnJcbnRlYXJkb3duOiBzdGRlcnJcbicKKworICAgIGRlZiB0ZXN0X25vX2NhcHR1
cmVkX3RleHQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0
ZW0oIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMV0KKyAgICAgICAgYXNzZXJ0
IHJlcC5jYXBzdGRvdXQgPT0gJycKKyAgICAgICAgYXNzZXJ0IHJlcC5jYXBzdGRlcnIgPT0gJycK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjOTMx
Zjg2NzIwYWMzOTAzYmZhMjA1Yjc4ODdjNGRmNmI0ZTQwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5CkBAIC0wLDAgKzEsMzE5IEBA
CisiIiIKKyB0ZXN0IGNvcnJlY3Qgc2V0dXAvdGVhcmRvd25zIGF0CisgbW9kdWxlLCBjbGFzcywg
YW5kIGluc3RhbmNlIGxldmVsCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweXRlc3QKKworCitkZWYg
dGVzdF9tb2R1bGVfYW5kX2Z1bmN0aW9uX3NldHVwKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgbW9kbGV2ZWwgPSBbXQorICAgICAg
ICBkZWYgc2V0dXBfbW9kdWxlKG1vZHVsZSk6CisgICAgICAgICAgICBhc3NlcnQgbm90IG1vZGxl
dmVsCisgICAgICAgICAgICBtb2R1bGUubW9kbGV2ZWwuYXBwZW5kKDQyKQorCisgICAgICAgIGRl
ZiB0ZWFyZG93bl9tb2R1bGUobW9kdWxlKToKKyAgICAgICAgICAgIG1vZGxldmVsLnBvcCgpCisK
KyAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgICAgIGZ1bmN0
aW9uLmFuc3dlciA9IDE3CisKKyAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9u
KToKKyAgICAgICAgICAgIGRlbCBmdW5jdGlvbi5hbnN3ZXIKKworICAgICAgICBkZWYgdGVzdF9t
b2RsZXZlbCgpOgorICAgICAgICAgICAgYXNzZXJ0IG1vZGxldmVsWzBdID09IDQyCisgICAgICAg
ICAgICBhc3NlcnQgdGVzdF9tb2RsZXZlbC5hbnN3ZXIgPT0gMTcKKworICAgICAgICBjbGFzcyBU
ZXN0RnJvbUNsYXNzKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IG1vZGxldmVsWzBdID09IDQyCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHRlc3RfbW9kbGV2ZWwsICdhbnN3ZXInKQorICAgICIiIikK
KyAgICByZXAgPSByZXByZWMubWF0Y2hyZXBvcnQoInRlc3RfbW9kbGV2ZWwiKQorICAgIGFzc2Vy
dCByZXAucGFzc2VkCisgICAgcmVwID0gcmVwcmVjLm1hdGNocmVwb3J0KCJ0ZXN0X21vZHVsZSIp
CisgICAgYXNzZXJ0IHJlcC5wYXNzZWQKKworCitkZWYgdGVzdF9tb2R1bGVfc2V0dXBfZmFpbHVy
ZV9ub190ZWFyZG93bih0ZXN0ZGlyKToKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5z
b3VyY2UoIiIiCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUo
bW9kdWxlKToKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgIDAvMAor
CisgICAgICAgIGRlZiB0ZXN0X25vdGhpbmcoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICBkZWYgdGVhcmRvd25fbW9kdWxlKG1vZHVsZSk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KDIpCisgICAgIiIiKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKGZhaWxlZD0xKQorICAgIGNh
bGxzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9zZXR1cCIpCisgICAgYXNzZXJ0
IGNhbGxzWzBdLml0ZW0ubW9kdWxlLnZhbHVlcyA9PSBbMV0KKworCitkZWYgdGVzdF9zZXR1cF9m
dW5jdGlvbl9mYWlsdXJlX25vX3RlYXJkb3duKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgbW9kbGV2ZWwgPSBbXQorICAgICAgICBk
ZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgbW9kbGV2ZWwuYXBwZW5k
KDEpCisgICAgICAgICAgICAwLzAKKworICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24obW9k
dWxlKToKKyAgICAgICAgICAgIG1vZGxldmVsLmFwcGVuZCgyKQorCisgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgY2FsbHMgPSByZXByZWMu
Z2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X3NldHVwIikKKyAgICBhc3NlcnQgY2FsbHNbMF0uaXRl
bS5tb2R1bGUubW9kbGV2ZWwgPT0gWzFdCisKKworZGVmIHRlc3RfY2xhc3Nfc2V0dXAodGVzdGRp
cik6CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBj
bGFzcyBUZXN0U2ltcGxlQ2xhc3NTZXR1cChvYmplY3QpOgorICAgICAgICAgICAgY2xzbGV2ZWwg
PSBbXQorICAgICAgICAgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CisgICAgICAgICAgICAgICAg
Y2xzLmNsc2xldmVsLmFwcGVuZCgyMykKKworICAgICAgICAgICAgZGVmIHRlYXJkb3duX2NsYXNz
KGNscyk6CisgICAgICAgICAgICAgICAgY2xzLmNsc2xldmVsLnBvcCgpCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2NsYXNzbGV2ZWwoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYu
Y2xzbGV2ZWxbMF0gPT0gMjMKKworICAgICAgICBjbGFzcyBUZXN0SW5oZXJpdGVkQ2xhc3NTZXR1
cFN0aWxsV29ya3MoVGVzdFNpbXBsZUNsYXNzU2V0dXApOgorICAgICAgICAgICAgZGVmIHRlc3Rf
Y2xhc3NsZXZlbF9hbm90aGVydGltZShzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2Vs
Zi5jbHNsZXZlbCA9PSBbMjNdCisKKyAgICAgICAgZGVmIHRlc3RfY2xlYW51cCgpOgorICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBUZXN0U2ltcGxlQ2xhc3NTZXR1cC5jbHNsZXZlbAorICAgICAgICAg
ICAgYXNzZXJ0IG5vdCBUZXN0SW5oZXJpdGVkQ2xhc3NTZXR1cFN0aWxsV29ya3MuY2xzbGV2ZWwK
KyAgICAiIiIpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEgKyAyICsgMSkKKwor
CitkZWYgdGVzdF9jbGFzc19zZXR1cF9mYWlsdXJlX25vX3RlYXJkb3duKHRlc3RkaXIpOgorICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgY2xhc3MgVGVz
dFNpbXBsZUNsYXNzU2V0dXAob2JqZWN0KToKKyAgICAgICAgICAgIGNsc2xldmVsID0gW10KKyAg
ICAgICAgICAgIGRlZiBzZXR1cF9jbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIDAvMAorCisg
ICAgICAgICAgICBkZWYgdGVhcmRvd25fY2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICBjbHMu
Y2xzbGV2ZWwuYXBwZW5kKDEpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NsYXNzbGV2ZWwoc2Vs
Zik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRlZiB0ZXN0X2NsZWFudXAoKToK
KyAgICAgICAgICAgIGFzc2VydCBub3QgVGVzdFNpbXBsZUNsYXNzU2V0dXAuY2xzbGV2ZWwKKyAg
ICAiIiIpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEsIHBhc3NlZD0xKQorCisK
K2RlZiB0ZXN0X21ldGhvZF9zZXR1cCh0ZXN0ZGlyKToKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgIGNsYXNzIFRlc3RTZXR1cE1ldGhvZChvYmplY3Qp
OgorICAgICAgICAgICAgZGVmIHNldHVwX21ldGhvZChzZWxmLCBtZXRoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLm1ldGhzZXR1cCA9IG1ldGgKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tZXRo
b2Qoc2VsZiwgbWV0aCk6CisgICAgICAgICAgICAgICAgZGVsIHNlbGYubWV0aHNldHVwCisKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3NvbWUoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNl
bGYubWV0aHNldHVwID09IHNlbGYudGVzdF9zb21lCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X290
aGVyKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLm1ldGhzZXR1cCA9PSBzZWxm
LnRlc3Rfb3RoZXIKKyAgICAiIiIpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIp
CisKKworZGVmIHRlc3RfbWV0aG9kX3NldHVwX2ZhaWx1cmVfbm9fdGVhcmRvd24odGVzdGRpcik6
CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBjbGFz
cyBUZXN0TWV0aG9kU2V0dXAob2JqZWN0KToKKyAgICAgICAgICAgIGNsc2xldmVsID0gW10KKyAg
ICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgICAgICAg
ICBzZWxmLmNsc2xldmVsLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIDAvMAorCisgICAgICAg
ICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAgICAgICAgICAgICAg
c2VsZi5jbHNsZXZlbC5hcHBlbmQoMikKKworICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNl
bGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgdGVzdF9jbGVhbnVwKCk6
CisgICAgICAgICAgICBhc3NlcnQgVGVzdE1ldGhvZFNldHVwLmNsc2xldmVsID09IFsxXQorICAg
ICIiIikKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTEpCisKKwor
ZGVmIHRlc3RfbWV0aG9kX2dlbmVyYXRvcl9zZXR1cCh0ZXN0ZGlyKToKKyAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgIGNsYXNzIFRlc3RTZXR1cFRlYXJk
b3duT25JbnN0YW5jZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6
CisgICAgICAgICAgICAgICAgY2xzLmNsYXNzc2V0dXAgPSBUcnVlCisKKyAgICAgICAgICAgIGRl
ZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgICAgICAgICBzZWxmLm1ldGhz
ZXR1cCA9IG1ldGhvZAorCisgICAgICAgICAgICBkZWYgdGVzdF9nZW5lcmF0ZShzZWxmKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5jbGFzc3NldHVwCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYubWV0aHNldHVwID09IHNlbGYudGVzdF9nZW5lcmF0ZQorICAgICAgICAgICAgICAg
IHlpZWxkIHNlbGYuZ2VuZXJhdGVkLCA1CisgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5nZW5l
cmF0ZWQsIDIKKworICAgICAgICAgICAgZGVmIGdlbmVyYXRlZChzZWxmLCB2YWx1ZSk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHNlbGYuY2xhc3NzZXR1cAorICAgICAgICAgICAgICAgIGFzc2Vy
dCBzZWxmLm1ldGhzZXR1cCA9PSBzZWxmLnRlc3RfZ2VuZXJhdGUKKyAgICAgICAgICAgICAgICBh
c3NlcnQgdmFsdWUgPT0gNQorICAgICIiIikKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSwgZmFpbGVkPTEpCisKKworZGVmIHRlc3RfZnVuY19nZW5lcmF0b3Jfc2V0dXAodGVzdGRp
cik6CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBp
bXBvcnQgc3lzCisKKyAgICAgICAgZGVmIHNldHVwX21vZHVsZShtb2QpOgorICAgICAgICAgICAg
cHJpbnQgKCJzZXR1cF9tb2R1bGUiKQorICAgICAgICAgICAgbW9kLnggPSBbXQorCisgICAgICAg
IGRlZiBzZXR1cF9mdW5jdGlvbihmdW4pOgorICAgICAgICAgICAgcHJpbnQgKCJzZXR1cF9mdW5j
dGlvbiIpCisgICAgICAgICAgICB4LmFwcGVuZCgxKQorCisgICAgICAgIGRlZiB0ZWFyZG93bl9m
dW5jdGlvbihmdW4pOgorICAgICAgICAgICAgcHJpbnQgKCJ0ZWFyZG93bl9mdW5jdGlvbiIpCisg
ICAgICAgICAgICB4LnBvcCgpCisKKyAgICAgICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAgICAg
ICBhc3NlcnQgeCA9PSBbMV0KKyAgICAgICAgICAgIGRlZiBjaGVjaygpOgorICAgICAgICAgICAg
ICAgIHByaW50ICgiY2hlY2siKQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImVc
XG4iKQorICAgICAgICAgICAgICAgIGFzc2VydCB4ID09IFsxXQorICAgICAgICAgICAgeWllbGQg
Y2hlY2sKKyAgICAgICAgICAgIGFzc2VydCB4ID09IFsxXQorICAgICIiIikKKyAgICByZXAgPSBy
ZXByZWMubWF0Y2hyZXBvcnQoInRlc3Rfb25lIiwgbmFtZXM9InB5dGVzdF9ydW50ZXN0X2xvZ3Jl
cG9ydCIpCisgICAgYXNzZXJ0IHJlcC5wYXNzZWQKKworCitkZWYgdGVzdF9tZXRob2Rfc2V0dXBf
dXNlc19mcmVzaF9pbnN0YW5jZXModGVzdGRpcik6CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuc291cmNlKCIiIgorICAgICAgICBjbGFzcyBUZXN0U2VsZlN0YXRlMShvYmplY3QpOgor
ICAgICAgICAgICAgbWVtb3J5ID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYp
OgorICAgICAgICAgICAgICAgIHNlbGYubWVtb3J5LmFwcGVuZChzZWxmKQorCisgICAgICAgICAg
ICBkZWYgdGVzdF9hZnRlcmhlbGxvKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxm
ICE9IHNlbGYubWVtb3J5WzBdCisgICAgIiIiKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yLCBmYWlsZWQ9MCkKKworCitkZWYgdGVzdF9zZXR1cF90aGF0X3NraXBzX2NhbGxlZGFn
YWluKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHNldHVwX21vZHVsZShtb2QpOgorICAgICAgICAgICAg
cHl0ZXN0LnNraXAoIngiKQorICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbjEoKToKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24yKCk6CisgICAgICAgICAgICBwYXNz
CisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwKQorICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MikKKworCitkZWYgdGVzdF9zZXR1cF9mYWlsc19hZ2Fp
bl9vbl9hbGxfdGVzdHModGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6Cisg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKDQyKQorICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bjEoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24yKCk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bihwKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKGZhaWxlZD0yKQorCisKK2RlZiB0ZXN0X3Nl
dHVwX2Z1bmNhcmdfc2V0dXBfd2hlbl9vdXRlcl9zY29wZV9mYWlscyh0ZXN0ZGlyKToKKyAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IGRlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIp
CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgaGVsbG8ocmVxdWVzdCk6Cisg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ4eXo0MyIpCisgICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uMShoZWxsbyk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uMihoZWxsbyk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KHApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgIipmdW5jdGlvbjEqIiwKKyAgICAgICAgIipWYWx1ZUVycm9yKjQyKiIsCisgICAgICAg
ICIqZnVuY3Rpb24yKiIsCisgICAgICAgICIqVmFsdWVFcnJvcio0MioiLAorICAgICAgICAiKjIg
ZXJyb3IqIgorICAgIF0pCisgICAgYXNzZXJ0ICJ4eXo0MyIgbm90IGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZycsIFsnJywgJ2FyZyddKQor
ZGVmIHRlc3Rfc2V0dXBfdGVhcmRvd25fZnVuY3Rpb25fbGV2ZWxfd2l0aF9vcHRpb25hbF9hcmd1
bWVudCh0ZXN0ZGlyLCBtb25rZXlwYXRjaCwgYXJnKToKKyAgICAiIiJwYXJhbWV0ZXIgdG8gc2V0
dXAvdGVhcmRvd24geHVuaXQtc3R5bGUgZnVuY3Rpb25zIHBhcmFtZXRlciBpcyBub3cgb3B0aW9u
YWwgKCMxNzI4KS4iIiIKKyAgICBpbXBvcnQgc3lzCisgICAgdHJhY2Vfc2V0dXBzX3RlYXJkb3du
cyA9IFtdCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICd0cmFjZV9zZXR1cHNfdGVhcmRv
d25zJywgdHJhY2Vfc2V0dXBzX3RlYXJkb3ducywgcmFpc2luZz1GYWxzZSkKKyAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9y
dCBzeXMKKworICAgICAgICB0cmFjZSA9IHN5cy50cmFjZV9zZXR1cHNfdGVhcmRvd25zLmFwcGVu
ZAorCisgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoe2FyZ30pOiB0cmFjZSgnc2V0dXBfbW9kdWxl
JykKKyAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZSh7YXJnfSk6IHRyYWNlKCd0ZWFyZG93bl9t
b2R1bGUnKQorCisgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbih7YXJnfSk6IHRyYWNlKCdzZXR1
cF9mdW5jdGlvbicpCisgICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbih7YXJnfSk6IHRyYWNl
KCd0ZWFyZG93bl9mdW5jdGlvbicpCisKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb25fMSgpOiBw
YXNzCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uXzIoKTogcGFzcworCisgICAgICAgIGNsYXNz
IFRlc3Qob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwge2FyZ30p
OiB0cmFjZSgnc2V0dXBfbWV0aG9kJykKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tZXRob2Qo
c2VsZiwge2FyZ30pOiB0cmFjZSgndGVhcmRvd25fbWV0aG9kJykKKworICAgICAgICAgICAgZGVm
IHRlc3RfbWV0aG9kXzEoc2VsZik6IHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZF8y
KHNlbGYpOiBwYXNzCisgICAgIiIiLmZvcm1hdChhcmc9YXJnKSkKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLmlubGluZV9ydW4ocCkKKyAgICByZXN1bHQuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKKwor
ICAgIGV4cGVjdGVkID0gWworICAgICAgICAnc2V0dXBfbW9kdWxlJywKKworICAgICAgICAnc2V0
dXBfZnVuY3Rpb24nLAorICAgICAgICAndGVhcmRvd25fZnVuY3Rpb24nLAorICAgICAgICAnc2V0
dXBfZnVuY3Rpb24nLAorICAgICAgICAndGVhcmRvd25fZnVuY3Rpb24nLAorCisgICAgICAgICdz
ZXR1cF9tZXRob2QnLAorICAgICAgICAndGVhcmRvd25fbWV0aG9kJywKKworICAgICAgICAnc2V0
dXBfbWV0aG9kJywKKyAgICAgICAgJ3RlYXJkb3duX21ldGhvZCcsCisKKyAgICAgICAgJ3RlYXJk
b3duX21vZHVsZScsCisgICAgXQorICAgIGFzc2VydCB0cmFjZV9zZXR1cHNfdGVhcmRvd25zID09
IGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9zZXNzaW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllYzEz
ZjUyM2U2NWEwYTE4M2Y4Y2FlNGM4YmI2MDlmM2MzZGVmODgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQpAQCAtMCwwICsxLDI1NSBAQAorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgoraW1wb3J0IHB5dGVzdAorCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RF
U1RTQ09MTEVDVEVECisKKworY2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CisgICAgZGVmIHRl
c3RfYmFzaWNfdGVzdGl0ZW1fZXZlbnRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZmlsZSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZV9vbmUoKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3Rfb3RoZXIoKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKDIzKQorICAgICAgICAgICAgY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdHdvKHNlbGYsIHNvbWVhcmdz
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZmlsZSkKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBm
YWlsZWQgPSByZXByZWMubGlzdG91dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihza2lwcGVk
KSA9PSAwCisgICAgICAgIGFzc2VydCBsZW4ocGFzc2VkKSA9PSAxCisgICAgICAgIGFzc2VydCBs
ZW4oZmFpbGVkKSA9PSAzCisKKyAgICAgICAgZGVmIGVuZCh4KToKKyAgICAgICAgICAgIHJldHVy
biB4Lm5vZGVpZC5zcGxpdCgiOjoiKVstMV0KKworICAgICAgICBhc3NlcnQgZW5kKGZhaWxlZFsw
XSkgPT0gInRlc3Rfb25lX29uZSIKKyAgICAgICAgYXNzZXJ0IGVuZChmYWlsZWRbMV0pID09ICJ0
ZXN0X290aGVyIgorICAgICAgICBpdGVtc3RhcnRlZCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0
X2l0ZW1jb2xsZWN0ZWQiKQorICAgICAgICBhc3NlcnQgbGVuKGl0ZW1zdGFydGVkKSA9PSA0Cisg
ICAgICAgICMgWFhYIGNoZWNrIGZvciBmYWlsaW5nIGZ1bmNhcmcgc2V0dXAKKyAgICAgICAgIyBj
b2xyZXBvcnRzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisgICAg
ICAgICMgYXNzZXJ0IGxlbihjb2xyZXBvcnRzKSA9PSA0CisgICAgICAgICMgYXNzZXJ0IGNvbHJl
cG9ydHNbMV0ucmVwb3J0LmZhaWxlZAorCisgICAgZGVmIHRlc3RfbmVzdGVkX2ltcG9ydF9lcnJv
cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgaW1wb3J0X2ZhaWxzCisgICAgICAgICAgICBkZWYgdGVzdF90
aGlzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGltcG9ydF9mYWlscy5hID09IDEKKyAgICAg
ICAgIiIiLCBpbXBvcnRfZmFpbHM9IiIiCisgICAgICAgICAgICBpbXBvcnQgZG9lc19ub3Rfd29y
aworICAgICAgICAgICAgYSA9IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4odGZpbGUpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRmYWlsZWRj
b2xsZWN0aW9ucygpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisgICAgICAgIG91
dCA9IHN0cih2YWx1ZXNbMF0ubG9uZ3JlcHIpCisgICAgICAgIGFzc2VydCBvdXQuZmluZCgnZG9l
c19ub3Rfd29yaycpICE9IC0xCisKKyAgICBkZWYgdGVzdF9yYWlzZXNfb3V0cHV0KHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9yYWlzZXNfZG9l
c250KCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBpbnQsICIz
IikKKyAgICAgICAgIiIiKQorICAgICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJl
Yy5saXN0b3V0Y29tZXMoKQorICAgICAgICBhc3NlcnQgbGVuKGZhaWxlZCkgPT0gMQorICAgICAg
ICBvdXQgPSBmYWlsZWRbMF0ubG9uZ3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKKyAgICAgICAgaWYg
bm90IG91dC5maW5kKCJESUQgTk9UIFJBSVNFIikgIT0gLTE6CisgICAgICAgICAgICBwcmludChv
dXQpCisgICAgICAgICAgICBweXRlc3QuZmFpbCgiaW5jb3JyZWN0IHJhaXNlcygpIG91dHB1dCIp
CisKKyAgICBkZWYgdGVzdF9nZW5lcmF0b3JfeWllbGRzX05vbmUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICB5aWVsZCBOb25lCisgICAgICAgICIiIikK
KyAgICAgICAgZmFpbHVyZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgICAg
ICBvdXQgPSBmYWlsdXJlc1swXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAgICAgICBp
ID0gb3V0LmZpbmQoJ1R5cGVFcnJvcicpCisgICAgICAgIGFzc2VydCBpICE9IC0xCisKKyAgICBk
ZWYgdGVzdF9zeW50YXhfZXJyb3JfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoInRoaXMgaXMgcmVhbGx5IG5vdCBweXRob24i
KQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgICAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICBvdXQgPSBzdHIodmFsdWVzWzBdLmxv
bmdyZXByKQorICAgICAgICBhc3NlcnQgb3V0LmZpbmQoc3RyKCdub3QgcHl0aG9uJykpICE9IC0x
CisKKyAgICBkZWYgdGVzdF9leGl0X2ZpcnN0X3Byb2JsZW0oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X29uZSgpOiBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfdHdvKCk6IGFzc2Vy
dCAwCisgICAgICAgICIiIiwgJy0tZXhpdGZpcnN0JykKKyAgICAgICAgcGFzc2VkLCBza2lwcGVk
LCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBmYWlsZWQg
PT0gMQorICAgICAgICBhc3NlcnQgcGFzc2VkID09IHNraXBwZWQgPT0gMAorCisgICAgZGVmIHRl
c3RfbWF4ZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKCk6IGFzc2VydCAwCisg
ICAgICAgICAgICBkZWYgdGVzdF90d28oKTogYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0
X3RocmVlKCk6IGFzc2VydCAwCisgICAgICAgICIiIiwgJy0tbWF4ZmFpbD0yJykKKyAgICAgICAg
cGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAg
IGFzc2VydCBmYWlsZWQgPT0gMgorICAgICAgICBhc3NlcnQgcGFzc2VkID09IHNraXBwZWQgPT0g
MAorCisgICAgZGVmIHRlc3RfYnJva2VuX3JlcHIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBCcm9rZW5SZXByMShvYmplY3QpOgorICAgICAgICAgICAgICAgIGZvbz0w
CisgICAgICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oIkhhIEhhIGZvb2xlZCB5b3UsIEknbSBhIGJyb2tlbiByZXByKCku
IikKKworICAgICAgICAgICAgY2xhc3MgVGVzdEJyb2tlbkNsYXNzKG9iamVjdCk6CisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfZXhwbGljaXRfYmFkX3JlcHIoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIHQgPSBCcm9rZW5SZXByMSgpCisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlz
ZXMoRXhjZXB0aW9uLCAncmVwcih0KScpCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9pbXBs
aWNpdF9iYWRfcmVwcjEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHQgPSBCcm9rZW5SZXBy
MSgpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB0LmZvbyA9PSAxCisKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCkKKyAgICAgICAgcGFzc2Vk
LCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMubGlzdG91dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0
IGxlbihmYWlsZWQpID09IDEKKyAgICAgICAgb3V0ID0gZmFpbGVkWzBdLmxvbmdyZXByLnJlcHJj
cmFzaC5tZXNzYWdlCisgICAgICAgIGFzc2VydCBvdXQuZmluZCgiIiJbRXhjZXB0aW9uKCJIYSBI
YSBmb29sZWQgeW91LCBJJ20gYSBicm9rZW4gcmVwcigpLiIpIHJhaXNlZCBpbiByZXByKCldIiIi
KSAhPSAtMSAgIyAnCisKKyAgICBkZWYgdGVzdF9za2lwX2ZpbGVfYnlfY29uZnRlc3Qoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb25mdGVzdD0iIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxl
KCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImludGVudGlvbmFsIikKKyAgICAgICAg
IiIiLCB0ZXN0X2ZpbGU9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoKTogcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bih0ZXN0ZGlyLnRtcGRpcikKKyAgICAgICAgZXhjZXB0IHB5dGVzdC5za2lwLkV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJ3cm9uZyBza2lwcGVkIGNhdWdodCIpCisg
ICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X2NvbGxlY3RyZXBvcnQi
KQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDEKKyAgICAgICAgYXNzZXJ0IHJlcG9y
dHNbMF0uc2tpcHBlZAorCisKK2NsYXNzIFRlc3ROZXdTZXNzaW9uKFNlc3Npb25UZXN0cyk6CisK
KyAgICBkZWYgdGVzdF9vcmRlcl9vZl9leGVjdXRpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCgxKQorICAgICAgICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoMikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCisgICAgICAgICAgICBjbGFzcyBUZXN0bXlncm91cChv
YmplY3QpOgorICAgICAgICAgICAgICAgIHJlc2xpc3QgPSB2YWx1ZXMKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF8xKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc2xpc3QuYXBw
ZW5kKDEpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZXNsaXN0LmFwcGVuZCgyKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzMo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzbGlzdC5hcHBlbmQoMykKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdF80KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
c2VsZi5yZXNsaXN0ID09IFsxLDIsMSwyLDNdCisgICAgICAgICIiIikKKyAgICAgICAgcGFzc2Vk
LCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAgIGFzc2Vy
dCBmYWlsZWQgPT0gc2tpcHBlZCA9PSAwCisgICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNworICAg
ICAgICAjIGFsc28gdGVzdCBsaXN0bmFtZXMoKSBoZXJlIC4uLgorCisgICAgZGVmIHRlc3RfY29s
bGVjdF9vbmx5X3dpdGhfdmFyaW91c19zaXR1YXRpb25zKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9vbmU9IiIiCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoKQorCisgICAgICAgICAgICAgICAgY2xhc3MgVGVzdFgob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kX29uZShzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgICAgIGNsYXNzIFRlc3RZKFRlc3RYKToKKyAg
ICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgdGVz
dF90aHJlZT0ieHh4ZHNhZHNhZHNhZHNhIiwKKyAgICAgICAgICAgIF9faW5pdF9fPSIiCisgICAg
ICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCctLWNvbGxlY3Qtb25s
eScsIHAuZGlycGF0aCgpKQorCisgICAgICAgIGl0ZW1zdGFydGVkID0gcmVwcmVjLmdldGNhbGxz
KCJweXRlc3RfaXRlbWNvbGxlY3RlZCIpCisgICAgICAgIGFzc2VydCBsZW4oaXRlbXN0YXJ0ZWQp
ID09IDMKKyAgICAgICAgYXNzZXJ0IG5vdCByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRl
c3RfbG9ncmVwb3J0IikKKyAgICAgICAgc3RhcnRlZCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0
X2NvbGxlY3RzdGFydCIpCisgICAgICAgIGZpbmlzaGVkID0gcmVwcmVjLmdldHJlcG9ydHMoInB5
dGVzdF9jb2xsZWN0cmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihzdGFydGVkKSA9PSBsZW4o
ZmluaXNoZWQpCisgICAgICAgIGFzc2VydCBsZW4oc3RhcnRlZCkgPT0gNyAgIyBYWFggZXh0cmEg
VG9wQ29sbGVjdG9yCisgICAgICAgIGNvbGZhaWwgPSBbeCBmb3IgeCBpbiBmaW5pc2hlZCBpZiB4
LmZhaWxlZF0KKyAgICAgICAgYXNzZXJ0IGxlbihjb2xmYWlsKSA9PSAxCisKKyAgICBkZWYgdGVz
dF9taW51c194X2ltcG9ydF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKF9faW5pdF9fPSIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9v
bmU9Inh4eHgiLCB0ZXN0X3R3bz0ieXl5eSIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLXgiLCB0ZXN0ZGlyLnRtcGRpcikKKyAgICAgICAgZmluaXNoZWQgPSByZXByZWMu
Z2V0cmVwb3J0cygicHl0ZXN0X2NvbGxlY3RyZXBvcnQiKQorICAgICAgICBjb2xmYWlsID0gW3gg
Zm9yIHggaW4gZmluaXNoZWQgaWYgeC5mYWlsZWRdCisgICAgICAgIGFzc2VydCBsZW4oY29sZmFp
bCkgPT0gMQorCisgICAgZGVmIHRlc3RfbWludXNfeF9vdmVycmlkZGVuX2J5X21heGZhaWwoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShfX2luaXRfXz0iIikKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rfb25lPSJ4eHh4IiwgdGVzdF90d289Inl5eXki
LCB0ZXN0X3RoaXJkPSJ6enoiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii14IiwgIi0tbWF4ZmFpbD0yIiwgdGVzdGRpci50bXBkaXIpCisgICAgICAgIGZpbmlzaGVkID0g
cmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9jb2xsZWN0cmVwb3J0IikKKyAgICAgICAgY29sZmFp
bCA9IFt4IGZvciB4IGluIGZpbmlzaGVkIGlmIHguZmFpbGVkXQorICAgICAgICBhc3NlcnQgbGVu
KGNvbGZhaWwpID09IDIKKworCitkZWYgdGVzdF9wbHVnaW5fc3BlY2lmeSh0ZXN0ZGlyKToKKyAg
ICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCAiIiIKKyAgICAgICAgICAgIHRlc3RkaXIucGFy
c2Vjb25maWcoIi1wIiwgIm5xd2VvdGV4aXN0ZW50IikKKyAgICAiIiIpCisgICAgIyBweXRlc3Qu
cmFpc2VzKEltcG9ydEVycm9yLAorICAgICMgICAgImNvbmZpZy5kb19jb25maWd1cmUoY29uZmln
KSIKKyAgICAjICkKKworCitkZWYgdGVzdF9wbHVnaW5fYWxyZWFkeV9leGlzdHModGVzdGRpcik6
CisgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygiLXAiLCAidGVybWluYWwiKQorICAg
IGFzc2VydCBjb25maWcub3B0aW9uLnBsdWdpbnMgPT0gWyd0ZXJtaW5hbCddCisgICAgY29uZmln
Ll9kb19jb25maWd1cmUoKQorICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKKworCitk
ZWYgdGVzdF9leGNsdWRlKHRlc3RkaXIpOgorICAgIGhlbGxvZGlyID0gdGVzdGRpci5ta2Rpcigi
aGVsbG8iKQorICAgIGhlbGxvZGlyLmpvaW4oInRlc3RfaGVsbG8ucHkiKS53cml0ZSgieCB5IHN5
bnRheGVycm9yIikKKyAgICBoZWxsbzJkaXIgPSB0ZXN0ZGlyLm1rZGlyKCJoZWxsbzIiKQorICAg
IGhlbGxvMmRpci5qb2luKCJ0ZXN0X2hlbGxvMi5weSIpLndyaXRlKCJ4IHkgc3ludGF4ZXJyb3Ii
KQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29rPSJkZWYgdGVzdF9wYXNzKCk6IHBhc3Mi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWlnbm9yZT1oZWxsbyIsICItLWln
bm9yZT1oZWxsbzIiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKworZGVmIHRlc3Rfc2Vzc2lvbmZp
bmlzaF93aXRoX3N0YXJ0KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgZGVmIHB5dGVz
dF9zZXNzaW9uc3RhcnQoKToKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQob3MuZ2V0Y3dkKCkp
CisgICAgICAgICAgICBvcy5jaGRpcigiLi4iKQorCisgICAgICAgIGRlZiBweXRlc3Rfc2Vzc2lv
bmZpbmlzaCgpOgorICAgICAgICAgICAgYXNzZXJ0IHZhbHVlc1swXSA9PSBvcy5nZXRjd2QoKQor
CisgICAgIiIiKQorICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIp
CisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3Rfc2tpcHBpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc4OTQ0ODc2ZjM1YTM1OTFlZmM4NWJj
NzhhMGE0MDRmYTU2MzYzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9za2lwcGluZy5weQpAQCAtMCwwICsxLDEwNjcgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweXRl
c3QKK2ltcG9ydCBzeXMKKworZnJvbSBfcHl0ZXN0LnNraXBwaW5nIGltcG9ydCBNYXJrRXZhbHVh
dG9yLCBmb2xkZWRfc2tpcHMsIHB5dGVzdF9ydW50ZXN0X3NldHVwCitmcm9tIF9weXRlc3QucnVu
bmVyIGltcG9ydCBydW50ZXN0cHJvdG9jb2wKKworCitjbGFzcyBUZXN0RXZhbHVhdG9yKG9iamVj
dCk6CisgICAgZGVmIHRlc3Rfbm9fbWFya2VyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVt
ID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICBldmFs
c2tpcGlmID0gTWFya0V2YWx1YXRvcihpdGVtLCAnc2tpcGlmJykKKyAgICAgICAgYXNzZXJ0IG5v
dCBldmFsc2tpcGlmCisgICAgICAgIGFzc2VydCBub3QgZXZhbHNraXBpZi5pc3RydWUoKQorCisg
ICAgZGVmIHRlc3RfbWFya2VkX25vX2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0g
PSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsueHl6CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGV2ID0gTWFya0V2YWx1YXRv
cihpdGVtLCAneHl6JykKKyAgICAgICAgYXNzZXJ0IGV2CisgICAgICAgIGFzc2VydCBldi5pc3Ry
dWUoKQorICAgICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAgICBhc3NlcnQg
ZXhwbCA9PSAiIgorICAgICAgICBhc3NlcnQgbm90IGV2LmdldCgicnVuIiwgRmFsc2UpCisKKyAg
ICBkZWYgdGVzdF9tYXJrZWRfb25lX2FyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9
IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay54eXooImhhc2F0dHIob3MsICdzZXAnKSIpCisgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAg
ICAgIGV2ID0gTWFya0V2YWx1YXRvcihpdGVtLCAneHl6JykKKyAgICAgICAgYXNzZXJ0IGV2Cisg
ICAgICAgIGFzc2VydCBldi5pc3RydWUoKQorICAgICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRp
b24oKQorICAgICAgICBhc3NlcnQgZXhwbCA9PSAiY29uZGl0aW9uOiBoYXNhdHRyKG9zLCAnc2Vw
JykiCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCdzeXMudmVyc2lvbl9pbmZvWzBdID49IDMn
KQorICAgIGRlZiB0ZXN0X21hcmtlZF9vbmVfYXJnX3VuaWNvZGUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueHl6KHUiaGFzYXR0cihvcywgJ3NlcCcpIikK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgZXYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICd4eXonKQorICAgICAg
ICBhc3NlcnQgZXYKKyAgICAgICAgYXNzZXJ0IGV2LmlzdHJ1ZSgpCisgICAgICAgIGV4cGwgPSBl
di5nZXRleHBsYW5hdGlvbigpCisgICAgICAgIGFzc2VydCBleHBsID09ICJjb25kaXRpb246IGhh
c2F0dHIob3MsICdzZXAnKSIKKworICAgIGRlZiB0ZXN0X21hcmtlZF9vbmVfYXJnX3dpdGhfcmVh
c29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnh5eigi
aGFzYXR0cihvcywgJ3NlcCcpIiwgYXR0cj0yLCByZWFzb249ImhlbGxvIHdvcmxkIikKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgZXYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICd4eXonKQorICAgICAgICBhc3Nl
cnQgZXYKKyAgICAgICAgYXNzZXJ0IGV2LmlzdHJ1ZSgpCisgICAgICAgIGV4cGwgPSBldi5nZXRl
eHBsYW5hdGlvbigpCisgICAgICAgIGFzc2VydCBleHBsID09ICJoZWxsbyB3b3JsZCIKKyAgICAg
ICAgYXNzZXJ0IGV2LmdldCgiYXR0ciIpID09IDIKKworICAgIGRlZiB0ZXN0X21hcmtlZF9vbmVf
YXJnX3R3aWNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBsaW5lcyA9IFsKKyAgICAgICAgICAg
ICcnJ0BweXRlc3QubWFyay5za2lwaWYoIm5vdCBoYXNhdHRyKG9zLCAnbXVya3MnKSIpJycnLAor
ICAgICAgICAgICAgJycnQHB5dGVzdC5tYXJrLnNraXBpZigiaGFzYXR0cihvcywgJ211cmtzJyki
KScnJworICAgICAgICBdCisgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIDIpOgorICAgICAgICAg
ICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICAgICAgJXMKKyAgICAgICAgICAgICAgICAlcworICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgIiIiICUgKGxpbmVzW2ldLCBsaW5lc1soaSArIDEpICUgMl0pKQorICAgICAgICAgICAgZXYg
PSBNYXJrRXZhbHVhdG9yKGl0ZW0sICdza2lwaWYnKQorICAgICAgICAgICAgYXNzZXJ0IGV2Cisg
ICAgICAgICAgICBhc3NlcnQgZXYuaXN0cnVlKCkKKyAgICAgICAgICAgIGV4cGwgPSBldi5nZXRl
eHBsYW5hdGlvbigpCisgICAgICAgICAgICBhc3NlcnQgZXhwbCA9PSAiY29uZGl0aW9uOiBub3Qg
aGFzYXR0cihvcywgJ211cmtzJykiCisKKyAgICBkZWYgdGVzdF9tYXJrZWRfb25lX2FyZ190d2lj
ZTIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlm
KCJoYXNhdHRyKG9zLCAnbXVya3MnKSIpCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlm
KCJub3QgaGFzYXR0cihvcywgJ211cmtzJykiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBldiA9IE1hcmtF
dmFsdWF0b3IoaXRlbSwgJ3NraXBpZicpCisgICAgICAgIGFzc2VydCBldgorICAgICAgICBhc3Nl
cnQgZXYuaXN0cnVlKCkKKyAgICAgICAgZXhwbCA9IGV2LmdldGV4cGxhbmF0aW9uKCkKKyAgICAg
ICAgYXNzZXJ0IGV4cGwgPT0gImNvbmRpdGlvbjogbm90IGhhc2F0dHIob3MsICdtdXJrcycpIgor
CisgICAgZGVmIHRlc3RfbWFya2VkX3NraXBfd2l0aF9ub3Rfc3RyaW5nKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihGYWxzZSkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgZXYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICdza2lwaWYnKQorICAgICAgICBleGMg
PSBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbiwgZXYuaXN0cnVlKQorICAgICAg
ICBhc3NlcnQgIiIiRmFpbGVkOiB5b3UgbmVlZCB0byBzcGVjaWZ5IHJlYXNvbj1TVFJJTkcgd2hl
biB1c2luZyBib29sZWFucyBhcyBjb25kaXRpb25zLiIiIiBpbiBleGMudmFsdWUubXNnCisKKyAg
ICBkZWYgdGVzdF9za2lwaWZfY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0sID0g
dGVzdGRpci5nZXRpdGVtcygiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIHB5dGVzdG1hcmsg
PSBweXRlc3QubWFyay5za2lwaWYoImNvbmZpZy5faGFja3h5eiIpCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAi
IiIpCisgICAgICAgIGl0ZW0uY29uZmlnLl9oYWNreHl6ID0gMworICAgICAgICBldiA9IE1hcmtF
dmFsdWF0b3IoaXRlbSwgJ3NraXBpZicpCisgICAgICAgIGFzc2VydCBldi5pc3RydWUoKQorICAg
ICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAgICBhc3NlcnQgZXhwbCA9PSAi
Y29uZGl0aW9uOiBjb25maWcuX2hhY2t4eXoiCisKKworY2xhc3MgVGVzdFhGYWlsKG9iamVjdCk6
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3N0cmljdCcsIFtUcnVlLCBGYWxzZV0p
CisgICAgZGVmIHRlc3RfeGZhaWxfc2ltcGxlKHNlbGYsIHRlc3RkaXIsIHN0cmljdCk6CisgICAg
ICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3RyaWN0PSVzKQorICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIiAl
IHN0cmljdCkKKyAgICAgICAgcmVwb3J0cyA9IHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9RmFs
c2UpCisgICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMworICAgICAgICBjYWxscmVwb3J0
ID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgY2FsbHJlcG9ydC5za2lwcGVkCisgICAgICAg
IGFzc2VydCBjYWxscmVwb3J0Lndhc3hmYWlsID09ICIiCisKKyAgICBkZWYgdGVzdF94ZmFpbF94
cGFzc2VkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhm
YWlsKHJlYXNvbj0idGhpcyBpcyBhbiB4ZmFpbCIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5j
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXBv
cnRzID0gcnVudGVzdHByb3RvY29sKGl0ZW0sIGxvZz1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IGxl
bihyZXBvcnRzKSA9PSAzCisgICAgICAgIGNhbGxyZXBvcnQgPSByZXBvcnRzWzFdCisgICAgICAg
IGFzc2VydCBjYWxscmVwb3J0LnBhc3NlZAorICAgICAgICBhc3NlcnQgY2FsbHJlcG9ydC53YXN4
ZmFpbCA9PSAidGhpcyBpcyBhbiB4ZmFpbCIKKworICAgIGRlZiB0ZXN0X3hmYWlsX3hwYXNzZWRf
c3RyaWN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhm
YWlsKHN0cmljdD1UcnVlLCByZWFzb249Im5vcGUiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVw
b3J0cyA9IHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9RmFsc2UpCisgICAgICAgIGFzc2VydCBs
ZW4ocmVwb3J0cykgPT0gMworICAgICAgICBjYWxscmVwb3J0ID0gcmVwb3J0c1sxXQorICAgICAg
ICBhc3NlcnQgY2FsbHJlcG9ydC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IGNhbGxyZXBvcnQubG9u
Z3JlcHIgPT0gIltYUEFTUyhzdHJpY3QpXSBub3BlIgorICAgICAgICBhc3NlcnQgbm90IGhhc2F0
dHIoY2FsbHJlcG9ydCwgIndhc3hmYWlsIikKKworICAgIGRlZiB0ZXN0X3hmYWlsX3J1bl9hbnl3
YXkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jMigpOgorICAgICAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgi
aGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLXJ1bnhmYWlsIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqZGVmIHRlc3RfZnVuYygpOioiLAorICAgICAgICAgICAgIiphc3NlcnQgMCoi
LAorICAgICAgICAgICAgIioxIGZhaWxlZCoxIHBhc3MqIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X3hmYWlsX2V2YWxmYWxzZV9idXRfZmFpbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoJ0ZhbHNlJykKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAg
ICAgIHJlcG9ydHMgPSBydW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPUZhbHNlKQorICAgICAgICBj
YWxscmVwb3J0ID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgY2FsbHJlcG9ydC5mYWlsZWQK
KyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNhbGxyZXBvcnQsICJ3YXN4ZmFpbCIpCisgICAg
ICAgIGFzc2VydCAneGZhaWwnIGluIGNhbGxyZXBvcnQua2V5d29yZHMKKworICAgIGRlZiB0ZXN0
X3hmYWlsX25vdF9yZXBvcnRfZGVmYXVsdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3RfdGhp
cygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgdGVz
dGRpci5ydW5weXRlc3QocCwgJy12JykKKyAgICAgICAgIyByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAjICAgICIqSElOVCp1c2UqLXIqIgorICAgICAgICAjIF0pCisKKyAg
ICBkZWYgdGVzdF94ZmFpbF9ub3RfcnVuX3hmYWlsX3JlcG9ydGluZyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChydW49RmFsc2Us
IHJlYXNvbj0ibm93YXkiKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhpcygpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoIlRydWUiLCBy
dW49RmFsc2UpCisgICAgICAgICAgICBkZWYgdGVzdF90aGlzX3RydWUoKToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgMAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKCJGYWxzZSIsIHJ1
bj1GYWxzZSwgcmVhc29uPSJodWgiKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhpc19mYWxzZSgp
OgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1yeCcsICkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9vbmUqdGVzdF90aGlzKiIsCisgICAg
ICAgICAgICAiKk5PVFJVTipub3dheSIsCisgICAgICAgICAgICAiKnRlc3Rfb25lKnRlc3RfdGhp
c190cnVlKiIsCisgICAgICAgICAgICAiKk5PVFJVTipjb25kaXRpb246KlRydWUqIiwKKyAgICAg
ICAgICAgICIqMSBwYXNzZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3hmYWlsX25v
dF9ydW5fbm9fc2V0dXBfcnVuKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKHRlc3Rfb25lPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJ1bj1GYWxzZSwgcmVhc29uPSJoZWxsbyIpCisgICAg
ICAgICAgICBkZWYgdGVzdF90aGlzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAg
ICAgICAgIGRlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKDQyKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHAsICctcngnLCApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICAgICAiKnRlc3Rfb25lKnRlc3RfdGhpcyoiLAorICAgICAgICAgICAgIipOT1RSVU4q
aGVsbG8iLAorICAgICAgICAgICAgIioxIHhmYWlsZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X3hmYWlsX3hwYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKHRlc3Rfb25lPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAgICBkZWYgdGVzdF90aGF0KCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJYJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICIqWFBBU1MqdGVzdF90aGF0KiIsCisgICAgICAgICAgICAi
KjEgeHBhc3NlZCoiCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KworICAgIGRlZiB0ZXN0X3hmYWlsX2ltcGVyYXRpdmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBkZWYgdGVzdF90aGlzKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnhmYWls
KCJoZWxsbyIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqMSB4ZmFpbGVkKiIsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHAsICItcngiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIipYRkFJTCp0ZXN0X3RoaXMqIiwKKyAgICAgICAgICAgICIqcmVhc29uOipo
ZWxsbyoiLAorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChw
LCAiLS1ydW54ZmFpbCIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEg
cGFzcyoiKQorCisgICAgZGVmIHRlc3RfeGZhaWxfaW1wZXJhdGl2ZV9pbl9zZXR1cF9mdW5jdGlv
bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihm
dW5jdGlvbik6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJoZWxsbyIpCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3RoaXMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgeGZhaWxlZCoiLAor
ICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXJ4IikK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqWEZB
SUwqdGVzdF90aGlzKiIsCisgICAgICAgICAgICAiKnJlYXNvbjoqaGVsbG8qIiwKKyAgICAgICAg
XSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi0tcnVueGZhaWwiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqZGVm
IHRlc3RfdGhpcyoKKyAgICAgICAgICAgICoxIGZhaWwqCisgICAgICAgICIiIikKKworICAgIGRl
ZiB4dGVzdF9keW5hbWljX3hmYWlsX3NldF9kdXJpbmdfc2V0dXAoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAg
ICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKGZ1bmN0aW9uKQorICAgICAgICAgICAgZGVmIHRlc3Rf
dGhpcygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF90
aGF0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJ4WCcpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKlhGQUlMKnRlc3RfdGhpcyoiLAorICAg
ICAgICAgICAgIipYUEFTUyp0ZXN0X3RoYXQqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0
X2R5bmFtaWNfeGZhaWxfbm9fcnVuKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsueGZhaWwocnVuPUZhbHNlKSkK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3RoaXMoYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICct
cnhYJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqWEZBSUwqdGVzdF90aGlzKiIsCisgICAgICAgICAgICAiKk5PVFJVTioiLAorICAgICAgICBd
KQorCisgICAgZGVmIHRlc3RfZHluYW1pY194ZmFpbF9zZXRfZHVyaW5nX2Z1bmNhcmdfc2V0dXAo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hcHBseW1h
cmtlcihweXRlc3QubWFyay54ZmFpbCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3RoaXMyKGFyZyk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIioxIHhmYWlsZWQqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgnZXhwZWN0ZWQsIGFjdHVhbCwgbWF0Y2hsaW5lJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWygnVHlwZUVycm9yJywgJ1R5cGVFcnJvcicsICIqMSB4
ZmFpbGVkKiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCcoQXR0cmlidXRlRXJy
b3IsIFR5cGVFcnJvciknLCAnVHlwZUVycm9yJywgIioxIHhmYWlsZWQqIiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoJ1R5cGVFcnJvcicsICdJbmRleEVycm9yJywgIioxIGZhaWxl
ZCoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnKEF0dHJpYnV0ZUVycm9yLCBU
eXBlRXJyb3IpJywgJ0luZGV4RXJyb3InLCAiKjEgZmFpbGVkKiIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXSkKKyAgICBkZWYgdGVzdF94ZmFpbF9yYWlzZXMoc2VsZiwgZXhwZWN0
ZWQsIGFjdHVhbCwgbWF0Y2hsaW5lLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRl
c3QubWFyay54ZmFpbChyYWlzZXM9JXMpCisgICAgICAgICAgICBkZWYgdGVzdF9yYWlzZXMoKToK
KyAgICAgICAgICAgICAgICByYWlzZSAlcygpCisgICAgICAgICIiIiAlIChleHBlY3RlZCwgYWN0
dWFsKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgIG1hdGNobGluZSwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X3N0cmljdF9zYW5pdHkoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiInNhbml0eSBjaGVjayBmb3IgeGZhaWwoc3RyaWN0PVRydWUpOiBhIGZhaWxpbmcgdGVz
dCBzaG91bGQgYmVoYXZlCisgICAgICAgIGV4YWN0bHkgbGlrZSBhIG5vcm1hbCB4ZmFpbC4KKyAg
ICAgICAgIiIiCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSd1
bnN1cHBvcnRlZCBmZWF0dXJlJywgc3RyaWN0PVRydWUpCisgICAgICAgICAgICBkZWYgdGVzdF9m
b28oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcnhYJykKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqWEZBSUwqJywKKyAgICAgICAgICAgICcq
dW5zdXBwb3J0ZWQgZmVhdHVyZSonLAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3N0cmljdCcsIFtUcnVl
LCBGYWxzZV0pCisgICAgZGVmIHRlc3Rfc3RyaWN0X3hmYWlsKHNlbGYsIHRlc3RkaXIsIHN0cmlj
dCk6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249J3Vuc3Vw
cG9ydGVkIGZlYXR1cmUnLCBzdHJpY3Q9JXMpCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToK
KyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oJ2Zvb19leGVjdXRlZCcsICd3Jyk6IHBhc3MgICMg
bWFrZSBzdXJlIHRlc3QgZXhlY3V0ZXMKKyAgICAgICAgIiIiICUgc3RyaWN0KQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJ4WCcpCisgICAgICAgIGlmIHN0cmljdDoK
KyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAg
ICAgJyp0ZXN0X2ZvbyonLAorICAgICAgICAgICAgICAgICcqWFBBU1Moc3RyaWN0KSp1bnN1cHBv
cnRlZCBmZWF0dXJlKicsCisgICAgICAgICAgICBdKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICAgICAnKnRlc3Rf
c3RyaWN0X3hmYWlsKicsCisgICAgICAgICAgICAgICAgJ1hQQVNTIHRlc3Rfc3RyaWN0X3hmYWls
LnB5Ojp0ZXN0X2ZvbyB1bnN1cHBvcnRlZCBmZWF0dXJlJywKKyAgICAgICAgICAgIF0pCisgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0ID09ICgxIGlmIHN0cmljdCBlbHNlIDApCisgICAgICAgIGFz
c2VydCB0ZXN0ZGlyLnRtcGRpci5qb2luKCdmb29fZXhlY3V0ZWQnKS5pc2ZpbGUoKQorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzdHJpY3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRl
ZiB0ZXN0X3N0cmljdF94ZmFpbF9jb25kaXRpb24oc2VsZiwgdGVzdGRpciwgc3RyaWN0KToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKEZhbHNlLCByZWFzb249J3Vuc3Vw
cG9ydGVkIGZlYXR1cmUnLCBzdHJpY3Q9JXMpCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIiAlIHN0cmljdCkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1yeFgnKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoJyoxIHBhc3NlZConKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3N0cmljdCcsIFtUcnVlLCBGYWxz
ZV0pCisgICAgZGVmIHRlc3RfeGZhaWxfY29uZGl0aW9uX2tleXdvcmQoc2VsZiwgdGVzdGRpciwg
c3RyaWN0KToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlv
bj1GYWxzZSwgcmVhc29uPSd1bnN1cHBvcnRlZCBmZWF0dXJlJywgc3RyaWN0PSVzKQorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIg
JSBzdHJpY3QpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcnhYJykK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMSBwYXNzZWQqJykKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCdzdHJpY3RfdmFsJywgWyd0cnVlJywgJ2ZhbHNlJ10pCisgICAgZGVmIHRlc3Rfc3RyaWN0X3hm
YWlsX2RlZmF1bHRfZnJvbV9maWxlKHNlbGYsIHRlc3RkaXIsIHN0cmljdF92YWwpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VpbmkoJycnCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAg
eGZhaWxfc3RyaWN0ID0gJXMKKyAgICAgICAgJycnICUgc3RyaWN0X3ZhbCkKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249J3Vuc3VwcG9ydGVkIGZlYXR1cmUnKQor
ICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcnhYJykKKyAg
ICAgICAgc3RyaWN0ID0gc3RyaWN0X3ZhbCA9PSAndHJ1ZScKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKCcqMSBmYWlsZWQqJyBpZiBzdHJpY3QgZWxzZSAnKjEgeHBhc3NlZCon
KQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAoMSBpZiBzdHJpY3QgZWxzZSAwKQorCisK
K2NsYXNzIFRlc3RYRmFpbHdpdGhTZXR1cFRlYXJkb3duKG9iamVjdCk6CisgICAgZGVmIHRlc3Rf
ZmFpbGluZ19zZXR1cF9pc3N1ZTkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBz
ZXR1cF9mdW5jdGlvbihmdW5jKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorCisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIioxIHhmYWlsKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9mYWlsaW5n
X3RlYXJkb3duX2lzc3VlOShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlYXJk
b3duX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKjEgeGZhaWwqIiwKKyAgICAgICAgXSkKKworCitjbGFzcyBUZXN0U2tpcChvYmpl
Y3QpOgorICAgIGRlZiB0ZXN0X3NraXBfY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay5za2lwCisgICAgICAgICAgICBjbGFzcyBUZXN0U29tZXRoaW5nKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYmFyKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JheigpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgICAgICByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIsIHBhc3NlZD0xKQor
CisgICAgZGVmIHRlc3Rfc2tpcHNfb25fZmFsc2Vfc3RyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcCgnRmFsc2UnKQorICAgICAgICAgICAgZGVmIHRl
c3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlYy5hc3NlcnRvdXRjb21lKHNraXBw
ZWQ9MSkKKworICAgIGRlZiB0ZXN0X2FyZ19hc19yZWFzb24oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIEBweXRlc3QubWFyay5za2lwKCd0ZXN0aW5nIHN0dWZmJykKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2JhcigpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJzJykKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdGluZyBzdHVmZioiLAorICAg
ICAgICAgICAgIioxIHNraXBwZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3NraXBf
bm9fcmVhc29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tp
cAorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcnMnKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip1bmNvbmRp
dGlvbmFsIHNraXAqIiwKKyAgICAgICAgICAgICIqMSBza2lwcGVkKiIsCisgICAgICAgIF0pCisK
KyAgICBkZWYgdGVzdF9za2lwX3dpdGhfcmVhc29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249ImZvciBsb2x6IikKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2JhcigpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJzJykKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqZm9yIGxvbHoqIiwKKyAgICAgICAgICAg
ICIqMSBza2lwcGVkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9vbmx5X3NraXBzX21h
cmtlZF90ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tp
cAorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSJub3RoaW5nIGluIHBhcnRpY3VsYXIi
KQorICAgICAgICAgICAgZGVmIHRlc3RfYmFyKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAgICAgZGVmIHRlc3RfYmF6KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJzJykKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqbm90aGlu
ZyBpbiBwYXJ0aWN1bGFyKiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKjIgc2tpcHBlZCoiLAor
ICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc3RyaWN0X2FuZF9za2lwKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcAorICAgICAgICAgICAgZGVmIHRlc3Rf
aGVsbG8oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1ycyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnVuY29uZGl0aW9uYWwgc2tpcCoiLAorICAgICAg
ICAgICAgIioxIHNraXBwZWQqIiwKKyAgICAgICAgXSkKKworCitjbGFzcyBUZXN0U2tpcGlmKG9i
amVjdCk6CisgICAgZGVmIHRlc3Rfc2tpcGlmX2NvbmRpdGlvbmFsKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZigiaGFzYXR0cihvcywgJ3NlcCcp
IikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikgICMgbm9xYQorICAgICAgICB4ID0gcHl0ZXN0LnJhaXNlcyhweXRlc3Quc2tp
cC5FeGNlcHRpb24sIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0X3J1
bnRlc3Rfc2V0dXAoaXRlbSkpCisgICAgICAgIGFzc2VydCB4LnZhbHVlLm1zZyA9PSAiY29uZGl0
aW9uOiBoYXNhdHRyKG9zLCAnc2VwJykiCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
J3BhcmFtcycsIFsKKyAgICAgICAgJyJoYXNhdHRyKHN5cywgXCdwbGF0Zm9ybVwnKSInLAorICAg
ICAgICAnVHJ1ZSwgcmVhc29uPSJpbnZhbGlkIHBsYXRmb3JtIicsCisgICAgXSkKKyAgICBkZWYg
dGVzdF9za2lwaWZfcmVwb3J0aW5nKHNlbGYsIHRlc3RkaXIsIHBhcmFtcyk6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9mb289IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCUocGFyYW1zKXMpCisgICAgICAg
ICAgICBkZWYgdGVzdF90aGF0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAg
IiIiICUgZGljdChwYXJhbXM9cGFyYW1zKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocCwgJy1zJywgJy1ycycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKlNLSVAqMSp0ZXN0X2Zvby5weSpwbGF0Zm9ybSoiLAorICAgICAg
ICAgICAgIioxIHNraXBwZWQqIgorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21hcmtlciwgbXNnMSwgbXNn
MicsIFsKKyAgICAgICAgKCdza2lwaWYnLCAnU0tJUCcsICdza2lwcGVkJyksCisgICAgICAgICgn
eGZhaWwnLCAnWFBBU1MnLCAneHBhc3NlZCcpLAorICAgIF0pCisgICAgZGVmIHRlc3Rfc2tpcGlm
X3JlcG9ydGluZ19tdWx0aXBsZShzZWxmLCB0ZXN0ZGlyLCBtYXJrZXIsIG1zZzEsIG1zZzIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9mb289IiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsue21hcmtlcn0oRmFsc2UsIHJlYXNv
bj0nZmlyc3RfY29uZGl0aW9uJykKKyAgICAgICAgICAgIEBweXRlc3QubWFyay57bWFya2VyfShU
cnVlLCByZWFzb249J3NlY29uZF9jb25kaXRpb24nKQorICAgICAgICAgICAgZGVmIHRlc3RfZm9v
YmFyKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiLmZvcm1hdChtYXJr
ZXI9bWFya2VyKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1zJywgJy1y
c3hYJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqe21zZzF9KnRlc3RfZm9vLnB5KnNlY29uZF9jb25kaXRpb24qIi5mb3JtYXQobXNnMT1tc2cx
KSwKKyAgICAgICAgICAgICIqMSB7bXNnMn0qIi5mb3JtYXQobXNnMj1tc2cyKSwKKyAgICAgICAg
XSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3NraXBfbm90
X3JlcG9ydF9kZWZhdWx0KHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVz
dF9vbmU9IiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3RfdGhpcygp
OgorICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKKyAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy12JykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAjICIqSElOVCp1c2UqLXIqIiwKKyAgICAgICAgIioxIHNraXBwZWQq
IiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X3NraXBpZl9jbGFzcyh0ZXN0ZGlyKToKKyAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
Y2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0
Lm1hcmsuc2tpcGlmKCJUcnVlIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X3RoYXQoc2VsZik6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Rob3VnaChzZWxm
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICIqMiBza2lwcGVkKiIKKyAgICBdKQorCisKK2RlZiB0ZXN0X3NraXBfcmVhc29uc19mb2xk
aW5nKCk6CisgICAgcGF0aCA9ICJ4eXoiCisgICAgbGluZW5vID0gMworICAgIG1lc3NhZ2UgPSAi
anVzdHNvIgorICAgIGxvbmdyZXByID0gKHBhdGgsIGxpbmVubywgbWVzc2FnZSkKKworICAgIGNs
YXNzIFgob2JqZWN0KToKKyAgICAgICAgcGFzcworICAgIGV2MSA9IFgoKQorICAgIGV2MS53aGVu
ID0gImV4ZWN1dGUiCisgICAgZXYxLnNraXBwZWQgPSBUcnVlCisgICAgZXYxLmxvbmdyZXByID0g
bG9uZ3JlcHIKKworICAgIGV2MiA9IFgoKQorICAgIGV2Mi53aGVuID0gImV4ZWN1dGUiCisgICAg
ZXYyLmxvbmdyZXByID0gbG9uZ3JlcHIKKyAgICBldjIuc2tpcHBlZCA9IFRydWUKKworICAgICMg
ZXYzIG1pZ2h0IGJlIGEgY29sbGVjdGlvbiByZXBvcnQKKyAgICBldjMgPSBYKCkKKyAgICBldjMu
bG9uZ3JlcHIgPSBsb25ncmVwcgorICAgIGV2My5za2lwcGVkID0gVHJ1ZQorCisgICAgdmFsdWVz
ID0gZm9sZGVkX3NraXBzKFtldjEsIGV2MiwgZXYzXSkKKyAgICBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gMQorICAgIG51bSwgZnNwYXRoLCBsaW5lbm8sIHJlYXNvbiA9IHZhbHVlc1swXQorICAgIGFz
c2VydCBudW0gPT0gMworICAgIGFzc2VydCBmc3BhdGggPT0gcGF0aAorICAgIGFzc2VydCBsaW5l
bm8gPT0gbGluZW5vCisgICAgYXNzZXJ0IHJlYXNvbiA9PSBtZXNzYWdlCisKKworZGVmIHRlc3Rf
c2tpcHBlZF9yZWFzb25zX2Z1bmN0aW9uYWwodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICB0ZXN0X29uZT0iIiIKKyAgICAgICAgICAgIGZyb20gY29uZnRlc3QgaW1w
b3J0IGRvc2tpcAorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAg
ICAgICAgICAgIGRvc2tpcCgpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBk
b3NraXAoKQorICAgICAgICIiIiwKKyAgICAgICAgY29uZnRlc3Q9IiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgZG9za2lwKCk6CisgICAgICAgICAgICAgICAg
cHl0ZXN0LnNraXAoJ3Rlc3QnKQorICAgICAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoJy1ycycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgIipTS0lQKjIqY29uZnRlc3QucHk6NDogdGVzdCIsCisgICAgXSkKKyAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3Rfc2tpcHBlZF9mb2xkaW5nKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgdGVzdF9vbmU9IiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsu
c2tpcCgiRm9sZGluZyIpCisgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuYyk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICIiIiwKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Jy1ycycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipTS0lQ
KjIqdGVzdF9vbmUucHk6IEZvbGRpbmciCisgICAgXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisKKworZGVmIHRlc3RfcmVwb3J0Y2hhcnModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0XzEoKToK
KyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAg
ICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBAcHl0ZXN0Lm1h
cmsueGZhaWwKKyAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgcGFzcworICAgICAg
ICBkZWYgdGVzdF80KCk6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiZm91ciIpCisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmZ4WHMiKQorICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICJGQUlMKnRlc3RfMSoiLAorICAgICAgICAi
WEZBSUwqdGVzdF8yKiIsCisgICAgICAgICJYUEFTUyp0ZXN0XzMqIiwKKyAgICAgICAgIlNLSVAq
Zm91cioiLAorICAgIF0pCisKKworZGVmIHRlc3RfcmVwb3J0Y2hhcnNfZXJyb3IodGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICBjb25mdGVzdD0iIiIKKyAgICAgICAg
ZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAiIiIsCisgICAgICAgIHRlc3Rfc2ltcGxlPSIiIgorICAgICAgICBkZWYgdGVzdF9mb28o
KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCctckUnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICdFUlJPUip0ZXN0X2ZvbyonLAorICAgIF0pCisKKworZGVmIHRlc3RfcmVwb3J0Y2hhcnNf
YWxsKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAg
ICAgYXNzZXJ0IDAKKyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgIGRlZiB0ZXN0
XzMoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfNCgpOgorICAgICAgICAg
ICAgcHl0ZXN0LnNraXAoImZvdXIiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXJhIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAiRkFJTCp0ZXN0XzEqIiwKKyAgICAgICAgIlNLSVAqZm91cioiLAorICAgICAgICAiWEZBSUwq
dGVzdF8yKiIsCisgICAgICAgICJYUEFTUyp0ZXN0XzMqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0
X3JlcG9ydGNoYXJzX2FsbF9lcnJvcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgIGNvbmZ0ZXN0PSIiIgorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRv
d24oKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIiwKKyAgICAgICAgdGVzdF9z
aW1wbGU9IiIiCisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1yYScpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ0VSUk9SKnRlc3RfZm9vKicsCisg
ICAgXSkKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoImhhc2F0dHIoc3lzLCAncHlweV92ZXJzaW9u
X2luZm8nKSIpCitkZWYgdGVzdF9lcnJvcnNfaW5feGZhaWxfc2tpcF9leHByZXNzaW9ucyh0ZXN0
ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZigiYXNkIikKKyAgICAgICAgZGVmIHRlc3RfbmFt
ZWVycm9yKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIEBweXRlc3QubWFyay54ZmFpbCgi
c3ludGF4IGVycm9yIikKKyAgICAgICAgZGVmIHRlc3Rfc3ludGF4KCk6CisgICAgICAgICAgICBw
YXNzCisKKyAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgcGFzcworICAgICIi
IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgbWFya2xpbmUgPSAiICAg
ICAgICAgICAgICAgIF4iCisgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImphdmEiKToK
KyAgICAgICAgIyBYWFggcmVwb3J0IHRoaXMgdG8gamF2YQorICAgICAgICBtYXJrbGluZSA9ICIq
IiArIG1hcmtsaW5lWzg6XQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICIqRVJST1IqdGVzdF9uYW1lZXJyb3IqIiwKKyAgICAgICAgIipldmFsdWF0aW5nKnNraXBp
ZipleHByZXNzaW9uKiIsCisgICAgICAgICIqYXNkKiIsCisgICAgICAgICIqRVJST1IqdGVzdF9z
eW50YXgqIiwKKyAgICAgICAgIipldmFsdWF0aW5nKnhmYWlsKmV4cHJlc3Npb24qIiwKKyAgICAg
ICAgIiAgICBzeW50YXggZXJyb3IiLAorICAgICAgICBtYXJrbGluZSwKKyAgICAgICAgIlN5bnRh
eEVycm9yOiBpbnZhbGlkIHN5bnRheCIsCisgICAgICAgICIqMSBwYXNzKjIgZXJyb3IqIiwKKyAg
ICBdKQorCisKK2RlZiB0ZXN0X3hmYWlsX3NraXBpZl93aXRoX2dsb2JhbHModGVzdGRpcik6Cisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IHggPSAzCisgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoInggPT0gMyIpCisgICAgICAgIGRl
ZiB0ZXN0X3NraXAxKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIEBweXRlc3QubWFyay54
ZmFpbCgieCA9PSAzIikKKyAgICAgICAgZGVmIHRlc3RfYm9vbGVhbigpOgorICAgICAgICAgICAg
YXNzZXJ0IDAKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yc3gi
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqU0tJUCp4ID09
IDMqIiwKKyAgICAgICAgIipYRkFJTCp0ZXN0X2Jvb2xlYW4qIiwKKyAgICAgICAgIip4ID09IDMq
IiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X2RpcmVjdF9naXZlc19lcnJvcih0ZXN0ZGlyKToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
QHB5dGVzdC5tYXJrLnNraXBpZihUcnVlKQorICAgICAgICBkZWYgdGVzdF9za2lwMSgpOgorICAg
ICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioxIGVycm9yKiIs
CisgICAgXSkKKworCitkZWYgdGVzdF9kZWZhdWx0X21hcmtlcnModGVzdGRpcik6CisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbWFya2VycyIpCisgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipza2lwaWYoKmNvbmRpdGlvbikqc2tpcCoiLAorICAg
ICAgICAiKnhmYWlsKCpjb25kaXRpb24sIHJlYXNvbj1Ob25lLCBydW49VHJ1ZSwgcmFpc2VzPU5v
bmUsIHN0cmljdD1GYWxzZSkqZXhwZWN0ZWQgZmFpbHVyZSoiLAorICAgIF0pCisKKworZGVmIHRl
c3RfeGZhaWxfdGVzdF9zZXR1cF9leGNlcHRpb24odGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoKToKKyAg
ICAgICAgICAgICAgICAwIC8gMAorICAgICAgICAiIiIpCisgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay54ZmFpbAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAg
IGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChw
KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgJ3hmYWlsZWQnIGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgJ3hwYXNzZWQnIG5vdCBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpCisKKworZGVmIHRlc3RfaW1wZXJhdGl2ZXNraXBfb25feGZhaWxfdGVzdCh0ZXN0
ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgIGRlZiB0ZXN0X3RoYXRfZmFpbHMo
KToKKyAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZigi
VHJ1ZSIpCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBwYXNzCisgICAg
IiIiKQorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgICAgIHB5
dGVzdC5za2lwKCJhYmMiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXJzeFgiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lc19yYW5kb20oIiIiCisg
ICAgICAgICpTS0lQKmFiYyoKKyAgICAgICAgKlNLSVAqY29uZGl0aW9uOiBUcnVlKgorICAgICAg
ICAqMiBza2lwcGVkKgorICAgICIiIikKKworCitjbGFzcyBUZXN0Qm9vbGVhbkNvbmRpdGlvbihv
YmplY3QpOgorICAgIGRlZiB0ZXN0X3NraXBpZihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZihUcnVlLCByZWFzb249IlRydWUxMjMiKQorICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYzEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsuc2tpcGlmKEZhbHNlLCByZWFzb249IlRydWUxMjMiKQorICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYzIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqMSBwYXNzZWQqMSBza2lwcGVkKgorICAg
ICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9za2lwaWZfbm9yZWFzb24oc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoVHJ1ZSkKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1ycyIpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICoxIGVycm9yKgorICAgICAgICAiIiIp
CisKKyAgICBkZWYgdGVzdF94ZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5
dGVzdC5tYXJrLnhmYWlsKFRydWUsIHJlYXNvbj0iVHJ1ZTEyMyIpCisgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ4cyIpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpYRkFJTCoKKyAgICAgICAgICAg
ICpUcnVlMTIzKgorICAgICAgICAgICAgKjEgeGZhaWwqCisgICAgICAgICIiIikKKworCitkZWYg
dGVzdF94ZmFpbF9pdGVtKHRlc3RkaXIpOgorICAgICMgRW5zdXJlIHB5dGVzdC54ZmFpbCB3b3Jr
cyB3aXRoIG5vbi1QeXRob24gSXRlbQorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgY2xhc3MgTXlJdGVtKHB5dGVzdC5JdGVtKToK
KyAgICAgICAgICAgIG5vZGVpZCA9ICdmb28nCisgICAgICAgICAgICBkZWYgcnVudGVzdChzZWxm
KToKKyAgICAgICAgICAgICAgICBweXRlc3QueGZhaWwoIkV4cGVjdGVkIEZhaWx1cmUiKQorCisg
ICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CisgICAgICAgICAg
ICByZXR1cm4gTXlJdGVtKCJmb28iLCBwYXJlbnQpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXN1bHQu
bGlzdG91dGNvbWVzKCkKKyAgICBhc3NlcnQgbm90IGZhaWxlZAorICAgIHhmYWlsZWQgPSBbciBm
b3IgciBpbiBza2lwcGVkIGlmIGhhc2F0dHIociwgJ3dhc3hmYWlsJyldCisgICAgYXNzZXJ0IHhm
YWlsZWQKKworCitkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfc2tpcF9lcnJvcih0ZXN0ZGlyKToKKyAg
ICAiIiIKKyAgICBWZXJpZnkgdGhhdCB1c2luZyBweXRlc3Quc2tpcCBhdCBtb2R1bGUgbGV2ZWwg
Y2F1c2VzIGEgY29sbGVjdGlvbiBlcnJvcgorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LnNraXAKKyAgICAg
ICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAiIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKKyAgICAgICAgIipVc2luZyBweXRlc3Quc2tpcCBvdXRzaWRlIG9mIGEgdGVzdCBp
cyBub3QgYWxsb3dlZCoiCisgICAgKQorCisKK2RlZiB0ZXN0X21vZHVsZV9sZXZlbF9za2lwX3dp
dGhfYWxsb3dfbW9kdWxlX2xldmVsKHRlc3RkaXIpOgorICAgICIiIgorICAgIFZlcmlmeSB0aGF0
IHVzaW5nIHB5dGVzdC5za2lwKGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKSBpcyBhbGxvd2VkCisg
ICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgIHB5dGVzdC5za2lwKCJza2lwX21vZHVsZV9sZXZlbCIsIGFsbG93X21vZHVsZV9s
ZXZlbD1UcnVlKQorCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIGFzc2Vy
dCAwCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnhzIikKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICIqU0tJUCpza2lwX21vZHVs
ZV9sZXZlbCIKKyAgICApCisKKworZGVmIHRlc3RfaW52YWxpZF9za2lwX2tleXdvcmRfcGFyYW1l
dGVyKHRlc3RkaXIpOgorICAgICIiIgorICAgIFZlcmlmeSB0aGF0IHVzaW5nIHB5dGVzdC5za2lw
KCkgd2l0aCB1bmtub3duIHBhcmFtZXRlciByYWlzZXMgYW4gZXJyb3IKKyAgICAiIiIKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgcHl0
ZXN0LnNraXAoInNraXBfbW9kdWxlX2xldmVsIiwgdW5rbm93bj0xKQorCisgICAgICAgIGRlZiB0
ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgIiIiKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisg
ICAgICAgICIqVHlwZUVycm9yOipbJ3Vua25vd24nXSoiCisgICAgKQorCisKK2RlZiB0ZXN0X21h
cmtfeGZhaWxfaXRlbSh0ZXN0ZGlyKToKKyAgICAjIEVuc3VyZSBweXRlc3QubWFyay54ZmFpbCB3
b3JrcyB3aXRoIG5vbi1QeXRob24gSXRlbQorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgY2xhc3MgTXlJdGVtKHB5dGVzdC5JdGVt
KToKKyAgICAgICAgICAgIG5vZGVpZCA9ICdmb28nCisgICAgICAgICAgICBkZWYgc2V0dXAoc2Vs
Zik6CisgICAgICAgICAgICAgICAgbWFya2VyID0gcHl0ZXN0Lm1hcmsueGZhaWwoVHJ1ZSwgcmVh
c29uPSJFeHBlY3RlZCBmYWlsdXJlIikKKyAgICAgICAgICAgICAgICBzZWxmLmFkZF9tYXJrZXIo
bWFya2VyKQorICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IEZhbHNlCisKKyAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFy
ZW50KToKKyAgICAgICAgICAgIHJldHVybiBNeUl0ZW0oImZvbyIsIHBhcmVudCkKKyAgICAiIiIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICBwYXNzZWQsIHNraXBwZWQs
IGZhaWxlZCA9IHJlc3VsdC5saXN0b3V0Y29tZXMoKQorICAgIGFzc2VydCBub3QgZmFpbGVkCisg
ICAgeGZhaWxlZCA9IFtyIGZvciByIGluIHNraXBwZWQgaWYgaGFzYXR0cihyLCAnd2FzeGZhaWwn
KV0KKyAgICBhc3NlcnQgeGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3Rlcm1pbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Rlcm1pbmFsLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk3YzJmNzFmYjY2YTI3YTUzYTJlMjkzOGEyNjVjODdhMjhlM2FmNjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdGVybWluYWwucHkKQEAgLTAs
MCArMSwxMDM5IEBACisiIiIKK3Rlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0ZXN0aW5n
IHByb2Nlc3MuCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHN5cwor
CitpbXBvcnQgcGx1Z2d5CitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQg
cHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECitm
cm9tIF9weXRlc3QudGVybWluYWwgaW1wb3J0IFRlcm1pbmFsUmVwb3J0ZXIsIHJlcHJfcHl0aG9u
dmVyc2lvbiwgZ2V0cmVwb3J0b3B0Citmcm9tIF9weXRlc3QudGVybWluYWwgaW1wb3J0IGJ1aWxk
X3N1bW1hcnlfc3RhdHNfbGluZSwgX3BsdWdpbl9uYW1ldmVyc2lvbnMKKworCitEaXN0SW5mbyA9
IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoJ0Rpc3RJbmZvJywgWydwcm9qZWN0X25hbWUnLCAndmVy
c2lvbiddKQorCisKK2NsYXNzIE9wdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB2ZXJib3NlPUZhbHNlLCBmdWxsdHJhY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnZlcmJvc2Ug
PSB2ZXJib3NlCisgICAgICAgIHNlbGYuZnVsbHRyYWNlID0gZnVsbHRyYWNlCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgYXJncyhzZWxmKToKKyAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
aWYgc2VsZi52ZXJib3NlOgorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgnLXYnKQorICAgICAg
ICBpZiBzZWxmLmZ1bGx0cmFjZToKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoJy0tZnVsbHRy
YWNlJykKKyAgICAgICAgcmV0dXJuIHZhbHVlcworCisKK2RlZiBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMobWV0YWZ1bmMpOgorICAgIGlmICJvcHRpb24iIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoK
KyAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0iZGVmYXVsdCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuY2FyZ3M9eydvcHRpb24nOiBPcHRpb24odmVyYm9zZT1GYWxzZSl9KQorICAg
ICAgICBtZXRhZnVuYy5hZGRjYWxsKGlkPSJ2ZXJib3NlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jYXJncz17J29wdGlvbic6IE9wdGlvbih2ZXJib3NlPVRydWUpfSkKKyAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbChpZD0icXVpZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmNhcmdzPXsnb3B0aW9uJzogT3B0aW9uKHZlcmJvc2U9LTEpfSkKKyAgICAgICAgbWV0YWZ1bmMu
YWRkY2FsbChpZD0iZnVsbHRyYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jYXJn
cz17J29wdGlvbic6IE9wdGlvbihmdWxsdHJhY2U9VHJ1ZSl9KQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnaW5wdXQsZXhwZWN0ZWQnLCBbCisgICAgKFtEaXN0SW5mbyhwcm9qZWN0X25h
bWU9J3Rlc3QnLCB2ZXJzaW9uPTEpXSwgWyd0ZXN0LTEnXSksCisgICAgKFtEaXN0SW5mbyhwcm9q
ZWN0X25hbWU9J3B5dGVzdC10ZXN0JywgdmVyc2lvbj0xKV0sIFsndGVzdC0xJ10pLAorICAgIChb
CisgICAgICAgIERpc3RJbmZvKHByb2plY3RfbmFtZT0ndGVzdCcsIHZlcnNpb249MSksCisgICAg
ICAgIERpc3RJbmZvKHByb2plY3RfbmFtZT0ndGVzdCcsIHZlcnNpb249MSkKKyAgICBdLCBbJ3Rl
c3QtMSddKSwKK10sIGlkcz1bJ25vcm1hbCcsICdwcmVmaXgtc3RyaXAnLCAnZGVkdXBsaWNhdGUn
XSkKK2RlZiB0ZXN0X3BsdWdpbl9uYW1ldmVyc2lvbihpbnB1dCwgZXhwZWN0ZWQpOgorICAgIHBs
dWdpbmxpc3QgPSBbKE5vbmUsIHgpIGZvciB4IGluIGlucHV0XQorICAgIHJlc3VsdCA9IF9wbHVn
aW5fbmFtZXZlcnNpb25zKHBsdWdpbmxpc3QpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBleHBlY3Rl
ZAorCisKK2NsYXNzIFRlc3RUZXJtaW5hbChvYmplY3QpOgorICAgIGRlZiB0ZXN0X3Bhc3Nfc2tp
cF9mYWlsKHNlbGYsIHRlc3RkaXIsIG9wdGlvbik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X29r
KCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOgor
ICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJ4eCIpCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqb3B0aW9uLmFyZ3MpCisgICAgICAgIGlmIG9wdGlv
bi52ZXJib3NlOgorICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICAgICAiKnRlc3RfcGFzc19za2lwX2ZhaWwucHk6OnRlc3Rfb2sgUEFTUyoiLAor
ICAgICAgICAgICAgICAgICIqdGVzdF9wYXNzX3NraXBfZmFpbC5weTo6dGVzdF9za2lwIFNLSVAq
IiwKKyAgICAgICAgICAgICAgICAiKnRlc3RfcGFzc19za2lwX2ZhaWwucHk6OnRlc3RfZnVuYyBG
QUlMKiIsCisgICAgICAgICAgICBdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICAgICAiKnRlc3RfcGFzc19za2lw
X2ZhaWwucHkgLnNGKiIKKyAgICAgICAgICAgIF0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiICAgIGRlZiB0ZXN0X2Z1bmMoKToiLAorICAgICAg
ICAgICAgIj4gICAgICAgYXNzZXJ0IDAiLAorICAgICAgICAgICAgIkUgICAgICAgYXNzZXJ0IDAi
LAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCB0ZXN0ZGly
LCBsaW5lY29tcCk6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYg
dGVzdF9vbmUoKTogcGFzcyIpCisgICAgICAgIHJlcCA9IFRlcm1pbmFsUmVwb3J0ZXIobW9kY29s
LmNvbmZpZywgZmlsZT1saW5lY29tcC5zdHJpbmdpbykKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgInJhaXNlIFZhbHVlRXJyb3IoJ2hlbGxvJykiKQorICAgICAg
ICByZXAucHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjaW5mby5nZXRyZXByKCkpCisgICAgICAgIGxp
bmVjb21wLmFzc2VydF9jb250YWluc19saW5lcyhbCisgICAgICAgICAgICAiSU5URVJOQUxFUlJP
Uj4gKlZhbHVlRXJyb3IqaGVsbG8qIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfd3JpdGVs
aW5lKHNlbGYsIHRlc3RkaXIsIGxpbmVjb21wKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5n
ZXRtb2R1bGVjb2woImRlZiB0ZXN0X29uZSgpOiBwYXNzIikKKyAgICAgICAgcmVwID0gVGVybWlu
YWxSZXBvcnRlcihtb2Rjb2wuY29uZmlnLCBmaWxlPWxpbmVjb21wLnN0cmluZ2lvKQorICAgICAg
ICByZXAud3JpdGVfZnNwYXRoX3Jlc3VsdChtb2Rjb2wubm9kZWlkLCAiLiIpCisgICAgICAgIHJl
cC53cml0ZV9saW5lKCJoZWxsbyB3b3JsZCIpCisgICAgICAgIGxpbmVzID0gbGluZWNvbXAuc3Ry
aW5naW8uZ2V0dmFsdWUoKS5zcGxpdCgnXG4nKQorICAgICAgICBhc3NlcnQgbm90IGxpbmVzWzBd
CisgICAgICAgIGFzc2VydCBsaW5lc1sxXS5lbmRzd2l0aChtb2Rjb2wubmFtZSArICIgLiIpCisg
ICAgICAgIGFzc2VydCBsaW5lc1syXSA9PSAiaGVsbG8gd29ybGQiCisKKyAgICBkZWYgdGVzdF9z
aG93X3J1bnRlc3RfbG9nc3RhcnQoc2VsZiwgdGVzdGRpciwgbGluZWNvbXApOgorICAgICAgICBp
dGVtID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICB0
ciA9IFRlcm1pbmFsUmVwb3J0ZXIoaXRlbS5jb25maWcsIGZpbGU9bGluZWNvbXAuc3RyaW5naW8p
CisgICAgICAgIGl0ZW0uY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIodHIpCisgICAgICAg
IGxvY2F0aW9uID0gaXRlbS5yZXBvcnRpbmZvKCkKKyAgICAgICAgdHIuY29uZmlnLmhvb2sucHl0
ZXN0X3J1bnRlc3RfbG9nc3RhcnQobm9kZWlkPWl0ZW0ubm9kZWlkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbj1sb2NhdGlvbiwgZnNwYXRo
PXN0cihpdGVtLmZzcGF0aCkpCisgICAgICAgIGxpbmVjb21wLmFzc2VydF9jb250YWluc19saW5l
cyhbCisgICAgICAgICAgICAiKnRlc3Rfc2hvd19ydW50ZXN0X2xvZ3N0YXJ0LnB5KiIKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RfbG9jYXRpb25fc2hvd25fYmVmb3JlX3Rlc3Rf
c3RhcnRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHRpbWUKKyAg
ICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIwKQorICAgICAgICAiIiIpCisgICAgICAgIGNoaWxk
ID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiLip0ZXN0
X3J1bnRlc3RfbG9jYXRpb24uKnB5IikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAg
IGNoaWxkLmtpbGwoMTUpCisKKyAgICBkZWYgdGVzdF9pdGVtcmVwb3J0X3N1YmNsYXNzZXNfc2hv
d19zdWJjbGFzc2VkX2ZpbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSh0ZXN0X3AxPSIiIgorICAgICAgICAgICAgY2xhc3MgQmFzZVRlc3RzKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgZGVmIHRlc3RfcDEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhCYXNlVGVzdHMpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBwMiA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0
ZXN0X3AyPSIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0X3AxIGltcG9ydCBCYXNlVGVzdHMKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RNb3JlKEJhc2VUZXN0cyk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAyKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0
X3AyLnB5IC4qIiwKKyAgICAgICAgICAgICIqMSBwYXNzZWQqIiwKKyAgICAgICAgXSkKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcDIpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfcDIucHk6OlRlc3RNb3Jl
Ojp0ZXN0X3AxKiA8LSAqdGVzdF9wMS5weSpQQVNTRUQqIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2l0ZW1yZXBvcnRfZGlyZWN0Y2xhc3Nlc19ub3Rfc2hvd25fYXNfc3ViY2xhc3Nlcyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgYSA9IHRlc3RkaXIubWtweWRpcigiYTEyMyIpCisgICAg
ICAgIGEuam9pbigidGVzdF9oZWxsbzEyMy5weSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNl
KCIiIgorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICIqYTEyMy90ZXN0X2hlbGxvMTIzLnB5KlBBU1MqIiwKKyAg
ICAgICAgXSkKKyAgICAgICAgYXNzZXJ0ICIgPC0gIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIo
KQorCisgICAgZGVmIHRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIHRlc3RkaXIsIG9wdGlv
bik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2Zvb2JhcigpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVz
dF9zcGFtZWdnKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHB5OyBweXRlc3Quc2tpcCgnc2tp
cCBtZSBwbGVhc2UhJykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ludGVycnVwdF9tZSgpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0ICAgIyBzaW11bGF0aW5nIHRoZSB1
c2VyCisgICAgICAgICIiIikKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgq
b3B0aW9uLmFyZ3MsIG5vX3JlcmFpc2VfY3RybGM9VHJ1ZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIgICAgZGVmIHRlc3RfZm9vYmFyKCk6IiwK
KyAgICAgICAgICAgICI+ICAgICAgIGFzc2VydCAwIiwKKyAgICAgICAgICAgICJFICAgICAgIGFz
c2VydCAwIiwKKyAgICAgICAgICAgICIqX2tleWJvYXJkX2ludGVycnVwdC5weTo2OiBLZXlib2Fy
ZEludGVycnVwdCoiLAorICAgICAgICBdKQorICAgICAgICBpZiBvcHRpb24uZnVsbHRyYWNlOgor
ICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICAg
ICAiKnJhaXNlIEtleWJvYXJkSW50ZXJydXB0ICAgIyBzaW11bGF0aW5nIHRoZSB1c2VyKiIsCisg
ICAgICAgICAgICBdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICAgICAidG8gc2hvdyBhIGZ1bGwgdHJhY2ViYWNr
IG9uIEtleWJvYXJkSW50ZXJydXB0IHVzZSAtLWZ1bGx0cmFjZSIKKyAgICAgICAgICAgIF0pCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJypLZXlib2FyZEludGVycnVwdCon
XSkKKworICAgIGRlZiB0ZXN0X2tleWJvYXJkX2luX3Nlc3Npb25zdGFydChzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0
ZXN0X3Nlc3Npb25zdGFydCgpOgorICAgICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJy
dXB0CisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vYmFyKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAi
IiIpCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qobm9fcmVyYWlzZV9jdHJs
Yz1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAyCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbJypLZXlib2FyZEludGVycnVwdConXSkKKworICAgIGRlZiB0
ZXN0X2NvbGxlY3Rfc2luZ2xlX2l0ZW0oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlVzZSBz
aW5ndWxhciAnaXRlbScgd2hlbiByZXBvcnRpbmcgYSBzaW5nbGUgdGVzdCBpdGVtIiIiCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvb2Jhcigp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
J2NvbGxlY3RlZCAxIGl0ZW0nXSkKKworICAgIGRlZiB0ZXN0X3Jld3JpdGUoc2VsZiwgdGVzdGRp
ciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkK
KyAgICAgICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
ZiwgJ2lzYXR0eScsIGxhbWJkYSAqYXJnczogVHJ1ZSkKKyAgICAgICAgdHIgPSBUZXJtaW5hbFJl
cG9ydGVyKGNvbmZpZywgZikKKyAgICAgICAgdHIuX3R3LmZ1bGx3aWR0aCA9IDEwCisgICAgICAg
IHRyLndyaXRlKCdoZWxsbycpCisgICAgICAgIHRyLnJld3JpdGUoJ2hleScsIGVyYXNlPVRydWUp
CisgICAgICAgIGFzc2VydCBmLmdldHZhbHVlKCkgPT0gJ2hlbGxvJyArICdccicgKyAnaGV5JyAr
ICg2ICogJyAnKQorCisKK2NsYXNzIFRlc3RDb2xsZWN0b25seShvYmplY3QpOgorICAgIGRlZiB0
ZXN0X2NvbGxlY3Rvbmx5X2Jhc2ljKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWNvbGxlY3Qtb25seSIsKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgIjxNb2R1bGUgJ3Rlc3RfY29sbGVjdG9ubHlfYmFzaWMucHknPiIsCisg
ICAgICAgICAgICAiICA8RnVuY3Rpb24gJ3Rlc3RfZnVuYyc+IiwKKyAgICAgICAgXSkKKworICAg
IGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X3NraXBwZWRfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICItcnMiKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipFUlJPUiBjb2xs
ZWN0aW5nKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9mYWlsZWRf
bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIicmFp
c2UgVmFsdWVFcnJvcigwKSIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICIqcmFpc2UgVmFsdWVFcnJvcioiLAorICAgICAgICAgICAgIioxIGVycm9y
KiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9mYXRhbChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0b3IpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAwLCAidXJncyIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIipJTlRFUk5BTCphcmdzKiIKKyAgICAgICAgXSkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMworCisgICAgZGVmIHRlc3RfY29sbGVjdG9ubHlfc2ltcGxl
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYzEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiLCBwKQorICAg
ICAgICAjIGFzc2VydCBzdGRlcnIuc3RhcnRzd2l0aCgiaW5zZXJ0aW5nIGludG8gc3lzLnBhdGgi
KQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjxNb2R1bGUgJyoucHknPiIsCisgICAgICAg
ICAgICAiKiA8RnVuY3Rpb24gJ3Rlc3RfZnVuYzEnKj4iLAorICAgICAgICAgICAgIiogPENsYXNz
ICdUZXN0Q2xhc3MnPiIsCisgICAgICAgICAgICAjICIqICA8SW5zdGFuY2UgJygpJz4iLAorICAg
ICAgICAgICAgIiogICA8RnVuY3Rpb24gJ3Rlc3RfbWV0aG9kJyo+IiwKKyAgICAgICAgXSkKKwor
ICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKCJpbXBvcnQgRXJybGtqcXdlcXdlIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IiwgcCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICAqRVJST1IqCisgICAgICAgICAg
ICAqSW1wb3J0RXJyb3IqCisgICAgICAgICAgICAqTm8gbW9kdWxlIG5hbWVkICpFcnJsayoKKyAg
ICAgICAgICAgICoxIGVycm9yKgorICAgICAgICAiIiIpLnN0cmlwKCkpCisKKyAgICBkZWYgdGVz
dF9jb2xsZWN0b25seV9taXNzaW5nX3BhdGgoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiInRo
aXMgY2hlY2tzIGlzc3VlIDExNSwKKyAgICAgICAgICAgIGZhaWx1cmUgaW4gcGFyc2VhcmdzIHdp
bGwgY2F1c2Ugc2Vzc2lvbgorICAgICAgICAgICAgbm90IHRvIGhhdmUgdGhlIGl0ZW1zIGF0dHJp
YnV0ZQorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Y29sbGVjdC1vbmx5IiwgInVobV9taXNzaW5nX3BhdGgiKQorICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSA0CisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAnKkVSUk9SOiBmaWxlIG5vdCBmb3VuZConLAorICAgICAgICBdKQorCisgICAgZGVmIHRl
c3RfY29sbGVjdG9ubHlfcXVpZXQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiZGVmIHRlc3RfZm9vKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiLCAiLXEiKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyp0ZXN0X2ZvbyonLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3RfY29sbGVjdG9ubHlfbW9yZV9xdWlldChzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZnVuPSJkZWYgdGVzdF9mb28oKTogcGFzcyIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICIt
cXEiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
Jyp0ZXN0X2Z1bi5weTogMSonLAorICAgICAgICBdKQorCisKK2RlZiB0ZXN0X3JlcHJfcHl0aG9u
X3ZlcnNpb24obW9ua2V5cGF0Y2gpOgorICAgIHRyeToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihzeXMsICd2ZXJzaW9uX2luZm8nLCAoMiwgNSwgMSwgJ2ZpbmFsJywgMCkpCisgICAgICAg
IGFzc2VydCByZXByX3B5dGhvbnZlcnNpb24oKSA9PSAiMi41LjEtZmluYWwtMCIKKyAgICAgICAg
cHkuc3RkLnN5cy52ZXJzaW9uX2luZm8gPSB4ID0gKDIsIDMpCisgICAgICAgIGFzc2VydCByZXBy
X3B5dGhvbnZlcnNpb24oKSA9PSBzdHIoeCkKKyAgICBmaW5hbGx5OgorICAgICAgICBtb25rZXlw
YXRjaC51bmRvKCkgICMgZG8gdGhpcyBlYXJseSBhcyBweXRlc3QgY2FuIGdldCBjb25mdXNlZAor
CisKK2NsYXNzIFRlc3RGaXh0dXJlUmVwb3J0aW5nKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc2V0
dXBfZml4dHVyZV9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAg
ICAgICAgICAgICBwcmludCAoInNldHVwIGZ1bmMiKQorICAgICAgICAgICAgICAgIGFzc2VydCAw
CisgICAgICAgICAgICBkZWYgdGVzdF9uYWRhKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqRVJST1IgYXQgc2V0
dXAgb2YgdGVzdF9uYWRhKiIsCisgICAgICAgICAgICAiKnNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9u
KToqIiwKKyAgICAgICAgICAgICIqc2V0dXAgZnVuYyoiLAorICAgICAgICAgICAgIiphc3NlcnQg
MCoiLAorICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0ICE9IDAKKworICAgIGRlZiB0ZXN0X3RlYXJkb3duX2ZpeHR1cmVfZXJyb3Io
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X25hZGEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBk
ZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIHByaW50ICgi
dGVhcmRvd24gZnVuYyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkVSUk9SIGF0IHRlYXJkb3duKiIsCisg
ICAgICAgICAgICAiKnRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToqIiwKKyAgICAgICAgICAg
ICIqYXNzZXJ0IDAqIiwKKyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3Rkb3V0KiIsCisgICAgICAg
ICAgICAiKnRlYXJkb3duIGZ1bmMqIiwKKyAgICAgICAgICAgICIqMSBwYXNzZWQqMSBlcnJvcioi
LAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdGVhcmRvd25fZml4dHVyZV9lcnJvcl9hbmRf
dGVzdF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAsICJmYWlsaW5nZnVuYyIKKworICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1
bmN0aW9uKToKKyAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIGZ1bmMiKQorICAgICAg
ICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICIqRVJST1IgYXQgdGVhcmRvd24gb2YgdGVzdF9mYWlsKiIsCisgICAgICAg
ICAgICAiKnRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToqIiwKKyAgICAgICAgICAgICIqYXNz
ZXJ0IEZhbHNlKiIsCisgICAgICAgICAgICAiKkNhcHR1cmVkIHN0ZG91dCoiLAorICAgICAgICAg
ICAgIip0ZWFyZG93biBmdW5jKiIsCisKKyAgICAgICAgICAgICIqdGVzdF9mYWlsKiIsCisgICAg
ICAgICAgICAiKmRlZiB0ZXN0X2ZhaWwoKToiLAorICAgICAgICAgICAgIipmYWlsaW5nZnVuYyoi
LAorICAgICAgICAgICAgIioxIGZhaWxlZCoxIGVycm9yKiIsCisgICAgICAgIF0pCisKKyAgICBk
ZWYgdGVzdF9zZXR1cF90ZWFyZG93bl9vdXRwdXRfYW5kX3Rlc3RfZmFpbHVyZShzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgIiIiIFRlc3QgZm9yIGlzc3VlICM0NDIgIiIiCisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jdGlv
bik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBmdW5jIikKKworICAgICAgICAgICAg
ZGVmIHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiZmFpbGluZ2Z1bmMi
CisKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAg
ICAgICAgICAgcHJpbnQgKCJ0ZWFyZG93biBmdW5jIikKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfZmFpbCoiLAorICAgICAgICAgICAgIipkZWYg
dGVzdF9mYWlsKCk6IiwKKyAgICAgICAgICAgICIqZmFpbGluZ2Z1bmMqIiwKKyAgICAgICAgICAg
ICIqQ2FwdHVyZWQgc3Rkb3V0IHNldHVwKiIsCisgICAgICAgICAgICAiKnNldHVwIGZ1bmMqIiwK
KyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3Rkb3V0IHRlYXJkb3duKiIsCisgICAgICAgICAgICAi
KnRlYXJkb3duIGZ1bmMqIiwKKworICAgICAgICAgICAgIioxIGZhaWxlZCoiLAorICAgICAgICBd
KQorCisKK2NsYXNzIFRlc3RUZXJtaW5hbEZ1bmN0aW9uYWwob2JqZWN0KToKKyAgICBkZWYgdGVz
dF9kZXNlbGVjdGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9vbmUoKToKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3bygpOgorICAgICAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdGhyZWUoKToKKyAg
ICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLWsiLCAidGVzdF90d286IiwgdGVzdHBhdGgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfZGVzZWxlY3RlZC5weSAuLioiLAorICAg
ICAgICAgICAgIj0qIDEgdGVzdCpkZXNlbGVjdGVkICo9IiwKKyAgICAgICAgXSkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgZGVmIHRlc3Rfbm9fc2tpcF9zdW1tYXJ5X2lm
X2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X29rKCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9za2lwKCk6CisgICAgICAg
ICAgICAgICAgcHl0ZXN0LnNraXAoImRvbnRzaG93IikKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQuc3Rkb3V0
LnN0cigpLmZpbmQoInNraXAgdGVzdCBzdW1tYXJ5IikgPT0gLTEKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMQorCisgICAgZGVmIHRlc3RfcGFzc2VzKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bh
c3NlcygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFz
cyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIG9sZCA9IHAxLmRpcnBh
dGgoKS5jaGRpcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9sZC5jaGRpcigpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAidGVzdF9w
YXNzZXMucHkgLi4qIiwKKyAgICAgICAgICAgICIqIDIgcGFzcyoiLAorICAgICAgICBdKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9oZWFkZXJfdHJhaWxl
cl9pbmZvKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9wYXNzZXMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICB2
ZXJpbmZvID0gIi4iLmpvaW4obWFwKHN0ciwgcHkuc3RkLnN5cy52ZXJzaW9uX2luZm9bOjNdKSkK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqPT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09KiIsCisgICAgICAgICAgICAicGxhdGZvcm0gJXMg
LS0gUHl0aG9uICVzKnB5dGVzdC0lcypweS0lcypwbHVnZ3ktJXMiICUgKAorICAgICAgICAgICAg
ICAgIHB5LnN0ZC5zeXMucGxhdGZvcm0sIHZlcmluZm8sCisgICAgICAgICAgICAgICAgcHl0ZXN0
Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXywgcGx1Z2d5Ll9fdmVyc2lvbl9fKSwKKyAgICAg
ICAgICAgICIqdGVzdF9oZWFkZXJfdHJhaWxlcl9pbmZvLnB5IC4qIiwKKyAgICAgICAgICAgICI9
KiAxIHBhc3NlZCppbiAqLlswLTldWzAtOV0gc2Vjb25kcyAqPSIsCisgICAgICAgIF0pCisgICAg
ICAgIGlmIHB5dGVzdC5jb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygp
OgorICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICAgICAicGx1Z2luczogKiIsCisgICAgICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2hvd2xv
Y2FscyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9zaG93bG9jYWxzKCk6CisgICAgICAgICAgICAgICAgeCA9
IDMKKyAgICAgICAgICAgICAgICB5ID0gIngiICogNTAwMAorICAgICAgICAgICAgICAgIGFzc2Vy
dCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocDEs
ICctbCcpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAjICJfIF8gKiBMb2NhbHMgKiIsCisgICAgICAgICAgICAieCogPSAzIiwKKyAgICAgICAgICAg
ICJ5KiA9ICd4eHh4eHgqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdmVyYm9zZV9yZXBv
cnRpbmcoc2VsZiwgdGVzdGRpciwgcHl0ZXN0Y29uZmlnKToKKyAgICAgICAgcDEgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBk
ZWYgdGVzdF9mYWlsKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAg
ICAgICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc2tp
cChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2dlbigpOgorICAgICAgICAgICAgICAgIGRlZiBjaGVjayh4KToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IHggPT0gMQorICAgICAgICAgICAgICAgIHlpZWxkIGNo
ZWNrLCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cDEsICctdicpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAiKnRlc3RfdmVyYm9zZV9yZXBvcnRpbmcucHk6OnRlc3RfZmFpbCAqRkFJTCoiLAorICAg
ICAgICAgICAgIip0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nLnB5Ojp0ZXN0X3Bhc3MgKlBBU1MqIiwK
KyAgICAgICAgICAgICIqdGVzdF92ZXJib3NlX3JlcG9ydGluZy5weTo6VGVzdENsYXNzOjp0ZXN0
X3NraXAgKlNLSVAqIiwKKyAgICAgICAgICAgICIqdGVzdF92ZXJib3NlX3JlcG9ydGluZy5weTo6
dGVzdF9nZW4qMCogKkZBSUwqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMQorCisgICAgICAgIGlmIG5vdCBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlci5nZXRf
cGx1Z2luKCJ4ZGlzdCIpOgorICAgICAgICAgICAgcHl0ZXN0LnNraXAoInhkaXN0IHBsdWdpbiBu
b3QgaW5zdGFsbGVkIikKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwg
Jy12JywgJy1uIDEnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIipGQUlMKnRlc3RfdmVyYm9zZV9yZXBvcnRpbmcucHk6OnRlc3RfZmFpbCoiLAor
ICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisKKyAgICBkZWYgdGVz
dF9xdWlldF9yZXBvcnRpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5t
YWtlcHlmaWxlKCJkZWYgdGVzdF9wYXNzKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdChwMSwgJy1xJykKKyAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkK
KyAgICAgICAgYXNzZXJ0ICd0ZXN0IHNlc3Npb24gc3RhcnRzJyBub3QgaW4gcworICAgICAgICBh
c3NlcnQgcDEuYmFzZW5hbWUgbm90IGluIHMKKyAgICAgICAgYXNzZXJ0ICI9PT0iIG5vdCBpbiBz
CisgICAgICAgIGFzc2VydCAicGFzc2VkIiBpbiBzCisKKyAgICBkZWYgdGVzdF9tb3JlX3F1aWV0
X3JlcG9ydGluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoImRlZiB0ZXN0X3Bhc3MoKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHAxLCAnLXFxJykKKyAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAg
ICAgYXNzZXJ0ICd0ZXN0IHNlc3Npb24gc3RhcnRzJyBub3QgaW4gcworICAgICAgICBhc3NlcnQg
cDEuYmFzZW5hbWUgbm90IGluIHMKKyAgICAgICAgYXNzZXJ0ICI9PT0iIG5vdCBpbiBzCisgICAg
ICAgIGFzc2VydCAicGFzc2VkIiBub3QgaW4gcworCisgICAgZGVmIHRlc3RfcmVwb3J0X2NvbGxl
Y3Rpb25maW5pc2hfaG9vayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNo
KGNvbmZpZywgc3RhcnRkaXIsIGl0ZW1zKToKKyAgICAgICAgICAgICAgICByZXR1cm4gWydoZWxs
byBmcm9tIGhvb2s6IHswfSBpdGVtcycuZm9ybWF0KGxlbihpdGVtcykpXQorICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnaScsIHJhbmdlKDMpKQor
ICAgICAgICAgICAgZGVmIHRlc3QoaSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAi
IiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICJjb2xsZWN0ZWQgMyBpdGVtcyIs
CisgICAgICAgICAgICAiaGVsbG8gZnJvbSBob29rOiAzIGl0ZW1zIiwKKyAgICAgICAgXSkKKwor
CitkZWYgdGVzdF9mYWlsX2V4dHJhX3JlcG9ydGluZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTogYXNzZXJ0IDAiKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgJ3Nob3J0IHRlc3Qgc3VtbWFyeScgbm90IGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJmJykK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKnRlc3Qgc3VtbWFy
eSoiLAorICAgICAgICAiRkFJTCp0ZXN0X2ZhaWxfZXh0cmFfcmVwb3J0aW5nKiIsCisgICAgXSkK
KworCitkZWYgdGVzdF9mYWlsX3JlcG9ydGluZ19vbl9wYXNzKHRlc3RkaXIpOgorICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfdGhpcygpOiBhc3NlcnQgMSIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoJy1yZicpCisgICAgYXNzZXJ0ICdzaG9ydCB0ZXN0IHN1bW1hcnkn
IG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfcGFzc19leHRyYV9yZXBv
cnRpbmcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6
IGFzc2VydCAxIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0
ICdzaG9ydCB0ZXN0IHN1bW1hcnknIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1ycCcpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgIip0ZXN0IHN1bW1hcnkqIiwKKyAgICAgICAgIlBBU1MqdGVzdF9w
YXNzX2V4dHJhX3JlcG9ydGluZyoiLAorICAgIF0pCisKKworZGVmIHRlc3RfcGFzc19yZXBvcnRp
bmdfb25fZmFpbCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X3Ro
aXMoKTogYXNzZXJ0IDAiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcnAnKQor
ICAgIGFzc2VydCAnc2hvcnQgdGVzdCBzdW1tYXJ5JyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIo
KQorCisKK2RlZiB0ZXN0X3Bhc3Nfb3V0cHV0X3JlcG9ydGluZyh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X3Bhc3Nfb3V0cHV0KCk6CisgICAg
ICAgICAgICBwcmludCgiRm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4uIikKKyAgICAi
IiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCAnRm91ciBz
Y29yZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4uJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctclAnKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICJGb3VyIHNjb3JlIGFuZCBzZXZlbiB5ZWFycyBhZ28u
Li4iLAorICAgIF0pCisKKworZGVmIHRlc3RfY29sb3JfeWVzKHRlc3RkaXIpOgorICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfdGhpcygpOiBhc3NlcnQgMSIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoJy0tY29sb3I9eWVzJykKKyAgICBhc3NlcnQgJ3Rlc3Qgc2Vzc2lv
biBzdGFydHMnIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgJ1x4MWJbMW0nIGlu
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9jb2xvcl9ubyh0ZXN0ZGlyKToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTogYXNzZXJ0IDEiKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWNvbG9yPW5vJykKKyAgICBhc3NlcnQgJ3Rlc3Qg
c2Vzc2lvbiBzdGFydHMnIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgJ1x4MWJb
MW0nIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCd2ZXJib3NlJywgW1RydWUsIEZhbHNlXSkKK2RlZiB0ZXN0X2NvbG9yX3llc19jb2xsZWN0
aW9uX29uX25vbl9hdHR5KHRlc3RkaXIsIHZlcmJvc2UpOgorICAgICIiInNraXAgY29sbGVjdCBw
cm9ncmVzcyByZXBvcnQgd2hlbiB3b3JraW5nIG9uIG5vbi10ZXJtaW5hbHMuCisgICAgIzEzOTcK
KyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpJywgcmFuZ2UoMTApKQorICAg
ICAgICBkZWYgdGVzdF90aGlzKGkpOgorICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAiIiIpCisg
ICAgYXJncyA9IFsnLS1jb2xvcj15ZXMnXQorICAgIGlmIHZlcmJvc2U6CisgICAgICAgIGFyZ3Mu
YXBwZW5kKCctdnYnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAg
IGFzc2VydCAndGVzdCBzZXNzaW9uIHN0YXJ0cycgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAg
IGFzc2VydCAnXHgxYlsxbScgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAnY29s
bGVjdGluZyAxMCBpdGVtcycgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBpZiB2ZXJi
b3NlOgorICAgICAgICBhc3NlcnQgJ2NvbGxlY3RpbmcgLi4uJyBpbiByZXN1bHQuc3Rkb3V0LnN0
cigpCisgICAgYXNzZXJ0ICdjb2xsZWN0ZWQgMTAgaXRlbXMnIGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKworCitkZWYgdGVzdF9nZXRyZXBvcnRvcHQoKToKKyAgICBjbGFzcyBjb25maWcob2JqZWN0
KToKKyAgICAgICAgY2xhc3Mgb3B0aW9uKG9iamVjdCk6CisgICAgICAgICAgICByZXBvcnRjaGFy
cyA9ICIiCisgICAgICAgICAgICBkaXNhYmxlX3dhcm5pbmdzID0gVHJ1ZQorCisgICAgY29uZmln
Lm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZiIKKyAgICBhc3NlcnQgZ2V0cmVwb3J0b3B0KGNvbmZp
ZykgPT0gInNmIgorCisgICAgY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZnh3IgorICAg
IGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9PSAic2Z4IgorCisgICAgY29uZmlnLm9wdGlv
bi5yZXBvcnRjaGFycyA9ICJzZngiCisgICAgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdz
ID0gRmFsc2UKKyAgICBhc3NlcnQgZ2V0cmVwb3J0b3B0KGNvbmZpZykgPT0gInNmeHciCisKKyAg
ICBjb25maWcub3B0aW9uLnJlcG9ydGNoYXJzID0gInNmeHciCisgICAgY29uZmlnLm9wdGlvbi5k
aXNhYmxlX3dhcm5pbmdzID0gRmFsc2UKKyAgICBhc3NlcnQgZ2V0cmVwb3J0b3B0KGNvbmZpZykg
PT0gInNmeHciCisKKworZGVmIHRlc3RfdGVybWluYWxyZXBvcnRlcl9yZXBvcnRvcHRfYWRkb3B0
cyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoIltweXRlc3RdXG5hZGRvcHRzPS1ycyIp
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiB0cihyZXF1ZXN0KToKKyAgICAgICAg
ICAgIHRyID0gcmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oInRlcm1pbmFs
cmVwb3J0ZXIiKQorICAgICAgICAgICAgcmV0dXJuIHRyCisgICAgICAgIGRlZiB0ZXN0X29wdCh0
cik6CisgICAgICAgICAgICBhc3NlcnQgdHIuaGFzb3B0KCdza2lwcGVkJykKKyAgICAgICAgICAg
IGFzc2VydCBub3QgdHIuaGFzb3B0KCdxd2UnKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgIioxIHBhc3NlZCoiCisgICAgXSkKKworCitkZWYgdGVzdF90YnN0eWxlX3Nob3J0KHRlc3Rk
aXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToK
KyAgICAgICAgICAgIHJldHVybiA0MgorICAgICAgICBkZWYgdGVzdF9vcHQoYXJnKToKKyAgICAg
ICAgICAgIHggPSAwCisgICAgICAgICAgICBhc3NlcnQgeAorICAgICIiIikKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS10Yj1zaG9ydCIpCisgICAgcyA9IHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICBhc3NlcnQgJ2FyZyA9IDQyJyBub3QgaW4gcworICAgIGFzc2VydCAneCA9IDAn
IG5vdCBpbiBzCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIiol
czo4KiIgJSBwLmJhc2VuYW1lLAorICAgICAgICAiICAgIGFzc2VydCB4IiwKKyAgICAgICAgIkUg
ICBhc3NlcnQqIiwKKyAgICBdKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICBzID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAneCA9IDAnIGluIHMKKyAgICBh
c3NlcnQgJ2Fzc2VydCB4JyBpbiBzCisKKworZGVmIHRlc3RfdHJhY2Vjb25maWcodGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXRyYWNlY29u
ZmlnIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKmFjdGl2
ZSBwbHVnaW5zKiIKKyAgICBdKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNU
U0NPTExFQ1RFRAorCisKK2NsYXNzIFRlc3RHZW5lcmljUmVwb3J0aW5nKG9iamVjdCk6CisgICAg
IiIiIHRoaXMgdGVzdCBjbGFzcyBjYW4gYmUgc3ViY2xhc3NlZCB3aXRoIGEgZGlmZmVyZW50IG9w
dGlvbgorICAgICAgICBwcm92aWRlciB0byBydW4gZS5nLiBkaXN0cmlidXRlZCB0ZXN0cy4KKyAg
ICAiIiIKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfZmFpbChzZWxmLCB0ZXN0ZGlyLCBvcHRpb24p
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImltcG9ydCB4eXpcbiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCpvcHRpb24uYXJncykKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICJJbXBvcnRFcnJvciB3aGlsZSBpbXBv
cnRpbmcqIiwKKyAgICAgICAgICAgICIqTm8gbW9kdWxlIG5hbWVkICp4eXoqIiwKKyAgICAgICAg
ICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbWF4ZmFpbHVyZXMo
c2VsZiwgdGVzdGRpciwgb3B0aW9uKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1heGZhaWw9MiIsICpvcHRp
b24uYXJncykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqZGVmIHRlc3RfMSgpOioiLAorICAgICAgICAgICAgIipkZWYgdGVzdF8yKCk6KiIsCisg
ICAgICAgICAgICAiKjIgZmFpbGVkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90Yl9v
cHRpb24oc2VsZiwgdGVzdGRpciwgb3B0aW9uKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIGcoKToKKyAg
ICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5j
KCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKDYqNykKKyAgICAgICAgICAgICAgICBnKCkgICMg
LS1jYWxsaW5nLS0KKyAgICAgICAgIiIiKQorICAgICAgICBmb3IgdGJvcHQgaW4gWyJsb25nIiwg
InNob3J0IiwgIm5vIl06CisgICAgICAgICAgICBwcmludCgndGVzdGluZyAtLXRiPSVzLi4uJyAl
IHRib3B0KQorICAgICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tdGI9JXMn
ICUgdGJvcHQpCisgICAgICAgICAgICBzID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICAg
ICAgaWYgdGJvcHQgPT0gImxvbmciOgorICAgICAgICAgICAgICAgIGFzc2VydCAncHJpbnQgKDYq
NyknIGluIHMKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICdwcmlu
dCAoNio3KScgbm90IGluIHMKKyAgICAgICAgICAgIGlmIHRib3B0ICE9ICJubyI6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0ICctLWNhbGxpbmctLScgaW4gcworICAgICAgICAgICAgICAgIGFzc2Vy
dCAnSW5kZXhFcnJvcicgaW4gcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgJ0ZBSUxVUkVTJyBub3QgaW4gcworICAgICAgICAgICAgICAgIGFzc2VydCAnLS1jYWxs
aW5nLS0nIG5vdCBpbiBzCisgICAgICAgICAgICAgICAgYXNzZXJ0ICdJbmRleEVycm9yJyBub3Qg
aW4gcworCisgICAgZGVmIHRlc3RfdGJfY3Jhc2hsaW5lKHNlbGYsIHRlc3RkaXIsIG9wdGlvbik6
CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4
RXJyb3IKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6CisgICAgICAgICAgICAgICAgcHJp
bnQgKDYqNykKKyAgICAgICAgICAgICAgICBnKCkgICMgLS1jYWxsaW5nLS0KKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMyKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICJoZWxsbyIKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS10Yj1saW5l
IikKKyAgICAgICAgYm4gPSBwLmJhc2VuYW1lCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKiVzOjM6IEluZGV4RXJyb3IqIiAlIGJuLAorICAgICAg
ICAgICAgIiolczo4OiBBc3NlcnRpb25FcnJvcjogaGVsbG8qIiAlIGJuLAorICAgICAgICBdKQor
ICAgICAgICBzID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgImRlZiB0ZXN0
X2Z1bmMyIiBub3QgaW4gcworCisgICAgZGVmIHRlc3RfcHl0ZXN0X3JlcG9ydF9oZWFkZXIoc2Vs
ZiwgdGVzdGRpciwgb3B0aW9uKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKKyAgICAgICAgICAg
ICAgICBzZXNzaW9uLmNvbmZpZy5fc29tZXZhbHVlID0gNDIKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfcmVwb3J0X2hlYWRlcihjb25maWcpOgorICAgICAgICAgICAgICAgIHJldHVybiAiaGVsbG86
ICVzIiAlIGNvbmZpZy5fc29tZXZhbHVlCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5t
a2RpcigiYSIpLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoIiIiCitkZWYgcHl0ZXN0X3JlcG9y
dF9oZWFkZXIoY29uZmlnLCBzdGFydGRpcik6CisgICAgcmV0dXJuIFsibGluZTEiLCBzdHIoc3Rh
cnRkaXIpXQorIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiYSIpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmhlbGxv
OiA0MioiLAorICAgICAgICAgICAgImxpbmUxIiwKKyAgICAgICAgICAgIHN0cih0ZXN0ZGlyLnRt
cGRpciksCisgICAgICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKCJub3QgaGFzYXR0cihv
cywgJ2R1cCcpIikKK2RlZiB0ZXN0X2Zkb3Blbl9rZXB0X2FsaXZlX2lzc3VlMTI0KHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IG9zLCBzeXMKKyAg
ICAgICAgayA9IFtdCisgICAgICAgIGRlZiB0ZXN0X29wZW5fZmlsZV9hbmRfa2VlcF9hbGl2ZShj
YXBmZCk6CisgICAgICAgICAgICBzdGRvdXQgPSBvcy5mZG9wZW4oMSwgJ3cnLCAxKQorICAgICAg
ICAgICAgay5hcHBlbmQoc3Rkb3V0KQorCisgICAgICAgIGRlZiB0ZXN0X2Nsb3NlX2tlcHRfYWxp
dmVfZmlsZSgpOgorICAgICAgICAgICAgc3Rkb3V0ID0gay5wb3AoKQorICAgICAgICAgICAgc3Rk
b3V0LmNsb3NlKCkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqMiBwYXNzZWQqIgor
ICAgIF0pCisKKworZGVmIHRlc3RfdGJzdHlsZV9uYXRpdmVfc2V0dXBfZXJyb3IodGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgc2V0dXBfZXJyb3JfZml4dHVyZSgpOgor
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJlcnJvciBpbiBleGNlcHRpb24iKQorCisgICAg
ICAgIGRlZiB0ZXN0X2Vycm9yX2ZpeHR1cmUoc2V0dXBfZXJyb3JfZml4dHVyZSk6CisgICAgICAg
ICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXRi
PW5hdGl2ZSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypG
aWxlICp0ZXN0X3Ric3R5bGVfbmF0aXZlX3NldHVwX2Vycm9yLnB5IiwgbGluZSAqLCBpbiBzZXR1
cF9lcnJvcl9maXh0dXJlKicKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Rlcm1pbmFsX3N1bW1hcnko
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgIGRlZiBweXRl
c3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyLCBleGl0c3RhdHVzKToKKyAgICAg
ICAgICAgIHcgPSB0ZXJtaW5hbHJlcG9ydGVyCisgICAgICAgICAgICB3LnNlY3Rpb24oImhlbGxv
IikKKyAgICAgICAgICAgIHcubGluZSgid29ybGQiKQorICAgICAgICAgICAgdy5saW5lKCJleGl0
c3RhdHVzOiB7MH0iLmZvcm1hdChleGl0c3RhdHVzKSkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIK
KyAgICAgICAgKj09PT0gaGVsbG8gPT09PSoKKyAgICAgICAgd29ybGQKKyAgICAgICAgZXhpdHN0
YXR1czogNQorICAgICIiIikKKworCitkZWYgdGVzdF90ZXJtaW5hbF9zdW1tYXJ5X3dhcm5pbmdz
X2FyZV9kaXNwbGF5ZWQodGVzdGRpcik6CisgICAgIiIiVGVzdCB0aGF0IHdhcm5pbmdzIGVtaXR0
ZWQgZHVyaW5nIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5IGFyZSBkaXNwbGF5ZWQuCisgICAgKCMx
MzA1KS4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgZGVm
IHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgorICAgICAgICAgICAg
Y29uZmlnID0gdGVybWluYWxyZXBvcnRlci5jb25maWcKKyAgICAgICAgICAgIGNvbmZpZy53YXJu
KCdDMScsICdpbnRlcm5hbCB3YXJuaW5nJykKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoJy1ydycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgJyppbnRlcm5hbCB3YXJuaW5nJywKKyAgICAgICAgJyo9PSAxIHdhcm5pbmdzIGluICon
LAorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJleHBfY29sb3IsIGV4cF9s
aW5lLCBzdGF0c19hcmciLCBbCisgICAgIyBUaGUgbWV0aG9kIHVuZGVyIHRlc3Qgb25seSBjYXJl
cyBhYm91dCB0aGUgbGVuZ3RoIG9mIGVhY2gKKyAgICAjIGRpY3QgdmFsdWUsIG5vdCB0aGUgYWN0
dWFsIGNvbnRlbnRzLCBzbyB0dXBsZXMgb2YgYW55dGhpbmcKKyAgICAjIHN1ZmZpY2UKKworICAg
ICMgSW1wb3J0YW50IHN0YXR1c2VzIC0tIHRoZSBoaWdoZXN0IHByaW9yaXR5IG9mIHRoZXNlIGFs
d2F5cyB3aW5zCisgICAgKCJyZWQiLCAiMSBmYWlsZWQiLCB7ImZhaWxlZCI6ICgxLCl9KSwKKyAg
ICAoInJlZCIsICIxIGZhaWxlZCwgMSBwYXNzZWQiLCB7ImZhaWxlZCI6ICgxLCksICJwYXNzZWQi
OiAoMSwpfSksCisKKyAgICAoInJlZCIsICIxIGVycm9yIiwgeyJlcnJvciI6ICgxLCl9KSwKKyAg
ICAoInJlZCIsICIxIHBhc3NlZCwgMSBlcnJvciIsIHsiZXJyb3IiOiAoMSwpLCAicGFzc2VkIjog
KDEsKX0pLAorCisgICAgIyAoYSBzdGF0dXMgdGhhdCdzIG5vdCBrbm93biB0byB0aGUgY29kZSkK
KyAgICAoInllbGxvdyIsICIxIHdlaXJkIiwgeyJ3ZWlyZCI6ICgxLCl9KSwKKyAgICAoInllbGxv
dyIsICIxIHBhc3NlZCwgMSB3ZWlyZCIsIHsid2VpcmQiOiAoMSwpLCAicGFzc2VkIjogKDEsKX0p
LAorCisgICAgKCJ5ZWxsb3ciLCAiMSB3YXJuaW5ncyIsIHsid2FybmluZ3MiOiAoMSwpfSksCisg
ICAgKCJ5ZWxsb3ciLCAiMSBwYXNzZWQsIDEgd2FybmluZ3MiLCB7Indhcm5pbmdzIjogKDEsKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzc2VkIjogKDEsKX0p
LAorCisgICAgKCJncmVlbiIsICI1IHBhc3NlZCIsIHsicGFzc2VkIjogKDEsIDIsIDMsIDQsIDUp
fSksCisKKworICAgICMgIkJvcmluZyIgc3RhdHVzZXMuICBUaGVzZSBoYXZlIG5vIGVmZmVjdCBv
biB0aGUgY29sb3Igb2YgdGhlIHN1bW1hcnkKKyAgICAjIGxpbmUuICBUaHVzLCBpZiAqZXZlcnkq
IHRlc3QgaGFzIGEgYm9yaW5nIHN0YXR1cywgdGhlIHN1bW1hcnkgbGluZSBzdGF5cworICAgICMg
YXQgaXRzIGRlZmF1bHQgY29sb3IsIGkuZS4geWVsbG93LCB0byB3YXJuIHRoZSB1c2VyIHRoYXQg
dGhlIHRlc3QgcnVuCisgICAgIyBwcm9kdWNlZCBubyB1c2VmdWwgaW5mb3JtYXRpb24KKyAgICAo
InllbGxvdyIsICIxIHNraXBwZWQiLCB7InNraXBwZWQiOiAoMSwpfSksCisgICAgKCJncmVlbiIs
ICIxIHBhc3NlZCwgMSBza2lwcGVkIiwgeyJza2lwcGVkIjogKDEsKSwgInBhc3NlZCI6ICgxLCl9
KSwKKworICAgICgieWVsbG93IiwgIjEgZGVzZWxlY3RlZCIsIHsiZGVzZWxlY3RlZCI6ICgxLCl9
KSwKKyAgICAoImdyZWVuIiwgIjEgcGFzc2VkLCAxIGRlc2VsZWN0ZWQiLCB7ImRlc2VsZWN0ZWQi
OiAoMSwpLCAicGFzc2VkIjogKDEsKX0pLAorCisgICAgKCJ5ZWxsb3ciLCAiMSB4ZmFpbGVkIiwg
eyJ4ZmFpbGVkIjogKDEsKX0pLAorICAgICgiZ3JlZW4iLCAiMSBwYXNzZWQsIDEgeGZhaWxlZCIs
IHsieGZhaWxlZCI6ICgxLCksICJwYXNzZWQiOiAoMSwpfSksCisKKyAgICAoInllbGxvdyIsICIx
IHhwYXNzZWQiLCB7InhwYXNzZWQiOiAoMSwpfSksCisgICAgKCJncmVlbiIsICIxIHBhc3NlZCwg
MSB4cGFzc2VkIiwgeyJ4cGFzc2VkIjogKDEsKSwgInBhc3NlZCI6ICgxLCl9KSwKKworICAgICMg
TGlrZXdpc2UgaWYgbm8gdGVzdHMgd2VyZSBmb3VuZCBhdCBhbGwKKyAgICAoInllbGxvdyIsICJu
byB0ZXN0cyByYW4iLCB7fSksCisKKyAgICAjIFRlc3QgdGhlIGVtcHR5LWtleSBzcGVjaWFsIGNh
c2UKKyAgICAoInllbGxvdyIsICJubyB0ZXN0cyByYW4iLCB7IiI6ICgxLCl9KSwKKyAgICAoImdy
ZWVuIiwgIjEgcGFzc2VkIiwgeyIiOiAoMSwpLCAicGFzc2VkIjogKDEsKX0pLAorCisKKyAgICAj
IEEgY291cGxlIG1vcmUgY29tcGxleCBjb21iaW5hdGlvbnMKKyAgICAoInJlZCIsICIxIGZhaWxl
ZCwgMiBwYXNzZWQsIDMgeGZhaWxlZCIsCisgICAgICAgIHsicGFzc2VkIjogKDEsIDIpLCAiZmFp
bGVkIjogKDEsKSwgInhmYWlsZWQiOiAoMSwgMiwgMyl9KSwKKworICAgICgiZ3JlZW4iLCAiMSBw
YXNzZWQsIDIgc2tpcHBlZCwgMyBkZXNlbGVjdGVkLCAyIHhmYWlsZWQiLAorICAgICAgICB7InBh
c3NlZCI6ICgxLCksCisgICAgICAgICAic2tpcHBlZCI6ICgxLCAyKSwKKyAgICAgICAgICJkZXNl
bGVjdGVkIjogKDEsIDIsIDMpLAorICAgICAgICAgInhmYWlsZWQiOiAoMSwgMil9KSwKK10pCitk
ZWYgdGVzdF9zdW1tYXJ5X3N0YXRzKGV4cF9saW5lLCBleHBfY29sb3IsIHN0YXRzX2FyZyk6Cisg
ICAgcHJpbnQoIkJhc2VkIG9uIHN0YXRzOiAlcyIgJSBzdGF0c19hcmcpCisgICAgcHJpbnQoIkV4
cGVjdCBzdW1tYXJ5OiBcIiVzXCI7IHdpdGggY29sb3IgXCIlc1wiIiAlIChleHBfbGluZSwgZXhw
X2NvbG9yKSkKKyAgICAobGluZSwgY29sb3IpID0gYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHN0
YXRzX2FyZykKKyAgICBwcmludCgiQWN0dWFsbHkgZ290OiAgIFwiJXNcIjsgd2l0aCBjb2xvciBc
IiVzXCIiICUgKGxpbmUsIGNvbG9yKSkKKyAgICBhc3NlcnQgbGluZSA9PSBleHBfbGluZQorICAg
IGFzc2VydCBjb2xvciA9PSBleHBfY29sb3IKKworCitkZWYgdGVzdF9ub190cmFpbGluZ193aGl0
ZXNwYWNlX2FmdGVyX2luaWZpbGVfd29yZCh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgnJykKKyAgICBhc3NlcnQgJ2luaWZpbGU6XG4nIGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKworICAgIHRlc3RkaXIubWFrZWluaSgnW3B5dGVzdF0nKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCcnKQorICAgIGFzc2VydCAnaW5pZmlsZTogdG94LmluaVxuJyBpbiBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisKKworY2xhc3MgVGVzdFByb2dyZXNzOgorCisgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgZGVmIG1hbnlfdGVzdHNfZmlsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9iYXI9IiIiCisgICAgICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgnaScsIHJhbmdlKDEwKSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9iYXIoaSk6
IHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgIHRlc3RfZm9vPSIiIgorICAgICAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ2knLCByYW5nZSg1KSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oaSk6
IHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgIHRlc3RfZm9vYmFyPSIiIgorICAg
ICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ2knLCByYW5nZSg1KSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb29i
YXIoaSk6IHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rf
emVyb190ZXN0c19jb2xsZWN0ZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlNvbWUgcGx1
Z2lucyAodGVzdG1vbiBmb3IgZXhhbXBsZSkgbWlnaHQgaXNzdWUgcHl0ZXN0X3J1bnRlc3RfbG9n
cmVwb3J0IHdpdGhvdXQgYW55IHRlc3RzIGJlaW5nCisgICAgICAgIGFjdHVhbGx5IGNvbGxlY3Rl
ZCAoIzI5NzEpLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAg
ZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKGl0ZW1zLCBjb25maWcpOgorICAgICAg
ICAgICAgZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgQ29sbGVjdFJlcG9ydAorICAgICAgICAg
ICAgZm9yIG5vZGVfaWQgaW4gKCdub2RlaWQxJywgJ25vZGVpZDInKToKKyAgICAgICAgICAgICAg
ICByZXAgPSBDb2xsZWN0UmVwb3J0KG5vZGVfaWQsICdwYXNzZWQnLCBOb25lLCBOb25lKQorICAg
ICAgICAgICAgICAgIHJlcC53aGVuID0gJ3Bhc3NlZCcKKyAgICAgICAgICAgICAgICByZXAuZHVy
YXRpb24gPSAwLjEKKyAgICAgICAgICAgICAgICBjb25maWcuaG9vay5weXRlc3RfcnVudGVzdF9s
b2dyZXBvcnQocmVwb3J0PXJlcCkKKyAgICAgICAgIiIiKQorICAgICAgICBvdXRwdXQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCAnWmVyb0RpdmlzaW9uRXJyb3InIG5vdCBp
biBvdXRwdXQuc3Rkb3V0LnN0cigpCisgICAgICAgIG91dHB1dC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAnPSogMiBwYXNzZWQgaW4gKj0nLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3Rfbm9ybWFsKHNlbGYsIG1hbnlfdGVzdHNfZmlsZSwgdGVzdGRpcik6CisgICAgICAg
IG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICByJ3Rlc3RfYmFyLnB5IFwuezEwfSBccysgXFsgNTAl
XF0nLAorICAgICAgICAgICAgcid0ZXN0X2Zvby5weSBcLns1fSBccysgXFsgNzUlXF0nLAorICAg
ICAgICAgICAgcid0ZXN0X2Zvb2Jhci5weSBcLns1fSBccysgXFsxMDAlXF0nLAorICAgICAgICBd
KQorCisgICAgZGVmIHRlc3RfdmVyYm9zZShzZWxmLCBtYW55X3Rlc3RzX2ZpbGUsIHRlc3RkaXIp
OgorICAgICAgICBvdXRwdXQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXYnKQorICAgICAgICBvdXRw
dXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgIHIndGVzdF9iYXIucHk6OnRl
c3RfYmFyXFswXF0gUEFTU0VEIFxzKyBcWyAgNSVcXScsCisgICAgICAgICAgICByJ3Rlc3RfZm9v
LnB5Ojp0ZXN0X2Zvb1xbNFxdIFBBU1NFRCBccysgXFsgNzUlXF0nLAorICAgICAgICAgICAgcid0
ZXN0X2Zvb2Jhci5weTo6dGVzdF9mb29iYXJcWzRcXSBQQVNTRUQgXHMrIFxbMTAwJVxdJywKKyAg
ICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3hkaXN0X25vcm1hbChzZWxmLCBtYW55X3Rlc3RzX2Zp
bGUsIHRlc3RkaXIpOgorICAgICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCd4ZGlzdCcpCisgICAg
ICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCctbjInKQorICAgICAgICBvdXRwdXQuc3Rk
b3V0LnJlX21hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgIHInXC57MjB9IFxzKyBcWzEwMCVcXScs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF94ZGlzdF92ZXJib3NlKHNlbGYsIG1hbnlfdGVz
dHNfZmlsZSwgdGVzdGRpcik6CisgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoJ3hkaXN0JykK
KyAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1uMicsICctdicpCisgICAgICAg
IG91dHB1dC5zdGRvdXQucmVfbWF0Y2hfbGluZXNfcmFuZG9tKFsKKyAgICAgICAgICAgIHInXFtn
d1xkXF0gXFtccypcZCslXF0gUEFTU0VEIHRlc3RfYmFyLnB5Ojp0ZXN0X2JhclxbMVxdJywKKyAg
ICAgICAgICAgIHInXFtnd1xkXF0gXFtccypcZCslXF0gUEFTU0VEIHRlc3RfZm9vLnB5Ojp0ZXN0
X2Zvb1xbMVxdJywKKyAgICAgICAgICAgIHInXFtnd1xkXF0gXFtccypcZCslXF0gUEFTU0VEIHRl
c3RfZm9vYmFyLnB5Ojp0ZXN0X2Zvb2JhclxbMVxdJywKKyAgICAgICAgXSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfdG1wZGlyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2N2U3NzI1MmU3ODFlOWRjOGE0NGFjMWM0MThi
MGI5MjkzMjhmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
dG1wZGlyLnB5CkBAIC0wLDAgKzEsMTg4IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCitpbXBvcnQg
cHkKK2ltcG9ydCBweXRlc3QKKworZnJvbSBfcHl0ZXN0LnRtcGRpciBpbXBvcnQgdG1wZGlyCisK
KworZGVmIHRlc3RfZnVuY2FyZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAg
ICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGlkPSdhJykKKyAgICAgICAgICAgICAgICBtZXRh
ZnVuYy5hZGRjYWxsKGlkPSdiJykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmModG1wZGlyKTog
cGFzcworICAgICIiIikKKyAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCBUZW1wZGlyRmFj
dG9yeQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgY2FsbHMgPSByZXBy
ZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X3NldHVwIikKKyAgICBpdGVtID0gY2FsbHNbMF0u
aXRlbQorICAgIGNvbmZpZyA9IGl0ZW0uY29uZmlnCisgICAgdG1wZGlyaGFuZGxlciA9IFRlbXBk
aXJGYWN0b3J5KGNvbmZpZykKKyAgICBpdGVtLl9pbml0cmVxdWVzdCgpCisgICAgcCA9IHRtcGRp
cihpdGVtLl9yZXF1ZXN0LCB0bXBkaXJoYW5kbGVyKQorICAgIGFzc2VydCBwLmNoZWNrKCkKKyAg
ICBibiA9IHAuYmFzZW5hbWUuc3RyaXAoIjAxMjM0NTY3ODkiKQorICAgIGFzc2VydCBibi5lbmRz
d2l0aCgidGVzdF9mdW5jX2FfIikKKyAgICBpdGVtLm5hbWUgPSAicXdlL1xcYWJjIgorICAgIHAg
PSB0bXBkaXIoaXRlbS5fcmVxdWVzdCwgdG1wZGlyaGFuZGxlcikKKyAgICBhc3NlcnQgcC5jaGVj
aygpCisgICAgYm4gPSBwLmJhc2VuYW1lLnN0cmlwKCIwMTIzNDU2Nzg5IikKKyAgICBhc3NlcnQg
Ym4gPT0gInF3ZV9fYWJjIgorCisKK2RlZiB0ZXN0X2Vuc3VyZXRlbXAocmVjd2Fybik6CisgICAg
ZDEgPSBweXRlc3QuZW5zdXJldGVtcCgnaGVsbG8nKQorICAgIGQyID0gcHl0ZXN0LmVuc3VyZXRl
bXAoJ2hlbGxvJykKKyAgICBhc3NlcnQgZDEgPT0gZDIKKyAgICBhc3NlcnQgZDEuY2hlY2soZGly
PTEpCisKKworY2xhc3MgVGVzdFRlbXBkaXJIYW5kbGVyKG9iamVjdCk6CisgICAgZGVmIHRlc3Rf
bWt0ZW1wKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9y
dCBUZW1wZGlyRmFjdG9yeQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkK
KyAgICAgICAgY29uZmlnLm9wdGlvbi5iYXNldGVtcCA9IHRlc3RkaXIubWtkaXIoImhlbGxvIikK
KyAgICAgICAgdCA9IFRlbXBkaXJGYWN0b3J5KGNvbmZpZykKKyAgICAgICAgdG1wID0gdC5ta3Rl
bXAoIndvcmxkIikKKyAgICAgICAgYXNzZXJ0IHRtcC5yZWx0byh0LmdldGJhc2V0ZW1wKCkpID09
ICJ3b3JsZDAiCisgICAgICAgIHRtcCA9IHQubWt0ZW1wKCJ0aGlzIikKKyAgICAgICAgYXNzZXJ0
IHRtcC5yZWx0byh0LmdldGJhc2V0ZW1wKCkpLnN0YXJ0c3dpdGgoInRoaXMiKQorICAgICAgICB0
bXAyID0gdC5ta3RlbXAoInRoaXMiKQorICAgICAgICBhc3NlcnQgdG1wMi5yZWx0byh0LmdldGJh
c2V0ZW1wKCkpLnN0YXJ0c3dpdGgoInRoaXMiKQorICAgICAgICBhc3NlcnQgdG1wMiAhPSB0bXAK
KworCitjbGFzcyBUZXN0Q29uZmlnVG1wZGlyKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZ2V0YmFz
ZXRlbXBfY3VzdG9tX3JlbW92ZXNfb2xkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBteXRlbXAg
PSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ4eXoiKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSh0bXBkaXIpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLS1iYXNl
dGVtcD0lcycgJSBteXRlbXApCisgICAgICAgIG15dGVtcC5jaGVjaygpCisgICAgICAgIG15dGVt
cC5lbnN1cmUoImhlbGxvIikKKworICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLS1iYXNl
dGVtcD0lcycgJSBteXRlbXApCisgICAgICAgIG15dGVtcC5jaGVjaygpCisgICAgICAgIGFzc2Vy
dCBub3QgbXl0ZW1wLmpvaW4oImhlbGxvIikuY2hlY2soKQorCisKK2RlZiB0ZXN0X2Jhc2V0ZW1w
KHRlc3RkaXIpOgorICAgIG15dGVtcCA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJteXRlbXAiKQor
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgcHl0ZXN0LmVuc3VyZXRlbXAoImhlbGxv
IikKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy0tYmFzZXRl
bXA9JXMnICUgbXl0ZW1wKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQg
bXl0ZW1wLmpvaW4oJ2hlbGxvJykuY2hlY2soKQorCisKK0BweXRlc3QubWFyay5za2lwaWYobm90
IGhhc2F0dHIocHkucGF0aC5sb2NhbCwgJ21rc3ltbGlua3RvJyksCisgICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iKQorZGVm
IHRlc3RfdG1wZGlyX2Fsd2F5c19pc19yZWFscGF0aCh0ZXN0ZGlyKToKKyAgICAjIHRoZSByZWFz
b24gd2h5IHRtcGRpciBzaG91bGQgYmUgYSByZWFscGF0aCBpcyB0aGF0CisgICAgIyB3aGVuIHlv
dSBjZCB0byBpdCBhbmQgZG8gIm9zLmdldGN3ZCgpIiB5b3Ugd2lsbCBhbnl3YXkKKyAgICAjIGdl
dCB0aGUgcmVhbHBhdGguICBVc2luZyB0aGUgc3ltbGlua2VkIHBhdGggY2FuIHRodXMKKyAgICAj
IGVhc2lseSByZXN1bHQgaW4gcGF0aC1pbmVxdWFsaXR5CisgICAgIyBYWFggaWYgdGhhdCBwcm92
ZXMgdG8gYmUgYSBwcm9ibGVtLCBjb25zaWRlciB1c2luZworICAgICMgb3MuZW52aXJvblsiUFdE
Il0KKyAgICByZWFsdGVtcCA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJteXJlYWx0ZW1wIikKKyAg
ICBsaW5rdGVtcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInN5bWxpbmt0ZW1wIikKKyAgICBsaW5r
dGVtcC5ta3N5bWxpbmt0byhyZWFsdGVtcCkKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICBkZWYgdGVzdF8xKHRtcGRpcik6CisgICAgICAgICAgICBpbXBvcnQgb3MKKyAg
ICAgICAgICAgIGFzc2VydCBvcy5wYXRoLnJlYWxwYXRoKHN0cih0bXBkaXIpKSA9PSBzdHIodG1w
ZGlyKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiLCBwLCAn
LS1iYXNldGVtcD0lcy9idCcgJSBsaW5rdGVtcCkKKyAgICBhc3NlcnQgbm90IHJlc3VsdC5yZXQK
KworCitkZWYgdGVzdF90bXBkaXJfdG9vX2xvbmdfb25fcGFyYW1ldHJpemF0aW9uKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImFyZyIsIFsiMSIqMTAwMF0pCisgICAgICAg
IGRlZiB0ZXN0X3NvbWUoYXJnLCB0bXBkaXIpOgorICAgICAgICAgICAgdG1wZGlyLmVuc3VyZSgi
aGVsbG8iKQorICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0X3RtcGRpcl9mYWN0
b3J5KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgICAg
ICBkZWYgc2Vzc2lvbl9kaXIodG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICAgICAgcmV0dXJuIHRt
cGRpcl9mYWN0b3J5Lm1rdGVtcCgnZGF0YScsIG51bWJlcmVkPUZhbHNlKQorICAgICAgICBkZWYg
dGVzdF9zb21lKHNlc3Npb25fZGlyKToKKyAgICAgICAgICAgIHNlc3Npb25fZGlyLmlzZGlyKCkK
KyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitkZWYgdGVzdF90bXBkaXJfZmFsbGJhY2tfdG94
X2Vudih0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgIiIiVGVzdCB0aGF0IHRtcGRpciB3b3Jr
cyBldmVuIGlmIGVudmlyb25tZW50IHZhcmlhYmxlcyByZXF1aXJlZCBieSBnZXRwYXNzCisgICAg
bW9kdWxlIGFyZSBtaXNzaW5nICgjMTAxMCkuCisgICAgIiIiCisgICAgbW9ua2V5cGF0Y2guZGVs
ZW52KCdVU0VSJywgcmFpc2luZz1GYWxzZSkKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYoJ1VTRVJO
QU1FJywgcmFpc2luZz1GYWxzZSkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3Rfc29tZSh0bXBkaXIpOgorICAgICAgICAg
ICAgYXNzZXJ0IHRtcGRpci5pc2RpcigpCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKworQHB5
dGVzdC5maXh0dXJlCitkZWYgYnJlYWtfZ2V0dXNlcihtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cignb3MuZ2V0dWlkJywgbGFtYmRhOiAtMSkKKyAgICAjIHRha2VuIGZyb20g
cHl0aG9uIDIuNy8zLjQKKyAgICBmb3IgZW52dmFyIGluICgnTE9HTkFNRScsICdVU0VSJywgJ0xO
QU1FJywgJ1VTRVJOQU1FJyk6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudihlbnZ2YXIsIHJh
aXNpbmc9RmFsc2UpCisKKworQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJicmVha19nZXR1c2Vy
IikKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpLCBy
ZWFzb249J25vIG9zLmdldHVpZCBvbiB3aW5kb3dzJykKK2RlZiB0ZXN0X3RtcGRpcl9mYWxsYmFj
a191aWRfbm90X2ZvdW5kKHRlc3RkaXIpOgorICAgICIiIlRlc3QgdGhhdCB0bXBkaXIgd29ya3Mg
ZXZlbiBpZiB0aGUgY3VycmVudCBwcm9jZXNzJ3MgdXNlciBpZCBkb2VzIG5vdAorICAgIGNvcnJl
c3BvbmQgdG8gYSB2YWxpZCB1c2VyLgorICAgICIiIgorCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0X3NvbWUodG1wZGly
KToKKyAgICAgICAgICAgIGFzc2VydCB0bXBkaXIuaXNkaXIoKQorICAgICIiIikKKyAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQorCisKK0BweXRlc3QubWFyay51c2VmaXh0dXJlcygiYnJlYWtfZ2V0dXNlciIpCitAcHl0
ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwgcmVhc29uPSdu
byBvcy5nZXR1aWQgb24gd2luZG93cycpCitkZWYgdGVzdF9nZXRfdXNlcl91aWRfbm90X2ZvdW5k
KCk6CisgICAgIiIiVGVzdCB0aGF0IGdldF91c2VyKCkgZnVuY3Rpb24gd29ya3MgZXZlbiBpZiB0
aGUgY3VycmVudCBwcm9jZXNzJ3MKKyAgICB1c2VyIGlkIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8g
YSB2YWxpZCB1c2VyIChlLmcuIHJ1bm5pbmcgcHl0ZXN0IGluIGEKKyAgICBEb2NrZXIgY29udGFp
bmVyIHdpdGggJ2RvY2tlciBydW4gLXUnLgorICAgICIiIgorICAgIGZyb20gX3B5dGVzdC50bXBk
aXIgaW1wb3J0IGdldF91c2VyCisgICAgYXNzZXJ0IGdldF91c2VyKCkgaXMgTm9uZQorCisKK0Bw
eXRlc3QubWFyay5za2lwaWYobm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwgcmVh
c29uPSd3aW4gb25seScpCitkZWYgdGVzdF9nZXRfdXNlcihtb25rZXlwYXRjaCk6CisgICAgIiIi
VGVzdCB0aGF0IGdldF91c2VyKCkgZnVuY3Rpb24gd29ya3MgZXZlbiBpZiBlbnZpcm9ubWVudCB2
YXJpYWJsZXMKKyAgICByZXF1aXJlZCBieSBnZXRwYXNzIG1vZHVsZSBhcmUgbWlzc2luZyBmcm9t
IHRoZSBlbnZpcm9ubWVudCBvbiBXaW5kb3dzCisgICAgKCMxMDEwKS4KKyAgICAiIiIKKyAgICBm
cm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCBnZXRfdXNlcgorICAgIG1vbmtleXBhdGNoLmRlbGVu
dignVVNFUicsIHJhaXNpbmc9RmFsc2UpCisgICAgbW9ua2V5cGF0Y2guZGVsZW52KCdVU0VSTkFN
RScsIHJhaXNpbmc9RmFsc2UpCisgICAgYXNzZXJ0IGdldF91c2VyKCkgaXMgTm9uZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOTc3MzU4NzFmYzUzZjA4ZjBi
OGE5MmZjYmM1MTcwOWJjZTkwNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw4MzAgQEAKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX3B5
dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKK2ltcG9ydCBweXRlc3QKK2lt
cG9ydCBnYworCisKK2RlZiB0ZXN0X3NpbXBsZV91bml0dGVzdCh0ZXN0ZGlyKToKKyAgICB0ZXN0
cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0Cisg
ICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAg
ZGVmIHRlc3RwYXNzaW5nKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J2ZvbycsICdmb28nKQorICAgICAgICAgICAgZGVmIHRlc3RfZmFpbGluZyhzZWxmKToKKyAgICAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCAnYmFyJykKKyAgICAiIiIpCisgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgIGFzc2VydCByZXByZWMu
bWF0Y2hyZXBvcnQoInRlc3RwYXNzaW5nIikucGFzc2VkCisgICAgYXNzZXJ0IHJlcHJlYy5tYXRj
aHJlcG9ydCgidGVzdF9mYWlsaW5nIikuZmFpbGVkCisKKworZGVmIHRlc3RfcnVuVGVzdF9tZXRo
b2QodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQg
dW5pdHRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZVdpdGhSdW5UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICAgICAgICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsICdmb28nKQorICAgICAgICBjbGFzcyBNeVRlc3RDYXNl
V2l0aG91dFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHJ1blRl
c3Qoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgJ2Zvbycp
CisgICAgICAgICAgICBkZWYgdGVzdF9zb21ldGhpbmcoc2VsZik6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICpNeVRlc3RDYXNl
V2l0aFJ1blRlc3Q6OnJ1blRlc3QqCisgICAgICAgICpNeVRlc3RDYXNlV2l0aG91dFJ1blRlc3Q6
OnRlc3Rfc29tZXRoaW5nKgorICAgICAgICAqMiBwYXNzZWQqCisgICAgIiIiKQorCisKK2RlZiB0
ZXN0X2lzY2xhc3NjaGVja19pc3N1ZTUzKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3Mg
X0Uob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCB0YWcpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgRSA9IF9FKCkKKyAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdHBhdGgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
RVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworZGVmIHRlc3Rfc2V0dXAodGVzdGRpcik6CisgICAg
dGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAg
ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmZvbyA9IDEKKyAgICAg
ICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgICAgICAgICBz
ZWxmLmZvbzIgPSAxCisgICAgICAgICAgICBkZWYgdGVzdF9ib3RoKHNlbGYpOgorICAgICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgc2VsZi5mb28pCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYuZm9vMiA9PSAxCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYs
IG1ldGhvZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICI0MiIKKworICAgICIiIikKKyAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIiwgdGVzdHBhdGgpCisgICAgYXNzZXJ0
IHJlcHJlYy5tYXRjaHJlcG9ydCgidGVzdF9ib3RoIiwgd2hlbj0iY2FsbCIpLnBhc3NlZAorICAg
IHJlcCA9IHJlcHJlYy5tYXRjaHJlcG9ydCgidGVzdF9ib3RoIiwgd2hlbj0idGVhcmRvd24iKQor
ICAgIGFzc2VydCByZXAuZmFpbGVkIGFuZCAnNDInIGluIHN0cihyZXAubG9uZ3JlcHIpCisKKwor
ZGVmIHRlc3Rfc2V0VXBNb2R1bGUodGVzdGRpcik6CisgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAgICAgZGVmIHNldFVwTW9k
dWxlKCk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisKKyAgICAgICAgZGVmIHRlYXJE
b3duTW9kdWxlKCk6CisgICAgICAgICAgICBkZWwgdmFsdWVzWzBdCisKKyAgICAgICAgZGVmIHRl
c3RfaGVsbG8oKToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisKKyAgICAgICAg
ZGVmIHRlc3Rfd29ybGQoKToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisgICAg
ICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0cGF0aCkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjIgcGFzc2VkKiIsCisgICAg
XSkKKworCitkZWYgdGVzdF9zZXRVcE1vZHVsZV9mYWlsaW5nX25vX3RlYXJkb3duKHRlc3RkaXIp
OgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICB2YWx1ZXMg
PSBbXQorCisgICAgICAgIGRlZiBzZXRVcE1vZHVsZSgpOgorICAgICAgICAgICAgMC8wCisKKyAg
ICAgICAgZGVmIHRlYXJEb3duTW9kdWxlKCk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEp
CisKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIp
CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0wLCBmYWlsZWQ9MSkKKyAgICBjYWxsID0gcmVwcmVjLmdldGNh
bGxzKCJweXRlc3RfcnVudGVzdF9zZXR1cCIpWzBdCisgICAgYXNzZXJ0IG5vdCBjYWxsLml0ZW0u
bW9kdWxlLnZhbHVlcworCisKK2RlZiB0ZXN0X25ld19pbnN0YW5jZXModGVzdGRpcik6CisgICAg
dGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMxKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYueCA9IDIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBu
b3QgaGFzYXR0cihzZWxmLCAneCcpCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bih0ZXN0cGF0aCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKwor
CitkZWYgdGVzdF90ZWFyZG93bih0ZXN0ZGlyKToKKyAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGNsYXNzIE15VGVz
dENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAg
ICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi52YWx1ZXMuYXBw
ZW5kKE5vbmUpCisgICAgICAgIGNsYXNzIFNlY29uZCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ICAgICAgICBkZWYgdGVzdF9jaGVjayhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE15VGVzdENhc2UudmFsdWVzLCBbTm9uZV0pCisgICAgIiIiKQorICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCkKKyAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxl
ZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAgICBhc3NlcnQgZmFpbGVkID09IDAsIGZhaWxl
ZAorICAgIGFzc2VydCBwYXNzZWQgPT0gMgorICAgIGFzc2VydCBwYXNzZWQgKyBza2lwcGVkICsg
ZmFpbGVkID09IDIKKworCitkZWYgdGVzdF90ZWFyZG93bl9pc3N1ZTE2NDkodGVzdGRpcik6Cisg
ICAgIiIiCisgICAgQXJlIFRlc3RDYXNlIG9iamVjdHMgY2xlYW5lZCB1cD8gT2Z0ZW4gdW5pdHRl
c3QgVGVzdENhc2Ugb2JqZWN0cyBzZXQKKyAgICBhdHRyaWJ1dGVzIHRoYXQgYXJlIGxhcmdlIGFu
ZCBleHBlbnNpdmUgZHVyaW5nIHNldFVwLgorCisgICAgVGhlIFRlc3RDYXNlIHdpbGwgbm90IGJl
IGNsZWFuZWQgdXAgaWYgdGhlIHRlc3QgZmFpbHMsIGJlY2F1c2UgaXQKKyAgICB3b3VsZCB0aGVu
IGV4aXN0IGluIHRoZSBzdGFja2ZyYW1lLgorICAgICIiIgorICAgIHRlc3RwYXRoID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3Mg
VGVzdENhc2VPYmplY3RzU2hvdWxkQmVDbGVhbmVkVXAodW5pdHRlc3QuVGVzdENhc2UpOgorICAg
ICAgICAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuYW5fZXhwZW5z
aXZlX29iamVjdCA9IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2RlbW8oc2VsZik6CisgICAgICAg
ICAgICAgICAgcGFzcworCisgICAgIiIiKQorICAgIHRlc3RkaXIuaW5saW5lX3J1bigiLXMiLCB0
ZXN0cGF0aCkKKyAgICBnYy5jb2xsZWN0KCkKKyAgICBmb3Igb2JqIGluIGdjLmdldF9vYmplY3Rz
KCk6CisgICAgICAgIGFzc2VydCB0eXBlKG9iaikuX19uYW1lX18gIT0gJ1Rlc3RDYXNlT2JqZWN0
c1Nob3VsZEJlQ2xlYW5lZFVwJworCisKK2RlZiB0ZXN0X3VuaXR0ZXN0X3NraXBfaXNzdWUxNDgo
dGVzdGRpcik6CisgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCB1bml0dGVzdAorCisgICAgICAgIEB1bml0dGVzdC5za2lwKCJoZWxsbyIpCisgICAg
ICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgQGNs
YXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgc2V0VXBDbGFzcyhzZWxmKToKKyAgICAgICAgICAg
ICAgICB4eHgKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiB0ZWFyRG93
bkNsYXNzKHNlbGYpOgorICAgICAgICAgICAgICAgIHh4eAorICAgICIiIikKKyAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
c2tpcHBlZD0xKQorCisKK2RlZiB0ZXN0X21ldGhvZF9hbmRfdGVhcmRvd25fZmFpbGluZ19yZXBv
cnRpbmcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBv
cnQgdW5pdHRlc3QsIHB5dGVzdAorICAgICAgICBjbGFzcyBUQyh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgICAgICAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAsICJkb3duMSIKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgRmFsc2UsICJkb3duMiIKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi1zIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIip0ZWFyRG93bioiLAorICAgICAg
ICAiKmFzc2VydCAwKiIsCisgICAgICAgICIqdGVzdF9tZXRob2QqIiwKKyAgICAgICAgIiphc3Nl
cnQgRmFsc2UqIiwKKyAgICAgICAgIioxIGZhaWxlZCoxIGVycm9yKiIsCisgICAgXSkKKworCitk
ZWYgdGVzdF9zZXR1cF9mYWlsdXJlX2lzX3Nob3duKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgY2xhc3MgVEModW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVm
IHNldFVwKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiZG93bjEiCisgICAgICAg
ICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJuZXZl
cjQyIikKKyAgICAgICAgICAgICAgICB4eXoKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi1zIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipzZXRVcCoiLAorICAgICAgICAiKmFz
c2VydCAwKmRvd24xKiIsCisgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICBdKQorICAgIGFzc2Vy
dCAnbmV2ZXI0Micgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9zZXR1
cF9zZXRVcENsYXNzKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIHgg
PSAwCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBzZXRVcENsYXNz
KGNscyk6CisgICAgICAgICAgICAgICAgY2xzLnggKz0gMQorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYzEoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYueCA9PSAxCisgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jMihzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi54
ID09IDEKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIHRlYXJEb3du
Q2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICBjbHMueCAtPSAxCisgICAgICAgIGRlZiB0ZXN0
X3RlYXJlZGRvd24oKToKKyAgICAgICAgICAgIGFzc2VydCBNeVRlc3RDYXNlLnggPT0gMAorICAg
ICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgpCisgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKworZGVmIHRlc3Rfc2V0dXBfY2xhc3ModGVz
dGRpcik6CisgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGlt
cG9ydCB1bml0dGVzdAorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIE15VGVz
dENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgeCA9IDAKKyAgICAgICAgICAg
IGRlZiBzZXR1cF9jbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy54ICs9IDEKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxm
LnggPT0gMQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2VsZik6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHNlbGYueCA9PSAxCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fY2xhc3MoY2xz
KToKKyAgICAgICAgICAgICAgICBjbHMueCAtPSAxCisgICAgICAgIGRlZiB0ZXN0X3RlYXJlZGRv
d24oKToKKyAgICAgICAgICAgIGFzc2VydCBNeVRlc3RDYXNlLnggPT0gMAorICAgICIiIikKKyAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgpCisgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTMpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0eXBlIiwg
WydFcnJvcicsICdGYWlsdXJlJ10pCitkZWYgdGVzdF90ZXN0Y2FzZV9hZGRlcnJvcmFuZGZhaWx1
cmVfZGVmZXJzKHRlc3RkaXIsIHR5cGUpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKKyAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKFRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiBy
dW4oc2VsZiwgcmVzdWx0KToKKyAgICAgICAgICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNl
cyhaZXJvRGl2aXNpb25FcnJvciwgbGFtYmRhOiAwLzApCisgICAgICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkJXMoc2VsZiwgZXhjaW5mby5fZXhjaW5mbykK
KyAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAg
ICBweXRlc3QuZmFpbCgiYWRkJXMgc2hvdWxkIG5vdCByYWlzZSIpCisgICAgICAgICAgICBkZWYg
dGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgIiIiICUgKHR5cGUs
IHR5cGUpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgJ3No
b3VsZCBub3QgcmFpc2UnIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ0eXBlIiwgWydFcnJvcicsICdGYWlsdXJlJ10pCitkZWYgdGVzdF90
ZXN0Y2FzZV9jdXN0b21fZXhjZXB0aW9uX2luZm8odGVzdGRpciwgdHlwZSk6CisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQor
ICAgICAgICBpbXBvcnQgcHksIHB5dGVzdAorICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQor
ICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKFRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiBydW4o
c2VsZiwgcmVzdWx0KToKKyAgICAgICAgICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyha
ZXJvRGl2aXNpb25FcnJvciwgbGFtYmRhOiAwLzApCisgICAgICAgICAgICAgICAgIyB3ZSBmYWtl
IGFuIGluY29tcGF0aWJsZSBleGNlcHRpb24gaW5mbworICAgICAgICAgICAgICAgIGZyb20gX3B5
dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKKyAgICAgICAgICAgICAgICBtcCA9
IE1vbmtleVBhdGNoKCkKKyAgICAgICAgICAgICAgICBkZWYgdCgqYXJncyk6CisgICAgICAgICAg
ICAgICAgICAgIG1wLnVuZG8oKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
KQorICAgICAgICAgICAgICAgIG1wLnNldGF0dHIoX3B5dGVzdC5fY29kZSwgJ0V4Y2VwdGlvbklu
Zm8nLCB0KQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZXhjaW5m
byA9IGV4Y2luZm8uX2V4Y2luZm8KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCUodHlw
ZSlzKHNlbGYsIGV4Y2luZm8pCisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
ICAgICAgICAgbXAudW5kbygpCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgIiIiICUgbG9jYWxzKCkpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICJOT1RFOiBJbmNvbXBhdGlibGUgRXhjZXB0aW9uIFJlcHJlc2VudGF0aW9uKiIsCisgICAg
ICAgICIqWmVyb0RpdmlzaW9uRXJyb3IqIiwKKyAgICAgICAgIioxIGZhaWxlZCoiLAorICAgIF0p
CisKKworZGVmIHRlc3RfdGVzdGNhc2VfdG90YWxseV9pbmNvbXBhdGlibGVfZXhjZXB0aW9uX2lu
Zm8odGVzdGRpcik6CisgICAgaXRlbSwgPSB0ZXN0ZGlyLmdldGl0ZW1zKCIiIgorICAgICAgICBm
cm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKFRl
c3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAiIiIpCisgICAgaXRlbS5hZGRFcnJvcihOb25lLCA0MikKKyAgICBleGNp
bmZvID0gaXRlbS5fZXhjaW5mby5wb3AoMCkKKyAgICBhc3NlcnQgJ0VSUk9SOiBVbmtub3duIElu
Y29tcGF0aWJsZScgaW4gc3RyKGV4Y2luZm8uZ2V0cmVwcigpKQorCisKK2RlZiB0ZXN0X21vZHVs
ZV9sZXZlbF9weXRlc3RtYXJrKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgY2xhc3Mg
TXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5j
MShzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICIiIikKKyAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgsICItcyIpCisgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUoc2tpcHBlZD0xKQorCisKK2NsYXNzIFRlc3RUcmlhbFVuaXR0ZXN0KG9iamVjdCk6Cisg
ICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CisgICAgICAgIGNscy51dCA9IHB5dGVzdC5pbXBvcnRv
cnNraXAoInR3aXN0ZWQudHJpYWwudW5pdHRlc3QiKQorICAgICAgICAjIG9uIHdpbmRvd3MgdHJp
YWwgdXNlcyBhIHNvY2tldCBmb3IgYSByZWFjdG9yIGFuZCBhcHBhcmVudGx5IGRvZXNuJ3QgY2xv
c2UgaXQgcHJvcGVybHkKKyAgICAgICAgIyBodHRwczovL3R3aXN0ZWRtYXRyaXguY29tL3RyYWMv
dGlja2V0LzkyMjcKKyAgICAgICAgY2xzLmlnbm9yZV91bmNsb3NlZF9zb2NrZXRfd2FybmluZyA9
ICgnLVcnLCAnYWx3YXlzJykKKworICAgIGRlZiB0ZXN0X3RyaWFsX3Rlc3RjYXNlX3J1bnRlc3Rf
bm90X2NvbGxlY3RlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgZnJvbSB0d2lzdGVkLnRyaWFsLnVuaXR0ZXN0IGltcG9ydCBUZXN0
Q2FzZQorCisgICAgICAgICAgICBjbGFzcyBUQyhUZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKnNlbGYuaWdub3JlX3Vu
Y2xvc2VkX3NvY2tldF93YXJuaW5nKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSB0
d2lzdGVkLnRyaWFsLnVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQorCisgICAgICAgICAgICBjbGFz
cyBUQyhUZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKnNlbGYuaWdub3JlX3VuY2xvc2VkX3NvY2tldF93YXJuaW5nKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3RyaWFs
X2V4Y2VwdGlvbnNfd2l0aF9za2lwcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSB0d2lzdGVkLnRyaWFsIGltcG9ydCB1bml0
dGVzdAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVEModW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgor
ICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgic2tpcF9pbl9tZXRob2QiKQorICAgICAg
ICAgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm8gIT0gMSIpCisg
ICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iaXdhbnRv
IikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbzMoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG80KHNlbGYpOgor
ICAgICAgICAgICAgICAgICAgICBweXRlc3QueGZhaWwoImkyd2FudG8iKQorICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X3RyaWFsX3NraXAoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgICAgICAgICB0ZXN0X3RyaWFsX3NraXAuc2tpcCA9ICJ0cmlhbHNlbGZza2lwIgor
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdHJpYWxfdG9kbyhzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgICAgICB0ZXN0X3RyaWFsX3RvZG8udG9kbyA9
ICJteXRvZG8iCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90cmlhbF90b2RvX3N1Y2Nlc3Mo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICB0ZXN0X3Ry
aWFsX3RvZG9fc3VjY2Vzcy50b2RvID0gIm15dG9kbyIKKworICAgICAgICAgICAgY2xhc3MgVEMy
KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXBfY2xhc3MoY2xz
KToKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoInNraXBfaW5fc2V0dXBfY2xhc3Mi
KQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0IF9pc191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlCisgICAgICAgIHNo
b3VsZF9mYWlsID0gX2lzX3VuaXR0ZXN0X3VuZXhwZWN0ZWRfc3VjY2Vzc19hX2ZhaWx1cmUoKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ4cyIsICpzZWxmLmlnbm9yZV91
bmNsb3NlZF9zb2NrZXRfd2FybmluZykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzX3JhbmRvbShbCisgICAgICAgICAgICAiKlhGQUlMKnRlc3RfdHJpYWxfdG9kbyoiLAorICAg
ICAgICAgICAgIip0cmlhbHNlbGZza2lwKiIsCisgICAgICAgICAgICAiKnNraXBfaW5fc2V0dXBf
Y2xhc3MqIiwKKyAgICAgICAgICAgICIqaXdhbnRvKiIsCisgICAgICAgICAgICAiKmkyd2FudG8q
IiwKKyAgICAgICAgICAgICIqc3lzLnZlcnNpb25faW5mbyoiLAorICAgICAgICAgICAgIipza2lw
X2luX21ldGhvZCoiLAorICAgICAgICAgICAgIioxIGZhaWxlZCo0IHNraXBwZWQqMyB4ZmFpbGVk
KiIgaWYgc2hvdWxkX2ZhaWwgZWxzZSAiKjQgc2tpcHBlZCozIHhmYWlsKjEgeHBhc3MqIiwKKyAg
ICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gKDEgaWYgc2hvdWxkX2ZhaWwg
ZWxzZSAwKQorCisgICAgZGVmIHRlc3RfdHJpYWxfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlh
bC51bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC5pbnRl
cm5ldC5kZWZlciBpbXBvcnQgRGVmZXJyZWQKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC5pbnRl
cm5ldCBpbXBvcnQgcmVhY3RvcgorCisgICAgICAgICAgICBjbGFzcyBUQyhUZXN0Q2FzZSk6Cisg
ICAgICAgICAgICAgICAgZGVmIHRlc3Rfb25lKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBj
cmFzaAorCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdHdvKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICBkZWYgZihfKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyYXNoCisKKyAgICAg
ICAgICAgICAgICAgICAgZCA9IERlZmVycmVkKCkKKyAgICAgICAgICAgICAgICAgICAgZC5hZGRD
YWxsYmFjayhmKQorICAgICAgICAgICAgICAgICAgICByZWFjdG9yLmNhbGxMYXRlcigwLjMsIGQu
Y2FsbGJhY2ssIE5vbmUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBkCisKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF90aHJlZShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgZGVmIGYo
KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MgIyB3aWxsIG5ldmVyIGdldCBjYWxsZWQK
KyAgICAgICAgICAgICAgICAgICAgcmVhY3Rvci5jYWxsTGF0ZXIoMC4zLCBmKQorICAgICAgICAg
ICAgICAgICMgd2lsbCBjcmFzaCBhdCB0ZWFyZG93bgorCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZm91cihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgZGVmIGYoXyk6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZWFjdG9yLmNhbGxMYXRlcigwLjMsIGYpCisgICAgICAgICAgICAgICAg
ICAgICAgICBjcmFzaAorCisgICAgICAgICAgICAgICAgICAgIGQgPSBEZWZlcnJlZCgpCisgICAg
ICAgICAgICAgICAgICAgIGQuYWRkQ2FsbGJhY2soZikKKyAgICAgICAgICAgICAgICAgICAgcmVh
Y3Rvci5jYWxsTGF0ZXIoMC4zLCBkLmNhbGxiYWNrLCBOb25lKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZAorICAgICAgICAgICAgICAgICMgd2lsbCBjcmFzaCBib3RoIGF0IHRlc3QgdGlt
ZSBhbmQgYXQgdGVhcmRvd24KKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKkVSUk9SUyoiLAorICAgICAgICAgICAgIipEZWxheWVkQ2FsbHMqIiwKKyAgICAg
ICAgICAgICIqdGVzdF9mb3VyKiIsCisgICAgICAgICAgICAiKk5hbWVFcnJvcipjcmFzaCoiLAor
ICAgICAgICAgICAgIip0ZXN0X29uZSoiLAorICAgICAgICAgICAgIipOYW1lRXJyb3IqY3Jhc2gq
IiwKKyAgICAgICAgICAgICIqdGVzdF90aHJlZSoiLAorICAgICAgICAgICAgIipEZWxheWVkQ2Fs
bHMqIiwKKyAgICAgICAgICAgICIqdGVzdF90d28qIiwKKyAgICAgICAgICAgICIqY3Jhc2gqIiwK
KyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3RyaWFsX3BkYihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdpc3Rl
ZC50cmlhbCBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIGNsYXNzIFRDKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICJoZWxsb3Bk
YiIKKyAgICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHAp
CisgICAgICAgIGNoaWxkLmV4cGVjdCgiaGVsbG9wZGIiKQorICAgICAgICBjaGlsZC5zZW5kZW9m
KCkKKworICAgIGRlZiB0ZXN0X3RyaWFsX3Rlc3RjYXNlX3NraXBfcHJvcGVydHkoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgZnJvbSB0d2lzdGVkLnRyaWFsIGltcG9ydCB1bml0dGVzdAorICAgICAgICAgICAgY2xh
c3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgc2tpcCA9
ICdkb250IHJ1bicKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCwgIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUoc2tpcHBlZD0xKQorCisgICAgZGVmIHRlc3RfdHJpYWxfdGVzdGZ1bmN0aW9uX3NraXBf
cHJvcGVydHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSB0d2lzdGVkLnRyaWFsIGltcG9ydCB1bml0dGVz
dAorICAgICAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgICAgIHRlc3RfZnVuYy5za2lwID0gJ2RvbnQgcnVuJworICAgICAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgsICIt
cyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworICAgIGRlZiB0
ZXN0X3RyaWFsX3Rlc3RjYXNlX3RvZG9fcHJvcGVydHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSB0d2lz
dGVkLnRyaWFsIGltcG9ydCB1bml0dGVzdAorICAgICAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgdG9kbyA9ICdkb250IHJ1bicKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4odGVzdHBhdGgsICItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBw
ZWQ9MSkKKworICAgIGRlZiB0ZXN0X3RyaWFsX3Rlc3RmdW5jdGlvbl90b2RvX3Byb3BlcnR5KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlhbCBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAg
ICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICAgICAgdGVzdF9mdW5jLnRvZG8gPSAnZG9udCBydW4nCisgICAgICAgICAgICAiIiIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCwgIi1zIiwgKnNl
bGYuaWdub3JlX3VuY2xvc2VkX3NvY2tldF93YXJuaW5nKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShza2lwcGVkPTEpCisKKworZGVmIHRlc3RfZGphbmdvbGlrZV90ZXN0Y2FzZSh0ZXN0
ZGlyKToKKyAgICAjIGNvbnRyaWJ1dGVkIGZyb20gTW9ydGVuIEJyZWVrZXZvbGQKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNl
LCBtYWluCisKKyAgICAgICAgY2xhc3MgRGphbmdvTGlrZVRlc3RDYXNlKFRlc3RDYXNlKToKKwor
ICAgICAgICAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAgICAgICAgIHByaW50ICgic2V0
VXAoKSIpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3ByZXNldHVwX2hhc19iZWVuX3J1bihzZWxm
KToKKyAgICAgICAgICAgICAgICBwcmludCAoInRlc3RfdGhpbmcoKSIpCisgICAgICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc2VsZiwgJ3dhc19wcmVzZXR1cCcpKQorCisgICAg
ICAgICAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZWFy
RG93bigpIikKKworICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlc3VsdD1Ob25lKToK
KyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByZV9zZXR1
cCgpCisgICAgICAgICAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhp
dCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgICAg
ICAgICByZXN1bHQuYWRkRXJyb3Ioc2VsZiwgc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHN1cGVyKERqYW5nb0xpa2VUZXN0Q2FzZSwg
c2VsZikuX19jYWxsX18ocmVzdWx0KQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcG9zdF90ZWFyZG93bigpCisgICAgICAgICAgICAgICAgZXhjZXB0IChL
ZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAg
aW1wb3J0IHN5cworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRXJyb3Ioc2VsZiwgc3lz
LmV4Y19pbmZvKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBk
ZWYgX3ByZV9zZXR1cChzZWxmKToKKyAgICAgICAgICAgICAgICBwcmludCAoIl9wcmVfc2V0dXAo
KSIpCisgICAgICAgICAgICAgICAgc2VsZi53YXNfcHJlc2V0dXAgPSBUcnVlCisKKyAgICAgICAg
ICAgIGRlZiBfcG9zdF90ZWFyZG93bihzZWxmKToKKyAgICAgICAgICAgICAgICBwcmludCAoIl9w
b3N0X3RlYXJkb3duKCkiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXMiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAiKl9wcmVfc2V0dXAoKSoiLAorICAgICAgICAiKnNldFVw
KCkqIiwKKyAgICAgICAgIip0ZXN0X3RoaW5nKCkqIiwKKyAgICAgICAgIip0ZWFyRG93bigpKiIs
CisgICAgICAgICIqX3Bvc3RfdGVhcmRvd24oKSoiLAorICAgIF0pCisKKworZGVmIHRlc3RfdW5p
dHRlc3Rfbm90X3Nob3duX2luX3RyYWNlYmFjayh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICBjbGFzcyB0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHggPSAzCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCA0KQor
ICAgICIiIikKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0ICJmYWls
VW5sZXNzRXF1YWwiIG5vdCBpbiByZXMuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfdW5vcmRl
cmFibGVfdHlwZXModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgVGVzdEpvaW5FbXB0eSh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZGVmIG1ha2VfdGVzdCgpOgor
ICAgICAgICAgICAgY2xhc3MgVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgVGVzdC5fX25hbWVfXyA9ICJUZXN0Rm9vIgorICAgICAgICAg
ICAgcmV0dXJuIFRlc3QKKyAgICAgICAgVGVzdEZvbyA9IG1ha2VfdGVzdCgpCisgICAgIiIiKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgIlR5cGVFcnJvciIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElU
X05PVEVTVFNDT0xMRUNURUQKKworCitkZWYgdGVzdF91bml0dGVzdF90eXBlcnJvcl90cmFjZWJh
Y2sodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQg
dW5pdHRlc3QKKyAgICAgICAgY2xhc3MgVGVzdEpvaW5FbXB0eSh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBhcmcxKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBh
c3NlcnQgIlR5cGVFcnJvciIgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCByZXN1
bHQucmV0ID09IDEKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3J1bm5lcicsIFsncHl0
ZXN0JywgJ3VuaXR0ZXN0J10pCitkZWYgdGVzdF91bml0dGVzdF9leHBlY3RlZF9mYWlsdXJlX2Zv
cl9mYWlsaW5nX3Rlc3RfaXNfeGZhaWwodGVzdGRpciwgcnVubmVyKToKKyAgICBzY3JpcHQgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICBj
bGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIEB1bml0dGVz
dC5leHBlY3RlZEZhaWx1cmUKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVzdF9pc194
ZmFpbChzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAgICAgICAgIHVuaXR0ZXN0Lm1haW4oKQorICAgICIi
IikKKyAgICBpZiBydW5uZXIgPT0gJ3B5dGVzdCc6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItcnhYIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICIqWEZBSUwqTXlUZXN0Q2FzZSp0ZXN0X2ZhaWxpbmdfdGVzdF9pc194ZmFp
bCoiLAorICAgICAgICAgICAgIioxIHhmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAgICBlbHNlOgor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihzY3JpcHQpCisgICAgICAgIHJlc3Vs
dC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgdGVzdCBpbioiLAorICAg
ICAgICAgICAgIipPSyooZXhwZWN0ZWQgZmFpbHVyZXM9MSkqIiwKKyAgICAgICAgXSkKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdydW5u
ZXInLCBbJ3B5dGVzdCcsICd1bml0dGVzdCddKQorZGVmIHRlc3RfdW5pdHRlc3RfZXhwZWN0ZWRf
ZmFpbHVyZV9mb3JfcGFzc2luZ190ZXN0X2lzX2ZhaWwodGVzdGRpciwgcnVubmVyKToKKyAgICBz
Y3JpcHQgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAor
ICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAg
IEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3Npbmdf
dGVzdF9pc19mYWlsKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAg
IGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgICAgICB1bml0dGVzdC5tYWluKCkK
KyAgICAiIiIpCisgICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX2lzX3VuaXR0ZXN0X3Vu
ZXhwZWN0ZWRfc3VjY2Vzc19hX2ZhaWx1cmUKKyAgICBzaG91bGRfZmFpbCA9IF9pc191bml0dGVz
dF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlKCkKKyAgICBpZiBydW5uZXIgPT0gJ3B5dGVz
dCc6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnhYIikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqTXlUZXN0Q2FzZSp0
ZXN0X3Bhc3NpbmdfdGVzdF9pc19mYWlsKiIsCisgICAgICAgICAgICAiKjEgZmFpbGVkKiIgaWYg
c2hvdWxkX2ZhaWwgZWxzZSAiKjEgeHBhc3NlZCoiLAorICAgICAgICBdKQorICAgIGVsc2U6Cisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHNjcmlwdCkKKyAgICAgICAgcmVzdWx0
LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSB0ZXN0IGluKiIsCisgICAg
ICAgICAgICAiKih1bmV4cGVjdGVkIHN1Y2Nlc3Nlcz0xKSoiLAorICAgICAgICBdKQorCisgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gKDEgaWYgc2hvdWxkX2ZhaWwgZWxzZSAwKQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgnZml4X3R5cGUsIHN0bXQnLCBbCisgICAgKCdmaXh0dXJlJywg
J3JldHVybicpLAorICAgICgneWllbGRfZml4dHVyZScsICd5aWVsZCcpLAorXSkKK2RlZiB0ZXN0
X3VuaXR0ZXN0X3NldHVwX2ludGVyYWN0aW9uKHRlc3RkaXIsIGZpeF90eXBlLCBzdG10KToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENh
c2UpOgorICAgICAgICAgICAgQHB5dGVzdC57Zml4X3R5cGV9KHNjb3BlPSJjbGFzcyIsIGF1dG91
c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBwZXJjbGFzcyhzZWxmLCByZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICB7
c3RtdH0KKyAgICAgICAgICAgIEBweXRlc3Que2ZpeF90eXBlfShzY29wZT0iZnVuY3Rpb24iLCBh
dXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgcGVyZnVuY3Rpb24oc2VsZiwgcmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmVxdWVzdC5pbnN0YW5jZS5mdW5jbmFtZSA9IHJlcXVlc3QuZnVu
Y3Rpb24uX19uYW1lX18KKyAgICAgICAgICAgICAgICB7c3RtdH0KKworICAgICAgICAgICAgZGVm
IHRlc3RfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5mdW5jbmFt
ZSA9PSAidGVzdF9tZXRob2QxIgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmhlbGxvID09
ICJ3b3JsZCIKKworICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kMihzZWxmKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgc2VsZi5mdW5jbmFtZSA9PSAidGVzdF9tZXRob2QyIgorCisgICAgICAg
ICAgICBkZWYgdGVzdF9jbGFzc2F0dHIoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNl
bGYuX19jbGFzc19fLmhlbGxvID09ICJ3b3JsZCIKKyAgICAiIiIuZm9ybWF0KGZpeF90eXBlPWZp
eF90eXBlLCBzdG10PXN0bXQpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiozIHBhc3NlZCoiKQorCisKK2RlZiB0ZXN0
X25vbl91bml0dGVzdF9ub19zZXR1cGNsYXNzX3N1cHBvcnQodGVzdGRpcik6CisgICAgdGVzdHBh
dGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGNsYXNzIFRlc3RGb28ob2JqZWN0
KToKKyAgICAgICAgICAgIHggPSAwCisKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAg
ICAgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICBjbHMueCA9IDEKKwor
ICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgc2VsZi54ID09IDAKKworICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBk
ZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy54ID0gMQorCisgICAg
ICAgIGRlZiB0ZXN0X25vdF90ZWFyZWRkb3duKCk6CisgICAgICAgICAgICBhc3NlcnQgVGVzdEZv
by54ID09IDAKKworICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVz
dHBhdGgpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKworZGVmIHRlc3Rf
bm9fdGVhcmRvd25faWZfc2V0dXBjbGFzc19mYWlsZWQodGVzdGRpcik6CisgICAgdGVzdHBhdGgg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorCisgICAg
ICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgeCA9
IDAKKworICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgc2V0VXBDbGFz
cyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy54ID0gMQorICAgICAgICAgICAgICAgIGFzc2Vy
dCBGYWxzZQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmKToKKyAgICAgICAgICAg
ICAgICBjbHMueCA9IDEwCisKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAg
ZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICBjbHMueCA9IDEwMAorCisg
ICAgICAgIGRlZiB0ZXN0X25vdFRvcm5Eb3duKCk6CisgICAgICAgICAgICBhc3NlcnQgTXlUZXN0
Q2FzZS54ID09IDEKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRl
c3RwYXRoKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xLCBmYWlsZWQ9MSkKKwor
CitkZWYgdGVzdF9pc3N1ZTMzM19yZXN1bHRfY2xlYXJpbmcodGVzdGRpcik6CisgICAgdGVzdGRp
ci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVz
dC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rf
Y2FsbChpdGVtKToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBjbGFzcyBUZXN0SXQodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAwLzAKKyAgICAiIiIpCisKKyAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KGZhaWxlZD0xKQorCisKK2RlZiB0ZXN0X3VuaXR0ZXN0X3JhaXNlX3NraXBfaXNzdWU3NDgodGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgorICAgICAgICBpbXBv
cnQgdW5pdHRlc3QKKworICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAgICByYWlz
ZSB1bml0dGVzdC5Ta2lwVGVzdCgnc2tpcHBpbmcgZHVlIHRvIHJlYXNvbnMnKQorICAgICIiIikK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCAnLXJzJykKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICpTS0lQKlsxXSp0ZXN0X2Zvby5weSpz
a2lwcGluZyBkdWUgdG8gcmVhc29ucyoKKyAgICAgICAgKjEgc2tpcHBlZCoKKyAgICAiIiIpCisK
KworZGVmIHRlc3RfdW5pdHRlc3Rfc2tpcF9pc3N1ZTExNjkodGVzdGRpcik6CisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKworICAg
ICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIEB1
bml0dGVzdC5za2lwKCJza2lwcGluZyBkdWUgdG8gcmVhc29ucyIpCisgICAgICAgICAgICBkZWYg
dGVzdF9za2lwKHNlbGYpOgorICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorICAgICAgICAi
IiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgJy1ycycpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAqU0tJUCpbMV0qc2tpcHBpbmcg
ZHVlIHRvIHJlYXNvbnMqCisgICAgICAgICoxIHNraXBwZWQqCisgICAgIiIiKQorCisKK2RlZiB0
ZXN0X2NsYXNzX21ldGhvZF9jb250YWluaW5nX3Rlc3RfaXNzdWUxNTU4KHRlc3RkaXIpOgorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Zvbz0iIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0
CisKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAg
ICAgICBkZWYgdGVzdF9zaG91bGRfcnVuKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3Nob3VsZF9ub3RfcnVuKHNlbGYpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgICAgIHRlc3Rfc2hvdWxkX25vdF9ydW4uX190ZXN0X18gPSBGYWxzZQor
ICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0xKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3dhcm5pbmdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3dhcm5pbmdzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAyNDAwYmQxZGVkYWNmZmI0N2JhNzY3YzczYTY3OWMxZjljNmZhZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfd2FybmluZ3MucHkKQEAgLTAs
MCArMSwyNTggQEAKKyMgLSotIGNvZGluZzogdXRmOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgc3lzCisKK2ltcG9ydCBweXRlc3QKKworCitX
QVJOSU5HU19TVU1NQVJZX0hFQURFUiA9ICd3YXJuaW5ncyBzdW1tYXJ5JworCisKK0BweXRlc3Qu
Zml4dHVyZQorZGVmIHB5ZmlsZV93aXRoX3dhcm5pbmdzKHRlc3RkaXIsIHJlcXVlc3QpOgorICAg
ICIiIgorICAgIENyZWF0ZSBhIHRlc3QgZmlsZSB3aGljaCBjYWxscyBhIGZ1bmN0aW9uIGluIGEg
bW9kdWxlIHdoaWNoIGdlbmVyYXRlcyB3YXJuaW5ncy4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLnN5
c3BhdGhpbnNlcnQoKQorICAgIHRlc3RfbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18K
KyAgICBtb2R1bGVfbmFtZSA9IHRlc3RfbmFtZS5sc3RyaXAoJ3Rlc3RfJykgKyAnX21vZHVsZScK
KyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7CisgICAgICAgIG1vZHVsZV9uYW1lOiAnJycKKyAg
ICAgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoInVzZXIgd2FybmluZyIpKQorICAg
ICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oUnVudGltZVdhcm5pbmcoInJ1bnRpbWUgd2Fybmlu
ZyIpKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICcnJywKKyAgICAgICAgdGVz
dF9uYW1lOiAnJycKKyAgICAgICAgICAgIGltcG9ydCB7bW9kdWxlX25hbWV9CisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHttb2R1bGVfbmFtZX0u
Zm9vKCkgPT0gMQorICAgICAgICAnJycuZm9ybWF0KG1vZHVsZV9uYW1lPW1vZHVsZV9uYW1lKQor
ICAgIH0pCisKKworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdhbHdheXMnKQorZGVmIHRl
c3Rfbm9ybWFsX2Zsb3codGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MpOgorICAgICIiIgor
ICAgIENoZWNrIHRoYXQgdGhlIHdhcm5pbmdzIHNlY3Rpb24gaXMgZGlzcGxheWVkLCBjb250YWlu
aW5nIHRlc3Qgbm9kZSBpZHMgZm9sbG93ZWQgYnkKKyAgICBhbGwgd2FybmluZ3MgZ2VuZXJhdGVk
IGJ5IHRoYXQgdGVzdCBub2RlLgorICAgICIiIgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKj09ICVz
ID09KicgJSBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiwKKworICAgICAgICAnKnRlc3Rfbm9ybWFs
X2Zsb3cucHk6OnRlc3RfZnVuYycsCisKKyAgICAgICAgJypub3JtYWxfZmxvd19tb2R1bGUucHk6
MzogVXNlcldhcm5pbmc6IHVzZXIgd2FybmluZycsCisgICAgICAgICcqICB3YXJuaW5ncy53YXJu
KFVzZXJXYXJuaW5nKCJ1c2VyIHdhcm5pbmciKSknLAorCisgICAgICAgICcqbm9ybWFsX2Zsb3df
bW9kdWxlLnB5OjQ6IFJ1bnRpbWVXYXJuaW5nOiBydW50aW1lIHdhcm5pbmcnLAorICAgICAgICAn
KiAgd2FybmluZ3Mud2FybihSdW50aW1lV2FybmluZygicnVudGltZSB3YXJuaW5nIikpJywKKyAg
ICAgICAgJyogMSBwYXNzZWQsIDIgd2FybmluZ3MqJywKKyAgICBdKQorICAgIGFzc2VydCByZXN1
bHQuc3Rkb3V0LnN0cigpLmNvdW50KCd0ZXN0X25vcm1hbF9mbG93LnB5Ojp0ZXN0X2Z1bmMnKSA9
PSAxCisKKworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdhbHdheXMnKQorZGVmIHRlc3Rf
c2V0dXBfdGVhcmRvd25fd2FybmluZ3ModGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MpOgor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVm
IGZpeCgpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygid2FybmluZyBk
dXJpbmcgc2V0dXAiKSkKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKFVzZXJXYXJuaW5nKCJ3YXJuaW5nIGR1cmluZyB0ZWFyZG93biIpKQorCisgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoZml4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICcqPT0gJXMgPT0qJyAlIFdBUk5JTkdTX1NVTU1BUllfSEVBREVSLAorCisgICAg
ICAgICcqdGVzdF9zZXR1cF90ZWFyZG93bl93YXJuaW5ncy5weTo2OiBVc2VyV2FybmluZzogd2Fy
bmluZyBkdXJpbmcgc2V0dXAnLAorICAgICAgICAnKndhcm5pbmdzLndhcm4oVXNlcldhcm5pbmco
Indhcm5pbmcgZHVyaW5nIHNldHVwIikpJywKKworICAgICAgICAnKnRlc3Rfc2V0dXBfdGVhcmRv
d25fd2FybmluZ3MucHk6ODogVXNlcldhcm5pbmc6IHdhcm5pbmcgZHVyaW5nIHRlYXJkb3duJywK
KyAgICAgICAgJyp3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJ3YXJuaW5nIGR1cmluZyB0ZWFy
ZG93biIpKScsCisgICAgICAgICcqIDEgcGFzc2VkLCAyIHdhcm5pbmdzKicsCisgICAgXSkKKwor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21ldGhvZCcsIFsnY21kbGluZScsICdpbmknXSkK
K2RlZiB0ZXN0X2FzX2Vycm9ycyh0ZXN0ZGlyLCBweWZpbGVfd2l0aF93YXJuaW5ncywgbWV0aG9k
KToKKyAgICBhcmdzID0gKCctVycsICdlcnJvcicpIGlmIG1ldGhvZCA9PSAnY21kbGluZScgZWxz
ZSAoKQorICAgIGlmIG1ldGhvZCA9PSAnaW5pJzoKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCcn
JworICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGZpbHRlcndhcm5pbmdzPSBlcnJv
cgorICAgICAgICAgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdz
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICdFICAgICAgIFVz
ZXJXYXJuaW5nOiB1c2VyIHdhcm5pbmcnLAorICAgICAgICAnYXNfZXJyb3JzX21vZHVsZS5weToz
OiBVc2VyV2FybmluZycsCisgICAgICAgICcqIDEgZmFpbGVkIGluIConLAorICAgIF0pCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtZXRob2QnLCBbJ2NtZGxpbmUnLCAnaW5pJ10pCitk
ZWYgdGVzdF9pZ25vcmUodGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MsIG1ldGhvZCk6Cisg
ICAgYXJncyA9ICgnLVcnLCAnaWdub3JlJykgaWYgbWV0aG9kID09ICdjbWRsaW5lJyBlbHNlICgp
CisgICAgaWYgbWV0aG9kID09ICdpbmknOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoJycnCisg
ICAgICAgIFtweXRlc3RdCisgICAgICAgIGZpbHRlcndhcm5pbmdzPSBpZ25vcmUKKyAgICAgICAg
JycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJyogMSBwYXNzZWQgaW4gKicsCisgICAg
XSkKKyAgICBhc3NlcnQgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIgbm90IGluIHJlc3VsdC5zdGRv
dXQuc3RyKCkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywg
MCksCisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0nd2FybmluZ3MgbWVzc2FnZSBpcyB1bmlj
b2RlIGlzIG9rIGluIHB5dGhvbjMnKQorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdhbHdh
eXMnKQorZGVmIHRlc3RfdW5pY29kZSh0ZXN0ZGlyLCBweWZpbGVfd2l0aF93YXJuaW5ncyk6Cisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0ZjggLSot
CisgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKworICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGZpeCgpOgorICAgICAgICAgICAgd2Fy
bmluZ3Mud2Fybih1Iua1i+ivlSIpCisgICAgICAgICAgICB5aWVsZAorCisgICAgICAgIGRlZiB0
ZXN0X2Z1bmMoZml4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICcqPT0gJXMgPT0qJyAlIFdBUk5JTkdTX1NVTU1BUllfSEVBREVSLAorICAgICAgICAn
KnRlc3RfdW5pY29kZS5weTo4OiBVc2VyV2FybmluZzogXHU2ZDRiXHU4YmQ1KicsCisgICAgICAg
ICcqIDEgcGFzc2VkLCAxIHdhcm5pbmdzKicsCisgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsuc2tp
cGlmKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApLAorICAgICAgICAgICAgICAgICAgICByZWFz
b249J3dhcm5pbmdzIG1lc3NhZ2UgaXMgYnJva2VuIGFzIGl0IGlzIG5vdCBzdHIgaW5zdGFuY2Un
KQorZGVmIHRlc3RfcHkyX3VuaWNvZGUodGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MpOgor
ICAgIGlmIGdldGF0dHIoc3lzLCAicHlweV92ZXJzaW9uX2luZm8iLCAoKSlbOjJdID09ICg1LCA5
KSBhbmQgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgorICAgICAgICBweXRlc3QueGZh
aWwoImZhaWxzIHdpdGggdW5pY29kZSBlcnJvciBvbiBQeVB5MiA1LjkgYW5kIFdpbmRvd3MgKCMy
OTA1KSIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAjIC0qLSBjb2Rpbmc6
IHV0ZjggLSotCisgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGZpeCgpOgorICAgICAg
ICAgICAgd2FybmluZ3Mud2Fybih1Iua1i+ivlSIpCisgICAgICAgICAgICB5aWVsZAorCisgICAg
ICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnYWx3YXlzJykKKyAgICAgICAgZGVmIHRl
c3RfZnVuYyhmaXgpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgJyo9PSAlcyA9PSonICUgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIsCisKKyAgICAgICAg
Jyp0ZXN0X3B5Ml91bmljb2RlLnB5Ojg6IFVzZXJXYXJuaW5nOiBcXHU2ZDRiXFx1OGJkNScsCisg
ICAgICAgICcqd2FybmluZ3Mud2Fybih1Ilx1NmQ0Ylx1OGJkNSIpJywKKyAgICAgICAgJyp3YXJu
aW5ncy5weToqOiBVbmljb2RlV2FybmluZzogV2FybmluZyBpcyB1c2luZyB1bmljb2RlIG5vbion
LAorICAgICAgICAnKiAxIHBhc3NlZCwgMiB3YXJuaW5ncyonLAorICAgIF0pCisKKworZGVmIHRl
c3RfcHkyX3VuaWNvZGVfYXNjaWkodGVzdGRpcik6CisgICAgIiIiRW5zdXJlIHRoYXQgb3VyIHdh
cm5pbmcgYWJvdXQgJ3VuaWNvZGUgd2FybmluZ3MgY29udGFpbmluZyBub24tYXNjaWkgbWVzc2Fn
ZXMnCisgICAgZG9lcyBub3QgdHJpZ2dlciB3aXRoIGFzY2lpLWNvbnZlcnRpYmxlIG1lc3NhZ2Vz
IiIiCisgICAgdGVzdGRpci5tYWtlaW5pKCdbcHl0ZXN0XScpCisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCB3YXJuaW5ncwor
CisgICAgICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnYWx3YXlzJykKKyAgICAgICAg
ZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgd2FybmluZ3Mud2Fybih1ImhlbGxvIikKKyAg
ICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqPT0gJXMgPT0qJyAlIFdBUk5JTkdTX1NVTU1B
UllfSEVBREVSLAorICAgICAgICAnKndhcm5pbmdzLndhcm4odSJoZWxsbyIpJywKKyAgICAgICAg
JyogMSBwYXNzZWQsIDEgd2FybmluZ3MgaW4qJworICAgIF0pCisKKworZGVmIHRlc3Rfd29ya3Nf
d2l0aF9maWx0ZXJ3YXJuaW5ncyh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgb3VyIHdhcm5pbmdz
IGNhcHR1cmUgZG9lcyBub3QgbWVzcyB3aXRoIHByZS1pbnN0YWxsZWQgZmlsdGVycyAoIzI0MzAp
LiIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdz
CisKKyAgICAgICAgY2xhc3MgTXlXYXJuaW5nKFdhcm5pbmcpOgorICAgICAgICAgICAgcGFzcwor
CisgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCJlcnJvciIsIGNhdGVnb3J5PU15V2Fy
bmluZykKKworICAgICAgICBjbGFzcyBUZXN0V2FybmluZ3Mob2JqZWN0KToKKyAgICAgICAgICAg
IGRlZiB0ZXN0X215X3dhcm5pbmcoc2VsZik6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKE15V2FybmluZygid2FybiEiKSkKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICAgICAgICAgZXhjZXB0IE15V2Fybmlu
ZzoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAnJycpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICcqPT0gMSBwYXNzZWQgaW4gKicsCisgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ2RlZmF1bHRfY29uZmlnJywgWydpbmknLCAnY21kbGluZSddKQorZGVmIHRl
c3RfZmlsdGVyd2FybmluZ3NfbWFyayh0ZXN0ZGlyLCBkZWZhdWx0X2NvbmZpZyk6CisgICAgIiIi
CisgICAgVGVzdCBgYGZpbHRlcndhcm5pbmdzYGAgbWFyayB3b3JrcyBhbmQgdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGNvbW1hbmQgbGluZSBhbmQgaW5pIG9wdGlvbnMuCisgICAgIiIiCisgICAgaWYg
ZGVmYXVsdF9jb25maWcgPT0gJ2luaSc6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAg
ICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9IGFsd2F5cwor
ICAgICAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQg
d2FybmluZ3MKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QubWFyay5m
aWx0ZXJ3YXJuaW5ncygnaWdub3JlOjpSdW50aW1lV2FybmluZycpCisgICAgICAgIGRlZiB0ZXN0
X2lnbm9yZV9ydW50aW1lX3dhcm5pbmcoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oUnVu
dGltZVdhcm5pbmcoKSkKKworICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2Vy
cm9yJykKKyAgICAgICAgZGVmIHRlc3Rfd2FybmluZ19lcnJvcigpOgorICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybihSdW50aW1lV2FybmluZygpKQorCisgICAgICAgIGRlZiB0ZXN0X3Nob3dfd2Fy
bmluZygpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybihSdW50aW1lV2FybmluZygpKQorICAg
ICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLVcgYWx3YXlzJyBpZiBkZWZh
dWx0X2NvbmZpZyA9PSAnY21kbGluZScgZWxzZSAnJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWycqPSAxIGZhaWxlZCwgMiBwYXNzZWQsIDEgd2FybmluZ3MgaW4gKiddKQorCisK
K2RlZiB0ZXN0X25vbl9zdHJpbmdfd2FybmluZ19hcmd1bWVudCh0ZXN0ZGlyKToKKyAgICAiIiJO
b24tc3RyIGFyZ3VtZW50IHBhc3NlZCB0byB3YXJuaW5nIGJyZWFrcyBweXRlc3QgKCMyOTU2KSIi
IgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAg
d2FybmluZ3Mud2FybihVc2VyV2FybmluZygxLCB1J2ZvbycpKQorICAgICIiIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLVcnLCAnYWx3YXlzJykKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWycqPSAxIHBhc3NlZCwgMSB3YXJuaW5ncyBpbiAqJ10pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2U2ZWQ2OTVmZjI1MWRlMDczMDJhMjhk
ZGY3NWY3Y2UzYzE0YmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDUxIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2FjY2VwdGFuY2VfdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZGVwcmVjYXRlZF90
ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2FyZ2NvbXBsZXRlLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9hc3NlcnRyZXdyaXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhcHR1cmUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfY29sbGVjdGlvbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb21wYXQucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29uZmlnLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50cnlfcG9pbnRzLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X2hlbHBjb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVu
aXR4bWwucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbWFyay5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9tb2RpbXBvcnQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9u
a2V5cGF0Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9kZXMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXJz
ZW9wdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXN0ZWJpbi5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9wZGIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGx1Z2lu
bWFuYWdlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9weXRlc3Rlci5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZWN3YXJuLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X3Jlc3VsdGxvZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3Nlc3Npb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdGVybWluYWwucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfdG1wZGlyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3dhcm5pbmdzLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDBiNjAy
ZGMzMzdkYTFjYmM3Yzg1YjE2NDA2NDUzYzUzY2U3MzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdG94LmluaQpAQCAtMCwwICsxLDIyMCBAQAorW3RveF0KK21pbnZlcnNpb24gPSAy
LjAKK2Rpc3RzaGFyZSA9IHtob21lZGlyfS8udG94L2Rpc3RzaGFyZQorIyBtYWtlIHN1cmUgdG8g
dXBkYXRlIGVudmlyb25tZW50IGxpc3QgaW4gdHJhdmlzLnltbCBhbmQgYXBwdmV5b3IueW1sCitl
bnZsaXN0ID0KKyAgICBsaW50aW5nCisgICAgcHkyNworICAgIHB5MzQKKyAgICBweTM1CisgICAg
cHkzNgorICAgIHB5MzcKKyAgICBweXB5CisgICAge3B5MjcscHkzNn0te3BleHBlY3QseGRpc3Qs
dHJpYWwsbnVtcHkscGx1Z2d5bWFzdGVyfQorICAgIHB5Mjctbm9ieXRlCisgICAgZG9jdGVzdGlu
ZworICAgIHB5MzUtZnJlZXplCisgICAgZG9jcworCitbdGVzdGVudl0KK2NvbW1hbmRzID0gcHl0
ZXN0IC0tbHNvZiAtcmEge3Bvc2FyZ3M6dGVzdGluZ30KK3Bhc3NlbnYgPSBVU0VSIFVTRVJOQU1F
CitkZXBzID0KKyAgICBoeXBvdGhlc2lzPj0zLjUuMgorICAgIG5vc2UKKyAgICBtb2NrCisgICAg
cmVxdWVzdHMKKworW3Rlc3RlbnY6cHkyNy1zdWJwcm9jZXNzXQorY2hhbmdlZGlyID0gLgorZGVw
cyA9CisgICAgcHl0ZXN0LXhkaXN0Pj0xLjEzCisgICAgbW9jaworICAgIG5vc2UKK2NvbW1hbmRz
ID0KKyAgICBweXRlc3QgLW4zIC1yYSAtLXJ1bnB5dGVzdD1zdWJwcm9jZXNzIHtwb3NhcmdzOnRl
c3Rpbmd9CisKKworW3Rlc3RlbnY6bGludGluZ10KK3NraXBzZGlzdCA9IFRydWUKK3VzZWRldmVs
b3AgPSBUcnVlCitiYXNlcHl0aG9uID0gcHl0aG9uMi43CitkZXBzID0KKyAgICBmbGFrZTgKKyAg
ICAjIHB5Z21lbnRzIHJlcXVpcmVkIGJ5IHJzdC1saW50CisgICAgcHlnbWVudHMKKyAgICByZXN0
cnVjdHVyZWR0ZXh0X2xpbnQKK2NvbW1hbmRzID0KKyAgICBmbGFrZTggcHl0ZXN0LnB5IF9weXRl
c3QgdGVzdGluZyBzZXR1cC5weSBweXRlc3QucHkKKyAgICB7ZW52cHl0aG9ufSBzY3JpcHRzL2No
ZWNrLXJzdC5weQorCitbdGVzdGVudjpweTI3LXhkaXN0XQorZGVwcyA9CisgICAgcHl0ZXN0LXhk
aXN0Pj0xLjEzCisgICAgbW9jaworICAgIG5vc2UKKyAgICBoeXBvdGhlc2lzPj0zLjUuMgorY2hh
bmdlZGlyPXRlc3RpbmcKK2NvbW1hbmRzID0KKyAgICBweXRlc3QgLW4xIC1yYSB7cG9zYXJnczou
fQorCitbdGVzdGVudjpweTM2LXhkaXN0XQorZGVwcyA9IHtbdGVzdGVudjpweTI3LXhkaXN0XWRl
cHN9Citjb21tYW5kcyA9CisgICAgcHl0ZXN0IC1uMyAtcmEge3Bvc2FyZ3M6dGVzdGluZ30KKwor
W3Rlc3RlbnY6cHkyNy1wZXhwZWN0XQorY2hhbmdlZGlyID0gdGVzdGluZworcGxhdGZvcm0gPSBs
aW51eHxkYXJ3aW4KK2RlcHMgPSBwZXhwZWN0Citjb21tYW5kcyA9CisgICAgcHl0ZXN0IC1yYSB0
ZXN0X3BkYi5weSB0ZXN0X3Rlcm1pbmFsLnB5IHRlc3RfdW5pdHRlc3QucHkKKworW3Rlc3RlbnY6
cHkzNi1wZXhwZWN0XQorY2hhbmdlZGlyID0gdGVzdGluZworcGxhdGZvcm0gPSBsaW51eHxkYXJ3
aW4KK2RlcHMgPSB7W3Rlc3RlbnY6cHkyNy1wZXhwZWN0XWRlcHN9Citjb21tYW5kcyA9CisgICAg
cHl0ZXN0IC1yYSB0ZXN0X3BkYi5weSB0ZXN0X3Rlcm1pbmFsLnB5IHRlc3RfdW5pdHRlc3QucHkK
KworW3Rlc3RlbnY6cHkyNy1ub2J5dGVdCitkZXBzID0KKyAgICBweXRlc3QteGRpc3Q+PTEuMTMK
KyAgICBoeXBvdGhlc2lzPj0zLjUuMgorZGlzdHJpYnV0ZSA9IHRydWUKK2NoYW5nZWRpcj10ZXN0
aW5nCitzZXRlbnYgPQorICAgIFBZVEhPTkRPTlRXUklURUJZVEVDT0RFPTEKK2NvbW1hbmRzID0K
KyAgICBweXRlc3QgLW4zIC1yYSB7cG9zYXJnczoufQorCitbdGVzdGVudjpweTI3LXRyaWFsXQor
ZGVwcyA9IHR3aXN0ZWQKK2NvbW1hbmRzID0KKyAgICBweXRlc3QgLXJhIHtwb3NhcmdzOnRlc3Rp
bmcvdGVzdF91bml0dGVzdC5weX0KKworW3Rlc3RlbnY6cHkzNi10cmlhbF0KK2RlcHMgPSB7W3Rl
c3RlbnY6cHkyNy10cmlhbF1kZXBzfQorY29tbWFuZHMgPQorICAgIHB5dGVzdCAtcmEge3Bvc2Fy
Z3M6dGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5fQorCitbdGVzdGVudjpweTI3LW51bXB5XQorZGVw
cz1udW1weQorY29tbWFuZHM9CisgIHB5dGVzdCAtcmEge3Bvc2FyZ3M6dGVzdGluZy9weXRob24v
YXBwcm94LnB5fQorCitbdGVzdGVudjpweTM2LW51bXB5XQorZGVwcz1udW1weQorY29tbWFuZHM9
CisgIHB5dGVzdCAtcmEge3Bvc2FyZ3M6dGVzdGluZy9weXRob24vYXBwcm94LnB5fQorCitbdGVz
dGVudjpweTI3LXBsdWdneW1hc3Rlcl0KK3NldGVudj0KKyAgICBfUFlURVNUX1NFVFVQX1NLSVBf
UExVR0dZX0RFUD0xCitkZXBzID0KKyAgICB7W3Rlc3RlbnZdZGVwc30KKyAgICBnaXQraHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5LmdpdEBtYXN0ZXIKKworW3Rlc3RlbnY6cHkz
NS1wbHVnZ3ltYXN0ZXJdCitzZXRlbnY9CisgICAgX1BZVEVTVF9TRVRVUF9TS0lQX1BMVUdHWV9E
RVA9MQorZGVwcyA9CisgICAge1t0ZXN0ZW52OnB5MjctcGx1Z2d5bWFzdGVyXWRlcHN9CisgICAg
Z2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS5naXRAbWFzdGVyCisKK1t0
ZXN0ZW52OmRvY3NdCitza2lwc2Rpc3QgPSBUcnVlCit1c2VkZXZlbG9wID0gVHJ1ZQorYmFzZXB5
dGhvbiA9IHB5dGhvbgorY2hhbmdlZGlyID0gZG9jL2VuCitkZXBzID0KKyAgICBzcGhpbngKKyAg
ICBQeVlBTUwKKworY29tbWFuZHMgPQorICAgIHNwaGlueC1idWlsZCAtVyAtYiBodG1sIC4gX2J1
aWxkCisKK1t0ZXN0ZW52OmRvY3Rlc3RpbmddCitiYXNlcHl0aG9uID0gcHl0aG9uCit1c2VkZXZl
bG9wID0gVHJ1ZQorc2tpcHNkaXN0ID0gVHJ1ZQorIyBlbnN1cmUgdGhlIGdpdmVuIHB5YXJncyBj
YW50IG1lYW4gYW55dHJoaW5nIGVsc2UKK2NoYW5nZWRpciA9IGRvYy8KK2RlcHMgPQorICAgIFB5
WUFNTAorY29tbWFuZHMgPQorICAgIHB5dGVzdCAtcmEgZW4KKyAgICBweXRlc3QgLS1kb2N0ZXN0
LW1vZHVsZXMgLS1weWFyZ3MgX3B5dGVzdAorCitbdGVzdGVudjpyZWdlbl0KK2NoYW5nZWRpciA9
IGRvYy9lbgorc2tpcHNkaXN0ID0gVHJ1ZQorYmFzZXB5dGhvbiA9IHB5dGhvbjMuNQorZGVwcyA9
CisgICAgc3BoaW54CisgICAgUHlZQU1MCisgICAgcmVnZW5kb2M+PTAuNi4xCit3aGl0ZWxpc3Rf
ZXh0ZXJuYWxzID0KKyAgICBybQorICAgIG1ha2UKK2NvbW1hbmRzID0KKyAgICBybSAtcmYgL3Rt
cC9kb2MtZXhlYyoKKyAgICBtYWtlIHJlZ2VuCisKK1t0ZXN0ZW52OmZpeC1saW50XQorc2tpcHNk
aXN0ID0gVHJ1ZQordXNlZGV2ZWxvcCA9IFRydWUKK2RlcHMgPQorICAgIGF1dG9wZXA4Citjb21t
YW5kcyA9CisgICAgYXV0b3BlcDggLS1pbi1wbGFjZSAtciAtLW1heC1saW5lLWxlbmd0aD0xMjAg
LS1leGNsdWRlPXRlc3Rfc291cmNlX211bHRpbGluZV9ibG9jay5weSBfcHl0ZXN0IHRlc3Rpbmcg
c2V0dXAucHkgcHl0ZXN0LnB5CisKK1t0ZXN0ZW52Omp5dGhvbl0KK2NoYW5nZWRpciA9IHRlc3Rp
bmcKK2NvbW1hbmRzID0KKyAgICB7ZW52cHl0aG9ufSB7ZW52YmluZGlyfS9weS50ZXN0LWp5dGhv
biAtcmEge3Bvc2FyZ3N9CisKK1t0ZXN0ZW52OnB5MzUtZnJlZXplXQorY2hhbmdlZGlyID0gdGVz
dGluZy9mcmVlemUKK2RlcHMgPSBweWluc3RhbGxlcgorY29tbWFuZHMgPQorICAgIHtlbnZweXRo
b259IGNyZWF0ZV9leGVjdXRhYmxlLnB5CisgICAge2VudnB5dGhvbn0gdG94X3J1bi5weQorCisK
K1t0ZXN0ZW52OmNvdmVyYWxsc10KK3Bhc3NlbnYgPSBUUkFWSVMgVFJBVklTX0pPQl9JRCBUUkFW
SVNfQlJBTkNIIENPVkVSQUxMU19SRVBPX1RPS0VOCit1c2VkZXZlbG9wID0gVHJ1ZQorY2hhbmdl
ZGlyID0gLgorZGVwcyA9CisgICAge1t0ZXN0ZW52XWRlcHN9CisgICAgY292ZXJhbGxzCitjb21t
YW5kcyA9CisgICAgY292ZXJhZ2UgcnVuIC0tc291cmNlPV9weXRlc3QgLW0gcHl0ZXN0IHRlc3Rp
bmcKKyAgICBjb3ZlcmFnZSByZXBvcnQgLW0KKyAgICBjb3ZlcmFsbHMKKworW3B5dGVzdF0KK21p
bnZlcnNpb24gPSAyLjAKK3BsdWdpbnMgPSBweXRlc3RlcgorIy0tcHlhcmdzIC0tZG9jdGVzdC1t
b2R1bGVzIC0taWdub3JlPS50b3gKK2FkZG9wdHMgPSAtcmEgLXAgcHl0ZXN0ZXIgLS1pZ25vcmU9
dGVzdGluZy9jeF9mcmVlemUKK3JzeW5jZGlycyA9IHRveC5pbmkgcHl0ZXN0LnB5IF9weXRlc3Qg
dGVzdGluZworcHl0aG9uX2ZpbGVzID0gdGVzdF8qLnB5ICpfdGVzdC5weSB0ZXN0aW5nLyovKi5w
eQorcHl0aG9uX2NsYXNzZXMgPSBUZXN0IEFjY2VwdGFuY2UKK3B5dGhvbl9mdW5jdGlvbnMgPSB0
ZXN0Citub3JlY3Vyc2VkaXJzID0gLnRveCBqYSAuaGcgY3hfZnJlZXplX3NvdXJjZQoreGZhaWxf
c3RyaWN0PXRydWUKK2ZpbHRlcndhcm5pbmdzID0KKyAgICBlcnJvcgorICAgICMgcHJvZHVjZWQg
YnkgcGF0aC5sb2NhbAorICAgIGlnbm9yZTpiYWQgZXNjYXBlLio6RGVwcmVjYXRpb25XYXJuaW5n
OnJlCisgICAgIyBwcm9kdWNlZCBieSBwYXRoLnJlYWRsaW5lcworICAgIGlnbm9yZTouKlUuKm1v
ZGUgaXMgZGVwcmVjYXRlZDpEZXByZWNhdGlvbldhcm5pbmcKKyAgICAjIHByb2R1Y2VkIGJ5IHB5
dGVzdC14ZGlzdAorICAgIGlnbm9yZTouKnR5cGUgYXJndW1lbnQgdG8gYWRkb3B0aW9uLio6RGVw
cmVjYXRpb25XYXJuaW5nCisgICAgIyBwcm9kdWNlZCBieSBweXRob24gPj0zLjUgb24gZXhlY25l
dCAocHl0ZXN0LXhkaXN0KQorICAgIGlnbm9yZTouKmluc3BlY3QuZ2V0YXJnc3BlYy4qZGVwcmVj
YXRlZCwgdXNlIGluc3BlY3Quc2lnbmF0dXJlLio6RGVwcmVjYXRpb25XYXJuaW5nCisKK1tmbGFr
ZThdCittYXgtbGluZS1sZW5ndGggPSAxMjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRkODIz
YjQxNzU0MTBkYjFhY2Q0YTY1MWJmOTYxM2Q2Y2MwNGEwOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjggQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L0FVVEhPUlMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSEFOR0VMT0cucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Q09OVFJJQlVUSU5HLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0hPV1RPUkVMRUFTRS5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZl
eW9yLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3B5cHJvamVjdC50b21sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHl0ZXN0
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2V0dXAuY2ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0dXAucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiMWI0ZWJiN2Fi
MjAxYThmNWZhNmI0ODNiMzYwNmJjZTVjZTM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdG94LmluaQpAQCAtMCww
ICsxLDUwIEBACitbdG94XQorZW52bGlzdCA9IHB5MjcscHkzNixweXB5Citza2lwc2Rpc3Q9VHJ1
ZQorCitbdGVzdGVudl0KKyMgZmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBrZXB0IGluIHN5bmMg
YWNyb3NzIHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVu
bmVyL3RveC5pbmkKK2RlcHMgPQorICBmbGFrZTg9PTMuNS4wCisgIHB5Y29kZXN0eWxlPT0yLjMu
MQorICBweWZsYWtlcz09MS42LjAKKyAgcGVwOC1uYW1pbmc9PTAuNC4xCisgIHB5dGVzdAorICBw
eXRlc3QtY292CisgIG1vY2sKKyAgaHlwb3RoZXNpcworICBweXRlc3QtY2F0Y2hsb2cKKworY29t
bWFuZHMgPQorICBweXRlc3QgLS1jb3Yge3Bvc2FyZ3N9CisgIGZsYWtlOAorCitwYXNzZW52ID0K
KyAgSFlQT1RIRVNJU19QUk9GSUxFCisKK1tmbGFrZThdCisjIGZsYWtlOCBjb25maWcgc2hvdWxk
IGJlIGtlcHQgaW4gc3luYyBhY3Jvc3MgdG9vbHMvdG94LmluaSwgdG9vbHMvd3B0L3RveC5pbmks
IGFuZCB0b29scy93cHRydW5uZXIvdG94LmluaQorc2VsZWN0ID0gRSxXLEYsTgorIyBFMTI4OiBj
b250aW51YXRpb24gbGluZSB1bmRlci1pbmRlbnRlZCBmb3IgdmlzdWFsIGluZGVudAorIyBFMTI5
OiB2aXN1YWxseSBpbmRlbnRlZCBsaW5lIHdpdGggc2FtZSBpbmRlbnQgYXMgbmV4dCBsb2dpY2Fs
IGxpbmUKKyMgRTIyMTogbXVsdGlwbGUgc3BhY2VzIGJlZm9yZSBvcGVyYXRvcgorIyBFMjI2OiBt
aXNzaW5nIHdoaXRlc3BhY2UgYXJvdW5kIGFyaXRobWV0aWMgb3BlcmF0b3IKKyMgRTIzMTogbWlz
c2luZyB3aGl0ZXNwYWNlIGFmdGVyIOKAmCzigJksIOKAmDvigJksIG9yIOKAmDrigJkKKyMgRTI1
MTogdW5leHBlY3RlZCBzcGFjZXMgYXJvdW5kIGtleXdvcmQgLyBwYXJhbWV0ZXIgZXF1YWxzCisj
IEUyNjU6IGJsb2NrIGNvbW1lbnQgc2hvdWxkIHN0YXJ0IHdpdGgg4oCYIyDigJgKKyMgRTMwMjog
ZXhwZWN0ZWQgMiBibGFuayBsaW5lcywgZm91bmQgMAorIyBFMzAzOiB0b28gbWFueSBibGFuayBs
aW5lcyAoMykKKyMgRTMwNTogZXhwZWN0ZWQgMiBibGFuayBsaW5lcyBhZnRlciBlbmQgb2YgZnVu
Y3Rpb24gb3IgY2xhc3MKKyMgRTQwMjogbW9kdWxlIGxldmVsIGltcG9ydCBub3QgYXQgdG9wIG9m
IGZpbGUKKyMgRTczMTogZG8gbm90IGFzc2lnbiBhIGxhbWJkYSBleHByZXNzaW9uLCB1c2UgYSBk
ZWYKKyMgRTkwMTogU3ludGF4RXJyb3Igb3IgSW5kZW50YXRpb25FcnJvcgorIyBXNjAxOiAuaGFz
X2tleSgpIGlzIGRlcHJlY2F0ZWQsIHVzZSDigJhpbuKAmQorIyBGNDAxOiBtb2R1bGUgaW1wb3J0
ZWQgYnV0IHVudXNlZAorIyBGNDAzOiDigJhmcm9tIG1vZHVsZSBpbXBvcnQgKuKAmSB1c2VkOyB1
bmFibGUgdG8gZGV0ZWN0IHVuZGVmaW5lZCBuYW1lcworIyBGNDA1OiBuYW1lIG1heSBiZSB1bmRl
ZmluZWQsIG9yIGRlZmluZWQgZnJvbSBzdGFyIGltcG9ydHM6IG1vZHVsZQorIyBGODQxOiBsb2Nh
bCB2YXJpYWJsZSBuYW1lIGlzIGFzc2lnbmVkIHRvIGJ1dCBuZXZlciB1c2VkCisjIE44MDE6IGNs
YXNzIG5hbWVzIHNob3VsZCB1c2UgQ2FwV29yZHMgY29udmVudGlvbgorIyBOODAyOiBmdW5jdGlv
biBuYW1lIHNob3VsZCBiZSBsb3dlcmNhc2UKK2lnbm9yZSA9IEUxMjgsRTEyOSxFMjIxLEUyMjYs
RTIzMSxFMjUxLEUyNjUsRTMwMixFMzAzLEUzMDUsRTQwMixFNzMxLEU5MDEsVzYwMSxGNDAxLEY0
MDMsRjQwNSxGODQxLE44MDEsTjgwMgorbWF4LWxpbmUtbGVuZ3RoID0gMTQxCitleGNsdWRlID0g
LnRveCxodG1sNWxpYix0aGlyZF9wYXJ0eS9weSx0aGlyZF9wYXJ0eS9weXRlc3QsdGhpcmRfcGFy
dHkvZnVuY3NpZ3MsdGhpcmRfcGFydHkvYXR0cnMsdGhpcmRfcGFydHkvcGx1Z2d5LyxweXdlYnNv
Y2tldCxzaXgsX3ZlbnYsd2ViZW5jb2RpbmdzLHdwdHNlcnZlL2RvY3Msd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC9kb2Nyb290Lyx3cHQsd3B0cnVubmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1w
b3J0LmxvZwppbmRleCBjOTU2ZjdhODczODI3YTI3NDUzNmFlMjE2OWNmZGMwMjc0MDg0MDdlLi5h
NDRmZTdkMTAyYmI4YWM0NWYxZmYyNTZiOGVjZTJlZDlkZGQ5YzVmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDUgKzE0LDEwIEBAIFByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
T1dORVJTCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvYXBwdmV5b3IueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdG94LmluaQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJk
cml2ZXIvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNWIzMWIyNTRjZTFi
ZGQ4MGMyNWUzZmQzY2Q5Njg3MDhhMTI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUu
bWQKQEAgLTAsMCArMSw3MyBAQAorIyBXZWJEcml2ZXIgY2xpZW50IGZvciBQeXRob24KKworVGhp
cyBwYWNrYWdlIHByb3ZpZGVzIFB5dGhvbiBiaW5kaW5ncwordGhhdCBjb25mb3JtIHRvIHRoZSBb
VzNDIFdlYkRyaXZlciBzdGFuZGFyZF0oaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93
ZWJkcml2ZXItc3BlYy5odG1sKSwKK3doaWNoIHNwZWNpZmllcyBhIHJlbW90ZSBjb250cm9sIHBy
b3RvY29sIGZvciB3ZWIgYnJvd3NlcnMuCisKK1RoZXNlIGJpbmRpbmdzIGFyZSB3cml0dGVuIHdp
dGggZGV0ZXJtaW5pbmcKK2ltcGxlbWVudGF0aW9uIGNvbXBsaWFuY2UgdG8gdGhlIHNwZWNpZmlj
YXRpb24gaW4gbWluZCwKK3NvIHRoYXQgZGlmZmVyZW50IHJlbW90ZSBlbmQgZHJpdmVycworY2Fu
IGRldGVybWluZSB3aGV0aGVyIHRoZXkgbWVldCB0aGUgcmVjb2duaXNlZCBzdGFuZGFyZC4KK1Ro
ZSBjbGllbnQgaXMgdXNlZCBmb3IgdGhlIFdlYkRyaXZlciBzcGVjaWZpY2F0aW9uIHRlc3RzCitp
biB0aGUgW1dlYiBQbGF0Zm9ybSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMpLgorCisjIyBJbnN0YWxsYXRpb24KKworVG8gaW5zdGFsbCB0aGUgcGFja2Fn
ZSBpbmRpdmlkdWFsbHkKK2luIHlvdXIgdmlydHVhbGVudiBvciBzeXN0ZW0td2lkZToKKworICAg
ICUgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKKworU2luY2UgdGhpcyBwYWNrYWdlIGRvZXMgbm90
IGhhdmUgYW55IGV4dGVybmFsIGRlcGVuZGVuY2llcywKK3lvdSBjYW4gYWxzbyB1c2UgdGhlIGNs
aWVudCBkaXJlY3RseSBmcm9tIHRoZSBjaGVja291dCBkaXJlY3RvcnksCit3aGljaCBpcyB1c2Vm
dWwgaWYgeW91IHdhbnQgdG8gY29udHJpYnV0ZSBwYXRjaGVzIGJhY2s6CisKKyAgICAlIGNkIC9w
YXRoL3RvL3dkY2xpZW50CisgICAgJSBweXRob24KKyAgICBQeXRob24gMi43LjEyKyAoZGVmYXVs
dCwgQXVnICA0IDIwMTYsIDIwOjA0OjM0KSAKKyAgICBbR0NDIDYuMS4xIDIwMTYwNzI0XSBvbiBs
aW51eDIKKyAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5z
ZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgPj4+IGltcG9ydCB3ZWJkcml2ZXIKKyAgICA+
Pj4gCisKK0lmIHlvdSBhcmUgd3JpdGluZyBXZWJEcml2ZXIgc3BlY2lmaWNhdGlvbiB0ZXN0cyBm
b3IKK1tXUFRdKGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzKSwKK3Ro
ZXJlIGlzIG5vIG5lZWQgdG8gaW5zdGFsbCB0aGUgY2xpZW50IG1hbnVhbGx5CithcyBpdCBpcyBp
bmNsdWRlZCBpbiB0aGUgYHRvb2xzL3dlYmRyaXZlcmAgZGlyZWN0b3J5LgorCisjIyBVc2FnZQor
CitZb3UgY2FuIHVzZSB0aGUgYnVpbHQtaW4KK1tjb250ZXh0IG1hbmFnZXJdKGh0dHBzOi8vZG9j
cy5weXRob24ub3JnLzIvcmVmZXJlbmNlL2NvbXBvdW5kX3N0bXRzLmh0bWwjdGhlLXdpdGgtc3Rh
dGVtZW50KQordG8gbWFuYWdlIHRoZSBsaWZldGltZSBvZiB0aGUgc2Vzc2lvbi4KK1RoZSBzZXNz
aW9uIGlzIHN0YXJ0ZWQgaW1wbGljaXRseQorYXQgdGhlIGZpcnN0IGNhbGwgdG8gYSBjb21tYW5k
IGlmIGl0IGhhcyBub3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQsCithbmQgd2lsbCBpbXBsaWNpdGx5
IGJlIGVuZGVkIHdoZW4gZXhpdGluZyB0aGUgY29udGV4dDoKKworYGBgcHkKK2ltcG9ydCB3ZWJk
cml2ZXIKKword2l0aCB3ZWJkcml2ZXIuU2Vzc2lvbigiMTI3LjAuMC4xIiwgNDQ0NCkgYXMgc2Vz
c2lvbjoKKyAgICBzZXNzaW9uLnVybCA9ICJodHRwczovL21vemlsbGEub3JnIgorICAgIHByaW50
ICJUaGUgY3VycmVudCBVUkwgaXMgJXMiICUgc2Vzc2lvbi51cmwKK2BgYAorCitUaGUgZm9sbG93
aW5nIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIHRoZSBhYm92ZSwKK2J1dCBnaXZpbmcg
eW91IG1hbnVhbCBjb250cm9sIG9mIHRoZSBzZXNzaW9uOgorCitgYGBweQoraW1wb3J0IHdlYmRy
aXZlcgorCitzZXNzaW9uID0gd2ViZHJpdmVyLlNlc3Npb24oIjEyNy4wLjAuMSIsIDQ0NDQpCitz
ZXNzaW9uLnN0YXJ0KCkKKworc2Vzc2lvbi51cmwgPSAiaHR0cHM6Ly9tb3ppbGxhLm9yZyIKK3By
aW50ICJUaGUgY3VycmVudCBVUkwgaXMgJXMiICUgc2Vzc2lvbi51cmwKKworc2Vzc2lvbi5lbmQo
KQorYGBgCisKKyMjIERlcGVuZGVuY2llcworCitUaGlzIGNsaWVudCBoYXMgdGhlIGJlbmVmaXQg
b2Ygb25seSB1c2luZyBzdGFuZGFyZCBsaWJyYXJ5IGRlcGVuZGVuY2llcy4KK05vIGV4dGVybmFs
IFB5UEkgZGVwZW5kZW5jaWVzIGFyZSBuZWVkZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9zZXR1cC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NzM5NjFjYjY0ZjQyNGUzNDAyYjI2NTc0NmE2MTJi
MDljYjdkZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9zZXR1cC5weQpAQCAtMCwwICsxLDE0IEBA
Citmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2VzCisKK3NldHVwKG5h
bWU9IndlYmRyaXZlciIsCisgICAgICB2ZXJzaW9uPSIxLjAiLAorICAgICAgZGVzY3JpcHRpb249
IldlYkRyaXZlciBjbGllbnQgY29tcGF0aWJsZSB3aXRoICIKKyAgICAgICAgICAgICAgICAgICJ0
aGUgVzNDIGJyb3dzZXIgYXV0b21hdGlvbiBzcGVjaWZpY2F0aW9uLiIsCisgICAgICBhdXRob3I9
Ik1vemlsbGEgRW5naW5lZXJpbmcgUHJvZHVjdGl2aXR5IiwKKyAgICAgIGF1dGhvcl9lbWFpbD0i
dG9vbHNAbGlzdHMubW96aWxsYS5vcmciLAorICAgICAgbGljZW5zZT0iQlNEIiwKKyAgICAgIHBh
Y2thZ2VzPWZpbmRfcGFja2FnZXMoKSwKKyAgICAgIGNsYXNzaWZpZXJzPVsiRGV2ZWxvcG1lbnQg
U3RhdHVzIDo6IDQgLSBCZXRhIiwKKyAgICAgICAgICAgICAgICAgICAiSW50ZW5kZWQgQXVkaWVu
Y2UgOjogRGV2ZWxvcGVycyIsCisgICAgICAgICAgICAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFw
cHJvdmVkIDo6IE1vemlsbGEgUHVibGljIExpY2Vuc2UgMi4wIChNUEwgMi4wKSIsCisgICAgICAg
ICAgICAgICAgICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQiXSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDkzNDFhNzcyZDkxMGFkZWY4ZmJkNGMxODJjODc5NDM5OTkxZmZlMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2Vi
ZHJpdmVyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL1JFQURN
RS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzAyNDNmNzIwNWQ3Mzg0MjA1
M2I5NmYwMmQ5ZjI3ZmVlY2I5YmM4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9f
X2luaXRfXy5weQpAQCAtMCwwICsxLDI3IEBACitmcm9tIGNsaWVudCBpbXBvcnQgQ29va2llcywg
RWxlbWVudCwgRmluZCwgU2Vzc2lvbiwgVGltZW91dHMsIFdpbmRvdworZnJvbSBlcnJvciBpbXBv
cnQgKAorICAgIEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAorICAgIEVsZW1lbnROb3RW
aXNpYmxlRXhjZXB0aW9uLAorICAgIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKKyAgICBJbnZh
bGlkQ29va2llRG9tYWluRXhjZXB0aW9uLAorICAgIEludmFsaWRFbGVtZW50Q29vcmRpbmF0ZXNF
eGNlcHRpb24sCisgICAgSW52YWxpZEVsZW1lbnRTdGF0ZUV4Y2VwdGlvbiwKKyAgICBJbnZhbGlk
U2VsZWN0b3JFeGNlcHRpb24sCisgICAgSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbiwKKyAgICBK
YXZhc2NyaXB0RXJyb3JFeGNlcHRpb24sCisgICAgTW92ZVRhcmdldE91dE9mQm91bmRzRXhjZXB0
aW9uLAorICAgIE5vU3VjaEFsZXJ0RXhjZXB0aW9uLAorICAgIE5vU3VjaEVsZW1lbnRFeGNlcHRp
b24sCisgICAgTm9TdWNoRnJhbWVFeGNlcHRpb24sCisgICAgTm9TdWNoV2luZG93RXhjZXB0aW9u
LAorICAgIFNjcmlwdFRpbWVvdXRFeGNlcHRpb24sCisgICAgU2Vzc2lvbk5vdENyZWF0ZWRFeGNl
cHRpb24sCisgICAgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uLAorICAgIFRpbWVvdXRF
eGNlcHRpb24sCisgICAgVW5hYmxlVG9TZXRDb29raWVFeGNlcHRpb24sCisgICAgVW5leHBlY3Rl
ZEFsZXJ0T3BlbkV4Y2VwdGlvbiwKKyAgICBVbmtub3duQ29tbWFuZEV4Y2VwdGlvbiwKKyAgICBV
bmtub3duRXJyb3JFeGNlcHRpb24sCisgICAgVW5rbm93bk1ldGhvZEV4Y2VwdGlvbiwKKyAgICBV
bnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiwKKyAgICBXZWJEcml2ZXJFeGNlcHRpb24pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMGQyMjM4MmM4OThhNWJmOWZkYzRlODlmYzZiNDlmYjUyMmE3MTM0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQpAQCAtMCwwICsxLDcwMSBA
QAoraW1wb3J0IHVybHBhcnNlCisKK2ltcG9ydCBlcnJvcgoraW1wb3J0IHByb3RvY29sCitpbXBv
cnQgdHJhbnNwb3J0CisKK2Zyb20gc2l4IGltcG9ydCBzdHJpbmdfdHlwZXMKKworCitkZWYgY29t
bWFuZChmdW5jKToKKyAgICBkZWYgaW5uZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAic2Vzc2lvbiIpOgorICAgICAgICAgICAgc2Vzc2lvbiA9IHNl
bGYuc2Vzc2lvbgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2Vzc2lvbiA9IHNlbGYKKwor
ICAgICAgICBpZiBzZXNzaW9uLnNlc3Npb25faWQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlc3Np
b24uc3RhcnQoKQorICAgICAgICBhc3NlcnQgc2Vzc2lvbi5zZXNzaW9uX2lkIGlzIG5vdCBOb25l
CisKKyAgICAgICAgcmV0dXJuIGZ1bmMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgaW5u
ZXIuX19uYW1lX18gPSBmdW5jLl9fbmFtZV9fCisgICAgaW5uZXIuX19kb2NfXyA9IGZ1bmMuX19k
b2NfXworCisgICAgcmV0dXJuIGlubmVyCisKKworY2xhc3MgVGltZW91dHMob2JqZWN0KToKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbgorCisgICAgZGVmIF9nZXQoc2VsZiwga2V5PU5vbmUpOgorICAgICAgICB0aW1lb3V0
cyA9IHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInRpbWVvdXRzIikK
KyAgICAgICAgaWYga2V5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHRpbWVvdXRz
W2tleV0KKyAgICAgICAgcmV0dXJuIHRpbWVvdXRzCisKKyAgICBkZWYgX3NldChzZWxmLCBrZXks
IHNlY3MpOgorICAgICAgICBib2R5ID0ge2tleTogc2VjcyAqIDEwMDB9CisgICAgICAgIHRpbWVv
dXRzID0gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgInRpbWVvdXRz
IiwgYm9keSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBz
Y3JpcHQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9nZXQoInNjcmlwdCIpCisKKyAgICBA
c2NyaXB0LnNldHRlcgorICAgIGRlZiBzY3JpcHQoc2VsZiwgc2Vjcyk6CisgICAgICAgIHJldHVy
biBzZWxmLl9zZXQoInNjcmlwdCIsIHNlY3MpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFn
ZV9sb2FkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0KCJwYWdlTG9hZCIpCisKKyAg
ICBAcGFnZV9sb2FkLnNldHRlcgorICAgIGRlZiBwYWdlX2xvYWQoc2VsZiwgc2Vjcyk6CisgICAg
ICAgIHJldHVybiBzZWxmLl9zZXQoInBhZ2VMb2FkIiwgc2VjcykKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBpbXBsaWNpdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dldCgiaW1wbGlj
aXQiKQorCisgICAgQGltcGxpY2l0LnNldHRlcgorICAgIGRlZiBpbXBsaWNpdChzZWxmLCBzZWNz
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NldCgiaW1wbGljaXQiLCBzZWNzKQorCisgICAgZGVm
IF9fc3RyX18oc2VsZik6CisgICAgICAgIG5hbWUgPSAiJXMuJXMiICUgKHNlbGYuX19tb2R1bGVf
Xywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgIHJldHVybiAiPCVzIHNjcmlwdD0l
ZCwgbG9hZD0lZCwgaW1wbGljaXQ9JWQ+IiAlIFwKKyAgICAgICAgICAgIChuYW1lLCBzZWxmLnNj
cmlwdCwgc2VsZi5wYWdlX2xvYWQsIHNlbGYuaW1wbGljaXQpCisKKworY2xhc3MgQWN0aW9uU2Vx
dWVuY2Uob2JqZWN0KToKKyAgICAiIiJBUEkgZm9yIGNyZWF0aW5nIGFuZCBwZXJmb3JtaW5nIGFj
dGlvbiBzZXF1ZW5jZXMuCisKKyAgICBFYWNoIGFjdGlvbiBtZXRob2QgYWRkcyBvbmUgb3IgbW9y
ZSBhY3Rpb25zIHRvIGEgcXVldWUuIFdoZW4gcGVyZm9ybSgpCisgICAgaXMgY2FsbGVkLCB0aGUg
cXVldWVkIGFjdGlvbnMgZmlyZSBpbiBvcmRlci4KKworICAgIE1heSBiZSBjaGFpbmVkIHRvZ2V0
aGVyIGFzIGluOjoKKworICAgICAgICAgQWN0aW9uU2VxdWVuY2Uoc2Vzc2lvbiwgImtleSIsIGlk
KSBcCisgICAgICAgICAgICAua2V5X2Rvd24oImEiKSBcCisgICAgICAgICAgICAua2V5X3VwKCJh
IikgXAorICAgICAgICAgICAgLnBlcmZvcm0oKQorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBzZXNzaW9uLCBhY3Rpb25fdHlwZSwgaW5wdXRfaWQsIHBvaW50ZXJfcGFyYW1zPU5vbmUp
OgorICAgICAgICAiIiJSZXByZXNlbnRzIGEgc2VxdWVuY2Ugb2YgYWN0aW9ucyBvZiBvbmUgdHlw
ZSBmb3Igb25lIGlucHV0IHNvdXJjZS4KKworICAgICAgICA6cGFyYW0gc2Vzc2lvbjogV2ViRHJp
dmVyIHNlc3Npb24uCisgICAgICAgIDpwYXJhbSBhY3Rpb25fdHlwZTogQWN0aW9uIHR5cGU7IG1h
eSBiZSAibm9uZSIsICJrZXkiLCBvciAicG9pbnRlciIuCisgICAgICAgIDpwYXJhbSBpbnB1dF9p
ZDogSUQgb2YgaW5wdXQgc291cmNlLgorICAgICAgICA6cGFyYW0gcG9pbnRlcl9wYXJhbXM6IE9w
dGlvbmFsIGRpY3Rpb25hcnkgb2YgcG9pbnRlciBwYXJhbWV0ZXJzLgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorICAgICAgICBzZWxmLl9pZCA9IGlucHV0X2lk
CisgICAgICAgIHNlbGYuX3R5cGUgPSBhY3Rpb25fdHlwZQorICAgICAgICBzZWxmLl9hY3Rpb25z
ID0gW10KKyAgICAgICAgc2VsZi5fcG9pbnRlcl9wYXJhbXMgPSBwb2ludGVyX3BhcmFtcworCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGRpY3Qoc2VsZik6CisgICAgICAgIGQgPSB7CisgICAgICAg
ICAgICAidHlwZSI6IHNlbGYuX3R5cGUsCisgICAgICAgICAgICAiaWQiOiBzZWxmLl9pZCwKKyAg
ICAgICAgICAgICJhY3Rpb25zIjogc2VsZi5fYWN0aW9ucywKKyAgICAgICAgfQorICAgICAgICBp
ZiBzZWxmLl9wb2ludGVyX3BhcmFtcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRbInBhcmFt
ZXRlcnMiXSA9IHNlbGYuX3BvaW50ZXJfcGFyYW1zCisgICAgICAgIHJldHVybiBkCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBwZXJmb3JtKHNlbGYpOgorICAgICAgICAiIiJQZXJmb3JtIGFsbCBx
dWV1ZWQgYWN0aW9ucy4iIiIKKyAgICAgICAgc2VsZi5zZXNzaW9uLmFjdGlvbnMucGVyZm9ybShb
c2VsZi5kaWN0XSkKKworICAgIGRlZiBfa2V5X2FjdGlvbihzZWxmLCBzdWJ0eXBlLCB2YWx1ZSk6
CisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6IHN1YnR5cGUsICJ2YWx1ZSI6
IHZhbHVlfSkKKworICAgIGRlZiBfcG9pbnRlcl9hY3Rpb24oc2VsZiwgc3VidHlwZSwgYnV0dG9u
KToKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogc3VidHlwZSwgImJ1dHRv
biI6IGJ1dHRvbn0pCisKKyAgICBkZWYgcGF1c2Uoc2VsZiwgZHVyYXRpb24pOgorICAgICAgICBz
ZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiAicGF1c2UiLCAiZHVyYXRpb24iOiBkdXJhdGlv
bn0pCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgcG9pbnRlcl9tb3ZlKHNlbGYsIHgs
IHksIGR1cmF0aW9uPU5vbmUsIG9yaWdpbj1Ob25lKToKKyAgICAgICAgIiIiUXVldWUgYSBwb2lu
dGVyTW92ZSBhY3Rpb24uCisKKyAgICAgICAgOnBhcmFtIHg6IERlc3RpbmF0aW9uIHgtYXhpcyBj
b29yZGluYXRlIG9mIHBvaW50ZXIgaW4gQ1NTIHBpeGVscy4KKyAgICAgICAgOnBhcmFtIHk6IERl
c3RpbmF0aW9uIHktYXhpcyBjb29yZGluYXRlIG9mIHBvaW50ZXIgaW4gQ1NTIHBpeGVscy4KKyAg
ICAgICAgOnBhcmFtIGR1cmF0aW9uOiBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIG92ZXIgd2hpY2gg
dG8gZGlzdHJpYnV0ZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlLiBJZiBOb25l
LCByZW1vdGUgZW5kIGRlZmF1bHRzIHRvIDAuCisgICAgICAgIDpwYXJhbSBvcmlnaW46IE9yaWdp
biBvZiBjb29yZGluYXRlcywgZWl0aGVyICJ2aWV3cG9ydCIsICJwb2ludGVyIiBvcgorICAgICAg
ICAgICAgICAgICAgICAgICBhbiBFbGVtZW50LiBJZiBOb25lLCByZW1vdGUgZW5kIGRlZmF1bHRz
IHRvICJ2aWV3cG9ydCIuCisgICAgICAgICIiIgorICAgICAgICBhY3Rpb24gPSB7CisgICAgICAg
ICAgICAidHlwZSI6ICJwb2ludGVyTW92ZSIsCisgICAgICAgICAgICAieCI6IHgsCisgICAgICAg
ICAgICAieSI6IHkKKyAgICAgICAgfQorICAgICAgICBpZiBkdXJhdGlvbiBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIGFjdGlvblsiZHVyYXRpb24iXSA9IGR1cmF0aW9uCisgICAgICAgIGlmIG9y
aWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4K
KyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoYWN0aW9uKQorICAgICAgICByZXR1cm4gc2Vs
ZgorCisgICAgZGVmIHBvaW50ZXJfdXAoc2VsZiwgYnV0dG9uPTApOgorICAgICAgICAiIiJRdWV1
ZSBhIHBvaW50ZXJVcCBhY3Rpb24gZm9yIGBidXR0b25gLgorCisgICAgICAgIDpwYXJhbSBidXR0
b246IFBvaW50ZXIgYnV0dG9uIHRvIHBlcmZvcm0gYWN0aW9uIHdpdGguCisgICAgICAgICAgICAg
ICAgICAgICAgIERlZmF1bHQ6IDAsIHdoaWNoIHJlcHJlc2VudHMgbWFpbiBkZXZpY2UgYnV0dG9u
LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rpb24oInBvaW50ZXJVcCIs
IGJ1dHRvbikKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBwb2ludGVyX2Rvd24oc2Vs
ZiwgYnV0dG9uPTApOgorICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJEb3duIGFjdGlvbiBmb3Ig
YGJ1dHRvbmAuCisKKyAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVy
Zm9ybSBhY3Rpb24gd2l0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hp
Y2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCisgICAgICAgICIiIgorICAgICAgICBz
ZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlckRvd24iLCBidXR0b24pCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgY2xpY2soc2VsZiwgZWxlbWVudD1Ob25lLCBidXR0b249MCk6Cisg
ICAgICAgICIiIlF1ZXVlIGEgY2xpY2sgd2l0aCB0aGUgc3BlY2lmaWVkIGJ1dHRvbi4KKworICAg
ICAgICBJZiBhbiBlbGVtZW50IGlzIGdpdmVuLCBtb3ZlIHRoZSBwb2ludGVyIHRvIHRoYXQgZWxl
bWVudCBmaXJzdCwKKyAgICAgICAgb3RoZXJ3aXNlIGNsaWNrIGN1cnJlbnQgcG9pbnRlciBjb29y
ZGluYXRlcy4KKworICAgICAgICA6cGFyYW0gZWxlbWVudDogT3B0aW9uYWwgZWxlbWVudCB0byBj
bGljay4KKyAgICAgICAgOnBhcmFtIGJ1dHRvbjogSW50ZWdlciByZXByZXNlbnRpbmcgcG9pbnRl
ciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgd2l0aC4g
RGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCisgICAgICAg
ICIiIgorICAgICAgICBpZiBlbGVtZW50OgorICAgICAgICAgICAgc2VsZi5wb2ludGVyX21vdmUo
MCwgMCwgb3JpZ2luPWVsZW1lbnQpCisgICAgICAgIHJldHVybiBzZWxmLnBvaW50ZXJfZG93bihi
dXR0b24pLnBvaW50ZXJfdXAoYnV0dG9uKQorCisgICAgZGVmIGtleV91cChzZWxmLCB2YWx1ZSk6
CisgICAgICAgICIiIlF1ZXVlIGEga2V5VXAgYWN0aW9uIGZvciBgdmFsdWVgLgorCisgICAgICAg
IDpwYXJhbSB2YWx1ZTogQ2hhcmFjdGVyIHRvIHBlcmZvcm0ga2V5IGFjdGlvbiB3aXRoLgorICAg
ICAgICAiIiIKKyAgICAgICAgc2VsZi5fa2V5X2FjdGlvbigia2V5VXAiLCB2YWx1ZSkKKyAgICAg
ICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBrZXlfZG93bihzZWxmLCB2YWx1ZSk6CisgICAgICAg
ICIiIlF1ZXVlIGEga2V5RG93biBhY3Rpb24gZm9yIGB2YWx1ZWAuCisKKyAgICAgICAgOnBhcmFt
IHZhbHVlOiBDaGFyYWN0ZXIgdG8gcGVyZm9ybSBrZXkgYWN0aW9uIHdpdGguCisgICAgICAgICIi
IgorICAgICAgICBzZWxmLl9rZXlfYWN0aW9uKCJrZXlEb3duIiwgdmFsdWUpCisgICAgICAgIHJl
dHVybiBzZWxmCisKKyAgICBkZWYgc2VuZF9rZXlzKHNlbGYsIGtleXMpOgorICAgICAgICAiIiJR
dWV1ZSBhIGtleURvd24gYW5kIGtleVVwIGFjdGlvbiBmb3IgZWFjaCBjaGFyYWN0ZXIgaW4gYGtl
eXNgLgorCisgICAgICAgIDpwYXJhbSBrZXlzOiBTdHJpbmcgb2Yga2V5cyB0byBwZXJmb3JtIGtl
eSBhY3Rpb25zIHdpdGguCisgICAgICAgICIiIgorICAgICAgICBmb3IgYyBpbiBrZXlzOgorICAg
ICAgICAgICAgc2VsZi5rZXlfZG93bihjKQorICAgICAgICAgICAgc2VsZi5rZXlfdXAoYykKKyAg
ICAgICAgcmV0dXJuIHNlbGYKKworCitjbGFzcyBBY3Rpb25zKG9iamVjdCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHNlc3Npb24pOgorICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCisK
KyAgICBAY29tbWFuZAorICAgIGRlZiBwZXJmb3JtKHNlbGYsIGFjdGlvbnM9Tm9uZSk6CisgICAg
ICAgICIiIlBlcmZvcm1zIGFjdGlvbnMgYnkgdGljayBmcm9tIGVhY2ggYWN0aW9uIHNlcXVlbmNl
IGluIGBhY3Rpb25zYC4KKworICAgICAgICA6cGFyYW0gYWN0aW9uczogTGlzdCBvZiBpbnB1dCBz
b3VyY2UgYWN0aW9uIHNlcXVlbmNlcy4gQSBzaW5nbGUgYWN0aW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICBzZXF1ZW5jZSBtYXkgYmUgY3JlYXRlZCB3aXRoIHRoZSBoZWxwIG9mCisgICAgICAg
ICAgICAgICAgICAgICAgICBgYEFjdGlvblNlcXVlbmNlLmRpY3RgYC4KKyAgICAgICAgIiIiCisg
ICAgICAgIGJvZHkgPSB7ImFjdGlvbnMiOiBbXSBpZiBhY3Rpb25zIGlzIE5vbmUgZWxzZSBhY3Rp
b25zfQorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQ
T1NUIiwgImFjdGlvbnMiLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgcmVsZWFzZShz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgi
REVMRVRFIiwgImFjdGlvbnMiKQorCisgICAgZGVmIHNlcXVlbmNlKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgICIiIlJldHVybiBhbiBlbXB0eSBBY3Rpb25TZXF1ZW5jZSBvZiB0aGUg
ZGVzaWduYXRlZCB0eXBlLgorCisgICAgICAgIFNlZSBBY3Rpb25TZXF1ZW5jZSBmb3IgcGFyYW1l
dGVyIGxpc3QuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gQWN0aW9uU2VxdWVuY2Uoc2Vs
Zi5zZXNzaW9uLCAqYXJncywgKiprd2FyZ3MpCisKKworY2xhc3MgV2luZG93KG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgorICAgICAgICBzZWxmLnNlc3Npb24gPSBz
ZXNzaW9uCisKKyAgICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiByZWN0KHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQi
LCAid2luZG93L3JlY3QiKQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYg
c2l6ZShzZWxmKToKKyAgICAgICAgIiIiR2V0cyB0aGUgd2luZG93IHNpemUgYXMgYSB0dXBsZSBv
ZiBgKHdpZHRoLCBoZWlnaHQpYC4iIiIKKyAgICAgICAgcmVjdCA9IHNlbGYucmVjdAorICAgICAg
ICByZXR1cm4gKHJlY3RbIndpZHRoIl0sIHJlY3RbImhlaWdodCJdKQorCisgICAgQHNpemUuc2V0
dGVyCisgICAgQGNvbW1hbmQKKyAgICBkZWYgc2l6ZShzZWxmLCBuZXdfc2l6ZSk6CisgICAgICAg
ICIiIlNldCB3aW5kb3cgc2l6ZSBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh3aWR0aCwgaGVpZ2h0
KWAuIiIiCisgICAgICAgIHdpZHRoLCBoZWlnaHQgPSBuZXdfc2l6ZQorICAgICAgICBib2R5ID0g
eyJ3aWR0aCI6IHdpZHRoLCAiaGVpZ2h0IjogaGVpZ2h0fQorICAgICAgICBzZWxmLnNlc3Npb24u
c2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2luZG93L3JlY3QiLCBib2R5KQorCisgICAg
QHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYgcG9zaXRpb24oc2VsZik6CisgICAgICAg
ICIiIkdldHMgdGhlIHdpbmRvdyBwb3NpdGlvbiBhcyBhIHR1cGxlIG9mIGAoeCwgeSlgLiIiIgor
ICAgICAgICByZWN0ID0gc2VsZi5yZWN0CisgICAgICAgIHJldHVybiAocmVjdFsieCJdLCByZWN0
WyJ5Il0pCisKKyAgICBAcG9zaXRpb24uc2V0dGVyCisgICAgQGNvbW1hbmQKKyAgICBkZWYgcG9z
aXRpb24oc2VsZiwgbmV3X3Bvc2l0aW9uKToKKyAgICAgICAgIiIiU2V0IHdpbmRvdyBwb3NpdGlv
biBieSBwYXNzaW5nIGEgdHVwbGUgb2YgYCh4LCB5KWAuIiIiCisgICAgICAgIHgsIHkgPSBuZXdf
cG9zaXRpb24KKyAgICAgICAgYm9keSA9IHsieCI6IHgsICJ5IjogeX0KKyAgICAgICAgc2VsZi5z
ZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9yZWN0IiwgYm9keSkK
KworICAgIEBjb21tYW5kCisgICAgZGVmIG1heGltaXplKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRvdy9tYXhpbWl6
ZSIpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBtaW5pbWl6ZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3aW5kb3cvbWlu
aW1pemUiKQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZnVsbHNjcmVlbihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3aW5k
b3cvZnVsbHNjcmVlbiIpCisKKworY2xhc3MgRmluZChvYmplY3QpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAg
QGNvbW1hbmQKKyAgICBkZWYgY3NzKHNlbGYsIHNlbGVjdG9yLCBhbGw9VHJ1ZSk6CisgICAgICAg
IHJldHVybiBzZWxmLl9maW5kX2VsZW1lbnQoImNzcyBzZWxlY3RvciIsIHNlbGVjdG9yLCBhbGwp
CisKKyAgICBkZWYgX2ZpbmRfZWxlbWVudChzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IsIGFsbCk6
CisgICAgICAgIHJvdXRlID0gImVsZW1lbnRzIiBpZiBhbGwgZWxzZSAiZWxlbWVudCIKKyAgICAg
ICAgYm9keSA9IHsidXNpbmciOiBzdHJhdGVneSwKKyAgICAgICAgICAgICAgICAidmFsdWUiOiBz
ZWxlY3Rvcn0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFu
ZCgiUE9TVCIsIHJvdXRlLCBib2R5KQorCisKK2NsYXNzIENvb2tpZXMob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Np
b24KKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBuYW1lKToKKyAgICAgICAgc2VsZi5zZXNz
aW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAiY29va2llLyVzIiAlIG5hbWUsIHt9KQor
CisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgY29va2ll
ID0geyJuYW1lIjogbmFtZSwKKyAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IE5vbmV9CisKKyAg
ICAgICAgaWYgaXNpbnN0YW5jZShuYW1lLCBzdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgY29v
a2llWyJ2YWx1ZSJdID0gdmFsdWUKKyAgICAgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAidmFsdWUi
KToKKyAgICAgICAgICAgIGNvb2tpZVsidmFsdWUiXSA9IHZhbHVlLnZhbHVlCisgICAgICAgIHNl
bGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJjb29raWUvJXMiICUgbmFt
ZSwge30pCisKKworY2xhc3MgVXNlclByb21wdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQGNv
bW1hbmQKKyAgICBkZWYgZGlzbWlzcyhzZWxmKToKKyAgICAgICAgc2VsZi5zZXNzaW9uLnNlbmRf
c2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2Rpc21pc3MiKQorCisgICAgQGNvbW1hbmQK
KyAgICBkZWYgYWNjZXB0KHNlbGYpOgorICAgICAgICBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9u
X2NvbW1hbmQoIlBPU1QiLCAiYWxlcnQvYWNjZXB0IikKKworICAgIEBwcm9wZXJ0eQorICAgIEBj
b21tYW5kCisgICAgZGVmIHRleHQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24u
c2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJhbGVydC90ZXh0IikKKworICAgIEB0ZXh0LnNl
dHRlcgorICAgIEBjb21tYW5kCisgICAgZGVmIHRleHQoc2VsZiwgdmFsdWUpOgorICAgICAgICBi
b2R5ID0geyJ2YWx1ZSI6IGxpc3QodmFsdWUpfQorICAgICAgICBzZWxmLnNlc3Npb24uc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiYWxlcnQvdGV4dCIsIGJvZHk9Ym9keSkKKworCitjbGFz
cyBTZXNzaW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAg
ICAgIGhvc3QsCisgICAgICAgICAgICAgICAgIHBvcnQsCisgICAgICAgICAgICAgICAgIHVybF9w
cmVmaXg9Ii8iLAorICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgdGltZW91dD1Ob25lLAorICAgICAgICAgICAgICAgICBleHRlbnNpb249Tm9uZSk6
CisgICAgICAgIHNlbGYudHJhbnNwb3J0ID0gdHJhbnNwb3J0LkhUVFBXaXJlUHJvdG9jb2woCisg
ICAgICAgICAgICBob3N0LCBwb3J0LCB1cmxfcHJlZml4LCB0aW1lb3V0PXRpbWVvdXQpCisgICAg
ICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCisgICAgICAgIHNlbGYuc2Vzc2lv
bl9pZCA9IE5vbmUKKyAgICAgICAgc2VsZi50aW1lb3V0cyA9IE5vbmUKKyAgICAgICAgc2VsZi53
aW5kb3cgPSBOb25lCisgICAgICAgIHNlbGYuZmluZCA9IE5vbmUKKyAgICAgICAgc2VsZi5fZWxl
bWVudF9jYWNoZSA9IHt9CisgICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gTm9uZQorICAgICAgICBz
ZWxmLmV4dGVuc2lvbl9jbHMgPSBleHRlbnNpb24KKworICAgICAgICBzZWxmLnRpbWVvdXRzID0g
VGltZW91dHMoc2VsZikKKyAgICAgICAgc2VsZi53aW5kb3cgPSBXaW5kb3coc2VsZikKKyAgICAg
ICAgc2VsZi5maW5kID0gRmluZChzZWxmKQorICAgICAgICBzZWxmLmFsZXJ0ID0gVXNlclByb21w
dChzZWxmKQorICAgICAgICBzZWxmLmFjdGlvbnMgPSBBY3Rpb25zKHNlbGYpCisKKyAgICBkZWYg
X19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChzZWxmLnNlc3Npb25faWQgaXMg
bm90IE5vbmUgYW5kIGlzaW5zdGFuY2Uob3RoZXIsIFNlc3Npb24pIGFuZAorICAgICAgICAgICAg
ICAgIHNlbGYuc2Vzc2lvbl9pZCA9PSBvdGhlci5zZXNzaW9uX2lkKQorCisgICAgZGVmIF9fZW50
ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5zdGFydCgpCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5l
bmQoKQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIHNlbGYuZW5kKCkKKworICAg
IGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uX2lkIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgYm9keSA9IHt9CisKKyAgICAgICAgaWYg
c2VsZi5jYXBhYmlsaXRpZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBib2R5WyJjYXBhYmls
aXRpZXMiXSA9IHNlbGYuY2FwYWJpbGl0aWVzCisKKyAgICAgICAgdmFsdWUgPSBzZWxmLnNlbmRf
Y29tbWFuZCgiUE9TVCIsICJzZXNzaW9uIiwgYm9keT1ib2R5KQorICAgICAgICBzZWxmLnNlc3Np
b25faWQgPSB2YWx1ZVsic2Vzc2lvbklkIl0KKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSB2
YWx1ZVsiY2FwYWJpbGl0aWVzIl0KKworICAgICAgICBpZiBzZWxmLmV4dGVuc2lvbl9jbHM6Cisg
ICAgICAgICAgICBzZWxmLmV4dGVuc2lvbiA9IHNlbGYuZXh0ZW5zaW9uX2NscyhzZWxmKQorCisg
ICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIGVuZChzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5zZXNzaW9uX2lkIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB1cmwg
PSAic2Vzc2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQKKyAgICAgICAgc2VsZi5zZW5kX2NvbW1h
bmQoIkRFTEVURSIsIHVybCkKKworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCisKKyAg
ICBkZWYgc2VuZF9jb21tYW5kKHNlbGYsIG1ldGhvZCwgdXJsLCBib2R5PU5vbmUpOgorICAgICAg
ICAiIiIKKyAgICAgICAgU2VuZCBhIGNvbW1hbmQgdG8gdGhlIHJlbW90ZSBlbmQgYW5kIHZhbGlk
YXRlIGl0cyBzdWNjZXNzLgorCisgICAgICAgIDpwYXJhbSBtZXRob2Q6IEhUVFAgbWV0aG9kIHRv
IHVzZSBpbiByZXF1ZXN0LgorICAgICAgICA6cGFyYW0gdXJpOiAiQ29tbWFuZCBwYXJ0IiBvZiB0
aGUgSFRUUCByZXF1ZXN0IFVSTCwKKyAgICAgICAgICAgIGUuZy4gYHdpbmRvdy9yZWN0YC4KKyAg
ICAgICAgOnBhcmFtIGJvZHk6IE9wdGlvbmFsIGJvZHkgb2YgdGhlIEhUVFAgcmVxdWVzdC4KKwor
ICAgICAgICA6cmV0dXJuOiBgTm9uZWAgaWYgdGhlIEhUVFAgcmVzcG9uc2UgYm9keSB3YXMgZW1w
dHksIG90aGVyd2lzZQorICAgICAgICAgICAgdGhlIGB2YWx1ZWAgZmllbGQgcmV0dXJuZWQgYWZ0
ZXIgcGFyc2luZyB0aGUgcmVzcG9uc2UKKyAgICAgICAgICAgIGJvZHkgYXMgSlNPTi4KKworICAg
ICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIHRoZSByZXNwb25zZSBib2R5IGRvZXMgbm90IGNv
bnRhaW4gYQorICAgICAgICAgICAgYHZhbHVlYCBrZXkuCisgICAgICAgIDpyYWlzZXMgZXJyb3Iu
V2ViRHJpdmVyRXhjZXB0aW9uOiBJZiB0aGUgcmVtb3RlIGVuZCByZXR1cm5zCisgICAgICAgICAg
ICBhbiBlcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50cmFuc3Bv
cnQuc2VuZCgKKyAgICAgICAgICAgIG1ldGhvZCwgdXJsLCBib2R5LAorICAgICAgICAgICAgZW5j
b2Rlcj1wcm90b2NvbC5FbmNvZGVyLCBkZWNvZGVyPXByb3RvY29sLkRlY29kZXIsCisgICAgICAg
ICAgICBzZXNzaW9uPXNlbGYpCisKKyAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzICE9IDIwMDoK
KyAgICAgICAgICAgIHJhaXNlIGVycm9yLmZyb21fcmVzcG9uc2UocmVzcG9uc2UpCisKKyAgICAg
ICAgaWYgInZhbHVlIiBpbiByZXNwb25zZS5ib2R5OgorICAgICAgICAgICAgdmFsdWUgPSByZXNw
b25zZS5ib2R5WyJ2YWx1ZSJdCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIEVkZ2UgZG9l
cyBub3QgeWV0IHJldHVybiB0aGUgdzNjIHNlc3Npb24gSUQuCisgICAgICAgICAgICBXZSB3YW50
IHRoZSB0ZXN0cyB0byBydW4gaW4gRWRnZSBhbnl3YXkgdG8gaGVscCB3aXRoIFJFQy4KKyAgICAg
ICAgICAgIEluIG9yZGVyIHRvIHJ1biB0aGUgdGVzdHMgaW4gRWRnZSwgd2UgbmVlZCB0byBoYWNr
IGFyb3VuZAorICAgICAgICAgICAgYnVnOgorICAgICAgICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIu
bWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTQ2NDE5
NzIKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaWYgdXJsID09ICJzZXNzaW9uIiBhbmQg
bWV0aG9kID09ICJQT1NUIiBhbmQgInNlc3Npb25JZCIgaW4gcmVzcG9uc2UuYm9keSBhbmQgInNl
c3Npb25JZCIgbm90IGluIHZhbHVlOgorICAgICAgICAgICAgICAgIHZhbHVlWyJzZXNzaW9uSWQi
XSA9IHJlc3BvbnNlLmJvZHlbInNlc3Npb25JZCJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZCAndmFsdWUnIGtleSBpbiByZXNwb25zZSBib2R5
OlxuIgorICAgICAgICAgICAgICAgICIlcyIgJSByZXNwb25zZSkKKworICAgICAgICByZXR1cm4g
dmFsdWUKKworICAgIGRlZiBzZW5kX3Nlc3Npb25fY29tbWFuZChzZWxmLCBtZXRob2QsIHVyaSwg
Ym9keT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBjb21tYW5kIHRvIGFuIGVz
dGFibGlzaGVkIHNlc3Npb24gYW5kIHZhbGlkYXRlIGl0cyBzdWNjZXNzLgorCisgICAgICAgIDpw
YXJhbSBtZXRob2Q6IEhUVFAgbWV0aG9kIHRvIHVzZSBpbiByZXF1ZXN0LgorICAgICAgICA6cGFy
YW0gdXJsOiAiQ29tbWFuZCBwYXJ0IiBvZiB0aGUgSFRUUCByZXF1ZXN0IFVSTCwKKyAgICAgICAg
ICAgIGUuZy4gYHdpbmRvdy9yZWN0YC4KKyAgICAgICAgOnBhcmFtIGJvZHk6IE9wdGlvbmFsIGJv
ZHkgb2YgdGhlIEhUVFAgcmVxdWVzdC4gIE11c3QgYmUgSlNPTgorICAgICAgICAgICAgc2VyaWFs
aXNhYmxlLgorCisgICAgICAgIDpyZXR1cm46IGBOb25lYCBpZiB0aGUgSFRUUCByZXNwb25zZSBi
b2R5IHdhcyBlbXB0eSwgb3RoZXJ3aXNlCisgICAgICAgICAgICB0aGUgcmVzdWx0IG9mIHBhcnNp
bmcgdGhlIGJvZHkgYXMgSlNPTi4KKworICAgICAgICA6cmFpc2VzIGVycm9yLlNlc3Npb25Ob3RD
cmVhdGVkRXhjZXB0aW9uOiBJZiB0aGVyZSBpcyBubyBhY3RpdmUKKyAgICAgICAgICAgIHNlc3Np
b24uCisgICAgICAgIDpyYWlzZXMgZXJyb3IuV2ViRHJpdmVyRXhjZXB0aW9uOiBJZiB0aGUgcmVt
b3RlIGVuZCByZXR1cm5zCisgICAgICAgICAgICBhbiBlcnJvci4KKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIHNlbGYuc2Vzc2lvbl9pZCBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgZXJyb3Iu
U2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24oKQorCisgICAgICAgIHVybCA9IHVybHBhcnNlLnVy
bGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9pZCwgdXJpKQorICAgICAgICByZXR1
cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHkpCisKKyAgICBAcHJvcGVydHkK
KyAgICBAY29tbWFuZAorICAgIGRlZiB1cmwoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNl
bmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAidXJsIikKKworICAgIEB1cmwuc2V0dGVyCisgICAg
QGNvbW1hbmQKKyAgICBkZWYgdXJsKHNlbGYsIHVybCk6CisgICAgICAgIGlmIHVybHBhcnNlLnVy
bHNwbGl0KHVybCkubmV0bG9jIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi51cmwo
dXJsKQorICAgICAgICBib2R5ID0geyJ1cmwiOiB1cmx9CisgICAgICAgIHJldHVybiBzZWxmLnNl
bmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgInVybCIsIGJvZHkpCisKKyAgICBAY29tbWFuZAor
ICAgIGRlZiBiYWNrKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiUE9TVCIsICJiYWNrIikKKworICAgIEBjb21tYW5kCisgICAgZGVmIGZvcndhcmQoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImZv
cndhcmQiKQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgcmVmcmVzaChzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAicmVmcmVzaCIpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiB0aXRsZShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ0aXRsZSIpCisKKyAgICBA
cHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiBzb3VyY2Uoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAic291cmNlIikKKworICAgIEBw
cm9wZXJ0eQorICAgIEBjb21tYW5kCisgICAgZGVmIHdpbmRvd19oYW5kbGUoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAid2luZG93IikKKwor
ICAgIEB3aW5kb3dfaGFuZGxlLnNldHRlcgorICAgIEBjb21tYW5kCisgICAgZGVmIHdpbmRvd19o
YW5kbGUoc2VsZiwgaGFuZGxlKToKKyAgICAgICAgYm9keSA9IHsiaGFuZGxlIjogaGFuZGxlfQor
ICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3aW5kb3ci
LCBib2R5PWJvZHkpCisKKyAgICBkZWYgc3dpdGNoX2ZyYW1lKHNlbGYsIGZyYW1lKToKKyAgICAg
ICAgaWYgZnJhbWUgPT0gInBhcmVudCI6CisgICAgICAgICAgICB1cmwgPSAiZnJhbWUvcGFyZW50
IgorICAgICAgICAgICAgYm9keSA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVy
bCA9ICJmcmFtZSIKKyAgICAgICAgICAgIGJvZHkgPSB7ImlkIjogZnJhbWV9CisKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCB1cmwsIGJvZHkpCisKKyAg
ICBAY29tbWFuZAorICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJ3aW5kb3ciKQorCisgICAgQHByb3BlcnR5Cisg
ICAgQGNvbW1hbmQKKyAgICBkZWYgaGFuZGxlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
c2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3aW5kb3cvaGFuZGxlcyIpCisKKyAgICBAcHJv
cGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiBhY3RpdmVfZWxlbWVudChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJlbGVtZW50L2FjdGl2
ZSIpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBjb29raWVzKHNlbGYsIG5hbWU9Tm9uZSk6Cisg
ICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHVybCA9ICJjb29raWUiCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICB1cmwgPSAiY29va2llLyVzIiAlIG5hbWUKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkdFVCIsIHVybCwge30pCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBzZXRfY29va2llKHNlbGYsIG5hbWUsIHZhbHVlLCBwYXRoPU5vbmUs
IGRvbWFpbj1Ob25lLCBzZWN1cmU9Tm9uZSwgZXhwaXJ5PU5vbmUpOgorICAgICAgICBib2R5ID0g
eyJuYW1lIjogbmFtZSwKKyAgICAgICAgICAgICAgICAidmFsdWUiOiB2YWx1ZX0KKyAgICAgICAg
aWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHlbInBhdGgiXSA9IHBhdGgKKyAg
ICAgICAgaWYgZG9tYWluIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYm9keVsiZG9tYWluIl0g
PSBkb21haW4KKyAgICAgICAgaWYgc2VjdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYm9k
eVsic2VjdXJlIl0gPSBzZWN1cmUKKyAgICAgICAgaWYgZXhwaXJ5IGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgYm9keVsiZXhwaXJ5Il0gPSBleHBpcnkKKyAgICAgICAgc2VsZi5zZW5kX3Nlc3Np
b25fY29tbWFuZCgiUE9TVCIsICJjb29raWUiLCB7ImNvb2tpZSI6IGJvZHl9KQorCisgICAgZGVm
IGRlbGV0ZV9jb29raWUoc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgaWYgbmFtZSBpcyBOb25l
OgorICAgICAgICAgICAgdXJsID0gImNvb2tpZSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHVybCA9ICJjb29raWUvJXMiICUgbmFtZQorICAgICAgICBzZWxmLnNlbmRfc2Vzc2lvbl9jb21t
YW5kKCJERUxFVEUiLCB1cmwsIHt9KQorCisgICAgI1suLi5dCisKKyAgICBAY29tbWFuZAorICAg
IGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFyZ3M9Tm9uZSk6CisgICAgICAgIGlm
IGFyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBbXQorCisgICAgICAgIGJvZHkgPSB7
CisgICAgICAgICAgICAic2NyaXB0Ijogc2NyaXB0LAorICAgICAgICAgICAgImFyZ3MiOiBhcmdz
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBP
U1QiLCAiZXhlY3V0ZS9zeW5jIiwgYm9keSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIGV4ZWN1
dGVfYXN5bmNfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXJncz1Ob25lKToKKyAgICAgICAgaWYgYXJn
cyBpcyBOb25lOgorICAgICAgICAgICAgYXJncyA9IFtdCisKKyAgICAgICAgYm9keSA9IHsKKyAg
ICAgICAgICAgICJzY3JpcHQiOiBzY3JpcHQsCisgICAgICAgICAgICAiYXJncyI6IGFyZ3MKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIs
ICJleGVjdXRlL2FzeW5jIiwgYm9keSkKKworICAgICNbLi4uXQorCisgICAgQGNvbW1hbmQKKyAg
ICBkZWYgc2NyZWVuc2hvdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9u
X2NvbW1hbmQoIkdFVCIsICJzY3JlZW5zaG90IikKKworCitjbGFzcyBFbGVtZW50KG9iamVjdCk6
CisgICAgIiIiCisgICAgUmVwcmVzZW50YXRpb24gb2YgYSB3ZWIgZWxlbWVudC4KKworICAgIEEg
d2ViIGVsZW1lbnQgaXMgYW4gYWJzdHJhY3Rpb24gdXNlZCB0byBpZGVudGlmeSBhbiBlbGVtZW50
IHdoZW4KKyAgICBpdCBpcyB0cmFuc3BvcnRlZCB2aWEgdGhlIHByb3RvY29sLCBiZXR3ZWVuIHJl
bW90ZS0gYW5kIGxvY2FsIGVuZHMuCisgICAgIiIiCisgICAgaWRlbnRpZmllciA9ICJlbGVtZW50
LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBp
ZCwgc2Vzc2lvbik6CisgICAgICAgICIiIgorICAgICAgICBDb25zdHJ1Y3QgYSBuZXcgd2ViIGVs
ZW1lbnQgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgOnBhcmFtIGlkOiBXZWIgZWxlbWVudCBV
VUlEIHdoaWNoIG11c3QgYmUgdW5pcXVlIGFjcm9zcworICAgICAgICAgICAgYWxsIGJyb3dzaW5n
IGNvbnRleHRzLgorICAgICAgICA6cGFyYW0gc2Vzc2lvbjogQ3VycmVudCBgYHdlYmRyaXZlci5T
ZXNzaW9uYGAuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmlkID0gaWQKKyAgICAgICAgc2Vs
Zi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgICAgIGFzc2VydCBpZCBub3QgaW4gc2VsZi5zZXNz
aW9uLl9lbGVtZW50X2NhY2hlCisgICAgICAgIHNlbGYuc2Vzc2lvbi5fZWxlbWVudF9jYWNoZVtz
ZWxmLmlkXSA9IHNlbGYKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBy
ZXR1cm4gKGlzaW5zdGFuY2Uob3RoZXIsIEVsZW1lbnQpIGFuZCBzZWxmLmlkID09IG90aGVyLmlk
IGFuZAorICAgICAgICAgICAgICAgIHNlbGYuc2Vzc2lvbiA9PSBvdGhlci5zZXNzaW9uKQorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgor
ICAgICAgICBhc3NlcnQgRWxlbWVudC5pZGVudGlmaWVyIGluIGpzb24KKyAgICAgICAgdXVpZCA9
IGpzb25bRWxlbWVudC5pZGVudGlmaWVyXQorICAgICAgICBpZiB1dWlkIGluIHNlc3Npb24uX2Vs
ZW1lbnRfY2FjaGU6CisgICAgICAgICAgICByZXR1cm4gc2Vzc2lvbi5fZWxlbWVudF9jYWNoZVt1
dWlkXQorICAgICAgICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCisKKyAgICBkZWYgc2VuZF9l
bGVtZW50X2NvbW1hbmQoc2VsZiwgbWV0aG9kLCB1cmksIGJvZHk9Tm9uZSk6CisgICAgICAgIHVy
bCA9ICJlbGVtZW50LyVzLyVzIiAlIChzZWxmLmlkLCB1cmkpCisgICAgICAgIHJldHVybiBzZWxm
LnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHkpCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBmaW5kX2VsZW1lbnQoc2VsZiwgc3RyYXRlZ3ksIHNlbGVjdG9yKToK
KyAgICAgICAgYm9keSA9IHsidXNpbmciOiBzdHJhdGVneSwKKyAgICAgICAgICAgICAgICAidmFs
dWUiOiBzZWxlY3Rvcn0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQo
IlBPU1QiLCAiZWxlbWVudCIsIGJvZHkpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBjbGljayhz
ZWxmKToKKyAgICAgICAgc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiUE9TVCIsICJjbGljayIs
IHt9KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgdGFwKHNlbGYpOgorICAgICAgICBzZWxmLnNl
bmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgInRhcCIsIHt9KQorCisgICAgQGNvbW1hbmQKKyAg
ICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIlBP
U1QiLCBzZWxmLnVybCgiY2xlYXIiKSwge30pCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBzZW5k
X2tleXMoc2VsZiwgdGV4dCk6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21t
YW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ0ZXh0IjogdGV4dH0pCisKKyAgICBAcHJvcGVydHkKKyAg
ICBAY29tbWFuZAorICAgIGRlZiB0ZXh0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5k
X2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInRleHQiKQorCisgICAgQHByb3BlcnR5CisgICAgQGNv
bW1hbmQKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVt
ZW50X2NvbW1hbmQoIkdFVCIsICJuYW1lIikKKworICAgIEBjb21tYW5kCisgICAgZGVmIHN0eWxl
KHNlbGYsIHByb3BlcnR5X25hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRf
Y29tbWFuZCgiR0VUIiwgImNzcy8lcyIgJSBwcm9wZXJ0eV9uYW1lKQorCisgICAgQHByb3BlcnR5
CisgICAgQGNvbW1hbmQKKyAgICBkZWYgcmVjdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
c2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJyZWN0IikKKworICAgIEBwcm9wZXJ0eQorICAg
IEBjb21tYW5kCisgICAgZGVmIHNlbGVjdGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5z
ZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInNlbGVjdGVkIikKKworICAgIEBjb21tYW5kCisg
ICAgZGVmIGF0dHJpYnV0ZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9l
bGVtZW50X2NvbW1hbmQoIkdFVCIsICJhdHRyaWJ1dGUvJXMiICUgbmFtZSkKKworICAgICMgVGhp
cyBNVVNUIGNvbWUgbGFzdCBiZWNhdXNlIG90aGVyd2lzZSBAcHJvcGVydHkgZGVjb3JhdG9ycyBh
Ym92ZQorICAgICMgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IHRoaXMuCisgICAgQGNvbW1hbmQKKyAg
ICBkZWYgcHJvcGVydHkoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxl
bWVudF9jb21tYW5kKCJHRVQiLCAicHJvcGVydHkvJXMiICUgbmFtZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVy
L3dlYmRyaXZlci9lcnJvci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
Y2ZlODkxMGM1MTU3OGVmZjZiNGViODlhOTk2MWYyMjBmMGE5ZmU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CkBAIC0wLDAgKzEsMTk2IEBACitpbXBvcnQgY29sbGVj
dGlvbnMKK2ltcG9ydCBqc29uCisKKworY2xhc3MgV2ViRHJpdmVyRXhjZXB0aW9uKEV4Y2VwdGlv
bik6CisgICAgaHR0cF9zdGF0dXMgPSBOb25lCisgICAgc3RhdHVzX2NvZGUgPSBOb25lCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSwgc3RhY2t0cmFjZT1Ob25lKToKKyAgICAgICAg
c3VwZXIoV2ViRHJpdmVyRXhjZXB0aW9uLCBzZWxmKQorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBt
ZXNzYWdlCisgICAgICAgIHNlbGYuc3RhY2t0cmFjZSA9IHN0YWNrdHJhY2UKKworICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8JXMgaHR0cF9zdGF0dXM9JXM+IiAlIChz
ZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5odHRwX3N0YXR1cykKKworICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgorICAgICAgICBtZXNzYWdlID0gIiVzICglcyk6ICVzXG4iICUgKHNlbGYuc3Rh
dHVzX2NvZGUsIHNlbGYuaHR0cF9zdGF0dXMsIHNlbGYubWVzc2FnZSkKKyAgICAgICAgaWYgc2Vs
Zi5zdGFja3RyYWNlOgorICAgICAgICAgICAgbWVzc2FnZSArPSAoIlxuIgorICAgICAgICAgICAg
IlJlbW90ZS1lbmQgc3RhY2t0cmFjZTpcbiIKKyAgICAgICAgICAgICJcbiIKKyAgICAgICAgICAg
ICIlcyIgJSBzZWxmLnN0YWNrdHJhY2UpCisgICAgICAgIHJldHVybiBtZXNzYWdlCisKKworY2xh
c3MgRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2RlID0gImVsZW1lbnQgY2xpY2sg
aW50ZXJjZXB0ZWQiCisKKworY2xhc3MgRWxlbWVudE5vdFNlbGVjdGFibGVFeGNlcHRpb24oV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2Rl
ID0gImVsZW1lbnQgbm90IHNlbGVjdGFibGUiCisKKworY2xhc3MgRWxlbWVudE5vdFZpc2libGVF
eGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAg
IHN0YXR1c19jb2RlID0gImVsZW1lbnQgbm90IHZpc2libGUiCisKKworY2xhc3MgSW5zZWN1cmVD
ZXJ0aWZpY2F0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVz
ID0gNDAwCisgICAgc3RhdHVzX2NvZGUgPSAiaW5zZWN1cmUgY2VydGlmaWNhdGUiCisKKworY2xh
c3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0
cF9zdGF0dXMgPSA0MDAKKyAgICBzdGF0dXNfY29kZSA9ICJpbnZhbGlkIGFyZ3VtZW50IgorCisK
K2NsYXNzIEludmFsaWRDb29raWVEb21haW5FeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToK
KyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2RlID0gImludmFsaWQgY29va2ll
IGRvbWFpbiIKKworCitjbGFzcyBJbnZhbGlkRWxlbWVudENvb3JkaW5hdGVzRXhjZXB0aW9uKFdl
YkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDAKKyAgICBzdGF0dXNfY29k
ZSA9ICJpbnZhbGlkIGVsZW1lbnQgY29vcmRpbmF0ZXMiCisKKworY2xhc3MgSW52YWxpZEVsZW1l
bnRTdGF0ZUV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0g
NDAwCisgICAgc3RhdHVzX2NvZGUgPSAiaW52YWxpZCBlbGVtZW50IHN0YXRlIgorCisKK2NsYXNz
IEludmFsaWRTZWxlY3RvckV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBf
c3RhdHVzID0gNDAwCisgICAgc3RhdHVzX2NvZGUgPSAiaW52YWxpZCBzZWxlY3RvciIKKworCitj
bGFzcyBJbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAg
aHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJpbnZhbGlkIHNlc3Npb24gaWQi
CisKKworY2xhc3MgSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6
CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKKyAgICBzdGF0dXNfY29kZSA9ICJqYXZhc2NyaXB0IGVy
cm9yIgorCisKK2NsYXNzIE1vdmVUYXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbihXZWJEcml2ZXJF
eGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNTAwCisgICAgc3RhdHVzX2NvZGUgPSAibW92
ZSB0YXJnZXQgb3V0IG9mIGJvdW5kcyIKKworCitjbGFzcyBOb1N1Y2hBbGVydEV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2Nv
ZGUgPSAibm8gc3VjaCBhbGVydCIKKworCitjbGFzcyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKFdl
YkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29k
ZSA9ICJubyBzdWNoIGVsZW1lbnQiCisKKworY2xhc3MgTm9TdWNoRnJhbWVFeGNlcHRpb24oV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2Rl
ID0gIm5vIHN1Y2ggZnJhbWUiCisKKworY2xhc3MgTm9TdWNoV2luZG93RXhjZXB0aW9uKFdlYkRy
aXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9
ICJubyBzdWNoIHdpbmRvdyIKKworCitjbGFzcyBTY3JpcHRUaW1lb3V0RXhjZXB0aW9uKFdlYkRy
aXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDgKKyAgICBzdGF0dXNfY29kZSA9
ICJzY3JpcHQgdGltZW91dCIKKworCitjbGFzcyBTZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNTAwCisgICAgc3RhdHVzX2Nv
ZGUgPSAic2Vzc2lvbiBub3QgY3JlYXRlZCIKKworCitjbGFzcyBTdGFsZUVsZW1lbnRSZWZlcmVu
Y2VFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwNAor
ICAgIHN0YXR1c19jb2RlID0gInN0YWxlIGVsZW1lbnQgcmVmZXJlbmNlIgorCisKK2NsYXNzIFRp
bWVvdXRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQw
OAorICAgIHN0YXR1c19jb2RlID0gInRpbWVvdXQiCisKKworY2xhc3MgVW5hYmxlVG9TZXRDb29r
aWVFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDUwMAor
ICAgIHN0YXR1c19jb2RlID0gInVuYWJsZSB0byBzZXQgY29va2llIgorCisKK2NsYXNzIFVuZXhw
ZWN0ZWRBbGVydE9wZW5FeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0
YXR1cyA9IDUwMAorICAgIHN0YXR1c19jb2RlID0gInVuZXhwZWN0ZWQgYWxlcnQgb3BlbiIKKwor
CitjbGFzcyBVbmtub3duRXJyb3JFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBo
dHRwX3N0YXR1cyA9IDUwMAorICAgIHN0YXR1c19jb2RlID0gInVua25vd24gZXJyb3IiCisKKwor
Y2xhc3MgVW5rbm93bkNvbW1hbmRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBo
dHRwX3N0YXR1cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gInVua25vd24gY29tbWFuZCIKKwor
CitjbGFzcyBVbmtub3duTWV0aG9kRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAg
aHR0cF9zdGF0dXMgPSA0MDUKKyAgICBzdGF0dXNfY29kZSA9ICJ1bmtub3duIG1ldGhvZCIKKwor
CitjbGFzcyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24p
OgorICAgIGh0dHBfc3RhdHVzID0gNTAwCisgICAgc3RhdHVzX2NvZGUgPSAidW5zdXBwb3J0ZWQg
b3BlcmF0aW9uIgorCisKK2RlZiBmcm9tX3Jlc3BvbnNlKHJlc3BvbnNlKToKKyAgICAiIiIKKyAg
ICBVbm1hcnNoYWxzIGFuIGVycm9yIGZyb20gYSBgYFJlc3BvbnNlYGAncyBgYm9keWAsIGZhaWxp
bmcKKyAgICBpZiBub3QgYWxsIHRocmVlIHJlcXVpcmVkIGBlcnJvcmAsIGBtZXNzYWdlYCwgYW5k
IGBzdGFja3RyYWNlYAorICAgIGZpZWxkcyBhcmUgZ2l2ZW4uICBEZWZhdWx0cyB0byBgYFdlYkRy
aXZlckV4Y2VwdGlvbmBgIGlmIGBlcnJvcmAKKyAgICBpcyB1bmtub3duLgorICAgICIiIgorICAg
IGlmIHJlc3BvbnNlLnN0YXR1cyA9PSAyMDA6CisgICAgICAgIHJhaXNlIFVua25vd25FcnJvckV4
Y2VwdGlvbigKKyAgICAgICAgICAgICJSZXNwb25zZSBpcyBub3QgYW4gZXJyb3I6XG4iCisgICAg
ICAgICAgICAiJXMiICUganNvbi5kdW1wcyhyZXNwb25zZS5ib2R5KSkKKworICAgIGlmICJ2YWx1
ZSIgaW4gcmVzcG9uc2UuYm9keToKKyAgICAgICAgdmFsdWUgPSByZXNwb25zZS5ib2R5WyJ2YWx1
ZSJdCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgVW5rbm93bkVycm9yRXhjZXB0aW9uKAorICAg
ICAgICAgICAgIkV4cGVjdGVkICd2YWx1ZScga2V5IGluIHJlc3BvbnNlIGJvZHk6XG4iCisgICAg
ICAgICAgICAiJXMiICUganNvbi5kdW1wcyhyZXNwb25zZS5ib2R5KSkKKworICAgICMgYWxsIGZp
ZWxkcyBtdXN0IGV4aXN0LCBidXQgc3RhY2t0cmFjZSBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nCisg
ICAgY29kZSA9IHZhbHVlWyJlcnJvciJdCisgICAgbWVzc2FnZSA9IHZhbHVlWyJtZXNzYWdlIl0K
KyAgICBzdGFjayA9IHZhbHVlWyJzdGFja3RyYWNlIl0gb3IgTm9uZQorCisgICAgY2xzID0gZ2V0
KGNvZGUpCisgICAgcmV0dXJuIGNscyhtZXNzYWdlLCBzdGFja3RyYWNlPXN0YWNrKQorCisKK2Rl
ZiBnZXQoZXJyb3JfY29kZSk6CisgICAgIiIiCisgICAgR2V0cyBleGNlcHRpb24gZnJvbSBgZXJy
b3JfY29kZWAsIGZhbGxpbmcgYmFjayB0bworICAgIGBgV2ViRHJpdmVyRXhjZXB0aW9uYGAgaWYg
aXQgaXMgbm90IGZvdW5kLgorICAgICIiIgorICAgIHJldHVybiBfZXJyb3JzLmdldChlcnJvcl9j
b2RlLCBXZWJEcml2ZXJFeGNlcHRpb24pCisKKworX2Vycm9ycyA9IGNvbGxlY3Rpb25zLmRlZmF1
bHRkaWN0KCkKK2ZvciBpdGVtIGluIGxvY2FscygpLnZhbHVlcygpOgorICAgIGlmIHR5cGUoaXRl
bSkgPT0gdHlwZSBhbmQgaXNzdWJjbGFzcyhpdGVtLCBXZWJEcml2ZXJFeGNlcHRpb24pOgorICAg
ICAgICBfZXJyb3JzW2l0ZW0uc3RhdHVzX2NvZGVdID0gaXRlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2Vi
ZHJpdmVyL3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVhMGM3OTNhY2NiZGE2ZWRiNDI5YmUwMjczYTJmNjEyZWUzZDM2NjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKQEAgLTAsMCArMSwzNSBAQAoraW1wb3J0IGpz
b24KKworaW1wb3J0IHdlYmRyaXZlcgorCisKKyIiIldlYkRyaXZlciB3aXJlIHByb3RvY29sIGNv
ZGVjcy4iIiIKKworCitjbGFzcyBFbmNvZGVyKGpzb24uSlNPTkVuY29kZXIpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBrd2FyZ3MucG9wKCJzZXNz
aW9uIikKKyAgICAgICAgc3VwZXIoRW5jb2Rlciwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh
cmdzKQorCisgICAgZGVmIGRlZmF1bHQoc2VsZiwgb2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShvYmosIChsaXN0LCB0dXBsZSkpOgorICAgICAgICAgICAgcmV0dXJuIFtzZWxmLmRlZmF1bHQo
eCkgZm9yIHggaW4gb2JqXQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCB3ZWJkcml2ZXIu
RWxlbWVudCk6CisgICAgICAgICAgICByZXR1cm4ge3dlYmRyaXZlci5FbGVtZW50LmlkZW50aWZp
ZXI6IG9iai5pZH0KKyAgICAgICAgcmV0dXJuIHN1cGVyKEVuY29kZXIsIHNlbGYpLmRlZmF1bHQo
b2JqKQorCisKK2NsYXNzIERlY29kZXIoanNvbi5KU09ORGVjb2Rlcik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IGt3YXJn
cy5wb3AoInNlc3Npb24iKQorICAgICAgICBzdXBlcihEZWNvZGVyLCBzZWxmKS5fX2luaXRfXygK
KyAgICAgICAgICAgIG9iamVjdF9ob29rPXNlbGYub2JqZWN0X2hvb2ssICphcmdzLCAqKmt3YXJn
cykKKworICAgIGRlZiBvYmplY3RfaG9vayhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgaWYgaXNp
bnN0YW5jZShwYXlsb2FkLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgIHJldHVybiBbc2Vs
Zi5vYmplY3RfaG9vayh4KSBmb3IgeCBpbiBwYXlsb2FkXQorICAgICAgICBlbGlmIGlzaW5zdGFu
Y2UocGF5bG9hZCwgZGljdCkgYW5kIHdlYmRyaXZlci5FbGVtZW50LmlkZW50aWZpZXIgaW4gcGF5
bG9hZDoKKyAgICAgICAgICAgIHJldHVybiB3ZWJkcml2ZXIuRWxlbWVudC5mcm9tX2pzb24ocGF5
bG9hZCwgc2VsZi5zZXNzaW9uKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGlj
dCk6CisgICAgICAgICAgICByZXR1cm4ge2s6IHNlbGYub2JqZWN0X2hvb2sodikgZm9yIGssIHYg
aW4gcGF5bG9hZC5pdGVyaXRlbXMoKX0KKyAgICAgICAgcmV0dXJuIHBheWxvYWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk2MGNiMzcxYjg1MzQ2NWQxY2JlYWM0ZjNlZjljMDI1ZjRkMDJhZmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5CkBAIC0wLDAgKzEsMTYz
IEBACitpbXBvcnQgaHR0cGxpYgoraW1wb3J0IGpzb24KK2ltcG9ydCB1cmxwYXJzZQorCitpbXBv
cnQgZXJyb3IKKworZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQorCisiIiJJbXBsZW1lbnRzIEhU
VFAgdHJhbnNwb3J0IGZvciB0aGUgV2ViRHJpdmVyIHdpcmUgcHJvdG9jb2wuIiIiCisKKworY2xh
c3MgUmVzcG9uc2Uob2JqZWN0KToKKyAgICAiIiIKKyAgICBEZXNjcmliZXMgYW4gSFRUUCByZXNw
b25zZSByZWNlaXZlZCBmcm9tIGEgcmVtb3RlIGVuZCB3aG9zZQorICAgIGJvZHkgaGFzIGJlZW4g
cmVhZCBhbmQgcGFyc2VkIGFzIGFwcHJvcHJpYXRlLgorICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHN0YXR1cywgYm9keSk6CisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisg
ICAgICAgIHNlbGYuYm9keSA9IGJvZHkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgY2xzX25hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXworICAgICAgICBpZiBzZWxmLmVy
cm9yOgorICAgICAgICAgICAgcmV0dXJuICI8JXMgc3RhdHVzPSVzIGVycm9yPSVzPiIgJSAoY2xz
X25hbWUsIHNlbGYuc3RhdHVzLCByZXByKHNlbGYuZXJyb3IpKQorICAgICAgICByZXR1cm4gIjwl
IHN0YXR1cz0lcyBib2R5PSVzPiIgJSAoY2xzX25hbWUsIHNlbGYuc3RhdHVzLCBqc29uLmR1bXBz
KHNlbGYuYm9keSkpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGpz
b24uZHVtcHMoc2VsZi5ib2R5LCBpbmRlbnQ9MikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBl
cnJvcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zdGF0dXMgIT0gMjAwOgorICAgICAgICAgICAg
cmV0dXJuIGVycm9yLmZyb21fcmVzcG9uc2Uoc2VsZikKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2h0dHAoY2xzLCBodHRwX3Jlc3BvbnNlLCBk
ZWNvZGVyPWpzb24uSlNPTkRlY29kZXIsICoqa3dhcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgYm9keSA9IGpzb24ubG9hZChodHRwX3Jlc3BvbnNlLCBjbHM9ZGVjb2RlciwgKiprd2Fy
Z3MpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiRmFpbGVkIHRvIGRlY29kZSByZXNwb25zZSBib2R5IGFzIEpTT046XG4iICsKKyAgICAg
ICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlYWQoKSkKKworICAgICAgICByZXR1cm4gY2xzKGh0
dHBfcmVzcG9uc2Uuc3RhdHVzLCBib2R5KQorCisKK2NsYXNzIEhUVFBXaXJlUHJvdG9jb2wob2Jq
ZWN0KToKKyAgICAiIiIKKyAgICBUcmFuc3BvcnRzIG1lc3NhZ2VzIChjb21tYW5kcyBhbmQgcmVz
cG9uc2VzKSBvdmVyIHRoZSBXZWJEcml2ZXIKKyAgICB3aXJlIHByb3RvY29sLgorCisgICAgQ29t
cGxleCBvYmplY3RzLCBzdWNoIGFzIGBgd2ViZHJpdmVyLkVsZW1lbnRgYCwgYXJlIGJ5IGRlZmF1
bHQKKyAgICBub3QgbWFyc2hhbGVkIHRvIGVuYWJsZSB1c2Ugb2YgYHNlc3Npb24udHJhbnNwb3J0
LnNlbmRgIGluIFdQVCB0ZXN0czo6CisKKyAgICAgICAgc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNz
aW9uKCIxMjcuMC4wLjEiLCA0NDQ0KQorICAgICAgICByZXNwb25zZSA9IHRyYW5zcG9ydC5zZW5k
KCJHRVQiLCAiZWxlbWVudC9hY3RpdmUiLCBOb25lKQorICAgICAgICBwcmludCByZXNwb25zZS5i
b2R5WyJ2YWx1ZSJdCisgICAgICAgICMgPT4ge3UnZWxlbWVudC02MDY2LTExZTQtYTUyZS00Zjcz
NTQ2NmNlY2YnOiB1Jzx1dWlkPid9CisKKyAgICBBdXRvbWF0aWMgbWFyc2hhbGluZyBpcyBwcm92
aWRlZCBieSBgYHdlYmRyaXZlci5wcm90b2NvbC5FbmNvZGVyYGAKKyAgICBhbmQgYGB3ZWJkcml2
ZXIucHJvdG9jb2wuRGVjb2RlcmBgLCB3aGljaCBjYW4gYmUgcGFzc2VkIGluIHRvCisgICAgYGBI
VFRQV2lyZVByb3RvY29sLnNlbmRgYCBhbG9uZyB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJy
ZW50CisgICAgYGB3ZWJkcml2ZXIuU2Vzc2lvbmBgOjoKKworICAgICAgICBzZXNzaW9uID0gd2Vi
ZHJpdmVyLlNlc3Npb24oIjEyNy4wLjAuMSIsIDQ0NDQpCisgICAgICAgIHJlc3BvbnNlID0gdHJh
bnNwb3J0LnNlbmQoIkdFVCIsICJlbGVtZW50L2FjdGl2ZSIsIE5vbmUsCisgICAgICAgICAgICBl
bmNvZGVyPXByb3RvY29sLkVuY29kZXIsIGRlY29kZXI9cHJvdG9jb2wuRGVjb2RlciwKKyAgICAg
ICAgICAgIHNlc3Npb249c2Vzc2lvbikKKyAgICAgICAgcHJpbnQgcmVzcG9uc2UuYm9keVsidmFs
dWUiXQorICAgICAgICAjID0+IHdlYmRyaXZlci5FbGVtZW50CisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdCwgcG9ydCwgdXJsX3ByZWZpeD0iLyIsIHRpbWVvdXQ9Tm9uZSk6
CisgICAgICAgICIiIgorICAgICAgICBDb25zdHJ1Y3QgaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0
aW5nIHdpdGggdGhlIHJlbW90ZSBzZXJ2ZXIuCisKKyAgICAgICAgOnBhcmFtIHVybDogVVJMIG9m
IHJlbW90ZSBXZWJEcml2ZXIgc2VydmVyLgorICAgICAgICA6cGFyYW0gd2FpdDogRHVyYXRpb24g
dG8gd2FpdCBmb3IgcmVtb3RlIHRvIGFwcGVhci4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYu
aG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLnVybF9w
cmVmaXggPSB1cmxfcHJlZml4CisKKyAgICAgICAgc2VsZi5fdGltZW91dCA9IHRpbWVvdXQKKwor
ICAgIGRlZiB1cmwoc2VsZiwgc3VmZml4KToKKyAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpv
aW4oc2VsZi51cmxfcHJlZml4LCBzdWZmaXgpCisKKyAgICBkZWYgc2VuZChzZWxmLAorICAgICAg
ICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgICB1cmksCisgICAgICAgICAgICAgYm9keT1Ob25l
LAorICAgICAgICAgICAgIGhlYWRlcnM9Tm9uZSwKKyAgICAgICAgICAgICBlbmNvZGVyPWpzb24u
SlNPTkVuY29kZXIsCisgICAgICAgICAgICAgZGVjb2Rlcj1qc29uLkpTT05EZWNvZGVyLAorICAg
ICAgICAgICAgICoqY29kZWNfa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBj
b21tYW5kIHRvIHRoZSByZW1vdGUuCisKKyAgICAgICAgVGhlIHJlcXVlc3QgYGJvZHlgIG11c3Qg
YmUgSlNPTiBzZXJpYWxpc2FibGUgdW5sZXNzIGEKKyAgICAgICAgY3VzdG9tIGBlbmNvZGVyYCBo
YXMgYmVlbiBwcm92aWRlZC4gIFRoaXMgbWVhbnMgY29tcGxleAorICAgICAgICBvYmplY3RzIHN1
Y2ggYXMgYGB3ZWJkcml2ZXIuRWxlbWVudGBgIGFyZSBub3QgYXV0b21hdGljYWxseQorICAgICAg
ICBtYWRlIGludG8gSlNPTi4gIFRoaXMgYmVoYXZpb3VyIGlzLCBob3dldmVyLCBwcm92aWRlZCBi
eQorICAgICAgICBgYHdlYmRyaXZlci5wcm90b2NvbC5FbmNvZGVyYGAsIHNob3VsZCB5b3Ugd2Fu
dCBpdC4KKworICAgICAgICBTaW1pbGFybHksIHRoZSByZXNwb25zZSBib2R5IGlzIHJldHVybmVk
IGF1IG5hdHVyYWwKKyAgICAgICAgYXMgcGxhaW4gSlNPTiB1bmxlc3MgYSBgZGVjb2RlcmAgdGhh
dCBjb252ZXJ0cyB3ZWIKKyAgICAgICAgZWxlbWVudCByZWZlcmVuY2VzIHRvIGBgd2ViZHJpdmVy
LkVsZW1lbnRgYCBpcyBwcm92aWRlZC4KKyAgICAgICAgVXNlIGBgd2ViZHJpdmVyLnByb3RvY29s
LkRlY29kZXJgYCB0byBhY2hpZXZlIHRoaXMgYmVoYXZpb3VyLgorCisgICAgICAgIDpwYXJhbSBt
ZXRob2Q6IGBHRVRgLCBgUE9TVGAsIG9yIGBERUxFVEVgLgorICAgICAgICA6cGFyYW0gdXJpOiBS
ZWxhdGl2ZSBlbmRwb2ludCBvZiB0aGUgcmVxdWVzdHMgVVJMIHBhdGguCisgICAgICAgIDpwYXJh
bSBib2R5OiBCb2R5IG9mIHRoZSByZXF1ZXN0LiAgRGVmYXVsdHMgdG8gYW4gZW1wdHkKKyAgICAg
ICAgICAgIGRpY3Rpb25hcnkgaWYgYGBtZXRob2RgYCBpcyBgUE9TVGAuCisgICAgICAgIDpwYXJh
bSBoZWFkZXJzOiBBZGRpdGlvbmFsIGRpY3Rpb25hcnkgb2YgaGVhZGVycyB0byBpbmNsdWRlCisg
ICAgICAgICAgICBpbiB0aGUgcmVxdWVzdC4KKyAgICAgICAgOnBhcmFtIGVuY29kZXI6IEpTT04g
ZW5jb2RlciBjbGFzcywgd2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgICAgIGBganNvbi5KU09O
RW5jb2RlcmBgIHVubGVzcyBzcGVjaWZpZWQuCisgICAgICAgIDpwYXJhbSBkZWNvZGVyOiBKU09O
IGRlY29kZXIgY2xhc3MsIHdoaWNoIGRlZmF1bHRzIHRvCisgICAgICAgICAgICBgYGpzb24uSlNP
TkRlY29kZXJgYCB1bmxlc3Mgc3BlY2lmaWVkLgorICAgICAgICA6cGFyYW0gY29kZWNfa3dhcmdz
OiBTdXJwbHVzIGFyZ3VtZW50cyBwYXNzZWQgb24gdG8gYGVuY29kZXJgCisgICAgICAgICAgICBh
bmQgYGRlY29kZXJgIG9uIGNvbnN0cnVjdGlvbi4KKworICAgICAgICA6cmV0dXJuOiBJbnN0YW5j
ZSBvZiBgYHdlYmRyaXZlci50cmFuc3BvcnQuUmVzcG9uc2VgYAorICAgICAgICAgICAgZGVzY3Jp
YmluZyB0aGUgSFRUUCByZXNwb25zZSByZWNlaXZlZCBmcm9tIHRoZSByZW1vdGUgZW5kLgorCisg
ICAgICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgYGJvZHlgIG9yIHRoZSByZXNwb25zZSBib2R5
IGFyZSBub3QKKyAgICAgICAgICAgIEpTT04gc2VyaWFsaXNhYmxlLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgYm9keSBpcyBOb25lIGFuZCBtZXRob2QgPT0gIlBPU1QiOgorICAgICAgICAgICAg
Ym9keSA9IHt9CisKKyAgICAgICAgcGF5bG9hZCA9IE5vbmUKKyAgICAgICAgaWYgYm9keSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0ganNv
bi5kdW1wcyhib2R5LCBjbHM9ZW5jb2RlciwgKipjb2RlY19rd2FyZ3MpCisgICAgICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJGYWls
ZWQgdG8gZW5jb2RlIHJlcXVlc3QgYm9keSBhcyBKU09OOlxuIgorICAgICAgICAgICAgICAgICAg
ICAiJXMiICUganNvbi5kdW1wcyhib2R5LCBpbmRlbnQ9MikpCisKKyAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UocGF5bG9hZCwgdGV4dF90eXBlKToKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0g
Ym9keS5lbmNvZGUoInV0Zi04IikKKworICAgICAgICBpZiBoZWFkZXJzIGlzIE5vbmU6CisgICAg
ICAgICAgICBoZWFkZXJzID0ge30KKworICAgICAgICB1cmwgPSBzZWxmLnVybCh1cmkpCisKKyAg
ICAgICAgY29ubl9rd2FyZ3MgPSB7fQorICAgICAgICBpZiBzZWxmLl90aW1lb3V0IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgY29ubl9rd2FyZ3NbInRpbWVvdXQiXSA9IHNlbGYuX3RpbWVvdXQK
KworICAgICAgICBjb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbigKKyAgICAgICAgICAgIHNl
bGYuaG9zdCwgc2VsZi5wb3J0LCBzdHJpY3Q9VHJ1ZSwgKipjb25uX2t3YXJncykKKyAgICAgICAg
Y29ubi5yZXF1ZXN0KG1ldGhvZCwgdXJsLCBwYXlsb2FkLCBoZWFkZXJzKQorCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHJlc3BvbnNlID0gY29ubi5nZXRyZXNwb25zZSgpCisgICAgICAgICAg
ICByZXR1cm4gUmVzcG9uc2UuZnJvbV9odHRwKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlLCBk
ZWNvZGVyPWRlY29kZXIsICoqY29kZWNfa3dhcmdzKQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgY29ubi5jbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYyNDcyMTYxNmQ5
ZjlhOGIwMjk1OTE5Nzg1YTg4NjI4ZmRmMWRkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRy
aXZlci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIxIEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2
ZXIvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vy
cm9yLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9y
dC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4
Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0
X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0
byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUyZmVi
MDM1NzYwNDMxZDVlZDBhYmFjZDY2MTcwZTA3NGY1NzQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dz
ZXIucHkKQEAgLTAsMCArMSw1NDkgQEAKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9y
dCBwbGF0Zm9ybQoraW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3RhdAoraW1wb3J0
IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2Zyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFj
dG1ldGhvZAorZnJvbSBDb25maWdQYXJzZXIgaW1wb3J0IFJhd0NvbmZpZ1BhcnNlcgorZnJvbSBk
YXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQorZnJvbSBkaXN0dXRpbHMuc3Bhd24g
aW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworCitmcm9tIHV0
aWxzIGltcG9ydCBjYWxsLCBnZXQsIHVudGFyLCB1bnppcAorCitsb2dnZXIgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKKwordW5hbWUgPSBwbGF0Zm9ybS51bmFtZSgpCisKKworY2xhc3Mg
QnJvd3NlcihvYmplY3QpOgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBAYWJz
dHJhY3RtZXRob2QKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICAi
IiJJbnN0YWxsIHRoZSBicm93c2VyLiIiIgorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQK
KworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUpOgorICAgICAgICAiIiJJbnN0YWxsIHRoZSBXZWJEcml2ZXIgaW1wbGVtZW50YXRp
b24gZm9yIHRoaXMgYnJvd3Nlci4iIiIKKyAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisK
KyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAg
ICIiIkZpbmQgdGhlIGJpbmFyeSBvZiB0aGUgYnJvd3Nlci4KKworICAgICAgICBJZiB0aGUgV2Vi
RHJpdmVyIGZvciB0aGUgYnJvd3NlciBpcyBhYmxlIHRvIGZpbmQgdGhlIGJpbmFyeSBpdHNlbGYs
IHRoaXMKKyAgICAgICAgbWV0aG9kIGRvZXNuJ3QgbmVlZCB0byBiZSBpbXBsZW1lbnRlZCwgaW4g
d2hpY2ggY2FzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIGlzIHN1Z2dlc3RlZCB0byBi
ZSByYWlzZWQgdG8gcHJldmVudCBhY2NpZGVudGFsIHVzZS4KKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZp
bmRfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICAiIiJGaW5kIHRoZSBiaW5hcnkgb2YgdGhlIFdl
YkRyaXZlci4iIiIKKyAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBAYWJzdHJh
Y3RtZXRob2QKKyAgICBkZWYgdmVyc2lvbihzZWxmLCByb290KToKKyAgICAgICAgIiIiUmV0cmll
dmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIGJyb3dzZXIuIiIiCisgICAg
ICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVm
IHJlcXVpcmVtZW50cyhzZWxmKToKKyAgICAgICAgIiIiTmFtZSBvZiB0aGUgYnJvd3Nlci1zcGVj
aWZpYyB3cHRydW5uZXIgcmVxdWlyZW1lbnRzIGZpbGUiIiIKKyAgICAgICAgcmV0dXJuIE5vdElt
cGxlbWVudGVkCisKKworY2xhc3MgRmlyZWZveChCcm93c2VyKToKKyAgICAiIiJGaXJlZm94LXNw
ZWNpZmljIGludGVyZmFjZS4KKworICAgIEluY2x1ZGVzIGluc3RhbGxhdGlvbiwgd2ViZHJpdmVy
IGluc3RhbGxhdGlvbiwgYW5kIHdwdHJ1bm5lciBzZXR1cCBtZXRob2RzLgorICAgICIiIgorCisg
ICAgcHJvZHVjdCA9ICJmaXJlZm94IgorICAgIGJpbmFyeSA9ICJicm93c2Vycy9maXJlZm94L2Zp
cmVmb3giCisgICAgcGxhdGZvcm1faW5pID0gImJyb3dzZXJzL2ZpcmVmb3gvcGxhdGZvcm0uaW5p
IgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZmlyZWZveC50eHQiCisKKyAgICBk
ZWYgcGxhdGZvcm1fc3RyaW5nX2dlY2tvZHJpdmVyKHNlbGYpOgorICAgICAgICBwbGF0Zm9ybSA9
IHsKKyAgICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCisgICAgICAgICAgICAiV2luZG93cyI6
ICJ3aW4iLAorICAgICAgICAgICAgIkRhcndpbiI6ICJtYWNvcyIKKyAgICAgICAgfS5nZXQodW5h
bWVbMF0pCisKKyAgICAgICAgaWYgcGxhdGZvcm0gaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIlVuYWJsZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBHZWNrb2RyaXZlciBwYWNr
YWdlIG5hbWUgZm9yIGN1cnJlbnQgcGxhdGZvcm0iKQorCisgICAgICAgIGlmIHBsYXRmb3JtIGlu
ICgibGludXgiLCAid2luIik6CisgICAgICAgICAgICBiaXRzID0gIjY0IiBpZiB1bmFtZVs0XSA9
PSAieDg2XzY0IiBlbHNlICIzMiIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJpdHMgPSAi
IgorCisgICAgICAgIHJldHVybiAiJXMlcyIgJSAocGxhdGZvcm0sIGJpdHMpCisKKyAgICBkZWYg
aW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICAiIiJJbnN0YWxsIEZpcmVmb3guIiIi
CisKKyAgICAgICAgZnJvbSBtb3pkb3dubG9hZCBpbXBvcnQgRmFjdG9yeVNjcmFwZXIKKyAgICAg
ICAgaW1wb3J0IG1vemluc3RhbGwKKworICAgICAgICBwbGF0Zm9ybSA9IHsKKyAgICAgICAgICAg
ICJMaW51eCI6ICJsaW51eCIsCisgICAgICAgICAgICAiV2luZG93cyI6ICJ3aW4iLAorICAgICAg
ICAgICAgIkRhcndpbiI6ICJtYWMiCisgICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorCisgICAgICAg
IGlmIHBsYXRmb3JtIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFi
bGUgdG8gY29uc3RydWN0IGEgdmFsaWQgRmlyZWZveCBwYWNrYWdlIG5hbWUgZm9yIGN1cnJlbnQg
cGxhdGZvcm0iKQorCisgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgICMgb3Mu
Z2V0Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRoZSB2ZW52IHBhdGgKKyAgICAgICAgICAgIGRlc3Qg
PSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIpCisKKyAgICAgICAgZGVzdCA9IG9z
LnBhdGguam9pbihkZXN0LCAiYnJvd3NlcnMiKQorCisgICAgICAgIGZpbGVuYW1lID0gRmFjdG9y
eVNjcmFwZXIoImRhaWx5IiwgYnJhbmNoPSJtb3ppbGxhLWNlbnRyYWwiLCBkZXN0aW5hdGlvbj1k
ZXN0KS5kb3dubG9hZCgpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW96aW5zdGFsbC5p
bnN0YWxsKGZpbGVuYW1lLCBkZXN0KQorICAgICAgICBleGNlcHQgbW96aW5zdGFsbC5tb3ppbnN0
YWxsLkluc3RhbGxFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgcGxhdGZvcm0gPT0gIm1hYyIg
YW5kIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihkZXN0LCAiRmlyZWZveCBOaWdodGx5LmFw
cCIpKToKKyAgICAgICAgICAgICAgICAjIG1vemluc3RhbGwgd2lsbCBmYWlsIGlmIG5pZ2h0bHkg
aXMgYWxyZWFkeSBpbnN0YWxsZWQgaW4gdGhlIHZlbnYgYmVjYXVzZQorICAgICAgICAgICAgICAg
ICMgbWFjIGluc3RhbGxhdGlvbiB1c2VzIHNodXRpbC5jb3B5X3RyZWUKKyAgICAgICAgICAgICAg
ICBtb3ppbnN0YWxsLnVuaW5zdGFsbChvcy5wYXRoLmpvaW4oZGVzdCwgIkZpcmVmb3ggTmlnaHRs
eS5hcHAiKSkKKyAgICAgICAgICAgICAgICBtb3ppbnN0YWxsLmluc3RhbGwoZmlsZW5hbWUsIGRl
c3QpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAg
b3MucmVtb3ZlKGZpbGVuYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5maW5kX2JpbmFyeV9wYXRo
KGRlc3QpCisKKyAgICBkZWYgZmluZF9iaW5hcnlfcGF0aChzZWxmLCBwYXRoPU5vbmUpOgorICAg
ICAgICAiIiJMb29rcyBmb3IgdGhlIGZpcmVmb3ggYmluYXJ5IGluIHRoZSB2aXJ0dWFsIGVudmly
b25tZW50IiIiCisKKyAgICAgICAgcGxhdGZvcm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAi
bGludXgiLAorICAgICAgICAgICAgIldpbmRvd3MiOiAid2luIiwKKyAgICAgICAgICAgICJEYXJ3
aW4iOiAibWFjIgorICAgICAgICB9LmdldCh1bmFtZVswXSkKKworICAgICAgICBpZiBwYXRoIGlz
IE5vbmU6CisgICAgICAgICAgICAjb3MuZ2V0Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRoZSB2ZW52
IHBhdGgKKyAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVu
diIsICJicm93c2VycyIpCisKKyAgICAgICAgYmluYXJ5ID0gTm9uZQorCisgICAgICAgIGlmIHBs
YXRmb3JtID09ICJsaW51eCI6CisgICAgICAgICAgICBiaW5hcnkgPSBmaW5kX2V4ZWN1dGFibGUo
ImZpcmVmb3giLCBvcy5wYXRoLmpvaW4ocGF0aCwgImZpcmVmb3giKSkKKyAgICAgICAgZWxpZiBw
bGF0Zm9ybSA9PSAid2luIjoKKyAgICAgICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCisgICAgICAg
ICAgICBiaW5hcnkgPSBtb3ppbnN0YWxsLmdldF9iaW5hcnkocGF0aCwgImZpcmVmb3giKQorICAg
ICAgICBlbGlmIHBsYXRmb3JtID09ICJtYWMiOgorICAgICAgICAgICAgYmluYXJ5ID0gZmluZF9l
eGVjdXRhYmxlKCJmaXJlZm94Iiwgb3MucGF0aC5qb2luKHBhdGgsICJGaXJlZm94IE5pZ2h0bHku
YXBwIiwgIkNvbnRlbnRzIiwgIk1hY09TIikpCisKKyAgICAgICAgcmV0dXJuIGJpbmFyeQorCisg
ICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lKToKKyAgICAgICAgaWYgdmVu
dl9wYXRoIGlzIE5vbmU6CisgICAgICAgICAgICB2ZW52X3BhdGggPSBvcy5wYXRoLmpvaW4ob3Mu
Z2V0Y3dkKCksIHZlbnZfcGF0aCkKKworICAgICAgICBiaW5hcnkgPSBzZWxmLmZpbmRfYmluYXJ5
X3BhdGgob3MucGF0aC5qb2luKHZlbnZfcGF0aCwgImJyb3dzZXJzIikpCisKKyAgICAgICAgaWYg
bm90IGJpbmFyeSBhbmQgdW5hbWVbMF0gPT0gIkRhcndpbiI6CisgICAgICAgICAgICBtYWNwYXRo
cyA9IFsiL0FwcGxpY2F0aW9ucy9GaXJlZm94TmlnaHRseS5hcHAvQ29udGVudHMvTWFjT1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+L0FwcGxpY2F0aW9u
cy9GaXJlZm94TmlnaHRseS5hcHAvQ29udGVudHMvTWFjT1MiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICIvQXBwbGljYXRpb25zL0ZpcmVmb3ggRGV2ZWxvcGVyIEVkaXRpb24uYXBwL0NvbnRl
bnRzL01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdXNlcigi
fi9BcHBsaWNhdGlvbnMvRmlyZWZveCBEZXZlbG9wZXIgRWRpdGlvbi5hcHAvQ29udGVudHMvTWFj
T1MiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICIvQXBwbGljYXRpb25zL0ZpcmVmb3guYXBw
L0NvbnRlbnRzL01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5k
dXNlcigifi9BcHBsaWNhdGlvbnMvRmlyZWZveC5hcHAvQ29udGVudHMvTWFjT1MiKV0KKyAgICAg
ICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoImZpcmVmb3giLCBvcy5wYXRoc2VwLmpvaW4o
bWFjcGF0aHMpKQorCisgICAgICAgIGlmIGJpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgcmV0
dXJuIGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIpCisKKyAgICAgICAgcmV0dXJuIGJpbmFyeQor
CisgICAgZGVmIGZpbmRfY2VydHV0aWwoc2VsZik6CisgICAgICAgIHBhdGggPSBmaW5kX2V4ZWN1
dGFibGUoImNlcnR1dGlsIikKKyAgICAgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgaWYgb3MucGF0aC5zcGxpdGRyaXZlKHBhdGgpWzFdLnNwbGl0
KG9zLnBhdGguc2VwKSA9PSBbIiIsICJXaW5kb3dzIiwgInN5c3RlbTMyIiwgImNlcnR1dGlsLmV4
ZSJdOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAg
IGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJs
ZSgiZ2Vja29kcml2ZXIiKQorCisgICAgZGVmIGluc3RhbGxfcHJlZnMoc2VsZiwgZGVzdD1Ob25l
KToKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAgICAgZGVzdCA9IG9zLnB3ZAor
CisgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgInByb2ZpbGVzIikKKyAgICAgICAg
aWYgbm90IG9zLnBhdGguZXhpc3RzKGRlc3QpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoZGVz
dCkKKyAgICAgICAgcHJlZnNfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCAicHJlZnNfZ2VuZXJh
bC5qcyIpCisKKyAgICAgICAgbm93ID0gZGF0ZXRpbWUubm93KCkKKyAgICAgICAgaWYgKG5vdCBv
cy5wYXRoLmV4aXN0cyhwcmVmc19wYXRoKSBvcgorICAgICAgICAgICAgKGRhdGV0aW1lLmZyb210
aW1lc3RhbXAob3Muc3RhdChwcmVmc19wYXRoKS5zdF9tdGltZSkgPAorICAgICAgICAgICAgIG5v
dyAtIHRpbWVkZWx0YShkYXlzPTIpKSk6CisgICAgICAgICAgICB3aXRoIG9wZW4ocHJlZnNfcGF0
aCwgIndiIikgYXMgZjoKKyAgICAgICAgICAgICAgICByZXNwID0gZ2V0KCJodHRwczovL2hnLm1v
emlsbGEub3JnL21vemlsbGEtY2VudHJhbC9yYXctZmlsZS90aXAvdGVzdGluZy9wcm9maWxlcy9w
cmVmc19nZW5lcmFsLmpzIikKKyAgICAgICAgICAgICAgICBmLndyaXRlKHJlc3AuY29udGVudCkK
KworICAgICAgICByZXR1cm4gZGVzdAorCisgICAgZGVmIF9sYXRlc3RfZ2Vja29kcml2ZXJfdmVy
c2lvbihzZWxmKToKKyAgICAgICAgIiIiR2V0IGFuZCByZXR1cm4gbGF0ZXN0IHZlcnNpb24gbnVt
YmVyIGZvciBnZWNrb2RyaXZlci4iIiIKKyAgICAgICAgIyBUaGlzIGlzIHVzZWQgcmF0aGVyIHRo
YW4gYW4gQVBJIGNhbGwgdG8gYXZvaWQgcmF0ZSBsaW1pdHMKKyAgICAgICAgdGFncyA9IGNhbGwo
ImdpdCIsICJscy1yZW1vdGUiLCAiLS10YWdzIiwgIi0tcmVmcyIsCisgICAgICAgICAgICAgICAg
ICAgICJodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci5naXQiKQorICAgICAg
ICByZWxlYXNlX3JlID0gcmUuY29tcGlsZSgiLipyZWZzL3RhZ3MvdihcZCspXC4oXGQrKVwuKFxk
KykiKQorICAgICAgICBsYXRlc3RfcmVsZWFzZSA9IDAKKyAgICAgICAgZm9yIGl0ZW0gaW4gdGFn
cy5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgIG0gPSByZWxlYXNlX3JlLm1hdGNoKGl0ZW0pCisg
ICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBbaW50KGl0ZW0pIGZv
ciBpdGVtIGluIG0uZ3JvdXBzKCldCisgICAgICAgICAgICAgICAgaWYgdmVyc2lvbiA+IGxhdGVz
dF9yZWxlYXNlOgorICAgICAgICAgICAgICAgICAgICBsYXRlc3RfcmVsZWFzZSA9IHZlcnNpb24K
KyAgICAgICAgYXNzZXJ0IGxhdGVzdF9yZWxlYXNlICE9IDAKKyAgICAgICAgcmV0dXJuICJ2JXMu
JXMuJXMiICUgdHVwbGUoc3RyKGl0ZW0pIGZvciBpdGVtIGluIGxhdGVzdF9yZWxlYXNlKQorCisg
ICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgICIiIklu
c3RhbGwgbGF0ZXN0IEdlY2tvZHJpdmVyLiIiIgorICAgICAgICBpZiBkZXN0IGlzIE5vbmU6Cisg
ICAgICAgICAgICBkZXN0ID0gb3MuZ2V0Y3dkKCkKKworICAgICAgICB2ZXJzaW9uID0gc2VsZi5f
bGF0ZXN0X2dlY2tvZHJpdmVyX3ZlcnNpb24oKQorICAgICAgICBmb3JtYXQgPSAiemlwIiBpZiB1
bmFtZVswXSA9PSAiV2luZG93cyIgZWxzZSAidGFyLmd6IgorICAgICAgICBsb2dnZXIuZGVidWco
IkxhdGVzdCBnZWNrb2RyaXZlciByZWxlYXNlICVzIiAlIHZlcnNpb24pCisgICAgICAgIHVybCA9
ICgiaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIvcmVsZWFzZXMvZG93bmxv
YWQvJXMvZ2Vja29kcml2ZXItJXMtJXMuJXMiICUKKyAgICAgICAgICAgICAgICh2ZXJzaW9uLCB2
ZXJzaW9uLCBzZWxmLnBsYXRmb3JtX3N0cmluZ19nZWNrb2RyaXZlcigpLCBmb3JtYXQpKQorICAg
ICAgICBpZiBmb3JtYXQgPT0gInppcCI6CisgICAgICAgICAgICB1bnppcChnZXQodXJsKS5yYXcs
IGRlc3Q9ZGVzdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVudGFyKGdldCh1cmwpLnJh
dywgZGVzdD1kZXN0KQorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKG9zLnBhdGguam9p
bihkZXN0LCAiZ2Vja29kcml2ZXIiKSkKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJvb3QpOgor
ICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQg
YnJvd3Nlci4iIiIKKyAgICAgICAgcGxhdGZvcm1faW5mbyA9IFJhd0NvbmZpZ1BhcnNlcigpCisK
KyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihyb290LCBzZWxmLnBsYXRmb3JtX2luaSks
ICJyIikgYXMgZnA6CisgICAgICAgICAgICBwbGF0Zm9ybV9pbmZvLnJlYWRmcChCeXRlc0lPKGZw
LnJlYWQoKSkpCisgICAgICAgICAgICByZXR1cm4gIkJ1aWxkSUQgJXM7IFNvdXJjZVN0YW1wICVz
IiAlICgKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybV9pbmZvLmdldCgiQnVpbGQiLCAiQnVpbGRJ
RCIpLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtX2luZm8uZ2V0KCJCdWlsZCIsICJTb3VyY2VT
dGFtcCIpKQorCisKK2NsYXNzIENocm9tZShCcm93c2VyKToKKyAgICAiIiJDaHJvbWUtc3BlY2lm
aWMgaW50ZXJmYWNlLgorCisgICAgSW5jbHVkZXMgd2ViZHJpdmVyIGluc3RhbGxhdGlvbiwgYW5k
IHdwdHJ1bm5lciBzZXR1cCBtZXRob2RzLgorICAgICIiIgorCisgICAgcHJvZHVjdCA9ICJjaHJv
bWUiCisgICAgYmluYXJ5ID0gIi91c3IvYmluL2dvb2dsZS1jaHJvbWUiCisgICAgcmVxdWlyZW1l
bnRzID0gInJlcXVpcmVtZW50c19jaHJvbWUudHh0IgorCisgICAgZGVmIGluc3RhbGwoc2VsZiwg
ZGVzdD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVm
IHBsYXRmb3JtX3N0cmluZyhzZWxmKToKKyAgICAgICAgcGxhdGZvcm0gPSB7CisgICAgICAgICAg
ICAiTGludXgiOiAibGludXgiLAorICAgICAgICAgICAgIldpbmRvd3MiOiAid2luIiwKKyAgICAg
ICAgICAgICJEYXJ3aW4iOiAibWFjIgorICAgICAgICB9LmdldCh1bmFtZVswXSkKKworICAgICAg
ICBpZiBwbGF0Zm9ybSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5h
YmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlkIENocm9tZSBwYWNrYWdlIG5hbWUgZm9yIGN1cnJlbnQg
cGxhdGZvcm0iKQorCisgICAgICAgIGlmIHBsYXRmb3JtID09ICJsaW51eCI6CisgICAgICAgICAg
ICBiaXRzID0gIjY0IiBpZiB1bmFtZVs0XSA9PSAieDg2XzY0IiBlbHNlICIzMiIKKyAgICAgICAg
ZWxpZiBwbGF0Zm9ybSA9PSAibWFjIjoKKyAgICAgICAgICAgIGJpdHMgPSAiNjQiCisgICAgICAg
IGVsaWYgcGxhdGZvcm0gPT0gIndpbiI6CisgICAgICAgICAgICBiaXRzID0gIjMyIgorCisgICAg
ICAgIHJldHVybiAiJXMlcyIgJSAocGxhdGZvcm0sIGJpdHMpCisKKyAgICBkZWYgZmluZF9iaW5h
cnkoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBm
aW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hy
b21lZHJpdmVyIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUp
OgorICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICBkZXN0ID0gb3MucHdkCisg
ICAgICAgIGxhdGVzdCA9IGdldCgiaHR0cDovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFw
aXMuY29tL0xBVEVTVF9SRUxFQVNFIikudGV4dC5zdHJpcCgpCisgICAgICAgIHVybCA9ICJodHRw
Oi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vJXMvY2hyb21lZHJpdmVyXyVz
LnppcCIgJSAobGF0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGxhdGZv
cm1fc3RyaW5nKCkpCisgICAgICAgIHVuemlwKGdldCh1cmwpLnJhdywgZGVzdCkKKworICAgICAg
ICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJjaHJvbWVkcml2ZXIiLCBkZXN0KQorICAgICAgICBz
dCA9IG9zLnN0YXQocGF0aCkKKyAgICAgICAgb3MuY2htb2QocGF0aCwgc3Quc3RfbW9kZSB8IHN0
YXQuU19JRVhFQykKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYs
IHJvb3QpOgorICAgICAgICBvdXRwdXQgPSBjYWxsKHNlbGYuYmluYXJ5LCAiLS12ZXJzaW9uIikK
KyAgICAgICAgcmV0dXJuIHJlLnNlYXJjaChyIlswLTlcLl0rKCBbYS16XSspPyQiLCBvdXRwdXQu
c3RyaXAoKSkuZ3JvdXAoMCkKKworCitjbGFzcyBDaHJvbWVBbmRyb2lkKEJyb3dzZXIpOgorICAg
ICIiIkNocm9tZS1zcGVjaWZpYyBpbnRlcmZhY2UgZm9yIEFuZHJvaWQuCisKKyAgICBJbmNsdWRl
cyB3ZWJkcml2ZXIgaW5zdGFsbGF0aW9uLgorICAgICIiIgorCisgICAgcHJvZHVjdCA9ICJjaHJv
bWVfYW5kcm9pZCIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRy
b2lkLnR4dCIKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVy
KHNlbGYpOgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJjaHJvbWVkcml2ZXIiKQor
CisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIGNo
cm9tZSA9IENocm9tZSgpCisgICAgICAgIHJldHVybiBjaHJvbWUuaW5zdGFsbF93ZWJkcml2ZXIo
ZGVzdCkKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJvb3QpOgorICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisKKworY2xhc3MgT3BlcmEoQnJvd3Nlcik6CisgICAgIiIiT3BlcmEt
c3BlY2lmaWMgaW50ZXJmYWNlLgorCisgICAgSW5jbHVkZXMgd2ViZHJpdmVyIGluc3RhbGxhdGlv
biwgYW5kIHdwdHJ1bm5lciBzZXR1cCBtZXRob2RzLgorICAgICIiIgorCisgICAgcHJvZHVjdCA9
ICJvcGVyYSIKKyAgICBiaW5hcnkgPSAiL3Vzci9iaW4vb3BlcmEiCisgICAgcmVxdWlyZW1lbnRz
ID0gInJlcXVpcmVtZW50c19vcGVyYS50eHQiCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0
PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgcGxh
dGZvcm1fc3RyaW5nKHNlbGYpOgorICAgICAgICBwbGF0Zm9ybSA9IHsKKyAgICAgICAgICAgICJM
aW51eCI6ICJsaW51eCIsCisgICAgICAgICAgICAiV2luZG93cyI6ICJ3aW4iLAorICAgICAgICAg
ICAgIkRhcndpbiI6ICJtYWMiCisgICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorCisgICAgICAgIGlm
IHBsYXRmb3JtIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUg
dG8gY29uc3RydWN0IGEgdmFsaWQgT3BlcmEgcGFja2FnZSBuYW1lIGZvciBjdXJyZW50IHBsYXRm
b3JtIikKKworICAgICAgICBpZiBwbGF0Zm9ybSA9PSAibGludXgiOgorICAgICAgICAgICAgYml0
cyA9ICI2NCIgaWYgdW5hbWVbNF0gPT0gIng4Nl82NCIgZWxzZSAiMzIiCisgICAgICAgIGVsaWYg
cGxhdGZvcm0gPT0gIm1hYyI6CisgICAgICAgICAgICBiaXRzID0gIjY0IgorICAgICAgICBlbGlm
IHBsYXRmb3JtID09ICJ3aW4iOgorICAgICAgICAgICAgYml0cyA9ICIzMiIKKworICAgICAgICBy
ZXR1cm4gIiVzJXMiICUgKHBsYXRmb3JtLCBiaXRzKQorCisgICAgZGVmIGZpbmRfYmluYXJ5KHNl
bGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF93
ZWJkcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIm9wZXJhZHJp
dmVyIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAg
ICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICBkZXN0ID0gb3MucHdkCisgICAgICAg
IGxhdGVzdCA9IGdldCgiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vcGVyYXNvZnR3YXJl
L29wZXJhY2hyb21pdW1kcml2ZXIvcmVsZWFzZXMvbGF0ZXN0IikuanNvbigpWyJ0YWdfbmFtZSJd
CisgICAgICAgIHVybCA9ICJodHRwczovL2dpdGh1Yi5jb20vb3BlcmFzb2Z0d2FyZS9vcGVyYWNo
cm9taXVtZHJpdmVyL3JlbGVhc2VzL2Rvd25sb2FkLyVzL29wZXJhZHJpdmVyXyVzLnppcCIgJSAo
bGF0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYucGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIHVuemlwKGdldCh1cmwpLnJh
dywgZGVzdCkKKworICAgICAgICBvcGVyYWRyaXZlcl9kaXIgPSBvcy5wYXRoLmpvaW4oZGVzdCwg
Im9wZXJhZHJpdmVyXyVzIiAlIHNlbGYucGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIHNodXRp
bC5tb3ZlKG9zLnBhdGguam9pbihvcGVyYWRyaXZlcl9kaXIsICJvcGVyYWRyaXZlciIpLCBkZXN0
KQorICAgICAgICBzaHV0aWwucm10cmVlKG9wZXJhZHJpdmVyX2RpcikKKworICAgICAgICBwYXRo
ID0gZmluZF9leGVjdXRhYmxlKCJvcGVyYWRyaXZlciIpCisgICAgICAgIHN0ID0gb3Muc3RhdChw
YXRoKQorICAgICAgICBvcy5jaG1vZChwYXRoLCBzdC5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQor
ICAgICAgICByZXR1cm4gcGF0aAorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgcm9vdCk6CisgICAg
ICAgICIiIlJldHJpZXZlIHRoZSByZWxlYXNlIHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZCBicm93
c2VyLiIiIgorICAgICAgICBvdXRwdXQgPSBjYWxsKHNlbGYuYmluYXJ5LCAiLS12ZXJzaW9uIikK
KyAgICAgICAgcmV0dXJuIHJlLnNlYXJjaChyIlswLTlcLl0rKCBbYS16XSspPyQiLCBvdXRwdXQu
c3RyaXAoKSkuZ3JvdXAoMCkKKworCitjbGFzcyBFZGdlKEJyb3dzZXIpOgorICAgICIiIkVkZ2Ut
c3BlY2lmaWMgaW50ZXJmYWNlLiIiIgorCisgICAgcHJvZHVjdCA9ICJlZGdlIgorICAgIHJlcXVp
cmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZWRnZS50eHQiCisKKyAgICBkZWYgaW5zdGFsbChzZWxm
LCBkZXN0PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBk
ZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
KworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhl
Y3V0YWJsZSgiTWljcm9zb2Z0V2ViRHJpdmVyIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZl
cihzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisK
KyAgICBkZWYgdmVyc2lvbihzZWxmLCByb290KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgorCisKK2NsYXNzIEludGVybmV0RXhwbG9yZXIoQnJvd3Nlcik6CisgICAgIiIiSW50
ZXJuZXQgRXhwbG9yZXItc3BlY2lmaWMgaW50ZXJmYWNlLiIiIgorCisgICAgcHJvZHVjdCA9ICJp
ZSIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2llLnR4dCIKKworICAgIGRlZiBp
bnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1
cm4gZmluZF9leGVjdXRhYmxlKCJJRURyaXZlclNlcnZlci5leGUiKQorCisgICAgZGVmIGluc3Rh
bGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJvb3QpOgorICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yCisKKworY2xhc3MgU2FmYXJpKEJyb3dzZXIpOgorICAgICIiIlNh
ZmFyaS1zcGVjaWZpYyBpbnRlcmZhY2UuCisKKyAgICBJbmNsdWRlcyBpbnN0YWxsYXRpb24sIHdl
YmRyaXZlciBpbnN0YWxsYXRpb24sIGFuZCB3cHRydW5uZXIgc2V0dXAgbWV0aG9kcy4KKyAgICAi
IiIKKworICAgIHByb2R1Y3QgPSAic2FmYXJpIgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJl
bWVudHNfc2FmYXJpLnR4dCIKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6Cisg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5kX2JpbmFyeShz
ZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRf
d2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJzYWZhcmlk
cml2ZXIiKQorCisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgdmVyc2lvbihzZWxmLCByb290KToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKK2NsYXNzIFNlcnZvKEJyb3dzZXIp
OgorICAgICIiIlNlcnZvLXNwZWNpZmljIGludGVyZmFjZS4iIiIKKworICAgIHByb2R1Y3QgPSAi
c2Vydm8iCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19zZXJ2by50eHQiCisKKyAg
ICBkZWYgcGxhdGZvcm1fY29tcG9uZW50cyhzZWxmKToKKyAgICAgICAgcGxhdGZvcm0gPSB7Cisg
ICAgICAgICAgICAiTGludXgiOiAibGludXgiLAorICAgICAgICAgICAgIldpbmRvd3MiOiAid2lu
IiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAibWFjIgorICAgICAgICB9LmdldCh1bmFtZVswXSkK
KworICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlkIFNlcnZvIHBhY2thZ2UgZm9yIGN1cnJl
bnQgcGxhdGZvcm0iKQorCisgICAgICAgIGlmIHBsYXRmb3JtID09ICJsaW51eCI6CisgICAgICAg
ICAgICBleHRlbnNpb24gPSAiLnRhci5neiIKKyAgICAgICAgICAgIGRlY29tcHJlc3MgPSB1bnRh
cgorICAgICAgICBlbGlmIHBsYXRmb3JtID09ICJ3aW4iIG9yIHBsYXRmb3JtID09ICJtYWMiOgor
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlk
IFNlcnZvIHBhY2thZ2UgZm9yIGN1cnJlbnQgcGxhdGZvcm0iKQorCisgICAgICAgIHJldHVybiAo
cGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVjb21wcmVzcykKKworICAgIGRlZiBpbnN0YWxsKHNlbGYs
IGRlc3Q9Tm9uZSk6CisgICAgICAgICIiIkluc3RhbGwgbGF0ZXN0IEJyb3dzZXIgRW5naW5lLiIi
IgorICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICBkZXN0ID0gb3MucHdkCisK
KyAgICAgICAgcGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVjb21wcmVzcyA9IHNlbGYucGxhdGZvcm1f
Y29tcG9uZW50cygpCisgICAgICAgIHVybCA9ICJodHRwczovL2Rvd25sb2FkLnNlcnZvLm9yZy9u
aWdodGx5LyVzL3NlcnZvLWxhdGVzdCVzIiAlIChwbGF0Zm9ybSwgZXh0ZW5zaW9uKQorCisgICAg
ICAgIGRlY29tcHJlc3MoZ2V0KHVybCkucmF3LCBkZXN0PWRlc3QpCisgICAgICAgIHBhdGggPSBm
aW5kX2V4ZWN1dGFibGUoInNlcnZvIiwgb3MucGF0aC5qb2luKGRlc3QsICJzZXJ2byIpKQorICAg
ICAgICBzdCA9IG9zLnN0YXQocGF0aCkKKyAgICAgICAgb3MuY2htb2QocGF0aCwgc3Quc3RfbW9k
ZSB8IHN0YXQuU19JRVhFQykKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiBmaW5kX2Jp
bmFyeShzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgic2Vydm8iKQorCisg
ICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJvb3QpOgorICAgICAg
ICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nl
ci4iIiIKKyAgICAgICAgb3V0cHV0ID0gY2FsbChzZWxmLmJpbmFyeSwgIi0tdmVyc2lvbiIpCisg
ICAgICAgIHJldHVybiByZS5zZWFyY2gociJbMC05XC5dKyggW2Etel0rKT8kIiwgb3V0cHV0LnN0
cmlwKCkpLmdyb3VwKDApCisKKworY2xhc3MgU2F1Y2UoQnJvd3Nlcik6CisgICAgIiIiU2F1Y2Ut
c3BlY2lmaWMgaW50ZXJmYWNlLiIiIgorCisgICAgcHJvZHVjdCA9ICJzYXVjZSIKKyAgICByZXF1
aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX3NhdWNlLnR4dCIKKworICAgIGRlZiBpbnN0YWxsKHNl
bGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAg
IGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cgorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25l
KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHZlcnNpb24o
c2VsZiwgcm9vdCk6CisgICAgICAgIHJldHVybiBOb25lCisKK2NsYXNzIFdlYktpdChCcm93c2Vy
KToKKyAgICAiIiJXZWJLaXQtc3BlY2lmaWMgaW50ZXJmYWNlLiIiIgorCisgICAgcHJvZHVjdCA9
ICJ3ZWJraXQiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c193ZWJraXQudHh0Igor
CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHBhdGg9Tm9uZSk6Cisg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6CisgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZik6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJv
b3QpOgorICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY29tbWFuZHMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRz
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGVhNmIyNTI3NmZmNDgxMzQwYjU0YjRjNzIzNDBhMzc5MDQwMzgz
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24KQEAgLTAsMCArMSwxNSBAQAoreworICAg
ICJydW4iOiB7InBhdGgiOiAicnVuLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNy
ZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJSdW4gdGVzdHMgaW4gYSBicm93c2VyIiwKKyAgICAgICAg
ICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwgImluc3RhbGwiOiBbInJlcXVlc3RzIl0sICJyZXF1aXJl
bWVudHMiOiBbIi4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Il19LAorICAgICJ1cGRhdGUt
ZXhwZWN0YXRpb25zIjogeyJwYXRoIjogInVwZGF0ZS5weSIsICJzY3JpcHQiOiAidXBkYXRlX2V4
cGVjdGF0aW9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcnNlciI6ICJjcmVh
dGVfcGFyc2VyX3VwZGF0ZSIsICJoZWxwIjogIlVwZGF0ZSBleHBlY3RhdGlvbnMgZmlsZXMgZnJv
bSByYXcgbG9ncy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52Ijog
dHJ1ZSwgImluc3RhbGwiOiBbInJlcXVlc3RzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlcXVpcmVtZW50cyI6IFsiLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQiXX0sCisg
ICAgImZpbGVzLWNoYW5nZWQiOiB7InBhdGgiOiAidGVzdGZpbGVzLnB5IiwgInNjcmlwdCI6ICJy
dW5fY2hhbmdlZF9maWxlcyIsICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgICAgICAgICAg
ICAgICAgICAgImhlbHAiOiAiR2V0IGEgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgY2hhbmdlZCIs
ICJ2aXJ0dWFsZW52IjogZmFsc2V9LAorICAgICJ0ZXN0cy1hZmZlY3RlZCI6IHsicGF0aCI6ICJ0
ZXN0ZmlsZXMucHkiLCAic2NyaXB0IjogInJ1bl90ZXN0c19hZmZlY3RlZCIsICJwYXJzZXIiOiAi
Z2V0X3BhcnNlcl9hZmZlY3RlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIjogIkdl
dCBhIGxpc3Qgb2YgdGVzdHMgYWZmZWN0ZWQgYnkgY2hhbmdlcyIsICJ2aXJ0dWFsZW52IjogZmFs
c2V9LAorICAgICJpbnN0YWxsIjogeyJwYXRoIjogImluc3RhbGwucHkiLCAic2NyaXB0IjogInJ1
biIsICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsICJoZWxwIjogIkluc3RhbGwgYnJvd3NlciBjb21w
b25lbnRzIiwKKyAgICAgICAgICAgICAgICAiaW5zdGFsbCI6IFsibW96ZG93bmxvYWQiLCAibW96
aW5zdGFsbCJdfSwKKyAgICAiYnJhbmNoLXBvaW50IjogeyJwYXRoIjogInRlc3RmaWxlcy5weSIs
ICJzY3JpcHQiOiAiZGlzcGxheV9icmFuY2hfcG9pbnQiLCAicGFyc2VyIjogbnVsbCwgImhlbHAi
OiAiUHJpbnQgYnJhbmNoIHBvaW50IGZyb20gbWFzdGVyIiwgInZpcnR1YWxlbnYiOiBmYWxzZX0K
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L2luc3RhbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3Nzk2NTFjOTkw
ZTJiN2JhNzk4ZjA4NmU4MGY2ZGM4YmVhYzUyNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5
CkBAIC0wLDAgKzEsNDEgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGJyb3dzZXIKK2ltcG9y
dCBzeXMKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnYnJvd3NlcicsIGNob2ljZXM9Wydm
aXJlZm94JywgJ2Nocm9tZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nbmFtZSBv
ZiB3ZWIgYnJvd3NlciBwcm9kdWN0JykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdjb21wb25l
bnQnLCBjaG9pY2VzPVsnYnJvd3NlcicsICd3ZWJkcml2ZXInXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J25hbWUgb2YgY29tcG9uZW50JykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctZCcsICctLWRlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2Zp
bGVzeXN0ZW0gZGlyZWN0b3J5IHRvIHBsYWNlIHRoZSBjb21wb25lbnQnKQorICAgIHJldHVybiBw
YXJzZXIKKworCitkZWYgcnVuKHZlbnYsICoqa3dhcmdzKToKKyAgICBicm93c2VyID0ga3dhcmdz
WyJicm93c2VyIl0KKyAgICBkZXN0aW5hdGlvbiA9IGt3YXJnc1siZGVzdGluYXRpb24iXQorCisg
ICAgaWYgZGVzdGluYXRpb24gaXMgTm9uZToKKyAgICAgICAgaWYgdmVudjoKKyAgICAgICAgICAg
IGlmIGt3YXJnc1siY29tcG9uZW50Il0gPT0gImJyb3dzZXIiOgorICAgICAgICAgICAgICAgIGRl
c3RpbmF0aW9uID0gdmVudi5wYXRoCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IGRlc3RpbmF0aW9uID0gdmVudi5iaW5fcGF0aAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmFpc2UgYXJncGFyc2UuQXJndW1lbnRFcnJvcihOb25lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiTm8gLS1kZXN0aW5hdGlvbiBhcmd1bWVudCwgYW5kIG5vIGRl
ZmF1bHQgZm9yIHRoZSBlbnZpcm9ubWVudCIpCisKKyAgICBpbnN0YWxsKGJyb3dzZXIsIGt3YXJn
c1siY29tcG9uZW50Il0sIGRlc3RpbmF0aW9uKQorCisKK2RlZiBpbnN0YWxsKG5hbWUsIGNvbXBv
bmVudCwgZGVzdGluYXRpb24pOgorICAgIGlmIGNvbXBvbmVudCA9PSAnd2ViZHJpdmVyJzoKKyAg
ICAgICAgbWV0aG9kID0gJ2luc3RhbGxfd2ViZHJpdmVyJworICAgIGVsc2U6CisgICAgICAgIG1l
dGhvZCA9ICdpbnN0YWxsJworCisgICAgc3ViY2xhc3MgPSBnZXRhdHRyKGJyb3dzZXIsIG5hbWUu
dGl0bGUoKSkKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCdOb3cgaW5zdGFsbGluZyAlcyAlcy4uLlxu
JyAlIChuYW1lLCBjb21wb25lbnQpKQorICAgIGdldGF0dHIoc3ViY2xhc3MoKSwgbWV0aG9kKShk
ZXN0PWRlc3RpbmF0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFya2Rvd24ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9tYXJrZG93bi5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YjVmZjgwNzlkZjA4NTYxZWQ0ZjAxNGRlYTg3YTU4YzM1ODY5MmNkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvbWFya2Rvd24ucHkKQEAgLTAsMCArMSw0MCBAQAorZGVmIGZvcm1hdF9jb21tZW50X3Rp
dGxlKHByb2R1Y3QpOgorICAgICIiIlByb2R1Y2UgYSBNYXJrZG93bi1mb3JtYXR0ZWQgc3RyaW5n
IGJhc2VkIG9uIGEgZ2l2ZW4gInByb2R1Y3QiLS1hIHN0cmluZworICAgIGNvbnRhaW5pbmcgYSBi
cm93c2VyIGlkZW50aWZpZXIgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCBhCisg
ICAgcmVsZWFzZSBjaGFubmVsLiAoRm9yIGV4YW1wbGU6ICJmaXJlZm94IiBvciAiY2hyb21lOmRl
diIuKSBUaGUgZ2VuZXJhdGVkCisgICAgdGl0bGUgc3RyaW5nIGlzIHVzZWQgYm90aCB0byBjcmVh
dGUgbmV3IGNvbW1lbnRzIGFuZCB0byBsb2NhdGUgKGFuZAorICAgIHN1YnNlcXVlbnRseSB1cGRh
dGUpIHByZXZpb3VzbHktc3VibWl0dGVkIGNvbW1lbnRzLiIiIgorICAgIHBhcnRzID0gcHJvZHVj
dC5zcGxpdCgiOiIpCisgICAgdGl0bGUgPSBwYXJ0c1swXS50aXRsZSgpCisKKyAgICBpZiBsZW4o
cGFydHMpID4gMToKKyAgICAgICAgdGl0bGUgKz0gIiAoJXMpIiAlIHBhcnRzWzFdCisKKyAgICBy
ZXR1cm4gIiMgJXMgIyIgJSB0aXRsZQorCisKK2RlZiBtYXJrZG93bl9hZGp1c3Qocyk6CisgICAg
IiIiRXNjYXBlIHByb2JsZW1hdGljIG1hcmtkb3duIHNlcXVlbmNlcy4iIiIKKyAgICBzID0gcy5y
ZXBsYWNlKCdcdCcsIHUnXFx0JykKKyAgICBzID0gcy5yZXBsYWNlKCdcbicsIHUnXFxuJykKKyAg
ICBzID0gcy5yZXBsYWNlKCdccicsIHUnXFxyJykKKyAgICBzID0gcy5yZXBsYWNlKCdgJywgdScn
KQorICAgIHMgPSBzLnJlcGxhY2UoJ3wnLCB1J1xcfCcpCisgICAgcmV0dXJuIHMKKworCitkZWYg
dGFibGUoaGVhZGluZ3MsIGRhdGEsIGxvZyk6CisgICAgIiIiQ3JlYXRlIGFuZCBsb2cgZGF0YSB0
byBzcGVjaWZpZWQgbG9nZ2VyIGluIHRhYnVsYXIgZm9ybWF0LiIiIgorICAgIGNvbHMgPSByYW5n
ZShsZW4oaGVhZGluZ3MpKQorICAgIGFzc2VydCBhbGwobGVuKGl0ZW0pID09IGxlbihjb2xzKSBm
b3IgaXRlbSBpbiBkYXRhKQorICAgIG1heF93aWR0aHMgPSByZWR1Y2UobGFtYmRhIHByZXYsIGN1
cjogWyhsZW4oY3VyW2ldKSArIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbihjdXJbaV0pICsgMikgPiBwcmV2W2ldCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBwcmV2W2ldCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gY29sc10sCisgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgW2xlbihpdGVtKSArIDIg
Zm9yIGl0ZW0gaW4gaGVhZGluZ3NdKQorICAgIGxvZygifCVzfCIgJSAifCIuam9pbihpdGVtLmNl
bnRlcihtYXhfd2lkdGhzW2ldKSBmb3IgaSwgaXRlbSBpbiBlbnVtZXJhdGUoaGVhZGluZ3MpKSkK
KyAgICBsb2coInwlc3wiICUgInwiLmpvaW4oIi0iICogbWF4X3dpZHRoc1tpXSBmb3IgaSBpbiBj
b2xzKSkKKyAgICBmb3Igcm93IGluIGRhdGE6CisgICAgICAgIGxvZygifCVzfCIgJSAifCIuam9p
bigiICVzIiAlIHJvd1tpXS5sanVzdChtYXhfd2lkdGhzW2ldIC0gMSkgZm9yIGkgaW4gY29scykp
CisgICAgbG9nKCIiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9wYXRocwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWYxM2M5NmUz
OGM0NmExYmYwNjM2NzkyYTk5MzMxMjZkMWNhZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKQEAg
LTAsMCArMSw1IEBACit0b29scy9jaS8KK3Rvb2xzL2xpbnQvCit0b29scy9tYW5pZmVzdC8KK3Rv
b2xzL3NlcnZlLwordG9vbHMvd3B0LwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVt
ZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxYmFmN2UyM2YxNmY2MGI2NDY5ZDMwODk3MjVmYzZmYWQ0
ZGY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKQEAgLTAsMCArMSBAQAorcmVx
dWVzdHM9PTIuMTguNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiODcyZTZm
OGY5NGQwYzNmZTUxOGI0YjM5ZjlmNTFkOGQ4NjFiZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkK
QEAgLTAsMCArMSw0ODYgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgcGxh
dGZvcm0KK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBv
cnQgdGFyZmlsZQorZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQor
Cit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIG9z
LnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIpKSkKKworZnJvbSAu
IGltcG9ydCBicm93c2VyLCB1dGlscywgdmlydHVhbGVudgorZnJvbSAuLnNlcnZlIGltcG9ydCBz
ZXJ2ZQorCitsb2dnZXIgPSBOb25lCisKKworY2xhc3MgV3B0cnVuRXJyb3IoRXhjZXB0aW9uKToK
KyAgICBwYXNzCisKKworY2xhc3MgV3B0cnVubmVySGVscEFjdGlvbihhcmdwYXJzZS5BY3Rpb24p
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICBvcHRpb25fc3RyaW5n
cywKKyAgICAgICAgICAgICAgICAgZGVzdD1hcmdwYXJzZS5TVVBQUkVTUywKKyAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1hcmdwYXJzZS5TVVBQUkVTUywKKyAgICAgICAgICAgICAgICAgaGVscD1O
b25lKToKKyAgICAgICAgc3VwZXIoV3B0cnVubmVySGVscEFjdGlvbiwgc2VsZikuX19pbml0X18o
CisgICAgICAgICAgICBvcHRpb25fc3RyaW5ncz1vcHRpb25fc3RyaW5ncywKKyAgICAgICAgICAg
IGRlc3Q9ZGVzdCwKKyAgICAgICAgICAgIGRlZmF1bHQ9ZGVmYXVsdCwKKyAgICAgICAgICAgIG5h
cmdzPTAsCisgICAgICAgICAgICBoZWxwPWhlbHApCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwg
cGFyc2VyLCBuYW1lc3BhY2UsIHZhbHVlcywgb3B0aW9uX3N0cmluZz1Ob25lKToKKyAgICAgICAg
ZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdGNvbW1hbmRsaW5lCisgICAgICAgIHdwdHBhcnNlciA9
IHdwdGNvbW1hbmRsaW5lLmNyZWF0ZV9wYXJzZXIoKQorICAgICAgICB3cHRwYXJzZXIudXNhZ2Ug
PSBwYXJzZXIudXNhZ2UKKyAgICAgICAgd3B0cGFyc2VyLnByaW50X2hlbHAoKQorICAgICAgICBw
YXJzZXIuZXhpdCgpCisKKworZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICBmcm9tIHdwdHJ1bm5l
ciBpbXBvcnQgd3B0Y29tbWFuZGxpbmUKKworICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKGFkZF9oZWxwPUZhbHNlKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInByb2R1Y3Qi
LCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkJyb3dzZXIg
dG8gcnVuIHRlc3RzIGluIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXllcyIsICIteSIs
IGRlc3Q9InByb21wdCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PVRydWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBwcm9tcHQgYmVmb3JlIGluc3RhbGxpbmcg
Y29tcG9uZW50cyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zdGFiaWxpdHkiLCBhY3Rp
b249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU3RhYmlsaXR5
IGNoZWNrIHRlc3RzIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWluc3RhbGwtYnJvd3Nl
ciIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJJ
bnN0YWxsIHRoZSBsYXRlc3QgZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZiB0aGUgYnJvd3NlciIpCisg
ICAgcGFyc2VyLl9hZGRfY29udGFpbmVyX2FjdGlvbnMod3B0Y29tbWFuZGxpbmUuY3JlYXRlX3Bh
cnNlcigpKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgZXhpdChtc2cpOgorICAgIGxvZ2dl
ci5lcnJvcihtc2cpCisgICAgc3lzLmV4aXQoMSkKKworCitkZWYgYXJnc19nZW5lcmFsKGt3YXJn
cyk6CisgICAga3dhcmdzLnNldF9pZl9ub25lKCJ0ZXN0c19yb290Iiwgd3B0X3Jvb3QpCisgICAg
a3dhcmdzLnNldF9pZl9ub25lKCJtZXRhZGF0YV9yb290Iiwgd3B0X3Jvb3QpCisgICAga3dhcmdz
LnNldF9pZl9ub25lKCJtYW5pZmVzdF91cGRhdGUiLCBUcnVlKQorICAgIGt3YXJncy5zZXRfaWZf
bm9uZSgibWFuaWZlc3RfZG93bmxvYWQiLCBUcnVlKQorCisgICAgaWYga3dhcmdzWyJzc2xfdHlw
ZSJdIGluIChOb25lLCAicHJlZ2VuZXJhdGVkIik6CisgICAgICAgIGNlcnRfcm9vdCA9IG9zLnBh
dGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgImNlcnRzIikKKyAgICAgICAgaWYga3dhcmdzWyJj
YV9jZXJ0X3BhdGgiXSBpcyBOb25lOgorICAgICAgICAgICAga3dhcmdzWyJjYV9jZXJ0X3BhdGgi
XSA9IG9zLnBhdGguam9pbihjZXJ0X3Jvb3QsICJjYWNlcnQucGVtIikKKworICAgICAgICBpZiBr
d2FyZ3NbImhvc3Rfa2V5X3BhdGgiXSBpcyBOb25lOgorICAgICAgICAgICAga3dhcmdzWyJob3N0
X2tleV9wYXRoIl0gPSBvcy5wYXRoLmpvaW4oY2VydF9yb290LCAid2ViLXBsYXRmb3JtLnRlc3Qu
a2V5IikKKworICAgICAgICBpZiBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0gaXMgTm9uZToKKyAg
ICAgICAgICAgIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSA9IG9zLnBhdGguam9pbihjZXJ0X3Jv
b3QsICJ3ZWItcGxhdGZvcm0udGVzdC5wZW0iKQorICAgIGVsaWYga3dhcmdzWyJzc2xfdHlwZSJd
ID09ICJvcGVuc3NsIjoKKyAgICAgICAgaWYgbm90IGZpbmRfZXhlY3V0YWJsZShrd2FyZ3NbIm9w
ZW5zc2xfYmluYXJ5Il0pOgorICAgICAgICAgICAgaWYgb3MudW5hbWUoKVswXSA9PSAiV2luZG93
cyI6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIiIiT3BlblNTTCBiaW5hcnkg
bm90IGZvdW5kLiBJZiB5b3UgbmVlZCBIVFRQUyB0ZXN0cywgaW5zdGFsbCBPcGVuU1NMIGZyb20K
KworaHR0cHM6Ly9zbHByb3dlYi5jb20vcHJvZHVjdHMvV2luMzJPcGVuU1NMLmh0bWwKKworRW5z
dXJpbmcgdGhhdCBsaWJyYXJpZXMgYXJlIGFkZGVkIHRvIC9iaW4gYW5kIGFkZCB0aGUgcmVzdWx0
aW5nIGJpbiBkaXJlY3RvcnkgdG8KK3lvdXIgUEFUSC4KKworT3RoZXJ3aXNlIHJ1biB3aXRoIC0t
c3NsLXR5cGU9bm9uZSIiIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFp
c2UgV3B0cnVuRXJyb3IoIiIiT3BlblNTTCBub3QgZm91bmQuIElmIHlvdSBkb24ndCBuZWVkIEhU
VFBTIHN1cHBvcnQgcnVuIHdpdGggLS1zc2wtdHlwZT1ub25lLAorb3RoZXJ3aXNlIGluc3RhbGwg
T3BlblNTTCBhbmQgZW5zdXJlIHRoYXQgaXQncyBvbiB5b3VyICRQQVRILiIiIikKKworCitkZWYg
Y2hlY2tfZW52aXJvbihwcm9kdWN0KToKKyAgICBpZiBwcm9kdWN0IG5vdCBpbiAoImZpcmVmb3gi
LCAic2Vydm8iKToKKyAgICAgICAgY29uZmlnID0gc2VydmUubG9hZF9jb25maWcob3MucGF0aC5q
b2luKHdwdF9yb290LCAiY29uZmlnLmRlZmF1bHQuanNvbiIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJjb25maWcuanNvbiIpKQor
ICAgICAgICBjb25maWcgPSBzZXJ2ZS5ub3JtYWxpc2VfY29uZmlnKGNvbmZpZywge30pCisgICAg
ICAgIGV4cGVjdGVkX2hvc3RzID0gKHNldChjb25maWdbImRvbWFpbnMiXS5pdGVydmFsdWVzKCkp
IF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KGNvbmZpZ1sibm90X2RvbWFpbnMiXS5p
dGVydmFsdWVzKCkpKQorICAgICAgICBtaXNzaW5nX2hvc3RzID0gc2V0KGV4cGVjdGVkX2hvc3Rz
KQorICAgICAgICBpZiBwbGF0Zm9ybS51bmFtZSgpWzBdICE9ICJXaW5kb3dzIjoKKyAgICAgICAg
ICAgIGhvc3RzX3BhdGggPSAiL2V0Yy9ob3N0cyIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGhvc3RzX3BhdGggPSAiQzpcV2luZG93c1xTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIKKyAg
ICAgICAgd2l0aCBvcGVuKGhvc3RzX3BhdGgsICJyIikgYXMgZjoKKyAgICAgICAgICAgIGZvciBs
aW5lIGluIGY6CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXQoIiMiLCAxKVswXS5z
dHJpcCgpCisgICAgICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0KCkKKyAgICAgICAgICAg
ICAgICBob3N0cyA9IHBhcnRzWzE6XQorICAgICAgICAgICAgICAgIGZvciBob3N0IGluIGhvc3Rz
OgorICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX2hvc3RzLmRpc2NhcmQoaG9zdCkKKyAgICAg
ICAgICAgIGlmIG1pc3NpbmdfaG9zdHM6CisgICAgICAgICAgICAgICAgaWYgcGxhdGZvcm0udW5h
bWUoKVswXSAhPSAiV2luZG93cyI6CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiIiJN
aXNzaW5nIGhvc3RzIGZpbGUgY29uZmlndXJhdGlvbi4gUnVuCisKK3B5dGhvbiB3cHQgbWFrZS1o
b3N0cy1maWxlID4+ICVzCisKK2Zyb20gYSBzaGVsbCB3aXRoIEFkbWluaXN0cmF0b3IgcHJpdmls
ZWdlcy4iIiIgJSBob3N0c19wYXRoCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9ICIiIk1pc3NpbmcgaG9zdHMgZmlsZSBjb25maWd1cmF0aW9uLiBS
dW4KKworLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgJXMiIiIgJSBob3N0c19w
YXRoCisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IobWVzc2FnZSkKKworCitjbGFz
cyBCcm93c2VyU2V0dXAob2JqZWN0KToKKyAgICBuYW1lID0gTm9uZQorICAgIGJyb3dzZXJfY2xz
ID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlbnYsIHByb21wdD1UcnVlLCBzdWJf
cHJvZHVjdD1Ob25lKToKKyAgICAgICAgc2VsZi5icm93c2VyID0gc2VsZi5icm93c2VyX2Nscygp
CisgICAgICAgIHNlbGYudmVudiA9IHZlbnYKKyAgICAgICAgc2VsZi5wcm9tcHQgPSBwcm9tcHQK
KyAgICAgICAgc2VsZi5zdWJfcHJvZHVjdCA9IHN1Yl9wcm9kdWN0CisKKyAgICBkZWYgcHJvbXB0
X2luc3RhbGwoc2VsZiwgY29tcG9uZW50KToKKyAgICAgICAgaWYgbm90IHNlbGYucHJvbXB0Ogor
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IHJlc3AgPSByYXdfaW5wdXQoIkRvd25sb2FkIGFuZCBpbnN0YWxsICVzIFtZL25dPyAiICUgY29t
cG9uZW50KS5zdHJpcCgpLmxvd2VyKCkKKyAgICAgICAgICAgIGlmIG5vdCByZXNwIG9yIHJlc3Ag
PT0gInkiOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBlbGlmIHJl
c3AgPT0gIm4iOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGluc3Rh
bGwoc2VsZiwgdmVudik6CisgICAgICAgIGlmIHNlbGYucHJvbXB0X2luc3RhbGwoc2VsZi5uYW1l
KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbCh2ZW52LnBhdGgpCisK
KyAgICBkZWYgaW5zdGFsbF9yZXF1aXJlbWVudHMoc2VsZik6CisgICAgICAgIHNlbGYudmVudi5p
bnN0YWxsX3JlcXVpcmVtZW50cyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3cHRy
dW5uZXIiLCBzZWxmLmJyb3dzZXIucmVxdWlyZW1lbnRzKSkKKworICAgIGRlZiBzZXR1cChzZWxm
LCBrd2FyZ3MpOgorICAgICAgICBzZWxmLnNldHVwX2t3YXJncyhrd2FyZ3MpCisKKworY2xhc3Mg
RmlyZWZveChCcm93c2VyU2V0dXApOgorICAgIG5hbWUgPSAiZmlyZWZveCIKKyAgICBicm93c2Vy
X2NscyA9IGJyb3dzZXIuRmlyZWZveAorCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2Fy
Z3MpOgorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICBi
aW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnkoc2VsZi52ZW52LnBhdGgpCisgICAgICAg
ICAgICBpZiBiaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJv
cigiIiJGaXJlZm94IGJpbmFyeSBub3QgZm91bmQgb24gJFBBVEguCisKK0luc3RhbGwgRmlyZWZv
eCBvciB1c2UgLS1iaW5hcnkgdG8gc2V0IHRoZSBiaW5hcnkgcGF0aCIiIikKKyAgICAgICAgICAg
IGt3YXJnc1siYmluYXJ5Il0gPSBiaW5hcnkKKworICAgICAgICBpZiBrd2FyZ3NbImNlcnR1dGls
X2JpbmFyeSJdIGlzIE5vbmUgYW5kIGt3YXJnc1sic3NsX3R5cGUiXSAhPSAibm9uZSI6CisgICAg
ICAgICAgICBjZXJ0dXRpbCA9IHNlbGYuYnJvd3Nlci5maW5kX2NlcnR1dGlsKCkKKworICAgICAg
ICAgICAgaWYgY2VydHV0aWwgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIENhbid0IGRvd25s
b2FkIHRoaXMgZm9yIG5vdyBiZWNhdXNlIGl0J3MgbWlzc2luZyB0aGUgbGlibnNzMyBsaWJyYXJ5
CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIiIiQ2FuJ3QgZmluZCBjZXJ0dXRpbCwgY2Vy
dGlmaWNhdGVzIHdpbGwgbm90IGJlIGNoZWNrZWQuCitDb25zaWRlciBpbnN0YWxsaW5nIGNlcnR1
dGlsIHZpYSB5b3VyIE9TIHBhY2thZ2UgbWFuYWdlciBvciBkaXJlY3RseS4iIiIpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyBjZXJ0dXRpbCAlcyIgJSBj
ZXJ0dXRpbCkKKworICAgICAgICAgICAga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSA9IGNlcnR1
dGlsCisKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZSBhbmQg
Indkc3BlYyIgaW4ga3dhcmdzWyJ0ZXN0X3R5cGVzIl06CisgICAgICAgICAgICB3ZWJkcml2ZXJf
YmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAgICAgaWYg
d2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGluc3RhbGwgPSBzZWxm
LnByb21wdF9pbnN0YWxsKCJnZWNrb2RyaXZlciIpCisKKyAgICAgICAgICAgICAgICBpZiBpbnN0
YWxsOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgZ2Vja29kcml2ZXIi
KQorICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmlu
c3RhbGxfd2ViZHJpdmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBwcmludCgiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3
ZWJkcml2ZXJfYmluYXJ5KQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgorICAg
ICAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFy
eQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgiVW5hYmxlIHRvIGZp
bmQgb3IgaW5zdGFsbCBnZWNrb2RyaXZlciwgc2tpcHBpbmcgd2RzcGVjIHRlc3RzIikKKyAgICAg
ICAgICAgICAgICBrd2FyZ3NbInRlc3RfdHlwZXMiXS5yZW1vdmUoIndkc3BlYyIpCisKKyAgICAg
ICAgaWYga3dhcmdzWyJwcmVmc19yb290Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHByaW50KCJE
b3dubG9hZGluZyBnZWNrbyBwcmVmcyIpCisgICAgICAgICAgICBwcmVmc19yb290ID0gc2VsZi5i
cm93c2VyLmluc3RhbGxfcHJlZnMoc2VsZi52ZW52LnBhdGgpCisgICAgICAgICAgICBrd2FyZ3Nb
InByZWZzX3Jvb3QiXSA9IHByZWZzX3Jvb3QKKworCitjbGFzcyBDaHJvbWUoQnJvd3NlclNldHVw
KToKKyAgICBuYW1lID0gImNocm9tZSIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuQ2hyb21l
CisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAgIGlmIGt3YXJn
c1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmlu
YXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAgICAgaWYgd2Vi
ZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGluc3RhbGwgPSBzZWxmLnBy
b21wdF9pbnN0YWxsKCJjaHJvbWVkcml2ZXIiKQorCisgICAgICAgICAgICAgICAgaWYgaW5zdGFs
bDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5nIGNocm9tZWRyaXZlciIp
CisgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5z
dGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxmLnZlbnYuYmluX3BhdGgpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdl
YmRyaXZlcl9iaW5hcnkpCisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnk6CisgICAg
ICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJV
bmFibGUgdG8gbG9jYXRlIG9yIGluc3RhbGwgY2hyb21lZHJpdmVyIGJpbmFyeSIpCisKKworY2xh
c3MgQ2hyb21lQW5kcm9pZChCcm93c2VyU2V0dXApOgorICAgIG5hbWUgPSAiY2hyb21lX2FuZHJv
aWQiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNocm9tZUFuZHJvaWQKKworICAgIGRlZiBz
ZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJf
YmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJy
b3dzZXIuZmluZF93ZWJkcml2ZXIoKQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaW5zdGFsbCA9IHNlbGYucHJvbXB0X2luc3RhbGwo
ImNocm9tZWRyaXZlciIpCisKKyAgICAgICAgICAgICAgICBpZiBpbnN0YWxsOgorICAgICAgICAg
ICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgY2hyb21lZHJpdmVyIikKKyAgICAgICAgICAg
ICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZl
cihkZXN0PXNlbGYudmVudi5iaW5fcGF0aCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcHJpbnQoIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFy
eSkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2Nh
dGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIgYmluYXJ5IikKKworCitjbGFzcyBPcGVyYShCcm93
c2VyU2V0dXApOgorICAgIG5hbWUgPSAib3BlcmEiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2Vy
Lk9wZXJhCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAgIGlm
IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2
ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAgICAg
aWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGluc3RhbGwgPSBz
ZWxmLnByb21wdF9pbnN0YWxsKCJvcGVyYWRyaXZlciIpCisKKyAgICAgICAgICAgICAgICBpZiBp
bnN0YWxsOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgb3BlcmFkcml2
ZXIiKQorICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2Vy
Lmluc3RhbGxfd2ViZHJpdmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIg
JSB3ZWJkcml2ZXJfYmluYXJ5KQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5Ogor
ICAgICAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2Jp
bmFyeQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJv
cigiVW5hYmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIG9wZXJhZHJpdmVyIGJpbmFyeSIpCisKKwor
Y2xhc3MgRWRnZShCcm93c2VyU2V0dXApOgorICAgIG5hbWUgPSAiZWRnZSIKKyAgICBicm93c2Vy
X2NscyA9IGJyb3dzZXIuRWRnZQorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2Vs
Ziwga3dhcmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9u
ZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF93ZWJk
cml2ZXIoKQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAg
ICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIiIiVW5hYmxlIHRvIGZpbmQgV2ViRHJpdmVy
IGFuZCB3ZSBhcmVuJ3QgeWV0IGNsZXZlciBlbm91Z2ggdG8gd29yayBvdXQgd2hpY2gKK3ZlcnNp
b24gdG8gZG93bmxvYWQuIFBsZWFzZSBnbyB0byB0aGUgZm9sbG93aW5nIFVSTCBhbmQgaW5zdGFs
bCB0aGUgY29ycmVjdAordmVyc2lvbiBmb3IgeW91ciBFZGdlL1dpbmRvd3MgcmVsZWFzZSBzb21l
d2hlcmUgb24gdGhlICVQQVRIJToKKworaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9l
bi11cy9taWNyb3NvZnQtZWRnZS90b29scy93ZWJkcml2ZXIvCisiIiIpCisgICAgICAgICAgICBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKworCitjbGFzcyBJ
bnRlcm5ldEV4cGxvcmVyKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9ICJpZSIKKyAgICBicm93
c2VyX2NscyA9IGJyb3dzZXIuSW50ZXJuZXRFeHBsb3JlcgorCisgICAgZGVmIGluc3RhbGwoc2Vs
ZiwgdmVudik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBz
ZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJf
YmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJy
b3dzZXIuZmluZF93ZWJkcml2ZXIoKQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIiIiVW5hYmxlIHRv
IGZpbmQgV2ViRHJpdmVyIGFuZCB3ZSBhcmVuJ3QgeWV0IGNsZXZlciBlbm91Z2ggdG8gd29yayBv
dXQgd2hpY2gKK3ZlcnNpb24gdG8gZG93bmxvYWQuIFBsZWFzZSBnbyB0byB0aGUgZm9sbG93aW5n
IFVSTCBhbmQgaW5zdGFsbCB0aGUgZHJpdmVyIGZvciBJbnRlcm5ldCBFeHBsb3Jlcgorc29tZXdo
ZXJlIG9uIHRoZSAlUEFUSCU6CisKK2h0dHBzOi8vc2VsZW5pdW0tcmVsZWFzZS5zdG9yYWdlLmdv
b2dsZWFwaXMuY29tL2luZGV4Lmh0bWwKKyIiIikKKyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJp
dmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQorCisKK2NsYXNzIFNhZmFyaShCcm93c2Vy
U2V0dXApOgorICAgIG5hbWUgPSAic2FmYXJpIgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5T
YWZhcmkKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6Cisg
ICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAg
ICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAg
ICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJh
aXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIHNhZmFyaWRyaXZlciBiaW5hcnkiKQor
CisgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5h
cnkKKworCitjbGFzcyBTYXVjZShCcm93c2VyU2V0dXApOgorICAgIG5hbWUgPSAic2F1Y2UiCisg
ICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLlNhdWNlCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCB2
ZW52KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHNldHVw
X2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBrd2FyZ3Muc2V0X2lmX25vbmUoInNhdWNl
X2Jyb3dzZXIiLCBzZWxmLnN1Yl9wcm9kdWN0WzBdKQorICAgICAgICBrd2FyZ3Muc2V0X2lmX25v
bmUoInNhdWNlX3ZlcnNpb24iLCBzZWxmLnN1Yl9wcm9kdWN0WzFdKQorICAgICAgICBrd2FyZ3Nb
InRlc3RfdHlwZXMiXSA9IFsidGVzdGhhcm5lc3MiLCAicmVmdGVzdCJdCisKKworY2xhc3MgU2Vy
dm8oQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gInNlcnZvIgorICAgIGJyb3dzZXJfY2xzID0g
YnJvd3Nlci5TZXJ2bworCisgICAgZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgICAgIGlm
IHNlbGYucHJvbXB0X2luc3RhbGwoc2VsZi5uYW1lKToKKyAgICAgICAgICAgIHJldHVybiBzZWxm
LmJyb3dzZXIuaW5zdGFsbCh2ZW52LnBhdGgpCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYs
IGt3YXJncyk6CisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAg
ICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeSgpCisKKyAgICAgICAgICAgIGlm
IGJpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFi
bGUgdG8gZmluZCBzZXJ2byBiaW5hcnkgb24gdGhlIFBBVEgiKQorICAgICAgICAgICAga3dhcmdz
WyJiaW5hcnkiXSA9IGJpbmFyeQorCisKK2NsYXNzIFdlYktpdChCcm93c2VyU2V0dXApOgorICAg
IG5hbWUgPSAid2Via2l0IgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5XZWJLaXQKKworICAg
IGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAgIHBhc3MK
KworCitwcm9kdWN0X3NldHVwID0geworICAgICJmaXJlZm94IjogRmlyZWZveCwKKyAgICAiY2hy
b21lIjogQ2hyb21lLAorICAgICJjaHJvbWVfYW5kcm9pZCI6IENocm9tZUFuZHJvaWQsCisgICAg
ImVkZ2UiOiBFZGdlLAorICAgICJpZSI6IEludGVybmV0RXhwbG9yZXIsCisgICAgInNhZmFyaSI6
IFNhZmFyaSwKKyAgICAic2Vydm8iOiBTZXJ2bywKKyAgICAic2F1Y2UiOiBTYXVjZSwKKyAgICAi
b3BlcmEiOiBPcGVyYSwKKyAgICAid2Via2l0IjogV2ViS2l0LAorfQorCisKK2RlZiBzZXR1cF93
cHRydW5uZXIodmVudiwgcHJvbXB0PVRydWUsIGluc3RhbGw9RmFsc2UsICoqa3dhcmdzKToKKyAg
ICBmcm9tIHdwdHJ1bm5lciBpbXBvcnQgd3B0cnVubmVyLCB3cHRjb21tYW5kbGluZQorCisgICAg
Z2xvYmFsIGxvZ2dlcgorCisgICAga3dhcmdzID0gdXRpbHMuS3dhcmdzKGt3YXJncy5pdGVyaXRl
bXMoKSkKKworICAgIHByb2R1Y3RfcGFydHMgPSBrd2FyZ3NbInByb2R1Y3QiXS5zcGxpdCgiOiIp
CisgICAga3dhcmdzWyJwcm9kdWN0Il0gPSBwcm9kdWN0X3BhcnRzWzBdCisgICAgc3ViX3Byb2R1
Y3QgPSBwcm9kdWN0X3BhcnRzWzE6XQorCisgICAgd3B0cnVubmVyLnNldHVwX2xvZ2dpbmcoa3dh
cmdzLCB7Im1hY2giOiBzeXMuc3Rkb3V0fSkKKyAgICBsb2dnZXIgPSB3cHRydW5uZXIubG9nZ2Vy
CisKKyAgICBjaGVja19lbnZpcm9uKGt3YXJnc1sicHJvZHVjdCJdKQorICAgIGFyZ3NfZ2VuZXJh
bChrd2FyZ3MpCisKKyAgICBpZiBrd2FyZ3NbInByb2R1Y3QiXSBub3QgaW4gcHJvZHVjdF9zZXR1
cDoKKyAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuc3VwcG9ydGVkIHByb2R1Y3QgJXMiICUg
a3dhcmdzWyJwcm9kdWN0Il0pCisKKyAgICBzZXR1cF9jbHMgPSBwcm9kdWN0X3NldHVwW2t3YXJn
c1sicHJvZHVjdCJdXSh2ZW52LCBwcm9tcHQsIHN1Yl9wcm9kdWN0KQorICAgIHNldHVwX2Nscy5p
bnN0YWxsX3JlcXVpcmVtZW50cygpCisKKyAgICBpZiBpbnN0YWxsOgorICAgICAgICBsb2dnZXIu
aW5mbygiSW5zdGFsbGluZyBicm93c2VyIikKKyAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IHNl
dHVwX2Nscy5pbnN0YWxsKHZlbnYpCisKKyAgICBzZXR1cF9jbHMuc2V0dXAoa3dhcmdzKQorCisg
ICAgd3B0Y29tbWFuZGxpbmUuY2hlY2tfYXJncyhrd2FyZ3MpCisKKyAgICB3cHRydW5uZXJfcGF0
aCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1bm5lciIpCisKKyAgICB2
ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRydW5uZXJfcGF0aCwgInJl
cXVpcmVtZW50cy50eHQiKSkKKworICAgIHJldHVybiBrd2FyZ3MKKworCitkZWYgcnVuKHZlbnYs
ICoqa3dhcmdzKToKKyAgICAjUmVtb3ZlIGFyZ3VtZW50cyB0aGF0IGFyZW4ndCBwYXNzZWQgdG8g
d3B0cnVubmVyCisgICAgcHJvbXB0ID0ga3dhcmdzLnBvcCgicHJvbXB0IiwgVHJ1ZSkKKyAgICBz
dGFiaWxpdHkgPSBrd2FyZ3MucG9wKCJzdGFiaWxpdHkiLCBUcnVlKQorICAgIGluc3RhbGxfYnJv
d3NlciA9IGt3YXJncy5wb3AoImluc3RhbGxfYnJvd3NlciIsIEZhbHNlKQorCisgICAga3dhcmdz
ID0gc2V0dXBfd3B0cnVubmVyKHZlbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
b21wdD1wcm9tcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGw9aW5zdGFs
bF9icm93c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKworICAg
IGlmIHN0YWJpbGl0eToKKyAgICAgICAgaW1wb3J0IHN0YWJpbGl0eQorICAgICAgICBpdGVyYXRp
b25zLCByZXN1bHRzLCBpbmNvbnNpc3RlbnQgPSBzdGFiaWxpdHkucnVuKHZlbnYsIGxvZ2dlciwg
Kiprd2FyZ3MpCisKKyAgICAgICAgZGVmIGxvZyh4KToKKyAgICAgICAgICAgIHByaW50KHgpCisK
KyAgICAgICAgaWYgaW5jb25zaXN0ZW50OgorICAgICAgICAgICAgc3RhYmlsaXR5LndyaXRlX2lu
Y29uc2lzdGVudChsb2csIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucykKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGxvZygiQWxsIHRlc3RzIHN0YWJsZSIpCisgICAgICAgIHJ2ID0gbGVuKGlu
Y29uc2lzdGVudCkgPiAwCisgICAgZWxzZToKKyAgICAgICAgcnYgPSBydW5fc2luZ2xlKHZlbnYs
ICoqa3dhcmdzKSA+IDAKKworICAgIHJldHVybiBydgorCisKK2RlZiBydW5fc2luZ2xlKHZlbnYs
ICoqa3dhcmdzKToKKyAgICBmcm9tIHdwdHJ1bm5lciBpbXBvcnQgd3B0cnVubmVyCisgICAgcmV0
dXJuIHdwdHJ1bm5lci5zdGFydCgqKmt3YXJncykKKworCitkZWYgbWFpbigpOgorICAgIHRyeToK
KyAgICAgICAgcGFyc2VyID0gY3JlYXRlX3BhcnNlcigpCisgICAgICAgIGFyZ3MgPSBwYXJzZXIu
cGFyc2VfYXJncygpCisKKyAgICAgICAgdmVudiA9IHZpcnR1YWxlbnYuVmlydHVhbGVudihvcy5w
YXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudl8lcyIpICUgcGxhdGZvcm0udW5hbWUoKVswXSkKKyAg
ICAgICAgdmVudi5zdGFydCgpCisgICAgICAgIHZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMob3Mu
cGF0aC5qb2luKHdwdF9yb290LCAidG9vbHMiLCAid3B0cnVubmVyIiwgInJlcXVpcmVtZW50cy50
eHQiKSkKKyAgICAgICAgdmVudi5pbnN0YWxsKCJyZXF1ZXN0cyIpCisKKyAgICAgICAgcmV0dXJu
IHJ1bih2ZW52LCB2YXJzKGFyZ3MpKQorICAgIGV4Y2VwdCBXcHRydW5FcnJvciBhcyBlOgorICAg
ICAgICBleGl0KGUubWVzc2FnZSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAg
IGltcG9ydCBwZGIKKyAgICBmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzCisgICAgdHJ5Ogor
ICAgICAgICBtYWluKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBwZGIucG9zdF9t
b3J0ZW0oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvc3RhYmlsaXR5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvc3RhYmlsaXR5LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIz
Yzg1NzAwZWMzODVkNzNlM2ViZjZlZDRkYjAxMmFlMzdiYzUxNDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9z
dGFiaWxpdHkucHkKQEAgLTAsMCArMSwxOTUgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QsIGRlZmF1bHRkaWN0CisKK2Zyb20gbW96
bG9nIGltcG9ydCByZWFkZXIKK2Zyb20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IEpTT05Gb3Jt
YXR0ZXIsIFRicGxGb3JtYXR0ZXIKK2Zyb20gbW96bG9nLmhhbmRsZXJzIGltcG9ydCBCYXNlSGFu
ZGxlciwgTG9nTGV2ZWxGaWx0ZXIsIFN0cmVhbUhhbmRsZXIKKworZnJvbSBtYXJrZG93biBpbXBv
cnQgbWFya2Rvd25fYWRqdXN0LCB0YWJsZQorZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdHJ1bm5l
cgorCisKK2NsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CisKKyAgICAiIiJIYW5k
bGVyIHRoYXQgZmlsdGVycyBvdXQgbWVzc2FnZXMgbm90IG9mIGEgZ2l2ZW4gc2V0IG9mIGFjdGlv
bnMuCisKKyAgICBTdWJjbGFzc2VzIEJhc2VIYW5kbGVyLgorCisgICAgOnBhcmFtIGlubmVyOiBI
YW5kbGVyIHRvIHVzZSBmb3IgbWVzc2FnZXMgdGhhdCBwYXNzIHRoaXMgZmlsdGVyCisgICAgOnBh
cmFtIGFjdGlvbnM6IExpc3Qgb2YgYWN0aW9ucyBmb3Igd2hpY2ggdG8gZmlyZSB0aGUgaGFuZGxl
cgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlubmVyLCBhY3Rpb25zKToKKyAg
ICAgICAgIiIiRXh0ZW5kIEJhc2VIYW5kbGVyIGFuZCBzZXQgaW5uZXIgYW5kIGFjdGlvbnMgcHJv
cHMgb24gc2VsZi4iIiIKKyAgICAgICAgQmFzZUhhbmRsZXIuX19pbml0X18oc2VsZiwgaW5uZXIp
CisgICAgICAgIHNlbGYuaW5uZXIgPSBpbm5lcgorICAgICAgICBzZWxmLmFjdGlvbnMgPSBhY3Rp
b25zCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgaXRlbSk6CisgICAgICAgICIiIkludm9rZSBo
YW5kbGVyIGlmIGFjdGlvbiBpcyBpbiBsaXN0IHBhc3NlZCBhcyBjb25zdHJ1Y3RvciBwYXJhbS4i
IiIKKyAgICAgICAgaWYgaXRlbVsiYWN0aW9uIl0gaW4gc2VsZi5hY3Rpb25zOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuaW5uZXIoaXRlbSkKKworCitjbGFzcyBMb2dIYW5kbGVyKHJlYWRlci5M
b2dIYW5kbGVyKToKKworICAgICIiIkhhbmRsZSB1cGRhdGluZyB0ZXN0IGFuZCBzdWJ0ZXN0IHN0
YXR1cyBpbiBsb2cuCisKKyAgICBTdWJjbGFzc2VzIHJlYWRlci5Mb2dIYW5kbGVyLgorICAgICIi
IgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXN1bHRzID0gT3JkZXJl
ZERpY3QoKQorCisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3Rlc3Qoc2VsZiwgZGF0YSk6CisgICAg
ICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICBpZiBzZWxmLnJlc3VsdHMuZ2V0
KHRlc3RfbmFtZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzW3Rlc3RfbmFtZV0K
KworICAgICAgICB0ZXN0ID0geworICAgICAgICAgICAgInN1YnRlc3RzIjogT3JkZXJlZERpY3Qo
KSwKKyAgICAgICAgICAgICJzdGF0dXMiOiBkZWZhdWx0ZGljdChpbnQpCisgICAgICAgIH0KKyAg
ICAgICAgc2VsZi5yZXN1bHRzW3Rlc3RfbmFtZV0gPSB0ZXN0CisgICAgICAgIHJldHVybiB0ZXN0
CisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfc3VidGVzdChzZWxmLCBkYXRhKToKKyAgICAgICAg
dGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICBzdWJ0ZXN0X25h
bWUgPSBkYXRhWyJzdWJ0ZXN0Il0KKworICAgICAgICBpZiB0ZXN0WyJzdWJ0ZXN0cyJdLmdldChz
dWJ0ZXN0X25hbWUpOgorICAgICAgICAgICAgcmV0dXJuIHRlc3RbInN1YnRlc3RzIl1bc3VidGVz
dF9uYW1lXQorCisgICAgICAgIHN1YnRlc3QgPSB7CisgICAgICAgICAgICAic3RhdHVzIjogZGVm
YXVsdGRpY3QoaW50KSwKKyAgICAgICAgICAgICJtZXNzYWdlcyI6IHNldCgpCisgICAgICAgIH0K
KyAgICAgICAgdGVzdFsic3VidGVzdHMiXVtzdWJ0ZXN0X25hbWVdID0gc3VidGVzdAorCisgICAg
ICAgIHJldHVybiBzdWJ0ZXN0CisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6Cisg
ICAgICAgIHN1YnRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3N1YnRlc3QoZGF0YSkKKyAgICAg
ICAgc3VidGVzdFsic3RhdHVzIl1bZGF0YVsic3RhdHVzIl1dICs9IDEKKyAgICAgICAgaWYgZGF0
YS5nZXQoIm1lc3NhZ2UiKToKKyAgICAgICAgICAgIHN1YnRlc3RbIm1lc3NhZ2VzIl0uYWRkKGRh
dGFbIm1lc3NhZ2UiXSkKKworICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAg
dGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJzdGF0
dXMiXVtkYXRhWyJzdGF0dXMiXV0gKz0gMQorCisKK2RlZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0
c19kaWN0LCBpdGVyYXRpb25zKToKKyAgICAiIiJSZXR1cm4gd2hldGhlciBvciBub3QgYSBzaW5n
bGUgdGVzdCBpcyBpbmNvbnNpc3RlbnQuIiIiCisgICAgcmV0dXJuIGxlbihyZXN1bHRzX2RpY3Qp
ID4gMSBvciBzdW0ocmVzdWx0c19kaWN0LnZhbHVlcygpKSAhPSBpdGVyYXRpb25zCisKKworZGVm
IHByb2Nlc3NfcmVzdWx0cyhsb2csIGl0ZXJhdGlvbnMpOgorICAgICIiIlByb2Nlc3MgdGVzdCBs
b2cgYW5kIHJldHVybiBvdmVyYWxsIHJlc3VsdHMgYW5kIGxpc3Qgb2YgaW5jb25zaXN0ZW50IHRl
c3RzLiIiIgorICAgIGluY29uc2lzdGVudCA9IFtdCisgICAgaGFuZGxlciA9IExvZ0hhbmRsZXIo
KQorICAgIHJlYWRlci5oYW5kbGVfbG9nKHJlYWRlci5yZWFkKGxvZyksIGhhbmRsZXIpCisgICAg
cmVzdWx0cyA9IGhhbmRsZXIucmVzdWx0cworICAgIGZvciB0ZXN0X25hbWUsIHRlc3QgaW4gcmVz
dWx0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgaWYgaXNfaW5jb25zaXN0ZW50KHRlc3RbInN0YXR1
cyJdLCBpdGVyYXRpb25zKToKKyAgICAgICAgICAgIGluY29uc2lzdGVudC5hcHBlbmQoKHRlc3Rf
bmFtZSwgTm9uZSwgdGVzdFsic3RhdHVzIl0sIFtdKSkKKyAgICAgICAgZm9yIHN1YnRlc3RfbmFt
ZSwgc3VidGVzdCBpbiB0ZXN0WyJzdWJ0ZXN0cyJdLml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
aWYgaXNfaW5jb25zaXN0ZW50KHN1YnRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKKyAgICAg
ICAgICAgICAgICBpbmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwg
c3VidGVzdFsic3RhdHVzIl0sIHN1YnRlc3RbIm1lc3NhZ2VzIl0pKQorICAgIHJldHVybiByZXN1
bHRzLCBpbmNvbnNpc3RlbnQKKworCitkZWYgZXJyX3N0cmluZyhyZXN1bHRzX2RpY3QsIGl0ZXJh
dGlvbnMpOgorICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHN0cmluZyB3aXRoIGVycm9ycyBmcm9t
IHRlc3QgcnVuLiIiIgorICAgIHJ2ID0gW10KKyAgICB0b3RhbF9yZXN1bHRzID0gc3VtKHJlc3Vs
dHNfZGljdC52YWx1ZXMoKSkKKyAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQocmVzdWx0c19k
aWN0Lml0ZW1zKCkpOgorICAgICAgICBydi5hcHBlbmQoIiVzJXMiICUKKyAgICAgICAgICAgICAg
ICAgIChrZXksICI6ICVzLyVzIiAlICh2YWx1ZSwgaXRlcmF0aW9ucykgaWYgdmFsdWUgIT0gaXRl
cmF0aW9ucyBlbHNlICIiKSkKKyAgICBpZiB0b3RhbF9yZXN1bHRzIDwgaXRlcmF0aW9uczoKKyAg
ICAgICAgcnYuYXBwZW5kKCJNSVNTSU5HOiAlcy8lcyIgJSAoaXRlcmF0aW9ucyAtIHRvdGFsX3Jl
c3VsdHMsIGl0ZXJhdGlvbnMpKQorICAgIHJ2ID0gIiwgIi5qb2luKHJ2KQorICAgIGlmIGlzX2lu
Y29uc2lzdGVudChyZXN1bHRzX2RpY3QsIGl0ZXJhdGlvbnMpOgorICAgICAgICBydiA9ICIqKiVz
KioiICUgcnYKKyAgICByZXR1cm4gcnYKKworCitkZWYgd3JpdGVfaW5jb25zaXN0ZW50KGxvZywg
aW5jb25zaXN0ZW50LCBpdGVyYXRpb25zKToKKyAgICAiIiJPdXRwdXQgaW5jb25zaXN0ZW50IHRl
c3RzIHRvIGxvZ2dlci5lcnJvci4iIiIKKyAgICBsb2coIiMjIFVuc3RhYmxlIHJlc3VsdHMgIyNc
biIpCisgICAgc3RyaW5ncyA9IFsoCisgICAgICAgICJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCh0
ZXN0KSwKKyAgICAgICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdChzdWJ0ZXN0KSkgaWYgc3Vi
dGVzdCBlbHNlICIiLAorICAgICAgICBlcnJfc3RyaW5nKHJlc3VsdHMsIGl0ZXJhdGlvbnMpLAor
ICAgICAgICAoImAlc2AiICUgbWFya2Rvd25fYWRqdXN0KCI7Ii5qb2luKG1lc3NhZ2VzKSkpIGlm
IGxlbihtZXNzYWdlcykgZWxzZSAiIikKKyAgICAgICAgZm9yIHRlc3QsIHN1YnRlc3QsIHJlc3Vs
dHMsIG1lc3NhZ2VzIGluIGluY29uc2lzdGVudF0KKyAgICB0YWJsZShbIlRlc3QiLCAiU3VidGVz
dCIsICJSZXN1bHRzIiwgIk1lc3NhZ2VzIl0sIHN0cmluZ3MsIGxvZykKKworCitkZWYgd3JpdGVf
cmVzdWx0cyhsb2csIHJlc3VsdHMsIGl0ZXJhdGlvbnMsIHByX251bWJlcj1Ob25lLCB1c2VfZGV0
YWlscz1GYWxzZSk6CisgICAgbG9nKCIjIyBBbGwgcmVzdWx0cyAjI1xuIikKKyAgICBpZiB1c2Vf
ZGV0YWlsczoKKyAgICAgICAgbG9nKCI8ZGV0YWlscz5cbiIpCisgICAgICAgIGxvZygiPHN1bW1h
cnk+JWkgJXMgcmFuPC9zdW1tYXJ5PlxuXG4iICUgKGxlbihyZXN1bHRzKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RzIiBpZiBsZW4ocmVz
dWx0cykgPiAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgInRlc3QiKSkKKworICAgIGZvciB0ZXN0X25hbWUsIHRlc3QgaW4gcmVzdWx0cy5p
dGVyaXRlbXMoKToKKyAgICAgICAgYmFzZXVybCA9ICJodHRwOi8vdzNjLXRlc3Qub3JnL3N1Ym1p
c3Npb25zIgorICAgICAgICBpZiAiaHR0cHMiIGluIG9zLnBhdGguc3BsaXRleHQodGVzdF9uYW1l
KVswXS5zcGxpdCgiLiIpWzE6XToKKyAgICAgICAgICAgIGJhc2V1cmwgPSAiaHR0cHM6Ly93M2Mt
dGVzdC5vcmcvc3VibWlzc2lvbnMiCisgICAgICAgIHRpdGxlID0gdGVzdF9uYW1lCisgICAgICAg
IGlmIHVzZV9kZXRhaWxzOgorICAgICAgICAgICAgbG9nKCI8ZGV0YWlscz5cbiIpCisgICAgICAg
ICAgICBpZiBwcl9udW1iZXI6CisgICAgICAgICAgICAgICAgdGl0bGUgPSAiPGEgaHJlZj1cIiVz
LyVzJXNcIj4lczwvYT4iICUgKGJhc2V1cmwsIHByX251bWJlciwgdGVzdF9uYW1lLCB0aXRsZSkK
KyAgICAgICAgICAgIGxvZygnPHN1bW1hcnk+JXM8L3N1bW1hcnk+XG5cbicgJSB0aXRsZSkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZygiIyMjICVzICMjIyIgJSB0aXRsZSkKKyAgICAg
ICAgc3RyaW5ncyA9IFsoIiIsIGVycl9zdHJpbmcodGVzdFsic3RhdHVzIl0sIGl0ZXJhdGlvbnMp
LCAiIildCisKKyAgICAgICAgc3RyaW5ncy5leHRlbmQoKCgKKyAgICAgICAgICAgICgiYCVzYCIg
JSBtYXJrZG93bl9hZGp1c3Qoc3VidGVzdF9uYW1lKSkgaWYgc3VidGVzdCBlbHNlICIiLAorICAg
ICAgICAgICAgZXJyX3N0cmluZyhzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyksCisgICAg
ICAgICAgICAoImAlc2AiICUgbWFya2Rvd25fYWRqdXN0KCc7Jy5qb2luKHN1YnRlc3RbIm1lc3Nh
Z2VzIl0pKSkgaWYgbGVuKHN1YnRlc3RbIm1lc3NhZ2VzIl0pIGVsc2UgIiIpCisgICAgICAgICAg
ICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0IGluIHRlc3RbInN1YnRlc3RzIl0uaXRlbXMoKSkp
CisgICAgICAgIHRhYmxlKFsiU3VidGVzdCIsICJSZXN1bHRzIiwgIk1lc3NhZ2VzIl0sIHN0cmlu
Z3MsIGxvZykKKyAgICAgICAgaWYgdXNlX2RldGFpbHM6CisgICAgICAgICAgICBsb2coIjwvZGV0
YWlscz5cbiIpCisKKyAgICBpZiB1c2VfZGV0YWlsczoKKyAgICAgICAgbG9nKCI8L2RldGFpbHM+
XG4iKQorCisKK2RlZiBydW4odmVudiwgbG9nZ2VyLCAqKmt3YXJncyk6CisgICAga3dhcmdzWyJw
YXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQorICAgIGlmIGt3YXJnc1sicmVwZWF0Il0gPT0gMToK
KyAgICAgICAga3dhcmdzWyJyZXBlYXQiXSA9IDEwCisKKyAgICBoYW5kbGVyID0gTG9nQWN0aW9u
RmlsdGVyKAorICAgICAgICBMb2dMZXZlbEZpbHRlcigKKyAgICAgICAgICAgIFN0cmVhbUhhbmRs
ZXIoCisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dCwKKyAgICAgICAgICAgICAgICBUYnBsRm9y
bWF0dGVyKCkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAiV0FSTklORyIpLAorICAgICAg
ICBbImxvZyIsICJwcm9jZXNzX291dHB1dCJdKQorCisgICAgIyBUaGVyZSBpcyBhIHB1YmxpYyBB
UEkgZm9yIHRoaXMgaW4gdGhlIG5leHQgbW96bG9nCisgICAgaW5pdGlhbF9oYW5kbGVycyA9IGxv
Z2dlci5fc3RhdGUuaGFuZGxlcnMKKyAgICBsb2dnZXIuX3N0YXRlLmhhbmRsZXJzID0gW10KKwor
ICAgIHdpdGggb3BlbigicmF3LmxvZyIsICJ3YiIpIGFzIGxvZzoKKyAgICAgICAgIyBTZXR1cCBs
b2dnaW5nIGZvciB3cHRydW5uZXIgdGhhdCBrZWVwcyBwcm9jZXNzIG91dHB1dCBhbmQKKyAgICAg
ICAgIyB3YXJuaW5nKyBsZXZlbCBsb2dzIG9ubHkKKyAgICAgICAgbG9nZ2VyLmFkZF9oYW5kbGVy
KGhhbmRsZXIpCisgICAgICAgIGxvZ2dlci5hZGRfaGFuZGxlcihTdHJlYW1IYW5kbGVyKGxvZywg
SlNPTkZvcm1hdHRlcigpKSkKKworICAgICAgICB3cHRydW5uZXIucnVuX3Rlc3RzKCoqa3dhcmdz
KQorCisgICAgbG9nZ2VyLl9zdGF0ZS5oYW5kbGVycyA9IGluaXRpYWxfaGFuZGxlcnMKKworICAg
IHdpdGggb3BlbigicmF3LmxvZyIsICJyYiIpIGFzIGxvZzoKKyAgICAgICAgcmVzdWx0cywgaW5j
b25zaXN0ZW50ID0gcHJvY2Vzc19yZXN1bHRzKGxvZywga3dhcmdzWyJyZXBlYXQiXSkKKworICAg
IHJldHVybiBrd2FyZ3NbInJlcGVhdCJdLCByZXN1bHRzLCBpbmNvbnNpc3RlbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RmaWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmU2NzNkNzNmZGJlM2UwODhj
MDQwNGRlMzExODNlYjA5OTA3ZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5CkBAIC0w
LDAgKzEsMzM2IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBz
eXMKKworZnJvbSAuLm1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCwgdXBkYXRlCisKK2hlcmUgPSBv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5w
YXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorCitsb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcigpCisKKworZGVmIGdldF9naXRfY21kKHJlcG9fcGF0aCk6CisgICAgIiIiQ3Jl
YXRlIGEgZnVuY3Rpb24gZm9yIGludm9raW5nIGdpdCBjb21tYW5kcyBhcyBhIHN1YnByb2Nlc3Mu
IiIiCisgICAgZGVmIGdpdChjbWQsICphcmdzKToKKyAgICAgICAgZnVsbF9jbWQgPSBbImdpdCIs
IGNtZF0gKyBsaXN0KGl0ZW0uZGVjb2RlKCJ1dGY4IikgaWYgaXNpbnN0YW5jZShpdGVtLCBieXRl
cykgZWxzZSBpdGVtIGZvciBpdGVtIGluIGFyZ3MpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGxvZ2dlci5kZWJ1ZygiICIuam9pbihmdWxsX2NtZCkpCisgICAgICAgICAgICByZXR1cm4gc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1zdWJw
cm9jZXNzLlNURE9VVCkuZGVjb2RlKCJ1dGY4Iikuc3RyaXAoKQorICAgICAgICBleGNlcHQgc3Vi
cHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGxvZ2dlci5lcnJv
cigiR2l0IGNvbW1hbmQgZXhpdGVkIHdpdGggc3RhdHVzICVpIiAlIGUucmV0dXJuY29kZSkKKyAg
ICAgICAgICAgIGxvZ2dlci5lcnJvcihlLm91dHB1dCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEp
CisgICAgcmV0dXJuIGdpdAorCisKK2RlZiBkaXNwbGF5X2JyYW5jaF9wb2ludCgpOgorICAgIHBy
aW50KGJyYW5jaF9wb2ludCgpKQorCisKK2RlZiBicmFuY2hfcG9pbnQoKToKKyAgICBnaXQgPSBn
ZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBpZiAob3MuZW52aXJvbi5nZXQoIlRSQVZJU19QVUxM
X1JFUVVFU1QiLCAiZmFsc2UiKSA9PSAiZmFsc2UiIGFuZAorICAgICAgICBvcy5lbnZpcm9uLmdl
dCgiVFJBVklTX0JSQU5DSCIpID09ICJtYXN0ZXIiKToKKyAgICAgICAgIyBGb3IgYnVpbGRzIG9u
IHRoZSBtYXN0ZXIgYnJhbmNoIGp1c3QgcmV0dXJuIHRoZSBIRUFEIGNvbW1pdAorICAgICAgICBy
ZXR1cm4gZ2l0KCJyZXYtcGFyc2UiLCAiSEVBRCIpCisgICAgZWxpZiBvcy5lbnZpcm9uLmdldCgi
VFJBVklTX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpICE9ICJmYWxzZSI6CisgICAgICAgICMgVGhp
cyBpcyBhIFBSLCBzbyB0aGUgYmFzZSBicmFuY2ggaXMgaW4gVFJBVklTX0JSQU5DSAorICAgICAg
ICB0cmF2aXNfYnJhbmNoID0gb3MuZW52aXJvbi5nZXQoIlRSQVZJU19CUkFOQ0giKQorICAgICAg
ICBhc3NlcnQgdHJhdmlzX2JyYW5jaCwgIlRSQVZJU19CUkFOQ0ggZW52aXJvbm1lbnQgdmFyaWFi
bGUgaXMgZGVmaW5lZCIKKyAgICAgICAgYnJhbmNoX3BvaW50ID0gZ2l0KCJyZXYtcGFyc2UiLCB0
cmF2aXNfYnJhbmNoKQorICAgIGVsc2U6CisgICAgICAgICMgT3RoZXJ3aXNlIHdlIGFyZW4ndCBv
biBhIFBSLCBzbyB3ZSB0cnkgdG8gZmluZCBjb21taXRzIHRoYXQgYXJlIG9ubHkgaW4gdGhlCisg
ICAgICAgICMgY3VycmVudCBicmFuY2ggYy5mLgorICAgICAgICAjIGh0dHA6Ly9zdGFja292ZXJm
bG93LmNvbS9xdWVzdGlvbnMvMTM0NjAxNTIvZmluZC1maXJzdC1hbmNlc3Rvci1jb21taXQtaW4t
YW5vdGhlci1icmFuY2gKKyAgICAgICAgaGVhZCA9IGdpdCgicmV2LXBhcnNlIiwgIkhFQUQiKQor
ICAgICAgICBub3RfaGVhZHMgPSBbaXRlbSBmb3IgaXRlbSBpbiBnaXQoInJldi1wYXJzZSIsICIt
LW5vdCIsICItLWFsbCIpLnNwbGl0KCJcbiIpCisgICAgICAgICAgICAgICAgICAgICBpZiBpdGVt
LnN0cmlwKCkgYW5kIGhlYWQgbm90IGluIGl0ZW1dCisgICAgICAgIGNvbW1pdHMgPSBnaXQoInJl
di1saXN0IiwgIkhFQUQiLCAqbm90X2hlYWRzKS5zcGxpdCgiXG4iKQorICAgICAgICBicmFuY2hf
cG9pbnQgPSBOb25lCisgICAgICAgIGlmIGxlbihjb21taXRzKToKKyAgICAgICAgICAgIGZpcnN0
X2NvbW1pdCA9IGNvbW1pdHNbLTFdCisgICAgICAgICAgICBpZiBmaXJzdF9jb21taXQ6CisgICAg
ICAgICAgICAgICAgYnJhbmNoX3BvaW50ID0gZ2l0KCJyZXYtcGFyc2UiLCBmaXJzdF9jb21taXQg
KyAiXiIpCisKKyAgICAgICAgIyBUaGUgYWJvdmUgaGV1cmlzdGljIHdpbGwgZmFpbCBpbiB0aGUg
Zm9sbG93aW5nIGNhc2VzOgorICAgICAgICAjCisgICAgICAgICMgLSBUaGUgY3VycmVudCBicmFu
Y2ggaGFzIGZhbGxlbiBiZWhpbmQgdGhlIHZlcnNpb24gcmV0cmlldmVkIHZpYSB0aGUgYWJvdmUK
KyAgICAgICAgIyAgIGBmZXRjaGAgaW52b2NhdGlvbgorICAgICAgICAjIC0gQ2hhbmdlcyBvbiB0
aGUgY3VycmVudCBicmFuY2ggd2VyZSByZWJhc2VkIGFuZCB0aGVyZWZvcmUgZG8gbm90IGV4aXN0
IG9uIGFueQorICAgICAgICAjICAgb3RoZXIgYnJhbmNoLiBUaGlzIHdpbGwgcmVzdWx0IGluIHRo
ZSBzZWxlY3Rpb24gb2YgYSBjb21taXQgdGhhdCBpcyBlYXJsaWVyCisgICAgICAgICMgICBpbiB0
aGUgaGlzdG9yeSB0aGFuIGRlc2lyZWQgKGFzIGRldGVybWluZWQgYnkgY2FsY3VsYXRpbmcgdGhl
IGxhdGVyIG9mIHRoZQorICAgICAgICAjICAgYnJhbmNoIHBvaW50IGFuZCB0aGUgbWVyZ2UgYmFz
ZSkKKyAgICAgICAgIworICAgICAgICAjIEluIGVpdGhlciBjYXNlLCBmYWxsIGJhY2sgdG8gdXNp
bmcgdGhlIG1lcmdlIGJhc2UgYXMgdGhlIGJyYW5jaCBwb2ludC4KKyAgICAgICAgbWVyZ2VfYmFz
ZSA9IGdpdCgibWVyZ2UtYmFzZSIsICJIRUFEIiwgIm9yaWdpbi9tYXN0ZXIiKQorICAgICAgICBp
ZiAoYnJhbmNoX3BvaW50IGlzIE5vbmUgb3IKKyAgICAgICAgICAgIChicmFuY2hfcG9pbnQgIT0g
bWVyZ2VfYmFzZSBhbmQKKyAgICAgICAgICAgICBub3QgZ2l0KCJsb2ciLCAiLS1vbmVsaW5lIiwg
IiVzLi4lcyIgJSAobWVyZ2VfYmFzZSwgYnJhbmNoX3BvaW50KSkuc3RyaXAoKSkpOgorICAgICAg
ICAgICAgbG9nZ2VyLmRlYnVnKCJVc2luZyBtZXJnZS1iYXNlIGFzIHRoZSBicmFuY2ggcG9pbnQi
KQorICAgICAgICAgICAgYnJhbmNoX3BvaW50ID0gbWVyZ2VfYmFzZQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJVc2luZyBmaXJzdCBjb21taXQgb24gYW5vdGhlciBi
cmFuY2ggYXMgdGhlIGJyYW5jaCBwb2ludCIpCisKKyAgICBsb2dnZXIuZGVidWcoIkJyYW5jaCBw
b2ludCBmcm9tIG1hc3RlcjogJXMiICUgYnJhbmNoX3BvaW50KQorICAgIHJldHVybiBicmFuY2hf
cG9pbnQKKworCitkZWYgY29tcGlsZV9pZ25vcmVfcnVsZShydWxlKToKKyAgICBydWxlID0gcnVs
ZS5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAgcGFydHMgPSBydWxlLnNwbGl0KCIvIikK
KyAgICByZV9wYXJ0cyA9IFtdCisgICAgZm9yIHBhcnQgaW4gcGFydHM6CisgICAgICAgIGlmIHBh
cnQuZW5kc3dpdGgoIioqIik6CisgICAgICAgICAgICByZV9wYXJ0cy5hcHBlbmQocmUuZXNjYXBl
KHBhcnRbOi0yXSkgKyAiLioiKQorICAgICAgICBlbGlmIHBhcnQuZW5kc3dpdGgoIioiKToKKyAg
ICAgICAgICAgIHJlX3BhcnRzLmFwcGVuZChyZS5lc2NhcGUocGFydFs6LTFdKSArICJbXi9dKiIp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZV9wYXJ0cy5hcHBlbmQocmUuZXNjYXBlKHBh
cnQpKQorICAgIHJldHVybiByZS5jb21waWxlKCJeJXMkIiAlICIvIi5qb2luKHJlX3BhcnRzKSkK
KworCitkZWYgcmVwb19maWxlc19jaGFuZ2VkKHJldmlzaCwgaW5jbHVkZV91bmNvbW1pdHRlZD1G
YWxzZSwgaW5jbHVkZV9uZXc9RmFsc2UpOgorICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290
KQorICAgIGZpbGVzID0gZ2l0KCJkaWZmIiwgIi0tbmFtZS1vbmx5IiwgIi16IiwgcmV2aXNoKS5z
cGxpdCgiXDAiKQorICAgIGFzc2VydCBub3QgZmlsZXNbLTFdCisgICAgZmlsZXMgPSBzZXQoZmls
ZXNbOi0xXSkKKworICAgIGlmIGluY2x1ZGVfdW5jb21taXR0ZWQ6CisgICAgICAgIGVudHJpZXMg
PSBnaXQoInN0YXR1cyIsICIteiIpLnNwbGl0KCJcMCIpCisgICAgICAgIGFzc2VydCBub3QgZW50
cmllc1stMV0KKyAgICAgICAgZW50cmllcyA9IGVudHJpZXNbOi0xXQorICAgICAgICBmb3IgaXRl
bSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgc3RhdHVzLCBwYXRoID0gaXRlbS5zcGxpdCgpCisg
ICAgICAgICAgICBpZiBzdGF0dXMgPT0gIj8/IiBhbmQgbm90IGluY2x1ZGVfbmV3OgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlm
IG5vdCBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAgICAgICAgICAgICAgICBmaWxlcy5hZGQo
cGF0aCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmb3IgZGly
cGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcyBpbiBvcy53YWxrKHBhdGgpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxlcy5hZGQob3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1lKSkKKwor
ICAgIHJldHVybiBmaWxlcworCisKK2RlZiBleGNsdWRlX2lnbm9yZWQoZmlsZXMsIGlnbm9yZV9y
dWxlcyk6CisgICAgaWYgaWdub3JlX3J1bGVzIGlzIE5vbmU6CisgICAgICAgIGlnbm9yZV9ydWxl
cyA9IFtdCisgICAgaWdub3JlX3J1bGVzID0gW2NvbXBpbGVfaWdub3JlX3J1bGUoaXRlbSkgZm9y
IGl0ZW0gaW4gaWdub3JlX3J1bGVzXQorCisgICAgY2hhbmdlZCA9IFtdCisgICAgaWdub3JlZCA9
IFtdCisgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGZpbGVzKToKKyAgICAgICAgZnVsbHBhdGggPSBv
cy5wYXRoLmpvaW4od3B0X3Jvb3QsIGl0ZW0pCisgICAgICAgIHJ1bGVfcGF0aCA9IGl0ZW0ucmVw
bGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgICAgICBmb3IgcnVsZSBpbiBpZ25vcmVfcnVsZXM6
CisgICAgICAgICAgICBpZiBydWxlLm1hdGNoKHJ1bGVfcGF0aCk6CisgICAgICAgICAgICAgICAg
aWdub3JlZC5hcHBlbmQoZnVsbHBhdGgpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGNoYW5nZWQuYXBwZW5kKGZ1bGxwYXRoKQorCisgICAgcmV0dXJu
IGNoYW5nZWQsIGlnbm9yZWQKKworCitkZWYgZmlsZXNfY2hhbmdlZChyZXZpc2gsIGlnbm9yZV9y
dWxlcz1Ob25lLCBpbmNsdWRlX3VuY29tbWl0dGVkPUZhbHNlLCBpbmNsdWRlX25ldz1GYWxzZSk6
CisgICAgIiIiR2V0IGFuZCByZXR1cm4gZmlsZXMgY2hhbmdlZCBzaW5jZSBjdXJyZW50IGJyYW5j
aCBkaXZlcmdlZCBmcm9tIG1hc3RlciwKKyAgICBleGNsdWRpbmcgdGhvc2UgdGhhdCBhcmUgbG9j
YXRlZCB3aXRoaW4gYW55IHBhdGggbWF0Y2hlZCBieQorICAgIGBpZ25vcmVfcnVsZXNgLiIiIgor
ICAgIGZpbGVzID0gcmVwb19maWxlc19jaGFuZ2VkKHJldmlzaCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlX3VuY29tbWl0dGVkPWluY2x1ZGVfdW5jb21taXR0ZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9uZXc9aW5jbHVkZV9uZXcpCisg
ICAgaWYgbm90IGZpbGVzOgorICAgICAgICByZXR1cm4gW10sIFtdCisKKyAgICByZXR1cm4gZXhj
bHVkZV9pZ25vcmVkKGZpbGVzLCBpZ25vcmVfcnVsZXMpCisKKworZGVmIF9pbl9yZXBvX3Jvb3Qo
ZnVsbF9wYXRoKToKKyAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChmdWxsX3BhdGgsIHdw
dF9yb290KQorICAgIHBhdGhfY29tcG9uZW50cyA9IHJlbF9wYXRoLnNwbGl0KG9zLnNlcCkKKyAg
ICByZXR1cm4gbGVuKHBhdGhfY29tcG9uZW50cykgPCAyCisKKworZGVmIF9pbml0X21hbmlmZXN0
X2NhY2hlKCk6CisgICAgYyA9IHt9CisKKyAgICBkZWYgbG9hZChtYW5pZmVzdF9wYXRoPU5vbmUp
OgorICAgICAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIE5vbmU6CisgICAgICAgICAgICBtYW5pZmVz
dF9wYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAiTUFOSUZFU1QuanNvbiIpCisgICAgICAg
IGlmIGMuZ2V0KG1hbmlmZXN0X3BhdGgpOgorICAgICAgICAgICAgcmV0dXJuIGNbbWFuaWZlc3Rf
cGF0aF0KKyAgICAgICAgIyBjYWNoZSBhdCBtb3N0IG9uZSBwYXRoOm1hbmlmZXN0CisgICAgICAg
IGMuY2xlYXIoKQorICAgICAgICB3cHRfbWFuaWZlc3QgPSBtYW5pZmVzdC5sb2FkKHdwdF9yb290
LCBtYW5pZmVzdF9wYXRoKQorICAgICAgICBpZiB3cHRfbWFuaWZlc3QgaXMgTm9uZToKKyAgICAg
ICAgICAgIHdwdF9tYW5pZmVzdCA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKKyAgICAgICAgdXBkYXRl
LnVwZGF0ZSh3cHRfcm9vdCwgd3B0X21hbmlmZXN0KQorICAgICAgICBjW21hbmlmZXN0X3BhdGhd
ID0gd3B0X21hbmlmZXN0CisgICAgICAgIHJldHVybiBjW21hbmlmZXN0X3BhdGhdCisgICAgcmV0
dXJuIGxvYWQKKworCitsb2FkX21hbmlmZXN0ID0gX2luaXRfbWFuaWZlc3RfY2FjaGUoKQorCisK
K2RlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZl
c3RfcGF0aD1Ob25lKToKKyAgICAiIiJEZXRlcm1pbmUgYW5kIHJldHVybiBsaXN0IG9mIHRlc3Qg
ZmlsZXMgdGhhdCByZWZlcmVuY2UgY2hhbmdlZCBmaWxlcy4iIiIKKyAgICBhZmZlY3RlZF90ZXN0
ZmlsZXMgPSBzZXQoKQorICAgICMgRXhjbHVkZSBmaWxlcyB0aGF0IGFyZSBpbiB0aGUgcmVwbyBy
b290LCBiZWNhdXNlCisgICAgIyB0aGV5IGFyZSBub3QgcGFydCBvZiBhbnkgdGVzdC4KKyAgICBm
aWxlc19jaGFuZ2VkID0gW2YgZm9yIGYgaW4gZmlsZXNfY2hhbmdlZCBpZiBub3QgX2luX3JlcG9f
cm9vdChmKV0KKyAgICBub250ZXN0c19jaGFuZ2VkID0gc2V0KGZpbGVzX2NoYW5nZWQpCisgICAg
d3B0X21hbmlmZXN0ID0gbG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQorCisgICAgdGVzdF90
eXBlcyA9IFsidGVzdGhhcm5lc3MiLCAicmVmdGVzdCIsICJ3ZHNwZWMiXQorICAgIHN1cHBvcnRf
ZmlsZXMgPSB7b3MucGF0aC5qb2luKHdwdF9yb290LCBwYXRoKQorICAgICAgICAgICAgICAgICAg
ICAgZm9yIF8sIHBhdGgsIF8gaW4gd3B0X21hbmlmZXN0Lml0ZXJ0eXBlcygic3VwcG9ydCIpfQor
ICAgIHdkc3BlY190ZXN0X2ZpbGVzID0ge29zLnBhdGguam9pbih3cHRfcm9vdCwgcGF0aCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgXywgcGF0aCwgXyBpbiB3cHRfbWFuaWZlc3QuaXRl
cnR5cGVzKCJ3ZHNwZWMiKX0KKyAgICB0ZXN0X2ZpbGVzID0ge29zLnBhdGguam9pbih3cHRfcm9v
dCwgcGF0aCkKKyAgICAgICAgICAgICAgICAgIGZvciBfLCBwYXRoLCBfIGluIHdwdF9tYW5pZmVz
dC5pdGVydHlwZXMoKnRlc3RfdHlwZXMpfQorCisgICAgbm9udGVzdHNfY2hhbmdlZCA9IG5vbnRl
c3RzX2NoYW5nZWQuaW50ZXJzZWN0aW9uKHN1cHBvcnRfZmlsZXMpCisKKyAgICB0ZXN0c19jaGFu
Z2VkID0gc2V0KGl0ZW0gZm9yIGl0ZW0gaW4gZmlsZXNfY2hhbmdlZCBpZiBpdGVtIGluIHRlc3Rf
ZmlsZXMpCisKKyAgICBub250ZXN0X2NoYW5nZWRfcGF0aHMgPSBzZXQoKQorICAgIHJld3JpdGVz
ID0geyIvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMiOiAiL3Jlc291cmNlcy9XZWJJ
RExQYXJzZXIuanMifQorICAgIGZvciBmdWxsX3BhdGggaW4gbm9udGVzdHNfY2hhbmdlZDoKKyAg
ICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkKKyAg
ICAgICAgcGF0aF9jb21wb25lbnRzID0gcmVsX3BhdGguc3BsaXQob3Muc2VwKQorICAgICAgICB0
b3BfbGV2ZWxfc3ViZGlyID0gcGF0aF9jb21wb25lbnRzWzBdCisgICAgICAgIGlmIHRvcF9sZXZl
bF9zdWJkaXIgaW4gc2tpcF90ZXN0czoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJl
cG9fcGF0aCA9ICIvIiArIG9zLnBhdGgucmVscGF0aChmdWxsX3BhdGgsIHdwdF9yb290KS5yZXBs
YWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAgICAgIGlmIHJlcG9fcGF0aCBpbiByZXdyaXRlczoK
KyAgICAgICAgICAgIHJlcG9fcGF0aCA9IHJld3JpdGVzW3JlcG9fcGF0aF0KKyAgICAgICAgICAg
IGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgcmVwb19wYXRoWzE6XS5yZXBsYWNl
KCIvIiwgb3MucGF0aC5zZXApKQorICAgICAgICBub250ZXN0X2NoYW5nZWRfcGF0aHMuYWRkKChm
dWxsX3BhdGgsIHJlcG9fcGF0aCkpCisKKyAgICBkZWYgYWZmZWN0ZWRfYnlfd2RzcGVjKHRlc3Qp
OgorICAgICAgICBhZmZlY3RlZCA9IEZhbHNlCisgICAgICAgIGlmIHRlc3QgaW4gd2RzcGVjX3Rl
c3RfZmlsZXM6CisgICAgICAgICAgICBmb3Igc3VwcG9ydF9mdWxsX3BhdGgsIF8gaW4gbm9udGVz
dF9jaGFuZ2VkX3BhdGhzOgorICAgICAgICAgICAgICAgICMgcGFyZW50IG9mIHN1cHBvcnQgZmls
ZSBvciBvZiAic3VwcG9ydCIgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgcGFyZW50ID0gb3Mu
cGF0aC5kaXJuYW1lKHN1cHBvcnRfZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgIGlmIG9zLnBh
dGguYmFzZW5hbWUocGFyZW50KSA9PSAic3VwcG9ydCI6CisgICAgICAgICAgICAgICAgICAgIHBh
cmVudCA9IG9zLnBhdGguZGlybmFtZShwYXJlbnQpCisgICAgICAgICAgICAgICAgcmVscGF0aCA9
IG9zLnBhdGgucmVscGF0aCh0ZXN0LCBwYXJlbnQpCisgICAgICAgICAgICAgICAgaWYgbm90IHJl
bHBhdGguc3RhcnRzd2l0aChvcy5wYXJkaXIpOgorICAgICAgICAgICAgICAgICAgICAjIHRlc3Rm
aWxlIGlzIGluIHN1YnRyZWUgb2Ygc3VwcG9ydCBmaWxlCisgICAgICAgICAgICAgICAgICAgIGFm
ZmVjdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICByZXR1cm4g
YWZmZWN0ZWQKKworICAgIGZvciByb290LCBkaXJzLCBmbmFtZXMgaW4gb3Mud2Fsayh3cHRfcm9v
dCk6CisgICAgICAgICMgV2FsayB0b3BfbGV2ZWxfc3ViZGlyIGxvb2tpbmcgZm9yIHRlc3QgZmls
ZXMgY29udGFpbmluZyBlaXRoZXIgdGhlCisgICAgICAgICMgcmVsYXRpdmUgZmlsZXBhdGggb3Ig
YWJzb2x1dGUgZmlsZXBhdGggdG8gdGhlIGNoYW5nZWQgZmlsZXMuCisgICAgICAgIGlmIHJvb3Qg
PT0gd3B0X3Jvb3Q6CisgICAgICAgICAgICBmb3IgZGlyX25hbWUgaW4gc2tpcF90ZXN0czoKKyAg
ICAgICAgICAgICAgICBkaXJzLnJlbW92ZShkaXJfbmFtZSkKKyAgICAgICAgZm9yIGZuYW1lIGlu
IGZuYW1lczoKKyAgICAgICAgICAgIHRlc3RfZnVsbF9wYXRoID0gb3MucGF0aC5qb2luKHJvb3Qs
IGZuYW1lKQorICAgICAgICAgICAgIyBTa2lwIGFueSBmaWxlIHRoYXQncyBub3QgYSB0ZXN0IGZp
bGUuCisgICAgICAgICAgICBpZiB0ZXN0X2Z1bGxfcGF0aCBub3QgaW4gdGVzdF9maWxlczoKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgYWZmZWN0ZWRfYnlfd2RzcGVj
KHRlc3RfZnVsbF9wYXRoKToKKyAgICAgICAgICAgICAgICBhZmZlY3RlZF90ZXN0ZmlsZXMuYWRk
KHRlc3RfZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAg
IHdpdGggb3Blbih0ZXN0X2Z1bGxfcGF0aCwgInJiIikgYXMgZmg6CisgICAgICAgICAgICAgICAg
ZmlsZV9jb250ZW50cyA9IGZoLnJlYWQoKQorICAgICAgICAgICAgICAgIGlmIGZpbGVfY29udGVu
dHMuc3RhcnRzd2l0aCgiXHhmZVx4ZmYiKToKKyAgICAgICAgICAgICAgICAgICAgZmlsZV9jb250
ZW50cyA9IGZpbGVfY29udGVudHMuZGVjb2RlKCJ1dGYtMTZiZSIsICJyZXBsYWNlIikKKyAgICAg
ICAgICAgICAgICBlbGlmIGZpbGVfY29udGVudHMuc3RhcnRzd2l0aCgiXHhmZlx4ZmUiKToKKyAg
ICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IGZpbGVfY29udGVudHMuZGVjb2RlKCJ1
dGYtMTZsZSIsICJyZXBsYWNlIikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICBmaWxlX2NvbnRlbnRzID0gZmlsZV9jb250ZW50cy5kZWNvZGUoInV0ZjgiLCAicmVw
bGFjZSIpCisgICAgICAgICAgICAgICAgZm9yIGZ1bGxfcGF0aCwgcmVwb19wYXRoIGluIG5vbnRl
c3RfY2hhbmdlZF9wYXRoczoKKyAgICAgICAgICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRo
LnJlbHBhdGgoZnVsbF9wYXRoLCByb290KS5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAg
ICAgICAgICAgICAgICAgIGlmIHJlbF9wYXRoIGluIGZpbGVfY29udGVudHMgb3IgcmVwb19wYXRo
IGluIGZpbGVfY29udGVudHM6CisgICAgICAgICAgICAgICAgICAgICAgICBhZmZlY3RlZF90ZXN0
ZmlsZXMuYWRkKHRlc3RfZnVsbF9wYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWUKKworICAgIHJldHVybiB0ZXN0c19jaGFuZ2VkLCBhZmZlY3RlZF90ZXN0ZmlsZXMKKworCitk
ZWYgZ2V0X3BhcnNlcigpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJyZXZpc2giLCBkZWZhdWx0PU5vbmUsIGhlbHA9IkNv
bW1pdHMgdG8gY29uc2lkZXIuIERlZmF1bHRzIHRvIHRoZSAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAiY29tbWl0cyBvbiB0aGUgY3VycmVudCBicmFuY2giLCBuYXJncz0iPyIpCisgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgiLS1pZ25vcmUtcnVsZXMiLCBuYXJncz0iKiIsIHR5cGU9c2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1zZXQoWyJyZXNvdXJjZXMvdGVzdGhhcm5l
c3MqIl0pLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVsZXMgZm9yIHBhdGhzIHRv
IGV4Y2x1ZGUgZnJvbSBsaXN0cyBvZiBjaGFuZ2VzLiBSdWxlcyBhcmUgcGF0aHMgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgInJlbGF0aXZlIHRvIHRoZSB0ZXN0IHJvb3QsIHdpdGggKiBiZWZv
cmUgYSBzZXBhcmF0b3Igb3IgdGhlIGVuZCBtYXRjaGluZyAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAiYW55dGhpbmcgb3RoZXIgdGhhbiBhIHBhdGggc2VwYXJhdG9yIGFuZCAqKiBpbiB0aGF0
IHBvc2l0aW9uIG1hdGNoaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJhbnl0aGluZyIp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tb2RpZmllZCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJJbmNsdWRlIGZpbGVzIHVuZGVyIHZl
cnNpb24gY29udHJvbCB0aGF0IGhhdmUgYmVlbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAi
bW9kaWZpZWQgb3Igc3RhZ2VkIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW5ldyIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJJbmNsdWRl
IGZpbGVzIGluIHRoZSB3b3JrdHJlZSB0aGF0IGFyZSBub3QgaW4gdmVyc2lvbiBjb250cm9sIikK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXNob3ctdHlwZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQcmludCB0aGUgdGVzdCB0eXBlIGFs
b25nIHdpdGggZWFjaCBhZmZlY3RlZCB0ZXN0IikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVm
IGdldF9wYXJzZXJfYWZmZWN0ZWQoKToKKyAgICBwYXJzZXIgPSBnZXRfcGFyc2VyKCkKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLW1ldGFkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9Im1ldGFkYXRhX3Jvb3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJz
dG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PXdwdF9yb290LAorICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iRGlyZWN0b3J5IHRoYXQgd2lsbCBjb250YWluIE1BTklG
RVNULmpzb24iKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgZ2V0X3JldmlzaCgqKmt3YXJn
cyk6CisgICAgcmV2aXNoID0ga3dhcmdzWyJyZXZpc2giXQorICAgIGlmIGt3YXJnc1sicmV2aXNo
Il0gaXMgTm9uZToKKyAgICAgICAgcmV2aXNoID0gIiVzLi5IRUFEIiAlIGJyYW5jaF9wb2ludCgp
CisgICAgcmV0dXJuIHJldmlzaAorCisKK2RlZiBydW5fY2hhbmdlZF9maWxlcygqKmt3YXJncyk6
CisgICAgcmV2aXNoID0gZ2V0X3JldmlzaCgqKmt3YXJncykKKyAgICBjaGFuZ2VkLCBfID0gZmls
ZXNfY2hhbmdlZChyZXZpc2gsIGt3YXJnc1siaWdub3JlX3J1bGVzIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5jbHVkZV91bmNvbW1pdHRlZD1rd2FyZ3NbIm1vZGlmaWVkIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9uZXc9a3dhcmdzWyJuZXci
XSkKKyAgICBmb3IgaXRlbSBpbiBzb3J0ZWQoY2hhbmdlZCk6CisgICAgICAgIHByaW50KG9zLnBh
dGgucmVscGF0aChpdGVtLCB3cHRfcm9vdCkpCisKKworZGVmIHJ1bl90ZXN0c19hZmZlY3RlZCgq
Kmt3YXJncyk6CisgICAgcmV2aXNoID0gZ2V0X3JldmlzaCgqKmt3YXJncykKKyAgICBjaGFuZ2Vk
LCBfID0gZmlsZXNfY2hhbmdlZChyZXZpc2gsIGt3YXJnc1siaWdub3JlX3J1bGVzIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV91bmNvbW1pdHRlZD1rd2FyZ3NbIm1v
ZGlmaWVkIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9uZXc9a3dh
cmdzWyJuZXciXSkKKyAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKGt3YXJnc1sibWV0
YWRhdGFfcm9vdCJdLCAiTUFOSUZFU1QuanNvbiIpCisgICAgdGVzdHNfY2hhbmdlZCwgZGVwZW5k
ZW50cyA9IGFmZmVjdGVkX3Rlc3RmaWxlcygKKyAgICAgICAgY2hhbmdlZCwKKyAgICAgICAgc2V0
KFsiY29uZm9ybWFuY2UtY2hlY2tlcnMiLCAiZG9jcyIsICJ0b29scyJdKSwKKyAgICAgICAgbWFu
aWZlc3RfcGF0aD1tYW5pZmVzdF9wYXRoCisgICAgKQorCisgICAgbWVzc2FnZSA9ICJ7cGF0aH0i
CisgICAgaWYga3dhcmdzWyJzaG93X3R5cGUiXToKKyAgICAgICAgd3B0X21hbmlmZXN0ID0gbG9h
ZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQorICAgICAgICBtZXNzYWdlID0gIntwYXRofVx0e2l0
ZW1fdHlwZX0iCisgICAgZm9yIGl0ZW0gaW4gc29ydGVkKHRlc3RzX2NoYW5nZWQgfCBkZXBlbmRl
bnRzKToKKyAgICAgICAgcmVzdWx0cyA9IHsKKyAgICAgICAgICAgICJwYXRoIjogb3MucGF0aC5y
ZWxwYXRoKGl0ZW0sIHdwdF9yb290KQorICAgICAgICB9CisgICAgICAgIGlmIGt3YXJnc1sic2hv
d190eXBlIl06CisgICAgICAgICAgICBpdGVtX3R5cGVzID0ge2kuaXRlbV90eXBlIGZvciBpIGlu
IHdwdF9tYW5pZmVzdC5pdGVycGF0aChyZXN1bHRzWyJwYXRoIl0pfQorICAgICAgICAgICAgaWYg
bGVuKGl0ZW1fdHlwZXMpICE9IDE6CisgICAgICAgICAgICAgICAgaXRlbV90eXBlcyA9IFsiICIu
am9pbihpdGVtX3R5cGVzKV0KKyAgICAgICAgICAgIHJlc3VsdHNbIml0ZW1fdHlwZSJdID0gaXRl
bV90eXBlcy5wb3AoKQorICAgICAgICBwcmludChtZXNzYWdlLmZvcm1hdCgqKnJlc3VsdHMpKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdGVzdHMvbGF0ZXN0X21vemlsbGFfY2VudHJhbC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9sYXRlc3RfbW96
aWxsYV9jZW50cmFsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDc4YTM2YjBjNWJkNWI0ZmU2ZjU1ZjJlY2Y1
ZmNiYzJjNTM1YjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvbGF0ZXN0X21vemlsbGFfY2VudHJh
bC50eHQKQEAgLTAsMCArMSwyMDgzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKwk8aGVh
ZD4KKwkJPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorCQk8dGl0bGU+RGlyZWN0b3J5IExpc3Rpbmc6
IC9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvPC90aXRsZT4KKwk8
L2hlYWQ+CisJPGJvZHk+CisJCTxoMT5JbmRleCBvZiAvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsLzwvaDE+CisJCTx0YWJsZT4KKwkJCTx0cj4KKwkJCQk8dGg+VHlw
ZTwvdGg+CisJCQkJPHRoPk5hbWU8L3RoPgorCQkJCTx0aD5TaXplPC90aD4KKwkJCQk8dGg+TGFz
dCBNb2RpZmllZDwvdGg+CisJCQk8L3RyPgorCQkJCisJCQk8dHI+CisJCQkJPHRkPkRpcjwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5LyI+Li48L2E+PC90ZD4KKwkJ
CQk8dGQ+PC90ZD4KKwkJCQk8dGQ+PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5EaXI8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL21hci10b29scy8iPm1hci10b29scy88L2E+PC90ZD4KKwkJ
CQk8dGQ+PC90ZD4KKwkJCQk8dGQ+PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL0ZpcmVmb3glMjBJbnN0YWxsZXIuZW4tVVMuZXhl
Ij5GaXJlZm94IEluc3RhbGxlci5lbi1VUy5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MjY5SzwvdGQ+
CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL1JFQURNRSI+UkVBRE1FPC9hPjwvdGQ+
CisJCQkJPHRkPjgyPC90ZD4KKwkJCQk8dGQ+MTctTm92LTIwMTUgMTA6MDE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGFuZ3BhY2sueHBpIj5maXJlZm94LTU3LjBhMS5lbi1VUy5sYW5ncGFj
ay54cGk8L2E+PC90ZD4KKwkJCQk8dGQ+NDI0SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEz
OjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYuYXdzeS50ZXN0cy56aXAi
PmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+MTRLPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jaGVja3N1bXMiPmZpcmVmb3gtNTcuMGExLmVuLVVT
LmxpbnV4LWk2ODYuY2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+
MjEtU2VwLTIwMTcgMTI6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5j
aGVja3N1bXMuYXNjIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3Vtcy5h
c2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6NDk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21tb24udGVzdHMuemlwIj5m
aXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+NDVNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLmxpbnV4LWk2ODYuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQ3TTwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4
LWk2ODYuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1p
Njg2LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1p
Njg2LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4
LWk2ODYuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xMDhNPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
bGludXgtaTY4Ni5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51
eC1pNjg2Lm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzNNPC90ZD4KKwkJ
CQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgt
aTY4Ni5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYubW96aW5m
by5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg3MTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEy
OjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYucmVmdGVzdC50ZXN0cy56
aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYucmVmdGVzdC50ZXN0cy56aXA8L2E+
PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gt
NTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjEzTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGEx
LmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6MiI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4
Ni50YXIuYnoyPC9hPjwvdGQ+CisJCQkJPHRkPjYwTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6Mi5hc2Mi
PmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6Mi5hc2M8L2E+PC90ZD4KKwkJ
CQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgtaTY4Ni50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTcuMGEx
LmVuLVVTLmxpbnV4LWk2ODYudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFL
PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4t
VVMubGludXgtaTY4Ni50eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudHh0PC9h
PjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIu
Z3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni54cGNzaGVsbC50ZXN0cy56aXAi
PmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYueHBjc2hlbGwudGVzdHMuemlwPC9hPjwv
dGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODZfaW5mby50eHQiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLmxpbnV4LWk2ODZfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0
ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZf
NjQuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5hd3N5
LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNEs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1z
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1zPC9hPjwvdGQ+CisJ
CQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MjA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+
CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxp
bnV4LXg4Nl82NC5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14
ODZfNjQuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41Mk08L3RkPgorCQkJCTx0
ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZf
NjQuY29tcGxldGUubWFyIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tcGxl
dGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEy
OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcHB1bml0dGVzdC50
ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcHB1bml0dGVzdC50
ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcg
MTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LmNyYXNocmVwb3J0
ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcmFzaHJl
cG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwM008L3RkPgorCQkJCTx0ZD4y
MS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQu
anNvbiI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0Lmpzb248L2E+PC90ZD4KKwkJ
CQk8dGQ+ODc3PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTcu
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJ
PHRkPjczTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcu
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVT
LmxpbnV4LXg4Nl82NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODc2PC90ZD4KKwkJ
CQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgt
eDg2XzY0LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZf
NjQucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+
MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0
LnRhbG9zLnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9z
LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6MiI+
ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8
dGQ+NTlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4w
YTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejIuYXNjIj5maXJlZm94LTU3LjBhMS5lbi1VUy5s
aW51eC14ODZfNjQudGFyLmJ6Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2
XzY0LnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0
LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50
eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQ8L2E+PC90ZD4KKwkJCQk8
dGQ+OTk8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBh
MS5lbi1VUy5saW51eC14ODZfNjQud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90
ZD4KKwkJCQk8dGQ+NDlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjRfaW5mby50eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVT
LmxpbnV4LXg4Nl82NF9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRk
PjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5hd3N5LnRl
c3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjE0SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTcuMGExLmVuLVVTLm1hYy5jaGVja3N1bXMiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5j
aGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+N0s8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAx
MTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFzYyI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMubWFjLmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
bWFjLmNvbW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jb21tb24udGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjM1TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEx
OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jb21wbGV0ZS5tYXIiPmZpcmVmb3gt
NTcuMGExLmVuLVVTLm1hYy5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDZNPC90ZD4K
KwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFj
LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLmNwcHVuaXR0
ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0y
MDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jcmFzaHJlcG9ydGVyLXN5
bWJvbHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMuY3Jhc2hyZXBvcnRlci1zeW1ib2xz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD4xMThNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6
MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLmRtZyI+ZmlyZWZveC01Ny4wYTEuZW4t
VVMubWFjLmRtZzwvYT48L3RkPgorCQkJCTx0ZD42M008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMuanNvbiI+ZmlyZWZveC01Ny4w
YTEuZW4tVVMubWFjLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMS1T
ZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMubW9jaGl0ZXN0LnRl
c3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+
PC90ZD4KKwkJCQk8dGQ+NzJNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLm1vemluZm8uanNvbiI+ZmlyZWZveC01Ny4wYTEuZW4t
VVMubWFjLm1vemluZm8uanNvbjwvYT48L3RkPgorCQkJCTx0ZD44Nzc8L3RkPgorCQkJCTx0ZD4y
MS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMucmVmdGVzdC50
ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU3LjBhMS5lbi1VUy5tYWMudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5l
bi1VUy5tYWMudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJ
PHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy50ZXN0
X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2VzLmpz
b248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMudHh0Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5t
YWMudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6
MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIu
Z3oiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9h
PjwvdGQ+CisJCQkJPHRkPjQ5TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNTcu
MGExLmVuLVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3Rk
PgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5t
YWNfaW5mby50eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hY19pbmZvLnR4dDwvYT48L3RkPgor
CQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTcuMGExLmVuLVVTLndpbjMyLmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53
aW4zMi5hd3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNEs8L3RkPgorCQkJCTx0ZD4y
MS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1
bXMiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0
ZD44SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGEx
LmVuLVVTLndpbjMyLmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNo
ZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnpp
cCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD4zOE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU3LjBhMS5lbi1VUy53aW4zMi5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndp
bjMyLmNvbXBsZXRlLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zOE08L3RkPgorCQkJCTx0ZD4yMS1T
ZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jcHB1bml0dGVz
dC50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNwcHVuaXR0ZXN0LnRlc3Rz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56
aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+MzlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIuZXhlIj5maXJlZm94
LTU3LjBhMS5lbi1VUy53aW4zMi5pbnN0YWxsZXItc3R1Yi5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+
Mjg4SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGEx
LmVuLVVTLndpbjMyLmluc3RhbGxlci5leGUiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmlu
c3RhbGxlci5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MzZNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuanNvbiI+ZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luMzIuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44MzI8L3RkPgorCQkJCTx0
ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5tb2No
aXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjcyTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEz
OjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbiI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMud2luMzIubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg0NDwv
dGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVT
LndpbjMyLnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5yZWZ0
ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi50YWxvcy50ZXN0cy56
aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU3LjBhMS5lbi1VUy53aW4zMi50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjMyLnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMy
LnR4dCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjEw
MDwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjMyLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTcuMGExLmVuLVVT
LndpbjMyLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDlNPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
d2luMzIueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi54cGNz
aGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi56aXAiPmZpcmVmb3gt
NTcuMGExLmVuLVVTLndpbjMyLnppcDwvYT48L3RkPgorCQkJCTx0ZD41Mk08L3RkPgorCQkJCTx0
ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMl9pbmZv
LnR4dCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzJfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8
dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBh
MS5lbi1VUy53aW42NC5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQu
YXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTRLPC90ZD4KKwkJCQk8dGQ+MjEtU2Vw
LTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1zIj5m
aXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+N0s8
L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NC5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jaGVja3N1
bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEz
OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LmNvbW1vbi50ZXN0cy56aXAiPmZp
cmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+MzhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4w
YTEuZW4tVVMud2luNjQuY29tcGxldGUubWFyIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5j
b21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDFNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY3BwdW5pdHRlc3QudGVz
dHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jcHB1bml0dGVzdC50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5m
aXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwv
dGQ+CisJCQkJPHRkPjM0TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTcuMGExLmVuLVVTLndpbjY0Lmluc3RhbGxlci5leGUiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjY0Lmluc3RhbGxlci5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MzhNPC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuanNv
biI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44MzQ8
L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NC5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5t
b2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjcyTTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0Lm1vemluZm8u
anNvbiI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQubW96aW5mby5qc29uPC9hPjwvdGQ+CisJ
CQkJPHRkPjg0NzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTcuMGExLmVuLVVTLndpbjY0LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NC5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC50
YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LnRhbG9zLnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVm
b3gtNTcuMGExLmVuLVVTLndpbjY0LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0
ZD4xSzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGEx
LmVuLVVTLndpbjY0LnR4dCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQudHh0PC9hPjwvdGQ+
CisJCQkJPHRkPjEwMDwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTcuMGExLmVuLVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gt
NTcuMGExLmVuLVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJ
CQk8dGQ+NDlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luNjQueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NC54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC56
aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LnppcDwvYT48L3RkPgorCQkJCTx0ZD41Nk08
L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NF9pbmZvLnR4dCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjRfaW5mby50eHQ8L2E+
PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5sYW5ncGFjay54cGkiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxh
bmdwYWNrLnhwaTwvYT48L3RkPgorCQkJCTx0ZD40MzNLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIw
MTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5hd3N5LnRlc3Rz
LnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5hd3N5LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD4xNks8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3VtcyI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMubGludXgtaTY4Ni5jaGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJ
CTx0ZD4xMy1Ob3YtMjAxNyAwMDoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1p
Njg2LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tz
dW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAw
MDoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbW1vbi50ZXN0cy56
aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY29tbW9uLnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbXBsZXRlLm1hciI+ZmlyZWZveC01OC4w
YTEuZW4tVVMubGludXgtaTY4Ni5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDNNPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgtaTY4Ni5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxp
bnV4LWk2ODYuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjExTTwvdGQ+
CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxp
bnV4LWk2ODYuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgtaTY4Ni5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEy
MU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy5saW51eC1pNjg2Lmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuanNv
bjwvYT48L3RkPgorCQkJCTx0ZD45MTE8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vY2hpdGVzdC50ZXN0cy56aXAi
PmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD43M008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vemluZm8uanNvbiI+ZmlyZWZveC01OC4w
YTEuZW4tVVMubGludXgtaTY4Ni5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODcxPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgtaTY4Ni5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgt
aTY4Ni5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41N008L3RkPgorCQkJCTx0
ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2
LnRhbG9zLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni50YWxvcy50
ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcg
MDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni50YXIuYnoyIj5maXJl
Zm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8dGQ+NTZN
PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4t
VVMubGludXgtaTY4Ni50YXIuYnoyLmFzYyI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4
Ni50YXIuYnoyLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LnRlc3RfcGFj
a2FnZXMuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni50ZXN0X3BhY2thZ2Vz
Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDox
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LnR4dCI+ZmlyZWZveC01OC4w
YTEuZW4tVVMubGludXgtaTY4Ni50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgorCQkJCTx0
ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2
LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2
ODYud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40Nk08L3RkPgor
CQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51
eC1pNjg2LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4
Ni54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+
MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Nl9p
bmZvLnR4dCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Nl9pbmZvLnR4dDwvYT48L3Rk
PgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC01OC4w
YTEuZW4tVVMubGludXgteDg2XzY0LmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE2
SzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC5jaGVja3N1bXMiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5jaGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tz
dW1zLmFzYyI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3Vtcy5hc2M8
L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MjA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbW1vbi50ZXN0cy56aXAiPmZp
cmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jb21tb24udGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjU1TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTguMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDdNPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgteDg2XzY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgteDg2XzY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008
L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1V
Uy5saW51eC14ODZfNjQuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMubGludXgteDg2XzY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+MTA1TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51
eC14ODZfNjQuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44Nzc8L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW9jaGl0
ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vY2hpdGVz
dC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzNNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIw
MTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vemluZm8u
anNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vemluZm8uanNvbjwvYT48
L3RkPgorCQkJCTx0ZD44NzY8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD41N008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU4LjBh
MS5lbi1VUy5saW51eC14ODZfNjQudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE3
TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC50YXIuYnoyIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZf
NjQudGFyLmJ6MjwvYT48L3RkPgorCQkJCTx0ZD42ME08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAx
NyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6Mi5h
c2MiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YXIuYnoyLmFzYzwvYT48L3Rk
PgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94
LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJ
CQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnR4dCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgt
eDg2XzY0LnR4dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3
IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC53ZWItcGxhdGZv
cm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQud2ViLXBs
YXRmb3JtLnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40Nk08L3RkPgorCQkJCTx0ZD4x
My1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQu
eHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQueHBj
c2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjEzLU5v
di0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NF9pbmZv
LnR4dCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0X2luZm8udHh0PC9hPjwvdGQ+
CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OC4wYTEuZW4tVVMubWFjLmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5t
YWMuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTZLPC90ZD4KKwkJCQk8dGQ+MTIt
Tm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNoZWNrc3VtcyI+
ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD43Szwv
dGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVT
Lm1hYy5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFz
YzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01
OC4wYTEuZW4tVVMubWFjLmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzZNPC90
ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
bWFjLmNvbXBsZXRlLm1hciI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNvbXBsZXRlLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94
LTU4LjBhMS5lbi1VUy5tYWMuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEu
ZW4tVVMubWFjLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVT
Lm1hYy5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjExOE08L3Rk
PgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5t
YWMuZG1nIj5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuZG1nPC9hPjwvdGQ+CisJCQkJPHRkPjYz
TTwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVu
LVVTLm1hYy5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuanNvbjwvYT48L3RkPgorCQkJ
CTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTgu
MGExLmVuLVVTLm1hYy5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5t
YWMubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43Mk08L3RkPgorCQkJCTx0
ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMubW96aW5m
by5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMubW96aW5mby5qc29uPC9hPjwvdGQ+CisJ
CQkJPHRkPjg3NzwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTguMGExLmVuLVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMu
bWFjLnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU3TTwvdGQ+CisJCQkJPHRk
PjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50YWxvcy50
ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50YWxvcy50ZXN0cy56aXA8L2E+PC90
ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC01OC4wYTEuZW4tVVMubWFjLnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMubWFjLnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJ
CQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50
eHQiPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3Rk
PgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5t
YWMud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLndl
Yi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDZNPC90ZD4KKwkJCQk8
dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLnhwY3No
ZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLnhwY3NoZWxsLnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hY19pbmZvLnR4dCI+ZmlyZWZveC01OC4wYTEuZW4t
VVMubWFjX2luZm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MTItTm92
LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuYXdzeS50ZXN0cy56
aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJ
CQkJPHRkPjE2SzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTguMGExLmVuLVVTLndpbjMyLmNoZWNrc3VtcyI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIu
Y2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcg
MDA6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuY2hlY2tzdW1zLmFzYyI+Zmly
ZWZveC01OC4wYTEuZW4tVVMud2luMzIuY2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44
MzY8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy53aW4zMi5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5j
b21tb24udGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjEzLU5v
di0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmNvbXBsZXRlLm1h
ciI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjM5TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTgu
MGExLmVuLVVTLndpbjMyLmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4t
VVMud2luMzIuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2lu
MzIuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIu
Y3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zOU08L3RkPgorCQkJ
CTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5p
bnN0YWxsZXItc3R1Yi5leGUiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmluc3RhbGxlci1z
dHViLmV4ZTwvYT48L3RkPgorCQkJCTx0ZD4yNjlLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcg
MDA6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLmV4ZSI+Zmly
ZWZveC01OC4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLmV4ZTwvYT48L3RkPgorCQkJCTx0ZD4z
N008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy53aW4zMi5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5qc29uPC9hPjwvdGQ+
CisJCQkJPHRkPjg0NjwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGEx
LmVuLVVTLndpbjMyLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzJNPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
d2luMzIubW96aW5mby5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5tb3ppbmZvLmpz
b248L2E+PC90ZD4KKwkJCQk8dGQ+ODQ0PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjU3TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGEx
LmVuLVVTLndpbjMyLnRhbG9zLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIu
dGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJCQkJPHRkPjEzLU5v
di0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLnRlc3RfcGFja2Fn
ZXMuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIudGVzdF9wYWNrYWdlcy5qc29uPC9h
PjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzg8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIudHh0Ij5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4z
Mi50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MTAwPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6
Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIud2ViLXBsYXRmb3JtLnRlc3RzLnRh
ci5neiI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5n
ejwvYT48L3RkPgorCQkJCTx0ZD40Nk08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGEx
LmVuLVVTLndpbjMyLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjU0TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyX2luZm8udHh0Ij5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4z
Ml9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3
IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmF3c3kudGVzdHMuemlwIj5m
aXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5hd3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xNks8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBh
MS5lbi1VUy53aW42NC5jaGVja3N1bXMiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNoZWNr
c3VtczwvYT48L3RkPgorCQkJCTx0ZD43SzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjU3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gt
NTguMGExLmVuLVVTLndpbjY0LmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
d2luNjQuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuY29tbW9u
LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zOE08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAx
NyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5jb21wbGV0ZS5tYXIiPmZp
cmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNvbXBsZXRlLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40
Mk08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy53aW42NC5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndp
bjY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNy
YXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNyYXNo
cmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzRNPC90ZD4KKwkJCQk8dGQ+
MTMtTm92LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuaW5zdGFs
bGVyLmV4ZSI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuaW5zdGFsbGVyLmV4ZTwvYT48L3Rk
PgorCQkJCTx0ZD4zOU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU4LjBhMS5lbi1VUy53aW42NC5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5q
c29uPC9hPjwvdGQ+CisJCQkJPHRkPjg1NjwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZp
cmVmb3gtNTguMGExLmVuLVVTLndpbjY0Lm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NzJNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OC4wYTEuZW4tVVMud2luNjQubW96aW5mby5qc29uIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42
NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODQ3PC90ZD4KKwkJCQk8dGQ+MTMtTm92
LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQucmVmdGVzdC50ZXN0
cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LnJlZnRlc3QudGVzdHMuemlwPC9hPjwv
dGQ+CisJCQkJPHRkPjU3TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTguMGExLmVuLVVTLndpbjY0LnRhbG9zLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMud2luNjQudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJ
CQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0
LnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQudGVzdF9wYWNr
YWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcg
MDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQudHh0Ij5maXJlZm94LTU4LjBh
MS5lbi1VUy53aW42NC50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MTAwPC90ZD4KKwkJCQk8dGQ+MTMt
Tm92LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQud2ViLXBsYXRm
b3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQud2ViLXBsYXRmb3Jt
LnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40Nk08L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC54cGNzaGVsbC50ZXN0
cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTguMGExLmVuLVVTLndpbjY0LnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQu
emlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0X2luZm8udHh0Ij5maXJlZm94LTU4LjBh
MS5lbi1VUy53aW42NF9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRk
PjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxhbmdwYWNrLnhw
aSI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGFuZ3BhY2sueHBpPC9hPjwvdGQ+CisJCQkJPHRkPjQz
MUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5l
bi1VUy5saW51eC1pNjg2LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51
eC1pNjg2LmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1SzwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYu
Y2hlY2tzdW1zIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3VtczwvYT48
L3RkPgorCQkJCTx0ZD44SzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjA0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC01OS4w
YTEuZW4tVVMubGludXgtaTY4Ni5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwv
dGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVT
LmxpbnV4LWk2ODYuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgt
aTY4Ni5jb21tb24udGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU0TTwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYu
Y29tcGxldGUubWFyIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbXBsZXRlLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD40NE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNwcHVuaXR0ZXN0LnRlc3RzLnpp
cCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni5jcHB1bml0dGVzdC50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NTU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni5jcmFzaHJlcG9ydGVyLXN5bWJvbHMu
emlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNyYXNocmVwb3J0ZXItc3ltYm9s
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTA0TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEx
OjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYuanNvbiI+ZmlyZWZveC01
OS4wYTEuZW4tVVMubGludXgtaTY4Ni5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg2NjwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4
LWk2ODYubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4
Ni5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc0TTwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYu
bW96aW5mby5qc29uIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vemluZm8uanNv
bjwvYT48L3RkPgorCQkJCTx0ZD44OTc8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnJlZnRlc3QudGVzdHMuemlwIj5m
aXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU5LjBh
MS5lbi1VUy5saW51eC1pNjg2LnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008
L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1V
Uy5saW51eC1pNjg2LnRhci5iejIiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFy
LmJ6MjwvYT48L3RkPgorCQkJCTx0ZD41Nk08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhci5iejIuYXNjIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhci5iejIuYXNjPC9hPjwvdGQ+CisJCQkJPHRk
PjgzNjwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLmxpbnV4LWk2ODYudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTU5LjBhMS5lbi1V
Uy5saW51eC1pNjg2LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+
CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxp
bnV4LWk2ODYudHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnR4dDwvYT48L3Rk
PgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+Zmly
ZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9h
PjwvdGQ+CisJCQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYueHBjc2hlbGwudGVzdHMuemlwIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2X2luZm8udHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5s
aW51eC1pNjg2X2luZm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MjIt
SmFuLTIwMTggMTE6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmF3
c3kudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuYXdzeS50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTVLPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6
NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3VtcyI+Zmly
ZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0
ZD44SzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU5LjBhMS5lbi1VUy5s
aW51eC14ODZfNjQuY2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJ
CTx0ZD4yMi1KYW4tMjAxOCAxMTo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14
ODZfNjQuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0
LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NTVNPC90ZD4KKwkJCQk8dGQ+MjIt
SmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNv
bXBsZXRlLm1hciI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbXBsZXRlLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD40OE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMu
emlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMu
emlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcmFzaHJlcG9ydGVyLXN5
bWJvbHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3Jhc2hyZXBvcnRl
ci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD45MU08L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuanNvbiI+
ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+
ODMyPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEu
ZW4tVVMubGludXgteDg2XzY0Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc0
TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4
LXg4Nl82NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+OTAyPC90ZD4KKwkJCQk8dGQ+
MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0
LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQucmVm
dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MjItSmFu
LTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9z
LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9zLnRlc3Rz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6MiI+ZmlyZWZv
eC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8dGQ+NjBN
PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4t
VVMubGludXgteDg2XzY0LnRhci5iejIuYXNjIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14
ODZfNjQudGFyLmJ6Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjIt
SmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRl
c3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRlc3Rf
cGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjIyLUphbi0y
MDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8
L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1V
Uy5saW51eC14ODZfNjQud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01OS4wYTEu
ZW4tVVMubGludXgteDg2XzY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJ
CQk8dGQ+NDdNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OS4w
YTEuZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xME08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy5saW51eC14ODZfNjRfaW5mby50eHQiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4
LXg4Nl82NF9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjIyLUph
bi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5hd3N5LnRlc3RzLnpp
cCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJ
PHRkPjE1SzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTku
MGExLmVuLVVTLm1hYy5jaGVja3N1bXMiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5jaGVja3N1
bXM8L2E+PC90ZD4KKwkJCQk8dGQ+N0s8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMToxMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC01OS4w
YTEuZW4tVVMubWFjLmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTE6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmNv
bW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5jb21tb24udGVzdHMuemlw
PC9hPjwvdGQ+CisJCQkJPHRkPjM0TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjEwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTkuMGEx
LmVuLVVTLm1hYy5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDdNPC90ZD4KKwkJCQk8
dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmNwcHVu
aXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmNwcHVuaXR0ZXN0LnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEx
OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5jcmFzaHJlcG9ydGVyLXN5bWJvbHMu
emlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwv
YT48L3RkPgorCQkJCTx0ZD4xMDJNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmRtZyI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFj
LmRtZzwvYT48L3RkPgorCQkJCTx0ZD42NE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTox
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuanNvbiI+ZmlyZWZveC01OS4wYTEuZW4t
VVMubWFjLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAx
OCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMubW9jaGl0ZXN0LnRlc3RzLnpp
cCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+NzRNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OS4wYTEuZW4tVVMubWFjLm1vemluZm8uanNvbiI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFj
Lm1vemluZm8uanNvbjwvYT48L3RkPgorCQkJCTx0ZD45MDM8L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMucmVmdGVzdC50ZXN0cy56
aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU5LjBhMS5lbi1VUy5tYWMudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5t
YWMudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjIy
LUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy50ZXN0X3BhY2th
Z2VzLmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2VzLmpzb248L2E+
PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU5LjBhMS5lbi1VUy5tYWMudHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMudHh0
PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLm1hYy53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+
CisJCQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVu
LVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWNfaW5m
by50eHQiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hY19pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0
ZD4yMzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLndpbjMyLmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5h
d3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD44Szwv
dGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVT
LndpbjMyLmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNoZWNrc3Vt
cy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6
MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcCI+Zmly
ZWZveC01OS4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4zNk08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy53aW4zMi5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNv
bXBsZXRlLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40ME08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAx
OCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jcHB1bml0dGVzdC50ZXN0
cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90
ZD4KKwkJCQk8dGQ+MzJNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC01OS4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIuZXhlIj5maXJlZm94LTU5LjBh
MS5lbi1VUy53aW4zMi5pbnN0YWxsZXItc3R1Yi5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MjY5Szwv
dGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVT
LndpbjMyLmluc3RhbGxlci5leGUiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmluc3RhbGxl
ci5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MzdNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6
MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIuanNvbiI+ZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luMzIuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44NDY8L3RkPgorCQkJCTx0ZD4yMi1K
YW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3Qu
dGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVzdHMuemlw
PC9hPjwvdGQ+CisJCQkJPHRkPjc0TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbiI+ZmlyZWZveC01OS4w
YTEuZW4tVVMud2luMzIubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg3MDwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMy
LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5yZWZ0ZXN0LnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAx
MjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi50YWxvcy50ZXN0cy56aXAiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xM008L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy53aW4zMi50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLndp
bjMyLnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnR4dCI+
ZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4K
KwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
MzIud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIu
d2ViLXBsYXRmb3JtLnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJ
CTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi54
cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnhwY3NoZWxsLnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEy
OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnppcCI+ZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luMzIuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU1TTwvdGQ+CisJCQkJPHRkPjIyLUph
bi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyX2luZm8udHh0Ij5m
aXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMl9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwv
dGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVT
LndpbjY0LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5hd3N5LnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAx
MjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXMiPmZpcmVmb3gt
NTkuMGExLmVuLVVTLndpbjY0LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD43SzwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDEyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0
LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LmNoZWNrc3Vtcy5hc2M8
L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01
OS4wYTEuZW4tVVMud2luNjQuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zN008
L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1V
Uy53aW42NC5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LmNvbXBsZXRl
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40M008L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoz
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jcHB1bml0dGVzdC50ZXN0cy56aXAi
PmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3Rk
PgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLndpbjY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gt
NTkuMGExLmVuLVVTLndpbjY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+MjdNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OS4wYTEuZW4tVVMud2luNjQuaW5zdGFsbGVyLmV4ZSI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
NjQuaW5zdGFsbGVyLmV4ZTwvYT48L3RkPgorCQkJCTx0ZD40ME08L3RkPgorCQkJCTx0ZD4yMi1K
YW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5qc29uIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW42NC5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg1NjwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0
Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0Lm1vY2hpdGVz
dC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzRNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIw
MTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQubW96aW5mby5qc29uIj5m
aXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+
ODczPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luNjQucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0
LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjIy
LUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LnRhbG9zLnRl
c3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQudGFsb3MudGVzdHMuemlwPC9hPjwv
dGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC01OS4w
YTEuZW4tVVMud2luNjQudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90
ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMu
d2luNjQudHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC50eHQ8L2E+PC90ZD4KKwkJCQk8
dGQ+OTk8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy53aW42NC53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTU5LjBhMS5l
bi1VUy53aW42NC53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ3
TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVu
LVVTLndpbjY0LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQu
eHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjIt
SmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQuemlwIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW42NC56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NTlNPC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjRf
aW5mby50eHQiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0X2luZm8udHh0PC9hPjwvdGQ+CisJ
CQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubGFuZ3BhY2sueHBpIj5maXJlZm94LTYwLjBhMS5lbi1VUy5sYW5ncGFjay54
cGk8L2E+PC90ZD4KKwkJCQk8dGQ+NDM0SzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYuYXdzeS50ZXN0cy56aXAiPmZp
cmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+MTVLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jaGVja3N1bXMiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxp
bnV4LWk2ODYuY2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MTUt
RmViLTIwMTggMTI6NTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jaGVj
a3N1bXMuYXNjIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3Vtcy5hc2M8
L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6NTc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21tb24udGVzdHMuemlwIj5maXJl
Zm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NTNNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNjAuMGExLmVuLVVT
LmxpbnV4LWk2ODYuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQ0TTwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2
ODYuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2
LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2
LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2
ODYuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xMDRNPC90ZD4K
KwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGlu
dXgtaTY4Ni5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2Lmpzb248L2E+PC90
ZD4KKwkJCQk8dGQ+ODUwPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NzVNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubGludXgtaTY4Ni5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNjAuMGExLmVuLVVT
LmxpbnV4LWk2ODYubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg5NzwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2
ODYucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYucmVm
dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni50YWxvcy50
ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFsb3MudGVzdHMuemlw
PC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6MiI+ZmlyZWZveC02MC4w
YTEuZW4tVVMubGludXgtaTY4Ni50YXIuYnoyPC9hPjwvdGQ+CisJCQkJPHRkPjU2TTwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4
LWk2ODYudGFyLmJ6Mi5hc2MiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6
Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6
Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni50ZXN0X3BhY2thZ2VzLmpz
b24iPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudGVzdF9wYWNrYWdlcy5qc29uPC9h
PjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni50eHQiPmZpcmVmb3gtNjAuMGExLmVuLVVT
LmxpbnV4LWk2ODYudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni53ZWItcGxh
dGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LndlYi1w
bGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90ZD4KKwkJCQk8dGQ+
MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni54
cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYueHBjc2hl
bGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0y
MDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODZfaW5mby50eHQi
PmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODZfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8
dGQ+MjM8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBh
MS5lbi1VUy5saW51eC14ODZfNjQuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVT
LmxpbnV4LXg4Nl82NC5hd3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51
eC14ODZfNjQuY2hlY2tzdW1zIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hl
Y2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6
MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3Vtcy5hc2Mi
PmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+
CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjMzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTYw
LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD41NE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBh
MS5lbi1VUy5saW51eC14ODZfNjQuY29tcGxldGUubWFyIj5maXJlZm94LTYwLjBhMS5lbi1VUy5s
aW51eC14ODZfNjQuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQ4TTwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJ
CQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgt
eDg2XzY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxp
bnV4LXg4Nl82NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjkx
TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQu
anNvbjwvYT48L3RkPgorCQkJCTx0ZD44MTY8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjox
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQubW9jaGl0ZXN0LnRlc3Rz
LnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vY2hpdGVzdC50ZXN0cy56
aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzVNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vemluZm8uanNvbiI+Zmly
ZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0Lm1vemluZm8uanNvbjwvYT48L3RkPgorCQkJ
CTx0ZD45MDI8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYw
LjBhMS5lbi1VUy5saW51eC14ODZfNjQucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41
OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5l
bi1VUy5saW51eC14ODZfNjQudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5s
aW51eC14ODZfNjQudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4
LXg4Nl82NC50YXIuYnoyIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6
MjwvYT48L3RkPgorCQkJCTx0ZD42ME08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6Mi5hc2MiPmZpcmVm
b3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YXIuYnoyLmFzYzwvYT48L3RkPgorCQkJCTx0
ZD44MzY8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBh
MS5lbi1VUy5saW51eC14ODZfNjQudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTYwLjBhMS5l
bi1VUy5saW51eC14ODZfNjQudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFL
PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4t
VVMubGludXgteDg2XzY0LnR4dCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnR4
dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC53ZWItcGxhdGZvcm0udGVzdHMu
dGFyLmd6Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQud2ViLXBsYXRmb3JtLnRl
c3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAx
OCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQueHBjc2hlbGwu
dGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQueHBjc2hlbGwudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEy
OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NF9pbmZvLnR4dCI+Zmly
ZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0X2luZm8udHh0PC9hPjwvdGQ+CisJCQkJPHRk
PjIzPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEu
ZW4tVVMubWFjLmF3c3kudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMuYXdzeS50
ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTVLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTgg
MTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNoZWNrc3VtcyI+ZmlyZWZveC02
MC4wYTEuZW4tVVMubWFjLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD43SzwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5jaGVj
a3N1bXMuYXNjIj5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFzYzwvYT48L3Rk
PgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy5tYWMuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4t
VVMubWFjLmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzRNPC90ZD4KKwkJCQk8
dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNvbXBs
ZXRlLm1hciI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNvbXBsZXRlLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTYwLjBhMS5lbi1VUy5tYWMuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5l
bi1VUy5tYWMuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4K
KwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFj
LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5jcmFz
aHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjExN008L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMuZG1nIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy5tYWMuZG1nPC9hPjwvdGQ+CisJCQkJPHRkPjY1TTwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5q
c29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwv
dGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVT
Lm1hYy5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMubW9jaGl0
ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43NE08L3RkPgorCQkJCTx0ZD4xNS1GZWIt
MjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMubW96aW5mby5qc29uIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy5tYWMubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjkw
MzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLnJlZnRl
c3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0y
MDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy50YWxvcy50ZXN0cy56aXAi
PmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy50YWxvcy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4w
YTEuZW4tVVMubWFjLnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFj
LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjE1
LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy50eHQiPmZpcmVm
b3gtNjAuMGExLmVuLVVTLm1hYy50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMud2ViLXBs
YXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLndlYi1wbGF0Zm9y
bS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLnhwY3NoZWxsLnRlc3Rz
LnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3Rk
PgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNjAuMGExLmVuLVVTLm1hY19pbmZvLnR4dCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjX2lu
Zm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6
Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuYXdzeS50ZXN0cy56aXAiPmZpcmVm
b3gtNjAuMGExLmVuLVVTLndpbjMyLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1
SzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLndpbjMyLmNoZWNrc3VtcyI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuY2hlY2tzdW1z
PC9hPjwvdGQ+CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjI8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC02MC4w
YTEuZW4tVVMud2luMzIuY2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4z
Mi5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5jb21tb24udGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjM2TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEz
OjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmNvbXBsZXRlLm1hciI+ZmlyZWZv
eC02MC4wYTEuZW4tVVMud2luMzIuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQwTTwv
dGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVT
LndpbjMyLmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIu
Y3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuY3Jhc2hy
ZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuY3Jhc2hyZXBv
cnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zMk08L3RkPgorCQkJCTx0ZD4xNS1G
ZWItMjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5pbnN0YWxsZXIt
c3R1Yi5leGUiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmluc3RhbGxlci1zdHViLmV4ZTwv
YT48L3RkPgorCQkJCTx0ZD4yNjlLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLmV4ZSI+ZmlyZWZveC02MC4w
YTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLmV4ZTwvYT48L3RkPgorCQkJCTx0ZD4zN008L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4z
Mi5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5qc29uPC9hPjwvdGQ+CisJCQkJPHRk
PjgzMDwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjMyLm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndp
bjMyLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzRNPC90ZD4KKwkJCQk8
dGQ+MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIubW96
aW5mby5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5tb3ppbmZvLmpzb248L2E+PC90
ZD4KKwkJCQk8dGQ+ODcwPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMud2luMzIucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjMyLnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+
CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndp
bjMyLnRhbG9zLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIudGFsb3MudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEz
OjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnRlc3RfcGFja2FnZXMuanNvbiI+
ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJ
CQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMud2luMzIudHh0Ij5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi50eHQ8L2E+
PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6Ij5maXJl
Zm94LTYwLjBhMS5lbi1VUy53aW4zMi53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+
CisJCQkJPHRkPjQ4TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNjAuMGExLmVuLVVTLndpbjMyLnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEu
ZW4tVVMud2luMzIueHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4K
KwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2lu
MzIuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+
NTVNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEu
ZW4tVVMud2luMzJfaW5mby50eHQiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyX2luZm8udHh0
PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNjAu
MGExLmVuLVVTLndpbjY0LmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1SzwvdGQ+
CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndp
bjY0LmNoZWNrc3VtcyI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1zPC9hPjwv
dGQ+CisJCQkJPHRkPjdLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC02MC4wYTEuZW4t
VVMud2luNjQuY2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5jb21t
b24udGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5jb21tb24udGVzdHMuemlw
PC9hPjwvdGQ+CisJCQkJPHRkPjM3TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LmNvbXBsZXRlLm1hciI+ZmlyZWZveC02MC4w
YTEuZW4tVVMud2luNjQuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQzTTwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0
LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuY3BwdW5p
dHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuY3Jhc2hyZXBvcnRl
ci1zeW1ib2xzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuY3Jhc2hyZXBvcnRlci1z
eW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4yOE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAx
OCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5pbnN0YWxsZXIuZXhlIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5pbnN0YWxsZXIuZXhlPC9hPjwvdGQ+CisJCQkJPHRk
PjQwTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjY0Lmpzb24iPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0Lmpzb248L2E+PC90
ZD4KKwkJCQk8dGQ+ODQwPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMud2luNjQubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02MC4w
YTEuZW4tVVMud2luNjQubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43NE08
L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1V
Uy53aW42NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0Lm1vemluZm8u
anNvbjwvYT48L3RkPgorCQkJCTx0ZD44NzM8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoy
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5yZWZ0ZXN0LnRlc3RzLnppcCI+Zmly
ZWZveC02MC4wYTEuZW4tVVMud2luNjQucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4w
YTEuZW4tVVMud2luNjQudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW42
NC50YWxvcy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MTUt
RmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQudGVzdF9wYWNr
YWdlcy5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC50ZXN0X3BhY2thZ2VzLmpzb248
L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC50eHQiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndp
bjY0LnR4dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEz
OjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50
YXIuZ3oiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIu
Z3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQueHBjc2hlbGwudGVzdHMuemlwIj5maXJl
Zm94LTYwLjBhMS5lbi1VUy53aW42NC54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBh
MS5lbi1VUy53aW42NC56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LnppcDwvYT48L3Rk
PgorCQkJCTx0ZD41OU08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy53aW42NF9pbmZvLnR4dCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2lu
NjRfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAx
OCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkxNzEwMDMzNC0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTcxMDAzMzQtMjAx
NzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4yMS1TZXAtMjAxNyAwMDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MTcyMjAyNTUtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAwMDoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01Ny4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkyMTEwMDE0
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxODEwMDA1OS0y
MDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAyMjA0MzEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAwMDoyMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkxODEwMDA1OS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjExMDAx
NDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgyMjAwNTQt
MjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAwMDoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MTgyMjAwNTQtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTEw
MDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE3MTAw
MzM0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcwOTE5MTAwNDA1LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcg
MTQ6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxNzIyMDI1NS0y
MDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjE5LVNlcC0yMDE3IDE0OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDowOTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcw
OTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTQ6NDk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkxODEwMDA1OS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTIy
MDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNl
cC0yMDE3IDAwOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTgx
MDAwNTktMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MTAwNDA1
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTQ6NDk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODIyMDA1
NC0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTIyMDIwMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDAw
OjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAx
NzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMC1TZXAtMjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6MDk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkx
OTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDAwOjA4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MTkxMDA0MDUtMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAxMDA0
MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAt
MjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE5MTAw
NDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMTEwMDE0MS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDIt
MjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjAxMDA0MjYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAxMjow
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcw
OTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjEtU2VwLTIwMTcgMDA6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkxOTIyMDIwMi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjAy
MjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAwMDoxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIw
MTAwNDI2LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMDIyMDQz
MS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDEyOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTcxMDAzMzQtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTcxMDAzMzQt
MjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4xOS1TZXAtMjAxNyAxMjoyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtbWFjLWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIw
MTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MTktU2VwLTIwMTcgMTI6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LW1hYy1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3
MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRk
PjE5LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5
MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4x
OS1TZXAtMjAxNyAxMjoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFj
LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5
MjIwMjAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTkt
U2VwLTIwMTcgMjM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1l
bi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkyMDEw
MDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLVNl
cC0yMDE3IDExOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MTkxMDA0
MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOS1TZXAt
MjAxNyAxMjoyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVT
LTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MjIwMjAy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIw
MTcgMjM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0y
MDE3MDkxODIyMDA1NC0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDEwMDQyNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3
IDExOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MTgyMjAwNTQtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAyMjA0MzEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAy
MzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcw
OTE5MTAwNDA1LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTE5MjIwMjAyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMjM6
MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkx
OTEwMDQwNS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDExOjIy
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkx
MDA0MDUtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAyMzoyMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MTAw
NDA1LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTIyMDIw
Mi0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcu
MGExLW1hYy1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDExOjIyPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkyMjAyMDIt
MjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAyMzoyMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIw
MTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEt
bWFjLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3
MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1h
Yy1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDIzOjIwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5
MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIx
MTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVu
LVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcwOTE5
MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzIt
ZW4tVVMtMjAxNzA5MTcxMDAzMzQtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAxNToxMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5
MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDE1OjEwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3
MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMDA6NDQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIw
MTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAxNToxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgxMDAwNTkt
MjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDAwOjQ0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxODEwMDA1
OS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMTI6NDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MjIw
MDU0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAxNToxMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgy
MjAwNTQtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDAwOjQ0
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkx
ODIyMDA1NC0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMTAwNDI2LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMTI6
NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAyMjA0MzEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAw
MDo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MTkxMDA0MDUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkxOTIyMDIwMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3
IDAwOjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkxOTEwMDQwNS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMTAwNDI2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIw
MTcgMTI6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAyMjA0
MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMTEw
MDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLVNl
cC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIw
MTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjAt
U2VwLTIwMTcgMTI6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5
MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4y
MS1TZXAtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3
MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIw
MTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMDA6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAxMDA0MjYt
MjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMDIyMDQz
MS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxNzEwMDMzNC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE3MTAw
MzM0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MTktU2VwLTIwMTcgMTU6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTcy
MjAyNTUtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAxNTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkx
NzIyMDI1NS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDAwOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTEwMDQwNS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcw
OTE4MTAwMDU5LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTU6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MjIwMjAyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAx
NzA5MTgxMDAwNTktMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0y
MDE3MDkxODEwMDA1OS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTEwMDQw
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVT
LTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTU6NDQ8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MjIw
MjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4t
VVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDo0NzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAx
MDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1l
bi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQ0PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDky
MDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0
LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDE6MDk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcw
OTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2lu
NjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDo0NzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAx
NzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQ0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0y
MDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDE6MDk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1
LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTkyMjAy
MDItMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQ0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxOTIy
MDIwMi0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDE6MDk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5
MjIwMjAyLTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjExMDAxNDEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzow
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjAxMDA0MjYtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMDIyMDQzMS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDAx
OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyMDEwMDQyNi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcg
MTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTIwMjIwNDMxLTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAx
NzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMi1TZXAtMjAxNyAwMDo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MTgyMjAwNTQtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMjEwMDA1
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0NTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMDIyMDQzMS0y
MDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDo0Mjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkyMDIyMDQzMS0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAw
NTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1TZXAt
MjAxNyAxMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEt
MjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yMy1TZXAtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjEw
MDA1MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0NTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTEwMDE0
MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIyMjAxMjkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAwMDo1
NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMx
MDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1T
ZXAtMjAxNyAxMzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAy
NDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDky
MzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAxMzowNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMTIy
MDI0My0yMDE3MDkyMzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMyMjAzMzcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAw
MTo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5
MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4y
My1TZXAtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIx
MDAwNTEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAxMzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzIyMDMzNy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMTo1MTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3
MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxMzozMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDky
MjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMxMDAwNDUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAx
NyAxMzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAx
NzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNC1TZXAtMjAxNyAwMTo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjIyMjAxMjktMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDEx
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMzEwMDA0NS0y
MDE3MDkyMzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMTo1MTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1
NTAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAt
MjAxNyAxMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUt
MjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4yNS1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDEw
MDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxMzozMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyMzIyMDMz
Ny0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTow
NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MDkyMzIyMDMzNy0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUx
MDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1T
ZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMyMjAz
MzctMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yNi1TZXAtMjAxNyAwMDoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNDIyMDExNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjQxMDA1NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDky
NTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDEw
MDU1MC0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUyMjAyMDcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAw
MDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5
MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
Ni1TZXAtMjAxNyAxMjoyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQy
MjAxMTYtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIwNy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAwMDoxMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3
MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMjoyNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDky
NDIyMDExNi0yMDE3MDkyNjIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAx
NyAwMDoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAx
NzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNi1TZXAtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjUxMDAzMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMjoyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjIyMDEw
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDoyMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNTEwMDMwNy0y
MDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMjoxNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAy
NTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1TZXAt
MjAxNyAxMjoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDct
MjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yNy1TZXAtMjAxNyAwMDoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjUyMjAyMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEw
MDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNjEwMDI1
OS0yMDE3MDkyNjIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjYyMjAxMDYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDoy
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MDkyNjEwMDI1OS0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5Mjcx
MDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1T
ZXAtMjAxNyAxMjoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAy
NTktMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4yOC1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODIyMDY1OC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjYxMDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDky
NzEwMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMjoxNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNjIy
MDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgxMDAxMjMucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAx
MjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5
MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
OS1TZXAtMjAxNyAwMDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYy
MjAxMDYtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAxMjoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEyMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3
MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMDoyNzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDky
NzEwMDEyMC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkxMDAxMjIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAx
NyAxMjoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAx
NzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4zMC1TZXAtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjgxMDAxMjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTEwMDEy
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAxMjoxNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODEwMDEyMy0y
MDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAwMDoxNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkyODEwMDEyMy0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAz
MDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4zMC1TZXAt
MjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgt
MjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yOS1TZXAtMjAxNyAxMjoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjgyMjA2NTgtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDEw
MDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoyMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyODIyMDY1
OC0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoy
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5Mjky
MjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1T
ZXAtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAx
MjItMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDIyMDExNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MTAw
MTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAxMjoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyOTIy
MDM1Ni0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAx
MjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5
MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
MS1PY3QtMjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5Mjky
MjAzNTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTIyMDMwMS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3
MDkzMDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoyODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkz
MDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDExMDAzMzUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAx
NyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAx
NzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wMi1PY3QtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMz
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MDkzMDIyMDExNi0y
MDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMDoxNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MDkzMDIyMDExNi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAx
MzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3Qt
MjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAyMjAxMTYt
MjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wMy1PY3QtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDExMDAzMzUtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjEw
MDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTEwMDMz
NS0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIyMjAyMDQucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAwMDoz
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAwMTEwMDMzNS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMx
MDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1P
Y3QtMjAxNyAxMjoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAz
MDEtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjIyMDIwNC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAw
MzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjoxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMTIy
MDMwMS0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMyMjAxMzgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAw
MDoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEw
MDIyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
My1PY3QtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIx
MDAxMzQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzIyMDEzOC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDoxNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3
MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcgMTM6MjU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MDIyMjAyMDQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMTAwMjI2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIw
MTcgMTI6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIw
MTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MDQtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDAyMjIwMjA0LTIwMTcxMDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEw
TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA0MjIw
MzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMzEwMDIy
Ni0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDox
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQx
MDAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MDQt
T2N0LTIwMTcgMTM6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMTAw
MjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjExTTwvdGQ+
CisJCQkJPHRkPjA1LU9jdC0yMDE3IDAwOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA1MTAwMjExLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3
MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAxMzoyNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
MzIyMDEzOC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQyMjAzMDku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIw
MTcgMDA6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIw
MTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJ
PHRkPjA1LU9jdC0yMDE3IDEyOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4x
MU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAwMDoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNDIy
MDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNDEwMDA0
OS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjox
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUy
MjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNi1P
Y3QtMjAxNyAwMDoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQxMDAw
NDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4wNi1PY3QtMjAxNyAxMjoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTEwMDIxMS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAw
NTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAwMDoyMjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNDIy
MDMwOS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAx
MjoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEw
MDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4w
Ny1PY3QtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUx
MDAyMTEtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAwMDoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMjoxODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3
MTAwNjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDoxMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
NTEwMDIxMS0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDcxMDAxNDIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAx
NyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAx
NzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4wNi1PY3QtMjAxNyAxMjoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MDUyMjAyMDQtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzEwMDE0
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNTIyMDIwNC0y
MDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAwNjEwMDMyNy0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDYyMjAz
MDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1PY3Qt
MjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjct
MjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4wNy1PY3QtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDYxMDAzMjctMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwODEz
MTcwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNTozNjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNjIyMDMw
Ni0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMjox
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAwNjIyMDMwNi0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcy
MjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wOC1P
Y3QtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAz
MDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4wOC1PY3QtMjAxNyAxNTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAw
NzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNzEw
MDE0Mi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAx
NTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEw
MDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4w
OS1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcx
MDAxNDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODEzMTcwMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNTozNjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3
MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAwMTowNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
NzIyMDE1Ni0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAx
NyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAx
NzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4xMC1PY3QtMjAxNyAwMDozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MDgxMzE3MDAtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwOTEwMDEz
NC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODEzMTcwMC0y
MDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDozMjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAwODEzMTcwMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAy
MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMC1PY3Qt
MjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgyMjAxMzAt
MjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4wOS1PY3QtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDgyMjAxMzAtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OU08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDEw
MDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgyMjAx
MzAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMjIwMTAyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDAw
OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDA5MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAw
OTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEw
LU9jdC0yMDE3IDAwOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEw
MDEzNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+
CisJCQkJPHRkPjEwLU9jdC0yMDE3IDEyOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMjIwMTAyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD45TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDAwOjM1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcx
MDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjA2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA5
MjIwMTA0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3
IDEyOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3
MTAxMDIyMDEwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjExLU9jdC0yMDE3IDAwOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
OTIyMDEwNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMjIwMTEz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAwOjQyPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIw
MTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDAwOjM1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDEwMTAwMjAwLTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTEwMDEz
My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0y
MDE3IDE3OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0y
MDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjEyLU9jdC0yMDE3IDAwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxMDEwMDIwMC0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTA1
ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE1OjEzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEwMjIwMTAy
LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjA2
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTIy
MDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9j
dC0yMDE3IDAwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEw
Mi0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjEyLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDEyMTA1ODMzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE1OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEx
MjIwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAwOjQyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDExMTAw
MTMzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwMDIyOC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEz
OjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAx
MjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEy
LU9jdC0yMDE3IDE1OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTEw
MDEzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+
CisJCQkJPHRkPjEzLU9jdC0yMDE3IDAwOjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTAwMjI4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcx
MDEyMTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE1OjEzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEx
MjIwMTEzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjIyMDExMS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3
IDAwOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3
MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRk
PjEzLU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
MjEwMDIyOC0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDAwOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMTAwMTEy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIw
MTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAxOjE1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDEyMTA1ODMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMjIyMDEx
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0y
MDE3IDAwOjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0y
MDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjEzLU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxMjEwNTgzMy0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45
TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAxOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDE0MTAw
MjE5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMjo0NTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjIyMDEx
MS0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMjoy
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxMjIyMDExMS0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMy
MjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNC1P
Y3QtMjAxNyAwMToxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAx
MTEtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4K
KwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQyMjA1NDIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjExTTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDAxOjMzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcx
MDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAxOjE1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEz
MTAwMTEyLTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3
IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3
MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjE1LU9jdC0yMDE3IDAxOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
MzEwMDExMi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MTAwMjE5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIw
MTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDAxOjMzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDEzMjIwMjA0LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTEwMDEy
Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0y
MDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzIyMDIwNC0y
MDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjE2LU9jdC0yMDE3IDAxOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxNDEwMDIxOS0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDAxOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE1MTAw
MTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MTAwMjE5
LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAxOjQ4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNjEw
MDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9j
dC0yMDE3IDEyOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0
Mi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MjIwMTA2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAxOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2
MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDEyOjQ3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE0MjIw
NTQyLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAx
OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAx
NTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2
LU9jdC0yMDE3IDAxOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEw
MDEyNy0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjE2LU9jdC0yMDE3IDEyOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAxOjM1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcx
MDE3MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEyOjI5PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE1
MjIwMTA2LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjEwMDExMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3
IDEyOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3
MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE3LU9jdC0yMDE3IDAxOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
NTIyMDEwNi0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTQxMjI5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIw
MTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAxOjM1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzEwMDEy
Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0y
MDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0y
MDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjE3LU9jdC0yMDE3IDE3OjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxNjEwMDExMy0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTAw
MTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE2MjIwNDI3
LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzIy
MDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE4LU9j
dC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjIyMDQy
Ny0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJ
CQkJPHRkPjE4LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MTQxMjI5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3
MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDAxOjA0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTAw
MTI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEy
OjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAx
ODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5
LU9jdC0yMDE3IDAxOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0
MTIyOS0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjE4LU9jdC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MTAwMTQwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcx
MDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDAxOjAxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3
MTQxMjI5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxOTEwMDEwNy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3
IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3
MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE4LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
NzIyMDQxNS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDAxOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MTAwMTA3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIw
MTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDE4MTAwMTQwLTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0y
MDE3IDAxOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0y
MDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjE5LU9jdC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxODEwMDE0MC0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45
TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDIwMTAw
NDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE4MjIwMDQ5
LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEyOjQz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDE4MjIwMDQ5LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTIy
MjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIwLU9j
dC0yMDE3IDAxOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0
OS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxODIyMDA0OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD45TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAwOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDE5
MjIyMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMzPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE5MTAw
MTA3LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEy
OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAy
MDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIx
LU9jdC0yMDE3IDAwOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTEw
MDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcx
MDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAwOjU4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDE5
MjIyMTQxLTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3
IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3
MTAyMTIyMDEyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjIyLU9jdC0yMDE3IDAyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
MDEwMDQyNi0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAwOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMTAwMDI5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIw
MTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDAyOjA2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDIwMTAwNDI2LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMjEwMDA1
OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0y
MDE3IDEyOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0y
MDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjIxLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAyMDIyMTEyOS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDAyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIyMTAw
MDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEyOjM2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIwMjIxMTI5
LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMTIy
MDEyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLU9j
dC0yMDE3IDAyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAy
OS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjIyLU9jdC0yMDE3IDEyOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMjIwMTAzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIz
MTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDEyOjM5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIxMjIw
MTIxLTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEwMDA1OC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEy
OjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAy
MjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIz
LU9jdC0yMDE3IDAwOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIy
MDEyMS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIzLU9jdC0yMDE3IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMjIwMjIyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMTo0MDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3
MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAwMDozNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
MjEwMDA1OC0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAx
NyAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAx
NzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8
dGQ+MjQtT2N0LTIwMTcgMDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDIyMTAwMDU4LTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEz
TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMTAw
MjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDEyOjM5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMjIwMTAz
LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMTo0
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyMjIyMDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQx
MDAxMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjQt
T2N0LTIwMTcgMTI6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMjIw
MTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+
CisJCQkJPHRkPjI1LU9jdC0yMDE3IDAwOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMTo0MDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3
MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjMxMDAyNTItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0y
MDE3IDAwOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0y
MDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJ
CTx0ZD4yNS1PY3QtMjAxNyAxMjozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjMyMjAyMjItMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMjozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDIy
MDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzIyMDIy
Mi0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMjoz
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUy
MzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNi1P
Y3QtMjAxNyAwMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAx
MzUtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMjozNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAy
NTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAwMjozNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDEw
MDEzNS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAx
NDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEw
MjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4y
NS1PY3QtMjAxNyAxMjozNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQy
MjAzMjUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAwMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNjEwMDA0Ny5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3
MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwNzo1NTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
NTEwMDQ0OS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjUyMzA0NDAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAx
NyAwMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAx
NzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4yNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjUxMDA0NDktMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwNzo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNzEwMDEw
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxNTowMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0y
MDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNDoyNzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAyNTIzMDQ0MC0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYyMjE5
NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3Qt
MjAxNyAwNzo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAt
MjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4yNy1PY3QtMjAxNyAxNTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNjIy
MTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwNzo1NTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNjEwMDA0
Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcxMDAxMDMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxNDo1
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcy
MjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1P
Y3QtMjAxNyAwMjo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYxMDAw
NDctMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4yOC1PY3QtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NE08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxNDo1OTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAy
NzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjo1OTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNjIy
MTk0NS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgxMDA0MjMucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAx
Mzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEw
MjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4y
OS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcx
MDAxMDMtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyODEwMDQyMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3
MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAwMTowMDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
NzEwMDEwMy0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjkxMDIzMDAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAx
NyAxNDozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAx
NzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4yOC1PY3QtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjcyMjAwNTktMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMw
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAxNDozOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyNzIyMDA1OS0y
MDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkyMjAxMTIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwMzoxNDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAyODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAz
MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3Qt
MjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMt
MjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4yOS1PY3QtMjAxNyAxNDozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTIyMDExMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjgxMDA0MjMtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwMzoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEw
MzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAyMDo0MTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyODIyMDMy
Ni0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkxMDIzMDAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAxNDoz
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyODIyMDMyNi0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjky
MjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1P
Y3QtMjAxNyAwMzoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAz
MjYtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4zMC1PY3QtMjAxNyAyMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMTIyMDEzMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMzoxNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAz
MTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDoxNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyOTEw
MjMwMC0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMjkyMjAxMTIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAw
MzoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEw
MzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4z
MC1PY3QtMjAxNyAyMDo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkx
MDIzMDAtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMzoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIzNTExOC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDoxNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3
MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAyMDo0MjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
OTIyMDExMi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMjAxMzIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAx
NyAwMzoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAx
NzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4wMS1Ob3YtMjAxNyAxMDoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjkyMjAxMTItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MzhN
PC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMjAx
MzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MTc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzAxMDM2MDUt
MjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MTc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMzAxMDM2MDUtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMTA0
NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjAxLU5v
di0yMDE3IDE3OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMDEwMzYw
NS0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zOE08L3RkPgor
CQkJCTx0ZD4wMi1Ob3YtMjAxNyAwMDoyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTEwNDQzMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+MzhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzEx
MDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjI1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMx
MjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMjEwMDA0MS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3
IDEyOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3
MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zOE08L3RkPgorCQkJCTx0
ZD4wMS1Ob3YtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MzEyMzUxMTgtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MzhN
PC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIxMDAw
NDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTI6MDc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEyMzUxMTgt
MjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMDA6NTE8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzExMDExMDQ0MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAxMjIw
MTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92
LTIwMTcgMDA6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMw
LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjI1TTwvdGQ+CisJ
CQkJPHRkPjAyLU5vdi0yMDE3IDEyOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMjIyNjIwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTEwMTEwNDQzMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4yNU08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDo1MDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEw
MzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+MjVNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6MTE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDEy
MjAxMjAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMTAwMDQxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjI0TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3
IDEyOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3
MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4yNU08L3RkPgorCQkJCTx0
ZD4wMy1Ob3YtMjAxNyAwMDo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEx
MDEyMjAxMjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MjRN
PC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMyMjA3
MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjI0TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAyMTAwMDQx
LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAwOjUw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMTAyMTAwMDQxLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzEw
MDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAzLU5v
di0yMDE3IDEyOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0
MS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjA0LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTA0MTAwNDEyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTEwMjEwMDA0MS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDEyOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAz
MTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjExPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAyMjIy
NjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAw
OjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEw
NDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA0
LU5vdi0yMDE3IDEyOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjIy
MjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcx
MTA0MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDEyOjE2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAz
MTAwMzMxLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3
IDAwOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3
MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjA1LU5vdi0yMDE3IDEyOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEw
MzIyMDcxNS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDEyOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0MjIwNDIw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjQwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIw
MTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDEyOjA4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MTAzMjIwNzE1LTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTIyMDcy
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0y
MDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0y
MDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJ
PHRkPjA1LU5vdi0yMDE3IDAwOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTEwNDEwMDQxMi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4z
TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDEyOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MjIw
NzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA0MTAwNDEy
LTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjU5
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTEw
MDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40Nks8L3RkPgorCQkJCTx0ZD4wNS1O
b3YtMjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQyMjA0
MjAtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDY5SzwvdGQ+
CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA2MTAwMTIyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjU4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcx
MTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD40NjZLPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMDA6MTU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEx
MDUxMDAzNTMtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIw
MTcgMTE6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzExMDUyMjA3MjEtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA1MjIwNzIxLTIw
MTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MDYtTm92LTIwMTcgMTE6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkxOTIyMDIwMi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5
MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDozODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTIwMTAwNDI2LTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIyMTAw
MDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjItU2Vw
LTIwMTcgMTI6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMDIy
MDQzMS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIyLVNlcC0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0MjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMjIwNDMx
LTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMjIwMTI5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDE6
MDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3
MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjIyLVNlcC0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIy
MjIwMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDE6MDI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
MTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0y
MDE3IDEzOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjEyMjAy
NDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMi1TZXAtMjAxNyAxMjo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0y
MDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjA1
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5
MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4y
NC1TZXAtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTIyMTAwMDUxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEw
MDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjA0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIx
MDAwNTEtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMyMjAzMzcu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAx
NyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIyMTAwMDUx
LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjQtU2VwLTIwMTcgMTM6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjA0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAx
NzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMyMjAzMzcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMDo0Nzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTIyMjIwMTI5LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI0
MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjQt
U2VwLTIwMTcgMTM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
MjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAz
MzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMDo0ODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMTAw
MDQ1LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MTAwNTUwLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcg
MTM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMzEwMDA0NS0y
MDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjI1LVNlcC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcw
OTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTM6MzU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkyMzIyMDMzNy0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDIy
MDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI1LVNl
cC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjMy
MjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MjIwMjA3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1
MC0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNDIyMDExNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAx
OjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAx
NzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTI0MTAwNTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDky
NjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEyOjEyPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MjQyMjAxMTYtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjUxMDAz
MDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAt
MjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI0MjIw
MTE2LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjEwMDI1OS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEyOjEyPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYt
MjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDox
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcw
OTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjYtU2VwLTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEyOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYy
MjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDoxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1
MTAwMzA3LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI4MTAwMTIz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIw
MTcgMTI6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTIyMDIw
Ny0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI2LVNlcC0yMDE3IDEyOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYyMjAxMDYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIw
MTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTI6MDQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkyNTIyMDIwNy0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDky
ODIyMDY1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjI5
LVNlcC0yMDE3IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MjYxMDAyNTktMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MTAw
MTIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTI6MDQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjEw
MDI1OS0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODIyMDY1OC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3
IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTkt
MjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4yOS1TZXAtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MTAwMTIzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTI6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3
MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDAwOjI4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MjYyMjAxMDYtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5Mjkx
MDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOS1T
ZXAtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2
MjIwMTA2LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90
ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyODIyMDY1
OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDAwOjI4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgxMDAx
MjMtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkxMDAxMjIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAx
MjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIw
MTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MzAtU2VwLTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkyODEwMDEyMy0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDEyOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5
MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAxMjoxNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTI4MjIwNjU4LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MjIw
MzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MzAtU2Vw
LTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyODIy
MDY1OC0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjMwLVNlcC0yMDE3IDEyOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIy
LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTI5MjIwMzU2LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDA6
MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3
MDkzMDEwMDMwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjMwLVNlcC0yMDE3IDEyOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcxMDAx
MTAwMzM1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
OTIyMDM1Ni0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkzMDEwMDMw
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0y
MDE3IDEyOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjkyMjAz
NTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wMS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMTAwMzM1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0y
MDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDAwOjE0
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5
MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
MS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTMwMTAwMzAyLTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTIy
MDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDAwOjE1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAx
MDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAx
NyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTMwMjIwMTE2
LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTIyMDMwMS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAx
NzEwMDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTMwMjIwMTE2LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAy
MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMt
T2N0LTIwMTcgMDA6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
MTEwMDMzNS0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAx
MzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMTAw
MzM1LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMjIwMjA0LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcg
MDA6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMTEwMDMzNS0y
MDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjAzLU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIxMDAxMzQucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcx
MDAyMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDA6Mjg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAwMTIyMDMwMS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzEw
MDIyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9j
dC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDEy
MjAzMDEtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAyMjIwMjA0
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDA6Mjg8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjEwMDEz
NC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzEwMDIyNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDEy
OjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAx
NzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4wNC1PY3QtMjAxNyAwMDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDAyMTAwMTM0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjExTTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEw
MDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjowOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDAyMjIwMjA0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMjIw
MTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0
LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjIy
MDIwNC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3Rk
PgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA1MTAwMjEx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjExTTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjE2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMxMDAy
MjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAw
MDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIw
MTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJ
PHRkPjA1LU9jdC0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTI6MTY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3
MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAwMDoxNzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0
MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjA1
LU9jdC0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTBN
PC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTI6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIy
MDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAwMDoxNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAz
MjIwMTM4LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA2MTAwMzI3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0y
MDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDQyMjAz
MDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MjIwMjA0LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNDIyMDMwOS0y
MDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDEyOjEz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDQyMjAzMDktMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEw
MDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4w
Ny1PY3QtMjAxNyAwMDoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDA1MTAwMjExLTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEw
MDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDEyOjEzPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUx
MDAyMTEtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYyMjAzMDYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAx
NyAwMDoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA1MTAwMjEx
LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJ
CQk8dGQ+MDctT2N0LTIwMTcgMTI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDEyOjE0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAx
NzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDoxMjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDA1MjIwMjA0LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA3
MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDct
T2N0LTIwMTcgMTI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
NTIyMDIwNC0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwv
dGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDAwOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDYyMjAz
MDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDoxMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MTAw
MzI3LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MTAwMTQyLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcg
MTI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNjEwMDMyNy0y
MDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjA4LU9jdC0yMDE3IDAwOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNTozMjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcx
MDA3MTAwMTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6MDk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAwNjIyMDMwNi0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzIy
MDE1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA4LU9j
dC0yMDE3IDAwOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDYy
MjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNTozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MjIwMTMw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0
Mi0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwNzIyMDE1Ni5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDAw
OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAx
NzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4wOC1PY3QtMjAxNyAxNTozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDA3MTAwMTQyLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAw
OTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDEyOjIxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3
MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOC1PY3Qt
MjAxNyAxNTozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA3MjIw
MTU2LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTEwMDEzNC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYt
MjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDoy
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcx
MDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MDktT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAwODEzMTcwMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDky
MjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDoxOTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4
MTMxNzAwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDEwMTAwMjAw
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIw
MTcgMTI6NDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwODIyMDEz
MC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjA5LU9jdC0yMDE3IDEyOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkyMjAxMDQucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDoxOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIw
MTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTI6NDU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAwODIyMDEzMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAx
MDIyMDEwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEx
LU9jdC0yMDE3IDAwOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MDkxMDAxMzQtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMTAw
MjAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTI6NDU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTEw
MDEzNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDIyMDEwMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3
IDAwOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQt
MjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4xMS1PY3QtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMTAwMjAwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3
MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDAwOjMzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMDkyMjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEx
MDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMS1P
Y3QtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5
MjIwMTA0LTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMDA6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEw
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDAwOjMzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAy
MDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAx
NzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIw
MTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MTItT2N0LTIwMTcgMDA6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEw
MTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNTowNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDEwMjIwMTAyLTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMTAw
MTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTEtT2N0
LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDIy
MDEwMi0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAwOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMjIwMTAy
LTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDEyMTA1ODMzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6
MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3
MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjEyLU9jdC0yMDE3IDAwOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEy
MTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6MDU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAx
MTEwMDEzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjIyMDEx
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0y
MDE3IDAwOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTEyMjAx
MTMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTA1ODMzLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6MDU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTIyMDExMy0y
MDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDAwOjE3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTEyMjAxMTMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEw
MTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4x
My1PY3QtMjAxNyAxMjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDEyMTAwMjI4LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzEw
MDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEyOjE5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIx
MDAyMjgtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMyMjAyMDQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAx
NyAwMDo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMTA1ODMz
LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MTMtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzEwMDExMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD45TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEyOjE5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAx
NzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMDo1Mzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDEyMTA1ODMzLTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDE0
MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjE0
LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMjIw
MjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMDA6NTI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjIy
MDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDEwMDIxOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAx
NyAxMjowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMjIwMTEx
LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJ
CQkJPHRkPjE1LU9jdC0yMDE3IDAxOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMDo1MjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIw
MTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTI6MDk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxMzEwMDExMi0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAx
NDIyMDU0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1
LU9jdC0yMDE3IDAxOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08
L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MTAw
MjE5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTI6MDk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzIy
MDIwNC0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDIyMDU0Mi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3
IDAxOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQt
MjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4xNS1PY3QtMjAxNyAxMzowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MjIwMTA2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDE6NDE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3
MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDAxOjE4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTQxMDAyMTktMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUx
MDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1P
Y3QtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE0
MTAwMjE5LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNjEwMDEx
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1
NDItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAx
MzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIw
MTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MTYtT2N0LTIwMTcgMDE6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDEyOjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEw
MTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAwMToyOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDE1MTAwMTI3LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE1MjIw
MTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0
LTIwMTcgMDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTEw
MDEyNy0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjE2LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYyMjA0Mjcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAwMTozMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3
LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE3MTAwMTI3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTI6
NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3
MTAxNjEwMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE2LU9jdC0yMDE3IDEyOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTUyMjAxMDYtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAwMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3
MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTI6NDA8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAx
NTIyMDEwNi0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNzE0MTIy
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0y
MDE3IDE3OjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYxMDAx
MTMtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xNy1PY3QtMjAxNyAwMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTI6NDA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0y
MDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEw
MTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4x
OC1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDE2MjIwNDI3LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTI6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0
MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYy
MjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAx
NyAwMToxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3
LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MTgtT2N0LTIwMTcgMTI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE3OjA4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAx
NzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDE3MTAwMTI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4
MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTgt
T2N0LTIwMTcgMTI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAx
NzEwMDEyNy0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0
MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTQx
MjI5LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MTAwMTQwLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcg
MTI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzE0MTIyOS0y
MDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjE5LU9jdC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcx
MDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTI6Mzc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxNzIyMDQxNS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODIy
MDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE5LU9j
dC0yMDE3IDAxOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcy
MjA0MTUtMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIyMTQx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6MzI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0
MC0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0OS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDAx
OjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAx
NzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDE4MTAwMTQwLTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6MzI8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAy
MDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTgyMjAwNDktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMTkxMDAx
MDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3Qt
MjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE4MjIw
MDQ5LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDEwMDQyNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDkt
MjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAyMjExMjkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMTow
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDE5MTAwMTA3LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcx
MDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjAtT2N0LTIwMTcgMDE6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAy
MjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5
MTAwMTA3LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIxMTAwMDI5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIw
MTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTIyMjE0
MS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjIwLU9jdC0yMDE3IDEyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIw
MTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcgMTI6MzA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxOTIyMjE0MS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAy
MTIyMDEyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIy
LU9jdC0yMDE3IDAyOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMTAw
MDI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcgMTI6MzA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDEw
MDQyNi0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTIyMDEyMS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3
IDAyOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYt
MjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yMi1PY3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMTAwMDI5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3
MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDAyOjE0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjAyMjExMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIx
MDAwNTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1P
Y3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIw
MjIxMTI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDA6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMTIyMDEy
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDAyOjE0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjExMDAw
MjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAx
MjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIw
MTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MjMtT2N0LTIwMTcgMDA6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyMTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDEyOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEw
MjIxMDAwNTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMjozNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDIxMjIwMTIxLTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMjIw
MTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0
LTIwMTcgMDA6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMTIy
MDEyMS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIzLU9jdC0yMDE3IDEyOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMyMjAyMjIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDowNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4
LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIyMjIwMTAzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDA6
MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3
MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjIzLU9jdC0yMDE3IDEyOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjIxMDAwNTgtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDI0
MTAwMTM1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAy
MjIyMDEwMy0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzEwMDI1
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0y
MDE3IDEyOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjIyMjAx
MDMtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0MTAwMTM1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzI8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0y
MDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDAwOjE4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMjMxMDAyNTItMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEw
MjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
NC1PY3QtMjAxNyAwMDowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDIzMTAwMjUyLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDIy
MDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDAwOjE4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMx
MDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAx
NyAxMjozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIzMjIwMjIy
LTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDIyMDMyNS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDAwOjE4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAx
NzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMjozODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDIzMjIwMjIyLTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1
MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjYt
T2N0LTIwMTcgMDI6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAy
NDEwMDEzNS0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDAwOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0
NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMjozODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MTAw
MTM1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI1MjMwNDQwLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcg
MDI6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0y
MDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjI2LU9jdC0yMDE3IDE0OjU0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMjozODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcx
MDI1MjMwNDQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mjc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyNDIyMDMyNS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNjEw
MDA0Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI2LU9j
dC0yMDE3IDE0OjU0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQy
MjAzMjUtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI1MjMwNDQw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mjc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTEwMDQ0
OS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjEwMDA0Ny5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDE0
OjU0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAx
NzEwMjYyMjE5NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4yNy1PY3QtMjAxNyAwMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDI1MTAwNDQ5LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6MTE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAy
NjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDE0OjUzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjUyMzA0NDAtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYyMjE5
NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNy1PY3Qt
MjAxNyAwMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI1MjMw
NDQwLTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzIyMDA1OS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAyOjIzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDct
MjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjYyMjE5NDUucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwMjoy
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcx
MDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjctT2N0LTIwMTcgMTU6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyNjEwMDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjgx
MDA0MjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNDowMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2
MjIxOTQ1LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MTAwMTAz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIw
MTcgMTU6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNjIyMTk0
NS0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI4LU9jdC0yMDE3IDAyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgxMDA0MjMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNDowMTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIw
MTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MTA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyNzEwMDEwMy0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAy
NzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI4
LU9jdC0yMDE3IDAyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjcxMDAxMDMtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNDowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIw
MzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MTA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzEw
MDEwMy0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyOTEwMjMwMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3
IDE0OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcyMjAwNTkt
MjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yOC1PY3QtMjAxNyAxNDowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MjIwMzI2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MTA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3
MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjM1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjcyMjAwNTktMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjky
MjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1P
Y3QtMjAxNyAwMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4
MTAwNDIzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEwMjMw
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjM1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgxMDA0
MjMtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkyMjAxMTIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAw
MzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIw
MTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MzAtT2N0LTIwMTcgMTk6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyODIyMDMyNi0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEw
MjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwMzowMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDI4MjIwMzI2LTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAz
NjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0
LTIwMTcgMTk6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODIy
MDMyNi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjAxLU5vdi0yMDE3IDAzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDoxOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAw
LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDI5MjIwMTEyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6
MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3
MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjMwLU9jdC0yMDE3IDE5OjQxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjkxMDIzMDAtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMzoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMx
MjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MTk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAy
OTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMDEwMzYw
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0y
MDE3IDE5OjQxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjkyMjAx
MTItMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMzoyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MTk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0y
MDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU1
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEw
MzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4w
MS1Ob3YtMjAxNyAwMzoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDMwMTAzNjA1LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEw
NDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzAx
MDM2MDUtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDEyMjAxMjAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAx
NyAwMDowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjIwMTMy
LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDEtTm92LTIwMTcgMTY6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjA0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAx
NzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDIyMjI2MjAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDo0OTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDMxMjM1MTE4LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAx
MTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEt
Tm92LTIwMTcgMTY6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAz
MTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2
MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDo0OTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjM1
MTE4LTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAzMTAwMzMxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcg
MTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0y
MDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjAyLU5vdi0yMDE3IDAwOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2MjAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDo0OTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcx
MTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6MTM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTEwMTEwNDQzMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMzIy
MDcxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU5v
di0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDEy
MjAxMjAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6MTM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTIyMDEy
MC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAw
OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAx
NzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4wNC1Ob3YtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMTAyMjIyNjIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEw
MzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAwOjEzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEx
MDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQxMDA0
MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNC1Ob3Yt
MjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAyMjIy
NjIwLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcxNS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEt
MjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjox
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcx
MTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDQtTm92LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTEwMzEwMDMzMS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQx
MDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAz
MjIwNzE1LTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0MjIwNDIw
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIw
MTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMzIyMDcx
NS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjA1LU5vdi0yMDE3IDEyOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIw
MTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6NTk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTEwNDEwMDQxMi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEw
NTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA1
LU5vdi0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEx
MDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA2MTAw
MTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDIy
MDQyMC0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTEwMDM1My5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3
IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDQyMjA0MjAt
MjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wNi1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA2MTAwMTIyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3
MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjE0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzExMDUxMDAzNTMtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDYx
MDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1O
b3YtMjAxNyAxMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMTA1MjIwNzIxLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA1
MjIwNzIxLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkxOTIy
MDIwMi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjIxLVNlcC0yMDE3IDIzOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAxMDA0
MjYtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAyMzozNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMTAwNDI2
LTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MjItU2VwLTIwMTcgMTE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMDIyMDQzMS0y
MDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjIxLVNlcC0yMDE3IDIzOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAx
NzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4yMi1TZXAtMjAxNyAxMTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcw
OTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjItU2VwLTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDky
MTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDIzOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIx
MDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMi1T
ZXAtMjAxNyAxMTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMjIw
MTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItU2Vw
LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0y
MDE3IDExOjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAwNTEu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAx
NyAxMTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcg
MjM6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyMTIyMDI0My0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMzEwMDA0NS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEx
OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjEyMjAyNDMtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMyMjAzMzcucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAyMzoz
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIy
MTAwMDUxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMjM6MzQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjEw
MDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDExOjQ4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIxMDAw
NTEtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAyMzozMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIyMTAwMDUx
LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTI6MDQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjIyMDEyOS0y
MDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDExOjQ4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAx
NzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAyMzozMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcw
OTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTI6MDU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDky
NDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMy
MjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAyMzozMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MTAw
NTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjJNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTI6MDU8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDEx
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4zTTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI0MTAwNTUwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcw
OTIzMjIwMzM3LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjJN
PC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTI6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDIyMDExNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDky
MzIyMDMzNy0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwv
dGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMy
MjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3Rk
PgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMjIw
MzM3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MjUtU2VwLTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDEwMDU1
MC0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJ
CQkJPHRkPjI0LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQxMDA1NTAt
MjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4yNS1TZXAtMjAxNyAxMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIw
MTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MjUtU2VwLTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3
MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjI2LVNlcC0yMDE3IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5
MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4y
NS1TZXAtMjAxNyAxMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1
MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjUt
U2VwLTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjEw
MDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LVNl
cC0yMDE3IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAx
MDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1TZXAt
MjAxNyAyMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIw
MTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3
IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MjUxMDAzMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYyMjAxMDYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAy
MzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcw
OTI1MTAwMzA3LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI3MTAwMTIwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTE6
MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDky
NTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDExOjI3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUy
MjAyMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAyMzoyMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MjIw
MjA3LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTE6MjY8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTIyMDIw
Ny0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDExOjI5PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjYxMDAyNTkt
MjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAyMzoyMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIw
MTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3
MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDExOjI5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5
MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAyMzozODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI3
MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEw
MDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2
NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAyMzozODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEyMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAyMzozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI5MTAwMTIyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI3
MTAwMTIwLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90
ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNzEw
MDEyMC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjI5LVNlcC0yMDE3IDIzOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgxMDAx
MjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgor
CQkJCTx0ZD4yOC1TZXAtMjAxNyAyMzozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MTAwMTIz
LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MjktU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyODEwMDEyMy0y
MDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjI5LVNlcC0yMDE3IDIzOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAx
NzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4zMC1TZXAtMjAxNyAxMTozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcw
OTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MjktU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDky
OTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI5
LVNlcC0yMDE3IDIzOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAx
MDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4zMC1T
ZXAtMjAxNyAxMTozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMjIw
MTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MzAtU2Vw
LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1
Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0y
MDE3IDIzOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAzMDIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAx
NyAxMTozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcg
MjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEx
OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMToz
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5
MjIwMzU2LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMjM6MjI8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTIy
MDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDExOjMwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkyMjAz
NTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAyMzoyNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTMwMTAwMzAy
LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjEwMDZLPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMjM6MjM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDEwMDMw
Mi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDExOjMwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MzAxMDAzMDIt
MjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAyMzoyNTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIw
MTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTE6MTk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3
MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDExOjMwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEw
MDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAyMzoyNjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAy
MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTE6MTk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIy
Mzg1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMzg1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAwOjIzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDEyMjAz
MDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDExMDAzMzUtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Mk08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAyMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMTAwMTM0
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDAxMTAwMzM1LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjNNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTE6MTk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjIyMzg1OS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAwMTEwMDMzNS0yMDE3MTAwMjIyMzg1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4z
TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAwOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAx
MjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90
ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTE6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjIyMzg1OS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTIy
MDMwMS0yMDE3MTAwMjIyMzg1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+
CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAwOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDEyMjAz
MDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4wMy1PY3QtMjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMjIwMzAx
LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MDMtT2N0LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMjIyMzg1OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMjEwMDEzNC0y
MDE3MTAwMjIyMzg1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xTTwvdGQ+CisJCQkJ
PHRkPjAzLU9jdC0yMDE3IDAwOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAx
NzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4wMy1PY3QtMjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcx
MDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MDMtT2N0LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAw
NDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0
LU9jdC0yMDE3IDExOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMDIyMjM4NTktMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIyMjM4NTktMjAxNzEwMDMx
MDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1P
Y3QtMjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDAyMjIzODU5LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAyMjIzODU5LTIwMTcxMDAzMjIw
MTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0
LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAwMjIyMzg1OS0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMjIyMzg1OS0yMDE3MTAwNDEwMDA0
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0y
MDE3IDExOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDIyMjM4NTktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIyMjM4NTktMjAxNzEwMDQyMjAzMDku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAx
NyAyMzoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDAzMTAwMjI2LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDAzMjIwMTM4LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcg
MjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEx
OjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MDMxMDAyMjYtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQyMjAzMDkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAyMzoy
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAz
MTAwMjI2LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTE6Mjc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzIy
MDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDExOjU2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMyMjAx
MzgtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAyMzoyMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMjIwMTM4
LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTE6Mjc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzIyMDEzOC0y
MDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAx
NzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAyMzoyMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcx
MDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTE6Mjc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAw
NTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDYx
MDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MTAw
MjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTE6Mjc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIw
NC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDIzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMToyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMjM6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNTIyMDIwNC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
NTEwMDIxMS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMDNL
PC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMjM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
NTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMDlL
PC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTE6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjIyMDMwNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
NTEwMDIxMS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDIzOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDcxMDAxNDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUx
MDAyMTEtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MjIw
MjA0LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwOEs8L3Rk
PgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MjIw
MjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MDYtT2N0LTIwMTcgMjM6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIw
NC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjA3LU9jdC0yMDE3IDExOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUyMjAyMDQt
MjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4wNy1PY3QtMjAxNyAyMzoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIw
MTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MDYtT2N0LTIwMTcgMjM6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3
MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjA3LU9jdC0yMDE3IDExOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEw
MDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4w
Ny1PY3QtMjAxNyAyMzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4
MTMxNzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDgt
T2N0LTIwMTcgMTQ6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEw
MDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA3LU9j
dC0yMDE3IDExOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcyMjAx
NTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNy1PY3Qt
MjAxNyAyMzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMxNzAw
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIw
MTcgMTQ6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3
IDIzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMDcxMDAxNDItMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDcyMjAxNTYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAy
MzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDA3MTAwMTQyLTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4MTMxNzAwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTQ6
NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
NzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDIzOjMw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcx
MDAxNDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMToyODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MjIw
MTU2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTQ6NDU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzIyMDE1
Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDIzOjMwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcyMjAxNTYt
MjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMToyOTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIw
MTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3
MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4xTTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDIzOjMwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEw
MDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMToyODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5
MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEw
MDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAx
MzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+M008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMToyODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDEwMDIwMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAwODIyMDEzMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAyMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5
MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTEw
MDEzNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjEwLU9jdC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkxMDAx
MzQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4xMC1PY3QtMjAxNyAyMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MTAwMTM0
LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MTEtT2N0LTIwMTcgMTg6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTIyMDEwNC0y
MDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjEwLU9jdC0yMDE3IDExOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAx
NzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4xMC1PY3QtMjAxNyAyMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcx
MDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MTEtT2N0LTIwMTcgMTg6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAx
MTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEx
LU9jdC0yMDE3IDIzOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTAy
MjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMC1P
Y3QtMjAxNyAyMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMTAw
MTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTEtT2N0
LTIwMTcgMTg6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDEx
My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0y
MDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDAyMjgu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAx
NyAxMTozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDEwMTAwMjAwLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTA1ODMzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcg
MTM6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE4
OjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTAyMjAxMDItMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTEyMjAxMTMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAyMzoz
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEw
MjIwMTAyLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTE6Mzg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDIy
MDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjE1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTExMDAx
MzMtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAyMzozMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMTAwMTMz
LTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTE6Mzk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMTEwMDEzMy0y
MDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAx
NzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAyMzoxOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcx
MDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTE6Mzg8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAx
MjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIy
MjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAyMzoxOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAw
MTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTE6MzA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMjIyMDEx
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAxMjEwMDIyOC0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4zTTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDEyMTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMjM6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMjIyMDExMS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAx
MjEwNTgzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDIzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMxMDAxMTIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIx
MDU4MzMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMTA1
ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MTMtT2N0LTIwMTcgMjM6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwNTgz
My0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjE0LU9jdC0yMDE3IDExOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIyMjAxMTEt
MjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xMy1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIw
MTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MTMtT2N0LTIwMTcgMjM6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3
MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjE0LU9jdC0yMDE3IDExOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEw
MTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4x
NC1PY3QtMjAxNyAyMzo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDEz
MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTMt
T2N0LTIwMTcgMjM6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEw
MDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE0LU9j
dC0yMDE3IDExOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQyMjA1
NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNC1PY3Qt
MjAxNyAyMzo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAwMTI3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIw
MTcgMTI6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3
IDExOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMTMyMjAyMDQtMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQyMjA1NDIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAy
Mzo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDEzMjIwMjA0LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MTAwMTI3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTI6
MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAx
MzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDIzOjUx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQx
MDAyMTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAyMzo1OTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MTAw
MjE5LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTI6MDY8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNDEwMDIx
OS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDIzOjUxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQxMDAyMTkt
MjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMTozMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIw
MTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTI6MDY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3
MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDIzOjUxPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEw
MTYxMDAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMTozMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2
MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMjM6NTg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIy
MDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4yTTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDIzOjUxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAx
MTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+M008L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMTozMTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjNNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMjM6NTg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNzEwMDEyNy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxNTEwMDEyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008
L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMTozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1
MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90
ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMjM6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTIy
MDEwNi0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjE3LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUyMjAx
MDYtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4xNy1PY3QtMjAxNyAxNTo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MTAwMTEz
LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwM0s8L3RkPgor
CQkJCTx0ZD4xNi1PY3QtMjAxNyAyMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MTAwMTEz
LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MTctT2N0LTIwMTcgMTE6NDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjEwMDExMy0y
MDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjE3LU9jdC0yMDE3IDE1OjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAx
NzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4xNy1PY3QtMjAxNyAyMzo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcx
MDE3MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MTctT2N0LTIwMTcgMTE6NDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAx
NzE0MTIyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE3
LU9jdC0yMDE3IDE1OjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcy
MjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1P
Y3QtMjAxNyAyMzo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE4MTAw
MTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0
LTIwMTcgMTE6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIy
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMTVLPC90ZD4KKwkJCQk8dGQ+MTctT2N0
LTIwMTcgMTU6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzIyMDQx
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0y
MDE3IDIzOjUzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTcxMDAxMjctMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTgxMDAxNDAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAx
NyAxMTo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcg
MjM6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxNzE0MTIyOS0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxNzIyMDQxNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDIz
OjUzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTcxNDEyMjktMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTgxMDAxNDAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAxMTo1
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3
MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMjM6NTY8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzE0
MTIyOS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDExOjM2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcyMjA0
MTUtMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAxMTo1MDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MjIwNDE1
LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMjM6NTY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzIyMDQxNS0y
MDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDExOjM2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAx
NzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAwMDoxMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcx
MDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjk5OEs8L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAyMzo1NjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcx
MDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTE6MzY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAx
OTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAx
MDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMTo0MjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MTAw
MTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTE6MzY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTIyMjE0
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAxODIyMDA0OS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMTo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMjM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAx
OTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwv
dGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAxMDA0MjYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkx
MDAxMDctMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMTo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MTAw
MTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MjAtT2N0LTIwMTcgMjM6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTEwMDEw
Ny0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJ
CQkJPHRkPjIxLU9jdC0yMDE3IDExOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkyMjIxNDEt
MjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4yMC1PY3QtMjAxNyAxMTo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIw
MTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MjAtT2N0LTIwMTcgMjM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3
MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRk
PjIxLU9jdC0yMDE3IDExOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEw
MjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4y
Mi1PY3QtMjAxNyAwMDoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIw
MjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjAt
T2N0LTIwMTcgMjM6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEw
MDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIxLU9j
dC0yMDE3IDExOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjEyMjAx
MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMi1PY3Qt
MjAxNyAwMDoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIyMTAwMDU4
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIw
MTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3
IDExOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjAyMjExMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjEyMjAxMjEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAw
MDoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDIwMjIxMTI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIyMTAwMDU4LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMTE6
Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
MDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDIzOjQw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjEx
MDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMDoxMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMTAw
MDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMTE6Mzg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMTEwMDAy
OS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDIzOjQwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjExMDAwMjkt
MjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMTozODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIw
MTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMTE6Mzg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3
MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDIzOjM5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEw
MjMxMDAyNTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMTozODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIz
MjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMjIy
MDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4xTTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDIzOjM5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAy
NTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+M008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMTozODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyNDEwMDEzNS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAyMjEwMDA1OC0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008
L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMTozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMjIwMjIyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIy
MjIwMTAzLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjIy
MDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjI0LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIyMjAx
MDMtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4yNC1PY3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMTAwMjUy
LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJ
CQk8dGQ+MjMtT2N0LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0y
MDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjI0LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAx
NzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4yNC1PY3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcx
MDI1MTAwNDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjUtT2N0LTIwMTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAy
NDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI0
LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQy
MjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNC1P
Y3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1MTAw
NDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0
LTIwMTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0y
MDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMjQxMDAxMzUtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjQyMjAzMjUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAx
NyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDI0MTAwMTM1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI1MTAwNDQ5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcg
MTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAx
OjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxMjoz
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0
MjIwMzI1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTE6Mzg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDIy
MDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAxOjAyPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQyMjAz
MjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxMjozMDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MjIwMzI1
LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDA6NDI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0y
MDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAxOjAyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAx
NzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxMjozMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcx
MDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDA6NDI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAy
NzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYx
MDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MjIx
OTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDA6NDI8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzEwMDEw
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMDowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI2MjIxOTQ1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDI2MTAwMDQ3LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNN
PC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
NjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYx
MDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMDowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MTAw
MDQ3LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjIyMTk0
NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJ
CQkJPHRkPjI3LU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYyMjE5NDUt
MjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4yOC1PY3QtMjAxNyAwMDowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIw
MTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MjgtT2N0LTIwMTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3
MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRk
PjI4LU9jdC0yMDE3IDIzOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEw
MjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4y
OC1PY3QtMjAxNyAwMDowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4
MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+Mjgt
T2N0LTIwMTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyODIy
MDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI4LU9j
dC0yMDE3IDIzOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjkxMDIz
MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3Qt
MjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIw
MTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3
IDIzOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAx
MjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDI6
NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
ODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDIzOjQ3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgx
MDA0MjMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAxMjoyOTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MTAw
NDIzLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDI6NDU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODEwMDQy
My0yMDE3MTAzMDEwMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEwMDEzMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDE0OjI3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMt
MjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxODowNTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIw
MTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3
MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4yTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDAyOjQ1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEw
MzAxMDAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzAxMDAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMw
MTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMTg6MDU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAyOTIy
MDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD4yTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDAyOjQ1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDAx
MzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAzNjA1
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjNNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMTg6MDU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIyMDEzMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAyOTEwMjMwMC0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40
TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDAxOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMwMTAwMTMyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5
MjIwMTEyLTIwMTcxMDMwMTAwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwMEs8
L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMwMTAzNjA1LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5
MjIwMTEyLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90
ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMTg6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTIy
MDExMi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjAxLU5vdi0yMDE3IDAxOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkyMjAx
MTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAwMTMyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAwMTMy
LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MDEtTm92LTIwMTcgMDE6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMDEzMi0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMDEzMi0y
MDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjAxLU5vdi0yMDE3IDEwOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMzAxMDAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzAxMDAxMzItMjAx
NzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4wMS1Ob3YtMjAxNyAxNjo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcx
MDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MDEtTm92LTIwMTcgMDE6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAz
MTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAx
LU5vdi0yMDE3IDEwOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDEx
MDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1O
b3YtMjAxNyAxNjo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIw
MTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92
LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTEwNDQz
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0y
MDE3IDE2OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMzEyMjAxMzItMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDEyMjAxMjAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAx
NyAyMzoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcg
MTE6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2
OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MzEyMzUxMTgtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDEyMjAxMjAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAyMzoy
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMx
MjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTE6MjQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIz
NTExOC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAwOjAxPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDExMDQ0
MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAyMzoyMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMTA0NDMw
LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTE6MjQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMTEwNDQzMC0y
MDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAwOjAxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAx
NzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAxMToyNDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcx
MTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTE6MjQ8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEw
MjIyMjYyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAwOjAxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMx
MDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAxMToyNDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMjIw
NzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMjM6Mjg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYy
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4zTTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAwOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMxMDAzMzEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzExMDIxMDAwNDEtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAxMToyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAzMjIwNzE1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MTAyMTAwMDQxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMjM6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwNDEwMDQxMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEw
MjEwMDA0MS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDExOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMxMDAzMzEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIy
MjI2MjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3Rk
PgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAxMToyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMjIy
NjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MDMtTm92LTIwMTcgMjM6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjIyMjYy
MC0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjA0LU5vdi0yMDE3IDExOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIyMjI2MjAt
MjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4wNC1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIw
MTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MDMtTm92LTIwMTcgMjM6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3
MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRk
PjA0LU5vdi0yMDE3IDExOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzEx
MDQyMjA0MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4w
NC1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1
MTAwMzUzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDUt
Tm92LTIwMTcgMTE6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDEw
MDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA0LU5v
di0yMDE3IDExOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQyMjA0
MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNC1Ob3Yt
MjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIw
MTcgMTE6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTEwMzIyMDcxNS0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTIyMDcyMS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3
IDIzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzExMDQxMDA0MTItMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDQyMjA0MjAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAy
MzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTE6
MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEw
NDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDIzOjMw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQx
MDA0MTItMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDYxMDAxMjIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAxMToyNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MjIw
NDIwLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjEwNEs8L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMToyMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MjIw
NDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMjM6MzA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQy
MC0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjI1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDUxMDAzNTMt
MjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAyMzozMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIw
MTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTE6MjY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3
MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjI2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3
MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDE6MTk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIw
MTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMToxOTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAxMDA0MjYt
MjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDEzOjM2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMDIyMDQz
MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDE6MTk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMjIw
NDMxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMzozNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAy
MjA0MzEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAxOjU2
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
MTEwMDE0MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIxMjIwMjQzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDE6
MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTIxMTAwMTQxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAx
MzozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjExMDAxNDEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3
IDAxOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIzMTAwMDQ1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIw
MTcgMTM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAw
NTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1TZXAt
MjAxNyAxMzozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIy
MDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNl
cC0yMDE3IDAxOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIz
MTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMt
U2VwLTIwMTcgMTM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5
MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
NC1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3
MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjIzLVNlcC0yMDE3IDAxOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIw
MTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MjMtU2VwLTIwMTcgMTM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIxMDAwNTEt
MjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4yNC1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjEwMDA1
MS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjI0LVNlcC0yMDE3IDE0OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMjIw
MTI5LTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIy
MjAxMjktMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQxMDA1NTAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
MjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTIyMjIwMTI5LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTIzMjIwMzM3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1NTAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDEx
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6MzE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAw
MzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjo1NjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQx
MDA1NTAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjI4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDky
NDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6MzE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcw
OTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjo1NjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAx
NzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAwOjU1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDEwMDU1MC0y
MDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6MzE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MTAwNTUw
LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjo1NjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQxMDA1
NTAtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAwOjU1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDEw
MDU1MC0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI2MTAwMjU5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTM6MDA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0
MjIwMTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjUxMDAzMDcucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMjo1
NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5
MjQyMjAxMTYtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIwNy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAw
OjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MDkyNDIyMDExNi0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI2MTAwMjU5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcg
MTM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcwOTI0MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAx
NyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzA5MjUxMDAzMDctMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIw
Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0y
MDE3IDAwOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MTAw
MjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2Vw
LTIwMTcgMTM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYy
MjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1T
ZXAtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDky
NzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI3
LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcw
OTI2MTAwMjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjYtU2VwLTIwMTcgMTM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAx
NzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNy1TZXAtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNTIyMDIwNy0y
MDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjI3LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MjIwMjA3
LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYxMDAy
NTktMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4yNy1TZXAtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjcxMDAxMjAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjEw
MDI1OS0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI3LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2
MTAwMjU5LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5
MjYxMDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MDkyNjIyMDEwNi0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI3LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcwOTI2MjIwMTA2LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjkxMDAx
MjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEw
MDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4
MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5
MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3
MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIw
MTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjgxMDAxMjMt
MjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODEwMDEy
My0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6MDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MTAw
MTIzLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMzowNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5Mjgy
MjA2NTgtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
ODIyMDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MjIwMzU2LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6
MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTI4MjIwNjU4LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAx
MzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDIyMDExNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3
IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTI5MjIwMzU2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIw
MTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAz
MDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1TZXAt
MjAxNyAxMzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDIy
MDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU9j
dC0yMDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcxMDAx
MTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEt
T2N0LTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5
MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4z
MC1TZXAtMjAxNyAxMzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3
MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjAxLU9jdC0yMDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIw
MTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MDEtT2N0LTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkyMjAzNTYt
MjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wMi1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDEwMDMw
Mi0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJ
CQkJPHRkPjAxLU9jdC0yMDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMTAw
MzAyLTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAx
MDAzMDItMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkz
MDEwMDMwMi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTMwMjIwMTE2LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAxLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkzMDIyMDExNi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIw
NC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIw
MzAxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIx
MDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjI3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAw
MjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcx
MDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0NzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAx
NzEwMDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjI4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMTIyMDMwMS0y
MDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMjIwMzAx
LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0NzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDEyMjAz
MDEtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAwOjUyPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjEw
MDEzNC0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAy
MTAwMTM0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMxMDAyMjYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDIxMDAxMzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzIyMDEzOC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAw
OjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwMjEwMDEzNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDA0MTAwMDQ5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcg
MTI6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDAyMjIwMjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDMxMDAyMjYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAx
NyAxMjo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDIyMjAyMDQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzIyMDEz
OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0y
MDE3IDAwOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA0MTAw
MDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0
LTIwMTcgMTI6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQy
MjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNS1P
Y3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAw
MzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA0
LU9jdC0yMDE3IDAwOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcx
MDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDQtT2N0LTIwMTcgMTI6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAx
NzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4wNS1PY3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzEwMDIyNi0y
MDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjA1LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMjIwMTM4
LTIwMTcxMDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDQtT2N0LTIwMTcgMTI6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMyMjAx
MzgtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzIy
MDEzOC0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAz
MjIwMTM4LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIwMzA5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDQxMDAwNDktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwNDEwMDA0OS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDA0MTAwMDQ5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDQxMDAwNDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAy
MTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIy
MDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2
MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEw
MDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjQ2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3
MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MTAwMjExLTIw
MTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUxMDAyMTEt
MjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjQ1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTEwMDIx
MS0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6NTI8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MjIw
MjA0LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUy
MjAyMDQtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjQ2
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAw
NTIyMDIwNC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA3MTAwMTQyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6
NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDA1MjIwMjA0LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAw
MDo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMDYxMDAzMjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNjIyMDMwNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3
IDAwOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAwNjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MTAwMTQy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIw
MTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcyMjAx
NTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wOC1PY3Qt
MjAxNyAwMDo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwODEz
MTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA4LU9j
dC0yMDE3IDE2OjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3
MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDct
T2N0LTIwMTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEw
MDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
OC1PY3QtMjAxNyAwMDo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3
MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjA4LU9jdC0yMDE3IDE2OjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIw
MTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MDktT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcxMDAxNDIt
MjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4wOC1PY3QtMjAxNyAwMDo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzEwMDE0
Mi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjA4LU9jdC0yMDE3IDE2OjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MTAw
MTQyLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcx
MDAxNDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAw
NzIyMDE1Ni0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDE2OjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDA3MjIwMTU2LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEz
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDA6NTA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAw
MTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjo1NDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDky
MjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAx
MDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6MzY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcx
MDA5MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjo1NDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAx
NzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODIyMDEzMC0y
MDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6MzY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MjIwMTMw
LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMTo0NDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkxMDAx
MzQtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTEw
MDEzNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6Mzc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5
MTAwMTM0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAyMjAxMDIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMTo0
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDkxMDAxMzQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMTEwMDEzMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3
OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwOTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMTAwMjAwLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcg
MTM6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDA5MjIwMTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAyMjAxMDIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAx
NyAwMTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDkyMjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTEwMDEz
My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0y
MDE3IDE3OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMjIw
MTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0
LTIwMTcgMDE6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTAy
MjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMS1P
Y3QtMjAxNyAwMTo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAx
MTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEx
LU9jdC0yMDE3IDE3OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcx
MDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MTItT2N0LTIwMTcgMDE6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAx
NzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4xMi1PY3QtMjAxNyAxNDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDEwMDIwMC0y
MDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjEyLU9jdC0yMDE3IDE1OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMjIwMTAy
LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MTEtT2N0LTIwMTcgMTc6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAyMjAx
MDItMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4xMi1PY3QtMjAxNyAwMTo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDIy
MDEwMi0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE0OjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEw
MjIwMTAyLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6MzU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDExMjIwMTEzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MTExMDAxMzMtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMTozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAxMTEwMDEzMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE0OjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDExMTAwMTMzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6MzU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTEx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDozMjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAy
MjgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE0OjIxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEw
NTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTU6MzU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEy
MjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDozMjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEw
MTMxMDAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEzOjEwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3
MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6MzI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIw
MTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMzoxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIxMDAyMjgt
MjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAxOjI3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwNTgz
My0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6MzI8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTA1
ODMzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMzoxMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIx
MDU4MzMtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAxOjI3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
MjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDE0MTAwMjE5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTI6
NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDEyMjIwMTExLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAx
MzoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTIyMjAxMTEtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzIyMDIwNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3
IDAxOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxMjIyMDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MTAwMjE5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIw
MTcgMTI6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQyMjA1
NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3Qt
MjAxNyAwMTo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxMzIy
MDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE0LU9j
dC0yMDE3IDAxOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0
MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTQt
T2N0LTIwMTcgMTI6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEw
MTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
NS1PY3QtMjAxNyAwMTo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3
MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIw
MTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MTQtT2N0LTIwMTcgMTI6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTMyMjAyMDQt
MjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xNS1PY3QtMjAxNyAwMTo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzIyMDIw
NC0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMjIw
MjA0LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQx
MDAyMTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMTo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUxMDAxMjcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
NDEwMDIxOS0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDE0MTAwMjE5LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTQxMDAyMTktMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE0OjMyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEw
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAw
MTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYy
MjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAxOjU3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAx
NTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcx
MDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAx
NzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAxOjU3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTEwMDEyNy0y
MDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTM6MDQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MjIwMTA2
LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTUyMjAx
MDYtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAxOjU3PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTIy
MDEwNi0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTM6MDQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1
MjIwMTA2LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxNDEyMjkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxODow
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MTYxMDAxMTMtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNjIyMDQyNy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAx
OjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAxNjEwMDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcg
MTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDE2MTAwMTEzLTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxNDEyMjku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAx
NyAxODowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzIyMDQx
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0y
MDE3IDAxOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTAw
MTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0
LTIwMTcgMTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcx
NDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1P
Y3QtMjAxNyAxODowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAx
NzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4
LU9jdC0yMDE3IDAxOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcx
MDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MTgtT2N0LTIwMTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAx
NzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4xNy1PY3QtMjAxNyAxODowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzEwMDEyNy0y
MDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjE4LU9jdC0yMDE3IDAxOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTAwMTI3
LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MTgtT2N0LTIwMTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxMDAx
MjctMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzE0
MTIyOS0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjE4LU9jdC0yMDE3IDAxOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3
MTQxMjI5LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MTcxNDEyMjktMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAxNzE0MTIyOS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjQxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDE3MjIwNDE1LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTI6NTI8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTcyMjA0MTUtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAx
MDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjQxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIy
MjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6NDM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE4
MjIwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEw
MTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjQxPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3
MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6NDM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIw
MTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMzoxOTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgyMjAwNDkt
MjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjQxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxODIyMDA0
OS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6NDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MjIw
MDQ5LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMzoxODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgy
MjAwNDktMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAxOjEy
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
OTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDE5MjIyMTQxLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDE6
NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDE5MTAwMTA3LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAxMDA0MjYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAx
MzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTkxMDAxMDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDIyMTEyOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3
IDAxOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxOTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIxMTAwMDI5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIw
MTcgMTM6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0
MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMC1PY3Qt
MjAxNyAxMzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDIy
MTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9j
dC0yMDE3IDAxOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIx
MTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjEt
T2N0LTIwMTcgMTM6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEw
MjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
Mi1PY3QtMjAxNyAwMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3
MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjIxLU9jdC0yMDE3IDAxOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIw
MTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MjEtT2N0LTIwMTcgMTM6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAxMDA0MjYt
MjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4yMi1PY3QtMjAxNyAwMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDEwMDQy
Ni0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjIyLU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMjIx
MTI5LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjEtT2N0LTIwMTcgMTM6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAy
MjExMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIxMDAwNTgucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAy
MDIyMTEyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDIwMjIxMTI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMjExMDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAyMTEwMDAyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEw
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIzMTAw
MjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzo0MTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIx
MDAwNTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAy
MjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MDM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcx
MDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzo0MjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAx
NzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAwOjM1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjEwMDA1OC0y
MDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MDM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMTAwMDU4
LTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzo0MjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIxMDAw
NTgtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAwOjM1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjEw
MDA1OC0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6NDM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIy
MjIwMTAzLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzo0
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjIyMjAxMDMtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzIyMDIyMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAw
OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyMjIyMDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0MTAwMTM1LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcg
MTI6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDIyMjIwMTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQyMjAzMjUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAx
NyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjMxMDAyNTItMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyMzIyMDIy
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0y
MDE3IDAwOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MTAw
MTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0
LTIwMTcgMTI6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQy
MjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1P
Y3QtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAy
NTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI1
LU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcx
MDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjQtT2N0LTIwMTcgMTI6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAx
NzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNS1PY3QtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMzIyMDIyMi0y
MDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjI1LU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMjIwMjIy
LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQxMDAx
MzUtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDEw
MDEzNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI1LU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0
MTAwMTM1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyNDIyMDMyNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDI0MjIwMzI1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToxNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5
NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjM2PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIz
MDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6Mzc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2
MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToxNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEw
MjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjM2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3
MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6MjY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIw
MTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToxNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjUyMzA0NDAt
MjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjM1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTIzMDQ0
MC0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6MjY8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MjMw
NDQwLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDM6MDA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2
MTAwMDQ3LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjYyMjE5NDUucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwMjoz
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjYxMDAwNDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1
OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyNjEwMDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MjIwMDU5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3
IDAzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAyNjEwMDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI4MTAwNDIz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0y
MDE3IDE1OjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MTAw
MTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjctT2N0
LTIwMTcgMTU6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcy
MjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4KKwkJCQk8dGQ+Mjgt
T2N0LTIwMTcgMDM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEw
MjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4KKwkJCQk8dGQ+
MjgtT2N0LTIwMTcgMTU6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAx
NzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4KKwkJCQk8
dGQ+MjktT2N0LTIwMTcgMDE6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjcxMDAxMDMt
MjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4KKwkJ
CQk8dGQ+MjgtT2N0LTIwMTcgMDM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjcxMDAx
MDMtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90ZD4K
KwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTU6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjcx
MDAxMDMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRNPC90
ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjcxMDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTRN
PC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMjcyMjAwNTktMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgyMjAzMjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMw
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NDU8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIw
MTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNDoxODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgy
MjAzMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjI4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAy
OTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NDU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcx
MDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNDoxOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAx
NzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODIyMDMyNi0y
MDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NDU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2
LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNDoxOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgyMjAz
MjYtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODIy
MDMyNi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDk6NTQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4
MjIwMzI2LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDoz
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjkxMDIzMDAtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAyOTIyMDExMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDA0
OjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyOTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAzNjA1LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcg
MjA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDI5MTAyMzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMjAxMzIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAx
NyAwOTo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIzNTEx
OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0y
MDE3IDEwOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMwMTAz
NjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0
LTIwMTcgMjA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEy
MjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1O
b3YtMjAxNyAwOTo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAz
MTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAx
LU5vdi0yMDE3IDEwOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcx
MTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDEtTm92LTIwMTcgMTY6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAx
NzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wMS1Ob3YtMjAxNyAwOTo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMDEwMzYwNS0y
MDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjAxLU5vdi0yMDE3IDEwOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMwMTAzNjA1
LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MDEtTm92LTIwMTcgMTY6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzAxMDM2
MDUtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wMi1Ob3YtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMTIy
MDEzMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMx
MjIwMTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MzEyMjAxMzItMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDMxMjM1MTE4LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMzEyMzUxMTgtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2
MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjE3PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMTIy
MDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAy
MTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzEx
MDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjE3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3
MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6NTc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIw
MTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDEyMjAxMjAt
MjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjE3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTIyMDEy
MC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6NTc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMjIw
MTIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDo0MDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIx
MDAwNDEtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjE3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEw
MjEwMDA0MS0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAzMTAwMzMxLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6
NTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MTAyMTAwMDQxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMyMjA3MTUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAw
MDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzExMDIxMDAwNDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwNDEwMDQxMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3
IDEyOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTEwMjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMTAwMzMx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIw
MTcgMTI6NTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMyMjA3
MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNC1Ob3Yt
MjAxNyAwMDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDEw
MDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU5v
di0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0
MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDUt
Tm92LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzEx
MDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
NC1Ob3YtMjAxNyAwMDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3
MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjA0LU5vdi0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIw
MTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MDUtTm92LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMxMDAzMzEt
MjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4wNS1Ob3YtMjAxNyAxMjo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzIyMDcx
NS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjA0LU5vdi0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMjIw
NzE1LTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MDUtTm92LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMy
MjA3MTUtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEw
MzIyMDcxNS0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjUwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQyMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MTA0MTAwNDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzExMDQxMDA0MTItMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTEwNDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjUwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEy
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NDI8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAw
MzUzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0MTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUy
MjA3MjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjUwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEw
NjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NDI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcx
MTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1MDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAx
NzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEyOjQyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNTIyMDcyMS0y
MDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMTA1MjIwNzIxLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NDI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MjIwMjAy
LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMTozMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAxMDA0
MjYtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDAxOjMzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDEw
MDQyNi0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTM6Mzc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIw
MjIwNDMxLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMToz
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjEwMDA1MS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDEz
OjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyMDIyMDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMjIwMTI5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcg
MDI6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTIxMTAwMTQxLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAx
NyAwMTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjEwMDA1
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0y
MDE3IDEzOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMjIw
MTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2Vw
LTIwMTcgMDI6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMx
MDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1T
ZXAtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDky
MjEwMDA1MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIy
LVNlcC0yMDE3IDEzOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcw
OTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjMtU2VwLTIwMTcgMDI6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAx
NzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMy1TZXAtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0y
MDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjI0LVNlcC0yMDE3IDE0OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMTAwMDUx
LTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjMtU2VwLTIwMTcgMDI6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIxMDAw
NTEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMy1TZXAtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjEw
MDA1MS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIy
MTAwMDUxLTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMTAwMDQ1LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjIyMjAxMjktMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAxMzo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQxMDA1NTAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTIyMjIwMTI5LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6NDc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI1MTAwMzA3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjIyMjAxMjktMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMzowMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1
NTAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDE0OjMwPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIy
MDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6NDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1
MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMzowMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5
MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAxOjA2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3
MDkyNDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDI6NDc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIw
MTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMzowNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAt
MjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAxOjA2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDEwMDU1
MC0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI2MTAwMjU5LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTM6MDg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MjIw
MTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAxMzowMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQy
MjAxMTYtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAxOjA2
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDky
NDIyMDExNi0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI2MTAwMjU5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTM6
MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcw
OTI0MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAw
MTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzA5MjUxMDAzMDctMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3
IDAxOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MTAwMjU5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIw
MTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYyMjAx
MDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAt
MjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNzEw
MDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LVNl
cC0yMDE3IDEzOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2
MTAwMjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYt
U2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5
MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
Ny1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3
MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjI3LVNlcC0yMDE3IDEzOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIw
MTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MjgtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTkt
MjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4yNy1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjEwMDI1
OS0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI3LVNlcC0yMDE3IDEzOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MTAw
MjU5LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYx
MDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMToyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDky
NjIyMDEwNi0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjI3LVNlcC0yMDE3IDEzOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcw
OTI2MjIwMTA2LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMToyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjkxMDAxMjIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MDkyNjIyMDEwNi0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEy
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MjIw
NjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMToyNDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5Mjkx
MDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjExPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDky
OTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6MDU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcw
OTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMToyNDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAx
NzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjEyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0y
MDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6MDU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MTAwMTIz
LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMzoxODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgyMjA2
NTgtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDEzOjExPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODIy
MDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDE6MDU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4
MjIwNjU4LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMzox
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDIyMDExNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDAx
OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTI5MjIwMzU2LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcg
MDE6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTI5MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAzMDIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAx
NyAxMzoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDIyMDEx
Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0y
MDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcxMDAxMTAw
MzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0
LTIwMTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAx
MDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1T
ZXAtMjAxNyAxMzoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkz
MDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAx
LU9jdC0yMDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcx
MDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDEtT2N0LTIwMTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAx
NzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wMi1PY3QtMjAxNyAwMTowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0y
MDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjAxLU9jdC0yMDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMTAwMzAy
LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDEtT2N0LTIwMTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAxMDAz
MDItMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDEw
MDMwMi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMw
MjIwMTE2LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAxLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkzMDIyMDExNi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTMwMjIwMTE2LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMDExMDAzMzUtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMTowODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAx
MzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjIy
MDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAz
MTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEw
MDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDEzOjIzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3
MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIw
MTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0OTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEt
MjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAxOjAwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjEwMDEz
NC0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDE6MTk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMTAw
MTM0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjo0ODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIx
MDAxMzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAxOjAw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
MjEwMDEzNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDA0MTAwMDQ5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcgMTI6
Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDAyMjIwMjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDMxMDAyMjYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAx
Mjo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDIyMjAyMDQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzIyMDEzOC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3
IDAxOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwMjIyMDIwNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA0MTAwMDQ5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIw
MTcgMTI6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDAyMjIwMjA0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQyMjAz
MDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNS1PY3Qt
MjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwMzIy
MDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9j
dC0yMDE3IDAxOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0
MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDQt
T2N0LTIwMTcgMTI6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEw
MDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4w
NS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3
MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRk
PjA1LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIw
MTcxMDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MDQtT2N0LTIwMTcgMTI6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgt
MjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4wNS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzIyMDEz
OC0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJ
CQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMjIw
MTM4LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4K
KwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQx
MDAwNDktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
NDEwMDA0OS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDA0MTAwMDQ5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDQxMDAwNDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAyMTEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwNDIyMDMwOS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIw
NC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MTAw
MzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYy
MjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjU1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAw
NTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDE6MjY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcx
MDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAx
NzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjU1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0y
MDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6NTU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0
LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMzowNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDUyMjAy
MDQtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAwOjU1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTIy
MDIwNC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6NTU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1
MjIwMjA0LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDo1
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MDYxMDAzMjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNjIyMDMwNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDAw
OjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAwNjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MTAwMTQyLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcg
MTI6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDA2MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcyMjAxNTYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAx
NyAwMDo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwODEzMTcw
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0y
MDE3IDE2OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MTAw
MTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDctT2N0
LTIwMTcgMTI6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcy
MjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOC1P
Y3QtMjAxNyAwMDo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAw
ODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA4
LU9jdC0yMDE3IDE2OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcx
MDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MDktT2N0LTIwMTcgMDE6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAx
NzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wOC1PY3QtMjAxNyAwMDo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0y
MDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjA4LU9jdC0yMDE3IDE2OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MTAwMTQy
LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDktT2N0LTIwMTcgMDE6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcxMDAx
NDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wOS1PY3QtMjAxNyAxMzowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzIy
MDE1Ni0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjA4LU9jdC0yMDE3IDE2OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3
MjIwMTU2LTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDE6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMzowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAwNzIyMDE1Ni0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDA4MTMxNzAwLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDE6MTE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMzowMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAx
MDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEw
MDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6Mzk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5
MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMzowMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEw
MDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3
MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6Mzk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIw
MTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMTo0MzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQt
MjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDAxOjE0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTEwMDEz
NC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6Mzk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MTAw
MTM0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMTo0Mjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkx
MDAxMzQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjQ0
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
OTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMTAwMjAwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTM6
Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDA5MjIwMTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAyMjAxMDIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAw
MTo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDkyMjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTEwMDEzMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3
IDE3OjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMjIwMTEz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIw
MTcgMDE6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTAyMjAx
MDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3Qt
MjAxNyAwMTo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTEw
MDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjExLU9j
dC0yMDE3IDE3OjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEx
MjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTIt
T2N0LTIwMTcgMDE6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEw
MTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4x
Mi1PY3QtMjAxNyAxNDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3
MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjEyLU9jdC0yMDE3IDE2OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIw
MTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MTEtT2N0LTIwMTcgMTc6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDIt
MjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4xMi1PY3QtMjAxNyAwMTo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDIyMDEw
Mi0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjEyLU9jdC0yMDE3IDE0OjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMjIw
MTAyLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MTItT2N0LTIwMTcgMTY6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTEx
MDAxMzMtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMTo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAx
MTEwMDEzMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE0OjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDExMTAwMTMzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTY6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTExLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAyMjgu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE0OjQwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgz
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTY6MDY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMjIw
MTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDozNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTMx
MDAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAx
MjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcx
MDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMzoxODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAx
NzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAyOjA0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0y
MDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6Mzc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMTA1ODMz
LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMzoxODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIxMDU4
MzMtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAyOjA0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEw
NTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTM6MTE8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEy
MjIwMTExLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMzox
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTIyMjAxMTEtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzIyMDIwNC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDAy
OjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxMjIyMDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MTAwMjE5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcg
MTM6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQyMjA1NDIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAx
NyAwMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxMzIyMDIw
NC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0y
MDE3IDAyOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MTAw
MjE5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0
LTIwMTcgMTM6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQy
MjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1P
Y3QtMjAxNyAwMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAx
NTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE1
LU9jdC0yMDE3IDE1OjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcx
MDE0MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MTQtT2N0LTIwMTcgMTM6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAx
NzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4xNS1PY3QtMjAxNyAwMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0y
MDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjE1LU9jdC0yMDE3IDE1OjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0
LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQxMDAy
MTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4xNS1PY3QtMjAxNyAwMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUxMDAxMjcucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDEw
MDIxOS0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE1OjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0
MTAwMjE5LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTQxMDAyMTktMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxNDIyMDU0Mi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDE1OjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDE0MjIwNTQyLTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAwMTEz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTQyMjA1NDItMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYyMjA0
MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAyOjA1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIy
MDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE1MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMDI6MDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2
MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEw
MTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAyOjA0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3
MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTM6MjU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIw
MTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYt
MjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAyOjA1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTIyMDEw
Ni0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTAwMTI3LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTM6MjU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MjIw
MTA2LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxODoyODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYx
MDAxMTMtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDAyOjA1
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAx
NjEwMDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MTAwMTI3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTM6
MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDE2MTAwMTEzLTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxNDEyMjkucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAx
ODoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzIyMDQxNS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3
IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTAwMTI3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIw
MTcgMTM6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxNDEy
MjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3Qt
MjAxNyAxODoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzIy
MDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9j
dC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE4
MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTgt
T2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEw
MTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4x
Ny1PY3QtMjAxNyAxODoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3
MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjE4LU9jdC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIw
MTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MTgtT2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjct
MjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4xOS1PY3QtMjAxNyAwMToyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzE0MTIy
OS0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjE4LU9jdC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTQx
MjI5LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcx
NDEyMjktMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAx
NzE0MTIyOS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjUxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDE3MjIwNDE1LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTcyMjA0MTUtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxNzIyMDQxNS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjUxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDI6MzM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE4MjIw
MDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMToyNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkx
MDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjUyPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAx
OTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDI6MzM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcx
MDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMzozNzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAx
NzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEzOjUxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0y
MDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDI6MzM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5
LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMzozNzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgyMjAw
NDktMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAxOjIzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTEw
MDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMDI6MzM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5
MTAwMTA3LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAxMDA0MjYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMzoz
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTkxMDAxMDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDIyMTEyOS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDAx
OjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxOTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIxMTAwMDI5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcg
MTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDE5MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0MjYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAx
NyAxMzozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDIyMTEy
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0y
MDE3IDAxOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMTAw
MDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0
LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEy
MjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1P
Y3QtMjAxNyAwMjoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAy
MDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIx
LU9jdC0yMDE3IDAxOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcx
MDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjEtT2N0LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAx
NzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yMi1PY3QtMjAxNyAwMjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0y
MDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjIyLU9jdC0yMDE3IDEzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5
LTIwMTcxMDIxMTAwMDI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjEtT2N0LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAyMjEx
MjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDIy
MTEyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIw
MjIxMTI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MjExMDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAyMTEwMDAyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDIxMTAwMDI5LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIzMTAwMjUy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMjExMDAwMjktMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzozNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIxMDAw
NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDEzOjMxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIy
MDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIz
MTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzozNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEw
MjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAwOjM4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3
MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMDE6MTQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIw
MTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzozNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgt
MjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAwOjM4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjEwMDA1
OC0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTM6MTg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMjIw
MTAzLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMzozNzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIy
MjAxMDMtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAwOjM4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
MjIyMDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0MTAwMTM1LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTM6
MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDIyMjIwMTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQyMjAzMjUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAw
MTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjMxMDAyNTItMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyMzIyMDIyMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3
IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MTAwMTM1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIw
MTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQyMjAz
MjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNS1PY3Qt
MjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNTEw
MDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI1LU9j
dC0yMDE3IDEzOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0
MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjQt
T2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEw
MjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
NS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3
MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjI1LU9jdC0yMDE3IDEzOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIw
MTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUt
MjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yNS1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDEwMDEz
NS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI1LU9jdC0yMDE3IDEzOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MTAw
MTM1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQx
MDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
NDIyMDMyNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDEzOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDI0MjIwMzI1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyNDIyMDMyNS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIzMDQ0
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAw
MDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToyMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYy
MjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjQyPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAy
NzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6Mjg8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcx
MDI2MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNToyMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAx
NzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAyOjQyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0y
MDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6Mjc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MjMwNDQw
LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDM6MTc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI2MTAw
MDQ3LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjYyMjE5NDUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwMjo0Mjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYx
MDAwNDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjI4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
NjEwMDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MjIwMDU5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAz
OjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAyNjEwMDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI4MTAwNDIzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3
IDE3OjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MTAwMTAz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIw
MTcgMTU6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAw
NTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0
LTIwMTcgMDM6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgx
MDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+Mjgt
T2N0LTIwMTcgMTc6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEw
MjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTdNPC90ZD4KKwkJCQk8dGQ+
MjktT2N0LTIwMTcgMDE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAx
NzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTZNPC90ZD4KKwkJCQk8
dGQ+MjgtT2N0LTIwMTcgMDM6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcxMDAxMDMt
MjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTZNPC90ZD4KKwkJ
CQk8dGQ+MjgtT2N0LTIwMTcgMTc6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcxMDAx
MDMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTZNPC90ZD4K
KwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcx
MDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTZNPC90
ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MjcyMjAwNTktMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgyMjAzMjYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMwMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDI3MjIwMDU5LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NTc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMjcyMjAwNTktMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNTowNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAz
MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjM2PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEw
MjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NTc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5
MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNTowNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEw
MzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3
MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6NTc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIw
MTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAwNTowNzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYt
MjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODIyMDMy
Ni0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDg6MTI8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MjIw
MzI2LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozNzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkx
MDIzMDAtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAyOTIyMDExMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDA1OjA3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
OTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAzNjA1LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMjA6
NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDI5MTAyMzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMjAxMzIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAw
ODoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIzNTExOC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3
IDEwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyOTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMwMTAzNjA1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIw
MTcgMjA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMjAx
MzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3Yt
MjAxNyAwODoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIz
NTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5v
di0yMDE3IDEwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMTAx
MTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEt
Tm92LTIwMTcgMTY6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEw
MzEyMjAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4w
MS1Ob3YtMjAxNyAwODoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3
MTAzMTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjAxLU5vdi0yMDE3IDEwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIw
MTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MDEtTm92LTIwMTcgMTY6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUt
MjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4wMi1Ob3YtMjAxNyAwMDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIyMDEz
Mi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjIw
MTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEy
MjAxMzItMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAz
MTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDMxMjM1MTE4LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMzEyMzUxMTgtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2MjAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAzMTIzNTExOC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMTIyMDEy
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMTAw
MDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIy
MjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjI3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEw
MzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTI6NTk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcx
MTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjo1MzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAx
NzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjI3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0y
MDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTM6MDA8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMjIwMTIw
LTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDo0MzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIxMDAw
NDEtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDAxOjI3PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjEw
MDA0MS0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTM6MDA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAy
MTAwMDQxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMyMjA3MTUucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDo0
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEx
MDIxMDAwNDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwNDEwMDQxMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDEy
OjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTEwMjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMTAwMzMxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcg
MTI6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMTAyMjIyNjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMyMjA3MTUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAx
NyAwMDo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzExMDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDEwMDQx
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0y
MDE3IDEyOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MjIw
NDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtTm92
LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDMy
MjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1O
b3YtMjAxNyAwMDo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEw
NDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0
LU5vdi0yMDE3IDEyOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcx
MTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+
MDUtTm92LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAx
NzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4wNS1Ob3YtMjAxNyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0y
MDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjA0LU5vdi0yMDE3IDEyOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1
LTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJ
CQk8dGQ+MDUtTm92LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMyMjA3
MTUtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzIy
MDcxNS0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+
CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0
MTAwNDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEx
MDQxMDA0MTItMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTEwNDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMTA0MTAwNDEyLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NTA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAwMzUz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzExMDQyMjA0MjAtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUyMjA3
MjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDAwOjU1PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEw
MDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NTE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA1
MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzEx
MDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEyOjUwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3
MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMTA1MjIwNzIxLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6NTA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvanNz
aGVsbC1saW51eC1pNjg2LnppcCI+anNzaGVsbC1saW51eC1pNjg2LnppcDwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2pzc2hlbGwtbGlu
dXgteDg2XzY0LnppcCI+anNzaGVsbC1saW51eC14ODZfNjQuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjEwTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2pzc2hlbGwtbWFjLnpp
cCI+anNzaGVsbC1tYWMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjE1
LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2pzc2hlbGwtbWFjNjQuemlwIj5qc3NoZWxsLW1hYzY0Lnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4xMy1EZWMtMjAxNiAxMjowMjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9qc3NoZWxsLXdpbjMyLnppcCI+anNzaGVsbC13aW4zMi56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9qc3NoZWxsLXdpbjY0
LnppcCI+anNzaGVsbC13aW42NC56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9tb3poYXJuZXNzLnppcCI+bW96aGFybmVzcy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9zZXR1cC1zdHViLmV4ZSI+c2V0dXAtc3R1Yi5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3Rk
PgorCQkJCTx0ZD4yNi1KdWwtMjAxNyAxMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9zZXR1cC5leGUiPnNldHVwLmV4ZTwv
YT48L3RkPgorCQkJCTx0ZD42NDNLPC90ZD4KKwkJCQk8dGQ+MjYtSnVsLTIwMTcgMTI6MDk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvdG9vbGNoYWlucy5qc29uIj50b29sY2hhaW5zLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8
L3RkPgorCQkJCTx0ZD4yNi1KdWwtMjAxNyAxMjowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJPC90YWJsZT4KKwk8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3N0YWJp
bGl0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZGQwMTIwODdjNmEx
YWI1Mjg4MDQxNDRkNWRhZGU3NzAwNDM3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3N0
YWJpbGl0eS5weQpAQCAtMCwwICsxLDcgQEAKK2Zyb20gdG9vbHMud3B0IGltcG9ydCBzdGFiaWxp
dHkKKworZGVmIHRlc3RfaXNfaW5jb25zaXN0ZW50KCk6CisgICAgYXNzZXJ0IHN0YWJpbGl0eS5p
c19pbmNvbnNpc3RlbnQoeyJQQVNTIjogMTB9LCAxMCkgaXMgRmFsc2UKKyAgICBhc3NlcnQgc3Rh
YmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5fSwgMTApIGlzIFRydWUKKyAgICBhc3Nl
cnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5LCAiRkFJTCI6IDF9LCAxMCkg
aXMgVHJ1ZQorICAgIGFzc2VydCBzdGFiaWxpdHkuaXNfaW5jb25zaXN0ZW50KHsiUEFTUyI6IDgs
ICJGQUlMIjogMX0sIDEwKSBpcyBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3Rz
L3Rlc3Rfd3B0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNjI4MGQ3MjMwMDhmNWI5MmQzNzUzOTJjMDVhY2Vi
ZWU1YzkwNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQpAQCAtMCwwICsxLDIy
OCBAQAoraW1wb3J0IGVycm5vCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzb2Nr
ZXQKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9y
dCB0aW1lCitpbXBvcnQgdXJsbGliMgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdG9vbHMud3B0
IGltcG9ydCB3cHQKKworCitkZWYgaXNfcG9ydF84MDAwX2luX3VzZSgpOgorICAgIHMgPSBzb2Nr
ZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCisgICAgdHJ5Ogor
ICAgICAgICBzLmJpbmQoKCIxMjcuMC4wLjEiLCA4MDAwKSkKKyAgICBleGNlcHQgc29ja2V0LmVy
cm9yIGFzIGU6CisgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFERFJJTlVTRToKKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBlCisg
ICAgZmluYWxseToKKyAgICAgICAgcy5jbG9zZSgpCisgICAgcmV0dXJuIEZhbHNlCisKKworQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIG1hbmlmZXN0X2RpcigpOgorICAgIGRl
ZiB1cGRhdGVfbWFuaWZlc3QoKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4
aXQpIGFzIGV4Y2luZm86CisgICAgICAgICAgICB3cHQubWFpbihhcmd2PVsibWFuaWZlc3QiLCAi
LS1uby1kb3dubG9hZCIsICItLXBhdGgiLCBvcy5wYXRoLmpvaW4ocGF0aCwgIk1BTklGRVNULmpz
b24iKV0pCisgICAgICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAorCisgICAgaWYg
b3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICJ0cnVlIjoKKyAgICAgICAgcGF0aCA9ICJ+L21l
dGEiCisgICAgICAgIHVwZGF0ZV9tYW5pZmVzdCgpCisgICAgICAgIHlpZWxkIHBhdGgKKyAgICBl
bHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXRoID0gdGVtcGZpbGUubWtkdGVtcCgp
CisgICAgICAgICAgICBvbGRfcGF0aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBv
X3Jvb3QsICJNQU5JRkVTVC5qc29uIikKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJNQU5JRkVTVC5qc29uIikpOgor
ICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvbGRfcGF0aCwgb3MucGF0aC5qb2luKHBh
dGgsICJNQU5JRkVTVC5qc29uIikpCisgICAgICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQorICAg
ICAgICAgICAgeWllbGQgcGF0aAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2h1dGls
LnJtdHJlZShwYXRoKQorCisKK2RlZiB0ZXN0X21pc3NpbmcoKToKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoU3lzdGVtRXhpdCk6CisgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyIjbWlzc2luZy1jb21t
YW5kIl0pCisKKworZGVmIHRlc3RfaGVscCgpOgorICAgICMgVE9ETzogSXQgc2VlbXMgbGlrZSB0
aGVyZSdzIGEgYnVnIGluIGFyZ3BhcnNlIHRoYXQgbWFrZXMgdGhpcyBhcmd1bWVudCBvcmRlciBy
ZXF1aXJlZAorICAgICMgc2hvdWxkIHRyeSB0byB3b3JrIGFyb3VuZCB0aGF0CisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86CisgICAgICAgIHdwdC5tYWluKGFy
Z3Y9WyItLWhlbHAiXSkKKyAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKworCitA
cHl0ZXN0Lm1hcmsuc2xvdworQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCitAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNv
bnMiKQorZGVmIHRlc3RfcnVuX2ZpcmVmb3gobWFuaWZlc3RfZGlyKToKKyAgICAjIFRPRE86IEl0
IHNlZW1zIGxpa2UgdGhlcmUncyBhIGJ1ZyBpbiBhcmdwYXJzZSB0aGF0IG1ha2VzIHRoaXMgYXJn
dW1lbnQgb3JkZXIgcmVxdWlyZWQKKyAgICAjIHNob3VsZCB0cnkgdG8gd29yayBhcm91bmQgdGhh
dAorICAgIGlmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKKyAgICAgICAgcHl0ZXN0LnNraXAoInBv
cnQgODAwMCBhbHJlYWR5IGluIHVzZSIpCisKKyAgICBvcy5lbnZpcm9uWyJNT1pfSEVBRExFU1Mi
XSA9ICIxIgorICAgIHRyeToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOgor
ICAgICAgICAgICAgZnhfcGF0aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jv
b3QsICJfdmVudiIsICJicm93c2VycyIsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMu
cmVwb19yb290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiZmlyZWZveCIpCisgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKGZ4X3BhdGgpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShmeF9wYXRo
KQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAg
ICAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJydW4iLCAiLS1uby1wYXVzZSIsICItLWluc3RhbGwt
YnJvd3NlciIsICItLXllcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1tZXRhZGF0
YSIsIG1hbmlmZXN0X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaXJlZm94Iiwg
Ii9kb20vbm9kZXMvRWxlbWVudC10YWdOYW1lLmh0bWwiXSkKKyAgICAgICAgYXNzZXJ0IG9zLnBh
dGguZXhpc3RzKGZ4X3BhdGgpCisgICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKKyAgICAg
ICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCisgICAgZmluYWxseToKKyAgICAgICAg
ZGVsIG9zLmVudmlyb25bIk1PWl9IRUFETEVTUyJdCisKKworQHB5dGVzdC5tYXJrLnNsb3cKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAg
ICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBh
dGggcmVhc29ucyIpCitkZWYgdGVzdF9ydW5fY2hyb21lKG1hbmlmZXN0X2Rpcik6CisgICAgaWYg
aXNfcG9ydF84MDAwX2luX3VzZSgpOgorICAgICAgICBweXRlc3Quc2tpcCgicG9ydCA4MDAwIGFs
cmVhZHkgaW4gdXNlIikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBl
eGNpbmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0tbm8tcGF1
c2UiLCAiLS1iaW5hcnktYXJnIiwgImhlYWRsZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
Ii0tbWV0YWRhdGEiLCBtYW5pZmVzdF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICJjaHJv
bWUiLCAiL2RvbS9ub2Rlcy9FbGVtZW50LXRhZ05hbWUuaHRtbCJdKQorICAgIGFzc2VydCBleGNp
bmZvLnZhbHVlLmNvZGUgPT0gMAorCisKK0BweXRlc3QubWFyay5zbG93CitAcHl0ZXN0Lm1hcmsu
cmVtb3RlX25ldHdvcmsKK0BweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMy
IiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3Jr
IG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitkZWYgdGVzdF9pbnN0YWxsX2Nocm9tZWRy
aXZlcigpOgorICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBh
dGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJpbiIsICJjaHJvbWVkcml2ZXIiKQorICAgIGlmIG9z
LnBhdGguZXhpc3RzKGNocm9tZWRyaXZlcl9wYXRoKToKKyAgICAgICAgb3MudW5saW5rKGNocm9t
ZWRyaXZlcl9wYXRoKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNp
bmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsiaW5zdGFsbCIsICJjaHJvbWUiLCAid2ViZHJp
dmVyIl0pCisgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCisgICAgYXNzZXJ0IG9z
LnBhdGguZXhpc3RzKGNocm9tZWRyaXZlcl9wYXRoKQorICAgIG9zLnVubGluayhjaHJvbWVkcml2
ZXJfcGF0aCkKKworCitAcHl0ZXN0Lm1hcmsuc2xvdworQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3
b3JrCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dz
IGZvciBwYXRoIHJlYXNvbnMiKQorZGVmIHRlc3RfaW5zdGFsbF9maXJlZm94KCk6CisKKyAgICBp
ZiBzeXMucGxhdGZvcm0gPT0gImRhcndpbiI6CisgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpv
aW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZv
eCBOaWdodGx5LmFwcCIpCisgICAgZWxzZToKKyAgICAgICAgZnhfcGF0aCA9IG9zLnBhdGguam9p
bih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJicm93c2VycyIsICJmaXJlZm94
IikKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhmeF9wYXRoKToKKyAgICAgICAgc2h1dGlsLnJtdHJl
ZShmeF9wYXRoKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZv
OgorICAgICAgICB3cHQubWFpbihhcmd2PVsiaW5zdGFsbCIsICJmaXJlZm94IiwgImJyb3dzZXIi
XSkKKyAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKyAgICBhc3NlcnQgb3MucGF0
aC5leGlzdHMoZnhfcGF0aCkKKyAgICBzaHV0aWwucm10cmVlKGZ4X3BhdGgpCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCBy
ZWFzb25zIikKK2RlZiB0ZXN0X2ZpbGVzX2NoYW5nZWQoY2Fwc3lzKToKKyAgICBjb21taXQgPSAi
OTA0N2FjMWQ5ZjUxYjFlOWZhYTRmOWZhZDljNDdkMTA5NjA5YWIwOSIKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1b
ImZpbGVzLWNoYW5nZWQiLCAiJXN+Li4lcyIgJSAoY29tbWl0LCBjb21taXQpXSkKKyAgICBhc3Nl
cnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKyAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0
ZXJyKCkKKyAgICBhc3NlcnQgb3V0ID09ICIiImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNo
ZS93b3JrZXJzL2FwcGNhY2hlLXdvcmtlci5odG1sCitodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBw
Y2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtZGVkaWNhdGVkLXdvcmtlci1ub3QtaW4t
Y2FjaGUuanMKK2h0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNl
cy9hcHBjYWNoZS1zaGFyZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5qcworaHRtbC9icm93c2Vycy9v
ZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci1kYXRhLnB5
CitodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2Fj
aGUtd29ya2VyLWltcG9ydC5weQoraHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtl
cnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5tYW5pZmVzdAoraHRtbC9icm93c2Vycy9vZmZs
aW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5weQorIiIiCisg
ICAgYXNzZXJ0IGVyciA9PSAiIgorCisKK2RlZiB0ZXN0X2ZpbGVzX2NoYW5nZWRfaWdub3JlKCk6
CisgICAgZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9ydCBleGNsdWRlX2lnbm9yZWQKKyAg
ICBmaWxlcyA9IFsicmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiwgInJlc291cmNlcy93ZWJpZGwy
L2luZGV4LmpzIiwgInRlc3QvdGVzdC5qcyJdCisgICAgY2hhbmdlZCwgaWdub3JlZCA9IGV4Y2x1
ZGVfaWdub3JlZChmaWxlcywgaWdub3JlX3J1bGVzPVsicmVzb3VyY2VzL3Rlc3RoYXJuZXNzKiJd
KQorICAgIGFzc2VydCBjaGFuZ2VkID09IFtvcy5wYXRoLmpvaW4od3B0LndwdF9yb290LCBpdGVt
KSBmb3IgaXRlbSBpbgorICAgICAgICAgICAgICAgICAgICAgICBbInJlc291cmNlcy93ZWJpZGwy
L2luZGV4LmpzIiwgInRlc3QvdGVzdC5qcyJdXQorICAgIGFzc2VydCBpZ25vcmVkID09IFtvcy5w
YXRoLmpvaW4od3B0LndwdF9yb290LCBpdGVtKSBmb3IgaXRlbSBpbgorICAgICAgICAgICAgICAg
ICAgICAgICBbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdXQorCisKK2RlZiB0ZXN0X2ZpbGVz
X2NoYW5nZWRfaWdub3JlX3J1bGVzKCk6CisgICAgZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGlt
cG9ydCBjb21waWxlX2lnbm9yZV9ydWxlCisgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUo
ImZvbypiYXIqL2JheiIpLnBhdHRlcm4gPT0gIl5mb29cKmJhclteL10qL2JheiQiCisgICAgYXNz
ZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvbyoqYmFyKiovYmF6IikucGF0dGVybiA9PSAiXmZv
b1wqXCpiYXIuKi9iYXokIgorICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb29iYXIv
YmF6LyoiKS5wYXR0ZXJuID09ICJeZm9vYmFyL2Jhei9bXi9dKiQiCisgICAgYXNzZXJ0IGNvbXBp
bGVfaWdub3JlX3J1bGUoImZvb2Jhci9iYXovKioiKS5wYXR0ZXJuID09ICJeZm9vYmFyL2Jhei8u
KiQiCisKKworQHB5dGVzdC5tYXJrLnNsb3cgICMgdGhpcyB1cGRhdGVzIHRoZSBtYW5pZmVzdAor
QHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3Ig
cGF0aCByZWFzb25zIikKK2RlZiB0ZXN0X3Rlc3RzX2FmZmVjdGVkKGNhcHN5cywgbWFuaWZlc3Rf
ZGlyKToKKyAgICAjIFRoaXMgZG9lc24ndCByZWFsbHkgd29yayBwcm9wZXJseSBmb3IgcmFuZG9t
IGNvbW1pdHMgYmVjYXVzZSB3ZSB0ZXN0IHRoZSBmaWxlcyBpbgorICAgICMgdGhlIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkgZm9yIHJlZmVyZW5jZXMgdG8gdGhlIGNoYW5nZWQgZmlsZXMsIG5v
dCB0aGUgb25lcyBhdAorICAgICMgdGhhdCBzcGVjaWZpYyBjb21taXQuIEJ1dCB3ZSBjYW4gYXQg
bGVhc3QgdGVzdCBpdCByZXR1cm5zIHNvbWV0aGluZyBzZW5zaWJsZQorICAgIGNvbW1pdCA9ICI5
MDQ3YWMxZDlmNTFiMWU5ZmFhNGY5ZmFkOWM0N2QxMDk2MDlhYjA5IgorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsi
dGVzdHMtYWZmZWN0ZWQiLCAiLS1tZXRhZGF0YSIsIG1hbmlmZXN0X2RpciwgIiVzfi4uJXMiICUg
KGNvbW1pdCwgY29tbWl0KV0pCisgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCisg
ICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgYXNzZXJ0ICJodG1sL2Jyb3dz
ZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9hcHBjYWNoZS13b3JrZXIuaHRtbCIgaW4gb3V0
CisKKworQHB5dGVzdC5tYXJrLnNsb3cKK0BweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0g
PT0gIndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBk
b24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitkZWYgdGVzdF9zZXJ2ZSgp
OgorICAgIGlmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKKyAgICAgICAgcHl0ZXN0LnNraXAoInBv
cnQgODAwMCBhbHJlYWR5IGluIHVzZSIpCisKKyAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbb3Mu
cGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIndwdCIpLCAic2VydmUiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBwcmVleGVjX2ZuPW9zLnNldHNpZCkKKworICAgIHN0YXJ0
ID0gdGltZS50aW1lKCkKKyAgICB0cnk6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICBpZiBwLnBvbGwoKSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2Us
ICJzZXJ2ZXIgbm90IHJ1bm5pbmciCisgICAgICAgICAgICBpZiB0aW1lLnRpbWUoKSAtIHN0YXJ0
ID4gNjA6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAic2VydmVyIGRpZCBub3Qgc3Rh
cnQgcmVzcG9uZGluZyB3aXRoaW4gNjBzIgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHJlc3AgPSB1cmxsaWIyLnVybG9wZW4oImh0dHA6Ly93ZWItcGxhdGZvcm0udGVzdDo4MDAw
IikKKyAgICAgICAgICAgICAgICBwcmludCByZXNwCisgICAgICAgICAgICBleGNlcHQgdXJsbGli
Mi5VUkxFcnJvcjoKKyAgICAgICAgICAgICAgICBwcmludCAiVVJMRXJyb3IiCisgICAgICAgICAg
ICAgICAgdGltZS5zbGVlcCgxKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgcmVzcC5jb2RlID09IDIwMAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgZmluYWxs
eToKKyAgICAgICAgb3Mua2lsbHBnKHAucGlkLCAxNSkKKworIyBUaGUgZm9sbG93aW5nIGNvbW1h
bmRzIGFyZSBzbG93IHJ1bm5pbmcgYW5kIHVzZWQgaW1wbGljaXRseSBpbiBvdGhlciBDSQorIyBq
b2JzLCBzbyB3ZSBza2lwIHRoZW0gaGVyZToKKyMgd3B0IGNoZWNrLXN0YWJpbGl0eQorIyB3cHQg
bWFuaWZlc3QKKyMgd3B0IGxpbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1MjJkMmUxMDM2MTc5OWRkMjU0YmRhZjY5ODJi
YzIzMWRkZDQ1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Rlc3RzL2xhdGVzdF9tb3ppbGxhX2NlbnRyYWwudHh0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVz
dF9zdGFiaWxpdHkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjI5YmM0YmZjNWM1MDI4NDkzOWMxNjNkZDBlOGJiNWM4Mjc0YTAwMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3RveC5pbmkKQEAgLTAsMCArMSw1MiBAQAorW3RveF0KK2Vudmxpc3QgPSBw
eTI3LHB5MjctZmxha2U4Citza2lwc2Rpc3Q9VHJ1ZQorCitbdGVzdGVudl0KK2RlcHMgPQorICBw
eXRlc3QKKyAgcHl0ZXN0LWNvdgorICBoeXBvdGhlc2lzCisgIC1ye3RveGluaWRpcn0vLi4vd3B0
cnVubmVyL3JlcXVpcmVtZW50cy50eHQKKyAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2Nocm9tZS50eHQKKyAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2ZpcmVmb3gudHh0CisKK2NvbW1hbmRzID0KKyAgcHl0ZXN0IC0tY292IHtwb3Nhcmdz
fQorCitbdGVzdGVudjpweTI3LWZsYWtlOF0KKyMgZmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBr
ZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQg
dG9vbHMvd3B0cnVubmVyL3RveC5pbmkKK2RlcHMgPQorICAgICBmbGFrZTg9PTMuNS4wCisgICAg
IHB5Y29kZXN0eWxlPT0yLjMuMQorICAgICBweWZsYWtlcz09MS42LjAKKyAgICAgcGVwOC1uYW1p
bmc9PTAuNC4xCisKK2NvbW1hbmRzID0KKyAgICAgZmxha2U4IHtwb3NhcmdzfQorCitbZmxha2U4
XQorIyBmbGFrZTggY29uZmlnIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3Rv
eC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKK3Nl
bGVjdCA9IEUsVyxGLE4KKyMgRTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXItaW5kZW50ZWQg
Zm9yIHZpc3VhbCBpbmRlbnQKKyMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGluZSB3aXRoIHNh
bWUgaW5kZW50IGFzIG5leHQgbG9naWNhbCBsaW5lCisjIEUyMjE6IG11bHRpcGxlIHNwYWNlcyBi
ZWZvcmUgb3BlcmF0b3IKKyMgRTIyNjogbWlzc2luZyB3aGl0ZXNwYWNlIGFyb3VuZCBhcml0aG1l
dGljIG9wZXJhdG9yCisjIEUyMzE6IG1pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciDigJgs4oCZLCDi
gJg74oCZLCBvciDigJg64oCZCisjIEUyNTE6IHVuZXhwZWN0ZWQgc3BhY2VzIGFyb3VuZCBrZXl3
b3JkIC8gcGFyYW1ldGVyIGVxdWFscworIyBFMjY1OiBibG9jayBjb21tZW50IHNob3VsZCBzdGFy
dCB3aXRoIOKAmCMg4oCYCisjIEUzMDI6IGV4cGVjdGVkIDIgYmxhbmsgbGluZXMsIGZvdW5kIDAK
KyMgRTMwMzogdG9vIG1hbnkgYmxhbmsgbGluZXMgKDMpCisjIEUzMDU6IGV4cGVjdGVkIDIgYmxh
bmsgbGluZXMgYWZ0ZXIgZW5kIG9mIGZ1bmN0aW9uIG9yIGNsYXNzCisjIEU0MDI6IG1vZHVsZSBs
ZXZlbCBpbXBvcnQgbm90IGF0IHRvcCBvZiBmaWxlCisjIEU3MzE6IGRvIG5vdCBhc3NpZ24gYSBs
YW1iZGEgZXhwcmVzc2lvbiwgdXNlIGEgZGVmCisjIEU5MDE6IFN5bnRheEVycm9yIG9yIEluZGVu
dGF0aW9uRXJyb3IKKyMgVzYwMTogLmhhc19rZXkoKSBpcyBkZXByZWNhdGVkLCB1c2Ug4oCYaW7i
gJkKKyMgRjQwMTogbW9kdWxlIGltcG9ydGVkIGJ1dCB1bnVzZWQKKyMgRjQwMzog4oCYZnJvbSBt
b2R1bGUgaW1wb3J0ICrigJkgdXNlZDsgdW5hYmxlIHRvIGRldGVjdCB1bmRlZmluZWQgbmFtZXMK
KyMgRjQwNTogbmFtZSBtYXkgYmUgdW5kZWZpbmVkLCBvciBkZWZpbmVkIGZyb20gc3RhciBpbXBv
cnRzOiBtb2R1bGUKKyMgRjg0MTogbG9jYWwgdmFyaWFibGUgbmFtZSBpcyBhc3NpZ25lZCB0byBi
dXQgbmV2ZXIgdXNlZAorIyBOODAxOiBjbGFzcyBuYW1lcyBzaG91bGQgdXNlIENhcFdvcmRzIGNv
bnZlbnRpb24KKyMgTjgwMjogZnVuY3Rpb24gbmFtZSBzaG91bGQgYmUgbG93ZXJjYXNlCitpZ25v
cmUgPSBFMTI4LEUxMjksRTIyMSxFMjI2LEUyMzEsRTI1MSxFMjY1LEUzMDIsRTMwMyxFMzA1LEU0
MDIsRTczMSxFOTAxLFc2MDEsRjQwMSxGNDAzLEY0MDUsRjg0MSxOODAxLE44MDIKK21heC1saW5l
LWxlbmd0aCA9IDE0MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdXBkYXRlLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
YTdiNjJiODYwODNmZDA1YmUwYmU2Y2E3NGRkMzU0OTIwODcxZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91
cGRhdGUucHkKQEAgLTAsMCArMSwzMiBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3dwdF9y
b290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIikpKQorCisKK2RlZiBjcmVhdGVf
cGFyc2VyX3VwZGF0ZSgpOgorICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRjb21tYW5kbGlu
ZQorCisgICAgcmV0dXJuIHdwdGNvbW1hbmRsaW5lLmNyZWF0ZV9wYXJzZXJfdXBkYXRlKCkKKwor
CitkZWYgdXBkYXRlX2V4cGVjdGF0aW9ucyh2ZW52LCAqKmt3YXJncyk6CisgICAgZnJvbSB3cHRy
dW5uZXIgaW1wb3J0IHdwdGNvbW1hbmRsaW5lCisgICAgZnJvbSB3cHRydW5uZXIudXBkYXRlIGlt
cG9ydCBzZXR1cF9sb2dnaW5nLCBXUFRVcGRhdGUKKworICAgIGlmIG5vdCBrd2FyZ3NbInRlc3Rz
X3Jvb3QiXToKKyAgICAgICAga3dhcmdzWyJ0ZXN0c19yb290Il0gPSB3cHRfcm9vdAorCisgICAg
aWYgbm90IGt3YXJnc1sibWFuaWZlc3RfcGF0aCJdOgorICAgICAgICBrd2FyZ3NbIm1hbmlmZXN0
X3BhdGgiXSA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgIk1BTklGRVNULmpzb24iKQorCisgICAg
aWYgInByb2R1Y3QiIG5vdCBpbiBrd2FyZ3NbImV4dHJhX3Byb3BlcnR5Il06CisgICAgICAgIGt3
YXJnc1siZXh0cmFfcHJvcGVydHkiXS5hcHBlbmQoInByb2R1Y3QiKQorCisgICAgd3B0Y29tbWFu
ZGxpbmUuY2hlY2tfYXJnc191cGRhdGUoa3dhcmdzKQorCisgICAgbG9nZ2VyID0gc2V0dXBfbG9n
Z2luZyhrd2FyZ3MsIHsibWFjaCI6IHN5cy5zdGRvdXR9KQorCisgICAgdXBkYXRlciA9IFdQVFVw
ZGF0ZShsb2dnZXIsICoqa3dhcmdzKQorICAgIHVwZGF0ZXIucnVuKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThlZGMwYmU0OTM3MzE1ODExMmI2MmNmYTgwNjRhNzMy
MTI5Yjk3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxzLnB5CkBAIC0wLDAgKzEsMTE5IEBACitpbXBv
cnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1w
b3J0IHRhcmZpbGUKK2ltcG9ydCB6aXBmaWxlCitmcm9tIGlvIGltcG9ydCBCeXRlc0lPCisKK2xv
Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEt3YXJncyhkaWN0
KToKKyAgICBkZWYgc2V0X2lmX25vbmUoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwg
ICAgICAgICAgICAjIHR5cGU6IHN0cgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgICAgICAg
ICAgICMgdHlwZTogQW55CisgICAgICAgICAgICAgICAgICAgIGVycl9mbj1Ob25lLCAgICAgIyB0
eXBlOiAoS3dhcmdzLCBzdHIpIC0+IEFueQorICAgICAgICAgICAgICAgICAgICBkZXNjPU5vbmUs
ICAgICAgICMgdHlwZTogc3RyCisgICAgICAgICAgICAgICAgICAgIGV4dHJhX2NvbmQ9Tm9uZSAg
IyB0eXBlOiAoS3dhcmdzKSAtPiBib29sCisgICAgICAgICAgICAgICAgICAgICk6CisgICAgICAg
IGlmIGRlc2MgaXMgTm9uZToKKyAgICAgICAgICAgIGRlc2MgPSBuYW1lCisKKyAgICAgICAgaWYg
bmFtZSBub3QgaW4gc2VsZiBvciBzZWxmW25hbWVdIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBl
eHRyYV9jb25kIGlzIG5vdCBOb25lIGFuZCBub3QgZXh0cmFfY29uZChzZWxmKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIGNhbGxhYmxlKHZhbHVlKToKKyAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHZhbHVlKCkKKyAgICAgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAg
ICAgICAgICAgICBpZiBlcnJfZm4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBlcnJfZm4oc2VsZiwgIkZhaWxlZCB0byBmaW5kICVzIiAlIGRlc2MpCisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBzZWxm
W25hbWVdID0gdmFsdWUKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJTZXQgJXMgdG8gJXMiICUg
KGRlc2MsIHZhbHVlKSkKKworCitkZWYgY2FsbCgqYXJncyk6CisgICAgIiIiTG9nIHRlcm1pbmFs
IGNvbW1hbmQsIGludm9rZSBpdCBhcyBhIHN1YnByb2Nlc3MuCisKKyAgICBSZXR1cm5zIGEgYnl0
ZXN0cmluZyBvZiB0aGUgc3VicHJvY2VzcyBvdXRwdXQgaWYgbm8gZXJyb3IuCisgICAgIiIiCisg
ICAgbG9nZ2VyLmRlYnVnKCIlcyIgJSAiICIuam9pbihhcmdzKSkKKyAgICB0cnk6CisgICAgICAg
IHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChhcmdzKQorICAgIGV4Y2VwdCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIiVz
IGV4aXRlZCB3aXRoIHJldHVybiBjb2RlICVpIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAo
ZS5jbWQsIGUucmV0dXJuY29kZSkpCisgICAgICAgIGxvZ2dlci5jcml0aWNhbChlLm91dHB1dCkK
KyAgICAgICAgcmFpc2UKKworCitkZWYgZ2V0X2dpdF9jbWQocmVwb19wYXRoKToKKyAgICAiIiJD
cmVhdGUgYSBmdW5jdGlvbiBmb3IgaW52b2tpbmcgZ2l0IGNvbW1hbmRzIGFzIGEgc3VicHJvY2Vz
cy4iIiIKKyAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgorICAgICAgICBmdWxsX2NtZCA9IFsiZ2l0
IiwgY21kXSArIGxpc3QoYXJncykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9nZ2VyLmRl
YnVnKCIgIi5qb2luKGZ1bGxfY21kKSkKKyAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE
T1VUKS5zdHJpcCgpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJv
ciBhcyBlOgorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJHaXQgY29tbWFuZCBleGl0ZWQgd2l0
aCBzdGF0dXMgJWkiICUgZS5yZXR1cm5jb2RlKQorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGUu
b3V0cHV0KQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICByZXR1cm4gZ2l0CisKKworZGVm
IHNlZWthYmxlKGZpbGVvYmopOgorICAgICIiIkF0dGVtcHQgdG8gdXNlIGZpbGUuc2VlayBvbiBn
aXZlbiBmaWxlLCB3aXRoIGZhbGxiYWNrcy4iIiIKKyAgICB0cnk6CisgICAgICAgIGZpbGVvYmou
c2VlayhmaWxlb2JqLnRlbGwoKSkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICByZXR1
cm4gQnl0ZXNJTyhmaWxlb2JqLnJlYWQoKSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZmls
ZW9iagorCisKK2RlZiB1bnRhcihmaWxlb2JqLCBkZXN0PSIuIik6CisgICAgIiIiRXh0cmFjdCB0
YXIgYXJjaGl2ZS4iIiIKKyAgICBsb2dnZXIuZGVidWcoInVudGFyIikKKyAgICBmaWxlb2JqID0g
c2Vla2FibGUoZmlsZW9iaikKKyAgICB3aXRoIHRhcmZpbGUub3BlbihmaWxlb2JqPWZpbGVvYmop
IGFzIHRhcl9kYXRhOgorICAgICAgICB0YXJfZGF0YS5leHRyYWN0YWxsKHBhdGg9ZGVzdCkKKwor
CitkZWYgdW56aXAoZmlsZW9iaiwgZGVzdD1Ob25lLCBsaW1pdD1Ob25lKToKKyAgICAiIiJFeHRy
YWN0IHppcCBhcmNoaXZlLiIiIgorICAgIGxvZ2dlci5kZWJ1ZygidW56aXAiKQorICAgIGZpbGVv
YmogPSBzZWVrYWJsZShmaWxlb2JqKQorICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGZpbGVvYmop
IGFzIHppcF9kYXRhOgorICAgICAgICBmb3IgaW5mbyBpbiB6aXBfZGF0YS5pbmZvbGlzdCgpOgor
ICAgICAgICAgICAgaWYgbGltaXQgaXMgbm90IE5vbmUgYW5kIGluZm8uZmlsZW5hbWUgbm90IGlu
IGxpbWl0OgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB6aXBfZGF0YS5l
eHRyYWN0KGluZm8sIHBhdGg9ZGVzdCkKKyAgICAgICAgICAgIHBlcm0gPSBpbmZvLmV4dGVybmFs
X2F0dHIgPj4gMTYgJiAweDFGRgorICAgICAgICAgICAgb3MuY2htb2Qob3MucGF0aC5qb2luKGRl
c3QsIGluZm8uZmlsZW5hbWUpLCBwZXJtKQorCisKK2NsYXNzIHB3ZChvYmplY3QpOgorICAgICIi
IkNyZWF0ZSBjb250ZXh0IGZvciB0ZW1wb3JhcmlseSBjaGFuZ2luZyBwcmVzZW50IHdvcmtpbmcg
ZGlyZWN0b3J5LiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXIpOgorICAgICAgICBzZWxm
LmRpciA9IGRpcgorICAgICAgICBzZWxmLm9sZF9kaXIgPSBOb25lCisKKyAgICBkZWYgX19lbnRl
cl9fKHNlbGYpOgorICAgICAgICBzZWxmLm9sZF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MuY3Vy
ZGlyKQorICAgICAgICBvcy5jaGRpcihzZWxmLmRpcikKKworICAgIGRlZiBfX2V4aXRfXyhzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBvcy5jaGRpcihzZWxmLm9sZF9kaXIpCisgICAg
ICAgIHNlbGYub2xkX2RpciA9IE5vbmUKKworCitkZWYgZ2V0KHVybCk6CisgICAgIiIiSXNzdWUg
R0VUIHJlcXVlc3QgdG8gYSBnaXZlbiBVUkwgYW5kIHJldHVybiB0aGUgcmVzcG9uc2UuIiIiCisg
ICAgaW1wb3J0IHJlcXVlc3RzCisKKyAgICBsb2dnZXIuZGVidWcoIkdFVCAlcyIgJSB1cmwpCisg
ICAgcmVzcCA9IHJlcXVlc3RzLmdldCh1cmwsIHN0cmVhbT1UcnVlKQorICAgIHJlc3AucmFpc2Vf
Zm9yX3N0YXR1cygpCisgICAgcmV0dXJuIHJlc3AKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3ZpcnR1YWxlbnYucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0
dWFsZW52LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4NDU0Yzk3OWMyYzRiYTIwOTk1YmE4ODA1Y2ViYjYxOGZk
OGJhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5CkBAIC0wLDAgKzEsNTMgQEAKK2lt
cG9ydCBvcworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN5cworaW1wb3J0IGxvZ2dpbmcKK2Zyb20g
ZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKKworZnJvbSB0b29scy53cHQu
dXRpbHMgaW1wb3J0IGNhbGwKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CisKK2NsYXNzIFZpcnR1YWxlbnYob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0
aCk6CisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi52aXJ0dWFsZW52ID0g
ZmluZF9leGVjdXRhYmxlKCJ2aXJ0dWFsZW52IikKKyAgICAgICAgaWYgbm90IHNlbGYudmlydHVh
bGVudjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInZpcnR1YWxlbnYgbXVzdCBiZSBp
bnN0YWxsZWQgYW5kIG9uIHRoZSBQQVRIIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleGlz
dHMoc2VsZik6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmlzZGlyKHNlbGYucGF0aCkKKworICAg
IGRlZiBjcmVhdGUoc2VsZik6CisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYucGF0aCk6
CisgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYucGF0aCkKKyAgICAgICAgY2FsbChzZWxm
LnZpcnR1YWxlbnYsIHNlbGYucGF0aCwgIi1wIiwgc3lzLmV4ZWN1dGFibGUpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgYmluX3BhdGgoc2VsZik6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBp
biAoIndpbjMyIiwgImN5Z3dpbiIpOgorICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihz
ZWxmLnBhdGgsICJTY3JpcHRzIikKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLnBh
dGgsICJiaW4iKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBpcF9wYXRoKHNlbGYpOgorICAg
ICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJwaXAiLCBzZWxmLmJpbl9wYXRoKQorICAgICAg
ICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwaXAgbm90
IGZvdW5kIikKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiBhY3RpdmF0ZShzZWxmKToK
KyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLmJpbl9wYXRoLCAiYWN0aXZhdGVfdGhp
cy5weSIpCisgICAgICAgIGV4ZWNmaWxlKHBhdGgsIHsiX19maWxlX18iOiBwYXRofSkKKworICAg
IGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZXhpc3RzOgorICAgICAgICAg
ICAgc2VsZi5jcmVhdGUoKQorICAgICAgICBzZWxmLmFjdGl2YXRlKCkKKworICAgIGRlZiBpbnN0
YWxsKHNlbGYsICpyZXF1aXJlbWVudHMpOgorICAgICAgICBjYWxsKHNlbGYucGlwX3BhdGgsICJp
bnN0YWxsIiwgKnJlcXVpcmVtZW50cykKKworICAgIGRlZiBpbnN0YWxsX3JlcXVpcmVtZW50cyhz
ZWxmLCByZXF1aXJlbWVudHNfcGF0aCk6CisgICAgICAgIGNhbGwoc2VsZi5waXBfcGF0aCwgImlu
c3RhbGwiLCAiLXIiLCByZXF1aXJlbWVudHNfcGF0aCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODllZDdiNDc5M2FiMTRhMmZjYzRjYzgxYWZlMDBj
OTM5ODAyYmE2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMzEg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24KKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFy
a2Rvd24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC9wYXRocworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9zdGFiaWxpdHkucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90b3guaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdXBkYXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdXRpbHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93
cHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC93cHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDlmNDYzZDJhOWVkMWVlM2M0M2M4NWQzYWNlYjVmMDU4
Y2FmMTFhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQpAQCAtMCwwICsxLDE0NSBAQAoraW1wb3J0
IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0
IHN5cworCitmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzCisKK2Zyb20gc2l4IGltcG9ydCBp
dGVyaXRlbXMKK2Zyb20gLiBpbXBvcnQgdmlydHVhbGVudgorCisKK2hlcmUgPSBvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
aGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorCisKK2RlZiBsb2FkX2NvbW1hbmRzKCk6Cisg
ICAgcnYgPSB7fQorICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInBhdGhzIiksICJy
IikgYXMgZjoKKyAgICAgICAgcGF0aHMgPSBbaXRlbS5zdHJpcCgpLnJlcGxhY2UoIi8iLCBvcy5w
YXRoLnNlcCkgZm9yIGl0ZW0gaW4gZiBpZiBpdGVtLnN0cmlwKCldCisgICAgZm9yIHBhdGggaW4g
cGF0aHM6CisgICAgICAgIGFic19wYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCBwYXRoLCAi
Y29tbWFuZHMuanNvbiIpCisgICAgICAgIGJhc2VfZGlyID0gb3MucGF0aC5kaXJuYW1lKGFic19w
YXRoKQorICAgICAgICB3aXRoIG9wZW4oYWJzX3BhdGgsICJyIikgYXMgZjoKKyAgICAgICAgICAg
IGRhdGEgPSBqc29uLmxvYWQoZikKKyAgICAgICAgICAgIGZvciBjb21tYW5kLCBwcm9wcyBpbiBp
dGVyaXRlbXMoZGF0YSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJwYXRoIiBpbiBwcm9wcwor
ICAgICAgICAgICAgICAgIGFzc2VydCAic2NyaXB0IiBpbiBwcm9wcworICAgICAgICAgICAgICAg
IHJ2W2NvbW1hbmRdID0geworICAgICAgICAgICAgICAgICAgICAicGF0aCI6IG9zLnBhdGguam9p
bihiYXNlX2RpciwgcHJvcHNbInBhdGgiXSksCisgICAgICAgICAgICAgICAgICAgICJzY3JpcHQi
OiBwcm9wc1sic2NyaXB0Il0sCisgICAgICAgICAgICAgICAgICAgICJwYXJzZXIiOiBwcm9wcy5n
ZXQoInBhcnNlciIpLAorICAgICAgICAgICAgICAgICAgICAicGFyc2Vfa25vd24iOiBwcm9wcy5n
ZXQoInBhcnNlX2tub3duIiwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAiaGVscCI6IHBy
b3BzLmdldCgiaGVscCIpLAorICAgICAgICAgICAgICAgICAgICAidmlydHVhbGVudiI6IHByb3Bz
LmdldCgidmlydHVhbGVudiIsIFRydWUpLAorICAgICAgICAgICAgICAgICAgICAiaW5zdGFsbCI6
IHByb3BzLmdldCgiaW5zdGFsbCIsIFtdKSwKKyAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVt
ZW50cyI6IFtvcy5wYXRoLmpvaW4oYmFzZV9kaXIsIGl0ZW0pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcHJvcHMuZ2V0KCJyZXF1aXJlbWVudHMiLCBb
XSldCisgICAgICAgICAgICAgICAgfQorICAgIHJldHVybiBydgorCisKK2RlZiBwYXJzZV9hcmdz
KGFyZ3YsIGNvbW1hbmRzKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS12ZW52IiwgYWN0aW9uPSJzdG9yZSIsIGhlbHA9
IlBhdGggdG8gYW4gZXhpc3RpbmcgdmlydHVhbGVudiB0byB1c2UiKQorICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tZGVidWciLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJSdW4gdGhlIGRl
YnVnZ2VyIGluIGNhc2Ugb2YgYW4gZXhjZXB0aW9uIikKKyAgICBzdWJwYXJzZXJzID0gcGFyc2Vy
LmFkZF9zdWJwYXJzZXJzKGRlc3Q9ImNvbW1hbmQiKQorICAgIGZvciBjb21tYW5kLCBwcm9wcyBp
biBpdGVyaXRlbXMoY29tbWFuZHMpOgorICAgICAgICBzdWJfcGFyc2VyID0gc3VicGFyc2Vycy5h
ZGRfcGFyc2VyKGNvbW1hbmQsIGhlbHA9cHJvcHNbImhlbHAiXSwgYWRkX2hlbHA9RmFsc2UpCisK
KyAgICBhcmdzLCBleHRyYSA9IHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3YpCisKKyAgICBy
ZXR1cm4gYXJncywgZXh0cmEKKworCitkZWYgaW1wb3J0X2NvbW1hbmQocHJvZywgY29tbWFuZCwg
cHJvcHMpOgorICAgICMgVGhpcyBjdXJyZW50bHkgcmVxdWlyZXMgdGhlIHBhdGggdG8gYmUgYSBt
b2R1bGUsCisgICAgIyB3aGljaCBwcm9iYWJseSBpc24ndCBpZGVhbCBidXQgaXQgbWVhbnMgdGhh
dCByZWxhdGl2ZQorICAgICMgaW1wb3J0cyBpbnNpZGUgdGhlIHNjcmlwdCB3b3JrCisgICAgcmVs
X3BhdGggPSBvcy5wYXRoLnJlbHBhdGgocHJvcHNbInBhdGgiXSwgd3B0X3Jvb3QpCisKKyAgICBw
YXJ0cyA9IG9zLnBhdGguc3BsaXRleHQocmVsX3BhdGgpWzBdLnNwbGl0KG9zLnBhdGguc2VwKQor
CisgICAgbW9kX25hbWUgPSAiLiIuam9pbihwYXJ0cykKKworICAgIG1vZCA9IF9faW1wb3J0X18o
bW9kX25hbWUpCisgICAgZm9yIHBhcnQgaW4gcGFydHNbMTpdOgorICAgICAgICBtb2QgPSBnZXRh
dHRyKG1vZCwgcGFydCkKKworICAgIHNjcmlwdCA9IGdldGF0dHIobW9kLCBwcm9wc1sic2NyaXB0
Il0pCisgICAgaWYgcHJvcHNbInBhcnNlciJdIGlzIG5vdCBOb25lOgorICAgICAgICBwYXJzZXIg
PSBnZXRhdHRyKG1vZCwgcHJvcHNbInBhcnNlciJdKSgpCisgICAgICAgIHBhcnNlci5wcm9nID0g
IiVzICVzIiAlIChvcy5wYXRoLmJhc2VuYW1lKHByb2cpLCBjb21tYW5kKQorICAgIGVsc2U6Cisg
ICAgICAgIHBhcnNlciA9IE5vbmUKKworICAgIHJldHVybiBzY3JpcHQsIHBhcnNlcgorCisKK2Rl
ZiBzZXR1cF92aXJ0dWFsZW52KHBhdGgsIHByb3BzKToKKyAgICBpZiBwYXRoIGlzIE5vbmU6Cisg
ICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudiIpCisgICAgdmVudiA9
IHZpcnR1YWxlbnYuVmlydHVhbGVudihwYXRoKQorICAgIHZlbnYuc3RhcnQoKQorICAgIGZvciBu
YW1lIGluIHByb3BzWyJpbnN0YWxsIl06CisgICAgICAgIHZlbnYuaW5zdGFsbChuYW1lKQorICAg
IGZvciBwYXRoIGluIHByb3BzWyJyZXF1aXJlbWVudHMiXToKKyAgICAgICAgdmVudi5pbnN0YWxs
X3JlcXVpcmVtZW50cyhwYXRoKQorICAgIHJldHVybiB2ZW52CisKKworZGVmIG1haW4ocHJvZz1O
b25lLCBhcmd2PU5vbmUpOgorICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5J
TkZPKQorCisgICAgaWYgcHJvZyBpcyBOb25lOgorICAgICAgICBwcm9nID0gc3lzLmFyZ3ZbMF0K
KyAgICBpZiBhcmd2IGlzIE5vbmU6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndlsxOl0KKworICAg
IGNvbW1hbmRzID0gbG9hZF9jb21tYW5kcygpCisKKyAgICBtYWluX2FyZ3MsIGNvbW1hbmRfYXJn
cyA9IHBhcnNlX2FyZ3MoYXJndiwgY29tbWFuZHMpCisKKyAgICBpZiBub3QobGVuKGFyZ3YpIGFu
ZCBhcmd2WzBdIGluIGNvbW1hbmRzKToKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGNvbW1h
bmQgPSBtYWluX2FyZ3MuY29tbWFuZAorICAgIHByb3BzID0gY29tbWFuZHNbY29tbWFuZF0KKyAg
ICB2ZW52ID0gTm9uZQorICAgIGlmIHByb3BzWyJ2aXJ0dWFsZW52Il06CisgICAgICAgIHZlbnYg
PSBzZXR1cF92aXJ0dWFsZW52KG1haW5fYXJncy52ZW52LCBwcm9wcykKKyAgICBzY3JpcHQsIHBh
cnNlciA9IGltcG9ydF9jb21tYW5kKHByb2csIGNvbW1hbmQsIHByb3BzKQorICAgIGlmIHBhcnNl
cjoKKyAgICAgICAgaWYgcHJvcHNbInBhcnNlX2tub3duIl06CisgICAgICAgICAgICBrd2FyZ3Ms
IGV4dHJhcyA9IHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGNvbW1hbmRfYXJncykKKyAgICAgICAg
ICAgIGV4dHJhcyA9IChleHRyYXMsKQorICAgICAgICAgICAga3dhcmdzID0gdmFycyhrd2FyZ3Mp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHRyYXMgPSAoKQorICAgICAgICAgICAga3dh
cmdzID0gdmFycyhwYXJzZXIucGFyc2VfYXJncyhjb21tYW5kX2FyZ3MpKQorICAgIGVsc2U6Cisg
ICAgICAgIGV4dHJhcyA9ICgpCisgICAgICAgIGt3YXJncyA9IHt9CisKKyAgICBpZiB2ZW52IGlz
IG5vdCBOb25lOgorICAgICAgICBhcmdzID0gKHZlbnYsKSArIGV4dHJhcworICAgIGVsc2U6Cisg
ICAgICAgIGFyZ3MgPSBleHRyYXMKKworICAgIGlmIHNjcmlwdDoKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcnYgPSBzY3JpcHQoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgaWYgcnYg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc3lzLmV4aXQoaW50KHJ2KSkKKyAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGlmIG1haW5fYXJncy5kZWJ1ZzoKKyAgICAg
ICAgICAgICAgICBpbXBvcnQgcGRiCisgICAgICAgICAgICAgICAgcGRiLnBvc3RfbW9ydGVtKCkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICBzeXMuZXhpdCgw
KQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvTElDRU5TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTg5NmU2YmUyYmQ1MWY0Yjc4
ZTk3MDNjYWVmYjliNjcyZTEwYTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvTElDRU5TRQpAQCAt
MCwwICsxLDMwIEBACitXM0MgMy1jbGF1c2UgQlNEIExpY2Vuc2UKKworaHR0cDovL3d3dy53My5v
cmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlLmh0bWwKKworUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyogUmVkaXN0cmlidXRpb25zIG9mIHdvcmtzIG11c3Qg
cmV0YWluIHRoZSBvcmlnaW5hbCBjb3B5cmlnaHQgbm90aWNlLAorICB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgb3JpZ2luYWwgY29weXJpZ2h0Cisg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBX
M0Mgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZQorICB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyB3b3JrIHdpdGhvdXQK
KyAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCitM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9NQU5JRkVTVC5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMzYzNDRmOTY2ODkxOWY5ZGZjOGYyZTYwYTQ3MGE1ZDA0ODRjMjkyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSw2IEBACitleGNsdWRlIE1BTklG
RVNULmluCitpbmNsdWRlIHJlcXVpcmVtZW50cy50eHQKK2luY2x1ZGUgd3B0cnVubmVyLmRlZmF1
bHQuaW5pCitpbmNsdWRlIHdwdHJ1bm5lci90ZXN0aGFybmVzc19ydW5uZXIuaHRtbAoraW5jbHVk
ZSB3cHRydW5uZXIvKi5qcworaW5jbHVkZSB3cHRydW5uZXIvZXhlY3V0b3JzLyouanMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MTc5MjI4
MjcyMjJlOTc5YmRhNDU1ODYzNDE2MjgwMmJjNTE1NzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9S
RUFETUUucnN0CkBAIC0wLDAgKzEsMjM2IEBACit3cHRydW5uZXI6IEEgd2ViLXBsYXRmb3JtLXRl
c3RzIGhhcm5lc3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCit3
cHRydW5uZXIgaXMgYSBoYXJuZXNzIGZvciBydW5uaW5nIHRoZSBXM0MgYHdlYi1wbGF0Zm9ybS10
ZXN0cyB0ZXN0c3VpdGVgXy4KKworLi4gY29udGVudHM6OgorCitJbnN0YWxsYXRpb24KK35+fn5+
fn5+fn5+fgorCit3cHRydW5uZXIgaXMgZXhwZWN0ZWQgdG8gYmUgaW5zdGFsbGVkIGludG8gYSB2
aXJ0dWFsZW52IHVzaW5nIHBpcC4gRm9yCitkZXZlbG9wbWVudCwgaXQgY2FuIGJlIGluc3RhbGxl
ZCB1c2luZyB0aGUgYC1lYCBvcHRpb246OgorCisgIHBpcCBpbnN0YWxsIC1lIC4vCisKK1J1bm5p
bmcgdGhlIFRlc3RzCit+fn5+fn5+fn5+fn5+fn5+fgorCitBZnRlciBpbnN0YWxsYXRpb24sIHRo
ZSBjb21tYW5kIGBgd3B0cnVubmVyYGAgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byBydW4KK3RoZSB0
ZXN0cy4KKworVGhlIGBgd3B0cnVubmVyYGAgY29tbWFuZCAgdGFrZXMgbXVsdGlwbGUgb3B0aW9u
cywgb2Ygd2hpY2ggdGhlCitmb2xsb3dpbmcgYXJlIG1vc3Qgc2lnbmlmaWNhbnQ6CisKK2BgLS1w
cm9kdWN0YGAgKGRlZmF1bHRzIHRvIGBmaXJlZm94YCkKKyAgVGhlIHByb2R1Y3QgdG8gdGVzdCBh
Z2FpbnN0OiBgY2hyb21lYCwgYGZpcmVmb3hgLCBvciBgc2Vydm9gLgorCitgYC0tYmluYXJ5YGAg
KHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIG9yIGBzZXJ2b2ApCisgIFRoZSBwYXRo
IHRvIGEgYmluYXJ5IGZpbGUgZm9yIHRoZSBwcm9kdWN0IChicm93c2VyKSB0byB0ZXN0IGFnYWlu
c3QuCisKK2BgLS13ZWJkcml2ZXItYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGNo
cm9tZWApCisgIFRoZSBwYXRoIHRvIGEgYGRyaXZlcmAgYmluYXJ5OyBlLmcuLCBhIGBjaHJvbWVk
cml2ZXJgIGJpbmFyeS4KKworYGAtLWNlcnR1dGlsLWJpbmFyeWBgIChyZXF1aXJlZCBpZiBwcm9k
dWN0IGlzIGBmaXJlZm94YCBbI11fKQorICBUaGUgcGF0aCB0byBhIGBjZXJ0dXRpbGAgYmluYXJ5
IChmb3IgdGVzdHMgdGhhdCBtdXN0IGJlIHJ1biBvdmVyIGh0dHBzKS4KKworYGAtLW1ldGFkYXRh
YGAgKHJlcXVpcmVkKQorICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIHRlc3Qg
bWV0YWRhdGEuIFsjXV8KKworYGAtLXRlc3RzYGAgKHJlcXVpcmVkKQorICBUaGUgcGF0aCB0byBh
IGRpcmVjdG9yeSBjb250YWluaW5nIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0LgorCitg
YC0tcHJlZnMtcm9vdGBgIChyZXF1aXJlZCBvbmx5IHdoZW4gdGVzdGluZyBhIEZpcmVmb3ggYmlu
YXJ5KQorICBUaGUgcGF0aCB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIEZpcmVmb3ggdGVzdC1o
YXJuZXNzIHByZWZlcmVuY2VzLiBbI11fCisKK2BgLS1jb25maWdgYCAoc2hvdWxkIGRlZmF1bHQg
dG8gYHdwdHJ1bm5lci5kZWZhdWx0LmluaWApCisgIFRoZSBwYXRoIHRvIHRoZSBjb25maWcgKGlu
aSkgZmlsZS4KKworLi4gWyNdIFRoZSBgYC0tY2VydHV0aWwtYmluYXJ5YGAgb3B0aW9uIGlzIHJl
cXVpcmVkIHdoZW4gdGhlIHByb2R1Y3QgaXMKKyAgIGBgZmlyZWZveGBgIHVubGVzcyBgYC0tc3Ns
LXR5cGU9bm9uZWBgIGlzIHNwZWNpZmllZC4KKworLi4gWyNdIFRoZSBgYC0tbWV0YWRhdGFgYCBw
YXRoIGlzIHRvIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnM6CisKKyAgKiBhIGBgTUFOSUZFU1Qu
anNvbmBgIGZpbGUgKGluc3RydWN0aW9ucyBvbiBnZW5lcmF0aW5nIHRoaXMgZmlsZSBhcmUKKyAg
ICBhdmFpbGFibGUgaW4gdGhlIGBkZXRhaWxlZCBkb2N1bWVudGF0aW9uCisgICAgPGh0dHA6Ly93
cHRydW5uZXIucmVhZHRoZWRvY3Mub3JnL2VuL2xhdGVzdC91c2FnZS5odG1sI2luc3RhbGxpbmct
d3B0cnVubmVyPmBfKTsKKyAgICBhbmQKKyAgKiAob3B0aW9uYWxseSkgYW55IGV4cGVjdGF0aW9u
IGZpbGVzIChzZWUgYmVsb3cpCisKKy4uIFsjXSBFeGFtcGxlIGBgLS1wcmVmcy1yb290YGAgdmFs
dWU6IGBgfi9tb3ppbGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlc2BgLgorCitUaGVyZSBhcmUg
YWxzbyBhIHZhcmlldHkgb2Ygb3RoZXIgb3B0aW9ucyBhdmFpbGFibGU7IHVzZSBgYC0taGVscGBg
IHRvCitsaXN0IHRoZW0uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0V4YW1w
bGU6IEhvdyB0byBzdGFydCB3cHRydW5uZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworVG8gdGVzdCBhIEZpcmVmb3ggTmlnaHRseSBidWlsZCBpbiBhbiBPUyBYIGVudmlyb25t
ZW50LCB5b3UgbWlnaHQgc3RhcnQKK3dwdHJ1bm5lciB1c2luZyBzb21ldGhpbmcgc2ltaWxhciB0
byB0aGUgZm9sbG93aW5nIGV4YW1wbGU6OgorCisgIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vd2Vi
LXBsYXRmb3JtLXRlc3RzLyAtLXRlc3RzPX4vd2ViLXBsYXRmb3JtLXRlc3RzLyBcCisgICAgLS1i
aW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwvb2JqLXg4Nl82NC1hcHBsZS1kYXJ3aW4xNC4zLjAvZGlz
dC9OaWdodGx5LmFwcC9Db250ZW50cy9NYWNPUy9maXJlZm94IFwKKyAgICAtLWNlcnR1dGlsLWJp
bmFyeT1+L21vemlsbGEtY2VudHJhbC9vYmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9zZWN1
cml0eS9uc3MvY21kL2NlcnR1dGlsL2NlcnR1dGlsIFwKKyAgICAtLXByZWZzLXJvb3Q9fi9tb3pp
bGxhLWNlbnRyYWwvdGVzdGluZy9wcm9maWxlcworCitBbmQgdG8gdGVzdCBhIENocm9taXVtIGJ1
aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAord3B0cnVubmVyIHVz
aW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6CisKKyAgd3B0
cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9fi93ZWItcGxh
dGZvcm0tdGVzdHMvIFwKKyAgICAtLWJpbmFyeT1+L2Nocm9taXVtL3NyYy9vdXQvUmVsZWFzZS9D
aHJvbWl1bS5hcHAvQ29udGVudHMvTWFjT1MvQ2hyb21pdW0gXAorICAgIC0td2ViZHJpdmVyLWJp
bmFyeT0vdXNyL2xvY2FsL2Jpbi9jaHJvbWVkcml2ZXIgLS1wcm9kdWN0PWNocm9tZQorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFeGFtcGxlOiBIb3cgdG8gcnVuIGEg
c3Vic2V0IG9mIHRlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1RvIHJlc3RyaWN0IGEgdGVzdCBydW4ganVzdCB0byB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgd2Vi
LXBsYXRmb3JtLXRlc3RzCitzdWJkaXJlY3RvcnksIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSBuYW1l
IGluIHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhZnRlcgordGhlIG9wdGlvbnM7IGZvciBleGFt
cGxlLCBydW4ganVzdCB0aGUgdGVzdHMgaW4gdGhlIGBkb21gIHN1YmRpcmVjdG9yeTo6CisKKyAg
d3B0cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9fi93ZWIt
cGxhdGZvcm0tdGVzdHMvIFwKKyAgICAtLWJpbmFyeT0vcGF0aC90by9maXJlZm94IC0tY2VydHV0
aWwtYmluYXJ5PS9wYXRoL3RvL2NlcnR1dGlsIFwKKyAgICAtLXByZWZzLXJvb3Q9L3BhdGgvdG8v
dGVzdGluZy9wcm9maWxlcyBcCisgICAgZG9tCisKK091dHB1dAorfn5+fn5+CisKK0J5IGRlZmF1
bHQgd3B0cnVubmVyIGp1c3QgZHVtcHMgaXRzIGVudGlyZSBvdXRwdXQgYXMgcmF3IEpTT04gbWVz
c2FnZXMKK3RvIHN0ZG91dC4gVGhpcyBpcyBjb252ZW5pZW50IGZvciBwaXBpbmcgaW50byBvdGhl
ciB0b29scywgYnV0IG5vdCBpZGVhbAorZm9yIGh1bWFucyByZWFkaW5nIHRoZSBvdXRwdXQuCisK
K0FzIGFuIGFsdGVybmF0aXZlLCB5b3UgY2FuIHVzZSB0aGUgYGAtLWxvZy1tYWNoYGAgb3B0aW9u
LCB3aGljaCBwcm92aWRlcworb3V0cHV0IGluIGEgcmVhc29uYWJsZSBmb3JtYXQgZm9yIGh1bWFu
cy4gVGhlIG9wdGlvbiByZXF1aXJlcyBhIHZhbHVlOgorZWl0aGVyIHRoZSBwYXRoIGZvciBhIGZp
bGUgdG8gd3JpdGUgdGhlIGBtYWNoYC1mb3JtYXR0ZWQgb3V0cHV0IHRvLCBvcgorImAtYCIgKGEg
aHlwaGVuKSB0byB3cml0ZSB0aGUgYG1hY2hgLWZvcm1hdHRlZCBvdXRwdXQgdG8gc3Rkb3V0Lgor
CitXaGVuIHVzaW5nIGBgLS1sb2ctbWFjaGBgLCBvdXRwdXQgb2YgdGhlIGZ1bGwgcmF3IEpTT04g
bG9nIGlzIHN0aWxsCithdmFpbGFibGUsIGZyb20gdGhlIGBgLS1sb2ctcmF3YGAgb3B0aW9uLiBT
byB0byBvdXRwdXQgdGhlIGZ1bGwgcmF3IEpTT04KK2xvZyB0byBhIGZpbGUgYW5kIGEgaHVtYW4t
cmVhZGFibGUgc3VtbWFyeSB0byBzdGRvdXQsIHlvdSBtaWdodCBzdGFydAord3B0cnVubmVyIHVz
aW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6CisKKyAgd3B0
cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9fi93ZWItcGxh
dGZvcm0tdGVzdHMvIFwKKyAgICAtLWJpbmFyeT0vcGF0aC90by9maXJlZm94IC0tY2VydHV0aWwt
YmluYXJ5PS9wYXRoL3RvL2NlcnR1dGlsIFwKKyAgICAtLXByZWZzLXJvb3Q9L3BhdGgvdG8vdGVz
dGluZy9wcm9maWxlcyBcCisgICAgLS1sb2ctcmF3PW91dHB1dC5sb2cgLS1sb2ctbWFjaD0tCisK
K0V4cGVjdGF0aW9uIERhdGEKK35+fn5+fn5+fn5+fn5+fn4KKword3B0cnVubmVyIGlzIGRlc2ln
bmVkIHRvIGJlIHVzZWQgaW4gYW4gZW52aXJvbm1lbnQgd2hlcmUgaXQgaXMgbm90CitqdXN0IG5l
Y2Vzc2FyeSB0byBrbm93IHdoaWNoIHRlc3RzIHBhc3NlZCwgYnV0IHRvIGNvbXBhcmUgdGhlIHJl
c3VsdHMKK2JldHdlZW4gcnVucy4gRm9yIHRoaXMgcmVhc29uIGl0IGlzIHBvc3NpYmxlIHRvIHN0
b3JlIHRoZSByZXN1bHRzIG9mIGEKK3ByZXZpb3VzIHJ1biBpbiBhIHNldCBvZiBpbmktbGlrZSAi
ZXhwZWN0YXRpb24gZmlsZXMiLiBUaGlzIGZvcm1hdCBpcworZG9jdW1lbnRlZCBiZWxvdy4gVG8g
Z2VuZXJhdGUgdGhlIGV4cGVjdGF0aW9uIGZpbGVzIHVzZSBgd3B0cnVubmVyYCB3aXRoCit0aGUg
YC0tbG9nLXJhdz0vcGF0aC90by9sb2cvZmlsZWAgb3B0aW9uLiBUaGlzIGNhbiB0aGVuIGJlIHVz
ZWQgYXMKK2lucHV0IHRvIHRoZSBgd3B0dXBkYXRlYCB0b29sLgorCitFeHBlY3RhdGlvbiBGaWxl
IEZvcm1hdAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworTWV0YWRhdGEgYWJvdXQgdGVzdHMs
IG5vdGFibHkgaW5jbHVkaW5nIHRoZWlyIGV4cGVjdGVkIHJlc3VsdHMsIGlzCitzdG9yZWQgaW4g
YSBtb2RpZmllZCBpbmktbGlrZSBmb3JtYXQgdGhhdCBpcyBkZXNpZ25lZCB0byBiZSBodW1hbgor
ZWRpdGFibGUsIGJ1dCBhbHNvIHRvIGJlIG1hY2hpbmUgdXBkYXRhYmxlLgorCitFYWNoIHRlc3Qg
ZmlsZSB0aGF0IHJlcXVpcmVzIG1ldGFkYXRhIHRvIGJlIHNwZWNpZmllZCAoYmVjYXVzZSBpdCBo
YXMKK2Egbm9uLWRlZmF1bHQgZXhwZWN0YXRpb24gb3IgYmVjYXVzZSBpdCBpcyBkaXNhYmxlZCwg
Zm9yIGV4YW1wbGUpIGhhcworYSBjb3JyZXNwb25kaW5nIGV4cGVjdGF0aW9uIGZpbGUgaW4gdGhl
IGBtZXRhZGF0YWAgZGlyZWN0b3J5LiBGb3IKK2V4YW1wbGUgYSB0ZXN0IGZpbGUgYGh0bWwvdGVz
dDEuaHRtbGAgY29udGFpbmluZyBhIGZhaWxpbmcgdGVzdCB3b3VsZAoraGF2ZSBhbiBleHBlY3Rh
dGlvbiBmaWxlIGNhbGxlZCBgaHRtbC90ZXN0MS5odG1sLmluaWAgaW4gdGhlCitgbWV0YWRhdGFg
IGRpcmVjdG9yeS4KKworQW4gZXhhbXBsZSBvZiBhbiBleHBlY3RhdGlvbiBmaWxlIGlzOjoKKwor
ICBleGFtcGxlX2RlZmF1bHRfa2V5OiBleGFtcGxlX3ZhbHVlCisKKyAgW2ZpbGVuYW1lLmh0bWxd
CisgICAgW3N1YnRlc3QxXQorICAgICAgZXhwZWN0ZWQ6IEZBSUwKKworICAgIFtzdWJ0ZXN0Ml0K
KyAgICAgIGV4cGVjdGVkOgorICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnd2luJzogVElNRU9VVAor
ICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnb3N4JzogRVJST1IKKyAgICAgICAgRkFJTAorCisgIFtm
aWxlbmFtZS5odG1sP3F1ZXJ5PXNvbWV0aGluZ10KKyAgICBkaXNhYmxlZDogYnVnMTIzNDUKKwor
VGhlIGZpbGUgY29uc2lzdHMgb2YgdHdvIGVsZW1lbnRzLCBrZXktdmFsdWUgcGFpcnMgYW5kCitz
ZWN0aW9ucy4KKworU2VjdGlvbnMgYXJlIGRlbGltaXRlZCBieSBoZWFkaW5ncyBlbmNsb3NlZCBp
biBzcXVhcmUgYnJhY2tldHMuIEFueQorY2xvc2luZyBzcXVhcmUgYnJhY2tldCBpbiB0aGUgaGVh
ZGluZyBpdHNlbGYgbXkgYmUgZXNjYXBlZCB3aXRoIGEKK2JhY2tzbGFzaC4gRWFjaCBzZWN0aW9u
IG1heSB0aGVuIGNvbnRhaW4gYW55IG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMKK2ZvbGxvd2Vk
IGJ5IGFueSBudW1iZXIgb2Ygc3Vic2VjdGlvbnMuIFNvIHRoYXQgaXQgaXMgY2xlYXIgd2hpY2gg
ZGF0YQorYmVsb25ncyB0byBlYWNoIHNlY3Rpb24gd2l0aG91dCB0aGUgdXNlIG9mIGVuZC1zZWN0
aW9uIG1hcmtlcnMsIHRoZQorZGF0YSBmb3IgZWFjaCBzZWN0aW9uIChpLmUuIHRoZSBrZXktdmFs
dWUgcGFpcnMgYW5kIHN1YnNlY3Rpb25zKSBtdXN0CitiZSBpbmRlbnRlZCB1c2luZyBzcGFjZXMu
IEluZGVudGF0aW9uIG5lZWQgb25seSBiZSBjb25zaXN0ZW50LCBidXQKK3VzaW5nIHR3byBzcGFj
ZXMgcGVyIGxldmVsIGlzIHJlY29tbWVuZGVkLgorCitJbiBhIHRlc3QgZXhwZWN0YXRpb24gZmls
ZSwgZWFjaCByZXNvdXJjZSBwcm92aWRlZCBieSB0aGUgZmlsZSBoYXMgYQorc2luZ2xlIHNlY3Rp
b24sIHdpdGggdGhlIHNlY3Rpb24gaGVhZGluZyBiZWluZyB0aGUgcGFydCBhZnRlciB0aGUgbGFz
dAorYC9gIGluIHRoZSB0ZXN0IHVybC4gVGVzdHMgdGhhdCBoYXZlIHN1YnNlY3Rpb25zIG1heSBo
YXZlIHN1YnNlY3Rpb25zCitmb3IgdGhvc2Ugc3VidGVzdHMgaW4gd2hpY2ggdGhlIGhlYWRpbmcg
aXMgdGhlIG5hbWUgb2YgdGhlIHN1YnRlc3QuCisKK1NpbXBsZSBrZXktdmFsdWUgcGFpcnMgYXJl
IG9mIHRoZSBmb3JtOjoKKworICBrZXk6IHZhbHVlCisKK05vdGUgdGhhdCB1bmxpa2UgaW5pIGZp
bGVzLCBvbmx5IGA6YCBpcyBhIHZhbGlkIHNlcGFyYXRvcjsgYD1gIHdpbGwKK25vdCB3b3JrIGFz
IGV4cGVjdGVkLiBLZXktdmFsdWUgcGFpcnMgbWF5IGFsc28gaGF2ZSBjb25kaXRpb25hbAordmFs
dWVzIG9mIHRoZSBmb3JtOjoKKworICBrZXk6CisgICAgaWYgY29uZGl0aW9uMTogdmFsdWUxCisg
ICAgaWYgY29uZGl0aW9uMjogdmFsdWUyCisgICAgZGVmYXVsdAorCitJbiB0aGlzIGNhc2UgZWFj
aCBjb25kaXRpb25hbCBpcyBldmFsdWF0ZWQgaW4gdHVybiBhbmQgdGhlIHZhbHVlIGlzCit0aGF0
IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIGZpcnN0IG1hdGNoaW5nIGNvbmRpdGlvbmFs
LiBJbiB0aGUKK2Nhc2UgdGhhdCBubyBjb25kaXRpb24gbWF0Y2hlcywgdGhlIHVuY29uZGl0aW9u
YWwgZGVmYXVsdCBpcyB1c2VkLiBJZgorbm8gY29uZGl0aW9uIG1hdGNoZXMgYW5kIG5vIGRlZmF1
bHQgaXMgcHJvdmlkZWQgaXQgaXMgZXF1aXZhbGVudCB0bwordGhlIGtleSBub3QgYmVpbmcgcHJl
c2VudC4gQ29uZGl0aW9uYWxzIHVzZSBhIHNpbXBsZSBweXRob24tbGlrZSBleHByZXNzaW9uCits
YW5ndWFnZSBlLmcuOjoKKworICBpZiBkZWJ1ZyBhbmQgKHBsYXRmb3JtID09ICJsaW51eCIgb3Ig
cGxhdGZvcm0gPT0gIm9zeCIpOiBGQUlMCisKK0ZvciB0ZXN0IGV4cGVjdGF0aW9ucyB0aGUgYXZh
aWxhYmxlIHZhcmlhYmxlcyBhcmUgdGhvc2UgaW4gdGhlCitgcnVuX2luZm9gIHdoaWNoIGZvciBk
ZXNrdG9wIGFyZSBgdmVyc2lvbmAsIGBvc2AsIGBiaXRzYCwgYHByb2Nlc3NvcmAsCitgZGVidWdg
IGFuZCBgcHJvZHVjdGAuCisKK0tleS12YWx1ZSBwYWlycyBzcGVjaWZpZWQgYXQgdGhlIHRvcCBs
ZXZlbCBvZiB0aGUgZmlsZSBiZWZvcmUgYW55CitzZWN0aW9ucyBhcmUgc3BlY2lhbCBhcyB0aGV5
IHByb3ZpZGUgZGVmYXVsdHMgZm9yIHRoZSByZXN0IG9mIHRoZSBmaWxlCitlLmcuOjoKKworICBr
ZXkxOiB2YWx1ZTEKKworICBbc2VjdGlvbiAxXQorICAgIGtleTI6IHZhbHVlMgorCisgIFtzZWN0
aW9uIDJdCisgICAga2V5MTogdmFsdWUzCisKK0luIHRoaXMgY2FzZSwgaW5zaWRlIHNlY3Rpb24g
MSwgYGtleTFgIHdvdWxkIGhhdmUgdGhlIHZhbHVlIGB2YWx1ZTFgCithbmQgYGtleTJgIHRoZSB2
YWx1ZSBgdmFsdWUyYCB3aGVyZWFzIGluIHNlY3Rpb24gMiBga2V5MWAgd291bGQgaGF2ZQordGhl
IHZhbHVlIGB2YWx1ZTNgIGFuZCBga2V5MmAgd291bGQgYmUgdW5kZWZpbmVkLgorCitUaGUgd2Vi
LXBsYXRmb3JtLXRlc3QgaGFybmVzcyBrbm93cyBhYm91dCBzZXZlcmFsIGtleXM6CisKK2BleHBl
Y3RlZGAKKyAgTXVzdCBldmFsdWF0ZSB0byBhIHBvc3NpYmxlIHRlc3Qgc3RhdHVzIGluZGljYXRp
bmcgdGhlIGV4cGVjdGVkCisgIHJlc3VsdCBvZiB0aGUgdGVzdC4gVGhlIGltcGxpY2l0IGRlZmF1
bHQgaXMgUEFTUyBvciBPSyB3aGVuIHRoZQorICBmaWVsZCBpc24ndCBwcmVzZW50LgorCitgZGlz
YWJsZWRgCisgIEFueSB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdGVzdCBpcyBkaXNhYmxlZC4K
KworYHJlZnR5cGVgCisgIFRoZSB0eXBlIG9mIGNvbXBhcmlzb24gZm9yIHJlZnRlc3RzOyBlaXRo
ZXIgYD09YCBvciBgIT1gLgorCitgcmVmdXJsYAorICBUaGUgcmVmZXJlbmNlIHVybCBmb3IgcmVm
dGVzdHMuCisKKy4uIF9gd2ViLXBsYXRmb3JtLXRlc3RzIHRlc3RzdWl0ZWA6IGh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL01ha2Vm
aWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvZG9jcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDJiNmM1ZTdjNGYyNjcwMzFiZDM5
MDEzYzM4ODRhYjU4NTMzOGY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZQpA
QCAtMCwwICsxLDE3NyBAQAorIyBNYWtlZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRpb24KKyMK
KworIyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgor
U1BISU5YT1BUUyAgICA9CitTUEhJTlhCVUlMRCAgID0gc3BoaW54LWJ1aWxkCitQQVBFUiAgICAg
ICAgID0KK0JVSUxERElSICAgICAgPSBfYnVpbGQKKworIyBVc2VyLWZyaWVuZGx5IGNoZWNrIGZv
ciBzcGhpbngtYnVpbGQKK2lmZXEgKCQoc2hlbGwgd2hpY2ggJChTUEhJTlhCVUlMRCkgPi9kZXYv
bnVsbCAyPiYxOyBlY2hvICQkPyksIDEpCiskKGVycm9yIFRoZSAnJChTUEhJTlhCVUlMRCknIGNv
bW1hbmQgd2FzIG5vdCBmb3VuZC4gTWFrZSBzdXJlIHlvdSBoYXZlIFNwaGlueCBpbnN0YWxsZWQs
IHRoZW4gc2V0IHRoZSBTUEhJTlhCVUlMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwb2ludCB0
byB0aGUgZnVsbCBwYXRoIG9mIHRoZSAnJChTUEhJTlhCVUlMRCknIGV4ZWN1dGFibGUuIEFsdGVy
bmF0aXZlbHkgeW91IGNhbiBhZGQgdGhlIGRpcmVjdG9yeSB3aXRoIHRoZSBleGVjdXRhYmxlIHRv
IHlvdXIgUEFUSC4gSWYgeW91IGRvbid0IGhhdmUgU3BoaW54IGluc3RhbGxlZCwgZ3JhYiBpdCBm
cm9tIGh0dHA6Ly9zcGhpbngtZG9jLm9yZy8pCitlbmRpZgorCisjIEludGVybmFsIHZhcmlhYmxl
cy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQKK1BBUEVST1BUX2xl
dHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhPUFRTICAgPSAtZCAk
KEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElOWE9QVFMpIC4K
KyMgdGhlIGkxOG4gYnVpbGRlciBjYW5ub3Qgc2hhcmUgdGhlIGVudmlyb25tZW50IGFuZCBkb2N0
cmVlcyB3aXRoIHRoZSBvdGhlcnMKK0kxOE5TUEhJTlhPUFRTICA9ICQoUEFQRVJPUFRfJChQQVBF
UikpICQoU1BISU5YT1BUUykgLgorCisuUEhPTlk6IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNp
bmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBs
YXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0IGdldHRleHQKKworaGVs
cDoKKwlAZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRhcmdldD4nIHdoZXJlIDx0YXJnZXQ+IGlz
IG9uZSBvZiIKKwlAZWNobyAiICBodG1sICAgICAgIHRvIG1ha2Ugc3RhbmRhbG9uZSBIVE1MIGZp
bGVzIgorCUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1MIGZpbGVzIG5hbWVkIGluZGV4
Lmh0bWwgaW4gZGlyZWN0b3JpZXMiCisJQGVjaG8gIiAgc2luZ2xlaHRtbCB0byBtYWtlIGEgc2lu
Z2xlIGxhcmdlIEhUTUwgZmlsZSIKKwlAZWNobyAiICBwaWNrbGUgICAgIHRvIG1ha2UgcGlja2xl
IGZpbGVzIgorCUBlY2hvICIgIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZpbGVzIgorCUBlY2hv
ICIgIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIEhUTUwgaGVscCBwcm9qZWN0
IgorCUBlY2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIHF0aGVscCBw
cm9qZWN0IgorCUBlY2hvICIgIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIERl
dmhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBlcHViICAgICAgIHRvIG1ha2UgYW4gZXB1YiIKKwlA
ZWNobyAiICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmlsZXMsIHlvdSBjYW4gc2V0IFBBUEVS
PWE0IG9yIFBBUEVSPWxldHRlciIKKwlAZWNobyAiICBsYXRleHBkZiAgIHRvIG1ha2UgTGFUZVgg
ZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgiCisJQGVjaG8gIiAgbGF0ZXhwZGZq
YSB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBsYXRleC9kdmlwZGZt
eCIKKwlAZWNobyAiICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBmaWxlcyIKKwlAZWNobyAiICBt
YW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBhZ2VzIgorCUBlY2hvICIgIHRleGluZm8gICAgdG8g
bWFrZSBUZXhpbmZvIGZpbGVzIgorCUBlY2hvICIgIGluZm8gICAgICAgdG8gbWFrZSBUZXhpbmZv
IGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIG1ha2VpbmZvIgorCUBlY2hvICIgIGdldHRleHQg
ICAgdG8gbWFrZSBQTyBtZXNzYWdlIGNhdGFsb2dzIgorCUBlY2hvICIgIGNoYW5nZXMgICAgdG8g
bWFrZSBhbiBvdmVydmlldyBvZiBhbGwgY2hhbmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zIgor
CUBlY2hvICIgIHhtbCAgICAgICAgdG8gbWFrZSBEb2N1dGlscy1uYXRpdmUgWE1MIGZpbGVzIgor
CUBlY2hvICIgIHBzZXVkb3htbCAgdG8gbWFrZSBwc2V1ZG94bWwtWE1MIGZpbGVzIGZvciBkaXNw
bGF5IHB1cnBvc2VzIgorCUBlY2hvICIgIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFs
IGxpbmtzIGZvciBpbnRlZ3JpdHkiCisJQGVjaG8gIiAgZG9jdGVzdCAgICB0byBydW4gYWxsIGRv
Y3Rlc3RzIGVtYmVkZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChpZiBlbmFibGVkKSIKKworY2xl
YW46CisJcm0gLXJmICQoQlVJTERESVIpLyoKKworaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBo
dG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1
aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvaHRtbC4iCisK
K2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQo
QlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhU
TUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQo
U1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9z
aW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2Ug
aXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxE
KSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNrbGUKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZp
bGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvanNvbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91
IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKKworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlM
RCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1saGVscAorCUBl
Y2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdv
cmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAgIi5oaHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERE
SVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIg
XAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtl
IHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVs
cC93cHRydW5uZXIucWhjcCIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNo
byAiIyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC93cHRydW5u
ZXIucWhjIgorCitkZXZoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGRldmhlbHAgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS9kZXZoZWxwCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNo
ZWQuIgorCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIG1rZGlyIC1w
ICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC93cHRydW5uZXIiCisJQGVjaG8gIiMgbG4gLXMg
JChCVUlMRERJUikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvd3B0cnVubmVy
IgorCUBlY2hvICIjIGRldmhlbHAiCisKK2VwdWI6CisJJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2VwdWIKKwlAZWNobworCUBlY2hvICJCdWlsZCBm
aW5pc2hlZC4gVGhlIGVwdWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKKworbGF0ZXg6
CisJJChTUEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9s
YXRleAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJl
IGluICQoQlVJTERESVIpL2xhdGV4LiIKKwlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJl
Y3RvcnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAorCSAgICAgICIodXNlIFxg
bWFrZSBsYXRleHBkZicgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKworbGF0ZXhw
ZGY6CisJJChTUEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS9sYXRleAorCUBlY2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4i
CisJJChNQUtFKSAtQyAkKEJVSUxERElSKS9sYXRleCBhbGwtcGRmCisJQGVjaG8gInBkZmxhdGV4
IGZpbmlzaGVkOyB0aGUgUERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisKK2xh
dGV4cGRmamE6CisJJChTUEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJV
SUxERElSKS9sYXRleAorCUBlY2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGxhdGV4
IGFuZCBkdmlwZGZteC4uLiIKKwkkKE1BS0UpIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYt
amEKKwlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJ
TERESVIpL2xhdGV4LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
LiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCisKK21hbjoKKwkkKFNQ
SElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KKwlAZWNo
bworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChCVUlM
RERJUikvbWFuLiIKKwordGV4aW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCisJ
QGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdo
IG1ha2VpbmZvIiBcCisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8gdGhhdCBh
dXRvbWF0aWNhbGx5KS4iCisKK2luZm86CisJJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5mbyAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVubmluZyBUZXhpbmZv
IGZpbGVzIHRocm91Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxERElSKS90ZXhpbmZv
IGluZm8KKwlAZWNobyAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZpbGVzIGFyZSBpbiAk
KEJVSUxERElSKS90ZXhpbmZvLiIKKworZ2V0dGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiBnZXR0
ZXh0ICQoSTE4TlNQSElOWE9QVFMpICQoQlVJTERESVIpL2xvY2FsZQorCUBlY2hvCisJQGVjaG8g
IkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJChCVUlMRERJUikv
bG9jYWxlLiIKKworY2hhbmdlczoKKwkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcworCUBlY2hvCisJQGVjaG8gIlRoZSBvdmVydmll
dyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgorCitsaW5rY2hlY2s6CisJJChTUEhJ
TlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlua2No
ZWNrCisJQGVjaG8KKwlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVy
cm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAorCSAgICAgICJvciBpbiAkKEJVSUxERElSKS9s
aW5rY2hlY2svb3V0cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJJChTUEhJTlhCVUlMRCkgLWIgZG9j
dGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKKwlAZWNobyAiVGVzdGlu
ZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCisJ
ICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKKworeG1s
OgorCSQoU1BISU5YQlVJTEQpIC1iIHhtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3ht
bAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgWE1MIGZpbGVzIGFyZSBpbiAk
KEJVSUxERElSKS94bWwuIgorCitwc2V1ZG94bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgcHNldWRv
eG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcHNldWRveG1sCisJQGVjaG8KKwlAZWNo
byAiQnVpbGQgZmluaXNoZWQuIFRoZSBwc2V1ZG8tWE1MIGZpbGVzIGFyZSBpbiAkKEJVSUxERElS
KS9wc2V1ZG94bWwuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9hcmNoaXRlY3R1cmUuc3ZnIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
ZG9jcy9hcmNoaXRlY3R1cmUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZDVhYTIxYzE5YTcwYWY4MjAyMmE0
MzhmNGY2MzcyMzQ5NmQzNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2FyY2hpdGVjdHVy
ZS5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNzgw
cHgiIGhlaWdodD0iMTA4N3B4IiB2ZXJzaW9uPSIxLjEiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4
MT0iMCUiIHkxPSIwJSIgeDI9IjAlIiB5Mj0iMTAwJSIgaWQ9Im14LWdyYWRpZW50LWE5YzRlYi0x
LWE5YzRlYi0xLXMtMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3R5bGU9InN0b3AtY29sb3I6I0E5QzRF
QiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3R5bGU9InN0b3AtY29sb3I6I0E5QzRFQiIvPjwvbGlu
ZWFyR3JhZGllbnQ+PC9kZWZzPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNSwwLjUpIj48cmVj
dCB4PSI0OTgiIHk9IjQ5OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0iI2U2ZDBkZSIg
c3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0idHJh
bnNsYXRlKDUwMCw1MjEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJh
bGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cu
dzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9u
dC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDAp
OyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3
aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5UZXN0UnVubmVyPC9kaXY+
PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1h
bmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5b
Tm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIzMzgi
IHk9Ijc3OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0iI2YxOWM5OSIgc3Ryb2tlPSIj
MDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0
MCw4MDEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRo
PSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RS
L1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAx
MnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhl
aWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFj
ZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5Qcm9kdWN0IHVuZGVyIHRlc3Q8L2Rpdj48
L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFu
Y2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltO
b3Qgc3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjMzOCIg
eT0iMzg4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9IiMw
MDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQw
LDQxMSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9
IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIv
U1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEy
cHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVp
Z2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNl
OiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPlRlc3RSdW5uZXJNYW5hZ2VyPC9kaXY+PC9m
b3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNo
b3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90
IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIzMzgiIHk9
IjIyOCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0iI2U2ZDBkZSIgc3Ryb2tlPSIjMDAw
MDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0MCwy
NTEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIx
MTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NW
RzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4
OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdo
dDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFjZTog
bm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5NYW5hZ2VyR3JvdXA8L2Rpdj48L2ZvcmVpZ25P
YmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlk
ZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9y
dGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjY1OCIgeT0iNjA4IiB3
aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZmZjZTlmIiBzdHJva2U9IiMwMDAwMDAiIHBv
aW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjYwLDYzMSkiPjxz
d2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9IjExNiIgaGVp
Z2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVh
dHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQt
ZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2
OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7
IHRleHQtYWxpZ246IGNlbnRlcjsiPkV4ZWN1dG9yPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0
IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1z
aXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3
ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIzMzgiIHk9IjQ5OCIgd2lkdGg9IjEyMCIg
aGVpZ2h0PSI2MCIgZmlsbD0idXJsKCNteC1ncmFkaWVudC1hOWM0ZWItMS1hOWM0ZWItMS1zLTAp
IiBzdHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0
cmFuc2xhdGUoMzQwLDUyMSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9
ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBm
b250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwg
MCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7
IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPkJyb3dzZXI8L2Rpdj48
L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFu
Y2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltO
b3Qgc3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gMzk4
IDI4OCBMIDM5OCAzODIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVy
bGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzk4IDM4NyBMIDM5
NSAzODAgTCAzOTggMzgyIEwgNDAyIDM4MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAw
MDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBk
PSJNIDM5OCA0NDggTCAzOTggNDkyIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9r
ZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDM5OCA0
OTcgTCAzOTUgNDkwIEwgMzk4IDQ5MiBMIDQwMiA0OTAgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tl
PSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+
PHBhdGggZD0iTSA2MTggNTI4IEwgNjg0IDYwMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAw
IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGggZD0i
TSA2ODcgNjA3IEwgNjgwIDYwNCBMIDY4NCA2MDMgTCA2ODUgNjAwIFoiIGZpbGw9IiMwMDAwMDAi
IHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0i
bm9uZSIvPjxyZWN0IHg9IjQ5OCIgeT0iNjA4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxs
PSIjYTljNGViIiBzdHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJh
bnNmb3JtPSJ0cmFuc2xhdGUoNTAwLDYzMSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRl
ci1ldmVudHM9ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0i
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5l
LWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiBy
Z2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0
aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPkV4ZWN1
dG9yQnJvd3NlcjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZpbGw9
IiMwMDAwMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1mYW1p
bHk9IkhlbHZldGljYSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRjaD48
L2c+PHBhdGggZD0iTSA2MjQgNjM4IEwgNjU4IDYzOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAw
MDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGgg
ZD0iTSA2MTkgNjM4IEwgNjI2IDYzNSBMIDYyNCA2MzggTCA2MjYgNjQyIFoiIGZpbGw9IiMwMDAw
MDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50
cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNDI4IDQ0OCBMIDU1MiA0OTYiIGZpbGw9Im5vbmUiIHN0cm9r
ZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIzIDMi
IHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGggZD0iTSA1NTcgNDk4IEwgNTQ5IDQ5OCBMIDU1
MiA0OTYgTCA1NTIgNDkyIFoiIGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tl
LW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzk4IDU1
OCBMIDM5OCA3NzIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGlt
aXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIzIDMiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBh
dGggZD0iTSAzOTggNzc3IEwgMzk1IDc3MCBMIDM5OCA3NzIgTCA0MDIgNzcwIFoiIGZpbGw9IiMw
MDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2
ZW50cz0ibm9uZSIvPjxyZWN0IHg9IjMzOCIgeT0iNDgiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjAi
IGZpbGw9IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48
ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNDAsNzEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBv
aW50ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVy
ZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRp
diB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlu
bGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xv
cjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsg
d2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5y
dW5fdGVzdHM8L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIj
MDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5
PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9n
PjxwYXRoIGQ9Ik0gNDU4IDc4IEwgNjUyIDc4IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAi
IHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJN
IDY1NyA3OCBMIDY1MCA4MiBMIDY1MiA3OCBMIDY1MCA3NSBaIiBmaWxsPSIjMDAwMDAwIiBzdHJv
a2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUi
Lz48cmVjdCB4PSI2NTgiIHk9IjQ4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZTZk
MGRlIiBzdHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoNjYwLDcxKSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBwb2ludGVyLWV2ZW50
cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAw
LCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMTZw
eDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjogY2VudGVyOyI+VGVzdExvYWRlcjwv
ZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZpbGw9IiMwMDAwMDAiIHRl
eHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1mYW1pbHk9IkhlbHZldGlj
YSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0i
NzEiIHk9IjQ4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9
IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUo
NzMsNzEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRo
PSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RS
L1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAx
MnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhl
aWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFj
ZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5UZXN0RW52aXJvbm1lbnQ8L2Rpdj48L2Zv
cmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hv
cj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qg
c3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjE1MSIgeT0i
NjE4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjYjllMGE1IiBzdHJva2U9IiMwMDAw
MDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUzLDY0
MSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9IjEx
NiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7
IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0
OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBu
b3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPndwdHNlcnZlPC9kaXY+PC9mb3JlaWduT2JqZWN0
Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIg
Zm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBi
eSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cmVjdCB4PSIxIiB5PSI2MTgiIHdpZHRoPSIx
MjAiIGhlaWdodD0iNjAiIGZpbGw9IiNiOWUwYTUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1l
dmVudHM9Im5vbmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLDY0MSkiPjxzd2l0Y2g+PGZv
cmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIg
cmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRl
bnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBI
ZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxp
Z246IGNlbnRlcjsiPnB5d2Vic29ja2V0PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4
IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIx
MnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90
ZXh0Pjwvc3dpdGNoPjwvZz48cGF0aCBkPSJNIDMzOCA3OCBMIDE5NyA3OCIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJu
b25lIi8+PHBhdGggZD0iTSAxOTIgNzggTCAxOTkgNzUgTCAxOTcgNzggTCAxOTkgODIgWiIgZmls
bD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50
ZXItZXZlbnRzPSJub25lIi8+PHBhdGggZD0iTSAxMDEgMzA4IEwgNjIgNjEyIiBmaWxsPSJub25l
IiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJh
eT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNjEgNjE3IEwgNTkgNjEw
IEwgNjIgNjEyIEwgNjYgNjEwIFoiIGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ry
b2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMTYx
IDMwOCBMIDIwNCA2MTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVy
bGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIzIDMiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+
PHBhdGggZD0iTSAyMDQgNjE3IEwgMjAwIDYxMCBMIDIwNCA2MTIgTCAyMDcgNjA5IFoiIGZpbGw9
IiMwMDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVy
LWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzM4IDgyMyBMIDYxIDY3OCIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9
IjMgMyIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDIxMSA2NzggTCAzMzggNzkz
IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ry
b2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzk4
IDEwOCBMIDM5OCAyMjIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVy
bGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzk4IDIyNyBMIDM5
NSAyMjAgTCAzOTggMjIyIEwgNDAyIDIyMCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAw
MDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBk
PSJNIDcwNiAyODggTCA2MTggNTEzIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9r
ZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50cz0i
bm9uZSIvPjxyZWN0IHg9IjY1OCIgeT0iMzg4IiB3aWR0aD0iNzAiIGhlaWdodD0iNDAiIGZpbGw9
Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAw
MDAwIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNp
emU9IjEycHgiPjx0ZXh0IHg9IjY5MyIgeT0iNDEyIj5RdWV1ZS5nZXQ8L3RleHQ+PC9nPjxwYXRo
IGQ9Ik0gNDU4IDgwOCBMIDcxOCA2NjgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ry
b2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIzIDMiIHBvaW50ZXItZXZlbnRz
PSJub25lIi8+PHJlY3QgeD0iNzEiIHk9IjI0OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmls
bD0iI2I5ZTBhNSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDczLDI3MSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRl
ci1ldmVudHM9ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0i
aHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5l
LWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiBy
Z2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0
aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPnNlcnZl
LnB5PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAw
MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVs
dmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cGF0
aCBkPSJNIDEzMSAxMDggTCAxMzEgMjQyIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0
cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50
cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMTMxIDI0NyBMIDEyOCAyNDAgTCAxMzEgMjQyIEwgMTM1IDI0
MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIx
MCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDg4IDk3MyBMIDEzMiA5NzMiIGZp
bGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVy
LWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMTM3IDk3MyBMIDEzMCA5NzcgTCAxMzIgOTczIEwg
MTMwIDk3MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxp
bWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSIxMzgiIHk9IjEwMTgiIHdp
ZHRoPSIxODAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1l
dmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiB0
ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0ZXh0IHg9IjIyOCIgeT0iMTAz
NyI+Q29tbXVuaWNhdGlvbiAoY3Jvc3MgcHJvY2Vzcyk8L3RleHQ+PC9nPjxwYXRoIGQ9Ik0gODgg
MTAwMiBMIDEzMiAxMDAyIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRl
cmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIv
PjxwYXRoIGQ9Ik0gMTM3IDEwMDIgTCAxMzAgMTAwNiBMIDEzMiAxMDAyIEwgMTMwIDk5OSBaIiBm
aWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9p
bnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSIxMzgiIHk9Ijk1OCIgd2lkdGg9IjE4MCIgaGVp
Z2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIv
PjxnIGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIHRleHQtYW5jaG9yPSJt
aWRkbGUiIGZvbnQtc2l6ZT0iMTJweCI+PHRleHQgeD0iMjI4IiB5PSI5NzciPk93bmVyc2hpcCAo
c2FtZSBwcm9jZXNzKTwvdGV4dD48L2c+PHBhdGggZD0iTSA4OCAxMDMzIEwgMTM4IDEwMzMiIGZp
bGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Ut
ZGFzaGFycmF5PSIzIDMiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0iMTQzIiB5PSI5
ODgiIHdpZHRoPSIxODAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIgcG9p
bnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iSGVsdmV0
aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0ZXh0IHg9IjIzMyIg
eT0iMTAwNyI+T3duZXJzaGlwIChjcm9zcyBwcm9jZXNzKTwvdGV4dD48L2c+PHJlY3QgeD0iNDI4
IiB5PSI5NjYiIHdpZHRoPSI1MCIgaGVpZ2h0PSIxNSIgZmlsbD0iI2U2ZDBkZSIgc3Ryb2tlPSIj
MDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxyZWN0IHg9IjQyOCIgeT0iOTkwIiB3aWR0
aD0iNTAiIGhlaWdodD0iMTUiIGZpbGw9IiNhOWM0ZWIiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRl
ci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI0MjgiIHk9IjEwMTUiIHdpZHRoPSI1MCIgaGVpZ2h0
PSIxNSIgZmlsbD0iI2ZmY2U5ZiIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9u
ZSIvPjxyZWN0IHg9IjQyOCIgeT0iMTA2MyIgd2lkdGg9IjUwIiBoZWlnaHQ9IjE1IiBmaWxsPSIj
ZjE5Yzk5IiBzdHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0i
NDI4IiB5PSIxMDM4IiB3aWR0aD0iNTAiIGhlaWdodD0iMTUiIGZpbGw9IiNiOWUwYTUiIHN0cm9r
ZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI0ODUiIHk9Ijk1OCIg
d2lkdGg9IjkwIiBoZWlnaHQ9IjMwIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXIt
ZXZlbnRzPSJub25lIi8+PGcgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIg
dGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSI1MzAiIHk9Ijk3
NyI+d3B0cnVubmVyIGNsYXNzPC90ZXh0PjwvZz48cmVjdCB4PSI0ODYiIHk9Ijk4MyIgd2lkdGg9
IjE1MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50
cz0ibm9uZSIvPjxnIGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIHRleHQt
YW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCI+PHRleHQgeD0iNTYxIiB5PSIxMDAyIj5Q
ZXItcHJvZHVjdCB3cHRydW5uZXIgY2xhc3M8L3RleHQ+PC9nPjxyZWN0IHg9IjQ4NiIgeT0iMTAw
OCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2lu
dGVyLWV2ZW50cz0ibm9uZSIvPjxnIGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJIZWx2ZXRp
Y2EiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCI+PHRleHQgeD0iNTYxIiB5
PSIxMDI3Ij5QZXItcHJvdG9jb2wgd3B0cnVubmVyIGNsYXNzPC90ZXh0PjwvZz48cmVjdCB4PSI0
OTEiIHk9IjEwMzEiIHdpZHRoPSIxNTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0i
bm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWls
eT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0ZXh0
IHg9IjU2NiIgeT0iMTA1MCI+V2ViLXBsYXRmb3JtLXRlc3RzIGNvbXBvbmVudDwvdGV4dD48L2c+
PHJlY3QgeD0iNDg2IiB5PSIxMDU1IiB3aWR0aD0iOTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUi
IHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBm
b250LWZhbWlseT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEy
cHgiPjx0ZXh0IHg9IjUzMSIgeT0iMTA3NCI+QnJvd3NlciBwcm9jZXNzPC90ZXh0PjwvZz48cGF0
aCBkPSJNIDM5OCA4IEwgMzk4IDQyIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9r
ZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDM5OCA0
NyBMIDM5NSA0MCBMIDM5OCA0MiBMIDQwMiA0MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMw
MDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVj
dCB4PSI0NzgiIHk9IjM4OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbC1vcGFjaXR5PSIw
LjUiIGZpbGw9IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuNSIg
cG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0ODAsNDExKSI+
PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBwb2ludGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBo
ZWlnaHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9m
ZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9u
dC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEu
MjY7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1h
bDsgdGV4dC1hbGlnbjogY2VudGVyOyI+VGVzdFJ1bm5lck1hbmFnZXI8L2Rpdj48L2ZvcmVpZ25P
YmplY3Q+PHRleHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlk
ZGxlIiBmb250LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9y
dGVkIGJ5IHZpZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gMzk4IDI4OCBMIDUz
MyAzODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEw
IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNTM3IDM4NyBMIDUyOSAzODYgTCA1
MzMgMzg0IEwgNTMzIDM4MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9r
ZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSIxOTgiIHk9
IjM4OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbC1vcGFjaXR5PSIwLjUiIGZpbGw9IiNl
NmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuNSIgcG9pbnRlci1ldmVu
dHM9Im5vbmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMDAsNDExKSI+PHN3aXRjaD48Zm9y
ZWlnbk9iamVjdCBwb2ludGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiBy
ZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVu
c2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhl
bHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2Fs
LWFsaWduOiB0b3A7IHdpZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGln
bjogY2VudGVyOyI+VGVzdFJ1bm5lck1hbmFnZXI8L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQg
eD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNp
emU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9ydGVkIGJ5IHZpZXdl
cl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gMzk4IDI4OCBMIDI2MyAzODQiIGZpbGw9
Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2
ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMjU5IDM4NyBMIDI2MyAzODAgTCAyNjMgMzg0IEwgMjY3
IDM4NiBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0
PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI1NzUiIHk9Ijc0OCIgd2lkdGg9
IjExMCIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50
cz0ibm9uZSIvPjxnIGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIHRleHQt
YW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCI+PHRleHQgeD0iNjMwIiB5PSI3NTgiPkJy
b3dzZXIgY29udHJvbDwvdGV4dD48dGV4dCB4PSI2MzAiIHk9Ijc3MiI+cHJvdG9jb2w8L3RleHQ+
PHRleHQgeD0iNjMwIiB5PSI3ODYiPihlLmcuIFdlYkRyaXZlcik8L3RleHQ+PC9nPjxyZWN0IHg9
IjI1OCIgeT0iNzA4IiB3aWR0aD0iODAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0i
bm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWls
eT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0ZXh0
IHg9IjI5OCIgeT0iNzMyIj5IVFRQPC90ZXh0PjwvZz48cmVjdCB4PSIxMTEiIHk9IjcyOCIgd2lk
dGg9IjgwIiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZl
bnRzPSJub25lIi8+PGcgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4
dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSIxNTEiIHk9Ijc1MiI+
d2Vic29ja2V0czwvdGV4dD48L2c+PHJlY3QgeD0iNjU4IiB5PSIyMjgiIHdpZHRoPSIxMjAiIGhl
aWdodD0iNjAiIGZpbGw9IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9
Im5vbmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2NjAsMjUxKSI+PHN3aXRjaD48Zm9yZWln
bk9iamVjdCBwb2ludGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1
aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2li
aWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZl
dGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFs
aWduOiB0b3A7IHdpZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjog
Y2VudGVyOyI+VGVzdHMgUXVldWU8L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9
IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgi
IGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+
PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gNzE4IDEwOCBMIDcxOCAyMjIiIGZpbGw9Im5vbmUiIHN0
cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9u
ZSIvPjxwYXRoIGQ9Ik0gNzE4IDIyNyBMIDcxNSAyMjAgTCA3MTggMjIyIEwgNzIyIDIyMCBaIiBm
aWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9p
bnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDQyOCA5NzAgTCA0MjggOTcwIiBmaWxsPSJu
b25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVu
dHM9Im5vbmUiLz48L2c+PC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9k
b2NzL2NvbmYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU4ZjMxM2U5NDZhYTkzZjlhNjZhOWYzMjJjNjQ2NjM5
MGRlYTEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29uZi5weQpAQCAtMCwwICsxLDI2
NyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMKKyMgd3B0cnVubmVyIGRvY3VtZW50YXRp
b24gYnVpbGQgY29uZmlndXJhdGlvbiBmaWxlLCBjcmVhdGVkIGJ5CisjIHNwaGlueC1xdWlja3N0
YXJ0IG9uIE1vbiBNYXkgMTkgMTg6MTQ6MjAgMjAxNC4KKyMKKyMgVGhpcyBmaWxlIGlzIGV4ZWNm
aWxlKClkIHdpdGggdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHNldCB0byBpdHMKKyMgY29udGFpbmlu
ZyBkaXIuCisjCisjIE5vdGUgdGhhdCBub3QgYWxsIHBvc3NpYmxlIGNvbmZpZ3VyYXRpb24gdmFs
dWVzIGFyZSBwcmVzZW50IGluIHRoaXMKKyMgYXV0b2dlbmVyYXRlZCBmaWxlLgorIworIyBBbGwg
Y29uZmlndXJhdGlvbiB2YWx1ZXMgaGF2ZSBhIGRlZmF1bHQ7IHZhbHVlcyB0aGF0IGFyZSBjb21t
ZW50ZWQgb3V0CisjIHNlcnZlIHRvIHNob3cgdGhlIGRlZmF1bHQuCisKK2ltcG9ydCBzeXMKK2lt
cG9ydCBvcworCisjIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBh
dXRvZG9jKSBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCisjIGFkZCB0aGVzZSBkaXJlY3Rvcmll
cyB0byBzeXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQor
IyBkb2N1bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNv
bHV0ZSwgbGlrZSBzaG93biBoZXJlLgorI3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3Bh
dGgoJy4nKSkKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9u
IG5lZWRzIGEgbWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KKyNuZWVkc19z
cGhpbnggPSAnMS4wJworCisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMg
aGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUKKyMgZXh0ZW5zaW9ucyBjb21pbmcgd2l0aCBT
cGhpbnggKG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbQorIyBvbmVzLgorZXh0
ZW5zaW9ucyA9IFsKKyAgICAnc3BoaW54LmV4dC5hdXRvZG9jJywKKyAgICAnc3BoaW54LmV4dC5p
bnRlcnNwaGlueCcsCisgICAgJ3NwaGlueC5leHQudmlld2NvZGUnLAorXQorCisjIEFkZCBhbnkg
cGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVj
dG9yeS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9m
IHNvdXJjZSBmaWxlbmFtZXMuCitzb3VyY2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhlIGVuY29k
aW5nIG9mIHNvdXJjZSBmaWxlcy4KKyNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJworCisj
IFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KK21hc3Rlcl9kb2MgPSAnaW5kZXgnCisKKyMg
R2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KK3Byb2plY3QgPSB1J3dwdHJ1
bm5lcicKK2NvcHlyaWdodCA9IHUnJworCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9q
ZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNp
b258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJv
dWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lv
bi4KK3ZlcnNpb24gPSAnMC4zJworIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEv
YmV0YS9yYyB0YWdzLgorcmVsZWFzZSA9ICcwLjMnCisKKyMgVGhlIGxhbmd1YWdlIGZvciBjb250
ZW50IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCisjIGZv
ciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KKyNsYW5ndWFnZSA9IE5vbmUKKworIyBU
aGVyZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8OiBlaXRoZXIsIHlvdSBz
ZXQgdG9kYXkgdG8gc29tZQorIyBub24tZmFsc2UgdmFsdWUsIHRoZW4gaXQgaXMgdXNlZDoKKyN0
b2RheSA9ICcnCisjIEVsc2UsIHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRoZSBmb3JtYXQgZm9yIGEg
c3RyZnRpbWUgY2FsbC4KKyN0b2RheV9mbXQgPSAnJUIgJWQsICVZJworCisjIExpc3Qgb2YgcGF0
dGVybnMsIHJlbGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5k
CisjIGRpcmVjdG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4K
K2V4Y2x1ZGVfcGF0dGVybnMgPSBbJ19idWlsZCddCisKKyMgVGhlIHJlU1QgZGVmYXVsdCByb2xl
ICh1c2VkIGZvciB0aGlzIG1hcmt1cDogYHRleHRgKSB0byB1c2UgZm9yIGFsbAorIyBkb2N1bWVu
dHMuCisjZGVmYXVsdF9yb2xlID0gTm9uZQorCisjIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBl
bmRlZCB0byA6ZnVuYzogZXRjLiBjcm9zcy1yZWZlcmVuY2UgdGV4dC4KKyNhZGRfZnVuY3Rpb25f
cGFyZW50aGVzZXMgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgdGhlIGN1cnJlbnQgbW9kdWxlIG5hbWUg
d2lsbCBiZSBwcmVwZW5kZWQgdG8gYWxsIGRlc2NyaXB0aW9uCisjIHVuaXQgdGl0bGVzIChzdWNo
IGFzIC4uIGZ1bmN0aW9uOjopLgorI2FkZF9tb2R1bGVfbmFtZXMgPSBUcnVlCisKKyMgSWYgdHJ1
ZSwgc2VjdGlvbmF1dGhvciBhbmQgbW9kdWxlYXV0aG9yIGRpcmVjdGl2ZXMgd2lsbCBiZSBzaG93
biBpbiB0aGUKKyMgb3V0cHV0LiBUaGV5IGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQuCisjc2hvd19h
dXRob3JzID0gRmFsc2UKKworIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdo
bGlnaHRpbmcpIHN0eWxlIHRvIHVzZS4KK3B5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKKworIyBB
IGxpc3Qgb2YgaWdub3JlZCBwcmVmaXhlcyBmb3IgbW9kdWxlIGluZGV4IHNvcnRpbmcuCisjbW9k
aW5kZXhfY29tbW9uX3ByZWZpeCA9IFtdCisKKyMgSWYgdHJ1ZSwga2VlcCB3YXJuaW5ncyBhcyAi
c3lzdGVtIG1lc3NhZ2UiIHBhcmFncmFwaHMgaW4gdGhlIGJ1aWx0IGRvY3VtZW50cy4KKyNrZWVw
X3dhcm5pbmdzID0gRmFsc2UKKworCisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgdGhlbWUg
dG8gdXNlIGZvciBIVE1MIGFuZCBIVE1MIEhlbHAgcGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRp
b24gZm9yCisjIGEgbGlzdCBvZiBidWlsdGluIHRoZW1lcy4KK2h0bWxfdGhlbWUgPSAnZGVmYXVs
dCcKKworIyBUaGVtZSBvcHRpb25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXplIHRo
ZSBsb29rIGFuZCBmZWVsIG9mIGEgdGhlbWUKKyMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Ygb3B0
aW9ucyBhdmFpbGFibGUgZm9yIGVhY2ggdGhlbWUsIHNlZSB0aGUKKyMgZG9jdW1lbnRhdGlvbi4K
KyNodG1sX3RoZW1lX29wdGlvbnMgPSB7fQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWlu
IGN1c3RvbSB0aGVtZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCisjaHRtbF90
aGVtZV9wYXRoID0gW10KKworIyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3Vt
ZW50cy4gIElmIE5vbmUsIGl0IGRlZmF1bHRzIHRvCisjICI8cHJvamVjdD4gdjxyZWxlYXNlPiBk
b2N1bWVudGF0aW9uIi4KKyNodG1sX3RpdGxlID0gTm9uZQorCisjIEEgc2hvcnRlciB0aXRsZSBm
b3IgdGhlIG5hdmlnYXRpb24gYmFyLiAgRGVmYXVsdCBpcyB0aGUgc2FtZSBhcyBodG1sX3RpdGxl
LgorI2h0bWxfc2hvcnRfdGl0bGUgPSBOb25lCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmls
ZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKKyMgb2Yg
dGhlIHNpZGViYXIuCisjaHRtbF9sb2dvID0gTm9uZQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdl
IGZpbGUgKHdpdGhpbiB0aGUgc3RhdGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQor
IyBkb2NzLiAgVGhpcyBmaWxlIHNob3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBi
ZWluZyAxNngxNiBvciAzMngzMgorIyBwaXhlbHMgbGFyZ2UuCisjaHRtbF9mYXZpY29uID0gTm9u
ZQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1
Y2ggYXMgc3R5bGUgc2hlZXRzKSBoZXJlLAorIyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4g
VGhleSBhcmUgY29waWVkIGFmdGVyIHRoZSBidWlsdGluIHN0YXRpYyBmaWxlcywKKyMgc28gYSBm
aWxlIG5hbWVkICJkZWZhdWx0LmNzcyIgd2lsbCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1
bHQuY3NzIi4KK2h0bWxfc3RhdGljX3BhdGggPSBbJ19zdGF0aWMnXQorCisjIEFkZCBhbnkgZXh0
cmEgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSBmaWxlcyAoc3VjaCBhcyByb2JvdHMudHh0IG9y
CisjIC5odGFjY2VzcykgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXNlIGZp
bGVzIGFyZSBjb3BpZWQKKyMgZGlyZWN0bHkgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50YXRp
b24uCisjaHRtbF9leHRyYV9wYXRoID0gW10KKworIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRl
ZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKKyMgdXNp
bmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4KKyNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAn
JWIgJWQsICVZJworCisjIElmIHRydWUsIFNtYXJ0eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252
ZXJ0IHF1b3RlcyBhbmQgZGFzaGVzIHRvCisjIHR5cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0
aWVzLgorI2h0bWxfdXNlX3NtYXJ0eXBhbnRzID0gVHJ1ZQorCisjIEN1c3RvbSBzaWRlYmFyIHRl
bXBsYXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX3Np
ZGViYXJzID0ge30KKworIyBBZGRpdGlvbmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5k
ZXJlZCB0byBwYWdlcywgbWFwcyBwYWdlIG5hbWVzIHRvCisjIHRlbXBsYXRlIG5hbWVzLgorI2h0
bWxfYWRkaXRpb25hbF9wYWdlcyA9IHt9CisKKyMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBp
cyBnZW5lcmF0ZWQuCisjaHRtbF9kb21haW5faW5kaWNlcyA9IFRydWUKKworIyBJZiBmYWxzZSwg
bm8gaW5kZXggaXMgZ2VuZXJhdGVkLgorI2h0bWxfdXNlX2luZGV4ID0gVHJ1ZQorCisjIElmIHRy
dWUsIHRoZSBpbmRleCBpcyBzcGxpdCBpbnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0
dGVyLgorI2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQorCisjIElmIHRydWUsIGxpbmtzIHRvIHRo
ZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdlcy4KKyNodG1sX3Nob3dfc291cmNl
bGluayA9IFRydWUKKworIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3du
IGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19zcGhpbngg
PSBUcnVlCisKKyMgSWYgdHJ1ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUg
SFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KKyNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1
ZQorCisjIElmIHRydWUsIGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91
dHB1dCwgYW5kIGFsbCBwYWdlcyB3aWxsCisjIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmlu
ZyB0byBpdC4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQorIyBiYXNlIFVS
TCBmcm9tIHdoaWNoIHRoZSBmaW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KKyNodG1sX3VzZV9vcGVu
c2VhcmNoID0gJycKKworIyBUaGlzIGlzIHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZp
bGVzIChlLmcuICIueGh0bWwiKS4KKyNodG1sX2ZpbGVfc3VmZml4ID0gTm9uZQorCisjIE91dHB1
dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFt
ZSA9ICd3cHRydW5uZXJkb2MnCisKKworIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2xhdGV4X2VsZW1l
bnRzID0geworICAgICMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXJwYXBlcicgb3IgJ2E0cGFwZXIn
KS4KKyAgICAjJ3BhcGVyc2l6ZSc6ICdsZXR0ZXJwYXBlcicsCisKKyAgICAjIFRoZSBmb250IHNp
emUgKCcxMHB0JywgJzExcHQnIG9yICcxMnB0JykuCisgICAgIydwb2ludHNpemUnOiAnMTBwdCcs
CisKKyAgICAjIEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJsZS4KKyAgICAj
J3ByZWFtYmxlJzogJycsCit9CisKKyMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBM
YVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQg
bmFtZSwgdGl0bGUsCisjICBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvLCBtYW51YWwsIG9y
IG93biBjbGFzc10pLgorbGF0ZXhfZG9jdW1lbnRzID0gWworICAgICgnaW5kZXgnLCAnd3B0cnVu
bmVyLnRleCcsIHUnd3B0cnVubmVyIERvY3VtZW50YXRpb24nLAorICAgICB1J0phbWVzIEdyYWhh
bScsICdtYW51YWwnKSwKK10KKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2
ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcCBvZgorIyB0aGUgdGl0bGUg
cGFnZS4KKyNsYXRleF9sb2dvID0gTm9uZQorCisjIEZvciAibWFudWFsIiBkb2N1bWVudHMsIGlm
IHRoaXMgaXMgdHJ1ZSwgdGhlbiB0b3BsZXZlbCBoZWFkaW5ncyBhcmUgcGFydHMsCisjIG5vdCBj
aGFwdGVycy4KKyNsYXRleF91c2VfcGFydHMgPSBGYWxzZQorCisjIElmIHRydWUsIHNob3cgcGFn
ZSByZWZlcmVuY2VzIGFmdGVyIGludGVybmFsIGxpbmtzLgorI2xhdGV4X3Nob3dfcGFnZXJlZnMg
PSBGYWxzZQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRlciBleHRlcm5hbCBs
aW5rcy4KKyNsYXRleF9zaG93X3VybHMgPSBGYWxzZQorCisjIERvY3VtZW50cyB0byBhcHBlbmQg
YXMgYW4gYXBwZW5kaXggdG8gYWxsIG1hbnVhbHMuCisjbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCisK
KyMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCisjbGF0ZXhfZG9tYWlu
X2luZGljZXMgPSBUcnVlCisKKworIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5IHBl
ciBtYW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1l
LCBkZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWwor
ICAgICgnaW5kZXgnLCAnd3B0cnVubmVyJywgdSd3cHRydW5uZXIgRG9jdW1lbnRhdGlvbicsCisg
ICAgIFt1J0phbWVzIEdyYWhhbSddLCAxKQorXQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJl
c3NlcyBhZnRlciBleHRlcm5hbCBsaW5rcy4KKyNtYW5fc2hvd191cmxzID0gRmFsc2UKKworCisj
IC0tIE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIFRl
eGluZm8gZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0
IG5hbWUsIHRpdGxlLCBhdXRob3IsCisjICBkaXIgbWVudSBlbnRyeSwgZGVzY3JpcHRpb24sIGNh
dGVnb3J5KQordGV4aW5mb19kb2N1bWVudHMgPSBbCisgICAgKCdpbmRleCcsICd3cHRydW5uZXIn
LCB1J3dwdHJ1bm5lciBEb2N1bWVudGF0aW9uJywKKyAgICAgdSdKYW1lcyBHcmFoYW0nLCAnd3B0
cnVubmVyJywgJ09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICAgJ01pc2Nl
bGxhbmVvdXMnKSwKK10KKworIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRv
IGFsbCBtYW51YWxzLgorI3RleGluZm9fYXBwZW5kaWNlcyA9IFtdCisKKyMgSWYgZmFsc2UsIG5v
IG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCisjdGV4aW5mb19kb21haW5faW5kaWNlcyA9IFRy
dWUKKworIyBIb3cgdG8gZGlzcGxheSBVUkwgYWRkcmVzc2VzOiAnZm9vdG5vdGUnLCAnbm8nLCBv
ciAnaW5saW5lJy4KKyN0ZXhpbmZvX3Nob3dfdXJscyA9ICdmb290bm90ZScKKworIyBJZiB0cnVl
LCBkbyBub3QgZ2VuZXJhdGUgYSBAZGV0YWlsbWVudSBpbiB0aGUgIlRvcCIgbm9kZSdzIG1lbnUu
CisjdGV4aW5mb19ub19kZXRhaWxtZW51ID0gRmFsc2UKKworCisjIEV4YW1wbGUgY29uZmlndXJh
dGlvbiBmb3IgaW50ZXJzcGhpbng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFy
eS4KK2ludGVyc3BoaW54X21hcHBpbmcgPSB7J3B5dGhvbic6ICgnaHR0cDovL2RvY3MucHl0aG9u
Lm9yZy8nLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ21vemxvZyc6ICgnaHR0cHM6
Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnLycsIE5vbmUpfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvZG9jcy9kZXNpZ24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9kZXNpZ24ucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMTA4
YTAwODdkYTBjNmVjMTIzMTY5YzcxNTg2ZjZjZTNiZmJhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9kb2NzL2Rlc2lnbi5yc3QKQEAgLTAsMCArMSwxMDYgQEAKK3dwdHJ1bm5lciBEZXNpZ24KKz09
PT09PT09PT09PT09PT0KKworVGhlIGRlc2lnbiBvZiB3cHRydW5uZXIgaXMgaW50ZW5kZWQgdG8g
bWVldCB0aGUgZm9sbG93aW5nCityZXF1aXJlbWVudHM6CisKKyAqIFBvc3NpYmxlIHRvIHJ1biB0
ZXN0cyBmcm9tIFczQyB3ZWItcGxhdGZvcm0tdGVzdHMuCisKKyAqIFRlc3RzIHNob3VsZCBiZSBy
dW4gYXMgZmFzdCBhcyBwb3NzaWJsZS4gSW4gcGFydGljdWxhciBpdCBzaG91bGQKKyAgIG5vdCBi
ZSBuZWNlc3NhcnkgdG8gcmVzdGFydCB0aGUgYnJvd3NlciBiZXR3ZWVuIHRlc3RzLCBvciBzaW1p
bGFyLgorCisgKiBBcyBmYXIgYXMgcG9zc2libGUsIHRoZSB0ZXN0cyBzaG91bGQgcnVuIGluIGEg
Im5vcm1hbCIgYnJvd3NlciBhbmQKKyAgIGJyb3dzaW5nIGNvbnRleHQuIEluIHBhcnRpY3VsYXIg
bWFueSB0ZXN0cyBhc3N1bWUgdGhhdCB0aGV5IGFyZQorICAgcnVubmluZyBpbiBhIHRvcC1sZXZl
bCBicm93c2luZyBjb250ZXh0LCBzbyB3ZSBtdXN0IGF2b2lkIHRoZSB1c2UKKyAgIG9mIGFuIGBg
aWZyYW1lYGAgdGVzdCBjb250YWluZXIuCisKKyAqIEl0IG11c3QgYmUgcG9zc2libGUgdG8gZGVh
bCB3aXRoIGFsbCBraW5kcyBvZiBiZWhhdmlvdXIgb2YgdGhlCisgICBicm93c2VyIHJ1bmRlciB0
ZXN0LCBmb3IgZXhhbXBsZSwgY3Jhc2hpbmcsIGhhbmdpbmcsIGV0Yy4KKworICogSXQgc2hvdWxk
IGJlIHBvc3NpYmxlIHRvIGFkZCBzdXBwb3J0IGZvciBuZXcgcGxhdGZvcm1zIGFuZCBicm93c2Vy
cworICAgd2l0aCBtaW5pbWFsIGNvZGUgY2hhbmdlcy4KKworICogSXQgbXVzdCBiZSBwb3NzaWJs
ZSB0byBydW4gdGVzdHMgaW4gcGFyYWxsZWwgdG8gZnVydGhlciBpbXByb3ZlCisgICBwZXJmb3Jt
YW5jZS4KKworICogVGVzdCBvdXRwdXQgbXVzdCBiZSBpbiBhIG1hY2hpbmUgcmVhZGFibGUgZm9y
bS4KKworQXJjaGl0ZWN0dXJlCistLS0tLS0tLS0tLS0KKworSW4gb3JkZXIgdG8gbWVldCB0aGUg
YWJvdmUgcmVxdWlyZW1lbnRzLCB3cHRydW5uZXIgaXMgZGVzaWduZWQgdG8KK3B1c2ggYXMgbXVj
aCBvZiB0aGUgdGVzdCBzY2hlZHVsaW5nIGFzIHBvc3NpYmxlIGludG8gdGhlIGhhcm5lc3MuIFRo
aXMKK2FsbG93cyB0aGUgaGFybmVzcyB0byBtb25pdG9yIHRoZSBzdGF0ZSBvZiB0aGUgYnJvd3Nl
ciBhbmQgcGVyZm9ybQorYXBwcm9wcmlhdGUgYWN0aW9uIGlmIGl0IGdldHMgaW50byBhbiB1bndh
bnRlZCBzdGF0ZSBlLmcuIGtpbGwgdGhlCiticm93c2VyIGlmIGl0IGFwcGVhcnMgdG8gYmUgaHVu
Zy4KKworVGhlIGhhcm5lc3Mgd2lsbCB0eXBpY2FsbHkgY29tbXVuaWNhdGUgd2l0aCB0aGUgYnJv
d3NlciB2aWEgc29tZSByZW1vdGUKK2NvbnRyb2wgcHJvdG9jb2wgc3VjaCBhcyBXZWJEcml2ZXIu
IEhvd2V2ZXIgZm9yIGJyb3dzZXJzIHdoZXJlIG5vIHN1Y2gKK3Byb3RvY29sIGlzIHN1cHBvcnRl
ZCwgb3RoZXIgaW1wbGVtZW50YXRpb24gc3RyYXRlZ2llcyBhcmUgcG9zc2libGUsCit0eXBpY2Fs
bHkgYXQgdGhlIGV4cGVuc2Ugb2Ygc3BlZWQuCisKK1RoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBv
ZiB3cHRydW5uZXIgaXMgc2hvd24gaW4gdGhlIGRpYWdyYW0gYmVsb3c6CisKKy4uIGltYWdlOjog
YXJjaGl0ZWN0dXJlLnN2ZworCitUaGUgbWFpbiBlbnRyeSBwb2ludCB0byB0aGUgY29kZSBpcyA6
cHk6ZnVuYzpgcnVuX3Rlc3RzYCBpbgorYGB3cHRydW5uZXIucHlgYC4gVGhpcyBpcyByZXNwb25z
aWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgdGVzdAorZW52aXJvbm1lbnQsIGxvYWRpbmcgdGhlIGxp
c3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZCBpbnZva2luZwordGhlIHJlbWFpbmRlciBv
ZiB0aGUgY29kZSB0byBhY3R1YWxseSBleGVjdXRlIHNvbWUgdGVzdHMuCisKK1RoZSB0ZXN0IGVu
dmlyb25tZW50IGlzIGVuY2Fwc3VsYXRlZCBpbiB0aGUKKzpweTpjbGFzczpgVGVzdEVudmlyb25t
ZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgorYGB3ZWItcGxhdGZvcm0tdGVzdHNg
YCB3aGljaCBhY3R1YWxseSBzdGFydHMgdGhlIHJlcXVpcmVkIHNlcnZlcnMgdG8KK3J1biB0aGUg
dGVzdHMuCisKK1RoZSBzZXQgb2YgdGVzdHMgdG8gcnVuIGlzIGRlZmluZWQgYnkgdGhlCis6cHk6
Y2xhc3M6YFRlc3RMb2FkZXJgLiBUaGlzIGlzIGNvbnN0cnVjdGVkIHdpdGggYQorOnB5OmNsYXNz
OmBUZXN0RmlsdGVyYCAobm90IHNob3duKSwgd2hpY2ggdGFrZXMgYW55IGZpbHRlciBhcmd1bWVu
dHMKK2Zyb20gdGhlIGNvbW1hbmQgbGluZSB0byByZXN0cmljdCB0aGUgc2V0IG9mIHRlc3RzIHRo
YXQgd2lsbCBiZQorcnVuLiBUaGUgOnB5OmNsYXNzOmBUZXN0TG9hZGVyYCByZWFkcyBib3RoIHRo
ZSBgYHdlYi1wbGF0Zm9ybS10ZXN0c2BgCitKU09OIG1hbmlmZXN0IGFuZCB0aGUgZXhwZWN0YXRp
b24gZGF0YSBzdG9yZWQgaW4gaW5pIGZpbGVzIGFuZAorcHJvZHVjZXMgYSA6cHk6Y2xhc3M6YG11
bHRpcHJvY2Vzc2luZy5RdWV1ZWAgb2YgdGVzdHMgdG8gcnVuLCBhbmQKK3RoZWlyIGV4cGVjdGVk
IHJlc3VsdHMuCisKK0FjdHVhbGx5IHJ1bm5pbmcgdGhlIHRlc3RzIGhhcHBlbnMgdGhyb3VnaCB0
aGUKKzpweTpjbGFzczpgTWFuYWdlckdyb3VwYCBvYmplY3QuIFRoaXMgdGFrZXMgdGhlIDpweTpj
bGFzczpgUXVldWVgIG9mCit0ZXN0cyB0byBiZSBydW4gYW5kIHN0YXJ0cyBhIDpweTpjbGFzczpg
dGVzdHJ1bm5lci5UZXN0UnVubmVyTWFuYWdlcmAgZm9yIGVhY2gKK2luc3RhbmNlIG9mIHRoZSBi
cm93c2VyIHVuZGVyIHRlc3QgdGhhdCB3aWxsIGJlIHN0YXJ0ZWQuIFRoZXNlCis6cHk6Y2xhc3M6
YFRlc3RSdW5uZXJNYW5hZ2VyYCBpbnN0YW5jZXMgYXJlIGVhY2ggc3RhcnRlZCBpbiB0aGVpciBv
d24KK3RocmVhZC4KKworQSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCBjb29yZGluYXRl
cyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRlcgordGVzdCwgYW5kIG91dHB1dHRpbmcgcmVzdWx0
cyBmcm9tIHRoZSB0ZXN0LiBJbiB0aGUgY2FzZSB0aGF0IHRoZSB0ZXN0CitoYXMgdGltZWQgb3V0
IG9yIHRoZSBicm93c2VyIGhhcyBjcmFzaGVkLCBpdCBoYXMgdG8gcmVzdGFydCB0aGUKK2Jyb3dz
ZXIgdG8gZW5zdXJlIHRoZSB0ZXN0IHJ1biBjYW4gY29udGludWUuIFRoZSBmdW5jdGlvbmFsaXR5
IGZvcgoraW5pdGlhbGlzaW5nIHRoZSBicm93c2VyIHVuZGVyIHRlc3QsIGFuZCBwcm9iaW5nIGl0
cyBzdGF0ZQorKGUuZy4gd2hldGhlciB0aGUgcHJvY2VzcyBpcyBzdGlsbCBhbGl2ZSkgaXMgaW1w
bGVtZW50ZWQgdGhyb3VnaCBhCis6cHk6Y2xhc3M6YEJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVt
ZW50YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0IGJlCitwcm92aWRlZCBmb3IgZWFjaCBwcm9kdWN0
IHRoYXQgaXMgc3VwcG9ydGVkLgorCitUaGUgZnVuY3Rpb25hbGl0eSBmb3IgYWN0dWFsbHkgcnVu
bmluZyB0aGUgdGVzdHMgaXMgcHJvdmlkZWQgYnkgYQorOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBv
YmplY3QuIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaW5zdGFuY2VzIGFyZQorcnVuIGluIHRoZWly
IG93biBjaGlsZCBwcm9jZXNzIGNyZWF0ZWQgd2l0aCB0aGUKKzpweTptb2Q6YG11bHRpcHJvY2Vz
c2luZ2AgbW9kdWxlLiBUaGlzIGFsbG93cyB0aGVtIHRvIHJ1biBjb25jdXJyZW50bHkKK2FuZCB0
byBiZSBraWxsZWQgYW5kIHJlc3RhcnRlZCBhcyByZXF1aXJlZC4gQ29tbXVuaWNhdGlvbiBiZXR3
ZWVuIHRoZQorOnB5OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgYW5kIHRoZSA6cHk6Y2xhc3M6
YFRlc3RSdW5uZXJgIGlzCitwcm92aWRlZCBieSBhIHBhaXIgb2YgcXVldWVzLCBvbmUgZm9yIHNl
bmRpbmcgbWVzc2FnZXMgaW4gZWFjaAorZGlyZWN0aW9uLiBJbiBwYXJ0aWN1bGFyIHRlc3QgcmVz
dWx0cyBhcmUgc2VudCBmcm9tIHRoZQorOnB5OmNsYXNzOmBUZXN0UnVubmVyYCB0byB0aGUgOnB5
OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgdXNpbmcgb25lCitvZiB0aGVzZSBxdWV1ZXMuCisK
K1RoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIG9iamVjdCBpcyBnZW5lcmljIGluIHRoYXQgdGhl
IHNhbWUKKzpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaXMgdXNlZCByZWdhcmRsZXNzIG9mIHRoZSBw
cm9kdWN0IHVuZGVyCit0ZXN0LiBIb3dldmVyIHRoZSBkZXRhaWxzIG9mIGhvdyB0byBydW4gdGhl
IHRlc3QgbWF5IHZhcnkgZ3JlYXRseSB3aXRoCit0aGUgcHJvZHVjdCBzaW5jZSBkaWZmZXJlbnQg
cHJvZHVjdHMgc3VwcG9ydCBkaWZmZXJlbnQgcmVtb3RlIGNvbnRyb2wKK3Byb3RvY29scyAob3Ig
bm9uZSBhdCBhbGwpLiBUaGVzZSBwcm90b2NvbC1zcGVjaWZpYyBwYXJ0cyBhcmUgcGxhY2VkCitp
biB0aGUgOnB5OmNsYXNzOmBFeGVjdXRvcmAgb2JqZWN0LiBUaGVyZSBpcyB0eXBpY2FsbHkgYSBk
aWZmZXJlbnQKKzpweTpjbGFzczpgRXhlY3V0b3JgIGNsYXNzIGZvciBlYWNoIGNvbWJpbmF0aW9u
IG9mIGNvbnRyb2wgcHJvdG9jb2wKK2FuZCB0ZXN0IHR5cGUuIFRoZSA6cHk6Y2xhc3M6YFRlc3RS
dW5uZXJgIGlzIHJlc3BvbnNpYmxlIGZvciBwdWxsaW5nCitlYWNoIHRlc3Qgb2ZmIHRoZSA6cHk6
Y2xhc3M6YFF1ZXVlYCBvZiB0ZXN0cyBhbmQgcGFzc2luZyBpdCBkb3duIHRvCit0aGUgOnB5OmNs
YXNzOmBFeGVjdXRvcmAuCisKK1RoZSBleGVjdXRvciBvZnRlbiByZXF1aXJlcyBhY2Nlc3MgdG8g
ZGV0YWlscyBvZiB0aGUgcGFydGljdWxhcgorYnJvd3NlciBpbnN0YW5jZSB0aGF0IGl0IGlzIHRl
c3Rpbmcgc28gdGhhdCBpdCBrbm93cyBlLmcuIHdoaWNoIHBvcnQKK3RvIGNvbm5lY3QgdG8gdG8g
c2VuZCBjb21tYW5kcyB0byB0aGUgYnJvd3Nlci4gVGhlc2UgZGV0YWlscyBhcmUKK2VuY2Fwc3Vs
YXRlZCBpbiB0aGUgOnB5OmNsYXNzOmBFeGVjdXRvckJyb3dzZXJgIGNsYXNzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9leHBlY3RhdGlvbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YTBjNzc2ODRhM2I4M2FiYTg4NDM2ZTg0YjM5OWZkOGZiNjRlMzI1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy9leHBlY3RhdGlvbi5yc3QKQEAgLTAsMCArMSwyNDggQEAKK0V4
cGVjdGF0aW9uIERhdGEKKz09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9uCistLS0tLS0t
LS0tLS0KKworRm9yIHVzZSBpbiBjb250aW51b3VzIGludGVncmF0aW9uIHN5c3RlbXMsIGFuZCBv
dGhlciBzY2VuYXJpb3Mgd2hlcmUKK3JlZ3Jlc3Npb24gdHJhY2tpbmcgaXMgcmVxdWlyZWQsIHdw
dHJ1bm5lciBzdXBwb3J0cyBzdG9yaW5nIGFuZAorbG9hZGluZyB0aGUgZXhwZWN0ZWQgcmVzdWx0
IG9mIGVhY2ggdGVzdCBpbiBhIHRlc3QgcnVuLiBUeXBpY2FsbHkKK3RoZXNlIGV4cGVjdGVkIHJl
c3VsdHMgd2lsbCBpbml0aWFsbHkgYmUgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgdGhlCit0ZXN0c3Vp
dGUgaW4gYSBiYXNlbGluZSBidWlsZC4gVGhleSBtYXkgdGhlbiBiZSBlZGl0ZWQgYnkgaHVtYW5z
IGFzCituZXcgZmVhdHVyZXMgYXJlIGFkZGVkIHRvIHRoZSBwcm9kdWN0IHRoYXQgY2hhbmdlIHRo
ZSBleHBlY3RlZAorcmVzdWx0cy4gVGhlIGV4cGVjdGVkIHJlc3VsdHMgbWF5IGFsc28gdmFyeSBm
b3IgYSBzaW5nbGUgcHJvZHVjdAorZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSBvbiB3aGljaCBp
dCBpcyBydW4uIFRoZXJlZm9yZSwgdGhlIHJhdworc3RydWN0dXJlZCBsb2cgZGF0YSBpcyBub3Qg
YSBzdWl0YWJsZSBmb3JtYXQgZm9yIHN0b3JpbmcgdGhlc2UKK2ZpbGVzLiBJbnN0ZWFkIHNvbWV0
aGluZyBpcyByZXF1aXJlZCB0aGF0IGlzOgorCisgKiBIdW1hbiByZWFkYWJsZQorCisgKiBIdW1h
biBlZGl0YWJsZQorCisgKiBNYWNoaW5lIHJlYWRhYmxlIC8gd3JpdGFibGUKKworICogQ2FwYWJs
ZSBvZiBzdG9yaW5nIHRlc3QgaWQgLyByZXN1bHQgcGFpcnMKKworICogU3VpdGFibGUgZm9yIHN0
b3JpbmcgaW4gYSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIChpLmUuIHRleHQtYmFzZWQpCisKK1Ro
ZSBuZWVkIGZvciBkaWZmZXJlbnQgcmVzdWx0cyBwZXIgcGxhdGZvcm0gbWVhbnMgZWl0aGVyIGhh
dmluZworbXVsdGlwbGUgZXhwZWN0YXRpb24gZmlsZXMgZm9yIGVhY2ggcGxhdGZvcm0sIG9yIGhh
dmluZyBhIHdheSB0bworZXhwcmVzcyBjb25kaXRpb25hbCB2YWx1ZXMgd2l0aGluIGEgY2VydGFp
biBmaWxlLiBUaGUgZm9ybWVyIHdvdWxkIGJlCityYXRoZXIgY3VtYmVyc29tZSBmb3IgaHVtYW5z
IHVwZGF0aW5nIHRoZSBleHBlY3RhdGlvbiBmaWxlcywgc28gdGhlCitsYXR0ZXIgYXBwcm9hY2gg
aGFzIGJlZW4gYWRvcHRlZCwgbGVhZGluZyB0byB0aGUgcmVxdWlyZW1lbnQ6CisKKyAqIENhcGFi
bGUgb2Ygc3RvcmluZyByZXN1bHQgdmFsdWVzIHRoYXQgYXJlIGNvbmRpdGlvbmFsIG9uIHRoZSBw
bGF0Zm9ybS4KKworVGhlcmUgYXJlIGZldyBleHRhbnQgZm9ybWF0cyB0aGF0IG1lZXQgdGhlc2Ug
cmVxdWlyZW1lbnRzLCBzbword3B0cnVubmVyIHVzZXMgYSBiZXNwb2tlIGBgZXhwZWN0YXRpb24g
bWFuaWZlc3RgYCBmb3JtYXQsIHdoaWNoIGlzCitjbG9zZWx5IGJhc2VkIG9uIHRoZSBzdGFuZGFy
ZCBgYGluaWBgIGZvcm1hdC4KKworRGlyZWN0b3J5IExheW91dAorLS0tLS0tLS0tLS0tLS0tLQor
CitFeHBlY3RhdGlvbiBtYW5pZmVzdCBmaWxlcyBtdXN0IGJlIHN0b3JlZCB1bmRlciB0aGUgYGBt
ZXRhZGF0YWBgCitkaXJlY3RvcnkgcGFzc2VkIHRvIHRoZSB0ZXN0IHJ1bm5lci4gVGhlIGRpcmVj
dG9yeSBsYXlvdXQgZm9sbG93cyB0aGF0CitvZiB3ZWItcGxhdGZvcm0tdGVzdHMgd2l0aCBlYWNo
IHRlc3QgcGF0aCBoYXZpbmcgYSBjb3JyZXNwb25kaW5nCittYW5pZmVzdCBmaWxlLiBUZXN0cyB0
aGF0IGRpZmZlciBvbmx5IGJ5IHF1ZXJ5IHN0cmluZywgb3IgcmVmdGVzdHMKK3dpdGggdGhlIHNh
bWUgdGVzdCBwYXRoIGJ1dCBkaWZmZXJlbnQgcmVmIHBhdGhzIHNoYXJlIHRoZSBzYW1lCityZWZl
cmVuY2UgZmlsZS4gVGhlIGZpbGUgbmFtZSBpcyB0YWtlbiBmcm9tIHRoZSBsYXN0IC8tc2VwYXJh
dGVkIHBhcnQKK29mIHRoZSBwYXRoLCBzdWZmaXhlZCB3aXRoIGBgLmluaWBgLgorCitBcyBhbiBv
cHRpbWlzYXRpb24sIGZpbGVzIHdoaWNoIHByb2R1Y2Ugb25seSBkZWZhdWx0IHJlc3VsdHMKKyhp
LmUuIGBgUEFTU2BgIG9yIGBgT0tgYCkgZG9uJ3QgcmVxdWlyZSBhIGNvcnJlc3BvbmRpbmcgbWFu
aWZlc3QgZmlsZS4KKworRm9yIGV4YW1wbGUgYSB0ZXN0IHdpdGggdXJsOjoKKworICAvc3BlYy9z
ZWN0aW9uL2ZpbGUuaHRtbD9xdWVyeT1wYXJhbQorCit3b3VsZCBoYXZlIGFuIGV4cGVjdGF0aW9u
IGZpbGUgOjoKKworICBtZXRhZGF0YS9zcGVjL3NlY3Rpb24vZmlsZS5odG1sLmluaQorCisKKy4u
IF93cHR1cGRhdGUtbGFiZWw6CisKK0dlbmVyYXRpbmcgRXhwZWN0YXRpb24gRmlsZXMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKword3B0cnVubmVyIHByb3ZpZGVzIHRoZSB0b29sIGBg
d3B0dXBkYXRlYGAgdG8gZ2VuZXJhdGUgZXhwZWN0YXRpb24KK2ZpbGVzIGZyb20gdGhlIHJlc3Vs
dHMgb2YgYSBzZXQgb2YgYmFzZWxpbmUgdGVzdCBydW5zLiBUaGUgYmFzaWMKK3N5bnRheCBmb3Ig
dGhpcyBpczo6CisKKyAgd3B0dXBkYXRlIFtvcHRpb25zXSBbbG9nZmlsZV0uLi4KKworRWFjaCBg
YGxvZ2ZpbGVgYCBpcyBhIHN0cnVjdHVyZWQgbG9nIGZpbGUgZnJvbSBhIHByZXZpb3VzIHJ1bi4g
VGhlc2UKK2NhbiBiZSBnZW5lcmF0ZWQgZnJvbSB3cHRydW5uZXIgdXNpbmcgdGhlIGBgLS1sb2ct
cmF3YGAgb3B0aW9uCitlLmcuIGBgLS1sb2ctcmF3PXN0cnVjdHVyZWQubG9nYGAuIFRoZSBkZWZh
dWx0IGJlaGF2aW91ciBpcyB0byB1cGRhdGUKK2FsbCB0aGUgdGVzdCBkYXRhIGZvciB0aGUgcGFy
dGljdWxhciBjb21iaW5hdGlvbiBvZiBoYXJkd2FyZSBhbmQgT1MKK3VzZWQgaW4gdGhlIHJ1biBj
b3JyZXNwb25kaW5nIHRvIHRoZSBsb2cgZGF0YSwgd2hpbHN0IGxlYXZpbmcgYW55CitvdGhlciBl
eHBlY3RhdGlvbnMgdW50b3VjaGVkLgorCit3cHR1cGRhdGUgdGFrZXMgc2V2ZXJhbCB1c2VmdWwg
b3B0aW9uczoKKworYGAtLXN5bmNgYAorICBQdWxsIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB3ZWIt
cGxhdGZvcm0tdGVzdHMgZnJvbSB0aGUKKyAgdXBzdHJlYW0gc3BlY2lmaWVkIGluIHRoZSBjb25m
aWcgZmlsZS4gSWYgdGhpcyBpcyBzcGVjaWZpZWQgaW4KKyAgY29tYmluYXRpb24gd2l0aCBsb2dm
aWxlcywgaXQgaXMgYXNzdW1lZCB0aGF0IHRoZSByZXN1bHRzIGluIHRoZSBsb2cKKyAgZmlsZXMg
YXBwbHkgdG8gdGhlIHBvc3QtdXBkYXRlIHRlc3RzLgorCitgYC0tbm8tY2hlY2stY2xlYW5gYAor
ICBEb24ndCBhdHRlbXB0IHRvIGNoZWNrIGlmIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVh
biBiZWZvcmUKKyAgZG9pbmcgdGhlIHVwZGF0ZSAoYXNzdW1pbmcgdGhhdCB0aGUgd29ya2luZyBk
aXJlY3RvcnkgaXMgYSBnaXQgb3IKKyAgbWVyY3VyaWFsIHRyZWUpLgorCitgYC0tcGF0Y2hgYAor
ICBDcmVhdGUgYSBhIGdpdCBjb21taXQsIG9yIGEgbXEgcGF0Y2gsIHdpdGggdGhlIGNoYW5nZXMg
bWFkZSBieSB3cHR1cGRhdGUuCisKK2BgLS1pZ25vcmUtZXhpc3RpbmdgYAorICBPdmVyd3JpdGUg
YWxsIHRoZSBleHBlY3RhdGlvbiBkYXRhIGZvciBhbnkgdGVzdHMgdGhhdCBoYXZlIGEgcmVzdWx0
CisgIGluIHRoZSBwYXNzZWQgbG9nIGZpbGVzLCBub3QganVzdCBkYXRhIGZvciB0aGUgc2FtZSBw
bGF0Zm9ybS4KKworRXhhbXBsZXMKK35+fn5+fn5+CisKK1VwZGF0ZSB0aGUgbG9jYWwgY29weSBv
ZiB3ZWItcGxhdGZvcm0tdGVzdHMgd2l0aG91dCBjaGFuZ2luZyB0aGUKK2V4cGVjdGF0aW9uIGRh
dGEgYW5kIGNvbW1pdCAob3IgY3JlYXRlIGEgbXEgcGF0Y2ggZm9yKSB0aGUgcmVzdWx0OjoKKwor
ICB3cHR1cGRhdGUgLS1wYXRjaCAtLXN5bmMKKworVXBkYXRlIGFsbCB0aGUgZXhwZWN0YXRpb25z
IGZyb20gYSBzZXQgb2YgY3Jvc3MtcGxhdGZvcm0gdGVzdCBydW5zOjoKKworICB3cHR1cGRhdGUg
LS1uby1jaGVjay1jbGVhbiAtLXBhdGNoIG9zeC5sb2cgbGludXgubG9nIHdpbmRvd3MubG9nCisK
K0FkZCBleHBlY3RhdGlvbiBkYXRhIGZvciBzb21lIG5ldyB0ZXN0cyB0aGF0IGFyZSBleHBlY3Rl
ZCB0byBiZQorcGxhdGZvcm0taW5kZXBlbmRlbnQ6OgorCisgIHdwdHVwZGF0ZSAtLW5vLWNoZWNr
LWNsZWFuIC0tcGF0Y2ggLS1pZ25vcmUtZXhpc3RpbmcgdGVzdHMubG9nCisKK01hbmlmZXN0IEZv
cm1hdAorLS0tLS0tLS0tLS0tLS0tCitUaGUgZm9ybWF0IG9mIHRoZSBtYW5pZmVzdCBmaWxlcyBp
cyBiYXNlZCBvbiB0aGUgaW5pIGZvcm1hdC4gRmlsZXMgYXJlCitkaXZpZGVkIGludG8gc2VjdGlv
bnMsIGVhY2ggKGFwYXJ0IGZyb20gdGhlIHJvb3Qgc2VjdGlvbikgaGF2aW5nIGEKK2hlYWRpbmcg
ZW5jbG9zZWQgaW4gc3F1YXJlIGJyYWNlcy4gV2l0aGluIGVhY2ggc2VjdGlvbiBhcmUga2V5LXZh
bHVlCitwYWlycy4gVGhlcmUgYXJlIHNldmVyYWwgbm90YWJsZSBkaWZmZXJlbmNlcyBmcm9tIHN0
YW5kYXJkIC5pbmkgZmlsZXMsCitob3dldmVyOgorCisgKiBTZWN0aW9ucyBtYXkgYmUgaGllcmFy
Y2hpY2FsbHkgbmVzdGVkLCB3aXRoIHNpZ25pZmljYW50IHdoaXRlc3BhY2UKKyAgIGluZGljYXRp
bmcgbmVzdGluZyBkZXB0aC4KKworICogT25seSBgYDpgYCBpcyB2YWxpZCBhcyBhIGtleS92YWx1
ZSBzZXBhcmF0b3IKKworQSBzaW1wbGUgZXhhbXBsZSBvZiBhIG1hbmlmZXN0IGZpbGUgaXM6Ogor
CisgIHJvb3Rfa2V5OiByb290X3ZhbHVlCisKKyAgW3NlY3Rpb25dCisgICAgc2VjdGlvbl9rZXk6
IHNlY3Rpb25fdmFsdWUKKworICAgIFtzdWJzZWN0aW9uXQorICAgICAgIHN1YnNlY3Rpb25fa2V5
OiBzdWJzZWN0aW9uX3ZhbHVlCisKKyAgW2Fub3RoZXJfc2VjdGlvbl0KKyAgICBhbm90aGVyX2tl
eTogYW5vdGhlcl92YWx1ZQorCitDb25kaXRpb25hbCBWYWx1ZXMKK35+fn5+fn5+fn5+fn5+fn5+
fgorCitJbiBvcmRlciB0byBzdXBwb3J0IHZhbHVlcyB0aGF0IGRlcGVuZCBvbiBzb21lIGV4dGVy
bmFsIGRhdGEsIHRoZQorcmlnaHQgaGFuZCBzaWRlIG9mIGEga2V5L3ZhbHVlIHBhaXIgY2FuIHRh
a2UgYSBzZXQgb2YgY29uZGl0aW9uYWxzCityYXRoZXIgdGhhbiBhIHBsYWluIHZhbHVlLiBUaGVz
ZSB2YWx1ZXMgYXJlIHBsYWNlZCBvbiBhIG5ldyBsaW5lCitmb2xsb3dpbmcgdGhlIGtleSwgd2l0
aCBzaWduaWZpY2FudCBpbmRlbnRhdGlvbi4gQ29uZGl0aW9uYWwgdmFsdWVzCithcmUgcHJlZml4
ZWQgd2l0aCBgYGlmYGAgYW5kIHRlcm1pbmF0ZWQgd2l0aCBhIGNvbG9uLCBmb3IgZXhhbXBsZTo6
CisKKyAga2V5OgorICAgIGlmIGNvbmQxOiB2YWx1ZTEKKyAgICBpZiBjb25kMjogdmFsdWUyCisg
ICAgdmFsdWUzCisKK0luIHRoaXMgZXhhbXBsZSwgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBg
YGtleWBgIGlzIGRldGVybWluZWQgYnkKK2ZpcnN0IGV2YWx1YXRpbmcgYGBjb25kMWBgIGFnYWlu
c3QgZXh0ZXJuYWwgZGF0YS4gSWYgdGhhdCBpcyB0cnVlLAorYGBrZXlgYCBpcyBhc3NpZ25lZCB0
aGUgdmFsdWUgYGB2YWx1ZTFgYCwgb3RoZXJ3aXNlIGBgY29uZDJgYCBpcworZXZhbHVhdGVkIGlu
IHRoZSBzYW1lIHdheS4gSWYgYm90aCBgYGNvbmQxYGAgYW5kIGBgY29uZDJgYCBhcmUgZmFsc2Us
Cit0aGUgdW5jb25kaXRpb25hbCBgYHZhbHVlM2BgIGlzIHVzZWQuCisKK0NvbmRpdGlvbnMgdGhl
bXNlbHZlcyB1c2UgYSBQeXRob24tbGlrZSBleHByZXNzaW9uIHN5bnRheC4gT3BlcmFuZHMKK2Nh
biBlaXRoZXIgYmUgdmFyaWFibGVzLCBjb3JyZXNwb25kaW5nIHRvIGRhdGEgcGFzc2VkIGluLCBu
dW1iZXJzCisoaW50ZWdlciBvciBmbG9hdGluZyBwb2ludDsgZXhwb25lbnRpYWwgbm90YXRpb24g
aXMgbm90IHN1cHBvcnRlZCkgb3IKK3F1b3RlLWRlbGltaXRlZCBzdHJpbmdzLiBFcXVhbGl0eSBp
cyB0ZXN0ZWQgdXNpbmcgYGA9PWBgIGFuZAoraW5lcXVhbGl0eSBieSBgYCE9YGAuIFRoZSBvcGVy
YXRvcnMgYGBhbmRgYCwgYGBvcmBgIGFuZCBgYG5vdGBgIGFyZQordXNlZCBpbiB0aGUgZXhwZWN0
ZWQgd2F5LiBQYXJlbnRoZXNlcyBjYW4gYWxzbyBiZSB1c2VkIGZvcgorZ3JvdXBpbmcuIEZvciBl
eGFtcGxlOjoKKworICBrZXk6CisgICAgaWYgKGEgPT0gMiBvciBhID09IDMpIGFuZCBiID09ICJh
YmMiOiB2YWx1ZTEKKyAgICBpZiBhID09IDEgb3IgYiAhPSAiYWJjIjogdmFsdWUyCisgICAgdmFs
dWUzCisKK0hlcmUgYGBhYGAgYW5kIGBgYmBgIGFyZSB2YXJpYWJsZXMsIHRoZSB2YWx1ZSBvZiB3
aGljaCB3aWxsIGJlCitzdXBwbGllZCB3aGVuIHRoZSBtYW5pZmVzdCBpcyB1c2VkLgorCitFeHBl
Y3RhdGlvbiBNYW5pZmVzdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGVuIHVzZWQgZm9y
IGV4cGVjdGF0aW9uIGRhdGEsIG1hbmlmZXN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogor
CisgKiBBIHNlY3Rpb24gcGVyIHRlc3QgVVJMIGRlc2NyaWJlZCBieSB0aGUgbWFuaWZlc3QsIHdp
dGggdGhlIHNlY3Rpb24KKyAgIGhlYWRpbmcgYmVpbmcgdGhlIHBhcnQgb2YgdGhlIHRlc3QgVVJM
IGZvbGxvd2luZyB0aGUgbGFzdCBgYC9gYCBpbgorICAgdGhlIHBhdGggKHRoaXMgYWxsb3dzIG11
bHRpcGxlIHRlc3RzIGluIGEgc2luZ2xlIG1hbmlmZXN0IGZpbGUgd2l0aAorICAgdGhlIHNhbWUg
cGF0aCBwYXJ0IG9mIHRoZSBVUkwsIGJ1dCBkaWZmZXJlbnQgcXVlcnkgcGFydHMpLgorCisgKiBB
IHN1YnNlY3Rpb24gcGVyIHN1YnRlc3QsIHdpdGggdGhlIGhlYWRpbmcgYmVpbmcgdGhlIHRpdGxl
IG9mIHRoZQorICAgc3VidGVzdC4KKworICogQSBrZXkgYGB0eXBlYGAgaW5kaWNhdGluZyB0aGUg
dGVzdCB0eXBlLiBUaGlzIHRha2VzIHRoZSB2YWx1ZXMKKyAgIGBgdGVzdGhhcm5lc3NgYCBhbmQg
YGByZWZ0ZXN0YGAuCisKKyAqIEZvciByZWZ0ZXN0cywga2V5cyBgYHJlZnR5cGVgYCBpbmRpY2F0
aW5nIHRoZSByZWZlcmVuY2UgdHlwZQorICAgKGBgPT1gYCBvciBgYCE9YGApIGFuZCBgYHJlZnVy
bGBgIGluZGljYXRpbmcgdGhlIFVSTCBvZiB0aGUKKyAgIHJlZmVyZW5jZS4KKworICogQSBrZXkg
YGBleHBlY3RlZGBgIGdpdmluZyB0aGUgZXhwZWN0YXRpb24gdmFsdWUgb2YgZWFjaCAoc3ViKXRl
c3QuCisKKyAqIEEga2V5IGBgZGlzYWJsZWRgYCB3aGljaCBjYW4gYmUgc2V0IHRvIGFueSB2YWx1
ZSB0byBpbmRpY2F0ZSB0aGF0CisgICB0aGUgKHN1Yil0ZXN0IGlzIGRpc2FibGVkIGFuZCBzaG91
bGQgZWl0aGVyIG5vdCBiZSBydW4gKGZvciB0ZXN0cykKKyAgIG9yIHRoYXQgaXRzIHJlc3VsdHMg
c2hvdWxkIGJlIGlnbm9yZWQgKHN1YnRlc3RzKS4KKworICogQSBrZXkgYGByZXN0YXJ0LWFmdGVy
YGAgd2hpY2ggY2FuIGJlIHNldCB0byBhbnkgdmFsdWUgdG8gaW5kaWNhdGUgdGhhdAorICAgdGhl
IHJ1bm5lciBzaG91bGQgcmVzdGFydCB0aGUgYnJvd3NlciBhZnRlciBydW5uaW5nIHRoaXMgdGVz
dCAoZS5nLiB0bworICAgY2xlYXIgb3V0IHVud2FudGVkIHN0YXRlKS4KKworICogVmFyaWFibGVz
IGBgZGVidWdgYCwgYGBvc2BgLCBgYHZlcnNpb25gYCwgYGBwcm9jZXNzb3JgYCBhbmQKKyAgIGBg
Yml0c2BgIHRoYXQgZGVzY3JpYmUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGJyb3dzZXIgdW5k
ZXIKKyAgIHRlc3QuIGBgZGVidWdgYCBpcyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEg
YnVpbGQgaXMgYSBkZWJ1ZworICAgYnVpbGQuIGBgb3NgYCBpcyBhIHN0cmluZyBpbmRpY2F0aW5n
IHRoZSBvcGVyYXRpbmcgc3lzdGVtLCBhbmQKKyAgIGBgdmVyc2lvbmBgIGEgc3RyaW5nIGluZGlj
YXRpbmcgdGhlIHBhcnRpY3VsYXIgdmVyc2lvbiBvZiB0aGF0CisgICBvcGVyYXRpbmcgc3lzdGVt
LiBgYHByb2Nlc3NvcmBgIGlzIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlCisgICBwcm9jZXNzb3Ig
YXJjaGl0ZWN0dXJlIGFuZCBgYGJpdHNgYCBhbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlCisgICBu
dW1iZXIgb2YgYml0cy4gVGhpcyBpbmZvcm1hdGlvbiBpcyB0eXBpY2FsbHkgcHJvdmlkZWQgYnkK
KyAgIDpweTptb2Q6YG1vemluZm9gLgorCisgKiBUb3AgbGV2ZWwga2V5cyBhcmUgdGFrZW4gYXMg
ZGVmYXVsdHMgZm9yIHRoZSB3aG9sZSBmaWxlLiBTbywgZm9yCisgICBleGFtcGxlLCBhIHRvcCBs
ZXZlbCBrZXkgd2l0aCBgYGV4cGVjdGVkOiBGQUlMYGAgd291bGQgaW5kaWNhdGUKKyAgIHRoYXQg
YWxsIHRlc3RzIGFuZCBzdWJ0ZXN0cyBpbiB0aGUgZmlsZSBhcmUgZXhwZWN0ZWQgdG8gZmFpbCwK
KyAgIHVubGVzcyB0aGV5IGhhdmUgYW4gYGBleHBlY3RlZGBgIGtleSBvZiB0aGVpciBvd24uCisK
K0FuIHNpbXBsZSBleGFtcGxlIG1hbmlmZXN0IG1pZ2h0IGxvb2sgbGlrZTo6CisKKyAgW3Rlc3Qu
aHRtbD92YXJpYW50PWJhc2ljXQorICAgIHR5cGU6IHRlc3RoYXJuZXNzCisKKyAgICBbVGVzdCBz
b21ldGhpbmcgdW5zdXBwb3J0ZWRdCisgICAgICAgZXhwZWN0ZWQ6IEZBSUwKKworICBbdGVzdC5o
dG1sP3ZhcmlhbnQ9YnJva2VuXQorICAgIGV4cGVjdGVkOiBFUlJPUgorCisgIFt0ZXN0Lmh0bWw/
dmFyaWFudD11bnN0YWJsZV0KKyAgICBkaXNhYmxlZDogaHR0cDovL3Rlc3QuYnVncy5leGFtcGxl
Lm9yZy9idWdzLzEyMzQ1CisKK0EgbW9yZSBjb21wbGV4IG1hbmlmZXN0IHdpdGggY29uZGl0aW9u
YWwgcHJvcGVydGllcyBtaWdodCBiZTo6CisKKyAgW2NhbnZhc190ZXN0Lmh0bWxdCisgICAgZXhw
ZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAib3N4IjogRkFJTAorICAgICAgaWYgb3MgPT0gIndpbmRv
d3MiIGFuZCB2ZXJzaW9uID09ICJYUCI6IEZBSUwKKyAgICAgIFBBU1MKKworTm90ZSB0aGF0IGBg
UEFTU2BgIGluIHRoZSBhYm92ZSB3b3JrcywgYnV0IGlzIHVubmVjZXNzYXJ5OyBgYFBBU1NgYAor
KG9yIGBgT0tgYCkgaXMgYWx3YXlzIHRoZSBkZWZhdWx0IGV4cGVjdGF0aW9uIGZvciAoc3ViKXRl
c3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2luZGV4LnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MTQ3ZDNlMzFjM2JjNDRiMTIxNmU0NmJiYzAzYTA0YzM4MGNiM2FkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKQEAgLTAsMCArMSwyNCBAQAorLi4gd3B0
cnVubmVyIGRvY3VtZW50YXRpb24gbWFzdGVyIGZpbGUsIGNyZWF0ZWQgYnkKKyAgIHNwaGlueC1x
dWlja3N0YXJ0IG9uIE1vbiBNYXkgMTkgMTg6MTQ6MjAgMjAxNC4KKyAgIFlvdSBjYW4gYWRhcHQg
dGhpcyBmaWxlIGNvbXBsZXRlbHkgdG8geW91ciBsaWtpbmcsIGJ1dCBpdCBzaG91bGQgYXQgbGVh
c3QKKyAgIGNvbnRhaW4gdGhlIHJvb3QgYHRvY3RyZWVgIGRpcmVjdGl2ZS4KKworV2VsY29tZSB0
byB3cHRydW5uZXIncyBkb2N1bWVudGF0aW9uIQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitDb250ZW50czoKKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIK
KworICAgdXNhZ2UKKyAgIGV4cGVjdGF0aW9uCisgICBkZXNpZ24KKworSW5kaWNlcyBhbmQgdGFi
bGVzCis9PT09PT09PT09PT09PT09PT0KKworKiA6cmVmOmBnZW5pbmRleGAKKyogOnJlZjpgbW9k
aW5kZXhgCisqIDpyZWY6YHNlYXJjaGAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9tYWtlLmJhdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL2RvY3MvbWFrZS5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5YzE2MTVhMjg5ZGIwYjFhOTBhMDkwZDg5
NGZhNGI1NGI0ZmEzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQKQEAgLTAs
MCArMSwyNDIgQEAKK0BFQ0hPIE9GRg0KKw0KK1JFTSBDb21tYW5kIGZpbGUgZm9yIFNwaGlueCBk
b2N1bWVudGF0aW9uDQorDQoraWYgIiVTUEhJTlhCVUlMRCUiID09ICIiICgNCisJc2V0IFNQSElO
WEJVSUxEPXNwaGlueC1idWlsZA0KKykNCitzZXQgQlVJTERESVI9X2J1aWxkDQorc2V0IEFMTFNQ
SElOWE9QVFM9LWQgJUJVSUxERElSJS9kb2N0cmVlcyAlU1BISU5YT1BUUyUgLg0KK3NldCBJMThO
U1BISU5YT1BUUz0lU1BISU5YT1BUUyUgLg0KK2lmIE5PVCAiJVBBUEVSJSIgPT0gIiIgKA0KKwlz
ZXQgQUxMU1BISU5YT1BUUz0tRCBsYXRleF9wYXBlcl9zaXplPSVQQVBFUiUgJUFMTFNQSElOWE9Q
VFMlDQorCXNldCBJMThOU1BISU5YT1BUUz0tRCBsYXRleF9wYXBlcl9zaXplPSVQQVBFUiUgJUkx
OE5TUEhJTlhPUFRTJQ0KKykNCisNCitpZiAiJTEiID09ICIiIGdvdG8gaGVscA0KKw0KK2lmICIl
MSIgPT0gImhlbHAiICgNCisJOmhlbHANCisJZWNoby5QbGVhc2UgdXNlIGBtYWtlIF48dGFyZ2V0
Xj5gIHdoZXJlIF48dGFyZ2V0Xj4gaXMgb25lIG9mDQorCWVjaG8uICBodG1sICAgICAgIHRvIG1h
a2Ugc3RhbmRhbG9uZSBIVE1MIGZpbGVzDQorCWVjaG8uICBkaXJodG1sICAgIHRvIG1ha2UgSFRN
TCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzDQorCWVjaG8uICBzaW5nbGVo
dG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBmaWxlDQorCWVjaG8uICBwaWNrbGUgICAg
IHRvIG1ha2UgcGlja2xlIGZpbGVzDQorCWVjaG8uICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBm
aWxlcw0KKwllY2hvLiAgaHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBo
ZWxwIHByb2plY3QNCisJZWNoby4gIHF0aGVscCAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBh
IHF0aGVscCBwcm9qZWN0DQorCWVjaG8uICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBh
bmQgYSBEZXZoZWxwIHByb2plY3QNCisJZWNoby4gIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHVi
DQorCWVjaG8uICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmlsZXMsIHlvdSBjYW4gc2V0IFBB
UEVSPWE0IG9yIFBBUEVSPWxldHRlcg0KKwllY2hvLiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQg
ZmlsZXMNCisJZWNoby4gIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMNCisJZWNoby4g
IHRleGluZm8gICAgdG8gbWFrZSBUZXhpbmZvIGZpbGVzDQorCWVjaG8uICBnZXR0ZXh0ICAgIHRv
IG1ha2UgUE8gbWVzc2FnZSBjYXRhbG9ncw0KKwllY2hvLiAgY2hhbmdlcyAgICB0byBtYWtlIGFu
IG92ZXJ2aWV3IG92ZXIgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcw0KKwllY2hv
LiAgeG1sICAgICAgICB0byBtYWtlIERvY3V0aWxzLW5hdGl2ZSBYTUwgZmlsZXMNCisJZWNoby4g
IHBzZXVkb3htbCAgdG8gbWFrZSBwc2V1ZG94bWwtWE1MIGZpbGVzIGZvciBkaXNwbGF5IHB1cnBv
c2VzDQorCWVjaG8uICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3Ig
aW50ZWdyaXR5DQorCWVjaG8uICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRk
ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gaWYgZW5hYmxlZA0KKwlnb3RvIGVuZA0KKykNCisNCitp
ZiAiJTEiID09ICJjbGVhbiIgKA0KKwlmb3IgL2QgJSVpIGluICglQlVJTERESVIlXCopIGRvIHJt
ZGlyIC9xIC9zICUlaQ0KKwlkZWwgL3EgL3MgJUJVSUxERElSJVwqDQorCWdvdG8gZW5kDQorKQ0K
Kw0KKw0KKyVTUEhJTlhCVUlMRCUgMj4gbnVsDQoraWYgZXJyb3JsZXZlbCA5MDA5ICgNCisJZWNo
by4NCisJZWNoby5UaGUgJ3NwaGlueC1idWlsZCcgY29tbWFuZCB3YXMgbm90IGZvdW5kLiBNYWtl
IHN1cmUgeW91IGhhdmUgU3BoaW54DQorCWVjaG8uaW5zdGFsbGVkLCB0aGVuIHNldCB0aGUgU1BI
SU5YQlVJTEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcG9pbnQNCisJZWNoby50byB0aGUgZnVs
bCBwYXRoIG9mIHRoZSAnc3BoaW54LWJ1aWxkJyBleGVjdXRhYmxlLiBBbHRlcm5hdGl2ZWx5IHlv
dQ0KKwllY2hvLm1heSBhZGQgdGhlIFNwaGlueCBkaXJlY3RvcnkgdG8gUEFUSC4NCisJZWNoby4N
CisJZWNoby5JZiB5b3UgZG9uJ3QgaGF2ZSBTcGhpbnggaW5zdGFsbGVkLCBncmFiIGl0IGZyb20N
CisJZWNoby5odHRwOi8vc3BoaW54LWRvYy5vcmcvDQorCWV4aXQgL2IgMQ0KKykNCisNCitpZiAi
JTEiID09ICJodG1sIiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgaHRtbCAlQUxMU1BISU5YT1BUUyUg
JUJVSUxERElSJS9odG1sDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJ
ZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICVCVUlMRERJUiUvaHRt
bC4NCisJZ290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAiZGlyaHRtbCIgKA0KKwklU1BISU5Y
QlVJTEQlIC1iIGRpcmh0bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZGlyaHRtbA0KKwlp
ZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQu
IFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL2Rpcmh0bWwuDQorCWdvdG8gZW5kDQor
KQ0KKw0KK2lmICIlMSIgPT0gInNpbmdsZWh0bWwiICgNCisJJVNQSElOWEJVSUxEJSAtYiBzaW5n
bGVodG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3NpbmdsZWh0bWwNCisJaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRN
TCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9zaW5nbGVodG1sLg0KKwlnb3RvIGVuZA0KKykNCisN
CitpZiAiJTEiID09ICJwaWNrbGUiICgNCisJJVNQSElOWEJVSUxEJSAtYiBwaWNrbGUgJUFMTFNQ
SElOWE9QVFMlICVCVUlMRERJUiUvcGlja2xlDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDEN
CisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUg
cGlja2xlIGZpbGVzLg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJqc29uIiAoDQor
CSVTUEhJTlhCVUlMRCUgLWIganNvbiAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9qc29uDQor
CWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hl
ZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4NCisJZ290byBlbmQNCispDQor
DQoraWYgIiUxIiA9PSAiaHRtbGhlbHAiICgNCisJJVNQSElOWEJVSUxEJSAtYiBodG1saGVscCAl
QUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9odG1saGVscA0KKwlpZiBlcnJvcmxldmVsIDEgZXhp
dCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBI
VE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUgXg0KKy5oaHAgcHJvamVjdCBmaWxlIGluICVCVUlM
RERJUiUvaHRtbGhlbHAuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gInF0aGVscCIg
KA0KKwklU1BISU5YQlVJTEQlIC1iIHF0aGVscCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9x
dGhlbHANCisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxk
IGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRo
ZSBeDQorLnFoY3AgcHJvamVjdCBmaWxlIGluICVCVUlMRERJUiUvcXRoZWxwLCBsaWtlIHRoaXM6
DQorCWVjaG8uXj4gcWNvbGxlY3Rpb25nZW5lcmF0b3IgJUJVSUxERElSJVxxdGhlbHBcd3B0cnVu
bmVyLnFoY3ANCisJZWNoby5UbyB2aWV3IHRoZSBoZWxwIGZpbGU6DQorCWVjaG8uXj4gYXNzaXN0
YW50IC1jb2xsZWN0aW9uRmlsZSAlQlVJTERESVIlXHF0aGVscFx3cHRydW5uZXIuZ2hjDQorCWdv
dG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImRldmhlbHAiICgNCisJJVNQSElOWEJVSUxEJSAt
YiBkZXZoZWxwICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2RldmhlbHANCisJaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlzaGVkLg0KKwlnb3Rv
IGVuZA0KKykNCisNCitpZiAiJTEiID09ICJlcHViIiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgZXB1
YiAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9lcHViDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0
IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIGVwdWIgZmlsZSBpcyBp
biAlQlVJTERESVIlL2VwdWIuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImxhdGV4
IiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgbGF0ZXggJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUv
bGF0ZXgNCisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxk
IGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICVCVUlMRERJUiUvbGF0ZXguDQorCWdv
dG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImxhdGV4cGRmIiAoDQorCSVTUEhJTlhCVUlMRCUg
LWIgbGF0ZXggJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvbGF0ZXgNCisJY2QgJUJVSUxERElS
JS9sYXRleA0KKwltYWtlIGFsbC1wZGYNCisJY2QgJUJVSUxERElSJS8uLg0KKwllY2hvLg0KKwll
Y2hvLkJ1aWxkIGZpbmlzaGVkOyB0aGUgUERGIGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL2xhdGV4
Lg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJsYXRleHBkZmphIiAoDQorCSVTUEhJ
TlhCVUlMRCUgLWIgbGF0ZXggJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvbGF0ZXgNCisJY2Qg
JUJVSUxERElSJS9sYXRleA0KKwltYWtlIGFsbC1wZGYtamENCisJY2QgJUJVSUxERElSJS8uLg0K
KwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlzaGVkOyB0aGUgUERGIGZpbGVzIGFyZSBpbiAlQlVJ
TERESVIlL2xhdGV4Lg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJ0ZXh0IiAoDQor
CSVTUEhJTlhCVUlMRCUgLWIgdGV4dCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS90ZXh0DQor
CWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hl
ZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvdGV4dC4NCisJZ290byBlbmQNCisp
DQorDQoraWYgIiUxIiA9PSAibWFuIiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgbWFuICVBTExTUEhJ
TlhPUFRTJSAlQlVJTERESVIlL21hbg0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVj
aG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51YWwgcGFnZXMgYXJlIGluICVCVUlM
RERJUiUvbWFuLg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJ0ZXhpbmZvIiAoDQor
CSVTUEhJTlhCVUlMRCUgLWIgdGV4aW5mbyAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS90ZXhp
bmZvDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBm
aW5pc2hlZC4gVGhlIFRleGluZm8gZmlsZXMgYXJlIGluICVCVUlMRERJUiUvdGV4aW5mby4NCisJ
Z290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAiZ2V0dGV4dCIgKA0KKwklU1BISU5YQlVJTEQl
IC1iIGdldHRleHQgJUkxOE5TUEhJTlhPUFRTJSAlQlVJTERESVIlL2xvY2FsZQ0KKwlpZiBlcnJv
cmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBt
ZXNzYWdlIGNhdGFsb2dzIGFyZSBpbiAlQlVJTERESVIlL2xvY2FsZS4NCisJZ290byBlbmQNCisp
DQorDQoraWYgIiUxIiA9PSAiY2hhbmdlcyIgKA0KKwklU1BISU5YQlVJTEQlIC1iIGNoYW5nZXMg
JUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvY2hhbmdlcw0KKwlpZiBlcnJvcmxldmVsIDEgZXhp
dCAvYiAxDQorCWVjaG8uDQorCWVjaG8uVGhlIG92ZXJ2aWV3IGZpbGUgaXMgaW4gJUJVSUxERElS
JS9jaGFuZ2VzLg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJsaW5rY2hlY2siICgN
CisJJVNQSElOWEJVSUxEJSAtYiBsaW5rY2hlY2sgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUv
bGlua2NoZWNrDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5M
aW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRoZSBhYm92ZSBvdXRw
dXQgXg0KK29yIGluICVCVUlMRERJUiUvbGlua2NoZWNrL291dHB1dC50eHQuDQorCWdvdG8gZW5k
DQorKQ0KKw0KK2lmICIlMSIgPT0gImRvY3Rlc3QiICgNCisJJVNQSElOWEJVSUxEJSAtYiBkb2N0
ZXN0ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2RvY3Rlc3QNCisJaWYgZXJyb3JsZXZlbCAx
IGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNv
dXJjZXMgZmluaXNoZWQsIGxvb2sgYXQgdGhlIF4NCityZXN1bHRzIGluICVCVUlMRERJUiUvZG9j
dGVzdC9vdXRwdXQudHh0Lg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJ4bWwiICgN
CisJJVNQSElOWEJVSUxEJSAtYiB4bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUveG1sDQor
CWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hl
ZC4gVGhlIFhNTCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS94bWwuDQorCWdvdG8gZW5kDQorKQ0K
Kw0KK2lmICIlMSIgPT0gInBzZXVkb3htbCIgKA0KKwklU1BISU5YQlVJTEQlIC1iIHBzZXVkb3ht
bCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9wc2V1ZG94bWwNCisJaWYgZXJyb3JsZXZlbCAx
IGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgcHNldWRvLVhN
TCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9wc2V1ZG94bWwuDQorCWdvdG8gZW5kDQorKQ0KKw0K
KzplbmQNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI1OGNjYTZlY2E5ZTc5ZTY1MWQ4NTQxM2UzZTZhMjlhMTYxNGY4NWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdApAQCAtMCwwICsxLDIzOCBAQAorR2V0
dGluZyBTdGFydGVkCis9PT09PT09PT09PT09PT0KKworSW5zdGFsbGluZyB3cHRydW5uZXIKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIHdwdHJ1bm5l
ciBpcyBpbnRvIGEgdmlydHVhbGVudiwgdXNpbmcgcGlwOjoKKworICB2aXJ0dWFsZW52IHdwdHJ1
bm5lcgorICBjZCB3cHRydW5uZXIKKyAgc291cmNlIGJpbi9hY3RpdmF0ZQorICBwaXAgaW5zdGFs
bCB3cHRydW5uZXIKKworVGhpcyB3aWxsIGluc3RhbGwgdGhlIGJhc2UgZGVwZW5kZW5jaWVzIGZv
ciB3cHRydW5uZXIsIGJ1dCBub3QgYW55CitleHRyYSBkZXBlbmRlbmNpZXMgcmVxdWlyZWQgdG8g
dGVzdCBhZ2FpbnN0IHNwZWNpZmljIGJyb3dzZXJzLiBJbgorb3JkZXIgdG8gZG8gdGhpcyB5b3Ug
bXVzdCB1c2UgdXNlIHRoZSBleHRyYSByZXF1aXJlbWVudHMgZmlsZXMgaW4KK2BgJFZJUlRVQUxf
RU5WL3JlcXVpcmVtZW50cy9yZXF1aXJlbWVudHNfYnJvd3Nlci50eHRgYC4gRm9yIGV4YW1wbGUs
CitpbiBvcmRlciB0byB0ZXN0IGFnYWluc3QgRmlyZWZveCB5b3Ugd291bGQgaGF2ZSB0byBydW46
OgorCisgIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy9yZXF1aXJlbWVudHNfZmlyZWZveC50
eHQKKworSWYgeW91IGludGVuZCB0byB3b3JrIG9uIHRoZSBjb2RlLCB0aGUgYGAtZWBgIG9wdGlv
biB0byBwaXAgc2hvdWxkIGJlCit1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYSBzb3VyY2UgY2hl
Y2tvdXQgaS5lLiBpbnNpZGUgYSB2aXJ0dWFsCitlbnZpcm9ubWVudCBjcmVhdGVkIGFzIGFib3Zl
OjoKKworICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRydW5uZXIuZ2l0Cisg
IGNkIHdwdHJ1bm5lcgorICBwaXAgaW5zdGFsbCAtZSAuLworCitJbiBhZGRpdGlvbiB0byB0aGUg
ZGVwZW5kZW5jaWVzIGluc3RhbGxlZCBieSBwaXAsIHdwdHJ1bm5lciByZXF1aXJlcworYSBjb3B5
IG9mIHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYmUgbG9jYXRl
ZAorYW55d2hlcmUgb24gdGhlIGZpbGVzeXN0ZW0sIGJ1dCB0aGUgZWFzaWVzdCBvcHRpb24gaXMg
dG8gcHV0IGl0Cit1bmRlciB0aGUgc2FtZSBwYXJlbnQgZGlyZWN0b3J5IGFzIHRoZSB3cHRydW5u
ZXIgY2hlY2tvdXQ6OgorCisgIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy5naXQKKworSXQgaXMgYWxzbyBuZWNlc3NhcnkgdG8gZ2VuZXJhdGUgYSB3
ZWItcGxhdGZvcm0tdGVzdHMgYGBNQU5JRkVTVC5qc29uYGAKK2ZpbGUuIEl0J3MgcmVjb21tZW5k
ZWQgdG8gYWxzbyBwdXQgdGhhdCB1bmRlciB0aGUgc2FtZSBwYXJlbnQgZGlyZWN0b3J5IGFzCit0
aGUgd3B0cnVubmVyIGNoZWNrb3V0LCBpbiBhIGRpcmVjdG9yeSBuYW1lZCBgYG1ldGFgYDo6CisK
KyAgbWtkaXIgbWV0YQorICBjZCB3ZWItcGxhdGZvcm0tdGVzdHMKKyAgcHl0aG9uIG1hbmlmZXN0
IC0tcGF0aCAuLi9tZXRhL01BTklGRVNULmpzb24KKworVGhlIGBgTUFOSUZFU1QuanNvbmBgIGZp
bGUgbmVlZHMgdG8gYmUgcmVnZW5lcmF0ZWQgZWFjaCB0aW1lIHRoZQord2ViLXBsYXRmb3JtLXRl
c3RzIGNoZWNrb3V0IGlzIHVwZGF0ZWQuIFRvIGFpZCB3aXRoIHRoZSB1cGRhdGUgcHJvY2Vzcwor
dGhlcmUgaXMgYSB0b29sIGNhbGxlZCBgYHdwdHVwZGF0ZWBgLCB3aGljaCBpcyBkZXNjcmliZWQg
aW4KKzpyZWY6YHdwdHVwZGF0ZS1sYWJlbGAuCisKK1J1bm5pbmcgdGhlIFRlc3RzCistLS0tLS0t
LS0tLS0tLS0tLQorCitBIHRlc3QgcnVuIGlzIHN0YXJ0ZWQgdXNpbmcgdGhlIGBgd3B0cnVubmVy
YGAgY29tbWFuZC4gIFRoZSBjb21tYW5kCit0YWtlcyBtdWx0aXBsZSBvcHRpb25zLCBvZiB3aGlj
aCB0aGUgZm9sbG93aW5nIGFyZSBtb3N0IHNpZ25pZmljYW50OgorCitgYC0tcHJvZHVjdGBgIChk
ZWZhdWx0cyB0byBgZmlyZWZveGApCisgIFRoZSBwcm9kdWN0IHRvIHRlc3QgYWdhaW5zdDogYGNo
cm9tZWAsIGBmaXJlZm94YCwgb3IgYHNlcnZvYC4KKworYGAtLWJpbmFyeWBgIChyZXF1aXJlZCBp
ZiBwcm9kdWN0IGlzIGBmaXJlZm94YCBvciBgc2Vydm9gKQorICBUaGUgcGF0aCB0byBhIGJpbmFy
eSBmaWxlIGZvciB0aGUgcHJvZHVjdCAoYnJvd3NlcikgdG8gdGVzdCBhZ2FpbnN0LgorCitgYC0t
d2ViZHJpdmVyLWJpbmFyeWBgIChyZXF1aXJlZCBpZiBwcm9kdWN0IGlzIGBjaHJvbWVgKQorICBU
aGUgcGF0aCB0byBhIGAqZHJpdmVyYCBiaW5hcnk7IGUuZy4sIGEgYGNocm9tZWRyaXZlcmAgYmlu
YXJ5LgorCitgYC0tY2VydHV0aWwtYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZp
cmVmb3hgIFsjXV8pCisgIFRoZSBwYXRoIHRvIGEgYGNlcnR1dGlsYCBiaW5hcnkgKGZvciB0ZXN0
cyB0aGF0IG11c3QgYmUgcnVuIG92ZXIgaHR0cHMpLgorCitgYC0tbWV0YWRhdGFgYCAocmVxdWly
ZWQgb25seSB3aGVuIG5vdCBgdXNpbmcgZGVmYXVsdCBwYXRoc2BfKQorICBUaGUgcGF0aCB0byBh
IGRpcmVjdG9yeSBjb250YWluaW5nIHRlc3QgbWV0YWRhdGEuIFsjXV8KKworYGAtLXRlc3RzYGAg
KHJlcXVpcmVkIG9ubHkgd2hlbiBub3QgYHVzaW5nIGRlZmF1bHQgcGF0aHNgXykKKyAgVGhlIHBh
dGggdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIHdlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291
dC4KKworYGAtLXByZWZzLXJvb3RgYCAocmVxdWlyZWQgb25seSB3aGVuIHRlc3RpbmcgYSBGaXJl
Zm94IGJpbmFyeSkKKyAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyBGaXJlZm94
IHRlc3QtaGFybmVzcyBwcmVmZXJlbmNlcy4gWyNdXworCitgYC0tY29uZmlnYGAgKHNob3VsZCBk
ZWZhdWx0IHRvIGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgKQorICBUaGUgcGF0aCB0byB0aGUgY29u
ZmlnIChpbmkpIGZpbGUuCisKKy4uIFsjXSBUaGUgYGAtLWNlcnR1dGlsLWJpbmFyeWBgIG9wdGlv
biBpcyByZXF1aXJlZCB3aGVuIHRoZSBwcm9kdWN0IGlzCisgICBgYGZpcmVmb3hgYCB1bmxlc3Mg
YGAtLXNzbC10eXBlPW5vbmVgYCBpcyBzcGVjaWZpZWQuCisKKy4uIFsjXSBUaGUgYGAtLW1ldGFk
YXRhYGAgcGF0aCBpcyB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zOgorCisgICogYSBgYE1B
TklGRVNULmpzb25gYCBmaWxlICh0aGUgd2ViLXBsYXRmb3JtLXRlc3RzIGRvY3VtZW50YXRpb24g
aGFzCisgICAgaW5zdHJ1Y3Rpb25zIG9uIGdlbmVyYXRpbmcgdGhpcyBmaWxlKQorICAqIChvcHRp
b25hbGx5KSBhbnkgZXhwZWN0YXRpb24gZmlsZXMgKHNlZSA6cmVmOmB3cHR1cGRhdGUtbGFiZWxg
KQorCisuLiBbI10gRXhhbXBsZSBgYC0tcHJlZnMtcm9vdGBgIHZhbHVlOiBgYH4vbW96aWxsYS1j
ZW50cmFsL3Rlc3RpbmcvcHJvZmlsZXNgYC4KKworVGhlcmUgYXJlIGFsc28gYSB2YXJpZXR5IG9m
IG90aGVyIGNvbW1hbmQtbGluZSBvcHRpb25zIGF2YWlsYWJsZTsgdXNlCitgYC0taGVscGBgIHRv
IGxpc3QgdGhlbS4KKworVGhlIGZvbGxvd2luZyBleGFtcGxlcyBzaG93IGhvdyB0byBzdGFydCB3
cHRydW5uZXIgd2l0aCB2YXJpb3VzIG9wdGlvbnMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLQorU3Rh
cnRpbmcgd3B0cnVubmVyCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGV4YW1wbGVzIGJlbG93
IGFzc3VtZSB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeSBsYXlvdXQsCit0aG91Z2ggbm8gc3BlY2lm
aWMgZm9sZGVyIHN0cnVjdHVyZSBpcyByZXF1aXJlZDo6CisKKyAgfi90ZXN0dHdmL3dwdHJ1bm5l
ciAgICAgICAgICAjIHdwdHJ1bm5lciBjaGVja291dAorICB+L3Rlc3R0d2Yvd2ViLXBsYXRmb3Jt
LXRlc3RzICMgd2ViLXBsYXRmb3JtLXRlc3RzIGNoZWNrb3V0CisgIH4vdGVzdHR3Zi9tZXRhICAg
ICAgICAgICAgICAgIyBtZXRhZGF0YQorCitUbyB0ZXN0IGEgRmlyZWZveCBOaWdodGx5IGJ1aWxk
IGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAord3B0cnVubmVyIHVzaW5n
IHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6CisKKyAgd3B0cnVu
bmVyIC0tbWV0YWRhdGE9fi90ZXN0dHdmL21ldGEvIC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0
Zm9ybS10ZXN0cy8gXAorICAgIC0tYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29iai14ODZfNjQt
YXBwbGUtZGFyd2luMTQuMy4wL2Rpc3QvTmlnaHRseS5hcHAvQ29udGVudHMvTWFjT1MvZmlyZWZv
eCBcCisgICAgLS1jZXJ0dXRpbC1iaW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwvb2JqLXg4Nl82NC1h
cHBsZS1kYXJ3aW4xNC4zLjAvc2VjdXJpdHkvbnNzL2NtZC9jZXJ0dXRpbC9jZXJ0dXRpbCBcCisg
ICAgLS1wcmVmcy1yb290PX4vbW96aWxsYS1jZW50cmFsL3Rlc3RpbmcvcHJvZmlsZXMKKworCitB
bmQgdG8gdGVzdCBhIENocm9taXVtIGJ1aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBt
aWdodCBzdGFydAord3B0cnVubmVyIHVzaW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xs
b3dpbmcgZXhhbXBsZTo6CisKKyAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi90ZXN0dHdmL21ldGEv
IC0tdGVzdHM9fi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAorICAgIC0tYmluYXJ5PX4v
Y2hyb21pdW0vc3JjL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50cy9NYWNPUy9DaHJv
bWl1bSBcCisgICAgLS13ZWJkcml2ZXItYmluYXJ5PS91c3IvbG9jYWwvYmluL2Nocm9tZWRyaXZl
ciAtLXByb2R1Y3Q9Y2hyb21lCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCitSdW5uaW5nIHRlc3Qg
c3Vic2V0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gcmVzdHJpY3QgYSB0ZXN0IHJ1biBq
dXN0IHRvIHRlc3RzIGluIGEgcGFydGljdWxhciB3ZWItcGxhdGZvcm0tdGVzdHMKK3N1YmRpcmVj
dG9yeSwgc3BlY2lmeSB0aGUgZGlyZWN0b3J5IG5hbWUgaW4gdGhlIHBvc2l0aW9uYWwgYXJndW1l
bnRzIGFmdGVyCit0aGUgb3B0aW9uczsgZm9yIGV4YW1wbGUsIHJ1biBqdXN0IHRoZSB0ZXN0cyBp
biB0aGUgYGRvbWAgc3ViZGlyZWN0b3J5OjoKKworICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3Rl
c3R0d2YvbWV0YSAtLXRlc3RzPX4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMvIFwKKyAgICAt
LWJpbmFyeT0vcGF0aC90by9maXJlZm94IC0tY2VydHV0aWwtYmluYXJ5PS9wYXRoL3RvL2NlcnR1
dGlsIFwKKyAgICAtLXByZWZzLXJvb3Q9L3BhdGgvdG8vdGVzdGluZy9wcm9maWxlcyBcCisgICAg
ZG9tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0KK1J1bm5pbmcgaW4gcGFyYWxsZWwKKy0tLS0tLS0t
LS0tLS0tLS0tLS0KKworVG8gc3BlZWQgdXAgdGhlIHRlc3RpbmcgcHJvY2VzcywgdXNlIHRoZSBg
YC0tcHJvY2Vzc2VzYGAgb3B0aW9uIHRvIGhhdmUKK3dwdHJ1bm5lciBydW4gbXVsdGlwbGUgYnJv
d3NlciBpbnN0YW5jZXMgaW4gcGFyYWxsZWwuIEZvciBleGFtcGxlLCB0bworaGF2ZSB3cHRydW5u
ZXIgYXR0ZW1wdCB0byBydW4gdGVzdHMgYWdhaW5zdCB3aXRoIHNpeCBicm93c2VyIGluc3RhbmNl
cworaW4gcGFyYWxsZWwsIHNwZWNpZnkgYGAtLXByb2Nlc3Nlcz02YGAuIEJ1dCBub3RlIHRoYXQg
YmVoYXZpb3VyIGluIHRoaXMKK21vZGUgaXMgbmVjZXNzYXJpbHkgbGVzcyBkZXRlcm1pbmlzdGlj
IHRoYW4gd2l0aCBgYC0tcHJvY2Vzc2VzPTFgYCAodGhlCitkZWZhdWx0KSwgc28gdGhlcmUgbWF5
IGJlIG1vcmUgbm9pc2UgaW4gdGhlIHRlc3QgcmVzdWx0cy4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LQorVXNpbmcgZGVmYXVsdCBwYXRocworLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgKG90aGVy
d2lzZS1yZXF1aXJlZCkgYGAtLXRlc3RzYGAgYW5kIGBgLS1tZXRhZGF0YWBgIGNvbW1hbmQtbGlu
ZQorb3B0aW9ucy9mbGFncyBiZSBvbWl0dGVkIGlmIGFueSBjb25maWd1cmF0aW9uIGZpbGUgaXMg
Zm91bmQgdGhhdAorY29udGFpbnMgYSBzZWN0aW9uIHNwZWNpZnlpbmcgdGhlIGBgdGVzdHNgYCBh
bmQgYGBtZXRhZGF0YWBgIGtleXMuCisKK1NlZSB0aGUgYENvbmZpZ3VyYXRpb24gRmlsZWBfIHNl
Y3Rpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKK2NvbmZpZ3VyYXRpb24gZmlsZXMsIGlu
Y2x1ZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBleHBlY3RlZAorbG9jYXRpb25zLgorCitU
aGUgY29udGVudCBvZiB0aGUgYGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgYCBkZWZhdWx0IGNvbmZp
Z3VyYXRpb24gZmlsZQorbWFrZXMgd3B0cnVubmVyIGxvb2sgZm9yIHRlc3RzICh0aGF0IGlzLCBh
IHdlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291dCkKK2FzIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBj
dXJyZW50IGRpcmVjdG9yeSBuYW1lZCBgYHRlc3RzYGAsIGFuZCBmb3IKK21ldGFkYXRhIGZpbGVz
IGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBuYW1lZCBgYG1ldGFg
YC4KKworT3V0cHV0CistLS0tLS0KKword3B0cnVubmVyIHVzZXMgdGhlIDpweTptb2Q6YG1vemxv
Z2AgcGFja2FnZSBmb3Igb3V0cHV0LiBUaGlzCitzdHJ1Y3R1cmVzIGV2ZW50cyBzdWNoIGFzIHRl
c3QgcmVzdWx0cyBvciBsb2cgbWVzc2FnZXMgYXMgSlNPTiBvYmplY3RzCit0aGF0IGNhbiB0aGVu
IGJlIGZlZCB0byBvdGhlciB0b29scyBmb3IgaW50ZXJwcmV0YXRpb24uIE1vcmUgZGV0YWlscwor
YWJvdXQgdGhlIG1lc3NhZ2UgZm9ybWF0IGFyZSBnaXZlbiBpbiB0aGUKKzpweTptb2Q6YG1vemxv
Z2AgZG9jdW1lbnRhdGlvbi4KKworQnkgZGVmYXVsdCB0aGUgcmF3IEpTT04gbWVzc2FnZXMgYXJl
IGR1bXBlZCB0byBzdGRvdXQuIFRoaXMgaXMKK2NvbnZlbmllbnQgZm9yIHBpcGluZyBpbnRvIG90
aGVyIHRvb2xzLCBidXQgbm90IGlkZWFsIGZvciBodW1hbnMKK3JlYWRpbmcgdGhlIG91dHB1dC4g
OnB5Om1vZDpgbW96bG9nYCBjb21lcyB3aXRoIHNldmVyYWwgb3RoZXIKK2Zvcm1hdHRlcnMsIHdo
aWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZCBsaW5lIG9wdGlvbnMuIFRoZQorZ2Vu
ZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcyBgYC0tbG9nLW5hbWU9ZGVzdGBgLCB3aGVy
ZSBgYG5hbWVgYAoraXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdCBhbmQgYGBkZXN0YGAgaXMgYSBw
YXRoIHRvIGEgZGVzdGluYXRpb24KK2ZpbGUsIG9yIGBgLWBgIGZvciBzdGRvdXQuIFRoZSByYXcg
SlNPTiBkYXRhIGlzIHdyaXR0ZW4gYnkgdGhlIGBgcmF3YGAKK2Zvcm1hdHRlciBzbywgdGhlIGRl
ZmF1bHQgc2V0dXAgY29ycmVzcG9uZHMgdG8gYGAtLWxvZy1yYXc9LWBgLgorCitBIHJlYXNvbmFi
bGUgb3V0cHV0IGZvcm1hdCBmb3IgaHVtYW5zIGlzIHByb3ZpZGVkIGFzIGBgbWFjaGBgLiBTbyBp
bgorb3JkZXIgdG8gb3V0cHV0IHRoZSBmdWxsIHJhdyBsb2cgdG8gYSBmaWxlIGFuZCBhIGh1bWFu
LXJlYWRhYmxlCitzdW1tYXJ5IHRvIHN0ZG91dCwgb25lIG1pZ2h0IHBhc3MgdGhlIG9wdGlvbnM6
OgorCisgIC0tbG9nLXJhdz1vdXRwdXQubG9nIC0tbG9nLW1hY2g9LQorCitDb25maWd1cmF0aW9u
IEZpbGUKKy0tLS0tLS0tLS0tLS0tLS0tLQorCit3cHRydW5uZXIgdXNlcyBhIGBgLmluaWBgIGZp
bGUgdG8gY29udHJvbCBzb21lIGNvbmZpZ3VyYXRpb24KK3NlY3Rpb25zLiBUaGUgZmlsZSBoYXMg
dGhyZWUgc2VjdGlvbnM7IGBgW3Byb2R1Y3RzXWBgLAorYGBbbWFuaWZlc3Q6ZGVmYXVsdF1gYCBh
bmQgYGBbd2ViLXBsYXRmb3JtLXRlc3RzXWBgLgorCitgYFtwcm9kdWN0c11gYCBpcyB1c2VkIHRv
CitkZWZpbmUgdGhlIHNldCBvZiBhdmFpbGFibGUgcHJvZHVjdHMuIEJ5IGRlZmF1bHQgdGhpcyBz
ZWN0aW9uIGlzIGVtcHR5Cit3aGljaCBtZWFucyB0aGF0IGFsbCB0aGUgcHJvZHVjdHMgZGlzdHJp
YnV0ZWQgd2l0aCB3cHRydW5uZXIgYXJlCitlbmFibGVkIChhbHRob3VnaCB0aGVpciBkZXBlbmRl
bmNpZXMgbWF5IG5vdCBiZSBpbnN0YWxsZWQpLiBUaGUgc2V0CitvZiBlbmFibGVkIHByb2R1Y3Rz
IGNhbiBiZSBzZXQgYnkgdXNpbmcgdGhlIHByb2R1Y3QgbmFtZSBhcyB0aGUKK2tleS4gRm9yIGJ1
aWx0IGluIHByb2R1Y3RzIHRoZSB2YWx1ZSBpcyBlbXB0eS4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0
bworcHJvdmlkZSB0aGUgcGF0aCB0byBhIHNjcmlwdCBpbXBsZW1lbnRpbmcgdGhlIGJyb3dzZXIg
ZnVuY3Rpb25hbGl0eQorZS5nLjo6CisKKyAgW3Byb2R1Y3RzXQorICBjaHJvbWUgPQorICBuZXRz
Y2FwZTQgPSBwYXRoL3RvL25ldHNjYXBlLnB5CisKK2BgW21hbmlmZXN0OmRlZmF1bHRdYGAgc3Bl
Y2lmaWVzIHRoZSBkZWZhdWx0IHBhdGhzIGZvciB0aGUgdGVzdHMgYW5kIG1ldGFkYXRhLAorcmVs
YXRpdmUgdG8gdGhlIGNvbmZpZyBmaWxlLiBGb3IgZXhhbXBsZTo6CisKKyAgW21hbmlmZXN0OmRl
ZmF1bHRdCisgIHRlc3RzID0gfi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cworICBtZXRhZGF0
YSA9IH4vdGVzdHR3Zi9tZXRhCisKKworYGBbd2ViLXBsYXRmb3JtLXRlc3RzXWBgIGlzIHVzZWQg
dG8gc2V0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB1cHN0cmVhbQorcmVwb3NpdG9yeSB3aGVuIHVw
ZGF0aW5nIHRoZSBwYXRocy4gYGByZW1vdGVfdXJsYGAgc3BlY2lmaWVzIHRoZSBnaXQKK3VybCB0
byBwdWxsIGZyb207IGBgYnJhbmNoYGAgdGhlIGJyYW5jaCB0byBzeW5jIGFnYWluc3QgYW5kCitg
YHN5bmNfcGF0aGBgIHRoZSBsb2NhbCBwYXRoLCByZWxhdGl2ZSB0byB0aGUgY29uZmlndXJhdGlv
biBmaWxlLCB0bwordXNlIHdoZW4gY2hlY2tpbmcgb3V0IHRoZSB0ZXN0cyBlLmcuOjoKKworICBb
d2ViLXBsYXRmb3JtLXRlc3RzXQorICByZW1vdGVfdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMuZ2l0CisgIGJyYW5jaCA9IG1hc3RlcgorICBzeW5jX3BhdGgg
PSBzeW5jCisKK0EgY29uZmlndXJhdGlvbiBmaWxlIG11c3QgY29udGFpbiBhbGwgdGhlIGFib3Zl
IGZpZWxkczsgZmFsbGluZyBiYWNrCit0byB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHVuc3BlY2lm
aWVkIGZpZWxkcyBpcyBub3QgeWV0IHN1cHBvcnRlZC4KKworVGhlIGBgd3B0cnVubmVyYGAgYW5k
IGBgd3B0dXBkYXRlYGAgY29tbWFuZHMgd2lsbCB1c2UgY29uZmlndXJhdGlvbgorZmlsZXMgaW4g
dGhlIGZvbGxvd2luZyBvcmRlcjoKKworICogQW55IHBhdGggc3VwcGxpZWQgd2l0aCBhIGBgLS1j
b25maWdgYCBmbGFnIHRvIHRoZSBjb21tYW5kLgorCisgKiBBIGZpbGUgY2FsbGVkIGBgd3B0cnVu
bmVyLmluaWBgIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeQorCisgKiBUaGUgZGVmYXVsdCBjb25m
aWd1cmF0aW9uIGZpbGUgKGBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYGAgaW4gdGhlCisgICBzb3Vy
Y2UgZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2Rv
Y3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJjNjFhZjhlMmUwM2ExMzE1YmFhNjk5ZWU1
ZDliOGFiMzM3ODcxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyNCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvYXJj
aGl0ZWN0dXJlLnN2ZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L2RvY3MvZXhwZWN0YXRpb24ucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL21ha2Uu
YmF0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYTNhMzM0ZDM3OWVkZTc4ZWE5NmMx
NTMwOTI5NDNlMGY0NDFjN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0
CkBAIC0wLDAgKzEsNSBAQAoraHRtbDVsaWIgPT0gMS4wLjEKK21vemluZm8gPT0gMC4xMAorbW96
bG9nID09IDMuNworbW96ZGVidWcgPT0gMC4xCit1cmxsaWIzW3NlY3VyZV0gPT0gMS4yMgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNWU0ODA2ODcyMmVkMzAxMjM1NDM2OWMwZDc0ZGQyYmRhM2Q3
OTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKQEAgLTAs
MCArMSwyIEBACittb3pwcm9jZXNzID09IDAuMjYKK3NlbGVuaXVtPT0zLjExLjAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
Y2hyb21lX2FuZHJvaWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZTQ4MDY4NzIyZWQzMDEyMzU0MzY5YzBk
NzRkZDJiZGEzZDc5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
X2FuZHJvaWQudHh0CkBAIC0wLDAgKzEsMiBAQAorbW96cHJvY2VzcyA9PSAwLjI2CitzZWxlbml1
bT09My4xMS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfZWRnZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlNDgwNjg3MjJlZDMwMTIzNTQzNjljMGQ3
NGRkMmJkYTNkNzkyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4
dApAQCAtMCwwICsxLDIgQEAKK21venByb2Nlc3MgPT0gMC4yNgorc2VsZW5pdW09PTMuMTEuMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2ZpcmVmb3gudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MmE2YTA5MjIxY2UxMDg2NzJhY2ZmOTIxNmE3NGRl
ZTBiNGQxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQK
QEAgLTAsMCArMSw4IEBACittYXJpb25ldHRlX2RyaXZlciA9PSAyLjUuMAorbW96cHJvZmlsZSA9
PSAwLjI5Cittb3pwcm9jZXNzID09IDAuMjYKK21vemNyYXNoID09IDEuMAorbW96cnVubmVyID09
IDYuMTQKK21vemxlYWsgPT0gMC4xCittb3ppbnN0YWxsID09IDEuMTUKK21vemRvd25sb2FkID09
IDEuMjMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfaWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZTQ4MDY4NzIyZWQzMDEyMzU0MzY5YzBkNzRkZDJiZGEz
ZDc5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0CkBAIC0wLDAg
KzEsMiBAQAorbW96cHJvY2VzcyA9PSAwLjI2CitzZWxlbml1bT09My4xMS4wCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNWU0ODA2ODcyMmVkMzAxMjM1NDM2OWMwZDc0ZGQyYmRhM2Q3OTI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dApAQCAtMCwwICsxLDIgQEAK
K21venByb2Nlc3MgPT0gMC4yNgorc2VsZW5pdW09PTMuMTEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX3NhZmFyaS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNWU0ODA2ODcyMmVkMzAxMjM1NDM2OWMwZDc0ZGQyYmRhM2Q3OTI5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAgLTAsMCArMSwyIEBACittb3pw
cm9jZXNzID09IDAuMjYKK3NlbGVuaXVtPT0zLjExLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19zYXVjZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUw
YWU3ZTI2MmM1ZmY0OGY0ODA0YTUwOGRiYzg5NGE1YWFjMWUzZmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CkBAIC0wLDAgKzEsMyBAQAorbW96cHJvY2VzcyA9
PSAwLjI2CitzZWxlbml1bT09My4xMS4wCityZXF1ZXN0cz09Mi4xOC40CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2Vydm8udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MTE1YjdhYzRlOGY2YTZlNDcwM2E3YjYxZDI3MTUwNzVlMmY2MDUzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dApAQCAtMCwwICsxIEBACittb3pw
cm9jZXNzID09IDAuMjYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVjYzU4NDZlZTcyMDQ5MjMy
MTczOTYxOTE5OTZlMTVmZDIzZGMxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c193ZWJraXQudHh0CkBAIC0wLDAgKzEsMiBAQAorbW96cHJvY2VzcyA9PSAwLjI2CitzZWxlbml1
bSA9PSAzLjkuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42M2QzZWRkZTI0NGQwYjllODhhYmJkYWE4YzU3OWE0YTg4MDcyMzZhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvc2V0dXAucHkKQEAgLTAsMCArMSw3MSBAQAorIyBUaGlzIFNvdXJjZSBDb2Rl
IEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCisjIExp
Y2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3
aXRoIHRoaXMgZmlsZSwKKyMgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9y
Zy9NUEwvMi4wLy4KKworaW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0
IHRleHR3cmFwCisKK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMK
KworaGVyZSA9IG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdCisKK1BBQ0tBR0VfTkFNRSA9ICd3
cHRydW5uZXInCitQQUNLQUdFX1ZFUlNJT04gPSAnMS4xNCcKKworIyBEZXBlbmRlbmNpZXMKK3dp
dGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlcXVpcmVtZW50cy50eHQiKSkgYXMgZjoKKyAg
ICBkZXBzID0gZi5yZWFkKCkuc3BsaXRsaW5lcygpCisKKyMgQnJvd3Nlci1zcGVjaWZpYyByZXF1
aXJlbWVudHMKK3JlcXVpcmVtZW50c19maWxlcyA9IGdsb2IuZ2xvYigicmVxdWlyZW1lbnRzXyou
dHh0IikKKworcHJvZmlsZV9kZXN0ID0gTm9uZQorZGVzdF9leGlzdHMgPSBGYWxzZQorCitzZXR1
cChuYW1lPVBBQ0tBR0VfTkFNRSwKKyAgICAgIHZlcnNpb249UEFDS0FHRV9WRVJTSU9OLAorICAg
ICAgZGVzY3JpcHRpb249Ikhhcm5lc3MgZm9yIHJ1bm5pbmcgdGhlIFczQyB3ZWItcGxhdGZvcm0t
dGVzdHMgYWdhaW5zdCB2YXJpb3VzIHByb2R1Y3RzIiwKKyAgICAgIGF1dGhvcj0nTW96aWxsYSBB
dXRvbWF0aW9uIGFuZCBUZXN0aW5nIFRlYW0nLAorICAgICAgYXV0aG9yX2VtYWlsPSd0b29sc0Bs
aXN0cy5tb3ppbGxhLm9yZycsCisgICAgICBsaWNlbnNlPSdNUEwgMi4wJywKKyAgICAgIHBhY2th
Z2VzPWZpbmRfcGFja2FnZXMoZXhjbHVkZT1bInRlc3RzIiwgIm1ldGFkYXRhIiwgInByZWZzIl0p
LAorICAgICAgZW50cnlfcG9pbnRzPXsKKyAgICAgICAgICAnY29uc29sZV9zY3JpcHRzJzogWwor
ICAgICAgICAgICAgICAnd3B0cnVubmVyID0gd3B0cnVubmVyLndwdHJ1bm5lcjptYWluJywKKyAg
ICAgICAgICAgICAgJ3dwdHVwZGF0ZSA9IHdwdHJ1bm5lci51cGRhdGU6bWFpbicsCisgICAgICAg
ICAgXQorICAgICAgfSwKKyAgICAgIHppcF9zYWZlPUZhbHNlLAorICAgICAgcGxhdGZvcm1zPVsn
QW55J10sCisgICAgICBjbGFzc2lmaWVycz1bJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0
YScsCisgICAgICAgICAgICAgICAgICAgJ0Vudmlyb25tZW50IDo6IENvbnNvbGUnLAorICAgICAg
ICAgICAgICAgICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKKyAgICAgICAg
ICAgICAgICAgICAnTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogQlNEIExpY2Vuc2UnLAorICAg
ICAgICAgICAgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50J10sCisg
ICAgICBwYWNrYWdlX2RhdGE9eyJ3cHRydW5uZXIiOiBbImV4ZWN1dG9ycy90ZXN0aGFybmVzc19t
YXJpb25ldHRlLmpzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhlY3V0
b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9ycy9yZWZ0ZXN0LmpzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdC5qcyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNzcmVwb3J0LmpzIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3cHRydW5uZXIuZGVmYXVsdC5pbmkiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJicm93c2Vycy9zYXVjZV9zZXR1cC8qIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlZnMvKiJdfSwKKyAgICAgIGluY2x1
ZGVfcGFja2FnZV9kYXRhPVRydWUsCisgICAgICBkYXRhX2ZpbGVzPVsoInJlcXVpcmVtZW50cyIs
IHJlcXVpcmVtZW50c19maWxlcyldLAorICAgICAgaW5zdGFsbF9yZXF1aXJlcz1kZXBzCisgICAg
ICApCisKK2lmICJpbnN0YWxsIiBpbiBzeXMuYXJndjoKKyAgICBwYXRoID0gb3MucGF0aC5yZWxw
YXRoKG9zLnBhdGguam9pbihzeXMucHJlZml4LCAicmVxdWlyZW1lbnRzIiksIG9zLmN1cmRpcikK
KyAgICBwcmludCB0ZXh0d3JhcC5maWxsKCIiIkluIG9yZGVyIHRvIHVzZSB3aXRoIG9uZSBvZiB0
aGUgYnVpbHQtaW4gYnJvd3NlcgorcHJvZHVjdHMsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCB0
aGUgZXh0cmEgZGVwZW5kZW5jaWVzLiBUaGVzZSBhcmUgcHJvdmlkZWQKK2FzIHJlcXVpcmVtZW50
c19bbmFtZV0udHh0IGluIHRoZSAlcyBkaXJlY3RvcnkgYW5kIGNhbiBiZSBpbnN0YWxsZWQgdXNp
bmcKK2UuZy4iIiIgJSBwYXRoLCA4MCkKKworICAgIHByaW50ICIiIgorCitwaXAgaW5zdGFsbCAt
ciAlcy9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKKyIiIiAlIHBhdGgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODFhZWYwNDljZDEyMmY3MzMyYzY2ZjVhMDg3OTQ3ZTUxMmE1OWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pCkBA
IC0wLDAgKzEsMyBAQAorW3JlZnRlc3RfYW5kX2ZhaWwuaHRtbF0KKyAgdHlwZTogcmVmdGVzdAor
ICBleHBlY3RlZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcyYjMzZjc3NjRiZGU2ZTJhZWE3
YmMyY2NkOGJmMzczOWJhYmFkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKQEAgLTAsMCArMSwzIEBACitbcmVm
dGVzdF9jeWNsZV9mYWlsLmh0bWxdCisgIHR5cGU6IHJlZnRlc3QKKyAgZXhwZWN0ZWQ6IEZBSUwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwu
aHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0
bWwuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYzZGMzMzYyZmFjNDFiYmU4ZGVkNDQ1ODllODk4ZWY1ODljYjFh
ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
YXRjaF9mYWlsLmh0bWwuaW5pCkBAIC0wLDAgKzEsMyBAQAorW3JlZnRlc3RfbWF0Y2hfZmFpbC5o
dG1sXQorICB0eXBlOiByZWZ0ZXN0CisgIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwuaW5pIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sLmluaQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMDU1MzM3ZTJkNjVjYjhmMjFkMmNlYWM2MmUzNWNlN2JiOTlhOTc2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFp
bC5odG1sLmluaQpAQCAtMCwwICsxLDMgQEAKK1tyZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbF0K
KyAgdHlwZTogcmVmdGVzdAorICBleHBlY3RlZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21l
dGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sLmluaQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
OTM2MjQxYWQyOWNkMTYyZjk2MTA3NmMyYmE4ZWI5NjBmNzY5OGMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5pbmkK
QEAgLTAsMCArMSwzIEBACitbcmVmdGVzdF9yZWZfdGltZW91dC5odG1sXQorICB0eXBlOiByZWZ0
ZXN0CisgIGV4cGVjdGVkOiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfdGltZW91dC5odG1sLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDFiOWJhZGU5NWQ3YjEwMWM4
ZGJmNTE1NDdmZmJhZWMyMjYwYzI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmluaQpAQCAtMCwwICsxLDMgQEAKK1tyZWZ0
ZXN0X3RpbWVvdXQuaHRtbF0KKyAgdHlwZTogcmVmdGVzdAorICBleHBlY3RlZDogVElNRU9VVApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZTRmYmI3
NjM5NmViMjY0MWIzYTQwZmYxYWZhNDdmYWFlM2Q4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmluaQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sLmluaQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9fX2Rpcl9fLmluaSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9fX2Rpcl9fLmluaQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOWQxNjRjZDQxOGEyYTc3Yzc5MzY2OWM3Y2Y2YjA5ZmZjNjE4ZTY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L19fZGlyX18uaW5pCkBA
IC0wLDAgKzEsMiBAQAorcHJlZnM6IFsiYnJvd3Nlci5kaXNwbGF5LmZvcmVncm91bmRfY29sb3I6
I0ZGMDAwMCIsCisgICAgICAgICJicm93c2VyLmRpc3BsYXkuYmFja2dyb3VuZF9jb2xvcjojMDAw
MDAwIl0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21l
dGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sLmlu
aSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVm
X3Jlc2V0Lmh0bWwuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTE5OGQ5YmJmMWM3NzliZTQyZjQ3YmI1MmM2
ODk2ZjlhZDYyNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJu
ZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sLmluaQpAQCAtMCwwICsxLDIg
QEAKK1t0ZXN0X3ByZWZfcmVzZXQuaHRtbF0KKyAgcHJlZnM6IFtAUmVzZXRdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU1OTY1MDZiN2Q4ODEyNjc3NTQ4NGMwNmEzMTQ2Njg0Y2M4
ZGMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJl
Zm94L3N1YmRpci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5o
dG1sLmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94
L3Rlc3RfcHJlZl9zZXQuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvdGVzdF9wcmVmX3NldC5odG1sLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzliZmI5YzQxMzk3ZGMx
N2RjYWZmMGE0NDlkZjgxMGVmNDljYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbC5pbmkKQEAgLTAsMCAr
MSwzIEBACitbdGVzdF9wcmVmX3NldC5odG1sXQorICBwcmVmczogWyJicm93c2VyLmRpc3BsYXku
Zm9yZWdyb3VuZF9jb2xvcjojMDBGRjAwIiwKKyAgICAgICAgICAiYnJvd3Nlci5kaXNwbGF5LmJh
Y2tncm91bmRfY29sb3I6IzAwMDAwMCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rl
c3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQwZmZlMWNkODZhYzY5
ZTQ2MmMxMTk0ODYyMTFhMWYxMmU4YTNjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0
YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvX19kaXJfXy5p
bmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX3NldC5o
dG1sLmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIv
X19kaXJfXy5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci9fX2Rpcl9f
LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hOTE1N2ZiYzZhOWY0YTlhNmJiM2M4OTRiM2UwOTViZmE1MWUzMTRj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIv
X19kaXJfXy5pbmkKQEAgLTAsMCArMSBAQAorZGlzYWJsZWQ6IHRydWUKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1
YmRpci90ZXN0aGFybmVzc18xLmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVz
cy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjkzOTM5ODdiNmM3
M2U2OTEwYWZjZjBjYTBiNzUzOGZjZGI5MTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sLmluaQpAQCAtMCww
ICsxLDIgQEAKK1t0ZXN0aGFybmVzc18xLmh0bWxdCisgIGRpc2FibGVkOiBARmFsc2UKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5l
c3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YzkxMzc4OTI2ZTQxMTRkYjdl
MTM3NmYxM2RmODMyYTMzYjhmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRh
L3Rlc3RoYXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci9fX2Rpcl9fLmluaQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5o
dG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1s
LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MGI5YTZlOWYwMTJiNWUyMzRjMTVkMjk4MDVjNjFmNmJlOGQ1YTU0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFy
bmVzc18wLmh0bWwuaW5pCkBAIC0wLDAgKzEsNCBAQAorW3Rlc3RoYXJuZXNzXzAuaHRtbF0KKyAg
dHlwZTogdGVzdGhhcm5lc3MKKyAgW1Rlc3QgdGhhdCBzaG91bGQgZmFpbF0KKyAgICBleHBlY3Rl
ZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFy
bmVzc19lcnJvci5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhh
cm5lc3NfZXJyb3IuaHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE1M2UwNzMzYWJjYjE3MzkxOWIzZDQ4
YTc3NjdiNWJiYWQ4YjBlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVz
dGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbC5pbmkKQEAgLTAsMCArMSwzIEBACitbdGVz
dGhhcm5lc3NfZXJyb3IuaHRtbF0KKyAgdHlwZTogdGVzdGhhcm5lc3MKKyAgZXhwZWN0ZWQ6IEVS
Uk9SCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNz
X3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJu
ZXNzX3RpbWVvdXQuaHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVlY2E1MTkxYWIxZmE2YzVkNTUzMWEx
ZTA1Yjk5MmQwOTcyM2RlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVz
dGhhcm5lc3MvdGVzdGhhcm5lc3NfdGltZW91dC5odG1sLmluaQpAQCAtMCwwICsxLDMgQEAKK1t0
ZXN0aGFybmVzc190aW1lb3V0Lmh0bWxdCisgIHR5cGU6IHRlc3RoYXJuZXNzCisgIGV4cGVjdGVk
OiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MGRiNTU3ZTYwYjMyZjE0NTk1NGM4Mzg2Mzg0ODdmZDViZDdkYjk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNz
L3Rlc3RoYXJuZXNzXzAuaHRtbC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rl
c3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy90
ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2Zn
LmV4YW1wbGUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2ZnLmV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI0ODIyNjIx
NmMzMGViN2Q4YjA3ODE4OTYzNjk2NGI3ZjdjZTUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdC5jZmcuZXhhbXBsZQpAQCAtMCwwICsxLDIwIEBACitbZ2VuZXJhbF0KK3Rlc3RzPS9w
YXRoL3RvL3dlYi1wbGF0Zm9ybS10ZXN0cy8KK21ldGFkYXRhPS9wYXRoL3RvL3dlYi1wbGF0Zm9y
bS10ZXN0cy8KK3NzbC10eXBlPW5vbmUKKworIyBbZmlyZWZveF0KKyMgYmluYXJ5PS9wYXRoL3Rv
L2ZpcmVmb3gKKyMgcHJlZnMtcm9vdD0vcGF0aC90by9nZWNrby1zcmMvdGVzdGluZy9wcm9maWxl
cy8KKworIyBbc2Vydm9dCisjIGJpbmFyeT0vcGF0aC90by9zZXJ2by1zcmMvdGFyZ2V0L3JlbGVh
c2Uvc2Vydm8KKyMgZXhjbHVkZT10ZXN0aGFybmVzcyAjIEJlY2F1c2UgaXQgbmVlZHMgYSBzcGVj
aWFsIHRlc3RoYXJuZXNzLmpzCisKKyMgW3NlcnZvZHJpdmVyXQorIyBiaW5hcnk9L3BhdGgvdG8v
c2Vydm8tc3JjL3RhcmdldC9yZWxlYXNlL3NlcnZvCisjIGV4Y2x1ZGU9dGVzdGhhcm5lc3MgIyBC
ZWNhdXNlIGl0IG5lZWRzIGEgc3BlY2lhbCB0ZXN0aGFybmVzcy5qcworCisjIFtjaHJvbWVdCisj
IGJpbmFyeT0vcGF0aC90by9jaHJvbWUKKyMgd2ViZHJpdmVyLWJpbmFyeT0vcGF0aC90by9jaHJv
bWVkcml2ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MjI5MzRhNDJiMGNjMDM5ZWI3YTA0OTA3NDZiZWJjYzAyMmVhNDI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LnB5CkBAIC0wLDAgKzEsMTY3IEBACitpbXBvcnQg
Q29uZmlnUGFyc2VyCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2lt
cG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRocmVhZGluZworaW1wb3J0IHRpbWUK
K2Zyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1
Y3R1cmVkbG9nLCByZWFkZXIKK2Zyb20gbW96bG9nLmhhbmRsZXJzIGltcG9ydCBCYXNlSGFuZGxl
ciwgU3RyZWFtSGFuZGxlciwgU3RhdHVzSGFuZGxlcgorZnJvbSBtb3psb2cuZm9ybWF0dGVycyBp
bXBvcnQgTWFjaEZvcm1hdHRlcgorZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdGNvbW1hbmRsaW5l
LCB3cHRydW5uZXIKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pKQorCitkZWYgc2V0dXBfd3B0cnVubmVyX2xvZ2dpbmcobG9nZ2VyKToKKyAgICBzdHJ1
Y3R1cmVkbG9nLnNldF9kZWZhdWx0X2xvZ2dlcihsb2dnZXIpCisgICAgd3B0cnVubmVyLmxvZ2dl
ciA9IGxvZ2dlcgorICAgIHdwdHJ1bm5lci53cHRsb2dnaW5nLnNldHVwX3N0ZGxpYl9sb2dnZXIo
KQorCitjbGFzcyBSZXN1bHRIYW5kbGVyKEJhc2VIYW5kbGVyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgdmVyYm9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUpOgorICAgICAgICBzZWxmLmlubmVyID0g
U3RyZWFtSGFuZGxlcihzeXMuc3Rkb3V0LCBNYWNoRm9ybWF0dGVyKCkpCisgICAgICAgIEJhc2VI
YW5kbGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuaW5uZXIpCisgICAgICAgIHNlbGYucHJvZHVjdCA9
IE5vbmUKKyAgICAgICAgc2VsZi52ZXJib3NlID0gdmVyYm9zZQorICAgICAgICBzZWxmLmxvZ2dl
ciA9IGxvZ2dlcgorCisgICAgICAgIHNlbGYucmVnaXN0ZXJfbWVzc2FnZV9oYW5kbGVycygid3B0
cnVubmVyLXRlc3QiLCB7InNldC1wcm9kdWN0Ijogc2VsZi5zZXRfcHJvZHVjdH0pCisKKyAgICBk
ZWYgc2V0X3Byb2R1Y3Qoc2VsZiwgcHJvZHVjdCk6CisgICAgICAgIHNlbGYucHJvZHVjdCA9IHBy
b2R1Y3QKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgc2VsZi5w
cm9kdWN0IGlzIG5vdCBOb25lIGFuZCBkYXRhWyJhY3Rpb24iXSBpbiBbInN1aXRlX3N0YXJ0Iiwg
InN1aXRlX2VuZCJdOgorICAgICAgICAgICAgIyBIYWNrOiBtb3psb2cgc2V0cyBzb21lIGludGVy
bmFsIHN0YXRlIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VpdGVfc3RhcnQgb3IKKyAgICAgICAgICAg
ICMgc3VpdGVfZW5kIG1lc3NhZ2VzLiBXZSBhY3R1YWxseSB3YW50IHRoYXQgaGVyZSAob25lIGZy
b20gdGhlIG1ldGFoYXJuZXNzCisgICAgICAgICAgICAjIGFuZCBvbmUgZnJvbSB0aGUgaW5kaXZp
ZHVhbCB0ZXN0IHR5cGUgaGFybmVzcyksIHNvIG92ZXJyaWRlIHRoYXQgaW50ZXJuYWwKKyAgICAg
ICAgICAgICMgc3RhdGUgKGEgYmV0dGVyIHNvbHV0aW9uIG1pZ2h0IGJlIHRvIG5vdCBzaGFyZSBs
b2dnZXJzLCBidXQgdGhpcyB3b3JrcyB3ZWxsCisgICAgICAgICAgICAjIGVub3VnaCkKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLl9zdGF0ZS5zdWl0ZV9zdGFydGVkID0gVHJ1ZQorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgaWYgKG5vdCBzZWxmLnZlcmJvc2UgYW5kCisgICAgICAgICAg
ICAoZGF0YVsiYWN0aW9uIl0gPT0gInByb2Nlc3Nfb3V0cHV0IiBvcgorICAgICAgICAgICAgIGRh
dGFbImFjdGlvbiJdID09ICJsb2ciIGFuZCBkYXRhWyJsZXZlbCJdIG5vdCBpbiBbImVycm9yIiwg
ImNyaXRpY2FsIl0pKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmICJ0ZXN0IiBp
biBkYXRhOgorICAgICAgICAgICAgZGF0YSA9IGRhdGEuY29weSgpCisgICAgICAgICAgICBkYXRh
WyJ0ZXN0Il0gPSAiJXM6ICVzIiAlIChzZWxmLnByb2R1Y3QsIGRhdGFbInRlc3QiXSkKKworICAg
ICAgICByZXR1cm4gc2VsZi5pbm5lcihkYXRhKQorCitkZWYgdGVzdF9zZXR0aW5ncygpOgorICAg
IHJldHVybiB7CisgICAgICAgICJpbmNsdWRlIjogIl90ZXN0IiwKKyAgICAgICAgIm1hbmlmZXN0
LXVwZGF0ZSI6ICIiLAorICAgICAgICAibm8tY2FwdHVyZS1zdGRpbyI6ICIiCisgICAgfQorCitk
ZWYgcmVhZF9jb25maWcoKToKKyAgICBwYXJzZXIgPSBDb25maWdQYXJzZXIuQ29uZmlnUGFyc2Vy
KCkKKyAgICBwYXJzZXIucmVhZCgidGVzdC5jZmciKQorCisgICAgcnYgPSB7ImdlbmVyYWwiOnt9
LAorICAgICAgICAgICJwcm9kdWN0cyI6e319CisKKyAgICBydlsiZ2VuZXJhbCJdLnVwZGF0ZShk
aWN0KHBhcnNlci5pdGVtcygiZ2VuZXJhbCIpKSkKKworICAgICMgVGhpcyBvbmx5IGFsbG93cyBv
bmUgcHJvZHVjdCBwZXIgd2hhdGV2ZXIgZm9yIG5vdworICAgIGZvciBwcm9kdWN0IGluIHBhcnNl
ci5zZWN0aW9ucygpOgorICAgICAgICBpZiBwcm9kdWN0ICE9ICJnZW5lcmFsIjoKKyAgICAgICAg
ICAgIGRlc3QgPSBydlsicHJvZHVjdHMiXVtwcm9kdWN0XSA9IHt9CisgICAgICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiBwYXJzZXIuaXRlbXMocHJvZHVjdCk6CisgICAgICAgICAgICAgICAgcnZb
InByb2R1Y3RzIl1bcHJvZHVjdF1ba2V5XSA9IHZhbHVlCisKKyAgICByZXR1cm4gcnYKKworZGVm
IHJ1bl90ZXN0cyhwcm9kdWN0LCBrd2FyZ3MpOgorICAgIGt3YXJnc1sidGVzdF9wYXRocyJdWyIv
X3Rlc3QvIl0gPSB7InRlc3RzX3BhdGgiOiBvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RkYXRhIiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCI6
IG9zLnBhdGguam9pbihoZXJlLCAibWV0YWRhdGEiKX0KKworICAgIHdwdHJ1bm5lci5ydW5fdGVz
dHMoKiprd2FyZ3MpCisKK2RlZiBzZXR0aW5nc190b19hcmd2KHNldHRpbmdzKToKKyAgICBydiA9
IFtdCisgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNldHRpbmdzLml0ZXJpdGVtcygpOgorICAgICAg
ICBrZXkgPSAiLS0lcyIgJSBuYW1lCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAg
IHJ2LmFwcGVuZChrZXkpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6Cisg
ICAgICAgICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKKyAgICAgICAgICAgICAgICBydi5leHRlbmQo
W2tleSwgaXRlbV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydi5leHRlbmQoW2tleSwg
dmFsdWVdKQorICAgIHJldHVybiBydgorCitkZWYgc2V0X2Zyb21fYXJncyhzZXR0aW5ncywgYXJn
cyk6CisgICAgaWYgYXJncy50ZXN0OgorICAgICAgICBzZXR0aW5nc1siaW5jbHVkZSJdID0gYXJn
cy50ZXN0CisgICAgaWYgYXJncy50YWdzOgorICAgICAgICBzZXR0aW5nc1sidGFncyJdID0gYXJn
cy50YWdzCisKK2RlZiBydW4oY29uZmlnLCBhcmdzKToKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVk
bG9nLlN0cnVjdHVyZWRMb2dnZXIoIndlYi1wbGF0Zm9ybS10ZXN0cyIpCisgICAgbG9nZ2VyLmFk
ZF9oYW5kbGVyKFJlc3VsdEhhbmRsZXIobG9nZ2VyPWxvZ2dlciwgdmVyYm9zZT1hcmdzLnZlcmJv
c2UpKQorICAgIHNldHVwX3dwdHJ1bm5lcl9sb2dnaW5nKGxvZ2dlcikKKworICAgIHBhcnNlciA9
IHdwdGNvbW1hbmRsaW5lLmNyZWF0ZV9wYXJzZXIoKQorCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0
KHRlc3RzPVtdKQorCisgICAgZm9yIHByb2R1Y3QsIHByb2R1Y3Rfc2V0dGluZ3MgaW4gY29uZmln
WyJwcm9kdWN0cyJdLml0ZXJpdGVtcygpOgorICAgICAgICBpZiBhcmdzLnByb2R1Y3QgYW5kIHBy
b2R1Y3Qgbm90IGluIGFyZ3MucHJvZHVjdDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAg
ICAgc2V0dGluZ3MgPSB0ZXN0X3NldHRpbmdzKCkKKyAgICAgICAgc2V0dGluZ3MudXBkYXRlKGNv
bmZpZ1siZ2VuZXJhbCJdKQorICAgICAgICBzZXR0aW5ncy51cGRhdGUocHJvZHVjdF9zZXR0aW5n
cykKKyAgICAgICAgc2V0dGluZ3NbInByb2R1Y3QiXSA9IHByb2R1Y3QKKyAgICAgICAgc2V0X2Zy
b21fYXJncyhzZXR0aW5ncywgYXJncykKKworICAgICAgICBrd2FyZ3MgPSB2YXJzKHBhcnNlci5w
YXJzZV9hcmdzKHNldHRpbmdzX3RvX2FyZ3Yoc2V0dGluZ3MpKSkKKyAgICAgICAgd3B0Y29tbWFu
ZGxpbmUuY2hlY2tfYXJncyhrd2FyZ3MpCisKKyAgICAgICAgbG9nZ2VyLnNlbmRfbWVzc2FnZSgi
d3B0cnVubmVyLXRlc3QiLCAic2V0LXByb2R1Y3QiLCBwcm9kdWN0KQorCisgICAgICAgIHJ1bl90
ZXN0cyhwcm9kdWN0LCBrd2FyZ3MpCisKKyAgICBsb2dnZXIuc2VuZF9tZXNzYWdlKCJ3cHRydW5u
ZXItdGVzdCIsICJzZXQtcHJvZHVjdCIsIE5vbmUpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisK
K2RlZiBnZXRfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJ2
ZXJib3NlIGxvZyBvdXRwdXQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcHJvZHVjdCIs
IGFjdGlvbj0iYXBwZW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNwZWNpZmlj
IHByb2R1Y3QgdG8gaW5jbHVkZSBpbiB0ZXN0IHJ1biIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS1wZGIiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iSW52b2tlIHBkYiBvbiB1bmNhdWdodCBleGNlcHRpb24iKQorICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tdGFnIiwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ0YWdzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9InRhZ3MgdG8gc2VsZWN0IHRlc3RzIikKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCJ0ZXN0IiwgbmFyZ3M9IioiLAorICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iU3BlY2lmaWMgdGVzdHMgdG8gaW5jbHVkZSBpbiB0ZXN0IHJ1biIpCisgICAgcmV0dXJu
IHBhcnNlcgorCitkZWYgbWFpbigpOgorICAgIGNvbmZpZyA9IHJlYWRfY29uZmlnKCkKKworICAg
IGFyZ3MgPSBnZXRfcGFyc2VyKCkucGFyc2VfYXJncygpCisKKyAgICB0cnk6CisgICAgICAgIHJ1
bihjb25maWcsIGFyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgaWYgYXJncy5w
ZGI6CisgICAgICAgICAgICBpbXBvcnQgcGRiCisgICAgICAgICAgICBpbXBvcnQgdHJhY2ViYWNr
CisgICAgICAgICAgICBwcmludCB0cmFjZWJhY2suZm9ybWF0X2V4YygpCisgICAgICAgICAgICBw
ZGIucG9zdF9tb3J0ZW0oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UKKworaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxNDVkNjBiNTViMzUwMjYz
OWQxNWYxMGQ0ZDYzYTZiMGY3OWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNCBAQAorPGxpbmsgcmVs
PW1hdGNoIGhyZWY9Z3JlZW4uaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDMgQEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9z
dHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
Z3JlZW4tcmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxNDVkNjBiNTViMzUwMjYzOWQxNWYxMGQ0ZDYz
YTZiMGY3OWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9n
cmVlbi1yZWYuaHRtbApAQCAtMCwwICsxLDQgQEAKKzxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVu
Lmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L2dyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0bWwKQEAg
LTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwv
c3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKQEAg
LTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Cis8L3N0
eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MTY3
YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0
eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhNDVmMTBmMzVlYjQ3MmVjMTNjYzVk
ZDI0N2ZmOGRmNWMyNjUzODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGxpbmsgcmVsPW1hdGNo
IGhyZWY9Z3JlZW4uaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0K
Kzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gImh0
dHBzOiIpIHsKKyAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29s
b3IgPSAiZ3JlZW4iOworfQorPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRmYjlhYTE1MTc2ZTYxOTFkZWQ1ZWNjZjQ0MmZjZmQ2
Y2RjZjU2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2FuZF9mYWlsLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+UmVmdGVz
dCBjaGFpbiB0aGF0IHNob3VsZCBmYWlsPC90aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJl
ZC5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5NjAxOTUzNTYyMzhmMDM1NDMy
MDdlOWU2YTM1OTkzNjFkYWViOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJl
ZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJl
Zj1yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWls
XzAtcmVmLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQw
MjljY2FiMDQwZjAxNjc4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBA
Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Cis8L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZmI5YWExNTE3NmU2MTkx
ZGVkNWVjY2Y0NDJmY2ZkNmNkY2Y1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCkBAIC0wLDAgKzEsNSBAQAor
PHRpdGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Cis8bGluayByZWw9
bWF0Y2ggaHJlZj1yZWQuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdy
ZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMThiZmQ4ODQ0N2I0ODIxMmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDUgQEAKKzx0aXRsZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90
aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbD4KKzxz
dHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9jeWNsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YTg0YTNiNjc0MWVlNDFmZTYxODdhOWJkYzc2NmQ3NDkyMDZj
ODNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGUuaHRtbApAQCAtMCwwICsxLDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFs
bCBtYXRjaDwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzAtcmVm
Lmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTliZTBiNjQxZGVmNmJkNzNhMGNjYTcyZjE3ZDMzMDQ2NDFiNDhlYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwg
bWF0Y2g8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZS5odG1sPgor
PHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV8wLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExOGJmZDg4NDQ3YjQ4MjEyYWYyOWU1
NDg2MWJiNmQ1MDlhNWUxYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPk9S
IG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVm
dGVzdF9jeWNsZV8xLXJlZi5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRhODRhM2I2NzQxZWU0MWZlNjE4N2E5YmRjNzY2ZDc0OTIwNmM4
M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9j
eWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJlZnRlc3Qg
d2l0aCBjeWNsZSwgYWxsIG1hdGNoPC90aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRl
c3RfY3ljbGVfMC1yZWYuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdy
ZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
OWJlMGI2NDFkZWY2YmQ3M2EwY2NhNzJmMTdkMzMwNDY0MWI0OGVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbApAQCAt
MCwwICsxLDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+
Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0bWw+Cis8c3R5bGU+Cis6cm9v
dCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGVfZmFpbC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZTU0OGM0NjIyNTU2MzhhMzJj
NDc0YTE3Nzc1OWZmNmQ3Y2NlYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1IEBA
Cis8dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9bWlz
bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNr
Z3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWls
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTc1ZTc2YzRjYzliYjc2NWY4ZmM4ZGZjMzQ0NTVhZDJlYjliYzQwNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2Zh
aWwuaHRtbApAQCAtMCwwICsxLDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGZhaWxz
PC90aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5o
dG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNzVlNzZjNGNjOWJiNzY1ZjhmYzhkZmMzNDQ1NWFkMmViOWJjNDA1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFp
bF8wLXJlZi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJlZnRlc3Qgd2l0
aCBjeWNsZSwgZmFpbHM8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNs
ZV9mYWlsXzAtcmVmLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVl
bn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4ZTU0OGM0NjIyNTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3Y2NlYWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAt
cmVmLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWls
czwvdGl0bGU+Cis8bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRt
bD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODE2N2JiNThkNTcx
ZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMg
QEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9tYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzNjYzZjMWVjZGYyMDAwZTRiMTE4NTY1NjYxNzYx
Yjg3NmE3Mjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfbWF0Y2guaHRtbApAQCAtMCwwICsxLDUgQEAKKzx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBz
aG91bGQgcGFzczwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgorPHN0
eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjY3N2UwMDYz
NGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQorPC9zdHls
ZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTkyNzJlZjc0ZGE4NzMz
N2EwMjIzZmNiMDBmMDUzY2ViYTVmYjUyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbApAQCAtMCwwICsxLDUgQEAKKzx0
aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2gg
aHJlZj1yZWQuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQor
PC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OnJlZH0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY1ZmEw
NzUwZDgzYjY3NTljMzBlYTQzNGZjNTA5MjU1MjQ2Y2Y4MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLmh0bWwKQEAgLTAsMCArMSw1
IEBACis8dGl0bGU+cmVsPW1pc21hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgorPGxpbmsg
cmVsPW1pc21hdGNoIGhyZWY9cmVkLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFp
bC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQy
YWNhODQ3MzFhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9taXNtYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5
bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfbWlzbWF0Y2hfZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMTYwYzRmYzIwMGNhOTc2MzFiMTg1
MDU4NDdkNTFmZDc2MmFiYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+
cmVsPW1pc21hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgorPGxpbmsgcmVsPW1pc21hdGNo
IGhyZWY9Z3JlZW4uaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVu
fQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDMgQEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KKzwv
c3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3Rfb3JfMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNTFkZTIxNjQ0MTAzYTkzZjU5ZDRj
NTY1NDI4Y2MyZDE2MDZlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9vcl8wLmh0bWwKQEAgLTAsMCArMSw2IEBACis8dGl0bGU+T1IgbWF0Y2gg
dGhhdCBzaG91bGQgcGFzczwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWQuaHRtbD4K
KzxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dy
b3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1l
b3V0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRjYmI3MWUwYzNjNDI4NmMwMGQ0YzAxZWNl
NmFiMWExYmVjNjFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRt
bCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KKzx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgdGlt
ZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X3Jl
Zl90aW1lb3V0LXJlZi5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3Jl
ZW59Cis8L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfcmVmX3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3Jl
Zl90aW1lb3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFmNjhmNWNiNWZhMDRjZDM2NWE3MTkxZWVjZWFm
YTM1Y2MzY2U0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzx0aXRsZT5y
ZWw9bWF0Y2ggdGhhdCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Cis8bGluayBy
ZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1sPgorPHN0eWxlPgorOnJv
b3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0LWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpn
cmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMGU2NzZi
ZjAwNTJlN2JjYmUyZTkyMTRhNjkwYjNjZTY2NWRhODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwKQEAgLTAsMCArMSw2IEBA
Cis8aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KKzx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91
bGQgdGltZW91dDwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgorPHN0
eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpyZWR9Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY5Mjcx
NWM2MWU3ZDkyMmE5NDk1ZTk3MzdjOTk2ZTdjMDZjMzdkNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5odG1sCkBAIC0wLDAgKzEsMTMg
QEAKKzxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNo
b3VsZCBmYWlsPC90aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5odG1sPgorPHN0eWxl
PgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuYmFj
a2dyb3VuZENvbG9yID0gImdyZWVuIjsKKyAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNz
TmFtZSA9ICIiOworfSwgMjAwMCk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWQxMDA4MTQxZWNlYmY1ZDM3YWIw
NDIyODFkMjU0ZWIwNmNmYzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsNTMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L2dyZWVuLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdC5odHRwcy1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3QuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2Fu
ZF9mYWlsLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9h
bmRfZmFpbC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxf
MC1yZWYtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2Fu
ZF9mYWlsXzAtcmVmLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNs
ZS1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVj
dGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYtZXhwZWN0
ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVk
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVj
dGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAt
cmVmLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3Rl
ZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfcmVmX3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF90aW1lb3V0LWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF90aW1lb3V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93
YWl0XzAtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dh
aXRfMC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVm
b3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTBiMjg1MTk0YjRhZTAxMGM2OTljN2FlY2Y3N2Q3NzFjMjIxMzJkMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVm
X2luaGVyaXQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5F
eGFtcGxlIHByZWYgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8cD5UZXN0IHJlcXVpcmVzIHRoZSBwcmVmIGJyb3dzZXIuZGlz
cGxheS5mb3JlZ3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0byAjMDBGRjAwPC9wPgorPHNjcmlwdD4K
K3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5ib2R5KS5jb2xvciwgInJnYigyNTUsIDAsIDApIik7Cit9LCAiVGVzdCB0aGF0IHByZWYg
d2FzIHNldCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Yzc1YzExNjA1MjJjZTgxNDE0ZWRkZWU0Yjk0Y2NhZTIxNzg1YTIyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90
ZXN0X3ByZWZfcmVzZXQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0
aXRsZT5FeGFtcGxlIHByZWYgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8cD5UZXN0IHJlcXVpcmVzIHRoZSBwcmVmIGJyb3dz
ZXIuZGlzcGxheS5mb3JlZ3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0byAjMDBGRjAwPC9wPgorPHNj
cmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5ib2R5KS5jb2xvciwgInJnYigwLCAwLCAwKSIpOworfSwgIlRlc3QgdGhhdCBw
cmVmIHdhcyByZXNldCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMzY3YWIzOGE2MDNmZmRlOWY1NjkwN2JmOWFkY2FmZDRiYzZjZmY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVm
X2Rpci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJl
Zl9kaXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDVkOTA3MGM5ZGNlYWRjZGIwY2M2NDcxMzg5Njc4Yzhk
MjcxOWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9m
aXJlZm94L3Rlc3RfcHJlZl9kaXIuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRt
bD4KKzx0aXRsZT5FeGFtcGxlIHByZWYgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8cD5UZXN0IHJlcXVpcmVzIHRoZSBwcmVm
IGJyb3dzZXIuZGlzcGxheS5mb3JlZ3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0byAjRkYwMDAwPC9w
PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5jb2xvciwgInJnYigyNTUsIDAsIDApIik7Cit9LCAiVGVz
dCB0aGF0IHByZWYgd2FzIHNldCIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX3NldC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZTVlMjk4OWJmNzI5OWY0MjJjOWRjMGMxM2YyYzcyOThmMGRmZjUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQu
aHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5FeGFtcGxlIHBy
ZWYgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8cD5UZXN0IHJlcXVpcmVzIHRoZSBwcmVmIGJyb3dzZXIuZGlzcGxheS5mb3Jl
Z3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0byAjMDBGRjAwPC9wPgorPHNjcmlwdD4KK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5
KS5jb2xvciwgInJnYigwLCAyNTUsIDApIik7Cit9LCAiVGVzdCB0aGF0IHByZWYgd2FzIHNldCIp
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVm
b3gvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5ZGQwZTA2MWJkZjkwMzA3ZjI4ODJhMTAy
MjUxN2M2MmVmNGE1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
K0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX2Rpci5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5l
c3NfMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5l
c3NfMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMmZjNDMxZDM5OTk4ZDZiZmE2M2JjMGUzYjc4ODQ3OTEw
MTRjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1
YmRpci90ZXN0aGFybmVzc18xLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUgaHRtbD4K
Kzx0aXRsZT5UZXN0IHNob3VsZCBiZSBlbmFibGVkPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9u
KCkgeworICBhc3NlcnRfdHJ1ZSh0cnVlKTsKK30sICJUZXN0IHRoYXQgc2hvdWxkIHBhc3MiKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJk
aXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci93
M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGI2MTM1ZmEwODdiMzkzZmRjYjY0YmYzZTQ5ZWQy
YTEzNjAwNTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVz
cy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTg3MWVhYzAwMTQ4ZDQ0YThiZWJkYzQzOTRlMWNiOGI0ZDU4ZGFjOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3MuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5FeGFtcGxl
IGh0dHBzIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF9lcXVh
bHMod2luZG93LmxvY2F0aW9uLnByb3RvY29sLCAiaHR0cHM6Iik7Cit9LCAiVGVzdCB0aGF0IGZp
bGUgd2FzIGxvYWRlZCB3aXRoIHRoZSBjb3JyZWN0IHByb3RvY29sIik7CisKKzwvc2NyaXB0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFy
bmVzcy90ZXN0aGFybmVzc18wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYwNjU0Y2I5YTA5MjUxYWQwMDgy
ZThkODQ5MThiMjA2OGMxMmUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8dGl0bGU+VGVzdCBzaG91bGQgYmUgZGlzYWJsZWQ8L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIGFzc2VydF90cnVlKGZhbHNlKTsKK30sICJUZXN0IHRoYXQgc2hvdWxk
IGZhaWwiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFy
bmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVz
cy90ZXN0aGFybmVzc19lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYzViYTQ2YTMzMDVmNmZiYzYz
ZGQ4ZDFmYzc0OTYwMzRkYTlhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzx0aXRsZT50ZXN0aGFybmVzcy5qcyB0ZXN0IHRoYXQgc2hvdWxkIGVycm9y
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+Cit1bmRlZmluZWRfZnVuY3Rpb24oKQorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2xvbmdfdGltZW91dC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19sb25nX3RpbWVv
dXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mYzk0ZTA1NWJlMGM1NTQ1NGMxMmUwODUwMWNjOTgxZmRhZjQ1
ODM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0
aGFybmVzc19sb25nX3RpbWVvdXQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1s
PgorPHRpdGxlPnRlc3RoYXJuZXNzLmpzIHRlc3Qgd2l0aCBsb25nIHRpbWVvdXQ8L3RpdGxlPgor
PG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3Qo
IkxvbmcgdGltZW91dCB0ZXN0Iik7CitzZXRUaW1lb3V0KHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rp
b24oKSB7YXNzZXJ0X3RydWUodHJ1ZSl9KSwgMTUqMTAwMCk7Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJu
ZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5l
c3MvdGVzdGhhcm5lc3NfdGltZW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5OTkxNWFjNzQ1Mzk1MmFh
MTk5YzdhYzI0ZTkxOTQ1OWY2NjVhNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbApAQCAtMCwwICsxLDYgQEAK
KzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPlNpbXBsZSB0ZXN0aGFybmVzcy5qcyB1c2FnZTwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisK
Ky8vIFRoaXMgZmlsZSBzaG91bGQgdGltZSBvdXQsIG9idmlvdXNseQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJmOTI1NWQwZjE3OWY4MTJmMzc4ZjlkNDg0YjUyNTNmOTViMzYzZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5l
c3MvdGVzdGhhcm5lc3MuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mv
dGVzdGhhcm5lc3NfMC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFy
bmVzc19lcnJvci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVz
c19sb25nX3RpbWVvdXQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhh
cm5lc3NfdGltZW91dC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDk5OGYwODBkYmUzNmIzNzI0NTk5
MzE5ZmY1NzI1MDQyNTBmYmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2ZnLmV4YW1wbGUK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJiMzAyNTg1ZmY0MTYyMjc0Y2FhYzA2ZDRhNjAxNTg3NWZjMGFiZTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCkBAIC0wLDAgKzEsNjIgQEAKK1tweXRlc3RdCit4ZmFp
bF9zdHJpY3Q9dHJ1ZQorCitbdG94XQorZW52bGlzdCA9IHtweTI3LHB5cHl9LXtiYXNlLGNocm9t
ZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJpLHNhdWNlLHNlcnZvfSxweTI3LWZsYWtlOAor
CitbdGVzdGVudl0KK2RlcHMgPQorICAgICBweXRlc3Q+PTIuOQorICAgICBweXRlc3QtY292Cisg
ICAgIHB5dGVzdC14ZGlzdAorICAgICBtb2NrCisgICAgIC1ye3RveGluaWRpcn0vcmVxdWlyZW1l
bnRzLnR4dAorICAgICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9tZS50
eHQKKyAgICAgZWRnZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZWRnZS50eHQKKyAgICAg
ZmlyZWZveDogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKKyAgICAgaWU6
IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2llLnR4dAorICAgICBvcGVyYTogLXJ7dG94aW5p
ZGlyfS9yZXF1aXJlbWVudHNfb3BlcmEudHh0CisgICAgIHNhZmFyaTogLXJ7dG94aW5pZGlyfS9y
ZXF1aXJlbWVudHNfc2FmYXJpLnR4dAorICAgICBzYXVjZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJl
bWVudHNfc2F1Y2UudHh0CisgICAgIHNlcnZvOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19z
ZXJ2by50eHQKKworY29tbWFuZHMgPSBweXRlc3Qge3Bvc2FyZ3M6LS1jb3Z9CisKK3NldGVudiA9
IENVUlJFTlRfVE9YX0VOViA9IHtlbnZuYW1lfQorCitbdGVzdGVudjpweTI3LWZsYWtlOF0KKyMg
Zmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5p
bmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKK2RlcHMg
PQorICAgICBmbGFrZTg9PTMuNS4wCisgICAgIHB5Y29kZXN0eWxlPT0yLjMuMQorICAgICBweWZs
YWtlcz09MS42LjAKKyAgICAgcGVwOC1uYW1pbmc9PTAuNC4xCisKK2NvbW1hbmRzID0KKyAgICAg
Zmxha2U4CisKK1tmbGFrZThdCisjIGZsYWtlOCBjb25maWcgc2hvdWxkIGJlIGtlcHQgaW4gc3lu
YyBhY3Jvc3MgdG9vbHMvdG94LmluaSwgdG9vbHMvd3B0L3RveC5pbmksIGFuZCB0b29scy93cHRy
dW5uZXIvdG94LmluaQorc2VsZWN0ID0gRSxXLEYsTgorIyBFMTI4OiBjb250aW51YXRpb24gbGlu
ZSB1bmRlci1pbmRlbnRlZCBmb3IgdmlzdWFsIGluZGVudAorIyBFMTI5OiB2aXN1YWxseSBpbmRl
bnRlZCBsaW5lIHdpdGggc2FtZSBpbmRlbnQgYXMgbmV4dCBsb2dpY2FsIGxpbmUKKyMgRTIyMTog
bXVsdGlwbGUgc3BhY2VzIGJlZm9yZSBvcGVyYXRvcgorIyBFMjI2OiBtaXNzaW5nIHdoaXRlc3Bh
Y2UgYXJvdW5kIGFyaXRobWV0aWMgb3BlcmF0b3IKKyMgRTIzMTogbWlzc2luZyB3aGl0ZXNwYWNl
IGFmdGVyIOKAmCzigJksIOKAmDvigJksIG9yIOKAmDrigJkKKyMgRTI1MTogdW5leHBlY3RlZCBz
cGFjZXMgYXJvdW5kIGtleXdvcmQgLyBwYXJhbWV0ZXIgZXF1YWxzCisjIEUyNjU6IGJsb2NrIGNv
bW1lbnQgc2hvdWxkIHN0YXJ0IHdpdGgg4oCYIyDigJgKKyMgRTMwMjogZXhwZWN0ZWQgMiBibGFu
ayBsaW5lcywgZm91bmQgMAorIyBFMzAzOiB0b28gbWFueSBibGFuayBsaW5lcyAoMykKKyMgRTMw
NTogZXhwZWN0ZWQgMiBibGFuayBsaW5lcyBhZnRlciBlbmQgb2YgZnVuY3Rpb24gb3IgY2xhc3MK
KyMgRTQwMjogbW9kdWxlIGxldmVsIGltcG9ydCBub3QgYXQgdG9wIG9mIGZpbGUKKyMgRTczMTog
ZG8gbm90IGFzc2lnbiBhIGxhbWJkYSBleHByZXNzaW9uLCB1c2UgYSBkZWYKKyMgRTkwMTogU3lu
dGF4RXJyb3Igb3IgSW5kZW50YXRpb25FcnJvcgorIyBXNjAxOiAuaGFzX2tleSgpIGlzIGRlcHJl
Y2F0ZWQsIHVzZSDigJhpbuKAmQorIyBGNDAxOiBtb2R1bGUgaW1wb3J0ZWQgYnV0IHVudXNlZAor
IyBGNDAzOiDigJhmcm9tIG1vZHVsZSBpbXBvcnQgKuKAmSB1c2VkOyB1bmFibGUgdG8gZGV0ZWN0
IHVuZGVmaW5lZCBuYW1lcworIyBGNDA1OiBuYW1lIG1heSBiZSB1bmRlZmluZWQsIG9yIGRlZmlu
ZWQgZnJvbSBzdGFyIGltcG9ydHM6IG1vZHVsZQorIyBGODQxOiBsb2NhbCB2YXJpYWJsZSBuYW1l
IGlzIGFzc2lnbmVkIHRvIGJ1dCBuZXZlciB1c2VkCisjIE44MDE6IGNsYXNzIG5hbWVzIHNob3Vs
ZCB1c2UgQ2FwV29yZHMgY29udmVudGlvbgorIyBOODAyOiBmdW5jdGlvbiBuYW1lIHNob3VsZCBi
ZSBsb3dlcmNhc2UKK2lnbm9yZSA9IEUxMjgsRTEyOSxFMjIxLEUyMjYsRTIzMSxFMjUxLEUyNjUs
RTMwMixFMzAzLEUzMDUsRTQwMixFNzMxLEU5MDEsVzYwMSxGNDAxLEY0MDMsRjQwNSxGODQxLE44
MDEsTjgwMgorbWF4LWxpbmUtbGVuZ3RoID0gMTQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMjQ3ZWEwMTYzNDA4MjAxYjk0
MWExN2YxZjAxNjlmYzBjZjkxOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDMzIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9MSUNFTlNFCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvTUFOSUZFU1QuaW4K
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9SRUFETUUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19j
aHJvbWUudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lZGdlLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19pZS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NhZmFyaS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NlcnZvLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvc2V0dXAucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90b3guaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyLmRlZmF1bHQuaW5pCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIuZGVmYXVsdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIuZGVmYXVsdC5pbmkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzRkMjVmODA1NmIwY2Y3MGY2OGE4MjI2MDhlNDc0ZjYzYjA2NjZmNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci5kZWZhdWx0LmluaQpAQCAtMCwwICsxLDExIEBACitbcHJvZHVj
dHNdCisKK1t3ZWItcGxhdGZvcm0tdGVzdHNdCityZW1vdGVfdXJsID0gaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMuZ2l0CiticmFuY2ggPSBtYXN0ZXIKK3N5bmNfcGF0
aCA9ICUocHdkKXMvc3luYworCitbbWFuaWZlc3Q6ZGVmYXVsdF0KK3Rlc3RzID0gJShwd2Qpcy90
ZXN0cworbWV0YWRhdGEgPSAlKHB3ZClzL21ldGEKK3VybF9iYXNlID0gLwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQz
ZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24g
dG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjBjNDllOGIx
ZmE1Njc3OTVkZTQyOWFjOWU0MDhmY2MyNGVkOWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMzUgQEAKKyIiIlN1YnBhY2th
Z2Ugd2hlcmUgZWFjaCBwcm9kdWN0IGlzIGRlZmluZWQuIEVhY2ggcHJvZHVjdCBpcyBjcmVhdGVk
IGJ5IGFkZGluZyBhCithIC5weSBmaWxlIGNvbnRhaW5pbmcgYSBfX3dwdHJ1bm5lcl9fIHZhcmlh
YmxlIGluIHRoZSBnbG9iYWwgc2NvcGUuIFRoaXMgbXVzdCBiZQorYSBkaWN0aW9uYXJ5IHdpdGgg
dGhlIGZpZWxkcworCisicHJvZHVjdCI6IE5hbWUgb2YgdGhlIHByb2R1Y3QsIGFzc3VtZWQgdG8g
YmUgdW5pcXVlLgorImJyb3dzZXIiOiBTdHJpbmcgaW5kaWNhdGluZyB0aGUgQnJvd3NlciBpbXBs
ZW1lbnRhdGlvbiB1c2VkIHRvIGxhdW5jaCB0aGF0CisgICAgICAgICAgIHByb2R1Y3QuCisiZXhl
Y3V0b3IiOiBEaWN0aW9uYXJ5IHdpdGgga2V5cyBhcyBzdXBwb3J0ZWQgdGVzdCB0eXBlcyBhbmQg
dmFsdWVzIGFzIHRoZSBuYW1lCisgICAgICAgICAgICBvZiB0aGUgRXhlY3V0b3IgaW1wbGVtYW50
YXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gcnVuIHRoYXQgdGVzdAorICAgICAgICAgICAgdHlw
ZS4KKyJicm93c2VyX2t3YXJncyI6IFN0cmluZyBuYW1pbmcgZnVuY3Rpb24gdGhhdCB0YWtlcyBw
cm9kdWN0LCBiaW5hcnksCisgICAgICAgICAgICAgICAgICBwcmVmc19yb290IGFuZCB0aGUgd3B0
cnVubmVyLnJ1bl90ZXN0cyBrd2FyZ3MgZGljdCBhcyBhcmd1bWVudHMKKyAgICAgICAgICAgICAg
ICAgIGFuZCByZXR1cm5zIGEgZGljdGlvbmFyeSBvZiBrd2FyZ3MgdG8gdXNlIHdoZW4gY3JlYXRp
bmcgdGhlCisgICAgICAgICAgICAgICAgICBCcm93c2VyIGNsYXNzLgorImV4ZWN1dG9yX2t3YXJn
cyI6IFN0cmluZyBuYW1pbmcgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGh0dHAgc2VydmVyIHVybCBh
bmQKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0IG11bHRpcGxpZXIgYW5kIHJldHVybnMga3dh
cmdzIHRvIHVzZSB3aGVuIGNyZWF0aW5nCisgICAgICAgICAgICAgICAgICAgdGhlIGV4ZWN1dG9y
IGNsYXNzLgorImVudl9vcHRpb25zIjogU3RyaW5nIG5hbWluZyBhIGZ1bnRpb24gb2Ygbm8gYXJn
dW1lbnRzIHRoYXQgcmV0dXJucyB0aGUKKyAgICAgICAgICAgICAgIGFyZ3VtZW50cyBwYXNzZWQg
dG8gdGhlIFRlc3RFbnZpcm9ubWVudC4KKworQWxsIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBuYW1l
ZCBpbiB0aGUgYWJvdmUgZGljdCBtdXN0IGJlIGltcG9ydGVkIGludG8gdGhlCittb2R1bGUgZ2xv
YmFsIHNjb3BlLgorIiIiCisKK3Byb2R1Y3RfbGlzdCA9IFsiY2hyb21lIiwKKyAgICAgICAgICAg
ICAgICAiY2hyb21lX2FuZHJvaWQiLAorICAgICAgICAgICAgICAgICJlZGdlIiwKKyAgICAgICAg
ICAgICAgICAiZmlyZWZveCIsCisgICAgICAgICAgICAgICAgImllIiwKKyAgICAgICAgICAgICAg
ICAic2FmYXJpIiwKKyAgICAgICAgICAgICAgICAic2F1Y2UiLAorICAgICAgICAgICAgICAgICJz
ZXJ2byIsCisgICAgICAgICAgICAgICAgInNlcnZvZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAi
b3BlcmEiLAorICAgICAgICAgICAgICAgICJ3ZWJraXQiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNGM5YzMwMWJkNTgzODkxYjQ4MWQyZDNhMjcyNjkyYTA4YjQxOTRmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKQEAgLTAsMCArMSwxNjYg
QEAKK2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc29ja2V0Citmcm9tIGFiYyBp
bXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKKworZnJvbSAuLndwdGNvbW1hbmRsaW5lIGlt
cG9ydCByZXF1aXJlX2FyZworCitoZXJlID0gb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KKwor
CitkZWYgY21kX2FyZyhuYW1lLCB2YWx1ZT1Ob25lKToKKyAgICBwcmVmaXggPSAiLSIgaWYgcGxh
dGZvcm0uc3lzdGVtKCkgPT0gIldpbmRvd3MiIGVsc2UgIi0tIgorICAgIHJ2ID0gcHJlZml4ICsg
bmFtZQorICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICBydiArPSAiPSIgKyB2YWx1
ZQorICAgIHJldHVybiBydgorCisKK2RlZiBnZXRfZnJlZV9wb3J0KHN0YXJ0X3BvcnQsIGV4Y2x1
ZGU9Tm9uZSk6CisgICAgIiIiR2V0IHRoZSBmaXJzdCBwb3J0IG51bWJlciBhZnRlciBzdGFydF9w
b3J0IChpbmNsdXNpdmUpIHRoYXQgaXMKKyAgICBub3QgY3VycmVudGx5IGJvdW5kLgorCisgICAg
OnBhcmFtIHN0YXJ0X3BvcnQ6IEludGVnZXIgcG9ydCBudW1iZXIgYXQgd2hpY2ggdG8gc3RhcnQg
dGVzdGluZy4KKyAgICA6cGFyYW0gZXhjbHVkZTogU2V0IG9mIHBvcnQgbnVtYmVycyB0byBza2lw
IiIiCisgICAgcG9ydCA9IHN0YXJ0X3BvcnQKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBpZiBl
eGNsdWRlIGFuZCBwb3J0IGluIGV4Y2x1ZGU6CisgICAgICAgICAgICBwb3J0ICs9IDEKKyAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgcG9ydCkpCisgICAgICAgIGV4Y2Vw
dCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICBwb3J0ICs9IDEKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHJldHVybiBwb3J0CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzLmNs
b3NlKCkKKworZGVmIGJyb3dzZXJfY29tbWFuZChiaW5hcnksIGFyZ3MsIGRlYnVnX2luZm8pOgor
ICAgIGlmIGRlYnVnX2luZm86CisgICAgICAgIGlmIGRlYnVnX2luZm8ucmVxdWlyZXNFc2NhcGVk
QXJnczoKKyAgICAgICAgICAgIGFyZ3MgPSBbaXRlbS5yZXBsYWNlKCImIiwgIlxcJiIpIGZvciBp
dGVtIGluIGFyZ3NdCisgICAgICAgIGRlYnVnX2FyZ3MgPSBbZGVidWdfaW5mby5wYXRoXSArIGRl
YnVnX2luZm8uYXJncworICAgIGVsc2U6CisgICAgICAgIGRlYnVnX2FyZ3MgPSBbXQorCisgICAg
Y29tbWFuZCA9IFtiaW5hcnldICsgYXJncworCisgICAgcmV0dXJuIGRlYnVnX2FyZ3MsIGNvbW1h
bmQKKworCitjbGFzcyBCcm93c2VyRXJyb3IoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xh
c3MgQnJvd3NlcihvYmplY3QpOgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBw
cm9jZXNzX2NscyA9IE5vbmUKKyAgICBpbml0X3RpbWVvdXQgPSAzMAorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlcik6CisgICAgICAgICIiIkFic3RyYWN0IGNsYXNzIHNlcnZpbmcgYXMg
dGhlIGJhc2lzIGZvciBCcm93c2VyIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBUaGUgQnJv
d3NlciBpcyB1c2VkIGluIHRoZSBUZXN0UnVubmVyTWFuYWdlciB0byBzdGFydCBhbmQgc3RvcCB0
aGUgYnJvd3NlcgorICAgICAgICBwcm9jZXNzLCBhbmQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRo
YXQgcHJvY2Vzcy4gVGhpcyBjbGFzcyBhbHNvIGFjdHMgYXMgYQorICAgICAgICBjb250ZXh0IG1h
bmFnZXIsIGVuYWJsaW5nIGl0IHRvIGRvIGJyb3dzZXItc3BlY2lmaWMgc2V0dXAgYXQgdGhlIHN0
YXJ0IG9mCisgICAgICAgIHRoZSB0ZXN0cnVuIGFuZCBjbGVhbnVwIGFmdGVyIHRoZSBydW4gaXMg
Y29tcGxldGUuCisKKyAgICAgICAgOnBhcmFtIGxvZ2dlcjogU3RydWN0dXJlZCBsb2dnZXIgdG8g
dXNlIGZvciBvdXRwdXQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dl
cgorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5zZXR1cCgpCisgICAg
ICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdz
KToKKyAgICAgICAgc2VsZi5jbGVhbnVwKCkKKworICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAg
ICAgIiIiVXNlZCBmb3IgYnJvd3Nlci1zcGVjaWZpYyBzZXR1cCB0aGF0IGhhcHBlbnMgYXQgdGhl
IHN0YXJ0IG9mIGEgdGVzdCBydW4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIHNldHRpbmdz
KHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1cm4ge30KKworICAgIEBhYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIkxhdW5jaCB0aGUgYnJv
d3NlciBvYmplY3QgYW5kIGdldCBpdCBpbnRvIGEgc3RhdGUgd2hlcmUgaXMgaXMgcmVhZHkgdG8g
cnVuIHRlc3RzIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgIiIiU3RvcCB0aGUgcnVubmluZyBi
cm93c2VyIHByb2Nlc3MuIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgICIiInBpZCBvZiB0aGUgYnJvd3NlciBwcm9jZXNz
IG9yIE5vbmUgaWYgdGhlcmUgaXMgbm8gcGlkIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0
cmFjdG1ldGhvZAorICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIiIiQm9vbGVhbiBp
bmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJyb3dzZXIgcHJvY2VzcyBpcyBzdGlsbCBydW5uaW5nIiIi
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZXR1cF9zc2woc2VsZiwgaG9zdHMpOgorICAgICAg
ICAiIiJSZXR1cm4gYSBjZXJ0aWZpY2F0ZSB0byB1c2UgZm9yIHRlc3RzIHJlcXVpcmluZyBzc2wg
dGhhdCB3aWxsIGJlIHRydXN0ZWQgYnkgdGhlIGJyb3dzZXIiIiIKKyAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigic3NsIHRlc3Rpbmcgbm90IHN1cHBvcnRlZCIpCisKKyAgICBkZWYg
Y2xlYW51cChzZWxmKToKKyAgICAgICAgIiIiQnJvd3Nlci1zcGVjaWZpYyBjbGVhbnVwIHRoYXQg
aXMgcnVuIGFmdGVyIHRoZSB0ZXN0cnVuIGlzIGZpbmlzaGVkIiIiCisgICAgICAgIHBhc3MKKwor
ICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBF
eGVjdXRvckJyb3dzZXIgc3ViY2xhc3MgZm9yIHRoaXMgQnJvd3NlciBzdWJjbGFzcyBhbmQgdGhl
IGtleXdvcmQgYXJndW1lbnRzCisgICAgICAgIHdpdGggd2hpY2ggaXQgc2hvdWxkIGJlIGluc3Rh
bnRpYXRlZCIiIgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7fQorCisgICAgZGVm
IGNoZWNrX2Zvcl9jcmFzaGVzKHNlbGYpOgorICAgICAgICAiIiJDaGVjayBmb3IgY3Jhc2hlcyB0
aGF0IGRpZG4ndCBjYXVzZSB0aGUgYnJvd3NlciBwcm9jZXNzIHRvIHRlcm1pbmF0ZSIiIgorICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBsb2dfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVz
dCk6CisgICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgZGljdGlvbmFyaWVzIGNvbnRhaW5pbmcg
aW5mb3JtYXRpb24gYWJvdXQgY3Jhc2hlcyB0aGF0IGhhcHBlbmQKKyAgICAgICAgaW4gdGhlIGJy
b3dzZXIsIG9yIGFuIGVtcHR5IGxpc3QgaWYgbm8gY3Jhc2hlcyBvY2N1cnJlZCIiIgorICAgICAg
ICBzZWxmLmxvZ2dlci5jcmFzaChwcm9jZXNzLCB0ZXN0KQorCisKK2NsYXNzIE51bGxCcm93c2Vy
KEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsICoqa3dhcmdzKToKKyAg
ICAgICAgc3VwZXIoTnVsbEJyb3dzZXIsIHNlbGYpLl9faW5pdF9fKGxvZ2dlcikKKworICAgIGRl
ZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIk5vLW9wIGJyb3dzZXIgdG8gdXNl
IGluIHNjZW5hcmlvcyB3aGVyZSB0aGUgVGVzdFJ1bm5lck1hbmFnZXIgc2hvdWxkbid0CisgICAg
ICAgIGFjdHVhbGx5IG93biB0aGUgYnJvd3NlciBwcm9jZXNzIChlLmcuIFNlcnZvIHdoZXJlIHdl
IHN0YXJ0IG9uZSBicm93c2VyCisgICAgICAgIHBlciB0ZXN0KSIiIgorICAgICAgICBwYXNzCisK
KyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHBhc3MKKworICAgIGRl
ZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgaXNfYWxpdmUoc2Vs
Zik6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKworY2xhc3MgRXhlY3V0b3JC
cm93c2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAg
ICAgIiIiVmlldyBvZiB0aGUgQnJvd3NlciB1c2VkIGJ5IHRoZSBFeGVjdXRvciBvYmplY3QuCisg
ICAgICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIEV4ZWN1dG9yIHJ1bnMgaW4gYSBjaGls
ZCBwcm9jZXNzIGFuZAorICAgICAgICB3ZSBjYW4ndCBzaGlwIEJyb3dzZXIgaW5zdGFuY2VzIGJl
dHdlZW4gcHJvY2Vzc2VzIG9uIFdpbmRvd3MuCisKKyAgICAgICAgVHlwaWNhbGx5IHRoaXMgd2ls
bCBoYXZlIGEgZmV3IHByb2R1Y3Qtc3BlY2lmaWMgcHJvcGVydGllcyBzZXQsCisgICAgICAgIGJ1
dCBpbiBzb21lIGNhc2VzIGl0IG1heSBoYXZlIG1vcmUgZWxhYm9yYXRlIG1ldGhvZHMgZm9yIHNl
dHRpbmcKKyAgICAgICAgdXAgdGhlIGJyb3dzZXIgZnJvbSB0aGUgcnVubmVyIHByb2Nlc3MuCisg
ICAgICAgICIiIgorICAgICAgICBmb3IgaywgdiBpbiBrd2FyZ3MuaXRlcml0ZW1zKCk6CisgICAg
ICAgICAgICBzZXRhdHRyKHNlbGYsIGssIHYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNTBjNTkyMjFjZDU0ZTU4NDFiODg4ODMyMWIwMzdmZjZkNWEyMTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQpAQCAtMCwwICsxLDEwMCBA
QAorZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2Fy
ZworZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgorZnJv
bSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dh
cmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jj
aHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yCisKKworX193cHRydW5uZXJf
XyA9IHsicHJvZHVjdCI6ICJjaHJvbWUiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6
ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiQ2hyb21lQnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5p
dW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6
CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKworZGVmIGJy
b3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJl
dHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVy
X2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRy
aXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYgZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGZyb20gc2VsZW5p
dW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICBleGVjdXRvcl9r
d2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwg
Kiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVl
CisgICAgY2FwYWJpbGl0aWVzID0gZGljdChEZXNpcmVkQ2FwYWJpbGl0aWVzLkNIUk9NRS5pdGVt
cygpKQorICAgIGNhcGFiaWxpdGllcy5zZXRkZWZhdWx0KCJjaHJvbWVPcHRpb25zIiwge30pWyJw
cmVmcyJdID0geworICAgICAgICAicHJvZmlsZSI6IHsKKyAgICAgICAgICAgICJkZWZhdWx0X2Nv
bnRlbnRfc2V0dGluZ192YWx1ZXMiOiB7CisgICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGt3YXJnLCBjYXBhYmlsaXR5
KSBpbiBbKCJiaW5hcnkiLCAiYmluYXJ5IiksICgiYmluYXJ5X2FyZ3MiLCAiYXJncyIpXToKKyAg
ICAgICAgaWYga3dhcmdzW2t3YXJnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNhcGFiaWxp
dGllc1siY2hyb21lT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQorICAgIGlm
IHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgorICAgICAgICBjYXBhYmlsaXRpZXNbImNocm9t
ZU9wdGlvbnMiXVsidXNlQXV0b21hdGlvbkV4dGVuc2lvbiJdID0gRmFsc2UKKyAgICAgICAgY2Fw
YWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bImV4Y2x1ZGVTd2l0Y2hlcyJdID0gWyJlbmFibGUt
YXV0b21hdGlvbiJdCisgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgorICAgICAgICBjYXBh
YmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXVsidzNjIl0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dh
cmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAgIHJldHVybiBleGVjdXRvcl9r
d2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKwor
ZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHt9CisKKworY2xhc3MgQ2hyb21lQnJvd3Nl
cihCcm93c2VyKToKKyAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hp
Y2ggaXMgc3VwcGxpZWQgdGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVE
cml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAgICAg
ICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVz
ZW50YXRpb24gb2YgQ2hyb21lLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCisgICAgICAg
IHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCisgICAgICAgIEJyb3dz
ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQor
ICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9i
aW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2Vi
ZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBz
ZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNl
PUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKworICAgIGRl
ZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKKworICAgIGRlZiBp
c19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMg
dGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcg
YWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgorICAgICAgICAjIGlzIGFjdGl2ZS4KKyAg
ICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKworICAgIGRlZiBjbGVhbnVwKHNl
bGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2Vs
Zik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNl
bGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVf
YW5kcm9pZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45ODViMWZlNTdlZDJjM2IwN2U0MWUwZTk5OWM2MWZlZDA4Y2E4ZGUxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CkBAIC0w
LDAgKzEsMTIxIEBACitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIC4uY29uZmlnIGltcG9ydCAq
Citmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJn
Citmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9t
IC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2Fy
Z3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVz
dGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNo
cm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IKKworCitfX3dwdHJ1bm5lcl9f
ID0geyJwcm9kdWN0IjogImNocm9tZV9hbmRyb2lkIiwKKyAgICAgICAgICAgICAgICAgImNoZWNr
X2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkNocm9t
ZUFuZHJvaWRCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFy
bmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVj
dXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJn
cyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAg
ICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorCitfd3B0c2VydmVfcG9y
dHMgPSBzZXQoKQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2Fy
Zyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsiYmluYXJ5Ijog
a3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdz
WyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1w
b3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKworICAgICMgVXNlIGV4dGVuZCgpIHRvIG1vZGlmeSB0
aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCisgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQo
CisgICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNlcnZlcl9jb25maWdb
J3BvcnRzJ11bJ2h0dHBzJ10gKworICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3cydd
ICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KKyAgICApKQorCisgICAgZXhlY3V0b3Jf
a3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
ICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1
ZQorICAgIGNhcGFiaWxpdGllcyA9IGRpY3QoRGVzaXJlZENhcGFiaWxpdGllcy5DSFJPTUUuaXRl
bXMoKSkKKyAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXSA9IHt9CisgICAgIyByZXF1
aXJlZCB0byBzdGFydCBvbiBtb2JpbGUKKyAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMi
XVsiYW5kcm9pZFBhY2thZ2UiXSA9ICJjb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5jaHJvbWUiCisK
KyAgICBmb3IgKGt3YXJnLCBjYXBhYmlsaXR5KSBpbiBbKCJiaW5hcnkiLCAiYmluYXJ5IiksICgi
YmluYXJ5X2FyZ3MiLCAiYXJncyIpXToKKyAgICAgICAgaWYga3dhcmdzW2t3YXJnXSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1siY2hyb21lT3B0aW9ucyJdW2NhcGFiaWxp
dHldID0ga3dhcmdzW2t3YXJnXQorICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgor
ICAgICAgICBjYXBhYmlsaXRpZXNbInVzZUF1dG9tYXRpb25FeHRlbnNpb24iXSA9IEZhbHNlCisg
ICAgICAgIGNhcGFiaWxpdGllc1siZXhjbHVkZVN3aXRjaGVzIl0gPSBbImVuYWJsZS1hdXRvbWF0
aW9uIl0KKyAgICBpZiB0ZXN0X3R5cGUgPT0gIndkc3BlYyI6CisgICAgICAgIGNhcGFiaWxpdGll
c1siY2hyb21lT3B0aW9ucyJdWyJ3M2MiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNh
cGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwor
CisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52
X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3Nl
cihCcm93c2VyKToKKyAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwgd2hp
Y2ggaXMgc3VwcGxpZWQgdGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVE
cml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAgICAg
ICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVz
ZW50YXRpb24gb2YgQ2hyb21lLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCisgICAgICAg
IHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCisgICAgICAgIEJyb3dz
ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQor
ICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9i
aW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2Vi
ZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJncyk6CisgICAgICAgIHNl
bGYubG9nZ2VyLmluZm8oJ2FkYiAnICsgJyAnLmpvaW4oYXJncykpCisgICAgICAgIHN1YnByb2Nl
c3MuY2hlY2tfY2FsbChbJ2FkYiddICsgYXJncykKKworICAgIGRlZiBzZXR1cChzZWxmKToKKyAg
ICAgICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQorICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1
bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgIGZvciBwb3J0IGluIF93cHRz
ZXJ2ZV9wb3J0czoKKyAgICAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJ3RjcDol
ZCcgJSBwb3J0LCAndGNwOiVkJyAlIHBvcnRdKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYg
c3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9
Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIu
cGlkCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlz
IG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNu
J3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAg
IyBpcyBhY3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAg
ICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgc2VsZi5f
YWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgIHNlbGYuX2FkYl9y
dW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dz
ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3Vy
bCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9l
ZGdlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg0YWUz
MmFjOWE1OTY4YWJhZTA2MDZkNzRkZjEzNGM1MTk4MTQwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CkBAIC0wLDAgKzEsNzQgQEAKK2Zyb20gLmJhc2Ug
aW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLi53ZWJk
cml2ZXJfc2VydmVyIGltcG9ydCBFZGdlRHJpdmVyU2VydmVyCitmcm9tIC4uZXhlY3V0b3JzIGlt
cG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRv
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtUmVm
VGVzdEV4ZWN1dG9yKQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmVkZ2UgaW1wb3J0IEVkZ2VE
cml2ZXJXZHNwZWNFeGVjdXRvcgorCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImVkZ2Ui
LAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiAiRWRnZUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiZXhl
Y3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RF
eGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VE
cml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3Mi
OiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjog
ImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9l
eHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQor
CisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3
ZWJkcml2ZXJfYmluYXJ5IikKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2Fy
Z3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3
YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1w
b3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCAqKmt3YXJncykKKyAgICBl
eGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKKyAgICBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdID0gZGljdChEZXNpcmVkQ2FwYWJpbGl0aWVzLkVER0UuaXRl
bXMoKSkKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dh
cmdzKToKKyAgICByZXR1cm4gW10KKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHsi
c3VwcG9ydHNfZGVidWdnZXIiOiBGYWxzZX0KKworY2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6
CisgICAgdXNlZF9wb3J0cyA9IHNldCgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgQnJvd3Nl
ci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisgICAgICAgIHNlbGYuc2VydmVyID0gRWRnZURyaXZl
clNlcnZlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgc2VsZi53ZWJkcml2ZXJf
aG9zdCA9ICJsb2NhbGhvc3QiCisgICAgICAgIHNlbGYud2ViZHJpdmVyX3BvcnQgPSBzZWxmLnNl
cnZlci5wb3J0CisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBwcmlu
dCBzZWxmLnNlcnZlci51cmwKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQorCisgICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNl
PWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhp
cyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vz
bid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAg
ICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorCisg
ICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgZXhl
Y3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3
ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YWNiMGY3ZDkyNDAxMjY5NjRmZDE0MTE1NzQxNTU0M2ViNDAwZTM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKQEAgLTAsMCAr
MSwzOTYgQEAKK2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc2lnbmFsCitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCisKK2ltcG9ydCBtb3pp
bmZvCitpbXBvcnQgbW96bGVhaworZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxl
cgorZnJvbSBtb3pwcm9maWxlIGltcG9ydCBGaXJlZm94UHJvZmlsZSwgUHJlZmVyZW5jZXMKK2Zy
b20gbW96cnVubmVyIGltcG9ydCBGaXJlZm94UnVubmVyCitmcm9tIG1venJ1bm5lci51dGlscyBp
bXBvcnQgZ2V0X3N0YWNrX2ZpeGVyX2Z1bmN0aW9uCitmcm9tIG1vemNyYXNoIGltcG9ydCBtb3pj
cmFzaAorCitmcm9tIC5iYXNlIGltcG9ydCAoZ2V0X2ZyZWVfcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICBCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9yQnJvd3NlciwKKyAgICAg
ICAgICAgICAgICAgICByZXF1aXJlX2FyZywKKyAgICAgICAgICAgICAgICAgICBjbWRfYXJnLAor
ICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY29tbWFuZCkKK2Zyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1
dG9ycy5leGVjdXRvcm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVj
dXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9u
ZXR0ZVJlZlRlc3RFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZVdkc3BlY0V4ZWN1dG9yKQorCisKK2hlcmUgPSBvcy5wYXRoLmpv
aW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1
Y3QiOiAiZmlyZWZveCIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJGaXJlZm94QnJvd3NlciIsCisgICAg
ICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3Ro
YXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3Qi
OiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIk1hcmlvbmV0dGVXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAg
ICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAg
ICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlv
bnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjog
InJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ1cGRhdGVfcHJvcGVydGllcyI6
ICJ1cGRhdGVfcHJvcGVydGllcyJ9CisKKworZGVmIGdldF90aW1lb3V0X211bHRpcGxpZXIodGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgaWYga3dhcmdzWyJ0aW1lb3V0
X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIGt3YXJnc1sidGltZW91
dF9tdWx0aXBsaWVyIl0KKyAgICBpZiB0ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgorICAgICAgICBp
ZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6Cisg
ICAgICAgICAgICByZXR1cm4gNAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIDIK
KyAgICBlbGlmIHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFz
YW4iKToKKyAgICAgICAgaWYgcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiKToKKyAgICAgICAgICAg
IHJldHVybiA0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gMworICAgIHJldHVy
biAxCisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJn
cywgImJpbmFyeSIpCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgKiprd2FyZ3MpOgorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0s
CisgICAgICAgICAgICAicHJlZnNfcm9vdCI6IGt3YXJnc1sicHJlZnNfcm9vdCJdLAorICAgICAg
ICAgICAgImV4dHJhX3ByZWZzIjoga3dhcmdzWyJleHRyYV9wcmVmcyJdLAorICAgICAgICAgICAg
InRlc3RfdHlwZSI6IHRlc3RfdHlwZSwKKyAgICAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdz
WyJkZWJ1Z19pbmZvIl0sCisgICAgICAgICAgICAic3ltYm9sc19wYXRoIjoga3dhcmdzWyJzeW1i
b2xzX3BhdGgiXSwKKyAgICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzWyJzdGFj
a3dhbGtfYmluYXJ5Il0sCisgICAgICAgICAgICAiY2VydHV0aWxfYmluYXJ5Ijoga3dhcmdzWyJj
ZXJ0dXRpbF9iaW5hcnkiXSwKKyAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjoga3dh
cmdzWyJzc2xfZW52Il0uY2FfY2VydF9wYXRoKCksCisgICAgICAgICAgICAiZTEwcyI6IGt3YXJn
c1siZ2Vja29fZTEwcyJdLAorICAgICAgICAgICAgInN0YWNrZml4X2RpciI6IGt3YXJnc1sic3Rh
Y2tmaXhfZGlyIl0sCisgICAgICAgICAgICAiYmluYXJ5X2FyZ3MiOiBrd2FyZ3NbImJpbmFyeV9h
cmdzIl0sCisgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVs
dGlwbGllcih0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpLAorICAgICAgICAg
ICAgImxlYWtfY2hlY2siOiBrd2FyZ3NbImxlYWtfY2hlY2siXSwKKyAgICAgICAgICAgICJzdHls
b190aHJlYWRzIjoga3dhcmdzWyJzdHlsb190aHJlYWRzIl0sCisgICAgICAgICAgICAiY2hhb3Nf
bW9kZV9mbGFncyI6IGt3YXJnc1siY2hhb3NfbW9kZV9mbGFncyJdLAorICAgICAgICAgICAgImNv
bmZpZyI6IGt3YXJnc1siY29uZmlnIl19CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgKiprd2FyZ3MpCisgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSB0ZXN0X3R5cGUgIT0gInJlZnRlc3Qi
CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSA9IGdldF90aW1lb3V0
X211bHRpcGxpZXIodGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCisgICAgY2FwYWJpbGl0aWVzID0ge30KKyAgICBpZiB0ZXN0X3R5cGUgPT0g
InJlZnRlc3QiOgorICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwiXSA9
IGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVm
dGVzdF9zY3JlZW5zaG90Il0gPSBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdCisgICAgaWYg
dGVzdF90eXBlID09ICJ3ZHNwZWMiOgorICAgICAgICBvcHRpb25zID0ge30KKyAgICAgICAgaWYg
a3dhcmdzWyJiaW5hcnkiXToKKyAgICAgICAgICAgIG9wdGlvbnNbImJpbmFyeSJdID0ga3dhcmdz
WyJiaW5hcnkiXQorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeV9hcmdzIl06CisgICAgICAgICAg
ICBvcHRpb25zWyJhcmdzIl0gPSBrd2FyZ3NbImJpbmFyeV9hcmdzIl0KKyAgICAgICAgb3B0aW9u
c1sicHJlZnMiXSA9IHsKKyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAi
LCIuam9pbihzZXJ2ZXJfY29uZmlnWydkb21haW5zJ10udmFsdWVzKCkpCisgICAgICAgIH0KKyAg
ICAgICAgY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9wdGlvbnMiXSA9IG9wdGlvbnMKKyAgICBp
ZiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgIGNhcGFiaWxpdGll
c1siYWNjZXB0SW5zZWN1cmVDZXJ0cyJdID0gVHJ1ZQorICAgIGlmIGNhcGFiaWxpdGllczoKKyAg
ICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAg
IHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6Cisg
ICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgIyBUaGUgc2VydmVyIGhv
c3QgaXMgc2V0IHRvIDEyNy4wLjAuMSBhcyBGaXJlZm94IGlzIGNvbmZpZ3VyZWQgKHRocm91Z2gg
dGhlCisgICAgIyBuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMgcHJlZmVyZW5jZSBzZXQgYmVsb3cp
IHRvIHJlc29sdmUgdGhlIHRlc3QKKyAgICAjIGRvbWFpbnMgdG8gbG9jYWxob3N0IHdpdGhvdXQg
cmVseWluZyBvbiB0aGUgbmV0d29yayBzdGFjay4KKyAgICAjCisgICAgIyBodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wdWxsLzk0ODAKKyAgICByZXR1cm4geyJzZXJ2
ZXJfaG9zdCI6ICIxMjcuMC4wLjEiLAorICAgICAgICAgICAgImJpbmRfYWRkcmVzcyI6IEZhbHNl
LAorICAgICAgICAgICAgInN1cHBvcnRzX2RlYnVnZ2VyIjogVHJ1ZX0KKworCitkZWYgcnVuX2lu
Zm9fZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJlMTBzIjoga3dhcmdzWyJnZWNrb19l
MTBzIl0sCisgICAgICAgICAgICAiaGVhZGxlc3MiOiAiTU9aX0hFQURMRVNTIiBpbiBvcy5lbnZp
cm9ufQorCisKK2RlZiB1cGRhdGVfcHJvcGVydGllcygpOgorICAgIHJldHVybiAoWyJkZWJ1ZyIs
ICJzdHlsbyIsICJlMTBzIiwgIm9zIiwgInZlcnNpb24iLCAicHJvY2Vzc29yIiwgImJpdHMiXSwK
KyAgICAgICAgICAgIHsiZGVidWciLCAiZTEwcyIsICJzdHlsbyJ9KQorCisKK2NsYXNzIEZpcmVm
b3hCcm93c2VyKEJyb3dzZXIpOgorICAgIHVzZWRfcG9ydHMgPSBzZXQoKQorICAgIGluaXRfdGlt
ZW91dCA9IDYwCisgICAgc2h1dGRvd25fdGltZW91dCA9IDYwCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnM9
Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9u
ZSwgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLCBjZXJ0dXRpbF9iaW5hcnk9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNlLCBzdGFja2ZpeF9k
aXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYmluYXJ5X2FyZ3M9Tm9uZSwgdGltZW91dF9tdWx0
aXBsaWVyPU5vbmUsIGxlYWtfY2hlY2s9RmFsc2UsIHN0eWxvX3RocmVhZHM9MSwKKyAgICAgICAg
ICAgICAgICAgY2hhb3NfbW9kZV9mbGFncz1Ob25lLCBjb25maWc9Tm9uZSk6CisgICAgICAgIEJy
b3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFy
eQorICAgICAgICBzZWxmLnByZWZzX3Jvb3QgPSBwcmVmc19yb290CisgICAgICAgIHNlbGYudGVz
dF90eXBlID0gdGVzdF90eXBlCisgICAgICAgIHNlbGYuZXh0cmFfcHJlZnMgPSBleHRyYV9wcmVm
cworICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IE5vbmUKKyAgICAgICAgc2VsZi5ydW5u
ZXIgPSBOb25lCisgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KKyAgICAgICAg
c2VsZi5wcm9maWxlID0gTm9uZQorICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNf
cGF0aAorICAgICAgICBzZWxmLnN0YWNrd2Fsa19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5Cisg
ICAgICAgIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IGNhX2NlcnRpZmljYXRlX3BhdGgKKyAg
ICAgICAgc2VsZi5jZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkKKyAgICAgICAgc2Vs
Zi5lMTBzID0gZTEwcworICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKKyAg
ICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKKyAgICAgICAgaWYgc3RhY2tmaXhfZGlyOgorICAg
ICAgICAgICAgc2VsZi5zdGFja19maXhlciA9IGdldF9zdGFja19maXhlcl9mdW5jdGlvbihzdGFj
a2ZpeF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc3ltYm9sc19wYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5zdGFja19maXhlciA9IE5vbmUKKworICAgICAgICBpZiB0aW1lb3V0X211bHRpcGxpZXI6
CisgICAgICAgICAgICBzZWxmLmluaXRfdGltZW91dCA9IHNlbGYuaW5pdF90aW1lb3V0ICogdGlt
ZW91dF9tdWx0aXBsaWVyCisKKyAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0gTm9uZQor
ICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFrX2NoZWNrCisgICAgICAgIHNlbGYuc3R5bG9f
dGhyZWFkcyA9IHN0eWxvX3RocmVhZHMKKyAgICAgICAgc2VsZi5jaGFvc19tb2RlX2ZsYWdzID0g
Y2hhb3NfbW9kZV9mbGFncworCisgICAgZGVmIHNldHRpbmdzKHNlbGYsIHRlc3QpOgorICAgICAg
ICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQgbm90IHRlc3QubGVh
a3N9CisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLm1h
cmlvbmV0dGVfcG9ydCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQg
PSBnZXRfZnJlZV9wb3J0KDI4MjgsIGV4Y2x1ZGU9c2VsZi51c2VkX3BvcnRzKQorICAgICAgICAg
ICAgc2VsZi51c2VkX3BvcnRzLmFkZChzZWxmLm1hcmlvbmV0dGVfcG9ydCkKKworICAgICAgICBl
bnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0g
PSAiMSIKKyAgICAgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCisg
ICAgICAgIGVudlsiTU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgorICAg
ICAgICBlbnZbIlNUWUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCisgICAg
ICAgIGlmIHNlbGYuY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVu
dlsiTU9aX0NIQU9TTU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKworICAgICAg
ICBwcmVmZXJlbmNlcyA9IHNlbGYubG9hZF9wcmVmcygpCisKKyAgICAgICAgc2VsZi5wcm9maWxl
ID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5jZXM9cHJlZmVyZW5jZXMpCisgICAgICAgIHNlbGYu
cHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJtYXJpb25ldHRlLnBvcnQiOiBzZWxmLm1hcmlvbmV0
dGVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvbS5kaXNh
YmxlX29wZW5fZHVyaW5nX2xvYWQiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm5ldHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2luKHNlbGYuY29u
ZmlnWydkb21haW5zJ10udmFsdWVzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibmV0d29yay5wcm94eS50eXBlIjogMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInBsYWNlcy5oaXN0b3J5LmVuYWJsZWQiOiBGYWxzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvbS5zZW5kX2FmdGVyX3BhaW50X3RvX2Nv
bnRlbnQiOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmV0
d29yay5wcmVsb2FkIjogVHJ1ZX0pCisgICAgICAgIGlmIHNlbGYuZTEwczoKKyAgICAgICAgICAg
IHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJicm93c2VyLnRhYnMucmVtb3RlLmF1dG9z
dGFydCI6IFRydWV9KQorCisgICAgICAgIGlmIHNlbGYudGVzdF90eXBlID09ICJyZWZ0ZXN0IjoK
KyAgICAgICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJsYXlvdXQuaW50ZXJy
dXB0aWJsZS1yZWZsb3cuZW5hYmxlZCI6IEZhbHNlfSkKKworICAgICAgICBpZiBzZWxmLmxlYWtf
Y2hlY2sgYW5kIGt3YXJncy5nZXQoImNoZWNrX2xlYWtzIiwgVHJ1ZSk6CisgICAgICAgICAgICBz
ZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUs
ICJydW50ZXN0c19sZWFrcy5sb2ciKQorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2Vs
Zi5sZWFrX3JlcG9ydF9maWxlKToKKyAgICAgICAgICAgICAgICBvcy5yZW1vdmUoc2VsZi5sZWFr
X3JlcG9ydF9maWxlKQorICAgICAgICAgICAgZW52WyJYUENPTV9NRU1fQkxPQVRfTE9HIl0gPSBz
ZWxmLmxlYWtfcmVwb3J0X2ZpbGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubGVh
a19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICAjIEJ1ZyAxMjYyOTU0OiB3aW54cCArIGUx
MHMsIGRpc2FibGUgaHdhY2NlbAorICAgICAgICBpZiAoc2VsZi5lMTBzIGFuZCBwbGF0Zm9ybS5z
eXN0ZW0oKSBpbiAoIldpbmRvd3MiLCAiTWljcm9zb2Z0IikgYW5kCisgICAgICAgICAgICAnNS4x
JyBpbiBwbGF0Zm9ybS52ZXJzaW9uKCkpOgorICAgICAgICAgICAgc2VsZi5wcm9maWxlLnNldF9w
cmVmZXJlbmNlcyh7ImxheWVycy5hY2NlbGVyYXRpb24uZGlzYWJsZWQiOiBUcnVlfSkKKworICAg
ICAgICBpZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBzZWxmLnNldHVwX3NzbCgpCisKKyAgICAgICAgZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9j
b21tYW5kKHNlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5iaW5hcnlfYXJncyBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10gKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0
dGUiKSwgImFib3V0OmJsYW5rIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmRlYnVnX2luZm8pCisKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBGaXJlZm94
UnVubmVyKHByb2ZpbGU9c2VsZi5wcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PWNtZFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNtZGFyZ3M9Y21kWzE6XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2Ns
YXNzPVByb2Nlc3NIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvY2Vzc19hcmdzPXsicHJvY2Vzc091dHB1dExpbmUiOiBbc2VsZi5vbl9vdXRwdXRdfSkKKwor
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgRmlyZWZveCIpCisKKyAgICAgICAg
c2VsZi5ydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLCBpbnRlcmFjdGl2ZT1zZWxm
LmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZSkKKyAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIkZpcmVmb3ggU3RhcnRlZCIpCisKKyAgICBkZWYgbG9hZF9wcmVmcyhz
ZWxmKToKKyAgICAgICAgcHJlZnMgPSBQcmVmZXJlbmNlcygpCisKKyAgICAgICAgcHJlZnNfcGF0
aCA9IG9zLnBhdGguam9pbihzZWxmLnByZWZzX3Jvb3QsICJwcmVmc19nZW5lcmFsLmpzIikKKyAg
ICAgICAgaWYgb3MucGF0aC5leGlzdHMocHJlZnNfcGF0aCk6CisgICAgICAgICAgICBwcmVmcy5h
ZGQoUHJlZmVyZW5jZXMucmVhZF9wcmVmcyhwcmVmc19wYXRoKSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBmaW5kIGJhc2UgcHJlZnMg
ZmlsZSBpbiAlcyIgJSBwcmVmc19wYXRoKQorCisgICAgICAgICMgQWRkIGFueSBjdXN0b20gcHJl
ZmVyZW5jZXMKKyAgICAgICAgcHJlZnMuYWRkKHNlbGYuZXh0cmFfcHJlZnMsIGNhc3Q9VHJ1ZSkK
KworICAgICAgICByZXR1cm4gcHJlZnMoKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFs
c2UpOgorICAgICAgICBpZiBzZWxmLnJ1bm5lciBpcyBub3QgTm9uZSBhbmQgc2VsZi5ydW5uZXIu
aXNfcnVubmluZygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgRm9yIEZp
cmVmb3ggd2UgYXNzdW1lIHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRoZQorICAg
ICAgICAgICAgICAgICMgYnJvd3NlciB0byBzaHV0IGRvd24uIFRoaXMgYWxsb3dzIHRoZSBsZWFr
IGxvZyB0byBiZSB3cml0dGVuCisgICAgICAgICAgICAgICAgZm9yIGNsZWFuLCBzdG9wX2YgaW4g
WyhUcnVlLCBsYW1iZGE6IHNlbGYucnVubmVyLndhaXQoc2VsZi5zaHV0ZG93bl90aW1lb3V0KSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgbGFtYmRhOiBz
ZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5TSUdURVJNKSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChGYWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5T
SUdLSUxMKSldOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgZm9yY2Ugb3Igbm90IGNsZWFu
OgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0Y29kZSA9IHN0b3BfZigpCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiByZXRjb2RlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkJyb3dzZXIgZXhpdGVkIHdpdGggcmV0dXJuIGNv
ZGUgJXMiICUgcmV0Y29kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBw
ZW4gb24gV2luZG93cyBpZiB0aGUgcHJvY2VzcyBpcyBhbHJlYWR5IGRlYWQKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJzdG9wcGVkIikKKworICAgIGRl
ZiBwcm9jZXNzX2xlYWtzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUFJPQ0VT
UyBMRUFLUyAlcyIgJSBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCisgICAgICAgIGlmIHNlbGYubGVh
a19yZXBvcnRfZmlsZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1vemxl
YWsucHJvY2Vzc19sZWFrX2xvZygKKyAgICAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSwK
KyAgICAgICAgICAgIGxlYWtfdGhyZXNob2xkcz17CisgICAgICAgICAgICAgICAgImRlZmF1bHQi
OiAwLAorICAgICAgICAgICAgICAgICJ0YWIiOiAxMDAwMCwgICMgU2VlIGRlcGVuZGVuY2llcyBv
ZiBidWcgMTA1MTIzMC4KKyAgICAgICAgICAgICAgICAjIEdNUCByYXJlbHkgZ2V0cyBhIGxvZywg
YnV0IHdoZW4gaXQgZG9lcywgaXQgbGVha3MgYSBsaXR0bGUuCisgICAgICAgICAgICAgICAgImdl
Y2tvbWVkaWFwbHVnaW4iOiAyMDAwMCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpZ25v
cmVfbWlzc2luZ19sZWFrcz1bImdlY2tvbWVkaWFwbHVnaW4iXSwKKyAgICAgICAgICAgIGxvZz1z
ZWxmLmxvZ2dlciwKKyAgICAgICAgICAgIHN0YWNrX2ZpeGVyPXNlbGYuc3RhY2tfZml4ZXIKKyAg
ICAgICAgKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIucHJv
Y2Vzc19oYW5kbGVyIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lci5wcm9jZXNzX2hhbmRsZXIucGlk
CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICAiIiJXcml0ZSBhIGxp
bmUgb2Ygb3V0cHV0IGZyb20gdGhlIGZpcmVmb3ggcHJvY2VzcyB0byB0aGUgbG9nIiIiCisgICAg
ICAgIGlmICJHTGliLUdPYmplY3QtQ1JJVElDQUwiIGluIGxpbmU6CisgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgaWYgbGluZToKKyAgICAgICAgICAgIGRhdGEgPSBsaW5lLmRlY29kZSgidXRm
OCIsICJyZXBsYWNlIikKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhY2tfZml4ZXI6CisgICAgICAg
ICAgICAgICAgZGF0YSA9IHNlbGYuc3RhY2tfZml4ZXIoZGF0YSkKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYucGlkKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5ydW5uZXIuY29tbWFuZCkpCisKKyAgICBkZWYgaXNf
YWxpdmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYucnVubmVyOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYucnVubmVyLmlzX3J1bm5pbmcoKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorICAgICAgICBzZWxmLnByb2Nl
c3NfbGVha3MoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIGFz
c2VydCBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBub3QgTm9uZQorICAgICAgICByZXR1cm4gRXhl
Y3V0b3JCcm93c2VyLCB7Im1hcmlvbmV0dGVfcG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0fQor
CisgICAgZGVmIGNoZWNrX2Zvcl9jcmFzaGVzKHNlbGYpOgorICAgICAgICBkdW1wX2RpciA9IG9z
LnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgIm1pbmlkdW1wcyIpCisKKyAgICAgICAg
cmV0dXJuIGJvb2wobW96Y3Jhc2guY2hlY2tfZm9yX2NyYXNoZXMoZHVtcF9kaXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1zZWxm
LnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhY2t3YWxrX2JpbmFyeT1zZWxmLnN0YWNrd2Fsa19iaW5hcnksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0PVRydWUpKQorCisgICAg
ZGVmIGxvZ19jcmFzaChzZWxmLCBwcm9jZXNzLCB0ZXN0KToKKyAgICAgICAgZHVtcF9kaXIgPSBv
cy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUsICJtaW5pZHVtcHMiKQorCisgICAgICAg
IG1vemNyYXNoLmxvZ19jcmFzaGVzKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkdW1wX2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19w
YXRoPXNlbGYuc3ltYm9sc19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFj
a3dhbGtfYmluYXJ5PXNlbGYuc3RhY2t3YWxrX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzcz1wcm9jZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0PXRlc3QpCisKKyAgICBkZWYgc2V0dXBfc3NsKHNlbGYpOgorICAgICAgICAiIiJDcmVhdGUg
YSBjZXJ0aWZpY2F0ZSBkYXRhYmFzZSB0byB1c2UgaW4gdGhlIHRlc3QgcHJvZmlsZS4gVGhpcyBp
cyBjb25maWd1cmVkCisgICAgICAgIHRvIHRydXN0IHRoZSBDQSBDZXJ0aWZpY2F0ZSB0aGF0IGhh
cyBzaWduZWQgdGhlIHdlYi1wbGF0Zm9ybS50ZXN0IHNlcnZlcgorICAgICAgICBjZXJ0aWZpY2F0
ZS4iIiIKKyAgICAgICAgaWYgc2VsZi5jZXJ0dXRpbF9iaW5hcnkgaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oIi0tY2VydHV0aWwtYmluYXJ5IG5vdCBzdXBwbGllZDsgRmly
ZWZveCB3aWxsIG5vdCBjaGVjayBjZXJ0aWZpY2F0ZXMiKQorICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiU2V0dGluZyB1cCBzc2wiKQorCisgICAgICAgICMg
TWFrZSBzdXJlIHRoZSBjZXJ0dXRpbCBsaWJyYXJpZXMgZnJvbSB0aGUgc291cmNlIHRyZWUgYXJl
IGxvYWRlZCB3aGVuIHVzaW5nIGEKKyAgICAgICAgIyBsb2NhbCBjb3B5IG9mIGNlcnR1dGlsCisg
ICAgICAgICMgVE9ETzogTWF5YmUgb25seSBzZXQgdGhpcyBpZiBjZXJ0dXRpbCB3b24ndCBsYXVu
Y2g/CisgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGNlcnR1dGlsX2Rp
ciA9IG9zLnBhdGguZGlybmFtZShzZWxmLmJpbmFyeSkKKyAgICAgICAgaWYgbW96aW5mby5pc01h
YzoKKyAgICAgICAgICAgIGVudl92YXIgPSAiRFlMRF9MSUJSQVJZX1BBVEgiCisgICAgICAgIGVs
aWYgbW96aW5mby5pc1VuaXg6CisgICAgICAgICAgICBlbnZfdmFyID0gIkxEX0xJQlJBUllfUEFU
SCIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudl92YXIgPSAiUEFUSCIKKworCisgICAg
ICAgIGVudltlbnZfdmFyXSA9IChvcy5wYXRoLnBhdGhzZXAuam9pbihbY2VydHV0aWxfZGlyLCBl
bnZbZW52X3Zhcl1dKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZW52X3ZhciBpbiBlbnYg
ZWxzZSBjZXJ0dXRpbF9kaXIpLmVuY29kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
eXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkgb3IgJ3V0Zi04JywgJ3JlcGxhY2UnKQorCisgICAg
ICAgIGRlZiBjZXJ0dXRpbCgqYXJncyk6CisgICAgICAgICAgICBjbWQgPSBbc2VsZi5jZXJ0dXRp
bF9iaW5hcnldICsgbGlzdChhcmdzKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19v
dXRwdXQoImNlcnR1dGlsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRl
cnI9c3VicHJvY2Vzcy5TVERPVVQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiAiLmpvaW4oY21kKSkKKworICAgICAgICBwd19wYXRoID0gb3MucGF0aC5qb2luKHNl
bGYucHJvZmlsZS5wcm9maWxlLCAiLmNydGRicHciKQorICAgICAgICB3aXRoIG9wZW4ocHdfcGF0
aCwgInciKSBhcyBmOgorICAgICAgICAgICAgIyBVc2UgZW1wdHkgcGFzc3dvcmQgZm9yIGNlcnRp
ZmljYXRlIGRiCisgICAgICAgICAgICBmLndyaXRlKCJcbiIpCisKKyAgICAgICAgY2VydF9kYl9w
YXRoID0gc2VsZi5wcm9maWxlLnByb2ZpbGUKKworICAgICAgICAjIENyZWF0ZSBhIG5ldyBjZXJ0
aWZpY2F0ZSBkYgorICAgICAgICBjZXJ0dXRpbCgiLU4iLCAiLWQiLCBjZXJ0X2RiX3BhdGgsICIt
ZiIsIHB3X3BhdGgpCisKKyAgICAgICAgIyBBZGQgdGhlIENBIGNlcnRpZmljYXRlIHRvIHRoZSBk
YXRhYmFzZSBhbmQgbWFyayBhcyB0cnVzdGVkIHRvIGlzc3VlIHNlcnZlciBjZXJ0cworICAgICAg
ICBjZXJ0dXRpbCgiLUEiLCAiLWQiLCBjZXJ0X2RiX3BhdGgsICItZiIsIHB3X3BhdGgsICItdCIs
ICJDVCwsIiwKKyAgICAgICAgICAgICAgICAgIi1uIiwgIndlYi1wbGF0Zm9ybS10ZXN0cyIsICIt
aSIsIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCkKKworICAgICAgICAjIExpc3QgYWxsIGNlcnRz
IGluIHRoZSBkYXRhYmFzZQorICAgICAgICBjZXJ0dXRpbCgiLUwiLCAiLWQiLCBjZXJ0X2RiX3Bh
dGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvaWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdkOTZlYzkxZTA3YmYxMjE0ZDE5YjMwZjEw
ZTdhY2ViMWY5YjAzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9p
ZS5weQpAQCAtMCwwICsxLDc3IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRv
ckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgSW50
ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0
b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRv
cikKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRl
cm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IKKworX193cHRydW5uZXJfXyA9IHsicHJv
ZHVjdCI6ICJpZSIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3Mi
LAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJJbnRlcm5ldEV4cGxvcmVyQnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1U
ZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiAiSW50ZXJuZXRFeHBsb3JlckRyaXZlcldkc3BlY0V4ZWN1dG9yIn0s
CisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisg
ICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAg
ICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAg
ICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKipr
d2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQorCitk
ZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6Cisg
ICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2Fy
Z3MiKX0KKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KToKKyAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGll
cworCisgICAgb3B0aW9ucyA9IHt9CisgICAgb3B0aW9uc1sicmVxdWlyZVdpbmRvd0ZvY3VzIl0g
PSBUcnVlCisgICAgY2FwYWJpbGl0aWVzID0ge30KKyAgICBjYXBhYmlsaXRpZXNbInNlOmllT3B0
aW9ucyJdID0gb3B0aW9ucworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dh
cmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9r
d2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNh
cGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwor
CitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKK2RlZiBlbnZfb3B0
aW9ucygpOgorICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9CisKK2NsYXNz
IEludGVybmV0RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIpOgorICAgIHVzZWRfcG9ydHMgPSBzZXQo
KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2Vy
KQorICAgICAgICBzZWxmLnNlcnZlciA9IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIoc2Vs
Zi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIHNl
bGYud2ViZHJpdmVyX2hvc3QgPSAibG9jYWxob3N0IgorICAgICAgICBzZWxmLndlYmRyaXZlcl9w
b3J0ID0gc2VsZi5zZXJ2ZXIucG9ydAorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToK
KyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9
RmFsc2UpOgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVm
IHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAorCisgICAgZGVmIGlz
X2FsaXZlKHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0
aGUgc2VydmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBh
Ym91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAgICMgaXMgYWN0aXZlLgorICAg
ICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorCisgICAgZGVmIGNsZWFudXAoc2Vs
Zik6CisgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxm
KToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2Vs
Zi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYWNmYTVhN2Q4
MGFkMjRlN2JkODEzNTkxM2Y4MzJlYWRlNTljMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKQEAgLTAsMCArMSwxMDAgQEAKK2Zyb20gLmJhc2UgaW1w
b3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLi53ZWJkcml2
ZXJfc2VydmVyIGltcG9ydCBPcGVyYURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBv
cnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0
b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRl
c3RFeGVjdXRvcikKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JvcGVyYSBpbXBvcnQgT3BlcmFE
cml2ZXJXZHNwZWNFeGVjdXRvcgorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAib3Bl
cmEiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAg
ICAgICAgICAgICAgImJyb3dzZXIiOiAiT3BlcmFCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZU
ZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJP
cGVyYURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3
YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2Fy
Z3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAi
ZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9u
cyJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJn
cywgIndlYmRyaXZlcl9iaW5hcnkiKQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3Nb
ImJpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRy
aXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQo
IndlYmRyaXZlcl9hcmdzIil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKKyAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVz
aXJlZENhcGFiaWxpdGllcworCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGNhcGFiaWxpdGllcyA9IGRp
Y3QoRGVzaXJlZENhcGFiaWxpdGllcy5PUEVSQS5pdGVtcygpKQorICAgIGNhcGFiaWxpdGllcy5z
ZXRkZWZhdWx0KCJvcGVyYU9wdGlvbnMiLCB7fSlbInByZWZzIl0gPSB7CisgICAgICAgICJwcm9m
aWxlIjogeworICAgICAgICAgICAgImRlZmF1bHRfY29udGVudF9zZXR0aW5nX3ZhbHVlcyI6IHsK
KyAgICAgICAgICAgICAgICAicG9wdXBzIjogMQorICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorICAgIGZvciAoa3dhcmcsIGNhcGFiaWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnki
KSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIildOgorICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJvcGVyYU9wdGlvbnMiXVtjYXBh
YmlsaXR5XSA9IGt3YXJnc1trd2FyZ10KKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNz
IjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJvcGVyYU9wdGlvbnMiXVsidXNlQXV0b21hdGlvbkV4
dGVuc2lvbiJdID0gRmFsc2UKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJvcGVyYU9wdGlvbnMiXVsi
ZXhjbHVkZVN3aXRjaGVzIl0gPSBbImVuYWJsZS1hdXRvbWF0aW9uIl0KKyAgICBpZiB0ZXN0X3R5
cGUgPT0gIndkc3BlYyI6CisgICAgICAgIGNhcGFiaWxpdGllc1sib3BlcmFPcHRpb25zIl1bIncz
YyJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmls
aXRpZXMKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKipr
d2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVy
biB7fQorCisKK2NsYXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKKyAgICAiIiJPcGVyYSBpcyBi
YWNrZWQgYnkgb3BlcmFkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKKyAgICBgYHdw
dHJ1bm5lci53ZWJkcml2ZXIuT3BlcmFEcml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0ib3BlcmFk
cml2ZXIiLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAg
IiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBPcGVyYS4gIFRoZSBgYmluYXJ5YCBh
cmd1bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0
aW5nLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAg
c2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBPcGVyYURyaXZlclNl
cnZlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoq
a3dhcmdzKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBk
ZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9y
Y2U9Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2
ZXIucGlkCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBU
aGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRv
ZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAg
ICAgIyBpcyBhY3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisK
KyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBl
eGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7
IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2FmYXJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjk5ZDIyYmJjMzU1ZWZjNjFhNzA0ZmVkNzFhNDc5NTQzYzcyMGRlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpAQCAtMCwwICsx
LDg0IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVp
cmVfYXJnCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgU2FmYXJpRHJpdmVyU2VydmVy
Citmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRv
cl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVu
aXVtVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKQorCisKK19fd3B0cnVubmVyX18gPSB7
InByb2R1Y3QiOiAic2FmYXJpIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hl
Y2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
cl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jf
a3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFz
IjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29w
dGlvbnMifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhr
d2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsid2ViZHJpdmVyX2Jp
bmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZl
cl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYgZXhlY3V0b3Jf
a3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9f
ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGZyb20gc2VsZW5pdW0u
d2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgKipr
d2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGRpY3QoRGVzaXJlZENhcGFiaWxp
dGllcy5TQUZBUkkuaXRlbXMoKSkKKyAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25l
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTYWZhcmkgZG9lc24ndCBzdXBwb3J0IHNldHRp
bmcgZXhlY3V0YWJsZSBsb2NhdGlvbiIpCisKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisK
KworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZf
b3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2NsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nl
cik6CisgICAgIiIiU2FmYXJpIGlzIGJhY2tlZCBieSBzYWZhcmlkcml2ZXIsIHdoaWNoIGlzIHN1
cHBsaWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuU2FmYXJpRHJpdmVyU2Vy
dmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2
ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIG5l
dyByZXByZXNlbnRhdGlvbiBvZiBTYWZhcmkuICBUaGUgYHdlYmRyaXZlcl9iaW5hcnlgCisgICAg
ICAgIGFyZ3VtZW50IGdpdmVzIHRoZSBXZWJEcml2ZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGlu
Zy4gKFRoZSBicm93c2VyCisgICAgICAgIGJpbmFyeSBsb2NhdGlvbiBjYW5ub3QgYmUgc3BlY2lm
aWVkLCBhcyBTYWZhcmkgYW5kIFNhZmFyaURyaXZlciBhcmUKKyAgICAgICAgY291cGxlZC4pIiIi
CisgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLnNl
cnZlciA9IFNhZmFyaURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisK
KyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnNlcnZlci5zdGFy
dChibG9jaz1GYWxzZSkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToK
KyAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBh
bGl2ZSwKKyAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBh
IGJyb3dzZXIgc2Vzc2lvbgorICAgICAgICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNl
bGYuc2VydmVyLmlzX2FsaXZlKCkKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBz
ZWxmLnN0b3AoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJl
dHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zYXVjZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWUyZjdlY2Y1NGQ4MDdhYTQ2NmUxYTky
OGQzMTYyMGM2MWJmNzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NhdWNlLnB5CkBAIC0wLDAgKzEsMjQwIEBACisjIFRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBz
dWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUgTW96aWxsYSBQdWJsaWMKKyMgTGljZW5zZSwgdi4g
Mi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBm
aWxlLAorIyBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAv
LgorCitpbXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3VicHJv
Y2VzcworaW1wb3J0IHRhcmZpbGUKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRpbWUKK2Zyb20g
Y1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTyBhcyBDU3RyaW5nSU8KKworaW1wb3J0IHJlcXVlc3Rz
CisKK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9h
cmcKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1
dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2Vs
ZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpCisKK2hlcmUgPSBvcy5wYXRoLnNw
bGl0KF9fZmlsZV9fKVswXQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAic2F1Y2Ui
LAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiAiU2F1Y2VCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4
ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0
RXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJf
a3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9r
d2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAg
ICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKworCitkZWYgZ2V0
X2NhcGFiaWxpdGllcygqKmt3YXJncyk6CisgICAgYnJvd3Nlcl9uYW1lID0ga3dhcmdzWyJzYXVj
ZV9icm93c2VyIl0KKyAgICBwbGF0Zm9ybSA9IGt3YXJnc1sic2F1Y2VfcGxhdGZvcm0iXQorICAg
IHZlcnNpb24gPSBrd2FyZ3NbInNhdWNlX3ZlcnNpb24iXQorICAgIGJ1aWxkID0ga3dhcmdzWyJz
YXVjZV9idWlsZCJdCisgICAgdGFncyA9IGt3YXJnc1sic2F1Y2VfdGFncyJdCisgICAgdHVubmVs
X2lkID0ga3dhcmdzWyJzYXVjZV90dW5uZWxfaWQiXQorICAgIHByZXJ1bl9zY3JpcHQgPSB7Cisg
ICAgICAgICJNaWNyb3NvZnRFZGdlIjogeworICAgICAgICAgICAgImV4ZWN1dGFibGUiOiAic2F1
Y2Utc3RvcmFnZTplZGdlLXByZXJ1bi5iYXQiLAorICAgICAgICAgICAgImJhY2tncm91bmQiOiBG
YWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgInNhZmFyaSI6IHsKKyAgICAgICAgICAgICJleGVj
dXRhYmxlIjogInNhdWNlLXN0b3JhZ2U6c2FmYXJpLXByZXJ1bi5zaCIsCisgICAgICAgICAgICAi
YmFja2dyb3VuZCI6IEZhbHNlLAorICAgICAgICB9CisgICAgfQorICAgIGNhcGFiaWxpdGllcyA9
IHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogYnJvd3Nlcl9uYW1lLAorICAgICAgICAiYnVpbGQi
OiBidWlsZCwKKyAgICAgICAgImRpc2FibGVQb3B1cEhhbmRsZXIiOiBUcnVlLAorICAgICAgICAi
bmFtZSI6ICIlcyAlcyBvbiAlcyIgJSAoYnJvd3Nlcl9uYW1lLCB2ZXJzaW9uLCBwbGF0Zm9ybSks
CisgICAgICAgICJwbGF0Zm9ybSI6IHBsYXRmb3JtLAorICAgICAgICAicHVibGljIjogInB1Ymxp
YyIsCisgICAgICAgICJzZWxlbml1bS12ZXJzaW9uIjogIjMuMy4xIiwKKyAgICAgICAgInRhZ3Mi
OiB0YWdzLAorICAgICAgICAidHVubmVsLWlkZW50aWZpZXIiOiB0dW5uZWxfaWQsCisgICAgICAg
ICJ2ZXJzaW9uIjogdmVyc2lvbiwKKyAgICAgICAgInByZXJ1biI6IHByZXJ1bl9zY3JpcHQuZ2V0
KGJyb3dzZXJfbmFtZSkKKyAgICB9CisKKyAgICBpZiBicm93c2VyX25hbWUgPT0gJ01pY3Jvc29m
dEVkZ2UnOgorICAgICAgICBjYXBhYmlsaXRpZXNbJ3NlbGVuaXVtLXZlcnNpb24nXSA9ICcyLjQu
OCcKKworICAgIHJldHVybiBjYXBhYmlsaXRpZXMKKworCitkZWYgZ2V0X3NhdWNlX2NvbmZpZygq
Kmt3YXJncyk6CisgICAgYnJvd3Nlcl9uYW1lID0ga3dhcmdzWyJzYXVjZV9icm93c2VyIl0KKyAg
ICBzYXVjZV91c2VyID0ga3dhcmdzWyJzYXVjZV91c2VyIl0KKyAgICBzYXVjZV9rZXkgPSBrd2Fy
Z3NbInNhdWNlX2tleSJdCisKKyAgICBodWJfdXJsID0gIiVzOiVzQGxvY2FsaG9zdDo0NDQ1IiAl
IChzYXVjZV91c2VyLCBzYXVjZV9rZXkpCisgICAgZGF0YSA9IHsKKyAgICAgICAgInVybCI6ICJo
dHRwOi8vJXMvd2QvaHViIiAlIGh1Yl91cmwsCisgICAgICAgICJicm93c2VyTmFtZSI6IGJyb3dz
ZXJfbmFtZSwKKyAgICAgICAgImNhcGFiaWxpdGllcyI6IGdldF9jYXBhYmlsaXRpZXMoKiprd2Fy
Z3MpCisgICAgfQorCisgICAgcmV0dXJuIGRhdGEKKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAic2F1Y2VfYnJvd3NlciIpCisgICAgcmVxdWly
ZV9hcmcoa3dhcmdzLCAic2F1Y2VfcGxhdGZvcm0iKQorICAgIHJlcXVpcmVfYXJnKGt3YXJncywg
InNhdWNlX3ZlcnNpb24iKQorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNlX3VzZXIiKQor
ICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNlX2tleSIpCisKKworZGVmIGJyb3dzZXJfa3dh
cmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHNhdWNlX2NvbmZp
ZyA9IGdldF9zYXVjZV9jb25maWcoKiprd2FyZ3MpCisKKyAgICByZXR1cm4geyJzYXVjZV9jb25m
aWciOiBzYXVjZV9jb25maWd9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgKiprd2FyZ3MpCisKKyAgICBleGVjdXRv
cl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gZ2V0X2NhcGFiaWxpdGllcygqKmt3YXJncykKKwor
ICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6
CisgICAgcmV0dXJuIFtTYXVjZUNvbm5lY3QoKiprd2FyZ3MpXQorCisKK2RlZiBlbnZfb3B0aW9u
cygpOgorICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9CisKKworZGVmIGdl
dF90YXIodXJsLCBkZXN0KToKKyAgICByZXNwID0gcmVxdWVzdHMuZ2V0KHVybCwgc3RyZWFtPVRy
dWUpCisgICAgcmVzcC5yYWlzZV9mb3Jfc3RhdHVzKCkKKyAgICB3aXRoIHRhcmZpbGUub3Blbihm
aWxlb2JqPUNTdHJpbmdJTyhyZXNwLnJhdy5yZWFkKCkpKSBhcyBmOgorICAgICAgICBmLmV4dHJh
Y3RhbGwocGF0aD1kZXN0KQorCisKK2NsYXNzIFNhdWNlQ29ubmVjdCgpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5zYXVjZV91c2VyID0ga3dhcmdz
WyJzYXVjZV91c2VyIl0KKyAgICAgICAgc2VsZi5zYXVjZV9rZXkgPSBrd2FyZ3NbInNhdWNlX2tl
eSJdCisgICAgICAgIHNlbGYuc2F1Y2VfdHVubmVsX2lkID0ga3dhcmdzWyJzYXVjZV90dW5uZWxf
aWQiXQorICAgICAgICBzZWxmLnNhdWNlX2Nvbm5lY3RfYmluYXJ5ID0ga3dhcmdzLmdldCgic2F1
Y2VfY29ubmVjdF9iaW5hcnkiKQorICAgICAgICBzZWxmLnNjX3Byb2Nlc3MgPSBOb25lCisgICAg
ICAgIHNlbGYudGVtcF9kaXIgPSBOb25lCisgICAgICAgIHNlbGYuZW52X2NvbmZpZyA9IE5vbmUK
KworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZfb3B0aW9ucywgZW52X2NvbmZpZyk6CisgICAg
ICAgIHNlbGYuZW52X2NvbmZpZyA9IGVudl9jb25maWcKKworICAgICAgICByZXR1cm4gc2VsZgor
CisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgIyBCZWNhdXNlIHRoaXMgY2xhc3Mg
aW1wbGVtZW50cyB0aGUgY29udGV4dCBtYW5hZ2VyIHByb3RvY29sLCBpdCBpcworICAgICAgICAj
IHBvc3NpYmxlIGZvciBpbnN0YW5jZXMgdG8gYmUgcHJvdmlkZWQgdG8gdGhlIGB3aXRoYCBzdGF0
ZW1lbnQKKyAgICAgICAgIyBkaXJlY3RseS4gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBjYWxs
YWJsZSBwcm90b2NvbCBzbyB0aGF0IGRhdGEKKyAgICAgICAgIyB3aGljaCBpcyBub3QgYXZhaWxh
YmxlIGR1cmluZyBvYmplY3QgaW5pdGlhbGl6YXRpb24gY2FuIGJlIHByb3ZpZGVkCisgICAgICAg
ICMgcHJpb3IgdG8gdGhpcyBtb21lbnQuIEluc3RhbmNlcyBtdXN0IGJlIGludm9rZWQgaW4gcHJl
cGFyYXRpb24gZm9yCisgICAgICAgICMgdGhlIGNvbnRleHQgbWFuYWdlciBwcm90b2NvbCwgYnV0
IHRoaXMgYWRkaXRpb25hbCBjb25zdHJhaW50IGlzIG5vdAorICAgICAgICAjIGl0c2VsZiBwYXJ0
IG9mIHRoZSBwcm90b2NvbC4KKyAgICAgICAgYXNzZXJ0IHNlbGYuZW52X2NvbmZpZyBpcyBub3Qg
Tm9uZSwgJ1RoZSBpbnN0YW5jZSBoYXMgYmVlbiBpbnZva2VkLicKKworICAgICAgICBpZiBub3Qg
c2VsZi5zYXVjZV9jb25uZWN0X2JpbmFyeToKKyAgICAgICAgICAgIHNlbGYudGVtcF9kaXIgPSB0
ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgICAgIGdldF90YXIoImh0dHBzOi8vc2F1Y2VsYWJz
LmNvbS9kb3dubG9hZHMvc2MtNC40LjktbGludXgudGFyLmd6Iiwgc2VsZi50ZW1wX2RpcikKKyAg
ICAgICAgICAgIHNlbGYuc2F1Y2VfY29ubmVjdF9iaW5hcnkgPSBnbG9iLmdsb2Iob3MucGF0aC5q
b2luKHNlbGYudGVtcF9kaXIsICJzYy0qLWxpbnV4L2Jpbi9zYyIpKVswXQorCisgICAgICAgIHNl
bGYudXBsb2FkX3ByZXJ1bl9leGVjKCdlZGdlLXByZXJ1bi5iYXQnKQorICAgICAgICBzZWxmLnVw
bG9hZF9wcmVydW5fZXhlYygnc2FmYXJpLXByZXJ1bi5zaCcpCisKKyAgICAgICAgc2VsZi5zY19w
cm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbCisgICAgICAgICAgICBzZWxmLnNhdWNlX2Nvbm5l
Y3RfYmluYXJ5LAorICAgICAgICAgICAgIi0tdXNlcj0lcyIgJSBzZWxmLnNhdWNlX3VzZXIsCisg
ICAgICAgICAgICAiLS1hcGkta2V5PSVzIiAlIHNlbGYuc2F1Y2Vfa2V5LAorICAgICAgICAgICAg
Ii0tbm8tcmVtb3ZlLWNvbGxpZGluZy10dW5uZWxzIiwKKyAgICAgICAgICAgICItLXR1bm5lbC1p
ZGVudGlmaWVyPSVzIiAlIHNlbGYuc2F1Y2VfdHVubmVsX2lkLAorICAgICAgICAgICAgIi0tbWV0
cmljcy1hZGRyZXNzPTAuMC4wLjA6OTg3NiIsCisgICAgICAgICAgICAiLS1yZWFkeWZpbGU9Li9z
YXVjZV9pc19yZWFkeSIsCisgICAgICAgICAgICAiLS10dW5uZWwtZG9tYWlucyIsCisgICAgICAg
ICAgICAiLCIuam9pbihzZWxmLmVudl9jb25maWdbJ2RvbWFpbnMnXS52YWx1ZXMoKSkKKyAgICAg
ICAgXSkKKworICAgICAgICAjIFRpbWVvdXQgY29uZmlnIHZhcnMKKyAgICAgICAgZWFjaF9zbGVl
cF9zZWNzID0gMQorICAgICAgICBtYXhfd2FpdCA9IDMwCisgICAgICAgIGtpbGxfd2FpdCA9IDUK
KworICAgICAgICB0b3Rfd2FpdCA9IDAKKyAgICAgICAgd2hpbGUgbm90IG9zLnBhdGguZXhpc3Rz
KCcuL3NhdWNlX2lzX3JlYWR5JykgYW5kIHNlbGYuc2NfcHJvY2Vzcy5wb2xsKCkgaXMgTm9uZToK
KyAgICAgICAgICAgIGlmIHRvdF93YWl0ID49IG1heF93YWl0OgorICAgICAgICAgICAgICAgIHNl
bGYuc2NfcHJvY2Vzcy50ZXJtaW5hdGUoKQorICAgICAgICAgICAgICAgIHdoaWxlIHNlbGYuc2Nf
cHJvY2Vzcy5wb2xsKCkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcChl
YWNoX3NsZWVwX3NlY3MpCisgICAgICAgICAgICAgICAgICAgIHRvdF93YWl0ICs9IGVhY2hfc2xl
ZXBfc2VjcworICAgICAgICAgICAgICAgICAgICBpZiB0b3Rfd2FpdCA+PSAobWF4X3dhaXQgKyBr
aWxsX3dhaXQpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY19wcm9jZXNzLmtpbGwo
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICByYWlzZSBT
YXVjZUV4Y2VwdGlvbigiU2F1Y2UgQ29ubmVjdCBQcm94eSB3YXMgbm90IHJlYWR5IGFmdGVyICVk
IHNlY29uZHMiICUgdG90X3dhaXQpCisKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoZWFjaF9zbGVl
cF9zZWNzKQorICAgICAgICAgICAgdG90X3dhaXQgKz0gZWFjaF9zbGVlcF9zZWNzCisKKyAgICAg
ICAgaWYgc2VsZi5zY19wcm9jZXNzLnJldHVybmNvZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICByYWlzZSBTYXVjZUV4Y2VwdGlvbigiVW5hYmxlIHRvIHN0YXJ0IFNhdWNlIENvbm5lY3QgUHJv
eHkuIFByb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAlcyIsIHNlbGYuc2NfcHJvY2Vzcy5yZXR1cm5j
b2RlKQorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIp
OgorICAgICAgICBzZWxmLmVudl9jb25maWcgPSBOb25lCisgICAgICAgIHNlbGYuc2NfcHJvY2Vz
cy50ZXJtaW5hdGUoKQorICAgICAgICBpZiBzZWxmLnRlbXBfZGlyIGFuZCBvcy5wYXRoLmV4aXN0
cyhzZWxmLnRlbXBfZGlyKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaHV0
aWwucm10cmVlKHNlbGYudGVtcF9kaXIpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAg
ICAgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgdXBsb2FkX3ByZXJ1bl9leGVjKHNlbGYsIGZp
bGVfbmFtZSk6CisgICAgICAgIGF1dGggPSAoc2VsZi5zYXVjZV91c2VyLCBzZWxmLnNhdWNlX2tl
eSkKKyAgICAgICAgdXJsID0gImh0dHBzOi8vc2F1Y2VsYWJzLmNvbS9yZXN0L3YxL3N0b3JhZ2Uv
JXMvJXM/b3ZlcndyaXRlPXRydWUiICUgKHNlbGYuc2F1Y2VfdXNlciwgZmlsZV9uYW1lKQorCisg
ICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgJ3NhdWNlX3NldHVwJywgZmlsZV9u
YW1lKSwgJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIHJlcXVlc3RzLnBvc3QodXJsLCBkYXRhPWYs
IGF1dGg9YXV0aCkKKworCitjbGFzcyBTYXVjZUV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIHBh
c3MKKworCitjbGFzcyBTYXVjZUJyb3dzZXIoQnJvd3Nlcik6CisgICAgaW5pdF90aW1lb3V0ID0g
MzAwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBzYXVjZV9jb25maWcpOgorICAg
ICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5zYXVjZV9j
b25maWcgPSBzYXVjZV9jb25maWcKKworICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgcGFz
cworCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGlzX2FsaXZl
KHNlbGYpOgorICAgICAgICAjIFRPRE86IFNob3VsZCB0aGlzIGNoZWNrIHNvbWV0aGluZyBhYm91
dCB0aGUgY29ubmVjdGlvbj8KKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBjbGVhbnVw
KHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToK
KyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5z
YXVjZV9jb25maWdbInVybCJdfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3Nh
dWNlX3NldHVwL2VkZ2UtcHJlcnVuLmJhdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9z
ZXR1cC9lZGdlLXByZXJ1bi5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU1NDg5NDg5NmI5ODBlM2QzYWI4OGY3
MzlmNjQ5YzAwYmUxN2I5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zYXVjZV9zZXR1cC9lZGdlLXByZXJ1bi5iYXQKQEAgLTAsMCArMSwyIEBACitAZWNobyBvZmYK
K3JlZyBhZGQgIkhLQ1VcU29mdHdhcmVcQ2xhc3Nlc1xMb2NhbCBTZXR0aW5nc1xTb2Z0d2FyZVxN
aWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxBcHBDb250YWluZXJcU3RvcmFnZVxtaWNy
b3NvZnQubWljcm9zb2Z0ZWRnZV84d2VreWIzZDhiYndlXE1pY3Jvc29mdEVkZ2VcTmV3IFdpbmRv
d3MiIC92ICJQb3B1cE1nciIgL3QgUkVHX1NaIC9kIG5vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2FmYXJpLXByZXJ1bi5zaCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9zYXVjZV9zZXR1cC9zYWZhcmktcHJlcnVuLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YzcyZTZi
ZTZhMDdjY2ZhYmI4OTU4ODdlMWM4YWEzZmVlZjY5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2FmYXJpLXByZXJ1bi5zaApAQCAtMCwwICsx
LDIgQEAKKyMhL2Jpbi9iYXNoCitkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpIGNvbS5h
cHBsZS5TYWZhcmkuQ29udGVudFBhZ2VHcm91cElkZW50aWZpZXIuV2ViS2l0MkphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgLWJvb2wgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZjFjMTZl
YzhiZDQ3OGQ2Y2E4ZmQ3ZGJiYTZjODAxOWQxOGU0NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
OCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL2VkZ2UtcHJl
cnVuLmJhdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9zYWZhcmktcHJlcnVu
LnNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1NGZiMDUyNWVjMGQ4MGE1OGQ2
NjY4NzVhZThlNzVjOWQ3MGFlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zZXJ2by5weQpAQCAtMCwwICsxLDgyIEBACitpbXBvcnQgb3MKKworZnJvbSAuYmFzZSBp
bXBvcnQgTnVsbEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLi5l
eGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwor
ZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlcnZvIGltcG9ydCBTZXJ2b1Rlc3RoYXJuZXNzRXhl
Y3V0b3IsIFNlcnZvUmVmVGVzdEV4ZWN1dG9yLCBTZXJ2b1dkc3BlY0V4ZWN1dG9yCisKK2hlcmUg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCisKK19fd3B0cnVubmVy
X18gPSB7CisgICAgInByb2R1Y3QiOiAic2Vydm8iLAorICAgICJjaGVja19hcmdzIjogImNoZWNr
X2FyZ3MiLAorICAgICJicm93c2VyIjogIlNlcnZvQnJvd3NlciIsCisgICAgImV4ZWN1dG9yIjog
eworICAgICAgICAidGVzdGhhcm5lc3MiOiAiU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAg
ICAgICAgInJlZnRlc3QiOiAiU2Vydm9SZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAid2RzcGVj
IjogIlNlcnZvV2RzcGVjRXhlY3V0b3IiLAorICAgIH0sCisgICAgImJyb3dzZXJfa3dhcmdzIjog
ImJyb3dzZXJfa3dhcmdzIiwKKyAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJn
cyIsCisgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgImVudl9vcHRpb25zIjog
ImVudl9vcHRpb25zIiwKKyAgICAidXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRp
ZXMiLAorfQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhr
d2FyZ3MsICJiaW5hcnkiKQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICByZXR1cm4geworICAgICAgICAiYmluYXJ5Ijoga3dh
cmdzWyJiaW5hcnkiXSwKKyAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8i
XSwKKyAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLAorICAgICAg
ICAidXNlcl9zdHlsZXNoZWV0cyI6IGt3YXJncy5nZXQoInVzZXJfc3R5bGVzaGVldHMiKSwKKyAg
ICAgICAgImNhX2NlcnRpZmljYXRlX3BhdGgiOiBrd2FyZ3NbInNzbF9lbnYiXS5jYV9jZXJ0X3Bh
dGgoKSwKKyAgICB9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKToKKyAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2Vy
dmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
ICoqa3dhcmdzKQorICAgIHJ2WyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBrd2FyZ3NbInBhdXNlX2Fm
dGVyX3Rlc3QiXQorICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoKKyAgICAgICAgcnZbImNh
cGFiaWxpdGllcyJdID0ge30KKyAgICByZXR1cm4gcnYKKworCitkZWYgZW52X2V4dHJhcygqKmt3
YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJu
IHsic2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIiwKKyAgICAgICAgICAgICJiaW5kX2FkZHJlc3Mi
OiBGYWxzZSwKKyAgICAgICAgICAgICJ0ZXN0aGFybmVzc3JlcG9ydCI6ICJ0ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2by5qcyIsCisgICAgICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQor
CisKK2RlZiB1cGRhdGVfcHJvcGVydGllcygpOgorICAgIHJldHVybiBbImRlYnVnIiwgIm9zIiwg
InZlcnNpb24iLCAicHJvY2Vzc29yIiwgImJpdHMiXSwgTm9uZQorCisKK2NsYXNzIFNlcnZvQnJv
d3NlcihOdWxsQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5
LCBkZWJ1Z19pbmZvPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHVz
ZXJfc3R5bGVzaGVldHM9Tm9uZSwgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lKToKKyAgICAgICAg
TnVsbEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFyeSA9
IGJpbmFyeQorICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCisgICAgICAgIHNl
bGYuYmluYXJ5X2FyZ3MgPSBiaW5hcnlfYXJncyBvciBbXQorICAgICAgICBzZWxmLnVzZXJfc3R5
bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIG9yIFtdCisgICAgICAgIHNlbGYuY2FfY2VydGlm
aWNhdGVfcGF0aCA9IGNhX2NlcnRpZmljYXRlX3BhdGgKKworICAgIGRlZiBleGVjdXRvcl9icm93
c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7CisgICAgICAgICAg
ICAiYmluYXJ5Ijogc2VsZi5iaW5hcnksCisgICAgICAgICAgICAiZGVidWdfaW5mbyI6IHNlbGYu
ZGVidWdfaW5mbywKKyAgICAgICAgICAgICJiaW5hcnlfYXJncyI6IHNlbGYuYmluYXJ5X2FyZ3Ms
CisgICAgICAgICAgICAidXNlcl9zdHlsZXNoZWV0cyI6IHNlbGYudXNlcl9zdHlsZXNoZWV0cywK
KyAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjogc2VsZi5jYV9jZXJ0aWZpY2F0ZV9w
YXRoLAorICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9k
cml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjJlZTAwYTdhYjBmMjdiZDkzODljMjkxYzJmMDJjODYwZjc1MzIxYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAtMCwwICsxLDE1
OSBAQAoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0
IHRlbXBmaWxlCisKK2Zyb20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKKworZnJv
bSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCisKK2Zyb20gLmJhc2UgaW1wb3J0
IEJyb3dzZXIsIHJlcXVpcmVfYXJnLCBnZXRfZnJlZV9wb3J0LCBicm93c2VyX2NvbW1hbmQsIEV4
ZWN1dG9yQnJvd3NlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFz
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2Vydm9kcml2
ZXIgaW1wb3J0IChTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2b1dlYkRyaXZlclJlZlRlc3RF
eGVjdXRvcikKKworaGVyZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XSkKKworX193cHRydW5uZXJfXyA9IHsKKyAgICAicHJvZHVjdCI6ICJzZXJ2b2RyaXZlciIsCisg
ICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgImJyb3dzZXIiOiAiU2Vydm9XZWJE
cml2ZXJCcm93c2VyIiwKKyAgICAiZXhlY3V0b3IiOiB7CisgICAgICAgICJ0ZXN0aGFybmVzcyI6
ICJTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAicmVmdGVzdCI6
ICJTZXJ2b1dlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCisgICAgfSwKKyAgICAiYnJvd3Nlcl9r
d2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0
b3Jfa3dhcmdzIiwKKyAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAiZW52X29w
dGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVf
cHJvcGVydGllcyIsCit9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVp
cmVfYXJnKGt3YXJncywgImJpbmFyeSIpCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJldHVybiB7CisgICAgICAgICJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVi
dWdfaW5mbyJdLAorICAgICAgICAidXNlcl9zdHlsZXNoZWV0cyI6IGt3YXJncy5nZXQoInVzZXJf
c3R5bGVzaGVldHMiKSwKKyAgICB9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToK
KyAgICBydiA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsICoqa3dhcmdzKQor
ICAgIHJldHVybiBydgorCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4g
W10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIx
MjcuMC4wLjEiLAorICAgICAgICAgICAgInRlc3RoYXJuZXNzcmVwb3J0IjogInRlc3RoYXJuZXNz
cmVwb3J0LXNlcnZvZHJpdmVyLmpzIiwKKyAgICAgICAgICAgICJzdXBwb3J0c19kZWJ1Z2dlciI6
IFRydWV9CisKKworZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6CisgICAgcmV0dXJuIFsiZGVidWci
LCAib3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdLCBOb25lCisKKworZGVmIHdy
aXRlX2hvc3RzX2ZpbGUoY29uZmlnKToKKyAgICBob3N0c19mZCwgaG9zdHNfcGF0aCA9IHRlbXBm
aWxlLm1rc3RlbXAoKQorICAgIHdpdGggb3MuZmRvcGVuKGhvc3RzX2ZkLCAidyIpIGFzIGY6Cisg
ICAgICAgIGYud3JpdGUobWFrZV9ob3N0c19maWxlKGNvbmZpZywgIjEyNy4wLjAuMSIpKQorICAg
IHJldHVybiBob3N0c19wYXRoCisKKworY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dz
ZXIpOgorICAgIHVzZWRfcG9ydHMgPSBzZXQoKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCBkZWJ1Z19pbmZvPU5vbmUsIHdlYmRyaXZlcl9ob3N0PSIxMjcuMC4wLjEi
LAorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxlc2hlZXRzPU5vbmUpOgorICAgICAgICBCcm93
c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkK
KyAgICAgICAgc2VsZi53ZWJkcml2ZXJfaG9zdCA9IHdlYmRyaXZlcl9ob3N0CisgICAgICAgIHNl
bGYud2ViZHJpdmVyX3BvcnQgPSBOb25lCisgICAgICAgIHNlbGYucHJvYyA9IE5vbmUKKyAgICAg
ICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbworICAgICAgICBzZWxmLmhvc3RzX3BhdGgg
PSB3cml0ZV9ob3N0c19maWxlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kID0gTm9uZQorICAgICAg
ICBzZWxmLnVzZXJfc3R5bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIGlmIHVzZXJfc3R5bGVz
aGVldHMgZWxzZSBbXQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAg
c2VsZi53ZWJkcml2ZXJfcG9ydCA9IGdldF9mcmVlX3BvcnQoNDQ0NCwgZXhjbHVkZT1zZWxmLnVz
ZWRfcG9ydHMpCisgICAgICAgIHNlbGYudXNlZF9wb3J0cy5hZGQoc2VsZi53ZWJkcml2ZXJfcG9y
dCkKKworICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBlbnZbIkhPU1Rf
RklMRSJdID0gc2VsZi5ob3N0c19wYXRoCisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9
ICIxIgorCisgICAgICAgIGRlYnVnX2FyZ3MsIGNvbW1hbmQgPSBicm93c2VyX2NvbW1hbmQoCisg
ICAgICAgICAgICBzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAi
LS1oYXJkLWZhaWwiLAorICAgICAgICAgICAgICAgICItLXdlYmRyaXZlciIsIHN0cihzZWxmLndl
YmRyaXZlcl9wb3J0KSwKKyAgICAgICAgICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbworICAgICAgICApCisKKyAgICAgICAg
Zm9yIHN0eWxlc2hlZXQgaW4gc2VsZi51c2VyX3N0eWxlc2hlZXRzOgorICAgICAgICAgICAgY29t
bWFuZCArPSBbIi0tdXNlci1zdHlsZXNoZWV0Iiwgc3R5bGVzaGVldF0KKworICAgICAgICBzZWxm
LmNvbW1hbmQgPSBjb21tYW5kCisKKyAgICAgICAgc2VsZi5jb21tYW5kID0gZGVidWdfYXJncyAr
IHNlbGYuY29tbWFuZAorCisgICAgICAgIGlmIG5vdCBzZWxmLmRlYnVnX2luZm8gb3Igbm90IHNl
bGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nl
c3NIYW5kbGVyKHNlbGYuY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPVtzZWxmLm9uX291dHB1dF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCisgICAgICAgICAgICBzZWxmLnBy
b2MucnVuKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nl
c3MuUG9wZW4oc2VsZi5jb21tYW5kLCBlbnY9ZW52KQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJTZXJ2byBTdGFydGVkIikKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToK
KyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0b3BwaW5nIGJyb3dzZXIiKQorICAgICAgICBp
ZiBzZWxmLnByb2MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgc2VsZi5wcm9jLmtpbGwoKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAg
ICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4gb24gV2luZG93cyBpZiB0aGUgcHJvY2VzcyBpcyBh
bHJlYWR5IGRlYWQKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgcGlkKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnByb2MgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucHJvYy5waWQKKyAgICAgICAg
ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRl
ZiBvbl9vdXRwdXQoc2VsZiwgbGluZSk6CisgICAgICAgICIiIldyaXRlIGEgbGluZSBvZiBvdXRw
dXQgZnJvbSB0aGUgcHJvY2VzcyB0byB0aGUgbG9nIiIiCisgICAgICAgIHNlbGYubG9nZ2VyLnBy
b2Nlc3Nfb3V0cHV0KHNlbGYucGlkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihzZWxmLmNvbW1hbmQpKQorCisgICAgZGVm
IGlzX2FsaXZlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJ1bm5lcjoKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLnJ1bm5lci5pc19ydW5uaW5nKCkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgc2h1dGls
LnJtdHJlZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5ob3N0c19maWxlKSkKKworICAgIGRlZiBleGVj
dXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi53ZWJkcml2ZXJfcG9ydCBp
cyBub3QgTm9uZQorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl9o
b3N0Ijogc2VsZi53ZWJkcml2ZXJfaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfcG9ydCI6IHNlbGYud2ViZHJpdmVyX3BvcnR9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNlNzFlZGIyY2M2MmQwMGI1N2UzMWE2M2Yw
NjIzMjY0ZmFhZDBhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21l
X2FuZHJvaWQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9maXJlZm94LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFy
aS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zZXJ2by5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy93ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdkOTVkNDM1NWQ1YTExYzIwZDE3NGE1MDhkYTJiMzk3ZTI5ZGEzMzgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0wLDAgKzEsOTgg
QEAKK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9h
cmcKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1
dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2Vs
ZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpCitmcm9tIC4uZXhlY3V0b3JzLmV4
ZWN1dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvcgorZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYktpdERyaXZlclNlcnZlcgorCisKK19fd3B0cnVubmVy
X18gPSB7InByb2R1Y3QiOiAid2Via2l0IiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3Mi
OiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIldlYktpdEJyb3dz
ZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3Mi
LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVt
VGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVm
dGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAg
ICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAg
ICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJl
bnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3Mp
OgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImJpbmFyeSIpCisgICAgcmVxdWlyZV9hcmcoa3dh
cmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2Via2l0
X3BvcnQiKQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEs
ICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAg
ICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
KyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CisKKworZGVmIGNhcGFiaWxpdGllc19mb3JfcG9ydCh3ZWJraXRfcG9ydCwgYmluYXJ5LCBi
aW5hcnlfYXJncyk6CisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0IERlc2lyZWRD
YXBhYmlsaXRpZXMKKworICAgIGlmIHdlYmtpdF9wb3J0ID09ICJndGsiOgorICAgICAgICBjYXBh
YmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuV0VCS0lUR1RLLmNvcHkoKSkKKyAg
ICAgICAgY2FwYWJpbGl0aWVzWyJ3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMiXSA9IHsKKyAgICAg
ICAgICAgICJiaW5hcnkiOiBiaW5hcnksCisgICAgICAgICAgICAiYXJncyI6IGJpbmFyeV9hcmdz
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcworCisgICAgcmV0dXJuIHt9
CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToK
KyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FjaGVfbWFuYWdlciwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRl
cl9kb25lIl0gPSBUcnVlCisgICAgY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzX2Zvcl9wb3J0
KGt3YXJnc1sid2Via2l0X3BvcnQiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSkpCisgICAgZXhlY3V0b3Jf
a3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAgIHJldHVybiBleGVjdXRv
cl9rd2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisK
KworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHt9CisKKworY2xhc3MgV2ViS2l0QnJv
d3NlcihCcm93c2VyKToKKyAgICAiIiJHZW5lcmljIFdlYktpdCBicm93c2VyIGlzIGJhY2tlZCBi
eSBXZWJLaXQncyBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb24sCisgICAgd2hpY2ggaXMgc3VwcGxp
ZWQgdGhyb3VnaCBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuV2ViS2l0RHJpdmVyU2VydmVyYGAuCisg
ICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZl
cl9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Cisg
ICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFy
eSA9IGJpbmFyeQorICAgICAgICBzZWxmLnNlcnZlciA9IFdlYktpdERyaXZlclNlcnZlcihzZWxm
LmxvZ2dlciwgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYgc3RhcnQo
c2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkK
KworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIu
c3RvcChmb3JjZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLnNlcnZlci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RP
KGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAgICAgICAg
IyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lv
bgorICAgICAgICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2Fs
aXZlKCkKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisg
ICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViZDNmNDY3ZjNlZGE1ZjU2NGNhNWM1MTU0MGYyM2IyNTIxYTJhNTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBDb25m
aWdQYXJzZXIKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQg
T3JkZXJlZERpY3QKKworaGVyZSA9IG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdCisKK2NsYXNz
IENvbmZpZ0RpY3QoZGljdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2VfcGF0aCwgKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKKyAgICAg
ICAgZGljdC5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X3Bh
dGgoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICBpZiBrZXkgbm90IGluIHNlbGY6
CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICBwYXRoID0gc2VsZltrZXldCisg
ICAgICAgIG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKQorICAgICAgICByZXR1cm4gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguam9pbihzZWxmLmJhc2VfcGF0aCwgcGF0aCkpCisKK2RlZiByZWFkKGNv
bmZpZ19wYXRoKToKKyAgICBjb25maWdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChjb25maWdfcGF0
aCkKKyAgICBjb25maWdfcm9vdCA9IG9zLnBhdGguc3BsaXQoY29uZmlnX3BhdGgpWzBdCisgICAg
cGFyc2VyID0gQ29uZmlnUGFyc2VyLlNhZmVDb25maWdQYXJzZXIoKQorICAgIHN1Y2Nlc3MgPSBw
YXJzZXIucmVhZChjb25maWdfcGF0aCkKKyAgICBhc3NlcnQgY29uZmlnX3BhdGggaW4gc3VjY2Vz
cywgc3VjY2VzcworCisgICAgc3VibnMgPSB7InB3ZCI6IG9zLnBhdGguYWJzcGF0aChvcy5wYXRo
LmN1cmRpcil9CisKKyAgICBydiA9IE9yZGVyZWREaWN0KCkKKyAgICBmb3Igc2VjdGlvbiBpbiBw
YXJzZXIuc2VjdGlvbnMoKToKKyAgICAgICAgcnZbc2VjdGlvbl0gPSBDb25maWdEaWN0KGNvbmZp
Z19yb290KQorICAgICAgICBmb3Iga2V5IGluIHBhcnNlci5vcHRpb25zKHNlY3Rpb24pOgorICAg
ICAgICAgICAgcnZbc2VjdGlvbl1ba2V5XSA9IHBhcnNlci5nZXQoc2VjdGlvbiwga2V5LCBGYWxz
ZSwgc3VibnMpCisKKyAgICByZXR1cm4gcnYKKworZGVmIHBhdGgoYXJndj1Ob25lKToKKyAgICBp
ZiBhcmd2IGlzIE5vbmU6CisgICAgICAgIGFyZ3YgPSBbXQorICAgIHBhdGggPSBOb25lCisKKyAg
ICBmb3IgaSwgYXJnIGluIGVudW1lcmF0ZShhcmd2KToKKyAgICAgICAgaWYgYXJnID09ICItLWNv
bmZpZyI6CisgICAgICAgICAgICBpZiBpICsgMSA8IGxlbihhcmd2KToKKyAgICAgICAgICAgICAg
ICBwYXRoID0gYXJndltpICsgMV0KKyAgICAgICAgZWxpZiBhcmcuc3RhcnRzd2l0aCgiLS1jb25m
aWc9Iik6CisgICAgICAgICAgICBwYXRoID0gYXJnLnNwbGl0KCI9IiwgMSlbMV0KKyAgICAgICAg
aWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICBpZiBwYXRoIGlz
IE5vbmU6CisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKCJ3cHRydW5uZXIuaW5pIik6CisgICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKCJ3cHRydW5uZXIuaW5pIikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwgIndwdHJ1
bm5lci5kZWZhdWx0LmluaSIpCisKKyAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKHBhdGgpCisK
K2RlZiBsb2FkKCk6CisgICAgcmV0dXJuIHJlYWQocGF0aChzeXMuYXJndikpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjUzOTE5OTc4YjhiNjdiNzNhYzRhZDc0ZjFkZmZkMDExNjA2NzExOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQpAQCAtMCwwICsx
LDI1NyBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IG11bHRpcHJvY2Vzc2luZwor
aW1wb3J0IHNpZ25hbAoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN5cworaW1wb3J0IHRpbWUKKwor
ZnJvbSBtb3psb2cgaW1wb3J0IGdldF9kZWZhdWx0X2xvZ2dlciwgaGFuZGxlcnMsIHByb3h5CisK
K2Zyb20gd3B0bG9nZ2luZyBpbXBvcnQgTG9nTGV2ZWxSZXdyaXRlcgorZnJvbSB3cHRzZXJ2ZS5o
YW5kbGVycyBpbXBvcnQgU3RyaW5nSGFuZGxlcgorCitoZXJlID0gb3MucGF0aC5zcGxpdChfX2Zp
bGVfXylbMF0KK3JlcG9fcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwg
b3MucGFyZGlyLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCisKK3NlcnZlID0gTm9uZQorc3NsdXRp
bHMgPSBOb25lCisKKworZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhsb2dnZXIsIHRlc3RfcGF0aHMp
OgorICAgIGdsb2JhbCBzZXJ2ZSwgc3NsdXRpbHMKKworICAgIHNlcnZlX3Jvb3QgPSBzZXJ2ZV9w
YXRoKHRlc3RfcGF0aHMpCisgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHNlcnZlX3Jvb3QpCisKKyAg
ICBmYWlsZWQgPSBbXQorCisgICAgdHJ5OgorICAgICAgICBmcm9tIHRvb2xzLnNlcnZlIGltcG9y
dCBzZXJ2ZQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgZmFpbGVkLmFwcGVuZCgi
c2VydmUiKQorCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgc3NsdXRpbHMKKyAgICBleGNlcHQg
SW1wb3J0RXJyb3I6CisgICAgICAgIGZhaWxlZC5hcHBlbmQoInNzbHV0aWxzIikKKworICAgIGlm
IGZhaWxlZDoKKyAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKAorICAgICAgICAgICAgIkZhaWxlZCB0
byBpbXBvcnQgJXMuIEVuc3VyZSB0aGF0IHRlc3RzIHBhdGggJXMgY29udGFpbnMgd2ViLXBsYXRm
b3JtLXRlc3RzIiAlCisgICAgICAgICAgICAoIiwgIi5qb2luKGZhaWxlZCksIHNlcnZlX3Jvb3Qp
KQorICAgICAgICBzeXMuZXhpdCgxKQorCisKK2RlZiBzZXJ2ZV9wYXRoKHRlc3RfcGF0aHMpOgor
ICAgIHJldHVybiB0ZXN0X3BhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQorCisKK2RlZiBnZXRfc3Ns
X2t3YXJncygqKmt3YXJncyk6CisgICAgaWYga3dhcmdzWyJzc2xfdHlwZSJdID09ICJvcGVuc3Ns
IjoKKyAgICAgICAgYXJncyA9IHsib3BlbnNzbF9iaW5hcnkiOiBrd2FyZ3NbIm9wZW5zc2xfYmlu
YXJ5Il19CisgICAgZWxpZiBrd2FyZ3NbInNzbF90eXBlIl0gPT0gInByZWdlbmVyYXRlZCI6Cisg
ICAgICAgIGFyZ3MgPSB7Imhvc3Rfa2V5X3BhdGgiOiBrd2FyZ3NbImhvc3Rfa2V5X3BhdGgiXSwK
KyAgICAgICAgICAgICAgICAiaG9zdF9jZXJ0X3BhdGgiOiBrd2FyZ3NbImhvc3RfY2VydF9wYXRo
Il0sCisgICAgICAgICAgICAgICAgImNhX2NlcnRfcGF0aCI6IGt3YXJnc1siY2FfY2VydF9wYXRo
Il19CisgICAgZWxzZToKKyAgICAgICAgYXJncyA9IHt9CisgICAgcmV0dXJuIGFyZ3MKKworCitk
ZWYgc3NsX2Vudihsb2dnZXIsICoqa3dhcmdzKToKKyAgICBzc2xfZW52X2NscyA9IHNzbHV0aWxz
LmVudmlyb25tZW50c1trd2FyZ3NbInNzbF90eXBlIl1dCisgICAgcmV0dXJuIHNzbF9lbnZfY2xz
KGxvZ2dlciwgKipnZXRfc3NsX2t3YXJncygqKmt3YXJncykpCisKKworY2xhc3MgVGVzdEVudmly
b25tZW50RXJyb3IoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgVGVzdEVudmlyb25t
ZW50KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIHNzbF9lbnYs
IHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIGVudl9leHRyYXMpOgorICAg
ICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0ZXN0IGVudmlyb25tZW50IGku
ZS4gdGhlIGh0dHAgYW5kCisgICAgICAgIHdlYnNvY2tldHMgc2VydmVycyIiIgorICAgICAgICBz
ZWxmLnRlc3RfcGF0aHMgPSB0ZXN0X3BhdGhzCisgICAgICAgIHNlbGYuc3NsX2VudiA9IHNzbF9l
bnYKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCisgICAgICAgIHNlbGYuY29uZmlnID0gTm9u
ZQorICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9hZnRlcl90ZXN0CisgICAg
ICAgIHNlbGYudGVzdF9zZXJ2ZXJfcG9ydCA9IG9wdGlvbnMucG9wKCJ0ZXN0X3NlcnZlcl9wb3J0
IiwgVHJ1ZSkKKyAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbworICAgICAgICBz
ZWxmLm9wdGlvbnMgPSBvcHRpb25zIGlmIG9wdGlvbnMgaXMgbm90IE5vbmUgZWxzZSB7fQorCisg
ICAgICAgIHNlbGYuY2FjaGVfbWFuYWdlciA9IG11bHRpcHJvY2Vzc2luZy5NYW5hZ2VyKCkKKyAg
ICAgICAgc2VsZi5zdGFzaCA9IHNlcnZlLnN0YXNoLlN0YXNoU2VydmVyKCkKKyAgICAgICAgc2Vs
Zi5lbnZfZXh0cmFzID0gZW52X2V4dHJhcworICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0g
Tm9uZQorCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBzZWxmLnN0YXNoLl9f
ZW50ZXJfXygpCisgICAgICAgIHNlbGYuc3NsX2Vudi5fX2VudGVyX18oKQorICAgICAgICBzZWxm
LmNhY2hlX21hbmFnZXIuX19lbnRlcl9fKCkKKworICAgICAgICBzZWxmLmNvbmZpZyA9IHNlbGYu
bG9hZF9jb25maWcoKQorICAgICAgICBzZWxmLnNldHVwX3NlcnZlcl9sb2dnaW5nKCkKKyAgICAg
ICAgcG9ydHMgPSBzZXJ2ZS5nZXRfcG9ydHMoc2VsZi5jb25maWcsIHNlbGYuc3NsX2VudikKKyAg
ICAgICAgc2VsZi5jb25maWcgPSBzZXJ2ZS5ub3JtYWxpc2VfY29uZmlnKHNlbGYuY29uZmlnLCBw
b3J0cykKKworICAgICAgICBhc3NlcnQgc2VsZi5lbnZfZXh0cmFzX2NtcyBpcyBOb25lLCAoCisg
ICAgICAgICAgICAiQSBUZXN0RW52aXJvbm1lbnQgb2JqZWN0IGNhbm5vdCBiZSBuZXN0ZWQiKQor
CisgICAgICAgIHNlbGYuZW52X2V4dHJhc19jbXMgPSBbXQorCisgICAgICAgIGZvciBlbnYgaW4g
c2VsZi5lbnZfZXh0cmFzOgorICAgICAgICAgICAgY20gPSBlbnYoc2VsZi5vcHRpb25zLCBzZWxm
LmNvbmZpZykKKyAgICAgICAgICAgIGNtLl9fZW50ZXJfXygpCisgICAgICAgICAgICBzZWxmLmVu
dl9leHRyYXNfY21zLmFwcGVuZChjbSkKKworICAgICAgICBzZWxmLnNlcnZlcnMgPSBzZXJ2ZS5z
dGFydChzZWxmLmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zc2xfZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9y
b3V0ZXMoKSkKKyAgICAgICAgaWYgc2VsZi5vcHRpb25zLmdldCgic3VwcG9ydHNfZGVidWdnZXIi
KSBhbmQgc2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6Cisg
ICAgICAgICAgICBzZWxmLmlnbm9yZV9pbnRlcnJ1cHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYK
KworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKKyAg
ICAgICAgc2VsZi5wcm9jZXNzX2ludGVycnVwdHMoKQorCisgICAgICAgIGZvciBzY2hlbWUsIHNl
cnZlcnMgaW4gc2VsZi5zZXJ2ZXJzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgZm9yIHBvcnQs
IHNlcnZlciBpbiBzZXJ2ZXJzOgorICAgICAgICAgICAgICAgIHNlcnZlci5raWxsKCkKKyAgICAg
ICAgZm9yIGNtIGluIHNlbGYuZW52X2V4dHJhc19jbXM6CisgICAgICAgICAgICBjbS5fX2V4aXRf
XyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorCisgICAgICAgIHNlbGYuZW52X2V4dHJhc19j
bXMgPSBOb25lCisKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyLl9fZXhpdF9fKGV4Y190eXBl
LCBleGNfdmFsLCBleGNfdGIpCisgICAgICAgIHNlbGYuc3NsX2Vudi5fX2V4aXRfXyhleGNfdHlw
ZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxmLnN0YXNoLl9fZXhpdF9fKCkKKworICAg
IGRlZiBpZ25vcmVfaW50ZXJydXB0cyhzZWxmKToKKyAgICAgICAgc2lnbmFsLnNpZ25hbChzaWdu
YWwuU0lHSU5ULCBzaWduYWwuU0lHX0lHTikKKworICAgIGRlZiBwcm9jZXNzX2ludGVycnVwdHMo
c2VsZik6CisgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0lOVCwgc2lnbmFsLlNJR19E
RkwpCisKKyAgICBkZWYgbG9hZF9jb25maWcoc2VsZik6CisgICAgICAgIGRlZmF1bHRfY29uZmln
X3BhdGggPSBvcy5wYXRoLmpvaW4oc2VydmVfcGF0aChzZWxmLnRlc3RfcGF0aHMpLCAiY29uZmln
LmRlZmF1bHQuanNvbiIpCisgICAgICAgIGxvY2FsX2NvbmZpZyA9IHsKKyAgICAgICAgICAgICJw
b3J0cyI6IHsKKyAgICAgICAgICAgICAgICAiaHR0cCI6IFs4MDAwLCA4MDAxXSwKKyAgICAgICAg
ICAgICAgICAiaHR0cHMiOiBbODQ0M10sCisgICAgICAgICAgICAgICAgIndzIjogWzg4ODhdCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgImNoZWNrX3N1YmRvbWFpbnMiOiBGYWxzZSwKKyAg
ICAgICAgICAgICJzc2wiOiB7fQorICAgICAgICB9CisKKyAgICAgICAgaWYgImJyb3dzZXJfaG9z
dCIgaW4gc2VsZi5vcHRpb25zOgorICAgICAgICAgICAgbG9jYWxfY29uZmlnWyJicm93c2VyX2hv
c3QiXSA9IHNlbGYub3B0aW9uc1siYnJvd3Nlcl9ob3N0Il0KKworICAgICAgICBpZiAiYmluZF9h
ZGRyZXNzIiBpbiBzZWxmLm9wdGlvbnM6CisgICAgICAgICAgICBsb2NhbF9jb25maWdbImJpbmRf
YWRkcmVzcyJdID0gc2VsZi5vcHRpb25zWyJiaW5kX2FkZHJlc3MiXQorCisgICAgICAgIHdpdGgg
b3BlbihkZWZhdWx0X2NvbmZpZ19wYXRoKSBhcyBmOgorICAgICAgICAgICAgZGVmYXVsdF9jb25m
aWcgPSBqc29uLmxvYWQoZikKKworICAgICAgICBsb2NhbF9jb25maWdbInNlcnZlcl9ob3N0Il0g
PSBzZWxmLm9wdGlvbnMuZ2V0KCJzZXJ2ZXJfaG9zdCIsIE5vbmUpCisgICAgICAgIGxvY2FsX2Nv
bmZpZ1sic3NsIl1bImVuY3J5cHRfYWZ0ZXJfY29ubmVjdCJdID0gc2VsZi5vcHRpb25zLmdldCgi
ZW5jcnlwdF9hZnRlcl9jb25uZWN0IiwgRmFsc2UpCisKKyAgICAgICAgY29uZmlnID0gc2VydmUu
bWVyZ2VfanNvbihkZWZhdWx0X2NvbmZpZywgbG9jYWxfY29uZmlnKQorICAgICAgICBjb25maWdb
ImRvY19yb290Il0gPSBzZXJ2ZV9wYXRoKHNlbGYudGVzdF9wYXRocykKKworICAgICAgICBpZiBu
b3Qgc2VsZi5zc2xfZW52LnNzbF9lbmFibGVkOgorICAgICAgICAgICAgY29uZmlnWyJwb3J0cyJd
WyJodHRwcyJdID0gW05vbmVdCisKKyAgICAgICAgaG9zdCA9IGNvbmZpZ1siYnJvd3Nlcl9ob3N0
Il0KKyAgICAgICAgaG9zdHMgPSBbaG9zdF0KKyAgICAgICAgaG9zdHMuZXh0ZW5kKCIlcy4lcyIg
JSAoaXRlbVswXSwgaG9zdCkgZm9yIGl0ZW0gaW4gc2VydmUuZ2V0X3N1YmRvbWFpbnMoaG9zdCku
dmFsdWVzKCkpCisgICAgICAgIGtleV9maWxlLCBjZXJ0aWZpY2F0ZSA9IHNlbGYuc3NsX2Vudi5o
b3N0X2NlcnRfcGF0aChob3N0cykKKworICAgICAgICBjb25maWdbImtleV9maWxlIl0gPSBrZXlf
ZmlsZQorICAgICAgICBjb25maWdbImNlcnRpZmljYXRlIl0gPSBjZXJ0aWZpY2F0ZQorCisgICAg
ICAgIHNlcnZlLnNldF9jb21wdXRlZF9kZWZhdWx0cyhjb25maWcpCisKKyAgICAgICAgcmV0dXJu
IGNvbmZpZworCisgICAgZGVmIHNldHVwX3NlcnZlcl9sb2dnaW5nKHNlbGYpOgorICAgICAgICBz
ZXJ2ZXJfbG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKGNvbXBvbmVudD0id3B0c2VydmUiKQor
ICAgICAgICBhc3NlcnQgc2VydmVyX2xvZ2dlciBpcyBub3QgTm9uZQorICAgICAgICBsb2dfZmls
dGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIobGFtYmRhIHg6eCwgImluZm8iKQorICAgICAg
ICAjIERvd25ncmFkZSBlcnJvcnMgdG8gd2FybmluZ3MgZm9yIHRoZSBzZXJ2ZXIKKyAgICAgICAg
bG9nX2ZpbHRlciA9IExvZ0xldmVsUmV3cml0ZXIobG9nX2ZpbHRlciwgWyJlcnJvciJdLCAid2Fy
bmluZyIpCisgICAgICAgIHNlcnZlcl9sb2dnZXIuY29tcG9uZW50X2ZpbHRlciA9IGxvZ19maWx0
ZXIKKworICAgICAgICBzZXJ2ZXJfbG9nZ2VyID0gcHJveHkuUXVldWVkUHJveHlMb2dnZXIoc2Vy
dmVyX2xvZ2dlcikKKworICAgICAgICB0cnk6CisgICAgICAgICAgICAjU2V0IGFzIHRoZSBkZWZh
dWx0IGxvZ2dlciBmb3Igd3B0c2VydmUKKyAgICAgICAgICAgIHNlcnZlLnNldF9sb2dnZXIoc2Vy
dmVyX2xvZ2dlcikKKyAgICAgICAgICAgIHNlcnZlLmxvZ2dlciA9IHNlcnZlcl9sb2dnZXIKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICMgVGhpcyBoYXBwZW5zIGlmIGxv
Z2dpbmcgaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAgZm9yIHdwdHNlcnZlCisgICAgICAgICAgICBw
YXNzCisKKyAgICBkZWYgZ2V0X3JvdXRlcyhzZWxmKToKKyAgICAgICAgcm91dGVfYnVpbGRlciA9
IHNlcnZlLlJvdXRlc0J1aWxkZXIoKQorCisgICAgICAgIGZvciBwYXRoLCBmb3JtYXRfYXJncywg
Y29udGVudF90eXBlLCByb3V0ZSBpbiBbCisgICAgICAgICAgICAgICAgKCJ0ZXN0aGFybmVzc19y
dW5uZXIuaHRtbCIsIHt9LCAidGV4dC9odG1sIiwgIi90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCIp
LAorICAgICAgICAgICAgICAgIChzZWxmLm9wdGlvbnMuZ2V0KCJ0ZXN0aGFybmVzc3JlcG9ydCIs
ICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyIpLAorICAgICAgICAgICAgICAgICB7Im91dHB1dCI6IHNl
bGYucGF1c2VfYWZ0ZXJfdGVzdH0sICJ0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGY4IiwKKyAg
ICAgICAgICAgICAgICAgIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiKV06CisgICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgcGF0aCkp
CisgICAgICAgICAgICAjIE5vdGUgdGhhdCAuaGVhZGVycy4gZmlsZXMgZG9uJ3QgYXBwbHkgdG8g
c3RhdGljIHJvdXRlcywgc28gd2UgbmVlZCB0bworICAgICAgICAgICAgIyByZWFkZCBhbnkgc3Rh
dGljIGhlYWRlcnMgaGVyZS4KKyAgICAgICAgICAgIGhlYWRlcnMgPSB7IkNhY2hlLUNvbnRyb2wi
OiAibWF4LWFnZT0zNjAwIn0KKyAgICAgICAgICAgIHJvdXRlX2J1aWxkZXIuYWRkX3N0YXRpYyhw
YXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlLCByb3V0ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPWhlYWRlcnMpCisKKyAgICAgICAgZGF0YSA9IGIi
IgorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHJlcG9fcm9vdCwgInJlc291cmNlcyIs
ICJ0ZXN0ZHJpdmVyLmpzIiksICJyYiIpIGFzIGZwOgorICAgICAgICAgICAgZGF0YSArPSBmcC5y
ZWFkKCkKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGRyaXZlci1l
eHRyYS5qcyIpLCAicmIiKSBhcyBmcDoKKyAgICAgICAgICAgIGRhdGEgKz0gZnAucmVhZCgpCisg
ICAgICAgIHJvdXRlX2J1aWxkZXIuYWRkX2hhbmRsZXIoYiJHRVQiLCBiIi9yZXNvdXJjZXMvdGVz
dGRyaXZlci5qcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nSGFu
ZGxlcihkYXRhLCAidGV4dC9qYXZhc2NyaXB0IikpCisKKyAgICAgICAgZm9yIHVybF9iYXNlLCBw
YXRocyBpbiBzZWxmLnRlc3RfcGF0aHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBpZiB1cmxf
YmFzZSA9PSAiLyI6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHJvdXRl
X2J1aWxkZXIuYWRkX21vdW50X3BvaW50KHVybF9iYXNlLCBwYXRoc1sidGVzdHNfcGF0aCJdKQor
CisgICAgICAgIGlmICIvIiBub3QgaW4gc2VsZi50ZXN0X3BhdGhzOgorICAgICAgICAgICAgZGVs
IHJvdXRlX2J1aWxkZXIubW91bnRwb2ludF9yb3V0ZXNbIi8iXQorCisgICAgICAgIHJldHVybiBy
b3V0ZV9idWlsZGVyLmdldF9yb3V0ZXMoKQorCisgICAgZGVmIGVuc3VyZV9zdGFydGVkKHNlbGYp
OgorICAgICAgICAjIFBhdXNlIGZvciBhIHdoaWxlIHRvIGVuc3VyZSB0aGF0IHRoZSBzZXJ2ZXIg
aGFzIGEgY2hhbmNlIHRvIHN0YXJ0CisgICAgICAgIGZvciBfIGluIHhyYW5nZSgyMCk6CisgICAg
ICAgICAgICBmYWlsZWQgPSBzZWxmLnRlc3Rfc2VydmVycygpCisgICAgICAgICAgICBpZiBub3Qg
ZmFpbGVkOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgdGltZS5zbGVlcCgw
LjUpCisgICAgICAgIHJhaXNlIEVudmlyb25tZW50RXJyb3IoIlNlcnZlcnMgZmFpbGVkIHRvIHN0
YXJ0OiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIuam9pbigiJXM6
JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBmYWlsZWQpKQorCisgICAgZGVmIHRlc3Rfc2VydmVycyhz
ZWxmKToKKyAgICAgICAgZmFpbGVkID0gW10KKyAgICAgICAgaG9zdCA9IHNlbGYuY29uZmlnWyJz
ZXJ2ZXJfaG9zdCJdCisgICAgICAgIGZvciBzY2hlbWUsIHNlcnZlcnMgaW4gc2VsZi5zZXJ2ZXJz
Lml0ZXJpdGVtcygpOgorICAgICAgICAgICAgZm9yIHBvcnQsIHNlcnZlciBpbiBzZXJ2ZXJzOgor
ICAgICAgICAgICAgICAgIGlmIHNlbGYudGVzdF9zZXJ2ZXJfcG9ydDoKKyAgICAgICAgICAgICAg
ICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgICAgICAgICBzLmNvbm5lY3QoKGhvc3QsIHBvcnQpKQorICAgICAgICAgICAg
ICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgZmFp
bGVkLmFwcGVuZCgoaG9zdCwgcG9ydCkpCisgICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzLmNsb3NlKCkKKworICAgICAgICAgICAgICAgIGlmIG5v
dCBzZXJ2ZXIuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkLmFwcGVuZCgo
c2NoZW1lLCBwb3J0KSkKKyAgICAgICAgcmV0dXJuIGZhaWxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19p
bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3NjFiODM4MzA5NGRjMmM4MzA3NWE5M2Q5MjRhYTRkNDY2
ZDBmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18u
cHkKQEAgLTAsMCArMSw0IEBACitmcm9tIGJhc2UgaW1wb3J0IChleGVjdXRvcl9rd2FyZ3MsCisg
ICAgICAgICAgICAgICAgICB0ZXN0aGFybmVzc19yZXN1bHRfY29udmVydGVyLAorICAgICAgICAg
ICAgICAgICAgcmVmdGVzdF9yZXN1bHRfY29udmVydGVyLAorICAgICAgICAgICAgICAgICAgVGVz
dEV4ZWN1dG9yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwODkwM2Y1ZGNkOGYz
NzYwNzFiOTYzYTBkYWU0ZTIxZWVlODI0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2Jhc2UucHkKQEAgLTAsMCArMSw1NDUgQEAKK2ltcG9ydCBoYXNobGliCitp
bXBvcnQgaHR0cGxpYgoraW1wb3J0IG9zCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdHJhY2Vi
YWNrCitpbXBvcnQgc29ja2V0CitpbXBvcnQgdXJscGFyc2UKK2Zyb20gYWJjIGltcG9ydCBBQkNN
ZXRhLCBhYnN0cmFjdG1ldGhvZAorCitmcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAorZnJv
bSBwcm90b2NvbCBpbXBvcnQgUHJvdG9jb2wKKworaGVyZSA9IG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdCisKKyMgRXh0cmEgdGltZW91dCB0byB1c2UgYWZ0ZXIgaW50ZXJuYWwgdGVzdCB0aW1l
b3V0IGF0IHdoaWNoIHRoZSBoYXJuZXNzCisjIHNob3VsZCBmb3JjZSBhIHRpbWVvdXQKK2V4dHJh
X3RpbWVvdXQgPSA1ICAjIHNlY29uZHMKKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgKiprd2FyZ3MpOgorICAgIHRpbWVvdXRf
bXVsdGlwbGllciA9IGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KKyAgICBpZiB0aW1lb3V0
X211bHRpcGxpZXIgaXMgTm9uZToKKyAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyID0gMQorCisg
ICAgZXhlY3V0b3Jfa3dhcmdzID0geyJzZXJ2ZXJfY29uZmlnIjogc2VydmVyX2NvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IHRpbWVvdXRfbXVsdGlw
bGllciwKKyAgICAgICAgICAgICAgICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVn
X2luZm8iXX0KKworICAgIGlmIHRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CisgICAgICAgIGV4ZWN1
dG9yX2t3YXJnc1sic2NyZWVuc2hvdF9jYWNoZSJdID0gY2FjaGVfbWFuYWdlci5kaWN0KCkKKwor
ICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJi
aW5hcnkiXSA9IGt3YXJncy5nZXQoImJpbmFyeSIpCisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
d2ViZHJpdmVyX2JpbmFyeSJdID0ga3dhcmdzLmdldCgid2ViZHJpdmVyX2JpbmFyeSIpCisgICAg
ICAgIGV4ZWN1dG9yX2t3YXJnc1sid2ViZHJpdmVyX2FyZ3MiXSA9IGt3YXJncy5nZXQoIndlYmRy
aXZlcl9hcmdzIikKKworICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgc3RyaXBf
c2VydmVyKHVybCk6CisgICAgIiIiUmVtb3ZlIHRoZSBzY2hlbWUgYW5kIG5ldGxvYyBmcm9tIGEg
dXJsLCBsZWF2aW5nIG9ubHkgdGhlIHBhdGggYW5kIGFueSBxdWVyeQorICAgIG9yIGZyYWdtZW50
LgorCisgICAgdXJsIC0gdGhlIHVybCB0byBzdHJpcAorCisgICAgZS5nLiBodHRwOi8vZXhhbXBs
ZS5vcmc6ODAwMC90ZXN0cz9pZD0xIzIgYmVjb21lcyAvdGVzdHM/aWQ9MSMyIiIiCisKKyAgICB1
cmxfcGFydHMgPSBsaXN0KHVybHBhcnNlLnVybHNwbGl0KHVybCkpCisgICAgdXJsX3BhcnRzWzBd
ID0gIiIKKyAgICB1cmxfcGFydHNbMV0gPSAiIgorICAgIHJldHVybiB1cmxwYXJzZS51cmx1bnNw
bGl0KHVybF9wYXJ0cykKKworCitjbGFzcyBUZXN0aGFybmVzc1Jlc3VsdENvbnZlcnRlcihvYmpl
Y3QpOgorICAgIGhhcm5lc3NfY29kZXMgPSB7MDogIk9LIiwKKyAgICAgICAgICAgICAgICAgICAg
IDE6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAyOiAiVElNRU9VVCJ9CisKKyAgICB0
ZXN0X2NvZGVzID0gezA6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgIDE6ICJGQUlMIiwKKyAg
ICAgICAgICAgICAgICAgIDI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgIDM6ICJOT1RS
VU4ifQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgICAgICIi
IkNvbnZlcnQgYSBKU09OIHJlc3VsdCBpbnRvIGEgKFRlc3RSZXN1bHQsIFtTdWJ0ZXN0UmVzdWx0
XSkgdHVwbGUiIiIKKyAgICAgICAgcmVzdWx0X3VybCwgc3RhdHVzLCBtZXNzYWdlLCBzdGFjaywg
c3VidGVzdF9yZXN1bHRzID0gcmVzdWx0CisgICAgICAgIGFzc2VydCByZXN1bHRfdXJsID09IHRl
c3QudXJsLCAoIkdvdCByZXN1bHRzIGZyb20gJXMsIGV4cGVjdGVkICVzIiAlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfdXJsLCB0ZXN0LnVybCkpCisgICAg
ICAgIGhhcm5lc3NfcmVzdWx0ID0gdGVzdC5yZXN1bHRfY2xzKHNlbGYuaGFybmVzc19jb2Rlc1tz
dGF0dXNdLCBtZXNzYWdlKQorICAgICAgICByZXR1cm4gKGhhcm5lc3NfcmVzdWx0LAorICAgICAg
ICAgICAgICAgIFt0ZXN0LnN1YnRlc3RfcmVzdWx0X2NscyhzdF9uYW1lLCBzZWxmLnRlc3RfY29k
ZXNbc3Rfc3RhdHVzXSwgc3RfbWVzc2FnZSwgc3Rfc3RhY2spCisgICAgICAgICAgICAgICAgIGZv
ciBzdF9uYW1lLCBzdF9zdGF0dXMsIHN0X21lc3NhZ2UsIHN0X3N0YWNrIGluIHN1YnRlc3RfcmVz
dWx0c10pCisKKwordGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciA9IFRlc3RoYXJuZXNzUmVz
dWx0Q29udmVydGVyKCkKKworCitkZWYgcmVmdGVzdF9yZXN1bHRfY29udmVydGVyKHNlbGYsIHRl
c3QsIHJlc3VsdCk6CisgICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9jbHMocmVzdWx0WyJzdGF0dXMi
XSwgcmVzdWx0WyJtZXNzYWdlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE9
cmVzdWx0LmdldCgiZXh0cmEiKSksIFtdKQorCisKK2RlZiBweXRlc3RfcmVzdWx0X2NvbnZlcnRl
cihzZWxmLCB0ZXN0LCBkYXRhKToKKyAgICBoYXJuZXNzX2RhdGEsIHN1YnRlc3RfZGF0YSA9IGRh
dGEKKworICAgIGlmIHN1YnRlc3RfZGF0YSBpcyBOb25lOgorICAgICAgICBzdWJ0ZXN0X2RhdGEg
PSBbXQorCisgICAgaGFybmVzc19yZXN1bHQgPSB0ZXN0LnJlc3VsdF9jbHMoKmhhcm5lc3NfZGF0
YSkKKyAgICBzdWJ0ZXN0X3Jlc3VsdHMgPSBbdGVzdC5zdWJ0ZXN0X3Jlc3VsdF9jbHMoKml0ZW0p
IGZvciBpdGVtIGluIHN1YnRlc3RfZGF0YV0KKworICAgIHJldHVybiAoaGFybmVzc19yZXN1bHQs
IHN1YnRlc3RfcmVzdWx0cykKKworCitjbGFzcyBFeGVjdXRvckV4Y2VwdGlvbihFeGNlcHRpb24p
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMsIG1lc3NhZ2UpOgorICAgICAgICBzZWxm
LnN0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKworY2xh
c3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6CisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKwor
ICAgIHRlc3RfdHlwZSA9IE5vbmUKKyAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKKyAgICBzdXBw
b3J0c190ZXN0ZHJpdmVyID0gRmFsc2UKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2Vy
LCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKKyAgICAgICAgICAgICAgICAg
ZGVidWdfaW5mbz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkFic3RyYWN0IEJhc2UgY2xh
c3MgZm9yIG9iamVjdCB0aGF0IGFjdHVhbGx5IGV4ZWN1dGVzIHRoZSB0ZXN0cyBpbiBhCisgICAg
ICAgIHNwZWNpZmljIGJyb3dzZXIuIFR5cGljYWxseSB0aGVyZSB3aWxsIGJlIGEgZGlmZmVyZW50
IFRlc3RFeGVjdXRvcgorICAgICAgICBzdWJjbGFzcyBmb3IgZWFjaCB0ZXN0IHR5cGUgYW5kIG1l
dGhvZCBvZiBleGVjdXRpbmcgdGVzdHMuCisKKyAgICAgICAgOnBhcmFtIGJyb3dzZXI6IEV4ZWN1
dG9yQnJvd3NlciBpbnN0YW5jZSBwcm92aWRpbmcgcHJvcGVydGllcyBvZiB0aGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyb3dzZXIgdGhhdCB3aWxsIGJlIHRlc3RlZC4KKyAgICAgICAgOnBh
cmFtIHNlcnZlcl9jb25maWc6IERpY3Rpb25hcnkgb2Ygd3B0c2VydmUgc2VydmVyIGNvbmZpZ3Vy
YXRpb24gb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtIHN0b3JlZCBp
biBUZXN0RW52aXJvbm1lbnQuY29uZmlnCisgICAgICAgIDpwYXJhbSB0aW1lb3V0X211bHRpcGxp
ZXI6IE11bHRpcGxpZXIgcmVsYXRpdmUgdG8gYmFzZSB0aW1lb3V0IHRvIHVzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHNldHRpbmcgdGVzdCB0aW1lb3V0LgorICAg
ICAgICAiIiIKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBOb25lCisgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IGJyb3dzZXIKKyAgICAgICAgc2VsZi5zZXJ2ZXJfY29uZmlnID0gc2VydmVyX2NvbmZpZwor
ICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9IHRpbWVvdXRfbXVsdGlwbGllcgorICAg
ICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCisgICAgICAgIHNlbGYubGFzdF9lbnZp
cm9ubWVudCA9IHsicHJvdG9jb2wiOiAiaHR0cCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicHJlZnMiOiB7fX0KKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IE5vbmUgICMgVGhp
cyBtdXN0IGJlIHNldCBpbiBzdWJjbGFzc2VzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9n
Z2VyKHNlbGYpOgorICAgICAgICAiIiJTdHJ1Y3R1cmVkTG9nZ2VyIGZvciB0aGlzIGV4ZWN1dG9y
IiIiCisgICAgICAgIGlmIHNlbGYucnVubmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYucnVubmVyLmxvZ2dlcgorCisgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5lcik6Cisg
ICAgICAgICIiIlJ1biBzdGVwcyBuZWVkZWQgYmVmb3JlIHRlc3RzIGNhbiBiZSBzdGFydGVkIGUu
Zy4gY29ubmVjdGluZyB0bworICAgICAgICBicm93c2VyIGluc3RhbmNlCisKKyAgICAgICAgOnBh
cmFtIHJ1bm5lcjogVGVzdFJ1bm5lciBpbnN0YW5jZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biB0aGUg
dGVzdHMiIiIKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBydW5uZXIKKyAgICAgICAgaWYgc2VsZi5w
cm90b2NvbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2V0dXAocnVu
bmVyKQorCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICAiIiJSdW4gY2xlYW51cCBz
dGVwcyBhZnRlciB0ZXN0cyBoYXZlIGZpbmlzaGVkIiIiCisgICAgICAgIGlmIHNlbGYucHJvdG9j
b2wgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlYXJkb3duKCkKKwor
ICAgIGRlZiBydW5fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgIiIiUnVuIGEgcGFydGljdWxh
ciB0ZXN0LgorCisgICAgICAgIDpwYXJhbSB0ZXN0OiBUaGUgdGVzdCB0byBydW4iIiIKKyAgICAg
ICAgaWYgdGVzdC5lbnZpcm9ubWVudCAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnQ6CisgICAgICAg
ICAgICBzZWxmLm9uX2Vudmlyb25tZW50X2NoYW5nZSh0ZXN0LmVudmlyb25tZW50KQorCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZG9fdGVzdCh0ZXN0KQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlc3Vs
dF9mcm9tX2V4Y2VwdGlvbih0ZXN0LCBlKQorCisgICAgICAgIGlmIHJlc3VsdCBpcyBTdG9wOgor
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgICAgICMgbG9nIHJlc3VsdCBvZiBwYXJl
bnQgdGVzdAorICAgICAgICBpZiByZXN1bHRbMF0uc3RhdHVzID09ICJFUlJPUiI6CisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhyZXN1bHRbMF0ubWVzc2FnZSkKKworICAgICAgICBzZWxm
Lmxhc3RfZW52aXJvbm1lbnQgPSB0ZXN0LmVudmlyb25tZW50CisKKyAgICAgICAgc2VsZi5ydW5u
ZXIuc2VuZF9tZXNzYWdlKCJ0ZXN0X2VuZGVkIiwgdGVzdCwgcmVzdWx0KQorCisgICAgZGVmIHNl
cnZlcl91cmwoc2VsZiwgcHJvdG9jb2wpOgorICAgICAgICByZXR1cm4gIiVzOi8vJXM6JXMiICUg
KHByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nv
bmZpZ1siYnJvd3Nlcl9ob3N0Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zZXJ2ZXJfY29uZmlnWyJwb3J0cyJdW3Byb3RvY29sXVswXSkKKworICAgIGRlZiB0ZXN0X3Vy
bChzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpvaW4oc2VsZi5zZXJ2
ZXJfdXJsKHRlc3QuZW52aXJvbm1lbnRbInByb3RvY29sIl0pLCB0ZXN0LnVybCkKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgorICAgICAgICAiIiJU
ZXN0LXR5cGUgYW5kIHByb3RvY29sIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIHJ1bm5pbmcg
YQorICAgICAgICBzcGVjaWZpYyB0ZXN0LgorCisgICAgICAgIDpwYXJhbSB0ZXN0OiBUaGUgdGVz
dCB0byBydW4uIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFu
Z2Uoc2VsZiwgbmV3X2Vudmlyb25tZW50KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHJlc3Vs
dF9mcm9tX2V4Y2VwdGlvbihzZWxmLCB0ZXN0LCBlKToKKyAgICAgICAgaWYgaGFzYXR0cihlLCAi
c3RhdHVzIikgYW5kIGUuc3RhdHVzIGluIHRlc3QucmVzdWx0X2Nscy5zdGF0dXNlczoKKyAgICAg
ICAgICAgIHN0YXR1cyA9IGUuc3RhdHVzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGF0
dXMgPSAiRVJST1IiCisgICAgICAgIG1lc3NhZ2UgPSB1bmljb2RlKGdldGF0dHIoZSwgIm1lc3Nh
Z2UiLCAiIikpCisgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICBtZXNzYWdlICs9ICJc
biIKKyAgICAgICAgbWVzc2FnZSArPSB0cmFjZWJhY2suZm9ybWF0X2V4YyhlKQorICAgICAgICBy
ZXR1cm4gdGVzdC5yZXN1bHRfY2xzKHN0YXR1cywgbWVzc2FnZSksIFtdCisKKyAgICBkZWYgd2Fp
dChzZWxmKToKKyAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLndhaXQoKQorCisKK2NsYXNzIFRl
c3RoYXJuZXNzRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKKyAgICBjb252ZXJ0X3Jlc3VsdCA9IHRl
c3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0ZXIKKworCitjbGFzcyBSZWZUZXN0RXhlY3V0b3IoVGVz
dEV4ZWN1dG9yKToKKyAgICBjb252ZXJ0X3Jlc3VsdCA9IHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRl
cgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVv
dXRfbXVsdGlwbGllcj0xLCBzY3JlZW5zaG90X2NhY2hlPU5vbmUsCisgICAgICAgICAgICAgICAg
IGRlYnVnX2luZm89Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0
X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisKKyAgICAgICAgc2Vs
Zi5zY3JlZW5zaG90X2NhY2hlID0gc2NyZWVuc2hvdF9jYWNoZQorCisKK2NsYXNzIFJlZlRlc3RJ
bXBsZW1lbnRhdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvcik6
CisgICAgICAgIHNlbGYudGltZW91dF9tdWx0aXBsaWVyID0gZXhlY3V0b3IudGltZW91dF9tdWx0
aXBsaWVyCisgICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgorICAgICAgICAjIENhY2hl
IG9mIHVybDooc2NyZWVuc2hvdCBoYXNoLCBzY3JlZW5zaG90KS4gVHlwaWNhbGx5IHRoZQorICAg
ICAgICAjIHNjcmVlbnNob3QgaXMgTm9uZSwgYnV0IHdlIHNldCB0aGlzIHZhbHVlIGlmIGEgdGVz
dCBmYWlscworICAgICAgICAjIGFuZCB0aGUgc2NyZWVuc2hvdCB3YXMgdGFrZW4gZnJvbSB0aGUg
Y2FjaGUgc28gdGhhdCB3ZSBtYXkKKyAgICAgICAgIyByZXRyaWV2ZSB0aGUgc2NyZWVuc2hvdCBm
cm9tIHRoZSBjYWNoZSBkaXJlY3RseSBpbiB0aGUgZnV0dXJlCisgICAgICAgIHNlbGYuc2NyZWVu
c2hvdF9jYWNoZSA9IHNlbGYuZXhlY3V0b3Iuc2NyZWVuc2hvdF9jYWNoZQorICAgICAgICBzZWxm
Lm1lc3NhZ2UgPSBOb25lCisKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHBhc3MKKwor
ICAgIGRlZiB0ZWFyZG93bihzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGxvZ2dlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0b3IubG9nZ2Vy
CisKKyAgICBkZWYgZ2V0X2hhc2goc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKKyAg
ICAgICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyCisg
ICAgICAgIGtleSA9ICh0ZXN0LnVybCwgdmlld3BvcnRfc2l6ZSwgZHBpKQorCisgICAgICAgIGlm
IGtleSBub3QgaW4gc2VsZi5zY3JlZW5zaG90X2NhY2hlOgorICAgICAgICAgICAgc3VjY2Vzcywg
ZGF0YSA9IHNlbGYuZXhlY3V0b3Iuc2NyZWVuc2hvdCh0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkp
CisKKyAgICAgICAgICAgIGlmIG5vdCBzdWNjZXNzOgorICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZSwgZGF0YQorCisgICAgICAgICAgICBzY3JlZW5zaG90ID0gZGF0YQorICAgICAgICAgICAg
aGFzaF92YWx1ZSA9IGhhc2hsaWIuc2hhMShzY3JlZW5zaG90KS5oZXhkaWdlc3QoKQorCisgICAg
ICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGVba2V5XSA9IChoYXNoX3ZhbHVlLCBOb25lKQor
CisgICAgICAgICAgICBydiA9IChoYXNoX3ZhbHVlLCBzY3JlZW5zaG90KQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcnYgPSBzZWxmLnNjcmVlbnNob3RfY2FjaGVba2V5XQorCisgICAgICAg
IHNlbGYubWVzc2FnZS5hcHBlbmQoIiVzICVzIiAlICh0ZXN0LnVybCwgcnZbMF0pKQorICAgICAg
ICByZXR1cm4gVHJ1ZSwgcnYKKworICAgIGRlZiBpc19wYXNzKHNlbGYsIGxoc19oYXNoLCByaHNf
aGFzaCwgcmVsYXRpb24pOgorICAgICAgICBhc3NlcnQgcmVsYXRpb24gaW4gKCI9PSIsICIhPSIp
CisgICAgICAgIHNlbGYubWVzc2FnZS5hcHBlbmQoIlRlc3RpbmcgJXMgJXMgJXMiICUgKGxoc19o
YXNoLCByZWxhdGlvbiwgcmhzX2hhc2gpKQorICAgICAgICByZXR1cm4gKChyZWxhdGlvbiA9PSAi
PT0iIGFuZCBsaHNfaGFzaCA9PSByaHNfaGFzaCkgb3IKKyAgICAgICAgICAgICAgICAocmVsYXRp
b24gPT0gIiE9IiBhbmQgbGhzX2hhc2ggIT0gcmhzX2hhc2gpKQorCisgICAgZGVmIHJ1bl90ZXN0
KHNlbGYsIHRlc3QpOgorICAgICAgICB2aWV3cG9ydF9zaXplID0gdGVzdC52aWV3cG9ydF9zaXpl
CisgICAgICAgIGRwaSA9IHRlc3QuZHBpCisgICAgICAgIHNlbGYubWVzc2FnZSA9IFtdCisKKyAg
ICAgICAgIyBEZXB0aC1maXJzdCBzZWFyY2ggb2YgcmVmZXJlbmNlIHRyZWUsIHdpdGggdGhlIGdv
YWwKKyAgICAgICAgIyBvZiByZWFjaGluZ3MgYSBsZWFmIG5vZGUgd2l0aCBvbmx5IHBhc3MgcmVz
dWx0cworCisgICAgICAgIHN0YWNrID0gbGlzdCgoKHRlc3QsIGl0ZW1bMF0pLCBpdGVtWzFdKSBm
b3IgaXRlbSBpbiByZXZlcnNlZCh0ZXN0LnJlZmVyZW5jZXMpKQorICAgICAgICB3aGlsZSBzdGFj
azoKKyAgICAgICAgICAgIGhhc2hlcyA9IFtOb25lLCBOb25lXQorICAgICAgICAgICAgc2NyZWVu
c2hvdHMgPSBbTm9uZSwgTm9uZV0KKworICAgICAgICAgICAgbm9kZXMsIHJlbGF0aW9uID0gc3Rh
Y2sucG9wKCkKKworICAgICAgICAgICAgZm9yIGksIG5vZGUgaW4gZW51bWVyYXRlKG5vZGVzKToK
KyAgICAgICAgICAgICAgICBzdWNjZXNzLCBkYXRhID0gc2VsZi5nZXRfaGFzaChub2RlLCB2aWV3
cG9ydF9zaXplLCBkcGkpCisgICAgICAgICAgICAgICAgaWYgc3VjY2VzcyBpcyBGYWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjogZGF0YVswXSwgIm1lc3NhZ2UiOiBk
YXRhWzFdfQorCisgICAgICAgICAgICAgICAgaGFzaGVzW2ldLCBzY3JlZW5zaG90c1tpXSA9IGRh
dGEKKworICAgICAgICAgICAgaWYgc2VsZi5pc19wYXNzKGhhc2hlc1swXSwgaGFzaGVzWzFdLCBy
ZWxhdGlvbik6CisgICAgICAgICAgICAgICAgaWYgbm9kZXNbMV0ucmVmZXJlbmNlczoKKyAgICAg
ICAgICAgICAgICAgICAgc3RhY2suZXh0ZW5kKGxpc3QoKChub2Rlc1sxXSwgaXRlbVswXSksIGl0
ZW1bMV0pIGZvciBpdGVtIGluIHJldmVyc2VkKG5vZGVzWzFdLnJlZmVyZW5jZXMpKSkKKyAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIFdlIHBhc3NlZAorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4geyJzdGF0dXMiOiJQQVNTIiwgIm1lc3NhZ2UiOiBOb25lfQor
CisgICAgICAgICMgV2UgZmFpbGVkLCBzbyBjb25zdHJ1Y3QgYSBmYWlsdXJlIG1lc3NhZ2UKKwor
ICAgICAgICBmb3IgaSwgKG5vZGUsIHNjcmVlbnNob3QpIGluIGVudW1lcmF0ZSh6aXAobm9kZXMs
IHNjcmVlbnNob3RzKSk6CisgICAgICAgICAgICBpZiBzY3JlZW5zaG90IGlzIE5vbmU6CisgICAg
ICAgICAgICAgICAgc3VjY2Vzcywgc2NyZWVuc2hvdCA9IHNlbGYucmV0YWtlX3NjcmVlbnNob3Qo
bm9kZSwgdmlld3BvcnRfc2l6ZSwgZHBpKQorICAgICAgICAgICAgICAgIGlmIHN1Y2Nlc3M6Cisg
ICAgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RzW2ldID0gc2NyZWVuc2hvdAorCisgICAgICAg
IGxvZ19kYXRhID0gW3sidXJsIjogbm9kZXNbMF0udXJsLCAic2NyZWVuc2hvdCI6IHNjcmVlbnNo
b3RzWzBdfSwgcmVsYXRpb24sCisgICAgICAgICAgICAgICAgICAgIHsidXJsIjogbm9kZXNbMV0u
dXJsLCAic2NyZWVuc2hvdCI6IHNjcmVlbnNob3RzWzFdfV0KKworICAgICAgICByZXR1cm4geyJz
dGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiXG4iLmpvaW4oc2Vs
Zi5tZXNzYWdlKSwKKyAgICAgICAgICAgICAgICAiZXh0cmEiOiB7InJlZnRlc3Rfc2NyZWVuc2hv
dHMiOiBsb2dfZGF0YX19CisKKyAgICBkZWYgcmV0YWtlX3NjcmVlbnNob3Qoc2VsZiwgbm9kZSwg
dmlld3BvcnRfc2l6ZSwgZHBpKToKKyAgICAgICAgc3VjY2VzcywgZGF0YSA9IHNlbGYuZXhlY3V0
b3Iuc2NyZWVuc2hvdChub2RlLCB2aWV3cG9ydF9zaXplLCBkcGkpCisgICAgICAgIGlmIG5vdCBz
dWNjZXNzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBkYXRhCisKKyAgICAgICAga2V5ID0g
KG5vZGUudXJsLCB2aWV3cG9ydF9zaXplLCBkcGkpCisgICAgICAgIGhhc2hfdmFsLCBfID0gc2Vs
Zi5zY3JlZW5zaG90X2NhY2hlW2tleV0KKyAgICAgICAgc2VsZi5zY3JlZW5zaG90X2NhY2hlW2tl
eV0gPSBoYXNoX3ZhbCwgZGF0YQorICAgICAgICByZXR1cm4gVHJ1ZSwgZGF0YQorCisKK2NsYXNz
IFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CisgICAgY29udmVydF9yZXN1bHQgPSBweXRl
c3RfcmVzdWx0X2NvbnZlcnRlcgorICAgIHByb3RvY29sX2NscyA9IE5vbmUKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAor
ICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNh
cGFiaWxpdGllcz1Ob25lLAorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dh
cmdzKToKKyAgICAgICAgc2VsZi5kb19kZWxheWVkX2ltcG9ydHMoKQorICAgICAgICBUZXN0RXhl
Y3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisg
ICAgICAgIHNlbGYud2ViZHJpdmVyX2JpbmFyeSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAg
c2VsZi53ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCisgICAgICAgIHNlbGYudGltZW91
dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCisgICAgICAgIHNlbGYuY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3RvY29s
X2NscyhzZWxmLCBicm93c2VyKQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZQorCisgICAgZGVmIG9uX2Vudmlyb25tZW50X2No
YW5nZShzZWxmLCBuZXdfZW52aXJvbm1lbnQpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZG9f
dGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYu
dGltZW91dF9tdWx0aXBsaWVyICsgZXh0cmFfdGltZW91dAorCisgICAgICAgIHN1Y2Nlc3MsIGRh
dGEgPSBXZHNwZWNSdW4oc2VsZi5kb193ZHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uX2NvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0LmFic19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVvdXQpLnJ1bigpCisKKyAgICAgICAgaWYgc3VjY2VzczoKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCisKKyAgICAgICAgcmV0
dXJuICh0ZXN0LnJlc3VsdF9jbHMoKmRhdGEpLCBbXSkKKworICAgIGRlZiBkb193ZHNwZWMoc2Vs
Ziwgc2Vzc2lvbl9jb25maWcsIHBhdGgsIHRpbWVvdXQpOgorICAgICAgICByZXR1cm4gcHl0ZXN0
cnVubmVyLnJ1bihwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQpCisK
KyAgICBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKHNlbGYpOgorICAgICAgICBnbG9iYWwgcHl0ZXN0
cnVubmVyCisgICAgICAgIGZyb20gLiBpbXBvcnQgcHl0ZXN0cnVubmVyCisKKworY2xhc3MgV2Rz
cGVjUnVuKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsIHNlc3Npb24sIHBh
dGgsIHRpbWVvdXQpOgorICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCisgICAgICAgIHNlbGYucmVz
dWx0ID0gKE5vbmUsIE5vbmUpCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAg
ICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAg
ICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgZGVmIHJ1bihz
ZWxmKToKKyAgICAgICAgIiIiUnVucyBmdW5jdGlvbiBpbiBhIHRocmVhZCBhbmQgaW50ZXJydXB0
cyBpdCBpZiBpdCBleGNlZWRzIHRoZQorICAgICAgICBnaXZlbiB0aW1lb3V0LiAgUmV0dXJucyAo
VHJ1ZSwgKFJlc3VsdCwgW1N1YnRlc3RSZXN1bHQgLi4uXSkpIGluCisgICAgICAgIGNhc2Ugb2Yg
c3VjY2Vzcywgb3IgKEZhbHNlLCAoc3RhdHVzLCBleHRyYSBpbmZvcm1hdGlvbikpIGluIHRoZQor
ICAgICAgICBldmVudCBvZiBmYWlsdXJlLgorICAgICAgICAiIiIKKworICAgICAgICBleGVjdXRv
ciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYuX3J1bikKKyAgICAgICAgZXhlY3V0b3Iu
c3RhcnQoKQorCisgICAgICAgIGZsYWcgPSBzZWxmLnJlc3VsdF9mbGFnLndhaXQoc2VsZi50aW1l
b3V0KQorICAgICAgICBpZiBzZWxmLnJlc3VsdFsxXSBpcyBOb25lOgorICAgICAgICAgICAgc2Vs
Zi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKKworICAgICAgICBy
ZXR1cm4gc2VsZi5yZXN1bHQKKworICAgIGRlZiBfcnVuKHNlbGYpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUsIHNlbGYuZnVuYyhzZWxmLnNlc3Npb24sIHNl
bGYucGF0aCwgc2VsZi50aW1lb3V0KQorICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJ
T0Vycm9yKToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25l
KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtZXNzYWdlID0g
Z2V0YXR0cihlLCAibWVzc2FnZSIpCisgICAgICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gIlxuIgorICAgICAgICAgICAgbWVzc2FnZSArPSB0cmFjZWJhY2su
Zm9ybWF0X2V4YyhlKQorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFUlJPUiIs
IG1lc3NhZ2UpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnJlc3VsdF9mbGFn
LnNldCgpCisKKworY2xhc3MgQ29ubmVjdGlvbmxlc3NQcm90b2NvbChQcm90b2NvbCk6CisgICAg
ZGVmIGNvbm5lY3Qoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhZnRlcl9jb25uZWN0
KHNlbGYpOgorICAgICAgICBwYXNzCisKKworY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9j
b2wpOgorICAgIHNlcnZlcl9jbHMgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhl
Y3V0b3IsIGJyb3dzZXIpOgorICAgICAgICBQcm90b2NvbC5fX2luaXRfXyhzZWxmLCBleGVjdXRv
ciwgYnJvd3NlcikKKyAgICAgICAgc2VsZi53ZWJkcml2ZXJfYmluYXJ5ID0gZXhlY3V0b3Iud2Vi
ZHJpdmVyX2JpbmFyeQorICAgICAgICBzZWxmLndlYmRyaXZlcl9hcmdzID0gZXhlY3V0b3Iud2Vi
ZHJpdmVyX2FyZ3MKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBzZWxmLmV4ZWN1dG9yLmNh
cGFiaWxpdGllcworICAgICAgICBzZWxmLnNlc3Npb25fY29uZmlnID0gTm9uZQorICAgICAgICBz
ZWxmLnNlcnZlciA9IE5vbmUKKworICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICAiIiJD
b25uZWN0IHRvIGJyb3dzZXIgdmlhIHRoZSBIVFRQIHNlcnZlci4iIiIKKyAgICAgICAgc2VsZi5z
ZXJ2ZXIgPSBzZWxmLnNlcnZlcl9jbHMoCisgICAgICAgICAgICBzZWxmLmxvZ2dlciwKKyAgICAg
ICAgICAgIGJpbmFyeT1zZWxmLndlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICBhcmdzPXNl
bGYud2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNl
KQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKAorICAgICAgICAgICAgIldlYkRyaXZlciBIVFRQ
IHNlcnZlciBsaXN0ZW5pbmcgYXQgJXMiICUgc2VsZi5zZXJ2ZXIudXJsKQorICAgICAgICBzZWxm
LnNlc3Npb25fY29uZmlnID0geyJob3N0Ijogc2VsZi5zZXJ2ZXIuaG9zdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicG9ydCI6IHNlbGYuc2VydmVyLnBvcnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHNlbGYuY2FwYWJpbGl0aWVzfQor
CisgICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0
ZWFyZG93bihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXIgaXMgbm90IE5vbmUgYW5kIHNl
bGYuc2VydmVyLmlzX2FsaXZlOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhh
dCB0aGUgY29ubmVjdGlvbiBpcyBzdGlsbCBhbGl2ZS4KKworICAgICAgICBCZWNhdXNlIHRoZSBy
ZW1vdGUgY29tbXVuaWNhdGlvbiBoYXBwZW5zIG92ZXIgSFRUUCB3ZSBuZWVkIHRvCisgICAgICAg
IG1ha2UgYW4gZXhwbGljaXQgcmVxdWVzdCB0byB0aGUgcmVtb3RlLiAgSXQgaXMgYWxsb3dlZCBm
b3IKKyAgICAgICAgV2ViRHJpdmVyIHNwZWMgdGVzdHMgdG8gbm90IGhhdmUgYSBXZWJEcml2ZXIg
c2Vzc2lvbiwgc2luY2UgdGhpcworICAgICAgICBtYXkgYmUgd2hhdCBpcyB0ZXN0ZWQuCisKKyAg
ICAgICAgQW4gSFRUUCByZXF1ZXN0IHRvIGFuIGludmFsaWQgcGF0aCB0aGF0IHJlc3VsdHMgaW4g
YSA0MDQgaXMKKyAgICAgICAgcHJvb2YgZW5vdWdoIHRvIHVzIHRoYXQgdGhlIHNlcnZlciBpcyBh
bGl2ZSBhbmQga2lja2luZy4KKyAgICAgICAgIiIiCisgICAgICAgIGNvbm4gPSBodHRwbGliLkhU
VFBDb25uZWN0aW9uKHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCisgICAgICAg
IGNvbm4ucmVxdWVzdCgiSEVBRCIsIHNlbGYuc2VydmVyLmJhc2VfcGF0aCArICJpbnZhbGlkIikK
KyAgICAgICAgcmVzID0gY29ubi5nZXRyZXNwb25zZSgpCisgICAgICAgIHJldHVybiByZXMuc3Rh
dHVzID09IDQwNAorCisKK2NsYXNzIENhbGxiYWNrSGFuZGxlcihvYmplY3QpOgorICAgICIiIkhh
bmRsZSBjYWxsYmFja3MgZnJvbSB0ZXN0ZHJpdmVyLXVzaW5nIHRlc3RzLgorCisgICAgVGhlIGRl
ZmF1bHQgaW1wbGVtZW50YXRpb24gaGVyZSBtYWtlcyBzZW5zZSBmb3IgdGhpbmdzIHRoYXQgYXJl
IHJvdWdobHkgbGlrZQorICAgIFdlYkRyaXZlci4gVGhpbmdzIHRoYXQgYXJlIG1vcmUgZGlmZmVy
ZW50IHRvIFdlYkRyaXZlciBtYXkgbmVlZCB0byBjcmVhdGUgYQorICAgIGZ1bGx5IGN1c3RvbSBp
bXBsZW1lbnRhdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3Rv
Y29sLCB0ZXN0X3dpbmRvdyk6CisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorICAg
ICAgICBzZWxmLnRlc3Rfd2luZG93ID0gdGVzdF93aW5kb3cKKyAgICAgICAgc2VsZi5sb2dnZXIg
PSBsb2dnZXIKKyAgICAgICAgc2VsZi5jYWxsYmFja3MgPSB7CisgICAgICAgICAgICAiYWN0aW9u
Ijogc2VsZi5wcm9jZXNzX2FjdGlvbiwKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IHNlbGYucHJv
Y2Vzc19jb21wbGV0ZQorICAgICAgICB9CisKKyAgICAgICAgc2VsZi5hY3Rpb25zID0geworICAg
ICAgICAgICAgImNsaWNrIjogQ2xpY2tBY3Rpb24oc2VsZi5sb2dnZXIsIHNlbGYucHJvdG9jb2wp
CisgICAgICAgIH0KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXN1bHQpOgorICAgICAgICB1
cmwsIGNvbW1hbmQsIHBheWxvYWQgPSByZXN1bHQKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IkdvdCBhc3luYyBjYWxsYmFjazogJXMiICUgcmVzdWx0WzFdKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBjYWxsYmFjayA9IHNlbGYuY2FsbGJhY2tzW2NvbW1hbmRdCisgICAgICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gY2FsbGJh
Y2sgdHlwZSAlciIgJSByZXN1bHRbMV0pCisgICAgICAgIHJldHVybiBjYWxsYmFjayh1cmwsIHBh
eWxvYWQpCisKKyAgICBkZWYgcHJvY2Vzc19jb21wbGV0ZShzZWxmLCB1cmwsIHBheWxvYWQpOgor
ICAgICAgICBydiA9IFt1cmxdICsgcGF5bG9hZAorICAgICAgICByZXR1cm4gVHJ1ZSwgcnYKKwor
ICAgIGRlZiBwcm9jZXNzX2FjdGlvbihzZWxmLCB1cmwsIHBheWxvYWQpOgorICAgICAgICBwYXJl
bnQgPSBzZWxmLnByb3RvY29sLmJhc2UuY3VycmVudF93aW5kb3cKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3coc2VsZi50ZXN0X3dpbmRvdykK
KyAgICAgICAgICAgIGFjdGlvbiA9IHBheWxvYWRbImFjdGlvbiJdCisgICAgICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiR290IGFjdGlvbjogJXMiICUgYWN0aW9uKQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIGFjdGlvbl9oYW5kbGVyID0gc2VsZi5hY3Rpb25zW2FjdGlvbl0K
KyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJVbmtub3duIGFjdGlvbiAlcyIgJSBhY3Rpb24pCisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgYWN0aW9uX2hhbmRsZXIocGF5bG9hZCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJB
Y3Rpb24gJXMgZmFpbGVkIiAlIGFjdGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICAgICAgc2VsZi5fc2Vu
ZF9tZXNzYWdlKCJjb21wbGV0ZSIsICJmYWlsdXJlIikKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkFjdGlvbiAlcyBjb21wbGV0ZWQiICUgYWN0
aW9uKQorICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfbWVzc2FnZSgiY29tcGxldGUiLCAic3Vj
Y2VzcyIpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uu
c2V0X3dpbmRvdyhwYXJlbnQpCisKKyAgICAgICAgcmV0dXJuIEZhbHNlLCBOb25lCisKKyAgICBk
ZWYgX3NlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlX3R5cGUsIHN0YXR1cywgbWVzc2FnZT1Ob25l
KToKKyAgICAgICAgc2VsZi5wcm90b2NvbC50ZXN0ZHJpdmVyLnNlbmRfbWVzc2FnZShtZXNzYWdl
X3R5cGUsIHN0YXR1cywgbWVzc2FnZT1tZXNzYWdlKQorCisKK2NsYXNzIENsaWNrQWN0aW9uKG9i
amVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgorICAgICAg
ICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wK
KworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgc2VsZWN0b3IgPSBw
YXlsb2FkWyJzZWxlY3RvciJdCisgICAgICAgIGVsZW1lbnRzID0gc2VsZi5wcm90b2NvbC5zZWxl
Y3QuZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZWN0b3IpCisgICAgICAgIGlmIGxlbihlbGVtZW50
cykgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVjdG9yIG1hdGNoZXMg
bm8gZWxlbWVudHMiKQorICAgICAgICBlbGlmIGxlbihlbGVtZW50cykgPiAxOgorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiU2VsZWN0b3IgbWF0Y2hlcyBtdWx0aXBsZSBlbGVtZW50cyIp
CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDbGlja2luZyBlbGVtZW50OiAlcyIgJSBzZWxl
Y3RvcikKKyAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVsZW1lbnRzWzBdKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwNDAw
ZGUxMWNlNGMzN2FmNGJjYTRkZTkxMmIyYTBhZWNjNjdkZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKQEAgLTAsMCArMSwxMCBAQAor
ZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgorZnJvbSAu
YmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdlYkRyaXZlclByb3RvY29sCisKKworY2xhc3Mg
Q2hyb21lRHJpdmVyUHJvdG9jb2woV2ViRHJpdmVyUHJvdG9jb2wpOgorICAgIHNlcnZlcl9jbHMg
PSBDaHJvbWVEcml2ZXJTZXJ2ZXIKKworCitjbGFzcyBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRv
cihXZHNwZWNFeGVjdXRvcik6CisgICAgcHJvdG9jb2xfY2xzID0gQ2hyb21lRHJpdmVyUHJvdG9j
b2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ2NTUz
ZmFkY2IxNmRiMTc3ZTUyMmEwZTYwYzgyZThjNTViY2EwMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zy
b20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlRHJpdmVyU2VydmVyCitmcm9tIC5iYXNl
IGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2ViRHJpdmVyUHJvdG9jb2wKKworCitjbGFzcyBFZGdl
RHJpdmVyUHJvdG9jb2woV2ViRHJpdmVyUHJvdG9jb2wpOgorICAgIHNlcnZlcl9jbHMgPSBFZGdl
RHJpdmVyU2VydmVyCisKKworY2xhc3MgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBFZGdlRHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmludGVybmV0ZXhwbG9yZXIucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODk4ZmYxNDQ1OTM4NzdjM2JlMzNhMzNiZTU2NzgxNmU4NjlkY2YzZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVy
LnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBJbnRl
cm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRv
ciwgV2ViRHJpdmVyUHJvdG9jb2wKKworCitjbGFzcyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyUHJv
dG9jb2woV2ViRHJpdmVyUHJvdG9jb2wpOgorICAgIHNlcnZlcl9jbHMgPSBJbnRlcm5ldEV4cGxv
cmVyRHJpdmVyU2VydmVyCisKKworY2xhc3MgSW50ZXJuZXRFeHBsb3JlckRyaXZlcldkc3BlY0V4
ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBJbnRlcm5ldEV4cGxv
cmVyRHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JtYXJpb25ldHRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlv
bmV0dGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0OWFiMjU3MmM4MDYyMGM3NWZlNTI1Y2FlMjU4ODdlMWNi
Y2M1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jt
YXJpb25ldHRlLnB5CkBAIC0wLDAgKzEsNjk4IEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCitp
bXBvcnQgc29ja2V0CitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQg
dXJscGFyc2UKK2ltcG9ydCB1dWlkCisKK2Vycm9ycyA9IE5vbmUKK21hcmlvbmV0dGUgPSBOb25l
CitweXRlc3RydW5uZXIgPSBOb25lCisKK2hlcmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxp
dChfX2ZpbGVfXylbMF0pCisKK2Zyb20gLmJhc2UgaW1wb3J0IChDYWxsYmFja0hhbmRsZXIsCisg
ICAgICAgICAgICAgICAgICAgRXhlY3V0b3JFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAg
UmVmVGVzdEV4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgIFJlZlRlc3RJbXBsZW1lbnRhdGlv
biwKKyAgICAgICAgICAgICAgICAgICBUZXN0RXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAg
VGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICBXZHNwZWNFeGVjdXRvciwK
KyAgICAgICAgICAgICAgICAgICBXZHNwZWNSdW4sCisgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgZXh0cmFfdGltZW91dCwKKyAgICAgICAg
ICAgICAgICAgICB0ZXN0aGFybmVzc19yZXN1bHRfY29udmVydGVyLAorICAgICAgICAgICAgICAg
ICAgIHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICBzdHJpcF9z
ZXJ2ZXIpCitmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJhc2VQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICBQcmVmc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9j
b2wsCisgICAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2VQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAg
ICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZl
clByb3RvY29sUGFydCkKK2Zyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCitmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgR2Vja29Ecml2ZXJTZXJ2ZXIKKworCitkZWYgZG9fZGVsYXll
ZF9pbXBvcnRzKCk6CisgICAgZ2xvYmFsIGVycm9ycywgbWFyaW9uZXR0ZQorCisgICAgIyBNYXJp
b25ldHRlIGNsaWVudCB1c2VkIHRvIGJlIGNhbGxlZCBtYXJpb25ldHRlLCByZWNlbnRseSBpdCBj
aGFuZ2VkCisgICAgIyB0byBtYXJpb25ldHRlX2RyaXZlciBmb3IgdW5mYXRob21hYmxlIHJlYXNv
bnMKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCBtYXJpb25ldHRlCisgICAgICAgIGZyb20gbWFy
aW9uZXR0ZSBpbXBvcnQgZXJyb3JzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBm
cm9tIG1hcmlvbmV0dGVfZHJpdmVyIGltcG9ydCBtYXJpb25ldHRlLCBlcnJvcnMKKworCitjbGFz
cyBNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgcGFyZW50KToKKyAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZUJhc2VQcm90
b2NvbFBhcnQsIHNlbGYpLl9faW5pdF9fKHBhcmVudCkKKyAgICAgICAgc2VsZi50aW1lb3V0ID0g
Tm9uZQorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBz
ZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2Ny
aXB0LCBhc3luYz1GYWxzZSk6CisgICAgICAgIG1ldGhvZCA9IHNlbGYubWFyaW9uZXR0ZS5leGVj
dXRlX2FzeW5jX3NjcmlwdCBpZiBhc3luYyBlbHNlIHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX3Nj
cmlwdAorICAgICAgICByZXR1cm4gbWV0aG9kKHNjcmlwdCwgbmV3X3NhbmRib3g9RmFsc2UpCisK
KyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6CisgICAgICAgICIiIlNldCB0aGUg
TWFyaW9uZXR0ZSBzY3JpcHQgdGltZW91dC4KKworICAgICAgICA6cGFyYW0gdGltZW91dDogU2Ny
aXB0IHRpbWVvdXQgaW4gc2Vjb25kcworCisgICAgICAgICIiIgorICAgICAgICBpZiB0aW1lb3V0
ICE9IHNlbGYudGltZW91dDoKKyAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS50aW1lb3V0LnNj
cmlwdCA9IHRpbWVvdXQKKyAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3dpbmRvdyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYubWFyaW9uZXR0ZS5jdXJyZW50X3dpbmRvd19oYW5kbGUKKworICAgIGRlZiBzZXRfd2lu
ZG93KHNlbGYsIGhhbmRsZSk6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5zd2l0Y2hfdG9fd2lu
ZG93KGhhbmRsZSkKKworICAgIGRlZiB3YWl0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBzb2NrZXRfdGltZW91dCA9IHNlbGYubWFyaW9uZXR0ZS5jbGllbnQuc29ja2V0X3RpbWVv
dXQKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIyBUaGlzIGNh
biBoYXBwZW4gaWYgdGhlcmUgd2FzIGEgY3Jhc2gKKyAgICAgICAgICAgIHJldHVybgorICAgICAg
ICBpZiBzb2NrZXRfdGltZW91dDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUudGltZW91dC5zY3JpcHQgPSBzb2NrZXRfdGltZW91dCAvIDIKKyAgICAg
ICAgICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3NlZCIpCisgICAgICAgICAgICAgICAgcmV0dXJu
CisKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQoIiIpCisgICAgICAgICAgICBl
eGNlcHQgZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAjIFRo
ZSB3aW5kb3cgY2xvc2VkCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2Vw
dCBlcnJvcnMuU2NyaXB0VGltZW91dEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiU2NyaXB0IHRpbWVkIG91dCIpCisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CisgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoIlNvY2tldCBjbG9zZWQiKQorICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAg
c2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkKKyAgICAgICAgICAg
ICAgICBicmVhaworCisKK2NsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydChU
ZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6
CisgICAgICAgIHN1cGVyKE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwgc2VsZiku
X19pbml0X18ocGFyZW50KQorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBOb25lCisKKyAg
ICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50
Lm1hcmlvbmV0dGUKKworICAgIGRlZiBsb2FkX3J1bm5lcihzZWxmLCB1cmxfcHJvdG9jb2wpOgor
ICAgICAgICAjIENoZWNrIGlmIHdlIHByZXZpb3VzbHkgaGFkIGEgdGVzdCB3aW5kb3cgb3Blbiwg
YW5kIGlmIHdlIGRpZCBtYWtlIHN1cmUgaXQncyBjbG9zZWQKKyAgICAgICAgc2VsZi5tYXJpb25l
dHRlLmV4ZWN1dGVfc2NyaXB0KCJpZiAod2luZG93Lndpbikge3dpbmRvdy53aW4uY2xvc2UoKX0i
KQorICAgICAgICB1cmwgPSB1cmxwYXJzZS51cmxqb2luKHNlbGYucGFyZW50LmV4ZWN1dG9yLnNl
cnZlcl91cmwodXJsX3Byb3RvY29sKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
L3Rlc3RoYXJuZXNzX3J1bm5lci5odG1sIikKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkxv
YWRpbmcgJXMiICUgdXJsKQorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxmLm1hcmlv
bmV0dGUuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYuZGlzbWlzc19hbGVydChsYW1iZGE6IHNlbGYubWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5j
cml0aWNhbCgKKyAgICAgICAgICAgICAgICAiTG9hZGluZyBpbml0aWFsIHBhZ2UgJXMgZmFpbGVk
LiBFbnN1cmUgdGhhdCB0aGUgIgorICAgICAgICAgICAgICAgICJ0aGVyZSBhcmUgbm8gb3RoZXIg
cHJvZ3JhbXMgYm91bmQgdG8gdGhpcyBwb3J0IGFuZCAiCisgICAgICAgICAgICAgICAgInRoYXQg
eW91ciBmaXJld2FsbCBydWxlcyBvciBuZXR3b3JrIHNldHVwIGRvZXMgbm90ICIKKyAgICAgICAg
ICAgICAgICAicHJldmVudCBhY2Nlc3MuXGUlcyIgJSAodXJsLCB0cmFjZWJhY2suZm9ybWF0X2V4
YyhlKSkpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0
ZV9zY3JpcHQoCisgICAgICAgICAgICAiZG9jdW1lbnQudGl0bGUgPSAnJXMnIiAlIHRocmVhZGlu
Zy5jdXJyZW50X3RocmVhZCgpLm5hbWUucmVwbGFjZSgiJyIsICciJykpCisKKyAgICBkZWYgY2xv
c2Vfb2xkX3dpbmRvd3Moc2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAgICAgaGFuZGxlcyA9IHNl
bGYubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcworICAgICAgICBydW5uZXJfaGFuZGxlID0gTm9u
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kbGVzLnJlbW92ZShzZWxmLnJ1bm5lcl9o
YW5kbGUpCisgICAgICAgICAgICBydW5uZXJfaGFuZGxlID0gc2VsZi5ydW5uZXJfaGFuZGxlCisg
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgIyBUaGUgcnVubmVyIHdpbmRv
dyBwcm9iYWJseSBjaGFuZ2VkIGlkIGJ1dCB3ZSBjYW4gcmVzdG9yZSBpdAorICAgICAgICAgICAg
IyBUaGlzIGlzbid0IHN1cHBvc2VkIHRvIGhhcHBlbiwgYnV0IG1hcmlvbmV0dGUgaWRzIGFyZSBu
b3QgeWV0IHN0YWJsZQorICAgICAgICAgICAgIyBXZSBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgaGFu
ZGxlIHJldHVybmVkIGNvcnJlc3BvbmRzIHRvIHRoZSBydW5uZXIsCisgICAgICAgICAgICAjIGJ1
dCBpdCBob3BlZnVsbHkgZG9lc24ndCBtYXR0ZXIgdG9vIG11Y2ggaWYgdGhhdCBhc3N1bXB0aW9u
IGlzCisgICAgICAgICAgICAjIHdyb25nIHNpbmNlIHdlIHJlbG9hZCB0aGUgcnVubmVyIGluIHRo
YXQgdGFiIGFueXdheS4KKyAgICAgICAgICAgIHJ1bm5lcl9oYW5kbGUgPSBoYW5kbGVzLnBvcCgw
KQorCisgICAgICAgIGZvciBoYW5kbGUgaW4gaGFuZGxlczoKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBzZWxmLmRpc21pc3NfYWxlcnQobGFtYmRhOiBzZWxmLm1hcmlvbmV0dGUu
c3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpKQorICAgICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0
ZS5zd2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKKyAgICAgICAgICAgICAgICBzZWxmLm1hcmlvbmV0
dGUuY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5Ob1N1Y2hXaW5kb3dFeGNlcHRp
b246CisgICAgICAgICAgICAgICAgIyBXZSBtaWdodCBoYXZlIHJhY2VkIHdpdGggdGhlIHByZXZp
b3VzIHRlc3QgdG8gY2xvc2UgdGhpcworICAgICAgICAgICAgICAgICMgd2luZG93LCBza2lwIGl0
LgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxmLm1hcmlvbmV0dGUuc3dpdGNo
X3RvX3dpbmRvdyhydW5uZXJfaGFuZGxlKQorICAgICAgICBpZiBydW5uZXJfaGFuZGxlICE9IHNl
bGYucnVubmVyX2hhbmRsZToKKyAgICAgICAgICAgIHNlbGYubG9hZF9ydW5uZXIodXJsX3Byb3Rv
Y29sKQorICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXJfaGFuZGxlCisKKyAgICBkZWYgZGlzbWlz
c19hbGVydChzZWxmLCBmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBmKCkKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJvcnMuVW5leHBlY3Rl
ZEFsZXJ0T3BlbjoKKyAgICAgICAgICAgICAgICBhbGVydCA9IHNlbGYubWFyaW9uZXR0ZS5zd2l0
Y2hfdG9fYWxlcnQoKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
YWxlcnQuZGlzbWlzcygpCisgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5Ob0FsZXJ0UHJl
c2VudEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxm
LCB3aW5kb3dfaWQsIHBhcmVudCk6CisgICAgICAgIHRlc3Rfd2luZG93ID0gTm9uZQorICAgICAg
ICBpZiB3aW5kb3dfaWQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBUcnkg
dGhpcywgaXQncyBpbiBMZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRzIGl0IHlldAorICAgICAg
ICAgICAgICAgIHdpbl9zID0gc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4g
d2luZG93WyclcyddOyIgJSBzZWxmLndpbmRvd19pZCkKKyAgICAgICAgICAgICAgICB3aW5fb2Jq
ID0ganNvbi5sb2Fkcyh3aW5fcykKKyAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IHdpbl9v
YmpbIndpbmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQorICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgaWYgdGVzdF93
aW5kb3cgaXMgTm9uZToKKyAgICAgICAgICAgIGFmdGVyID0gc2VsZi5tYXJpb25ldHRlLndpbmRv
d19oYW5kbGVzCisgICAgICAgICAgICBpZiBsZW4oYWZ0ZXIpID09IDI6CisgICAgICAgICAgICAg
ICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAtIHNldChbcGFyZW50XSkpKQor
ICAgICAgICAgICAgZWxpZiBhZnRlclswXSA9PSBwYXJlbnQgYW5kIGxlbihhZnRlcikgPiAyOgor
ICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhlcmUgaXMgdGhlIHRlc3Qgd2lu
ZG93CisgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRlclsxXQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRl
c3Qgd2luZG93IikKKworICAgICAgICBhc3NlcnQgdGVzdF93aW5kb3cgIT0gcGFyZW50CisgICAg
ICAgIHJldHVybiB0ZXN0X3dpbmRvdworCisKK2NsYXNzIE1hcmlvbmV0dGVQcmVmc1Byb3RvY29s
UGFydChQcmVmc1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgc2V0KHNl
bGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgaWYgdmFsdWUubG93ZXIoKSBub3QgaW4gKCJ0cnVl
IiwgImZhbHNlIik6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaW50KHZhbHVl
KQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgdmFsdWUg
PSAiJyVzJyIgJSB2YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZS5sb3dlcigpCisKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiU2V0dGluZyBwcmVmICVzICgl
cykiICUgKG5hbWUsIHZhbHVlKSkKKworICAgICAgICBzY3JpcHQgPSAiIiIKKyAgICAgICAgICAg
IGxldCBwcmVmSW50ZXJmYWNlID0gQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcvcHJl
ZmVyZW5jZXMtc2VydmljZTsxIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5nZXRTZXJ2aWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lQcmVmQnJhbmNoKTsK
KyAgICAgICAgICAgIGxldCBwcmVmID0gJyVzJzsKKyAgICAgICAgICAgIGxldCB0eXBlID0gcHJl
ZkludGVyZmFjZS5nZXRQcmVmVHlwZShwcmVmKTsKKyAgICAgICAgICAgIGxldCB2YWx1ZSA9ICVz
OworICAgICAgICAgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIHByZWZJ
bnRlcmZhY2UuUFJFRl9TVFJJTkc6CisgICAgICAgICAgICAgICAgICAgIHByZWZJbnRlcmZhY2Uu
c2V0Q2hhclByZWYocHJlZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBjYXNlIHByZWZJbnRlcmZhY2UuUFJFRl9CT09MOgorICAgICAgICAgICAg
ICAgICAgICBwcmVmSW50ZXJmYWNlLnNldEJvb2xQcmVmKHByZWYsIHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBS
RUZfSU5UOgorICAgICAgICAgICAgICAgICAgICBwcmVmSW50ZXJmYWNlLnNldEludFByZWYocHJl
ZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICIiIiAlIChuYW1lLCB2YWx1ZSkKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0
dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAg
ICAgICAgc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0KHNjcmlwdCkKKworICAgIGRlZiBj
bGVhcihzZWxmLCBuYW1lKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQ2xlYXJpbmcgcHJl
ZiAlcyIgJSAobmFtZSkpCisgICAgICAgIHNjcmlwdCA9ICIiIgorICAgICAgICAgICAgbGV0IHBy
ZWZJbnRlcmZhY2UgPSBDb21wb25lbnRzLmNsYXNzZXNbIkBtb3ppbGxhLm9yZy9wcmVmZXJlbmNl
cy1zZXJ2aWNlOzEiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LmdldFNlcnZpY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSVByZWZCcmFuY2gpOworICAgICAg
ICAgICAgbGV0IHByZWYgPSAnJXMnOworICAgICAgICAgICAgcHJlZkludGVyZmFjZS5jbGVhclVz
ZXJQcmVmKHByZWYpOworICAgICAgICAgICAgIiIiICUgbmFtZQorICAgICAgICB3aXRoIHNlbGYu
bWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6
CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQoc2NyaXB0KQorCisg
ICAgZGVmIGdldChzZWxmLCBuYW1lKToKKyAgICAgICAgc2NyaXB0ID0gIiIiCisgICAgICAgICAg
ICBsZXQgcHJlZkludGVyZmFjZSA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL3By
ZWZlcmVuY2VzLXNlcnZpY2U7MSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAuZ2V0U2VydmljZShDb21wb25lbnRzLmludGVyZmFjZXMubnNJUHJlZkJyYW5jaCk7
CisgICAgICAgICAgICBsZXQgcHJlZiA9ICclcyc7CisgICAgICAgICAgICBsZXQgdHlwZSA9IHBy
ZWZJbnRlcmZhY2UuZ2V0UHJlZlR5cGUocHJlZik7CisgICAgICAgICAgICBzd2l0Y2godHlwZSkg
eworICAgICAgICAgICAgICAgIGNhc2UgcHJlZkludGVyZmFjZS5QUkVGX1NUUklORzoKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHByZWZJbnRlcmZhY2UuZ2V0Q2hhclByZWYocHJlZik7Cisg
ICAgICAgICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBSRUZfQk9PTDoKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHByZWZJbnRlcmZhY2UuZ2V0Qm9vbFByZWYocHJlZik7CisgICAgICAg
ICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBSRUZfSU5UOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcHJlZkludGVyZmFjZS5nZXRJbnRQcmVmKHByZWYpOworICAgICAgICAgICAgICAg
IGNhc2UgcHJlZkludGVyZmFjZS5QUkVGX0lOVkFMSUQ6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIiIiICUgbmFtZQorICAgICAg
ICB3aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05U
RVhUX0NIUk9NRSk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQo
c2NyaXB0KQorCisKK2NsYXNzIE1hcmlvbmV0dGVTdG9yYWdlUHJvdG9jb2xQYXJ0KFN0b3JhZ2VQ
cm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25l
dHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGNsZWFyX29yaWdpbihzZWxm
LCB1cmwpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJDbGVhcmluZyBvcmlnaW4gJXMiICUg
KHVybCkpCisgICAgICAgIHNjcmlwdCA9ICIiIgorICAgICAgICAgICAgbGV0IHVybCA9ICclcyc7
CisgICAgICAgICAgICBsZXQgdXJpID0gQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcv
bmV0d29yay9pby1zZXJ2aWNlOzEiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAu
Z2V0U2VydmljZShDaS5uc0lJT1NlcnZpY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC5uZXdVUkkodXJsKTsKKyAgICAgICAgICAgIGxldCBzc20gPSBDb21wb25lbnRzLmNsYXNz
ZXNbIkBtb3ppbGxhLm9yZy9zY3JpcHRzZWN1cml0eW1hbmFnZXI7MSJdCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2aWNlKENpLm5zSVNjcmlwdFNlY3VyaXR5TWFuYWdl
cik7CisgICAgICAgICAgICBsZXQgcHJpbmNpcGFsID0gc3NtLmNyZWF0ZUNvZGViYXNlUHJpbmNp
cGFsKHVyaSwge30pOworICAgICAgICAgICAgbGV0IHFtcyA9IENvbXBvbmVudHMuY2xhc3Nlc1si
QG1vemlsbGEub3JnL2RvbS9xdW90YS1tYW5hZ2VyLXNlcnZpY2U7MSJdCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2aWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lR
dW90YU1hbmFnZXJTZXJ2aWNlKTsKKyAgICAgICAgICAgIHFtcy5jbGVhclN0b3JhZ2VzRm9yUHJp
bmNpcGFsKHByaW5jaXBhbCwgImRlZmF1bHQiLCB0cnVlKTsKKyAgICAgICAgICAgICIiIiAlIHVy
bAorICAgICAgICB3aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9u
ZXR0ZS5DT05URVhUX0NIUk9NRSk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0
ZV9zY3JpcHQoc2NyaXB0KQorCisKK2NsYXNzIE1hcmlvbmV0dGVTZWxlY3RvclByb3RvY29sUGFy
dChTZWxlY3RvclByb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBz
ZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgZWxlbWVu
dHNfYnlfc2VsZWN0b3Ioc2VsZiwgc2VsZWN0b3IpOgorICAgICAgICByZXR1cm4gc2VsZi5tYXJp
b25ldHRlLmZpbmRfZWxlbWVudHMoImNzcyBzZWxlY3RvciIsIHNlbGVjdG9yKQorCisKK2NsYXNz
IE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CisgICAgZGVm
IHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJp
b25ldHRlCisKKyAgICBkZWYgZWxlbWVudChzZWxmLCBlbGVtZW50KToKKyAgICAgICAgcmV0dXJu
IGVsZW1lbnQuY2xpY2soKQorCisKK2NsYXNzIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQ
YXJ0KFRlc3REcml2ZXJQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAg
ICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIHNl
bmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlX3R5cGUsIHN0YXR1cywgbWVzc2FnZT1Ob25lKToKKyAg
ICAgICAgb2JqID0geworICAgICAgICAgICAgInR5cGUiOiAidGVzdGRyaXZlci0lcyIgJSBzdHIo
bWVzc2FnZV90eXBlKSwKKyAgICAgICAgICAgICJzdGF0dXMiOiBzdHIoc3RhdHVzKQorICAgICAg
ICB9CisgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9IHN0
cihtZXNzYWdlKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQoIndpbmRv
dy5wb3N0TWVzc2FnZSglcywgJyonKSIgJSBqc29uLmR1bXBzKG9iaikpCisKKworY2xhc3MgTWFy
aW9uZXR0ZVByb3RvY29sKFByb3RvY29sKToKKyAgICBpbXBsZW1lbnRzID0gW01hcmlvbmV0dGVC
YXNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVRlc3RoYXJuZXNz
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVByZWZzUHJvdG9jb2xQ
YXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVN0b3JhZ2VQcm90b2NvbFBhcnQsCisg
ICAgICAgICAgICAgICAgICBNYXJpb25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICBNYXJpb25ldHRlVGVzdERyaXZlclByb3RvY29sUGFydF0KKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBleGVjdXRvciwgYnJvd3NlciwgY2FwYWJpbGl0aWVzPU5vbmUsIHRpbWVvdXRfbXVsdGlw
bGllcj0xKToKKyAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKKworICAgICAgICBzdXBlcihN
YXJpb25ldHRlUHJvdG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQorICAg
ICAgICBzZWxmLm1hcmlvbmV0dGUgPSBOb25lCisgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0
ID0gYnJvd3Nlci5tYXJpb25ldHRlX3BvcnQKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBj
YXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxpZXIgPSB0aW1lb3V0X211
bHRpcGxpZXIKKyAgICAgICAgc2VsZi5ydW5uZXJfaGFuZGxlID0gTm9uZQorCisgICAgZGVmIGNv
bm5lY3Qoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDb25uZWN0aW5nIHRvIE1h
cmlvbmV0dGUgb24gcG9ydCAlaSIgJSBzZWxmLm1hcmlvbmV0dGVfcG9ydCkKKyAgICAgICAgc3Rh
cnR1cF90aW1lb3V0ID0gbWFyaW9uZXR0ZS5NYXJpb25ldHRlLkRFRkFVTFRfU1RBUlRVUF9USU1F
T1VUICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0g
bWFyaW9uZXR0ZS5NYXJpb25ldHRlKGhvc3Q9J2xvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXNlbGYubWFyaW9uZXR0ZV9wb3J0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0
X3RpbWVvdXQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0dXBfdGltZW91dD1zdGFydHVwX3RpbWVvdXQpCisKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIldhaXRpbmcgZm9yIE1hcmlvbmV0dGUgY29ubmVjdGlvbiIpCisgICAgICAg
IHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5tYXJp
b25ldHRlLnJhaXNlX2Zvcl9wb3J0KCkKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg
ICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgIyBXaGVuIHJ1bm5pbmcgaW4gYSBk
ZWJ1Z2dlciB3YWl0IGluZGVmaW5pdGVseSBmb3IgRmlyZWZveCB0byBzdGFydAorICAgICAgICAg
ICAgICAgIGlmIHNlbGYuZXhlY3V0b3IuZGVidWdfaW5mbyBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICByYWlzZQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBNYXJp
b25ldHRlIHNlc3Npb24iKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGUuc3RhcnRfc2Vzc2lvbigp
CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJNYXJpb25ldHRlIHNlc3Npb24gc3RhcnRlZCIp
CisKKyAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0aGFybmVz
cy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1dG9yLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl0p
CisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYubWFyaW9uZXR0ZS5fcmVxdWVzdF9pbl9hcHBfc2h1dGRvd24oKQorICAgICAgICAgICAgc2Vs
Zi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKKyAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVz
ZSB0aGUgc2Vzc2lvbiBuZXZlciBzdGFydGVkCisgICAgICAgICAgICBwYXNzCisgICAgICAgIGlm
IHNlbGYubWFyaW9uZXR0ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRlbCBzZWxmLm1hcmlv
bmV0dGUKKyAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZVByb3RvY29sLCBzZWxmKS50ZWFyZG93bigp
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5jdXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgZGVmIG9uX2Vudmlyb25tZW50X2NoYW5nZShzZWxmLCBvbGRfZW52
aXJvbm1lbnQsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAgICNVbnNldCBhbGwgdGhlIG9sZCBw
cmVmcworICAgICAgICBmb3IgbmFtZSBpbiBvbGRfZW52aXJvbm1lbnQuZ2V0KCJwcmVmcyIsIHt9
KS5pdGVya2V5cygpOgorICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmV4ZWN1dG9yLm9yaWdpbmFs
X3ByZWZfdmFsdWVzW25hbWVdCisgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIHNlbGYucHJlZnMuY2xlYXIobmFtZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFtZSwgdmFsdWUpCisKKyAgICAgICAgZm9yIG5h
bWUsIHZhbHVlIGluIG5ld19lbnZpcm9ubWVudC5nZXQoInByZWZzIiwge30pLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgc2VsZi5leGVjdXRvci5vcmlnaW5hbF9wcmVmX3ZhbHVlc1tuYW1lXSA9
IHNlbGYuZ2V0X3ByZWYobmFtZSkKKyAgICAgICAgICAgIHNlbGYucHJlZnMuc2V0KG5hbWUsIHZh
bHVlKQorCisKK2NsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihvYmplY3QpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGZ1bmMsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgorICAg
ICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnJlc3VsdCA9IChOb25lLCBO
b25lKQorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2VsZi5mdW5j
ID0gZnVuYworICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxmLnRpbWVvdXQgPSB0
aW1lb3V0CisgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisg
ICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgaW5kZXggPSBzZWxmLnVybC5yZmluZCgiL3N0b3Jh
Z2UvIikKKyAgICAgICAgaWYgaW5kZXggIT0gLTE6CisgICAgICAgICAgICAjIENsZWFyIHN0b3Jh
Z2UKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc3RvcmFnZS5jbGVhcl9vcmlnaW4oc2VsZi51
cmwpCisKKyAgICAgICAgdGltZW91dCA9IHNlbGYudGltZW91dAorCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBleHRyYV90aW1lb3V0KQorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIFdlIGp1c3Qgd2FudCBpdCB0byBuZXZlciB0
aW1lIG91dCwgcmVhbGx5LCBidXQgbWFyaW9uZXR0ZSBkb2Vzbid0CisgICAgICAgICAgICAgICAg
IyBtYWtlIHRoYXQgcG9zc2libGUuIEl0IGFsc28gc2VlbXMgdG8gdGltZSBvdXQgaW1tZWRpYXRl
bHkgaWYgdGhlCisgICAgICAgICAgICAgICAgIyB0aW1lb3V0IGlzIHNldCB0b28gaGlnaC4gVGhp
cyB3b3JrcyBhdCBsZWFzdC4KKyAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0
X3RpbWVvdXQoMioqMjggLSAxKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUgc3Rh
cnRpbmcgdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gU3RvcAorCisgICAgICAgIGV4ZWN1dG9y
ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQgPSBzZWxmLl9ydW4pCisgICAgICAgIGV4ZWN1dG9y
LnN0YXJ0KCkKKworICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
d2FpdF90aW1lb3V0ID0gdGltZW91dCArIDIgKiBleHRyYV90aW1lb3V0CisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICB3YWl0X3RpbWVvdXQgPSBOb25lCisKKyAgICAgICAgZmxhZyA9IHNlbGYu
cmVzdWx0X2ZsYWcud2FpdCh3YWl0X3RpbWVvdXQpCisKKyAgICAgICAgaWYgc2VsZi5yZXN1bHQg
PT0gKE5vbmUsIE5vbmUpOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRpbWVkIG91
dCB3YWl0aW5nIGZvciBhIHJlc3VsdCIpCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
LCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorICAgICAgICBlbGlmIHNlbGYucmVzdWx0WzFd
IGlzIE5vbmU6CisgICAgICAgICAgICAjIFdlIGRpZG4ndCBnZXQgYW55IGRhdGEgYmFjayBmcm9t
IHRoZSB0ZXN0LCBzbyBjaGVjayBpZiB0aGUKKyAgICAgICAgICAgICMgYnJvd3NlciBpcyBzdGls
bCByZXNwb25zaXZlCisgICAgICAgICAgICBpZiBzZWxmLnByb3RvY29sLmlzX2FsaXZlOgorICAg
ICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVJST1IiLCBOb25lKQorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNI
IiwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisKKyAgICBkZWYgX3J1bihzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1
bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAgZXhjZXB0
IGVycm9ycy5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIkdvdCBhIG1hcmlvbmV0dGUgdGltZW91dCIpCisgICAgICAgICAgICBzZWxmLnJlc3Vs
dCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorICAgICAgICBleGNlcHQgKHNv
Y2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIG9u
IGEgY3Jhc2gKKyAgICAgICAgICAgICMgQWxzbywgc2hvdWxkIGNoZWNrIGFmdGVyIHRoZSB0ZXN0
IGlmIHRoZSBmaXJlZm94IHByb2Nlc3MgaXMgc3RpbGwgcnVubmluZworICAgICAgICAgICAgIyBh
bmQgb3RoZXJ3aXNlIGlnbm9yZSBhbnkgb3RoZXIgcmVzdWx0IGFuZCBzZXQgaXQgdG8gY3Jhc2gK
KyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25lKQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtZXNzYWdlID0gZ2V0YXR0cihl
LCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAg
ICBtZXNzYWdlICs9ICJcbiIKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1h
dF9leGMoZSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVJST1IiLCBlKQor
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCisK
KworY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRv
cik6CisgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKKyAgICAg
ICAgICAgICAgICAgY2xvc2VfYWZ0ZXJfZG9uZT1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFi
aWxpdGllcz1Ob25lLAorICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgICAgICIiIk1h
cmlvbmV0dGUtYmFzZWQgZXhlY3V0b3IgZm9yIHRlc3RoYXJuZXNzLmpzIHRlc3RzIiIiCisgICAg
ICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2Nv
bmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRp
cGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKworICAgICAgICBzZWxmLnByb3RvY29sID0g
TWFyaW9uZXR0ZVByb3RvY29sKHNlbGYsIGJyb3dzZXIsIGNhcGFiaWxpdGllcywgdGltZW91dF9t
dWx0aXBsaWVyKQorICAgICAgICBzZWxmLnNjcmlwdCA9IG9wZW4ob3MucGF0aC5qb2luKGhlcmUs
ICJ0ZXN0aGFybmVzc19tYXJpb25ldHRlLmpzIikpLnJlYWQoKQorICAgICAgICBzZWxmLnNjcmlw
dF9yZXN1bWUgPSBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGhhcm5lc3NfbWFyaW9uZXR0
ZV9yZXN1bWUuanMiKSkucmVhZCgpCisgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNs
b3NlX2FmdGVyX2RvbmUKKyAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlkNCgp
KQorCisgICAgICAgIHNlbGYub3JpZ2luYWxfcHJlZl92YWx1ZXMgPSB7fQorCisgICAgICAgIGlm
IG1hcmlvbmV0dGUgaXMgTm9uZToKKyAgICAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCisK
KyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLmlz
X2FsaXZlCisKKyAgICBkZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9u
bWVudCk6CisgICAgICAgIHNlbGYucHJvdG9jb2wub25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYu
bGFzdF9lbnZpcm9ubWVudCwgbmV3X2Vudmlyb25tZW50KQorCisgICAgICAgIGlmIG5ld19lbnZp
cm9ubWVudFsicHJvdG9jb2wiXSAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl06
CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKG5ld19l
bnZpcm9ubWVudFsicHJvdG9jb2wiXSkKKworICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgor
ICAgICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVy
IGlmIHNlbGYuZGVidWdfaW5mbyBpcyBOb25lCisgICAgICAgICAgICAgICAgICAgZWxzZSBOb25l
KQorCisgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oc2VsZi5s
b2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5kb190ZXN0aGFybmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkucnVuKCkKKyAgICAgICAgaWYgc3VjY2Vz
czoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCisK
KyAgICAgICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9jbHMoKmRhdGEpLCBbXSkKKworICAgIGRlZiBk
b190ZXN0aGFybmVzcyhzZWxmLCBwcm90b2NvbCwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgcHJv
dG9jb2wuYmFzZS5leGVjdXRlX3NjcmlwdCgiaWYgKHdpbmRvdy53aW4pIHt3aW5kb3cud2luLmNs
b3NlKCl9IikKKyAgICAgICAgcGFyZW50X3dpbmRvdyA9IHByb3RvY29sLnRlc3RoYXJuZXNzLmNs
b3NlX29sZF93aW5kb3dzKHByb3RvY29sKQorCisgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICB0aW1lb3V0X21zID0gc3RyKHRpbWVvdXQgKiAxMDAwKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgdGltZW91dF9tcyA9ICJudWxsIgorCisgICAgICAgIGZvcm1h
dF9tYXAgPSB7ImFic191cmwiOiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgInVybCI6IHN0
cmlwX3NlcnZlcih1cmwpLAorICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3dfaWQiOiBzZWxm
LndpbmRvd19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjog
c2VsZi50aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQi
OiB0aW1lb3V0X21zLAorICAgICAgICAgICAgICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0Ijog
dGltZW91dCBpcyBOb25lfQorCisgICAgICAgIHNjcmlwdCA9IHNlbGYuc2NyaXB0ICUgZm9ybWF0
X21hcAorCisgICAgICAgIHJ2ID0gcHJvdG9jb2wuYmFzZS5leGVjdXRlX3NjcmlwdChzY3JpcHQp
CisgICAgICAgIHRlc3Rfd2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuZ2V0X3Rlc3Rfd2lu
ZG93KHNlbGYud2luZG93X2lkLCBwYXJlbnRfd2luZG93KQorCisgICAgICAgIGhhbmRsZXIgPSBD
YWxsYmFja0hhbmRsZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKKyAgICAg
ICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29sLmJhc2UuZXhlY3V0
ZV9zY3JpcHQoCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9ybWF0X21h
cCwgYXN5bmM9VHJ1ZSkKKyAgICAgICAgICAgIGRvbmUsIHJ2ID0gaGFuZGxlcihyZXN1bHQpCisg
ICAgICAgICAgICBpZiBkb25lOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJldHVy
biBydgorCisKK2NsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9y
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91
dF9tdWx0aXBsaWVyPTEsCisgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RfY2FjaGU9Tm9uZSwg
Y2xvc2VfYWZ0ZXJfZG9uZT1UcnVlLAorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUs
IHJlZnRlc3RfaW50ZXJuYWw9RmFsc2UsCisgICAgICAgICAgICAgICAgIHJlZnRlc3Rfc2NyZWVu
c2hvdD0idW5leHBlY3RlZCIsCisgICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUs
IGNhcGFiaWxpdGllcz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIk1hcmlvbmV0dGUtYmFz
ZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCisgICAgICAgIFJlZlRlc3RFeGVjdXRvci5fX2lu
aXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPXNjcmVlbnNob3RfY2FjaGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGlt
ZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdf
aW5mbz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLnByb3RvY29sID0gTWFyaW9uZXR0ZVByb3Rv
Y29sKHNlbGYsIGJyb3dzZXIsIGNhcGFiaWxpdGllcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXIpCisgICAgICAgIHNlbGYuaW1w
bGVtZW50YXRpb24gPSAoSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiByZWZ0ZXN0X2ludGVybmFsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZSBSZWZUZXN0SW1wbGVtZW50YXRpb24pKHNlbGYpCisgICAgICAg
IHNlbGYuaW1wbGVtZW50YXRpb25fa3dhcmdzID0gKHsic2NyZWVuc2hvdCI6IHJlZnRlc3Rfc2Ny
ZWVuc2hvdH0gaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmdGVz
dF9pbnRlcm5hbCBlbHNlIHt9KQorCisgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNs
b3NlX2FmdGVyX2RvbmUKKyAgICAgICAgc2VsZi5oYXNfd2luZG93ID0gRmFsc2UKKyAgICAgICAg
c2VsZi5vcmlnaW5hbF9wcmVmX3ZhbHVlcyA9IHt9CisgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRh
dGEgPSBncm91cF9tZXRhZGF0YQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVy
ZSwgInJlZnRlc3QuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFk
KCkKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC13YWl0X21h
cmlvbmV0dGUuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYud2FpdF9zY3JpcHQgPSBmLnJl
YWQoKQorCisgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5lcik6CisgICAgICAgIHN1cGVyKHNlbGYu
X19jbGFzc19fLCBzZWxmKS5zZXR1cChydW5uZXIpCisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRp
b24uc2V0dXAoKipzZWxmLmltcGxlbWVudGF0aW9uX2t3YXJncykKKworICAgIGRlZiB0ZWFyZG93
bihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi50
ZWFyZG93bigpCisgICAgICAgICAgICBoYW5kbGUgPSBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUu
d2luZG93X2hhbmRsZXNbMF0KKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wubWFyaW9uZXR0ZS5z
d2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKKyAgICAgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19f
LCBzZWxmKS50ZWFyZG93bigpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg
ICAgICAgICMgSWdub3JlIGVycm9ycyBkdXJpbmcgdGVhcmRvd24KKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpCisKKyAgICBkZWYgaXNfYWxp
dmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlCisKKyAgICBk
ZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAg
IHNlbGYucHJvdG9jb2wub25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYubGFzdF9lbnZpcm9ubWVu
dCwgbmV3X2Vudmlyb25tZW50KQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuaW1wbGVtZW50YXRpb24sIEludGVybmFsUmVmVGVz
dEltcGxlbWVudGF0aW9uKToKKyAgICAgICAgICAgIGlmIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSBh
bmQgc2VsZi5oYXNfd2luZG93OgorICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wubWFyaW9u
ZXR0ZS5jbG9zZSgpCisgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5tYXJpb25ldHRlLnN3
aXRjaF90b193aW5kb3coCisgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wubWFyaW9u
ZXR0ZS53aW5kb3dfaGFuZGxlc1stMV0pCisgICAgICAgICAgICAgICAgc2VsZi5oYXNfd2luZG93
ID0gRmFsc2UKKworICAgICAgICAgICAgaWYgbm90IHNlbGYuaGFzX3dpbmRvdzoKKyAgICAgICAg
ICAgICAgICBzZWxmLnByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2VsZi5zY3JpcHQpCisg
ICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3coc2VsZi5wcm90b2Nv
bC5tYXJpb25ldHRlLndpbmRvd19oYW5kbGVzWy0xXSkKKyAgICAgICAgICAgICAgICBzZWxmLmhh
c193aW5kb3cgPSBUcnVlCisKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5pbXBsZW1lbnRhdGlvbi5y
dW5fdGVzdCh0ZXN0KQorICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCBy
ZXN1bHQpCisKKyAgICBkZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBk
cGkpOgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0cnVubmVyL2lzc3Vlcy8x
NjYKKyAgICAgICAgYXNzZXJ0IHZpZXdwb3J0X3NpemUgaXMgTm9uZQorICAgICAgICBhc3NlcnQg
ZHBpIGlzIE5vbmUKKworICAgICAgICB0aW1lb3V0ID0gc2VsZi50aW1lb3V0X211bHRpcGxpZXIg
KiB0ZXN0LnRpbWVvdXQgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIE5vbmUgZWxzZSBOb25lCisKKyAg
ICAgICAgdGVzdF91cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAgICAgICAgcmV0dXJuIEV4
ZWN1dGVBc3luY1NjcmlwdFJ1bihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dCkucnVuKCkKKworICAgIGRlZiBfc2NyZWVuc2hvdChzZWxmLCBtYXJpb25ldHRlLCB1
cmwsIHRpbWVvdXQpOgorICAgICAgICBtYXJpb25ldHRlLm5hdmlnYXRlKHVybCkKKworICAgICAg
ICBtYXJpb25ldHRlLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNlbGYud2FpdF9zY3JpcHQpCisKKyAg
ICAgICAgc2NyZWVuc2hvdCA9IG1hcmlvbmV0dGUuc2NyZWVuc2hvdChmdWxsPUZhbHNlKQorICAg
ICAgICAjIHN0cmlwIG9mZiB0aGUgZGF0YTppbWcvcG5nLCBwYXJ0IG9mIHRoZSB1cmwKKyAgICAg
ICAgaWYgc2NyZWVuc2hvdC5zdGFydHN3aXRoKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsIik6Cisg
ICAgICAgICAgICBzY3JlZW5zaG90ID0gc2NyZWVuc2hvdC5zcGxpdCgiLCIsIDEpWzFdCisKKyAg
ICAgICAgcmV0dXJuIHNjcmVlbnNob3QKKworCitjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBsZW1l
bnRhdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvcik6CisgICAg
ICAgIHNlbGYudGltZW91dF9tdWx0aXBsaWVyID0gZXhlY3V0b3IudGltZW91dF9tdWx0aXBsaWVy
CisgICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGxvZ2dlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0b3IubG9nZ2VyCisK
KyAgICBkZWYgc2V0dXAoc2VsZiwgc2NyZWVuc2hvdD0idW5leHBlY3RlZCIpOgorICAgICAgICBk
YXRhID0geyJzY3JlZW5zaG90Ijogc2NyZWVuc2hvdH0KKyAgICAgICAgaWYgc2VsZi5leGVjdXRv
ci5ncm91cF9tZXRhZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRhdGFbInVybENvdW50
Il0gPSB7dXJscGFyc2UudXJsam9pbihzZWxmLmV4ZWN1dG9yLnNlcnZlcl91cmwoa2V5WzBdKSwg
a2V5WzFdKTp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBzZWxmLmV4ZWN1dG9yLmdyb3VwX21ldGFkYXRhLmdldCgidXJsX2NvdW50Iiwge30p
Lml0ZXJpdGVtcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlID4g
MX0KKyAgICAgICAgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLnNldF9jb250ZXh0
KHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSkKKyAgICAg
ICAgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLl9zZW5kX21lc3NhZ2UoInJlZnRl
c3Q6c2V0dXAiLCBkYXRhKQorCisgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QpOgorICAgICAg
ICB2aWV3cG9ydF9zaXplID0gdGVzdC52aWV3cG9ydF9zaXplCisgICAgICAgIGRwaSA9IHRlc3Qu
ZHBpCisKKyAgICAgICAgcmVmZXJlbmNlcyA9IHNlbGYuZ2V0X3JlZmVyZW5jZXModGVzdCkKKyAg
ICAgICAgcnYgPSBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2Fn
ZSgicmVmdGVzdDpydW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsidGVzdCI6IHNlbGYuZXhlY3V0b3IudGVzdF91cmwodGVz
dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWZlcmVuY2VzIjogcmVmZXJlbmNlcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogdGVz
dC5leHBlY3RlZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGltZW91dCI6IHRlc3QudGltZW91dCAqIDEwMDB9KVsidmFs
dWUiXQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBnZXRfcmVmZXJlbmNlcyhzZWxmLCBu
b2RlKToKKyAgICAgICAgcnYgPSBbXQorICAgICAgICBmb3IgaXRlbSwgcmVsYXRpb24gaW4gbm9k
ZS5yZWZlcmVuY2VzOgorICAgICAgICAgICAgcnYuYXBwZW5kKFtzZWxmLmV4ZWN1dG9yLnRlc3Rf
dXJsKGl0ZW0pLCBzZWxmLmdldF9yZWZlcmVuY2VzKGl0ZW0pLCByZWxhdGlvbl0pCisgICAgICAg
IHJldHVybiBydgorCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2FnZSgi
cmVmdGVzdDp0ZWFyZG93biIsIHt9KQorICAgICAgICAgICAgc2VsZi5leGVjdXRvci5wcm90b2Nv
bC5tYXJpb25ldHRlLnNldF9jb250ZXh0KHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0
ZS5DT05URVhUX0NPTlRFTlQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg
ICAgICAgICMgSWdub3JlIGVycm9ycyBkdXJpbmcgdGVhcmRvd24KKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpCisKKworCitjbGFzcyBHZWNr
b0RyaXZlclByb3RvY29sKFdlYkRyaXZlclByb3RvY29sKToKKyAgICBzZXJ2ZXJfY2xzID0gR2Vj
a29Ecml2ZXJTZXJ2ZXIKKworCitjbGFzcyBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVj
RXhlY3V0b3IpOgorICAgIHByb3RvY29sX2NscyA9IEdlY2tvRHJpdmVyUHJvdG9jb2wKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JvcGVyYS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JvcGVyYS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWYxZjBkNTk1OTA4
MDc0NTJhOWZmYzIwMWFkOGQwZjhmOTcyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcm9wZXJhLnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53
ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBPcGVyYURyaXZlclNlcnZlcgorZnJvbSAuYmFzZSBpbXBv
cnQgV2RzcGVjRXhlY3V0b3IsIFdlYkRyaXZlclByb3RvY29sCisKKworY2xhc3MgT3BlcmFEcml2
ZXJQcm90b2NvbChXZWJEcml2ZXJQcm90b2NvbCk6CisgICAgc2VydmVyX2NscyA9IE9wZXJhRHJp
dmVyU2VydmVyCisKKworY2xhc3MgT3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVj
dXRvcik6CisgICAgcHJvdG9jb2xfY2xzID0gT3BlcmFEcml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNzExODk5M2Q4
Mjc2NmVkZTkzNzhlYzRmM2Q4YzFkOTMyODM3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKQEAgLTAsMCArMSwzNjAgQEAKK2lt
cG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzeXMKK2ltcG9ydCB0
aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgdXJscGFyc2UK
K2ltcG9ydCB1dWlkCisKK2Zyb20gLmJhc2UgaW1wb3J0IChDYWxsYmFja0hhbmRsZXIsCisgICAg
ICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgIFJlZlRl
c3RJbXBsZW1lbnRhdGlvbiwKKyAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9y
LAorICAgICAgICAgICAgICAgICAgIGV4dHJhX3RpbWVvdXQsCisgICAgICAgICAgICAgICAgICAg
c3RyaXBfc2VydmVyKQorZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAor
ICAgICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgUHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFydCkKK2Zyb20gLi50
ZXN0cnVubmVyIGltcG9ydCBTdG9wCisKK2hlcmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxp
dChfX2ZpbGVfXylbMF0pCisKK3dlYmRyaXZlciA9IE5vbmUKK2V4Y2VwdGlvbnMgPSBOb25lCitS
ZW1vdGVDb25uZWN0aW9uID0gTm9uZQorCisKK2RlZiBkb19kZWxheWVkX2ltcG9ydHMoKToKKyAg
ICBnbG9iYWwgd2ViZHJpdmVyCisgICAgZ2xvYmFsIGV4Y2VwdGlvbnMKKyAgICBnbG9iYWwgUmVt
b3RlQ29ubmVjdGlvbgorICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgorICAgIGZy
b20gc2VsZW5pdW0uY29tbW9uIGltcG9ydCBleGNlcHRpb25zCisgICAgZnJvbSBzZWxlbml1bS53
ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1vdGVDb25uZWN0aW9u
CisKKworY2xhc3MgU2VsZW5pdW1CYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgor
ICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVu
dC53ZWJkcml2ZXIKKworICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5j
PUZhbHNlKToKKyAgICAgICAgbWV0aG9kID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19z
Y3JpcHQgaWYgYXN5bmMgZWxzZSBzZWxmLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdAorICAgICAg
ICByZXR1cm4gbWV0aG9kKHNjcmlwdCkKKworICAgIGRlZiBzZXRfdGltZW91dChzZWxmLCB0aW1l
b3V0KToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIuc2V0X3NjcmlwdF90aW1lb3V0KHRpbWVvdXQg
KiAxMDAwKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGN1cnJlbnRfd2luZG93KHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisKKyAg
ICBkZWYgc2V0X3dpbmRvdyhzZWxmLCBoYW5kbGUpOgorICAgICAgICBzZWxmLndlYmRyaXZlci5z
d2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKKworICAgIGRlZiB3YWl0KHNlbGYpOgorICAgICAgICB3
aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYud2ViZHJp
dmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCIiKQorICAgICAgICAgICAgZXhjZXB0IGV4Y2VwdGlv
bnMuVGltZW91dEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBl
eGNlcHQgKHNvY2tldC50aW1lb3V0LCBleGNlcHRpb25zLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5FcnJvckluUmVzcG9uc2VFeGNlcHRpb24s
IElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IodHJhY2ViYWNr
LmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICAgICAgYnJlYWsKKworCitjbGFzcyBTZWxlbml1
bVRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKKyAgICBk
ZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2Vi
ZHJpdmVyCisKKyAgICBkZWYgbG9hZF9ydW5uZXIoc2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAg
ICAgdXJsID0gdXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJs
KHVybF9wcm90b2NvbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFy
bmVzc19ydW5uZXIuaHRtbCIpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVz
IiAlIHVybCkKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIuZ2V0KHVybCkKKyAgICAgICAgc2VsZi53
ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoImRvY3VtZW50LnRpdGxlID0gJyVzJyIgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQo
KS5uYW1lLnJlcGxhY2UoIiciLCAnIicpKQorCisgICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNl
bGYpOgorICAgICAgICBleGNsdWRlID0gc2VsZi53ZWJkcml2ZXIuY3VycmVudF93aW5kb3dfaGFu
ZGxlCisgICAgICAgIGhhbmRsZXMgPSBbaXRlbSBmb3IgaXRlbSBpbiBzZWxmLndlYmRyaXZlci53
aW5kb3dfaGFuZGxlcyBpZiBpdGVtICE9IGV4Y2x1ZGVdCisgICAgICAgIGZvciBoYW5kbGUgaW4g
aGFuZGxlczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZl
ci5zd2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKKyAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZl
ci5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQgZXhjZXB0aW9ucy5Ob1N1Y2hXaW5kb3dFeGNl
cHRpb246CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0
Y2hfdG9fd2luZG93KGV4Y2x1ZGUpCisgICAgICAgIHJldHVybiBleGNsdWRlCisKKyAgICBkZWYg
Z2V0X3Rlc3Rfd2luZG93KHNlbGYsIHdpbmRvd19pZCwgcGFyZW50KToKKyAgICAgICAgdGVzdF93
aW5kb3cgPSBOb25lCisgICAgICAgIGlmIHdpbmRvd19pZDoKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICAjIFRyeSB0aGlzLCBpdCdzIGluIExldmVsIDEgYnV0IG5vdGhpbmcgc3Vw
cG9ydHMgaXQgeWV0CisgICAgICAgICAgICAgICAgd2luX3MgPSBzZWxmLndlYmRyaXZlci5leGVj
dXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvd1snJXMnXTsiICUgc2VsZi53aW5kb3dfaWQpCisgICAg
ICAgICAgICAgICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3MpCisgICAgICAgICAgICAgICAg
dGVzdF93aW5kb3cgPSB3aW5fb2JqWyJ3aW5kb3ctZmNjNi0xMWU1LWI0ZjgtMzMwYTg4YWI5ZDdm
Il0KKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcGFzcwor
CisgICAgICAgIGlmIHRlc3Rfd2luZG93IGlzIE5vbmU6CisgICAgICAgICAgICBhZnRlciA9IHNl
bGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGVzCisgICAgICAgICAgICBpZiBsZW4oYWZ0ZXIpID09
IDI6CisgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAt
IHNldChbcGFyZW50XSkpKQorICAgICAgICAgICAgZWxpZiBhZnRlclswXSA9PSBwYXJlbnQgYW5k
IGxlbihhZnRlcikgPiAyOgorICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhl
cmUgaXMgdGhlIHRlc3Qgd2luZG93CisgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRl
clsxXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
InVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKKworICAgICAgICBhc3NlcnQgdGVzdF93aW5k
b3cgIT0gcGFyZW50CisgICAgICAgIHJldHVybiB0ZXN0X3dpbmRvdworCisKK2NsYXNzIFNlbGVu
aXVtU2VsZWN0b3JQcm90b2NvbFBhcnQoU2VsZWN0b3JQcm90b2NvbFBhcnQpOgorICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2
ZXIKKworICAgIGRlZiBlbGVtZW50c19ieV9zZWxlY3RvcihzZWxmLCBzZWxlY3Rvcik6CisgICAg
ICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2Nzc19zZWxlY3Rvcihz
ZWxlY3RvcikKKworCitjbGFzcyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9j
b2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0g
c2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZWxlbWVudChzZWxmLCBlbGVtZW50KToK
KyAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQorCisKK2NsYXNzIFNlbGVuaXVtVGVzdERy
aXZlclByb3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAo
c2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisK
KyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2VfdHlwZSwgc3RhdHVzLCBtZXNzYWdl
PU5vbmUpOgorICAgICAgICBvYmogPSB7CisgICAgICAgICAgICAidHlwZSI6ICJ0ZXN0ZHJpdmVy
LSVzIiAlIHN0cihtZXNzYWdlX3R5cGUpLAorICAgICAgICAgICAgInN0YXR1cyI6IHN0cihzdGF0
dXMpCisgICAgICAgIH0KKyAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgIG9ialsibWVz
c2FnZSJdID0gc3RyKG1lc3NhZ2UpCisgICAgICAgIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2Ny
aXB0KCJ3aW5kb3cucG9zdE1lc3NhZ2UoJXMsICcqJykiICUganNvbi5kdW1wcyhvYmopKQorCisK
K2NsYXNzIFNlbGVuaXVtUHJvdG9jb2woUHJvdG9jb2wpOgorICAgIGltcGxlbWVudHMgPSBbU2Vs
ZW5pdW1CYXNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgU2VsZW5pdW1UZXN0aGFy
bmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VsZWN0b3JQcm90
b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0LAor
ICAgICAgICAgICAgICAgICAgU2VsZW5pdW1UZXN0RHJpdmVyUHJvdG9jb2xQYXJ0XQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dh
cmdzKToKKyAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKKworICAgICAgICBzdXBlcihTZWxl
bml1bVByb3RvY29sLCBzZWxmKS5fX2luaXRfXyhleGVjdXRvciwgYnJvd3NlcikKKyAgICAgICAg
c2VsZi5jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi51cmwgPSBicm93
c2VyLndlYmRyaXZlcl91cmwKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBOb25lCisKKyAgICBk
ZWYgY29ubmVjdChzZWxmKToKKyAgICAgICAgIiIiQ29ubmVjdCB0byBicm93c2VyIHZpYSBTZWxl
bml1bSdzIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbi4iIiIKKyAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIkNvbm5lY3RpbmcgdG8gU2VsZW5pdW0gb24gVVJMOiAlcyIgJSBzZWxmLnVybCkKKwor
ICAgICAgICBzZWxmLndlYmRyaXZlciA9IHdlYmRyaXZlci5SZW1vdGUoY29tbWFuZF9leGVjdXRv
cj1SZW1vdGVDb25uZWN0aW9uKHNlbGYudXJsLnN0cmlwKCIvIiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZV9pcD1GYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1zZWxmLmNhcGFiaWxpdGllcykKKworICAgIGRl
ZiBhZnRlcl9jb25lY3Qoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZWFyZG93bihz
ZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkhhbmdpbmcgdXAgb24gU2VsZW5pdW0g
c2Vzc2lvbiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLnF1aXQo
KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICBk
ZWwgc2VsZi53ZWJkcml2ZXIKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgIyBHZXQgYSBzaW1wbGUgcHJvcGVydHkgb3ZlciB0aGUgY29ubmVjdGlv
bgorICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAg
ICAgICMgVE9ETyB3aGF0IGV4Y2VwdGlvbj8KKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91
dCwgZXhjZXB0aW9ucy5FcnJvckluUmVzcG9uc2VFeGNlcHRpb24pOgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgYWZ0ZXJfY29ubmVjdChz
ZWxmKToKKyAgICAgICAgc2VsZi50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1dG9y
Lmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCisKKworY2xhc3MgU2VsZW5pdW1SdW4ob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91
dCk6CisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5yZXN1bHQgPSBOb25l
CisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorICAgICAgICBzZWxmLnVybCA9IHVy
bAorICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYucmVzdWx0X2Zs
YWcgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgdGlt
ZW91dCA9IHNlbGYudGltZW91dAorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucHJv
dG9jb2wuYmFzZS5zZXRfdGltZW91dCgodGltZW91dCArIGV4dHJhX3RpbWVvdXQpKQorICAgICAg
ICBleGNlcHQgZXhjZXB0aW9ucy5FcnJvckluUmVzcG9uc2VFeGNlcHRpb246CisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBXZWJEcml2ZXIgY29ubmVjdGlvbiIpCisgICAgICAg
ICAgICByZXR1cm4gU3RvcAorCisgICAgICAgIGV4ZWN1dG9yID0gdGhyZWFkaW5nLlRocmVhZCh0
YXJnZXQ9c2VsZi5fcnVuKQorICAgICAgICBleGVjdXRvci5zdGFydCgpCisKKyAgICAgICAgZmxh
ZyA9IHNlbGYucmVzdWx0X2ZsYWcud2FpdCh0aW1lb3V0ICsgMiAqIGV4dHJhX3RpbWVvdXQpCisg
ICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgbm90IGZs
YWcKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIs
IE5vbmUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisKKyAgICBkZWYgX3J1bihzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1
bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAgZXhjZXB0
IGV4Y2VwdGlvbnMuVGltZW91dEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
RmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIsIE5vbmUpCisgICAgICAgIGV4Y2VwdCAoc29ja2V0
LnRpbWVvdXQsIGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0aW9uKToKKyAgICAgICAg
ICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25lKQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtZXNzYWdlID0gZ2V0YXR0cihlLCAibWVzc2Fn
ZSIsICIiKQorICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdl
ICs9ICJcbiIKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkK
KyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVJST1IiLCBlKQorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQorCisKK2NsYXNzIFNl
bGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKKyAgICBzdXBw
b3J0c190ZXN0ZHJpdmVyID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIs
IHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBj
bG9zZV9hZnRlcl9kb25lPVRydWUsIGNhcGFiaWxpdGllcz1Ob25lLCBkZWJ1Z19pbmZvPU5vbmUs
CisgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICAgICAgIiIiU2VsZW5pdW0tYmFzZWQg
ZXhlY3V0b3IgZm9yIHRlc3RoYXJuZXNzLmpzIHRlc3RzIiIiCisgICAgICAgIFRlc3RoYXJuZXNz
RXhlY3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9t
dWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2lu
Zm89ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IFNlbGVuaXVtUHJvdG9jb2wo
c2VsZiwgYnJvd3NlciwgY2FwYWJpbGl0aWVzKQorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5q
b2luKGhlcmUsICJ0ZXN0aGFybmVzc193ZWJkcml2ZXIuanMiKSkgYXMgZjoKKyAgICAgICAgICAg
IHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbiho
ZXJlLCAidGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcyIpKSBhcyBmOgorICAgICAgICAg
ICAgc2VsZi5zY3JpcHRfcmVzdW1lID0gZi5yZWFkKCkKKyAgICAgICAgc2VsZi5jbG9zZV9hZnRl
cl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQorICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0cih1
dWlkLnV1aWQ0KCkpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKKworICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uo
c2VsZiwgbmV3X2Vudmlyb25tZW50KToKKyAgICAgICAgaWYgbmV3X2Vudmlyb25tZW50WyJwcm90
b2NvbCJdICE9IHNlbGYubGFzdF9lbnZpcm9ubWVudFsicHJvdG9jb2wiXToKKyAgICAgICAgICAg
IHNlbGYucHJvdG9jb2wudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIobmV3X2Vudmlyb25tZW50WyJw
cm90b2NvbCJdKQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHVybCA9
IHNlbGYudGVzdF91cmwodGVzdCkKKworICAgICAgICBzdWNjZXNzLCBkYXRhID0gU2VsZW5pdW1S
dW4oc2VsZi5kb190ZXN0aGFybmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LnRpbWVvdXQgKiBz
ZWxmLnRpbWVvdXRfbXVsdGlwbGllcikucnVuKCkKKworICAgICAgICBpZiBzdWNjZXNzOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgZGF0YSkKKworICAgICAg
ICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygqZGF0YSksIFtdKQorCisgICAgZGVmIGRvX3Rlc3Ro
YXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgorICAgICAgICBmb3JtYXRfbWFw
ID0geyJhYnNfdXJsIjogdXJsLAorICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiBzdHJpcF9z
ZXJ2ZXIodXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAid2luZG93X2lkIjogc2VsZi53aW5k
b3dfaWQsCisgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IHNlbGYu
dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0IjogdGlt
ZW91dCAqIDEwMDB9CisKKyAgICAgICAgcGFyZW50X3dpbmRvdyA9IHByb3RvY29sLnRlc3RoYXJu
ZXNzLmNsb3NlX29sZF93aW5kb3dzKCkKKyAgICAgICAgIyBOb3cgc3RhcnQgdGhlIHRlc3QgaGFy
bmVzcworICAgICAgICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNlbGYuc2NyaXB0ICUg
Zm9ybWF0X21hcCkKKyAgICAgICAgdGVzdF93aW5kb3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5n
ZXRfdGVzdF93aW5kb3cod2ViZHJpdmVyLCBwYXJlbnRfd2luZG93KQorCisgICAgICAgIGhhbmRs
ZXIgPSBDYWxsYmFja0hhbmRsZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykK
KyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29sLmJhc2Uu
ZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9y
bWF0X21hcCwgYXN5bmM9VHJ1ZSkKKyAgICAgICAgICAgIGRvbmUsIHJ2ID0gaGFuZGxlcihyZXN1
bHQpCisgICAgICAgICAgICBpZiBkb25lOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
IHJldHVybiBydgorCisKK2NsYXNzIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVj
dXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRp
bWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPU5v
bmUsIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1O
b25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJTZWxlbml1bSBX
ZWJEcml2ZXItYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCisgICAgICAgIFJlZlRlc3RF
eGVjdXRvci5fX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPXNjcmVl
bnNob3RfY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211
bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVidWdfaW5mbz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLnByb3RvY29sID0gU2Vs
ZW5pdW1Qcm90b2NvbChzZWxmLCBicm93c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxmLmlt
cGxlbWVudGF0aW9uID0gUmVmVGVzdEltcGxlbWVudGF0aW9uKHNlbGYpCisgICAgICAgIHNlbGYu
Y2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUKKyAgICAgICAgc2VsZi5oYXNfd2lu
ZG93ID0gRmFsc2UKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0
ZXN0LmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCisgICAg
ICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2FpdF93ZWJkcml2ZXIu
anMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYud2FpdF9zY3JpcHQgPSBmLnJlYWQoKQorCisg
ICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19h
bGl2ZSgpCisKKyAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgc2VsZi5sb2dn
ZXIuaW5mbygiVGVzdCByZXF1aXJlcyBPUy1sZXZlbCB3aW5kb3cgZm9jdXMiKQorCisgICAgICAg
IHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLnNldF93aW5kb3dfc2l6ZSg2MDAsIDYwMCkKKworICAg
ICAgICByZXN1bHQgPSBzZWxmLmltcGxlbWVudGF0aW9uLnJ1bl90ZXN0KHRlc3QpCisKKyAgICAg
ICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQorCisgICAgZGVmIHNj
cmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKKyAgICAgICAgIyBodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgIGFzc2VydCB2
aWV3cG9ydF9zaXplIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGRwaSBpcyBOb25lCisKKyAgICAg
ICAgcmV0dXJuIFNlbGVuaXVtUnVuKHNlbGYuX3NjcmVlbnNob3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi50ZXN0X3VybCh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QudGltZW91
dCkucnVuKCkKKworICAgIGRlZiBfc2NyZWVuc2hvdChzZWxmLCBwcm90b2NvbCwgdXJsLCB0aW1l
b3V0KToKKyAgICAgICAgd2ViZHJpdmVyID0gcHJvdG9jb2wud2ViZHJpdmVyCisgICAgICAgIHdl
YmRyaXZlci5nZXQodXJsKQorCisgICAgICAgIHdlYmRyaXZlci5leGVjdXRlX2FzeW5jX3Njcmlw
dChzZWxmLndhaXRfc2NyaXB0KQorCisgICAgICAgIHNjcmVlbnNob3QgPSB3ZWJkcml2ZXIuZ2V0
X3NjcmVlbnNob3RfYXNfYmFzZTY0KCkKKworICAgICAgICAjIHN0cmlwIG9mZiB0aGUgZGF0YTpp
bWcvcG5nLCBwYXJ0IG9mIHRoZSB1cmwKKyAgICAgICAgaWYgc2NyZWVuc2hvdC5zdGFydHN3aXRo
KCJkYXRhOmltYWdlL3BuZztiYXNlNjQsIik6CisgICAgICAgICAgICBzY3JlZW5zaG90ID0gc2Ny
ZWVuc2hvdC5zcGxpdCgiLCIsIDEpWzFdCisKKyAgICAgICAgcmV0dXJuIHNjcmVlbnNob3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjc5Y2YyNGQ5
MzA4MjQ0YzlkNzZhMWI1MTAxZmRlNzJiMGI1NzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CkBAIC0wLDAgKzEsMjkwIEBACitpbXBv
cnQgYmFzZTY0CitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IGh0dHBsaWIKK2ltcG9ydCBqc29uCitp
bXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB0aHJl
YWRpbmcKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB1cmxwYXJzZQoraW1wb3J0IHV1aWQKK2Zy
b20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKK2Zyb20gbW96cHJvY2VzcyBpbXBv
cnQgUHJvY2Vzc0hhbmRsZXIKKworZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19m
aWxlCisKK2Zyb20gLmJhc2UgaW1wb3J0IChFeGVjdXRvckV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICBDb25uZWN0aW9ubGVzc1Byb3RvY29sLAorICAgICAgICAgICAgICAgICAgIFJlZlRl
c3RJbXBsZW1lbnRhdGlvbiwKKyAgICAgICAgICAgICAgICAgICB0ZXN0aGFybmVzc19yZXN1bHRf
Y29udmVydGVyLAorICAgICAgICAgICAgICAgICAgIHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRlciwK
KyAgICAgICAgICAgICAgICAgICBXZHNwZWNFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJQcm90b2NvbCkKK2Zyb20gLnByb2Nlc3MgaW1wb3J0IFByb2Nlc3NUZXN0RXhlY3V0
b3IKK2Zyb20gLi5icm93c2Vycy5iYXNlIGltcG9ydCBicm93c2VyX2NvbW1hbmQKK2Zyb20gLi53
cHR0ZXN0IGltcG9ydCBXZHNwZWNSZXN1bHQsIFdkc3BlY1N1YnRlc3RSZXN1bHQKK2Zyb20gLi53
ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTZXJ2b0RyaXZlclNlcnZlcgorZnJvbSAuZXhlY3V0b3Jt
YXJpb25ldHRlIGltcG9ydCBXZHNwZWNSdW4KKworcHl0ZXN0cnVubmVyID0gTm9uZQord2ViZHJp
dmVyID0gTm9uZQorCitleHRyYV90aW1lb3V0ID0gNSAgIyBzZWNvbmRzCisKK2RlZiB3cml0ZV9o
b3N0c19maWxlKGNvbmZpZyk6CisgICAgaG9zdHNfZmQsIGhvc3RzX3BhdGggPSB0ZW1wZmlsZS5t
a3N0ZW1wKCkKKyAgICB3aXRoIG9zLmZkb3Blbihob3N0c19mZCwgInciKSBhcyBmOgorICAgICAg
ICBmLndyaXRlKG1ha2VfaG9zdHNfZmlsZShjb25maWcsICIxMjcuMC4wLjEiKSkKKyAgICByZXR1
cm4gaG9zdHNfcGF0aAorCisKK2NsYXNzIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNz
VGVzdEV4ZWN1dG9yKToKKyAgICBjb252ZXJ0X3Jlc3VsdCA9IHRlc3RoYXJuZXNzX3Jlc3VsdF9j
b252ZXJ0ZXIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmln
LCB0aW1lb3V0X211bHRpcGxpZXI9MSwgZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAg
ICBwYXVzZV9hZnRlcl90ZXN0PUZhbHNlLCAqKmt3YXJncyk6CisgICAgICAgIFByb2Nlc3NUZXN0
RXhlY3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9t
dWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2lu
Zm89ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wYXVzZV9hZnRlcl90ZXN0ID0gcGF1c2VfYWZ0
ZXJfdGVzdAorICAgICAgICBzZWxmLnJlc3VsdF9kYXRhID0gTm9uZQorICAgICAgICBzZWxmLnJl
c3VsdF9mbGFnID0gTm9uZQorICAgICAgICBzZWxmLnByb3RvY29sID0gQ29ubmVjdGlvbmxlc3NQ
cm90b2NvbChzZWxmLCBicm93c2VyKQorICAgICAgICBzZWxmLmhvc3RzX3BhdGggPSB3cml0ZV9o
b3N0c19maWxlKHNlcnZlcl9jb25maWcpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmhvc3RzX3BhdGgpCisgICAgICAg
IGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBQcm9jZXNzVGVzdEV4
ZWN1dG9yLnRlYXJkb3duKHNlbGYpCisKKyAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKKyAg
ICAgICAgc2VsZi5yZXN1bHRfZGF0YSA9IE5vbmUKKyAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9
IHRocmVhZGluZy5FdmVudCgpCisKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAgICItLWhh
cmQtZmFpbCIsICItdSIsICJTZXJ2by93cHRydW5uZXIiLAorICAgICAgICAgICAgIi1aIiwgInJl
cGxhY2Utc3Vycm9nYXRlcyIsICIteiIsIHNlbGYudGVzdF91cmwodGVzdCksCisgICAgICAgIF0K
KyAgICAgICAgZm9yIHN0eWxlc2hlZXQgaW4gc2VsZi5icm93c2VyLnVzZXJfc3R5bGVzaGVldHM6
CisgICAgICAgICAgICBhcmdzICs9IFsiLS11c2VyLXN0eWxlc2hlZXQiLCBzdHlsZXNoZWV0XQor
ICAgICAgICBmb3IgcHJlZiwgdmFsdWUgaW4gdGVzdC5lbnZpcm9ubWVudC5nZXQoJ3ByZWZzJywg
e30pLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgYXJncyArPSBbIi0tcHJlZiIsICIlcz0lcyIg
JSAocHJlZiwgdmFsdWUpXQorICAgICAgICBpZiBzZWxmLmJyb3dzZXIuY2FfY2VydGlmaWNhdGVf
cGF0aDoKKyAgICAgICAgICAgIGFyZ3MgKz0gWyItLWNlcnRpZmljYXRlLXBhdGgiLCBzZWxmLmJy
b3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aF0KKyAgICAgICAgYXJncyArPSBzZWxmLmJyb3dzZXIu
YmluYXJ5X2FyZ3MKKyAgICAgICAgZGVidWdfYXJncywgY29tbWFuZCA9IGJyb3dzZXJfY29tbWFu
ZChzZWxmLmJpbmFyeSwgYXJncywgc2VsZi5kZWJ1Z19pbmZvKQorCisgICAgICAgIHNlbGYuY29t
bWFuZCA9IGNvbW1hbmQKKworICAgICAgICBpZiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3Q6CisgICAg
ICAgICAgICBzZWxmLmNvbW1hbmQucmVtb3ZlKCIteiIpCisKKyAgICAgICAgc2VsZi5jb21tYW5k
ID0gZGVidWdfYXJncyArIHNlbGYuY29tbWFuZAorCisgICAgICAgIGVudiA9IG9zLmVudmlyb24u
Y29weSgpCisgICAgICAgIGVudlsiSE9TVF9GSUxFIl0gPSBzZWxmLmhvc3RzX3BhdGgKKyAgICAg
ICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisKKworICAgICAgICBpZiBub3Qgc2VsZi5p
bnRlcmFjdGl2ZToKKyAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYu
Y29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NP
dXRwdXRMaW5lPVtzZWxmLm9uX291dHB1dF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbkZpbmlzaD1zZWxmLm9uX2ZpbmlzaCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdG9yZU91dHB1dD1GYWxzZSkKKyAgICAgICAgICAgIHNlbGYucHJvYy5ydW4o
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wcm9jID0gc3VicHJvY2Vzcy5Qb3Bl
bihzZWxmLmNvbW1hbmQsIGVudj1lbnYpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdGlt
ZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyCisKKyAgICAgICAg
ICAgICMgTm93IHdhaXQgdG8gZ2V0IHRoZSBvdXRwdXQgd2UgZXhwZWN0LCBvciB1bnRpbCB3ZSBy
ZWFjaCB0aGUgdGltZW91dAorICAgICAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmUgYW5k
IG5vdCBzZWxmLnBhdXNlX2FmdGVyX3Rlc3Q6CisgICAgICAgICAgICAgICAgd2FpdF90aW1lb3V0
ID0gdGltZW91dCArIDUKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLndhaXQod2Fp
dF90aW1lb3V0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3YWl0X3RpbWVv
dXQgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5wcm9jLndhaXQoKQorCisgICAgICAgICAg
ICBwcm9jX2lzX3J1bm5pbmcgPSBUcnVlCisKKyAgICAgICAgICAgIGlmIHNlbGYucmVzdWx0X2Zs
YWcuaXNfc2V0KCk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5yZXN1bHRfZGF0YSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0
ZXN0LCBzZWxmLnJlc3VsdF9kYXRhKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYucHJvYy53YWl0KCkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
KHRlc3QucmVzdWx0X2NscygiQ1JBU0giLCBOb25lKSwgW10pCisgICAgICAgICAgICAgICAgICAg
IHByb2NfaXNfcnVubmluZyA9IEZhbHNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9ICh0ZXN0LnJlc3VsdF9jbHMoIlRJTUVPVVQiLCBOb25lKSwgW10pCisKKwor
ICAgICAgICAgICAgaWYgcHJvY19pc19ydW5uaW5nOgorICAgICAgICAgICAgICAgIGlmIHNlbGYu
cGF1c2VfYWZ0ZXJfdGVzdDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygi
UGF1c2luZyB1bnRpbCB0aGUgYnJvd3NlciBleGl0cyIpCisgICAgICAgICAgICAgICAgICAgIHNl
bGYucHJvYy53YWl0KCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLnByb2Mua2lsbCgpCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAg
ICAgICAgICAgIHNlbGYucHJvYy5raWxsKCkKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAg
cmV0dXJuIHJlc3VsdAorCisgICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKKyAgICAgICAg
cHJlZml4ID0gIkFMRVJUOiBSRVNVTFQ6ICIKKyAgICAgICAgbGluZSA9IGxpbmUuZGVjb2RlKCJ1
dGY4IiwgInJlcGxhY2UiKQorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgocHJlZml4KToKKyAg
ICAgICAgICAgIHNlbGYucmVzdWx0X2RhdGEgPSBqc29uLmxvYWRzKGxpbmVbbGVuKHByZWZpeCk6
XSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGlmIHNlbGYuaW50ZXJhY3RpdmU6CisgICAgICAgICAgICAgICAgcHJpbnQgbGlu
ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNz
X291dHB1dChzZWxmLnByb2MucGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiAiLmpvaW4oc2VsZi5jb21tYW5kKSkKKworICAgIGRlZiBvbl9maW5pc2goc2VsZik6Cisg
ICAgICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKKworCitjbGFzcyBUZW1wRmlsZW5hbWUob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGlyZWN0b3J5KToKKyAgICAgICAgc2VsZi5k
aXJlY3RvcnkgPSBkaXJlY3RvcnkKKyAgICAgICAgc2VsZi5wYXRoID0gTm9uZQorCisgICAgZGVm
IF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5wYXRoID0gb3MucGF0aC5qb2luKHNlbGYu
ZGlyZWN0b3J5LCBzdHIodXVpZC51dWlkNCgpKSkKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aAor
CisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIG9zLnVubGluayhzZWxmLnBhdGgpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9y
OgorICAgICAgICAgICAgcGFzcworCisKK2NsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nl
c3NUZXN0RXhlY3V0b3IpOgorICAgIGNvbnZlcnRfcmVzdWx0ID0gcmVmdGVzdF9yZXN1bHRfY29u
dmVydGVyCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywg
YmluYXJ5PU5vbmUsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBzY3Jl
ZW5zaG90X2NhY2hlPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxz
ZSwKKyAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgICAgICBQcm9jZXNzVGVzdEV4ZWN1
dG9yLl9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlw
bGllcj10aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVidWdfaW5mbz1kZWJ1Z19pbmZvKQorCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBD
b25uZWN0aW9ubGVzc1Byb3RvY29sKHNlbGYsIGJyb3dzZXIpCisgICAgICAgIHNlbGYuc2NyZWVu
c2hvdF9jYWNoZSA9IHNjcmVlbnNob3RfY2FjaGUKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlv
biA9IFJlZlRlc3RJbXBsZW1lbnRhdGlvbihzZWxmKQorICAgICAgICBzZWxmLnRlbXBkaXIgPSB0
ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgc2VsZi5ob3N0c19wYXRoID0gd3JpdGVfaG9zdHNf
ZmlsZShzZXJ2ZXJfY29uZmlnKQorCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBvcy51bmxpbmsoc2VsZi5ob3N0c19wYXRoKQorICAgICAgICBleGNl
cHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgb3Mucm1kaXIoc2VsZi50ZW1w
ZGlyKQorICAgICAgICBQcm9jZXNzVGVzdEV4ZWN1dG9yLnRlYXJkb3duKHNlbGYpCisKKyAgICBk
ZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkpOgorICAgICAgICBm
dWxsX3VybCA9IHNlbGYudGVzdF91cmwodGVzdCkKKworICAgICAgICB3aXRoIFRlbXBGaWxlbmFt
ZShzZWxmLnRlbXBkaXIpIGFzIG91dHB1dF9wYXRoOgorICAgICAgICAgICAgZGVidWdfYXJncywg
Y29tbWFuZCA9IGJyb3dzZXJfY29tbWFuZCgKKyAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeSwK
KyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsICIt
LWV4aXQiLAorICAgICAgICAgICAgICAgICAgICAiLXUiLCAiU2Vydm8vd3B0cnVubmVyIiwKKyAg
ICAgICAgICAgICAgICAgICAgIi1aIiwgImRpc2FibGUtdGV4dC1hYSxsb2FkLXdlYmZvbnRzLXN5
bmNocm9ub3VzbHkscmVwbGFjZS1zdXJyb2dhdGVzIiwKKyAgICAgICAgICAgICAgICAgICAgIi0t
b3V0cHV0PSVzIiAlIG91dHB1dF9wYXRoLCBmdWxsX3VybAorICAgICAgICAgICAgICAgIF0gKyBz
ZWxmLmJyb3dzZXIuYmluYXJ5X2FyZ3MsCisgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZv
KQorCisgICAgICAgICAgICBmb3Igc3R5bGVzaGVldCBpbiBzZWxmLmJyb3dzZXIudXNlcl9zdHls
ZXNoZWV0czoKKyAgICAgICAgICAgICAgICBjb21tYW5kICs9IFsiLS11c2VyLXN0eWxlc2hlZXQi
LCBzdHlsZXNoZWV0XQorCisgICAgICAgICAgICBmb3IgcHJlZiwgdmFsdWUgaW4gdGVzdC5lbnZp
cm9ubWVudC5nZXQoJ3ByZWZzJywge30pLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAgIGNv
bW1hbmQgKz0gWyItLXByZWYiLCAiJXM9JXMiICUgKHByZWYsIHZhbHVlKV0KKworICAgICAgICAg
ICAgY29tbWFuZCArPSBbIi0tcmVzb2x1dGlvbiIsIHZpZXdwb3J0X3NpemUgb3IgIjgwMHg2MDAi
XQorCisgICAgICAgICAgICBpZiBzZWxmLmJyb3dzZXIuY2FfY2VydGlmaWNhdGVfcGF0aDoKKyAg
ICAgICAgICAgICAgICBjb21tYW5kICs9IFsiLS1jZXJ0aWZpY2F0ZS1wYXRoIiwgc2VsZi5icm93
c2VyLmNhX2NlcnRpZmljYXRlX3BhdGhdCisKKyAgICAgICAgICAgIGlmIGRwaToKKyAgICAgICAg
ICAgICAgICBjb21tYW5kICs9IFsiLS1kZXZpY2UtcGl4ZWwtcmF0aW8iLCBkcGldCisKKyAgICAg
ICAgICAgICMgUnVuIHJlZiB0ZXN0cyBpbiBoZWFkbGVzcyBtb2RlCisgICAgICAgICAgICBjb21t
YW5kICs9IFsiLXoiXQorCisgICAgICAgICAgICBzZWxmLmNvbW1hbmQgPSBkZWJ1Z19hcmdzICsg
Y29tbWFuZAorCisgICAgICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICAg
ICAgZW52WyJIT1NUX0ZJTEUiXSA9IHNlbGYuaG9zdHNfcGF0aAorICAgICAgICAgICAgZW52WyJS
VVNUX0JBQ0tUUkFDRSJdID0gIjEiCisKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmludGVyYWN0
aXZlOgorICAgICAgICAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3NIYW5kbGVyKHNlbGYuY29t
bWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
T3V0cHV0TGluZT1bc2VsZi5vbl9vdXRwdXRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVudj1lbnYpCisKKworICAgICAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCisgICAgICAgICAgICAgICAgICAgIHRpbWVv
dXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciArIDUKKyAgICAgICAg
ICAgICAgICAgICAgcnYgPSBzZWxmLnByb2Mud2FpdCh0aW1lb3V0PXRpbWVvdXQpCisgICAgICAg
ICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAgICAgICBz
ZWxmLnByb2Mua2lsbCgpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5j
b21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
PWVudikKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJ2ID0gc2Vs
Zi5wcm9jLndhaXQoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jLmtpbGwoKQorICAgICAgICAgICAgICAgICAg
ICByYWlzZQorCisgICAgICAgICAgICBpZiBydiBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNl
bGYucHJvYy5raWxsKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsICgiRVhURVJOQUwt
VElNRU9VVCIsIE5vbmUpCisKKyAgICAgICAgICAgIGlmIHJ2ICE9IDAgb3Igbm90IG9zLnBhdGgu
ZXhpc3RzKG91dHB1dF9wYXRoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsICgiQ1JB
U0giLCBOb25lKQorCisgICAgICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X3BhdGgpIGFzIGY6Cisg
ICAgICAgICAgICAgICAgIyBNaWdodCBuZWVkIHRvIHN0cmlwIHZhcmlhYmxlIGhlYWRlcnMgb3Ig
c29tZXRoaW5nIGhlcmUKKyAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZSwgYmFzZTY0LmI2NGVuY29kZShkYXRhKQorCisgICAgZGVmIGRv
X3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24u
cnVuX3Rlc3QodGVzdCkKKworICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0
LCByZXN1bHQpCisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICBsaW5l
ID0gbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpCisgICAgICAgIGlmIHNlbGYuaW50ZXJh
Y3RpdmU6CisgICAgICAgICAgICBwcmludCBsaW5lCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnByb2MucGlkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIgIi5qb2luKHNlbGYuY29tbWFuZCkpCisKKworY2xhc3MgU2Vydm9E
cml2ZXJQcm90b2NvbChXZWJEcml2ZXJQcm90b2NvbCk6CisgICAgc2VydmVyX2NscyA9IFNlcnZv
RHJpdmVyU2VydmVyCisKKworY2xhc3MgU2Vydm9XZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVjdXRv
cik6CisgICAgcHJvdG9jb2xfY2xzID0gU2Vydm9Ecml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMjk2NGE3
ZDNhZmNlMjM2YWNmM2M4YmQ0M2Q4YThmZmJjMDRjMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKQEAgLTAsMCArMSwyNDMg
QEAKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCB0aHJlYWRp
bmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gLmJhc2UgaW1wb3J0IChQ
cm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCisgICAgICAgICAg
ICAgICAgICAgUmVmVGVzdEltcGxlbWVudGF0aW9uLAorICAgICAgICAgICAgICAgICAgIFRlc3Ro
YXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgc3RyaXBfc2VydmVyKQorZnJvbSAu
LnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKKword2ViZHJpdmVyID0gTm9uZQorCitoZXJlID0gb3Mu
cGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQorCitleHRyYV90aW1lb3V0ID0g
NQorCisKK2RlZiBkb19kZWxheWVkX2ltcG9ydHMoKToKKyAgICBnbG9iYWwgd2ViZHJpdmVyCisg
ICAgaW1wb3J0IHdlYmRyaXZlcgorCisKK2NsYXNzIFNlcnZvV2ViRHJpdmVyUHJvdG9jb2woUHJv
dG9jb2wpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvciwgYnJvd3NlciwgY2FwYWJp
bGl0aWVzLCAqKmt3YXJncyk6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCisgICAgICAg
IFByb3RvY29sLl9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyKQorICAgICAgICBzZWxm
LmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLmhvc3QgPSBicm93c2Vy
LndlYmRyaXZlcl9ob3N0CisgICAgICAgIHNlbGYucG9ydCA9IGJyb3dzZXIud2ViZHJpdmVyX3Bv
cnQKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gTm9uZQorCisgICAgZGVmIGNvbm5lY3Qoc2VsZik6
CisgICAgICAgICIiIkNvbm5lY3QgdG8gYnJvd3NlciB2aWEgV2ViRHJpdmVyLiIiIgorICAgICAg
ICB1cmwgPSAiaHR0cDovLyVzOiVkIiAlIChzZWxmLmhvc3QsIHNlbGYucG9ydCkKKyAgICAgICAg
c2VsZi5zZXNzaW9uID0gd2ViZHJpdmVyLlNlc3Npb24oc2VsZi5ob3N0LCBzZWxmLnBvcnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj13ZWJkcml2
ZXIuc2Vydm8uU2Vydm9Db21tYW5kRXh0ZW5zaW9ucykKKyAgICAgICAgc2VsZi5zZXNzaW9uLnN0
YXJ0KCkKKworICAgIGRlZiBhZnRlcl9jb25uZWN0KHNlbGYpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJIYW5naW5n
IHVwIG9uIFdlYkRyaXZlciBzZXNzaW9uIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2Vs
Zi5zZXNzaW9uLmVuZCgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBw
YXNzCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICMgR2V0IGEgc2ltcGxlIHByb3BlcnR5IG92ZXIgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgICAg
IHNlbGYuc2Vzc2lvbi53aW5kb3dfaGFuZGxlCisgICAgICAgICMgVE9ETyB3aGF0IGV4Y2VwdGlv
bj8KKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHdhaXQoc2VsZik6CisgICAgICAgIHdoaWxl
IFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5zZXNzaW9uLmV4
ZWN1dGVfYXN5bmNfc2NyaXB0KCIiKQorICAgICAgICAgICAgZXhjZXB0IHdlYmRyaXZlci5UaW1l
b3V0RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGV4Y2VwdCAo
c29ja2V0LnRpbWVvdXQsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZXJyb3IodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICAgICAgYnJlYWsKKwor
ICAgIGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uoc2VsZiwgb2xkX2Vudmlyb25tZW50LCBuZXdf
ZW52aXJvbm1lbnQpOgorICAgICAgICAjVW5zZXQgYWxsIHRoZSBvbGQgcHJlZnMKKyAgICAgICAg
c2VsZi5zZXNzaW9uLmV4dGVuc2lvbi5yZXNldF9wcmVmcygqb2xkX2Vudmlyb25tZW50LmdldCgi
cHJlZnMiLCB7fSkua2V5cygpKQorICAgICAgICBzZWxmLnNlc3Npb24uZXh0ZW5zaW9uLnNldF9w
cmVmcyhuZXdfZW52aXJvbm1lbnQuZ2V0KCJwcmVmcyIsIHt9KSkKKworCitjbGFzcyBTZXJ2b1dl
YkRyaXZlclJ1bihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBzZXNzaW9u
LCB1cmwsIHRpbWVvdXQsIGN1cnJlbnRfdGltZW91dD1Ob25lKToKKyAgICAgICAgc2VsZi5mdW5j
ID0gZnVuYworICAgICAgICBzZWxmLnJlc3VsdCA9IE5vbmUKKyAgICAgICAgc2VsZi5zZXNzaW9u
ID0gc2Vzc2lvbgorICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAgICBzZWxmLnRpbWVvdXQg
PSB0aW1lb3V0CisgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQor
CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFk
KHRhcmdldD1zZWxmLl9ydW4pCisgICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKKworICAgICAgICBm
bGFnID0gc2VsZi5yZXN1bHRfZmxhZy53YWl0KHNlbGYudGltZW91dCArIGV4dHJhX3RpbWVvdXQp
CisgICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgbm90
IGZsYWcKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9V
VCIsIE5vbmUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisKKyAgICBkZWYgX3J1bihz
ZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxm
LmZ1bmMoc2VsZi5zZXNzaW9uLCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQorICAgICAgICBleGNl
cHQgd2ViZHJpdmVyLlRpbWVvdXRFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorICAgICAgICBleGNlcHQgKHNvY2tl
dC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgi
Q1JBU0giLCBOb25lKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg
ICBtZXNzYWdlID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgaWYgbWVz
c2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKKyAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
RmFsc2UsICgiRVJST1IiLCBlKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5y
ZXN1bHRfZmxhZy5zZXQoKQorCisKK2RlZiB0aW1lb3V0X2Z1bmModGltZW91dCk6CisgICAgaWYg
dGltZW91dDoKKyAgICAgICAgdDAgPSB0aW1lLnRpbWUoKQorICAgICAgICByZXR1cm4gbGFtYmRh
OiB0aW1lLnRpbWUoKSAtIHQwID4gdGltZW91dCArIGV4dHJhX3RpbWVvdXQKKyAgICBlbHNlOgor
ICAgICAgICByZXR1cm4gbGFtYmRhOiBGYWxzZQorCisKK2NsYXNzIFNlcnZvV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCisgICAg
ICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRl
YnVnX2luZm89Tm9uZSwKKyAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgICAgICBUZXN0
aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRp
bWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlYnVnX2luZm89Tm9uZSkKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IFNlcnZvV2ViRHJpdmVy
UHJvdG9jb2woc2VsZiwgYnJvd3NlciwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykKKyAgICAg
ICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIu
anMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKKyAgICAgICAg
c2VsZi50aW1lb3V0ID0gTm9uZQorCisgICAgZGVmIG9uX3Byb3RvY29sX2NoYW5nZShzZWxmLCBu
ZXdfcHJvdG9jb2wpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKKworICAgIGRlZiBkb190ZXN0
KHNlbGYsIHRlc3QpOgorICAgICAgICB1cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAgICAg
ICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsgZXh0
cmFfdGltZW91dAorCisgICAgICAgIGlmIHRpbWVvdXQgIT0gc2VsZi50aW1lb3V0OgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbi50aW1lb3V0
cy5zY3JpcHQgPSB0aW1lb3V0CisgICAgICAgICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91
dAorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZXJyb3IoIkxvc3Qgd2ViZHJpdmVyIGNvbm5lY3Rpb24iKQorICAgICAgICAgICAgICAgIHJl
dHVybiBTdG9wCisKKyAgICAgICAgc3VjY2VzcywgZGF0YSA9IFNlcnZvV2ViRHJpdmVyUnVuKHNl
bGYuZG9fdGVzdGhhcm5lc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0KS5ydW4oKQorCisgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCBkYXRhKQorCisgICAgICAgIHJldHVybiAo
dGVzdC5yZXN1bHRfY2xzKCpkYXRhKSwgW10pCisKKyAgICBkZWYgZG9fdGVzdGhhcm5lc3Moc2Vs
Ziwgc2Vzc2lvbiwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSB1cmwKKyAg
ICAgICAgcmVzdWx0ID0ganNvbi5sb2FkcygKKyAgICAgICAgICAgIHNlc3Npb24uZXhlY3V0ZV9h
c3luY19zY3JpcHQoCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHQgJSB7ImFic191cmwiOiB1
cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVybCI6IHN0cmlwX3NlcnZlcih1
cmwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIi
OiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGltZW91dCI6IHRpbWVvdXQgKiAxMDAwfSkpCisgICAgICAgICMgUHJldmVudCBsZWFraW5n
IGV2ZXJ5IHBhZ2UgaW4gaGlzdG9yeSB1bnRpbCBTZXJ2byBkZXZlbG9wcyBhIG1vcmUgc2FuZQor
ICAgICAgICAjIHBhZ2UgY2FjaGUKKyAgICAgICAgc2Vzc2lvbi5iYWNrKCkKKyAgICAgICAgcmV0
dXJuIHJlc3VsdAorCisKK2NsYXNzIFRpbWVvdXRFcnJvcihFeGNlcHRpb24pOgorICAgIHBhc3MK
KworCitjbGFzcyBTZXJ2b1dlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3Ip
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0
X211bHRpcGxpZXI9MSwKKyAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBj
YXBhYmlsaXRpZXM9Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICAqKmt3
YXJncyk6CisgICAgICAgICIiIlNlbGVuaXVtIFdlYkRyaXZlci1iYXNlZCBleGVjdXRvciBmb3Ig
cmVmdGVzdHMiIiIKKyAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNjcmVlbnNob3RfY2FjaGU9c2NyZWVuc2hvdF9jYWNoZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8p
CisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBTZXJ2b1dlYkRyaXZlclByb3RvY29sKHNlbGYsIGJy
b3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
cGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24gPSBS
ZWZUZXN0SW1wbGVtZW50YXRpb24oc2VsZikKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gTm9uZQor
ICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LXdhaXRfd2ViZHJp
dmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFkKCkK
KworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wu
aXNfYWxpdmUoKQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKKyAg
ICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gdGVzdC5yZXN1bHRfY2xz
KCJDUkFTSCIsIE5vbmUpLCBbXQorICAgICAgICBleGNlcHQgVGltZW91dEVycm9yOgorICAgICAg
ICAgICAgcmV0dXJuIHRlc3QucmVzdWx0X2NscygiVElNRU9VVCIsIE5vbmUpLCBbXQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtZXNzYWdlID0gZ2V0YXR0cihl
LCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAg
ICBtZXNzYWdlICs9ICJcbiIKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1h
dF9leGMoZSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0LnJlc3VsdF9jbHMoIkVSUk9SIiwgbWVz
c2FnZSksIFtdCisKKyAgICBkZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXpl
LCBkcGkpOgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0cnVubmVyL2lzc3Vl
cy8xNjYKKyAgICAgICAgYXNzZXJ0IHZpZXdwb3J0X3NpemUgaXMgTm9uZQorICAgICAgICBhc3Nl
cnQgZHBpIGlzIE5vbmUKKworICAgICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91dCAqIHNlbGYu
dGltZW91dF9tdWx0aXBsaWVyICsgZXh0cmFfdGltZW91dAorICAgICAgICAgICAgICAgICAgIGlm
IHNlbGYuZGVidWdfaW5mbyBpcyBOb25lIGVsc2UgTm9uZSkKKworICAgICAgICBpZiBzZWxmLnRp
bWVvdXQgIT0gdGltZW91dDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxm
LnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAorICAgICAgICAgICAg
ICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgor
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0
aW9uIikKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorCisgICAgICAgIHJldHVybiBTZXJ2
b1dlYkRyaXZlclJ1bihzZWxmLl9zY3JlZW5zaG90LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVvdXQpLnJ1bigpCisKKyAgICBkZWYgX3NjcmVlbnNob3Qoc2VsZiwgc2Vzc2lv
biwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgc2Vzc2lvbi51cmwgPSB1cmwKKyAgICAgICAgc2Vz
c2lvbi5leGVjdXRlX2FzeW5jX3NjcmlwdChzZWxmLndhaXRfc2NyaXB0KQorICAgICAgICByZXR1
cm4gc2Vzc2lvbi5zY3JlZW5zaG90KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3J3ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Vi
a2l0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM3MjhhZTE4ZTAzYjA5ZjZjNjkwYmU4MmVmYzc4YmQwYzJmZjcz
NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Vi
a2l0LnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBX
ZWJLaXREcml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZWJE
cml2ZXJQcm90b2NvbAorCisKK2NsYXNzIFdlYktpdERyaXZlclByb3RvY29sKFdlYkRyaXZlclBy
b3RvY29sKToKKyAgICBzZXJ2ZXJfY2xzID0gV2ViS2l0RHJpdmVyU2VydmVyCisKKworY2xhc3Mg
V2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgorICAgIHByb3RvY29s
X2NscyA9IFdlYktpdERyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL3Byb2Nlc3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb2Nlc3MucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmI4YzE3YTk2YmEwNGNlNjAxYWQzY2I5YWQ0Yzc1ODhmOTQ3ZTk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvY2Vzcy5weQpAQCAtMCwwICsx
LDIwIEBACitmcm9tIC5iYXNlIGltcG9ydCBUZXN0RXhlY3V0b3IKKworCitjbGFzcyBQcm9jZXNz
VGVzdEV4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIFRlc3RFeGVjdXRvci5fX2luaXRfXyhzZWxmLCAqYXJncywg
Kiprd2FyZ3MpCisgICAgICAgIHNlbGYuYmluYXJ5ID0gc2VsZi5icm93c2VyLmJpbmFyeQorICAg
ICAgICBzZWxmLmludGVyYWN0aXZlID0gKEZhbHNlIGlmIHNlbGYuZGVidWdfaW5mbyBpcyBOb25l
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzZWxmLmRlYnVnX2luZm8uaW50ZXJh
Y3RpdmUpCisKKyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc2VsZi5ydW5u
ZXIgPSBydW5uZXIKKyAgICAgICAgc2VsZi5ydW5uZXIuc2VuZF9tZXNzYWdlKCJpbml0X3N1Y2Nl
ZWRlZCIpCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9wcm90b2NvbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGM2OWQyNGY1MjNmMjNlZGMzY2Y5ZjVlOTQ1NjZkYmM5MTM2NmEyMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKQEAgLTAs
MCArMSwyNzggQEAKK2ltcG9ydCB0cmFjZWJhY2sKK2Zyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBh
YnN0cmFjdG1ldGhvZAorCisKK2NsYXNzIFByb3RvY29sKG9iamVjdCk6CisgICAgIiIiQmFja2Vu
ZCBmb3IgYSBzcGVjaWZpYyBicm93c2VyLWNvbnRyb2wgcHJvdG9jb2wuCisKKyAgICBFYWNoIFBy
b3RvY29sIGlzIGNvbXBvc2VkIG9mIGEgc2V0IG9mIFByb3RvY29sUGFydHMgdGhhdCBpbXBsZW1l
bnQKKyAgICB0aGUgQVBJcyByZXF1aXJlZCBmb3Igc3BlY2lmaWMgaW50ZXJhY3Rpb25zLiBUaGlz
IHJlZmxlY3RzIHRoZSBmYWN0CisgICAgdGhhdCBub3QgYWxsIGltcGxlbWVudGFpb25zIHdpbGwg
c3VwcG9ydCBleGFjdGx5IHRoZSBzYW1lIGZlYXR1cmUgc2V0LgorICAgIEVhY2ggUHJvdG9jb2xQ
YXJ0IGlzIGV4cG9zZWQgZGlyZWN0bHkgb24gdGhlIHByb3RvY29sIHRocm91Z2ggYW4gYWNjZXNz
b3IKKyAgICBhdHRyaWJ1dGUgd2l0aCBhIG5hbWUgZ2l2ZW4gYnkgaXRzIGBuYW1lYCBwcm9wZXJ0
eS4KKworICAgIDpwYXJhbSBFeGVjdXRvciBleGVjdXRvcjogVGhlIEV4ZWN1dG9yIGluc3RhbmNl
IHRoYXQncyB1c2luZyB0aGlzIFByb3RvY29sCisgICAgOnBhcmFtIEJyb3dzZXIgYnJvd3Nlcjog
VGhlIEJyb3dzZXIgdXNpbmcgdGhpcyBwcm90b2NvbCIiIgorICAgIF9fbWV0YWNsYXNzX18gPSBB
QkNNZXRhCisKKyAgICBpbXBsZW1lbnRzID0gW10KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBl
eGVjdXRvciwgYnJvd3Nlcik6CisgICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgorICAg
ICAgICBzZWxmLmJyb3dzZXIgPSBicm93c2VyCisKKyAgICAgICAgZm9yIGNscyBpbiBzZWxmLmlt
cGxlbWVudHM6CisgICAgICAgICAgICBuYW1lID0gY2xzLm5hbWUKKyAgICAgICAgICAgIGFzc2Vy
dCBub3QgaGFzYXR0cihzZWxmLCBuYW1lKQorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1l
LCBjbHMoc2VsZikpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9nZ2VyKHNlbGYpOgorICAg
ICAgICAiIiI6cmV0dXJuczogQ3VycmVudCBsb2dnZXIiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
ZXhlY3V0b3IubG9nZ2VyCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6
CisgICAgICAgICIiIklzIHRoZSBicm93c2VyIGNvbm5lY3Rpb24gc3RpbGwgYWN0aXZlCisKKyAg
ICAgICAgOnJldHVybnM6IEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvbm5lY3Rp
b24gaXMgc3RpbGwgYWN0aXZlLiIiIgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHNl
dHVwKHNlbGYsIHJ1bm5lcik6CisgICAgICAgICIiIkhhbmRsZSBwcm90b2NvbCBzZXR1cCwgYW5k
IHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBydW5uZXIgdG8gaW5kaWNhdGUKKyAgICAgICAgc3VjY2Vz
cyBvciBmYWlsdXJlLiIiIgorICAgICAgICBtc2cgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIG1zZyA9ICJGYWlsZWQgdG8gc3RhcnQgcHJvdG9jb2wgY29ubmVjdGlvbiIKKyAgICAg
ICAgICAgIHNlbGYuY29ubmVjdCgpCisKKyAgICAgICAgICAgIG1zZyA9IE5vbmUKKworICAgICAg
ICAgICAgZm9yIGNscyBpbiBzZWxmLmltcGxlbWVudHM6CisgICAgICAgICAgICAgICAgZ2V0YXR0
cihzZWxmLCBjbHMubmFtZSkuc2V0dXAoKQorCisgICAgICAgICAgICBtc2cgPSAiUG9zdC1jb25u
ZWN0aW9uIHN0ZXBzIGZhaWxlZCIKKyAgICAgICAgICAgIHNlbGYuYWZ0ZXJfY29ubmVjdCgpCisg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBpZiBtc2cgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZyhtc2cpCisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5lcnJvcih0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICAgICAgc2Vs
Zi5leGVjdXRvci5ydW5uZXIuc2VuZF9tZXNzYWdlKCJpbml0X2ZhaWxlZCIpCisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucnVubmVy
LnNlbmRfbWVzc2FnZSgiaW5pdF9zdWNjZWVkZWQiKQorCisgICAgQGFic3RyYWN0bWV0aG9kCisg
ICAgZGVmIGNvbm5lY3Qoc2VsZik6CisgICAgICAgICIiIk1ha2UgYSBjb25uZWN0aW9uIHRvIHRo
ZSByZW1vdGUgYnJvd3NlciIiIgorICAgICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QK
KyAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxmKToKKyAgICAgICAgIiIiUnVuIGFueSBwb3N0LWNv
bm5lY3Rpb24gc3RlcHMuIFRoaXMgaGFwcGVucyBhZnRlciB0aGUgUHJvdG9jb2xQYXJ0cyBhcmUK
KyAgICAgICAgaW5pdGFsaXplZCBzbyBjYW4gZGVwZW5kIG9uIGEgZnVsbHktcG9wdWxhdGVkIG9i
amVjdC4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAg
ICAiIiJSdW4gY2xlYW51cCBzdGVwcyBhZnRlciB0aGUgdGVzdHMgYXJlIGZpbmlzaGVkLiIiIgor
ICAgICAgICBmb3IgY2xzIGluIHNlbGYuaW1wbGVtZW50czoKKyAgICAgICAgICAgIGdldGF0dHIo
c2VsZiwgY2xzLm5hbWUpLnRlYXJkb3duKCkKKworCitjbGFzcyBQcm90b2NvbFBhcnQob2JqZWN0
KToKKyAgICAiIiJCYXNlIGNsYXNzICBmb3IgYWxsIFByb3RvY29sUGFydHMuCisKKyAgICA6cGFy
YW0gUHJvdG9jb2wgcGFyZW50OiBUaGUgcGFyZW50IHByb3RvY29sIiIiCisgICAgX19tZXRhY2xh
c3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcGFyZW50KToKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBsb2dnZXIoc2VsZik6CisgICAgICAgICIiIjpyZXR1cm5zOiBDdXJyZW50IGxv
Z2dlciIiIgorICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQubG9nZ2VyCisKKyAgICBkZWYgc2V0
dXAoc2VsZik6CisgICAgICAgICIiIlJ1biBhbnkgc2V0dXAgc3RlcHMgcmVxdWlyZWQgZm9yIHRo
ZSBQcm90b2NvbFBhcnQuIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZWFyZG93bihzZWxm
KToKKyAgICAgICAgIiIiUnVuIGFueSB0ZWFyZG93biBzdGVwcyByZXF1aXJlZCBmb3IgdGhlIFBy
b3RvY29sUGFydC4iIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEJhc2VQcm90b2NvbFBhcnQo
UHJvdG9jb2xQYXJ0KToKKyAgICAiIiJHZW5lcmljIGJpdHMgb2YgcHJvdG9jb2wgdGhhdCBhcmUg
cmVxdWlyZWQgZm9yIG11bHRpcGxlIHRlc3QgdHlwZXMiIiIKKyAgICBfX21ldGFjbGFzc19fID0g
QUJDTWV0YQorCisgICAgbmFtZSA9ICJiYXNlIgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAg
ZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9RmFsc2UpOgorICAgICAgICAi
IiJFeGVjdXRlIGphdmFzY3JpcHQgaW4gdGhlIGN1cnJlbnQgV2luZG93LgorCisgICAgICAgIDpw
YXJhbSBzdHIgc2NyaXB0OiBUaGUganMgc291cmNlIHRvIGV4ZWN1dGUuIFRoaXMgaXMgaW1wbGlj
aXRseSB3cmFwcGVkIGluIGEgZnVuY3Rpb24uCisgICAgICAgIDpwYXJhbSBib29sIGFzeW5jOiBX
aGV0aGVyIHRoZSBzY3JpcHQgaXMgYXN5bmNocm9ub3VzIGluIHRoZSB3ZWJkcml2ZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbnNlIGkuZS4gd2hldGhlciB0aGUgcmV0dXJuIHZhbHVl
IGlzIHRoZSByZXN1bHQgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbml0aWFs
IGZ1bmN0aW9uIGNhbGwgb3IgaWYgaXQgd2FpdHMgZm9yIHNvbWUgY2FsbGJhY2suCisgICAgICAg
IDpyZXR1cm5zOiBUaGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQgZXhlY3V0aW9uLgorICAgICAgICAi
IiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHNldF90aW1l
b3V0KHNlbGYsIHRpbWVvdXQpOgorICAgICAgICAiIiJTZXQgdGhlIHRpbWVvdXQgZm9yIHNjcmlw
dCBleGVjdXRpb24uCisKKyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IFNjcmlwdCB0aW1lb3V0IGlu
IHNlY29uZHMiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVm
IHdhaXQoc2VsZik6CisgICAgICAgICIiIldhaXQgaW5kZWZpbml0ZWx5IGZvciB0aGUgYnJvd3Nl
ciB0byBjbG9zZSIiIgorICAgICAgICBwYXNzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3Vy
cmVudF93aW5kb3coc2VsZik6CisgICAgICAgICIiIlJldHVybiBhIGhhbmRsZSBpZGVudGlmeWlu
ZyB0aGUgY3VycmVudCB0b3AgbGV2ZWwgYnJvd3NpbmcgY29udGV4dAorCisgICAgICAgIDpyZXR1
cm5zOiBBIHByb3RvY29sLXNwZWNpZmljIGhhbmRsZSIiIgorICAgICAgICBwYXNzCisKKyAgICBA
YWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc2V0X3dpbmRvdyhzZWxmLCBoYW5kbGUpOgorICAgICAg
ICAiIiJTZXQgdGhlIHRvcCBsZXZlbCBicm93c2luZyBjb250ZXh0IHRvIG9uZSBzcGVjaWZpZWQg
YnkgYSBnaXZlbiBoYW5kbGUuCisKKyAgICAgICAgOnBhcmFtIGhhbmRsZTogQSBwcm90b2NvbC1z
cGVjaWZpYyBoYW5kbGUgaWRlbnRpZnlpbmcgYSB0b3AgbGV2ZWwgYnJvd3NpbmcKKyAgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dC4iIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFRlc3Ro
YXJuZXNzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBy
ZXF1aXJlZCB0byBydW4gdGVzdGhhcm5lc3MgdGVzdHMuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9
IEFCQ01ldGEKKworICAgIG5hbWUgPSAidGVzdGhhcm5lc3MiCisKKyAgICBAYWJzdHJhY3RtZXRo
b2QKKyAgICBkZWYgbG9hZF9ydW5uZXIoc2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAgICAgIiIi
TG9hZCB0aGUgaW5pdGlhbCBwYWdlIHVzZWQgdG8gY29udHJvbCB0aGUgdGVzdHMuCisKKyAgICAg
ICAgOnBhcmFtIHN0ciB1cmxfcHJvdG9jb2w6ICJodHRwcyIgb3IgImh0dHAiIGRlcGVuZGluZyBv
biB0aGUgdGVzdCBtZXRhZGF0YS4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBjbG9zZV9vbGRfd2luZG93cyhzZWxmLCB1cmxfcHJvdG9j
b2wpOgorICAgICAgICAiIiJDbG9zZSBleGlzdGluZyB3aW5kb3dzIGV4Y2VwdCBmb3IgdGhlIGlu
aXRpYWwgcnVubmVyIHdpbmRvdy4KKyAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCB0
aGVyZSBtdXN0IGJlIGV4YWN0bHkgb25lIG9wZW4gd2luZG93IHRoYXQKKyAgICAgICAgY29udGFp
bnMgdGhlIGluaXRpYWwgcnVubmVyIHBhZ2UuCisKKyAgICAgICAgOnBhcmFtIHN0ciB1cmxfcHJv
dG9jb2w6ICJodHRwcyIgb3IgImh0dHAiIGRlcGVuZGluZyBvbiB0aGUgdGVzdCBtZXRhZGF0YS4K
KyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRl
ZiBnZXRfdGVzdF93aW5kb3coc2VsZiwgd2luZG93X2lkLCBwYXJlbnQpOgorICAgICAgICAiIiJH
ZXQgdGhlIHdpbmRvdyBoYW5kbGUgZG9ycmVzcG9uZGluZyB0byB0aGUgd2luZG93IGNvbnRhaW5p
bmcgdGhlCisgICAgICAgIGN1cnJlbnRseSBhY3RpdmUgdGVzdC4KKworICAgICAgICA6cGFyYW0g
d2luZG93X2lkOiBBIHN0cmluZyBjb250YWluaW5nIHRoZSBET00gbmFtZSBvZiB0aGUgV2luZG93
IHRoYXQKKyAgICAgICAgY29udGFpbnMgdGhlIHRlc3QsIG9yIE5vbmUuCisgICAgICAgIDpwYXJh
bSBwYXJlbnQ6IFRoZSBoYW5kbGUgb2YgdGhlIHJ1bm5lciB3aW5kb3cuCisgICAgICAgIDpyZXR1
cm5zOiBBIHByb3RvY29sLXNwZWNpZmljIHdpbmRvdyBoYW5kbGUuCisgICAgICAgICIiIgorICAg
ICAgICBwYXNzCisKKworY2xhc3MgUHJlZnNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAg
ICAiIiJQcm90b2NvbCBwYXJ0IHRoYXQgYWxsb3dzIGdldHRpbmcgYW5kIHNldHRpbmcgYnJvd3Nl
ciBwcmVmcy4iIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJw
cmVmcyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBzZXQoc2VsZiwgbmFtZSwgdmFs
dWUpOgorICAgICAgICAiIiJTZXQgdGhlIG5hbWVkIHByZWYgdG8gdmFsdWUuCisKKyAgICAgICAg
OnBhcmFtIG5hbWU6IEEgcHJlZiBuYW1lIG9mIGJyb3dzZXItc3BlY2lmaWMgdHlwZQorICAgICAg
ICA6cGFyYW0gdmFsdWU6IEEgcHJlZiB2YWx1ZSBvZiBicm93c2VyLXNwZWNpZmljIHR5cGUiIiIK
KyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGdldChzZWxmLCBu
YW1lKToKKyAgICAgICAgIiIiR2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIGEgbmFtZWQgcHJlZgor
CisgICAgICAgIDpwYXJhbSBuYW1lOiBBIHByZWYgbmFtZSBvZiBicm93c2VyLXNwZWNpZmljIHR5
cGUKKyAgICAgICAgOnJldHVybnM6IEEgcHJlZiB2YWx1ZSBvZiBicm93c2VyLXNwZWNpZmljIHR5
cGUiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGNsZWFy
KHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJSZXNldCB0aGUgdmFsdWUgb2YgYSBuYW1lZCBwcmVm
IGJhY2sgdG8gdGhlIGRlZmF1bHQuCisKKyAgICAgICAgOnBhcmFtIG5hbWU6IEEgcHJlZiBuYW1l
IG9mIGJyb3dzZXItc3BlY2lmaWMgdHlwZSIiIgorICAgICAgICBwYXNzCisKKworY2xhc3MgU3Rv
cmFnZVByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9y
IG1hbmlwdWxhdGluZyBicm93c2VyIHN0b3JhZ2UuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKKworICAgIG5hbWUgPSAic3RvcmFnZSIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAg
IGRlZiBjbGVhcl9vcmlnaW4oc2VsZiwgdXJsKToKKyAgICAgICAgIiIiQ2xlYXIgYWxsIHRoZSBz
dG9yYWdlIGZvciBhIHNwZWNpZmllZCBvcmlnaW4uCisKKyAgICAgICAgOnBhcmFtIHVybDogQSB1
cmwgYmVsb25naW5nIHRvIHRoZSBvcmlnaW4iIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFNl
bGVjdG9yUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBm
b3Igc2VsZWN0aW5nIGVsZW1lbnRzIG9uIHRoZSBwYWdlLiIiIgorICAgIF9fbWV0YWNsYXNzX18g
PSBBQkNNZXRhCisKKyAgICBuYW1lID0gInNlbGVjdCIKKworICAgIEBhYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBlbGVtZW50c19ieV9zZWxlY3RvcihzZWxmLCBzZWxlY3Rvcik6CisgICAgICAgICIi
IlNlbGVjdCBlbGVtZW50cyBtYXRjaGluZyBhIENTUyBzZWxlY3RvcgorCisgICAgICAgIDpwYXJh
bSBzdHIgc2VsZWN0b3I6IFRoZSBDU1Mgc2VsZWN0b3IKKyAgICAgICAgOnJldHVybnM6IEEgbGlz
dCBvZiBwcm90b2NvbC1zcGVjaWZpYyBoYW5kbGVzIHRvIGVsZW1lbnRzIiIiCisgICAgICAgIHBh
c3MKKworCitjbGFzcyBDbGlja1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgorICAgICIiIlBy
b3RvY29sIHBhcnQgZm9yIHBlcmZvcm1pbmcgdHJ1c3RlZCBjbGlja3MiIiIKKyAgICBfX21ldGFj
bGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJjbGljayIKKworICAgIEBhYnN0cmFjdG1l
dGhvZAorICAgIGRlZiBlbGVtZW50KHNlbGYsIGVsZW1lbnQpOgorICAgICAgICAiIiJQZXJmb3Jt
IGEgdHJ1c3RlZCBjbGljayBzb21ld2hlcmUgb24gYSBzcGVjaWZpYyBlbGVtZW50LgorCisgICAg
ICAgIDpwYXJhbSBlbGVtZW50OiBBIHByb3RvY29sLXNwZWNpZmljIGhhbmRsZSB0byBhbiBlbGVt
ZW50LiIiIgorICAgICAgICBwYXNzCisKKworY2xhc3MgVGVzdERyaXZlclByb3RvY29sUGFydChQ
cm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBi
YXNpYyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIGZvcgorICAgIGFsbCB0ZXN0ZHJpdmVyLWJhc2Vk
IHRlc3RzLiIiIgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBuYW1lID0gInRl
c3Rkcml2ZXIiCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNl
bGYsIG1lc3NhZ2VfdHlwZSwgc3RhdHVzLCBtZXNzYWdlPU5vbmUpOgorICAgICAgICAiIiJTZW5k
IGEgdGVzdGRyaXZlciBtZXNzYWdlIHRvIHRoZSBicm93c2VyLgorCisgICAgICAgIDpwYXJhbSBz
dHIgbWVzc2FnZV90eXBlOiBUaGUga2luZCBvZiB0aGUgbWVzc2FnZS4KKyAgICAgICAgOnBhcmFt
IHN0ciBzdGF0dXM6IEVpdGhlciAiZmFpbHVyZSIgb3IgInN1Y2Nlc3MiIGRlcGVuZGluZyBvbiB3
aGV0aGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgY29tbWFuZCBz
dWNjZWVkZWQuCisgICAgICAgIDpwYXJhbSBzdHIgbWVzc2FnZTogQWRkaXRpb25hbCBkYXRhIHRv
IGFkZCB0byB0aGUgbWVzc2FnZS4iIiIKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTJiM2E4MTUx
ZGE3ZDBjNmRhZTlkZjlmNmExYmM3NzA5YjJjYmFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAor
ZnJvbSAucnVubmVyIGltcG9ydCBydW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0
cnVubmVyL3J1bm5lci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWFiZjI3ZjQ3ZjljMWViM2E4MjY5ZDg5OTg1
MGQxNDJmN2FlNzc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9w
eXRlc3RydW5uZXIvcnVubmVyLnB5CkBAIC0wLDAgKzEsMTM2IEBACisiIiIKK1Byb3ZpZGVzIGlu
dGVyZmFjZSB0byBkZWFsIHdpdGggcHl0ZXN0LgorCitVc2FnZTo6CisKKyAgICBzZXNzaW9uID0g
d2ViZHJpdmVyLmNsaWVudC5TZXNzaW9uKCIxMjcuMC4wLjEiLCAiNDQ0NCIsICIvIikKKyAgICBo
YXJuZXNzX3Jlc3VsdCA9ICgiT0siLCBOb25lKQorICAgIHN1YnRlc3RfcmVzdWx0cyA9IHB5dGVz
dHJ1bm5lci5ydW4oIi9wYXRoL3RvL3Rlc3QiLCBzZXNzaW9uLnVybCkKKyAgICByZXR1cm4gKGhh
cm5lc3NfcmVzdWx0LCBzdWJ0ZXN0X3Jlc3VsdHMpCisiIiIKKworaW1wb3J0IGVycm5vCitpbXBv
cnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgdGVtcGZpbGUKKworCitw
eXRlc3QgPSBOb25lCisKKworZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgorICAgIGdsb2JhbCBw
eXRlc3QKKyAgICBpbXBvcnQgcHl0ZXN0CisKKworZGVmIHJ1bihwYXRoLCBzZXJ2ZXJfY29uZmln
LCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wKToKKyAgICAiIiIKKyAgICBSdW4gUHl0aG9uIHRl
c3QgYXQgYGBwYXRoYGAgaW4gcHl0ZXN0LiAgVGhlIHByb3ZpZGVkIGBgc2Vzc2lvbmBgCisgICAg
aXMgZXhwb3NlZCBhcyBhIGZpeHR1cmUgYXZhaWxhYmxlIGluIHRoZSBzY29wZSBvZiB0aGUgdGVz
dCBmdW5jdGlvbnMuCisKKyAgICA6cGFyYW0gcGF0aDogUGF0aCB0byB0aGUgdGVzdCBmaWxlLgor
ICAgIDpwYXJhbSBzZXNzaW9uX2NvbmZpZzogZGljdGlvbmFyeSBvZiBob3N0LCBwb3J0LGNhcGFi
aWxpdGllcyBwYXJhbWV0ZXJzCisgICAgdG8gcGFzcyB0aHJvdWdoIHRvIHRoZSB3ZWJkcml2ZXIg
c2Vzc2lvbgorICAgIDpwYXJhbSB0aW1lb3V0OiBEdXJhdGlvbiBiZWZvcmUgaW50ZXJydXB0aW5n
IHBvdGVudGlhbGx5IGhhbmdpbmcKKyAgICAgICAgdGVzdHMuICBJZiAwLCB0aGVyZSBpcyBubyB0
aW1lb3V0LgorCisgICAgOnJldHVybnM6ICg8aGFybmVzcyByZXN1bHQ+LCBbPHN1YnRlc3QgcmVz
dWx0PiwgLi4uXSksCisgICAgICAgIHdoZXJlIDxzdWJ0ZXN0IHJlc3VsdD4gaXMgKHRlc3QgaWQs
IHN0YXR1cywgbWVzc2FnZSwgc3RhY2t0cmFjZSkuCisgICAgIiIiCisgICAgaWYgcHl0ZXN0IGlz
IE5vbmU6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCisKKyAgICBvcy5lbnZpcm9uWyJX
RF9IT1NUIl0gPSBzZXNzaW9uX2NvbmZpZ1siaG9zdCJdCisgICAgb3MuZW52aXJvblsiV0RfUE9S
VCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCisgICAgb3MuZW52aXJvblsiV0RfQ0FQ
QUJJTElUSUVTIl0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRpZXMiXSkK
KyAgICBvcy5lbnZpcm9uWyJXRF9TRVJWRVJfQ09ORklHIl0gPSBqc29uLmR1bXBzKHNlcnZlcl9j
b25maWcpCisKKyAgICBoYXJuZXNzID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKKyAgICBzdWJ0
ZXN0cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRlcigpCisKKyAgICB3aXRoIFRlbXBvcmFyeURpcmVj
dG9yeSgpIGFzIGNhY2hlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBweXRlc3QubWFpbihb
Ii0tc3RyaWN0IiwgICMgdHVybiB3YXJuaW5ncyBpbnRvIGVycm9ycworICAgICAgICAgICAgICAg
ICAgICAgICAgICItdnYiLCAgIyBzaG93IGVhY2ggaW5kaXZpZHVhbCBzdWJ0ZXN0IGFuZCBmdWxs
IGZhaWx1cmUgbG9ncworICAgICAgICAgICAgICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8i
LCAgIyBlbmFibGUgc3Rkb3V0L3N0ZGVyciBmcm9tIHRlc3RzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIi0tYmFzZXRlbXAiLCBjYWNoZSwgICMgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAg
ICAgICAgICAgICAgICAgICAgICItLXNob3dsb2NhbHMiLCAgIyBkaXNwbGF5IGNvbnRlbnRzIG9m
IHZhcmlhYmxlcyBpbiBsb2NhbCBzY29wZQorICAgICAgICAgICAgICAgICAgICAgICAgICItcCIs
ICJubzptb3psb2ciLCAgIyB1c2UgdGhlIFdQVCByZXN1bHQgcmVjb3JkZXIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAiLXAiLCAibm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUg
cHJlc2VydmF0aW9uIGFjcm9zcyBpbnZvY2F0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAg
ICItbz1jb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljIiwgICMgZGlzYWJsZSB0ZXN0IHByb2dy
ZXNzIGJhcgorICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcGx1Z2lucz1baGFybmVzcywgc3VidGVzdHNdKQorICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBoYXJuZXNzLm91dGNvbWUgPSAoIkVSUk9SIiwgc3Ry
KGUpKQorCisgICAgcmV0dXJuIChoYXJuZXNzLm91dGNvbWUsIHN1YnRlc3RzLnJlc3VsdHMpCisK
KworY2xhc3MgSGFybmVzc1Jlc3VsdFJlY29yZGVyKG9iamVjdCk6CisgICAgb3V0Y29tZXMgPSB7
CisgICAgICAgICJmYWlsZWQiOiAiRVJST1IiLAorICAgICAgICAicGFzc2VkIjogIk9LIiwKKyAg
ICAgICAgInNraXBwZWQiOiAiU0tJUCIsCisgICAgfQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgorICAgICAgICAjIHdlIGFyZSBvayB1bmxlc3MgdG9sZCBvdGhlcndpc2UKKyAgICAgICAgc2Vs
Zi5vdXRjb21lID0gKCJPSyIsIE5vbmUpCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQo
c2VsZiwgcmVwb3J0KToKKyAgICAgICAgaGFybmVzc19yZXN1bHQgPSBzZWxmLm91dGNvbWVzW3Jl
cG9ydC5vdXRjb21lXQorICAgICAgICBzZWxmLm91dGNvbWUgPSAoaGFybmVzc19yZXN1bHQsIE5v
bmUpCisKKworY2xhc3MgU3VidGVzdFJlc3VsdFJlY29yZGVyKG9iamVjdCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnJlc3VsdHMgPSBbXQorCisgICAgZGVmIHB5dGVz
dF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICBpZiByZXBvcnQucGFz
c2VkIGFuZCByZXBvcnQud2hlbiA9PSAiY2FsbCI6CisgICAgICAgICAgICBzZWxmLnJlY29yZF9w
YXNzKHJlcG9ydCkKKyAgICAgICAgZWxpZiByZXBvcnQuZmFpbGVkOgorICAgICAgICAgICAgaWYg
cmVwb3J0LndoZW4gIT0gImNhbGwiOgorICAgICAgICAgICAgICAgIHNlbGYucmVjb3JkX2Vycm9y
KHJlcG9ydCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5yZWNvcmRf
ZmFpbChyZXBvcnQpCisgICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6CisgICAgICAgICAgICBz
ZWxmLnJlY29yZF9za2lwKHJlcG9ydCkKKworICAgIGRlZiByZWNvcmRfcGFzcyhzZWxmLCByZXBv
cnQpOgorICAgICAgICBzZWxmLnJlY29yZChyZXBvcnQubm9kZWlkLCAiUEFTUyIpCisKKyAgICBk
ZWYgcmVjb3JkX2ZhaWwoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgc2VsZi5yZWNvcmQocmVwb3J0
Lm5vZGVpZCwgIkZBSUwiLCBzdGFjaz1yZXBvcnQubG9uZ3JlcHIpCisKKyAgICBkZWYgcmVjb3Jk
X2Vycm9yKHNlbGYsIHJlcG9ydCk6CisgICAgICAgICMgZXJyb3IgaW4gc2V0dXAvdGVhcmRvd24K
KyAgICAgICAgaWYgcmVwb3J0LndoZW4gIT0gImNhbGwiOgorICAgICAgICAgICAgbWVzc2FnZSA9
ICIlcyBlcnJvciIgJSByZXBvcnQud2hlbgorICAgICAgICBzZWxmLnJlY29yZChyZXBvcnQubm9k
ZWlkLCAiRVJST1IiLCBtZXNzYWdlLCByZXBvcnQubG9uZ3JlcHIpCisKKyAgICBkZWYgcmVjb3Jk
X3NraXAoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgc2VsZi5yZWNvcmQocmVwb3J0Lm5vZGVpZCwg
IkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgIkluLXRlc3Qgc2tpcCBkZWNvcmF0b3JzIGFy
ZSBkaXNhbGxvd2VkLCAiCisgICAgICAgICAgICAgICAgICAgICJwbGVhc2UgdXNlIFdQVCBtZXRh
ZGF0YSB0byBpZ25vcmUgdGVzdHMuIikKKworICAgIGRlZiByZWNvcmQoc2VsZiwgdGVzdCwgc3Rh
dHVzLCBtZXNzYWdlPU5vbmUsIHN0YWNrPU5vbmUpOgorICAgICAgICBpZiBzdGFjayBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHN0YWNrID0gc3RyKHN0YWNrKQorICAgICAgICBuZXdfcmVzdWx0
ID0gKHRlc3Quc3BsaXQoIjo6IilbLTFdLCBzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrKQorICAgICAg
ICBzZWxmLnJlc3VsdHMuYXBwZW5kKG5ld19yZXN1bHQpCisKKworY2xhc3MgVGVtcG9yYXJ5RGly
ZWN0b3J5KG9iamVjdCk6CisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5w
YXRoID0gdGVtcGZpbGUubWtkdGVtcChwcmVmaXg9InB5dGVzdC0iKQorICAgICAgICByZXR1cm4g
c2VsZi5wYXRoCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYucGF0aCkKKyAgICAgICAgZXhjZXB0IE9T
RXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorICAg
ICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICAgICAgcmFp
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjBkYThhMDg4MDE2ZWJmM2UyMDg1M2Q3MzRmMmExOTI3MzFhZGU0
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVy
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcHl0ZXN0cnVubmVyL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9weXRlc3RydW5uZXIvcnVubmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3JlZnRlc3Qtd2FpdF9tYXJpb25ldHRlLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9y
ZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjI2MDI3MjgxZTI3MTE0ZTc4
MzliMmViZTI4Zjg0MmJlY2RkNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5j
dGlvbiB0ZXN0KHgpIHsKKyAgaWYgKCFyb290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13
YWl0IikpIHsKKyAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgICAgbWFyaW9uZXR0ZVNjcmlw
dEZpbmlzaGVkKCk7CisgIH0KK30KKwordmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQ7Cit2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0ZXN0KTsKKworb2JzZXJ2
ZXIub2JzZXJ2ZShyb290LCB7YXR0cmlidXRlczogdHJ1ZX0pOworCitpZiAoZG9jdW1lbnQucmVh
ZHlTdGF0ZSAhPSAiY29tcGxldGUiKSB7CisgIG9ubG9hZCA9IHRlc3QKK30gZWxzZSB7CisgIHRl
c3QoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0
X3dlYmRyaXZlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dlYmRy
aXZlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMWNjNjQ5ZTMyM2Y5NzQyMzk2YjczZTMwMWZmMzA2MjcxYjE2
MGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LXdh
aXRfd2ViZHJpdmVyLmpzCkBAIC0wLDAgKzEsNDQgQEAKK3ZhciBjYWxsYmFjayA9IGFyZ3VtZW50
c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CisKK2Z1bmN0aW9uIHJvb3Rfd2FpdCgpIHsKKyAgaWYg
KCFyb290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKKyAgICBvYnNlcnZl
ci5kaXNjb25uZWN0KCk7CisKKyAgICBpZiAoRG9jdW1lbnQucHJvdG90eXBlLmhhc093blByb3Bl
cnR5KCJmb250cyIpKSB7CisgICAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKHJlYWR5X2Zv
cl9zY3JlZW5zaG90KTsKKyAgICB9IGVsc2UgeworICAgICAgLy8gVGhpcyBtaWdodCB0YWtlIHRo
ZSBzY3JlZW5zaG90IHRvbyBlYXJseSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCisgICAgICAv
LyBsb2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVpbmcgbG9hZGVkLiBTZWU6CisgICAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMTA4OAorICAg
ICAgcmVhZHlfZm9yX3NjcmVlbnNob3QoKTsKKyAgICB9CisgIH0KK30KKworZnVuY3Rpb24gcmVh
ZHlfZm9yX3NjcmVlbnNob3QoKSB7CisgIC8vIEFzIG9mIDIwMTctMDQtMDUsIHRoZSBDaHJvbWl1
bSB3ZWIgYnJvd3NlciBleGhpYml0cyBhIHJlbmRlcmluZyBidWcKKyAgLy8gKGh0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTcwODc1NykgdGhhdAor
ICAvLyBwcm9kdWNlcyBpbnN0YWJpbGl0eSBkdXJpbmcgc2NyZWVuIGNhcHR1cmUuIFRoZSBmb2xs
b3dpbmcgdXNlIG9mCisgIC8vIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIGlzIGludGVuZGVkIGFz
IGEgc2hvcnQtdGVybSB3b3JrYXJvdW5kLCB0aG91Z2gKKyAgLy8gaXQgaXMgbm90IGd1YXJhbnRl
ZWQgdG8gcmVzb2x2ZSB0aGUgaXNzdWUuCisgIC8vCisgIC8vIEZvciBmdXJ0aGVyIGRldGFpbCwg
c2VlOgorICAvLyBodHRwczovL2dpdGh1Yi5jb20vanVnZ2xpbm1pa2UvY2hyb21lLXNjcmVlbnNo
b3QtcmFjZS9pc3N1ZXMvMQorCisgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
KyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICBjYWxsYmFjaygp
OworICAgIH0pOworICB9KTsKK30KKwordmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQ7Cit2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihyb290X3dhaXQpOworCitv
YnNlcnZlci5vYnNlcnZlKHJvb3QsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CisKK2lmIChkb2N1bWVu
dC5yZWFkeVN0YXRlICE9ICJjb21wbGV0ZSIpIHsKKyAgICBvbmxvYWQgPSByb290X3dhaXQ7Cit9
IGVsc2UgeworICAgIHJvb3Rfd2FpdCgpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9yZWZ0ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViZDVjNjA5Y2JkNWU3OTk3ODdjOTNiYWM2NzNmYjhlMzkyYTdjMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3QuanMKQEAgLTAsMCAr
MSBAQAordmFyIHdpbiA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIsICJ0ZXN0IiwgIndpZHRo
PTYwMCxoZWlnaHQ9NjAwIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rl
c3RoYXJuZXNzX21hcmlvbmV0dGUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJu
ZXNzX21hcmlvbmV0dGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ5Y2FhNDY4OGM1Nzg1MzZlMzhiMjU0MGMz
ZGI0OTEyMzRmMGYxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
dGVzdGhhcm5lc3NfbWFyaW9uZXR0ZS5qcwpAQCAtMCwwICsxLDI0IEBACit3aW5kb3cudGltZW91
dF9tdWx0aXBsaWVyID0gJSh0aW1lb3V0X211bHRpcGxpZXIpZDsKK3dpbmRvdy5leHBsaWNpdF90
aW1lb3V0ID0gJShleHBsaWNpdF90aW1lb3V0KWQ7CisKK3dpbmRvdy5tZXNzYWdlX3F1ZXVlID0g
W107CisKK3dpbmRvdy5zZXRNZXNzYWdlTGlzdGVuZXIgPSBmdW5jdGlvbihmdW5jKSB7CisgIHdp
bmRvdy5jdXJyZW50X2xpc3RlbmVyID0gZnVuYzsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
CisgICAgIm1lc3NhZ2UiLAorICAgIGZ1bmMsCisgICAgZmFsc2UKKyAgKTsKK307CisKK3dpbmRv
dy5zZXRNZXNzYWdlTGlzdGVuZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgd2luZG93Lm1lc3NhZ2Vf
cXVldWUucHVzaChldmVudCk7Cit9KTsKKword2luZG93LndpbiA9IHdpbmRvdy5vcGVuKCIlKGFi
c191cmwpcyIsICIlKHdpbmRvd19pZClzIik7CisKK3dpbmRvdy50aW1lciA9IHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgIHdpbmRvdy53aW4udGltZW91dCgpOworICB3aW5kb3cud2luLmNsb3Nl
KCk7Cit9LCAlKHRpbWVvdXQpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3Rlc3RoYXJuZXNzX21hcmlvbmV0dGVfcmVzdW1lLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy90ZXN0aGFybmVzc19tYXJpb25ldHRlX3Jlc3VtZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTJkZjk4ZWQ0
ZTczYmY0NjE4YjE2OWFhMjk3ZjBjMDc1ZmY4YTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc19tYXJpb25ldHRlX3Jlc3VtZS5qcwpAQCAtMCww
ICsxLDQ2IEBACit2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFd
OworCitmdW5jdGlvbiBwcm9jZXNzX2V2ZW50KGV2ZW50KSB7CisgIHZhciBkYXRhID0gZXZlbnQu
ZGF0YTsKKworICB2YXIgcGF5bG9hZCA9IHVuZGVmaW5lZDsKKworICBzd2l0Y2goZGF0YS50eXBl
KSB7CisgIGNhc2UgImNvbXBsZXRlIjoKKyAgICB2YXIgdGVzdHMgPSBldmVudC5kYXRhLnRlc3Rz
OworICAgIHZhciBzdGF0dXMgPSBldmVudC5kYXRhLnN0YXR1czsKKworICAgIHZhciBzdWJ0ZXN0
X3Jlc3VsdHMgPSB0ZXN0cy5tYXAoZnVuY3Rpb24oeCkgeworICAgICAgcmV0dXJuIFt4Lm5hbWUs
IHguc3RhdHVzLCB4Lm1lc3NhZ2UsIHguc3RhY2tdOworICAgIH0pOworICAgIHBheWxvYWQgPSBb
c3RhdHVzLnN0YXR1cywKKyAgICAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlLAorICAgICAgICAg
ICAgICAgc3RhdHVzLnN0YWNrLAorICAgICAgICAgICAgICAgc3VidGVzdF9yZXN1bHRzXTsKKyAg
ICBjbGVhclRpbWVvdXQod2luZG93LnRpbWVyKTsKKyAgICBicmVhazsKKworICBjYXNlICJhY3Rp
b24iOgorICAgIHdpbmRvdy5zZXRNZXNzYWdlTGlzdGVuZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgIHdpbmRvdy5tZXNzYWdlX3F1ZXVlLnB1c2goZXZlbnQpOworICAgIH0pOworICAgIHBheWxv
YWQgPSBkYXRhOworICAgIGJyZWFrOworICBkZWZhdWx0OgorICAgIHJldHVybjsKKyAgfQorCisg
IGNhbGxiYWNrKFsiJSh1cmwpcyIsIGRhdGEudHlwZSwgcGF5bG9hZF0pOworfQorCit3aW5kb3cu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHdpbmRvdy5jdXJyZW50X2xpc3RlbmVyKTsK
K2lmICh3aW5kb3cubWVzc2FnZV9xdWV1ZS5sZW5ndGgpIHsKKyAgdmFyIG5leHQgPSB3aW5kb3cu
bWVzc2FnZV9xdWV1ZS5zaGlmdCgpOworICBwcm9jZXNzX2V2ZW50KG5leHQpOworfSBlbHNlIHsK
KyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgIm1lc3NhZ2UiLCBmdW5jdGlvbiBmKGV2
ZW50KSB7CisgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGYpOwor
ICAgICAgcHJvY2Vzc19ldmVudChldmVudCk7CisgICAgfSwgZmFsc2UpOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc19zZXJ2b2RyaXZlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDczMWNjMDRkNzAxMTc1OWNlNjMwNzlmYmQxMjQyZmQ2NDI2NjAzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIuanMK
QEAgLTAsMCArMSwyIEBACit3aW5kb3cuX193ZF9yZXN1bHRzX2NhbGxiYWNrX18gPSBhcmd1bWVu
dHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOword2luZG93Ll9fd2RfcmVzdWx0c190aW1lcl9fID0g
c2V0VGltZW91dCh0aW1lb3V0LCAlKHRpbWVvdXQpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNjc1ZjA3MDNkMzNi
MDM5NWI1OGI2ZTJiOGM3MGMyYWRjNzY0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcwpAQCAtMCwwICsxLDIzIEBACit3
aW5kb3cudGltZW91dF9tdWx0aXBsaWVyID0gJSh0aW1lb3V0X211bHRpcGxpZXIpZDsKKword2lu
ZG93Lm1lc3NhZ2VfcXVldWUgPSBbXTsKKword2luZG93LnNldE1lc3NhZ2VMaXN0ZW5lciA9IGZ1
bmN0aW9uKGZ1bmMpIHsKKyAgd2luZG93LmN1cnJlbnRfbGlzdGVuZXIgPSBmdW5jOworICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAibWVzc2FnZSIsCisgICAgZnVuYywKKyAgICBmYWxz
ZQorICApOworfTsKKword2luZG93LnNldE1lc3NhZ2VMaXN0ZW5lcihmdW5jdGlvbihldmVudCkg
eworICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2ZW50KTsKK30pOworCit3aW5kb3cud2lu
ID0gd2luZG93Lm9wZW4oIiUoYWJzX3VybClzIiwgIiUod2luZG93X2lkKXMiKTsKKword2luZG93
LnRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgd2luZG93Lndpbi50aW1lb3V0KCk7
CisgIHdpbmRvdy53aW4uY2xvc2UoKTsKK30sICUodGltZW91dClzKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YTJkZjk4ZWQ0ZTczYmY0NjE4YjE2OWFhMjk3ZjBjMDc1ZmY4YTE5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXJf
cmVzdW1lLmpzCkBAIC0wLDAgKzEsNDYgQEAKK3ZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1
bWVudHMubGVuZ3RoIC0gMV07CisKK2Z1bmN0aW9uIHByb2Nlc3NfZXZlbnQoZXZlbnQpIHsKKyAg
dmFyIGRhdGEgPSBldmVudC5kYXRhOworCisgIHZhciBwYXlsb2FkID0gdW5kZWZpbmVkOworCisg
IHN3aXRjaChkYXRhLnR5cGUpIHsKKyAgY2FzZSAiY29tcGxldGUiOgorICAgIHZhciB0ZXN0cyA9
IGV2ZW50LmRhdGEudGVzdHM7CisgICAgdmFyIHN0YXR1cyA9IGV2ZW50LmRhdGEuc3RhdHVzOwor
CisgICAgdmFyIHN1YnRlc3RfcmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbih4KSB7CisgICAg
ICByZXR1cm4gW3gubmFtZSwgeC5zdGF0dXMsIHgubWVzc2FnZSwgeC5zdGFja107CisgICAgfSk7
CisgICAgcGF5bG9hZCA9IFtzdGF0dXMuc3RhdHVzLAorICAgICAgICAgICAgICAgc3RhdHVzLm1l
c3NhZ2UsCisgICAgICAgICAgICAgICBzdGF0dXMuc3RhY2ssCisgICAgICAgICAgICAgICBzdWJ0
ZXN0X3Jlc3VsdHNdOworICAgIGNsZWFyVGltZW91dCh3aW5kb3cudGltZXIpOworICAgIGJyZWFr
OworCisgIGNhc2UgImFjdGlvbiI6CisgICAgd2luZG93LnNldE1lc3NhZ2VMaXN0ZW5lcihmdW5j
dGlvbihldmVudCkgeworICAgICAgd2luZG93Lm1lc3NhZ2VfcXVldWUucHVzaChldmVudCk7Cisg
ICAgfSk7CisgICAgcGF5bG9hZCA9IGRhdGE7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAg
cmV0dXJuOworICB9CisKKyAgY2FsbGJhY2soWyIlKHVybClzIiwgZGF0YS50eXBlLCBwYXlsb2Fk
XSk7Cit9CisKK3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgd2luZG93LmN1
cnJlbnRfbGlzdGVuZXIpOworaWYgKHdpbmRvdy5tZXNzYWdlX3F1ZXVlLmxlbmd0aCkgeworICB2
YXIgbmV4dCA9IHdpbmRvdy5tZXNzYWdlX3F1ZXVlLnNoaWZ0KCk7CisgIHByb2Nlc3NfZXZlbnQo
bmV4dCk7Cit9IGVsc2UgeworICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAibWVzc2Fn
ZSIsIGZ1bmN0aW9uIGYoZXZlbnQpIHsKKyAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZik7CisgICAgICBwcm9jZXNzX2V2ZW50KGV2ZW50KTsKKyAgICB9LCBmYWxz
ZSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTRm
N2E1MmVkODY1NDllNjdmNDEwOWRmODFmZDc4MjBjNmNiYzc5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDM3IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9t
ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcmludGVybmV0ZXhwbG9yZXIucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JvcGVyYS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1
bS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3J3ZWJraXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb2Nlc3Mu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVm
dGVzdC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3NfbWFyaW9uZXR0ZS5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3NfbWFyaW9uZXR0ZV9yZXN1bWUu
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3NlcnZvZHJpdmVyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMDZhYmI5NDZhZjE2ZjY5MGQ0MzQ3MTVjN2I5MzNmMTJkNWEzMzM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkLnB5CkBAIC0wLDAgKzEsMTQgQEAK
K2ltcG9ydCBvcworCisKK2RlZiBleHBlY3RlZF9wYXRoKG1ldGFkYXRhX3BhdGgsIHRlc3RfcGF0
aCk6CisgICAgIiIiUGF0aCB0byB0aGUgZXhwZWN0YXRpb24gZGF0YSBmaWxlIGZvciBhIGdpdmVu
IHRlc3QgcGF0aC4KKworICAgIFRoaXMgaXMgZGVmaW5lZCBhcyBtZXRhZGF0YV9wYXRoICsgcmVs
YXRpdmVfdGVzdF9wYXRoICsgLmluaQorCisgICAgOnBhcmFtIG1ldGFkYXRhX3BhdGg6IFBhdGgg
dG8gdGhlIHJvb3Qgb2YgdGhlIG1ldGFkYXRhIGRpcmVjdG9yeQorICAgIDpwYXJhbSB0ZXN0X3Bh
dGg6IFJlbGF0aXZlIHBhdGggdG8gdGhlIHRlc3QgZmlsZSBmcm9tIHRoZSB0ZXN0IHJvb3QKKyAg
ICAiIiIKKyAgICBhcmdzID0gbGlzdCh0ZXN0X3BhdGguc3BsaXQoIi8iKSkKKyAgICBhcmdzWy0x
XSArPSAiLmluaSIKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKG1ldGFkYXRhX3BhdGgsICphcmdz
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OWZjYTQyOGNlYjY5ZjkxZDJjMTAxZDJmOWRjNTJjODViMmI0ZWY5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAgLTAsMCArMSwxMTMgQEAK
K2ltcG9ydCBjdHlwZXMKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9y
bQorCitmcm9tIHNodXRpbCBpbXBvcnQgY29weTIsIHJtdHJlZQorZnJvbSBzdWJwcm9jZXNzIGlt
cG9ydCBjYWxsCisKK0hFUkUgPSBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXQorU1lTVEVNID0g
cGxhdGZvcm0uc3lzdGVtKCkubG93ZXIoKQorCisKK2NsYXNzIEZvbnRJbnN0YWxsZXIob2JqZWN0
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZm9udF9kaXI9Tm9uZSwgKipmb250cyk6CisgICAg
ICAgIHNlbGYuZm9udF9kaXIgPSBmb250X2RpcgorICAgICAgICBzZWxmLmluc3RhbGxlZF9mb250
cyA9IEZhbHNlCisgICAgICAgIHNlbGYuY3JlYXRlZF9kaXIgPSBGYWxzZQorICAgICAgICBzZWxm
LmZvbnRzID0gZm9udHMKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBlbnZfb3B0aW9ucz1Ob25l
LCBlbnZfY29uZmlnPU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZW50
ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIF8sIGZvbnRfcGF0aCBpbiBzZWxmLmZvbnRzLml0ZW1z
KCk6CisgICAgICAgICAgICBmb250X25hbWUgPSBmb250X3BhdGguc3BsaXQoJy8nKVstMV0KKyAg
ICAgICAgICAgIGluc3RhbGwgPSBnZXRhdHRyKHNlbGYsICdpbnN0YWxsXyVzX2ZvbnQnICUgU1lT
VEVNLCBOb25lKQorICAgICAgICAgICAgaWYgbm90IGluc3RhbGw6CisgICAgICAgICAgICAgICAg
bG9nZ2luZy53YXJuaW5nKCdGb250IGluc3RhbGxhdGlvbiBub3Qgc3VwcG9ydGVkIG9uICVzJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNKQorICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYgaW5zdGFsbChmb250X25hbWUsIGZvbnRfcGF0
aCk6CisgICAgICAgICAgICAgICAgc2VsZi5pbnN0YWxsZWRfZm9udHMgPSBUcnVlCisgICAgICAg
ICAgICAgICAgbG9nZ2luZy5pbmZvKCdJbnN0YWxsZWQgZm9udDogJXMnLCBmb250X25hbWUpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnVW5hYmxl
IHRvIGluc3RhbGwgZm9udDogJXMnLCBmb250X25hbWUpCisKKyAgICBkZWYgX19leGl0X18oc2Vs
ZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6CisgICAgICAgIGlmIG5vdCBzZWxmLmluc3Rh
bGxlZF9mb250czoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGZvciBfLCBm
b250X3BhdGggaW4gc2VsZi5mb250cy5pdGVtcygpOgorICAgICAgICAgICAgZm9udF9uYW1lID0g
Zm9udF9wYXRoLnNwbGl0KCcvJylbLTFdCisgICAgICAgICAgICByZW1vdmUgPSBnZXRhdHRyKHNl
bGYsICdyZW1vdmVfJXNfZm9udCcgJSBTWVNURU0sIE5vbmUpCisgICAgICAgICAgICBpZiBub3Qg
cmVtb3ZlOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnRm9udCByZW1vdmFsIG5v
dCBzdXBwb3J0ZWQgb24gJXMnLCBTWVNURU0pCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisgICAgICAgICAgICBpZiByZW1vdmUoZm9udF9uYW1lLCBmb250X3BhdGgpOgorICAgICAgICAg
ICAgICAgIGxvZ2dpbmcuaW5mbygnUmVtb3ZlZCBmb250OiAlcycsIGZvbnRfbmFtZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdVbmFibGUgdG8g
cmVtb3ZlIGZvbnQ6ICVzJywgZm9udF9uYW1lKQorCisgICAgZGVmIGluc3RhbGxfbGludXhfZm9u
dChzZWxmLCBmb250X25hbWUsIGZvbnRfcGF0aCk6CisgICAgICAgIGlmIG5vdCBzZWxmLmZvbnRf
ZGlyOgorICAgICAgICAgICAgc2VsZi5mb250X2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmV4
cGFuZHVzZXIoJ34nKSwgJy5mb250cycpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhz
ZWxmLmZvbnRfZGlyKToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYuZm9udF9kaXIpCisg
ICAgICAgICAgICBzZWxmLmNyZWF0ZWRfZGlyID0gVHJ1ZQorICAgICAgICBpZiBub3Qgb3MucGF0
aC5leGlzdHMob3MucGF0aC5qb2luKHNlbGYuZm9udF9kaXIsIGZvbnRfbmFtZSkpOgorICAgICAg
ICAgICAgY29weTIoZm9udF9wYXRoLCBzZWxmLmZvbnRfZGlyKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBmY19jYWNoZV9yZXR1cm5jb2RlID0gY2FsbCgnZmMtY2FjaGUnKQorICAgICAgICAg
ICAgcmV0dXJuIG5vdCBmY19jYWNoZV9yZXR1cm5jb2RlCisgICAgICAgIGV4Y2VwdCBPU0Vycm9y
OiAgIyBJZiBmb250Y29uZmlnIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgbG9nZ2luZy5lcnJvcignZm9udGNvbmZpZyBub3QgYXZhaWxhYmxlIG9uIHRoaXMgTGludXgg
c3lzdGVtLicpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpbnN0YWxsX2Rh
cndpbl9mb250KHNlbGYsIGZvbnRfbmFtZSwgZm9udF9wYXRoKToKKyAgICAgICAgaWYgbm90IHNl
bGYuZm9udF9kaXI6CisgICAgICAgICAgICBzZWxmLmZvbnRfZGlyID0gb3MucGF0aC5qb2luKG9z
LnBhdGguZXhwYW5kdXNlcignficpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnTGlicmFyeS9Gb250cycpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhz
ZWxmLmZvbnRfZGlyKToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYuZm9udF9kaXIpCisg
ICAgICAgICAgICBzZWxmLmNyZWF0ZWRfZGlyID0gVHJ1ZQorICAgICAgICBpZiBub3Qgb3MucGF0
aC5leGlzdHMob3MucGF0aC5qb2luKHNlbGYuZm9udF9kaXIsIGZvbnRfbmFtZSkpOgorICAgICAg
ICAgICAgY29weTIoZm9udF9wYXRoLCBzZWxmLmZvbnRfZGlyKQorICAgICAgICByZXR1cm4gVHJ1
ZQorCisgICAgZGVmIGluc3RhbGxfd2luZG93c19mb250KHNlbGYsIF8sIGZvbnRfcGF0aCk6Cisg
ICAgICAgIGh3bmRfYnJvYWRjYXN0ID0gMHhGRkZGCisgICAgICAgIHdtX2ZvbnRjaGFuZ2UgPSAw
eDAwMUQKKworICAgICAgICBnZGkzMiA9IGN0eXBlcy5XaW5ETEwoJ2dkaTMyJykKKyAgICAgICAg
aWYgZ2RpMzIuQWRkRm9udFJlc291cmNlVyhmb250X3BhdGgpOgorICAgICAgICAgICAgcmV0dXJu
IGJvb2woY3R5cGVzLndpbmRsbC51c2VyMzIuU2VuZE1lc3NhZ2VXKGh3bmRfYnJvYWRjYXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdtX2ZvbnRjaGFuZ2UpKQorCisgICAgZGVmIHJlbW92ZV9saW51eF9mb250KHNlbGYsIGZvbnRf
bmFtZSwgXyk6CisgICAgICAgIGlmIHNlbGYuY3JlYXRlZF9kaXI6CisgICAgICAgICAgICBybXRy
ZWUoc2VsZi5mb250X2RpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9zLnJlbW92ZSgn
JXMvJXMnICUgKHNlbGYuZm9udF9kaXIsIGZvbnRfbmFtZSkpCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIGZjX2NhY2hlX3JldHVybmNvZGUgPSBjYWxsKCdmYy1jYWNoZScpCisgICAgICAgICAg
ICByZXR1cm4gbm90IGZjX2NhY2hlX3JldHVybmNvZGUKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6
ICAjIElmIGZvbnRjb25maWcgZG9lc24ndCBleGlzdCwgcmV0dXJuIEZhbHNlCisgICAgICAgICAg
ICBsb2dnaW5nLmVycm9yKCdmb250Y29uZmlnIG5vdCBhdmFpbGFibGUgb24gdGhpcyBMaW51eCBz
eXN0ZW0uJykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIHJlbW92ZV9kYXJ3
aW5fZm9udChzZWxmLCBmb250X25hbWUsIF8pOgorICAgICAgICBpZiBzZWxmLmNyZWF0ZWRfZGly
OgorICAgICAgICAgICAgcm10cmVlKHNlbGYuZm9udF9kaXIpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBvcy5yZW1vdmUob3MucGF0aC5qb2luKHNlbGYuZm9udF9kaXIsIGZvbnRfbmFtZSkp
CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcmVtb3ZlX3dpbmRvd3NfZm9udChzZWxm
LCBfLCBmb250X3BhdGgpOgorICAgICAgICBod25kX2Jyb2FkY2FzdCA9IDB4RkZGRgorICAgICAg
ICB3bV9mb250Y2hhbmdlID0gMHgwMDFECisKKyAgICAgICAgZ2RpMzIgPSBjdHlwZXMuV2luRExM
KCdnZGkzMicpCisgICAgICAgIGlmIGdkaTMyLlJlbW92ZUZvbnRSZXNvdXJjZVcoZm9udF9wYXRo
KToKKyAgICAgICAgICAgIHJldHVybiBib29sKGN0eXBlcy53aW5kbGwudXNlcjMyLlNlbmRNZXNz
YWdlVyhod25kX2Jyb2FkY2FzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3bV9mb250Y2hhbmdlKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGU4ODhjZTI2OWRkOThmYWE2MThkZWQ1NGIwM2E5MmUyOGUwZWYwYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzLnB5CkBAIC0wLDAgKzEsNTQgQEAKK2lt
cG9ydCBqc29uCisKK2Zyb20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9y
dCBCYXNlRm9ybWF0dGVyCisKKworY2xhc3MgV3B0cmVwb3J0Rm9ybWF0dGVyKEJhc2VGb3JtYXR0
ZXIpOgorICAgICIiIkZvcm1hdHRlciB0aGF0IHByb2R1Y2VzIHJlc3VsdHMgaW4gdGhlIGZvcm1h
dCB0aGF0IHdwcmVwb3J0IGV4cGVjdHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg
ICAgICAgIHNlbGYucmF3X3Jlc3VsdHMgPSB7fQorCisgICAgZGVmIHN1aXRlX2VuZChzZWxmLCBk
YXRhKToKKyAgICAgICAgcmVzdWx0cyA9IHt9CisgICAgICAgIHJlc3VsdHNbInJlc3VsdHMiXSA9
IFtdCisgICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc2VsZi5yYXdfcmVzdWx0czoKKyAgICAgICAg
ICAgIHJlc3VsdCA9IHsidGVzdCI6IHRlc3RfbmFtZX0KKyAgICAgICAgICAgIHJlc3VsdC51cGRh
dGUoc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdKQorICAgICAgICAgICAgcmVzdWx0c1sicmVz
dWx0cyJdLmFwcGVuZChyZXN1bHQpCisgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHJlc3VsdHMp
CisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfdGVzdChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVz
dF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIGlmIHRlc3RfbmFtZSBub3QgaW4gc2VsZi5y
YXdfcmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSA9IHsK
KyAgICAgICAgICAgICAgICAic3VidGVzdHMiOiBbXSwKKyAgICAgICAgICAgICAgICAic3RhdHVz
IjogIiIsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBOb25lCisgICAgICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0KKworICAgIGRlZiBjcmVh
dGVfc3VidGVzdChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVh
dGVfdGVzdChkYXRhKQorICAgICAgICBzdWJ0ZXN0X25hbWUgPSBkYXRhWyJzdWJ0ZXN0Il0KKwor
ICAgICAgICBzdWJ0ZXN0ID0geworICAgICAgICAgICAgIm5hbWUiOiBzdWJ0ZXN0X25hbWUsCisg
ICAgICAgICAgICAic3RhdHVzIjogIiIsCisgICAgICAgICAgICAibWVzc2FnZSI6IE5vbmUKKyAg
ICAgICAgfQorICAgICAgICB0ZXN0WyJzdWJ0ZXN0cyJdLmFwcGVuZChzdWJ0ZXN0KQorCisgICAg
ICAgIHJldHVybiBzdWJ0ZXN0CisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6Cisg
ICAgICAgIHN1YnRlc3QgPSBzZWxmLmNyZWF0ZV9zdWJ0ZXN0KGRhdGEpCisgICAgICAgIHN1YnRl
c3RbInN0YXR1cyJdID0gZGF0YVsic3RhdHVzIl0KKyAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGRh
dGE6CisgICAgICAgICAgICBzdWJ0ZXN0WyJtZXNzYWdlIl0gPSBkYXRhWyJtZXNzYWdlIl0KKwor
ICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9v
cl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1
cyJdCisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgdGVzdFsibWVz
c2FnZSJdID0gZGF0YVsibWVzc2FnZSJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZl
c3RleHBlY3RlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVkNTdiNzBlNTE3YzA4NjQ4ZjYyY2Y0YTBjNjFkN2Q3Zjc0Zjk0OWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQpAQCAtMCwwICsxLDI2MiBA
QAoraW1wb3J0IG9zCitpbXBvcnQgdXJscGFyc2UKKworZnJvbSB3cHRtYW5pZmVzdC5iYWNrZW5k
cyBpbXBvcnQgc3RhdGljCitmcm9tIHdwdG1hbmlmZXN0LmJhY2tlbmRzLnN0YXRpYyBpbXBvcnQg
TWFuaWZlc3RJdGVtCisKK2ltcG9ydCBleHBlY3RlZAorCisiIiJNYW5pZmVzdCBzdHJ1Y3R1cmUg
dXNlZCB0byBzdG9yZSBleHBlY3RlZCByZXN1bHRzIG9mIGEgdGVzdC4KKworRWFjaCBtYW5pZmVz
dCBmaWxlIGlzIHJlcHJlc2VudGVkIGJ5IGFuIEV4cGVjdGVkTWFuaWZlc3QgdGhhdAoraGFzIG9u
ZSBvciBtb3JlIFRlc3ROb2RlIGNoaWxkcmVuLCBvbmUgcGVyIHRlc3QgaW4gdGhlIG1hbmlmZXN0
LgorRWFjaCBUZXN0Tm9kZSBoYXMgemVybyBvciBtb3JlIFN1YnRlc3ROb2RlIGNoaWxkcmVuLCBv
bmUgZm9yIGVhY2gKK2tub3duIHN1YnRlc3Qgb2YgdGhlIHRlc3QuCisiIiIKKworZGVmIGRhdGFf
Y2xzX2dldHRlcihvdXRwdXRfbm9kZSwgdmlzaXRlZF9ub2RlKToKKyAgICAjIHZpc2l0ZWRfbm9k
ZSBpcyBpbnRlbnRpb25hbGx5IHVudXNlZAorICAgIGlmIG91dHB1dF9ub2RlIGlzIE5vbmU6Cisg
ICAgICAgIHJldHVybiBFeHBlY3RlZE1hbmlmZXN0CisgICAgaWYgaXNpbnN0YW5jZShvdXRwdXRf
bm9kZSwgRXhwZWN0ZWRNYW5pZmVzdCk6CisgICAgICAgIHJldHVybiBUZXN0Tm9kZQorICAgIGlm
IGlzaW5zdGFuY2Uob3V0cHV0X25vZGUsIFRlc3ROb2RlKToKKyAgICAgICAgcmV0dXJuIFN1YnRl
c3ROb2RlCisgICAgcmFpc2UgVmFsdWVFcnJvcgorCisKK2RlZiBib29sX3Byb3AobmFtZSwgbm9k
ZSk6CisgICAgIiIiQm9vbGVhbiBwcm9wZXJ0eSIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJu
IG5vZGUuZ2V0KG5hbWUpCisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICByZXR1cm4gTm9u
ZQorCisKK2RlZiB0YWdzKG5vZGUpOgorICAgICIiIlNldCBvZiB0YWdzIHRoYXQgaGF2ZSBiZWVu
IGFwcGxpZWQgdG8gdGhlIHRlc3QiIiIKKyAgICB0cnk6CisgICAgICAgIHZhbHVlID0gbm9kZS5n
ZXQoInRhZ3MiKQorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCAoc3RyLCB1bmljb2RlKSk6
CisgICAgICAgICAgICByZXR1cm4ge3ZhbHVlfQorICAgICAgICByZXR1cm4gc2V0KHZhbHVlKQor
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcmV0dXJuIHNldCgpCisKKworZGVmIHByZWZz
KG5vZGUpOgorICAgIGRlZiB2YWx1ZShpbmlfdmFsdWUpOgorICAgICAgICBpZiBpc2luc3RhbmNl
KGluaV92YWx1ZSwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgcmV0dXJuIHR1cGxlKGlu
aV92YWx1ZS5zcGxpdCgiOiIsIDEpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IChpbmlfdmFsdWUsIE5vbmUpCisKKyAgICB0cnk6CisgICAgICAgIG5vZGVfcHJlZnMgPSBub2Rl
LmdldCgicHJlZnMiKQorICAgICAgICBpZiB0eXBlKG5vZGVfcHJlZnMpIGluIChzdHIsIHVuaWNv
ZGUpOgorICAgICAgICAgICAgcHJlZnMgPSB7dmFsdWUobm9kZV9wcmVmcyl9CisgICAgICAgIHJ2
ID0gZGljdCh2YWx1ZShpdGVtKSBmb3IgaXRlbSBpbiBub2RlX3ByZWZzKQorICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKKyAgICAgICAgcnYgPSB7fQorICAgIHJldHVybiBydgorCisKK2NsYXNzIEV4cGVj
dGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwg
dGVzdF9wYXRoLCB1cmxfYmFzZSk6CisgICAgICAgICIiIk9iamVjdCByZXByZXNlbnRpbmcgYWxs
IHRoZSB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgbWFuaWZlc3QKKworICAgICAgICA6cGFyYW0gbmFt
ZTogTmFtZSBvZiB0aGUgQVNUIE5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgb2JqZWN0LgorICAg
ICAgICAgICAgICAgICAgICAgU2hvdWxkIGFsd2F5cyBiZSBOb25lIHNpbmNlIHRoaXMgc2hvdWxk
IGFsd2F5cyBiZSBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgIHRoZSByb290
IG5vZGUgb2YgdGhlIEFTVC4KKyAgICAgICAgOnBhcmFtIHRlc3RfcGF0aDogUGF0aCBvZiB0aGUg
dGVzdCBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hbmlmZXN0LgorICAgICAgICA6cGFyYW0g
dXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0
CisgICAgICAgICIiIgorICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWRNYW5pZmVzdCBzaG91bGQgcmVwcmVzZW50IHRoZSBy
b290IG5vZGUiKQorICAgICAgICBpZiB0ZXN0X3BhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3QgcmVxdWlyZXMgYSB0ZXN0IHBhdGgiKQor
ICAgICAgICBpZiB1cmxfYmFzZSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiRXhwZWN0ZWRNYW5pZmVzdCByZXF1aXJlcyBhIGJhc2UgdXJsIikKKyAgICAgICAgTWFuaWZl
c3RJdGVtLl9faW5pdF9fKHNlbGYsIG5hbWUpCisgICAgICAgIHNlbGYuY2hpbGRfbWFwID0ge30K
KyAgICAgICAgc2VsZi50ZXN0X3BhdGggPSB0ZXN0X3BhdGgKKyAgICAgICAgc2VsZi51cmxfYmFz
ZSA9IHVybF9iYXNlCisKKyAgICBkZWYgYXBwZW5kKHNlbGYsIGNoaWxkKToKKyAgICAgICAgIiIi
QWRkIGEgdGVzdCB0byB0aGUgbWFuaWZlc3QiIiIKKyAgICAgICAgTWFuaWZlc3RJdGVtLmFwcGVu
ZChzZWxmLCBjaGlsZCkKKyAgICAgICAgc2VsZi5jaGlsZF9tYXBbY2hpbGQuaWRdID0gY2hpbGQK
KworICAgIGRlZiBfcmVtb3ZlX2NoaWxkKHNlbGYsIGNoaWxkKToKKyAgICAgICAgZGVsIHNlbGYu
Y2hpbGRfbWFwW2NoaWxkLmlkXQorICAgICAgICBNYW5pZmVzdEl0ZW0ucmVtb3ZlX2NoaWxkKHNl
bGYsIGNoaWxkKQorICAgICAgICBhc3NlcnQgbGVuKHNlbGYuY2hpbGRfbWFwKSA9PSBsZW4oc2Vs
Zi5jaGlsZHJlbikKKworICAgIGRlZiBnZXRfdGVzdChzZWxmLCB0ZXN0X2lkKToKKyAgICAgICAg
IiIiR2V0IGEgdGVzdCBmcm9tIHRoZSBtYW5pZmVzdCBieSBJRAorCisgICAgICAgIDpwYXJhbSB0
ZXN0X2lkOiBJRCBvZiB0aGUgdGVzdCB0byByZXR1cm4uIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmNoaWxkX21hcC5nZXQodGVzdF9pZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB1cmwoc2Vs
Zik6CisgICAgICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYudXJsX2Jhc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKHNlbGYudGVzdF9wYXRoLnNwbGl0
KG9zLnBhdGguc2VwKSkpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZGlzYWJsZWQoc2VsZik6
CisgICAgICAgIHJldHVybiBib29sX3Byb3AoImRpc2FibGVkIiwgc2VsZikKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiByZXN0YXJ0X2FmdGVyKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbF9w
cm9wKCJyZXN0YXJ0LWFmdGVyIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsZWFr
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2xfcHJvcCgibGVha3MiLCBzZWxmKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHRhZ3Moc2VsZik6CisgICAgICAgIHJldHVybiB0YWdzKHNlbGYp
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlZnMoc2VsZik6CisgICAgICAgIHJldHVybiBw
cmVmcyhzZWxmKQorCisKK2NsYXNzIERpcmVjdG9yeU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6Cisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGRpc2FibGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9v
bF9wcm9wKCJkaXNhYmxlZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVzdGFy
dF9hZnRlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2xfcHJvcCgicmVzdGFydC1hZnRlciIs
IHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGVha3Moc2VsZik6CisgICAgICAgIHJl
dHVybiBib29sX3Byb3AoImxlYWtzIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0
YWdzKHNlbGYpOgorICAgICAgICByZXR1cm4gdGFncyhzZWxmKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHByZWZzKHNlbGYpOgorICAgICAgICByZXR1cm4gcHJlZnMoc2VsZikKKworCitjbGFz
cyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToK
KyAgICAgICAgIiIiVHJlZSBub2RlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgdGVzdCBp
biBhIG1hbmlmZXN0CisKKyAgICAgICAgOnBhcmFtIG5hbWU6IG5hbWUgb2YgdGhlIHRlc3QiIiIK
KyAgICAgICAgYXNzZXJ0IG5hbWUgaXMgbm90IE5vbmUKKyAgICAgICAgTWFuaWZlc3RJdGVtLl9f
aW5pdF9fKHNlbGYsIG5hbWUpCisgICAgICAgIHNlbGYudXBkYXRlZF9leHBlY3RlZCA9IFtdCisg
ICAgICAgIHNlbGYubmV3X2V4cGVjdGVkID0gW10KKyAgICAgICAgc2VsZi5zdWJ0ZXN0cyA9IHt9
CisgICAgICAgIHNlbGYuZGVmYXVsdF9zdGF0dXMgPSBOb25lCisgICAgICAgIHNlbGYuX2Zyb21f
ZmlsZSA9IFRydWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAg
ICAgICAgcmVxdWlyZWRfa2V5cyA9IHNldChbInR5cGUiXSkKKyAgICAgICAgaWYgc2V0KHNlbGYu
X2RhdGEua2V5cygpKSAhPSByZXF1aXJlZF9rZXlzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisgICAgICAgIHJldHVybiBhbGwoY2hpbGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYuY2hp
bGRyZW4pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGVzdF90eXBlKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5nZXQoInR5cGUiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlkKHNl
bGYpOgorICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVudC51cmwsIHNl
bGYubmFtZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkaXNhYmxlZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGJvb2xfcHJvcCgiZGlzYWJsZWQiLCBzZWxmKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJlc3RhcnRfYWZ0ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBib29sX3Byb3AoInJl
c3RhcnQtYWZ0ZXIiLCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxlYWtzKHNlbGYp
OgorICAgICAgICByZXR1cm4gYm9vbF9wcm9wKCJsZWFrcyIsIHNlbGYpCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgdGFncyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHRhZ3Moc2VsZikKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBwcmVmcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHByZWZzKHNl
bGYpCisKKyAgICBkZWYgYXBwZW5kKHNlbGYsIG5vZGUpOgorICAgICAgICAiIiJBZGQgYSBzdWJ0
ZXN0IHRvIHRoZSBjdXJyZW50IHRlc3QKKworICAgICAgICA6cGFyYW0gbm9kZTogQVNUIE5vZGUg
YXNzb2NpYXRlZCB3aXRoIHRoZSBzdWJ0ZXN0IiIiCisgICAgICAgIGNoaWxkID0gTWFuaWZlc3RJ
dGVtLmFwcGVuZChzZWxmLCBub2RlKQorICAgICAgICBzZWxmLnN1YnRlc3RzW2NoaWxkLm5hbWVd
ID0gY2hpbGQKKworICAgIGRlZiBnZXRfc3VidGVzdChzZWxmLCBuYW1lKToKKyAgICAgICAgIiIi
R2V0IHRoZSBTdWJ0ZXN0Tm9kZSBjb3JyZXNwb25kaW5nIHRvIGEgcGFydGljdWxhciBzdWJ0ZXN0
LCBieSBuYW1lCisKKyAgICAgICAgOnBhcmFtIG5hbWU6IE5hbWUgb2YgdGhlIG5vZGUgdG8gcmV0
dXJuIiIiCisgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5zdWJ0ZXN0czoKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLnN1YnRlc3RzW25hbWVdCisgICAgICAgIHJldHVybiBOb25lCisKKworY2xhc3Mg
U3VidGVzdE5vZGUoVGVzdE5vZGUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKKyAg
ICAgICAgIiIiVHJlZSBub2RlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgc3VidGVzdCBp
biBhIG1hbmlmZXN0CisKKyAgICAgICAgOnBhcmFtIG5hbWU6IG5hbWUgb2YgdGhlIHN1YnRlc3Qi
IiIKKyAgICAgICAgVGVzdE5vZGUuX19pbml0X18oc2VsZiwgbmFtZSkKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fZGF0YToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBnZXRfbWFu
aWZlc3QobWV0YWRhdGFfcm9vdCwgdGVzdF9wYXRoLCB1cmxfYmFzZSwgcnVuX2luZm8pOgorICAg
ICIiIkdldCB0aGUgRXhwZWN0ZWRNYW5pZmVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRlc3QgcGF0aCwg
b3IgTm9uZSBpZiB0aGVyZSBpcyBubworICAgIG1ldGFkYXRhIHN0b3JlZCBmb3IgdGhhdCB0ZXN0
IHBhdGguCisKKyAgICA6cGFyYW0gbWV0YWRhdGFfcm9vdDogQWJzb2x1dGUgcGF0aCB0byB0aGUg
cm9vdCBvZiB0aGUgbWV0YWRhdGEgZGlyZWN0b3J5CisgICAgOnBhcmFtIHRlc3RfcGF0aDogUGF0
aCB0byB0aGUgdGVzdChzKSByZWxhdGl2ZSB0byB0aGUgdGVzdCByb290CisgICAgOnBhcmFtIHVy
bF9iYXNlOiBCYXNlIHVybCBmb3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBtYW5pZmVzdAor
ICAgIDpwYXJhbSBydW5faW5mbzogRGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIG9mIHRoZSB0ZXN0
IHJ1biBmb3Igd2hpY2ggdGhlIGV4cGVjdGF0aW9uCisgICAgICAgICAgICAgICAgICAgICB2YWx1
ZXMgc2hvdWxkIGJlIGNvbXB1dGVkLgorICAgICIiIgorICAgIG1hbmlmZXN0X3BhdGggPSBleHBl
Y3RlZC5leHBlY3RlZF9wYXRoKG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCkKKyAgICB0cnk6Cisg
ICAgICAgIHdpdGggb3BlbihtYW5pZmVzdF9wYXRoKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJu
IHN0YXRpYy5jb21waWxlKGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVy
PWRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3BhdGg9dGVzdF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9i
YXNlPXVybF9iYXNlKQorICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICByZXR1cm4gTm9uZQor
CitkZWYgZ2V0X2Rpcl9tYW5pZmVzdChwYXRoLCBydW5faW5mbyk6CisgICAgIiIiR2V0IHRoZSBF
eHBlY3RlZE1hbmlmZXN0IGZvciBhIHBhcnRpY3VsYXIgdGVzdCBwYXRoLCBvciBOb25lIGlmIHRo
ZXJlIGlzIG5vCisgICAgbWV0YWRhdGEgc3RvcmVkIGZvciB0aGF0IHRlc3QgcGF0aC4KKworICAg
IDpwYXJhbSBwYXRoOiBGdWxsIHBhdGggdG8gdGhlIGluaSBmaWxlCisgICAgOnBhcmFtIHJ1bl9p
bmZvOiBEaWN0aW9uYXJ5IG9mIHByb3BlcnRpZXMgb2YgdGhlIHRlc3QgcnVuIGZvciB3aGljaCB0
aGUgZXhwZWN0YXRpb24KKyAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyBzaG91bGQgYmUgY29t
cHV0ZWQuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4ocGF0aCkgYXMgZjoK
KyAgICAgICAgICAgIHJldHVybiBzdGF0aWMuY29tcGlsZShmLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGFfY2xzX2dldHRlcj1sYW1iZGEgeCx5OiBEaXJlY3RvcnlNYW5pZmVzdCkKKyAgICBl
eGNlcHQgSU9FcnJvcjoKKyAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tYW5pZmVzdGluY2x1ZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE2OGZkZWIzOWJjNmY2M2QzODc1NDQ5NTJhMWVlMjhlYTZhMmYxOGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5CkBAIC0wLDAg
KzEsMTU0IEBACisiIiJNYW5pZmVzdCBzdHJ1Y3R1cmUgdXNlZCB0byBzdG9yZSBwYXRocyB0aGF0
IHNob3VsZCBiZSBpbmNsdWRlZCBpbiBhIHRlc3QgcnVuLgorCitUaGUgbWFuaWZlc3QgaXMgcmVw
cmVzZW50ZWQgYnkgYSB0cmVlIG9mIEluY2x1ZGVNYW5pZmVzdCBvYmplY3RzLCB0aGUgcm9vdAor
cmVwcmVzZW50aW5nIHRoZSBmaWxlIGFuZCBlYWNoIHN1Ym5vZGUgcmVwcmVzZW50aW5nIGEgc3Vi
ZGlyZWN0b3J5IHRoYXQgc2hvdWxkCitiZSBpbmNsdWRlZCBvciBleGNsdWRlZC4KKyIiIgoraW1w
b3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0IHVybHBhcnNlCisKK2Zyb20gd3B0bWFuaWZlc3Qu
bm9kZSBpbXBvcnQgRGF0YU5vZGUKK2Zyb20gd3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNv
bmRpdGlvbmFsCitmcm9tIHdwdG1hbmlmZXN0LmJhY2tlbmRzLmNvbmRpdGlvbmFsIGltcG9ydCBN
YW5pZmVzdEl0ZW0KKworCitjbGFzcyBJbmNsdWRlTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6CisgICAgICAgICIiIk5vZGUgaW4gYSB0cmVlIHN0
cnVjdHVyZSByZXByZXNlbnRpbmcgdGhlIHBhdGhzCisgICAgICAgIHRoYXQgc2hvdWxkIGJlIGlu
Y2x1ZGVkIG9yIGV4Y2x1ZGVkIGZyb20gdGhlIHRlc3QgcnVuLgorCisgICAgICAgIDpwYXJhbSBu
b2RlOiBBU1QgTm9kZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgTm9kZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBub2RlKQorICAgICAgICBzZWxmLmNo
aWxkX21hcCA9IHt9CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY3JlYXRlKGNscyk6Cisg
ICAgICAgICIiIkNyZWF0ZSBhbiBlbXB0eSBJbmNsdWRlTWFuaWZlc3QgdHJlZSIiIgorICAgICAg
ICBub2RlID0gRGF0YU5vZGUoTm9uZSkKKyAgICAgICAgcmV0dXJuIGNscyhub2RlKQorCisgICAg
ZGVmIHNldF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuaGFzX2tleSgic2tp
cCIpOgorICAgICAgICAgICAgc2VsZi5zZXQoInNraXAiLCAiRmFsc2UiKQorCisgICAgZGVmIGFw
cGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIE1hbmlmZXN0SXRlbS5hcHBlbmQoc2VsZiwgY2hp
bGQpCisgICAgICAgIHNlbGYuY2hpbGRfbWFwW2NoaWxkLm5hbWVdID0gY2hpbGQKKyAgICAgICAg
YXNzZXJ0IGxlbihzZWxmLmNoaWxkX21hcCkgPT0gbGVuKHNlbGYuY2hpbGRyZW4pCisKKyAgICBk
ZWYgaW5jbHVkZShzZWxmLCB0ZXN0KToKKyAgICAgICAgIiIiUmV0dXJuIGEgYm9vbGVhbiBpbmRp
Y2F0aW5nIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIHRlc3Qgc2hvdWxkIGJlCisgICAgICAgIGluY2x1
ZGVkIGluIGEgdGVzdCBydW4sIGJhc2VkIG9uIHRoZSBJbmNsdWRlTWFuaWZlc3QgdHJlZSByb290
ZWQgb24KKyAgICAgICAgdGhpcyBvYmplY3QuCisKKyAgICAgICAgOnBhcmFtIHRlc3Q6IFRoZSB0
ZXN0IG9iamVjdCIiIgorICAgICAgICBwYXRoX2NvbXBvbmVudHMgPSBzZWxmLl9nZXRfY29tcG9u
ZW50cyh0ZXN0LnVybCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2luY2x1ZGUodGVzdCwgcGF0aF9j
b21wb25lbnRzKQorCisgICAgZGVmIF9pbmNsdWRlKHNlbGYsIHRlc3QsIHBhdGhfY29tcG9uZW50
cyk6CisgICAgICAgIGlmIHBhdGhfY29tcG9uZW50czoKKyAgICAgICAgICAgIG5leHRfcGF0aF9w
YXJ0ID0gcGF0aF9jb21wb25lbnRzLnBvcCgpCisgICAgICAgICAgICBpZiBuZXh0X3BhdGhfcGFy
dCBpbiBzZWxmLmNoaWxkX21hcDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5jaGlsZF9t
YXBbbmV4dF9wYXRoX3BhcnRdLl9pbmNsdWRlKHRlc3QsIHBhdGhfY29tcG9uZW50cykKKworICAg
ICAgICBub2RlID0gc2VsZgorICAgICAgICB3aGlsZSBub2RlOgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIHNraXBfdmFsdWUgPSBzZWxmLmdldCgic2tpcCIsIHsidGVzdF90eXBl
IjogdGVzdC5pdGVtX3R5cGV9KS5sb3dlcigpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHNraXBf
dmFsdWUgaW4gKCJ0cnVlIiwgImZhbHNlIikKKyAgICAgICAgICAgICAgICByZXR1cm4gc2tpcF92
YWx1ZSAhPSAidHJ1ZSIKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
ICAgICBpZiBub2RlLnBhcmVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZSA9IG5vZGUucGFyZW50CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgIyBJbmNsdWRlIGJ5IGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK
KworICAgIGRlZiBfZ2V0X2NvbXBvbmVudHMoc2VsZiwgdXJsKToKKyAgICAgICAgcnYgPSBbXQor
ICAgICAgICB1cmxfcGFydHMgPSB1cmxwYXJzZS51cmxzcGxpdCh1cmwpCisgICAgICAgIHZhcmlh
bnQgPSAiIgorICAgICAgICBpZiB1cmxfcGFydHMucXVlcnk6CisgICAgICAgICAgICB2YXJpYW50
ICs9ICI/IiArIHVybF9wYXJ0cy5xdWVyeQorICAgICAgICBpZiB1cmxfcGFydHMuZnJhZ21lbnQ6
CisgICAgICAgICAgICB2YXJpYW50ICs9ICIjIiArIHVybF9wYXJ0cy5mcmFnbWVudAorICAgICAg
ICBpZiB2YXJpYW50OgorICAgICAgICAgICAgcnYuYXBwZW5kKHZhcmlhbnQpCisgICAgICAgIHJ2
LmV4dGVuZChbaXRlbSBmb3IgaXRlbSBpbiByZXZlcnNlZCh1cmxfcGFydHMucGF0aC5zcGxpdCgi
LyIpKSBpZiBpdGVtXSkKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgX2FkZF9ydWxlKHNl
bGYsIHRlc3RfbWFuaWZlc3RzLCB1cmwsIGRpcmVjdGlvbik6CisgICAgICAgIG1heWJlX3BhdGgg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5hYnNwYXRoKG9zLmN1cmRpciksIHVybCkKKyAgICAgICAg
cmVzdCwgbGFzdCA9IG9zLnBhdGguc3BsaXQobWF5YmVfcGF0aCkKKyAgICAgICAgZnJhZ21lbnQg
PSBxdWVyeSA9IE5vbmUKKyAgICAgICAgaWYgIiMiIGluIGxhc3Q6CisgICAgICAgICAgICBsYXN0
LCBmcmFnbWVudCA9IGxhc3QucnNwbGl0KCIjIiwgMSkKKyAgICAgICAgaWYgIj8iIGluIGxhc3Q6
CisgICAgICAgICAgICBsYXN0LCBxdWVyeSA9IGxhc3QucnNwbGl0KCI/IiwgMSkKKworICAgICAg
ICBtYXliZV9wYXRoID0gb3MucGF0aC5qb2luKHJlc3QsIGxhc3QpCisgICAgICAgIHBhdGhzID0g
Z2xvYi5nbG9iKG1heWJlX3BhdGgpCisKKyAgICAgICAgaWYgcGF0aHM6CisgICAgICAgICAgICB1
cmxzID0gW10KKyAgICAgICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICAgICAgICAg
IGZvciBtYW5pZmVzdCwgZGF0YSBpbiB0ZXN0X21hbmlmZXN0cy5pdGVyaXRlbXMoKToKKyAgICAg
ICAgICAgICAgICAgICAgZm91bmQgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICByZWxfcGF0
aCA9IG9zLnBhdGgucmVscGF0aChwYXRoLCBkYXRhWyJ0ZXN0c19wYXRoIl0pCisgICAgICAgICAg
ICAgICAgICAgIGl0ZXJhdG9yID0gbWFuaWZlc3QuaXRlcnBhdGggaWYgb3MucGF0aC5pc2ZpbGUo
cGF0aCkgZWxzZSBtYW5pZmVzdC5pdGVyZGlyCisgICAgICAgICAgICAgICAgICAgIGZvciB0ZXN0
IGluIGl0ZXJhdG9yKHJlbF9wYXRoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBo
YXNhdHRyKHRlc3QsICJ1cmwiKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdGVzdC51cmwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIHF1ZXJ5IG9yIGZyYWdtZW50OgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcnNlZCA9IHVybHBhcnNlLnVybHBhcnNlKHVybCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoKHF1ZXJ5IGFuZCBxdWVyeSAhPSBwYXJzZWQucXVlcnkpIG9yCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFnbWVudCBhbmQgZnJhZ21lbnQgIT0gcGFyc2Vk
LmZyYWdtZW50KSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICAgICAgICAgICAgICB1cmxzLmFwcGVuZCh1cmwpCisgICAgICAgICAgICAgICAg
ICAgICAgICBmb3VuZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgaWYgZm91bmQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXJs
cyA9IFt1cmxdCisKKyAgICAgICAgYXNzZXJ0IGRpcmVjdGlvbiBpbiAoImluY2x1ZGUiLCAiZXhj
bHVkZSIpCisKKyAgICAgICAgZm9yIHVybCBpbiB1cmxzOgorICAgICAgICAgICAgY29tcG9uZW50
cyA9IHNlbGYuX2dldF9jb21wb25lbnRzKHVybCkKKworICAgICAgICAgICAgbm9kZSA9IHNlbGYK
KyAgICAgICAgICAgIHdoaWxlIGNvbXBvbmVudHM6CisgICAgICAgICAgICAgICAgY29tcG9uZW50
ID0gY29tcG9uZW50cy5wb3AoKQorICAgICAgICAgICAgICAgIGlmIGNvbXBvbmVudCBub3QgaW4g
bm9kZS5jaGlsZF9tYXA6CisgICAgICAgICAgICAgICAgICAgIG5ld19ub2RlID0gSW5jbHVkZU1h
bmlmZXN0KERhdGFOb2RlKGNvbXBvbmVudCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGUuYXBw
ZW5kKG5ld19ub2RlKQorICAgICAgICAgICAgICAgICAgICBuZXdfbm9kZS5zZXQoInNraXAiLCBu
b2RlLmdldCgic2tpcCIsIHt9KSkKKworICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLmNoaWxk
X21hcFtjb21wb25lbnRdCisKKyAgICAgICAgICAgIHNraXAgPSBGYWxzZSBpZiBkaXJlY3Rpb24g
PT0gImluY2x1ZGUiIGVsc2UgVHJ1ZQorICAgICAgICAgICAgbm9kZS5zZXQoInNraXAiLCBzdHIo
c2tpcCkpCisKKyAgICBkZWYgYWRkX2luY2x1ZGUoc2VsZiwgdGVzdF9tYW5pZmVzdHMsIHVybF9w
cmVmaXgpOgorICAgICAgICAiIiJBZGQgYSBydWxlIGluZGljYXRpbmcgdGhhdCB0ZXN0cyB1bmRl
ciBhIHVybCBwYXRoCisgICAgICAgIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0ZXN0IHJ1bnMKKwor
ICAgICAgICA6cGFyYW0gdXJsX3ByZWZpeDogVGhlIHVybCBwcmVmaXggdG8gaW5jbHVkZQorICAg
ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FkZF9ydWxlKHRlc3RfbWFuaWZlc3RzLCB1
cmxfcHJlZml4LCAiaW5jbHVkZSIpCisKKyAgICBkZWYgYWRkX2V4Y2x1ZGUoc2VsZiwgdGVzdF9t
YW5pZmVzdHMsIHVybF9wcmVmaXgpOgorICAgICAgICAiIiJBZGQgYSBydWxlIGluZGljYXRpbmcg
dGhhdCB0ZXN0cyB1bmRlciBhIHVybCBwYXRoCisgICAgICAgIHNob3VsZCBiZSBleGNsdWRlZCBm
cm9tIHRlc3QgcnVucworCisgICAgICAgIDpwYXJhbSB1cmxfcHJlZml4OiBUaGUgdXJsIHByZWZp
eCB0byBleGNsdWRlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fYWRkX3J1bGUo
dGVzdF9tYW5pZmVzdHMsIHVybF9wcmVmaXgsICJleGNsdWRlIikKKworCitkZWYgZ2V0X21hbmlm
ZXN0KG1hbmlmZXN0X3BhdGgpOgorICAgIHdpdGggb3BlbihtYW5pZmVzdF9wYXRoKSBhcyBmOgor
ICAgICAgICByZXR1cm4gY29uZGl0aW9uYWwuY29tcGlsZShmLCBkYXRhX2Nsc19nZXR0ZXI9bGFt
YmRhIHgsIHk6IEluY2x1ZGVNYW5pZmVzdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5p
ZmVzdHVwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZDNjMTczOTI4ZjAzZjc5NzBjZWEyY2UxMjhjYzA2OTY1ZDE1YWViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CkBAIC0wLDAgKzEsNDcwIEBACitp
bXBvcnQgb3MKK2ltcG9ydCB1cmxwYXJzZQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0
dXBsZSwgZGVmYXVsdGRpY3QKKworZnJvbSB3cHRtYW5pZmVzdC5ub2RlIGltcG9ydCAoRGF0YU5v
ZGUsIENvbmRpdGlvbmFsTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUsIFZhcmlhYmxlTm9kZSwgU3RyaW5n
Tm9kZSwgTnVtYmVyTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuYXJ5RXhw
cmVzc2lvbk5vZGUsIFVuYXJ5T3BlcmF0b3JOb2RlLCBLZXlWYWx1ZU5vZGUpCitmcm9tIHdwdG1h
bmlmZXN0LmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAorZnJvbSB3cHRtYW5pZmVzdC5iYWNr
ZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZlc3RJdGVtCisKK2ltcG9ydCBleHBlY3RlZAor
CisiIiJNYW5pZmVzdCBzdHJ1Y3R1cmUgdXNlZCB0byB1cGRhdGUgdGhlIGV4cGVjdGVkIHJlc3Vs
dHMgb2YgYSB0ZXN0CisKK0VhY2ggbWFuaWZlc3QgZmlsZSBpcyByZXByZXNlbnRlZCBieSBhbiBF
eHBlY3RlZE1hbmlmZXN0IHRoYXQgaGFzIG9uZQorb3IgbW9yZSBUZXN0Tm9kZSBjaGlsZHJlbiwg
b25lIHBlciB0ZXN0IGluIHRoZSBtYW5pZmVzdC4gIEVhY2gKK1Rlc3ROb2RlIGhhcyB6ZXJvIG9y
IG1vcmUgU3VidGVzdE5vZGUgY2hpbGRyZW4sIG9uZSBmb3IgZWFjaCBrbm93bgorc3VidGVzdCBv
ZiB0aGUgdGVzdC4KKworSW4gdGhlc2UgcmVwcmVzZW50YXRpb25zLCBjb25kaXRpb25hbHMgZXhw
cmVzc2lvbnMgaW4gdGhlIG1hbmlmZXN0IGFyZQorbm90IGV2YWx1YXRlZCB1cGZyb250IGJ1dCBz
dG9yZWQgYXMgcHl0aG9uIGZ1bmN0aW9ucyB0byBiZSBldmFsdWF0ZWQKK2F0IHJ1bnRpbWUuCisK
K1doZW4gYSByZXN1bHQgZm9yIGEgdGVzdCBpcyB0byBiZSB1cGRhdGVkIHNldF9yZXN1bHQgb24g
dGhlCitbU3ViXVRlc3ROb2RlIGlzIGNhbGxlZCB0byBzdG9yZSB0aGUgbmV3IHJlc3VsdCwgYWxv
bmdzaWRlIHRoZQorZXhpc3RpbmcgY29uZGl0aW9uYWwgdGhhdCByZXN1bHQncyBydW4gaW5mbyBt
YXRjaGVkLCBpZiBhbnkuIE9uY2UgYWxsCituZXcgcmVzdWx0cyBhcmUga25vd24sIGNvYWxlc2Nl
X2V4cGVjdGVkIGlzIGNhbGxlZCB0byBjb21wdXRlIHRoZSBuZXcKK3NldCBvZiByZXN1bHRzIGFu
ZCBjb25kaXRpb25hbHMuIFRoZSBBU1Qgb2YgdGhlIHVuZGVybHlpbmcgcGFyc2VkIG1hbmlmZXN0
CitpcyB1cGRhdGVkIHdpdGggdGhlIGNoYW5nZXMsIGFuZCB0aGUgcmVzdWx0IGlzIHNlcmlhbGlz
ZWQgdG8gYSBmaWxlLgorIiIiCisKKworY2xhc3MgQ29uZGl0aW9uRXJyb3IoRXhjZXB0aW9uKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZD1Ob25lKToKKyAgICAgICAgc2VsZi5jb25kID0g
Y29uZAorCisKK1Jlc3VsdCA9IG5hbWVkdHVwbGUoIlJlc3VsdCIsIFsicnVuX2luZm8iLCAic3Rh
dHVzIl0pCisKKworZGVmIGRhdGFfY2xzX2dldHRlcihvdXRwdXRfbm9kZSwgdmlzaXRlZF9ub2Rl
KToKKyAgICAjIHZpc2l0ZWRfbm9kZSBpcyBpbnRlbnRpb25hbGx5IHVudXNlZAorICAgIGlmIG91
dHB1dF9ub2RlIGlzIE5vbmU6CisgICAgICAgIHJldHVybiBFeHBlY3RlZE1hbmlmZXN0CisgICAg
ZWxpZiBpc2luc3RhbmNlKG91dHB1dF9ub2RlLCBFeHBlY3RlZE1hbmlmZXN0KToKKyAgICAgICAg
cmV0dXJuIFRlc3ROb2RlCisgICAgZWxpZiBpc2luc3RhbmNlKG91dHB1dF9ub2RlLCBUZXN0Tm9k
ZSk6CisgICAgICAgIHJldHVybiBTdWJ0ZXN0Tm9kZQorICAgIGVsc2U6CisgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IKKworCitjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUsIHRlc3RfcGF0aD1Ob25lLCB1cmxfYmFzZT1Ob25l
LCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAorICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRp
ZXM9Tm9uZSk6CisgICAgICAgICIiIk9iamVjdCByZXByZXNlbnRpbmcgYWxsIHRoZSB0ZXN0cyBp
biBhIHBhcnRpY3VsYXIgbWFuaWZlc3QKKworICAgICAgICA6cGFyYW0gbm9kZTogQVNUIE5vZGUg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgb2JqZWN0LiBJZiB0aGlzIGlzIE5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICBhIG5ldyBBU1QgaXMgY3JlYXRlZCB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIG1h
bmlmZXN0LgorICAgICAgICA6cGFyYW0gdGVzdF9wYXRoOiBQYXRoIG9mIHRoZSB0ZXN0IGZpbGUg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFuaWZlc3QuCisgICAgICAgIDpwYXJhbSB1cmxfYmFzZTog
QmFzZSB1cmwgZm9yIHNlcnZpbmcgdGhlIHRlc3RzIGluIHRoaXMgbWFuaWZlc3QuCisgICAgICAg
IDpwYXJhbSBwcm9wZXJ0eV9vcmRlcjogTGlzdCBvZiBwcm9wZXJ0aWVzIHRvIHVzZSBpbiBleHBl
Y3RhdGlvbiBtZXRhZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gbW9z
dCB0byBsZWFzdCBzaWduaWZpY2FudC4KKyAgICAgICAgOnBhcmFtIGJvb2xlYW5fcHJvcGVydGll
czogU2V0IG9mIHByb3BlcnRpZXMgaW4gcHJvcGVydHlfb3JkZXIgdGhhdCBzaG91bGQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdHJlYXRlZCBhcyBib29sZWFuLgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgbm9kZSBpcyBOb25lOgorICAgICAgICAgICAgbm9kZSA9IERh
dGFOb2RlKE5vbmUpCisgICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBub2RlKQor
ICAgICAgICBzZWxmLmNoaWxkX21hcCA9IHt9CisgICAgICAgIHNlbGYudGVzdF9wYXRoID0gdGVz
dF9wYXRoCisgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQorICAgICAgICBhc3NlcnQg
c2VsZi51cmxfYmFzZSBpcyBub3QgTm9uZQorICAgICAgICBzZWxmLm1vZGlmaWVkID0gRmFsc2UK
KyAgICAgICAgc2VsZi5ib29sZWFuX3Byb3BlcnRpZXMgPSBib29sZWFuX3Byb3BlcnRpZXMKKyAg
ICAgICAgc2VsZi5wcm9wZXJ0eV9vcmRlciA9IHByb3BlcnR5X29yZGVyCisKKyAgICBkZWYgYXBw
ZW5kKHNlbGYsIGNoaWxkKToKKyAgICAgICAgTWFuaWZlc3RJdGVtLmFwcGVuZChzZWxmLCBjaGls
ZCkKKyAgICAgICAgaWYgY2hpbGQuaWQgaW4gc2VsZi5jaGlsZF9tYXA6CisgICAgICAgICAgICBw
cmludCAiV2FybmluZzogRHVwbGljYXRlIGhlYWRpbmcgJXMiICUgY2hpbGQuaWQKKyAgICAgICAg
c2VsZi5jaGlsZF9tYXBbY2hpbGQuaWRdID0gY2hpbGQKKworICAgIGRlZiBfcmVtb3ZlX2NoaWxk
KHNlbGYsIGNoaWxkKToKKyAgICAgICAgZGVsIHNlbGYuY2hpbGRfbWFwW2NoaWxkLmlkXQorICAg
ICAgICBNYW5pZmVzdEl0ZW0uX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCkKKworICAgIGRlZiBn
ZXRfdGVzdChzZWxmLCB0ZXN0X2lkKToKKyAgICAgICAgIiIiUmV0dXJuIGEgVGVzdE5vZGUgYnkg
dGVzdCBpZCwgb3IgTm9uZSBpZiBubyB0ZXN0IG1hdGNoZXMKKworICAgICAgICA6cGFyYW0gdGVz
dF9pZDogVGhlIGlkIG9mIHRoZSB0ZXN0IHRvIGxvb2sgdXAiIiIKKworICAgICAgICByZXR1cm4g
c2VsZi5jaGlsZF9tYXBbdGVzdF9pZF0KKworICAgIGRlZiBoYXNfdGVzdChzZWxmLCB0ZXN0X2lk
KToKKyAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGVz
dCBoYXMgYSBrbm93biBjaGlsZCB0ZXN0CisgICAgICAgIHdpdGggaWQgdGVzdCBpZAorCisgICAg
ICAgIDpwYXJhbSB0ZXN0X2lkOiBUaGUgaWQgb2YgdGhlIHRlc3QgdG8gbG9vayB1cCIiIgorCisg
ICAgICAgIHJldHVybiB0ZXN0X2lkIGluIHNlbGYuY2hpbGRfbWFwCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxm
LnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihzZWxm
LnRlc3RfcGF0aC5zcGxpdChvcy5wYXRoLnNlcCkpKQorCisKK2NsYXNzIFRlc3ROb2RlKE1hbmlm
ZXN0SXRlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgorICAgICAgICAiIiJUcmVl
IG5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciB0ZXN0IGluIGEgbWFuaWZlc3QKKwor
ICAgICAgICA6cGFyYW0gbm9kZTogQVNUIG5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZXN0IiIi
CisKKyAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5pdF9fKHNlbGYsIG5vZGUpCisgICAgICAgIHNl
bGYudXBkYXRlZF9leHBlY3RlZCA9IFtdCisgICAgICAgIHNlbGYubmV3X2V4cGVjdGVkID0gW10K
KyAgICAgICAgc2VsZi5uZXdfZGlzYWJsZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnN1YnRlc3Rz
ID0ge30KKyAgICAgICAgc2VsZi5kZWZhdWx0X3N0YXR1cyA9IE5vbmUKKyAgICAgICAgc2VsZi5f
ZnJvbV9maWxlID0gVHJ1ZQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNyZWF0ZShjbHMs
IHRlc3RfaWQpOgorICAgICAgICAiIiJDcmVhdGUgYSBUZXN0Tm9kZSBjb3JyZXNwb25kaW5nIHRv
IGEgZ2l2ZW4gdGVzdAorCisgICAgICAgIDpwYXJhbSB0ZXN0X3R5cGU6IFRoZSB0eXBlIG9mIHRo
ZSB0ZXN0CisgICAgICAgIDpwYXJhbSB0ZXN0X2lkOiBUaGUgaWQgb2YgdGhlIHRlc3QiIiIKKwor
ICAgICAgICB1cmwgPSB0ZXN0X2lkCisgICAgICAgIG5hbWUgPSB1cmwuc3BsaXQoIi8iKVstMV0K
KyAgICAgICAgbm9kZSA9IERhdGFOb2RlKG5hbWUpCisgICAgICAgIHNlbGYgPSBjbHMobm9kZSkK
KworICAgICAgICBzZWxmLl9mcm9tX2ZpbGUgPSBGYWxzZQorICAgICAgICByZXR1cm4gc2VsZgor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICBpZ25vcmVf
a2V5cyA9IHNldChbInR5cGUiXSkKKyAgICAgICAgaWYgc2V0KHNlbGYuX2RhdGEua2V5cygpKSAt
IGlnbm9yZV9rZXlzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBh
bGwoY2hpbGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgdGVzdF90eXBlKHNlbGYpOgorICAgICAgICAiIiJUaGUgdHlwZSBvZiB0
aGUgdGVzdCByZXByZXNlbnRlZCBieSB0aGlzIFRlc3ROb2RlIiIiCisKKyAgICAgICAgcmV0dXJu
IHNlbGYuZ2V0KCJ0eXBlIiwgTm9uZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpZChzZWxm
KToKKyAgICAgICAgIiIiVGhlIGlkIG9mIHRoZSB0ZXN0IHJlcHJlc2VudGVkIGJ5IHRoaXMgVGVz
dE5vZGUiIiIKKyAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXJlbnQudXJs
LCBzZWxmLm5hbWUpCisKKyAgICBkZWYgZGlzYWJsZWQoc2VsZiwgcnVuX2luZm8pOgorICAgICAg
ICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGlzIHRlc3QgaXMgZGlzYWJsZWQgd2hl
biBydW4gaW4gYW4KKyAgICAgICAgZW52aXJvbm1lbnQgd2l0aCB0aGUgZ2l2ZW4gcnVuX2luZm8K
KworICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkgb2YgcnVuX2luZm8gcGFyYW1l
dGVycyIiIgorCisgICAgICAgIHJldHVybiBzZWxmLmdldCgiZGlzYWJsZWQiLCBydW5faW5mbykg
aXMgbm90IE5vbmUKKworICAgIGRlZiBzZXRfcmVzdWx0KHNlbGYsIHJ1bl9pbmZvLCByZXN1bHQp
OgorICAgICAgICAiIiJTZXQgdGhlIHJlc3VsdCBvZiB0aGUgdGVzdCBpbiBhIHBhcnRpY3VsYXIg
cnVuCisKKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0aW9uYXJ5IG9mIHJ1bl9pbmZvIHBh
cmFtZXRlcnMgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoaXMg
cnVuCisgICAgICAgIDpwYXJhbSByZXN1bHQ6IFN0YXR1cyBvZiB0aGUgdGVzdCBpbiB0aGlzIHJ1
biIiIgorCisgICAgICAgIGlmIHNlbGYuZGVmYXVsdF9zdGF0dXMgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBhc3NlcnQgc2VsZi5kZWZhdWx0X3N0YXR1cyA9PSByZXN1bHQuZGVmYXVsdF9leHBl
Y3RlZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5kZWZhdWx0X3N0YXR1cyA9IHJl
c3VsdC5kZWZhdWx0X2V4cGVjdGVkCisKKyAgICAgICAgIyBBZGQgdGhpcyByZXN1bHQgdG8gdGhl
IGxpc3Qgb2YgcmVzdWx0cyBzYXRpc2Z5aW5nCisgICAgICAgICMgYW55IGNvbmRpdGlvbiBpbiB0
aGUgbGlzdCBvZiB1cGRhdGVkIHJlc3VsdHMgaXQgbWF0Y2hlcworICAgICAgICBmb3IgKGNvbmQs
IHZhbHVlcykgaW4gc2VsZi51cGRhdGVkX2V4cGVjdGVkOgorICAgICAgICAgICAgaWYgY29uZChy
dW5faW5mbyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChSZXN1bHQocnVuX2luZm8s
IHJlc3VsdC5zdGF0dXMpKQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdC5zdGF0dXMgIT0gY29u
ZC52YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yb290Lm1vZGlmaWVkID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFdlIGRp
ZG4ndCBmaW5kIGEgcHJldmlvdXMgdmFsdWUgZm9yIHRoaXMKKyAgICAgICAgICAgIHNlbGYubmV3
X2V4cGVjdGVkLmFwcGVuZChSZXN1bHQocnVuX2luZm8sIHJlc3VsdC5zdGF0dXMpKQorICAgICAg
ICAgICAgc2VsZi5yb290Lm1vZGlmaWVkID0gVHJ1ZQorCisgICAgZGVmIGNvYWxlc2NlX2V4cGVj
dGVkKHNlbGYsIHN0YWJpbGl0eT1Ob25lKToKKyAgICAgICAgIiIiVXBkYXRlIHRoZSB1bmRlcmx5
aW5nIG1hbmlmZXN0IEFTVCBmb3IgdGhpcyB0ZXN0IGJhc2VkIG9uIGFsbCB0aGUKKyAgICAgICAg
YWRkZWQgcmVzdWx0cy4KKworICAgICAgICBUaGlzIHdpbGwgdXBkYXRlIGV4aXN0aW5nIGNvbmRp
dGlvbmFscyBpZiB0aGV5IGdvdCB0aGUgc2FtZSByZXN1bHQgaW4KKyAgICAgICAgYWxsIG1hdGNo
aW5nIHJ1bnMgaW4gdGhlIHVwZGF0ZWQgcmVzdWx0cywgd2lsbCBkZWxldGUgZXhpc3RpbmcgY29u
ZGl0aW9uYWxzCisgICAgICAgIHRoYXQgZ2V0IG1vcmUgdGhhbiBvbmUgZGlmZmVyZW50IHJlc3Vs
dCBpbiB0aGUgdXBkYXRlZCBydW4sIGFuZCBhZGQgbmV3CisgICAgICAgIGNvbmRpdGlvbmFscyBm
b3IgYW55dGhpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIGFuIGV4aXN0aW5nIGNvbmRpdGlvbmFsLgor
CisgICAgICAgIENvbmRpdGlvbmFscyBub3QgbWF0Y2hlZCBieSBhbnkgYWRkZWQgcmVzdWx0IGFy
ZSBub3QgY2hhbmdlZC4KKworICAgICAgICBXaGVuIGBzdGFiaWxpdHlgIGlzIG5vdCBOb25lLCBk
aXNhYmxlIGFueSB0ZXN0IHRoYXQgc2hvd3MgbXVsdGlwbGUKKyAgICAgICAgdW5leHBlY3RlZCBy
ZXN1bHRzIGZvciB0aGUgc2FtZSBzZXQgb2YgcGFyYW1ldGVycy4KKyAgICAgICAgIiIiCisKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgdW5jb25kaXRpb25hbF9zdGF0dXMgPSBzZWxmLmdldCgi
ZXhwZWN0ZWQiKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICB1bmNvbmRp
dGlvbmFsX3N0YXR1cyA9IHNlbGYuZGVmYXVsdF9zdGF0dXMKKworICAgICAgICBmb3IgY29uZGl0
aW9uYWxfdmFsdWUsIHJlc3VsdHMgaW4gc2VsZi51cGRhdGVkX2V4cGVjdGVkOgorICAgICAgICAg
ICAgaWYgbm90IHJlc3VsdHM6CisgICAgICAgICAgICAgICAgIyBUaGUgY29uZGl0aW9uYWwgZGlk
bid0IG1hdGNoIGFueXRoaW5nIGluIHRoZXNlIHJ1bnMgc28gbGVhdmUgaXQgYWxvbmUKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGFsbChyZXN1bHRzWzBdLnN0YXR1cyA9
PSByZXN1bHQuc3RhdHVzIGZvciByZXN1bHQgaW4gcmVzdWx0cyk6CisgICAgICAgICAgICAgICAg
IyBBbGwgdGhlIG5ldyB2YWx1ZXMgZm9yIHRoaXMgY29uZGl0aW9uYWwgbWF0Y2hlZCwgc28gdXBk
YXRlIHRoZSBub2RlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0c1swXQorICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09IHVuY29uZGl0aW9uYWxfc3RhdHVzIGFuZAor
ICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbF92YWx1ZS5jb25kaXRpb25fbm9kZSBpcyBu
b3QgTm9uZSk6CisgICAgICAgICAgICAgICAgICAgIGlmICJleHBlY3RlZCIgaW4gc2VsZjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVtb3ZlX3ZhbHVlKCJleHBlY3RlZCIsIGNvbmRp
dGlvbmFsX3ZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
IGNvbmRpdGlvbmFsX3ZhbHVlLnZhbHVlID0gcmVzdWx0LnN0YXR1cworICAgICAgICAgICAgZWxp
ZiBjb25kaXRpb25hbF92YWx1ZS5jb25kaXRpb25fbm9kZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICAjIEJsb3cgYXdheSB0aGUgZXhpc3RpbmcgY29uZGl0aW9uIGFuZCByZWJ1aWxkIGZy
b20gc2NyYXRjaAorICAgICAgICAgICAgICAgICMgVGhpcyBpc24ndCBzdXJlIHRvIHdvcmsgaWYg
d2UgaGF2ZSBhIGNvbmRpdGlvbmFsIGxhdGVyIHRoYXQgbWF0Y2hlcworICAgICAgICAgICAgICAg
ICMgdGhlc2UgdmFsdWVzIHRvbywgYnV0IHdlIGNhbiBob3BlLCB2ZXJpZnkgdGhhdCB3ZSBnZXQg
dGhlIHJlc3VsdHMKKyAgICAgICAgICAgICAgICAjIHdlIGV4cGVjdCwgYW5kIGlmIG5vdCBsZXQg
YSBodW1hbiBzb3J0IGl0IG91dAorICAgICAgICAgICAgICAgIHNlbGYucmVtb3ZlX3ZhbHVlKCJl
eHBlY3RlZCIsIGNvbmRpdGlvbmFsX3ZhbHVlKQorICAgICAgICAgICAgICAgIHNlbGYubmV3X2V4
cGVjdGVkLmV4dGVuZChyZXN1bHRzKQorICAgICAgICAgICAgZWxpZiBjb25kaXRpb25hbF92YWx1
ZS5jb25kaXRpb25fbm9kZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYubmV3X2V4cGVj
dGVkLmV4dGVuZChyZXN1bHQgZm9yIHJlc3VsdCBpbiByZXN1bHRzCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlc3VsdC5zdGF0dXMgIT0gdW5jb25kaXRpb25h
bF9zdGF0dXMpCisKKyAgICAgICAgIyBJdCBpcyBhbiBpbnZhcmlhbnQgdGhhdCBub3RoaW5nIGlu
IG5ld19leHBlY3RlZCBtYXRjaGVzIGFuIGV4aXN0aW5nCisgICAgICAgICMgY29uZGl0aW9uIGV4
Y2VwdCBmb3IgdGhlIGRlZmF1bHQgY29uZGl0aW9uCisKKyAgICAgICAgaWYgc2VsZi5uZXdfZXhw
ZWN0ZWQ6CisgICAgICAgICAgICBpZiBhbGwoc2VsZi5uZXdfZXhwZWN0ZWRbMF0uc3RhdHVzID09
IHJlc3VsdC5zdGF0dXMKKyAgICAgICAgICAgICAgICAgICBmb3IgcmVzdWx0IGluIHNlbGYubmV3
X2V4cGVjdGVkKSBhbmQgbm90IHNlbGYudXBkYXRlZF9leHBlY3RlZDoKKyAgICAgICAgICAgICAg
ICBzdGF0dXMgPSBzZWxmLm5ld19leHBlY3RlZFswXS5zdGF0dXMKKyAgICAgICAgICAgICAgICBp
ZiBzdGF0dXMgIT0gc2VsZi5kZWZhdWx0X3N0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zZXQoImV4cGVjdGVkIiwgc3RhdHVzLCBjb25kaXRpb249Tm9uZSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25h
bHMgPSBncm91cF9jb25kaXRpb25hbHMoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5l
d19leHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXNlbGYu
cm9vdC5wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJv
cGVydGllcz1zZWxmLnJvb3QuYm9vbGVhbl9wcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgIGV4
Y2VwdCBDb25kaXRpb25FcnJvciBhcyBlOgorICAgICAgICAgICAgICAgICAgICBpZiBzdGFiaWxp
dHkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldCgiZGlzYWJs
ZWQiLCBzdGFiaWxpdHkgb3IgInVuc3RhYmxlIiwgZS5jb25kLmNoaWxkcmVuWzBdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5uZXdfZGlzYWJsZWQgPSBUcnVlCisgICAgICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiQ29uZmxpY3Rpbmcg
dGVzdCByZXN1bHRzIGZvciAlcywgY2Fubm90IHVwZGF0ZSIgJSBzZWxmLnJvb3QudGVzdF9wYXRo
CisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIGZvciBjb25kaXRp
b25hbF9ub2RlLCBzdGF0dXMgaW4gY29uZGl0aW9uYWxzOgorICAgICAgICAgICAgICAgICAgICBp
ZiBzdGF0dXMgIT0gdW5jb25kaXRpb25hbF9zdGF0dXM6CisgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnNldCgiZXhwZWN0ZWQiLCBzdGF0dXMsIGNvbmRpdGlvbj1jb25kaXRpb25hbF9ub2Rl
LmNoaWxkcmVuWzBdKQorCisgICAgICAgIGlmICgiZXhwZWN0ZWQiIGluIHNlbGYuX2RhdGEgYW5k
CisgICAgICAgICAgICBsZW4oc2VsZi5fZGF0YVsiZXhwZWN0ZWQiXSkgPiAwIGFuZAorICAgICAg
ICAgICAgc2VsZi5fZGF0YVsiZXhwZWN0ZWQiXVstMV0uY29uZGl0aW9uX25vZGUgaXMgTm9uZSBh
bmQKKyAgICAgICAgICAgIHNlbGYuX2RhdGFbImV4cGVjdGVkIl1bLTFdLnZhbHVlID09IHNlbGYu
ZGVmYXVsdF9zdGF0dXMpOgorCisgICAgICAgICAgICBzZWxmLnJlbW92ZV92YWx1ZSgiZXhwZWN0
ZWQiLCBzZWxmLl9kYXRhWyJleHBlY3RlZCJdWy0xXSkKKworICAgICAgICBpZiAoImV4cGVjdGVk
IiBpbiBzZWxmLl9kYXRhIGFuZAorICAgICAgICAgICAgbGVuKHNlbGYuX2RhdGFbImV4cGVjdGVk
Il0pID09IDApOgorICAgICAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYubm9kZS5jaGlsZHJlbjoK
KyAgICAgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShjaGlsZCwgS2V5VmFsdWVOb2RlKSBhbmQK
KyAgICAgICAgICAgICAgICAgICAgY2hpbGQuZGF0YSA9PSAiZXhwZWN0ZWQiKToKKyAgICAgICAg
ICAgICAgICAgICAgY2hpbGQucmVtb3ZlKCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKwor
ICAgIGRlZiBfYWRkX2tleV92YWx1ZShzZWxmLCBub2RlLCB2YWx1ZXMpOgorICAgICAgICBNYW5p
ZmVzdEl0ZW0uX2FkZF9rZXlfdmFsdWUoc2VsZiwgbm9kZSwgdmFsdWVzKQorICAgICAgICBpZiBu
b2RlLmRhdGEgPT0gImV4cGVjdGVkIjoKKyAgICAgICAgICAgIHNlbGYudXBkYXRlZF9leHBlY3Rl
ZCA9IFtdCisgICAgICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgorICAgICAgICAgICAgICAg
IHNlbGYudXBkYXRlZF9leHBlY3RlZC5hcHBlbmQoKHZhbHVlLCBbXSkpCisKKyAgICBkZWYgY2xl
YXJfZXhwZWN0ZWQoc2VsZik6CisgICAgICAgICIiIkNsZWFyIGFsbCB0aGUgZXhwZWN0ZWQgZGF0
YSBmb3IgdGhpcyB0ZXN0IGFuZCBhbGwgb2YgaXRzIHN1YnRlc3RzIiIiCisKKyAgICAgICAgc2Vs
Zi51cGRhdGVkX2V4cGVjdGVkID0gW10KKyAgICAgICAgaWYgImV4cGVjdGVkIiBpbiBzZWxmLl9k
YXRhOgorICAgICAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYubm9kZS5jaGlsZHJlbjoKKyAgICAg
ICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShjaGlsZCwgS2V5VmFsdWVOb2RlKSBhbmQKKyAgICAg
ICAgICAgICAgICAgICAgY2hpbGQuZGF0YSA9PSAiZXhwZWN0ZWQiKToKKyAgICAgICAgICAgICAg
ICAgICAgY2hpbGQucmVtb3ZlKCkKKyAgICAgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2RhdGFb
ImV4cGVjdGVkIl0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBmb3Igc3Vi
dGVzdCBpbiBzZWxmLnN1YnRlc3RzLml0ZXJ2YWx1ZXMoKToKKyAgICAgICAgICAgIHN1YnRlc3Qu
Y2xlYXJfZXhwZWN0ZWQoKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToKKyAgICAgICAg
Y2hpbGQgPSBNYW5pZmVzdEl0ZW0uYXBwZW5kKHNlbGYsIG5vZGUpCisgICAgICAgIHNlbGYuc3Vi
dGVzdHNbY2hpbGQubmFtZV0gPSBjaGlsZAorCisgICAgZGVmIGdldF9zdWJ0ZXN0KHNlbGYsIG5h
bWUpOgorICAgICAgICAiIiJSZXR1cm4gYSBTdWJ0ZXN0Tm9kZSBjb3JyZXNwb25kaW5nIHRvIGEg
cGFydGljdWxhciBzdWJ0ZXN0IG9mCisgICAgICAgIHRoZSBjdXJyZW50IHRlc3QsIGNyZWF0aW5n
IGEgbmV3IG9uZSBpZiBubyBzdWJ0ZXN0IHdpdGggdGhhdCBuYW1lCisgICAgICAgIGFscmVhZHkg
ZXhpc3RzLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBOYW1lIG9mIHRoZSBzdWJ0ZXN0IiIiCisK
KyAgICAgICAgaWYgbmFtZSBpbiBzZWxmLnN1YnRlc3RzOgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuc3VidGVzdHNbbmFtZV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN1YnRlc3QgPSBT
dWJ0ZXN0Tm9kZS5jcmVhdGUobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXBwZW5kKHN1YnRlc3Qp
CisgICAgICAgICAgICByZXR1cm4gc3VidGVzdAorCisKK2NsYXNzIFN1YnRlc3ROb2RlKFRlc3RO
b2RlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKG5vZGUsIERhdGFOb2RlKQorICAgICAgICBUZXN0Tm9kZS5fX2luaXRfXyhzZWxmLCBu
b2RlKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNyZWF0ZShjbHMsIG5hbWUpOgorICAg
ICAgICBub2RlID0gRGF0YU5vZGUobmFtZSkKKyAgICAgICAgc2VsZiA9IGNscyhub2RlKQorICAg
ICAgICByZXR1cm4gc2VsZgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYp
OgorICAgICAgICBpZiBzZWxmLl9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
ICAgIHJldHVybiBUcnVlCisKKworZGVmIGdyb3VwX2NvbmRpdGlvbmFscyh2YWx1ZXMsIHByb3Bl
cnR5X29yZGVyPU5vbmUsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKKyAgICAiIiJHaXZlbiBh
IGxpc3Qgb2YgUmVzdWx0IG9iamVjdHMsIHJldHVybiBhIGxpc3Qgb2YKKyAgICAoY29uZGl0aW9u
YWxfbm9kZSwgc3RhdHVzKSBwYWlycyByZXByZXNlbnRpbmcgdGhlIGNvbmRpdGlvbmFsCisgICAg
ZXhwcmVzc2lvbnMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gbWF0Y2ggZWFjaCBzdGF0dXMKKworICAg
IDpwYXJhbSB2YWx1ZXM6IExpc3Qgb2YgUmVzdWx0cworICAgIDpwYXJhbSBwcm9wZXJ0eV9vcmRl
cjogTGlzdCBvZiBwcm9wZXJ0aWVzIHRvIHVzZSBpbiBleHBlY3RhdGlvbiBtZXRhZGF0YQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBtb3N0IHRvIGxlYXN0IHNpZ25pZmljYW50Lgor
ICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVzIGluIHByb3Bl
cnR5X29yZGVyIHRoYXQgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUg
dHJlYXRlZCBhcyBib29sZWFuLiIiIgorCisgICAgYnlfcHJvcGVydHkgPSBkZWZhdWx0ZGljdChz
ZXQpCisgICAgZm9yIHJ1bl9pbmZvLCBzdGF0dXMgaW4gdmFsdWVzOgorICAgICAgICBmb3IgcHJv
cF9uYW1lLCBwcm9wX3ZhbHVlIGluIHJ1bl9pbmZvLml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
YnlfcHJvcGVydHlbKHByb3BfbmFtZSwgcHJvcF92YWx1ZSldLmFkZChzdGF0dXMpCisKKyAgICBp
ZiBwcm9wZXJ0eV9vcmRlciBpcyBOb25lOgorICAgICAgICBwcm9wZXJ0eV9vcmRlciA9IFsiZGVi
dWciLCAib3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdCisKKyAgICBpZiBib29s
ZWFuX3Byb3BlcnRpZXMgaXMgTm9uZToKKyAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzID0gc2V0
KFsiZGVidWciXSkKKyAgICBlbHNlOgorICAgICAgICBib29sZWFuX3Byb3BlcnRpZXMgPSBzZXQo
Ym9vbGVhbl9wcm9wZXJ0aWVzKQorCisgICAgIyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdmFs
dWUsIHJlbW92ZSBhbnkgcHJvcGVydGllcyB0aGF0IGFyZSBjb21tb24KKyAgICAjIGZvciBhbGwg
dGhlIHZhbHVlcworICAgIGlmIGxlbih2YWx1ZXMpID4gMToKKyAgICAgICAgZm9yIGtleSwgc3Rh
dHVzZXMgaW4gYnlfcHJvcGVydHkuY29weSgpLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgaWYg
bGVuKHN0YXR1c2VzKSA9PSBsZW4odmFsdWVzKToKKyAgICAgICAgICAgICAgICBkZWwgYnlfcHJv
cGVydHlba2V5XQorICAgICAgICBpZiBub3QgYnlfcHJvcGVydHk6CisgICAgICAgICAgICByYWlz
ZSBDb25kaXRpb25FcnJvcgorCisgICAgcHJvcGVydGllcyA9IHNldChpdGVtWzBdIGZvciBpdGVt
IGluIGJ5X3Byb3BlcnR5Lml0ZXJrZXlzKCkpCisgICAgaW5jbHVkZV9wcm9wcyA9IFtdCisKKyAg
ICBmb3IgcHJvcCBpbiBwcm9wZXJ0eV9vcmRlcjoKKyAgICAgICAgaWYgcHJvcCBpbiBwcm9wZXJ0
aWVzOgorICAgICAgICAgICAgaW5jbHVkZV9wcm9wcy5hcHBlbmQocHJvcCkKKworICAgIGNvbmRp
dGlvbnMgPSB7fQorCisgICAgZm9yIHJ1bl9pbmZvLCBzdGF0dXMgaW4gdmFsdWVzOgorICAgICAg
ICBwcm9wX3NldCA9IHR1cGxlKChwcm9wLCBydW5faW5mb1twcm9wXSkgZm9yIHByb3AgaW4gaW5j
bHVkZV9wcm9wcykKKyAgICAgICAgaWYgcHJvcF9zZXQgaW4gY29uZGl0aW9uczoKKyAgICAgICAg
ICAgIGlmIGNvbmRpdGlvbnNbcHJvcF9zZXRdWzFdICE9IHN0YXR1czoKKyAgICAgICAgICAgICAg
ICAjIEEgcHJvcF9zZXQgY29udGFpbnMgY29udHJhZGljdG9yeSByZXN1bHRzCisgICAgICAgICAg
ICAgICAgcmFpc2UgQ29uZGl0aW9uRXJyb3IobWFrZV9leHByKHByb3Bfc2V0LCBzdGF0dXMsIGJv
b2xlYW5fcHJvcGVydGllcykpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGV4cHIg
PSBtYWtlX2V4cHIocHJvcF9zZXQsIHN0YXR1cywgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5f
cHJvcGVydGllcykKKyAgICAgICAgY29uZGl0aW9uc1twcm9wX3NldF0gPSAoZXhwciwgc3RhdHVz
KQorCisgICAgcmV0dXJuIGNvbmRpdGlvbnMudmFsdWVzKCkKKworCitkZWYgbWFrZV9leHByKHBy
b3Bfc2V0LCBzdGF0dXMsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKKyAgICAiIiJDcmVhdGUg
YW4gQVNUIHRoYXQgcmV0dXJucyB0aGUgdmFsdWUgYGBzdGF0dXNgYCBnaXZlbiBhbGwgdGhlCisg
ICAgcHJvcGVydGllcyBpbiBwcm9wX3NldCBtYXRjaC4KKworICAgIDpwYXJhbSBwcm9wX3NldDog
dHVwbGUgb2YgKHByb3BlcnR5IG5hbWUsIHZhbHVlKSBwYWlycyBmb3IgZWFjaAorICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHkgaW4gdGhpcyBleHByZXNzaW9uIGFuZCB0aGUgdmFsdWUgaXQg
bXVzdCBtYXRjaAorICAgIDpwYXJhbSBzdGF0dXM6IFN0YXR1cyBvbiBSSFMgd2hlbiBhbGwgdGhl
IGdpdmVuIHByb3BlcnRpZXMgbWF0Y2gKKyAgICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBT
ZXQgb2YgcHJvcGVydGllcyBpbiBwcm9wZXJ0eV9vcmRlciB0aGF0IHNob3VsZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4KKyAgICAiIiIKKyAg
ICByb290ID0gQ29uZGl0aW9uYWxOb2RlKCkKKworICAgIGFzc2VydCBsZW4ocHJvcF9zZXQpID4g
MAorCisgICAgZXhwcmVzc2lvbnMgPSBbXQorICAgIGZvciBwcm9wLCB2YWx1ZSBpbiBwcm9wX3Nl
dDoKKyAgICAgICAgbnVtYmVyX3R5cGVzID0gKGludCwgZmxvYXQsIGxvbmcpCisgICAgICAgIHZh
bHVlX2NscyA9IChOdW1iZXJOb2RlCisgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHZhbHVl
KSBpbiBudW1iZXJfdHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UgU3RyaW5nTm9kZSkK
KyAgICAgICAgaWYgcHJvcCBub3QgaW4gYm9vbGVhbl9wcm9wZXJ0aWVzOgorICAgICAgICAgICAg
ZXhwcmVzc2lvbnMuYXBwZW5kKAorICAgICAgICAgICAgICAgIEJpbmFyeUV4cHJlc3Npb25Ob2Rl
KAorICAgICAgICAgICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUoIj09IiksCisgICAgICAg
ICAgICAgICAgICAgIFZhcmlhYmxlTm9kZShwcm9wKSwKKyAgICAgICAgICAgICAgICAgICAgdmFs
dWVfY2xzKHVuaWNvZGUodmFsdWUpKQorICAgICAgICAgICAgICAgICkpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5hcHBl
bmQoVmFyaWFibGVOb2RlKHByb3ApKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBleHByZXNzaW9ucy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgIFVuYXJ5RXhwcmVzc2lv
bk5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBVbmFyeU9wZXJhdG9yTm9kZSgibm90Iiks
CisgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZU5vZGUocHJvcCkKKyAgICAgICAgICAg
ICAgICAgICAgKSkKKyAgICBpZiBsZW4oZXhwcmVzc2lvbnMpID4gMToKKyAgICAgICAgcHJldiA9
IGV4cHJlc3Npb25zWy0xXQorICAgICAgICBmb3IgY3VyciBpbiByZXZlcnNlZChleHByZXNzaW9u
c1s6LTFdKToKKyAgICAgICAgICAgIG5vZGUgPSBCaW5hcnlFeHByZXNzaW9uTm9kZSgKKyAgICAg
ICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUoImFuZCIpLAorICAgICAgICAgICAgICAgIGN1
cnIsCisgICAgICAgICAgICAgICAgcHJldikKKyAgICAgICAgICAgIHByZXYgPSBub2RlCisgICAg
ZWxzZToKKyAgICAgICAgbm9kZSA9IGV4cHJlc3Npb25zWzBdCisKKyAgICByb290LmFwcGVuZChu
b2RlKQorICAgIHJvb3QuYXBwZW5kKFN0cmluZ05vZGUoc3RhdHVzKSkKKworICAgIHJldHVybiBy
b290CisKKworZGVmIGdldF9tYW5pZmVzdChtZXRhZGF0YV9yb290LCB0ZXN0X3BhdGgsIHVybF9i
YXNlLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAorICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3Bl
cnRpZXM9Tm9uZSk6CisgICAgIiIiR2V0IHRoZSBFeHBlY3RlZE1hbmlmZXN0IGZvciBhIHBhcnRp
Y3VsYXIgdGVzdCBwYXRoLCBvciBOb25lIGlmIHRoZXJlIGlzIG5vCisgICAgbWV0YWRhdGEgc3Rv
cmVkIGZvciB0aGF0IHRlc3QgcGF0aC4KKworICAgIDpwYXJhbSBtZXRhZGF0YV9yb290OiBBYnNv
bHV0ZSBwYXRoIHRvIHRoZSByb290IG9mIHRoZSBtZXRhZGF0YSBkaXJlY3RvcnkKKyAgICA6cGFy
YW0gdGVzdF9wYXRoOiBQYXRoIHRvIHRoZSB0ZXN0KHMpIHJlbGF0aXZlIHRvIHRoZSB0ZXN0IHJv
b3QKKyAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBp
biB0aGlzIG1hbmlmZXN0CisgICAgOnBhcmFtIHByb3BlcnR5X29yZGVyOiBMaXN0IG9mIHByb3Bl
cnRpZXMgdG8gdXNlIGluIGV4cGVjdGF0aW9uIG1ldGFkYXRhCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlmaWNhbnQuCisgICAgOnBhcmFtIGJvb2xl
YW5fcHJvcGVydGllczogU2V0IG9mIHByb3BlcnRpZXMgaW4gcHJvcGVydHlfb3JkZXIgdGhhdCBz
aG91bGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSB0cmVhdGVkIGFzIGJvb2xl
YW4uIiIiCisgICAgbWFuaWZlc3RfcGF0aCA9IGV4cGVjdGVkLmV4cGVjdGVkX3BhdGgobWV0YWRh
dGFfcm9vdCwgdGVzdF9wYXRoKQorICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0
X3BhdGgpIGFzIGY6CisgICAgICAgICAgICByZXR1cm4gY29tcGlsZShmLCB0ZXN0X3BhdGgsIHVy
bF9iYXNlLCBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCisgICAgZXhj
ZXB0IElPRXJyb3I6CisgICAgICAgIHJldHVybiBOb25lCisKKworZGVmIGNvbXBpbGUobWFuaWZl
c3RfZmlsZSwgdGVzdF9wYXRoLCB1cmxfYmFzZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKKyAgICAg
ICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKKyAgICByZXR1cm4gY29uZGl0aW9uYWwu
Y29tcGlsZShtYW5pZmVzdF9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9wYXRoPXRlc3RfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1cmxfYmFzZT11cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0aWVzKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21ldGFkYXRhLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyZDc3YmE4ZDk0ZmU4NDcwZGVmOTk2ZTlhOWM5NjdlMWIxYzhiMDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEucHkKQEAgLTAsMCArMSwzNjYgQEAKK2ltcG9y
dCBvcworaW1wb3J0IHNodXRpbAoraW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQg
dHlwZXMKK2ltcG9ydCB1dWlkCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAor
Citmcm9tIG1vemxvZyBpbXBvcnQgcmVhZGVyCitmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJl
ZGxvZworCitpbXBvcnQgZXhwZWN0ZWQKK2ltcG9ydCBtYW5pZmVzdHVwZGF0ZQoraW1wb3J0IHRl
c3Rsb2FkZXIKK2ltcG9ydCB3cHRtYW5pZmVzdAoraW1wb3J0IHdwdHRlc3QKK2Zyb20gdmNzIGlt
cG9ydCBnaXQKK21hbmlmZXN0ID0gTm9uZSAgIyBNb2R1bGUgdGhhdCB3aWxsIGJlIGltcG9ydGVk
IHJlbGF0aXZlIHRvIHRlc3Rfcm9vdAorbWFuaWZlc3RpdGVtID0gTm9uZQorCitsb2dnZXIgPSBz
dHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIndlYi1wbGF0Zm9ybS10ZXN0cyIpCisKKwor
ZGVmIGxvYWRfdGVzdF9tYW5pZmVzdHMoc2VydmVfcm9vdCwgdGVzdF9wYXRocyk6CisgICAgZG9f
ZGVsYXllZF9pbXBvcnRzKHNlcnZlX3Jvb3QpCisgICAgbWFuaWZlc3RfbG9hZGVyID0gdGVzdGxv
YWRlci5NYW5pZmVzdExvYWRlcih0ZXN0X3BhdGhzLCBGYWxzZSkKKyAgICByZXR1cm4gbWFuaWZl
c3RfbG9hZGVyLmxvYWQoKQorCisKK2RlZiB1cGRhdGVfZXhwZWN0ZWQodGVzdF9wYXRocywgc2Vy
dmVfcm9vdCwgbG9nX2ZpbGVfbmFtZXMsCisgICAgICAgICAgICAgICAgICAgIHJldl9vbGQ9Tm9u
ZSwgcmV2X25ldz0iSEVBRCIsIGlnbm9yZV9leGlzdGluZz1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgc3luY19yb290PU5vbmUsIHByb3BlcnR5X29yZGVyPU5vbmUsIGJvb2xlYW5fcHJvcGVy
dGllcz1Ob25lLAorICAgICAgICAgICAgICAgICAgICBzdGFiaWxpdHk9Tm9uZSk6CisgICAgIiIi
VXBkYXRlIHRoZSBtZXRhZGF0YSBmaWxlcyBmb3Igd2ViLXBsYXRmb3JtLXRlc3RzIGJhc2VkIG9u
CisgICAgdGhlIHJlc3VsdHMgb2J0YWluZWQgaW4gYSBwcmV2aW91cyBydW4gb3IgcnVucworCisg
ICAgSWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lLCBhc3N1bWUgbG9nX2ZpbGVfbmFtZXMgcmVmZXJz
IHRvIGxvZ3MgZnJvbSByZXBlYXRlZAorICAgIHRlc3Qgam9icywgZGlzYWJsZSB0ZXN0cyB0aGF0
IGRvbid0IGJlaGF2ZSBhcyBleHBlY3RlZCBvbiBhbGwgcnVucyIiIgorCisgICAgbWFuaWZlc3Rz
ID0gbG9hZF90ZXN0X21hbmlmZXN0cyhzZXJ2ZV9yb290LCB0ZXN0X3BhdGhzKQorCisgICAgY2hh
bmdlX2RhdGEgPSB7fQorCisgICAgaWYgc3luY19yb290IGlzIG5vdCBOb25lOgorICAgICAgICBp
ZiByZXZfb2xkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV2X29sZCA9IGdpdCgicmV2LXBh
cnNlIiwgcmV2X29sZCwgcmVwbz1zeW5jX3Jvb3QpLnN0cmlwKCkKKyAgICAgICAgcmV2X25ldyA9
IGdpdCgicmV2LXBhcnNlIiwgcmV2X25ldywgcmVwbz1zeW5jX3Jvb3QpLnN0cmlwKCkKKworICAg
ICAgICBpZiByZXZfb2xkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2hhbmdlX2RhdGEgPSBs
b2FkX2NoYW5nZV9kYXRhKHJldl9vbGQsIHJldl9uZXcsIHJlcG89c3luY19yb290KQorCisgICAg
ZXhwZWN0ZWRfbWFwX2J5X21hbmlmZXN0ID0gdXBkYXRlX2Zyb21fbG9ncyhtYW5pZmVzdHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbG9nX2ZpbGVf
bmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
Z25vcmVfZXhpc3Rpbmc9aWdub3JlX2V4aXN0aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3By
b3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5PXN0YWJpbGl0eSkKKworICAgIGZvciB0ZXN0
X21hbmlmZXN0LCBleHBlY3RlZF9tYXAgaW4gZXhwZWN0ZWRfbWFwX2J5X21hbmlmZXN0Lml0ZXJp
dGVtcygpOgorICAgICAgICB1cmxfYmFzZSA9IG1hbmlmZXN0c1t0ZXN0X21hbmlmZXN0XVsidXJs
X2Jhc2UiXQorICAgICAgICBtZXRhZGF0YV9wYXRoID0gdGVzdF9wYXRoc1t1cmxfYmFzZV1bIm1l
dGFkYXRhX3BhdGgiXQorICAgICAgICB3cml0ZV9jaGFuZ2VzKG1ldGFkYXRhX3BhdGgsIGV4cGVj
dGVkX21hcCkKKyAgICAgICAgaWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
Zm9yIHRyZWUgaW4gZXhwZWN0ZWRfbWFwLml0ZXJ2YWx1ZXMoKToKKyAgICAgICAgICAgICAgICBm
b3IgdGVzdCBpbiB0cmVlLml0ZXJjaGlsZHJlbigpOgorICAgICAgICAgICAgICAgICAgICBmb3Ig
c3VidGVzdCBpbiB0ZXN0Lml0ZXJjaGlsZHJlbigpOgorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgc3VidGVzdC5uZXdfZGlzYWJsZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQgImRpc2FibGVkOiAlcyIgJSBvcy5wYXRoLmRpcm5hbWUoc3VidGVzdC5yb290LnRlc3RfcGF0
aCkgKyAiLyIgKyBzdWJ0ZXN0Lm5hbWUKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdC5uZXdf
ZGlzYWJsZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiZGlzYWJsZWQ6ICVzIiAl
IHRlc3Qucm9vdC50ZXN0X3BhdGgKKworICAgIHJlc3VsdHNfY2hhbmdlZCA9IFtpdGVtLnRlc3Rf
cGF0aCBmb3IgaXRlbSBpbiBleHBlY3RlZF9tYXAuaXRlcnZhbHVlcygpIGlmIGl0ZW0ubW9kaWZp
ZWRdCisKKyAgICByZXR1cm4gdW5leHBlY3RlZF9jaGFuZ2VzKG1hbmlmZXN0cywgY2hhbmdlX2Rh
dGEsIHJlc3VsdHNfY2hhbmdlZCkKKworCitkZWYgZG9fZGVsYXllZF9pbXBvcnRzKHNlcnZlX3Jv
b3QpOgorICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RpdGVtCisgICAgZnJvbSBtYW5pZmVz
dCBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtCisKKworZGVmIGZpbGVzX2lu
X3JlcG8ocmVwb19yb290KToKKyAgICByZXR1cm4gZ2l0KCJscy10cmVlIiwgIi1yIiwgIi0tbmFt
ZS1vbmx5IiwgIkhFQUQiKS5zcGxpdCgiXG4iKQorCisKK2RlZiByZXZfcmFuZ2UocmV2X29sZCwg
cmV2X25ldywgc3ltbWV0cmljPUZhbHNlKToKKyAgICBqb2luZXIgPSAiLi4iIGlmIG5vdCBzeW1t
ZXRyaWMgZWxzZSAiLi4uIgorICAgIHJldHVybiAiIi5qb2luKFtyZXZfb2xkLCBqb2luZXIsIHJl
dl9uZXddKQorCisKK2RlZiBwYXRoc19jaGFuZ2VkKHJldl9vbGQsIHJldl9uZXcsIHJlcG8pOgor
ICAgIGRhdGEgPSBnaXQoImRpZmYiLCAiLS1uYW1lLXN0YXR1cyIsIHJldl9yYW5nZShyZXZfb2xk
LCByZXZfbmV3KSwgcmVwbz1yZXBvKQorICAgIGxpbmVzID0gW3R1cGxlKGl0ZW0uc3RyaXAoKSBm
b3IgaXRlbSBpbiBsaW5lLnN0cmlwKCkuc3BsaXQoIlx0IiwgMSkpCisgICAgICAgICAgICAgZm9y
IGxpbmUgaW4gZGF0YS5zcGxpdCgiXG4iKSBpZiBsaW5lLnN0cmlwKCldCisgICAgb3V0cHV0ID0g
c2V0KGxpbmVzKQorICAgIHJldHVybiBvdXRwdXQKKworCitkZWYgbG9hZF9jaGFuZ2VfZGF0YShy
ZXZfb2xkLCByZXZfbmV3LCByZXBvKToKKyAgICBjaGFuZ2VzID0gcGF0aHNfY2hhbmdlZChyZXZf
b2xkLCByZXZfbmV3LCByZXBvKQorICAgIHJ2ID0ge30KKyAgICBzdGF0dXNfa2V5cyA9IHsiTSI6
ICJtb2RpZmllZCIsCisgICAgICAgICAgICAgICAgICAgIkEiOiAibmV3IiwKKyAgICAgICAgICAg
ICAgICAgICAiRCI6ICJkZWxldGVkIn0KKyAgICAjIFRPRE86IGRlYWwgd2l0aCByZW5hbWVzCisg
ICAgZm9yIGl0ZW0gaW4gY2hhbmdlczoKKyAgICAgICAgcnZbaXRlbVsxXV0gPSBzdGF0dXNfa2V5
c1tpdGVtWzBdXQorICAgIHJldHVybiBydgorCisKK2RlZiB1bmV4cGVjdGVkX2NoYW5nZXMobWFu
aWZlc3RzLCBjaGFuZ2VfZGF0YSwgZmlsZXNfY2hhbmdlZCk6CisgICAgZmlsZXNfY2hhbmdlZCA9
IHNldChmaWxlc19jaGFuZ2VkKQorCisgICAgcm9vdF9tYW5pZmVzdCA9IE5vbmUKKyAgICBmb3Ig
bWFuaWZlc3QsIHBhdGhzIGluIG1hbmlmZXN0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgaWYgcGF0
aHNbInVybF9iYXNlIl0gPT0gIi8iOgorICAgICAgICAgICAgcm9vdF9tYW5pZmVzdCA9IG1hbmlm
ZXN0CisgICAgICAgICAgICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHJldHVybiBbXQorCisg
ICAgcnYgPSBbXQorCisgICAgcmV0dXJuIFtmbiBmb3IgXywgZm4sIF8gaW4gcm9vdF9tYW5pZmVz
dCBpZiBmbiBpbiBmaWxlc19jaGFuZ2VkIGFuZCBjaGFuZ2VfZGF0YS5nZXQoZm4pICE9ICJNIl0K
KworIyBGb3IgZWFjaCB0ZXN0cnVuCisjIExvYWQgYWxsIGZpbGVzIGFuZCBzY2FuIGZvciB0aGUg
c3VpdGVfc3RhcnQgZW50cnkKKyMgQnVpbGQgYSBoYXNoIG9mIGZpbGVuYW1lOiBwcm9wZXJ0aWVz
CisjIEZvciBlYWNoIGRpZmZlcmVudCBzZXQgb2YgcHJvcGVydGllcywgZ2F0aGVyIGFsbCBjaHVu
a3MKKyMgRm9yIGVhY2ggY2h1bmsgaW4gdGhlIHNldCBvZiBjaHVua3MsIGdvIHRocm91Z2ggYWxs
IHRlc3RzCisjIGZvciBlYWNoIHRlc3QsIG1ha2UgYSBtYXAgb2Yge2NvbmRpdGlvbmFsczogWyhw
bGF0Zm9ybSwgbmV3X3ZhbHVlKV19CisjIFJlcGVhdCBmb3IgZWFjaCBwbGF0Zm9ybQorIyBGb3Ig
ZWFjaCB0ZXN0IGluIHRoZSBsaXN0IG9mIHRlc3RzOgorIyAgIGZvciBlYWNoIGNvbmRpdGlvbmFs
OgorIyAgICAgIElmIGFsbCB0aGUgbmV3IHZhbHVlcyBtYXRjaCAob3IgdGhlcmUgYXJlbid0IGFu
eSkgcmV0YWluIHRoYXQgY29uZGl0aW9uYWwKKyMgICAgICBJZiBhbnkgbmV3IHZhbHVlcyBtaXNt
YXRjaDoKKyMgICAgICAgICAgIElmIHN0YWJpbGl0eSBhbmQgYW55IHJlcGVhdGVkIHZhbHVlcyBk
b24ndCBtYXRjaCwgZGlzYWJsZSB0aGUgdGVzdAorIyAgICAgICAgICAgZWxzZSBtYXJrIHRoZSB0
ZXN0IGFzIG5lZWRpbmcgaHVtYW4gYXR0ZW50aW9uCisjICAgQ2hlY2sgaWYgYWxsIHRoZSBSSFMg
dmFsdWVzIGFyZSB0aGUgc2FtZTsgaWYgc28gY29sbGFwc2UgdGhlIGNvbmRpdGlvbmFscworCisK
K2RlZiB1cGRhdGVfZnJvbV9sb2dzKG1hbmlmZXN0cywgKmxvZ19maWxlbmFtZXMsICoqa3dhcmdz
KToKKyAgICBpZ25vcmVfZXhpc3RpbmcgPSBrd2FyZ3MuZ2V0KCJpZ25vcmVfZXhpc3RpbmciLCBG
YWxzZSkKKyAgICBwcm9wZXJ0eV9vcmRlciA9IGt3YXJncy5nZXQoInByb3BlcnR5X29yZGVyIikK
KyAgICBib29sZWFuX3Byb3BlcnRpZXMgPSBrd2FyZ3MuZ2V0KCJib29sZWFuX3Byb3BlcnRpZXMi
KQorICAgIHN0YWJpbGl0eSA9IGt3YXJncy5nZXQoInN0YWJpbGl0eSIpCisKKyAgICBleHBlY3Rl
ZF9tYXAgPSB7fQorICAgIGlkX3Rlc3RfbWFwID0ge30KKworICAgIGZvciB0ZXN0X21hbmlmZXN0
LCBwYXRocyBpbiBtYW5pZmVzdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGV4cGVjdGVkX21hcF9t
YW5pZmVzdCwgaWRfcGF0aF9tYXBfbWFuaWZlc3QgPSBjcmVhdGVfdGVzdF90cmVlKAorICAgICAg
ICAgICAgcGF0aHNbIm1ldGFkYXRhX3BhdGgiXSwKKyAgICAgICAgICAgIHRlc3RfbWFuaWZlc3Qs
CisgICAgICAgICAgICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAg
IGJvb2xlYW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgIGV4cGVjdGVk
X21hcFt0ZXN0X21hbmlmZXN0XSA9IGV4cGVjdGVkX21hcF9tYW5pZmVzdAorICAgICAgICBpZF90
ZXN0X21hcC51cGRhdGUoaWRfcGF0aF9tYXBfbWFuaWZlc3QpCisKKyAgICB1cGRhdGVyID0gRXhw
ZWN0ZWRVcGRhdGVyKG1hbmlmZXN0cywgZXhwZWN0ZWRfbWFwLCBpZF90ZXN0X21hcCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9leGlzdGluZz1pZ25vcmVfZXhpc3Rpbmcp
CisgICAgZm9yIGxvZ19maWxlbmFtZSBpbiBsb2dfZmlsZW5hbWVzOgorICAgICAgICB3aXRoIG9w
ZW4obG9nX2ZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9s
b2coZikKKworICAgIGZvciBtYW5pZmVzdF9leHBlY3RlZCBpbiBleHBlY3RlZF9tYXAuaXRlcnZh
bHVlcygpOgorICAgICAgICBmb3IgdHJlZSBpbiBtYW5pZmVzdF9leHBlY3RlZC5pdGVydmFsdWVz
KCk6CisgICAgICAgICAgICBmb3IgdGVzdCBpbiB0cmVlLml0ZXJjaGlsZHJlbigpOgorICAgICAg
ICAgICAgICAgIGZvciBzdWJ0ZXN0IGluIHRlc3QuaXRlcmNoaWxkcmVuKCk6CisgICAgICAgICAg
ICAgICAgICAgIHN1YnRlc3QuY29hbGVzY2VfZXhwZWN0ZWQoc3RhYmlsaXR5PXN0YWJpbGl0eSkK
KyAgICAgICAgICAgICAgICB0ZXN0LmNvYWxlc2NlX2V4cGVjdGVkKHN0YWJpbGl0eT1zdGFiaWxp
dHkpCisKKyAgICByZXR1cm4gZXhwZWN0ZWRfbWFwCisKK2RlZiBkaXJlY3RvcnlfbWFuaWZlc3Rz
KG1ldGFkYXRhX3BhdGgpOgorICAgIHJ2ID0gW10KKyAgICBmb3IgZGlycGF0aCwgZGlybmFtZSwg
ZmlsZW5hbWVzIGluIG9zLndhbGsobWV0YWRhdGFfcGF0aCk6CisgICAgICAgIGlmICJfX2Rpcl9f
LmluaSIgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBh
dGgoZGlycGF0aCwgbWV0YWRhdGFfcGF0aCkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChvcy5wYXRo
LmpvaW4ocmVsX3BhdGgsICJfX2Rpcl9fLmluaSIpKQorICAgIHJldHVybiBydgorCitkZWYgd3Jp
dGVfY2hhbmdlcyhtZXRhZGF0YV9wYXRoLCBleHBlY3RlZF9tYXApOgorICAgICMgRmlyc3Qgd3Jp
dGUgdGhlIG5ldyBtYW5pZmVzdCBmaWxlcyB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICB0
ZW1wX3BhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKGRpcj1vcy5wYXRoLnNwbGl0KG1ldGFkYXRhX3Bh
dGgpWzBdKQorICAgIHdyaXRlX25ld19leHBlY3RlZCh0ZW1wX3BhdGgsIGV4cGVjdGVkX21hcCkK
KworICAgICMgS2VlcCBhbGwgX19kaXJfXy5pbmkgZmlsZXMgKHRoZXNlIGFyZSBub3QgaW4gZXhw
ZWN0ZWRfbWFwIGJlY2F1c2UgdGhleQorICAgICMgYXJlbid0IGFzc29jaWF0ZWQgd2l0aCBhIHNw
ZWNpZmljIHRlc3QpCisgICAga2VlcF9maWxlcyA9IGRpcmVjdG9yeV9tYW5pZmVzdHMobWV0YWRh
dGFfcGF0aCkKKworICAgICMgQ29weSBhbGwgZmlsZXMgaW4gdGhlIHJvb3QgdG8gdGhlIHRlbXBv
cmFyeSBsb2NhdGlvbiBzaW5jZQorICAgICMgdGhlc2UgY2Fubm90IGJlIGluaSBmaWxlcworICAg
IGtlZXBfZmlsZXMuZXh0ZW5kKGl0ZW0gZm9yIGl0ZW0gaW4gb3MubGlzdGRpcihtZXRhZGF0YV9w
YXRoKSBpZgorICAgICAgICAgICAgICAgICAgICAgIG5vdCBvcy5wYXRoLmlzZGlyKG9zLnBhdGgu
am9pbihtZXRhZGF0YV9wYXRoLCBpdGVtKSkpCisKKyAgICBmb3IgaXRlbSBpbiBrZWVwX2ZpbGVz
OgorICAgICAgICBkZXN0X2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmpvaW4odGVtcF9w
YXRoLCBpdGVtKSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRlc3RfZGlyKToKKyAg
ICAgICAgICAgIG9zLm1ha2VkaXJzKGRlc3RfZGlyKQorICAgICAgICBzaHV0aWwuY29weWZpbGUo
b3MucGF0aC5qb2luKG1ldGFkYXRhX3BhdGgsIGl0ZW0pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgb3MucGF0aC5qb2luKHRlbXBfcGF0aCwgaXRlbSkpCisKKyAgICAjIFRoZW4gbW92ZSB0aGUg
b2xkIG1hbmlmZXN0IGZpbGVzIHRvIGEgbmV3IGxvY2F0aW9uCisgICAgdGVtcF9wYXRoXzIgPSBt
ZXRhZGF0YV9wYXRoICsgc3RyKHV1aWQudXVpZDQoKSkKKyAgICBvcy5yZW5hbWUobWV0YWRhdGFf
cGF0aCwgdGVtcF9wYXRoXzIpCisgICAgIyBNb3ZlIHRoZSBuZXcgZmlsZXMgdG8gdGhlIGRlc3Rp
bmF0aW9uIGxvY2F0aW9uIGFuZCByZW1vdmUgdGhlIG9sZCBmaWxlcworICAgIG9zLnJlbmFtZSh0
ZW1wX3BhdGgsIG1ldGFkYXRhX3BhdGgpCisgICAgc2h1dGlsLnJtdHJlZSh0ZW1wX3BhdGhfMikK
KworCitkZWYgd3JpdGVfbmV3X2V4cGVjdGVkKG1ldGFkYXRhX3BhdGgsIGV4cGVjdGVkX21hcCk6
CisgICAgIyBTZXJpYWxpemUgdGhlIGRhdGEgYmFjayB0byBhIGZpbGUKKyAgICBmb3IgdHJlZSBp
biBleHBlY3RlZF9tYXAuaXRlcnZhbHVlcygpOgorICAgICAgICBpZiBub3QgdHJlZS5pc19lbXB0
eToKKyAgICAgICAgICAgIG1hbmlmZXN0X3N0ciA9IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZSh0cmVl
Lm5vZGUsIHNraXBfZW1wdHlfZGF0YT1UcnVlKQorICAgICAgICAgICAgYXNzZXJ0IG1hbmlmZXN0
X3N0ciAhPSAiIgorICAgICAgICAgICAgcGF0aCA9IGV4cGVjdGVkLmV4cGVjdGVkX3BhdGgobWV0
YWRhdGFfcGF0aCwgdHJlZS50ZXN0X3BhdGgpCisgICAgICAgICAgICBkaXIgPSBvcy5wYXRoLnNw
bGl0KHBhdGgpWzBdCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlyKToKKyAg
ICAgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXIpCisgICAgICAgICAgICB3aXRoIG9wZW4ocGF0
aCwgIndiIikgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKG1hbmlmZXN0X3N0cikKKwor
CitjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
dGVzdF9tYW5pZmVzdHMsIGV4cGVjdGVkX3RyZWUsIGlkX3BhdGhfbWFwLCBpZ25vcmVfZXhpc3Rp
bmc9RmFsc2UpOgorICAgICAgICBzZWxmLnRlc3RfbWFuaWZlc3RzID0gdGVzdF9tYW5pZmVzdHMK
KyAgICAgICAgc2VsZi5leHBlY3RlZF90cmVlID0gZXhwZWN0ZWRfdHJlZQorICAgICAgICBzZWxm
LmlkX3BhdGhfbWFwID0gaWRfcGF0aF9tYXAKKyAgICAgICAgc2VsZi5pZ25vcmVfZXhpc3Rpbmcg
PSBpZ25vcmVfZXhpc3RpbmcKKyAgICAgICAgc2VsZi5ydW5faW5mbyA9IE5vbmUKKyAgICAgICAg
c2VsZi5hY3Rpb25fbWFwID0geyJzdWl0ZV9zdGFydCI6IHNlbGYuc3VpdGVfc3RhcnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9zdGFydCI6IHNlbGYudGVzdF9zdGFydCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X3N0YXR1cyI6IHNlbGYudGVzdF9zdGF0dXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9lbmQiOiBzZWxmLnRlc3RfZW5kfQor
ICAgICAgICBzZWxmLnRlc3RzX3Zpc2l0ZWQgPSB7fQorCisgICAgICAgIHNlbGYudGVzdF9jYWNo
ZSA9IHt9CisKKyAgICBkZWYgdXBkYXRlX2Zyb21fbG9nKHNlbGYsIGxvZ19maWxlKToKKyAgICAg
ICAgc2VsZi5ydW5faW5mbyA9IE5vbmUKKyAgICAgICAgbG9nX3JlYWRlciA9IHJlYWRlci5yZWFk
KGxvZ19maWxlKQorICAgICAgICByZWFkZXIuZWFjaF9sb2cobG9nX3JlYWRlciwgc2VsZi5hY3Rp
b25fbWFwKQorCisgICAgZGVmIHN1aXRlX3N0YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxm
LnJ1bl9pbmZvID0gZGF0YVsicnVuX2luZm8iXQorCisgICAgZGVmIHRlc3RfdHlwZShzZWxmLCBw
YXRoKToKKyAgICAgICAgZm9yIG1hbmlmZXN0IGluIHNlbGYudGVzdF9tYW5pZmVzdHMuaXRlcmtl
eXMoKToKKyAgICAgICAgICAgIHRlc3RzID0gbGlzdChtYW5pZmVzdC5pdGVycGF0aChwYXRoKSkK
KyAgICAgICAgICAgIGlmIGxlbih0ZXN0cyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFsbCh0
ZXN0Lml0ZW1fdHlwZSA9PSB0ZXN0c1swXS5pdGVtX3R5cGUgZm9yIHRlc3QgaW4gdGVzdHMpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RzWzBdLml0ZW1fdHlwZQorICAgICAgICBhc3NlcnQg
RmFsc2UKKworICAgIGRlZiB0ZXN0X3N0YXJ0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X2lk
ID0gZGF0YVsidGVzdCJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RfbWFuaWZlc3Qs
IHRlc3QgPSBzZWxmLmlkX3BhdGhfbWFwW3Rlc3RfaWRdCisgICAgICAgICAgICBleHBlY3RlZF9u
b2RlID0gc2VsZi5leHBlY3RlZF90cmVlW3Rlc3RfbWFuaWZlc3RdW3Rlc3RdLmdldF90ZXN0KHRl
c3RfaWQpCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJUZXN0
IG5vdCBmb3VuZCAlcywgc2tpcHBpbmciICUgdGVzdF9pZAorICAgICAgICAgICAgcmV0dXJuCisg
ICAgICAgIHNlbGYudGVzdF9jYWNoZVt0ZXN0X2lkXSA9IGV4cGVjdGVkX25vZGUKKworICAgICAg
ICBpZiB0ZXN0X2lkIG5vdCBpbiBzZWxmLnRlc3RzX3Zpc2l0ZWQ6CisgICAgICAgICAgICBpZiBz
ZWxmLmlnbm9yZV9leGlzdGluZzoKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9ub2RlLmNsZWFy
X2V4cGVjdGVkKCkKKyAgICAgICAgICAgIHNlbGYudGVzdHNfdmlzaXRlZFt0ZXN0X2lkXSA9IHNl
dCgpCisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBz
ZWxmLnRlc3RfY2FjaGUuZ2V0KGRhdGFbInRlc3QiXSkKKyAgICAgICAgaWYgdGVzdCBpcyBOb25l
OgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHRlc3RfY2xzID0gd3B0dGVzdC5tYW5pZmVz
dF90ZXN0X2Nsc1tzZWxmLnRlc3RfdHlwZSh0ZXN0LnJvb3QudGVzdF9wYXRoKV0KKworICAgICAg
ICBzdWJ0ZXN0ID0gdGVzdC5nZXRfc3VidGVzdChkYXRhWyJzdWJ0ZXN0Il0pCisKKyAgICAgICAg
c2VsZi50ZXN0c192aXNpdGVkW3Rlc3QuaWRdLmFkZChkYXRhWyJzdWJ0ZXN0Il0pCisKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdF9jbHMuc3VidGVzdF9yZXN1bHRfY2xzKAorICAgICAgICAgICAgZGF0
YVsic3VidGVzdCJdLAorICAgICAgICAgICAgZGF0YVsic3RhdHVzIl0sCisgICAgICAgICAgICBk
YXRhLmdldCgibWVzc2FnZSIpKQorCisgICAgICAgIHN1YnRlc3Quc2V0X3Jlc3VsdChzZWxmLnJ1
bl9pbmZvLCByZXN1bHQpCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAg
IHRlc3RfaWQgPSBkYXRhWyJ0ZXN0Il0KKyAgICAgICAgdGVzdCA9IHNlbGYudGVzdF9jYWNoZS5n
ZXQodGVzdF9pZCkKKyAgICAgICAgaWYgdGVzdCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgIHRlc3RfY2xzID0gd3B0dGVzdC5tYW5pZmVzdF90ZXN0X2Nsc1tzZWxmLnRlc3Rf
dHlwZSh0ZXN0LnJvb3QudGVzdF9wYXRoKV0KKworICAgICAgICBpZiBkYXRhWyJzdGF0dXMiXSA9
PSAiU0tJUCI6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICByZXN1bHQgPSB0ZXN0X2Ns
cy5yZXN1bHRfY2xzKAorICAgICAgICAgICAgZGF0YVsic3RhdHVzIl0sCisgICAgICAgICAgICBk
YXRhLmdldCgibWVzc2FnZSIpKQorICAgICAgICB0ZXN0LnNldF9yZXN1bHQoc2VsZi5ydW5faW5m
bywgcmVzdWx0KQorICAgICAgICBkZWwgc2VsZi50ZXN0X2NhY2hlW3Rlc3RfaWRdCisKKworZGVm
IGNyZWF0ZV90ZXN0X3RyZWUobWV0YWRhdGFfcGF0aCwgdGVzdF9tYW5pZmVzdCwgcHJvcGVydHlf
b3JkZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1Ob25l
KToKKyAgICBleHBlY3RlZF9tYXAgPSB7fQorICAgIGlkX3Rlc3RfbWFwID0ge30KKyAgICBleGNs
dWRlX3R5cGVzID0gZnJvemVuc2V0KFsic3R1YiIsICJoZWxwZXIiLCAibWFudWFsIiwgInN1cHBv
cnQiLCAiY29uZm9ybWFuY2VjaGVja2VyIl0pCisgICAgYWxsX3R5cGVzID0gW2l0ZW0uaXRlbV90
eXBlIGZvciBpdGVtIGluIG1hbmlmZXN0aXRlbS5fX2RpY3RfXy5pdGVydmFsdWVzKCkKKyAgICAg
ICAgICAgICAgICAgaWYgdHlwZShpdGVtKSA9PSB0eXBlIGFuZAorICAgICAgICAgICAgICAgICBp
c3N1YmNsYXNzKGl0ZW0sIG1hbmlmZXN0aXRlbS5NYW5pZmVzdEl0ZW0pIGFuZAorICAgICAgICAg
ICAgICAgICBpdGVtLml0ZW1fdHlwZSBpcyBub3QgTm9uZV0KKyAgICBpbmNsdWRlX3R5cGVzID0g
c2V0KGFsbF90eXBlcykgLSBleGNsdWRlX3R5cGVzCisgICAgZm9yIF8sIHRlc3RfcGF0aCwgdGVz
dHMgaW4gdGVzdF9tYW5pZmVzdC5pdGVydHlwZXMoKmluY2x1ZGVfdHlwZXMpOgorICAgICAgICBl
eHBlY3RlZF9kYXRhID0gbG9hZF9leHBlY3RlZCh0ZXN0X21hbmlmZXN0LCBtZXRhZGF0YV9wYXRo
LCB0ZXN0X3BhdGgsIHRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykKKyAg
ICAgICAgaWYgZXhwZWN0ZWRfZGF0YSBpcyBOb25lOgorICAgICAgICAgICAgZXhwZWN0ZWRfZGF0
YSA9IGNyZWF0ZV9leHBlY3RlZCh0ZXN0X21hbmlmZXN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJv
b2xlYW5fcHJvcGVydGllcykKKworICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAg
ICAgIGlkX3Rlc3RfbWFwW3Rlc3QuaWRdID0gKHRlc3RfbWFuaWZlc3QsIHRlc3QpCisgICAgICAg
ICAgICBleHBlY3RlZF9tYXBbdGVzdF0gPSBleHBlY3RlZF9kYXRhCisKKyAgICByZXR1cm4gZXhw
ZWN0ZWRfbWFwLCBpZF90ZXN0X21hcAorCisKK2RlZiBjcmVhdGVfZXhwZWN0ZWQodGVzdF9tYW5p
ZmVzdCwgdGVzdF9wYXRoLCB0ZXN0cywgcHJvcGVydHlfb3JkZXI9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorICAgIGV4cGVjdGVkID0gbWFuaWZl
c3R1cGRhdGUuRXhwZWN0ZWRNYW5pZmVzdChOb25lLCB0ZXN0X3BhdGgsIHRlc3RfbWFuaWZlc3Qu
dXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByb3BlcnR5X29yZGVyPXByb3BlcnR5X29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0
aWVzKQorICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICBleHBlY3RlZC5hcHBlbmQobWFu
aWZlc3R1cGRhdGUuVGVzdE5vZGUuY3JlYXRlKHRlc3QuaWQpKQorICAgIHJldHVybiBleHBlY3Rl
ZAorCisKK2RlZiBsb2FkX2V4cGVjdGVkKHRlc3RfbWFuaWZlc3QsIG1ldGFkYXRhX3BhdGgsIHRl
c3RfcGF0aCwgdGVzdHMsIHByb3BlcnR5X29yZGVyPU5vbmUsCisgICAgICAgICAgICAgICAgICBi
b29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CisgICAgZXhwZWN0ZWRfbWFuaWZlc3QgPSBtYW5pZmVz
dHVwZGF0ZS5nZXRfbWFuaWZlc3QobWV0YWRhdGFfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tYW5pZmVzdC51cmxf
YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9w
cm9wZXJ0aWVzKQorICAgIGlmIGV4cGVjdGVkX21hbmlmZXN0IGlzIE5vbmU6CisgICAgICAgIHJl
dHVybgorCisgICAgdGVzdHNfYnlfaWQgPSB7aXRlbS5pZDogaXRlbSBmb3IgaXRlbSBpbiB0ZXN0
c30KKworICAgICMgUmVtb3ZlIGV4cGVjdGVkIGRhdGEgZm9yIHRlc3RzIHRoYXQgbm8gbG9uZ2Vy
IGV4aXN0CisgICAgZm9yIHRlc3QgaW4gZXhwZWN0ZWRfbWFuaWZlc3QuaXRlcmNoaWxkcmVuKCk6
CisgICAgICAgIGlmIHRlc3QuaWQgbm90IGluIHRlc3RzX2J5X2lkOgorICAgICAgICAgICAgdGVz
dC5yZW1vdmUoKQorCisgICAgIyBBZGQgdGVzdHMgdGhhdCBkb24ndCBoYXZlIGV4cGVjdGVkIGRh
dGEKKyAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgaWYgbm90IGV4cGVjdGVkX21hbmlm
ZXN0Lmhhc190ZXN0KHRlc3QuaWQpOgorICAgICAgICAgICAgZXhwZWN0ZWRfbWFuaWZlc3QuYXBw
ZW5kKG1hbmlmZXN0dXBkYXRlLlRlc3ROb2RlLmNyZWF0ZSh0ZXN0LmlkKSkKKworICAgIHJldHVy
biBleHBlY3RlZF9tYW5pZmVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNzdmOTVkZmQ5NTZiODlm
MzdjNDVmZTdkYTYyOTlmNWE1ZmI4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
cHJvZHVjdHMucHkKQEAgLTAsMCArMSw2OSBAQAoraW1wb3J0IG9zCitpbXBvcnQgaW1wb3J0bGli
CitpbXBvcnQgaW1wCisKK2Zyb20gLmJyb3dzZXJzIGltcG9ydCBwcm9kdWN0X2xpc3QKKworZGVm
IHByb2R1Y3RzX2VuYWJsZWQoY29uZmlnKToKKyAgICBuYW1lcyA9IGNvbmZpZy5nZXQoInByb2R1
Y3RzIiwge30pLmtleXMoKQorICAgIGlmIG5vdCBuYW1lczoKKyAgICAgICAgcmV0dXJuIHByb2R1
Y3RfbGlzdAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBuYW1lcworCitkZWYgcHJvZHVjdF9t
b2R1bGUoY29uZmlnLCBwcm9kdWN0KToKKyAgICBoZXJlID0gb3MucGF0aC5qb2luKG9zLnBhdGgu
c3BsaXQoX19maWxlX18pWzBdKQorICAgIHByb2R1Y3RfZGlyID0gb3MucGF0aC5qb2luKGhlcmUs
ICJicm93c2VycyIpCisKKyAgICBpZiBwcm9kdWN0IG5vdCBpbiBwcm9kdWN0c19lbmFibGVkKGNv
bmZpZyk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gcHJvZHVjdCAlcyIgJSBw
cm9kdWN0KQorCisgICAgcGF0aCA9IGNvbmZpZy5nZXQoInByb2R1Y3RzIiwge30pLmdldChwcm9k
dWN0LCBOb25lKQorICAgIGlmIHBhdGg6CisgICAgICAgIG1vZHVsZSA9IGltcC5sb2FkX3NvdXJj
ZSgnd3B0cnVubmVyLmJyb3dzZXJzLicgKyBwcm9kdWN0LCBwYXRoKQorICAgIGVsc2U6CisgICAg
ICAgIG1vZHVsZSA9IGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCJ3cHRydW5uZXIuYnJvd3NlcnMu
IiArIHByb2R1Y3QpCisKKyAgICBpZiBub3QgaGFzYXR0cihtb2R1bGUsICJfX3dwdHJ1bm5lcl9f
Iik6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlByb2R1Y3QgbW9kdWxlIGRvZXMgbm90IGRl
ZmluZSBfX3dwdHJ1bm5lcl9fIHZhcmlhYmxlIikKKworICAgIHJldHVybiBtb2R1bGUKKworCitk
ZWYgbG9hZF9wcm9kdWN0KGNvbmZpZywgcHJvZHVjdCk6CisgICAgbW9kdWxlID0gcHJvZHVjdF9t
b2R1bGUoY29uZmlnLCBwcm9kdWN0KQorICAgIGRhdGEgPSBtb2R1bGUuX193cHRydW5uZXJfXwor
CisgICAgY2hlY2tfYXJncyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJjaGVja19hcmdzIl0pCisg
ICAgYnJvd3Nlcl9jbHMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3NlciJdKQorICAgIGJy
b3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdzIl0pCisg
ICAgZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImV4ZWN1dG9yX2t3YXJn
cyJdKQorICAgIGVudl9vcHRpb25zID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImVudl9vcHRpb25z
Il0pKCkKKyAgICBlbnZfZXh0cmFzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImVudl9leHRyYXMi
XSkKKyAgICBydW5faW5mb19leHRyYXMgPSAoZ2V0YXR0cihtb2R1bGUsIGRhdGFbInJ1bl9pbmZv
X2V4dHJhcyJdKQorICAgICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBp
biBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9KQorCisgICAgZXhlY3V0b3JfY2xhc3NlcyA9
IHt9CisgICAgZm9yIHRlc3RfdHlwZSwgY2xzX25hbWUgaW4gZGF0YVsiZXhlY3V0b3IiXS5pdGVy
aXRlbXMoKToKKyAgICAgICAgY2xzID0gZ2V0YXR0cihtb2R1bGUsIGNsc19uYW1lKQorICAgICAg
ICBleGVjdXRvcl9jbGFzc2VzW3Rlc3RfdHlwZV0gPSBjbHMKKworICAgIHJldHVybiAoY2hlY2tf
YXJncywKKyAgICAgICAgICAgIGJyb3dzZXJfY2xzLCBicm93c2VyX2t3YXJncywKKyAgICAgICAg
ICAgIGV4ZWN1dG9yX2NsYXNzZXMsIGV4ZWN1dG9yX2t3YXJncywKKyAgICAgICAgICAgIGVudl9v
cHRpb25zLCBlbnZfZXh0cmFzLCBydW5faW5mb19leHRyYXMpCisKKworZGVmIGxvYWRfcHJvZHVj
dF91cGRhdGUoY29uZmlnLCBwcm9kdWN0KToKKyAgICAiIiJSZXR1cm4gdHVwbGUgb2YgKHByb3Bl
cnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRpZXMpIGluZGljYXRpbmcgdGhlCisgICAgcnVuX2lu
Zm8gcHJvcGVydGllcyB0byB1c2Ugd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGV4cGVjdGF0aW9uIGRh
dGEgZm9yCisgICAgdGhpcyBwcm9kdWN0LiBOb25lIGZvciBlaXRoZXIga2V5IGluZGljYXRlcyB0
aGF0IHRoZSBkZWZhdWx0IGtleXMKKyAgICBhcHByb3ByaWF0ZSBmb3IgZGlzdGluZ3Vpc2hpbmcg
YmFzZWQgb24gcGxhdGZvcm0gd2lsbCBiZSB1c2VkLiIiIgorCisgICAgbW9kdWxlID0gcHJvZHVj
dF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQorICAgIGRhdGEgPSBtb2R1bGUuX193cHRydW5uZXJf
XworCisgICAgdXBkYXRlX3Byb3BlcnRpZXMgPSAoZ2V0YXR0cihtb2R1bGUsIGRhdGFbInVwZGF0
ZV9wcm9wZXJ0aWVzIl0pKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAidXBkYXRlX3By
b3BlcnRpZXMiIGluIGRhdGEgZWxzZSAoTm9uZSwgTm9uZSkpCisKKyAgICByZXR1cm4gdXBkYXRl
X3Byb3BlcnRpZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9yZWR1Y2UucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvcmVkdWNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyNDVlZTM2MDJiOTdlMTQ0NjNhNTdjODRmMTMy
ZmI0ZDY0NGY4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcmVkdWNlLnB5CkBA
IC0wLDAgKzEsMTkzIEBACitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2Zyb20gY1N0cmlu
Z0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QK
KworaW1wb3J0IHdwdHJ1bm5lcgoraW1wb3J0IHdwdHRlc3QKKworZnJvbSBtb3psb2cgaW1wb3J0
IGNvbW1hbmRsaW5lLCByZWFkZXIKKworbG9nZ2VyID0gTm9uZQorCisKK2RlZiBzZXR1cF9sb2dn
aW5nKGFyZ3MsIGRlZmF1bHRzKToKKyAgICBnbG9iYWwgbG9nZ2VyCisgICAgbG9nZ2VyID0gY29t
bWFuZGxpbmUuc2V0dXBfbG9nZ2luZygid2ViLXBsYXRmb3JtLXRlc3RzLXVuc3RhYmxlIiwgYXJn
cywgZGVmYXVsdHMpCisgICAgd3B0cnVubmVyLnNldHVwX3N0ZGxpYl9sb2dnZXIoKQorCisgICAg
Zm9yIG5hbWUgaW4gYXJncy5rZXlzKCk6CisgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgibG9n
XyIpOgorICAgICAgICAgICAgYXJncy5wb3AobmFtZSkKKworICAgIHJldHVybiBsb2dnZXIKKwor
CitkZWYgZ3JvdXAoaXRlbXMsIHNpemUpOgorICAgIHJ2ID0gW10KKyAgICBpID0gMAorICAgIHdo
aWxlIGkgPCBsZW4oaXRlbXMpOgorICAgICAgICBydi5hcHBlbmQoaXRlbXNbaTppICsgc2l6ZV0p
CisgICAgICAgIGkgKz0gc2l6ZQorCisgICAgcmV0dXJuIHJ2CisKKworZGVmIG5leHRfcG93ZXJf
b2ZfdHdvKG51bSk6CisgICAgcnYgPSAxCisgICAgd2hpbGUgcnYgPCBudW06CisgICAgICAgIHJ2
ID0gcnYgPDwgMQorICAgIHJldHVybiBydgorCisKK2NsYXNzIFJlZHVjZXIob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgdGFyZ2V0LCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYudGFy
Z2V0ID0gdGFyZ2V0CisKKyAgICAgICAgc2VsZi50ZXN0X3R5cGUgPSBrd2FyZ3NbInRlc3RfdHlw
ZXMiXVswXQorICAgICAgICBydW5faW5mbyA9IHdwdHRlc3QuZ2V0X3J1bl9pbmZvKGt3YXJnc1si
bWV0YWRhdGFfcm9vdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJnc1sicHJvZHVjdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlYnVnPUZhbHNlKQorICAgICAgICB0ZXN0X2ZpbHRlciA9IHdwdHJ1bm5lci5UZXN0Rmls
dGVyKGluY2x1ZGU9a3dhcmdzWyJpbmNsdWRlIl0pCisgICAgICAgIHNlbGYudGVzdF9sb2FkZXIg
PSB3cHRydW5uZXIuVGVzdExvYWRlcihrd2FyZ3NbInRlc3RzX3Jvb3QiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sibWV0YWRhdGFfcm9v
dCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYudGVzdF90eXBlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWFuaWZlc3RfZmlsZXI9dGVzdF9maWx0ZXIpCisgICAgICAgIGlmIGt3YXJnc1si
cmVwZWF0Il0gPT0gMToKKyAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiTmVlZCB0byBzcGVj
aWZ5IC0tcmVwZWF0IHdpdGggbW9yZSB0aGFuIG9uZSByZXBldGl0aW9uIikKKyAgICAgICAgICAg
IHN5cy5leGl0KDEpCisgICAgICAgIHNlbGYua3dhcmdzID0ga3dhcmdzCisKKyAgICBkZWYgcnVu
KHNlbGYpOgorICAgICAgICBhbGxfdGVzdHMgPSBzZWxmLmdldF9pbml0aWFsX3Rlc3RzKCkKKwor
ICAgICAgICB0ZXN0cyA9IGFsbF90ZXN0c1s6LTFdCisgICAgICAgIHRhcmdldF90ZXN0ID0gW2Fs
bF90ZXN0c1stMV1dCisKKyAgICAgICAgaWYgc2VsZi51bnN0YWJsZSh0YXJnZXRfdGVzdCk6Cisg
ICAgICAgICAgICByZXR1cm4gdGFyZ2V0X3Rlc3QKKworICAgICAgICBpZiBub3Qgc2VsZi51bnN0
YWJsZShhbGxfdGVzdHMpOgorICAgICAgICAgICAgcmV0dXJuIFtdCisKKyAgICAgICAgY2h1bmtf
c2l6ZSA9IG5leHRfcG93ZXJfb2ZfdHdvKGludChsZW4odGVzdHMpIC8gMikpCisgICAgICAgIGxv
Z2dlci5kZWJ1ZygiVXNpbmcgY2h1bmsgc2l6ZSAlaSIgJSBjaHVua19zaXplKQorCisgICAgICAg
IHdoaWxlIGNodW5rX3NpemUgPj0gMToKKyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiJWkgdGVz
dHMgcmVtYWluIiAlIGxlbih0ZXN0cykpCisgICAgICAgICAgICBjaHVua3MgPSBncm91cCh0ZXN0
cywgY2h1bmtfc2l6ZSkKKyAgICAgICAgICAgIGNodW5rX3Jlc3VsdHMgPSBbTm9uZV0gKiBsZW4o
Y2h1bmtzKQorCisgICAgICAgICAgICBmb3IgaSwgY2h1bmsgaW4gZW51bWVyYXRlKGNodW5rcyk6
CisgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJSdW5uaW5nIGNodW5rICVpLyVpIG9mIHNp
emUgJWkiICUgKGkgKyAxLCBsZW4oY2h1bmtzKSwgY2h1bmtfc2l6ZSkpCisgICAgICAgICAgICAg
ICAgdHJpYWxfdGVzdHMgPSBbXQorICAgICAgICAgICAgICAgIGNodW5rX3N0ciA9ICIiCisgICAg
ICAgICAgICAgICAgZm9yIGosIGluY19jaHVuayBpbiBlbnVtZXJhdGUoY2h1bmtzKToKKyAgICAg
ICAgICAgICAgICAgICAgaWYgaSAhPSBqIGFuZCBjaHVua19yZXN1bHRzW2pdIGluIChOb25lLCBG
YWxzZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBjaHVua19zdHIgKz0gIisiCisgICAgICAg
ICAgICAgICAgICAgICAgICB0cmlhbF90ZXN0cy5leHRlbmQoaW5jX2NodW5rKQorICAgICAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtfc3RyICs9ICIt
IgorICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiVXNpbmcgY2h1bmtzICVzIiAlIGNodW5r
X3N0cikKKyAgICAgICAgICAgICAgICB0cmlhbF90ZXN0cy5leHRlbmQodGFyZ2V0X3Rlc3QpCisK
KyAgICAgICAgICAgICAgICBjaHVua19yZXN1bHRzW2ldID0gc2VsZi51bnN0YWJsZSh0cmlhbF90
ZXN0cykKKworICAgICAgICAgICAgICAgICMgaWYgaSA9PSBsZW4oY2h1bmtzKSAtIDIgYW5kIGFs
bChpdGVtIGlzIEZhbHNlIGZvciBpdGVtIGluIGNodW5rX3Jlc3VsdHNbOi0xXSk6CisgICAgICAg
ICAgICAgICAgIyBEYW5nZXJvdXM/IG9wdGltaXNhdGlvbiB0aGF0IGlmIHlvdSBnb3Qgc3RhYmls
aXR5IGZvciAwLi5OLTEgY2h1bmtzCisgICAgICAgICAgICAgICAgIyBpdCBtdXN0IGJlIHVuc3Rh
YmxlIHdpdGggdGhlIE50aCBjaHVuaworICAgICAgICAgICAgICAgICMgICAgIGNodW5rX3Jlc3Vs
dHNbaSsxXSA9IFRydWUKKyAgICAgICAgICAgICAgICAjICAgICBjb250aW51ZQorCisgICAgICAg
ICAgICBuZXdfdGVzdHMgPSBbXQorICAgICAgICAgICAga2VlcF9zdHIgPSAiIgorICAgICAgICAg
ICAgZm9yIHJlc3VsdCwgY2h1bmsgaW4gemlwKGNodW5rX3Jlc3VsdHMsIGNodW5rcyk6CisgICAg
ICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAga2VlcF9zdHIg
Kz0gIisiCisgICAgICAgICAgICAgICAgICAgIG5ld190ZXN0cy5leHRlbmQoY2h1bmspCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAga2VlcF9zdHIgKz0gIi0iCisK
KyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiS2VlcGluZyBjaHVua3MgJXMiICUga2VlcF9zdHIp
CisKKyAgICAgICAgICAgIHRlc3RzID0gbmV3X3Rlc3RzCisKKyAgICAgICAgICAgIGNodW5rX3Np
emUgPSBpbnQoY2h1bmtfc2l6ZSAvIDIpCisKKyAgICAgICAgcmV0dXJuIHRlc3RzICsgdGFyZ2V0
X3Rlc3QKKworICAgIGRlZiB1bnN0YWJsZShzZWxmLCB0ZXN0cyk6CisgICAgICAgIGxvZ2dlci5k
ZWJ1ZygiUnVubmluZyB3aXRoICVpIHRlc3RzIiAlIGxlbih0ZXN0cykpCisKKyAgICAgICAgc2Vs
Zi50ZXN0X2xvYWRlci50ZXN0cyA9IHtzZWxmLnRlc3RfdHlwZTogdGVzdHN9CisKKyAgICAgICAg
c3Rkb3V0LCBzdGRlcnIgPSBzeXMuc3Rkb3V0LCBzeXMuc3RkZXJyCisgICAgICAgIHN5cy5zdGRv
dXQgPSBTdHJpbmdJTygpCisgICAgICAgIHN5cy5zdGRlcnIgPSBTdHJpbmdJTygpCisKKyAgICAg
ICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKSBhcyBmOgorICAgICAgICAgICAg
YXJncyA9IHNlbGYua3dhcmdzLmNvcHkoKQorICAgICAgICAgICAgYXJnc1sibG9nX3JhdyJdID0g
W2ZdCisgICAgICAgICAgICBhcmdzWyJjYXB0dXJlX3N0ZGlvIl0gPSBGYWxzZQorICAgICAgICAg
ICAgd3B0cnVubmVyLnNldHVwX2xvZ2dpbmcoYXJncywge30pCisgICAgICAgICAgICB3cHRydW5u
ZXIucnVuX3Rlc3RzKHRlc3RfbG9hZGVyPXNlbGYudGVzdF9sb2FkZXIsICoqYXJncykKKyAgICAg
ICAgICAgIHdwdHJ1bm5lci5sb2dnZXIucmVtb3ZlX2hhbmRsZXIod3B0cnVubmVyLmxvZ2dlci5o
YW5kbGVyc1swXSkKKyAgICAgICAgICAgIGlzX3Vuc3RhYmxlID0gc2VsZi5sb2dfaXNfdW5zdGFi
bGUoZikKKworICAgICAgICAgICAgc3lzLnN0ZG91dCwgc3lzLnN0ZGVyciA9IHN0ZG91dCwgc3Rk
ZXJyCisKKyAgICAgICAgbG9nZ2VyLmRlYnVnKCJSZXN1bHQgd2FzIHVuc3RhYmxlIHdpdGggY2h1
bmsgcmVtb3ZlZCIKKyAgICAgICAgICAgICAgICAgICAgIGlmIGlzX3Vuc3RhYmxlIGVsc2UgInN0
YWJsZSIpCisKKyAgICAgICAgcmV0dXJuIGlzX3Vuc3RhYmxlCisKKyAgICBkZWYgbG9nX2lzX3Vu
c3RhYmxlKHNlbGYsIGxvZ19mKToKKyAgICAgICAgbG9nX2Yuc2VlaygwKQorCisgICAgICAgIHN0
YXR1c2VzID0gZGVmYXVsdGRpY3Qoc2V0KQorCisgICAgICAgIGRlZiBoYW5kbGVfc3RhdHVzKGl0
ZW0pOgorICAgICAgICAgICAgaWYgaXRlbVsidGVzdCJdID09IHNlbGYudGFyZ2V0OgorICAgICAg
ICAgICAgICAgIHN0YXR1c2VzW2l0ZW1bInN1YnRlc3QiXV0uYWRkKGl0ZW1bInN0YXR1cyJdKQor
CisgICAgICAgIGRlZiBoYW5kbGVfZW5kKGl0ZW0pOgorICAgICAgICAgICAgaWYgaXRlbVsidGVz
dCJdID09IHNlbGYudGFyZ2V0OgorICAgICAgICAgICAgICAgIHN0YXR1c2VzW05vbmVdLmFkZChp
dGVtWyJzdGF0dXMiXSkKKworICAgICAgICByZWFkZXIuZWFjaF9sb2cocmVhZGVyLnJlYWQobG9n
X2YpLAorICAgICAgICAgICAgICAgICAgICAgICAgeyJ0ZXN0X3N0YXR1cyI6IGhhbmRsZV9zdGF0
dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RfZW5kIjogaGFuZGxlX2VuZH0pCisK
KyAgICAgICAgbG9nZ2VyLmRlYnVnKHN0cihzdGF0dXNlcykpCisKKyAgICAgICAgaWYgbm90IHN0
YXR1c2VzOgorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJEaWRuJ3QgZ2V0IGFueSB1c2VmdWwg
b3V0cHV0IGZyb20gd3B0cnVubmVyIikKKyAgICAgICAgICAgIGxvZ19mLnNlZWsoMCkKKyAgICAg
ICAgICAgIGZvciBpdGVtIGluIHJlYWRlci5yZWFkKGxvZ19mKToKKyAgICAgICAgICAgICAgICBs
b2dnZXIuZGVidWcoaXRlbSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0
dXJuIGFueShsZW4oaXRlbSkgPiAxIGZvciBpdGVtIGluIHN0YXR1c2VzLml0ZXJ2YWx1ZXMoKSkK
KworICAgIGRlZiBnZXRfaW5pdGlhbF90ZXN0cyhzZWxmKToKKyAgICAgICAgIyBOZWVkIHRvIHBh
c3MgaW4gYXJndW1lbnRzCisKKyAgICAgICAgYWxsX3Rlc3RzID0gc2VsZi50ZXN0X2xvYWRlci50
ZXN0c1tzZWxmLnRlc3RfdHlwZV0KKyAgICAgICAgdGVzdHMgPSBbXQorICAgICAgICBmb3IgaXRl
bSBpbiBhbGxfdGVzdHM6CisgICAgICAgICAgICB0ZXN0cy5hcHBlbmQoaXRlbSkKKyAgICAgICAg
ICAgIGlmIGl0ZW0udXJsID09IHNlbGYudGFyZ2V0OgorICAgICAgICAgICAgICAgIGJyZWFrCisK
KyAgICAgICAgbG9nZ2VyLmRlYnVnKCJTdGFydGluZyB3aXRoIHRlc3RzOiAlcyIgJSAoIlxuIi5q
b2luKGl0ZW0uaWQgZm9yIGl0ZW0gaW4gdGVzdHMpKSkKKworICAgICAgICByZXR1cm4gdGVzdHMK
KworCitkZWYgZG9fcmVkdWNlKCoqa3dhcmdzKToKKyAgICB0YXJnZXQgPSBrd2FyZ3MucG9wKCJ0
YXJnZXQiKQorICAgIHJlZHVjZXIgPSBSZWR1Y2VyKHRhcmdldCwgKiprd2FyZ3MpCisKKyAgICB1
bnN0YWJsZV9zZXQgPSByZWR1Y2VyLnJ1bigpCisgICAgcmV0dXJuIHVuc3RhYmxlX3NldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxp
dHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTE3MDljNTc0OWE0MzM1MWUwNjEyMDVlOGZlNDA5NzZjY2YxNWE3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKQEAgLTAsMCAr
MSwyNzkgQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaW1wCitpbXBv
cnQgaW8KK2ltcG9ydCBvcworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QsIGRl
ZmF1bHRkaWN0Citmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQorCitmcm9tIG1vemxvZyBp
bXBvcnQgcmVhZGVyCitmcm9tIG1vemxvZy5mb3JtYXR0ZXJzIGltcG9ydCBKU09ORm9ybWF0dGVy
Citmcm9tIG1vemxvZy5oYW5kbGVycyBpbXBvcnQgQmFzZUhhbmRsZXIsIFN0cmVhbUhhbmRsZXIs
IExvZ0xldmVsRmlsdGVyCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCitsb2Nh
bHBhdGhzID0gaW1wLmxvYWRfc291cmNlKCJsb2NhbHBhdGhzIiwgb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgImxvY2FscGF0aHMucHkiKSkp
Citmcm9tIHdwdC5tYXJrZG93biBpbXBvcnQgbWFya2Rvd25fYWRqdXN0LCB0YWJsZQorCisKK2Ns
YXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CisKKyAgICAiIiJIYW5kbGVyIHRoYXQg
ZmlsdGVycyBvdXQgbWVzc2FnZXMgbm90IG9mIGEgZ2l2ZW4gc2V0IG9mIGFjdGlvbnMuCisKKyAg
ICBTdWJjbGFzc2VzIEJhc2VIYW5kbGVyLgorCisgICAgOnBhcmFtIGlubmVyOiBIYW5kbGVyIHRv
IHVzZSBmb3IgbWVzc2FnZXMgdGhhdCBwYXNzIHRoaXMgZmlsdGVyCisgICAgOnBhcmFtIGFjdGlv
bnM6IExpc3Qgb2YgYWN0aW9ucyBmb3Igd2hpY2ggdG8gZmlyZSB0aGUgaGFuZGxlcgorICAgICIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlubmVyLCBhY3Rpb25zKToKKyAgICAgICAgIiIi
RXh0ZW5kIEJhc2VIYW5kbGVyIGFuZCBzZXQgaW5uZXIgYW5kIGFjdGlvbnMgcHJvcHMgb24gc2Vs
Zi4iIiIKKyAgICAgICAgQmFzZUhhbmRsZXIuX19pbml0X18oc2VsZiwgaW5uZXIpCisgICAgICAg
IHNlbGYuaW5uZXIgPSBpbm5lcgorICAgICAgICBzZWxmLmFjdGlvbnMgPSBhY3Rpb25zCisKKyAg
ICBkZWYgX19jYWxsX18oc2VsZiwgaXRlbSk6CisgICAgICAgICIiIkludm9rZSBoYW5kbGVyIGlm
IGFjdGlvbiBpcyBpbiBsaXN0IHBhc3NlZCBhcyBjb25zdHJ1Y3RvciBwYXJhbS4iIiIKKyAgICAg
ICAgaWYgaXRlbVsiYWN0aW9uIl0gaW4gc2VsZi5hY3Rpb25zOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuaW5uZXIoaXRlbSkKKworCitjbGFzcyBMb2dIYW5kbGVyKHJlYWRlci5Mb2dIYW5kbGVy
KToKKworICAgICIiIkhhbmRsZSB1cGRhdGluZyB0ZXN0IGFuZCBzdWJ0ZXN0IHN0YXR1cyBpbiBs
b2cuCisKKyAgICBTdWJjbGFzc2VzIHJlYWRlci5Mb2dIYW5kbGVyLgorICAgICIiIgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXN1bHRzID0gT3JkZXJlZERpY3QoKQor
CisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3Rlc3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3Rf
bmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICBpZiBzZWxmLnJlc3VsdHMuZ2V0KHRlc3RfbmFt
ZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzW3Rlc3RfbmFtZV0KKworICAgICAg
ICB0ZXN0ID0geworICAgICAgICAgICAgInN1YnRlc3RzIjogT3JkZXJlZERpY3QoKSwKKyAgICAg
ICAgICAgICJzdGF0dXMiOiBkZWZhdWx0ZGljdChpbnQpCisgICAgICAgIH0KKyAgICAgICAgc2Vs
Zi5yZXN1bHRzW3Rlc3RfbmFtZV0gPSB0ZXN0CisgICAgICAgIHJldHVybiB0ZXN0CisKKyAgICBk
ZWYgZmluZF9vcl9jcmVhdGVfc3VidGVzdChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNl
bGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICBzdWJ0ZXN0X25hbWUgPSBkYXRh
WyJzdWJ0ZXN0Il0KKworICAgICAgICBpZiB0ZXN0WyJzdWJ0ZXN0cyJdLmdldChzdWJ0ZXN0X25h
bWUpOgorICAgICAgICAgICAgcmV0dXJuIHRlc3RbInN1YnRlc3RzIl1bc3VidGVzdF9uYW1lXQor
CisgICAgICAgIHN1YnRlc3QgPSB7CisgICAgICAgICAgICAic3RhdHVzIjogZGVmYXVsdGRpY3Qo
aW50KSwKKyAgICAgICAgICAgICJtZXNzYWdlcyI6IHNldCgpCisgICAgICAgIH0KKyAgICAgICAg
dGVzdFsic3VidGVzdHMiXVtzdWJ0ZXN0X25hbWVdID0gc3VidGVzdAorCisgICAgICAgIHJldHVy
biBzdWJ0ZXN0CisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6CisgICAgICAgIHN1
YnRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3N1YnRlc3QoZGF0YSkKKyAgICAgICAgc3VidGVz
dFsic3RhdHVzIl1bZGF0YVsic3RhdHVzIl1dICs9IDEKKyAgICAgICAgaWYgZGF0YS5nZXQoIm1l
c3NhZ2UiKToKKyAgICAgICAgICAgIHN1YnRlc3RbIm1lc3NhZ2VzIl0uYWRkKGRhdGFbIm1lc3Nh
Z2UiXSkKKworICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNl
bGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJzdGF0dXMiXVtkYXRh
WyJzdGF0dXMiXV0gKz0gMQorCisKK2RlZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0c19kaWN0LCBp
dGVyYXRpb25zKToKKyAgICAiIiJSZXR1cm4gd2hldGhlciBvciBub3QgYSBzaW5nbGUgdGVzdCBp
cyBpbmNvbnNpc3RlbnQuIiIiCisgICAgaWYgJ1NLSVAnIGluIHJlc3VsdHNfZGljdDoKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIGxlbihyZXN1bHRzX2RpY3QpID4gMSBvciBzdW0o
cmVzdWx0c19kaWN0LnZhbHVlcygpKSAhPSBpdGVyYXRpb25zCisKKworZGVmIHByb2Nlc3NfcmVz
dWx0cyhsb2csIGl0ZXJhdGlvbnMpOgorICAgICIiIlByb2Nlc3MgdGVzdCBsb2cgYW5kIHJldHVy
biBvdmVyYWxsIHJlc3VsdHMgYW5kIGxpc3Qgb2YgaW5jb25zaXN0ZW50IHRlc3RzLiIiIgorICAg
IGluY29uc2lzdGVudCA9IFtdCisgICAgaGFuZGxlciA9IExvZ0hhbmRsZXIoKQorICAgIHJlYWRl
ci5oYW5kbGVfbG9nKHJlYWRlci5yZWFkKGxvZyksIGhhbmRsZXIpCisgICAgcmVzdWx0cyA9IGhh
bmRsZXIucmVzdWx0cworICAgIGZvciB0ZXN0X25hbWUsIHRlc3QgaW4gcmVzdWx0cy5pdGVyaXRl
bXMoKToKKyAgICAgICAgaWYgaXNfaW5jb25zaXN0ZW50KHRlc3RbInN0YXR1cyJdLCBpdGVyYXRp
b25zKToKKyAgICAgICAgICAgIGluY29uc2lzdGVudC5hcHBlbmQoKHRlc3RfbmFtZSwgTm9uZSwg
dGVzdFsic3RhdHVzIl0sIFtdKSkKKyAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBp
biB0ZXN0WyJzdWJ0ZXN0cyJdLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgaWYgaXNfaW5jb25z
aXN0ZW50KHN1YnRlc3RbInN0YXR1cyJdLCBpdGVyYXRpb25zKToKKyAgICAgICAgICAgICAgICBp
bmNvbnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIHN1YnRlc3RfbmFtZSwgc3VidGVzdFsic3Rh
dHVzIl0sIHN1YnRlc3RbIm1lc3NhZ2VzIl0pKQorICAgIHJldHVybiByZXN1bHRzLCBpbmNvbnNp
c3RlbnQKKworCitkZWYgZXJyX3N0cmluZyhyZXN1bHRzX2RpY3QsIGl0ZXJhdGlvbnMpOgorICAg
ICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHN0cmluZyB3aXRoIGVycm9ycyBmcm9tIHRlc3QgcnVuLiIi
IgorICAgIHJ2ID0gW10KKyAgICB0b3RhbF9yZXN1bHRzID0gc3VtKHJlc3VsdHNfZGljdC52YWx1
ZXMoKSkKKyAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQocmVzdWx0c19kaWN0Lml0ZW1zKCkp
OgorICAgICAgICBydi5hcHBlbmQoIiVzJXMiICUKKyAgICAgICAgICAgICAgICAgIChrZXksICI6
ICVzLyVzIiAlICh2YWx1ZSwgaXRlcmF0aW9ucykgaWYgdmFsdWUgIT0gaXRlcmF0aW9ucyBlbHNl
ICIiKSkKKyAgICBpZiB0b3RhbF9yZXN1bHRzIDwgaXRlcmF0aW9uczoKKyAgICAgICAgcnYuYXBw
ZW5kKCJNSVNTSU5HOiAlcy8lcyIgJSAoaXRlcmF0aW9ucyAtIHRvdGFsX3Jlc3VsdHMsIGl0ZXJh
dGlvbnMpKQorICAgIHJ2ID0gIiwgIi5qb2luKHJ2KQorICAgIGlmIGlzX2luY29uc2lzdGVudChy
ZXN1bHRzX2RpY3QsIGl0ZXJhdGlvbnMpOgorICAgICAgICBydiA9ICIqKiVzKioiICUgcnYKKyAg
ICByZXR1cm4gcnYKKworCitkZWYgd3JpdGVfaW5jb25zaXN0ZW50KGxvZywgaW5jb25zaXN0ZW50
LCBpdGVyYXRpb25zKToKKyAgICAiIiJPdXRwdXQgaW5jb25zaXN0ZW50IHRlc3RzIHRvIGxvZ2dl
ci5lcnJvci4iIiIKKyAgICBsb2coIiMjIFVuc3RhYmxlIHJlc3VsdHMgIyNcbiIpCisgICAgc3Ry
aW5ncyA9IFsoCisgICAgICAgICJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCh0ZXN0KSwKKyAgICAg
ICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdChzdWJ0ZXN0KSkgaWYgc3VidGVzdCBlbHNlICIi
LAorICAgICAgICBlcnJfc3RyaW5nKHJlc3VsdHMsIGl0ZXJhdGlvbnMpLAorICAgICAgICAoImAl
c2AiICUgbWFya2Rvd25fYWRqdXN0KCI7Ii5qb2luKG1lc3NhZ2VzKSkpIGlmIGxlbihtZXNzYWdl
cykgZWxzZSAiIikKKyAgICAgICAgZm9yIHRlc3QsIHN1YnRlc3QsIHJlc3VsdHMsIG1lc3NhZ2Vz
IGluIGluY29uc2lzdGVudF0KKyAgICB0YWJsZShbIlRlc3QiLCAiU3VidGVzdCIsICJSZXN1bHRz
IiwgIk1lc3NhZ2VzIl0sIHN0cmluZ3MsIGxvZykKKworCitkZWYgd3JpdGVfcmVzdWx0cyhsb2cs
IHJlc3VsdHMsIGl0ZXJhdGlvbnMsIHByX251bWJlcj1Ob25lLCB1c2VfZGV0YWlscz1GYWxzZSk6
CisgICAgbG9nKCIjIyBBbGwgcmVzdWx0cyAjI1xuIikKKyAgICBpZiB1c2VfZGV0YWlsczoKKyAg
ICAgICAgbG9nKCI8ZGV0YWlscz5cbiIpCisgICAgICAgIGxvZygiPHN1bW1hcnk+JWkgJXMgcmFu
PC9zdW1tYXJ5PlxuXG4iICUgKGxlbihyZXN1bHRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RzIiBpZiBsZW4ocmVzdWx0cykgPiAxCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgInRl
c3QiKSkKKworICAgIGZvciB0ZXN0X25hbWUsIHRlc3QgaW4gcmVzdWx0cy5pdGVyaXRlbXMoKToK
KyAgICAgICAgYmFzZXVybCA9ICJodHRwOi8vdzNjLXRlc3Qub3JnL3N1Ym1pc3Npb25zIgorICAg
ICAgICBpZiAiaHR0cHMiIGluIG9zLnBhdGguc3BsaXRleHQodGVzdF9uYW1lKVswXS5zcGxpdCgi
LiIpWzE6XToKKyAgICAgICAgICAgIGJhc2V1cmwgPSAiaHR0cHM6Ly93M2MtdGVzdC5vcmcvc3Vi
bWlzc2lvbnMiCisgICAgICAgIHRpdGxlID0gdGVzdF9uYW1lCisgICAgICAgIGlmIHVzZV9kZXRh
aWxzOgorICAgICAgICAgICAgbG9nKCI8ZGV0YWlscz5cbiIpCisgICAgICAgICAgICBpZiBwcl9u
dW1iZXI6CisgICAgICAgICAgICAgICAgdGl0bGUgPSAiPGEgaHJlZj1cIiVzLyVzJXNcIj4lczwv
YT4iICUgKGJhc2V1cmwsIHByX251bWJlciwgdGVzdF9uYW1lLCB0aXRsZSkKKyAgICAgICAgICAg
IGxvZygnPHN1bW1hcnk+JXM8L3N1bW1hcnk+XG5cbicgJSB0aXRsZSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGxvZygiIyMjICVzICMjIyIgJSB0aXRsZSkKKyAgICAgICAgc3RyaW5ncyA9
IFsoIiIsIGVycl9zdHJpbmcodGVzdFsic3RhdHVzIl0sIGl0ZXJhdGlvbnMpLCAiIildCisKKyAg
ICAgICAgc3RyaW5ncy5leHRlbmQoKCgKKyAgICAgICAgICAgICgiYCVzYCIgJSBtYXJrZG93bl9h
ZGp1c3Qoc3VidGVzdF9uYW1lKSkgaWYgc3VidGVzdCBlbHNlICIiLAorICAgICAgICAgICAgZXJy
X3N0cmluZyhzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyksCisgICAgICAgICAgICAoImAl
c2AiICUgbWFya2Rvd25fYWRqdXN0KCc7Jy5qb2luKHN1YnRlc3RbIm1lc3NhZ2VzIl0pKSkgaWYg
bGVuKHN1YnRlc3RbIm1lc3NhZ2VzIl0pIGVsc2UgIiIpCisgICAgICAgICAgICBmb3Igc3VidGVz
dF9uYW1lLCBzdWJ0ZXN0IGluIHRlc3RbInN1YnRlc3RzIl0uaXRlbXMoKSkpCisgICAgICAgIHRh
YmxlKFsiU3VidGVzdCIsICJSZXN1bHRzIiwgIk1lc3NhZ2VzIl0sIHN0cmluZ3MsIGxvZykKKyAg
ICAgICAgaWYgdXNlX2RldGFpbHM6CisgICAgICAgICAgICBsb2coIjwvZGV0YWlscz5cbiIpCisK
KyAgICBpZiB1c2VfZGV0YWlsczoKKyAgICAgICAgbG9nKCI8L2RldGFpbHM+XG4iKQorCisKK2Rl
ZiBydW5fc3RlcChsb2dnZXIsIGl0ZXJhdGlvbnMsIHJlc3RhcnRfYWZ0ZXJfaXRlcmF0aW9uLCBr
d2FyZ3NfZXh0cmFzLCAqKmt3YXJncyk6CisgICAgaW1wb3J0IHdwdHJ1bm5lcgorICAgIGt3YXJn
cyA9IGNvcHkuZGVlcGNvcHkoa3dhcmdzKQorCisgICAgaWYgcmVzdGFydF9hZnRlcl9pdGVyYXRp
b246CisgICAgICAgIGt3YXJnc1sicmVwZWF0Il0gPSBpdGVyYXRpb25zCisgICAgZWxzZToKKyAg
ICAgICAga3dhcmdzWyJyZXJ1biJdID0gaXRlcmF0aW9ucworCisgICAga3dhcmdzWyJwYXVzZV9h
ZnRlcl90ZXN0Il0gPSBGYWxzZQorICAgIGt3YXJncy51cGRhdGUoa3dhcmdzX2V4dHJhcykKKwor
ICAgIGRlZiB3cmFwX2hhbmRsZXIoeCk6CisgICAgICAgIHggPSBMb2dMZXZlbEZpbHRlcih4LCAi
V0FSTklORyIpCisgICAgICAgIGlmIG5vdCBrd2FyZ3NbInZlcmlmeV9sb2dfZnVsbCJdOgorICAg
ICAgICAgICAgeCA9IExvZ0FjdGlvbkZpbHRlcih4LCBbImxvZyIsICJwcm9jZXNzX291dHB1dCJd
KQorICAgICAgICByZXR1cm4geAorCisgICAgaW5pdGlhbF9oYW5kbGVycyA9IGxvZ2dlci5fc3Rh
dGUuaGFuZGxlcnMKKyAgICBsb2dnZXIuX3N0YXRlLmhhbmRsZXJzID0gW3dyYXBfaGFuZGxlciho
YW5kbGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGhhbmRsZXIgaW4gaW5p
dGlhbF9oYW5kbGVyc10KKworICAgIGxvZyA9IGlvLkJ5dGVzSU8oKQorICAgICMgU2V0dXAgbG9n
Z2luZyBmb3Igd3B0cnVubmVyIHRoYXQga2VlcHMgcHJvY2VzcyBvdXRwdXQgYW5kCisgICAgIyB3
YXJuaW5nKyBsZXZlbCBsb2dzIG9ubHkKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoU3RyZWFtSGFu
ZGxlcihsb2csIEpTT05Gb3JtYXR0ZXIoKSkpCisKKyAgICB3cHRydW5uZXIucnVuX3Rlc3RzKCoq
a3dhcmdzKQorCisgICAgbG9nZ2VyLl9zdGF0ZS5oYW5kbGVycyA9IGluaXRpYWxfaGFuZGxlcnMK
KyAgICBsb2dnZXIuX3N0YXRlLnJ1bm5pbmdfdGVzdHMgPSBzZXQoKQorICAgIGxvZ2dlci5fc3Rh
dGUuc3VpdGVfc3RhcnRlZCA9IEZhbHNlCisKKyAgICBsb2cuc2VlaygwKQorICAgIHJlc3VsdHMs
IGluY29uc2lzdGVudCA9IHByb2Nlc3NfcmVzdWx0cyhsb2csIGl0ZXJhdGlvbnMpCisgICAgcmV0
dXJuIHJlc3VsdHMsIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucworCisKK2RlZiBnZXRfc3RlcHMo
bG9nZ2VyLCByZXBlYXRfbG9vcCwgcmVwZWF0X3Jlc3RhcnQsIGt3YXJnc19leHRyYXMpOgorICAg
IHN0ZXBzID0gW10KKyAgICBmb3Iga3dhcmdzX2V4dHJhIGluIGt3YXJnc19leHRyYXM6CisgICAg
ICAgIGlmIGt3YXJnc19leHRyYToKKyAgICAgICAgICAgIGZsYWdzX3N0cmluZyA9ICIgd2l0aCBm
bGFncyAlcyIgJSAiICIuam9pbigKKyAgICAgICAgICAgICAgICAiJXM9JXMiICUgaXRlbSBmb3Ig
aXRlbSBpbiBrd2FyZ3NfZXh0cmEuaXRlcml0ZW1zKCkpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBmbGFnc19zdHJpbmcgPSAiIgorCisgICAgICAgIGlmIHJlcGVhdF9sb29wOgorICAgICAg
ICAgICAgZGVzYyA9ICJSdW5uaW5nIHRlc3RzIGluIGEgbG9vcCAlZCB0aW1lcyVzIiAlIChyZXBl
YXRfbG9vcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmxhZ3Nfc3RyaW5nKQorICAgICAgICAgICAgc3RlcHMuYXBwZW5kKChkZXNj
LCBmdW5jdG9vbHMucGFydGlhbChydW5fc3RlcCwgbG9nZ2VyLCByZXBlYXRfbG9vcCwgRmFsc2Us
IGt3YXJnc19leHRyYSkpKQorCisgICAgICAgIGlmIHJlcGVhdF9yZXN0YXJ0OgorICAgICAgICAg
ICAgZGVzYyA9ICJSdW5uaW5nIHRlc3RzIGluIGEgbG9vcCB3aXRoIHJlc3RhcnRzICVzIHRpbWVz
JXMiICUgKHJlcGVhdF9yZXN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzX3N0cmluZykKKyAg
ICAgICAgICAgIHN0ZXBzLmFwcGVuZCgoZGVzYywgZnVuY3Rvb2xzLnBhcnRpYWwocnVuX3N0ZXAs
IGxvZ2dlciwgcmVwZWF0X3Jlc3RhcnQsIFRydWUsIGt3YXJnc19leHRyYSkpKQorCisgICAgcmV0
dXJuIHN0ZXBzCisKKworZGVmIHdyaXRlX3N1bW1hcnkobG9nZ2VyLCBzdGVwX3Jlc3VsdHMsIGZp
bmFsX3Jlc3VsdCk6CisgICAgZm9yIGRlc2MsIHJlc3VsdCBpbiBzdGVwX3Jlc3VsdHM6CisgICAg
ICAgIGxvZ2dlci5pbmZvKCc6OjogJXMgOiAlcycgJSAoZGVzYywgcmVzdWx0KSkKKyAgICBsb2dn
ZXIuaW5mbygnOjo6JykKKyAgICBpZiBmaW5hbF9yZXN1bHQgPT0gIlBBU1MiOgorICAgICAgICBs
b2cgPSBsb2dnZXIuaW5mbworICAgIGVsaWYgZmluYWxfcmVzdWx0ID09ICJUSU1FT1VUIjoKKyAg
ICAgICAgbG9nID0gbG9nZ2VyLndhcm5pbmcKKyAgICBlbHNlOgorICAgICAgICBsb2cgPSBsb2dn
ZXIuZXJyb3IKKyAgICBsb2coJzo6OiBUZXN0IHZlcmlmaWNhdGlvbiAlcycgJSBmaW5hbF9yZXN1
bHQpCisKKyAgICBsb2dnZXIuaW5mbygnOjo6JykKKworCitkZWYgY2hlY2tfc3RhYmlsaXR5KGxv
Z2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVhdF9yZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwg
bWF4X3RpbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3Jlc3VsdHM9VHJ1ZSwg
Kiprd2FyZ3MpOgorICAgIGt3YXJnc19leHRyYXMgPSBbe31dCisgICAgaWYgY2hhb3NfbW9kZSBh
bmQga3dhcmdzWyJwcm9kdWN0Il0gPT0gImZpcmVmb3giOgorICAgICAgICBrd2FyZ3NfZXh0cmFz
LmFwcGVuZCh7ImNoYW9zX21vZGVfZmxhZ3MiOiAzfSkKKworICAgIHN0ZXBzID0gZ2V0X3N0ZXBz
KGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3NfZXh0cmFzKQorCisg
ICAgc3RhcnRfdGltZSA9IGRhdGV0aW1lLm5vdygpCisgICAgc3RlcF9yZXN1bHRzID0gW10KKwor
ICAgIGZvciBkZXNjLCBzdGVwX2Z1bmMgaW4gc3RlcHM6CisgICAgICAgIGlmIG1heF90aW1lIGFu
ZCBkYXRldGltZS5ub3coKSAtIHN0YXJ0X3RpbWUgPiBtYXhfdGltZToKKyAgICAgICAgICAgIGxv
Z2dlci5pbmZvKCI6OjogVGVzdCB2ZXJpZmljYXRpb24gaXMgdGFraW5nIHRvbyBsb25nOiBHaXZp
bmcgdXAhIikKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCI6OjogU28gZmFyLCBhbGwgY2hlY2tz
IHBhc3NlZCwgYnV0IG5vdCBhbGwgY2hlY2tzIHdlcmUgcnVuLiIpCisgICAgICAgICAgICB3cml0
ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiVElNRU9VVCIpCisgICAgICAgICAgICBy
ZXR1cm4gMgorCisgICAgICAgIGxvZ2dlci5pbmZvKCc6OjonKQorICAgICAgICBsb2dnZXIuaW5m
bygnOjo6IFJ1bm5pbmcgdGVzdCB2ZXJpZmljYXRpb24gc3RlcCAiJXMiLi4uJyAlIGRlc2MpCisg
ICAgICAgIGxvZ2dlci5pbmZvKCc6OjonKQorICAgICAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQs
IGl0ZXJhdGlvbnMgPSBzdGVwX2Z1bmMoKiprd2FyZ3MpCisgICAgICAgIGlmIG91dHB1dF9yZXN1
bHRzOgorICAgICAgICAgICAgd3JpdGVfcmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0cywgaXRl
cmF0aW9ucykKKworICAgICAgICBpZiBpbmNvbnNpc3RlbnQ6CisgICAgICAgICAgICBzdGVwX3Jl
c3VsdHMuYXBwZW5kKChkZXNjLCAiRkFJTCIpKQorICAgICAgICAgICAgd3JpdGVfaW5jb25zaXN0
ZW50KGxvZ2dlci5pbmZvLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMpCisgICAgICAgICAgICB3
cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiRkFJTCIpCisgICAgICAgICAgICBy
ZXR1cm4gMQorCisgICAgICAgIHN0ZXBfcmVzdWx0cy5hcHBlbmQoKGRlc2MsICJQQVNTIikpCisK
KyAgICB3cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiUEFTUyIpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
ZHJpdmVyLWV4dHJhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NmEzM2VkYmFkZDVlNjlkNzNjZDZkMTQ5NmJi
NzQ3YTdjMWQyNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1l
eHRyYS5qcwpAQCAtMCwwICsxLDYzIEBACisidXNlIHN0cmljdCI7CisKKyhmdW5jdGlvbigpewor
ICAgIGxldCBwZW5kaW5nX3Jlc29sdmUgPSBudWxsOworICAgIGxldCBwZW5kaW5nX3JlamVjdCA9
IG51bGw7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YTsKKworICAgICAgICBpZiAo
dHlwZW9mIGRhdGEgIT09ICJvYmplY3QiICYmIGRhdGEgIT09IG51bGwpIHsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhLnR5cGUgIT09ICJ0ZXN0ZHJp
dmVyLWNvbXBsZXRlIikgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGRhdGEuc3RhdHVzID09PSAic3VjY2VzcyIpIHsKKyAgICAgICAgICAgIHBlbmRpbmdf
cmVzb2x2ZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGVuZGluZ19yZWplY3Qo
KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgY29uc3QgZ2V0X3NlbGVjdG9yID0gZnVuY3Rp
b24oZWxlbWVudCkgeworICAgICAgICBsZXQgc2VsZWN0b3I7CisKKyAgICAgICAgaWYgKGVsZW1l
bnQuaWQgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudC5pZCkgPT09IGVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGNvbnN0IGlkID0gZWxlbWVudC5pZDsKKworICAgICAgICAgICAgc2Vs
ZWN0b3IgPSAiIyI7CisgICAgICAgICAgICAvLyBlc2NhcGUgZXZlcnl0aGluZywgYmVjYXVzZSBp
dCdzIGVhc3kgdG8gaW1wbGVtZW50CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0g
aWQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RvciArPSAn
XFwnICsgaWQuY2hhckNvZGVBdChpKS50b1N0cmluZygxNikgKyAnICc7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBwdXNoIGFuZCB0aGVuIHJldmVyc2Ug
dG8gYXZvaWQgTyhuKSB1bnNoaWZ0IGluIHRoZSBsb29wCisgICAgICAgICAgICBsZXQgc2VnbWVu
dHMgPSBbXTsKKyAgICAgICAgICAgIGZvciAobGV0IG5vZGUgPSBlbGVtZW50OworICAgICAgICAg
ICAgICAgICBub2RlLnBhcmVudEVsZW1lbnQ7CisgICAgICAgICAgICAgICAgIG5vZGUgPSBub2Rl
LnBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2VnbWVudCA9ICIqfCIgKyBu
b2RlLmxvY2FsTmFtZTsKKyAgICAgICAgICAgICAgICBsZXQgbnRoID0gQXJyYXkucHJvdG90eXBl
LmluZGV4T2YuY2FsbChub2RlLnBhcmVudEVsZW1lbnQuY2hpbGRyZW4sIG5vZGUpICsgMTsKKyAg
ICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKHNlZ21lbnQgKyAiOm50aC1jaGlsZCgiICsgbnRo
ICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlZ21lbnRzLnB1c2goIjpyb290
Iik7CisgICAgICAgICAgICBzZWdtZW50cy5yZXZlcnNlKCk7CisKKyAgICAgICAgICAgIHNlbGVj
dG9yID0gc2VnbWVudHMuam9pbigiID4gIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4g
c2VsZWN0b3I7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5jbGlj
ayA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRfc2Vs
ZWN0b3IoZWxlbWVudCk7CisgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgcGVuZGluZ19yZXNv
bHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAg
ICAgICB9KTsKKyAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSh7InR5cGUiOiAiYWN0
aW9uIiwgImFjdGlvbiI6ICJjbGljayIsICJzZWxlY3RvciI6IHNlbGVjdG9yfSwgIioiKTsKKyAg
ICAgICAgcmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKKyAgICB9OworfSkoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLXZlbmRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJp
dmVyLXZlbmRvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTg4NDAzNjM2Mzk2YzQzOTc1OTcwNWM3NTE0MzNi
MjhlMDVmM2FiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzCkBAIC0wLDAgKzEgQEAKKy8vIFRoaXMgZmlsZSBpbnRlbnRpb25hbGx5IGxlZnQgYmxh
bmsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0aGFybmVzc19ydW5uZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2M4MGEyNzBl
MmMxZThmMGJjYjhkYzQ4NzhhNzVkOWNlMDE3MTdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RoYXJuZXNzX3J1bm5lci5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQ+Cit2YXIgdGltZW91dF9tdWx0aXBsaWVy
ID0gMTsKK3ZhciB3aW4gPSBudWxsOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3Ny
ZXBvcnQtc2Vydm8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3MmFlYTlhMjU0MGJmMTQ0NmEyM2RkYjI4OGM5
MzAwOWJiMjZiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2by5qcwpAQCAtMCwwICsxLDE3IEBACit2YXIgcHJvcHMgPSB7b3V0cHV0OiUob3V0
cHV0KWR9OwordmFyIHN0YXJ0X2xvYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKK3N0
YXJ0X2xvYy5ocmVmID0gbG9jYXRpb24uaHJlZjsKK3NldHVwKHByb3BzKTsKKworYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2soZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgeworICAgIHZh
ciBpZCA9IHN0YXJ0X2xvYy5wYXRobmFtZSArIHN0YXJ0X2xvYy5zZWFyY2ggKyBzdGFydF9sb2Mu
aGFzaDsKKyAgICBjb25zb2xlLmxvZygiQUxFUlQ6IFJFU1VMVDogIiArIEpTT04uc3RyaW5naWZ5
KFsKKyAgICAgICAgaWQsCisgICAgICAgIGhhcm5lc3Nfc3RhdHVzLnN0YXR1cywKKyAgICAgICAg
aGFybmVzc19zdGF0dXMubWVzc2FnZSwKKyAgICAgICAgaGFybmVzc19zdGF0dXMuc3RhY2ssCisg
ICAgICAgIHRlc3RzLm1hcChmdW5jdGlvbih0KSB7CisgICAgICAgICAgICByZXR1cm4gW3QubmFt
ZSwgdC5zdGF0dXMsIHQubWVzc2FnZSwgdC5zdGFja10KKyAgICAgICAgfSksCisgICAgXSkpOwor
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2
ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzg4ODQxMzYwNDcwZjhkZDNhZWMyMjI0NDkyOWRkYTQ5ZmFkYWYzMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5q
cwpAQCAtMCwwICsxLDIzIEBACitzZXR1cCh7b3V0cHV0OiUob3V0cHV0KWR9KTsKKworYWRkX2Nv
bXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJh
Y2soZnVuY3Rpb24gKHRlc3RzLCBzdGF0dXMpIHsKKyAgICAgICAgdmFyIHN1YnRlc3RfcmVzdWx0
cyA9IHRlc3RzLm1hcChmdW5jdGlvbih4KSB7CisgICAgICAgICAgICByZXR1cm4gW3gubmFtZSwg
eC5zdGF0dXMsIHgubWVzc2FnZSwgeC5zdGFja10KKyAgICAgICAgfSk7CisgICAgICAgIHZhciBp
ZCA9IGxvY2F0aW9uLnBhdGhuYW1lICsgbG9jYXRpb24uc2VhcmNoICsgbG9jYXRpb24uaGFzaDsK
KyAgICAgICAgdmFyIHJlc3VsdHMgPSBKU09OLnN0cmluZ2lmeShbaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5zdGF0dXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0dXMuc3RhY2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1YnRlc3RfcmVzdWx0c10pOworICAgICAgICAoZnVuY3Rpb24gZG9u
ZSgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuX193ZF9yZXN1bHRzX2NhbGxiYWNrX18pIHsK
KyAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoX193ZF9yZXN1bHRzX3RpbWVyX18pOworICAg
ICAgICAgICAgICAgIF9fd2RfcmVzdWx0c19jYWxsYmFja19fKHJlc3VsdHMpCisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZG9uZSwgMjApOworICAgICAg
ICAgICAgfQorICAgICAgICB9KSgpCisgICAgfSkKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYyZGRhZmZiNDQzYzk0NTA1MzgzMDgzOTIzZGMxM2ZjYjFjZjU2NjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAg
LTAsMCArMSwxMyBAQAordmFyIHByb3BzID0ge291dHB1dDolKG91dHB1dClkLAorICAgICAgICAg
ICAgIGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUsCisgICAgICAgICAgICAgbWVzc2FnZV9ldmVudHM6
IFsiY29tcGxldGlvbiJdfTsKKworaWYgKHdpbmRvdy5vcGVuZXIgJiYgInRpbWVvdXRfbXVsdGlw
bGllciIgaW4gd2luZG93Lm9wZW5lcikgeworICAgIHByb3BzWyJ0aW1lb3V0X211bHRpcGxpZXIi
XSA9IHdpbmRvdy5vcGVuZXIudGltZW91dF9tdWx0aXBsaWVyOworfQorCitpZiAod2luZG93Lm9w
ZW5lciAmJiB3aW5kb3cub3BlbmVyLmV4cGxpY2l0X3RpbWVvdXQpIHsKKyAgICBwcm9wc1siZXhw
bGljaXRfdGltZW91dCJdID0gd2luZG93Lm9wZW5lci5leHBsaWNpdF90aW1lb3V0OworfQorCitz
ZXR1cChwcm9wcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYzJlOTQ3MmI0YTY5YmUyMTE4
ZWMyNGZhNzFmMDkyNDgxYWRmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dGxvYWRlci5weQpAQCAtMCwwICsxLDY1OSBAQAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBqc29u
CitpbXBvcnQgb3MKK2ltcG9ydCB1cmxwYXJzZQorZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFi
c3RyYWN0bWV0aG9kCitmcm9tIFF1ZXVlIGltcG9ydCBFbXB0eQorZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgZGVmYXVsdGRpY3QsIE9yZGVyZWREaWN0LCBkZXF1ZQorZnJvbSBtdWx0aXByb2Nlc3Np
bmcgaW1wb3J0IFF1ZXVlCisKK2ltcG9ydCBtYW5pZmVzdGluY2x1ZGUKK2ltcG9ydCBtYW5pZmVz
dGV4cGVjdGVkCitpbXBvcnQgd3B0dGVzdAorZnJvbSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWQK
KworbWFuaWZlc3QgPSBOb25lCittYW5pZmVzdF91cGRhdGUgPSBOb25lCitkb3dubG9hZF9mcm9t
X2dpdGh1YiA9IE5vbmUKK21hbmlmZXN0X2xvZyA9IE5vbmUKKworZGVmIGRvX2RlbGF5ZWRfaW1w
b3J0cygpOgorICAgICMgVGhpcyByZWxpZXMgb24gYW4gYWxyZWFkeSBsb2FkZWQgbW9kdWxlIGhh
dmluZyBzZXQgdGhlIHN5cy5wYXRoIGNvcnJlY3RseSA6KAorICAgIGdsb2JhbCBtYW5pZmVzdCwg
bWFuaWZlc3RfdXBkYXRlLCBkb3dubG9hZF9mcm9tX2dpdGh1YiwgbWFuaWZlc3RfbG9nCisgICAg
ZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKKyAgICBmcm9tIG1hbmlmZXN0IGltcG9ydCB1
cGRhdGUgYXMgbWFuaWZlc3RfdXBkYXRlCisgICAgZnJvbSBtYW5pZmVzdC5kb3dubG9hZCBpbXBv
cnQgZG93bmxvYWRfZnJvbV9naXRodWIKKyAgICBmcm9tIG1hbmlmZXN0IGltcG9ydCBsb2cgYXMg
bWFuaWZlc3RfbG9nCisKKworY2xhc3MgVGVzdENodW5rZXIob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgdG90YWxfY2h1bmtzLCBjaHVua19udW1iZXIpOgorICAgICAgICBzZWxmLnRv
dGFsX2NodW5rcyA9IHRvdGFsX2NodW5rcworICAgICAgICBzZWxmLmNodW5rX251bWJlciA9IGNo
dW5rX251bWJlcgorICAgICAgICBhc3NlcnQgc2VsZi5jaHVua19udW1iZXIgPD0gc2VsZi50b3Rh
bF9jaHVua3MKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBzdHJ1Y3R1cmVkLmdldF9kZWZhdWx0X2xv
Z2dlcigpCisgICAgICAgIGFzc2VydCBzZWxmLmxvZ2dlcgorCisgICAgZGVmIF9fY2FsbF9fKHNl
bGYsIG1hbmlmZXN0KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKK2Ns
YXNzIFVuY2h1bmtlZChUZXN0Q2h1bmtlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIFRlc3RDaHVua2VyLl9faW5pdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncykKKyAgICAgICAgYXNzZXJ0IHNlbGYudG90YWxfY2h1bmtzID09IDEKKworICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBtYW5pZmVzdCk6CisgICAgICAgIGZvciBpdGVtIGluIG1hbmlmZXN0
OgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisKK2NsYXNzIEhhc2hDaHVua2VyKFRlc3RDaHVu
a2VyKToKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgorICAgICAgICBjaHVua19p
bmRleCA9IHNlbGYuY2h1bmtfbnVtYmVyIC0gMQorICAgICAgICBmb3IgdGVzdF90eXBlLCB0ZXN0
X3BhdGgsIHRlc3RzIGluIG1hbmlmZXN0OgorICAgICAgICAgICAgaCA9IGludChoYXNobGliLm1k
NSh0ZXN0X3BhdGgpLmhleGRpZ2VzdCgpLCAxNikKKyAgICAgICAgICAgIGlmIGggJSBzZWxmLnRv
dGFsX2NodW5rcyA9PSBjaHVua19pbmRleDoKKyAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0X3R5
cGUsIHRlc3RfcGF0aCwgdGVzdHMKKworCitjbGFzcyBEaXJlY3RvcnlIYXNoQ2h1bmtlcihUZXN0
Q2h1bmtlcik6CisgICAgIiIiTGlrZSBIYXNoQ2h1bmtlciBleGNlcHQgdGhlIGRpcmVjdG9yeSBp
cyBoYXNoZWQuCisKKyAgICBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgdGVzdHMgaW4gdGhlIHNhbWUg
ZGlyZWN0b3J5IGVuZCB1cCBpbiB0aGUgc2FtZQorICAgIGNodW5rLgorICAgICIiIgorICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBtYW5pZmVzdCk6CisgICAgICAgIGNodW5rX2luZGV4ID0gc2VsZi5j
aHVua19udW1iZXIgLSAxCisgICAgICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMg
aW4gbWFuaWZlc3Q6CisgICAgICAgICAgICBoID0gaW50KGhhc2hsaWIubWQ1KG9zLnBhdGguZGly
bmFtZSh0ZXN0X3BhdGgpKS5oZXhkaWdlc3QoKSwgMTYpCisgICAgICAgICAgICBpZiBoICUgc2Vs
Zi50b3RhbF9jaHVua3MgPT0gY2h1bmtfaW5kZXg6CisgICAgICAgICAgICAgICAgeWllbGQgdGVz
dF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCisKKworY2xhc3MgRXF1YWxUaW1lQ2h1bmtlcihUZXN0
Q2h1bmtlcik6CisgICAgZGVmIF9ncm91cF9ieV9kaXJlY3Rvcnkoc2VsZiwgbWFuaWZlc3RfaXRl
bXMpOgorICAgICAgICAiIiJTcGxpdCB0aGUgbGlzdCBvZiBtYW5pZmVzdCBpdGVtcyBpbnRvIGEg
b3JkZXJlZCBkaWN0IHRoYXQgZ3JvdXBzIHRlc3RzIGluCisgICAgICAgIHNvIHRoYXQgYW55dGhp
bmcgaW4gdGhlIHNhbWUgc3ViZGlyZWN0b3J5IGJleW9uZCBhIGRlcHRoIG9mIDMgaXMgaW4gdGhl
IHNhbWUKKyAgICAgICAgZ3JvdXAuIFNvIGFsbCB0ZXN0cyBpbiBhL2IvYywgYS9iL2MvZCBhbmQg
YS9iL2MvZSB3aWxsIGJlIGdyb3VwZWQgdG9nZXRoZXIKKyAgICAgICAgYW5kIHNlcGFyYXRlIHRv
IHRlc3RzIGluIGEvYi9mCisKKyAgICAgICAgUmV0dXJuczogdHVwbGUgKG9yZGVyZWQgZGljdCBv
ZiB7dGVzdF9kaXI6IFBhdGhEYXRhfSwgdG90YWwgZXN0aW1hdGVkIHJ1bnRpbWUpCisgICAgICAg
ICIiIgorCisgICAgICAgIGNsYXNzIFBhdGhEYXRhKG9iamVjdCk6CisgICAgICAgICAgICBkZWYg
X19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgICAgICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAor
ICAgICAgICAgICAgICAgIHNlbGYudGltZSA9IDAKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3Rz
ID0gW10KKworICAgICAgICBieV9kaXIgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIHRvdGFsX3Rp
bWUgPSAwCisKKyAgICAgICAgZm9yIGksICh0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMpIGlu
IGVudW1lcmF0ZShtYW5pZmVzdF9pdGVtcyk6CisgICAgICAgICAgICB0ZXN0X2RpciA9IHR1cGxl
KG9zLnBhdGguc3BsaXQodGVzdF9wYXRoKVswXS5zcGxpdChvcy5wYXRoLnNlcClbOjNdKQorCisg
ICAgICAgICAgICBpZiB0ZXN0X2RpciBub3QgaW4gYnlfZGlyOgorICAgICAgICAgICAgICAgIGJ5
X2Rpclt0ZXN0X2Rpcl0gPSBQYXRoRGF0YSh0ZXN0X2RpcikKKworICAgICAgICAgICAgZGF0YSA9
IGJ5X2Rpclt0ZXN0X2Rpcl0KKyAgICAgICAgICAgIHRpbWUgPSBzdW0odGVzdC5kZWZhdWx0X3Rp
bWVvdXQgaWYgdGVzdC50aW1lb3V0ICE9CisgICAgICAgICAgICAgICAgICAgICAgICJsb25nIiBl
bHNlIHRlc3QubG9uZ190aW1lb3V0IGZvciB0ZXN0IGluIHRlc3RzKQorICAgICAgICAgICAgZGF0
YS50aW1lICs9IHRpbWUKKyAgICAgICAgICAgIHRvdGFsX3RpbWUgKz0gdGltZQorICAgICAgICAg
ICAgZGF0YS50ZXN0cy5hcHBlbmQoKHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cykpCisKKyAg
ICAgICAgcmV0dXJuIGJ5X2RpciwgdG90YWxfdGltZQorCisgICAgZGVmIF9tYXliZV9yZW1vdmUo
c2VsZiwgY2h1bmtzLCBpLCBkaXJlY3Rpb24pOgorICAgICAgICAiIiJUcmlhbCByZW1vdmluZyBh
IGNodW5rIGZyb20gb25lIGNodW5rIHRvIGFuIGFkamFjZW50IG9uZS4KKworICAgICAgICA6cGFy
YW0gY2h1bmtzOiAtIHRoZSBsaXN0IG9mIGFsbCBjaHVua3MKKyAgICAgICAgOnBhcmFtIGk6IC0g
dGhlIGNodW5rIGluZGV4IGluIHRoZSBsaXN0IG9mIGNodW5rcyB0byB0cnkgcmVtb3ZpbmcgZnJv
bQorICAgICAgICA6cGFyYW0gZGlyZWN0aW9uOiBlaXRoZXIgIm5leHQiIGlmIHdlIGFyZSBnb2lu
ZyB0byBtb3ZlIGZyb20gdGhlIGVuZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUg
c3Vic2VxdWVudCBjaHVuaywgb3IgInByZXYiIGlmIHdlIGFyZSBnb2luZyB0byBtb3ZlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHN0YXJ0IGludG8gdGhlIHByZXZpb3VzIGNo
dW5rLgorCisgICAgICAgIDpyZXR1cm5zIGJvb2w6IERpZCBhIGNodW5rIGdldCBtb3ZlZD8iIiIK
KyAgICAgICAgc291cmNlX2NodW5rID0gY2h1bmtzW2ldCisgICAgICAgIGlmIGRpcmVjdGlvbiA9
PSAibmV4dCI6CisgICAgICAgICAgICB0YXJnZXRfY2h1bmsgPSBjaHVua3NbaSsxXQorICAgICAg
ICAgICAgcGF0aF9pbmRleCA9IC0xCisgICAgICAgICAgICBtb3ZlX2Z1bmMgPSBsYW1iZGE6IHRh
cmdldF9jaHVuay5hcHBlbmRsZWZ0KHNvdXJjZV9jaHVuay5wb3AoKSkKKyAgICAgICAgZWxpZiBk
aXJlY3Rpb24gPT0gInByZXYiOgorICAgICAgICAgICAgdGFyZ2V0X2NodW5rID0gY2h1bmtzW2kt
MV0KKyAgICAgICAgICAgIHBhdGhfaW5kZXggPSAwCisgICAgICAgICAgICBtb3ZlX2Z1bmMgPSBs
YW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmQoc291cmNlX2NodW5rLnBvcGxlZnQoKSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuZXhwZWN0ZWQgbW92ZSBk
aXJlY3Rpb24gJXMiICUgZGlyZWN0aW9uKQorCisgICAgICAgIHJldHVybiBzZWxmLl9tYXliZV9t
b3ZlKHNvdXJjZV9jaHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBtb3ZlX2Z1bmMpCisK
KyAgICBkZWYgX21heWJlX2FkZChzZWxmLCBjaHVua3MsIGksIGRpcmVjdGlvbik6CisgICAgICAg
ICIiIlRyaWFsIGFkZGluZyBhIGNodW5rIGZyb20gb25lIGNodW5rIHRvIGFuIGFkamFjZW50IG9u
ZS4KKworICAgICAgICA6cGFyYW0gY2h1bmtzOiAtIHRoZSBsaXN0IG9mIGFsbCBjaHVua3MKKyAg
ICAgICAgOnBhcmFtIGk6IC0gdGhlIGNodW5rIGluZGV4IGluIHRoZSBsaXN0IG9mIGNodW5rcyB0
byB0cnkgYWRkaW5nIHRvCisgICAgICAgIDpwYXJhbSBkaXJlY3Rpb246IGVpdGhlciAibmV4dCIg
aWYgd2UgYXJlIGdvaW5nIHRvIHJlbW92ZSBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGUgc3Vic2VxdWVudCBjaHVuaywgb3IgInByZXYiIGlmIHdlIGFyZSBnb2luZyB0byBy
ZW1vdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgdGhlIHByZXZpb3VzIGNo
dW5rLgorCisgICAgICAgIDpyZXR1cm5zIGJvb2w6IERpZCBhIGNodW5rIGdldCBtb3ZlZD8iIiIK
KyAgICAgICAgdGFyZ2V0X2NodW5rID0gY2h1bmtzW2ldCisgICAgICAgIGlmIGRpcmVjdGlvbiA9
PSAibmV4dCI6CisgICAgICAgICAgICBzb3VyY2VfY2h1bmsgPSBjaHVua3NbaSsxXQorICAgICAg
ICAgICAgcGF0aF9pbmRleCA9IDAKKyAgICAgICAgICAgIG1vdmVfZnVuYyA9IGxhbWJkYTogdGFy
Z2V0X2NodW5rLmFwcGVuZChzb3VyY2VfY2h1bmsucG9wbGVmdCgpKQorICAgICAgICBlbGlmIGRp
cmVjdGlvbiA9PSAicHJldiI6CisgICAgICAgICAgICBzb3VyY2VfY2h1bmsgPSBjaHVua3NbaS0x
XQorICAgICAgICAgICAgcGF0aF9pbmRleCA9IC0xCisgICAgICAgICAgICBtb3ZlX2Z1bmMgPSBs
YW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmRsZWZ0KHNvdXJjZV9jaHVuay5wb3AoKSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuZXhwZWN0ZWQgbW92ZSBk
aXJlY3Rpb24gJXMiICUgZGlyZWN0aW9uKQorCisgICAgICAgIHJldHVybiBzZWxmLl9tYXliZV9t
b3ZlKHNvdXJjZV9jaHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBtb3ZlX2Z1bmMpCisK
KyAgICBkZWYgX21heWJlX21vdmUoc2VsZiwgc291cmNlX2NodW5rLCB0YXJnZXRfY2h1bmssIHBh
dGhfaW5kZXgsIG1vdmVfZnVuYyk6CisgICAgICAgICIiIk1vdmUgZnJvbSBvbmUgY2h1bmsgdG8g
YW5vdGhlciwgYXNzZXNzIHRoZSBjaGFuZ2UgaW4gYmFkbmVzcywKKyAgICAgICAgYW5kIGtlZXAg
dGhlIG1vdmUgaWZmIGl0IGRlY3JlYXNlcyB0aGUgYmFkbmVzcyBzY29yZS4KKworICAgICAgICA6
cGFyYW0gc291cmNlX2NodW5rOiBjaHVuayB0byBtb3ZlIGZyb20KKyAgICAgICAgOnBhcmFtIHRh
cmdldF9jaHVuazogY2h1bmsgdG8gbW92ZSB0bworICAgICAgICA6cGFyYW0gcGF0aF9pbmRleDog
MCBpZiB3ZSBhcmUgbW92aW5nIGZyb20gdGhlIHN0YXJ0IG9yIC0xIGlmIHdlIGFyZSBtb3Zpbmcg
ZnJvbSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICA6cGFyYW0g
bW92ZV9mdW5jOiBGdW5jdGlvbiB0aGF0IGFjdHVhbGx5IG1vdmVzIGJldHdlZW4gY2h1bmtzIiIi
CisgICAgICAgIGlmIGxlbihzb3VyY2VfY2h1bmsucGF0aHMpIDw9IDE6CisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgICAgICBtb3ZlX3RpbWUgPSBzb3VyY2VfY2h1bmsucGF0aHNbcGF0
aF9pbmRleF0udGltZQorCisgICAgICAgIG5ld19zb3VyY2VfYmFkbmVzcyA9IHNlbGYuX2JhZG5l
c3Moc291cmNlX2NodW5rLnRpbWUgLSBtb3ZlX3RpbWUpCisgICAgICAgIG5ld190YXJnZXRfYmFk
bmVzcyA9IHNlbGYuX2JhZG5lc3ModGFyZ2V0X2NodW5rLnRpbWUgKyBtb3ZlX3RpbWUpCisKKyAg
ICAgICAgZGVsdGFfYmFkbmVzcyA9ICgobmV3X3NvdXJjZV9iYWRuZXNzICsgbmV3X3RhcmdldF9i
YWRuZXNzKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZV9jaHVuay5iYWRuZXNz
ICsgdGFyZ2V0X2NodW5rLmJhZG5lc3MpKQorICAgICAgICBpZiBkZWx0YV9iYWRuZXNzIDwgMDoK
KyAgICAgICAgICAgIG1vdmVfZnVuYygpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9iYWRuZXNzKHNlbGYsIHRpbWUpOgorICAgICAg
ICAiIiJNZXRyaWMgb2YgYmFkbmVzcyBmb3IgYSBzcGVjaWZpYyBjaHVuaworCisgICAgICAgIDpw
YXJhbSB0aW1lOiB0aGUgdGltZSBmb3IgYSBzcGVjaWZpYyBjaHVuayIiIgorICAgICAgICByZXR1
cm4gKHRpbWUgLSBzZWxmLmV4cGVjdGVkX3RpbWUpKioyCisKKyAgICBkZWYgX2dldF9jaHVuayhz
ZWxmLCBtYW5pZmVzdF9pdGVtcyk6CisgICAgICAgIGJ5X2RpciwgdG90YWxfdGltZSA9IHNlbGYu
X2dyb3VwX2J5X2RpcmVjdG9yeShtYW5pZmVzdF9pdGVtcykKKworICAgICAgICBpZiBsZW4oYnlf
ZGlyKSA8IHNlbGYudG90YWxfY2h1bmtzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
VHJpZWQgdG8gc3BsaXQgaW50byAlaSBjaHVua3MsIGJ1dCBvbmx5ICVpIHN1YmRpcmVjdG9yaWVz
IGluY2x1ZGVkIiAlICgKKyAgICAgICAgICAgICAgICBzZWxmLnRvdGFsX2NodW5rcywgbGVuKGJ5
X2RpcikpKQorCisgICAgICAgIHNlbGYuZXhwZWN0ZWRfdGltZSA9IGZsb2F0KHRvdGFsX3RpbWUp
IC8gc2VsZi50b3RhbF9jaHVua3MKKworICAgICAgICBjaHVua3MgPSBzZWxmLl9jcmVhdGVfaW5p
dGlhbF9jaHVua3MoYnlfZGlyKQorCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAj
IE1vdmUgYSB0ZXN0IGZyb20gb25lIGNodW5rIHRvIHRoZSBuZXh0IHVudGlsIGRvaW5nIHNvIG5v
IGxvbmdlcgorICAgICAgICAgICAgIyByZWR1Y2VzIHRoZSBiYWRuZXNzCisgICAgICAgICAgICBn
b3RfaW1wcm92ZW1lbnQgPSBzZWxmLl91cGRhdGVfY2h1bmtzKGNodW5rcykKKyAgICAgICAgICAg
IGlmIG5vdCBnb3RfaW1wcm92ZW1lbnQ6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZyhzZWxmLmV4cGVjdGVkX3RpbWUpCisgICAgICAgIGZvciBpLCBj
aHVuayBpbiBjaHVua3MuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiJWk6ICVpLCAlaSIgJSAoaSArIDEsIGNodW5rLnRpbWUsIGNodW5rLmJhZG5lc3MpKQorCisg
ICAgICAgIGFzc2VydCBzZWxmLl9hbGxfdGVzdHMoYnlfZGlyKSA9PSBzZWxmLl9jaHVua2VkX3Rl
c3RzKGNodW5rcykKKworICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X3Rlc3RzKGNodW5rcykKKwor
ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2FsbF90ZXN0cyhieV9kaXIpOgorICAgICAgICAi
IiJSZXR1cm4gYSBzZXQgb2YgYWxsIHRlc3RzIGluIHRoZSBtYW5pZmVzdCBmcm9tIGEgZ3JvdXBp
bmcgYnkgZGlyZWN0b3J5IiIiCisgICAgICAgIHJldHVybiBzZXQoeFswXSBmb3IgaXRlbSBpbiBi
eV9kaXIuaXRlcnZhbHVlcygpCisgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gaXRlbS50ZXN0
cykKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2NodW5rZWRfdGVzdHMoY2h1bmtzKToK
KyAgICAgICAgIiIiUmV0dXJuIGEgc2V0IG9mIGFsbCB0ZXN0cyBpbiB0aGUgbWFuaWZlc3QgZnJv
bSB0aGUgY2h1bmsgbGlzdCIiIgorICAgICAgICByZXR1cm4gc2V0KHhbMF0gZm9yIGNodW5rIGlu
IGNodW5rcy5pdGVydmFsdWVzKCkKKyAgICAgICAgICAgICAgICAgICBmb3IgcGF0aCBpbiBjaHVu
ay5wYXRocworICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhdGgudGVzdHMpCisKKworICAg
IGRlZiBfY3JlYXRlX2luaXRpYWxfY2h1bmtzKHNlbGYsIGJ5X2Rpcik6CisgICAgICAgICIiIkNy
ZWF0ZSBhbiBpbml0aWFsIHVuYmFsYW5jZWQgbGlzdCBvZiBjaHVua3MuCisKKyAgICAgICAgOnBh
cmFtIGJ5X2RpcjogQWxsIHRlc3RzIGluIHRoZSBtYW5pZmVzdCBncm91cGVkIGJ5IHN1YmRpcmVj
dG9yeQorICAgICAgICA6cmV0dXJucyBsaXN0OiBBIGxpc3Qgb2YgQ2h1bmsgb2JqZWN0cyIiIgor
CisgICAgICAgIGNsYXNzIENodW5rKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgcGF0aHMsIGluZGV4KToKKyAgICAgICAgICAgICAgICAiIiJMaXN0IG9mIFBhdGhEYXRh
IG9iamVjdHMgdGhhdCB0b2dldGhlciBmb3JtIGEgc2luZ2xlIGNodW5rIG9mCisgICAgICAgICAg
ICAgICAgdGVzdHMiIiIKKyAgICAgICAgICAgICAgICBzZWxmLnBhdGhzID0gZGVxdWUocGF0aHMp
CisgICAgICAgICAgICAgICAgc2VsZi50aW1lID0gc3VtKGl0ZW0udGltZSBmb3IgaXRlbSBpbiBw
YXRocykKKyAgICAgICAgICAgICAgICBzZWxmLmluZGV4ID0gaW5kZXgKKworICAgICAgICAgICAg
ZGVmIGFwcGVuZGxlZnQoc2VsZiwgcGF0aCk6CisgICAgICAgICAgICAgICAgIiIiQWRkIGEgUGF0
aERhdGEgb2JqZWN0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2h1bmsiIiIKKyAgICAgICAgICAgICAg
ICBzZWxmLnBhdGhzLmFwcGVuZGxlZnQocGF0aCkKKyAgICAgICAgICAgICAgICBzZWxmLnRpbWUg
Kz0gcGF0aC50aW1lCisKKyAgICAgICAgICAgIGRlZiBhcHBlbmQoc2VsZiwgcGF0aCk6CisgICAg
ICAgICAgICAgICAgIiIiQWRkIGEgUGF0aERhdGEgb2JqZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGNo
dW5rIiIiCisgICAgICAgICAgICAgICAgc2VsZi5wYXRocy5hcHBlbmQocGF0aCkKKyAgICAgICAg
ICAgICAgICBzZWxmLnRpbWUgKz0gcGF0aC50aW1lCisKKyAgICAgICAgICAgIGRlZiBwb3Aoc2Vs
Zik6CisgICAgICAgICAgICAgICAgIiIiUmVtb3ZlIFBhdGhEYXRhIG9iamVjdCBmcm9tIHRoZSBl
bmQgb2YgdGhlIGNodW5rIiIiCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihzZWxmLnBhdGhz
KSA+IDEKKyAgICAgICAgICAgICAgICBzZWxmLnRpbWUgLT0gc2VsZi5wYXRoc1stMV0udGltZQor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhdGhzLnBvcCgpCisKKyAgICAgICAgICAgIGRl
ZiBwb3BsZWZ0KHNlbGYpOgorICAgICAgICAgICAgICAgICIiIlJlbW92ZSBQYXRoRGF0YSBvYmpl
Y3QgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGNodW5rIiIiCisgICAgICAgICAgICAgICAgYXNzZXJ0
IGxlbihzZWxmLnBhdGhzKSA+IDEKKyAgICAgICAgICAgICAgICBzZWxmLnRpbWUgLT0gc2VsZi5w
YXRoc1swXS50aW1lCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGF0aHMucG9wbGVmdCgp
CisKKyAgICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAgICAgZGVmIGJhZG5lc3Moc2VsZl8p
OiAgIyBub3FhOiBOODA1CisgICAgICAgICAgICAgICAgIiIiQmFkbmVzcyBtZXRyaWMgZm9yIHRo
aXMgY2h1bmsiIiIKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fYmFkbmVzcyhzZWxmXy50
aW1lKQorCisgICAgICAgIGluaXRpYWxfc2l6ZSA9IGxlbihieV9kaXIpIC8gc2VsZi50b3RhbF9j
aHVua3MKKyAgICAgICAgY2h1bmtfYm91bmRhcmllcyA9IFtpbml0aWFsX3NpemUgKiBpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYudG90YWxfY2h1bmtz
KV0gKyBbbGVuKGJ5X2RpcildCisKKyAgICAgICAgY2h1bmtzID0gT3JkZXJlZERpY3QoKQorICAg
ICAgICBmb3IgaSwgbG93ZXIgaW4gZW51bWVyYXRlKGNodW5rX2JvdW5kYXJpZXNbOi0xXSk6Cisg
ICAgICAgICAgICB1cHBlciA9IGNodW5rX2JvdW5kYXJpZXNbaSArIDFdCisgICAgICAgICAgICBw
YXRocyA9IGJ5X2Rpci52YWx1ZXMoKVtsb3dlcjp1cHBlcl0KKyAgICAgICAgICAgIGNodW5rc1tp
XSA9IENodW5rKHBhdGhzLCBpKQorCisgICAgICAgIGFzc2VydCBzZWxmLl9hbGxfdGVzdHMoYnlf
ZGlyKSA9PSBzZWxmLl9jaHVua2VkX3Rlc3RzKGNodW5rcykKKworICAgICAgICByZXR1cm4gY2h1
bmtzCisKKyAgICBkZWYgX3VwZGF0ZV9jaHVua3Moc2VsZiwgY2h1bmtzKToKKyAgICAgICAgIiIi
UnVuIGEgc2luZ2xlIGl0ZXJhdGlvbiBvZiB0aGUgY2h1bmsgdXBkYXRlIGFsZ29yaXRobS4KKwor
ICAgICAgICA6cGFyYW0gY2h1bmtzOiAtIExpc3Qgb2YgY2h1bmtzCisgICAgICAgICIiIgorICAg
ICAgICAjVE9ETzogY29uc2lkZXIgcmVwbGFjaW5nIHRoaXMgd2l0aCBhIGhlYXAKKyAgICAgICAg
c29ydGVkX2NodW5rcyA9IHNvcnRlZChjaHVua3MudmFsdWVzKCksIGtleT1sYW1iZGEgeDoteC5i
YWRuZXNzKQorICAgICAgICBnb3RfaW1wcm92ZW1lbnQgPSBGYWxzZQorICAgICAgICBmb3IgY2h1
bmsgaW4gc29ydGVkX2NodW5rczoKKyAgICAgICAgICAgIGlmIGNodW5rLnRpbWUgPCBzZWxmLmV4
cGVjdGVkX3RpbWU6CisgICAgICAgICAgICAgICAgZiA9IHNlbGYuX21heWJlX2FkZAorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmID0gc2VsZi5fbWF5YmVfcmVtb3ZlCisKKyAg
ICAgICAgICAgIGlmIGNodW5rLmluZGV4ID09IDA6CisgICAgICAgICAgICAgICAgb3JkZXIgPSBb
Im5leHQiXQorICAgICAgICAgICAgZWxpZiBjaHVuay5pbmRleCA9PSBzZWxmLnRvdGFsX2NodW5r
cyAtIDE6CisgICAgICAgICAgICAgICAgb3JkZXIgPSBbInByZXYiXQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBpZiBjaHVuay50aW1lIDwgc2VsZi5leHBlY3RlZF90aW1lOgor
ICAgICAgICAgICAgICAgICAgICAjIEZpcnN0IHRyeSB0byBhZGQgYSB0ZXN0IGZyb20gdGhlIG5l
aWdoYm9yaW5nIGNodW5rIHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICMgZ3JlYXRlc3Qg
dG90YWwgdGltZQorICAgICAgICAgICAgICAgICAgICBpZiBjaHVua3NbY2h1bmsuaW5kZXggKyAx
XS50aW1lID4gY2h1bmtzW2NodW5rLmluZGV4IC0gMV0udGltZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG9yZGVyID0gWyJuZXh0IiwgInByZXYiXQorICAgICAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbInByZXYiLCAibmV4dCJdCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBGaXJzdCB0cnkgdG8gcmVt
b3ZlIGEgdGVzdCBhbmQgYWRkIHRvIHRoZSBuZWlnaGJvcmluZyBjaHVuayB3aXRoIHRoZQorICAg
ICAgICAgICAgICAgICAgICAjIGxvd2VzdCB0b3RhbCB0aW1lCisgICAgICAgICAgICAgICAgICAg
IGlmIGNodW5rc1tjaHVuay5pbmRleCArIDFdLnRpbWUgPiBjaHVua3NbY2h1bmsuaW5kZXggLSAx
XS50aW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbInByZXYiLCAibmV4dCJd
CisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBvcmRl
ciA9IFsibmV4dCIsICJwcmV2Il0KKworICAgICAgICAgICAgZm9yIGRpcmVjdGlvbiBpbiBvcmRl
cjoKKyAgICAgICAgICAgICAgICBpZiBmKGNodW5rcywgY2h1bmsuaW5kZXgsIGRpcmVjdGlvbik6
CisgICAgICAgICAgICAgICAgICAgIGdvdF9pbXByb3ZlbWVudCA9IFRydWUKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgaWYgZ290X2ltcHJvdmVtZW50OgorICAgICAg
ICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgcmV0dXJuIGdvdF9pbXByb3ZlbWVudAorCisgICAg
ZGVmIF9nZXRfdGVzdHMoc2VsZiwgY2h1bmtzKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBsaXN0
IG9mIHRlc3RzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNodW5rIG51bWJlciB3ZSBhcmUgcnVubmlu
Zy4KKworICAgICAgICA6cGFyYW0gY2h1bmtzOiBMaXN0IG9mIGNodW5rcyIiIgorICAgICAgICB0
ZXN0cyA9IFtdCisgICAgICAgIGZvciBwYXRoIGluIGNodW5rc1tzZWxmLmNodW5rX251bWJlciAt
IDFdLnBhdGhzOgorICAgICAgICAgICAgdGVzdHMuZXh0ZW5kKHBhdGgudGVzdHMpCisKKyAgICAg
ICAgcmV0dXJuIHRlc3RzCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3RfaXRlcik6
CisgICAgICAgIG1hbmlmZXN0ID0gbGlzdChtYW5pZmVzdF9pdGVyKQorICAgICAgICB0ZXN0cyA9
IHNlbGYuX2dldF9jaHVuayhtYW5pZmVzdCkKKyAgICAgICAgZm9yIGl0ZW0gaW4gdGVzdHM6Cisg
ICAgICAgICAgICB5aWVsZCBpdGVtCisKKworY2xhc3MgVGVzdEZpbHRlcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X21hbmlmZXN0cywgaW5jbHVkZT1Ob25lLCBleGNsdWRl
PU5vbmUsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CisgICAgICAgIGlmIG1hbmlmZXN0X3BhdGggaXMg
bm90IE5vbmUgYW5kIGluY2x1ZGUgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYubWFuaWZlc3Qg
PSBtYW5pZmVzdGluY2x1ZGUuZ2V0X21hbmlmZXN0KG1hbmlmZXN0X3BhdGgpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3RpbmNsdWRlLkluY2x1ZGVN
YW5pZmVzdC5jcmVhdGUoKQorICAgICAgICAgICAgc2VsZi5tYW5pZmVzdC5zZXRfZGVmYXVsdHMo
KQorCisgICAgICAgIGlmIGluY2x1ZGU6CisgICAgICAgICAgICBzZWxmLm1hbmlmZXN0LnNldCgi
c2tpcCIsICJ0cnVlIikKKyAgICAgICAgICAgIGZvciBpdGVtIGluIGluY2x1ZGU6CisgICAgICAg
ICAgICAgICAgc2VsZi5tYW5pZmVzdC5hZGRfaW5jbHVkZSh0ZXN0X21hbmlmZXN0cywgaXRlbSkK
KworICAgICAgICBpZiBleGNsdWRlOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZXhjbHVkZToK
KyAgICAgICAgICAgICAgICBzZWxmLm1hbmlmZXN0LmFkZF9leGNsdWRlKHRlc3RfbWFuaWZlc3Rz
LCBpdGVtKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG1hbmlmZXN0X2l0ZXIpOgorICAgICAg
ICBmb3IgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzIGluIG1hbmlmZXN0X2l0ZXI6CisgICAg
ICAgICAgICBpbmNsdWRlX3Rlc3RzID0gc2V0KCkKKyAgICAgICAgICAgIGZvciB0ZXN0IGluIHRl
c3RzOgorICAgICAgICAgICAgICAgIGlmIHNlbGYubWFuaWZlc3QuaW5jbHVkZSh0ZXN0KToKKyAg
ICAgICAgICAgICAgICAgICAgaW5jbHVkZV90ZXN0cy5hZGQodGVzdCkKKworICAgICAgICAgICAg
aWYgaW5jbHVkZV90ZXN0czoKKyAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0X3R5cGUsIHRlc3Rf
cGF0aCwgaW5jbHVkZV90ZXN0cworCitjbGFzcyBUYWdGaWx0ZXIob2JqZWN0KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgdGFncyk6CisgICAgICAgIHNlbGYudGFncyA9IHNldCh0YWdzKQorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIHRlc3RfaXRlcik6CisgICAgICAgIGZvciB0ZXN0IGluIHRl
c3RfaXRlcjoKKyAgICAgICAgICAgIGlmIHRlc3QudGFncyAmIHNlbGYudGFnczoKKyAgICAgICAg
ICAgICAgICB5aWVsZCB0ZXN0CisKKworY2xhc3MgTWFuaWZlc3RMb2FkZXIob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgZm9yY2VfbWFuaWZlc3RfdXBkYXRlPUZh
bHNlLCBtYW5pZmVzdF9kb3dubG9hZD1GYWxzZSk6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0
cygpCisgICAgICAgIHNlbGYudGVzdF9wYXRocyA9IHRlc3RfcGF0aHMKKyAgICAgICAgc2VsZi5m
b3JjZV9tYW5pZmVzdF91cGRhdGUgPSBmb3JjZV9tYW5pZmVzdF91cGRhdGUKKyAgICAgICAgc2Vs
Zi5tYW5pZmVzdF9kb3dubG9hZCA9IG1hbmlmZXN0X2Rvd25sb2FkCisgICAgICAgIHNlbGYubG9n
Z2VyID0gc3RydWN0dXJlZC5nZXRfZGVmYXVsdF9sb2dnZXIoKQorICAgICAgICBpZiBzZWxmLmxv
Z2dlciBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIgPSBzdHJ1Y3R1cmVkLnN0cnVj
dHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiTWFuaWZlc3RMb2FkZXIiKQorCisgICAgZGVmIGxv
YWQoc2VsZik6CisgICAgICAgIHJ2ID0ge30KKyAgICAgICAgZm9yIHVybF9iYXNlLCBwYXRocyBp
biBzZWxmLnRlc3RfcGF0aHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBtYW5pZmVzdF9maWxl
ID0gc2VsZi5sb2FkX21hbmlmZXN0KHVybF9iYXNlPXVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnBhdGhzKQorICAgICAgICAgICAgcGF0
aF9kYXRhID0geyJ1cmxfYmFzZSI6IHVybF9iYXNlfQorICAgICAgICAgICAgcGF0aF9kYXRhLnVw
ZGF0ZShwYXRocykKKyAgICAgICAgICAgIHJ2W21hbmlmZXN0X2ZpbGVdID0gcGF0aF9kYXRhCisg
ICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGNyZWF0ZV9tYW5pZmVzdChzZWxmLCBtYW5pZmVz
dF9wYXRoLCB0ZXN0c19wYXRoLCB1cmxfYmFzZT0iLyIpOgorICAgICAgICBzZWxmLnVwZGF0ZV9t
YW5pZmVzdChtYW5pZmVzdF9wYXRoLCB0ZXN0c19wYXRoLCB1cmxfYmFzZSwgcmVjcmVhdGU9VHJ1
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ9c2VsZi5tYW5pZmVzdF9k
b3dubG9hZCkKKworICAgIGRlZiB1cGRhdGVfbWFuaWZlc3Qoc2VsZiwgbWFuaWZlc3RfcGF0aCwg
dGVzdHNfcGF0aCwgdXJsX2Jhc2U9Ii8iLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVjcmVh
dGU9RmFsc2UsIGRvd25sb2FkPUZhbHNlKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiVXBk
YXRpbmcgdGVzdCBtYW5pZmVzdCAlcyIgJSBtYW5pZmVzdF9wYXRoKQorICAgICAgICBtYW5pZmVz
dF9sb2cuc2V0dXAoKQorCisgICAgICAgIGpzb25fZGF0YSA9IE5vbmUKKyAgICAgICAgaWYgZG93
bmxvYWQ6CisgICAgICAgICAgICAjIFRPRE86IG1ha2UgdGhpcyBub3QgZ2l0aHViLXNwZWNpZmlj
CisgICAgICAgICAgICBkb3dubG9hZF9mcm9tX2dpdGh1YihtYW5pZmVzdF9wYXRoLCB0ZXN0c19w
YXRoKQorCisgICAgICAgIGlmIG5vdCByZWNyZWF0ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgICAg
ICAgICAganNvbl9kYXRhID0ganNvbi5sb2FkKGYpCisgICAgICAgICAgICBleGNlcHQgSU9FcnJv
cjoKKyAgICAgICAgICAgICAgICAjSWYgdGhlIGV4aXN0aW5nIGZpbGUgZG9lc24ndCBleGlzdCBq
dXN0IGNyZWF0ZSBvbmUgZnJvbSBzY3JhdGNoCisgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ICAgIGlmIG5vdCBqc29uX2RhdGE6CisgICAgICAgICAgICBtYW5pZmVzdF9maWxlID0gbWFuaWZl
c3QuTWFuaWZlc3QodXJsX2Jhc2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNv
bih0ZXN0c19wYXRoLCBqc29uX2RhdGEpCisgICAgICAgICAgICBleGNlcHQgbWFuaWZlc3QuTWFu
aWZlc3RWZXJzaW9uTWlzbWF0Y2g6CisgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1h
bmlmZXN0Lk1hbmlmZXN0KHVybF9iYXNlKQorCisgICAgICAgIG1hbmlmZXN0X3VwZGF0ZS51cGRh
dGUodGVzdHNfcGF0aCwgbWFuaWZlc3RfZmlsZSwgVHJ1ZSkKKworICAgICAgICBtYW5pZmVzdC53
cml0ZShtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF9wYXRoKQorCisgICAgZGVmIGxvYWRfbWFuaWZl
c3Qoc2VsZiwgdGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0aCwgdXJsX2Jhc2U9Ii8iLCAqKmt3YXJn
cyk6CisgICAgICAgIGlmIChub3Qgb3MucGF0aC5leGlzdHMobWFuaWZlc3RfcGF0aCkgb3IKKyAg
ICAgICAgICAgIHNlbGYuZm9yY2VfbWFuaWZlc3RfdXBkYXRlKToKKyAgICAgICAgICAgIHNlbGYu
dXBkYXRlX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgsIHVybF9iYXNlLCBkb3du
bG9hZD1zZWxmLm1hbmlmZXN0X2Rvd25sb2FkKQorICAgICAgICBtYW5pZmVzdF9maWxlID0gbWFu
aWZlc3QubG9hZCh0ZXN0c19wYXRoLCBtYW5pZmVzdF9wYXRoKQorICAgICAgICBpZiBtYW5pZmVz
dF9maWxlLnVybF9iYXNlICE9IHVybF9iYXNlOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5m
bygiVXBkYXRpbmcgdXJsX2Jhc2UgaW4gbWFuaWZlc3QgZnJvbSAlcyB0byAlcyIgJSAobWFuaWZl
c3RfZmlsZS51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlKSkKKyAgICAg
ICAgICAgIG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UgPSB1cmxfYmFzZQorICAgICAgICAgICAgbWFu
aWZlc3Qud3JpdGUobWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfcGF0aCkKKworICAgICAgICByZXR1
cm4gbWFuaWZlc3RfZmlsZQorCisKK2RlZiBpdGVyZmlsdGVyKGZpbHRlcnMsIGl0ZXIpOgorICAg
IGZvciBmIGluIGZpbHRlcnM6CisgICAgICAgIGl0ZXIgPSBmKGl0ZXIpCisgICAgZm9yIGl0ZW0g
aW4gaXRlcjoKKyAgICAgICAgeWllbGQgaXRlbQorCitjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3Rz
LAorICAgICAgICAgICAgICAgICB0ZXN0X3R5cGVzLAorICAgICAgICAgICAgICAgICBydW5faW5m
bywKKyAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsdGVycz1Ob25lLAorICAgICAgICAgICAg
ICAgICBtZXRhX2ZpbHRlcnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2h1bmtfdHlwZT0ibm9u
ZSIsCisgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcz0xLAorICAgICAgICAgICAgICAgICBj
aHVua19udW1iZXI9MSwKKyAgICAgICAgICAgICAgICAgaW5jbHVkZV9odHRwcz1UcnVlLAorICAg
ICAgICAgICAgICAgICBza2lwX3RpbWVvdXQ9RmFsc2UpOgorCisgICAgICAgIHNlbGYudGVzdF90
eXBlcyA9IHRlc3RfdHlwZXMKKyAgICAgICAgc2VsZi5ydW5faW5mbyA9IHJ1bl9pbmZvCisKKyAg
ICAgICAgc2VsZi5tYW5pZmVzdF9maWx0ZXJzID0gbWFuaWZlc3RfZmlsdGVycyBpZiBtYW5pZmVz
dF9maWx0ZXJzIGlzIG5vdCBOb25lIGVsc2UgW10KKyAgICAgICAgc2VsZi5tZXRhX2ZpbHRlcnMg
PSBtZXRhX2ZpbHRlcnMgaWYgbWV0YV9maWx0ZXJzIGlzIG5vdCBOb25lIGVsc2UgW10KKworICAg
ICAgICBzZWxmLm1hbmlmZXN0cyA9IHRlc3RfbWFuaWZlc3RzCisgICAgICAgIHNlbGYudGVzdHMg
PSBOb25lCisgICAgICAgIHNlbGYuZGlzYWJsZWRfdGVzdHMgPSBOb25lCisgICAgICAgIHNlbGYu
aW5jbHVkZV9odHRwcyA9IGluY2x1ZGVfaHR0cHMKKyAgICAgICAgc2VsZi5za2lwX3RpbWVvdXQg
PSBza2lwX3RpbWVvdXQKKworICAgICAgICBzZWxmLmNodW5rX3R5cGUgPSBjaHVua190eXBlCisg
ICAgICAgIHNlbGYudG90YWxfY2h1bmtzID0gdG90YWxfY2h1bmtzCisgICAgICAgIHNlbGYuY2h1
bmtfbnVtYmVyID0gY2h1bmtfbnVtYmVyCisKKyAgICAgICAgc2VsZi5jaHVua2VyID0geyJub25l
IjogVW5jaHVua2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgImhhc2giOiBIYXNoQ2h1bmtl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkaXJfaGFzaCI6IERpcmVjdG9yeUhhc2hDaHVu
a2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgImVxdWFsX3RpbWUiOiBFcXVhbFRpbWVDaHVu
a2VyfVtjaHVua190eXBlXSh0b3RhbF9jaHVua3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rX251bWJlcikK
KworICAgICAgICBzZWxmLl90ZXN0X2lkcyA9IE5vbmUKKworICAgICAgICBzZWxmLmRpcmVjdG9y
eV9tYW5pZmVzdHMgPSB7fQorCisgICAgICAgIHNlbGYuX2xvYWRfdGVzdHMoKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHRlc3RfaWRzKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl90ZXN0X2lk
cyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9pZHMgPSBbXQorICAgICAgICAgICAg
Zm9yIHRlc3RfZGljdCBpbiBbc2VsZi5kaXNhYmxlZF90ZXN0cywgc2VsZi50ZXN0c106CisgICAg
ICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSBpbiBzZWxmLnRlc3RfdHlwZXM6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfaWRzICs9IFtpdGVtLmlkIGZvciBpdGVtIGluIHRlc3RfZGlj
dFt0ZXN0X3R5cGVdXQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9pZHMKKworICAgIGRlZiBn
ZXRfdGVzdChzZWxmLCBtYW5pZmVzdF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFk
YXRhKToKKyAgICAgICAgaWYgdGVzdF9tZXRhZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGluaGVyaXRfbWV0YWRhdGEuYXBwZW5kKHRlc3RfbWV0YWRhdGEpCisgICAgICAgICAgICB0ZXN0
X21ldGFkYXRhID0gdGVzdF9tZXRhZGF0YS5nZXRfdGVzdChtYW5pZmVzdF90ZXN0LmlkKQorCisg
ICAgICAgIHJldHVybiB3cHR0ZXN0LmZyb21fbWFuaWZlc3QobWFuaWZlc3RfdGVzdCwgaW5oZXJp
dF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKKworICAgIGRlZiBsb2FkX2Rpcl9tZXRhZGF0YShz
ZWxmLCB0ZXN0X21hbmlmZXN0LCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgpOgorICAgICAgICBy
diA9IFtdCisgICAgICAgIHBhdGhfcGFydHMgPSBvcy5wYXRoLmRpcm5hbWUodGVzdF9wYXRoKS5z
cGxpdChvcy5wYXRoLnNlcCkKKyAgICAgICAgZm9yIGkgaW4geHJhbmdlKDEsbGVuKHBhdGhfcGFy
dHMpICsgMSk6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKG1ldGFkYXRhX3BhdGgs
IG9zLnBhdGguc2VwLmpvaW4ocGF0aF9wYXJ0c1s6aV0pLCAiX19kaXJfXy5pbmkiKQorICAgICAg
ICAgICAgaWYgcGF0aCBub3QgaW4gc2VsZi5kaXJlY3RvcnlfbWFuaWZlc3RzOgorICAgICAgICAg
ICAgICAgIHNlbGYuZGlyZWN0b3J5X21hbmlmZXN0c1twYXRoXSA9IG1hbmlmZXN0ZXhwZWN0ZWQu
Z2V0X2Rpcl9tYW5pZmVzdChwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1
bl9pbmZvKQorICAgICAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmRpcmVjdG9yeV9tYW5pZmVzdHNb
cGF0aF0KKyAgICAgICAgICAgIGlmIG1hbmlmZXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIHJ2LmFwcGVuZChtYW5pZmVzdCkKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgbG9h
ZF9tZXRhZGF0YShzZWxmLCB0ZXN0X21hbmlmZXN0LCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgp
OgorICAgICAgICBpbmhlcml0X21ldGFkYXRhID0gc2VsZi5sb2FkX2Rpcl9tZXRhZGF0YSh0ZXN0
X21hbmlmZXN0LCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgpCisgICAgICAgIHRlc3RfbWV0YWRh
dGEgPSBtYW5pZmVzdGV4cGVjdGVkLmdldF9tYW5pZmVzdCgKKyAgICAgICAgICAgIG1ldGFkYXRh
X3BhdGgsIHRlc3RfcGF0aCwgdGVzdF9tYW5pZmVzdC51cmxfYmFzZSwgc2VsZi5ydW5faW5mbykK
KyAgICAgICAgcmV0dXJuIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEKKworICAgIGRl
ZiBpdGVyX3Rlc3RzKHNlbGYpOgorICAgICAgICBtYW5pZmVzdF9pdGVtcyA9IFtdCisKKyAgICAg
ICAgZm9yIG1hbmlmZXN0IGluIHNvcnRlZChzZWxmLm1hbmlmZXN0cy5rZXlzKCksIGtleT1sYW1i
ZGEgeDp4LnVybF9iYXNlKToKKyAgICAgICAgICAgIG1hbmlmZXN0X2l0ZXIgPSBpdGVyZmlsdGVy
KHNlbGYubWFuaWZlc3RfZmlsdGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hbmlmZXN0Lml0ZXJ0eXBlcygqc2VsZi50ZXN0X3R5cGVzKSkKKyAgICAgICAgICAg
IG1hbmlmZXN0X2l0ZW1zLmV4dGVuZChtYW5pZmVzdF9pdGVyKQorCisgICAgICAgIGlmIHNlbGYu
Y2h1bmtlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW1zID0gc2VsZi5j
aHVua2VyKG1hbmlmZXN0X2l0ZW1zKQorCisgICAgICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RfcGF0
aCwgdGVzdHMgaW4gbWFuaWZlc3RfaXRlbXM6CisgICAgICAgICAgICBtYW5pZmVzdF9maWxlID0g
aXRlcih0ZXN0cykubmV4dCgpLm1hbmlmZXN0CisgICAgICAgICAgICBtZXRhZGF0YV9wYXRoID0g
c2VsZi5tYW5pZmVzdHNbbWFuaWZlc3RfZmlsZV1bIm1ldGFkYXRhX3BhdGgiXQorICAgICAgICAg
ICAgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSA9IHNlbGYubG9hZF9tZXRhZGF0YSht
YW5pZmVzdF9maWxlLCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgpCisKKyAgICAgICAgICAgIGZv
ciB0ZXN0IGluIGl0ZXJmaWx0ZXIoc2VsZi5tZXRhX2ZpbHRlcnMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuaXRlcl93cHR0ZXN0KGluaGVyaXRfbWV0YWRhdGEsIHRl
c3RfbWV0YWRhdGEsIHRlc3RzKSk6CisgICAgICAgICAgICAgICAgeWllbGQgdGVzdF9wYXRoLCB0
ZXN0X3R5cGUsIHRlc3QKKworICAgIGRlZiBpdGVyX3dwdHRlc3Qoc2VsZiwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGVzdHMpOgorICAgICAgICBmb3IgbWFuaWZlc3RfdGVzdCBp
biB0ZXN0czoKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuZ2V0X3Rlc3QobWFuaWZlc3RfdGVzdCwg
aW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKKworICAgIGRlZiBfbG9hZF90ZXN0cyhz
ZWxmKToKKyAgICAgICAgIiIiUmVhZCBpbiB0aGUgdGVzdHMgZnJvbSB0aGUgbWFuaWZlc3QgZmls
ZSBhbmQgYWRkIHRoZW0gdG8gYSBxdWV1ZSIiIgorICAgICAgICB0ZXN0cyA9IHsiZW5hYmxlZCI6
ZGVmYXVsdGRpY3QobGlzdCksCisgICAgICAgICAgICAgICAgICJkaXNhYmxlZCI6ZGVmYXVsdGRp
Y3QobGlzdCl9CisKKyAgICAgICAgZm9yIHRlc3RfcGF0aCwgdGVzdF90eXBlLCB0ZXN0IGluIHNl
bGYuaXRlcl90ZXN0cygpOgorICAgICAgICAgICAgZW5hYmxlZCA9IG5vdCB0ZXN0LmRpc2FibGVk
KCkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmluY2x1ZGVfaHR0cHMgYW5kIHRlc3QuZW52aXJv
bm1lbnRbInByb3RvY29sIl0gPT0gImh0dHBzIjoKKyAgICAgICAgICAgICAgICBlbmFibGVkID0g
RmFsc2UKKyAgICAgICAgICAgIGlmIHNlbGYuc2tpcF90aW1lb3V0IGFuZCB0ZXN0LmV4cGVjdGVk
KCkgPT0gIlRJTUVPVVQiOgorICAgICAgICAgICAgICAgIGVuYWJsZWQgPSBGYWxzZQorICAgICAg
ICAgICAga2V5ID0gImVuYWJsZWQiIGlmIGVuYWJsZWQgZWxzZSAiZGlzYWJsZWQiCisgICAgICAg
ICAgICB0ZXN0c1trZXldW3Rlc3RfdHlwZV0uYXBwZW5kKHRlc3QpCisKKyAgICAgICAgc2VsZi50
ZXN0cyA9IHRlc3RzWyJlbmFibGVkIl0KKyAgICAgICAgc2VsZi5kaXNhYmxlZF90ZXN0cyA9IHRl
c3RzWyJkaXNhYmxlZCJdCisKKyAgICBkZWYgZ3JvdXBzKHNlbGYsIHRlc3RfdHlwZXMsIGNodW5r
X3R5cGU9Im5vbmUiLCB0b3RhbF9jaHVua3M9MSwgY2h1bmtfbnVtYmVyPTEpOgorICAgICAgICBn
cm91cHMgPSBzZXQoKQorCisgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4gdGVzdF90eXBlczoKKyAg
ICAgICAgICAgIGZvciB0ZXN0IGluIHNlbGYudGVzdHNbdGVzdF90eXBlXToKKyAgICAgICAgICAg
ICAgICBncm91cCA9IHRlc3QudXJsLnNwbGl0KCIvIilbMV0KKyAgICAgICAgICAgICAgICBncm91
cHMuYWRkKGdyb3VwKQorCisgICAgICAgIHJldHVybiBncm91cHMKKworCitjbGFzcyBUZXN0U291
cmNlKG9iamVjdCk6CisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0X3F1ZXVlKToKKyAgICAgICAgc2VsZi50ZXN0X3F1ZXVlID0gdGVzdF9x
dWV1ZQorICAgICAgICBzZWxmLmN1cnJlbnRfZ3JvdXAgPSBOb25lCisgICAgICAgIHNlbGYuY3Vy
cmVudF9tZXRhZGF0YSA9IE5vbmUKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgICMgbm9xYTog
TjgwNQorICAgICNAY2xhc3NtZXRob2QgKGRvZXNuJ3QgY29tcG9zZSB3aXRoIEBhYnN0cmFjdG1l
dGhvZCkKKyAgICBkZWYgbWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJncyk6CisgICAgICAg
IHBhc3MKKworICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuY3VycmVu
dF9ncm91cCBvciBsZW4oc2VsZi5jdXJyZW50X2dyb3VwKSA9PSAwOgorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudF9ncm91cCwgc2VsZi5jdXJyZW50X21ldGFk
YXRhID0gc2VsZi50ZXN0X3F1ZXVlLmdldChibG9jaz1GYWxzZSkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFbXB0eToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgICAgICByZXR1
cm4gc2VsZi5jdXJyZW50X2dyb3VwLCBzZWxmLmN1cnJlbnRfbWV0YWRhdGEKKworCitjbGFzcyBH
cm91cGVkU291cmNlKFRlc3RTb3VyY2UpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBuZXdf
Z3JvdXAoY2xzLCBzdGF0ZSwgdGVzdCwgKiprd2FyZ3MpOgorICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbWFrZV9xdWV1ZShjbHMs
IHRlc3RzLCAqKmt3YXJncyk6CisgICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAg
IGdyb3VwcyA9IFtdCisKKyAgICAgICAgc3RhdGUgPSB7fQorCisgICAgICAgIGZvciB0ZXN0IGlu
IHRlc3RzOgorICAgICAgICAgICAgaWYgY2xzLm5ld19ncm91cChzdGF0ZSwgdGVzdCwgKiprd2Fy
Z3MpOgorICAgICAgICAgICAgICAgIGdyb3Vwcy5hcHBlbmQoKGRlcXVlKCksIHt9KSkKKworICAg
ICAgICAgICAgZ3JvdXAsIG1ldGFkYXRhID0gZ3JvdXBzWy0xXQorICAgICAgICAgICAgZ3JvdXAu
YXBwZW5kKHRlc3QpCisgICAgICAgICAgICB0ZXN0LnVwZGF0ZV9tZXRhZGF0YShtZXRhZGF0YSkK
KworICAgICAgICBmb3IgaXRlbSBpbiBncm91cHM6CisgICAgICAgICAgICB0ZXN0X3F1ZXVlLnB1
dChpdGVtKQorICAgICAgICByZXR1cm4gdGVzdF9xdWV1ZQorCisKK2NsYXNzIFNpbmdsZVRlc3RT
b3VyY2UoVGVzdFNvdXJjZSk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG1ha2VfcXVldWUo
Y2xzLCB0ZXN0cywgKiprd2FyZ3MpOgorICAgICAgICB0ZXN0X3F1ZXVlID0gUXVldWUoKQorICAg
ICAgICBwcm9jZXNzZXMgPSBrd2FyZ3NbInByb2Nlc3NlcyJdCisgICAgICAgIHF1ZXVlcyA9IFtk
ZXF1ZShbXSkgZm9yIF8gaW4geHJhbmdlKHByb2Nlc3NlcyldCisgICAgICAgIG1ldGFkYXRhcyA9
IFt7fSBmb3IgXyBpbiB4cmFuZ2UocHJvY2Vzc2VzKV0KKyAgICAgICAgZm9yIHRlc3QgaW4gdGVz
dHM6CisgICAgICAgICAgICBpZHggPSBoYXNoKHRlc3QuaWQpICUgcHJvY2Vzc2VzCisgICAgICAg
ICAgICBncm91cCA9IHF1ZXVlc1tpZHhdCisgICAgICAgICAgICBtZXRhZGF0YSA9IG1ldGFkYXRh
c1tpZHhdCisgICAgICAgICAgICBncm91cC5hcHBlbmQodGVzdCkKKyAgICAgICAgICAgIHRlc3Qu
dXBkYXRlX21ldGFkYXRhKG1ldGFkYXRhKQorCisgICAgICAgIGZvciBpdGVtIGluIHppcChxdWV1
ZXMsIG1ldGFkYXRhcyk6CisgICAgICAgICAgICB0ZXN0X3F1ZXVlLnB1dChpdGVtKQorCisgICAg
ICAgIHJldHVybiB0ZXN0X3F1ZXVlCisKKworY2xhc3MgUGF0aEdyb3VwZWRTb3VyY2UoR3JvdXBl
ZFNvdXJjZSk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG5ld19ncm91cChjbHMsIHN0YXRl
LCB0ZXN0LCAqKmt3YXJncyk6CisgICAgICAgIGRlcHRoID0ga3dhcmdzLmdldCgiZGVwdGgiKQor
ICAgICAgICBpZiBkZXB0aCBpcyBUcnVlOgorICAgICAgICAgICAgZGVwdGggPSBOb25lCisgICAg
ICAgIHBhdGggPSB1cmxwYXJzZS51cmxzcGxpdCh0ZXN0LnVybCkucGF0aC5zcGxpdCgiLyIpWzE6
LTFdWzpkZXB0aF0KKyAgICAgICAgcnYgPSBwYXRoICE9IHN0YXRlLmdldCgicHJldl9wYXRoIikK
KyAgICAgICAgc3RhdGVbInByZXZfcGF0aCJdID0gcGF0aAorICAgICAgICByZXR1cm4gcnYKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Ry
dW5uZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQyZDc2OGJmYTcwYTg3NGMzNjZlMWFlMDhhYjFjYTQzZDUz
YmVlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CkBAIC0w
LDAgKzEsNzk4IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKwor
aW1wb3J0IG11bHRpcHJvY2Vzc2luZworaW1wb3J0IHN5cworaW1wb3J0IHRocmVhZGluZworaW1w
b3J0IHRyYWNlYmFjaworZnJvbSBRdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gY29sbGVjdGlvbnMg
aW1wb3J0IG5hbWVkdHVwbGUKK2Zyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNzLCBj
dXJyZW50X3Byb2Nlc3MsIFF1ZXVlCisKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkbG9n
CisKKyMgU3BlY2lhbCB2YWx1ZSB1c2VkIGFzIGEgc2VudGluYWwgaW4gdmFyaW91cyBjb21tYW5k
cworU3RvcCA9IG9iamVjdCgpCisKKworY2xhc3MgTWVzc2FnZUxvZ2dlcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlX2Z1bmMpOgorICAgICAgICBzZWxmLnNlbmRfbWVz
c2FnZSA9IG1lc3NhZ2VfZnVuYworCisgICAgZGVmIF9sb2dfZGF0YShzZWxmLCBhY3Rpb24sICoq
a3dhcmdzKToKKyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImxvZyIsIGFjdGlvbiwga3dhcmdz
KQorCisgICAgZGVmIHByb2Nlc3Nfb3V0cHV0KHNlbGYsIHByb2Nlc3MsIGRhdGEsIGNvbW1hbmQp
OgorICAgICAgICBzZWxmLl9sb2dfZGF0YSgicHJvY2Vzc19vdXRwdXQiLCBwcm9jZXNzPXByb2Nl
c3MsIGRhdGE9ZGF0YSwgY29tbWFuZD1jb21tYW5kKQorCisKK2RlZiBfbG9nX2Z1bmMobGV2ZWxf
bmFtZSk6CisgICAgZGVmIGxvZyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5fbG9nX2Rh
dGEobGV2ZWxfbmFtZS5sb3dlcigpLCBtZXNzYWdlPW1lc3NhZ2UpCisgICAgbG9nLl9fZG9jX18g
PSAiIiJMb2cgYSBtZXNzYWdlIHdpdGggbGV2ZWwgJXMKKworOnBhcmFtIG1lc3NhZ2U6IFRoZSBz
dHJpbmcgbWVzc2FnZSB0byBsb2cKKyIiIiAlIGxldmVsX25hbWUKKyAgICBsb2cuX19uYW1lX18g
PSBzdHIobGV2ZWxfbmFtZSkubG93ZXIoKQorICAgIHJldHVybiBsb2cKKworIyBDcmVhdGUgYWxs
IHRoZSBtZXRob2RzIG9uIFN0cnVjdHVyZWRMb2cgZm9yIGRlYnVnIGxldmVscworZm9yIGxldmVs
X25hbWUgaW4gc3RydWN0dXJlZGxvZy5sb2dfbGV2ZWxzOgorICAgIHNldGF0dHIoTWVzc2FnZUxv
Z2dlciwgbGV2ZWxfbmFtZS5sb3dlcigpLCBfbG9nX2Z1bmMobGV2ZWxfbmFtZSkpCisKKworY2xh
c3MgVGVzdFJ1bm5lcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tYW5kX3F1
ZXVlLCByZXN1bHRfcXVldWUsIGV4ZWN1dG9yKToKKyAgICAgICAgIiIiQ2xhc3MgaW1wbGVtZW50
aW5nIHRoZSBtYWluIGxvb3AgZm9yIHJ1bm5pbmcgdGVzdHMuCisKKyAgICAgICAgVGhpcyBjbGFz
cyBkZWxlZ2F0ZXMgdGhlIGpvYiBvZiBhY3R1YWxseSBydW5uaW5nIGEgdGVzdCB0byB0aGUgZXhl
Y3V0b3IKKyAgICAgICAgdGhhdCBpcyBwYXNzZWQgaW4uCisKKyAgICAgICAgOnBhcmFtIGNvbW1h
bmRfcXVldWU6IHN1YnByb2Nlc3MuUXVldWUgdXNlZCB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcworICAgICAgICA6cGFyYW0gcmVz
dWx0X3F1ZXVlOiBzdWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8gc2VuZCByZXN1bHRzIHRvIHRoZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgVGVzdE1hbmFnZXIgcHJvY2Vzcwor
ICAgICAgICA6cGFyYW0gZXhlY3V0b3I6IFRlc3RFeGVjdXRvciBvYmplY3QgdGhhdCB3aWxsIGFj
dHVhbGx5IHJ1biBhIHRlc3QuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmNvbW1hbmRfcXVl
dWUgPSBjb21tYW5kX3F1ZXVlCisgICAgICAgIHNlbGYucmVzdWx0X3F1ZXVlID0gcmVzdWx0X3F1
ZXVlCisKKyAgICAgICAgc2VsZi5leGVjdXRvciA9IGV4ZWN1dG9yCisgICAgICAgIHNlbGYubmFt
ZSA9IGN1cnJlbnRfcHJvY2VzcygpLm5hbWUKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBNZXNzYWdl
TG9nZ2VyKHNlbGYuc2VuZF9tZXNzYWdlKQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhj
X3ZhbHVlLCB0cmFjZWJhY2spOgorICAgICAgICBzZWxmLnRlYXJkb3duKCkKKworICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkV4ZWN1dG9yIHNldHVwIikK
KyAgICAgICAgc2VsZi5leGVjdXRvci5zZXR1cChzZWxmKQorICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiRXhlY3V0b3Igc2V0dXAgZG9uZSIpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6Cisg
ICAgICAgIHNlbGYuZXhlY3V0b3IudGVhcmRvd24oKQorICAgICAgICBzZWxmLnNlbmRfbWVzc2Fn
ZSgicnVubmVyX3RlYXJkb3duIikKKyAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSBOb25lCisg
ICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSA9IE5vbmUKKyAgICAgICAgc2VsZi5icm93c2VyID0g
Tm9uZQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgIiIiTWFpbiBsb29wIGFjY2VwdGlu
ZyBjb21tYW5kcyBvdmVyIHRoZSBwaXBlIGFuZCB0cmlnZ2VyaW5nCisgICAgICAgIHRoZSBhc3Nv
Y2lhdGVkIG1ldGhvZHMiIiIKKyAgICAgICAgc2VsZi5zZXR1cCgpCisgICAgICAgIGNvbW1hbmRz
ID0geyJydW5fdGVzdCI6IHNlbGYucnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICJzdG9w
Ijogc2VsZi5zdG9wLAorICAgICAgICAgICAgICAgICAgICAid2FpdCI6IHNlbGYud2FpdH0KKyAg
ICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGNvbW1hbmQsIGFyZ3MgPSBzZWxmLmNvbW1h
bmRfcXVldWUuZ2V0KCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBydiA9IGNv
bW1hbmRzW2NvbW1hbmRdKCphcmdzKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAg
ICAgICAgICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgiZXJyb3IiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJFcnJvciBydW5uaW5nIGNvbW1hbmQgJXMgd2l0aCBhcmd1bWVu
dHMgJXI6XG4lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tYW5k
LCBhcmdzLCB0cmFjZWJhY2suZm9ybWF0X2V4YygpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgaWYgcnYgaXMgU3RvcDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKwor
ICAgIGRlZiBzdG9wKHNlbGYpOgorICAgICAgICByZXR1cm4gU3RvcAorCisgICAgZGVmIHJ1bl90
ZXN0KHNlbGYsIHRlc3QpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5l
eGVjdXRvci5ydW5fdGVzdCh0ZXN0KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuY3JpdGljYWwodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAg
ICAgICAgIHJhaXNlCisKKyAgICBkZWYgd2FpdChzZWxmKToKKyAgICAgICAgc2VsZi5leGVjdXRv
ci53YWl0KCkKKyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoIndhaXRfZmluaXNoZWQiKQorCisg
ICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHNlbGYu
cmVzdWx0X3F1ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCisKKworZGVmIHN0YXJ0X3J1bm5lcihy
dW5uZXJfY29tbWFuZF9xdWV1ZSwgcnVubmVyX3Jlc3VsdF9xdWV1ZSwKKyAgICAgICAgICAgICAg
ICAgZXhlY3V0b3JfY2xzLCBleGVjdXRvcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAgIGV4ZWN1
dG9yX2Jyb3dzZXJfY2xzLCBleGVjdXRvcl9icm93c2VyX2t3YXJncywKKyAgICAgICAgICAgICAg
ICAgc3RvcF9mbGFnKToKKyAgICAiIiJMYXVuY2ggYSBUZXN0UnVubmVyIGluIGEgbmV3IHByb2Nl
c3MiIiIKKyAgICBkZWYgbG9nKGxldmVsLCBtc2cpOgorICAgICAgICBydW5uZXJfcmVzdWx0X3F1
ZXVlLnB1dCgoImxvZyIsIChsZXZlbCwgeyJtZXNzYWdlIjogbXNnfSkpKQorCisgICAgZGVmIGhh
bmRsZV9lcnJvcihlKToKKyAgICAgICAgbG9nKCJjcml0aWNhbCIsIHRyYWNlYmFjay5mb3JtYXRf
ZXhjKCkpCisgICAgICAgIHN0b3BfZmxhZy5zZXQoKQorCisgICAgdHJ5OgorICAgICAgICBicm93
c2VyID0gZXhlY3V0b3JfYnJvd3Nlcl9jbHMoKipleGVjdXRvcl9icm93c2VyX2t3YXJncykKKyAg
ICAgICAgZXhlY3V0b3IgPSBleGVjdXRvcl9jbHMoYnJvd3NlciwgKipleGVjdXRvcl9rd2FyZ3Mp
CisgICAgICAgIHdpdGggVGVzdFJ1bm5lcihydW5uZXJfY29tbWFuZF9xdWV1ZSwgcnVubmVyX3Jl
c3VsdF9xdWV1ZSwgZXhlY3V0b3IpIGFzIHJ1bm5lcjoKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBydW5uZXIucnVuKCkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVy
cnVwdDoKKyAgICAgICAgICAgICAgICBzdG9wX2ZsYWcuc2V0KCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBoYW5kbGVfZXJyb3IoZSkKKyAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGhhbmRsZV9lcnJvcihlKQorICAgIGZpbmFs
bHk6CisgICAgICAgIHJ1bm5lcl9jb21tYW5kX3F1ZXVlID0gTm9uZQorICAgICAgICBydW5uZXJf
cmVzdWx0X3F1ZXVlID0gTm9uZQorCisKK21hbmFnZXJfY291bnQgPSAwCisKKworZGVmIG5leHRf
bWFuYWdlcl9udW1iZXIoKToKKyAgICBnbG9iYWwgbWFuYWdlcl9jb3VudAorICAgIGxvY2FsID0g
bWFuYWdlcl9jb3VudCA9IG1hbmFnZXJfY291bnQgKyAxCisgICAgcmV0dXJuIGxvY2FsCisKKwor
Y2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBicm93c2VyLCBjb21tYW5kX3F1ZXVlLCBub190aW1lb3V0PUZhbHNlKToKKyAgICAgICAg
c2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5icm93c2VyID0gYnJvd3NlcgorICAg
ICAgICBzZWxmLm5vX3RpbWVvdXQgPSBub190aW1lb3V0CisgICAgICAgIHNlbGYuYnJvd3Nlcl9z
ZXR0aW5ncyA9IE5vbmUKKyAgICAgICAgc2VsZi5sYXN0X3Rlc3QgPSBOb25lCisKKyAgICAgICAg
c2VsZi5zdGFydGVkID0gRmFsc2UKKworICAgICAgICBzZWxmLmluaXRfdGltZXIgPSBOb25lCisg
ICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSA9IGNvbW1hbmRfcXVldWUKKworICAgIGRlZiB1cGRh
dGVfc2V0dGluZ3Moc2VsZiwgdGVzdCk6CisgICAgICAgIGJyb3dzZXJfc2V0dGluZ3MgPSBzZWxm
LmJyb3dzZXIuc2V0dGluZ3ModGVzdCkKKyAgICAgICAgcmVzdGFydF9yZXF1aXJlZCA9ICgoc2Vs
Zi5icm93c2VyX3NldHRpbmdzIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmJyb3dzZXJfc2V0dGluZ3MgIT0gYnJvd3Nlcl9zZXR0aW5ncykgb3IKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5sYXN0X3Rlc3QgIT0gdGVzdCBhbmQgdGVz
dC5leHBlY3RlZCgpID09ICJDUkFTSCIpKQorICAgICAgICBzZWxmLmJyb3dzZXJfc2V0dGluZ3Mg
PSBicm93c2VyX3NldHRpbmdzCisgICAgICAgIHNlbGYubGFzdF90ZXN0ID0gdGVzdAorICAgICAg
ICByZXR1cm4gcmVzdGFydF9yZXF1aXJlZAorCisgICAgZGVmIGluaXQoc2VsZik6CisgICAgICAg
ICIiIkxhdW5jaCB0aGUgYnJvd3NlciB0aGF0IGlzIGJlaW5nIHRlc3RlZCwKKyAgICAgICAgYW5k
IHRoZSBUZXN0UnVubmVyIHByb2Nlc3MgdGhhdCB3aWxsIHJ1biB0aGUgdGVzdHMuIiIiCisgICAg
ICAgICMgSXQgc2VlbXMgdGhhdCB0aGlzIGxvY2sgaXMgaGVscGZ1bCB0byBwcmV2ZW50IHNvbWUg
cmFjZSB0aGF0IG90aGVyd2lzZQorICAgICAgICAjIHNvbWV0aW1lcyBzdG9wcyB0aGUgc3Bhd25l
ZCBwcm9jZXNzZXMgaW5pdGlhbGlzaW5nIGNvcnJlY3RseSwgYW5kCisgICAgICAgICMgbGVhdmVz
IHRoaXMgdGhyZWFkIGh1bmcKKyAgICAgICAgaWYgc2VsZi5pbml0X3RpbWVyIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVyLmNhbmNlbCgpCisKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIkluaXQgY2FsbGVkLCBzdGFydGluZyBicm93c2VyIGFuZCBydW5uZXIiKQor
CisgICAgICAgIGlmIG5vdCBzZWxmLm5vX3RpbWVvdXQ6CisgICAgICAgICAgICBzZWxmLmluaXRf
dGltZXIgPSB0aHJlYWRpbmcuVGltZXIoc2VsZi5icm93c2VyLmluaXRfdGltZW91dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluaXRfdGltZW91
dCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgc2VsZi5pbml0X3RpbWVyIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIHNlbGYuaW5pdF90aW1lci5zdGFydCgpCisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgYnJvd3NlciB3aXRoIHNldHRpbmdzICVyIiAl
IHNlbGYuYnJvd3Nlcl9zZXR0aW5ncykKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5zdGFydCgq
KnNlbGYuYnJvd3Nlcl9zZXR0aW5ncykKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlcl9waWQgPSBz
ZWxmLmJyb3dzZXIucGlkKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWx1cmUgZHVyaW5nIGluaXQgJXMiICUgdHJhY2ViYWNr
LmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIGlmIHNlbGYuaW5pdF90aW1lciBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICBzZWxmLmluaXRfdGltZXIuY2FuY2VsKCkKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBz
dWNjZWVkZWQgPSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3VjY2VlZGVkID0g
VHJ1ZQorICAgICAgICAgICAgc2VsZi5zdGFydGVkID0gVHJ1ZQorCisgICAgICAgIHJldHVybiBz
dWNjZWVkZWQKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY29tbWFuZCwgKmFyZ3MpOgor
ICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkKKworICAgIGRl
ZiBpbml0X3RpbWVvdXQoc2VsZik6CisgICAgICAgICMgVGhpcyBpcyBjYWxsZWQgZnJvbSBhIHNl
cGVyYXRlIHRocmVhZCwgc28gd2Ugc2VuZCBhIG1lc3NhZ2UgdG8gdGhlCisgICAgICAgICMgbWFp
biBsb29wIHNvIHdlIGdldCBiYWNrIG9udG8gdGhlIG1hbmFnZXIgdGhyZWFkCisgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJpbml0X2ZhaWxlZCBjYWxsZWQgZnJvbSB0aW1lciIpCisgICAgICAg
IHNlbGYuc2VuZF9tZXNzYWdlKCJpbml0X2ZhaWxlZCIpCisKKyAgICBkZWYgYWZ0ZXJfaW5pdChz
ZWxmKToKKyAgICAgICAgIiIiQ2FsbGJhY2sgd2hlbiB3ZSBoYXZlIHN0YXJ0ZWQgdGhlIGJyb3dz
ZXIsIHN0YXJ0ZWQgdGhlIHJlbW90ZQorICAgICAgICBjb250cm9sIGNvbm5lY3Rpb24sIGFuZCB3
ZSBhcmUgcmVhZHkgdG8gc3RhcnQgdGVzdGluZy4iIiIKKyAgICAgICAgaWYgc2VsZi5pbml0X3Rp
bWVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVyLmNhbmNlbCgpCisK
KyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuYnJvd3Nlci5z
dG9wKGZvcmNlPWZvcmNlKQorICAgICAgICBzZWxmLnN0YXJ0ZWQgPSBGYWxzZQorCisgICAgZGVm
IGNsZWFudXAoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaW5pdF90aW1lciBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIHNlbGYuaW5pdF90aW1lci5jYW5jZWwoKQorCisgICAgZGVmIGNoZWNrX2Zv
cl9jcmFzaGVzKHNlbGYpOgorICAgICAgICBzZWxmLmJyb3dzZXIuY2hlY2tfZm9yX2NyYXNoZXMo
KQorCisgICAgZGVmIGxvZ19jcmFzaChzZWxmLCB0ZXN0X2lkKToKKyAgICAgICAgc2VsZi5icm93
c2VyLmxvZ19jcmFzaChwcm9jZXNzPXNlbGYuYnJvd3Nlcl9waWQsIHRlc3Q9dGVzdF9pZCkKKwor
ICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5pc19h
bGl2ZSgpCisKKworY2xhc3MgX1J1bm5lck1hbmFnZXJTdGF0ZShvYmplY3QpOgorICAgIGJlZm9y
ZV9pbml0ID0gbmFtZWR0dXBsZSgiYmVmb3JlX2luaXQiLCBbXSkKKyAgICBpbml0aWFsaXppbmcg
PSBuYW1lZHR1cGxlKCJpbml0aWFsaXppbmdfYnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbInRlc3QiLCAidGVzdF9ncm91cCIsICJncm91cF9tZXRhZGF0YSIsICJmYWls
dXJlX2NvdW50Il0pCisgICAgcnVubmluZyA9IG5hbWVkdHVwbGUoInJ1bm5pbmciLCBbInRlc3Qi
LCAidGVzdF9ncm91cCIsICJncm91cF9tZXRhZGF0YSJdKQorICAgIHJlc3RhcnRpbmcgPSBuYW1l
ZHR1cGxlKCJyZXN0YXJ0aW5nIiwgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRh
dGEiXSkKKyAgICBlcnJvciA9IG5hbWVkdHVwbGUoImVycm9yIiwgW10pCisgICAgc3RvcCA9IG5h
bWVkdHVwbGUoInN0b3AiLCBbXSkKKworCitSdW5uZXJNYW5hZ2VyU3RhdGUgPSBfUnVubmVyTWFu
YWdlclN0YXRlKCkKKworCitjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFk
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3VpdGVfbmFtZSwgdGVzdF9xdWV1ZSwgdGVzdF9z
b3VyY2VfY2xzLCBicm93c2VyX2NscywgYnJvd3Nlcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAg
IGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jfa3dhcmdzLCBzdG9wX2ZsYWcsIHJlcnVuPTEsIHBhdXNl
X2FmdGVyX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgIHBhdXNlX29uX3VuZXhwZWN0ZWQ9
RmFsc2UsIHJlc3RhcnRfb25fdW5leHBlY3RlZD1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUpOgorICAg
ICAgICAiIiJUaHJlYWQgdGhhdCBvd25zIGEgc2luZ2xlIFRlc3RSdW5uZXIgcHJvY2VzcyBhbmQg
YW55IHByb2Nlc3NlcyByZXF1aXJlZAorICAgICAgICBieSB0aGUgVGVzdFJ1bm5lciAoZS5nLiB0
aGUgRmlyZWZveCBiaW5hcnkpLgorCisgICAgICAgIFRlc3RSdW5uZXJNYW5hZ2VycyBhcmUgcmVz
cG9uc2libGUgZm9yIGxhdW5jaGluZyB0aGUgYnJvd3NlciBwcm9jZXNzIGFuZCB0aGUKKyAgICAg
ICAgcnVubmVyIHByb2Nlc3MsIGFuZCBmb3IgbG9nZ2luZyB0aGUgdGVzdCBwcm9ncmVzcy4gVGhl
IGFjdHVhbCB0ZXN0IHJ1bm5pbmcKKyAgICAgICAgaXMgZG9uZSBieSB0aGUgVGVzdFJ1bm5lci4g
SW4gcGFydGljdWxhciB0aGV5OgorCisgICAgICAgICogU3RhcnQgdGhlIGJpbmFyeSBvZiB0aGUg
cHJvZ3JhbSB1bmRlciB0ZXN0CisgICAgICAgICogU3RhcnQgdGhlIFRlc3RSdW5uZXIKKyAgICAg
ICAgKiBUZWxsIHRoZSBUZXN0UnVubmVyIHRvIHN0YXJ0IGEgdGVzdCwgaWYgYW55CisgICAgICAg
ICogTG9nIHRoYXQgdGhlIHRlc3Qgc3RhcnRlZAorICAgICAgICAqIExvZyB0aGUgdGVzdCByZXN1
bHRzCisgICAgICAgICogVGFrZSBhbnkgcmVtZWRpYWwgYWN0aW9uIHJlcXVpcmVkIGUuZy4gcmVz
dGFydCBjcmFzaGVkIG9yIGh1bmcKKyAgICAgICAgICBwcm9jZXNzZXMKKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuc3VpdGVfbmFtZSA9IHN1aXRlX25hbWUKKworICAgICAgICBzZWxmLnRlc3Rf
c291cmNlID0gdGVzdF9zb3VyY2VfY2xzKHRlc3RfcXVldWUpCisKKyAgICAgICAgc2VsZi5icm93
c2VyX2NscyA9IGJyb3dzZXJfY2xzCisgICAgICAgIHNlbGYuYnJvd3Nlcl9rd2FyZ3MgPSBicm93
c2VyX2t3YXJncworCisgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xzID0gZXhlY3V0b3JfY2xzCisg
ICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzID0gZXhlY3V0b3Jfa3dhcmdzCisKKyAgICAgICAg
IyBGbGFncyB1c2VkIHRvIHNodXQgZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBzaWdpbnQK
KyAgICAgICAgc2VsZi5wYXJlbnRfc3RvcF9mbGFnID0gc3RvcF9mbGFnCisgICAgICAgIHNlbGYu
Y2hpbGRfc3RvcF9mbGFnID0gbXVsdGlwcm9jZXNzaW5nLkV2ZW50KCkKKworICAgICAgICBzZWxm
LnJlcnVuID0gcmVydW4KKyAgICAgICAgc2VsZi5ydW5fY291bnQgPSAwCisgICAgICAgIHNlbGYu
cGF1c2VfYWZ0ZXJfdGVzdCA9IHBhdXNlX2FmdGVyX3Rlc3QKKyAgICAgICAgc2VsZi5wYXVzZV9v
bl91bmV4cGVjdGVkID0gcGF1c2Vfb25fdW5leHBlY3RlZAorICAgICAgICBzZWxmLnJlc3RhcnRf
b25fdW5leHBlY3RlZCA9IHJlc3RhcnRfb25fdW5leHBlY3RlZAorICAgICAgICBzZWxmLmRlYnVn
X2luZm8gPSBkZWJ1Z19pbmZvCisKKyAgICAgICAgc2VsZi5tYW5hZ2VyX251bWJlciA9IG5leHRf
bWFuYWdlcl9udW1iZXIoKQorCisgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSA9IFF1ZXVlKCkK
KyAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBRdWV1ZSgpCisKKyAgICAgICAgc2VsZi50ZXN0
X3J1bm5lcl9wcm9jID0gTm9uZQorCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18o
c2VsZiwgbmFtZT0iVGhyZWFkLVRlc3RydW5uZXJNYW5hZ2VyLSVpIiAlIHNlbGYubWFuYWdlcl9u
dW1iZXIpCisgICAgICAgICMgVGhpcyBpcyBzdGFydGVkIGluIHRoZSBhY3R1YWwgbmV3IHRocmVh
ZAorICAgICAgICBzZWxmLmxvZ2dlciA9IE5vbmUKKworICAgICAgICBzZWxmLnRlc3RfY291bnQg
PSAwCisgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCA9IDAKKworICAgICAgICAjIFRoaXMg
bWF5IG5vdCByZWFsbHkgYmUgd2hhdCB3ZSB3YW50CisgICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1
ZQorCisgICAgICAgIHNlbGYubWF4X3Jlc3RhcnRzID0gNQorCisgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IE5vbmUKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgICIiIk1haW4gbG9vcCBmb3Ig
dGhlIFRlc3RNYW5hZ2VyLgorCisgICAgICAgIFRlc3RNYW5hZ2VycyBnZW5lcmFsbHkgcmVjZWl2
ZSBjb21tYW5kcyBmcm9tIHRoZWlyCisgICAgICAgIFRlc3RSdW5uZXIgdXBkYXRpbmcgdGhlbSBv
biB0aGUgc3RhdHVzIG9mIGEgdGVzdC4gVGhleQorICAgICAgICBtYXkgYWxzbyBoYXZlIGEgc3Rv
cCBmbGFnIHNldCBieSB0aGUgbWFpbiB0aHJlYWQgaW5kaWNhdGluZworICAgICAgICB0aGF0IHRo
ZSBtYW5hZ2VyIHNob3VsZCBzaHV0IGRvd24gdGhlIG5leHQgdGltZSB0aGUgZXZlbnQgbG9vcAor
ICAgICAgICBzcGlucy4iIiIKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0
cnVjdHVyZWRMb2dnZXIoc2VsZi5zdWl0ZV9uYW1lKQorICAgICAgICB3aXRoIHNlbGYuYnJvd3Nl
cl9jbHMoc2VsZi5sb2dnZXIsICoqc2VsZi5icm93c2VyX2t3YXJncykgYXMgYnJvd3NlcjoKKyAg
ICAgICAgICAgIHNlbGYuYnJvd3NlciA9IEJyb3dzZXJNYW5hZ2VyKHNlbGYubG9nZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vX3RpbWVvdXQ9c2VsZi5k
ZWJ1Z19pbmZvIGlzIG5vdCBOb25lKQorICAgICAgICAgICAgZGlzcGF0Y2ggPSB7CisgICAgICAg
ICAgICAgICAgUnVubmVyTWFuYWdlclN0YXRlLmJlZm9yZV9pbml0OiBzZWxmLnN0YXJ0X2luaXQs
CisgICAgICAgICAgICAgICAgUnVubmVyTWFuYWdlclN0YXRlLmluaXRpYWxpemluZzogc2VsZi5p
bml0LAorICAgICAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nOiBzZWxmLnJ1
bl90ZXN0LAorICAgICAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5yZXN0YXJ0aW5nOiBz
ZWxmLnJlc3RhcnRfcnVubmVyCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlbGYuc3Rh
dGUgPSBSdW5uZXJNYW5hZ2VyU3RhdGUuYmVmb3JlX2luaXQoKQorICAgICAgICAgICAgZW5kX3N0
YXRlcyA9IChSdW5uZXJNYW5hZ2VyU3RhdGUuc3RvcCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgUnVubmVyTWFuYWdlclN0YXRlLmVycm9yKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgd2hpbGUgbm90IGlzaW5zdGFuY2Uoc2VsZi5zdGF0ZSwgZW5kX3N0YXRlcyk6Cisg
ICAgICAgICAgICAgICAgICAgIGYgPSBkaXNwYXRjaC5nZXQoc2VsZi5zdGF0ZS5fX2NsYXNzX18p
CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiRGlzcGF0Y2ggJXMiICUgZi5fX25hbWVfXykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIHNlbGYuc2hvdWxkX3N0b3AoKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19zdGF0ZSA9IGYoKQor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV3X3N0YXRlIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh
dGUgPSBuZXdfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJuZXcgc3RhdGU6ICVzIiAlIHNlbGYuc3RhdGUuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBlbmRfc3RhdGVzKToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGYgPSBkaXNwYXRjaC5nZXQoc2VsZi5zdGF0ZS5fX2NsYXNzX18pCisKKyAgICAgICAgICAg
ICAgICAgICAgbmV3X3N0YXRlID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB3aGlsZSBuZXdf
c3RhdGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19zdGF0ZSA9IHNlbGYu
d2FpdF9ldmVudCgpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnNob3VsZF9zdG9w
KCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuc3RhdGUgPSBuZXdfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIm5ldyBzdGF0ZTogJXMiICUgc2VsZi5zdGF0ZS5fX2NsYXNzX18uX19uYW1lX18p
CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuZXJyb3IodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIlRlc3RSdW5uZXJNYW5hZ2VyIG1haW4gbG9vcCB0ZXJtaW5hdGluZywgc3RhcnRpbmcg
Y2xlYW51cCIpCisgICAgICAgICAgICAgICAgY2xlYW4gPSBpc2luc3RhbmNlKHNlbGYuc3RhdGUs
IFJ1bm5lck1hbmFnZXJTdGF0ZS5zdG9wKQorICAgICAgICAgICAgICAgIHNlbGYuc3RvcF9ydW5u
ZXIoZm9yY2U9bm90IGNsZWFuKQorICAgICAgICAgICAgICAgIHNlbGYudGVhcmRvd24oKQorICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdFJ1bm5lck1hbmFnZXIgbWFpbiBsb29wIHRlcm1p
bmF0ZWQiKQorCisgICAgZGVmIHdhaXRfZXZlbnQoc2VsZik6CisgICAgICAgIGRpc3BhdGNoID0g
eworICAgICAgICAgICAgUnVubmVyTWFuYWdlclN0YXRlLmJlZm9yZV9pbml0OiB7fSwKKyAgICAg
ICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmc6CisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgImluaXRfc3VjY2VlZGVkIjogc2VsZi5pbml0X3N1Y2NlZWRlZCwKKyAg
ICAgICAgICAgICAgICAiaW5pdF9mYWlsZWQiOiBzZWxmLmluaXRfZmFpbGVkLAorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nOgorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJ0ZXN0X2VuZGVkIjogc2VsZi50ZXN0X2VuZGVkLAorICAg
ICAgICAgICAgICAgICJ3YWl0X2ZpbmlzaGVkIjogc2VsZi53YWl0X2ZpbmlzaGVkLAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5yZXN0YXJ0aW5nOiB7fSwK
KyAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5lcnJvcjoge30sCisgICAgICAgICAgICBS
dW5uZXJNYW5hZ2VyU3RhdGUuc3RvcDoge30sCisgICAgICAgICAgICBOb25lOiB7CisgICAgICAg
ICAgICAgICAgInJ1bm5lcl90ZWFyZG93biI6IHNlbGYucnVubmVyX3RlYXJkb3duLAorICAgICAg
ICAgICAgICAgICJsb2ciOiBzZWxmLmxvZywKKyAgICAgICAgICAgICAgICAiZXJyb3IiOiBzZWxm
LmVycm9yCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgY29tbWFuZCwgZGF0YSA9IHNlbGYuY29tbWFuZF9xdWV1ZS5nZXQoVHJ1ZSwgMSkKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgY29tbWFuZDogJXIiICUgY29tbWFuZCkKKyAg
ICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiR290
IElPRXJyb3IgZnJvbSBwb2xsIikKKyAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3Rh
dGUucmVzdGFydGluZygwKQorICAgICAgICBleGNlcHQgRW1wdHk6CisgICAgICAgICAgICBpZiAo
c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmUgYW5kCisgICAg
ICAgICAgICAgICAgc2VsZi5icm93c2VyLnN0YXJ0ZWQgYW5kIG5vdCBzZWxmLmJyb3dzZXIuaXNf
YWxpdmUoKSk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkRlYnVnZ2VyIGV4
aXRlZCIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5zdG9wKCkK
KworICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVubmVyTWFuYWdlclN0
YXRlLnJ1bm5pbmcpIGFuZAorICAgICAgICAgICAgICAgIG5vdCBzZWxmLnRlc3RfcnVubmVyX3By
b2MuaXNfYWxpdmUoKSk6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuY29tbWFuZF9xdWV1
ZS5lbXB0eSgpOgorICAgICAgICAgICAgICAgICAgICAjIFdlIGdvdCBhIG5ldyBtZXNzYWdlIHNv
IHByb2Nlc3MgdGhhdAorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAgICAg
ICAgICMgSWYgd2UgZ290IHRvIGhlcmUgdGhlIHJ1bm5lciBwcmVzdW1hYmx5IHNodXQgZG93bgor
ICAgICAgICAgICAgICAgICMgdW5leHBlY3RlZGx5CisgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuaW5mbygiVGVzdCBydW5uZXIgcHJvY2VzcyBzaHV0IGRvd24iKQorCisgICAgICAgICAgICAg
ICAgaWYgc2VsZi5zdGF0ZS50ZXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAj
IFRoaXMgY291bGQgaGFwcGVuIGlmIHRoZSB0ZXN0IHJ1bm5lciBjcmFzaGVkIGZvciBzb21lIG90
aGVyCisgICAgICAgICAgICAgICAgICAgICMgcmVhc29uCisgICAgICAgICAgICAgICAgICAgICMg
TmVlZCB0byBjb25zaWRlciB0aGUgdW5saWtlbHkgY2FzZSB3aGVyZSBvbmUgdGVzdCBjYXVzZXMg
dGhlCisgICAgICAgICAgICAgICAgICAgICMgcnVubmVyIHByb2Nlc3MgdG8gcmVwZWF0ZWRseSBk
aWUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuY3JpdGljYWwoIkxhc3QgdGVzdCBk
aWQgbm90IGNvbXBsZXRlIikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFn
ZXJTdGF0ZS5lcnJvcigpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiTW9y
ZSB0ZXN0cyBmb3VuZCwgYnV0IHJ1bm5lciBwcm9jZXNzIGRpZWQsIHJlc3RhcnRpbmciKQorICAg
ICAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUucmVzdGFydGluZygwKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgZiA9IChkaXNwYXRjaC5nZXQoc2VsZi5zdGF0ZS5fX2Ns
YXNzX18sIHt9KS5nZXQoY29tbWFuZCkgb3IKKyAgICAgICAgICAgICAgICAgZGlzcGF0Y2guZ2V0
KE5vbmUsIHt9KS5nZXQoY29tbWFuZCkpCisgICAgICAgICAgICBpZiBub3QgZjoKKyAgICAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJHb3QgY29tbWFuZCAlcyBpbiBzdGF0ZSAlcyIg
JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmQsIHNlbGYuc3Rh
dGUuX19jbGFzc19fLl9fbmFtZV9fKSkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
ICAgIHJldHVybiBmKCpkYXRhKQorCisgICAgZGVmIHNob3VsZF9zdG9wKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5jaGlsZF9zdG9wX2ZsYWcuaXNfc2V0KCkgb3Igc2VsZi5wYXJlbnRfc3Rv
cF9mbGFnLmlzX3NldCgpCisKKyAgICBkZWYgc3RhcnRfaW5pdChzZWxmKToKKyAgICAgICAgdGVz
dCwgdGVzdF9ncm91cCwgZ3JvdXBfbWV0YWRhdGEgPSBzZWxmLmdldF9uZXh0X3Rlc3QoKQorICAg
ICAgICBpZiB0ZXN0IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0
YXRlLnN0b3AoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFn
ZXJTdGF0ZS5pbml0aWFsaXppbmcodGVzdCwgdGVzdF9ncm91cCwgZ3JvdXBfbWV0YWRhdGEsIDAp
CisKKyAgICBkZWYgaW5pdChzZWxmKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZi5z
dGF0ZSwgUnVubmVyTWFuYWdlclN0YXRlLmluaXRpYWxpemluZykKKyAgICAgICAgaWYgc2VsZi5z
dGF0ZS5mYWlsdXJlX2NvdW50ID4gc2VsZi5tYXhfcmVzdGFydHM6CisgICAgICAgICAgICBzZWxm
LmxvZ2dlci5lcnJvcigiTWF4IHJlc3RhcnRzIGV4Y2VlZGVkIikKKyAgICAgICAgICAgIHJldHVy
biBSdW5uZXJNYW5hZ2VyU3RhdGUuZXJyb3IoKQorCisgICAgICAgIHNlbGYuYnJvd3Nlci51cGRh
dGVfc2V0dGluZ3Moc2VsZi5zdGF0ZS50ZXN0KQorCisgICAgICAgIHJlc3VsdCA9IHNlbGYuYnJv
d3Nlci5pbml0KCkKKyAgICAgICAgaWYgcmVzdWx0IGlzIFN0b3A6CisgICAgICAgICAgICByZXR1
cm4gUnVubmVyTWFuYWdlclN0YXRlLmVycm9yKCkKKyAgICAgICAgZWxpZiBub3QgcmVzdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmcoc2VsZi5z
dGF0ZS50ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5zdGF0ZS50ZXN0X2dyb3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5ncm91cF9tZXRhZGF0YSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUu
ZmFpbHVyZV9jb3VudCArIDEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmV4ZWN1
dG9yX2t3YXJnc1siZ3JvdXBfbWV0YWRhdGEiXSA9IHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEK
KyAgICAgICAgICAgIHNlbGYuc3RhcnRfdGVzdF9ydW5uZXIoKQorCisgICAgZGVmIHN0YXJ0X3Rl
c3RfcnVubmVyKHNlbGYpOgorICAgICAgICAjIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGJlIGNhcmVm
dWwgdG8gc3RhcnQgdGhlIGJyb3dzZXIgYmVmb3JlIHRoZQorICAgICAgICAjIHRlc3QgcnVubmVy
IHRvIGVuc3VyZSB0aGF0IGFueSBzdGF0ZSBzZXQgd2hlbiB0aGUgYnJvd3NlciBpcyBzdGFydGVk
CisgICAgICAgICMgY2FuIGJlIHBhc3NlZCBpbiB0byB0aGUgdGVzdCBydW5uZXIuCisgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFs
aXppbmcpCisgICAgICAgIGFzc2VydCBzZWxmLmNvbW1hbmRfcXVldWUgaXMgbm90IE5vbmUKKyAg
ICAgICAgYXNzZXJ0IHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lCisgICAgICAgIHNlbGYu
bG9nZ2VyLmluZm8oIlN0YXJ0aW5nIHJ1bm5lciIpCisgICAgICAgIGV4ZWN1dG9yX2Jyb3dzZXJf
Y2xzLCBleGVjdXRvcl9icm93c2VyX2t3YXJncyA9IHNlbGYuYnJvd3Nlci5icm93c2VyLmV4ZWN1
dG9yX2Jyb3dzZXIoKQorCisgICAgICAgIGFyZ3MgPSAoc2VsZi5yZW1vdGVfcXVldWUsCisgICAg
ICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlLAorICAgICAgICAgICAgICAgIHNlbGYuZXhl
Y3V0b3JfY2xzLAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzLAorICAgICAg
ICAgICAgICAgIGV4ZWN1dG9yX2Jyb3dzZXJfY2xzLAorICAgICAgICAgICAgICAgIGV4ZWN1dG9y
X2Jyb3dzZXJfa3dhcmdzLAorICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRfc3RvcF9mbGFnKQor
ICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBQcm9jZXNzKHRhcmdldD1zdGFydF9ydW5u
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRocmVhZC1UZXN0
UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisgICAgICAgIHNlbGYudGVzdF9ydW5u
ZXJfcHJvYy5zdGFydCgpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0IHJ1bm5lciBz
dGFydGVkIikKKyAgICAgICAgIyBOb3cgd2Ugd2FpdCBmb3IgZWl0aGVyIGFuIGluaXRfc3VjY2Vl
ZGVkIGV2ZW50IG9yIGFuIGluaXRfZmFpbGVkIGV2ZW50CisKKyAgICBkZWYgaW5pdF9zdWNjZWVk
ZWQoc2VsZik6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1h
bmFnZXJTdGF0ZS5pbml0aWFsaXppbmcpCisgICAgICAgIHNlbGYuYnJvd3Nlci5hZnRlcl9pbml0
KCkKKyAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nKHNlbGYuc3RhdGUu
dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rh
dGUudGVzdF9ncm91cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEpCisKKyAgICBkZWYgaW5pdF9mYWlsZWQoc2VsZik6
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0
ZS5pbml0aWFsaXppbmcpCisgICAgICAgIHNlbGYuYnJvd3Nlci5hZnRlcl9pbml0KCkKKyAgICAg
ICAgc2VsZi5zdG9wX3J1bm5lcihmb3JjZT1UcnVlKQorICAgICAgICByZXR1cm4gUnVubmVyTWFu
YWdlclN0YXRlLmluaXRpYWxpemluZyhzZWxmLnN0YXRlLnRlc3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUudGVzdF9ncm91cCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5n
cm91cF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5zdGF0ZS5mYWlsdXJlX2NvdW50ICsgMSkKKworICAgIGRlZiBnZXRfbmV4dF90
ZXN0KHNlbGYsIHRlc3RfZ3JvdXA9Tm9uZSk6CisgICAgICAgIHRlc3QgPSBOb25lCisgICAgICAg
IHdoaWxlIHRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgIHdoaWxlIHRlc3RfZ3JvdXAgaXMgTm9u
ZSBvciBsZW4odGVzdF9ncm91cCkgPT0gMDoKKyAgICAgICAgICAgICAgICB0ZXN0X2dyb3VwLCBn
cm91cF9tZXRhZGF0YSA9IHNlbGYudGVzdF9zb3VyY2UuZ3JvdXAoKQorICAgICAgICAgICAgICAg
IGlmIHRlc3RfZ3JvdXAgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiTm8gbW9yZSB0ZXN0cyIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBO
b25lLCBOb25lCisgICAgICAgICAgICB0ZXN0ID0gdGVzdF9ncm91cC5wb3BsZWZ0KCkKKyAgICAg
ICAgc2VsZi5ydW5fY291bnQgPSAwCisgICAgICAgIHJldHVybiB0ZXN0LCB0ZXN0X2dyb3VwLCBn
cm91cF9tZXRhZGF0YQorCisgICAgZGVmIHJ1bl90ZXN0KHNlbGYpOgorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUucnVubmluZykKKyAgICAg
ICAgYXNzZXJ0IHNlbGYuc3RhdGUudGVzdCBpcyBub3QgTm9uZQorCisgICAgICAgIGlmIHNlbGYu
YnJvd3Nlci51cGRhdGVfc2V0dGluZ3Moc2VsZi5zdGF0ZS50ZXN0KToKKyAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmluZm8oIlJlc3RhcnRpbmcgYnJvd3NlciBmb3IgbmV3IHRlc3QgZW52aXJvbm1l
bnQiKQorICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5yZXN0YXJ0aW5nKHNl
bGYuc3RhdGUudGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnN0YXRlLnRlc3RfZ3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS5ncm91cF9tZXRhZGF0YSkKKworICAg
ICAgICBzZWxmLmxvZ2dlci50ZXN0X3N0YXJ0KHNlbGYuc3RhdGUudGVzdC5pZCkKKyAgICAgICAg
aWYgc2VsZi5yZXJ1biA+IDE6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJSdW4gJWQv
JWQiICUgKHNlbGYucnVuX2NvdW50LCBzZWxmLnJlcnVuKSkKKyAgICAgICAgc2VsZi5ydW5fY291
bnQgKz0gMQorICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgicnVuX3Rlc3QiLCBzZWxmLnN0YXRl
LnRlc3QpCisKKyAgICBkZWYgdGVzdF9lbmRlZChzZWxmLCB0ZXN0LCByZXN1bHRzKToKKyAgICAg
ICAgIiIiSGFuZGxlIHRoZSBlbmQgb2YgYSB0ZXN0LgorCisgICAgICAgIE91dHB1dCB0aGUgcmVz
dWx0IG9mIGVhY2ggc3VidGVzdCwgYW5kIHRoZSByZXN1bHQgb2YgdGhlIG92ZXJhbGwKKyAgICAg
ICAgaGFybmVzcyB0byB0aGUgbG9ncy4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nKQorICAgICAgICBh
c3NlcnQgdGVzdCA9PSBzZWxmLnN0YXRlLnRlc3QKKyAgICAgICAgIyBXcml0ZSB0aGUgcmVzdWx0
IG9mIGVhY2ggc3VidGVzdAorICAgICAgICBmaWxlX3Jlc3VsdCwgdGVzdF9yZXN1bHRzID0gcmVz
dWx0cworICAgICAgICBzdWJ0ZXN0X3VuZXhwZWN0ZWQgPSBGYWxzZQorICAgICAgICBmb3IgcmVz
dWx0IGluIHRlc3RfcmVzdWx0czoKKyAgICAgICAgICAgIGlmIHRlc3QuZGlzYWJsZWQocmVzdWx0
Lm5hbWUpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBleHBlY3RlZCA9
IHRlc3QuZXhwZWN0ZWQocmVzdWx0Lm5hbWUpCisgICAgICAgICAgICBpc191bmV4cGVjdGVkID0g
ZXhwZWN0ZWQgIT0gcmVzdWx0LnN0YXR1cworCisgICAgICAgICAgICBpZiBpc191bmV4cGVjdGVk
OgorICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAxCisgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQg
JWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQorICAgICAgICAgICAgICAgIHN1YnRlc3RfdW5l
eHBlY3RlZCA9IFRydWUKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLnRlc3Rfc3RhdHVzKHRlc3Qu
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQubmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0dXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXJlc3VsdC5tZXNzYWdlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ9ZXhwZWN0ZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFjaz1yZXN1bHQuc3RhY2spCisKKyAg
ICAgICAgIyBUT0RPOiBjb25zaWRlciBjaGFuZ2luZyByZXN1bHQgaWYgdGhlcmUgaXMgYSBjcmFz
aCBkdW1wIGZpbGUKKworICAgICAgICAjIFdyaXRlIHRoZSByZXN1bHQgb2YgdGhlIHRlc3QgaGFy
bmVzcworICAgICAgICBleHBlY3RlZCA9IHRlc3QuZXhwZWN0ZWQoKQorICAgICAgICBzdGF0dXMg
PSBmaWxlX3Jlc3VsdC5zdGF0dXMgaWYgZmlsZV9yZXN1bHQuc3RhdHVzICE9ICJFWFRFUk5BTC1U
SU1FT1VUIiBlbHNlICJUSU1FT1VUIgorCisgICAgICAgIGlmIGZpbGVfcmVzdWx0LnN0YXR1cyBp
biAoIlRJTUVPVVQiLCAiRVhURVJOQUwtVElNRU9VVCIpOgorICAgICAgICAgICAgaWYgc2VsZi5i
cm93c2VyLmNoZWNrX2Zvcl9jcmFzaGVzKCk6CisgICAgICAgICAgICAgICAgc3RhdHVzID0gIkNS
QVNIIgorCisgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCisgICAgICAgIGlzX3VuZXhwZWN0
ZWQgPSBleHBlY3RlZCAhPSBzdGF0dXMKKyAgICAgICAgaWYgaXNfdW5leHBlY3RlZDoKKyAgICAg
ICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAxCisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiVW5leHBlY3RlZCBjb3VudCBpbiB0aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhw
ZWN0ZWRfY291bnQpCisgICAgICAgIGlmIHN0YXR1cyA9PSAiQ1JBU0giOgorICAgICAgICAgICAg
c2VsZi5icm93c2VyLmxvZ19jcmFzaCh0ZXN0LmlkKQorCisgICAgICAgIHNlbGYubG9nZ2VyLnRl
c3RfZW5kKHRlc3QuaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1maWxlX3Jlc3VsdC5tZXNzYWdlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZD1leHBlY3RlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXh0cmE9ZmlsZV9yZXN1bHQuZXh0cmEpCisKKyAgICAgICAg
cmVzdGFydF9iZWZvcmVfbmV4dCA9ICh0ZXN0LnJlc3RhcnRfYWZ0ZXIgb3IKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaWxlX3Jlc3VsdC5zdGF0dXMgaW4gKCJDUkFTSCIsICJFWFRF
Uk5BTC1USU1FT1VUIikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN1YnRl
c3RfdW5leHBlY3RlZCBvciBpc191bmV4cGVjdGVkKSBhbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQpKQorCisgICAgICAgIGlmIChz
ZWxmLnBhdXNlX2FmdGVyX3Rlc3Qgb3IKKyAgICAgICAgICAgIChzZWxmLnBhdXNlX29uX3VuZXhw
ZWN0ZWQgYW5kIChzdWJ0ZXN0X3VuZXhwZWN0ZWQgb3IgaXNfdW5leHBlY3RlZCkpKToKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlBhdXNpbmcgdW50aWwgdGhlIGJyb3dzZXIgZXhpdHMi
KQorICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoIndhaXQiKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWZ0ZXJfdGVzdF9lbmQodGVzdCwgcmVzdGFydF9iZWZv
cmVfbmV4dCkKKworICAgIGRlZiB3YWl0X2ZpbmlzaGVkKHNlbGYpOgorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUucnVubmluZykKKyAgICAg
ICAgIyBUaGUgYnJvd3NlciBzaG91bGQgYmUgc3RvcHBlZCBhbHJlYWR5LCBidXQgdGhpcyBlbnN1
cmVzIHdlIGRvIGFueSBwb3N0LXN0b3AKKyAgICAgICAgIyBwcm9jZXNzaW5nCisgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJXYWl0IGZpbmlzaGVkIikKKworICAgICAgICByZXR1cm4gc2VsZi5h
ZnRlcl90ZXN0X2VuZChzZWxmLnN0YXRlLnRlc3QsIFRydWUpCisKKyAgICBkZWYgYWZ0ZXJfdGVz
dF9lbmQoc2VsZiwgdGVzdCwgcmVzdGFydCk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNl
bGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nKQorICAgICAgICBpZiBzZWxmLnJ1
bl9jb3VudCA9PSBzZWxmLnJlcnVuOgorICAgICAgICAgICAgdGVzdCwgdGVzdF9ncm91cCwgZ3Jv
dXBfbWV0YWRhdGEgPSBzZWxmLmdldF9uZXh0X3Rlc3QoKQorICAgICAgICAgICAgaWYgdGVzdCBp
cyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuc3RvcCgp
CisgICAgICAgICAgICBpZiB0ZXN0X2dyb3VwICE9IHNlbGYuc3RhdGUudGVzdF9ncm91cDoKKyAg
ICAgICAgICAgICAgICAjIFdlIGFyZSBzdGFydGluZyBhIG5ldyBncm91cCBvZiB0ZXN0cywgc28g
Zm9yY2UgYSByZXN0YXJ0CisgICAgICAgICAgICAgICAgcmVzdGFydCA9IFRydWUKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHRlc3QgPSB0ZXN0CisgICAgICAgICAgICB0ZXN0X2dyb3VwID0g
c2VsZi5zdGF0ZS50ZXN0X2dyb3VwCisgICAgICAgICAgICBncm91cF9tZXRhZGF0YSA9IHNlbGYu
c3RhdGUuZ3JvdXBfbWV0YWRhdGEKKyAgICAgICAgaWYgcmVzdGFydDoKKyAgICAgICAgICAgIHJl
dHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUucmVzdGFydGluZyh0ZXN0LCB0ZXN0X2dyb3VwLCBncm91
cF9tZXRhZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5h
Z2VyU3RhdGUucnVubmluZyh0ZXN0LCB0ZXN0X2dyb3VwLCBncm91cF9tZXRhZGF0YSkKKworICAg
IGRlZiByZXN0YXJ0X3J1bm5lcihzZWxmKToKKyAgICAgICAgIiIiU3RvcCBhbmQgcmVzdGFydCB0
aGUgVGVzdFJ1bm5lciIiIgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBS
dW5uZXJNYW5hZ2VyU3RhdGUucmVzdGFydGluZykKKyAgICAgICAgc2VsZi5zdG9wX3J1bm5lcigp
CisgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHNlbGYuc3Rh
dGUudGVzdCwgc2VsZi5zdGF0ZS50ZXN0X2dyb3VwLCBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRh
LCAwKQorCisgICAgZGVmIGxvZyhzZWxmLCBhY3Rpb24sIGt3YXJncyk6CisgICAgICAgIGdldGF0
dHIoc2VsZi5sb2dnZXIsIGFjdGlvbikoKiprd2FyZ3MpCisKKyAgICBkZWYgZXJyb3Ioc2VsZiwg
bWVzc2FnZSk6CisgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1lc3NhZ2UpCisgICAgICAgIHNl
bGYucmVzdGFydF9ydW5uZXIoKQorCisgICAgZGVmIHN0b3BfcnVubmVyKHNlbGYsIGZvcmNlPUZh
bHNlKToKKyAgICAgICAgIiIiU3RvcCB0aGUgVGVzdFJ1bm5lciBhbmQgdGhlIGJyb3dzZXIgYmlu
YXJ5LiIiIgorICAgICAgICBpZiBzZWxmLnRlc3RfcnVubmVyX3Byb2MgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJldHVybgorCisgICAgICAgIGlmIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5pc19hbGl2
ZSgpOgorICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoInN0b3AiKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLmJyb3dzZXIuc3RvcChmb3JjZT1mb3JjZSkKKyAgICAgICAgICAg
IHNlbGYuZW5zdXJlX3J1bm5lcl9zdG9wcGVkKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAg
ICAgIHNlbGYuY2xlYW51cCgpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJ0ZWFyZG93biBpbiB0ZXN0cnVubmVybWFuYWdlciIpCisgICAgICAg
IHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9IE5vbmUKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVl
LmNsb3NlKCkKKyAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUuY2xvc2UoKQorICAgICAgICBzZWxm
LmNvbW1hbmRfcXVldWUgPSBOb25lCisgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gTm9uZQor
CisgICAgZGVmIGVuc3VyZV9ydW5uZXJfc3RvcHBlZChzZWxmKToKKyAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoImVuc3VyZV9ydW5uZXJfc3RvcHBlZCIpCisgICAgICAgIGlmIHNlbGYudGVzdF9y
dW5uZXJfcHJvYyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIndhaXRpbmcgZm9yIHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCisgICAgICAg
IHNlbGYudGVzdF9ydW5uZXJfcHJvYy5qb2luKDEwKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiQWZ0ZXIgam9pbiIpCisgICAgICAgIGlmIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5pc19hbGl2
ZSgpOgorICAgICAgICAgICAgIyBUaGlzIG1pZ2h0IGxlYWsgYSBmaWxlIGhhbmRsZSBmcm9tIHRo
ZSBxdWV1ZQorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRm9yY2libHkgdGVybWlu
YXRpbmcgcnVubmVyIHByb2Nlc3MiKQorICAgICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9j
LnRlcm1pbmF0ZSgpCisgICAgICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0cnVubmVy
IGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmV4aXRjb2RlKQor
CisgICAgZGVmIHJ1bm5lcl90ZWFyZG93bihzZWxmKToKKyAgICAgICAgc2VsZi5lbnN1cmVfcnVu
bmVyX3N0b3BwZWQoKQorICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0YXRlLnN0b3AoKQor
CisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHNl
bGYucmVtb3RlX3F1ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCisKKyAgICBkZWYgY2xlYW51cChz
ZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3RNYW5hZ2VyIGNsZWFudXAiKQor
ICAgICAgICBpZiBzZWxmLmJyb3dzZXI6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXIuY2xlYW51
cCgpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgY21kLCBkYXRhID0gc2VsZi5jb21tYW5kX3F1ZXVlLmdldF9ub3dhaXQoKQorICAgICAgICAg
ICAgZXhjZXB0IEVtcHR5OgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGlmIGNtZCA9PSAibG9nIjoKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5sb2coKmRhdGEpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIud2FybmluZygiJXI6ICVyIiAlIChjbWQsIGRhdGEpKQorICAgICAgICB3
aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNtZCwgZGF0YSA9
IHNlbGYucmVtb3RlX3F1ZXVlLmdldF9ub3dhaXQoKQorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoIiVyOiAlciIgJSAoY21kLCBkYXRhKSkKKyAgICAgICAgICAgIGV4Y2VwdCBF
bXB0eToKKyAgICAgICAgICAgICAgICBicmVhaworCisKK2RlZiBtYWtlX3Rlc3RfcXVldWUodGVz
dHMsIHRlc3Rfc291cmNlX2NscywgKip0ZXN0X3NvdXJjZV9rd2FyZ3MpOgorICAgIHF1ZXVlID0g
dGVzdF9zb3VyY2VfY2xzLm1ha2VfcXVldWUodGVzdHMsICoqdGVzdF9zb3VyY2Vfa3dhcmdzKQor
CisgICAgIyBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uIHRoYXQgbWVhbnMgc29tZXRpbWVzIHdl
IGNvbnRpbnVlCisgICAgIyBiZWZvcmUgdGhlIHRlc3RzIGhhdmUgYmVlbiB3cml0dGVuIHRvIHRo
ZSB1bmRlcmx5aW5nIHBpcGUuCisgICAgIyBQb2xsaW5nIHRoZSBwaXBlIGZvciBkYXRhIGhlcmUg
YXZvaWRzIHRoYXQKKyAgICBxdWV1ZS5fcmVhZGVyLnBvbGwoMTApCisgICAgYXNzZXJ0IG5vdCBx
dWV1ZS5lbXB0eSgpCisgICAgcmV0dXJuIHF1ZXVlCisKKworY2xhc3MgTWFuYWdlckdyb3VwKG9i
amVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN1aXRlX25hbWUsIHNpemUsIHRlc3Rfc291
cmNlX2NscywgdGVzdF9zb3VyY2Vfa3dhcmdzLAorICAgICAgICAgICAgICAgICBicm93c2VyX2Ns
cywgYnJvd3Nlcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0
b3Jfa3dhcmdzLAorICAgICAgICAgICAgICAgICByZXJ1bj0xLAorICAgICAgICAgICAgICAgICBw
YXVzZV9hZnRlcl90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgICBwYXVzZV9vbl91bmV4cGVj
dGVkPUZhbHNlLAorICAgICAgICAgICAgICAgICByZXN0YXJ0X29uX3VuZXhwZWN0ZWQ9VHJ1ZSwK
KyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lKToKKyAgICAgICAgIiIiTWFpbiB0aHJl
YWQgb2JqZWN0IHRoYXQgb3ducyBhbGwgdGhlIFRlc3RNYW5hZ2VyIHRocmVhZHMuIiIiCisgICAg
ICAgIHNlbGYuc3VpdGVfbmFtZSA9IHN1aXRlX25hbWUKKyAgICAgICAgc2VsZi5zaXplID0gc2l6
ZQorICAgICAgICBzZWxmLnRlc3Rfc291cmNlX2NscyA9IHRlc3Rfc291cmNlX2NscworICAgICAg
ICBzZWxmLnRlc3Rfc291cmNlX2t3YXJncyA9IHRlc3Rfc291cmNlX2t3YXJncworICAgICAgICBz
ZWxmLmJyb3dzZXJfY2xzID0gYnJvd3Nlcl9jbHMKKyAgICAgICAgc2VsZi5icm93c2VyX2t3YXJn
cyA9IGJyb3dzZXJfa3dhcmdzCisgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xzID0gZXhlY3V0b3Jf
Y2xzCisgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzID0gZXhlY3V0b3Jfa3dhcmdzCisgICAg
ICAgIHNlbGYucGF1c2VfYWZ0ZXJfdGVzdCA9IHBhdXNlX2FmdGVyX3Rlc3QKKyAgICAgICAgc2Vs
Zi5wYXVzZV9vbl91bmV4cGVjdGVkID0gcGF1c2Vfb25fdW5leHBlY3RlZAorICAgICAgICBzZWxm
LnJlc3RhcnRfb25fdW5leHBlY3RlZCA9IHJlc3RhcnRfb25fdW5leHBlY3RlZAorICAgICAgICBz
ZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCisgICAgICAgIHNlbGYucmVydW4gPSByZXJ1bgor
CisgICAgICAgIHNlbGYucG9vbCA9IHNldCgpCisgICAgICAgICMgRXZlbnQgdGhhdCBpcyBwb2xs
ZWQgYnkgdGhyZWFkcyBzbyB0aGF0IHRoZXkgY2FuIGdyYWNlZnVsbHkgZXhpdCBpbiB0aGUgZmFj
ZQorICAgICAgICAjIG9mIHNpZ2ludAorICAgICAgICBzZWxmLnN0b3BfZmxhZyA9IHRocmVhZGlu
Zy5FdmVudCgpCisgICAgICAgIHNlbGYubG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVk
TG9nZ2VyKHN1aXRlX25hbWUpCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBl
eGNfdGIpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIHJ1bihzZWxmLCB0ZXN0X3R5
cGUsIHRlc3RzKToKKyAgICAgICAgIiIiU3RhcnQgYWxsIG1hbmFnZXJzIGluIHRoZSBncm91cCIi
IgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVXNpbmcgJWkgcHJvY2Vzc2VzIiAlIHNlbGYu
c2l6ZSkKKyAgICAgICAgdHlwZV90ZXN0cyA9IHRlc3RzW3Rlc3RfdHlwZV0KKyAgICAgICAgaWYg
bm90IHR5cGVfdGVzdHM6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJObyAlcyB0ZXN0
cyB0byBydW4iICUgdGVzdF90eXBlKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgdGVz
dF9xdWV1ZSA9IG1ha2VfdGVzdF9xdWV1ZSh0eXBlX3Rlc3RzLCBzZWxmLnRlc3Rfc291cmNlX2Ns
cywgKipzZWxmLnRlc3Rfc291cmNlX2t3YXJncykKKworICAgICAgICBmb3IgXyBpbiByYW5nZShz
ZWxmLnNpemUpOgorICAgICAgICAgICAgbWFuYWdlciA9IFRlc3RSdW5uZXJNYW5hZ2VyKHNlbGYu
c3VpdGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3F1ZXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVz
dF9zb3VyY2VfY2xzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuYnJvd3Nlcl9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5icm93c2VyX2t3YXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmV4ZWN1dG9yX2NscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnN0b3BfZmxhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnJlcnVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucGF1c2VfYWZ0ZXJfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLnBhdXNlX29uX3VuZXhwZWN0ZWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQor
ICAgICAgICAgICAgbWFuYWdlci5zdGFydCgpCisgICAgICAgICAgICBzZWxmLnBvb2wuYWRkKG1h
bmFnZXIpCisgICAgICAgIHNlbGYud2FpdCgpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6Cisg
ICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGFueSBtYW5hZ2VyIGluIHRoZSBn
cm91cCBpcyBzdGlsbCBhbGl2ZSIiIgorICAgICAgICByZXR1cm4gYW55KG1hbmFnZXIuaXNfYWxp
dmUoKSBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2wpCisKKyAgICBkZWYgd2FpdChzZWxmKToKKyAg
ICAgICAgIiIiV2FpdCBmb3IgYWxsIHRoZSBtYW5hZ2VycyBpbiB0aGUgZ3JvdXAgdG8gZmluaXNo
IiIiCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYucG9vbDoKKyAgICAgICAgICAgIGl0ZW0uam9p
bigpCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgIiIiU2V0IHRoZSBzdG9wIGZsYWcg
c28gdGhhdCBhbGwgbWFuYWdlcnMgaW4gdGhlIGdyb3VwIHN0b3AgYXMgc29vbgorICAgICAgICBh
cyBwb3NzaWJsZSIiIgorICAgICAgICBzZWxmLnN0b3BfZmxhZy5zZXQoKQorICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiU3RvcCBmbGFnIHNldCBpbiBNYW5hZ2VyR3JvdXAiKQorCisgICAgZGVm
IHRlc3RfY291bnQoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0oaXRlbS50ZXN0X2NvdW50IGZv
ciBpdGVtIGluIHNlbGYucG9vbCkKKworICAgIGRlZiB1bmV4cGVjdGVkX2NvdW50KHNlbGYpOgor
ICAgICAgICByZXR1cm4gc3VtKGl0ZW0udW5leHBlY3RlZF9jb3VudCBmb3IgaXRlbSBpbiBzZWxm
LnBvb2wpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBl
MTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYmFzZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9iYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MTczZjNiNTEzZWE0
ZjBhMzdkYjJjY2RjMGE5NDg4OTNjNGZlNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvYmFzZS5weQpAQCAtMCwwICsxLDYwIEBACitpbXBvcnQgb3MKK2ltcG9ydCBzeXMK
KworZnJvbSBvcy5wYXRoIGltcG9ydCBkaXJuYW1lLCBqb2luCisKK2ltcG9ydCBweXRlc3QKKwor
c3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIpKQor
Citmcm9tIHdwdHJ1bm5lciBpbXBvcnQgYnJvd3NlcnMKKworCitfcHJvZHVjdHMgPSBicm93c2Vy
cy5wcm9kdWN0X2xpc3QKK19hY3RpdmVfcHJvZHVjdHMgPSBzZXQoKQorCitpZiAiQ1VSUkVOVF9U
T1hfRU5WIiBpbiBvcy5lbnZpcm9uOgorICAgIGN1cnJlbnRfdG94X2Vudl9zcGxpdCA9IG9zLmVu
dmlyb25bIkNVUlJFTlRfVE9YX0VOViJdLnNwbGl0KCItIikKKworICAgIHRveF9lbnZfZXh0cmFf
YnJvd3NlcnMgPSB7CisgICAgICAgICJjaHJvbWUiOiB7ImNocm9tZV9hbmRyb2lkIn0sCisgICAg
ICAgICJzZXJ2byI6IHsic2Vydm9kcml2ZXIifSwKKyAgICB9CisKKyAgICBfYWN0aXZlX3Byb2R1
Y3RzID0gc2V0KF9wcm9kdWN0cykgJiBzZXQoY3VycmVudF90b3hfZW52X3NwbGl0KQorICAgIGZv
ciBwcm9kdWN0IGluIGZyb3plbnNldChfYWN0aXZlX3Byb2R1Y3RzKToKKyAgICAgICAgX2FjdGl2
ZV9wcm9kdWN0cyB8PSB0b3hfZW52X2V4dHJhX2Jyb3dzZXJzLmdldChwcm9kdWN0LCBzZXQoKSkK
K2Vsc2U6CisgICAgX2FjdGl2ZV9wcm9kdWN0cyA9IHNldChfcHJvZHVjdHMpCisKKworY2xhc3Mg
YWxsX3Byb2R1Y3RzKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZywgbWFya3M9
e30pOgorICAgICAgICBzZWxmLmFyZyA9IGFyZworICAgICAgICBzZWxmLm1hcmtzID0gbWFya3MK
KworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBmKToKKyAgICAgICAgcGFyYW1zID0gW10KKyAgICAg
ICAgZm9yIHByb2R1Y3QgaW4gX3Byb2R1Y3RzOgorICAgICAgICAgICAgaWYgcHJvZHVjdCBpbiBz
ZWxmLm1hcmtzOgorICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQocHl0ZXN0LnBhcmFtKHBy
b2R1Y3QsIG1hcmtzPXNlbGYubWFya3NbcHJvZHVjdF0pKQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKHByb2R1Y3QpCisgICAgICAgIHJldHVybiBweXRl
c3QubWFyay5wYXJhbWV0cml6ZShzZWxmLmFyZywgcGFyYW1zKShmKQorCisKK2NsYXNzIGFjdGl2
ZV9wcm9kdWN0cyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmcsIG1hcmtzPXt9
KToKKyAgICAgICAgc2VsZi5hcmcgPSBhcmcKKyAgICAgICAgc2VsZi5tYXJrcyA9IG1hcmtzCisK
KyAgICBkZWYgX19jYWxsX18oc2VsZiwgZik6CisgICAgICAgIHBhcmFtcyA9IFtdCisgICAgICAg
IGZvciBwcm9kdWN0IGluIF9wcm9kdWN0czoKKyAgICAgICAgICAgIGlmIHByb2R1Y3Qgbm90IGlu
IF9hY3RpdmVfcHJvZHVjdHM6CisgICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChweXRlc3Qu
cGFyYW0ocHJvZHVjdCwgbWFya3M9cHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249Indyb25nIHRveGVu
diIpKSkKKyAgICAgICAgICAgIGVsaWYgcHJvZHVjdCBpbiBzZWxmLm1hcmtzOgorICAgICAgICAg
ICAgICAgIHBhcmFtcy5hcHBlbmQocHl0ZXN0LnBhcmFtKHByb2R1Y3QsIG1hcmtzPXNlbGYubWFy
a3NbcHJvZHVjdF0pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwYXJhbXMu
YXBwZW5kKHByb2R1Y3QpCisgICAgICAgIHJldHVybiBweXRlc3QubWFyay5wYXJhbWV0cml6ZShz
ZWxmLmFyZywgcGFyYW1zKShmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dz
ZXJzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkK
QEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFy
Y2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZDQ0ZTY0NjZhMThjY2M5MTU3NmEyYTE3YzIwNGE0Yjk1ZmU0YWMxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKQEAgLTAsMCArMSwx
MzAgQEAKK2ltcG9ydCBzeXMKK2Zyb20gb3MucGF0aCBpbXBvcnQgam9pbiwgZGlybmFtZQorCitp
bXBvcnQgbW9jaworaW1wb3J0IHB5dGVzdAorCitzeXMucGF0aC5pbnNlcnQoMCwgam9pbihkaXJu
YW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIikpCisKK3NhdWNlID0gcHl0ZXN0LmltcG9y
dG9yc2tpcCgid3B0cnVubmVyLmJyb3dzZXJzLnNhdWNlIikKKworCitkZWYgdGVzdF9zYXVjZWNv
bm5lY3Rfc3VjY2VzcygpOgorICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2UuU2F1Y2VD
b25uZWN0LCAidXBsb2FkX3ByZXJ1bl9leGVjIiksXAorICAgICAgICAgICAgbW9jay5wYXRjaC5v
YmplY3Qoc2F1Y2Uuc3VicHJvY2VzcywgIlBvcGVuIikgYXMgUG9wZW4sXAorICAgICAgICAgICAg
bW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uub3MucGF0aCwgImV4aXN0cyIpIGFzIGV4aXN0czoKKyAg
ICAgICAgIyBBY3QgYXMgaWYgaXQncyBzdGlsbCBydW5uaW5nCisgICAgICAgIFBvcGVuLnJldHVy
bl92YWx1ZS5wb2xsLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgUG9wZW4ucmV0dXJuX3Zh
bHVlLnJldHVybmNvZGUgPSBOb25lCisgICAgICAgICMgQWN0IGFzIGlmIGZpbGUgY3JlYXRlZAor
ICAgICAgICBleGlzdHMucmV0dXJuX3ZhbHVlID0gVHJ1ZQorCisgICAgICAgIHNhdWNlX2Nvbm5l
Y3QgPSBzYXVjZS5TYXVjZUNvbm5lY3QoCisgICAgICAgICAgICBzYXVjZV91c2VyPSJhYWEiLAor
ICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAorICAgICAgICAgICAgc2F1Y2VfdHVubmVsX2lk
PSJjY2MiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIpCisKKyAgICAg
ICAgZW52X2NvbmZpZyA9IHsKKyAgICAgICAgICAgICJkb21haW5zIjogeyIiOiAiZXhhbXBsZS5u
ZXQifQorICAgICAgICB9CisgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykK
KyAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgorICAgICAgICAgICAgcGFzcworCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgicmVhZHlmaWxlLHJldHVybmNvZGUiLCBbCisgICAgKFRydWUs
IDApLAorICAgIChUcnVlLCAxKSwKKyAgICAoVHJ1ZSwgMiksCisgICAgKEZhbHNlLCAwKSwKKyAg
ICAoRmFsc2UsIDEpLAorICAgIChGYWxzZSwgMiksCitdKQorZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0
X2ZhaWx1cmVfZXhpdChyZWFkeWZpbGUsIHJldHVybmNvZGUpOgorICAgIHdpdGggbW9jay5wYXRj
aC5vYmplY3Qoc2F1Y2UuU2F1Y2VDb25uZWN0LCAidXBsb2FkX3ByZXJ1bl9leGVjIiksXAorICAg
ICAgICAgICAgbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uuc3VicHJvY2VzcywgIlBvcGVuIikgYXMg
UG9wZW4sXAorICAgICAgICAgICAgbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uub3MucGF0aCwgImV4
aXN0cyIpIGFzIGV4aXN0cyxcCisgICAgICAgICAgICBtb2NrLnBhdGNoLm9iamVjdChzYXVjZS50
aW1lLCAic2xlZXAiKSBhcyBzbGVlcDoKKyAgICAgICAgUG9wZW4ucmV0dXJuX3ZhbHVlLnBvbGwu
cmV0dXJuX3ZhbHVlID0gcmV0dXJuY29kZQorICAgICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucmV0
dXJuY29kZSA9IHJldHVybmNvZGUKKyAgICAgICAgZXhpc3RzLnJldHVybl92YWx1ZSA9IHJlYWR5
ZmlsZQorCisgICAgICAgIHNhdWNlX2Nvbm5lY3QgPSBzYXVjZS5TYXVjZUNvbm5lY3QoCisgICAg
ICAgICAgICBzYXVjZV91c2VyPSJhYWEiLAorICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAor
ICAgICAgICAgICAgc2F1Y2VfdHVubmVsX2lkPSJjY2MiLAorICAgICAgICAgICAgc2F1Y2VfY29u
bmVjdF9iaW5hcnk9ImRkZCIpCisKKyAgICAgICAgZW52X2NvbmZpZyA9IHsKKyAgICAgICAgICAg
ICJkb21haW5zIjogeyIiOiAiZXhhbXBsZS5uZXQifQorICAgICAgICB9CisgICAgICAgIHNhdWNl
X2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHNh
dWNlLlNhdWNlRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKKyAg
ICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgIyBHaXZlbiB3ZSBhcHBlYXIgdG8gZXhpdCBp
bW1lZGlhdGVseSB3aXRoIHRoZXNlIG1vY2tzLCBzbGVlcCBzaG91bGRuJ3QgYmUgY2FsbGVkCisg
ICAgICAgIHNsZWVwLmFzc2VydF9ub3RfY2FsbGVkKCkKKworCitkZWYgdGVzdF9zYXVjZWNvbm5l
Y3RfZmFpbHVyZV9uZXZlcl9yZWFkeSgpOgorICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qoc2F1
Y2UuU2F1Y2VDb25uZWN0LCAidXBsb2FkX3ByZXJ1bl9leGVjIiksXAorICAgICAgICAgICAgbW9j
ay5wYXRjaC5vYmplY3Qoc2F1Y2Uuc3VicHJvY2VzcywgIlBvcGVuIikgYXMgUG9wZW4sXAorICAg
ICAgICAgICAgbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uub3MucGF0aCwgImV4aXN0cyIpIGFzIGV4
aXN0cyxcCisgICAgICAgICAgICBtb2NrLnBhdGNoLm9iamVjdChzYXVjZS50aW1lLCAic2xlZXAi
KSBhcyBzbGVlcDoKKyAgICAgICAgUG9wZW4ucmV0dXJuX3ZhbHVlLnBvbGwucmV0dXJuX3ZhbHVl
ID0gTm9uZQorICAgICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucmV0dXJuY29kZSA9IE5vbmUKKyAg
ICAgICAgZXhpc3RzLnJldHVybl92YWx1ZSA9IEZhbHNlCisKKyAgICAgICAgc2F1Y2VfY29ubmVj
dCA9IHNhdWNlLlNhdWNlQ29ubmVjdCgKKyAgICAgICAgICAgIHNhdWNlX3VzZXI9ImFhYSIsCisg
ICAgICAgICAgICBzYXVjZV9rZXk9ImJiYiIsCisgICAgICAgICAgICBzYXVjZV90dW5uZWxfaWQ9
ImNjYyIsCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIikKKworICAgICAg
ICBlbnZfY29uZmlnID0geworICAgICAgICAgICAgImRvbWFpbnMiOiB7IiI6ICJleGFtcGxlLm5l
dCJ9CisgICAgICAgIH0KKyAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQor
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoc2F1Y2UuU2F1Y2VFeGNlcHRpb24pOgorICAgICAg
ICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICAjIFdlIHNob3VsZCBzbGVlcCB3aGlsZSB3YWl0aW5nIGZvciBpdCB0byBjcmVhdGUgdGhlIHJl
YWR5ZmlsZQorICAgICAgICBzbGVlcC5hc3NlcnRfY2FsbGVkKCkKKworICAgICAgICAjIENoZWNr
IHdlIGFjdHVhbGx5IGtpbGwgaXQgYWZ0ZXIgdGVybWluYXRpb24gZmFpbHMKKyAgICAgICAgUG9w
ZW4ucmV0dXJuX3ZhbHVlLnRlcm1pbmF0ZS5hc3NlcnRfY2FsbGVkKCkKKyAgICAgICAgUG9wZW4u
cmV0dXJuX3ZhbHVlLmtpbGwuYXNzZXJ0X2NhbGxlZCgpCisKKworZGVmIHRlc3Rfc2F1Y2Vjb25u
ZWN0X3R1bm5lbF9kb21haW5zKCk6CisgICAgd2l0aCBtb2NrLnBhdGNoLm9iamVjdChzYXVjZS5T
YXVjZUNvbm5lY3QsICJ1cGxvYWRfcHJlcnVuX2V4ZWMiKSxcCisgICAgICAgICAgICBtb2NrLnBh
dGNoLm9iamVjdChzYXVjZS5zdWJwcm9jZXNzLCAiUG9wZW4iKSBhcyBQb3BlbixcCisgICAgICAg
ICAgICBtb2NrLnBhdGNoLm9iamVjdChzYXVjZS5vcy5wYXRoLCAiZXhpc3RzIikgYXMgZXhpc3Rz
OgorICAgICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucG9sbC5yZXR1cm5fdmFsdWUgPSBOb25lCisg
ICAgICAgIFBvcGVuLnJldHVybl92YWx1ZS5yZXR1cm5jb2RlID0gTm9uZQorICAgICAgICBleGlz
dHMucmV0dXJuX3ZhbHVlID0gVHJ1ZQorCisgICAgICAgIHNhdWNlX2Nvbm5lY3QgPSBzYXVjZS5T
YXVjZUNvbm5lY3QoCisgICAgICAgICAgICBzYXVjZV91c2VyPSJhYWEiLAorICAgICAgICAgICAg
c2F1Y2Vfa2V5PSJiYmIiLAorICAgICAgICAgICAgc2F1Y2VfdHVubmVsX2lkPSJjY2MiLAorICAg
ICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIpCisKKyAgICAgICAgZW52X2NvbmZp
ZyA9IHsKKyAgICAgICAgICAgICJkb21haW5zIjogeyJmb28iOiAiZm9vLmJhci5leGFtcGxlLmNv
bSIsICIiOiAiZXhhbXBsZS5uZXQifQorICAgICAgICB9CisgICAgICAgIHNhdWNlX2Nvbm5lY3Qo
Tm9uZSwgZW52X2NvbmZpZykKKyAgICAgICAgd2l0aCBzYXVjZV9jb25uZWN0OgorICAgICAgICAg
ICAgUG9wZW4uYXNzZXJ0X2NhbGxlZF9vbmNlKCkKKyAgICAgICAgICAgIGFyZ3MsIGt3YXJncyA9
IFBvcGVuLmNhbGxfYXJncworICAgICAgICAgICAgY21kID0gYXJnc1swXQorICAgICAgICAgICAg
YXNzZXJ0ICItLXR1bm5lbC1kb21haW5zIiBpbiBjbWQKKyAgICAgICAgICAgIGkgPSBjbWQuaW5k
ZXgoIi0tdHVubmVsLWRvbWFpbnMiKQorICAgICAgICAgICAgcmVzdCA9IGNtZFtpKzE6XQorICAg
ICAgICAgICAgYXNzZXJ0IGxlbihyZXN0KSA+PSAxCisgICAgICAgICAgICBpZiBsZW4ocmVzdCkg
PiAxOgorICAgICAgICAgICAgICAgIGFzc2VydCByZXN0WzFdLnN0YXJ0c3dpdGgoIi0iKSwgIi0t
dHVubmVsLWRvbWFpbnMgdGFrZXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCAobm90IGEgc3BhY2Ug
c2VwYXJhdGVkIGxpc3QpIgorICAgICAgICAgICAgYXNzZXJ0IHNldChyZXN0WzBdLnNwbGl0KCIs
IikpID09IHsiZm9vLmJhci5leGFtcGxlLmNvbSIsICJleGFtcGxlLm5ldCJ9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwNWU1MDQwNzA3
NjFkMDRmZjFiOTg2MGE2YmIwZjU3ODdlYmU1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL3Rlc3RfY2h1bmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2NodW5rZXIu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDYyYjY4N2ZhYjlhZmZjY2RlNzJmZThjMWQ5NjBkODdkZDNkOGY3Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2NodW5rZXIucHkKQEAg
LTAsMCArMSw5MSBAQAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgc3lzCitmcm9tIG9zLnBhdGgg
aW1wb3J0IGpvaW4sIGRpcm5hbWUKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkCisKK2lt
cG9ydCBweXRlc3QKKworc3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyks
ICIuLiIsICIuLiIpKQorCitmcm9tIHdwdHJ1bm5lci50ZXN0bG9hZGVyIGltcG9ydCBFcXVhbFRp
bWVDaHVua2VyCisKK3N0cnVjdHVyZWQuc2V0X2RlZmF1bHRfbG9nZ2VyKHN0cnVjdHVyZWQuc3Ry
dWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJUZXN0Q2h1bmtlciIpKQorCitjbGFzcyBNb2Nr
VGVzdChvYmplY3QpOgorICAgIGRlZmF1bHRfdGltZW91dCA9IDEwCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgaWQsIHRpbWVvdXQ9MTApOgorICAgICAgICBzZWxmLmlkID0gaWQKKyAgICAgICAg
c2VsZi5pdGVtX3R5cGUgPSAidGVzdGhhcm5lc3MiCisgICAgICAgIHNlbGYudGltZW91dCA9IHRp
bWVvdXQKKworCitkZWYgbWFrZV9tb2NrX21hbmlmZXN0KCppdGVtcyk6CisgICAgcnYgPSBbXQor
ICAgIGZvciB0ZXN0X3R5cGUsIGRpcl9wYXRoLCBudW1fdGVzdHMgaW4gaXRlbXM6CisgICAgICAg
IGZvciBpIGluIHJhbmdlKG51bV90ZXN0cyk6CisgICAgICAgICAgICBydi5hcHBlbmQoKHRlc3Rf
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgZGlyX3BhdGggKyAiLyVpLnRlc3QiICUgaSwK
KyAgICAgICAgICAgICAgICAgICAgICAgc2V0KFtNb2NrVGVzdChpKV0pKSkKKyAgICByZXR1cm4g
cnYKKworCitjbGFzcyBUZXN0RXF1YWxUaW1lQ2h1bmtlcih1bml0dGVzdC5UZXN0Q2FzZSk6CisK
KyAgICBkZWYgdGVzdF9pbmNsdWRlX2FsbChzZWxmKToKKyAgICAgICAgdGVzdHMgPSBtYWtlX21v
Y2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxMCksICgidGVzdCIsICJhL2IiLCAxMCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJjIiwgMTApKQorCisgICAg
ICAgIGNodW5rXzEgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMSkodGVzdHMpKQorICAgICAg
ICBjaHVua18yID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDIpKHRlc3RzKSkKKyAgICAgICAg
Y2h1bmtfMyA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAzKSh0ZXN0cykpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHModGVzdHNbOjEwXSwgY2h1bmtfMSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHModGVzdHNbMTA6MjBdLCBjaHVua18yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyh0ZXN0c1syMDpdLCBjaHVua18zKQorCisgICAgZGVmIHRlc3RfaW5jbHVkZV9hbGxfMShzZWxm
KToKKyAgICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCA1KSwg
KCJ0ZXN0IiwgImEvYiIsIDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
InRlc3QiLCAiYyIsIDEwKSwgKCJ0ZXN0IiwgImQiLCAxMCkpCisKKyAgICAgICAgY2h1bmtfMSA9
IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAxKSh0ZXN0cykpCisgICAgICAgIGNodW5rXzIgPSBs
aXN0KEVxdWFsVGltZUNodW5rZXIoMywgMikodGVzdHMpKQorICAgICAgICBjaHVua18zID0gbGlz
dChFcXVhbFRpbWVDaHVua2VyKDMsIDMpKHRlc3RzKSkKKworICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyh0ZXN0c1s6MTBdLCBjaHVua18xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0
c1sxMDoyMF0sIGNodW5rXzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzIwOl0s
IGNodW5rXzMpCisKKyAgICBkZWYgdGVzdF9sb25nKHNlbGYpOgorICAgICAgICB0ZXN0cyA9IG1h
a2VfbW9ja19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDEwMCksICgidGVzdCIsICJhL2IiLCAxKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxKSkKKwor
ICAgICAgICBjaHVua18xID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDEpKHRlc3RzKSkKKyAg
ICAgICAgY2h1bmtfMiA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAyKSh0ZXN0cykpCisgICAg
ICAgIGNodW5rXzMgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMykodGVzdHMpKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzoxMDBdLCBjaHVua18xKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyh0ZXN0c1sxMDA6MTAxXSwgY2h1bmtfMikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHModGVzdHNbMTAxOjEwMl0sIGNodW5rXzMpCisKKyAgICBkZWYgdGVzdF9sb25nXzEo
c2VsZik6CisgICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwg
MSksICgidGVzdCIsICJhL2IiLCAxMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3QiLCAiYyIsIDEpKQorCisgICAgICAgIGNodW5rXzEgPSBsaXN0KEVxdWFsVGlt
ZUNodW5rZXIoMywgMSkodGVzdHMpKQorICAgICAgICBjaHVua18yID0gbGlzdChFcXVhbFRpbWVD
aHVua2VyKDMsIDIpKHRlc3RzKSkKKyAgICAgICAgY2h1bmtfMyA9IGxpc3QoRXF1YWxUaW1lQ2h1
bmtlcigzLCAzKSh0ZXN0cykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbOjFd
LCBjaHVua18xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0c1sxOjEwMV0sIGNodW5r
XzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwMToxMDJdLCBjaHVua18zKQor
CisgICAgZGVmIHRlc3RfdG9vX2Zld19kaXJzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFu
aWZlc3QoKCJ0ZXN0IiwgImEiLCAxKSwgKCJ0ZXN0IiwgImEvYiIsIDEwMCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIsIDEpKQorICAgICAgICAg
ICAgbGlzdChFcXVhbFRpbWVDaHVua2VyKDQsIDEpKHRlc3RzKSkKKworCitpZiBfX25hbWVfXyA9
PSAiX19tYWluX18iOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9k
dWN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNzEwOWM1MjVmZGZiNDJkNTM5MWIyMGIxM2JmNzJjNDc2MTNm
NmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMu
cHkKQEAgLTAsMCArMSw2NSBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20gb3MucGF0
aCBpbXBvcnQgam9pbiwgZGlybmFtZQorCitpbXBvcnQgbW9jaworaW1wb3J0IHB5dGVzdAorCitm
cm9tIC5iYXNlIGltcG9ydCBhbGxfcHJvZHVjdHMsIGFjdGl2ZV9wcm9kdWN0cworCitzeXMucGF0
aC5pbnNlcnQoMCwgam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4u
IikpICAjIHJlcG8gcm9vdAorCitmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzCisKK2ltcG9y
dCBzc2x1dGlscworCitmcm9tIHdwdHJ1bm5lciBpbXBvcnQgZW52aXJvbm1lbnQKK2Zyb20gd3B0
cnVubmVyIGltcG9ydCBwcm9kdWN0cworCit0ZXN0X3BhdGhzID0geyIvIjogeyJ0ZXN0c19wYXRo
Ijogam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIil9fSAgIyBy
ZXBvIHJvb3QKK2Vudmlyb25tZW50LmRvX2RlbGF5ZWRfaW1wb3J0cyhOb25lLCB0ZXN0X3BhdGhz
KQorCisKK0BhY3RpdmVfcHJvZHVjdHMoInByb2R1Y3QiKQorZGVmIHRlc3RfbG9hZF9hY3RpdmVf
cHJvZHVjdChwcm9kdWN0KToKKyAgICAiIiJ0ZXN0IHdlIGNhbiBzdWNjZXNzZnVsbHkgbG9hZCB0
aGUgcHJvZHVjdCBvZiB0aGUgY3VycmVudCB0ZXN0ZW52IiIiCisgICAgcHJvZHVjdHMubG9hZF9w
cm9kdWN0KHt9LCBwcm9kdWN0KQorICAgICMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCB0aHJv
dworCisKK0BhbGxfcHJvZHVjdHMoInByb2R1Y3QiKQorZGVmIHRlc3RfbG9hZF9hbGxfcHJvZHVj
dHMocHJvZHVjdCk6CisgICAgIiIidGVzdCBldmVyeSBwcm9kdWN0IGVpdGhlciBsb2FkcyBvciB0
aHJvd3MgSW1wb3J0RXJyb3IiIiIKKyAgICB0cnk6CisgICAgICAgIHByb2R1Y3RzLmxvYWRfcHJv
ZHVjdCh7fSwgcHJvZHVjdCkKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHBhc3MK
KworCitAYWN0aXZlX3Byb2R1Y3RzKCJwcm9kdWN0IiwgbWFya3M9eworICAgICJzYXVjZSI6IHB5
dGVzdC5tYXJrLnNraXAoIm5lZWRzIGVudiBleHRyYXMga3dhcmdzIiksCit9KQorZGVmIHRlc3Rf
c2VydmVyX3N0YXJ0X2NvbmZpZyhwcm9kdWN0KToKKyAgICAoY2hlY2tfYXJncywKKyAgICAgdGFy
Z2V0X2Jyb3dzZXJfY2xzLCBnZXRfYnJvd3Nlcl9rd2FyZ3MsCisgICAgIGV4ZWN1dG9yX2NsYXNz
ZXMsIGdldF9leGVjdXRvcl9rd2FyZ3MsCisgICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJh
cywgcnVuX2luZm9fZXh0cmFzKSA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkK
KworICAgIGVudl9leHRyYXMgPSBnZXRfZW52X2V4dHJhcygpCisKKyAgICB3aXRoIG1vY2sucGF0
Y2gub2JqZWN0KGVudmlyb25tZW50LnNlcnZlLCAic3RhcnQiKSBhcyBzdGFydDoKKyAgICAgICAg
d2l0aCBlbnZpcm9ubWVudC5UZXN0RW52aXJvbm1lbnQodGVzdF9wYXRocywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsdXRpbHMuZW52aXJvbm1lbnRzWyJub25l
Il0oTm9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52X2V4dHJhcykgYXMgdGVzdF9lbnZp
cm9ubWVudDoKKyAgICAgICAgICAgIHN0YXJ0LmFzc2VydF9jYWxsZWRfb25jZSgpCisgICAgICAg
ICAgICBhcmdzID0gc3RhcnQuY2FsbF9hcmdzCisgICAgICAgICAgICBjb25maWcgPSBhcmdzWzBd
WzBdCisgICAgICAgICAgICBpZiAic2VydmVyX2hvc3QiIGluIGVudl9vcHRpb25zOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gZW52X29wdGlvbnNbInNl
cnZlcl9ob3N0Il0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNv
bmZpZ1sic2VydmVyX2hvc3QiXSA9PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb25maWdbImJpbmRfYWRkcmVzcyJdLCBib29sKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU2YjJiN2YzZmE0ODIxMmZi
ZjljMmIwMjc5NzkzZjJlYzQ4YmFjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKQEAgLTAsMCArMSwzMCBAQAorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0
IHRlbXBmaWxlCisKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIikpCisKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1
cmVkCitmcm9tIHdwdHJ1bm5lci50ZXN0bG9hZGVyIGltcG9ydCBUZXN0RmlsdGVyIGFzIEZpbHRl
cgorZnJvbSAudGVzdF9jaHVua2VyIGltcG9ydCBtYWtlX21vY2tfbWFuaWZlc3QKKworc3RydWN0
dXJlZC5zZXRfZGVmYXVsdF9sb2dnZXIoc3RydWN0dXJlZC5zdHJ1Y3R1cmVkbG9nLlN0cnVjdHVy
ZWRMb2dnZXIoIlRlc3RMb2FkZXIiKSkKKworaW5jbHVkZV9pbmkgPSAiIiJcCitza2lwOiB0cnVl
CitbdGVzdF9cdTUzRjBdCisgIHNraXA6IGZhbHNlCisiIiIKKworCitkZWYgdGVzdF9maWx0ZXJf
dW5pY29kZSgpOgorICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwg
MTApLCAoInRlc3QiLCAiYS9iIiwgMTApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdCIsICJjIiwgMTApKQorCisgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZp
bGUoIndiIiwgc3VmZml4PSIuaW5pIikgYXMgZjoKKyAgICAgICAgZi53cml0ZShpbmNsdWRlX2lu
aS5lbmNvZGUoJ3V0Zi04JykpCisgICAgICAgIGYuZmx1c2goKQorCisgICAgICAgIEZpbHRlciht
YW5pZmVzdF9wYXRoPWYubmFtZSwgdGVzdF9tYW5pZmVzdHM9dGVzdHMpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVz
dF91cGRhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVlYjRjZjQ5YzdmYTljMzFkNmM0NmRjMWQ1MjAxZDIx
ZWVjMTBmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0
ZS5weQpAQCAtMCwwICsxLDMyOCBAQAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgU3RyaW5nSU8K
KworaW1wb3J0IHB5dGVzdAorCitmcm9tIC4uIGltcG9ydCBtZXRhZGF0YSwgbWFuaWZlc3R1cGRh
dGUKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkbG9nLCBoYW5kbGVycywgZm9ybWF0dGVy
cworCisKK2NsYXNzIFRlc3RFeHBlY3RlZFVwZGF0ZXIodW5pdHRlc3QuVGVzdENhc2UpOgorICAg
IGRlZiBjcmVhdGVfbWFuaWZlc3Qoc2VsZiwgZGF0YSwgdGVzdF9wYXRoPSJwYXRoL3RvL3Rlc3Qu
aW5pIik6CisgICAgICAgIGYgPSBTdHJpbmdJTy5TdHJpbmdJTyhkYXRhKQorICAgICAgICByZXR1
cm4gbWFuaWZlc3R1cGRhdGUuY29tcGlsZShmLCB0ZXN0X3BhdGgpCisKKyAgICBkZWYgY3JlYXRl
X3VwZGF0ZXIoc2VsZiwgZGF0YSwgKiprd2FyZ3MpOgorICAgICAgICBleHBlY3RlZF90cmVlID0g
e30KKyAgICAgICAgaWRfcGF0aF9tYXAgPSB7fQorICAgICAgICBmb3IgdGVzdF9wYXRoLCB0ZXN0
X2lkcywgbWFuaWZlc3Rfc3RyIGluIGRhdGE6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHRl
c3RfaWRzLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgdGVzdF9pZHMgPSBbdGVz
dF9pZHNdCisgICAgICAgICAgICBleHBlY3RlZF90cmVlW3Rlc3RfcGF0aF0gPSBzZWxmLmNyZWF0
ZV9tYW5pZmVzdChtYW5pZmVzdF9zdHIsIHRlc3RfcGF0aCkKKyAgICAgICAgICAgIGZvciB0ZXN0
X2lkIGluIHRlc3RfaWRzOgorICAgICAgICAgICAgICAgIGlkX3BhdGhfbWFwW3Rlc3RfaWRdID0g
dGVzdF9wYXRoCisKKyAgICAgICAgcmV0dXJuIG1ldGFkYXRhLkV4cGVjdGVkVXBkYXRlcihleHBl
Y3RlZF90cmVlLCBpZF9wYXRoX21hcCwgKiprd2FyZ3MpCisKKyAgICBkZWYgY3JlYXRlX2xvZyhz
ZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0
cnVjdHVyZWRMb2dnZXIoImV4cGVjdGVkX3Rlc3QiKQorICAgICAgICBkYXRhID0gU3RyaW5nSU8u
U3RyaW5nSU8oKQorICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihkYXRh
LCBmb3JtYXR0ZXJzLkpTT05Gb3JtYXR0ZXIoKSkKKyAgICAgICAgbG9nZ2VyLmFkZF9oYW5kbGVy
KGhhbmRsZXIpCisKKyAgICAgICAgbG9nX2VudHJpZXMgPSAoWygic3VpdGVfc3RhcnQiLCB7InRl
c3RzIjogW10sICJydW5faW5mbyI6IGt3YXJncy5nZXQoInJ1bl9pbmZvIiwge30pfSldICsKKyAg
ICAgICAgICAgICAgICAgICAgICAgbGlzdChhcmdzKSArCisgICAgICAgICAgICAgICAgICAgICAg
IFsoInN1aXRlX2VuZCIsIHt9KV0pCisKKyAgICAgICAgZm9yIGl0ZW0gaW4gbG9nX2VudHJpZXM6
CisgICAgICAgICAgICBhY3Rpb24sIGt3YXJncyA9IGl0ZW0KKyAgICAgICAgICAgIGdldGF0dHIo
bG9nZ2VyLCBhY3Rpb24pKCoqa3dhcmdzKQorICAgICAgICBsb2dnZXIucmVtb3ZlX2hhbmRsZXIo
aGFuZGxlcikKKyAgICAgICAgZGF0YS5zZWVrKDApCisgICAgICAgIHJldHVybiBkYXRhCisKKwor
ICAgIGRlZiBjb2FsZXNjZV9yZXN1bHRzKHNlbGYsIHRyZWVzKToKKyAgICAgICAgZm9yIHRyZWUg
aW4gdHJlZXM6CisgICAgICAgICAgICBmb3IgdGVzdCBpbiB0cmVlLml0ZXJjaGlsZHJlbigpOgor
ICAgICAgICAgICAgICAgIGZvciBzdWJ0ZXN0IGluIHRlc3QuaXRlcmNoaWxkcmVuKCk6CisgICAg
ICAgICAgICAgICAgICAgIHN1YnRlc3QuY29hbGVzY2VfZXhwZWN0ZWQoKQorICAgICAgICAgICAg
ICAgIHRlc3QuY29hbGVzY2VfZXhwZWN0ZWQoKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisg
ICAgZGVmIHRlc3RfdXBkYXRlXzAoc2VsZik6CisgICAgICAgIHByZXZfZGF0YSA9IFsoInBhdGgv
dG8vdGVzdC5odG0uaW5pIiwgWyIvcGF0aC90by90ZXN0Lmh0bSJdLCAiIiJbdGVzdC5odG1dCisg
IHR5cGU6IHRlc3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogRkFJTCIiIildCisK
KyAgICAgICAgbmV3X2RhdGEgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogIi9wYXRoL3RvL3Rlc3QuaHRtIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogIi9wYXRoL3RvL3Rlc3QuaHRtIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6ICIvcGF0aC90by90ZXN0
Lmh0bSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KSkKKyAgICAgICAgdXBkYXRlciA9IHNlbGYuY3JlYXRlX3VwZGF0ZXIo
cHJldl9kYXRhKQorICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YSkKKwor
ICAgICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVyLmV4cGVjdGVkX3RyZWVbInBhdGgvdG8vdGVz
dC5odG0uaW5pIl0KKyAgICAgICAgc2VsZi5jb2FsZXNjZV9yZXN1bHRzKFtuZXdfbWFuaWZlc3Rd
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobmV3X21hbmlmZXN0LmlzX2VtcHR5KQorCisgICAg
QHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3RfdXBkYXRlXzEoc2VsZik6CisgICAgICAg
IHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCisgICAgICAgIHByZXZfZGF0YSA9IFsoInBh
dGgvdG8vdGVzdC5odG0uaW5pIiwgW3Rlc3RfaWRdLCAiIiJbdGVzdC5odG1dCisgIHR5cGU6IHRl
c3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogRVJST1IiIiIpXQorCisgICAgICAg
IG5ld19kYXRhID0gc2VsZi5jcmVhdGVfbG9nKCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
IkVSUk9SIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5k
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pKQorICAgICAgICB1cGRhdGVyID0gc2VsZi5j
cmVhdGVfdXBkYXRlcihwcmV2X2RhdGEpCisgICAgICAgIHVwZGF0ZXIudXBkYXRlX2Zyb21fbG9n
KG5ld19kYXRhKQorCisgICAgICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZXIuZXhwZWN0ZWRfdHJl
ZVsicGF0aC90by90ZXN0Lmh0bS5pbmkiXQorICAgICAgICBzZWxmLmNvYWxlc2NlX3Jlc3VsdHMo
W25ld19tYW5pZmVzdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV3X21hbmlmZXN0Lmlz
X2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rlc3Qo
dGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KCJleHBlY3RlZCIpLCAiRkFJTCIpCisKKyAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwKKyAgICBkZWYgdGVzdF9uZXdfc3VidGVzdChzZWxmKToKKyAgICAgICAg
dGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKKyAgICAgICAgcHJldl9kYXRhID0gWygicGF0
aC90by90ZXN0Lmh0bS5pbmkiLCBbdGVzdF9pZF0sICIiIlt0ZXN0Lmh0bV0KKyAgdHlwZTogdGVz
dGhhcm5lc3MKKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBGQUlMIiIiKV0KKworICAgICAgICBu
ZXdfZGF0YSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lk
fSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJG
QUlMIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVz
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2Vu
ZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KSkKKyAgICAgICAgdXBkYXRlciA9IHNlbGYu
Y3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhKQorICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xv
ZyhuZXdfZGF0YSkKKworICAgICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVyLmV4cGVjdGVkX3Ry
ZWVbInBhdGgvdG8vdGVzdC5odG0uaW5pIl0KKyAgICAgICAgc2VsZi5jb2FsZXNjZV9yZXN1bHRz
KFtuZXdfbWFuaWZlc3RdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5ld19tYW5pZmVzdC5p
c19lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgiZXhwZWN0ZWQiKSwgIkZBSUwiKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5b
MV0uZ2V0KCJleHBlY3RlZCIpLCAiRkFJTCIpCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAg
ICBkZWYgdGVzdF91cGRhdGVfbXVsdGlwbGVfMChzZWxmKToKKyAgICAgICAgdGVzdF9pZCA9ICIv
cGF0aC90by90ZXN0Lmh0bSIKKyAgICAgICAgcHJldl9kYXRhID0gWygicGF0aC90by90ZXN0Lmh0
bS5pbmkiLCBbdGVzdF9pZF0sICIiIlt0ZXN0Lmh0bV0KKyAgdHlwZTogdGVzdGhhcm5lc3MKKyAg
W3Rlc3QxXQorICAgIGV4cGVjdGVkOiBGQUlMIiIiKV0KKworICAgICAgICBuZXdfZGF0YV8wID0g
c2VsZi5jcmVhdGVfbG9nKCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0Ijog
dGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJ
TCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pCisKKyAg
ICAgICAgbmV3X2RhdGFfMSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3Qi
OiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJ
TUVPVVQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxz
ZSwgIm9zIjogImxpbnV4In0pCisgICAgICAgIHVwZGF0ZXIgPSBzZWxmLmNyZWF0ZV91cGRhdGVy
KHByZXZfZGF0YSkKKworICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8w
KQorICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8xKQorCisgICAgICAg
IG5ld19tYW5pZmVzdCA9IHVwZGF0ZXIuZXhwZWN0ZWRfdHJlZVsicGF0aC90by90ZXN0Lmh0bS5p
bmkiXQorCisgICAgICAgIHNlbGYuY29hbGVzY2VfcmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKwor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5ld19tYW5pZmVzdC5pc19lbXB0eSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVu
WzBdLmdldCgKKyAgICAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjog
Im9zeCJ9KSwgIkZBSUwiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3Qu
Z2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVk
IiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSksICJUSU1FT1VUIikKKworICAgIEBw
eXRlc3QubWFyay54ZmFpbAorICAgIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8xKHNlbGYpOgor
ICAgICAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgorICAgICAgICBwcmV2X2RhdGEg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtLmluaSIsIFt0ZXN0X2lkXSwgIiIiW3Rlc3QuaHRtXQorICB0
eXBlOiB0ZXN0aGFybmVzcworICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQorCisg
ICAgICAgIG5ld19kYXRhXzAgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJG
QUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17ImRlYnVnIjogRmFsc2Us
ICJvcyI6ICJvc3gifSkKKworICAgICAgICBuZXdfZGF0YV8xID0gc2VsZi5jcmVhdGVfbG9nKCgi
dGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0Ijog
InRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm89eyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSkKKyAgICAgICAgdXBkYXRlciA9
IHNlbGYuY3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhKQorCisgICAgICAgIHVwZGF0ZXIudXBkYXRl
X2Zyb21fbG9nKG5ld19kYXRhXzApCisgICAgICAgIHVwZGF0ZXIudXBkYXRlX2Zyb21fbG9nKG5l
d19kYXRhXzEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlci5leHBlY3RlZF90cmVl
WyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisKKyAgICAgICAgc2VsZi5jb2FsZXNjZV9yZXN1bHRz
KFtuZXdfbWFuaWZlc3RdKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV3X21hbmlmZXN0
LmlzX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVkIiwgeyJk
ZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pLCAiRkFJTCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisg
ICAgICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJsaW51eCJ9KSwg
IlRJTUVPVVQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVkIiwgeyJk
ZWJ1ZyI6IEZhbHNlLCAib3MiOiAid2luZG93cyJ9KSwgIkZBSUwiKQorCisgICAgQHB5dGVzdC5t
YXJrLnhmYWlsCisgICAgZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzIoc2VsZik6CisgICAgICAg
IHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCisgICAgICAgIHByZXZfZGF0YSA9IFsoInBh
dGgvdG8vdGVzdC5odG0uaW5pIiwgW3Rlc3RfaWRdLCAiIiJbdGVzdC5odG1dCisgIHR5cGU6IHRl
c3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogRkFJTCIiIildCisKKyAgICAgICAg
bmV3X2RhdGFfMCA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1
cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwgIm9zIjog
Im9zeCJ9KQorCisgICAgICAgIG5ld19kYXRhXzEgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0
YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17
ImRlYnVnIjogVHJ1ZSwgIm9zIjogIm9zeCJ9KQorICAgICAgICB1cGRhdGVyID0gc2VsZi5jcmVh
dGVfdXBkYXRlcihwcmV2X2RhdGEpCisKKyAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2co
bmV3X2RhdGFfMCkKKyAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2cobmV3X2RhdGFfMSkK
KworICAgICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVyLmV4cGVjdGVkX3RyZWVbInBhdGgvdG8v
dGVzdC5odG0uaW5pIl0KKworICAgICAgICBzZWxmLmNvYWxlc2NlX3Jlc3VsdHMoW25ld19tYW5p
ZmVzdF0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShuZXdfbWFuaWZlc3QuaXNfZW1wdHkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lk
KS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogRmFs
c2UsICJvcyI6ICJvc3gifSksICJGQUlMIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobmV3
X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgICAg
ICJleHBlY3RlZCIsIHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pLCAiVElNRU9VVCIpCisK
KyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICBkZWYgdGVzdF91cGRhdGVfbXVsdGlwbGVfMyhz
ZWxmKToKKyAgICAgICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKKyAgICAgICAgcHJl
dl9kYXRhID0gWygicGF0aC90by90ZXN0Lmh0bS5pbmkiLCBbdGVzdF9pZF0sICIiIlt0ZXN0Lmh0
bV0KKyAgdHlwZTogdGVzdGhhcm5lc3MKKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOgorICAgICAg
aWYgZGVidWc6IEZBSUwKKyAgICAgIGlmIG5vdCBkZWJ1ZyBhbmQgb3MgPT0gIm9zeCI6IFRJTUVP
VVQiIiIpXQorCisgICAgICAgIG5ld19kYXRhXzAgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0
YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJP
SyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17ImRl
YnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkKKworICAgICAgICBuZXdfZGF0YV8xID0gc2VsZi5j
cmVhdGVfbG9nKCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSkKKyAgICAgICAg
dXBkYXRlciA9IHNlbGYuY3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhKQorCisgICAgICAgIHVwZGF0
ZXIudXBkYXRlX2Zyb21fbG9nKG5ld19kYXRhXzApCisgICAgICAgIHVwZGF0ZXIudXBkYXRlX2Zy
b21fbG9nKG5ld19kYXRhXzEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlci5leHBl
Y3RlZF90cmVlWyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisKKyAgICAgICAgc2VsZi5jb2FsZXNj
ZV9yZXN1bHRzKFtuZXdfbWFuaWZlc3RdKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV3
X21hbmlmZXN0LmlzX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVj
dGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pLCAiRkFJTCIpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblsw
XS5nZXQoCisgICAgICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogVHJ1ZSwgIm9zIjogIm9z
eCJ9KSwgIlRJTUVPVVQiKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3Rf
dXBkYXRlX2lnbm9yZV9leGlzdGluZyhzZWxmKToKKyAgICAgICAgdGVzdF9pZCA9ICIvcGF0aC90
by90ZXN0Lmh0bSIKKyAgICAgICAgcHJldl9kYXRhID0gWygicGF0aC90by90ZXN0Lmh0bS5pbmki
LCBbdGVzdF9pZF0sICIiIlt0ZXN0Lmh0bV0KKyAgdHlwZTogdGVzdGhhcm5lc3MKKyAgW3Rlc3Qx
XQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgZGVidWc6IFRJTUVPVVQKKyAgICAgIGlmIG5vdCBk
ZWJ1ZyBhbmQgb3MgPT0gIm9zeCI6IE5PVFJVTiIiIildCisKKyAgICAgICAgbmV3X2RhdGFfMCA9
IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBB
U1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4In0pCisK
KyAgICAgICAgbmV3X2RhdGFfMSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRl
c3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBUcnVl
LCAib3MiOiAid2luZG93cyJ9KQorICAgICAgICB1cGRhdGVyID0gc2VsZi5jcmVhdGVfdXBkYXRl
cihwcmV2X2RhdGEsIGlnbm9yZV9leGlzdGluZz1UcnVlKQorCisgICAgICAgIHVwZGF0ZXIudXBk
YXRlX2Zyb21fbG9nKG5ld19kYXRhXzApCisgICAgICAgIHVwZGF0ZXIudXBkYXRlX2Zyb21fbG9n
KG5ld19kYXRhXzEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlci5leHBlY3RlZF90
cmVlWyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisKKyAgICAgICAgc2VsZi5jb2FsZXNjZV9yZXN1
bHRzKFtuZXdfbWFuaWZlc3RdKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV3X21hbmlm
ZXN0LmlzX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0
X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVkIiwg
eyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSksICJGQUlMIikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgK
KyAgICAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KSwg
IkZBSUwiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3ZmJjNTI0YjA2
N2M2MGZlNjRlNDEwZWNmY2JhZjM5Mzc3OTIzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9jaHVua2VyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3RfcHJvZHVjdHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2luaXRfXy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OWRhYzZiY2NjY2E3ZWUxNzUyMDEzY2NiNmZlNGFkODY2MDc1ZjMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2luaXRfXy5weQpAQCAtMCww
ICsxLDQ2IEBACitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSBtb3psb2cuc3RydWN0dXJl
ZCBpbXBvcnQgc3RydWN0dXJlZGxvZywgY29tbWFuZGxpbmUKKworZnJvbSAuLiBpbXBvcnQgd3B0
Y29tbWFuZGxpbmUKKworZnJvbSB1cGRhdGUgaW1wb3J0IFdQVFVwZGF0ZQorCitkZWYgcmVtb3Zl
X2xvZ2dpbmdfYXJncyhhcmdzKToKKyAgICAiIiJUYWtlIGxvZ2dpbmcgYXJncyBvdXQgb2YgdGhl
IGRpY3Rpb25hcnkgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBzbworICAgIHRoZXkgYXJlIG5v
dCBwYXNzZWQgaW4gYXMga3dhcmdzIHRvIHRoZSB1cGRhdGUgY29kZS4gVGhpcyBpcyBwYXJ0aWN1
bGFybHkKKyAgICBuZWNlc3NhcnkgaGVyZSBiZWNhdXNlIHRoZSBhcmd1bWVudHMgYXJlIG9mdGVu
IG9mIHR5cGUgZmlsZSwgd2hpY2ggY2Fubm90CisgICAgYmUgc2VyaWFsaXplZC4KKworICAgIDpw
YXJhbSBhcmdzOiBEaWN0aW9uYXJ5IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgIiIi
CisgICAgZm9yIG5hbWUgaW4gYXJncy5rZXlzKCk6CisgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0
aCgibG9nXyIpOgorICAgICAgICAgICAgYXJncy5wb3AobmFtZSkKKworCitkZWYgc2V0dXBfbG9n
Z2luZyhhcmdzLCBkZWZhdWx0cyk6CisgICAgIiIiVXNlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1l
bnRzIHRvIHNldCB1cCB0aGUgbG9nZ2VyLgorCisgICAgOnBhcmFtIGFyZ3M6IERpY3Rpb25hcnkg
b2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKyAgICA6cGFyYW0gZGVmYXVsdHM6IERpY3Rpb25h
cnkgb2Yge2Zvcm1hdHRlcl9uYW1lOiBzdHJlYW19IHRvIHVzZSBpZgorICAgICAgICAgICAgICAg
ICAgICAgbm8gY29tbWFuZCBsaW5lIGxvZ2dpbmcgaXMgc3BlY2lmaWVkIiIiCisgICAgbG9nZ2Vy
ID0gY29tbWFuZGxpbmUuc2V0dXBfbG9nZ2luZygid2ViLXBsYXRmb3JtLXRlc3RzLXVwZGF0ZSIs
IGFyZ3MsIGRlZmF1bHRzKQorCisgICAgcmVtb3ZlX2xvZ2dpbmdfYXJncyhhcmdzKQorCisgICAg
cmV0dXJuIGxvZ2dlcgorCisKK2RlZiBydW5fdXBkYXRlKGxvZ2dlciwgKiprd2FyZ3MpOgorICAg
IHVwZGF0ZXIgPSBXUFRVcGRhdGUobG9nZ2VyLCAqKmt3YXJncykKKyAgICByZXR1cm4gdXBkYXRl
ci5ydW4oKQorCisKK2RlZiBtYWluKCk6CisgICAgYXJncyA9IHdwdGNvbW1hbmRsaW5lLnBhcnNl
X2FyZ3NfdXBkYXRlKCkKKyAgICBsb2dnZXIgPSBzZXR1cF9sb2dnaW5nKGFyZ3MsIHsibWFjaCI6
IHN5cy5zdGRvdXR9KQorICAgIGFzc2VydCBzdHJ1Y3R1cmVkbG9nLmdldF9kZWZhdWx0X2xvZ2dl
cigpIGlzIG5vdCBOb25lCisgICAgc3VjY2VzcyA9IHJ1bl91cGRhdGUobG9nZ2VyLCAqKmFyZ3Mp
CisgICAgc3lzLmV4aXQoMCBpZiBzdWNjZXNzIGVsc2UgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvYmFzZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NDc4MDhlNTI5MzMwZTNjMTBlNjFmNTBlN2RjYjgwYTgzOGYyODk3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5CkBAIC0wLDAgKzEsNjUgQEAKK2V4
aXRfdW5jbGVhbiA9IG9iamVjdCgpCitleGl0X2NsZWFuID0gb2JqZWN0KCkKKworCitjbGFzcyBT
dGVwKG9iamVjdCk6CisgICAgcHJvdmlkZXMgPSBbXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlcik6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisKKyAgICBkZWYgcnVuKHNl
bGYsIHN0ZXBfaW5kZXgsIHN0YXRlKToKKyAgICAgICAgIiIiQmFzZSBjbGFzcyBmb3Igc3RhdGUt
Y3JlYXRpbmcgc3RlcHMuCisKKyAgICAgICAgV2hlbiBhIFN0ZXAgaXMgcnVuKCkgdGhlIGN1cnJl
bnQgc3RhdGUgaXMgY2hlY2tlZCB0byBzZWUKKyAgICAgICAgaWYgdGhlIHN0YXRlIGZyb20gdGhp
cyBzdGVwIGhhcyBhbHJlYWR5IGJlZW4gY3JlYXRlZC4gSWYgaXQKKyAgICAgICAgaGFzIHRoZSBy
ZXN0b3JlKCkgbWV0aG9kIGlzIGludm9rZWQuIE90aGVyd2lzZSB0aGUgY3JlYXRlKCkKKyAgICAg
ICAgbWV0aG9kIGlzIGludm9rZWQgd2l0aCB0aGUgc3RhdGUgb2JqZWN0LiBUaGlzIGlzIGV4cGVj
dGVkIHRvCisgICAgICAgIGFkZCBpdGVtcyB3aXRoIGFsbCB0aGUga2V5cyBpbiBfX2NsYXNzX18u
cHJvdmlkZXMgdG8gdGhlIHN0YXRlCisgICAgICAgIG9iamVjdC4KKyAgICAgICAgIiIiCisKKyAg
ICAgICAgbmFtZSA9IHNlbGYuX19jbGFzc19fLl9fbmFtZV9fCisKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc3RvcmVkX3N0ZXAgPSBzdGF0ZS5zdGVwc1tzdGVwX2luZGV4XQorICAgICAgICBl
eGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgIHN0b3JlZF9zdGVwID0gTm9uZQorCisgICAg
ICAgIGlmIHN0b3JlZF9zdGVwID09IG5hbWU6CisgICAgICAgICAgICBzZWxmLnJlc3RvcmUoc3Rh
dGUpCisgICAgICAgIGVsaWYgc3RvcmVkX3N0ZXAgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYu
Y3JlYXRlKHN0YXRlKQorICAgICAgICAgICAgYXNzZXJ0IHNldChzZWxmLnByb3ZpZGVzKS5pc3N1
YnNldChzZXQoc3RhdGUua2V5cygpKSkKKyAgICAgICAgICAgIHN0YXRlLnN0ZXBzID0gc3RhdGUu
c3RlcHMgKyBbbmFtZV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIkV4cGVjdGVkIGEgJXMgc3RlcCwgZ290IGEgJXMgc3RlcCIgJSAobmFtZSwgc3RvcmVkX3N0
ZXApKQorCisgICAgZGVmIGNyZWF0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHJlc3RvcmUoc2VsZiwgc3RhdGUpOgorICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiU3RlcCAlcyB1c2luZyBzdG9yZWQgc3RhdGUiICUgKHNlbGYuX19j
bGFzc19fLl9fbmFtZV9fLCkpCisgICAgICAgIGZvciBrZXkgaW4gc2VsZi5wcm92aWRlczoKKyAg
ICAgICAgICAgIGFzc2VydCBrZXkgaW4gc3RhdGUKKworCitjbGFzcyBTdGVwUnVubmVyKG9iamVj
dCk6CisgICAgc3RlcHMgPSBbXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgc3Rh
dGUpOgorICAgICAgICAiIiJDbGFzcyB0aGF0IHJ1bnMgYSBzcGVjaWZpZWQgc2VyaWVzIG9mIFN0
ZXBzIHdpdGggYSBjb21tb24gU3RhdGUiIiIKKyAgICAgICAgc2VsZi5zdGF0ZSA9IHN0YXRlCisg
ICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIGlmICJzdGVwcyIgbm90IGluIHN0
YXRlOgorICAgICAgICAgICAgc3RhdGUuc3RlcHMgPSBbXQorCisgICAgZGVmIHJ1bihzZWxmKToK
KyAgICAgICAgcnYgPSBOb25lCisgICAgICAgIGZvciBzdGVwX2luZGV4LCBzdGVwIGluIGVudW1l
cmF0ZShzZWxmLnN0ZXBzKToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGlu
ZyBzdGVwICVzIiAlIHN0ZXAuX19uYW1lX18pCisgICAgICAgICAgICBydiA9IHN0ZXAoc2VsZi5s
b2dnZXIpLnJ1bihzdGVwX2luZGV4LCBzZWxmLnN0YXRlKQorICAgICAgICAgICAgaWYgcnYgaW4g
KGV4aXRfY2xlYW4sIGV4aXRfdW5jbGVhbik6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
ICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvbWV0YWRhdGEu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3MGVjNjFh
OWIzYTkyYTI2MDEyYjVlYmZhZGNkY2JiYTVlMDg5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5CkBAIC0wLDAgKzEsNzIgQEAKK2ltcG9ydCBvcwor
Citmcm9tIC4uIGltcG9ydCBtZXRhZGF0YSwgcHJvZHVjdHMKKworZnJvbSBiYXNlIGltcG9ydCBT
dGVwLCBTdGVwUnVubmVyCisKKworY2xhc3MgR2V0VXBkYXRlUHJvcGVydHlMaXN0KFN0ZXApOgor
ICAgIHByb3ZpZGVzID0gWyJwcm9wZXJ0eV9vcmRlciIsICJib29sZWFuX3Byb3BlcnRpZXMiXQor
CisgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAgIHByb3BlcnR5X29yZGVyLCBi
b29sZWFuX3Byb3BlcnRpZXMgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3RfdXBkYXRlKAorICAgICAg
ICAgICAgc3RhdGUuY29uZmlnLCBzdGF0ZS5wcm9kdWN0KQorICAgICAgICBzdGF0ZS5wcm9wZXJ0
eV9vcmRlciA9IHByb3BlcnR5X29yZGVyICsgc3RhdGUuZXh0cmFfcHJvcGVydGllcworICAgICAg
ICBzdGF0ZS5ib29sZWFuX3Byb3BlcnRpZXMgPSBib29sZWFuX3Byb3BlcnRpZXMKKworCitjbGFz
cyBVcGRhdGVFeHBlY3RlZChTdGVwKToKKyAgICAiIiJEbyB0aGUgbWV0YWRhdGEgdXBkYXRlIG9u
IHRoZSBsb2NhbCBjaGVja291dCIiIgorCisgICAgcHJvdmlkZXMgPSBbIm5lZWRzX2h1bWFuIl0K
KworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBzdGF0ZS5zeW5jX3Ry
ZWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzeW5jX3Jvb3QgPSBzdGF0ZS5zeW5jX3RyZWUu
cm9vdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3luY19yb290ID0gTm9uZQorCisgICAg
ICAgIHN0YXRlLm5lZWRzX2h1bWFuID0gbWV0YWRhdGEudXBkYXRlX2V4cGVjdGVkKHN0YXRlLnBh
dGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZS5zZXJ2ZV9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZS5ydW5fbG9nLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZfb2xkPU5vbmUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9leGlzdGluZz1z
dGF0ZS5pZ25vcmVfZXhpc3RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN5bmNfcm9vdD1zeW5jX3Jvb3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXN0YXRl
LnByb3BlcnR5X29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9c3RhdGUuYm9vbGVhbl9wcm9wZXJ0aWVz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGFiaWxpdHk9c3RhdGUuc3RhYmlsaXR5KQorCisKK2NsYXNzIENyZWF0ZU1ldGFkYXRhUGF0Y2go
U3RlcCk6CisgICAgIiIiQ3JlYXRlIGEgcGF0Y2gvY29tbWl0IGZvciB0aGUgbWV0YWRhdGEgY2hl
Y2tvdXQiIiIKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qg
c3RhdGUucGF0Y2g6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBsb2NhbF90cmVlID0g
c3RhdGUubG9jYWxfdHJlZQorICAgICAgICBzeW5jX3RyZWUgPSBzdGF0ZS5zeW5jX3RyZWUKKwor
ICAgICAgICBpZiBzeW5jX3RyZWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBuYW1lID0gIndl
Yi1wbGF0Zm9ybS10ZXN0c191cGRhdGVfJXNfbWV0YWRhdGEiICUgc3luY190cmVlLnJldgorICAg
ICAgICAgICAgbWVzc2FnZSA9ICJVcGRhdGUgJXMgZXhwZWN0ZWQgZGF0YSB0byByZXZpc2lvbiAl
cyIgJSAoc3RhdGUuc3VpdGVfbmFtZSwgc3luY190cmVlLnJldikKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIG5hbWUgPSAid2ViLXBsYXRmb3JtLXRlc3RzX3VwZGF0ZV9tZXRhZGF0YSIKKyAg
ICAgICAgICAgIG1lc3NhZ2UgPSAiVXBkYXRlICVzIGV4cGVjdGVkIGRhdGEiICUgc3RhdGUuc3Vp
dGVfbmFtZQorCisgICAgICAgIGxvY2FsX3RyZWUuY3JlYXRlX3BhdGNoKG5hbWUsIG1lc3NhZ2Up
CisKKyAgICAgICAgaWYgbm90IGxvY2FsX3RyZWUuaXNfY2xlYW46CisgICAgICAgICAgICBtZXRh
ZGF0YV9wYXRocyA9IFttYW5pZmVzdF9wYXRoWyJtZXRhZGF0YV9wYXRoIl0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciBtYW5pZmVzdF9wYXRoIGluIHN0YXRlLnBhdGhzLml0ZXJ2
YWx1ZXMoKV0KKyAgICAgICAgICAgIGZvciBwYXRoIGluIG1ldGFkYXRhX3BhdGhzOgorICAgICAg
ICAgICAgICAgIGxvY2FsX3RyZWUuYWRkX25ldyhvcy5wYXRoLnJlbHBhdGgocGF0aCwgbG9jYWxf
dHJlZS5yb290KSkKKyAgICAgICAgICAgIGxvY2FsX3RyZWUudXBkYXRlX3BhdGNoKGluY2x1ZGU9
bWV0YWRhdGFfcGF0aHMpCisgICAgICAgICAgICBsb2NhbF90cmVlLmNvbW1pdF9wYXRjaCgpCisK
KworY2xhc3MgTWV0YWRhdGFVcGRhdGVSdW5uZXIoU3RlcFJ1bm5lcik6CisgICAgIiIiKFN1YilS
dW5uZXIgZm9yIHVwZGF0aW5nIG1ldGFkYXRhIiIiCisgICAgc3RlcHMgPSBbR2V0VXBkYXRlUHJv
cGVydHlMaXN0LAorICAgICAgICAgICAgIFVwZGF0ZUV4cGVjdGVkLAorICAgICAgICAgICAgIENy
ZWF0ZU1ldGFkYXRhUGF0Y2hdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzQ1OWRhN2Uy
ZTVhNmI1ZGZkMDg4YjcxMWU0ZmE5YzdkNjkzYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQpAQCAtMCwwICsxLDEzNSBAQAoraW1wb3J0IG9zCitpbXBv
cnQgY1BpY2tsZSBhcyBwaWNrbGUKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLnNw
bGl0KF9fZmlsZV9fKVswXSkKKworY2xhc3MgU3RhdGUob2JqZWN0KToKKyAgICBmaWxlbmFtZSA9
IG9zLnBhdGguam9pbihoZXJlLCAiLndwdC11cGRhdGUubG9jayIpCisKKyAgICBkZWYgX19uZXdf
XyhjbHMsIGxvZ2dlcik6CisgICAgICAgIHJ2ID0gY2xzLmxvYWQobG9nZ2VyKQorICAgICAgICBp
ZiBydiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiRXhpc3Rpbmcgc3Rh
dGUgZm91bmQiKQorICAgICAgICAgICAgcmV0dXJuIHJ2CisKKyAgICAgICAgbG9nZ2VyLmRlYnVn
KCJObyBleGlzdGluZyBzdGF0ZSBmb3VuZCIpCisgICAgICAgIHJldHVybiBvYmplY3QuX19uZXdf
XyhjbHMsIGxvZ2dlcikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgorICAgICAg
ICAiIiJPYmplY3QgY29udGFpbmluZyBzdGF0ZSB2YXJpYWJsZXMgY3JlYXRlZCB3aGVuIHJ1bm5p
bmcgU3RlcHMuCisKKyAgICAgICAgT24gd3JpdGUgdGhlIHN0YXRlIGlzIHNlcmlhbGl6ZWQgdG8g
ZGlzaywgc3VjaCB0aGF0IGl0IGNhbiBiZSByZXN0b3JlZCBpbgorICAgICAgICB0aGUgZXZlbnQg
dGhhdCB0aGUgcHJvZ3JhbSBpcyBpbnRlcnJ1cHRlZCBiZWZvcmUgYWxsIHN0ZXBzIGFyZSBjb21w
bGV0ZS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgb25seSB3b3JrcyB3ZWxsIGlmIHRoZSB2YWx1
ZXMgYXJlIGltbXV0YWJsZTsgbXV0YXRpbmcgYW4KKyAgICAgICAgZXhpc3RpbmcgdmFsdWUgd2ls
bCBub3QgY2F1c2UgdGhlIGRhdGEgdG8gYmUgc2VyaWFsaXplZC4KKworICAgICAgICBWYXJpYWJs
ZXMgYXJlIHNldCBhbmQgZ2V0IGFzIGF0dHJpYnV0ZXMgZS5nLiBzdGF0ZV9vYmouc3BhbSA9ICJl
Z2dzIi4KKworICAgICAgICA6cGFyYW0gcGFyZW50OiBQYXJlbnQgU3RhdGUgb2JqZWN0IG9yIE5v
bmUgaWYgdGhpcyBpcyB0aGUgcm9vdCBvYmplY3QuCisgICAgICAgICIiIgorCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgIl9kYXRhIik6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBz
ZWxmLl9kYXRhID0gW3t9XQorICAgICAgICBzZWxmLl9sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAg
c2VsZi5faW5kZXggPSAwCisKKyAgICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICAgICBy
diA9IHNlbGYuX19kaWN0X18uY29weSgpCisgICAgICAgIGRlbCBydlsiX2xvZ2dlciJdCisgICAg
ICAgIHJldHVybiBydgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWQoY2xzLCBsb2dn
ZXIpOgorICAgICAgICAiIiJMb2FkIHNhdmVkIHN0YXRlIGZyb20gYSBmaWxlIiIiCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShjbHMuZmlsZW5hbWUpOgor
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICB3aXRoIG9wZW4oY2xzLmZp
bGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
cnYgPSBwaWNrbGUubG9hZChmKQorICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkxv
YWRpbmcgZGF0YSAlciIgJSAocnYuX2RhdGEsKSkKKyAgICAgICAgICAgICAgICAgICAgcnYuX2xv
Z2dlciA9IGxvZ2dlcgorICAgICAgICAgICAgICAgICAgICBydi5faW5kZXggPSAwCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoK
KyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZvdW5kIGVtcHR5IHN0YXRlIGZp
bGUiKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGxvZ2dlci5kZWJ1Zygi
SU9FcnJvciBsb2FkaW5nIHN0b3JlZCBzdGF0ZSIpCisKKyAgICBkZWYgcHVzaChzZWxmLCBpbml0
X3ZhbHVlcyk6CisgICAgICAgICIiIlB1c2ggYSBuZXcgY2xlYW4gc3RhdGUgZGljdGlvbmFyeQor
CisgICAgICAgIDpwYXJhbSBpbml0X3ZhbHVlczogTGlzdCBvZiB2YXJpYWJsZSBuYW1lcyBpbiB0
aGUgY3VycmVudCBzdGF0ZSBkaWN0IHRvIGNvcHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnRvIHRoZSBuZXcgc3RhdGUgZGljdC4iIiIKKworICAgICAgICByZXR1cm4gU3RhdGVDb250
ZXh0KHNlbGYsIGluaXRfdmFsdWVzKQorCisgICAgZGVmIHNhdmUoc2VsZik6CisgICAgICAgICIi
IldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVu
YW1lLCAidyIpIGFzIGY6CisgICAgICAgICAgICBwaWNrbGUuZHVtcChzZWxmLCBmKQorCisgICAg
ZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2RhdGEpID09IDEg
YW5kIHNlbGYuX2RhdGFbMF0gPT0ge30KKworICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAg
IiIiUmVtb3ZlIGFsbCBzdGF0ZSBhbmQgZGVsZXRlIHRoZSBzdG9yZWQgY29weS4iIiIKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCisgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLl9kYXRhID0gW3t9
XQorCisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIGlm
IGtleS5zdGFydHN3aXRoKCJfIik6CisgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2Vs
Ziwga2V5LCB2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2RhdGFbc2Vs
Zi5faW5kZXhdW2tleV0gPSB2YWx1ZQorICAgICAgICAgICAgc2VsZi5zYXZlKCkKKworICAgIGRl
ZiBfX2dldGF0dHJfXyhzZWxmLCBrZXkpOgorICAgICAgICBpZiBrZXkuc3RhcnRzd2l0aCgiXyIp
OgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5faW5kZXhdW2tleV0KKyAgICAgICAgZXhjZXB0
IEtleUVycm9yOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IKKworICAgIGRlZiBf
X2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLl9kYXRh
W3NlbGYuX2luZGV4XQorCisgICAgZGVmIHVwZGF0ZShzZWxmLCBpdGVtcyk6CisgICAgICAgICIi
IkFkZCBhIGRpY3Rpb25hcnkgb2Yge25hbWU6IHZhbHVlfSBwYWlycyB0byB0aGUgc3RhdGUiIiIK
KyAgICAgICAgc2VsZi5fZGF0YVtzZWxmLl9pbmRleF0udXBkYXRlKGl0ZW1zKQorICAgICAgICBz
ZWxmLnNhdmUoKQorCisgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9k
YXRhW3NlbGYuX2luZGV4XS5rZXlzKCkKKworY2xhc3MgU3RhdGVDb250ZXh0KG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXRlLCBpbml0X3ZhbHVlcyk6CisgICAgICAgIHNlbGYu
c3RhdGUgPSBzdGF0ZQorICAgICAgICBzZWxmLmluaXRfdmFsdWVzID0gaW5pdF92YWx1ZXMKKwor
ICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmLnN0YXRlLl9kYXRh
KSA9PSBzZWxmLnN0YXRlLl9pbmRleCArIDE6CisgICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGNh
c2Ugd2hlcmUgdGhlcmUgaXMgbm8gc3RvcmVkIHN0YXRlCisgICAgICAgICAgICBuZXdfc3RhdGUg
PSB7fQorICAgICAgICAgICAgZm9yIGtleSBpbiBzZWxmLmluaXRfdmFsdWVzOgorICAgICAgICAg
ICAgICAgIG5ld19zdGF0ZVtrZXldID0gc2VsZi5zdGF0ZS5fZGF0YVtzZWxmLnN0YXRlLl9pbmRl
eF1ba2V5XQorICAgICAgICAgICAgc2VsZi5zdGF0ZS5fZGF0YS5hcHBlbmQobmV3X3N0YXRlKQor
ICAgICAgICBzZWxmLnN0YXRlLl9pbmRleCArPSAxCisgICAgICAgIHNlbGYuc3RhdGUuX2xvZ2dl
ci5kZWJ1ZygiSW5jcmVtZW50ZWQgaW5kZXggdG8gJXMiICUgc2VsZi5zdGF0ZS5faW5kZXgpCisK
KyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgbGVu
KHNlbGYuc3RhdGUuX2RhdGEpID4gMToKKyAgICAgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlLl9p
bmRleCA9PSBsZW4oc2VsZi5zdGF0ZS5fZGF0YSkgLSAxCisgICAgICAgICAgICBzZWxmLnN0YXRl
Ll9kYXRhLnBvcCgpCisgICAgICAgICAgICBzZWxmLnN0YXRlLl9pbmRleCAtPSAxCisgICAgICAg
ICAgICBzZWxmLnN0YXRlLl9sb2dnZXIuZGVidWcoIkRlY3JlbWVudGVkIGluZGV4IHRvICVzIiAl
IHNlbGYuc3RhdGUuX2luZGV4KQorICAgICAgICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUuX2luZGV4
ID49IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRyaWVk
IHRvIHBvcCB0aGUgdG9wIHN0YXRlIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUv
c3luYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjY2MGU1
YTMzZWMzYTI2MDJlZjVmN2IxOTQyNTNjY2IyYTdkNDM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5CkBAIC0wLDAgKzEsMTk3IEBACitpbXBvcnQgZm5tYXRj
aAoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMKK2ltcG9y
dCB1dWlkCisKK2Zyb20gLi4gaW1wb3J0IHRlc3Rsb2FkZXIKKworZnJvbSBiYXNlIGltcG9ydCBT
dGVwLCBTdGVwUnVubmVyCitmcm9tIHRyZWUgaW1wb3J0IENvbW1pdAorCitoZXJlID0gb3MucGF0
aC5hYnNwYXRoKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQorCitic2RfbGljZW5zZSA9ICIi
IlczQyAzLWNsYXVzZSBCU0QgTGljZW5zZQorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKK21l
dDoKKworKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygd29ya3MgbXVzdCByZXRhaW4gdGhlIG9yaWdpbmFs
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKyAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisKKyogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBvcmlnaW5hbCBjb3B5cmlnaHQKKyAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorCisqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFczQyBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlCisgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHdvcmsgd2l0aG91dAorICBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisKKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMKK0lTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCitMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCitJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
K0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFCitQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyIiIgorCisK
K2RlZiBjb3B5X3dwdF90cmVlKHRyZWUsIGRlc3QsIGV4Y2x1ZGVzPU5vbmUsIGluY2x1ZGVzPU5v
bmUpOgorICAgICIiIkNvcHkgdGhlIHdvcmtpbmcgY29weSBvZiBhIFRyZWUgdG8gYSBkZXN0aW5h
dGlvbiBkaXJlY3RvcnkuCisKKyAgICA6cGFyYW0gdHJlZTogVGhlIFRyZWUgdG8gY29weS4KKyAg
ICA6cGFyYW0gZGVzdDogVGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSIiIgorICAgIGlmIG9zLnBh
dGguZXhpc3RzKGRlc3QpOgorICAgICAgICBhc3NlcnQgb3MucGF0aC5pc2RpcihkZXN0KQorCisg
ICAgc2h1dGlsLnJtdHJlZShkZXN0KQorCisgICAgb3MubWtkaXIoZGVzdCkKKworICAgIGlmIGV4
Y2x1ZGVzIGlzIE5vbmU6CisgICAgICAgIGV4Y2x1ZGVzID0gW10KKworICAgIGV4Y2x1ZGVzID0g
W3JlLmNvbXBpbGUoZm5tYXRjaC50cmFuc2xhdGUoaXRlbSkpIGZvciBpdGVtIGluIGV4Y2x1ZGVz
XQorCisgICAgaWYgaW5jbHVkZXMgaXMgTm9uZToKKyAgICAgICAgaW5jbHVkZXMgPSBbXQorCisg
ICAgaW5jbHVkZXMgPSBbcmUuY29tcGlsZShmbm1hdGNoLnRyYW5zbGF0ZShpdGVtKSkgZm9yIGl0
ZW0gaW4gaW5jbHVkZXNdCisKKyAgICBmb3IgdHJlZV9wYXRoIGluIHRyZWUucGF0aHMoKToKKyAg
ICAgICAgaWYgKGFueShpdGVtLm1hdGNoKHRyZWVfcGF0aCkgZm9yIGl0ZW0gaW4gZXhjbHVkZXMp
IGFuZAorICAgICAgICAgICAgbm90IGFueShpdGVtLm1hdGNoKHRyZWVfcGF0aCkgZm9yIGl0ZW0g
aW4gaW5jbHVkZXMpKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgc291cmNlX3Bh
dGggPSBvcy5wYXRoLmpvaW4odHJlZS5yb290LCB0cmVlX3BhdGgpCisgICAgICAgIGRlc3RfcGF0
aCA9IG9zLnBhdGguam9pbihkZXN0LCB0cmVlX3BhdGgpCisKKyAgICAgICAgZGVzdF9kaXIgPSBv
cy5wYXRoLnNwbGl0KGRlc3RfcGF0aClbMF0KKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIo
c291cmNlX3BhdGgpOgorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRlc3RfZGly
KToKKyAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhkZXN0X2RpcikKKyAgICAgICAgICAgIHNo
dXRpbC5jb3B5Mihzb3VyY2VfcGF0aCwgZGVzdF9wYXRoKQorCisgICAgZm9yIHNvdXJjZSwgZGVz
dGluYXRpb24gaW4gWygidGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiLCAiIiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdGRyaXZlci12ZW5kb3IuanMiLCAicmVzb3VyY2Vz
LyIpXToKKyAgICAgICAgc291cmNlX3BhdGggPSBvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGly
LCBzb3VyY2UpCisgICAgICAgIGRlc3RfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCBkZXN0aW5h
dGlvbiwgb3MucGF0aC5zcGxpdChzb3VyY2UpWzFdKQorICAgICAgICBzaHV0aWwuY29weTIoc291
cmNlX3BhdGgsIGRlc3RfcGF0aCkKKworICAgIGFkZF9saWNlbnNlKGRlc3QpCisKKworZGVmIGFk
ZF9saWNlbnNlKGRlc3QpOgorICAgICIiIldyaXRlIHRoZSBic2QgbGljZW5zZSBzdHJpbmcgdG8g
YSBMSUNFTlNFIGZpbGUuCisKKyAgICA6cGFyYW0gZGVzdDogRGlyZWN0b3J5IGluIHdoaWNoIHRv
IHBsYWNlIHRoZSBMSUNFTlNFIGZpbGUuIiIiCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihk
ZXN0LCAiTElDRU5TRSIpLCAidyIpIGFzIGY6CisgICAgICAgIGYud3JpdGUoYnNkX2xpY2Vuc2Up
CisKKworY2xhc3MgVXBkYXRlQ2hlY2tvdXQoU3RlcCk6CisgICAgIiIiUHVsbCBjaGFuZ2VzIGZy
b20gdXBzdHJlYW0gaW50byB0aGUgbG9jYWwgc3luYyB0cmVlLiIiIgorCisgICAgcHJvdmlkZXMg
PSBbImxvY2FsX2JyYW5jaCJdCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAg
ICAgc3luY190cmVlID0gc3RhdGUuc3luY190cmVlCisgICAgICAgIHN0YXRlLmxvY2FsX2JyYW5j
aCA9IHV1aWQudXVpZDQoKS5oZXgKKyAgICAgICAgc3luY190cmVlLnVwZGF0ZShzdGF0ZS5zeW5j
WyJyZW1vdGVfdXJsIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3luY1siYnJh
bmNoIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUubG9jYWxfYnJhbmNoKQorICAg
ICAgICBzeW5jX3BhdGggPSBvcy5wYXRoLmFic3BhdGgoc3luY190cmVlLnJvb3QpCisgICAgICAg
IGlmIHN5bmNfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgICAgICAgICAgICBmcm9tIHVwZGF0ZSBp
bXBvcnQgc2V0dXBfcGF0aHMKKyAgICAgICAgICAgIHNldHVwX3BhdGhzKHN5bmNfcGF0aCkKKwor
ICAgIGRlZiByZXN0b3JlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgYXNzZXJ0IG9zLnBhdGguYWJz
cGF0aChzdGF0ZS5zeW5jX3RyZWUucm9vdCkgaW4gc3lzLnBhdGgKKyAgICAgICAgU3RlcC5yZXN0
b3JlKHNlbGYsIHN0YXRlKQorCisKK2NsYXNzIEdldFN5bmNUYXJnZXRDb21taXQoU3RlcCk6Cisg
ICAgIiIiRmluZCB0aGUgY29tbWl0IHRoYXQgd2Ugd2lsbCBzeW5jIHRvLiIiIgorCisgICAgcHJv
dmlkZXMgPSBbInN5bmNfY29tbWl0Il0KKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgor
ICAgICAgICBpZiBzdGF0ZS50YXJnZXRfcmV2IGlzIE5vbmU6CisgICAgICAgICAgICAjVXNlIHVw
c3RyZWFtIGJyYW5jaCBIRUFEIGFzIHRoZSBiYXNlIGNvbW1pdAorICAgICAgICAgICAgc3RhdGUu
c3luY19jb21taXQgPSBzdGF0ZS5zeW5jX3RyZWUuZ2V0X3JlbW90ZV9zaGExKHN0YXRlLnN5bmNb
InJlbW90ZV91cmwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5zeW5jWyJicmFuY2giXSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHN0YXRlLnN5bmNfY29tbWl0ID0gQ29tbWl0KHN0YXRlLnN5bmNfdHJl
ZSwgc3RhdGUucmV2KQorCisgICAgICAgIHN0YXRlLnN5bmNfdHJlZS5jaGVja291dChzdGF0ZS5z
eW5jX2NvbW1pdC5zaGExLCBzdGF0ZS5sb2NhbF9icmFuY2gsIGZvcmNlPVRydWUpCisgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJOZXcgYmFzZSBjb21taXQgaXMgJXMiICUgc3RhdGUuc3luY19j
b21taXQuc2hhMSkKKworCitjbGFzcyBMb2FkTWFuaWZlc3QoU3RlcCk6CisgICAgIiIiTG9hZCB0
aGUgdGVzdCBtYW5pZmVzdCIiIgorCisgICAgcHJvdmlkZXMgPSBbIm1hbmlmZXN0X3BhdGgiLCAi
dGVzdF9tYW5pZmVzdCJdCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAg
ZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKKyAgICAgICAgc3RhdGUubWFuaWZlc3RfcGF0
aCA9IG9zLnBhdGguam9pbihzdGF0ZS5tZXRhZGF0YV9wYXRoLCAiTUFOSUZFU1QuanNvbiIpCisg
ICAgICAgIHN0YXRlLnRlc3RfbWFuaWZlc3QgPSBtYW5pZmVzdC5NYW5pZmVzdCgiLyIpCisKKwor
Y2xhc3MgVXBkYXRlTWFuaWZlc3QoU3RlcCk6CisgICAgIiIiVXBkYXRlIHRoZSBtYW5pZmVzdCB0
byBtYXRjaCB0aGUgdGVzdHMgaW4gdGhlIHN5bmMgdHJlZSBjaGVja291dCIiIgorCisgICAgZGVm
IGNyZWF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlm
ZXN0LCB1cGRhdGUKKyAgICAgICAgdXBkYXRlLnVwZGF0ZShzdGF0ZS5zeW5jWyJwYXRoIl0sIHN0
YXRlLnRlc3RfbWFuaWZlc3QpCisgICAgICAgIG1hbmlmZXN0LndyaXRlKHN0YXRlLnRlc3RfbWFu
aWZlc3QsIHN0YXRlLm1hbmlmZXN0X3BhdGgpCisKKworY2xhc3MgQ29weVdvcmtUcmVlKFN0ZXAp
OgorICAgICIiIkNvcHkgdGhlIHN5bmMgdHJlZSBvdmVyIHRvIHRoZSBkZXN0aW5hdGlvbiBpbiB0
aGUgbG9jYWwgdHJlZSIiIgorCisgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAg
IGNvcHlfd3B0X3RyZWUoc3RhdGUuc3luY190cmVlLAorICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlLnRlc3RzX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZXM9c3RhdGUucGF0
aF9leGNsdWRlcywKKyAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1zdGF0ZS5wYXRoX2lu
Y2x1ZGVzKQorCisKK2NsYXNzIENyZWF0ZVN5bmNQYXRjaChTdGVwKToKKyAgICAiIiJBZGQgdGhl
IHVwZGF0ZWQgdGVzdCBmaWxlcyB0byBhIGNvbW1pdC9wYXRjaCBpbiB0aGUgbG9jYWwgdHJlZS4i
IiIKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qgc3RhdGUu
cGF0Y2g6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBsb2NhbF90cmVlID0gc3RhdGUu
bG9jYWxfdHJlZQorICAgICAgICBzeW5jX3RyZWUgPSBzdGF0ZS5zeW5jX3RyZWUKKworICAgICAg
ICBsb2NhbF90cmVlLmNyZWF0ZV9wYXRjaCgid2ViLXBsYXRmb3JtLXRlc3RzX3VwZGF0ZV8lcyIg
JSBzeW5jX3RyZWUucmV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXBkYXRl
ICVzIHRvIHJldmlzaW9uICVzIiAlIChzdGF0ZS5zdWl0ZV9uYW1lLCBzeW5jX3RyZWUucmV2KSkK
KyAgICAgICAgbG9jYWxfdHJlZS5hZGRfbmV3KG9zLnBhdGgucmVscGF0aChzdGF0ZS50ZXN0c19w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX3Ry
ZWUucm9vdCkpCisgICAgICAgIHVwZGF0ZWQgPSBsb2NhbF90cmVlLnVwZGF0ZV9wYXRjaChpbmNs
dWRlPVtzdGF0ZS50ZXN0c19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUubWV0YWRhdGFfcGF0aF0pCisgICAgICAgIGxvY2FsX3Ry
ZWUuY29tbWl0X3BhdGNoKCkKKworICAgICAgICBpZiBub3QgdXBkYXRlZDoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmluZm8oIk5vdGhpbmcgdG8gc3luYyIpCisKKworY2xhc3MgU3luY0Zyb21V
cHN0cmVhbVJ1bm5lcihTdGVwUnVubmVyKToKKyAgICAiIiIoU3ViKVJ1bm5lciBmb3IgZG9pbmcg
YW4gdXBzdHJlYW0gc3luYyIiIgorICAgIHN0ZXBzID0gW1VwZGF0ZUNoZWNrb3V0LAorICAgICAg
ICAgICAgIEdldFN5bmNUYXJnZXRDb21taXQsCisgICAgICAgICAgICAgTG9hZE1hbmlmZXN0LAor
ICAgICAgICAgICAgIFVwZGF0ZU1hbmlmZXN0LAorICAgICAgICAgICAgIENvcHlXb3JrVHJlZSwK
KyAgICAgICAgICAgICBDcmVhdGVTeW5jUGF0Y2hdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL3RyZWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mjc5ZGRiYTFmNmYzZDY2MDUxMGU1ODJjYzhkNDZiODBiOTU5ZmY5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdHJlZS5weQpAQCAtMCwwICsxLDM4MiBAQAoraW1wb3J0
IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2Zyb20gLi4gaW1wb3J0IHZjcwor
ZnJvbSAuLnZjcyBpbXBvcnQgYmluZF90b19yZXBvLCBnaXQsIGhnCisKKworZGVmIGdldF91bmlx
dWVfbmFtZShleGlzdGluZywgaW5pdGlhbCk6CisgICAgIiIiR2V0IGEgbmFtZSBlaXRoZXIgZXF1
YWwgdG8gaW5pdGlhbCBvciBvZiB0aGUgZm9ybSBpbml0aWFsX04sIGZvciBzb21lCisgICAgaW50
ZWdlciBOLCB0aGF0IGlzIG5vdCBpbiB0aGUgc2V0IGV4aXN0aW5nLgorCisKKyAgICA6cGFyYW0g
ZXhpc3Rpbmc6IFNldCBvZiBuYW1lcyB0aGF0IG11c3Qgbm90IGJlIGNob3Nlbi4KKyAgICA6cGFy
YW0gaW5pdGlhbDogTmFtZSwgb3IgbmFtZSBwcmVmaXgsIHRvIHVzZSIiIgorICAgIGlmIGluaXRp
YWwgbm90IGluIGV4aXN0aW5nOgorICAgICAgICByZXR1cm4gaW5pdGlhbAorICAgIGZvciBpIGlu
IHhyYW5nZShsZW4oZXhpc3RpbmcpICsgMSk6CisgICAgICAgIHRlc3QgPSAiJXNfJXMiICUgKGlu
aXRpYWwsIGkgKyAxKQorICAgICAgICBpZiB0ZXN0IG5vdCBpbiBleGlzdGluZzoKKyAgICAgICAg
ICAgIHJldHVybiB0ZXN0CisgICAgYXNzZXJ0IEZhbHNlCisKK2NsYXNzIE5vVkNTVHJlZShvYmpl
Y3QpOgorICAgIG5hbWUgPSAibm9uLXZjcyIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290
PU5vbmUpOgorICAgICAgICBpZiByb290IGlzIE5vbmU6CisgICAgICAgICAgICByb290ID0gb3Mu
cGF0aC5hYnNwYXRoKG9zLmN1cmRpcikKKyAgICAgICAgc2VsZi5yb290ID0gcm9vdAorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGlzX3R5cGUoY2xzLCBwYXRoPU5vbmUpOgorICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgorICAg
ICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIGFkZF9uZXcoc2VsZiwgcHJlZml4PU5vbmUpOgor
ICAgICAgICBwYXNzCisKKyAgICBkZWYgY3JlYXRlX3BhdGNoKHNlbGYsIHBhdGNoX25hbWUsIG1l
c3NhZ2UpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdXBkYXRlX3BhdGNoKHNlbGYsIGluY2x1
ZGU9Tm9uZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBjb21taXRfcGF0Y2goc2VsZik6Cisg
ICAgICAgIHBhc3MKKworCitjbGFzcyBIZ1RyZWUob2JqZWN0KToKKyAgICBuYW1lID0gIm1lcmN1
cmlhbCIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290PU5vbmUpOgorICAgICAgICBpZiBy
b290IGlzIE5vbmU6CisgICAgICAgICAgICByb290ID0gaGcoInJvb3QiKS5zdHJpcCgpCisgICAg
ICAgIHNlbGYucm9vdCA9IHJvb3QKKyAgICAgICAgc2VsZi5oZyA9IHZjcy5iaW5kX3RvX3JlcG8o
aGcsIHNlbGYucm9vdCkKKworICAgIGRlZiBfX2dldHN0YXRlX18oc2VsZik6CisgICAgICAgIHJ2
ID0gc2VsZi5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgZGVsIHJ2WydoZyddCisgICAgICAgIHJl
dHVybiBydgorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBkaWN0KToKKyAgICAgICAgc2Vs
Zi5fX2RpY3RfXy51cGRhdGUoZGljdCkKKyAgICAgICAgc2VsZi5oZyA9IHZjcy5iaW5kX3RvX3Jl
cG8odmNzLmhnLCBzZWxmLnJvb3QpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaXNfdHlw
ZShjbHMsIHBhdGg9Tm9uZSk6CisgICAgICAgIGt3YXJncyA9IHsibG9nX2Vycm9yIjogRmFsc2V9
CisgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBrd2FyZ3NbInJlcG8i
XSA9IHBhdGgKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGcoInJvb3QiLCAqKmt3YXJncykK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICByZXR1cm4gVHJ1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2NsZWFuKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5oZygic3RhdHVzIikuc3RyaXAoKSA9PSAiIgorCisgICAg
ZGVmIGFkZF9uZXcoc2VsZiwgcHJlZml4PU5vbmUpOgorICAgICAgICBpZiBwcmVmaXggaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBhcmdzID0gKCItSSIsIHByZWZpeCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGFyZ3MgPSAoKQorICAgICAgICBzZWxmLmhnKCJhZGQiLCAqYXJncykKKwor
ICAgIGRlZiBjcmVhdGVfcGF0Y2goc2VsZiwgcGF0Y2hfbmFtZSwgbWVzc2FnZSk6CisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHNlbGYuaGcoInFpbml0IiwgbG9nX2Vycm9yPUZhbHNlKQorICAg
ICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICBw
YXNzCisKKyAgICAgICAgcGF0Y2hfbmFtZXMgPSBbaXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIHNl
bGYuaGcoInFzZXJpZXMiKS5zcGxpdCgiXG4iKSBpZiBpdGVtLnN0cmlwKCldCisKKyAgICAgICAg
c3VmZml4ID0gMAorICAgICAgICB0ZXN0X25hbWUgPSBwYXRjaF9uYW1lCisgICAgICAgIHdoaWxl
IHRlc3RfbmFtZSBpbiBwYXRjaF9uYW1lczoKKyAgICAgICAgICAgIHN1ZmZpeCArPSAxCisgICAg
ICAgICAgICB0ZXN0X25hbWUgPSAiJXMtJWkiICUgKHBhdGNoX25hbWUsIHN1ZmZpeCkKKworICAg
ICAgICBzZWxmLmhnKCJxbmV3IiwgdGVzdF9uYW1lLCAiLVgiLCBzZWxmLnJvb3QsICItbSIsIG1l
c3NhZ2UpCisKKyAgICBkZWYgdXBkYXRlX3BhdGNoKHNlbGYsIGluY2x1ZGU9Tm9uZSk6CisgICAg
ICAgIGlmIGluY2x1ZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhcmdzID0gW10KKyAgICAg
ICAgICAgIGZvciBpdGVtIGluIGluY2x1ZGU6CisgICAgICAgICAgICAgICAgYXJncy5leHRlbmQo
WyItSSIsIGl0ZW1dKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXJncyA9ICgpCisKKyAg
ICAgICAgc2VsZi5oZygicXJlZnJlc2giLCAqYXJncykKKyAgICAgICAgcmV0dXJuIFRydWUKKwor
ICAgIGRlZiBjb21taXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNlbGYuaGcoInFmaW5pc2giKQor
CisgICAgZGVmIGNvbnRhaW5zX2NvbW1pdChzZWxmLCBjb21taXQpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZWxmLmhnKCJpZGVudGlmeSIsICItciIsIGNvbW1pdC5zaGExKQorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz
c0Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworY2xhc3MgR2l0VHJlZShvYmpl
Y3QpOgorICAgIG5hbWUgPSAiZ2l0IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3Q9Tm9u
ZSk6CisgICAgICAgIGlmIHJvb3QgaXMgTm9uZToKKyAgICAgICAgICAgIHJvb3QgPSBnaXQoInJl
di1wYXJzZSIsICItLXNob3ctdG9wbGV2ZWwiKS5zdHJpcCgpCisgICAgICAgIHNlbGYucm9vdCA9
IHJvb3QKKyAgICAgICAgc2VsZi5naXQgPSB2Y3MuYmluZF90b19yZXBvKGdpdCwgc2VsZi5yb290
KQorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBOb25lCisgICAgICAgIHNlbGYuY29tbWl0X2NscyA9
IENvbW1pdAorCisgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAgICAgcnYgPSBzZWxm
Ll9fZGljdF9fLmNvcHkoKQorICAgICAgICBkZWwgcnZbJ2dpdCddCisgICAgICAgIHJldHVybiBy
dgorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBkaWN0KToKKyAgICAgICAgc2VsZi5fX2Rp
Y3RfXy51cGRhdGUoZGljdCkKKyAgICAgICAgc2VsZi5naXQgPSB2Y3MuYmluZF90b19yZXBvKHZj
cy5naXQsIHNlbGYucm9vdCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBpc190eXBlKGNs
cywgcGF0aD1Ob25lKToKKyAgICAgICAga3dhcmdzID0geyJsb2dfZXJyb3IiOiBGYWxzZX0KKyAg
ICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1sicmVwbyJdID0g
cGF0aAorICAgICAgICB0cnk6CisgICAgICAgICAgICBnaXQoInJldi1wYXJzZSIsICItLXNob3ct
dG9wbGV2ZWwiLCAqKmt3YXJncykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJldihzZWxmKToKKyAgICAgICAgIiIiQ3VycmVudCBIRUFEIHJldmlzaW9uIiIiCisg
ICAgICAgIGlmIHZjcy5pc19naXRfcm9vdChzZWxmLnJvb3QpOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuZ2l0KCJyZXYtcGFyc2UiLCAiSEVBRCIpLnN0cmlwKCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfY2xlYW4o
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmdpdCgic3RhdHVzIikuc3RyaXAoKSA9PSAiIgor
CisgICAgZGVmIGFkZF9uZXcoc2VsZiwgcHJlZml4PU5vbmUpOgorICAgICAgICAiIiJBZGQgZmls
ZXMgdG8gdGhlIHN0YWdpbmcgYXJlYS4KKworICAgICAgICA6cGFyYW0gcHJlZml4OiBOb25lIHRv
IGluY2x1ZGUgYWxsIGZpbGVzIG9yIGEgcGF0aCBwcmVmaXggdG8KKyAgICAgICAgICAgICAgICAg
ICAgICAgYWRkIGFsbCBmaWxlcyB1bmRlciB0aGF0IHBhdGguCisgICAgICAgICIiIgorICAgICAg
ICBpZiBwcmVmaXggaXMgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSAoIi1hIiwpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBhcmdzID0gKCItLW5vLWlnbm9yZS1yZW1vdmFsIiwgcHJlZml4
KQorICAgICAgICBzZWxmLmdpdCgiYWRkIiwgKmFyZ3MpCisKKyAgICBkZWYgbGlzdF9yZWZzKHNl
bGYsIHJlZl9maWx0ZXI9Tm9uZSk6CisgICAgICAgICIiIkdldCBhIGxpc3Qgb2Ygc2hhMSwgbmFt
ZSB0dXBsZXMgZm9yIHJlZmVyZW5jZXMgaW4gYSByZXBvc2l0b3J5LgorCisgICAgICAgIDpwYXJh
bSByZWZfZmlsdGVyOiBQYXR0ZXJuIHRoYXQgcmVmZXJlbmNlIG5hbWUgbXVzdCBtYXRjaCAoZnJv
bSB0aGUgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hpbmcgd2hvbGUgLy1k
ZWxpbWl0ZWQgc2VnbWVudHMgb25seQorICAgICAgICAiIiIKKyAgICAgICAgYXJncyA9IFtdCisg
ICAgICAgIGlmIHJlZl9maWx0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhcmdzLmFwcGVu
ZChyZWZfZmlsdGVyKQorICAgICAgICBkYXRhID0gc2VsZi5naXQoInNob3ctcmVmIiwgKmFyZ3Mp
CisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdCgiXG4iKToK
KyAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CisgICAgICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQoKQorICAgICAgICAgICAgcnYu
YXBwZW5kKChzaGExLCByZWYpKQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBsaXN0X3Jl
bW90ZShzZWxmLCByZW1vdGUsIHJlZl9maWx0ZXI9Tm9uZSk6CisgICAgICAgICIiIlJldHVybiBh
IGxpc3Qgb2YgKHNoYTEsIG5hbWUpIHR1cGVzIGZvciByZWZlcmVuY2VzIGluIGEgcmVtb3RlLgor
CisgICAgICAgIDpwYXJhbSByZW1vdGU6IFVSTCBvZiB0aGUgcmVtb3RlIHRvIGxpc3QuCisgICAg
ICAgIDpwYXJhbSByZWZfZmlsdGVyOiBQYXR0ZXJuIHRoYXQgdGhlIHJlZmVyZW5jZSBuYW1lIG11
c3QgbWF0Y2guCisgICAgICAgICIiIgorICAgICAgICBhcmdzID0gW10KKyAgICAgICAgaWYgcmVm
X2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHJlZl9maWx0ZXIp
CisgICAgICAgIGRhdGEgPSBzZWxmLmdpdCgibHMtcmVtb3RlIiwgcmVtb3RlLCAqYXJncykKKyAg
ICAgICAgcnYgPSBbXQorICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0KCJcbiIpOgorICAg
ICAgICAgICAgaWYgbm90IGxpbmUuc3RyaXAoKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICAgICAgc2hhMSwgcmVmID0gbGluZS5zcGxpdCgpCisgICAgICAgICAgICBydi5hcHBl
bmQoKHNoYTEsIHJlZikpCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGdldF9yZW1vdGVf
c2hhMShzZWxmLCByZW1vdGUsIGJyYW5jaCk6CisgICAgICAgICIiIlJldHVybiB0aGUgU0hBMSBv
ZiBhIHBhcnRpY3VsYXIgYnJhbmNoIGluIGEgcmVtb3RlLgorCisgICAgICAgIDpwYXJhbSByZW1v
dGU6IHRoZSByZW1vdGUgVVJMCisgICAgICAgIDpwYXJhbSBicmFuY2g6IHRoZSBicmFuY2ggbmFt
ZSIiIgorICAgICAgICBmb3Igc2hhMSwgcmVmIGluIHNlbGYubGlzdF9yZW1vdGUocmVtb3RlLCBi
cmFuY2gpOgorICAgICAgICAgICAgaWYgcmVmID09ICJyZWZzL2hlYWRzLyVzIiAlIGJyYW5jaDoK
KyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5jb21taXRfY2xzKHNlbGYsIHNoYTEpCisgICAg
ICAgIGFzc2VydCBGYWxzZQorCisgICAgZGVmIGNyZWF0ZV9wYXRjaChzZWxmLCBwYXRjaF9uYW1l
LCBtZXNzYWdlKToKKyAgICAgICAgIyBJbiBnaXQgYSBwYXRjaCBpcyBhY3R1YWxseSBhIGNvbW1p
dAorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKyAgICBkZWYgdXBkYXRlX3BhdGNo
KHNlbGYsIGluY2x1ZGU9Tm9uZSk6CisgICAgICAgICIiIkNvbW1pdCB0aGUgc3RhZ2VkIGNoYW5n
ZXMsIG9yIGNoYW5nZXMgdG8gbGlzdGVkIGZpbGVzLgorCisgICAgICAgIDpwYXJhbSBpbmNsdWRl
OiBFaXRoZXIgTm9uZSwgdG8gY29tbWl0IHN0YWdlZCBjaGFuZ2VzLCBvciBhIGxpc3QKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9mIGZpbGVuYW1lcyAod2hpY2ggbXVzdCBhbHJlYWR5IGJlIGlu
IHRoZSByZXBvKQorICAgICAgICAgICAgICAgICAgICAgICAgdG8gY29tbWl0CisgICAgICAgICIi
IgorICAgICAgICBpZiBpbmNsdWRlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXJncyA9IHR1
cGxlKGluY2x1ZGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmdzID0gKCkKKworICAg
ICAgICBpZiBzZWxmLmdpdCgic3RhdHVzIiwgIi11bm8iLCAiLXoiLCAqYXJncykuc3RyaXAoKToK
KyAgICAgICAgICAgIHNlbGYuZ2l0KCJhZGQiLCAqYXJncykKKyAgICAgICAgICAgIHJldHVybiBU
cnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNvbW1pdF9wYXRjaChzZWxmKToK
KyAgICAgICAgYXNzZXJ0IHNlbGYubWVzc2FnZSBpcyBub3QgTm9uZQorCisgICAgICAgIGlmIHNl
bGYuZ2l0KCJkaWZmIiwgIi0tbmFtZS1vbmx5IiwgIi0tc3RhZ2VkIiwgIi16Iikuc3RyaXAoKToK
KyAgICAgICAgICAgIHNlbGYuZ2l0KCJjb21taXQiLCAiLW0iLCBzZWxmLm1lc3NhZ2UpCisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGlu
aXQoc2VsZik6CisgICAgICAgIHNlbGYuZ2l0KCJpbml0IikKKyAgICAgICAgYXNzZXJ0IHZjcy5p
c19naXRfcm9vdChzZWxmLnJvb3QpCisKKyAgICBkZWYgY2hlY2tvdXQoc2VsZiwgcmV2LCBicmFu
Y2g9Tm9uZSwgZm9yY2U9RmFsc2UpOgorICAgICAgICAiIiJDaGVja291dCBhIHBhcnRpY3VsYXIg
cmV2aXNpb24sIG9wdGlvbmFsbHkgaW50byBhIG5hbWVkIGJyYW5jaC4KKworICAgICAgICA6cGFy
YW0gcmV2OiBSZXZpc2lvbiBpZGVudGlmaWVyIChlLmcuIFNIQTEpIHRvIGNoZWNrb3V0CisgICAg
ICAgIDpwYXJhbSBicmFuY2g6IEJyYW5jaCBuYW1lIHRvIHVzZQorICAgICAgICA6cGFyYW0gZm9y
Y2U6IEZvcmNlLWNoZWNrb3V0CisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgcmV2IGlzIG5v
dCBOb25lCisKKyAgICAgICAgYXJncyA9IFtdCisgICAgICAgIGlmIGJyYW5jaDoKKyAgICAgICAg
ICAgIGJyYW5jaGVzID0gW3JlZltsZW4oInJlZnMvaGVhZHMvIik6XSBmb3Igc2hhMSwgcmVmIGlu
IHNlbGYubGlzdF9yZWZzKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZi5zdGFydHN3
aXRoKCJyZWZzL2hlYWRzLyIpXQorICAgICAgICAgICAgYnJhbmNoID0gZ2V0X3VuaXF1ZV9uYW1l
KGJyYW5jaGVzLCBicmFuY2gpCisKKyAgICAgICAgICAgIGFyZ3MgKz0gWyItYiIsIGJyYW5jaF0K
KworICAgICAgICBpZiBmb3JjZToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItZiIpCisgICAg
ICAgIGFyZ3MuYXBwZW5kKHJldikKKyAgICAgICAgc2VsZi5naXQoImNoZWNrb3V0IiwgKmFyZ3Mp
CisKKyAgICBkZWYgdXBkYXRlKHNlbGYsIHJlbW90ZSwgcmVtb3RlX2JyYW5jaCwgbG9jYWxfYnJh
bmNoKToKKyAgICAgICAgIiIiRmV0Y2ggZnJvbSB0aGUgcmVtb3RlIGFuZCBjaGVja291dCBpbnRv
IGEgbG9jYWwgYnJhbmNoLgorCisgICAgICAgIDpwYXJhbSByZW1vdGU6IFVSTCB0byB0aGUgcmVt
b3RlIHJlcG9zaXRvcnkKKyAgICAgICAgOnBhcmFtIHJlbW90ZV9icmFuY2g6IEJyYW5jaCBvbiB0
aGUgcmVtb3RlIHJlcG9zaXRvcnkgdG8gY2hlY2sgb3V0CisgICAgICAgIDpwYXJhbSBsb2NhbF9i
cmFuY2g6IExvY2FsIGJyYW5jaCBuYW1lIHRvIGNoZWNrIG91dCBpbnRvCisgICAgICAgICIiIgor
ICAgICAgICBpZiBub3QgdmNzLmlzX2dpdF9yb290KHNlbGYucm9vdCk6CisgICAgICAgICAgICBz
ZWxmLmluaXQoKQorICAgICAgICBzZWxmLmdpdCgiY2xlYW4iLCAiLXhkZiIpCisgICAgICAgIHNl
bGYuZ2l0KCJmZXRjaCIsIHJlbW90ZSwgIiVzOiVzIiAlIChyZW1vdGVfYnJhbmNoLCBsb2NhbF9i
cmFuY2gpKQorICAgICAgICBzZWxmLmNoZWNrb3V0KGxvY2FsX2JyYW5jaCkKKyAgICAgICAgc2Vs
Zi5naXQoInN1Ym1vZHVsZSIsICJ1cGRhdGUiLCAiLS1pbml0IiwgIi0tcmVjdXJzaXZlIikKKwor
ICAgIGRlZiBjbGVhbihzZWxmKToKKyAgICAgICAgc2VsZi5naXQoImNoZWNrb3V0Iiwgc2VsZi5y
ZXYpCisgICAgICAgIHNlbGYuZ2l0KCJicmFuY2giLCAiLUQiLCBzZWxmLmxvY2FsX2JyYW5jaCkK
KworICAgIGRlZiBwYXRocyhzZWxmKToKKyAgICAgICAgIiIiTGlzdCBwYXRocyBpbiB0aGUgdHJl
ZSIiIgorICAgICAgICByZXBvX3BhdGhzID0gW3NlbGYucm9vdF0gKyBbb3MucGF0aC5qb2luKHNl
bGYucm9vdCwgcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBw
YXRoIGluIHNlbGYuc3VibW9kdWxlcygpXQorCisgICAgICAgIHJ2ID0gW10KKworICAgICAgICBm
b3IgcmVwb19wYXRoIGluIHJlcG9fcGF0aHM6CisgICAgICAgICAgICBwYXRocyA9IHZjcy5naXQo
ImxzLXRyZWUiLCAiLXIiLCAiLS1uYW1lLW9ubHkiLCAiSEVBRCIsIHJlcG89cmVwb19wYXRoKS5z
cGxpdCgiXG4iKQorICAgICAgICAgICAgcnYuZXh0ZW5kKG9zLnBhdGgucmVscGF0aChvcy5wYXRo
LmpvaW4ocmVwb19wYXRoLCBpdGVtKSwgc2VsZi5yb290KSBmb3IgaXRlbSBpbiBwYXRocworICAg
ICAgICAgICAgICAgICAgICAgIGlmIGl0ZW0uc3RyaXAoKSkKKyAgICAgICAgcmV0dXJuIHJ2CisK
KyAgICBkZWYgc3VibW9kdWxlcyhzZWxmKToKKyAgICAgICAgIiIiTGlzdCBzdWJtb2R1bGUgZGly
ZWN0b3JpZXMiIiIKKyAgICAgICAgb3V0cHV0ID0gc2VsZi5naXQoInN1Ym1vZHVsZSIsICJzdGF0
dXMiLCAiLS1yZWN1cnNpdmUiKQorICAgICAgICBydiA9IFtdCisgICAgICAgIGZvciBsaW5lIGlu
IG91dHB1dC5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAg
ICAgICAgICAgIGlmIG5vdCBsaW5lOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
ICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoIiAiKQorICAgICAgICAgICAgcnYuYXBwZW5kKHBhcnRz
WzFdKQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBjb250YWluc19jb21taXQoc2VsZiwg
Y29tbWl0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5naXQoInJldi1wYXJzZSIs
ICItLXZlcmlmeSIsIGNvbW1pdC5zaGExKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKworY2xhc3MgQ29tbWl0TWVzc2FnZShvYmplY3QpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXh0KToKKyAgICAgICAgc2VsZi50ZXh0ID0gdGV4dAorICAgICAgICBzZWxm
Ll9wYXJzZV9tZXNzYWdlKCkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi50ZXh0CisKKyAgICBkZWYgX3BhcnNlX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGxp
bmVzID0gc2VsZi50ZXh0LnNwbGl0bGluZXMoKQorICAgICAgICBzZWxmLmZ1bGxfc3VtbWFyeSA9
IGxpbmVzWzBdCisgICAgICAgIHNlbGYuYm9keSA9ICJcbiIuam9pbihsaW5lc1sxOl0pCisKKwor
Y2xhc3MgQ29tbWl0KG9iamVjdCk6CisgICAgbXNnX2NscyA9IENvbW1pdE1lc3NhZ2UKKworICAg
IF9zaGExX3JlID0gcmUuY29tcGlsZSgiXlswLTlhLWZdezQwfSQiKQorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHRyZWUsIHNoYTEpOgorICAgICAgICAiIiJPYmplY3QgcmVwcmVzZW50aW5nIGEg
Y29tbWl0IGluIGEgc3BlY2lmaWMgR2l0VHJlZS4KKworICAgICAgICA6cGFyYW0gdHJlZTogR2l0
VHJlZSB0byB3aGljaCB0aGlzIGNvbW1pdCBiZWxvbmdzLgorICAgICAgICA6cGFyYW0gc2hhMTog
RnVsbCBzaGExIHN0cmluZyBmb3IgdGhlIGNvbW1pdAorICAgICAgICAiIiIKKyAgICAgICAgYXNz
ZXJ0IHNlbGYuX3NoYTFfcmUubWF0Y2goc2hhMSkKKworICAgICAgICBzZWxmLnRyZWUgPSB0cmVl
CisgICAgICAgIHNlbGYuZ2l0ID0gdHJlZS5naXQKKyAgICAgICAgc2VsZi5zaGExID0gc2hhMQor
ICAgICAgICBzZWxmLmF1dGhvciwgc2VsZi5lbWFpbCwgc2VsZi5tZXNzYWdlID0gc2VsZi5fZ2V0
X21ldGEoKQorCisgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAgICAgcnYgPSBzZWxm
Ll9fZGljdF9fLmNvcHkoKQorICAgICAgICBkZWwgcnZbJ2dpdCddCisgICAgICAgIHJldHVybiBy
dgorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBkaWN0KToKKyAgICAgICAgc2VsZi5fX2Rp
Y3RfXy51cGRhdGUoZGljdCkKKyAgICAgICAgc2VsZi5naXQgPSBzZWxmLnRyZWUuZ2l0CisKKyAg
ICBkZWYgX2dldF9tZXRhKHNlbGYpOgorICAgICAgICBhdXRob3IsIGVtYWlsLCBtZXNzYWdlID0g
c2VsZi5naXQoInNob3ciLCAiLXMiLCAiLS1mb3JtYXQ9Zm9ybWF0OiVhblxuJWFlXG4lQiIsIHNl
bGYuc2hhMSkuc3BsaXQoIlxuIiwgMikKKyAgICAgICAgcmV0dXJuIGF1dGhvciwgZW1haWwsIHNl
bGYubXNnX2NscyhtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRh
dGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3VwZGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTAyOWM1
MTI5ZmRjYzU4MGNhMTk4MGU1M2JlNzk1YzUwMGE2MjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS91cGRhdGUucHkKQEAgLTAsMCArMSwxNTggQEAKK2ltcG9ydCBvcwor
aW1wb3J0IHN5cworCitmcm9tIG1ldGFkYXRhIGltcG9ydCBNZXRhZGF0YVVwZGF0ZVJ1bm5lcgor
ZnJvbSBzeW5jIGltcG9ydCBTeW5jRnJvbVVwc3RyZWFtUnVubmVyCitmcm9tIHRyZWUgaW1wb3J0
IEdpdFRyZWUsIEhnVHJlZSwgTm9WQ1NUcmVlCisKK2Zyb20gLi4gaW1wb3J0IGVudmlyb25tZW50
IGFzIGVudgorZnJvbSBiYXNlIGltcG9ydCBTdGVwLCBTdGVwUnVubmVyLCBleGl0X2NsZWFuLCBl
eGl0X3VuY2xlYW4KK2Zyb20gc3RhdGUgaW1wb3J0IFN0YXRlCisKK2RlZiBzZXR1cF9wYXRocyhz
eW5jX3BhdGgpOgorICAgIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoc3luY19w
YXRoKSkKKyAgICBmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzCisKK2NsYXNzIExvYWRDb25m
aWcoU3RlcCk6CisgICAgIiIiU3RlcCBmb3IgbG9hZGluZyBjb25maWd1cmF0aW9uIGZyb20gdGhl
IGluaSBmaWxlIGFuZCBrd2FyZ3MuIiIiCisKKyAgICBwcm92aWRlcyA9IFsic3luYyIsICJwYXRo
cyIsICJtZXRhZGF0YV9wYXRoIiwgInRlc3RzX3BhdGgiXQorCisgICAgZGVmIGNyZWF0ZShzZWxm
LCBzdGF0ZSk6CisgICAgICAgIHN0YXRlLnN5bmMgPSB7InJlbW90ZV91cmwiOiBzdGF0ZS5rd2Fy
Z3NbInJlbW90ZV91cmwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogc3RhdGUu
a3dhcmdzWyJicmFuY2giXSwKKyAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6IHN0YXRlLmt3
YXJnc1sic3luY19wYXRoIl19CisKKyAgICAgICAgc3RhdGUucGF0aHMgPSBzdGF0ZS5rd2FyZ3Nb
InRlc3RfcGF0aHMiXQorICAgICAgICBzdGF0ZS50ZXN0c19wYXRoID0gc3RhdGUucGF0aHNbIi8i
XVsidGVzdHNfcGF0aCJdCisgICAgICAgIHN0YXRlLm1ldGFkYXRhX3BhdGggPSBzdGF0ZS5wYXRo
c1siLyJdWyJtZXRhZGF0YV9wYXRoIl0KKworICAgICAgICBhc3NlcnQgb3MucGF0aC5pc2Ficyhz
dGF0ZS50ZXN0c19wYXRoKQorCisKK2NsYXNzIExvYWRUcmVlcyhTdGVwKToKKyAgICAiIiJTdGVw
IGZvciBjcmVhdGluZyBhIFRyZWUgZm9yIHRoZSBsb2NhbCBjb3B5IGFuZCBhIEdpdFRyZWUgZm9y
IHRoZQorICAgIHVwc3RyZWFtIHN5bmMuIiIiCisKKyAgICBwcm92aWRlcyA9IFsibG9jYWxfdHJl
ZSIsICJzeW5jX3RyZWUiXQorCisgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAg
IGlmIG9zLnBhdGguZXhpc3RzKHN0YXRlLnN5bmNbInBhdGgiXSk6CisgICAgICAgICAgICBzeW5j
X3RyZWUgPSBHaXRUcmVlKHJvb3Q9c3RhdGUuc3luY1sicGF0aCJdKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgc3luY190cmVlID0gTm9uZQorCisgICAgICAgIGlmIEdpdFRyZWUuaXNfdHlw
ZSgpOgorICAgICAgICAgICAgbG9jYWxfdHJlZSA9IEdpdFRyZWUoKQorICAgICAgICBlbGlmIEhn
VHJlZS5pc190eXBlKCk6CisgICAgICAgICAgICBsb2NhbF90cmVlID0gSGdUcmVlKCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGxvY2FsX3RyZWUgPSBOb1ZDU1RyZWUoKQorCisgICAgICAg
IHN0YXRlLnVwZGF0ZSh7ImxvY2FsX3RyZWUiOiBsb2NhbF90cmVlLAorICAgICAgICAgICAgICAg
ICAgICAgICJzeW5jX3RyZWUiOiBzeW5jX3RyZWV9KQorCisKK2NsYXNzIFN5bmNGcm9tVXBzdHJl
YW0oU3RlcCk6CisgICAgIiIiU3RlcCB0aGF0IHN5bmNocm9uaXNlcyBhIGxvY2FsIGNvcHkgb2Yg
dGhlIGNvZGUgd2l0aCB1cHN0cmVhbS4iIiIKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUp
OgorICAgICAgICBpZiBub3Qgc3RhdGUua3dhcmdzWyJzeW5jIl06CisgICAgICAgICAgICByZXR1
cm4KKworICAgICAgICBpZiBub3Qgc3RhdGUuc3luY190cmVlOgorICAgICAgICAgICAgb3MubWtk
aXIoc3RhdGUuc3luY1sicGF0aCJdKQorICAgICAgICAgICAgc3RhdGUuc3luY190cmVlID0gR2l0
VHJlZShyb290PXN0YXRlLnN5bmNbInBhdGgiXSkKKworICAgICAgICBrd2FyZ3MgPSBzdGF0ZS5r
d2FyZ3MKKyAgICAgICAgd2l0aCBzdGF0ZS5wdXNoKFsic3luYyIsICJwYXRocyIsICJtZXRhZGF0
YV9wYXRoIiwgInRlc3RzX3BhdGgiLCAibG9jYWxfdHJlZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgInN5bmNfdHJlZSJdKToKKyAgICAgICAgICAgIHN0YXRlLnRhcmdldF9yZXYgPSBrd2Fy
Z3NbInJldiJdCisgICAgICAgICAgICBzdGF0ZS5wYXRjaCA9IGt3YXJnc1sicGF0Y2giXQorICAg
ICAgICAgICAgc3RhdGUuc3VpdGVfbmFtZSA9IGt3YXJnc1sic3VpdGVfbmFtZSJdCisgICAgICAg
ICAgICBzdGF0ZS5wYXRoX2V4Y2x1ZGVzID0ga3dhcmdzWyJleGNsdWRlIl0KKyAgICAgICAgICAg
IHN0YXRlLnBhdGhfaW5jbHVkZXMgPSBrd2FyZ3NbImluY2x1ZGUiXQorICAgICAgICAgICAgcnVu
bmVyID0gU3luY0Zyb21VcHN0cmVhbVJ1bm5lcihzZWxmLmxvZ2dlciwgc3RhdGUpCisgICAgICAg
ICAgICBydW5uZXIucnVuKCkKKworCitjbGFzcyBVcGRhdGVNZXRhZGF0YShTdGVwKToKKyAgICAi
IiJVcGRhdGUgdGhlIGV4cGVjdGF0aW9uIG1ldGFkYXRhIGZyb20gYSBzZXQgb2YgcnVuIGxvZ3Mi
IiIKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qgc3RhdGUu
a3dhcmdzWyJydW5fbG9nIl06CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBrd2FyZ3Mg
PSBzdGF0ZS5rd2FyZ3MKKyAgICAgICAgd2l0aCBzdGF0ZS5wdXNoKFsibG9jYWxfdHJlZSIsICJz
eW5jX3RyZWUiLCAicGF0aHMiLCAic2VydmVfcm9vdCJdKToKKyAgICAgICAgICAgIHN0YXRlLnJ1
bl9sb2cgPSBrd2FyZ3NbInJ1bl9sb2ciXQorICAgICAgICAgICAgc3RhdGUuaWdub3JlX2V4aXN0
aW5nID0ga3dhcmdzWyJpZ25vcmVfZXhpc3RpbmciXQorICAgICAgICAgICAgc3RhdGUuc3RhYmls
aXR5ID0ga3dhcmdzWyJzdGFiaWxpdHkiXQorICAgICAgICAgICAgc3RhdGUucGF0Y2ggPSBrd2Fy
Z3NbInBhdGNoIl0KKyAgICAgICAgICAgIHN0YXRlLnN1aXRlX25hbWUgPSBrd2FyZ3NbInN1aXRl
X25hbWUiXQorICAgICAgICAgICAgc3RhdGUucHJvZHVjdCA9IGt3YXJnc1sicHJvZHVjdCJdCisg
ICAgICAgICAgICBzdGF0ZS5jb25maWcgPSBrd2FyZ3NbImNvbmZpZyJdCisgICAgICAgICAgICBz
dGF0ZS5leHRyYV9wcm9wZXJ0aWVzID0ga3dhcmdzWyJleHRyYV9wcm9wZXJ0eSJdCisgICAgICAg
ICAgICBydW5uZXIgPSBNZXRhZGF0YVVwZGF0ZVJ1bm5lcihzZWxmLmxvZ2dlciwgc3RhdGUpCisg
ICAgICAgICAgICBydW5uZXIucnVuKCkKKworCitjbGFzcyBVcGRhdGVSdW5uZXIoU3RlcFJ1bm5l
cik6CisgICAgIiIiUnVubmVyIGZvciBkb2luZyBhbiBvdmVyYWxsIHVwZGF0ZS4iIiIKKyAgICBz
dGVwcyA9IFtMb2FkQ29uZmlnLAorICAgICAgICAgICAgIExvYWRUcmVlcywKKyAgICAgICAgICAg
ICBTeW5jRnJvbVVwc3RyZWFtLAorICAgICAgICAgICAgIFVwZGF0ZU1ldGFkYXRhXQorCisKK2Ns
YXNzIFdQVFVwZGF0ZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHJ1
bm5lcl9jbHM9VXBkYXRlUnVubmVyLCAqKmt3YXJncyk6CisgICAgICAgICIiIk9iamVjdCB0aGF0
IGNvbnRyb2xzIHRoZSBydW5uaW5nIG9mIGEgd2hvbGUgd3B0dXBkYXRlLgorCisgICAgICAgIDpw
YXJhbSBydW5uZXJfY2xzOiBSdW5uZXIgc3ViY2xhc3MgaG9sZGluZyB0aGUgb3ZlcmFsbCBsaXN0
IG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwcyB0byBydW4uCisgICAgICAgIDpw
YXJhbSBrd2FyZ3M6IENvbW1hbmQgbGluZSBhcmd1bWVudHMKKyAgICAgICAgIiIiCisgICAgICAg
IHNlbGYucnVubmVyX2NscyA9IHJ1bm5lcl9jbHMKKyAgICAgICAgc2VsZi5zZXJ2ZV9yb290ID0g
a3dhcmdzWyJ0ZXN0X3BhdGhzIl1bIi8iXVsidGVzdHNfcGF0aCJdCisKKyAgICAgICAgaWYgbm90
IGt3YXJnc1sic3luYyJdOgorICAgICAgICAgICAgc2V0dXBfcGF0aHMoc2VsZi5zZXJ2ZV9yb290
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoa3dhcmdzWyJz
eW5jX3BhdGgiXSk6CisgICAgICAgICAgICAgICAgIyBJZiB0aGUgc3luYyBwYXRoIGRvZXNuJ3Qg
ZXhpc3Qgd2UgZGVmZXIgdGhpcyB1bnRpbCBpdCBkb2VzCisgICAgICAgICAgICAgICAgc2V0dXBf
cGF0aHMoa3dhcmdzWyJzeW5jX3BhdGgiXSkKKworICAgICAgICBzZWxmLnN0YXRlID0gU3RhdGUo
bG9nZ2VyKQorICAgICAgICBzZWxmLmt3YXJncyA9IGt3YXJncworICAgICAgICBzZWxmLmxvZ2dl
ciA9IGxvZ2dlcgorCisgICAgZGVmIHJ1bihzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHNl
bGYua3dhcmdzWyJhYm9ydCJdOgorICAgICAgICAgICAgc2VsZi5hYm9ydCgpCisgICAgICAgICAg
ICByZXR1cm4gZXhpdF9jbGVhbgorCisgICAgICAgIGlmIG5vdCBzZWxmLmt3YXJnc1siY29udGlu
dWUiXSBhbmQgbm90IHNlbGYuc3RhdGUuaXNfZW1wdHkoKToKKyAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmVycm9yKCJGb3VuZCBleGlzdGluZyBzdGF0ZS4gUnVuIHdpdGggLS1jb250aW51ZSB0byBy
ZXN1bWUgb3IgLS1hYm9ydCB0byBjbGVhciBzdGF0ZSIpCisgICAgICAgICAgICByZXR1cm4gZXhp
dF91bmNsZWFuCisKKyAgICAgICAgaWYgc2VsZi5rd2FyZ3NbImNvbnRpbnVlIl06CisgICAgICAg
ICAgICBpZiBzZWxmLnN0YXRlLmlzX2VtcHR5KCk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZXJyb3IoIk5vIHN5bmMgaW4gcHJvZ3Jlc3M/IikKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZXhpdF9jbGVhbgorCisgICAgICAgICAgICBzZWxmLmt3YXJncyA9IHNlbGYuc3RhdGUua3dhcmdz
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXRlLmt3YXJncyA9IHNlbGYua3dh
cmdzCisKKyAgICAgICAgc2VsZi5zdGF0ZS5zZXJ2ZV9yb290ID0gc2VsZi5zZXJ2ZV9yb290CisK
KyAgICAgICAgdXBkYXRlX3J1bm5lciA9IHNlbGYucnVubmVyX2NscyhzZWxmLmxvZ2dlciwgc2Vs
Zi5zdGF0ZSkKKyAgICAgICAgcnYgPSB1cGRhdGVfcnVubmVyLnJ1bigpCisgICAgICAgIGlmIHJ2
IGluIChleGl0X2NsZWFuLCBOb25lKToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUuY2xlYXIoKQor
CisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGFib3J0KHNlbGYpOgorICAgICAgICBzZWxm
LnN0YXRlLmNsZWFyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQz
ZGVmYzg3Mjk0NjkzMjEwYTVmMDk5Yjc3N2YyMmYyMjU5OTc1N2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdXBkYXRlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjMgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBk
YXRlL2Jhc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3VwZGF0ZS9zdGF0ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci91cGRhdGUvdHJlZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTEzMTJkMzkzN2EwNWJiN2I4YTc4YWI1MGRmZmMzMjQ4YzcyZThjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQpAQCAtMCwwICsxLDQ5IEBACitpbXBvcnQg
c3VicHJvY2VzcworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKKworZnJvbSBtb3psb2cg
aW1wb3J0IGdldF9kZWZhdWx0X2xvZ2dlcgorCitsb2dnZXIgPSBOb25lCisKK2RlZiB2Y3MoYmlu
X25hbWUpOgorICAgIGRlZiBpbm5lcihjb21tYW5kLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICBnbG9iYWwgbG9nZ2VyCisKKyAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgICAg
ICBsb2dnZXIgPSBnZXRfZGVmYXVsdF9sb2dnZXIoInZjcyIpCisKKyAgICAgICAgcmVwbyA9IGt3
YXJncy5wb3AoInJlcG8iLCBOb25lKQorICAgICAgICBsb2dfZXJyb3IgPSBrd2FyZ3MucG9wKCJs
b2dfZXJyb3IiLCBUcnVlKQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3Ioa3dhcmdzKQorCisgICAgICAgIGFyZ3MgPSBsaXN0KGFyZ3MpCisKKyAgICAgICAg
cHJvY19rd2FyZ3MgPSB7fQorICAgICAgICBpZiByZXBvIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgcHJvY19rd2FyZ3NbImN3ZCJdID0gcmVwbworCisgICAgICAgIGNvbW1hbmRfbGluZSA9IFti
aW5fbmFtZSwgY29tbWFuZF0gKyBhcmdzCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiICIuam9pbihj
b21tYW5kX2xpbmUpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vz
cy5jaGVja19vdXRwdXQoY29tbWFuZF9saW5lLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsICoq
cHJvY19rd2FyZ3MpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJv
ciBhcyBlOgorICAgICAgICAgICAgaWYgbG9nX2Vycm9yOgorICAgICAgICAgICAgICAgIGxvZ2dl
ci5lcnJvcihlLm91dHB1dCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgcmV0dXJuIGlubmVyCisK
K2dpdCA9IHZjcygiZ2l0IikKK2hnID0gdmNzKCJoZyIpCisKKworZGVmIGJpbmRfdG9fcmVwbyh2
Y3NfZnVuYywgcmVwbyk6CisgICAgcmV0dXJuIHBhcnRpYWwodmNzX2Z1bmMsIHJlcG89cmVwbykK
KworCitkZWYgaXNfZ2l0X3Jvb3QocGF0aCk6CisgICAgdHJ5OgorICAgICAgICBydiA9IGdpdCgi
cmV2LXBhcnNlIiwgIi0tc2hvdy1jZHVwIiwgcmVwbz1wYXRoKQorICAgIGV4Y2VwdCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJu
IHJ2ID09ICJcbiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGI3MDc3OGNmMjFmYThhZjlk
YThkYzBiNWY3N2Y4MzkwNGU3YTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsNDMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9fX2lu
aXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1l
bnQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhwZWN0ZWQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0
ZWQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21h
bmlmZXN0dXBkYXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Byb2R1Y3RzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3JlZHVjZS5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFi
aWxpdHkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0ZHJpdmVyLXZlbmRvci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc19ydW5uZXIu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
aGFybmVzc3JlcG9ydC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RydW5uZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dl
YmRyaXZlcl9zZXJ2ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bG9nZ2luZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9z
ZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ODIyYjM2MGNjMWJlNDA2MzFlYTM5NGFiZGFjNDRjNWI4ZDhjODE2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKQEAgLTAsMCArMSwyNjcgQEAKK2lt
cG9ydCBhYmMKK2ltcG9ydCBlcnJubworaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9y
dCBzb2NrZXQKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdHJhY2ViYWNr
CitpbXBvcnQgdXJscGFyc2UKKworaW1wb3J0IG1venByb2Nlc3MKKworCitfX2FsbF9fID0gWyJT
ZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIi
LAorICAgICAgICAgICAiR2Vja29Ecml2ZXJTZXJ2ZXIiLCAiSW50ZXJuZXRFeHBsb3JlckRyaXZl
clNlcnZlciIsICJFZGdlRHJpdmVyU2VydmVyIiwKKyAgICAgICAgICAgIlNlcnZvRHJpdmVyU2Vy
dmVyIiwgIldlYktpdERyaXZlclNlcnZlciIsICJXZWJEcml2ZXJTZXJ2ZXIiXQorCisKK2NsYXNz
IFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgorICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0
YQorCisgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAiLyIKKyAgICBfdXNlZF9wb3J0cyA9IHNldCgp
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9IjEyNy4wLjAu
MSIsIHBvcnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBlbnY9Tm9uZSwg
YXJncz1Ob25lKToKKyAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJXZWJEcml2ZXIgc2VydmVyIGJpbmFyeSBtdXN0IGJlIGdpdmVuICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvIC0td2ViZHJpdmVyLWJpbmFyeSBhcmd1bWVu
dCIpCisKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5iaW5hcnkg
PSBiaW5hcnkKKyAgICAgICAgc2VsZi5ob3N0ID0gaG9zdAorICAgICAgICBpZiBiYXNlX3BhdGgg
PT0gIiI6CisgICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IHNlbGYuZGVmYXVsdF9iYXNlX3Bh
dGgKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9wYXRo
CisgICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUgZWxz
ZSBlbnYKKworICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLl9jbWQgPSBO
b25lCisgICAgICAgIHNlbGYuX2FyZ3MgPSBhcmdzIGlmIGFyZ3MgaXMgbm90IE5vbmUgZWxzZSBb
XQorICAgICAgICBzZWxmLl9wcm9jID0gTm9uZQorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGZ1bGwg
Y29tbWFuZCBmb3Igc3RhcnRpbmcgdGhlIHNlcnZlciBwcm9jZXNzIGFzIGEgbGlzdC4iIiIKKwor
ICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYuX3J1bihibG9jaykKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0Ogor
ICAgICAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrKToKKyAg
ICAgICAgc2VsZi5fY21kID0gc2VsZi5tYWtlX2NvbW1hbmQoKQorICAgICAgICBzZWxmLl9wcm9j
ID0gbW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlcigKKyAgICAgICAgICAgIHNlbGYuX2NtZCwKKyAg
ICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYub25fb3V0cHV0LAorICAgICAgICAgICAg
ZW52PXNlbGYuZW52LAorICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCisKKyAgICAgICAg
c2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIFdlYkRyaXZlcjogJXMiICUgJyAnLmpvaW4oc2Vs
Zi5fY21kKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fcHJvYy5ydW4oKQorICAg
ICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJu
by5FTk9FTlQ6CisgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKKyAgICAgICAgICAgICAg
ICAgICAgIldlYkRyaXZlciBleGVjdXRhYmxlIG5vdCBmb3VuZDogJXMiICUgc2VsZi5iaW5hcnkp
CisgICAgICAgICAgICByYWlzZQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKAorICAgICAg
ICAgICAgIldhaXRpbmcgZm9yIFdlYkRyaXZlciB0byBiZWNvbWUgYWNjZXNzaWJsZTogJXMiICUg
c2VsZi51cmwpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdhaXRfZm9yX3NlcnZpY2UoKHNl
bGYuaG9zdCwgc2VsZi5wb3J0KSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmVycm9yKAorICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgd2FzIG5v
dCBhY2Nlc3NpYmxlICIKKyAgICAgICAgICAgICAgICAid2l0aGluIHRoZSB0aW1lb3V0OlxuJXMi
ICUgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAg
aWYgYmxvY2s6CisgICAgICAgICAgICBzZWxmLl9wcm9jLndhaXQoKQorCisgICAgZGVmIHN0b3Ao
c2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBpZiBzZWxmLmlzX2FsaXZlOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3Byb2Mua2lsbCgpCisgICAgICAgIHJldHVybiBub3Qgc2VsZi5pc19h
bGl2ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gaGFzYXR0cihzZWxmLl9wcm9jLCAicHJvYyIpIGFuZCBzZWxmLl9wcm9jLnBvbGwoKSBp
cyBOb25lCisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICBzZWxmLmxv
Z2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuX2NtZCkpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9wcm9jIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2MucGlkCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICByZXR1cm4gImh0dHA6Ly8lczolaSVzIiAl
IChzZWxmLmhvc3QsIHNlbGYucG9ydCwgc2VsZi5iYXNlX3BhdGgpCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgcG9ydChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fcG9ydCBpcyBOb25lOgorICAg
ICAgICAgICAgc2VsZi5fcG9ydCA9IHNlbGYuX2ZpbmRfbmV4dF9mcmVlX3BvcnQoKQorICAgICAg
ICByZXR1cm4gc2VsZi5fcG9ydAorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfZmluZF9u
ZXh0X2ZyZWVfcG9ydCgpOgorICAgICAgICBwb3J0ID0gZ2V0X2ZyZWVfcG9ydCg0NDQ0LCBleGNs
dWRlPVdlYkRyaXZlclNlcnZlci5fdXNlZF9wb3J0cykKKyAgICAgICAgV2ViRHJpdmVyU2VydmVy
Ll91c2VkX3BvcnRzLmFkZChwb3J0KQorICAgICAgICByZXR1cm4gcG9ydAorCisKK2NsYXNzIFNl
bGVuaXVtU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CisgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAi
L3dkL2h1YiIKKworICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBb
ImphdmEiLCAiLWphciIsIHNlbGYuYmluYXJ5LCAiLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0gKyBz
ZWxmLl9hcmdzCisKKworY2xhc3MgQ2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJjaHJvbWVkcml2ZXIiLCBw
b3J0PU5vbmUsCisgICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKKyAg
ICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgbG9nZ2Vy
LCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQorCisg
ICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwK
KyAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAorICAgICAg
ICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNlX3BhdGgpIGlmIHNlbGYuYmFz
ZV9wYXRoIGVsc2UgIiJdICsgc2VsZi5fYXJncworCitjbGFzcyBFZGdlRHJpdmVyU2VydmVyKFdl
YkRyaXZlclNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJt
aWNyb3NvZnR3ZWJkcml2ZXIuZXhlIiwgcG9ydD1Ob25lLAorICAgICAgICAgICAgICAgICBiYXNl
X3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9zdCIsIGFyZ3M9Tm9uZSk6CisgICAgICAgIFdlYkRyaXZl
clNlcnZlci5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0
PWhvc3QsIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAgICAiLS1wb3J0
PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKworY2xhc3MgT3BlcmFEcml2ZXJT
ZXJ2ZXIoQ2hyb21lRHJpdmVyU2VydmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBiaW5hcnk9Im9wZXJhZHJpdmVyIiwgcG9ydD1Ob25lLAorICAgICAgICAgICAgICAgICBiYXNl
X3BhdGg9IiIsIGFyZ3M9Tm9uZSk6CisgICAgICAgIENocm9tZURyaXZlclNlcnZlci5fX2luaXRf
XygKKyAgICAgICAgICAgIHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0
aD1iYXNlX3BhdGgsIGFyZ3M9YXJncykKKworCitjbGFzcyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVy
U2VydmVyKFdlYkRyaXZlclNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5PSJJRURyaXZlclNlcnZlci5leGUiLCBwb3J0PU5vbmUsCisgICAgICAgICAgICAgICAg
IGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1Ob25lKToKKyAgICAgICAgV2Vi
RHJpdmVyU2VydmVyLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCisKKyAgICBkZWYgbWFrZV9jb21tYW5k
KHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICIt
LXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncworCisKK2NsYXNzIEdlY2tv
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgbWFyaW9uZXR0ZV9wb3J0PTI4MjgsIGJpbmFyeT0iZ2Vja29kcml2ZXIiLAorICAgICAg
ICAgICAgICAgICBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAg
ICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0Ui
XSA9ICIxIgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBlbnY9ZW52LCBhcmdzPWFyZ3MpCisgICAgICAg
IHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gbWFyaW9uZXR0ZV9wb3J0CisKKyAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAg
ICAgICItLW1hcmlvbmV0dGUtcG9ydCIsIHN0cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAg
ICAgICAgICAgICAgIi0taG9zdCIsIHNlbGYuaG9zdCwKKyAgICAgICAgICAgICAgICAiLS1wb3J0
Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncworCisKK2NsYXNzIFNhZmFyaURyaXZlclNl
cnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJp
bmFyeT0ic2FmYXJpZHJpdmVyIiwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBXZWJE
cml2ZXJTZXJ2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwg
cG9ydD1wb3J0LCBhcmdzPWFyZ3MpCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUg
c3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncworCisKK2NsYXNzIFNlcnZvRHJpdmVyU2VydmVy
KFdlYkRyaXZlclNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5
PSJzZXJ2byIsIGJpbmFyeV9hcmdzPU5vbmUsIGhvc3Q9IjEyNy4wLjAuMSIsCisgICAgICAgICAg
ICAgICAgIHBvcnQ9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgZW52ID0gb3MuZW52aXJvbi5j
b3B5KCkKKyAgICAgICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisgICAgICAgIFdlYkRy
aXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgaG9zdD1ob3N0LCBwb3J0
PXBvcnQsIGVudj1lbnYsIGFyZ3M9YXJncykKKyAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJp
bmFyeV9hcmdzCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICBjb21tYW5k
ID0gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICItLXdlYmRyaXZlciIsIHN0cihz
ZWxmLnBvcnQpLAorICAgICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsCisgICAgICAgICAg
ICAgICAgICAgIi0taGVhZGxlc3MiXSArIHNlbGYuX2FyZ3MKKyAgICAgICAgaWYgc2VsZi5iaW5h
cnlfYXJnczoKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gc2VsZi5iaW5hcnlfYXJncworICAgICAg
ICByZXR1cm4gY29tbWFuZAorCisKK2NsYXNzIFdlYktpdERyaXZlclNlcnZlcihXZWJEcml2ZXJT
ZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCBwb3J0
PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBhcmdzPWFyZ3MpCisKKyAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAiLS1wb3J0PSVzIiAl
IHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKworCitkZWYgY21kX2FyZyhuYW1lLCB2YWx1
ZT1Ob25lKToKKyAgICBwcmVmaXggPSAiLSIgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRv
d3MiIGVsc2UgIi0tIgorICAgIHJ2ID0gcHJlZml4ICsgbmFtZQorICAgIGlmIHZhbHVlIGlzIG5v
dCBOb25lOgorICAgICAgICBydiArPSAiPSIgKyB2YWx1ZQorICAgIHJldHVybiBydgorCisKK2Rl
ZiBnZXRfZnJlZV9wb3J0KHN0YXJ0X3BvcnQsIGV4Y2x1ZGU9Tm9uZSk6CisgICAgIiIiR2V0IHRo
ZSBmaXJzdCBwb3J0IG51bWJlciBhZnRlciBzdGFydF9wb3J0IChpbmNsdXNpdmUpIHRoYXQgaXMK
KyAgICBub3QgY3VycmVudGx5IGJvdW5kLgorCisgICAgOnBhcmFtIHN0YXJ0X3BvcnQ6IEludGVn
ZXIgcG9ydCBudW1iZXIgYXQgd2hpY2ggdG8gc3RhcnQgdGVzdGluZy4KKyAgICA6cGFyYW0gZXhj
bHVkZTogU2V0IG9mIHBvcnQgbnVtYmVycyB0byBza2lwIiIiCisgICAgcG9ydCA9IHN0YXJ0X3Bv
cnQKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBpZiBleGNsdWRlIGFuZCBwb3J0IGluIGV4Y2x1
ZGU6CisgICAgICAgICAgICBwb3J0ICs9IDEKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
IHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcy5iaW5kKCgi
MTI3LjAuMC4xIiwgcG9ydCkpCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAg
ICAgICBwb3J0ICs9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBwb3J0Cisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzLmNsb3NlKCkKKworCitkZWYgd2FpdF9mb3Jf
c2VydmljZShhZGRyLCB0aW1lb3V0PTE1KToKKyAgICAiIiJXYWl0cyB1bnRpbCBuZXR3b3JrIHNl
cnZpY2UgZ2l2ZW4gYXMgYSB0dXBsZSBvZiAoaG9zdCwgcG9ydCkgYmVjb21lcworICAgIGF2YWls
YWJsZSBvciB0aGUgYHRpbWVvdXRgIGR1cmF0aW9uIGlzIHJlYWNoZWQsIGF0IHdoaWNoIHBvaW50
CisgICAgYGBzb2NrZXQuZXJyb3JgYCBpcyByYWlzZWQuIiIiCisgICAgZW5kID0gdGltZS50aW1l
KCkgKyB0aW1lb3V0CisgICAgd2hpbGUgZW5kID4gdGltZS50aW1lKCk6CisgICAgICAgIHNvID0g
c29ja2V0LnNvY2tldCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNvLmNvbm5lY3QoYWRk
cikKKyAgICAgICAgZXhjZXB0IHNvY2tldC50aW1lb3V0OgorICAgICAgICAgICAgcGFzcworICAg
ICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBlWzBdICE9IGVy
cm5vLkVDT05OUkVGVVNFRDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNv
LmNsb3NlKCkKKyAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgcmFpc2Ugc29ja2V0LmVycm9y
KCJTZXJ2aWNlIGlzIHVuYXZhaWxhYmxlOiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5l
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1ZTVkOGFjYTQzMzU2MjQxZmNlYzM4OTIwYjc5NWIzY2UzNjQ1NDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKQEAgLTAs
MCArMSw1ODggQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGFzdAoraW1wb3J0IG9zCitpbXBv
cnQgc3lzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAorZnJvbSBkaXN0dXRp
bHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0
ZXRpbWUsIHRpbWVkZWx0YQorCitpbXBvcnQgY29uZmlnCitpbXBvcnQgd3B0dGVzdAoraW1wb3J0
IGZvcm1hdHRlcnMKKworCitkZWYgYWJzX3BhdGgocGF0aCk6CisgICAgcmV0dXJuIG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmV4cGFuZHVzZXIocGF0aCkpCisKKworZGVmIHVybF9vcl9wYXRoKHBh
dGgpOgorICAgIGltcG9ydCB1cmxwYXJzZQorCisgICAgcGFyc2VkID0gdXJscGFyc2UudXJscGFy
c2UocGF0aCkKKyAgICBpZiBsZW4ocGFyc2VkLnNjaGVtZSkgPiAyOgorICAgICAgICByZXR1cm4g
cGF0aAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBhYnNfcGF0aChwYXRoKQorCisKK2RlZiBy
ZXF1aXJlX2FyZyhrd2FyZ3MsIG5hbWUsIHZhbHVlX2Z1bmM9Tm9uZSk6CisgICAgaWYgdmFsdWVf
ZnVuYyBpcyBOb25lOgorICAgICAgICB2YWx1ZV9mdW5jID0gbGFtYmRhIHg6IHggaXMgbm90IE5v
bmUKKworICAgIGlmIG5hbWUgbm90IGluIGt3YXJncyBvciBub3QgdmFsdWVfZnVuYyhrd2FyZ3Nb
bmFtZV0pOgorICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiTWlzc2luZyByZXF1aXJlZCBh
cmd1bWVudCAlcyIgJSBuYW1lCisgICAgICAgIHN5cy5leGl0KDEpCisKKworZGVmIGNyZWF0ZV9w
YXJzZXIocHJvZHVjdF9jaG9pY2VzPU5vbmUpOgorICAgIGZyb20gbW96bG9nIGltcG9ydCBjb21t
YW5kbGluZQorCisgICAgaW1wb3J0IHByb2R1Y3RzCisKKyAgICBpZiBwcm9kdWN0X2Nob2ljZXMg
aXMgTm9uZToKKyAgICAgICAgY29uZmlnX2RhdGEgPSBjb25maWcubG9hZCgpCisgICAgICAgIHBy
b2R1Y3RfY2hvaWNlcyA9IHByb2R1Y3RzLnByb2R1Y3RzX2VuYWJsZWQoY29uZmlnX2RhdGEpCisK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iIiJSdW5u
ZXIgZm9yIHdlYi1wbGF0Zm9ybS10ZXN0cyB0ZXN0cy4iIiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXNhZ2U9IiIiJShwcm9nKXMgW09QVElPTl0uLi4gW1RFU1RdLi4u
CisKK1RFU1QgaXMgZWl0aGVyIHRoZSBmdWxsIHBhdGggdG8gYSB0ZXN0IGZpbGUgdG8gcnVuLCBv
ciB0aGUgVVJMIG9mIGEgdGVzdCBleGNsdWRpbmcKK3NjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW1hbmlmZXN0LXVwZGF0ZSIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJl
Z2VuZXJhdGUgdGhlIHRlc3QgbWFuaWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LW5vLW1hbmlmZXN0LXVwZGF0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJtYW5pZmVz
dF91cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUHJldmVudCByZWdlbmVy
YXRpb24gb2YgdGhlIHRlc3QgbWFuaWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LW1hbmlmZXN0LWRvd25sb2FkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1Ob25lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQXR0ZW1wdCB0byBkb3dubG9hZCBhIHByZWV4
aXN0aW5nIG1hbmlmZXN0IHdoZW4gdXBkYXRpbmcuIikKKworICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tdGltZW91dC1tdWx0aXBsaWVyIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9ZmxvYXQsIGRl
ZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik11bHRpcGxpZXIgcmVs
YXRpdmUgdG8gc3RhbmRhcmQgdGVzdCB0aW1lb3V0IHRvIHVzZSIpCisgICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS1ydW4tYnktZGlyIiwgdHlwZT1pbnQsIG5hcmdzPSI/IiwgZGVmYXVsdD1GYWxz
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNwbGl0IHJ1biBpbnRvIGdyb3VwcyBi
eSBkaXJlY3Rvcmllcy4gV2l0aCBhIHBhcmFtZXRlciwiCisgICAgICAgICAgICAgICAgICAgICAg
ICAibGltaXQgdGhlIGRlcHRoIG9mIHNwbGl0cyBlLmcuIC0tcnVuLWJ5LWRpcj0xIHRvIHNwbGl0
IGJ5IHRvcC1sZXZlbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICJkaXJlY3RvcnkiKQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcHJvY2Vzc2VzIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9
aW50LCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJOdW1iZXIg
b2Ygc2ltdWx0YW5lb3VzIHByb2Nlc3NlcyB0byB1c2UiKQorCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1uby1jYXB0dXJlLXN0ZGlvIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGNhcHR1cmUgc3RkaW8g
YW5kIHdyaXRlIHRvIGxvZ2dpbmciKQorCisgICAgbW9kZV9ncm91cCA9IHBhcnNlci5hZGRfYXJn
dW1lbnRfZ3JvdXAoIk1vZGUiKQorICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxpc3Qt
dGVzdC1ncm91cHMiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
TGlzdCB0aGUgdG9wIGxldmVsIGRpcmVjdG9yaWVzIGNvbnRhaW5pbmcgdGVzdHMgdGhhdCB3aWxs
IHJ1bi4iKQorICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxpc3QtZGlzYWJsZWQiLCBh
Y3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTGlzdCB0aGUgdGVzdHMg
dGhhdCBhcmUgZGlzYWJsZWQgb24gdGhlIGN1cnJlbnQgcGxhdGZvcm0iKQorICAgIG1vZGVfZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLWxpc3QtdGVzdHMiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iTGlzdCBhbGwgdGVzdHMgdGhhdCB3aWxsIHJ1biIpCisgICAgbW9k
ZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IlJ1biBhIHN0YWJpbGl0eSBjaGVjayBvbiB0aGUgc2VsZWN0ZWQg
dGVzdHMiKQorICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeS1sb2ctZnVsbCIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJPdXRwdXQgcGVyLWl0
ZXJhdGlvbiB0ZXN0IHJlc3VsdHMgd2hlbiBydW5uaW5nIHZlcmlmeSIpCisgICAgbW9kZV9ncm91
cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5LXJlcGVhdC1sb29wIiwgYWN0aW9uPSJzdG9yZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0xMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJOdW1iZXIgb2YgaXRlcmF0aW9ucyBmb3IgYSBydW4gdGhhdCByZWxv
YWRzIGVhY2ggdGVzdCB3aXRob3V0IHJlc3RhcnQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPWludCkKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS12ZXJpZnktcmVw
ZWF0LXJlc3RhcnQiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTnVtYmVyIG9m
IGl0ZXJhdGlvbnMsIGZvciBhIHJ1biB0aGF0IHJlc3RhcnRzIHRoZSBydW5uZXIgYmV0d2VlbiBl
YWNoIGl0ZXJhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQpCisg
ICAgY2hhb3NfbW9kZV9ncm91cCA9IG1vZGVfZ3JvdXAuYWRkX211dHVhbGx5X2V4Y2x1c2l2ZV9n
cm91cCgpCisgICAgY2hhb3NfbW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5LW5vLWNo
YW9zLW1vZGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0idmVyaWZ5X2NoYW9zX21vZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkRpc2FibGUgY2hhb3MgbW9kZSB3aGVuIHJ1bm5pbmcgb24gRmlyZWZveCIp
CisgICAgY2hhb3NfbW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5LWNoYW9zLW1vZGUi
LCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJ2
ZXJpZnlfY2hhb3NfbW9kZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iRW5hYmxlIGNoYW9zIG1vZGUgd2hlbiBydW5uaW5nIG9uIEZpcmVmb3giKQorICAgIG1vZGVf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeS1tYXgtdGltZSIsIGFjdGlvbj0ic3RvcmUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyBmb3IgdGhl
IGpvYiB0byBydW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9bGFtYmRhIHg6
IHRpbWVkZWx0YShtaW51dGVzPWZsb2F0KHgpKSkKKyAgICBvdXRwdXRfcmVzdWx0c19ncm91cCA9
IG1vZGVfZ3JvdXAuYWRkX211dHVhbGx5X2V4Y2x1c2l2ZV9ncm91cCgpCisgICAgb3V0cHV0X3Jl
c3VsdHNfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeS1uby1vdXRwdXQtcmVzdWx0cyIsIGFj
dGlvbj0ic3RvcmVfZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSJ2ZXJpZnlfb3V0cHV0X3Jlc3VsdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlByaW50cyBpbmRpdmlkdWFscyB0ZXN0IHJlc3VsdHMgYW5kIG1lc3Nh
Z2VzIikKKyAgICBvdXRwdXRfcmVzdWx0c19ncm91cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5LW91
dHB1dC1yZXN1bHRzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0idmVyaWZ5X291dHB1dF9yZXN1bHRzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIHByaW50aW5nIGluZGl2aWR1
YWxzIHRlc3QgcmVzdWx0cyBhbmQgbWVzc2FnZXMiKQorCisgICAgdGVzdF9zZWxlY3Rpb25fZ3Jv
dXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJUZXN0IFNlbGVjdGlvbiIpCisgICAgdGVz
dF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXRlc3QtdHlwZXMiLCBhY3Rpb249InN0
b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFyZ3M9IioiLCBk
ZWZhdWx0PXdwdHRlc3QuZW5hYmxlZF90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hvaWNlcz13cHR0ZXN0LmVuYWJsZWRfdGVzdHMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlRlc3QgdHlwZXMgdG8gcnVuIikKKyAgICB0
ZXN0X3NlbGVjdGlvbl9ncm91cC5hZGRfYXJndW1lbnQoIi0taW5jbHVkZSIsIGFjdGlvbj0iYXBw
ZW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iVVJMIHBy
ZWZpeCB0byBpbmNsdWRlIikKKyAgICB0ZXN0X3NlbGVjdGlvbl9ncm91cC5hZGRfYXJndW1lbnQo
Ii0tZXhjbHVkZSIsIGFjdGlvbj0iYXBwZW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iVVJMIHByZWZpeCB0byBleGNsdWRlIikKKyAgICB0ZXN0X3NlbGVj
dGlvbl9ncm91cC5hZGRfYXJndW1lbnQoIi0taW5jbHVkZS1tYW5pZmVzdCIsIHR5cGU9YWJzX3Bh
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8g
bWFuaWZlc3QgbGlzdGluZyB0ZXN0cyB0byBpbmNsdWRlIikKKyAgICB0ZXN0X3NlbGVjdGlvbl9n
cm91cC5hZGRfYXJndW1lbnQoIi0tc2tpcC10aW1lb3V0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU2tpcCB0ZXN0cyB0
aGF0IGFyZSBleHBlY3RlZCB0byB0aW1lIG91dCIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLXRhZyIsIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0idGFncyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkxhYmVscyBhcHBsaWVkIHRv
IHRlc3RzIHRvIGluY2x1ZGUgaW4gdGhlIHJ1bi4gIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJMYWJlbHMgc3RhcnRpbmcgZGlyOiBhcmUgZXF1aXZhbGVudCB0
byB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMuIikKKworICAgIGRlYnVnZ2luZ19ncm91cCA9IHBhcnNl
ci5hZGRfYXJndW1lbnRfZ3JvdXAoIkRlYnVnZ2luZyIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFk
ZF9hcmd1bWVudCgnLS1kZWJ1Z2dlcicsIGNvbnN0PSJfX2RlZmF1bHRfXyIsIG5hcmdzPSI/IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biB1bmRlciBhIGRlYnVn
Z2VyLCBlLmcuIGdkYiBvciB2YWxncmluZCIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1
bWVudCgnLS1kZWJ1Z2dlci1hcmdzJywgaGVscD0iYXJndW1lbnRzIHRvIHRoZSBkZWJ1Z2dlciIp
CisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZXJ1biIsIGFjdGlvbj0ic3Rv
cmUiLCB0eXBlPWludCwgZGVmYXVsdD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iTnVtYmVyIG9mIHRpbWVzIHRvIHJlIHJ1biBlYWNoIHRlc3Qgd2l0aG91dCByZXN0
YXJ0cyIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZXBlYXQiLCBhY3Rp
b249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiB0aW1lcyB0byBydW4gdGhlIHRlc3RzLCByZXN0YXJ0
aW5nIGJldHdlZW4gZWFjaCBydW4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tcmVwZWF0LXVudGlsLXVuZXhwZWN0ZWQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGVzdHMg
aW4gYSBsb29wIHVudGlsIG9uZSByZXR1cm5zIGFuIHVuZXhwZWN0ZWQgcmVzdWx0IikKKyAgICBk
ZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXBhdXNlLWFmdGVyLXRlc3QnLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciBhZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFw
cGVucyBieSBkZWZhdWx0IGlmIG9ubHkgYSBzaW5nbGUgdGVzdCBpcyBydW4pIikKKyAgICBkZWJ1
Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLW5vLXBhdXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJw
YXVzZV9hZnRlcl90ZXN0IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBoYWx0IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3Bl
Y3RpdmUgb2YgdGhlIG51bWJlciBvZiB0ZXN0cyBydW4iKQorCisgICAgZGVidWdnaW5nX2dyb3Vw
LmFkZF9hcmd1bWVudCgnLS1wYXVzZS1vbi11bmV4cGVjdGVkJywgYWN0aW9uPSJzdG9yZV90cnVl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkhhbHQgdGhlIHRlc3Qg
cnVubmVyIHdoZW4gYW4gdW5leHBlY3RlZCByZXN1bHQgaXMgZW5jb3VudGVyZWQiKQorICAgIGRl
YnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tbm8tcmVzdGFydC1vbi11bmV4cGVjdGVkJywg
ZGVzdD0icmVzdGFydF9vbl91bmV4cGVjdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9VHJ1ZSwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCByZXN0YXJ0IG9uIGFuIHVuZXhwZWN0ZWQg
cmVzdWx0IikKKworICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tc3ltYm9scy1w
YXRoIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9dXJsX29yX3BhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIG9yIHVybCB0byBzeW1ib2xzIGZpbGUgdXNlZCB0
byBhbmFseXNlIGNyYXNoIG1pbmlkdW1wcy4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tc3RhY2t3YWxrLWJpbmFyeSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBzdGFja3dh
bGtlciBwcm9ncmFtIHVzZWQgdG8gYW5hbHlzZSBtaW5pZHVtcHMuIikKKworICAgIGRlYnVnZ2lu
Z19ncm91cC5hZGRfYXJndW1lbnQoIi0tcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRyb3AgaW50byBwZGIgb24gcHl0aG9u
IGV4Y2VwdGlvbiIpCisKKyAgICBjb25maWdfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dy
b3VwKCJDb25maWd1cmF0aW9uIikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWJp
bmFyeSIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT1hYnNfcGF0aCwgaGVscD0iQmluYXJ5IHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IikKKyAgICBjb25m
aWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLWJpbmFyeS1hcmcnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1bXSwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJiaW5hcnlfYXJn
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJFeHRyYSBhcmd1bWVudCBm
b3IgdGhlIGJpbmFyeSIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS13ZWJkcml2
ZXItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsIG1ldGF2YXI9IkJJTkFSWSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPWFic19wYXRoLCBoZWxwPSJXZWJEcml2ZXIgc2VydmVy
IGJpbmFyeSB0byB1c2UiKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJp
dmVyLWFyZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rp
b249ImFwcGVuZCIsIGRlc3Q9IndlYmRyaXZlcl9hcmdzIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkV4dHJhIGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIp
CisKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLW1ldGFkYXRhIiwgYWN0aW9uPSJz
dG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9Im1ldGFkYXRhX3Jvb3QiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byByb290IGRpcmVjdG9yeSBjb250YWluaW5n
IHRlc3QgbWV0YWRhdGEiKSwKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXRlc3Rz
IiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9InRlc3RzX3Jvb3QiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byByb290IGRpcmVjdG9yeSBj
b250YWluaW5nIHRlc3QgZmlsZXMiKSwKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LW1hbmlmZXN0IiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9Im1hbmlmZXN0
X3BhdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byB0ZXN0
IG1hbmlmZXN0IChkZWZhdWx0IGlzICR7bWV0YWRhdGFfcm9vdH0vTUFOSUZFU1QuanNvbikiKQor
ICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tcnVuLWluZm8iLCBhY3Rpb249InN0b3Jl
IiwgdHlwZT1hYnNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBh
dGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgZXh0cmEganNvbiBmaWxlcyB0byBhZGQgdG8gcnVu
IGluZm8iKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tcHJvZHVjdCIsIGFjdGlv
bj0ic3RvcmUiLCBjaG9pY2VzPXByb2R1Y3RfY2hvaWNlcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0iQnJvd3NlciBhZ2FpbnN0IHdoaWNoIHRvIHJ1
biB0ZXN0cyIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jb25maWciLCBhY3Rp
b249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwgZGVzdD0iY29uZmlnIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gY29uZmlnIGZpbGUiKQorICAgIGNvbmZpZ19n
cm91cC5hZGRfYXJndW1lbnQoIi0taW5zdGFsbC1mb250cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJBbGxvdyB0aGUgd3B0cnVubmVyIHRvIGluc3RhbGwg
Zm9udHMgb24geW91ciBzeXN0ZW0iKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0t
Zm9udC1kaXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwgZGVzdD0iZm9udF9kaXIi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBsb2NhbCBmb250
IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkiLCBkZWZhdWx0PU5vbmUpCisKKyAgICBidWlsZF90eXBl
ID0gcGFyc2VyLmFkZF9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXAoKQorICAgIGJ1aWxkX3R5cGUu
YWRkX2FyZ3VtZW50KCItLWRlYnVnLWJ1aWxkIiwgZGVzdD0iZGVidWciLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJCdWlsZCBpcyBhIGRlYnVnIGJ1aWxkIChvdmVy
cmlkZXMgYW55IG1vemluZm8gZmlsZSkiKQorICAgIGJ1aWxkX3R5cGUuYWRkX2FyZ3VtZW50KCIt
LXJlbGVhc2UtYnVpbGQiLCBkZXN0PSJkZWJ1ZyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJCdWlsZCBpcyBhIHJlbGVhc2UgKG92ZXJyaWRlcyBhbnkgbW96aW5m
byBmaWxlKSIpCisKKworICAgIGNodW5raW5nX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9n
cm91cCgiVGVzdCBDaHVua2luZyIpCisgICAgY2h1bmtpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LXRvdGFsLWNodW5rcyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVsdD0xLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUb3RhbCBudW1iZXIgb2YgY2h1bmtz
IHRvIHVzZSIpCisgICAgY2h1bmtpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXRoaXMtY2h1bmsi
LCBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iQ2h1bmsgbnVtYmVyIHRvIHJ1biIpCisgICAgY2h1bmtpbmdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLWNodW5rLXR5cGUiLCBhY3Rpb249InN0b3JlIiwgY2hvaWNl
cz1bIm5vbmUiLCAiZXF1YWxfdGltZSIsICJoYXNoIiwgImRpcl9oYXNoIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0iQ2h1bmtpbmcgdHlwZSB0
byB1c2UiKQorCisgICAgc3NsX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiU1NM
L1RMUyIpCisgICAgc3NsX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zc2wtdHlwZSIsIGFjdGlvbj0i
c3RvcmUiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsi
b3BlbnNzbCIsICJwcmVnZW5lcmF0ZWQiLCAibm9uZSJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iVHlwZSBvZiBzc2wgc3VwcG9ydCB0byBlbmFibGUgKHJ1bm5pbmcgd2l0aG91dCBz
c2wgbWF5IGxlYWQgdG8gc3B1cmlvdXMgZXJyb3JzKSIpCisKKyAgICBzc2xfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLW9wZW5zc2wtYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJQYXRoIHRvIG9wZW5zc2wgYmluYXJ5IiwgZGVmYXVsdD0ib3BlbnNz
bCIpCisgICAgc3NsX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jZXJ0dXRpbC1iaW5hcnkiLCBhY3Rp
b249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gY2VydHV0
aWwgYmluYXJ5IGZvciB1c2Ugd2l0aCBGaXJlZm94ICsgc3NsIikKKworICAgIHNzbF9ncm91cC5h
ZGRfYXJndW1lbnQoIi0tY2EtY2VydC1wYXRoIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3Bh
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGNhIGNlcnRpZmljYXRl
IHdoZW4gdXNpbmcgcHJlZ2VuZXJhdGVkIHNzbCBjZXJ0aWZpY2F0ZXMiKQorICAgIHNzbF9ncm91
cC5hZGRfYXJndW1lbnQoIi0taG9zdC1rZXktcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFi
c19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBob3N0IHByaXZh
dGUga2V5IHdoZW4gdXNpbmcgcHJlZ2VuZXJhdGVkIHNzbCBjZXJ0aWZpY2F0ZXMiKQorICAgIHNz
bF9ncm91cC5hZGRfYXJndW1lbnQoIi0taG9zdC1jZXJ0LXBhdGgiLCBhY3Rpb249InN0b3JlIiwg
dHlwZT1hYnNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gaG9z
dCBjZXJ0aWZpY2F0ZSB3aGVuIHVzaW5nIHByZWdlbmVyYXRlZCBzc2wgY2VydGlmaWNhdGVzIikK
KworICAgIGdlY2tvX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiR2Vja28tc3Bl
Y2lmaWMiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1wcmVmcy1yb290IiwgZGVz
dD0icHJlZnNfcm9vdCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHRoZSBmb2xkZXIgY29udGFpbmluZyBi
cm93c2VyIHByZWZzIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1l
MTBzIiwgZGVzdD0iZ2Vja29fZTEwcyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PVRy
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB0ZXN0cyB3aXRob3V0
IGVsZWN0cm9seXNpcyBwcmVmZXJlbmNlcyIpCisgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXN0YWNrZml4LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0ic3RvcmUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBjb250
YWluaW5nIGFzc2VydGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCisgICAgZ2Vja29fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLXNldHByZWYiLCBkZXN0PSJleHRyYV9wcmVmcyIsIGFjdGlvbj0nYXBw
ZW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwgbWV0YXZhcj0i
UFJFRj1WQUxVRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRlZmluZXMg
YW4gZXh0cmEgdXNlciBwcmVmZXJlbmNlIChvdmVycmlkZXMgdGhvc2UgaW4gcHJlZnNfcm9vdCki
KQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1sZWFrLWNoZWNrIiwgZGVzdD0ibGVh
a19jaGVjayIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IkVuYWJsZSBsZWFrIGNoZWNraW5nIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tc3R5bG8tdGhyZWFkcyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVs
dD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJOdW1iZXIgb2YgcGFyYWxs
ZWwgdGhyZWFkcyB0byB1c2UgZm9yIHN0eWxvIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1l
bnQoIi0tcmVmdGVzdC1pbnRlcm5hbCIsIGRlc3Q9InJlZnRlc3RfaW50ZXJuYWwiLCBhY3Rpb249
InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUs
IGhlbHA9IkVuYWJsZSByZWZ0ZXN0IHJ1bm5lciBpbXBsZW1lbnRlZCBpbnNpZGUgTWFyaW9uZXR0
ZSIpCisgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXJlZnRlc3QtZXh0ZXJuYWwiLCBk
ZXN0PSJyZWZ0ZXN0X2ludGVybmFsIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpc2FibGUgcmVmdGVzdCBydW5uZXIgaW1wbGVtZW50
ZWQgaW5zaWRlIE1hcmlvbmV0dGUiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1y
ZWZ0ZXN0LXNjcmVlbnNob3QiLCBkZXN0PSJyZWZ0ZXN0X3NjcmVlbnNob3QiLCBhY3Rpb249InN0
b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bImFsd2F5cyIsICJm
YWlsIiwgInVuZXhwZWN0ZWQiXSwgZGVmYXVsdD0idW5leHBlY3RlZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IldpdGggLS1yZWZ0ZXN0LWludGVybmFsLCB3aGVuIHRvIHRh
a2UgYSBzY3JlZW5zaG90IikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tY2hhb3Mi
LCBkZXN0PSJjaGFvc19tb2RlX2ZsYWdzIiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hcmdzPSI/IiwgY29uc3Q9MHhGRkZGRkZGRiwgdHlwZT1pbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkVuYWJsZSBjaGFvcyBtb2RlIHdpdGgg
dGhlIHNwZWNpZmllZCBmZWF0dXJlIGZsYWcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiKHNlZSBodHRwOi8vc2VhcmNoZm94Lm9yZy9tb3ppbGxhLWNlbnRyYWwvc291cmNlL21mYnQv
Q2hhb3NNb2RlLmggZm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRldGFpbHMp
LiBJZiBubyB2YWx1ZSBpcyBzdXBwbGllZCwgYWxsIGZlYXR1cmVzIGFyZSBhY3RpdmF0ZWQiKQor
CisgICAgc2Vydm9fZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTZXJ2by1zcGVj
aWZpYyIpCisgICAgc2Vydm9fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXVzZXItc3R5bGVzaGVldCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5k
IiwgZGVzdD0idXNlcl9zdHlsZXNoZWV0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IkluamVjdCBhIHVzZXIgQ1NTIHN0eWxlc2hlZXQgaW50byBldmVyeSB0ZXN0LiIpCisK
KyAgICBzYXVjZV9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIlNhdWNlIExhYnMt
c3BlY2lmaWMiKQorICAgIHNhdWNlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS1icm93c2Vy
IiwgZGVzdD0ic2F1Y2VfYnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlNhdWNlIExhYnMgYnJvd3NlciBuYW1lIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1l
bnQoIi0tc2F1Y2UtcGxhdGZvcm0iLCBkZXN0PSJzYXVjZV9wbGF0Zm9ybSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IlNhdWNlIExhYnMgT1MgcGxhdGZvcm0iKQorICAgIHNh
dWNlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS12ZXJzaW9uIiwgZGVzdD0ic2F1Y2VfdmVy
c2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNhdWNlIExhYnMgYnJv
d3NlciB2ZXJzaW9uIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtYnVp
bGQiLCBkZXN0PSJzYXVjZV9idWlsZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlNhdWNlIExhYnMgYnVpbGQgaWRlbnRpZmllciIpCisgICAgc2F1Y2VfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLXNhdWNlLXRhZ3MiLCBkZXN0PSJzYXVjZV90YWdzIiwgbmFyZ3M9IioiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTYXVjZSBMYWJzIGlkZW50aWZ5aW5nIHRh
ZyIsIGRlZmF1bHQ9W10pCisgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLXR1
bm5lbC1pZCIsIGRlc3Q9InNhdWNlX3R1bm5lbF9pZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IlNhdWNlIENvbm5lY3QgdHVubmVsIGlkZW50aWZpZXIiKQorICAgIHNhdWNl
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS11c2VyIiwgZGVzdD0ic2F1Y2VfdXNlciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNhdWNlIExhYnMgdXNlciBuYW1lIikK
KyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2Uta2V5IiwgZGVzdD0ic2F1Y2Vf
a2V5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1vcy5lbnZpcm9uLmdl
dCgiU0FVQ0VfQUNDRVNTX0tFWSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJTYXVjZSBMYWJzIGFjY2VzcyBrZXkiKQorICAgIHNhdWNlX2dyb3VwLmFkZF9hcmd1bWVudCgi
LS1zYXVjZS1jb25uZWN0LWJpbmFyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9InNhdWNlX2Nvbm5lY3RfYmluYXJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iUGF0aCB0byBTYXVjZSBDb25uZWN0IGJpbmFyeSIpCisKKyAgICB3ZWJraXRfZ3JvdXAg
PSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQorICAgIHdlYmtp
dF9ncm91cC5hZGRfYXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRfcG9ydCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IldlYktpdCBwb3J0IikKKworICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoInRlc3RfbGlzdCIsIG5hcmdzPSIqIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgVVJMcyBmb3IgdGVzdHMgdG8gcnVuLCBvciBwYXRo
cyBpbmNsdWRpbmcgdGVzdHMgdG8gcnVuLiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIoZXF1aXZhbGVudCB0byAtLWluY2x1ZGUpIikKKworICAgIGNvbW1hbmRsaW5lLmxvZ19mb3Jt
YXR0ZXJzWyJ3cHRyZXBvcnQiXSA9IChmb3JtYXR0ZXJzLldwdHJlcG9ydEZvcm1hdHRlciwgIndw
dHJlcG9ydCBmb3JtYXQiKQorCisgICAgY29tbWFuZGxpbmUuYWRkX2xvZ2dpbmdfZ3JvdXAocGFy
c2VyKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgc2V0X2Zyb21fY29uZmlnKGt3YXJncyk6
CisgICAgaWYga3dhcmdzWyJjb25maWciXSBpcyBOb25lOgorICAgICAgICBjb25maWdfcGF0aCA9
IGNvbmZpZy5wYXRoKCkKKyAgICBlbHNlOgorICAgICAgICBjb25maWdfcGF0aCA9IGt3YXJnc1si
Y29uZmlnIl0KKworICAgIGt3YXJnc1siY29uZmlnX3BhdGgiXSA9IGNvbmZpZ19wYXRoCisKKyAg
ICBrd2FyZ3NbImNvbmZpZyJdID0gY29uZmlnLnJlYWQoa3dhcmdzWyJjb25maWdfcGF0aCJdKQor
CisgICAga2V5cyA9IHsicGF0aHMiOiBbKCJwcmVmcyIsICJwcmVmc19yb290IiwgVHJ1ZSksCisg
ICAgICAgICAgICAgICAgICAgICAgKCJydW5faW5mbyIsICJydW5faW5mbyIsIFRydWUpXSwKKyAg
ICAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMiOiBbKCJyZW1vdGVfdXJsIiwgInJlbW90ZV91
cmwiLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiYnJhbmNo
IiwgImJyYW5jaCIsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJzeW5jX3BhdGgiLCAic3luY19wYXRoIiwgVHJ1ZSldLAorICAgICAgICAgICAgIlNTTCI6IFso
Im9wZW5zc2xfYmluYXJ5IiwgIm9wZW5zc2xfYmluYXJ5IiwgVHJ1ZSksCisgICAgICAgICAgICAg
ICAgICAgICgiY2VydHV0aWxfYmluYXJ5IiwgImNlcnR1dGlsX2JpbmFyeSIsIFRydWUpLAorICAg
ICAgICAgICAgICAgICAgICAoImNhX2NlcnRfcGF0aCIsICJjYV9jZXJ0X3BhdGgiLCBUcnVlKSwK
KyAgICAgICAgICAgICAgICAgICAgKCJob3N0X2NlcnRfcGF0aCIsICJob3N0X2NlcnRfcGF0aCIs
IFRydWUpLAorICAgICAgICAgICAgICAgICAgICAoImhvc3Rfa2V5X3BhdGgiLCAiaG9zdF9rZXlf
cGF0aCIsIFRydWUpXX0KKworICAgIGZvciBzZWN0aW9uLCB2YWx1ZXMgaW4ga2V5cy5pdGVyaXRl
bXMoKToKKyAgICAgICAgZm9yIGNvbmZpZ192YWx1ZSwga3dfdmFsdWUsIGlzX3BhdGggaW4gdmFs
dWVzOgorICAgICAgICAgICAgaWYga3dfdmFsdWUgaW4ga3dhcmdzIGFuZCBrd2FyZ3Nba3dfdmFs
dWVdIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaWYgbm90IGlzX3BhdGg6CisgICAgICAgICAg
ICAgICAgICAgIG5ld192YWx1ZSA9IGt3YXJnc1siY29uZmlnIl0uZ2V0KHNlY3Rpb24sIGNvbmZp
Zy5Db25maWdEaWN0KHt9KSkuZ2V0KGNvbmZpZ192YWx1ZSkKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBuZXdfdmFsdWUgPSBrd2FyZ3NbImNvbmZpZyJdLmdldChz
ZWN0aW9uLCBjb25maWcuQ29uZmlnRGljdCh7fSkpLmdldF9wYXRoKGNvbmZpZ192YWx1ZSkKKyAg
ICAgICAgICAgICAgICBrd2FyZ3Nba3dfdmFsdWVdID0gbmV3X3ZhbHVlCisKKyAgICBrd2FyZ3Nb
InRlc3RfcGF0aHMiXSA9IGdldF90ZXN0X3BhdGhzKGt3YXJnc1siY29uZmlnIl0pCisKKyAgICBp
ZiBrd2FyZ3NbInRlc3RzX3Jvb3QiXToKKyAgICAgICAgaWYgIi8iIG5vdCBpbiBrd2FyZ3NbInRl
c3RfcGF0aHMiXToKKyAgICAgICAgICAgIGt3YXJnc1sidGVzdF9wYXRocyJdWyIvIl0gPSB7fQor
ICAgICAgICBrd2FyZ3NbInRlc3RfcGF0aHMiXVsiLyJdWyJ0ZXN0c19wYXRoIl0gPSBrd2FyZ3Nb
InRlc3RzX3Jvb3QiXQorCisgICAgaWYga3dhcmdzWyJtZXRhZGF0YV9yb290Il06CisgICAgICAg
IGlmICIvIiBub3QgaW4ga3dhcmdzWyJ0ZXN0X3BhdGhzIl06CisgICAgICAgICAgICBrd2FyZ3Nb
InRlc3RfcGF0aHMiXVsiLyJdID0ge30KKyAgICAgICAga3dhcmdzWyJ0ZXN0X3BhdGhzIl1bIi8i
XVsibWV0YWRhdGFfcGF0aCJdID0ga3dhcmdzWyJtZXRhZGF0YV9yb290Il0KKworICAgIGlmIGt3
YXJnc1sibWFuaWZlc3RfcGF0aCJdOgorICAgICAgICBpZiAiLyIgbm90IGluIGt3YXJnc1sidGVz
dF9wYXRocyJdOgorICAgICAgICAgICAga3dhcmdzWyJ0ZXN0X3BhdGhzIl1bIi8iXSA9IHt9Cisg
ICAgICAgIGt3YXJnc1sidGVzdF9wYXRocyJdWyIvIl1bIm1hbmlmZXN0X3BhdGgiXSA9IGt3YXJn
c1sibWFuaWZlc3RfcGF0aCJdCisKKyAgICBrd2FyZ3NbInN1aXRlX25hbWUiXSA9IGt3YXJnc1si
Y29uZmlnIl0uZ2V0KCJ3ZWItcGxhdGZvcm0tdGVzdHMiLCB7fSkuZ2V0KCJuYW1lIiwgIndlYi1w
bGF0Zm9ybS10ZXN0cyIpCisKKworZGVmIGdldF90ZXN0X3BhdGhzKGNvbmZpZyk6CisgICAgIyBT
ZXQgdXAgdGVzdF9wYXRocworICAgIHRlc3RfcGF0aHMgPSBPcmRlcmVkRGljdCgpCisKKyAgICBm
b3Igc2VjdGlvbiBpbiBjb25maWcuaXRlcmtleXMoKToKKyAgICAgICAgaWYgc2VjdGlvbi5zdGFy
dHN3aXRoKCJtYW5pZmVzdDoiKToKKyAgICAgICAgICAgIG1hbmlmZXN0X29wdHMgPSBjb25maWcu
Z2V0KHNlY3Rpb24pCisgICAgICAgICAgICB1cmxfYmFzZSA9IG1hbmlmZXN0X29wdHMuZ2V0KCJ1
cmxfYmFzZSIsICIvIikKKyAgICAgICAgICAgIHRlc3RfcGF0aHNbdXJsX2Jhc2VdID0geworICAg
ICAgICAgICAgICAgICJ0ZXN0c19wYXRoIjogbWFuaWZlc3Rfb3B0cy5nZXRfcGF0aCgidGVzdHMi
KSwKKyAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCI6IG1hbmlmZXN0X29wdHMuZ2V0X3Bh
dGgoIm1ldGFkYXRhIiksCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAibWFuaWZlc3Qi
IGluIG1hbmlmZXN0X29wdHM6CisgICAgICAgICAgICAgICAgdGVzdF9wYXRoc1t1cmxfYmFzZV1b
Im1hbmlmZXN0X3BhdGgiXSA9IG1hbmlmZXN0X29wdHMuZ2V0X3BhdGgoIm1hbmlmZXN0IikKKwor
ICAgIHJldHVybiB0ZXN0X3BhdGhzCisKKworZGVmIGV4ZV9wYXRoKG5hbWUpOgorICAgIGlmIG5h
bWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuCisKKyAgICBwYXRoID0gZmluZF9leGVjdXRhYmxl
KG5hbWUpCisgICAgaWYgcGF0aCBhbmQgb3MuYWNjZXNzKHBhdGgsIG9zLlhfT0spOgorICAgICAg
ICByZXR1cm4gcGF0aAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBOb25lCisKKworZGVmIGNo
ZWNrX3BhdGhzKGt3YXJncyk6CisgICAgZm9yIHRlc3RfcGF0aHMgaW4ga3dhcmdzWyJ0ZXN0X3Bh
dGhzIl0uaXRlcnZhbHVlcygpOgorICAgICAgICBpZiBub3QgKCJ0ZXN0c19wYXRoIiBpbiB0ZXN0
X3BhdGhzIGFuZAorICAgICAgICAgICAgICAgICJtZXRhZGF0YV9wYXRoIiBpbiB0ZXN0X3BhdGhz
KToKKyAgICAgICAgICAgIHByaW50ICJGYXRhbDogbXVzdCBzcGVjaWZ5IGJvdGggYSB0ZXN0IHBh
dGggYW5kIG1ldGFkYXRhIHBhdGgiCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBp
ZiAibWFuaWZlc3RfcGF0aCIgbm90IGluIHRlc3RfcGF0aHM6CisgICAgICAgICAgICB0ZXN0X3Bh
dGhzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpvaW4odGVzdF9wYXRoc1sibWV0YWRhdGFf
cGF0aCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJNQU5JRkVTVC5qc29uIikKKyAgICAgICAgZm9yIGtleSwgcGF0aCBpbiB0ZXN0X3Bh
dGhzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgbmFtZSA9IGtleS5zcGxpdCgiXyIsIDEpWzBd
CisKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gIm1hbmlmZXN0IjoKKyAgICAgICAgICAgICAgICAj
IEZvciB0aGUgbWFuaWZlc3Qgd2UgY2FuIGNyZWF0ZSBpdCBsYXRlciwgc28ganVzdCBjaGVjayB0
aGUgcGF0aAorICAgICAgICAgICAgICAgICMgYWN0dWFsbHkgZXhpc3RzCisgICAgICAgICAgICAg
ICAgcGF0aCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQorCisgICAgICAgICAgICBpZiBub3Qgb3Mu
cGF0aC5leGlzdHMocGF0aCk6CisgICAgICAgICAgICAgICAgcHJpbnQgIkZhdGFsOiAlcyBwYXRo
ICVzIGRvZXMgbm90IGV4aXN0IiAlIChuYW1lLCBwYXRoKQorICAgICAgICAgICAgICAgIHN5cy5l
eGl0KDEpCisKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAg
ICAgICAgICAgIHByaW50ICJGYXRhbDogJXMgcGF0aCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiICUg
KG5hbWUsIHBhdGgpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworCitkZWYgY2hlY2tf
YXJncyhrd2FyZ3MpOgorICAgIHNldF9mcm9tX2NvbmZpZyhrd2FyZ3MpCisKKyAgICBjaGVja19w
YXRocyhrd2FyZ3MpCisKKyAgICBpZiBrd2FyZ3NbInByb2R1Y3QiXSBpcyBOb25lOgorICAgICAg
ICBrd2FyZ3NbInByb2R1Y3QiXSA9ICJmaXJlZm94IgorCisgICAgaWYgInNhdWNlIiBpbiBrd2Fy
Z3NbInByb2R1Y3QiXToKKyAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxz
ZQorCisgICAgaWYga3dhcmdzWyJ0ZXN0X2xpc3QiXToKKyAgICAgICAgaWYga3dhcmdzWyJpbmNs
dWRlIl0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBrd2FyZ3NbImluY2x1ZGUiXS5leHRlbmQo
a3dhcmdzWyJ0ZXN0X2xpc3QiXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGt3YXJnc1si
aW5jbHVkZSJdID0ga3dhcmdzWyJ0ZXN0X2xpc3QiXQorCisgICAgaWYga3dhcmdzWyJydW5faW5m
byJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1sicnVuX2luZm8iXSA9IGt3YXJnc1siY29uZmln
X3BhdGgiXQorCisgICAgaWYga3dhcmdzWyJ0aGlzX2NodW5rIl0gPiAxOgorICAgICAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJ0b3RhbF9jaHVua3MiLCBsYW1iZGEgeDogeCA+PSBrd2FyZ3NbInRo
aXNfY2h1bmsiXSkKKworICAgIGlmIGt3YXJnc1siY2h1bmtfdHlwZSJdIGlzIE5vbmU6CisgICAg
ICAgIGlmIGt3YXJnc1sidG90YWxfY2h1bmtzIl0gPiAxOgorICAgICAgICAgICAga3dhcmdzWyJj
aHVua190eXBlIl0gPSAiZGlyX2hhc2giCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBrd2Fy
Z3NbImNodW5rX3R5cGUiXSA9ICJub25lIgorCisgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMiXSBp
cyBOb25lOgorICAgICAgICBrd2FyZ3NbInByb2Nlc3NlcyJdID0gMQorCisgICAgaWYga3dhcmdz
WyJkZWJ1Z2dlciJdIGlzIG5vdCBOb25lOgorICAgICAgICBpbXBvcnQgbW96ZGVidWcKKyAgICAg
ICAgaWYga3dhcmdzWyJkZWJ1Z2dlciJdID09ICJfX2RlZmF1bHRfXyI6CisgICAgICAgICAgICBr
d2FyZ3NbImRlYnVnZ2VyIl0gPSBtb3pkZWJ1Zy5nZXRfZGVmYXVsdF9kZWJ1Z2dlcl9uYW1lKCkK
KyAgICAgICAgZGVidWdfaW5mbyA9IG1vemRlYnVnLmdldF9kZWJ1Z2dlcl9pbmZvKGt3YXJnc1si
ZGVidWdnZXIiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGt3YXJnc1siZGVidWdnZXJfYXJncyJdKQorICAgICAgICBpZiBkZWJ1Z19pbmZvIGFuZCBk
ZWJ1Z19pbmZvLmludGVyYWN0aXZlOgorICAgICAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMi
XSAhPSAxOgorICAgICAgICAgICAgICAgIGt3YXJnc1sicHJvY2Vzc2VzIl0gPSAxCisgICAgICAg
ICAgICBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSA9IFRydWUKKyAgICAgICAga3dhcmdzWyJk
ZWJ1Z19pbmZvIl0gPSBkZWJ1Z19pbmZvCisgICAgZWxzZToKKyAgICAgICAga3dhcmdzWyJkZWJ1
Z19pbmZvIl0gPSBOb25lCisKKyAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgor
ICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa3dhcmdzWyJiaW5hcnkiXSk6CisgICAgICAg
ICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiQmluYXJ5IHBhdGggJXMgZG9lcyBub3QgZXhpc3Qi
ICUga3dhcmdzWyJiaW5hcnkiXQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIGt3
YXJnc1sic3NsX3R5cGUiXSBpcyBOb25lOgorICAgICAgICBpZiBOb25lIG5vdCBpbiAoa3dhcmdz
WyJjYV9jZXJ0X3BhdGgiXSwga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdLCBrd2FyZ3NbImhvc3Rf
a2V5X3BhdGgiXSk6CisgICAgICAgICAgICBrd2FyZ3NbInNzbF90eXBlIl0gPSAicHJlZ2VuZXJh
dGVkIgorICAgICAgICBlbGlmIGV4ZV9wYXRoKGt3YXJnc1sib3BlbnNzbF9iaW5hcnkiXSkgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBrd2FyZ3NbInNzbF90eXBlIl0gPSAib3BlbnNzbCIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGt3YXJnc1sic3NsX3R5cGUiXSA9ICJub25lIgorCisg
ICAgaWYga3dhcmdzWyJzc2xfdHlwZSJdID09ICJwcmVnZW5lcmF0ZWQiOgorICAgICAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJjYV9jZXJ0X3BhdGgiLCBsYW1iZGEgeDpvcy5wYXRoLmV4aXN0cyh4
KSkKKyAgICAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiaG9zdF9jZXJ0X3BhdGgiLCBsYW1iZGEg
eDpvcy5wYXRoLmV4aXN0cyh4KSkKKyAgICAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiaG9zdF9r
ZXlfcGF0aCIsIGxhbWJkYSB4Om9zLnBhdGguZXhpc3RzKHgpKQorCisgICAgZWxpZiBrd2FyZ3Nb
InNzbF90eXBlIl0gPT0gIm9wZW5zc2wiOgorICAgICAgICBwYXRoID0gZXhlX3BhdGgoa3dhcmdz
WyJvcGVuc3NsX2JpbmFyeSJdKQorICAgICAgICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgICAg
ICBwcmludCA+PiBzeXMuc3RkZXJyLCAib3BlbnNzbC1iaW5hcnkgYXJndW1lbnQgbWlzc2luZyBv
ciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAg
ICAga3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdID0gcGF0aAorCisgICAgaWYga3dhcmdzWyJzc2xf
dHlwZSJdICE9ICJub25lIiBhbmQga3dhcmdzWyJwcm9kdWN0Il0gPT0gImZpcmVmb3giIGFuZCBr
d2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdOgorICAgICAgICBwYXRoID0gZXhlX3BhdGgoa3dhcmdz
WyJjZXJ0dXRpbF9iaW5hcnkiXSkKKyAgICAgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICAg
ICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgImNlcnR1dGlsLWJpbmFyeSBhcmd1bWVudCBtaXNzaW5n
IG9yIG5vdCBhIHZhbGlkIGV4ZWN1dGFibGUiCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAg
ICAgICBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdID0gcGF0aAorCisgICAgaWYga3dhcmdzWydl
eHRyYV9wcmVmcyddOgorICAgICAgICBtaXNzaW5nID0gYW55KCc9JyBub3QgaW4gcHJlZmFyZyBm
b3IgcHJlZmFyZyBpbiBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10pCisgICAgICAgIGlmIG1pc3Npbmc6
CisgICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiUHJlZmVyZW5jZXMgdmlhIC0tc2V0
cHJlZiBtdXN0IGJlIGluIGtleT12YWx1ZSBmb3JtYXQiCisgICAgICAgICAgICBzeXMuZXhpdCgx
KQorICAgICAgICBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10gPSBbdHVwbGUocHJlZmFyZy5zcGxpdCgn
PScsIDEpKSBmb3IgcHJlZmFyZyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a3dhcmdzWydleHRyYV9wcmVmcyddXQorCisgICAgaWYga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFs
Il0gaXMgTm9uZToKKyAgICAgICAgIyBEZWZhdWx0IHRvIHRoZSBpbnRlcm5hbCByZWZ0ZXN0IGlt
cGxlbWVudGF0aW9uIG9uIExpbnV4IGFuZCBPU1gKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X2lu
dGVybmFsIl0gPSBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgibGludXgiKSBvciBzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgiZGFyd2luIikKKworICAgIHJldHVybiBrd2FyZ3MKKworCitkZWYgY2hl
Y2tfYXJnc191cGRhdGUoa3dhcmdzKToKKyAgICBzZXRfZnJvbV9jb25maWcoa3dhcmdzKQorCisg
ICAgY2hlY2tfcGF0aHMoa3dhcmdzKQorCisgICAgaWYga3dhcmdzWyJwcm9kdWN0Il0gaXMgTm9u
ZToKKyAgICAgICAga3dhcmdzWyJwcm9kdWN0Il0gPSAiZmlyZWZveCIKKyAgICBpZiBrd2FyZ3Nb
InBhdGNoIl0gaXMgTm9uZToKKyAgICAgICAga3dhcmdzWyJwYXRjaCJdID0ga3dhcmdzWyJzeW5j
Il0KKworICAgIGZvciBpdGVtIGluIGt3YXJnc1sicnVuX2xvZyJdOgorICAgICAgICBpZiBvcy5w
YXRoLmlzZGlyKGl0ZW0pOgorICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIkxvZyBm
aWxlICVzIGlzIGEgZGlyZWN0b3J5IiAlIGl0ZW0KKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisK
KyAgICByZXR1cm4ga3dhcmdzCisKKworZGVmIGNyZWF0ZV9wYXJzZXJfdXBkYXRlKHByb2R1Y3Rf
Y2hvaWNlcz1Ob25lKToKKyAgICBmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkIGltcG9ydCBjb21tYW5k
bGluZQorCisgICAgaW1wb3J0IHByb2R1Y3RzCisKKyAgICBpZiBwcm9kdWN0X2Nob2ljZXMgaXMg
Tm9uZToKKyAgICAgICAgY29uZmlnX2RhdGEgPSBjb25maWcubG9hZCgpCisgICAgICAgIHByb2R1
Y3RfY2hvaWNlcyA9IHByb2R1Y3RzLnByb2R1Y3RzX2VuYWJsZWQoY29uZmlnX2RhdGEpCisKKyAg
ICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigid2ViLXBsYXRmb3JtLXRlc3RzLXVw
ZGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249
IlVwZGF0ZSBzY3JpcHQgZm9yIHdlYi1wbGF0Zm9ybS10ZXN0cyB0ZXN0cy4iKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tcHJvZHVjdCIsIGFjdGlvbj0ic3RvcmUiLCBjaG9pY2VzPXByb2R1
Y3RfY2hvaWNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0i
QnJvd3NlciBmb3Igd2hpY2ggbWV0YWRhdGEgaXMgYmVpbmcgdXBkYXRlZCIpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1jb25maWciLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwg
aGVscD0iUGF0aCB0byBjb25maWcgZmlsZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1t
ZXRhZGF0YSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLCBkZXN0PSJtZXRhZGF0YV9y
b290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gdGhlIGZvbGRlciBj
b250YWluaW5nIHRlc3QgbWV0YWRhdGEiKSwKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXRl
c3RzIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9InRlc3RzX3Jvb3QiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byB3ZWItcGxhdGZvcm0tdGVzdHMi
KSwKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW1hbmlmZXN0IiwgYWN0aW9uPSJzdG9yZSIs
IHR5cGU9YWJzX3BhdGgsIGRlc3Q9Im1hbmlmZXN0X3BhdGgiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iUGF0aCB0byB0ZXN0IG1hbmlmZXN0IChkZWZhdWx0IGlzICR7bWV0YWRhdGFf
cm9vdH0vTUFOSUZFU1QuanNvbikiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tc3luYy1w
YXRoIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJQYXRoIHRvIHN0b3JlIGdpdCBjaGVja291dCBvZiB3ZWItcGxhdGZvcm0tdGVz
dHMgZHVyaW5nIHVwZGF0ZSIpLAorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVtb3RlX3Vy
bCIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iVVJMIG9m
IHdlYi1wbGF0ZnJvbS10ZXN0cyByZXBvc2l0b3J5IHRvIHN5bmMgYWdhaW5zdCIpLAorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoIi0tYnJhbmNoIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3Bh
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSZW1vdGUgYnJhbmNoIHRvIHN5bmMg
YWdhaW5zdCIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZXYiLCBhY3Rpb249InN0b3Jl
IiwgaGVscD0iUmV2aXNpb24gdG8gc3luYyB0byIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1wYXRjaCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InBhdGNoIiwgZGVmYXVsdD1Ob25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQ3JlYXRlIGEgVkNTIGNvbW1pdCBjb250
YWluaW5nIHRoZSBjaGFuZ2VzLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1uby1wYXRj
aCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJwYXRjaCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJEb24ndCBjcmVhdGUgYSBWQ1MgY29tbWl0IGNvbnRhaW5pbmcgdGhlIGNo
YW5nZXMuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXN5bmMiLCBkZXN0PSJzeW5jIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IlN5bmMgdGhlIHRlc3RzIHdpdGggdGhlIGxhdGVzdCBmcm9tIHVwc3RyZWFtIChp
bXBsaWVzIC0tcGF0Y2gpIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWlnbm9yZS1leGlz
dGluZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJXaGVuIHVwZGF0aW5nIHRlc3QgcmVzdWx0cyBvbmx5IGNvbnNpZGVyIHJlc3VsdHMgZnJvbSB0
aGUgbG9nZmlsZXMgcHJvdmlkZWQsIG5vdCBleGlzdGluZyBleHBlY3RhdGlvbnMuIikKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLXN0YWJpbGl0eSIsIG5hcmdzPSI/IiwgYWN0aW9uPSJzdG9y
ZSIsIGNvbnN0PSJ1bnN0YWJsZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgaGVscD0oIlJlYXNv
biBmb3IgZGlzYWJsaW5nIHRlc3RzLiBXaGVuIHVwZGF0aW5nIHRlc3QgcmVzdWx0cywgZGlzYWJs
ZSB0ZXN0cyB0aGF0IGhhdmUgIgorICAgICAgICAgICAgICAiaW5jb25zaXN0ZW50IHJlc3VsdHMg
YWNyb3NzIG1hbnkgcnVucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uIikpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1jb250aW51ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkNvbnRp
bnVlIGEgcHJldmlvdXNseSBzdGFydGVkIHJ1biBvZiB0aGUgdXBkYXRlIHNjcmlwdCIpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1hYm9ydCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9
IkNsZWFyIHN0YXRlIGZyb20gYSBwcmV2aW91cyBpbmNvbXBsZXRlIHJ1biBvZiB0aGUgdXBkYXRl
IHNjcmlwdCIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwgYWN0aW9uPSJz
dG9yZSIsIG5hcmdzPSIqIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2Yg
Z2xvYi1zdHlsZSBwYXRocyB0byBleGNsdWRlIHdoZW4gc3luY2luZyB0ZXN0cyIpCisgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJzdG9yZSIsIG5hcmdzPSIqIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgZ2xvYi1zdHlsZSBwYXRocyB0
byBpbmNsdWRlIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBiZSBleGNsdWRlZCB3aGVuIHN5bmNpbmcg
dGVzdHMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZXh0cmEtcHJvcGVydHkiLCBhY3Rp
b249ImFwcGVuZCIsIGRlZmF1bHQ9W10sCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJF
eHRyYSBwcm9wZXJ0eSBmcm9tIHJ1bl9pbmZvLmpzb24gdG8gdXNlIGluIG1ldGFkYXRhIHVwZGF0
ZSIpCisgICAgIyBTaG91bGQgbWFrZSB0aGlzIHJlcXVpcmVkIGlmZiBydW49bG9nZmlsZQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoInJ1bl9sb2ciLCBuYXJncz0iKiIsIHR5cGU9YWJzX3BhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMb2cgZmlsZSBmcm9tIHJ1biBvZiB0ZXN0
cyIpCisgICAgY29tbWFuZGxpbmUuYWRkX2xvZ2dpbmdfZ3JvdXAocGFyc2VyKQorICAgIHJldHVy
biBwYXJzZXIKKworCitkZWYgY3JlYXRlX3BhcnNlcl9yZWR1Y2UocHJvZHVjdF9jaG9pY2VzPU5v
bmUpOgorICAgIHBhcnNlciA9IGNyZWF0ZV9wYXJzZXIocHJvZHVjdF9jaG9pY2VzKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoInRhcmdldCIsIGFjdGlvbj0ic3RvcmUiLCBoZWxwPSJUZXN0IGlk
IHRoYXQgaXMgdW5zdGFibGUiKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgcGFyc2VfYXJn
cygpOgorICAgIHBhcnNlciA9IGNyZWF0ZV9wYXJzZXIoKQorICAgIHJ2ID0gdmFycyhwYXJzZXIu
cGFyc2VfYXJncygpKQorICAgIGNoZWNrX2FyZ3MocnYpCisgICAgcmV0dXJuIHJ2CisKKworZGVm
IHBhcnNlX2FyZ3NfdXBkYXRlKCk6CisgICAgcGFyc2VyID0gY3JlYXRlX3BhcnNlcl91cGRhdGUo
KQorICAgIHJ2ID0gdmFycyhwYXJzZXIucGFyc2VfYXJncygpKQorICAgIGNoZWNrX2FyZ3NfdXBk
YXRlKHJ2KQorICAgIHJldHVybiBydgorCisKK2RlZiBwYXJzZV9hcmdzX3JlZHVjZSgpOgorICAg
IHBhcnNlciA9IGNyZWF0ZV9wYXJzZXJfcmVkdWNlKCkKKyAgICBydiA9IHZhcnMocGFyc2VyLnBh
cnNlX2FyZ3MoKSkKKyAgICBjaGVja19hcmdzKHJ2KQorICAgIHJldHVybiBydgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNmQxNzRjMDY2YmMzODFiYzNiMTY4ODYzMjI1ODBlNGUyMGZlOGE0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKQEAgLTAsMCArMSwx
MzUgQEAKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgc3lzCitpbXBvcnQgdGhyZWFkaW5nCitmcm9t
IFF1ZXVlIGltcG9ydCBFbXB0eQorZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2Zyb20g
bXVsdGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQorCitmcm9tIG1vemxvZyBpbXBvcnQgY29tbWFu
ZGxpbmUsIHN0ZGFkYXB0ZXIsIHNldF9kZWZhdWx0X2xvZ2dlcgorZnJvbSBtb3psb2cuc3RydWN0
dXJlZGxvZyBpbXBvcnQgU3RydWN0dXJlZExvZ2dlcgorCitkZWYgc2V0dXAoYXJncywgZGVmYXVs
dHMpOgorICAgIGxvZ2dlciA9IGFyZ3MucG9wKCdsb2cnLCBOb25lKQorICAgIGlmIGxvZ2dlcjoK
KyAgICAgICAgc2V0X2RlZmF1bHRfbG9nZ2VyKGxvZ2dlcikKKyAgICAgICAgU3RydWN0dXJlZExv
Z2dlci5fbG9nZ2VyX3N0YXRlc1sid2ViLXBsYXRmb3JtLXRlc3RzIl0gPSBsb2dnZXIuX3N0YXRl
CisgICAgZWxzZToKKyAgICAgICAgbG9nZ2VyID0gY29tbWFuZGxpbmUuc2V0dXBfbG9nZ2luZygi
d2ViLXBsYXRmb3JtLXRlc3RzIiwgYXJncywgZGVmYXVsdHMpCisgICAgc2V0dXBfc3RkbGliX2xv
Z2dlcigpCisKKyAgICBmb3IgbmFtZSBpbiBhcmdzLmtleXMoKToKKyAgICAgICAgaWYgbmFtZS5z
dGFydHN3aXRoKCJsb2dfIik6CisgICAgICAgICAgICBhcmdzLnBvcChuYW1lKQorCisgICAgcmV0
dXJuIGxvZ2dlcgorCisKK2RlZiBzZXR1cF9zdGRsaWJfbG9nZ2VyKCk6CisgICAgbG9nZ2luZy5y
b290LmhhbmRsZXJzID0gW10KKyAgICBsb2dnaW5nLnJvb3QgPSBzdGRhZGFwdGVyLnN0ZF9sb2dn
aW5nX2FkYXB0ZXIobG9nZ2luZy5yb290KQorCisKK2NsYXNzIExvZ0xldmVsUmV3cml0ZXIob2Jq
ZWN0KToKKyAgICAiIiJGaWx0ZXIgdGhhdCByZXBsYWNlcyBsb2cgbWVzc2FnZXMgYXQgc3BlY2lm
aWVkIGxldmVscyB3aXRoIG1lc3NhZ2VzCisgICAgYXQgYSBkaWZmZXJlbnQgbGV2ZWwuCisKKyAg
ICBUaGlzIGNhbiBiZSB1c2VkIHRvIGUuZy4gZG93bmdyYWRlIGxvZyBtZXNzYWdlcyBmcm9tIEVS
Uk9SIHRvIFdBUk5JTkcKKyAgICBpbiBzb21lIGNvbXBvbmVudCB3aGVyZSBFUlJPUnMgYXJlIG5v
dCBjcml0aWNhbC4KKworICAgIDpwYXJhbSBpbm5lcjogSGFuZGxlciB0byB1c2UgZm9yIG1lc3Nh
Z2VzIHRoYXQgcGFzcyB0aGlzIGZpbHRlcgorICAgIDpwYXJhbSBmcm9tX2xldmVsczogTGlzdCBv
ZiBsZXZlbHMgd2hpY2ggc2hvdWxkIGJlIGFmZmVjdGVkCisgICAgOnBhcmFtIHRvX2xldmVsOiBM
b2cgbGV2ZWwgdG8gc2V0IGZvciB0aGUgYWZmZWN0ZWQgbWVzc2FnZXMKKyAgICAiIiIKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgaW5uZXIsIGZyb21fbGV2ZWxzLCB0b19sZXZlbCk6CisgICAgICAg
IHNlbGYuaW5uZXIgPSBpbm5lcgorICAgICAgICBzZWxmLmZyb21fbGV2ZWxzID0gW2l0ZW0udXBw
ZXIoKSBmb3IgaXRlbSBpbiBmcm9tX2xldmVsc10KKyAgICAgICAgc2VsZi50b19sZXZlbCA9IHRv
X2xldmVsLnVwcGVyKCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkYXRhKToKKyAgICAgICAg
aWYgZGF0YVsiYWN0aW9uIl0gPT0gImxvZyIgYW5kIGRhdGFbImxldmVsIl0udXBwZXIoKSBpbiBz
ZWxmLmZyb21fbGV2ZWxzOgorICAgICAgICAgICAgZGF0YSA9IGRhdGEuY29weSgpCisgICAgICAg
ICAgICBkYXRhWyJsZXZlbCJdID0gc2VsZi50b19sZXZlbAorICAgICAgICByZXR1cm4gc2VsZi5p
bm5lcihkYXRhKQorCisKK2NsYXNzIExvZ1RocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcXVldWUsIGxvZ2dlciwgbGV2ZWwpOgorICAgICAgICBzZWxmLnF1
ZXVlID0gcXVldWUKKyAgICAgICAgc2VsZi5sb2dfZnVuYyA9IGdldGF0dHIobG9nZ2VyLCBsZXZl
bCkKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSJUaHJlYWQt
TG9nIikKKyAgICAgICAgc2VsZi5kYWVtb24gPSBUcnVlCisKKyAgICBkZWYgcnVuKHNlbGYpOgor
ICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG1z
ZyA9IHNlbGYucXVldWUuZ2V0KCkKKyAgICAgICAgICAgIGV4Y2VwdCAoRU9GRXJyb3IsIElPRXJy
b3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBtc2cgaXMgTm9uZToK
KyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBzZWxmLmxvZ19mdW5jKG1zZykKKworCitjbGFzcyBMb2dnaW5nV3JhcHBlcihTdHJpbmdJTyk6
CisgICAgIiIiV3JhcHBlciBmb3IgZmlsZSBsaWtlIG9iamVjdHMgdG8gcmVkaXJlY3Qgb3V0cHV0
IHRvIGxvZ2dlcgorICAgIGluc3RlYWQiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBxdWV1
ZSwgcHJlZml4PU5vbmUpOgorICAgICAgICBTdHJpbmdJTy5fX2luaXRfXyhzZWxmKQorICAgICAg
ICBzZWxmLnF1ZXVlID0gcXVldWUKKyAgICAgICAgc2VsZi5wcmVmaXggPSBwcmVmaXgKKworICAg
IGRlZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzdHIp
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmRlY29kZSgi
dXRmOCIpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAg
ICAgICAgIGRhdGEgPSBkYXRhLmVuY29kZSgic3RyaW5nX2VzY2FwZSIpLmRlY29kZSgiYXNjaWki
KQorCisgICAgICAgIGlmIGRhdGEuZW5kc3dpdGgoIlxuIik6CisgICAgICAgICAgICBkYXRhID0g
ZGF0YVs6LTFdCisgICAgICAgIGlmIGRhdGEuZW5kc3dpdGgoIlxyIik6CisgICAgICAgICAgICBk
YXRhID0gZGF0YVs6LTFdCisgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgIGlmIHNlbGYucHJlZml4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGF0YSA9
ICIlczogJXMiICUgKHNlbGYucHJlZml4LCBkYXRhKQorICAgICAgICBzZWxmLnF1ZXVlLnB1dChk
YXRhKQorCisgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBwYXNzCisKKworY2xhc3MgQ2Fw
dHVyZUlPKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgZG9fY2FwdHVy
ZSk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuZG9fY2FwdHVy
ZSA9IGRvX2NhcHR1cmUKKyAgICAgICAgc2VsZi5sb2dnaW5nX3F1ZXVlID0gTm9uZQorICAgICAg
ICBzZWxmLmxvZ2dpbmdfdGhyZWFkID0gTm9uZQorICAgICAgICBzZWxmLm9yaWdpbmFsX3N0ZGlv
ID0gTm9uZQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5kb19j
YXB0dXJlOgorICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9zdGRpbyA9IChzeXMuc3Rkb3V0LCBz
eXMuc3RkZXJyKQorICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3F1ZXVlID0gUXVldWUoKQorICAg
ICAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZCA9IExvZ1RocmVhZChzZWxmLmxvZ2dpbmdfcXVl
dWUsIHNlbGYubG9nZ2VyLCAiaW5mbyIpCisgICAgICAgICAgICBzeXMuc3Rkb3V0ID0gTG9nZ2lu
Z1dyYXBwZXIoc2VsZi5sb2dnaW5nX3F1ZXVlLCBwcmVmaXg9IlNURE9VVCIpCisgICAgICAgICAg
ICBzeXMuc3RkZXJyID0gTG9nZ2luZ1dyYXBwZXIoc2VsZi5sb2dnaW5nX3F1ZXVlLCBwcmVmaXg9
IlNUREVSUiIpCisgICAgICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLnN0YXJ0KCkKKworICAg
IGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLmRv
X2NhcHR1cmU6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LCBzeXMuc3RkZXJyID0gc2VsZi5vcmln
aW5hbF9zdGRpbworICAgICAgICAgICAgaWYgc2VsZi5sb2dnaW5nX3F1ZXVlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkNsb3NpbmcgbG9nZ2luZyBxdWV1
ZSIpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3F1ZXVlLnB1dChOb25lKQorICAgICAg
ICAgICAgICAgIGlmIHNlbGYubG9nZ2luZ190aHJlYWQgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuam9pbigxMCkKKyAgICAgICAgICAgICAgICB3
aGlsZSBub3Qgc2VsZi5sb2dnaW5nX3F1ZXVlLmVtcHR5KCk6CisgICAgICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkRyb3Bw
aW5nIGxvZyBtZXNzYWdlOiAlciIsIHNlbGYubG9nZ2luZ19xdWV1ZS5nZXQoKSkKKyAgICAgICAg
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dpbmdfcXVldWUuY2xvc2UoKQorICAgICAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oInF1ZXVlIGNsb3NlZCIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2NDc4NGM3ZTY2NzgyNjU4YmNjZWYwMWVjYzkx
MGM3Njg0NWJlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9f
X2luaXRfXy5weQpAQCAtMCwwICsxLDQgQEAKK2Zyb20gc2VyaWFsaXplciBpbXBvcnQgc2VyaWFs
aXplCitmcm9tIHBhcnNlciBpbXBvcnQgcGFyc2UKK2Zyb20gYmFja2VuZHMuc3RhdGljIGltcG9y
dCBjb21waWxlIGFzIGNvbXBpbGVfc3RhdGljCitmcm9tIGJhY2tlbmRzLmNvbmRpdGlvbmFsIGlt
cG9ydCBjb21waWxlIGFzIGNvbXBpbGVfY29uZGl0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBl
MTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9iYWNrZW5kcy9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9k
dWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI5ZDAxZDcxNTgx
MjdhMmVkZDA4NmNhZDIxNzZhMTlmYTU4ZmZiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQpAQCAtMCwwICsxLDMzMiBA
QAoraW1wb3J0IG9wZXJhdG9yCisKK2Zyb20gLi5ub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgRGF0
YU5vZGUsIENvbmRpdGlvbmFsTm9kZSwgS2V5VmFsdWVOb2RlLCBMaXN0Tm9kZSwgVmFsdWVOb2Rl
Citmcm9tIC4ucGFyc2VyIGltcG9ydCBwYXJzZQorCisKK2NsYXNzIENvbmRpdGlvbmFsVmFsdWUo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSwgY29uZGl0aW9uX2Z1bmMpOgor
ICAgICAgICBzZWxmLm5vZGUgPSBub2RlCisgICAgICAgIHNlbGYuY29uZGl0aW9uX2Z1bmMgPSBj
b25kaXRpb25fZnVuYworICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIENvbmRpdGlvbmFsTm9k
ZSk6CisgICAgICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDIKKyAgICAgICAg
ICAgIHNlbGYuY29uZGl0aW9uX25vZGUgPSBzZWxmLm5vZGUuY2hpbGRyZW5bMF0KKyAgICAgICAg
ICAgIHNlbGYudmFsdWVfbm9kZSA9IHNlbGYubm9kZS5jaGlsZHJlblsxXQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgKFZhbHVlTm9kZSwgTGlzdE5v
ZGUpKQorICAgICAgICAgICAgc2VsZi5jb25kaXRpb25fbm9kZSA9IE5vbmUKKyAgICAgICAgICAg
IHNlbGYudmFsdWVfbm9kZSA9IHNlbGYubm9kZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZh
bHVlKHNlbGYpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYudmFsdWVfbm9kZSwgVmFsdWVO
b2RlKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlX25vZGUuZGF0YQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmV0dXJuIFtpdGVtLmRhdGEgZm9yIGl0ZW0gaW4gc2VsZi52YWx1
ZV9ub2RlLmNoaWxkcmVuXQorCisgICAgQHZhbHVlLnNldHRlcgorICAgIGRlZiB2YWx1ZShzZWxm
LCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFsdWVfbm9kZS5kYXRhID0gdmFsdWUKKworICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBydW5faW5mbyk6CisgICAgICAgIHJldHVybiBzZWxmLmNvbmRpdGlv
bl9mdW5jKHJ1bl9pbmZvKQorCisgICAgZGVmIHNldF92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAg
ICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorCisgICAgZGVmIHJlbW92ZShzZWxmKToKKyAgICAgICAg
aWYgbGVuKHNlbGYubm9kZS5wYXJlbnQuY2hpbGRyZW4pID09IDE6CisgICAgICAgICAgICBzZWxm
Lm5vZGUucGFyZW50LnJlbW92ZSgpCisgICAgICAgIHNlbGYubm9kZS5yZW1vdmUoKQorCisKK2Ns
YXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAgICBkZWYgY29tcGlsZShzZWxmLCB0cmVlLCBk
YXRhX2Nsc19nZXR0ZXI9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJDb21waWxlIGEgcmF3
IEFTVCBpbnRvIGEgZm9ybSB3aGVyZSBjb25kaXRpb25hbCBleHByZXNzaW9ucworICAgICAgICBh
cmUgcmVwcmVzZW50ZWQgYnkgQ29uZGl0aW9uYWxWYWx1ZSBvYmplY3RzIHRoYXQgY2FuIGJlIGV2
YWx1YXRlZAorICAgICAgICBhdCBydW50aW1lLgorCisgICAgICAgIHRyZWUgLSBUaGUgcm9vdCBu
b2RlIG9mIHRoZSB3cHRtYW5pZmVzdCBBU1QgdG8gY29tcGlsZQorCisgICAgICAgIGRhdGFfY2xz
X2dldHRlciAtIEEgZnVuY3Rpb24gdGFraW5nIHR3byBwYXJhbWV0ZXJzOyB0aGUgcHJldmlvdXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0IG5vZGUgYW5kIHRoZSBjdXJyZW50IGFz
dCBub2RlIGFuZCByZXR1cm5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsYXNz
IG9mIHRoZSBvdXRwdXQgbm9kZSB0byB1c2UgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFzdCBub2RlCisgICAgICAgICIiIgorICAgICAgICBpZiBkYXRhX2Nsc19n
ZXR0ZXIgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gbGFtYmRh
IHgsIHk6IE1hbmlmZXN0SXRlbQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5kYXRh
X2Nsc19nZXR0ZXIgPSBkYXRhX2Nsc19nZXR0ZXIKKworICAgICAgICBzZWxmLnRyZWUgPSB0cmVl
CisgICAgICAgIHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLl9pbml0aWFsX291dHB1dF9ub2RlKHRy
ZWUsICoqa3dhcmdzKQorICAgICAgICBzZWxmLnZpc2l0KHRyZWUpCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5vdXRwdXRfbm9kZSwgInNldF9kZWZhdWx0cyIpOgorICAgICAgICAgICAgc2VsZi5v
dXRwdXRfbm9kZS5zZXRfZGVmYXVsdHMoKQorICAgICAgICBhc3NlcnQgc2VsZi5vdXRwdXRfbm9k
ZSBpcyBub3QgTm9uZQorICAgICAgICByZXR1cm4gc2VsZi5vdXRwdXRfbm9kZQorCisgICAgZGVm
IGNvbXBpbGVfY29uZGl0aW9uKHNlbGYsIGNvbmRpdGlvbik6CisgICAgICAgICIiIkNvbXBpbGUg
YSBDb25kaXRpb25hbE5vZGUgaW50byBhIENvbmRpdGlvbmFsVmFsdWUuCisKKyAgICAgICAgY29u
ZGl0aW9uOiBBIENvbmRpdGlvbmFsTm9kZSIiIgorICAgICAgICBkYXRhX25vZGUgPSBEYXRhTm9k
ZSgpCisgICAgICAgIGtleV92YWx1ZV9ub2RlID0gS2V5VmFsdWVOb2RlKCkKKyAgICAgICAga2V5
X3ZhbHVlX25vZGUuYXBwZW5kKGNvbmRpdGlvbi5jb3B5KCkpCisgICAgICAgIGRhdGFfbm9kZS5h
cHBlbmQoa2V5X3ZhbHVlX25vZGUpCisgICAgICAgIG1hbmlmZXN0X2l0ZW0gPSBzZWxmLmNvbXBp
bGUoZGF0YV9ub2RlKQorICAgICAgICByZXR1cm4gbWFuaWZlc3RfaXRlbS5fZGF0YVtOb25lXVsw
XQorCisgICAgZGVmIF9pbml0aWFsX291dHB1dF9ub2RlKHNlbGYsIG5vZGUsICoqa3dhcmdzKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuZGF0YV9jbHNfZ2V0dGVyKE5vbmUsIE5vbmUpKG5vZGUsICoq
a3dhcmdzKQorCisgICAgZGVmIHZpc2l0X0RhdGFOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBp
ZiBub2RlICE9IHNlbGYudHJlZToKKyAgICAgICAgICAgIG91dHB1dF9wYXJlbnQgPSBzZWxmLm91
dHB1dF9ub2RlCisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gc2VsZi5kYXRhX2Nsc19n
ZXR0ZXIoc2VsZi5vdXRwdXRfbm9kZSwgbm9kZSkobm9kZSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIG91dHB1dF9wYXJlbnQgPSBOb25lCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0
X25vZGUgaXMgbm90IE5vbmUKKworICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoK
KyAgICAgICAgICAgIHNlbGYudmlzaXQoY2hpbGQpCisKKyAgICAgICAgaWYgb3V0cHV0X3BhcmVu
dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgQXBwZW5kIHRvIHRoZSBwYXJlbnQgKmFmdGVy
KiBwcm9jZXNzaW5nIGFsbCB0aGUgbm9kZSBkYXRhCisgICAgICAgICAgICBvdXRwdXRfcGFyZW50
LmFwcGVuZChzZWxmLm91dHB1dF9ub2RlKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9
IHNlbGYub3V0cHV0X25vZGUucGFyZW50CisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25v
ZGUgaXMgbm90IE5vbmUKKworICAgIGRlZiB2aXNpdF9LZXlWYWx1ZU5vZGUoc2VsZiwgbm9kZSk6
CisgICAgICAgIGtleV92YWx1ZXMgPSBbXQorICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGls
ZHJlbjoKKyAgICAgICAgICAgIGNvbmRpdGlvbiwgdmFsdWUgPSBzZWxmLnZpc2l0KGNoaWxkKQor
ICAgICAgICAgICAga2V5X3ZhbHVlcy5hcHBlbmQoQ29uZGl0aW9uYWxWYWx1ZShjaGlsZCwgY29u
ZGl0aW9uKSkKKworICAgICAgICBzZWxmLm91dHB1dF9ub2RlLl9hZGRfa2V5X3ZhbHVlKG5vZGUs
IGtleV92YWx1ZXMpCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2VsZiwgbm9kZSk6CisgICAg
ICAgIHJldHVybiAobGFtYmRhIHg6VHJ1ZSwgW3NlbGYudmlzaXQoY2hpbGQpIGZvciBjaGlsZCBp
biBub2RlLmNoaWxkcmVuXSkKKworICAgIGRlZiB2aXNpdF9WYWx1ZU5vZGUoc2VsZiwgbm9kZSk6
CisgICAgICAgIHJldHVybiAobGFtYmRhIHg6IFRydWUsIG5vZGUuZGF0YSkKKworICAgIGRlZiB2
aXNpdF9BdG9tTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0dXJuIChsYW1iZGEgeDogVHJ1
ZSwgbm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X0NvbmRpdGlvbmFsTm9kZShzZWxmLCBub2Rl
KToKKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSksIHNlbGYudmlz
aXQobm9kZS5jaGlsZHJlblsxXSkKKworICAgIGRlZiB2aXNpdF9TdHJpbmdOb2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICBpbmRleGVzID0gW3NlbGYudmlzaXQoY2hpbGQpIGZvciBjaGlsZCBpbiBu
b2RlLmNoaWxkcmVuXQorCisgICAgICAgIGRlZiB2YWx1ZSh4KToKKyAgICAgICAgICAgIHJ2ID0g
bm9kZS5kYXRhCisgICAgICAgICAgICBmb3IgaW5kZXggaW4gaW5kZXhlczoKKyAgICAgICAgICAg
ICAgICBydiA9IHJ2W2luZGV4KHgpXQorICAgICAgICAgICAgcmV0dXJuIHJ2CisgICAgICAgIHJl
dHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0X051bWJlck5vZGUoc2VsZiwgbm9kZSk6CisgICAg
ICAgIGlmICIuIiBpbiBub2RlLmRhdGE6CisgICAgICAgICAgICByZXR1cm4gbGFtYmRhIHg6IGZs
b2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBsYW1iZGEg
eDogaW50KG5vZGUuZGF0YSkKKworICAgIGRlZiB2aXNpdF9WYXJpYWJsZU5vZGUoc2VsZiwgbm9k
ZSk6CisgICAgICAgIGluZGV4ZXMgPSBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5v
ZGUuY2hpbGRyZW5dCisKKyAgICAgICAgZGVmIHZhbHVlKHgpOgorICAgICAgICAgICAgZGF0YSA9
IHhbbm9kZS5kYXRhXQorICAgICAgICAgICAgZm9yIGluZGV4IGluIGluZGV4ZXM6CisgICAgICAg
ICAgICAgICAgZGF0YSA9IGRhdGFbaW5kZXgoeCldCisgICAgICAgICAgICByZXR1cm4gZGF0YQor
ICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNpdF9JbmRleE5vZGUoc2VsZiwgbm9k
ZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJlbikgPT0gMQorICAgICAgICByZXR1
cm4gc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzBdKQorCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhw
cmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJl
bikgPT0gMgorICAgICAgICBvcGVyYXRvciA9IHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSkK
KyAgICAgICAgb3BlcmFuZCA9IHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblsxXSkKKworICAgICAg
ICByZXR1cm4gbGFtYmRhIHg6IG9wZXJhdG9yKG9wZXJhbmQoeCkpCisKKyAgICBkZWYgdmlzaXRf
QmluYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9k
ZS5jaGlsZHJlbikgPT0gMworICAgICAgICBvcGVyYXRvciA9IHNlbGYudmlzaXQobm9kZS5jaGls
ZHJlblswXSkKKyAgICAgICAgb3BlcmFuZF8wID0gc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzFd
KQorICAgICAgICBvcGVyYW5kXzEgPSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMl0pCisKKyAg
ICAgICAgYXNzZXJ0IG9wZXJhbmRfMCBpcyBub3QgTm9uZQorICAgICAgICBhc3NlcnQgb3BlcmFu
ZF8xIGlzIG5vdCBOb25lCisKKyAgICAgICAgcmV0dXJuIGxhbWJkYSB4OiBvcGVyYXRvcihvcGVy
YW5kXzAoeCksIG9wZXJhbmRfMSh4KSkKKworICAgIGRlZiB2aXNpdF9VbmFyeU9wZXJhdG9yTm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0dXJuIHsibm90Ijogb3BlcmF0b3Iubm90X31bbm9k
ZS5kYXRhXQorCisgICAgZGVmIHZpc2l0X0JpbmFyeU9wZXJhdG9yTm9kZShzZWxmLCBub2RlKToK
KyAgICAgICAgcmV0dXJuIHsiYW5kIjogb3BlcmF0b3IuYW5kXywKKyAgICAgICAgICAgICAgICAi
b3IiOiBvcGVyYXRvci5vcl8sCisgICAgICAgICAgICAgICAgIj09Ijogb3BlcmF0b3IuZXEsCisg
ICAgICAgICAgICAgICAgIiE9Ijogb3BlcmF0b3IubmV9W25vZGUuZGF0YV0KKworCitjbGFzcyBN
YW5pZmVzdEl0ZW0ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZT1Ob25lLCAq
Kmt3YXJncyk6CisgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5wYXJlbnQg
PSBOb25lCisgICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQorICAgICAgICBzZWxmLl9kYXRhID0g
e30KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TWFuaWZlc3RJ
dGVtICVzPiIgJSAoc2VsZi5ub2RlLmRhdGEpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAg
ICAgICAgcnYgPSBbcmVwcihzZWxmKV0KKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJl
bjoKKyAgICAgICAgICAgIHJ2LmV4dGVuZCgiICAlcyIgJSBsaW5lIGZvciBsaW5lIGluIHN0cihp
dGVtKS5zcGxpdCgiXG4iKSkKKyAgICAgICAgcmV0dXJuICJcbiIuam9pbihydikKKworICAgIGRl
ZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLl9k
YXRhCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIGlm
IHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIGFs
bChjaGlsZC5pc19lbXB0eSBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbikKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiByb290KHNlbGYpOgorICAgICAgICBub2RlID0gc2VsZgorICAgICAgICB3
aGlsZSBub2RlLnBhcmVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLnBh
cmVudAorICAgICAgICByZXR1cm4gbm9kZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hbWUo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm5vZGUuZGF0YQorCisgICAgZGVmIGhhc19rZXko
c2VsZiwga2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAg
ICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBnZXQoc2VsZiwga2V5LCBydW5faW5m
bz1Ob25lKToKKyAgICAgICAgaWYgcnVuX2luZm8gaXMgTm9uZToKKyAgICAgICAgICAgIHJ1bl9p
bmZvID0ge30KKworICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAg
ICAgICAgIGlmIGtleSBpbiBub2RlLl9kYXRhOgorICAgICAgICAgICAgICAgIGZvciBjb25kX3Zh
bHVlIGluIG5vZGUuX2RhdGFba2V5XToKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IGNvbmRfdmFsdWUocnVuX2luZm8pCisgICAgICAg
ICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoZXMgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaGVzOgorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbmRfdmFsdWUudmFsdWUKKyAgICAgICAgcmFpc2UgS2V5
RXJyb3IKKworICAgIGRlZiBzZXQoc2VsZiwga2V5LCB2YWx1ZSwgY29uZGl0aW9uPU5vbmUpOgor
ICAgICAgICAjIEZpcnN0IHRyeSB0byB1cGRhdGUgdGhlIGV4aXN0aW5nIHZhbHVlCisgICAgICAg
IGlmIGtleSBpbiBzZWxmLl9kYXRhOgorICAgICAgICAgICAgY29uZF92YWx1ZXMgPSBzZWxmLl9k
YXRhW2tleV0KKyAgICAgICAgICAgIGZvciBjb25kX3ZhbHVlIGluIGNvbmRfdmFsdWVzOgorICAg
ICAgICAgICAgICAgIGlmIGNvbmRfdmFsdWUuY29uZGl0aW9uX25vZGUgPT0gY29uZGl0aW9uOgor
ICAgICAgICAgICAgICAgICAgICBjb25kX3ZhbHVlLnZhbHVlID0gdmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAjIElmIHRoZXJlIGlzbid0IGEgY29uZGl0aW9u
YWwgbWF0Y2ggcmV1c2UgdGhlIGV4aXN0aW5nIEtleVZhbHVlTm9kZSBhcyB0aGUKKyAgICAgICAg
ICAgICMgcGFyZW50CisgICAgICAgICAgICBub2RlID0gTm9uZQorICAgICAgICAgICAgZm9yIGNo
aWxkIGluIHNlbGYubm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgICAgICBpZiBjaGlsZC5kYXRh
ID09IGtleToKKyAgICAgICAgICAgICAgICAgICAgbm9kZSA9IGNoaWxkCisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgICAgICBhc3NlcnQgbm9kZSBpcyBub3QgTm9uZQorCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBub2RlID0gS2V5VmFsdWVOb2RlKGtleSkKKyAgICAgICAg
ICAgIHNlbGYubm9kZS5hcHBlbmQobm9kZSkKKworICAgICAgICB2YWx1ZV9ub2RlID0gVmFsdWVO
b2RlKHZhbHVlKQorICAgICAgICBpZiBjb25kaXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBjb25kaXRpb25hbF9ub2RlID0gQ29uZGl0aW9uYWxOb2RlKCkKKyAgICAgICAgICAgIGNvbmRp
dGlvbmFsX25vZGUuYXBwZW5kKGNvbmRpdGlvbikKKyAgICAgICAgICAgIGNvbmRpdGlvbmFsX25v
ZGUuYXBwZW5kKHZhbHVlX25vZGUpCisgICAgICAgICAgICBub2RlLmFwcGVuZChjb25kaXRpb25h
bF9ub2RlKQorICAgICAgICAgICAgY29uZF92YWx1ZSA9IENvbXBpbGVyKCkuY29tcGlsZV9jb25k
aXRpb24oY29uZGl0aW9uYWxfbm9kZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5vZGUu
YXBwZW5kKHZhbHVlX25vZGUpCisgICAgICAgICAgICBjb25kX3ZhbHVlID0gQ29uZGl0aW9uYWxW
YWx1ZSh2YWx1ZV9ub2RlLCBsYW1iZGEgeDogVHJ1ZSkKKworICAgICAgICAjIFVwZGF0ZSB0aGUg
Y2FjaGUgb2YgY2hpbGQgdmFsdWVzLiBUaGlzIGlzIHByZXR0eSBhbm5veWluZyBhbmQgbWF5YmUK
KyAgICAgICAgIyBpdCBzaG91bGQganVzdCB3b3JrIGRpcmVjdGx5IG9uIHRoZSB0cmVlCisgICAg
ICAgIGlmIGtleSBub3QgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIHNlbGYuX2RhdGFba2V5
XSA9IFtdCisgICAgICAgIGlmIHNlbGYuX2RhdGFba2V5XSBhbmQgc2VsZi5fZGF0YVtrZXldWy0x
XS5jb25kaXRpb25fbm9kZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fZGF0YVtrZXldLmlu
c2VydChsZW4oc2VsZi5fZGF0YVtrZXldKSAtIDEsIGNvbmRfdmFsdWUpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBzZWxmLl9kYXRhW2tleV0uYXBwZW5kKGNvbmRfdmFsdWUpCisKKyAgICBk
ZWYgX2FkZF9rZXlfdmFsdWUoc2VsZiwgbm9kZSwgdmFsdWVzKToKKyAgICAgICAgIiIiQ2FsbGVk
IGR1cmluZyBjb25zdHJ1Y3Rpb24gdG8gc2V0IGEga2V5LXZhbHVlIG5vZGUiIiIKKyAgICAgICAg
c2VsZi5fZGF0YVtub2RlLmRhdGFdID0gdmFsdWVzCisKKyAgICBkZWYgYXBwZW5kKHNlbGYsIGNo
aWxkKToKKyAgICAgICAgc2VsZi5jaGlsZHJlbi5hcHBlbmQoY2hpbGQpCisgICAgICAgIGNoaWxk
LnBhcmVudCA9IHNlbGYKKyAgICAgICAgaWYgY2hpbGQubm9kZS5wYXJlbnQgIT0gc2VsZi5ub2Rl
OgorICAgICAgICAgICAgc2VsZi5ub2RlLmFwcGVuZChjaGlsZC5ub2RlKQorICAgICAgICByZXR1
cm4gY2hpbGQKKworICAgIGRlZiByZW1vdmUoc2VsZik6CisgICAgICAgIGlmIHNlbGYucGFyZW50
OgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuX3JlbW92ZV9jaGlsZChzZWxmKQorCisgICAgZGVm
IF9yZW1vdmVfY2hpbGQoc2VsZiwgY2hpbGQpOgorICAgICAgICBzZWxmLmNoaWxkcmVuLnJlbW92
ZShjaGlsZCkKKyAgICAgICAgY2hpbGQucGFyZW50ID0gTm9uZQorCisgICAgZGVmIGl0ZXJjaGls
ZHJlbihzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVu
OgorICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09IG5hbWUgb3IgbmFtZSBpcyBOb25lOgorICAg
ICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBfZmxhdHRlbihzZWxmKToKKyAgICAg
ICAgcnYgPSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAg
ICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgICAgIGlmIG5hbWUgbm90IGluIHJ2OgorICAgICAgICAgICAgICAgICAgICBydltuYW1l
XSA9IHZhbHVlCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToK
KyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgorICAgICAgICBmb3Ig
aXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcmtleXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0
ZW0KKworICAgIGRlZiByZW1vdmVfdmFsdWUoc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIHNl
bGYuX2RhdGFba2V5XS5yZW1vdmUodmFsdWUpCisgICAgICAgIGlmIG5vdCBzZWxmLl9kYXRhW2tl
eV06CisgICAgICAgICAgICBkZWwgc2VsZi5fZGF0YVtrZXldCisgICAgICAgIHZhbHVlLnJlbW92
ZSgpCisKKworZGVmIGNvbXBpbGVfYXN0KGFzdCwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dh
cmdzKToKKyAgICByZXR1cm4gQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgZGF0YV9jbHNfZ2V0dGVy
PWRhdGFfY2xzX2dldHRlciwgKiprd2FyZ3MpCisKKworZGVmIGNvbXBpbGUoc3RyZWFtLCBkYXRh
X2Nsc19nZXR0ZXI9Tm9uZSwgKiprd2FyZ3MpOgorICAgIHJldHVybiBjb21waWxlX2FzdChwYXJz
ZShzdHJlYW0pLAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9j
bHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9zdGF0aWMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvc3RhdGljLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzY2JlZGMzODE4
ZWU4ZjA0ZmI2OWQ5MDlmMmQ4ZDE5YzNhNWY1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvc3RhdGljLnB5CkBAIC0wLDAgKzEsMjIzIEBACitp
bXBvcnQgb3BlcmF0b3IKKworZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4u
cGFyc2VyIGltcG9ydCBwYXJzZQorCisKK2NsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAg
ICAiIiJDb21waWxlciBiYWNrZW5kIHRoYXQgZXZhbHVhdGVzIGNvbmRpdGlvbmFsIGV4cHJlc3Np
b25zCisgICAgdG8gZ2l2ZSBzdGF0aWMgb3V0cHV0IiIiCisKKyAgICBkZWYgY29tcGlsZShzZWxm
LCB0cmVlLCBleHByX2RhdGEsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAg
ICAgICIiIkNvbXBpbGUgYSByYXcgQVNUIGludG8gYSBmb3JtIHdpdGggY29uZGl0aW9uYWwgZXhw
cmVzc2lvbnMKKyAgICAgICAgZXZhbHVhdGVkLgorCisgICAgICAgIHRyZWUgLSBUaGUgcm9vdCBu
b2RlIG9mIHRoZSB3cHRtYW5pZmVzdCBBU1QgdG8gY29tcGlsZQorCisgICAgICAgIGV4cHJfZGF0
YSAtIEEgZGljdGlvbmFyeSBvZiBrZXkgLyB2YWx1ZSBwYWlycyB0byB1c2Ugd2hlbgorICAgICAg
ICAgICAgICAgICAgICBldmFsdWF0aW5nIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zCisKKyAgICAg
ICAgZGF0YV9jbHNfZ2V0dGVyIC0gQSBmdW5jdGlvbiB0YWtpbmcgdHdvIHBhcmFtZXRlcnM7IHRo
ZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgbm9kZSBhbmQgdGhl
IGN1cnJlbnQgYXN0IG5vZGUgYW5kIHJldHVybmluZworICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGUgY2xhc3Mgb2YgdGhlIG91dHB1dCBub2RlIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXN0IG5vZGUKKyAgICAgICAgIiIiCisKKyAgICAgICAg
c2VsZi5fa3dhcmdzID0ga3dhcmdzCisgICAgICAgIHNlbGYuZXhwcl9kYXRhID0gZXhwcl9kYXRh
CisKKyAgICAgICAgaWYgZGF0YV9jbHNfZ2V0dGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxm
LmRhdGFfY2xzX2dldHRlciA9IGxhbWJkYSB4LCB5OiBNYW5pZmVzdEl0ZW0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gZGF0YV9jbHNfZ2V0dGVyCisK
KyAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IE5vbmUKKyAgICAgICAgc2VsZi52aXNpdCh0cmVl
KQorICAgICAgICByZXR1cm4gc2VsZi5vdXRwdXRfbm9kZQorCisgICAgZGVmIHZpc2l0X0RhdGFO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBvdXRwdXRfcGFyZW50ID0gc2VsZi5vdXRwdXRfbm9k
ZQorICAgICAgICBpZiBzZWxmLm91dHB1dF9ub2RlIGlzIE5vbmU6CisgICAgICAgICAgICBhc3Nl
cnQgbm9kZS5wYXJlbnQgaXMgTm9uZQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNl
bGYuZGF0YV9jbHNfZ2V0dGVyKE5vbmUsIE5vbmUpKE5vbmUsICoqc2VsZi5fa3dhcmdzKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYuZGF0YV9jbHNf
Z2V0dGVyKHNlbGYub3V0cHV0X25vZGUsIG5vZGUpKG5vZGUuZGF0YSkKKworICAgICAgICBmb3Ig
Y2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgIHNlbGYudmlzaXQoY2hpbGQpCisK
KyAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIG91dHB1
dF9wYXJlbnQuYXBwZW5kKHNlbGYub3V0cHV0X25vZGUpCisgICAgICAgICAgICBzZWxmLm91dHB1
dF9ub2RlID0gc2VsZi5vdXRwdXRfbm9kZS5wYXJlbnQKKworICAgIGRlZiB2aXNpdF9LZXlWYWx1
ZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGtleV9uYW1lID0gbm9kZS5kYXRhCisgICAgICAg
IGtleV92YWx1ZSA9IE5vbmUKKyAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46Cisg
ICAgICAgICAgICB2YWx1ZSA9IHNlbGYudmlzaXQoY2hpbGQpCisgICAgICAgICAgICBpZiB2YWx1
ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBrZXlfdmFsdWUgPSB2YWx1ZQorICAgICAg
ICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIGtleV92YWx1ZSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIHNlbGYub3V0cHV0X25vZGUuc2V0KGtleV9uYW1lLCBrZXlfdmFsdWUpCisKKyAgICBk
ZWYgdmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICByZXR1cm4gbm9kZS5kYXRh
CisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiBu
b2RlLmRhdGEKKworICAgIGRlZiB2aXNpdF9MaXN0Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAg
cmV0dXJuIFtzZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKwor
ICAgIGRlZiB2aXNpdF9Db25kaXRpb25hbE5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2Vy
dCBsZW4obm9kZS5jaGlsZHJlbikgPT0gMgorICAgICAgICBpZiBzZWxmLnZpc2l0KG5vZGUuY2hp
bGRyZW5bMF0pOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblsx
XSkKKworICAgIGRlZiB2aXNpdF9TdHJpbmdOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICB2YWx1
ZSA9IG5vZGUuZGF0YQorICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAg
ICAgICAgIHZhbHVlID0gc2VsZi52aXNpdChjaGlsZCkodmFsdWUpCisgICAgICAgIHJldHVybiB2
YWx1ZQorCisgICAgZGVmIHZpc2l0X051bWJlck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGlm
ICIuIiBpbiBub2RlLmRhdGE6CisgICAgICAgICAgICByZXR1cm4gZmxvYXQobm9kZS5kYXRhKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGludChub2RlLmRhdGEpCisKKyAgICBk
ZWYgdmlzaXRfVmFyaWFibGVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICB2YWx1ZSA9IHNlbGYu
ZXhwcl9kYXRhW25vZGUuZGF0YV0KKyAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46
CisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYudmlzaXQoY2hpbGQpKHZhbHVlKQorICAgICAgICBy
ZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNpdF9JbmRleE5vZGUoc2VsZiwgbm9kZSk6CisgICAg
ICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJlbikgPT0gMQorICAgICAgICBpbmRleCA9IHNlbGYu
dmlzaXQobm9kZS5jaGlsZHJlblswXSkKKyAgICAgICAgcmV0dXJuIGxhbWJkYSB4OiB4W2luZGV4
XQorCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAg
ICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJlbikgPT0gMgorICAgICAgICBvcGVyYXRvciA9IHNl
bGYudmlzaXQobm9kZS5jaGlsZHJlblswXSkKKyAgICAgICAgb3BlcmFuZCA9IHNlbGYudmlzaXQo
bm9kZS5jaGlsZHJlblsxXSkKKworICAgICAgICByZXR1cm4gb3BlcmF0b3Iob3BlcmFuZCkKKwor
ICAgIGRlZiB2aXNpdF9CaW5hcnlFeHByZXNzaW9uTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAg
YXNzZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9PSAzCisgICAgICAgIG9wZXJhdG9yID0gc2VsZi52
aXNpdChub2RlLmNoaWxkcmVuWzBdKQorICAgICAgICBvcGVyYW5kXzAgPSBzZWxmLnZpc2l0KG5v
ZGUuY2hpbGRyZW5bMV0pCisgICAgICAgIG9wZXJhbmRfMSA9IHNlbGYudmlzaXQobm9kZS5jaGls
ZHJlblsyXSkKKworICAgICAgICByZXR1cm4gb3BlcmF0b3Iob3BlcmFuZF8wLCBvcGVyYW5kXzEp
CisKKyAgICBkZWYgdmlzaXRfVW5hcnlPcGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAg
IHJldHVybiB7Im5vdCI6IG9wZXJhdG9yLm5vdF99W25vZGUuZGF0YV0KKworICAgIGRlZiB2aXNp
dF9CaW5hcnlPcGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiB7ImFuZCI6
IG9wZXJhdG9yLmFuZF8sCisgICAgICAgICAgICAgICAgIm9yIjogb3BlcmF0b3Iub3JfLAorICAg
ICAgICAgICAgICAgICI9PSI6IG9wZXJhdG9yLmVxLAorICAgICAgICAgICAgICAgICIhPSI6IG9w
ZXJhdG9yLm5lfVtub2RlLmRhdGFdCisKKworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5wYXJl
bnQgPSBOb25lCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5jaGlsZHJl
biA9IFtdCisgICAgICAgIHNlbGYuX2RhdGEgPSB7fQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgorICAgICAgICByZXR1cm4gIjxNYW5pZmVzdEl0ZW0gJXM+IiAlIChzZWxmLm5hbWUpCisKKyAg
ICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcnYgPSBbcmVwcihzZWxmKV0KKyAgICAgICAg
Zm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAgIHJ2LmV4dGVuZCgiICAlcyIg
JSBsaW5lIGZvciBsaW5lIGluIHN0cihpdGVtKS5zcGxpdCgiXG4iKSkKKyAgICAgICAgcmV0dXJu
ICJcbiIuam9pbihydikKKworICAgIGRlZiBzZXRfZGVmYXVsdHMoc2VsZik6CisgICAgICAgIHBh
c3MKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAgICAgICAgaWYg
c2VsZi5fZGF0YToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gYWxs
KGNoaWxkLmlzX2VtcHR5IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHJvb3Qoc2VsZik6CisgICAgICAgIG5vZGUgPSBzZWxmCisgICAgICAgIHdo
aWxlIG5vZGUucGFyZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFy
ZW50CisgICAgICAgIHJldHVybiBub2RlCisKKyAgICBkZWYgaGFzX2tleShzZWxmLCBrZXkpOgor
ICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAgIGlmIGtl
eSBpbiBub2RlLl9kYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgZGVmIGdldChzZWxmLCBrZXkpOgorICAgICAgICBmb3Igbm9kZSBp
biBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAgIGlmIGtleSBpbiBub2RlLl9kYXRhOgor
ICAgICAgICAgICAgICAgIHJldHVybiBub2RlLl9kYXRhW2tleV0KKyAgICAgICAgcmFpc2UgS2V5
RXJyb3IKKworICAgIGRlZiBzZXQoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICBzZWxmLl9k
YXRhW25hbWVdID0gdmFsdWUKKworICAgIGRlZiByZW1vdmUoc2VsZik6CisgICAgICAgIGlmIHNl
bGYucGFyZW50OgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuX3JlbW92ZV9jaGlsZChzZWxmKQor
CisgICAgZGVmIF9yZW1vdmVfY2hpbGQoc2VsZiwgY2hpbGQpOgorICAgICAgICBzZWxmLmNoaWxk
cmVuLnJlbW92ZShjaGlsZCkKKyAgICAgICAgY2hpbGQucGFyZW50ID0gTm9uZQorCisgICAgZGVm
IGl0ZXJjaGlsZHJlbihzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxm
LmNoaWxkcmVuOgorICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09IG5hbWUgb3IgbmFtZSBpcyBO
b25lOgorICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBfZmxhdHRlbihzZWxm
KToKKyAgICAgICAgcnYgPSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290
XToKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHJ2OgorICAgICAgICAgICAgICAgICAg
ICBydltuYW1lXSA9IHZhbHVlCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGl0ZXJpdGVt
cyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgorICAg
ICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcmtleXMoKToKKyAgICAgICAgICAg
IHlpZWxkIGl0ZW0KKworICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgaXRl
bSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcnZhbHVlcygpOgorICAgICAgICAgICAgeWllbGQgaXRl
bQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIGNoaWxkLnBhcmVudCA9
IHNlbGYKKyAgICAgICAgc2VsZi5jaGlsZHJlbi5hcHBlbmQoY2hpbGQpCisgICAgICAgIHJldHVy
biBjaGlsZAorCisKK2RlZiBjb21waWxlX2FzdChhc3QsIGV4cHJfZGF0YSwgZGF0YV9jbHNfZ2V0
dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICByZXR1cm4gQ29tcGlsZXIoKS5jb21waWxlKGFzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJfZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKworCitkZWYgY29tcGlsZShzdHJlYW0s
IGV4cHJfZGF0YSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICByZXR1cm4g
Y29tcGlsZV9hc3QocGFyc2Uoc3RyZWFtKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZXhwcl9k
YXRhLAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0
dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzkzYTJh
ZGQwMGJjM2ZmNWI3NWQyMjc5NDY3OWUxNTc0YzExY2VhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9fX2luaXRf
Xy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9zdGF0aWMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L25vZGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNlOTc5NmM0MzBjMzNhYTAzMjg1NTlmMTIwNzlmMjIx
MTgwZDY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2Rl
LnB5CkBAIC0wLDAgKzEsMTU3IEBACitjbGFzcyBOb2RlVmlzaXRvcihvYmplY3QpOgorICAgIGRl
ZiB2aXNpdChzZWxmLCBub2RlKToKKyAgICAgICAgIyBUaGlzIGlzIHVnbHkgYXMgaGVsbCwgYnV0
IHdlIGRvbid0IGhhdmUgbXVsdGltZXRob2RzIGFuZAorICAgICAgICAjIHRoZXkgYXJlbid0IHRy
aXZpYWwgdG8gZmFrZSB3aXRob3V0IGFjY2VzcyB0byB0aGUgY2xhc3MKKyAgICAgICAgIyBvYmpl
Y3QgZnJvbSB0aGUgY2xhc3MgYm9keQorICAgICAgICBmdW5jID0gZ2V0YXR0cihzZWxmLCAidmlz
aXRfJXMiICUgKG5vZGUuX19jbGFzc19fLl9fbmFtZV9fKSkKKyAgICAgICAgcmV0dXJuIGZ1bmMo
bm9kZSkKKworCitjbGFzcyBOb2RlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRh
dGE9Tm9uZSk6CisgICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKKyAgICAgICAgc2VsZi5wYXJlbnQg
PSBOb25lCisgICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQorCisgICAgZGVmIGFwcGVuZChzZWxm
LCBvdGhlcik6CisgICAgICAgIG90aGVyLnBhcmVudCA9IHNlbGYKKyAgICAgICAgc2VsZi5jaGls
ZHJlbi5hcHBlbmQob3RoZXIpCisKKyAgICBkZWYgcmVtb3ZlKHNlbGYpOgorICAgICAgICBzZWxm
LnBhcmVudC5jaGlsZHJlbi5yZW1vdmUoc2VsZikKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
KyAgICAgICAgcmV0dXJuICI8JXMgJXM+IiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2Vs
Zi5kYXRhKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJ2ID0gW3JlcHIoc2Vs
ZildCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICBydi5l
eHRlbmQoIiAgJXMiICUgbGluZSBmb3IgbGluZSBpbiBzdHIoaXRlbSkuc3BsaXQoIlxuIikpCisg
ICAgICAgIHJldHVybiAiXG4iLmpvaW4ocnYpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVy
KToKKyAgICAgICAgaWYgbm90IChzZWxmLl9fY2xhc3NfXyA9PSBvdGhlci5fX2NsYXNzX18gYW5k
CisgICAgICAgICAgICAgICAgc2VsZi5kYXRhID09IG90aGVyLmRhdGEgYW5kCisgICAgICAgICAg
ICAgICAgbGVuKHNlbGYuY2hpbGRyZW4pID09IGxlbihvdGhlci5jaGlsZHJlbikpOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZvciBjaGlsZCwgb3RoZXJfY2hpbGQgaW4gemlw
KHNlbGYuY2hpbGRyZW4sIG90aGVyLmNoaWxkcmVuKToKKyAgICAgICAgICAgIGlmIG5vdCBjaGls
ZCA9PSBvdGhlcl9jaGlsZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
cmV0dXJuIFRydWUKKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICBuZXcgPSBzZWxmLl9f
Y2xhc3NfXyhzZWxmLmRhdGEpCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46Cisg
ICAgICAgICAgICBuZXcuYXBwZW5kKGl0ZW0uY29weSgpKQorICAgICAgICByZXR1cm4gbmV3CisK
KworY2xhc3MgRGF0YU5vZGUoTm9kZSk6CisgICAgZGVmIGFwcGVuZChzZWxmLCBvdGhlcik6Cisg
ICAgICAgICMgQXBwZW5kIHRoYXQgcmV0YWlucyB0aGUgaW52YXJpYW50IHRoYXQgY2hpbGQgZGF0
YSBub2RlcworICAgICAgICAjIGNvbWUgYWZ0ZXIgY2hpbGQgbm9kZXMgb2Ygb3RoZXIgdHlwZXMK
KyAgICAgICAgb3RoZXIucGFyZW50ID0gc2VsZgorICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVy
LCBEYXRhTm9kZSk6CisgICAgICAgICAgICBzZWxmLmNoaWxkcmVuLmFwcGVuZChvdGhlcikKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGluZGV4ID0gbGVuKHNlbGYuY2hpbGRyZW4pCisgICAg
ICAgICAgICB3aGlsZSBpbmRleCA+IDAgYW5kIGlzaW5zdGFuY2Uoc2VsZi5jaGlsZHJlbltpbmRl
eCAtIDFdLCBEYXRhTm9kZSk6CisgICAgICAgICAgICAgICAgaW5kZXggLT0gMQorICAgICAgICAg
ICAgZm9yIGkgaW4geHJhbmdlKGluZGV4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgb3RoZXIu
ZGF0YSAhPSBzZWxmLmNoaWxkcmVuW2ldLmRhdGEKKyAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4u
aW5zZXJ0KGluZGV4LCBvdGhlcikKKworCitjbGFzcyBLZXlWYWx1ZU5vZGUoTm9kZSk6CisgICAg
ZGVmIGFwcGVuZChzZWxmLCBvdGhlcik6CisgICAgICAgICMgQXBwZW5kIHRoYXQgcmV0YWlucyB0
aGUgaW52YXJpYW50IHRoYXQgY29uZGl0aW9uYWwgbm9kZXMKKyAgICAgICAgIyBjb21lIGJlZm9y
ZSB1bmNvbmRpdGlvbmFsIG5vZGVzCisgICAgICAgIG90aGVyLnBhcmVudCA9IHNlbGYKKyAgICAg
ICAgaWYgaXNpbnN0YW5jZShvdGhlciwgVmFsdWVOb2RlKToKKyAgICAgICAgICAgIGlmIHNlbGYu
Y2hpbGRyZW46CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHNlbGYuY2hp
bGRyZW5bLTFdLCBWYWx1ZU5vZGUpCisgICAgICAgICAgICBzZWxmLmNoaWxkcmVuLmFwcGVuZChv
dGhlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlbGYuY2hpbGRyZW4gYW5kIGlz
aW5zdGFuY2Uoc2VsZi5jaGlsZHJlblstMV0sIFZhbHVlTm9kZSk6CisgICAgICAgICAgICAgICAg
c2VsZi5jaGlsZHJlbi5pbnNlcnQobGVuKHNlbGYuY2hpbGRyZW4pIC0gMSwgb3RoZXIpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKG90aGVy
KQorCisKK2NsYXNzIExpc3ROb2RlKE5vZGUpOgorICAgIGRlZiBhcHBlbmQoc2VsZiwgb3RoZXIp
OgorICAgICAgICBvdGhlci5wYXJlbnQgPSBzZWxmCisgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBw
ZW5kKG90aGVyKQorCisKK2NsYXNzIFZhbHVlTm9kZShOb2RlKToKKyAgICBkZWYgYXBwZW5kKHNl
bGYsIG90aGVyKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yCisKKworY2xhc3MgQXRvbU5vZGUo
VmFsdWVOb2RlKToKKyAgICBwYXNzCisKKworY2xhc3MgQ29uZGl0aW9uYWxOb2RlKE5vZGUpOgor
ICAgIHBhc3MKKworCitjbGFzcyBVbmFyeUV4cHJlc3Npb25Ob2RlKE5vZGUpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcGVyYXRvciwgb3BlcmFuZCk6CisgICAgICAgIE5vZGUuX19pbml0X18o
c2VsZikKKyAgICAgICAgc2VsZi5hcHBlbmQob3BlcmF0b3IpCisgICAgICAgIHNlbGYuYXBwZW5k
KG9wZXJhbmQpCisKKyAgICBkZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgTm9kZS5h
cHBlbmQoc2VsZiwgb3RoZXIpCisgICAgICAgIGFzc2VydCBsZW4oc2VsZi5jaGlsZHJlbikgPD0g
MgorCisgICAgZGVmIGNvcHkoc2VsZik6CisgICAgICAgIG5ldyA9IHNlbGYuX19jbGFzc19fKHNl
bGYuY2hpbGRyZW5bMF0uY29weSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmNoaWxkcmVuWzFdLmNvcHkoKSkKKyAgICAgICAgcmV0dXJuIG5ldworCisKK2NsYXNzIEJpbmFy
eUV4cHJlc3Npb25Ob2RlKE5vZGUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGVyYXRvciwg
b3BlcmFuZF8wLCBvcGVyYW5kXzEpOgorICAgICAgICBOb2RlLl9faW5pdF9fKHNlbGYpCisgICAg
ICAgIHNlbGYuYXBwZW5kKG9wZXJhdG9yKQorICAgICAgICBzZWxmLmFwcGVuZChvcGVyYW5kXzAp
CisgICAgICAgIHNlbGYuYXBwZW5kKG9wZXJhbmRfMSkKKworICAgIGRlZiBhcHBlbmQoc2VsZiwg
b3RoZXIpOgorICAgICAgICBOb2RlLmFwcGVuZChzZWxmLCBvdGhlcikKKyAgICAgICAgYXNzZXJ0
IGxlbihzZWxmLmNoaWxkcmVuKSA8PSAzCisKKyAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAg
bmV3ID0gc2VsZi5fX2NsYXNzX18oc2VsZi5jaGlsZHJlblswXS5jb3B5KCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW5bMV0uY29weSgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmNoaWxkcmVuWzJdLmNvcHkoKSkKKyAgICAgICAgcmV0dXJu
IG5ldworCisKK2NsYXNzIFVuYXJ5T3BlcmF0b3JOb2RlKE5vZGUpOgorICAgIGRlZiBhcHBlbmQo
c2VsZiwgb3RoZXIpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IKKworCitjbGFzcyBCaW5hcnlP
cGVyYXRvck5vZGUoTm9kZSk6CisgICAgZGVmIGFwcGVuZChzZWxmLCBvdGhlcik6CisgICAgICAg
IHJhaXNlIFR5cGVFcnJvcgorCisKK2NsYXNzIEluZGV4Tm9kZShOb2RlKToKKyAgICBwYXNzCisK
KworY2xhc3MgVmFyaWFibGVOb2RlKE5vZGUpOgorICAgIHBhc3MKKworCitjbGFzcyBTdHJpbmdO
b2RlKE5vZGUpOgorICAgIHBhc3MKKworCitjbGFzcyBOdW1iZXJOb2RlKFZhbHVlTm9kZSk6Cisg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg0YTkxNDNm
YTYzYmRkNDc0OWUxZDFjNzEyZTk0MTVhNzA2M2JhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKQEAgLTAsMCArMSw3NDYgQEAKKyNkZWZhdWx0
X3ZhbHVlOmZvbworI2luY2x1ZGU6IG90aGVyLm1hbmlmZXN0CisjCisjW3Rlc3RfbmFtZS5qc10K
KyMgIGV4cGVjdGVkOiBFUlJPUgorIworIyAgW3N1YnRlc3QgMV0KKyMgICAgZXhwZWN0ZWQ6Cisj
ICAgICAgb3MgPT0gd2luOiBGQUlMICNUaGlzIGlzIGEgY29tbWVudAorIyAgICAgIFBBU1MKKyMK
KworIyBUT0RPOiBrZWVwIGNvbW1lbnRzIGluIHRoZSB0cmVlCisKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgdHlwZXMKK2Zyb20gY1N0cmluZ0lPIGlt
cG9ydCBTdHJpbmdJTworCitmcm9tIG5vZGUgaW1wb3J0ICoKKworCitjbGFzcyBQYXJzZUVycm9y
KEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBsaW5lLCBkZXRh
aWwpOgorICAgICAgICBzZWxmLmxpbmUgPSBsaW5lCisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBm
aWxlbmFtZQorICAgICAgICBzZWxmLmRldGFpbCA9IGRldGFpbAorICAgICAgICBzZWxmLm1lc3Nh
Z2UgPSAiJXM6ICVzIGxpbmUgJXMiICUgKHNlbGYuZGV0YWlsLCBzZWxmLmZpbGVuYW1lLCBzZWxm
LmxpbmUpCisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBzZWxmLm1lc3NhZ2UpCisK
K2VvbCA9IG9iamVjdAorZ3JvdXBfc3RhcnQgPSBvYmplY3QKK2dyb3VwX2VuZCA9IG9iamVjdAor
ZGlnaXRzID0gIjAxMjM0NTY3ODkiCitvcGVuX3BhcmVucyA9ICJbKCIKK2Nsb3NlX3BhcmVucyA9
ICJdKSIKK3BhcmVucyA9IG9wZW5fcGFyZW5zICsgY2xvc2VfcGFyZW5zCitvcGVyYXRvcl9jaGFy
cyA9ICI9ISIKKwordW5hcnlfb3BlcmF0b3JzID0gWyJub3QiXQorYmluYXJ5X29wZXJhdG9ycyA9
IFsiPT0iLCAiIT0iLCAiYW5kIiwgIm9yIl0KKworb3BlcmF0b3JzID0gWyI9PSIsICIhPSIsICJu
b3QiLCAiYW5kIiwgIm9yIl0KKworYXRvbXMgPSB7IlRydWUiOiBUcnVlLAorICAgICAgICAgIkZh
bHNlIjogRmFsc2UsCisgICAgICAgICAiUmVzZXQiOiBvYmplY3QoKX0KKworZGVmIGRlY29kZShz
KToKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCB1bmljb2RlKQorICAgIHJldHVybiBzCisKKwor
ZGVmIHByZWNlZGVuY2Uob3BlcmF0b3Jfbm9kZSk6CisgICAgcmV0dXJuIGxlbihvcGVyYXRvcnMp
IC0gb3BlcmF0b3JzLmluZGV4KG9wZXJhdG9yX25vZGUuZGF0YSkKKworCitjbGFzcyBUb2tlblR5
cGVzKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBmb3IgdHlwZSBp
biBbImdyb3VwX3N0YXJ0IiwgImdyb3VwX2VuZCIsICJwYXJlbiIsICJsaXN0X3N0YXJ0IiwgImxp
c3RfZW5kIiwgInNlcGFyYXRvciIsICJpZGVudCIsICJzdHJpbmciLCAibnVtYmVyIiwgImF0b20i
LCAiZW9mIl06CisgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIHR5cGUsIHR5cGUpCisKK3Rva2Vu
X3R5cGVzID0gVG9rZW5UeXBlcygpCisKKworY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnJlc2V0KCkKKworICAgIGRlZiByZXNl
dChzZWxmKToKKyAgICAgICAgc2VsZi5pbmRlbnRfbGV2ZWxzID0gWzBdCisgICAgICAgIHNlbGYu
c3RhdGUgPSBzZWxmLmxpbmVfc3RhcnRfc3RhdGUKKyAgICAgICAgc2VsZi5uZXh0X3N0YXRlID0g
c2VsZi5kYXRhX2xpbmVfc3RhdGUKKyAgICAgICAgc2VsZi5saW5lX251bWJlciA9IDAKKworICAg
IGRlZiB0b2tlbml6ZShzZWxmLCBzdHJlYW0pOgorICAgICAgICBzZWxmLnJlc2V0KCkKKyAgICAg
ICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdW5pY29kZSkKKyAgICAgICAgaWYgaXNp
bnN0YW5jZShzdHJlYW0sIHN0cik6CisgICAgICAgICAgICBzdHJlYW0gPSBTdHJpbmdJTyhzdHJl
YW0pCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHN0cmVhbSwgIm5hbWUiKToKKyAgICAgICAgICAg
IHNlbGYuZmlsZW5hbWUgPSAiIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5maWxl
bmFtZSA9IHN0cmVhbS5uYW1lCisKKyAgICAgICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxm
LmxpbmVfc3RhcnRfc3RhdGUKKyAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKHN0cmVh
bSk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBzdHIpCisgICAgICAgICAg
ICBzZWxmLnN0YXRlID0gc2VsZi5uZXh0X2xpbmVfc3RhdGUKKyAgICAgICAgICAgIGFzc2VydCBz
ZWxmLnN0YXRlIGlzIG5vdCBOb25lCisgICAgICAgICAgICBzdGF0ZXMgPSBbXQorICAgICAgICAg
ICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBOb25lCisgICAgICAgICAgICBzZWxmLmxpbmVfbnVt
YmVyID0gaSArIDEKKyAgICAgICAgICAgIHNlbGYuaW5kZXggPSAwCisgICAgICAgICAgICBzZWxm
LmxpbmUgPSBsaW5lLmRlY29kZSgndXRmLTgnKS5yc3RyaXAoKQorICAgICAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2Uoc2VsZi5saW5lLCB1bmljb2RlKQorICAgICAgICAgICAgd2hpbGUgc2VsZi5z
dGF0ZSAhPSBzZWxmLmVvbF9zdGF0ZToKKyAgICAgICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNl
bGYuc3RhdGUpCisgICAgICAgICAgICAgICAgdG9rZW5zID0gc2VsZi5zdGF0ZSgpCisgICAgICAg
ICAgICAgICAgaWYgdG9rZW5zOgorICAgICAgICAgICAgICAgICAgICBmb3IgdG9rZW4gaW4gdG9r
ZW5zOgorICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdG9rZW4KKyAgICAgICAgICAgIHNl
bGYuc3RhdGUoKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgeWllbGQgKHRva2Vu
X3R5cGVzLmVvZiwgTm9uZSkKKworICAgIGRlZiBjaGFyKHNlbGYpOgorICAgICAgICBpZiBzZWxm
LmluZGV4ID09IGxlbihzZWxmLmxpbmUpOgorICAgICAgICAgICAgcmV0dXJuIGVvbAorICAgICAg
ICByZXR1cm4gc2VsZi5saW5lW3NlbGYuaW5kZXhdCisKKyAgICBkZWYgY29uc3VtZShzZWxmKToK
KyAgICAgICAgaWYgc2VsZi5pbmRleCA8IGxlbihzZWxmLmxpbmUpOgorICAgICAgICAgICAgc2Vs
Zi5pbmRleCArPSAxCisKKyAgICBkZWYgcGVlayhzZWxmLCBsZW5ndGgpOgorICAgICAgICByZXR1
cm4gc2VsZi5saW5lW3NlbGYuaW5kZXg6c2VsZi5pbmRleCArIGxlbmd0aF0KKworICAgIGRlZiBz
a2lwX3doaXRlc3BhY2Uoc2VsZik6CisgICAgICAgIHdoaWxlIHNlbGYuY2hhcigpID09ICIgIjoK
KyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisKKyAgICBkZWYgZW9sX3N0YXRlKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLm5leHRfbGluZV9zdGF0ZSBpcyBOb25lOgorICAgICAgICAgICAgc2Vs
Zi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxpbmVfc3RhcnRfc3RhdGUKKworICAgIGRlZiBsaW5l
X3N0YXJ0X3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLnNraXBfd2hpdGVzcGFjZSgpCisgICAg
ICAgIGlmIHNlbGYuY2hhcigpID09IGVvbDoKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxm
LmVvbF9zdGF0ZQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHNlbGYuaW5kZXggPiBz
ZWxmLmluZGVudF9sZXZlbHNbLTFdOgorICAgICAgICAgICAgc2VsZi5pbmRlbnRfbGV2ZWxzLmFw
cGVuZChzZWxmLmluZGV4KQorICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLmdyb3VwX3N0
YXJ0LCBOb25lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2hpbGUgc2VsZi5pbmRleCA8
IHNlbGYuaW5kZW50X2xldmVsc1stMV06CisgICAgICAgICAgICAgICAgc2VsZi5pbmRlbnRfbGV2
ZWxzLnBvcCgpCisgICAgICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLmdyb3VwX2VuZCwg
Tm9uZSkKKyAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdGVycmlibGU7IGlmIHdlIHdlcmUgcGFy
c2luZyBhbiBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgIyB0aGVuIHRoZSBuZXh0X3N0YXRl
IHdpbGwgYmUgZXhwcl9vcl92YWx1ZSBidXQgd2hlbiB3ZSBkZWluZGVudAorICAgICAgICAgICAg
ICAgICMgaXQgbXVzdCBhbHdheXMgYmUgYSBoZWFkaW5nIG9yIGtleSBuZXh0IHNvIHdlIGdvIGJh
Y2sgdG8gZGF0YV9saW5lX3N0YXRlCisgICAgICAgICAgICAgICAgc2VsZi5uZXh0X3N0YXRlID0g
c2VsZi5kYXRhX2xpbmVfc3RhdGUKKyAgICAgICAgICAgIGlmIHNlbGYuaW5kZXggIT0gc2VsZi5p
bmRlbnRfbGV2ZWxzWy0xXToKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYu
ZmlsZW5hbWUsIHNlbGYubGluZV9udW1iZXIsICJVbmV4cGVjdGVkIGluZGVudCIpCisKKyAgICAg
ICAgc2VsZi5zdGF0ZSA9IHNlbGYubmV4dF9zdGF0ZQorCisgICAgZGVmIGRhdGFfbGluZV9zdGF0
ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jaGFyKCkgPT0gIlsiOgorICAgICAgICAgICAgeWll
bGQgKHRva2VuX3R5cGVzLnBhcmVuLCBzZWxmLmNoYXIoKSkKKyAgICAgICAgICAgIHNlbGYuY29u
c3VtZSgpCisgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5oZWFkaW5nX3N0YXRlCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5rZXlfc3RhdGUKKworICAg
IGRlZiBoZWFkaW5nX3N0YXRlKHNlbGYpOgorICAgICAgICBydiA9ICIiCisgICAgICAgIHdoaWxl
IFRydWU6CisgICAgICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgICAgIGlmIGMgPT0g
IlxcIjoKKyAgICAgICAgICAgICAgICBydiArPSBzZWxmLmNvbnN1bWVfZXNjYXBlKCkKKyAgICAg
ICAgICAgIGVsaWYgYyA9PSAiXSI6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
IGVsaWYgYyA9PSBlb2w6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZp
bGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiRU9MIGluIGhlYWRpbmciKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBydiArPSBjCisgICAgICAgICAgICAgICAgc2VsZi5jb25z
dW1lKCkKKworICAgICAgICB5aWVsZCAodG9rZW5fdHlwZXMuc3RyaW5nLCBkZWNvZGUocnYpKQor
ICAgICAgICB5aWVsZCAodG9rZW5fdHlwZXMucGFyZW4sICJdIikKKyAgICAgICAgc2VsZi5jb25z
dW1lKCkKKyAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYubGluZV9lbmRfc3RhdGUKKyAgICAgICAg
c2VsZi5uZXh0X3N0YXRlID0gc2VsZi5kYXRhX2xpbmVfc3RhdGUKKworICAgIGRlZiBrZXlfc3Rh
dGUoc2VsZik6CisgICAgICAgIHJ2ID0gIiIKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAg
ICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAgICAgICAgaWYgYyA9PSAiICI6CisgICAgICAgICAg
ICAgICAgc2VsZi5za2lwX3doaXRlc3BhY2UoKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuY2hh
cigpICE9ICI6IjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZp
bGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiU3BhY2UgaW4ga2V5IG5hbWUiKQorICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0gIjoiOgorICAgICAgICAgICAgICAg
IGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0gZW9sOgorICAgICAgICAgICAgICAgIHJhaXNl
IFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwgIkVPTCBpbiBrZXkg
bmFtZSAobWlzc2luZyAnOic/KSIpCisgICAgICAgICAgICBlbGlmIGMgPT0gIlxcIjoKKyAgICAg
ICAgICAgICAgICBydiArPSBzZWxmLmNvbnN1bWVfZXNjYXBlKCkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcnYgKz0gYworICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgp
CisgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5zdHJpbmcsIGRlY29kZShydikpCisgICAgICAg
IHlpZWxkICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IikKKyAgICAgICAgc2VsZi5jb25zdW1l
KCkKKyAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuYWZ0ZXJfa2V5X3N0YXRlCisKKyAgICBkZWYg
YWZ0ZXJfa2V5X3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLnNraXBfd2hpdGVzcGFjZSgpCisg
ICAgICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAgICBpZiBjID09ICIjIjoKKyAgICAgICAgICAg
IHNlbGYubmV4dF9zdGF0ZSA9IHNlbGYuZXhwcl9vcl92YWx1ZV9zdGF0ZQorICAgICAgICAgICAg
c2VsZi5zdGF0ZSA9IHNlbGYuY29tbWVudF9zdGF0ZQorICAgICAgICBlbGlmIGMgPT0gZW9sOgor
ICAgICAgICAgICAgc2VsZi5uZXh0X3N0YXRlID0gc2VsZi5leHByX29yX3ZhbHVlX3N0YXRlCisg
ICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5lb2xfc3RhdGUKKyAgICAgICAgZWxpZiBjID09
ICJbIjoKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpc3Rfc3RhcnRfc3RhdGUKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLnZhbHVlX3N0YXRlCisK
KyAgICBkZWYgbGlzdF9zdGFydF9zdGF0ZShzZWxmKToKKyAgICAgICAgeWllbGQgKHRva2VuX3R5
cGVzLmxpc3Rfc3RhcnQsICJbIikKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgc2Vs
Zi5zdGF0ZSA9IHNlbGYubGlzdF92YWx1ZV9zdGFydF9zdGF0ZQorCisgICAgZGVmIGxpc3RfdmFs
dWVfc3RhcnRfc3RhdGUoc2VsZik6CisgICAgICAgIHNlbGYuc2tpcF93aGl0ZXNwYWNlKCkKKyAg
ICAgICAgaWYgc2VsZi5jaGFyKCkgPT0gIl0iOgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNl
bGYubGlzdF9lbmRfc3RhdGUKKyAgICAgICAgZWxpZiBzZWxmLmNoYXIoKSBpbiAoIiciLCAnIicp
OgorICAgICAgICAgICAgcXVvdGVfY2hhciA9IHNlbGYuY2hhcigpCisgICAgICAgICAgICBzZWxm
LmNvbnN1bWUoKQorICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnN0cmluZywgc2VsZi5j
b25zdW1lX3N0cmluZyhxdW90ZV9jaGFyKSkKKyAgICAgICAgICAgIHNlbGYuc2tpcF93aGl0ZXNw
YWNlKCkKKyAgICAgICAgICAgIGlmIHNlbGYuY2hhcigpID09ICJdIjoKKyAgICAgICAgICAgICAg
ICBzZWxmLnN0YXRlID0gc2VsZi5saXN0X2VuZF9zdGF0ZQorICAgICAgICAgICAgZWxpZiBzZWxm
LmNoYXIoKSAhPSAiLCI6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZp
bGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiSnVuayBhZnRlciBxdW90ZWQgc3RyaW5nIikKKyAg
ICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIGVsaWYgc2VsZi5jaGFyKCkgPT0gIiMi
OgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuY29tbWVudF9zdGF0ZQorICAgICAgICAg
ICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxpc3RfdmFsdWVfc3RhcnRfc3RhdGUKKyAg
ICAgICAgZWxpZiBzZWxmLmNoYXIoKSA9PSBlb2w6CisgICAgICAgICAgICBzZWxmLm5leHRfbGlu
ZV9zdGF0ZSA9IHNlbGYubGlzdF92YWx1ZV9zdGFydF9zdGF0ZQorICAgICAgICAgICAgc2VsZi5z
dGF0ZSA9IHNlbGYuZW9sX3N0YXRlCisgICAgICAgIGVsaWYgc2VsZi5jaGFyKCkgPT0gIiwiOgor
ICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVt
YmVyLCAiTGlzdCBpdGVtIHN0YXJ0ZWQgd2l0aCBzZXBhcmF0b3IiKQorICAgICAgICBlbGlmIHNl
bGYuY2hhcigpID09ICJAIjoKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpc3RfdmFs
dWVfYXRvbV9zdGF0ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNl
bGYubGlzdF92YWx1ZV9zdGF0ZQorCisgICAgZGVmIGxpc3RfdmFsdWVfc3RhdGUoc2VsZik6Cisg
ICAgICAgIHJ2ID0gIiIKKyAgICAgICAgc3BhY2VzID0gMAorICAgICAgICB3aGlsZSBUcnVlOgor
ICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigpCisgICAgICAgICAgICBpZiBjID09ICJcXCI6Cisg
ICAgICAgICAgICAgICAgZXNjYXBlID0gc2VsZi5jb25zdW1lX2VzY2FwZSgpCisgICAgICAgICAg
ICAgICAgcnYgKz0gZXNjYXBlCisgICAgICAgICAgICBlbGlmIGMgPT0gZW9sOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwg
IkVPTCBpbiBsaXN0IHZhbHVlIikKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiIyI6CisgICAgICAg
ICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVy
LCAiRU9MIGluIGxpc3QgdmFsdWUgKGNvbW1lbnQpIikKKyAgICAgICAgICAgIGVsaWYgYyA9PSAi
LCI6CisgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYubGlzdF92YWx1ZV9zdGFydF9z
dGF0ZQorICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICAgICAgYnJl
YWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiICI6CisgICAgICAgICAgICAgICAgc3BhY2VzICs9
IDEKKyAgICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgZWxpZiBjID09
ICJdIjoKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5saXN0X2VuZF9zdGF0ZQor
ICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnYgKz0gIiAiICogc3BhY2VzCisgICAg
ICAgICAgICAgICAgc3BhY2VzID0gMAorICAgICAgICAgICAgICAgIHJ2ICs9IGMKKyAgICAgICAg
ICAgICAgICBzZWxmLmNvbnN1bWUoKQorCisgICAgICAgIGlmIHJ2OgorICAgICAgICAgICAgeWll
bGQgKHRva2VuX3R5cGVzLnN0cmluZywgZGVjb2RlKHJ2KSkKKworICAgIGRlZiBsaXN0X3ZhbHVl
X2F0b21fc3RhdGUoc2VsZik6CisgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIGZvciBf
LCB2YWx1ZSBpbiBzZWxmLmxpc3RfdmFsdWVfc3RhdGUoKToKKyAgICAgICAgICAgIHlpZWxkIHRv
a2VuX3R5cGVzLmF0b20sIHZhbHVlCisKKyAgICBkZWYgbGlzdF9lbmRfc3RhdGUoc2VsZik6Cisg
ICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5saXN0X2Vu
ZCwgIl0iKQorICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5saW5lX2VuZF9zdGF0ZQorCisgICAg
ZGVmIHZhbHVlX3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLnNraXBfd2hpdGVzcGFjZSgpCisg
ICAgICAgIGlmIHNlbGYuY2hhcigpIGluICgiJyIsICciJyk6CisgICAgICAgICAgICBxdW90ZV9j
aGFyID0gc2VsZi5jaGFyKCkKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAg
ICB5aWVsZCAodG9rZW5fdHlwZXMuc3RyaW5nLCBzZWxmLmNvbnN1bWVfc3RyaW5nKHF1b3RlX2No
YXIpKQorICAgICAgICAgICAgaWYgc2VsZi5jaGFyKCkgPT0gIiMiOgorICAgICAgICAgICAgICAg
IHNlbGYuc3RhdGUgPSBzZWxmLmNvbW1lbnRfc3RhdGUKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYubGluZV9lbmRfc3RhdGUKKyAgICAgICAgZWxp
ZiBzZWxmLmNoYXIoKSA9PSAiQCI6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAg
ICAgICAgZm9yIF8sIHZhbHVlIGluIHNlbGYudmFsdWVfaW5uZXJfc3RhdGUoKToKKyAgICAgICAg
ICAgICAgICB5aWVsZCB0b2tlbl90eXBlcy5hdG9tLCB2YWx1ZQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYudmFsdWVfaW5uZXJfc3RhdGUKKworICAgIGRlZiB2
YWx1ZV9pbm5lcl9zdGF0ZShzZWxmKToKKyAgICAgICAgcnYgPSAiIgorICAgICAgICBzcGFjZXMg
PSAwCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAg
ICAgICAgICAgIGlmIGMgPT0gIlxcIjoKKyAgICAgICAgICAgICAgICBydiArPSBzZWxmLmNvbnN1
bWVfZXNjYXBlKCkKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiIyI6CisgICAgICAgICAgICAgICAg
c2VsZi5zdGF0ZSA9IHNlbGYuY29tbWVudF9zdGF0ZQorICAgICAgICAgICAgICAgIGJyZWFrCisg
ICAgICAgICAgICBlbGlmIGMgPT0gIiAiOgorICAgICAgICAgICAgICAgICMgcHJldmVudCB3aGl0
ZXNwYWNlIGJlZm9yZSBjb21tZW50cyBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHRoZSB2YWx1ZQor
ICAgICAgICAgICAgICAgIHNwYWNlcyArPSAxCisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1l
KCkKKyAgICAgICAgICAgIGVsaWYgYyA9PSBlb2w6CisgICAgICAgICAgICAgICAgc2VsZi5zdGF0
ZSA9IHNlbGYubGluZV9lbmRfc3RhdGUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBydiArPSAiICIgKiBzcGFjZXMKKyAgICAgICAgICAg
ICAgICBzcGFjZXMgPSAwCisgICAgICAgICAgICAgICAgcnYgKz0gYworICAgICAgICAgICAgICAg
IHNlbGYuY29uc3VtZSgpCisgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5zdHJpbmcsIGRlY29k
ZShydikpCisKKyAgICBkZWYgY29tbWVudF9zdGF0ZShzZWxmKToKKyAgICAgICAgd2hpbGUgc2Vs
Zi5jaGFyKCkgaXMgbm90IGVvbDoKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAg
IHNlbGYuc3RhdGUgPSBzZWxmLmVvbF9zdGF0ZQorCisgICAgZGVmIGxpbmVfZW5kX3N0YXRlKHNl
bGYpOgorICAgICAgICBzZWxmLnNraXBfd2hpdGVzcGFjZSgpCisgICAgICAgIGMgPSBzZWxmLmNo
YXIoKQorICAgICAgICBpZiBjID09ICIjIjoKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxm
LmNvbW1lbnRfc3RhdGUKKyAgICAgICAgZWxpZiBjID09IGVvbDoKKyAgICAgICAgICAgIHNlbGYu
c3RhdGUgPSBzZWxmLmVvbF9zdGF0ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2Ug
UGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiSnVuayBiZWZvcmUg
RU9MICVzIiAlIGMpCisKKyAgICBkZWYgY29uc3VtZV9zdHJpbmcoc2VsZiwgcXVvdGVfY2hhcik6
CisgICAgICAgIHJ2ID0gIiIKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGMgPSBz
ZWxmLmNoYXIoKQorICAgICAgICAgICAgaWYgYyA9PSAiXFwiOgorICAgICAgICAgICAgICAgIHJ2
ICs9IHNlbGYuY29uc3VtZV9lc2NhcGUoKQorICAgICAgICAgICAgZWxpZiBjID09IHF1b3RlX2No
YXI6CisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgZWxpZiBjID09IGVvbDoKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJz
ZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGluZV9udW1iZXIsICJFT0wgaW4gcXVvdGVkIHN0
cmluZyIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJ2ICs9IGMKKyAgICAg
ICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorCisgICAgICAgIHJldHVybiBkZWNvZGUocnYpCisK
KyAgICBkZWYgZXhwcl9vcl92YWx1ZV9zdGF0ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5wZWVr
KDMpID09ICJpZiAiOgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuZXhwcl9zdGF0ZQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYudmFsdWVfc3RhdGUK
KworICAgIGRlZiBleHByX3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLnNraXBfd2hpdGVzcGFj
ZSgpCisgICAgICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAgICBpZiBjID09IGVvbDoKKyAgICAg
ICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwg
IkVPTCBpbiBleHByZXNzaW9uIikKKyAgICAgICAgZWxpZiBjIGluICInXCIiOgorICAgICAgICAg
ICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5zdHJpbmcs
IHNlbGYuY29uc3VtZV9zdHJpbmcoYykpCisgICAgICAgIGVsaWYgYyA9PSAiIyI6CisgICAgICAg
ICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGluZV9udW1iZXIsICJD
b21tZW50IGJlZm9yZSBlbmQgb2YgZXhwcmVzc2lvbiIpCisgICAgICAgIGVsaWYgYyA9PSAiOiI6
CisgICAgICAgICAgICB5aWVsZCAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCBjKQorICAgICAgICAg
ICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLnZhbHVlX3N0
YXRlCisgICAgICAgIGVsaWYgYyBpbiBwYXJlbnM6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUo
KQorICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnBhcmVuLCBjKQorICAgICAgICBlbGlm
IGMgaW4gKCIhIiwgIj0iKToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLm9wZXJhdG9y
X3N0YXRlCisgICAgICAgIGVsaWYgYyBpbiBkaWdpdHM6CisgICAgICAgICAgICBzZWxmLnN0YXRl
ID0gc2VsZi5kaWdpdF9zdGF0ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdGF0
ZSA9IHNlbGYuaWRlbnRfc3RhdGUKKworICAgIGRlZiBvcGVyYXRvcl9zdGF0ZShzZWxmKToKKyAg
ICAgICAgIyBPbmx5IHN5bWJvbGljIG9wZXJhdG9ycworICAgICAgICBpbmRleF8wID0gc2VsZi5p
bmRleAorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigpCisg
ICAgICAgICAgICBpZiBjID09IGVvbDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg
ICAgZWxpZiBjIGluIG9wZXJhdG9yX2NoYXJzOgorICAgICAgICAgICAgICAgIHNlbGYuY29uc3Vt
ZSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxm
LmV4cHJfc3RhdGUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICB5aWVsZCAodG9rZW5f
dHlwZXMuaWRlbnQsIHNlbGYubGluZVtpbmRleF8wOnNlbGYuaW5kZXhdKQorCisgICAgZGVmIGRp
Z2l0X3N0YXRlKHNlbGYpOgorICAgICAgICBpbmRleF8wID0gc2VsZi5pbmRleAorICAgICAgICBz
ZWVuX2RvdCA9IEZhbHNlCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBjID0gc2Vs
Zi5jaGFyKCkKKyAgICAgICAgICAgIGlmIGMgPT0gZW9sOgorICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgICAgICBlbGlmIGMgaW4gZGlnaXRzOgorICAgICAgICAgICAgICAgIHNlbGYuY29u
c3VtZSgpCisgICAgICAgICAgICBlbGlmIGMgPT0gIi4iOgorICAgICAgICAgICAgICAgIGlmIHNl
ZW5fZG90OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5h
bWUsIHNlbGYubGluZV9udW1iZXIsICJJbnZhbGlkIG51bWJlciIpCisgICAgICAgICAgICAgICAg
c2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgICAgICBzZWVuX2RvdCA9IFRydWUKKyAgICAgICAg
ICAgIGVsaWYgYyBpbiBwYXJlbnM6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
IGVsaWYgYyBpbiBvcGVyYXRvcl9jaGFyczoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgZWxpZiBjID09ICIgIjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
ZWxpZiBjID09ICI6IjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGlu
ZV9udW1iZXIsICJJbnZhbGlkIGNoYXJhY3RlciBpbiBudW1iZXIiKQorCisgICAgICAgIHNlbGYu
c3RhdGUgPSBzZWxmLmV4cHJfc3RhdGUKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLm51bWJl
ciwgc2VsZi5saW5lW2luZGV4XzA6c2VsZi5pbmRleF0pCisKKyAgICBkZWYgaWRlbnRfc3RhdGUo
c2VsZik6CisgICAgICAgIGluZGV4XzAgPSBzZWxmLmluZGV4CisgICAgICAgIHdoaWxlIFRydWU6
CisgICAgICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgICAgIGlmIGMgPT0gZW9sOgor
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0gIi4iOgorICAgICAg
ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgaW4gcGFyZW5zOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgaW4gb3BlcmF0b3JfY2hhcnM6CisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiICI6CisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiOiI6CisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkK
KyAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuZXhwcl9zdGF0ZQorICAgICAgICB5aWVsZCAodG9r
ZW5fdHlwZXMuaWRlbnQsIHNlbGYubGluZVtpbmRleF8wOnNlbGYuaW5kZXhdKQorCisgICAgZGVm
IGNvbnN1bWVfZXNjYXBlKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi5jaGFyKCkgPT0gIlxc
IgorICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAg
ICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgaWYgYyA9PSAieCI6CisgICAgICAgICAgICByZXR1
cm4gc2VsZi5kZWNvZGVfZXNjYXBlKDIpCisgICAgICAgIGVsaWYgYyA9PSAidSI6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5kZWNvZGVfZXNjYXBlKDQpCisgICAgICAgIGVsaWYgYyA9PSAiVSI6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWNvZGVfZXNjYXBlKDYpCisgICAgICAgIGVsaWYg
YyBpbiBbImEiLCAiYiIsICJmIiwgIm4iLCAiciIsICJ0IiwgInYiXToKKyAgICAgICAgICAgIHJl
dHVybiBldmFsKCInXCVzJyIgJSBjKQorICAgICAgICBlbGlmIGMgaXMgZW9sOgorICAgICAgICAg
ICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiRU9M
IGluIGVzY2FwZSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gYworCisgICAg
ZGVmIGRlY29kZV9lc2NhcGUoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgdmFsdWUgPSAwCisgICAg
ICAgIGZvciBpIGluIHhyYW5nZShsZW5ndGgpOgorICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigp
CisgICAgICAgICAgICB2YWx1ZSAqPSAxNgorICAgICAgICAgICAgdmFsdWUgKz0gc2VsZi5lc2Nh
cGVfdmFsdWUoYykKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisKKyAgICAgICAgcmV0dXJu
IHVuaWNocih2YWx1ZSkKKworICAgIGRlZiBlc2NhcGVfdmFsdWUoc2VsZiwgYyk6CisgICAgICAg
IGlmICcwJyA8PSBjIDw9ICc5JzoKKyAgICAgICAgICAgIHJldHVybiBvcmQoYykgLSBvcmQoJzAn
KQorICAgICAgICBlbGlmICdhJyA8PSBjIDw9ICdmJzoKKyAgICAgICAgICAgIHJldHVybiBvcmQo
YykgLSBvcmQoJ2EnKSArIDEwCisgICAgICAgIGVsaWYgJ0EnIDw9IGMgPD0gJ0YnOgorICAgICAg
ICAgICAgcmV0dXJuIG9yZChjKSAtIG9yZCgnQScpICsgMTAKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwg
IkludmFsaWQgY2hhcmFjdGVyIGVzY2FwZSIpCisKKworY2xhc3MgUGFyc2VyKG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnJlc2V0KCkKKworICAgIGRlZiBy
ZXNldChzZWxmKToKKyAgICAgICAgc2VsZi50b2tlbiA9IE5vbmUKKyAgICAgICAgc2VsZi51bmFy
eV9vcGVyYXRvcnMgPSAiISIKKyAgICAgICAgc2VsZi5iaW5hcnlfb3BlcmF0b3JzID0gZnJvemVu
c2V0KFsiJiYiLCAifHwiLCAiPT0iXSkKKyAgICAgICAgc2VsZi50b2tlbml6ZXIgPSBUb2tlbml6
ZXIoKQorICAgICAgICBzZWxmLnRva2VuX2dlbmVyYXRvciA9IE5vbmUKKyAgICAgICAgc2VsZi50
cmVlID0gVHJlZWJ1aWxkZXIoRGF0YU5vZGUoTm9uZSkpCisgICAgICAgIHNlbGYuZXhwcl9idWls
ZGVyID0gTm9uZQorICAgICAgICBzZWxmLmV4cHJfYnVpbGRlcnMgPSBbXQorCisgICAgZGVmIHBh
cnNlKHNlbGYsIGlucHV0KToKKyAgICAgICAgc2VsZi5yZXNldCgpCisgICAgICAgIHNlbGYudG9r
ZW5fZ2VuZXJhdG9yID0gc2VsZi50b2tlbml6ZXIudG9rZW5pemUoaW5wdXQpCisgICAgICAgIHNl
bGYuY29uc3VtZSgpCisgICAgICAgIHNlbGYubWFuaWZlc3QoKQorICAgICAgICByZXR1cm4gc2Vs
Zi50cmVlLm5vZGUKKworICAgIGRlZiBjb25zdW1lKHNlbGYpOgorICAgICAgICBzZWxmLnRva2Vu
ID0gc2VsZi50b2tlbl9nZW5lcmF0b3IubmV4dCgpCisKKyAgICBkZWYgZXhwZWN0KHNlbGYsIHR5
cGUsIHZhbHVlPU5vbmUpOgorICAgICAgICBpZiBzZWxmLnRva2VuWzBdICE9IHR5cGU6CisgICAg
ICAgICAgICByYWlzZSBQYXJzZUVycm9yCisgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgaWYgc2VsZi50b2tlblsxXSAhPSB2YWx1ZToKKyAgICAgICAgICAgICAgICBy
YWlzZSBQYXJzZUVycm9yCisKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKworICAgIGRlZiBtYW5p
ZmVzdChzZWxmKToKKyAgICAgICAgc2VsZi5kYXRhX2Jsb2NrKCkKKyAgICAgICAgc2VsZi5leHBl
Y3QodG9rZW5fdHlwZXMuZW9mKQorCisgICAgZGVmIGRhdGFfYmxvY2soc2VsZik6CisgICAgICAg
IHdoaWxlIHNlbGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMuc3RyaW5nOgorICAgICAgICAgICAg
c2VsZi50cmVlLmFwcGVuZChLZXlWYWx1ZU5vZGUoc2VsZi50b2tlblsxXSkpCisgICAgICAgICAg
ICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMuc2Vw
YXJhdG9yKQorICAgICAgICAgICAgc2VsZi52YWx1ZV9ibG9jaygpCisgICAgICAgICAgICBzZWxm
LnRyZWUucG9wKCkKKworICAgICAgICB3aGlsZSBzZWxmLnRva2VuID09ICh0b2tlbl90eXBlcy5w
YXJlbiwgIlsiKToKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICBpZiBz
ZWxmLnRva2VuWzBdICE9IHRva2VuX3R5cGVzLnN0cmluZzoKKyAgICAgICAgICAgICAgICByYWlz
ZSBQYXJzZUVycm9yCisgICAgICAgICAgICBzZWxmLnRyZWUuYXBwZW5kKERhdGFOb2RlKHNlbGYu
dG9rZW5bMV0pKQorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHNlbGYu
ZXhwZWN0KHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpCisgICAgICAgICAgICBpZiBzZWxmLnRva2Vu
WzBdID09IHRva2VuX3R5cGVzLmdyb3VwX3N0YXJ0OgorICAgICAgICAgICAgICAgIHNlbGYuY29u
c3VtZSgpCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhX2Jsb2NrKCkKKyAgICAgICAgICAgICAg
ICBzZWxmLmVvZl9vcl9lbmRfZ3JvdXAoKQorICAgICAgICAgICAgc2VsZi50cmVlLnBvcCgpCisK
KyAgICBkZWYgZW9mX29yX2VuZF9ncm91cChzZWxmKToKKyAgICAgICAgaWYgc2VsZi50b2tlblsw
XSAhPSB0b2tlbl90eXBlcy5lb2Y6CisgICAgICAgICAgICBzZWxmLmV4cGVjdCh0b2tlbl90eXBl
cy5ncm91cF9lbmQpCisKKyAgICBkZWYgdmFsdWVfYmxvY2soc2VsZik6CisgICAgICAgIGlmIHNl
bGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMubGlzdF9zdGFydDoKKyAgICAgICAgICAgIHNlbGYu
Y29uc3VtZSgpCisgICAgICAgICAgICBzZWxmLmxpc3RfdmFsdWUoKQorICAgICAgICBlbGlmIHNl
bGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMuc3RyaW5nOgorICAgICAgICAgICAgc2VsZi52YWx1
ZSgpCisgICAgICAgIGVsaWYgc2VsZi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5ncm91cF9zdGFy
dDoKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICBzZWxmLmV4cHJlc3Np
b25fdmFsdWVzKCkKKyAgICAgICAgICAgIGlmIHNlbGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMu
c3RyaW5nOgorICAgICAgICAgICAgICAgIHNlbGYudmFsdWUoKQorICAgICAgICAgICAgc2VsZi5l
b2Zfb3JfZW5kX2dyb3VwKCkKKyAgICAgICAgZWxpZiBzZWxmLnRva2VuWzBdID09IHRva2VuX3R5
cGVzLmF0b206CisgICAgICAgICAgICBzZWxmLmF0b20oKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmFpc2UgUGFyc2VFcnJvcgorCisgICAgZGVmIGxpc3RfdmFsdWUoc2VsZik6CisgICAg
ICAgIHNlbGYudHJlZS5hcHBlbmQoTGlzdE5vZGUoKSkKKyAgICAgICAgd2hpbGUgc2VsZi50b2tl
blswXSBpbiAodG9rZW5fdHlwZXMuYXRvbSwgdG9rZW5fdHlwZXMuc3RyaW5nKToKKyAgICAgICAg
ICAgIGlmIHNlbGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMuYXRvbToKKyAgICAgICAgICAgICAg
ICBzZWxmLmF0b20oKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnZh
bHVlKCkKKyAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMubGlzdF9lbmQpCisgICAgICAg
IHNlbGYudHJlZS5wb3AoKQorCisgICAgZGVmIGV4cHJlc3Npb25fdmFsdWVzKHNlbGYpOgorICAg
ICAgICB3aGlsZSBzZWxmLnRva2VuID09ICh0b2tlbl90eXBlcy5pZGVudCwgImlmIik6CisgICAg
ICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgc2VsZi50cmVlLmFwcGVuZChDb25k
aXRpb25hbE5vZGUoKSkKKyAgICAgICAgICAgIHNlbGYuZXhwcl9zdGFydCgpCisgICAgICAgICAg
ICBzZWxmLmV4cGVjdCh0b2tlbl90eXBlcy5zZXBhcmF0b3IpCisgICAgICAgICAgICBpZiBzZWxm
LnRva2VuWzBdID09IHRva2VuX3R5cGVzLnN0cmluZzoKKyAgICAgICAgICAgICAgICBzZWxmLnZh
bHVlKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJv
cgorICAgICAgICAgICAgc2VsZi50cmVlLnBvcCgpCisKKyAgICBkZWYgdmFsdWUoc2VsZik6Cisg
ICAgICAgIHNlbGYudHJlZS5hcHBlbmQoVmFsdWVOb2RlKHNlbGYudG9rZW5bMV0pKQorICAgICAg
ICBzZWxmLmNvbnN1bWUoKQorICAgICAgICBzZWxmLnRyZWUucG9wKCkKKworICAgIGRlZiBhdG9t
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnRva2VuWzFdIG5vdCBpbiBhdG9tczoKKyAgICAgICAg
ICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5p
emVyLmxpbmVfbnVtYmVyLCAiVW5yZWNvZ25pc2VkIHN5bWJvbCBAJXMiICUgc2VsZi50b2tlblsx
XSkKKyAgICAgICAgc2VsZi50cmVlLmFwcGVuZChBdG9tTm9kZShhdG9tc1tzZWxmLnRva2VuWzFd
XSkpCisgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIHNlbGYudHJlZS5wb3AoKQorCisg
ICAgZGVmIGV4cHJfc3RhcnQoc2VsZik6CisgICAgICAgIHNlbGYuZXhwcl9idWlsZGVyID0gRXhw
cmVzc2lvbkJ1aWxkZXIoc2VsZi50b2tlbml6ZXIpCisgICAgICAgIHNlbGYuZXhwcl9idWlsZGVy
cy5hcHBlbmQoc2VsZi5leHByX2J1aWxkZXIpCisgICAgICAgIHNlbGYuZXhwcigpCisgICAgICAg
IGV4cHJlc3Npb24gPSBzZWxmLmV4cHJfYnVpbGRlci5maW5pc2goKQorICAgICAgICBzZWxmLmV4
cHJfYnVpbGRlcnMucG9wKCkKKyAgICAgICAgc2VsZi5leHByX2J1aWxkZXIgPSBzZWxmLmV4cHJf
YnVpbGRlcnNbLTFdIGlmIHNlbGYuZXhwcl9idWlsZGVycyBlbHNlIE5vbmUKKyAgICAgICAgaWYg
c2VsZi5leHByX2J1aWxkZXI6CisgICAgICAgICAgICBzZWxmLmV4cHJfYnVpbGRlci5vcGVyYW5k
c1stMV0uY2hpbGRyZW5bLTFdLmFwcGVuZChleHByZXNzaW9uKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi50cmVlLmFwcGVuZChleHByZXNzaW9uKQorICAgICAgICAgICAgc2VsZi50
cmVlLnBvcCgpCisKKyAgICBkZWYgZXhwcihzZWxmKToKKyAgICAgICAgc2VsZi5leHByX29wZXJh
bmQoKQorICAgICAgICB3aGlsZSAoc2VsZi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5pZGVudCBh
bmQgc2VsZi50b2tlblsxXSBpbiBiaW5hcnlfb3BlcmF0b3JzKToKKyAgICAgICAgICAgIHNlbGYu
ZXhwcl9iaW5fb3AoKQorICAgICAgICAgICAgc2VsZi5leHByX29wZXJhbmQoKQorCisgICAgZGVm
IGV4cHJfb3BlcmFuZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi50b2tlbiA9PSAodG9rZW5fdHlw
ZXMucGFyZW4sICIoIik6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAg
c2VsZi5leHByX2J1aWxkZXIubGVmdF9wYXJlbigpCisgICAgICAgICAgICBzZWxmLmV4cHIoKQor
ICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMucGFyZW4sICIpIikKKyAgICAgICAg
ICAgIHNlbGYuZXhwcl9idWlsZGVyLnJpZ2h0X3BhcmVuKCkKKyAgICAgICAgZWxpZiBzZWxmLnRv
a2VuWzBdID09IHRva2VuX3R5cGVzLmlkZW50IGFuZCBzZWxmLnRva2VuWzFdIGluIHVuYXJ5X29w
ZXJhdG9yczoKKyAgICAgICAgICAgIHNlbGYuZXhwcl91bmFyeV9vcCgpCisgICAgICAgICAgICBz
ZWxmLmV4cHJfb3BlcmFuZCgpCisgICAgICAgIGVsaWYgc2VsZi50b2tlblswXSBpbiBbdG9rZW5f
dHlwZXMuc3RyaW5nLCB0b2tlbl90eXBlcy5pZGVudF06CisgICAgICAgICAgICBzZWxmLmV4cHJf
dmFsdWUoKQorICAgICAgICBlbGlmIHNlbGYudG9rZW5bMF0gPT0gdG9rZW5fdHlwZXMubnVtYmVy
OgorICAgICAgICAgICAgc2VsZi5leHByX251bWJlcigpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYudG9rZW5pemVyLmZpbGVuYW1lLCBzZWxmLnRva2Vu
aXplci5saW5lX251bWJlciwgIlVucmVjb2duaXNlZCBvcGVyYW5kIikKKworICAgIGRlZiBleHBy
X3VuYXJ5X29wKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnRva2VuWzFdIGluIHVuYXJ5X29wZXJh
dG9yczoKKyAgICAgICAgICAgIHNlbGYuZXhwcl9idWlsZGVyLnB1c2hfb3BlcmF0b3IoVW5hcnlP
cGVyYXRvck5vZGUoc2VsZi50b2tlblsxXSkpCisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXpl
ci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGluZV9udW1iZXIsICJFeHBlY3RlZCB1bmFyeSBv
cGVyYXRvciIpCisKKyAgICBkZWYgZXhwcl9iaW5fb3Aoc2VsZik6CisgICAgICAgIGlmIHNlbGYu
dG9rZW5bMV0gaW4gYmluYXJ5X29wZXJhdG9yczoKKyAgICAgICAgICAgIHNlbGYuZXhwcl9idWls
ZGVyLnB1c2hfb3BlcmF0b3IoQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYudG9rZW5bMV0pKQorICAg
ICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNl
IFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVyLmxpbmVf
bnVtYmVyLCAiRXhwZWN0ZWQgYmluYXJ5IG9wZXJhdG9yIikKKworICAgIGRlZiBleHByX3ZhbHVl
KHNlbGYpOgorICAgICAgICBub2RlX3R5cGUgPSB7dG9rZW5fdHlwZXMuc3RyaW5nOiBTdHJpbmdO
b2RlLAorICAgICAgICAgICAgICAgICAgICAgdG9rZW5fdHlwZXMuaWRlbnQ6IFZhcmlhYmxlTm9k
ZX1bc2VsZi50b2tlblswXV0KKyAgICAgICAgc2VsZi5leHByX2J1aWxkZXIucHVzaF9vcGVyYW5k
KG5vZGVfdHlwZShzZWxmLnRva2VuWzFdKSkKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAg
ICAgaWYgc2VsZi50b2tlbiA9PSAodG9rZW5fdHlwZXMucGFyZW4sICJbIik6CisgICAgICAgICAg
ICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgc2VsZi5leHByX2J1aWxkZXIub3BlcmFuZHNb
LTFdLmFwcGVuZChJbmRleE5vZGUoKSkKKyAgICAgICAgICAgIHNlbGYuZXhwcl9zdGFydCgpCisg
ICAgICAgICAgICBzZWxmLmV4cGVjdCh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKQorCisgICAgZGVm
IGV4cHJfbnVtYmVyKHNlbGYpOgorICAgICAgICBzZWxmLmV4cHJfYnVpbGRlci5wdXNoX29wZXJh
bmQoTnVtYmVyTm9kZShzZWxmLnRva2VuWzFdKSkKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKwor
CitjbGFzcyBUcmVlYnVpbGRlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290
KToKKyAgICAgICAgc2VsZi5yb290ID0gcm9vdAorICAgICAgICBzZWxmLm5vZGUgPSByb290CisK
KyAgICBkZWYgYXBwZW5kKHNlbGYsIG5vZGUpOgorICAgICAgICBzZWxmLm5vZGUuYXBwZW5kKG5v
ZGUpCisgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgcmV0dXJuIG5vZGUKKworICAg
IGRlZiBwb3Aoc2VsZik6CisgICAgICAgIG5vZGUgPSBzZWxmLm5vZGUKKyAgICAgICAgc2VsZi5u
b2RlID0gc2VsZi5ub2RlLnBhcmVudAorICAgICAgICByZXR1cm4gbm9kZQorCisKK2NsYXNzIEV4
cHJlc3Npb25CdWlsZGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRva2VuaXpl
cik6CisgICAgICAgIHNlbGYub3BlcmFuZHMgPSBbXQorICAgICAgICBzZWxmLm9wZXJhdG9ycyA9
IFtOb25lXQorICAgICAgICBzZWxmLnRva2VuaXplciA9IHRva2VuaXplcgorCisgICAgZGVmIGZp
bmlzaChzZWxmKToKKyAgICAgICAgd2hpbGUgc2VsZi5vcGVyYXRvcnNbLTFdIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgc2VsZi5wb3Bfb3BlcmF0b3IoKQorICAgICAgICBydiA9IHNlbGYucG9w
X29wZXJhbmQoKQorICAgICAgICBhc3NlcnQgc2VsZi5pc19lbXB0eSgpCisgICAgICAgIHJldHVy
biBydgorCisgICAgZGVmIGxlZnRfcGFyZW4oc2VsZik6CisgICAgICAgIHNlbGYub3BlcmF0b3Jz
LmFwcGVuZChOb25lKQorCisgICAgZGVmIHJpZ2h0X3BhcmVuKHNlbGYpOgorICAgICAgICB3aGls
ZSBzZWxmLm9wZXJhdG9yc1stMV0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnBvcF9v
cGVyYXRvcigpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5vcGVyYXRvcnM6CisgICAgICAgICAg
ICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tl
bml6ZXIubGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmJhbGFuY2Vk
IHBhcmVucyIpCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3BlcmF0b3JzLnBvcCgpIGlzIE5vbmUK
KworICAgIGRlZiBwdXNoX29wZXJhdG9yKHNlbGYsIG9wZXJhdG9yKToKKyAgICAgICAgYXNzZXJ0
IG9wZXJhdG9yIGlzIG5vdCBOb25lCisgICAgICAgIHdoaWxlIHNlbGYucHJlY2VkZW5jZShzZWxm
Lm9wZXJhdG9yc1stMV0pID4gc2VsZi5wcmVjZWRlbmNlKG9wZXJhdG9yKToKKyAgICAgICAgICAg
IHNlbGYucG9wX29wZXJhdG9yKCkKKworICAgICAgICBzZWxmLm9wZXJhdG9ycy5hcHBlbmQob3Bl
cmF0b3IpCisKKyAgICBkZWYgcG9wX29wZXJhdG9yKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9
IHNlbGYub3BlcmF0b3JzLnBvcCgpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3BlcmF0b3IsIEJp
bmFyeU9wZXJhdG9yTm9kZSk6CisgICAgICAgICAgICBvcGVyYW5kXzEgPSBzZWxmLm9wZXJhbmRz
LnBvcCgpCisgICAgICAgICAgICBvcGVyYW5kXzAgPSBzZWxmLm9wZXJhbmRzLnBvcCgpCisgICAg
ICAgICAgICBzZWxmLm9wZXJhbmRzLmFwcGVuZChCaW5hcnlFeHByZXNzaW9uTm9kZShvcGVyYXRv
ciwgb3BlcmFuZF8wLCBvcGVyYW5kXzEpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3Bl
cmFuZF8wID0gc2VsZi5vcGVyYW5kcy5wb3AoKQorICAgICAgICAgICAgc2VsZi5vcGVyYW5kcy5h
cHBlbmQoVW5hcnlFeHByZXNzaW9uTm9kZShvcGVyYXRvciwgb3BlcmFuZF8wKSkKKworICAgIGRl
ZiBwdXNoX29wZXJhbmQoc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYub3BlcmFuZHMuYXBwZW5k
KG5vZGUpCisKKyAgICBkZWYgcG9wX29wZXJhbmQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Lm9wZXJhbmRzLnBvcCgpCisKKyAgICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIHJldHVy
biBsZW4oc2VsZi5vcGVyYW5kcykgPT0gMCBhbmQgYWxsKGl0ZW0gaXMgTm9uZSBmb3IgaXRlbSBp
biBzZWxmLm9wZXJhdG9ycykKKworICAgIGRlZiBwcmVjZWRlbmNlKHNlbGYsIG9wZXJhdG9yKToK
KyAgICAgICAgaWYgb3BlcmF0b3IgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAwCisgICAg
ICAgIHJldHVybiBwcmVjZWRlbmNlKG9wZXJhdG9yKQorCisKK2RlZiBwYXJzZShzdHJlYW0pOgor
ICAgIHAgPSBQYXJzZXIoKQorICAgIHJldHVybiBwLnBhcnNlKHN0cmVhbSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JlMmE2ZDk0ZDYyMjcyYmQ2ZTUx
N2UzNDJkNjA4NTM2OTc4YzJjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC9zZXJpYWxpemVyLnB5CkBAIC0wLDAgKzEsMTM4IEBACitmcm9tIG5vZGUgaW1wb3J0
IE5vZGVWaXNpdG9yLCBWYWx1ZU5vZGUsIExpc3ROb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZQor
ZnJvbSBwYXJzZXIgaW1wb3J0IGF0b21zLCBwcmVjZWRlbmNlCisKK2F0b21fbmFtZXMgPSB7djoi
QCVzIiAlIGsgZm9yIChrLHYpIGluIGF0b21zLml0ZXJpdGVtcygpfQorCituYW1lZF9lc2NhcGVz
ID0gc2V0KFsiXGEiLCAiXGIiLCAiXGYiLCAiXG4iLCAiXHIiLCAiXHQiLCAiXHYiXSkKKworZGVm
IGVzY2FwZShzdHJpbmcsIGV4dHJhcz0iIik6CisgICAgcnYgPSAiIgorICAgIGZvciBjIGluIHN0
cmluZzoKKyAgICAgICAgaWYgYyBpbiBuYW1lZF9lc2NhcGVzOgorICAgICAgICAgICAgcnYgKz0g
Yy5lbmNvZGUoInVuaWNvZGVfZXNjYXBlIikKKyAgICAgICAgZWxpZiBjID09ICJcXCI6CisgICAg
ICAgICAgICBydiArPSAiXFxcXCIKKyAgICAgICAgZWxpZiBjIDwgJ1x4MjAnOgorICAgICAgICAg
ICAgcnYgKz0gIlxceCUwMngiICUgb3JkKGMpCisgICAgICAgIGVsaWYgYyBpbiBleHRyYXM6Cisg
ICAgICAgICAgICBydiArPSAiXFwiICsgYworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnYg
Kz0gYworICAgIHJldHVybiBydi5lbmNvZGUoInV0ZjgiKQorCisKK2NsYXNzIE1hbmlmZXN0U2Vy
aWFsaXplcihOb2RlVmlzaXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNraXBfZW1wdHlf
ZGF0YT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2tpcF9lbXB0eV9kYXRhID0gc2tpcF9lbXB0eV9k
YXRhCisKKyAgICBkZWYgc2VyaWFsaXplKHNlbGYsIHJvb3QpOgorICAgICAgICBzZWxmLmluZGVu
dCA9IDIKKyAgICAgICAgcnYgPSAiXG4iLmpvaW4oc2VsZi52aXNpdChyb290KSkKKyAgICAgICAg
aWYgbm90IHJ2OgorICAgICAgICAgICAgcmV0dXJuIHJ2CisgICAgICAgIGlmIHJ2Wy0xXSAhPSAi
XG4iOgorICAgICAgICAgICAgcnYgPSBydiArICJcbiIKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAg
ICBkZWYgdmlzaXRfRGF0YU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJ2ID0gW10KKyAgICAg
ICAgaWYgbm90IHNlbGYuc2tpcF9lbXB0eV9kYXRhIG9yIG5vZGUuY2hpbGRyZW46CisgICAgICAg
ICAgICBpZiBub2RlLmRhdGE6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKCJbJXNdIiAlIGVz
Y2FwZShub2RlLmRhdGEsIGV4dHJhcz0iXSIpKQorICAgICAgICAgICAgICAgIGluZGVudCA9IHNl
bGYuaW5kZW50ICogIiAiCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGluZGVu
dCA9ICIiCisKKyAgICAgICAgICAgIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAg
ICAgICAgICAgIHJ2LmV4dGVuZCgiJXMlcyIgJSAoaW5kZW50IGlmIGl0ZW0gZWxzZSAiIiwgaXRl
bSkgZm9yIGl0ZW0gaW4gc2VsZi52aXNpdChjaGlsZCkpCisKKyAgICAgICAgICAgIGlmIG5vZGUu
cGFyZW50OgorICAgICAgICAgICAgICAgIHJ2LmFwcGVuZCgiIikKKworICAgICAgICByZXR1cm4g
cnYKKworICAgIGRlZiB2aXNpdF9LZXlWYWx1ZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJ2
ID0gW2VzY2FwZShub2RlLmRhdGEsICI6IikgKyAiOiJdCisgICAgICAgIGluZGVudCA9ICIgIiAq
IHNlbGYuaW5kZW50CisKKyAgICAgICAgaWYgbGVuKG5vZGUuY2hpbGRyZW4pID09IDEgYW5kIGlz
aW5zdGFuY2Uobm9kZS5jaGlsZHJlblswXSwgKFZhbHVlTm9kZSwgTGlzdE5vZGUpKToKKyAgICAg
ICAgICAgIHJ2WzBdICs9ICIgJXMiICUgc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzBdKVswXQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46Cisg
ICAgICAgICAgICAgICAgcnYuYXBwZW5kKGluZGVudCArIHNlbGYudmlzaXQoY2hpbGQpWzBdKQor
CisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIHZpc2l0X0xpc3ROb2RlKHNlbGYsIG5vZGUp
OgorICAgICAgICBydiA9IFsiWyJdCisgICAgICAgIHJ2LmV4dGVuZCgiLCAiLmpvaW4oc2VsZi52
aXNpdChjaGlsZClbMF0gZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW4pKQorICAgICAgICBydi5h
cHBlbmQoIl0iKQorICAgICAgICByZXR1cm4gWyIiLmpvaW4ocnYpXQorCisgICAgZGVmIHZpc2l0
X1ZhbHVlTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaWYgIiMiIGluIG5vZGUuZGF0YSBvciAo
aXNpbnN0YW5jZShub2RlLnBhcmVudCwgTGlzdE5vZGUpIGFuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoIiwiIGluIG5vZGUuZGF0YSBvciAiXSIgaW4gbm9kZS5kYXRhKSk6Cisg
ICAgICAgICAgICBpZiAiXCIiIGluIG5vZGUuZGF0YToKKyAgICAgICAgICAgICAgICBxdW90ZSA9
ICInIgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBxdW90ZSA9ICJcIiIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHF1b3RlID0gIiIKKyAgICAgICAgcmV0dXJuIFtxdW90
ZSArIGVzY2FwZShub2RlLmRhdGEsIGV4dHJhcz1xdW90ZSkgKyBxdW90ZV0KKworICAgIGRlZiB2
aXNpdF9BdG9tTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0dXJuIFthdG9tX25hbWVzW25v
ZGUuZGF0YV1dCisKKyAgICBkZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgor
ICAgICAgICByZXR1cm4gWyJpZiAlczogJXMiICUgdHVwbGUoc2VsZi52aXNpdChpdGVtKVswXSBm
b3IgaXRlbSBpbiBub2RlLmNoaWxkcmVuKV0KKworICAgIGRlZiB2aXNpdF9TdHJpbmdOb2RlKHNl
bGYsIG5vZGUpOgorICAgICAgICBydiA9IFsiXCIlc1wiIiAlIGVzY2FwZShub2RlLmRhdGEsIGV4
dHJhcz0iXCIiKV0KKyAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAg
ICAgICBydlswXSArPSBzZWxmLnZpc2l0KGNoaWxkKVswXQorICAgICAgICByZXR1cm4gcnYKKwor
ICAgIGRlZiB2aXNpdF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICByZXR1cm4gW3N0
cihub2RlLmRhdGEpXQorCisgICAgZGVmIHZpc2l0X1ZhcmlhYmxlTm9kZShzZWxmLCBub2RlKToK
KyAgICAgICAgcnYgPSBlc2NhcGUobm9kZS5kYXRhKQorICAgICAgICBmb3IgY2hpbGQgaW4gbm9k
ZS5jaGlsZHJlbjoKKyAgICAgICAgICAgIHJ2ICs9IHNlbGYudmlzaXQoY2hpbGQpCisgICAgICAg
IHJldHVybiBbcnZdCisKKyAgICBkZWYgdmlzaXRfSW5kZXhOb2RlKHNlbGYsIG5vZGUpOgorICAg
ICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDEKKyAgICAgICAgcmV0dXJuIFsiWyVz
XSIgJSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pWzBdXQorCisgICAgZGVmIHZpc2l0X1Vu
YXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGNoaWxkcmVuID0gW10KKyAg
ICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICBjaGlsZF9zdHIg
PSBzZWxmLnZpc2l0KGNoaWxkKVswXQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjaGlsZCwg
QmluYXJ5RXhwcmVzc2lvbk5vZGUpOgorICAgICAgICAgICAgICAgIGNoaWxkX3N0ciA9ICIoJXMp
IiAlIGNoaWxkX3N0cgorICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkX3N0cikKKyAg
ICAgICAgcmV0dXJuIFsiICIuam9pbihjaGlsZHJlbildCisKKyAgICBkZWYgdmlzaXRfQmluYXJ5
RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5jaGls
ZHJlbikgPT0gMworICAgICAgICBjaGlsZHJlbiA9IFtdCisgICAgICAgIGZvciBjaGlsZF9pbmRl
eCBpbiBbMSwgMCwgMl06CisgICAgICAgICAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW5bY2hpbGRf
aW5kZXhdCisgICAgICAgICAgICBjaGlsZF9zdHIgPSBzZWxmLnZpc2l0KGNoaWxkKVswXQorICAg
ICAgICAgICAgaWYgKGlzaW5zdGFuY2UoY2hpbGQsIEJpbmFyeUV4cHJlc3Npb25Ob2RlKSBhbmQK
KyAgICAgICAgICAgICAgICBwcmVjZWRlbmNlKG5vZGUuY2hpbGRyZW5bMF0pIDwgcHJlY2VkZW5j
ZShjaGlsZC5jaGlsZHJlblswXSkpOgorICAgICAgICAgICAgICAgIGNoaWxkX3N0ciA9ICIoJXMp
IiAlIGNoaWxkX3N0cgorICAgICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkX3N0cikKKyAg
ICAgICAgcmV0dXJuIFsiICIuam9pbihjaGlsZHJlbildCisKKyAgICBkZWYgdmlzaXRfVW5hcnlP
cGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiBbc3RyKG5vZGUuZGF0YSld
CisKKyAgICBkZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAg
ICByZXR1cm4gW3N0cihub2RlLmRhdGEpXQorCisKK2RlZiBzZXJpYWxpemUodHJlZSwgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICBzID0gTWFuaWZlc3RTZXJpYWxpemVyKCphcmdzLCAqKmt3YXJncykK
KyAgICByZXR1cm4gcy5zZXJpYWxpemUodHJlZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90
ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFj
N2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X2NvbmRpdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL3Rlc3RfY29uZGl0aW9uYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlmZmRmMjU1MDcyZTIxN2FhMDIz
ZDJhMDRlMjlkMDhiNWQyZmE3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRpdGlvbmFsLnB5CkBAIC0wLDAgKzEsMTQzIEBACitpbXBv
cnQgdW5pdHRlc3QKKworZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gLi5i
YWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKK2Zyb20gLi5ub2RlIGltcG9ydCBCaW5hcnlFeHBy
ZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2RlLCBWYXJpYWJsZU5vZGUsIE51bWJlck5vZGUK
KworCitjbGFzcyBUZXN0Q29uZGl0aW9uYWwodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBj
b21waWxlKHNlbGYsIGlucHV0X3RleHQpOgorICAgICAgICByZXR1cm4gY29uZGl0aW9uYWwuY29t
cGlsZShpbnB1dF90ZXh0KQorCisgICAgZGVmIHRlc3RfZ2V0XzAoc2VsZik6CisgICAgICAgIGRh
dGEgPSAiIiIKK2tleTogdmFsdWUKKworW0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlm
IGEgPT0gMTogdmFsdWVfMQorICAgIGlmIGEgPT0gMjogdmFsdWVfMgorICAgIHZhbHVlXzMKKyIi
IgorCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiKSwgInZhbHVlIikKKyAgICAgICAgY2hp
bGRyZW4gPSBsaXN0KGl0ZW0gZm9yIGl0ZW0gaW4gbWFuaWZlc3QuaXRlcmNoaWxkcmVuKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihjaGlsZHJlbiksIDEpCisgICAgICAgIHNlY3Rp
b24gPSBjaGlsZHJlblswXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWN0aW9uLm5hbWUs
ICJIZWFkaW5nIDEiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlY3Rpb24uZ2V0KCJv
dGhlcl9rZXkiLCB7ImEiOiAxfSksICJ2YWx1ZV8xIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoc2VjdGlvbi5nZXQoIm90aGVyX2tleSIsIHsiYSI6IDJ9KSwgInZhbHVlXzIiKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZWN0aW9uLmdldCgib3RoZXJfa2V5IiwgeyJhIjogN30pLCAi
dmFsdWVfMyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlY3Rpb24uZ2V0KCJrZXkiKSwg
InZhbHVlIikKKworICAgIGRlZiB0ZXN0X2dldF8xKHNlbGYpOgorICAgICAgICBkYXRhID0gIiIi
CitrZXk6IHZhbHVlCisKK1tIZWFkaW5nIDFdCisgIG90aGVyX2tleToKKyAgICBpZiBhID09ICIx
IjogdmFsdWVfMQorICAgIGlmIGEgPT0gMjogdmFsdWVfMgorICAgIHZhbHVlXzMKKyIiIgorCisg
ICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEpCisKKyAgICAgICAgY2hpbGRyZW4g
PSBsaXN0KGl0ZW0gZm9yIGl0ZW0gaW4gbWFuaWZlc3QuaXRlcmNoaWxkcmVuKCkpCisgICAgICAg
IHNlY3Rpb24gPSBjaGlsZHJlblswXQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlY3Rp
b24uZ2V0KCJvdGhlcl9rZXkiLCB7ImEiOiAiMSJ9KSwgInZhbHVlXzEiKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhzZWN0aW9uLmdldCgib3RoZXJfa2V5IiwgeyJhIjogMX0pLCAidmFsdWVf
MyIpCisKKyAgICBkZWYgdGVzdF9nZXRfMihzZWxmKToKKyAgICAgICAgZGF0YSA9ICIiIgora2V5
OgorICBpZiBhWzFdID09ICJiIjogdmFsdWVfMQorICBpZiBhWzFdID09IDI6IHZhbHVlXzIKKyAg
dmFsdWVfMworIiIiCisKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSkKKwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5pZmVzdC5nZXQoImtleSIsIHsiYSI6ICJhYiJ9
KSwgInZhbHVlXzEiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5pZmVzdC5nZXQoImtl
eSIsIHsiYSI6IFsxLCAyXX0pLCAidmFsdWVfMiIpCisKKyAgICBkZWYgdGVzdF9nZXRfMyhzZWxm
KToKKyAgICAgICAgZGF0YSA9ICIiIgora2V5OgorICBpZiBhWzFdID09ICJhYiJbMV06IHZhbHVl
XzEKKyAgaWYgYVsxXSA9PSAyOiB2YWx1ZV8yCisgIHZhbHVlXzMKKyIiIgorCisgICAgICAgIG1h
bmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
bWFuaWZlc3QuZ2V0KCJrZXkiLCB7ImEiOiAiYWIifSksICJ2YWx1ZV8xIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiLCB7ImEiOiBbMSwgMl19KSwgInZhbHVl
XzIiKQorCisgICAgZGVmIHRlc3Rfc2V0XzAoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tl
eToKKyAgaWYgYSA9PSAiYSI6IHZhbHVlXzEKKyAgaWYgYSA9PSAiYiI6IHZhbHVlXzIKKyAgdmFs
dWVfMworIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEpCisKKyAgICAg
ICAgbWFuaWZlc3Quc2V0KCJuZXdfa2V5IiwgInZhbHVlX25ldyIpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJuZXdfa2V5IiksICJ2YWx1ZV9uZXciKQorCisgICAg
ZGVmIHRlc3Rfc2V0XzEoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tleToKKyAgaWYgYSA9
PSAiYSI6IHZhbHVlXzEKKyAgaWYgYSA9PSAiYiI6IHZhbHVlXzIKKyAgdmFsdWVfMworIiIiCisK
KyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSkKKworICAgICAgICBtYW5pZmVz
dC5zZXQoImtleSIsICJ2YWx1ZV9uZXciKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1h
bmlmZXN0LmdldCgia2V5IiksICJ2YWx1ZV9uZXciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhtYW5pZmVzdC5nZXQoImtleSIsIHsiYSI6ICJhIn0pLCAidmFsdWVfMSIpCisKKyAgICBkZWYg
dGVzdF9zZXRfMihzZWxmKToKKyAgICAgICAgZGF0YSA9ICIiIgora2V5OgorICBpZiBhID09ICJh
IjogdmFsdWVfMQorICBpZiBhID09ICJiIjogdmFsdWVfMgorICB2YWx1ZV8zCisiIiIKKworICAg
ICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGlsZShkYXRhKQorCisgICAgICAgIGV4cHIgPSBCaW5h
cnlFeHByZXNzaW9uTm9kZShCaW5hcnlPcGVyYXRvck5vZGUoIj09IiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZU5vZGUoImEiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE51bWJlck5vZGUoIjEiKSkKKworICAgICAgICBtYW5pZmVz
dC5zZXQoImtleSIsICJ2YWx1ZV9uZXciLCBleHByKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKG1hbmlmZXN0LmdldCgia2V5IiwgeyJhIjogMX0pLCAidmFsdWVfbmV3IikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiLCB7ImEiOiAiYSJ9KSwgInZhbHVl
XzEiKQorCisgICAgZGVmIHRlc3RfYXBpXzAoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tl
eToKKyAgaWYgYSA9PSAxLjU6IHZhbHVlXzEKKyAgdmFsdWVfMgora2V5XzE6IG90aGVyX3ZhbHVl
CisiIiIKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSkKKworICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKG1hbmlmZXN0LmlzX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhtYW5pZmVzdC5yb290LCBtYW5pZmVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1h
bmlmZXN0Lmhhc19rZXkoImtleV8xIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWFuaWZl
c3QuaGFzX2tleSgia2V5XzIiKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFu
aWZlc3QuaXRlcmtleXMoKSksIHNldChbImtleSIsICJrZXlfMSJdKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3BhcnNlci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3BhcnNlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjVjOTg0ZjQy
ZjU2ZDRiODg4YTVhNWViODE3MTQ3NDg1MmZmYmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5CkBAIC0wLDAgKzEsNzUgQEAK
K2ltcG9ydCB1bml0dGVzdAorCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KKworZnJv
bSAuLiBpbXBvcnQgcGFyc2VyCisKKyMgVGhlcmUgYXJlbid0IG1hbnkgdGVzdHMgaGVyZSBiZWNh
dXNlIGl0IHR1cm5zIG91dCB0byBiZSB3YXkgbW9yZSBjb252ZW5pZW50IHRvCisjIHVzZSB0ZXN0
X3NlcmlhbGl6ZXIgZm9yIHRoZSBtYWpvcml0eSBvZiBjYXNlcworCisKK2NsYXNzIFRlc3RFeHBy
ZXNzaW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg
IHNlbGYucGFyc2VyID0gcGFyc2VyLlBhcnNlcigpCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgaW5w
dXRfc3RyKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGFyc2VyLnBhcnNlKFN0cmluZ0lPKGlucHV0
X3N0cikpCisKKyAgICBkZWYgY29tcGFyZShzZWxmLCBpbnB1dF90ZXh0LCBleHBlY3RlZCk6Cisg
ICAgICAgIGFjdHVhbCA9IHNlbGYucGFyc2UoaW5wdXRfdGV4dCkKKyAgICAgICAgc2VsZi5tYXRj
aChleHBlY3RlZCwgYWN0dWFsKQorCisgICAgZGVmIG1hdGNoKHNlbGYsIGV4cGVjdGVkX25vZGUs
IGFjdHVhbF9ub2RlKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbm9kZVsw
XSwgYWN0dWFsX25vZGUuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhleHBlY3RlZF9ub2RlWzFdLCBhY3R1YWxfbm9kZS5kYXRhKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhsZW4oZXhwZWN0ZWRfbm9kZVsyXSksIGxlbihhY3R1YWxfbm9kZS5jaGlsZHJl
bikpCisgICAgICAgIGZvciBleHBlY3RlZF9jaGlsZCwgYWN0dWFsX2NoaWxkIGluIHppcChleHBl
Y3RlZF9ub2RlWzJdLCBhY3R1YWxfbm9kZS5jaGlsZHJlbik6CisgICAgICAgICAgICBzZWxmLm1h
dGNoKGV4cGVjdGVkX2NoaWxkLCBhY3R1YWxfY2hpbGQpCisKKyAgICBkZWYgdGVzdF9leHByXzAo
c2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgKKyAgICAgICAgICAgICIiIgora2V5OgorICBp
ZiB4ID09IDEgOiB2YWx1ZSIiIiwKKyAgICAgICAgICAgIFsiRGF0YU5vZGUiLCBOb25lLAorICAg
ICAgICAgICAgIFtbIktleVZhbHVlTm9kZSIsICJrZXkiLAorICAgICAgICAgICAgICAgW1siQ29u
ZGl0aW9uYWxOb2RlIiwgTm9uZSwKKyAgICAgICAgICAgICAgICAgW1siQmluYXJ5RXhwcmVzc2lv
bk5vZGUiLCBOb25lLAorICAgICAgICAgICAgICAgICAgIFtbIkJpbmFyeU9wZXJhdG9yTm9kZSIs
ICI9PSIsIFtdXSwKKyAgICAgICAgICAgICAgICAgICAgWyJWYXJpYWJsZU5vZGUiLCAieCIsIFtd
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgWyJOdW1iZXJOb2RlIiwgIjEiLCBbXV0KKyAgICAg
ICAgICAgICAgICAgICAgXV0sCisgICAgICAgICAgICAgICAgICAgICBbIlZhbHVlTm9kZSIsICJ2
YWx1ZSIsIFtdXSwKKyAgICAgICAgICAgICAgICAgIF1dXV1dXQorICAgICAgICApCisKKyAgICBk
ZWYgdGVzdF9leHByXzEoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgKKyAgICAgICAgICAg
ICIiIgora2V5OgorICBpZiBub3QgeCBhbmQgeSA6IHZhbHVlIiIiLAorICAgICAgICAgICAgWyJE
YXRhTm9kZSIsIE5vbmUsCisgICAgICAgICAgICAgW1siS2V5VmFsdWVOb2RlIiwgImtleSIsCisg
ICAgICAgICAgICAgICBbWyJDb25kaXRpb25hbE5vZGUiLCBOb25lLAorICAgICAgICAgICAgICAg
ICBbWyJCaW5hcnlFeHByZXNzaW9uTm9kZSIsIE5vbmUsCisgICAgICAgICAgICAgICAgICAgW1si
QmluYXJ5T3BlcmF0b3JOb2RlIiwgImFuZCIsIFtdXSwKKyAgICAgICAgICAgICAgICAgICAgWyJV
bmFyeUV4cHJlc3Npb25Ob2RlIiwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgW1siVW5h
cnlPcGVyYXRvck5vZGUiLCAibm90IiwgW11dLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJW
YXJpYWJsZU5vZGUiLCAieCIsIFtdXQorICAgICAgICAgICAgICAgICAgICAgICAgXV0sCisgICAg
ICAgICAgICAgICAgICAgICAgIFsiVmFyaWFibGVOb2RlIiwgInkiLCBbXV0KKyAgICAgICAgICAg
ICAgICAgICAgXV0sCisgICAgICAgICAgICAgICAgICAgICBbIlZhbHVlTm9kZSIsICJ2YWx1ZSIs
IFtdXSwKKyAgICAgICAgICAgICAgICAgIF1dXV1dXQorICAgICAgICApCisKKyAgICBkZWYgdGVz
dF9hdG9tXzAoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBh
cnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5wYXJzZSgia2V5OiBAVW5rbm93biIpCisKKyAg
ICBkZWYgdGVzdF9hdG9tXzEoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
cGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5wYXJzZSgia2V5OiBAdHJ1ZSIp
CisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OTA4ZWE0YzFlMDIwZGQxYWFmZGQ4ZGExNGYzODdjN2M0OGMwMDBlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXpl
ci5weQpAQCAtMCwwICsxLDIyNyBAQAoraW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CisKK2Zy
b20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gLi4g
aW1wb3J0IHBhcnNlciwgc2VyaWFsaXplcgorCisKK2NsYXNzIFRva2VuaXplclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5zZXJpYWxp
emVyID0gc2VyaWFsaXplci5NYW5pZmVzdFNlcmlhbGl6ZXIoKQorICAgICAgICBzZWxmLnBhcnNl
ciA9IHBhcnNlci5QYXJzZXIoKQorCisgICAgZGVmIHNlcmlhbGl6ZShzZWxmLCBpbnB1dF9zdHIp
OgorICAgICAgICByZXR1cm4gc2VsZi5zZXJpYWxpemVyLnNlcmlhbGl6ZShzZWxmLnBhcnNlci5w
YXJzZShpbnB1dF9zdHIpKQorCisgICAgZGVmIGNvbXBhcmUoc2VsZiwgaW5wdXRfc3RyLCBleHBl
Y3RlZD1Ob25lKToKKyAgICAgICAgaWYgZXhwZWN0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgIGV4
cGVjdGVkID0gaW5wdXRfc3RyCisgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQuZW5jb2RlKCJ1
dGY4IikKKyAgICAgICAgYWN0dWFsID0gc2VsZi5zZXJpYWxpemUoaW5wdXRfc3RyKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfMChz
ZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisg
IG90aGVyX2tleTogb3RoZXJfdmFsdWUKKyIiIikKKworICAgIGRlZiB0ZXN0XzEoc2VsZik6Cisg
ICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IHZhbHVlCitbSGVhZGluZyAxXQorICBvdGhlcl9r
ZXk6CisgICAgaWYgYSBvciBiOiBvdGhlcl92YWx1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfMihz
ZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisg
IG90aGVyX2tleToKKyAgICBpZiBhIG9yIGI6IG90aGVyX3ZhbHVlCisgICAgZmFsbGJhY2tfdmFs
dWUKKyIiIikKKworICAgIGRlZiB0ZXN0XzMoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgi
IiJrZXk6IHZhbHVlCitbSGVhZGluZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgYSA9PSAxOiBv
dGhlcl92YWx1ZQorICAgIGZhbGxiYWNrX3ZhbHVlCisiIiIpCisKKyAgICBkZWYgdGVzdF80KHNl
bGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZQorW0hlYWRpbmcgMV0KKyAg
b3RoZXJfa2V5OgorICAgIGlmIGEgPT0gIjEiOiBvdGhlcl92YWx1ZQorICAgIGZhbGxiYWNrX3Zh
bHVlCisiIiIpCisKKyAgICBkZWYgdGVzdF81KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUo
IiIia2V5OiB2YWx1ZQorW0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgPT0gImFi
YyJbMV06IG90aGVyX3ZhbHVlCisgICAgZmFsbGJhY2tfdmFsdWUKKyIiIikKKworICAgIGRlZiB0
ZXN0XzYoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IHZhbHVlCitbSGVhZGlu
ZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgYSA9PSAiYWJjIltjXTogb3RoZXJfdmFsdWUKKyAg
ICBmYWxsYmFja192YWx1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfNyhzZWxmKToKKyAgICAgICAg
c2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisgIG90aGVyX2tleToKKyAg
ICBpZiAoYSBvciBiKSBhbmQgYzogb3RoZXJfdmFsdWUKKyAgICBmYWxsYmFja192YWx1ZQorIiIi
LAorIiIia2V5OiB2YWx1ZQorW0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgb3Ig
YiBhbmQgYzogb3RoZXJfdmFsdWUKKyAgICBmYWxsYmFja192YWx1ZQorIiIiKQorCisgICAgZGVm
IHRlc3RfOChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFk
aW5nIDFdCisgIG90aGVyX2tleToKKyAgICBpZiBhIG9yIChiIGFuZCBjKTogb3RoZXJfdmFsdWUK
KyAgICBmYWxsYmFja192YWx1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfOShzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisgIG90aGVyX2tleToK
KyAgICBpZiBub3QgKGEgYW5kIGIpOiBvdGhlcl92YWx1ZQorICAgIGZhbGxiYWNrX3ZhbHVlCisi
IiIpCisKKyAgICBkZWYgdGVzdF8xMChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtl
eTogdmFsdWUKK1tIZWFkaW5nIDFdCisgIHNvbWVfa2V5OiBzb21lX3ZhbHVlCisKK1tIZWFkaW5n
IDJdCisgIG90aGVyX2tleTogb3RoZXJfdmFsdWUKKyIiIikKKworICAgIGRlZiB0ZXN0XzExKHNl
bGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OgorICBpZiBub3QgYSBhbmQgYiBhbmQg
YyBhbmQgZDogdHJ1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfMTIoc2VsZik6CisgICAgICAgIHNl
bGYuY29tcGFyZSgiIiJbSGVhZGluZyAxXQorICBrZXk6IFthOjEsIGI6Ml0KKyIiIikKKworICAg
IGRlZiB0ZXN0XzEzKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBbYToxLCAi
YjojIl0KKyIiIikKKworICAgIGRlZiB0ZXN0XzE0KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBh
cmUoIiIia2V5OiBbIiwiXQorIiIiKQorCisgICAgZGVmIHRlc3RfMTUoc2VsZik6CisgICAgICAg
IHNlbGYuY29tcGFyZSgiIiJrZXk6ICwKKyIiIikKKworICAgIGRlZiB0ZXN0XzE2KHNlbGYpOgor
ICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBbIl0iLCBiXQorIiIiKQorCisgICAgZGVmIHRl
c3RfMTcoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IF0KKyIiIikKKworICAg
IGRlZiB0ZXN0XzE4KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBcXQorICAg
ICAgICAiIiIsICIiImtleTogXQorIiIiKQorCisgICAgZGVmIHRlc3RfZXNjYXBlXzAoc2VsZik6
CisgICAgICAgIHNlbGYuY29tcGFyZShyIiIia1x0XDp5OiBcYVxiXGZcblxyXHRcdiIiIiwKKyAg
ICAgICAgICAgICAgICAgICAgIHIiIiJrXHRcOnk6IFx4MDdceDA4XHgwY1xuXHJcdFx4MGIKKyIi
IikKKworICAgIGRlZiB0ZXN0X2VzY2FwZV8xKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUo
ciIiImtceDAwOiBceDEyQVx4NDUiIiIsCisgICAgICAgICAgICAgICAgICAgICByIiIia1x4MDA6
IFx4MTJBRQorIiIiKQorCisgICAgZGVmIHRlc3RfZXNjYXBlXzIoc2VsZik6CisgICAgICAgIHNl
bGYuY29tcGFyZShyIiIia1x1MDA0NXk6IFx1MTIzNEFcdUFCYzYiIiIsCisgICAgICAgICAgICAg
ICAgICAgICB1IiIia0V5OiBcdTEyMzRBXHVhYmM2CisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2Nh
cGVfMyhzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrXHUwMDQ1eTogXHUxMjM0QVx1
QUJjNiIiIiwKKyAgICAgICAgICAgICAgICAgICAgIHUiIiJrRXk6IFx1MTIzNEFcdWFiYzYKKyIi
IikKKworICAgIGRlZiB0ZXN0X2VzY2FwZV80KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUo
ciIiImtleTogJ1x1MTIzNEFcdUFCYzYnIiIiLAorICAgICAgICAgICAgICAgICAgICAgdSIiImtl
eTogXHUxMjM0QVx1YWJjNgorIiIiKQorCisgICAgZGVmIHRlc3RfZXNjYXBlXzUoc2VsZik6Cisg
ICAgICAgIHNlbGYuY29tcGFyZShyIiIia2V5OiBbXHUxMjM0QVx1QUJjNl0iIiIsCisgICAgICAg
ICAgICAgICAgICAgICB1IiIia2V5OiBbXHUxMjM0QVx1YWJjNl0KKyIiIikKKworICAgIGRlZiB0
ZXN0X2VzY2FwZV82KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtleTogW1x1MTIz
NEFcdUFCYzZcLF0iIiIsCisgICAgICAgICAgICAgICAgICAgICB1IiIia2V5OiBbIlx1MTIzNEFc
dWFiYzYsIl0KKyIiIikKKworICAgIGRlZiB0ZXN0X2VzY2FwZV83KHNlbGYpOgorICAgICAgICBz
ZWxmLmNvbXBhcmUociIiImtleTogW1wsXF1cI10iIiIsCisgICAgICAgICAgICAgICAgICAgICBy
IiIia2V5OiBbIixdIyJdCisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2NhcGVfOChzZWxmKToKKyAg
ICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFwjIiIiLAorICAgICAgICAgICAgICAgICAgICAg
ciIiImtleTogIiMiCisiIiIpCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLm1heHVuaWNv
ZGUgPT0gMHhGRkZGLCByZWFzb249Im5hcnJvdyB1bmljb2RlIikKKyAgICBkZWYgdGVzdF9lc2Nh
cGVfOShzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFxVMTBGRkZGYWJjIiIi
LAorICAgICAgICAgICAgICAgICAgICAgdSIiImtleTogXFUwMDEwRkZGRmFiYworIiIiKQorCisg
ICAgZGVmIHRlc3RfZXNjYXBlXzEwKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtl
eTogXHUxMEZGYWIiIiIsCisgICAgICAgICAgICAgICAgICAgICB1IiIia2V5OiBcdTEwRkZhYgor
IiIiKQorCisgICAgZGVmIHRlc3RfZXNjYXBlXzExKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBh
cmUociIiImtleTogXFxhYgorIiIiKQorCisgICAgZGVmIHRlc3RfYXRvbV8xKHNlbGYpOgorICAg
ICAgICBzZWxmLmNvbXBhcmUociIiImtleTogQFRydWUKKyIiIikKKworICAgIGRlZiB0ZXN0X2F0
b21fMihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IEBGYWxzZQorIiIiKQor
CisgICAgZGVmIHRlc3RfYXRvbV8zKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtl
eTogQFJlc2V0CisiIiIpCisKKyAgICBkZWYgdGVzdF9hdG9tXzQoc2VsZik6CisgICAgICAgIHNl
bGYuY29tcGFyZShyIiIia2V5OiBbYSwgQFJlc2V0LCBiXQorIiIiKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGljLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGljLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMjg1NzhkM2Jm
YzNhNWUxMzU2MTdhMzJjM2U3MTkzYzRjNTNiYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zdGF0aWMucHkKQEAgLTAsMCArMSw5OCBAQAor
aW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCitmcm9t
IC4uYmFja2VuZHMgaW1wb3J0IHN0YXRpYworCisjIFRoZXJlIGFyZW4ndCBtYW55IHRlc3RzIGhl
cmUgYmVjYXVzZSBpdCB0dXJucyBvdXQgdG8gYmUgd2F5IG1vcmUgY29udmVuaWVudCB0bworIyB1
c2UgdGVzdF9zZXJpYWxpemVyIGZvciB0aGUgbWFqb3JpdHkgb2YgY2FzZXMKKworCitjbGFzcyBU
ZXN0U3RhdGljKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgY29tcGlsZShzZWxmLCBpbnB1
dF90ZXh0LCBpbnB1dF9kYXRhKToKKyAgICAgICAgcmV0dXJuIHN0YXRpYy5jb21waWxlKGlucHV0
X3RleHQsIGlucHV0X2RhdGEpCisKKyAgICBkZWYgdGVzdF9nZXRfMChzZWxmKToKKyAgICAgICAg
ZGF0YSA9ICIiIgora2V5OiB2YWx1ZQorCitbSGVhZGluZyAxXQorICBvdGhlcl9rZXk6CisgICAg
aWYgYSA9PSAxOiB2YWx1ZV8xCisgICAgaWYgYSA9PSAyOiB2YWx1ZV8yCisgICAgdmFsdWVfMwor
IiIiCisKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSwgeyJhIjogMn0pCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiKSwgInZhbHVlIikK
KyAgICAgICAgY2hpbGRyZW4gPSBsaXN0KGl0ZW0gZm9yIGl0ZW0gaW4gbWFuaWZlc3QuaXRlcmNo
aWxkcmVuKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihjaGlsZHJlbiksIDEpCisg
ICAgICAgIHNlY3Rpb24gPSBjaGlsZHJlblswXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhz
ZWN0aW9uLm5hbWUsICJIZWFkaW5nIDEiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNl
Y3Rpb24uZ2V0KCJvdGhlcl9rZXkiKSwgInZhbHVlXzIiKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWN0aW9uLmdldCgia2V5IiksICJ2YWx1ZSIpCisKKyAgICBkZWYgdGVzdF9nZXRfMShz
ZWxmKToKKyAgICAgICAgZGF0YSA9ICIiIgora2V5OiB2YWx1ZQorCitbSGVhZGluZyAxXQorICBv
dGhlcl9rZXk6CisgICAgaWYgYSA9PSAxOiB2YWx1ZV8xCisgICAgaWYgYSA9PSAyOiB2YWx1ZV8y
CisgICAgdmFsdWVfMworIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEs
IHsiYSI6IDN9KQorCisgICAgICAgIGNoaWxkcmVuID0gbGlzdChpdGVtIGZvciBpdGVtIGluIG1h
bmlmZXN0Lml0ZXJjaGlsZHJlbigpKQorICAgICAgICBzZWN0aW9uID0gY2hpbGRyZW5bMF0KKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VjdGlvbi5nZXQoIm90aGVyX2tleSIpLCAidmFsdWVf
MyIpCisKKyAgICBkZWYgdGVzdF9nZXRfMyhzZWxmKToKKyAgICAgICAgZGF0YSA9ICIiImtleToK
KyAgaWYgYSA9PSAiMSI6IHZhbHVlXzEKKyAgaWYgYVswXSA9PSAiYWIiWzBdOiB2YWx1ZV8yCisi
IiIKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSwgeyJhIjogIjEifSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiKSwgInZhbHVlXzEiKQor
CisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEsIHsiYSI6ICJhYyJ9KQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5pZmVzdC5nZXQoImtleSIpLCAidmFsdWVfMiIpCisK
KyAgICBkZWYgdGVzdF9nZXRfNChzZWxmKToKKyAgICAgICAgZGF0YSA9ICIiImtleToKKyAgaWYg
bm90IGE6IHZhbHVlXzEKKyAgdmFsdWVfMgorIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5j
b21waWxlKGRhdGEsIHsiYSI6IFRydWV9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5p
ZmVzdC5nZXQoImtleSIpLCAidmFsdWVfMiIpCisKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNv
bXBpbGUoZGF0YSwgeyJhIjogRmFsc2V9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5p
ZmVzdC5nZXQoImtleSIpLCAidmFsdWVfMSIpCisKKyAgICBkZWYgdGVzdF9hcGkoc2VsZik6Cisg
ICAgICAgIGRhdGEgPSAiIiJrZXk6CisgIGlmIGEgPT0gMS41OiB2YWx1ZV8xCisgIHZhbHVlXzIK
K2tleV8xOiBvdGhlcl92YWx1ZQorIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxl
KGRhdGEsIHsiYSI6IDEuNX0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYW5pZmVzdC5p
c19lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3Qucm9vdCwgbWFuaWZl
c3QpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW5pZmVzdC5oYXNfa2V5KCJrZXlfMSIpKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hbmlmZXN0Lmhhc19rZXkoImtleV8yIikpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0Lml0ZXJrZXlzKCkpLCBzZXQoWyJr
ZXkiLCAia2V5XzEiXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVzdC5p
dGVydmFsdWVzKCkpLCBzZXQoWyJ2YWx1ZV8xIiwgIm90aGVyX3ZhbHVlIl0pKQorCisgICAgZGVm
IHRlc3RfaXNfZW1wdHlfMShzZWxmKToKKyAgICAgICAgZGF0YSA9ICIiIgorW1NlY3Rpb25dCisg
IFtTdWJzZWN0aW9uXQorIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEs
IHt9KQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW5pZmVzdC5pc19lbXB0eSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNjRjZTBjN2JiN2Q4ZDA4OWE4Y2IxMzY1YzA0NzdhMDg2NTJlYWNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9rZW5pemVyLnB5
CkBAIC0wLDAgKzEsMzQ0IEBACitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCB1bml0dGVz
dAorCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKCIuLiIpKQorZnJvbSBjU3Ry
aW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gLi4gaW1wb3J0IHBhcnNlcgorZnJvbSAuLnBh
cnNlciBpbXBvcnQgdG9rZW5fdHlwZXMKKworCitjbGFzcyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYudG9rZW5pemVy
ID0gcGFyc2VyLlRva2VuaXplcigpCisKKyAgICBkZWYgdG9rZW5pemUoc2VsZiwgaW5wdXRfc3Ry
KToKKyAgICAgICAgcnYgPSBbXQorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnRva2VuaXplci50
b2tlbml6ZShTdHJpbmdJTyhpbnB1dF9zdHIpKToKKyAgICAgICAgICAgIHJ2LmFwcGVuZChpdGVt
KQorICAgICAgICAgICAgaWYgaXRlbVswXSA9PSB0b2tlbl90eXBlcy5lb2Y6CisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgY29tcGFyZShzZWxmLCBp
bnB1dF90ZXh0LCBleHBlY3RlZCk6CisgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQgKyBbKHRv
a2VuX3R5cGVzLmVvZiwgTm9uZSldCisgICAgICAgIGFjdHVhbCA9IHNlbGYudG9rZW5pemUoaW5w
dXRfdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCBleHBlY3RlZCkKKwor
ICAgIGRlZiB0ZXN0X2hlYWRpbmdfMChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIltI
ZWFkaW5nIHRleHRdIiIiLAorICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJl
biwgIlsiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVh
ZGluZyB0ZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAi
XSIpXSkKKworICAgIGRlZiB0ZXN0X2hlYWRpbmdfMShzZWxmKToKKyAgICAgICAgc2VsZi5jb21w
YXJlKCIiIltIZWFkaW5nIFt0ZXh0XF1dIiIiLAorICAgICAgICAgICAgICAgICAgICAgWyh0b2tl
bl90eXBlcy5wYXJlbiwgIlsiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCAiSGVhZGluZyBbdGV4dF0iKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5f
dHlwZXMucGFyZW4sICJdIildKQorCisgICAgZGVmIHRlc3RfaGVhZGluZ18yKHNlbGYpOgorICAg
ICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgI3RleHRdIiIiLAorICAgICAgICAgICAgICAg
ICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKKyAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyAjdGV4dCIpLAorICAgICAgICAgICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCisKKyAgICBkZWYgdGVzdF9oZWFkaW5nXzMo
c2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBbXF10ZXh0XSIiIiwKKyAg
ICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCisgICAgICAgICAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgW110ZXh0IiksCisgICAg
ICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpXSkKKworICAgIGRlZiB0
ZXN0X2hlYWRpbmdfNChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKCJbSGVhZGluZyIpCisK
KyAgICBkZWYgdGVzdF9oZWFkaW5nXzUoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJb
SGVhZGluZyBbXF10ZXh0XSAjY29tbWVudCIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMucGFyZW4sICJbIiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVz
LnN0cmluZywgIkhlYWRpbmcgW110ZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnBhcmVuLCAiXSIpXSkKKworICAgIGRlZiB0ZXN0X2hlYWRpbmdfNihzZWxmKToKKyAg
ICAgICAgc2VsZi5jb21wYXJlKHIiIiJbSGVhZGluZyBcdHRleHRdIiIiLAorICAgICAgICAgICAg
ICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyBcdHRleHQiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJdIildKQorCisgICAgZGVmIHRlc3Rfa2V5XzAo
c2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6dmFsdWUiIiIsCisgICAgICAgICAg
ICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAgICAgICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQorCisgICAgZGVmIHRlc3Rfa2V5XzEo
c2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXkgIDogIHZhbHVlIiIiLAorICAgICAg
ICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKKworICAgIGRlZiB0ZXN0X2tl
eV8yKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5ICA6ICB2YWwgdWUiIiIsCisg
ICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAg
ICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbCB1ZSIpXSkKKworICAgIGRlZiB0
ZXN0X2tleV8zKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZSNjb21t
ZW50IiIiLAorICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAor
ICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKKwor
ICAgIGRlZiB0ZXN0X2tleV80KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2UgeTog
dmFsdWUiIiIpCisKKyAgICBkZWYgdGVzdF9rZXlfNShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6CisgICAgICAgICAgICBzZWxmLnRva2Vu
aXplKCIiImtleSIiIikKKworICAgIGRlZiB0ZXN0X2tleV82KHNlbGYpOgorICAgICAgICBzZWxm
LmNvbXBhcmUoIiIia2V5OiAidmFsdWVcIiIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCAidmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfNyhzZWxmKToKKyAgICAgICAg
c2VsZi5jb21wYXJlKCIiImtleTogJ3ZhbHVlJyIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFso
dG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMuc3RyaW5nLCAidmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfOChzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKCIiImtleTogIiN2YWx1ZVwiIiIiLAorICAgICAgICAgICAgICAgICAg
ICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5zdHJpbmcsICIjdmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfOShzZWxmKToK
KyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogJyN2YWx1ZVwnIiIiLAorICAgICAgICAgICAg
ICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5zdHJpbmcsICIjdmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfMTAo
c2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3Ip
OgorICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6ICJ2YWx1ZSIiIikKKworICAgIGRl
ZiB0ZXN0X2tleV8xMShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTogJ3ZhbHVl
IiIiKQorCisgICAgZGVmIHRlc3Rfa2V5XzEyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUo
IiIia2V5OiAndmFsdWUiIiIpCisKKyAgICBkZWYgdGVzdF9rZXlfMTMoc2VsZik6CisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAg
c2VsZi50b2tlbml6ZSgiIiJrZXk6ICd2YWx1ZScgYWJjIiIiKQorCisgICAgZGVmIHRlc3Rfa2V5
XzE0KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtleTogXFxuYiIiIiwKKyAgICAg
ICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCByIlxuYiIpXSkKKworICAgIGRlZiB0ZXN0X2xp
c3RfMChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIgora2V5OiBbXSIiIiwKKyAgICAg
ICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9z
dGFydCwgIlsiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9lbmQsICJdIildKQor
CisgICAgZGVmIHRlc3RfbGlzdF8xKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitr
ZXk6IFthLCAiYiJdIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5saXN0X3N0YXJ0LCAiWyIpLAorICAgICAgICAgICAgICh0b2tlbl90
eXBlcy5zdHJpbmcsICJhIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgImIi
KSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9lbmQsICJdIildKQorCisgICAgZGVm
IHRlc3RfbGlzdF8yKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitrZXk6IFthLAor
ICAgICAgYl0iIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAor
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLmxpc3Rfc3RhcnQsICJbIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVz
LnN0cmluZywgImEiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiYiIpLAor
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCisKKyAgICBkZWYgdGVz
dF9saXN0XzMoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiIKK2tleTogW2EsICNiXQor
ICAgICAgY10iIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAor
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLmxpc3Rfc3RhcnQsICJbIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVz
LnN0cmluZywgImEiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiYyIpLAor
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCisKKyAgICBkZWYgdGVz
dF9saXN0XzQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBh
cnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6IFthICNiXQorICAg
ICAgICAgICAgY10iIiIpCisKKyAgICBkZWYgdGVzdF9saXN0XzUoc2VsZik6CisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAgc2Vs
Zi50b2tlbml6ZSgiIiJrZXk6IFthIFxcCisgICAgICAgICAgICBjXSIiIikKKworICAgIGRlZiB0
ZXN0X2xpc3RfNihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogW2EgLCBiXSIi
IiwKKyAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMubGlzdF9zdGFydCwgIlsiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAi
YSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJiIiksCisgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLmxpc3RfZW5kLCAiXSIpXSkKKworICAgIGRlZiB0ZXN0X2V4cHJfMChz
ZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIgora2V5OgorICBpZiBjb25kID09IDE6IHZh
bHVlIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5ncm91cF9zdGFydCwgTm9uZSksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlk
ZW50LCAiaWYiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJjb25kIiksCisg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiPT0iKSwKKyAgICAgICAgICAgICAodG9r
ZW5fdHlwZXMubnVtYmVyLCAiMSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0
b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQor
CisgICAgZGVmIHRlc3RfZXhwcl8xKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitr
ZXk6CisgIGlmIGNvbmQgPT0gMTogdmFsdWUxCisgIHZhbHVlMiIiIiwKKyAgICAgICAgICAgIFso
dG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNl
cGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuZ3JvdXBfc3RhcnQsIE5v
bmUpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImlmIiksCisgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLmlkZW50LCAiY29uZCIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBl
cy5pZGVudCwgIj09IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLm51bWJlciwgIjEiKSwK
KyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZTEiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMuc3RyaW5nLCAidmFsdWUyIildKQorCisgICAgZGVmIHRlc3RfZXhwcl8yKHNlbGYpOgorICAg
ICAgICBzZWxmLmNvbXBhcmUoIiIiCitrZXk6CisgIGlmIGNvbmQ9PSIxIjogdmFsdWUiIiIsCisg
ICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAgICAgICAgICh0
b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmdy
b3VwX3N0YXJ0LCBOb25lKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJpZiIp
LAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImNvbmQiKSwKKyAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuaWRlbnQsICI9PSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5z
dHJpbmcsICIxIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwK
KyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCisKKyAgICBkZWYg
dGVzdF9leHByXzMoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiIKK2tleToKKyAgaWYg
Y29uZD09MS4xOiB2YWx1ZSIiIiwKKyAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAi
a2V5IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuZ3JvdXBfc3RhcnQsIE5vbmUpLAorICAgICAgICAgICAgICh0
b2tlbl90eXBlcy5pZGVudCwgImlmIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50
LCAiY29uZCIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgIj09IiksCisgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLm51bWJlciwgIjEuMSIpLAorICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmlu
ZywgInZhbHVlIildKQorCisgICAgZGVmIHRlc3RfZXhwcl80KHNlbGYpOgorICAgICAgICBzZWxm
LmNvbXBhcmUoIiIiCitrZXk6CisgIGlmIGNvbmQ9PTEuMSBhbmQgY29uZDIgPT0gImEiOiB2YWx1
ZSIiIiwKKyAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAg
ICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5f
dHlwZXMuZ3JvdXBfc3RhcnQsIE5vbmUpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVu
dCwgImlmIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiY29uZCIpLAorICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgIj09IiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLm51bWJlciwgIjEuMSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwg
ImFuZCIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImNvbmQyIiksCisgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiPT0iKSwKKyAgICAgICAgICAgICAodG9rZW5f
dHlwZXMuc3RyaW5nLCAiYSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3Is
ICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQorCisg
ICAgZGVmIHRlc3RfZXhwcl81KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitrZXk6
CisgIGlmIChjb25kPT0xLjEgKTogdmFsdWUiIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVz
LnN0cmluZywgImtleSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6
IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmdyb3VwX3N0YXJ0LCBOb25lKSwKKyAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJpZiIpLAorICAgICAgICAgICAgICh0b2tlbl90
eXBlcy5wYXJlbiwgIigiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJjb25k
IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiPT0iKSwKKyAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMubnVtYmVyLCAiMS4xIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVz
LnBhcmVuLCAiKSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6Iiks
CisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQorCisgICAgZGVm
IHRlc3RfZXhwcl82KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitrZXk6CisgIGlm
ICJcXHR0ZXN0IjogdmFsdWUiIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywg
ImtleSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLmdyb3VwX3N0YXJ0LCBOb25lKSwKKyAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuaWRlbnQsICJpZiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJp
bmcsICJcdHRlc3QiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIp
LAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKKworICAgIGRl
ZiB0ZXN0X2V4cHJfNyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKAorICAgICAgICAgICAg
ICAgICIiIgora2V5OgorICBpZiAxQTogdmFsdWUiIiIpCisKKyAgICBkZWYgdGVzdF9leHByXzgo
c2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3Ip
OgorICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgKKyAgICAgICAgICAgICAgICAiIiIKK2tleToK
KyAgaWYgMWE6IHZhbHVlIiIiKQorCisgICAgZGVmIHRlc3RfZXhwcl85KHNlbGYpOgorICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAg
IHNlbGYudG9rZW5pemUoCisgICAgICAgICAgICAgICAgIiIiCitrZXk6CisgIGlmIDEuMS4xOiB2
YWx1ZSIiIikKKworICAgIGRlZiB0ZXN0X2V4cHJfMTAoc2VsZik6CisgICAgICAgIHNlbGYuY29t
cGFyZSgiIiIKK2tleToKKyAgaWYgMS46IHZhbHVlIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90
eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9y
LCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5ncm91cF9zdGFydCwgTm9uZSksCisg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiaWYiKSwKKyAgICAgICAgICAgICAodG9r
ZW5fdHlwZXMubnVtYmVyLCAiMS4iKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJh
dG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkK
KworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
N2Q0NzY0YWNlYTNmOTUzYTRhYTNiMGZhNjI4YmZiMmIxYzQyNjcwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9fX2luaXRf
Xy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRpdGlvbmFsLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxM2M1NDZlM2ZkNzk2OWRkYmZjMzRjNjA2MmNhNzE1YmYz
MDdkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3NlcmlhbGl6ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0cnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwODYzZDhkODYyZDRjMzc5MjE2
YWZlMjZiYjQ5YjFjNWExOTBhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
cnVubmVyLnB5CkBAIC0wLDAgKzEsMzMwIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNv
ZGVfbGl0ZXJhbHMKKworaW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitpbXBv
cnQgZW52aXJvbm1lbnQgYXMgZW52CitpbXBvcnQgcHJvZHVjdHMKK2ltcG9ydCB0ZXN0bG9hZGVy
CitpbXBvcnQgd3B0Y29tbWFuZGxpbmUKK2ltcG9ydCB3cHRsb2dnaW5nCitpbXBvcnQgd3B0dGVz
dAorZnJvbSBmb250IGltcG9ydCBGb250SW5zdGFsbGVyCitmcm9tIHRlc3RydW5uZXIgaW1wb3J0
IE1hbmFnZXJHcm91cAorZnJvbSBicm93c2Vycy5iYXNlIGltcG9ydCBOdWxsQnJvd3NlcgorCito
ZXJlID0gb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KKworbG9nZ2VyID0gTm9uZQorCisiIiJS
dW5uZXIgZm9yIHdlYi1wbGF0Zm9ybS10ZXN0cworCitUaGUgcnVubmVyIGhhcyBzZXZlcmFsIGRl
c2lnbiBnb2FsczoKKworKiBUZXN0cyBzaG91bGQgcnVuIHdpdGggbm8gbW9kaWZpY2F0aW9uIGZy
b20gdXBzdHJlYW0uCisKKyogVGVzdHMgc2hvdWxkIGJlIHJlZ2FyZGVkIGFzICJ1bnRydXN0ZWQi
IHNvIHRoYXQgZXJyb3JzLCB0aW1lb3V0cyBhbmQgZXZlbgorICBjcmFzaGVzIGluIHRoZSB0ZXN0
cyBjYW4gYmUgaGFuZGxlZCB3aXRob3V0IGZhaWxpbmcgdGhlIGVudGlyZSB0ZXN0IHJ1bi4KKwor
KiBGb3IgcGVyZm9ybWFuY2UgdGVzdHMgY2FuIGJlIHJ1biBpbiBtdWx0aXBsZSBicm93c2VycyBp
biBwYXJhbGxlbC4KKworVGhlIHVwc3RyZWFtIHJlcG9zaXRvcnkgaGFzIHRoZSBmYWNpbGl0eSBm
b3IgY3JlYXRpbmcgYSB0ZXN0IG1hbmlmZXN0IGluIEpTT04KK2Zvcm1hdC4gVGhpcyBtYW5pZmVz
dCBpcyB1c2VkIGRpcmVjdGx5IHRvIGRldGVybWluZSB3aGljaCB0ZXN0cyBleGlzdC4gTG9jYWwK
K21ldGFkYXRhIGZpbGVzIGFyZSB1c2VkIHRvIHN0b3JlIHRoZSBleHBlY3RlZCB0ZXN0IHJlc3Vs
dHMuCisiIiIKKworZGVmIHNldHVwX2xvZ2dpbmcoKmFyZ3MsICoqa3dhcmdzKToKKyAgICBnbG9i
YWwgbG9nZ2VyCisgICAgbG9nZ2VyID0gd3B0bG9nZ2luZy5zZXR1cCgqYXJncywgKiprd2FyZ3Mp
CisKKworZGVmIGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJvZHVjdCwgc3NsX2VudiwgZGVidWc9
Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUsICoqa3dhcmdzKToKKyAgICBpZiBydW5faW5mb19l
eHRyYXMgaXMgTm9uZToKKyAgICAgICAgcnVuX2luZm9fZXh0cmFzID0ge30KKworICAgIHJ1bl9p
bmZvID0gd3B0dGVzdC5nZXRfcnVuX2luZm8oa3dhcmdzWyJydW5faW5mbyJdLCBwcm9kdWN0LCBk
ZWJ1Zz1kZWJ1ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcz1y
dW5faW5mb19leHRyYXMpCisKKyAgICB0ZXN0X21hbmlmZXN0cyA9IHRlc3Rsb2FkZXIuTWFuaWZl
c3RMb2FkZXIodGVzdF9wYXRocywgZm9yY2VfbWFuaWZlc3RfdXBkYXRlPWt3YXJnc1sibWFuaWZl
c3RfdXBkYXRlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hbmlmZXN0X2Rvd25sb2FkPWt3YXJnc1sibWFuaWZlc3RfZG93bmxvYWQiXSkubG9hZCgp
CisKKyAgICBtYW5pZmVzdF9maWx0ZXJzID0gW10KKyAgICBtZXRhX2ZpbHRlcnMgPSBbXQorCisg
ICAgaWYga3dhcmdzWyJpbmNsdWRlIl0gb3Iga3dhcmdzWyJleGNsdWRlIl0gb3Iga3dhcmdzWyJp
bmNsdWRlX21hbmlmZXN0Il06CisgICAgICAgIG1hbmlmZXN0X2ZpbHRlcnMuYXBwZW5kKHRlc3Rs
b2FkZXIuVGVzdEZpbHRlcihpbmNsdWRlPWt3YXJnc1siaW5jbHVkZSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZT1rd2FyZ3Nb
ImV4Y2x1ZGUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X3BhdGg9a3dhcmdzWyJpbmNsdWRlX21hbmlmZXN0Il0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21h
bmlmZXN0cz10ZXN0X21hbmlmZXN0cykpCisgICAgaWYga3dhcmdzWyJ0YWdzIl06CisgICAgICAg
IG1ldGFfZmlsdGVycy5hcHBlbmQodGVzdGxvYWRlci5UYWdGaWx0ZXIodGFncz1rd2FyZ3NbInRh
Z3MiXSkpCisKKyAgICB0ZXN0X2xvYWRlciA9IHRlc3Rsb2FkZXIuVGVzdExvYWRlcih0ZXN0X21h
bmlmZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
InRlc3RfdHlwZXMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVz
dF9maWx0ZXJzPW1hbmlmZXN0X2ZpbHRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWV0YV9maWx0ZXJzPW1ldGFfZmlsdGVycywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaHVua190eXBlPWt3YXJnc1siY2h1bmtfdHlwZSJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcz1rd2Fy
Z3NbInRvdGFsX2NodW5rcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNodW5rX251bWJlcj1rd2FyZ3NbInRoaXNfY2h1bmsiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2h0dHBzPXNzbF9lbnYuc3NsX2VuYWJsZWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF90aW1lb3V0PWt3
YXJnc1sic2tpcF90aW1lb3V0Il0pCisgICAgcmV0dXJuIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlcgor
CisKK2RlZiBsaXN0X3Rlc3RfZ3JvdXBzKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToK
KyAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKKworICAgIHNz
bF9lbnYgPSBlbnYuc3NsX2Vudihsb2dnZXIsICoqa3dhcmdzKQorCisgICAgcnVuX2luZm9fZXh0
cmFzID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpWy0x
XSgqKmt3YXJncykKKworICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9sb2FkZXIodGVz
dF9wYXRocywgcHJvZHVjdCwgc3NsX2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMsICoqa3dhcmdzKQorCisg
ICAgZm9yIGl0ZW0gaW4gc29ydGVkKHRlc3RfbG9hZGVyLmdyb3Vwcyhrd2FyZ3NbInRlc3RfdHlw
ZXMiXSkpOgorICAgICAgICBwcmludCBpdGVtCisKKworZGVmIGxpc3RfZGlzYWJsZWQodGVzdF9w
YXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgorICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9n
Z2VyLCB0ZXN0X3BhdGhzKQorCisgICAgcnYgPSBbXQorCisgICAgcnVuX2luZm9fZXh0cmFzID0g
cHJvZHVjdHMubG9hZF9wcm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpWy0xXSgqKmt3
YXJncykKKworICAgIHNzbF9lbnYgPSBlbnYuc3NsX2Vudihsb2dnZXIsICoqa3dhcmdzKQorCisg
ICAgcnVuX2luZm8sIHRlc3RfbG9hZGVyID0gZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0
LCBzc2xfZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2lu
Zm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywgKiprd2FyZ3MpCisKKyAgICBmb3IgdGVzdF90eXBl
LCB0ZXN0cyBpbiB0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0cy5pdGVyaXRlbXMoKToKKyAgICAg
ICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICBydi5hcHBlbmQoeyJ0ZXN0IjogdGVz
dC5pZCwgInJlYXNvbiI6IHRlc3QuZGlzYWJsZWQoKX0pCisgICAgcHJpbnQganNvbi5kdW1wcyhy
diwgaW5kZW50PTIpCisKKworZGVmIGxpc3RfdGVzdHModGVzdF9wYXRocywgcHJvZHVjdCwgKipr
d2FyZ3MpOgorICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQor
CisgICAgcnYgPSBbXQorCisgICAgc3NsX2VudiA9IGVudi5zc2xfZW52KGxvZ2dlciwgKiprd2Fy
Z3MpCisKKyAgICBydW5faW5mb19leHRyYXMgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoa3dhcmdz
WyJjb25maWciXSwgcHJvZHVjdClbLTFdKCoqa3dhcmdzKQorCisgICAgcnVuX2luZm8sIHRlc3Rf
bG9hZGVyID0gZ2V0X2xvYWRlcih0ZXN0X3BhdGhzLCBwcm9kdWN0LCBzc2xfZW52LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZv
X2V4dHJhcywgKiprd2FyZ3MpCisKKyAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0X2lk
czoKKyAgICAgICAgcHJpbnQgdGVzdAorCisKK2RlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0
X2xvYWRlciwgKiprd2FyZ3MpOgorICAgIHRvdGFsX3Rlc3RzID0gc3VtKGxlbihpdGVtKSBmb3Ig
aXRlbSBpbiB0ZXN0X2xvYWRlci50ZXN0cy5pdGVydmFsdWVzKCkpCisgICAgaWYga3dhcmdzWyJw
YXVzZV9hZnRlcl90ZXN0Il0gaXMgTm9uZToKKyAgICAgICAgaWYga3dhcmdzWyJyZXBlYXRfdW50
aWxfdW5leHBlY3RlZCJdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGt3
YXJnc1sicmVwZWF0Il0gPT0gMSBhbmQga3dhcmdzWyJyZXJ1biJdID09IDEgYW5kIHRvdGFsX3Rl
c3RzID09IDE6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICByZXR1cm4ga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0KKworCitkZWYgcnVuX3Rlc3Rz
KGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgorICAgIHdpdGggd3B0bG9n
Z2luZy5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgor
ICAgICAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKKworICAg
ICAgICAoY2hlY2tfYXJncywKKyAgICAgICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dz
ZXJfa3dhcmdzLAorICAgICAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9yX2t3YXJn
cywKKyAgICAgICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2luZm9fZXh0cmFz
KSA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QpCisKKyAgICAgICAgc3Ns
X2VudiA9IGVudi5zc2xfZW52KGxvZ2dlciwgKiprd2FyZ3MpCisgICAgICAgIGVudl9leHRyYXMg
PSBnZXRfZW52X2V4dHJhcygqKmt3YXJncykKKworICAgICAgICBjaGVja19hcmdzKCoqa3dhcmdz
KQorCisgICAgICAgIGlmIGt3YXJnc1siaW5zdGFsbF9mb250cyJdOgorICAgICAgICAgICAgZW52
X2V4dHJhcy5hcHBlbmQoRm9udEluc3RhbGxlcigKKyAgICAgICAgICAgICAgICBmb250X2Rpcj1r
d2FyZ3NbImZvbnRfZGlyIl0sCisgICAgICAgICAgICAgICAgYWhlbT1vcy5wYXRoLmpvaW4oa3dh
cmdzWyJ0ZXN0c19yb290Il0sICJmb250cy9BaGVtLnR0ZiIpCisgICAgICAgICAgICApKQorCisg
ICAgICAgIGlmICJ0ZXN0X2xvYWRlciIgaW4ga3dhcmdzOgorICAgICAgICAgICAgcnVuX2luZm8g
PSB3cHR0ZXN0LmdldF9ydW5faW5mbyhrd2FyZ3NbInJ1bl9pbmZvIl0sIHByb2R1Y3QsIGRlYnVn
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJh
cz1ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpKQorICAgICAgICAgICAgdGVzdF9sb2FkZXIgPSBr
d2FyZ3NbInRlc3RfbG9hZGVyIl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ1bl9pbmZv
LCB0ZXN0X2xvYWRlciA9IGdldF9sb2FkZXIodGVzdF9wYXRocywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsX2VudiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4
dHJhcygqKmt3YXJncyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKQorCisgICAgICAgIHRlc3Rfc291cmNlX2t3YXJncyA9IHsicHJvY2Vz
c2VzIjoga3dhcmdzWyJwcm9jZXNzZXMiXX0KKyAgICAgICAgaWYga3dhcmdzWyJydW5fYnlfZGly
Il0gaXMgRmFsc2U6CisgICAgICAgICAgICB0ZXN0X3NvdXJjZV9jbHMgPSB0ZXN0bG9hZGVyLlNp
bmdsZVRlc3RTb3VyY2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgQSB2YWx1ZSBvZiBO
b25lIGluZGljYXRlcyBpbmZpbml0ZSBkZXB0aAorICAgICAgICAgICAgdGVzdF9zb3VyY2VfY2xz
ID0gdGVzdGxvYWRlci5QYXRoR3JvdXBlZFNvdXJjZQorICAgICAgICAgICAgdGVzdF9zb3VyY2Vf
a3dhcmdzWyJkZXB0aCJdID0ga3dhcmdzWyJydW5fYnlfZGlyIl0KKworICAgICAgICBsb2dnZXIu
aW5mbygiVXNpbmcgJWkgY2xpZW50IHByb2Nlc3NlcyIgJSBrd2FyZ3NbInByb2Nlc3NlcyJdKQor
CisgICAgICAgIHRlc3RfdG90YWwgPSAwCisgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPSAwCisK
KyAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBnZXRfcGF1c2VfYWZ0ZXJfdGVz
dCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpCisKKyAgICAgICAgd2l0aCBlbnYuVGVzdEVudmlyb25t
ZW50KHRlc3RfcGF0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfZW52
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90
ZXN0Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2lu
Zm8iXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52X2V4dHJhcykgYXMgdGVzdF9lbnZpcm9u
bWVudDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50
LmVuc3VyZV9zdGFydGVkKCkKKyAgICAgICAgICAgIGV4Y2VwdCBlbnYuVGVzdEVudmlyb25tZW50
RXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkVycm9yIHN0YXJ0
aW5nIHRlc3QgZW52aXJvbm1lbnQ6ICVzIiAlIGUubWVzc2FnZSkKKyAgICAgICAgICAgICAgICBy
YWlzZQorCisgICAgICAgICAgICByZXBlYXQgPSBrd2FyZ3NbInJlcGVhdCJdCisgICAgICAgICAg
ICByZXBlYXRfY291bnQgPSAwCisgICAgICAgICAgICByZXBlYXRfdW50aWxfdW5leHBlY3RlZCA9
IGt3YXJnc1sicmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQiXQorCisgICAgICAgICAgICB3aGlsZSBy
ZXBlYXRfY291bnQgPCByZXBlYXQgb3IgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQ6CisgICAgICAg
ICAgICAgICAgcmVwZWF0X2NvdW50ICs9IDEKKyAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50
aWxfdW5leHBlY3RlZDoKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJlcGV0aXRp
b24gJWkiICUgKHJlcGVhdF9jb3VudCkpCisgICAgICAgICAgICAgICAgZWxpZiByZXBlYXQgPiAx
OgorICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiUmVwZXRpdGlvbiAlaSAvICVpIiAl
IChyZXBlYXRfY291bnQsIHJlcGVhdCkpCisKKyAgICAgICAgICAgICAgICB0ZXN0X2NvdW50ID0g
MAorICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQgPSAwCisgICAgICAgICAgICAgICAg
bG9nZ2VyLnN1aXRlX3N0YXJ0KHRlc3RfbG9hZGVyLnRlc3RfaWRzLCBuYW1lPSd3ZWItcGxhdGZv
cm0tdGVzdCcsIHJ1bl9pbmZvPXJ1bl9pbmZvKQorICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5
cGUgaW4ga3dhcmdzWyJ0ZXN0X3R5cGVzIl06CisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCJSdW5uaW5nICVzIHRlc3RzIiAlIHRlc3RfdHlwZSkKKworICAgICAgICAgICAgICAgICAg
ICAjIFdlYkRyaXZlciB0ZXN0cyBtYXkgY3JlYXRlIGFuZCBkZXN0cm95IG11bHRpcGxlIGJyb3dz
ZXIKKyAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXMgcGFydCBvZiB0aGVpciBleHBl
Y3RlZCBiZWhhdmlvci4gVGhlc2UKKyAgICAgICAgICAgICAgICAgICAgIyBwcm9jZXNzZXMgYXJl
IG1hbmFnZWQgYnkgYSBXZWJEcml2ZXIgc2VydmVyIGJpbmFyeS4gVGhpcworICAgICAgICAgICAg
ICAgICAgICAjIG9idmlhdGVzIHRoZSBuZWVkIGZvciB3cHRydW5uZXIgdG8gcHJvdmlkZSBhIGJy
b3dzZXIsIHNvCisgICAgICAgICAgICAgICAgICAgICMgdGhlIE51bGxCcm93c2VyIGlzIHVzZWQg
aW4gcGxhY2Ugb2YgdGhlICJ0YXJnZXQiIGJyb3dzZXIKKyAgICAgICAgICAgICAgICAgICAgaWYg
dGVzdF90eXBlID09ICJ3ZHNwZWMiOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9j
bHMgPSBOdWxsQnJvd3NlcgorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSB0YXJnZXRfYnJvd3Nlcl9jbHMKKworICAgICAgICAg
ICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IGdldF9icm93c2VyX2t3YXJncyh0ZXN0X3R5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzc2xfZW52PXNzbF9lbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz10ZXN0X2Vudmlyb25tZW50LmNvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCisKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3JfY2xzID0gZXhlY3V0
b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBlKQorICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9r
d2FyZ3MgPSBnZXRfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50
LmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Kiprd2FyZ3MpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgZXhlY3V0b3JfY2xzIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoIlVuc3VwcG9ydGVkIHRlc3Qg
dHlwZSAlcyBmb3IgcHJvZHVjdCAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh0ZXN0X3R5cGUsIHByb2R1Y3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKworICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci5kaXNh
YmxlZF90ZXN0c1t0ZXN0X3R5cGVdOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRl
c3Rfc3RhcnQodGVzdC5pZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2Vu
ZCh0ZXN0LmlkLCBzdGF0dXM9IlNLSVAiKQorCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Rf
dHlwZSA9PSAidGVzdGhhcm5lc3MiOgorICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3Rz
ID0geyJ0ZXN0aGFybmVzcyI6IFtdfQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3Qg
aW4gdGVzdF9sb2FkZXIudGVzdHNbInRlc3RoYXJuZXNzIl06CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgdGVzdC50ZXN0ZHJpdmVyIGFuZCBub3QgZXhlY3V0b3JfY2xzLnN1cHBvcnRz
X3Rlc3Rkcml2ZXI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0
X3N0YXJ0KHRlc3QuaWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50
ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9IlNLSVAiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0c1sidGVz
dGhhcm5lc3MiXS5hcHBlbmQodGVzdCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3RzCisKKyAgICAg
ICAgICAgICAgICAgICAgd2l0aCBNYW5hZ2VyR3JvdXAoIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicHJvY2Vzc2VzIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc291cmNlX2NscywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zb3VyY2Vfa3dhcmdz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInJlcnVuIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX29uX3Vu
ZXhwZWN0ZWQiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdz
WyJyZXN0YXJ0X29uX3VuZXhwZWN0ZWQiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0pIGFzIG1hbmFnZXJfZ3JvdXA6CisgICAgICAg
ICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdl
cl9ncm91cC5ydW4odGVzdF90eXBlLCBydW5fdGVzdHMpCisgICAgICAgICAgICAgICAgICAgICAg
ICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyLmNyaXRpY2FsKCJNYWluIHRocmVhZCBnb3Qgc2lnbmFsIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYW5hZ2VyX2dyb3VwLnN0b3AoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RfY291bnQgKz0gbWFuYWdlcl9n
cm91cC50ZXN0X2NvdW50KCkKKyAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCAr
PSBtYW5hZ2VyX2dyb3VwLnVuZXhwZWN0ZWRfY291bnQoKQorCisgICAgICAgICAgICAgICAgdGVz
dF90b3RhbCArPSB0ZXN0X2NvdW50CisgICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3RhbCAr
PSB1bmV4cGVjdGVkX2NvdW50CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1
bmV4cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkKKyAgICAgICAgICAgICAgICBp
ZiByZXBlYXRfdW50aWxfdW5leHBlY3RlZCBhbmQgdW5leHBlY3RlZF90b3RhbCA+IDA6CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgbG9nZ2VyLnN1aXRlX2VuZCgp
CisKKyAgICBpZiB0ZXN0X3RvdGFsID09IDA6CisgICAgICAgIGxvZ2dlci5lcnJvcigiTm8gdGVz
dHMgcmFuIikKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICByZXR1cm4gdW5leHBlY3RlZF90
b3RhbCA9PSAwCisKKworZGVmIGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncyk6CisgICAgaW1wb3J0
IHN0YWJpbGl0eQorICAgIHJldHVybiBzdGFiaWxpdHkuY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfdGltZT1rd2FyZ3NbJ3Zl
cmlmeV9tYXhfdGltZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YW9zX21vZGU9a3dhcmdzWyd2ZXJpZnlfY2hhb3NfbW9kZSddLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGVhdF9sb29wPWt3YXJnc1sndmVyaWZ5X3JlcGVhdF9sb29w
J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0X3Jlc3RhcnQ9
a3dhcmdzWyd2ZXJpZnlfcmVwZWF0X3Jlc3RhcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXRfcmVzdWx0cz1rd2FyZ3NbJ3ZlcmlmeV9vdXRwdXRfcmVzdWx0
cyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCitk
ZWYgc3RhcnQoKiprd2FyZ3MpOgorICAgIGlmIGt3YXJnc1sibGlzdF90ZXN0X2dyb3VwcyJdOgor
ICAgICAgICBsaXN0X3Rlc3RfZ3JvdXBzKCoqa3dhcmdzKQorICAgIGVsaWYga3dhcmdzWyJsaXN0
X2Rpc2FibGVkIl06CisgICAgICAgIGxpc3RfZGlzYWJsZWQoKiprd2FyZ3MpCisgICAgZWxpZiBr
d2FyZ3NbImxpc3RfdGVzdHMiXToKKyAgICAgICAgbGlzdF90ZXN0cygqKmt3YXJncykKKyAgICBl
bGlmIGt3YXJnc1sidmVyaWZ5Il06CisgICAgICAgIGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncykK
KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gbm90IHJ1bl90ZXN0cygqKmt3YXJncykKKworCitk
ZWYgbWFpbigpOgorICAgICIiIk1haW4gZW50cnkgcG9pbnQgd2hlbiBjYWxsaW5nIGZyb20gdGhl
IGNvbW1hbmQgbGluZSIiIgorICAgIGt3YXJncyA9IHdwdGNvbW1hbmRsaW5lLnBhcnNlX2FyZ3Mo
KQorCisgICAgdHJ5OgorICAgICAgICBpZiBrd2FyZ3NbInByZWZzX3Jvb3QiXSBpcyBOb25lOgor
ICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0gPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5qb2luKGhlcmUsICJwcmVmcyIpKQorCisgICAgICAgIHNldHVwX2xvZ2dpbmcoa3dhcmdzLCB7
InJhdyI6IHN5cy5zdGRvdXR9KQorCisgICAgICAgIHJldHVybiBzdGFydCgqKmt3YXJncykKKyAg
ICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBpZiBrd2FyZ3NbInBkYiJdOgorICAgICAgICAg
ICAgaW1wb3J0IHBkYgorICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICAgICAg
cHJpbnQgdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAgICAgcGRiLnBvc3RfbW9ydGVt
KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0dGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlm
NGMxYmVkMTM1NTM2OGIxODVkZGE2ZjBiNDMzNWU3OTFkNDRkYWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQpAQCAtMCwwICsxLDM5NiBAQAoraW1wb3J0IG9zCitm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCitmcm9tIHdwdG1hbmlmZXN0LnBh
cnNlciBpbXBvcnQgYXRvbXMKKworYXRvbV9yZXNldCA9IGF0b21zWyJSZXNldCJdCitlbmFibGVk
X3Rlc3RzID0gc2V0KFsidGVzdGhhcm5lc3MiLCAicmVmdGVzdCIsICJ3ZHNwZWMiXSkKKworCitj
bGFzcyBSZXN1bHQob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhdHVzLCBtZXNz
YWdlLCBleHBlY3RlZD1Ob25lLCBleHRyYT1Ob25lKToKKyAgICAgICAgaWYgc3RhdHVzIG5vdCBp
biBzZWxmLnN0YXR1c2VzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5yZWNvZ25p
c2VkIHN0YXR1cyAlcyIgJSBzdGF0dXMpCisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisg
ICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4
cGVjdGVkCisgICAgICAgIHNlbGYuZXh0cmEgPSBleHRyYQorCisgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICByZXR1cm4gIjwlcy4lcyAlcz4iICUgKHNlbGYuX19tb2R1bGVfXywgc2Vs
Zi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuc3RhdHVzKQorCisKK2NsYXNzIFN1YnRlc3RSZXN1
bHQob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzLCBtZXNzYWdl
LCBzdGFjaz1Ob25lLCBleHBlY3RlZD1Ob25lKToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor
ICAgICAgICBpZiBzdGF0dXMgbm90IGluIHNlbGYuc3RhdHVzZXM6CisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJVbnJlY29nbmlzZWQgc3RhdHVzICVzIiAlIHN0YXR1cykKKyAgICAgICAg
c2VsZi5zdGF0dXMgPSBzdGF0dXMKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQorICAg
ICAgICBzZWxmLnN0YWNrID0gc3RhY2sKKyAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4cGVjdGVk
CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPCVzLiVzICVzICVz
PiIgJSAoc2VsZi5fX21vZHVsZV9fLCBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5uYW1l
LCBzZWxmLnN0YXR1cykKKworCitjbGFzcyBUZXN0aGFybmVzc1Jlc3VsdChSZXN1bHQpOgorICAg
IGRlZmF1bHRfZXhwZWN0ZWQgPSAiT0siCisgICAgc3RhdHVzZXMgPSBzZXQoWyJPSyIsICJFUlJP
UiIsICJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JBU0giXSkKKworCitjbGFzcyBU
ZXN0aGFybmVzc1N1YnRlc3RSZXN1bHQoU3VidGVzdFJlc3VsdCk6CisgICAgZGVmYXVsdF9leHBl
Y3RlZCA9ICJQQVNTIgorICAgIHN0YXR1c2VzID0gc2V0KFsiUEFTUyIsICJGQUlMIiwgIlRJTUVP
VVQiLCAiTk9UUlVOIl0pCisKKworY2xhc3MgUmVmdGVzdFJlc3VsdChSZXN1bHQpOgorICAgIGRl
ZmF1bHRfZXhwZWN0ZWQgPSAiUEFTUyIKKyAgICBzdGF0dXNlcyA9IHNldChbIlBBU1MiLCAiRkFJ
TCIsICJFUlJPUiIsICJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JBU0giXSkKKwor
CitjbGFzcyBXZHNwZWNSZXN1bHQoUmVzdWx0KToKKyAgICBkZWZhdWx0X2V4cGVjdGVkID0gIk9L
IgorICAgIHN0YXR1c2VzID0gc2V0KFsiT0siLCAiRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5B
TC1USU1FT1VUIiwgIkNSQVNIIl0pCisKKworY2xhc3MgV2RzcGVjU3VidGVzdFJlc3VsdChTdWJ0
ZXN0UmVzdWx0KToKKyAgICBkZWZhdWx0X2V4cGVjdGVkID0gIlBBU1MiCisgICAgc3RhdHVzZXMg
PSBzZXQoWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiXSkKKworCitkZWYgZ2V0X3J1bl9pbmZvKG1l
dGFkYXRhX3Jvb3QsIHByb2R1Y3QsICoqa3dhcmdzKToKKyAgICByZXR1cm4gUnVuSW5mbyhtZXRh
ZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncykKKworCitjbGFzcyBSdW5JbmZvKGRpY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRhZGF0YV9yb290LCBwcm9kdWN0LCBkZWJ1ZywgZXh0
cmFzPU5vbmUpOgorICAgICAgICBpbXBvcnQgbW96aW5mbworCisgICAgICAgIHNlbGYuX3VwZGF0
ZV9tb3ppbmZvKG1ldGFkYXRhX3Jvb3QpCisgICAgICAgIHNlbGYudXBkYXRlKG1vemluZm8uaW5m
bykKKyAgICAgICAgc2VsZlsicHJvZHVjdCJdID0gcHJvZHVjdAorICAgICAgICBpZiBkZWJ1ZyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGZbImRlYnVnIl0gPSBkZWJ1ZworICAgICAgICBl
bGlmICJkZWJ1ZyIgbm90IGluIHNlbGY6CisgICAgICAgICAgICAjIERlZmF1bHQgdG8gcmVsZWFz
ZQorICAgICAgICAgICAgc2VsZlsiZGVidWciXSA9IEZhbHNlCisgICAgICAgIGlmIHByb2R1Y3Qg
PT0gImZpcmVmb3giIGFuZCAic3R5bG8iIG5vdCBpbiBzZWxmOgorICAgICAgICAgICAgc2VsZlsi
c3R5bG8iXSA9IEZhbHNlCisgICAgICAgIGlmICJTVFlMT19GT1JDRV9FTkFCTEVEIiBpbiBvcy5l
bnZpcm9uOgorICAgICAgICAgICAgc2VsZlsic3R5bG8iXSA9IFRydWUKKyAgICAgICAgaWYgIlNU
WUxPX0ZPUkNFX0RJU0FCTEVEIiBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgc2VsZlsic3R5
bG8iXSA9IEZhbHNlCisgICAgICAgIGlmIGV4dHJhcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlbGYudXBkYXRlKGV4dHJhcykKKworICAgIGRlZiBfdXBkYXRlX21vemluZm8oc2VsZiwgbWV0
YWRhdGFfcm9vdCk6CisgICAgICAgICIiIkFkZCBleHRyYSBidWlsZCBpbmZvcm1hdGlvbiBmcm9t
IGEgbW96aW5mby5qc29uIGZpbGUgaW4gYSBwYXJlbnQKKyAgICAgICAgZGlyZWN0b3J5IiIiCisg
ICAgICAgIGltcG9ydCBtb3ppbmZvCisKKyAgICAgICAgcGF0aCA9IG1ldGFkYXRhX3Jvb3QKKyAg
ICAgICAgZGlycyA9IHNldCgpCisgICAgICAgIHdoaWxlIHBhdGggIT0gb3MucGF0aC5leHBhbmR1
c2VyKCd+Jyk6CisgICAgICAgICAgICBpZiBwYXRoIGluIGRpcnM6CisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgIGRpcnMuYWRkKHN0cihwYXRoKSkKKyAgICAgICAgICAgIHBhdGgg
PSBvcy5wYXRoLnNwbGl0KHBhdGgpWzBdCisKKyAgICAgICAgbW96aW5mby5maW5kX2FuZF91cGRh
dGVfZnJvbV9qc29uKCpkaXJzKQorCisKK2NsYXNzIFRlc3Qob2JqZWN0KToKKworICAgIHJlc3Vs
dF9jbHMgPSBOb25lCisgICAgc3VidGVzdF9yZXN1bHRfY2xzID0gTm9uZQorICAgIHRlc3RfdHlw
ZSA9IE5vbmUKKworICAgIGRlZmF1bHRfdGltZW91dCA9IDEwICAjIHNlY29uZHMKKyAgICBsb25n
X3RpbWVvdXQgPSA2MCAgIyBzZWNvbmRzCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNf
cm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAorICAgICAgICAgICAg
ICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiKToKKyAgICAgICAg
c2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAorICAgICAgICBzZWxmLnVybCA9IHVybAorICAg
ICAgICBzZWxmLl9pbmhlcml0X21ldGFkYXRhID0gaW5oZXJpdF9tZXRhZGF0YQorICAgICAgICBz
ZWxmLl90ZXN0X21ldGFkYXRhID0gdGVzdF9tZXRhZGF0YQorICAgICAgICBzZWxmLnRpbWVvdXQg
PSB0aW1lb3V0IGlmIHRpbWVvdXQgaXMgbm90IE5vbmUgZWxzZSBzZWxmLmRlZmF1bHRfdGltZW91
dAorICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisgICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSB7
InByb3RvY29sIjogcHJvdG9jb2wsICJwcmVmcyI6IHNlbGYucHJlZnN9CisKKyAgICBkZWYgX19l
cV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYuaWQgPT0gb3RoZXIuaWQKKwor
ICAgIGRlZiB1cGRhdGVfbWV0YWRhdGEoc2VsZiwgbWV0YWRhdGE9Tm9uZSk6CisgICAgICAgIGlm
IG1ldGFkYXRhIGlzIE5vbmU6CisgICAgICAgICAgICBtZXRhZGF0YSA9IHt9CisgICAgICAgIHJl
dHVybiBtZXRhZGF0YQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fbWFuaWZlc3Qo
Y2xzLCBtYW5pZmVzdF9pdGVtLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKKyAg
ICAgICAgdGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZlc3RfaXRlbS50aW1lb3V0
ID09ICJsb25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKKyAgICAgICAgcHJvdG9jb2wgPSAi
aHR0cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfaXRlbSwgImh0dHBzIikgYW5kIG1hbmlmZXN0X2l0
ZW0uaHR0cHMgZWxzZSAiaHR0cCIKKyAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9pdGVtLnNv
dXJjZV9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbS51
cmwsCisgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICB0ZXN0X21ldGFkYXRhLAorICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91dCwK
KyAgICAgICAgICAgICAgICAgICBwYXRoPW1hbmlmZXN0X2l0ZW0uc291cmNlX2ZpbGUucGF0aCwK
KyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCkKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudXJsCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHR1cGxlKCkKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBhYnNfcGF0aChzZWxmKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgu
am9pbihzZWxmLnRlc3RzX3Jvb3QsIHNlbGYucGF0aCkKKworICAgIGRlZiBfZ2V0X21ldGFkYXRh
KHNlbGYsIHN1YnRlc3Q9Tm9uZSk6CisgICAgICAgIGlmIHNlbGYuX3Rlc3RfbWV0YWRhdGEgaXMg
bm90IE5vbmUgYW5kIHN1YnRlc3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fdGVzdF9tZXRhZGF0YS5nZXRfc3VidGVzdChzdWJ0ZXN0KQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfbWV0YWRhdGEKKworICAgIGRlZiBpdGVybWV0YShz
ZWxmLCBzdWJ0ZXN0PU5vbmUpOgorICAgICAgICBmb3IgbWV0YWRhdGEgaW4gc2VsZi5faW5oZXJp
dF9tZXRhZGF0YToKKyAgICAgICAgICAgIHlpZWxkIG1ldGFkYXRhCisKKyAgICAgICAgaWYgc2Vs
Zi5fdGVzdF9tZXRhZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuX2dl
dF9tZXRhZGF0YSgpCisgICAgICAgICAgICBpZiBzdWJ0ZXN0IGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIHN1YnRlc3RfbWV0YSA9IHNlbGYuX2dldF9tZXRhZGF0YShzdWJ0ZXN0KQorICAg
ICAgICAgICAgICAgIGlmIHN1YnRlc3RfbWV0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgeWllbGQgc3VidGVzdF9tZXRhCisKKyAgICBkZWYgZGlzYWJsZWQoc2VsZiwgc3VidGVz
dD1Ob25lKToKKyAgICAgICAgZm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YShzdWJ0ZXN0KToKKyAg
ICAgICAgICAgIGRpc2FibGVkID0gbWV0YS5kaXNhYmxlZAorICAgICAgICAgICAgaWYgZGlzYWJs
ZWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRpc2FibGVkCisgICAgICAg
IHJldHVybiBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVzdGFydF9hZnRlcihzZWxm
KToKKyAgICAgICAgZm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YShOb25lKToKKyAgICAgICAgICAg
IHJlc3RhcnRfYWZ0ZXIgPSBtZXRhLnJlc3RhcnRfYWZ0ZXIKKyAgICAgICAgICAgIGlmIHJlc3Rh
cnRfYWZ0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGVha3Moc2VsZik6Cisg
ICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6CisgICAgICAgICAgICBsZWFr
cyA9IG1ldGEubGVha3MKKyAgICAgICAgICAgIGlmIGxlYWtzIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIHJldHVybiBsZWFrcworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiB0YWdzKHNlbGYpOgorICAgICAgICB0YWdzID0gc2V0KCkKKyAgICAgICAg
Zm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YSgpOgorICAgICAgICAgICAgbWV0YV90YWdzID0gbWV0
YS50YWdzCisgICAgICAgICAgICBpZiBhdG9tX3Jlc2V0IGluIG1ldGFfdGFnczoKKyAgICAgICAg
ICAgICAgICB0YWdzID0gbWV0YV90YWdzLmNvcHkoKQorICAgICAgICAgICAgICAgIHRhZ3MucmVt
b3ZlKGF0b21fcmVzZXQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRhZ3Mg
fD0gbWV0YV90YWdzCisKKyAgICAgICAgdGFncy5hZGQoImRpcjolcyIgJSBzZWxmLmlkLmxzdHJp
cCgiLyIpLnNwbGl0KCIvIilbMF0pCisKKyAgICAgICAgcmV0dXJuIHRhZ3MKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBwcmVmcyhzZWxmKToKKyAgICAgICAgcHJlZnMgPSB7fQorICAgICAgICBm
b3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKCk6CisgICAgICAgICAgICBtZXRhX3ByZWZzID0gbWV0
YS5wcmVmcworICAgICAgICAgICAgaWYgYXRvbV9yZXNldCBpbiBwcmVmczoKKyAgICAgICAgICAg
ICAgICBwcmVmcyA9IG1ldGFfcHJlZnMuY29weSgpCisgICAgICAgICAgICAgICAgZGVsIHByZWZz
W2F0b21fcmVzZXRdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByZWZzLnVw
ZGF0ZShtZXRhX3ByZWZzKQorICAgICAgICByZXR1cm4gcHJlZnMKKworICAgIGRlZiBleHBlY3Rl
ZChzZWxmLCBzdWJ0ZXN0PU5vbmUpOgorICAgICAgICBpZiBzdWJ0ZXN0IGlzIE5vbmU6CisgICAg
ICAgICAgICBkZWZhdWx0ID0gc2VsZi5yZXN1bHRfY2xzLmRlZmF1bHRfZXhwZWN0ZWQKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGRlZmF1bHQgPSBzZWxmLnN1YnRlc3RfcmVzdWx0X2Nscy5k
ZWZhdWx0X2V4cGVjdGVkCisKKyAgICAgICAgbWV0YWRhdGEgPSBzZWxmLl9nZXRfbWV0YWRhdGEo
c3VidGVzdCkKKyAgICAgICAgaWYgbWV0YWRhdGEgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBkZWZhdWx0CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhLmdl
dCgiZXhwZWN0ZWQiKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByZXR1
cm4gZGVmYXVsdAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwl
cy4lcyAlcz4iICUgKHNlbGYuX19tb2R1bGVfXywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNl
bGYuaWQpCisKKworY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgorICAgIHJlc3VsdF9jbHMg
PSBUZXN0aGFybmVzc1Jlc3VsdAorICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IFRlc3RoYXJuZXNz
U3VidGVzdFJlc3VsdAorICAgIHRlc3RfdHlwZSA9ICJ0ZXN0aGFybmVzcyIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCBwcm90b2Nv
bD0iaHR0cCIsIHRlc3Rkcml2ZXI9RmFsc2UpOgorICAgICAgICBUZXN0Ll9faW5pdF9fKHNlbGYs
IHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGltZW91
dCwKKyAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBwcm90b2NvbCkKKworICAgICAgICBzZWxm
LnRlc3Rkcml2ZXIgPSB0ZXN0ZHJpdmVyCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJv
bV9tYW5pZmVzdChjbHMsIG1hbmlmZXN0X2l0ZW0sIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEpOgorICAgICAgICB0aW1lb3V0ID0gY2xzLmxvbmdfdGltZW91dCBpZiBtYW5pZmVzdF9p
dGVtLnRpbWVvdXQgPT0gImxvbmciIGVsc2UgY2xzLmRlZmF1bHRfdGltZW91dAorICAgICAgICBw
cm90b2NvbCA9ICJodHRwcyIgaWYgaGFzYXR0cihtYW5pZmVzdF9pdGVtLCAiaHR0cHMiKSBhbmQg
bWFuaWZlc3RfaXRlbS5odHRwcyBlbHNlICJodHRwIgorICAgICAgICB0ZXN0ZHJpdmVyID0gbWFu
aWZlc3RfaXRlbS50ZXN0ZHJpdmVyIGlmIGhhc2F0dHIobWFuaWZlc3RfaXRlbSwgInRlc3Rkcml2
ZXIiKSBlbHNlIEZhbHNlCisgICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfaXRlbS5zb3VyY2Vf
ZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAor
ICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAg
dGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCisgICAg
ICAgICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnBhdGgsCisgICAg
ICAgICAgICAgICAgICAgcHJvdG9jb2w9cHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgdGVz
dGRyaXZlcj10ZXN0ZHJpdmVyKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi51cmwKKworCitjbGFzcyBNYW51YWxUZXN0KFRlc3QpOgorICAg
IHRlc3RfdHlwZSA9ICJtYW51YWwiCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaWQoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLnVybAorCisKK2NsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgor
ICAgIHJlc3VsdF9jbHMgPSBSZWZ0ZXN0UmVzdWx0CisgICAgdGVzdF90eXBlID0gInJlZnRlc3Qi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFk
YXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAorICAgICAgICAgICAgICAgICB0aW1lb3V0
PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgcHJvdG9jb2w9
Imh0dHAiKToKKyAgICAgICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGlu
aGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCisgICAgICAgICAgICAgICAg
ICAgICAgcGF0aCwgcHJvdG9jb2wpCisKKyAgICAgICAgZm9yIF8sIHJlZl90eXBlIGluIHJlZmVy
ZW5jZXM6CisgICAgICAgICAgICBpZiByZWZfdHlwZSBub3QgaW4gKCI9PSIsICIhPSIpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKworICAgICAgICBzZWxmLnJlZmVyZW5jZXMg
PSByZWZlcmVuY2VzCisgICAgICAgIHNlbGYudmlld3BvcnRfc2l6ZSA9IHZpZXdwb3J0X3NpemUK
KyAgICAgICAgc2VsZi5kcGkgPSBkcGkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9t
X21hbmlmZXN0KGNscywKKyAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF90ZXN0LAorICAg
ICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICBub2Rlcz1Ob25lLAorICAg
ICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXNfc2Vlbj1Ob25lKToKKworICAgICAgICB0aW1l
b3V0ID0gY2xzLmxvbmdfdGltZW91dCBpZiBtYW5pZmVzdF90ZXN0LnRpbWVvdXQgPT0gImxvbmci
IGVsc2UgY2xzLmRlZmF1bHRfdGltZW91dAorCisgICAgICAgIGlmIG5vZGVzIGlzIE5vbmU6Cisg
ICAgICAgICAgICBub2RlcyA9IHt9CisgICAgICAgIGlmIHJlZmVyZW5jZXNfc2VlbiBpcyBOb25l
OgorICAgICAgICAgICAgcmVmZXJlbmNlc19zZWVuID0gc2V0KCkKKworICAgICAgICB1cmwgPSBt
YW5pZmVzdF90ZXN0LnVybAorCisgICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfdGVzdC5zb3Vy
Y2VfZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3Rlc3QudXJs
LAorICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAg
ICAgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0PXRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF90
ZXN0LnBhdGgsCisgICAgICAgICAgICAgICAgICAgdmlld3BvcnRfc2l6ZT1tYW5pZmVzdF90ZXN0
LnZpZXdwb3J0X3NpemUsCisgICAgICAgICAgICAgICAgICAgZHBpPW1hbmlmZXN0X3Rlc3QuZHBp
LAorICAgICAgICAgICAgICAgICAgIHByb3RvY29sPSJodHRwcyIgaWYgaGFzYXR0cihtYW5pZmVz
dF90ZXN0LCAiaHR0cHMiKSBhbmQgbWFuaWZlc3RfdGVzdC5odHRwcyBlbHNlICJodHRwIikKKwor
ICAgICAgICBub2Rlc1t1cmxdID0gbm9kZQorCisgICAgICAgIGZvciByZWZfdXJsLCByZWZfdHlw
ZSBpbiBtYW5pZmVzdF90ZXN0LnJlZmVyZW5jZXM6CisgICAgICAgICAgICBjb21wYXJpc29uX2tl
eSA9IChyZWZfdHlwZSwpICsgdHVwbGUoc29ydGVkKFt1cmwsIHJlZl91cmxdKSkKKyAgICAgICAg
ICAgIGlmIHJlZl91cmwgaW4gbm9kZXM6CisgICAgICAgICAgICAgICAgbWFuaWZlc3Rfbm9kZSA9
IHJlZl91cmwKKyAgICAgICAgICAgICAgICBpZiBjb21wYXJpc29uX2tleSBpbiByZWZlcmVuY2Vz
X3NlZW46CisgICAgICAgICAgICAgICAgICAgICMgV2UgaGF2ZSByZWFjaGVkIGEgY3ljbGUgc28g
c3RvcCBoZXJlCisgICAgICAgICAgICAgICAgICAgICMgTm90ZSB0aGF0IGp1c3Qgc2VlaW5nIGEg
bm9kZSBmb3IgdGhlIHNlY29uZCB0aW1lIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICAjIGVu
b3VnaCB0byBkZXRlY3QgYSBjeWNsZSBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICMgQSAh
PSBCICE9IEMgIT0gQSBtdXN0IGluY2x1ZGUgQyAhPSBBCisgICAgICAgICAgICAgICAgICAgICMg
YnV0IEEgPT0gQiA9PSBBIHNob3VsZCBub3QgaW5jbHVkZSB0aGUgcmVkdW5kYW50IEIgPT0gQS4K
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcmVmZXJlbmNlc19z
ZWVuLmFkZChjb21wYXJpc29uX2tleSkKKworICAgICAgICAgICAgbWFuaWZlc3Rfbm9kZSA9IG1h
bmlmZXN0X3Rlc3QubWFuaWZlc3QuZ2V0X3JlZmVyZW5jZShyZWZfdXJsKQorICAgICAgICAgICAg
aWYgbWFuaWZlc3Rfbm9kZToKKyAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSBSZWZ0ZXN0VGVz
dC5mcm9tX21hbmlmZXN0KG1hbmlmZXN0X25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXNfc2VlbikK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gUmVmdGVzdFRl
c3QobWFuaWZlc3RfdGVzdC5zb3VyY2VfZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl91cmwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSkK
KworICAgICAgICAgICAgbm9kZS5yZWZlcmVuY2VzLmFwcGVuZCgocmVmZXJlbmNlLCByZWZfdHlw
ZSkpCisKKyAgICAgICAgcmV0dXJuIG5vZGUKKworICAgIGRlZiB1cGRhdGVfbWV0YWRhdGEoc2Vs
ZiwgbWV0YWRhdGEpOgorICAgICAgICBpZiAidXJsX2NvdW50IiBub3QgaW4gbWV0YWRhdGE6Cisg
ICAgICAgICAgICBtZXRhZGF0YVsidXJsX2NvdW50Il0gPSBkZWZhdWx0ZGljdChpbnQpCisgICAg
ICAgIGZvciByZWZlcmVuY2UsIF8gaW4gc2VsZi5yZWZlcmVuY2VzOgorICAgICAgICAgICAgIyBX
ZSBhc3N1bWUgYSBuYWl2ZSBpbXBsZW1lbnRhdGlvbiBpbiB3aGljaCBhIHVybCB3aXRoIG11bHRp
cGxlCisgICAgICAgICAgICAjIHBvc3NpYmxlIHNjcmVlbnNob3RzIHdpbGwgbmVlZCB0byB0YWtl
IGJvdGggdGhlIGxocyBhbmQgcmhzIHNjcmVlbnNob3RzCisgICAgICAgICAgICAjIGZvciBlYWNo
IHBvc3NpYmxlIG1hdGNoCisgICAgICAgICAgICBtZXRhZGF0YVsidXJsX2NvdW50Il1bKHNlbGYu
ZW52aXJvbm1lbnRbInByb3RvY29sIl0sIHJlZmVyZW5jZS51cmwpXSArPSAxCisgICAgICAgICAg
ICByZWZlcmVuY2UudXBkYXRlX21ldGFkYXRhKG1ldGFkYXRhKQorICAgICAgICByZXR1cm4gbWV0
YWRhdGEKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYudXJsCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAg
cmV0dXJuICgicmVmdHlwZSIsICJyZWZ1cmwiKQorCisKK2NsYXNzIFdkc3BlY1Rlc3QoVGVzdCk6
CisKKyAgICByZXN1bHRfY2xzID0gV2RzcGVjUmVzdWx0CisgICAgc3VidGVzdF9yZXN1bHRfY2xz
ID0gV2RzcGVjU3VidGVzdFJlc3VsdAorICAgIHRlc3RfdHlwZSA9ICJ3ZHNwZWMiCisKKyAgICBk
ZWZhdWx0X3RpbWVvdXQgPSAyNQorICAgIGxvbmdfdGltZW91dCA9IDEyMAorCisKK21hbmlmZXN0
X3Rlc3RfY2xzID0geyJyZWZ0ZXN0IjogUmVmdGVzdFRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAidGVzdGhhcm5lc3MiOiBUZXN0aGFybmVzc1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAi
bWFudWFsIjogTWFudWFsVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiBXZHNw
ZWNUZXN0fQorCisKK2RlZiBmcm9tX21hbmlmZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0
YWRhdGEsIHRlc3RfbWV0YWRhdGEpOgorICAgIHRlc3RfY2xzID0gbWFuaWZlc3RfdGVzdF9jbHNb
bWFuaWZlc3RfdGVzdC5pdGVtX3R5cGVdCisgICAgcmV0dXJuIHRlc3RfY2xzLmZyb21fbWFuaWZl
c3QobWFuaWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvZG9jcy9waXBlcy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcGlwZXMucnN0CmluZGV4IGM2MDYxNDBk
NDc0OTEyN2VkMGE4OWNmMzQ0ZTMzOTA1ZTNmNDc2NjQuLjhmYWVlZTQ4OWM5ZmFiNzEzODc1NDBm
OTk2MDIzZTAxYTQ2OTU1ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3QKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9k
b2NzL3BpcGVzLnJzdApAQCAtMTEsNiArMTEsMTAgQEAgZnVuY3Rpb25zIGFyZSBhcHBsaWVkIHRv
IHRoZSByZXNwb25zZSBmcm9tIGxlZnQgdG8gcmlnaHQuIEZvciBleGFtcGxlOjoKIFRoaXMgd291
bGQgc2VydmUgYnl0ZXMgMSB0byAxOTksIGluY2x1c2l2ZSwgb2YgZm9vLnR4dCB3aXRoIHRoZSBI
VFRQIHN0YXR1cwogY29kZSA0MDQuCiAKKy4uIG5vdGU6OgorICAgSWYgeW91IHdyaXRlIGRpcmVj
dGx5IHRvIHRoZSByZXNwb25zZSBzb2NrZXQgdXNpbmcgUmVzcG9uc2VXcml0ZXIsCisgICBvciB3
aGVuIHVzaW5nIHRoZSBhc2lzIGhhbmRsZXIsIG9ubHkgdGhlIHRyaWNrbGUgcGlwZSB3aWxsIGFm
ZmVjdCB0aGUgcmVzcG9uc2UuCisKIFRoZXJlIGFyZSBzZXZlcmFsIGJ1aWx0LWluIHBpcGUgZnVu
Y3Rpb25zLCBhbmQgaXQgaXMgcG9zc2libGUgdG8gYWRkCiBtb3JlIHVzaW5nIHRoZSBgQHBpcGVg
IGRlY29yYXRvciBvbiBhIGZ1bmN0aW9uLCBpZiByZXF1aXJlZC4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9k
b2NzL3N0YXNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5yc3QKaW5kZXggODIxYzJkMzQ0NTVmZWEyZjE4
MzZiNzlkMTliODhkNzBhZTQwNmM5OC4uNDk4NDZmMjEwNjFiMzBiNGQ0YTU0ZTdlN2NmZmM5ZGQx
MjJhN2E2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3N0YXNoLnJzdAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gu
cnN0CkBAIC0zLDcgKzMsNyBAQCBTdGFzaAogCiBPYmplY3QgZm9yIHN0b3JpbmcgY3Jvc3MtcmVx
dWVzdCBzdGF0ZS4gVGhpcyBpcyB1bnVzdWFsIGluIHRoYXQga2V5cwogbXVzdCBiZSBVVUlEcywg
aW4gb3JkZXIgdG8gcHJldmVudCBkaWZmZXJlbnQgY2xpZW50cyBzZXR0aW5nIHRoZSBzYW1lCi1r
ZXksIGFuZCB2YWx1ZXMgYXJlIHdyaXRlLW9uY2UsIHJlYWQtb25jZSB0byBtaW5pbWlzZSB0aGUg
Y2hhbmNlcyBvZgora2V5LCBhbmQgdmFsdWVzIGFyZSB3cml0ZS1vbmNlLCByZWFkLW9uY2UgdG8g
bWluaW1pemUgdGhlIGNoYW5jZXMgb2YKIHN0YXRlIHBlcnNpc3RpbmcgaW5kZWZpbml0ZWx5LiBU
aGUgc3Rhc2ggZGVmaW5lcyB0d28gb3BlcmF0aW9uczsKIGBwdXRgLCB0byBhZGQgc3RhdGUgYW5k
IGB0YWtlYCB0byByZW1vdmUgc3RhdGUuIEZ1cnRoZXJtb3JlLCB0aGUgdmlldwogb2YgdGhlIHN0
YXNoIGlzIHBhdGgtc3BlY2lmaWM7IGJ5IGRlZmF1bHQgYSByZXF1ZXN0IHdpbGwgb25seSBzZWUg
dGhlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9waXBlcy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVz
dHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CmluZGV4IDk1ZGE3MGZhZWE5ZjU0NzE3ODU1YjM1
NDVmYzA2ZTgwOGQ0ZGE5MTYuLjE0N2FkMTU2MjI1MTE1MTM4NmMwMWQxM2FmZDE5N2ZjZTVkOGNk
ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CkBAIC0xLDkgKzEsMTEgQEAKIGltcG9ydCBv
cwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgdGltZQoraW1wb3J0IGpzb24KIAogaW1wb3J0IHB5
dGVzdAogCit3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKIGZyb20g
LmJhc2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlciwgZG9jX3Jvb3QKIAogCkBAIC03Niw1ICs3OCw3
OCBAQCBjbGFzcyBUZXN0VHJpY2tsZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlc3AucmVhZCgpLCBleHBlY3RlZCkKICAgICAgICAgc2VsZi5hc3NlcnRHcmVh
dGVyKDYsIHQxLXQwKQogCisgICAgZGVmIHRlc3RfaGVhZGVycyhzZWxmKToKKyAgICAgICAgcmVz
cCA9IHNlbGYucmVxdWVzdCgiL2RvY3VtZW50LnR4dCIsIHF1ZXJ5PSJwaXBlPXRyaWNrbGUoZDAu
MDEpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8oKVsiQ2FjaGUtQ29udHJv
bCJdLCAibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlc3AuaW5mbygpWyJQcmFnbWEiXSwgIm5vLWNhY2hlIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8oKVsiRXhwaXJlcyJdLCAiMCIpCisKK2NsYXNzIFRl
c3RQaXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVzaW5nU2VydmVyKToKKyAgICBkZWYgdGVz
dF93aXRoX3B5dGhvbl9maWxlX2hhbmRsZXIoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJl
cXVlc3QoIi90ZXN0X3N0cmluZy5weSIsIHF1ZXJ5PSJwaXBlPXNsaWNlKG51bGwsMikiKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCAiUEEiKQorCisgICAgZGVmIHRlc3Rf
d2l0aF9weXRob25fZnVuY19oYW5kbGVyKHNlbGYpOgorICAgICAgICBAd3B0c2VydmUuaGFuZGxl
cnMuaGFuZGxlcgorICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAg
ICAgICAgICByZXR1cm4gIlBBU1MiCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3QvdGVz
dF9waXBlc18xLyIsIGhhbmRsZXIpCisgICAgICAgIHNlbGYuc2VydmVyLnJvdXRlci5yZWdpc3Rl
cigqcm91dGUpCisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIHF1ZXJ5PSJw
aXBlPXNsaWNlKG51bGwsMikiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgp
LCAiUEEiKQorCisgICAgZGVmIHRlc3Rfd2l0aF9weXRob25fZnVuY19oYW5kbGVyX3VzaW5nX3Jl
c3BvbnNlX3dyaXRlcihzZWxmKToKKyAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIK
KyAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgcmVz
cG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoIlBBU1MiKQorICAgICAgICByb3V0ZSA9ICgiR0VU
IiwgIi90ZXN0L3Rlc3RfcGlwZXNfMS8iLCBoYW5kbGVyKQorICAgICAgICBzZWxmLnNlcnZlci5y
b3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRl
WzFdLCBxdWVyeT0icGlwZT1zbGljZShudWxsLDIpIikKKyAgICAgICAgIyBzbGljZSBoYXMgbm90
IGJlZW4gYXBwbGllZCB0byB0aGUgcmVzcG9uc2UsIGJlY2F1c2UgcmVzcG9uc2Uud3JpdGVyIHdh
cyB1c2VkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCAiUEFTUyIpCisK
KyAgICBkZWYgdGVzdF9oZWFkZXJfcGlwZV93aXRoX3B5dGhvbl9mdW5jX3VzaW5nX3Jlc3BvbnNl
X3dyaXRlcihzZWxmKToKKyAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKKyAgICAg
ICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgcmVzcG9uc2Uu
d3JpdGVyLndyaXRlX2NvbnRlbnQoIkNPTlRFTlQiKQorICAgICAgICByb3V0ZSA9ICgiR0VUIiwg
Ii90ZXN0L3Rlc3RfcGlwZXNfMS8iLCBoYW5kbGVyKQorICAgICAgICBzZWxmLnNlcnZlci5yb3V0
ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFd
LCBxdWVyeT0icGlwZT1oZWFkZXIoWC1URVNULEZBSUwpIikKKyAgICAgICAgIyBoZWFkZXIgcGlw
ZSB3YXMgaWdub3JlZCwgYmVjYXVzZSByZXNwb25zZS53cml0ZXIgd2FzIHVzZWQuCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UocmVzcC5pbmZvKCkuZ2V0KCJYLVRFU1QiKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgIkNPTlRFTlQiKQorCisgICAgZGVmIHRlc3Rfd2l0
aF9qc29uX2hhbmRsZXIoc2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5qc29uX2hh
bmRsZXIKKyAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAg
ICAgcmV0dXJuIGpzb24uZHVtcHMoeydkYXRhJzogJ1BBU1MnfSkKKyAgICAgICAgcm91dGUgPSAo
IkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzIvIiwgaGFuZGxlcikKKyAgICAgICAgc2VsZi5zZXJ2
ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChy
b3V0ZVsxXSwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzcC5yZWFkKCksICcieycpCisKKyAgICBkZWYgdGVzdF9zbGljZV93aXRoX2FzX2lz
X2hhbmRsZXIoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi90ZXN0LmFzaXMi
LCBxdWVyeT0icGlwZT1zbGljZShudWxsLDIpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgy
MDIsIHJlc3AuZ2V0Y29kZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJHaXJhZmZlIiwg
cmVzcC5tc2cpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlBBU1MiLCByZXNwLmluZm8oKVsi
WC1UZXN0Il0pCisgICAgICAgICMgc2xpY2UgaGFzIG5vdCBiZWVuIGFwcGxpZWQgdG8gdGhlIHJl
c3BvbnNlLCBiZWNhdXNlIHJlc3BvbnNlLndyaXRlciB3YXMgdXNlZC4KKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgiQ29udGVudCIsIHJlc3AucmVhZCgpKQorCisgICAgZGVmIHRlc3RfaGVhZGVy
c193aXRoX2FzX2lzX2hhbmRsZXIoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qo
Ii90ZXN0LmFzaXMiLCBxdWVyeT0icGlwZT1oZWFkZXIoWC1URVNULEZBSUwpIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgyMDIsIHJlc3AuZ2V0Y29kZSgpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCJHaXJhZmZlIiwgcmVzcC5tc2cpCisgICAgICAgICMgaGVhZGVyIHBpcGUgd2FzIGln
bm9yZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlBBU1MiLCByZXNwLmluZm8oKVsiWC1U
RVNUIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkK
KworICAgIGRlZiB0ZXN0X3RyaWNrbGVfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgorICAgICAg
ICB0MCA9IHRpbWUudGltZSgpCisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi90ZXN0LmFz
aXMiLCBxdWVyeT0icGlwZT10cmlja2xlKDE6ZDI6NTpkMTpyMikiKQorICAgICAgICB0MSA9IHRp
bWUudGltZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnQ29udGVudCcgaW4gcmVzcC5yZWFk
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcig2LCB0MS10MCkKKwogaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvaGFuZGxlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5CmluZGV4IDMxZjM2MWNjMjNi
ZWZjNmJhYTJiYmIxMzc3MTA2ZmY4YjZkNWQ5NDMuLjZjMDI5N2YyNTc5NzQzY2M2MWU4NTAzYmE3
NWJmOTE1NWU4NWNhNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtMjM3LDYgKzIzNyw3IEBAIGNsYXNzIFB5dGhvblNj
cmlwdEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmICJtYWluIiBpbiBlbnZpcm9uOgog
ICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBGdW5jdGlvbkhhbmRsZXIoZW52aXJvblsibWFpbiJd
KQogICAgICAgICAgICAgICAgIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAg
ICAgICAgd3JhcF9waXBlbGluZShwYXRoLCByZXF1ZXN0LCByZXNwb25zZSkKICAgICAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlvbig1MDAsICJObyBtYWlu
IGZ1bmN0aW9uIGluIHNjcmlwdCAlcyIgJSBwYXRoKQogICAgICAgICBleGNlcHQgSU9FcnJvcjoK
QEAgLTI2Nyw2ICsyNjgsNyBAQCBjbGFzcyBGdW5jdGlvbkhhbmRsZXIob2JqZWN0KToKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgY29udGVudCA9IHJ2CiAgICAgICAgICAgICBy
ZXNwb25zZS5jb250ZW50ID0gY29udGVudAorICAgICAgICAgICAgd3JhcF9waXBlbGluZSgnJywg
cmVxdWVzdCwgcmVzcG9uc2UpCiAKIAogI1RoZSBnZW5lcmljIG5hbWUgaGVyZSBpcyBzbyB0aGF0
IHRoaXMgY2FuIGJlIHVzZWQgYXMgYSBkZWNvcmF0b3IKQEAgLTMwOSw2ICszMTEsNyBAQCBjbGFz
cyBBc0lzSGFuZGxlcihvYmplY3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB3aXRoIG9w
ZW4ocGF0aCkgYXMgZjoKICAgICAgICAgICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29u
dGVudChmLnJlYWQoKSkKKyAgICAgICAgICAgIHdyYXBfcGlwZWxpbmUocGF0aCwgcmVxdWVzdCwg
cmVzcG9uc2UpCiAgICAgICAgICAgICByZXNwb25zZS5jbG9zZV9jb25uZWN0aW9uID0gVHJ1ZQog
ICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24o
NDA0KQpAQCAtMzUxLDIxICszNTQsMTkgQEAgY2xhc3MgRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAg
ICAgICAgIHJlc3BvbnNlLnNldF9lcnJvcihzZWxmLnN0YXR1cykKIAogCi1jbGFzcyBTdGF0aWNI
YW5kbGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGZvcm1hdF9hcmdz
LCBjb250ZW50X3R5cGUsICoqaGVhZGVycyk6CitjbGFzcyBTdHJpbmdIYW5kbGVyKG9iamVjdCk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGNvbnRlbnRfdHlwZSwgKipoZWFkZXJzKToK
ICAgICAgICAgIiIiSGFuZGVyIHRoYXQgcmVhZHMgYSBmaWxlIGZyb20gYSBwYXRoIGFuZCBzdWJz
dGl0dXRlcyBzb21lIGZpeGVkIGRhdGEKIAotICAgICAgICA6cGFyYW0gcGF0aDogUGF0aCB0byB0
aGUgdGVtcGxhdGUgZmlsZSB0byB1c2UKLSAgICAgICAgOnBhcmFtIGZvcm1hdF9hcmdzOiBEaWN0
aW9uYXJ5IG9mIHZhbHVlcyB0byBzdWJzdGl0dXRlIGludG8gdGhlIHRlbXBsYXRlIGZpbGUKKyAg
ICAgICAgOnBhcmFtIGRhdGE6IFN0cmluZyB0byB1c2UKICAgICAgICAgOnBhcmFtIGNvbnRlbnRf
dHlwZTogQ29udGVudCB0eXBlIGhlYWRlciB0byBzZXJ2ZXIgdGhlIHJlc3BvbnNlIHdpdGgKICAg
ICAgICAgOnBhcmFtIGhlYWRlcnM6IExpc3Qgb2YgaGVhZGVycyB0byBzZW5kIHdpdGggcmVzcG9u
c2VzIiIiCiAKLSAgICAgICAgd2l0aCBvcGVuKHBhdGgpIGFzIGY6Ci0gICAgICAgICAgICBzZWxm
LmRhdGEgPSBmLnJlYWQoKSAlIGZvcm1hdF9hcmdzCisgICAgICAgIHNlbGYuZGF0YSA9IGRhdGEK
IAogICAgICAgICBzZWxmLnJlc3BfaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsIGNvbnRlbnRf
dHlwZSldCiAgICAgICAgIGZvciBrLCB2IGluIGhlYWRlcnMuaXRlcml0ZW1zKCk6Ci0gICAgICAg
ICAgICByZXNwX2hlYWRlcnMuYXBwZW5kKChrLnJlcGxhY2UoIl8iLCAiLSIpLCB2KSkKKyAgICAg
ICAgICAgIHNlbGYucmVzcF9oZWFkZXJzLmFwcGVuZCgoay5yZXBsYWNlKCJfIiwgIi0iKSwgdikp
CiAKICAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcihzZWxmLmhhbmRsZV9yZXF1ZXN0KQog
CkBAIC0zNzUsMyArMzc2LDE4IEBAIGNsYXNzIFN0YXRpY0hhbmRsZXIob2JqZWN0KToKICAgICBk
ZWYgX19jYWxsX18oc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICBydiA9IHNlbGYu
aGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSkKICAgICAgICAgcmV0dXJuIHJ2CisKKworY2xhc3Mg
U3RhdGljSGFuZGxlcihTdHJpbmdIYW5kbGVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0
aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgKipoZWFkZXJzKToKKyAgICAgICAgIiIiSGFu
ZGVyIHRoYXQgcmVhZHMgYSBmaWxlIGZyb20gYSBwYXRoIGFuZCBzdWJzdGl0dXRlcyBzb21lIGZp
eGVkIGRhdGEKKworICAgICAgICA6cGFyYW0gcGF0aDogUGF0aCB0byB0aGUgdGVtcGxhdGUgZmls
ZSB0byB1c2UKKyAgICAgICAgOnBhcmFtIGZvcm1hdF9hcmdzOiBEaWN0aW9uYXJ5IG9mIHZhbHVl
cyB0byBzdWJzdGl0dXRlIGludG8gdGhlIHRlbXBsYXRlIGZpbGUKKyAgICAgICAgOnBhcmFtIGNv
bnRlbnRfdHlwZTogQ29udGVudCB0eXBlIGhlYWRlciB0byBzZXJ2ZXIgdGhlIHJlc3BvbnNlIHdp
dGgKKyAgICAgICAgOnBhcmFtIGhlYWRlcnM6IExpc3Qgb2YgaGVhZGVycyB0byBzZW5kIHdpdGgg
cmVzcG9uc2VzIiIiCisKKyAgICAgICAgd2l0aCBvcGVuKHBhdGgpIGFzIGY6CisgICAgICAgICAg
ICBkYXRhID0gZi5yZWFkKCkgJSBmb3JtYXRfYXJncworCisgICAgICAgIHJldHVybiBzdXBlcihT
dGF0aWNIYW5kbGVyLCBzZWxmKS5fX2luaXRfXyhkYXRhLCBjb250ZW50X3R5cGUsICoqaGVhZGVy
cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5
CmluZGV4IDk1MTA4YmE3ZTkzZGY3NDkwMWZiYmM4Y2QyMTE0NjM1YjA2NDcxMWQuLjEyNmE2OGUz
MmViYTA0NzMzZjIxZDEyZWI1ZjY2YjE0YWUzZGYzZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
cGlwZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9waXBlcy5weQpAQCAtNiw2ICs2LDcgQEAgaW1wb3J0
IHR5cGVzCiBpbXBvcnQgdXVpZAogZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCiAKK2Zy
b20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIAogZGVmIHJlc29sdmVfY29udGVudChyZXNwb25zZSk6
CiAgICAgcmV0dXJuIGIiIi5qb2luKGl0ZW0gZm9yIGl0ZW0gaW4gcmVzcG9uc2UuaXRlcl9jb250
ZW50KHJlYWRfZmlsZT1UcnVlKSkKQEAgLTIzMSw2ICsyMzIsMTMgQEAgZGVmIHRyaWNrbGUocmVx
dWVzdCwgcmVzcG9uc2UsIGRlbGF5cyk6CiAgICAgY29udGVudCA9IHJlc29sdmVfY29udGVudChy
ZXNwb25zZSkKICAgICBvZmZzZXQgPSBbMF0KIAorICAgIGlmIG5vdCAoIkNhY2hlLUNvbnRyb2wi
IGluIHJlc3BvbnNlLmhlYWRlcnMgb3IKKyAgICAgICAgICAgICJQcmFnbWEiIGluIHJlc3BvbnNl
LmhlYWRlcnMgb3IKKyAgICAgICAgICAgICJFeHBpcmVzIiBpbiByZXNwb25zZS5oZWFkZXJzKToK
KyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUs
IG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dCgiUHJhZ21hIiwgIm5vLWNhY2hlIikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkV4
cGlyZXMiLCAiMCIpCisKICAgICBkZWYgYWRkX2NvbnRlbnQoZGVsYXlzLCByZXBlYXQ9RmFsc2Up
OgogICAgICAgICBmb3IgaSwgKGl0ZW1fdHlwZSwgdmFsdWUpIGluIGVudW1lcmF0ZShkZWxheXMp
OgogICAgICAgICAgICAgaWYgaXRlbV90eXBlID09ICJieXRlcyI6CkBAIC0yNjksMTggKzI3Nywx
OCBAQCBkZWYgc2xpY2UocmVxdWVzdCwgcmVzcG9uc2UsIHN0YXJ0LCBlbmQ9Tm9uZSk6CiAKIAog
Y2xhc3MgUmVwbGFjZW1lbnRUb2tlbml6ZXIob2JqZWN0KToKLSAgICBkZWYgaWRlbnQoc2Nhbm5l
ciwgdG9rZW4pOgorICAgIGRlZiBpZGVudChzZWxmLCB0b2tlbik6CiAgICAgICAgIHJldHVybiAo
ImlkZW50IiwgdG9rZW4pCiAKLSAgICBkZWYgaW5kZXgoc2Nhbm5lciwgdG9rZW4pOgorICAgIGRl
ZiBpbmRleChzZWxmLCB0b2tlbik6CiAgICAgICAgIHRva2VuID0gdG9rZW5bMTotMV0KICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgdG9rZW4gPSBpbnQodG9rZW4pCiAgICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yOgotICAgICAgICAgICAgdG9rZW4gPSB1bmljb2RlKHRva2VuLCAidXRmOCIpCisg
ICAgICAgICAgICB0b2tlbiA9IHRva2VuLmRlY29kZSgndXRmOCcpCiAgICAgICAgIHJldHVybiAo
ImluZGV4IiwgdG9rZW4pCiAKLSAgICBkZWYgdmFyKHNjYW5uZXIsIHRva2VuKToKKyAgICBkZWYg
dmFyKHNlbGYsIHRva2VuKToKICAgICAgICAgdG9rZW4gPSB0b2tlbls6LTFdCiAgICAgICAgIHJl
dHVybiAoInZhciIsIHRva2VuKQogCkBAIC0zODQsNiArMzkyLDE0IEBAIGRlZiB0ZW1wbGF0ZShy
ZXF1ZXN0LCBjb250ZW50LCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAgICAgICAgICAgdmFsdWUg
PSByZXF1ZXN0LmhlYWRlcnMKICAgICAgICAgZWxpZiBmaWVsZCA9PSAiR0VUIjoKICAgICAgICAg
ICAgIHZhbHVlID0gRmlyc3RXcmFwcGVyKHJlcXVlc3QuR0VUKQorICAgICAgICBlbGlmIGZpZWxk
ID09ICJkb21haW5zIjoKKyAgICAgICAgICAgIGlmICgnbm90X2RvbWFpbnMnIGluIHJlcXVlc3Qu
c2VydmVyLmNvbmZpZyBhbmQKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5zWzFdWzFdIGluIHJl
cXVlc3Quc2VydmVyLmNvbmZpZ1snbm90X2RvbWFpbnMnXSk6CisgICAgICAgICAgICAgICAgdmFs
dWUgPSByZXF1ZXN0LnNlcnZlci5jb25maWdbJ25vdF9kb21haW5zJ10KKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgdmFsdWUgPSByZXF1ZXN0LnNlcnZlci5jb25maWdbJ2RvbWFp
bnMnXQorICAgICAgICBlbGlmIGZpZWxkID09ICJob3N0IjoKKyAgICAgICAgICAgIHZhbHVlID0g
cmVxdWVzdC5zZXJ2ZXIuY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICBlbGlmIGZpZWxk
IGluIHJlcXVlc3Quc2VydmVyLmNvbmZpZzoKICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVzdC5z
ZXJ2ZXIuY29uZmlnW3Rva2Vuc1swXVsxXV0KICAgICAgICAgZWxpZiBmaWVsZCA9PSAibG9jYXRp
b24iOgpAQCAtNDE4LDcgKzQzNCw3IEBAIGRlZiB0ZW1wbGF0ZShyZXF1ZXN0LCBjb250ZW50LCBl
c2NhcGVfdHlwZT0iaHRtbCIpOgogCiAgICAgICAgICNTaG91bGQgcG9zc2libHkgc3VwcG9ydCBl
c2NhcGluZyBmb3Igb3RoZXIgY29udGV4dHMgZS5nLiBzY3JpcHQKICAgICAgICAgI1RPRE86IHJl
YWQgdGhlIGVuY29kaW5nIG9mIHRoZSByZXNwb25zZQotICAgICAgICByZXR1cm4gZXNjYXBlX2Z1
bmModW5pY29kZSh2YWx1ZSkpLmVuY29kZSgidXRmLTgiKQorICAgICAgICByZXR1cm4gZXNjYXBl
X2Z1bmModGV4dF90eXBlKHZhbHVlKSkuZW5jb2RlKCJ1dGYtOCIpCiAKICAgICB0ZW1wbGF0ZV9y
ZWdleHAgPSByZS5jb21waWxlKHIie3soW159XSopfX0iKQogICAgIG5ld19jb250ZW50ID0gdGVt
cGxhdGVfcmVnZXhwLnN1Yihjb25maWdfcmVwbGFjZW1lbnQsIGNvbnRlbnQpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQppbmRleCA1
MGZmMDBkZGU5NDQwZTk2YzgzYTliZDdlMTQ3MmJhZDNiOTk4ODQ0Li4yMGI3YjQyNjk5NjIxZTU4
MGNjZDA4NmNjNWM0ZmFmOTE4YjhhZmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNl
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkKQEAgLTksNiArOSw4IEBAIGltcG9ydCBz
b2NrZXQKIGZyb20gLmNvbnN0YW50cyBpbXBvcnQgcmVzcG9uc2VfY29kZXMKIGZyb20gLmxvZ2dl
ciBpbXBvcnQgZ2V0X2xvZ2dlcgogCitmcm9tIHNpeCBpbXBvcnQgc3RyaW5nX3R5cGVzLCBiaW5h
cnlfdHlwZSwgdGV4dF90eXBlCisKIG1pc3NpbmcgPSBvYmplY3QoKQogCiBjbGFzcyBSZXNwb25z
ZShvYmplY3QpOgpAQCAtNDAwLDcgKzQwMiw3IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVj
dCk6CiAgICAgICAgICAgICBpZiBuYW1lLmxvd2VyKCkgbm90IGluIHNlbGYuX2hlYWRlcnNfc2Vl
bjoKICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX2hlYWRlcihuYW1lLCBmKCkpCiAKLSAgICAg
ICAgaWYgKHR5cGUoc2VsZi5fcmVzcG9uc2UuY29udGVudCkgaW4gKHN0ciwgdW5pY29kZSkgYW5k
CisgICAgICAgIGlmIChpc2luc3RhbmNlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQsIHN0cmluZ190
eXBlcykgYW5kCiAgICAgICAgICAgICAiY29udGVudC1sZW5ndGgiIG5vdCBpbiBzZWxmLl9oZWFk
ZXJzX3NlZW4pOgogICAgICAgICAgICAgI1dvdWxkIGJlIG5pY2UgdG8gYXZvaWQgZG91YmxlLWVu
Y29kaW5nIGhlcmUKICAgICAgICAgICAgIHNlbGYud3JpdGVfaGVhZGVyKCJDb250ZW50LUxlbmd0
aCIsIGxlbihzZWxmLmVuY29kZShzZWxmLl9yZXNwb25zZS5jb250ZW50KSkpCkBAIC00NTcsOSAr
NDU5LDkgQEAgY2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKIAogICAgIGRlZiBlbmNvZGUo
c2VsZiwgZGF0YSk6CiAgICAgICAgICIiIkNvbnZlcnQgdW5pY29kZSB0byBieXRlcyBhY2NvcmRp
bmcgdG8gcmVzcG9uc2UuZW5jb2RpbmcuIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwg
c3RyKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBiaW5hcnlfdHlwZSk6CiAgICAgICAg
ICAgICByZXR1cm4gZGF0YQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZGF0YSwgdW5pY29kZSk6
CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShkYXRhLCB0ZXh0X3R5cGUpOgogICAgICAgICAgICAg
cmV0dXJuIGRhdGEuZW5jb2RlKHNlbGYuX3Jlc3BvbnNlLmVuY29kaW5nKQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9z
ZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQppbmRleCAwYWI1MTJjYjJhNTYyNmNhMDUx
ZWUyZTc1NWVlZjIwNTAzN2U3ZDRjLi5kMWVmNzUwODYxY2VlODBmOTZjNGVmM2NmNTExODI1YzYz
YzAxZDM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3NlcnZlci5weQpAQCAtMTEwLDE0ICsxMTAsMTUgQEAgY2xhc3MgV2ViVGVzdFNlcnZlcihUaHJl
YWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6CiAgICAgIyBFbnN1cmUgdGhh
dCB3ZSBkb24ndCBoYW5nIG9uIHNodXRkb3duIHdhaXRpbmcgZm9yIHJlcXVlc3RzCiAgICAgZGFl
bW9uX3RocmVhZHMgPSBUcnVlCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2VydmVyX2FkZHJl
c3MsIFJlcXVlc3RIYW5kbGVyQ2xhc3MsIHJvdXRlciwgcmV3cml0ZXIsIGJpbmRfaG9zdG5hbWUs
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcnZlcl9hZGRyZXNzLCByZXF1ZXN0X2hhbmRsZXJf
Y2xzLAorICAgICAgICAgICAgICAgICByb3V0ZXIsIHJld3JpdGVyLCBiaW5kX2FkZHJlc3MsCiAg
ICAgICAgICAgICAgICAgIGNvbmZpZz1Ob25lLCB1c2Vfc3NsPUZhbHNlLCBrZXlfZmlsZT1Ob25l
LCBjZXJ0aWZpY2F0ZT1Ob25lLAogICAgICAgICAgICAgICAgICBlbmNyeXB0X2FmdGVyX2Nvbm5l
Y3Q9RmFsc2UsIGxhdGVuY3k9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJTZXJ2ZXIgZm9y
IEhUVFAocykgUmVxdWVzdHMKIAogICAgICAgICA6cGFyYW0gc2VydmVyX2FkZHJlc3M6IHR1cGxl
IG9mIChzZXJ2ZXJfbmFtZSwgcG9ydCkKIAotICAgICAgICA6cGFyYW0gUmVxdWVzdEhhbmRsZXJD
bGFzczogQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci1saWtlIGNsYXNzIHRvIHVzZSBmb3IKKyAgICAg
ICAgOnBhcmFtIHJlcXVlc3RfaGFuZGxlcl9jbHM6IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXItbGlr
ZSBjbGFzcyB0byB1c2UgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YW5kbGluZyByZXF1ZXN0cy4KIAogICAgICAgICA6cGFyYW0gcm91dGVyOiBSb3V0ZXIgaW5zdGFu
Y2UgdG8gdXNlIGZvciBtYXRjaGluZyByZXF1ZXN0cyB0byBoYW5kbGVyCkBAIC0xNDAsMTAgKzE0
MSwxMCBAQCBjbGFzcyBXZWJUZXN0U2VydmVyKFRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZl
ci5IVFRQU2VydmVyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhp
cyBlbmFibGVzIHRoZSBzZXJ2ZXIgdG8gYWN0IGFzIGEKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi1wcm94eS4KIAotICAgICAgICA6cGFyYW0gYmluZF9ob3N0bmFt
ZSBUcnVlIHRvIGJpbmQgdGhlIHNlcnZlciB0byBib3RoIHRoZSBob3N0bmFtZSBhbmQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCBzcGVjaWZpZWQgaW4gdGhlIHNlcnZlcl9hZGRy
ZXNzIHBhcmFtZXRlci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UgdG8gYmlu
ZCB0aGUgc2VydmVyIG9ubHkgdG8gdGhlIHBvcnQgaW4gdGhlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlcnZlcl9hZGRyZXNzIHBhcmFtZXRlciwgYnV0IG5vdCB0byB0aGUgaG9zdG5h
bWUuCisgICAgICAgIDpwYXJhbSBiaW5kX2FkZHJlc3MgVHJ1ZSB0byBiaW5kIHRoZSBzZXJ2ZXIg
dG8gYm90aCB0aGUgSVAgYWRkcmVzcyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0IHNwZWNpZmllZCBpbiB0aGUgc2VydmVyX2FkZHJlc3MgcGFyYW1ldGVyLgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZhbHNlIHRvIGJpbmQgdGhlIHNlcnZlciBvbmx5IHRvIHRoZSBw
b3J0IGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9hZGRyZXNzIHBh
cmFtZXRlciwgYnV0IG5vdCB0byB0aGUgYWRkcmVzcy4KICAgICAgICAgOnBhcmFtIGxhdGVuY3k6
IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBlYWNoIHJlc3BvbnNlLCBvcgogICAg
ICAgICAgICAgICAgICAgICAgICAgY2FsbGFibGUgdGhhdCByZXR1cm5zIGEgZGVsYXkgaW4gbXMK
ICAgICAgICAgIiIiCkBAIC0xNTUsMTkgKzE1NiwyMCBAQCBjbGFzcyBXZWJUZXN0U2VydmVyKFRo
cmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKIAogICAgICAgICBzZWxm
LmxhdGVuY3kgPSBsYXRlbmN5CiAKLSAgICAgICAgaWYgYmluZF9ob3N0bmFtZToKKyAgICAgICAg
aWYgYmluZF9hZGRyZXNzOgogICAgICAgICAgICAgaG9zdG5hbWVfcG9ydCA9IHNlcnZlcl9hZGRy
ZXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBob3N0bmFtZV9wb3J0ID0gKCIiLHNlcnZl
cl9hZGRyZXNzWzFdKQogCiAgICAgICAgICNzdXBlciBkb2Vzbid0IHdvcmsgaGVyZSBiZWNhdXNl
IEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIgaXMgb2xkLXN0eWxlCi0gICAgICAgIEJhc2VIVFRQ
U2VydmVyLkhUVFBTZXJ2ZXIuX19pbml0X18oc2VsZiwgaG9zdG5hbWVfcG9ydCwgUmVxdWVzdEhh
bmRsZXJDbGFzcywgKiprd2FyZ3MpCisgICAgICAgIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIu
X19pbml0X18oc2VsZiwgaG9zdG5hbWVfcG9ydCwgcmVxdWVzdF9oYW5kbGVyX2NscywgKiprd2Fy
Z3MpCiAKICAgICAgICAgaWYgY29uZmlnIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgU2VydmVy
LmNvbmZpZyA9IGNvbmZpZwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIlVzaW5nIGRlZmF1bHQgY29uZmlndXJhdGlvbiIpCi0gICAgICAgICAgICBTZXJ2ZXIu
Y29uZmlnID0geyJob3N0Ijogc2VydmVyX2FkZHJlc3NbMF0sCisgICAgICAgICAgICBTZXJ2ZXIu
Y29uZmlnID0geyJicm93c2VyX2hvc3QiOiBzZXJ2ZXJfYWRkcmVzc1swXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNlcnZlcl9ob3N0Ijogc2VydmVyX2FkZHJlc3NbMF0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkb21haW5zIjogeyIiOiBzZXJ2ZXJfYWRkcmVzc1sw
XX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3J0cyI6IHsiaHR0cCI6IFtzZWxm
LnNlcnZlcl9hZGRyZXNzWzFdXX19CiAKQEAgLTM0Miw3ICszNDQsNyBAQCBjbGFzcyBXZWJUZXN0
SHR0cGQob2JqZWN0KToKICAgICA6cGFyYW0gcmV3cml0ZXM6IExpc3Qgb2YgcmV3cml0ZXMgd2l0
aCB3aGljaCB0byBpbml0aWFsaXplIHRoZSByZXdyaXRlcl9jbHMKICAgICA6cGFyYW0gY29uZmln
OiBEaWN0aW9uYXJ5IGhvbGRpbmcgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBm
b3IKICAgICAgICAgICAgICAgICAgICBoYW5kbGVycyB0byByZWFkLCBvciBOb25lIHRvIHVzZSB0
aGUgZGVmYXVsdCB2YWx1ZXMuCi0gICAgOnBhcmFtIGJpbmRfaG9zdG5hbWU6IEJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIHRvIGJpbmQgc2VydmVyIHRvIGhvc3RuYW1lLgorICAgIDpwYXJhbSBi
aW5kX2FkZHJlc3M6IEJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGJpbmQgc2VydmVyIHRv
IElQIGFkZHJlc3MuCiAgICAgOnBhcmFtIGxhdGVuY3k6IERlbGF5IGluIG1zIHRvIHdhaXQgYmVm
b3JlIHNldmluZyBlYWNoIHJlc3BvbnNlLCBvcgogICAgICAgICAgICAgICAgICAgICBjYWxsYWJs
ZSB0aGF0IHJldHVybnMgYSBkZWxheSBpbiBtcwogCkBAIC0zODAsNyArMzgyLDcgQEAgY2xhc3Mg
V2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIHNlcnZlcl9jbHM9Tm9uZSwg
aGFuZGxlcl9jbHM9V2ViVGVzdFJlcXVlc3RIYW5kbGVyLAogICAgICAgICAgICAgICAgICB1c2Vf
c3NsPUZhbHNlLCBrZXlfZmlsZT1Ob25lLCBjZXJ0aWZpY2F0ZT1Ob25lLCBlbmNyeXB0X2FmdGVy
X2Nvbm5lY3Q9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHJvdXRlcl9jbHM9Um91dGVyLCBkb2Nf
cm9vdD1vcy5jdXJkaXIsIHJvdXRlcz1Ob25lLAotICAgICAgICAgICAgICAgICByZXdyaXRlcl9j
bHM9UmVxdWVzdFJld3JpdGVyLCBiaW5kX2hvc3RuYW1lPVRydWUsIHJld3JpdGVzPU5vbmUsCisg
ICAgICAgICAgICAgICAgIHJld3JpdGVyX2Nscz1SZXF1ZXN0UmV3cml0ZXIsIGJpbmRfYWRkcmVz
cz1UcnVlLCByZXdyaXRlcz1Ob25lLAogICAgICAgICAgICAgICAgICBsYXRlbmN5PU5vbmUsIGNv
bmZpZz1Ob25lKToKIAogICAgICAgICBpZiByb3V0ZXMgaXMgTm9uZToKQEAgLTQwOCw3ICs0MTAs
NyBAQCBjbGFzcyBXZWJUZXN0SHR0cGQob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucm91dGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZXdyaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbmZpZz1jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5k
X2hvc3RuYW1lPWJpbmRfaG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiaW5kX2FkZHJlc3M9YmluZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlX3NzbD11c2Vfc3NsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2V5X2ZpbGU9a2V5X2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwKQEAgLTQxOCw3ICs0MjAsOCBAQCBjbGFz
cyBXZWJUZXN0SHR0cGQob2JqZWN0KToKIAogICAgICAgICAgICAgX2hvc3QsIHNlbGYucG9ydCA9
IHNlbGYuaHR0cGQuc29ja2V0LmdldHNvY2tuYW1lKCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCdJbml0IGZhaWxlZCEgWW91IG1heSBu
ZWVkIHRvIG1vZGlmeSB5b3VyIGhvc3RzIGZpbGUuIFJlZmVyIHRvIFJFQURNRS5tZC4nKQorICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBIVFRQIHNlcnZlci4g
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBtYXkgbmVlZCB0byBlZGl0IC9l
dGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iKQogICAgICAgICAgICAgcmFpc2UK
IAogICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL3N0YXNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQppbmRleCBiNmJkNmVlZDQ0MmEyYzFl
MjJjOGNmYjZkMjk0ZmE4MTA5OTFhM2RlLi42OWZhNDQxODM4MzZiOGFkYTYxOGIyN2Y4NDBmODM1
YmZiOTg0M2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvc3Rhc2gucHkKQEAgLTIsNyArMiw4IEBAIGltcG9ydCBiYXNlNjQKIGltcG9ydCBqc29uCiBp
bXBvcnQgb3MKIGltcG9ydCB1dWlkCi1mcm9tIG11bHRpcHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBv
cnQgQmFzZU1hbmFnZXIsIERpY3RQcm94eQoraW1wb3J0IHRocmVhZGluZworZnJvbSBtdWx0aXBy
b2Nlc3NpbmcubWFuYWdlcnMgaW1wb3J0IEFjcXVpcmVyUHJveHksIEJhc2VNYW5hZ2VyLCBEaWN0
UHJveHkKIAogY2xhc3MgU2VydmVyRGljdE1hbmFnZXIoQmFzZU1hbmFnZXIpOgogICAgIHNoYXJl
ZF9kYXRhID0ge30KQEAgLTEzLDExICsxNCwxMyBAQCBkZWYgX2dldF9zaGFyZWQoKToKIFNlcnZl
ckRpY3RNYW5hZ2VyLnJlZ2lzdGVyKCJnZXRfZGljdCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsYWJsZT1fZ2V0X3NoYXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
b3h5dHlwZT1EaWN0UHJveHkpCitTZXJ2ZXJEaWN0TWFuYWdlci5yZWdpc3RlcignTG9jaycsIHRo
cmVhZGluZy5Mb2NrLCBBY3F1aXJlclByb3h5KQogCiBjbGFzcyBDbGllbnREaWN0TWFuYWdlcihC
YXNlTWFuYWdlcik6CiAgICAgcGFzcwogCiBDbGllbnREaWN0TWFuYWdlci5yZWdpc3RlcigiZ2V0
X2RpY3QiKQorQ2xpZW50RGljdE1hbmFnZXIucmVnaXN0ZXIoIkxvY2siKQogCiBjbGFzcyBTdGFz
aFNlcnZlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzPU5vbmUsIGF1
dGhrZXk9Tm9uZSk6CkBAIC01Myw2ICs1NiwyMiBAQCBkZWYgc3RhcnRfc2VydmVyKGFkZHJlc3M9
Tm9uZSwgYXV0aGtleT1Ob25lKToKICAgICByZXR1cm4gKG1hbmFnZXIsIG1hbmFnZXIuX2FkZHJl
c3MsIG1hbmFnZXIuX2F1dGhrZXkpCiAKIAorY2xhc3MgTG9ja1dyYXBwZXIob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9jayk6CisgICAgICAgIHNlbGYubG9jayA9IGxvY2sKKwor
ICAgIGRlZiBhY3F1aXJlKHNlbGYpOgorICAgICAgICBzZWxmLmxvY2suYWNxdWlyZSgpCisKKyAg
ICBkZWYgcmVsZWFzZShzZWxmKToKKyAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKQorCisgICAg
ZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5hY3F1aXJlKCkKKworICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnJlbGVhc2UoKQor
CiAjVE9ETzogQ29uc2lkZXIgZXhwaXJpbmcgdmFsdWVzIGFmdGVyIHNvbWUgZml4ZWQgdGltZSBm
b3IgbG9uZy1ydW5uaW5nCiAjc2VydmVycwogCkBAIC04MSwyMSArMTAwLDIzIEBAIGNsYXNzIFN0
YXNoKG9iamVjdCk6CiAgICAgIiIiCiAKICAgICBfcHJveHkgPSBOb25lCisgICAgbG9jayA9IE5v
bmUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWZhdWx0X3BhdGgsIGFkZHJlc3M9Tm9uZSwg
YXV0aGtleT1Ob25lKToKICAgICAgICAgc2VsZi5kZWZhdWx0X3BhdGggPSBkZWZhdWx0X3BhdGgK
LSAgICAgICAgc2VsZi5kYXRhID0gc2VsZi5fZ2V0X3Byb3h5KGFkZHJlc3MsIGF1dGhrZXkpCisg
ICAgICAgIHNlbGYuX2dldF9wcm94eShhZGRyZXNzLCBhdXRoa2V5KQorICAgICAgICBzZWxmLmRh
dGEgPSBTdGFzaC5fcHJveHkKIAogICAgIGRlZiBfZ2V0X3Byb3h5KHNlbGYsIGFkZHJlc3M9Tm9u
ZSwgYXV0aGtleT1Ob25lKToKICAgICAgICAgaWYgYWRkcmVzcyBpcyBOb25lIGFuZCBhdXRoa2V5
IGlzIE5vbmU6CiAgICAgICAgICAgICBTdGFzaC5fcHJveHkgPSB7fQorICAgICAgICAgICAgU3Rh
c2gubG9jayA9IHRocmVhZGluZy5Mb2NrKCkKIAogICAgICAgICBpZiBTdGFzaC5fcHJveHkgaXMg
Tm9uZToKICAgICAgICAgICAgIG1hbmFnZXIgPSBDbGllbnREaWN0TWFuYWdlcihhZGRyZXNzLCBh
dXRoa2V5KQogICAgICAgICAgICAgbWFuYWdlci5jb25uZWN0KCkKICAgICAgICAgICAgIFN0YXNo
Ll9wcm94eSA9IG1hbmFnZXIuZ2V0X2RpY3QoKQotCi0gICAgICAgIHJldHVybiBTdGFzaC5fcHJv
eHkKKyAgICAgICAgICAgIFN0YXNoLmxvY2sgPSBMb2NrV3JhcHBlcihtYW5hZ2VyLkxvY2soKSkK
IAogICAgIGRlZiBfd3JhcF9rZXkoc2VsZiwga2V5LCBwYXRoKToKICAgICAgICAgaWYgcGF0aCBp
cyBOb25lOgo=
</data>
<flag name="review"
          id="354899"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>